From aca4a5481e9aace59aaa5f4aeacde87737731b13 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Tue, 16 Jul 2024 17:02:57 -0300 Subject: [PATCH 01/46] Project cleanup (#287) * Remove modules that won't be used in the Aligned version * Fix Markdown lint issues * Forward GraphQL port in CI * Remove domain name usage * Remove tunneling and comment Merkle path job * Uncomment Merkle path job and comment nextest step * Try port forwarding to access GraphQL * Revert "Try port forwarding to access GraphQL" This reverts commit 79084b9d1435a82aae905e40419cbd85bb44ce82. --- .github/workflows/ci.yaml | 91 - .github/workflows/rust_ci.yaml | 5 +- Makefile | 69 - README.md | 482 +- eth_verifier/.gitignore | 15 - eth_verifier/.solhint.json | 10 - eth_verifier/Makefile | 58 - eth_verifier/foundry.toml | 27 - eth_verifier/lagrange_bases.bin | 1 - eth_verifier/lagrange_bases.mpk | Bin 60 -> 0 bytes eth_verifier/lib/Alphas.sol | 137 - eth_verifier/lib/Commitment.sol | 53 - eth_verifier/lib/Constants.sol | 71 - eth_verifier/lib/Evaluations.sol | 29 - eth_verifier/lib/Oracles.sol | 358 - eth_verifier/lib/Polynomial.sol | 26 - eth_verifier/lib/Proof.sol | 301 - eth_verifier/lib/Utils.sol | 83 - eth_verifier/lib/VerifierIndex.sol | 328 - eth_verifier/lib/bn254/BN254.sol | 293 - eth_verifier/lib/bn254/BN256G2.sol | 347 - eth_verifier/lib/bn254/Fields.sol | 131 - .../lib/deserialize/Linearization.sol | 81 - eth_verifier/lib/deserialize/MerkleProof.sol | 26 - eth_verifier/lib/deserialize/PairingProof.sol | 18 - eth_verifier/lib/deserialize/ProverProof.sol | 358 - eth_verifier/lib/deserialize/PublicInputs.sol | 14 - .../lib/deserialize/VerifierIndex.sol | 119 - eth_verifier/lib/expr/Expr.sol | 105 - eth_verifier/lib/expr/ExprConstants.sol | 18 - eth_verifier/lib/expr/PolishToken.sol | 231 - eth_verifier/lib/forge-std | 1 - eth_verifier/lib/merkle/Verify.sol | 497 - eth_verifier/lib/pasta/Fields.sol | 52 - eth_verifier/lib/poseidon/Bn254.sol | 293 - eth_verifier/lib/poseidon/Pasta.sol | 643 - eth_verifier/lib/sponge/Sponge.sol | 214 - eth_verifier/linearization.bin | Bin 9504 -> 0 bytes eth_verifier/linearization.rlp | Bin 548608 -> 0 bytes eth_verifier/linearization_literals.bin | Bin 6624 -> 0 bytes eth_verifier/merkle_leaf.bin | 1 - eth_verifier/merkle_path.bin | Bin 2240 -> 0 bytes eth_verifier/merkle_root.bin | 2 - eth_verifier/proof_hash.bin | 1 - eth_verifier/prover_proof.bin | Bin 5600 -> 0 bytes eth_verifier/prover_proof.mpk | Bin 6962 -> 0 bytes eth_verifier/run.sh | 9 - eth_verifier/script/Deploy.s.sol | 42 - eth_verifier/script/UploadProof.s.sol | 32 - eth_verifier/script/Verify.s.sol | 148 - eth_verifier/src/KimchiPartialVerifier.sol | 286 - eth_verifier/src/Verifier.sol | 270 - eth_verifier/test/BN254.t.sol | 18 - eth_verifier/test/Deserialize.t.sol | 161 - eth_verifier/test/Fields.t.sol | 38 - eth_verifier/test/Merkle.t.sol | 126 - eth_verifier/test/Poseidon.t.sol | 70 - eth_verifier/test/Profiling.t.sol | 46 - eth_verifier/test/Sponge.t.sol | 134 - eth_verifier/test/VerifierAPI.t.sol | 160 - eth_verifier/test/VerifierOther.t.sol | 181 - eth_verifier/test_merkle_path.bin | Bin 128 -> 0 bytes eth_verifier/unit_test_data/pairing_proof.bin | Bin 96 -> 0 bytes eth_verifier/unit_test_data/proof_comms.bin | Bin 1984 -> 0 bytes eth_verifier/unit_test_data/proof_evals.bin | Bin 2976 -> 0 bytes eth_verifier/unit_test_data/prover_proof.bin | Bin 5088 -> 0 bytes .../unit_test_data/verifier_index.bin | Bin 2752 -> 0 bytes .../unit_test_data/verifier_index.mpk | Bin 2843 -> 0 bytes eth_verifier/urs.mpk | Bin 435 -> 0 bytes eth_verifier/verifier_index.bin | Bin 2752 -> 0 bytes eth_verifier/verifier_index.mpk | Bin 2842 -> 0 bytes kzg_prover/.gitignore | 5 - kzg_prover/Cargo.lock | 1462 --- kzg_prover/Cargo.toml | 27 - kzg_prover/serializer/Cargo.lock | 1419 -- kzg_prover/serializer/Cargo.toml | 26 - .../src/implementations/core_types.rs | 133 - .../src/implementations/lagrange_bases.rs | 23 - .../serializer/src/implementations/mod.rs | 5 - .../src/implementations/polish_token.rs | 169 - .../src/implementations/prover_proof.rs | 231 - .../src/implementations/verifier_index.rs | 168 - kzg_prover/serializer/src/lib.rs | 4 - kzg_prover/serializer/src/main.rs | 110 - kzg_prover/serializer/src/serialize.rs | 9 - kzg_prover/serializer/src/type_aliases.rs | 23 - kzg_prover/serializer/src/utils.rs | 19 - kzg_prover/src/lib.rs | 2 - kzg_prover/src/main.rs | 975 -- kzg_prover/src/misc_tests.rs | 72 - kzg_prover/src/snarky_gate.rs | 67 - kzg_prover/src/sponge_tests.rs | 141 - kzg_prover/unit_test_data/prover_proof.bin | Bin 5088 -> 0 bytes kzg_prover/unit_test_data/verifier_index.mpk | Bin 2843 -> 0 bytes package-lock.json | 6 - public_input_gen/.gitignore | 3 - public_input_gen/Cargo.lock | 968 -- public_input_gen/Cargo.toml | 16 - public_input_gen/src/main.rs | 151 - public_input_gen/src/state_proof.rs | 282 - public_key.txt | 1 - setup.sh | 9 - .../merkle_path/tests/process_input.rs | 2 +- test_prover/.eslintrc.cjs | 23 - test_prover/.gitattributes | 3 - test_prover/.github/workflows/ci.yml | 26 - test_prover/.gitignore | 13 - test_prover/.npmignore | 11 - test_prover/.prettierignore | 14 - test_prover/.prettierrc | 6 - test_prover/LICENSE | 199 - test_prover/Makefile | 4 - test_prover/README.md | 26 - test_prover/babel.config.cjs | 3 - test_prover/config.json | 4 - test_prover/jest-resolver.cjs | 21 - test_prover/jest.config.js | 24 - test_prover/package-lock.json | 9051 ------------- test_prover/package.json | 48 - test_prover/src/Addition.ts | 27 - test_prover/src/index.ts | 3 - test_prover/src/main.ts | 55 - test_prover/tsconfig.json | 23 - verifier_circuit/.eslintrc.cjs | 23 - verifier_circuit/.gitattributes | 3 - verifier_circuit/.github/workflows/ci.yml | 26 - verifier_circuit/.gitignore | 18 - verifier_circuit/.npmignore | 11 - verifier_circuit/.prettierignore | 13 - verifier_circuit/.prettierrc | 6 - verifier_circuit/LICENSE | 199 - verifier_circuit/Makefile | 6 - verifier_circuit/babel.config.cjs | 3 - verifier_circuit/config.json | 4 - verifier_circuit/jest-resolver.cjs | 21 - verifier_circuit/jest.config.js | 24 - verifier_circuit/o1js | 1 - verifier_circuit/package-lock.json | 10819 ---------------- verifier_circuit/package.json | 51 - verifier_circuit/src/SRS.ts | 84 - verifier_circuit/src/alphas.ts | 86 - verifier_circuit/src/circuits/gate.ts | 73 - verifier_circuit/src/error.ts | 28 - verifier_circuit/src/field_serializable.ts | 137 - .../src/foreign_fields/foreign_field.ts | 7 - .../src/foreign_fields/foreign_pallas.ts | 54 - .../src/foreign_fields/foreign_scalar.ts | 19 - verifier_circuit/src/lookups/lookups.ts | 47 - verifier_circuit/src/main.ts | 45 - .../src/poly_commitment/commitment.ts | 278 - .../src/poly_commitment/opening_proof.ts | 113 - verifier_circuit/src/polynomial.ts | 22 - verifier_circuit/src/prover/expr.ts | 382 - verifier_circuit/src/prover/prover.ts | 1238 -- verifier_circuit/src/serde/serde_index.ts | 334 - verifier_circuit/src/serde/serde_proof.ts | 241 - verifier_circuit/src/test_circuit.ts | 61 - verifier_circuit/src/util/bigint.ts | 39 - verifier_circuit/src/util/field.ts | 179 - verifier_circuit/src/util/log.ts | 5 - verifier_circuit/src/util/misc.ts | 1 - verifier_circuit/src/util/scalar.ts | 79 - verifier_circuit/src/util/t_and_s.py | 11 - verifier_circuit/src/verifier/batch.ts | 354 - verifier_circuit/src/verifier/commitment.ts | 352 - .../src/verifier/scalar_challenge.ts | 57 - verifier_circuit/src/verifier/sponge.ts | 944 -- verifier_circuit/src/verifier/verifier.ts | 277 - verifier_circuit/test_data/group_map.json | 1 - verifier_circuit/test_data/inputs.json | 164 - .../test_data/lagrange_bases.json | 292 - verifier_circuit/test_data/proof.json | 1537 --- verifier_circuit/test_data/srs.json | 1 - .../test_data/verifier_index.json | 4800 ------- verifier_circuit/tests/SRS.test.ts | 16 - verifier_circuit/tests/bigint.test.ts | 36 - verifier_circuit/tests/circuit.test.ts | 12 - verifier_circuit/tests/commitment.test.ts | 35 - verifier_circuit/tests/helpers.ts | 10 - verifier_circuit/tests/polynomial.test.ts | 12 - verifier_circuit/tests/prover.test.ts | 112 - verifier_circuit/tests/scalar.test.ts | 20 - verifier_circuit/tests/sponge.test.ts | 91 - verifier_circuit/tsconfig.json | 30 - verifier_circuit_tests/.gitignore | 1 - verifier_circuit_tests/Cargo.lock | 957 -- verifier_circuit_tests/Cargo.toml | 16 - verifier_circuit_tests/src/lib.rs | 3 - verifier_circuit_tests/src/main.rs | 160 - verifier_circuit_tests/src/misc.rs | 502 - verifier_circuit_tests/src/sponge_tests.rs | 129 - verifier_circuit_tests/src/verifier_steps.rs | 734 -- 192 files changed, 31 insertions(+), 49837 deletions(-) delete mode 100644 Makefile delete mode 100644 eth_verifier/.gitignore delete mode 100644 eth_verifier/.solhint.json delete mode 100644 eth_verifier/Makefile delete mode 100644 eth_verifier/foundry.toml delete mode 100644 eth_verifier/lagrange_bases.bin delete mode 100644 eth_verifier/lagrange_bases.mpk delete mode 100644 eth_verifier/lib/Alphas.sol delete mode 100644 eth_verifier/lib/Commitment.sol delete mode 100644 eth_verifier/lib/Constants.sol delete mode 100644 eth_verifier/lib/Evaluations.sol delete mode 100644 eth_verifier/lib/Oracles.sol delete mode 100644 eth_verifier/lib/Polynomial.sol delete mode 100644 eth_verifier/lib/Proof.sol delete mode 100644 eth_verifier/lib/Utils.sol delete mode 100644 eth_verifier/lib/VerifierIndex.sol delete mode 100644 eth_verifier/lib/bn254/BN254.sol delete mode 100644 eth_verifier/lib/bn254/BN256G2.sol delete mode 100644 eth_verifier/lib/bn254/Fields.sol delete mode 100644 eth_verifier/lib/deserialize/Linearization.sol delete mode 100644 eth_verifier/lib/deserialize/MerkleProof.sol delete mode 100644 eth_verifier/lib/deserialize/PairingProof.sol delete mode 100644 eth_verifier/lib/deserialize/ProverProof.sol delete mode 100644 eth_verifier/lib/deserialize/PublicInputs.sol delete mode 100644 eth_verifier/lib/deserialize/VerifierIndex.sol delete mode 100644 eth_verifier/lib/expr/Expr.sol delete mode 100644 eth_verifier/lib/expr/ExprConstants.sol delete mode 100644 eth_verifier/lib/expr/PolishToken.sol delete mode 160000 eth_verifier/lib/forge-std delete mode 100644 eth_verifier/lib/merkle/Verify.sol delete mode 100644 eth_verifier/lib/pasta/Fields.sol delete mode 100644 eth_verifier/lib/poseidon/Bn254.sol delete mode 100644 eth_verifier/lib/poseidon/Pasta.sol delete mode 100644 eth_verifier/lib/sponge/Sponge.sol delete mode 100644 eth_verifier/linearization.bin delete mode 100644 eth_verifier/linearization.rlp delete mode 100644 eth_verifier/linearization_literals.bin delete mode 100644 eth_verifier/merkle_leaf.bin delete mode 100644 eth_verifier/merkle_path.bin delete mode 100644 eth_verifier/merkle_root.bin delete mode 100644 eth_verifier/proof_hash.bin delete mode 100644 eth_verifier/prover_proof.bin delete mode 100644 eth_verifier/prover_proof.mpk delete mode 100644 eth_verifier/run.sh delete mode 100644 eth_verifier/script/Deploy.s.sol delete mode 100644 eth_verifier/script/UploadProof.s.sol delete mode 100644 eth_verifier/script/Verify.s.sol delete mode 100644 eth_verifier/src/KimchiPartialVerifier.sol delete mode 100644 eth_verifier/src/Verifier.sol delete mode 100644 eth_verifier/test/BN254.t.sol delete mode 100644 eth_verifier/test/Deserialize.t.sol delete mode 100644 eth_verifier/test/Fields.t.sol delete mode 100644 eth_verifier/test/Merkle.t.sol delete mode 100644 eth_verifier/test/Poseidon.t.sol delete mode 100644 eth_verifier/test/Profiling.t.sol delete mode 100644 eth_verifier/test/Sponge.t.sol delete mode 100644 eth_verifier/test/VerifierAPI.t.sol delete mode 100644 eth_verifier/test/VerifierOther.t.sol delete mode 100644 eth_verifier/test_merkle_path.bin delete mode 100644 eth_verifier/unit_test_data/pairing_proof.bin delete mode 100644 eth_verifier/unit_test_data/proof_comms.bin delete mode 100644 eth_verifier/unit_test_data/proof_evals.bin delete mode 100644 eth_verifier/unit_test_data/prover_proof.bin delete mode 100644 eth_verifier/unit_test_data/verifier_index.bin delete mode 100644 eth_verifier/unit_test_data/verifier_index.mpk delete mode 100644 eth_verifier/urs.mpk delete mode 100644 eth_verifier/verifier_index.bin delete mode 100644 eth_verifier/verifier_index.mpk delete mode 100644 kzg_prover/.gitignore delete mode 100644 kzg_prover/Cargo.lock delete mode 100644 kzg_prover/Cargo.toml delete mode 100644 kzg_prover/serializer/Cargo.lock delete mode 100644 kzg_prover/serializer/Cargo.toml delete mode 100644 kzg_prover/serializer/src/implementations/core_types.rs delete mode 100644 kzg_prover/serializer/src/implementations/lagrange_bases.rs delete mode 100644 kzg_prover/serializer/src/implementations/mod.rs delete mode 100644 kzg_prover/serializer/src/implementations/polish_token.rs delete mode 100644 kzg_prover/serializer/src/implementations/prover_proof.rs delete mode 100644 kzg_prover/serializer/src/implementations/verifier_index.rs delete mode 100644 kzg_prover/serializer/src/lib.rs delete mode 100644 kzg_prover/serializer/src/main.rs delete mode 100644 kzg_prover/serializer/src/serialize.rs delete mode 100644 kzg_prover/serializer/src/type_aliases.rs delete mode 100644 kzg_prover/serializer/src/utils.rs delete mode 100644 kzg_prover/src/lib.rs delete mode 100644 kzg_prover/src/main.rs delete mode 100644 kzg_prover/src/misc_tests.rs delete mode 100644 kzg_prover/src/snarky_gate.rs delete mode 100644 kzg_prover/src/sponge_tests.rs delete mode 100644 kzg_prover/unit_test_data/prover_proof.bin delete mode 100644 kzg_prover/unit_test_data/verifier_index.mpk delete mode 100644 package-lock.json delete mode 100644 public_input_gen/.gitignore delete mode 100644 public_input_gen/Cargo.lock delete mode 100644 public_input_gen/Cargo.toml delete mode 100644 public_input_gen/src/main.rs delete mode 100644 public_input_gen/src/state_proof.rs delete mode 100644 public_key.txt delete mode 100755 setup.sh delete mode 100644 test_prover/.eslintrc.cjs delete mode 100644 test_prover/.gitattributes delete mode 100644 test_prover/.github/workflows/ci.yml delete mode 100644 test_prover/.gitignore delete mode 100644 test_prover/.npmignore delete mode 100644 test_prover/.prettierignore delete mode 100644 test_prover/.prettierrc delete mode 100644 test_prover/LICENSE delete mode 100644 test_prover/Makefile delete mode 100644 test_prover/README.md delete mode 100644 test_prover/babel.config.cjs delete mode 100644 test_prover/config.json delete mode 100644 test_prover/jest-resolver.cjs delete mode 100644 test_prover/jest.config.js delete mode 100644 test_prover/package-lock.json delete mode 100644 test_prover/package.json delete mode 100644 test_prover/src/Addition.ts delete mode 100644 test_prover/src/index.ts delete mode 100644 test_prover/src/main.ts delete mode 100644 test_prover/tsconfig.json delete mode 100644 verifier_circuit/.eslintrc.cjs delete mode 100644 verifier_circuit/.gitattributes delete mode 100644 verifier_circuit/.github/workflows/ci.yml delete mode 100644 verifier_circuit/.gitignore delete mode 100644 verifier_circuit/.npmignore delete mode 100644 verifier_circuit/.prettierignore delete mode 100644 verifier_circuit/.prettierrc delete mode 100644 verifier_circuit/LICENSE delete mode 100644 verifier_circuit/Makefile delete mode 100644 verifier_circuit/babel.config.cjs delete mode 100644 verifier_circuit/config.json delete mode 100644 verifier_circuit/jest-resolver.cjs delete mode 100644 verifier_circuit/jest.config.js delete mode 160000 verifier_circuit/o1js delete mode 100644 verifier_circuit/package-lock.json delete mode 100644 verifier_circuit/package.json delete mode 100644 verifier_circuit/src/SRS.ts delete mode 100644 verifier_circuit/src/alphas.ts delete mode 100644 verifier_circuit/src/circuits/gate.ts delete mode 100644 verifier_circuit/src/error.ts delete mode 100644 verifier_circuit/src/field_serializable.ts delete mode 100644 verifier_circuit/src/foreign_fields/foreign_field.ts delete mode 100644 verifier_circuit/src/foreign_fields/foreign_pallas.ts delete mode 100644 verifier_circuit/src/foreign_fields/foreign_scalar.ts delete mode 100644 verifier_circuit/src/lookups/lookups.ts delete mode 100644 verifier_circuit/src/main.ts delete mode 100644 verifier_circuit/src/poly_commitment/commitment.ts delete mode 100644 verifier_circuit/src/poly_commitment/opening_proof.ts delete mode 100644 verifier_circuit/src/polynomial.ts delete mode 100644 verifier_circuit/src/prover/expr.ts delete mode 100644 verifier_circuit/src/prover/prover.ts delete mode 100644 verifier_circuit/src/serde/serde_index.ts delete mode 100644 verifier_circuit/src/serde/serde_proof.ts delete mode 100644 verifier_circuit/src/test_circuit.ts delete mode 100644 verifier_circuit/src/util/bigint.ts delete mode 100644 verifier_circuit/src/util/field.ts delete mode 100644 verifier_circuit/src/util/log.ts delete mode 100644 verifier_circuit/src/util/misc.ts delete mode 100644 verifier_circuit/src/util/scalar.ts delete mode 100644 verifier_circuit/src/util/t_and_s.py delete mode 100644 verifier_circuit/src/verifier/batch.ts delete mode 100644 verifier_circuit/src/verifier/commitment.ts delete mode 100644 verifier_circuit/src/verifier/scalar_challenge.ts delete mode 100644 verifier_circuit/src/verifier/sponge.ts delete mode 100644 verifier_circuit/src/verifier/verifier.ts delete mode 100644 verifier_circuit/test_data/group_map.json delete mode 100644 verifier_circuit/test_data/inputs.json delete mode 100644 verifier_circuit/test_data/lagrange_bases.json delete mode 100644 verifier_circuit/test_data/proof.json delete mode 100644 verifier_circuit/test_data/srs.json delete mode 100644 verifier_circuit/test_data/verifier_index.json delete mode 100644 verifier_circuit/tests/SRS.test.ts delete mode 100644 verifier_circuit/tests/bigint.test.ts delete mode 100644 verifier_circuit/tests/circuit.test.ts delete mode 100644 verifier_circuit/tests/commitment.test.ts delete mode 100644 verifier_circuit/tests/helpers.ts delete mode 100644 verifier_circuit/tests/polynomial.test.ts delete mode 100644 verifier_circuit/tests/prover.test.ts delete mode 100644 verifier_circuit/tests/scalar.test.ts delete mode 100644 verifier_circuit/tests/sponge.test.ts delete mode 100644 verifier_circuit/tsconfig.json delete mode 100644 verifier_circuit_tests/.gitignore delete mode 100644 verifier_circuit_tests/Cargo.lock delete mode 100644 verifier_circuit_tests/Cargo.toml delete mode 100644 verifier_circuit_tests/src/lib.rs delete mode 100644 verifier_circuit_tests/src/main.rs delete mode 100644 verifier_circuit_tests/src/misc.rs delete mode 100644 verifier_circuit_tests/src/sponge_tests.rs delete mode 100644 verifier_circuit_tests/src/verifier_steps.rs diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0f546ec2..1f07a491 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,97 +7,6 @@ on: branches: ["*"] jobs: - public_input_gen: - name: Public input generation - uses: ./.github/workflows/rust_ci.yaml - with: - directory: public_input_gen - - verifier_circuit_tests: - name: Execute o1js verifier circuit Rust tests for comparison - uses: ./.github/workflows/rust_ci.yaml - with: - directory: verifier_circuit_tests - - verifier_circuit: - name: Build and test o1js verifier circuit - runs-on: ubuntu-selfhosted - defaults: - run: - working-directory: ./verifier_circuit - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - - name: Setup o1js submodule - run: git submodule update --init --recursive - - - name: Set up dependencies - run: npm ci - - - name: Run npm build - run: npm run build - - - name: Run npm test - run: npm run test - - integration: - name: Integration test - runs-on: ubuntu-selfhosted - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1.2.0 - - - name: Run integration test - run: | - export HOME="/root/" - export PATH="/.foundry/bin:/root/.cargo/bin:$PATH" - export GOPATH="/root/go" - export MINA_RPC_URL="http://5.9.57.89:3085/graphql" - make - - eth_verifier: - name: Test EVM verifier - runs-on: ubuntu-selfhosted - defaults: - run: - working-directory: ./eth_verifier - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1.2.0 - - - name: Run tests - run: | - export HOME="/root/" - #export PATH="/.foundry/bin:/root/.cargo/bin:$PATH" - export GOPATH="/root/go" - make test > ../gasreport.ansi - env: - # make fuzzing semi-deterministic to avoid noisy gas cost estimation - # due to non-deterministic fuzzing (but still use pseudo-random fuzzing seeds) - FOUNDRY_FUZZ_SEED: 0x${{ github.event.pull_request.base.sha || github.sha }} - - name: Compare gas reports - uses: Rubilmax/foundry-gas-diff@v3.17 - with: - summaryQuantile: 0.9 # only display the 10% most significant gas diffs in the summary (defaults to 20%) - sortCriteria: avg,max # sort diff rows by criteria - sortOrders: desc,asc # and directions - id: gas_diff - - - name: Add gas diff to sticky comment - if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' - uses: marocchino/sticky-pull-request-comment@v2 - with: - # delete the comment in case changes no longer impact gas costs - delete: ${{ !steps.gas_diff.outputs.markdown }} - message: ${{ steps.gas_diff.outputs.markdown }} - merkle_path: name: Test Merkle Path parser uses: ./.github/workflows/rust_ci.yaml diff --git a/.github/workflows/rust_ci.yaml b/.github/workflows/rust_ci.yaml index 07767749..afda779a 100644 --- a/.github/workflows/rust_ci.yaml +++ b/.github/workflows/rust_ci.yaml @@ -30,8 +30,9 @@ jobs: - name: Run clippy run: /root/.cargo/bin/cargo clippy --workspace --all-targets -- -D warnings - - name: Run nextest - run: /root/.cargo/bin/cargo nextest run --workspace --all-targets --no-fail-fast + # We skip this one for now until we solve how to access GraphQL from CI + # - name: Run nextest + # run: /root/.cargo/bin/cargo nextest run --workspace --all-targets --no-fail-fast - name: Run binary if: ${{ !inputs.skip_run }} diff --git a/Makefile b/Makefile deleted file mode 100644 index 9431047f..00000000 --- a/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -.PHONY: run check_account sepolia.wrap_and_deploy sepolia.verify - -run: - @echo "Setting up o1js..." - @git submodule update --init --recursive - @echo "Fetching state proof from Mina node..." - @cd polling_service && sh run.sh - @echo "Done!" - @echo "Fetching Merkle root..." - @cd state_utility && sh run.sh - @echo "Done!" - @echo "Creating circuit gates..." - @cd verifier_circuit && npm i && make - @echo "Done!" - @echo "Creating KZG proof..." - @cd kzg_prover && cargo r --release - @echo "Done!" - @echo "Deploying and verifying in Anvil..." - @cd eth_verifier && make setup && sh run.sh - @echo "Done!" - @echo "Save the last contract address, this is your verifier!" - @echo "You can use cast to interact with it. Try calling:" - @echo " cast call 'is_state_available()(bool)'" - @echo "to check if verification succeded. If so, then you can retrieve state data:" - @echo " cast call 'retrieve_state_creator()(string)'" - @echo " cast call 'retrieve_state_hash()(uint256)'" - @echo " cast call 'retrieve_state_height()(uint256)'" - -check_account: - @echo "Fetching Merkle path and leaf hash..." - @cd state_utility/merkle_path && cargo r --release -- $(MINA_RPC_URL) ../../public_key.txt - @echo "Done!" - @echo "Verifying Merkle proof inclusion..." - @cd eth_verifier && make setup && make merkle_locally - @echo "Done!" - -sepolia.wrap_and_deploy: - @echo "Setting up o1js..." - @git submodule update --init --recursive - @echo "Fetching state proof from Mina node..." - @cd polling_service && sh run.sh - @echo "Done!" - @echo "Creating circuit gates..." - @cd verifier_circuit && npm i && make - @echo "Done!" - @echo "Creating KZG proof..." - @cd kzg_prover && cargo r --release - @echo "Done!" - @echo "Fetching Merkle root..." - @cd state_utility && sh run.sh - @echo "Done!" - @echo "Deploying verifier in Sepolia..." - @cd eth_verifier && make sepolia.deploy_deser - @echo "Done!" - @echo "Once the verifier deployment is confirmed, set CONTRACT_ADDRESS env var and run:" - @echo " make sepolia.verify" - -sepolia.verify: - @echo "Uploading proof and Merkle root to Sepolia..." - @cd eth_verifier && make sepolia.upload_proof_and_merkle_root - @echo "Done!" - @echo "Once the upload is confirmed in Sepolia, press any key to continue."; read REPLY - @echo "Verifying uploaded proof in Sepolia..." - @cd eth_verifier && make sepolia.verify - @echo "Done!" - @echo "Once the proof verification is confirmed in Sepolia, press any key to continue."; read REPLY - @echo "Verifying Merkle proof inclusion in Sepolia..." - @cd eth_verifier && make sepolia.merkle_verify - @echo "Done!" diff --git a/README.md b/README.md index 97289809..1d4171a5 100644 --- a/README.md +++ b/README.md @@ -1,438 +1,12 @@ -
- # mina_bridge 🌉 ## Zero-knowledge state bridge from Mina to Ethereum -
- ## About This project introduces the proof generation, posting and verification of the validity of [Mina](https://minaprotocol.com/) states into a EVM chain, which will serve as a foundation for token bridging. -This MVP verifies Mina state opening proofs in Ethereum without taking into account consensus validation and Pickles verification. - -⚠ We're currently focused on orchestrating the end-to-end integration of Mina proof verification, from extraction on the node to final validation on the Sepolia Ethereum testnet. Including the verification of account inclusion in the stored state to our process. - -* **Circuit for verification algorithm.** đŸš« All the tasks described below can be started once the new circuit framework and its API in Rust is ready to be used - * Integrate current Kimchi partial verification in o1js with the verifier circuit. The rework in Rust should take 2 weeks, depending on the new API. - * Complete Kimchi verifier circuit: final verification. (this will stay pending since we need some improvements in o1js for the MSM). -* **KZG Prover** (state proof wrapper): - * Connect Kimchi + KZG prover with current verifier circuit. -* **Verifier Smart Contract:** - * Inputs deserialization. - * Partial verification. - * Final verification. -* **Account state utility:** A user will be able to query its account state and check that the retrieved state corresponds to the last verified Mina state in Ethereum. - * Verification of Merkle proof in Solidity. Done ✅ - * Integration between Merkle proof verification and Mina state proof verification. WIP 🔹 - -## Design objectives - -`mina_bridge` will include: - -1. Backend service for periodically wrapping and posting Mina state proofs to an EVM chain. -2. A “wrapping” module for Mina state proofs to make them efficient to verify on the EVM. -3. The solidity logic for verifying the wrapped Mina state proofs on a EVM chain. -4. Browser utility for smart contract users: Mina address is provided as an input. State is looked up against Mina and then shared as a Mina state lookup-merkle-proof wrapped inside an efficient proof system. -5. A solidity contract utility that smart contract developers or users can execute on an EVM chain to feed in a Mina state lookup proof that will check the state lookup against the latest posted Mina state proof to verify that this Mina state is valid. - -## ⚠ Disclaimer - -`mina_bridge` is a PoC, currently it misses elemental features and correct functionality is not guaranteed. - -## ⭐ How to run the PoC script ⭐ - -### Proof wrapper and Verifier contract - -In the root folder, run: - -```sh -make -``` - -This will run the polling service, the verifier circuit, the KZG prover and the Ethereum smart contract verifier. - -### Account state utility - -#### Server - -Go to the `state_utility/server` folder and run: - -```sh -cargo run -``` - -This will start the Account state utility server using the port `3000`. -The server has one method `account_state` which receives the following arguments: - -* `mina_public_key`: The public key associated to a Mina account. -* `mina_rpc_url`: URL of the Mina node GraphQL API. -* `eth_rpc_url`: URL of the Ethereum gateway. -* `verifier_address`: Address of the Mina bridge verifier Ethereum contract. - -This method returns the following JSON: - -```json -{ - "balance": , - "verified": -} -``` - -Where: - -* `mina_account_balance` is the balance of the Mina account that corresponds to ``. -* `mina_account_state_validity`: `true` if the state of the Mina account that corresponds to `` is present in the ledger hash stored in the Verifier Ethereum contract with address ``. `false` otherwise. - -##### Examples - -We assume the Account state utility server, the Mina node and the Ethereum node are in `localhost`. - -To fetch the state of a Mina account in Devnet: - -```sh -> curl "http://localhost:3000/account_state/B62qpWKzx7e1mmwVf8dJAPFQPGVpZP9pJaobhvg8iagqU2r1bEyndMa/http%3A%2F%2Flocalhost%3A3085%2Fgraphql/http%3A%2F%2Flocalhost%3A8545/0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e" -{"valid":true,"balance":20000000000000} -``` - -This means that the Mina account with the public key `B62qpWKzx7e1mmwVf8dJAPFQPGVpZP9pJaobhvg8iagqU2r1bEyndMa` has `20000000000000` nanoMINA stored in Devnet and its state is valid according to the Mina bridge. - -#### Integration test - -In the root folder, run: - -```sh -make check_account -``` - -This will run the account state utility as an integration test. -**NOTE:** To run this, run the Proof wrapper and the Verifier contract before. - -## Architecture - -This is subject to change. - -```mermaid - flowchart TB - MINA[(Mina)]-->A(Periodic proof poller) - -->|Kimchi + IPA + Pasta proof| B(State proof wrapper) - -->|Kimchi + KZG + bn254 proof| B3 - - subgraph EB["EVM Chain"] - direction LR - B1["Block 1"] --> B2["Block 2"] - --> B3["Block 3"] --> B4["Block 4"] - end - - U((User))<-->WEBUI{{Web UI}}<-->MINA - U<-->S{{Solidity verifier utility}} - B3-->|Proof request| S -``` - -### Data flow - -```mermaid - flowchart LR - MINA(Mina node) - --> |Mina proof,\nVerification key| POLLING[Polling service] - --> |JSON Proof| CIRCUIT[Verifier circuit] - --> |Gates| KZG[KZG prover] - --> |KZG proof,\nVerification key| CONTRACT[Verifier contract] - --> |is_valid_proof?| U(User) -``` - -Note that, in the second diagram, the Verification key taken from the Mina node will be different for each Mina state proof, while the Verification key generated from the Verifier circuit should be always the same. - -## Usage - -### Integration test - -On root folder run: - -```sh -MINA_RPC_URL= make -``` - -Where `` is the URL of the Mina node GraphQL API used to query the Mina state proof. - -This command will: - -* Invoke the polling service and query the last Mina chain state and a Pasta+IPA proof, then send both to the `public_input_gen/` crate. -* This crate will compute needed data (SRS, public inputs) for feeding the state proof into an o1js verifier circuit. -* The circuit will verify the proof and output the gate system to a KZG prover. -* The KZG prover will generate another proof (BN254+KZG) of this verification. This makes it suitable to verify in an Ethereum smart contract. The final proof including the embedded state will be sent to the Solidity verifier. -* The verifier will be deployed in Anvil (a local test blockchain) and a bash script will send a transaction with the state+proof data for running the final verification. If successful, the contract will store the state data and will expose an API for the user to retrieve it, knowing that this data was zk-verified. - -### Account state utility - -On root folder run: - -```sh -MINA_RPC_URL= sh state_utility/run.sh -``` - -Where `` is the URL of the Mina node GraphQL API used to query the Mina state proof. - -This will return the balance of the account associated with the `` passed as argument. - -#### Roadmap - -For the Bridge MVP, the utility will be implemented as a CLI that will receive a public key as an argument. The development stages are defined below: - -1. User queries the balance of one of its accounts. The service queries the Mina node without validating the state in Ethereum. -1. User queries the balance of one of its accounts. The service queries the Mina node and the related Mina state opening proof. The service queries the Bridge to fetch its stored opening proof to compare the proofs and check that the retrieved Mina state was validated in Ethereum. If the Mina state is valid, the service returns the balance. - -The diagram below shows the sequence of a user sending a request to the service implemented as stated in the development stage 2: - -```mermaid -sequenceDiagram - User->>Utility: balance? - Utility->>Mina: balance? - Mina->>Utility: balance - Utility->>Mina: related proof? - Mina->>Utility: related proof - Utility->>Bridge: stored proof? - Bridge->>Utility: stored proof - Utility->>Bridge: are proofs equal? - Bridge->>Utility: yes/no - Utility->>User: balance (if yes) -``` - -## Components of this Repo - -This repository is composed of the following components: - -### Polling service - -This module contains a script to fetch the latest Mina state proof from a Mina node and parse the proof into a JSON a file. - -#### Dependencies - -You need to have access to a Mina node. -To run a node, [follow the installation steps](https://github.com/MinaProtocol/mina/releases/tag/1.4.0). - -#### Running - -On `polling_service` run: - -```sh -MINA_RPC_URL= ./run.sh -``` - -This script will: - -1. Fetch the latest Mina state proof from a Mina node -1. Clone our [Mina mainnet fork](https://github.com/lambdaclass/mina/tree/proof_to_json) (1.4.0) -1. Use the cloned fork to parse the fetched proof into a JSON file - -### Verifier circuit - -This module contains the [o1js](https://github.com/o1-labs/o1js) circuit used for recursively verify Mina state proofs. -A proof of the circuit will be constructed in subsequent modules for validating the state. - -The code is written entirely in Typescript using the [o1js](https://github.com/o1-labs/o1js) library and is heavily based on [Kimchi](https://github.com/o1-labs/proof-systems/tree/master/kimchi)'s original verifier implementation. - -#### Running Verifier circuit - -On `verifier_circuit/` run: - -```sh -make -``` - -Where `` is the URL of the Mina node GraphQL API used to query the Mina state proof. - -This command will create: - -* the KZG proof, -* the public inputs, -* the prover index and -* the SRS - -The proof will be used in the next step. - -#### Testing - -```bash -npm run test -npm run testw # watch mod -``` - -will execute Jest unit and integration tests of the module. - -#### Verifier circuit Structure - -* `poly_commitment/`: Includes the `PolyComm` type and methods used for representing a polynomial commitment. -* `prover/`: Proof data and associated methods necessary to the verifier. The Fiat-Shamir heuristic is included here (`ProverProof.oracles()`). -* `serde/`: Mostly deserialization helpers for using data from the `verifier_circuit_tests/` module, like a proof made over a testing circuit. -* `util/`: Miscellaneous utility functions. -* `verifier/`: The protagonist code used for verifying a Kimchi + IPA + Pasta proof. Here: - * `batch.ts/` includes the partial verification code used for verifying a batch of proofs. - * `verifier.ts/` has the main circuit for verification, currently executes a minimal final verification over a batch of partially verified proofs. - * `sponge.ts/` has a custom sponge implementation which extends the `Poseidon.Sponge` type from [o1js](https://github.com/o1-labs/o1js). -* `test/`: JSON data used for testing, which are derived from the `verifier_circuit_tests/`. -* `SRS.ts` contains a type representing a [Universal Reference String](https://o1-labs.github.io/proof-systems/specs/urs.html?highlight=universal#universal-reference-string-urs) (but uses the old Structured Reference String name). -* `polynomial.ts` contains a type used for representing and operating with polynomials. -* `alphas.ts` contains a type representing a mapping between powers of a challenge (alpha) and different constraints. The linear combination resulting from these two will get you the -main polynomial of the circuit. -* `main.ts` is the main entrypoint of the module. - -#### Verifier circuit tests - -Contains a Rust crate with Kimchi as a dependency, and runs some components of it generating data for feeding and comparing tests inside the verifier circuit. - -For executing the main integration flow, do: - -```bash -cargo run -``` - -this will run the verification of a test circuit defined in Kimchi and will export some JSON data into `verifier_circuit/src/test`. - -For executing unit tests, do: - -```bash -cargo test -- --nocapture -``` - -this will execute some unit tests and output results that can be used as reference value in analogous reference tests inside the verifier circuit. - -### KZG Prover - -This module contains a Rust crate for generating a KZG proof. This proof is used in the `eth_verifier` module. - -It receives the state proof and the public inputs from the `verifier_circuit` module and: - -* calculates the verifier index -* calculates the linearization - -and sends it with the proof, the verifier input and the SRS. - -### Verifier smart contract - -`eth_verifier/` holds the Mina state verifier in solidity, implemented using [Foundry](https://book.getfoundry.sh/). The contract exposes an API for retrieving zk-verified data from the last Mina state. - -Install dependencies by running: - -```bash -make setup -``` - -#### Verifying a proof on testnet - -This repo has commands to easily deploy the Verifier contract and verify a proof on Sepolia Testnet. -To deploy the Verifier contract to Sepolia, run: - -```bash -PRIVATE_KEY= ETH_RPC_URL= make sepolia.deploy -``` - -Where: - -* `` is the private key of the account you will use to sign and pay for the deployment transaction. -* `` is the URL of the Sepolia endpoint. - -To upload the proof generated with `kzg_prover`, run: - -```bash -PRIVATE_KEY= ETH_RPC_URL= CONTRACT_ADDRESS= make sepolia.upload_proof -``` - -Where `` is the address of the deployed Verifier contract. -It reads the proof, its public inputs and the index linearization and uploads them to the testnet so that the verifier contract stores them. - -To verify the uploaded proof, run: - -```bash -PRIVATE_KEY= ETH_RPC_URL= CONTRACT_ADDRESS= make sepolia.verify -``` - -This will run the partial and final verification over the uploaded proof and return the verification result as a boolean. -`true` if the uploaded proof is valid, `false` otherwise. - -#### Local usage and deployment - -The contract will be deployed and verification should execute after running the whole project workflow (executing `make` in the root) to query, parse and serialize the last Mina state data and proof. - -To make this manually, you can follow the next steps. Files `proof.mpk` and `state.mpk` should be present in `eth_verifier/` for this. - -Start the local chain with: - -```bash -make run_node -``` - -and then deploy and verify the data: - -```bash -make deploy_and_verify -``` - -after deployment Anvil will return a list of deployed contracts, as it will also deploy needed libraries for the verifier: - -```bash -... - -##### anvil-hardhat -✅ [Success]Hash: 0x312036beb087e610e6ba100a1ef0653c31c28db4a924aee13e6550a4181a31ed -Contract Address: 0x67d269191c92Caf3cD7723F116c85e6E9bf55933 -Block: 17 -Paid: 0.005753394722296 ETH (1825720 gas * 3.1513018 gwei) - - -Transactions saved to: eth_verifier/broadcast/Deploy.s.sol/31337/run-latest.json - -Sensitive values saved to: eth_verifier/cache/Deploy.s.sol/31337/run-latest.json -``` - -the last contract deployed is the verifier, its address can be used for interacting with the contract. Check if verification was successful by running: - -```bash -cast call 'is_state_available()(bool)' -``` - -if `true`, then you can get State data from the contract storage: - -```bash -cast call 'retrieve_state_creator()(string)' -cast call 'retrieve_state_hash()(uint256)' -cast call 'retrieve_state_height(uint256)' -``` - -#### Testing Verifier Smart Contract - -Just run: - -```bash -make test -``` - -#### Notes related to cast usage - -* For invoking non-view functions in the contract, it's needed to publish a transaction via `cast send`. Getter functions can be invoked with `cast call`. -* Some commands may require you to encode the calldata before sending. In this case you can use `cast calldata`. - -For more information on Ethereum transactions and encoding you can visit the following resources: - -* [ABI Specification](https://docs.soliditylang.org/en/develop/abi-spec.html) -* [A Step-by-Step Guide to Generating Raw Ethereum Transactions](https://medium.com/@LucasJennings/a-step-by-step-guide-to-generating-raw-ethereum-transactions-c3292ad36ab4) -* [Transaction Calldata Demystified - A Guide to Understanding Transaction Calldata on Ethereum](https://www.quicknode.com/guides/ethereum-development/transactions/ethereum-transaction-calldata) - -## Merkle proof verifier - -This component is composed of: - -* **Ledger hash parser:** Fetches the ledger hash represented as a Merkle root and parses it to be EVM-friendly. Its logic is in `state_utility`. -* **Merkle tree parser:** Fetches the account state represented as a Merkle leaf and its corresponding Merkle path and parses them to be EVM-frienfly. Its logic is in `merkle_path`. -* **Verifier contract:** Verifies the account state inclusion by verifying the Merkle proof in Solidity. Its logic is in `eth_verifier`. - -## Other components - -* `kzg_prover`: Rust code for generating a KZG proof. This proof is used in the `eth_verifier`. -* `public_input_gen/`: Rust code for generating a Mina state proof. This proof is used in the `verifier_circuit`. -* `srs/`: Contains tests SRSs for Pallas and Vesta curves. -* `test_prover/`: Typescript code using `o1js` library. This is a test prover for the Kimchi proof system. It's a PoC and will be removed in the near future. +This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina proofs on Ethereum. ## Kimchi proving system @@ -519,8 +93,6 @@ Links to the associated code. [polynomials that have an evaluation proof](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L346) ---- - ## Pickles - Mina’s inductive zk-SNARK composition system Pickles uses a pair of amicable curves called [Pasta](https://o1-labs.github.io/proof-systems/specs/pasta.html) in order to deliver incremental verifiable computation efficiently. @@ -543,10 +115,9 @@ Tock is used to prove the verification of a Tick proof and outputs a Tick proof. Tick is used to prove the verification of a Tock proof and outputs a Tock proof. In other words, -* Provetock ( Verify(_Tick_) ) = Tickproof +* Prove_tock ( Verify(_Tick_) ) = Tick_proof -* Prove tick (Verify(_Tock_) ) = Tockproof -​ +* Prove_tick (Verify(_Tock_) ) = Tock_proof ![Description](/img/palas_vesta.png) @@ -573,10 +144,11 @@ Both [Step and Wrap circuits](https://o1-labs.github.io/proof-systems/pickles/ov 3. Verify that the previous Step proof is (second-)half-valid (perform the secondary checks that were inefficient to perform when the previous Step was Wrapped) 4. Verify that the previous Step correctly aggregated the previous accumulator, e.g. acc2=Aggregate(acc1,_π_ step,2) -![Step-Wrap Diagram ](/img/step_diagram.png) --------------------------------------------------------- +![Step-Wrap Diagram](/img/step_diagram.png) + +--- -### Accumulator ### +### Accumulator The accumulator is an abstraction introduced for the purpose of this diagram. In practice, each kimchi proof consists of (1) commitments to polynomials, (2) evaluations of them, (3) and the opening proof. @@ -588,7 +160,7 @@ In pickles, what we do is that we “absorb” this commitment `sg` from the p That is, for example, Step 1 will produce this commitment that is denoted as `acc1` on the diagram, as part of its opening proof, and Step 2 will absorb this commitment. And this “absorbtion” is what Wrap 2 will prove (and, partially, Step 3 will also refer to the challenges used to build `acc1`, but this detail is completely avoided in this overview). In the end, `acc2` will be the result of Step 2, so in a way `acc2` “aggregates” `acc1` which somewhat justifies the language used. -### Analysis of the Induction (recursion) method applied in Pickles ### +### Analysis of the Induction (recursion) method applied in Pickles The **Verifier** is divided into 2 modules, one part **Slow** and one part **Fast**. @@ -601,7 +173,7 @@ The **Verifier** is divided into 2 modules, one part **Slow** and one part **Fas On top of each **Pi** proof, we run a **Fast** verifier. With the **Pi** proof and the cumulative Statement from the previous step, the **U** algorithm is applied and a new updated Statement is created. This _new updated Statement_ is the input of the Slow part of the Verifier, but we don't run the Slow Verifier until we reach the end of the whole round. --- -Execution of **Verifier Slow** (which is very slow) can be deferred in sequences, and the V slow current always accumulates to the previous statement. This implicitly 'runs Vs on S1' as well. +Execution of **Verifier Slow** (which is very slow) can be **deferred** in sequences, and the V slow current always accumulates to the previous statement. This implicitly 'runs Vs on S1' as well. --- @@ -637,7 +209,7 @@ Let's now see how the Verifier Fast is divided. The proof **Pi** is divided into 2 parts, one corresponding to group operations **G**, and it exposes, as a public input to the circuit, the part of the proof that is necessary to execute **Vf**. -### Pickles Technical Diagrams ### +### Pickles Technical Diagrams The black boxes are data structures that have names and labels following the implementation. `MFNStep/MFNWrap` is an abbreviation from `MessagesForNextStep` and `MessagesForNextWrap` that is used for brevity. Most other datatypes are exactly the same as in the codebase. @@ -648,7 +220,7 @@ The proof **Pi** is divided into 2 parts, one corresponding to group operations ![Figure](/img/pickles_structure_drawio.png) -# Consensus +## Consensus Mina employs [Ouroboros Samasika](https://eprint.iacr.org/2020/352.pdf) as its consensus mechanism, which will be subsequently denoted as Samasika. Three essential commitments provided include: @@ -661,11 +233,11 @@ Joseph Bonneau, Izaak Meckler, Vanishree Rao, and Evan Shapiro collaborated to c The complexity of fully verifying the entire blockchain is independent of chain length. Samasika takes its name from the Sanskrit term, meaning small or succinct. -## Chain selection rules +### Chain selection rules Samasika uses two consensus rules: one for _short-range forks_ and one for _long-range forks_. -### Short-range fork rule +#### Short-range fork rule This rule is triggered whenever the fork is such that the adversary has not yet had the opportunity to mutate the block density distribution. A fork is considered short-range if it took place within the last **m** blocks. The straightforward implementation of this rule involves consistently storing the most recent **m** blocks. Yet, in the context of a succinct blockchain, this is considered not desirable. Mina Samasika follows a methodology that necessitates information about only two blocks, the concept involves a decentralized checkpointing algorithm. @@ -675,7 +247,7 @@ A fork is considered short-range if it took place within the last **m** blocks. When a malicious actor generates an long-range fork, it gradually distorts the leader selection distribution, resulting in a longer adversarial chain. At the start, the dishonest chain will have a reduced density, but eventually, the adversary will work to elevate it. Therefore, the only factor we can depend on is the variation in density in the initial slots after the fork, which is known as the _critical window_. The reasoning is that the critical window of the honest chain is very likely to have a higher density because this chain has the most stake -#### Decentralized checkpointing +### Decentralized checkpointing Samasika employs decentralized checkpointing to discern the nature of a fork, categorizing it as either short-range or long-range. @@ -689,17 +261,17 @@ Remember, a fork is categorized as short-range if either: As Mina prioritizes succinctness, it implies the need to maintain checkpoints for both the current and the previous epoch. -#### Short-range fork check +### Short-range fork check Keep in mind that short-range forks occur when the fork point occurs after the lock_checkpoint of the previous epoch; otherwise, it qualifies as a long-range fork. The position of the previous epoch is a measurement relative to a block's perspective. In cases where candidate blocks belong to distinct epochs, each will possess distinct current and previous epoch values. Alternatively, if the blocks belong to the same epoch, they will both reference the identical previous epoch. Thus we can simply check whether the blocks have the same lock_checkpoint in their previous epoch data. -#### Sliding window density +### Sliding window density Let describe Mina's succinct sliding window density algorithm used by the long-range fork rule. In detail how windows are represented in blocks and how to compute _minimum window density_ -##### Nomenclature +#### Nomenclature * We say a slot is _filled_ if it contains a valid non-orphaned block. * An _w-window_ is a sequential list of slots s1,...,sw of length _w_. @@ -716,13 +288,13 @@ The density of a window is computed as the sum of the densities of its sub-windo Given a window ``W`` that is a list of sub-window densities, the window density is: ``density(W) = sum(W)`` -##### Window structure +#### Window structure We use the phrase "window at sub-window _s_" to refer to the window _W_ whose most recent global sub-window is _s_. In the Samasika paper the window structure actually consists of the **11 previous sub-window densities**, the **current sub-window density** and the **minimum window density** .A total of _13_ densities. The most recent sub-window may be a previous sub-window or the current sub-window. -##### Minimum window density +#### Minimum window density The **minimum window density** at a given slot is defined as the minimum window density observed over all previous sub-windows and previous windows, all the way back to genesis. When a new block _B_ with parent _P_ is created, the minimum window density is computed like this. @@ -731,13 +303,13 @@ where ``current_window_density`` is the density of _B's_ projected window The relative sub-window _i_ of a sub-window _sw_ is its index within the window. -##### Ring-shift +#### Ring-shift When we shift a window ``[d0, d1, ..., d10]`` in order to add in a new sub-window ``d11``, we could evict the oldest sub-window d0 by shifting down all of the other sub-windows. Unfortunately, shifting a list in a SNARK circuit is very expensive. It is more efficient (and also equivalent) to just replace the sub-window we wish to evict by overwriting it with the new sub-window, like this: ``sub_window_densities: d11 | d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | d10`` -##### Projected window +#### Projected window Generating a new block and determining the optimal chain in accordance with the long-range fork rule involve the computation of a projected window. Given a window _W_ and a future global slot _next_, the projected window of _W_ to slot _next_ is a transformation of _W_ into what it would look like if it were positioned at slot _next_. @@ -750,7 +322,7 @@ Now that we know how much to ring-shift, the next question is what density value Recall this diagram: -![](/img/consensus01.png) +![consensus01](/img/consensus01.png) Suppose window W's current sub-window is 11 whose density is d11 and d1 is the oldest sub-window density @@ -758,11 +330,11 @@ Now imagine we want to project W to global slot ``next = 15``. This is ``k = 15 Ring-shift in 3 zero densities to obtain the projected window. -![](/img/consensus02.png) +![consensus02](/img/consensus02.png) We can derive some instructive cases from the general rule -![](/img/consensus03.png) +![consensus03](/img/consensus03.png) ##### Genesis window @@ -800,15 +372,15 @@ Supplementary tiebreak logic becomes necessary when assessing chains with identi Let ``P.tip`` refer to the top block of peer ``P``'s current best chain. Assuming an update to either ``P.tip`` or ``P.chains``, ``P`` must update its tip similar to this: -![](/img/consensus06.png) +![consensus06](/img/consensus06.png) The following selectSecureChain algorithm receives the peer's current best chain P.tip and its set of known valid chains P.chains and produces the most secure chain as output. -![](/img/consensus07.png) +![consensus07](/img/consensus07.png) And the ``selectLongerChain`` algorithm: -![](/img/consensus08.png) +![consensus08](/img/consensus08.png) ### Maintaining the k-th predecessor epoch ledger diff --git a/eth_verifier/.gitignore b/eth_verifier/.gitignore deleted file mode 100644 index aac11a7a..00000000 --- a/eth_verifier/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# Compiler files -cache/ -out/ - -# Ignores development broadcast logs -broadcast/ - -# Docs -docs/ - -# Dotenv file -.env - -proof.mpk -state.mpk diff --git a/eth_verifier/.solhint.json b/eth_verifier/.solhint.json deleted file mode 100644 index ad4a1cf8..00000000 --- a/eth_verifier/.solhint.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "solhint:recommended", - "rules": { - "func-visibility": "error", - "var-name-mixedcase": "off", - "func-name-mixedcase": "off", - "no-inline-assembly": "off", - "one-contract-per-file": "off" - } -} diff --git a/eth_verifier/Makefile b/eth_verifier/Makefile deleted file mode 100644 index d20b8d83..00000000 --- a/eth_verifier/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -.PHONY: test setup - -setup: - curl -L https://foundry.paradigm.xyz | bash - foundryup -v nightly-5b7e4cb3c882b28f3c32ba580de27ce7381f415a - -test: - forge test -vv --via-ir --optimize --gas-report - -run_node: - anvil - -run_locally: - PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \ - forge script --non-interactive script/Verify.s.sol:VerifyAndCheckAccount --broadcast --rpc-url http://localhost:8545 - -merkle_locally: - PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \ - forge script --non-interactive script/Verify.s.sol:MerkleVerify --broadcast --rpc-url http://localhost:8545 - -sepolia.deploy: - @forge script --rpc-url ${ETH_RPC_URL} --broadcast \ - --private-key ${PRIVATE_KEY} \ - --chain-id 11155111 \ - --delay 5 \ - --legacy \ - script/Deploy.s.sol:Deploy - -sepolia.upload_proof_and_merkle_root: - @forge script --rpc-url ${ETH_RPC_URL} --broadcast \ - --private-key ${PRIVATE_KEY} \ - --chain-id 11155111 \ - --legacy \ - script/UploadProof.s.sol:UploadProof - -sepolia.deploy_deser: - @forge script --rpc-url ${ETH_RPC_URL} --broadcast \ - --private-key ${PRIVATE_KEY} \ - --chain-id 11155111 \ - --delay 5 \ - --legacy \ - script/Deploy.s.sol:DeployAndDeser - -sepolia.verify: - @forge script --rpc-url ${ETH_RPC_URL} --broadcast \ - --private-key ${PRIVATE_KEY} \ - --chain-id 11155111 \ - --delay 5 \ - --legacy \ - script/Verify.s.sol:PartialAndFinalVerify - -sepolia.merkle_verify: - @forge script --rpc-url ${ETH_RPC_URL} --broadcast \ - --private-key ${PRIVATE_KEY} \ - --chain-id 11155111 \ - --delay 5 \ - --legacy \ - script/Verify.s.sol:MerkleVerify diff --git a/eth_verifier/foundry.toml b/eth_verifier/foundry.toml deleted file mode 100644 index 6572ad02..00000000 --- a/eth_verifier/foundry.toml +++ /dev/null @@ -1,27 +0,0 @@ -[profile.default] -src = "src" -out = "out" -libs = ["lib"] -optimizer = true -optimizer_runs = 200 -via_ir = true -fs_permissions = [ - { access = "read", path = "./verifier_index.bin"}, - { access = "read", path = "./prover_proof.bin"}, - { access = "read", path = "./proof_hash.bin"}, - { access = "read", path = "./merkle_path.bin"}, - { access = "read", path = "./merkle_root.bin"}, - { access = "read", path = "./merkle_leaf.bin"}, - { access = "read", path = "./test_merkle_path.bin"}, - { access = "read", path = "./linearization.bin"}, - { access = "read", path = "./linearization_literals.bin"}, - { access = "read", path = "./unit_test_data/"}, -] -# https://github.com/foundry-rs/foundry/issues/6780#issuecomment-1962319449 -bytecode_hash = "none" -cbor_metadata = false -sparse_mode = false - -[profile.default.optimizer_details] -# constantOptimizer = true -yul = true diff --git a/eth_verifier/lagrange_bases.bin b/eth_verifier/lagrange_bases.bin deleted file mode 100644 index 5906dda6..00000000 --- a/eth_verifier/lagrange_bases.bin +++ /dev/null @@ -1 +0,0 @@ -( âő/Ž«;ął ő¶•`—Ž „Æs­XÁ(x—Ú|ł<وĄ2‡p‰ 'TV)H&œ€ĆIË9 \ No newline at end of file diff --git a/eth_verifier/lagrange_bases.mpk b/eth_verifier/lagrange_bases.mpk deleted file mode 100644 index 7682811796e088d9e99e196386d762b3ad4e3e65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 zcmZoXtH3a^X=Q0%aYklZNovZ(BMJw_`Pm~_*A^dJD#+P4Jz?s$ue_UCgcez^-lG5Y MkpRz% uint256[2]) map; - /// The powers of alpha: 1, alpha, alpha^2, .. - /// The array is initially empty until powers are initialized. - /// If not empty, you can't register new contraints. - uint256[] alphas; -} - -error CantRegisterNewConstraints(); - -function register(Alphas storage self, ArgumentType ty, uint256 powers) { - if (self.alphas.length != 0) { - revert CantRegisterNewConstraints(); - } - - if ( - ty == ArgumentType.GateGeneric || ty == ArgumentType.GatePoseidon || ty == ArgumentType.GateCompleteAdd - || ty == ArgumentType.GateVarBaseMul || ty == ArgumentType.GateEndoMul || ty == ArgumentType.GateEndoMulScalar - || ty == ArgumentType.GateLookup || ty == ArgumentType.GateCairoClaim || ty == ArgumentType.GateCairoInstruction - || ty == ArgumentType.GateCairoFlags || ty == ArgumentType.GateCairoTransition - || ty == ArgumentType.GateRangeCheck0 || ty == ArgumentType.GateRangeCheck1 - || ty == ArgumentType.GateForeignFieldAdd || ty == ArgumentType.GateForeignFieldMul - || ty == ArgumentType.GateXor16 || ty == ArgumentType.GateRot64 - ) { - ty = ArgumentType.GateZero; - } - - self.map[ty] = [self.next_power, powers]; - self.next_power += powers; -} - -/// @notice instantiates the ranges with an actual field element `alpha`. -/// @notice once you call this function, you cannot register new constraints. -function instantiate(Alphas storage self, uint256 alpha) { - uint256 last_power = 1; - uint256[] memory alphas = new uint256[](self.next_power); - alphas[0] = last_power; - - for (uint256 i = 1; i < self.next_power; i++) { - last_power = Scalar.mul(last_power, alpha); - alphas[i] = last_power; - } - self.alphas = alphas; -} - -error NotEnoughPowersOfAlpha(uint256 asked_for, uint256 available); -error NonInstantiatedPowersOfAlpha(); -error PowersOfAlphaIteratorOutOfBounds(); // powers of alpha iterator out of bounds - -/// @notice retrieves the powers of alpha, upperbounded by `num` - -function get_alphas(Alphas storage self, ArgumentType ty, uint256 num) view returns (AlphasIterator memory) { - if ( - ty == ArgumentType.GateZero || ty == ArgumentType.GateGeneric || ty == ArgumentType.GatePoseidon - || ty == ArgumentType.GateCompleteAdd || ty == ArgumentType.GateVarBaseMul || ty == ArgumentType.GateEndoMul - || ty == ArgumentType.GateEndoMulScalar || ty == ArgumentType.GateLookup || ty == ArgumentType.GateCairoClaim - || ty == ArgumentType.GateCairoInstruction || ty == ArgumentType.GateCairoFlags - || ty == ArgumentType.GateCairoTransition || ty == ArgumentType.GateRangeCheck0 - || ty == ArgumentType.GateRangeCheck1 || ty == ArgumentType.GateForeignFieldAdd - || ty == ArgumentType.GateForeignFieldMul || ty == ArgumentType.GateXor16 || ty == ArgumentType.GateRot64 - ) { - ty = ArgumentType.GateZero; - } - - uint256[2] memory range = self.map[ty]; - if (num > range[1]) { - revert NotEnoughPowersOfAlpha(num, range[1]); - } - - if (self.alphas.length == 0) { - revert NonInstantiatedPowersOfAlpha(); - } - - uint256[] memory powers = new uint256[](num); - for (uint256 i = 0; i < num; i++) { - powers[i] = self.alphas[range[0] + i]; - } - - return AlphasIterator(powers, 0); -} - -// @notice iterator for retrieving powers of alpha. -// @notice powers are already computed so this should always be entirely consumed. -struct AlphasIterator { - uint256[] powers; - uint256 current_index; -} - -function it_next(AlphasIterator memory self) pure returns (uint256) { - if (self.current_index >= self.powers.length) { - revert PowersOfAlphaIteratorOutOfBounds(); - } - return self.powers[self.current_index++]; -} - -enum ArgumentType { - // Gate types - GateZero, - GateGeneric, - GatePoseidon, - GateCompleteAdd, - GateVarBaseMul, - GateEndoMul, - GateEndoMulScalar, - GateLookup, - GateCairoClaim, - GateCairoInstruction, - GateCairoFlags, - GateCairoTransition, - GateRangeCheck0, - GateRangeCheck1, - GateForeignFieldAdd, - GateForeignFieldMul, - GateXor16, - GateRot64, - // Permutation - Permutation -} - -//Lookup diff --git a/eth_verifier/lib/Commitment.sol b/eth_verifier/lib/Commitment.sol deleted file mode 100644 index 0cf320bc..00000000 --- a/eth_verifier/lib/Commitment.sol +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {BN254} from "./bn254/BN254.sol"; -import {Scalar} from "./bn254/Fields.sol"; -import {Evaluation} from "./Evaluations.sol"; - -using {BN254.add, BN254.scalarMul, BN254.neg} for BN254.G1Point; - -error MSMInvalidLengths(); - -library Commitment { - struct URS { - BN254.G1Point[] g; - BN254.G1Point h; - } - - // WARN: The field shifted is optional but in Solidity we can't have that. - // for our test circuit it's not necessary, we can just ignore it, using infinity. - struct PolyComm { - BN254.G1Point[] unshifted; - BN254.G1Point shifted; - } - - function combine_commitments_and_evaluations(Evaluation[] memory evaluations, uint256 polyscale, uint256 rand_base) - internal - view - returns (BN254.G1Point memory poly_commitment, uint256[] memory acc) - { - uint256 xi_i = polyscale; - poly_commitment = evaluations[0].commitment.scalarMul(rand_base); - uint256 num_evals = evaluations.length != 0 ? evaluations[0].evaluations.length : 0; - acc = new uint256[](num_evals); - for (uint256 i = 0; i < num_evals; i++) { - acc[i] = evaluations[0].evaluations[i]; - } - - // WARN: the actual length might be more than evaluations.length - // but for our test proof it will not. - - for (uint256 i = 1; i < evaluations.length; i++) { - BN254.G1Point memory commitment = evaluations[i].commitment; - uint256[2] memory inner_evaluations = evaluations[i].evaluations; - BN254.G1Point memory comm_ch = commitment; - poly_commitment = poly_commitment.add(comm_ch.scalarMul(Scalar.mul(rand_base, xi_i))); - for (uint256 k = 0; k < inner_evaluations.length; k++) { - acc[k] = Scalar.add(acc[k], Scalar.mul(inner_evaluations[k], xi_i)); - } - xi_i = Scalar.mul(xi_i, polyscale); - // TODO: degree bound, shifted part - } - } -} diff --git a/eth_verifier/lib/Constants.sol b/eth_verifier/lib/Constants.sol deleted file mode 100644 index 19025794..00000000 --- a/eth_verifier/lib/Constants.sol +++ /dev/null @@ -1,71 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -uint256 constant COLUMNS = 15; -uint256 constant PERMUTS = 7; - -uint256 constant PERMUTATION_CONSTRAINTS = 3; -uint256 constant VARBASEMUL_CONSTRAINTS = 21; - -// ProofEvals bit flag positions -uint256 constant PUBLIC_EVALS_FLAG = 0; -uint256 constant RANGE_CHECK0_SELECTOR_EVAL_FLAG = 1; -uint256 constant RANGE_CHECK1_SELECTOR_EVAL_FLAG = 2; -uint256 constant FOREIGN_FIELD_ADD_SELECTOR_EVAL_FLAG = 3; -uint256 constant FOREIGN_FIELD_MUL_SELECTOR_EVAL_FLAG = 4; -uint256 constant XOR_SELECTOR_EVAL_FLAG = 5; -uint256 constant ROT_SELECTOR_EVAL_FLAG = 6; -uint256 constant LOOKUP_AGGREGATION_EVAL_FLAG = 7; -uint256 constant LOOKUP_TABLE_EVAL_FLAG = 8; -uint256 constant LOOKUP_SORTED_EVAL_FLAG = 9; // these are 5 -uint256 constant RUNTIME_LOOKUP_TABLE_EVAL_FLAG = 14; -uint256 constant RUNTIME_LOOKUP_TABLE_SELECTOR_EVAL_FLAG = 15; -uint256 constant XOR_LOOKUP_SELECTOR_EVAL_FLAG = 16; -uint256 constant LOOKUP_GATE_LOOKUP_SELECTOR_EVAL_FLAG = 17; -uint256 constant RANGE_CHECK_LOOKUP_SELECTOR_EVAL_FLAG = 18; -uint256 constant FOREIGN_FIELD_MUL_LOOKUP_SELECTOR_EVAL_FLAG = 19; - -// ProofCommitments bit flag positions -uint256 constant LOOKUP_SORTED_COMM_FLAG = 0; -uint256 constant LOOKUP_AGGREG_COMM_FLAG = 1; -uint256 constant LOOKUP_RUNTIME_COMM_FLAG = 2; - -// VerifierIndex bit flag positions -uint256 constant RANGE_CHECK0_COMM_FLAG = 0; -uint256 constant RANGE_CHECK1_COMM_FLAG = 1; -uint256 constant FOREIGN_FIELD_ADD_COMM_FLAG = 2; -uint256 constant FOREIGN_FIELD_MUL_COMM_FLAG = 3; -uint256 constant XOR_COMM_FLAG = 4; -uint256 constant ROT_COMM_FLAG = 5; -uint256 constant LOOKUP_VERIFIER_INDEX_FLAG = 6; - -// LookupVerifierIndex bit flag positions -uint256 constant XOR_FLAG = 0; -uint256 constant LOOKUP_FLAG = 1; -uint256 constant RANGE_CHECK_FLAG = 2; -uint256 constant FFMUL_FLAG = 3; -uint256 constant TABLE_IDS_FLAG = 4; -uint256 constant RUNTIME_TABLES_SELECTOR_FLAG = 5; - -// Column variant constants -// - GateType -uint256 constant GATE_TYPE_GENERIC = 0; -uint256 constant GATE_TYPE_POSEIDON = 1; -uint256 constant GATE_TYPE_COMPLETE_ADD = 2; -uint256 constant GATE_TYPE_VAR_BASE_MUL = 3; -uint256 constant GATE_TYPE_ENDO_MUL = 4; -uint256 constant GATE_TYPE_ENDO_MUL_SCALAR = 5; -uint256 constant GATE_TYPE_RANGE_CHECK_0 = 6; -uint256 constant GATE_TYPE_RANGE_CHECK_1 = 7; -uint256 constant GATE_TYPE_FOREIGN_FIELD_ADD = 8; -uint256 constant GATE_TYPE_FOREIGN_FIELD_MUL = 9; -uint256 constant GATE_TYPE_XOR_16 = 10; -uint256 constant GATE_TYPE_ROT_64 = 11; -// - LookupPattern -uint256 constant LOOKUP_PATTERN_XOR = 0; -uint256 constant LOOKUP_PATTERN_LOOKUP = 1; -uint256 constant LOOKUP_PATTERN_RANGE_CHECK = 2; -uint256 constant LOOKUP_PATTERN_FOREIGN_FIELD_MUL = 3; - -// Keccak Sponge -uint256 constant MAX_SPONGE_STATE_SIZE = 4096; diff --git a/eth_verifier/lib/Evaluations.sol b/eth_verifier/lib/Evaluations.sol deleted file mode 100644 index a4479a97..00000000 --- a/eth_verifier/lib/Evaluations.sol +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {Scalar} from "./bn254/Fields.sol"; -import {BN254} from "./bn254/BN254.sol"; - -struct PointEvaluations { - /// evaluation at the challenge point zeta - uint256 zeta; - /// Evaluation at `zeta . omega`, the product of the challenge point and the group generator - uint256 zeta_omega; -} - -struct PointEvaluationsArray { - /// evaluation at the challenge point zeta - uint256[] zeta; - /// Evaluation at `zeta . omega`, the product of the challenge point and the group generator - uint256[] zeta_omega; -} - -/// Contains the evaluation of a polynomial commitment at a set of points. -struct Evaluation { - /// The commitment of the polynomial being evaluated - BN254.G1Point commitment; // TODO: Dense - /// Contains an evaluation table - uint256[2] evaluations; - /// optional degree bound - uint128 degree_bound; -} diff --git a/eth_verifier/lib/Oracles.sol b/eth_verifier/lib/Oracles.sol deleted file mode 100644 index f28382aa..00000000 --- a/eth_verifier/lib/Oracles.sol +++ /dev/null @@ -1,358 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import "./bn254/Fields.sol"; -import "./VerifierIndex.sol"; -import "./Evaluations.sol"; -import "./Alphas.sol"; -import "./sponge/Sponge.sol"; -import "./Commitment.sol"; -import "./Proof.sol"; -import "./Polynomial.sol"; -import "./Constants.sol"; -import {Utils} from "./Utils.sol"; - -library Oracles { - using {to_field_with_length, to_field} for ScalarChallenge; - using {instantiate, get_alphas} for Alphas; - using {it_next} for AlphasIterator; - using { - KeccakSponge.reinit, - KeccakSponge.absorb_scalar, - KeccakSponge.absorb_g_single, - KeccakSponge.absorb_evaluations, - KeccakSponge.challenge_base, - KeccakSponge.challenge_scalar, - KeccakSponge.digest_base, - KeccakSponge.digest_scalar - } for KeccakSponge.Sponge; - using {Proof.get_column_eval} for Proof.ProofEvaluations; - - uint64 internal constant CHALLENGE_LENGTH_IN_LIMBS = 2; - - error IncorrectCommitmentLength(string name, uint256 required_len, uint256 actual_len); - error MissingPublicInputEvaluation(); - - // This takes Kimchi's `oracles()` as reference. - function fiat_shamir( - Proof.ProverProof memory proof, - VerifierIndexLib.VerifierIndex storage index, - BN254.G1Point memory public_comm, - uint256 public_input, - bool is_public_input_set - ) internal returns (Result memory) { - uint256 chunk_size = index.domain_size < index.max_poly_size ? 1 : index.domain_size / index.max_poly_size; - - (uint256 _endo_q, uint256 endo_r) = BN254.endo_coeffs_g1(); - - // 1. Setup the Fq-Sponge. - KeccakSponge.Sponge memory base_sponge; - base_sponge.reinit(); - - // 2. Absorb the digest of the VerifierIndex. - uint256 verifier_index_digest = VerifierIndexLib.verifier_digest(index); - base_sponge.absorb_scalar(verifier_index_digest); - - // TODO: 3. Absorb the commitment to the previous challenges. - // WARN: is this necessary? - // INFO: For our current o1js proof, this isn't necessary. - - // 4. Absorb the commitment to the public inputs. - base_sponge.absorb_g_single(public_comm); - - // INFO: up until this point, all previous values only depend on the verifier index which is fixed for a given - // constraint system. - - // 5. Absorb the commitments to the registers / witness columns - for (uint256 i = 0; i < proof.commitments.w_comm.length; i++) { - base_sponge.absorb_g_single(proof.commitments.w_comm[i]); - } - - // TODO: 6. If lookup is used, absorb runtime commitment - // INFO: this isn't needed for our current test proof - - // TODO: 7. Calculate joint_combiner - // INFO: for our test proof this will be zero. - ScalarChallenge memory joint_combiner = ScalarChallenge(0); - uint256 joint_combiner_field = joint_combiner.to_field(endo_r); - - // 8. If lookup is used, absorb commitments to the sorted polys: - for (uint256 i = 0; i < proof.commitments.lookup_sorted.length; i++) { - base_sponge.absorb_g_single(proof.commitments.lookup_sorted[i]); - } - - // 9. Sample beta from the sponge - uint256 beta = base_sponge.challenge_scalar(); - // 10. Sample gamma from the sponge - uint256 gamma = base_sponge.challenge_scalar(); - - // 11. If using lookup, absorb the commitment to the aggregation lookup polynomial. - base_sponge.absorb_g_single(proof.commitments.lookup_aggreg); - - // 12. Absorb the commitment to the permutation trace with the Fq-Sponge. - base_sponge.absorb_g_single(proof.commitments.z_comm); - - // 13. Sample alpha prime - ScalarChallenge memory alpha_chal = ScalarChallenge(base_sponge.challenge_scalar()); - - // 14. Derive alpha using the endomorphism - uint256 alpha = alpha_chal.to_field(endo_r); - - // 15. Enforce that the length of the $t$ commitment is of size 7. - // INFO: We are assuming the prover is configured accordingly so this is always the case - - // 16. Absorb commitment to the quotient polynomial $t$. - for (uint256 i = 0; i < proof.commitments.t_comm.length; i++) { - base_sponge.absorb_g_single(proof.commitments.t_comm[i]); - } - - // 17. Sample zeta prime - ScalarChallenge memory zeta_chal = ScalarChallenge(base_sponge.challenge_scalar()); - // 18. Derive zeta using the endomorphism - uint256 zeta = zeta_chal.to_field(endo_r); - - // 19. Setup a scalar sponge - KeccakSponge.Sponge memory scalar_sponge; - scalar_sponge.reinit(); - - // 20. Absorb the digest of the previous sponge - uint256 digest = base_sponge.digest_scalar(); - scalar_sponge.absorb_scalar(digest); - - // TODO: 21. Absorb the previous recursion challenges - // INFO: our proofs won't have recursion for now, so we only need - // to absorb the digest of an empty sponge. This will be hardcoded: - scalar_sponge.absorb_scalar(Scalar.from(0x00C5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A4)); - - // often used values - uint256 zeta1 = Scalar.pow(zeta, index.domain_size); - uint256 zetaw = Scalar.mul(zeta, index.domain_gen); - uint256[] memory evaluation_points = new uint256[](2); - evaluation_points[0] = zeta; - evaluation_points[1] = zetaw; - PointEvaluations memory powers_of_eval_points_for_chunks = - PointEvaluations(Scalar.pow(zeta, index.max_poly_size), Scalar.pow(zetaw, index.max_poly_size)); - - // TODO: 22. Compute evaluations for the previous recursion challenges - // INFO: this isn't necessary for our current test proof - - // retrieve ranges for the powers of alphas - Alphas storage all_alphas = index.powers_of_alpha; - all_alphas.instantiate(alpha); - // WARN: all_alphas should be a clone of index.powers_of_alpha, not a reference. - // in our case we can only have it storage because it contains a nested array. - - // evaluations of the public input - - uint256[2] memory public_evals; - if ((proof.evals.optional_field_flags & 1) == 1) { - public_evals = [proof.evals.public_evals.zeta, proof.evals.public_evals.zeta_omega]; - } else if (chunk_size > 1) { - revert MissingPublicInputEvaluation(); - } else if (is_public_input_set) { - // compute Lagrange base evaluation denominators - - // INFO: w is an iterator over the elements of the domain, we want to take N elements - // where N is the length of the public input. - uint256 w = 1; - uint256[2] memory zeta_minus_x = [Scalar.inv(Scalar.sub(zeta, w)), Scalar.inv(Scalar.sub(zetaw, w))]; - - // 23. Evaluate the negated public polynomial (if present) at $\zeta$ and $\zeta\omega$. - // NOTE: this works only in the case when the poly segment size is not smaller than that of the domain. - uint256 pe_zeta = 0; - uint256 size_inv = Scalar.inv(Scalar.from(index.domain_size)); - // pe_zeta = pe_zeta - l*p*w_i - pe_zeta = Scalar.add(pe_zeta, Scalar.mul(Scalar.mul(Scalar.neg(zeta_minus_x[0]), public_input), w)); - - // pe_zeta = pe_zeta * (zeta1 - 1) * domain_size_inv - pe_zeta = Scalar.mul(Scalar.mul(pe_zeta, Scalar.sub(zeta1, 1)), size_inv); - - // pe_zetaOmega = pe_zetaOmega - l*p*w_i - uint256 pe_zetaOmega = Scalar.mul(Scalar.mul(Scalar.neg(zeta_minus_x[1]), public_input), w); - // pe_zetaOmega = pe_zetaOmega * (zetaw^(domain_size) - 1) * domain_size_inv - pe_zetaOmega = - Scalar.mul(pe_zetaOmega, Scalar.mul(Scalar.sub(Scalar.pow(zetaw, index.domain_size), 1), size_inv)); - - public_evals = [pe_zeta, pe_zetaOmega]; - } else { - revert MissingPublicInputEvaluation(); - } - - // 24. Absorb the unique evaluation of ft - scalar_sponge.absorb_scalar(proof.ft_eval1); - - // 25. Absorb all the polynomial evaluations in $\zeta$ and $\zeta\omega$: - //~~ * the public polynomial - //~~ * z - //~~ * generic selector - //~~ * poseidon selector - //~~ * the 15 register/witness - //~~ * 6 sigmas evaluations (the last one is not evaluated) - scalar_sponge.absorb_scalar(public_evals[0]); - scalar_sponge.absorb_scalar(public_evals[1]); - scalar_sponge.absorb_evaluations(proof.evals); - - // 26. Sample v prime with the scalar sponge and derive v - ScalarChallenge memory v_chal = ScalarChallenge(scalar_sponge.challenge_scalar()); - uint256 v = v_chal.to_field(endo_r); - - // 27. Sample u prime with the scalar sponge and derive u - ScalarChallenge memory u_chal = ScalarChallenge(scalar_sponge.challenge_scalar()); - uint256 u = u_chal.to_field(endo_r); - - // 28. Create a list of all polynomials that have an evaluation proof - //ProofEvaluations memory evals = proof.evals.combine_evals(powers_of_eval_points_for_chunks); - // INFO: There's only one evaluation per polynomial so there's nothing to combine - Proof.ProofEvaluations memory evals = proof.evals; - - // 29. Compute the evaluation of $ft(\zeta)$. - uint256 permutation_vanishing_poly = - Polynomial.eval_vanishes_on_last_n_rows(index.domain_gen, index.domain_size, index.zk_rows, zeta); - uint256 zeta1m1 = Scalar.sub(zeta1, 1); - - AlphasIterator memory alpha_pows = all_alphas.get_alphas(ArgumentType.Permutation, PERMUTATION_CONSTRAINTS); - uint256 alpha0 = alpha_pows.it_next(); - uint256 alpha1 = alpha_pows.it_next(); - uint256 alpha2 = alpha_pows.it_next(); - - // initial value - uint256 ft_eval0 = Scalar.mul( - Scalar.mul(Scalar.mul(Scalar.add(evals.w[PERMUTS - 1].zeta, gamma), evals.z.zeta_omega), alpha0), - permutation_vanishing_poly - ); - - // map and reduction - for (uint256 i = 0; i < PERMUTS - 1; i++) { - // reduction - ft_eval0 = - Scalar.mul(ft_eval0, Scalar.add(Scalar.add(Scalar.mul(beta, evals.s[i].zeta), evals.w[i].zeta), gamma)); - } - - ft_eval0 = Scalar.sub(ft_eval0, public_evals[0]); - - // initial value - uint256 ev = Scalar.mul(Scalar.mul(alpha0, permutation_vanishing_poly), evals.z.zeta); - - // zip w and shift, map and reduction - for (uint256 i = 0; i < Utils.min(evals.w.length, index.shift.length); i++) { - ev = Scalar.mul( - ev, Scalar.add(Scalar.add(gamma, Scalar.mul(Scalar.mul(beta, zeta), index.shift[i])), evals.w[i].zeta) - ); // reduction - } - ft_eval0 = Scalar.sub(ft_eval0, ev); - - uint256 numerator = Scalar.mul( - Scalar.add( - Scalar.mul(Scalar.mul(zeta1m1, alpha1), Scalar.sub(zeta, index.w)), - Scalar.mul(Scalar.mul(zeta1m1, alpha2), Scalar.sub(zeta, 1)) - ), - Scalar.sub(1, evals.z.zeta) - ); - uint256 denominator = Scalar.inv(Scalar.mul(Scalar.sub(zeta, index.w), Scalar.sub(zeta, 1))); - ft_eval0 = Scalar.add(ft_eval0, Scalar.mul(numerator, denominator)); - - ExprConstants memory constants = - ExprConstants(alpha, beta, gamma, joint_combiner_field, index.endo, index.zk_rows); - - uint256 vanishing_eval = - PolishTokenEvaluation.evaluate_vanishing_polynomial(index.domain_gen, index.domain_size, zeta); - - ft_eval0 = Scalar.sub( - ft_eval0, - PolishTokenEvaluation.evaluate( - index.linearization, index.domain_gen, index.domain_size, zeta, vanishing_eval, evals, constants - ) - ); - - RandomOracles memory oracles = RandomOracles( - joint_combiner, - joint_combiner_field, - beta, - gamma, - alpha_chal, - alpha, - zeta, - v, - u, - zeta_chal, - v_chal, - u_chal, - vanishing_eval - ); - - return Result(digest, oracles, public_evals, powers_of_eval_points_for_chunks, zeta1, ft_eval0); - } - - struct RandomOracles { - ScalarChallenge joint_combiner; - uint256 joint_combiner_field; - uint256 beta; - uint256 gamma; - ScalarChallenge alpha_chal; - uint256 alpha; - uint256 zeta; - uint256 v; - uint256 u; - ScalarChallenge zeta_chal; - ScalarChallenge v_chal; - ScalarChallenge u_chal; - uint256 vanishing_eval; - } - - struct Result { - // INFO: sponges and all_alphas are stored in storage - - // the digest of the scalar sponge - uint256 digest; - // challenges produced - RandomOracles oracles; - // public polynomial evaluations - uint256[2] public_evals; - // zeta^n and (zeta * omega)^n - PointEvaluations powers_of_eval_points_for_chunks; - // pre-computed zeta^n - uint256 zeta1; - // the evaluation f(zeta) - t(zeta) * Z_H(zeta) - uint256 ft_eval0; - } - - struct ScalarChallenge { - uint256 chal; - } - - function to_field_with_length(ScalarChallenge memory self, uint256 length_in_bits, uint256 endo_coeff) - internal - pure - returns (uint256) - { - uint256 r = self.chal; - uint256 a = Scalar.from(2); - uint256 b = Scalar.from(2); - - uint256 one = Scalar.from(1); - uint256 neg_one = Scalar.neg(1); - - // (0..length_in_bits / 2).rev() - for (uint256 _i = length_in_bits / 2; _i >= 1; _i--) { - uint256 i = _i - 1; - a = Scalar.double(a); - b = Scalar.double(b); - - uint256 r_2i = (r >> (2 * i)) & 1; - uint256 s = r_2i == 0 ? neg_one : one; - - if ((r >> (2 * i + 1)) & 1 == 0) { - b = Scalar.add(b, s); - } else { - a = Scalar.add(a, s); - } - } - - return Scalar.add(Scalar.mul(a, endo_coeff), b); - } - - function to_field(ScalarChallenge memory self, uint256 endo_coeff) internal pure returns (uint256) { - uint64 length_in_bits = 64 * CHALLENGE_LENGTH_IN_LIMBS; - return self.to_field_with_length(length_in_bits, endo_coeff); - } -} diff --git a/eth_verifier/lib/Polynomial.sol b/eth_verifier/lib/Polynomial.sol deleted file mode 100644 index a1a9ce7c..00000000 --- a/eth_verifier/lib/Polynomial.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {Scalar} from "./bn254/Fields.sol"; - -library Polynomial { - // @notice evaluates the polynomial - // @notice (x - w^{n - i}) * (x - w^{n - i + 1}) * ... * (x - w^{n - 1}) - - function eval_vanishes_on_last_n_rows(uint256 domain_gen, uint256 domain_size, uint256 i, uint256 x) - internal - view - returns (uint256) - { - if (i == 0) { - return 1; - } - uint256 term = Scalar.pow(domain_gen, domain_size - i); - uint256 acc = Scalar.sub(x, term); - for (uint256 _j = 0; _j < i - 1; _j++) { - term = Scalar.mul(term, domain_gen); - acc = Scalar.mul(acc, Scalar.sub(x, term)); - } - return acc; - } -} diff --git a/eth_verifier/lib/Proof.sol b/eth_verifier/lib/Proof.sol deleted file mode 100644 index af34f27a..00000000 --- a/eth_verifier/lib/Proof.sol +++ /dev/null @@ -1,301 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import "./expr/Expr.sol"; -import "./Commitment.sol"; -import {BN254} from "./bn254/BN254.sol"; -import "./bn254/Fields.sol"; -import "./VerifierIndex.sol"; -import "./Constants.sol"; - -library Proof { - error MissingIndexEvaluation(string col); - error MissingColumnEvaluation(ColumnVariant variant); - error MissingLookupColumnEvaluation(uint256 pattern); - error MissingIndexColumnEvaluation(uint256 gate); - error UnhandledColumnVariant(uint256 id); - - struct PairingProof { - BN254.G1Point quotient; - uint256 blinding; - } - - struct ProverProof { - ProverCommitments commitments; - PairingProof opening; - ProofEvaluations evals; - uint256 ft_eval1; - } - - struct AggregatedEvaluationProof { - Evaluation[] evaluations; - uint256[2] evaluation_points; - uint256 polyscale; - PairingProof opening; - } - - struct ProofEvaluations { - // each bit represents the presence (1) or absence (0) of an - // optional field. - uint256 optional_field_flags; - // witness polynomials - PointEvaluations[COLUMNS] w; - // permutation polynomial - PointEvaluations z; - // permutation polynomials - // (PERMUTS-1 evaluations because the last permutation is only used in commitment form) - PointEvaluations[PERMUTS - 1] s; - // coefficient polynomials - PointEvaluations[COLUMNS] coefficients; - // evaluation of the generic selector polynomial - PointEvaluations generic_selector; - // evaluation of the poseidon selector polynomial - PointEvaluations poseidon_selector; - // evaluation of the EC addition selector polynomial - PointEvaluations complete_add_selector; - // evaluation of the EC variable base scalar multiplication selector polynomial - PointEvaluations mul_selector; - // evaluation of the EC endoscalar emultiplication selector polynomial - PointEvaluations emul_selector; - // evaluation of the endoscalar multiplication scalar computation selector polynomial - PointEvaluations endomul_scalar_selector; - // Optional gates - PointEvaluations public_evals; - // evaluation of the RangeCheck0 selector polynomial - PointEvaluations range_check0_selector; - // evaluation of the RangeCheck1 selector polynomial - PointEvaluations range_check1_selector; - // evaluation of the ForeignFieldAdd selector polynomial - PointEvaluations foreign_field_add_selector; - // evaluation of the ForeignFieldMul selector polynomial - PointEvaluations foreign_field_mul_selector; - // evaluation of the Xor selector polynomial - PointEvaluations xor_selector; - // evaluation of the Rot selector polynomial - PointEvaluations rot_selector; - // lookup-related evaluations - // evaluation of lookup aggregation polynomial - PointEvaluations lookup_aggregation; - // evaluation of lookup table polynomial - PointEvaluations lookup_table; - // evaluation of lookup sorted polynomials - PointEvaluations[5] lookup_sorted; - // evaluation of runtime lookup table polynomial - PointEvaluations runtime_lookup_table; - // lookup selectors - // evaluation of the runtime lookup table selector polynomial - PointEvaluations runtime_lookup_table_selector; - // evaluation of the Xor range check pattern selector polynomial - PointEvaluations xor_lookup_selector; - // evaluation of the Lookup range check pattern selector polynomial - PointEvaluations lookup_gate_lookup_selector; - // evaluation of the RangeCheck range check pattern selector polynomial - PointEvaluations range_check_lookup_selector; - // evaluation of the ForeignFieldMul range check pattern selector polynomial - PointEvaluations foreign_field_mul_lookup_selector; - } - - struct ProverCommitments { - uint256 optional_field_flags; - BN254.G1Point[COLUMNS] w_comm; - BN254.G1Point z_comm; - BN254.G1Point[7] t_comm; - // optional commitments - BN254.G1Point[] lookup_sorted; - BN254.G1Point lookup_aggreg; - BN254.G1Point lookup_runtime; - } - - function evaluate_column_by_id(ProofEvaluations memory self, uint256 col_id) - internal - pure - returns (PointEvaluations memory) - { - if (col_id <= 14) { - return self.w[col_id]; - } else if (col_id == 15) { - return self.z; - } else if (col_id <= 20) { - uint256 i = col_id - 16; - if (!is_field_set(self.optional_field_flags, LOOKUP_SORTED_EVAL_FLAG + i)) { - revert MissingIndexEvaluation("lookup_sorted"); - } - return self.lookup_sorted[i]; - } else if (col_id == 21) { - if (!is_field_set(self.optional_field_flags, LOOKUP_AGGREGATION_EVAL_FLAG)) { - revert MissingIndexEvaluation("lookup_aggregation"); - } - return self.lookup_aggregation; - } else if (col_id == 22) { - if (!is_field_set(self.optional_field_flags, LOOKUP_TABLE_EVAL_FLAG)) { - revert MissingIndexEvaluation("lookup_table"); - } - return self.lookup_table; - } else if (col_id == 23) { - if (!is_field_set(self.optional_field_flags, XOR_LOOKUP_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("xor_lookup_selector"); - } - return self.xor_lookup_selector; - } else if (col_id == 24) { - if (!is_field_set(self.optional_field_flags, LOOKUP_GATE_LOOKUP_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("lookup_gate_lookup_selector"); - } - return self.lookup_gate_lookup_selector; - } else if (col_id == 25) { - if (!is_field_set(self.optional_field_flags, RANGE_CHECK_LOOKUP_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("range_check_lookup_selector"); - } - return self.range_check_lookup_selector; - } else if (col_id == 26) { - if (!is_field_set(self.optional_field_flags, FOREIGN_FIELD_MUL_LOOKUP_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("foreign_field_mul_lookup_selector"); - } - return self.foreign_field_mul_lookup_selector; - } else if (col_id == 27) { - if (!is_field_set(self.optional_field_flags, RUNTIME_LOOKUP_TABLE_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("runtime_lookup_table_selector"); - } - return self.runtime_lookup_table_selector; - } else if (col_id == 28) { - if (!is_field_set(self.optional_field_flags, RUNTIME_LOOKUP_TABLE_EVAL_FLAG)) { - revert MissingIndexEvaluation("runtime_lookup_table"); - } - return self.runtime_lookup_table; - } else if (col_id == 30) { - return self.generic_selector; - } else if (col_id == 31) { - return self.poseidon_selector; - } else if (col_id == 32) { - return self.complete_add_selector; - } else if (col_id == 33) { - return self.mul_selector; - } else if (col_id == 34) { - return self.emul_selector; - } else if (col_id == 35) { - return self.endomul_scalar_selector; - } else if (col_id == 37) { - if (!is_field_set(self.optional_field_flags, RANGE_CHECK0_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("range_check0_selector"); - } - return self.range_check0_selector; - } else if (col_id == 38) { - if (!is_field_set(self.optional_field_flags, RANGE_CHECK1_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("range_check1_selector"); - } - return self.range_check1_selector; - } else if (col_id == 39) { - if (!is_field_set(self.optional_field_flags, FOREIGN_FIELD_ADD_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("foreign_field_add_selector"); - } - return self.foreign_field_add_selector; - } else if (col_id == 40) { - if (!is_field_set(self.optional_field_flags, FOREIGN_FIELD_MUL_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("foreign_field_mul_selector"); - } - return self.foreign_field_mul_selector; - } else if (col_id == 41) { - if (!is_field_set(self.optional_field_flags, XOR_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("xor_selector"); - } - return self.xor_selector; - } else if (col_id == 42) { - if (!is_field_set(self.optional_field_flags, ROT_SELECTOR_EVAL_FLAG)) { - revert MissingIndexEvaluation("rot_selector"); - } - return self.rot_selector; - } else if (col_id <= 57) { - return self.coefficients[col_id - 43]; - } else if (col_id <= 63) { - return self.s[col_id - 58]; - } else { - revert UnhandledColumnVariant(col_id); - } - } - - function get_column_eval(Proof.ProofEvaluations memory evals, Column memory col) - internal - pure - returns (PointEvaluations memory) - { - ColumnVariant variant = col.variant; - uint256 inner = col.inner; - if (variant == ColumnVariant.Witness) { - return evals.w[inner]; - } else if (variant == ColumnVariant.Z) { - return evals.z; - } else if (variant == ColumnVariant.LookupSorted) { - return evals.lookup_sorted[inner]; - } else if (variant == ColumnVariant.LookupAggreg) { - return evals.lookup_aggregation; - } else if (variant == ColumnVariant.LookupTable) { - return evals.lookup_table; - } else if (variant == ColumnVariant.LookupKindIndex) { - if (inner == LOOKUP_PATTERN_XOR) return evals.xor_lookup_selector; - else if (inner == LOOKUP_PATTERN_LOOKUP) return evals.lookup_gate_lookup_selector; - else if (inner == LOOKUP_PATTERN_RANGE_CHECK) return evals.range_check_lookup_selector; - else if (inner == LOOKUP_PATTERN_FOREIGN_FIELD_MUL) return evals.foreign_field_mul_lookup_selector; - else revert Proof.MissingLookupColumnEvaluation(inner); - } else if (variant == ColumnVariant.LookupRuntimeSelector) { - return evals.runtime_lookup_table_selector; - } else if (variant == ColumnVariant.Index) { - if (inner == GATE_TYPE_GENERIC) return evals.generic_selector; - else if (inner == GATE_TYPE_POSEIDON) return evals.poseidon_selector; - else if (inner == GATE_TYPE_COMPLETE_ADD) return evals.complete_add_selector; - else if (inner == GATE_TYPE_VAR_BASE_MUL) return evals.mul_selector; - else if (inner == GATE_TYPE_ENDO_MUL) return evals.emul_selector; - else if (inner == GATE_TYPE_ENDO_MUL_SCALAR) return evals.endomul_scalar_selector; - else if (inner == GATE_TYPE_RANGE_CHECK_0) return evals.range_check0_selector; - else if (inner == GATE_TYPE_RANGE_CHECK_1) return evals.range_check1_selector; - else if (inner == GATE_TYPE_FOREIGN_FIELD_ADD) return evals.foreign_field_add_selector; - else if (inner == GATE_TYPE_FOREIGN_FIELD_MUL) return evals.foreign_field_mul_selector; - else if (inner == GATE_TYPE_XOR_16) return evals.xor_selector; - else if (inner == GATE_TYPE_ROT_64) return evals.rot_selector; - else revert Proof.MissingIndexColumnEvaluation(inner); - } else if (variant == ColumnVariant.Coefficient) { - return evals.coefficients[inner]; - } else if (variant == ColumnVariant.Permutation) { - return evals.s[inner]; - } else { - revert Proof.MissingColumnEvaluation(variant); - } - } - - function combine_table( - BN254.G1Point memory column, - uint256 column_combiner, - uint256 table_id_combiner, - bool is_table_id_vector_set, - BN254.G1Point memory table_id_vector, - bool is_runtime_vector_set, - BN254.G1Point memory runtime_vector - ) internal view returns (BN254.G1Point memory) { - uint256 total_len = 1 + (is_table_id_vector_set ? 1 : 0) + (is_runtime_vector_set ? 1 : 0); - - uint256 j = 1; - uint256[] memory scalars = new uint256[](total_len); - BN254.G1Point[] memory commitments = new BN254.G1Point[](total_len); - - uint256 index = 0; - - scalars[index] = j; - commitments[index] = column; - index += 1; - - if (is_table_id_vector_set) { - scalars[index] = table_id_combiner; - commitments[index] = table_id_vector; - index += 1; - } - if (is_runtime_vector_set) { - scalars[index] = column_combiner; - commitments[index] = runtime_vector; - index += 1; - } - - return BN254.multiScalarMul(commitments, scalars); - } - - function is_field_set(uint256 optional_field_flags, uint256 flag_pos) internal pure returns (bool) { - return (optional_field_flags >> flag_pos) & 1 == 1; - } -} diff --git a/eth_verifier/lib/Utils.sol b/eth_verifier/lib/Utils.sol deleted file mode 100644 index 9770587d..00000000 --- a/eth_verifier/lib/Utils.sol +++ /dev/null @@ -1,83 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -library Utils { - error NotEnoughBytesInArray(); // not enough bytes in array - - /// @notice returns minimum between a and b. - function min(uint256 a, uint256 b) internal pure returns (uint256) { - return a < b ? a : b; - } - - /// @notice returns maximum between a and b. - function max(uint256 a, uint256 b) internal pure returns (uint256) { - return a < b ? b : a; - } - - /// @notice converts an ASCII string into a uint. - error InvalidStringToUint(); - - function str_to_uint(string memory s) internal pure returns (uint256 res) { - bytes memory b = bytes(s); - res = 0; - for (uint256 i = 0; i < b.length; i++) { - if (b[i] >= 0x30 && b[i] <= 0x39) { - res *= 10; - res += uint8(b[i]) - 0x30; - } else { - revert InvalidStringToUint(); - } - } - } - - /// @notice flattens an array of `bytes` (so 2D array of the `byte` type) - /// @notice assumed to be padded so every element is 32 bytes long. - // - // @notice this function will both flat and remove the padding. - function flatten_padded_be_bytes_array(bytes[] memory b) internal pure returns (bytes memory) { - uint256 byte_count = b.length; - bytes memory flat_b = new bytes(byte_count); - for (uint256 i = 0; i < byte_count; i++) { - flat_b[i] = b[i][32 - 1]; - } - return flat_b; - } - - /// @notice flattens an array of `bytes` (so 2D array of the `byte` type) - /// @notice assumed to be padded so every element is 32 bytes long. - // - // @notice this function will both flat and remove the padding. - function flatten_padded_le_bytes_array(bytes[] memory b) internal pure returns (bytes memory) { - uint256 byte_count = b.length; - bytes memory flat_b = new bytes(byte_count); - for (uint256 i = 0; i < byte_count; i++) { - flat_b[byte_count - i - 1] = b[i][32 - 1]; - } - return flat_b; - } - - /// @notice uses `flatten_padded_bytes_array()` to flat and remove the padding - /// @notice of a `bytes[]` and reinterprets the result as a big-endian uint256. - function padded_be_bytes_array_to_uint256(bytes[] memory b) internal pure returns (uint256 integer) { - bytes memory data_b = flatten_padded_be_bytes_array(b); - if (data_b.length < 32) { - revert NotEnoughBytesInArray(); - } - return uint256(bytes32(data_b)); - } - - /// @notice uses `flatten_padded_bytes_array()` to flat and remove the padding - /// @notice of a `bytes[]` and reinterprets the result as a little-endian uint256. - function padded_le_bytes_array_to_uint256(bytes[] memory b) internal pure returns (uint256 integer) { - bytes memory data_b = flatten_padded_le_bytes_array(b); - if (data_b.length < 32) { - revert NotEnoughBytesInArray(); - } - return uint256(bytes32(data_b)); - } - - /// @notice checks if two strings are equal - function str_cmp(string memory self, string memory other) internal pure returns (bool) { - return keccak256(bytes(self)) == keccak256(bytes(other)); - } -} diff --git a/eth_verifier/lib/VerifierIndex.sol b/eth_verifier/lib/VerifierIndex.sol deleted file mode 100644 index 9fb81a03..00000000 --- a/eth_verifier/lib/VerifierIndex.sol +++ /dev/null @@ -1,328 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {BN254} from "./bn254/BN254.sol"; -import {Scalar, Base} from "./bn254/Fields.sol"; -import {Alphas} from "./Alphas.sol"; -import {KeccakSponge} from "./sponge/Sponge.sol"; -import {ColumnVariant} from "./expr/Expr.sol"; -import {Proof} from "./Proof.sol"; -import {Linearization, Column} from "./expr/Expr.sol"; -import { - LOOKUP_RUNTIME_COMM_FLAG, - RANGE_CHECK0_COMM_FLAG, - RANGE_CHECK1_COMM_FLAG, - FOREIGN_FIELD_ADD_COMM_FLAG, - FOREIGN_FIELD_MUL_COMM_FLAG, - XOR_COMM_FLAG, - ROT_COMM_FLAG, - LOOKUP_VERIFIER_INDEX_FLAG, - XOR_FLAG, - LOOKUP_FLAG, - RANGE_CHECK_FLAG, - FFMUL_FLAG, - TABLE_IDS_FLAG, - RUNTIME_TABLES_SELECTOR_FLAG, - GATE_TYPE_GENERIC, - GATE_TYPE_POSEIDON, - GATE_TYPE_COMPLETE_ADD, - GATE_TYPE_VAR_BASE_MUL, - GATE_TYPE_ENDO_MUL, - GATE_TYPE_ENDO_MUL_SCALAR, - GATE_TYPE_RANGE_CHECK_0, - GATE_TYPE_RANGE_CHECK_1, - GATE_TYPE_FOREIGN_FIELD_ADD, - GATE_TYPE_FOREIGN_FIELD_MUL, - GATE_TYPE_XOR_16, - GATE_TYPE_ROT_64, - LOOKUP_PATTERN_XOR, - LOOKUP_PATTERN_LOOKUP, - LOOKUP_PATTERN_RANGE_CHECK, - LOOKUP_PATTERN_FOREIGN_FIELD_MUL -} from "./Constants.sol"; - -using { - KeccakSponge.reinit, - KeccakSponge.absorb_scalar, - KeccakSponge.absorb_evaluations, - KeccakSponge.absorb_g, - KeccakSponge.absorb_g_single, - KeccakSponge.challenge_base, - KeccakSponge.challenge_scalar, - KeccakSponge.digest_base, - KeccakSponge.digest_scalar -} for KeccakSponge.Sponge; - -error MissingCommitment(ColumnVariant variant); -error MissingLookupColumnCommitment(uint256 inner); -error MissingIndexColumnCommitment(uint256 inner); - -library VerifierIndexLib { - struct VerifierIndex { - // each bit represents the presence (1) or absence (0) of an - // optional field. - uint256 optional_field_flags; - // domain - uint256 domain_size; - uint256 domain_gen; - // maximal size of polynomial section - uint256 max_poly_size; - // the number of randomized rows to achieve zero knowledge - uint256 zk_rows; - // number of public inputs - uint256 public_len; - // polynomial commitments - - // permutation commitment array - BN254.G1Point[7] sigma_comm; // TODO: use Constants.PERMUTS - // coefficient commitment array - BN254.G1Point[15] coefficients_comm; // TODO: use Constants.COLUMNS - // TODO: doc - BN254.G1Point generic_comm; - // poseidon constraint selector polynomial commitment - BN254.G1Point psm_comm; - // ECC arithmetic polynomial commitments - - // EC addition selector polynomial commitment - BN254.G1Point complete_add_comm; - // EC variable base scalar multiplication selector polynomial commitment - BN254.G1Point mul_comm; - // endoscalar multiplication selector polynomial commitment - BN254.G1Point emul_comm; - // endoscalar multiplication scalar computation selector polynomial commitment - BN254.G1Point endomul_scalar_comm; - // wire shift coordinates - uint256[7] shift; // TODO: use Consants.PERMUTS - /// domain offset for zero-knowledge - uint256 w; - uint256 endo; - // RangeCheck0 polynomial commitments - BN254.G1Point range_check0_comm; // INFO: optional - // RangeCheck1 polynomial commitments - BN254.G1Point range_check1_comm; // INFO: optional - // Foreign field addition gates polynomial commitments - BN254.G1Point foreign_field_add_comm; // INFO: optional - // Foreign field multiplication gates polynomial commitments - BN254.G1Point foreign_field_mul_comm; // INFO: optional - // Xor commitments - BN254.G1Point xor_comm; // INFO: optional - // Rot commitments - BN254.G1Point rot_comm; // INFO: optional - LookupVerifierIndex lookup_index; // INFO: optional - // this is used for generating the index's digest - Linearization linearization; - /// The mapping between powers of alpha and constraints - Alphas powers_of_alpha; - } - - struct LookupVerifierIndex { - // each bit represents the presence (1) or absence (0) of an - // optional field. - uint256 optional_field_flags; - BN254.G1Point lookup_table; - LookupInfo lookup_info; - // selectors - BN254.G1Point xor; // INFO: optional - BN254.G1Point lookup; // INFO: optional - BN254.G1Point range_check; // INFO: optional - BN254.G1Point ffmul; // INFO: optional - // table IDs for the lookup values. - // this may be not set if all lookups originate from table 0. - BN254.G1Point table_ids; // INFO: optional - // an optional selector polynomial for runtime tables - BN254.G1Point runtime_tables_selector; // INFO: optional - } - - struct LookupSelectors { - BN254.G1Point xor; // INFO: optional - BN254.G1Point lookup; // INFO: optional - BN254.G1Point range_check; // INFO: optional - BN254.G1Point ffmul; // INFO: optional - } - - struct LookupInfo { - uint256 max_per_row; - uint256 max_joint_size; - } - // TODO: lookup features - - function verifier_digest(VerifierIndex storage index) internal view returns (uint256) { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - - for (uint256 i = 0; i < index.sigma_comm.length; i++) { - sponge.absorb_g_single(index.sigma_comm[i]); - } - for (uint256 i = 0; i < index.coefficients_comm.length; i++) { - sponge.absorb_g_single(index.coefficients_comm[i]); - } - sponge.absorb_g_single(index.generic_comm); - sponge.absorb_g_single(index.psm_comm); - sponge.absorb_g_single(index.complete_add_comm); - sponge.absorb_g_single(index.mul_comm); - sponge.absorb_g_single(index.emul_comm); - sponge.absorb_g_single(index.endomul_scalar_comm); - - // optional - - if (Proof.is_field_set(index.optional_field_flags, RANGE_CHECK0_COMM_FLAG)) { - sponge.absorb_g_single(index.range_check0_comm); - } - - if (Proof.is_field_set(index.optional_field_flags, RANGE_CHECK1_COMM_FLAG)) { - sponge.absorb_g_single(index.range_check1_comm); - } - - if (Proof.is_field_set(index.optional_field_flags, FOREIGN_FIELD_MUL_COMM_FLAG)) { - sponge.absorb_g_single(index.foreign_field_mul_comm); - } - - if (Proof.is_field_set(index.optional_field_flags, FOREIGN_FIELD_ADD_COMM_FLAG)) { - sponge.absorb_g_single(index.foreign_field_add_comm); - } - - if (Proof.is_field_set(index.optional_field_flags, XOR_COMM_FLAG)) { - sponge.absorb_g_single(index.xor_comm); - } - - if (Proof.is_field_set(index.optional_field_flags, ROT_COMM_FLAG)) { - sponge.absorb_g_single(index.rot_comm); - } - - if (Proof.is_field_set(index.optional_field_flags, LOOKUP_VERIFIER_INDEX_FLAG)) { - LookupVerifierIndex storage l_index = index.lookup_index; - sponge.absorb_g_single(l_index.lookup_table); - if (Proof.is_field_set(l_index.optional_field_flags, TABLE_IDS_FLAG)) { - sponge.absorb_g_single(l_index.table_ids); - } - if (Proof.is_field_set(l_index.optional_field_flags, RUNTIME_TABLES_SELECTOR_FLAG)) { - sponge.absorb_g_single(l_index.runtime_tables_selector); - } - - if (Proof.is_field_set(l_index.optional_field_flags, XOR_FLAG)) { - sponge.absorb_g_single(l_index.xor); - } - if (Proof.is_field_set(l_index.optional_field_flags, LOOKUP_FLAG)) { - sponge.absorb_g_single(l_index.lookup); - } - if (Proof.is_field_set(l_index.optional_field_flags, RANGE_CHECK_FLAG)) { - sponge.absorb_g_single(l_index.range_check); - } - if (Proof.is_field_set(l_index.optional_field_flags, FFMUL_FLAG)) { - sponge.absorb_g_single(l_index.ffmul); - } - } - return sponge.digest_base(); - } - - function get_column_commitment( - Column memory column, - VerifierIndex storage verifier_index, - Proof.ProverProof storage proof - ) internal view returns (BN254.G1Point memory) { - LookupVerifierIndex memory l_index = verifier_index.lookup_index; - - uint256 inner = column.inner; - ColumnVariant variant = column.variant; - if (variant == ColumnVariant.Witness) { - return proof.commitments.w_comm[inner]; - } else if (variant == ColumnVariant.Coefficient) { - return verifier_index.coefficients_comm[inner]; - } else if (variant == ColumnVariant.Permutation) { - return verifier_index.sigma_comm[inner]; - } else if (variant == ColumnVariant.Z) { - return proof.commitments.z_comm; - } else if (variant == ColumnVariant.LookupSorted) { - return proof.commitments.lookup_sorted[inner]; - } else if (variant == ColumnVariant.LookupAggreg) { - return proof.commitments.lookup_aggreg; - } else if (variant == ColumnVariant.LookupKindIndex) { - if (inner == LOOKUP_PATTERN_XOR) { - if (!Proof.is_field_set(l_index.optional_field_flags, XOR_FLAG)) { - revert MissingLookupColumnCommitment(inner); - } - return l_index.xor; - } - if (inner == LOOKUP_PATTERN_LOOKUP) { - if (!Proof.is_field_set(l_index.optional_field_flags, LOOKUP_FLAG)) { - revert MissingLookupColumnCommitment(inner); - } - return l_index.lookup; - } - if (inner == LOOKUP_PATTERN_RANGE_CHECK) { - if (!Proof.is_field_set(l_index.optional_field_flags, RANGE_CHECK_FLAG)) { - revert MissingLookupColumnCommitment(inner); - } - return l_index.range_check; - } - if (inner == LOOKUP_PATTERN_FOREIGN_FIELD_MUL) { - if (!Proof.is_field_set(l_index.optional_field_flags, FFMUL_FLAG)) { - revert MissingLookupColumnCommitment(inner); - } - return l_index.ffmul; - } else { - revert MissingLookupColumnCommitment(inner); - } - } else if (variant == ColumnVariant.LookupRuntimeSelector) { - if (!Proof.is_field_set(l_index.optional_field_flags, RUNTIME_TABLES_SELECTOR_FLAG)) { - revert MissingCommitment(variant); - } - return l_index.runtime_tables_selector; - } else if (variant == ColumnVariant.LookupRuntimeTable) { - if (!Proof.is_field_set(proof.commitments.optional_field_flags, LOOKUP_RUNTIME_COMM_FLAG)) { - revert MissingCommitment(variant); - } - return proof.commitments.lookup_runtime; - } else if (variant == ColumnVariant.Index) { - if (inner == GATE_TYPE_GENERIC) { - return verifier_index.generic_comm; - } else if (inner == GATE_TYPE_COMPLETE_ADD) { - return verifier_index.complete_add_comm; - } else if (inner == GATE_TYPE_VAR_BASE_MUL) { - return verifier_index.mul_comm; - } else if (inner == GATE_TYPE_ENDO_MUL) { - return verifier_index.emul_comm; - } else if (inner == GATE_TYPE_ENDO_MUL_SCALAR) { - return verifier_index.endomul_scalar_comm; - } else if (inner == GATE_TYPE_POSEIDON) { - return verifier_index.psm_comm; - } else if (inner == GATE_TYPE_RANGE_CHECK_0) { - if (!Proof.is_field_set(verifier_index.optional_field_flags, RANGE_CHECK0_COMM_FLAG)) { - revert MissingCommitment(variant); - } - return verifier_index.range_check0_comm; - } else if (inner == GATE_TYPE_RANGE_CHECK_1) { - if (!Proof.is_field_set(verifier_index.optional_field_flags, RANGE_CHECK1_COMM_FLAG)) { - revert MissingCommitment(variant); - } - return verifier_index.range_check1_comm; - } else if (inner == GATE_TYPE_FOREIGN_FIELD_ADD) { - if (!Proof.is_field_set(verifier_index.optional_field_flags, FOREIGN_FIELD_ADD_COMM_FLAG)) { - revert MissingCommitment(variant); - } - return verifier_index.foreign_field_add_comm; - } else if (inner == GATE_TYPE_FOREIGN_FIELD_MUL) { - if (!Proof.is_field_set(verifier_index.optional_field_flags, FOREIGN_FIELD_MUL_COMM_FLAG)) { - revert MissingCommitment(variant); - } - return verifier_index.foreign_field_mul_comm; - } else if (inner == GATE_TYPE_XOR_16) { - if (!Proof.is_field_set(verifier_index.optional_field_flags, XOR_COMM_FLAG)) { - revert MissingCommitment(variant); - } - return verifier_index.xor_comm; - } else if (inner == GATE_TYPE_ROT_64) { - if (!Proof.is_field_set(verifier_index.optional_field_flags, ROT_COMM_FLAG)) { - revert MissingCommitment(variant); - } - return verifier_index.rot_comm; - } else { - revert Proof.MissingIndexColumnEvaluation(inner); - } - } else { - revert MissingCommitment(column.variant); - } - - // TODO: other variants remain to be implemented. - } -} diff --git a/eth_verifier/lib/bn254/BN254.sol b/eth_verifier/lib/bn254/BN254.sol deleted file mode 100644 index d0df19d2..00000000 --- a/eth_verifier/lib/bn254/BN254.sol +++ /dev/null @@ -1,293 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Copyright (c) 2022 Espresso Systems (espressosys.com) -// This file is part of the Configurable Asset Privacy for Ethereum (CAPE) library. -// -// This program is 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. -// This program 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 this program. If not, see . - -// -// Based on: -// - Christian Reitwiessner: https://gist.githubusercontent.com/chriseth/f9be9d9391efc5beb9704255a8e2989d/raw/4d0fb90847df1d4e04d507019031888df8372239/snarktest.solidity -// - Aztec: https://github.com/AztecProtocol/aztec-2-bug-bounty - -pragma solidity ^0.8.0; - -import {Scalar, Base} from "./Fields.sol"; - -error GroupAdditionFailed(); // Bn254: group addition failed! -error ScalarMulFailed(); // Bn254: scalar multiplication failed! -error LengthDoesNotMatch(); // Bn254: MSM length does not match! -error PowPrecompileFailed(); // Bn254: pow precompile failed! -error InvalidG1Point(); // Bn254: invalid G1 point! -error InvalidScalarField(); // Bn254: invalid scalar field! - -/// @notice Barreto-Naehrig curve over a 254 bit prime field -library BN254 { - // use notation from https://datatracker.ietf.org/doc/draft-irtf-cfrg-pairing-friendly-curves/ - // - // Elliptic curve is defined over a prime field GF(p), with embedding degree k. - // Short Weierstrass (SW form) is, for a, b \in GF(p^n) for some natural number n > 0: - // E: y^2 = x^3 + a * x + b - // - // Pairing is defined over cyclic subgroups G1, G2, both of which are of order r. - // G1 is a subgroup of E(GF(p)), G2 is a subgroup of E(GF(p^k)). - // - // BN family are parameterized curves with well-chosen t, - // p = 36 * t^4 + 36 * t^3 + 24 * t^2 + 6 * t + 1 - // r = 36 * t^4 + 36 * t^3 + 18 * t^2 + 6 * t + 1 - // for some integer t. - // E has the equation: - // E: y^2 = x^3 + b - // where b is a primitive element of multiplicative group (GF(p))^* of order (p-1). - // A pairing e is defined by taking G1 as a subgroup of E(GF(p)) of order r, - // G2 as a subgroup of E'(GF(p^2)), - // and G_T as a subgroup of a multiplicative group (GF(p^12))^* of order r. - // - // BN254 is defined over a 254-bit prime order p, embedding degree k = 12. - uint256 internal constant P_MOD = 21888242871839275222246405745257275088696311157297823662689037894645226208583; - uint256 internal constant R_MOD = 21888242871839275222246405745257275088548364400416034343698204186575808495617; - - using {add, scalarMul} for G1Point; - - struct G1Point { - uint256 x; - uint256 y; - } - - // G2 group element where x \in Fp2 = x0 * z + x1 - struct G2Point { - uint256 x0; - uint256 x1; - uint256 y0; - uint256 y1; - } - - /// @return the generator of G1 - // solhint-disable-next-line func-name-mixedcase - function P1() internal pure returns (G1Point memory) { - return G1Point(1, 2); - } - - /// @return the point at infinity of G1 - function point_at_inf() internal pure returns (G1Point memory) { - return G1Point(0, 0); - } - - /// @return the point at infinity of G2 - function point_at_inf_g2() internal pure returns (G2Point memory) { - return G2Point(0, 0, 0, 0); - } - - function endo_coeffs_g1() internal pure returns (uint256 endo_q, uint256 endo_r) { - // INFO: values taken from Kimchi\'s Rust implementation. - return ( - Base.from(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48), - Scalar.from(0x30644E72E131A029048B6E193FD84104CC37A73FEC2BC5E9B8CA0B2D36636F23) - ); - } - - /// @dev check if a G1 point is Infinity - /// @notice precompile bn256Add at address(6) takes (0, 0) as Point of Infinity, - /// some crypto libraries (such as arkwork) uses a boolean flag to mark PoI, and - /// just use (0, 1) as affine coordinates (not on curve) to represents PoI. - function isInfinity(G1Point memory point) internal pure returns (bool result) { - assembly ("memory-safe") { - let x := mload(point) - let y := mload(add(point, 0x20)) - result := and(iszero(x), iszero(y)) - } - } - - /// @return r the negation of p, i.e. p.add(p.neg()) should be zero. - function neg(G1Point memory p) internal pure returns (G1Point memory) { - if (isInfinity(p)) { - return p; - } - return G1Point(p.x, Base.neg(p.y)); - } - - /// @return r the sum of two points of G1 - function add(G1Point memory p1, G1Point memory p2) internal view returns (G1Point memory r) { - uint256[4] memory input; - input[0] = p1.x; - input[1] = p1.y; - input[2] = p2.x; - input[3] = p2.y; - bool success; - assembly ("memory-safe") { - success := staticcall(sub(gas(), 2000), 6, input, 0xc0, r, 0x60) - // Use "invalid" to make gas estimation work - switch success - case 0 { revert(0, 0) } - } - if (!success) { - revert GroupAdditionFailed(); - } - } - - /// @return r the substraction of two points of G1 - function sub(G1Point memory p1, G1Point memory p2) internal view returns (G1Point memory) { - return add(p1, neg(p2)); - } - - /// @return r the product of a point on G1 and a scalar, i.e. - /// p == p.mul(1) and p.add(p) == p.mul(2) for all points p. - function scalarMul(G1Point memory p, uint256 s) internal view returns (G1Point memory r) { - uint256[3] memory input; - input[0] = p.x; - input[1] = p.y; - input[2] = s; - bool success; - assembly ("memory-safe") { - success := staticcall(sub(gas(), 2000), 7, input, 0x80, r, 0x60) - // Use "invalid" to make gas estimation work - switch success - case 0 { revert(0, 0) } - } - if (!success) { - revert ScalarMulFailed(); - } - } - - /// @dev Multi-scalar Mulitiplication (MSM) - /// @return r = \Prod{B_i^s_i} where {s_i} are `scalars` and {B_i} are `bases` - function multiScalarMul(G1Point[] memory bases, uint256[] memory scalars) - internal - view - returns (G1Point memory r) - { - bool success; - uint256[3] memory input; - G1Point memory r_aux; - - if (scalars.length != bases.length) { - revert LengthDoesNotMatch(); - } - - // compute scalarMul inline for the first element - input[0] = bases[0].x; - input[1] = bases[0].y; - input[2] = scalars[0]; - assembly ("memory-safe") { - success := staticcall(sub(gas(), 2000), 7, input, 0x80, r, 0x60) - // Use "invalid" to make gas estimation work - switch success - case 0 { revert(0, 0) } - } - if (!success) { - revert ScalarMulFailed(); - } - - for (uint256 i = 1; i < scalars.length; i++) { - // compute scalarMul inline for the first element - input[0] = bases[i].x; - input[1] = bases[i].y; - input[2] = scalars[i]; - assembly ("memory-safe") { - success := staticcall(sub(gas(), 2000), 7, input, 0x80, r_aux, 0x60) - // Use "invalid" to make gas estimation work - switch success - case 0 { revert(0, 0) } - } - if (!success) { - revert ScalarMulFailed(); - } - r = add(r, r_aux); - } - } - - /// @dev Compute f^-1 for f \in Fr scalar field - /// @notice credit: Aztec, Spilsbury Holdings Ltd - function invert(uint256 fr) internal view returns (uint256 output) { - bool success; - uint256 p = R_MOD; - assembly ("memory-safe") { - let mPtr := mload(0x40) - mstore(mPtr, 0x20) - mstore(add(mPtr, 0x20), 0x20) - mstore(add(mPtr, 0x40), 0x20) - mstore(add(mPtr, 0x60), fr) - mstore(add(mPtr, 0x80), sub(p, 2)) - mstore(add(mPtr, 0xa0), p) - success := staticcall(gas(), 0x05, mPtr, 0xc0, 0x00, 0x20) - output := mload(0x00) - } - if (!success) { - revert PowPrecompileFailed(); - } - } - - /** - * validate the following: - * x != 0 - * y != 0 - * x < p - * y < p - * y^2 = x^3 + 3 mod p - */ - /// @dev validate G1 point and check if it is on curve - /// @notice credit: Aztec, Spilsbury Holdings Ltd - function validateG1Point(G1Point memory point) internal pure { - bool isWellFormed; - uint256 p = P_MOD; - assembly ("memory-safe") { - let x := mload(point) - let y := mload(add(point, 0x20)) - - isWellFormed := - and( - and(and(lt(x, p), lt(y, p)), not(or(iszero(x), iszero(y)))), - eq(mulmod(y, y, p), addmod(mulmod(x, mulmod(x, x, p), p), 3, p)) - ) - } - if (!isWellFormed) { - revert InvalidG1Point(); - } - } - - /// @dev Validate scalar field, revert if invalid (namely if fr > r_mod). - /// @notice Writing this inline instead of calling it might save gas. - function validateScalarField(uint256 fr) internal pure { - bool isValid; - assembly ("memory-safe") { - isValid := lt(fr, R_MOD) - } - if (!isValid) { - revert InvalidScalarField(); - } - } - - function fromLeBytesModOrder(bytes memory leBytes) internal pure returns (uint256 ret) { - for (uint256 i = 0; i < leBytes.length; i++) { - ret = mulmod(ret, 256, R_MOD); - ret = addmod(ret, uint256(uint8(leBytes[leBytes.length - 1 - i])), R_MOD); - } - } - - /// @dev Check if y-coordinate of G1 point is negative. - function isYNegative(G1Point memory point) internal pure returns (bool) { - return (point.y << 1) < P_MOD; - } - - // @dev Perform a modular exponentiation. - // @return base^exponent (mod modulus) - // This method is ideal for small exponents (~64 bits or less), as it is cheaper than using the pow precompile - // @notice credit: credit: Aztec, Spilsbury Holdings Ltd - function powSmall(uint256 base, uint256 exponent, uint256 modulus) internal pure returns (uint256) { - uint256 result = 1; - uint256 input = base; - uint256 count = 1; - - assembly ("memory-safe") { - let endpoint := add(exponent, 0x01) - for {} lt(count, endpoint) { count := add(count, count) } { - if and(exponent, count) { result := mulmod(result, input, modulus) } - input := mulmod(input, input, modulus) - } - } - - return result; - } -} diff --git a/eth_verifier/lib/bn254/BN256G2.sol b/eth_verifier/lib/bn254/BN256G2.sol deleted file mode 100644 index be0567ee..00000000 --- a/eth_verifier/lib/bn254/BN256G2.sol +++ /dev/null @@ -1,347 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0 -pragma solidity ^0.8.0; - -import {BN254} from "./BN254.sol"; - -error G2PointNotInCurve(); // G2 point is not on curve -error BN256modInvStaticcallFailed(); // BN256 _modInv staticcall failed -/** - * @title Elliptic curve operations on twist points for alt_bn128 - * @author Mustafa Al-Bassam (mus@musalbas.com) - * @dev Homepage: https://github.com/musalbas/solidity-BN256G2 - */ - -library BN256G2 { - uint256 internal constant FIELD_MODULUS = 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47; - uint256 internal constant TWISTBX = 0x2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5; - uint256 internal constant TWISTBY = 0x9713b03af0fed4cd2cafadeed8fdf4a74fa084e52d1852e4a2bd0685c315d2; - uint256 internal constant PTXX = 0; - uint256 internal constant PTXY = 1; - uint256 internal constant PTYX = 2; - uint256 internal constant PTYY = 3; - uint256 internal constant PTZX = 4; - uint256 internal constant PTZY = 5; - - /** - * @notice Add two twist points - * @param pt1xx Coefficient 1 of x on point 1 - * @param pt1xy Coefficient 2 of x on point 1 - * @param pt1yx Coefficient 1 of y on point 1 - * @param pt1yy Coefficient 2 of y on point 1 - * @param pt2xx Coefficient 1 of x on point 2 - * @param pt2xy Coefficient 2 of x on point 2 - * @param pt2yx Coefficient 1 of y on point 2 - * @param pt2yy Coefficient 2 of y on point 2 - * @return (pt3xx, pt3xy, pt3yx, pt3yy) - */ - function ECTwistAdd( - uint256 pt1xx, - uint256 pt1xy, - uint256 pt1yx, - uint256 pt1yy, - uint256 pt2xx, - uint256 pt2xy, - uint256 pt2yx, - uint256 pt2yy - ) internal view returns (uint256, uint256, uint256, uint256) { - if (pt1xx == 0 && pt1xy == 0 && pt1yx == 0 && pt1yy == 0) { - if (!(pt2xx == 0 && pt2xy == 0 && pt2yx == 0 && pt2yy == 0)) { - assert(_isOnCurve(pt2xx, pt2xy, pt2yx, pt2yy)); - } - return (pt2xx, pt2xy, pt2yx, pt2yy); - } else if (pt2xx == 0 && pt2xy == 0 && pt2yx == 0 && pt2yy == 0) { - assert(_isOnCurve(pt1xx, pt1xy, pt1yx, pt1yy)); - return (pt1xx, pt1xy, pt1yx, pt1yy); - } - - assert(_isOnCurve(pt1xx, pt1xy, pt1yx, pt1yy)); - assert(_isOnCurve(pt2xx, pt2xy, pt2yx, pt2yy)); - - uint256[6] memory pt3 = _ECTwistAddJacobian(pt1xx, pt1xy, pt1yx, pt1yy, 1, 0, pt2xx, pt2xy, pt2yx, pt2yy, 1, 0); - - return _fromJacobian(pt3[PTXX], pt3[PTXY], pt3[PTYX], pt3[PTYY], pt3[PTZX], pt3[PTZY]); - } - - function ECTwistAdd(BN254.G2Point memory p1, BN254.G2Point memory p2) - internal - view - returns (BN254.G2Point memory) - { - uint256 p1xx = p1.x1; - uint256 p1xy = p1.x0; - uint256 p1yx = p1.y1; - uint256 p1yy = p1.y0; - - uint256 p2xx = p2.x1; - uint256 p2xy = p2.x0; - uint256 p2yx = p2.y1; - uint256 p2yy = p2.y0; - - (uint256 rxx, uint256 rxy, uint256 ryx, uint256 ryy) = - ECTwistAdd(p1xx, p1xy, p1yx, p1yy, p2xx, p2xy, p2yx, p2yy); - - return BN254.G2Point(rxy, rxx, ryy, ryx); - } - - /** - * @notice Multiply a twist point by a scalar - * @param s Scalar to multiply by - * @param pt1xx Coefficient 1 of x - * @param pt1xy Coefficient 2 of x - * @param pt1yx Coefficient 1 of y - * @param pt1yy Coefficient 2 of y - * @return (pt2xx, pt2xy, pt2yx, pt2yy) - */ - function ECTwistMul(uint256 s, uint256 pt1xx, uint256 pt1xy, uint256 pt1yx, uint256 pt1yy) - internal - view - returns (uint256, uint256, uint256, uint256) - { - uint256 pt1zx = 1; - if (pt1xx == 0 && pt1xy == 0 && pt1yx == 0 && pt1yy == 0) { - pt1xx = 1; - pt1yx = 1; - pt1zx = 0; - } else { - if (!_isOnCurve(pt1xx, pt1xy, pt1yx, pt1yy)) { - revert G2PointNotInCurve(); - } - } - - uint256[6] memory pt2 = _ECTwistMulJacobian(s, pt1xx, pt1xy, pt1yx, pt1yy, pt1zx, 0); - - return _fromJacobian(pt2[PTXX], pt2[PTXY], pt2[PTYX], pt2[PTYY], pt2[PTZX], pt2[PTZY]); - } - - function ECTwistMul(uint256 s, BN254.G2Point memory p) internal view returns (BN254.G2Point memory) { - uint256 pxx = p.x0; - uint256 pxy = p.x1; - uint256 pyx = p.y0; - uint256 pyy = p.y1; - - (uint256 rxx, uint256 rxy, uint256 ryx, uint256 ryy) = ECTwistMul(s, pxx, pxy, pyx, pyy); - - return BN254.G2Point(rxy, rxx, ryy, ryx); - } - - function submod(uint256 a, uint256 b, uint256 n) internal pure returns (uint256) { - return addmod(a, n - b, n); - } - - function _FQ2Mul(uint256 xx, uint256 xy, uint256 yx, uint256 yy) internal pure returns (uint256, uint256) { - return ( - submod(mulmod(xx, yx, FIELD_MODULUS), mulmod(xy, yy, FIELD_MODULUS), FIELD_MODULUS), - addmod(mulmod(xx, yy, FIELD_MODULUS), mulmod(xy, yx, FIELD_MODULUS), FIELD_MODULUS) - ); - } - - function _FQ2Muc(uint256 xx, uint256 xy, uint256 c) internal pure returns (uint256, uint256) { - return (mulmod(xx, c, FIELD_MODULUS), mulmod(xy, c, FIELD_MODULUS)); - } - - function _FQ2Sub(uint256 xx, uint256 xy, uint256 yx, uint256 yy) internal pure returns (uint256 rx, uint256 ry) { - return (submod(xx, yx, FIELD_MODULUS), submod(xy, yy, FIELD_MODULUS)); - } - - function _FQ2Add(uint256 xx, uint256 xy, uint256 yx, uint256 yy) internal pure returns (uint256 rx, uint256 ry) { - return (addmod(xx, yx, FIELD_MODULUS), addmod(xy, yy, FIELD_MODULUS)); - } - - function _FQ2Inv(uint256 x, uint256 y) internal view returns (uint256, uint256) { - uint256 inv = - _modInv(addmod(mulmod(y, y, FIELD_MODULUS), mulmod(x, x, FIELD_MODULUS), FIELD_MODULUS), FIELD_MODULUS); - return (mulmod(x, inv, FIELD_MODULUS), FIELD_MODULUS - mulmod(y, inv, FIELD_MODULUS)); - } - - // FIXME: we should clean up this library and use the `Fields.sol` functions. - - function _FQ1Add(uint256 a, uint256 b) internal pure returns (uint256 res) { - assembly { - res := addmod(a, b, FIELD_MODULUS) - } - } - - function _FQ1Neg(uint256 a) internal pure returns (uint256) { - return FIELD_MODULUS - a; - } - - function _FQ1Sub(uint256 a, uint256 b) internal pure returns (uint256) { - return _FQ1Add(a, _FQ1Neg(b)); - } - - function _FQ1Mul(uint256 a, uint256 b) internal pure returns (uint256 res) { - assembly { - res := mulmod(a, b, FIELD_MODULUS) - } - } - - function _FQ1Square(uint256 a) internal pure returns (uint256 res) { - assembly { - res := mulmod(a, a, FIELD_MODULUS) - } - } - - function _isOnCurve(uint256 xx, uint256 xy, uint256 yx, uint256 yy) internal pure returns (bool) { - uint256 yyx; - uint256 yyy; - uint256 xxxx; - uint256 xxxy; - (yyx, yyy) = _FQ2Mul(yx, yy, yx, yy); - (xxxx, xxxy) = _FQ2Mul(xx, xy, xx, xy); - (xxxx, xxxy) = _FQ2Mul(xxxx, xxxy, xx, xy); - (yyx, yyy) = _FQ2Sub(yyx, yyy, xxxx, xxxy); - (yyx, yyy) = _FQ2Sub(yyx, yyy, TWISTBX, TWISTBY); - return yyx == 0 && yyy == 0; - } - - function _modInv(uint256 a, uint256 n) internal view returns (uint256 result) { - uint256 length_of_base = 0x20; - uint256 length_of_exponent = 0x20; - uint256 length_of_modulus = 0x20; - - (bool success, bytes memory result_bytes) = - address(0x05).staticcall(abi.encode(length_of_base, length_of_exponent, length_of_modulus, a, n - 2, n)); - - result = abi.decode(result_bytes, (uint256)); - if (!success) { - revert BN256modInvStaticcallFailed(); - } - } - - function _fromJacobian(uint256 pt1xx, uint256 pt1xy, uint256 pt1yx, uint256 pt1yy, uint256 pt1zx, uint256 pt1zy) - internal - view - returns (uint256 pt2xx, uint256 pt2xy, uint256 pt2yx, uint256 pt2yy) - { - uint256 invzx; - uint256 invzy; - (invzx, invzy) = _FQ2Inv(pt1zx, pt1zy); - (pt2xx, pt2xy) = _FQ2Mul(pt1xx, pt1xy, invzx, invzy); - (pt2yx, pt2yy) = _FQ2Mul(pt1yx, pt1yy, invzx, invzy); - } - - function _ECTwistAddJacobian( - uint256 pt1xx, - uint256 pt1xy, - uint256 pt1yx, - uint256 pt1yy, - uint256 pt1zx, - uint256 pt1zy, - uint256 pt2xx, - uint256 pt2xy, - uint256 pt2yx, - uint256 pt2yy, - uint256 pt2zx, - uint256 pt2zy - ) internal pure returns (uint256[6] memory pt3) { - if (pt1zx == 0 && pt1zy == 0) { - (pt3[PTXX], pt3[PTXY], pt3[PTYX], pt3[PTYY], pt3[PTZX], pt3[PTZY]) = - (pt2xx, pt2xy, pt2yx, pt2yy, pt2zx, pt2zy); - return pt3; - } else if (pt2zx == 0 && pt2zy == 0) { - (pt3[PTXX], pt3[PTXY], pt3[PTYX], pt3[PTYY], pt3[PTZX], pt3[PTZY]) = - (pt1xx, pt1xy, pt1yx, pt1yy, pt1zx, pt1zy); - return pt3; - } - - (pt2yx, pt2yy) = _FQ2Mul(pt2yx, pt2yy, pt1zx, pt1zy); // U1 = y2 * z1 - (pt3[PTYX], pt3[PTYY]) = _FQ2Mul(pt1yx, pt1yy, pt2zx, pt2zy); // U2 = y1 * z2 - (pt2xx, pt2xy) = _FQ2Mul(pt2xx, pt2xy, pt1zx, pt1zy); // V1 = x2 * z1 - (pt3[PTZX], pt3[PTZY]) = _FQ2Mul(pt1xx, pt1xy, pt2zx, pt2zy); // V2 = x1 * z2 - - if (pt2xx == pt3[PTZX] && pt2xy == pt3[PTZY]) { - if (pt2yx == pt3[PTYX] && pt2yy == pt3[PTYY]) { - (pt3[PTXX], pt3[PTXY], pt3[PTYX], pt3[PTYY], pt3[PTZX], pt3[PTZY]) = - _ECTwistDoubleJacobian(pt1xx, pt1xy, pt1yx, pt1yy, pt1zx, pt1zy); - return pt3; - } - (pt3[PTXX], pt3[PTXY], pt3[PTYX], pt3[PTYY], pt3[PTZX], pt3[PTZY]) = (1, 0, 1, 0, 0, 0); - return pt3; - } - - (pt2zx, pt2zy) = _FQ2Mul(pt1zx, pt1zy, pt2zx, pt2zy); // W = z1 * z2 - (pt1xx, pt1xy) = _FQ2Sub(pt2yx, pt2yy, pt3[PTYX], pt3[PTYY]); // U = U1 - U2 - (pt1yx, pt1yy) = _FQ2Sub(pt2xx, pt2xy, pt3[PTZX], pt3[PTZY]); // V = V1 - V2 - (pt1zx, pt1zy) = _FQ2Mul(pt1yx, pt1yy, pt1yx, pt1yy); // V_squared = V * V - (pt2yx, pt2yy) = _FQ2Mul(pt1zx, pt1zy, pt3[PTZX], pt3[PTZY]); // V_squared_times_V2 = V_squared * V2 - (pt1zx, pt1zy) = _FQ2Mul(pt1zx, pt1zy, pt1yx, pt1yy); // V_cubed = V * V_squared - (pt3[PTZX], pt3[PTZY]) = _FQ2Mul(pt1zx, pt1zy, pt2zx, pt2zy); // newz = V_cubed * W - (pt2xx, pt2xy) = _FQ2Mul(pt1xx, pt1xy, pt1xx, pt1xy); // U * U - (pt2xx, pt2xy) = _FQ2Mul(pt2xx, pt2xy, pt2zx, pt2zy); // U * U * W - (pt2xx, pt2xy) = _FQ2Sub(pt2xx, pt2xy, pt1zx, pt1zy); // U * U * W - V_cubed - (pt2zx, pt2zy) = _FQ2Muc(pt2yx, pt2yy, 2); // 2 * V_squared_times_V2 - (pt2xx, pt2xy) = _FQ2Sub(pt2xx, pt2xy, pt2zx, pt2zy); // A = U * U * W - V_cubed - 2 * V_squared_times_V2 - (pt3[PTXX], pt3[PTXY]) = _FQ2Mul(pt1yx, pt1yy, pt2xx, pt2xy); // newx = V * A - (pt1yx, pt1yy) = _FQ2Sub(pt2yx, pt2yy, pt2xx, pt2xy); // V_squared_times_V2 - A - (pt1yx, pt1yy) = _FQ2Mul(pt1xx, pt1xy, pt1yx, pt1yy); // U * (V_squared_times_V2 - A) - (pt1xx, pt1xy) = _FQ2Mul(pt1zx, pt1zy, pt3[PTYX], pt3[PTYY]); // V_cubed * U2 - (pt3[PTYX], pt3[PTYY]) = _FQ2Sub(pt1yx, pt1yy, pt1xx, pt1xy); // newy = U * (V_squared_times_V2 - A) - V_cubed * U2 - } - - function _ECTwistDoubleJacobian( - uint256 pt1xx, - uint256 pt1xy, - uint256 pt1yx, - uint256 pt1yy, - uint256 pt1zx, - uint256 pt1zy - ) - internal - pure - returns (uint256 pt2xx, uint256 pt2xy, uint256 pt2yx, uint256 pt2yy, uint256 pt2zx, uint256 pt2zy) - { - (pt2xx, pt2xy) = _FQ2Muc(pt1xx, pt1xy, 3); // 3 * x - (pt2xx, pt2xy) = _FQ2Mul(pt2xx, pt2xy, pt1xx, pt1xy); // W = 3 * x * x - (pt1zx, pt1zy) = _FQ2Mul(pt1yx, pt1yy, pt1zx, pt1zy); // S = y * z - (pt2yx, pt2yy) = _FQ2Mul(pt1xx, pt1xy, pt1yx, pt1yy); // x * y - (pt2yx, pt2yy) = _FQ2Mul(pt2yx, pt2yy, pt1zx, pt1zy); // B = x * y * S - (pt1xx, pt1xy) = _FQ2Mul(pt2xx, pt2xy, pt2xx, pt2xy); // W * W - (pt2zx, pt2zy) = _FQ2Muc(pt2yx, pt2yy, 8); // 8 * B - (pt1xx, pt1xy) = _FQ2Sub(pt1xx, pt1xy, pt2zx, pt2zy); // H = W * W - 8 * B - (pt2zx, pt2zy) = _FQ2Mul(pt1zx, pt1zy, pt1zx, pt1zy); // S_squared = S * S - (pt2yx, pt2yy) = _FQ2Muc(pt2yx, pt2yy, 4); // 4 * B - (pt2yx, pt2yy) = _FQ2Sub(pt2yx, pt2yy, pt1xx, pt1xy); // 4 * B - H - (pt2yx, pt2yy) = _FQ2Mul(pt2yx, pt2yy, pt2xx, pt2xy); // W * (4 * B - H) - (pt2xx, pt2xy) = _FQ2Muc(pt1yx, pt1yy, 8); // 8 * y - (pt2xx, pt2xy) = _FQ2Mul(pt2xx, pt2xy, pt1yx, pt1yy); // 8 * y * y - (pt2xx, pt2xy) = _FQ2Mul(pt2xx, pt2xy, pt2zx, pt2zy); // 8 * y * y * S_squared - (pt2yx, pt2yy) = _FQ2Sub(pt2yx, pt2yy, pt2xx, pt2xy); // newy = W * (4 * B - H) - 8 * y * y * S_squared - (pt2xx, pt2xy) = _FQ2Muc(pt1xx, pt1xy, 2); // 2 * H - (pt2xx, pt2xy) = _FQ2Mul(pt2xx, pt2xy, pt1zx, pt1zy); // newx = 2 * H * S - (pt2zx, pt2zy) = _FQ2Mul(pt1zx, pt1zy, pt2zx, pt2zy); // S * S_squared - (pt2zx, pt2zy) = _FQ2Muc(pt2zx, pt2zy, 8); // newz = 8 * S * S_squared - } - - function _ECTwistMulJacobian( - uint256 d, - uint256 pt1xx, - uint256 pt1xy, - uint256 pt1yx, - uint256 pt1yy, - uint256 pt1zx, - uint256 pt1zy - ) internal pure returns (uint256[6] memory pt2) { - while (d != 0) { - if ((d & 1) != 0) { - pt2 = _ECTwistAddJacobian( - pt2[PTXX], - pt2[PTXY], - pt2[PTYX], - pt2[PTYY], - pt2[PTZX], - pt2[PTZY], - pt1xx, - pt1xy, - pt1yx, - pt1yy, - pt1zx, - pt1zy - ); - } - (pt1xx, pt1xy, pt1yx, pt1yy, pt1zx, pt1zy) = - _ECTwistDoubleJacobian(pt1xx, pt1xy, pt1yx, pt1yy, pt1zx, pt1zy); - - d = d / 2; - } - } -} diff --git a/eth_verifier/lib/bn254/Fields.sol b/eth_verifier/lib/bn254/Fields.sol deleted file mode 100644 index 635b547a..00000000 --- a/eth_verifier/lib/bn254/Fields.sol +++ /dev/null @@ -1,131 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {BN254} from "./BN254.sol"; - -/// @notice Implements 256 bit modular arithmetic over the base field of bn254. -library Base { - uint256 internal constant MODULUS = 21888242871839275222246405745257275088696311157297823662689037894645226208583; - - function from(uint256 n) internal pure returns (uint256) { - return n % MODULUS; - } - - function from_bytes_be(bytes memory b) internal pure returns (uint256) { - uint256 offset = b.length < 32 ? (32 - b.length) * 8 : 0; - uint256 integer = uint256(bytes32(b)) >> offset; - if (integer > MODULUS) { - integer -= MODULUS; - } - - return integer; - } - - function add(uint256 self, uint256 other) internal pure returns (uint256 res) { - assembly ("memory-safe") { - res := addmod(self, other, MODULUS) // addmod has arbitrary precision - } - } - - function mul(uint256 self, uint256 other) internal pure returns (uint256 res) { - assembly ("memory-safe") { - res := mulmod(self, other, MODULUS) // mulmod has arbitrary precision - } - } - - function square(uint256 self) internal pure returns (uint256 res) { - assembly ("memory-safe") { - res := mulmod(self, self, MODULUS) // mulmod has arbitrary precision - } - } - - function neg(uint256 self) internal pure returns (uint256) { - return MODULUS - self; - } - - function sub(uint256 self, uint256 other) internal pure returns (uint256 res) { - assembly ("memory-safe") { - res := addmod(self, sub(MODULUS, other), MODULUS) - } - } -} - -/// @notice Implements 256 bit modular arithmetic over the scalar field of bn254. -library Scalar { - using {add, mul, inv, neg, sub} for uint256; - - uint256 internal constant MODULUS = 21888242871839275222246405745257275088548364400416034343698204186575808495617; - - uint256 internal constant TWO_ADIC_PRIMITIVE_ROOT_OF_UNITY = - 19103219067921713944291392827692070036145651957329286315305642004821462161904; - uint256 internal constant TWO_ADICITY = 28; - - function from(uint256 n) internal pure returns (uint256) { - return n % MODULUS; - } - - function from_bytes_be(bytes memory b) internal pure returns (uint256) { - uint256 integer = 0; - uint256 count = b.length <= 32 ? b.length : 32; - - for (uint256 i = 0; i < count; i++) { - integer <<= 8; - integer += uint8(b[i]); - } - return integer % MODULUS; - } - - function add(uint256 self, uint256 other) internal pure returns (uint256 res) { - assembly ("memory-safe") { - res := addmod(self, other, MODULUS) // addmod has arbitrary precision - } - } - - function mul(uint256 self, uint256 other) internal pure returns (uint256 res) { - assembly ("memory-safe") { - res := mulmod(self, other, MODULUS) // mulmod has arbitrary precision - } - } - - function double(uint256 self) internal pure returns (uint256 res) { - res = mul(self, 2); - } - - function square(uint256 self) internal pure returns (uint256 res) { - res = mul(self, self); - } - - function inv(uint256 self) internal view returns (uint256 inverse) { - inverse = BN254.invert(self); - } - - function neg(uint256 self) internal pure returns (uint256) { - return MODULUS - self; - } - - function sub(uint256 self, uint256 other) internal pure returns (uint256 res) { - assembly ("memory-safe") { - res := addmod(self, sub(MODULUS, other), MODULUS) - } - } - - function pow(uint256 self, uint256 exponent) internal view returns (uint256 result) { - uint256 base = self; - uint256 o; - assembly ("memory-safe") { - // define pointer - let p := mload(0x40) - // store data assembly-favouring ways - mstore(p, 0x20) // Length of Base - mstore(add(p, 0x20), 0x20) // Length of Exponent - mstore(add(p, 0x40), 0x20) // Length of Modulus - mstore(add(p, 0x60), base) // Base - mstore(add(p, 0x80), exponent) // Exponent - mstore(add(p, 0xa0), MODULUS) // Modulus - if iszero(staticcall(sub(gas(), 2000), 0x05, p, 0xc0, p, 0x20)) { revert(0, 0) } - // data - o := mload(p) - } - result = o; - } -} diff --git a/eth_verifier/lib/deserialize/Linearization.sol b/eth_verifier/lib/deserialize/Linearization.sol deleted file mode 100644 index ec8c3baa..00000000 --- a/eth_verifier/lib/deserialize/Linearization.sol +++ /dev/null @@ -1,81 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../expr/Expr.sol"; - -function deser_linearization( - bytes memory data, - Linearization storage linearization -) { - assembly ("memory-safe") { - // first 32 bytes is the length of the bytes array, we'll skip them. - let addr := add(data, 0x20) - let slot := linearization.slot - - // store total variants len - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // We have 5 dynamic arrays to store: - for { let _arr := 0 } lt(_arr, 5) { _arr := add(_arr, 1) } { - // store len - let dyn_len := mload(addr) - sstore(slot, dyn_len) - addr := add(addr, 0x20) - - // get address to first element of dynamic array - let free_mem_addr := mload(0x40) - mstore(free_mem_addr, slot) - let next_dyn_addr := keccak256(free_mem_addr, 0x20) - - // store data - for { let i := 0 } lt(i, dyn_len) { i := add(i, 1) } { - sstore(next_dyn_addr, mload(addr)) - addr := add(addr, 0x20) - next_dyn_addr := add(next_dyn_addr, 1) - } - - slot := add(slot, 1) - } - } -} - -// Used whenever deserializing a new proof, as most of the literal tokens will -// change for each proof. -function deser_literal_tokens( - bytes memory data, - Linearization storage linearization -) { - assembly ("memory-safe") { - // first 32 bytes is the length of the bytes array, we'll skip them. - let addr := add(data, 0x20) - let slot := linearization.slot - - // There're 6 dynamic arrays, we want to just update the literals one - // which is the last one. - // We need to skip the slots corresponding to: - // - the total variants len (1 slot) - // - five dynamic arrays (5 slots) - slot := add(slot, 6) - - // Then deserialize literal tokens - - // store len - let dyn_len := mload(addr) - sstore(slot, dyn_len) - addr := add(addr, 0x20) - - // get address to first element of dynamic array - let free_mem_addr := mload(0x40) - mstore(free_mem_addr, slot) - let next_dyn_addr := keccak256(free_mem_addr, 0x20) - - // store data - for { let i := 0 } lt(i, dyn_len) { i := add(i, 1) } { - sstore(next_dyn_addr, mload(addr)) - addr := add(addr, 0x20) - next_dyn_addr := add(next_dyn_addr, 1) - } - } -} diff --git a/eth_verifier/lib/deserialize/MerkleProof.sol b/eth_verifier/lib/deserialize/MerkleProof.sol deleted file mode 100644 index ca954f4a..00000000 --- a/eth_verifier/lib/deserialize/MerkleProof.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../pasta/Fields.sol"; -import "../merkle/Verify.sol"; -import {Test, console2} from "forge-std/Test.sol"; - -function deser_merkle_path( - bytes memory data -) pure returns (MerkleVerifier.PathElement[] memory merkle_path) { - uint256 data_word_length = data.length / 32; - merkle_path = new MerkleVerifier.PathElement[](data_word_length / 2); - - for (uint256 i = 0; i < merkle_path.length; i++) { - uint256 hash = 0; - uint256 left_or_right = 0; - assembly ("memory-safe") { - let data_addr := add(data, 0x20) - data_addr := add(data_addr, mul(i, 0x40)) - hash := mload(data_addr) - left_or_right := mload(add(data_addr, 0x20)) - } - merkle_path[i].hash = Pasta.from(hash); - merkle_path[i].left_or_right = MerkleVerifier.LeftOrRight(left_or_right); - } -} diff --git a/eth_verifier/lib/deserialize/PairingProof.sol b/eth_verifier/lib/deserialize/PairingProof.sol deleted file mode 100644 index 7a1783fc..00000000 --- a/eth_verifier/lib/deserialize/PairingProof.sol +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../Proof.sol"; -import "../bn254/BN254.sol"; - -/// @notice demonstrates the "deserialization" of incoming PairingProof data. -function deser_pairing_proof(bytes memory, PairingProof storage pairing_proof) { - assembly { - let offset := 0xa0 // memory starts at 0x80, - // first 32 bytes is the length of the bytes array. - let slot := pairing_proof.slot - - sstore(add(slot, 0), mload(add(offset, 0x00))) - sstore(add(slot, 1), mload(add(offset, 0x20))) - sstore(add(slot, 2), mload(add(offset, 0x40))) - } -} diff --git a/eth_verifier/lib/deserialize/ProverProof.sol b/eth_verifier/lib/deserialize/ProverProof.sol deleted file mode 100644 index ace4b273..00000000 --- a/eth_verifier/lib/deserialize/ProverProof.sol +++ /dev/null @@ -1,358 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../Proof.sol"; - -function deser_proof_comms(bytes memory data, Proof.ProverCommitments storage comms) { - assembly { - // first 32 bytes is the length of the bytes array, we'll skip them. - let addr := add(data, 0x20) - let slot := comms.slot - - // the first 32 bytes correspond to the optional field flags: - let optional_field_flags := mload(addr) - sstore(slot, optional_field_flags) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // the non-optional commitments are: - // - w[15] - // - z - // - t[7] - // totalling 23 commitments, so 46 base field elements (each one is a G1 point): - for { let i := 0 } lt(i, 46) { i := add(i, 1) } { - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - - // then we have optional commitments. We know which are set and which aren't - // thanks to the flags. - // the optional commitments are: - // - lookup_sorted[] (dynamic) - // - lookup_aggreg - // - lookup_runtime - // totalling 2 commitments + the length of `lookup_sorted`. - - if and(1, optional_field_flags) { - // if the lookup comms are present - // First we'll take care of lookup_sorted. The slot of - // the last element of a dynamic array is the keccak hash of - // the array slot. Also the array slot contains its length. - - // Get the last element slot by hashing the array: - let free_mem_addr := mload(0x40) - mstore(free_mem_addr, slot) - let lookup_sorted_ptr := keccak256(free_mem_addr, 0x20) - - // Store the length (first encoded word is the length): - let lookup_sorted_len := mload(addr) - sstore(slot, lookup_sorted_len) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // Now store every element - for { let i := 0 } lt(i, lookup_sorted_len) { i := add(i, 1) } { - // x: - sstore(lookup_sorted_ptr, mload(addr)) - addr := add(addr, 0x20) - lookup_sorted_ptr := add(lookup_sorted_ptr, 1) - // y: - sstore(lookup_sorted_ptr, mload(addr)) - addr := add(addr, 0x20) - lookup_sorted_ptr := add(lookup_sorted_ptr, 1) - } - - // Now we store lookup_aggreg: - // x: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - // y: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // Now lookup_runtime if it's present: - if and(1, shr(1, optional_field_flags)) { - // x: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - // y: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - } - } -} - -function deser_proof_evals(bytes memory data, Proof.ProofEvaluations storage evals) { - assembly { - // first 32 bytes is the length of the bytes array, we'll skip them. - let addr := add(data, 0x20) - let slot := evals.slot - - // the first 32 bytes correspond to the optional field flags: - let optional_field_flags := mload(addr) - sstore(slot, optional_field_flags) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // the non-optional evaluations are: - // - w[15] - // - z - // - s[6] - // - coefficients[15] - // - generic_selector - // - poseidon_selector - // - complete_add_selector - // - mul_selector - // - emul_selector - // - endomul_scalar_selector - // totalling 43 evaluations, so 86 scalars: - for { let i := 0 } lt(i, 86) { i := add(i, 1) } { - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - - // then we have optional evaluations. We know which are set and which aren't - // thanks to the flags. - // the optional evaluations are: - // - public_evals - // - range_check0_selector - // - range_check1_selector - // - foreign_field_add_selector - // - foreign_field_mul_selector - // - xor_selector - // - rot_selector - // - lookup_aggregation - // - lookup_table - // - lookup_sorted[5] - // - runtime_lookup_table - // - runtime_lookup_table_selector - // - xor_lookup_selector - // - lookup_gate_lookup_selector - // - range_check_lookup_selector - // - foreign_field_mul_lookup_selector - // totalling 20 evaluations. In this case we'll index evaluations, not scalars: - for { let i := 0 } lt(i, 20) { i := add(i, 1) } { - let is_some := and(1, shr(i, optional_field_flags)) - switch is_some - case 1 { - // true - // zeta: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - // zeta_omega: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - default { - // false - slot := add(slot, 2) - } - } - } -} - -function deser_pairing_proof(bytes memory data, Proof.PairingProof storage pairing_proof) { - assembly { - // first 32 bytes is the length of the bytes array, we'll skip them. - let addr := add(data, 0x20) - let slot := pairing_proof.slot - - sstore(slot, mload(addr)) - sstore(add(slot, 1), mload(add(addr, 0x20))) - sstore(add(slot, 2), mload(add(addr, 0x40))) - } -} - -function deser_prover_proof(bytes memory data, Proof.ProverProof storage prover_proof) { - assembly ("memory-safe") { - // first 32 bytes is the length of the bytes array, we'll skip them. - let addr := add(data, 0x20) - let slot := prover_proof.slot - - /** - * Decode commitments * - */ - - // the first 32 bytes correspond to the optional field flags: - let optional_field_flags := mload(addr) - sstore(slot, optional_field_flags) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // the non-optional commitments are: - // - w[15] - // - z - // - t[7] - // totalling 23 commitments, so 46 base field elements (each one is a G1 point): - for { let i := 0 } lt(i, 46) { i := add(i, 1) } { - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - - // then we have optional commitments. We know which are set and which aren't - // thanks to the flags. - // the optional commitments are: - // - lookup_sorted[] (dynamic) - // - lookup_aggreg - // - lookup_runtime - // totalling 2 commitments + the length of `lookup_sorted`. - - if and(1, optional_field_flags) { - // if the lookup comms are present - // First we'll take care of lookup_sorted. The slot of - // the last element of a dynamic array is the keccak hash of - // the array slot. Also the array slot contains its length. - - // Get the last element slot by hashing the array: - let free_mem_addr := mload(0x40) - mstore(free_mem_addr, slot) - let lookup_sorted_ptr := keccak256(free_mem_addr, 0x20) - - // Store the length (first encoded word is the length): - let lookup_sorted_len := mload(addr) - sstore(slot, lookup_sorted_len) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // Now store every element - for { let i := 0 } lt(i, lookup_sorted_len) { i := add(i, 1) } { - // x: - sstore(lookup_sorted_ptr, mload(addr)) - addr := add(addr, 0x20) - lookup_sorted_ptr := add(lookup_sorted_ptr, 1) - // y: - sstore(lookup_sorted_ptr, mload(addr)) - addr := add(addr, 0x20) - lookup_sorted_ptr := add(lookup_sorted_ptr, 1) - } - - // Now we store lookup_aggreg: - // x: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - // y: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // Now lookup_runtime if it's present: - switch and(1, shr(1, optional_field_flags)) - case 1 { - // true - // x: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - // y: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - default { - // false - slot := add(slot, 2) - } - } - - /** - * Decode opening * - */ - - // opening consists of a point and a scalar, so three uints: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - - /** - * Decode evaluations: * - */ - - // the first 32 bytes correspond to the optional field flags: - optional_field_flags := mload(addr) - sstore(slot, optional_field_flags) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // the non-optional evaluations are: - // - w[15] - // - z - // - s[6] - // - coefficients[15] - // - generic_selector - // - poseidon_selector - // - complete_add_selector - // - mul_selector - // - emul_selector - // - endomul_scalar_selector - // totalling 43 evaluations, so 86 scalars: - for { let i := 0 } lt(i, 86) { i := add(i, 1) } { - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - - // then we have optional evaluations. We know which are set and which aren't - // thanks to the flags. - // the optional evaluations are: - // - public_evals - // - range_check0_selector - // - range_check1_selector - // - foreign_field_add_selector - // - foreign_field_mul_selector - // - xor_selector - // - rot_selector - // - lookup_aggregation - // - lookup_table - // - lookup_sorted[5] - // - runtime_lookup_table - // - runtime_lookup_table_selector - // - xor_lookup_selector - // - lookup_gate_lookup_selector - // - range_check_lookup_selector - // - foreign_field_mul_lookup_selector - // totalling 20 evaluations. In this case we'll index evaluations, not scalars: - for { let i := 0 } lt(i, 20) { i := add(i, 1) } { - let is_some := and(1, shr(i, optional_field_flags)) - switch is_some - case 1 { - // true - // zeta: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - // zeta_omega: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - default { - // false - slot := add(slot, 2) - } - } - - /** - * Decode ft_eval1: * - */ - - // ft_eval1 is just a scalar: - sstore(slot, mload(addr)) - } -} diff --git a/eth_verifier/lib/deserialize/PublicInputs.sol b/eth_verifier/lib/deserialize/PublicInputs.sol deleted file mode 100644 index d3931b8c..00000000 --- a/eth_verifier/lib/deserialize/PublicInputs.sol +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../bn254/Fields.sol"; - -function deser_proof_hash(bytes memory data) pure returns (uint256 proof_hash) { - assembly ("memory-safe") { - // first 32 bytes is the length of the bytes array, we'll skip them. - let addr := add(data, 0x20) - - // Store public input - proof_hash := mload(addr) - } -} diff --git a/eth_verifier/lib/deserialize/VerifierIndex.sol b/eth_verifier/lib/deserialize/VerifierIndex.sol deleted file mode 100644 index 6287e7d6..00000000 --- a/eth_verifier/lib/deserialize/VerifierIndex.sol +++ /dev/null @@ -1,119 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../VerifierIndex.sol"; - -function deser_verifier_index( - bytes memory data, - VerifierIndexLib.VerifierIndex storage verifier_index -) { - assembly ("memory-safe") { - // first 32 bytes is the length of the bytes array, we'll skip them. - let addr := add(data, 0x20) - let slot := verifier_index.slot - - // the first 32 bytes correspond to the optional field flags: - let optional_field_flags := mload(addr) - sstore(slot, optional_field_flags) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // the non-optional fields are: - // - domain_size (scalar) - // - domain_group_gen (scalar) - // - max_poly_size (scalar) - // - zk_rows (scalar) - // - public_len (scalar) - // - sigma_comm[7] (point) - // - coefficients_comm[15] (point) - // - generic_comm (point) - // - psm_comm (point) - // - complete_add_comm (point) - // - mul_comm (point) - // - emul_comm (point) - // - endomul_scalar_comm (point) - // - shift[7] (scalar) - // - w (scalar) - // - endo (scalar) - // totalling 70 field elements: - for { let i := 0 } lt(i, 70) { i := add(i, 1) } { - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - - // then we have optional field. We know which are set and which aren't - // thanks to the flags. - // the optional fields are: - // - range_check0_comm (point) - // - range_check1_comm (point) - // - foreign_field_add_comm (point) - // - foreign_field_mul_comm (point) - // - xor_comm (point) - // - rot_comm (point) - // - lookup_index: - // - optional_field_flags - // - lookup_table (point, non-optional) - // - lookup_info[2] (scalar, non-optional) - // - xor (point, optional) - // - lookup (point, optional) - // - range_check (point, optional) - // - ffmul (point, optional) - // - table_ids (point, optional) - // - runtime_tables_selector (point, optional) - - // first we have 6 optional points: - for { let i := 0 } lt(i, 6) { i := add(i, 1) } { - let is_some := and(1, shr(i, optional_field_flags)) - switch is_some - case 1 { // true - // x: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - // y: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - default { // false - slot := add(slot, 2) - } - } - - // then we have lookup index, if it's some: - if and(1, shr(6, optional_field_flags)) { - // it has its own optional field flags: - optional_field_flags := mload(addr) - sstore(slot, optional_field_flags) - addr := add(addr, 0x20) - slot := add(slot, 1) - - // 1 point and 2 scalars, so 4 field elements: - for { let i := 0 } lt(i, 4) { i := add(i, 1) } { - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - - // and 6 optional points: - for { let i := 0 } lt(i, 6) { i := add(i, 1) } { - let is_some := and(1, shr(i, optional_field_flags)) - switch is_some - case 1 { // true - // x: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - // y: - sstore(slot, mload(addr)) - addr := add(addr, 0x20) - slot := add(slot, 1) - } - default { // false - slot := add(slot, 2) - } - } - } - } -} diff --git a/eth_verifier/lib/expr/Expr.sol b/eth_verifier/lib/expr/Expr.sol deleted file mode 100644 index 825ee6db..00000000 --- a/eth_verifier/lib/expr/Expr.sol +++ /dev/null @@ -1,105 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "./PolishToken.sol"; - -struct Column { - ColumnVariant variant; - uint256 inner; -} - -enum ColumnVariant { - Witness, // (uint) - Z, - LookupSorted, // (uint) - LookupAggreg, - LookupTable, - LookupKindIndex, // (LookupPattern) - LookupRuntimeSelector, - LookupRuntimeTable, - Index, // (GateType) - Coefficient, // (uint) - Permutation // (uint) - -} - -enum CurrOrNext { - Curr, - Next -} - -struct Variable { - Column col; - CurrOrNext row; -} - -struct RowOffset { - bool zk_rows; - int256 offset; -} - -enum LookupPattern { - Xor, - Lookup, - RangeCheck, - ForeignFieldMul -} - -// Variants like LookupPattern and TableWidth have data associated to them. -// We will represent them as a contiguous array of `bytes`. -// -// For more info on this, see docs in PolishToken.sol -struct FeatureFlag { - FeatureFlagVariant variant; - bytes data; -} - -enum FeatureFlagVariant { - RangeCheck0, - RangeCheck1, - ForeignFieldAdd, - ForeignFieldMul, - Xor, - Rot, - LookupTables, - RuntimeLookupTables, - // TODO: LookupPattern(LookupPattern), - /// Enabled if the table width is at least the given number - TableWidth -} -/// Enabled if the number of lookups per row is at least the given number -// TODO: LookupsPerRow(isize) - -type FeatureFlagTableWidth is uint256; - -enum GateType { - // Gate types - Zero, - Generic, - Poseidon, - CompleteAdd, - VarBaseMul, - EndoMul, - EndoMulScalar, - Lookup, - CairoClaim, - CairoInstruction, - CairoFlags, - CairoTransition, - RangeCheck0, - RangeCheck1, - ForeignFieldAdd, - ForeignFieldMul, - Xor16, - Rot64 -} - -struct Linearization { - uint256 total_variants_len; - uint256[] variants; - uint256[] mds; - uint256[] pows; - uint256[] loads; - int256[] offsets; - uint256[] literals; -} diff --git a/eth_verifier/lib/expr/ExprConstants.sol b/eth_verifier/lib/expr/ExprConstants.sol deleted file mode 100644 index fa711d1d..00000000 --- a/eth_verifier/lib/expr/ExprConstants.sol +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../bn254/Fields.sol"; - -// @notice constants required to evaluate an expression. -struct ExprConstants { - uint256 alpha; - uint256 beta; - uint256 gamma; - uint256 joint_combiner; - uint256 endo_coefficient; - // INFO: The keccak sponge doesn't use an MDS, so this shouldn't ever execute - // They implement the keccak sponge with a "dummy" (unused) MDS. - //uint256[] mds; // the MDS matrix in row major - //uint256 mds_cols; - uint256 zk_rows; -} diff --git a/eth_verifier/lib/expr/PolishToken.sol b/eth_verifier/lib/expr/PolishToken.sol deleted file mode 100644 index bd6f08e7..00000000 --- a/eth_verifier/lib/expr/PolishToken.sol +++ /dev/null @@ -1,231 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "./Expr.sol"; -import "./ExprConstants.sol"; -import "../bn254/Fields.sol"; -import "../Proof.sol"; -import "../sponge/Sponge.sol"; -import {Polynomial} from "../Polynomial.sol"; -import {PointEvaluations} from "../Evaluations.sol"; - -library PolishTokenEvaluation { - error PolishTokenEvaluationError(); // Polish token stack didn't evaluate fully - - function evaluate( - Linearization storage linearization, - uint256 domain_gen, - uint256 domain_size, - uint256 pt, - uint256 vanishing_eval, - Proof.ProofEvaluations memory evals, - ExprConstants memory c - ) internal view returns (uint256) { - uint256[] memory stack = new uint256[](linearization.total_variants_len); - uint256 stack_next = 0; // will keep track of last stack element's index - uint256[] memory cache = new uint256[](linearization.total_variants_len); - uint256 cache_next = 0; // will keep track of last cache element's index - // WARN: Both arrays allocate the maximum memory they will ever use, but it's - // WARN: pretty unlikely they'll need it all. - - uint256 next_mds_index = 0; - uint256 next_literals_index = 0; - uint256 next_pows_index = 0; - uint256 next_offsets_index = 0; - uint256 next_loads_index = 0; - - for (uint256 i = 0; i < linearization.total_variants_len; i++) { - uint256 byte_index = 31 - (i % 32); - uint256 word_index = i / 32; - uint256 variant = (linearization.variants[word_index] >> (byte_index * 8)) & 0xFF; - - // Alpha - if (variant == 0) { - stack[stack_next] = c.alpha; - stack_next += 1; - continue; - } - // Beta - if (variant == 1) { - stack[stack_next] = c.beta; - stack_next += 1; - continue; - } - // Gamma - if (variant == 2) { - stack[stack_next] = c.gamma; - stack_next += 1; - continue; - } - // JointCombiner - if (variant == 3) { - stack[stack_next] = c.joint_combiner; - stack_next += 1; - continue; - } - // EndoCoefficient - if (variant == 4) { - stack[stack_next] = c.endo_coefficient; - stack_next += 1; - continue; - } - // Mds - if (variant == 5) { - uint256 row = linearization.mds[next_mds_index]; - uint256 col = linearization.mds[next_mds_index + 1]; - next_mds_index += 2; - - stack[stack_next] = KeccakSponge.mds()[row][col]; - stack_next += 1; - continue; - } - // Literal - if (variant == 6) { - uint256 literal = linearization.literals[next_literals_index]; - next_literals_index += 1; - - stack[stack_next] = literal; - stack_next += 1; - continue; - } - // Dup - if (variant == 7) { - stack[stack_next] = stack[stack_next - 1]; - stack_next += 1; - continue; - } - // Pow - if (variant == 8) { - uint256 n = linearization.pows[next_pows_index]; - next_pows_index += 1; - - stack[stack_next - 1] = Scalar.pow(stack[stack_next - 1], n); - continue; - } - // Add - if (variant == 9) { - // pop x and y - uint256 y = stack[stack_next - 1]; - stack_next -= 1; - uint256 x = stack[stack_next - 1]; - stack_next -= 1; - - // push result - stack[stack_next] = Scalar.add(x, y); - stack_next += 1; - continue; - } - // Mul - if (variant == 10) { - // pop x and y - uint256 y = stack[stack_next - 1]; - stack_next -= 1; - uint256 x = stack[stack_next - 1]; - stack_next -= 1; - - // push result - stack[stack_next] = Scalar.mul(x, y); - stack_next += 1; - continue; - } - // Sub - if (variant == 11) { - // pop x and y - uint256 y = stack[stack_next - 1]; - stack_next -= 1; - uint256 x = stack[stack_next - 1]; - stack_next -= 1; - - // push result - stack[stack_next] = Scalar.sub(x, y); - stack_next += 1; - continue; - } - // VanishesOnZeroKnowledgeAndPreviousRows - if (variant == 12) { - stack[stack_next] = Polynomial.eval_vanishes_on_last_n_rows(domain_gen, domain_size, c.zk_rows + 1, pt); - stack_next += 1; - continue; - } - // UnnormalizedLagrangeBasis - if (variant == 13) { - int256 offset = linearization.offsets[next_offsets_index]; - next_offsets_index += 1; - - stack[stack_next] = unnormalized_lagrange_basis(domain_gen, vanishing_eval, offset, pt); - stack_next += 1; - continue; - } - // Store - if (variant == 14) { - uint256 x = stack[stack_next - 1]; - - cache[cache_next] = x; - cache_next += 1; - continue; - } - // Load - if (variant == 15) { - uint256 j = linearization.loads[next_loads_index]; - next_loads_index += 1; - - uint256 x = cache[j]; - stack[stack_next] = x; - stack_next += 1; - continue; - } - // Cell - if (variant >= 16) { - // check msb for row: - bool curr = variant & 0x80 == 0; - - // get eval from column id (see serializer) - uint256 col_id = (variant & (0x80 - 1)) - 16; - PointEvaluations memory point_eval = Proof.evaluate_column_by_id(evals, col_id); - uint256 eval; - if (curr) { - eval = point_eval.zeta; - } else { - eval = point_eval.zeta_omega; - } - - stack[stack_next] = eval; - stack_next += 1; - continue; - } - revert("unhandled polish token variant"); - } - - if (stack_next != 1) { - revert PolishTokenEvaluationError(); - } - return stack[0]; - } - // @notice Compute the ith unnormalized lagrange basis - - function unnormalized_lagrange_basis(uint256 domain_gen, uint256 vanishing_eval, int256 i, uint256 pt) - internal - view - returns (uint256 result) - { - uint256 omega_i; - if (i < 0) { - omega_i = Scalar.inv(Scalar.pow(domain_gen, uint256(-i))); - } else { - omega_i = Scalar.pow(domain_gen, uint256(i)); - } - - uint256 sub_m_omega = Scalar.sub(pt, omega_i); - result = Scalar.mul(vanishing_eval, Scalar.inv(sub_m_omega)); - } - - // @notice evaluates the vanishing polynomial for this domain at tau. - // @notice for multiplicative subgroups, this polynomial is `z(X) = X^self.size - 1 - function evaluate_vanishing_polynomial(uint256 domain_gen, uint256 domain_size, uint256 tau) - internal - view - returns (uint256) - { - return Scalar.sub(Scalar.pow(tau, domain_size), 1); - } -} diff --git a/eth_verifier/lib/forge-std b/eth_verifier/lib/forge-std deleted file mode 160000 index f73c73d2..00000000 --- a/eth_verifier/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f73c73d2018eb6a111f35e4dae7b4f27401e9421 diff --git a/eth_verifier/lib/merkle/Verify.sol b/eth_verifier/lib/merkle/Verify.sol deleted file mode 100644 index 90e6e87a..00000000 --- a/eth_verifier/lib/merkle/Verify.sol +++ /dev/null @@ -1,497 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "pasta/Fields.sol"; -import "poseidon/Pasta.sol"; - -contract MerkleVerifier { - enum LeftOrRight { - Left, - Right - } - - struct PathElement { - Pasta.Fp hash; - LeftOrRight left_or_right; - } - - function calc_path_root( - PathElement[] memory merkle_path, - Pasta.Fp leaf_hash, - Poseidon poseidon - ) public view returns (Pasta.Fp) { - Pasta.Fp acc = leaf_hash; - Poseidon.Sponge memory sponge = poseidon.new_sponge(); - - for (uint256 i = 0; i < merkle_path.length; i++) { - sponge.state[0] = salt_values[i * 3]; - sponge.state[1] = salt_values[i * 3 + 1]; - sponge.state[2] = salt_values[i * 3 + 2]; - - if (merkle_path[i].left_or_right == LeftOrRight.Left) { - sponge = poseidon.absorb(sponge, acc); - sponge = poseidon.absorb(sponge, merkle_path[i].hash); - } else { - sponge = poseidon.absorb(sponge, merkle_path[i].hash); - sponge = poseidon.absorb(sponge, acc); - } - - (sponge, acc) = poseidon.squeeze(sponge); - } - - return acc; - } - - Pasta.Fp[199] internal salt_values = [ - Pasta.from( - 8397268313679062041369959431253823194029931472150942928062160502284391094281 - ), - Pasta.from( - 24767884761786058961844271624848183563027832662151526765582126547150580343286 - ), - Pasta.from( - 15520161476079946346223794435136450862321049619449569410496603974021593252201 - ), - Pasta.from( - 12373852158717286419843731546435335382149645091717657472272709119680142489615 - ), - Pasta.from( - 13564003298811293044133692367818358732199958610489782205113648738971877309993 - ), - Pasta.from( - 5337043262085238844960907983211959910580364187637104432942748885155441259131 - ), - Pasta.from( - 15051812550454916172932351641588540140427950452718257831984749683884179659477 - ), - Pasta.from( - 28383195182051628320454520194171815630993209993126957580698595309541504912011 - ), - Pasta.from( - 4277691878710291748308373204686233213493236676960343422888557635834505390473 - ), - Pasta.from( - 6575607106027019342374634884807079936125440627705088279356425488661046931690 - ), - Pasta.from( - 526224612349672274315011399400566806883023700724847451269254308717318755497 - ), - Pasta.from( - 4003207773096098875040917033101823533304203798100315080652105415888406223352 - ), - Pasta.from( - 24963240007694741581504536598446662705874548366155724154174858737449434658477 - ), - Pasta.from( - 3025643334447992593201368502593388460692780911680818037147500927887943605498 - ), - Pasta.from( - 17577291971615136405466944877064852825800866932005309965300049909875838083076 - ), - Pasta.from( - 11625519336224216740433997623839523639549293720171430638848267458495647838261 - ), - Pasta.from( - 14197827690168556134026805733901328807809311762374992007209622464122527394871 - ), - Pasta.from( - 24909546339148248646747762490876591451430974658068769530058833648954096301456 - ), - Pasta.from( - 20496141241824212441237352225390586578798287226209999878764321364949616437960 - ), - Pasta.from( - 4155590369081069691345914612081918410248481482116023511739814856893535749559 - ), - Pasta.from( - 25280235590916436988517501437699802702512719636909687680088402215172012465734 - ), - Pasta.from( - 10298068926909347382132883731000773194312572157088286708479172422210086260995 - ), - Pasta.from( - 14412862431845107093626156618901720148499279341044373322107997590840338638158 - ), - Pasta.from( - 18738278293927842151520671915277777211638038066182255367951771829184874598427 - ), - Pasta.from( - 28632592040294076899303724277173923788865287530305670556694222869732793988004 - ), - Pasta.from( - 14134336299867672225741933845142646509776280694779004162993533642733541282015 - ), - Pasta.from( - 28037399410478206961594894531712592987717708818866863005767179190210518183828 - ), - Pasta.from( - 28322440793030270460307522165077799886504360112793805560745845785393893720792 - ), - Pasta.from( - 3680990636041985093510751436516424061735738733660682549379374982251492126646 - ), - Pasta.from( - 7896824890513378496611723513283689788600212799489558200026291296328182622221 - ), - Pasta.from( - 1478825754917601949043978332728751378179798684550333324122027096810422078645 - ), - Pasta.from( - 19955446483411426559697602372431961972639316232014088927090908136220581190127 - ), - Pasta.from( - 22937261898125224845285209761802309482795401959887338893419704202246881755471 - ), - Pasta.from( - 3025669655948979260146450778546273335663805909503078623788468939889184085065 - ), - Pasta.from( - 15993847354573651974906488175776892699808218007882158173582011967178852672755 - ), - Pasta.from( - 6728962834255630075044411175238909144357249010478126045082535701512206099100 - ), - Pasta.from( - 4677165292950275428044379611682530196143565581952109747023715412205031133122 - ), - Pasta.from( - 21513899673761352699672092079955767010402365369617552725870531290648558067173 - ), - Pasta.from( - 5823386711670711136557441661686775439019939642112594994252954772574341048476 - ), - Pasta.from( - 4137450619603133353679529278148472140169709465994051450094506977210968350741 - ), - Pasta.from( - 20777878603100506442428451439085789382190751853558867746947762486311334171694 - ), - Pasta.from( - 27969424486066619381654224557897167292901506145568220790334189049235066613665 - ), - Pasta.from( - 7462353831830439752760657933641455151117269082035084708085558232378403435178 - ), - Pasta.from( - 1787244519320006617494344121814759180988090836648336932002915182844592150859 - ), - Pasta.from( - 7682306724592829108592527309756770669512991144597346665572702844909814248134 - ), - Pasta.from( - 12849982892801603879697133836957604723592408109307896931233575279534184819695 - ), - Pasta.from( - 27109175861581264256359157262042451197946512419680432940872313012019233881553 - ), - Pasta.from( - 13815104575456051899693190094329831931582197916170277640933492195480185919492 - ), - Pasta.from( - 6644594317394622409746632037064067639690803096240195936787541353591870145229 - ), - Pasta.from( - 11503303739151441813791807558499068063822922776334355558577285976158398952971 - ), - Pasta.from( - 9337125879737469121869180649342064063336965090821029559184624332617319461193 - ), - Pasta.from( - 16104414183099799176590675567463444044322697144434744941137050377134055108298 - ), - Pasta.from( - 17358877713925634221311853575857896650017793698150943722268889332978652414223 - ), - Pasta.from( - 7234126597295300967301107936467282549695978865424211233580228640451399578381 - ), - Pasta.from( - 17030714373021103124485584722642520216144771996601835120521405613273080127695 - ), - Pasta.from( - 26509950438240323122836106956137067463028271669140328718474012128935499432293 - ), - Pasta.from( - 9818889955393545543887790759741008577636326202190253983607321653665940190431 - ), - Pasta.from( - 2270411531086562128123060093007384197084198453711890037231329803621300858719 - ), - Pasta.from( - 21192327485899043676835708468201514580084416399939158033379551466586666938111 - ), - Pasta.from( - 16033989106273371309578845565218498940092011786025881685960320194668952032796 - ), - Pasta.from( - 24198821385641779512630219367024089801694762674171638444197433117564329069692 - ), - Pasta.from( - 17399215024068249103454892742127252703846599060950907551709080066119343928674 - ), - Pasta.from( - 6797496550859701647209308902606013125966581359799331801777446461476502619719 - ), - Pasta.from( - 15260363122901687259348044007172490341059494245069079855983853109440904252201 - ), - Pasta.from( - 21842382560395200222478365766257143008580907092198481707074219770380221343296 - ), - Pasta.from( - 19876442709041612567866226719534012751674476537343454328432936802993088542055 - ), - Pasta.from( - 10163265845587027789352563667609980510844248093141311984644246724416434726269 - ), - Pasta.from( - 13369107363202464111086659762824590159914641657154062683624651983805608000703 - ), - Pasta.from( - 259175261445126704640807316250901216510411826120741654939526054707099272571 - ), - Pasta.from( - 25461412540439968937539737336272713843660028687121793297700520674608023616092 - ), - Pasta.from( - 10755893000209302712577283259218096030828962406298481790491258793159046533447 - ), - Pasta.from( - 8866387537961409494137849949417794325538964245944495058838310355591599158861 - ), - Pasta.from( - 10609060102237336747496673704618826236585593118726760088941627829244492026235 - ), - Pasta.from( - 6641853671926028367004819143507613339775735721213578606129119394262986889972 - ), - Pasta.from( - 9176598236393962999771652301435919857376442200780273350376009302991599772639 - ), - Pasta.from( - 8743110049886111146439413671080530377154252710287926017043338548443560750915 - ), - Pasta.from( - 18208706295395849104423491533560000448355322792628322573027110778397939938163 - ), - Pasta.from( - 2334327064299326913052261993744862803507079864714736582625500368508312407812 - ), - Pasta.from( - 5402818389523730021623225031229797943489634186744070457165886896537635439065 - ), - Pasta.from( - 3692115584159570188352953749250318597861823862334166671448537184963748474804 - ), - Pasta.from( - 6395188055016804845192781987569287073677422173381065069566010090740896063910 - ), - Pasta.from( - 23003820738793392288354347717848227276238967632076473726115713990146403158695 - ), - Pasta.from( - 1543444712754301638361713310613005045560110448825211620606741790481631721785 - ), - Pasta.from( - 25595274127363608001744519321284450036093000747866790144244029941400855918414 - ), - Pasta.from( - 1371490494959146551400088557556657100677286767912367568372761029147549710248 - ), - Pasta.from( - 9732076291970119043155961140210107725581877672949581468560495192803834949972 - ), - Pasta.from( - 25880816593631896400945395886425311206250378130295778852027160152013445398428 - ), - Pasta.from( - 5026966843162353429404633270081859806361860129654116093869475139616692501822 - ), - Pasta.from( - 14399077456078098196809897303466976088446801284524532382221120510698115179718 - ), - Pasta.from( - 19173688776848337916142856590169111672948615917148745778746830767290062051975 - ), - Pasta.from( - 28464430208663194459267079800760461073547794864536029383346306150717295227411 - ), - Pasta.from( - 28914474904259440678682001469840084119186056954595456498123242804122927256626 - ), - Pasta.from( - 26203211860047183178968105249611310661035109372798510229151816437426414875870 - ), - Pasta.from( - 10406444365958122823322321566809921419619436370846100318015238317663537713508 - ), - Pasta.from( - 19324027736939870254907794657369430751886546066724762856165204189536200502231 - ), - Pasta.from( - 27910908481683556223061499853457824695327274417786658997051526597466420105059 - ), - Pasta.from( - 1799233325885428173215288721205732918055309618518578057591098186182492814731 - ), - Pasta.from( - 9573156486615047627167271384099786785626031045209045718144391096893253044237 - ), - Pasta.from( - 21011100500969260736212187791129169911216589801480194154796681238630801173303 - ), - Pasta.from( - 3148460134537259154192780209825660438770489205065565102219398141630842726179 - ), - Pasta.from( - 10416076901773723654263170420888517757942744365709722512723508899712187445722 - ), - Pasta.from( - 9749070751601048371099954046702168187173097100747088073519924283619949053060 - ), - Pasta.from( - 16036605154418397696690227738898261818934103448455753144542686857246049934251 - ), - Pasta.from( - 13116195790811852398580983299275910910260911290232634459841017490947920635760 - ), - Pasta.from( - 20914357145334136112903459144371894839046767011252485660349261543687439240515 - ), - Pasta.from( - 27121734445981217282939510097696253631089706813569006868445891968460368567974 - ), - Pasta.from( - 715381054565457856713917483767474125655250716827719934397684768568566660056 - ), - Pasta.from( - 22926360198644867909959646760416396768171909013888923485856060088656762220146 - ), - Pasta.from( - 15411651809728377007962749584457476958331475859761077254535733310493693863184 - ), - Pasta.from( - 28283529960577247850724132686757276550945563071535771556525147218578304498394 - ), - Pasta.from( - 25922771853751840452016161865146657836373548957490281948552979186327598832907 - ), - Pasta.from( - 16985607528849256520800813920239971004020161818415619567540220894514586229304 - ), - Pasta.from( - 21759631161250253412819730649091996554146268954819131804288171576179442703183 - ), - Pasta.from( - 14185379935091709057677451650107357692478200566655934421145603846907748616347 - ), - Pasta.from( - 10139623969245853142942647939794352363971890305001144925744686344768432613436 - ), - Pasta.from( - 4421111367235812268043849200041120359372634026931186606123265274830057997512 - ), - Pasta.from( - 21389957028543563343983452239402129073644559761574758599879018560061923362420 - ), - Pasta.from( - 7331938067098234420518101146476976737427551752964139372872010490810144489016 - ), - Pasta.from( - 19376988884406137004496470406503629881518631186358340469845420192342467563805 - ), - Pasta.from( - 17872304858000314785294575941718223510390865153424166312722197492544922924913 - ), - Pasta.from( - 14163654873939530767328342783891667616564781104875725993076782936179487580496 - ), - Pasta.from( - 28483237868932771967301782384701310810170620108646314312148330158983522802675 - ), - Pasta.from( - 5470444915351718161064738143984117404543180896557800110345214197194265945935 - ), - Pasta.from( - 1151782396346300526721173166606959182539281926428010936118203586899270812937 - ), - Pasta.from( - 17220611115538190327418731694513246567647093315703560541579145141454642783381 - ), - Pasta.from( - 1827701865316296069049383790211497568669568043577110290390922485770125563378 - ), - Pasta.from( - 15070264127752077435260386430251860418932583550153983365643440702231466899575 - ), - Pasta.from( - 15194919748186792975629744016800115040585292259725675101847448679839390076465 - ), - Pasta.from( - 636805707197841281951212111981719137394078290625544799415819737834042366160 - ), - Pasta.from( - 16442733791103815253197097953879467639249399641678632863052732628234991617421 - ), - Pasta.from( - 11178966020612557360436864928037347531128071660214471590599439968915809407106 - ), - Pasta.from( - 16075878619164277785308904234316346117364814460051950789746369162516909748351 - ), - Pasta.from( - 22864444441196501171668947273043710483755885360984717068883384069940103680603 - ), - Pasta.from( - 15552030775865618995053022110254314047799118746559881590270437157643928361630 - ), - Pasta.from( - 27368840290886590618253975690371515626817655889504997637028935625996549696676 - ), - Pasta.from( - 20058629063058394394983677044793850223713849683627545433059369503226875567994 - ), - Pasta.from( - 8237262439249888483067779498627588509748486081402680923639876317004867629284 - ), - Pasta.from( - 8265376569801929985789997051724232870531692291281507317645663583990151550469 - ), - Pasta.from( - 17434670191789857124968691368803795534480896874481190574177140567912418509246 - ), - Pasta.from( - 14002330781338099238738543251674341674328098889382338607565673758476823790448 - ), - Pasta.from( - 504651498436262888890803364631325475539745395303635220048090865595104556895 - ), - Pasta.from( - 8134135731443781589467072276102904981615445672703916309840914945275033441326 - ), - Pasta.from( - 5099664868227594302959167229049429228561240289248233817130624727290223895548 - ), - Pasta.from( - 875402312783453401072708623488927113499771014348818375729969860221839479467 - ), - Pasta.from( - 15913047357666720166343627242081167154639349090679778717007605497476987226193 - ), - Pasta.from( - 9975247897759738303108049050883313400420507897199501068509102941286882005749 - ), - Pasta.from( - 28725850790956942734610625767184652492296198441938388743520751076423634834981 - ), - Pasta.from( - 1669657099202678127745750450082789089955683233518898573781895082707468957818 - ), - Pasta.from( - 9966618902045619147550494693147870784109119635598691260404399390058583694468 - ), - Pasta.from( - 20431326917844102521146349239364037864375655295823864748280225707892539862220 - ) - ]; -} diff --git a/eth_verifier/lib/pasta/Fields.sol b/eth_verifier/lib/pasta/Fields.sol deleted file mode 100644 index 36821ed0..00000000 --- a/eth_verifier/lib/pasta/Fields.sol +++ /dev/null @@ -1,52 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -library Pasta { - type Fp is uint256; - - uint256 internal constant MODULUS = 28948022309329048855892746252171976963363056481941560715954676764349967630337; - - function zero() internal pure returns (Fp) { - return Fp.wrap(0); - } - - function one() internal pure returns (Fp) { - return Fp.wrap(1); - } - - function from(uint256 n) internal pure returns (Fp) { - return Fp.wrap(n); - } - - function add(Fp self, Fp other) internal pure returns (Fp res) { - assembly ("memory-safe") { - res := addmod(self, other, MODULUS) // addmod has arbitrary precision - } - } - - function mul(Fp self, Fp other) internal pure returns (Fp res) { - assembly ("memory-safe") { - res := mulmod(self, other, MODULUS) // mulmod has arbitrary precision - } - } - - function pow(Fp self, uint256 exponent) internal view returns (Fp result) { - uint256 base = Fp.unwrap(self); - uint256 o; - assembly ("memory-safe") { - // define pointer - let p := mload(0x40) - // store data assembly-favouring ways - mstore(p, 0x20) // Length of Base - mstore(add(p, 0x20), 0x20) // Length of Exponent - mstore(add(p, 0x40), 0x20) // Length of Modulus - mstore(add(p, 0x60), base) // Base - mstore(add(p, 0x80), exponent) // Exponent - mstore(add(p, 0xa0), MODULUS) // Modulus - if iszero(staticcall(sub(gas(), 2000), 0x05, p, 0xc0, p, 0x20)) { revert(0, 0) } - // data - o := mload(p) - } - result = Fp.wrap(o); - } -} diff --git a/eth_verifier/lib/poseidon/Bn254.sol b/eth_verifier/lib/poseidon/Bn254.sol deleted file mode 100644 index 14d8ef3c..00000000 --- a/eth_verifier/lib/poseidon/Bn254.sol +++ /dev/null @@ -1,293 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../bn254/Fields.sol"; -import {console} from "forge-std/console.sol"; - -contract PoseidonBn254 { - using {Scalar.add, Scalar.mul, Scalar.pow} for uint256; - - uint256 constant RATE = 2; - uint256 constant ROUNDS = 55; - - enum SpongeMode { - Absorbing, - Squeezing - } - - struct Sponge { - uint256[3] state; - uint256 offset; - SpongeMode mode; - } - - function new_sponge() public pure returns (Sponge memory sponge) { - sponge.offset = 0; - sponge.mode = SpongeMode.Absorbing; - } - - function absorb( - Sponge memory self, - uint256 fe - ) public view returns (Sponge memory updated_self) { - updated_self = self; - if (updated_self.mode == SpongeMode.Squeezing) { - updated_self.mode = SpongeMode.Absorbing; - updated_self.offset = 0; - } else if (self.offset == RATE) { - updated_self.state = permutation(updated_self.state); - updated_self.offset = 0; - } - - updated_self.state[updated_self.offset] = updated_self - .state[updated_self.offset] - .add(fe); - updated_self.offset += 1; - } - - function squeeze( - Sponge memory self - ) public view returns (Sponge memory updated_self, uint256 result) { - updated_self = self; - if ( - updated_self.mode == SpongeMode.Absorbing || - updated_self.offset == RATE - ) { - updated_self.mode = SpongeMode.Squeezing; - self.state = permutation(self.state); - updated_self.offset = 0; - } - - result = updated_self.state[updated_self.offset]; - updated_self.offset += 1; - } - - function sbox(uint256 f) private view returns (uint256) { - return f.pow(7); - } - - function apply_mds( - uint256[3] memory state - ) private pure returns (uint256[3] memory n) { - n[0] = state[0].mul(mds0).add(state[1].mul(mds1)).add( - state[2].mul(mds2) - ); - n[1] = state[0].mul(mds3).add(state[1].mul(mds4)).add( - state[2].mul(mds5) - ); - n[2] = state[0].mul(mds6).add(state[1].mul(mds7)).add( - state[2].mul(mds8) - ); - } - - function apply_round( - uint256 round, - uint256[3] memory state - ) private view returns (uint256[3] memory) { - state[0] = sbox(state[0]); - state[1] = sbox(state[1]); - state[2] = sbox(state[2]); - - state = apply_mds(state); - - state[0] = state[0].add(round_constants[round * 3]); - state[1] = state[1].add(round_constants[round * 3 + 1]); - state[2] = state[2].add(round_constants[round * 3 + 2]); - - return state; - } - - function permutation( - uint256[3] memory state - ) internal view returns (uint256[3] memory) { - for (uint256 round = 0; round < ROUNDS; round++) { - state = apply_round(round, state); - } - return state; - } - - uint256 internal constant mds0 = - 15913613074278028058360498857043999222867772811338037425231170199156889337604; - uint256 internal constant mds1 = - 65180538277771794992983614695816638391617290189527384182155063505825555179; - uint256 internal constant mds2 = - 5394145287608961087977235806233358974273334844303649346024304966582176196487; - uint256 internal constant mds3 = - 15414815283538893716009156559702084916211023875136356807248219032453798152465; - uint256 internal constant mds4 = - 3463018243616155786290732419705147785020336294529003837260493734746385539469; - uint256 internal constant mds5 = - 12716468877825667500219920861172138145894921271005565146996037137547785771411; - uint256 internal constant mds6 = - 1792045203208933407244693490495238027092197802128268175009298962707699842710; - uint256 internal constant mds7 = - 76356542649790718492035692281837451271781062546545119705441901238018861818; - uint256 internal constant mds8 = - 9520069514281255561624128661339565451189764370791651000392579220353790670830; - - uint256[165] internal round_constants = [ - 12455131979215983316735047846658291859029812584241282581257197013302738138666, - 20029656970890966196099810168066995443524989185718089119520857141365451679654, - 8929913078653797661905726823410775654210481762974885244818731639242977419622, - 8662787891019924101534530927954444401015394189462080864609938870691307539536, - 20294115837600366998212029140165760858924828875933683067126492672917588261877, - 2682014173266320611146882768057075830238591616831154961603507352639750394592, - 18907515456503482670621260399010811269866082079896285203284611749350771281411, - 1424609887444859910324043210736091906100438801135358613993092433663809225411, - 1531059541788158835714117823424146308635531997487162670061618032695665453831, - 19444238474448321066398700689084787616548516614414549514749853660756611792379, - 2236237945310446639621733106225706828551103453944652411264620402517164583264, - 12605646628049520919535266096828454658561884709869426105979276828733666269521, - 14653124040822125428573681427514890989900893513402451718822527259901516216058, - 1535968898232047429062068090527484451997796559364245278047376516596586180554, - 3307538294663905716144414865227035949873283327379581103741297483063276195183, - 21111467054595055527346262240389751012262991994706430976179289552457483727796, - 17649294376560630922417546944777537620537408190408066211453084495108565929366, - 7683463515567855955851784553909126014159314191075450219244796328948411069744, - 21262229851583325466767017312569047417622760705999088078958228786464449033067, - 11691182518884460508022694337582074624192039580202157360389815110719437213363, - 8690728446593494554377477996892461126663797704587025899930929227865493269824, - 21622260498668079571860417097494779160364898191075577203239012897437375456411, - 21067767847052854366896470071519184914663018103241392453030719014890445499665, - 21348828409856354758094844442899573788047317201055667836817119877806560465334, - 2704440995725305992776846806711930876273040749514871232837487081811513368296, - 1142050494870706434296077676238780951797136607536187326800297147932619878418, - 3652944740784795248484484454916800802095288396765069024258114251561069674735, - 1747641587474624832364464288237802774971629275511085691789065855359044028198, - 14935834110027005954806028171080511939971704126366459140378790942754129686907, - 3215720726490672077485888789426411334496962379737529853320875594879037332594, - 2892159931078719741396670290810431382361178666606213506995456264415113913847, - 1938538891009879014088646889644828497511974353410971027478866497380422633484, - 13916214761542255527505866254811968868327635410573168146297241319868121689821, - 266821775768872344171470219200118028338254464492956024813242747554382748942, - 11055386921184594780372263378420826851562920740321950336882051897732501262543, - 2504617730099125455929793538006173214604536705392412461363354681040283013164, - 8077046888362371937918818344109572894796988781119069525502907016581642522710, - 7281012798633884984170366068851653834509460567285503188952416990462599509288, - 11914125581503780978633571238267986373793149282818856451291452464271781243920, - 5911373857383996424444312456230128887937254975139357544835683280828995545397, - 20728259298426389276714612941176977888429183727869747381529137474366072279101, - 8331123017723440628782766975941869108307759426898189357261715346312601104654, - 19978529403683797449165109778464832800224916941903951374610236813523844409526, - 17316158269457914256007584527534747738658973027567786054549020564540952112346, - 7848194400773744361171082305364633343688318123652518347170031226439829254882, - 17698087730709566968258013675219881840614043344609152682517330801348583470562, - 2484533502052370851335172153342694835144795809438965797062785488685902188726, - 13372068881052003992228272108672679285817785895634149926809187580418595890381, - 4450005426773734601782625050142815413017019480402129494014819930729323864775, - 15031465389782276133463098319911853017052619244999605688724393058338301291115, - 6028902109643218557806340932181364476799161079643636815411563224652423572198, - 2957732585137901025626087202113249345076588554941059487693780861098604986119, - 12565476532112137808460978474958060441970941349010371267577877299656634907765, - 10508327646678453674728048391759640526197954899878596680197847666563367632543, - 4493451765845812430310778141104432201437429164475176054680492630627878568332, - 15095408309586969968044201398966210357547906905122453139947200130015688526573, - 10819130048432875198797495465270179395954461390529553930221225323229387202234, - 15905267794015672354278595057670574122197927816429433548802165993220415414073, - 19290205907831398371768999387869637435049824367233327965730120884036212709842, - 15451920390057917627290027104082580122165965120355347782937661856388593985245, - 6425598873527092853966039409614693840647173123073098849086711894647944582332, - 17307716513182567320564075539526480893558355908652993731441220999922946005081, - 19372285427179952013203092658533484049593114439149219035606060254764845851391, - 14724939606645168531546334343600232253284320276481307778787768813885931648950, - 4684996260500305121238590806572541849891754312215139285622888510153705963000, - 19906278135333202031075665370853003279083131420237405129919260859757146418025, - 3999693912508849442569285360026642503093489903926874133118153062461080435481, - 20129375303694053217240183105192753906500831553949001131297105718176015558964, - 17281496576809338419011697046933296343189100335422897604615575811331627359485, - 15637748291684046440453413703705692658155214802161964102299272768648229342362, - 2094444825794502002152585986969571562449905861771519270554787618649438333195, - 1152889601932463959824817875107315518104722504910095364729880245759523916044, - 12114165850379066500859611262167642397834899331804245444372878412987365128590, - 20821227542001445006023346122554483849065713580779858784021328359824080462519, - 3440756720132945332811173288138999408441021502908547499697282473681525253805, - 20938628428302899368158656913047855118000040623605421135349389583331392728782, - 8850081254230234130482383430433176873344633494243110112848647064077741649744, - 1819639941546179668398979507053724449231350395599747300736218202072168364980, - 21219092773772827667886204262476112905428217689703647484316763603169544906986, - 13148487544990345541730567143235754764404038697816450525897467218977412799129, - 13598807739063229961519663325640861142062394342851403440808670891533339780790, - 18784327298376147342042823437947970462892869194728299228507919810276864843414, - 2764493745803317574883853704043825342340808631956690807684613803167040529511, - 21531775639025076953020023111055490895978901214310417059307899853240995381819, - 19964398501876039777029130298682737202257582985971095863290288610857831427638, - 15003442983970848114681480873546789629160262059108570865485071572172687676835, - 20614241966717622390914334053622572167995367802051836931454426877074875942253, - 19733168743390283576337440585736332292298547880804855952734808967278966077887, - 20530621481603446397085836296967350209890164029268319619481535419199429275412, - 12361620530467399202722610329149901344545851901477091854159960517963801528971, - 9497854724940806346676139162466690071592872530638144182764466319052293463165, - 7549205476288061047040852944548942878112823732145584918107208536541712726277, - 9010672859023729500640324904403960830965495099902505763591033382017769059028, - 809006882768062359480853341102632220777932068978149301935174282279746446958, - 7106371976957177712230305966566701811850820970657101896348127436646177656365, - 18845123379649840503129460949570724717923057602542920800815047452665097128575, - 14712923944932171466124439335703740452883296028663247289510978550197451911919, - 19555759172327736128240171000715903945570888389700763573790859521156095228287, - 17179695917466049633838471880559548490881310699092342418090873652775810295378, - 18944876856792381816055068913314141690530834943354883079085532905267119397008, - 3257630700960849517603336097571474897923100547762764495987576852490355943460, - 3963500912949736174926372928446487843084987377580944585294277449817215093365, - 21304716730402869084944080869903443431235336418077153507261240151959530377653, - 18998265936988640248585036755202701418246223100957416731998639191794797638003, - 16839625825914009701942141907800050396084195897386326382915730670235616618695, - 16907937154215020261110468963982390213438461071031811101554056252102505124726, - 1294898660752289889975651445755491766586322714088107994205473403531724749589, - 9172546393414544394143001120250095355087186863911844697260687867341704896778, - 18891778779724165209072874482651171817270086247356116562427206569585293483055, - 13093554332096549605604948416229955030385793767090042194569924056338021838108, - 6540069282618873496342140872069384185118574828832026154295825270730722501809, - 11698805795265597745890922320669982345748592147825010914959366790903803563027, - 11128587690756409041400570351324823090287237584985813997261416805030246953137, - 574796972312053991589591668868339165343116554180562026519971681663627339366, - 8263653526367544279471418475309371793291954818747935714794248360166503487859, - 495546618036723566920914648951352373868059898268055487677897567226892784967, - 2528292188392170914010448139211586215817069915670005292953294092269979070980, - 14954597262610438728753406794870316034770442280143947719391702684620418262496, - 2873290581141877304970576969082349138229332018341156071844198415188999408160, - 7877226570858832633875209751493918650976179001613717862579011309181456152753, - 5290811263292128650829809831924435265520706616680110737471312421357061576251, - 5711353914598993184207904758686192904620948114158132435163135551043392236587, - 9671966951859991559346179676315084295317241890404128352532995814366687016784, - 20648234869018782942484412385329986060607455807332118750782252709151244400533, - 1521221467156754943933671253020851096017281629892920730907443291972734010497, - 6375300799036358132607612364454746219201386369274233783761503007631282551380, - 18921242117750773300194037006101341214923275379274370683247849512779159129078, - 7813033521740037204631731835076108697814182206021466630450781049551634237483, - 7795208366125068859216483161820518701837348485078219412133643408967011329822, - 21634048616875364065210304993971256601326650069082669576726378272437410251852, - 1440291557054822025042926468154900761163167753541613162663250995564641638121, - 8030862880899531201072645375229460968330384014296763956553993045932171788794, - 18227143364048378671809657511264604955612895339528675264153781365139338073044, - 21758886539711282145698252967647695643837152466011063420158481037553923112829, - 2085588517087605436136379278738013214233743532079287631079316773925068862732, - 9513664655545306376987968929852776467090105742275395185801917554996684570014, - 3550496136894926428779047632731319031180547135184616875506154252232382772731, - 17611757480287922505786279147168077243913583114117625089682651438292645979006, - 9510531870810299962531161626148485102758508164021526746981465493469502973181, - 13147395489659079072941169740078305253501735721348147621757420460777184976765, - 20981004218820236011689230170078809973840534961691702543937445515733151438851, - 7510474971056266438887013036637998526887329893492694485779774584612719651459, - 1410506880075029891986606588556057112819357276074907152324471561666187504226, - 8531153700191448965915372279944017070557402838400132057846710117192547288312, - 9754021311900999917627020811752417367253388211990562024285328010011773088524, - 2596434275792412604724294796434266571220373976229139969740378299737237088707, - 12362606196840499695717697542757730593369897628148107607660372162713524022091, - 7436712609498458515091822640340398689078308761236724993140849063351217155692, - 13658397008139421803306375444518324400013880452735832208526361116879733324843, - 8172299227253932586074375157726142633344272790321861656172484971306271304428, - 8605586894544301092657394167906502995894014247978769840701086209902531650480, - 8900145888985471928279988821934068156350024482295663273746853580585203659117, - 10470367937616887936936637392485540045417066546520320064401889047735866701687, - 11506602210275354295255815678397482725225279643868372198705067756030230710066, - 17848856881287888035559207919717746181941756011012420474955535369227552058196, - 19621145748343950799654655801831590696734631175445290325293238308726746856381, - 12864577757979281303137787677967581089249504938390812240088160999517854207023, - 18146514933233558325125054842576736679593504913006946427595273862389774486334, - 17884323247493851213892188228998881081766487773962855826892871743190914823275, - 15402752720164650756401756498467037967910822997380610100998339390049962612988, - 7603833157231114748089157493970988832295123465399487746989788482408777456140, - 2397354421161661799662850246720819176952681967344524176801474312220041680576, - 4644616545339594419852483555455431260822330146405566037177120172304445909733 - ]; -} diff --git a/eth_verifier/lib/poseidon/Pasta.sol b/eth_verifier/lib/poseidon/Pasta.sol deleted file mode 100644 index a75aa3c7..00000000 --- a/eth_verifier/lib/poseidon/Pasta.sol +++ /dev/null @@ -1,643 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../pasta/Fields.sol"; -import {console} from "forge-std/console.sol"; - -contract Poseidon { - using {Pasta.add, Pasta.mul, Pasta.pow} for Pasta.Fp; - - uint256 constant RATE = 2; - uint256 constant ROUNDS = 55; - - enum SpongeMode { - Absorbing, - Squeezing - } - - struct Sponge { - Pasta.Fp[3] state; - uint256 offset; - SpongeMode mode; - } - - function new_sponge() public pure returns (Sponge memory sponge) { - sponge.offset = 0; - sponge.mode = SpongeMode.Absorbing; - } - - function absorb( - Sponge memory self, - Pasta.Fp fe - ) public view returns (Sponge memory updated_self) { - updated_self = self; - if (updated_self.mode == SpongeMode.Squeezing) { - updated_self.mode = SpongeMode.Absorbing; - updated_self.offset = 0; - } else if (self.offset == RATE) { - updated_self.state = permutation(updated_self.state); - updated_self.offset = 0; - } - - updated_self.state[updated_self.offset] = updated_self - .state[updated_self.offset] - .add(fe); - updated_self.offset += 1; - } - - function squeeze( - Sponge memory self - ) public view returns (Sponge memory updated_self, Pasta.Fp result) { - updated_self = self; - if ( - updated_self.mode == SpongeMode.Absorbing || - updated_self.offset == RATE - ) { - updated_self.mode = SpongeMode.Squeezing; - self.state = permutation(self.state); - updated_self.offset = 0; - } - - result = updated_self.state[updated_self.offset]; - updated_self.offset += 1; - } - - function sbox(Pasta.Fp f) private view returns (Pasta.Fp) { - return f.pow(7); - } - - function apply_mds( - Pasta.Fp[3] memory state - ) private pure returns (Pasta.Fp[3] memory n) { - n[0] = state[0].mul(mds0).add(state[1].mul(mds1)).add( - state[2].mul(mds2) - ); - n[1] = state[0].mul(mds3).add(state[1].mul(mds4)).add( - state[2].mul(mds5) - ); - n[2] = state[0].mul(mds6).add(state[1].mul(mds7)).add( - state[2].mul(mds8) - ); - } - - function apply_round( - uint256 round, - Pasta.Fp[3] memory state - ) private view returns (Pasta.Fp[3] memory) { - state[0] = sbox(state[0]); - state[1] = sbox(state[1]); - state[2] = sbox(state[2]); - - state = apply_mds(state); - - state[0] = state[0].add(round_constants[round * 3]); - state[1] = state[1].add(round_constants[round * 3 + 1]); - state[2] = state[2].add(round_constants[round * 3 + 2]); - - return state; - } - - function permutation( - Pasta.Fp[3] memory state - ) internal view returns (Pasta.Fp[3] memory) { - for (uint256 round = 0; round < ROUNDS; round++) { - state = apply_round(round, state); - } - return state; - } - - Pasta.Fp internal constant mds0 = - Pasta.Fp.wrap( - 12035446894107573964500871153637039653510326950134440362813193268448863222019 - ); - Pasta.Fp internal constant mds1 = - Pasta.Fp.wrap( - 25461374787957152039031444204194007219326765802730624564074257060397341542093 - ); - Pasta.Fp internal constant mds2 = - Pasta.Fp.wrap( - 27667907157110496066452777015908813333407980290333709698851344970789663080149 - ); - Pasta.Fp internal constant mds3 = - Pasta.Fp.wrap( - 4491931056866994439025447213644536587424785196363427220456343191847333476930 - ); - Pasta.Fp internal constant mds4 = - Pasta.Fp.wrap( - 14743631939509747387607291926699970421064627808101543132147270746750887019919 - ); - Pasta.Fp internal constant mds5 = - Pasta.Fp.wrap( - 9448400033389617131295304336481030167723486090288313334230651810071857784477 - ); - Pasta.Fp internal constant mds6 = - Pasta.Fp.wrap( - 10525578725509990281643336361904863911009900817790387635342941550657754064843 - ); - Pasta.Fp internal constant mds7 = - Pasta.Fp.wrap( - 27437632000253211280915908546961303399777448677029255413769125486614773776695 - ); - Pasta.Fp internal constant mds8 = - Pasta.Fp.wrap( - 27566319851776897085443681456689352477426926500749993803132851225169606086988 - ); - - Pasta.Fp[165] internal round_constants = [ - Pasta.Fp.wrap( - 21155079691556475130150866428468322463125560312786319980770950159250751855431 - ), - Pasta.Fp.wrap( - 16883442198399350202652499677723930673110172289234921799701652810789093522349 - ), - Pasta.Fp.wrap( - 17030687036425314703519085065002231920937594822150793091243263847382891822670 - ), - Pasta.Fp.wrap( - 25216718237129482752721276445368692059997901880654047883630276346421457427360 - ), - Pasta.Fp.wrap( - 9054264347380455706540423067244764093107767235485930776517975315876127782582 - ), - Pasta.Fp.wrap( - 26439087121446593160953570192891907825526260324480347638727375735543609856888 - ), - Pasta.Fp.wrap( - 15251000790817261169639394496851831733819930596125214313084182526610855787494 - ), - Pasta.Fp.wrap( - 10861916012597714684433535077722887124099023163589869801449218212493070551767 - ), - Pasta.Fp.wrap( - 18597653523270601187312528478986388028263730767495975370566527202946430104139 - ), - Pasta.Fp.wrap( - 15831416454198644276563319006805490049460322229057756462580029181847589006611 - ), - Pasta.Fp.wrap( - 15171856919255965617705854914448645702014039524159471542852132430360867202292 - ), - Pasta.Fp.wrap( - 15488495958879593647482715143904752785889816789652405888927117106448507625751 - ), - Pasta.Fp.wrap( - 19039802679983063488134304670998725949842655199289961967801223969839823940152 - ), - Pasta.Fp.wrap( - 4720101937153217036737330058775388037616286510783561045464678919473230044408 - ), - Pasta.Fp.wrap( - 10226318327254973427513859412126640040910264416718766418164893837597674300190 - ), - Pasta.Fp.wrap( - 20878756131129218406920515859235137275859844638301967889441262030146031838819 - ), - Pasta.Fp.wrap( - 7178475685651744631172532830973371642652029385893667810726019303466125436953 - ), - Pasta.Fp.wrap( - 1996970955918516145107673266490486752153434673064635795711751450164177339618 - ), - Pasta.Fp.wrap( - 15205545916434157464929420145756897321482314798910153575340430817222504672630 - ), - Pasta.Fp.wrap( - 25660296961552699573824264215804279051322332899472350724416657386062327210698 - ), - Pasta.Fp.wrap( - 13842611741937412200312851417353455040950878279339067816479233688850376089318 - ), - Pasta.Fp.wrap( - 1383799642177300432144836486981606294838630135265094078921115713566691160459 - ), - Pasta.Fp.wrap( - 1135532281155277588005319334542025976079676424839948500020664227027300010929 - ), - Pasta.Fp.wrap( - 4384117336930380014868572224801371377488688194169758696438185377724744869360 - ), - Pasta.Fp.wrap( - 21725577575710270071808882335900370909424604447083353471892004026180492193649 - ), - Pasta.Fp.wrap( - 676128913284806802699862508051022306366147359505124346651466289788974059668 - ), - Pasta.Fp.wrap( - 25186611339598418732666781049829183886812651492845008333418424746493100589207 - ), - Pasta.Fp.wrap( - 10402240124664763733060094237696964473609580414190944671778761753887884341073 - ), - Pasta.Fp.wrap( - 11918307118590866200687906627767559273324023585642003803337447146531313172441 - ), - Pasta.Fp.wrap( - 16895677254395661024186292503536662354181715337630376909778003268311296637301 - ), - Pasta.Fp.wrap( - 23818602699032741669874498456696325705498383130221297580399035778119213224810 - ), - Pasta.Fp.wrap( - 4285193711150023248690088154344086684336247475445482883105661485741762600154 - ), - Pasta.Fp.wrap( - 19133204443389422404056150665863951250222934590192266371578950735825153238612 - ), - Pasta.Fp.wrap( - 5515589673266504033533906836494002702866463791762187140099560583198974233395 - ), - Pasta.Fp.wrap( - 11830435563729472715615302060564876527985621376031612798386367965451821182352 - ), - Pasta.Fp.wrap( - 7510711479224915247011074129666445216001563200717943545636462819681638560128 - ), - Pasta.Fp.wrap( - 24694843201907722940091503626731830056550128225297370217610328578733387733444 - ), - Pasta.Fp.wrap( - 27361655066973784653563425664091383058914302579694897188019422193564924110528 - ), - Pasta.Fp.wrap( - 21606788186194534241166833954371013788633495786419718955480491478044413102713 - ), - Pasta.Fp.wrap( - 19934060063390905409309407607814787335159021816537006003398035237707924006757 - ), - Pasta.Fp.wrap( - 8495813630060004961768092461554180468161254914257386012937942498774724649553 - ), - Pasta.Fp.wrap( - 27524960680529762202005330464726908693944660961000958842417927307941561848461 - ), - Pasta.Fp.wrap( - 15178481650950399259757805400615635703086255035073919114667254549690862896985 - ), - Pasta.Fp.wrap( - 16164780354695672259791105197274509251141405713012804937107314962551600380870 - ), - Pasta.Fp.wrap( - 10529167793600778056702353412758954281652843049850979705476598375597148191979 - ), - Pasta.Fp.wrap( - 721141070179074082553302896292167103755384741083338957818644728290501449040 - ), - Pasta.Fp.wrap( - 22044408985956234023934090378372374883099115753118261312473550998188148912041 - ), - Pasta.Fp.wrap( - 27068254103241989852888872162525066148367014691482601147536314217249046186315 - ), - Pasta.Fp.wrap( - 3880429241956357176819112098792744584376727450211873998699580893624868748961 - ), - Pasta.Fp.wrap( - 17387097125522937623262508065966749501583017524609697127088211568136333655623 - ), - Pasta.Fp.wrap( - 6256814421247770895467770393029354017922744712896100913895513234184920631289 - ), - Pasta.Fp.wrap( - 2942627347777337187690939671601251987500285937340386328746818861972711408579 - ), - Pasta.Fp.wrap( - 24031654937764287280548628128490074801809101323243546313826173430897408945397 - ), - Pasta.Fp.wrap( - 14401457902976567713827506689641442844921449636054278900045849050301331732143 - ), - Pasta.Fp.wrap( - 20170632877385406450742199836933900257692624353889848352407590794211839130727 - ), - Pasta.Fp.wrap( - 24056496193857444725324410428861722338174099794084586764867109123681727290181 - ), - Pasta.Fp.wrap( - 11257913009612703357266904349759250619633397075667824800196659858304604714965 - ), - Pasta.Fp.wrap( - 22228158921984425749199071461510152694025757871561406897041788037116931009246 - ), - Pasta.Fp.wrap( - 9152163378317846541430311327336774331416267016980485920222768197583559318682 - ), - Pasta.Fp.wrap( - 13906695403538884432896105059360907560653506400343268230130536740148070289175 - ), - Pasta.Fp.wrap( - 7220714562509721437034241786731185291972496952091254931195414855962344025067 - ), - Pasta.Fp.wrap( - 27608867305903811397208862801981345878179337369367554478205559689592889691927 - ), - Pasta.Fp.wrap( - 13288465747219756218882697408422850918209170830515545272152965967042670763153 - ), - Pasta.Fp.wrap( - 8251343892709140154567051772980662609566359215743613773155065627504813327653 - ), - Pasta.Fp.wrap( - 22035238365102171608166944627493632660244312563934708756134297161332908879090 - ), - Pasta.Fp.wrap( - 13560937766273321037807329177749403409731524715067067740487246745322577571823 - ), - Pasta.Fp.wrap( - 21652518608959234550262559135285358020552897349934571164032339186996805408040 - ), - Pasta.Fp.wrap( - 22479086963324173427634460342145551255011746993910136574926173581069603086891 - ), - Pasta.Fp.wrap( - 13676501958531751140966255121288182631772843001727158043704693838707387130095 - ), - Pasta.Fp.wrap( - 5680310394102577950568930199056707827608275306479994663197187031893244826674 - ), - Pasta.Fp.wrap( - 25125360450906166639190392763071557410047335755341060350879819485506243289998 - ), - Pasta.Fp.wrap( - 22659254028501616785029594492374243581602744364859762239504348429834224676676 - ), - Pasta.Fp.wrap( - 23101411405087512171421838856759448177512679869882987631073569441496722536782 - ), - Pasta.Fp.wrap( - 24149774013240355952057123660656464942409328637280437515964899830988178868108 - ), - Pasta.Fp.wrap( - 5782097512368226173095183217893826020351125522160843964147125728530147423065 - ), - Pasta.Fp.wrap( - 13540762114500083869920564649399977644344247485313990448129838910231204868111 - ), - Pasta.Fp.wrap( - 20421637734328811337527547703833013277831804985438407401987624070721139913982 - ), - Pasta.Fp.wrap( - 7742664118615900772129122541139124149525273579639574972380600206383923500701 - ), - Pasta.Fp.wrap( - 1109643801053963021778418773196543643970146666329661268825691230294798976318 - ), - Pasta.Fp.wrap( - 16580663920817053843121063692728699890952505074386761779275436996241901223840 - ), - Pasta.Fp.wrap( - 14638514680222429058240285918830106208025229459346033470787111294847121792366 - ), - Pasta.Fp.wrap( - 17080385857812672649489217965285727739557573467014392822992021264701563205891 - ), - Pasta.Fp.wrap( - 26176268111736737558502775993925696791974738793095023824029827577569530708665 - ), - Pasta.Fp.wrap( - 4382756253392449071896813428140986330161215829425086284611219278674857536001 - ), - Pasta.Fp.wrap( - 13934033814940585315406666445960471293638427404971553891617533231178815348902 - ), - Pasta.Fp.wrap( - 27054912732979753314774418228399230433963143177662848084045249524271046173121 - ), - Pasta.Fp.wrap( - 28916070403698593376490976676534962592542013020010643734621202484860041243391 - ), - Pasta.Fp.wrap( - 24820015636966360150164458094894587765384135259446295278101998130934963922381 - ), - Pasta.Fp.wrap( - 7969535238488580655870884015145760954416088335296905520306227531221721881868 - ), - Pasta.Fp.wrap( - 7690547696740080985104189563436871930607055124031711216224219523236060212249 - ), - Pasta.Fp.wrap( - 9712576468091272384496248353414290908377825697488757134833205246106605867289 - ), - Pasta.Fp.wrap( - 12148698031438398980683630141370402088785182722473169207262735228500190477924 - ), - Pasta.Fp.wrap( - 14359657643133476969781351728574842164124292705609900285041476162075031948227 - ), - Pasta.Fp.wrap( - 23563839965372067275137992801035780013422228997724286060975035719045352435470 - ), - Pasta.Fp.wrap( - 4184634822776323233231956802962638484057536837393405750680645555481330909086 - ), - Pasta.Fp.wrap( - 16249511905185772125762038789038193114431085603985079639889795722501216492487 - ), - Pasta.Fp.wrap( - 11001863048692031559800673473526311616702863826063550559568315794438941516621 - ), - Pasta.Fp.wrap( - 4702354107983530219070178410740869035350641284373933887080161024348425080464 - ), - Pasta.Fp.wrap( - 23751680507533064238793742311430343910720206725883441625894258483004979501613 - ), - Pasta.Fp.wrap( - 28670526516158451470169873496541739545860177757793329093045522432279094518766 - ), - Pasta.Fp.wrap( - 3568312993091537758218792253361873752799472566055209125947589819564395417072 - ), - Pasta.Fp.wrap( - 1819755756343439646550062754332039103654718693246396323207323333948654200950 - ), - Pasta.Fp.wrap( - 5372129954699791301953948907349887257752247843844511069896766784624930478273 - ), - Pasta.Fp.wrap( - 17512156688034945920605615850550150476471921176481039715733979181538491476080 - ), - Pasta.Fp.wrap( - 25777105342317622165159064911913148785971147228777677435200128966844208883059 - ), - Pasta.Fp.wrap( - 25350392006158741749134238306326265756085455157012701586003300872637887157982 - ), - Pasta.Fp.wrap( - 20096724945283767296886159120145376967480397366990493578897615204296873954844 - ), - Pasta.Fp.wrap( - 8063283381910110762785892100479219642751540456251198202214433355775540036851 - ), - Pasta.Fp.wrap( - 4393613870462297385565277757207010824900723217720226130342463666351557475823 - ), - Pasta.Fp.wrap( - 9874972555132910032057499689351411450892722671352476280351715757363137891038 - ), - Pasta.Fp.wrap( - 23590926474329902351439438151596866311245682682435235170001347511997242904868 - ), - Pasta.Fp.wrap( - 17723373371137275859467518615551278584842947963894791032296774955869958211070 - ), - Pasta.Fp.wrap( - 2350345015303336966039836492267992193191479606566494799781846958620636621159 - ), - Pasta.Fp.wrap( - 27755207882790211140683010581856487965587066971982625511152297537534623405016 - ), - Pasta.Fp.wrap( - 6584607987789185408123601849106260907671314994378225066806060862710814193906 - ), - Pasta.Fp.wrap( - 609759108847171587253578490536519506369136135254150754300671591987320319770 - ), - Pasta.Fp.wrap( - 28435187585965602110074342250910608316032945187476441868666714022529803033083 - ), - Pasta.Fp.wrap( - 16016664911651770663938916450245705908287192964254704641717751103464322455303 - ), - Pasta.Fp.wrap( - 17551273293154696089066968171579395800922204266630874071186322718903959339163 - ), - Pasta.Fp.wrap( - 20414195497994754529479032467015716938594722029047207834858832838081413050198 - ), - Pasta.Fp.wrap( - 19773307918850685463180290966774465805537520595602496529624568184993487593855 - ), - Pasta.Fp.wrap( - 24598603838812162820757838364185126333280131847747737533989799467867231166980 - ), - Pasta.Fp.wrap( - 11040972566103463398651864390163813377135738019556270484707889323659789290225 - ), - Pasta.Fp.wrap( - 5189242080957784038860188184443287562488963023922086723850863987437818393811 - ), - Pasta.Fp.wrap( - 1435203288979376557721239239445613396009633263160237764653161500252258220144 - ), - Pasta.Fp.wrap( - 13066591163578079667911016543985168493088721636164837520689376346534152547210 - ), - Pasta.Fp.wrap( - 17345901407013599418148210465150865782628422047458024807490502489711252831342 - ), - Pasta.Fp.wrap( - 22139633362249671900128029132387275539363684188353969065288495002671733200348 - ), - Pasta.Fp.wrap( - 1061056418502836172283188490483332922126033656372467737207927075184389487061 - ), - Pasta.Fp.wrap( - 10241738906190857416046229928455551829189196941239601756375665129874835232299 - ), - Pasta.Fp.wrap( - 27808033332417845112292408673209999320983657696373938259351951416571545364415 - ), - Pasta.Fp.wrap( - 18820154989873674261497645724903918046694142479240549687085662625471577737140 - ), - Pasta.Fp.wrap( - 7983688435214640842673294735439196010654951226956101271763849527529940619307 - ), - Pasta.Fp.wrap( - 17067928657801807648925755556866676899145460770352731818062909643149568271566 - ), - Pasta.Fp.wrap( - 24472070825156236829515738091791182856425635433388202153358580534810244942762 - ), - Pasta.Fp.wrap( - 25752201169361795911258625731016717414310986450004737514595241038036936283227 - ), - Pasta.Fp.wrap( - 26041505376284666160132119888949817249574689146924196064963008712979256107535 - ), - Pasta.Fp.wrap( - 23977050489096115210391718599021827780049209314283111721864956071820102846008 - ), - Pasta.Fp.wrap( - 26678257097278788410676026718736087312816016749016738933942134600725962413805 - ), - Pasta.Fp.wrap( - 10480026985951498884090911619636977502506079971893083605102044931823547311729 - ), - Pasta.Fp.wrap( - 21126631300593007055117122830961273871167754554670317425822083333557535463396 - ), - Pasta.Fp.wrap( - 1564862894215434177641156287699106659379648851457681469848362532131406827573 - ), - Pasta.Fp.wrap( - 13247162472821152334486419054854847522301612781818744556576865965657773174584 - ), - Pasta.Fp.wrap( - 8673615954922496961704442777870253767001276027366984739283715623634850885984 - ), - Pasta.Fp.wrap( - 2794525076937490807476666942602262298677291735723129868457629508555429470085 - ), - Pasta.Fp.wrap( - 4656175953888995612264371467596648522808911819700660048695373348629527757049 - ), - Pasta.Fp.wrap( - 23221574237857660318443567292601561932489621919104226163978909845174616477329 - ), - Pasta.Fp.wrap( - 1878392460078272317716114458784636517603142716091316893054365153068227117145 - ), - Pasta.Fp.wrap( - 2370412714505757731457251173604396662292063533194555369091306667486647634097 - ), - Pasta.Fp.wrap( - 17409784861870189930766639925394191888667317762328427589153989811980152373276 - ), - Pasta.Fp.wrap( - 25869136641898166514111941708608048269584233242773814014385564101168774293194 - ), - Pasta.Fp.wrap( - 11361209360311194794795494027949518465383235799633128250259863567683341091323 - ), - Pasta.Fp.wrap( - 14913258820718821235077379851098720071902170702113538811112331615559409988569 - ), - Pasta.Fp.wrap( - 12957012022018304419868287033513141736995211906682903915897515954290678373899 - ), - Pasta.Fp.wrap( - 17128889547450684566010972445328859295804027707361763477802050112063630550300 - ), - Pasta.Fp.wrap( - 23329219085372232771288306767242735245018143857623151155581182779769305489903 - ), - Pasta.Fp.wrap( - 1607741027962933685476527275858938699728586794398382348454736018784568853937 - ), - Pasta.Fp.wrap( - 2611953825405141009309433982109911976923326848135736099261873796908057448476 - ), - Pasta.Fp.wrap( - 7372230383134982628913227482618052530364724821976589156840317933676130378411 - ), - Pasta.Fp.wrap( - 20203606758501212620842735123770014952499754751430660463060696990317556818571 - ), - Pasta.Fp.wrap( - 4678361398979174017885631008335559529633853759463947250620930343087749944307 - ), - Pasta.Fp.wrap( - 27176462634198471376002287271754121925750749676999036165457559387195124025594 - ), - Pasta.Fp.wrap( - 6361981813552614697928697527332318530502852015189048838072565811230204474643 - ), - Pasta.Fp.wrap( - 13815234633287489023151647353581705241145927054858922281829444557905946323248 - ), - Pasta.Fp.wrap( - 10888828634279127981352133512429657747610298502219125571406085952954136470354 - ) - ]; -} diff --git a/eth_verifier/lib/sponge/Sponge.sol b/eth_verifier/lib/sponge/Sponge.sol deleted file mode 100644 index 41068a1f..00000000 --- a/eth_verifier/lib/sponge/Sponge.sol +++ /dev/null @@ -1,214 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {BN254} from "../bn254/BN254.sol"; -import {Scalar, Base} from "../bn254/Fields.sol"; -import {Proof} from "../Proof.sol"; -import {PointEvaluations, PointEvaluationsArray} from "../Evaluations.sol"; -import { - RANGE_CHECK0_SELECTOR_EVAL_FLAG, - RANGE_CHECK1_SELECTOR_EVAL_FLAG, - FOREIGN_FIELD_ADD_SELECTOR_EVAL_FLAG, - FOREIGN_FIELD_MUL_SELECTOR_EVAL_FLAG, - XOR_SELECTOR_EVAL_FLAG, - ROT_SELECTOR_EVAL_FLAG, - LOOKUP_AGGREGATION_EVAL_FLAG, - LOOKUP_TABLE_EVAL_FLAG, - LOOKUP_SORTED_EVAL_FLAG, - RUNTIME_LOOKUP_TABLE_EVAL_FLAG, - RUNTIME_LOOKUP_TABLE_SELECTOR_EVAL_FLAG, - XOR_LOOKUP_SELECTOR_EVAL_FLAG, - LOOKUP_GATE_LOOKUP_SELECTOR_EVAL_FLAG, - RANGE_CHECK_LOOKUP_SELECTOR_EVAL_FLAG, - FOREIGN_FIELD_MUL_LOOKUP_SELECTOR_EVAL_FLAG, - MAX_SPONGE_STATE_SIZE -} from "../Constants.sol"; - -error SizeExceeded(); // max sponge state size exceeded - -library KeccakSponge { - using {BN254.isInfinity} for BN254.G1Point; - - struct Sponge { - bytes pending; - uint256 last_index; - } - - // Basic methods - function reinit(Sponge memory self) internal pure { - self.pending = new bytes(MAX_SPONGE_STATE_SIZE); - self.last_index = 0; - } - - function absorb(Sponge memory self, bytes memory b) internal pure { - for (uint256 i = 0; i < b.length; i++) { - if (self.last_index >= MAX_SPONGE_STATE_SIZE) { - revert SizeExceeded(); - } - self.pending[self.last_index] = b[i]; - self.last_index += 1; - } - } - - function squeeze(Sponge memory self, uint256 byte_count) internal pure returns (bytes memory digest) { - digest = new bytes(byte_count); - bytes memory pending = new bytes(self.last_index); - for (uint256 i = 0; i < pending.length; i++) { - pending[i] = self.pending[i]; - } - bytes32 output = keccak256(pending); - - for (uint256 i = 0; i < byte_count - 1; i++) { - digest[i + 1] = output[i]; - } - - // pending <- output - reinit(self); - for (uint256 i = 0; i < 32; i++) { - self.pending[i] = output[i]; - } - self.last_index = 32; - } - - // KZG methods - - function absorb_scalar(Sponge memory self, uint256 elem) internal pure { - if ((self.last_index + 32) >= MAX_SPONGE_STATE_SIZE) { - revert SizeExceeded(); - } - - bytes memory b = new bytes(32); - assembly ("memory-safe") { - mstore(add(b, 32), elem) - } - - for (uint256 i = 0; i < 32; i++) { - self.pending[self.last_index + i] = b[i]; - } - self.last_index += 32; - } - - function absorb_g_single(Sponge memory self, BN254.G1Point memory point) internal pure { - absorb_scalar(self, point.x); - absorb_scalar(self, point.y); - } - - function absorb_g(Sponge memory self, BN254.G1Point[] memory points) internal pure { - for (uint256 i = 0; i < points.length; i++) { - BN254.G1Point memory point = points[i]; - absorb_scalar(self, point.x); - absorb_scalar(self, point.y); - } - } - - function absorb_evaluations(Sponge memory self, Proof.ProofEvaluations memory evals) internal pure { - absorb_point_evaluation(self, evals.z); - absorb_point_evaluation(self, evals.generic_selector); - absorb_point_evaluation(self, evals.poseidon_selector); - absorb_point_evaluation(self, evals.complete_add_selector); - absorb_point_evaluation(self, evals.mul_selector); - absorb_point_evaluation(self, evals.emul_selector); - absorb_point_evaluation(self, evals.endomul_scalar_selector); - - for (uint256 i = 0; i < evals.w.length; i++) { - absorb_point_evaluation(self, evals.w[i]); - } - for (uint256 i = 0; i < evals.coefficients.length; i++) { - absorb_point_evaluation(self, evals.coefficients[i]); - } - for (uint256 i = 0; i < evals.s.length; i++) { - absorb_point_evaluation(self, evals.s[i]); - } - - if (Proof.is_field_set(evals.optional_field_flags, RANGE_CHECK0_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.range_check0_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, RANGE_CHECK1_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.range_check1_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, FOREIGN_FIELD_ADD_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.foreign_field_add_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, FOREIGN_FIELD_MUL_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.foreign_field_mul_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, XOR_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.xor_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, ROT_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.rot_selector); - } - - if (Proof.is_field_set(evals.optional_field_flags, LOOKUP_AGGREGATION_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.lookup_aggregation); - } - if (Proof.is_field_set(evals.optional_field_flags, LOOKUP_TABLE_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.lookup_table); - } - for (uint256 i = 0; i < evals.lookup_sorted.length; i++) { - if (Proof.is_field_set(evals.optional_field_flags, LOOKUP_SORTED_EVAL_FLAG + i)) { - absorb_point_evaluation(self, evals.lookup_sorted[i]); - } - } - if (Proof.is_field_set(evals.optional_field_flags, RUNTIME_LOOKUP_TABLE_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.runtime_lookup_table); - } - - if (Proof.is_field_set(evals.optional_field_flags, RUNTIME_LOOKUP_TABLE_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.runtime_lookup_table_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, XOR_LOOKUP_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.xor_lookup_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, LOOKUP_GATE_LOOKUP_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.lookup_gate_lookup_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, RANGE_CHECK_LOOKUP_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.range_check_lookup_selector); - } - if (Proof.is_field_set(evals.optional_field_flags, FOREIGN_FIELD_MUL_LOOKUP_SELECTOR_EVAL_FLAG)) { - absorb_point_evaluation(self, evals.foreign_field_mul_lookup_selector); - } - } - - function absorb_point_evaluation(Sponge memory self, PointEvaluations memory eval) internal pure { - absorb_scalar(self, eval.zeta); - absorb_scalar(self, eval.zeta_omega); - } - - function challenge_base(Sponge memory self) internal pure returns (uint256 chal) { - chal = Base.from_bytes_be(squeeze(self, 16)); - } - - function challenge_scalar(Sponge memory self) internal pure returns (uint256 chal) { - chal = Scalar.from_bytes_be(squeeze(self, 16)); - } - - function digest_base(Sponge memory self) internal pure returns (uint256 digest) { - digest = Base.from_bytes_be(squeeze(self, 32)); - } - - function digest_scalar(Sponge memory self) internal pure returns (uint256 digest) { - digest = Scalar.from_bytes_be(squeeze(self, 32)); - } - - function mds() internal pure returns (uint256[3][3] memory) { - return [ - [ - 12035446894107573964500871153637039653510326950134440362813193268448863222019, - 25461374787957152039031444204194007219326765802730624564074257060397341542093, - 27667907157110496066452777015908813333407980290333709698851344970789663080149 - ], - [ - 4491931056866994439025447213644536587424785196363427220456343191847333476930, - 14743631939509747387607291926699970421064627808101543132147270746750887019919, - 9448400033389617131295304336481030167723486090288313334230651810071857784477 - ], - [ - 10525578725509990281643336361904863911009900817790387635342941550657754064843, - 27437632000253211280915908546961303399777448677029255413769125486614773776695, - 27566319851776897085443681456689352477426926500749993803132851225169606086988 - ] - ]; - } -} diff --git a/eth_verifier/linearization.bin b/eth_verifier/linearization.bin deleted file mode 100644 index c59e5e5be294d4347833482dcab5c5444303dc3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9504 zcmeH~>u%F97>1K>b8CBx$JTS{*om=mzJMVR2m}|v9dJV+Bu;-gUm2G%Y1nSFbxr1{ zD6-0=rmf@n@%!b?7dMWRB(yF62~o=qh1)VE&kLP2I>#$U$^564Od8!s`JvnUrlQhy z>_0Aa96TvBm1~Dj3mvzf6`IPm&F6)Vtrvx+a_!rfg^urDO*JVYl7?_sI4W$yHuSpI z*$1UFql{6)NHt1~tBo= zy3|J7tL!R~*=s((N>?+&_cJ}!_G~J1zH`>pJsWfsFVjYf%pPa*EOVx=+}G$%p4F_Q z`%@BoTqb#+OPn)*cH6CPPXR@9eEWp79nFkoYb3guf{B4L3C3OlYi1z<>a3@`6oU3Cp~eBPyR_?m6LzsKtbTfkofCrtUH^-=8jvDZhjp z__RKu^$qdZ^9!wiX#GSy_WG;?54d(k-m0i4e>8v5{6{?Y{7Um9&9B7gJ%8VT`%m-# zHt31(fPN47K5)|Sf}Z@{1pO`GhrmgH0DAIw1p3>+?*P9G{2uW8z#jmA2%O$ulGE^Z N62_+|aDI$W`oD*+qJaPa diff --git a/eth_verifier/linearization.rlp b/eth_verifier/linearization.rlp deleted file mode 100644 index d0e1fa3e80ee460f6b60c7dcdf136d01c0b9a36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548608 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�&ckl6cR4!zeEOZ&bMdO`>=wUf7RJ;ywFKk;C>) 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 diff --git a/eth_verifier/linearization_literals.bin b/eth_verifier/linearization_literals.bin deleted file mode 100644 index e23781aca76a7999146024e6af78d0f0bd9b9f8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6624 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 diff --git a/eth_verifier/merkle_leaf.bin b/eth_verifier/merkle_leaf.bin deleted file mode 100644 index 372d9a9f..00000000 --- a/eth_verifier/merkle_leaf.bin +++ /dev/null @@ -1 +0,0 @@ - s}«ęž'éz(ĘnâÙ~žÔę °ÿą">«Rà \ No newline at end of file diff --git a/eth_verifier/merkle_path.bin b/eth_verifier/merkle_path.bin deleted file mode 100644 index 4a8864374e5ce58f3e1ba7046673799d11acb73d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2240 zcmajc{XY|U00;0bt=-1h)EFX_wlQtAvo&JTgvrA-k*-A^ZWCGZ@FI%E$~+%dka#gqm-%L! ziHTrugY(BV%t*+O17+|&tFp1-z21$BhillU<0Y0b!I4Cw?6Pd3uP-F3_QxCo(VJhG zL{Gb|)x3Fvr$zr&4&RWYE$*R@S9pe$Ya|(VAaB%T^yd_d_wt7F`oV`^){Eku;@&Rd8(1l_>#e_`ZBWFYfVw=jo5-r@iR6QD+@ z@ZTF8M=N{3dlFJa?XqqIP47H^Y67MJc@k+`4=GD%c&uVMjZysb9?o8(iRbhmVc3tW z;SPmz5y(>_VpI6szTEocolZP$avkShP${v1+Gyprr?L^d>I3p*+a9P7LhSxn*C%g6 zGAm)>%f{^m)nisMXu0Eu87#;{=Rb~m#t=&1S7=32_C;Mdpy@t>A8VV9y|1-Y#f4Ep z9$QirzQHV(;m_Ej{i&DsbbKVOv0Y3gcFURyLdt5JLEfO%)}cNE`hv-y@~CB8spb`R zPsaG?hu&UKp?D9ehd^G-`=c-GmZHH=f#I5VJCmBd_$H}aA5`#1`?_3CJpul2D7R}J zbPB`s&cI1cvxu|}I6t4bb*c1&jQbhp>_G`=A1Yo-se!LaT6k1ZLezP46-N37b7((J z!O`gLE%>8PL4NywipeiF94X2#woFV~A+@M);vO%xZcIoyMV}L05rVw2`ng1Hp^=~# z&fP&qf3KFMaRag~-3c8!=B|j0Gg6S(UHx_2@37)R0#*Qhk0TGiuFo9&F!iPBYD3tr zGY83jAis_0YP0fu`GMt$;N`$*{ySt)u~2GiFA0wF#ieDZ2Z213UG@5;P{~FL?;zef z+B(b0pNn*89@5eYuHYhjGl)Z&#WSePf1v0l`W#xtK%iP{(rX-NSZt)0d-UQpGd8He zf^RJq!Ggnx3?C=WsykRMPZmV!$3z)Ml?q z?PZJ1Xa7#aJgir=0^n+J*y z``WB@Uo^qiSuJH+43s+`9ZJ>Nk)aRr#MfD|V@zpyKLPIKrK#A?an>g9s|~sANn@(~ zF85PF9@489>?fxcT*}2|eS>wLvx5sN_v5I1ModPVgL%C>$fLv3;}FGFwsrImhHZB% z`-fkeZ7JP~v(BOFOR8FKNI@Ps(Au0he%_1Vq<5upcGshun1%)Qs{0zzPrAfKd^HW^ zVP(gYuW5r0mUuHt@e|CHMnz8IK57MgD?J{unuOlgC68-sz3l4dhp zHvrTM&5KPD|9FLgibu`j2L6cl3#QL)+d^g^pK{hpF+r_^2Uc`%N%hG=k$o{3!%hup zp=zg~3vI2MUkT2AUAahvIiePjH05VeN;*4``x1nyEsu*{%o?eD-`1a}!o)y0g)xLP zxGv2nY=HSW>IeTP_heJ@mFq;0X?T^vamp!oH161Rq45foduC&ofycg+C|v zh6qzYZ{`@}uE*nx!Vq5V(r$mHZL@~`W~C1Z+&x*1o+y_6-nNuU)vxDz&e_aNm2RITu9p-pKmYu6EVui5a@9WC}93?ak@tz(ad&| zH^1T+$uW$`9#&17fA+613SYN7=$~AE-?(+j)t!wu+CFp{yqMeRWNVGE4)c5S-x= zLK%Q@nt6^}v^>KWo7=)7cq!bZbIZg=kLU?-tqG=n9NDvK3xGdn*V7`DjDMg! z<~h2~USJMyv4$8s+Ep_LDP^6&sbD3}aVy9QgAe9YQW~u@#8~*Y-+t;JUpA1LSlnO$ z3MOt2!`)zUAK019&!4mkNE#DjGzBT?4n^1l7>_hR#~`yMF!=rWYO_60?r$!*3FWOF zp`}Iy?%=`>MUw1CUIQ^5-C=j8o_DC3?AzbMy4E~rLzB<6%_l={8S`~bv z^VjZWaI&6@bBGA02v!}9s7J~B4G@zWS5?MS($*oSw<(1u8mq)Nld~LI66DxND0!on zWLVW9)1%%JFo^OL3vQM!FdYqvjuYdnO1hcUjHWK6cW+w3d6Jhe(;YxOF`kfZmv{*S zPpU9z{kQ1*{y?7lWMukeWgQE{SG=*JWgV8|V%F|zJ`_9V@K5}b9>#Nbo!OnYp0p2J zg~1s^KW{lS&BHX_TXPxZ+3YGGGno0aA6Rsc;YY?nBn5!sI6u~2Sf>wY9Ra@u5L~8) zDfRw01>uw9Fdvl+V}K(`>e;-OgDgYpDCq;qB5n*pjx`ONrViZ)QHy5Kqq}|SGX3Dr zLh@(i0qefsFuLZx?jy~$oAi#;@6DUyUjZJ}i{%5n(r@p>>u{Jek+d@BT@a8{wZlBN zYs-sG!E%{5#vl5#6cc9v2YdrSFM(2M z=K-gm-*ufYt-`u(7s&W@A|m31TVTYr&?j=Q6SsBLsh0NHnAS;8hR|_TPv#6H+PvI= zgWtQluSGrR%{<&|4c?*S?SRQR8MdsYwsAIReW^IpyP9d8`jv(w!~-Nqq#;sHIJy@h znqJ$TK`D1U6Js6+pGV!%eHuPGE%ZxWmTh8C0g_g~u`06?P+`;>^LJcX@4L^Qf# zVHUg1(tDkD(LLtt;;4CFT5JeHp?p;Pb8$x)iHI%jNsmo{cVVTPHY>Jbwr>66<(Vg> zQJSTB@4q)~qX+as)kifQGnH+4qbG2Z=TS6Bd%6I!G*Wu-`c1`Je)pg&*)j}erBR>F z!hvW=^_9|RMAK8zC?p`ydvh3dJGCZEeKpf8XG;txxZcTDgbI6>pAu91_>#|`usxQM zthLu6<=uZ%20Is#`=E85r~Ja9?-a$8?itX-;;p{3lI$7R_8wVlmP5j6n@0)xPQ;g< z(Z17j(?2a7NB(IVxQVW=z#pcQl1d`tV0jutXYB6)51w#CeAIW$(;nEjM3GT8G>0MI zmYfuQ3#?d_f;r$8IrUgmhs?Zf(|f2&CC(~9GX3b*pZ`FjbC{ z(&txB!Iq;qOQ9Q(1G1SB6UN@Z$Fj6i0@7R+eF}tfO}z%WhV5B1xp5Oc-U7&TX*VTA zij<5_@h}h-@JYOnL&maO8+@@xFE#PCSXqFfY27CcN;V`@Zw`oyf0cxWJU%(fvyRt) zt7`GC;K@W{nv7e)Ub2EQ+W{c*7)({%za-Yoe8iVm+AkOD4!+o2)etSwSVq6AW&79s zQKb+BXDy`Z6X7O}!XbkB>UbC+Rfz33K`)^1-0xfut8G{RA+i5Q? zsQFu@p(Vy^i+R6XLa9FH?2oXj6wj;DRH}@q#bRUH;>0CP(Xs(rA+T3^w4i#e$8`%GVy5}=ak~DmBn1mpQ}Imr z;%{;!KA4^bMB#|c!BAE5kkakfyMiIBKC0H!CS@<#<1}s6%TT-d z5#?cIjEr(YcV^0yOXZ}9pfzizBhaOFlJubCi+0&}AF}G=SKWEFkHY{>L8$1QUV$wJ2YgsdgJ zEHs9fBUOU+^YzN+%3Ib8zK!viFXib?NHKqT{%pAS==#Ktl5_;ryrRJ}X~iG`wwdOW1t@ z56OD!dDZszHnu<6iEa8Hj2@(lD^p#AFNWkhJ<>_sY3Pm4Lg1AplS^K6N+ej|Pz)^| z*G*M6hk6|q&JC;gkmB_x9>E$sI(A|zwwEULYE(ECOHrK&4F>?;e|_@A?D>LH#}iPeN1`C=d0%Hl`PYcr2_o zC3Vfof|{ds`;F>X;HiL6L-2Wr3lKQ`<$L`+hjO>&5bqikRx3RKB&>O1G2K z*;6N7LHT?f^ZA`zr|Q;un(ay-uJvo0F^AROGu&ROrRQIP4_|gZk64lzZwJ2F%oj_$zM;SoW(Yq-Ty5*7g{Flu$U4?e3S-hufr;hmndhSz?@dUNMFogFG_#Vf77PBkTBfyk;v&J0sY;x=1jy@U!h` zjzU=8>{#Tn$NXT$Jzy~O3vvQ3sE(Qh4d}%|z|r%&iF1mZJ#xw3xQ~2j$Kg!l7`wSb z=T5lJTUQDo@~7SgN<%2}ryVk%=phoDd?0cnEF-rFY&1v1{?YwXKWi)p1+B6kK{H z_YSSpsTAeeI`7K+&usfK^q~z;Hwx=W%g4Mw!I2 zk)bxMfVGO-;;ZY-ea#wOnCfy-Z1%Pg%Y&g~x5KQWs}P^!YaTW)7?bz*P7dnk^y!(cvHh8AYW~7fB&GcbLto-~q z@?4&*W%r9Lu2?T@Nk(VQ@hU=$ecs5x@Rcn`y729Gkn{!1yR&MO(yX|0ODzMesEYx5 zl)jObBFg9)nuqIRlv5$g3~Y6-cOHR_AiP+LMO=uNepUaqPwhK(dgI4^2R?r+*)yAB zUr2*W6ASuu$c`OtP8?qDJ`!F^<0`1~iYU)ZuQ-M2wPKZC3bIK~nGXw}Z{I$vfrlRL zU;oqp$p1O;A9ny+Xd^ov$HIJbS88te*^^=Mvnw6Z8#%YNh!E#h%kyt`OzotyJ)cFT*e4>nf$+hoYDQ6OW z0_M9C{8vPK_%wV4yJCpI+Tc%+Hvkmg%NRzNwYV?1xq2zp@2N_lZk{U|1%SbJoH=bh zT4>~9VX?=jZHh6E6%-7v$rFXIC&9+62Go_Q?EHv_Ppz(%(`i>j+RKS$UCtQ~ z9as*D5#7EnX8W?geDSe#V*_8HbiP*GL^!5pL_WBieh>55Ugd_nH?Mdi%?R%(pv$zt zR@>^vRHfH7nCZ3xXuKco!|?AD?aRwqqcJytHC>WCvp9YtmryeVa!#5D)BY6P5k=T#^W}=_|?hwB| zQY^eOA<6H(0-HV{e z{3UVVP&_qPkn~L)=!d8@mtEI}0v-yf>-*&!S#D27UU8MplfUvd# zTC1jhJQ=dB^g9c+4**bH38ntrWt>B{=7gb*Rn-{;zwONjZQ*6z`QA+I*7;M$i2WZt C$!l@| diff --git a/eth_verifier/prover_proof.mpk b/eth_verifier/prover_proof.mpk deleted file mode 100644 index e22ae563d07548e0d4955684b128d80f45c9e42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6962 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 yb>#!k2J=cnnv54yY%>6vwf?cAS=0.4.16 <0.9.0; - -import {Script, console2} from "forge-std/Script.sol"; -import {KimchiVerifier} from "../src/Verifier.sol"; - -contract Deploy is Script { - function run() public { - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - - vm.startBroadcast(deployerPrivateKey); - - KimchiVerifier verifier = new KimchiVerifier(); - - verifier.setup(); - - vm.stopBroadcast(); - } -} - -contract DeployAndDeser is Script { - bytes verifier_index_serialized; - bytes linearization_serialized; - - function run() public { - verifier_index_serialized = vm.readFileBinary("verifier_index.bin"); - linearization_serialized = vm.readFileBinary("linearization.bin"); - - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - - vm.startBroadcast(deployerPrivateKey); - - KimchiVerifier verifier = new KimchiVerifier(); - - verifier.setup(); - - verifier.store_verifier_index(verifier_index_serialized); - verifier.store_linearization(linearization_serialized); - - vm.stopBroadcast(); - } -} diff --git a/eth_verifier/script/UploadProof.s.sol b/eth_verifier/script/UploadProof.s.sol deleted file mode 100644 index 03453fd6..00000000 --- a/eth_verifier/script/UploadProof.s.sol +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import {Script, console2} from "forge-std/Script.sol"; -import {KimchiVerifier} from "../src/Verifier.sol"; - -contract UploadProof is Script { - bytes linearization_literals_serialized; - bytes proof_hash_serialized; - bytes prover_proof_serialized; - bytes merkle_root_serialized; - - function run() public { - linearization_literals_serialized = vm.readFileBinary("linearization_literals.bin"); - proof_hash_serialized = vm.readFileBinary("proof_hash.bin"); - prover_proof_serialized = vm.readFileBinary("prover_proof.bin"); - merkle_root_serialized = vm.readFileBinary("merkle_root.bin"); - - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - vm.startBroadcast(deployerPrivateKey); - - address verifierAddress = vm.envAddress("CONTRACT_ADDRESS"); - KimchiVerifier verifier = KimchiVerifier(verifierAddress); - - verifier.store_literal_tokens(linearization_literals_serialized); - verifier.store_proof_hash(proof_hash_serialized); - verifier.store_prover_proof(prover_proof_serialized); - verifier.store_potential_merkle_root(merkle_root_serialized); - - vm.stopBroadcast(); - } -} diff --git a/eth_verifier/script/Verify.s.sol b/eth_verifier/script/Verify.s.sol deleted file mode 100644 index ec3f36b6..00000000 --- a/eth_verifier/script/Verify.s.sol +++ /dev/null @@ -1,148 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import {Script, console2} from "forge-std/Script.sol"; -import {KimchiVerifier} from "../src/Verifier.sol"; -import "forge-std/console.sol"; - -contract Verify is Script { - bytes linearization_literals_serialized; - bytes verifier_index_serialized; - bytes prover_proof_serialized; - bytes linearization_serialized; - bytes proof_hash_serialized; - bytes merkle_root_serialized; - bytes merkle_leaf_serialized; - bytes merkle_path_serialized; - - error VerificationFailed(); - - function run() public { - linearization_literals_serialized = vm.readFileBinary("linearization_literals.bin"); - verifier_index_serialized = vm.readFileBinary("verifier_index.bin"); - prover_proof_serialized = vm.readFileBinary("prover_proof.bin"); - linearization_serialized = vm.readFileBinary("linearization.bin"); - proof_hash_serialized = vm.readFileBinary("proof_hash.bin"); - merkle_root_serialized = vm.readFileBinary("merkle_root.bin"); - merkle_leaf_serialized = vm.readFileBinary("merkle_leaf.bin"); - merkle_path_serialized = vm.readFileBinary("merkle_path.bin"); - - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - vm.startBroadcast(deployerPrivateKey); - - KimchiVerifier verifier = new KimchiVerifier(); - - verifier.setup(); - - verifier.store_literal_tokens(linearization_literals_serialized); - verifier.store_verifier_index(verifier_index_serialized); - verifier.store_linearization(linearization_serialized); - verifier.store_prover_proof(prover_proof_serialized); - verifier.store_proof_hash(proof_hash_serialized); - verifier.store_potential_merkle_root(merkle_root_serialized); - - verifier.full_verify(); - - if (!verifier.is_last_proof_valid()) { - revert VerificationFailed(); - } - - vm.stopBroadcast(); - } -} - -contract VerifyAndCheckAccount is Script { - bytes linearization_literals_serialized; - bytes verifier_index_serialized; - bytes prover_proof_serialized; - bytes linearization_serialized; - bytes proof_hash_serialized; - bytes merkle_root_serialized; - bytes merkle_leaf_serialized; - bytes merkle_path_serialized; - - error VerificationFailed(); - error MerkleFailed(); - - function run() public { - linearization_literals_serialized = vm.readFileBinary("linearization_literals.bin"); - verifier_index_serialized = vm.readFileBinary("verifier_index.bin"); - prover_proof_serialized = vm.readFileBinary("prover_proof.bin"); - linearization_serialized = vm.readFileBinary("linearization.bin"); - proof_hash_serialized = vm.readFileBinary("proof_hash.bin"); - merkle_root_serialized = vm.readFileBinary("merkle_root.bin"); - merkle_leaf_serialized = vm.readFileBinary("merkle_leaf.bin"); - merkle_path_serialized = vm.readFileBinary("merkle_path.bin"); - - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - vm.startBroadcast(deployerPrivateKey); - - KimchiVerifier verifier = new KimchiVerifier(); - - verifier.setup(); - - verifier.store_literal_tokens(linearization_literals_serialized); - verifier.store_verifier_index(verifier_index_serialized); - verifier.store_linearization(linearization_serialized); - verifier.store_prover_proof(prover_proof_serialized); - verifier.store_proof_hash(proof_hash_serialized); - verifier.store_potential_merkle_root(merkle_root_serialized); - - bool verify_success = verifier.full_verify(); - - if (!verify_success) { - revert VerificationFailed(); - } - - bool merkle_success = verifier.verify_account_inclusion(bytes32(merkle_leaf_serialized), merkle_path_serialized); - - if (!merkle_success) { - revert MerkleFailed(); - } - - vm.stopBroadcast(); - } -} - -contract PartialAndFinalVerify is Script { - bytes linearization_literals_serialized; - bytes verifier_index_serialized; - bytes prover_proof_serialized; - bytes linearization_serialized; - bytes proof_hash_serialized; - - function run() public { - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - vm.startBroadcast(deployerPrivateKey); - - address verifierAddress = vm.envAddress("CONTRACT_ADDRESS"); - KimchiVerifier verifier = KimchiVerifier(verifierAddress); - - verifier.partial_verify_and_store(); - verifier.final_verify_and_store(); - console.log("is proof valid?: %s", verifier.is_last_proof_valid()); - - vm.stopBroadcast(); - } -} - -contract MerkleVerify is Script { - bytes merkle_leaf_serialized; - bytes merkle_path_serialized; - - function run() public { - merkle_leaf_serialized = vm.readFileBinary("merkle_leaf.bin"); - merkle_path_serialized = vm.readFileBinary("merkle_path.bin"); - - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - vm.startBroadcast(deployerPrivateKey); - - address verifierAddress = vm.envAddress("CONTRACT_ADDRESS"); - KimchiVerifier verifier = KimchiVerifier(verifierAddress); - - bool success = verifier.verify_account_inclusion(bytes32(merkle_leaf_serialized), merkle_path_serialized); - console.log("is account included in verified state?: %s", success); - - vm.stopBroadcast(); - } -} diff --git a/eth_verifier/src/KimchiPartialVerifier.sol b/eth_verifier/src/KimchiPartialVerifier.sol deleted file mode 100644 index 08a05f5a..00000000 --- a/eth_verifier/src/KimchiPartialVerifier.sol +++ /dev/null @@ -1,286 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import "../lib/bn254/Fields.sol"; -import {BN254} from "../lib/bn254/BN254.sol"; -import "../lib/bn254/BN256G2.sol"; -import "../lib/VerifierIndex.sol"; -import "../lib/Commitment.sol"; -import "../lib/Oracles.sol"; -import "../lib/Proof.sol"; -import "../lib/VerifierIndex.sol"; -import "../lib/Constants.sol"; -import "../lib/Alphas.sol"; -import "../lib/Evaluations.sol"; -import "../lib/deserialize/ProverProof.sol"; -import "../lib/expr/Expr.sol"; -import "../lib/expr/PolishToken.sol"; -import "../lib/expr/ExprConstants.sol"; - -using {get_alphas} for Alphas; -using {it_next} for AlphasIterator; -using {Proof.get_column_eval} for Proof.ProofEvaluations; - -library KimchiPartialVerifier { - error IncorrectPublicInputLength(); - error PolynomialsAreChunked(uint256 chunk_size); - error NotEnoughPowersOfAlphaForPermutation(); // not enough powers of alpha for permutation - error ScalarMulFailed(); // Bn254: scalar multiplication failed! - - // This takes Kimchi's `to_batch()` as reference. - function partial_verify( - Proof.ProverProof storage proof, - VerifierIndexLib.VerifierIndex storage verifier_index, - Commitment.URS storage urs, - uint256 public_input - ) external returns (Proof.AggregatedEvaluationProof memory) { - - // TODO: 1. Check the length of evaluations insde the proof - - // 2. Commit to the negated public input polynomial. - BN254.G1Point memory public_comm = public_commitment(verifier_index, urs, public_input); - - // 3. Execute fiat-shamir with a Keccak sponge - - Oracles.Result memory oracles_res = Oracles.fiat_shamir(proof, verifier_index, public_comm, public_input, true); - Oracles.RandomOracles memory oracles = oracles_res.oracles; - - // 4. Combine the chunked polynomials' evaluations - - //ProofEvaluations memory evals = proof.evals.combine_evals(oracles_res.powers_of_eval_points_for_chunks); - // INFO: There's only one evaluation per polynomial so there's nothing to combine - Proof.ProofEvaluations memory evals = proof.evals; - - // 5. Compute the commitment to the linearized polynomial $f$. - uint256 permutation_vanishing_polynomial = Polynomial.eval_vanishes_on_last_n_rows( - verifier_index.domain_gen, verifier_index.domain_size, verifier_index.zk_rows, oracles.zeta - ); - - AlphasIterator memory alphas = - verifier_index.powers_of_alpha.get_alphas(ArgumentType.Permutation, PERMUTATION_CONSTRAINTS); - - BN254.G1Point[] memory commitments = new BN254.G1Point[](1); - commitments[0] = verifier_index.sigma_comm[PERMUTS - 1]; - uint256[] memory scalars = new uint256[](1); - scalars[0] = perm_scalars(evals, oracles.beta, oracles.gamma, alphas, permutation_vanishing_polynomial); - - BN254.G1Point memory f_comm = BN254.multiScalarMul(commitments, scalars); - - // 6. Compute the chunked commitment of ft - uint256 zeta_to_srs_len = Scalar.pow(oracles.zeta, verifier_index.max_poly_size); - BN254.G1Point memory chunked_f_comm = f_comm; - - BN254.G1Point[7] memory t_comm = proof.commitments.t_comm; - BN254.G1Point memory chunked_t_comm = BN254.point_at_inf(); - - for (uint256 i = 0; i < t_comm.length; i++) { - chunked_t_comm = BN254.scalarMul(chunked_t_comm, zeta_to_srs_len); - chunked_t_comm = BN254.add(chunked_t_comm, t_comm[t_comm.length - i - 1]); - } - - BN254.G1Point memory ft_comm = - BN254.sub(chunked_f_comm, BN254.scalarMul(chunked_t_comm, Scalar.sub(oracles_res.zeta1, 1))); - - // 7. List the polynomial commitments, and their associated evaluations, - // that are associated to the aggregated evaluation proof in the proof: - - uint256 evaluations_len = 56; // INFO: hard-coded for the test proof - Evaluation[] memory evaluations = new Evaluation[](evaluations_len); - - uint256 eval_index = 0; - - // public input commitment - evaluations[eval_index++] = Evaluation(public_comm, oracles_res.public_evals, 0); - - // ft commitment - evaluations[eval_index++] = Evaluation(ft_comm, [oracles_res.ft_eval0, proof.ft_eval1], 0); - uint256 columns_len = 52; // INFO: hard-coded for the test proof - Column[] memory columns = new Column[](columns_len); - columns[0] = Column(ColumnVariant.Z, 0); - columns[1] = Column(ColumnVariant.Index, GATE_TYPE_GENERIC); - columns[2] = Column(ColumnVariant.Index, GATE_TYPE_POSEIDON); - columns[3] = Column(ColumnVariant.Index, GATE_TYPE_COMPLETE_ADD); - columns[4] = Column(ColumnVariant.Index, GATE_TYPE_VAR_BASE_MUL); - columns[5] = Column(ColumnVariant.Index, GATE_TYPE_ENDO_MUL); - columns[6] = Column(ColumnVariant.Index, GATE_TYPE_ENDO_MUL_SCALAR); - uint256 col_index = 7; - for (uint256 i = 0; i < COLUMNS; i++) { - columns[col_index++] = Column(ColumnVariant.Witness, i); - } - for (uint256 i = 0; i < COLUMNS; i++) { - columns[col_index++] = Column(ColumnVariant.Coefficient, i); - } - for (uint256 i = 0; i < PERMUTS - 1; i++) { - columns[col_index++] = Column(ColumnVariant.Permutation, i); - } - if (Proof.is_field_set(verifier_index.optional_field_flags, RANGE_CHECK0_COMM_FLAG)) { - columns[col_index++] = Column(ColumnVariant.Index, GATE_TYPE_RANGE_CHECK_0); - } - if (Proof.is_field_set(verifier_index.optional_field_flags, RANGE_CHECK1_COMM_FLAG)) { - columns[col_index++] = Column(ColumnVariant.Index, GATE_TYPE_RANGE_CHECK_1); - } - if (Proof.is_field_set(verifier_index.optional_field_flags, FOREIGN_FIELD_ADD_COMM_FLAG)) { - columns[col_index++] = Column(ColumnVariant.Index, GATE_TYPE_FOREIGN_FIELD_ADD); - } - if (Proof.is_field_set(verifier_index.optional_field_flags, FOREIGN_FIELD_MUL_COMM_FLAG)) { - columns[col_index++] = Column(ColumnVariant.Index, GATE_TYPE_FOREIGN_FIELD_MUL); - } - if (Proof.is_field_set(verifier_index.optional_field_flags, XOR_COMM_FLAG)) { - columns[col_index++] = Column(ColumnVariant.Index, GATE_TYPE_XOR_16); - } - if (Proof.is_field_set(verifier_index.optional_field_flags, ROT_COMM_FLAG)) { - columns[col_index++] = Column(ColumnVariant.Index, GATE_TYPE_ROT_64); - } - if (Proof.is_field_set(verifier_index.optional_field_flags, LOOKUP_VERIFIER_INDEX_FLAG)) { - VerifierIndexLib.LookupVerifierIndex memory li = verifier_index.lookup_index; - for (uint256 i = 0; i < li.lookup_info.max_per_row + 1; i++) { - columns[col_index++] = Column(ColumnVariant.LookupSorted, i); - } - columns[col_index++] = Column(ColumnVariant.LookupAggreg, 0); - } - // push all commitments corresponding to each column - for (uint256 i = 0; i < col_index; i++) { - PointEvaluations memory eval = Proof.get_column_eval(proof.evals, columns[i]); - evaluations[eval_index++] = Evaluation( - VerifierIndexLib.get_column_commitment(columns[i], verifier_index, proof), - [eval.zeta, eval.zeta_omega], - 0 - ); - } - - if (Proof.is_field_set(verifier_index.optional_field_flags, LOOKUP_VERIFIER_INDEX_FLAG)) { - VerifierIndexLib.LookupVerifierIndex memory li = verifier_index.lookup_index; - if (!Proof.is_field_set(proof.commitments.optional_field_flags, LOOKUP_SORTED_COMM_FLAG)) { - revert("missing lookup commitments"); // TODO: error - } - //PointEvaluations memory lookup_evals = proof.evals.lookup_table; - if (!Proof.is_field_set(proof.evals.optional_field_flags, LOOKUP_TABLE_EVAL_FLAG)) { - revert("missing lookup table eval"); - } - PointEvaluations memory lookup_table = proof.evals.lookup_table; - - uint256 joint_combiner = oracles.joint_combiner_field; - uint256 table_id_combiner = Scalar.pow(joint_combiner, li.lookup_info.max_joint_size); - - BN254.G1Point memory table_comm = Proof.combine_table( - li.lookup_table, - joint_combiner, - table_id_combiner, - Proof.is_field_set(li.optional_field_flags, TABLE_IDS_FLAG), - li.table_ids, - Proof.is_field_set(proof.commitments.optional_field_flags, LOOKUP_RUNTIME_COMM_FLAG), - proof.commitments.lookup_runtime - ); - - evaluations[eval_index++] = Evaluation(table_comm, [lookup_table.zeta, lookup_table.zeta_omega], 0); - - if (Proof.is_field_set(li.optional_field_flags, RUNTIME_TABLES_SELECTOR_FLAG)) { - if (!Proof.is_field_set(proof.commitments.optional_field_flags, LOOKUP_RUNTIME_COMM_FLAG)) { - revert("missing lookup runtime commitment"); - } - BN254.G1Point memory runtime = proof.commitments.lookup_runtime; - if (!Proof.is_field_set(proof.evals.optional_field_flags, RUNTIME_LOOKUP_TABLE_EVAL_FLAG)) { - revert("missing runtime lookup table eval"); - } - PointEvaluations memory runtime_eval = proof.evals.runtime_lookup_table; - - evaluations[eval_index++] = Evaluation(runtime, [runtime_eval.zeta, runtime_eval.zeta_omega], 0); - } - - if (Proof.is_field_set(li.optional_field_flags, RUNTIME_TABLES_SELECTOR_FLAG)) { - Column memory col = Column(ColumnVariant.LookupRuntimeSelector, 0); - PointEvaluations memory eval = Proof.get_column_eval(proof.evals, col); - evaluations[eval_index++] = Evaluation( - VerifierIndexLib.get_column_commitment(col, verifier_index, proof), [eval.zeta, eval.zeta_omega], 0 - ); - } - if (Proof.is_field_set(li.optional_field_flags, XOR_FLAG)) { - Column memory col = Column(ColumnVariant.LookupKindIndex, LOOKUP_PATTERN_XOR); - PointEvaluations memory eval = Proof.get_column_eval(proof.evals, col); - evaluations[eval_index++] = Evaluation( - VerifierIndexLib.get_column_commitment(col, verifier_index, proof), [eval.zeta, eval.zeta_omega], 0 - ); - } - if (Proof.is_field_set(li.optional_field_flags, LOOKUP_FLAG)) { - Column memory col = Column(ColumnVariant.LookupKindIndex, LOOKUP_PATTERN_LOOKUP); - PointEvaluations memory eval = Proof.get_column_eval(proof.evals, col); - evaluations[eval_index++] = Evaluation( - VerifierIndexLib.get_column_commitment(col, verifier_index, proof), [eval.zeta, eval.zeta_omega], 0 - ); - } - if (Proof.is_field_set(li.optional_field_flags, RANGE_CHECK_FLAG)) { - Column memory col = Column(ColumnVariant.LookupKindIndex, LOOKUP_PATTERN_RANGE_CHECK); - PointEvaluations memory eval = Proof.get_column_eval(proof.evals, col); - evaluations[eval_index++] = Evaluation( - VerifierIndexLib.get_column_commitment(col, verifier_index, proof), [eval.zeta, eval.zeta_omega], 0 - ); - } - if (Proof.is_field_set(li.optional_field_flags, FFMUL_FLAG)) { - Column memory col = Column(ColumnVariant.LookupKindIndex, LOOKUP_PATTERN_FOREIGN_FIELD_MUL); - PointEvaluations memory eval = Proof.get_column_eval(proof.evals, col); - evaluations[eval_index++] = Evaluation( - VerifierIndexLib.get_column_commitment(col, verifier_index, proof), [eval.zeta, eval.zeta_omega], 0 - ); - } - } - - uint256[2] memory evaluation_points = [oracles.zeta, Scalar.mul(oracles.zeta, verifier_index.domain_gen)]; - - return Proof.AggregatedEvaluationProof(evaluations, evaluation_points, oracles.v, proof.opening); - } - - function public_commitment( - VerifierIndexLib.VerifierIndex storage verifier_index, - Commitment.URS storage urs, - uint256 public_input - ) internal view returns (BN254.G1Point memory public_comm) { - if (verifier_index.domain_size < verifier_index.max_poly_size) { - revert PolynomialsAreChunked(verifier_index.domain_size / verifier_index.max_poly_size); - } - - if (verifier_index.public_len != 1) { - revert IncorrectPublicInputLength(); - } - // scalarMul lagrange_base, public_input and negate - uint256[3] memory input; - input[0] = 18113832654818628032992755859209290802008519287100762914206176582473178093505; - input[1] = 3582659226651458527375464564944664881520537990280688997853301801774302310926; - input[2] = public_input; - bool success; - assembly ("memory-safe") { - success := staticcall(sub(gas(), 2000), 7, input, 0x80, public_comm, 0x60) - // Use "invalid" to make gas estimation work - switch success - case 0 { revert(0, 0) } - } - if (!success) { - revert ScalarMulFailed(); - } - - public_comm = BN254.add(urs.h, public_comm); - } - - function perm_scalars( - Proof.ProofEvaluations memory e, - uint256 beta, - uint256 gamma, - AlphasIterator memory alphas, - uint256 zkp_zeta - ) internal pure returns (uint256 res) { - if (alphas.powers.length - alphas.current_index < 3) { - revert NotEnoughPowersOfAlphaForPermutation(); - } - - uint256 alpha0 = alphas.it_next(); - //uint256 _alpha1 = alphas.it_next(); - //uint256 _alpha2 = alphas.it_next(); - - res = Scalar.mul(Scalar.mul(Scalar.mul(e.z.zeta_omega, beta), alpha0), zkp_zeta); - uint256 len = Utils.min(e.w.length, e.s.length); - for (uint256 i = 0; i < len; i++) { - uint256 current = Scalar.add(Scalar.add(gamma, Scalar.mul(beta, e.s[i].zeta)), e.w[i].zeta); - res = Scalar.mul(res, current); - } - res = Scalar.neg(res); - } -} diff --git a/eth_verifier/src/Verifier.sol b/eth_verifier/src/Verifier.sol deleted file mode 100644 index ec3377ca..00000000 --- a/eth_verifier/src/Verifier.sol +++ /dev/null @@ -1,270 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {Base} from "../lib/bn254/Fields.sol"; -import {BN254} from "../lib/bn254/BN254.sol"; -import {BN256G2} from "../lib/bn254/BN256G2.sol"; -import {Scalar} from "../lib/VerifierIndex.sol"; -import {Proof} from "../lib/Proof.sol"; -import {Commitment} from "../lib/Commitment.sol"; -import {Evaluation} from "../lib/Evaluations.sol"; -import {VARBASEMUL_CONSTRAINTS, PERMUTATION_CONSTRAINTS} from "../lib/Constants.sol"; -import {ArgumentType, Alphas, AlphasIterator, get_alphas, register, it_next} from "../lib/Alphas.sol"; -import {deser_prover_proof} from "../lib/deserialize/ProverProof.sol"; -import {deser_proof_hash} from "../lib/deserialize/PublicInputs.sol"; -import {deser_verifier_index, VerifierIndexLib} from "../lib/deserialize/VerifierIndex.sol"; -import {deser_linearization, deser_literal_tokens} from "../lib/deserialize/Linearization.sol"; -import {deser_merkle_path} from "../lib/deserialize/MerkleProof.sol"; -import {KimchiPartialVerifier} from "./KimchiPartialVerifier.sol"; -import {Pasta} from "../lib/pasta/Fields.sol"; -import {MerkleVerifier} from "../lib/merkle/Verify.sol"; -import {Poseidon} from "../lib/poseidon/Pasta.sol"; -import {PoseidonBn254} from "../lib/poseidon/Bn254.sol"; - -contract KimchiVerifier { - uint256 internal constant G2_X0 = 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2; - uint256 internal constant G2_X1 = 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed; - uint256 internal constant G2_Y0 = 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b; - uint256 internal constant G2_Y1 = 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa; - - using {get_alphas, register} for Alphas; - using {it_next} for AlphasIterator; - - error IncorrectPublicInputLength(); - error PolynomialsAreChunked(uint256 chunk_size); - error MoreThanTwoEvals(); // more than two evals - error PairingCheckFailed(); // Bn254: pairing check failed! - - Proof.ProverProof internal proof; - VerifierIndexLib.VerifierIndex internal verifier_index; - Commitment.URS internal urs; - - uint256 internal proof_hash; - - Proof.AggregatedEvaluationProof internal aggregated_proof; - - bool internal last_verification_result; - - MerkleVerifier merkle_verifier = new MerkleVerifier(); - Poseidon poseidon = new Poseidon(); - PoseidonBn254 poseidon_bn254 = new PoseidonBn254(); - Pasta.Fp internal potential_merkle_root; - Pasta.Fp internal merkle_root = Pasta.from(0); - - function setup() public { - // Setup URS - urs.g = new BN254.G1Point[](2); - urs.g[0] = BN254.G1Point(1, 2); - urs.g[1] = BN254.G1Point( - 0x0988F35DB6971FD77C8F9AFDAE27F7FB355577586DE4C517537D17882F9B3F34, - 0x23BAFFA63FAFC8C67007390A6E6DD52860B4A8AE95F49905D52CDB2C3B4CB203 - ); - urs.h = BN254.G1Point( - 0x259C9A9126385A54663D11F284944E91215DF44F4A502100B46BC91CCF373772, - 0x0EC1C952555B2D6978D2D39FA999D6469581ECF94F61262CDC9AA5C05FB8E70B - ); - - // INFO: powers of alpha are fixed for a given constraint system, so we can hard-code them. - verifier_index.powers_of_alpha.register(ArgumentType.GateZero, VARBASEMUL_CONSTRAINTS); - verifier_index.powers_of_alpha.register(ArgumentType.Permutation, PERMUTATION_CONSTRAINTS); - - // INFO: endo coefficient is fixed for a given constraint system - (uint256 _endo_q, uint256 endo_r) = BN254.endo_coeffs_g1(); - verifier_index.endo = endo_r; - } - - function store_verifier_index(bytes calldata data_serialized) public { - deser_verifier_index(data_serialized, verifier_index); - } - - function store_linearization(bytes calldata data_serialized) public { - deser_linearization(data_serialized, verifier_index.linearization); - } - - function store_literal_tokens(bytes calldata data_serialized) public { - deser_literal_tokens(data_serialized, verifier_index.linearization); - } - - function store_prover_proof(bytes calldata data_serialized) public { - deser_prover_proof(data_serialized, proof); - } - - function store_proof_hash(bytes calldata data_serialized) public { - proof_hash = deser_proof_hash(data_serialized); - } - - function store_potential_merkle_root(bytes calldata data_serialized) public { - potential_merkle_root = Pasta.from(uint256(bytes32(data_serialized))); - } - - function verify_account_inclusion(bytes32 leaf_hash_bytes, bytes calldata path_serialized) public view returns (bool) { - if (Pasta.Fp.unwrap(merkle_root) == 0) { - revert("the merkle root is missing, verify a state before calling this."); - } - - Pasta.Fp leaf_hash = Pasta.from(uint256(leaf_hash_bytes)); - MerkleVerifier.PathElement[] memory merkle_path = deser_merkle_path(path_serialized); - - Pasta.Fp calculated_root = merkle_verifier.calc_path_root(merkle_path, leaf_hash, poseidon); - return Pasta.Fp.unwrap(calculated_root) == Pasta.Fp.unwrap(merkle_root); - } - - function full_verify() public returns (bool) { - uint256 public_input = calc_public_input(); - Proof.AggregatedEvaluationProof memory agg_proof = - KimchiPartialVerifier.partial_verify(proof, verifier_index, urs, public_input); - last_verification_result = final_verify(agg_proof); - return last_verification_result; - } - - function partial_verify_and_store() public { - uint256 public_input = calc_public_input(); - aggregated_proof = KimchiPartialVerifier.partial_verify(proof, verifier_index, urs, public_input); - } - - function final_verify_and_store() public { - last_verification_result = final_verify(aggregated_proof); - } - - function is_last_proof_valid() public view returns (bool) { - return last_verification_result; - } - - function final_verify(Proof.AggregatedEvaluationProof memory agg_proof) public returns (bool) { - Evaluation[] memory evaluations = agg_proof.evaluations; - uint256[2] memory evaluation_points = agg_proof.evaluation_points; - uint256 polyscale = agg_proof.polyscale; - - // poly commitment - (BN254.G1Point memory poly_commitment, uint256[] memory evals) = - Commitment.combine_commitments_and_evaluations(evaluations, polyscale, 1); - - // blinding commitment - BN254.G1Point memory blinding_commitment = BN254.scalarMul(urs.h, agg_proof.opening.blinding); - - // quotient commitment - BN254.G1Point memory quotient = agg_proof.opening.quotient; - - // divisor commitment - BN254.G2Point memory divisor = divisor_commitment(evaluation_points); - - // eval commitment - // numerator commitment - BN254.G1Point memory numerator = - BN254.sub(poly_commitment, BN254.add(eval_commitment(evaluation_points, evals, urs), blinding_commitment)); - - uint256 out; - bool success; - // quotient commitment needs to be negated. See the doc of pairingProd2(). - quotient = BN254.neg(quotient); - - assembly ("memory-safe") { - let mPtr := mload(0x40) - mstore(mPtr, mload(numerator)) - mstore(add(mPtr, 0x20), mload(add(numerator, 0x20))) - - mstore(add(mPtr, 0x40), G2_X0) - mstore(add(mPtr, 0x60), G2_X1) - mstore(add(mPtr, 0x80), G2_Y0) - mstore(add(mPtr, 0xa0), G2_Y1) - - mstore(add(mPtr, 0xc0), mload(quotient)) - mstore(add(mPtr, 0xe0), mload(add(quotient, 0x20))) - mstore(add(mPtr, 0x100), mload(divisor)) - mstore(add(mPtr, 0x120), mload(add(divisor, 0x20))) - mstore(add(mPtr, 0x140), mload(add(divisor, 0x40))) - mstore(add(mPtr, 0x160), mload(add(divisor, 0x60))) - success := staticcall(gas(), 8, mPtr, 0x180, 0x00, 0x20) - out := mload(0x00) - } - if (!success) { - revert PairingCheckFailed(); - } - - if (out != 0) { - // save "verified" merkle root (we would need a way to check that the potential merkle - // root corresponds to the verified proof). - merkle_root = potential_merkle_root; - return true; - } - } - - function divisor_commitment(uint256[2] memory evaluation_points) - internal - view - returns (BN254.G2Point memory result) - { - BN254.G2Point memory point0 = BN254.G2Point( - 10857046999023057135944570762232829481370756359578518086990519993285655852781, - 11559732032986387107991004021392285783925812861821192530917403151452391805634, - 8495653923123431417604973247489272438418190587263600148770280649306958101930, - 4082367875863433681332203403145435568316851327593401208105741076214120093531 - ); - BN254.G2Point memory point1 = BN254.G2Point( - 7883069657575422103991939149663123175414599384626279795595310520790051448551, - 8346649071297262948544714173736482699128410021416543801035997871711276407441, - 3343323372806643151863786479815504460125163176086666838570580800830972412274, - 16795962876692295166012804782785252840345796645199573986777498170046508450267 - ); - BN254.G2Point memory point2 = BN254.G2Point( - 4640749047686948693676466477499634979423220823002391841311260833878642348023, - 14127762918448947308790410788210289377279518096121173062251311797297982082469, - 13424649497566617342906600132389867025763662606076913038585301943152028890013, - 15584633174679797224858067860955702731818107814729714298421481259259086801380 - ); - - uint256[] memory divisor_poly_coeffs = new uint256[](2); - - // The divisor polynomial is the poly that evaluates to 0 in the evaluation - // points. Used for proving that the numerator is divisible by it. - // So, this is: (x-a)(x-b) = x^2 - (a + b)x + ab - // (there're only two evaluation points: a and b). - - divisor_poly_coeffs[0] = Scalar.mul(evaluation_points[0], evaluation_points[1]); - divisor_poly_coeffs[1] = Scalar.neg(Scalar.add(evaluation_points[0], evaluation_points[1])); - - result = BN256G2.ECTwistMul(divisor_poly_coeffs[0], point0); - result = BN256G2.ECTwistAdd(result, BN256G2.ECTwistMul(divisor_poly_coeffs[1], point1)); - result = BN256G2.ECTwistAdd(result, point2); - } - - function eval_commitment( - uint256[2] memory evaluation_points, - uint256[] memory evals, - Commitment.URS memory full_urs - ) internal view returns (BN254.G1Point memory) { - uint256[] memory eval_poly_coeffs = new uint256[](2); - - // The evaluation polynomial e(x) is the poly that evaluates to evals[i] - // in the evaluation point i, for all i. Used for making the numerator - // evaluate to zero at the evaluation points (by substraction). - - if (evals.length > 2) revert MoreThanTwoEvals(); - - uint256 x1 = evaluation_points[0]; - uint256 x2 = evaluation_points[1]; - uint256 y1 = evals[0]; - uint256 y2 = evals[1]; - - // So, this is: e(x) = ax + b, with: - // a = (y2-y1)/(x2-x1) - // b = y1 - a*x1 - - uint256 a = Scalar.mul(Scalar.sub(y2, y1), Scalar.inv(Scalar.sub(x2, x1))); - uint256 b = Scalar.sub(y1, Scalar.mul(a, x1)); - - eval_poly_coeffs[0] = b; - eval_poly_coeffs[1] = a; - - return BN254.multiScalarMul(full_urs.g, eval_poly_coeffs); - } - - function calc_public_input() private view returns (uint256) { - PoseidonBn254.Sponge memory sponge = poseidon_bn254.new_sponge(); - sponge = poseidon_bn254.absorb(sponge, proof_hash); - sponge = poseidon_bn254.absorb(sponge, Pasta.Fp.unwrap(potential_merkle_root)); - (PoseidonBn254.Sponge memory _sponge, uint256 public_input) = poseidon_bn254.squeeze(sponge); - - return public_input; - } -} diff --git a/eth_verifier/test/BN254.t.sol b/eth_verifier/test/BN254.t.sol deleted file mode 100644 index 7e87b811..00000000 --- a/eth_verifier/test/BN254.t.sol +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import {Test} from "forge-std/Test.sol"; -import {console} from "forge-std/console.sol"; -import {BN254} from "../lib/bn254/BN254.sol"; - -contract DeserializeTest is Test { - function test_BN254_add_scale() public { - BN254.G1Point memory g = BN254.P1(); - - BN254.G1Point memory g_plus_g = BN254.add(g, g); - BN254.G1Point memory two_g = BN254.add(g, g); - - assertEq(g_plus_g.x, two_g.x, "g + g should equal 2g"); - assertEq(g_plus_g.y, two_g.y, "g + g should equal 2g"); - } -} diff --git a/eth_verifier/test/Deserialize.t.sol b/eth_verifier/test/Deserialize.t.sol deleted file mode 100644 index 4e1208dc..00000000 --- a/eth_verifier/test/Deserialize.t.sol +++ /dev/null @@ -1,161 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import {Test, console2} from "forge-std/Test.sol"; -import "../lib/deserialize/ProverProof.sol"; -import "../lib/deserialize/PublicInputs.sol"; -import "../lib/deserialize/MerkleProof.sol"; -import "../lib/Proof.sol"; -import "../lib/Constants.sol"; - -contract DecodeProverProof is Test { - bytes pairing_proof_bytes; - bytes proof_evals_bytes; - bytes proof_comms_bytes; - bytes prover_proof_bytes; - - Proof.PairingProof pairing_proof; - Proof.ProofEvaluations proof_evals; - Proof.ProverCommitments proof_comms; - Proof.ProverProof prover_proof; - uint256 proof_hash; - - function setUp() public { - pairing_proof_bytes = vm.readFileBinary("./unit_test_data/pairing_proof.bin"); - proof_evals_bytes = vm.readFileBinary("./unit_test_data/proof_evals.bin"); - proof_comms_bytes = vm.readFileBinary("./unit_test_data/proof_comms.bin"); - prover_proof_bytes = vm.readFileBinary("./unit_test_data/prover_proof.bin"); - } - - function assertTestEval(PointEvaluations memory eval) internal { - assertEq(eval.zeta, 1); - assertEq(eval.zeta_omega, 42); - } - - function assertEmptyEval(PointEvaluations memory eval) internal { - assertEq(eval.zeta, 0); - assertEq(eval.zeta_omega, 0); - } - - function assertTestG1Point(BN254.G1Point memory p) internal { - assertEq(p.x, 1); - assertEq(p.y, 2); - } - - function test_deser_new_pairing_proof() public { - deser_pairing_proof(pairing_proof_bytes, pairing_proof); - - assertTestG1Point(pairing_proof.quotient); - assertEq(pairing_proof.blinding, 1); - } - - function test_deser_new_proof_evals() public { - deser_proof_evals(proof_evals_bytes, proof_evals); - - // optional field flags - assertEq( - proof_evals.optional_field_flags, - 11 // 0b1011 - ); - - // will only test some fields: - assertTestEval(proof_evals.z); - assertTestEval(proof_evals.public_evals); - assertTestEval(proof_evals.range_check0_selector); - assertEmptyEval(proof_evals.range_check1_selector); - assertTestEval(proof_evals.foreign_field_add_selector); - } - - function test_deser_new_proof_comms() public { - deser_proof_comms(proof_comms_bytes, proof_comms); - - // optional field flags - assertEq( - proof_comms.optional_field_flags, - 3 // 0b11 - ); - - for (uint256 i = 0; i < COLUMNS; i++) { - assertTestG1Point(proof_comms.w_comm[i]); - } - assertTestG1Point(proof_comms.z_comm); - for (uint256 i = 0; i < proof_comms.t_comm.length; i++) { - assertTestG1Point(proof_comms.t_comm[i]); - } - - assertEq(proof_comms.lookup_sorted.length, 5); - for (uint256 i = 0; i < proof_comms.lookup_sorted.length; i++) { - assertTestG1Point(proof_comms.lookup_sorted[i]); - } - - assertTestG1Point(proof_comms.lookup_aggreg); - assertTestG1Point(proof_comms.lookup_runtime); - } - - function test_deser_new_prover_proof() public { - deser_prover_proof(prover_proof_bytes, prover_proof); - - /** - * Test comms * - */ - assertEq( - prover_proof.commitments.optional_field_flags, - 3 // 0b11 - ); - for (uint256 i = 0; i < COLUMNS; i++) { - assertTestG1Point(prover_proof.commitments.w_comm[i]); - } - assertTestG1Point(prover_proof.commitments.z_comm); - for (uint256 i = 0; i < prover_proof.commitments.t_comm.length; i++) { - assertTestG1Point(prover_proof.commitments.t_comm[i]); - } - assertEq(prover_proof.commitments.lookup_sorted.length, 5); - for (uint256 i = 0; i < prover_proof.commitments.lookup_sorted.length; i++) { - assertTestG1Point(prover_proof.commitments.lookup_sorted[i]); - } - assertTestG1Point(prover_proof.commitments.lookup_aggreg); - assertTestG1Point(prover_proof.commitments.lookup_runtime); - - /** - * Test opening * - */ - assertTestG1Point(prover_proof.opening.quotient); - assertEq(prover_proof.opening.blinding, 1); - - /** - * Test evals * - */ - assertEq( - prover_proof.evals.optional_field_flags, - 11 // 0b1011 - ); - // will only test some fields: - assertTestEval(prover_proof.evals.z); - assertTestEval(prover_proof.evals.public_evals); - assertTestEval(prover_proof.evals.range_check0_selector); - assertEmptyEval(prover_proof.evals.range_check1_selector); - assertTestEval(prover_proof.evals.foreign_field_add_selector); - - /** - * Test ft_eval1 * - */ - assertEq(prover_proof.ft_eval1, 10); - } - - // INFO: this doesn't assert anything, it only executes this deserialization - // for gas profiling. - function test_deserialize_proof_hash_profiling_only() public { - bytes memory proof_hash_serialized = vm.readFileBinary("proof_hash.bin"); - proof_hash = deser_proof_hash(proof_hash_serialized); - } - - function test_deserialize_merkle_path() public { - bytes memory merkle_path_serialized = vm.readFileBinary("test_merkle_path.bin"); - MerkleVerifier.PathElement[] memory merkle_path = deser_merkle_path(merkle_path_serialized); - assertEq(merkle_path.length, 2); - assertEq(Pasta.Fp.unwrap(merkle_path[0].hash), 42); - assertEq(uint256(merkle_path[0].left_or_right), 1); - assertEq(Pasta.Fp.unwrap(merkle_path[1].hash), 28); - assertEq(uint256(merkle_path[1].left_or_right), 0); - } -} diff --git a/eth_verifier/test/Fields.t.sol b/eth_verifier/test/Fields.t.sol deleted file mode 100644 index 11d8caae..00000000 --- a/eth_verifier/test/Fields.t.sol +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import {Test} from "forge-std/Test.sol"; -import {console} from "forge-std/console.sol"; -import {Scalar, Base} from "../lib/bn254/Fields.sol"; -import "../lib/bn254/BN256G2.sol"; -import "../lib/bn254/BN254.sol"; -import "../lib/Oracles.sol"; - -using {Oracles.to_field} for Oracles.ScalarChallenge; - -contract FieldsTest is Test { - function test_add_base() public { - uint256 q = Base.MODULUS - 1; - uint256 q_plus_one = Base.add(q, 1); - assertEq(q_plus_one, 0, "p != 0 mod p"); - } - - function test_add_scalar() public { - uint256 q = Scalar.MODULUS - 1; - uint256 q_plus_one = Scalar.add(q, 1); - assertEq(q_plus_one, 0, "p != 0 mod p"); - } - - function test_inv_scalar() public { - uint256 a = Scalar.from(42); - uint256 b = Scalar.inv(a); - assertEq(Scalar.mul(a, b), 1, "a * a.inv() != 1"); - } - - function test_scalar_challenge_to_field() public { - Oracles.ScalarChallenge memory chal = Oracles.ScalarChallenge(Scalar.from(42)); - (uint256 _endo_q, uint256 endo_r) = BN254.endo_coeffs_g1(); - assertEq(chal.to_field(endo_r), 0x1B98C45C863AD2A1F4EB90EFBC8F1104AF5534B239720D63ECB7156E9347F622); - // INFO: reference value taken from analogous test in kzg_prover/misc_tests.rs - } -} diff --git a/eth_verifier/test/Merkle.t.sol b/eth_verifier/test/Merkle.t.sol deleted file mode 100644 index dfeadee5..00000000 --- a/eth_verifier/test/Merkle.t.sol +++ /dev/null @@ -1,126 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import {Test} from "forge-std/Test.sol"; -import {console} from "forge-std/console.sol"; - -import "poseidon/Pasta.sol"; -import "pasta/Fields.sol"; -import "merkle/Verify.sol"; - -contract MerkleTest is Test { - Poseidon poseidon_sponge_contract; - MerkleVerifier merkle_verifier; - - function setUp() public { - poseidon_sponge_contract = new Poseidon(); - merkle_verifier = new MerkleVerifier(); - } - - function test_depth_1_proof() public { - MerkleVerifier.PathElement[] - memory merkle_path = new MerkleVerifier.PathElement[](1); - merkle_path[0] = MerkleVerifier.PathElement( - Pasta.from(42), - MerkleVerifier.LeftOrRight.Left - ); - - Pasta.Fp leaf_hash = Pasta.from(80); - - Pasta.Fp root = merkle_verifier.calc_path_root( - merkle_path, - leaf_hash, - poseidon_sponge_contract - ); - - assertEq( - Pasta.Fp.unwrap(root), - 586916851671628937271642655597333396477811635876932869114437365941107007713 - ); - } - - function test_depth_2_proof() public { - MerkleVerifier.PathElement[] - memory merkle_path = new MerkleVerifier.PathElement[](2); - merkle_path[0] = MerkleVerifier.PathElement( - Pasta.from(42), - MerkleVerifier.LeftOrRight.Left - ); - merkle_path[1] = MerkleVerifier.PathElement( - Pasta.from(28), - MerkleVerifier.LeftOrRight.Right - ); - - Pasta.Fp leaf_hash = Pasta.from(80); - - Pasta.Fp root = merkle_verifier.calc_path_root( - merkle_path, - leaf_hash, - poseidon_sponge_contract - ); - - assertEq( - Pasta.Fp.unwrap(root), - 20179372078419284495777784494767897705526278687856314176984937187561031505424 - ); - } - - function test_depth_35_proof() public { - // Proof taken from local sandbox Mina node - - MerkleVerifier.PathElement[] memory merkle_path = new MerkleVerifier.PathElement[](35); - MerkleVerifier.PathElement[35] memory merkle_path_fix = [ - MerkleVerifier.PathElement(Pasta.from(25269606294916619424328783876704640983264873133815222226208603489064938585963), MerkleVerifier.LeftOrRight.Right), - MerkleVerifier.PathElement(Pasta.from(25007007256384944882905405604034518504068874873083358951799359466121314322110), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(7215733857675538665207647125574410089751356370280345059969727973716036781109), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(11675502286292853653967170164874347759631001134551978982661175757639336655203), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(4693941016685726924011477103376122792121393624262436606875444683370096234842), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(16433445017086641142063239834507914818488546646730449637369850633542683002323), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(19525687889735069135389545695685589898547363283645924409997338604644211020165), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(21445019880069604159182854981425354819870947976592388639924911106308886101583), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(20894402139528067835909935277874525399255235657001118287546511264386895769621), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(883229644397733039066253671955693697113975269219426363508259187408670360883), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(9769914702946050828692551650179547224426684260009754295891562165984001044159), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(10297524488630367552093608413474608735915477327721251109778411714211204757470), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(1496321477249655206167525073537310005622058311564791180207644487283463863898), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(10772837653959418633137031193105415079228935669218218525739441178449860550037), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(696092792553552689655004235885208270952911318900402910117767792225021223362), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(20499284764105850422619742708102293468642385252120895329218092651295105457537), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(12197922778747608042733767950590679520334041548650005099692442442290423955136), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(6781788106327601599702202199756117532472472684470091628838303569264537775700), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(16918038186554675056000578097630897159236284751433663183439602696852905624415), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(28627628212319805343454811139849901640500073315285842033614442274505756385536), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(28758859610334920473530372700694516882691452974475767468086895285359096307274), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(16430190523938219721147185711044261861887815192145019235086508794037748662978), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(23300248870286894992003584685086043578048220924304538552357941351343423298077), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(18721105361232651344875520416758751524020336778169872574984370086949138642085), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(10611828583016686420873473112404506690775956092186634604097134580560948638514), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(11448813184116204118725235537673043143764404790624366392625860187638781235615), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(6507258883578376028376981545955062827139698232277887871775971553968101691249), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(17493244980280937955941580434326677459751473714746227943153210535373918340114), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(18464507392887829891264190376236139806757048001410567864732128380527868369455), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(374677701015397178366310913911051069892586440922808798004746377118603064136), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(7414597540944309778303590613882007538175921122373418819351437768289067050688), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(4911425897386868865951704774190352922917918118795543476097437449334578129718), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(2537948008614359414287158135558328051431310188498471600040371216889620767874), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(11945594868601920248817415866479228952991063900530321216805456660202303767865), MerkleVerifier.LeftOrRight.Left), - MerkleVerifier.PathElement(Pasta.from(7727454798157491451398259626232336317494512806516291520841511378379541110711), MerkleVerifier.LeftOrRight.Left) - ]; - for (uint256 i = 0; i < merkle_path.length; i++) { - merkle_path[i] = merkle_path_fix[i]; - } - - Pasta.Fp leaf_hash = Pasta.from(5547050440260440001206353800257378236791122500588428095288570642887590248302); - - Pasta.Fp root = merkle_verifier.calc_path_root( - merkle_path, - leaf_hash, - poseidon_sponge_contract - ); - - assertEq( - Pasta.Fp.unwrap(root), - 25386343758799444195005156917506668892978004126168706919054504716147406520412 - ); - } -} diff --git a/eth_verifier/test/Poseidon.t.sol b/eth_verifier/test/Poseidon.t.sol deleted file mode 100644 index 66e207de..00000000 --- a/eth_verifier/test/Poseidon.t.sol +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import {Test} from "forge-std/Test.sol"; -import {console} from "forge-std/console.sol"; - -import "poseidon/Pasta.sol"; -import "pasta/Fields.sol"; - -contract PoseidonTest is Test { - Poseidon poseidon_sponge_contract; - - function setUp() public { - poseidon_sponge_contract = new Poseidon(); - } - - function test_squeeze() public { - Poseidon.Sponge memory sponge = poseidon_sponge_contract - .new_sponge(); - - ( - Poseidon.Sponge memory _s, - Pasta.Fp result - ) = poseidon_sponge_contract.squeeze(sponge); - assertEq( - Pasta.Fp.unwrap(result), - 0x2fadbe2852044d028597455bc2abbd1bc873af205dfabb8a304600f3e09eeba8 - ); - } - - function test_absorb_squeeze() public { - Poseidon.Sponge memory sponge = poseidon_sponge_contract - .new_sponge(); - Pasta.Fp input = Pasta.Fp.wrap( - 0x36fb00ad544e073b92b4e700d9c49de6fc93536cae0c612c18fbe5f6d8e8eef2 - ); - sponge = poseidon_sponge_contract.absorb(sponge, input); - - ( - Poseidon.Sponge memory _s, - Pasta.Fp result - ) = poseidon_sponge_contract.squeeze(sponge); - assertEq( - Pasta.Fp.unwrap(result), - 0x3d4f050775295c04619e72176746ad1290d391d73ff4955933f9075cf69259fb - ); - } - - function test_absorb_absorb_squeeze() public { - Poseidon.Sponge memory sponge = poseidon_sponge_contract - .new_sponge(); - Pasta.Fp input = Pasta.Fp.wrap( - 0x3793e30ac691700012baf26bb813d6d70bd379beed8050a1deee3c188f1c3fbd - ); - Pasta.Fp input2 = Pasta.Fp.wrap( - 0x2fc4c98e50e0b1aae6ecb468e28c0b7d80a7e0eec7136db0ba0677b84af0e465 - ); - sponge = poseidon_sponge_contract.absorb(sponge, input); - sponge = poseidon_sponge_contract.absorb(sponge, input2); - - ( - Poseidon.Sponge memory _s, - Pasta.Fp result - ) = poseidon_sponge_contract.squeeze(sponge); - assertEq( - Pasta.Fp.unwrap(result), - 0x336c73d08ad408ceb7d1264867096f0817a1d0558b313312a1207602f23624fe - ); - } -} diff --git a/eth_verifier/test/Profiling.t.sol b/eth_verifier/test/Profiling.t.sol deleted file mode 100644 index 7c5c85da..00000000 --- a/eth_verifier/test/Profiling.t.sol +++ /dev/null @@ -1,46 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import {Test} from "forge-std/Test.sol"; - -import "../lib/expr/Expr.sol"; -import "../lib/VerifierIndex.sol"; -import "../lib/deserialize/VerifierIndex.sol"; -import "../lib/deserialize/ProverProof.sol"; -import "../lib/deserialize/PublicInputs.sol"; -import "../lib/deserialize/Linearization.sol"; - -contract Profiling is Test { - Linearization linearization; - VerifierIndexLib.VerifierIndex verifier_index; - Proof.ProverProof prover_proof; - uint256 proof_hash; - - // INFO: this doesn't assert anything, it only executes this deserialization - // for gas profiling. - function test_deserialize_linearization_profiling_only() public { - bytes memory linearization_serialized = vm.readFileBinary("linearization.bin"); - deser_linearization(linearization_serialized, verifier_index.linearization); - } - - // INFO: this doesn't assert anything, it only executes this deserialization - // for gas profiling. - function test_deserialize_verifier_index_profiling_only() public { - bytes memory verifier_index_serialized = vm.readFileBinary("verifier_index.bin"); - deser_verifier_index(verifier_index_serialized, verifier_index); - } - - // INFO: this doesn't assert anything, it only executes this deserialization - // for gas profiling. - function test_deserialize_prover_proof_profiling_only() public { - bytes memory verifier_index_serialized = vm.readFileBinary("prover_proof.bin"); - deser_prover_proof(verifier_index_serialized, prover_proof); - } - - // INFO: this doesn't assert anything, it only executes this deserialization - // for gas profiling. - function test_deserialize_proof_hash_profiling_only() public { - bytes memory proof_hash_serialized = vm.readFileBinary("proof_hash.bin"); - proof_hash = deser_proof_hash(proof_hash_serialized); - } -} diff --git a/eth_verifier/test/Sponge.t.sol b/eth_verifier/test/Sponge.t.sol deleted file mode 100644 index 2dcc4943..00000000 --- a/eth_verifier/test/Sponge.t.sol +++ /dev/null @@ -1,134 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {Test, console2} from "forge-std/Test.sol"; -import "../lib/sponge/Sponge.sol"; -import "../lib/bn254/BN254.sol"; - -using { - KeccakSponge.reinit, - KeccakSponge.absorb_scalar, - KeccakSponge.digest_scalar, - KeccakSponge.challenge_scalar, - KeccakSponge.digest_base, - KeccakSponge.challenge_base, - KeccakSponge.absorb_g -} for KeccakSponge.Sponge; - -contract KeccakSpongeTest is Test { - function test_absorb_digest_scalar() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - uint256 input = Scalar.from(42); - sponge.absorb_scalar(input); - - uint256 digest = sponge.digest_scalar(); - assertEq(digest, 0x00BECED09521047D05B8960B7E7BCC1D1292CF3E4B2A6B63F48335CBDE5F7545); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - function test_digest_scalar() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - uint256 digest = sponge.digest_scalar(); - - assertEq(digest, 0x00C5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A4); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - function test_absorb_challenge_scalar() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - uint256 input = Scalar.from(42); - sponge.absorb_scalar(input); - - uint256 digest = sponge.challenge_scalar(); - assertEq(digest, 0x0000000000000000000000000000000000BECED09521047D05B8960B7E7BCC1D); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - // INFO: absorb_x_base tests are the same as absorb_x_scalar ones. - function test_absorb_digest_base() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - uint256 input = Base.from(42); - sponge.absorb_scalar(input); - - uint256 digest = sponge.digest_base(); - assertEq(digest, 0x00BECED09521047D05B8960B7E7BCC1D1292CF3E4B2A6B63F48335CBDE5F7545); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - // INFO: absorb_x_base tests are the same as absorb_x_scalar ones. - function test_absorb_challenge_base() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - uint256 input = Base.from(42); - sponge.absorb_scalar(input); - - uint256 digest = sponge.challenge_base(); - assertEq(digest, 0x0000000000000000000000000000000000BECED09521047D05B8960B7E7BCC1D); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - function test_absorb_digest_g() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - BN254.G1Point[] memory input = new BN254.G1Point[](1); - input[0] = BN254.P1(); - sponge.absorb_g(input); - - uint256 digest = sponge.digest_scalar(); - assertEq(digest, 0x00E90B7BCEB6E7DF5418FB78D8EE546E97C83A08BBCCC01A0644D599CCD2A7C2); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - function test_absorb_absorb_digest_scalar() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - uint256[2] memory inputs = [Scalar.from(42), Scalar.from(24)]; - sponge.absorb_scalar(inputs[0]); - sponge.absorb_scalar(inputs[1]); - - uint256 digest = sponge.digest_scalar(); - assertEq(digest, 0x00DB760B992492E99DAE648DBA78682EB78FAFF3B40E0DB291710EFCB8A7D0D3); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - function test_absorb_challenge_challenge_scalar() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - uint256 input = Scalar.from(42); - sponge.absorb_scalar(input); - - uint256[2] memory digests = [sponge.challenge_scalar(), sponge.challenge_scalar()]; - assertEq(digests[0], 0x0000000000000000000000000000000000BECED09521047D05B8960B7E7BCC1D); - assertEq(digests[1], 0x0000000000000000000000000000000000964765235251D0E2EACFBC25925D55); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - function test_absorb_challenge_absorb_challenge_scalar() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - uint256[2] memory inputs = [Scalar.from(42), Scalar.from(24)]; - - sponge.absorb_scalar(inputs[0]); - uint256 challenge = sponge.challenge_scalar(); - assertEq(challenge, 0x0000000000000000000000000000000000BECED09521047D05B8960B7E7BCC1D); - sponge.absorb_scalar(inputs[1]); - challenge = sponge.challenge_scalar(); - assertEq(challenge, 0x0000000000000000000000000000000000D9E16B1DA42107514692CD8896E64F); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } - - function test_challenge_challenge_scalar() public { - KeccakSponge.Sponge memory sponge; - sponge.reinit(); - - uint256 challenge = sponge.challenge_scalar(); - assertEq(challenge, 0x0000000000000000000000000000000000C5D2460186F7233C927E7DB2DCC703); - challenge = sponge.challenge_scalar(); - assertEq(challenge, 0x000000000000000000000000000000000010CA3EFF73EBEC87D2394FC58560AF); - // INFO: reference value taken from analogous test in kzg_prover/sponge_tests.rs - } -} diff --git a/eth_verifier/test/VerifierAPI.t.sol b/eth_verifier/test/VerifierAPI.t.sol deleted file mode 100644 index 84f34663..00000000 --- a/eth_verifier/test/VerifierAPI.t.sol +++ /dev/null @@ -1,160 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import {Test, console2} from "forge-std/Test.sol"; -import "../src/Verifier.sol"; -import {Oracles} from "../lib/Oracles.sol"; - -contract KimchiVerifierTest is Test { - bytes verifier_index_serialized; - bytes prover_proof_serialized; - bytes linearization_serialized; - bytes linearization_literals_serialized; - bytes proof_hash_serialized; - bytes merkle_root_serialized; - bytes merkle_leaf_serialized; - bytes merkle_path_serialized; - - Proof.ProverProof proof; - VerifierIndexLib.VerifierIndex verifier_index; - uint256 proof_hash; - BN254.G1Point public_comm; - - error VerificationFailed(); - - KimchiVerifier global_verifier; - - function setUp() public { - // read serialized data from files - verifier_index_serialized = vm.readFileBinary("verifier_index.bin"); - prover_proof_serialized = vm.readFileBinary("prover_proof.bin"); - linearization_serialized = vm.readFileBinary("linearization.bin"); - linearization_literals_serialized = vm.readFileBinary("linearization_literals.bin"); - proof_hash_serialized = vm.readFileBinary("proof_hash.bin"); - merkle_root_serialized = vm.readFileBinary("merkle_root.bin"); - merkle_leaf_serialized = vm.readFileBinary("merkle_leaf.bin"); - merkle_path_serialized = vm.readFileBinary("merkle_path.bin"); - - deser_prover_proof(prover_proof_serialized, proof); - deser_verifier_index(verifier_index_serialized, verifier_index); - proof_hash = deser_proof_hash(proof_hash_serialized); - public_comm = BN254.scalarMul(BN254.G1Point(1, 2), 42); - - // setup verifier contract - global_verifier = new KimchiVerifier(); - - global_verifier.setup(); - - global_verifier.store_verifier_index(verifier_index_serialized); - global_verifier.store_linearization(linearization_serialized); - global_verifier.store_literal_tokens(linearization_literals_serialized); - global_verifier.store_prover_proof(prover_proof_serialized); - global_verifier.store_proof_hash(proof_hash_serialized); - global_verifier.store_potential_merkle_root(merkle_root_serialized); - - global_verifier.partial_verify_and_store(); - global_verifier.final_verify_and_store(); - } - - function test_deploy() public { - KimchiVerifier verifier = new KimchiVerifier(); - verifier.setup(); - } - - function test_deserialize() public { - KimchiVerifier verifier = new KimchiVerifier(); - - verifier.setup(); - - verifier.store_verifier_index(verifier_index_serialized); - verifier.store_linearization(linearization_serialized); - verifier.store_literal_tokens(linearization_literals_serialized); - verifier.store_prover_proof(prover_proof_serialized); - verifier.store_proof_hash(proof_hash_serialized); - verifier.store_potential_merkle_root(merkle_root_serialized); - } - - function test_deserialize_and_full_verify() public { - KimchiVerifier verifier = new KimchiVerifier(); - - verifier.setup(); - - verifier.store_verifier_index(verifier_index_serialized); - verifier.store_linearization(linearization_serialized); - verifier.store_literal_tokens(linearization_literals_serialized); - verifier.store_prover_proof(prover_proof_serialized); - verifier.store_proof_hash(proof_hash_serialized); - verifier.store_potential_merkle_root(merkle_root_serialized); - - bool success = verifier.full_verify(); - if (!success) { - revert VerificationFailed(); - } - } - - function test_deserialize_and_full_verify_existing_verifier() public { - global_verifier.store_literal_tokens(linearization_literals_serialized); - global_verifier.store_prover_proof(prover_proof_serialized); - global_verifier.store_proof_hash(proof_hash_serialized); - global_verifier.store_potential_merkle_root(merkle_root_serialized); - - bool success = global_verifier.full_verify(); - if (!success) { - revert VerificationFailed(); - } - } - - function test_partial_verify_and_store() public { - global_verifier.partial_verify_and_store(); - } - - function test_final_verify() public { - global_verifier.final_verify_and_store(); - bool success = global_verifier.is_last_proof_valid(); - if (!success) { - revert VerificationFailed(); - } - } - - function test_multiple_setups_and_verifications() public { - uint256 num_circuit_updates = 10; - uint256 num_verifications_per_update = 100; - KimchiVerifier verifier = new KimchiVerifier(); - - verifier.setup(); - - for (uint256 i = 0; i < num_circuit_updates; i++) { - verifier.store_verifier_index(verifier_index_serialized); - verifier.store_linearization(linearization_serialized); - - for (uint256 j = 0; j < num_verifications_per_update; j++) { - verifier.store_literal_tokens(linearization_literals_serialized); - verifier.store_prover_proof(prover_proof_serialized); - verifier.store_proof_hash(proof_hash_serialized); - verifier.store_potential_merkle_root(merkle_root_serialized); - - bool success = verifier.full_verify(); - if (!success) { - revert VerificationFailed(); - } - } - } - } - - function test_merkle_verify() public { - bool success = global_verifier.verify_account_inclusion( - bytes32(merkle_leaf_serialized), - merkle_path_serialized - ); - if (!success) { - revert VerificationFailed(); - } - } - - /* - function test_oracles_fiat_shamir() public { - Oracles.Result memory oracles_res = Oracles.fiat_shamir(proof, verifier_index, - public_comm, public_input, true); - } - */ -} diff --git a/eth_verifier/test/VerifierOther.t.sol b/eth_verifier/test/VerifierOther.t.sol deleted file mode 100644 index 2f21b80f..00000000 --- a/eth_verifier/test/VerifierOther.t.sol +++ /dev/null @@ -1,181 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.4.16 <0.9.0; - -import {Test} from "forge-std/Test.sol"; -import {BN254} from "../lib/bn254/BN254.sol"; -import {KimchiVerifier, VerifierIndexLib} from "../src/Verifier.sol"; -import {Commitment} from "../lib/Commitment.sol"; -import {Polynomial} from "../lib/Polynomial.sol"; -import {deser_verifier_index} from "../lib/deserialize/VerifierIndex.sol"; -import {KeccakSponge} from "../lib/sponge/Sponge.sol"; -import {Scalar} from "../lib/bn254/Fields.sol"; - -contract KimchiVerifierTest is Test { - uint256 internal constant G2_X0 = 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2; - uint256 internal constant G2_X1 = 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed; - uint256 internal constant G2_Y0 = 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b; - uint256 internal constant G2_Y1 = 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa; - - bytes verifier_index_serialized; - bytes linearization_serialized; - bytes prover_proof_serialized; - bytes proof_hash_serialized; - - VerifierIndexLib.VerifierIndex test_verifier_index; - KeccakSponge.Sponge sponge; - - function setUp() public { - verifier_index_serialized = vm.readFileBinary("verifier_index.bin"); - linearization_serialized = vm.readFileBinary("linearization.bin"); - prover_proof_serialized = vm.readFileBinary("prover_proof.bin"); - proof_hash_serialized = vm.readFileBinary("proof_hash.bin"); - - // we store deserialized structures mostly to run intermediate results - // tests. - deser_verifier_index(vm.readFileBinary("unit_test_data/verifier_index.bin"), test_verifier_index); - } - - /* - function test_eval_commitment() public { - KimchiVerifier verifier = new KimchiVerifier(); - verifier.setup(); - - uint256[2] memory evaluation_points = [ - Scalar.from(13611645662807726448009836376915752628632570551277086161653783406622791783728), - Scalar.from(3564135020345995638717498554909006524700441992279926422621219017070650554254) - ]; - - uint256[] memory evals = new uint256[](2); - evals[0] = Scalar.from(10120666028354925241544739361936737942150226600838550203372747067710839915497); - evals[1] = Scalar.from(15078030357868247450073031446158725935649265148599941249555157207050719642652); - - BN254.G1Point[] memory g = new BN254.G1Point[](2); - g[0] = BN254.G1Point(1, 2); - g[1] = BN254.G1Point( - 4312786488925573964619847916436127219510912864504589785209181363209026354996, - 16161347681839669251864665467703281411292235435048747094987907712909939880451 - ); - Commitment.URS memory full_urs = Commitment.URS(g, BN254.point_at_inf()); - - BN254.G1Point memory eval_commitment = verifier.eval_commitment(evaluation_points, evals, full_urs); - - // Necessary so that the optimized compiler takes into account the eval commitment - require(keccak256(abi.encode(eval_commitment)) > 0); - } - */ - - /* - function test_divisor_commitment() public { - KimchiVerifier verifier = new KimchiVerifier(); - - verifier.setup(); - - verifier.store_verifier_index(verifier_index_serialized); - verifier.store_linearization(linearization_serialized); - verifier.store_prover_proof(prover_proof_serialized); - verifier.store_proof_hash(proof_hash_serialized); - - uint256[2] memory evaluation_points = [ - Scalar.from(13611645662807726448009836376915752628632570551277086161653783406622791783728), - Scalar.from(3564135020345995638717498554909006524700441992279926422621219017070650554254) - ]; - - BN254.G2Point memory divisor_commitment = verifier.divisor_commitment(evaluation_points); - - // Necessary so that the optimized compiler takes into account the divisor commitment - require(keccak256(abi.encode(divisor_commitment)) > 0); - } - */ - - // INFO: Disabled test because the new serializer isnt't used yet to - // generate unit test data. - //function test_absorb_evaluations() public { - // KeccakSponge.reinit(sponge); - // KeccakSponge.absorb_evaluations(sponge, test_prover_proof.evals); - // uint256 scalar = KeccakSponge.challenge_scalar(sponge); - // assertEq(uint256.unwrap(scalar), 0x0000000000000000000000000000000000DC56216206DF842F824D14A6D87024); - //} - - function test_eval_vanishing_poly_on_last_n_rows() public { - // hard-coded zeta is taken from executing the verifier in main.rs - // the value doesn't matter, as long as it matches the analogous test in Rust. - uint256 zeta = Scalar.from(0x1B427680FC915CB850FFF8701AD7E2D73B9F1349F713BFBE6B58E5D007988CD0); - uint256 permutation_vanishing_poly = Polynomial.eval_vanishes_on_last_n_rows( - test_verifier_index.domain_gen, test_verifier_index.domain_size, test_verifier_index.zk_rows, zeta - ); - assertEq(permutation_vanishing_poly, 0x1AEE30761864581115514430C6BD95502BB8DE7CD8C6B608F27BA1C03E80BFFB); - } - - function test_pairing() public { - uint256 out; - bool success; - assembly ("memory-safe") { - let mPtr := mload(0x40) - // numerator.x: 10450774816052210382811887210181442163874109730192600906219949320500597203964 - // numerator.y: 18521096298180617021285508618037348464238256503816928488396642428780381048251 - - mstore(mPtr, 10450774816052210382811887210181442163874109730192600906219949320500597203964) - mstore(add(mPtr, 0x20), 18521096298180617021285508618037348464238256503816928488396642428780381048251) - - mstore(add(mPtr, 0x40), G2_X0) - mstore(add(mPtr, 0x60), G2_X1) - mstore(add(mPtr, 0x80), G2_Y0) - mstore(add(mPtr, 0xa0), G2_Y1) - - // quotient.x: 9858530704171938310986256537342034831937111088881032382034585534859112842050 - // quotient.y: 19600521880859631818156218377306900697695708459153218679905962068366758128270 - mstore(add(mPtr, 0xc0), 9858530704171938310986256537342034831937111088881032382034585534859112842050) - mstore(add(mPtr, 0xe0), 19600521880859631818156218377306900697695708459153218679905962068366758128270) - - // divisor.x0: 5217525816199090147151875345792296976217988874970195155570400922487612750932 - // divisor.x1: 4098672365025679336863860792953497130411351839724326987798196532361282943244 - // divisor.y0: 10756683375305745279332504173914617093624021663287421911939678500359185353540 - // divisor.y1: 20726890104308532209240308176026341121895900966851824792436596208622727684267 - - mstore(add(mPtr, 0x100), 5217525816199090147151875345792296976217988874970195155570400922487612750932) - mstore(add(mPtr, 0x120), 4098672365025679336863860792953497130411351839724326987798196532361282943244) - mstore(add(mPtr, 0x140), 10756683375305745279332504173914617093624021663287421911939678500359185353540) - mstore(add(mPtr, 0x160), 20726890104308532209240308176026341121895900966851824792436596208622727684267) - success := staticcall(sub(gas(), 2000), 8, mPtr, 0x180, 0x00, 0x20) - out := mload(0x00) - } - require(success, "pairing failed"); - bool pairing_ok = (out != 0); - assertEq(pairing_ok, true); - } - - function test_scalar_mul() public { - BN254.G1Point memory point = BN254.G1Point(1, 2); - uint256 scalar = 3; - BN254.G1Point memory result = BN254.scalarMul(point, scalar); - assertEq(result.x, 3353031288059533942658390886683067124040920775575537747144343083137631628272); - assertEq(result.y, 19321533766552368860946552437480515441416830039777911637913418824951667761761); - } - - function test_multiScalarMul() public { - BN254.G1Point memory point1 = BN254.G1Point(1, 2); - BN254.G1Point memory point2 = BN254.G1Point(1, 2); - BN254.G1Point memory point3 = BN254.G1Point(1, 2); - BN254.G1Point memory point4 = BN254.G1Point(1, 2); - uint256 scalar1 = 2; - uint256 scalar2 = 2; - uint256 scalar3 = 2; - uint256 scalar4 = 2; - - BN254.G1Point[] memory bases = new BN254.G1Point[](4); - bases[0] = point1; - bases[1] = point2; - bases[2] = point3; - bases[3] = point4; - - uint256[] memory scalars = new uint256[](4); - scalars[0] = scalar1; - scalars[1] = scalar2; - scalars[2] = scalar3; - scalars[3] = scalar4; - - BN254.G1Point memory result = BN254.multiScalarMul(bases, scalars); - assertEq(result.x, 3932705576657793550893430333273221375907985235130430286685735064194643946083); - assertEq(result.y, 18813763293032256545937756946359266117037834559191913266454084342712532869153); - } -} diff --git a/eth_verifier/test_merkle_path.bin b/eth_verifier/test_merkle_path.bin deleted file mode 100644 index 0e02dd91f9f6e75c8ad9e6a54d50120e63a60837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 XcmZQzzzekS$}%u85|Ec6AkP2*6h{C^ diff --git a/eth_verifier/unit_test_data/pairing_proof.bin b/eth_verifier/unit_test_data/pairing_proof.bin deleted file mode 100644 index e877fe367c1d386d619edffff242507f0fa23f72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 UcmZQzzzZ1h$}%u85s+sD0086w1poj5 diff --git a/eth_verifier/unit_test_data/proof_comms.bin b/eth_verifier/unit_test_data/proof_comms.bin deleted file mode 100644 index 8eb10165d89eda29a2aa143839cfd910a7d4d548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1984 zcmZQzzzdl1$}%u85|C#iAU~=fe*le!AO7$eO+WaJWsbimG_n(3EV;}orANye+`(YpZVITWp NANye+`(dB={VWi92gU#Z diff --git a/eth_verifier/unit_test_data/prover_proof.bin b/eth_verifier/unit_test_data/prover_proof.bin deleted file mode 100644 index 3e0f7ed1dbe30c6021c9b342949c41b503bcd426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5088 zcmeIy!3_W*48*_%#0NUL{tLVgyaiysQ9dJw1mD7GGRl0Gx%&*HAN$x3``8cryxz}d x9{=~^^ZI?=;?wTya~}otL!Q_V``8cr*bn>I5Bt~;``8cr*bn>I5Bs!!&JS2J2sQu! diff --git a/eth_verifier/unit_test_data/verifier_index.bin b/eth_verifier/unit_test_data/verifier_index.bin deleted file mode 100644 index d1bdcdc03055e160037bc9550c020b39c93ee66a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2752 zcmeH|`#aMO7{YY-;UF7DX;|qqRX7?!pegI zO);NdNr~@A&5d8P#GQ8Gu+!O%{qQyQzh8j-9s}<%S)xO*`I~f_t!F?Tc8VVrK*Hip zz`L8bx6%1l>9I=N?D7Zxwr9PCiPV^dm@;)UsBLk!P3TdZJx>nZld;>MZd?=2f{FMoeEq*Q_krjXOpnK9#I^u`?hva zCd|#+oE2oL4j|J=r!OFVuWHbWUORE0_glz-rY9X%auGXj*k&}9UCn+w8wcRP03P4} zvPP5)p*z#C#+7$0e{or>fEJ=W_NFJdS$D&j6DZBdk+(_>Gp%g9Nao!RI`@@ox%3`Y zSRbN{BI+yfS09lZ1!A+FsVgt$m>o&WsUi0NJoQH&9t!0?NJ3cVCKst)nuD{?#!|&# znFi&=B2B-nF1EMN%*tb+M4q_?dP(H7Pb+%{X7nnjs^dq(R$^z47g-a5UygZ7_VHe(B@~=^M4k$Ey_O>D_ z*rm$gJ$K`4q=52W1OLA1+%BrrZ9L2DvGMrs<5L}9yKSP3r3xG3w0K)!-$r>s5|bu0 zdOT?S4Sb@!fc*u&ze z1PXR)j)zz_>Nt zgQvz!iVUD>QEGOB_RyDvyLQvt+P~Cw$>Vk&i$-gO-;B)6fNn3NP9JA#f;k9`LrGb>#DyX}lVqzi$yOJCXC1$-BvMGt zyq3C`tH>d_9vC)API)P1GaTXV`C3nf%}SHe5xcT&&x}?R3XH16NW_ACfw3264m0eu zv{pZ;VEoPMlQu37S$lFN1AZPq`bU|KGS2!VMGBf3(UE7?_^+~zqSVmC`PZLq-z%Dtul+Qp=kes{19Zc+C<_oB_#xAg0psR$%|rS-QHh+@NTU z`_MJ`I`~0SSDExIYyoc+TD|D}nC0&sE(o({Oq3q=#HY!{=!@>qEKiSkqIRY6cqofl z_ds0?YS`@trj7aIJ04oKE%oMgf11Ni_rG|E&X9-^ltn_8H6U2dNJusu@(ZugWvFh} g#7H*?<5xa$&@f%>=cj~pyKnB2XXo4k`PhYj0qHDEA^-pY diff --git a/eth_verifier/unit_test_data/verifier_index.mpk b/eth_verifier/unit_test_data/verifier_index.mpk deleted file mode 100644 index 2eaf3d5448021ae16a87c5de82f6ba9c7f0e49dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2843 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 diff --git a/eth_verifier/verifier_index.mpk b/eth_verifier/verifier_index.mpk deleted file mode 100644 index 8d45c42b9fe8d6b07ee8358242ade970b351c541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2842 zcmcb|Ai69iKQ}Qm@5mYk1qLwS1(6D1CQgE}A;G!jTKN8>i%QK`F7rwa@;Mu9(#*7d z&a_#%0jHA;1TOEL-8*}USDCI=-=ojcm#fn@Rh)Pw%aF7#bBE{Ze1?;;H&;g~a9f}1 zXq^75hU#x+}adak-D z95p2PtMQHo!+#vG_N=#Gp!^wW#SP9Z4+~u17)X|nlbksXwQgzp=0Wn z##&8PRWOx%QK8$b$!1pym*dbD;{I}3gpo|)v4fxY zc^Ch>_QkFFhBEiBqwk%9JudPuT8TrOBFB7=O@Ee%=PCM4&Az+D^~P$;x%rtB@9+El zb=UDXODE#cHaqO00ne19y$yy8yRHjNbVx{#(f;)6z1NGgI?QiotO*A2o2Z_D-0) zg*C2lmBsgU_Y)Pq|LIjN$>e*q^R z^C|Y74))Ho`mZ#tfI9%ywtV~h&PDzL!Uo1~GB=-M(bv-2a;ZQiM^w8)THsnz z$6&6ayJU{rqNFyT3iW#S3TAjTZA;59O3h5qi%-i;%}K!#R|HBmbzG*w0{*~?ihM}8 z9avG6UjlaTfu-O&bovnmMgn>Eh{EGVA}@taE}Z)Ky7hka^&sEktFNopmuS^(y2AbU z#Mzw;M-+1TU5sZL&)>1+$?T7u(-c;v%#`rZp1OGYI?J7JqOOz!Rczr@-dpiZ@&s44 z<$=#15to)y`HUk!LTMLKR>&)AU-oMCAFe$V^)4O|DMdognTrJCE!j~cp#rWS8uV!b4Kw4UkQk+ctTA#OeiZtU=A*Z?)LI5j6V zxg@`+xMeXg0uC&L2p?FDlnPO8U`Y6*>-%wQru+|1m&6|9BPRPl$K-x6YRvlawJRez z98o$fO-lnt?tztHXU1oy6r-B6Ei2}xR!dF)@3Rax6KgD`Z)c~T6x^v1Xy#lTJ9$Re zYPd^R!^0yjzj-yd371*~YPPYg192eX18UGQu1HHwEGaEYEpA>>kXTZZT9gOz)gh>_ s4k7#M@J7^R4Rq@vEP=fl805wAMWuNqnYpR)V80X}+K$SPhXvvR0Mn#jJOBUy diff --git a/kzg_prover/.gitignore b/kzg_prover/.gitignore deleted file mode 100644 index 41f7f362..00000000 --- a/kzg_prover/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -target/ -gates.json -srs.json -index.json -proof_with_public.json diff --git a/kzg_prover/Cargo.lock b/kzg_prover/Cargo.lock deleted file mode 100644 index 796d54ea..00000000 --- a/kzg_prover/Cargo.lock +++ /dev/null @@ -1,1462 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "ahash" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ark-bn254" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea691771ebbb28aea556c044e2e5c5227398d840cee0c34d4d20fa8eb2689e8c" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", -] - -[[package]] -name = "ark-ec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea978406c4b1ca13c2db2373b05cc55429c3575b8b21f1b9ee859aa5b03dd42" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0f78f47537c2f15706db7e98fe64cc1711dbf9def81218194e17239e53e5aa" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.11.2", - "rayon", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd4e5f0bf8285d5ed538d27fab7411f3e297908fd93c62195de8bee3f199e82" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base64" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" - -[[package]] -name = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bumpalo" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cc" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "serde", - "windows-targets", -] - -[[package]] -name = "const-hex" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5104de16b218eddf8e34ffe2f86f74bfa4e61e95a1b89732fccf6325efd0557" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "cpufeatures" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - -[[package]] -name = "darling" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" -dependencies = [ - "darling_core 0.20.3", - "darling_macro 0.20.3", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.39", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" -dependencies = [ - "darling_core 0.20.3", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "deranged" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] - -[[package]] -name = "disjoint-set" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "groupmap" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "rand", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -dependencies = [ - "equivalent", - "hashbrown 0.14.3", - "serde", -] - -[[package]] -name = "internal-tracing" -version = "0.1.0" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "js-sys" -version = "0.3.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "kimchi" -version = "0.1.0" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "blake2", - "disjoint-set", - "groupmap", - "hex", - "internal-tracing", - "itertools", - "mina-curves", - "mina-poseidon", - "num-bigint", - "num-derive", - "num-integer", - "num-traits", - "o1-utils", - "once_cell", - "poly-commitment", - "rand", - "rand_core", - "rayon", - "rmp-serde", - "serde", - "serde_with 1.14.0", - "strum", - "strum_macros", - "thiserror", - "tiny-keccak", - "turshi", -] - -[[package]] -name = "kzg_prover" -version = "0.1.0" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "const-hex", - "hex", - "kimchi", - "mina-poseidon", - "num", - "num-traits", - "o1-utils", - "poly-commitment", - "rmp-serde", - "serde", - "serde_json", - "serde_with 3.4.0", - "serializer", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.150" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mina-curves" -version = "0.1.0" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", -] - -[[package]] -name = "mina-poseidon" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "mina-curves", - "o1-utils", - "once_cell", - "rand", - "rayon", - "serde", - "serde_with 1.14.0", -] - -[[package]] -name = "num" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "num-complex" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with 1.14.0", - "sha2", - "thiserror", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "pest" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "poly-commitment" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "blake2", - "groupmap", - "itertools", - "mina-curves", - "mina-poseidon", - "o1-utils", - "once_cell", - "rand", - "rand_core", - "rayon", - "rmp-serde", - "serde", - "serde_with 1.14.0", - "thiserror", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro2" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" -dependencies = [ - "bitflags", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "unarray", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "rmp" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.192" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.192" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "serde_json" -version = "1.0.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "serde", - "serde_with_macros 1.5.2", -] - -[[package]] -name = "serde_with" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" -dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.1.0", - "serde", - "serde_json", - "serde_with_macros 3.4.0", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "serde_with_macros" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" -dependencies = [ - "darling 0.20.3", - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "serializer" -version = "0.1.0" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "const-hex", - "hex", - "kimchi", - "mina-poseidon", - "num", - "num-traits", - "o1-utils", - "poly-commitment", - "rmp-serde", - "serde", - "serde_json", - "serde_with 3.4.0", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "time" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" -dependencies = [ - "deranged", - "itoa", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" -dependencies = [ - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "turshi" -version = "0.1.0" -dependencies = [ - "ark-ff", - "hex", - "o1-utils", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.39", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" - -[[package]] -name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "zeroize" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] diff --git a/kzg_prover/Cargo.toml b/kzg_prover/Cargo.toml deleted file mode 100644 index df2d1913..00000000 --- a/kzg_prover/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "kzg_prover" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -kimchi = { path = "../verifier_circuit/o1js/src/mina/src/lib/crypto/proof-systems/kimchi", version = "0.1.0", features = ["bn254", "keccak-sponges"] } -o1-utils = { path = "../verifier_circuit/o1js/src/mina/src/lib/crypto/proof-systems/utils", version = "0.1.0" } -poly-commitment = { path = "../verifier_circuit/o1js/src/mina/src/lib/crypto/proof-systems/poly-commitment", version = "0.1.0" } -mina-poseidon = { path = "../verifier_circuit/o1js/src/mina/src/lib/crypto/proof-systems/poseidon", version = "0.1.0" } -serializer = { path = "serializer/" } -ark-bn254 = "0.3.0" -ark-ec = "0.3.0" -ark-ff = "0.3.0" -ark-poly = "0.3.0" -ark-std = "0.3.0" -ark-serialize = "0.3.0" -num-traits = "0.2.17" -rmp-serde = "1.1.2" -serde_json = "1.0.108" -serde = { version = "1.0.192", features = ["derive"] } -num = "0.4.1" -const-hex = "1.10.0" -hex = "0.4.3" -serde_with = "3.4.0" diff --git a/kzg_prover/serializer/Cargo.lock b/kzg_prover/serializer/Cargo.lock deleted file mode 100644 index d8c5c5de..00000000 --- a/kzg_prover/serializer/Cargo.lock +++ /dev/null @@ -1,1419 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ark-bn254" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea691771ebbb28aea556c044e2e5c5227398d840cee0c34d4d20fa8eb2689e8c" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", -] - -[[package]] -name = "ark-ec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea978406c4b1ca13c2db2373b05cc55429c3575b8b21f1b9ee859aa5b03dd42" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0f78f47537c2f15706db7e98fe64cc1711dbf9def81218194e17239e53e5aa" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.11.2", - "rayon", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd4e5f0bf8285d5ed538d27fab7411f3e297908fd93c62195de8bee3f199e82" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bumpalo" -version = "3.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cc" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "serde", - "windows-targets", -] - -[[package]] -name = "const-hex" -version = "1.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba00838774b4ab0233e355d26710fbfc8327a05c017f6dc4873f876d1f79f78" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - -[[package]] -name = "darling" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" -dependencies = [ - "darling_core 0.20.8", - "darling_macro 0.20.8", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.53", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" -dependencies = [ - "darling_core 0.20.8", - "quote", - "syn 2.0.53", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] - -[[package]] -name = "disjoint-set" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" - -[[package]] -name = "either" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "groupmap" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "rand", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" -dependencies = [ - "equivalent", - "hashbrown 0.14.3", - "serde", -] - -[[package]] -name = "internal-tracing" -version = "0.1.0" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" - -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "kimchi" -version = "0.1.0" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "blake2", - "disjoint-set", - "groupmap", - "hex", - "internal-tracing", - "itertools", - "mina-curves", - "mina-poseidon", - "num-bigint", - "num-derive", - "num-integer", - "num-traits", - "o1-utils", - "once_cell", - "poly-commitment", - "rand", - "rand_core", - "rayon", - "rmp-serde", - "serde", - "serde_with 1.14.0", - "strum", - "strum_macros", - "thiserror", - "tiny-keccak", - "turshi", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.153" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "memchr" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" - -[[package]] -name = "mina-curves" -version = "0.1.0" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", -] - -[[package]] -name = "mina-poseidon" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "mina-curves", - "o1-utils", - "once_cell", - "rand", - "rayon", - "serde", - "serde_with 1.14.0", -] - -[[package]] -name = "num" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "num-complex" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with 1.14.0", - "sha2", - "thiserror", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "pest" -version = "2.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "poly-commitment" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "blake2", - "groupmap", - "itertools", - "mina-curves", - "mina-poseidon", - "o1-utils", - "once_cell", - "rand", - "rand_core", - "rayon", - "rmp-serde", - "serde", - "serde_with 1.14.0", - "thiserror", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro2" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" -dependencies = [ - "bitflags", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "unarray", -] - -[[package]] -name = "quote" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - -[[package]] -name = "rmp" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "ryu" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.197" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.197" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.53", -] - -[[package]] -name = "serde_json" -version = "1.0.114" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "serde", - "serde_with_macros 1.5.2", -] - -[[package]] -name = "serde_with" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a" -dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.5", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros 3.7.0", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "serde_with_macros" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655" -dependencies = [ - "darling 0.20.8", - "proc-macro2", - "quote", - "syn 2.0.53", -] - -[[package]] -name = "serializer" -version = "0.1.0" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "const-hex", - "hex", - "kimchi", - "mina-poseidon", - "num", - "num-traits", - "o1-utils", - "poly-commitment", - "rmp-serde", - "serde", - "serde_json", - "serde_with 3.7.0", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thiserror" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.53", -] - -[[package]] -name = "time" -version = "0.3.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "turshi" -version = "0.1.0" -dependencies = [ - "ark-ff", - "hex", - "o1-utils", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.53", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.53", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" - -[[package]] -name = "zeroize" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.53", -] diff --git a/kzg_prover/serializer/Cargo.toml b/kzg_prover/serializer/Cargo.toml deleted file mode 100644 index bad98642..00000000 --- a/kzg_prover/serializer/Cargo.toml +++ /dev/null @@ -1,26 +0,0 @@ -[package] -name = "serializer" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -kimchi = { path = "../../verifier_circuit/o1js/src/mina/src/lib/crypto/proof-systems/kimchi", version = "0.1.0", features = ["bn254", "keccak-sponges"] } -o1-utils = { path = "../../verifier_circuit/o1js/src/mina/src/lib/crypto/proof-systems/utils", version = "0.1.0" } -poly-commitment = { path = "../../verifier_circuit/o1js/src/mina/src/lib/crypto/proof-systems/poly-commitment", version = "0.1.0" } -mina-poseidon = { path = "../../verifier_circuit/o1js/src/mina/src/lib/crypto/proof-systems/poseidon", version = "0.1.0" } -ark-bn254 = "0.3.0" -ark-ec = "0.3.0" -ark-ff = "0.3.0" -ark-poly = "0.3.0" -ark-std = "0.3.0" -ark-serialize = "0.3.0" -num-traits = "0.2.17" -rmp-serde = "1.1.2" -serde_json = "1.0.108" -serde = { version = "1.0.192", features = ["derive"] } -num = "0.4.1" -const-hex = "1.10.0" -hex = "0.4.3" -serde_with = "3.4.0" diff --git a/kzg_prover/serializer/src/implementations/core_types.rs b/kzg_prover/serializer/src/implementations/core_types.rs deleted file mode 100644 index 0fded928..00000000 --- a/kzg_prover/serializer/src/implementations/core_types.rs +++ /dev/null @@ -1,133 +0,0 @@ -use ark_ec::short_weierstrass_jacobian::GroupAffine; -use o1_utils::FieldHelpers; - -use crate::{ - serialize::{EVMSerializable, EVMSerializableType}, - type_aliases::{BN254PolyComm, G1Point, ScalarField}, -}; - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let integer_bytes = self.0.to_be_bytes(); - // pad with zeros or ones from the start until we have 32 bytes: - [ - vec![if self.0 < 0 { 0xFF } else { 0 }; 32 - integer_bytes.len()], - integer_bytes.to_vec(), - ] - .concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let integer_bytes = self.0.to_be_bytes(); - // pad with zeros from the start until we have 32 bytes: - [vec![0; 32 - integer_bytes.len()], integer_bytes.to_vec()].concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let integer_bytes = self.0.to_be_bytes(); - // pad with zeros from the start until we have 32 bytes: - [vec![0; 32 - integer_bytes.len()], integer_bytes.to_vec()].concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let integer_bytes = self.0.to_be_bytes(); - // pad with zeros from the start until we have 32 bytes: - [vec![0; 32 - integer_bytes.len()], integer_bytes.to_vec()].concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - self.0.to_bytes().into_iter().rev().collect() // flip endianness - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let GroupAffine { x, y, infinity, .. } = self.0; - if infinity { - vec![0; 64] - } else { - [ - x.to_bytes().into_iter().rev().collect::>(), // flip endianness - y.to_bytes().into_iter().rev().collect::>(), // flip endianness - ] - .concat() - } - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - // We are assuming that `max_poly_size` is set so no poly gets chunked. - // In this case there's only one point per PolyComm. - // The only commitment that doesn't fulfill this is `t_comm` (the commitment - // to the quotient polynomial), which is chunked into 7 points. - // - // We are also ignoring the shifted point - if self.0.unshifted.len() != 1 { - panic!("tried to serialize a PolyComm without only one unshifted point"); - } - EVMSerializableType(self.0.unshifted[0]).to_bytes() - } -} - -impl EVMSerializable for EVMSerializableType> { - fn to_bytes(self) -> Vec { - self.0 - .iter() - .map(|x| EVMSerializableType(x.clone()).to_bytes()) - .flatten() - .collect::>() - } -} - -impl EVMSerializable for EVMSerializableType> -where - EVMSerializableType: EVMSerializable, -{ - fn to_bytes(self) -> Vec { - if let Some(data) = self.0 { - EVMSerializableType(data).to_bytes() - } else { - vec![] - } - } -} - -#[cfg(test)] -mod test { - use crate::type_aliases::BaseField; - - use super::*; - - #[test] - fn test_scalar_field_ser() { - let scalar = ScalarField::from(1); - let serialized = EVMSerializableType(scalar).to_bytes(); - assert_eq!(serialized, vec![vec![0; 31], vec![1]].concat()); - } - - #[test] - fn test_g1_point_ser() { - let point = G1Point::new(BaseField::from(1), BaseField::from(2), false); - let serialized = EVMSerializableType(point).to_bytes(); - assert_eq!( - serialized, - vec![vec![0; 31], vec![1], vec![0; 31], vec![2]].concat() - ); - } - - #[test] - fn test_g1_point_at_infinity_ser() { - let point = G1Point::new(BaseField::from(1), BaseField::from(2), true); - let serialized = EVMSerializableType(point).to_bytes(); - assert_eq!(serialized, vec![0; 64]); - } -} diff --git a/kzg_prover/serializer/src/implementations/lagrange_bases.rs b/kzg_prover/serializer/src/implementations/lagrange_bases.rs deleted file mode 100644 index 321f3623..00000000 --- a/kzg_prover/serializer/src/implementations/lagrange_bases.rs +++ /dev/null @@ -1,23 +0,0 @@ -use crate::{ - serialize::{EVMSerializable, EVMSerializableType}, - type_aliases::BN254PolyComm, -}; - -impl EVMSerializable for EVMSerializableType> { - fn to_bytes(self) -> Vec { - self.0 - .into_iter() - .flat_map(|p| EVMSerializableType(p).to_bytes()) - .collect() - } -} - -impl EVMSerializable for EVMSerializableType<&mut Vec> { - fn to_bytes(self) -> Vec { - self.0 - .clone() - .into_iter() - .flat_map(|p| EVMSerializableType(p).to_bytes()) - .collect() - } -} diff --git a/kzg_prover/serializer/src/implementations/mod.rs b/kzg_prover/serializer/src/implementations/mod.rs deleted file mode 100644 index 6e976c82..00000000 --- a/kzg_prover/serializer/src/implementations/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub mod core_types; -pub mod prover_proof; -pub mod lagrange_bases; -pub mod verifier_index; -pub mod polish_token; diff --git a/kzg_prover/serializer/src/implementations/polish_token.rs b/kzg_prover/serializer/src/implementations/polish_token.rs deleted file mode 100644 index b10d9e20..00000000 --- a/kzg_prover/serializer/src/implementations/polish_token.rs +++ /dev/null @@ -1,169 +0,0 @@ -use kimchi::circuits::{ - expr::{Column, PolishToken, Variable}, - gate::{CurrOrNext, GateType}, - lookup::lookups::LookupPattern, -}; - -use crate::{ - serialize::{EVMSerializable, EVMSerializableType}, - type_aliases::BN254PolishToken, - utils::BN254PolishLiteralTokens, -}; - -impl EVMSerializable for EVMSerializableType> { - fn to_bytes(self) -> Vec { - // The idea is to have different bytes arrays. The first one - // will contain every token variant, then we'll have other - // arrays for the data associated to each variant, if any. - - let mut encoded_variants: Vec = vec![]; - - // encoded data: - let mut encoded_mds = vec![]; - let mut encoded_pows = vec![]; - let mut encoded_offsets = vec![]; - let mut encoded_loads = vec![]; - - for token in self.0.iter() { - // We'll save one byte per token to identify each variant. The - // value of this byte will be `token_id`. - let mut token_id: u8; - - match token { - PolishToken::Alpha => token_id = 0, - PolishToken::Beta => token_id = 1, - PolishToken::Gamma => token_id = 2, - PolishToken::JointCombiner => token_id = 3, - PolishToken::EndoCoefficient => token_id = 4, - PolishToken::Mds { row, col } => { - token_id = 5; - encoded_mds.extend(EVMSerializableType(*row).to_bytes()); - encoded_mds.extend(EVMSerializableType(*col).to_bytes()); - } - PolishToken::Literal(_) => { - token_id = 6; - // literal data will be serialized separately - } - PolishToken::Dup => token_id = 7, - PolishToken::Pow(pow) => { - token_id = 8; - encoded_pows.extend(EVMSerializableType(*pow).to_bytes()); - } - PolishToken::Add => token_id = 9, - PolishToken::Mul => token_id = 10, - PolishToken::Sub => token_id = 11, - PolishToken::VanishesOnZeroKnowledgeAndPreviousRows => token_id = 12, - PolishToken::UnnormalizedLagrangeBasis(offset) => { - token_id = 13; - encoded_offsets.extend(EVMSerializableType(*offset).to_bytes()); - } - PolishToken::Store => token_id = 14, - PolishToken::Load(index) => { - token_id = 15; - encoded_loads.extend(EVMSerializableType(*index).to_bytes()); - } - PolishToken::Cell(Variable { col, row }) => { - token_id = 16; - // Cell variants have a more complex structure, because of - // nested enums. We'll encode its id in a different way. - // - // A cell variant represents a variable from a constraint, by specifying - // its column and relative row. - // - // We'll use the most significant bit of the id for encoding the row: - let row_flag = match row { - CurrOrNext::Curr => 0, - CurrOrNext::Next => 1, - }; - token_id |= row_flag << 7; - - // then we encode the column as if they were different - // polish token variants (effectively flattening out the - // nested enums), we just need to add to the initialized token: - token_id += match col { - Column::Witness(i) => *i, // i <= 14 - Column::Z => 15, - Column::LookupSorted(i) => 16 + i, // i <= 4 - Column::LookupAggreg => 21, - Column::LookupTable => 22, - Column::LookupKindIndex(LookupPattern::Xor) => 23, - Column::LookupKindIndex(LookupPattern::Lookup) => 24, - Column::LookupKindIndex(LookupPattern::RangeCheck) => 25, - Column::LookupKindIndex(LookupPattern::ForeignFieldMul) => 26, - Column::LookupRuntimeSelector => 27, - Column::LookupRuntimeTable => 28, - Column::Index(GateType::Zero) => 29, - Column::Index(GateType::Generic) => 30, - Column::Index(GateType::Poseidon) => 31, - Column::Index(GateType::CompleteAdd) => 32, - Column::Index(GateType::VarBaseMul) => 33, - Column::Index(GateType::EndoMul) => 34, - Column::Index(GateType::EndoMulScalar) => 35, - Column::Index(GateType::Lookup) => 36, - Column::Index(GateType::RangeCheck0) => 37, - Column::Index(GateType::RangeCheck1) => 38, - Column::Index(GateType::ForeignFieldAdd) => 39, - Column::Index(GateType::ForeignFieldMul) => 40, - Column::Index(GateType::Xor16) => 41, - Column::Index(GateType::Rot64) => 42, - Column::Coefficient(i) => 43 + i, // i <= 14 - Column::Permutation(i) => 58 + i, // i <= 5 - _ => unimplemented!(), - } as u8 - } - _ => unimplemented!(), - }; - encoded_variants.push(token_id); - } - - // Pad with zeros until bytes are multiples of 32 - if encoded_variants.len() % 32 != 0 { - let new_len = (encoded_variants.len() / 32 + 1) * 32; - encoded_variants.resize(new_len, 0); - } - - let encoded_total_variants_len = EVMSerializableType(self.0.len()).to_bytes(); - // length in words - let encoded_variants_len = EVMSerializableType(encoded_variants.len() / 32).to_bytes(); - let encoded_mds_len = EVMSerializableType(encoded_mds.len() / 32).to_bytes(); - let encoded_pows_len = EVMSerializableType(encoded_pows.len() / 32).to_bytes(); - let encoded_loads_len = EVMSerializableType(encoded_loads.len() / 32).to_bytes(); - let encoded_offsets_len = EVMSerializableType(encoded_offsets.len() / 32).to_bytes(); - - [ - encoded_total_variants_len, - // variants - encoded_variants_len, - encoded_variants, - // mds - encoded_mds_len, - encoded_mds, - // pows - encoded_pows_len, - encoded_pows, - // loads - encoded_loads_len, - encoded_loads, - // offsets - encoded_offsets_len, - encoded_offsets, - ] - .concat() - } -} - -impl EVMSerializable for EVMSerializableType> { - fn to_bytes(self) -> Vec { - // encoded data: - let mut encoded_literals = vec![]; - - for token_wrapped in self.0.iter() { - if let PolishToken::Literal(literal) = token_wrapped.0 { - encoded_literals.extend(EVMSerializableType(literal).to_bytes()); - }; - } - - let encoded_literals_len = EVMSerializableType(encoded_literals.len() / 32).to_bytes(); - [encoded_literals_len, encoded_literals].concat() - } -} diff --git a/kzg_prover/serializer/src/implementations/prover_proof.rs b/kzg_prover/serializer/src/implementations/prover_proof.rs deleted file mode 100644 index c545c473..00000000 --- a/kzg_prover/serializer/src/implementations/prover_proof.rs +++ /dev/null @@ -1,231 +0,0 @@ -use kimchi::proof::PointEvaluations; - -use crate::{ - serialize::{EVMSerializable, EVMSerializableType}, - type_aliases::{ - BN254PairingProof, BN254ProofEvaluations, BN254ProverCommitments, BN254ProverProof, - ScalarField, - }, -}; - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let BN254PairingProof { quotient, blinding } = self.0; - let quotient = EVMSerializableType(quotient); - let blinding = EVMSerializableType(blinding); - [quotient.to_bytes(), blinding.to_bytes()].concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let comms = self.0; - - // There's only one optional field (LookupCommitments) but it has an - // optional field in it and two non-optional, so we'll flat out - // LookupCommitments and define only two flags. - let mut optional_field_flags_encoded = vec![0; 32]; // allocate a word for them - // The first flag will indicate if LookupCommitments is Some: - if let Some(lookup_comms) = &comms.lookup { - optional_field_flags_encoded[31] |= 0b01; - // the other flag if lookup_comms.runtime is Some: - if lookup_comms.runtime.is_some() { - optional_field_flags_encoded[31] |= 0b10; - } - } - - // Then we encode every commitment. We'll flat out LookupCommitments: - - let mut encoded_comms = vec![ - comms - .w_comm - .into_iter() - .flat_map(|p| EVMSerializableType(p).to_bytes()) - .collect(), - EVMSerializableType(comms.z_comm).to_bytes(), - EVMSerializableType(comms.t_comm.unshifted[0]).to_bytes(), - EVMSerializableType(comms.t_comm.unshifted[1]).to_bytes(), - EVMSerializableType(comms.t_comm.unshifted[2]).to_bytes(), - EVMSerializableType(comms.t_comm.unshifted[3]).to_bytes(), - EVMSerializableType(comms.t_comm.unshifted[4]).to_bytes(), - EVMSerializableType(comms.t_comm.unshifted[5]).to_bytes(), - EVMSerializableType(comms.t_comm.unshifted[6]).to_bytes(), - ] - .concat(); - if let Some(lookup_comms) = comms.lookup { - // `sorted` contains an unspecified amount of commitments, so - // first we'll encode the length as a 256 bit integer: - let sorted_len_bytes = lookup_comms.sorted.len().to_be_bytes(); - // pad with zeros and push bytes: - encoded_comms.extend(vec![0; 32 - sorted_len_bytes.len()]); - encoded_comms.extend(sorted_len_bytes); - - encoded_comms.extend( - lookup_comms - .sorted - .into_iter() - .flat_map(|p| EVMSerializableType(p).to_bytes()) - .collect::>(), - ); - encoded_comms.extend(EVMSerializableType(lookup_comms.aggreg).to_bytes()); - if let Some(runtime) = lookup_comms.runtime { - encoded_comms.extend(EVMSerializableType(runtime).to_bytes()); - } - } - - [optional_field_flags_encoded, encoded_comms].concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let evals = self.0; - - // First construct a bitmap, where every bit will be a flag that indicates if - // a field is Some or None: - let mut optional_field_flags_encoded = vec![0; 32]; - let optional_field_flags = [ - &evals.public, - &evals.range_check0_selector, - &evals.range_check1_selector, - &evals.foreign_field_add_selector, - &evals.foreign_field_mul_selector, - &evals.xor_selector, - &evals.rot_selector, - &evals.lookup_aggregation, - &evals.lookup_table, - &evals.lookup_sorted[0].clone(), - &evals.lookup_sorted[1].clone(), - &evals.lookup_sorted[2].clone(), - &evals.lookup_sorted[3].clone(), - &evals.lookup_sorted[4].clone(), - &evals.runtime_lookup_table, - &evals.runtime_lookup_table_selector, - &evals.xor_lookup_selector, - &evals.lookup_gate_lookup_selector, - &evals.range_check_lookup_selector, - &evals.foreign_field_mul_lookup_selector, - ] - .map(|field| if field.is_some() { 1 } else { 0 }); - for (i, mut flag) in optional_field_flags.into_iter().enumerate() { - flag <<= i % 8; // first flags are positioned on least significant bits - optional_field_flags_encoded[i / 8] |= flag; - } - - // Then we encode every eval. - // - // We should have one evaluation for each poly if `max_poly_size` is set - // accordingly and no polynomial gets chunked. - // - // An evaluation is composed of two scalars. So encoding the evaluations means - // to concatenate each pair of scalars in a byte array. - - let encode_eval = |eval: PointEvaluations>| { - vec![ - EVMSerializableType(eval.zeta[0]).to_bytes(), - EVMSerializableType(eval.zeta_omega[0]).to_bytes(), - ] - .into_iter() - .flatten() - .collect() - }; - let encode_eval_option = |eval: Option>>| { - if let Some(eval) = eval { - encode_eval(eval) - } else { - vec![] - } - }; - - let encoded_evals: Vec = vec![ - evals.w.into_iter().flat_map(encode_eval).collect(), - encode_eval(evals.z), - evals.s.into_iter().flat_map(encode_eval).collect(), - evals - .coefficients - .into_iter() - .flat_map(encode_eval) - .collect(), - encode_eval(evals.generic_selector), - encode_eval(evals.poseidon_selector), - encode_eval(evals.complete_add_selector), - encode_eval(evals.mul_selector), - encode_eval(evals.emul_selector), - encode_eval(evals.endomul_scalar_selector), - encode_eval_option(evals.public), - encode_eval_option(evals.range_check0_selector), - encode_eval_option(evals.range_check1_selector), - encode_eval_option(evals.foreign_field_add_selector), - encode_eval_option(evals.foreign_field_mul_selector), - encode_eval_option(evals.xor_selector), - encode_eval_option(evals.rot_selector), - encode_eval_option(evals.lookup_aggregation), - encode_eval_option(evals.lookup_table), - evals - .lookup_sorted - .into_iter() - .flat_map(encode_eval_option) - .collect(), - encode_eval_option(evals.runtime_lookup_table), - encode_eval_option(evals.runtime_lookup_table_selector), - encode_eval_option(evals.xor_lookup_selector), - encode_eval_option(evals.lookup_gate_lookup_selector), - encode_eval_option(evals.range_check_lookup_selector), - encode_eval_option(evals.foreign_field_mul_lookup_selector), - ] - .concat(); - - [ - optional_field_flags_encoded.into_iter().rev().collect(), - encoded_evals, - ] - .concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let BN254ProverProof { - commitments, - proof, - evals, - ft_eval1, - .. - } = self.0; - - [ - EVMSerializableType(commitments).to_bytes(), - EVMSerializableType(proof).to_bytes(), - EVMSerializableType(evals).to_bytes(), - EVMSerializableType(ft_eval1).to_bytes(), - ].concat() - } -} - -#[cfg(test)] -mod test { - use crate::type_aliases::{BaseField, G1Point, ScalarField}; - - use super::*; - - #[test] - fn test_pairing_proof_ser() { - let pairing_proof = BN254PairingProof { - quotient: G1Point::new(BaseField::from(1), BaseField::from(2), false), - blinding: ScalarField::from(1), - }; - let serialized = EVMSerializableType(pairing_proof).to_bytes(); - assert_eq!( - serialized, - vec![ - vec![0; 31], - vec![1], - vec![0; 31], - vec![2], - vec![0; 31], - vec![1] - ] - .concat() - ); - } -} diff --git a/kzg_prover/serializer/src/implementations/verifier_index.rs b/kzg_prover/serializer/src/implementations/verifier_index.rs deleted file mode 100644 index c308b805..00000000 --- a/kzg_prover/serializer/src/implementations/verifier_index.rs +++ /dev/null @@ -1,168 +0,0 @@ -use ark_poly::EvaluationDomain; -use kimchi::circuits::lookup::lookups::LookupInfo; - -use crate::{ - serialize::{EVMSerializable, EVMSerializableType}, - type_aliases::{BN254LookupVerifierIndex, BN254VerifierIndex}, - utils::encode_bools_to_uint256_flags_bytes, -}; - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let info = self.0; - - let encoded_max_per_row = EVMSerializableType(info.max_per_row).to_bytes(); - let encoded_max_joint_size = EVMSerializableType(info.max_joint_size).to_bytes(); - - [encoded_max_per_row, encoded_max_joint_size].concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let index = self.0; - - // First construct a bitmap, where every bit will be a flag that indicates if - // a field is Some or None: - let optional_field_bools = [ - &index.lookup_selectors.xor, - &index.lookup_selectors.lookup, - &index.lookup_selectors.range_check, - &index.lookup_selectors.ffmul, - &index.table_ids, - &index.runtime_tables_selector, - ] - .map(Option::is_some); - let encoded_optional_field_flags = - encode_bools_to_uint256_flags_bytes(&optional_field_bools); - - if index.lookup_table.len() != 1 { - panic!("LookupVerifierIndex's lookup table isn't of size 1"); - } - let encoded_lookup_table = EVMSerializableType(index.lookup_table[0].clone()).to_bytes(); - - // we flat out selectors - let encoded_xor = EVMSerializableType(index.lookup_selectors.xor).to_bytes(); - let encoded_lookup = EVMSerializableType(index.lookup_selectors.lookup).to_bytes(); - let encoded_range_check = - EVMSerializableType(index.lookup_selectors.range_check).to_bytes(); - let encoded_ffmul = EVMSerializableType(index.lookup_selectors.ffmul).to_bytes(); - - let encoded_table_ids = EVMSerializableType(index.table_ids).to_bytes(); - let encoded_lookup_info = EVMSerializableType(index.lookup_info).to_bytes(); - let encoded_runtime_tables_selector = - EVMSerializableType(index.runtime_tables_selector).to_bytes(); - - [ - encoded_optional_field_flags, - encoded_lookup_table, - encoded_lookup_info, - encoded_xor, - encoded_lookup, - encoded_range_check, - encoded_ffmul, - encoded_table_ids, - encoded_runtime_tables_selector, - ] - .concat() - } -} - -impl EVMSerializable for EVMSerializableType { - fn to_bytes(self) -> Vec { - let index = self.0; - - // First construct a bitmap, where every bit will be a flag that indicates if - // a field is Some or None: - let optional_field_bools = [ - &index.range_check0_comm, - &index.range_check1_comm, - &index.foreign_field_add_comm, - &index.foreign_field_mul_comm, - &index.xor_comm, - &index.rot_comm, - ] - .into_iter() - .map(Option::is_some) - .chain([index.lookup_index.is_some()]) - .collect::>(); - let encoded_optional_field_flags = - encode_bools_to_uint256_flags_bytes(&optional_field_bools); - - // Encode domain - let mut encoded_domain = vec![]; - encoded_domain.extend(EVMSerializableType(index.domain.size()).to_bytes()); - encoded_domain.extend(EVMSerializableType(index.domain.group_gen).to_bytes()); - - // Encode integers - let encoded_max_poly_size = EVMSerializableType(index.max_poly_size).to_bytes(); - let encoded_zk_rows = EVMSerializableType(index.zk_rows).to_bytes(); - let encoded_public_len = EVMSerializableType(index.public).to_bytes(); - - // Encode commitments - let encoded_sigma_comm = index - .sigma_comm - .into_iter() - .flat_map(|comm| EVMSerializableType(comm).to_bytes()) - .collect::>(); - let encoded_coefficients_comm = index - .coefficients_comm - .into_iter() - .flat_map(|comm| EVMSerializableType(comm).to_bytes()) - .collect::>(); - let encoded_generic_comm = EVMSerializableType(index.generic_comm).to_bytes(); - let encoded_psm_comm = EVMSerializableType(index.psm_comm).to_bytes(); - let encoded_complete_add_comm = EVMSerializableType(index.complete_add_comm).to_bytes(); - let encoded_mul_comm = EVMSerializableType(index.mul_comm).to_bytes(); - let encoded_emul_comm = EVMSerializableType(index.emul_comm).to_bytes(); - let encoded_endomul_scalar_comm = EVMSerializableType(index.endomul_scalar_comm).to_bytes(); - - // Encode optional commitments (will encode to empty vector if None) - let encoded_range_check0_comm = EVMSerializableType(index.range_check0_comm).to_bytes(); - let encoded_range_check1_comm = EVMSerializableType(index.range_check1_comm).to_bytes(); - let encoded_foreign_field_add_comm = - EVMSerializableType(index.foreign_field_add_comm).to_bytes(); - let encoded_foreign_field_mul_comm = - EVMSerializableType(index.foreign_field_mul_comm).to_bytes(); - let encoded_xor_comm = EVMSerializableType(index.xor_comm).to_bytes(); - let encoded_rot_comm = EVMSerializableType(index.rot_comm).to_bytes(); - - // Encoded remaining scalars - let encoded_shift = index - .shift - .into_iter() - .flat_map(|comm| EVMSerializableType(comm).to_bytes()) - .collect(); - let encoded_w = EVMSerializableType(index.w.clone().into_inner()).to_bytes(); - let encoded_endo = EVMSerializableType(index.endo).to_bytes(); - - let encoded_lookup_index = EVMSerializableType(index.lookup_index).to_bytes(); - - [ - encoded_optional_field_flags, - encoded_domain, - encoded_max_poly_size, - encoded_zk_rows, - encoded_public_len, - encoded_sigma_comm, - encoded_coefficients_comm, - encoded_generic_comm, - encoded_psm_comm, - encoded_complete_add_comm, - encoded_mul_comm, - encoded_emul_comm, - encoded_endomul_scalar_comm, - encoded_shift, - encoded_w, - encoded_endo, - encoded_range_check0_comm, - encoded_range_check1_comm, - encoded_foreign_field_add_comm, - encoded_foreign_field_mul_comm, - encoded_xor_comm, - encoded_rot_comm, - encoded_lookup_index, - ] - .concat() - } -} diff --git a/kzg_prover/serializer/src/lib.rs b/kzg_prover/serializer/src/lib.rs deleted file mode 100644 index 8dbe18ff..00000000 --- a/kzg_prover/serializer/src/lib.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod serialize; -pub mod type_aliases; -pub mod implementations; -pub mod utils; diff --git a/kzg_prover/serializer/src/main.rs b/kzg_prover/serializer/src/main.rs deleted file mode 100644 index 2c1e3ddc..00000000 --- a/kzg_prover/serializer/src/main.rs +++ /dev/null @@ -1,110 +0,0 @@ -use std::fs; - -use kimchi::{ - circuits::wires::{COLUMNS, PERMUTS}, - proof::{LookupCommitments, PointEvaluations}, -}; -use serializer::{ - serialize::{EVMSerializable, EVMSerializableType}, - type_aliases::{ - BN254PairingProof, BN254PolyComm, BN254ProofEvaluations, BN254ProverCommitments, BN254ProverProof, BN254VerifierIndex, BaseField, G1Point, ScalarField - }, -}; - -fn main() { - generate_solidity_test_data(); -} - -fn generate_solidity_test_data() { - // pairing proof - let pairing_proof = BN254PairingProof { - quotient: G1Point::new(BaseField::from(1), BaseField::from(2), false), - blinding: ScalarField::from(1), - }; - - // proof evals - let gen_test_eval = || PointEvaluations { - zeta: vec![ScalarField::from(1)], - zeta_omega: vec![ScalarField::from(42)], - }; - let proof_evals = BN254ProofEvaluations { - public: Some(gen_test_eval()), - w: [0; COLUMNS].map(|_| gen_test_eval()), - z: gen_test_eval(), - s: [0; PERMUTS - 1].map(|_| gen_test_eval()), - coefficients: [0; 15].map(|_| gen_test_eval()), - generic_selector: gen_test_eval(), - poseidon_selector: gen_test_eval(), - complete_add_selector: gen_test_eval(), - mul_selector: gen_test_eval(), - emul_selector: gen_test_eval(), - endomul_scalar_selector: gen_test_eval(), - - range_check0_selector: Some(gen_test_eval()), - range_check1_selector: None, - foreign_field_add_selector: Some(gen_test_eval()), - foreign_field_mul_selector: None, - xor_selector: None, - rot_selector: None, - lookup_aggregation: None, - lookup_table: None, - lookup_sorted: [0; 5].map(|_| None), - runtime_lookup_table: None, - runtime_lookup_table_selector: None, - xor_lookup_selector: None, - lookup_gate_lookup_selector: None, - range_check_lookup_selector: None, - foreign_field_mul_lookup_selector: None, - }; - - // proof commitments - let gen_test_comm = || BN254PolyComm { - unshifted: vec![G1Point::new(BaseField::from(1), BaseField::from(2), false)], - shifted: None, - }; - let proof_comms = BN254ProverCommitments { - w_comm: [0; COLUMNS].map(|_| gen_test_comm()), - z_comm: gen_test_comm(), - t_comm: BN254PolyComm { - unshifted: vec![G1Point::new(BaseField::from(1), BaseField::from(2), false); 7], - shifted: None, - }, - lookup: Some(LookupCommitments { - sorted: vec![gen_test_comm(); 5], - aggreg: gen_test_comm(), - runtime: Some(gen_test_comm()), - }), - }; - - // prover proof - let prover_proof = BN254ProverProof { - commitments: proof_comms.clone(), - proof: pairing_proof.clone(), - evals: proof_evals.clone(), - ft_eval1: ScalarField::from(10), - prev_challenges: Vec::new(), - }; - - // TODO: verifier index test - - fs::write( - "../../eth_verifier/unit_test_data/pairing_proof.bin", - EVMSerializableType(pairing_proof).to_bytes(), - ) - .unwrap(); - fs::write( - "../../eth_verifier/unit_test_data/proof_evals.bin", - EVMSerializableType(proof_evals).to_bytes(), - ) - .unwrap(); - fs::write( - "../../eth_verifier/unit_test_data/proof_comms.bin", - EVMSerializableType(proof_comms).to_bytes(), - ) - .unwrap(); - fs::write( - "../../eth_verifier/unit_test_data/prover_proof.bin", - EVMSerializableType(prover_proof).to_bytes(), - ) - .unwrap(); -} diff --git a/kzg_prover/serializer/src/serialize.rs b/kzg_prover/serializer/src/serialize.rs deleted file mode 100644 index 3853d255..00000000 --- a/kzg_prover/serializer/src/serialize.rs +++ /dev/null @@ -1,9 +0,0 @@ -/// Newtype for types that can be serialized into bytes and sent directly to -/// smart contract functions of the verifier. -pub struct EVMSerializableType(pub T); - -/// Trait for types that can be serialized into bytes and sent directly to -/// smart contract functions of the verifier. -pub trait EVMSerializable { - fn to_bytes(self) -> Vec; -} diff --git a/kzg_prover/serializer/src/type_aliases.rs b/kzg_prover/serializer/src/type_aliases.rs deleted file mode 100644 index 617adc13..00000000 --- a/kzg_prover/serializer/src/type_aliases.rs +++ /dev/null @@ -1,23 +0,0 @@ -use ark_ec::short_weierstrass_jacobian::GroupAffine; -use kimchi::{ - circuits::{expr::PolishToken, lookup::index::LookupSelectors}, proof::{PointEvaluations, ProofEvaluations, ProverCommitments, ProverProof}, verifier_index::{LookupVerifierIndex, VerifierIndex} -}; -use poly_commitment::{pairing_proof::PairingProof, PolyComm}; - -pub type ScalarField = ark_bn254::Fr; -pub type BaseField = ark_bn254::Fq; - -pub type G1Point = GroupAffine; - -pub type BN254PolyComm = PolyComm; - -pub type BN254PairingProof = PairingProof>; -pub type BN254ProofEvaluations = ProofEvaluations>>; -pub type BN254ProverCommitments = ProverCommitments; -pub type BN254ProverProof = ProverProof; - -pub type BN254VerifierIndex = VerifierIndex; -pub type BN254LookupVerifierIndex = LookupVerifierIndex; -pub type BN254LookupSelectors = LookupSelectors; - -pub type BN254PolishToken = PolishToken; diff --git a/kzg_prover/serializer/src/utils.rs b/kzg_prover/serializer/src/utils.rs deleted file mode 100644 index 38de9014..00000000 --- a/kzg_prover/serializer/src/utils.rs +++ /dev/null @@ -1,19 +0,0 @@ -use crate::type_aliases::BN254PolishToken; - -pub struct BN254PolishLiteralTokens(pub BN254PolishToken); - -/// Returns the bytes corresponding to a 256 bit integer whose bits -/// are mapped to `bools` (1 for true, 0 for false). -pub fn encode_bools_to_uint256_flags_bytes(bools: &[bool]) -> Vec { - let mut flags_encoded = vec![0; 32]; - for (i, mut flag) in bools - .iter() - .map(|b| if *b { 1 } else { 0 }) - .enumerate() - { - flag <<= i % 8; // first flags are positioned on least significant bits - flags_encoded[i / 8] |= flag; - } - flags_encoded.reverse(); - flags_encoded -} diff --git a/kzg_prover/src/lib.rs b/kzg_prover/src/lib.rs deleted file mode 100644 index 26fac246..00000000 --- a/kzg_prover/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod misc_tests; -pub mod sponge_tests; diff --git a/kzg_prover/src/main.rs b/kzg_prover/src/main.rs deleted file mode 100644 index 3dc55e6d..00000000 --- a/kzg_prover/src/main.rs +++ /dev/null @@ -1,975 +0,0 @@ -mod snarky_gate; - -use std::{array, collections::HashMap, fs, ops::Neg, sync::Arc}; - -use ark_bn254::{G1Affine, G2Affine, Parameters}; -use ark_ec::{ - bn::Bn, msm::VariableBaseMSM, short_weierstrass_jacobian::GroupAffine, AffineCurve, - ProjectiveCurve, -}; -use ark_ff::{field_new, BigInteger256, Field, PrimeField}; -use ark_poly::{ - univariate::DensePolynomial, EvaluationDomain, Evaluations, Polynomial, Radix2EvaluationDomain, - UVPolynomial, -}; -use ark_serialize::{CanonicalSerialize, SerializationError}; -use ark_std::{ - rand::{rngs::StdRng, SeedableRng}, - UniformRand, -}; -use kimchi::{ - circuits::{ - constraints::ConstraintSystem, - domains::EvaluationDomains, - expr::{Column, Constants, ExprError, Linearization, PolishToken, Variable}, - gate::{CircuitGate, CurrOrNext, GateType}, - lookup::lookups::LookupPattern, - polynomials::{ - generic::testing::{create_circuit, fill_in_witness}, - permutation::eval_vanishes_on_last_n_rows, - range_check, - }, - wires::{Wire, COLUMNS}, - }, - curve::KimchiCurve, - groupmap::*, - keccak_sponge::{Keccak256FqSponge, Keccak256FrSponge}, - o1_utils::{foreign_field::BigUintForeignFieldHelpers, BigUintFieldHelpers}, - proof::{PointEvaluations, ProofEvaluations, ProverProof}, - prover_index::ProverIndex, - verifier::{batch_verify, to_batch, Context}, -}; -use mina_poseidon::dummy_values::kimchi_dummy; -use num::{bigint::RandBigInt, BigUint}; -use num_traits::{One, Zero}; -use o1_utils::FieldHelpers; -use poly_commitment::{ - commitment::{ - combine_commitments, combine_evaluations, BatchEvaluationProof, CommitmentCurve, Evaluation, - }, - evaluation_proof::DensePolynomialOrEvaluations, - pairing_proof::{PairingProof, PairingSRS}, - srs::SRS, - PolyComm, SRS as _, -}; -use serde::{ser::SerializeStruct, Serialize}; -use serde_json::Value; -use serializer::{ - serialize::{EVMSerializable, EVMSerializableType}, - type_aliases::{BN254PolishToken, BN254ProofEvaluations}, - utils::BN254PolishLiteralTokens, -}; -use snarky_gate::SnarkyGate; - -type BaseField = ark_bn254::Fq; -type ScalarField = ark_bn254::Fr; -type G1 = GroupAffine; - -type KeccakFqSponge = Keccak256FqSponge; -type KeccakFrSponge = Keccak256FrSponge; - -type KZGProof = PairingProof>; - -fn main() { - // generate_test_proof_for_demo(); - //generate_test_proof(); - generate_proof(); - // generate_test_proof_for_evm_verifier(); -} - -fn generate_proof() { - let (proof, public_input): (ProverProof, Vec<[u64; 4]>) = - serde_json::from_str(&fs::read_to_string("./proof_with_public.json").unwrap()).unwrap(); - - let index: ProverIndex = - serde_json::from_str(&fs::read_to_string("./index.json").unwrap()).unwrap(); - println!("domain size: {}", index.cs.domain.d1.size); - - let proof_hash = ark_bn254::Fr::from_le_bytes_mod_order( - &serde_json::from_str::<[u8; 32]>(&fs::read_to_string("./proof_hash.json").unwrap()) - .unwrap(), - ); - - let (_endo_q, endo_r) = G1::endos(); - println!("cs endo: {}", endo_r); // ProverIndex::create() sets cs endo to endo_r - - // FIXME: this is hacky, this should be optimized to avoid cloning - // This seed (42) is also used for generating a trusted setup in Solidity. - let x = ark_bn254::Fr::from(42); - let mut srs = PairingSRS::create(x, index.cs.domain.d1.size as usize); // size is 8192 - srs.full_srs.add_lagrange_basis(index.cs.domain.d1); - - let index: ProverIndex = - ProverIndex::create(index.cs.clone(), index.cs.endo, Arc::new(srs)); - println!( - "lagrange basis len: {:?}", - index - .srs - .full_srs - .get_lagrange_basis(index.cs.domain.d1.size()) - .unwrap() - .len() - ); - let verifier_index = index.verifier_index(); - let domain_size = index.cs.domain.d1.size(); - - println!( - "verifier_index digest: {}", - verifier_index.digest::() - ); - - // The verifier circuit has only one public input - let public_input_vec: Vec<_> = public_input - .iter() - .map(|&p_i| ark_bn254::Fr::new(BigInteger256::new(p_i))) - .collect(); - let public_input = public_input_vec.first().unwrap(); - println!("public input: {}", public_input.to_hex()); - - // Partial verification - let agg_proof = to_batch::( - &verifier_index, - &proof, - &public_input_vec, - ) - .unwrap(); - - // Final verify - let BatchEvaluationProof { - sponge: _, - evaluations, - evaluation_points, - polyscale, - evalscale: _, - opening, - combined_inner_product: _, - } = agg_proof; - if !opening.verify(&index.srs, &evaluations, polyscale, &evaluation_points) { - panic!(); - } - - let precomputed_tokens = precompute_evaluation( - &index.linearization.constant_term, - &proof.evals, - verifier_index.zk_rows, - ); - - // Serialize and write to binaries - fs::write( - "../eth_verifier/prover_proof.bin", - EVMSerializableType(proof).to_bytes(), - ) - .unwrap(); - fs::write( - "../eth_verifier/verifier_index.mpk", - rmp_serde::to_vec_named(&verifier_index).unwrap(), - ) - .unwrap(); - fs::write( - "../eth_verifier/verifier_index.bin", - EVMSerializableType(verifier_index).to_bytes(), - ) - .unwrap(); - let srs_to_serialize = PairingSRS::> { - full_srs: SRS { - g: index.srs.full_srs.g[0..3].to_vec(), - h: index.srs.full_srs.h, - lagrange_bases: HashMap::new(), - }, - verifier_srs: index.srs.verifier_srs.clone(), - }; - println!( - "urs.g: {:?}", - srs_to_serialize - .full_srs - .g - .iter() - .map(|g_i| g_i.to_string()) - .collect::>() - ); - println!("urs.h: {:?}", srs_to_serialize.full_srs.h.to_string()); - fs::write( - "../eth_verifier/urs.mpk", - rmp_serde::to_vec_named(&srs_to_serialize).unwrap(), - ) - .unwrap(); - let precomputed_literal_tokens: Vec = precomputed_tokens - .clone() - .into_iter() - .map(BN254PolishLiteralTokens) - .collect(); - fs::write( - "../eth_verifier/linearization.bin", - EVMSerializableType(precomputed_tokens).to_bytes(), - ) - .unwrap(); - fs::write( - "../eth_verifier/linearization_literals.bin", - EVMSerializableType(precomputed_literal_tokens).to_bytes(), - ) - .unwrap(); - - let proof_hash_bytes = EVMSerializableType(proof_hash).to_bytes(); - fs::write("../eth_verifier/proof_hash.bin", proof_hash_bytes).unwrap(); - - let empty_polycomm = PolyComm::new( - vec![G1::new(BaseField::from(0), BaseField::from(0), true)], - None, - ); - let mut lagrange_bases = index.srs.full_srs.lagrange_bases.clone(); - let lagrange_bases: HashMap<_, _> = lagrange_bases - .iter_mut() - .map(|(key, bases)| { - bases.resize(1, empty_polycomm.clone()); - (key, bases) - }) - .collect(); - fs::write( - "../eth_verifier/lagrange_bases.mpk", - rmp_serde::to_vec_named(&lagrange_bases).unwrap(), - ) - .unwrap(); - - // Serialize lagrange bases for hardcoding - fs::write( - "../eth_verifier/lagrange_bases.bin", - EVMSerializableType(lagrange_bases[&domain_size].clone()).to_bytes(), - ) - .unwrap(); -} - -fn precompute_evaluation( - tokens: &Vec, - evals: &BN254ProofEvaluations, - zk_rows: u64, -) -> Vec { - let mut stack: Vec = Vec::with_capacity(3); - - let mut new_tokens = vec![]; - - let constants = Constants { - alpha: ScalarField::from(0), - beta: ScalarField::from(0), - gamma: ScalarField::from(0), - joint_combiner: None, - endo_coefficient: G1::endos().1, - mds: &G1::sponge_params().mds, - zk_rows, - }; - let evals = evals.combine(&PointEvaluations { - zeta: ScalarField::from(0), - zeta_omega: ScalarField::from(0), - }); - - // The idea is that we assumed there're many segments in the token - // vec that don't depend on any result from the verifier, so - // we might as well precompute those segments and send the results - // as `Literal` tokens. - // - // As an example consider we have a segment which is equivalent to - // 10 + 5 + 9. Those are 5 tokens in total and two operations the - // EVM verifier needs to deserialize and execute. We instead compute - // that segment here and replace the 5 tokens with the result: 14. - // - // For this we'll have a stack of tokens and we'll fill it first with - // two operands ("data tokens", so non operation tokens) and then with - // an operation, we'll evaluate those 3 tokens, replace them with the - // result and continue until we arrive at a token which we can't - // evaluate in the prover side. At this step the stack has the results - // of that evaluated segment. - - for token in tokens.clone().iter() { - use PolishToken::*; - let is_unary_operation_token = matches!(token, Pow(_) | Dup); - let is_binary_operation_token = matches!(token, Add | Mul | Sub); - let is_data_token = matches!( - token, - EndoCoefficient | Mds { row: _, col: _ } | Literal(_) | Cell(_) - ); - - match stack.len() { - 0 => { - if is_data_token { - stack.push(token.clone()); - } else { - new_tokens.push(token.clone()); - } - } - 1 => { - stack.push(token.clone()); - if is_unary_operation_token { - partial_polish_evaluation(&mut stack, &evals, &constants).unwrap(); - } else if is_binary_operation_token | !is_data_token { - new_tokens.append(&mut stack); - } - } - 2.. => { - stack.push(token.clone()); - if is_unary_operation_token | is_binary_operation_token { - partial_polish_evaluation(&mut stack, &evals, &constants).unwrap(); - } else if !is_data_token { - new_tokens.append(&mut stack); - } - } - _ => unreachable!(), - } - } - println!( - "Token compression result: {}", - 1. - new_tokens.len() as f64 / tokens.len() as f64 - ); - new_tokens -} - -fn partial_polish_evaluation( - tokens: &mut Vec, - evals: &ProofEvaluations>, - c: &Constants, -) -> Result<(), ExprError> { - let mut stack = vec![]; - - use PolishToken::*; - for t in tokens.iter() { - match t { - EndoCoefficient => stack.push(c.endo_coefficient), - Mds { row, col } => stack.push(c.mds[*row][*col]), - Literal(x) => stack.push(*x), - Dup => stack.push(stack[stack.len() - 1]), - Cell(v) => stack.push(evaluate_variable(v, evals)?), - Pow(n) => { - let i = stack.len() - 1; - stack[i] = stack[i].pow([*n]); - } - Add => { - let y = stack.pop().ok_or(ExprError::EmptyStack)?; - let x = stack.pop().ok_or(ExprError::EmptyStack)?; - stack.push(x + y); - } - Mul => { - let y = stack.pop().ok_or(ExprError::EmptyStack)?; - let x = stack.pop().ok_or(ExprError::EmptyStack)?; - stack.push(x * y); - } - Sub => { - let y = stack.pop().ok_or(ExprError::EmptyStack)?; - let x = stack.pop().ok_or(ExprError::EmptyStack)?; - stack.push(x - y); - } - _ => unreachable!(), - } - } - - *tokens = stack.into_iter().map(Literal).collect(); - Ok(()) -} - -/// Function taken from proof_system's expr.rs because its private. -fn evaluate_variable( - v: &Variable, - evals: &ProofEvaluations>, -) -> Result { - let point_evaluations = { - use Column::*; - match v.col { - Witness(i) => Ok(evals.w[i]), - Z => Ok(evals.z), - LookupSorted(i) => { - evals.lookup_sorted[i].ok_or(ExprError::MissingIndexEvaluation(v.col)) - } - LookupAggreg => evals - .lookup_aggregation - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - LookupTable => evals - .lookup_table - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - LookupRuntimeTable => evals - .runtime_lookup_table - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Index(GateType::Poseidon) => Ok(evals.poseidon_selector), - Index(GateType::Generic) => Ok(evals.generic_selector), - Index(GateType::CompleteAdd) => Ok(evals.complete_add_selector), - Index(GateType::VarBaseMul) => Ok(evals.mul_selector), - Index(GateType::EndoMul) => Ok(evals.emul_selector), - Index(GateType::EndoMulScalar) => Ok(evals.endomul_scalar_selector), - Index(GateType::RangeCheck0) => evals - .range_check0_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Index(GateType::RangeCheck1) => evals - .range_check1_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Index(GateType::ForeignFieldAdd) => evals - .foreign_field_add_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Index(GateType::ForeignFieldMul) => evals - .foreign_field_mul_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Index(GateType::Xor16) => evals - .xor_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Index(GateType::Rot64) => evals - .rot_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Permutation(i) => Ok(evals.s[i]), - Coefficient(i) => Ok(evals.coefficients[i]), - Column::LookupKindIndex(LookupPattern::Xor) => evals - .xor_lookup_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Column::LookupKindIndex(LookupPattern::Lookup) => evals - .lookup_gate_lookup_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Column::LookupKindIndex(LookupPattern::RangeCheck) => evals - .range_check_lookup_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Column::LookupKindIndex(LookupPattern::ForeignFieldMul) => evals - .foreign_field_mul_lookup_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Column::LookupRuntimeSelector => evals - .runtime_lookup_table_selector - .ok_or(ExprError::MissingIndexEvaluation(v.col)), - Index(_) => Err(ExprError::MissingIndexEvaluation(v.col)), - } - }?; - match v.row { - CurrOrNext::Curr => Ok(point_evaluations.zeta), - CurrOrNext::Next => Ok(point_evaluations.zeta_omega), - } -} - -fn generate_test_proof_for_evm_verifier() { - let rng = &mut StdRng::from_seed([255u8; 32]); - - // Create range-check gadget - let (mut next_row, mut gates) = CircuitGate::::create_multi_range_check(0); - - // Create witness - let witness = range_check::witness::create_multi::( - rng.gen_biguint_range(&BigUint::zero(), &BigUint::two_to_limb()) - .to_field() - .expect("failed to convert to field"), - rng.gen_biguint_range(&BigUint::zero(), &BigUint::two_to_limb()) - .to_field() - .expect("failed to convert to field"), - rng.gen_biguint_range(&BigUint::zero(), &BigUint::two_to_limb()) - .to_field() - .expect("failed to convert to field"), - ); - - // Temporary workaround for lookup-table/domain-size issue - for _ in 0..(1 << 13) { - gates.push(CircuitGate::zero(Wire::for_row(next_row))); - next_row += 1; - } - - // Create constraint system - let cs = ConstraintSystem::::create(gates) - //.lookup(vec![range_check::gadget::lookup_table()]) - .build() - .unwrap(); - - // This seed (42) is also used for generating a trusted setup in Solidity. - let x = ark_bn254::Fr::from(42); - let mut srs = create_srs(x, cs.gates.len(), cs.domain); - srs.full_srs.add_lagrange_basis(cs.domain.d1); - - let (_endo_q, endo_r) = G1::endos(); - let index = ProverIndex::::create(cs, *endo_r, Arc::new(srs.clone())); - println!("cs endo: {}", endo_r); // ProverIndex::create() sets cs endo to endo_r - - let group_map = ::Map::setup(); - let proof = ProverProof::create_recursive::( - &group_map, - witness, - &[], - &index, - vec![], - None, - ) - .unwrap(); - - println!( - "verifier_index digest: {}", - index.verifier_index().digest::() - ); - - // Partially verify proof - let public_inputs = vec![]; - let agg_proof = to_batch::< - G1Affine, - Keccak256FqSponge, - Keccak256FrSponge, - KZGProof, - >(&index.verifier_index(), &proof, &public_inputs) - .unwrap(); - - // Final verify - let BatchEvaluationProof { - sponge: _, - evaluations, - evaluation_points, - polyscale, - evalscale: _, - opening, - combined_inner_product: _, - } = agg_proof; - if !opening.verify(&srs, &evaluations, polyscale, &evaluation_points) { - panic!(); - } - - // Serialize and write to binaries - fs::write( - "../eth_verifier/prover_proof.mpk", - rmp_serde::to_vec_named(&proof).unwrap(), - ) - .unwrap(); - fs::write( - "../eth_verifier/verifier_index.mpk", - rmp_serde::to_vec_named(&index.verifier_index()).unwrap(), - ) - .unwrap(); - let srs_to_serialize = PairingSRS::> { - full_srs: SRS { - g: srs.full_srs.g[0..3].to_vec(), - h: srs.full_srs.h, - lagrange_bases: HashMap::new(), - }, - verifier_srs: srs.verifier_srs, - }; - fs::write( - "../eth_verifier/urs.mpk", - rmp_serde::to_vec_named(&srs_to_serialize).unwrap(), - ) - .unwrap(); - fs::write( - "../eth_verifier/linearization.mpk", - &serialize_linearization(index.linearization), - ) - .unwrap(); -} - -#[derive(Serialize)] -struct UnitVariant<'a> { - variant: &'a str, -} - -#[derive(Serialize)] -struct MdsInner { - row: usize, - col: usize, -} - -#[derive(Serialize)] -struct Mds { - mds: MdsInner, -} - -struct Literal { - literal: ScalarField, -} - -impl Serialize for Literal { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - let mut lit = serializer.serialize_struct("Literal", 1)?; - let mut literal_ser = vec![]; - self.literal.serialize(&mut literal_ser).unwrap(); - lit.serialize_field("literal", &literal_ser)?; - lit.end() - } -} - -#[derive(Serialize)] -struct Cell { - variable: Variable, -} - -#[derive(Serialize)] -struct Pow { - pow: u64, -} - -#[derive(Serialize)] -struct UnnormalizedLagrangeBasis { - rowoffset: i32, -} - -#[derive(Serialize)] -struct Load { - load: usize, -} - -fn serialize_linearization(linearization: Linearization>>) -> Vec { - let constant_term_ser: Vec<_> = linearization - .constant_term - .iter() - .map(|token| { - match *token { - PolishToken::Alpha => rmp_serde::to_vec_named(&UnitVariant { variant: "alpha" }), - PolishToken::Beta => rmp_serde::to_vec_named(&UnitVariant { variant: "beta" }), - PolishToken::Gamma => rmp_serde::to_vec_named(&UnitVariant { variant: "gamma" }), - PolishToken::JointCombiner => rmp_serde::to_vec_named(&UnitVariant { - variant: "jointcombiner", - }), - PolishToken::EndoCoefficient => rmp_serde::to_vec_named(&UnitVariant { - variant: "endocoefficient", - }), - PolishToken::Mds { row, col } => rmp_serde::to_vec_named(&Mds { - mds: MdsInner { row, col }, - }), - PolishToken::Literal(literal) => rmp_serde::to_vec_named(&Literal { literal }), - PolishToken::Cell(variable) => rmp_serde::to_vec_named(&Cell { variable }), - PolishToken::Dup => rmp_serde::to_vec_named(&UnitVariant { variant: "dup" }), - PolishToken::Pow(pow) => rmp_serde::to_vec_named(&Pow { pow }), - PolishToken::Add => rmp_serde::to_vec_named(&UnitVariant { variant: "add" }), - PolishToken::Mul => rmp_serde::to_vec_named(&UnitVariant { variant: "mul" }), - PolishToken::Sub => rmp_serde::to_vec_named(&UnitVariant { variant: "sub" }), - PolishToken::VanishesOnZeroKnowledgeAndPreviousRows => { - rmp_serde::to_vec_named(&UnitVariant { - variant: "vanishesonzeroknowledgeandpreviousrows", - }) - } - PolishToken::UnnormalizedLagrangeBasis(rowoffset) => { - rmp_serde::to_vec_named(&UnnormalizedLagrangeBasis { rowoffset }) - } - PolishToken::Store => rmp_serde::to_vec_named(&UnitVariant { variant: "store" }), - PolishToken::Load(load) => rmp_serde::to_vec_named(&Load { load }), - _ => rmp_serde::to_vec_named(&UnitVariant { - variant: "not implemented", - }), - } - .unwrap() - }) - .flatten() - .collect(); - - // Add bytes corresponding to an array type: - - let mut constant_term_ser = constant_term_ser.into_iter().rev().collect::>(); - let len = linearization.constant_term.len(); - - // we choose arr32, so length is made of the next 4 bytes: - constant_term_ser.push((len & 0xFF) as u8); - constant_term_ser.push(((len >> 8) & 0xFF) as u8); - constant_term_ser.push(((len >> 16) & 0xFF) as u8); - constant_term_ser.push(((len >> 24) & 0xFF) as u8); - - // and then the arr32 prefix - constant_term_ser.push(0xdd); - - let constant_term_ser = constant_term_ser.into_iter().rev().collect::>(); - - constant_term_ser -} - -fn generate_test_proof_for_demo() { - let rng = &mut StdRng::from_seed([0u8; 32]); - - let gates = read_gates_file(); - - let cs = ConstraintSystem::::create(gates) - .build() - .unwrap(); - - const ZK_ROWS: usize = 3; - let domain_size = cs.gates.len() + ZK_ROWS; - let domain = EvaluationDomains::create(domain_size).unwrap(); - - let n = domain.d1.size as usize; - let x = ark_bn254::Fr::rand(rng); - - let mut srs = create_srs(x, n, domain); - - let polynomials = create_selector_dense_polynomials(cs.clone(), domain); - - let comms: Vec<_> = polynomials - .iter() - .map(|p| srs.full_srs.commit(p, 1, None, rng)) - .collect(); - - let polynomials_and_blinders: Vec<( - DensePolynomialOrEvaluations<_, Radix2EvaluationDomain<_>>, - _, - _, - )> = polynomials - .iter() - .zip(comms.iter()) - .map(|(p, comm)| { - let p = DensePolynomialOrEvaluations::DensePolynomial(p); - (p, None, comm.blinders.clone()) - }) - .collect(); - - let evaluation_points = vec![ark_bn254::Fr::rand(rng), ark_bn254::Fr::rand(rng)]; - - let evaluations: Vec<_> = polynomials - .iter() - .zip(comms) - .map(|(p, commitment)| { - let evaluations = evaluation_points - .iter() - .map(|x| { - // Inputs are chosen to use only 1 chunk - vec![p.evaluate(x)] - }) - .collect(); - Evaluation { - commitment: commitment.commitment, - evaluations, - degree_bound: None, - } - }) - .collect(); - - let polyscale = ark_bn254::Fr::rand(rng); - - let pairing_proof = KZGProof::create( - &srs, - polynomials_and_blinders.as_slice(), - &evaluation_points, - polyscale, - ) - .unwrap(); - - let poly_commitment = create_poly_commitment(&evaluations, polyscale); - let evals = combine_evaluations(&evaluations, polyscale); - let blinding_commitment = srs.full_srs.h.mul(pairing_proof.blinding); - let eval_commitment = srs - .full_srs - .commit_non_hiding(&eval_polynomial(&evaluation_points, &evals), 1, None) - .unshifted[0] - .into_projective(); - - let divisor_commitment = srs - .verifier_srs - .commit_non_hiding(&divisor_polynomial(&evaluation_points), 1, None) - .unshifted[0]; - let numerator_commitment = - (poly_commitment - eval_commitment - blinding_commitment).into_affine(); - - let numerator_serialized = serialize_g1point_for_verifier(numerator_commitment).unwrap(); - let quotient_serialized = serialize_g1point_for_verifier(pairing_proof.quotient.neg()).unwrap(); - let divisor_serialized = serialize_g2point_for_verifier(divisor_commitment).unwrap(); - - let mut points_serialized = numerator_serialized.clone(); - points_serialized.extend(quotient_serialized); - points_serialized.extend(divisor_serialized); - - fs::write("../eth_verifier/proof.mpk", points_serialized).unwrap(); - - let endo_q = G1::endos().1; - srs.full_srs.add_lagrange_basis(cs.domain.d1); - let prover_index = ProverIndex::::create(cs, endo_q, Arc::new(srs.clone())); - let verifier_index = prover_index.verifier_index(); - fs::write( - "../eth_verifier/verifier_index.mpk", - rmp_serde::to_vec(&verifier_index).unwrap(), - ) - .unwrap(); - - println!( - "Is verifier circuit's KZG proof valid?: {:?}", - pairing_proof.verify(&srs, &evaluations, polyscale, &evaluation_points) - ); - println!("{}", verifier_index.powers_of_alpha); -} - -fn generate_test_proof() { - let public_input: Vec = vec![42.into(); 5]; - let gates = create_circuit::(0, public_input.len()); - - // create witness - let mut witness: [Vec<_>; COLUMNS] = array::from_fn(|_| vec![0.into(); gates.len()]); - fill_in_witness::(0, &mut witness, &[]); - - let cs = ConstraintSystem::::create(gates) - .build() - .unwrap(); - - const ZK_ROWS: usize = 3; - let domain_size = cs.gates.len() + ZK_ROWS; - let domain = EvaluationDomains::create(domain_size).unwrap(); - - let n = domain.d1.size as usize; - - let srs = create_srs(42.into(), n, domain); - let endo_q = G1::endos().1; - let prover_index = - ProverIndex::>>::create( - cs, - endo_q, - Arc::new(srs.clone()), - ); - - let groupmap = ::Map::setup(); - let prover_proof = ProverProof::create::( - &groupmap, - witness, - &[], - &prover_index, - ) - .unwrap(); - - fs::write( - "../eth_verifier/verifier_index.mpk", - rmp_serde::to_vec(&prover_index.verifier_index()).unwrap(), - ) - .unwrap(); - - let context = Context { - verifier_index: &prover_index.verifier_index(), - proof: &prover_proof, - public_input: &public_input, - }; - - let verified = - batch_verify::(&groupmap, &[context]).is_ok(); - println!("Is test circuit's KZG proof valid?: {:?}", verified); -} - -fn serialize_g1point_for_verifier(point: G1Affine) -> Result, SerializationError> { - let mut point_serialized = vec![]; - point.serialize_uncompressed(&mut point_serialized)?; - point_serialized[..32].reverse(); - point_serialized[32..].reverse(); - Ok(point_serialized) -} - -fn serialize_g2point_for_verifier(point: G2Affine) -> Result, SerializationError> { - let mut point_serialized = vec![]; - point.serialize_uncompressed(&mut point_serialized)?; - point_serialized[..64].reverse(); - point_serialized[64..].reverse(); - Ok(point_serialized) -} - -fn read_gates_file() -> Vec>> { - let gates_json = fs::read_to_string("gates.json").unwrap(); - let snarky_gates: Vec = serde_json::from_str(&gates_json).unwrap(); - - snarky_gates - .iter() - .map(|gate| gate.clone().into()) - .collect() -} - -fn create_poly_commitment( - evaluations: &Vec>>, - polyscale: ark_ff::Fp256, -) -> ark_ec::short_weierstrass_jacobian::GroupProjective { - let poly_commitment = { - let mut scalars: Vec = Vec::new(); - let mut points = Vec::new(); - combine_commitments( - evaluations, - &mut scalars, - &mut points, - polyscale, - ark_bn254::Fr::from(1), - ); - let scalars: Vec<_> = scalars.iter().map(|x| x.into_repr()).collect(); - - VariableBaseMSM::multi_scalar_mul(&points, &scalars) - }; - poly_commitment -} - -fn create_selector_dense_polynomials( - cs: ConstraintSystem>, - domain: EvaluationDomains>, -) -> Vec>> { - let foreign_field_add_selector = - selector_polynomial(GateType::ForeignFieldAdd, &cs.gates, &domain); - - let generic_selector = - Evaluations::>::from_vec_and_domain( - cs.gates - .iter() - .map(|gate| { - if matches!(gate.typ, GateType::Generic) { - ark_bn254::Fr::one() - } else { - ark_bn254::Fr::zero() - } - }) - .collect(), - cs.domain.d1, - ) - .interpolate(); - - let polynomials: Vec<_> = vec![foreign_field_add_selector, generic_selector]; - polynomials -} - -fn create_srs( - x: ark_ff::Fp256, - n: usize, - domain: EvaluationDomains>, -) -> PairingSRS> { - let mut srs = SRS::::create_trusted_setup(x, n); - let verifier_srs = SRS::::create_trusted_setup(x, 3); - srs.add_lagrange_basis(domain.d1); - - PairingSRS { - full_srs: srs, - verifier_srs, - } -} - -/// The polynomial that evaluates to each of `evals` for the respective `elm`s. -fn eval_polynomial( - elm: &[ark_bn254::Fr], - evals: &[ark_bn254::Fr], -) -> DensePolynomial { - let zeta = elm[0]; - let zeta_omega = elm[1]; - let eval_zeta = evals[0]; - let eval_zeta_omega = evals[1]; - - // The polynomial that evaluates to `p(zeta)` at `zeta` and `p(zeta_omega)` at - // `zeta_omega`. - // We write `p(x) = a + bx`, which gives - // ```text - // p(zeta) = a + b * zeta - // p(zeta_omega) = a + b * zeta_omega - // ``` - // and so - // ```text - // b = (p(zeta_omega) - p(zeta)) / (zeta_omega - zeta) - // a = p(zeta) - b * zeta - // ``` - let b = (eval_zeta_omega - eval_zeta) / (zeta_omega - zeta); - let a = eval_zeta - b * zeta; - DensePolynomial::from_coefficients_slice(&[a, b]) -} - -/// The polynomial that evaluates to `0` at the evaluation points. -fn divisor_polynomial(elm: &[ark_bn254::Fr]) -> DensePolynomial { - elm.iter() - .map(|value| DensePolynomial::from_coefficients_slice(&[-(*value), ark_bn254::Fr::one()])) - .reduce(|poly1, poly2| &poly1 * &poly2) - .unwrap() -} - -/// Create selector polynomial for a circuit gate -fn selector_polynomial( - gate_type: GateType, - gates: &[CircuitGate], - domain: &EvaluationDomains, -) -> DensePolynomial { - // Coefficient form - Evaluations::<_, Radix2EvaluationDomain<_>>::from_vec_and_domain( - gates - .iter() - .map(|gate| { - if gate.typ == gate_type { - ark_bn254::Fr::one() - } else { - ark_bn254::Fr::zero() - } - }) - .collect(), - domain.d1, - ) - .interpolate() -} diff --git a/kzg_prover/src/misc_tests.rs b/kzg_prover/src/misc_tests.rs deleted file mode 100644 index d495aa13..00000000 --- a/kzg_prover/src/misc_tests.rs +++ /dev/null @@ -1,72 +0,0 @@ -#[cfg(test)] -mod test { - use ark_ec::short_weierstrass_jacobian::GroupAffine; - use kimchi::{ - circuits::polynomials::permutation::eval_vanishes_on_last_n_rows, - curve::KimchiCurve, - keccak_sponge::{Keccak256FqSponge, Keccak256FrSponge}, - plonk_sponge::FrSponge, - proof::ProverProof, - verifier_index::VerifierIndex, - }; - use mina_poseidon::sponge::ScalarChallenge; - use num::BigUint; - use num_traits::Num; - use poly_commitment::pairing_proof::PairingProof; - - type BaseField = ark_bn254::Fq; - type ScalarField = ark_bn254::Fr; - type G1 = GroupAffine; - - type KeccakFqSponge = Keccak256FqSponge; - type KeccakFrSponge = Keccak256FrSponge; - - type KZGProof = PairingProof>; - - fn scalar_from_hex(hex: &str) -> ScalarField { - ScalarField::from(BigUint::from_str_radix(hex, 16).unwrap()) - } - - #[test] - fn test_scalar_challenge_to_field() { - let chal = ScalarChallenge(ScalarField::from(42)); - let (_, endo_r) = G1::endos(); - assert_eq!( - chal.to_field(endo_r), - scalar_from_hex("1B98C45C863AD2A1F4EB90EFBC8F1104AF5534B239720D63ECB7156E9347F622") - ); - } - - // INFO: This test was disabled because there's no way to deserialize a new prover_proof - // (previously this was done with the messagepack deserializer). - // #[test] - // fn test_absorb_evaluations() { - // let prover_proof_serialized = include_bytes!("../unit_test_data/prover_proof.mpk"); - // let prover_proof: ProverProof = - // rmp_serde::from_slice(prover_proof_serialized).unwrap(); - // let mut sponge = KeccakFrSponge::new(G1::sponge_params()); - // sponge.absorb_evaluations(&prover_proof.evals); - // assert_eq!( - // sponge.challenge().0, - // scalar_from_hex("0000000000000000000000000000000000DC56216206DF842F824D14A6D87024"), - // ); - // } - - #[test] - fn test_eval_vanishing_poly_on_last_n_rows() { - let verifier_index_serialized = include_bytes!("../unit_test_data/verifier_index.mpk"); - let verifier_index: VerifierIndex = - rmp_serde::from_slice(verifier_index_serialized).unwrap(); - - // hard-coded zeta is taken from executing the verifier in main.rs - // the value doesn't matter, as long as it matches the analogous test in Solidity. - let zeta = - scalar_from_hex("1B427680FC915CB850FFF8701AD7E2D73B9F1349F713BFBE6B58E5D007988CD0"); - let permutation_vanishing_poly = - eval_vanishes_on_last_n_rows(verifier_index.domain, verifier_index.zk_rows, zeta); - assert_eq!( - permutation_vanishing_poly, - scalar_from_hex("1AEE30761864581115514430C6BD95502BB8DE7CD8C6B608F27BA1C03E80BFFB") - ); - } -} diff --git a/kzg_prover/src/snarky_gate.rs b/kzg_prover/src/snarky_gate.rs deleted file mode 100644 index 7b35b775..00000000 --- a/kzg_prover/src/snarky_gate.rs +++ /dev/null @@ -1,67 +0,0 @@ -use std::array; - -use kimchi::{ - circuits::{ - gate::{CircuitGate, GateType}, - wires::{Wire, PERMUTS}, - }, - o1_utils::FieldHelpers, -}; -use num::BigInt; -use serde::Deserialize; - -#[derive(Debug, Clone, Deserialize)] -pub struct SnarkyGate { - pub r#type: String, - pub wires: Vec, - pub coeffs: Vec, -} - -#[derive(Debug, Clone, Deserialize)] -pub struct SnarkyWire { - pub col: usize, - pub row: usize, -} - -impl Into for SnarkyWire { - fn into(self) -> Wire { - Wire { - row: self.row, - col: self.col, - } - } -} - -impl Into> for SnarkyGate { - fn into(self) -> CircuitGate { - let typ = if self.r#type == "Generic" { - GateType::Generic - } else if self.r#type == "ForeignFieldAdd" { - GateType::ForeignFieldAdd - } else if self.r#type == "ForeignFieldMul" { - GateType::ForeignFieldMul - } else if self.r#type == "Zero" { - GateType::Zero - } else if self.r#type == "RangeCheck0" { - GateType::RangeCheck0 - } else if self.r#type == "RangeCheck1" { - GateType::RangeCheck1 - } else if self.r#type == "Poseidon" { - GateType::Poseidon - } else { - panic!("{} is not a valid GateType", self.r#type) - }; - - let wires: [Wire; PERMUTS] = array::from_fn(|i| self.wires[i].clone().into()); - let coeffs: Vec = self - .coeffs - .iter() - .map(|coeff| { - let coeff_bigint = coeff.parse::().unwrap(); - ark_bn254::Fr::from_biguint(&coeff_bigint.to_biguint().unwrap()).unwrap() - }) - .collect(); - - CircuitGate { typ, wires, coeffs } - } -} diff --git a/kzg_prover/src/sponge_tests.rs b/kzg_prover/src/sponge_tests.rs deleted file mode 100644 index 9bf00260..00000000 --- a/kzg_prover/src/sponge_tests.rs +++ /dev/null @@ -1,141 +0,0 @@ -#[cfg(test)] -mod test { - use ark_ec::{short_weierstrass_jacobian::GroupAffine, AffineCurve}; - use kimchi::{ - curve::KimchiCurve, - keccak_sponge::{Keccak256FqSponge, Keccak256FrSponge}, - plonk_sponge::FrSponge, - }; - use mina_poseidon::FqSponge; - use num::BigUint; - use num_traits::Num; - use poly_commitment::PolyComm; - use rmp_serde::encode::write; - - type BaseField = ark_bn254::Fq; - type ScalarField = ark_bn254::Fr; - type G1 = GroupAffine; - - type KeccakFqSponge = Keccak256FqSponge; - type KeccakFrSponge = Keccak256FrSponge; - - fn scalar_from_hex(hex: &str) -> ScalarField { - ScalarField::from(BigUint::from_str_radix(hex, 16).unwrap()) - } - - #[test] - fn test_absorb_digest_scalar() { - let mut sponge = KeccakFrSponge::new(G1::sponge_params()); - let input = ScalarField::from(42); - sponge.absorb(&input); - let digest = sponge.digest(); - - assert_eq!( - digest, - scalar_from_hex("00BECED09521047D05B8960B7E7BCC1D1292CF3E4B2A6B63F48335CBDE5F7545",) - ); - } - - #[test] - fn test_digest_scalar() { - let sponge = KeccakFrSponge::new(G1::sponge_params()); - let digest = sponge.digest(); - - assert_eq!( - digest, - scalar_from_hex("00C5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A4",) - ); - } - - #[test] - fn test_absorb_challenge_scalar() { - let mut sponge = KeccakFrSponge::new(G1::sponge_params()); - let input = ScalarField::from(42); - sponge.absorb(&input); - let digest = sponge.challenge().0; - - assert_eq!( - digest, - scalar_from_hex("0000000000000000000000000000000000BECED09521047D05B8960B7E7BCC1D",) - ); - } - - #[test] - fn test_absorb_digest_g() { - let mut sponge = KeccakFqSponge::new(G1::other_curve_sponge_params()); - let input = vec![G1::prime_subgroup_generator()]; - sponge.absorb_g(&input); - let digest = sponge.digest(); - - assert_eq!( - digest, - scalar_from_hex("00E90B7BCEB6E7DF5418FB78D8EE546E97C83A08BBCCC01A0644D599CCD2A7C2",) - ); - } - - #[test] - fn test_absorb_absorb_digest_scalar() { - let mut sponge = KeccakFrSponge::new(G1::sponge_params()); - let inputs = [ScalarField::from(42), ScalarField::from(24)]; - sponge.absorb(&inputs[0]); - sponge.absorb(&inputs[1]); - let digest = sponge.digest(); - - assert_eq!( - digest, - scalar_from_hex("00DB760B992492E99DAE648DBA78682EB78FAFF3B40E0DB291710EFCB8A7D0D3",) - ); - } - - #[test] - fn test_absorb_challenge_challenge_scalar() { - let mut sponge = KeccakFrSponge::new(G1::sponge_params()); - let input = ScalarField::from(42); - sponge.absorb(&input); - let challenges = [sponge.challenge(), sponge.challenge()]; - - assert_eq!( - challenges[0].0, - scalar_from_hex("0000000000000000000000000000000000BECED09521047D05B8960B7E7BCC1D",) - ); - assert_eq!( - challenges[1].0, - scalar_from_hex("0000000000000000000000000000000000964765235251D0E2EACFBC25925D55",) - ); - } - - #[test] - fn test_absorb_challenge_absorb_challenge_scalar() { - let mut sponge = KeccakFrSponge::new(G1::sponge_params()); - let inputs = [ScalarField::from(42), ScalarField::from(24)]; - - sponge.absorb(&inputs[0]); - let challenge = sponge.challenge(); - assert_eq!( - challenge.0, - scalar_from_hex("0000000000000000000000000000000000BECED09521047D05B8960B7E7BCC1D",) - ); - sponge.absorb(&inputs[1]); - let challenge = sponge.challenge(); - assert_eq!( - challenge.0, - scalar_from_hex("0000000000000000000000000000000000D9E16B1DA42107514692CD8896E64F",) - ); - } - - #[test] - fn test_challenge_challenge_scalar() { - let mut sponge = KeccakFrSponge::new(G1::sponge_params()); - - let challenge = sponge.challenge(); - assert_eq!( - challenge.0, - scalar_from_hex("0000000000000000000000000000000000C5D2460186F7233C927E7DB2DCC703",) - ); - let challenge = sponge.challenge(); - assert_eq!( - challenge.0, - scalar_from_hex("000000000000000000000000000000000010CA3EFF73EBEC87D2394FC58560AF",) - ); - } -} diff --git a/kzg_prover/unit_test_data/prover_proof.bin b/kzg_prover/unit_test_data/prover_proof.bin deleted file mode 100644 index 3e0f7ed1dbe30c6021c9b342949c41b503bcd426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5088 zcmeIy!3_W*48*_%#0NUL{tLVgyaiysQ9dJw1mD7GGRl0Gx%&*HAN$x3``8cryxz}d x9{=~^^ZI?=;?wTya~}otL!Q_V``8cr*bn>I5Bt~;``8cr*bn>I5Bs!!&JS2J2sQu! diff --git a/kzg_prover/unit_test_data/verifier_index.mpk b/kzg_prover/unit_test_data/verifier_index.mpk deleted file mode 100644 index 2eaf3d5448021ae16a87c5de82f6ba9c7f0e49dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2843 zcmcb|Ai69iKQ}Qm@5mYk1qLwS1(6D1CQgE}A;G!jTKN8>i%QK`F7rwa@;Mu9(#*7d z&a_#%0jHA;1TOEL-8*}USDCI=-=ojcm#fn@Rh)Pw%aF7#bBE{Ze1?;;H&;g~a9f}1 zXq^75hU#x+}adak-D z95p2)Rc)w6z26>pQt!&B)Tm?TRaAeC7AQKT%~lROta!Z4WMFhi4q}2|D}v$NfV*a-5uDGbO~gi=8tFXz zX=MB8{;&gww#8S1tW7RmDBZDIz4&KAn#}5tuX0PPW($07lU&d;)k+YDHq~qE6Ah#1 zeq48f&1$~hBHf+&CqJ%vZJ4KR6}5cjDmGrYwvEa8scC7M$(gBnCB@)4nU5N{<-6yz z>gU;>dwcA4y3-^5ttQhA=CS5F)b4*^AoC^dEH3XZneMXtYeZn~k(Nwe^F7W|PwL;; zI^W7UI$@HV+LqrIOW+PbwJq2C$s&FhyZtwJ6i*LaamhU8UTItEea7H3k#pVRN2TeGRHS-<{$gzi!6Mf$T7gr8Q3DxQ!lkFuA5 zr?eFX#kpAY7nz%%mpPfeg+VdE%l}KP;zYkGEuRE!(?X&w)F#fFqYBp#%+I+6IjJS7 z@rfxZlo+%kw={3Iokk>L7|I9 zig#sveD=GKUa#tI%^iRl{ku?tyx=02YVln7ya76YkTh=qJEt?;}1&$~@UL^8T*yO^gkFQ(rM_&)}Ex!7?YJG`T z-KHzte@~p<$#6s=m*2&Bmht=@OP}6Rmw~W5ACUor?0cz`6lX0IZ(wGPUXE7 z&m>Q9Ra+kT{87$>Ayo3xzmHk+2RnHn7GtXv4#7^Jp`EyH#p1}|P zPi(7CMfpvD+psh(4H&rxR)U=wpP5pOYR, - z1: String, - z2: String, - delta: Point, - sg: Point, - expected: Point, -} - -fn main() { - let state_proof: StateProof = match fs::read_to_string("./src/proof.json") { - Ok(state_proof_file) => serde_json::from_str(&state_proof_file).unwrap(), - Err(_) => StateProof::default(), - }; - - let srs: SRS = precomputed_srs::get_srs(); - write_srs_into_file(&srs); - - // create and verify proof based on the witness - prove_and_verify(&srs, state_proof.proof.openings.proof); -} - -fn write_srs_into_file(srs: &SRS) { - println!("Writing SRS into file..."); - let mut g = srs - .g - .iter() - .map(|g_i| format!("[\"{}\",\"{}\"],", g_i.x.to_biguint(), g_i.y.to_biguint())) - .collect::>() - .concat(); - // Removes last comma - g.pop(); - let h = format!( - "[\"{}\",\"{}\"]", - srs.h.x.to_biguint(), - srs.h.y.to_biguint() - ); - let srs_json = format!("{{\"g\":[{}],\"h\":{}}}", g, h); - fs::write("../verifier_circuit/test_data/srs.json", srs_json).unwrap(); -} - -fn prove_and_verify(srs: &SRS, opening: OpeningProof) { - // verify the proof (propagate any errors) - println!("Verifying dummy proof..."); - - let lr_map = opening.lr.iter().map(|(l_i, r_i)| { - [ - Pallas::new( - Fp::from_hex(&l_i.0[2..]).unwrap(), - Fp::from_hex(&l_i.1[2..]).unwrap(), - false, - ), - Pallas::new( - Fp::from_hex(&r_i.0[2..]).unwrap(), - Fp::from_hex(&r_i.1[2..]).unwrap(), - false, - ), - ] - }); - let z1 = Fq::from_hex(&opening.z_1[2..]).unwrap(); - let z2 = Fq::from_hex(&opening.z_2[2..]).unwrap(); - let delta = Pallas::new( - Fp::from_hex(&opening.delta.0[2..]).unwrap(), - Fp::from_hex(&opening.delta.1[2..]).unwrap(), - false, - ); - let sg = Pallas::new( - Fp::from_hex(&opening.sg.0[2..]).unwrap(), - Fp::from_hex(&opening.sg.1[2..]).unwrap(), - false, - ); - let value_to_compare = compute_msm_verification(srs, &sg, &z1).into_affine(); - - fs::write( - "../verifier_circuit/src/inputs.json", - serde_json::to_string(&Inputs { - lr: lr_map - .map(|[l_i, r_i]| { - [ - Point { - x: l_i.x.to_biguint().to_string(), - y: l_i.y.to_biguint().to_string(), - }, - Point { - x: r_i.x.to_biguint().to_string(), - y: r_i.y.to_biguint().to_string(), - }, - ] - }) - .collect(), - z1: z1.to_biguint().to_string(), - z2: z2.to_biguint().to_string(), - delta: Point { - x: delta.x.to_biguint().to_string(), - y: delta.y.to_biguint().to_string(), - }, - sg: Point { - x: sg.x.to_biguint().to_string(), - y: sg.y.to_biguint().to_string(), - }, - expected: Point { - x: value_to_compare.x.to_biguint().to_string(), - y: value_to_compare.y.to_biguint().to_string(), - }, - }) - .unwrap(), - ) - .unwrap(); -} - -fn compute_msm_verification( - srs: &SRS, - sg: &Pallas, - z1: &Fq, -) -> GroupProjective { - let mut points = vec![srs.h]; - let mut scalars = vec![Fq::zero()]; - - let rand_base_i = Fq::one(); - let sg_rand_base_i = Fq::one(); - let neg_rand_base_i = -rand_base_i; - - points.push(*sg); - scalars.push(neg_rand_base_i * z1 - sg_rand_base_i); - - let scalars: Vec<_> = scalars.iter().map(|scalar| scalar.0).collect(); - - VariableBaseMSM::multi_scalar_mul(&points, &scalars) -} diff --git a/public_input_gen/src/state_proof.rs b/public_input_gen/src/state_proof.rs deleted file mode 100644 index 533827bf..00000000 --- a/public_input_gen/src/state_proof.rs +++ /dev/null @@ -1,282 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Default, Debug, Serialize, Deserialize)] -pub struct StateProof { - pub proof: Proof, -} - -#[derive(Default, Debug, Serialize, Deserialize)] -pub struct Proof { - pub openings: Openings, -} - -#[derive(Default, Debug, Serialize, Deserialize)] -pub struct Openings { - pub proof: OpeningProof, -} - -#[derive(Debug, Serialize, Deserialize)] -pub struct OpeningProof { - pub lr: Vec<((String, String), (String, String))>, - pub z_1: String, - pub z_2: String, - pub delta: (String, String), - pub sg: (String, String), -} - -impl Default for OpeningProof { - fn default() -> Self { - Self { - lr: vec![ - ( - ( - "0xc92eea16213da7d6be4058252940ec92dfa1ad8679844b6d810c10b07eb4f20d" - .to_string(), - "0x0adfc94cb948f0d71ff28f342ac58d5a0004fa0e194b93f88d0b668b2b20ca02" - .to_string(), - ), - ( - "0x713ae350b4b3acb93126c8a0d5b09823b9b88ccd4b56ba88be97f8d47e07e52b" - .to_string(), - "0x41b5e4091404d01b954970737297f2bd68a64dd1275f038a63561fcd060db716" - .to_string(), - ), - ), - ( - ( - "0x020d563aeec5fe3fa7db098720c40d62855640e5aed5f0292f3eefc97eb5443f" - .to_string(), - "0x23df927368849ac9b6ec45d0049496afb3bdada0d68966a1ebd76f63c1cd370b" - .to_string(), - ), - ( - "0xf3692bdf550241f9565eb3ada08d9f909a00a39dbc9a4fd7d3e78276bcaa2c3a" - .to_string(), - "0xb8c5f8b96587a7f0f3e37d044f40db9de0b8b0cfc270b39cde3326865af92d1a" - .to_string(), - ), - ), - ( - ( - "0x0991e04448bb832e98a939f377002a1bd275d408f0318e975aba57f2b5aed304" - .to_string(), - "0x6166130b89c7f4928e65f6cfd456f05ad89a4d2dfecd0fb3f70ffa66bc1e770c" - .to_string(), - ), - ( - "0x6dfd3c9ffae972a286449988d458726e6495c2054e98448cbe1eb9c4ea354420" - .to_string(), - "0xad2340505631b90dfba5479d80bf3091a59cbd41e86eabd5aa1ea4c23ad05320" - .to_string(), - ), - ), - ( - ( - "0x49b67f8562d5e299a8f9f13618706d9484972058c5cf1fc8eeca96c1a1532a0d" - .to_string(), - "0x83714b824bbd26a46f8fefa967c862ddb9d846c20e79b5f6043a5cd2389f1323" - .to_string(), - ), - ( - "0x6df0be3227dafd6ae93577249ebb00cd2bee1ace03841f594d95d9c153bea70d" - .to_string(), - "0x009dca12a74994d035ee8ec294c989c0a6a0643080df1e255db9d1671fb0321e" - .to_string(), - ), - ), - ( - ( - "0xab70f69b08b15f624bd1f408b5a4f327e4dadeafe4100950f7a2ba454a363a31" - .to_string(), - "0x2d7bb08977adb4106b621f465d4aeb86a2b6cf8409567a5fc0acdd90a3c7e436" - .to_string(), - ), - ( - "0xfa5e91087940249068fa5dba2926645091da5cc6a9f02fa8adcb6d1e4ffc981a" - .to_string(), - "0xa42cb4a416d407bdebd335223ed1d1b6276fd4279aa73b8aeae45026b4c4ca04" - .to_string(), - ), - ), - ( - ( - "0x325e1268923b7bb29c686a4f5a2cd2b0d365f4166d93bfa7c76f91a26af8bb01" - .to_string(), - "0xe3ccf6fc9892395c691c01fc5b68a58a1d1349da42b89888a86d595c6b920d0d" - .to_string(), - ), - ( - "0x84f151f3a5f7ada9ca820b444a819a22f26fbe28eca08c188c0ce32725d14f2b" - .to_string(), - "0x3c315693cc0423a37c851aa0b5b2a1dbd642496cdb2d97e886f066f215395038" - .to_string(), - ), - ), - ( - ( - "0xdaea6764c5091cb7c4ebfea4776567e35f9aba1631446036569a9eab4720fc20" - .to_string(), - "0x2eb4e7ee0a1570aa11eaa3703e611967fe394b396a6072f78a2b0199bb05a427" - .to_string(), - ), - ( - "0x0555540ac70319cc68e2eb9c872d172f57dbd42559e85833bca83683c1337328" - .to_string(), - "0x871db7d4428e79d8371d752afa399f19bce66bad0fa3f32f58a0dae6a53deb04" - .to_string(), - ), - ), - ( - ( - "0xde289cccf5b6610f1491bd98e3563520d26f40ac462c31a0257a219e2d2a5e06" - .to_string(), - "0x1c932942b94189cdbb37b1945108936df6be4bb155491a022862dd8f2e92053f" - .to_string(), - ), - ( - "0xf9f3e46c9bafbb838e9466a3fad4a65a49ad948bb7a1caa9c672f4d8c3a5a505" - .to_string(), - "0x9ce8b2528262da991b854f71511b0fa7aa2c42057fd723d58ba5589e0a5d0f22" - .to_string(), - ), - ), - ( - ( - "0xa4a095f056d6f9afe82aa43a8967da446427c71328bc05ae14b0572d6a7d9612" - .to_string(), - "0x092772a7cf713ffbd984305ed72ff80c0b26764aeef7d37e9d68a6d4ac3ba53c" - .to_string(), - ), - ( - "0x4428ff05720c578d6b9b7975b649fe019ea1502aea1988a62b1bf5f01de85833" - .to_string(), - "0x3baa552d0e268b2949b778ea49c050ece01b0500876e6b03267e368ee7ec6e34" - .to_string(), - ), - ), - ( - ( - "0xe89f560161d84f4e4129219d61c7848c082e9ff006858d2b82a885a181e3bf22" - .to_string(), - "0x82a6a500cc419d089f060c89ceb3b584090dfc25c53e67c324732d9df4f7cd13" - .to_string(), - ), - ( - "0x39ca01e48df6c8ea6c0213bf6fe3f558b01c97192652dd457121c40a3d4d6706" - .to_string(), - "0xf17d572e18fbd94f2eef5426715daf0e16a19e213a14402ac36c4bf9b876bb33" - .to_string(), - ), - ), - ( - ( - "0x053e28e77bb78fd9ed8c3715337911189b14b112c9ae7b7430ea145befbe8b2a" - .to_string(), - "0x286ae3cc877d950cf1134fa3882b4fa49e401dfce7a7803ba55be471bc579513" - .to_string(), - ), - ( - "0xea0a827a438b46d44c4f57f3569194777b3f6eecfe15fef11bae4a6deebfda3f" - .to_string(), - "0x6cb99c1892dbce04da8c063522fea88553d77b7424e4d9661610e853b1307433" - .to_string(), - ), - ), - ( - ( - "0xa3dc3fdac284f2d42e8518e95585adb49278988aadf645eb310ede1e35918b1d" - .to_string(), - "0x3c38f7e538440b254d44e1d5228e0f3958ffd438ae0f8102efd9436bbc1eb839" - .to_string(), - ), - ( - "0xb6469e86b5d427dddefebf986d84d51502b4ce513f3c6e70d160287e5bd2350f" - .to_string(), - "0x53e87e7310855e181bf3290073f87fad2b38b8061eb06bfb33c4a79d7965df01" - .to_string(), - ), - ), - ( - ( - "0xb7db26744f3fe63b2f2135b729e4600b60a7dd32cb8604e6f23d14cc7cd8a402" - .to_string(), - "0x18370007e45f2ea7f23be2b0ac0c1fcfba6681c93f5bd59f7e00a16169ae5700" - .to_string(), - ), - ( - "0x26f6dc9cea00748a7b8d72c32464d16cb134046c1b4d5c655ff29ce7d994ff13" - .to_string(), - "0xbe2ce9ac32c7ae0fe12ef4a676a3d75ed7fac48267d24ff6049ea05b6cf83325" - .to_string(), - ), - ), - ( - ( - "0x18db1780253c5694aedf227e981dd4678cc72d6fd9c3910aee476a29579df33f" - .to_string(), - "0x38243af32543a107311fa0f80150b530640f1d18b549794b1346d451c71cbf3d" - .to_string(), - ), - ( - "0x7defe22533d77441d2fba1f80206983257155f2939e1f33219a48792635b5518" - .to_string(), - "0x6ba76560809fc17214c3d990e7ef769ebd3b679626bf62ed6a32ca8275e60f22" - .to_string(), - ), - ), - ( - ( - "0x51c16ab705c66cf8ed3929e8c9171d03c7287e7fa69083b972f4bcb56efe3307" - .to_string(), - "0x0f6895f46ae9fd8f497d0db43d10a57fcbdc042745c34e9ed7e4a79d24170e3c" - .to_string(), - ), - ( - "0xad7ddfa6602ba96c29f159f5be08be59b003c80ca7af8f229b921c879ed73f0a" - .to_string(), - "0x7a06a8fdf735f8715cd14ff5d692ae4d83edc64e89b5d31ebd63823eb26d9e33" - .to_string(), - ), - ), - ( - ( - "0x3a85ae5da96d3651211e6289ba841fa679646de128607ac4278313ff4691ef14" - .to_string(), - "0x08c9cc2289735bbf4c6fd34a0b7e903bba97ea485d0146e43bd6efbd95799928" - .to_string(), - ), - ( - "0x0c6237fab519edaeead053eaab2c1dacc7110e297440ed8d4d774a7bff62530a" - .to_string(), - "0xa314a73c2c407c1ca4fbfcb524ca7e695a6591b88bcb0e43a16b8ff247972f0e" - .to_string(), - ), - ), - ( - ( - "0x04005795294886bdc9011a886c101febd85df2500829ce11c6d87f86eee53119" - .to_string(), - "0x0d454f37d30552daed06872c4312d94fcca34241a0c684e5067420fb5ee84c23" - .to_string(), - ), - ( - "0xc0ff61ce5b0ade9573ab7a063f0cb024d7ea4f9cc4d5c0a41da4a4a8ab4c863e" - .to_string(), - "0xe959d22cf121d90f1735c89c44e998359811ebb3cfd0b0684cf7f7de071b3d0d" - .to_string(), - ), - ), - ], - z_1: "0xae391bae81abfa6e07ecf3e8fe4acce3e452b12fb3c69f5d1040b7ff9cfa592c".to_string(), - z_2: "0x954d6b9b9e887b7d7c31516bbf8d7e066baf076de10b5ac39a12fedec8fec425".to_string(), - delta: ( - "0x0d1442f65d271e8f3147ba03f39649de3148851d32655beff7f65429f5755a0c".to_string(), - "0xdb5ecef04bf2858b81aa22faea1311328cfe76930d1baa5ef1beff1c40398a31".to_string(), - ), - sg: ( - "0xffdf3c3f5fd645d68ebf5f896e412d10ea4a70d973ff7dc26e802dd1409c9728".to_string(), - "0x36ada57da4fc8879a15d03a45e87d3ae0de8c6da0158113703a34c421a895d25".to_string(), - ), - } - } -} diff --git a/public_key.txt b/public_key.txt deleted file mode 100644 index ed6e926b..00000000 --- a/public_key.txt +++ /dev/null @@ -1 +0,0 @@ -B62qiy32p8kAKnny8ZFwoMhYpBppM1DWVCqAPBYNcXnsAHhnfAAuXgg diff --git a/setup.sh b/setup.sh deleted file mode 100755 index 0b642c8a..00000000 --- a/setup.sh +++ /dev/null @@ -1,9 +0,0 @@ -git clone https://github.com/lambdaclass/mina_monorepo.git -cd mina_monorepo -git checkout develop -opam install dune -y -eval $(opam env) -opam switch import opam.export -y -cd src/lib/snarkyjs -npm run bindings -npm run build diff --git a/state_utility/merkle_path/tests/process_input.rs b/state_utility/merkle_path/tests/process_input.rs index 0153d051..44c2f204 100644 --- a/state_utility/merkle_path/tests/process_input.rs +++ b/state_utility/merkle_path/tests/process_input.rs @@ -4,7 +4,7 @@ mod test { #[test] fn test_input_json() { process_input_json( - "http://5.9.57.89:3085/graphql", + "http://127.0.0.1:3085/graphql", "./tests/public_key.txt", "./tests/leaf_hash.bin", "./tests/merkle_path.bin", diff --git a/test_prover/.eslintrc.cjs b/test_prover/.eslintrc.cjs deleted file mode 100644 index a887a931..00000000 --- a/test_prover/.eslintrc.cjs +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - node: true, - jest: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:snarkyjs/recommended', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 'latest', - }, - plugins: ['@typescript-eslint', 'snarkyjs'], - rules: { - 'no-constant-condition': 'off', - 'prefer-const': 'off', - }, -}; diff --git a/test_prover/.gitattributes b/test_prover/.gitattributes deleted file mode 100644 index ca46ad74..00000000 --- a/test_prover/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -# Use line endings appropriate for the system. This prevents Git from -# complaining about project template line endings when committing on Windows. -* text=auto eol=lf diff --git a/test_prover/.github/workflows/ci.yml b/test_prover/.github/workflows/ci.yml deleted file mode 100644 index 227fff2c..00000000 --- a/test_prover/.github/workflows/ci.yml +++ /dev/null @@ -1,26 +0,0 @@ -# -# ci.yml -# -# Run tests for all pushed commits and opened pull requests on Github. -# - -name: CI -on: [push, pull_request] -jobs: - test: - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - name: Set up NodeJS - uses: actions/setup-node@v2 - with: - node-version: '16' - - name: Git checkout - uses: actions/checkout@v2 - - name: NPM ci, build, & test - run: | - npm install - npm run build --if-present - npm test - env: - CI: true diff --git a/test_prover/.gitignore b/test_prover/.gitignore deleted file mode 100644 index e0ff9109..00000000 --- a/test_prover/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# NodeJS -node_modules -build -coverage - -# Editor -.vscode - -# System -.DS_Store - -# Never commit keys to Git! -keys diff --git a/test_prover/.npmignore b/test_prover/.npmignore deleted file mode 100644 index be866bc3..00000000 --- a/test_prover/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -# TypeScript files -src - -# Editor -.vscode - -# System -.DS_Store - -# Never reveal your keys! -keys diff --git a/test_prover/.prettierignore b/test_prover/.prettierignore deleted file mode 100644 index 4601a6f1..00000000 --- a/test_prover/.prettierignore +++ /dev/null @@ -1,14 +0,0 @@ -# NodeJS -node_modules -build -coverage -.husky - -# Editor -.vscode - -# System -.DS_Store - -# Misc -LICENSE diff --git a/test_prover/.prettierrc b/test_prover/.prettierrc deleted file mode 100644 index 92f97e75..00000000 --- a/test_prover/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "semi": true, - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "es5" -} diff --git a/test_prover/LICENSE b/test_prover/LICENSE deleted file mode 100644 index 6e3b8403..00000000 --- a/test_prover/LICENSE +++ /dev/null @@ -1,199 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/test_prover/Makefile b/test_prover/Makefile deleted file mode 100644 index 061eaed3..00000000 --- a/test_prover/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -.PHONY: build - -build: - @npm install && npm run build && node build/src/main.js diff --git a/test_prover/README.md b/test_prover/README.md deleted file mode 100644 index 2f55cf7f..00000000 --- a/test_prover/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# Mina zkApp: Test_proof - -This template uses TypeScript. - -## How to build - -```sh -npm run build -``` - -## How to run tests - -```sh -npm run test -npm run testw # watch mode -``` - -## How to run coverage - -```sh -npm run coverage -``` - -## License - -[Apache-2.0](LICENSE) diff --git a/test_prover/babel.config.cjs b/test_prover/babel.config.cjs deleted file mode 100644 index c74fb53e..00000000 --- a/test_prover/babel.config.cjs +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [['@babel/preset-env', { targets: { node: 'current' } }]], -}; diff --git a/test_prover/config.json b/test_prover/config.json deleted file mode 100644 index 73c34d15..00000000 --- a/test_prover/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "version": 1, - "deployAliases": {} -} diff --git a/test_prover/jest-resolver.cjs b/test_prover/jest-resolver.cjs deleted file mode 100644 index 6a0214a4..00000000 --- a/test_prover/jest-resolver.cjs +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = (request, options) => { - return options.defaultResolver(request, { - ...options, - packageFilter: (pkg) => { - // When importing snarkyjs, we specify the Node ESM import as Jest by default imports the web version - if (pkg.name === 'snarkyjs') { - return { - ...pkg, - main: pkg.exports.node.import, - }; - } - if (pkg.name === 'node-fetch') { - return { ...pkg, main: pkg.main }; - } - return { - ...pkg, - main: pkg.module || pkg.main, - }; - }, - }); -}; diff --git a/test_prover/jest.config.js b/test_prover/jest.config.js deleted file mode 100644 index ee9f6a41..00000000 --- a/test_prover/jest.config.js +++ /dev/null @@ -1,24 +0,0 @@ -/** @type {import('@ts-jest/dist/types').InitialOptionsTsJest} */ -export default { - verbose: true, - preset: 'ts-jest/presets/default-esm', - testEnvironment: 'node', - globals: { - 'ts-jest': { - useESM: true, - }, - }, - testTimeout: 1_000_000, - transform: { - '^.+\\.(t)s$': 'ts-jest', - '^.+\\.(j)s$': 'babel-jest', - }, - resolver: '/jest-resolver.cjs', - transformIgnorePatterns: [ - '/node_modules/(?!(tslib|snarkyjs/node_modules/tslib))', - ], - modulePathIgnorePatterns: ['/build/'], - moduleNameMapper: { - '^(\\.{1,2}/.+)\\.js$': '$1', - }, -}; diff --git a/test_prover/package-lock.json b/test_prover/package-lock.json deleted file mode 100644 index eebcfd2a..00000000 --- a/test_prover/package-lock.json +++ /dev/null @@ -1,9051 +0,0 @@ -{ - "name": "test_proof", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "test_proof", - "version": "0.1.0", - "license": "Apache-2.0", - "devDependencies": { - "@babel/preset-env": "^7.16.4", - "@babel/preset-typescript": "^7.16.0", - "@types/jest": "^27.0.3", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "eslint": "^8.7.0", - "eslint-plugin-snarkyjs": "^0.1.0", - "jest": "^27.3.1", - "lint-staged": "^11.0.1", - "prettier": "^2.3.2", - "ts-jest": "^27.0.7", - "typescript": "^4.7.2" - }, - "peerDependencies": { - "snarkyjs": "0.12.*" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz", - "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-typescript": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", - "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", - "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", - "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", - "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", - "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", - "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", - "dev": true, - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.8.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", - "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", - "dev": true, - "dependencies": { - "undici-types": "~5.25.1" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "16.0.6", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.6.tgz", - "integrity": "sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz", - "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.32.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "peer": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001549", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz", - "integrity": "sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/core-js-compat": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.0.tgz", - "integrity": "sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-gpu": { - "version": "5.0.37", - "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.37.tgz", - "integrity": "sha512-EraWs84faI4iskB4qvE39bevMIazEvd1RpoyGLOBesRLbiz6eMeJqqRPHjEFClfRByYZzi9IzU35rBXIO76oDw==", - "peer": true, - "dependencies": { - "webgl-constants": "^1.1.1" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.556", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.556.tgz", - "integrity": "sha512-6RPN0hHfzDU8D56E72YkDvnLw5Cj2NMXZGg3UkgyoHxjVhG99KZpsKgBWMmTy0Ei89xwan+rbRsVB9yzATmYzQ==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", - "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.51.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-snarkyjs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-snarkyjs/-/eslint-plugin-snarkyjs-0.1.0.tgz", - "integrity": "sha512-wq23R8uAQcdBQwVyweI4hKPGtPExPSMCJXGNJggn4iYv7B4isuE29ETj3+Jpw9r3kmm4rng92HnqvZdl3c6ihQ==", - "dev": true - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "peer": true, - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dev": true, - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", - "peer": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/lint-staged": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz", - "integrity": "sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==", - "dev": true, - "dependencies": { - "cli-truncate": "2.1.0", - "colorette": "^1.4.0", - "commander": "^8.2.0", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "execa": "^5.1.1", - "listr2": "^3.12.2", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "3.3.0", - "supports-color": "8.1.1" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lint-staged/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/listr2": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", - "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.1", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-update/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "peer": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/snarkyjs": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/snarkyjs/-/snarkyjs-0.12.1.tgz", - "integrity": "sha512-Zv1tj+NBoid2O4Pewj1sUCcqYApoDJ4M6I/Lm7WzpRwf1HwU3h4rUF10mDfBaX4fb6A+9OXLI6cmR8P2URVehg==", - "deprecated": "SnarkyJS has been renamed. Please install o1js - npmjs.com/package/o1js", - "peer": true, - "dependencies": { - "blakejs": "1.2.1", - "detect-gpu": "^5.0.5", - "isomorphic-fetch": "^3.0.0", - "js-sha256": "^0.9.0", - "reflect-metadata": "^0.1.13", - "tslib": "^2.3.0" - }, - "bin": { - "snarky-run": "src/build/run.js" - }, - "engines": { - "node": ">=16.4.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-jest": { - "version": "27.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", - "integrity": "sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webgl-constants": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz", - "integrity": "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==", - "peer": true - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.19", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", - "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==", - "peer": true - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/test_prover/package.json b/test_prover/package.json deleted file mode 100644 index 4b6f042e..00000000 --- a/test_prover/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "test_proof", - "version": "0.1.0", - "description": "", - "author": "", - "license": "Apache-2.0", - "keywords": [ - "mina-zkapp", - "mina-zk-app", - "mina-dapp", - "zkapp" - ], - "type": "module", - "main": "build/src/index.js", - "types": "build/src/index.d.ts", - "scripts": { - "build": "tsc", - "buildw": "tsc --watch", - "coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage", - "format": "prettier --write --ignore-unknown **/*", - "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js", - "testw": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch", - "lint": "npx eslint src/* --fix" - }, - "lint-staged": { - "**/*": [ - "eslint src/* --fix", - "prettier --write --ignore-unknown" - ] - }, - "devDependencies": { - "@babel/preset-env": "^7.16.4", - "@babel/preset-typescript": "^7.16.0", - "@types/jest": "^27.0.3", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "eslint": "^8.7.0", - "eslint-plugin-snarkyjs": "^0.1.0", - "jest": "^27.3.1", - "lint-staged": "^11.0.1", - "prettier": "^2.3.2", - "ts-jest": "^27.0.7", - "typescript": "^4.7.2" - }, - "peerDependencies": { - "snarkyjs": "0.12.*" - } -} diff --git a/test_prover/src/Addition.ts b/test_prover/src/Addition.ts deleted file mode 100644 index b5972401..00000000 --- a/test_prover/src/Addition.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { - Field, - SmartContract, - state, - State, - method -} from 'snarkyjs'; - -export class Addition extends SmartContract { - @state(Field) num = State(); - - // initialize the state of the contract - init() { - super.init(); - this.num.set(Field(0)); - } - - // generates a zk proof - @method update(operand: Field) { - // reads the value from the blockchain - const currentState = this.num.get(); - this.num.assertEquals(currentState); - - // writes the new value to the blockchain - this.num.set(currentState.add(operand)); - } -} diff --git a/test_prover/src/index.ts b/test_prover/src/index.ts deleted file mode 100644 index 22b2f736..00000000 --- a/test_prover/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Addition } from './Addition.js'; - -export { Addition }; diff --git a/test_prover/src/main.ts b/test_prover/src/main.ts deleted file mode 100644 index e05751ee..00000000 --- a/test_prover/src/main.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Addition } from "./Addition.js"; -import { - Field, - Mina, - PrivateKey, - AccountUpdate, - verify, - JsonProof, - Bool, -} from 'snarkyjs'; - -console.log('SnarkyJS loaded'); -const Local = Mina.LocalBlockchain(); -Mina.setActiveInstance(Local); -const { privateKey: deployerKey, publicKey: deployerAccount } = Local.testAccounts[0]; -const { privateKey: senderKey, publicKey: senderAccount } = Local.testAccounts[1]; -// ---------------------------------------------------- -// Create a public/private key pair. The public key is your address and where you deploy the zkApp to -const zkAppPrivateKey = PrivateKey.random(); -const zkAppAddress = zkAppPrivateKey.toPublicKey(); -// create an instance of Addition - and deploy it to zkAppAddress -const zkAppInstance = new Addition(zkAppAddress); -const { verificationKey } = await Addition.compile(); - -// create the transaction that deploys the Smart Contract -const deployTxn = await Mina.transaction(deployerAccount, () => { - AccountUpdate.fundNewAccount(deployerAccount); - zkAppInstance.deploy(); -}); -// sign and send the transaction to the local blockchain -await deployTxn.sign([deployerKey, zkAppPrivateKey]).send(); - -// get the initial state of Addition after deployment -const num0 = zkAppInstance.num.get(); -console.log('state after init:', num0.toString()); -// ---------------------------------------------------- -const txn1 = await Mina.transaction(senderAccount, () => { - zkAppInstance.update(Field(5)); -}); - -// verify the proof (this is done on the client side) -// it's not necessary to do this on the client side, but it's a good way to test the proof -let proof = (await txn1.prove())[0]; -let isValidProof = await verify(proof?.toJSON() as JsonProof, verificationKey.data); -Bool(isValidProof).assertTrue(); -console.log('Proof was verified successfully!'); - -await txn1.sign([senderKey]).send(); -console.log('Transaction was sent successfully!'); - -// get the state of Addition after the transaction -const num1 = zkAppInstance.num.get(); -console.log('state after txn1:', num1.toString()); -// ---------------------------------------------------- -console.log('Shutting down'); diff --git a/test_prover/tsconfig.json b/test_prover/tsconfig.json deleted file mode 100644 index ec3b1014..00000000 --- a/test_prover/tsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "compilerOptions": { - "target": "es2020", - "module": "es2022", - "lib": ["dom", "esnext"], - "outDir": "./build", - "rootDir": ".", - "strict": true, - "strictPropertyInitialization": false, // to enable generic constructors, e.g. on CircuitValue - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "esModuleInterop": true, - "moduleResolution": "node", - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "allowJs": true, - "declaration": true, - "sourceMap": true, - "noFallthroughCasesInSwitch": true, - "allowSyntheticDefaultImports": true - }, - "include": ["./src"] -} diff --git a/verifier_circuit/.eslintrc.cjs b/verifier_circuit/.eslintrc.cjs deleted file mode 100644 index 71f0aea1..00000000 --- a/verifier_circuit/.eslintrc.cjs +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - node: true, - jest: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:o1js/recommended', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 'latest', - }, - plugins: ['@typescript-eslint', 'o1js'], - rules: { - 'no-constant-condition': 'off', - 'prefer-const': 'off', - }, -}; diff --git a/verifier_circuit/.gitattributes b/verifier_circuit/.gitattributes deleted file mode 100644 index ca46ad74..00000000 --- a/verifier_circuit/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -# Use line endings appropriate for the system. This prevents Git from -# complaining about project template line endings when committing on Windows. -* text=auto eol=lf diff --git a/verifier_circuit/.github/workflows/ci.yml b/verifier_circuit/.github/workflows/ci.yml deleted file mode 100644 index 227fff2c..00000000 --- a/verifier_circuit/.github/workflows/ci.yml +++ /dev/null @@ -1,26 +0,0 @@ -# -# ci.yml -# -# Run tests for all pushed commits and opened pull requests on Github. -# - -name: CI -on: [push, pull_request] -jobs: - test: - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - name: Set up NodeJS - uses: actions/setup-node@v2 - with: - node-version: '16' - - name: Git checkout - uses: actions/checkout@v2 - - name: NPM ci, build, & test - run: | - npm install - npm run build --if-present - npm test - env: - CI: true diff --git a/verifier_circuit/.gitignore b/verifier_circuit/.gitignore deleted file mode 100644 index 7546d6f9..00000000 --- a/verifier_circuit/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -# NodeJS -node_modules -build -coverage - -# Editor -.vscode - -# System -.DS_Store - -# Never commit keys to Git! -keys - -proof.txt -src/proof.json -src/opening_proof_fields.json -steps.json diff --git a/verifier_circuit/.npmignore b/verifier_circuit/.npmignore deleted file mode 100644 index be866bc3..00000000 --- a/verifier_circuit/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -# TypeScript files -src - -# Editor -.vscode - -# System -.DS_Store - -# Never reveal your keys! -keys diff --git a/verifier_circuit/.prettierignore b/verifier_circuit/.prettierignore deleted file mode 100644 index 526b9ce6..00000000 --- a/verifier_circuit/.prettierignore +++ /dev/null @@ -1,13 +0,0 @@ -# NodeJS -node_modules -build -coverage - -# Editor -.vscode - -# System -.DS_Store - -# Misc -LICENSE diff --git a/verifier_circuit/.prettierrc b/verifier_circuit/.prettierrc deleted file mode 100644 index 92f97e75..00000000 --- a/verifier_circuit/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "semi": true, - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "es5" -} diff --git a/verifier_circuit/LICENSE b/verifier_circuit/LICENSE deleted file mode 100644 index 6e3b8403..00000000 --- a/verifier_circuit/LICENSE +++ /dev/null @@ -1,199 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/verifier_circuit/Makefile b/verifier_circuit/Makefile deleted file mode 100644 index 0b6f324f..00000000 --- a/verifier_circuit/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -.PHONY: build - -build: - @npm run preinstall - @npm run build - @node build/src/main.js diff --git a/verifier_circuit/babel.config.cjs b/verifier_circuit/babel.config.cjs deleted file mode 100644 index c74fb53e..00000000 --- a/verifier_circuit/babel.config.cjs +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [['@babel/preset-env', { targets: { node: 'current' } }]], -}; diff --git a/verifier_circuit/config.json b/verifier_circuit/config.json deleted file mode 100644 index 73c34d15..00000000 --- a/verifier_circuit/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "version": 1, - "deployAliases": {} -} diff --git a/verifier_circuit/jest-resolver.cjs b/verifier_circuit/jest-resolver.cjs deleted file mode 100644 index 11c8fc28..00000000 --- a/verifier_circuit/jest-resolver.cjs +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = (request, options) => { - return options.defaultResolver(request, { - ...options, - packageFilter: (pkg) => { - // When importing o1js, we specify the Node ESM import as Jest by default imports the web version - if (pkg.name === 'o1js') { - return { - ...pkg, - main: pkg.exports.node.import, - }; - } - if (pkg.name === 'node-fetch') { - return { ...pkg, main: pkg.main }; - } - return { - ...pkg, - main: pkg.module || pkg.main, - }; - }, - }); -}; diff --git a/verifier_circuit/jest.config.js b/verifier_circuit/jest.config.js deleted file mode 100644 index 3506552f..00000000 --- a/verifier_circuit/jest.config.js +++ /dev/null @@ -1,24 +0,0 @@ -/** @type {import('@ts-jest/dist/types').InitialOptionsTsJest} */ -export default { - verbose: true, - preset: 'ts-jest/presets/default-esm', - testEnvironment: 'node', - globals: { - 'ts-jest': { - useESM: true, - }, - }, - testTimeout: 1_000_000, - transform: { - '^.+\\.(t)s$': 'ts-jest', - '^.+\\.(j)s$': 'babel-jest', - }, - resolver: '/jest-resolver.cjs', - transformIgnorePatterns: [ - '/node_modules/(?!(tslib|o1js/node_modules/tslib))', - ], - modulePathIgnorePatterns: ['/build/', '/o1js'], - moduleNameMapper: { - '^(\\.{1,2}/.+)\\.js$': '$1', - }, -}; diff --git a/verifier_circuit/o1js b/verifier_circuit/o1js deleted file mode 160000 index 0dea027d..00000000 --- a/verifier_circuit/o1js +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0dea027dd62464a7548c80a83b75cdc2e0d4dce3 diff --git a/verifier_circuit/package-lock.json b/verifier_circuit/package-lock.json deleted file mode 100644 index 9281591e..00000000 --- a/verifier_circuit/package-lock.json +++ /dev/null @@ -1,10819 +0,0 @@ -{ - "name": "verifier_circuit", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "verifier_circuit", - "version": "0.1.0", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "fs-extra": "^11.2.0" - }, - "devDependencies": { - "@babel/preset-env": "^7.16.4", - "@babel/preset-typescript": "^7.16.0", - "@types/jest": "^27.5.2", - "@types/node": "^20.6.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "eslint": "^8.7.0", - "eslint-plugin-o1js": "^0.4.0", - "jest": "^28.1.3", - "lint-staged": "^11.0.1", - "o1js": "file:o1js", - "prettier": "^2.3.2", - "ts-jest": "^28.0.8", - "typescript": "^4.9.5" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz", - "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-typescript": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", - "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/console/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/console/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/console/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "dependencies": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect/node_modules/@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/expect/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/expect/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/expect/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/expect/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/expect/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/expect/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@jest/expect/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/fake-timers/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/fake-timers/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/fake-timers/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/fake-timers/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/fake-timers/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@jest/fake-timers/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "dev": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@playwright/test": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.39.0.tgz", - "integrity": "sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==", - "dev": true, - "dependencies": { - "playwright": "1.39.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz", - "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.6", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz", - "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz", - "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz", - "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz", - "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/isomorphic-fetch": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.36.tgz", - "integrity": "sha512-ulw4d+vW1HKn4oErSmNN2HYEcHGq0N1C5exlrMM0CRqX1UUpFhGb5lwiom5j9KN3LBJJDLRmYIZz1ghm7FIzZw==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", - "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", - "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", - "dev": true, - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.8.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", - "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", - "dev": true, - "dependencies": { - "undici-types": "~5.25.1" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz", - "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", - "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", - "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.2", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", - "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "dependencies": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz", - "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.32.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/cachedir": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", - "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001551", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001551.tgz", - "integrity": "sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/core-js-compat": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.0.tgz", - "integrity": "sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.559", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.559.tgz", - "integrity": "sha512-iS7KhLYCSJbdo3rUSkhDTVuFNCV34RKs2UaB9Ecr7VlqzjjWW//0nfsFF5dtDmyXlZQaDYYtID5fjtC/6lpRug==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", - "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.51.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-o1js": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-o1js/-/eslint-plugin-o1js-0.4.0.tgz", - "integrity": "sha512-12qI6OvAMtUIh8x9lB5uVzJbRMSR6tGrbCRM98fcCmll1FNvVSUIaat3CWhH17tkcjoyVSaFy0I/WzZcqPqaUA==", - "dev": true - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/expect/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/expect/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/expect/node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/expect/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/howslow": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/howslow/-/howslow-0.1.0.tgz", - "integrity": "sha512-AD1ERdUseZEi/XyLBa/9LNv4l4GvCCkNT76KpYp0YEv1up8Ow/ZzLy71OtlSdv6b39wxvzJKq9VZLH/83PrQkQ==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", - "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.3", - "@jest/types": "^28.1.3", - "import-local": "^3.0.2", - "jest-cli": "^28.1.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-circus/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-config/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-environment-node/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-environment-node/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-environment-node/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-haste-map/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-haste-map/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-haste-map/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-haste-map/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-haste-map/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-haste-map/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-haste-map/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runtime/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runtime/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/lint-staged": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz", - "integrity": "sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==", - "dev": true, - "dependencies": { - "cli-truncate": "2.1.0", - "colorette": "^1.4.0", - "commander": "^8.2.0", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "execa": "^5.1.1", - "listr2": "^3.12.2", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "3.3.0", - "supports-color": "8.1.1" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lint-staged/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/listr2": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", - "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.1", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-update/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/o1js": { - "resolved": "o1js", - "link": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/playwright": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.39.0.tgz", - "integrity": "sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==", - "dev": true, - "dependencies": { - "playwright-core": "1.39.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz", - "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==", - "dev": true, - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/replace-in-file": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.3.5.tgz", - "integrity": "sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.2", - "glob": "^7.2.0", - "yargs": "^17.2.1" - }, - "bin": { - "replace-in-file": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/replace-in-file/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/replace-in-file/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/replace-in-file/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/replace-in-file/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/replace-in-file/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shiki": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", - "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", - "dev": true, - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/ts-jest": { - "version": "28.0.8", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", - "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^28.0.0", - "json5": "^2.2.1", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^28.0.0", - "babel-jest": "^28.0.0", - "jest": "^28.0.0", - "typescript": ">=4.3" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ts-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-jest/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/ts-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedoc": { - "version": "0.24.8", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz", - "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==", - "dev": true, - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.0", - "shiki": "^0.14.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 14.14" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" - } - }, - "node_modules/typedoc-plugin-markdown": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.16.0.tgz", - "integrity": "sha512-eeiC78fDNGFwemPIHiwRC+mEC7W5jwt3fceUev2gJ2nFnXpVHo8eRrpC9BLWZDee6ehnz/sPmNjizbXwpfaTBw==", - "dev": true, - "dependencies": { - "handlebars": "^4.7.7" - }, - "peerDependencies": { - "typedoc": ">=0.24.0" - } - }, - "node_modules/typedoc-plugin-merge-modules": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-merge-modules/-/typedoc-plugin-merge-modules-5.1.0.tgz", - "integrity": "sha512-jXH27L/wlxFjErgBXleh3opVgjVTXFEuBo68Yfl18S9Oh/IqxK6NV94jlEJ9hl4TXc9Zm2l7Rfk41CEkcCyvFQ==", - "dev": true, - "peerDependencies": { - "typedoc": "0.24.x || 0.25.x" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-fetch": { - "version": "3.6.19", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", - "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "o1js": { - "version": "0.16.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "blakejs": "1.2.1", - "cachedir": "^2.4.0", - "isomorphic-fetch": "^3.0.0", - "js-sha256": "^0.9.0", - "reflect-metadata": "^0.1.13", - "tslib": "^2.3.0" - }, - "bin": { - "snarky-run": "src/build/run.js" - }, - "devDependencies": { - "@noble/hashes": "^1.3.2", - "@playwright/test": "^1.25.2", - "@types/isomorphic-fetch": "^0.0.36", - "@types/jest": "^27.0.0", - "@types/node": "^18.14.2", - "@typescript-eslint/eslint-plugin": "^5.0.0", - "esbuild": "^0.19.2", - "eslint": "^8.0.0", - "expect": "^29.0.1", - "fs-extra": "^10.0.0", - "glob": "^8.0.3", - "howslow": "^0.1.0", - "jest": "^28.1.3", - "minimist": "^1.2.7", - "prettier": "^2.8.4", - "replace-in-file": "^6.3.5", - "rimraf": "^3.0.2", - "ts-jest": "^28.0.8", - "typedoc": "^0.24.8", - "typedoc-plugin-markdown": "^3.15.3", - "typedoc-plugin-merge-modules": "^5.0.1", - "typescript": "5.1" - }, - "engines": { - "node": ">=16.4.0" - } - }, - "o1js/node_modules/@types/node": { - "version": "18.18.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz", - "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==", - "dev": true - }, - "o1js/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "o1js/node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - } - } -} diff --git a/verifier_circuit/package.json b/verifier_circuit/package.json deleted file mode 100644 index c7ed41e6..00000000 --- a/verifier_circuit/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "verifier_circuit", - "version": "0.1.0", - "description": "", - "author": "", - "license": "Apache-2.0", - "keywords": [ - "mina-zkapp", - "mina-zk-app", - "mina-dapp", - "zkapp" - ], - "type": "module", - "main": "build/src/index.js", - "types": "build/src/index.d.ts", - "scripts": { - "build": "tsc", - "buildw": "tsc --watch", - "coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage", - "format": "prettier --write --ignore-unknown **/*", - "preinstall": "cd o1js && npm run build", - "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js", - "testw": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch", - "lint": "npx eslint src/* --fix" - }, - "lint-staged": { - "**/*": [ - "eslint src/* --fix", - "prettier --write --ignore-unknown" - ] - }, - "devDependencies": { - "@babel/preset-env": "^7.16.4", - "@babel/preset-typescript": "^7.16.0", - "@types/jest": "^27.5.2", - "@types/node": "^20.6.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "eslint": "^8.7.0", - "eslint-plugin-o1js": "^0.4.0", - "jest": "^28.1.3", - "lint-staged": "^11.0.1", - "o1js": "file:o1js", - "prettier": "^2.3.2", - "ts-jest": "^28.0.8", - "typescript": "^4.9.5" - }, - "dependencies": { - "fs-extra": "^11.2.0" - } -} diff --git a/verifier_circuit/src/SRS.ts b/verifier_circuit/src/SRS.ts deleted file mode 100644 index 2b8e7ebc..00000000 --- a/verifier_circuit/src/SRS.ts +++ /dev/null @@ -1,84 +0,0 @@ -import lagrange_bases_json from "../test_data/lagrange_bases.json" assert { type: "json" }; -import { BlindedCommitment, PolyComm } from "./poly_commitment/commitment.js"; -import { readFileSync } from "fs"; -import { ForeignScalar } from "./foreign_fields/foreign_scalar.js"; -import { ForeignPallas } from "./foreign_fields/foreign_pallas.js"; - -let srs_json; -try { - console.log("Using SRS file"); - srs_json = JSON.parse(readFileSync("./test_data/srs.json", "utf-8")); -} catch (e) { - console.log("Using test SRS"); - srs_json = { - g: [ - ["24533576165769248459550833334830854594262873459712423377895708212271843679280", - "1491943283321085992458304042389285332496706344738505795532548822057073739620"] - ], - h: [ - "15427374333697483577096356340297985232933727912694971579453397496858943128065", - "2509910240642018366461735648111399592717548684137438645981418079872989533888" - ] - }; -} - -let g_json: string[][] = srs_json.g; -let h_json: string[] = srs_json.h; - -// based on the test's domain -interface LagrangeBaseJSON { - "32": { - unshifted: { - x: string, - y: string, - }[], - shifted: null - }[] -} - -export class SRS { - /// The vector of group elements for committing to polynomials in coefficient form - g: ForeignPallas[]; - /// A group element used for blinding commitments - h: ForeignPallas; - /// Commitments to Lagrange bases, per domain size - lagrangeBases: Map[]> - - static createFromJSON() { - let g: ForeignPallas[] = g_json.map((g_i_json) => this.#createGroupFromJSON(g_i_json)); - let h = this.#createGroupFromJSON(h_json); - return new SRS(g, h); - } - - static #createGroupFromJSON(group_json: string[]) { - return new ForeignPallas({ x: BigInt(group_json[0]), y: BigInt(group_json[1]) }); - } - static #createLagrangeBasesFromJSON(json: LagrangeBaseJSON): Map[]> { - let map_unshifted = (unshifted: { x: string, y: string }[]) => - unshifted.map(({ x, y }) => this.#createGroupFromJSON([x, y])) - //let map_shifted = (shifted: { x: string, y: string } | undefined) => - // shifted ? this.#createGroupFromJSON([shifted.x, shifted.y]) : undefined; - let map_shifted = (_shifted: null) => undefined; - - let lagrange_bases = json[32].map(({ unshifted, shifted }) => - new PolyComm(map_unshifted(unshifted), map_shifted(shifted))); - return new Map[]>([[32, lagrange_bases]]); - } - - constructor(g: ForeignPallas[], h: ForeignPallas) { - this.g = g; - this.h = h; - this.lagrangeBases = SRS.#createLagrangeBasesFromJSON(lagrange_bases_json); - } - - /* - * Turns a non-hiding polynomial commitment into a hidding polynomial commitment. Transforms each given `` into `( + wH, w)`. - */ - maskCustom(com: PolyComm, blinders: PolyComm): BlindedCommitment | undefined { - let commitment = com.zip_and_map(blinders, ([g, b]) => { - let g_masked = this.h.scale(b); - return g_masked.completeAdd(g) as ForeignPallas; - }) - return { commitment: commitment, blinders: blinders } - } -} diff --git a/verifier_circuit/src/alphas.ts b/verifier_circuit/src/alphas.ts deleted file mode 100644 index a0e6fa39..00000000 --- a/verifier_circuit/src/alphas.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { ArgumentType, ArgumentTypeID, GateType } from "./circuits/gate.js" -import { Scalar } from "o1js" -import { ForeignScalar } from "./foreign_fields/foreign_scalar.js" -import { VerifierResult, verifierErr, verifierOk } from "./error.js"; - -/** - * This type can be used to create a mapping between powers of alpha and constraint types. - * See `default()` to create one (not implemented yet), - * and `register()` to register a new mapping (not implemented yet). - * Once you know the alpha value, you can convert this type to a `Alphas`. - * - * Here alpha is a challenge generated by Fiat-Shamir and every constraint (in polynomial - * form) will get multiplied by a power to make a linearly independent combination - * (sometimes called the "main polynomial $f$"), of which soundness arguments can be made. -*/ -export class Alphas { - /** - * The next power of alpha to use. - * The end result will be [1, alpha^(next_power - 1)] - */ - next_power: number - /** The mapping between constraint types and powers of alpha */ - mapping: Map - /** - * The powers of alpha: 1, alpha, alpha^2, .. - * If not undefined, you can't register new contraints. - */ - alphas?: ForeignScalar[] - - constructor( - next_power: number, - mapping: Map, - alphas?: ForeignScalar[] - ) { - this.next_power = next_power; - this.mapping = mapping, - this.alphas = alphas; - } - - /** - * Instantiates the ranges with an actual field element `alpha`. - * Once you call this function, you cannot register new constraints. - */ - instantiate(alpha: ForeignScalar) { - let last_power = ForeignScalar.from(1).assertAlmostReduced(); - let alphas = Array(); - alphas.push(last_power); - - for (let _ = 1; _ < this.next_power; _++) { - last_power = last_power.mul(alpha).assertAlmostReduced(); - alphas.push(last_power); - } - this.alphas = alphas; - } - - /** - * Retrieves the powers of alpha, upperbounded by `num` - */ - getAlphas(ty: ArgumentType, num: number): VerifierResult { - if (ty.kind === "gate") { - ty.type = GateType.Zero; - } - - const range = this.mapping.get(ArgumentType.id(ty))!; - if (num > range[1]) { - return verifierErr("asked for " + num + " alphas but there aren't as many."); - } - - const powers = this.alphas!.slice(range[0], range[0] + num); - return verifierOk(new AlphasIterator(powers)); - } -} - -export class AlphasIterator { - powers: ForeignScalar[] - curr_index: number - - constructor(powers: ForeignScalar[]) { - this.powers = powers; - this.curr_index = 0; - } - - next(): ForeignScalar { - return this.powers[this.curr_index++]; - } -} diff --git a/verifier_circuit/src/circuits/gate.ts b/verifier_circuit/src/circuits/gate.ts deleted file mode 100644 index 69e2d3ff..00000000 --- a/verifier_circuit/src/circuits/gate.ts +++ /dev/null @@ -1,73 +0,0 @@ -export enum GateType { - /** Zero gate */ - Zero, - /** Generic arithmetic gate */ - Generic, - /** Poseidon permutation gate */ - Poseidon, - /** Complete EC addition in Affine form */ - CompleteAdd, - /** EC variable base scalar multiplication */ - VarBaseMul, - /** EC variable base scalar multiplication with group endomorphim optimization */ - EndoMul, - /** Gate for computing the scalar corresponding to an endoscaling */ - EndoMulScalar, - /** Lookup */ - Lookup, - // Cairo - CairoClaim, - CairoInstruction, - CairoFlags, - CairoTransition, - // Range check - RangeCheck0, - RangeCheck1, - ForeignFieldAdd, - ForeignFieldMul, - // Gates for Keccak - Xor16, - Rot64, -} - -/** - * A constraint type represents a polynomial that will be part of the final - * equation f (the circuit equation) - */ -export namespace ArgumentType { - /** - * Gates in the PLONK constraint system. - * As gates are mutually exclusive (a single gate is set per row), - * we can reuse the same powers of alpha across gates. - */ - export type Gate = { - kind: "gate", - type: GateType - } - - /** The permutation argument */ - export type Permutation = { - kind: "permutation", - } - - /** The lookup argument */ - export type Lookup = { - kind: "lookup", - } - - export function id(arg: ArgumentType): ArgumentTypeID { - if (arg.kind === "gate") return arg.kind + arg.type; - return arg.kind; - } -} - -export type ArgumentType = - | ArgumentType.Gate - | ArgumentType.Permutation - | ArgumentType.Lookup - -/** - * This is necessary to use an argument type as a key in a map, as `Map` - * will compare a key by reference and not by value - */ -export type ArgumentTypeID = string; diff --git a/verifier_circuit/src/error.ts b/verifier_circuit/src/error.ts deleted file mode 100644 index f027cb3f..00000000 --- a/verifier_circuit/src/error.ts +++ /dev/null @@ -1,28 +0,0 @@ -export type VerifierOk = { state: "ok", data: T }; -export type VerifierErr = { state: "err", msg: string }; - -export type VerifierResult = VerifierOk | VerifierErr; - -export function verifierErr(msg: string): VerifierResult { - return { state: "err", msg } -} - -export function verifierOk(data: T): VerifierResult { - return { state: "ok", data } -} - -export function isOk(result: VerifierResult): result is VerifierOk { - return result.state === "ok"; -} - -export function isErr(result: VerifierResult): result is VerifierErr { - return result.state === "err"; -} - -export function unwrap(result: VerifierResult): T { - let ok: T | undefined; - if (isOk(result)) { - ok = result.data; - } - return ok!; -} diff --git a/verifier_circuit/src/field_serializable.ts b/verifier_circuit/src/field_serializable.ts deleted file mode 100644 index 1ecc4313..00000000 --- a/verifier_circuit/src/field_serializable.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { FieldBn254 } from "o1js"; -import { ForeignScalar } from "./foreign_fields/foreign_scalar.js"; -import { ForeignPallas } from "./foreign_fields/foreign_pallas.js"; -import { PolyComm } from "./poly_commitment/commitment.js"; -import { PointEvaluations } from "./prover/prover.js"; - -export abstract class FieldSerializable { - static fromFields: (_fields: FieldBn254[]) => FieldSerializable; - toFields: () => FieldBn254[]; -} - -// - Item deserialization functions - -/** - * Returns `[scalar, newOffset]` where `newOffset` is `offset + length`, where `length` is the size of `ForeignScalar` - * in fields. - */ -export function scalarFromFields(fields: FieldBn254[], offset: number): [ForeignScalar, number] { - let newOffset = offset + ForeignScalar.sizeInFields(); - let foreignScalar = ForeignScalar.fromFields(fields.slice(offset, newOffset)); - - return [foreignScalar, newOffset]; -} - -/** - * Returns `[point, newOffset]` where `newOffset` is `offset + length`, where `length` is the size of `ForeignPallas` - * in fields. - */ -export function pallasFromFields(fields: FieldBn254[], offset: number): [ForeignPallas, number] { - let newOffset = offset + ForeignPallas.sizeInFields(); - let foreignPallas = ForeignPallas.fromFields(fields.slice(offset, newOffset)); - - return [foreignPallas, newOffset]; -} - -/** - * Returns `[commitment, newOffset]` where `newOffset` is `offset + length`, where `length` is the size of `PolyComm` - * in fields. - */ -export function pallasCommFromFields(fields: FieldBn254[], length: number, offset: number): [PolyComm, number] { - let pallasComm = PolyComm.fromFields(fields, length); - let newOffset = offset + PolyComm.sizeInFields(length); - - return [pallasComm, newOffset]; -} - -/** - * Returns `[evals, newOffset]` where `newOffset` is `offset + length`, where `length` is the size of `PointEvaluations` - * in fields. - */ -export function pointEvaluationsFromFields(fields: FieldBn254[], offset: number): [PointEvaluations, number] { - let pointEvaluations = PointEvaluations.fromFields(fields); - let newOffset = offset + PointEvaluations.sizeInFields(); - - return [pointEvaluations, newOffset]; -} - -// - Array deserialization functions - -export function arrayToFields(input: FieldSerializable[]) { - return input.map((item) => item.toFields()).reduce((acc, fields) => acc.concat(fields), []); -} - -/** - * Returns `[points, newOffset]` where `newOffset` is `offset + length`, where `length` is the length of the field array - * used for deserializing. - */ -export function pallasArrayFromFields(fields: FieldBn254[], length: number, offset: number): [ForeignPallas[], number] { - let cursor = offset; - let foreignPallasArray = []; - for (let i = 0; i < length; i++) { - let [foreignPallas, newStart] = pallasFromFields(fields, cursor); - foreignPallasArray.push(foreignPallas); - cursor = newStart; - } - - return [foreignPallasArray, cursor]; -} - -/** - * Returns `[commitments, newOffset]` where `newOffset` is `offset + length`, where `length` is the length of the field array - * used for deserializing. - */ -export function pallasCommArrayFromFields(fields: FieldBn254[], arrayLength: number, commLength: number, offset: number): [PolyComm[], number] { - let cursor = offset; - let pallasCommArray = []; - for (let i = 0; i < arrayLength; i++) { - let [foreignPallas, newStart] = pallasCommFromFields(fields, commLength, cursor); - pallasCommArray.push(foreignPallas); - cursor = newStart; - } - - return [pallasCommArray, cursor]; -} - -/** - * Returns `[evals, newOffset]` where `newOffset` is `offset + length`, where `length` is the length of the field array - * used for deserializing. - */ -export function pointEvaluationsArrayFromFields(fields: FieldBn254[], length: number, offset: number): [PointEvaluations[], number] { - let cursor = offset; - let pallasCommArray = []; - for (let i = 0; i < length; i++) { - let [foreignPallas, newStart] = pointEvaluationsFromFields(fields, cursor); - pallasCommArray.push(foreignPallas); - cursor = newStart; - } - - return [pallasCommArray, cursor]; -} - -// - Option deserialization functions - -/** - * If `fields[offset] == 0` returns `[undefined, offset]`. - * Otherwise it returns `[evals, newOffset]` where `newOffset` is `offset + length`, where `length` is the size of - * `PointEvaluations` in fields. - */ -export function optionalPointEvaluationsFromFields(fields: FieldBn254[], offset: number): [PointEvaluations | undefined, number] { - let pointEvaluations = PointEvaluations.optionalFromFields(fields); - let offsetWithFlag = offset + 1; - - return [pointEvaluations, offsetWithFlag + PointEvaluations.sizeInFields()]; -} - -// - Option array deserialization functions - -export function optionalPointEvaluationsArrayFromFields(fields: FieldBn254[], length: number, offset: number): [PointEvaluations[] | undefined, number] { - let pointEvaluationsArray = PointEvaluations.optionalArrayFromFields(length, fields); - let offsetWithFlag = offset + 1; - - if (fields[offset].equals(0)) { - return [undefined, offsetWithFlag]; - } - - return [pointEvaluationsArray, offsetWithFlag + PointEvaluations.sizeInFields() * length]; -} diff --git a/verifier_circuit/src/foreign_fields/foreign_field.ts b/verifier_circuit/src/foreign_fields/foreign_field.ts deleted file mode 100644 index 50185e63..00000000 --- a/verifier_circuit/src/foreign_fields/foreign_field.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Field, createForeignFieldBn254 } from "o1js"; - -export class ForeignBase extends createForeignFieldBn254(Field.ORDER).AlmostReduced { - static sizeInFields() { - return 3; - } -} diff --git a/verifier_circuit/src/foreign_fields/foreign_pallas.ts b/verifier_circuit/src/foreign_fields/foreign_pallas.ts deleted file mode 100644 index 68961b73..00000000 --- a/verifier_circuit/src/foreign_fields/foreign_pallas.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { FieldBn254, createForeignCurveBn254 } from 'o1js'; - -const p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001n; -const q = 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001n; - -const pallasGeneratorProjective = { - x: 1n, - y: 12418654782883325593414442427049395787963493412651469444558597405572177144507n, -}; - -const b = 5n; -const a = 0n; - -const pallasEndoBase = - 20444556541222657078399132219657928148671392403212669005631716460534733845831n; - -const pallasEndoScalar = - 26005156700822196841419187675678338661165322343552424574062261873906994770353n; - -export class ForeignPallas extends createForeignCurveBn254({ - name: 'Pallas', - modulus: p, - order: q, - generator: pallasGeneratorProjective, - b, - a, - endoBase: pallasEndoBase, - endoScalar: pallasEndoScalar, -}) { - static sizeInFields() { - return ForeignPallas.provable.sizeInFields(); - } - - static fromFields(fields: FieldBn254[]) { - return ForeignPallas.provable.fromFields(fields) as ForeignPallas; - } - - static toFields(one: ForeignPallas) { - return ForeignPallas.provable.toFields(one); - } - - toFields() { - return ForeignPallas.toFields(this); - } - - static assertEquals(one: ForeignPallas, other: ForeignPallas) { - one.x.assertEquals(other.x); - one.y.assertEquals(other.y); - } -} - -export function pallasZero(): ForeignPallas { - return new ForeignPallas({ x: BigInt(0), y: BigInt(0) }); -} diff --git a/verifier_circuit/src/foreign_fields/foreign_scalar.ts b/verifier_circuit/src/foreign_fields/foreign_scalar.ts deleted file mode 100644 index 468c4edd..00000000 --- a/verifier_circuit/src/foreign_fields/foreign_scalar.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { FieldBn254, Scalar, createForeignFieldBn254 } from "o1js"; - -export class ForeignScalar extends createForeignFieldBn254(Scalar.ORDER).AlmostReduced { - static sizeInFields() { - return ForeignScalar.provable.sizeInFields(); - } - - static fromFields(fields: FieldBn254[]) { - return ForeignScalar.provable.fromFields(fields) as ForeignScalar; - } - - static toFields(one: ForeignScalar): FieldBn254[] { - return ForeignScalar.provable.toFields(one); - } - - toFields() { - return ForeignScalar.toFields(this); - } -} diff --git a/verifier_circuit/src/lookups/lookups.ts b/verifier_circuit/src/lookups/lookups.ts deleted file mode 100644 index 4a23ae4d..00000000 --- a/verifier_circuit/src/lookups/lookups.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { ForeignPallas } from "../foreign_fields/foreign_pallas" -import { PolyComm } from "../poly_commitment/commitment" - -/** -* Flags for each of the hard-coded lookup patterns. -*/ -export class LookupPatterns { - xor: boolean - lookup: boolean - range_check: boolean - foreign_field_mul: boolean -} - -export class LookupFeatures { - /// A single lookup constraint is a vector of lookup constraints to be applied at a row. - patterns: LookupPatterns - /// Whether joint lookups are used - joint_lookup_used: boolean - /// True if runtime lookup tables are used. - uses_runtime_tables: boolean -} - -/** -* Describes the desired lookup configuration. -*/ -export class LookupInfo { - /// The maximum length of an element of `kinds`. This can be computed from `kinds`. - max_per_row: number - /// The maximum joint size of any joint lookup in a constraint in `kinds`. This can be computed from `kinds`. - max_joint_size: number - /// The features enabled for this lookup configuration - features: LookupFeatures -} - -export enum LookupPattern { - Xor, - Lookup, - RangeCheck, - ForeignFieldMul -} - -export class LookupSelectors { - xor?: PolyComm - lookup?: PolyComm - range_check?: PolyComm - ffmul?: PolyComm -} diff --git a/verifier_circuit/src/main.ts b/verifier_circuit/src/main.ts deleted file mode 100644 index 5a88e82b..00000000 --- a/verifier_circuit/src/main.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { readFileSync, writeFileSync } from "fs"; -import { deserOpeningProof } from "./serde/serde_proof.js"; -import testInputs from "../test_data/inputs.json" assert { type: "json" }; -import { Verifier } from "./verifier/verifier.js"; -import { FieldBn254, ProvableBn254, PoseidonBn254 } from 'o1js'; - -let inputs; -try { - inputs = JSON.parse(readFileSync("./src/proof.json", "utf-8")); -} catch (e) { - console.log("Using default inputs"); - inputs = testInputs; -} - -let openingProof = deserOpeningProof(inputs.proof.bulletproof); -writeFileSync("./src/opening_proof_fields.json", JSON.stringify(openingProof.toFields())); - -// ---------------------------------------------------- - -console.log("Generating verifier circuit keypair..."); - -let proofHash = openingProof.hash(); -let proofAndMerkleHash = ProvableBn254.witness(FieldBn254, () => { - let rootString: string[] = JSON.parse(readFileSync("./src/merkle_root.json", "utf-8")); - let root = FieldBn254(rootString[0]); - return PoseidonBn254.hash([proofHash, root]); -}); - -let keypair = await Verifier.generateKeypair(); -console.log("Proving..."); -let { value } = await Verifier.prove([], [proofAndMerkleHash], keypair); -console.log("Writing proof into file..."); -let proof_with_public = (value as string[])[1]; -let index = (value as string[])[2]; -let srs = (value as string[])[3]; -writeFileSync("../kzg_prover/proof_with_public.json", proof_with_public); -writeFileSync("../kzg_prover/index.json", index); -writeFileSync("../kzg_prover/srs.json", srs); -writeFileSync("../kzg_prover/proof_hash.json", JSON.stringify(FieldBn254.toBytes(proofHash))); - -console.log("Writing circuit gates into file..."); -let gates = keypair.constraintSystem(); -writeFileSync("../kzg_prover/gates.json", JSON.stringify(gates)); - -// ---------------------------------------------------- diff --git a/verifier_circuit/src/poly_commitment/commitment.ts b/verifier_circuit/src/poly_commitment/commitment.ts deleted file mode 100644 index ec8df34c..00000000 --- a/verifier_circuit/src/poly_commitment/commitment.ts +++ /dev/null @@ -1,278 +0,0 @@ -import { FieldBn254 } from "o1js"; -import { Sponge } from "../verifier/sponge"; -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; -import { FieldSerializable, arrayToFields, pallasArrayFromFields } from "../field_serializable.js"; -import { ForeignPallas } from "../foreign_fields/foreign_pallas.js"; -import { OpeningProof } from "./opening_proof"; - -/** -* A polynomial commitment -*/ -export class PolyComm { - unshifted: A[] - shifted?: A - - constructor(unshifted: A[], shifted?: A) { - this.unshifted = unshifted; - this.shifted = shifted; - } - - /** - * Maps over self's `unshifted` and `shifted` - */ - map(f: (x: A) => B): PolyComm { - let unshifted = this.unshifted.map(f); - let shifted = (this.shifted) ? f(this.shifted) : undefined; - return new PolyComm(unshifted, shifted); - } - - /** - * Zips two commitments into one and maps over zipped's `unshifted` and `shifted` - */ - zip_and_map(other: PolyComm, f: (x: [A, B]) => C): PolyComm { - let unshifted_zip = this.unshifted.map((u, i) => [u, other.unshifted[i]] as [A, B]); - let shifted_zip = (this.shifted && other.shifted) ? - [this.shifted, other.shifted] as [A, B] : undefined; - let unshifted = unshifted_zip.map(f); - let shifted = shifted_zip ? f(shifted_zip) : undefined; - return new PolyComm(unshifted, shifted); - } - - /** - * Substract two commitments - */ - static sub(lhs: PolyComm, rhs: PolyComm): PolyComm { - let unshifted: ForeignPallas[] = []; - const n1 = lhs.unshifted.length; - const n2 = rhs.unshifted.length; - - for (let i = 0; i < Math.max(n1, n2); i++) { - const pt = i < n1 && i < n2 ? - lhs.unshifted[i].completeAdd(rhs.unshifted[i].negate()) : - i < n1 ? lhs.unshifted[i] : rhs.unshifted[i]; - unshifted.push(pt as ForeignPallas); - } - - let shifted: ForeignPallas | undefined; - if (lhs.shifted == undefined) shifted = rhs.shifted; - else if (rhs.unshifted == undefined) shifted = lhs.shifted; - else shifted = rhs.shifted?.completeAdd(lhs.shifted.negate()) as ForeignPallas; - - return new PolyComm(unshifted, shifted); - } - - /** - * Scale a commitments - */ - static scale(v: PolyComm, c: ForeignScalar) { - return new PolyComm(v.unshifted.map((u) => u.scale(c) as ForeignPallas), v.shifted?.scale(c) as ForeignPallas); - } - - /** - * Execute a simple multi-scalar multiplication - */ - static naiveMSM(points: ForeignPallas[], scalars: ForeignScalar[]) { - let result = new ForeignPallas({ x: 0, y: 0 }); - - for (let i = 0; i < points.length; i++) { - let point = points[i]; - let scalar = scalars[i]; - let scaled = point.completeScale(scalar); - result = result.completeAdd(scaled) as ForeignPallas; - } - - return result; - } - - /** - * Executes multi-scalar multiplication between scalars `elm` and commitments `com`. - * If empty, returns a commitment with the point at infinity. - */ - static msm(com: PolyComm[], elm: ForeignScalar[]): PolyComm { - if (com.length === 0 || elm.length === 0) { - return new PolyComm([new ForeignPallas({ x: 0, y: 0 })]); - } - - if (com.length != elm.length) { - throw new Error("MSM with invalid comm. and scalar counts"); - } - - let unshifted_len = Math.max(...com.map(pc => pc.unshifted.length)); - let unshifted = []; - - for (let chunk = 0; chunk < unshifted_len; chunk++) { - let points_and_scalars = com - .map((c, i) => [c, elm[i]] as [PolyComm, ForeignScalar]) // zip with scalars - // get rid of scalars that don't have an associated chunk - .filter(([c, _]) => c.unshifted.length > chunk) - .map(([c, scalar]) => [c.unshifted[chunk], scalar] as [ForeignPallas, ForeignScalar]); - - // unzip - let points = points_and_scalars.map(([c, _]) => c); - let scalars = points_and_scalars.map(([_, scalar]) => scalar); - - let chunk_msm = this.naiveMSM(points, scalars); - unshifted.push(chunk_msm); - } - - let shifted_pairs = com - .map((c, i) => [c.shifted, elm[i]] as [ForeignPallas | undefined, ForeignScalar]) // zip with scalars - .filter(([shifted, _]) => shifted != null) - .map((zip) => zip as [ForeignPallas, ForeignScalar]); // zip with scalars - - let shifted = undefined; - if (shifted_pairs.length != 0) { - // unzip - let points = shifted_pairs.map(([c, _]) => c); - let scalars = shifted_pairs.map(([_, scalar]) => scalar); - shifted = this.naiveMSM(points, scalars); - } - - return new PolyComm(unshifted, shifted); - } - - static chunk_commitment(comm: PolyComm, zeta_n: ForeignScalar): PolyComm { - let res = comm.unshifted[comm.unshifted.length - 1]; - - // use Horner's to compute chunk[0] + z^n chunk[1] + z^2n chunk[2] + ... - // as ( chunk[-1] * z^n + chunk[-2] ) * z^n + chunk[-3] - for (const chunk of comm.unshifted.reverse().slice(1)) { - res = res.completeScale(zeta_n) as ForeignPallas; - res = res.completeAdd(chunk) as ForeignPallas; - } - return new PolyComm([res], comm.shifted); - } - - static fromFields(fields: FieldBn254[], length: number): PolyComm { - let [unshifted, _] = pallasArrayFromFields(fields, length, 0); - - return new PolyComm(unshifted); - } - - toFields() { - return arrayToFields(this.unshifted); - } - - static sizeInFields(length: number) { - return ForeignPallas.sizeInFields() * length; - } -} - -/** - * Represents a blinded commitment - */ -export class BlindedCommitment { - commitment: PolyComm - blinders: PolyComm -} - -/** - * Returns the product of all elements of `xs` - */ -export function product(xs: ForeignScalar[]): ForeignScalar { - return xs.reduce((acc, x) => acc.mul(x).assertAlmostReduced(), ForeignScalar.from(1)); -} - -/** - * Returns (1 + chal[-1] x)(1 + chal[-2] x^2)(1 + chal[-3] x^4) ... - */ -export function bPoly(chals: ForeignScalar[], x: ForeignScalar): ForeignScalar { - const k = chals.length; - - let prev_x_squared = x; - let terms = []; - for (let i = k - 1; i >= 0; i--) { - terms.push(ForeignScalar.from(1).add(chals[i].mul(prev_x_squared)).assertAlmostReduced()); - prev_x_squared = prev_x_squared.mul(prev_x_squared).assertAlmostReduced(); - } - - return product(terms); -} - -export function bPolyCoefficients(chals: ForeignScalar[]) { - const rounds = chals.length; - const s_length = 1 << rounds; - - let s = Array(s_length).fill(ForeignScalar.from(1)); - let k = 0; - let pow = 1; - for (let i = 1; i < s_length; i++) { - k += i === pow ? 1 : 0; - pow <<= i === pow ? 1 : 0; - s[i] = s[i - (pow >>> 1)].mul(chals[rounds - 1 - (k - 1)]).assertAlmostReduced(); - } - - return s; -} - -export function combineCommitments( - evaluations: Evaluation[], - scalars: ForeignScalar[], - points: ForeignPallas[], - polyscale: ForeignScalar, - randBase: ForeignScalar -): void { - let xi_i = ForeignScalar.from(1).assertAlmostReduced(); - - for (const { commitment, degree_bound, ...rest } of evaluations.filter( - (x) => { return !(x.commitment.unshifted.length === 0) } - )) { - // iterating over the polynomial segments - for (const commCh of commitment.unshifted) { - scalars.push(randBase.mul(xi_i).assertAlmostReduced()); - points.push(commCh); - - xi_i = xi_i.mul(polyscale).assertAlmostReduced(); - } - - if (degree_bound !== undefined) { - const commChShifted = commitment.shifted; - if (commChShifted !== undefined && !commChShifted.x.equals(0)) { - // polyscale^i sum_j evalscale^j elm_j^{N - m} f(elm_j) - scalars.push(randBase.mul(xi_i).assertAlmostReduced()); - points.push(commChShifted); - - xi_i = xi_i.mul(polyscale).assertAlmostReduced(); - } - } - } -} - -/** - * Contains the evaluation of a polynomial commitment at a set of points. - */ -export class Evaluation { - /** The commitment of the polynomial being evaluated */ - commitment: PolyComm - /** Contains an evaluation table */ - evaluations: ForeignScalar[][] - /** optional degree bound */ - degree_bound?: number - - constructor( - commitment: PolyComm, - evaluations: ForeignScalar[][], - degree_bound?: number - ) { - this.commitment = commitment; - this.evaluations = evaluations; - this.degree_bound = degree_bound; - } -} - -/** - * Contains the batch evaluation - */ -export class AggregatedEvaluationProof { - sponge: Sponge - evaluations: Evaluation[] - /** vector of evaluation points */ - evaluation_points: ForeignScalar[] - /** scaling factor for evaluation point powers */ - polyscale: ForeignScalar - /** scaling factor for polynomials */ - evalscale: ForeignScalar - /** batched opening proof */ - opening: OpeningProof - combined_inner_product: ForeignScalar -} diff --git a/verifier_circuit/src/poly_commitment/opening_proof.ts b/verifier_circuit/src/poly_commitment/opening_proof.ts deleted file mode 100644 index 64903802..00000000 --- a/verifier_circuit/src/poly_commitment/opening_proof.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { SRS } from "../SRS.js"; -import { ScalarChallenge } from "../verifier/scalar_challenge.js"; -import { invScalar } from "../util/scalar.js"; -import { FieldBn254, PoseidonBn254, Provable, ProvableBn254 } from "o1js"; -import { ForeignPallas } from "../foreign_fields/foreign_pallas.js"; -import { Sponge } from "../verifier/sponge"; -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; -import { readFileSync } from "fs"; - -export class OpeningProof { - /** vector of rounds of L & R commitments */ - lr: [ForeignPallas, ForeignPallas][] - delta: ForeignPallas - z1: ForeignScalar - z2: ForeignScalar - sg: ForeignPallas - - constructor(lr: [ForeignPallas, ForeignPallas][], delta: ForeignPallas, z1: ForeignScalar, z2: ForeignScalar, sg: ForeignPallas) { - this.lr = lr; - this.delta = delta; - this.z1 = z1; - this.z2 = z2; - this.sg = sg; - } - - hash() { - return ProvableBn254.witness(FieldBn254, () => { - let fieldsStr: string[] = JSON.parse(readFileSync("./src/opening_proof_fields.json", "utf-8")); - let fieldsRepr = fieldsStr.map(FieldBn254); - return PoseidonBn254.hash(fieldsRepr); - }); - } - - static #rounds() { - // TODO: this value is hardcoded, it should be calculated based on how the `lr` field is computed in the Kimchi prover. - return 15; - } - - /** - * Part of the {@link Provable} interface. - * - * Returns the sum of `sizeInFields()` of all the class fields, which depends on `SRS.g` length. - */ - static sizeInFields() { - const lrSize = 2 * this.#rounds() * ForeignPallas.sizeInFields(); - const deltaSize = ForeignPallas.sizeInFields(); - const z1Size = ForeignScalar.sizeInFields(); - const z2Size = ForeignScalar.sizeInFields(); - const sgSize = ForeignPallas.sizeInFields(); - - return lrSize + deltaSize + z1Size + z2Size + sgSize; - } - - static fromFields(fields: FieldBn254[]) { - let lr: [ForeignPallas, ForeignPallas][] = []; - // lr_0 = [0...6, 6...12] - // lr_1 = [12...18, 18...24] - // lr_2 = [24...30, 30...36] - // ... - let rounds = this.#rounds(); - for (let i = 0; i < rounds; i++) { - let l = ForeignPallas.fromFields(fields.slice(i * 6 * 2, (i * 6 * 2) + 6)); - let r = ForeignPallas.fromFields(fields.slice((i * 6 * 2) + 6, (i * 6 * 2) + (6 * 2))); - lr.push([l, r]); - } - let lrOffset = lr.length * 6 * 2; - - return new OpeningProof( - lr, - ForeignPallas.fromFields(fields.slice(lrOffset, lrOffset + 6)), - ForeignScalar.fromFields(fields.slice(lrOffset + 6, lrOffset + 9)), - ForeignScalar.fromFields(fields.slice(lrOffset + 9, lrOffset + 12)), - ForeignPallas.fromFields(fields.slice(lrOffset + 12, lrOffset + 18)), - ); - } - - toFields() { - let lr: FieldBn254[] = []; - for (const [l, r] of this.lr) { - lr = lr.concat(ForeignPallas.toFields(l)); - lr = lr.concat(ForeignPallas.toFields(r)); - } - let z1 = ForeignScalar.toFields(this.z1); - let z2 = ForeignScalar.toFields(this.z2); - - return [...lr, ...ForeignPallas.toFields(this.delta), ...z1, ...z2, ...ForeignPallas.toFields(this.sg)]; - } - - static toFields(x: OpeningProof) { - return x.toFields(); - } - - static toAuxiliary() { - return []; - } - - static check() { } - - challenges( - endo_r: ForeignScalar, - sponge: Sponge - ): [ForeignScalar[], ForeignScalar[]] { - const chal = this.lr.map(([l, r]) => { - sponge.absorbGroup(l); - sponge.absorbGroup(r); - return new ScalarChallenge(sponge.challenge()).toField(endo_r); - }) - - const chal_inv = chal.map(invScalar.bind(this)); - - return [chal, chal_inv]; - } -} diff --git a/verifier_circuit/src/polynomial.ts b/verifier_circuit/src/polynomial.ts deleted file mode 100644 index 1cbf97c3..00000000 --- a/verifier_circuit/src/polynomial.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { ForeignScalar } from "./foreign_fields/foreign_scalar.js" - -export class Polynomial { - coef: Array - - constructor(coef: Array) { - this.coef = coef - } - - evaluate(x: ForeignScalar): ForeignScalar { - let result = ForeignScalar.from(0).assertAlmostReduced(); - for (let i = this.coef.length - 1; i >= 0; i--) { - result = result.mul(x).add(this.coef[i]).assertAlmostReduced(); - } - return result - } - - static buildAndEvaluate(coeffs: ForeignScalar[], x: ForeignScalar): ForeignScalar { - const poly = new Polynomial(coeffs); - return poly.evaluate(x); - } -} diff --git a/verifier_circuit/src/prover/expr.ts b/verifier_circuit/src/prover/expr.ts deleted file mode 100644 index 60a19bd2..00000000 --- a/verifier_circuit/src/prover/expr.ts +++ /dev/null @@ -1,382 +0,0 @@ -import { Scalar } from "o1js"; -import { Constants, PointEvaluations, ProofEvaluations } from "./prover.js"; -import { invScalar, powScalar } from "../util/scalar.js"; -import { GateType } from "../circuits/gate.js"; -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; -import { LookupPattern, LookupPatterns } from "../lookups/lookups.js"; - -/** A type representing one of the polynomials involved in the PLONK IOP */ -export namespace Column { - export type Witness = { - kind: "witness" - index: number - } - - export type Z = { - kind: "z" - } - - export type Index = { - kind: "index" - typ: GateType - } - - export type Coefficient = { - kind: "coefficient" - index: number - } - - export type Permutation = { - kind: "permutation" - index: number - } - - export type LookupSorted = { - kind: "lookupsorted" - index: number - } - - export type LookupAggreg = { - kind: "lookupaggreg" - } - - export type LookupTable = { - kind: "lookuptable" - } - - export type LookupRuntimeTable = { - kind: "lookupruntimetable" - } - - export type LookupRuntimeSelector = { - kind: "lookupruntimeselector" - } - - export type LookupKindIndex = { - kind: "lookupkindindex" - pattern: LookupPattern - } -} - -export type Column = - | Column.Witness - | Column.Z - | Column.Index - | Column.Coefficient - | Column.Permutation - | Column.LookupSorted - | Column.LookupAggreg - | Column.LookupTable - | Column.LookupRuntimeTable - | Column.LookupRuntimeSelector - | Column.LookupKindIndex; - -/** - * A row accessible from a given row, corresponds to the fact that we open all polynomials - * at `zeta` **and** `omega * zeta` - */ -export enum CurrOrNext { - Curr, - Next -} - -/** - * A type representing a variable which can appear in a constraint. It specifies a column - * and a relative position (Curr or Next) - */ -export class Variable { - col: Column - row: CurrOrNext - - constructor(col: Column, row: CurrOrNext) { - this.col = col; - this.row = row; - } - - evaluate(evals: ProofEvaluations): ForeignScalar { - let point_evaluations: PointEvaluations | undefined = undefined; - switch (this.col.kind) { - case "witness": { - point_evaluations = evals.w[this.col.index]; - break; - } - case "z": { - point_evaluations = evals.z; - break; - } - case "index": { - switch (this.col.typ) { - case GateType.Poseidon: { - point_evaluations = evals.poseidonSelector; - break; - } - case GateType.Generic: { - point_evaluations = evals.genericSelector; - break; - } - case GateType.CompleteAdd: { - point_evaluations = evals.completeAddSelector; - break; - } - case GateType.VarBaseMul: { - point_evaluations = evals.mulSelector; - break; - } - case GateType.EndoMul: { - point_evaluations = evals.emulSelector; - break; - } - case GateType.EndoMulScalar: { - point_evaluations = evals.endomulScalarSelector; - break; - } - } - break; - } - case "permutation": { - point_evaluations = evals.s[this.col.index]; - break; - } - case "coefficient": { - point_evaluations = evals.coefficients[this.col.index]; - break; - } - } - return this.row === CurrOrNext.Curr - ? point_evaluations!.zeta - : point_evaluations!.zetaOmega; - } -} - -export namespace PolishToken { - export type Alpha = { - kind: "alpha" - } - export type Beta = { - kind: "beta" - } - export type Gamma = { - kind: "gamma" - } - export type JointCombiner = { - kind: "jointcombiner" - } - export type EndoCoefficient = { - kind: "endocoefficient" - } - export type Mds = { - kind: "mds" - row: number - col: number - } - export type Literal = { - kind: "literal" - lit: ForeignScalar - } - export type Cell = { - kind: "cell" - cell: Variable - } - export type Dup = { - kind: "dup" - } - export type Pow = { - kind: "pow" - pow: number - } - export type Add = { - kind: "add" - } - export type Mul = { - kind: "mul" - } - export type Sub = { - kind: "sub" - } - export type VanishesOnZeroKnowledgeAndPreviousRows = { - kind: "vanishesonzeroknowledgeandpreviousrows" - } - export type UnnormalizedLagrangeBasis = { - kind: "unnormalizedlagrangebasis" - index: number - } - export type Store = { - kind: "store" - } - export type Load = { - kind: "load" - index: number - } - /** Skip the given number of tokens if the feature is enabled */ - export type SkipIf = { - kind: "skipif" - //feature: FeatureFlag // FIXME: impl - num: number - } - /** Skip the given number of tokens if the feature is disabled */ - export type SkipIfNot = { - kind: "skipifnot" - //feature: FeatureFlag // FIXME: impl - num: number - } - - /** Evaluates a reverse polish notation expression into a field element */ - export function evaluate( - toks: PolishToken[], - pt: ForeignScalar, - evals: ProofEvaluations, - domain_gen: ForeignScalar, - domain_size: number, - c: Constants - ): ForeignScalar { - let stack: ForeignScalar[] = []; - let cache = []; - - let skip_count = 0; - - for (const t of toks) { - if (skip_count > 0) { - skip_count -= 1; - continue; - } - - switch (t.kind) { - case "alpha": { - stack.push(c.alpha); - break; - } - case "beta": { - stack.push(c.beta); - break; - } - case "gamma": { - stack.push(c.gamma); - break; - } - case "jointcombiner": { - stack.push(c.joint_combiner!); - break; - } - case "endocoefficient": { - stack.push(c.endo_coefficient); - break; - } - case "mds": { - stack.push(c.mds[t.row][t.col]); - break; - } - case "vanishesonzeroknowledgeandpreviousrows": { - const ZK_ROWS = 3; - const w4 = powScalar(domain_gen, domain_size - (ZK_ROWS + 1)); - const w3 = domain_gen.mul(w4).assertAlmostReduced(); - const w2 = domain_gen.mul(w3).assertAlmostReduced(); - const w1 = domain_gen.mul(w2); - - stack.push( - pt.sub(w1).assertAlmostReduced() - .mul(pt.sub(w2).assertAlmostReduced()).assertAlmostReduced() - .mul(pt.sub(w3).assertAlmostReduced()).assertAlmostReduced() - .mul(pt.sub(w4).assertAlmostReduced()).assertAlmostReduced()); - break; - } - case "unnormalizedlagrangebasis": { - const omega_i = t.index < 0 - ? invScalar(powScalar(domain_gen, -t.index)) - : powScalar(domain_gen, t.index); - - const vanishing_eval = powScalar(pt, domain_size).sub(ForeignScalar.from(1)).assertAlmostReduced(); - const unnormal_lagrange_basis = vanishing_eval.div(pt.sub(omega_i).assertAlmostReduced()); - - stack.push(unnormal_lagrange_basis); - break; - } - case "literal": { - stack.push(t.lit); - break; - } - case "dup": { - stack.push(stack[stack.length - 1]); - break; - } - case "cell": { - stack.push(t.cell.evaluate(evals)); - break; - } - case "pow": { - const i = stack.length - 1; - stack[i] = powScalar(stack[i], t.pow); - break; - } - case "add": { - const y = stack.pop()!; - const x = stack.pop()!; - - stack.push(x.add(y).assertAlmostReduced()); - break; - } - case "mul": { - const y = stack.pop()!; - const x = stack.pop()!; - - stack.push(x.mul(y).assertAlmostReduced()); - break; - } - case "sub": { - const y = stack.pop()!; - const x = stack.pop()!; - - stack.push(x.sub(y).assertAlmostReduced()); - break; - } - case "store": { - const x = stack[stack.length - 1]; - cache.push(x); - break; - } - case "load": { - stack.push(cache[t.index]); - break; - } - case "skipif": { - // FIXME: implement - break; - } - case "skipifnot": { - // FIXME: implement - break; - } - } - } - - return stack[0]; - } -} - -export type PolishToken = - | PolishToken.Alpha - | PolishToken.Beta - | PolishToken.Gamma - | PolishToken.JointCombiner - | PolishToken.EndoCoefficient - | PolishToken.Mds - | PolishToken.Literal - | PolishToken.Cell - | PolishToken.Dup - | PolishToken.Pow - | PolishToken.Add - | PolishToken.Mul - | PolishToken.Sub - | PolishToken.VanishesOnZeroKnowledgeAndPreviousRows - | PolishToken.UnnormalizedLagrangeBasis - | PolishToken.Store - | PolishToken.Load - | PolishToken.SkipIf - | PolishToken.SkipIfNot - -/** - * A linear combination of F coefficients of columns - */ -export class Linearization { - constant_term: F - index_terms: [Column, F][] -} diff --git a/verifier_circuit/src/prover/prover.ts b/verifier_circuit/src/prover/prover.ts deleted file mode 100644 index f4fa098c..00000000 --- a/verifier_circuit/src/prover/prover.ts +++ /dev/null @@ -1,1238 +0,0 @@ -import { Polynomial } from "../polynomial.js" -import { FieldBn254, PoseidonBn254, ProvableBn254, Scalar } from "o1js" -import { PolyComm, bPoly, bPolyCoefficients } from "../poly_commitment/commitment.js"; -import { arrayToFields, scalarFromFields, pallasCommFromFields, pallasCommArrayFromFields, pointEvaluationsArrayFromFields, pointEvaluationsFromFields, optionalPointEvaluationsFromFields, optionalPointEvaluationsArrayFromFields } from "../field_serializable.js"; -import { ScalarChallenge } from "../verifier/scalar_challenge.js"; -import { fp_sponge_initial_state, fp_sponge_params, fq_sponge_initial_state, fq_sponge_params, Sponge } from "../verifier/sponge.js"; -import { Verifier, VerifierIndex } from "../verifier/verifier.js"; -import { powScalar } from "../util/scalar.js"; -import { GateType } from "../circuits/gate.js"; -import { Alphas } from "../alphas.js"; -import { Column } from "./expr.js"; -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; -import { ForeignPallas } from "../foreign_fields/foreign_pallas.js"; -import { VerifierResult, verifierErr } from "../error.js"; -import { LookupPattern } from "../lookups/lookups.js"; -import { OpeningProof } from "../poly_commitment/opening_proof.js"; -import { readFileSync } from "fs"; - -/** The proof that the prover creates from a ProverIndex `witness`. */ -export class ProverProof { - evals: ProofEvaluations - prev_challenges: RecursionChallenge[] - commitments: ProverCommitments - /** Required evaluation for Maller's optimization */ - ft_eval1: ForeignScalar - proof: OpeningProof - - constructor( - evals: ProofEvaluations, - prev_challenges: RecursionChallenge[], - commitments: ProverCommitments, - ft_eval1: ForeignScalar, - proof: OpeningProof - ) { - this.evals = evals; - this.prev_challenges = prev_challenges; - this.commitments = commitments; - this.ft_eval1 = ft_eval1; - this.proof = proof; - } - - /** - * Will run the random oracle argument for removing prover-verifier interaction (Fiat-Shamir transform) - */ - oracles(index: VerifierIndex, public_comm: PolyComm, public_input?: ForeignScalar[]): VerifierResult { - const n = index.domain_size; - const endo_r = ForeignScalar.from("0x397e65a7d7c1ad71aee24b27e308f0a61259527ec1d4752e619d1840af55f1b1"); - // FIXME: ^ currently hard-coded, refactor this in the future - - let chunk_size; - if (index.domain_size < index.max_poly_size) { - chunk_size = 1; - } else { - chunk_size = index.domain_size / index.max_poly_size; - } - - const zk_rows = index.zk_rows; - - //~ 1. Setup the Fq-Sponge. - let fq_sponge = new Sponge(fp_sponge_params(), fp_sponge_initial_state()); - - //~ 2. Absorb the digest of the VerifierIndex. - fq_sponge.absorb(index.digest()); - - //~ 3. Absorb the commitments of the previous challenges with the Fq-sponge. - this.prev_challenges.forEach( - (challenge) => fq_sponge.absorbCommitment.bind(fq_sponge)(challenge.comm) - ); - - //~ 4. Absorb the commitment of the public input polynomial with the Fq-Sponge. - fq_sponge.absorbCommitment(public_comm); - - //~ 5. Absorb the commitments to the registers / witness columns with the Fq-Sponge. - this.commitments.wComm.forEach(fq_sponge.absorbCommitment.bind(fq_sponge)); - - //~ 6. If lookup is used: - let joint_combiner = undefined; - if (index.lookup_index) { - const l = index.lookup_index; - const lookup_commits = this.commitments.lookup - if (!lookup_commits) return verifierErr("missing lookup commitments"); - if (l.runtime_tables_selector) { - const runtime_commit = lookup_commits.runtime; - if (!runtime_commit) return verifierErr("incorrect runtime proof"); - fq_sponge.absorbCommitment(runtime_commit); - } - - const zero = ProvableBn254.witness(ForeignScalar.provable, () => ForeignScalar.from(0).assertAlmostReduced()); - const joint_combiner_scalar = l.joint_lookup_used - ? fq_sponge.challenge() - : zero; - const joint_combiner_chal = new ScalarChallenge(joint_combiner_scalar); - const joint_combiner_field = joint_combiner_chal.toField(endo_r); - joint_combiner = [joint_combiner_scalar, joint_combiner_field]; - - lookup_commits.sorted.forEach(fq_sponge.absorbCommitment); - } - - //~ 7. Sample $\beta$ with the Fq-Sponge. - const beta = fq_sponge.challenge(); - - //~ 8. Sample $\gamma$ with the Fq-Sponge. - const gamma = fq_sponge.challenge(); - - //~ 9. If using lookup, absorb the commitment to the aggregation lookup polynomial. - if (this.commitments.lookup) { - fq_sponge.absorbCommitment(this.commitments.lookup.aggreg); - } - - //~ 10. Absorb the commitment to the permutation trace with the Fq-Sponge. - fq_sponge.absorbCommitment(this.commitments.zComm); - - //~ 11. Sample $\alpha'$ with the Fq-Sponge. - const alpha_chal = new ScalarChallenge(fq_sponge.challenge()); - - //~ 12. Derive $\alpha$ from $\alpha'$ using the endomorphism (TODO: details). - const alpha = alpha_chal.toField(endo_r); - - //~ 13. Enforce that the length of the $t$ commitment is of size `PERMUTS`. - if (this.commitments.tComm.unshifted.length !== Verifier.PERMUTS) { - // FIXME: return error "incorrect commitment length of 't'" - } - - //~ 14. Absorb the commitment to the quotient polynomial $t$ into the argument. - fq_sponge.absorbCommitment(this.commitments.tComm); - - //~ 15. Sample $\zeta'$ with the Fq-Sponge. - const zeta_chal = new ScalarChallenge(fq_sponge.challenge()); - - //~ 16. Derive $\zeta$ from $\zeta'$ using the endomorphism (TODO: specify). - const zeta = zeta_chal.toField(endo_r); - - //~ 17. Setup the Fr-Sponge. - let fr_sponge = new Sponge(fq_sponge_params(), fq_sponge_initial_state()); - - const digest = fq_sponge.digest(); - return verifierErr("a"); - /* - - //~ 18. Squeeze the Fq-sponge and absorb the result with the Fr-Sponge. - fr_sponge.absorbFr(digest); - - //~ 19. Absorb the previous recursion challenges. - // Note: we absorb in a new sponge here to limit the scope in which we need the - // more-expensive 'optional sponge'. - let fr_sponge_aux = new Sponge(fq_sponge_params(), fq_sponge_initial_state()); - this.prev_challenges.forEach((prev) => fr_sponge_aux.absorbScalars(prev.chals)); - fr_sponge.absorbFr(fr_sponge_aux.digest()); - - // prepare some often used values - - let zeta1 = powScalar(zeta, n); - const zetaw = zeta.mul(index.domain_gen).assertAlmostReduced(); - const evaluation_points = [zeta, zetaw]; - const powers_of_eval_points_for_chunks: PointEvaluations = { - zeta: powScalar(zeta, index.max_poly_size), - zetaOmega: powScalar(zetaw, index.max_poly_size) - }; - - //~ 20. Compute evaluations for the previous recursion challenges. - const polys: [PolyComm, ForeignScalar[][]][] = this.prev_challenges.map((chal) => { - const evals = chal.evals( - index.max_poly_size, - evaluation_points, - [ - powers_of_eval_points_for_chunks.zeta, - powers_of_eval_points_for_chunks.zetaOmega - ] - ); - return [chal.comm, evals]; - }); - - // retrieve ranges for the powers of alphas - let all_alphas = index.powers_of_alpha; - all_alphas.instantiate(alpha); - - let public_evals: ForeignScalar[][] | undefined; - if (this.evals.public_input) { - public_evals = [this.evals.public_input.zeta, this.evals.public_input.zetaOmega]; - } else if (chunk_size > 1) { - return verifierErr("missing public input evaluation"); - } else if (public_input) { - // compute Lagrange base evaluation denominators - - // take first n elements of the domain, where n = public_input.length - let w = [ForeignScalar.from(1).assertAlmostReduced()]; - for (let i = 0; i < public_input.length; i++) { - w.push(powScalar(index.domain_gen, i)); - } - - let zeta_minus_x = w.map((w_i) => zeta.sub(w_i).assertAlmostReduced()); - - w.forEach((w_i) => zeta_minus_x.push(zetaw.sub(w_i).assertAlmostReduced())) - - zeta_minus_x = zeta_minus_x.map(invScalar); - - //~ 21. Evaluate the negated public polynomial (if present) at $\zeta$ and $\zeta\omega$. - // NOTE: this works only in the case when the poly segment size is not smaller than that of the domain. - if (public_input.length === 0) { - public_evals = [[ForeignScalar.from(0)], [ForeignScalar.from(0)]]; - } else { - let pe_zeta = ForeignScalar.from(0).assertAlmostReduced(); - const min_len = Math.min( - zeta_minus_x.length, - w.length, - public_input.length - ); - for (let i = 0; i < min_len; i++) { - const p = public_input[i]; - const l = zeta_minus_x[i]; - const w_i = w[i]; - - pe_zeta = pe_zeta.add(l.neg().mul(p).assertAlmostReduced().mul(w_i)).assertAlmostReduced(); - } - const size_inv = invScalar(ForeignScalar.from(index.domain_size)); - pe_zeta = - pe_zeta.mul(zeta1.sub(ForeignScalar.from(1).assertAlmostReduced()).assertAlmostReduced()).assertAlmostReduced() - .mul(size_inv).assertAlmostReduced(); - - let pe_zetaOmega = ForeignScalar.from(0).assertAlmostReduced(); - const min_lenOmega = Math.min( - zeta_minus_x.length - public_input.length, - w.length, - public_input.length - ); - for (let i = 0; i < min_lenOmega; i++) { - const p = public_input[i]; - const l = zeta_minus_x[i + public_input.length]; - const w_i = w[i]; - - pe_zetaOmega = pe_zetaOmega.add(l.neg().mul(p).assertAlmostReduced().mul(w_i)).assertAlmostReduced(); - } - pe_zetaOmega = pe_zetaOmega - .mul(powScalar(zetaw, n).sub(ForeignScalar.from(1).assertAlmostReduced()).assertAlmostReduced()).assertAlmostReduced() - .mul(size_inv).assertAlmostReduced(); - - public_evals = [[pe_zeta], [pe_zetaOmega]]; - } - } else { - return verifierErr("missing public input evaluation"); - } - - //~ 22. Absorb the unique evaluation of ft: $ft(\zeta\omega)$. - fr_sponge.absorbFr(this.ft_eval1); - - //~ 23. Absorb all the polynomial evaluations in $\zeta$ and $\zeta\omega$: - //~~ * the public polynomial - //~~ * z - //~~ * generic selector - //~~ * poseidon selector - //~~ * the 15 register/witness - //~~ * 6 sigmas evaluations (the last one is not evaluated) - - fr_sponge.absorbMultipleFr(public_evals![0]); - fr_sponge.absorbMultipleFr(public_evals![1]); - ProvableBn254.asProver(() => fr_sponge.absorbEvals(this.evals)); - - //~ 24. Sample $v'$ with the Fr-Sponge. - const v_chal = new ScalarChallenge( - ProvableBn254.witness(ForeignScalar.provable, () => fr_sponge.challenge()) - ); - - //~ 25. Derive $v$ from $v'$ using the endomorphism (TODO: specify). - const v = v_chal.toField(endo_r); - - //~ 26. Sample $u'$ with the Fr-Sponge. - const u_chal = new ScalarChallenge( - ProvableBn254.witness(ForeignScalar.provable, () => fr_sponge.challenge()) - ); - - //~ 27. Derive $u$ from $u'$ using the endomorphism (TODO: specify). - const u = u_chal.toField(endo_r); - - //~ 28. Create a list of all polynomials that have an evaluation proof. - const evals = ProofEvaluations.combine(this.evals, powers_of_eval_points_for_chunks); - // WARN: untested - - //~ 29. Compute the evaluation of $ft(\zeta)$. - const permutation_vanishing_polynomial = index.permutation_vanishing_polynomial_m.evaluate(zeta); - const zeta1m1 = zeta1.sub(ForeignScalar.from(1)).assertAlmostReduced(); - - const alpha_powers_result = all_alphas.getAlphas({ kind: "permutation" }, Verifier.PERMUTATION_CONSTRAINTS); - if (isErr(alpha_powers_result)) return alpha_powers_result; - const alpha_powers = unwrap(alpha_powers_result); - - const alpha0 = alpha_powers.next(); - const alpha1 = alpha_powers.next(); - const alpha2 = alpha_powers.next(); - - const init = (evals.w[Verifier.PERMUTS - 1].zeta.add(gamma)).assertAlmostReduced() - .mul(evals.z.zetaOmega).assertAlmostReduced() - .mul(alpha0).assertAlmostReduced() - .mul(permutation_vanishing_polynomial).assertAlmostReduced(); - - let ft_eval0: ForeignScalar = evals.s - .map((s, i) => (beta.mul(s.zeta).add(evals.w[i].zeta).add(gamma).assertAlmostReduced())) - .reduce((acc, curr) => acc.mul(curr).assertAlmostReduced(), init); - - ft_eval0 = ft_eval0.sub( - public_evals![0].length === 0 - ? ForeignScalar.from(0) - : new Polynomial(public_evals[0]).evaluate(powers_of_eval_points_for_chunks.zeta) - ).assertAlmostReduced(); - - ft_eval0 = ft_eval0.sub( - index.shift - .map((s, i) => gamma.add(beta.mul(zeta).assertAlmostReduced().mul(s)).add(evals.w[i].zeta).assertAlmostReduced()) - .reduce( - (acc, curr) => acc.mul(curr).assertAlmostReduced(), - alpha0.mul(permutation_vanishing_polynomial).assertAlmostReduced() - .mul(evals.z.zeta).assertAlmostReduced() - ) - ).assertAlmostReduced(); - - const numerator = (zeta1m1.mul(alpha1).assertAlmostReduced().mul((zeta.sub(index.w)).assertAlmostReduced())) - .add(zeta1m1.mul(alpha2).assertAlmostReduced().mul(zeta.sub(ForeignScalar.from(1)).assertAlmostReduced())).assertAlmostReduced() - .mul(ForeignScalar.from(1).sub(evals.z.zeta).assertAlmostReduced()).assertAlmostReduced(); - - const denominator = invScalar( - zeta.sub(index.w).assertAlmostReduced() - .mul(zeta.sub(ForeignScalar.from(1)).assertAlmostReduced()).assertAlmostReduced()); - // FIXME: if error when inverting, "negligible probability" - - ft_eval0 = ft_eval0.add(numerator.mul(denominator)).assertAlmostReduced(); - - const constants: Constants = { - alpha, - beta, - gamma, - endo_coefficient: index.endo, - joint_combiner: joint_combiner ? joint_combiner[1] : undefined, - mds: fq_sponge_params().mds, - zk_rows - } - - ft_eval0 = ft_eval0.sub(PolishToken.evaluate( - index.linearization.constant_term, - zeta, - evals, - index.domain_gen, - index.domain_size, - constants - )).assertAlmostReduced(); - - const ft_eval0_a = [ft_eval0]; - const ft_eval1_a = [this.ft_eval1]; - let es: [ForeignScalar[][], number | undefined][] = polys.map(([_, e]) => [e, undefined]); - es.push([public_evals!, undefined]); - es.push([[ft_eval0_a, ft_eval1_a], undefined]); - - const push_column_eval = (col: Column) => { - const evals = this - .evals - .getColumn(col)!; - es.push([[evals.zeta, evals.zetaOmega], undefined]); - }; - - push_column_eval({ kind: "z" }) - push_column_eval({ kind: "index", typ: GateType.Generic }) - push_column_eval({ kind: "index", typ: GateType.Poseidon }) - push_column_eval({ kind: "index", typ: GateType.CompleteAdd }) - push_column_eval({ kind: "index", typ: GateType.VarBaseMul }) - push_column_eval({ kind: "index", typ: GateType.EndoMul }) - push_column_eval({ kind: "index", typ: GateType.EndoMulScalar }) - - range(Verifier.COLUMNS) - .map((i) => { return { kind: "witness", index: i } as Column }) - .forEach(push_column_eval); - range(Verifier.COLUMNS) - .map((i) => { return { kind: "coefficient", index: i } as Column }) - .forEach(push_column_eval); - range(Verifier.PERMUTS - 1) - .map((i) => { return { kind: "permutation", index: i } as Column }) - .forEach(push_column_eval); - if (index.range_check0_comm) push_column_eval({ kind: "index", typ: GateType.RangeCheck0 }); - if (index.range_check1_comm) push_column_eval({ kind: "index", typ: GateType.RangeCheck1 }); - if (index.foreign_field_add_comm) push_column_eval({ kind: "index", typ: GateType.ForeignFieldAdd }); - if (index.foreign_field_mul_comm) push_column_eval({ kind: "index", typ: GateType.ForeignFieldMul }); - if (index.xor_comm) push_column_eval({ kind: "index", typ: GateType.Xor16 }); - if (index.rot_comm) push_column_eval({ kind: "index", typ: GateType.Rot64 }); - if (index.lookup_index) { - const li = index.lookup_index; - range(li.lookup_info.max_per_row + 1) - .map((index) => { return { kind: "lookupsorted", index } as Column }) - .forEach(push_column_eval); - [{ kind: "lookupaggreg", } as Column, { kind: "lookuptable" } as Column] - .forEach(push_column_eval); - if (li.runtime_tables_selector) push_column_eval({ kind: "lookupruntimetable" }); - if (this.evals.runtimeLookupTableSelector) push_column_eval({ kind: "lookupruntimeselector" }); - if (this.evals.xorLookupSelector) push_column_eval({ kind: "lookupkindindex", pattern: LookupPattern.Xor }); - if (this.evals.lookupGateLookupSelector) push_column_eval({ kind: "lookupkindindex", pattern: LookupPattern.Lookup }); - if (this.evals.rangeCheckLookupSelector) push_column_eval({ kind: "lookupkindindex", pattern: LookupPattern.RangeCheck }); - if (this.evals.foreignFieldMulLookupSelector) push_column_eval({ kind: "lookupkindindex", pattern: LookupPattern.ForeignFieldMul }); - } - - const combined_inner_product = combinedInnerProduct( - evaluation_points, - v, - u, - es, - index.srs.g.length - ); - - const oracles: RandomOracles = { - joint_combiner, - beta, - gamma, - alpha_chal, - alpha, - zeta, - v, - u, - zeta_chal, - v_chal, - u_chal - } - - const result: Oracles = { - fq_sponge, - digest, - oracles, - all_alphas, - public_evals: public_evals!, - powers_of_eval_points_for_chunks, - polys, - zeta1, - ft_eval0, - combined_inner_product - } - - return verifierOk(result); - */ - } - - static fromFields(fields: FieldBn254[]) { - let evalsEnd = ProofEvaluations.sizeInFields(); - let evals = ProofEvaluations.fromFields(fields.slice(0, evalsEnd)); - let commitmentsEnd = evalsEnd + ProverCommitments.sizeInFields(); - let commitments = ProverCommitments.fromFields(fields.slice(evalsEnd, commitmentsEnd)); - let ftEval1End = commitmentsEnd + ForeignScalar.sizeInFields(); - let ft_eval1 = ForeignScalar.fromFields(fields.slice(commitmentsEnd, ftEval1End)); - let proofEnd = ftEval1End + OpeningProof.sizeInFields(); - let proof = OpeningProof.fromFields(fields.slice(ftEval1End, proofEnd)); - - // TODO: add `prev_challenges` - return new ProverProof(evals, [], commitments, ft_eval1, proof); - } - - toFields() { - return ProverProof.toFields(this); - } - - static toFields(one: ProverProof) { - let evals = one.evals.toFields(); - let commitments = one.commitments.toFields(); - // TODO: add prev_challenges - let ft_eval1 = one.ft_eval1.toFields(); - let proof = one.proof.toFields(); - - return [...evals, ...commitments, ...ft_eval1, ...proof]; - } - - static sizeInFields() { - let evalsSize = ProofEvaluations.sizeInFields(); - let commitmentsSize = ProverCommitments.sizeInFields(); - // TODO: add `prev_challenges` - let ftEval1Size = ForeignScalar.sizeInFields(); - let proofSize = OpeningProof.sizeInFields(); - - return evalsSize + commitmentsSize + ftEval1Size + proofSize; - } - - static toAuxiliary() { - return []; - } - - static check() { } -} - -export function combinedInnerProduct( - evaluation_points: ForeignScalar[], - polyscale: ForeignScalar, - evalscale: ForeignScalar, - polys: [ForeignScalar[][], number | undefined][], - srs_length: number -): ForeignScalar { - let res = ForeignScalar.from(0).assertAlmostReduced(); - let xi_i = ForeignScalar.from(1).assertAlmostReduced(); - - for (const [evals_tr, shifted] of polys.filter(([evals_tr, _]) => evals_tr[0].length != 0)) { - const evals = [...Array(evals_tr[0].length).keys()] - .map((i) => evals_tr.map((v) => v[i])); - - for (const evaluation of evals) { - const term = Polynomial.buildAndEvaluate(evaluation, evalscale); - res = res.add(xi_i.mul(term)).assertAlmostReduced(); - xi_i = xi_i.mul(polyscale).assertAlmostReduced(); - } - - if (shifted) { - let last_evals: ForeignScalar[]; - if (shifted >= evals.length * srs_length) { - last_evals = Array(evaluation_points.length).fill(ForeignScalar.from(0)); - } else { - last_evals = evals[evals.length - 1]; - } - - const shifted_evals = evaluation_points - .map((elm, i) => powScalar(elm, (srs_length - (shifted % srs_length))).mul(last_evals[i]).assertAlmostReduced()) - - res = res.add((xi_i.mul(Polynomial.buildAndEvaluate(shifted_evals, evalscale)))).assertAlmostReduced(); - xi_i = xi_i.mul(polyscale).assertAlmostReduced(); - } - } - return res; -} - -export class Context { - /* The [VerifierIndex] associated to the proof */ - verifier_index: VerifierIndex - - /* The proof to verify */ - proof: ProverProof - - /* The public input used in the creation of the proof */ - public_input: Scalar[] -}; - -/** - * Polynomial evaluations contained in a `ProverProof`. - * **Chunked evaluations** `Field` is instantiated with vectors with a length that equals the length of the chunk - * **Non chunked evaluations** `Field` is instantiated with a field, so they are single-sized#[serde_as] - */ -export class ProofEvaluations { - /* public input polynomials */ - public_input?: PointEvaluations - /* witness polynomials */ - w: Array // of size 15, total num of registers (columns) - /* permutation polynomial */ - z: PointEvaluations - /* - * permutation polynomials - * (PERMUTS-1 evaluations because the last permutation is only used in commitment form) - */ - s: Array // of size 7 - 1, total num of wirable registers minus one - /* coefficient polynomials */ - coefficients: Array // of size 15, total num of registers (columns) - /* evaluation of the generic selector polynomial */ - genericSelector: PointEvaluations - /* evaluation of the poseidon selector polynomial */ - poseidonSelector: PointEvaluations - /** evaluation of the elliptic curve addition selector polynomial */ - completeAddSelector: PointEvaluations - /** evaluation of the elliptic curve variable base scalar multiplication selector polynomial */ - mulSelector: PointEvaluations - /** evaluation of the endoscalar multiplication selector polynomial */ - emulSelector: PointEvaluations - /** evaluation of the endoscalar multiplication scalar computation selector polynomial */ - endomulScalarSelector: PointEvaluations - - // Optional gates - /** evaluation of the RangeCheck0 selector polynomial **/ - rangeCheck0Selector?: PointEvaluations - /** evaluation of the RangeCheck1 selector polynomial **/ - rangeCheck1Selector?: PointEvaluations - /** evaluation of the ForeignFieldAdd selector polynomial **/ - foreignFieldAddSelector?: PointEvaluations - /** evaluation of the ForeignFieldMul selector polynomial **/ - foreignFieldMulSelector?: PointEvaluations - /** evaluation of the Xor selector polynomial **/ - xorSelector?: PointEvaluations - /** evaluation of the Rot selector polynomial **/ - rotSelector?: PointEvaluations - - // lookup-related evaluations - /** evaluation of lookup aggregation polynomial **/ - lookupAggregation?: PointEvaluations - /** evaluation of lookup table polynomial **/ - lookupTable?: PointEvaluations - /** evaluation of lookup sorted polynomials **/ - lookupSorted?: PointEvaluations[] // fixed size of 5 - /** evaluation of runtime lookup table polynomial **/ - runtimeLookupTable?: PointEvaluations - - // lookup selectors - /** evaluation of the runtime lookup table selector polynomial **/ - runtimeLookupTableSelector?: PointEvaluations - /** evaluation of the Xor range check pattern selector polynomial **/ - xorLookupSelector?: PointEvaluations - /** evaluation of the Lookup range check pattern selector polynomial **/ - lookupGateLookupSelector?: PointEvaluations - /** evaluation of the RangeCheck range check pattern selector polynomial **/ - rangeCheckLookupSelector?: PointEvaluations - /** evaluation of the ForeignFieldMul range check pattern selector polynomial **/ - foreignFieldMulLookupSelector?: PointEvaluations - - constructor( - w: Array, - z: PointEvaluations, - s: Array, - coefficients: Array, - genericSelector: PointEvaluations, - poseidonSelector: PointEvaluations, - completeAddSelector: PointEvaluations, - mulSelector: PointEvaluations, - emulSelector: PointEvaluations, - endomulScalarSelector: PointEvaluations, - public_input?: PointEvaluations, - rangeCheck0Selector?: PointEvaluations, - rangeCheck1Selector?: PointEvaluations, - foreignFieldAddSelector?: PointEvaluations, - foreignFieldMulSelector?: PointEvaluations, - xorSelector?: PointEvaluations, - rotSelector?: PointEvaluations, - lookupAggregation?: PointEvaluations, - lookupTable?: PointEvaluations, - lookupSorted?: PointEvaluations[], // fixed size of 5 - runtimeLookupTable?: PointEvaluations, - runtimeLookupTableSelector?: PointEvaluations, - xorLookupSelector?: PointEvaluations, - lookupGateLookupSelector?: PointEvaluations, - rangeCheckLookupSelector?: PointEvaluations, - foreignFieldMulLookupSelector?: PointEvaluations, - ) { - this.w = w; - this.z = z; - this.s = s; - this.coefficients = coefficients; - this.genericSelector = genericSelector; - this.poseidonSelector = poseidonSelector; - this.completeAddSelector = completeAddSelector; - this.mulSelector = mulSelector; - this.emulSelector = emulSelector; - this.endomulScalarSelector = endomulScalarSelector; - this.public_input = public_input; - this.rangeCheck0Selector = rangeCheck0Selector; - this.rangeCheck1Selector = rangeCheck1Selector; - this.foreignFieldAddSelector = foreignFieldAddSelector; - this.foreignFieldMulSelector = foreignFieldMulSelector; - this.xorSelector = xorSelector; - this.rotSelector = rotSelector; - this.lookupAggregation = lookupAggregation; - this.lookupTable = lookupTable; - this.lookupSorted = lookupSorted; - this.runtimeLookupTable = runtimeLookupTable; - this.runtimeLookupTableSelector = runtimeLookupTableSelector; - this.xorLookupSelector = xorLookupSelector; - this.lookupGateLookupSelector = lookupGateLookupSelector; - this.rangeCheckLookupSelector = rangeCheckLookupSelector; - this.foreignFieldMulLookupSelector = foreignFieldMulLookupSelector; - return this; - } - - map(f: (e: PointEvaluations) => PointEvaluations): ProofEvaluations { - let { - w, - z, - s, - coefficients, - genericSelector, - poseidonSelector, - completeAddSelector, - mulSelector, - emulSelector, - endomulScalarSelector, - rangeCheck0Selector, - rangeCheck1Selector, - foreignFieldAddSelector, - foreignFieldMulSelector, - xorSelector, - rotSelector, - lookupAggregation, - lookupTable, - lookupSorted, // fixed size of 5 - runtimeLookupTable, - runtimeLookupTableSelector, - xorLookupSelector, - lookupGateLookupSelector, - rangeCheckLookupSelector, - foreignFieldMulLookupSelector, - } = this; - - let public_input = undefined; - if (this.public_input) public_input = f(this.public_input); - - const optional_f = (e?: PointEvaluations) => e ? f(e) : undefined; - - return new ProofEvaluations( - w.map(f), - f(z), - s.map(f), - coefficients.map(f), - f(genericSelector), - f(poseidonSelector), - f(completeAddSelector), - f(mulSelector), - f(emulSelector), - f(endomulScalarSelector), - public_input, - optional_f(rangeCheck0Selector), - optional_f(rangeCheck1Selector), - optional_f(foreignFieldAddSelector), - optional_f(foreignFieldMulSelector), - optional_f(xorSelector), - optional_f(rotSelector), - optional_f(lookupAggregation), - optional_f(lookupTable), - lookupSorted ? lookupSorted!.map(f) : undefined, // fixed size of 5 - optional_f(runtimeLookupTable), - optional_f(runtimeLookupTableSelector), - optional_f(xorLookupSelector), - optional_f(lookupGateLookupSelector), - optional_f(rangeCheckLookupSelector), - optional_f(foreignFieldMulLookupSelector), - ) - } - - /* - Returns a new PointEvaluations struct with the combined evaluations. - */ - static combine( - evals: ProofEvaluations, - pt: PointEvaluations - ): ProofEvaluations { - return evals.map((orig) => new PointEvaluations( - Polynomial.buildAndEvaluate([orig.zeta], pt.zeta), - Polynomial.buildAndEvaluate([orig.zetaOmega], pt.zetaOmega) - )); - } - - getColumn(col: Column): PointEvaluations | undefined { - switch (col.kind) { - case "witness": { - return this.w[col.index]; - } - case "z": { - return this.z; - } - case "lookupsorted": { - return this.lookupSorted?.[col.index]; - } - case "lookupaggreg": { - return this.lookupAggregation; - } - case "lookuptable": { - return this.lookupTable; - } - case "lookupkindindex": { - if (col.pattern === LookupPattern.Xor) return this.xorLookupSelector; - if (col.pattern === LookupPattern.Lookup) return this.lookupGateLookupSelector; - if (col.pattern === LookupPattern.RangeCheck) return this.rangeCheckLookupSelector; - if (col.pattern === LookupPattern.ForeignFieldMul) return this.foreignFieldMulLookupSelector; - else return undefined - } - case "lookupruntimeselector": { - return this.runtimeLookupTableSelector; - } - case "lookupruntimetable": { - return this.runtimeLookupTable; - } - case "index": { - if (col.typ === GateType.Generic) return this.genericSelector; - if (col.typ === GateType.Poseidon) return this.poseidonSelector; - if (col.typ === GateType.CompleteAdd) return this.completeAddSelector; - if (col.typ === GateType.VarBaseMul) return this.mulSelector; - if (col.typ === GateType.EndoMul) return this.emulSelector; - if (col.typ === GateType.EndoMulScalar) return this.endomulScalarSelector; - if (col.typ === GateType.RangeCheck0) return this.rangeCheck0Selector; - if (col.typ === GateType.RangeCheck1) return this.rangeCheck1Selector; - if (col.typ === GateType.ForeignFieldAdd) return this.foreignFieldAddSelector; - if (col.typ === GateType.ForeignFieldMul) return this.foreignFieldMulSelector; - if (col.typ === GateType.Xor16) return this.xorSelector; - if (col.typ === GateType.Rot64) return this.rotSelector; - else return undefined; - } - case "coefficient": { - return this.coefficients[col.index]; - } - case "permutation": { - return this.s[col.index]; - } - } - } - - static #wLength() { - return 15; - } - - static #sLength() { - return 6; - } - - static #coefficientsLength() { - return 15; - } - - static fromFields(fields: FieldBn254[]): ProofEvaluations { - let [w, zOffset] = pointEvaluationsArrayFromFields(fields, this.#wLength(), 0); - let [z, sOffset] = pointEvaluationsFromFields(fields, zOffset); - let [s, coefficientsOffset] = pointEvaluationsArrayFromFields(fields, this.#sLength(), sOffset); - let [coefficients, genericSelectorOffset] = pointEvaluationsArrayFromFields(fields, this.#coefficientsLength(), coefficientsOffset); - let [genericSelector, poseidonSelectorOffset] = pointEvaluationsFromFields(fields, genericSelectorOffset); - let [poseidonSelector, completeAddSelectorOffset] = pointEvaluationsFromFields(fields, poseidonSelectorOffset); - let [completeAddSelector, mulSelectorOffset] = pointEvaluationsFromFields(fields, completeAddSelectorOffset); - let [mulSelector, emulSelectorOffset] = pointEvaluationsFromFields(fields, mulSelectorOffset); - let [emulSelector, endomulScalarSelectorOffset] = pointEvaluationsFromFields(fields, emulSelectorOffset); - let [endomulScalarSelector, publicInputOffset] = pointEvaluationsFromFields(fields, endomulScalarSelectorOffset); - let [public_input, rangeCheck0SelectorOffset] = optionalPointEvaluationsFromFields(fields, publicInputOffset); - let [rangeCheck0Selector, rangeCheck1SelectorOffset] = optionalPointEvaluationsFromFields(fields, rangeCheck0SelectorOffset); - let [rangeCheck1Selector, foreignFieldAddSelectorOffset] = optionalPointEvaluationsFromFields(fields, rangeCheck1SelectorOffset); - let [foreignFieldAddSelector, foreignFieldMulSelectorOffset] = optionalPointEvaluationsFromFields(fields, foreignFieldAddSelectorOffset); - let [foreignFieldMulSelector, xorSelectorOffset] = optionalPointEvaluationsFromFields(fields, foreignFieldMulSelectorOffset); - let [xorSelector, rotSelectorOffset] = optionalPointEvaluationsFromFields(fields, xorSelectorOffset); - let [rotSelector, lookupAggregationOffset] = optionalPointEvaluationsFromFields(fields, rotSelectorOffset); - let [lookupAggregation, lookupTableOffset] = optionalPointEvaluationsFromFields(fields, lookupAggregationOffset); - let [lookupTable, lookupSortedOffset] = optionalPointEvaluationsFromFields(fields, lookupTableOffset); - // TODO: Check `lookupSorted` length - let [lookupSorted, runtimeLookupTableOffset] = optionalPointEvaluationsArrayFromFields(fields, 0, lookupSortedOffset); - let [runtimeLookupTable, runtimeLookupTableSelectorOffset] = optionalPointEvaluationsFromFields(fields, runtimeLookupTableOffset); - let [runtimeLookupTableSelector, xorLookupSelectorOffset] = optionalPointEvaluationsFromFields(fields, runtimeLookupTableSelectorOffset); - let [xorLookupSelector, lookupGateLookupSelectorOffset] = optionalPointEvaluationsFromFields(fields, xorLookupSelectorOffset); - let [lookupGateLookupSelector, rangeCheckLookupSelectorOffset] = optionalPointEvaluationsFromFields(fields, lookupGateLookupSelectorOffset); - let [rangeCheckLookupSelector, foreignFieldMulLookupSelectorOffset] = optionalPointEvaluationsFromFields(fields, rangeCheckLookupSelectorOffset); - let [foreignFieldMulLookupSelector, _] = optionalPointEvaluationsFromFields(fields, foreignFieldMulLookupSelectorOffset); - - return new ProofEvaluations( - w, - z, - s, - coefficients, - genericSelector, - poseidonSelector, - completeAddSelector, - mulSelector, - emulSelector, - endomulScalarSelector, - public_input, - rangeCheck0Selector, - rangeCheck1Selector, - foreignFieldAddSelector, - foreignFieldMulSelector, - xorSelector, - rotSelector, - lookupAggregation, - lookupTable, - lookupSorted, - runtimeLookupTable, - runtimeLookupTableSelector, - xorLookupSelector, - lookupGateLookupSelector, - rangeCheckLookupSelector, - foreignFieldMulLookupSelector - ); - } - - toFields() { - let w = arrayToFields(this.w); - let z = this.z.toFields(); - let s = arrayToFields(this.s); - let coefficients = arrayToFields(this.coefficients); - let genericSelector = this.genericSelector.toFields(); - let poseidonSelector = this.poseidonSelector.toFields(); - let completeAddSelector = this.completeAddSelector.toFields(); - let mulSelector = this.mulSelector.toFields(); - let emulSelector = this.emulSelector.toFields(); - let endomulScalarSelector = this.endomulScalarSelector.toFields(); - let public_input = PointEvaluations.optionalToFields(this.public_input); - let rangeCheck0Selector = PointEvaluations.optionalToFields(this.rangeCheck0Selector); - let rangeCheck1Selector = PointEvaluations.optionalToFields(this.rangeCheck1Selector); - let foreignFieldAddSelector = PointEvaluations.optionalToFields(this.foreignFieldAddSelector); - let foreignFieldMulSelector = PointEvaluations.optionalToFields(this.foreignFieldMulSelector); - let xorSelector = PointEvaluations.optionalToFields(this.xorSelector); - let rotSelector = PointEvaluations.optionalToFields(this.rotSelector); - let lookupAggregation = PointEvaluations.optionalToFields(this.lookupAggregation); - let lookupTable = PointEvaluations.optionalToFields(this.lookupTable); - // TODO: Check `lookupSorted` length - let lookupSorted = PointEvaluations.optionalArrayToFields(0, this.lookupSorted); - let runtimeLookupTable = PointEvaluations.optionalToFields(this.runtimeLookupTable); - let runtimeLookupTableSelector = PointEvaluations.optionalToFields(this.runtimeLookupTableSelector); - let xorLookupSelector = PointEvaluations.optionalToFields(this.xorLookupSelector); - let lookupGateLookupSelector = PointEvaluations.optionalToFields(this.lookupGateLookupSelector); - let rangeCheckLookupSelector = PointEvaluations.optionalToFields(this.rangeCheckLookupSelector); - let foreignFieldMulLookupSelector = PointEvaluations.optionalToFields(this.foreignFieldMulLookupSelector); - - return [ - ...w, - ...z, - ...s, - ...coefficients, - ...genericSelector, - ...poseidonSelector, - ...completeAddSelector, - ...mulSelector, - ...emulSelector, - ...endomulScalarSelector, - ...public_input, - ...rangeCheck0Selector, - ...rangeCheck1Selector, - ...foreignFieldAddSelector, - ...foreignFieldMulSelector, - ...xorSelector, - ...rotSelector, - ...lookupAggregation, - ...lookupTable, - ...lookupSorted, - ...runtimeLookupTable, - ...runtimeLookupTableSelector, - ...xorLookupSelector, - ...lookupGateLookupSelector, - ...rangeCheckLookupSelector, - ...foreignFieldMulLookupSelector - ]; - } - - static sizeInFields() { - const wSize = this.#wLength() * PointEvaluations.sizeInFields(); - const zSize = PointEvaluations.sizeInFields(); - const sSize = this.#sLength() * PointEvaluations.sizeInFields(); - const coefficientsSize = this.#coefficientsLength() * PointEvaluations.sizeInFields(); - const genericSelectorSize = PointEvaluations.sizeInFields(); - const poseidonSelectorSize = PointEvaluations.sizeInFields(); - const completeAddSelectorSize = PointEvaluations.sizeInFields(); - const mulSelectorSize = PointEvaluations.sizeInFields(); - const emulSelectorSize = PointEvaluations.sizeInFields(); - const endomulScalarSelectorSize = PointEvaluations.sizeInFields(); - const publicInputSize = 1 + PointEvaluations.sizeInFields(); - // TODO: Check the proof fields size defined above with a proof that has non-null values - const rangeCheck0SelectorSize = 1 + PointEvaluations.sizeInFields(); - const rangeCheck1SelectorSize = 1 + PointEvaluations.sizeInFields(); - const foreignFieldAddSelectorSize = 1 + PointEvaluations.sizeInFields(); - const foreignFieldMulSelectorSize = 1 + PointEvaluations.sizeInFields(); - const xorSelectorSize = 1 + PointEvaluations.sizeInFields(); - const rotSelectorSize = 1 + PointEvaluations.sizeInFields(); - const lookupAggregationSize = 1 + PointEvaluations.sizeInFields(); - const lookupTableSize = 1 + PointEvaluations.sizeInFields(); - // TODO: Check `lookupSorted` length - const lookupSortedSize = 1; - const runtimeLookupTableSize = 1 + PointEvaluations.sizeInFields(); - const runtimeLookupTableSelectorSize = 1 + PointEvaluations.sizeInFields(); - const xorLookupSelectorSize = 1 + PointEvaluations.sizeInFields(); - const lookupGateLookupSelectorSize = 1 + PointEvaluations.sizeInFields(); - const rangeCheckLookupSelectorSize = 1 + PointEvaluations.sizeInFields(); - const foreignFieldMulLookupSelectorSize = 1 + PointEvaluations.sizeInFields(); - - return wSize + zSize + sSize + coefficientsSize + genericSelectorSize + poseidonSelectorSize + - completeAddSelectorSize + mulSelectorSize + emulSelectorSize + endomulScalarSelectorSize + publicInputSize + - rangeCheck0SelectorSize + rangeCheck1SelectorSize + foreignFieldAddSelectorSize + foreignFieldMulSelectorSize + - xorSelectorSize + rotSelectorSize + lookupAggregationSize + lookupTableSize + lookupSortedSize + - runtimeLookupTableSize + runtimeLookupTableSelectorSize + xorLookupSelectorSize + lookupGateLookupSelectorSize + - rangeCheckLookupSelectorSize + foreignFieldMulLookupSelectorSize; - } -} - -/** - * Evaluations of lookup polynomials. - */ -export class LookupEvaluations { - /* sorted lookup table polynomial */ - sorted: Array - /* lookup aggregation polynomial */ - aggreg: Evals - /* lookup table polynomial */ - table: Evals - /* runtime table polynomial*/ - runtime?: Evals - - constructor() { - this.sorted = []; - return this; - } -} - -/** - * Evaluations of a polynomial at 2 points. - */ -export class PointEvaluations { - /* evaluation at the challenge point zeta */ - zeta: ForeignScalar - /* Evaluation at `zeta . omega`, the product of the challenge point and the group generator */ - zetaOmega: ForeignScalar - - constructor(zeta: ForeignScalar, zetaOmega: ForeignScalar) { - this.zeta = zeta; - this.zetaOmega = zetaOmega; - } - - static fromFields(fields: FieldBn254[]) { - let [zeta, zetaOmegaOffset] = scalarFromFields(fields, 0); - let [zetaOmega, _] = scalarFromFields(fields, zetaOmegaOffset); - - return new PointEvaluations(zeta, zetaOmega); - } - - toFields() { - let zeta = this.zeta.toFields(); - let zetaOmega = this.zetaOmega.toFields(); - - return [...zeta, ...zetaOmega]; - } - - static sizeInFields() { - let zetaSize = ForeignScalar.sizeInFields(); - let zetaOmegaSize = ForeignScalar.sizeInFields(); - - return zetaSize + zetaOmegaSize; - } - - static optionalFromFields(fields: FieldBn254[]) { - let [optionFlag, ...input] = fields; - - if (optionFlag.equals(0)) { - return undefined; - } - - return PointEvaluations.fromFields(input); - } - - static optionalToFields(input?: PointEvaluations) { - if (typeof input === "undefined") { - // [option_flag, ...zeros] - return Array(PointEvaluations.sizeInFields() + 1).fill(FieldBn254(0)); - } - - let fields = input?.toFields(); - - return [FieldBn254(1), ...fields]; - } - - static optionalArrayFromFields(length: number, fields: FieldBn254[]) { - let [optionFlag, ...input] = fields; - - if (optionFlag.equals(0)) { - return undefined; - } - - let [array, _] = pointEvaluationsArrayFromFields(input, length, 0); - - return array; - } - - static optionalArrayToFields(length: number, input?: PointEvaluations[]) { - if (typeof input === "undefined") { - // [option_flag, ...zeros] - return Array(PointEvaluations.sizeInFields() * length + 1).fill(FieldBn254(0)); - } - - let fields = arrayToFields(input); - - return [FieldBn254(1), ...fields]; - } -} - -/** - * Stores the challenges inside a `ProverProof` - */ -export class RecursionChallenge { - chals: ForeignScalar[] - comm: PolyComm - - evals( - max_poly_size: number, - evaluation_points: ForeignScalar[], - powers_of_eval_points_for_chunks: ForeignScalar[] - ): ForeignScalar[][] { - const chals = this.chals; - // Comment copied from Kimchi code: - // - // No need to check the correctness of poly explicitly. Its correctness is assured by the - // checking of the inner product argument. - const b_len = 1 << chals.length; - let b: ForeignScalar[] | undefined = undefined; - - return [0, 1, 2].map((i) => { - const full = bPoly(chals, evaluation_points[i]) - if (max_poly_size === b_len) { - return [full]; - } - - let betacc = ForeignScalar.from(1).assertAlmostReduced(); - let diffs: ForeignScalar[] = []; - for (let j = max_poly_size; j < b_len; j++) { - let b_j; - if (b) { - b_j = b[j]; - } else { - const t = bPolyCoefficients(chals); - const res = t[j]; - b = t; - b_j = res; - } - - const ret = betacc.mul(b_j).assertAlmostReduced(); - betacc = betacc.mul(evaluation_points[i]).assertAlmostReduced(); - diffs.push(ret); - } - - const diff = diffs.reduce((x, y) => x.add(y).assertAlmostReduced(), ForeignScalar.from(0).assertAlmostReduced()); - return [full.sub(diff.mul(powers_of_eval_points_for_chunks[i])).assertAlmostReduced(), diff]; - }); - } -} - -/** -* Commitments linked to the lookup feature -*/ -export class LookupCommitments { - /// Commitments to the sorted lookup table polynomial (may have chunks) - sorted: PolyComm[] - /// Commitment to the lookup aggregation polynomial - aggreg: PolyComm - /// Optional commitment to concatenated runtime tables - runtime?: PolyComm - - constructor(sorted: PolyComm[], aggreg: PolyComm, runtime?: PolyComm) { - this.sorted = sorted; - this.aggreg = aggreg; - this.runtime = runtime; - } - - static fromFields(fields: FieldBn254[]) { - let [sorted, aggregOffset] = pallasCommArrayFromFields(fields, 1, 1, 0); - let [aggreg, runtimeOffset] = pallasCommFromFields(fields, 1, aggregOffset); - let [runtime, _] = pallasCommFromFields(fields, 1, runtimeOffset); - - return new LookupCommitments(sorted, aggreg, runtime); - } - - toFields() { - let sorted = arrayToFields(this.sorted); - let aggreg = this.aggreg.toFields(); - let runtime = typeof this.runtime === "undefined" ? [] : this.runtime.toFields(); - - return [...sorted, ...aggreg, ...runtime]; - } -} - -export class ProverCommitments { - /* Commitments to the witness (execution trace) */ - wComm: PolyComm[] - /* Commitment to the permutation */ - zComm: PolyComm - /* Commitment to the quotient polynomial */ - tComm: PolyComm - /// Commitments related to the lookup argument - lookup?: LookupCommitments - - constructor(wComm: PolyComm[], zComm: PolyComm, tComm: PolyComm, lookup?: LookupCommitments) { - this.wComm = wComm; - this.zComm = zComm; - this.tComm = tComm; - this.lookup = lookup; - } - - static fromFields(fields: FieldBn254[]) { - let [wComm, zCommOffset] = pallasCommArrayFromFields(fields, 15, 1, 0); - let [zComm, tCommOffset] = pallasCommFromFields(fields, 1, zCommOffset); - let [tComm, _] = pallasCommFromFields(fields, 7, tCommOffset); - //TODO: Add lookup - - return new ProverCommitments(wComm, zComm, tComm); - } - - toFields() { - let wComm = arrayToFields(this.wComm); - let zComm = this.zComm.toFields(); - let tComm = this.tComm.toFields(); - //TODO: Add lookup - - return [...wComm, ...zComm, ...tComm]; - } - - static sizeInFields() { - let wCommSize = 15 * ForeignPallas.sizeInFields(); - let zCommSize = ForeignPallas.sizeInFields(); - let tCommSize = 7 * ForeignPallas.sizeInFields(); - // TODO: Check lookup size - - return wCommSize + zCommSize + tCommSize; - } -} - -export class Constants { - /** The challenge alpha from the PLONK IOP. */ - alpha: F - /** The challenge beta from the PLONK IOP. */ - beta: F - /** The challenge gamma from the PLONK IOP. */ - gamma: F - /** - * The challenge joint_combiner which is used to combine - * joint lookup tables. - */ - joint_combiner?: F - /** The endomorphism coefficient */ - endo_coefficient: F - /** The MDS matrix */ - mds: F[][] - /** The number of zero-knowledge rows */ - zk_rows: number -} - -export class RandomOracles { - joint_combiner?: ForeignScalar[] - beta: ForeignScalar - gamma: ForeignScalar - alpha_chal: ScalarChallenge - alpha: ForeignScalar - zeta: ForeignScalar - v: ForeignScalar - u: ForeignScalar - zeta_chal: ScalarChallenge - v_chal: ScalarChallenge - u_chal: ScalarChallenge -} - -/** The result of running the oracle protocol */ -export class Oracles { - /** A sponge that acts on the base field of a curve */ - fq_sponge: Sponge - /** the last evaluation of the Fq-Sponge in this protocol */ - digest: ForeignScalar - /** the challenges produced in the protocol */ - oracles: RandomOracles - /** the computed powers of alpha */ - all_alphas: Alphas - /** public polynomial evaluations */ - public_evals: ForeignScalar[][] // array of size 2 of vecs of scalar - /** zeta^n and (zeta * omega)^n */ - powers_of_eval_points_for_chunks: PointEvaluations - /** recursion data */ - polys: [PolyComm, ForeignScalar[][]][] - /** pre-computed zeta^n */ - zeta1: ForeignScalar - /** The evaluation f(zeta) - t(zeta) * Z_H(zeta) */ - ft_eval0: ForeignScalar - /** Used by the OCaml side */ - combined_inner_product: ForeignScalar -} diff --git a/verifier_circuit/src/serde/serde_index.ts b/verifier_circuit/src/serde/serde_index.ts deleted file mode 100644 index 1019bd76..00000000 --- a/verifier_circuit/src/serde/serde_index.ts +++ /dev/null @@ -1,334 +0,0 @@ -import { ForeignCurveBn254, Group, Scalar } from "o1js" -import { PolyComm } from "../poly_commitment/commitment.js" -import { LookupVerifierIndex, VerifierIndex } from "../verifier/verifier.js" -import { deserHexScalar } from "./serde_proof.js" -import { PolishToken, CurrOrNext, Variable, Column, Linearization } from "../prover/expr.js" -import { ArgumentType, GateType } from "../circuits/gate.js" -import { Polynomial } from "../polynomial.js" -import { Alphas } from "../alphas.js" -import { ForeignPallas } from "../foreign_fields/foreign_pallas.js" -import { LookupFeatures, LookupInfo, LookupPatterns, LookupSelectors } from "../lookups/lookups.js" - -export type PolyCommJSON = GroupJSON[]; - -export interface AlphasJSON { - -} - -export type PolynomialJSON = string[]; -export type GateTypeJSON = string; -export type CurrOrNextJSON = string; - -export namespace ColumnJSON { - export type Z = string; - - export type Witness = number - - export type Index = GateTypeJSON - - export type Coefficient = number - - export type Permutation = number -} - -export type ColumnJSON = { - Witness?: ColumnJSON.Witness - Index?: ColumnJSON.Index - Coefficient?: ColumnJSON.Coefficient - Permutation?: ColumnJSON.Permutation -} - -export type VariableJSON = { - col: ColumnJSON - row: CurrOrNextJSON -} - -export namespace PolishTokenJSON { - export type UnitVariant = string - export type Literal = string // Scalar - export type Cell = VariableJSON - export type Pow = number - export type Mds = { - row: number - col: number - } - export type UnnormalizedLagrangeBasis = number - export type Load = number - export type SkipIf = number - export type SkipIfNot = number -} - -export type PolishTokenJSON = - | PolishTokenJSON.UnitVariant - | { - Literal?: PolishTokenJSON.Literal - Cell?: PolishTokenJSON.Cell - Pow?: PolishTokenJSON.Pow - Mds?: PolishTokenJSON.Mds - UnnormalizedLagrangeBasis?: PolishTokenJSON.UnnormalizedLagrangeBasis - Load?: PolishTokenJSON.Load - SkipIf?: PolishTokenJSON.SkipIf - SkipIfNot?: PolishTokenJSON.SkipIfNot - } - -interface LinearizationJSON { - constant_term: PolishTokenJSON[] - index_terms: [ColumnJSON, PolishTokenJSON[]][] -} - -interface VerifierIndexJSON { - domain_size: number, - domain_gen: string, - public_size: number, - max_poly_size: number - zk_rows: number - - sigma_comm: PolyCommJSON[] - coefficients_comm: PolyCommJSON[] - generic_comm: PolyCommJSON - - psm_comm: PolyCommJSON - - complete_add_comm: PolyCommJSON - mul_comm: PolyCommJSON - emul_comm: PolyCommJSON - endomul_scalar_comm: PolyCommJSON - - range_check0_comm: PolyCommJSON | null - range_check1_comm: PolyCommJSON | null, - foreign_field_add_comm: PolyCommJSON | null, - foreign_field_mul_comm: PolyCommJSON | null, - xor_comm: PolyCommJSON | null, - rot_comm: PolyCommJSON | null, - - //powers_of_alpha: AlphasJSON - shift: string[] - permutation_vanishing_polynomial_m: PolynomialJSON - w: string - endo: string - lookup_index: LookupVerifierIndexJSON | null, - linearization: LinearizationJSON, -} - -export interface LookupVerifierIndexJSON { - joint_lookup_used: boolean, - lookup_table: PolyCommJSON[], - lookup_selectors: LookupSelectorsJSON - - table_ids: PolyCommJSON | null, - - lookup_info: LookupInfoJSON, - - runtime_tables_selector: PolyCommJSON | null -} - -export interface LookupSelectorsJSON { - xor: PolyCommJSON | null, - lookup: PolyCommJSON | null, - range_check: PolyCommJSON | null, - ffmul: PolyCommJSON | null -} - -export interface LookupInfoJSON { - max_per_row: number, - max_joint_size: number, - features: LookupFeaturesJSON -} - -export interface LookupFeaturesJSON { - patterns: LookupPatternsJSON, - joint_lookup_used: boolean, - uses_runtime_tables: boolean -} - -export interface LookupPatternsJSON { - xor: boolean, - lookup: boolean, - range_check: boolean, - foreign_field_mul: boolean, -} - -export type GroupJSON = string[]; - -export function deserGroup(json: GroupJSON): ForeignPallas { - if (json[0] === "0" && json[1] === "1") { - return ForeignPallas.generator.add(ForeignPallas.generator.negate()) as ForeignPallas; - } else { - return new ForeignPallas({ x: BigInt(json[0]), y: BigInt(json[1]) }); - } -} - -export function deserPolyComm(json: PolyCommJSON): PolyComm { - const unshifted = json.map(deserGroup); - return new PolyComm(unshifted, undefined); -} - -export function deserGateType(json: GateTypeJSON): GateType { - return GateType[json as keyof typeof GateType]; -} - -export function deserColumn(json: ColumnJSON): Column | undefined { - if (json.Witness != null) return { kind: "witness", index: json.Witness }; - if (json.Index != null) return { kind: "index", typ: deserGateType(json.Index) }; - if (json.Coefficient != null) return { kind: "coefficient", index: json.Coefficient }; - if (json.Permutation != null) return { kind: "permutation", index: json.Permutation }; - return undefined; -} - -export function deserCurrOrNext(json: CurrOrNextJSON): CurrOrNext { - return CurrOrNext[json as keyof typeof CurrOrNext]; -} - -export function deserVariable(json: VariableJSON): Variable { - return new Variable(deserColumn(json.col)!, deserCurrOrNext(json.row)); -} - -export function deserPolynomial(json: PolynomialJSON): Polynomial { - return new Polynomial(json.map(deserHexScalar)); -} - -export function deserPolishToken(json: PolishTokenJSON): PolishToken | undefined { - if (typeof json === "string") { // unit variant - switch (json) { - case "Alpha": return { kind: "alpha" } - case "Beta": return { kind: "beta" } - case "Gamma": return { kind: "gamma" } - case "JointCombiner": return { kind: "jointcombiner" } - case "EndoCoefficient": return { kind: "endocoefficient" } - case "Dup": return { kind: "dup" } - case "Add": return { kind: "add" } - case "Mul": return { kind: "mul" } - case "Sub": return { kind: "sub" } - case "VanishesOnZeroKnowledgeAndPreviousRows": return { kind: "vanishesonzeroknowledgeandpreviousrows" } - case "Store": return { kind: "store" } - } - } else { - if (json.Literal != null) return { kind: "literal", lit: deserHexScalar(json.Literal) }; - if (json.Cell != null) { - return { kind: "cell", cell: deserVariable(json.Cell) }; - } - if (json.UnnormalizedLagrangeBasis != null) - return { kind: "unnormalizedlagrangebasis", index: json.UnnormalizedLagrangeBasis }; - if (json.Mds != null) return { kind: "mds", row: json.Mds.row, col: json.Mds.col }; - if (json.Load != null) return { kind: "load", index: json.Load }; - if (json.Pow != null) return { kind: "pow", pow: json.Pow }; - if (json.SkipIf != null) return { kind: "skipif", num: json.SkipIf }; - if (json.SkipIfNot != null) return { kind: "skipifnot", num: json.SkipIfNot }; - } - return undefined; -} - -export function deserLinearization(json: LinearizationJSON): Linearization { - const constant_term = json.constant_term.map((t) => deserPolishToken(t)!); - const index_terms = json.index_terms.map(([col, coeff]) => - [deserColumn(col), coeff.map((t) => deserPolishToken(t)!)] as [Column, PolishToken[]]); - return { constant_term, index_terms }; -} - -export function deserVerifierIndex(json: VerifierIndexJSON): VerifierIndex { - const { - domain_size, - domain_gen, - max_poly_size, - zk_rows, - public_size, - sigma_comm, - coefficients_comm, - generic_comm, - psm_comm, - complete_add_comm, - mul_comm, - emul_comm, - endomul_scalar_comm, - range_check0_comm, - range_check1_comm, - foreign_field_add_comm, - foreign_field_mul_comm, - xor_comm, - rot_comm, - //powers_of_alpha, - shift, - permutation_vanishing_polynomial_m, - w, - endo, - linearization, - } = json; - - let lookup_index: LookupVerifierIndex | undefined = undefined; - if (json.lookup_index) { - const patterns: LookupPatterns = json.lookup_index.lookup_info.features.patterns; - const features: LookupFeatures = { - ...json.lookup_index.lookup_info.features, - patterns - }; - const lookup_info: LookupInfo = { - ...json.lookup_index.lookup_info, - features - }; - - const json_selectors = json.lookup_index.lookup_selectors; - const lookup_selectors: LookupSelectors = { - xor: json_selectors.xor ? deserPolyComm(json_selectors.xor) : undefined, - lookup: json_selectors.lookup ? deserPolyComm(json_selectors.lookup) : undefined, - range_check: json_selectors.range_check ? deserPolyComm(json_selectors.range_check) : undefined, - ffmul: json_selectors.ffmul ? deserPolyComm(json_selectors.ffmul) : undefined, - } - - const lookup_table = json.lookup_index.lookup_table.map(deserPolyComm); - const table_ids = json.lookup_index.table_ids - ? deserPolyComm(json.lookup_index.table_ids) - : undefined; - const runtime_tables_selector = json.lookup_index.runtime_tables_selector - ? deserPolyComm(json.lookup_index.runtime_tables_selector) - : undefined; - - lookup_index = { - ...json.lookup_index, - lookup_table, - lookup_selectors, - table_ids, - lookup_info, - runtime_tables_selector - }; - } - - // FIXME: hardcoded because of the difficulty of serializing this in Rust. - // Alphas { next_power: 24, mapping: {Gate(Zero): (0, 21), Permutation: (21, 3)}, alphas: None } - // this was generated from the verifier_circuit_tests/ crate. - const powers_of_alpha = new Alphas( - 24, - new Map([ - [ArgumentType.id({ kind: "gate", type: GateType.Zero }), [0, 21]], - [ArgumentType.id({ kind: "permutation" }), [21, 3]] - ] - )); - - return new VerifierIndex( - domain_size, - deserHexScalar(domain_gen), - max_poly_size, - zk_rows, - public_size, - sigma_comm.map(deserPolyComm), - coefficients_comm.map(deserPolyComm), - deserPolyComm(generic_comm), - deserPolyComm(psm_comm), - deserPolyComm(complete_add_comm), - deserPolyComm(mul_comm), - deserPolyComm(emul_comm), - deserPolyComm(endomul_scalar_comm), - powers_of_alpha, - shift.map(deserHexScalar), - deserPolynomial(permutation_vanishing_polynomial_m), - deserHexScalar(w), - deserHexScalar(endo), - deserLinearization(linearization), - range_check0_comm ? deserPolyComm(range_check0_comm) : undefined, - range_check1_comm ? deserPolyComm(range_check1_comm!) : undefined, - foreign_field_add_comm ? deserPolyComm(foreign_field_add_comm) : undefined, - foreign_field_mul_comm ? deserPolyComm(foreign_field_mul_comm) : undefined, - xor_comm ? deserPolyComm(xor_comm) : undefined, - rot_comm ? deserPolyComm(rot_comm) : undefined, - lookup_index - ); -} diff --git a/verifier_circuit/src/serde/serde_proof.ts b/verifier_circuit/src/serde/serde_proof.ts deleted file mode 100644 index c0cddce8..00000000 --- a/verifier_circuit/src/serde/serde_proof.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { OpeningProof } from "../poly_commitment/opening_proof.js"; -import { PointEvaluations, ProofEvaluations, ProverCommitments, ProverProof, RecursionChallenge } from "../prover/prover.js" -import { deserPolyComm, PolyCommJSON, deserGroup, GroupJSON } from "./serde_index.js"; -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; -import { PolyComm } from "../poly_commitment/commitment.js"; -import { ForeignPallas } from "../foreign_fields/foreign_pallas.js"; - -type PointEvals = PointEvaluations; - -export type PointEvalsJSON = string[][]; - -export interface ProofEvalsJSON { - w: PointEvalsJSON[] // of size 15, total num of registers (columns) - z: PointEvalsJSON - s: PointEvalsJSON[] // of size 7 - 1, total num of wirable registers minus one - coefficients: PointEvalsJSON[] // of size 15, total num of registers (columns) - generic_selector: PointEvalsJSON - poseidon_selector: PointEvalsJSON - complete_add_selector: PointEvalsJSON - mul_selector: PointEvalsJSON - emul_selector: PointEvalsJSON - endomul_scalar_selector: PointEvalsJSON - - range_check0_selector: PointEvalsJSON | null - range_check1_selector: PointEvalsJSON | null - foreign_field_add_selector: PointEvalsJSON | null - foreign_field_mul_selector: PointEvalsJSON | null - xor_selector: PointEvalsJSON | null - rot_selector: PointEvalsJSON | null - - lookup_aggregation: PointEvalsJSON | null - lookup_table: PointEvalsJSON | null - lookup_sorted: PointEvalsJSON[] | null[] // fixed size of 5 - runtime_lookup_table: PointEvalsJSON | null - - runtime_lookup_table_selector: PointEvalsJSON | null - xor_lookup_selector: PointEvalsJSON | null - lookup_gate_lookup_selector: PointEvalsJSON | null - range_check_lookup_selector: PointEvalsJSON | null - foreign_field_mul_lookup_selector: PointEvalsJSON | null - -} - -interface ProverCommitmentsJSON { - w_comm: GroupJSON[] - z_comm: GroupJSON - t_comm: PolyCommJSON -} - -/** - * Deserializes a scalar from a hex string, prefix doesn't matter - */ -export function deserHexScalar(str: string): ForeignScalar { - if (str.startsWith("0x")) str = str.slice(1); - - // reverse endianness - let rev_str = "0x"; - for (let i = str.length - 1; i > 0; i -= 2) { - rev_str += str.charAt(i - 1); - rev_str += str.charAt(i); - } - - return ForeignScalar.from(rev_str).assertAlmostReduced(); -} - -/** - * Deserializes a scalar from a dec string - */ -export function deserDecScalar(str: string): ForeignScalar { - return ForeignScalar.from(str); -} - -/** - * Deserializes a scalar point evaluation from JSON - */ -export function deserPointEval(json: PointEvalsJSON): PointEvals { - let zeta; - let zetaOmega; - - if (Array.isArray(json[0])) { - zeta = json[0].map(deserHexScalar)[0]; - } else { - zeta = deserHexScalar(json[0]); - } - if (Array.isArray(json[1])) { - zetaOmega = json[1].map(deserHexScalar)[0]; - } else { - zetaOmega = deserHexScalar(json[1]); - } - - return new PointEvaluations(zeta, zetaOmega); -} - -/** - * Deserializes scalar proof evaluations from JSON - */ -export function deserProofEvals(proofEvalsJson: ProofEvalsJSON, publicInputJson: GroupJSON): ProofEvaluations { - const [ - w, - s, - coefficients - ] = [proofEvalsJson.w, proofEvalsJson.s, proofEvalsJson.coefficients].map(field => field.map(deserPointEval)); - const [ - z, - genericSelector, - poseidonSelector, - completeAddSelector, - mulSelector, - emulSelector, - endomulScalarSelector, - ] = [ - proofEvalsJson.z, - proofEvalsJson.generic_selector, - proofEvalsJson.poseidon_selector, - proofEvalsJson.complete_add_selector, - proofEvalsJson.mul_selector, - proofEvalsJson.emul_selector, - proofEvalsJson.endomul_scalar_selector - ].map(deserPointEval); - - const [ - rangeCheck0Selector, - rangeCheck1Selector, - foreignFieldAddSelector, - foreignFieldMulSelector, - xorSelector, - rotSelector, - lookupAggregation, - lookupTable, - runtimeLookupTable, - runtimeLookupTableSelector, - xorLookupSelector, - lookupGateLookupSelector, - rangeCheckLookupSelector, - foreignFieldMulLookupSelector, - ] = [ - proofEvalsJson.range_check0_selector, - proofEvalsJson.range_check1_selector, - proofEvalsJson.foreign_field_add_selector, - proofEvalsJson.foreign_field_mul_selector, - proofEvalsJson.xor_selector, - proofEvalsJson.rot_selector, - proofEvalsJson.lookup_aggregation, - proofEvalsJson.lookup_table, - proofEvalsJson.runtime_lookup_table, - proofEvalsJson.runtime_lookup_table_selector, - proofEvalsJson.xor_lookup_selector, - proofEvalsJson.lookup_gate_lookup_selector, - proofEvalsJson.range_check_lookup_selector, - proofEvalsJson.foreign_field_mul_lookup_selector, - ].map((evals) => { - if (evals) return deserPointEval(evals); - return undefined; - }); - - const lookupSorted = proofEvalsJson.lookup_sorted[0] - ? proofEvalsJson.lookup_sorted.map((evals) => deserPointEval(evals!)) - : undefined; - - // const publicInput = deserPointEval(publicInputJson); - - return new ProofEvaluations( - w, - z, - s, - coefficients, - genericSelector, - poseidonSelector, - completeAddSelector, - mulSelector, - emulSelector, - endomulScalarSelector, - // publicInput, - undefined, - rangeCheck0Selector, - rangeCheck1Selector, - foreignFieldAddSelector, - foreignFieldMulSelector, - xorSelector, - rotSelector, - lookupAggregation, - lookupTable, - lookupSorted, - runtimeLookupTable, - runtimeLookupTableSelector, - xorLookupSelector, - lookupGateLookupSelector, - rangeCheckLookupSelector, - foreignFieldMulLookupSelector, - ); -} - -export function deserProverCommitments(json: ProverCommitmentsJSON): ProverCommitments { - return new ProverCommitments( - json.w_comm.map((item) => new PolyComm([deserGroup(item)], undefined)), - new PolyComm([deserGroup((json.z_comm))], undefined), - deserPolyComm(json.t_comm) - ); -} - - -export interface OpeningProofJSON { - lr: GroupJSON[][] // [GroupJSON, GroupJSON][] - delta: GroupJSON - z_1: string - z_2: string - challenge_polynomial_commitment: GroupJSON -} - -export function deserOpeningProof(json: OpeningProofJSON): OpeningProof { - return new OpeningProof( - json.lr.map((g) => [deserGroup(g[0]), deserGroup(g[1])]), - deserGroup(json.delta), - deserHexScalar(json.z_1), - deserHexScalar(json.z_2), - deserGroup(json.challenge_polynomial_commitment), - ) -} - -interface PrevEvalsJSON { - evals: { evals: ProofEvalsJSON, public_input: GroupJSON } - ft_eval1: string -} - -interface ProverProofJSON { - prev_evals: PrevEvalsJSON, - proof: { bulletproof: OpeningProofJSON, commitments: ProverCommitmentsJSON } -} - -export function deserProverProof(json: ProverProofJSON): ProverProof { - const { prev_evals, proof } = json; - const { evals: { evals, public_input }, ft_eval1 } = prev_evals; - const { bulletproof, commitments } = proof; - return new ProverProof( - deserProofEvals(evals, public_input), - [], //TODO - deserProverCommitments(commitments), - deserHexScalar(ft_eval1), - deserOpeningProof(bulletproof) - ); -} diff --git a/verifier_circuit/src/test_circuit.ts b/verifier_circuit/src/test_circuit.ts deleted file mode 100644 index 626cf6e3..00000000 --- a/verifier_circuit/src/test_circuit.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { CircuitBn254, circuitMainBn254, FieldBn254, publicBn254 } from 'o1js'; -import { ForeignScalar } from './foreign_fields/foreign_scalar.js'; -import { OpeningProof } from './poly_commitment/opening_proof.js'; - -export class TestCircuit extends CircuitBn254 { - @circuitMainBn254 - static main(@publicBn254 openingProof: OpeningProof) { - let scalars = [ForeignScalar.from(0).assertAlmostReduced()]; - - let randBase = ForeignScalar.from(1).assertAlmostReduced(); - let sgRandBase = ForeignScalar.from(1).assertAlmostReduced(); - let negRandBase = randBase.neg(); - - const scalar = negRandBase - .add(openingProof.z1).assertAlmostReduced() - .sub(sgRandBase).assertAlmostReduced(); - - scalars.push(scalar); - } -} - -export class MyScalar { - scalar: ForeignScalar; - - constructor(scalar: ForeignScalar) { - this.scalar = scalar; - } - - static sizeInFields() { - return ForeignScalar.sizeInFields(); - } - - static fromFields(fields: FieldBn254[]) { - return new MyScalar(ForeignScalar.fromFields(fields)); - } - - toFields() { - return ForeignScalar.toFields(this.scalar); - } - - static toFields(myscalar: MyScalar) { - return myscalar.toFields(); - } -} - -export class ScalarAddCircuit extends CircuitBn254 { - @circuitMainBn254 - static main(@publicBn254 myscalar: MyScalar) { - let scalars = [ForeignScalar.from(0).assertAlmostReduced()]; - - let randBase = ForeignScalar.from(1).assertAlmostReduced(); - let sgRandBase = ForeignScalar.from(1).assertAlmostReduced(); - let negRandBase = randBase.neg(); - - const scalarr = negRandBase - .add(myscalar.scalar).assertAlmostReduced() - .sub(sgRandBase).assertAlmostReduced(); - - scalars.push(scalarr); - } -} diff --git a/verifier_circuit/src/util/bigint.ts b/verifier_circuit/src/util/bigint.ts deleted file mode 100644 index 6741ef92..00000000 --- a/verifier_circuit/src/util/bigint.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Decomposes `n` into 64 bit limbs, less significant first -*/ -export function getLimbs64(n: bigint): bigint[] { - const len = Math.floor(n.toString(2).length / 64); - const mask_64 = (1n << 64n) - 1n; - - let limbs = []; - for (let i = 0; i <= len; i++) { - limbs[i] = n & mask_64; - n >>= 64n; - } - - return limbs; -} - -/** - * Recomposes 64-bit `limbs` into a bigint, less significant first - */ -export function fromLimbs64(limbs: bigint[]): bigint { - let n_rebuilt = 0n; - for (const limb of limbs) { - n_rebuilt <<= 64n - n_rebuilt += limb; - } - return n_rebuilt; -} - -/** - * Recomposes 64-bit `limbs` into a bigint, more significant first - */ -export function fromLimbs64Rev(limbs: bigint[]): bigint { - let n_rebuilt = 0n; - for (const limb of limbs.reverse()) { - n_rebuilt <<= 64n - n_rebuilt += limb; - } - return n_rebuilt; -} diff --git a/verifier_circuit/src/util/field.ts b/verifier_circuit/src/util/field.ts deleted file mode 100644 index 2f4ea842..00000000 --- a/verifier_circuit/src/util/field.ts +++ /dev/null @@ -1,179 +0,0 @@ -import { Provable, ProvableBn254 } from "o1js"; -import { ForeignBase } from "../foreign_fields/foreign_field.js"; - -export function sqrtBase(a: ForeignBase): ForeignBase | undefined { - // Euler's criterion: - const leg_sym = legendre_symbol(a); - if (leg_sym.assertCanonical().equals(ForeignBase.modulus - 1n)) return undefined; - return tonellishanks(a); -} - -function legendre_symbol(a: ForeignBase): ForeignBase { - return powBaseBig(a, (ForeignBase.modulus - 1n) / 2n); -} - -// https://eprint.iacr.org/2012/685.pdf -// algorithm 5 -function tonellishanks(a: ForeignBase): ForeignBase | undefined { - const [t, s] = get_t_and_s(); - - let c0 = ForeignBase.from(1); - let z = ForeignBase.from(1); - - // we need to sample a random element `c`. - // For this we're going to initialize `c to a - // one and multiply it by a random power of `g`, - // where `g` is a generator of the field. - // This is because we can't generate random bigints - // without using external libraries. - let c = ForeignBase.from(1); - - // https://github.com/o1-labs/proof-systems/blob/master/curves/src/pasta/fields/fp.rs - let g = ForeignBase.from(5); - - while (c0.equals(1)) { - const rand_pow = Math.round(Math.random() * Number.MAX_SAFE_INTEGER); - c = c.mul(powBase(g.assertCanonical(), rand_pow).assertCanonical()).assertCanonical(); - - z = powBaseBig(c, t).assertCanonical(); - - c0 = powBase(c, 1 << (s - 1)).assertCanonical(); - } - - let w = powBaseBig(a, (t - 1n) / 2n); - - let a0 = powBase(a.assertAlmostReduced().mul(w.assertAlmostReduced()).assertAlmostReduced().mul(w.assertAlmostReduced()).assertAlmostReduced(), 1 << (s - 1)); - - if (a0.assertCanonical().equals(ForeignBase.modulus - 1n)) { - return undefined - } - - let v = s; - let x = a.assertAlmostReduced().mul(w.assertAlmostReduced()); - let b = x.assertAlmostReduced().mul(w.assertAlmostReduced()); - - while (!b.assertCanonical().equals(1)) { - // find least integer k such taht b^(2^k) = 1: - let temp = b; - let k = 0; - while (!temp.assertCanonical().equals(1)) { - k += 1; - temp = powBase(b.assertAlmostReduced(), 1 << k); - } - - w = powBase(z, 1 << (v - k - 1)); - z = w.assertAlmostReduced().mul(w.assertAlmostReduced()).assertCanonical(); - b = b.assertAlmostReduced().mul(z.assertAlmostReduced()); - x = x.assertAlmostReduced().mul(w.assertAlmostReduced()); - v = k; - } - - return ForeignBase.from(x).assertAlmostReduced(); -} - -function get_t_and_s(): [bigint, number] { - const t = 6739986666787659948666753771754907668419893943225396963757154709741n; - const s = 32; - // generated from util/t_and_s.py - - return [t, s]; -} - -export function powBase(f: ForeignBase, exp: number): ForeignBase { - if (exp === 0) return ForeignBase.from(1); - else if (exp === 1) return f; - else { - let res = f; - - while ((exp & 1) === 0) { - res = res.assertAlmostReduced().mul(res.assertAlmostReduced()).assertAlmostReduced(); - exp >>= 1; - } - - if (exp === 0) { - return res; - } else { - let base = res; - exp >>= 1; - - while (exp !== 0) { - base = base.assertAlmostReduced().mul(base.assertAlmostReduced()).assertAlmostReduced(); - if ((exp & 1) === 1) { - res = res.assertAlmostReduced().mul(base.assertAlmostReduced()).assertAlmostReduced(); - } - exp >>= 1; - } - - return res; - } - } -} - -export function powBaseBig(f: ForeignBase, exp: bigint): ForeignBase { - if (exp === 0n) return ForeignBase.from(1); - else if (exp === 1n) return f; - else { - let res = f; - - while ((exp & 1n) === 0n) { - res = res.assertAlmostReduced().mul(res.assertAlmostReduced()).assertAlmostReduced(); - exp >>= 1n; - } - - if (exp === 0n) return res; - else { - let base = res; - exp >>= 1n; - - while (exp !== 0n) { - base = base.assertAlmostReduced().mul(base.assertAlmostReduced()).assertAlmostReduced(); - if ((exp & 1n) === 1n) { - res = res.assertAlmostReduced().mul(base.assertAlmostReduced()).assertAlmostReduced(); - } - exp >>= 1n; - } - - return res; - } - } -} - -/** - * Extended euclidean algorithm. Returns [gcd, Bezout_a, Bezout_b] - * so gcd = a*Bezout_a + b*Bezout_b. - * source: https://www.extendedeuclideanalgorithm.com/code - */ -function xgcd( - a: bigint, - b: bigint, - s1 = 1n, - s2 = 0n, - t1 = 0n, - t2 = 1n -): [bigint, bigint, bigint] { - if (b === 0n) { - return [a, 1n, 0n]; - } - - let q = a / b; - let r = a - q * b; - let s3 = s1 - q * s2; - let t3 = t1 - q * t2; - - return (r === 0n) ? [b, s2, t2] : xgcd(b, r, s2, s3, t2, t3); -} - - -export function invBase(f: ForeignBase): ForeignBase { - let result = ForeignBase.from(0); - ProvableBn254.asProver(() => { - const [gcd, inv, _] = xgcd(f.toBigInt(), ForeignBase.modulus); - if (gcd !== 1n) { - // FIXME: error - } - - result = ForeignBase.from(inv); - }); - - return result; -} diff --git a/verifier_circuit/src/util/log.ts b/verifier_circuit/src/util/log.ts deleted file mode 100644 index d95ad28c..00000000 --- a/verifier_circuit/src/util/log.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ForeignFieldBn254, Provable, ProvableBn254 } from "o1js"; - -export function logField(message: string, element: T) { - ProvableBn254.asProver(() => console.log(message, element.toBigInt())); -} diff --git a/verifier_circuit/src/util/misc.ts b/verifier_circuit/src/util/misc.ts deleted file mode 100644 index d01f3393..00000000 --- a/verifier_circuit/src/util/misc.ts +++ /dev/null @@ -1 +0,0 @@ -export const range = (n: number) => Array.from({ length: n }, (value, key) => key); diff --git a/verifier_circuit/src/util/scalar.ts b/verifier_circuit/src/util/scalar.ts deleted file mode 100644 index ed5e5331..00000000 --- a/verifier_circuit/src/util/scalar.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Provable, ProvableBn254, Scalar } from "o1js"; -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; - -export function powScalar(f: ForeignScalar, exp: number): ForeignScalar { - if (exp === 0) return ForeignScalar.from(1); - else if (exp === 1) return f; - else { - let res = f; - - while ((exp & 1) === 0) { - res = res.mul(res).assertAlmostReduced(); - exp >>= 1; - } - - if (exp === 0) return res; - else { - let base = res; - exp >>= 1; - - while (exp !== 0) { - base = base.mul(base).assertAlmostReduced(); - if ((exp & 1) === 1) { - res = res.mul(base).assertAlmostReduced(); - } - exp >>= 1; - } - - return res; - } - } -} - -export function powScalarBig(f: Scalar, exp: bigint): Scalar { - let res = f; - for (let _ = 1n; _ < exp; _++) { - res = res.mul(f); - } - return res -} - -/** - * Extended euclidean algorithm. Returns [gcd, Bezout_a, Bezout_b] - * so gcd = a*Bezout_a + b*Bezout_b. - * source: https://www.extendedeuclideanalgorithm.com/code - */ -function xgcd( - a: bigint, - b: bigint, - s1 = 1n, - s2 = 0n, - t1 = 0n, - t2 = 1n -): [bigint, bigint, bigint] { - if (b === 0n) { - return [a, 1n, 0n]; - } - - let q = a / b; - let r = a - q * b; - let s3 = s1 - q * s2; - let t3 = t1 - q * t2; - - return (r === 0n) ? [b, s2, t2] : xgcd(b, r, s2, s3, t2, t3); -} - - -export function invScalar(f: ForeignScalar): ForeignScalar { - let result = ForeignScalar.from(0); - ProvableBn254.asProver(() => { - const [gcd, inv, _] = xgcd(f.toBigInt(), Scalar.ORDER); - if (gcd !== 1n) { - // FIXME: error - } - - result = ForeignScalar.from(inv); - }); - - return result; -} diff --git a/verifier_circuit/src/util/t_and_s.py b/verifier_circuit/src/util/t_and_s.py deleted file mode 100644 index e35b2181..00000000 --- a/verifier_circuit/src/util/t_and_s.py +++ /dev/null @@ -1,11 +0,0 @@ -t = 28948022309329048855892746252171976963363056481941560715954676764349967630337 - 1 -s = 0 - -while (t % 2 == 0): - t = t // 2 - s = s + 1 - -print("t: ") -print(t) -print("s: ") -print(s) diff --git a/verifier_circuit/src/verifier/batch.ts b/verifier_circuit/src/verifier/batch.ts deleted file mode 100644 index 5c4ec215..00000000 --- a/verifier_circuit/src/verifier/batch.ts +++ /dev/null @@ -1,354 +0,0 @@ -import { AggregatedEvaluationProof, Evaluation, PolyComm } from "../poly_commitment/commitment.js"; -import { ProverProof, PointEvaluations, ProofEvaluations, Constants, Oracles } from "../prover/prover.js"; -import { Verifier, VerifierIndex } from "./verifier.js"; -import { Column, PolishToken } from "../prover/expr.js"; -import { GateType } from "../circuits/gate.js"; -import { powScalar } from "../util/scalar.js"; -import { range } from "../util/misc.js"; -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; -import { ForeignPallas } from "../foreign_fields/foreign_pallas.js"; -import { isErr, isOk, unwrap, verifierOk, VerifierResult } from "../error.js"; -import { fq_sponge_params } from "./sponge.js"; -import { AlphasIterator } from "../alphas.js"; -import { LookupPattern } from "../lookups/lookups.js"; - -import { fp_sponge_initial_state, fp_sponge_params, fq_sponge_initial_state, Sponge } from "../verifier/sponge.js"; - -export class Context { - verifier_index: VerifierIndex - proof: ProverProof - public_input: ForeignScalar[] - - constructor(verifier_index: VerifierIndex, proof: ProverProof, public_input: ForeignScalar[]) { - this.verifier_index = verifier_index; - this.proof = proof; - this.public_input = public_input; - } - - getColumn(col: Column): PolyComm | undefined { - switch (col.kind) { - case "witness": return this.proof.commitments.wComm[col.index]; - case "coefficient": return this.verifier_index.coefficients_comm[col.index]; - case "permutation": return this.verifier_index.sigma_comm[col.index]; - case "z": return this.proof.commitments.zComm; - case "lookupsorted": return this.proof.commitments.lookup?.sorted[col.index]; - case "lookupaggreg": return this.proof.commitments.lookup?.aggreg; - case "lookupkindindex": { - if (col.pattern === LookupPattern.Xor) return this.verifier_index.lookup_index?.lookup_selectors.xor; - if (col.pattern === LookupPattern.Lookup) return this.verifier_index.lookup_index?.lookup_selectors.lookup; - if (col.pattern === LookupPattern.RangeCheck) return this.verifier_index.lookup_index?.lookup_selectors.range_check; - if (col.pattern === LookupPattern.ForeignFieldMul) return this.verifier_index.lookup_index?.lookup_selectors.ffmul; - else return undefined - } - case "lookuptable": return undefined; - case "lookupruntimeselector": return this.verifier_index.lookup_index?.runtime_tables_selector; - case "lookupruntimetable": return this.proof.commitments.lookup?.runtime; - case "index": { - switch (col.typ) { - case GateType.Zero: return undefined; - case GateType.Generic: return this.verifier_index.generic_comm; - case GateType.Lookup: return undefined; - case GateType.CompleteAdd: return this.verifier_index.complete_add_comm; - case GateType.VarBaseMul: return this.verifier_index.psm_comm; - case GateType.EndoMul: return this.verifier_index.emul_comm; - case GateType.EndoMulScalar: return this.verifier_index.endomul_scalar_comm; - case GateType.Poseidon: return this.verifier_index.psm_comm; - case GateType.RangeCheck0: return this.verifier_index.range_check0_comm; - case GateType.RangeCheck1: return this.verifier_index.range_check1_comm; - case GateType.ForeignFieldAdd: return this.verifier_index.foreign_field_add_comm; - case GateType.ForeignFieldMul: return this.verifier_index.foreign_field_mul_comm; - case GateType.Xor16: return this.verifier_index.xor_comm; - case GateType.Rot64: return this.verifier_index.rot_comm; - } - break; - } - } - return undefined; - } -} - -export class Batch { - /** - * will take verifier_index, proof and public inputs as args. - * will output a "batch evaluation proof" - * - * essentially will partial verify proofs so they can be batched verified later. - */ - static toBatch(verifier_index: VerifierIndex, proof: ProverProof, public_input: ForeignScalar[]): VerifierResult { - //~ 1. Check the length of evaluations inside the proof. - // TODO: check the JSON file instead of checking the proof. - // this.#check_proof_evals_len(proof) - - //~ 2. Commit to the negated public input polynomial. - let lgr_comm = verifier_index.srs.lagrangeBases.get(verifier_index.domain_size)!; - let com = lgr_comm?.slice(0, verifier_index.public); - let elm = public_input.map(s => s.neg()); - let non_hiding_public_comm = PolyComm.msm(com, elm); - let public_comm = verifier_index - .srs - .maskCustom(non_hiding_public_comm, - new PolyComm([ForeignScalar.from(1).assertAlmostReduced()], undefined))?.commitment!; - - //~ 3. Run the Fiat-Shamir heuristic. - const oracles_result = proof.oracles(verifier_index, public_comm, public_input); - - if (isErr(oracles_result)) return oracles_result; - - const { - fq_sponge, - oracles, - all_alphas, - public_evals, - powers_of_eval_points_for_chunks, - polys, - zeta1: zeta_to_domain_size, - ft_eval0, - combined_inner_product - } = unwrap(oracles_result); - - //~ 4. Combine the chunked polynomials' evaluations - const evals = ProofEvaluations.combine(proof.evals, powers_of_eval_points_for_chunks); - const context = new Context(verifier_index, proof, public_input); - - //~ 5. Compute the commitment to the linearized polynomial $f$ by adding - // all constraints, in commitment form or evaluation if not present. - - // Permutation constraints - const permutation_vanishing_polynomial = verifier_index.permutation_vanishing_polynomial_m - .evaluate(oracles.zeta); - const alpha_powers_result = all_alphas.getAlphas( - { kind: "permutation" }, - Verifier.PERMUTATION_CONSTRAINTS - ); - if (isErr(alpha_powers_result)) return alpha_powers_result; - const alphas = unwrap(alpha_powers_result); - - let commitments = [verifier_index.sigma_comm[Verifier.PERMUTS - 1]]; - let scalars = [this.permScalars( - evals, - oracles.beta, - oracles.gamma, - alphas, - permutation_vanishing_polynomial - )]; - - const constants: Constants = { - alpha: oracles.alpha, - beta: oracles.beta, - gamma: oracles.gamma, - endo_coefficient: verifier_index.endo, - mds: fq_sponge_params().mds, - zk_rows: verifier_index.zk_rows, - } - - for (const [col, toks] of verifier_index.linearization.index_terms) { - scalars.push(PolishToken.evaluate( - toks, - oracles.zeta, - evals, - verifier_index.domain_gen, - verifier_index.domain_size, - constants - )); - commitments.push(context.getColumn(col)!); - } - const f_comm = PolyComm.msm(commitments, scalars); - - //~ 6. Compute the (chuncked) commitment of $ft$ (see Maller’s optimization). - const zeta_to_srs_len = powScalar(oracles.zeta, verifier_index.max_poly_size); - const chunked_f_comm = PolyComm.chunk_commitment(f_comm, zeta_to_srs_len); - const chunked_t_comm = PolyComm.chunk_commitment(proof.commitments.tComm, zeta_to_srs_len); - const ft_comm = PolyComm.sub( - chunked_f_comm, - PolyComm.scale( - chunked_t_comm, - zeta_to_domain_size.sub(ForeignScalar.from(1).assertAlmostReduced()).assertAlmostReduced())); - - //~ 7. List the polynomial commitments, and their associated evaluations, - //~ that are associated to the aggregated evaluation proof in the proof: - let evaluations: Evaluation[] = []; - - //recursion - evaluations.concat(polys.map(([c, e]) => new Evaluation(c, e))); - // public input - evaluations.push(new Evaluation(public_comm, public_evals)); - // ft commitment (chunks) - evaluations.push(new Evaluation(ft_comm, [[ft_eval0], [proof.ft_eval1]])); - - let cols = [ - { kind: "z" }, - { kind: "index", typ: GateType.Generic }, - { kind: "index", typ: GateType.Poseidon }, - { kind: "index", typ: GateType.CompleteAdd }, - { kind: "index", typ: GateType.VarBaseMul }, - { kind: "index", typ: GateType.EndoMul }, - { kind: "index", typ: GateType.EndoMulScalar }, - ] - .concat(range(Verifier.COLUMNS).map((i) => { return { kind: "witness", index: i } })) - .concat(range(Verifier.COLUMNS).map((i) => { return { kind: "coefficient", index: i } })) - .concat(range(Verifier.PERMUTS - 1).map((i) => { return { kind: "permutation", index: i } })) as Column[]; - if (verifier_index.range_check0_comm) cols.push({ kind: "index", typ: GateType.RangeCheck0 }); - if (verifier_index.range_check1_comm) cols.push({ kind: "index", typ: GateType.RangeCheck1 }); - if (verifier_index.foreign_field_add_comm) cols.push({ kind: "index", typ: GateType.ForeignFieldAdd }); - if (verifier_index.foreign_field_mul_comm) cols.push({ kind: "index", typ: GateType.ForeignFieldMul }); - if (verifier_index.xor_comm) cols.push({ kind: "index", typ: GateType.Xor16 }); - if (verifier_index.rot_comm) cols.push({ kind: "index", typ: GateType.Rot64 }); - if (verifier_index.lookup_index) { - const li = verifier_index.lookup_index!; - cols.concat(range(li.lookup_info.max_per_row + 1).map((index) => { return { kind: "lookupsorted", index } })); - cols.push({ kind: "lookupaggreg" }); - } - - for (const col of cols) { - const eva = proof.evals.getColumn(col)!; - evaluations.push(new Evaluation( - context.getColumn(col)!, - [[eva?.zeta], [eva?.zetaOmega]] - )); - } - - if (verifier_index.lookup_index) { - const li = verifier_index.lookup_index!; - - const lookup_comms = proof.commitments.lookup!; - const lookup_table = proof.evals.lookupTable!; - const runtime_lookup_table = proof.evals.runtimeLookupTable!; - - const joint_combiner = oracles.joint_combiner!; - const table_id_combiner = powScalar(joint_combiner[1], li.lookup_info.max_joint_size); - const runtime = lookup_comms.runtime!; - - const table_comm = this.combineTable( - li.lookup_table, - joint_combiner[1], - table_id_combiner, - li.table_ids, - runtime - ); - - evaluations.push(new Evaluation( - table_comm, - [[lookup_table.zeta], [lookup_table.zetaOmega]] - )) - - if (li.runtime_tables_selector) { - evaluations.push(new Evaluation( - lookup_comms.runtime!, - [[runtime_lookup_table.zeta], [runtime_lookup_table.zetaOmega]] - )); - } - - const lookup_cols: Column[] = []; - if (li.runtime_tables_selector) lookup_cols.push({ kind: "lookupruntimeselector" }); - if (li.lookup_selectors.xor) lookup_cols.push({ kind: "lookupkindindex", pattern: LookupPattern.Xor }); - if (li.lookup_selectors.lookup) lookup_cols.push({ kind: "lookupkindindex", pattern: LookupPattern.Lookup }); - if (li.lookup_selectors.range_check) lookup_cols.push({ kind: "lookupkindindex", pattern: LookupPattern.RangeCheck }); - if (li.lookup_selectors.ffmul) lookup_cols.push({ kind: "lookupkindindex", pattern: LookupPattern.ForeignFieldMul }); - for (const col of lookup_cols) { - const evals = proof.evals.getColumn(col)!; - evaluations.push(new Evaluation( - context.getColumn(col)!, - [[evals.zeta], [evals.zetaOmega]] - )); - } - } - - // prepare for the opening proof verification - let evaluation_points = [oracles.zeta, oracles.zeta.mul(verifier_index.domain_gen).assertAlmostReduced()]; - const agg_proof: AggregatedEvaluationProof = { - sponge: fq_sponge, - evaluations, - evaluation_points, - polyscale: oracles.v, - evalscale: oracles.u, - opening: proof.proof, - combined_inner_product, - }; - return verifierOk(agg_proof); - } - - static permScalars( - e: ProofEvaluations, - beta: ForeignScalar, - gamma: ForeignScalar, - alphas: AlphasIterator, - zkp_zeta: ForeignScalar - ): ForeignScalar { - const alpha0 = alphas.next(); - alphas.next(); - alphas.next(); - - let acc = e.z.zetaOmega.mul(beta).assertAlmostReduced().mul(alpha0).assertAlmostReduced().mul(zkp_zeta); - for (let i = 0; i < Math.min(e.w.length, e.s.length); i++) { - const w = e.w[i]; - const s = e.s[i]; - - const res = gamma.add(beta.mul(s.zeta)).add(w.zeta); - acc = acc.assertAlmostReduced().mul(res.assertAlmostReduced()); - } - return acc.neg(); - } - - /* - * Enforce the length of evaluations inside the `proof`. - * Atm, the length of evaluations(both `zeta` and `zeta_omega`) SHOULD be 1. - * The length value is prone to future change. - */ - // TODO: make this function check the JSON file instead of the object - // static #check_proof_evals_len(proof: ProverProof): boolean { - // const { - // w, - // z, - // s, - // coefficients, - // genericSelector, - // poseidonSelector - // } = proof.evals; - - // const valid_evals_len = (evals: PointEvaluations): boolean => - // evals.zeta.length === 1 && evals.zetaOmega.length === 1; - - - // // auxiliary - // let arrays = [w, s, coefficients]; - // let singles = [z, genericSelector, poseidonSelector]; - - // // true if all evaluation lengths are valid - // return arrays.every((evals) => evals.every(valid_evals_len)) && - // singles.every(valid_evals_len); - - // // TODO: check the rest of evaluations (don't really needed for our purposes) - // } - - static combineTable( - columns: PolyComm[], - column_combiner: ForeignScalar, - table_id_combiner: ForeignScalar, - table_id_vector?: PolyComm, - runtime_vector?: PolyComm, - ): PolyComm { - let j = ForeignScalar.from(1).assertAlmostReduced(); - let scalars = [j]; - let commitments = [columns[0]]; - - for (const comm of columns.slice(1)) { - j = j.mul(column_combiner).assertAlmostReduced(); - scalars.push(j); - commitments.push(comm); - } - - if (table_id_vector) { - const table_id = table_id_vector!; - scalars.push(table_id_combiner); - commitments.push(table_id); - } - - if (runtime_vector) { - const runtime = runtime_vector; - scalars.push(column_combiner); - commitments.push(runtime); - } - - return PolyComm.msm(commitments, scalars); - } -} diff --git a/verifier_circuit/src/verifier/commitment.ts b/verifier_circuit/src/verifier/commitment.ts deleted file mode 100644 index cf0a4a97..00000000 --- a/verifier_circuit/src/verifier/commitment.ts +++ /dev/null @@ -1,352 +0,0 @@ -import { ForeignBase } from '../foreign_fields/foreign_field.js'; -import { ForeignScalar } from '../foreign_fields/foreign_scalar.js'; -import { ForeignPallas, pallasZero } from '../foreign_fields/foreign_pallas.js'; -import { AggregatedEvaluationProof, bPoly, bPolyCoefficients, combineCommitments } from '../poly_commitment/commitment.js'; -import { ScalarChallenge } from "../verifier/scalar_challenge.js"; -import { SRS } from '../SRS.js'; -import { sqrtBase } from '../util/field.js'; -import { logField } from '../util/log.js'; -import { powScalar } from "../util/scalar.js"; - -export function finalVerify( - srs: SRS, - group_map: BWParameters, - batch: AggregatedEvaluationProof -): boolean { - const nonzero_length = srs.g.length; - - const max_rounds = Math.ceil(Math.log2(nonzero_length)); - - const padded_length = 1 << max_rounds; - - const endo_r = ForeignScalar.from("0x397e65a7d7c1ad71aee24b27e308f0a61259527ec1d4752e619d1840af55f1b1"); - - const zero = ForeignBase.from(0); - const padding = padded_length - nonzero_length; - let points = [srs.h]; - points = points.concat(srs.g); - points.concat(new Array(padding).fill(pallasZero())); - - let scalars = new Array(padded_length + 1).fill(zero); - - const rand_base = ForeignScalar.from(0x068EC6E24481F548A1E59ED41FA4459C76A1220B34376903C5EC15D08B406378n); - const sg_rand_base = ForeignScalar.from(0x36AF07E9262ADDD8B4FA1CAB629745BD539B2546784D54686B5F6F2EDAA5C8A5n); - - const { - sponge, - evaluation_points, - polyscale, - evalscale, - evaluations, - opening, - combined_inner_product, - } = batch; - - // absorb x - 2^n where n is the bits used to represent the scalar field modulus - const MODULUS_BITS = 255; - sponge.absorbFr(combined_inner_product.sub(powScalar(ForeignScalar.from(2), MODULUS_BITS) ).assertAlmostReduced()); - - const t = sponge.challengeFq(); - const u = group_map.toGroup(t.assertAlmostReduced()); - - const chal_tuple = opening.challenges(endo_r, sponge); - const chal = chal_tuple[0]; - const chal_inv = chal_tuple[1]; - - sponge.absorbGroup(opening.delta); - let c = new ScalarChallenge(sponge.challenge()).toField(endo_r); - - let scale = ForeignScalar.from(1); - let res = ForeignScalar.from(0); - for (const e of evaluation_points) { - const term = bPoly(chal, e); - res = res.add(scale.mul(term.assertCanonical()).assertCanonical()).assertCanonical(); - scale = scale.mul(evalscale.assertCanonical()).assertCanonical(); - } - const b0 = res; - - const s = bPolyCoefficients(chal); - - const neg_rand_base = rand_base.neg(); - - points.push(opening.sg); - scalars.push(neg_rand_base.mul(opening.z1).sub(sg_rand_base)); - - const terms = s.map((s) => sg_rand_base.mul(s)); - for (const [i, term] of terms.entries()) { - scalars[i + 1] = scalars[i + 1].add(term); - } - console.log("finished terms"); - - scalars[0] = scalars[0].sub(rand_base.mul(opening.z2)); - - scalars.push(neg_rand_base.mul(opening.z1).assertCanonical().mul(b0)); - points.push(u!); - - const rand_base_c = c.mul(rand_base); - const length = Math.min(opening.lr.length, Math.min(chal_inv.length, chal.length)); - console.log("start loop"); - for (let i = 0; i < length; i++) { - const l = opening.lr[i][0]; - const r = opening.lr[i][1]; - const u_inv = chal_inv[i]; - const u = chal[i]; - - points.push(l); - scalars.push(rand_base_c.assertAlmostReduced().mul(u_inv)); - - points.push(r) - scalars.push(rand_base_c.assertAlmostReduced().mul(u)); - } - - combineCommitments( - evaluations, - scalars, - points, - polyscale, - rand_base_c.assertAlmostReduced() - ); - - scalars.push(rand_base_c.assertAlmostReduced().mul(combined_inner_product)); - points.push(u!); - - scalars.push(rand_base); - points.push(opening.delta); - - console.log("points len: ", points.length); - console.log("scalars len: ", scalars.length); - - logField("scalars last: ", scalars[scalars.length - 1]); - logField("points last: ", points[points.length - 1].x); - - console.log("end of verifier"); - // missing: final MSM - - return false; -} - -export class BWParameters { - u: ForeignBase - fu: ForeignBase - sqrtNegThreeUSquaredMinusUOver2: ForeignBase - sqrtNegThreeUSquared: ForeignBase - invThreeUSquared: ForeignBase - - constructor() { - // constants which only depend on the group (Pallas). These were taken from the Rust implementation. - this.u = ForeignBase.from(0x0000000000000000000000000000000000000000000000000000000000000001n); - this.fu = ForeignBase.from(0x0000000000000000000000000000000000000000000000000000000000000006n); - this.sqrtNegThreeUSquaredMinusUOver2 = ForeignBase.from(0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9n); - this.sqrtNegThreeUSquared = ForeignBase.from(0x25999506959B74E25955ABB8AF5563603A3F17A46F5A62923B5ABD7BFBFC9573n); - this.invThreeUSquared = ForeignBase.from(0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5B88A612661E209E00000001n); - } - - toGroup(t: ForeignScalar): ForeignPallas | undefined { - const t2 = t.mul(t).assertAlmostReduced(); - let alpha_inv = t2; - alpha_inv = alpha_inv.add(this.fu).assertAlmostReduced(); - alpha_inv = alpha_inv.mul(t2).assertAlmostReduced(); - - const alpha = alpha_inv.inv(); - - let x1 = t2; - x1 = x1.mul(x1).assertAlmostReduced(); - x1 = x1.mul(alpha).assertAlmostReduced(); - x1 = x1.mul(this.sqrtNegThreeUSquared.assertAlmostReduced()).assertAlmostReduced(); - x1 = this.sqrtNegThreeUSquaredMinusUOver2.sub(x1).assertAlmostReduced(); - - const x2 = this.u.neg().sub(x1); - - const t2_plus_fu = t2.add(this.fu); - const t2_inv = alpha.mul(t2_plus_fu.assertAlmostReduced()); - let x3 = t2_plus_fu.assertAlmostReduced().mul(t2_plus_fu.assertAlmostReduced()); - x3 = x3.assertAlmostReduced().mul(t2_inv.assertAlmostReduced()); - x3 = x3.assertAlmostReduced().mul(this.invThreeUSquared.assertAlmostReduced()); - x3 = this.u.sub(x3); - - const xvec = [x1, x2, x3]; - for (const x of xvec) { - // curve equation: y^2 = x^3 + 5 - const ysqrd = x.assertAlmostReduced().mul(x.assertAlmostReduced()).assertAlmostReduced().mul(x.assertAlmostReduced()).add(ForeignBase.from(5)); - const y = sqrtBase(ysqrd.assertAlmostReduced()); - if (y) return new ForeignPallas({ x: x.assertAlmostReduced(), y: y.assertAlmostReduced() }); - } - - return undefined; - } -} -/* - /// This function verifies batch of batched polynomial commitment opening proofs - /// batch: batch of batched polynomial commitment opening proofs - /// vector of evaluation points - /// polynomial scaling factor for this batched openinig proof - /// eval scaling factor for this batched openinig proof - /// batch/vector of polycommitments (opened in this batch), evaluation vectors and, optionally, max degrees - /// opening proof for this batched opening - /// oracle_params: parameters for the random oracle argument - /// randomness source context - /// RETURN: verification status - pub fn verify( - &self, - group_map: &G::Map, - batch: &mut [BatchEvaluationProof>], - rng: &mut RNG, - ) -> bool - where - EFqSponge: FqSponge, - RNG: RngCore + CryptoRng, - G::BaseField: PrimeField, - { - // Verifier checks for all i, - // c_i Q_i + delta_i = z1_i (G_i + b_i U_i) + z2_i H - // - // if we sample evalscale at random, it suffices to check - // - // 0 == sum_i evalscale^i (c_i Q_i + delta_i - ( z1_i (G_i + b_i U_i) + z2_i H )) - // - // and because each G_i is a multiexp on the same array self.g, we - // can batch the multiexp across proofs. - // - // So for each proof in the batch, we add onto our big multiexp the following terms - // evalscale^i c_i Q_i - // evalscale^i delta_i - // - (evalscale^i z1_i) G_i - // - (evalscale^i z2_i) H - // - (evalscale^i z1_i b_i) U_i - - // We also check that the sg component of the proof is equal to the polynomial commitment - // to the "s" array - - let nonzero_length = self.g.len(); - - let max_rounds = math::ceil_log2(nonzero_length); - - let padded_length = 1 << max_rounds; - - let (_, endo_r) = endos::(); - - // TODO: This will need adjusting - let padding = padded_length - nonzero_length; - let mut points = vec![self.h]; - points.extend(self.g.clone()); - points.extend(vec![G::zero(); padding]); - - let mut scalars = vec![G::ScalarField::zero(); padded_length + 1]; - assert_eq!(scalars.len(), points.len()); - - // sample randomiser to scale the proofs with - let rand_base = G::ScalarField::rand(rng); - let sg_rand_base = G::ScalarField::rand(rng); - - let mut rand_base_i = G::ScalarField::one(); - let mut sg_rand_base_i = G::ScalarField::one(); - - for BatchEvaluationProof { - sponge, - evaluation_points, - polyscale, - evalscale, - evaluations, - opening, - combined_inner_product, - } in batch.iter_mut() - { - sponge.absorb_fr(&[shift_scalar::(*combined_inner_product)]); - - let t = sponge.challenge_fq(); - let u: G = to_group(group_map, t); - - let Challenges { chal, chal_inv } = opening.challenges::(&endo_r, sponge); - - sponge.absorb_g(&[opening.delta]); - let c = ScalarChallenge(sponge.challenge()).to_field(&endo_r); - - // < s, sum_i evalscale^i pows(evaluation_point[i]) > - // == - // sum_i evalscale^i < s, pows(evaluation_point[i]) > - let b0 = { - let mut scale = G::ScalarField::one(); - let mut res = G::ScalarField::zero(); - for &e in evaluation_points.iter() { - let term = b_poly(&chal, e); - res += &(scale * term); - scale *= *evalscale; - } - res - }; - - let s = b_poly_coefficients(&chal); - - let neg_rand_base_i = -rand_base_i; - - // TERM - // - rand_base_i z1 G - // - // we also add -sg_rand_base_i * G to check correctness of sg. - points.push(opening.sg); - scalars.push(neg_rand_base_i * opening.z1 - sg_rand_base_i); - - // Here we add - // sg_rand_base_i * ( < s, self.g > ) - // = - // < sg_rand_base_i s, self.g > - // - // to check correctness of the sg component. - { - let terms: Vec<_> = s.par_iter().map(|s| sg_rand_base_i * s).collect(); - - for (i, term) in terms.iter().enumerate() { - scalars[i + 1] += term; - } - } - - // TERM - // - rand_base_i * z2 * H - scalars[0] -= &(rand_base_i * opening.z2); - - // TERM - // -rand_base_i * (z1 * b0 * U) - scalars.push(neg_rand_base_i * (opening.z1 * b0)); - points.push(u); - - // TERM - // rand_base_i c_i Q_i - // = rand_base_i c_i - // (sum_j (chal_invs[j] L_j + chals[j] R_j) + P_prime) - // where P_prime = combined commitment + combined_inner_product * U - let rand_base_i_c_i = c * rand_base_i; - for ((l, r), (u_inv, u)) in opening.lr.iter().zip(chal_inv.iter().zip(chal.iter())) { - points.push(*l); - scalars.push(rand_base_i_c_i * u_inv); - - points.push(*r); - scalars.push(rand_base_i_c_i * u); - } - - // TERM - // sum_j evalscale^j (sum_i polyscale^i f_i) (elm_j) - // == sum_j sum_i evalscale^j polyscale^i f_i(elm_j) - // == sum_i polyscale^i sum_j evalscale^j f_i(elm_j) - combine_commitments( - evaluations, - &mut scalars, - &mut points, - *polyscale, - rand_base_i_c_i, - ); - - scalars.push(rand_base_i_c_i * *combined_inner_product); - points.push(u); - - scalars.push(rand_base_i); - points.push(opening.delta); - - rand_base_i *= &rand_base; - sg_rand_base_i *= &sg_rand_base; - } - - // verify the equation - let scalars: Vec<_> = scalars.iter().map(|x| x.into_repr()).collect(); - VariableBaseMSM::multi_scalar_mul(&points, &scalars) == G::Projective::zero() - } -*/ diff --git a/verifier_circuit/src/verifier/scalar_challenge.ts b/verifier_circuit/src/verifier/scalar_challenge.ts deleted file mode 100644 index c83f59fd..00000000 --- a/verifier_circuit/src/verifier/scalar_challenge.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { ProvableBn254 } from "o1js" -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; -import { Sponge } from "./sponge.js"; -import { getLimbs64 } from "../util/bigint.js"; - -export class ScalarChallenge { - chal: ForeignScalar - - constructor(chal: ForeignScalar) { - this.chal = chal; - } - - toFieldWithLength(length_in_bits: number, endo_coeff: ForeignScalar): ForeignScalar { - let result = ForeignScalar.from(0).assertAlmostReduced(); - - ProvableBn254.asProver(() => { - const rep = this.chal.toBigInt(); - const rep_64_limbs = getLimbs64(rep); - - let a = ForeignScalar.from(2).assertAlmostReduced(); - let b = ForeignScalar.from(2).assertAlmostReduced(); - - const one = ForeignScalar.from(1); - const negone = one.neg(); - for (let i = Math.floor(length_in_bits / 2) - 1; i >= 0; i--) { - a = a.add(a).assertAlmostReduced(); - b = b.add(b).assertAlmostReduced(); - - const r_2i = getBit(rep_64_limbs, 2 * i); - const s = r_2i === 0n ? negone : one; - - if (getBit(rep_64_limbs, 2 * i + 1) === 0n) { - b = b.add(s).assertAlmostReduced(); - } else { - a = a.add(s).assertAlmostReduced(); - } - } - - result = a.mul(endo_coeff).add(b).assertAlmostReduced(); - }); - - return result; - } - - toField(endo_coeff: ForeignScalar): ForeignScalar { - const length_in_bits = 64 * Sponge.CHALLENGE_LENGTH_IN_LIMBS; - return this.toFieldWithLength(length_in_bits, endo_coeff); - } -} - -function getBit(limbs_lsb: bigint[], i: number): bigint { - const limb = Math.floor(i / 64); - const j = BigInt(i % 64); - return (limbs_lsb[limb] >> j) & 1n; - // FIXME: if it's negative, then >> will fill with ones -} - diff --git a/verifier_circuit/src/verifier/sponge.ts b/verifier_circuit/src/verifier/sponge.ts deleted file mode 100644 index d822bb3c..00000000 --- a/verifier_circuit/src/verifier/sponge.ts +++ /dev/null @@ -1,944 +0,0 @@ -import { AlmostForeignFieldBn254, ForeignFieldBn254, ProvableBn254 } from "o1js" -import { PolyComm } from "../poly_commitment/commitment"; -import { PointEvaluations, ProofEvaluations } from "../prover/prover"; -import { ForeignScalar } from "../foreign_fields/foreign_scalar.js"; -import { ForeignBase } from "../foreign_fields/foreign_field.js"; -import { assert } from "console"; -import { ForeignPallas } from "../foreign_fields/foreign_pallas"; -import { fromLimbs64Rev, getLimbs64 } from "../util/bigint.js"; - -enum SpongeMode { - Squeezing, - Absorbing -} - -export class ArithmeticSponge { - params: ArithmeticSpongeParams - state: ForeignFieldBn254[] - mode: SpongeMode - offset: number - - constructor(params: ArithmeticSpongeParams) { - this.params = params; - this.mode = SpongeMode.Absorbing - this.offset = 0; - } - - init(state: ForeignFieldBn254[]) { - this.state = state; - } - - absorb(elem: ForeignFieldBn254) { - if (this.mode === SpongeMode.Squeezing) { - this.mode = SpongeMode.Absorbing; - this.offset = 0; - } else if (this.offset === this.params.rate) { - this.#permutation(); - this.offset = 0; - } - - this.state[this.offset] = this.state[this.offset].add(elem); - this.offset++; - } - - squeeze(): ForeignFieldBn254 { - if (this.mode == SpongeMode.Absorbing || this.offset === this.params.rate) { - this.mode = SpongeMode.Squeezing; - this.#permutation(); - this.offset = 0; - } - - return this.state[this.offset++]; - } - - // permutation algorithms - - #sbox(element: ForeignFieldBn254): ForeignFieldBn254 { - // return element^7 - let element_squared = element.assertAlmostReduced().mul(element.assertAlmostReduced()).assertAlmostReduced(); // ^2 - let element_fourth = element_squared.mul(element_squared).assertAlmostReduced(); // ^4 - let element_sixth = element_fourth.mul(element_squared).assertAlmostReduced(); // ^6 - return element_sixth.mul(element.assertAlmostReduced()); - } - - #applyMds(): ForeignFieldBn254[] { - let n = this.params.mds[0].length; - assert(n == this.state.length); - - // matrix-vector product: mds * state - return this.params.mds.map((row) => { - let result = this.params.zero.assertAlmostReduced(); - - for (let i = 0; i < row.length; i++) { - let s = this.state[i]; - result = result.add(s.assertAlmostReduced().mul(row[i].assertAlmostReduced())).assertAlmostReduced(); - } - - return result; - } - ); - } - - #applyRound(round: number) { - // sbox - this.state = this.state.map(this.#sbox); - - // apply mds - this.state = this.#applyMds(); - - // add round constant - this.state = this.state.map((s, i) => s.add(this.params.round_constants[round][i])); - } - - #permutation() { - let round_offset = 0; - if (this.params.ark_initial) { - let constant = this.params.round_constants[0]; - this.state = this.state.map((s, i) => s.add(constant[i])); - round_offset = 1; - } - - for (let round = 0; round < this.params.rounds; round++) { - this.#applyRound(round + round_offset); - } - } -} - -export class ArithmeticSpongeParams { - mds: AlmostForeignFieldBn254[][] - round_constants: ForeignFieldBn254[][] - ark_initial: boolean - rounds: number - rate: number - zero: ForeignFieldBn254 -} - -/** - * Wrapper over the poseidon `ArithmeticSponge` class which extends its functionality. - * Currently the sponge operates over the emulated base field (whose elements are - * represented with the `ForeignBase` type). - */ -export class Sponge { - static readonly HIGH_ENTROPY_LIMBS: number = 2; - static readonly CHALLENGE_LENGTH_IN_LIMBS: number = 2; - - #internalSponge - lastSqueezed: bigint[] // these are 64 bit limbs - - constructor(params: ArithmeticSpongeParams, initial_state: ForeignFieldBn254[]) { - this.#internalSponge = new ArithmeticSponge(params); - this.#internalSponge.init(initial_state); - this.lastSqueezed = []; - } - - absorb(x: ForeignBase) { - this.lastSqueezed = []; - this.#internalSponge.absorb(x); - } - - absorbFr(x: ForeignScalar) { - this.lastSqueezed = []; - this.#internalSponge.absorb(x); - } - - absorbMultipleFr(x: ForeignScalar[]) { - this.lastSqueezed = []; - x.forEach((elem) => this.#internalSponge.absorb(elem)); - } - - squeezeField(): ForeignBase { - this.lastSqueezed = []; - return this.#internalSponge.squeeze().assertAlmostReduced(); - } - - absorbGroup(g: ForeignPallas) { - this.lastSqueezed = []; - this.#internalSponge.absorb(g.x); - this.#internalSponge.absorb(g.y); - } - - absorbGroups(gs: ForeignPallas[]) { - gs.forEach(this.absorbGroup.bind(this)); - // bind is necessary for avoiding context loss - } - - /** Will do an operation over the scalar to make it suitable for absorbing */ - absorbScalar(s: ForeignScalar) { - // this operation was extracted from Kimchi FqSponge's`absorb_fr()`. - if (ForeignScalar.modulus < ForeignBase.modulus) { - let f = ForeignBase.from(0); - ProvableBn254.asProver(() => { - f = ForeignBase.from(s.toBigInt()); - }); - this.absorb(f); - } else { - let high_bits = ForeignBase.from(0); - ProvableBn254.asProver(() => { - high_bits = ForeignBase.from(s.toBigInt() >> 1n); - // WARN: >> is the sign-propagating left shift operator, so if the number is negative, - // it'll add 1s instead of 0s to the most significant end of the integer. - // >>>, the zero-fill left shift operator should be used instead here, but it isnt - // defined for BigInt as it's always signed (and can't be coarced into an unsigned int). - // In any way, the integers are always positive, so there's no problem here. - }); - - let low_bit = ForeignBase.from(0); - ProvableBn254.asProver(() => { - low_bit = ForeignBase.from(s.toBigInt() & 1n); - }); - - this.absorb(high_bits); - this.absorb(low_bit); - } - } - - absorbScalars(s: ForeignScalar[]) { - this.lastSqueezed = []; - s.forEach(this.absorbScalar.bind(this)); - } - - absorbCommitment(commitment: PolyComm) { - this.absorbGroups(commitment.unshifted); - if (commitment.shifted) this.absorbGroup(commitment.shifted); - } - - absorbEvals(evals: ProofEvaluations) { - const { - w, - z, - s, - coefficients, - genericSelector, - poseidonSelector, - completeAddSelector, - mulSelector, - emulSelector, - endomulScalarSelector, - rangeCheck0Selector, - rangeCheck1Selector, - foreignFieldAddSelector, - foreignFieldMulSelector, - xorSelector, - rotSelector, - lookupAggregation, - lookupTable, - lookupSorted, - runtimeLookupTable, - runtimeLookupTableSelector, - xorLookupSelector, - lookupGateLookupSelector, - rangeCheckLookupSelector, - foreignFieldMulLookupSelector, - } = evals; - - let points = [ - z, - genericSelector, - poseidonSelector, - completeAddSelector, - mulSelector, - emulSelector, - endomulScalarSelector, - ] - // arrays: - points = points.concat(w); - points = points.concat(coefficients); - points = points.concat(s); - - // optional: - const add_optional = (evals?: PointEvaluations) => { - if (evals) points.push(evals); - } - - add_optional(rangeCheck0Selector); - add_optional(rangeCheck1Selector); - add_optional(foreignFieldAddSelector); - add_optional(foreignFieldMulSelector); - add_optional(xorSelector); - add_optional(rotSelector); - add_optional(lookupAggregation); - add_optional(lookupTable); - if (lookupSorted) lookupSorted.forEach(add_optional); - add_optional(runtimeLookupTable); - add_optional(runtimeLookupTableSelector); - add_optional(xorLookupSelector); - add_optional(lookupGateLookupSelector); - add_optional(rangeCheckLookupSelector); - add_optional(foreignFieldMulLookupSelector); - - for (const p of points) { - this.#internalSponge.absorb(p.zeta); - this.#internalSponge.absorb(p.zetaOmega); - } - console.log(points.length); - } - - /** - * This squeezes until `numLimbs` 64-bit high entropy limbs are retrieved. - */ - squeezeLimbs(numLimbs: number): bigint[] { // will return limbs of 64 bits. - if (this.lastSqueezed.length >= numLimbs) { - const limbs = this.lastSqueezed.slice(0, numLimbs); - const remaining = this.lastSqueezed.slice(numLimbs, undefined); - - this.lastSqueezed = remaining; - return limbs; - } else { - let x = 0n; - ProvableBn254.asProver(() => { - x = this.#internalSponge.squeeze().toBigInt(); - }); - - let xLimbs = getLimbs64(x).slice(0, Sponge.HIGH_ENTROPY_LIMBS); - this.lastSqueezed = this.lastSqueezed.concat(xLimbs); - - return this.squeezeLimbs(numLimbs); - } - } - - /** - * Calls `squeezeLimbs()` and composes them into a scalar. - */ - squeeze(numLimbs: number): ForeignScalar { - let squeezed = fromLimbs64Rev(this.squeezeLimbs(numLimbs)); - return ForeignScalar.from(squeezed); - } - - challenge(): ForeignScalar { - return this.squeeze(Sponge.CHALLENGE_LENGTH_IN_LIMBS); - } - - challengeFq(): ForeignBase { - return this.squeezeField(); - } - - digest(): ForeignScalar { - return ProvableBn254.witness(ForeignScalar.Canonical.provable, () => { - const x = this.squeezeField().toBigInt(); - const result = x < ForeignScalar.modulus ? x : 0; - // Comment copied from Kimchi's codebase: - // - // Returns zero for values that are too large. - // This means that there is a bias for the value zero (in one of the curve). - // An attacker could try to target that seed, in order to predict the challenges u and v produced by the Fr-Sponge. - // This would allow the attacker to mess with the result of the aggregated evaluation proof. - // Previously the attacker's odds were 1/q, now it's (q-p)/q. - // Since log2(q-p) ~ 86 and log2(q) ~ 254 the odds of a successful attack are negligible. - return ForeignScalar.from(result); - }); - } -} - -export function fq_sponge_params(): ArithmeticSpongeParams { - return { - ark_initial: false, - rounds: 55, - rate: 2, - zero: ForeignScalar.from(0), - mds: [ - [ - 28115781186772277486790024060542467295096710153315236019619365740021995624782n, - 22098002279041163367053200604969603243328318626084412751290336872362628294144n, - 10518156075882958317589806716220047551309200159506906232124952575033472931386n, - ], - [ - 8515206633865386306014865142947895502833797732365705727001733785057042819852n, - 19310731234716792175834594131802557577955166208124819468043130037927500684373n, - 361439796332338311597104753147071943681730695313819021679602959964518909239n, - ], - [ - 2193808570710678216879007026210418088296432071066284289131688133644970611483n, - 1201496953174589855481629688627002262719699487577300614284420648015658009380n, - 11619800255560837597192574795389782851917036920101027584480912719351481334717n, - ], - ].map((arr) => arr.map((e) => ForeignScalar.from(e).assertAlmostReduced())), - round_constants: [ - [ - 2517640872121921965298496967863234221143680281046699148760560696057284005606n, - 3391756047431116221709518926936538303706203177575259437741546230828058541679n, - 28193080211857729746868575888309975056941007202713113547154010421664334143056n, - ], - [ - 25261619184426186938919514618416881383323154981235406731208902193655587998749n, - 5438499261516835502981531641588657477212528137520578797088407969732830437134n, - 1447697894671779324954748568939217281372628544919576009518449387265606369859n, - ], - [ - 5035532530235542599906399941203951970682478985022204457211063504597080640029n, - 18548939393800290417015907795270784249198528773378593112394621615021029911007n, - 28314657632459005492203969796973258399484591559931227050853551342156833947891n, - ], - [ - 10075465805557971120845970058070916255338843492716768289922460436606689369477n, - 21985996556868691161386211003270106475915714625334030557267947035839814254081n, - 9778523497398309788873186849997676949503189428912377745814036481347657299161n, - ], - [ - 6085447467925843146276340167082679235758707259098174769103982431882228334038n, - 11214803418623679719680560978819619149235769633101428825693192995405955507848n, - 20585482519401972421539035665320299097144487427998598740316244173221216198246n, - ], - [ - 18602266896623204184748247002001496873223612100325866696399863661914256384486n, - 22165919841309962137671309308234475433816142848229812860682345190836583925843n, - 22833505632200982123686653495190412951871851216487329681987951602744930627412n, - ], - [ - 200996541962081036547810490655955282117589336000744078845964972887355639644n, - 17159390488590225463405148524511348095493761844950655304775985535830170165304n, - 7519689807382250126180254188667761476713509751388558140260305473388567529705n, - ], - [ - 14159331841037307097148990917607709903712709092721125605507719995418592745663n, - 10490695046555645615062072066940833278139280813429718770298136076375411280286n, - 9996921069626538041923613626115903019578182147993504053879837245826104687293n, - ], - [ - 28009241574980093348462093077828465154604666812509186537490618830383877236685n, - 18925279443828804264179873719494108834579217607847079902207023181925588871175n, - 13126164514615718686767880517156253918404905174962666942976286681458411835722n, - ], - [ - 1125667389564136291825905670957082668987611691949011617627091942772124917554n, - 12737072162917928935765906421286553437026542524142430058538254259863452556200n, - 9855113244149548216327019561589719324434080884827484555441182992249251832158n, - ], - [ - 6006604346195593001833550983798183088851044846011297061071167569148810544010n, - 23783465709464699444911580329342599880163107932561352210466223087637763994288n, - 1581060363083815351710754851350813999229829634252940169154424073664057276774n, - ], - [ - 24121961545310887440574053281799796355427122479626872394472157625455666323022n, - 23925781309638869606256007860000699567158045595326122474217734988331349678475n, - 433512980570318160778040929743715681206456334448542248765142091911433454703n, - ], - [ - 8080307140515367021419180108267113624095868360927897204642243727009503935719n, - 13661807750191096117929173962837770733539092996971801228126331071941306856508n, - 9268394414065063505331314418649987795374055416089324253185088859000252370756n, - ], - [ - 22374115023493407761095751712373350824513305398485824175669182288521610150311n, - 22951274634403942446739133926874770994604864227598567536319143390467218980824n, - 21411532836345163980832919797897483979345524322135010935120723250070247464549n, - ], - [ - 20688285497159372157224857370703211924056803904697620218749985029000049442943n, - 8350087190167057556241775495760369408781696125331535735138679647687106863977n, - 13485893160159637778707269611856683957779710980787754997470728774769162419576n, - ], - [ - 4621792784192688819920303666439776744566536330750316034321950771579978771021n, - 13900656491552343190424687336475573267660717627286734246676255663734655019912n, - 16577037405341365304416318048187907895286388691199320947077947552959834207823n, - ], - [ - 17453637937712580666297652202332273322112052411250919589546137386514183913993n, - 9852736110707561006399582579453396957225552488023642073454517393228764176471n, - 8053970357622019747109700798952789019805031210730923951116580579194625334710n, - ], - [ - 14566849926060034944494603512439278530775668595134329897253012222562109882008n, - 8863944349051942080060073891691580009950648437676309749771884964336231381737n, - 16455762285584757654310476505019438984453107876908065440396394186006196612077n, - ], - [ - 28098375311516838082882166381119795701982164671360574802728073046992978741339n, - 13538346067341652694825445642847479918140731375902310280683284825070643960891n, - 18313412784975078534612748781201087502203257054025866271209086293337241477805n, - ], - [ - 24807061345703288899043018750567607387907450632666147403804744880717736838940n, - 16638378638176552952794487891875614248110181610295183306789394461536640085108n, - 2342874860138849081032934096750004917991517717553229739958552529472431319656n, - ], - [ - 21631810094765090996871180483650934431972930909326270651252393395613356531282n, - 2220759912186713489010197903069023809260408491503960321105305330086947471014n, - 14815764944505758746761442212662459585220143243155504464852948007238083120696n, - ], - [ - 23947619952183462858644581465494050309407721428302029371055887418452994318961n, - 25035254658153233628169609451068923631269927394392748023889572264723092874720n, - 17468020412163678868776493601957969748197290347006692843306595815987772942732n, - ], - [ - 15262198027618900223004625662874755104828479630165814039838611768431063172994n, - 25161066724266754383358798644805908588326959881061318668106454787543611445887n, - 2454250001039770891411267760383268680504653332090622148533496270387793031332n, - ], - [ - 9171946491887082474979985164918822959719377078284664312866368737511724712644n, - 6672870238005411132577302023934139592378291207852994424857452575898007687159n, - 2950400608762766076731526167833938554190979516192019010641815746350334547745n, - ], - [ - 10653725154501691589476837895400001173933804810435931645261606197625601363132n, - 12717400214508961810851553873706609743505640660238109459222577386574996883747n, - 5871058785976817081042949511195036111847495052209270758342334312740290470200n, - ], - [ - 18192562665205900830717234913238180302424621739145466326708104656354353538015n, - 19946412409172091711185698839696950657650658896270607012902209489827790455314n, - 21997416257528392077410699901606794827305154904508120972585193876767785262539n, - ], - [ - 16525092684784199198745517563091041705366544303388462641935777835264970071331n, - 2761337258672512522307803997948488817865025374001297632527692577079750053456n, - 23369674747888778238616865774843237791546925005553032792584302158017141634655n, - ], - [ - 11012136308159330675912474383855146192700147583104742924419195363346115019405n, - 20632243971343595216801828590185617698839041744000918292113739726624680548813n, - 10530371852841765918702282883445676639977895775479854136871270050807595649710n, - ], - [ - 1610594053831245596683250788274018471388810111366046583216577135605955718023n, - 452300846172044702598793611907955884294868639769163388132276731316720796255n, - 22297945145153422883128810575530182077542612397826351322358420927950400316504n, - ], - [ - 28212510899948152845929142163236606049756849316851154583029383581129293825706n, - 28325924586146971645663587791728624896861517146549428987043066595915712075981n, - 23489013325315178311518261165509151135555509351661386106070231815049642443022n, - ], - [ - 10150108696154604591036176090028652090941375062280095655463112192524823306544n, - 14935856239824547404885450872472169780177654619496758596151670953532153419587n, - 4367251608666794961207658726914177158125339342277880902441218521648798930454n, - ], - [ - 1427804644956534912766622635951826857049583276976844525135170835571509013020n, - 11627801940273881243235293875277734806211947530882079339115454640100174268255n, - 22853853581419894582873479603685652928885253184240650995805892818180355600894n, - ], - [ - 4405193089432137585625363585733613667088817369599257533888439029942466720878n, - 26434497741746827048559732407319982377645052620918789373329661707603241810667n, - 23558650878002025381506445692526977061352711282820117441110868042756853707843n, - ], - [ - 27427423077748345654234924309581695092179468167973406115643356520054395647078n, - 17585801825757985265979208086560185342609289319992678737491966299829354657891n, - 22079131836316223121286612953926945430480043835170303484162677394496378207190n, - ], - [ - 20126865597655889981803452476686954944892814234259869552204215672627920656068n, - 5591585339015997308682985123056479221565470335707041924016523106405300562835n, - 9422316572086279209843572429137982927615080330725918371521370800874341571474n, - ], - [ - 2735677349719528139570614238939713941030373684882307164259316901880218894412n, - 16229147459127626384090303399894157248853232127961182470501666316464149067069n, - 17151067888069760812629817914442472623785916486309268828873486698948911058517n, - ], - [ - 13833972862865550568348750465964022581895521701070662509936215512761615491351n, - 9624679817699048440664645568701817641311119158936258215534754849666144699339n, - 10273179847163882031630140477902608240997857384703412878925192706057610103613n, - ], - [ - 3172037826021850467928085880043492158321918352296515787555947245998877188849n, - 28890802281119993101506497911757988639840653958256859430239635494708187190915n, - 23496953773368274731821824281559682992786773767847557735733251263969009271239n, - ], - [ - 1509044982655321910215442389040863370827049078919961070795919190828975736187n, - 13927172650979098916742472053302036482743492746437467103459483008024082210879n, - 17248379591027039069313293591621091031164062825086122980769287846951363066520n, - ], - [ - 11350333545134487336540967650634077894516131586708748380417042089147896079201n, - 639497848254405996993150855123515463224731962182127668267769103213580096582n, - 24528361599642320451530127347946798949257664936307333999618279589325586618880n, - ], - [ - 8217015496508457685301448884203977810298711070026260090660268003968421268717n, - 6703444480721420507060701216472376128524677965704475494357937059812166295103n, - 8051365375874262471960241848873604339195556527603956582828833313772444122472n, - ], - [ - 10412735174026641936105532807659667596947675372330827493649954160029449767122n, - 8447576362386697729021229138353952824970707645851763166490398451107606293885n, - 4802965296970904162106502573136505305073730277702271660292532219583823320181n, - ], - [ - 3244354881334856885788568976540712586633556478250043997221528214026130052269n, - 817270901440592571623549787267103386561304980129799240746702119063425010300n, - 6566338353152134577893356938981496347522747926131278635019050445923229718029n, - ], - [ - 4854521709622003124815206874897232905514824969466266873443062691298769768277n, - 12830134034124699064152980183243986699241944691238427861184919962819448276943n, - 24309439157688106320977023683093060719537142150089588950480669629964661236785n, - ], - [ - 1853791709949511636795588377016980571084333441972847324139062389997895453872n, - 11399505004623970417786749745036397690793259153591025248188283534764565207306n, - 6280235834578097246976697944083887557501831809932305676532914637669922657807n, - ], - [ - 1516294190187225192808636261678393666537186816904214776860202535671714230097n, - 5835813607391397757416951433662507638966861369364000865214031356023042341328n, - 25777313996516799380163546628133415256678997511953860435781885414872422583905n, - ], - [ - 9749298878960864917089442034293906589697892682402070689770627645324414273893n, - 19986612197193695239708718365565978831607994386509967951279410162135133793419n, - 5020585421647265067890838871263925730422335215511670656851726444447972642755n, - ], - [ - 7256822974971238434100017358319972368738353570339258522235883585691301791128n, - 9789139064283320903202623693175751994730652446378861671859478926598420184293n, - 19283468246375057076525422714896652730563534118070235174488237489890270899533n, - ], - [ - 11487321478704551489982188818171823402443882145686911658585221913500937481156n, - 16513958012405406860890342996091255867910990589443610357743227675107758695101n, - 24764429351173766080138047602436205744310671344674490826288279531917797263231n, - ], - [ - 8256258316375000496541664568891934707113720493937218096466691600593595285909n, - 26919625894863883593081175799908601863265420311251948374988589188905317081443n, - 10135851848127171199130812615581006825969108287418884763125596866448544567342n, - ], - [ - 17567146349912867622479843655652582453162587996421871126612027345809646551661n, - 2524802431860351616270075327416865184018211992251290134350377936184047953453n, - 3417609143162661859785838333493682460709943782149216513733553607075915176256n, - ], - [ - 6906455011502599710165862205505812668908382042647994457156780865092846286493n, - 21042097659487317081899343674473811663642293019125869396575405454328274948985n, - 25222370053690749913129090298406788520061040938312366403907461864202905656238n, - ], - [ - 18933201791079410639949505893100361911334261775545573219434897335758052335005n, - 14503331557348715387048413780116585195932777696828173626366829282421027153184n, - 3558781473325529402549318082942465709639711182863041375748599816583729962116n, - ], - [ - 23932570601084008621895097434501731960424360312878373523779451810455362953625n, - 13286131463754478912858022007443470896920464302917391606059553157137090717219n, - 9969435194445819847988134248075866286921574284754991873902788928171429847506n, - ], - [ - 10821551500865029673311799086099720530496516676117927814621168667836737594374n, - 57689402905128519605376551862931564078571458212398163192591670282543962941n, - 4484359679395800410695081358212522306960518636189521201445105538223906998486n, - ], - ].map((arr) => arr.map(ForeignScalar.from)) as ForeignScalar[][], - } -} - -export function fp_sponge_params(): ArithmeticSpongeParams { - return { - ark_initial: false, - rounds: 55, - rate: 2, - zero: ForeignBase.from(0), - mds: [ - [ - 12035446894107573964500871153637039653510326950134440362813193268448863222019n, - 25461374787957152039031444204194007219326765802730624564074257060397341542093n, - 27667907157110496066452777015908813333407980290333709698851344970789663080149n, - ], - [ - 4491931056866994439025447213644536587424785196363427220456343191847333476930n, - 14743631939509747387607291926699970421064627808101543132147270746750887019919n, - 9448400033389617131295304336481030167723486090288313334230651810071857784477n, - ], - [ - 10525578725509990281643336361904863911009900817790387635342941550657754064843n, - 27437632000253211280915908546961303399777448677029255413769125486614773776695n, - 27566319851776897085443681456689352477426926500749993803132851225169606086988n, - ], - ].map((arr) => arr.map((e) => ForeignBase.from(e).assertAlmostReduced())), - round_constants: [ - [ - 21155079691556475130150866428468322463125560312786319980770950159250751855431n, - 16883442198399350202652499677723930673110172289234921799701652810789093522349n, - 17030687036425314703519085065002231920937594822150793091243263847382891822670n, - ], - [ - 25216718237129482752721276445368692059997901880654047883630276346421457427360n, - 9054264347380455706540423067244764093107767235485930776517975315876127782582n, - 26439087121446593160953570192891907825526260324480347638727375735543609856888n, - ], - [ - 15251000790817261169639394496851831733819930596125214313084182526610855787494n, - 10861916012597714684433535077722887124099023163589869801449218212493070551767n, - 18597653523270601187312528478986388028263730767495975370566527202946430104139n, - ], - [ - 15831416454198644276563319006805490049460322229057756462580029181847589006611n, - 15171856919255965617705854914448645702014039524159471542852132430360867202292n, - 15488495958879593647482715143904752785889816789652405888927117106448507625751n, - ], - [ - 19039802679983063488134304670998725949842655199289961967801223969839823940152n, - 4720101937153217036737330058775388037616286510783561045464678919473230044408n, - 10226318327254973427513859412126640040910264416718766418164893837597674300190n, - ], - [ - 20878756131129218406920515859235137275859844638301967889441262030146031838819n, - 7178475685651744631172532830973371642652029385893667810726019303466125436953n, - 1996970955918516145107673266490486752153434673064635795711751450164177339618n, - ], - [ - 15205545916434157464929420145756897321482314798910153575340430817222504672630n, - 25660296961552699573824264215804279051322332899472350724416657386062327210698n, - 13842611741937412200312851417353455040950878279339067816479233688850376089318n, - ], - [ - 1383799642177300432144836486981606294838630135265094078921115713566691160459n, - 1135532281155277588005319334542025976079676424839948500020664227027300010929n, - 4384117336930380014868572224801371377488688194169758696438185377724744869360n, - ], - [ - 21725577575710270071808882335900370909424604447083353471892004026180492193649n, - 676128913284806802699862508051022306366147359505124346651466289788974059668n, - 25186611339598418732666781049829183886812651492845008333418424746493100589207n, - ], - [ - 10402240124664763733060094237696964473609580414190944671778761753887884341073n, - 11918307118590866200687906627767559273324023585642003803337447146531313172441n, - 16895677254395661024186292503536662354181715337630376909778003268311296637301n, - ], - [ - 23818602699032741669874498456696325705498383130221297580399035778119213224810n, - 4285193711150023248690088154344086684336247475445482883105661485741762600154n, - 19133204443389422404056150665863951250222934590192266371578950735825153238612n, - ], - [ - 5515589673266504033533906836494002702866463791762187140099560583198974233395n, - 11830435563729472715615302060564876527985621376031612798386367965451821182352n, - 7510711479224915247011074129666445216001563200717943545636462819681638560128n, - ], - [ - 24694843201907722940091503626731830056550128225297370217610328578733387733444n, - 27361655066973784653563425664091383058914302579694897188019422193564924110528n, - 21606788186194534241166833954371013788633495786419718955480491478044413102713n, - ], - [ - 19934060063390905409309407607814787335159021816537006003398035237707924006757n, - 8495813630060004961768092461554180468161254914257386012937942498774724649553n, - 27524960680529762202005330464726908693944660961000958842417927307941561848461n, - ], - [ - 15178481650950399259757805400615635703086255035073919114667254549690862896985n, - 16164780354695672259791105197274509251141405713012804937107314962551600380870n, - 10529167793600778056702353412758954281652843049850979705476598375597148191979n, - ], - [ - 721141070179074082553302896292167103755384741083338957818644728290501449040n, - 22044408985956234023934090378372374883099115753118261312473550998188148912041n, - 27068254103241989852888872162525066148367014691482601147536314217249046186315n, - ], - [ - 3880429241956357176819112098792744584376727450211873998699580893624868748961n, - 17387097125522937623262508065966749501583017524609697127088211568136333655623n, - 6256814421247770895467770393029354017922744712896100913895513234184920631289n, - ], - [ - 2942627347777337187690939671601251987500285937340386328746818861972711408579n, - 24031654937764287280548628128490074801809101323243546313826173430897408945397n, - 14401457902976567713827506689641442844921449636054278900045849050301331732143n, - ], - [ - 20170632877385406450742199836933900257692624353889848352407590794211839130727n, - 24056496193857444725324410428861722338174099794084586764867109123681727290181n, - 11257913009612703357266904349759250619633397075667824800196659858304604714965n, - ], - [ - 22228158921984425749199071461510152694025757871561406897041788037116931009246n, - 9152163378317846541430311327336774331416267016980485920222768197583559318682n, - 13906695403538884432896105059360907560653506400343268230130536740148070289175n, - ], - [ - 7220714562509721437034241786731185291972496952091254931195414855962344025067n, - 27608867305903811397208862801981345878179337369367554478205559689592889691927n, - 13288465747219756218882697408422850918209170830515545272152965967042670763153n, - ], - [ - 8251343892709140154567051772980662609566359215743613773155065627504813327653n, - 22035238365102171608166944627493632660244312563934708756134297161332908879090n, - 13560937766273321037807329177749403409731524715067067740487246745322577571823n, - ], - [ - 21652518608959234550262559135285358020552897349934571164032339186996805408040n, - 22479086963324173427634460342145551255011746993910136574926173581069603086891n, - 13676501958531751140966255121288182631772843001727158043704693838707387130095n, - ], - [ - 5680310394102577950568930199056707827608275306479994663197187031893244826674n, - 25125360450906166639190392763071557410047335755341060350879819485506243289998n, - 22659254028501616785029594492374243581602744364859762239504348429834224676676n, - ], - [ - 23101411405087512171421838856759448177512679869882987631073569441496722536782n, - 24149774013240355952057123660656464942409328637280437515964899830988178868108n, - 5782097512368226173095183217893826020351125522160843964147125728530147423065n, - ], - [ - 13540762114500083869920564649399977644344247485313990448129838910231204868111n, - 20421637734328811337527547703833013277831804985438407401987624070721139913982n, - 7742664118615900772129122541139124149525273579639574972380600206383923500701n, - ], - [ - 1109643801053963021778418773196543643970146666329661268825691230294798976318n, - 16580663920817053843121063692728699890952505074386761779275436996241901223840n, - 14638514680222429058240285918830106208025229459346033470787111294847121792366n, - ], - [ - 17080385857812672649489217965285727739557573467014392822992021264701563205891n, - 26176268111736737558502775993925696791974738793095023824029827577569530708665n, - 4382756253392449071896813428140986330161215829425086284611219278674857536001n, - ], - [ - 13934033814940585315406666445960471293638427404971553891617533231178815348902n, - 27054912732979753314774418228399230433963143177662848084045249524271046173121n, - 28916070403698593376490976676534962592542013020010643734621202484860041243391n, - ], - [ - 24820015636966360150164458094894587765384135259446295278101998130934963922381n, - 7969535238488580655870884015145760954416088335296905520306227531221721881868n, - 7690547696740080985104189563436871930607055124031711216224219523236060212249n, - ], - [ - 9712576468091272384496248353414290908377825697488757134833205246106605867289n, - 12148698031438398980683630141370402088785182722473169207262735228500190477924n, - 14359657643133476969781351728574842164124292705609900285041476162075031948227n, - ], - [ - 23563839965372067275137992801035780013422228997724286060975035719045352435470n, - 4184634822776323233231956802962638484057536837393405750680645555481330909086n, - 16249511905185772125762038789038193114431085603985079639889795722501216492487n, - ], - [ - 11001863048692031559800673473526311616702863826063550559568315794438941516621n, - 4702354107983530219070178410740869035350641284373933887080161024348425080464n, - 23751680507533064238793742311430343910720206725883441625894258483004979501613n, - ], - [ - 28670526516158451470169873496541739545860177757793329093045522432279094518766n, - 3568312993091537758218792253361873752799472566055209125947589819564395417072n, - 1819755756343439646550062754332039103654718693246396323207323333948654200950n, - ], - [ - 5372129954699791301953948907349887257752247843844511069896766784624930478273n, - 17512156688034945920605615850550150476471921176481039715733979181538491476080n, - 25777105342317622165159064911913148785971147228777677435200128966844208883059n, - ], - [ - 25350392006158741749134238306326265756085455157012701586003300872637887157982n, - 20096724945283767296886159120145376967480397366990493578897615204296873954844n, - 8063283381910110762785892100479219642751540456251198202214433355775540036851n, - ], - [ - 4393613870462297385565277757207010824900723217720226130342463666351557475823n, - 9874972555132910032057499689351411450892722671352476280351715757363137891038n, - 23590926474329902351439438151596866311245682682435235170001347511997242904868n, - ], - [ - 17723373371137275859467518615551278584842947963894791032296774955869958211070n, - 2350345015303336966039836492267992193191479606566494799781846958620636621159n, - 27755207882790211140683010581856487965587066971982625511152297537534623405016n, - ], - [ - 6584607987789185408123601849106260907671314994378225066806060862710814193906n, - 609759108847171587253578490536519506369136135254150754300671591987320319770n, - 28435187585965602110074342250910608316032945187476441868666714022529803033083n, - ], - [ - 16016664911651770663938916450245705908287192964254704641717751103464322455303n, - 17551273293154696089066968171579395800922204266630874071186322718903959339163n, - 20414195497994754529479032467015716938594722029047207834858832838081413050198n, - ], - [ - 19773307918850685463180290966774465805537520595602496529624568184993487593855n, - 24598603838812162820757838364185126333280131847747737533989799467867231166980n, - 11040972566103463398651864390163813377135738019556270484707889323659789290225n, - ], - [ - 5189242080957784038860188184443287562488963023922086723850863987437818393811n, - 1435203288979376557721239239445613396009633263160237764653161500252258220144n, - 13066591163578079667911016543985168493088721636164837520689376346534152547210n, - ], - [ - 17345901407013599418148210465150865782628422047458024807490502489711252831342n, - 22139633362249671900128029132387275539363684188353969065288495002671733200348n, - 1061056418502836172283188490483332922126033656372467737207927075184389487061n, - ], - [ - 10241738906190857416046229928455551829189196941239601756375665129874835232299n, - 27808033332417845112292408673209999320983657696373938259351951416571545364415n, - 18820154989873674261497645724903918046694142479240549687085662625471577737140n, - ], - [ - 7983688435214640842673294735439196010654951226956101271763849527529940619307n, - 17067928657801807648925755556866676899145460770352731818062909643149568271566n, - 24472070825156236829515738091791182856425635433388202153358580534810244942762n, - ], - [ - 25752201169361795911258625731016717414310986450004737514595241038036936283227n, - 26041505376284666160132119888949817249574689146924196064963008712979256107535n, - 23977050489096115210391718599021827780049209314283111721864956071820102846008n, - ], - [ - 26678257097278788410676026718736087312816016749016738933942134600725962413805n, - 10480026985951498884090911619636977502506079971893083605102044931823547311729n, - 21126631300593007055117122830961273871167754554670317425822083333557535463396n, - ], - [ - 1564862894215434177641156287699106659379648851457681469848362532131406827573n, - 13247162472821152334486419054854847522301612781818744556576865965657773174584n, - 8673615954922496961704442777870253767001276027366984739283715623634850885984n, - ], - [ - 2794525076937490807476666942602262298677291735723129868457629508555429470085n, - 4656175953888995612264371467596648522808911819700660048695373348629527757049n, - 23221574237857660318443567292601561932489621919104226163978909845174616477329n, - ], - [ - 1878392460078272317716114458784636517603142716091316893054365153068227117145n, - 2370412714505757731457251173604396662292063533194555369091306667486647634097n, - 17409784861870189930766639925394191888667317762328427589153989811980152373276n, - ], - [ - 25869136641898166514111941708608048269584233242773814014385564101168774293194n, - 11361209360311194794795494027949518465383235799633128250259863567683341091323n, - 14913258820718821235077379851098720071902170702113538811112331615559409988569n, - ], - [ - 12957012022018304419868287033513141736995211906682903915897515954290678373899n, - 17128889547450684566010972445328859295804027707361763477802050112063630550300n, - 23329219085372232771288306767242735245018143857623151155581182779769305489903n, - ], - [ - 1607741027962933685476527275858938699728586794398382348454736018784568853937n, - 2611953825405141009309433982109911976923326848135736099261873796908057448476n, - 7372230383134982628913227482618052530364724821976589156840317933676130378411n, - ], - [ - 20203606758501212620842735123770014952499754751430660463060696990317556818571n, - 4678361398979174017885631008335559529633853759463947250620930343087749944307n, - 27176462634198471376002287271754121925750749676999036165457559387195124025594n, - ], - [ - 6361981813552614697928697527332318530502852015189048838072565811230204474643n, - 13815234633287489023151647353581705241145927054858922281829444557905946323248n, - 10888828634279127981352133512429657747610298502219125571406085952954136470354n, - ], - ].map((arr) => arr.map(ForeignBase.from)), - } -} - -export function fq_sponge_initial_state(): ForeignBase[] { - return new Array(3).fill(ForeignScalar.from(0)); -} - -export function fp_sponge_initial_state(): ForeignBase[] { - return new Array(3).fill(ForeignBase.from(0)); -} diff --git a/verifier_circuit/src/verifier/verifier.ts b/verifier_circuit/src/verifier/verifier.ts deleted file mode 100644 index ef53ce6f..00000000 --- a/verifier_circuit/src/verifier/verifier.ts +++ /dev/null @@ -1,277 +0,0 @@ -import { readFileSync } from 'fs'; -import { CircuitBn254, FieldBn254, ProvableBn254, PoseidonBn254, circuitMainBn254, publicBn254 } from 'o1js'; -import { PolyComm } from '../poly_commitment/commitment.js'; -import { SRS } from '../SRS.js'; -import { fp_sponge_initial_state, fp_sponge_params, Sponge } from './sponge.js'; -import { Alphas } from '../alphas.js'; -import { Polynomial } from '../polynomial.js'; -import { Linearization, PolishToken } from '../prover/expr.js'; -import { ForeignBase } from '../foreign_fields/foreign_field.js'; -import { ForeignScalar } from '../foreign_fields/foreign_scalar.js'; -import { - LookupInfo, LookupSelectors -} from '../lookups/lookups.js'; -import { Batch } from './batch.js'; -import verifier_index_json from "../../test_data/verifier_index.json" assert { type: "json" }; -import proof_json from "../../test_data/proof.json" assert { type: "json" }; -import { deserVerifierIndex } from "../serde/serde_index.js"; -import { ForeignPallas, pallasZero } from '../foreign_fields/foreign_pallas.js'; -import { isErr, isOk, unwrap, VerifierResult, verifierOk } from '../error.js'; -import { finalVerify, BWParameters } from "./commitment.js"; -import { OpeningProof } from '../poly_commitment/opening_proof.js'; -import { deserProverProof } from '../serde/serde_proof.js'; - -let steps: bigint[][]; -try { - steps = JSON.parse(readFileSync("./test_data/steps.json", "utf-8")); -} catch (e) { - steps = []; -} - -/* -#[serde_as] -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct LookupVerifierIndex { - pub joint_lookup_used: bool, - #[serde(bound = "PolyComm: Serialize + DeserializeOwned")] - pub lookup_table: Vec>, - #[serde(bound = "PolyComm: Serialize + DeserializeOwned")] - pub lookup_selectors: LookupSelectors>, - - /// Table IDs for the lookup values. - /// This may be `None` if all lookups originate from table 0. - #[serde(bound = "PolyComm: Serialize + DeserializeOwned")] - pub table_ids: Option>, - - /// Information about the specific lookups used - pub lookup_info: LookupInfo, - - /// An optional selector polynomial for runtime tables - #[serde(bound = "PolyComm: Serialize + DeserializeOwned")] - pub runtime_tables_selector: Option>, -} -*/ - -export class LookupVerifierIndex { - joint_lookup_used: boolean - lookup_table: PolyComm[] - lookup_selectors: LookupSelectors - - /// Table IDs for the lookup values. - /// This may be `None` if all lookups originate from table 0. - table_ids?: PolyComm - - /// Information about the specific lookups used - lookup_info: LookupInfo - - /// An optional selector polynomial for runtime tables - runtime_tables_selector?: PolyComm -} - -/** -* Will contain information necessary for executing a verification -*/ -export class VerifierIndex { - domain_size: number - domain_gen: ForeignScalar - /** maximal size of polynomial section */ - max_poly_size: number - /** the number of randomized rows to achieve zero knowledge */ - zk_rows: number - srs: SRS - /** number of public inputs */ - public: number - /** number of previous evaluation challenges */ - prev_challenges: number - - /** permutation commitments */ - sigma_comm: PolyComm[] // size PERMUTS - coefficients_comm: PolyComm[] // size COLUMNS - generic_comm: PolyComm - - /** poseidon constraint selector polynomial commitments */ - psm_comm: PolyComm - - /** EC addition selector polynomial commitment */ - complete_add_comm: PolyComm - /** EC variable base scalar multiplication selector polynomial commitment */ - mul_comm: PolyComm - /** endoscalar multiplication selector polynomial commitment */ - emul_comm: PolyComm - /** endoscalar multiplication scalar computation selector polynomial commitment */ - endomul_scalar_comm: PolyComm - - /** RangeCheck0 polynomial commitments */ - range_check0_comm?: PolyComm - /** RangeCheck1 polynomial commitments */ - range_check1_comm?: PolyComm - /** Foreign field addition polynomial commitments */ - foreign_field_add_comm?: PolyComm - /** Foreign field multiplication polynomial commitments */ - foreign_field_mul_comm?: PolyComm - - /** Xor commitments */ - xor_comm?: PolyComm - /** Rot commitments */ - rot_comm?: PolyComm - - /** Wire coordinate shifts */ - shift: ForeignScalar[] // of size PERMUTS - /** Zero knowledge polynomial */ - permutation_vanishing_polynomial_m: Polynomial - - /** Domain offset for zero-knowledge */ - w: ForeignScalar - - /** Endoscalar coefficient */ - endo: ForeignScalar - - lookup_index?: LookupVerifierIndex - - linearization: Linearization - - /** The mapping between powers of alpha and constraints */ - powers_of_alpha: Alphas - - constructor( - domain_size: number, - domain_gen: ForeignScalar, - max_poly_size: number, - zk_rows: number, - public_size: number, - sigma_comm: PolyComm[], - coefficients_comm: PolyComm[], - generic_comm: PolyComm, - psm_comm: PolyComm, - complete_add_comm: PolyComm, - mul_comm: PolyComm, - emul_comm: PolyComm, - endomul_scalar_comm: PolyComm, - powers_of_alpha: Alphas, - shift: ForeignScalar[], - permutation_vanishing_polynomial_m: Polynomial, - w: ForeignScalar, - endo: ForeignScalar, - linearization: Linearization, - range_check0_comm?: PolyComm, - range_check1_comm?: PolyComm, - foreign_field_add_comm?: PolyComm, - foreign_field_mul_comm?: PolyComm, - xor_comm?: PolyComm, - rot_comm?: PolyComm, - lookup_index?: LookupVerifierIndex - ) { - this.srs = SRS.createFromJSON(); - this.domain_size = domain_size; - this.domain_gen = domain_gen; - this.max_poly_size = max_poly_size; - this.zk_rows = zk_rows; - this.public = public_size; - this.sigma_comm = sigma_comm; - this.coefficients_comm = coefficients_comm; - this.generic_comm = generic_comm; - this.psm_comm = psm_comm; - this.complete_add_comm = complete_add_comm; - this.mul_comm = mul_comm; - this.emul_comm = emul_comm; - this.endomul_scalar_comm = endomul_scalar_comm; - this.range_check0_comm = range_check0_comm; - this.range_check1_comm = range_check1_comm; - this.foreign_field_add_comm = foreign_field_add_comm; - this.foreign_field_mul_comm = foreign_field_mul_comm; - this.xor_comm = xor_comm; - this.rot_comm = rot_comm; - this.shift = shift; - this.permutation_vanishing_polynomial_m = permutation_vanishing_polynomial_m; - this.w = w; - this.endo = endo; - this.linearization = linearization; - this.powers_of_alpha = powers_of_alpha; - this.lookup_index = lookup_index; - } - - /* - * Compute the digest of the VerifierIndex, which can be used for the Fiat-Shamir transform. - */ - digest(): ForeignBase { - let fq_sponge = new Sponge(fp_sponge_params(), fp_sponge_initial_state()); - - this.sigma_comm.forEach((g) => fq_sponge.absorbGroups(g.unshifted)); - this.coefficients_comm.forEach((g) => fq_sponge.absorbGroups(g.unshifted)); - fq_sponge.absorbGroups(this.generic_comm.unshifted); - fq_sponge.absorbGroups(this.psm_comm.unshifted); - fq_sponge.absorbGroups(this.complete_add_comm.unshifted); - fq_sponge.absorbGroups(this.mul_comm.unshifted); - fq_sponge.absorbGroups(this.emul_comm.unshifted); - fq_sponge.absorbGroups(this.endomul_scalar_comm.unshifted); - - return fq_sponge.squeezeField(); - } -} - -export class Verifier extends CircuitBn254 { - /** Number of total registers */ - static readonly COLUMNS: number = 15; - /** Number of registers that can be wired (participating in the permutation) */ - static readonly PERMUTS: number = 7; - static readonly PERMUTATION_CONSTRAINTS: number = 3; - - @circuitMainBn254 - static main(@publicBn254 proofAndMerkleHashInput: FieldBn254) { - let proof = ProvableBn254.witness(OpeningProof, () => { - let openingProofFields: string[] = JSON.parse(readFileSync("./src/opening_proof_fields.json", "utf-8")); - - return OpeningProof.fromFields(openingProofFields.map(FieldBn254)); - }); - let merkleRoot = ProvableBn254.witness(FieldBn254, () => { - let rootString: string[] = JSON.parse(readFileSync("./src/merkle_root.json", "utf-8")); - return FieldBn254(rootString[0]); - }); - let proofHash = proof.hash(); - let proofAndMerkleHash = ProvableBn254.witness(FieldBn254, () => { - return PoseidonBn254.hash([proofHash, merkleRoot]); - }); - - proofAndMerkleHashInput.assertEquals(proofAndMerkleHash); - - // if the proof is successful, this will be 1. Else will be 0. - let success = ForeignScalar.from(0).assertAlmostReduced(); - - const verifier_result = this.verifyProof(proof); - if (isOk(verifier_result)) { - const verifier_successful = unwrap(verifier_result); - if (verifier_successful) success = ForeignScalar.from(1).assertAlmostReduced(); - } - - //success.assertEquals(ForeignScalar.from(1).assertAlmostReduced()); - } - - static verifyProof(openingProof: OpeningProof): VerifierResult { - const proverProof = deserProverProof(proof_json); - proverProof.proof = openingProof; - const verifierIndex = deserVerifierIndex(verifier_index_json); - let evaluationProofResult = Batch.toBatch(verifierIndex, proverProof, []); - if (isErr(evaluationProofResult)) return evaluationProofResult; - const evaluationProof = unwrap(evaluationProofResult); - - return verifierOk(finalVerify( - verifierIndex.srs, - new BWParameters(), - evaluationProof - )); - } - - static naiveMSM(points: ForeignPallas[], scalars: ForeignScalar[]): ForeignPallas { - let result = pallasZero(); - - for (let i = 0; i < points.length; i++) { - let point = points[i]; - let scalar = scalars[i]; - // FIXME: This should scale the point, but it is not working yet - // result = result.completeAdd(point.completeScale(scalar)); - result = result.completeAdd(point) as ForeignPallas; - } - - return result; - } -} diff --git a/verifier_circuit/test_data/group_map.json b/verifier_circuit/test_data/group_map.json deleted file mode 100644 index 349ad8be..00000000 --- a/verifier_circuit/test_data/group_map.json +++ /dev/null @@ -1 +0,0 @@ -{ "u": [6569413325480787965, 11037255111951910247, 18446744073709551615, 4611686018427387903], "fu": [7323099323363753961, 16980894254696289304, 18446744073709551612, 4611686018427387903], "sqrt_neg_three_u_squared_minus_u_over_2": [8958814715133366562, 4639564807222929882, 198851054779706153, 1305245614420024080], "sqrt_neg_three_u_squared": [14379017815101416000, 17846555072478556222, 397702109559412305, 2610491228840048160], "inv_three_u_squared": [8928487735590999381, 17623467522403147019, 18446744073709551615, 4611686018427387903] } diff --git a/verifier_circuit/test_data/inputs.json b/verifier_circuit/test_data/inputs.json deleted file mode 100644 index e47ae821..00000000 --- a/verifier_circuit/test_data/inputs.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "challenge_polynomial_commitment": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - "delta": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - "lr": [ - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ] - ], - "z_1": "0x2F760BFD360C24FFFE9BDAD64E32032DD0BC3A2E8E8E6CC41B15F11308C1BF51", - "z_2": "0x3515F5BAEAE18DD1C50CDC0E6F3C9875A5FFE9A26DFB861499B8F492833D931F" -} diff --git a/verifier_circuit/test_data/lagrange_bases.json b/verifier_circuit/test_data/lagrange_bases.json deleted file mode 100644 index 16474dff..00000000 --- a/verifier_circuit/test_data/lagrange_bases.json +++ /dev/null @@ -1,292 +0,0 @@ -{ - "32": [ - { - "unshifted": [ - { - "x": "2024374850950392523774514287669155111689647535907794424496740313816916814876", - "y": "27609951299508575489098091642287498957397596571762223554974369846127877146841" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "26074284112757296054367523279495323315937460087409615776631240868539443769413", - "y": "8898065811320045929671831020271639160367388750080407815270183836848786239213" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "24470549957884566858556779354835144494498195105668985716583349164100355086760", - "y": "17026166514971783215962287650164344921331301327160477563088952883535570196085" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "23369210459221011909904952472393101048443095106478538724013169589422685092641", - "y": "967985868790582273709627721007668074950315316465833827922299880941789009577" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "13198398920078145776536504076161470172839566954776151572442190769831933124431", - "y": "22024105623549547513615867448794444275036564008555346158437371443177149071674" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "404502461668729450870643384224492942427500724133212991160202732955810450766", - "y": "21163739878814109000957328817681072265993527758231547895794232235683746949854" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "18593351128588114115782537284297469651800137475564965487742705106469113914212", - "y": "16797458672230348106803399029412130378708811924338898209195484898229227495798" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "22113028034834721095767856679286571013313943800741747778995375454393367023501", - "y": "5868386305547310038503236713166688013919367907908833715293861855386879730704" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "4130014068894315641972299866081771528342277567058896601388819404146261406382", - "y": "5993073658494824568018737806825231782144976882153458190750320583382859734385" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "2022096391615168211924142551149081329341522974109125889631240298977230342755", - "y": "4879360278800149033841641834710303746401503312137326768151368094761167695614" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "700274932196773629334819327920346659408948059321230276417282837460935160981", - "y": "27072674594175431187157164189020826925975516887399274961135952798578844428792" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "27610416750667491471581682921428918633601362246110615974434397710002547564154", - "y": "4445513253961555651539554788606933804202894098267409897910965554289125474718" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "17312807867709475915694390005687162423563520791488639667028557599714061091730", - "y": "18726416216890692671556105409333206211611067393649293481037471638545015238070" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "11855937486057735559574610185259030184177326022149713100029019508859329656129", - "y": "3100771369425715112203099671757192618684579939930393272953485998072201412543" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "28454303283044667981261104558058698551584999309977598082972822453703744765616", - "y": "2669893294397694433763285460610580275035348823995735963799260250434115047974" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "392599848485624280713327802280411133361935285547762025098761569517681423541", - "y": "10398240760830564180328264106498865020601601315135674045994439530211721089781" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "1461458645905351177109440358751961501219183793632691827809964657903838052792", - "y": "16153607653626434542473522173628089744268450567318068288335260564583303828331" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "12666129417556687305306305485600994538418862099226242924175064883924734455001", - "y": "1250742950234597535918692229168044235433702414675862728813304214125201088708" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "18708298867562823617508976105179258472965393230558118112248062469795221724442", - "y": "6684925888197985445887262216485585856873014912331533286729903971608023873248" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "23965270341103001556239338214148801749546993029373145893078188012790457018381", - "y": "24707463647702480922958744454632283098355932850909583777316045001749904011766" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "11978921442142902232958536097363578062136418000570456769504686570125189209733", - "y": "6921146475676512050062743906271040226231260087979205669702585884978008986517" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "8856090391857657143249407327714549217805880030461736613083128263882700383495", - "y": "24065354083783435052914848159231157841045419951347846653318510664171308781885" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "27042432057242380579277067886890352097045231390275916761059409595275517526675", - "y": "28233892075290678418493054747099951438410682669828622538523326032109947221014" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "14403088978386583835188435680981240472963540268375511997457728464318063477906", - "y": "24246551773572975964099305305350547595476967873655622538582872716753583489785" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "17405139902782708746873142279523896460028201954793464827810323289111478479720", - "y": "3525526459879381320553858195116883639956846599560939755491278822266812244793" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "1574381988060681657665124050422787918836892018555310077207488422609583225551", - "y": "11595644737053710153038930846970656532150790940945404762970871461549551943639" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "19914855490526602767089558248193906136118635209837830971978928075653153691240", - "y": "17642989453866716627097317427811380318284567846901165007878124725805956810609" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "9155183572460390519698888052797432892005370676836600766937017879978035574884", - "y": "2940639223895057638853219800083525899069164928044907603450739262494011755158" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "23528082102887512844665278162995287899338764197295865020771207802757244148628", - "y": "63463033742962759856454696515954603925593962163601515114966781125587048362" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "1739920028769262444440749284749037154754909743080968880184819413121497575593", - "y": "9163863350729674991038189855241974463534096061084597386779209202925169688355" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "8192865706774782539630306886590553112368293851963904278926891379526708206259", - "y": "19616399115914027952847612989718748202980987806531907500014696627691490716410" - } - ], - "shifted": null - }, - { - "unshifted": [ - { - "x": "1532226985640461689094248806147252686897936844829651153130844471961547848522", - "y": "9839255371666833874414919795106613187050025214113344700221638707241807443296" - } - ], - "shifted": null - } - ] -} \ No newline at end of file diff --git a/verifier_circuit/test_data/proof.json b/verifier_circuit/test_data/proof.json deleted file mode 100644 index 091874b0..00000000 --- a/verifier_circuit/test_data/proof.json +++ /dev/null @@ -1,1537 +0,0 @@ -{ - "prev_evals": { - "evals": { - "evals": { - "coefficients": [ - [ - [ - "0x1D7BB7B9C68312EEC2C25ED1373C0159651382516A8D1623B0A06095D3E8C02F" - ], - [ - "0x170FEEB583692A4AC732E6DFABF031D7F50C03EAF013D4A56E485314686A62C2" - ] - ], - [ - [ - "0x35BCDE509A83CB4CEF5A8A39B32A5CAFC2C9F3AAD8D466234FF9ED4D30C95985" - ], - [ - "0x012019FB56ADC3966890458D12F76F573E9785049C223F02E2564655CEF7099D" - ] - ], - [ - [ - "0x3FF128DA838F538242B43EB90646FA1063C070FEDAE027144D6FF1B279DB0BAD" - ], - [ - "0x1F82684292CD15A3A1A6A5C6BBF3AA0772D5346515D8998ADBF2A7C02C62D195" - ] - ], - [ - [ - "0x1AE946E9652F86A45E6840D63E0B995A0724605F2040CB1D0C301CBE81B7D252" - ], - [ - "0x0CD8CB170CBB785D2F66D0AE98D961D5105ADF3190D895EE16BEFE35008E8936" - ] - ], - [ - [ - "0x32BEB240E7C2B746196FB120FCDF8A5C5143AEF1DEAA0F97F24677812E9A2371" - ], - [ - "0x23E478DF7BCFAE0BB0BB487FE1FE11EA5F2A617888943B56416749D77FBA1221" - ] - ], - [ - [ - "0x0F28B3E2FF59B7A7A52554F766BBF5FF68C2FF71255DB6CBACABEE012924DCEE" - ], - [ - "0x3B68606E47D3B84D1FD28F4A5A86F936D3FF11C632D433CF96730394F83C0D7B" - ] - ], - [ - [ - "0x2322CA9F7751471A72947030C7727A4CD60AA24C2E4E2E96D9F3F2FCBE30CB5D" - ], - [ - "0x052AFE047742FC8079224622BCC1767750F81CE7C650223D04FE6A903BB06EC4" - ] - ], - [ - [ - "0x26F06DBE3A039FB1EDDDF00B5B8BF8FF90C686E0EB3507E2FA02A6FD6F2BCC0A" - ], - [ - "0x0B82905319B91D48E29E24B9A923EFA04CEC37EFDB6CE44888DFEF1752C98C37" - ] - ], - [ - [ - "0x03E7E52A4B867D990788E004B3C67EB804059B2D86A1395FCE63DA36C1E05CE1" - ], - [ - "0x30991D454A49356F278D88A2BE7820FACF1B088CE3325B106B71F1D33721560D" - ] - ], - [ - [ - "0x18995AAC5AF0DFEE5A552B82770E40C584BBB15E1A51A21B657ACD9B48DAC1BB" - ], - [ - "0x0B13281FAC74C2BC5CC7E66BD5B209E409EFD1340CF17F014759697B4ABDCD57" - ] - ], - [ - [ - "0x0261C9F9EB042DFAF2FC4C8C9863000C368C633F70027398F4F3BC9BD2467CE6" - ], - [ - "0x115F813869FF2B51084A06E4CCBE095DD91C848DB957D17385245E6F98E35136" - ] - ], - [ - [ - "0x0B7EB461F4BC1A00BE19CD1F51D66A46B5C040D2317543BBCB891B45EDD11791" - ], - [ - "0x2CBFF74B317CDE693076CC3A5EA2CEA007203F8FC7EC460D40CBC7EC0F67C36C" - ] - ], - [ - [ - "0x1E2D32FBEFEDE1CE076FA89BA14236D5F46DC1B2131BA0EAC78FFFF195C963A5" - ], - [ - "0x161578273523ADA1AEBAB2A474B615BFF7BE795C2A941B41E137CBACA4729F8B" - ] - ], - [ - [ - "0x3B5E9004287D960968140892C1027EEB17C30A2C966EC843F7A4FECED3513D79" - ], - [ - "0x39BB9F72396E72799BBB6C1A6DEE5761CD37F51832A39043B7460AC9B9A2A6F9" - ] - ], - [ - [ - "0x38B989F92A1F7E009CA56A1597B31828350E2C964254BA30BBAFDCB469460C00" - ], - [ - "0x0E6AE0AFB0B05CFE26288F06EA6F426DC58961B68DDB7588A7FCE9EA11B75F40" - ] - ] - ], - "complete_add_selector": [ - [ - "0x339238D9CCBE0F0D12DD1AAE2822D39984BAC2561294FCCB3D3952C7FCF5E6CF" - ], - [ - "0x2588792FB9151AA7BAB0ADF932F807367648088B96E2686FD2216300DAFCE617" - ] - ], - "emul_selector": [ - [ - "0x2CD86EFEE81C14F65AB53249B644370B2E3178B0487942DEF6D34C0CDCFCF592" - ], - [ - "0x195BCF5B5A4941AE13C9C0B4283CFAEB580D88440F78377EAB3F84ECBCE1B14C" - ] - ], - "endomul_scalar_selector": [ - [ - "0x37905486AE7C97CA4F73A9FF9D3F9FDE7F11C021B9152796BB0653A1FE4DC8C0" - ], - [ - "0x3C80CC451CD8939669FA5414260F5D3D1A770E412F38FD3A8DD1EAFF59F26CAD" - ] - ], - "foreign_field_add_selector": null, - "foreign_field_mul_lookup_selector": null, - "foreign_field_mul_selector": null, - "generic_selector": [ - [ - "0x0850090781FDDBB9D1086E84A32569658273F9294D776822AF833316F3BF64DE" - ], - [ - "0x0C795264F41F16B3FC1A533DBE9825CB30ED51B57A3B8EE3933AAF6720C9791A" - ] - ], - "lookup_aggregation": null, - "lookup_gate_lookup_selector": null, - "lookup_sorted": [ - null, - null, - null, - null, - null - ], - "lookup_table": null, - "mul_selector": [ - [ - "0x0A303248E6F614B1D7E928261AAEA893165831B72D16EF756529779D904EDBFF" - ], - [ - "0x3CBFB2958CDE3E126DCE167DC9A5900C96BE34F8EF4D5F4BD2EC3C32DC8A1240" - ] - ], - "poseidon_selector": [ - [ - "0x1DC4EFC02B871ACA8DCEBE6E302BA3BCB051DED4B385C8CE994AABD0871D18C3" - ], - [ - "0x3A28963FEE8042F58EF1B39687D6A868584F45C582A8971A340BB96471C28828" - ] - ], - "range_check0_selector": null, - "range_check1_selector": null, - "range_check_lookup_selector": null, - "rot_selector": null, - "runtime_lookup_table": null, - "runtime_lookup_table_selector": null, - "s": [ - [ - [ - "0x24A9176FAF87ACA4E566E19771E26664692CD42B6E83574D707EF3CED8E94E4A" - ], - [ - "0x1EEC66F21939BDD7BC37751A571034F15EE82F58767CEE1513ED3502ED577EDE" - ] - ], - [ - [ - "0x142903E2240E253D316250789F3B15CA58589FD5C7D948E518517E25FBC0A87E" - ], - [ - "0x157A2009A603EDE84B88FBB1C677D024DE9A4085F23CFD95F8B9C8DB5BC8539D" - ] - ], - [ - [ - "0x2DFBAAE148271182AAA88ADA6B93D0B3366B529267DB903F521C09D35ADE8499" - ], - [ - "0x054F28D07572197398A001712614E38BB4A4327681827D062493565C55443DD2" - ] - ], - [ - [ - "0x139D0EA8B34EBDE74456B054C35B6421E95243328044408FE635CF4AE2F81E8D" - ], - [ - "0x13F0E33463A99ABAEF32F4638F95551AC1F739CED5546B656975FEAFCFAFB1AD" - ] - ], - [ - [ - "0x25D5543A0F970A2A7772C038508526954722D453101C5CBF2BF09CCBBAED190D" - ], - [ - "0x3920CC66AFD47D61EF740AD8B6B0FE6D44A97FA60B06CD9BA8506FC35270AC89" - ] - ], - [ - [ - "0x3921794ECFEB27344BC016E62D62567511E458CDE4E2CD96E685DCE655105DAC" - ], - [ - "0x303F960F1F2ED5EA73E09CB1FB9C01A5D6A035A3BAA9A3CC2E4B915BC654E0A2" - ] - ] - ], - "w": [ - [ - [ - "0x3217BD06879B3087ADA34D6395D96FC98A040C8CC9999B834C88EA14F36D7291" - ], - [ - "0x16B21F0A23E1A273A978695B5EF2AC3ABDDE4E0DA05BFBF8644AAAD3BC35FD44" - ] - ], - [ - [ - "0x22CA8F667F2004B21D2E78299FA8CE1A252EF7D88BFC30D835899EBDA0CB6236" - ], - [ - "0x18C503E6166A9E3A7DA22AA8542FD5B01B8E866161E4F9169D7464A5BC8097B2" - ] - ], - [ - [ - "0x06B8F16FD29A5769B788FA6751DDBA9216C60F23D16CDB827CB0A06EC679610E" - ], - [ - "0x3AC14783C5DAA69381FEEB8EA887E6DDE7D0F34CDEE7E2666F67B5259730EA8F" - ] - ], - [ - [ - "0x1CC651AF09CAB489E83C08F198A217A66EA39F1792CEC67AD44436A6365E14A6" - ], - [ - "0x12F00C08E9F6757F29DCC4012438CD57BF6C2733D861A0572EC3E8DE2F78D9DF" - ] - ], - [ - [ - "0x23158354F439D8344342E71FC29D5B87FD91304AFEDFC10EAAA5C0479118A429" - ], - [ - "0x328410040FE91571B631714D52BEDA12278381AFA1BE498E23D3BF83FF449029" - ] - ], - [ - [ - "0x3C170D40DE98D33B2BF50DD88C01D24BCE1D77691C33BEE7D0362D45D7256988" - ], - [ - "0x347F341078312392F5BF115F8D18D020674359F739B43893711EDD3726F25DBB" - ] - ], - [ - [ - "0x28FC4B8A46CF1AC738C2A41D56AAE023125A41898380E7EB805A114FAE442998" - ], - [ - "0x10C56080D3F326BF73405173D8E00D95050C245067C64405D0242957868C528D" - ] - ], - [ - [ - "0x17B1965455020E6FB48587B778566D46B294256ACD5B93300D927EA2469E2313" - ], - [ - "0x20BE6DC1952B2D6F67C807E6BCBF3F0BCA8154AF8BC7C5B86DBB221207332CD2" - ] - ], - [ - [ - "0x2775BF922E74D84573234E2DDD7B3ECBE2514B91B6CBBF7293C785287DBD8A32" - ], - [ - "0x0870FDAF0C2580691FDD8533D06A043630D3800F81F6ED496696057580EE4066" - ] - ], - [ - [ - "0x0FC79E2175851C844DBD6FEC443DB73B65835C4FCA0A873399A94C8231142888" - ], - [ - "0x0EC6977EBF8046710783DEBF7E8FF7EF8780F583D8DE3BCA7E0C8D6880534A15" - ] - ], - [ - [ - "0x1162BB64F694523933117380F29756A013D7639DD1681B44A2B2E93099A4AA19" - ], - [ - "0x020414F949F39E7851F11448DE78C045B2E64889D9F85871093FDC0E17F515C5" - ] - ], - [ - [ - "0x3ABFFC4955EB45EDD62C7D557502B072F656D00A421164FB058092FF2C40C143" - ], - [ - "0x2DFBB12881E2C4263BFF0BD255B0CE383A9D744DFFBB15D1B5C64542420F55E1" - ] - ], - [ - [ - "0x31D8CE985CD9D8994C6BF7A9A486423A718343FB4DD2E9EE3C08EC462E437DAA" - ], - [ - "0x0F98D03BF3A19159EB251B86AFED7A6D5A9B6E9E9D7515DBBFF1A2F18902B749" - ] - ], - [ - [ - "0x386FBEFAEE4D8E9D3352DB75AC9B731B7B88E8DAB39F5AA6FA39EDE6228CDB08" - ], - [ - "0x2434346AEBADD24A79143D5FC222454407DC6C899A9EE59CD3FF3F37AD9811E8" - ] - ], - [ - [ - "0x140971802DB61C631AB419F84B3D37A0173B2DCBD0A5C66F5E35F2560B845024" - ], - [ - "0x04D210116B2EE94FB68867635BB67E7B994170FE86BCD511563CB33D603688B3" - ] - ] - ], - "xor_lookup_selector": null, - "xor_selector": null, - "z": [ - [ - "0x152425E25AFEC57A4DBAD7AE2444E9D16B3EDF74E8DA2E876F795B59EF19500E" - ], - [ - "0x1BB919D083FC7ED8A0AD82071FD9A92244B909F8BE6CBB6F229B28F14A92CECE" - ] - ] - }, - "public_input": [ - "0x374F95A9B9B0E56DE1BC1A4BC2D93702E5CBC9598FB45C8CDD04D14732613C3A", - "0x0DEE521F564D33D39F1AC6702CFC0F7EBFBA6F36B1AEBC525DF0DF32024ABAF2" - ] - }, - "ft_eval1": "0x3B570949A42E0EC74AD4FA98DA1A114A21A96C511EDC6E568B1FF0260F8B14DF" - }, - "proof": { - "bulletproof": { - "challenge_polynomial_commitment": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - "delta": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - "lr": [ - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ] - ], - "z_1": "0x2F760BFD360C24FFFE9BDAD64E32032DD0BC3A2E8E8E6CC41B15F11308C1BF51", - "z_2": "0x3515F5BAEAE18DD1C50CDC0E6F3C9875A5FFE9A26DFB861499B8F492833D931F" - }, - "commitments": { - "t_comm": [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - "w_comm": [ - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ], - [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - ], - "z_comm": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x1B74B5A30A12937C53DFA9F06378EE548F655BD4333D477119CF7A23CAED2ABB" - ] - }, - "evaluations": { - "coefficients": [ - [ - "0x3A1C3ACD9359BFBD98E6191249B2F5420DDA5332CBED7368A8037470327C9684", - "0x0DCBFA69751F87AFE1A3281F2EB46B31506E989C8DA3F6CE2916C26CFC965325" - ], - [ - "0x000DFC50DD40ED23A8B0E7F4A6F225856ADDBC994C5560DCDBAA3FD575EBCF46", - "0x240D6B982F1DE06E139B953D093BA1CCA9EFDED69B563FFBED70214BD9980A69" - ], - [ - "0x28251B5AC9644CFA57D6C0C345E8D030EA0B680675F7ACFD3D4A51DBF3868E6E", - "0x1E73CA676452F6A483B48C8D0FD87CFED79DC7109851E63315C59BF987A8F612" - ], - [ - "0x186B82E600FE44C4EB089335CCDF36C1A7BC0600643FA8A5D6A887006677D73B", - "0x29DDC5C9F215B8C18FAEB558DD63F298CDCA1872D9F802CB405AC3C4BB6B1773" - ], - [ - "0x064C69B93B48BC30234839A5621DAF940776959F9581B36F12619B3AECAA613C", - "0x1E7A312BA9FFB127637A8E63BCAB8E6563FA5FAD8B3B6253DEC5AAF1503194B5" - ], - [ - "0x02467B0C17F1027D6099E8BB8788245B06E9658A14E0C4C5F1EBFF71BCB073B2", - "0x2784700DF37C92519B7F53DB9409D8B6FB71FA6DD6E7177581C6B96CA3B949E5" - ], - [ - "0x2C2253B3E09227E4FB3C521B12BCA26C145662BF197D56B82F7A3DAABFDE3375", - "0x32DE48A34CA7BA4B0C73107744E08BA186112231F10415318A0DBE71B69FFA57" - ], - [ - "0x354CD42B8315850EE7A9C924566F90E4097C0122FD412DDDA5967E3087F0D1F4", - "0x1689C7DC0881D8C5F78A20314DBB799C2452FC4094084E6EBE1C009057EF8501" - ], - [ - "0x15B0FC3AFF7ADFFD3388CC86193583FB5488CB60F93550607013E8A2C73F3EDC", - "0x044194259118AC88830FBF331A3ECA9BD771E37B95ED92C018CDE39150AF4953" - ], - [ - "0x2A5A98C7FA59BCC21C00B6CAC434E44655DC0446890DA53B48C14F380BBF22E7", - "0x365116240142D141A5E7216BB9097193999FF1CD0D4CCAB5F2155F56A7844A7A" - ], - [ - "0x0CD63AB7E233082D6BA631EAA7F5638533DBE86AA8C2D5FE00548EC4563F09E8", - "0x1DCCF404F71A40938DE503B1EFFEBF42487D7CB6DB3801A5C31E97D43E6361A6" - ], - [ - "0x0B0891AE1A3B504A1837C6B710CFC33E18F15E9480CB1D66AAFB21F1713E81F6", - "0x2054985C2540C51D96010FF8D6923AB5F69FB83BF06D509D9111BBF0F09BBE52" - ], - [ - "0x1576395D0042A58D4D6AEC1A84AF666598BB5C4BA605126EB1EF29D24FB2587E", - "0x39E54DE7796BAC7D93C7D114E4E160437BD734CF3812F49527E9CC0B26F89A97" - ], - [ - "0x1676956FBE19C4F3EC162EDC27E9F858A7A6FE11806F4B1B6809E180168D72F3", - "0x3979D8644983CF94779916AF372B73F0D21586777F183F727B206A9D35FF6478" - ], - [ - "0x268AAA4520266766ACF3F2FD19A818F374E80254183DD52189B9163C3E75A627", - "0x0628FE6ED0746BDA11C9CB189354716CD0D56A828B5069F051F193FEA67C4E66" - ] - ], - "complete_add_selector": [ - "0x1C492DEB5F754E486A77A2AD2272097FDD410C93AD06C61953917AC00E23DF6B", - "0x2436BADFC8B07A229721D9DB5DA6CA70B6767E9D689896B6F3BADDF4EA2B80EE" - ], - "emul_selector": [ - "0x0AB264ABCF5D6768FA0A4862922B3E319AFB4179CE3FE8E5F219A7E1AFC871CD", - "0x089AF17A033C472FED3CD53EDFC8A15BBD6906E43C314B68F60604243D0980E5" - ], - "endomul_scalar_selector": [ - "0x39A0A70ADE8B5AB4CEFE48DD5B2F8FBB1945F52BD823A366DFBDE7C3D994CC9A", - "0x17756EE6A9147D2C49E5FAE89CAE52D5E82407757858264DC32BB5114206A196" - ], - "generic_selector": [ - "0x3C1616AA99A19CC93C89AF72312484043041FCB8E03D3CE598C5206F982D3635", - "0x2E155DA010B2B9F1779CB60A8B93997A80549EE8F02C5E8BEAB45F386A1E95F0" - ], - "mul_selector": [ - "0x10D3408AFC5B4214DDEA3CDE7BD279500283FF0D92890D60D5AA1E883A8DC9B5", - "0x1AAD752BA76A6DC82FDE0C61D1E774B16BC54D430701EF6FD7192501281644C0" - ], - "poseidon_selector": [ - "0x09ABCCF136D6470878DB839AADA02654172C9116537F3F8BFB28C6809DFABE37", - "0x1CFBBD55500252629A5429FE4456218520062A0A6C048431C276602BCC360DE0" - ], - "s": [ - [ - "0x1E2E0CDE4A06CEE7C32059369E1E9A2D52C67E772388032047B8001D73681E2E", - "0x37D9BA0369AC741292A1CDED36A2643D3389B0B49E914CA4D3490A4AE5626DD9" - ], - [ - "0x280FE934EF475A73E7666CD787B92D33FD6D98CC6794E8538C2D24FA8DA7E3CC", - "0x2EAE317C4461F960E11ACEB9E4695A0CCD23435C5EB86B249AAA73842C697DC3" - ], - [ - "0x260EB6A1D890B71B8AB169A035A0C25A2A5B6A18DF7E1517E3BD427871382DD8", - "0x0F1701A9E805C278941BCB76A4F68A4C79A2ACFAEBAF18C457A584F270E29469" - ], - [ - "0x151EE97CA8D2A2C9A9E9542BC82C0D06182529C02EBEBA884FC81397E5157171", - "0x1F2231AE6F776DB9C935F68684DED904CD2F47F26049A30FE3CE3F2C9B3CD95D" - ], - [ - "0x24E7AB95462CA37FB5FA7921793EB98C8AC5E22AB94970B9E04BD6D6A0944FA8", - "0x178201A8AA99117176923B35C91922B2EBB8EE7E5AE8AC8EAA413B12A56A7C2C" - ], - [ - "0x3D5F054122358E51073C6E1A533D9376455C3F29F99EE242C4EA9FDAEBA2EB16", - "0x051661120101B86DEC19AA71223F176E6CFBA0AD760E429C36B85324E1B2F5DC" - ] - ], - "w": [ - [ - "0x083046EB09B194D47ABE9447721BE44370F9336341F1A5921C9B88289066ED5F", - "0x038186675976749974C08AF7AE8976194DA86FD3886570FE9D149581A06F1BA4" - ], - [ - "0x15AC3216F09289F4DA93B37A5A68974AF6A0CE2237C413F2EB3D0A88A04A7969", - "0x3244F9E84F22722E72460F6436A8EE1D1CA9C5A04E2CA7C4053776E825646776" - ], - [ - "0x141C7F191FECD5A21248CB63DF44F51B595F26564F3B52EA19774AABDE83454C", - "0x2056205F900F75047766EE1DD1A2AA6BB5024928D5A4DBD5EC75E183283A0AA9" - ], - [ - "0x2F01A2B005F3929EC8D7E585DD48769E9B0B0BCD2CA05F465B11C473E2C783BC", - "0x35E56EC68F5D0DF4C0C0526DAF7E53667C0F0A2B5CE77631220D94539A4A019E" - ], - [ - "0x0E876A12E1524085A0EF27EF3CD34CAF6D1C8CB647B8FA4189074E3639224BD4", - "0x010168020C0229413C6C069C4EE8374AE24AC768F0135F985485786EA436FB03" - ], - [ - "0x07503D13028465C24841F3EB1E1F0696E139D2AA350021D73E32FF08117FCB78", - "0x1ECEE5A2EBC06D4745BBB49FBE3A2741F9FF9701E02A34FB71BA32DA8A663710" - ], - [ - "0x3443E3B3F34BC4DD9807D248F8AB7FB68BDD7E1E9AACB9BE62D56002D099DBFD", - "0x0BB8456536479AAEEE6F98521F701D1ADB81C2D1308552C1ABAC37D2FA6080CB" - ], - [ - "0x39186482EBF75B17637FF9AA7794B459CA5E8E654FED690B9615C134AD253CD9", - "0x2B22607AE3697FB3F52353C00E2D3F8AB1898A6ADFA86F62997BAF232664D6A6" - ], - [ - "0x06E6BF7C81789755EC095611255A3A3914D40D05CFF99A65B7C47009852A6D39", - "0x1CFDE3A60F23064070D1B5392B2416B1D79693FD2ED9659C9EAF700349458D5F" - ], - [ - "0x27E0E9AC4A443F287AE414A797DC996A1B48F9EE4D5E8D3F13F7D1F6F2D93E16", - "0x294C663FF683891BD7D6A5E6CD2746ADD3DF4AB6643A23F6FDE454D6123837D3" - ], - [ - "0x32050052F8B701A5F924A1C90515B62354F90BCF7C649BD8CF95C5E8314BC54C", - "0x1A3D1CD62074DB059A16EB850C7DA96B4B1338F46F775CAE2968E3D5196A09CC" - ], - [ - "0x0D7F514768B9CEC39271CB891A238F08B63B14974CB9243F305F206784FE7B86", - "0x00B1B8E1F4D91A22C8F2677491012D9A04052FDBF45027D68F1B1191834BCC8B" - ], - [ - "0x033CC74867A10B136789FDE6FF1CF4E67A3605CEB91F9E776D447A063BF64F7C", - "0x32EF98A69152F7F47806BE33E8D088CA03D1676E922B20E02EF3AF6A4F73FC69" - ], - [ - "0x3071DCCFC68709B9429369957B8FBABC20E75609C422EECD76F4E0E70BCC2FE2", - "0x0ED35391805E2969C050EAA19FBE36F7185980470DE7101B527E13FA6226EA21" - ], - [ - "0x37D40A53D9CF3819041767B6F9567A910D846877F9A6513481ED42470A0A5F35", - "0x2AC9AE2AAF45AEA3F1F0E8B1A1D85EB44DD17EDA38E189807A5121EC06156E65" - ] - ], - "z": [ - "0x27AA599C320CD4FE39B38F759D5833EDA98DDD6A76E945A7FED71A805B60532E", - "0x030F1A455FDC020CCE2461097B3A300D3DCA5C751816C6C9D17C7FB088877AB7" - ] - }, - "ft_eval1": "0x0B67E1CE231BDE390024718020CF3205CC563CB49782930BD39C6A2283122ACE" - }, - "statement": { - "messages_for_next_step_proof": { - "app_state": null, - "challenge_polynomial_commitments": [ - [ - "0x11D3DFDE4864C29DA55CF0CE4B70A13C9DBD91F5FDFFFD4F5FA55446E836B548", - "0x05F507224D848AD7DE1417E57A1B0E42B8ABF3C319EF5559CDC721DD442C1A6B" - ], - [ - "0x11D3DFDE4864C29DA55CF0CE4B70A13C9DBD91F5FDFFFD4F5FA55446E836B548", - "0x05F507224D848AD7DE1417E57A1B0E42B8ABF3C319EF5559CDC721DD442C1A6B" - ] - ], - "old_bulletproof_challenges": [ - [ - { - "prechallenge": { - "inner": [ - "-5948286762976073031", - "3913620533516803836" - ] - } - }, - { - "prechallenge": { - "inner": [ - "6451156200849374208", - "-7149474906925249401" - ] - } - }, - { - "prechallenge": { - "inner": [ - "2545802753099625135", - "-3046285123411643010" - ] - } - }, - { - "prechallenge": { - "inner": [ - "1476045778313053942", - "7088211501506636392" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-5780902958823199474", - "684672559108579835" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-479599555522051695", - "6277689784759994790" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-6174909374622547011", - "-2876420228592515736" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-5612139484668830099", - "-141685165274757211" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-9057284384873862529", - "-218923106050670804" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4381571242292214582", - "-7982158890774157783" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-2589693721356185105", - "47703702537737607" - ] - } - }, - { - "prechallenge": { - "inner": [ - "6933529253212730047", - "-453811945482877525" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-7749055720453093542", - "-3329383869546507530" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4722006655881085948", - "-2216518060947545516" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4147613965780683501", - "1618424163113385480" - ] - } - }, - { - "prechallenge": { - "inner": [ - "5242665654050011345", - "1974270862881305038" - ] - } - } - ], - [ - { - "prechallenge": { - "inner": [ - "-5948286762976073031", - "3913620533516803836" - ] - } - }, - { - "prechallenge": { - "inner": [ - "6451156200849374208", - "-7149474906925249401" - ] - } - }, - { - "prechallenge": { - "inner": [ - "2545802753099625135", - "-3046285123411643010" - ] - } - }, - { - "prechallenge": { - "inner": [ - "1476045778313053942", - "7088211501506636392" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-5780902958823199474", - "684672559108579835" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-479599555522051695", - "6277689784759994790" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-6174909374622547011", - "-2876420228592515736" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-5612139484668830099", - "-141685165274757211" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-9057284384873862529", - "-218923106050670804" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4381571242292214582", - "-7982158890774157783" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-2589693721356185105", - "47703702537737607" - ] - } - }, - { - "prechallenge": { - "inner": [ - "6933529253212730047", - "-453811945482877525" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-7749055720453093542", - "-3329383869546507530" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4722006655881085948", - "-2216518060947545516" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4147613965780683501", - "1618424163113385480" - ] - } - }, - { - "prechallenge": { - "inner": [ - "5242665654050011345", - "1974270862881305038" - ] - } - } - ] - ] - }, - "proof_state": { - "deferred_values": { - "branch_data": { - "domain_log2": "\u0010", - "proofs_verified": [ - "N2" - ] - }, - "bulletproof_challenges": [ - { - "prechallenge": { - "inner": [ - "-5948286762976073031", - "3913620533516803836" - ] - } - }, - { - "prechallenge": { - "inner": [ - "6451156200849374208", - "-7149474906925249401" - ] - } - }, - { - "prechallenge": { - "inner": [ - "2545802753099625135", - "-3046285123411643010" - ] - } - }, - { - "prechallenge": { - "inner": [ - "1476045778313053942", - "7088211501506636392" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-5780902958823199474", - "684672559108579835" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-479599555522051695", - "6277689784759994790" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-6174909374622547011", - "-2876420228592515736" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-5612139484668830099", - "-141685165274757211" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-9057284384873862529", - "-218923106050670804" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4381571242292214582", - "-7982158890774157783" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-2589693721356185105", - "47703702537737607" - ] - } - }, - { - "prechallenge": { - "inner": [ - "6933529253212730047", - "-453811945482877525" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-7749055720453093542", - "-3329383869546507530" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4722006655881085948", - "-2216518060947545516" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4147613965780683501", - "1618424163113385480" - ] - } - }, - { - "prechallenge": { - "inner": [ - "5242665654050011345", - "1974270862881305038" - ] - } - } - ], - "plonk": { - "alpha": { - "inner": [ - "621834770194220300", - "-4327941673388439925" - ] - }, - "beta": [ - "8902445049614368905", - "-5479804816757020655" - ], - "feature_flags": { - "foreign_field_add": false, - "foreign_field_mul": false, - "lookup": false, - "range_check0": false, - "range_check1": false, - "rot": false, - "runtime_tables": false, - "xor": false - }, - "gamma": [ - "8345091427968288705", - "8258453988658898844" - ], - "joint_combiner": null, - "zeta": { - "inner": [ - "746390447645740837", - "-5643124118675291918" - ] - } - } - }, - "messages_for_next_wrap_proof": { - "challenge_polynomial_commitment": [ - "0x0FD332BC7DFD613056419FDB0559B4534048252D441179C1E79BF01549549962", - "0x160504505EA5EB041D033936E7B1A6553A163C7CE2E6B1C74FA2C1F78552D7AC" - ], - "old_bulletproof_challenges": [ - [ - { - "prechallenge": { - "inner": [ - "3711726721677311855", - "8761545649494038627" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-2505642933990422633", - "-2487422680924118585" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4113786261177851957", - "566815174034496733" - ] - } - }, - { - "prechallenge": { - "inner": [ - "5993263758714673683", - "-6259514542256722053" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-2117686120277866613", - "-550460597093069586" - ] - } - }, - { - "prechallenge": { - "inner": [ - "2143052809542605959", - "5556201566125368992" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-7172698754141626607", - "-6773867482688065048" - ] - } - }, - { - "prechallenge": { - "inner": [ - "6641554769559773261", - "6524714810323564443" - ] - } - }, - { - "prechallenge": { - "inner": [ - "2504198601910020936", - "-6446749539458519571" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-8068243033437084562", - "-4483743298391994862" - ] - } - }, - { - "prechallenge": { - "inner": [ - "4919588161765452745", - "-7115468514000056859" - ] - } - }, - { - "prechallenge": { - "inner": [ - "4798728907681213006", - "-7518434295045703748" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-7365006775264907657", - "-1160122940338191724" - ] - } - }, - { - "prechallenge": { - "inner": [ - "5439700123898059092", - "-7701257753186809792" - ] - } - }, - { - "prechallenge": { - "inner": [ - "3229587527204030387", - "6616313680930013725" - ] - } - } - ], - [ - { - "prechallenge": { - "inner": [ - "3711726721677311855", - "8761545649494038627" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-2505642933990422633", - "-2487422680924118585" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-4113786261177851957", - "566815174034496733" - ] - } - }, - { - "prechallenge": { - "inner": [ - "5993263758714673683", - "-6259514542256722053" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-2117686120277866613", - "-550460597093069586" - ] - } - }, - { - "prechallenge": { - "inner": [ - "2143052809542605959", - "5556201566125368992" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-7172698754141626607", - "-6773867482688065048" - ] - } - }, - { - "prechallenge": { - "inner": [ - "6641554769559773261", - "6524714810323564443" - ] - } - }, - { - "prechallenge": { - "inner": [ - "2504198601910020936", - "-6446749539458519571" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-8068243033437084562", - "-4483743298391994862" - ] - } - }, - { - "prechallenge": { - "inner": [ - "4919588161765452745", - "-7115468514000056859" - ] - } - }, - { - "prechallenge": { - "inner": [ - "4798728907681213006", - "-7518434295045703748" - ] - } - }, - { - "prechallenge": { - "inner": [ - "-7365006775264907657", - "-1160122940338191724" - ] - } - }, - { - "prechallenge": { - "inner": [ - "5439700123898059092", - "-7701257753186809792" - ] - } - }, - { - "prechallenge": { - "inner": [ - "3229587527204030387", - "6616313680930013725" - ] - } - } - ] - ] - }, - "sponge_digest_before_evaluations": [ - "0", - "0", - "0", - "0" - ] - } - } -} diff --git a/verifier_circuit/test_data/srs.json b/verifier_circuit/test_data/srs.json deleted file mode 100644 index 2942e066..00000000 --- a/verifier_circuit/test_data/srs.json +++ /dev/null @@ -1 +0,0 @@ -{"g":[["24533576165769248459550833334830854594262873459712423377895708212271843679280","1491943283321085992458304042389285332496706344738505795532548822057073739620"],["20248146512599912417556343851220342431761980972336053494458722265470095125061","18128615478832575940478255610225046691543177802495990406537429713043702723756"],["18107947157925764202051391685228007589531889639743131326622536430866095089635","13578035012787699516467004948292231653645431592194636386701527490885174472706"],["17111595372684340839772513109428347694980722721875812988931744125872594943025","12508379784794711622899939297031979174413337232873239192126707183075920760034"],["13941685164627503169877639671899904555068173193127089815581971032238719673362","17701212725507956202025830192145448053104806563239455165073894177713079518504"],["20033527062582379521784272117578072130563079067491475014362173758664485244199","2573466250445952588979060225184574811872631293502987616334020894413509571270"],["13715928149935927184524891179865756305143196423964951100225771917796169868042","21015648768068261173992786217657907971456027179668228633027916689175360962193"],["11341721305527566535561085657466036363317984053128174125757521507362807193722","8449783366804134023499307436141027571533394140518655002571350683971629217391"],["7051191780740023218520485366522896780128062348439923119306378547734033189813","17753316378060084043890945215868474376175814463356154372240937476110890010059"],["829016496433509479024047380649410508942638387921840091995101669982788685638","28352699298141211598017006038074461527290852715902628471878263042193323103124"],["2795232513750520101555222138565682359817848717918772626806340896938079649107","10314605158152329062946796508026232023114297066191050138648287112904121016504"],["19535939026687317054270427971507129543410180847414338771340637139403725368175","23482975177602126512572462833453699027793069724678383998523017386110558630623"],["97945959875886603432061981309782130203735908160737593269929591234620425875","2503374491697025912857933362442901821545100729699613732294154492022714637943"],["2821807757597752582494555336826934384464416356778066422979055894099281995164","25682958927845613003516648632755333570732575489688843239602198926591545980659"],["27912814591651687875457773261686412919670080502602935685017381108491074460807","14998105671968965555236187978312147764448986325678375146170906719146743483814"],["865173617330680153318141656258600373518086045308648703504618519567952986808","9053453856626833712709171453353407440289082637022866643466780578081210058323"],["25315101956694961604488641649268176270157528825208766901135247458620814722209","6474163402446363507466945070977684733365269006520687234823740144469036322820"],["27249013872701023821507239350807803701941303020484628286017577341252442454929","515511595382896697418155919629539956415583214962668517362960776885150733585"],["18064205724297849912802254523701487003548453043914060089998883389856558513265","3929889955150709035700467940099965149533124336333440146582381192483964175436"],["9222210346636239238005546553972546758499994639881550309090840756240333337819","25273662544175690566340462273450920321434996220229180657555723205856817301353"],["1080320033464746277388692734969858130047889347715061040032573430756610345257","60940574334843554822588132681874552183051842710330553958465699024735428684"],["13937438796205086532530495323460960379934729248191412461433793609277740691742","22740622251309138128026391832954320919176021530537749012053342916841898553949"],["23112177106404310787723133003933128500028401393150361658775577951507289939097","12957172516080702653142202600698232958760035867649439717574568160387132678544"],["112047486691304941477849570129866050445616198395712931978330533011130405874","20093766974149269490495531779903840315184837827993844861458929282542117347768"],["1486439411616428095836501378101829805546151346240255782534079179625331337074","24934968750548010125621352041353151497891869412058899285272668916070078414465"],["27630664920568348552834319588528085253611033704114635452481064751268391370207","21878772408790847843761874489005073594991080491227444754307158244094770331016"],["4031671009799475190426938641474230946836638120682773209864550027290300378413","1037976620833155158808279859883654677720219131476081824599869591825509748538"],["20579643504763174548493052156402808829938691679979602895393914737240212451044","15187991941658402067894966001501829976762899750890573988989850141925691909926"],["15395236989931236648619088144093345949792014445201902158087993289089583529729","18102687689268592098928639030750405475454121959365690985092420121342407976054"],["6832074082624889661596439866435642764796899298991509120281877496419803220711","28827878367784054023824859681280833066350315780950546390325465240592105708829"],["13109863753917920065989342531045898055888023452468207433465619274299172390032","27082018947554918692304784566939082276782193943250033116302894261309655484281"],["28842756186177372371081351713093676204088755045701714707116169884800278566254","2441491819734707244654063693943312669091181740949053643455218345486606999297"],["22834410590130822830788859811271549327026851979260918503710329861798731902955","15033425230936904745425688805892178022232011744195595951082101026248814693495"],["27823195860372384416314181635708018362154150148844097822032183793824061504858","16746322286463277941358351216998716034412542743550207407659282237952329515532"],["8660550545139696400419155857273923528605529851285843145824935968611445302957","11269397590417253785703438211717766725075174452502391055936004030034048367419"],["22025891556249649689908673391327354645040389319308362830291073311863320103122","5523925132631527119731481768107595417178790054399590984199350197177404348513"],["19557739898648760753206303823818932768868462179937336945678360327003807894450","26428284678169864891963765234602781978757461066037316431669206509881873600361"],["1734959530068362979275272468456501338489341616766264589617630772015402723754","1867051970425305003144365243747380252208874981731692742739617977262533889219"],["26284478702356061281038486216210563781218375000678783835686337123218929485093","15923855605353410322974849392635412927496589050286865096454613240830316506325"],["11829335039825835400580909407082542951932492746392935471868109979166395191171","4581898642829444141355809192653108896673012212143591252117699637487155476018"],["8564288969020124099307281610648355255454553770055335214722992752353508707943","26069150246415585958394942334517576313447508960308736277751628638019277391865"],["26654007981337087941613817033827259290377465568627188573323027383543394125425","19748169961649597048005696677285098846938545960711882298960721165421579920963"],["25410874264415696075037638228181790100521832951210918350099591328939409389434","9947772887339639821657751442914044296679274604184950906169861786250463512141"],["21148506868056829499890717463191676922208399593221095679728570210012170952501","26934153566530582164379619556972658720020533809809833172640045155502061174920"],["2675771455590903167277126165024002745386254899807146732746747742182015986418","831691350565476552675024754107141456065931247301747565110741381574363516107"],["5195023342160153370166582799702666943754943917024506829851732611250039752387","25811751098794375247273740163486867270809539479158272765459121742488634329132"],["28536880570690243070399307003176447808555531815962423762034921110779135075386","11801795462469043054482252316866125408428513901567824356247386640832929277731"],["18811057006859193700802162043768216562658761199111643574271659470938839966374","10854930785605050435472798549812612017705884675784532663836962678048446993890"],["28281894251791371239580388091706355488785700028366596081267982576575276207092","8163541365398634761576811245680424592314568424859045418061614579317402495176"],["13405943588522894698401080437676891465268766576193828794533720257882262082346","28380524517566395362461924458365148085680586823559503371732692548317105626129"],["5095422045654519320793412812450666396859525959720623910261844301915623920945","25360879479027629587624907423476300399823240837426168640346432099104858733142"],["24124587711844293225719661503733765237952998715519114789384529787304587442415","14388003783881758606432008639892446335142473794977814325206463421311677418167"],["1063970820023742732621330070189117717511789480956784019580687743996256252564","25109239429781357477018680078433291888581243700017264195610319120419110638543"],["26030808257047920788779545246149765070386594777346811281495753005929910835396","14800922899716272006235696310816369896855680096768732309646281499648927500947"],["17610743891662463067670131689886392507046751428299219616300395356883270189308","27132547184835501185519912109503355165385423670717304800752150775772297217186"],["27068480532579042517987008911184158844396734379433124624265833293456949236450","27149512099642904574328295820211183566808175878108404697372494061099333111239"],["15404380146879820551932388410144773664672730344914248408163252592772305152920","2138639686707082560150881801907612174049725964886670982854316839060573966529"],["22918610955521427084812662414141434640327056070007913600585230809510483702537","24875969880834408746617181609975325647085941020361879612838411568438730615175"],["17722314704158450132585616403578578045972478301248912684150996082670205515020","23561269853786162941833086713020160811011944163409320099333127165493001299809"],["9174493229734266548483786104167425077325744582004428122212059173272443998210","14774715126573454986831172218668772905950008912597099286050445761420885204940"],["19149927329001456422769991436918526235321176161262733741721597131712555406573","16731404344878016671929365079880784981253675902888239832023859030080957078364"],["7718480568789942306253232614378760059923020427949952444448997162016392013997","27290969767394251466361726818493075116847243146604075085306680548956797285289"],["24582244778131267904308584792907912782506101253409504489800744608899308078330","2588137614093248956162223115735729681493225612880828534588621080221259136644"],["2585315896900636749603992466736226312329979107445656855572657143392613541372","10564025491796212893771369167188850025631701973374535770021657944961579696238"],["3866457502604165732676633597405205962868815542782584810207730839735737148649","491335531391710347098595075841253166480861905403551001540709074616913236893"],["7328904669476670518709662434836633556947883732023442048537120746175420217608","16254691899510692892119712871794947377466740524701342960884431207589231160560"],["20509969436538100478436290906864116645555678765465597989570485283704257399173","25690556221278695842105633856704355652278127075178721789894372397081452493477"],["21848926454867890950224081082327355580129701927303730538204827599075847236811","4834931087098123514242777921748777913579802278056869154297637964953657453079"],["7645328464484889021213804784428743044296902012907038022464659095932779695744","27379680545651491022984846592153894782064907178155442802006586042333836934608"],["1558289409802062070653509233694021479017683485263246399432272617859004403525","3266550476159109077830089007710638995797473560473727956254829748428644086999"],["24101833936759817668274426034891646050548942981833497628789470874450026864815","4411194273168119452087570407774311421765231965700222326248793077934909255450"],["23904128180000573019529784160786899756918649357009105221309966756862482659468","5949255575182529970820207297250761098207102499826593521603560914162878731555"],["17648653628667747195623709269657232756191399079690914503317238326530064552658","28573176863529321535777999377977971862169028169757247527094353518040850065879"],["9156061049559882670055615169562052232013665469036883629363467669453139085342","5297985729241229794481669531467093231263360374523768153810917617949135037195"],["5016830877394837767130907073089001653135911191634199606118702274764818339920","1638518120201986260288759810468074628976683249294183922153984325158382231649"],["5951197160540270737822920689049817614206138177227193432141775518519711931226","5921970838300114900981141525340862975224605047151506959753181689295089124900"],["17887437535861073377466777970182079732038492655812747907880401287119249467365","1171947576200441942688558754160701412983897462289267054987059852473439128393"],["27838774007951193010225053411852992887263370984272034894687571140312416072234","16932836174278503204218024129555919534535129139224563956462831711980952142537"],["10940234483121847023980407108040405339518143009038311315120369928699756614717","7101875853401661557436247540542920363883079187373701154627070964310202444577"],["27355525639615040227697217447272364522993979100512696108006659634942005411469","5381957580575813542360559542613435977443621990280543889873596781718681586423"],["21574826227797749101178152657507077663167886226252534699520548149209298965301","22648890414174866084470817232778124107058683253888950204019818634127274888644"],["7266921703735699455063271782686341766155079097726033568954356373043030025491","15193308016964379119141641030104643104083186304569933968382881193669373950472"],["24203265859211895177064886218584396821505291107120822528803980706708427860802","7301862310214552492486679667417997221454725422468361002916569491706346260779"],["20396431751615811988848141627362719052629466384255935079884508447237719128350","9704839933704458336876284071439886428039074298644551543388550190620760458920"],["21672964630726553968082723660961297642046623387505341630301026325863693293865","18354317437691349108862030694843535446585901808668201628096131531422329545757"],["5048183367957559410436743434993556763739705531805615246217852214817220162500","9644262631397162846839942021377216355284354511034741291636241175278447923928"],["4527891129127866668264980410220956006484968495350711580927480225381000816844","9438925637206288663177731049984656870479881742798481400879052099509816718973"],["19360258270125567716906610824416069558317733225039382285183756804910379232539","7776133243743630784381444996276030923610949751808225618460219941234466292953"],["5004132681452837520418839866183232417984965147712860030600761075701584118691","19598342374542270908792023999266079124873751557686588463735715074869173692619"],["207279149060369264335222487679860251364887471084294514135100102383502499489","20110805585243809843219439779340555487321946630332254425174515776259927901968"],["15832224103353138062890918053544905177232664848490424223580599597730212289329","16625425023187767322795316941837463266689251573688544660248914173520989635344"],["12123925399983426748537270480471300343840571726641082815088541690897935504706","2771403898096748519848951469806781331390309455417578085962122323698365596706"],["229091106253305955914068991605194225511123059864945149573721152974176390967","7832285339025918543010260351144739149143464759297772529056978539433730122307"],["19035632987829377282792609660747027327444118743042821777263819904829659507327","17017134290770161551482038597263564972581538954937100481325091610021226200288"],["1040262500512345373494139657053638732431196294318986361627748288689164540385","9610462275704530897023551650860032387751580086857689682325493474416067942796"],["28937770493438308967634276675474367108842945261223181300845068692209492441007","20800287386113597093346042229893627907356641877851351938374173053642319565495"],["16193277120657772320355950607744751320037662249654405590542478878417347935727","12129158619027298109389746187015765508053161873203174567752761389322259434287"],["19207110996528814982583725169057231508768123987918069922319043756701766765585","19708775988727074203313286243566204615480872322767109096436388868308879877059"],["22926786899343135886781222446031209425039088559279800453111572070876620990168","19165714207274803473323456861013272980303149105181918143649335744686949619717"],["24480402629291023172097799590378994207639672663875133392423993667091180299842","5102490440673536717928843282635562306473734073453299290235515613884620316759"],["9580549803328791554139478984693822375615220541008480948422930285854857725820","13313625766831878117095825436218082602126060942361380079834128253379445915653"],["4647960397680045028102275270862953671085909959806737061133463697004990652435","7743428067485180916373052067203955427618347032475039549519353814341551005223"],["17611995848470666776691124548381167896029514989646882397559970919147210465996","24243098234364949001113885807352110888525877252377438352439798474714949371398"],["23128167284093441375388261109467260051822921916807496344430896875760510756799","11565864736018938109289745294205111132751019314262002105701628619107927747366"],["7833173832212308982100562248862923482402878335178814061327974187829968223473","15844284382387732739385247216024304782931159369259897197597712155421189367404"],["12909051136637808515945718970200843949650631489397319136968070403675034706803","20708342566523916653636220214355621271075791723713832250515276271181611107944"],["22712401745419909697211336533033489145790211857423669803852210186117737909002","27728606010683600645611997421873124063440671915195874993910953372043984199529"],["25663342458716400651912533617707675541477276689354832466442843875595597935698","5237142868918832135520317201228669412410442859498889007557201967564373004161"],["8284130212725335356678094914431440758551564950135343503872790300145843052784","12400925027475586224053676396347066023993965086806812552490392803256331210679"],["11604612127607620071786198621270596233705414810418748736250246445728997178506","18965813477208491026203163436963759670280232002196807371178145335796251684833"],["24068219589400487370306384965240561486225577209569677494514809684761854071908","5530102810318996498360938067905918567181598298995175246090792904629470976057"],["4192212173683526727346254521194604966266432315890257359292901676362235959979","7280748681634310599438667374636613913938664994794839913811196988739000921409"],["16699357934931805415482341718823345525495436233361326582957203092333095722212","22071623463661053399006867259982191679637459694334519839399451923818303332252"],["20840349640297668724206518570517697359251017449435749172511762583490773682389","25130423910937747153349690482082131796050892774547183151816405707070932304800"],["24095595649454418029610311102628231016344648737726469130426638556876941425915","11415295911695901705938877825705182400552929869867084381033431167625158699119"],["1418089117774371930998351360467825480850862291385996180142867074394104716404","10056792183926376393788833064968618107016847771362591626649470156755478290015"],["14623790332667079559386145699291453361479435540393864976627385081893460429315","12552617283268418166487635042869470555100990132640715790787296338348013662399"],["28549564698327254980788493570294136441694107009644046580619631676092409746416","23824800058176777413133196421914971768137778972379871991989874844149863269130"],["28175107008614580655524052467657857499513490781742268825386434914619311722540","12346626643369870706027912109348160604257126061502556835115835687689589222799"],["14536364774758983040476525241062798380586923053725539435785087425070732092837","986577143145496098266679833827302544694014133920149671352723073742019880844"],["6849296119316033100962863974441546175898116515956360622473593293083396692560","23562077817090688075870602200355062354582654270469357198890241528520462233594"],["10616485952338328949878080491135275142722118122588075070288647296764038489139","9929783066862820275561291740036393337088535341578230724685642906004761372680"],["2192092575842120364381331740193918758657908675665367240731841220128330843563","15744344052519547131238514642637480741555060427375988293252365199583271368846"],["8058707071291640205141703923383982085974381141692291075958909895875282515335","932667288280717048228094999916658229080722683173169333062553722049040442119"],["14751673168406575843367538328816077687303611579777911806266683839787185404145","17174705818440703492967951315673887033200901375893945747014668723934172750848"],["9892845519136257633700194081915866500414119289530393065035484923354791879129","17954043303772637468965529854290054058315514049555531808350391288945844702367"],["3154611158859479779807871413185704541634906634696583488875705297463972741414","10954227860690273646453651855811871414626318272615249535267827139234335927864"],["9843265620603102160844075730923542755343588445529564940479001996294773360003","8730350019567283160355899494319683288713560845305292327826502597202720277735"],["21150968874292341723233595677527884161681530107395768631347262503210729863697","17872003887473482940934941695734358658161529426404542842740637861108279801400"],["24561737736781818173300234940792405542062494276906355768829160218906620911046","6886703849451745482195460971410292460816124313409187241763603049574400680198"],["5804412707526253600028100403870484179171891500721942093789487835891664179668","26473095362871814649886271085712242248984187050844143671195767881462317347477"],["11083650232693089808473827173676419612576965541330386267263227846801318736784","15490760366994407087184124344981623208905243309408631196947024841626567345593"],["23457864415468717055213574138678864299773807854512457448075867815145398186624","14701622307750034584228071802551954256018999377611801699469860901573982251177"],["27452253486600760065432938403939000601518081283833956165622067102074085060680","8184236229412115576296541101954889951967177049406439417843237673808335483774"],["22908503188398159252976904277638705691769062611471673773341095473156809447014","6775300463593505261727031253358794883812223281744823873815313055098416708000"],["223668062074699656440512899078839875202362983138186598818895312052569076883","28454635044472784621531874284334369482379775316746717099839587286837463101733"],["4874451407110867082615450515159688094838268987875673780303417505501422571464","20680392551260469833674978664275854427468233897784240499685234411236478716629"],["7346001735592975699823923281608652817241275779325349283547420858353081607466","27885651457314465642822592637780523130700205637241727478603014029340224518639"],["15043759634568185086707509139788615744319117374762449766110210028562862600521","5535795421153468321005257614380947797494150320766395097022189678687166837009"],["12963542832591134772999037704223216741111920949605578014295822531378656106712","23481295619772858865307657916770247782359004487090239294302291313044990574639"],["24434079520876605280137246941789423424585249952563716208156982203415960227407","26759545470162306258208882301355571706646630244444342600013285647505006568018"],["20927369303788955428988007528610692462871427274688795417681851097151418559774","5113425918605113147892198295600754836978834590213695955521341404061550870903"],["13772749015318864309757150230040289828754115396175626253824829585004330536051","14726714344129675575561625177733556756752341705337237025894985208535403968789"],["4841049231583916986682949707060308279738161769452648964387980771493923090882","17860274865833617950830946088882542107693923093196717778092377879577167134898"],["7069952164386890294632645245323480699005639487534588167235134007346567860993","11974323782664533328398434718276990101004456732734497008368193639134711473241"],["10017586010442788716805684659904950947618836218704467745685030680199923789930","10131397060503172856182383876430739515269266883092620311814150477502786007234"],["25172154722301730023880987978256971975817329264073561953184355518999865554256","22648596604350221319784804572318214417160829063605089716412526041429360669145"],["21787119717483955478769543467817335554647256394791496437096111135371209569716","3891663052261266557330448981483699603973691490042964905207471993759092504766"],["23346981323244975686531032557649663132449762719402041503745009789547929049231","23685659138259967851960514842272756699776645430618181879160232715928076435045"],["4434649354692323864759547107622782100456358344612333622919398898941073096600","8390004318765780189141484484865741891922932087198639946457781825690427493205"],["28243189461413943235399363637730921702657645604438782139121237710319309532257","21118696022018093030567836697240122256284680055113988766508848719587147430789"],["4039175980944053447703842302788348726705005805463646517991891559048476575203","11209209853669910344837552638472536369002550237497989818082824334086739791494"],["523466164986972870289630676025907486272295172383591798002385683311227833697","20643502798799519674217539447834324155521280539950486707105132159174060930514"],["2586782298116435843002391130713827041570046144025235630795951032190882015081","3330078257925585794527752904673291177591587404720667527236481595911878573229"],["13688866320184734232880567854966056815107857689060737658942293140019228404629","17141007856232031481479255657531684624029065068688586835827323169850008720480"],["23024688229825367691190135454648506621537264242897976063604983513740366475090","4537819742505233602636763958056516392467556715841824894250757726883321325643"],["6051165061882337825523163829303616595541280451980663264238972392603326921623","27218145369368654084501930530202036631827586810344327356723926520310015024586"],["17536412060566995117332201314540476439237399552703056921810936364388394492721","2860328008510432503233663546575951520739715743294892981924347348583813552334"],["27478209223560777875974444283134798828285742380298185618640015551077633637772","13258927606461519874191372168552433302474990030213942865900466893305286932321"],["28249297341367701932225258711626640277184265839265407072198754807088566169936","27210608721821503161395789714687097813805375360459395011956383573356264868902"],["12396420429289253617771565574088281077140786141059155685432935520290392712850","27927671495439966934065025552274352006739367957059682067788132232534539520257"],["24797430874256329982740556368927235570042773630923463813365760150753830638505","21224233166502852654670966169320315531301860881643957564374991730979687398994"],["19254773081932274371919720283141104398213718443902825428263083273879051547252","20570243626025954582032344696517808763447490276527223272641407766929236488987"],["8351221499969806929048467257355437285504401344674210912375911232346894101363","15524561321042589694460045667815663268897896792481856161864468450009441323578"],["3655852891095663014381915173927968604592132998997853419617271361367138876471","3565612661759162538311575729351612323805613952933311371396139763756040962789"],["14177293497134495158564384662801636761382629393843366273637959185275299697789","6684177272468728714099721896771057154082699315310605293129183955956100447302"],["20977991490926231999019208277518126196805716096702425985529462661098631304307","24636515963266553819510014206618861189465017967056902286561842397508885935521"],["23221231151312437853871379348541918015954946613018709504727196887713073631546","20499877729712667205454982580554316429854182983331769509201325922658676619727"],["2432359843282144545416392224957705313857973086039631445153039125525745196081","11531160344350605051220403539724946578959001037139309317162587714140007771212"],["7091064180184601932277953139309248254727159639520756813664383056355529242733","7136490156468003762180816049190071172699035175229505779913072061553661155118"],["17573366574369906543532293519601551624822699736828243679555629239313013431228","15431960106539047394640527450686861700351463458918148692321408704256745954451"],["5403384370755829477914015240016252804079187009574175760357671939514138657713","20293670746094352334383692146937682370110761064069055108157430179247594632726"],["954860931007098892962543785534459379220180732002800441736922802844016354963","26543861075980494187237315911295593711595651224005897963463615605719622357543"],["14377352902383504991968523574935912147374744131338429938363554114483428097869","18789032065124982795002737381628891790408216613120078896439912819879169940647"],["16379896075125680451498430363404200408781648385034098921995391073342233868453","28034179744120293602200099473165515887168557687940542303978230093781400871985"],["28023611748734109968865920870165460758029802625641420872911494916737907733979","27155464708948443175759124684194591822846317876687242903255318064427461629638"],["25366134805071301861025565094313435060342829989967545005707126305402032604736","9156629002430688569267714382560289549213689653479017865557591407494078272722"],["19959100130027826217761604508667261107056121579436787308474661446027168885356","22078572890972314545018552071783079786428220561810452833147321570971046652696"],["16823511632182500064091705907995037428447673453010490404105003000202300806627","21287280284201573483623106792354371995269649175683954094393362454157473083147"],["1213249323623010842912558321116352154634895259834073438126573731662051096490","11332376568618693720009261533783182693725177795720857076241649016626466067704"],["27264455760832138257126475774384374460516224637144018856555068194109394428543","27914496907945310210798788097949218322639132881669809927083712247985488620399"],["19129642945806400679271526810464702337533612794740047473944648039027777153440","26889641633384550135686151414278829654741877758368146823627978845114955673122"],["18048359454928348968268960842005823926192895716327037869695688545118599649030","22121816107285855964364132829259046950253539359058532059784393543121349802485"],["23650287488019728601754359659260151020666515575368346362116770613654763602869","10382284278212173408792091060971675275482793436058978763730878586722652336831"],["9501193973537862853492610042376866714798369583521491302207747404900973116088","26234286697425675011655385049012468279263875161344792516592806122220321094649"],["4525407787977383802360136925934596820132744496819453334832798194983591752435","15582944917720903963258103844093444827726179911628882763236656699231870130177"],["12317874920675245167317319455916114468607249678332395463393176333024799507383","21272167559054425810962492559604590306268564688207157132535200656803385046727"],["23975634729389268022073079172352929456045550189810979507580193655150735260726","28509421152387846675169052057063981626481500327088113828031086764227750276830"],["19686751471660269728374796027751510833743144853271646259682349181647249714770","5745276132945151845241373570745981093215603712978255608634959476912612949583"],["25762999119487290245328565175035347073411569270940738703793754439000567787957","3232024093217432656107081794637189220509331312409997337517573939218664142192"],["19836511748396764195980648846490030160968010031058326251688114804841908723575","18306477365156068477864316292276677882106236383438060069984951659533259020805"],["1144671066239986146783544108871440478455459520732590885112208361381213242184","3086114123740073234083285865751732749964653945510589280508261397361853307088"],["24326235488636182477459574754217554975594616584791750300476573347765610533139","13903095400897074906356882694592481324478681148704966684237140699009802566625"],["25819823560256916486436250135934746497198037337098187178257888624837057104335","12106951767246167473025168007256402627765153419794953120882758869724230662639"],["15370269624849680286142114151725532508740542258157009436422019556370304265529","10088080265760792799756064352513997661204369347595794259596192964323788372170"],["1699711446197844767787549134501798113448542075598199592537972699275656802063","14861449236914401501837314985577502401176906646356442767817748294683499793084"],["4552810370007415836178892606191645467137630303811215953050394868528620265823","3508428138105993839876002880889030486391979947482192884642280375980980393969"],["10592833074828013459893619010463719044529694708997168550135889908161123718516","7012770511758633264972685315825967093117592333622635485851434649512811516729"],["19708859834555610699536388659868460311136335866060609494190935339022408958878","4741530216865632296505704532047459334459984630313617888814344901812136281806"],["12237986528798326916961291354713347435046070103411555950504068399746879221022","14599847575213943755568451278678893946725870131627289294240987075397532219429"],["194350114804082844306339998884371528999677114122776710630481229584006106842","25266861856872073468938170457381939054831211940032451113117105508440794043181"],["5364979592183522080131668946044717100259215574589427897686405426027048929221","4264329541834832553296813908060109083655089398739213146254529958971975720385"],["6043881027288252982706884773328883774118553768201635076784090765253625457639","5350648815586604151230810269348728536878618988077296322602671499393742932737"],["3163243014363370168647303895046931538851635920041532817877386237335468611758","25797730838605083664187326093830297301773107574752927842853508571618622175208"],["6853027220668199531093556702599908853515284924822066082101807863256502852986","11028724889323850896071092956355445815837781711257498445657714375406693114203"],["8986675537198260705915899697175024419423530543061620105115731244088805890050","26671828788771363746869806342997635093367176264591868612949629469804291356272"],["7430047255976722354719279745419729107580338224531122417710400267104245798773","6718160337002097276936137959945213678987091719471844271115874840600239688537"],["26775654407700290197958220590349416150938399276932973507012776786790867397172","1457292709849385971064573452013369986540955363261500302600411685868901714627"],["3575129284959286366225155667478991443211143938396333705964849736700287074661","17111734457536914622109431190774446008817939944347738633012447602801289981367"],["894607782111052042881443041930413248608357307934988230302295387553836595645","10407823955546197582828610139288213818069297848476581211606941458157513894014"],["2784800759929956214938255288681487696761555698086621992796984707880413687740","870933078353861329131584779422301820171405636654237293470453458051670750620"],["25406294833888110440010026725802014486946235957831804931831949823100095658188","10485314863814102919289741600154819407516743488548372658772048977700325630368"],["7790666595750982828792776730808609272743703510764720968554097689533985755922","26327981018338016226869015991022304203299599416825279305302149524702241147786"],["18676975866710749243625248662216874872156940992888370791326820831762862730721","2206217897760774223117947849870184093486185087709602807496106531113139774636"],["28085857758559473991789471933638066813158878357665816779101071785911329098604","26568000713184782309452930556243064213984578079843830853944237145561249495827"],["11096326667813440690893564702454335255455281268050991605779315495785457182598","8134621512991582240266819045102897245219033926261777659962555684581704915621"],["17209719690311577162274559249356484721634913952044990394408895819757536462861","13765030604431001852692995597727964572938667603301823444694466580882912122286"],["23919896752108524689695895143241875775990550252111876669793722612195757920088","19954608472645900997298809764973270074981706906479859526051913345042895911174"],["8017028110688330690768627237867050007418941753292000366048979153461006490261","17724702381023682279398534617397916345448115557483524899000954553945937311444"],["776658320171560007074724245128368289565541988845305665346311803758819074111","17856773295906609304847932902506589553034844562573392320870789559174323503139"],["5563027179034701213242207114907034447313526064939326913009599327043472831106","23492753030861465883636280237772441763388626671109965097634130688185483373500"],["14948776481963393693975941446208331302568406494362037485909216049887073947727","2506247717808714112962228904987144445119832099332615458271917715371922062686"],["9892372542410923276644081954110410969833372222347590784437715512424088963470","23807212279354752188515471177538612602308704610573265277002098197790114012568"],["25037835098114683293293435100710025202442633170300604739593889104496926712830","21169202181342267435636549751801704203874303932529385280273107837537828152289"],["2497080088103814197061825679026605792347944902680872101695260229415725279609","17163521751689135604614103831022084998287255078806835949275823501497981709103"],["4372298685205010210202704197030162752162196721628572352447420667655255379592","12350985737863911484782821293876785727811034940435921047663657486273876228750"],["27374542885124350521357575568707011759064630678316188536457278392440274460012","24430835978161751070166934060029716169267737458012428199405196760012712264026"],["9385420622058892159933301082075207144948818919691163825771258907871008576191","3878629212171961751053347039802063059460451800960628260357801331989143540736"],["17955601752057955626642298292035061925938831643973016597481630719925806130921","6744037129698507262620120693338445612544298181451528032907295745280768176084"],["24339096163913000881549153148157926540014733318881024719543231891104157432653","20013290092868438846217525680121102387874263618453570276116853958583544205680"],["4663804920958532576947206367117674961122507888370779447437002375160632872305","12176102201466955538313124375792622916322319622786958630795481233990579713118"],["9278465505415541259470802862862834931225351231636113195249105343436176826314","19118023797032898971597774490313282135947291316676695312245392568734091239378"],["26480302135583176466536897182843912133877024715858890327052392153059785598985","12156739594997235386058685768295396215432103323423161198406515018975100319829"],["19011948707424616862014357841172829940433326556131131763877822269520297306362","19000507712051701967853587056604289842887331185258148708220294656683891870963"],["26410160932152593998294421227963149059788372407756085252206227953946322501441","7112966723983706955420783655198951212801304735366269343250785805989297986275"],["19460446636060854053169046919276754209764226043095040666283441517049451916299","1851237440360193987730013007122874963850132063678537908292987931919619263262"],["21633847755560793008549562421158157289112360650164391206180468121815698578000","20780020119650438780071922366840601106223447739703010820208436349747030396994"],["9739867510632928794872969790533952382741280988967017404241620272420987248133","3455869748948276997414985516881772628278282917667720456255723122688546651093"],["22224385188134818198470718044031547372832045702544543291981845477405109392523","3615764358784670284511893033131981759279766669543243386864624045265808544756"],["6451957542476412707978417843552470520302108684288892245779270802089214855323","4581543387370138935895796591470739442578044070441022409990051225333034949890"],["8393899805677303713256422279994235066511418590369669178522703002805057965407","17616415438835802717920882316582106067465539641916948915266981022437245043608"],["22531158452542001050678548390369598134458459434620403020758590325304814056184","23222620901732020503379142567184308424109718553650156113354997734123021391212"],["28751856456180815137077288058891979744262209312416568613596044320423801710643","12489288332636776049285979173315688027847719865035181897471165801456415469953"],["26941729768300892305267528776587842760471609912989285985749945171476785098538","7693891221672631339015663083180065963462125793658781464300384056363534521134"],["18373776572572431112215098991036678432380079626303383653822041929024197361752","2806615662767208800169659776453008740854303847194474922048136848617675999202"],["14585625455283507629325813678035194429003796509758969375089830449913308857015","1002404206265926424970101947909475795895140132923748767848648712746269180964"],["17275824910267418679444821019842169536363599603383692098209020986534427135282","1736903731174378938676274936135525183045961709434605553926242691851494572169"],["18017561006393818295831646136750065559351953612462799829207267301867701607609","27158274091659355506908945364304537301452649567354600133385481323841119852419"],["24300635144395799668324596570479494347296836198114630379172570361145914633840","3312940248822998020858780147109783025746846643400699645395289795412705828745"],["6202525440164690264024324664288955417401849092099456068618916510096057899328","18086658995026441239197987897790613993038383037127790271975747008706630435543"],["8927444701079777633294356867842685155030179209121488881563249621003938630456","18197504017895534479384703268740604331409508313715719964251256169142335513670"],["2101489915231753718563477283262755958001342410850495870297946950700428326256","5080256346513108870057632699860974270625628870453842735737274991894641923728"],["4762957623162556914557464510340266713580893446387617684660611940840260621297","14703366960952641509787595837695171986028421977266348874029698179898667927439"],["639223926552809626886876030388374214684123534575907064932049819362878824530","20668927442996653769035161608650602867845540100305943160883172912989763978104"],["16737360046358393270769593801429983448906880789162116105348447250606908121147","15048645972429351638491027780837911649778628983277157669535253838572945237298"],["22443968483112427657319057443365038265907576180254833845082509353317769095367","11240506807976728000949109117026791226328353606230036737888374302043965539148"],["4756727375809667235777160336840945650228085867039366591888484861670551567592","11574344933878767210810399979040690485832381350451202550683786300499676629451"],["23275737538215384252307388356963522441733771154996035735338352539902472193744","15154655014685991696849162718923262067214612762882579264435834489729266026668"],["11838125670622755921593909061710466703266474108068369996044259771832196870063","25357476548039309292833968188676499583105918010781481344972630818400054571428"],["15260040788345879299076254045943664059900857278412013893695731860883739257956","3842906507070692661815316589343749302142694878484260233864339476676594604279"],["3685292111833423245110603881988148551204666739157185012637506164324740832980","7069364560806471081061804610301316270640461814431548496525188253238614743330"],["12559202058675650271170261752238261280599178870564494416411497115235072550952","26534280097134676912815055290087112179936135776489684218043666041997957966529"],["5022126904378264293597997669151831119985173449808400438625842325683018872480","24353818138261028795267258567483510227750739378111802590457584277801298362388"],["27136964277223427669816287996392211956592100223248859074727511521883409528446","17860743908019627139065729114791394248856432890680783248052028430275778588102"],["2954081034973939648365800098963739276416572888185210104203576006878158221092","508867368377286014918729663835760522316212702654261399854204346711289642572"],["11402264203810317467470858990551588987337481448033739535500443600608394848582","15256905602954847794457675762359641592088905647404277253497251374454852910412"],["19364231521016851329475514680183629769455333891480643492856992181766449004599","20631158843567279225185693504989831129710048658962307442978946616919517184577"],["11813769062458667679936137636651865770320473845946040132542482437659284957753","12408198655511816074110373125719717112603141612378928791711073254146400113248"],["27217339778386293699258195333693722172159780296394990399762468001307930060505","26444469344528469801956166163539327641119801678463117090519645032464776581310"],["18673187485247025520957778341100123299676812478759406858549295767249657856498","1965485209855172061143007071989255935808387055099691470094824030960541953060"],["25906168151058344260902056805516561724241843260330729762614252097362410481410","11162472037600825299492687618523124055474696781338430754003154848779342212020"],["11413066072350266903366277250829551660379730661568935374430758162352901280081","9977440708488765164736159504776152981642610256271127107008069033649815999187"],["2859555079188734452123201392371936321858935684573317536760130842881464617077","8869093476809932038027429617243169739626337294923680634088620109973000681253"],["15614172868663350871168973745098235164436851743205211137182627761286273799136","7410223066471297900655874551488851966341427235292396321613587589730172149329"],["20524285502599024065482178060659172804413165588444928049862136155312239697926","18471341102616951844316589157247784771479576493400552558668437772200292371485"],["842671741362233179246858244241658162642543547841087715368296773252754572712","8473789915869467527761611076912788507037651497195779942359249639892709474738"],["15394113778606557641439773100068742759169908929405821122340355936524604550741","12361268488331841203046748564894825247885278330552079462645765697383640253029"],["14889055136073678474863899371688941215799037053915584134131458277879128516221","14206025372223234086916475327460001717536125189910515223264217669900262881691"],["25831284587195116651915788223112770277019320617385170588837713020994691652245","12640147781521803240843844930031785321096305859057190814099290312892977335826"],["16329845307412903288859919492108153646936682654177604414583981250522993011563","19076733067203849460106145368142492144471453685224650284810006717153569471054"],["26725965159667129620280097741635590776030810443512486720187924627729993990686","9548184557562737877327439483547293008727837060292478962993488923889062472865"],["13483562763326041674358415955348889989467944086939459488539410746631341568152","6816924440206868706256383300069196245320740333139273523948083699525352803179"],["10045424709296763317613396594099911789090232348418874233340955041836020142088","7225017261310050158941833705635614965489411641408382053504461031583753780543"],["4371922060767865780289319017809438236370802392729646367404186838934391723800","4203778070463638345913402355050498659037173269578961227092435650276408279105"],["7636096851905481967513443706119588009023434444723722158050269780420782478024","16067479438746248901697611331341122924902583128368613530948587883612174449867"],["25763148529735584454385075927432366276343003588519239942162860998125116017583","732140252224696640815499448744449977869076142236446844814789265879333171734"],["26724640797997123875693501032356091941850631816395374590694561547639960838429","6442574708367262682413993809633870727229286650141941556665829529005788787785"],["4817158162369090425218832809856383220634637803464916757507647225710685671636","27203378637980829110064620015463040536813526624897792306247278385471451822401"],["2576434297785503458283724061542787527027467819811749739591856219216601700963","10493300013068486224858401527837584539167565168147022970958223451472598314685"],["1740794426348113612933741941402539190613199102813482665421654646977241569185","25566423828305797614697823162648164761483467928542419480056783003162198125911"],["735163833516874913616462131032646949944132519645929244324010300643196205247","15753668150938877245645224838919310790074861765013827017281056057132923765466"],["14757680439722017645466871990410686150145894316935380060854806546486935983643","5241417890597436295257651959271678531314709959838232521634726121390591826833"],["1943189103338894498776608187694665191782036599452395344348628013597843550156","6907015017258550078582344249437574657034904218328204560718708190339724508641"],["27923300855775934401757048410295300616495928880612318715402446623367222858708","420120347171971860417460708717489766382900853777012460235381101324022024182"],["21597969717773043099559876102645062395555847588116430191228827682761126463430","9454839746069402680726621501084052627151048729748374993852065528390111507002"],["20425096161818233456025847116532998975009540553021015570670257741033797470535","14322578190902037142176134764772538635416729280750890340017635500571728360076"],["22149253714478970702007189436434582090250074540969456842455590986572120447455","13945271956752189330840905161180812458857503564871852231847389816616938740058"],["3884923356404428788603641905591144382991103173999565672613298021070862719074","4504532453944091418427058910906986539997357055299641737382045218116717264563"],["17540305853497060670510777993267212881543572206932565700909905493609416233470","9330698409194437301275998236516158418438412703446300543657957986230516334061"],["28223218074313875819171369234739784929304559007773516861113327790103357924595","11016497540944163599826668653783514046043723947618933907879375580926897595511"],["11601879088228019177757028620592093824086612840310219394078778880432406929437","11409302517791350906397113992396567687196978800491024671603215586349351501401"],["5509399295950086032175203451514193689171052119318632750920867382822428298056","23551757792959466273225091435847403613950149703443471448235342345976538006387"],["1877386961951123971037808132582859973256385556608269226807283184068044435310","9143167185975775732810383149582501244354839011231037894470027376759117824709"],["557793560351165740523919813816327050358407147283696827118102542701401159858","24688875839870904342981514245739565885290202674002344292966140914454764453212"],["8051894757948589519452657728818270706764758310296163345483527691677217255429","15405983915329775192163895590042884659202223918431128276492186422582154070318"],["842465740413541831015371811600536678025819334843051124525945895426232331740","1915234270666025503469814186923297853627540502887716538024465655932488384417"],["16557746088225794868058739241494457441725008489825963453358638837600942450453","6468703380761026913198705604599839800028226451352455632619775536537242096867"],["7122237675988384957887237283816950880746886417527356565809210660925588559802","5711775711461008361974381027433348627879979810434584074995781972665160244566"],["21548624606399362850959938997710143958378788091677084318484054867101699080580","17769988888006250761172587503528573778244613898426687006613354966554078113063"],["10221513629279395163375307454289305320082805126358581864571963156823861600399","28354633930963822854557229549582788839084192802386054535231384880084050672427"],["16860443434581527260166435393219349315413668188234939296990311602805199652098","10808701120122591332252293161187276267377568190279380899275930419281591785567"],["10974447719762282748351486017648535043725883113093050559197872033067954527840","4321582420059522639731504984397169587431306319074933642307138477310035229347"],["20452764413142713376195679940033936067777994862671453122217435743480031989736","9245413190509375738810921404653336893446880160953881899868195097084945568478"],["5474602473107144075001453019729108208051739721052533604980401966380454443743","17518121704547307069663103049608121775677841487136972141616045341415060296629"],["23147434443566272992126088447324417041392093901517074690441668448830135897896","15080297105903742175673519587336526787103364100769942548047667390961132264981"],["21552668255184413714532300264194855791487253597344061981298429733216200270524","4713067811473216779178699453523900090122380191342684181593105482045101250886"],["3325610796818740964335102890519402875748072212206852112505950894331733756774","28081552426523492998082490549378425218553145224293441334938736165611766065543"],["5756008682610929929217263615963327221953206960832399773088740752486475845584","2825132643226753282702993643108655050161273656887668297199563798797837442469"],["8532664883453793526088492417025307766655032288951475656856110314110350524291","1282742911831523201383858049534796159698955100555477683262023307368453355433"],["12551119109489811373798532858767005135998149913805341070700695669352946405018","26705626553906555521725063563772461840926584586485245083108195255992142001090"],["25497119551838832112730629363193984529281584220912398861628102247225280647440","2289973041694243072053570848946352496137227516194113782144634693521997832716"],["2345786905714413104075963927122162262918662819245641569637218128078361914087","2006662363039056768627980498021226299324094553911707594108254437132499033347"],["13964423232930932666722070572807088388294574313787716716777589552841955065102","2263664425776972561117424411989712710270602339919782903358132819622121334949"],["7531956045546049569882963802207429663534145562592883815865488292593037914010","14980108672611378278251771021264997134484461149061602353932084253821823210212"],["19133266330983100239108883532988845887650938477304924321029518399293083461562","15839943744284233184404502689190711847766745408105845131399538105804140185776"],["20159722804824774927520027773236983914703251489949933027571157346564802124255","14003616300271783923622404034330946140700534247853603518166934325564834247863"],["3357478223663585297860721223644431700651656941441357821020873196288061414307","5730865333750576468284509650768509531561924290467541098488606999436252126253"],["22343124304674583334190847044437729593946002260845403238606059041607336479394","21428030166656200714362585680430911472477935719055808502093241118077435743626"],["16062344333420779804289199562747708545710162968260784271240306084053968564852","17784031456242730352201269605981380110977436373192909063472552663207970523883"],["8600209490368167916321661005523033757417325502504688934270496635215749825501","17014942255481238486557312265871383637448514874601024445977415778545869837245"],["23830868231640047404468882983388566648721325210938336720982683567500915834988","13697034172280375046392419055493283728093037821183206668145005223249013898707"],["9310560180455193421909087216225221866162231708135215547079014843375696077761","14835875440619714890055556654342513088924808519073524994603461419166036025529"],["19018517056700813373976205284686025320533827891078531519302465415927878609932","25431394890786255091179325675753557454512351028452203638490499148238047254782"],["10980266573847515496485754418536804797528138368791303798511645531560928920103","10756157653354549048834799127147983587202246668041503249168260937790651845608"],["15739585719208215058966308759165387702173814855818749397436701056785362572441","8854159768832085129999436770189762179472048235341613269392438875773794454549"],["6220518238303451003965365287917886589368332594836901429758040642344020613475","28469765473234345287434465789200509094050331034171914683242550208623441688723"],["13515763837355374985849758967579785974935738214618677808934537304587994331469","16983123234884543784928743765589014546196946490642840010222967144170273432506"],["5293901313235713510019111781014434408943664588882050033709297819237895128815","6537069511256493788639006331455514652816596116538235854423682784694742347762"],["23782745226543194099183486694028393100743746240623276091104646831333859050019","4843926125481951009527796397306624017663446198135746678428587789518108337296"],["20608511958784166233682715703253885987994183833906363712953819378854197192029","6909599735065753427251258179979012095044333350374201755354535515574429865923"],["7001757218128526610008561088792747571665157921382931529818366389563662190213","18200000298143660036071907128100140534320651870321348622178274640032553564766"],["14422113447983593476428414943546654920315070048510040960114625927461868088725","26120207919380342614534197273336031362613175135005956906558854326254557778915"],["17424295449621982077444317093001763864186001741712811005467392639446081872292","6377706343255671973001561236409566694500869535064948497547384035084649439261"],["14489006232007787056803046534713897329360985357088483179451021852463709514189","20024335869133376348495831117424665099619416924741322212463313800195861494512"],["2689620062219861486946358062979020088484425568696977430666405698344965912549","11853400973305923612409473357817095142996720905311848270202387766525456595904"],["5653917020259636172900179061922831535751690714582568190731894156774039983921","15808069264419679468580443141819219316328954731698250593840325872217057177966"],["3923680544302612969473800044746647883755201786036547985667026149877020828201","15346056220346401843240641910383573899741584646380314971308365391072780886727"],["27288652480916765679395010019474653223559389572684645510382601396632570300557","698378804956849863490623580721239953143572347538667521708581706480829377078"],["15228327544083733589855223902620261251650803661335213655466633358366708383044","23524028669759584203001529726471528320039481407952292946345490204953953382069"],["12904652348795475344525121426350797848237824529303428845015607685559922170120","24795437465124998870441778316811510915267154066166593553543297022924234711592"],["24695184719790112626474452335889231832832845063928606459245737894741304661113","6100138496234799316453413497265932561303176992437771617127614642867246939014"],["22541884429020168044861191503459415324166836640971648466868259252698675293606","16650931496831388488127009765853167622994411944318571483470697200090296164902"],["2899359280283645212290944053202537264911943162197348043107338017509268671766","28634365269390048735701261450537503125861469659167695049799955004002627084414"],["19402807287366473671681974332669071801322262517137076965357062216234015871089","8166604125366540198879029523176138996289418950294038498730755493096296470773"],["22910445199425950194106412891922615832168942712497637388384822256618514200869","21535920763638889221235152555972096115197337830640225094589554082761859796068"],["12047169498481113201421710838694420232414132138739807007438973771458146630285","2257059541855022519322171404885288523641733713151596332561811399098073743971"],["20440098333651949197732504535904663620572717817648281704241795853400098895753","27877708904498441834271758436039457297801978152359902268563666886208787864312"],["2520145677330795284968680758760124566348279820864373826877046678613953634704","4391928935434745659994730394820425821820176396027501704005961347155032755031"],["18591819328214355755989428704817231216767156692628086683690123199644110694981","15999206915740223147241137026547831091034553456891488901478347063292779593529"],["11607525762995658072871264856410936959106505719981949794312216700314938607611","23484368849470307963016639852285734598046492175175684887518336898988504954620"],["25691891891901012294058326612602101287188290807281061627773766814364521067308","26428955268247137140762931847694194751066653790970239223468863664011250271287"],["7473011182982243059514681223323365931709336227966348289587982568030153134128","25500809747239993816590005082807353680636146942760798157672916864791281535177"],["12602543165619050397430821259599522704575685614781150784619260166489844877911","23480422536736042854382511647715196596659597405657904946286562468269932806068"],["5942140132231821860610783961163466651284946154014817539362912323164206854538","6391566066227450591814039858216110712371312984479897836568524295848813993764"],["9954679201223494724256044666487203555319132230271002228352500996840814615547","25884833081693776301568888963892271706123541027267828559985157430328072759155"],["22671614550054236091790073021829099509032374740328404447822858240756757786287","2671195715453663289112790499410869463416962275936352986672448806226046610620"],["4608989080815247801694431966766817840211836570060418013349358097031027402270","7524867704888321755321370875274020555893128912753384018816754194565725238597"],["20624205406953522015065708051726709026322487290247511094651899054790299689532","19241924406769402685342871085530748120846912651537472953860198604899954009408"],["25167598581478360220835944431664874483077498966420843787200137493213489901476","25816589143661846400884697590600837279018626592991411646758055553815643188036"],["10823031012193386525367246360966820914900208014018679316807424445404313018538","25160652961686843094349610105633342229503701004432174400464808851539764866450"],["1031453056197819605215707810843828355850093558407181182543615296342378024659","26861403022351675713101028719681564768783365655679682819051951095555259781182"],["10623698723968565318963764881247964884004784182154935870836647106645553248367","9743955646361217707876551183893594689976274791087775020809985378865476653455"],["14945522022166029581050743789231847730147723844646036634859773398108168555751","10082829925304101839943962129672995242625320139767617476843131113356787194545"],["21302398734374737036692260392425385630517128076771997662752335378977034936192","6696182872150236861574087617289357573322402851244716046762337174352158314001"],["21291837701709933156480056679117405799125641916605136081325817186014175211377","9683579895936509053841212799074016724087387696593347320483272513000181001517"],["7527194824127007723696294039852300605025629345228877053481150820460730710773","15073377977850406762836158878233495851575339805777202923646058300719941397719"],["16255232671886541913844978532664874211329681918816026609594279745244424479632","14166221369777024675202480251673620850480119935086478977937383433673431733077"],["18340675045733593047248711626211455239757564311603865146930160238619698409239","6389584945964865821024751943913421642920969223554387898126718149768616159245"],["28033263543746338634753262098390085096870948733813865836316247086255405358540","4700349595713014763147808650981067118403694409093446253438584284425854209241"],["11088449572358880434211183787019405531581473599994967708371418615443819417908","1923892733632234181594504754069253575869547101969399118536930967388480709240"],["17457286152191811035048860453306376862319230476384659036277775952378029425851","13801754345523765804468354799676201061880233146024521628107670565072314125576"],["1405589729452945207186378358752761174485132148316881683438474508515855740308","21328068866859576749771580222243446020747347855954557039544227089863289221291"],["1464122866972174179036750847326096340600306149870530865982201267284087435376","21529754641988012644783328311146723646584023598160087407675964796960114855138"],["2443334931447773584261476335820933540252197426495455724932163693811578918116","23375936651682328372964716436464243429663596572146033817004270144372562486016"],["15294494265065261339264552364097772500178129128825006951083652365831999948218","20066997778594361796528107329105521360303434618817934260499791438992862178258"],["13961948394593171282961793790047765867015676528684722823485188152978818349280","17896021955615311122610992477228784059364709780641736223478063870768885084544"],["12873800008759565586415096521159370815260682494829601750168407882165475731160","3433507971339151044924677338293302441020245927332677404650130568366134030898"],["16372293513113068877409323413252645928157612573368150133745609631355834105383","23965632210085482575434567582513559046267337419218963972166707576638212344570"],["3993224347837805883417765026062209367562550422457396976636358598216856428003","6625075274762053438527835304036593351727371389152005725661723042980537775784"],["25860244418237179388651115756403321792574106176762263133161630338146124762050","25624565326495198813541053884574719300143654452659936880590318329347049265424"],["17834686561214188442357775994001281324327755419344199253457315001702871883460","25270341943911833215484329578654664733792636899653469752280760829436944625165"],["9107798571859663821080779065096242503328353249516696274116386883085564422879","26119248427837161711477767575714243744476093566945748818967967084722199053442"],["22082236677518713609635209322754191852901084170418029526724440254196550454432","841354663794403325360678897277636614163420225311332288060551800543504563021"],["6752702504251877397674891201082165047447455456827210902091257871004519813866","23898347918237550751379207323761291993473063212390838105653377101156427864605"],["28943261386304967313369616743422759602781429680195096689456761507447195521404","3728909340942548587597621860204351859059236152886858121516364862920735739463"],["22633681295388652250155079993427666960868872058044560351514740463188962763127","12318044600326525759906740038239131470980947311885152745854463500100733866683"],["23793292714932304689559126543411785683650290661833314605816412629740490406376","13509521433120099278186370674921192743429027255256440611558269767717442517988"],["19205716695619385388256453976543547024569378102001602364039476210751858131426","112917369045127457906577452577931845334085575616749397822893113902662063591"],["9087031943090199256143784256909881781817939697690854369439421698729418787749","9242847209581299025341734170106664598651691288883267973962667334654168727515"],["23975577089019785192041864206174875756572976908088060462169325499956083788571","11633046134496783401441916207459024826318457961022625839088610772360941283220"],["15556492561674045735163944606456932007322126944760034953414014505169540689635","17563714365608988323865749330778864087877183796930831857013291858116999608152"],["9055784075365914283879352107412838596023098213333712515180704354537589036344","782604873142300829636457436659412006138809905345151379096250235547135397049"],["6030847052274953964408053807071666875695976177003060057613418403604265276808","12605572400143835735094252471812267605166192701514066204706344200091092392638"],["17949957986259793140479265644286550144902600031521396315463418522749166585928","23368226840501707580826439528687711577401078468304487822180825100414107651258"],["12613490412615212309946386692392882796315674837014206409638156746116214655331","14041995486818410332432892620565168570671834166220080814395733812127714398454"],["11871375891878265774559666927280766507958393861006849803631444978133631680561","5599749030855681118671823967068047660100642748278747649163563835621659487745"],["15320929991239517221676237329181910715622827481918393331759433508752356721781","14433577590764044696593802042757647445080304180527693205600389156367352092799"],["5332934778367364172277891685788376070696443351206389295374835812826929368902","21129132337361476132435646714475114274652938333731477444608308627716307705439"],["10743943470041209444468648388233748849935843522384355525403987665301352810022","8821832916457840829216342233200967515399698534001669655516606336397000750050"],["5199306608727830835357930798084995919297673533163887851187537769992770773509","1555761623904275164330688364440879042239426416841125364033826117694679053593"],["14165087154850350626890684649900336040977542961269377516264531887887241126113","23538518513895808749334483861703992960232614912141468165621517968110765999040"],["3920932414576605972288885630150759847942108055425345618746118158756159477375","21890253869948433522052142262556665498241379679347850471415792209756385560424"],["28802724838923650837972691412797688766388499539174949079608391118052371505272","27950136337841244926036112465390797251664911988687926708121322312833973590006"],["26647614436839485481711093788607323338150067235023177968737077787058161036991","771982342879198667957282684362190530896808078950543050965490384725778374157"],["19797989719295082906913455235809447171665774214052232839524702380914789657856","687811272246033253154552049210437881617737774749622933568421494616174044824"],["25263949321616641220449289773507175763047305128179239329500580689292331291025","13106330192734667720457982534547864337868397189491930910715381919359483259682"],["26891609296140114087941748876832158782172841085936591226994646399530469512738","9031354073927378758685416099854570438212271432741984444463934086235696619903"],["788593298451546346926207899666594644020433220272977238518494309881693960282","3905085989437493771806177680736736979619388990883570965427147746789424226347"],["19857664379448582505919953202571185469802771757326166624680030515663178349480","2619041085618621530749381200960227841608445933596574351305882858050296587752"],["13056102789328227206849263136276237681359700349865689938645530376520687195719","767442498512117073240668785272805128921896738068809904196416032734809511010"],["832349289725359883490769105159652757265853368016930263750368630179943313829","1367304227410034216037066346997053315957801453939958865582543276715949143951"],["28735218369327787841275271393257556782662053007102398100399253868079747632089","2784232756803757949070813431490427086719657596086392244306292938845100506941"],["14108948575291336528618080992183073374239354357141290767133397689849438519795","23910368050251116719802473521211321072248444608138816772791267106990202376316"],["25757254031213077496552448741662156582028668204311208504970036583908075305057","12973240241161784412182805680648990268097923992708155981205863267430430521390"],["12047496350785698701975033323326809205630790236252218547673960737729584840667","21418517919312757463331834309652699440939573795816276868406673967288429794048"],["24008218229471876677202234918825467079133527315107827593714227424245039116605","18739406084956665374518118550349444016064318657534444503429167706833978506767"],["15167155924886027182304878435895363673146212745684418913646974614025236192218","8711921243521414119832994654287555634892884868236360511624051997648583485356"],["11115608353550599758778803348642573596334473208803101161388384912375533906793","13277975021055722655880827106080558382886618625226677951196362668705839861612"],["23163279552095440146088023536119934589619940013735027806466252777651577111876","8102154885013002790947014969263999438558445282745664205194915830171498399683"],["11217377238412903539069449721269331820830119452954237908472112672827439029233","9903189049272915541502334485548034916367470631752409835475163953899250658577"],["22335610817843729348891935373722513309516255788182661915036437485793980102145","19981833866939561416936187806522249635725354597369265897767541495736978026445"],["8406249366178810379807051405209406994446956570629778910631502914392935314297","14306859859509422245534270043394653162276943809893213412446782431487526901471"],["2506643596634062498487704304855060131721757711728827861044251972617757202878","17644849053750746441672559652746231116328172039260383193185493072991481797350"],["3668310424812928083929978267398129362990690875368639664673132004241161571168","4573587357325232812482585678214802902541636143829244877447737259132311205713"],["5680574013544963331477636565805699542701547242193797972109129798358913335261","24575407381815129897872466257749434337113073717241382808038963876755452863785"],["21074239079345595822862921942341822622314444867020237883774384219979704386392","21201423196479847275580215691542549563609298446457035612778071987140653575491"],["27209700672412338203108421794359291234763195504306894122548574980032476935519","22410127985764964570361860066738756090009104191246631112979308699988912633228"],["12618463765568549037313295103912777874553614289167573781130050007018067445260","20375177397518907133252619891859324568833042423495816422909332760100754832650"],["6074525951462071864144310706844456455202664741506052146583113865179893948012","2248616162556135516523339630187479107199814046724206403948392105357942030595"],["21962374118596194126655893186182858607102022840539388007028876417628046606222","20706963020261927863325977725814290255739983028984625410666674810776613529587"],["15223132051052813223508085931518844300617382450126240618025793667581927237483","19459722393889291926619870761078108904224349255680393148882791758519367706763"],["8449816395419794454764982680652115471561778407257347742524860228465314985636","19719018615918907370584995045589534849722842343224574190930896718129779809882"],["7803125611470091234999534570909073281062892576959274334903010196397245937061","8096936394235036531580963814419615411350676562585292446155712271232248298425"],["3225920190353509332076617192581150612504340918172647999157533353555982675129","10675127547574260214808889144343748195754965739157613341073978669838040287051"],["26112602231039101960161478094575132807787727741777577164088781746130135923118","26854187026134910171920786638172787619769064970486424218435118505216822060626"],["20415207845405893983055514206560517957500197768694884569920865127434620885838","20182958559259144784973490930028284299660123682475390533812932289621904840007"],["24138675903429728101518206230824814206553160408957963116882830898732884866896","2804332738719306636472744086307875798256019688338833360373446748666768667712"],["8915317524142070005994223754179424856350627111877902595419873665629353646966","27482893560282128946166120009808164018129027445986162990527507813529138179493"],["1753713059739216509410691273500573917851329248351556254134632419830738631998","10942941813792590362846373474893481936495645988077211404222326431346803173494"],["7647831285319038514486492143368136607812177399348956045841967112421287568359","12470154818079061752666280038192747551422334263451778184103504092107023588012"],["7823978305073277280904374016887559278920813748954450665376779453516032357109","27611990957150113623586577438150824209544989399491222834404342792046948318019"],["5991939624319485081224007309800082013986357157974385328977493292251495750359","10226129843143836282501691736309412662625561598658691322292581665602560866671"],["5677909459036681506559861241208261381103673472884412490081569115779380444871","20043247950058348851163307134912135328447703305108065833302115296966935545585"],["15783262825231933904790207645501140544172395139103669946898498162199311845648","3830697021979612048516883071849311883612243601912416724134480845888322403411"],["26269670671118760594022194219413368128868742969101656237951466920874340074342","21270864133061753361507427443650868082776477574319024703083754576896742012183"],["11003216360478593469492465312851981332034185123157403790514098673101621636869","2673725024442683799235517404158983476865553643013153664645385093507628071417"],["3633793719876643597165156858213569915669671468586237279985288216940076710565","26609737268887008985695730428326006470256271255028784982094497115469384883992"],["10277869622742511406656148032516118259041430829765224771682913426158583536177","27781846143321903623010292318997807633488522001969381410730908874882617290190"],["2651706518458758473996623855230541995347489926970649030330339067226293742027","5962707314132973579015887549565125387484891761899555604147672299505387148512"],["28469052769535401151528284595644745912408410156992093040711174624635050543347","15887282289698007346900884753757049604289631403091582557247441892927459785489"],["9732498053786519458465725032770513400274436597179610227726290510476165255760","3032905037035457944821305158943319556929559912231768116441031813051673638190"],["17070893049429074553525575716977567146810808145191962491855724644280344447674","4200920349829316089473401870896142611495055844333154258493665709498136997688"],["6157662046314282486282339729194241599011094655139830870983569499896970283935","27812850587648594880500774348161671758956421290893294515074596451300653522664"],["26388580401080191581295702022543013540574398087548345992361888623947008879795","14097619690715479861529547865402482142040575416334371947601456195387600903715"],["5734522656135512747093792043120345092958629012106361056726444287858892765880","6973710447054056694796558808085734668758500400814550313869260945716250471423"],["4654192017727836293100153642800702164502813975857763029103503686146317570200","8189296303275553103418809582230483204954776975284744162365507937474737706412"],["16622194174699232036347749910103402174384339077714005915920315210341674287452","20506674323462750750894599175165803418849421670443790680691052088751453972679"],["28801461689103257955489323471854516009832834514757741822822035744978922675928","3481870571392213626401783098117108445060022006743746901412723077142304828712"],["5950983615826033718676774681919282575379176035675075480659078266383672024393","24731822669482976133700776793473169918012148409033723021745788545273894496310"],["8315280130294360529200695675426534455719465484569868467609423722352609914413","22674366076614127819184565389844121915448088307292212266829065297166446618329"],["6887875823640406800271485549837367646254612589020577607911625387242506675499","4211465711794079609182882232581963006655609430763215903505098931775804971638"],["26086724278345438619091376147947563677990352738801918572782252551713322640349","21797633064824941798462265497895763816732874729596958631420250455933559502101"],["16769722337507373729369480578885470248153917706877106634960787338582593496788","2119920670541372282600809404189872116219983317542010747728149214174540444528"],["28644494219987234549490642555214443786579142278860345440398007456692365597661","26400218137263441020597984892407049260455576274375335774394914896535321638057"],["6326723174370109855963154914242050411664521795524037926252614943697573570756","17432628268145450632489014542082999553047293081088501562342730244113706758001"],["5036767579947572443965100487601744377008625596262442262063433100182743231696","24645525401495620035590603943497584658017258958206917486136236081193812156148"],["121254606185839133880832732243217107820968974475220245492400592885531149361","20259812322637916422051065274031470858632963725345755463962841460115529448641"],["9590339929886227301566371994029765057801125034743554385950304285802244524926","3030661356171258458227365464390766775211109276142056103752952403266403704313"],["23040300380679512052507039565467402247429555034149976594282672549694263347901","14065614031770305541587562589061415826978848988291621111325599854677543320817"],["9926798391892568968938841503859594928958394837904100075621149255417454030044","17597262258420647837958651193431529906837044119749577109908679056133964189954"],["1825425636827624411065345058993689823006629376467231778147199862019842647190","3260862005390379387265815065194396877051191428345890163549420985423585204860"],["26900700438577379888157185850957484572099154519038540889319362762056774519242","27902008296287131365599027175280255502697182484379755769593614326079615086591"],["1694760758971676172333783919748460708944903935546213619213397324390186447449","12005117320044870367621403081021223779389948511288596210260959719577187966140"],["7151543610374431391837450897412159034023811096743322696177883543417074917947","7592821799742390364184323569130900950828007054050317869434345639411116695631"],["7434720039728350173151883602495742818239258670158384805519219222409488629792","11099239809692597883950593137016256005357192038630762416581415740740422103859"],["25182696307009534099518226730401587512422765053030623537732909208108797829304","23813459828182798727565771644288083423528362424680517895103440180875651847581"],["3763651335816834540074123709005677992507705450018776997870667174849569226428","17972637971662350116172715623635189655911467944054277822419622938800012586209"],["1750058476663158332570330287919011667157922479822034488012645913901773920706","23783157543832917631985305143086893708102734621621368422962563114786192126014"],["15439323398298350236493216824754770616673552003049271678604882983893405205715","20379810670448614213012855456786132258165823789903482018004023725201183443075"],["11577840299817893714220089383621666437916775584544744638659374319275173266335","23262016824592502738447733005064780911198085137424340973814697576125849927017"],["24312565139980584502860041263153075272378810011417176303737682595803237526797","26482674044339158912131589444928197002588741041951182209323898956780842097736"],["1661170807140951756775009068547193246261567376336659240796335583246123600169","1059244113256375296411412107937841346680640891452208757525600159296848718866"],["6563853893387506486631330927447141147661605593690002023871633055506040538536","19156954674004159880446903391786544964524164958870455965890434887976035218630"],["23488784445280922209928868668555844707139584993867185088710884314379458895027","20132261153511380947483649442905321878001236969681500534889219733380648121177"],["8254292130947623251600501288926257629212184360088831399195244769994405758129","20010121082220325671736372219907257622444589099146371529569451018098249621523"],["11056536226319115961328686378292842154284449252553520250601141208351735751078","26465896330135509517191987460386251489727733712471621629182633189586155926410"],["8738175328512079195435544648097008451891672058224172678566057845240822556754","14008002732935408587077602738186519382679961146398861313302798689098625853846"],["16620030022998933074667423545896147488723261577299828496006172141850394895588","27510188718568158247981134224110377095750971435221900159137732704739593910897"],["10998512546160111781632434263624764662777412233101093580281403429539293861213","22683111337889167543186030245426017667578715744871342401166995431724675270971"],["23496523109290628884698906719409110786358303664216140669313157018236411483724","24785536626841279067530397273628064312733485672372599696890319146990714897752"],["11631210328826738648568638455785787547102355648402552714534158889039761324248","1857803507436871631971948562349204575937708463695546064126936801884372290143"],["4158940986674168309328364525020532504116630870855385139750319927796565032504","25602877597367216795227264268783021350399055659043941387451545606776543001722"],["13032598001093497923087660909141039666048828110547872855302208366998113469856","6464052354363981853007908914972865388241388454979386099841844420545101200869"],["19572283884480778236403049424289494823790081924544448583992142610191983320679","13441688894434557693573769786545719507621817698200598617404613083833060306311"],["16482412740195594437624219810096964328398338813866123682359577549778017910866","26994210842105560147118595001622624501558716240413863051981305718716132461548"],["17720501756153246606039484913891407722734738839431631544419230900918973157443","508030756658650012866978499563981047148716358028721275785083496767858541540"],["11852777681785821388500208552466894207942715212324298263677856746558413700667","16003375028444325583816968194500222616051914070037180963147311617725481176194"],["16124544158249073355841581642474329216349670523855676677042169728259083955233","10075289428690381766112744416884343872817267396481400065729931320656537313816"],["310170817706066980134390333734440878972339032207828034232442783699332302970","6819083228329929085008056135647251333418734770479032840266252767488706613483"],["5527467715635397721892507871764219964582648504308045838701639538727000202394","12173383413176280842902265959857984839240264790645158542201974431512527795976"],["23677143054835460525872997630530843373377332607768852229445210895417420522022","6737733333943054476533835898585766158961414142554549267410155052275504895806"],["22061055963607011715259075808688867610499998921129312303883026013731388391530","16526621237044977474018133710654204521854632738451168295742998465338462931076"],["27816233653671289168591206243208537334881425350875322959911113605454233316750","2530140320974945025627142901726581527157960594450341433594980065116115318330"],["24253680960742100162429720248736200339152118357036590683083771346207772265804","5162898866600085009533597899228459146212808794585334345718014413288550222160"],["11334730106218839391697319243984986970199137822531731693103419480645235847637","8820399664488954160354772132816343822705172341734834684466225291363520459782"],["10091108945419709063784739886371092509689361100916633626726844035861102377364","7920077553184739520632401095779707813391407108471124262128006798376677756755"],["15892564920517527514562935916695198176601437816915269353666839706304719061150","14236010170762045668115154010582640763640605237710169773944871738805326131647"],["21287143881333964307374015442820527979818037986668966870863931696167994313135","19326092959927075164057883868865936464012761369570993622198971967633433313392"],["16777647389778600909238734157471420905414556271874835703267375915124296904663","26020668788502175905262253948784474464085115519939490894220802701374036007010"],["20726214252121281512634441339239403146717198636212068643733510548847943745894","13397576671638889174168538592218401983615217413644069435921952475832327881237"],["5323523868783754130334230236994505889051192856212414861251406595835788277820","6454855813403695656857108829638342444375107637393121268881009963794462116707"],["11122330041581970649520626099148287822904848741435043506434318975582349889145","14694740744209587107107936967825046766168733088357127038368006658065176466545"],["2589775464034020785128462491299317669533711206134168234390383253033664523337","24709398288016797710293002773433865817031777962258830671310336615770417683515"],["15293371655849791412601047116152502997854267314840049993648904483456568592396","27945956481769962998914708831831684664059382307948621089044285867257998392174"],["27984586756347086285543177133404046685274719844097116815647889040150206251444","1369222505408120766713602314752308772561434204438649638271253001258547021786"],["26747771924328387708917079719325555000766336123436746490605331296695933499221","16708098991128413893650784801934568146123722694189332203043641028677834643586"],["22041191360716013172842701006208155313458368112357251323225388484470457898603","8515041460075550285748328065698576485240428645179133613733210374861908885760"],["4715993619377656928313512694959439238764987490999925006192377943313362396875","5706838448225979856716467522867389365611236928956055116740979307781883410244"],["11540796358301708608748518849843162875924988160268471598291569490583361298055","18734926875597532025729789095775493235867239362426242587635507337841536298872"],["21108704060098397026982697503840893843421539486414937416288085140382267365740","26686469633572024407038160715712981442603854800971056718100677771453633070179"],["250694449794733800550586743147603855645973971723331210579670058638727401598","21631907790847446411794744793755928016208930864565112002025584795313619338958"],["1884850557258386530914721062747280448261855889531903474512180976098648867660","18144117088821209240175147347732932993144004544294935721670202833760480627449"],["6531846037577871801967165795817108744756527234545661936267234184772182027814","27914494323114515218350429718322880685031219299163051944749753526074682236455"],["26512493203175786888834011606367166330930596018319662481834685719123819594149","25566008514816394178789688446088639656892332631122754472584221328071813207692"],["9173879204884857745846065002929771196749729332653016151665277568779755476111","23093011938222712317908165210315773423331991261216150729248566408282110546583"],["17119841878752059454698816485887198210879965467077862435309822202065725921773","15701628689577103138848382189111384690142549081472070420163859324047718897929"],["10923188489422023795857674535477162057712357477945601008298991181092092957812","9439888429393931920474245640534182087443852095692465797833159763110622366758"],["1927800734203980530430989235093529987413784893679621258346340504898233241586","14665090690815920212912814851722666948643424009588021438099444811243517073084"],["24606207711547064999066981542064029865180692364510972342048047661722200525072","26391387857015345990769325160451400665326732290899931826179019529421291516059"],["15042985633970808116220690248706595842548487491311468180633669770239955122094","19678322319060598893553395789147746797247702277609337384758588439732520283276"],["19277888960395478980395414432737530377760826631369171908379988733179468599341","6031039227933001945807970355029237985678399570520199717456977879947969704324"],["15177251617712591814034368997081044823040804822491402675460510406738233776053","15571971778837759897709074870250428442269822441939199592720838389979538011957"],["15835506890699476320628823384460864152562763505213054720595062292474476257233","17045766068596372083889492433763516788397208018988025058815545071739448940550"],["18444607831211039785521208970708681182870614197758125883085898253482999031105","13436695031882046794094219548582499285794648532385831755805758198036455153497"],["24618195489036568557440576112019781829952937657016669329775618642155359838886","4606738137730361643873868479424367904211785913352249033311274534774226841588"],["27083725340649308782871890943530767797240043474038966621533932972069930154741","3622161408223220205725884531114623587281794416874239933893989429267650014405"],["10450127614234077134114671133086629623600630039566279821729915551221713668041","8347684719805355045917718056270858299849181334335465749834926132695608295134"],["6958456307796940942403374847354073587271735862715366345620552133295226207389","17256259794074476653955571897329557424751495912604833415304673960362582475529"],["718722127642218811009463771119955350194512332737544522163906247341157292587","5840155492486141685003907906527574515895604829841031334427156525015618477144"],["7975602218267176462785746718257375493763701294645550426620718852630519422816","19994725480346456281556544550814562488875133389837484700823571468697159265498"],["7435856090706423372220932693443245181380107964889242741213906190294630132887","22373998778906164974149366011727754883788377125344787631758908339888752560809"],["8741435633540939831463747577470448682375756930157901920637610935059085467813","10595040362064647256449560163725043759911608680589300219270014828624355788352"],["20355187617573599421070693750889295567318896061134691079284896185941941460449","4556943754067565094238099277568328776544951014943018945382629811602031507552"],["50710939134400610177334024183375330604624379180874044477551210419004563956","23244502105198533820388120265218944001412267787853702668390377964984662157592"],["9358323656171706857432128984748662281461726234555907579943764972750611975560","11047656934284174919281678331551010957115737674234226983298985283878014085041"],["7114885168200197392163851624892989009201772246809787990999732998553956442632","26994944983490806000617003889627281731927385333942583271858958793827994308683"],["25778169761233211225171633402053870153826405443751876044349987509576273329962","9767581627622881320618028452030508860815736121110447731218610641883880889761"],["22980968397142512116264819619765687026748092609455333677638212252557905903263","23801859122731451601745483359823817796931284007545303842072241444658159049434"],["18887993629745787789125620986486019841868891060426552542268604879259099406819","18555961758807220255205697341702270244312556632795340557010642719524557757498"],["8110452177466355529919880092351605164227430147247962764054885154998953563714","20726095040942715642155744077949614591230970243864224771290341066795830189069"],["18108145307527767801016931443928728329749091992489245789091143886754651362974","21510074052108043113773342467973123161534478765728400717199873078207791217716"],["26855486224578078290520360166663947417387136253581528372054067687794352247490","635641021156814948941614458629613890884425200494929602548763549065819447156"],["12624147753082812732942992025839194632126367648256984616119802869133531591711","25009593318740965119705408116098864452109719306461004648505757287746267676917"],["7338078554019427024466846976843497354106022310459008339748985360328143044852","6554238261060447164689172218940705294893152278705050268465838426761757210767"],["8066752323925261021364853368169447187503016273194908545082178385261480676204","14075789336059907642880662290203229573113285407977012497212937326900396216710"],["18245274443636937012136602338946848659972585165282665376339073382094131998712","20276253423614889409379361686924264780201416802097858152877296110375010054093"],["15505758324186842984773428239358509010742749288669640524623958975605107894731","25910983459357549525623181361337398221934529610667483067698562053317506476604"],["10486212358022093290312531170178803041784226897022772627215160897525195684193","12212625642150917179727467102350795704524747011188464353097468320483020679112"],["16566328268489082388418454000188609871192741050310915747430182194196310521723","28626983525092358435563690834992289581639048171303481698655126204031408677846"],["20648436285606979582758282003228079370672301236926067400733154886778048556643","5534994931409797999263670289978028920405350284380405205577378933458805574866"],["28465068088445466084651570024652351506673964302007578075892963246603487131751","6754515158711407173012153473748732964307357424817486120151688992219512714587"],["8702827972734190460197315269202003976400241812865229959970468507613410216377","4171770697755826707248839403666515781498765274407671640685626464013459835849"],["21284932207711290947655229728263077560339840404906542639919479450456988365524","12987359082628883888442743860463755467848442891343619263155828816407610123260"],["20273938748123007952296178025113606137809156330522749378820133396211053811431","23746990580175498516034279562397705990399625346567954045671789014881278868575"],["12085115171368465312942395294011801424351028855236019188332648356625442628747","13807960757193584311340973902263083335862526804380339374276427077775356323667"],["16347764942463069354992253529856549486196385023469486487705641931570771368695","17111888619094114062822194733354118615535476961894594095844763223321828109000"],["992439782115445710305407968125177329753717859950130533656251036350470635795","23501496371212806073611088430692215491478567227581413560581523727542736577883"],["20635363876408710258815300539993090765620256004632374314850523930665078545559","5575876862006328392110021116558210568999167169824558021199678000846368315486"],["5274195681718653676065396466084889507028928167126452615302167836082127319664","4859898490568337423989476964650540387540980708237231551070246174779448681281"],["15145015274184617207910949009490760180630993205050318791738492482982687851161","12674336993664902079280506449394270896620317312862105280399265064170732606388"],["11318566178442463130057863134174512277014625962604173132539675389774345274199","14362689408134514626010571858747174923915928638332717560808398040997213425731"],["25917071249857434788308764255414499761975208487762658714828764769600928786319","19843666429576777745358705165900846402020695262356927037029110403638574991861"],["3295332373926995090189794169199028962835587378125243404249472976410320801959","11507117911072639208140517015153131555821254638629234103047519331162903562392"],["11330838145266739487559202927115435820971343363377215049565894878300410277565","15776793732478639847044868288622647199797706218007693815021794900854778138453"],["19169514027460782473183108773514845769011456445327423468865118044909738948972","3255707630095195425433809742005811787427432715061697077546276168686346630262"],["667300368243656510313090657520624481284987213885618073436923135441166061586","15712928343935479050247740896886872142018591609818266177906922982588178943729"],["22265210237892609831987723197046520605467953255371640927040373188643574036337","23896000746599493186126853633950766375034470863935650715062389981682296071796"],["3528573465439194674716611423950735975157298551177956226827219599934752209328","8336142862521278597621386168337581768563026892237055016869236634474740681721"],["11062568146086948057520386057950656778155973114633457332794191544990624361070","28008364442961567763566742737070841944593929597702160664295320245735385497514"],["2057913994362448116578761759086538794968684739862156349045710417696322933280","9262141874809790155692276862324811755942545468296537565292336285871371220203"],["18397774072866888917088276768815670523343275631686176177610951351271983062498","19748277215679121228925396139590386447559548595729363694558040442431400012073"],["15592684447078622339147829245578983650730726772300137688912259215294874830805","24329808410958262710530400908973298893427217628083114034360341222688052359299"],["25589508112610232478720841880672196988243457273532030265538319053094407631799","14855401230967488937598219595686934296450586728324407958075297372373458129217"],["6843054534320540905721491818760804763913595459861403146390982802740054347584","14669301131482783543701706964266799310003247526806232372341737871563439516697"],["18112645140199157106619127099117640690258479286086460979437140994691890576122","26006755884855686353233775669809593176568374094393069801902164899615163716949"],["1821042621033791834973686510103261932534981962921425621408344051858029262999","17362217139969631508972289974486152979668483291310142398982215128863057605429"],["25353743030474200856528636530044119741459247903967609739552829245582129387390","22093177887167194086311097741099997913043107645104698070151501747350878156292"],["10909298937639151838269647694099857531288123615857741563936407865808527011323","20498689642281058990952049152086394107417662246653519891830759279022163901618"],["21072170199167958405089546653584068730615240098276317858181942292418055440284","13154060423913912892228188924985419889653112146772629681280410587403363687263"],["23226563232802064862517941679306278946946411261529838252632741198386964529457","6785268063600871746101210898108184723109593273063373011037289045644715736579"],["9169412099891736259996375436687456787496304500468845196459303307926187017856","16904974629693477214549157824864258057113489795334785333937359360270543314653"],["24664603475792398681323118698348798329031734602296731359349385878224153484774","12197322185342452641420367772455513009582144184654580452645801126647878543954"],["23278067558579877338195708096087985644240669199879426805111104918285801243831","13684708316277387270923926272988290360489633304479862012291722350884787256218"],["18712451164386918846558506542413256138674459757762936722208953411231876191160","23444634837739667847648643948428193785219814422796441574854291444839058226566"],["25426509081101447960790997842590747232075062369004373372748458337182781566150","21648813700032063553549096575408950707978307337702234626312465733264313957891"],["147714420711613004224792669023580245533726198702823989653184533846789104642","28881667387787951273694936751604657227821853298558929766728140569571374726501"],["4285120270458240508630099310432538723971820411819655090586247828774529274987","16347928573282302078454944168911454709522023417233892813058493636876696021602"],["3362813345561460843144620179338613566989011353122670623514359860288950002265","25222954388747515110710072869960553820166098519107934838696447118751502056088"],["26548310497635881070243084058751998897516856836498962119513895254748185684857","17476397929823666027092265519436193233047669539077782499740142528194300802525"],["1945774497756833576298891254114977986500916784228403370290122623650100143077","3902407191873693583194988497375366915847432660765163025429730217253018547984"],["897955500498482342992672834980221255156551604823622008313753858868840764012","7418399157076590929556488920196649005454343893045365499756167481003974130275"],["26479780869266803163871195158063697531797673805941592579836573779032200033969","20759390139202061863433442455620818750411170250676332142245632506111241953026"],["210004840167095043599210254668835243520957453211083350354096371501970553975","11935637002078750469319168244495306879434943711258952218514538243053024176946"],["16510314325839841036457300881508233911633536348357686192088972364023512010993","5358181847094822909348622660648825317166043496750980394462618976659445198101"],["16055689794663289068988576079661334035751694850938259205359517336191599189793","5367164092448355129746837503659650945946541017402323061224165353179637178280"],["26835728571924281478222372896731872395525513740743737620946100434675159179236","2911812498552368645737458277452205016191137896124821850908569526841587976050"],["16947332801523216779348825881516178069388635837319189265965450471777585179118","3047360402347234493242408463075210420122299289205365660100486410929529209437"],["21946706101319955258789430542108830957421834877217504715678825456995665691746","17802303794445862366100573719028464351766882878315070733712412441191960226781"],["2802457122714138208743322784900397390018671209679576449532129464340801759429","27529888505425343672516211023880940461477155339606730126446924019537050613383"],["6078932681034028239813407290159553607918063361120519310482294091686606729413","9565953524550032327293146515094295731537602242138637962223381390836299919790"],["25031312460070586230550120935307681975964719913831186500502566418700965292189","17711038113979051990186311179711726933776040023723484486907044166712513192464"],["9180226557452043232185757709355307512537075981526524268078276804679393829560","12967052317846662086767703947558306448816301593730221879806351751904351908619"],["18502786714729955193996610982118309987258185621934975412170163482055283374371","464926978655866839402541286895838062944497424260395140617480814420635042375"],["25334904525858438695831757653865273286655481759383051652818538282137648508998","16881210704671725965390865149503030027746803966011366688447866572183649216096"],["17634404080934451773283303527629519183053320101638899235284254280611406040089","20563282014378901284913097891124165652448627817940934196512238006892760967004"],["19607497126462361588732154272250288505578264054015188346807350667173374953897","22350057576630526164097804905902282172659535773589850212812149746276071367234"],["23841664031709910380391686291913285798356493278534791112115728690176437928904","4987741371716275283041172135873824520177156434764615833182339880122944323949"],["20483036972793921275410623324778115991288927458237433877929730660142997019756","27418908580818054519682663563070385770775986230763197331732440598265176106896"],["12441076391727342156577902043074564198303356072727846396010300573771426051631","7927548618601337296206859699369547667727326203364501419895524305726348426045"],["17823976025216053820114741624531746710472450112862591816684904027148892072243","17798295988431663588408054243617886125519439324545989660712238562846456631950"],["28827017807061664466792020183158258543486352040370467866278971502329233080909","20282295044283397449601707973808664160067919096865455060963838962578832833607"],["2429917307408031304202740940291122935693107713062212034706529111151338483246","28368072969367039847803437806901666775356383683849998173554118084072170809644"],["2796000532579194655768661941582824541412470256406319038820121650261418716312","19616172899312882737902510416600232675312128013508124991551517415177103994020"],["12561824373910869393328027282625904484856840727562272237121544120117398786386","24554886398519538468685015934924750636946952071806265720008820521162784996981"],["11602542099839832004718197732044594732293211703042784610063577929369404052094","24059736174023241051083034634855393017098382846910053931541557037465280743306"],["3817284957929224781866801002563097510421294599412807595527006483454533374383","9752112967966347487616425920278073931867374945646256856230186786866471384164"],["24363577802136689632386231713153890761528794944462684342577775575358839002375","17722762145291606473537880123635470745236400955636749478436084723587943674049"],["27465245345198147562485472979440772428723148977896642307839258244383844662027","21023885789803788665148078391322936157656395851349008658097716165113136918326"],["25476039720472120583859430913269354701132641896293905419185759172558224698683","2486323773747358736227292372034894125570396703480891982963648623377830311923"],["3405386387665976466412239924534307804249596164864342606185805496312228651461","24283083586866333528841084722954524765358483455935149998595496511920115710103"],["27003090148372203729820832385936740072328081282123507817497512440829395194432","24018250936673322712579310941686403198744556209010112256962288646610784156314"],["14825376978787518034577052943957307909102895931442910918702620755536825425568","12389426009133378156049392849839333474841391003447889076203737937074405079438"],["28938560928272186061116008765983878369242751026778522551881419059453260907479","27085983050171396665969973138855466038745128595750770151289100682071517705812"],["8080403816824748492566899359769021092496803820806396953364044505806809152699","15795402500113094506855064236045830312099787950304193754211477864329176432376"],["13954931527368965387467762081426613740964843628911433939479982028925217281431","20220945168188486156011574471191847407234733011992806756504824877919842256923"],["4752718995541913925189792860284030408203635067920650977016489534038120698360","15319798617013707068001604719035550892790439115396857638307866528847149832201"],["7324031275956779708739892315085723615586268240082905610115640364562751457952","27082141003186396048841118244552733333418159806205956236417915413626582740167"],["27916037813586939783852835964266073897408920124205235686260697280141631537909","2160625339473706731737053945095523549374492251792674399588083452067101145714"],["10722317102995634858261283370702538867910507582976166095490794966547950370365","22427042582442006644270711975452698172985968375912217950648111794665055792220"],["16700228945995734880293017064125427089905004655853814439784199161665762828163","5258904785491932975712565063603178825134388095425565616519932317820176355797"],["25411924664786994175467118456682661336488607203796447535450827614100488687181","4369485486562042678563225500127093856809177845257984797612245138439491269076"],["8091136313682173994044277882321656665004806171194077277307397482598968958606","23578330485704781058186570697918506185539540677126427708275504979469487768918"],["7019132374667262183664216447968101935807782118557336704968734791013760875448","8226463425467991411792873796814589138812154407141132124524711818773546608816"],["26844456048087250131220622968602421642168710172455304999566728087543947122883","1196545613571727824363835458075390666829191843481314196404573099728223234183"],["26413261297692026465902791877172317046564378746745240778975080887349354667152","25430203647297667746026452664539965397037407069995522035010936106477264882019"],["27992815516412612978909867655969319133810669295992744268024845454645241971745","15433284908352872413625629854210399162919818444638364205649724689534703142772"],["15587977097056169089758499973457752309919870845928287657143441176099317082636","675387965805803127721687422807249721286385026469760000497686371571585099865"],["8269310844344986800945598963049207249804219044885350759068426410279520044074","17300609239695384110317726651486298971605179160681834849757701980509070697475"],["2868508682693758172738215571594733431031126982227811900277947381042431058359","19450746153471154619359101333696520133145371052389250043899212907607450355996"],["2199909164099012631472501563061163036252441875992442580495986957041096615012","1892355732968501135241536922724128101896663188872836621707679378801417509922"],["26106185795213046875142286603387090362128583803418909979188780905961608460310","21384610917762415358264938925424505071633432155769068961045567606875410332973"],["10444219438346900113070171542765255289064954864076677724493677183593232818509","9887113765197113161125038788420627488111308030135284148515073094243197796732"],["18477962253394188538779223464816526132681520614809606911809909226931646239182","8166877229228747174621139417666321485858981196914186205157035144028756778912"],["11778825756867574014209038796714862411399606725202591354613118119309535223348","6859865770585851017443458271072404645923083458173904977041773537084746237778"],["27954907942333917294868612785180895906159956522692867604472383180455475439370","28453409567477286450859629006501618727394074125026648277626619574161312647706"],["5954029002167386612056067531688220839414011480035389822846142837559362175954","20930713202525750105228414056822253349879634303758763661533473730848433341049"],["2741642270579191542122756985318442663567935149170072681021028812215677574174","5709617003003148941902133209374412982778914558251262026154050441309546819957"],["3141019120039129704434233406508485569168828575927589893089610279721960558807","7789164028821258826920363792951336220987087217889913525711007660376680626979"],["14691075073794572111759004189967642010613640955533409974265701674162066799148","3478888961646171680195017415761124263503709771358143665442175396516510567628"],["7622841462505660042095275835905198545862588417378828373510864082325155951764","11836272037035479111627853912346357526261507147679801173720006957233586897160"],["23403080414958033389786108668458447824278703748873699025888466879338636886234","26190937993477901648327628052751558272894401165247493491928339863376902953421"],["28407859872348641765878084390421361111122928807579057856547239734080820118329","10164043491309060344888214183112878160290882001381679281828120171376916678448"],["28365489842034267987406171461274865316092190755116633020412673332907182630873","3756746280759198764455208864894529220678280758355378410333682377159614705038"],["2293464658570902850815340784502669892838157806206531011832200026662496046444","11750096543450359214532978214323713582777794079347222065907505293938504449384"],["23781673057454483606875300892163375424833000670615060129256561245503032330465","26396661826158679716150534856817516844759223271380443923759370155053403195462"],["17924788770692433842002296768363247641499734015073824506661747163467991000588","14810912013095178373211921622739218394079296740316039592769669702781243725921"],["16515320647501970103027858449104978730049246165609371746433991040967532219864","21545102713376440726658516227292637373710756415141789351662861620893135589152"],["19003975095465910723241863595876223282697836098920924054787630776115907290372","25905362999634112946501781699846675205522389932901452644211031501386367617948"],["24387310071198828626338408682790068469288612669815418407230456252547294862845","28831865942270750037999383602779210218999881229223173449258277484679026571633"],["7782351460464096324024654590660798529072930956092964464237640154328865063026","27356561281595180014699796488436808927932386372120085860450160088516828184144"],["9346703281353073455029468060679934168941632531561470764720932361632031041751","8583983487642973756826946958531630211536555060996060445324559687783851181056"],["28619976435729537178861070466020347275835216734568051483784173125782547892138","22128116600540125029574279235699064710223103572575853630175867880949410276670"],["1973217903886310915713301948733808358791225577710479021508625629102691234368","5275417949708394948109825401899697338479873799749771567487254717724328363255"],["6667066424620726911042493786115024676798040741860232859665368232533949053515","25280961254168677646456210370939016141831403551433149362962240308692613294254"],["21591567427920646951155534040745373451041395277547810767638211253581538454581","28207630494296295372892809837019128554446118384895040099588623323836507839304"],["22947261965864709202399316090613741487015672777536503882470181317358823003071","15938175663111265303477312193786365231765590384162727923182886466001985741250"],["3342537590471528300826520798881412721995865474489356870501652889858796460577","14435566600842345399249136585037378790180539463568423324449650282809724894821"],["13078233233756116407184311653523605646403177941885735913956555326790944743849","21810534937315625507083171882410053549729287054180289473550005084923786370800"],["27134816159891327095243020794670091958079848933864142560761677905608926850757","26404636970895233743738503204314481350009927631896590984055877247631725480808"],["27824653902609023226277431076339989151824336036740517047215603073693012355598","19666334650698874760558846245067917348868542267822891700052002019675700562968"],["21068513000335355599176090705780544006096784090258009686891456863705335518455","496866756773560237139404053554230695964158948608960413787824026484222704563"],["21065431509464111089514214997825580748823168084860801603281867138066744967805","20593359851817947970003356354999173955113968196074033250628542637734167251222"],["5403902652186657357957688055697181780406631369367780381515692253622869482312","25137135036651498414807359497278531076730227152768066024881993338720227579726"],["28136053994603072847473357968400820069798068442929165081490660839849612215350","10121662630105564338855232134530319503644561020780342987695422206200154370208"],["2197823381905082289134746486182532797140555973787533392427397498472675636403","2399766436875901363505684211641247497493025372406066825649361316299956802957"],["14185393974249028093855506956539917034511064046733834190270728504741615423221","21704394117698880690231051149515716558815840457324150885091403508182446718200"],["20523475372679997984076914057369424603053871549324383201328124481014529830878","10061893594443223284670918534333628517157683540359624004501128260413843101163"],["24064413045726775508010764490646576349752884163237263233175412188819793719857","12501818644211323667070107836312542367209066791185458374964379078995445406953"],["9488705291917266731899984387969747518576220654199222766904402509229747199415","22494639023111840675870750337016446881222903591510160080854809141548392546075"],["20272032831689283203255790603931317395680868852265223110876517301122731163951","1626324227548349782968185901922915180235848421064661966969575161041704595606"],["4231892142751739415703255210188319017371260691552800301598408234962920360333","25741781750553130476353907379576054590046271695204104887592207979003546506215"],["7398321390529692670475195786886485197099114317523137775629450062881703811991","23634064946335388524644230136388639740848800701439028544273471973170809758669"],["26929739299787472314083642077939935436110861069520311171560854744887329404057","12907299912196342940370970126195899794705339763112063867592537699086161911310"],["12413868944032120555651794442275522862596675745474180078123953832118799312267","20234974645561982189010421797570284120024983208028162861788098557765106385813"],["1410817159265009702092077979571072254726677791515460706892411596419390513089","25955442616972001517099963261593955051664184099287996088107598030657665488593"],["11948574275922210439618057503120353313539459423351646238084516309693407741480","16301361383105023056972193756463557726223018447078623996378773753054200628548"],["13458200356166665269991465015005177914733633978000725096240538127874287089813","9271738292222730490733047948019053539642456504250771345296250713690552549540"],["17382778034765983221359495394038942767738429512531808348123407674975880977228","9169170323945020110527854954981161376648495568293410928350120586200715204354"],["19400078186202104475280246518595252656354008327750655316404658135408595158014","3565736133503873203327235395385126130371068543371026929066162928904925557923"],["12872547221649638898434397863133482417791728892409386593258349503140864339948","16614200882839047943018403160259827604198931363313722740283235099327527189101"],["12205862879468833279488354640307218890612313689598926782074883903692343781852","4508423865795655524861259436402526356896255136929018494175046615380086189923"],["23066287139352821709097608420784753206657477087578728959337315580316930697837","21647552765410037467149182767182524422057031461140947848205416323219253711325"],["10833672850001166162659993140307629676536496973361085562094415877109858281204","9669469694259558466755226234991957132263732126391643942265985062305794498666"],["8057938211798244059211611430676669068268003346082210473010982101646288805018","19354522129131287110044360172568535073355987881304143116145606100523605100545"],["10174812199568143092304270158319843482184520515600529678144071780172465820825","20379611846699979991916224341028791720274021158387704364776876848582684139361"],["12993745957123726487476317947075684102642456592048932405590301191985697971730","4956407548429129176433692940620309255536836358840374002043040288952958038646"],["9225967295974365572526630945126735066065833124872597997134724078623823876407","16833572152537015945164547252520778640415019475709982681022034580539546424079"],["23789323203198101990263975394392241302463628321185558000359321277013134808882","684773910681135038223827174316360909988738700498284347847352525538524457554"],["28386779572115236110293052986531711588050873043612319238913341434966920445026","25446102810797379793395397869185505969741644490656357794356710063172373848823"],["6693473779585300614301339946729050150396816837099829144266826151806601267870","19569291367731045772208765627545046644421407673273763082983174963376535316904"],["8133179581497459846260752176846575994422127868745287198711456879911476396070","6611996849057147646259941007443993944847982852648592456526254561379140495056"],["10712018192130257525994170487389377381894693613761191949050381447139568769532","5687873303780351091430055529207099595153480584761722515376613186985225145490"],["13943674325019424333085379060239578692257026917277833852816316609245568181068","4321654536503106518329255725412526677590686521951535454402355075631577300999"],["16769693447168090978881654991448812650820874562207086214454972230535119947729","893705814576190822448206422434120390778117795120976639460232988340191210427"],["10135093136422293028185846255646492199740750074650254853382019946929713060997","26129564085256648078401114694449418336491476337826734128905631377135286289293"],["27644092518355837093757504093053780579564991631232337701115269073275608911938","2492507425699713887355490768747079661458405049838808992499749656246294192496"],["24894788156085205013225463872872385364135055784350461628431965379150943162089","19163445469681473822630895394554936022943201202126389652227187279297744994233"],["19341218105590417443043580575424933606507752791297131227634711367685194808704","27633950562199968273930262011496551764404044029053989922665064912049105731617"],["3570279810256658117047968440788998377671514751274475811616887399709665777433","24560326907781328180675685194124139783119693840031823681740568068633012685501"],["2587488234704235552604466690488695697164345218809461766139093281387602786778","12592843470031414972210620839963754248978925418929585507949806358740369622221"],["13729379923990069303107809143574302397219113491937013136643061703346145589014","17574248759585652246607350631854553529145528200738599883744514049545829814304"],["20862180372053568089153689837922487454602668969549224220587158105411228857580","24241801299659804241176336681848962109875425220886427065701155730223898769286"],["7730477785903810998013975222427041792298552480984760106811893892581758991665","5868030243666256275806116157802659331202042754667593259767839629089471542154"],["17390956698649958553739787441614879393991028298343392726634593942692160831240","18930919301258531599359202320903872508064168081115370403795697190650528591017"],["595431325292743663814618331738233637841220693581024557510565944598134168655","21549094441363465098147309506339559114211755311200023488175960106374390676887"],["25123177065110898842663484827558807855592768956871795633341545075411019643992","21505845923122315519608985619400335126848442764012849784369017539173613398360"],["14627377569919814723642355619244048977760197523134167237865224555686502310624","20328885585723144229838451622444125566106631264909328277734601097987673003010"],["10171517794511779404618797460140441338406277350316688797134896278471185902191","18492437717100527514775652551012319821817624430647340323587770612665828671499"],["7849233133817534856638670421175467024516978099923358488207048192875138386493","21487536717173268435326757819948044562131059289044583118275457026688400560793"],["836391406703795476580125566259780316403393645643278904947819775017253891531","12480530493897148450935091699244188384717524772782528316423050989807740645784"],["12236348975759327111937846318272585459737658602906523763857173842857409186420","4604641549820785594051916487711191192407468332464580955437079754654243499707"],["613161554006615018044610427010239709094028866618204793093828075617828499845","154739041850379752031679035083463656456627380755125026167641441530090752533"],["10428117425698269560162441525463162171620921930701058657346226149758896682196","11186572893665900134940934168076221492721011763279656250450803218772628493944"],["11958045112698032289509658553593195181293271059285678166642134432769787965055","9958076873935604532455121012010295203795702332709008272128160400957065722356"],["6080519518732596330705860687297743859613189276393890464135233330547625806011","24955735990433166335411531628147127991707760625209414708289106688469752968876"],["23099157690656814378470774814697596041479890464743407040431855657912003244185","12289359324237186801898709346338282009088272520398662753457880176469534160102"],["25368934935720356584574294259947516802611659153346831972399656772651001867438","5786382792977133125287000155359612108240004291892564589265198048096534667868"],["14088401614001383149874447188933349563426004371927840445700319920759442079183","11690708699285674482191277039256802976243986167835553772579395059146181108319"],["11254478902788049919809743140028904851938631351761212621007398630836802970288","11265708594564281345199317099591451235331189017681709903419099901235013779405"],["3573804638883765734662571928273162184168191847768019743048616166473717684477","20769488851587717021722292964851411359374055913358688212328733137028479194351"],["6531385096840334631835552835187178908842819087759558161802416337901016374948","6858097455614081313872338304561816584454666255621566088684992263493995713728"],["23601542130689936783962487864337980978009633159664322855041863667791268072327","4822152974700372203194737330264489406372620610538725278061871521473147404855"],["23390603132140534285842864771684582121798214325334492871672455040458523410840","21760361935528369864809262425247047578383625899953281674022896918166681967267"],["10003811921157710144573111326556503900063367388548280362412971696797918669228","19060228515232336380893362586832150220533635673921505921671974920451266314515"],["11119301924822248308308482167381386800894191753714190287312491842808629383657","10875122065997425476249567734060943748867895456736500915628394070100244880787"],["8135154559742991728653002846950014092041600453545863910956186137781718662707","1501845906468743119798147638721752983288872650797295615000954719641456305079"],["25564104174046798249555349043230854893163236085080756535772221707923046047468","21026180320844128167907758709201564049823690852797251562138977529380001633510"],["17424057263211994359277231689940684074520798834962519964153151202828101775716","7118890671078665218428360246383635191338595089457188080183746959192324086251"],["15196699634785663250427955969676994936525823501906401547677541602220712868580","28306306070328319393613377282646530641641285642552157387248173125064928128682"],["4622831762756688256332745694104874079136610536419215408069783140955836072095","24166090671167740261093238089860947420012271429899374236831265185424215987258"],["22970275247255846380714738034837533879924469742451444432298640971439571207927","11338709770877049464179748967149628464127460337910326373058675792702088811801"],["16441126186807640440253470236999873780045647792163063372844072804379691733393","26804591131055345390526262879395567300257391679378859914798540383450008860244"],["8338695227090450248958144661520914622186191890088410653733122303894321494242","10550683180760658454985626335281128766548421916930845542539712945911697044927"],["3812178657174146676845536789991786593368666260459533399896212750936111851984","2699605604366598942959395662939446189893805241541924031901788687797707188322"],["14918333276258432428461113609931556414904426408215223844233240002565341416261","21226481566210611570989744827905598739105158924863877044759380979269287935825"],["9676323573949977541829914836518750304222986762192843645809378175528472006059","386279513782707828164958167183633884101875289853405086750192677046292119794"],["2652435488381816457764575000222968395626824742758813764998353927655255165104","6802264768804632514362939777577833175995955831021179032222041140111080169254"],["12154507628033393794615588226105997208916410550407732136878080564333400002784","5754594491564949878386147504526794367024384536281805577186427334088899379481"],["207023489532567971999341430020958272500789383250966466417841661194001194725","24651854133567955683772465749775659397453259793740377137078963201742485508651"],["9579056241093444207792161503107620565580870836179323346635350117915606992141","4233426266829334289812040317178999005781820783879762501991205603261417595339"],["3773363062952973696105934108774496785790995243242824122750748558213704989422","20749878450168724824098406169611873408497694641512894388380684775429849390547"],["151411576786884852652094546224414379073584319067546570646893606351420819903","27666514925588509806177027093327227688436284359042700804444542496915491319119"],["23534625714303877824857859358965708508760826008326826838699733773107792527103","20516467668373538793786227783174318610358647534453229631445425074831596257404"],["223459632993731262233132189970723640199536234583175231556132817868755636325","24907429756834921279403360333135079453669000682923732727679108743866794851887"],["6904288514006227883559324485342549676297455751305180985956406091901519478579","3612378216283923856878787793130691134405394165908643904317432433137420537033"],["25809266739627695307473074140728723659253106483972886001508313441820666498477","26714407836603001520100556669695819599178587994736190160701435492471495673493"],["3888843399172076837118625295418676489468371681165328418952981069319062012299","20691893968619697654583557604491081558936203633568700334610978641974716710925"],["21796614103537195469179151104691602266219297296567766942512558117431034475577","12047783749804005650898999162090712971053608060084831236657083775923683216888"],["12869654372452464576941707577404802423815377260549563387877880839220654405921","10857066458786327051168336995626679990094796284394591363155630661079186831210"],["2120965854001573596694994188675902407439878781934476506943518455683508899037","15559265820365971141490728892138653248089840047815971800515832282611208106500"],["26545555438045368415161504979978499138688192829372879997457408458450024605138","8711449543524344895772241700178178110787364237499643348953745702814609441846"],["25731929981569681270146717969077098515427000145221169570929868740504629307324","28938599089193244084427598964702782003689327626939649627870286181100208512706"],["23982783967092885859370859740667411706997202256015233459606632543705864426731","13266426006411451089371753686817477332746675048410519206071505984226449915579"],["9121135936254178087707900569819639098408746270422211797210540342736470864429","26645197412081568008364529594006662195030363860407903203450403583464626333778"],["21355386321548575707670804029839069772188905226691703247975430207643454084769","21669684668313885317551249778300949086555929442320674953145611501690317685717"],["25541838317842437684158075765439232023304587086876320979529321298492878497189","23594492340481223307030853915198992456592769606915438579161732792783540129771"],["7337506995234629442390122351770695463304583228810930302387887819130716981218","24568037323860497608787155727877626011423031552727116927699254995313169986876"],["13210579707713599978523812402792732044444219731254012527024317790874856944130","24197601198933850800214653425412859990264964670324552568877830829508555940333"],["25487951041444110017614627208897263191577399973958284799706919921700911371116","12998215704544909114745630337755597917565823290625043716384102046758866284053"],["5111006621446962194706033368398465140386282271168078278793526340517390863696","1783270571569724050122277033598414270006087176739010593834278382872498165082"],["28851031992934798548813692563626084260816008869799474734575111647875848715330","18896502517600067971567244508574351096603697231210274516675142800530096599601"],["19696999431232173288579031428084104564850907722327976430103474048630155665684","3928486605804471238026809429157422377164564279272250838160922027952814398310"],["9765485462890380735085334636228237178297812199398654207416458115476339321199","5938850465502112192731907643870682691985382181743748355273664368754955160437"],["3639002532836471427328095156354096220894212531652977302223912881001347411208","14396723149353383652563777500528475166807600823063972414045008493222550095132"],["21692528271805040286757831221916926290295368155134785222795975577075327586099","12266128863557225349047584691803415542398126657649806147718498038271706082800"],["25863771146887578804195879428741499536803223712497373435962849843961963461044","21938634670748130610313118022136782927152706414363483431369469533368780731188"],["22922969822035717509763963199648446483098715894830242031440551173201873627208","28768339312979144497720242367192637226508949227212191851554417846947419882339"],["10761865868274425988119722984532322323544338106876717245582511032523970032772","7020982374969489498755099582936524490220957868350202861550512756394007619672"],["4735634989681293270215849149756442868656616190212495605827227993623634127466","21297868166965210749036195230806602987911075778248316943931506549886214111661"],["3669709025344784003484660333693393320614502400349601199772711779736859800216","6041640881531691845798910731492255409938022363853687996271752177945051568608"],["1116058281709766830406421186383665083619895217647802897723079792655962169700","21900096317191028723914576673631999521648687402948627773529334239644357190500"],["21309037713715211632273142787935225092176933183188849799314012079269622099139","25804016730505644869538463211168799859539713401153114355636066904229171292691"],["7368967540766085193790188229995101441259478323161523845087512851970603493665","24117414757287039745941425635415267905746864898856780946428858362996357982912"],["17958245706680006903427005894010409002185736437452011202117295803255881383773","18078811650906909670038977241521267440750607446376246261148396595179431184671"],["1551825681415104157381276952439883287783286561062865616322436085263330565975","16300889588359597586459677392087948640856215893556702421629830074039697918511"],["17565028661713259087714214881230674038598115447181342397467107063924316642707","16456701483646882369516184758326459302739698413652500930036379423657898350214"],["9870414405628224649859148943488204162372058464951023247647775180729758684382","9642961823117354794061291551447772974489378310343664103097568464647696813929"],["16493693422339822266507268421824706841314853560388539944528181858531504325062","16713495993262781311498069443208096815002250032029681899921715548320426189572"],["6681286393799118641620680411907368195051664750357381964116847760438324074141","14369087040423857940723217962024657047735830612010879072225760760380462537138"],["10827063810606232306005899848833832607858384192687828496897159208436342207589","10209523487213083434748868317341553194844455388680959732996462762317241320535"],["25549976811444653771187307833116740370830977534221457205967516933945950783756","14038228485199312465945380179097485376519549581527805686876695138689220374288"],["1442923075330990991438150590958454806907046914959082360778554145252626488959","23588469257925413427611877569795199501402433756680061971518010583643462299472"],["17020261744059718285461424258641259547887511869733934277614664737963177292548","5760372955771656341661053847985941750024922900613704549197040131704501111780"],["6495419069150905615846084196841416477175964515771505010511769169043710785379","27105524407757357096147206569980197944829915183567780053083157734959338905335"],["20404942223470516106782460675700942412301840227754037180251835386204197489013","11249589162371277633160226870257313942495003763591887372759031220455135491920"],["9583598693060018884121993166529960058140283304213040838278877696322123650659","19699865885981376441193951569538755331839340114992260164196708290378071050061"],["2299108950701335977497050925793616257059921264122384737863777281719958229052","21100322779502802998271680356257913137553783633040401996791308734458799829542"],["28162786326448672011555663382408876265927788898535127969008292145827152505794","1281483602639942037512517717845022592676612865241188834635374353031811832716"],["4878928922182577394054454735125260681181450375442658942118540437691066926685","23797574030511545269132118917372006026957341791144300263780197920334177235276"],["16880125230226853404136155903771017285829426842046590854783388841604157179802","24550037995964699527417369441549988049215126316579577259754558008962149809474"],["12913592060944024355076703145643581473150879263450926501363625800506947322866","23695831126234551298518125227263902090395542083918115676517028748468490684534"],["21221397979925455016509040517322898440118183431048267467725389218656390531248","25484619739773697270040857302634948446656314158565965460530401752355723743061"],["16836413570602093300274628922138830005968163874516077465164084835855368514518","24634796313074736780583907550068183695939016089188264978712216777103129074586"],["18182589353751537667703309818508435663188160289471820652513149036239627897939","12913101069952639482768266764333230668756504584919211618108330795158931179168"],["18682888949985017973097867169379048261996247840136670041695717978803350480622","7842636764337480726528833628513051694002080736040876407418166945431114084483"],["16424663980412550036777067082610319050507009404412751500885168235195689528083","23102477300429482638350222366166253094296929328131717261400142933494011079821"],["6388864697564874789160704954206287312830293528845120530996452466787788866495","26997108794463963781478142614180187224662495743447349038053126586783715397109"],["2751182688004462632319248457950483658534755944482563958907318816090638735375","15628922040360806876113820989695355896628807458981318813853200264752133748512"],["15758508641107647133648150814700754939214672840413369088019524350994806751654","10714884772889430131503356201316691988682557261626288113931289744542763642420"],["25717561557600337455432452180947213022113611838066629565968689486904005310052","22128499578426615412362382169649529536916458958687652379196217914211406477035"],["9753265663383233594208808277360460952634293814681726727972075678267236848730","21349908962469026925237899337783127754877506375993000651446669491513687493890"],["15601840252600360541858742009683982445741761311069703259557579677521204629889","5821494544002073868897080289070480714015586642097465315228224380514036683284"],["13988534272702203880259252399360127680549886639303878937850189246236261770251","14834995983482809676941405978636615246902913058452763438327116891790131489739"],["5918235316760136453308461391295873863398273311959482564088390388296620431077","25445630260261908881246685569765424596064585136287085418515262683507643541544"],["9469383274068269212416937444141932972742129989673422717946282832468120912174","16833651689029135540373865754821961921635492773533124884514932880347809722716"],["2441271670157971647202284278596184597988755366380950374877557890730152400200","14710206280890904805919821509213200474314830678825705679375939061529973096810"],["17587385540799071008303196350737680851679155186320422752155009188258070318053","24671315087590626969982127605343333895310831220834700275259880788740808774421"],["13706104800127290099239764769931866115399417764659398434759713269457938480888","1415115069430135359649579678027802241599496863989858822336879232789722313550"],["2592153916753103204852118019888140054687497408304622882763098637120480369646","24861200450417197881378650593424666838048605773275620109599111443340074191003"],["24423752557279331292079087432870547595767063226740579044350415774383901005671","2844948510981978458176797568077630892581968283353851032983840972513091929628"],["13847081172421635059709253573737787905049105371516032319809614643638888406991","17546181779016187590841894099011852545690844350443212799756093823612876632922"],["25739115946504217546395915258026904600764425868196797174751573756200571350547","18071508216153364662108471540301251504443711648919556277673967153076013575519"],["21675368872997846751719560123405429540270123933987482147834940177578949937300","8928906609280237180065530477365360573172674559812168547929738683057832566256"],["15610960882279677573942930273408566555748555964023309334424482513035057053767","16430698649450704035479654388320062257184991136674964412735914135403948085822"],["6975596305829200743201177859820349646270014960734728894409837649843180290905","17345544317039441948684750592007382225029420782562632162200368873438289126304"],["18588723604541347549550920818463193694452820173651041471862521827838376757014","6610231470075081937722714009920104258601349624395814892418591119856910797441"],["17718129504710039787485443304299272176761679736412458195224920068328539722382","28466305390480769201809494202914748896801778527631259674882396455786597381912"],["888717915984833093504842542546030942642740380649495228211171335459328165306","8922876578328620370848250837181053736435482959592926278723291384788392937197"],["16305001208215629646720722026372844349830836767236414181213248182857076565548","9987578773545619771062815792432044457187420312149600338545875195498407466975"],["25352597324109392444954457219605971909011113328301551393552282310353436900081","8985089675977051508449261294167831117969992118777350062830467606682480784778"],["5361293203256379247422470539711371672273587972502825830203025002114957552228","11901159350929894919100589583004582541960142349645248187200702638352584382325"],["18815422781398958717457650294703036880358753361386779623641125516296117878960","12015194059792595515872117255350030553337053388637087159566709219802705178571"],["8269404481593178777382264578974885072137632552466423489475376604810275664242","18610051284347355172057972940235831543147274815235230473565998213837654183297"],["23946376750482669359127840656534422295608717400255870893113763074536328924967","8940750630001165272550421668116785619203187327048475418803714122608838963211"],["21230865598209453815511765051296877681647956494104348966468062201202318669156","10214711373552202976689472912491902309707358642842385483352712589895273730209"],["27685791732996469069257406962178812105789967193053031911195936124429464090427","12148407701636857495843968386452183822104085601642296413196865862824508046407"],["23257097741462821082836996164101982810808531104947846873357586269998693581680","17062430415382481136753311255981286337326359890068278869162028350855273578439"],["13124823510037554766055629822240700465123681329176853911652823646313553939141","28266789884483542295312706221570638330996162105687939620384109092819694447100"],["14025896120128183471171396161396418939137462244488936437563935035261501572087","14351085536520976783204112377818508142080696072343694696922088765132399457118"],["1664435615989626935606463133099411522914525350397918145559707180585786371190","20063222358465980681178141415275193117629215045314263211227212470155814030263"],["19903456186809903570033318426366291371727229242222474182865962360432870959855","16464388998673806574073191725387594160532828879400102277442549379328923475771"],["12472809496842327511348223456565306735362291694982413544701342557362496336916","18170308087731586481419028083772845114636269276345395112013927532430086166719"],["3033626233752715603812477066097610333282616960965836640212497311012027174983","16430242400558255173106444369403350420779401767105560472418802452346240824350"],["10060192018573460235394484779204556687148293346831550412331116698425590480486","25422768011983928370832555090080911075434505340517240410457710624411836340965"],["2429910009899325517123076767776195464940383820089478251745903744960822339220","21335295461416793053034091394273430761224128660454860737431650619986617536307"],["18764659304229074367476083024072448897449826565373377512002367473956416633581","22538925293248298235407299007168713544144285778865070662954327715571925607332"],["14973903827145155136304135217480029271612439410505960354769821992167553045788","4737352951053553013973247917907422730568363178009626855339586535776549812860"],["8520245869710127304861271634284902070593048785874340524312217645792498762213","7226729573432209356470529556133132252654407714441392774040180568400741572213"],["19293271368398843687127026592957116887888090890556940890286580698182159838439","5877748136761026965437440884775356728262303035184883178024645077151046066485"],["28280193110920092807279695471192869858669603541188923265292264067506362234663","24363491010935103028008521085913782545113781137368906210907851381048873652072"],["26069144916788260177334241512511423906752888298340274670549686160392103913805","11057448054592960324954507949813634631494856772949566866344971095011420885879"],["16751766845473242990772796667047447706096526562619795776367292490784256501518","7812042427969255317713834738301243643018894889141356436018255630095023235328"],["13947151014915406078584710608473404751568161315936266142948273590652957583506","18085917481149126970945814288460931120593632986653494843134806851449246320608"],["24781329305361934789527576900410275248342057484620714402616062844011103823932","3159117339759206587156492302986341340544735178805015275723078517196018400438"],["23616787689675883755490489620373648497612889443064878827543347056046332486454","18247389831398970410184793975765390842710402330984135821785725867676699404708"],["18976485828533898999092786336097957046754229035947253765572888540625983241577","3460453989154196566704078973397217244641353008315050789904856632463964878615"],["26782659079146813057030673465445754748339669818850249534492122280949236614228","12354587494989980900961513630350702291983787645629385099924677669405853333336"],["25635294107895740088610856086415170822733419567065165988830561686035335757317","27985589585474963053682725373072741345052428184235963771566479630502674924548"],["18843916328497344133943785979959054288399067438588705474937448184026238650479","11274102032703919223685979079087302711155068023849882557052596577481931834655"],["11200083998758465947777175537506843705904539372693302397969349474730294837701","26444803057117172296659892966124050221130078445863270791518572453405991702863"],["1806507306560970872044763163882348104485527049364527916496557721338390771266","27559737980038740771446675692653612229237081885684602512965840667385739359549"],["2928088845165706335341138082080707012558911782709410422713156193927262480555","16923746480075638337697898255940101311560429188467306626464201404115132463600"],["19772682904872170499903712422673232387196970415441397090050905338106829119040","14747935447262929683501886730003419444896899551513169745608387717792275959792"],["5762634594258201910592527204761539412390660978693239060880210879471764587701","963364304304676158805221491974627914904364613517786421780649123864394033710"],["1655608818710624150479246333540035018239048873424629387814353923623921570580","3784245170845893950066256995549359148983531313516378824997936625828184653792"],["22069463506476581764117372784611359160989061078592040440406940524000623244249","13556914412765782752163825022169792383298616216627487115552724906152028333203"],["15685662869466509877145113275380236531706973796926468380627194882194891135726","16890320201738486239713641636292565612084106020165247341961549453299888235144"],["3954549836860260634206195070259357024366247251469378482205618690868388423370","3441580572076709644064530461957916772466979955249503886387593742396200590561"],["3045783597321078484950191600771252964093337130237102706771445229021662014468","13499214090429478378557772275447344577404543270888547571655242496273898973203"],["14682061349089353771340526693886123095681425719863083693354704866654580743614","2394043803468338509999151686141719857230972502018548494218402221892651613024"],["21289249778841882719628774000231846550117086144610232226824312285785152695527","9781321166290765745727309214225484929133257068571201463697336106150652402836"],["20068864505627317546148500374509071097594640249285150653907848067641549556591","16936571176663594548960050003150700240111718140143015455521415362538003854900"],["382329323843881575234902181389229476434360580193469510415230765454113521298","4651859320779609445406490591616098251880226603676630797237141456151761053804"],["26466060386606587142474092542044624380499595584709032690311941049367071225842","6341565641874296840607657557136136087860663123280356710061720120808165041290"],["8433899414535385789644268734647780049291219191503454367172390770936775151091","20913576340490869382517175457404320984810019294277118817345079435462793195118"],["25151866728650285158091529280736712010910531086002232774164246629528092598745","15713367034380474197057545485159729301584601270641034598663152982302202786123"],["9084997161914584016577108801976712244056213089740353481279208186181165835403","15180293711909066077432072887039273489112985838006917987724342147727828765034"],["14121254114436675692673030172393804577196496135321160152066716283143356902561","26332152684267440075802897041833601743831571556801431808668536460423350146301"],["15379709995218922672708256197312843044795687042021933285104931431705770537691","6863682008517030638354879306903068489842111526054453992579932308436954528936"],["14735460411147807488981622736904680047480527956090322552783302028735964490637","11597804814716456094627206967137703458371451636301626273374275319673975148350"],["7617036219322532098930971107671235472804007790556103032763515214318479670474","17480745403234898401810953137714089841443509386783305165842774113421588314345"],["7829566699912013171086035331658933129555972099638790550608497678710652031744","14595385738644355162520035498803824845593397493789391617490651200651820524224"],["2280317072113105470013917183376975400117219652068257833232206427015265263485","17186391066042479231350323775613002230360582013656966910207535395248843120739"],["13035525718958355497236987178220789780364904026424149852267072788717957306342","27385755003568031614697365043991924316696018476151752285473362427994842112711"],["6216230126320154198081810472201151830537477510804011381303501599651657302769","16997661838318349581989120364127573018620748286895763147279182438119355613922"],["4704550959577119103724463537048604957135237375667106276269672717040557638145","13329146041959526069342187894016763308607651105866838766989692029684578378104"],["9936274228337668060843841670138565063145437762201804206660945083618127591373","95905728167678695941080919615353527549163239817008628071887856934280937494"],["22204856303375636522501701199686420637236673506329574398334341460726485518157","14469443489608559576560765559209548087882738555944488327079277444325249269713"],["3942153713509939623516356608705221584159805947347777503790305658851969767060","26374942001738582394382997436953870264641378368115099949405357471165739360971"],["20495522531053796355947727623640828654011204533639225387362616753053272856831","5052203964981517687903135987366668671353471429613657029057542781049561505356"],["18035771115100855291042080097102463272893434577981470026496184124636278629246","14753513098641377112776868675212461734769783922017198403925848658451729621202"],["15535525753803208619274175269402559282395095040226238449831755220960874110415","14657155629255000720871210619133814753385566598403958095662295993346388643710"],["15057392691610927415343954130386393096570369699240882694625043233805099017515","4724929513340290983454408284184909173917943324534410845000690513811033820453"],["3158324076347463118834550550776293951275214722040941049200605458252650638835","19938146276203968153544774972938891615247161179474635046831346140484112177009"],["25462884438012846882919470177993070440967339889546767183425943340961055027530","640124202176697954400118072372266774600626355325852834502951120405113263769"],["7602375966416016787606511114548608025469121229231816156345750898714156529228","6311190999999727379388760041281036094344229212208904590176334171249327992458"],["14932028883245126756753476891682146760853360471456900966872887077376076691339","20979392668933022059463892902485271954572024281742061584906849365459981279691"],["12944821913336541939296462772213384687373662254725608401860695243051797522378","28729693130849776153138439153454046617708871314830292549036063080958319166028"],["859602133078079329594868379995281832418207182290148200548456904442449893442","12305432880261126960271170803493134790638824675096491337435184997049220083238"],["26532247413924925073702365398940675236654257320362049831939000813309997463398","15868675321419925112467759342532477147014364715983887927713831253948599599509"],["26885521916241943566294564363949443858383689213220940027542850809222709727789","3346452909978961262991522806896444449716904408498307986034162819854413093407"],["2832978720661600460766679758988197336391991032769464964466432239071881319299","13973492472249430249711518062251462687564453361411927154897667703113713301060"],["8375704011306645436473387583441621721263255740016141266998558893432770701431","27085076698231005219757416560171613914260185150413991130871948684950805079073"],["23060862556084302840207432111556649468508623199677682529383971355867996530745","16700745900225854350452063005530487785359752215946795507007840932537619569450"],["25130460370211054959544076706895560875172257536711254814157052449066842709571","11676853205359819138412491449637970186234177703539986025655546591298939237022"],["1741079688665765265634702442025493804201794687106100083520066525732752326549","5791570165556209762396393297648745301443461629946011770662828090014409783785"],["19298593423097416420317295653982356217096885386064871925428202895400375494500","14565906248105305049686720856337459868328937894980467793030708995781072235711"],["9932091573126956066091132150995812837918689130998385030396129740040278320353","14353877842860454747255322037077222931981550417576738097360843495897378621757"],["22179044802966269904982736776746676570547041054647114774630068091747819818777","18318603319341957583477266379148192150605461575622063983984164393880219178354"],["9703643020735439115794149683260988206436826380167320053881494254491034459088","14073344362836806891512708126976002435234803168255628969421729960819154021645"],["1733278915902136442472016916988415235818515283379367743499897036762555136428","7068436914856984521457191143044603659094767053739452476629111941069539064387"],["26748332070605541676291185857754769105509462251094431905412238785365668354909","13718331795919388113164663410328838404384472195388418952136790921598398953574"],["15895981609519027211677371438868475246670106636121862788114236336305407583144","26205827865015524451455993134441236566585213895510974323304228704471690421363"],["3775467225483189962634012737966984255300484797306228306728796661188258921024","24048550912614614290245197227082219955523676539852324677108619595991225241112"],["6823339042360177276810961763324080781127920486833459583846529455620440516979","10485269911952537321476581540251429825031452407784217460200191702393395125687"],["7210008507853419675394862304496401278083867879669003481334334689726463138545","10336557692959367418661213078513691442735739583719580750448722129525887958308"],["25132017921533961711972161660579230684810052680470947251903336923861523056009","1761974613393497248892007235002488214607496863431734445437061477177041152327"],["16147231898336759079257421616883558335906997717602958443884876568095582440693","24831978705934119809399832481043888896812331755625124695673706585668284285885"],["11195168003896054663492935884771954166575707341655149339550736222975259016757","2504981368717478109104743138470145185852421246778384191724904502114778961170"],["14832574963591802679179670778345604126997136667671318261398680662352475352223","6198067390487775748361957246027405464094029333459918272024078600816752893858"],["14684593584793534591087588168742702754491053021404968536160926253231263337086","13469412614430771995702878696721685936299081705410188114016507882007890185923"],["18477889448063692727882183161071664426683151413923391197301346761979119966958","11067801362133053682692194369501931148997868472281865120902294068438761786790"],["23611839525263721302899320343664958451408147727504624209957099230735187183109","12085214334802212960704750749297536062075748393060143259659695931017550595442"],["6243094330775631893577255719842322807739235404410647440825059343138024618167","9515928050015024979031487772146402741359832204149732405725340143011734730024"],["1906615574244190759501171781986809977569800423650357792504557033211690022831","13629925943060846843687218605473070269536179345450281029673495160101460412037"],["21645890770642218950759281328237326413723171674188518215285472978922967862680","18716511027761143506390290749699572046313331192129966617925093694421478338152"],["27505687145773992569804702216579770913265511112661668651652104530193625647735","25842605544168203620071425678113373909021240602620572570379737868377038476723"],["9945050251153580343461505356126635830743312904733627457037511719737825548390","9986908235901746079192756968598916964398898393409439669915732178052595386139"],["3631919613586116558432871970382593914098554447113437478350651957363593563837","17561095395031670813949195384781244257735628878033301975987197377841540976235"],["10260207555698448612585931911538256958225243115387316793289642131544357756090","25937196626383542851751369884300817218666755754427038671992513297341805450643"],["15148344119924187113924885508453686691279780418165183287548664553835352512152","1151673173223382482941391657824558343415054822415312419386378120161736700384"],["11651588491756328959986273326802686470441537755653969861730518105085664304385","23550910735983153407025730595274761301611047152339429592924861842833432471741"],["13741603067707166919447536171822537083721619390789823904020124546718651017705","4810499479803795506663139903204038682894919973512519561116676893740004553975"],["22807593756133185700599454983511718091367932328188243757892044612721525138712","12523132529604086396396657669618307008384403380365435749074893458555582281405"],["12625078065298501107898247522558398956374350746801382520450218548623525597715","560709545242778357545269794008992889183964000146502838114930533591153164245"],["16623762661170415247750992168148614833411753687109830971374447003718361753135","28117557871670608637389100619792656805855486666457888393257172408358428337868"],["15336688706413562736878724624832801191601143340565938893489108292513848770735","11061064850992536633539610254243198988075832356309629687750117343312069179460"],["24663911323395657825199391715139329178177688155559985719935070680076186810098","24770288144438709657829323288753196029810925669074058732273485472499191788378"],["5308723809420308073658787756059316025610311288646840559990945883537712050820","311883077403533779238954982541920962247627124204090384160593709733007129082"],["26741431594546425052652599365621010416538949327952798331977919843542848128788","12137650240852587264738828296705036339087724407316028608181781150074713161245"],["27152428368902597286347423563439687633715013392724262846545641560407289758434","21887581846201963208875321023470650431099908463850419680516222681120803274689"],["23928624222438004364347524372015125641171913062175171623257246845671496974449","25810327512071256791763438732685679129379476044489840290560480294501720476989"],["17909498958853453126294069433521945769846059202594287533100990390858077413303","11525122127527804486194047183498108288064539659154518363146703607855084828367"],["17179809324127228960763701908096542587104097755422379318117508964880220378314","8445478388986738459888209110860077383069349688567469909787272547126985174533"],["27159269983233738348570828816668324008543769528273557987034003976656841328970","9266773668742708533959825029910143682650518276753470485113231664420306935942"],["1864777054124738030530590205454209907243767803285445029029046056031675371448","25267758433446291145608370819539380526748967411288294103573581905066161915017"],["2511788780790616937506669437024285901933650113646783563216106101024531647975","23727606196359290558900339686918799019366619055479088751342372093379432928210"],["7951930979173481903474158193508076150361543475992734629649773330741481665147","14589828914180453886817498608029602939832489982510263595278512181231294413239"],["20450845292588224330135274772776815519254247695260139921749537620465431616229","22284514858096132319366477328595389897800335288931289011643752025838455020693"],["7506970877422307838968846727725057231457099219001856242709946909826425916058","10124459714746694355242852328399635954577762999199346009090317736456667028694"],["27873844320938610972995784319842451071849835312266280088920149099346354819456","24966598449396593330194238227611198327712173229956139035940519050753983894475"],["18147118246532412383060492935005355364196033283617989889856338715933758943972","4887719602598592248530099627319616307571500294467316185913093280946825776579"],["12093945354631174771660226363774254114698324356424150309460756352483765691156","22685393635900313444272386728803985030056787729840440968251861240204448836025"],["28288693615417259587697939199501744151563081275221708075219313948326693637253","5832995045684457337748016061790550199361583300073064650745413110096078714356"],["19787642740452135553430349349037789651449925825016752479407278761289884383107","17607501658425582427551318874204786877210695373877028940643661188262505257978"],["8714053790125325734171874080103278633948119793562164901494107331586752219260","6489392749540991619145182398516472903522909658049697641110750612659949832212"],["6955174351318149443383845456798202915615467835330869992630267783055082419741","1023933511602767072031126418829465833633358014005521680742086743570926491273"],["23940788925217044352716321568078125977899131269397937427361010968168615583507","20943165738845805774754048541702115023513611567271691080625319237664331223108"],["3320997522491310486184881302372215705830889956901718597320002596876466941925","1368484823164555800129207283076932357099348334262993207984079864133642136284"],["6005546870782709280630492515019033124669011793001913789728365278420233094873","6460778385154837033933366383044963028873498577699355236553089833157054833187"],["3006558150351093677097468772897035512983091208568332291384182492609413608199","4145686869520505332375985287488881881666283396998775289759601352623303694185"],["14895737123939103590665049160558908457273980674745915592971666580978416638645","24820948794024307636869699917789729226357347763531941481895141173987403401088"],["11107991726252225416094436953925412479217242211323698887875665092736997304681","25707453582002369600162610740072633158125399952292398960026994161179514757491"],["26596797980770929629038442988659462495288088954631181863944283155408832601766","7038427702641644715302206205032106183102512755883370756138931745609746506637"],["9313430222047270932666966632944924924013198599414663086561645190761812084701","7871939150267710552771465264062356385549103897849949130268762870414342169152"],["16940708163220577406292611756204730663727326219531227279403064562144487543043","3015908650137903550672023359426556134180440581502002878663260899790314938857"],["16382269260368171289144839042032469867516582033309312265496852184957331499853","23291612591936100452677507594067215649548330025428272246661709817658129131505"],["21243817447384142064450529721283997498330644432504124497016690980406888628811","11942814658728987607895551981798500289805597860199250809274636454704605614263"],["21764393330749645709166405659614990835870165670562575336318022291592986972770","19299712600245542108398354595871774422485781879854461247959336136882950230006"],["17128906191551958640718207580467661251353019745862775652705448989487184067304","12135333173614688275017377637392874344177780806208435729920292178381603790100"],["11916773755511728550930572856244479554996912370845172023629256798203277782209","10018122303118298931845519119547949761874590609626429275410658391906992088577"],["20457801291098517542041748636308254897964547649690423660154853329344555139956","15397715686277833716500000916425896502355227009027857240178155495219189717877"],["13715292730890651983215022147269805482784455593731741409161659656304298230817","6324190527331440560172432778602173378074961781776581439085542663852264218569"],["18309261329593378265402494273511249090798958197826325731898201386217693613109","19374080338076526495858663791189311855688582336034056561891550388148817286603"],["25345412253033190849778343459308162761483724940359240315996775169236723929674","28747434249244819069741607805430234746203765300767372114323399774916180027914"],["27980764180095575087299192171276145694726312789895366890376115628706786824313","13946667396432431573740028053427027755452080234507394945589681460403475411719"],["14235815684070401513859730354672067886991998323920597765813757357958203379910","7129820411607588233711381119755692798498378161716013408632939485462022482500"],["19887952903743309274665863173932048983013718128265940756273032607891033679257","8574691118922653015919642928548730717051688798067962216554046905443195074296"],["1935212964173905659004422427159903858480628459135096456403579502975952867887","18626244032645819618248916170765264525482801106555642531011183066727868859185"],["24914964956356250957962786024232957160032581018751110582980513652770983780058","27124402921983315161493031365128761576662642210582551184870302039373189425886"],["1658986006893449731604933851287465444903486465710988510960722629755020762714","18165596137139075714302345861003518588778509681200691689115228128698370367083"],["13630129585004894662542929956398277273343677854744226147322603923019863678938","4727453760582376754374495848430566103128261205079610311078602751168688968203"],["13470351366929119378668559552618579905455221730444194688445672669029207480212","19041353620405904141551223104329745291901235922879721381473047065856302612597"],["11449024968005336062636172697854208042132941887703841887772584872856004467844","11655237841426881834062990590712691063281162971018914716918649288376311039536"],["15807925741327690135005183762346355713622091088070879190913968747593786369650","23242546007643186187476102585564125715025404168788582276514492157209027737849"],["1336898769944821800012803873875855619196325879411756009978196411236059628388","27421931995644589317547297184518950868054004707519725523079992696695491461797"],["2004989139080487935705296839164089891920168738202103563406525467731046719007","20339966144420422843523438897885690684906471182407236916905335651113868323409"],["23981689637920243404626751925017588928911434596958500666968160347409693080038","2358609721570992736694283156723365594971205284455743777683887306780261550263"],["25329503783932849493830628728192973486972602937626732877172630906742600342746","23210528126361497301475364938773597817346145833820583641453595305939105432197"],["5717966501425941951997215956030500534699334355103593659636026925047247624577","7241687844777635784862230261130579152670896503763653132093690133810367779321"],["18405510239425386674479323593612526372970212773257566321875654069628127097536","4524526504182356747225104664266902554714581292251121264740494188032300063227"],["26077141884839038248178299768949076637175830386075947322246502917571121392895","21849490169459636588858524967680241548498751188156073599298123360402056552555"],["15964184426835455371136397430277162937108468635493636940361789329457356216322","24239306209033128741440175291634057348079548223399007665201988632890956923946"],["8675240066768123644868887948357135765674981672257722239917314954649643564320","25203810007512712651763598604557065562310152918797718579177469601231020552417"],["14319123898884141821502168196007484538411134962172382353640278587956590396528","13840174067646731481971809336301586040319094935123740548041443725461735067777"],["22078653760201706694106113343646136816902091642031693555941636102999977767148","26902747488865757311959815940683515725413073247731503455373291642760425575828"],["9512425843130256256335861308522418281091270232920927447917039811983348948457","27296773774016525418659489899477827172172640034582720238653760375963374763546"],["13598656799956642833988588591802030487669487924852180404416876563896706188897","5619617084208661852139702590712543328582367360349197261412720223164701365930"],["19995542586494884110632884953467462832065432231490116700103420369365143417660","381451859466226663246733504100790072883188328008951457404217617976818525064"],["326926640616801741399276779611062170349371043488338507525899050900241718228","25115611285490255804720104464670808442520193247888674510497213405725580554907"],["23404200294204810970015349122092246879925123552658214586158547864756931663226","4988701255985817830854526725475912445167347346234945160010641405424257822752"],["17004860698748652228942860931077519931839101074806545972430073149878100150947","63102575178190851385829254223733084098605662117100646692813247440447118088"],["27762571152312243672312167846947988768176449507310353253502530995506326839006","4536735281911505275605996884017690643548018310992054996962973838529086028172"],["27560901556168532213138266128998045627112291195698078604633765722793946910637","21252803712715219076447005059578617392519256487781265213098564080463407767423"],["4238363958841004457501124214454642319824716991297684420795539378427369340560","28905175022617038072315464646895517860031437921155600024090546590940665006554"],["6517487964583087164090689033555720800448212436881470485855321860059786316671","5613094696806787604892968004522871595249479223569254889399600368728873526094"],["12835469249698745753981864718198623141394615951263684015803603900171911351335","1544815512024514721226060391329241824244534526385134645835379392539885252491"],["15232658479114318350820210696369117152857755386215713970780493442912776355145","214194058564882468977909507216675735944201885892162633725005136104598078421"],["14830010317194231535559531616371786060819377957353584698880076705270782575911","612612683038221957034041551435814092624368185668140062022118112467388604512"],["13176307193395094691803610029300956106498196347214689077246768103527425981785","4678610492296271710960716196395245142527754001101375808822618160636857240824"],["25961137607429642504056744224191512108005816182997256154875495332103851258336","10840137115561840513635075923492858143419327111424541435947555943625801843034"],["2281928700749294356051275345725179447353049553595533578334805755548046842671","11770986820786466361654264748789545834101341292914820311245865833409667367901"],["22962992653746401349311959000297421677800753079116982139822781876360048811332","10687689727736897578541085043646044101849851942752212714482287018703226144825"],["15815673121874358048761631915142020758304189706373543780274765108272247941389","20162612226475628986229371812348372070061188927790866226735727723036364012510"],["14536446438687638509527195899776834891800235701905323319559904665597930985664","6676602086970063898653772056154541789314836428049514918247846464142738365259"],["18211011335776391215705035358941931853332100054696989457323829380850991172864","27794057523712876652029217037435019697111679411312588520340197223800765334188"],["20081550053695066454603366002129395333023325812063014467051279438577009478415","9475946443750132414693919041898722900948843714856678474817892937887085137348"],["16986421259062132072708101696742078948366299503143204069100651738564665478796","20158810813225390060901034507136158459166191857077271093029500336938098418494"],["25184119574000409081138249777766407355129778305805162968062350442679502911697","18763903433900966723922166826843403810188550970213189018958579512841809382650"],["27785403767439672047065856318053149732430132929218523720223790760668142620621","26839909099415925462806717239768598796025040206083476008327239661578590524892"],["6683583340151901501716051250394699923194340252580410379733602751715499438064","23636586128600883712673043924137441244829237051757704469883919144449900020791"],["94923942952968513151806223620293380498887045001441296725360537103521342935","20377646931018526877198718531395726159919363454582418392095943190939018813055"],["20868481451401669906099859036294895217298002823186625752555051410244771611791","21866919738193181788812938270266682041202636106616515476425282632473530307332"],["11049590977282059451834924122633470781162575227056875592166198975316778961475","15619465167539705340619018435011355570114085689387582357067409325601958189432"],["7967505434046929064145092050711008728196894660775734637009497900331417184327","16439459333034880506278081824684185009347325772612971024266631267709640923387"],["27644386022149851544964524444075781280905844273675211719239284223242328744622","16761614435282850026297374265878254105614739957800928665363883616869278845951"],["14426911875195906317231753710182743799944616085335525265770856122630169229125","3958893261187884750539972287420015470326866155022368924494142028215670531215"],["20045922370101854439920168890630619077377776112902260172639946656033716597769","12449836402305953940309885191685334557956189477722872060666594387597513675799"],["6451249069997581716000892083658033166192180797858164705689622655108222244062","22283891275088851217722620107467694360487137847857815715979428688268786222354"],["12295461427202318678703127753272975698606166550437179816918789237092336513219","5531161122753233657704411842136949196883981531358046783476115040511963833003"],["8523918153823847057092569010612407876555519346420524906087904322687387669272","6641983570283539264982175504609636081683955326664546585547954210110007381528"],["11819731143328108011966676620021451439202823417180574474733235411070683571761","27045616331603545576446212860339273794808674403199807098363615570756085347588"],["18425776728417116121959603201040296193069166671163319349749315724755523553925","14467341257094769448404632250914620873514430378376845215710705860390876381903"],["23095497773876027394920816051860426918137418350587617768536253264767034194146","5826212577830470856114633099387283804903064830208091988069487014836814847254"],["13396129528481666660766914232626166076082398233621806080476706267355757695218","2480588765771127488528192253052639173317590552037779069484477948887910134981"],["4049566314776749617142889197180333346254972333589993228052148219528366109303","20608219343758732519628690052649617331404411509651933015031475418296204300053"],["16806831739724191198360127253090664105659982711307241366763572454220110915332","23795714296290632108278950628835374390184552227908402486453421485037281124544"],["26856406767561801758571514414955747133878014055862581847464052889388560357137","10667630304009784492860663551528876194915247852010655165514885431076647753303"],["19488567174825504900656730406493225348830814440222886025878155917377224074623","12614460709567972969733507339078512542881211775034794672880892063485420582144"],["5530336211877241854816630793985554734027359673713897046685525352269739256659","22804626660083008339502455545573570410294102713765990038609385001466032513961"],["5986845723725599775150507216568923643650037630227436283219870226851274831191","7205223510936195275938209512889066893837118716086872781559402542131723918318"],["14817859988831077613034757906817462488361512023335471426102576012844738655208","4254923348018858889647272431310424966156473523872679817873688465961637042363"],["17544664223087445024038600712383298185218005690121807082352799995807071555912","151799200912422397129054424771761756882519083832775968250050750301055949084"],["22063796208951040545001445447155646982875955090107331611522556809986459197043","6155311466288923298410890256369047253174549575758599539919485889476827470414"],["22417900009294689959996102858611370624281902998408267574570302217552756798469","18744552230690525407916731322674394203040864693087353940371666863960662681168"],["14849435987681085531963957547786200786989935123715703839065999212497491612942","27923569695031119192907475547057831047755684325492384542572172257172797350614"],["4268581518696480320334888261671070457587544205828829612323615906049746215657","17151602594472722238444836130994569166059436775681108874359598679169754799380"],["24066480886547080786157630549060943219517544925352295502769660989343739768769","26596236562118326981884032752482193458922887917080933515114210340854507074389"],["8115909620191966956633125804829665874734805292311869929725108075381398876324","1592311043120856856304862475081545818657114115860068354903464178052927860173"],["25979149996545932300186284811203453791011974207474188187298533922616477418119","5810067473544834300392616747433608332107649262068357328964134533598999253001"],["25393990266633549728751505270339591403240553482462564134290495627480426248916","18559345035179061397866931923479273145658820194538237449810286090390296176511"],["20918435126356453899044029787452270355127183409558460179610777633601299996801","13717855408758917001537905306139745882122846137314923311985939366335743817009"],["19404840741007225340384887047026044733908615156008760035413046224530006314493","9582320436698345140826321060515030071965768632382233620145951963878800587618"],["16557721831540477322980765708354550429090769682591638208508866533588509717346","23283261350859021072549106198085937447385222692131141215324374940115412162680"],["28732443218355354434423544903493987687551519370469427977122748502910431450181","17063686650453522923388542842399052336017406404809852699206605813792267919100"],["20085600277828279023533038981507415895449157927642736881077912955085246294038","1500496820209221411834987746679002355141282115354366097195438111344485935393"],["20524868975722641323857156771936833465218375003304000157736159719329512949826","4383835348311022157816450670200789528816758910726476100680341609956199178025"],["7556012492164045594824351216553590889723290229751317945972295321437759059207","23636881624446925462013818878510791802865673739849916762537772868667338145035"],["8098754209251143028131146385856164349552739976331437377223064649125087087582","6219259746951973504374386945823050289150194077773958310696746638693626695949"],["12656406704877572908016492742272729348439327498208345719145163495657214202402","15086804555568525341492916302752995479085337486977930289258705814802386814683"],["6237104601218164879386548866487312744507611756409695250954171290627762412620","2096384261933975752350117757734569115218423873646018649687001764240790497987"],["10719870296349356333780247224970140411413368345316630444053042425771699403430","9015912501798603014400561664806665354997651710833967032039707197306507526507"],["12339042881703948150303729523994311134191160337130459601197824851438024202555","24430446246446944709579600435251589633849679349122249894548835507199169618150"],["6428372172931391369621299209209365539889822991181118142737234899229886176204","1064877416024357960813507054864027863497197421064717499297187401462701256483"],["7016519869820409041873078829760248723066907064188933490548791773421463840165","1026774477062215843347795539234340430358415472367262679349478997229537115543"],["4990511976055472764816962870551035428180261694019139881523721668082883822147","15025520548013367190096800671817978922247167743611276497489417339160593797426"],["15933290573747860094020293807091853161562846390661027670566423867004810761116","680755755575349470525606218850797304873860784463467341482146984752469126089"],["10290277062886433810294147427827899722965759489449562396968051391337795476162","24640527660759236978667305814765794605444743682091652414863836790426268991146"],["11973908025316029370871237307907860664358227240733670919783143450551023629447","10319282422845349541174095857304081209170009286781042999647874365588307671730"],["21872940511635562780183306391273844519814453009040323494124419931480961695808","19077530187233521143624901334612364542340489630799601175408627902045264125361"],["21231870109244509706105871772647622797923247165612652896034941198143443369978","7134805083854021777848658936846039548352838631066622979881013243800704279208"],["17940323288691732943824181522079416945000856144903077440720698719226980798270","12616394848227136357574673089861550250066846866752843951172208101794841533548"],["4198952492055002247274492216041958842262019843638923937039566580696935792755","20150395610865050345662974656044813059906725213498502304898007805401001225657"],["21426887347419541777942133934946137985460425469928383216694595771064393518237","14673162170932527007455441791659507575008775880412605825581533115145980484009"],["5086353165864651694992342153680311461265412679424065774741062139960231308848","21931748988200511409924512020148531117791956065520033165913724155223754838170"],["14010543511233936059245177570962788935461871251076891255055171565473919936153","16717405911441104196665190144772940949838336526558148760311307951883353398044"],["21799978155386844380873724358904038119484563022420886276912850665853333098393","21784700622060715271192359679068664118835964306028274756912031491857093547550"],["9502017430343473226549348143417855372505321305082033982204258412409630332033","17557245130562919226931065873275269026097300715431711259451400181390247445605"],["7743611130395038124854564636247690250743078368661871185696324668682124106615","12833048994351763597536579635899066422765058510484260067338035470839425961005"],["12102594595071982114708839088972437709163183218867263909712344738201224506266","23018580784097467441672867185112220226917573651863448066474328188696400538486"],["22815123780173823565851747195248314316572821736719911527078614875489970154248","25421205705385609957196625224331698760970844019000784160064790129966813310653"],["2204531662675050045091764523447124663575607377577300920106185912433944142044","27916583387840920478333177712792889647063280123582579268235661818630200258092"],["4637426617135093011130331035400523775544423916177983386631490859278309525675","19604597388778393226611827395279669045925154342754665307648915268353595183060"],["13371201997396836532466611657107003174497072805652217209225261139765635941675","13132497896876797107974221791049975339737637651511095319433720701691547075297"],["28028644753301161556488114472844024867456576678731478879332167242686054457452","9804763376913163948955762452297644840866925351900390656934117279111755909526"],["3474429723866418894615642145069825076336541949600735834017724372229112146495","8581199082912476575002919866531953674728957793107503486778944514063916444269"],["19343399364027319225734952487996242650816233344025905543494051056568533190879","8756360212149383328439743797625622877200919371917373005586548081317088125250"],["16909851049861299427838879568137999881216383764192395276333164612518650239126","24161077168136583684755930542140739475606978708442930828969369860665399080461"],["16814910374439185944120151097349264766579219614158806533258473914506498506202","27700974083360251393316337337863658120826118644097008820435796546688721861909"],["15702857952253599955641813970095351921301222871683170112433009432857020202192","16514837738439186320749862018123158057413226720610115088005058112513433648857"],["20033239232913077819763523847126585420643735941747620940015346565423014810715","12649177766270320933524850189269405640346278465414029340624337989434813234797"],["8358980870241065721524051328037561418032763315034629001474922135508700198668","26758770411019061209654584114492885402267474097882977869908212518359691131841"],["28210166251033234409303972722435800748477375508893016382672535010004726276386","2410341778071408501236526924295160191484030887515264080624639996082352336170"],["8749952225233221574834086052664550907981229411353014261472334665967447920954","28895567429541895863211072200194679313211854517954669304992286021255138177707"],["9180923700720919253859106077708931271405117089385063915032953526641978762243","28562838922522620246402554881919202983444265284854723513763406441411003553860"],["556190255104153980523421983654022917307029018884374767815967735017619147208","5129623236160420599214986833236637911051035446260266950149886235833874452824"],["26145805548931452396829645157917303469068951405553748688011738152372739496690","27356682341441993190889688834346280181916425848567480916050708394640308445697"],["28120163429689711553199093422633175384672732111651469752483408230756318062480","27000931304255427092546112080270809839163844673566272972584520038756736418891"],["28549352292889749273382140826414226816866851772826965782096891634478213455987","3111326079593023769146820920707793748691084466683380569562903026857296354916"],["4094050318153101063752140982101465954315181658879273281766353830648160496818","19523750618333194396393237712150365058003646291999222082991011287894549611230"],["11170835789926262992958671239686417393320183930088296294525579918060254193062","1156184081823663249255795496797498220919685148084327187464759118356808285176"],["9392149840247562586993983051229860330613454055396894741212639257655110468282","11486478425710533036714784866086305019153850080708200814145249047659240305664"],["8105635856540922338945926149982962746569733080272667028274243775326840471760","16278215662754198966177531312942856613676888249733282828958706118662614316465"],["15794214183115368568761714482618825756692128196647226065783979592093686362649","26928043703937513627919713179810836980577313957664523910196296985659523653938"],["1033127227407783885115993763181491812175009553063116894166224734838995039817","23822208925680329694339354075373709074206546647083104521455790909970213272028"],["20936863377398694321386752163638009672342959213723294428933296722941218337264","26968568943498966505184282736861478008254217580091939376598481620382318225764"],["19714646832920471868317235697063140840592145112640204513758276151876683057775","26394328895109934537406919825108843626694494430933738533375465858194238981485"],["27726688121852208327826617645897461665372927119605260111513446804871752004472","10379773552637442608944049265196359805857695384063509727655362067513845253423"],["14559047695952088138737251367642746833773701083749106602085848999480110851203","18063850933158516550976167514127682923513570149457270978830799975572063975320"],["7506713330323815732880120311726216689349325000464820276095446619013784337556","7393260101476876059469814856959856506908188254255536433855960058493664205215"],["21405010285811009931668036509199470461352235315828389549728689264895289030107","26287001674481196103358930687348747528682916838573823559534835420734863095736"],["22717692872855241464518951727995269244359702025226037654935957767377240824310","63561124196307842200016633269854324459390217205340121231141652146223529668"],["20723738868402263397011707928911921565670702905310136986603457038833064183207","16667987424570577959997465128270242988764589614660625389650560791494445788141"],["14101843395415139725020960218411083754538046157203279203724589597515102422351","6224248247246776528670472355761610080284936618114133351049371040131802962975"],["21407660644831928987169076883573128769537390436236133689439356944507735418403","15350114612403862787444778627958927281717877742978976620867873557450534277353"],["14824388770548279982362177028350561095658396019902336308376639385954161586063","12427656622112463775173876463278977835161841218792524094079779708640120087452"],["15515678885724636325555753942111550072244196488032012100834208106129463776391","24808495375048102570074275400380056517294186136255979712028693404085416777497"],["15409197909236424277361691156662700003355778622321260714834946729723964463668","14500833720535629056899436529339441353762343467598177964289536026107941943765"],["20611126017866960522858175312123466883217423071584766626107997883655719111993","14168272409280351571738312707163577617409979909999348445082036424572410345733"],["26911791744369098717959417085631725639713181673801753387902082872649885253588","8621181371370644881143436111553300081574076484240854449218917480740797016284"],["6684024625215547460190441513769376018335681583575577415773286961998031739377","24795410174687627771677018599205182690512050979521677889718795778304438246452"],["15344396552503283158473131824823580323251093179104580373214531188722555307233","26075199018195663248707370627759883999897750488827393469801509990626988711850"],["18955627204700615821116807946602588652790127765573607334695474584936180688230","16916816356476385048574986319283290207886562759543289620332487193024334669903"],["18987627455043368242533906911153872905222818056308574543186165783624655332249","9400139018575248543639716886704180272148739591026338714998092015759097878452"],["13414215609055601368983977835026118929399531094082264098371371633413106578520","12627263052192642341823372323023520375574245065712740161813809119559874870393"],["19148086333732187490382371005523302529097374976047897439174131869210529762473","20929983298540046784497009344424719776670531940395176720292780506006356762664"],["28719959114425691565899148894304947593982045946834159413704799443603037212617","26100135110444151610276028947042999193818907066259453008835533290307648332111"],["13037327961846676212328291698060394074968602300410445669222101526709164997681","23804649139043346400947313041411718518460994857601389665497991349419261510381"],["19981731895621181226769637179049889574689188717687546354029656198107689373299","2685174899679666551962053506805383147380546896233955015665513137712433402116"],["17368220705838213100796172521530107366169767781833182945971872989349867891652","19171213984181649571125167989716481618527728778531505766907632992469626038972"],["14204815939667150297585870752091979435031508459379264523493046255725651659865","14235899353465093449415233652643986108841745642375191863598004009526087704753"],["23982056622644414806086996655706112647485386463388589212425562464288021483662","5218396189310997760770240697722043722431829408706913080429178947118051315320"],["15528448467178398222105844754567416921790097830935362396825535127838198615091","19870413673469517157865707042010605870828365554948577449000436392035019192355"],["24475129847899930843803407982736465991545281352040513708441509222215732060419","20526174456688689625829986017004977864947306487600328303757698863943109716193"],["22268501490952835505262285360274189422460654065241816892779913174198445207081","13960751283178109855845492497642338620019655169268423195602740903500975121682"],["17932934210772969662691967321266293251958438670801228777985233695133119498144","16793372863932231090801375236445628400123304854276585470243726515010682675760"],["3474329083874528349441625485831926734553802570197095221243485818611550641314","20762788051079509302058669373590901634264482546100953087044698955009922382204"],["7231657921184341401473010021081815896283963457574654233579158136483853136467","13308013449241834783224631708210489551962854696911217241084555628045268020605"],["16307982952955534458720783545737250569290712368986137296217914005071233292126","18573194102454514458277597764393904604225098024477449320141421407347612872456"],["26909041790032937862732003193140511263047399817635274606316450309319550156648","8576341713472725053621233147361985520568820910428650322852229140013734223873"],["12829452431721576829254458789997500327895560421341341045132405163224559012051","14275604674508345641894720366865755664773176148164379128291354021471989018123"],["11743994750092819136493779569814104982976822254828315630612068228479241645829","780949383597450029840754926330246724061509011315666203350214709664674727195"],["9984374943885940446099959651056781185606470922670544962279680601024747457034","9518972045098059705645183991110882214431275692718054799945502715577616161983"],["503456992374558359538492954284871848974148272045480491167862673390992195357","18367797789820675969813487707746610920190479682474810887049766935518932211171"],["24924649741406892131986942899914817145364106696014357604169571476276149602731","6090689469157409869004906050190318377217960105671466501875001020832466995964"],["28071043383510647078609613866790167906582543550409134021939095995774835065699","4207733702725691517308381215667548009835625561219583601335690850221348914975"],["25035550101430285651285982827948629615271303003757492383296174939228301568227","17772180266419930591101998878127369809264936467119377754990253122161136493363"],["8931915877201033108969134783884276846402216463051614014754625573066997585943","26031951308841848274025605958069810337674121812303272798272010701695935755468"],["19020664603364140282233133572830576303418557936797715237279148965450633007513","17186040853766466891696277034340859169928258782660815044194735099054343782953"],["28287453532590823029654144864356999183822633806944148063250038848443795230304","14870862134343579175742680621751029512379946448289391648067822871074369408786"],["25165743502445272584338647211635461961222198847382009570047285306098748225000","5146526089838214111987944911938601614360841368471609207881067643223388084453"],["1836627496553813420522455096802580951452845873195849212713541200139905270752","4806343550457770274937567391938356231935562031624497176849530742544810173482"],["28223761277713504536835699132439802927031273532786419638283027382783168916167","9377960103110894416228683347923480842383351509580330685943509072565414670818"],["11951829232303070502651290795170810054264640867994240234072521629938605750261","24150097788578410231714150714630638750823617016438063029473725985851496576672"],["26341221018524003951034795719855655827383203312604936677764532437570988131217","3171488912243876366719837421625871262442067664199228400602053452850154659351"],["25466236381855171499000451954705781032741017287758969143796376227577469808773","11893498694797191298322720856697934023995743416111433023007673492042085822830"],["16523483024912441465455535058598742152624113127181770270665490020856749953653","5943479727387254918538283493458153889779214659138396586717074208187139064885"],["7295844646347698823997948405030101046891749854617430210491669586638004511370","11739164239902856087267825885897967839855887662726573036103493095346392644037"],["15704520022027657088119182360874221819283966938869711968792966816612268215244","20258723307694577825427077639935652819327890348036986118496862489117974197524"],["28589258522307731558362364838122245223461047899235900280279861212973080759863","14060517076405516116265064674040384667513188518186818014559514116973733005376"],["20428058649092726886640434394561960253553113608561856552202970157921090583335","10377238561816334186547538344255926939239408448344768728751629081451199921772"],["25506191935994124710239764726110218307857859321600503691913210133626789048490","3840842654165284193867725487619240587101844127756171060646654846815192327186"],["2038735203429113499550031180592492193183951996702215211461416469023840863935","6318511787830902303728214942950363353243588942864065546945956928309328308521"],["6250493172198195220867852599334638993705449600691201801122496190173167556170","14712942066264302718168498595833637615153316466025941931520437977352764290934"],["21173299239372326806694165654454543490215882962288368873906977450431747175732","22929507788109248393375685471957487679088208835422221945060516957772872836009"],["9422401547227443872868443676980356014133369943950882439635822049853453104859","19605327319909999674525540857195604633166972765833681235924890556538873595510"],["28644584863660206696402266273728469491565866364203990519874215334188890639339","27801960642956848957692837483413888228148254907686172146392102762287126570760"],["16226470801588346310315721883860513957901585524212900158538170920369219487263","13017001448157428373238583176249743367894829855936573010729022911905340492500"],["24525275433774480103815080637973709146746422800328216976972353656341005403780","3846714586351317924507862069739109510093616094446345752648841062551150303672"],["14948103288883060717502386503640849890599448679369998093686588401434638480688","28836766755582219358983410955972610547730250539279242517792401013986887208497"],["3463905961869643750715015848205190570570443005290422109702655541956391859424","7903109277959711948243628836511829151448581022265211757944221250623270187421"],["26985298384973247487446079691079968445309484038819340550753171361399005248094","19798053942285773387798773798316842902725511208124294910367705509554868356604"],["7996308796835814492685743998694352781082142671153422371175830324175975226765","4456294314243201342238214635004916038272203257962620227627540137890990799206"],["14584396986653428049029505215915404338658413734724316413331648866107779631278","21511486910267066616618468026802329112436565459270201316452731286021913212815"],["12944223467723489258289864515293156381561885990417224796731381199523305972899","26626539539856383051928238639306861393861501286455176378085169406679406387162"],["6192444007888364661826239140087930695603527943305961971168737028661278275771","6857288046847419568579232697229100859594774002869453131117193570551943032110"],["16490006095847544819277977994264301803313402604839989452110930934203239866610","14020270609962611820645069821349687104456686368784479053520812946025896917643"],["21486989210235824416899558422950386343801854656163973189822425746194795496496","3003769143542224256262075625121207890408439587961656564190822921601859361922"],["616944440741579986431900731366390111736880029744771079533762130504442650890","901969685709455434184812413024375997884780631227630850990192706194365742562"],["25329417998231287773543198065221362560811529529093215098920675428947178086301","12186580320035828531905513376581520527566267415390948215121740516339030402858"],["22085780468206944918959374775011996782723143944179486656910527478323760262204","22749673268281857585388181226914287730829548954822487483023479206858090389560"],["3487490959154630913342208276853709006029798501223626156153628084008784339023","7760999545606045176142704870209143302534644051199464257995094126293866462243"],["4256889392091711117830441843398186379478480071111126500679486264759008952377","8425413622969078170870145889936738223903533447239087110093958051391451118353"],["1752143934722130820420863160984316861641213481214111042580577804272768380891","13244672085029448340336501247558324982764218502678672919803722864085772356875"],["27801724667848864769219937748687586006918554239773674393591837852780888214494","5234199542502445395640159108764572448590424978812818650217388604790036072101"],["26546161604347293092063216479128180886168655153608539140134473023399314805481","6920166473459628456040137911149073482582979912905088397734114728773483224524"],["15796782842769282777304670238692340033808487523174818828702978859357384461566","19080483097179533453055541798980766221935908403333004170502497289456691451189"],["6905769161905215794229699398828969812314758583494222570470973423146157636431","18957690064923260491561596591352835176176039063836320808320359305575876457995"],["1996736491019394916776646417881073028548624703044159599380887159525931365382","7587319905129863562824012887309780312707436696518575526003216577499082247377"],["14715424323329606729935079973495202581046680798388532649914490348424295892168","18789201646592879124648244591310661518554468022659038109249856566679676269513"],["1286033020370453408539474126206162467259267723710066443489503936510244499386","4467977250104807613156610212883046297300946906116913933031635154101017881389"],["24168947210804032707888010250925460151629625974048788830287721779688801601716","1310949773454952318747343595284166884861083544361718076172124092028504425303"],["6813272049252481409969736435484106277051968023157018067172134227637999808825","28374111418937589631266589215381477806452649956568728976992009378667988862746"],["13061036580993121710853307284784066093043948356005160626453132636707295546019","11636022744902908418748875883065861521064811363885445156262146706705918902756"],["5720759840154149211322677932201493939367386711087256454018472200084355362816","16246210395047851355981864729784218872561381491958150687804679416638514237870"],["11573455676390285633731423325952171149045418214107992692025503737178507376288","28744917001312204219221382620001038624125977168593442650186188385542513363072"],["12910971329950827700976715898381518471074588618043802352577687146973197849191","21832920310220279821032926315020153701389140626209919352025092325928723423469"],["12854520831552291587390094709895416138400773165005605552981236459642774793064","7049690979153799269367434635513206885156500139676393913548967437266722124179"],["14751272170141341954073311990690625696933293308650476237540424771319955112252","9231951962045519770911748642726651163315042542173792780648657895389488274395"],["27268242652064648615311215055692649452908515406339688546268451688806368777063","2300689612912541843886724890281554380675200777087183074867319066727856612874"],["16664400307119960441535600155889870873400094289028372038026872682169615833201","25061809972852852719647879920225183013461773545276100232365732526654569490022"],["999594855158079774172901501558424240733049446641242153931059134131259059160","28631293936581488002218785772343275556176021655987437040199859907885681038674"],["18971311998172934003788384488122805417719781377115467818278296245733567593098","7332079440583801753156457878540003361280978350462256573308242659066068363711"],["13051085131677588511064951556367506142184527044897711866791115252822406238501","28554836379374318659894426665365844955129517547338719681014935626203417418050"],["21554587915641633676817351352006594410760758919044150127715778875137652027414","9448683329473085027523821614396047805588256855097564073677871180887942214038"],["21516261254376392027962663639056983934490069573031667489821988654019488487927","10069806192788683496916712807649163200809668624864100878407421314106720760590"],["1430225076872999518191632767642867760335856127362465435156353963502762461648","4431782075360572212624082975234264550043899475817669240989302357376380369480"],["19283910419811073473982775881471936501635790115332042739423765719185381544622","15656727172348462926606306753444130199416227134514849491832055708572730680025"],["4227606779911421770054672323533927531644120857775185667817700713346109072563","7742374482055596651707502837419186537650973550354575090913101010577009504806"],["4428583220448496677359709990958659651630527907122870324147314771473996691537","20932528504070614090988186946451146596194532284219730856222087625100047134705"],["13202125324152585415005809227507654150405021346267562038114685819904129477659","15857361591050489683540615102931695373598818149508310225318656614811455342359"],["16631381473203239833445575297498774221686341421441699134154457304147065658922","12780466627803512662156278184720361763570944403065750649362357255708574502298"],["22895225648455923027605792882567490221076473249907309379315686100767684578217","12924497764480903338949051694188259126618287168664569249472341991055371994418"],["21224829169054418877259051622133989397016120425502676393786146396672917091978","24145076426974401636512462808957309371312484640696465952677071866255494389294"],["25573803150111922216483470978218707707949083005385402665402134955046238389187","20132255666323403596446270992800005436388940753013917119434242427294241692445"],["1481992182925268389804408208848683556180638288515848692315830409637884742368","4812457502860352608605173541954805401068192967117061165542926688615696390371"],["5439995080261106253915574397819886569767929075762900614858882568678993258168","25005308897312993222942014494746477176511123156886158044044041109788360221088"],["5315104599208416493705770390131721753084269189555141466968681777741383903006","23458693267216554595829406314848805326044266784000054141676820138958108729829"],["13813304116553733154108705393448178310787995337262491846243692406513186083791","13783264063192037625746742966493965361179453115464861892330491641320981360909"],["18507806534704823438461082049241409940438476696672640978392675830111710392021","22785018184774129505914993546625734986186164814162624262069566677433552617092"],["1466327879707813777051389477607400098025456252970084303190981529024289212133","6556710319528060524970766073696334848831990698003246189504929974393222055800"],["12285908901078089467076488356191075080724659141022860259669709031089690739478","15415590615947948047500645070119234472463811347153400911963712578595637787510"],["1069872943065036425401083681167696050054635894571532538444939552886995721553","2197858860207368680544410991364419209270345380667508748751098991133683268121"],["2535591704270514017993942482494158732103701146177435212544596782302064709439","27922161698738375646476786689633818732134385832987386066765735099427380768199"],["16783581786279099427843610182258289340375476430021688413315134978916882286441","8705674963894016593370698181930969043379142664371440670199909010957542301826"],["21186185266102785577409797451959916930567257523882490170927010033750944817082","20172117868992589313216431295856522726043057945826137090678802501080637654489"],["19800817001075175820683552475543194822046593360820678704026867316290475618237","28396832681452197902506340896773044552148530523264779028907705758590172723396"],["27372507287574071495120463803662222291651737524007739513702436459588070972989","7422110035007912065189961725981897335219726088805444427498990025449391202835"],["6978646581298594197246785959950940109041236372462932374542234640722039318029","26615449689270825680477010422336750219541132200767290907660426569329570657619"],["27709562253298376833946314482759879470720496727371913200739485403290285766182","19172158155766415197866695117675206073890669129422774725660173567652244629705"],["345710521325082959770181804381353192660760926250210612112269653284617238684","10968236362024384560971962282681887322281383104081351955688767919378616554991"],["19598804878546497374295191922172208882637898683562925048514132715342720746289","16581332226685226217500547697787398804611999459445234664773771331280112137940"],["27718295343141203707392388515500573741063664263118272343399055461488943172496","306792626534239175043016573768898546658168093216549599047870890696936717947"],["3473303643332585748899798396305316052391322659455609350256149347661873406652","12503149494092751763873107324230927956867246098114902161377539231215642558618"],["1768574260652466047276981990553680917514871847287039085023164138432471876255","5757798729527458177181126510869827328478369879572527553707044745049963242043"],["12897049947979099973933969729975981692049312375533823301263228321935337508770","28467459369793080053073120958392804728257548511439249865546136855336679006445"],["1167288555732075632741049562613572590619385969228881459248561479274057605054","3065523788417629005304344179984780973739727813581452522413706187505156714935"],["263753730913629786252915909099480162522892378489593340680386786518535340679","7064645906223833083559648968158572782352508556276024659015189063198375899652"],["22680038927912892652988683468113814706820466958895793419997598547334994999164","2316278625282489491675698518387833843506038581583583510985039208591327395073"],["18864694466856111027340455728136800575232182626730247736459351531232256598653","9464494197445082302983906933755632928903277444167118433642420373048289897220"],["20432618315141199511086544151175013905392886991767030842055006347667350119580","5296690818586686820303018676166462262531647807577057147778573724620914302850"],["23470425600355589219996909781321178211755558544475882180883031503897685319030","7436115481572373568629717251468175522769624071725812669257259860958726661831"],["14768680551333129009839699378635323002475608576783517425711161238581676459785","24207560593253650521225666770782736002262976884759366028519032453598922780701"],["925560737212776226923720993158355357804892206530922981984155849339133134231","10170072387724274307088138381912660448159514444947181803559726874352396791480"],["15609431998166095225265158644417106312812316614433821922940177953483146508233","13454140821491896564184321408893616117243582620983745650264754621122059926495"],["25243656755247630252560699742686294038508176440658829567607707969650279760596","11987571136664745546569108311780972218864449470506830139920663841744417262933"],["18301834918518622544449864836421685146772449877842280896740866015191518609092","10079530628792984568499147783540962151301410563954245445627400319362956047774"],["15136292873937352365530364711773129706845512799179106689923369391452700467050","16219275269932759987507681837266499118988535026766493411233921344094317401752"],["28829402015553054215867633411214142250845613814029557125244133380590262262534","26302531441095069017451585262326337426868966545370572009127939661522508078871"],["13119042636747088424707640883929351843362795524662787138052248202200371621931","18334388530146963648439154291544284711528985171797266062702231837389721590844"],["4302073176764075261483824413674917106285022861075858173561052657211763961545","21956268441860900863062001617083539735522158682819000517606066021515251724618"],["25600751898386451879028730595579848369447697895153737195627076716175696015393","20409703780037119482217422747383375587354195169838503191662705586741363197301"],["12000139629026744837559431345545125888755556161411897369660801959625450206743","2548704591730912970675329225097442834413669081587806195016750526269213021777"],["4285539469278062311987945082093191403140687783663753438267372640577664125835","7888286697249873638829526377927432209752468178550904545861456980698213334272"],["13755148814578361066821526349538572168548997737545589703976567719868196163138","13981474082739479701995552927915425971122036551286926601741217185061867083488"],["21877886782752715749621613766485078622366995737614591022081880336820903263466","8666690286135997361165298838949889442672967179863530502645829943437027965856"],["1465256966925458527943201878417762450771813003860140034659821288872443699242","23133671031242864899295531664186944862962772045963938123959772836598316224157"],["8798205297358386320934478431858577362160456829186573885507202680789142320647","12620121847614874746671731535239544939023094158110198933412741689410970962051"],["27768192969124810094512544777949862179523219059693166689081615282898052232060","14319800315843394897946952982843545423679130565526360262650933093155446076820"],["23404372938372681991656504403441646902534561751005613835435579186132463648411","25078229906655155460680381172781877713734696023305390555695647983227114677839"],["25239198159549636433190148552215033473664467774167369787149226246290527337122","22820304389265559923745643115058070544078485779004611988872507899057450378147"],["8703389636900126595943443913880019840343710712879189357202057959667230475248","13488204727484551727058255873962596559569966897895725842975449115863643180481"],["20103419001415280365886424315784708953146097100061247786831331700420831176082","5726977670781091872962145297124889874739332144155553197624947573795587447263"],["18753333283366757615787031899976436036794567364909185815022521881147813994889","2430652792776424985943863855244731847614794284340864152178388918172131933729"],["15131440068972365874206189934854108408607777118023178630953191830168268927047","12226993848584312247979172441760309061281975507344855875489600703524065635960"],["21158823755241122804916172053346369675779808779064306328401167447464142568215","26916198285217328048957932613731787296102354574924145287177399863880752041743"],["18396906234707796654801169264129836594699437920852841693288235341506068165424","5325838041413445667702711242680383560508384252436329306646319512283335915956"],["15867441403269423035041089430828855982178987820214807092463405714543041183790","23171548365067815857000044392286001800053562684058528082207654488608467656856"],["72728686412979695667874005382155487231853733594010962227623766676844392770","8959178070581275390044493802318774060175464452247190760788093953327148679798"],["16008626777464750521752042508695838661886109164885140282104064119575871249771","9837990069675029818568704892836669952346625412755529100280164722311522140743"],["17578347504188905422134029991366513705967590253469793712770575260251561256556","11134897632157892177519168640266665983088832744143297192051549417227812716081"],["18133325013431249602007440937021625411218937859835958179899169880336475003227","18538415794168290330183555349605378563269620084316938363815086538078017019072"],["7155594308445698676862698101564158361224690901059909173236249231665404022957","27420468185610184483526995552337259957740751791841005832602014760892992371262"],["22301988451343845238317970769103676259332285392786195899015622261546909244047","18963824022547082813098749314500477724655634248415775278389915041552628559995"],["7366885775893439970918537753948171122229202045800946660820363580259673046068","6814124038034551392881514748523365438874917356563930067385198437883249894212"],["19884469446337941454113442883379956193671973983386497114085140748259488709950","2316395565223045720328245442960143957858394508358765796157073987212793263611"],["26700135478237657950043266228639256585508238762762420652113039653761096206997","8196494097384961815213743387644383699411371500511054011135223321459673678678"],["8570910847056310446681240297588681012925568947911452893268977549886935248664","19088537945325103348493456476931317426015593710689806951677164508777623136173"],["19050980653171545274966230065649908450480144951985949585333064666257531759381","16277130044502916412557098590128026266582424297653934642023662172145257963572"],["19035723108534899517791168815925027165262036219239522847962799345008382902567","11623697771594657574286193107875120226423815983960960218309842609742857264636"],["25326805209369310568220003451582760403083524322552458554830561779395411373034","10830040282024827589195825045542629917495323381731722584943463571830047848531"],["13768293782817883707159249196568188522670035586765779821868745188652915558389","20732139497425005062768298227409227930596482060912361077944638194617208340640"],["12222939274546456656456845188916626412167175686837441971159148156464484738288","13125748563673403933556695026083095073928476232028994025632528525772742435574"],["23587633559505628756501636135438239792538123168894870457622873667356715561872","28874715603641999196633776963756313232060159703963838844505352867990841269909"],["21320147745928526805453694371507884951053563828370225798278784493394873295842","17389829746114031644395049668506444290056151956314112264793927498274907785472"],["17886105006144800583627434255583810803782467174626998999017494905241508153669","2096670582420591235709656167867631395518554411835107941830727997937145796935"],["13176115704077524390021245423489533973144766785030284467645872587812693361617","10462829758092797373937314794023466705676125723579214649391002494556138668976"],["8235521538996657934108101167502720387052243989640841581277677434576074414831","3771960650323829207362636116867259029330621299952761975519878300508956929645"],["16075647824423360843869610097878242312926983616449621635278455257828116881295","13129112058563446488186677994731960120757765040352623963906420930705242472307"],["4513892637668080625686400969368515203538314319436645011034401611876944407030","13825398398202299700923481656979672940630537718354133440401516117325087391202"],["7915995301721529369822978596682215897973574718555495081977424301584605247452","23592353647567014641586134621170545759531808804273150603213642198861102991397"],["27371549699601028203050635747688432584725665209095851984870479278082621426419","15730987027900616809192450538818987190825759115977901392617272053276466108763"],["4615396922521827027314242426068123683027414636514596270491717415062980463966","19588904113294513634492332180018539947613409942447027308479483374764162649681"],["838995610629500896899811855670566262309371547334165120063013730811188143055","1476429134650735453445789416354976167362689827008548648444448009109140141722"],["6048937529248921956335154837582072999063227932846026974618160295046977717433","8861528393092025833821955396120500921536656768656580781324841217140461329426"],["5282172014711224934204866297631183225759859140987397632107083551903230937022","5739059206825753104647932561781760378210658565930016511356916749351302017209"],["20117906957065606419843534543867609954799180876953433735014203323857263050049","13633276280063285263338222416737325009897905404290085085140125399372399374771"],["18471944353851728933022932600942965022478145708004363215783362678328101018240","3581329596484236450379998184847990149310116391400263860843542284825566008823"],["17126465155275123148438428618378751409988391795033926513558570566185740803809","14577368123316466364915504521707290482800781445969294840821149111723932897972"],["2583259903125615991315256300084469673659196220299697663302802663154175336568","1563286792895236365880205480060419240807651684334129030325348416171648845027"],["4404830040422743169027581294796227360964434248322555521736993090760161283529","5659454079874668788087273398570949658823959256117706275310526604222992176588"],["18241780675892889066213702980999390159099025956306200461944745325239874001194","27727576434237696326109597477277884726153475598031267466492290253793358163141"],["9704975956891769036660972023741861157520050264811706574305744583144302719795","21660111429056776231226325033255055149773951550585852348974412425809776859758"],["12504993818917431293830353490570690065932744421060453401368794526998262897454","8065023060232980609140017705869314104170602037355081687820441071022739235799"],["13951896326713323535305801279693133352998050110535442936044685485947573224187","930279504919339754191778897637831119978210574376589007959951784920432551386"],["19688375292389648259062332615968012423614070446313684820073530465875772969348","18240365450147648994571976100454168813700954559563975061336012607668734938920"],["440886896469882487631738330329730911492073619027805192027314905902605485536","22074824388234406199963071037608047880907113031530401052983137455053627068505"],["4740566197118288120787368300978412706123249208941843880060785111594821070501","1653898794294990795323661244069889544443982762843131745789929077795237783287"],["6468723719493664148683521251613620333403417327537011700781594256680919350801","1216212738796040672282176834562354270602588120186097394517654132789999072233"],["27956744681399875647070229167434095566915163184090979670742073094817149886877","15167503888220723068549458055663308804903677323051458139972815429156200308763"],["11495519132150355595174130197308650804279690668054822069940181713199753423311","27479069609263277808806310785812627237930585909348199233773497913468218995981"],["28346035181476965652009922383123978022297195353478800539289987706184726254132","16149703042683693558197019579161242906636034454868215319434520668707756813646"],["15111085216954076994586166379612428555043358360743551046251395990271471474966","8278697160316417109229480108576269685664600679431732908651126585092838870557"],["25064369184731780074160970762359254927242026481814661013134348952689761031711","17578181878365929382655958057921549611368957142290089993444363258140622334754"],["22346066306346767547168555462890434616751759442530690270024159410062101001229","15536313667771775823103219345510073198736498395868714175039573073369456403717"],["13173763784175370030984889772741052285479532037345874958253490624385350208769","3078657769863875019793925901743826299571340028910984225451675142891338355363"],["28131552024590415435392561203384257037827250525297061445999272046186428811801","12943844105648456139941246321428900506860918261068422351562210333254358169045"],["13045879183284303184583851922965446850999410580920521977386227590108806793056","8152657805800269366693877321811827846477616359269490334355346576380526867468"],["26984779417842926535131414537552064107991252414548453080260488637082225035165","18568227617935486997059480067486576400014305129640321552706727980152214822858"],["6386026211640004410275576257953668133837975083147532074380198101980907149317","13102665126292842292457849584493630078861199568992176666506731351061983332635"],["13674042060974194133970202454339680045856680035098873524997538371299536607841","3881201391723752777186677555311918809057731251247169811030650455129337009785"],["19221004632689024712518226306269083275332300934020271431423611611676467248542","20207472682854509114602206994126564427323968280312694193626373021354450012331"],["19533680239054339660753135624545774281692930211889935793556693190871471291872","28192830892927941585236348081188256513935284999405838591728984550815273981520"],["4050571885879699268197023821556566647647278252082688980579071291107237389522","8763511788967073961756741797203636298621908287142501736761552039113622333232"],["28609821342706014386471874419215746431929787814600233674672691486105920099149","7432472387588056524424168426267644189761777247780848378558430986034496564436"],["25797624328472496642103098506946805786703432867456731343719671757255118795656","6115224313853327375711986701079834611833242684309682081041009803306723717076"],["12830389324949157053307502131726369453109029388418262804756730161778414848699","17814052743037645128894902681686897820603904734817503832179108259055779118506"],["26020294863610442941516049187107668043382869341265482464408648965041684350224","5789309691911287281346445666314894301495867062583839125727229975078942292634"],["24101683856565122767736566777863028992186611408229997859234579550925510545899","25762659742862523022453528062734040446797010574798778033638607365806513337861"],["25028147533273998959393445591058765802403348898997836349479836061115852643839","23733827778961289024704597836819981141171502134738802568632313806193469617332"],["22129159055003832727769020726844155827517943302059465835457443691518373208437","23893489602176067790837866743404513155597265183560236636253848079857780480809"],["6358576962986373415808225859219109606032176130282400128149910798549799268040","15884788349630608725962263210180284559890484949458097113330036959582117778698"],["27502285395790522577653273316838217808488387539296910681164118284282883235332","8045400224348092327125890100112207666083033591493670810846291171749502522081"],["15186809780322526830294992079650758382805709319935380507045672781491704419036","24253009811006842912911355916942958669152567028532450340521474097839648353514"],["265960113967863673339455171451815017686713092498800492416451297329778014275","19779982633433757980758061979563740070885941465329403568237652524522162011284"],["5853235441870995395284280498868461701067147527746102096475098042134331153306","18693464727813793199352901691777376929900271596683101288603084459419762317802"],["28436530932178719193557384428379335038721946567192526851632208298917759573866","2624836828384011933483745058347190164283864659377638626789739652325984089794"],["17284072165337422677256132163037599571963423853284411320916005253539530947012","27524812798591481901795172891535073692069796640872257547677531739490108611789"],["25582851947530770349126745091759589339193661221611585393380374663021113516220","16937199948563480653700305777779684794664420687888245452375313361430572398159"],["19562264074854021504622405023161018215126990696306411695039847162685962116329","12733347474382148363938443761697068833078339830667415948768048559090946803324"],["19157886412442968026701536721850091144648413471153947138917932514612087385406","10957512440220449992411059395228746829970897611648867279320328892663833992059"],["17807026271162791957377106212985947084163654974394564857728468848890416863926","25497253053299975464081619576340944126410265817013871432231963314199945359395"],["22588137642867074701894635681555643410779126356038679639763942652564103799696","20007110229836796873553106650726057178210041563091509381351233546909284060376"],["3970222587246736196454608879064027119990691531709745571908937914587112077014","18876283697034741352979596099875541760067130241850429940805380054958164568968"],["2732797326425764217932913994583732167901527222179760451628035780518466119068","2770653243743711314945305781933781064512360505476589992289111384690152179430"],["8561430782545304489862443645117232017472412970636200979223003229509153043010","14836952198992274335967245117490756175018051539663846885513501185316033035131"],["21284526188728283795206087846327057979189814802979392389427043396939424686024","19323339812839245702077607587640185721709845425026912822812069225341655835114"],["12401414434163763490425889358779941764867059308652306132399470992190844701461","24568324107282958495919103627924935309295383461394778236917538249051536567185"],["25196226348444218706472606466185415633452844942177880325482034714966124491070","23556720447648446552140832707769833390691717470979884860465827906509774542650"],["13190561035652563502869458022731150060981590199493771427079676100842239647989","2786504049072467269667275779013142490338749263779948361794487329747385588348"],["21794179079799956023756397359809147091344696977633466042668990762012026351469","9008309269988909374832317625491406308788117473596044047273634042774775599324"],["26378796646188975385458531392223267084419160070442479083652665065332193308558","21573071619655328846370140621520386039854146069303342195420251405874508389374"],["26075810732706699017468683038216981226600627431543598604815432546449173747720","18502339604517800904936511285157735294924720611034902001000338029721553642632"],["28550791227758969266434331611461434269960415950676465173903169307817396874374","8823159313759361919027862613414880863388392497348581250580549416297420139053"],["21313180312159218195180837877957794827849672298989439569018304404913322184314","25349312045452843647874776475158686269054906886388812490155606814730437757774"],["17034795736385178907120521312250459749091854884675798019028554782604339643611","767563176659036585741321516868797631535580186271056472760775420390810043492"],["25885396066299969697573207565957298002034479093605167899046770150677032424490","14467789210736355021048318704107122163391827218885358148052976160738253919398"],["21864734727491535725408742885201266250628382027079684491129149105941442821720","14285814887086012464015870525618338187187487672019305376078807323069285447733"],["10635722325427268736352858978802545113913949822792313641064460042933600499970","14442464146357332261685204021298189079451211005619674552944838953129840707755"],["4845253092774352346914056471632100321473552374145417214529845778133329360500","20348584671786235088053564252247497318176537221300052901759919529074768271744"],["17904411566833784928457253313152544095547019710815397197411467032869857711744","9152522555810922209251173123737833866101444154493903396251560940396495054783"],["4127247145054723627852658668583522451096625335700559071941043685639343519495","6211786421055439299792333535424975775238335674263341923084093424411766671800"],["26811894362181615579995380578139920496256335146135407371377093004075400168531","23263895804686356048703913112950475140500653362966127335100719396789535086543"],["4458955102657237661220535868803499055641178478213067564444866435961328027189","7786079378074962642157090993874590327353347492325908316464947160450699848934"],["5166568644183228223454087150366517832944459491073174151389273307846324484201","19511385068993036381727186183285473265592848788505791598141834824295444143171"],["25611981140200268987480460451488090498687828871228104107404546185022676734612","21693611413045713326107050122078764121189361379828388271475558829275532118756"],["22463678739331913412294889692078504652543446938317576830466939090163119764318","22270534311726027116929692989057679190426585086697313783593208499371718128081"],["8186644754074700917546365648163313056480884573598745929408082894925053334828","4303547907795720484682290263674345451950460121988027117569947235154529904219"],["6451352538347016886580478099790504975218529242565837318612734601869607792873","22676316978596802282542879549547959905501501051682554935142352995231418008309"],["28511598548140503429959803835229075322290118439148510618111442811653030982926","18825586504260265274875495061185840277693336935460328493691884794620249161037"],["27659214575880542893020655019602837761210894689740714051882989204205031928970","12769557235388567924877202959054859534008729206436287632749444636870876042684"],["24776327575898647457390341653479143658766065388859381217780065915334086488296","8616053301485966273948643436522283229356687861936570652716008017601841818763"],["16423206872279215901600944569925191347256871165300087061473499972273960245581","17738437313054085829669991233997937122017015725512558401300549570946073478205"],["24947560816622873351259240236116973851601528072092728771641449003847675704017","165256077342159186491785760381236063291232363557716224144217431200888583259"],["948454914947620206934927932153082693360715663683996421615331824193763104132","2542339423809874349019940176147895724625939319400820971452603255367652468597"],["18029478777684275240480646627362021786780302598113181878595895001623523405478","10422274319096369775858193130788035944642056179935775630203600492766640084941"],["4143721125472383778267811792854979815868212801554899132581778518890518624076","6734902089982731044048274040261459541829608759760053928638568316536144403861"],["2571362031532256330509151539161616346223783288102316439311215080888399268087","18089004634505687752501562472490732825471419140565361708967275163869905275088"],["4987351555039631148469825820761799314486361671076456932909324972231811460664","20397844695968861161622293708682710916163598395987257700790231263677249856261"],["14784322267621499392421962671010886956223185874540690950417461293181302231258","28510348760316057179714866760875110721918022113647098829823417948500138350120"],["23493823637123469640782957092145772264169399615458375461211487002109097979097","14195430618392701080162908893119404906062328972611357184990814780933077878559"],["23458001070970383125007017246825711562944083478247572977567729972131153093438","3093482681322884326843088183542547242038579562074386051806798653241732927595"],["12285457078138381876020835133842547001742747854906367707115355962908451991071","8919772554424425696215088244514243993300278472907329628233746240351004347627"],["24023375309196575668647236285488072174614641284779335710133909070808808187972","11453816421355975326804798935529675639618713044685981683564251410922969039494"],["367308409796616076776144504973710985611796463225052480143081178385192312529","15098126686178993828106519095756125248776624560765491978560814041263215064826"],["3287841525633242260757977262669941691605791667464082018000731292293789124442","22755071956342487017276321930906632248231021207541828619056648049331487227186"],["9900026948904531201662025115673275012324793176573256045934830921561592382725","1262949806473022029553909035103783848026351128884983367081295901329465487255"],["20914185256135812836280931479937865714138552960499899446045139195074246617621","7914389901575250196997281610438919487554350074229801909145529910048822163439"],["16871187681398061340136496210577272379538770350502129485245436241083387851176","13040611442671553159591393038314057116445751691762597833083269447747874560074"],["6898329569132089577004252926665327195690483593569877470140546573416949751864","26330188532540287211987116386585794938295655822510061200171145724195943636349"],["25152197969427592602884570808776117382490897612770846629220905738630370079983","7482184832431075730750664306262105765508058599032523014996114873579164298528"],["24500249432571490820341048896570471293134219740681171455989104096914438727236","8581266062505911330273705311336791289684945065603806283114536633043153751656"],["6014141192258914654813486227518540803087682963517231749780934086730626931858","7063437409880569188835865102493828789061337559642443837134213359387747825587"],["15672693787305774732058759345911365836717013851427049816600506614705911389303","25384614289426086844257438482038064792809778564738294237531434996827068875144"],["12449589782733721281183442989346712514226037053077685290228965168482047659432","17372703326707201484804109402145724298380248995567723908780395679366972548413"],["27404475423971134313041992107069368293430847670364456244214753767617341384739","21813442694479084585750584206765490296933766047017819112554222531267358572132"],["28856200091763595694957552236512050398216420601093657490826220142444166653461","21345628676869577410295957689584899798248078348305750779590128673816195979143"],["5151352777536138720599120454873991993417628953840069775850515392966939553657","7423330495741512382912705034444883476200950697165243182758161591157073720369"],["14295222729428385385909006559956971914524320475879770891831490745708942819393","15880683948439925304958455789042846756040385199297089838098303745466975358572"],["4769277294136846638670827579059356950831828115592220253986824752897827389341","26469741460961170643600889396285784395098726047907966020086191687427487909137"],["19732858008850006677953004056442651600352150813786221868247098918358622536779","23124330425426687939635678580822685001484679356459722386980227040941680082464"],["25380636828614712482905165851152751690185342026548308942979317707729729812707","25665625623276731885576826457142768280848220127883729556974879079465049263314"],["13009661303908923875990631438700240492184834910977288290905924039946968048892","21103723303811241648677255084026576266833277085946737336987238886703666376766"],["18096218295074136109920308541679176952200597917184228493948558697865786150432","3871791618555440047519181185000011053329304693358451427157658459261773301350"],["7490846976727456860408104481403834112760861335859288591837906017576979663659","11290416508757722273407020189751040955983646587742882958953955457284559588573"],["20081313585958166769912304476276259538260580164607457315331518941172807719521","2997847440978708893016224198211233158109642676234500088382026926207693260154"],["8763994504732755223105443016601595461353026597062162574488119036427378463358","13549700151530805085150742893041659448025886396159435312866412242459817295978"],["11391719047169294003893339619292575026184187428617200791541433038610211479715","22937629223078492822728548890329551152652016831960500312528817020794973035433"],["10880445207413971040730136324729903862089288510666132346492928448988689720311","28383319857010316236943025143624410353216894522644926450594919655201650725867"],["28335505253904521065820570740719621566004485698930180004168213267591662597058","15372927899834657784483302346087058611011385709361199857448425528337769220310"],["14260136905956344512632721978588514406179035684470206472923691405614274152215","10482757782304555570169233277290916957815200703178012642392447822440963406426"],["79207003506574819207537785959390055889345128066779001331137516306916222567","239309374255900793048192017495445470971064127656322426652679780248080657628"],["10507235175747285452245832475760368271912918504516373866606367602358032169242","10215701571952990013785568642269344184475347208671459659099213065879225332399"],["13085778289460057071397645226148784149139108481067068422818887601631646403595","23298911038663233550545107172635879865966755860483468748107704284890769386842"],["17676060308666187659256872537815280175631551469220440052806068401673606105809","3612480188936548929983810614172174976498095055054250402209933727075287481179"],["14787823243282327389895980605716536397576732485776197068033906592449131754583","3067291628024377592015571319831157568999782834665689349297381850670037003421"],["14777687475285257795500869287977381782511775671680942355768372541111329786018","26903096965562633746256639375319159840415348583716335890279309834252405689371"],["27229733776327222890052609795137131093438942522389356103625966272653494292917","13830642390962227094078869795024312098359267139570580710863394056834725805351"],["14689991122896979951153530221634113365508997220150598040517645327286895579704","24916738119927231551649136376957342979765041584892407576054818931642862939839"],["3895391798706945150333555730951611578343302018934122408818980254519556891528","25375695425441368353415399675044903846515772734186674329236598324144509583995"],["14473597379043671522532997883797254383817418103667221839748848683269903733486","7283196728376623704128470551693558695283708408610092228768410258652757060726"],["23365580484614258397116486245932977090275589579620841084581394995521225867722","18437575576998272144169802470997642035428839374034501043839662501855569719100"],["11595386533331536679332729598533666997074173608518064140780153072176021962137","885356625363140087952198609238961131434079509287463319393768361008446568931"],["6794995683162536387099489029365343733103456050787189167446715588497548901375","4587466646737085465111797761530134394906935846509972359984721124977751346295"],["19423516734694446155774080996923987622543452099212759434339871512791328046288","1440572428898182428900400580734429330728521622049477125452554948830566021797"],["10517379924621603398946369806868466504878704229599623188225145899614787094046","8981562918395853639480064186493044214199698388082827026922886805038619337000"],["20533603853281961643924836513230407472663281826805225636297894122728689602510","624753054171368455164650393932813049080176917138655302753297752242307653228"],["27813500691059234646722632298025893697549111432416634548735052316365199429045","23863754381835865211168061630704877325350810327066517764964371104700921491964"],["13532427037606945053960548173177241536893706232739111589069356556894790389455","17915848862493872899756420525490786483859815887997485851215983444526063060615"],["643799787278910412099265728006212999444806757715803194161623300225816609725","25967237790018808373426363442096116608126608239218778794140352542616199384019"],["12908174548419530224576965496357293011218855936054662225914408837278635739877","12800845801013465266772728159838301924577112832267025395541699102364484952578"],["6996261441949547018643802272651782071096529191484222938748984099517551432395","22083794792670252875641455950151924560169351635726692870473633014308217145974"],["20530234325260637147946224198092685841478952361418990442132499319408393074989","13057800073076058002138781845180420301336559478673167226570845956152845642847"],["11884441267344839323300437118867269605760677759156194264100401806037866670809","18919223992415500687843842044629774374997807343217735871316905805491892018134"],["17559201729380904125183496401510785042480877981790685834314988564240273779070","26832771991836549972654479937380608295624348906800323837578022576663558161847"],["834620510096851993273813348925198442647477949221368813732064307564578289814","24348325341576751912219091262860366619339677989976792388657649730823204470757"],["18307398456275336087490379550188266192736267274413586633382510731345373425844","22247680400542651922159260112829797622721206086135004873317347097482071931126"],["1415571792577315410535667156772216185515888945993160502862859222939681203996","20538286767540089896703136558259226982513081770049032341470983217722637791576"],["7495144660369030889513949647344770838910664493601077891445783240575043077906","27633951715672962658678089079153688752820868349814665915269210351680862479398"],["10872335084843705730485394475204846278673156947286863624399958450539012571969","4286846173475825107591186580300598043722667717874327028310673309925983589975"],["26928521958767475825509902655816558222554441852410772449836631534807287118386","853501637230987488730618334951831615149650476703730613185916278361324508248"],["2357329231246343063484170824687385621336137765507806435936989780212330419082","3783814131733792777488884164722801308682659827991863947146344754426588994259"],["14059496647384878689779275187018309823784466683253472471311725799859857826155","23496952963343401170246769043686081987046681429673006052549217598470237455910"],["1695224248425531825140322682623180242523854661354610585156697006664103895409","19018695331470328812851918633483768634190586427336551878016222127175329992527"],["27088818077046715864888308152073831431367310636977827835833242157979566099720","23422726463708209309722255957218748799340368496262493207574241063438595786859"],["14256702059484442439202711069275663937854643493011555839952352645177927758923","24501433854756752117490837595006606395467894573128845562838786521385821323564"],["3798629601918125554144382560396167696054072452295444808840587914454501726168","3999474472952152331444106800927823545925943577494451000007230831431195268448"],["20105487454932907702394856032520964885969076928880776347095881468360421880067","21321798670955550447519387342032849830611235800027158810286945021249166265172"],["2007433197768539536489594529604415517725493775805640094096898812594566131684","7177332803550882489646447882142513484144609002474037117027706704399859957673"],["7079338013224673318356284644986807748271752888433993754382319123767786163533","7080684745650949867546651922783852825949425667894724087738981476421560753782"],["27556233660805811104189015096070878342578360799484567590166703763426229229566","22134837933165334989399794144748506462148324172845895122594898315235501345163"],["25938463092920252890062730372947720460179503040129606191806486286911261137904","27596053237372915462888213650303717643483865251226181600119233217549873010372"],["22731292228454978291401051472328885470490372471906633606548222143853113434333","20737232119922895002571866139888516535987747673877085572701243825683959044208"],["13050836260372743933239099770421703931199150295273823780503538023647421847112","16086280762204073191175160412767945839111377476821305771565102803121442244529"],["22943957327420320358315766656232554376522579588245822243773230462283431966914","10779152559842142391222544522463611464893543319030627015233356810819071939219"],["3581067434064710965538768138022694667929798188085907560042237267146950942862","17718244010152099308350322343197312476333466689642748460274210494737159837228"],["13189721460552133699518102948129788597504116165188996306875920074655662249681","9416344717373090875833557947771061857316097904438009754181618759483825163023"],["9340273227949096864700120259903696323761986206677966086718517474068210129914","18667478881958452990484631253180999094661972249431969747252828535480029309517"],["14258994639338827671845258941946487309467685479331906927872139633504797496332","963462851791896747123115584626721124220548543298931419672276492379719706761"],["16931849245877094561657304602423137706163350409431707439500811262470392684134","2510449877947877645210823651016570265259892295701287551593658296372524801624"],["3113268664353397801715105336067934289544707410083080634065254113854468311533","6941379216056316567465211333108621482308117569461283702570242264856103900993"],["8618782957588361127292515039110791970022843900226250133467550870157023141254","19904910667289954450937077204755223200174367952223231238781681484190748321700"],["20693056357383678675800251051919789178948903025519200912992864052767847854673","24862228640845857642450185387424421157996268143122472832157291559806114744069"],["2172563144858094573730654553386524831488852712583397044377774905927945114890","19954257176836492189261017012858346419784116442895839802546224274988865315281"],["6472270312937805927432210386120260826669109076631362850321374458399788307952","14304834837707229329816820608873893347854463669933261191045820024245756688089"],["16072758344853511451818094257673864413738223499440688328391771025112218803031","20498195539691783179323396281205946589312308993983799536988650497490673460485"],["23343105048205083042905818795018152728454746665062381330039998298719111401688","2302101330039039520330592970057405525115473400489899160912784408812708558103"],["18766433835745592456519578238073846058082305036512215514317848987485608003013","6539901602141062429497776638280405761098539535859993331605499364701507664736"],["28803860999125595821565395015254244450712251101501378037049541986065902507816","27914433054233639515380212412982728086209449172753031343230576832207067810520"],["2810706669780253853790233579514138366734076864849102014631956331140854919954","15212236682765721986811014152796733021929047725958698196243216965515145859106"],["16736216711675268203012936518288909711652796808758848044076281577885881687752","14415534197087935168585317969363197386753578247075656386831197411505228994519"],["8609623916384700185481937772511144850645894346355991585992243092054279993762","14857565949995557736698757430833949755136975649017921539122483888765392022669"],["21885792894736186287059132431398811746676589140777239727722856727172407946194","16478437071566809700289383302991734280911883843485760101080681990928204951911"],["27066097756784676023644393749980974154416645067216201604591795410456514267968","16549299378181873729168362619153340777905093420400991515931812712600913736750"],["18866880427860233367984101083586828040012464439231362886675669735167401811213","17994570779953695997144474548253597142166605798188694824249805294679396147494"],["819485735924814649178446643781404842017512815835132166672017038328903822280","2558689264841678079310164297497814036688367935855513247222534029379057176284"],["6088422631333117570716565874964406469060180734241657352155282107816755949157","21558207528526760514178429613130619910289125605623055493866544959439777884385"],["6733433470318368706603778189812954566819832608201037384430561316231788799514","27179424150770072869718608501887754696651694415667329185192089981420904674319"],["27136102651898477348020985540728805144912709509936551237880596025741151412858","14889480127137122384884962440984514052862410631662470151487740204405414002719"],["22758799884321079858098574062501824764133554473248541157570466263288965735965","18013663885734335115160186348800488416713777719005618004170736240597426739635"],["10161868171467643547204442829265525495238186653213485434718012036276602033355","27100598390371119254818880983752255732838671632800557359196873444020034941009"],["9918410237254946992580998788187698598594222709119098638312681053137941786646","5789879838230200644438158614343518495703887698154175026408123295907252488772"],["11155252264762729826985212503859760678276088893790210981927578234238055103288","12629759796515041760221809220183205732804887731737602039534203152992271873998"],["18221601914045363635801887186512408110552323260404028048521363202225260257831","5268915858232095971366505175808994093149375580544929979281005869556005256315"],["24791742364814379906084271654667715704354710707066004489914804303555587962306","27641399870246718839572868190944664171353623078910152356403152527130650208727"],["23379459789550479053044553803496251261610324749664024469726056222365453916510","240764204385342584147252205945469940945707420166186624388929322911856286765"],["19846863943235193836828285831744664033558209443205803172404451273922070816522","16778513914569576878769413215675046118652498220811693413695681600580793838057"],["6834619671674313067556786338386983720099213975094669128118059193840286574813","8106883056244397141051354654048651329832226135067632353406456332921554796378"],["24551306439575319762300688072388064398329467670683356770683887555676843367733","11480654832299112224765587045750713439850226380197190640527163001171604424685"],["25751368820521883164335128689262206508511976523283055877395662949255890740794","8050688140950006147943309526464224810602575277515657946087675570396048296879"],["26779974500083883153596725617174660097341119609239971253869080567423679464239","4456252532748295299747972385923044878884762142056148312200841649242232693602"],["5310075862606475382506141328324374048442376596444895470588544998038066663855","20000029532595384185924287876105813714772023710540510447950451960400083619388"],["7983555808843539284336808298275838171344083435030556808490284302968850861111","10060326262512800150460532210543097154877379232802127830322864783554222451407"],["1144637075177150584633883935701889197933458469803506062907455899332953154166","24448036516761712610356326106871902620527322271671298407300881468493013871072"],["24699829726621763851670590142617635130083514740398326146727842096308611899871","24851500226516744460775746114432640066723213244587322813147641865214507374135"],["25848931422169669239068178347814913211106402739365318314620911147059513436047","22251051682276381289921417771967406943759761837540681847833128646734064634662"],["26397684072595029750526901006521537707696021366815501923473895654208891766793","14834456306454062182054797037409086549354534182186100527930614953240276733996"],["6970735637345386397957768705224942945583290283641441548133134599414122715564","20420470806626162835217507428940416523787972259630109084406575597716427074096"],["28401702229571562019162555519465011537580642269726314751681082998284899300712","531521744148761849542291732742564821299404932903173095918127050526497841638"],["28541945938122521930139314264109665402795382234743298465999501925739729259397","8144670841618789174927965276383723610711681320024292496666078676273641761970"],["10676013078905065952656852981284822413990196918737693468536313466845881469538","9194247793152808143533161618795971724574475243426526444832715201698033281302"],["27562770744947301000310003446817634107848668427553176651506592571117245214143","2476752377001370088653114720207129614662322704381677905976467448499681923064"],["14267565529503993583572085865078184475438790278894341993844291580089163200421","5471861357782688985459070764540675938894991621602218682138670488086310841243"],["25740424271857585631551983109629001385987238453016202392742004467436693680353","11931285970211964103630287055988406152215085979517586231352652358668412377412"],["4429140931687361862993479883144247115572191255852248520661578538648235170326","15840132288273750032727150129369311109482042241594942257444594131253940361556"],["27412646373924035822646212811329971583010389147012510359990181644306691889109","12027837395579370942612806311827920761522121876248087075526611810158509727208"],["16893311419858768283534375932981463840044473179232538633422096186287002773027","18135586891813381659590210644947206084835612206638124410751894797006016855417"],["23914956012810048036325619995423443429910622526891534913290249171771934740448","13272993066769277692755804582345391642648921291359821172907753854004204436795"],["20071602700496734524588304628437777605296687704802989363289730445368673599953","20884112646447461987894228740788954666468576197195099100716868482121702562851"],["17557236546439660697647909764207437100145920378754261779298884286309777463225","18542312432009662674135330298199281577060823062878156397138507987778351470460"],["13717178826725678346671925235111331394834375318783265242903992366619743775024","18218647015985587346301329598872245190637560751401458688921202207082883557805"],["11327870519947588453867080868389095392396706393070059077651270057721114903022","28259245618657105434185097648091681364768992075398136053472272736845725169242"],["5086495394938904001129071204779726765603758222943007753916500184966700433149","12484981893551391276122870526994035838068779979126467219009701055628253752412"],["11009127999199099772784669816833641381091258423692297505868138506148969944327","10746889913204860489155139954502804912390498979535754110341638729161696655628"],["20017863916370454332604323404049242057828871943457451853603933277917192910194","6898966164851906629005995545907886201825113956792499333137414078522226396563"],["3957804596415468361656480800582830624659970136635866638296730770261412861932","16206042466168791457891527398909157395098542422217979558381705181603616954743"],["17760844532897258249056235936755018649728272520481631156503961622756591897176","21824311717246713786803311504983567550422767284182778391308924676137600302418"],["1057242885360632196208719810731432376195153718391929399431407807332996619213","26129587544543440978384702420708776323536180234754274075972535366155374886640"],["20086933139418307487113213026410824710093167432018599289170428386633459332742","28220948969806619698222182322040061769659567245191317156746447769174440155748"],["13896821433164112901275945108526402461798785606776124908944318922584885811340","14013021788832039959682199734865068461954249524499847746215198218051548922889"],["1037609415207819872650537127062337619939507111562940337656728490990465776712","19402813881677977623506265147284574921000800572979979376330475466884324310138"],["13920864562343841884202098417914869429311060684886295790233212948018118441469","16747321085674378750371059376978910344356370082298894120242628640116963530967"],["6662362475479399511014523175665245817508140415200012843066455674875469350964","5002470370621096992632028007482583697008845800339719614401147283361219809334"],["3853103908531185676159554185219481319705748545171180130881229566965242095368","25034038008177598200757447648156495178977163405571445676536962212117751391406"],["9713617732699386459499547445592393140037318704783029166182349771569414088730","7464961235212340523907978460473570659214079504285361506825026052259855271354"],["14273340049181888148601394911113055185089928544304136533346832858442622727645","11557116709590885710376046093106932161912368977694260065708685839830955477106"],["16427619811735074237159383512991058485792552499361557452568855804625394378643","9290290515352018416652116530589136420050636534170730374134686410867250730609"],["7445297973017082534931191274564189677588701673740985914391290343868758848785","22722742616356754565446173781482935334358781548056349253879383823225802070215"],["23589528137711489117885053834653824081274495346222485996140648124219202126233","3900305140764559920396444241533214401029761601403191938454197925768662373474"],["22093368565048808458865573191235562519413450761044145801426402324097585199768","22549028602325929471809870622858598078309054286731739771367783388052207619272"],["12266424406494869117025174904902773329880101871137653484040252907909926885237","1683072276602578608060163620678530302369076469870055715806959572122741690542"],["652528141353523361157843706557634210107083273924625897338674039054017268875","3342473127593255657505140542871036365258664220300350502928619494127281175429"],["3682673004071639897644027493041360113875245098210102856295433370829481165834","15342300594962046091457883031177833957791635068646796658806124733754331474706"],["6452258122570358210494498200286304471307486293948928378569320268745723122574","1837483239092631844119529839401078234788264260834311727711353598941991330313"],["26647694572248129988119062534367110505036066191033957789352831777297738781677","9089429933732387848430611045358417793562886310890931680915325151388193946307"],["2754851748365080894807614898988617620186920670928962969106344202893100170642","7487831515067405205937493040517237327321706605172283353740973915718809177189"],["8405516261621624006883061496831762810613718821013333627004466908335230403647","24255381508777413030562624289674292370639589206062272695211117048324765965818"],["25709776307841317978527078377422509090380301508596896899643336084934221434237","6781376477487770940697942333547642585759151634239038422482194469125248251516"],["25522930619236855524577164719317865700123927244202509859354142349007438158969","918398298589357436324505256738181291867767974088652494512883024139965887731"],["23595766538850737617269827308627293265085255442228728813249141062417901203130","2840553685619238051870873295285263310467996724376237237306723762713621326055"],["10074948525433051953287822702037824822647232990422260624244443656800341394611","6255260469663318141638170841077760946874181732663958374033213435262133089822"],["23810033838730881828067238879357648463336051439880867187848548761899400267105","10314856636261783280696941115344794420536509457939309226190837641071994346085"],["18055033785972845228171499862017457208062377202803759572301981005157884492656","24478195803244126773534263334429366420072853586465952567123341595138067337106"],["26127389977256216282943353354794850409368662781344606599107677087699421714698","8450795063029133938698543136393766875865698843675369792423314142898212107769"],["26768835985386528275937808095747504762828620469652197880145188143574040377563","21281568601421287018859511841398504361823293192626094656436857010046630441924"],["22671124173292618958070789554444127751574750762580303559036375214386936956328","19415044147379505474329411059724096890802532934721698786015854050888336004059"],["27706946656835166601998674007844428267113240386760269221343537717266004038187","13668523665449488870848666173957112226579603698195570090105178385588768460395"],["7506810507836528535639885285177234593585342604812507606804258576144331153024","22831448112368258741066052064147060407063231013389149759046141440489611240924"],["21064683020171630313993720210184547059728867558133229705160843149403702290689","3429971286536701964598199642658114773076564488872082696012645085886287506472"],["5529402136742496563698979970899754934868863066090172735581997036908459986253","10040046057612376794387087904207521963037438505094226453342382347580815913531"],["23707078588178109297218272255974825626744199987680616965308304808529219679093","18913501338745461199670264494332370673448227299262638655902708489437071481967"],["998383335145887112349573137425873886538947981897578306417322553296579826686","2112672592665118666275161787474807621879350751912172061397270470387864945629"],["4886737927198929237069493975905506414301947656301957368359414071278803304196","16629579099335955015986727937326381966083804271622212570295949171940985071613"],["3369155024073135945194164713975878796180953404128631364639875839429255757717","21746566908219896566861028468749722076625267880883848487767440588127825666739"],["18036482286729593013806796828993024089849075400300832191706860509218355784488","16013104133343976093636376288488688478254971224464654789534190815998765812043"],["23055209382063310692598212352310190657209917008576003546667512672568815065833","4957165307086718436604179321315220114536855100061487199356343065208075398942"],["3884731097021375212566869056200489770074810844551087865320929958163955616915","21064942481122266770778678457433003249992172519533867924446889753778502125065"],["6802243724343165963537078841123919263346384615213674376126343875229968444005","5671555209731346841969488674814938914577631766524141618554779990774953890548"],["3461399245946223565804303520968199027038363749979452142496314947128690577764","17143641313241078727868396734403265444658560444167165943365503637352211248308"],["5854708171143604211167935935416544738217657646047573575966659492992384654927","8552685742529751843895808582624832554818843880809639595396678837465245995894"],["11363812114481411297724160928858942901206700054818375080692097954581230182948","18729408895624737548780501377955571431973548295006794059457890546284653476501"],["16892535642628599511468209783899888288241466782136760715377971730436550563621","20823759251653887771436554252042541320533527055355122314243300274579944116093"],["21998373565159923549809153053937316851432517198548997714460309068497512748168","244070396745039992205594137865744494001250845910218165306795246818521034705"],["24390258894866807453821172848368520351633530082558086552586094748149204918649","8577267163275656068288066097239766111830740861347858441462382441147280996905"],["27138029247501181117974121877596274143368696037629064496336872002524153020171","26694027539631740831055996582435477521408954703890075644150379428971303705806"],["10827323450469606538637011389426663083389875043577475352161283389650840149234","3248406032799769584543335410903188994465187654139561133999215687041547097994"],["9129280042751453648718717661711798602739464034804365331149717112252752974380","21606543703931716864945654687767270984803154921363151722252515778798044540555"],["2437928868031046234112594703569360660697986167991621325324757937569983329116","5530123806489003214270232274161333305571416303080734262899891641010085772823"],["28193259557291538410568273626770584705733780508648786093883341246385993174856","5817667085964593245459331638759976081785077072413853483399351915409021871708"],["1047977656654043677821889815527020143421339726271449555231923004533750973773","9480729424406240141283220134554850253956345643170034884861125758639204408882"],["16166573615468872296511376152246038915986608313086609939885846129432413931547","20031620823035491925900989644891175513420583394949414204526067392223422639371"],["21197943813642957524579779596764139154409465156842905093948020262443821711772","2444333445778466212686958702082457458654763365338751510929170119990534266127"],["24217301188660685139768089678031227940951144669047847415754154425377583908190","7937559271828695435201671802406915485153770089225187441566254554412634813371"],["27971073323993498589082060381411740628738156511699725874999832804802469637247","12095177695945392786922510505109086405385921859907382334276120093558805210580"],["2505407833718190483319196443517644882694173476036492525413224331951464348963","24404857483103290889733349203846661573119562214685912708216780009493740189140"],["10566407411729986923105746595608305756258920556873507866631779569563290833799","16650447951002083419719351278349300086738105703510828885426513694182316151389"],["24382139647148448821080178239616415416512000468547493157845638110745366253611","1839144410006012576864528804996851840575823021202449215062726990076996792207"],["18253557881854649090306800263887817623112895052121352050661590644130279943091","5988497606405606767482967380253096727025558136465414485418205600407516669874"],["27577225955198065095373010066465441707989032298474645818213265412137958369610","4474410728079094386693341551630402690689991969240590921179302254422550933654"],["14856687313731908791602511075643995856434794782898842234967571690450170327358","26651846818605944451643493747138672737599877978198927348583428774290026305048"],["4235711492477053783302154003906271400268404419661890333659645314195696264577","21832861394552819466245159240628347750157450287493151849269815809128251312578"],["11898314432883969474667828606159009777259891992026651227909616940655075105315","16293051081685537681167157673276784893768733549215727863374591340503166527315"],["14149544183910473952507741606446964241533495627224074550876009272420056612236","13425529902640484745134519415739093725801341714240803042842347053406397369458"],["10076921088023309702929116266816917101516715353635777113277745190213176169617","12080839477508408330695058614086162215577479055848113995896507839680088828704"],["2634884142929892048229681410475445568311841037416157155753558962383795750465","7875160022216457579887860389373164187420708458675098751703501053441536099227"],["13024628654075757498786400563036366374949517356068918728361261547440048519264","16734098967349285981802321673423679405406775352706647053955909158959973391060"],["1517606884576181874596665073444093399783288643128687628310949232164682379366","18728446875559638728554970057655308709242732443394708389708245542032087796195"],["16737098730101425268137843922809214110505004537016502962235876874159989011617","14260693344193288900969443264012292258674534903813014586582416158374174336598"],["8030419117865239243172971760538898067395489409770083253229893283638275696703","8772434237988719595057921240066111348437656291711031602231694324521099119239"],["22450223229554145978007932671884598979291152508066732668959524553737302101312","3925403343497663011050679273179870167805126046224209153190727836150010609821"],["21507674494299889492321879051378880142360794514473894683462871290942644007382","2484694340927755148671377442433883879926968688495381688064931611347998153309"],["8105217774079948914842758115875815328397428207717215295925722869584017816231","546315562144797792423645414107081660651564304798957428268324035977246795408"],["5510034965554039967570745427113966982374112430614961337417326482628487330600","13691725852151437833590432627268120673026009052202123623950860014723395658369"],["17228901838219525583835638018274140429642809361253538739484883588423747039804","2367709925870042920199425635115688743257921848984072055438613868068394652242"],["17086864602341636062005553558388953745844809643533058550590264985782386177213","1060753578185216263852826985523573604443538026226431466186714907056110239090"],["11391794149329564795802006840071630797408035968335426075537237783824993234058","22886708282402476323785163037705044899557368162090569040720892135684385359647"],["24213902776734103703142260945103370433585787805878637832665796952155638760832","25724487552841013665004691617268237871853388251226189173351343488452330387777"],["11903860534274177599925981055493601766768021401121379369480528628623028805984","6974823909237621729202757436921671327719604571357716870463430397218961643591"],["2636815708406399050954155620192043060828390384668098555936533557157306586963","920581365804340090539821914129935725656053052128944320375693950831917506948"],["11462305774742485352793323416397297598697929953461944423717592054207630345630","6942465206589995087692473842255430480111167479272237739706728144786974993234"],["6974461908717818078218987844900879083884780201468525674710778518413925790147","28018883911323664936897796136964521286838772390569985292134894726160752887847"],["14811946850882055636638361655040405307370183873437078042938103290092144862954","12598757936192946653486854391795660230631331530787869398442925461970920454993"],["19582656837588674242979509878791354312172709097283758361668345786962820186217","11312365892648458000880397591564220764592595134269834076587776026907591435835"],["1524544987518223562944560275814001010789071435185050653000910124359029173865","4791845810024979906991489015618144402836425602357573214537197253824690038161"],["28553607387059063348441373524891576014118571309564103051733567015265666652959","18349868408349000887325080765366874150734404865501667125464984112623953732583"],["4488478830701442995455073096530809925158777642851527758911904695398040193847","18752776695056171492917247885357895111853090079116789632833653551751438815101"],["21558476073114225429030666517382021441858558750270172398751930689866283191051","14510416924398491462381188404583964546017193723063433316471484741582696859775"],["23299389794580680762440286587622704491236296754447264789315253126474142064830","6969908354341096156889641818200336913394718652198670471422811466121792958748"],["14091948236551029083195004061522760047994036884225763001179352777874535858893","22798868740243424056312742126769747790678066225515065542912916734266189903722"],["21317260896233209650944240234575197348126772723189908674078044405360180903918","4560215198417993510358916338442887363317918426057988489963296397996542862977"],["5236799027717429838958285845386687788207262038358688908986257456039580505505","13528431729888066006919915201124004134017137534650596757600178737004602032101"],["19427369280339111864543388325970470753505605341558238834880043441490924383810","12651432289690940708275081577130429729673848480967754655148762088286451620244"],["12462832413167884864129769790301184921015765491547712005786447571820477196567","12217609813657026800780769531972392997305491148886892314782092114497613427639"],["19914281669324142942486056871129989908836746589255440351766477750522731990475","28583204578899012995476970464663250541644385229532994953814731267654144823203"],["12809077609271536208232244277673445305036244107916178984322780593498950775378","4060791377153627648288889337233195775212463603485105088521105673356600935227"],["17507673074013786727048148863186736913917555697446404818693414893659255027498","5005057105354442060883322784250624471407924831595754982782332204672049180585"],["1236125191076216837581755338495413347707043528513651652351195007738201980231","22391945857354191029691389272757214691455963911044709170845866213859888829771"],["20022323846091836554153366382240151936727845702150584703929763396141106033844","7148938707219380987399840758339896026172575112272818123513132977368014999157"],["17346759970513692421929552952718749746322755454169543140808701870956252457121","15446578977244450908494815682077278226633072664057229993259790891811112774612"],["22372182667810314619700104639836812893438124269493827422726779741303041810105","23622077127724848033225714307909971061104252660038568302782463262299460200348"],["17574086034908387402796817592668879658640092898179938927522639165899738341217","25648921460032458413382471549398278752699746203068898077245776325169404037587"],["25504110632730382414407680245387594868713480488813838108710954467683399167401","16685758092096783048657846939952721401285167766261889018922978690775106157761"],["4863945302847643819113242534977376984047034125408574123785460060793231160071","13282165647029052592371862214048955130673869145973991403068840944774436709541"],["27694696785308057747981338914392372208937158059048419709542580019509310064394","4033298481977638619612303967820867897205821523568920133522286365515094795440"],["26268726436118658524010364222294045654402441528898699518774680705883165314431","24182331498270129836313202702643515594798765271817674038600122460417810867844"],["28466278491606129197154380981349924944217404702922703997278323644646367634213","12843026538351199276819487836760404968971780066316809228927920346616355421073"],["21810810320226778093231845515982483133959297912136956273844428070650115589544","11837933416265237018645230346444013367261449858946461709067868866346322667909"],["15564400596203389768498389008659793976370252519923977072285477705887066127096","4951226706699558042907943215634971264088830155008577032057567573198247589049"],["27556834681293336000471857642988856536134583237051323945231753294845375982735","8504122977927107570810171570174362284863455002688924520367469620656748791778"],["11665468108434842424934266258066766780381652473702051723897518059131967451137","12511463019161314245876752867330106903491036010022861511089268550071644342605"],["6560334979863679094771165200665627868297360625458469121736392237902143229032","15361199111231124243647651021314826010331410319166839146002318273692471405374"],["23635218417111122411235956854374932762972116174187761862682263851923082268209","591020841205029668382259110409390355279910306424303701591418740408193276256"],["16454723486461658164228857085171930090135833126079253028264439267153811778124","21276754406173169000173372597582210218440980374475879363444992962152122710530"],["15269343876184637011729856728554969498488726835837934878965245270905814567881","13259538672822831765464757085590020731299254654221083015128343942486062012740"],["14727409467995808441218920089396673132129863725730193260506611147735681173745","13969978875543628149150495596976260610319159831195968795291733311359741614549"],["20429977738515903619314568756155360206933423452896017310912771349469273814315","21407825165470156912747895075753690732168292019999070750105832905968383645475"],["8798037923192817148624272418369012825385029609017539976940428565215543251322","18618888844235252518235251133521281635312818698259148154444912434872341909858"],["909945603261527669520540623476571233283116627967975906867026228028743901792","12973971020296223713310147757943980080314045281275868826789112691617569855707"],["19622564647647050929813750778998533956047681527251896628414339590516323208532","658323809688057163071567558244025407946553157623650199522996402258826901001"],["22457693309028316325135100502351270647111896215512212980641821019057965495915","20280276435712569956174838216193555985425404954553098728349479894112512602242"],["12250059279849779074091851515155020706566262882286566263339336661827672593587","19166900059979502727622582157523727458903157101292272763539362926351279876617"],["24758597338889525507727553063325427560057102441809479889553135616209860147344","16051024392296594520778573259634814019687816869033426928801561469423283239662"],["27909255277109602118662827935782409265937234920137016361521973278237932103362","18113180841859240514501650954008510908521998998403496975254982535653214057295"],["25047831958924569598036843479894611682943803354372138909650105099760229017400","20811373849442751727915276973314458614694383507944141552851327543606452339494"],["27182806386350557912258717192313233589119703955359131719594737275089107642720","2382356713940339515003182604733479210796849638236588686782340112942764699419"],["25790052762917349943072048066122623843041062223994433168813648111704921849355","9017591166529084432953947273940824584370515539691348936929439837974988346189"],["16489615976381859355153201930054823589560405109651975672269546040343653761642","1013878300177173277449276557837809862495796909846689220332941103460513144194"],["17421120243218684355161915142516410327409815895088726345264242977633004827502","8176944618666233533095368944855562671610138800299920822607319014142994792696"],["21290844078857192190391786801606329031485879957786823494893854033952661107758","16488065430036513640607079544313855060195972189622565741799887339429958210666"],["4622992708875819905570863540560176416280653001974399003287721766205261716170","437430382860656517250490973687189516156171893540685115900470877056988049042"],["16297642645525880718700217234117548711721972959119306368539793138856885905844","25344899268387330343765785498587346342884537346445653496934872107157051599625"],["858922390033302565682564509144268391584874321950285331854330515322748715056","3855223514182353706716471479603718521111528553773380401718912869574103550944"],["12768000996055901742186780128852624205115356408542090881738999454647392458990","7721032058673115715341830918410032882253602649542272431899594629497886297847"],["18092204088184401353140473994291675926969678708443485646825529539588742075208","20331050472722968382474398926328181434054822714466414298392157385302548228091"],["9504848551096506548015766275676025860947461508465470440991895864264270068528","22925875090516447842982102990743667415362566327723402038203917573335205987039"],["16399376976472639636948277231583584065427453593606819325834413928055779537161","17335779262386843224588252014154465115452026695541122590971424468957150369772"],["28378356467418199792113586719268792655141858123999817839106773771879950792308","3615577543294731079023950497821172682200820476103273492091289775570761600007"],["11962401636752421288906048821708186901727158325313585780087893437242708724743","10823722572719392511543664735328136543624995339390383119099378710982621440667"],["19240060765251514179737808943116799700464082867771158342474116933595746877953","1517373536975506693628890956398786933751716183629388130355044585426515579941"],["9840088441643893405548619160069218578090455255167558597157290285937832409203","27354044257047655772120232428531998841545736593216276508962849635510063321817"],["7558661266330643712218032921562609439543449567672948975831054753727631090204","23268867456943456959728690540198426910109722214283568824746163592785481627612"],["16069304281570062589937014837566670730543497035564546328942389105961710982254","20067211621905821848174369300697632742254013881796883801119103825520520517510"],["26754359074735723535798997951431998599676241074574818160071083302592948156271","18443617862143552212195224094802101641491181305745564989755428980895674997063"],["8428669148623684746668817384265265005576367515871246510855161583828852534986","20886185619467352205086050873241247730822090318089539454366773513608367212007"],["13079927066803463190247596083400015992773323064483743899102415700785207769243","22517998298421796741097015054707095693816442543079448940233384801079262101819"],["12245446004022987785097601491941913053375157092467762670086429692226409861820","16570734417665687301484313348398818639199045943694010488572559620104485813492"],["9972857583515857787950945362214571326253576645344611416509657343275124525866","6925790964938301144938298663389450905634474451664562683687271514822145406531"],["4190821687193115610191519355541741474731009587192762401663519505529335294140","5477719059496939148679981767060156389635190595529921189633251887327446258083"],["895674242383340466648830313604728992772026670104193475313642051264438032589","3508994486237627199767303680476106849730607087863585982985412462214871804600"],["28648673689937045488138176918444502325555508432761013760576272944135761359161","17480751703447626389703722394746699486483284053560780547552457855227180070599"],["1250483177701844575430688024420632614011331059503170282990183258641531369385","14789263860134258223979093938320010596601680266376081733539455427563224619489"],["10473799603038676388257050831362597851998450094208708297532374659151413526146","27780043245991392258551275362688906249504142383344022415785833221414344595232"],["14086457021442408809463316198798030857011993720873846327955599462520858118226","18533498449169815429014949520807115401998060477973892754481012803551056748458"],["16594696330739407287927502563341723984540378099093560908903286531539408639417","18010448640298429045539557699986164062158406753689652026108191386946915997106"],["423992062659325902097083176540199663251373347327091410281985260455884996023","9109126686994821329630527035403111127372836503129576369782667889390978588056"],["10513188785296817935817877865579744757452515726544807346009641364661121788375","278152204744352995170318772284893837520001442378428663209065552230993707982"],["17868065064835150652003106711969966453903843147871791605545636209660016479079","23142000923117959321580735350535027693106412634850998709265581174590884261119"],["19667030369576705108352006625115303475512543918272536428877948749010217884628","10330075114599963037047517262751211726941994435743796282562922575711078196046"],["6020082553167423705519029232123611929315275564943378475277406579158842679359","4635100494941041206258528943560789059517299643340238298565039292591142060524"],["9135066045244664840351739274971298079773016559809137687858688999080183100112","468987249841228270847145579274878876580150540554169238773147704937676985055"],["22079148586747335624132866703609420004718051237442514826711844038214905055385","6651300824193802186652912890669785691610528407105215569973559290565180795947"],["22680415437148211729734913539364233631657036929982192477332598414050263749409","8576281218527588196803734874510762568090787552405009486505749995821173232384"],["24237866095013430819891293841040613449100225843702326538189754031305395093641","26125762418615397417779885851108435316199764280852877190106628761537141023989"],["4467100197536139515011853442184270528142135820423046944279506519308679301107","26014657360644983087691756673028016241290395282454693951125065684145697469389"],["24340268901562502890310858103943294110157004045779799514979422717443687816429","17881913668096033968351841018258363187770292730926634985945610803554017096576"],["23287249050001463510582036048656091893088512460994741670967860234356171313112","2554757857723681170434099121524651452465934222700072736985084820120417894346"],["19556537369313208760509751071192883865208821420267180169512421034790390370889","1977952560595933030283903526670470925258562676670346020260823405613577186222"],["10571130597261184826936164760639576830794587049630441295211828258314734770768","24493429246538754686398280295315373490159656783514341624758433686125796188268"],["18879662293902801657674303502941779707877260768263087348293568947178721928288","22217052523833490545483146650886194623663582960562837939969512217159575627018"],["21903998450049904280201981231168027816818916476847261020014578145025697591448","27021477528597039432002092888287401185632572460528168102549043680985817066663"],["7531945685919583324541683440044792017768574923814137323112531962511851590151","23706958984038329644906682355398752888666775159591144208762541739148557897841"],["26644290521683756653384233817116364324971428955857853896196679156411968922857","7509921066191217735487742287863215534873519783183735007547776966701976140486"],["26551462536916694754113205749864434901298315123684471506470185325144503782028","3886794996226702803210176480151751877295321497068016439421528129753931487005"],["22991911749529912094809307641332181724522442640558622839779988781386698218784","14617754231742284204521805239416986149642220388005983860826988694509672910217"],["25370235900940362128321279291215013138046987051531924816978489734421208581239","4521325681826465199442008002831037201283244434644211229334808958386088828525"],["21486300852452426169235577594001636647667964749785885764919668202439292125194","2917461271931206937094609461035135318574157137252910245976210288213916763964"],["7970413247472206155349400181152006994555670948863206749859208656354464113404","14523978255708952643271199045239355816504781494513706885688719452316688508525"],["8325564218728967823494595179918058246810893784844275607191577431336647722086","27028348419318084091157562265654729621622459810746345522877326306456648855320"],["22564269403201249227776173858270153321359736666703232133612876610550803254461","23544498944962577608097632846644518954254240138408539535811748833561497773880"],["8726292774049646551577761435993139069496642634748036250463449520736783135842","19518517906468683916950601149331376803456124104530808464721142416447301592522"],["5656908106920492041947040995435377379007057943036158341327508028633279432330","25615347571526271621845596085616594445325242857172886419021616159721034778936"],["17376295104972043829176231295364746496439477343462266971214270603767802460422","4139774996851517571428653051820144630635984499982357326426808174874364517748"],["14640050889098532509703674415574432813490669936908265526490514550777634688770","7824040144432019968649953319829300576421934273048197952965559152650454001785"],["12498006181005901230671856171072051645554985152756197121921589052760835974394","7320155185564266437163089840121342730924677015935554373068246664288423136304"],["7795261924401589007814036413977937078905406973662462969605918868262550014044","3071765190516440120078554667212203413580808349711744017773150750376217714178"],["8028977060465934965992436266163887778332213259103519450904161747658984554632","8923187113933984609045414498208676143214677366106340028905175396394214995935"],["27264933876350537437431958581642547315541887444597985268263943913867071617754","881650285408433328594414622355708771133452928386390774543361226662251460928"],["3410071412063784377115113334774956832642685428706667783318738875195984211365","8219097382135047499952746990332698379649311408100780397918955549511375137510"],["8045524672110867844917055278843121083482778854156678768527450981593749348241","8557145965810716840439084434771894576883794686456186083927874409061560664001"],["17894032780658759728344985832942418179873267614962981085727572323089221028787","23140401505946939148818328389118695620821719737943129446183906270804135436489"],["27719848894350252681051385422632757802806042157979224552898546609521162495698","8494723234140937696096892325164340487814510219889064268351926529598651802795"],["692456017592169277951806719630832325636283717626607569918285639524387639050","7903660303392109108533295674272616586647158413623419187872854310900737306668"],["23835045614334503885465872742364111017998373894870795241710078876042599685725","3412627958378568822473208133450126571440028585573328993591743670651362062591"],["20709508596181353094408989961200159278483575504534228208218581331115145519742","28208910262803433422649313541837318383435520718766755063336743323017899660928"],["9367548482974642216688105179605413138862295850535776634069840362558484666921","12803552360363766214394251905476673712325290638353438457246423916601778385711"],["6079567663081334500858821130989167690213199269036624055593129535910865114565","6255205447293415057966645760037217795834578520903752088051085474089323771161"],["15562954381676854753570972964969227692845012213423075069840229001455806351209","5701177533311572676226320446141484281840455443445723142866642579903743297035"],["27389770224961060786036896922485984882729745105108616695217950492555287281524","21069618241808429515537180705254142681296465685893606057416698837448948878264"],["1545045266674204684925216175555024836496636713842475972783721748778258624076","3577107403206828888647600626289322852144726406383133924501229051858306425065"],["24372359907371856124553168970147134599622462537483153480881920465593140259113","1506322939700207346370201524650017663014610373806659781567171776796568757767"],["2281027984886600019534992683775899629921751198029582334791671359836251799575","28496117348099657350757121559527781241967206395249136853567100202239209941593"],["26870210514609909387307952670766748497843134155581370124351975317375814613483","10747032381028799271436212993494487382918636949862270286057290323217372683025"],["8746809587601568467322837856866903051285555542479522547049032037981927372264","25108277498797561260011744618996966486071512429706104824849453977235117040268"],["14951056000062243335224960720189595883460123158530237501293267438566522664744","13260097959677954739617390368266927787338116027646115004436091492486820087155"],["10558210504164655808818537400028039606843620372425990207847518906161978575041","18381221710460893366000352166380559774258765040288866194056859973445408251551"],["1315856145656597444831866594037153951234169332647472512371257737648792932074","5908762740289253773428969634437557455689250199750537812748103192243911311314"],["17379620608483207509747483296278146750235236402220700217046706712231613070986","26642766890987783871085826783220132808367647562399409869476754414181950564560"],["11129186328329718122021209474859886854902389983024051205835824429204844436903","27722727322838350085153398830728363295310479805639740160430192943617015287245"],["21680809196359012743605659668050090318309266144950653251443977906135608127571","11451129278596832239235246231176162859809152012339638492525703347381033537511"],["7956184124105499343219791779039634744632402305145550395306627372369076593447","19934845901753320377085956178661958998088169355919450818616872733355161539144"],["15621377255656934856812315884353880122479969298367621700386720131093448878030","23392826643760433894289643083049483426902449093925141267542082977271959204526"],["4919611986077959532858703209513212968187300230278359368101782934236243167003","17435381709709623941390179402905174758485026521291048638974082431658401939708"],["106469090664554107373972256030377558921710237924442618500851963891286363236","15620136853001230510237890155922160644469882008556611431549869004138908985310"],["23826236609806880930134041762354148354647572252193861689286621719512413192096","10486965976733519186990581420838923542795615501899476757670608072462781036467"],["14548582368087657221076357652624118970267492460358838968094284685421895097391","3339418912140312524640038783571880065380678426817699831545866602856938461108"],["23454629623048598525607925121491779700391872239945193428084177039131836010356","414337752978609099358729223424437652761088696984565804963371666133102765390"],["16973344592978524003201861704322544216526716197539889111270926307817132842324","12547848338041213675652728105854817982108872379562499400094509537243388439748"],["13262776947664269868099718224219943503699112466022377400690782710132530080961","24104010739870502064811933346066344385048875275279921799922336223826499245725"],["28923871405386023675834341592490443879058076526188718232815559574314416311739","3817961972431722338364418181238118978035874676549033520217716315597376548668"],["24688272602798060914236361635077849687899386149622756356144659874822266566910","21760755991175323909568995503159888733295108006081759915477437596983782090685"],["7860159295894201788376708594334482120815237087160728113462903333867393566689","23402610669403693819024360496645070010440389044350016892589463330578033377041"],["2088403974629390629525784586820007216474935097082851930390323113381118636735","17942365603753793708884626076670257625696011910873068622684873331252524409845"],["28278140651421712878975767705064482663240426375865594279337417166718741669307","20735862939469622698870482226152581099368035106534310355789261639615589432301"],["18420765189768813014210875259053615075905898228726298113048461926360340062484","26104916338432517843162985788535134769491906820072396115048965442331983125313"],["1995424274870955906786673841170661204987224148213109601591763215554515148567","19860482371349697337586611103979646284649043370906768882489987361578406506594"],["8249149579411978455524631476969203568625203462024092289757869186557331012322","22761081557720021441331329196989330003565427348148146374022359502182037454779"],["7058080927013247296088345577997616772549113537838054000928364181025904236899","17453986354418818422175227563705217154058120580879992717574077716815685736282"],["17580785066696636141159382272747759794855880919922981996721503537687849732952","19700987043500351212395778524055917072171170286178977514205284993800548017967"],["20339818429094790626030134528610803105504708728411013031665459172242675028325","3338648764587979941052503820464166398560182684456677104638134097675462271618"],["23827374805469903313012503538713283494730240943244569655073109876948509269427","24219493887739902767130166753590111020763164039139818005433185720939179929078"],["963234059067718132579086567867714038435458030770971775323897625399964076700","15584051006876244615825156071353405928431243383911567952430697280621742078806"],["21381285827384388267876877994226452465054981103830285603912687595876317508449","2652111550817906108070527719305214242358752892042027249333051978411266352394"],["11331723679289670033821496135706674205572773696149049502292968653597617214021","26184143933539378538157016149657297064165523239203862918826965947146907457088"],["7085812496900662272223481214684171597158140757969360120311009635769416002751","6552494906606197698238291065045826738428373856197358061301418371763287011360"],["8134184525638087186242956468493387020117330912850028734913252615764047948615","23058824185285770124892877220308998547116909047924799924920619557929425508712"],["11703059734433045333876008804433544551007342232600684045100940106378315536098","10013252413157825852286745194067214976439469399776125312902022093922410306417"],["19429802601931502779334375075173202972508072838517286764918576195532498143521","14214329223913682073652127412212310377184094061677273220534502709572271695704"],["18764065920234185014937549096085725668401189432236854188057657370934685428823","26451688757622545993760232417578703119062857529707969996369171141986367750626"],["15856244474013074513764163775170262698864963508094921738651136717528887701831","7780222154649825545039369336289318082490734721828161791500227413697074653102"],["24178986937068106559185527254407847173494896836878304525809328792944818110184","18389985524181679739897660257463836044565728916257257390138230804024497943995"],["8684937238993981900806395799515457180780482484952316947998067225701719787822","12325270596369524747911041206116462781766869492960038725189809926848513775823"],["19655726214174528420267015285598468547995709385981591642523474309247683243641","5990996686945936350744930289827695765344126957007625905120558443507123202070"],["7196982909140399995707866529909855943762787228278758860963464621253706353961","21123844443333461624394616566536199751328559851947802567659267404396414428542"],["10258257329545055062574406588733596654065876669022974446110489219064385717607","4614983736330052228366735448504744498373731235275771392148000093969217536411"],["13417892225550774020004749296453170640727318468730867355252591043564926851423","11033709868531268326075910306379091300889716721022526498051845977630416033462"],["25361616818478022687955958912972157351526473212391459969361263599743767478895","3519776885159385756403870377390576047191312031710271735789242950816026771709"],["10525336569568127170159481111335229403441210248045140695306629507825043350558","289694603809140376801170858570322697023922579076167176346485259530975157899"],["4798599708654552083941260291551827080992957390633532814477335483303070144207","8068765360030964048399948376000214792890623832906988767021320953464017809797"],["18738896258786633126589368334255639037887044295650846844967772204898186266412","28094975316511134700976405828138382785959136396884180301584270753552473832386"],["12801752235436491172106517279713750209846574502407849503502745888999107974329","14643576640536916615623630535563593031109670683156373132156564773491651860296"],["22659007035125394909958772296547439018575515802895311460189433662353085445530","16586106214113632543465849180152444040991065568573007223874153412925611589325"],["9740434735500997670475503241200924995382098729383593971800413586260870448425","10095563091799578817612766969370506184022738915083088654162897449409857487342"],["17218516261039287523035465456175209072893616249985214830357942729046016907499","16714418306889747378527561118833941129198818600728352054460541937102507623965"],["4450147907296376071996967080468953676078338938499885752820294565240036623015","22495131851642174248026909811447308043770409298101627311085348417375732521794"],["18123147168943024937386393312236189609412110474973827602020736733269500344705","15706475051027665721689639926244110349918969394386621882512719173368405951336"],["2231014700640965221854339391538229837542084560584808066493743419164170068839","27432631183223080539105659494333840347549857043627246503581418703600939446435"],["11522161225687311616166678536534593593599528830848284393238828057809139206843","23932295896808658204125283859115990415980083667252496630314500958381408369607"],["18671015549589520617965545678072401965597658706106633202937999497113381253423","4361007460436655902822137756015352145867896012363387721922787069787498751590"],["24009196824281797664773806809593563595015133199992571483966170717670251757701","23433205365446771309841913354442241763641454657038602285540396506405264488702"],["8168528011215413033547313503238663061073740510570434629419031429220950741397","1770053167728026710536762727380183913094940461334567248305217638784232890238"],["819936416328649421636763442529068492038740614953227502644098480165276295208","13908961011129952172277378434156934555541706078541250851674495853952284772348"],["24357663185463726352902809940007139289408396386674121236986785198584816934918","15760576434191042810414534339648561738561071606958591806593308272294382147204"],["1239945317708704543879176951844960010477968703989443018643605297322061937446","7578546292748910458594522526473539035186063569982658843199147047971221195214"],["28240791272224351246775189095629966134142654841934397989242118122413564145018","19852116043780590567173016606253390241977688209433107344913465595088674345337"],["14007796423306271289129966695869121563311102112612958538533967856278953160006","7881681985660430198767072957509498154539570706318336903374260404519316703372"],["22422117435487324763596832455179530359328183713723588508238927545340090599484","4830100646780227508488161915247730192938913304180910872863551815495965660808"],["28214863453015254755764004823729600957298344805922080406407204277717148537563","6892563247589818931862606516976790335377920778397301458653071245887884166916"],["20645813920030144415824186491737406074302944173031680001516729339017698278322","20369458629899554633817707272471837796413501795778692706216486490306671079658"],["5176100853705168765237321509195038182003345085781522386738171741111643302591","18596960594478751221777158336726878454911678976830552676401090086932507782034"],["15699544177454697759573371922711518870868413094110426837705656319731123614718","11711142537733150966152986270967900702157325368500549930283021299462536774121"],["11784776413971091888486826074147998754877829674319326040394588516337208498126","17564669786640744256442744917153922220511869783918953524795729167330132208694"],["11883412654709665297966003818390386009963808476121825080412572032651052270129","23133473041052150516102250754839714802910150886039008360951230610270702264495"],["3958866097200711313764020876894148462328103845643597691838374870156033154960","8943096455153395786480360435884315263722258278702669963765763828847261928679"],["20537356175277783985899502838455594313244409915290508957832448719922071569800","25000833914224799070338312437387239082441140615895815511310461529230840689061"],["11017440477201957903289616320490466765341160360843866942449444238545968305965","3178677661139890133714850036378752513375540163825236137555266387455135818209"],["1891645308157416073372884263053835267628530548239008429042492278386684357818","26380040635537464331826639029323676351420677345085439025756448024846910964319"],["25467245707807090844503453197384303068846610189622202768704736007294655537236","10291449377065002313096768137294425527227032330690820507116444690405986680376"],["12266942567669918232377433611062744073395714817439356696865526986999930813041","469128033130612527639805353106230785807892106681247667530292789934224031531"],["11821552965944185901974545667158534833750060836545509798475236272254928840185","28158185474284324860121835975746672195153063510644178991805573754108313329651"],["16778090045356325432073950710733500068755314073964935860977497194251711092917","23370921101565367797731366546476736756909591174583654583633083412998812608090"],["6988951469578438456388752167972031459116222405981265682259793969768012839887","13909732964254519491823369185199471204235652017636824512530679829097569171558"],["21328914476770271889287685353539525132994948472359808548870095441939554278137","15422217937165909913088200800458757589861842880425010830512188211936511143086"],["111594537406674792198931947927623720934232285527002757664710862177361517856","27129608541373029128228001665268295949940404576105983873240092102304958442701"],["9390040373907101450615755909850842987003513369191289872433531099437443274106","14572565647154298800887987425322273583295078031082454632264580242230848567455"],["25469348391147951747700340639568275636538104919108315914216033224747084964242","18369786640935437552708833281264622701061922024392367439142007180772497409531"],["26029695597091729045590893713912619618370168961774055746855937814793403908913","16633217775314370281745788031536491430654176175568137384651503429770202124723"],["13785411753338609286754520583795025470434091699674800187318309860015301997803","3109114643804922170101532726775225949885584509574887074397975918754603788981"],["20629422639239964323260963861388091236437932965779467708869772080344090907819","9068303661059158608042254116302102824838787498824139003812166681139936598987"],["19803848270551553281499226840921058400714758701700015308772749837691229295064","19003294459576924223797316599379257627822952841447439237477121918762714977672"],["15089398713089057088332879626351113200608157625347511654575417253172695508667","5070108888734837187516237938232613688212845953748984177560043412272473815304"],["28856072702343511773051149953355207560224226630073468657666300881414018127982","3045393403556116626277045539198916709332908943474465662648254727800784590559"],["23224303160693396712172135755716292558372881170690724891818011189425011106042","8986438522199678746463708201846503670485210430774564393563676147241787200269"],["23109903168921445338971398233599072990355463351207656207585405696182889854840","7696115775150446619213129408999514827987551867261627778823231662537990670719"],["11708202196177944277052819189748431353698830060155590390505080178708915422287","13831794951285132042186734970717350131976709080465122173897615727713545863465"],["22523277309473211554366361690935631226738706528448567006176805838957987177669","13360300230583129189826212405144194362731861683861275850131688815156839260254"],["19957495878405984435020939903340025162810374980208761485966712676943123047271","16115573352687595330119654751377889019791018520814172479501197869231731425665"],["7551300614327977049063514865341264428876601068019446145502955129552881795178","10865070062450059371513152702007162839547623270023087696337875338356055221203"],["23728217005425704276937615199138731779650197110713516328572455678889228721536","18820379633480644026165228736953738777339647381801680687785543233229366600673"],["4143349293763038438493445615387535041414908202740631019946562300006983750146","15147788647703670853505915872877698214465689189052580188184081290871141300662"],["27298138742575684720399559963641781688528285151731528728184863974193556218807","22638478221770349766983015755045002795368278494638462329626305679583569960443"],["18634879341716316292270556563323390888103820407046192455910456468931241533612","254259515149247310412846629141331080664650011498192874899145377205429913130"],["1124389569857767737506645852123230048951325077264213266337667783771895452280","18891178512476557455458027859053912801300168066051475536079678231937083418618"],["7381032785904082258799237507260622376362790222034983777478424502783292549417","1629999699252787520437850504379555503605867564419775752022035887540363372158"],["18753509838131465783577813064387591048938506524275268704950449723375084249","16490779234609786263240813234167078299684708330024034890693598026263889436613"],["3867800015209926264189835579440505429213913309177414893472427953601308157969","17536586160271096193457472289788056728281174694902938334857446350627768573684"],["17830886949419248857517339788565651384147118694092471141118043084756278491475","7278358968323617527754554976521432568873288368566274670338818010321929746660"],["15510098411287676013371549863594373327595792242493241822704479743039405783131","23588105270149901090914490786068477112566004043340861725317669681050432237716"],["13033580251328646306674876113740202051883231589289910595049225575358581015729","407175087547484193958822783919135706039680596985034478171735321155716308011"],["2386382929279937002098473669950675115718853227163216548094714159757233384709","27973750340732818763281681377382063801539687930596352567527901576830429078138"],["4845273473967937574030154940190928122902665825947200878335286624433756477558","17648414246081127436169097544872481705993243265162169922147230614809716466004"],["25990961233858661997187633722429733942412883798802511043918089941194688900547","4559355575753834294015111874628441315950901018513367008732141560437895425123"],["12336004327298223875918486258852048553977464955418605650967375949446735636044","9292096370950854289192741618424317922135945110286183318589453859825426832832"],["16121119529596597834228202873684353277607520552577106775609920663396331837607","27794568420271595260114816283922954478016407922418983953826357971084921852530"],["13223543077590947461131083685968344721448360202425623487766808168665740946703","512062788930061667506391892081081999578256218708392973297643676748289453490"],["11983406100019325856322709409689106231255162949702160014292673959424915328630","13105924616494237357868615533151165504290738347707473060254265440958344086347"],["7359985386339510830459176545342270338027195404946523507285727736370725353240","28740293625162524056738578172465120957298078455296436304639023994403623743336"],["21695230851388638529039666921923624899317783232207625096912184841495419480594","19070697821342917679102124208042851192051313281920058383661696269929253975943"],["20390398408411097556797379157629603074543406552147811083386062634961367351798","9940037503278005638091170460519131876834928673245671321821136482523548712706"],["16518105512799080035815328277643879245300396060992993362107698481247112374783","28299086800207268635259665314689827285642755893684977570292426032828493999637"],["16346048436524884767767122504545533751239361948047455690135745078758600814603","26992680429786858632433199664866221310356988383970144529537119027574269085233"],["10626695706359555482272256621540885926076070287624493324563327054375318114774","139884625188957042711959464710452035369136785240445942349964947097374823935"],["19751147673904393917644229774590298476963557597754755734630476200890766890831","15652719605530447662984883596708089432242162248171698530548505692115802871797"],["4057188134029005499677770587942205123681643437578999078496041315041405735939","17808822412718484271849696594455104244153656210996300642972696963451546576400"],["14629921279890017216641818808981810845640735972576307153111219586614051321544","8792944536446504678420086974928293052426683247817501378291791221816646997635"],["5097114811141560229118024247211955497933218992109494421190443669691671168860","21117314028017632761351109865478922101776304723121116834105355189919472758532"],["4174685657654566265758356276161978985067463897087377267930534560270320898070","3571999039514051382395473712390897535106388753817987590400513780735042040123"],["27951098253658791277983570812137175828665354627515448894931401302135042305313","8480473297653577399869986906209035527775989449442578386228625527968261414274"],["19386664761498626010481237122668720026081933430781460169192683007957455827430","3798611236330301183138534275800797174109492976620051884737731825350012616122"],["24167285523644833077400379045117743736411923350391616644585189020866392105627","21697073954358487416129387807154915562790946206717120712539769050783805727695"],["25982861827533315716243694086198460174145158851382716121512979481031838118281","25874483138886665496095068054090868187847241560393813299103139993586956155135"],["21052661942855523615859637771154408789988054643915102382952033909079592060319","27859071903042892494141314736158800887030554395452825394770201840563410762723"],["14549890802333814198748031374263433989046205594357102140924922173671062637380","1488561192690328164490967223931243562235699431672989270086808387793036388717"],["17292191390795196597059027691212175192039247507969972558859958170014037810587","20089468983377786454279521842864221998999352190590690183630931649085284333523"],["25941437216717572929707801863166419639800950319382918306315294697612025768006","5979169175747221859427025842021783244718621160509831455987846275576533361086"],["8227120604837285052725624330724290691987912352636067983986376301066383280801","17761646583104990061242009719197148764034686929167577381393122567347178944705"],["5640245168655482775649299994134928671935799959133222118971288024417817841062","9198619681014930891724942112259810088808918324396430103491324922582320766788"],["2373878566752971948880135043880634689930871233119681950609683223067725820670","27771700117463926745624647916227287393388660470628180368547006013552117780716"],["28215923539120384189959595744916440859001370301855319468511319308447773133274","17029590185592297884524895087280517076406023841644006412897152293176499184469"],["17342180747885235826475506166578551873127523624478883698023043336393990734479","22267122845116696181853048831232521945029914163376083740905640837365265741869"],["15942851515935261836948451504131530960736693623488067834806308734337176715647","27435009982301427995630295672960719718226971141485187781638611746693279850730"],["9163880460367552975241479243694491102312917866744192332712309562645256867886","18441079521113951705713255627125137216549036130006768620271128404029036664535"],["19126378268232990932258779660208009863095136013239291661730330406933884296740","16520925385510810231565140451463768791229732773732849244603469755629060908058"],["5490062630913857949900036148614136680057823020551384920037162444814532872853","28829036328103466818937032635783856415790112539389396771079573291268356141727"],["11801889556950921907502600553459658233070643622563419001228486138573435997710","15532669293225262824978907321676329839742889302061554415580357836557743056145"],["19755001624036308296934347077190767562617535395970834886182622669433991419317","3126257382627676263496716295690849140125663596948610261810534383913467320206"],["627032456130352385919157358175624310348728413305798551895379198439563269261","20381980507013552629826258576856077476649414493876105383700841762871432126182"],["25150842283442554806672994717946618895237263390687495082764997166917893054579","20976251949856186958709717758308571309188171409069978395180360565546809264483"],["22661277358868811157993205098037773824813820729527468853781185136834355726013","18924167217081846813384892566506406596641282929983917565763516707015928549687"],["17965202161868509548902950706213466150763979465666197425254646197662609593853","27527373551025671800119889774905726211308171409665346116929450313974552923693"],["24431512193020897457677048823817583424711798013332895121666909493304096151381","12803114785641900754729175365734309382244647159963013304848820615990575000681"],["22971743697367608919897110431917238042090010884859169862591437644200832860232","17635783687924346691602898486929000072076551278087424306204131994103348841023"],["16513238539357119913944540938986646760402462054439403730539544186639345745714","24958821660838229823041407901114341181621998156796614731513598904328214745731"],["17558720985913897145797214672676165766021350396818912008065749279499523628545","7553320516179447657901653438527759118744903624516759466500701012462895109350"],["27476438958699749290709680634684086658196684394718646588115384854503359214490","20694327064718591276191640127083040994009651678520561737491882813063459085623"],["406224180681638209957879199161544248211969005709091712447940731683268433293","1354376989158383246115176894071982567733783730800707892106320523839940236169"],["26876452369329868852939219878122547911426851646029623940922556675028409750648","28806883155921491664272630252998503597744530343033137795194523903298014550731"],["15833735398681316832437544550935626711715216837876674414530764174269285927882","20652285481421202140292188630267279825200865588835903743108504487912703122134"],["4287532598880427830988984318398393156828519591144543448958417732388558002491","21595208262365087607186693466031581024758966160224050939985723850774546448825"],["20935765879525545351828389131060836710505935814607006816012804975274924875123","12236003014485971003190658762041429574055188913202861680873461413553386472260"],["1340845492904127093344535185056109488540268788644715133616876196725035357874","4413021369872548770916221350853620923658691462937720569228333733158594212170"],["11789007183770745746929840702899990969965421205459782190938552664121172056011","21171699015061735474648068382203345528038929522849651751512537741309258896379"],["7917606251432610984251086743542541624289355687308107807645803038559548040784","6141927014118349416363141629297962452604969208889052148864499397408596947419"],["13053180427578260323559468894014038745911800030409572462113210915296476783479","17124292916390416117722158191749983625795752192525291549581397369426766597328"],["5688909622491731304253765927485040691190615166541369471314729054227439785408","5149053181695344518422039645273268793513779499613412988791366171257273578597"],["25694365185745140686511495751973622230445130107308700965108907355759578597624","7788362383966299326229723271826112539521237894301330234498955694900440367032"],["17292417596961619541154136825366528479954139633315830352090831926342993125511","28877742926495933554133584840114830989973658696737013065196896690429151263955"],["18808430448252520181989898346430447159745335983363755808662872290625326152361","17498942377121776499668133894425469543847224163464807465117605578447295735668"],["8886547214695955573669173560421402265031817974706437481296383680685034951425","6154500002426808787382612675260826488507474207381228934345192237481293315448"],["742276847157052328747673386282180246090997989618940493201506851831893502836","28580819278751273692145561819694332343409778197427984655574531275109659701007"],["11542664818672296937936013550425906484885193652299952535223265914590686048849","26003584250100650785461537640608487474572358148032103981816685601037372726468"],["21458040283580456181875292346746217441367995078414111358730454732182429117273","487927739368642013453081668212083830055025197928562570991068148976833620454"],["27302920270511613178296320099934298935770770436276637623652937485890182451716","9908186889266306861628071681978718709374569949889410756496122101908486623490"],["19608278957670001564931129129080058340745088713473298010469346287319483444991","19475296642610162017555660016319600367742963712786058342783758531033782195012"],["18405034219059261573759642370779196966657528195563703367779872106029462996838","7088979079267288221333908985361054743611941801404689578731562200883963343806"],["12636134941425100086626026991140022682441535487960712276066184875390442775673","14476311237977104386162908727778509254472085915856881408297790699232531775602"],["19319549843220992570454837974242106610371242569796517711090486425976013207641","15981826383243386204737593854694684298574883926516705195258639732896871414939"],["16384641399918118236415117943704344247585943849713718805755359800557193942638","4839905725168929132836456312195003434826955518129293433861397265795870388446"],["17353593810915834294224743586291973068268995471630795637325270566143442619703","896969146153861687869225518189443388927425812458336263768373562841779981105"],["18770286801013704741798144640468014557553201867575545561285973836006116931869","12293116805486546209297131168777676834417612149167808560023129148808983580541"],["16558576169622926109479159507360290126876499679798063394961435669927889841616","7692278278687538399909678180785615996085908614989944141484140493191775656874"],["15780329611824306545114189044409822934862130231116501273711429321481471144703","485260527086786960055943347999308255633166923254981577784718150768490652794"],["13775561103506128310389144200316023788919034351306838919222172994827567305738","5632763651087726728665151889014428788843401878624389649205862526614069259085"],["15537487135063217370405142883793273697577682030517222133981468155191526858424","14285086742502017014480089605219965630847372404842879251831691669629201646778"],["20209382702427346253370385421555348586037711585875680795734316814842595893724","473502363652303156542635786454142722969018313640166028426977728121345313706"],["15989855057831827796797807119675057221951380365690463383208210418492092779159","25206327162601319847386913785133858389053785145057334140258666167126801356275"],["9505799105655902313516251179875511409977549332730090130904644857636422306881","13272225111717370092595378615927785866662011147539203268958667140084084760103"],["27398957567827145915332659799551820808993743691185046463905617795253084975008","15828066057493377620985782271449733365962896552590511354955856832079405351188"],["9625388124384647698971964015427160555593010876458812772984668541164895070841","17364488993919713191906562751616025331840929130796539615077126855494713981087"],["17509421186157427924060703685282284734542504279127394500007424744921308003160","12462110237135938841430344400866310341122322577543269601865515934951408855488"],["9572865496283893929606783240662041538796801803088346310079148095200341093917","21607047025343579591076266143817197129195229548039861131188131926758921089645"],["23623420060958036189578357981776661116503852800098726947281436836217136139972","12450583348201981161929371185452285985803036097690171922263700193608301219141"],["6964054764911613736218703604590328988438988401720396049435454058598623176258","1991303958324116292957397635418664020021135658763698429896541192125604431895"],["27118762367781991947660279566681686239831704433383656270871524298659256453108","11141772999949650622213737282299333784887782242396254544038986815363033886659"],["7905313119234212778134382450808376171992673745486494079491038314752586929814","8359387746857685162158446185692515877510381984250004035856584129963920753262"],["4685070530913196399194784581219337125349447384885829063261363382755206808662","313135413864793883127960089274180127899710808089585700546369281136884687976"],["17705262463904366430695004331565892554335647367242361016464197869589828321477","23041394367523829059295444849456163676815451994349556770256588302356819427058"],["10658102853564285249082378525660485165897200382864175872542497011989246716638","3857139205913133717236765698567160785707939223893849756489397387441246896202"],["10405082775007323223031168005314802360543941018050156064573198133233737349574","3434860025818016720360435562677648885378238458675903543675560886218860046876"],["13521666522315976189043404325819977932883551671223361042922307000875468283141","15842914979134998777073989858803108735691637306747144333942720371946122499555"],["10236903749835636810121234102999376718628123221643714748134841688925340419812","25144273925684300036629702550505428443286791316840454922315074181486884352004"],["2171121141398762574545706186509477483940226618616617018378366773636054778352","25106563799088958170432817618493587711656498887653153351998854839816922614669"],["27509532729497593472659924939477886040619829008023717967627887493310857945423","4823352568374765744623538082822026279808023544957004932166571650510890491275"],["1298317293182996598097396770826979195657046770106373125997074173124453099001","25344488121893855735189613382812643634253884484847919570628703342299311072278"],["5836673287277998185566113270812806829806217891445077072065133397617237121137","7894197709242889125821115127633896275835234341094989563479006199374402823191"],["4786633147423843215420923196272641566193278724799090396051316519773514990599","982671009238989012164721692448438041367818078922283418720449404089839330875"],["23728579802171368388558841726902549216378305385717573831855067984892009314589","15086743923602377531263361390899458930717179337977187789528968246698170266423"],["17894622332774290746343504554435884248294412658475798348301929926337320112284","25475224232263737213082708331579231377161920832652525396027906174734626235812"],["11788941229625887671235246214271951764322568514767533305549611401196539214442","15345055259058970140021487884184489189699182251159323674551040263116594060247"],["18721170448623082637940306098578411609059552039843621515512667897985991549495","10376090022905129008899406788687563569739441356669966447875961290137044617424"],["1719350981421473958814762341576703207618317435788880572753548816009571573402","24815273530925230483552701184052739824319157936252657818895234357684811759454"],["1674720964395976895644866564756519442440721021218105952184890871433854123445","2256496740532900354533359554240172557795750697435947258167316413051796378612"],["3073204764767578513369734261984141495666954972714121690814761886390045154877","6954843640021316031537413612144297932018053054613958382174176519392173936256"],["686286454253916722827155958609411272840219814590198860632760268389680503511","5248107912830738735642359751259073346251007545203319338175429897640627735226"],["19281950454445271907625018670595784332557346910508203614728499165148174246703","2886738856817464497998713888267666458906718546178352971494512034695877782166"],["28572143149887454502472583104626852817037195043858063767800713898671262296725","12154420672556660725282822840763411747574548051372265165829193996238119229677"],["22825413399297894259268283758246073019826911235627968129162875052670078329403","23040874328346905130470176166616926830881949771060856942655697314712035250395"],["7961692994112176545876700799093332604827903300187259512505559482858818157492","1060556407917373538888230507622889026496509166983975200578952481819320369310"],["10402016467656053465023039290171176070827645318999602397005299316486463326366","25747494549735233706080926695355556170491645768584084251682135480019482267117"],["16463616115154617419713203945404722908650223515006264296315963703322057277729","10882649131356173724019669695331430748118215913670298863926877513409150280166"],["10187519456169626404862687530699952739219310629863197079587370274122065507747","18682397827418449998662374564365408882227948965971553086329381409553762302973"],["27348370188108950360817901612980760863612663608753264766223421657857717123591","1758437193857118675703939109545185368651901431424243437006677487660454736484"],["6697381582271540880911645418622887071077670986682154581480249306991179525990","5995829244686078122005031418532942324758263976234780378042154799285066769665"],["17366318607727058702800603806328876898839458312151585625742231224121386580398","18289134865618806397441942411532965780991431161461876112367236923383049485026"],["26424512795856037220868826203567684601814034381114473647034358916495027836242","14122410135676028621240415342588923089437887804406715023247929052268551388247"],["25785511835792649988907451771382327083481407091478085277277995663638224394200","13481088458415308263279438308860740079198015120372641449886683107838657619358"],["19384055711492196739500206489733471672495074073697620038207662249684919084866","7429579703561476738940002482987047722299571416653494970693937149393361078651"],["2960500424537543883104669788236702016015444522101828259281153342818934331418","1418072111152685487116648549627726132959273799556109348040616910396125165791"],["15808630354458799262140883812997633910132726863033213640334343465532196086126","22385454700720653887909058844806236635846247040078982926436998732230720762322"],["7801298606764710459792383793789812796011180806287036738518626559098744082653","27186449011653886328272361231685958875233039854411934334413772030823196597352"],["25957650561441322614517082048084044606739984886985898641970078163812767373995","15408787518285827955385899907090653778580259390297995057259717748536799160717"],["20229514059363967031503733643534353681921217666212679333513895835454715287420","23415952752906368140232406533527422926956582111925328486776461625547963852866"],["26323183821627563540809950353390755956009962164941266019024732351233935745498","27806858740988595799797737082144884475102409298234585768336215496749101051709"],["6970762013177292785393954543228093165525318823171668085206755237514353489292","4230685934511882367330807978988966822895517613937751378184095258764917894188"],["17782616654350828308437749740531070599548783515520341108538516268620032616910","10820896549551552847577935309334210885678183524432689468223938710983134321315"],["4985312125424895685981402811841930321409372217083435514106950491845100914556","10849279247355301562805272696033461600018367583370158220709379160072196994297"],["23547302114888870622609737987518665497429657218817817429919057131499473372353","7061881092241443294975199112739096771221041826487656361513898887866307585499"],["13622909129880765094074861145515520312461641452909131630457241925045935527119","523131741510493139262745955284912935722114744362152317552761334765558011092"],["17965788935723218623102131031756977263047075476395261049808778202414647958834","6238572355295026002723896541332535093604458893331266566961094281375732748407"],["27086512569535554012300381776175910623161518330974078604650878709690403763381","27625076303901912377342550138594950115799494398477613387965234410397950056306"],["18635522693665210297098863100866609583859063769156166792142545111316883276497","10698356824833626367347112990845334471785897978003487802918736982337306248078"],["28763681253692129331130251954071823621660749575377209583072995875645250339341","17234459270486496386920567125036842137865204301056161902745260624323790793517"],["26550054155502610257328560027796341802988366303485676935045099111723375023434","20738451963595113994871048020768517621748978720727845212624644265098994939471"],["6623613862247360722008175067684612722061710608230852303551225882773715655091","6867688067672018986027129872802788187104351061214866177853352154050732165741"],["14259259383299531082404209861615623265905986848783949983351392096437072829099","22533912247264593687962627541227067128273043926804909686183150793366403971513"],["22326041179553790591409016640329997255522361697303847891625023791166595968592","10834184630501378398527348213025513380673598603105046125146588731497883160818"],["22066749959613023453015970840907769649545463998154773790451377912756458762113","25610372134547735009112627864165353192376937025207194496126448267146012429503"],["839598497553166728055364262691493425496541601194018527976214423246915378716","28885083601824711919339015923891290305503060953720249580389597319397621397582"],["6611741415811684395688940567280953221683281083544800846748696863774320831484","11723746255291797850457097830889077508651591957323363599810295256896271757853"],["13035069979105498300330023913486709501077964455472534003874800006950250815640","18851275870492212905705797924723664760872171975113512416947179570184793399897"],["5654427771605180050101186583383724872442644083956718060889420400461181760175","2112403855316413257015139424043461756523683950386566832925344399624770660964"],["15414396578702498848796354176423224932221629407396410057248600408024252842935","22904518097178173573294233565149438411200840684591046121953016896020878595926"],["6078361695408845055411147139671850912233644206177159944905332392104160945244","4982827214031618998710553933257420533008909513906424198872027149369390453758"],["4145135828032557079593520022402275942790134275881563712446946999387777889317","3226131714234843314770537570156020755986226947444092681385796395933821876310"],["8417318866643370033974909978299698431337454273645949677025464840496970956569","1571716000838113360180039615476054077854049936376167671178387387186711639447"],["18960901548063048659543533651045330667377615938500510204596792112050475136063","20683546557055890225828267472715827279432095042834114116972230147720550704377"],["15475662115707369619177695270259209531374155892755681073124525771326849441169","6022507650784446663013384048335064217882382618089391298023844053965366543881"],["25410150578183783264966116354858838945933934006363881974761637416070968054602","24335411316230875948274306556261210758661637700856148502436230175433769365958"],["17773946425286833112624929519387362144654241937236119450064258939196371330794","14441027133936249847233839492649777725013595185058189894099328451013819479614"],["8402991160145395622121442426544011999220654193218861128784349534634220736690","18813501024568414357879075739416179875335897493370542635963258616715680709226"],["12672450027977925709159887706597114551865774345047830492299157474300355361219","28173060117534647173386164267259494502652517047658142004700903518106831072527"],["28295331395855764922510997843681168841981919390291401470349309272200400072167","1238901782892668248398291442515035604878948512327457281692270945394379317125"],["27287432369234710910142821005181771347923860278749951025435363208986983277737","17169797897018185685629571430363128860886566538794280649068749464449475083830"],["15525492496595894205265221578417283231523136688327096386381703741266828246535","27618078308986690066699948314468701430953824249230488611198709918765729511177"],["7686414725219247344738133680144679866168031404922248375727932901820516365269","13211371693966534196105323492873261416521702571887668531769568250426465659665"],["27133524912479224509136422937923698413715003677008208678477385645723034703784","15841721780945093604651818384219819434578876652907753006499277170551413917537"],["25097825731720089123700001251322937375806446941905701492419605021565635055608","9476706204220946468969199502829089415837496598220539930417703153429305709161"],["17872030685855973678044227005498670222020732397072809490529530961869972404803","26011282916226877525408511570311207367308372634202576811531030636719520684392"],["8602511874897137617336117202354761123057068756974254378741161220873779584852","21795619242971657463117461848155107503949827246660558450804199297049555554462"],["894720803926669876904969199449229531870462352211018811460974726571355247840","14431514666211440320017419036387900000576752329358764747471099338111017226827"],["8439641650085711355168232601642230182237046865692166831454446516144032412018","18207105453450078392702709810883765150587957587252956510922767150659162079708"],["18134441118618769118863338172148500277113716775092545749876549327942151262730","3884407413554302443177733531308657193799278015791375514918296608099611927375"],["10434047327661193687317710963376006538918281455499101779183295640887123983958","24149020410165636602356257047567911470619873304975771659236343366036954458862"],["26887406782318712335361112474051686829151131426984296711647250075999895375676","11014770872331479606450694288858091437474102377096216717950116725531954912316"],["23693515766083737619823758593474804048799714433472266206948704212019239521596","22342879015535069215140596651730086041711850833529118724521935638051753616547"],["17337248350163222408589935973954637940569049772686094559949995122561594396627","18295548862976691360662376677207273658463526148474585341113639298070701249387"],["17138792537432348260612554351859853636516407828794890578671181280431616636945","19311041880791502696377386168177121474616170964582063228539179268679636949630"],["23773222268929940192288007857915736197329713434649966129718779159381384649856","18603082720168887053131901811797067218746544952239850253036936026892932865866"],["6041973080785621797985425220600942102961458585820362932549700500418675389902","15922116738003714233626781188792790817634847305826240303503535116511196215278"],["13140355241712702537949250225904003202028927307531076250058493250700197797021","22722365798811819444222205584839359096120949488539880025192754687703802314732"],["7601513750271522738885296690857016500237039182797588626017935721310106840348","25767477024167675210730938432659911566724232744811070291102481245889646505113"],["4659622158599141789546658030852597745107685439147854949495658209026404334818","26497955589008229304002907208438594546935688314002392056924301548064985800206"],["3981190075410913144099305197958547357371804025419816365208436145466950736157","18444027481984119920098328149818065193351993742993740011467564493135062326413"],["11602613792887445163883671814902753915804267355152842932025132222329823924338","8442330060848322277549471426971198198294459760453123086138782578171889546765"],["8906559761471908101096791632894662088681701376033014458767813137042971890181","11991127525908651138331775758249552098377556659746731180335821768487526825366"],["19762234685453323323300278525572104497585462941222730390458289764746756991154","1627888596248336727527222214205391092569936613093723717297356129822395795022"],["24701659355174075482691864024339308539051696693764371464958197693266230175723","4006920792390121055325120610824464155018410661021068227193412178839810726975"],["19483742808775475444584937838898846175868016981267962996623516499911454595786","624422843777298531403285630622841621339570813045864699672769000305075559013"],["10356711487998488012877539972511762386381730101316377282512999119716609882893","20630378220617466616117153370595417047126400715474411097025835441100818588397"],["3148911456581044995512865935118832717336883515194203592244223954878566965895","2549761902172313466471675152062266498711010525829273825760431723561895517260"],["15317948926388474502264329787106299213518780346308571573553024535142835638752","7394905943491555358045872406463495796085067860648560395617263178204718306338"],["8407780456457098840813679580363667300890960313387098478733811472544916593533","26370484031633851122049173713422294632527659684300411634041678985783350806623"],["21287791715532680026156343941773824552521190522877051587935931819541143494969","19507148161567895758918352712654307368466744136006906143316270262066958336675"],["26866536919684930778398109202132199242020362826891642480561444638893222335366","14318599345055708015976386823356132427221927243431085097671659349979516178848"],["14630818804441611829070401891973781107958324630903830964879415198148654759713","745809653275485128498826103881107998985207334678525564465763112315385869526"],["6396457506226244894582400382828409257890989470536649567068833664725905129115","16234938569143363401313103633588187495866903324512979411556649625989695062662"],["25069205058616118299668017148182438265892443615363804349369094821375296456935","18592136963385441751371758318340009863985913292684809869206266476693800447363"],["18106282720482294729220270431301456957897143391244720255391899940295228009333","25446424622932111658340392284945153767132802455578615168772813813176362350892"],["3892617338664089449193760508012568609581646893743426018502230188324238222922","21511012365424692461494848777412271141090527827171562020038674577916646839292"],["22440825321727966170377079997441543506810027041215059558079221890294480976352","27117773915349899704050801851007071665330887907863171983700791757544983100565"],["1271438619769937095265478941085180331380957363258597943619916220961627717248","22961637732689904950228755094200016791436341294585181385286215229546088316596"],["14356689198252453897058843228749036041883251033608421583843166303347474880544","19485849268680174930704862813678913622242140840512355597908347525957709123197"],["15591760119228545672707855566033673994369125480106930567957798450702291067760","26892650766786325522623929319442775798430264737083706817390912547393126835076"],["25177523860663154143165165036844284894882478122605125452545346576910858379646","2778976042659339988125738350533156863051958694222055845681592140574276685702"],["6098146491803298171222782059146794765458212203610142221265370731707129261089","5804511131357451631499714942828801532884504408471104952606063069132058937699"],["1697436100552216363910942579985648655485926216550457674038964275237980346854","28532683370333444999966022346636234799789748009744510473792905268973580137528"],["18152400264438979266146488396121354908676052923637372698778759468790178037548","8765245692835966644057308457296353188901008308856280602109316234596680436254"],["20064601196356781094002704933843947732216804608859345340261134463151405986552","13765462415702246972197334845755513626876488972014342926794128278466473372903"],["12135451865771275784649672977809096477785576351233234432824184592833612010716","13547257565358170443713391037450043054387499656770602427231354724542494926527"],["18864760060451297138839982340866229428031427871221822939131277698616716748074","21320821302321255067505892875969589586261632139518900076066724864179599186794"],["21799786444273183384601324691974301873902034648051579658146193129276135775167","27310914947753572399845003138095099334082710096215119720950265136004710876636"],["6932175909139365256973756877674991559998705031986225320228386507059938895634","15450743651467779261162778963734557613302734257175955348160314920787043133470"],["27718400809026304583629449565327287878954506294157023467987926725932827699819","23694250719490703991669672827996917189527374097616549546084494636655629841991"],["11242500273669119305757008675834981649502474427168405916047270135410968131599","23745971938373810057877479685432715115054760111322177486228316432384286969592"],["9016845709792514035543156222628582876974574742340093054917888399795825587725","12443130978112697743020922922481178386928248454288685075831811271651251660943"],["24546267096329676999532980015471747559762398934862323948627448573724780221725","1295947174248577195875002369177980845510184379606848002400150017952207163614"],["3999594073503016839283042055602437586064997228099224983605037468829575372956","13278219390812333441574982185822723992260287475847557382837556805058785757254"],["18101704561802951882166132362278687921348403659770602399640079455009278936099","5024725767450244299079572237877416655619537172496041588969474581274776105846"],["14206659137392055874437529197254941989692024990924872090208337689748170125417","9866663372073836533998608503685186702265537999983324224936996742652747577864"],["15182583535698859566924391833643662269860751868385311719358255355475347351665","7735854748670277766822483295773472607170706445363544762548496656056281785321"],["21278208449037644548612609908347585155710158304290181336164366093800651422111","11797609885831578727649990668297941811852642620897841132930733607305733546884"],["1581831756549192770632671403430803037089009732136884173771353166693425801224","23892634127661811894145636735051526437186931436398156837178995965729680506830"],["10366064729696406377518474555106038718452752874230064796684334357617510623848","18235956114623370952169474127827441736709413436684025095992109878283292143567"],["21672483784971206973324006285225272699594532224963259646133384328445821948203","16582192231930018244884356589069632593829034758493923357001554482850637083702"],["22625817455088024204637587653337049210206086638966479570512200522316159550038","25007215975050858167884261584808156198919476517441131217400975249272869849854"],["23428251985144114383797351781168945557534580271451710896062194878341949324195","23407976528947389516956530374136056555025992026480165964387741133047372000730"],["28228598817844021141544093167025378389643132209831694546069479874334065436121","131105566491382006618769679906209675471487329174061568514869119918298637713"],["21048829986179567029775125865190524979181839631244703021462901691138370612738","1006903772499290495409867480181223180861527325741954814745484574438191636197"],["26204209391218930367173574735065361774035642199816692267844515398499830302351","25857130021514894081417726169964104027195471504727875931813351021731667950310"],["25661970456048756820459796514193825550149530708635219608871435976577733471619","26373968212045298002355458488816315771850978248027954610061351545322030464158"],["2112761606806957211018464024263693898325200393662214635371577679481688154403","26716889427074397083854473542167088085350077476498472477984883955598830082575"],["16591508317333914685314361155044660060853651476880052601411771856343686165314","7932727302405306657582256030361337776910208525951699462458418484275699270296"],["9856081268735840875351977952433946289312273237336506652425901548517104344503","445070318846631601605088190205617033798396095069534957086435564368607331941"],["5227481421669900372296608057630995583606481008105132017998567177194747241531","4511261687874392951910811119163875917456140652467494541894388193085943996400"],["10719898709787548354164800502402813358289867430189170014753114784345913446522","2761140855567551926588319417114209707330948873054225435810583905308074793234"],["7789673081390455264589519241084292598504867246721510344484548498950689051129","20306993395369105713593005573484206218729191925249216940385728988725542599598"],["13471226142415166987629106033358717367168435565879251134304442169532444794310","3412329342844608999394375805351090796143396213532447507330936726474817382627"],["568477973842959020114873919917489126823009997563179204603314116194042184791","7940017980615562263480810187135209876929709140192306980817854216228223537837"],["4054115578678130614431446322519054529659256036516104759731601309059385957018","25672413802343843426509238089318671214808526474543529512425072046961010743018"],["28538722692882721181573055658727425040074659072467467101138278173216546647092","20874394672038581598475421743421800586690818812242512012759047592560206753026"],["10628418426336167814708726867439012786120962098196312090365147243535721671882","4682813810043806984574630214179669347506713099400788689266792328898553162931"],["12534958821196205841614643988704018229842338384262181959694110651816578210505","24692861676924519692723567074075348529349167933942710033210197703716355336162"],["19604671663794443380929816086594333527833449007553529853073430006750997199458","23597714161681164152447269934878972976040944698218467915712467896819471398056"],["8764988647695706692283202481998052470432423553371615517192940213642575721393","18183894482435705227373288686086085228722511868646681609891234127476875828201"],["18501263670727009278417109706349519565571235211454805942557271806708809620000","8604289006336334766222032631240551875199069050936279905455042818565396708585"],["11628232003704063784683413777778914739794696447231865730710838956141695033031","244065665288252524051301602810985990149363772201941623407774444092207507661"],["3726086317684854285426922829030723464860314393714021381711475996280641052804","26908054561494886022725945818246957044269692955655551863378435624840644799764"],["19264733654853303268027976632655641873917193222491323540138857598418895404052","28150554716856621030058092851774372079511828614815091243523501141571430534741"],["15246286585828055816637907508922398628496517355092602997706969043127455978751","27217446191340986327691732514931106845074001137565246022708737655198610560617"],["15550891161102934673661765344564615971581608266106985956980779993083107606143","19915324405825857078275569045067431221407500718485458139574112295347544536153"],["24803555742552386207326818952373129098288733371886269078126016304272569834208","4895297708743922751788651938588733650729782414527874153881700333426675982391"],["26722215304631792362094057166478063009968994483773145385595759397541926177560","12788021645577665987892011395379072683443433343450397851193788524661868391960"],["9555068532658361427666799015035279012814833764403398290880559259799086848597","10250091139940932823936899077356823118432847567049982556917618074855969053705"],["15104335627845063227592224868713551172332283134799418196629108051193019567695","11692811671900809843093748698419903730226531012676989154526330257563390614059"],["121631828141909963008801801680246672642124068513122998218402090123243110111","13817463143703803614401662414854534093299394238022805560346619464028804825007"],["822062416235466022488799863606488830673656246098159623738950552601172432692","20831186503366763199516226867491595864657595521900466422612959886024747265497"],["1733474131626168176112835030989597484339049471262295450086333149161618110441","25260707692909079151193143439084211532674054494902050883443062511500345581883"],["26494586540647737566044576910873874756235982649857414284639368471926772736658","23072116309211998865921926232128884469883325758560887161531289359844001644912"],["17688007147620663613192255647947747454937007269354600989096714938960667751672","15213624282090465704269988153139319094897722358304749234742838237521855777967"],["14778311222790136144113880181314215537307324149775772874440511823703403315417","22425673828867518386194021334024829222445268943861689087335154193705502659022"],["3011078639346032545141901215112223701549735658117289700327799669252306021124","10139924581903828024829155549846827175533682401839270418027087700074589258603"],["25843762168380391420982964573801909827191672963988957891139063331575458545744","15539576825548346576616062943408297111635844005202036073581069326738236425081"],["8682069219063066198923820340493678731663655037013073330384508055393154270859","25712722153212786855837188964437142800701688529243525410396069115288458710585"],["14354709520375671466565433924134176722398466047706963246462373506586895988787","11453023322984389132561312776846314321099341123151447957424684756892329087864"],["22167479713752152950755276848540074487066511667552949784861740181543558470388","11506531350573351770123803056673043856928367966817451918443276129667350026463"],["7001040441846744742972379238275580884088236215909914223679038857913485085886","17466189200758341584324792587595023516783569188612830137700017393314147187364"],["15733922214827010633436070904751435788636302265729769086792343139495197141558","19374206293457868814764222361050067886221108061131307385109725231070008850700"],["17148317089719307344432270636477592635788063166479411864420649838681323175589","10278396937076480500108398854366944807969702061108894491617561963873023674097"],["8801681370654029739520664668217590702431547774396638862956952985345758040878","22669915809366169156147565830259612915848116213189462467692772832848471456069"],["10451759561720213440641783321693488698123557111737579965151722981744560654938","6219516494543796450214232867031853591774599305948921068510049702832592621781"],["2953811215841759335354820247393447261892176465502838012793785811802100177871","1183413250611439907812282050727300934682178912679529230417784479848403564734"],["20621194606841693417197140278044290893624616915829053391340740434653063752533","4555002103916478870854875346430093827516454772091988839550775961739788221333"],["11291605119520146986815051402711767121846435299525374217890169423897849774858","1244274141975669366687716873026592667194600264252068999594751603590138281253"],["19945873010325914218418676263589300868105650568532930821907604796031150787410","15339508509138412137297148664937700199001513854727713450462135405076959803162"],["9586585384907883012032150685373337393490243720733483802281521082576244715375","3760649656624864203084349204385571572289726193467652278045594985378758132447"],["28682833173547194986019591919713215225690474448034611163318829203712062176360","18124423531747247001898742676837635242675398692191569175485903731875653671885"],["10602487768333046494595221744744677604634734693844656955082407999935081262263","27279050549287495648180244473776654963348299534480047707809335795249014438408"],["14689781450118213538983504994751394113306675316576532887357853417163702116559","9079805614984101616185727286633580224578901172694433921661512008356749719536"],["25206581917042672899877659180848907310044357802845348929401521303907136686312","295739817556242677382863772629262577716456796282664281143530439083910552360"],["13318836200675917271640197265660599820766513865501932270405992940089816082504","2070930708706035469396515166181816220502488616970625454500581942282572247670"],["11210547904491382985259738037987965473527518929883022832535527637118351655276","19728706041325432044239002874988138872329587718648325971104593154982407354560"],["6492928598323661923476221480771334235166611225101418853471158355359138219591","4060724162757405596842326670202119515195271234416903793565901268052739778624"],["20442047061468826765316145027331565817766681330311962198778976007018017939499","9259378042717385250383768461458363932596434125394756341033011102290078384803"],["15414705202102849993887233005358642188651062087916884210553562401563133116043","2231312124764138929179631331473987455479457675328889501744670628800886427634"],["5094840575763936673480472214295753830723361371002029649566983422266796042603","23413345395238332382606216578724647493109976524889346543910525729184731454175"],["5857929064650912280786165241071186608701583968753741067479739723098608358257","14636349729809637537297923272697650682786303797932230731336616540914533705848"],["28390893839956855860448793733624563930308343437683356802981154936768463725576","6197486135351835980056227121349488577821900935693651593171660577663476175513"],["3035040085824028931499254664065727342218225611001306518565357672881248416272","26071573056615831455863346275660823424120798292888384124398965975400278972379"],["15229457688757197613337903369807074325938175733006785514991643561213288847286","16655274006658082229658113350976089680033895109727834615886839479881340199083"],["7815758413017619247796341517284250287727912336622144183493307016825717250095","355038098251727904382205072780432202330451183412192589387938795509565249701"],["21990372577261129757012891930966684130900444101358647750379224495284915118804","18002587611462755302670652090210661428555985770700219574808520968062143318632"],["28636616939074478169102868001513908184283654809808033819274345941433895598359","25625006525022589812172076577495429572157713656597623933764320687807136712077"],["22921581249781472816234624982216701894153156953885108937984190669477206536070","28601036029804716418527669133227195850122771781436012553975283754447702945116"],["17808494633873052201772637862343338537628176536959298103600116721932460564525","24837851301057336348185532274344554758005974245105047383728544818087483005102"],["20749736788922782785889258260059674523443661936511562116540254307183694788731","17910444811081488705981369282715258286200621423739456961171971650579584234750"],["18046737929329467933447577840770822861816416512376467659877070154818880096025","15704614593313616217615538187942941444819188465188521471819430305163679334868"],["12602877018903797958671241589645405887961251063424552533262346701189292861832","6812432974429954199066000288121644537886084087476666455836156372392611526595"],["21203412475848324136911607582765470013424778774813709496508789286050617252687","19805732737412942454408325464896600011571819761604554804967258550130737335796"],["23817512828625654656411189517743229712138408024542006992329778436381198320284","7527972470012358517083120113953074805115780333300701660954353053528319926965"],["7356996458928338951077248634869917683759158230404394888318571661487946599889","26316212860250851145032393757639020123943985704152416812178257971479825218191"],["14408781235165200466560205819158989440426426696942844075832309447176214229241","14612086146010359093315260616842985854925050202195774206493941981451133316648"],["15853516675223604654018100786181935808338962050040526357966625788895020550860","27252206155939301327322456748947266432870588038172800111960278075493002956756"],["24569612759831892637878269813852050775662795423552288282301331386539046954608","25067328866218351873221302910151581464378137484958647747062725311336632919630"],["19810417319874853649138056132777332156286415887237463020600100728582694206525","11596152525272791666627143745838631787743160189636579594013436598678255862184"],["9501983723319142702528716931514014838542930259534166709015407053245208819429","27742657840295384483182595213282120664409646716553104239268241374897175737221"],["3114713769605163721847892781503294841729334887630211469839456421749486441075","7901316178556245526772721571061313614199719840392809469794797796418827318750"],["2930660075903416521065244645502906184817791346913942080754300558073945746934","4913275162677127168215664999965362904120303199972833931568234241490018896099"],["554356541475534704152488602548322815378223375403774402687243442966259013253","16428399918679540261743647520003962606276368558802159236840904590822544644512"],["28140699791836370001170786409129608788480523021938589270373237005304327504732","21847727712421587114079093932205977585365460534966482901896678269014516254124"],["26852763125948768977866065196529068386273813838183838334754532928053630792629","8660483484626169595962032106079894355894840742233031149162451384839885903797"],["9507088997834861867105339433657658114094593880477474506170848529067523195051","20538093314726788342470707054803070707516146164474754480339985327084016151496"],["14981381899902401645568257286451159436394929847687405712297794391646004959960","20940753520890266392611701114733606343319570812747407380325590842378068755249"],["14740875875199403817888610785662468391510445455984362965445321230899713266686","23392401819979298837386433667565173757032279907915683341173667789494417950668"],["19925745752573390507175431564237738536480218651728239512941044125176348756328","24277284269406974995766239803589250621873839256837681928255396819021705216907"],["14857859262198953312183312101829438004033959940830438319192410314998212840072","2554596215314732302652590788109753872478957431470663816125547094987067104819"],["20654609966490510756616850527522510949695689343862198260975750158737726731535","9064253755060807377624577197134642095238872368373501250664990658631738423045"],["4775100047118877948657108752751804156916838748037179353187421418093559377462","11568935877366116567253999802622879293526022690526587305977802454989930386795"],["16709486044937974247127114794214929038849512781289712814092162072922032350730","18422215710949765761179179310929049985028159699597827152105535248950290864964"],["16283908241509810547528705249020577022519526592370956388208102094304212120164","21571316545509528787923847754023482231558676214489912523897212051683690806033"],["5370801426362350733905022132243604607862410802206392950658841232281423523846","11519984432262473502521951637220012309090073529860432009055294072783321519103"],["2607580655753777349992419310787282544385597179000060043086120596327232772268","17540561870332065276820429516186840580814710895988311121420528470970741830746"],["10588540481110569642829127076725304980003924079922413731921478140865084179344","5559321511960972928686958028659874130560255626103499858319470317786610782061"],["26606843565954171283544966005339256460939671917912990633032182145348592861369","21737588516497970434620732733944195427340656705413928216645481279487721378317"],["27078714843074721108324280905767014732153032923804905002042131985048043301665","27054342837278050174176588028248246223325345734812489871190500973608758006002"],["27585302974099145062272840779398067043743656948372458140366126940798072562751","4840243707374102732385511746813502638169249831361428158127211326868231562420"],["6601752896125909122808452496741244948627358775420637698589698473179820265893","11091824480853285201467210805868682879984023796642552941863358391368287161383"],["23461096382725278557792939607719738913586279605392168698233484761816162173893","12203605927667763338625847191421733103665704802326750282159412516507330886296"],["15918861573895066889287424762002002535879116637710621100792196093621214782159","23898579827721792777446647357488169276141744220480418864970272521599522324546"],["14053548818748215632537575330439653009543995805843026487357880312675975485823","11887072637997228893714654316763333951233451850272903157881153818497275539857"],["26005690560367526955613681282663117841280917591289668153437950586137870346286","20725676451630912759578252058711617447702358956917123442274410605203897269168"],["22264321235861269625553742792694918387198508033886757745971392565739221886596","3605176469633800117064129504513066185076632321291720359637357822758707113317"],["21627782788243766977955691855974013212341326760714402782106603146709981782172","24819854899315404455751465043372552761588592252879180590876237015436377626968"],["18049212880887652299610161352722639654282819791490289270206542620564785304330","10461975683088935411677815863923949213001990780518801308718864696646169119235"],["11829489005293932088427717956715428358243913326058978104536718320753915164533","2226037834262807508739165145247884802468553858303370058328693921443113109757"],["10240082653727886586307711500628863141697009409821650898402468035494525882828","26813538566576069170343140558938980078014092774422470169416929818142832076127"],["26877888678901339880515774492263131039686616978917165547149063764956979070359","796766378101309317127946767222174802423358107105898534788062257660456520050"],["403328298737046806240422437517533138725616448525892632065519414547571963552","6567916998431169977366758964926927439068656020421446142599048269065878618701"],["16672336792486854940019244705702332675269331298172089535476641322063840849748","11796106826789601380674605967085308892842941057902559153700499798839971840104"],["755553327134709277191248937875570050308065975718524805354744538748010854641","18331806640023377673939036145393025209559319016586309443726756872287300285153"],["6978905685088217124396736267447133406247426355348615880372970238335886591777","21465542879760462317618705726299337998335753192667915813373848760126135258894"],["9057842688039320736876275439042078112214893430738782623400131222487538555935","290113861286955908412941461618419951830160761235659712542441894310113911040"],["23811518472277858398564920674500380006000825668380901598940442738675463346805","6732018604938644467128530373292022382410307375098316048388491509273000235695"],["27481051351764494368150360666472473682435155923409306602005596686912177321265","8466615066570246365980037088863452225509778108484788639627516196396596707789"],["17803310121393332158214901257709997117037072279199717885562701418478131647734","15498750767133407172198941121255942320127729693473315384903289403428830215647"],["2450999218886525517456676957578174120505649562829031726993735501155431650445","28506937651523206979852067328070709583093638087580685511737058127795484359693"],["535023513556873022650557293017754733539779652329407633560279866458875390370","5440732542663645818840822919872978024094446248010160934895747138150865149040"],["12957796936082698017302029127170539335934528704583385665087916401504825173428","1754004849373009067649705086516684581912039368255316845462728188772995618632"],["23867626056057073031994000450562339357546656505436221136219233282324236617223","18745309549701605860599955417165906212079871050266169006010302892306606536347"],["10591382101562797426220798333747507223434078391587746009885638338548723420644","17777433835067259837984571930882712090935870473915524840231663879754534512264"],["17308342099782655315437276142981721529334829697130806025184632137745765538152","20069197008580832159825691107057402158148154705373314396334620595514849144638"],["515840687381259967430971666075824751406617331742407380789162527303943062142","400291278082523280458508724550327088576830357098614901072969789942022941957"],["10544365073079775995098455481132087176659713446170486023949362144484728595260","8361086447157753430922336103291119760128937634601174075394234154015040659003"],["28222780994287519084031957210541373658448432358699362256248535718630417059288","23995318317174354913734326875671601371686954757176386925938965964499619969605"],["17014737090307998667362107183690339759026310117468840433344369806896712270665","1779894598659088469962130439372706986438855184591679390267821985373963260126"],["4048101175660906722640685860209810890992381034275204545723547384820412393321","24864503857222735198017624326219952205739031021874270141924440756602001498625"],["9718006618152527625223438697338205717321623835747820776026198870017282244383","28502255338307159256797886830293964448181339239934624307078781076752564183382"],["8334880044986107002724466463009001278476188465162229758698343733026981001890","6749083742398417952128728305030816478832268134078328498705594121178180929651"],["186430521639028255271359629926427666068564253223816148895590557410703384858","6561575465585456583066898079889101607840974597530877532260452624405885828257"],["636452387320881232415877445929265443127220864308961255106204656984889533423","5282495168028896923467684870697087233990057751444666741422783482596455489131"],["22940325906114193897205982411760399783330050094104282845340703913776702118938","15843741184000264338106066794948599681787826862579122774375121706897447414128"],["14355438191401876947583592635305621080571722599469846219237307758106018676986","8134374583516324471530578586825988944382454301989662865096779645790006304507"],["5050295209043402747203051385277506010860058301161291519765705319437662410868","24456944237551919220306081629294436350622485711001429288090884061338234563150"],["10460884803873980246362636007288810527651035942548152155829045530789919571766","13883644931177173799352080378789413149436698485773889144891625303914361423513"],["13451731735640142466262307410730063197338476015470523274808571935158730685745","12777608827351052475800262605073902342858268071813801462395463788482735776396"],["27913959646944917857547308528332280179849116191526660451630333909167179365387","17689907759349843846935144692479135229745033125009261425853841125756025217292"],["3154601405427745539695454912882386202734648234738964465209374041520946371922","11341079094333034369671974930332286222273862473073215962818174426990735852248"],["3212272589597505273489212915988757565387682698739586251497637375887030092219","19115809349172336467906246538415548982328263138061621757100323022522387384185"],["20812729460439226434876908355714020063715858607949597034890258625702383986919","4250695665217777046059730757224931217428673752127414175402318530337310561260"],["14656597766006483213221440417243029496487449977390032087480853555187043611665","27400260269325929356894022583555317434074844544174191933634226522067125176320"],["1130130407662722746726098289635448981466661136581420115654913838377531228293","11799691557461012430483885855160732193111127649997577577371488179097802496120"],["18027540597862752219129518292553485190834060377255780384771002325274298375483","9094965342211598387776873216949792537700255360221122327157549895491438436147"],["23992556426254088300216918967464855744248295605318902840348576199972017744501","17264797037448185220566108698519587140272264000569898158833950556465702939360"],["12464947119883291040575841326293026639511270639824364898336108645584714489978","18354303888911536657651454346457482912807328854110541387409985978350260288239"],["21752820777255176053467862444006032052675836846085196360346274663459037539293","4343234933643407735624675356881076600959859354838566324072007982121879504325"],["22618786867966137823703815397218280945579034636240142248918103482192750863176","6327302073510878608288908946780719795974495976471996097709625045925774301127"],["27842983876119135442568372079113126031954059782791768091522500916145080314047","10084072548583418305969233313406636815063289792464518250273634241917013115958"],["4205890273482866025963919663839839980479585964515874886022523933736900891367","21567027767920260602782134946476523343607508368982598603964925986500624802643"],["26099607010984144927805555409329154349130733161603353907180997581171214625513","23245872549636296416963578897244481819999086149499881104124710807305246310350"],["27209418497252417595722351693854310492904679473294605438314439041303993312555","21331336127571754293205333429390669877716559600376813878672059568085301015962"],["4939058221934991307179596988232516763453059337536256825572896150609055788117","12547440461575963464475158807131027261838326829070140810636452177249359687656"],["16094254869428256186841697115284732368369066249320515866012390678478021915501","6361003068431295489600287659908307167416219927403153431346771203782174591185"],["1395965523827769521866033232352842228693695356609043690231766432405875498626","8214303233100795816537979019954742552286627870303675364655590937306301617424"],["5584630071159357418756810909667433429706838138245999594679798004295507748656","19990968939525708347733825036479939024172760623564879442993390468581520471520"],["5082314472834678019214841846641584935645897669951226499404005349668381620622","14423782822740997487437468795851713500506518241129050305153966441261460615456"],["26800978717645991192321208109652673581785718102085899659531422065266355394524","9142247879413942299779853222602271489167868229036583745998386620373903032886"],["24427154267737040854784244991158387222367441275726689814632642344044497082783","13414040145162472690125884185632886034206797399530674626565498572581405788248"],["2093314806506282085062299817492003949335301487844224348777686596150687344519","16280288705184923533841114854682583918684719071299192706425350132312315868667"],["18511948331661202231304796921815323462345066838253743233002534418601385626738","6364105709097254105740090608873196646506568081572640963374631677676495563628"],["18422867817858550874952356932213173861718116542350348465484187574050132198767","23608213081724186352235378904852998572712482342848065735630982169474405058905"],["19215948152840597528086946173070311246822436341406088892525692277868601673970","24034028639263776630991975860464773988240103714460352008107240452777387662608"],["19233221201879004448440371829721570801028203989098195584476767829968249763516","27261020065143908888575777867194170762792285291834195722731157975434742366117"],["12009111234594339399296288114747838289131056488798766698216475341893134361912","6928757832092040817245691195114703970208491498181186660697065081867661779568"],["1711859629773717079593174477247560991540785658534518147261035220801248429563","27782932962636037094666267158933367547286576080969256935019297190638562634333"],["17806257550106853100810069351488337376951414348489177954909929000654483752319","25293972146809708195487349228165943000171613963611393223724755279972524124625"],["21369537241220276184140251407331525213528050345898102401538717165321423727790","25725372238387076678277160210786086220254642844856044549401225289150685118137"],["22186987794640476657906368751022861202070852450653106840064986547504672279013","21788979039796369961517611203030244935990304193648175114423088277002933475358"],["11365489306430074142106781680681988781487908150264160980388808399325805000009","14204501294276476100660949079020007371151930888927010831407958380706978294109"],["22884855483851460364297646851766517103481551295070951506494745740192203939482","14219118794489521471561962062069392138200964553038469358053409980054434812351"],["16867919709156685686641490828822106091193724117490310138196137162873988003429","22607102395387285210877866752788480478230244216684118551528012104180197061371"],["15630531733070794687907235597396334419562532708882965980123715297289634289033","8956763451945716081632950458860225030755989198117100113560280560139371737"],["1531204584115098305385732250655485485813832475132669698595367730692222288104","7037203425077318327091950395350788478809219928013474702664740779332386576401"],["23758112644376811656796378419026546560770642194394586108369508473407114747722","2561446686950637355924214825722300917141303955638810600786495796771403258178"],["2443208833451504635727642418025573805017776656159286038337531126596273296615","2404490963104731558842557421985554966407855771321029611597088029554607022321"],["9903539389112770755193817805373967354595974931397517973287510149780854147773","108367592655092252205551807301898284866248177912348765404316847601004484350"],["19760711818759175903804183339040526044583541682476176898392116729009503717429","498674336695433779631354270312464714243036201703076531907847189538292532214"],["16879517693110985808608341312070464797934521044323246154920419257648040460904","13237604151556195520422371250702207779323175434314644221856964190395175377480"],["23809269704772963505330416971930610583175251563078886853571859187312296704243","26547336011922587230751462181960655289394528729805384115851999936382647907185"],["22684918051230394087971369490535248129107658682429397517745162498552934361555","14166472124306187603070179251365811724460750301743129712706639969452670815223"],["11600897419239001341450724912532931620685199637094742170725436668635039456854","16558019851102635853010900552076660088710166254363423277228461338487425630218"],["20213760472618462286533184219598848558484704475160683553980981712850821367708","3600827293496538147752427870560972702180618655779444411384599319819036792103"],["13742500148048430941944474869247683860967760458815426009273012068943494295995","28864320078050713293987381975263011143443717736156326578309826713914323454525"],["10238804174568169043776836261425689873328663748606051184292904093701559153040","8753052296085117875278486922245927099427409178734709743568092379754591104291"],["12539642455430647642997170312690274764436488413550081444935046727607285746617","11099645894092136448730160246363998953267137317950996722845010553122633446747"],["11128195781670821459730434697472166220075548253077042759860866667354415473520","7570098667238095122914202917494204421417887294817693534092377204180713491999"],["21742980498883176312415738362455558783998712867753872463914300718748001305942","19692561718146384204198665788910823347702880609126362525100009197346455548595"],["18173110329227228808523201815137047377943101890283292685634075473693971986112","19728302135822178961967777352825155683189759683153696580391047106927341366860"],["23594137160335741774132075084145848800534446521825813277768494732435068421472","4746812968004018757046925971295473361103184538593726708221006444919756882173"],["3507103313273537313812428306123122346487879420010504458457783619001271702546","26765422526376375279262663277221596229248765289072167612727882524042875751586"],["10767269181869987812764948751016566046669404969620165847477878057690619228609","21918316791845662238591177413786607556095301108303327958802202373371646698207"],["4358908659220265990000632368866090460988399401482907106568267249918249349768","10278374739570129655434178797901448707722440264595675922637139570694893983298"],["4455267894662966497796131271055241540667308067980582905237032227557987580280","6047690528672455955157325259298269501947263607407703737492067367955624234087"],["14611612104364208673735855993791591184996046057053557554973588755454742268175","23341903279528051823032430557208151954552270566262796666990489477374244155434"],["13449433172215235222868559492635580993899327343568609468826816683922101576938","12013933948422996916723429131422311730958936847545340758644123172378495043202"],["1639882814162973392149252467539782869893971294234456320216778268918170957475","4170972621863688264816460418177390311341007505926232004820203978475628795424"],["19556441713982682578444907336983056134761496765696354114639105953869400994904","17747998445034063080187813901671055894711391933601188479968500802349134126705"],["23944860733746791666699780933470470719101229613388548642016018462556267838090","24840874365603681079084222081824777562727001925235032486527266896979747922547"],["3487694094459483681960384440746205185628783267726166933163917629697870053853","17076159865202583752438829033436987181295234915761664933350491225846110613530"],["10761265199344016689591754326765992976446103079525155861362728762139686031627","11212493400904028771242918976583778161176058353187362390818643188545302338480"],["19012196280926177241799596034726595057684645510127896361253687563668649176959","26778336278498045142636930217823402602772585460416954651092831453536789688132"],["17748686715915477806270275878820840559023077560683047677087276365782906734947","12172868699919948354434910063562755221033876297637309779212684464110657554599"],["16243814546174537772550430366131070297784329045182132391118247755044304734872","25686380640438391099716227582538482459328801166688749105838193183375516445116"],["5679123167239107342523119741712594589388373680196956487049328746279551050095","27120749161280125058364408346737368897197295807343872352486070085317521342153"],["5681793304194740684665973086307970390517478587262243292398047687802994614794","2138087854658299295659252064195953996504814900100178815758880447008383823881"],["22889330324879887244558960804648849202271194127083200884458887486496154605320","11299908681049855975105678596249888503324160037248474662576200497124525303935"],["12043523493977659720017061205449646567179779299947853172941084129117323551217","2500926541023424421502711975031109412771516938967497750054804121433588940790"],["15703282364539300101382613639120917342532745108269093953988823547485075543926","15480243659490654947202593220928329585120133173602163627425130814296179324622"],["17508656488296976690790573519078063015447530026105786478286027223366533635768","25193293240048231037305400676561979812358579202780490783332485826789043232782"],["5708928347306564884338716069658517806841409363072733807251517522693861864458","24319406027215140917689795386292547426489478639163119185085625327583685981251"],["12373624771716280495880954034343659740311286973465867537158289318268048746790","17487757530932462556991957178130685517666138339034737436601255705156322214316"],["18429600089150419965001508577390686158074650430833260401525046753880828859189","27211322681086065369142249240904772045279661356146629605920103685036731661897"],["22200381312540995763722311413241973559644108247564999097674301324527987917456","9628063333016094973934471272684584101206135871744368217547350572431677432589"],["24215311883164705564647342647134098825355900278385322819794991806659796269775","19150176121070676979292874226146533501826923799539814831597541336843385245290"],["2334928391412476119634419361484138379478928270933264507474601347967423117790","969404805983882378343607841837413709670741420215141583288706124813365275297"],["12046640264866605554581867338996992215746730110078632807849318043184615064780","1502617156371600293236155165390869095850864399199411887423454031426489244006"],["12961214192310268356902412608566143926078494967748098151317939508379078845285","19905327485547801282932599058233383154235095138028276448409137900322393795303"],["5199849286875777847445658586599426201945039866007726740158869838602927787612","23634499940747530273547429255162150852064055419013905772561700302488112635764"],["16454647919426153252708867089629663583075628598432196626051642515736172258771","14905235282051121640941488727856358339699651644596718926407795682787908303645"],["13383037190413197250529232506449766535038002971612894832231673562425950316444","11559755067858768022406933031832026924436585255074939595647567276803874276065"],["21979079814638039549872988105808333636592224892443097896597107483554278815394","26609338760753944605426452970600835778116748934826110871856190824218247484363"],["12753135161012599869275371841418583000872621363690297497339445384266087035280","11045015871341124382286609412941431633431433334855062096437380719089414703430"],["18608272705737443379196201016489159067240123271593478748253368145328696672611","8706251205264981442859979172240613226003325450909825927000725205080179680543"],["15686523607020273036697924110498593780147269202719953113029330840020986223023","16790290515226634626704775502351621787903632282908327536863088813892903227718"],["16306299853327063867072793736989920969532541897502353447754769991647464022763","19055796686666959105287667346877428123762419505282572885383157125408171150254"],["26166387064845528516029059405663774328159874355266524733830556891789904942509","28895916599765982980729492423677525955727613111282875415656452955296664879667"],["22312853984948377346328447147513888915497166416592850567724557363617432476536","26175888495619601499198339567322283276336421353065151648144367643180465299718"],["24691408398919652583078303443760763579546812224123042575103729613383924586366","27152272118723971710571544026102544801244080103250068769090097890595533093190"],["10413519049305216670951326458325424872187705235520554933182192925147241353648","4511058442139521349726566266494989294231344525760518058678392319042825575031"],["14742454134111374655273920013563410924081620837260411108800712867406782511427","13166797895381779784834524730362173479908580857684063149080545552920299408602"],["25514323633756907561117947295485011707371719329189987593354153692410966520973","19823631729380044983566237392752811027876666768802621965336066412672903856452"],["9378906837407032096550732245570627308385000186955443123015393400464568059279","11839560053564631966733794387706613699490818110769595643486268678656072950849"],["3533229946314113156532684917757217996047686282160205888210750917476151257504","8815831546970919121759056361072181857725504975756402698607645767318105107539"],["1904841386135178488566050813007957152473101097032765876324525014443922750544","5136970002903309677931427009381297752610563104313610647258961070958938481321"],["12873531735370090051020692347216630807338444172859512789462469431292958581922","19619161930906546060070068568275151423859809816571683191271680198978219623542"],["3494033147213396165422070980071397926168861011609772075081142741190374903052","9177583764272507567584101651992797783934323819439192611220924489238333107529"],["26513636007330406368615938704077556376211702135821023695390541622664823731821","6876462646795780045437590002442478722528973339894584717122669237368740312154"],["18282521253837374586684528230915009841360592680282751126027706853167501177538","28866767529803830335353627390732201327797376095402809869485624764017057041136"],["16870522321469927804954275605042892772095842626577947587456906980262000281332","26594800621617692744284991558076692025600502966082617962219255126408989216450"],["11540674283850819464061794263409958374527665365017384230089339851738904425624","13467891315507596525738609919300482212800990769019268634797836028810883272366"],["22463502698433886962065077133719245781747489391091896487139118167090042909743","13414780201159120819081897974700685688500921865431731962596932039288957819912"],["4200273875070630573505110513282266607013368490687158021740704441155131516910","15518228945252979061555282015934490428842390817114283659216356554852222037101"],["16185224337656678624540174441259209438500995758254490744572006001015158942404","13939701483472746156947049937601658495852584984576768576387902600485110936903"],["7209195224599062444684555030771634828939230741530988956041914914177685949635","17491230181925770130092543333364985945530227781389149249086291176366885462554"],["15987444358413523382558330068567608114902342632603934657398194483929129547345","9509668097794070720619727445601966365234237912959119835866216920923047239905"],["25867884535233361566312747989997532549616558416716899499552461997701462326830","22351460392830804439447391074101451017531600867773587940658190553455056274201"],["17198529162630380968835160619336491392112038027530574710468504255488849008109","22765151661184976862026600726822317663443775757241816016449950820083778146665"],["25383742077865812395866452414703042427576667620848234188600374186706739867363","6912140705816093382552239390119682295669699552943643766933804358839652562600"],["1360452939738028576442090082805535797798631272047517946455437654155681810461","28914784101242065858334339833891819331080475653521649857734427449948336381322"],["19340616945787154052238251988258704679473311200318892242862394610606587486818","10478288367644742143385575887441064378614721237418588611266595524812137637550"],["19894680625594204687146375525245420474480487836438481430435783636034497829630","14048472981431804473922844355472758059731514543673179157073621049806497419674"],["25528565006701748892366901527756169159909506981683919844510071337527045155062","6571127644760360907959100147240455660993466367284158276195248004236332782988"],["28897655994417956661102807823510105531028425034331588742996402966988571365466","24653042929782561565072488082748583373428072787867401221307348256053489755689"],["10978260064843318205240337889561704586343959572532958551963946754553687138589","12405308739259753896191923594724038183281484011651688471115536092606181359502"],["25796672284527427216338653117381967692258272988385994459292567267598016760509","20073091742771392461029528253623652769200799729318804020734369566538931417669"],["26195747027764785277961288330629521234643536985407803857022473844110309993923","24921118452960447412041126265384245867251684456936853614580746850767279908525"],["21202992466628248682823750865885414841538449448702403171999634221036456762919","9781881545354308846775463063287500824647968460288548663555753457707553042533"],["20352902687011768847495185417572705580665102952665707743501667434976399727122","23629294524795391459079637671451039074827185764098881895609645537477712674693"],["14793028101620119689111056016622442287513025033836871740286687998979026924705","7031101729748844340649960600404475432679855942927702282544328087448927485494"],["2148535552692543998757663855903190184431157149354584100180664401852867029231","22420383925073806714672387351122006930473318713464952749740700351437224704766"],["9799472984687264994908094983583924074797741161549302175162312582904486202849","16026764814459145034623910667807006529476337213799775644118631749457243846676"],["20877168954923510117794636567755265593232859407378117604572850878552840822519","12470752096833996724625944359383907390466155625973745809884211389085901727065"],["24123798968516075850906195035593428183159403442218673999777551633222761224032","19043701982142773971761062042414365994421312191793832590838647821583867295920"],["18149731128084982443947267989960333585587342065287015332075677403822185524836","7631829862734243531321889990481598758067802869829623231342021225519421218225"],["9918200375213769245394043216815076443603315826519936082618837483206934603784","25633782084148944558717759077357893657745759097808950967809737181943949409376"],["17445763542376292592904573390189045725996598424923506744962836994248808819878","28545313487980872894566351212142014641608972601837410094481571085053625964592"],["23692514625197196844738435347860344109301402821273571261442835199630821195614","4614842974853584269682837598983375596070213141544739968289377506552613921504"],["13095879452828227591335149140197986543643569418448065980092745505681983289979","11213973595080065508796405200193654001658525262910187708261580174799505099865"],["22905866046320194407308961400625402152068110631694290180124297428129802908937","23837346151645963154259248182280173092702128892987433661926706727047700798416"],["24777587104794111147474425986111239637472839737619281501158976207514197865459","24790750691697864124435750287909758499330554961835277706163531447815338286179"],["2153346456186398515369430270670749836877253485346764868715754610878948998620","25277128397132801581868731066028724410296674160513227850208306161958056410745"],["11384668039272247911002231889498198616564173095590845160974748115024056960028","14130591121413386135028684894201469610423101786493182374905939149380277170889"],["21538374201841644129887643947869962554190483334055479939113249714933154735080","27447012610300005618145790936124982267051507877156765459575893679209952666208"],["26872985134115141373906659167933911935479371461984850649403185132941185925235","2059969441990378942211962883411977487969351946637010693890388155168778843555"],["25255106859375616093260409287571109537846840774636879310644158616585852309474","25808322802176349049366025616128172051018215993580190483590515449264817194001"],["26254936248841221409279204114428540372700010502946043247536850506804154901532","1003403075721096032638776688957891687583140302562530277235010676330390647652"],["2803059652958305494074787162313472790069159756240042945632823292285417824272","11758504568350112132524961315908243581279930896646627451250543835007937545585"],["4161415097050485767650122454659174361044223237931486141574081318027940181829","26857198972245669455375325880684841061859616524473221410614747313926311614689"],["13144326626526455873435285571775279954974387471271925531130307406959094103242","2017139885088390108466172641925603336676210256468660074901384304530548888872"],["24396263808844276174665414566552477281230639672465739820606378041460218830865","17654604698836655338670784454617538033082960553495801491458320284304971557064"],["14334027454118013671013864752003521875097880713487915879777276292859622815585","5131781134137046873670833968721987080092501297865286076572661838380676461490"],["11868599893352568913358314011425623050051282532195757407215147393214900829411","10692471970201485878412894666723886382328474559420996059202198209087884103124"],["1094448114352490982868170645414310682992726776522443050299702200615687279236","21031255650291504091010098029459029681670758482633493625478939281070474756228"],["23294471481475771470067938060351346933095619266610306807174769163055077375007","24031291761051122393235187661659405861477958479250532397882168237645099505670"],["19021785980254018585877219559558073194168979401136309746081119568000392398269","8424840763134549527436439851137016695296582069070888581319493176054596174803"],["4477870371575473416842807829878723631424586615182766235421662695653549414252","24629483465808413042965712496230648804703149459641136805690170782454024311026"],["20159751468244768919970805537680512995455140852172158791978797648669758630528","3718924892536678366534637798212438528676099708952964740068808085464999278503"],["2761184516080596456599772253667598889656697656036620604594670534055836326330","17586219539751578434681331596062740000166097423675829705517435143453848292924"],["2442271951534057789566335789789376384060095821230104504599486357859144867332","6381460554998507183759850312208429504157743859743398720409586327056861413416"],["19596416438493907778113082198841162924501303979773727104517836208503377075920","10974667546109981253997895646310542063707618142093343074932611161741894175151"],["27245114428772927387948990226872753431632905630585537268768839025109792150397","22555614428323605750229557309734685166518138869587881167326212933665461345758"],["24928944140620049591320174987606045629839561782457902399006911702023311641108","21716953706952315700515307584952825403561018304847683696570304200153278685258"],["472901646808867945634817217039812314757937253594524098499227383466391025029","12991391535334010165902180561897420802892069069643480216970363738148601104451"],["16486157806181818797793812688716328054676647331892730192529177689262293861142","10569591508189997494755326781848137370030201562156081265249192365760219173343"],["4537952987028856129183085157031299759279229268152124739970900083950693713495","18370382121669546686560703435875148062110355107011950790971502897786147035114"],["16847081005716457230727299087599979963874552394005990116282228152298235275691","27246697777451129016292398443355902071919749598029954980875833915648464846898"],["28421926603022639861442833969294127657043724539183592481984001056372274554398","8656381422050674515309614696691153991582420409935822738089188263128705499597"],["18813142794396666485591619746197488560666998693209586080274948723177093809082","14532006531601825367808935554278418415531853136357220188377410550506545789887"],["996311575670486392107552929668366189544243514927828196719323735210130179183","20428460425697529027240940849290710547248361743461696654349870608806805838870"],["10214988012847490529866694528811922881242929931132960870901315525130548353188","6860693286123802433345860854889532830706187779870300681206543716139681245969"],["16046793300700516420255826693152012669464399712597517498445258347044315017198","27258836282903615791544998583660697726030522980381913488477527172530924394359"],["28884452515240029219247411772277477997164033872639554901717636493765517731209","14955503868070674493679672388824893216625084228094140884217985555296116896779"],["18683926669500644261631752784465390997034551824192620274553052047469248043188","15989002929272434081899892471219103804392106646924818394698180878508796186279"],["20547150982911917585368443576953465094225541462850892912696226560084829770940","16230503896768786912107519651922926418174747519221652662335221480131810103165"],["22077948208113753577283833534554102614203524117128601707855491842562577450068","21128933484843387223983659564651145348694238325308208809366514590941245490777"],["25384189104295275899310182380203176010801396016305499611446134331562722391671","13110375257970757425240610151410386028300384899341974960403224042858254645639"],["7780321055928564902578716613005506026931800990753813472821464381094954071975","23895427996109139855371314391898402499928967054438422309668924274584735088275"],["12333329291046637647152631522123083189553629269338190083059802128093868357571","15562039216709706287944037095808332492664452394933409604488582199820249281839"],["2901761152120778651538600357867017944048408290127889129990857430419097235049","17532268690259667404298657699311349314319229867661073181117849413474625440888"],["755451857610368482235297926755197302491935355808567903560959725152213698970","16242460300231340600576765909857536513432942322612505263146269668152896532107"],["17710948248234813766302747928367618358467822463145559854803702731453199742222","8743389447529718514125170946780983478521207046345796284040308072486058877983"],["19880872806249951717116251092626789977954020899519144110030642091206883193392","27920291423219321351930155496727932400178532073033532390581808742552784135900"],["14871308473129981761621697878722992116662040746173797321675708715747165734306","6279459531808161353130211276239361796079197398713584494026053264205541267002"],["7099467977828078462108567335828020392608310270605897446878172890702586200979","113804089086311691785899805299403022622398550339182548290706676401542727988"],["25226296796814861081470232967976354039820142819159913260052026993550258925454","23710360198992309373271500396815642976959993827504829737234775873719173762863"],["9012591979215251329319738124469786773049873445039340236116065556474014340272","21750612257107254228293631811194810826063027582388727350266400188468602698767"],["26669187612284418207679535811782041938667490234582667660557382420717330818986","16750987974626016797068303281479047778593904138039040880055696671731121218518"],["2441982545553021285969587605009912251816880010042572702635898678113488105762","606333911589192696338421407097832531359233711768844894407512178850047975222"],["1181949830691246365202282111161158123363484751122791438010637385588857766695","12487753014336142839485994590386711634165865974627419727512950925727171433414"],["19496850025273211228347549655772323637491351852213999764159621188276258456392","20664795372741501368382676314401826206073529158553400353432304236536780987522"],["10368027355615858122238857397909905620068027977412471860198126603965693203990","28431753946587829162588890958661465828957305989220782682567637271615557550918"],["6892725232860354368428988771436195394366892830134756047107932315644318538144","21822433052025172540864011962834612196130789575975080508242145678434083896167"],["12984856077955188133521886829919000524462485237411426417178981637647315392243","11874479514486633871957334162438934757648676329535084588150262667826337773143"],["22793002881806095483326998497710410518985469306806275717189067029335642140596","13242263414588617357139898183979360484545321205662648562189227964037021227662"],["15497803194739340224385243148492873570797167209180655650384307949930791219840","24153393765362351443107934257922917153483929689140126636279937721648382686030"],["1534674107378268036083878073109826740247676459180666135779526573079317257846","5681211497853413949594159727366113771139163265387587813961537168008362032026"],["2147772802465512633412140429115491575945344501997696371296892156078416267905","13864686703191561615357181095978434801055689538097343838674327332433003578399"],["4125200074085631975371161614345507181274022376364473711766170357934991333255","2951484634023499188537051284109811750159936760475954451004629027854018181562"],["14305191505244360349970283621181678725209479754124187357604186277625044904346","16175164041023945433304315461486159408418767714190019798411067100599154104901"],["23181379469759532151470604483873667800024255020766442016811999922375928232544","19909723425553458105970604983009866815352681452885543414083613598222635808087"],["13781545393997000251438477990836003043932454072921436004328457724099688719010","13291687557256321139254622453929582320421496524843842582493791765010258311038"],["20606179494716727926377075623366148289616360929477744056434542843664793777607","20947969874321315680426149308597632692266114248016603290587322326435421649507"],["1937037439902960292055544221434454882271663871096082091404114369435587983452","20166280567262395419977427189764731737490805131502834330887457251349102358539"],["13958823373490147153595738959559884839765008689337621314615641768621071077199","7620232782178656254413457518072531007594453328472714761714321687594846887696"],["7513253708009496424696033554015085356155028278295806720905720923922397769068","11357663422112417113274739523785662778091032479188849442575645603052882033195"],["7829762234968287410492040705917750419058859438913060724482167644269129459568","8331797629325987671883976571549565054698658609614320595417859973618997321286"],["16605900092659297129130218230557380088977531617008592060635560071131272249312","25209294791234001164903729143633999494904656372306345543789498320276771374068"],["16680176345791249070010732036235507289745346176981814551429345351667862821325","14581535683172393998885093422933842917447390060832247627597435360413138032624"],["22186737170603636037889301574615622582452486352386950363344366624788844998038","15999923001336319255606199496545448262685400437666459757377672286418322760957"],["24608916672580497097745222166253537377991570127752349417502734820910991132136","2662367715262927497429341202493191419421938049875523701332735007332341248478"],["9969069004397840364596097406587142265411195432692878832082451085912495403965","6564594097531994105025382809897529145835986917683878648780927232253104048546"],["7158866587745482613096611081235272518726495251695431121866232059928699421523","20618536268663349709664288653235938763446478078317385927546788578380791258102"],["1130193870148810646209766733047254553860244444012219619580690292300404850051","3876825935225202856219973541907179461064877022462426635523720404747089757126"],["15061168395926575942794691764694309967339526078655405889460566795215590224342","4832021186821506822826235866549874263070842233075399571511968190457000031864"],["8156810000185351904456505799779756600589441207412241100083661501251631746389","19358762333197159027548678921228698334166412966337327911466830035812297274728"],["6652713132403264066713833531414223457142435216044238244020138229492198268247","1197509998445710819658738203534882096510924790531846943189033509505671788070"],["28398485155037051222429326002622842741274171331193320773748649254244888595390","25802391178433227782125827741257384362462978206743642095852330554415950646568"],["17717057078772695171674471731082236787466367388748397574187167591813079428131","22862737637620489666737462530471151066661621628483957547234325015634635147506"],["24008197582806818056277755842300769756705062257196763564782291963881228464330","1978590471286733582971307210710981678524876129600514327942674562784233145486"],["8665092853920694656695033550983530656166714526491928185975254769487936592286","28765640700936539689979827565839835858358419634358541809518340230485907604193"],["7578248602881144572796281445440872228247607964001164514086357689934364016823","26307857968242161638102393632435219288161524914262204455761407787038714599759"],["27418105224884680142892216567161401942057129396657459223585948697633767164383","10157945968926315859378552943994914730863354658234133139437475358430013573383"],["16465849405003870538680247725275329586484174221966599188802722272670813862718","2217256915103518977710211462939341484113372133292076822347121535362444588242"],["25247394795186404859884687914931126928129611953110208252441309384064733322833","19251840734670815813709108679433950818574436968917998310376534237767032369522"],["10640276114861141321541377593943981251347693365030548788793371923564233054684","25095189653062144569236050401200283194935447852765856371409719675373006963418"],["3398480681831974066234720371226052847889073613171335295526819310762726565165","1325335597411823654514335057826604033122076496215054266992325065442520294173"],["7260637079109333160348724081365907947569583293644644827699193223711158107961","12348362638742131240953036837751854810056505207425415974004910793025585609714"],["7964190008782760281950354440692850520371481216299516885748125532843844619748","28088868163445923358665065071380787860239929056374886007572920629231338202005"],["15077761800404159268233475196405503756882057648496905705618318332009734350644","5422927058174830503036514632438599134619098478023351041241729948161012901848"],["26555446891219773427743866541711934621560109037731323497430271438761499591327","4594221311601560366828834667995096904647414189953667287907132485857125635210"],["19408555295316458182691344791947731339789666190836145697477218696388603457901","2182464572745133419799000462023115811028591555273047917150840995311187217775"],["10507239566072383354259274402402330968534376626493292235547230183164183872589","14961001990529877275870911964042798884187352382842340469117754956887592552568"],["536923668816046327546957009007578498338289669714869109497060348211662528108","14065242910223675881110919709840054858819164448843756849556118749144192294121"],["16182369005865215938717066329005460280267030690751161214202045966644751618299","1379643827863028018096292243870874829279854456546320054666923996562462291965"],["15567380189991535878343059504439057625073503000840599560589697415692474706643","11209331616979526655478021150976703281080407443597937353382928285503797896945"],["25501782258459045654421793570163366057294106932682376993604783096701424831349","16033382242036106914672239543319439373021638344753312035211434873599398963938"],["27295428420956695211166108512049383352661908358676269522472343218776421013729","10820157464198750349938960942052377954129331055211711996112814466243050305793"],["17339210383416345976195601065524682970841793010457928797255408725364669361507","1313250159727825378129718225147911631516463892788369808686062838720688380135"],["1215101312676908510345857688838782582167140220243039527442575716920809773262","15823421133758354723513905674791833238706048643297966684573130616118794227625"],["3339055643619201890159484125450827636818796396476398118367764463049832265358","24543663071826758330886486260124015124764043085596999223401782589761473763102"],["21573207596116173447197845678182869891483802584106276661686750555038849811676","15128755338899192826905789607482801276583373973996002859969678733506240439925"],["2077721782607552901205208369611249224722479688807805118785651209959280456367","20006143605459806236198327097640898266475110996227023384144075477636986262772"],["19372917376002259675782105912162609666381708994734570629974923074667641074082","18418140587938480983134211236730320142150483622456537457481260016237863776036"],["20992798722170468695186904411539253709779297862629258892317319507837820133637","4423803660599407641364705338519525826848368426330308096740788237266424523634"],["18511840166606224569286219025816504145185886090210152392506401505879097486394","25576140757754988563588714878436969176754151261699836860146335537186036910932"],["4233150338020191698056732742070615037301174373200640213386691448618349249139","16739508984093410032776857867892569436975741261422803425033684864703339603164"],["12888933002857578199546202214044629174890448580669159007445953552139254016113","23236048443225413121830656026983434349479735795134813362511489410696360242763"],["8580743332658815719513221833428449678731175379806712419254239054756770217480","20106575923542508619146439126910616098031811210024334047653741287164647825109"],["15233282846302121543094088188701715138713013955448485725546517524311133494350","23728517685901087574565893885298724030546075953605821041892650358606559341405"],["27330564747916731607935817111737638862243820955250153475762629635674897768956","3209724927669794344124783834793090608223099879797350861888206263712042540854"],["2955173627904479766973667606277691192820606289697286477338179782362552657853","20978565014334617431839357197599648705367411128783129642373758075667047400626"],["832968191678148310225128429821358502551919434414394066989873528813398034789","22946195928609327582389068570354429401406850575602367283634370761490537214760"],["5004186410422259769857072339117033446438246653190787583000217379274526220005","21787687044173947508482114511577815819903391450167503310017273194652518764025"],["11426232704082370128683364416047452431870798452011735872418285280019091076828","26542135912518736539177706722202618530003533538625332487650159829569293432599"],["13517768478103195474212022016850949577043461008380450343864496069629677751482","6352067338793101666832010270583686537984655626034647606966028750850058235888"],["14923164303033501125048892040605660309923074479613635917509167582289435648111","27360033702349986782849055526163757345639857960084356941227293990465483339646"],["26903901811418505406897588360437902410840951617971170225830134910119432834363","19665905981808600498895692319278468337878653234090386629551710209980196435664"],["10763271642536202156805059031290228126533183334488478017231752948328690376436","13222549846718812859762832019729869849266450845941843449961878799237498774273"],["5012623377773907543866167830999476949934299461798172938919470808923835156401","19945386756395100923963547752606174427158974798964132373843387569461739801257"],["25952603410915633240294614013103656606572527249362848288946453296756950221479","26057552069718458589033666143364706426071074108129866935098114109483251599652"],["1275546047276484373158742217870104900810430525508992640865163127043176172221","17866024776966363260421212115858396593524849202201067694846008137841503272705"],["13123917739145175654220467804191630686332069017783705412282875555571368028974","20699652350216185137304896323798982990815552097490941126744036836963801369064"],["22564158577330426583425383903591290338264129521710645733500446997534177169570","27533162247081586459222763608999303426374592722259885845043862256716330423016"],["16163457717203987948275928293957502622045847692381701641576485835763804005155","27640718760254056730809936819643538116165945789982690498339403009502404664250"],["6975111428697409945857168674394896005575424267504521624918910666881033407362","8713536395894187386075808867692956832015178748749322475129126892121709607869"],["19267270617165438312764780633204613444574634982334839591525130272848647753884","23439076861236343505493431140728309862849657857835551237933326104086615297117"],["13305687439841463567675858490151917240929302720234609453694833959666529190756","3538924939994771868794018576384013802656023772468687514986334399624098610814"],["21723194424771136774688804567861047396338207513635442135637291856235110199743","17686728960681178259796825491162691509995886902685369380815556291653522798340"],["2368724523271014129346116042688691318409083790322861168577863720237536739353","5324173647868572905933724191388549069151770924047275921075717453266633001720"],["8694331214502132937870527767447109698709066832780065454499154064350753902506","3830079369097659588628470370144531106966254803142536236472382999855430584716"],["16914589029842412775326128237256773665611641405863602038654104656036648667134","3448971744035199354315163884815886744766488767720992886313445395075185951073"],["14431844153028474138449323456419450699840636688059457198714952911111814390704","2182783141375173034019300297902762867019207312786287769918624237566495306751"],["24151401986007878793904866182134372085434240668254025939608912230776725900572","28485927706579125130813472307058820460698722689850484123257260483007038558220"],["17005405190218453883790550349904668224812059663872924697477487854072965000420","17836692835332216640313816596973141734000409956268292118205142615120000600740"],["18691732598473049273139883767003429680785381337176431926878438787769131299921","13688213331376530626482661181949474131684493650162742932123386912271609515654"],["14136013395743009986067415123745791466569400032631961245014948173981112781800","5435124493850684217212213485551877845126105216260434269799204721950764165973"],["26004154930887189416496262802214531532753624890634260512123108165220758363826","15795938228083501474447659772692461282754964709077109866459492876522163664967"],["16137775485499904551447888081506679037096759916252677671036897301049733762371","10028211856787976591911120789195651796709167485623215612073877275010767590332"],["3166326484682156777225087557703461754334564379234665474354762429391108321225","6259826351131110785396441782003609296174360318937597621072351496231481104151"],["832781376684267684077113739156271577119132169287308307369494439820657764130","25157700747567859562978667313354626553891658909373355607971768236203175729477"],["16492113746703434264755144367902701194601980392441407313247665469170566712421","8484106385076033687265766480191913946860427186833544623357088412915039754695"],["26428358389872746184676600512807445905754907402022475546742980353194885682658","16777217418503737580456352653302404753750011002253205931958459914218242255045"],["16892044774716039847290914340066570539210469035141181678664877485109629772569","1585534103910936855018766620258323653895282401696842156762491348543850743924"],["22995167913064751715647603841298181267458469294383799688041513320391350589983","25676894414425305318883216604188705829064496153272251906053712151372038724901"],["21490838816817673259067608499825759601871525823632277158682335044812373227676","25786448136762459364745418936922961647489103136519494142072789739253489960992"],["23777895130183057559034893785789527062066381459284664737087870210791926703872","3950068408499462342588678428675309451737699689955096024252322971050971344368"],["24555052304463502049714926298190745239272449771164876424266737039251120495038","14568897975973060463080577338073771468373777790366623011506800107772065893554"],["10804741064542003410560266936469128723445372967633989253641506631507345390860","13090248859771712214270509326516871791105409075135068216707897586659239556280"],["27639557971377233723834524493875531958285364325228216217522067708166953482310","15503774784184176161276997949055437867706980503953345771085019506459071145629"],["2705715382207368907705845538662241281736957994200638422364498334028360264589","20476357215958439194787704228871036781010967415113468607808059819143598348603"],["14019283623301927009498258538166384330012554850778155720941630013314368196291","11176328425234424220786548523732419903981179069645664108674926534571190273985"],["25297605267210603680031092730308808284673866062441215827271292347502090058395","24040625624351186064157490594944022526739006909906035414958017309291062894692"],["13807997884656331048570033192963674979332160338560977880148731694012669815711","15851755683643447798192135923848973194792080097391078391681147703493946372547"],["14197721828355678853093683298083918629823908634953720149611769620728202944894","6720993819816318891968121712402570626697369929793271707989466257803517691601"],["3534748266431387532141871122953338936052063238213460041888332045081028932963","24103043944506838096352047883466967743700183834256246404417785954852592236298"],["16205338073344138006193597980692945473388896302466752333774845363158587650341","21709787881828837782466223909226540731858266669137881534941597957772744444613"],["28308015998763282544689500014039518392258877311876971774126840733065412286318","27830384700258461062923679301959369150341326319172443650365405178899750005349"],["26686553674120752127497323300318817666569350426016475640191253591889279483401","26221810720565477391772899055949203086985227640503458557173412642079781755900"],["11932251121757688282085148634910362020358508339057396162839234348149400761464","19990233761224061338743739740966084930661542448666793898959102962941311201775"],["1477464741137946665838919857536282022541550570857108014155253417547321153656","7242367345462725114909658991826281985785264946037456913531647525993408671268"],["12762751124141890172952111147187432528967539806381350817325870834169025123010","8313732460155447708871098520082612236902363606719356845246581828457796943655"],["15141438503583978525841892848292577363491915366142845273904093428199946865609","24760023851442556399265970406932112379233296706801074066821625556676798843262"],["17037842056443952596491120177727270586791037504577567247309829637972294850008","27841188966180700809271902276932949517991676303350750051591965259233540235470"],["17472890329094793398719202514716671890115331106395737032388241921123346664139","21201971827051154066874060663141548387153067789354802485508498684604851973219"],["90587148624603209795839581612887929629024767457866855123161044782392181384","11796443569856071113782424862434746946502488639219805845151997845655013658449"],["24047335974793770017869165059186713159178705065868287498962772947528219742150","22974936490878742928314707535633153712169932342322415741259578825099017510286"],["9322110718234737192333348031255358007494171589288841874512751327148498045131","24061438679368683225562510174659729016745309191855819871835472284659887543032"],["22160664222620592828241392317592078236757611338893404683970275761433588999365","3950640924998712453352565230207002276015936143393307648994042667082503893504"],["8694124145617843833139025724440591861960154307735612577556439271838395166672","9016719237503351583274331687221663418757500684913671612539399346213440596269"],["27439462337544939456008145200881068066873757444426211228453362668746679837632","24564572258531772014864349656771967891789303605656533248503355449916054533218"],["1024300949538716752534691079402423350410323638784423210828089674824202806176","3115534142037889223048769025273745952169716085323146036458729918691280024013"],["4647184452756824665448038775420880588056261591968323238899528403616390592319","15062755885408274953031945687031665904490144078257478991238512488806311644498"],["19769976517201136696677953834903260973570836911623286394513723853116664446203","24711484920064960863206481587698294292637134619116252105171802894396903303243"],["12270502904566691976015786379322252405257593694160875405531155787040337252913","27955054848973767093831857923873322827402891367287840543643787313022636810531"],["23756390144079656079163272020382124312590791805273634565327520472934163638369","24189136478523979686121216816547028670802028498986051712129315331372712345374"],["14495688843277562590702984506332343479627482523028159872812369793522873963180","13420914729951075245859531739350903370994132606171087919042521526531952315793"],["24554958880975686928995358511862267389388775475745824303250717490607437474372","6259084962026473326219830756003109040094589454929839933908873698667926685837"],["19332696865905277557268888000155772257523878945912422513695484248470950169519","23930492944219598308479168372479438456286755388767750608189403916217602741188"],["1161674599313482535837697885089989689099298448820960484669451792590942234164","23043669388754998217438448540281481201469778241763718672856785997378125044209"],["11670197488163126282093060771214014295184155165764237766425318196707466646976","8841834956350191857440987124934769741053673098007855065375676217991273663853"],["3474902915500706671192068418368736876968108969616983273688298019937306722424","15979790986106630337246550913803152476115176272574756629687705935087023570002"],["13570513530086087026929271359057067701337865612219845424961023172222559216222","19176053901424822008350020673289098140597411464220990504437320461994914901296"],["9607951606459061881724473542720486671133166645213549232561694995493385847145","906896434551773838916627469840491433487685655410903273070868336898498205530"],["15972592454013460477857982790298814159541150772841745279799356590557470178136","7493423516019368055441309910212520889050498017474059325827100951877467200505"],["16333977565498892776843289356868958860741716907301431087041758364642284743830","24704342078212448436683989903928730657215083941784511871745411457841328532092"],["593130342848190431751844641059628505778319061018030089252518331718676170500","6499959769762574028055052380974261306250778639014305635573443891544934198002"],["9340749127279062422226182326633308525901176874118042143822661385869850354291","26976401748290512879786542878946342878128571947964534902183822174698912582428"],["1774904269155142409670264734069140101241291823271487762143474619752928207019","5129977977503453819549248486209575062550517483931314275450000175085135322170"],["5526270320963807703155450967002909763651552422817388014403054637549645911953","8411676951995553397935779686880968078134515701439296549885879442667059156422"],["3942681747489531781433702350500002274188750990663842369518882066799691726854","16053540351297762441365083226773220011353893587161382122022937281995869572641"],["27143487739652033439775128172546498109457211934431962121467131974083275857483","21719858743790605789693892854200580676353426072975876437135285404159427479033"],["27040613946360682316156825996289111676732845349958212788316650951277827093225","18078211550564575634075522221125431552810868430240739633757970976991865815426"],["27719677333035206237253267594136497373316894352185104976752777738158376238545","13924375158377164263386529788696929765928009197263978071882790938556249457918"],["2168229460994300121531126372378885945920388158218125904621208347177611327749","21524976055814692357403976024690190536093681716313745238417098469718019332929"],["26781248363117471304884506668695434393607349577765325434445763250547450255927","17667337925706498366552319657091179196621436856096348279231880580140375061887"],["4645941715989276604946056616057401515842613102151022855475698574606935451138","4279961273580353401993905203849600786465942563768086696320126168336021952498"],["28631072681096570217025909949808061999501902992918290183919390944319532342794","15559935915200472693894168183470677695763043576407862435893949310841767665771"],["613546870697001410314639223751321391257447712258061807295693773815922082835","12817745168904478046085236182707337006686178314150877738457993202498116523371"],["28362191266924428721084978890844033421327252868846552333472289256277391651776","2036221939495287806859419316823238275446128934351124507352646458523884000070"],["15222951717058603761124476755512943397230769003384652280987497398648397943782","14388724133903978098196452748386651391351301928196499878972738645085953253094"],["28368127195346629169620252027723315312810099137036051927249496201022350498547","28667479111955503977478082265143347149245394358246319769906074805518179209599"],["1338867743613500547552874296551705164921770172820972549129666775845714024702","16076652429050105527933184468139152480304824082313079839397049385953437169890"],["15878493966731073263353480476604644753262907259105277687921480480931965529864","23198771090856055308096084062405571353796897475005798112456254690539318764672"],["11020570459449612769531520373343426877815116904211693277656773588565523209538","12873177627016942367457178937282206767346086063133675452133131679334998957177"],["3581848167465854404404919907030691488666730527907212770126195733481867056102","10996299943242033191292606494944916989037294144149636750576259810052304210692"],["25438250010335150133408724391191306738958107178536861543308090386610640333059","15617249505478329648636472036546867948330617953049931335976587890106030427807"],["24350698104860534350610164631394392588929252584482459427197111026215386928844","22533288003443152711199459371878709380882346121906019072854183171191273264111"],["3865048310464189967430996227805427471948848194593874720102915247346519222121","2969924499933088839713614025915672216809220121316865957108562686961778592168"],["14443458736154342546784729933962956488046848586616315570792134818740174186694","5409892277889506203958403103858717449614333818798160072511671631181430754278"],["20483628183695295868381717655236762164527453183084240143218046746200988615706","16184137519736783619546773704099817466592020094958951031058886921567772957782"],["9147046130928597130972398984584063337330705863535965564515406046571653791533","28715474358846232973053520423025278635424583604769650625569271610015895314783"],["3264305326974968064444520932738257767071608063759761681959295741712247171804","5000887801924236675389732569884059321214927136529105365928358046325632436473"],["7265330293656863886056613957508153598803944502046651851907199829551533622798","1233724023740871701883016217492870998670531131908083463625647034870144171525"],["6824623709180202337490206089649092594740125817999939467286920606324207161593","14915196433370522688879519865577473437934977987669712638874611061626035052605"],["15853729860538519748286584985925941342516899555257859158960939799034473581765","20616119514305260161889752658154338829565382283849783633723914341071916920082"],["395222635477028014226969811166118154714332248343404826373857378597027012831","5568752582359078320673365147142567082845221302993011896374100503227885829033"],["6525362884469313876567521516936623484701848024058886183731480400946169974602","7122035128055532586210625179343202784300737270151989600614216376221216666769"],["6628467188415307144889176963678025591294975753862338095935229017992810745928","15772174555777236657871982870527195564017951005303535946371467999327594562144"],["24728298229216147613577650624734871365203895922595553480681328045296433162256","11293759087408680290963706263387525880127582719859659149829137571736679318016"],["18900864485689319649165890969271649367463869917665192853689168391645671234419","3742398366159285572500308020378827005188181568321622791754100438099269878720"],["24934446012424319518896357781750930384083705701560168527944234729791012416839","27673346077677278249855764699916729647367713818001261621561977683454573082021"],["27600056349267051972447204859683892802697939706215587308974219916219618484121","8447933549998478461626132540967340008630852974853696071081079087516080947698"],["28793800863518265857993384633497705717336860618604917934610754755471452721544","329602967809656022276138829880338361079201333252922460280507865164894846330"],["7847415730881347768393936836254930751002876625342958577689593751646482359991","3626266296182383831862919848392213705065716759467675316606337068331500369059"],["1808723126987403659641755734499237694495056432950604223219533164380564824820","5417833014332611286585680781521361601947316997008616592194851886422304958097"],["22219409011285204920851259039673155307493971471791182672122455051942370717951","28797079883600240834424408091697771333526384628764571320077768967828311189543"],["9410865261263987853123193626737751075655882470061011430097627789279763983308","21672599531991059954151472998023664434919222232266251848478852413044631082184"],["14360580063724817972905293063687645248133668703090983243850697119554611790012","3982161481216296050586672437584000971138968057945324666736744311071364912343"],["10919141024831291393187236303803403624825416470078852627618546822583488913008","1878027014904436325158519487634940942414583867960630369518943280198246480432"],["27965548288469455880259607225184446723294258499686958952750527423986758230133","24124715577931745990591415062920460938043089204402899168647054819740727512972"],["15851916216385243462252312878170783957046481731326400849965453426380309775644","15450473947266240530968470579529103053790310702071470154168563339238808794490"],["18755977575980993994692330562882229185069135923464308517701155011255543811649","628510575341899478955863835820762751741154259797520183969534014333736731892"],["27686422382522038530904948801766764279078913991046079964680941216472211572893","25829687254993517763005189101618768335508105132376679292688155553138252520715"],["4952376377071518684146202130407704197700474505142999861431751684045319271450","10756495829067626666183293501971890084587263730190124373526691766149922838085"],["4158430723437813322355089961135250372130336838649723306385155810660871755215","21782380428390420102876170433471979629108574411787605945352814068991649221966"],["24933112400511406966327731251225220262639560272014250564246577555116954792693","27526013457436044175167186361572086431192535166861390965164108634807427966212"],["27237491121066741170199633058588524892423404501702228143640739019557457453593","2069269188092965231458779696841536712645069277482762110095599368153128056796"],["17884942753345249790080211051258426879937777141449865536289517513991334111905","2712308328789365629653852433492600003421819373153168109882351234555090778230"],["26185892420618530696273958408194546655973257458497632350871544400032511726933","5885075461354802864010973675318899289359455483617664255174944823741862106239"],["11781860911623444447854943791994111693026797210536946591295858961241713564775","13077051357617211515631317170945470756245671234833016049517683457130989454129"],["6322429297325642606755629595478771606577858885142352454948091947905543702601","23321990601709625305857984778660975076636190102023570763071761982086531219917"],["27751275896283098951653878774849181989366803311189679409216386969533856194763","9336119905073772562114649881819893801855624380381068402956152285445011392782"],["4447157370442007141944133360380340914237340824779728117117572168050089868362","8624294900117371159950178574799182832718265448818727828976750770218874752001"],["4264392792973219568779257830567764724355970183048936283115917858959917100395","24771675016795431414652873806117190224628897428434898042128971791983157726339"],["4696222423873685376967515861161356218093662164344525052697582670224434176998","1850840420671064747178633157635891239052802729788209356645099763883847766210"],["24263768895701157469814147977953327625288112670141664721358195466919003038309","3710494053484808752944208108478085781273618041706399005382832148774361486093"],["28815638606698116784184373803052741970359080230782741492142816008077572203325","18203310195525901121536702841836473811470607771650904445351576179815971805742"],["16919842884581253115011885735372058904874286674616196681307371808250342167604","14873386310625627192123217323382241678580032707145269128909638781356733790612"],["26066789173442943865456348771633413481340083305833494607694984458634853261938","6921023434986983278066178728107258624625221789369122604809827642439554144655"],["12882361664718809136758857596359385188132765975270406812157312673372249931501","27357546913909787001628716816004695548115373462309098598413464726980326584102"],["26761339696139230934365359037871947895542652795925816435392318602634605052561","8773556632129099225296306605237648824233017570591090951370607147978164613667"],["4587019765046698008245242100047883702871678506738637891914601730181385174755","13270481445271377918445774766303804831680974697854911368371737855448081000367"],["18160570099424594760755567187915112433839874250918648738749069460884277548203","6740398960478887788772053013711918759032843464296366530792298007958140218024"],["26293036054235895022457051518091221135465848406967406249988514297994092105870","3647773614034070782318276162319299515780984958241346718276083287802999209075"],["880594960227342095496323537610943743606445942978180629700430344883815497340","13471263599865471613097708088444862860470966075689447245782806301882353120517"],["16305933953808507558732894730264384460245127316904676811414642608397064249857","22273680195207654651602164051098537774228915423628842304500591797622178542533"],["11824331827705740599189899263825310604076314598774394049271280608544064909799","5100422085703915267788022606707419624735271742765166696983293793833637454743"],["27840425524824628258446324884341707367360380332438292820722537582100429461479","13495982762145393996941256050032478040789602641219885127948192219333907766982"],["17539125274046251193175954383718436450042797783230755500526040300350127778890","20771128315530893366739232086470827813081601975390112204939233718019976769379"],["6486920514017090584069178518227806706448517017587686703872748081195474276105","1804977606999190451717478311457040012049627632047505616734689324137083668426"],["5204789319436343036679779468747211590024343054044713295263449304975784910132","13914252215859692073190261423224836685950851815767845709515266651442080151246"],["1190771878171568218812415162237445973363320041122426631699379411737669480320","20887895571057734208923261377162759792010471869512192188431029353590529045313"],["22466139443186823246059143891633104272350956496878327073225353930589244698031","1211035333689632471483694714048252085515295935907678648329311103625929373710"],["7385619612109347893827962644153758165044502263642044925821178708129413969111","13519359552061678987218864346189203920344658802269397610065352338726491434451"],["3856707485298649889992360644117158213997944831268031014175125124937260669750","13012828154641607820068045571968075414457851061002647234291447630574569641542"],["1429751119021065730297869196656002189991392229505971623123935325723422543083","9499471513189130694677359924893469695425732904589278110672942586230880004428"],["10398174040715135354214899416068475676265718322148432159491166585677269964568","25831619071585641379966373866146009032135132357479574623690494780043045334705"],["28229234361182968799166647713422074519955179586232619358608149357380005618658","17995623147588688483687035811883663626865743502184432327196257824669462326184"],["18414850273266513223704942771296190958397404795960809699186593164561576979114","17519727294097843657641319136709134107199049621667480046841921533444047575792"],["4741111215363605168450758246068107850493655916107626327428850512148518704781","18499269227668228080206530776600813198996640669071880649994242126097993396918"],["5580033400343034660453722004608765571335199285495068873196994876850163309913","13212204704721818606184743488523482083829750951333954815758998149507342387763"],["21574287966345745841272294302227863220063051532189805208658716266701344880481","22747551883506518182070297137188737371222715035439222700173354247826336924176"],["6547184579922601647609001504049170457816624195974420753736875140379415724396","6715800303141079297789078646843966089854056981693891481052921344917149959689"],["20617526582238270785200999314954825994791472070161341260027872949104199645061","23329929437260025724114095772352605982900869472956287351074513272495045946600"],["22856031124662883555024631014828891885990222908334881339169739588197071878086","2338799722756465319716244152631001212650376597594961611117866955446208918526"],["11581905849078446671336990547220826550305997936390574214468415587163790874159","26459848759015526398832798646095122320913097606082475542012889734967353658791"],["26177198360773699215524742040786125183326446686029339751898897676495159805873","14672527080978323639758295564881421875756601452264119509639874680616368197609"],["22503459332841581131925697617918883632734540165088702566666114892265606070911","26180434297692693982164100105305103090729815050069464741105660942252217057802"],["12436288270207872208442385744199680802033298947328904056204875763356592390740","5454642724355161497774825512742832920143015583995743755237337015684265186382"],["24027106272745131309586339339239494321446090310187472184316294203410930422759","11123723083493881022609010085611014501383596125511087791777915469617694251634"],["8373036147003268802819042281174727022946347492692462355026944903577821381000","24717949150813758509264006063638258080793062707021366948442158286006777887215"],["13570376069936508888527983030444357686338533170124305823258756521559147555354","14349632626018595535588331646119077040171301274590185552568568242080702456233"],["4099701543110463779904256214463398856818009566913304125187785394339492331991","21014989999617484358051787156472367671393999306806126569783984251692086959722"],["9169074976805589374501845341958442796103105926394143958777617925823768704589","15491105493755644400000884487696992574899078755959883203967823538649491147499"],["17099340638780604222701122071735739149681702058810251587874306016617387376726","24753119098143919738159245541349671359474265392161502279385076889962413228776"],["16081658684230852051493559454226363313211746839562192820194485075383394993768","28139134361136700325786682191275514205609996885075547952292864627499243689722"],["3428223348222422946649474205447166551371094346464422012136860398581247164099","5676042687120459179631935264980331918693898882536521587351412324852794648643"],["28524662218362938218037064620226626857894472304284701561878297094152330182609","16028889662378916843229427928667217964650756242373589633101804199191461894836"],["6285719814879363676079707484825501587517853427539328701354275061655666881970","17804352628192827470844538958219304278699227583458247563247836673512601191055"],["1531459627501125640568897009632692641821995328160823389503452883513885614392","106146235653731469492545217512425923286505443362157170903079239030974156307"],["9976535515730052252483299384766385006381455355628969835916587423626435880058","16417637462467824460904445715322153412781586626103485643053620007785182246201"],["12255026180488569867450585252141726114389091154666838278000138039937931573254","12013111507028730348464678312015098434311772421895541639346886613197003622279"],["18975303062513413467006870439719843197849895115794731803370504516456780135719","10312189653240554141986044255421866300254647095340097989447334752049665709791"],["21949226876391847221817711028505741869249257995617881512277073935591824742251","4314640262909549864911477516480904016357532769934165110373798355297876573272"],["15788506860896916671776255957677274272859323673341943959188346215071400766267","24665416182410142339764712122655322273976454561187942479440734609491619160020"],["25454974252011387386560050356161494245888580307275155493715649715344195175719","24221133386771512357984495816210526144544197854687003811135571040950743769386"],["20119526522195921529116340908448927354760952478950139576333016601648522236234","16425323110416188217789546371169741048371200992342937300982946372332752551342"],["17953956856215724254525185951513868508885964108263488685255876935873956915012","21602598204212949452236373740255545503698807688058783097802648563177218342021"],["23576255403201245025007596161378161573328110520592299179295161532100030831957","12732055511575811669717966981485248866133744509193062967081999375995106673812"],["4622573693623061800883875744888528884756275096561005992508847267589625342556","17828055898754366995414212404725496537783802216251266684712517440019446981704"],["18149860682466559921338893424254262614145685532872005039058858540685305971963","7146816831676354560125162504689271069864948494188279285005388596051965768096"],["3035883102217548193672684130457340478493006201120943035086465620812706043275","3697811895989763808518355691660763210666911692612850576168440799095209533377"],["26133501368301761805091502836736778793630310471696927154300381507372968723303","15023944532556713312835874335130495709780681159766942666823100442040335258337"],["14810055192817181427598565082312834430013684060423446093581385206364660928403","15170688134839051115429571146521251695161756821659180350178018981324160599388"],["5087315179087996000182345262394197254231702027343919524577094007037505400475","2472714512634338202979078475436834931304415642100285372326819994671066110524"],["9430433149851037990559962972694529850247839687583174188978660717417498144777","9043209290384159828125797707142479443936168373355731555617529781415003908664"],["27595359073080621166112217570149794005047794997959151973156390499273867369305","7916332475855414463457097332826199477211422502814225152070118905006933536074"],["15241436233235616937526875047297734111154143238482721733920967763577783454049","20216585963853110788911863366107125144815842109398520945047394797781602453053"],["27652794484097989915994010345106558427410570019644437997081144151117706896002","17914294682685480205881686596361741327073748134009327352962366874860293726922"],["23634110008630570451211317380062085634300977945518264869455574387694095201890","23159859024367857087915268684215343604057410545983261111667460826067750244337"],["667255274451749108818107498539819830399832033964285198531225107060727502668","2877571339385920376217075030879072326592458243543085856985699676271728479710"],["22641247349680954435907960035787242916377021971123990764658925907281832907678","8184055033053230682411120667644012329468494346982802332990160868433427558350"],["12549293234745609709921957496148911007453018070398809467185197934298336748912","23934623824179305073325485601372372330953927434843454917001812166189475688781"],["11010841887585154247117575538459341422129423047631424214172410295777672595822","17567561983441044776779221887093916170751093089518555667393934465433068421827"],["12869916891670733170011797066220685007542523459585836944975716377111556104204","16606414353393658760746595066931697875092574141290296541675102408495747726452"],["25907867631145053415597554604841720146753951684355027571740279616839507313534","3328210505981857903966922611318950694192399324419368577805525634194427808577"],["22264718333171261282366374045357608585158995176613688003497356301316456763713","8010944838568365052733531102859203484677937960936817947643435116190325198692"],["11223965073382749974528505577093308941447197905488006762454842939707359421860","27664232200697728357114476059519190373602271432357932903050545152555022261609"],["6276982175449600656682403787459618228332664786176777390277672420507449730600","4433161576667660835959125246206728190449690545079559493456003465541950060545"],["22805274993271947230794548907008446365110246110224358643087352232314108814974","8744204757508798082480388095588983504455736546599276153219329122341241629699"],["26083389353124783700248137884432966570137513920297776412341323219506324488697","15750739718399957175191664254957694348020343375588316168049831862932729762104"],["7036326203034699765388221480488000174386166285338227401021722834402532056109","3558608887302105800360902137536190003775368912862603322478906474138821149209"],["15768555042156328634172725709405979089957633478870465525105007410544761989618","17450179447369308367936906612639389248626442369808979580887733229347081534347"],["3968116894648550242643087894604480602001707675940861097366435799487047425218","11002266566545772508517038529911302037232529016124563645371336453970483175107"],["1649459104871761761041422045669804655614865837519696879576034104612853917439","1944698317855326245773585023064414451735086254003770311591509334459501503680"],["4175699667460476776459930021941612257910997271180753236239373129565842422456","3947115781827722859420688086132016473115326005311250566659671929513799198992"],["24260348260612190555601862340823907619643057271408181235746705653456932350202","19702320329530008768547825797730500233089217999721518764438568145662732336464"],["9555430873749148692030903519687697340801359449269410356081048919083914499457","13368911891327831783701744160501573607086842484424925903739360503079186332096"],["14225673887566008112360951281268777381751307626248649432310491071308064934626","25330117875839711412478435039938665309800963448309323146370793703171851661847"],["8946583392520763761087981093012988387783308749864413392485889171567397926917","3567490082696339872302992243455698464034433494892767082810791435942473810241"],["6420753470995047050699305759834407425511838754242861481427570360194108434853","22062099987395956131408489273355056295386175462491646027857835453244865618252"],["22348687692880712875665056898075952116062950021528686360112099329821186392223","7341794454372372883292104321397099628352050083178420232992952942573743312671"],["25040060072322339090985342598437401824963816751591096703600230626254093733662","10015664111581442248909602583493948713920599720790084464789800718502321178275"],["3455503011672947891310440532937519225784040959536502047554183770910079001314","641551781517001256014195008508887531036822192719405566928815278761312730627"],["18024607431038051243771889496880573168139650686613485485164420319740981665539","9035344380116918476569158536143184502806780621640375679759689735556630183848"],["8308723130608082336964673852433491071027110809544846571589565027168127159930","3134145798894800611450740208091380896249702880490252056160315675509885427545"],["5431693536882215039022390219098721203497099431256925318580117868104864738996","2322045283330443779331919990040066115796923551205576097535680854006559253691"],["1380307511550895362587719601327418521194036647211404211876404581168618263512","3996211648472993227123573188518579815070358762813312526553644519008016447255"],["27955292507206218384447023896922167528314756197654240796413924613569760557600","22243502699017587233366818188600405501360306938066616972806652781162297415740"],["9365057974851087548286277983220852179305177719449691805009891026020950806732","26892449884510025366434666226152625815392970030604999972422617117265784456142"],["5420560771963331988906978015539471976790787201273920976844063579146320290195","13600435597922469625919706594244299731951270335850873090807395019798458697625"],["25963658386545185418382017817895330351517955360237615605424346978193813739755","22487530336415377461096433324877552064705035803378957474491129290824555388316"],["6615633696815387415083445656858139624602026618231722553671827828755618732831","22646269967038433940995039773137824533443046725739343395340887582845343720364"],["2902936214605530811258963826802627388268439108889289974661434748921806968709","7642937494634612994974131245477848990077674643295684729486486251427036005304"],["11335578383448890196777051565011669084911407076108763073301179317853650395543","11747888795106775679995257730020281978303766371539643817570518294848926783063"],["14648041854232201305923296629285859535819961155333167952317606916566078901675","26562836872787734801498717718818566238087047085376805098373533343104232120876"],["10901433400158163597121944955038872922173530416893146140003950270666678988835","2400429974023407435219959565388967537544697723317010763341344995556840389497"],["17599688730601129440994430026215400921523603607849258432249194848283878322650","24109288182245484270928312899277461377515634930612758881200771425606941565576"],["23304552744127670501280656027989099764525016690823842905702226019760997365014","26125214228137683191282057230895971939648117837314649061292327051583904844172"],["5562810804172602869200388832344854525676299493472771443787982076555883043162","7625657103743086858400932194795291886787545056586271829202885429169764681376"],["1768353626716021808097573198956232447408051642751877681317758847326150774433","27159812088857837539443187674765465386664182040736431939125726762800003628071"],["21403670760820609702006229586614047372498538343363756018490905497424706319059","9387900440078461142903817240153555587355222228296868688730186820843378862121"],["15925044862942153978989768124943831679366112331347253009315602141669598925754","7592350009550299307914340835533472707616594116351256523924889887623103978295"],["13012230963314542197771363417094148079879480166787164775451488559657686885993","17961676298069906132784662724530669828967033452658321364770029154168588408586"],["17799331250282582507737739318638483443168716645116228660477366069928149479672","16247024623543122885682720399228663886467738652157728028047032568055663714086"],["21094744615602692527619450806269569450333796612505638943671766602062338293325","18579185840696591827160375556152762902515562079371551245073822389581117952870"],["10792602631992129534742237399872971483804175476261154181660926662185145627500","15716159938012855942830305814568671752265660502131740501872290877079007139936"],["3750211161325180886875131661527999084660430086461578517052838821807893594464","9830616144056959075511991457040119495026072165215283615458465339709175921723"],["7106185096164423750161107604354644417656331701031368962073284420375258711654","14626777511623528898005419110671033605336080842537414097188641761619368703565"],["27854642861357580401997483647554997354558611578646192877570966335109298823778","21521913435628285830277350683329309702780876948818736999964100698839511336947"],["14618069479902368187843136242022578944078456453471609365106926752525538709452","26958903717192921366989180437868028211644055477736898508971079219361939770688"],["7274523932902666378744391650743113556130563793291310178584644935365219078349","5975343911551166070919624887063033851220621869855247916536478291087294653413"],["16029679204882529805369773198161469497296468575684449671288704951930079301954","24007008184567663223455410720871169724401712562617167788686670659212180153029"],["6422914969517889627209171879784725599399632448714333743367857157846873234016","892471611114313180441440408738394179000271257372574287096201684518827557274"],["23451263267117177732585480173292479047320861014368005642643324550938201495695","4035688900745354018234247082648699505563192093857685696775579433253033185956"],["5830899413559533572514742681847212421474754737942503083687474647329785229419","4971204063785162897002635482965006549034326170932790110198655887161853839615"],["27028555417913281037807561194348988843805996632722679519028633912609648543693","20308461782334825009045499840631745614516642582620788058047103725451862818381"],["5328771674110872949542701508828969211163283108476224865372700504825601740105","16763787646780890617598941683505499703867108874467932303729958703800241227562"],["26861281914940841396867664963647132175911153948411643147359195602234017201655","15497143931137148661660629690349247060629031913799897885591241009033696449764"],["3568551464143069027960109920061920778675000691078931524480878507211197018770","15017262611919318551678544441542765025453556299480178904426759623815221870451"],["6754825201903934281384510203735292407839027153365011342654594844323907637776","17418854408864415737067482238948472915856782299887008455347205039248728712239"],["18212947884128563575458255152059879953819321819068629594586721001511084834406","27695241019831135488894776315803771254353132362064863961638129818693297745711"],["16617136835016727746197980849997385254113162935012252693505339893304469080725","26529232369856921159072440480790392899918491026036185170622705963960103959600"],["16481595987945511410532917556050795634107125781717951297461813203968163297845","27991355259328285616872113518256045229223919427970646012678931326606411043021"],["13472169648206986317266068457697390177341559836822309320621496028405225794330","12986544617752874214578968475097707174470173900515566615793646216654363960124"],["16185202760893248642299187260732124817680486470252360415769338942016568501266","2783539084056326500363375791237765426704686731865923868344761071214912249843"],["26598785020933554922839072861898745087771779473339997486050794202556692350813","20139584563015881471222453508845082022385828136282458332692104416439777417713"],["22885343504811687131897036658578242246887630556785685953481078144235198346634","25898857779682271710996287082536859447488121536283831401945891429113545120386"],["3188521573348713311983148179901489522288612143516158573114679980679869235813","1106059435260939313473781404983205120665830780357276536466978993922967886576"],["3334987430620394435725625812611597894836543459195921366376067363342971698967","21819215409242393617057458360450128781528860775267278858118651595899214887899"],["20508239344154585155356276546963998444558152572251186198195046379246300153240","20325373981912593702485726869140142534380787588019974401785654276507549609957"],["25185557564236957887643640774117273692113598448857545312187036710721921747467","25286222893987396176696314340029832808590632689982023742089738930694428402098"],["15165684544244881319008673027526992246490291427763516391689698598257277558105","7189906339342472688968350640483141786167563744304584806933059158466948817566"],["12277372782546790199481220676100759887360001218428961280097536072347586666056","27638592521090744373172605421953349747024798714578858538063166173826535922336"],["28825160754896160684206809147040120241204325712846163679875374174520255682360","4721747404766460318589102251242973045096306331000786779546846407793756782509"],["12847852891665646436885169931696429768125183878126219317423064344249490428363","26405196416059052772478866037298463691859465330048042259155462527258214991207"],["19267979252658642425875398154084278897408060356464324761011661252213765394064","10233947668162810350527708334739707661090498626806262672584487672482258860506"],["24465795555012044570066135400547790498580618787493152159354501809122449776301","18815290882063868816414030039863518070882823692486726676945732815876237807283"],["26389092898717639728835272844643731739874010332603886958793677376763533943456","16288908422662173802293908630040034788477682190222925268675322185806480616103"],["10723044508813424797673138356733935105754522614275395418594837699866860330253","2378700926885362888064508078331454708559536719822378823863239801663397393570"],["16723792688974773017086305657356841086458410948696784192265380355399148331596","14309678390410154094247477035148960808095377718945622938793401860941018850297"],["18355250625473501080660389335754508368827945676938093816596262554807165947546","18594972362173267227083555322238097819659513356601696434392018812752167975323"],["19754833261181831344827379888181176528078226242657018403073949721653787717038","28167984392025363555652048329623390193315881518952304610088073932625377244753"],["9092597953568602294356044746358293069564342524954364688679641391064367901611","23757589117945046869306624282396466948658545623643222625532949495201622520788"],["26591003697230726179376569365080048636000127222137500027367234408421247797250","18331199609986406975075511527317509687738462067713455950961274082907415088078"],["28629499675723459146996651052921220909656470651060459488259559342959586358296","9093982100303986250019687314031642080201932834572846726565840270208216502994"],["26124367570956309690628206694877838167507639358150131640501216652784087682060","22235834003195712305814337958351843695027758940413154384221757115198530314432"],["21490207307644613877203065628209385962975150584250729408048619807182904805756","18825469347110829877974332600127534105225973289247408636695041894454420855943"],["2525012031580712569482555687926380010346026440818946376540364612356385571248","10995580570429147473388340099215586255935462514329863835284880004083816705922"],["12858023375067440143720223569725373095737504224199292661804783162094385420177","14894189081248420029325593545876142383297714669541876005726439999568778150891"],["16192098434481470797361858978919091469659960960540639253570716654799601196743","19016148636138446515773326924341335309870873414558435079013906934291719880542"],["27135157981788604151503394788225507668953866784163752187512803913707362734237","15819830490829397134206249042620128920109811020113741521788212430423221746508"],["5389991281272921765817697764458276998459725919042823603823777206265834291453","1988526891818890693873882490067250580135356615545968099611866920869669434587"],["10928212132693682639065141358238673898867072910058678841149622966860560493963","27272711913020237569946984927325814675337576040465345666200207864803903018214"],["4892991158748604731899394602111596001393418090208740988914186965032546915707","25587812589707036754778670649360146285465285996352414685281868785534139361029"],["10947635416163634212182224613314332875158757520789977493473432408581426832927","25196555006535189791056530812964107484006529756231171408709774736668406594492"],["20869245051261213453466218225732143505463882274483593339432141269746970454082","11327524928032493976838014893318672121231148305669804668109222728402570890391"],["14875215342411121997402986955554654413923798611191362328463668078179874251560","4250875183836640065402383179509947308171027590115696811374138114944598575823"],["2558124703587350297821108581362495786238549466953834544585888961863799092927","17849157292728951339810148010871905729057545654185360638293291809764253624455"],["8098634614985736499522177099124718473203136729287692565571009668576771419462","17130434140745131724805544536779368497597890622488834926435958504515740566049"],["24291407951364265846484417991386547510706405777097157703657664944087925478848","26070088605685560633296269779349629655657847290493588344714427582420445851036"],["20095882955104038118794780979801963037530533304126370514658595480023425202174","6496316511404356477528058357882462050427064015126223560317339030243760534660"],["8104656206772996669464200408801740924357665928940880857923248055515462685813","16984880676728104461996916046539996764498159997182514443268317845525304970159"],["5749657255381413688669256601277103870570400612287224710197139182232400926762","2880900347591085002755254889613994724674387596764711006342090152315416412042"],["945531749420632430569947229908266543026313177420749509499128555898323104751","11607479259191840199000387123257826149446998938986500877522666616943375237056"],["23307079362447461665901165425703101346109518539348926251477945218333669901518","21848982392721708450501287658433359821194021790949781164001701009483424071361"],["19683525003681044274116764127775249331730648673486305408877686971662750917193","11668733274658755511311742725725603615942637757484740038051677300656510540388"],["21057957222627769734703302504682154478026466384613781884042783009080521116836","7668868006905841756764275808459110170800969471699321004738230295676387505556"],["26654871031806468862855799111140959051042373191130027782271200775256961005803","5437051197248669877953131228215693805638903774771986915477737278266239644311"],["23856626334588236626478718857603158491871859475443768323726081613910024966152","21650667839187550327143049942320761780042477607503959316348003304612721885182"],["16774169781230386294843759220411402468567150511565051559896282171812590007773","6753986218841862956913769297559803724267133002975282156474258806672547726381"],["384310440644871136524554142839787932096678595448825606048116941122371977688","22932585861870662739457782554341925725209341219979846809859757260099942054919"],["13399683089108345013016571095962264595506946120285297574158626204240143977256","23210327820334264977051113972673382771139617023027664979208990323868267324568"],["12761939783485649070611566148717842033612783604489169284656433842600896673019","9602888597489858518019140495986166065656455412544295137996824651716325444834"],["25683029178850133654289486071233101542110843568209013869113722691884423390863","9232679158277912785391006788788419835692299713723123218148694880222323634963"],["23870402555411669036005595930215803986688628417488555343605160434729332893252","22565363122384563992913986607751455290363505069716663011524334297383567588956"],["20468751829790520187858662253673228975635274733586425403585874078412280682110","8521626153364528184221608368713276680455803209113388993078218985231465790249"],["21603231530113644923056404892856025263830529046216030706688759659503013997016","2013532250747977770895206584917941101668750455718950506414852423202439885581"],["18318296383387227948102196297442281468642161928557827426119268354450386698809","26038050257742440666191322976386376310314350114097764298963673626774972111708"],["10391150258124483519564109352286655726130482432798418359022750037394578120265","17603002416687614054057050584792026628493312461840745687098264218788305818638"],["16568364689712721494277272882300178801837878530344317189338912731161500306220","18574132509469274260239941826732478776549358630051037317193561104099515555596"],["15097428767261364498033708911498302503277742382265634096002998883584800538087","8508264713405763887678973138753508193937307250970410228023082728545974286447"],["655298301752096209484612451269719576200980450488001027218321934481298871335","1800793773642687617379215199236159178316367321258326350937635655291350407133"],["26659193333963836677649903778513332200345918772468164809321973662900711803507","18990088803425034472660909125996167804397381319573885912915524574083748336310"],["19146461573073354949729591303405601463345307916465835485621860262330192662547","22372473003023752655757658011484952540805744316272530743157546894838662419025"],["14308049317083997490665897649437131678591054241005189351483270173309243662447","28384375847436856775230279342525123482066519353299384166277540614052215368542"],["15195119130251815729914159604013111558758735376421625294593114448114232484687","14797632034998844923795306702755872974332702226684376720564858972727511050008"],["26121392170643840149639028625625462632009904324436264396574378570887802169825","6564506819243298968514975739524841074432018236881205926568496520432060371381"],["1624566300195764360541332751644907317052140133301658917025656623545641664457","23478343187402603154283733372576325440975762317580154586151889321713407340243"],["6943334608138888510472285548264315968176919375734544098000660551469351195983","9888218612039294407050046504850039130807597044078006197602691782420217075070"],["10049190305286879497739401285885326565578478743359971008059991548982766505762","8497582242572182888121212984622071596729898194209289937679031977087800038904"],["2425252995157779854733172560195683491804697504221907984376497750643368963858","6111450050341590267502332976864010496885260978461472817951167583452069050051"],["3689403969281878564725530456286641804113216434866230982901523161975959423801","25579689719136789332124999532866388871397836994741535094359497260814891780332"],["13670327737478056552323105795706830585346649150247223678832858424293990469284","2063668758041347175677916898038052968186289617421330058679901670450531344138"],["24884912502416320197576027828688101833368614427935974821081330690208834771424","19071819307537663769662348460147728327545355988766702334706316580117509166493"],["7066217973529213025061378087505647666589655753990712557636502992514054225043","17697226065418038659592933839195059596963717797603820089033552318104292838710"],["28008378717543470130226040276683429693237377237637617304172773419036938603946","10257932825515649758745737481008073108899241109926612648527476077811568533238"],["26136115420600244397232332885181105631125284822628884913267807542015049781364","22612453111225957117320299908863594549169306770434858646287027373450948518738"],["11617365884776934239500459501186749469455909778421992785564617767524079512742","3894305664995397113781311895569225100010423142458189486266105768007447394141"],["13811120724194964769613110501619456355970877406148988644600231714951651125103","3684696518011961238052699829446689985009212386521317057704882174820223436617"],["27684005449947340334235217683418214871618205201468786126415390494279642609670","8938145556941841821301431729056050665151367442668100250444732814037734557898"],["10832730512365799109311019679007765910580470496129066051517389227133836566869","18314844387035545859576503254344674038768781788316544894820910882779035638466"],["5252828783037255228282006199250671261378827301660861426218051661375503651047","23998848181650698317785059917734181751863226604823871592673095080493336240805"],["12970746824761559074962357280573203254825430757076501386235977590676495678344","5399111842324595637594955810593132627260120900347158467198219775386492896671"],["995319940278816763141922703689609982611358982343932030223850638162687931413","9635456669026334306577003387933576833592421420431386401950644867589641610304"],["17247073917713264039367384927358751369645124507509354809646877704144099210565","14272442103575997943760461081581582656942659440814526870417285196317865981073"],["13563186217454152180748867847788921816044608860232087267133412137736794140536","6084375151714793271555960129083654412061080946410184357902471824094134984712"],["23435872508828454589861224551168197523591336218905894030361401854839150968960","14419268273805809563247620960983801769627954904927020964565247787940022081805"],["21305895655456207459583946287815423516496286838647413147922237080254579665217","21164423066421368666104450183139267255391587850774963810066948109062970199859"],["17845545818062156343394834755692975089233307128253949401433926310893497733459","17435082579197127213776216402280260859982634403475538285537101325054992764716"],["4176604551210152909861397419766926223976758539090494092322258137999282226079","16341278670155535230282216860324017621080258016605029906005440700162013953640"],["22346273258311934644580578558823706175679921171310461411809762670864728550577","25427361985537627566833821555092689046838462720480855972640805981476479046716"],["21971893397930804286264165200448160513975528207881508039206368070318703611924","14597240894035870420329635617994434862686200980540471570235330362946036981585"],["15345372091618405412387268758702585454452241873999076514532338227073866018459","2709058703788344407798177732059167020389364042209644975149889462576111158261"],["20061840957775901077938761860003507789375232115568133984277953719937327177265","10617049072285309327176336807098571715324409413116556680109884342381962880789"],["17698697480409222146274478550649284519998189211062719671788819820517306869819","4112386160631437299652603492671500653106299602084810663825736622698410627422"],["15002846964460877482820464171204406228095729720550631659629519838825848595499","12381077090515091680779769694096163483844462884219485710055542002670740072580"],["25414986875337589269579723718333045602912726013441903443759131582836538599984","6673409740633336038868104493456400471973465236360028288218193813611703121554"],["6457541899810399231342858985341392809596664392104840055226787483626353140876","22077693072383204538457626960329862207095967053171186231616509753565991413565"],["10650504525904727316347023702318484343151007245014058339360418821712759510333","17684814135385865611578136593864075232003288143170441515625813882862522891462"],["7279421064410457818484564525998042026721579119795218978859224134606145111721","16540655386481872033246093287813103663355915001260225477488684908080208864664"],["24399856071778408041979850100615020700405936027217154759258837428328155348404","15447315055994438508282850856848549125161522931314543772170812611736151191547"],["20734960945236427716834062861438696149005665989699506140813484860619964371087","21981431099148933925013453289542174519400339543673448696203856583786421358634"],["12405439348874187747852162742321486453532548687748631221854944497745170440262","21724098939297285454848498894993382630456952460643228967716387020054208473146"],["25948561233677908592770182607272037031485023463122854741594566610848362788055","27125750956363963281602707887961087876194046093983624649332350303251218719303"],["27755784732051720981425591024909073097152356029454614983822866549639389313304","10272232631654559647530447118161788112523249171216610870795468345826812686343"],["606982944960685760375838881569033857905313698472047335351582169425799453569","5615408337255872389219025485876437216045312965476033635368147942686572888253"],["18433078171395618578971517143469383352390370674711476601457669017843525586244","9806506653564777007798876834303068572290143436050097050829973372052974999889"],["856871118639025748533137103191244430860665174273429269994893294321699622205","3601082271448630551323721781383770254960121672449126337392186810399927856943"],["24987924751836644071545124337606690206271137337051617288979025545973677181545","338012433409679214506031437502307395370008081041948417721720201705490003187"],["12949409464738848973942786840151530144731615496500739725132618679549059934777","8161563250372608798258860786967815097501204592270338812137010642016617400458"],["16805833937871927038277388500249541486694093789453898321433089256995122648023","3456145242364100901082835258094211541698257205289375327174301030524568590029"],["4938777307337468413662652735335218741550762248858278956391394902648738540960","22493408741845001031872589071956711844798935611878110063715265890301239273952"],["13179551706752091352904006928436002485646363425984274086793918487301950623888","8675342402897540445216774929903825481574982878301122374867708810812605699574"],["25683273551302763097159268474944774348619969689134916231898475191782282036411","28559414360035907367444925462208433121230778948927544367130519885745964809791"],["12410793204018335947605097285531702372571548302115420093754314141326188887376","6613043623905635358580044491239966303342969354511308063780090483035531198379"],["16503497660718775714573253745593852120074514406218244828060476896325267664604","10304980451319828296462186856481437691995749210821116588622087061036996945259"],["114463456234451385361653657361390092449643288587679657473471336486716930658","27715887101823074128385972657458584605344499730430972299504557746819835154417"],["27450486734369431812343332165702676366050107577780339063504246596345973893080","23902443679730195188147648077254058213596893455699786715061640655325680786415"],["16704608489153206562699434427966630001398101371806269745132246526447551260577","18243032912457221661915547690683454718648793838560279302075622420741842133651"],["9159740413821783282259241242383506420452795225882467807866487776700000486586","23155178926443717760032286555603878658710968284546292216892168313937183376322"],["21419334036598025730842745534506147172611471948094981238750972128366144344328","13714288086933768604598399978565762139710664268575953720864520864510748044426"],["5677750586493688059697837079572541453246011966522097190779624398343874419805","22887132449861005744066037169220686740768302061067375014756367606742049903070"],["6033546065443632760172906054655623176187137200600505402510154579988941259148","13317104858154267854434438581577277877143406404217974345238817698101607908876"],["21948119092101069095204211665691058446767123963562796155945330845020023477252","19695697385666184462555380114593225245884293285094246283291078904745287953679"],["21842885393423182732035147001493910064679796317793816901989260539583439341984","16249998232292920425685470350908323492782672907176447903109697614468607611636"],["18462089506247999201900091184692676397346961397755526138345166301654130547446","17394820216201254383213414449293576558542651945373768222935095487019647198789"],["15452074096455446032747711414396807293402817178222351896138299854387060016099","6241537409462852576451825852621698538352798424882993264086116265646638288849"],["26862964809194241498483564538332484389174861576973980252643338880315239611978","24697899254020982001255144339550801354001953781302013696773240644284948178916"],["28481845972179048691656074061906216040538671894041449643049498913432461537705","20086127025070006216858830812170232931806140790227987217846336592706961925013"],["18873623502737167232482781544650634485638712119380771744371161808451895404108","8620918657917556883587136020949519083670100393298165691838336617836965754076"],["10533568016564547000904206625515793070752852887355265903045134082993564901715","16917359564186741128346977243757656032576783212977835669765922632980969516031"],["11937863650518625815305189885529239598668015345876925229873798985511372161342","21548428725814502671747412577414417246620652880654895824492416807710476028791"],["8370163461227265687385892193127435469414899910776803938627768010380840622129","9368683724915605642838129785698023721599933915040851137759752882793398434461"],["749747765671802241105259824004120685115698147132664386311873292919834863493","6769774765458590857492674820369799999051748917351352918155540422519623458823"],["8296425933333382789358131812360633120561239599386593414589001287552762196824","21483916144059720106643304676393410975733844221270843668500560653329098778228"],["24208152608294571474551621847471653438443817702570726742269910013647514661728","12383007394635697532557128591042110802083333166674237449967941180337700411417"],["10660251871644868707459669958110264357617146234457434712660124496708940171471","28409130902648928067430293828363528350485141502752801558470958543997140909484"],["21243651409145767965166901124914339689792121042453066399647446876246885768276","27833591133004756383147622470171511670603730263389948122524282447639356048373"],["3338755850784312249279138538817987586854905101524300500202830845089053122610","10236217326929328001500099299069261846150517124681403755932953739185218728953"],["4008708883635072781819266308164850958058778005373652862084285370163686631669","4013599083778506309621282848514230071197099740286682313934718577928382355922"],["13917771984413910800342291748250756408223379632282319011559730885861052638279","14789368293545397324554767025250930283251948211651288215858370654227144267939"],["4170005007182426012194700264438056054621941332589671470919875701159559864083","9047748665669444445316977614199795346622122900368725514608306788698805144808"],["20661992978615924036688339068060889246570690121664833462306819246377237936373","22666777883342549756268779030168822944319767421045011753000535180638933828013"],["18405166892721951264645256550598877984850011164879784522917535773039134550401","2013455283534294136855456611512753991092948737823238399832970507771328444520"],["15077103360422638709288128762032591579427689823666899112193908513601759654807","8300502262317497078831946296950494899343158374861706023056910786212443917787"],["7933863045043023122041110266121588528728561174811878970757265494880592573957","23503367525189856899885532338882541173578588350796978822635565362573320445956"],["28760695243779672438393293553585529432933489229479040802585633476736547690472","13735253793277543731789822839694433431083868228499603805138509357161633342595"],["11830119747031373064230653549932527670802554780240326536089502856096119586305","16109812295831612640530441731428650823657682838659358336205784006148199627279"],["6731425011281002334408484709392290828962019124917627354318008747034880225394","26378617103930717336880059395839311751522971565211397386304515247308365184111"],["20739930204305985958660303216782266122596183455943303016278429056076675653527","25759617785498290586479063218191995056123222609175660605215021276622396113946"],["9525356661140223507966350359377671629157633202074831922970031020438047050243","2966518769942937834364237136776058600370538488322475343720832481567924938142"],["20491954293222294199888322740399033868712874653666456426713221196498505873398","9434940210728602704069673167173610711800822783345341950367367137058356210998"],["1852799672447105734968280039604633404847808886343669734259196517186021465931","27224800160448664828474054772582881544129926652177868416068074373703638286790"],["4448392273376153718689944552007628956026926483281657826769510668332458733374","3057551216988828074768371483792146975373776782149114179004597299456357793303"],["2482589272369639473651120843547100626839749795332105903741145363361660585838","13762836775285762974280361957999285639278747569567867854344698536908247615514"],["16039927097817055696558158490387713125914319829291346810780610259333147144337","27764621592814508139752631473008989070452213289051765624159838535727225879344"],["1618401167820732148916933205761266821922213953897038756092610566338227907525","22695125150340290388664690148591292171903004876679565103712053273487136016269"],["17856805363959506575570078659428243872445761843127328442393737323785035416858","1027820956936544435558714374572797858233166734717727976175582264942976464068"],["21980595984270995127683724234288042541032728039527189385457076794086110533430","13933879470586813784237741028947746081630534650500867186010141727732932767464"],["3076055289184134710433418135815504756377926089541766825616190179442774493456","7709787084573308833095879191953867135252838293891191032045988100527483057076"],["11113347003755986988403167896467955579557434997690463486097800008056566002819","23388055108840884164335841841155948608186666869462712218524487233055642908417"],["2257587109003595646401200555174043143782853856760025802576433180076630490098","22381208628807706513092100776924893931597353006704975286274364840117805103475"],["8591258590321239243858167418915305904984148889033808848083111617791275341248","23718612491852302105329036038017150256874831159150615083033087223205129303510"],["24362390207522801369640499950989181791626713345962501886360779587108011750964","4367148968552579006966578170479214368582704113353139816319484246750563976177"],["2223497425563316373275825826555024620394106458057325051665665246652445341933","19260370955042566381361422914298271945516496971981110989818822654484462489852"],["4965055132216738734216085458424421130321850397641137733332697758387068891795","2543472703644228574570499586068480981021988955690300907428601308577241363859"],["17215927678598761009178354984825427645278253324287605126096034483065835092073","17377564055447095033807620659490285255884375506798096108315871335357729747030"],["21581149301895327655606516983802815875677400630362441423951170674679406524363","2016674614205224908286338260798361435811980538546309779388979556078103018542"],["10919257851392009345295924098716810470129657439073231193228832343719169664580","21955043115859513855738780649774034416169284761641417082522913528457531725520"],["7898702881274473115770532754105168742161607976673396843426010969253299078173","3390115205055678431728293047729690210988016564634937011096073319784882754631"],["9899139285536734680523202950431604689195620790763342268840862413482952622415","17671738808376059343202102917416441564553331788854622250632820076485772587100"],["25457918937661404414062902232344505933763963250007109614779068078840640161795","18559194842201439673128452467602943513565688664995422366677777767940430130465"],["4451209328374973735788498263431388999622694469956771913092714460397438013581","23674832696885296181791602476070191971489474690650419165957189783491352825026"],["13777308838460645119350218181689847844420530564096400901571548126381246984519","24082653595137424154909200716467719520016762272041505384706683961324556038880"],["24312960559803112689670330485907154671229804386098893604945380971667694092218","14526894365142378388147338191268708441398744715379739021606183079900257086380"],["21524509591872849113627406933130548746549336133127645830841035926251946788117","10330226179069188119984799544157387314438291107035968700911402596821466580523"],["22591758076301915497763813764067804244634140563898588307246456781105829570029","15243514339936653732863613011102284878485965381177184684642417231876477651183"],["3088568971802105382350482436084335881384479291579599962601149962317189310179","7475502802521302576368462162343885521106086140171485404693979848642487536925"],["781802736744466549276362450757725038224137557053164652502793223841143276489","14044803516537079311502492392746649361751830565234362427265404029249858362290"],["11325158606761586695794014049484040079695489256108687762820774480031055774190","1380734808180687809888004557958734144752190796269949660441201154339406047844"],["17749926607197011169505759208917164565568863996278183819473274473584007198904","9020223635050191763172203881795989261081681597588646641761491438722409139308"],["4881150812700292899451375871499284629101641962155809210088275393967290880905","1679114060202398020074097585535564643736951169544635713912628996045547850450"],["13901915710057604792933418128371510803567486258237496396284896198207592598319","14556102701159073584428492351390042398016255014291549358733786486707063809396"],["9061702869291116169436365419981050868867601161407609638930772041766766052235","11021716636547123328175324370583299939111235256821098942206323345626130603557"],["19591095020297887968608252012078993918416074218494138750336222909932443660975","3143113379793446100557581081225472739891580800862732611773349999252667903733"],["28165420801960724292626679377179929246485559667319109187591882807161845699694","16672492952194935489025433028834653351364556889863542865997096380305172451438"],["20843452805999819143861586523159215398953292715496549738689304698192485562330","22114043085047956488711199653209311833123698578843948356019566602036421751295"],["17943203345255219273325922275807703078441828315036244430830632259671107600957","21435169336828140465916576180001654905410278892366678663093139967461613730102"],["3555533845098853444607883047507967493409095027440756915778842687589784770629","25182238884238571963588685344259642288163404692815932773058400678121982282297"],["18842454192413918102053912498927083067749679899958659156312203898850573931813","722913928415764461637729024075217908461908428648049545240572813384479199183"],["3059097843346952703171004217041157041036069864589887166047558069227604264048","4993265197057615958916260364496124713482794483743164767200893146927181906965"],["27896726308855037525893074182617120009475725630247043426667843116695600008629","24730069781995103698849127728070678214447532592141249006438542930280021524612"],["15638787882108394334082362913488158582848174837725077138551438871550297907349","24248601834475864445662460542173717324669169063622447102277788112817274387463"],["24196229551051066725118144092914236475924945460289127041799227681983194802422","12837379692037634999328854007265820490667408859833498290087827962070893555613"],["11298942243225194010732937851670502298975406236838015713340714043701241966907","18958275955119907792971563250482102185227056894276046295928710668400520101391"],["377156952391283236823526521017943299953727573292457836552108868646643056508","9823443127744928375982247690133478343181131522640728500906740548159710287653"],["12612431614985133283648011096442901500529811505848261602545472172660914888330","7384627942554135534821339700408239281475122196937326082210682589494303763433"],["7818213093325258287622397427880955122856385667482945779457591720961702654555","21655895926738919657856269283542882111484260305068435155322151412098476603829"],["269142490705849236886669429295296474325312771820573657889123157753023263872","20448321690055387059218816296796603607190253712681339782755188476931568190173"],["15912241714716002608177847609777601837754565354311452676689944205357170801637","24209662733091258611627037472172266302550723315556360166395325765491944362897"],["19694360491043001775635691478257409457163541835498803895556831241628783245197","26544147064372869923807427665213681770041998068127079884670554946086647885532"],["2408320234413857542259362352858692160904527016578067169167856903894825072851","5288082019317920281531018668740922685331116465079011983380833254747624622290"],["11101028253077040299846517848819582579572536300367606318100832828607287999040","26417066370449439188735149923953956897698429203176439509419858022322541051041"],["14432016749664516465709545145742483102558795911826288197498621404993341045769","1016966935527727598633865085946105014783171024188216542167416844544309500664"],["14533325438357701556366034964206119489110343071160679367212280168745501884438","4832429779689708779391806159861461656315439589995849950470098513978818946623"],["23474261728103538819688356745974483523447406232469843688538164963047949845785","21608931556964557926197070622444085947143462576869429777294281644629740481426"],["28025015306952787841881448564915736850039020858095201859755206582159028348195","3231261462467319608442600567665072217004178836153989264960073197039790895170"],["1098429448529716253419294129806494340761878843390615264406005199177110050487","22328868574036863092197047742961914177789233608544956957760636977729111822930"],["18634152571875523293613743443507436909562106462881897153925136094835268982525","10422878194701865361989704802637205546441852228678277338241720678325060072394"],["132535383899253131809140550267002641945523769519863425444282616393036787216","14574566483616967035801174189844774758105354881359889269774063695635044650870"],["19645461306107925324618343013302937551354195062697727500653061537850414096125","26030306842765514435074516986327500620367933266909386224957523184248628155977"],["13114322429552762233488825432900021121512777884358242407912293930488724619439","1178482846162969875878059713808481564802272401758460417403053586645680601405"],["26753426540642887427764339373050190303919973903777526139571082011567844938007","22152940699234912965046190372120728485257570941357859205088846085464149396434"],["2410737082129643261118124859875743214866039181502490746749081324366244075452","288871729490022572493682434381706503073923676468441364286695594178428537657"],["17214437004744952569271059114844632027935728079768068584612507406835411037728","13915539148381960737898650928024189937172254969153017528279255255372020532726"],["25337247210418257621804226154027126997470319702700961173848199904887067819598","27547764012237459215935128245182209690782574345677240179184272718969993207846"],["26460768399911658740143985002301872222436829646802893482380025363514286531907","16468094855321770213014761065277515160960141811042193008525545023944502477343"],["14207151902344809656551965946434297250744180410426668744435236146816925303055","19743050828767493670615113657004543270305156647512960969182217963822502603163"],["6604922253603339318002362606203746302687347164697464518112378992301328569014","7751665045656013822202855533777864098358805759432842562369333935029388791247"],["9437737612769156385585115022613737111848554447821931766948608265494710175224","16650477122477282486722850038418472713752587046463398313424165686861581870376"],["26757452112934186805966962759614420989591897467020866022448411756919052401609","20204881534687409863091989016739734675879762528432203357623880734727812386491"],["28419217641802353505607687228225050279845063306958830354357979841898789088688","1457357957593288049844941272662552837626428527302673894912527319903877992902"],["12287551290089392869004818941788326688414665903930578637385650284306783543962","2133522884640737490610046431818755789976416296119374835139795089131637063822"],["18601051728540714496304565504546639902520640269950495831214490673467896052817","21356073952401805058399722753740409735146127497578015106566982373462579367082"],["8620654361199788098869639960186957767751791459142450661912102435536023555815","18989835375098364312765506759904617641938349246833403200778079478917165091971"],["23929590560260090939623640804219176253727457092807054458485924431670654207693","13424499327579870719625917373429912916305484616842658857951277096161236349149"],["19522082516638488626463487123242596569901260384924735442162653395832647417682","10358493528758486953568615539576871658285498424940942003759596054209180167026"],["12386481397251915399666575181224385287164850712578314807631817470785920878458","624817061193103494676675451279305053244192964935109901750239408924132935480"],["20826581432300113979296140664201407961050769406256276711005218046670514706949","8785355533064641616089883962193154396234053041762281306046803209290222463725"],["26365340001056165099124722678374922544176324844011189524316309936234015023780","24623706949398350029434837970507317448926283718348445573385471337024271073913"],["21805163609559048753668553066395260514785374429927956004810321592027460633533","23533183918438492694879443727929932026962642697820819351444092896463001409309"],["16162282062199548313454417498316550903769293372283095750309320282347383734982","28908931362674291821450957624985603406765721656997406113255861004853926606366"],["22954761016522085831531642601251512247924169735206765845914720887723001438283","17131130234800838364929125881311912111685907089284441978125500874636695876904"],["27061703482176543534017662809602025242484119732139254498238384657977685478566","9345974015388125266043180133559224528855774989935368731662308918449410610900"],["28552607950255133347407428009821394424089133086034847115929328097998666853449","11793386161858906788664931068470285783459802569755133646019738706880760422129"],["24286507433253155141071292983801187068455476080117013301942732731369768688117","2352425325573834350670782834980420021329851631834265982037955487367153342174"],["13590420650378698711579298291607793769876995800716361736425304028200913871855","23663027456337052778283507442190271288561738476383112492073899521987959764529"],["26318599239815554762909706372813058133752605904340313406931416960508599140785","2720918980971177153087525382848492813978468453942248148738278285747806296856"],["27419269847872718323565707058315461705998021132614141157301461448407180103530","10936081308003616330619193984609368112964562262810479208039227150873248524675"],["22977417760832878476231401784352875879808613820069201766140236096655002105139","25554543299119783921449757364448895390463557254594458974262285793328123993688"],["20624910354272771094925123925342252280686441193266238231245827406966757330068","8435514980826182808077556296898803219576332083672382214894510846257551764782"],["6177666681504115388389111337188142542032578746294152873019540307872146314903","23881331397173389079314853844774358797927951467931415956143518715063404656998"],["6945061746887236921418919564654723013993508806280960851904718816376747030216","1906300896758475585063007821197554873122623269116748569836854723462412685501"],["21421719506020747383312445662812285410042702357217488344210502341743863263638","24384032280440425525211050485928868974287531554069050749003558549989772892957"],["15234480280062502792162514777131763627223208849783876284130596297269268086331","23296668439253503857126345324926019240337583230989958967810023980424589950571"],["10704438255028824887183256624662602126192416962093317107181685155709725315575","4563921900682004962478359318477613414212806624511251674417661641400113649624"],["2267883062168359786206677041976991361291369728382256021927367163577570145586","4870156231374603602148890540512107909586658412743875478958553539549086706866"],["5411820295620217793697227915466918804754485594140132396923440964130482962853","27798533615293738586552384474198653555405632251898789713316735200022546984932"],["10548680390706581086969643166348891316790159071209300475413702916280015435853","11846237634714729059509608758734450156046794501076201178800942202898443421961"],["1849676168357569285782166940937023530949805738555769930714226271594907528016","20984848504874301873261436041976694588352068380997908538441493433607684735357"],["11856696869427323710242604138281871406837789685112719954539850147498658739891","18592994318501547323977286239497947616482123664121613271110436820523737159931"],["20392917175174440996884638131337409116497777380746689799218088056552192438271","2758919480744796750843710027517956322024070595101901441339088700374469071467"],["16978507829399656755693289109614641806262049878910243081703921463199430554657","15913556173450658821461958626111965000306982648641038599209187739188697857482"],["9264415440415789625382219961097345492848467006325057228124546879902157098721","25652752490136636973548107735249725062392016498596485241950912943566725775070"],["28572849937267883760201475966745399653686787540334969819400974645731931502221","1644059604165782883750431262424807893450143930574134675347958300670101159804"],["7068460413175804359343170050293849813671654894424133437593779763230370465138","11956087506460597061193275733728114367375393196662646164909341267637887842579"],["16920744821807255767756544451190108798636428214214316793693920617445806563266","2786159937206257218828032936674717780301726533996303277834790760640985459234"],["19131427984079744586031399081240246915866506943120670046140592943334010778109","16761434343579731856946372349640859921742728358274724847230018428797121805699"],["7657282167603822901781623047062570033303658232548282937258566772776903831322","16517260913032499528772516898224081137268864360030708407861809215846857291546"],["10552330816035310525666736208547026351123833527700494588914576869619782348327","12031088266872431467244268878674969042836565533726876894945249923961349682471"],["23933095359043212682516895555341903444387476331992833950171559573778939299400","18302769719032969907053040870245503698856551580172502361951062564228803879564"],["12593189371110661153094110200311645068988935762282346174040808671238596827277","3586949488851681863619843687402510762407410673148970923312832980490866362974"],["26819605010414800163256279718147666090930153565737105445342439887847984198381","8628775346512859064892266092883549073056791395094355681961609562573719347258"],["23698591529165420006770119255367497238712743717677596992447059049420531075447","25234397326560859521748015875815027632076820983549277180263235374676782315933"],["28042945921298137558759243781138696832003048632684921673447292513847594951395","28259092289850811699569063035266818080944002353516303725646696724266620880963"],["11875839397004406492323713968303380080613935582948405931520147738279158659620","21007751420680362619702756951883835649400613414408454802448380991641479226368"],["8641258825834364925070484430844614273457215171490489552497510530659839436568","17533921282570237470936817418854010582835391613236567361800226260022530362536"],["28052821393789263610617250938758139851662102193006679871849800418299989844722","25585695152078886992362906789174559688277995383073773040222789682287457327957"],["20752452991527495435448665216329361770103255904422612999942164152818096832890","12937435931128862755132294654209715828804542665946292912686885998924367564088"],["22185227508279298686470346476721137529108444508504846766087992358295560353850","13685278898346837651299753689520896514508374046841433032453480872843588137301"],["5110711289362473377218494187860425880011102057206465198468927911613580794543","10903334688276136496895035725879330996228058494578121442582154404312402235196"],["15592151634050776438854616634892708323393828820294804966324769755375534113553","10527762086375652252311215463194516067774801016072270677063688365991690390321"],["18439842970470275178391592545966046929022562347028867261534530643870330865141","12562397438664041641751691187676722229216517240016146651010157980059286197025"],["27673857060459070343231135861477595442976237359857502380037528630477647529606","17062519674164569704825364979250808321147805904775318223030540569149555975545"],["13660448607175958585669000485844405116071869546168404709340686907158391989741","13744013489605841000619236732785683160987854398931568370609635436864913644553"],["24879326229339837119042327957954386897561768842367394097001530345591357189061","6823131529665672565107267633264606512958979558876527949475314492829002233887"],["28400905961380877196221307804121789980627223789661851361662225847807361299438","3130804403900368744784200009035936596083112396905475385258423441655123499691"],["12866561899618238173237622304191745179361751714414281541585752907273417037025","2645066995336391769060717785765890677645826346379692597170425998145601314042"],["18932305282263543076375486272396297224563450428557719274454174147710097861671","16903367732130397789499797626878847512243957647014091852159312146989143047007"],["28089256280773786875461090778651562082237620603796352053126718229000114617804","4664612272162295953791282172698301828012026185577240077219147469439809977998"],["28226907252937304427446600731147785578732358924061378497707365472072894989558","18587718531611763228596621301562209139403334832905813035043599015298107774262"],["25134455085900783293158347566174245498912093258894447233173420273930584129806","14814426186054150776024408288621576522017967362210415347786118227101380134956"],["11614409669063789440325376573776662514984957462879569604607960046978160910857","21950717546489424249073884918628730213020496700299536372546832877857521928309"],["10760635468428735481916623218421588873209710985136987675255945788270600910726","12169024564108393452885980413167881982179303674211672165778412317397024308752"],["4210585946892691262172245489310651954207590132136834829990901456607725259871","14047841340329061780567470057262838218384075695391918841897235018417635382231"],["17594034006953079418372249709888254709135938520510504634004317826277000183631","12125689359760820960373940664154350527236985340129600518911648362477521652078"],["343786934318667259288597421133267405327991831802861345004789109056765779853","12321880945512798776910787781330870355908605997659133144208750213041094152055"],["18922932135206645968156324993687483952592056180375363742924718082563339128451","28798543890171477793327160023639783570763552239600201516166802954757611255540"],["12954781926850752935831068623865882566121476799485382746570413394635150664020","25454260397472146803440615623052451535309873349693608172239581340959971624084"],["12165125635008360462540664451172008370889964519582770055768915576147029140752","7669458554913848091240131639479075122303558522757961180269509499825265774179"],["26306979167532258217231919427552345502014148238615275719562652990870688387272","21432566610293321175424888968233677679780927108956815767792657961336776142009"],["879324384138565482304934762738765344858903824614324195717502553787146583377","862728176723980855790882241098734150507986513525326087821224035746367107363"],["17746881265939233328248636474688201388435505535672254060881211792756964942246","973374194418902552750815105967050951083850320896100967416847813953198434942"],["20083375184637987976236766235475789031738379493057572927301314488838664838601","7958530508930238424696475881767367286656848664839395431117316367556892765255"],["6675298573169153616501618437913069401893111575759476647345589349830570852770","25937926390472191032224180263226564192659056950904426944589122137235902459932"],["6215570085030546312107190275598486128492183706818000488794402658940138953930","28941968567081730286323413073090626686933367776281228866804563809378966435471"],["17060918312706761323094412253292659231061972552941767165867341435254132863263","9032610697728953513372800877774836071078704068563425360822408003062503867249"],["9829307596503548372010834133158039461208368581234558345310079648153317570856","18958897530930461083185877743757971097793517804404283150673726568673180723357"],["13559757142461374927659257643798637240251630785991648557828372780276928186520","18167880820879281133318789015518646883781094092079029555316510074611273461888"],["23499968904280652127696707746748773193748619075125755373438355910103038939133","2598565904032212631503970248582318398660794618402655160192925676566248917815"],["9828951677932979803376147097098086680738474535761551047426753650525859161360","1986341894733272127878445511629197159599618456992186063945733317372767138358"],["5146830847691917213488473368458319148036330774986494870248232561842416081848","20706318175286500833341343023811363820387485078943260472091438442399488636515"],["6475826910231730890543875521327636834001286958752384629817449607910057744255","23394036574273763406035318395351964867969326607854190494914085317716932288814"],["26492544531588437470982170087959806890178482688037200989466451546522537232694","13056836365468474383154828560496209032229433161978849096377818247173299239770"],["26153173613957837652849462621827598025899196455434292922691898874739846970199","19185543316850274620341359046428785149135915839053243620498401247747520369558"],["7639797355626003390661471727724368130701568176398162592425643203840587012006","14574609150908447233395347412042244887755233597946305792690493684775020846386"],["24603937482031770670388800160181259063920295234577458944114855155958613216559","22654083742066451901649364101232509351391237080966545483232735076124436619209"],["28149382566182290772520416795320669054261823976374107887801407484808186942933","15622417041483922132441672422917939467166639533064063382494066022842833513060"],["16750126260754850891981788553160120806392232495793629938280709226635237116599","6790047735177670207044820140266781881525874787225911189652958561724652466406"],["3304532692704558224063614311800620469692303494600591404406883358825845666097","11413730013904653459572338701573645417252704563112366011510048532063786929323"],["14741502553234847587427300019575317234989767654297670811216660351882121634188","21358986269985885272468028014086926216065974866836531510816366069792203297484"],["3129125622749192556650572241973814816625662039866755405250512124204939739844","20310974151091518744059586543891482920843130365610712787580731082299356247451"],["17821150767008682184064178997595192686169767452607882682143044398802152470850","23416466336255287603123093857467570947238795594519719133299690578171609171034"],["7796892793626062346076165466303698888653070227832694995590508299435412012091","25994529978058724445773266691389716478788180347775463952873544047179824136530"],["24962987856183227826902309522793432569158583948520492659009206597137596372866","14109055277177781452675414285362847369430660422028034352620184746291162099360"],["5027713784155218180024202579497447784614694512788810848009725495345698065453","3635165244755136548818439229790199982928979112761235602233542986802011365077"],["10745187970035394651031342393219439838866867519381590786419741237265901535074","3693196449417847362483217404002575551062103345493823767280384646694431804843"],["26778011201476608331377366179257186568183493839936450995654339710056237549565","12088740140187283733426804366544799460484409084124078615118554784448836767175"],["9128037245251269398858983832875943789904184689626009713980247178404762168130","24122265054324952601849680345613390884114507357116457522792300906856463323827"],["6213093178795715949530460518854738065285738345923466743493788078017915469647","3082730176873818430212843306865654991298905471054342023053252145527395197453"],["23569808823954763519239263398325703675696682490118841783555486272068967666028","26466572871664356982758315284928757163584158880744774532898769005426358969509"],["25693275429794014547668035723900097448243331376567030113482282258361828655294","26854428318823898752719463520541388123901876596920520734621686328686055268355"],["6944158068354166837881803537504442229917959532775631111952364946264756657845","22634588686514696690990874722360238027732961254338556263362288302141744769187"],["16451079933935258658015947660911687268460482143974277411155608128274143804601","24262926875732930970810407955042143967792611694217916588874261195934155490474"],["28774354343420109183489565837690507098578051904297984740808831548198340678520","28084517631209156370612286656680283157459651296200956815799095867037000578075"],["442666945529441436850819094955484657996750745364612043327488261778133680224","26080385271538893996704440355193247495370296122012584176219328025469408739836"],["17193263158846401860215368979749293456321323605543435843749689158308272848440","16883137678165429050740246547257745371430030648906904396854222849649290243911"],["12501462002717926182284198484735411499074124831754459796388884559464765623688","7264052801842052736712279740142749998027880009641063568680424630770488340464"],["7275844848646604501448280996165827944944840655633616088346138555777897216353","9880897905456147979928294366239552783794640675881702660322591829886827081427"],["19070629918657170079223659669600748737821713829750214104921219958739962066926","7862424004736131612073350455795452110954611253989231526567171820518883870662"],["17208005072236825068064161591378413506070192918863466777179036594006552300810","12467764473892443610820773316673825314410849819198718124537780350114972205930"],["4881106467502879643290612488296133078769926565065905877337325469620175107043","23956674043731947422314019783887453065931646296941610690259376682429625027927"],["12097707764176323976028822318201491926083630014309831785481245989227915660031","14967757109194122129121197579325872336804965861424145639210436041142065087570"],["10215759666043838392743770817699215584613376242843546895135943828008112390024","13961120111084439851933360739197874576194527436071070072388054815160202707017"],["2271985618513115255156079374416034060032360754836637346013377588652719075995","24721421730097761927699478140013959925166703358424014580434684410182774721653"],["13315781609921587488639960260423753607384530604426079852299602498180945054598","21009778822421922825554898195025333862458077268392102521910334967154560644230"],["12286701264779293670287979070984321223757521858806524579053075925678055224527","25299275745180719795018198387275003879796374535082271499456647891676977516379"],["16130813985788422378045490278310276302274994147599733877091052349572752326605","2351438147103225703056334604197197280368593581638784752041650771513793155128"],["16770000256702770752639325615636403806001510497613671397862060614029470380631","26724253301498558715932157287284828455480096219241803636227516081525397953713"],["1815317128774698906883412182171814433877666367220591730950161384053558524819","19051218124925356546434175882814305207334195996556971812085778090722750621609"],["21087635573579071712103991250798695378905795628985921784385340589116462773686","20928333173129930884095851103476123284350887959986384842753585236767979007613"],["17457859583458034434720266551773355253052973965669737675899710898670999318427","24800479711649598588685959063469913530535202143199413084853459222084885788352"],["4036458157380699859905467113105594994156653256577148495641036880102251348150","23765043203916765104020806886606028948898774136442210132660590725328527183195"],["26095871254593462274105673714121587606133505670109489821566537721358719273566","6400131421035481195256919201576855886184858378341658399325254996369396363390"],["7064162421086874943301621496029294157254143771552321711723019564961092992502","27357692372114685857213987009188610189912974353888163715144574256859532861104"],["19104947494275021462022046627028494550395408188308892557537594125035595140751","15423193163170607762068759216786351792053793838537136086885910741540222068654"],["1888177269937022161769158242547987947524336200787839661491615767717307321503","3273916420392576236699678167105110905717148349328551488789158621360176411260"],["15904579324851196109279075018854440117497359914947650547961340252726955592319","26780483641712475100388975087628236407407739293743191166806287792035125797349"],["18253599992846267909319946963501569259607210714846750147325296100059777233444","19461024516803065027418974656352524317842376223284318930685969660381574753085"],["15214143297417478003475511014537842667375882094899347668455808488967075019990","8680340073435528662326575152413929721359903819485010986071967547482214531483"],["14521491045977859993895164867923988393869232118142451481162823042544085931943","1575661383564712597737971743914330241382508491452886560053113284087947535805"],["25158349035390936492907504896628859455313179800208709288078905093465729931387","14508912315187219867959374514498663111910355141550651580728906434133644766075"],["26602119145303407038227055022563126289549331673933586024366038487471964001770","26489258241291124856402955790472060576535468907995839647694512071053164777957"],["12052282237619223820623237565795155791626008506170435915533473839952016601675","9948574977895452534001973009470506444370805842886999206081238550425082603132"],["18230122975136339678488090403822520047628685740716580589322165409456708537594","8358912743678761007501730805663999393813565088646859846657812920981577997466"],["13836868818717449853010777035962383253435793037611575092479586841398112307829","7766020734586305094690466232896829604843397129502328753673312693999596477034"],["20670689214367997097892023067710661083861003393452981059152080137248423936222","23705020202676870407139188671369099044685079660787637249668782072326686845040"],["20639673795842456047689438365349238657290592522097531410265510392829823611899","3118343692323457462038643237659545328820404763996296724116426700482537494092"],["23244003935394059930982694439570687135527712362001038541248589819078162482058","17097812909710767390786998904991718150171835803531403079075244827235594811662"],["14121173224030741285676778781634037807451077951618844294907209110547932077997","25905131760215483518913883686227208062551867495171245244824021611554342537433"],["18078715295643776136643791419421388821915257524151985159964862437606189034073","19554697307666269932106174416353207927488025705435140793810969235653858786972"],["14872531949903662707977035448610685853550169498766987798751159818129170158816","23751098655411252753889075424682093517777305233498704459859111318268559169837"],["4136584052249414856407478263117618557240692569417717723219175026346426764675","10120220145985449992129373309051232398115796081194190938011922184297981549983"],["17687276830198150629443778392765970412345402713328339042327261031653582234211","19275859358452070136897117451296507333225671529399969311167892651263852844852"],["3646734544600173298439948577368898492730004498422262753104944523446511139093","24711226661875003778798061746183086717033279788928400202778392200305821663355"],["23941075431136646793004478145227011549260674762286434267255949069690079245434","19272033452316339959373088493802251292174176967756417628085154987391382198856"],["16116589664953366050814669535677766206705263812556518877861694834635893615628","22719513667067866178788656851145467736187969142943205573285793091982196063188"],["26864154808238682320417573323589419423425281967802340768691311164870311390442","23411652623182183209636786723332746875432183456414008857293064075809839293954"],["5106778727559855023487320122973951225005992171349292220611993705058338744018","13778658099271916381931545798080075875761853874610911382665196987949177447055"],["12318340943658375060970306566313307850067146253704345081967020684015234459519","458758396267398508753110281310513862561869547836263153827333996307566779805"],["13455463737672097539505354480415059307150829500596714430816507588656600027870","22813556088683775774833681463007022159276247038252255152962186999802637818246"],["12335728682733265891686482126401563780126426541679248835782811148170784119300","23009873031552349624877537668288860489148708793391410886836073116613029810158"],["16018572140070780479042984826285106441911874476852461009247862052131119169253","23792101163810145264207468938476799576171301762268707065214334528853796797999"],["23583645339958093961448022650062940837582254158786598536558224192284446711260","18567708706089425634089948849092300228872062880982922312870037462792117957435"],["27093493745592891864638818991993462395053586598327178671185944298074455086330","16449277733661652948478524611678474010385341395630472387512097143570343385604"],["10869643611172652868728015278893732768540137028303376367782661799778059191915","1817998582723659091393795119442463169506856439781024442551942195985279063110"],["13567774634742836479766966541407082693351433224524869841874115534283502972961","27003440066083484052047318382607874024808516581734877324010032894022185019805"],["23794881931198671854888688919781251193817198651301963287200676145317368224936","2715785870988300673505865205844461665809053290559034648444273646370619933481"],["19702384574737242786250014244627798681790975006444613841782821991265532094915","21466057773100696674370220220387909062705644845070795397823535380126934009662"],["21203110594211226222472305698505933950770669638312870991727569566431231233766","17878287194113691159450990552865955471220656815412733852487457431734061258461"],["18175813997678411632633886789435874491323658471167272607452079520678847854334","26696163655061913297276667676347975559262772187421356149928900578253494212300"],["6359790234543624619546149199714128220374370294051104520416748143086607199526","6273998961130097367005688041719884012527470374738856472093010042623472360137"],["7060002549497678937033559214325833881512044656950391641421589929555832491748","24435296726271204372771614395499218939430596886354188170153952196467974300163"],["20268819190918421159087970340420762137309171198466093852320092627063037726915","1404977158171125680921350308067902849745963314605419209643085623093124344381"],["22098856786543046503355113688477773154708609363881415968547714558002191809114","2581566199964823051248315572060216608543180805681921566759655985711736886256"],["23679380834849699181994192649005452069298154766819605865353978073347065391475","17801441473598593955098637989867389151396618239018028540647167208337120849910"],["20500497703754989317498390424146747034588074993845054844338451972205082632837","18330238282839735203008467979069681759154749690934470102543539561126756111686"],["10966148341331100446288494767524894326081367119471124797214164351103420802740","5783409554892766956311018748743125521814445251875878143089363087521901781450"],["22671564280508913873545859454309303312851519900993068596093053380156939680579","125125863984336819918488534320613882789659607501143272486265524862281971037"],["15662909505550804416838104121544965589911320586459304682772884759076790521021","17385524017714458665120960066641297859385596173690828568957070141625114610499"],["22380608082459303361477693616401594722524678606322976306088526772695698688926","26831839963690186395708379123088672080894261412578604819098260356042566757705"],["38627980515062012488753615192516904669461312810534315473863696514329119447","2587716396024046597456008083235972962475421159241724661742711287923681536555"],["19898722398486986891782020449558288297396426418733580428454254034850226288984","28839583449005086472682910534726120968430471502146559240433203586174576855206"],["13818090633512979393586442894915744591387335438014101149364865038204459890091","1909990126564431005900418158420663049875346113846460313710895127455916084189"],["17608248988989618585740694182583673364365928952540351450516887833176688238008","24929106329211200849744237567869686178514609000308696968807412255318617473325"],["15970931812297666614030672133832975054497328124124165887726712327989389334933","1468977654843873951165074231402553141814301294615999779128768427260070984587"],["22332164872740992249350956876501403456716962247974530193168846295566443401037","6678037857121730219004393520484938664783057583118263499673220124139713324889"],["6733402749934657875844328133289785412209279256444777777728187453813339100758","10940128176044491527325061906099086962988175551303484838420552461793421048841"],["10894813582033236740145996645721892478699113654434993978886378424214497979811","27347406073598299041978679986858511452988672532373420014866717261667649859221"],["17934807995484773666138882489061796145030705252352968498266955824984891312084","28639163188265961602015077022878622191807868982854101966134249439267396991553"],["8796730645053626692422552916264752846717075744665419792598532322917443300613","15813796298909014924523043377333297751632063291985408699487106999189617780578"],["27202370524544304489121863533648706626525644043946513726267207320714170179228","13985572278246267593655553761889472460594627743547433181807432842324400369338"],["8397419756788409569359773498148251367429451199640024080341167877121571853525","376055335783597881620899934917299937084259381597834673536873896646082954203"],["6972617477150482683451084790602571711343432858684424847086953512759293251189","6805051526035564738446792940969709591243980862935274729236922651263554280968"],["15081061514125115079091722592436229108680550851375814900276998798707313410748","18315677744527512914950901776280712962203657622445883208789741635933590682758"],["832817210818773079048859916398196128700057401595657178948871984132829610222","15989376119836292413191147286679954518439127922751978770194650980249449594237"],["26244410578876510654360856812717859082536353348013253570680974123388517863121","21872786761871288776937503128188351367158532660282887970051715922697484824628"],["16259567296843986491137572623132551861596749668351837881238116764663913446599","23181990286615046249303625210884604256429466872935807962582342187891513607863"],["26191782323154791409352305688278850491522165751412617725245030959496811251096","12210349395411978275635368387440325975739037537151164678796924614878267760621"],["3883681230920250910524483439097986080525385865226259324746478528431697521048","5270608392551304007763250886497720788857972440417300535660610792757200255209"],["7748573716690541992190555663711256495160283593923723481477199566410284786795","8634416797834960509332095367757957146338719142541095485389403020517270856496"],["21832280332038663464597649030359032334616214887449045310564653858814382976919","15602321472454433086722334771182430010343141407432816163979993407090174562399"],["1378959935365449180932958067352216675341934472423709732001580162161106387402","18803919175770427398505862714373854383745944134197867972551497535610028509362"],["16947938923731459290924583982719921079086607641138088221053605460900201362792","10662291779220313572061180123322179557882926619846700035282314080898912172074"],["284669483070489220484685938752307814525119903195115627210801665211484823226","15787476190302693347974632707467913321855602491768336561711124245752360503183"],["14767522228929754543841248364310498655210026975821127244570782121879993993767","17123636023922446135126852499867222166679346690808831604988434034740384126961"],["21362916706229485112987283279881455910116877040519763053258266852406697661678","10544518292557941307551430720532423422860592609410265861319790470885310693285"],["28707711718688035888635679376287454419210077077024338413855639865323000870948","26766783759519659523158361939939229232815098447807499581169732964969210605020"],["4260548167755951933864795541580281181513982927977419319603528744639777742097","22646616819962598230641434868567039967439568929009193505337836388896219642813"],["1692276667827008031560978592416020379829950949504129405045083437600386262930","7770037406476699275820795284741427904512367045495108072108562713079431757994"],["27201092220642582341387138307259746997738994727206876579831383997844658614837","6935800477364085882592414917099563883562065743259629571041287465986590370778"],["8857601984086016894111199569427007125031491280847879967800760852257325519788","22475731149137841948915383149112279832559993448212221510297124904679328985165"],["27664812722013085702844949104380276196006940458978131530189761673135445590336","5122553983546911778184006513094743971566867037428754264832281982254752334563"],["24400555807114473617594938052556285025805197082717783530567135951694612095974","16351502234775532806982574753785109420522805773882935543284192379068255855535"],["20676079854753462759108982332735509512654311076080857638731238416851408088370","27970463996743766169698929790880569185254504341752709564925363621171207155334"],["7159984464443496060377455205348317677383121768379609690352214486492171647135","17018549171554971125250329718084364664885338635777381938916776575363103683242"],["10119918197644036017671566449940014910665842854438708467727070544870740651579","24813496763351625230673857734633202387553018799204816596838324158599573197358"],["17511800838737389256542117937451789742514333776620824977688269046675087701337","26859305654211030665000393202992746825858038865358966593003627324128365648771"],["4174115853124217974024369547611129955008540308333413183943495172425474511083","13169412511291412495934309244886624637666852761789811456627044677292034690276"],["23667013793880982008340933364430756139221135829365791444080386878940368307977","25330674920134328905203243303909966632547419414942696305868090168660313512211"],["27807550402869635022947195779054880850696385428610998818570789358830852514830","24864874470106429045047985500745138614376368827514574296169243926232908363654"],["25651340495687463369167004921665986302739391142632321933881014196400779672442","26318254536035689516959009608588531617615996756106266156938948917961587255362"],["20778593292548738861109387077901145836105118801384834534480261302632586341016","1720008492811900587261217889759309797716775890396586998377442549323611142448"],["8211045296338327015479108007023372211410421240059115631030456278085424656558","19101529671241008608368317919081022974182461770077355851607077403696603836148"],["12646670608618682462800864859449694111740024955324576337118239908485115210515","10622977776005868669101177845897163407869450801609901245736024081595930926954"],["19440214860059835528172742376453170448764953949733927831520112360432108303247","4599440828653228548236060078023996860890601902279818687130772702474254329816"],["12354695012334683431847860834846849450106422202727893030235180152018169725402","4234360819434219486661335124583182508920121763739576967342567795489781490269"],["17482035093146455035145081916520275237189381898610138537348627018685682352410","26276043950100566384074906901184902034667050896070320739646064016553924654308"],["954154880481144236597798082632246112654954065259001043947490866599505138542","19223332004882216676422565046360658640269060030582839809901807833452549136762"],["23455421182792084079793439368033608101752052772746647983308162652685517850493","22429255176192054009855858535271318266132148182168988290211141516915922088213"],["3568440984775773785109011574293350684118403590552746821894242798520217241092","22771479479811755681732177233270410170305464782380666732495721498401014254672"],["14148556667833949659299933684185516946597983719953911665507459704812384950499","6755019857616597874265007306359519700143685714611295355891238031819860795146"],["2466232626313284977341351216231699736521233144498689087032883250315818645485","27811569588935559482077359361148183824632343136731316490489364143495616787689"],["27481734562624777643987717882018188079543383956429976701759923391420345557686","5579721363421747905001735480541645559581331231960904089121800575064185855889"],["24813984058429287891057749309905794220070199058684672761096089656118860232673","27019127135851707305370820234347093029443645442707489302569583949727676521661"],["18171431652402665877515781168067717582618400836383605082080814556064249840521","27097483293037541935181929902319229420579620206996438576202784628031832417201"],["24338701963774657479991366121734208182163802567758697280672528596296646698679","17035157663689109761531809486567508544893028022911484821669688928549883713071"],["22506127738712107322556980661388435607935227973461008946381471513935630443547","1129982955786030706136681676380686293819804009954088729131933997719410855378"],["21338059886386643138201090380954038503530978067938975139033581735297577027858","1704089007603194343820283725772764971850374734798697307807152138319006308192"],["28342529150467450250341913059309201574500538052557630384403982809397005969743","1034901612426873420093650662166864882445636450550554801961529547667006384525"],["12576068018786762552926194253511573999007475987810911842983541026200374434330","16423837176589427655744780365414338603179031585539893763639429297456119240458"],["17661912778832321768535788824878647185087311518889486599964777173504411591077","8468728433843507345682048098693546020140300557540279560839443036119797224479"],["16492015467084497987614356883811002724240404873185182233171980800204064524476","301063136370747340504327645501562393110909676438079866169818154689824048733"],["17334944376810195257240119161301112479834277110039770474646985725709107122905","24870974908591528704015000953146548075042650035769512460147867493122587661058"],["21006627745921199017727919206327304355762142472891758910557753322602446044155","9263350418992089632833137232083394263152995478887997474358078636618165348487"],["14213368965521969473844953238051435383142399971538654218372073169640749837426","26088698697549873461675013558510312987401762078517636580021961044499075680115"],["10200916631952916843282306129335555756061478600047674022204162049592606369264","13285514332365803700946266664960471354409979012857487453545954300000514561370"],["22759593237060904412224977726571138543047947017038058392697737534024993186046","18731522097591054020791015241641116278346288513749264205423912841784311311963"],["18930023224799610601454049581908558101500767487893897408380205776675188059940","22151973948454492120466521561790377785545107503131546951324422058496119384322"],["106709677980965159341840299832334395718109540807595157056750193434045795733","1567924488640950741032331491085561594885608645986469871702046401332821430793"],["9776458603774965585753320961980864177914495049300560437048348882744942659941","21811835915178067971099267970679245973638021349698758516466008979975641281476"],["649210631459637985790977970471620768317487748628467112709651761147758972781","25294083523311335382611190903060392027915220409615600542587658276780454034609"],["8549168222692410246737080884488280572673898558402625355384199514465476712827","18203020065439420677395563033589178915613722191328296735344622200723575006158"],["11597020216758700454672914150483097512708758158544862980323662216695754436639","12657048332958662912169519577443408825139246852163918368017479482320820710547"],["6011937142743450674519128114796910811166409751629464922695942871989534365153","19240057504180125357409063954435897560894937747684072994916459369654466614036"],["2608891768524048098509785988463248497947740799496538839216419028358723858976","21780414918490721925198814701394577665534776099591866639123316629205180702514"],["1430653761364751169735617794992547092207098273853570408312175401307787988716","15184775811405292808092185906810154561940435963091918140956925447240576545343"],["6163097967501606152832633186073888579717208218604774135202884271828062906434","21295657974781830394272294679368766270745654840350081144834550863875081787219"],["12238783819858815514107341079472949546022147683301007511443989625120191157322","19430895448729807804594485187784458968720067375644151495441750635695227085327"],["5828874509906814213554717209240056848309375828274400654415762545480782272380","1369788197733427142014414623427614523209462837210091574574962200119515079621"],["13177036301151817076835072244804449115290034226359645321651610429524841996249","6484485640856255505191247600776945594385413029562095065500065152436575292543"],["7877623417307921622705012527322035984153695153595475163318001322346010111370","23781977563670920108576843271624941098167253950456203498713364609890057726061"],["7115806838475915400080610580127684372633470614567767346357265870887800115761","4473604805930014372087440306350052449527015364191365753842344652482573215949"],["23418458852146310220116135359869412094751695723694406104576634262212835965760","19681780883263588808979375615005322626047344531697629919009529058776380759510"],["4745908186677421988218898966505297037836647433135242591857732734271934628461","7985651361483695771465919557098019633640029086053974561318289571832820031590"],["26655797449710676346240965517839005224867843833080966378781705364288600819747","11061521409964449190183970003461829536099265629686147132410102173235838986602"],["26373694100748537005174988147884447739654296805231795027979431574348828461890","19623963665136255792755730004038926410995081269870056574777083372740630369828"],["6827559855137480146336489639536457368643588981129414667016022639841993865182","16384060720348981081670213380462964428778055487512841639440452341500861910136"],["10255828203249717841071021116885278126569983486789896207937493340407865647619","6894971967925320591354165269441536523789842273374179041643843571830758082375"],["7456980155573717880613121099991185974533328052105111994403452466769849031684","3298394090419930752310474890674256720535206236033804637369419921676784896841"],["17226240436572231336231762793483759850034537140776305772827302863336108589253","14454343909174978416226912281956480011803109141616500268439737682691355167427"],["24931987654461357854572572893360610466061599711840725123725941819327586026371","10970157127548417688151038152682273561138523466830427125755868054099348540928"],["10834386670516226182385734665083992647285707366531980009597692014316678157129","4671703362412866041851244473077546697675083126546511285761333050868580372971"],["22822787445408633662168239860183188184310215236398750576560392978593308062008","21973146764960657829139922791546106750673570869870677653159166220910803996738"],["19855750168408720774803444037531021632833685273517579201093042168698295540246","1609008411338735949369133603987559871900668733842575227945048458976532039984"],["911634649496227630261862492439923204260581655107394824617546752530658281023","21147026215777610360520141779747720596851328046634848372561310710071191417843"],["5054334648571431347224007807555064761987670543376249397691331743807336303841","3011559645595865354437010258079466348705237671070020139734930999807230475202"],["7088283194385901168711484643823285090705059481169949969611940763074752946978","9423253661692797935586240840922524930077664031413596949132430760331006215020"],["14679001490545906596145502624373743525790085225356589353277361649867035446546","20238398806332971412664856950449291349461145113594191028908977136246981809266"],["28714562426051384813662642504416047815122155760015216897259661504174310266208","26372955867531707950739770994918053513218348494603967437350139150619550264978"],["9400389372059451784796901317571040105700058116954892556897204071138954336345","12644581225013029117132041795714420545112311627850383327610670993495414203956"],["11093282398169646080117784421559932410244069420565370352081183088452282491663","9375025683027919975669526384034299419837017352423868596053736947392539365891"],["28150528172346654687474626313107886474601717991683002501576524266156752732926","7955855815465615962809913937348362782253362695206297808915500135065154810329"],["11557108302969443745197372131921382211513859478047373671857637012805530573953","9602959210681722169163358141286477413639365168515039124190677793398384317528"],["11418801169654988921371370802345199834748560838990636589079631521047814418452","1055955128363802814477890175232761464958379843957213736928605729015463952043"],["20463821612939547240308030791800305035002684966859061360051670297944953177407","9906488942431387493664001622350979328322574276027491641219040030750803665981"],["24936717199766666465301791532075070913538040043655087043737347277719914195855","1461532826345262499334981769708216516241694013171817170098865957626128808144"],["21536867561582442886270777131875286311846777780605492790380586888439050155544","2078140695992527500642929325462263108936299708038056459394648611350328603125"],["6230962609062820322316885442966197115812884745966302143822825054941341657507","4405201001524851090213939952078300982297387809258883075371873556507344784540"],["10118104818603701556371166503570783311887918755850181785506517122936402250735","15289019459616630760273603937787220521720659007703487058209885850629569281374"],["19327861416826925852223611392899863413206320116136523139415938831526455035917","28313733757654752831427671686523925329153462684919795659715311009973927372603"],["21908621589123454067114847302136173640170051536800178173457308822953982953025","21093065185423786028820331151576039414858885645777507860622333456748802198941"],["8790503693669892965824409068877006886219636037310255366637269121805716541038","20093540562611120966981214310237281319962777046532178133056096954492388063677"],["18051444691991032545636348451008569545527379726370111039186733752501993077824","18601826359196630611450893466254987768821922829765186730004828356934286372584"],["24037801814024643824492579100102412138146454645944077554410670017519894835130","3739452163643941739974335574012396179454291589912772961848274340753021246519"],["8462407542816397190383784786103266829001895082585827360152552568107304113676","2996873441837311357093608671783550925779400515531088302110702067386767716142"],["22990293118699411819995417506594631022994444260486687258060369044894610661385","6681671615146847219012891421525780710522120921797879206105224014924827094684"],["6924925933500026706677995328945780554720821722742268610963558748158251830063","7727460718971365746687946624825009900391497494256072664448397460754235994689"],["677764113635901969313905856636123471755477322728509921234806319175911808877","19775591749130414111578371131402009932738841315261994263983628360345982159356"],["4256456012907010310730929740965692109033507833660573176011622368667254280692","28226420982187784838981661047985667968696944636382955722524561157904915210149"],["3431219573953399871661777448481576238397697478793125955697866855430346160841","27465559934111168394005640523955453716700211294100918944994745939691154534504"],["6908696394380830416944550386561910118427623041508780546212782305211037926979","22160556581027605376285116340217296988678187008802673904071983007734547527203"],["25726893859206309155464205001873184604838476465456729730637704998940913779480","18156998885431525263750028580991997477020547231371923148644220643902571898742"],["20070338843570997203470263281615185926374138763656225821016922045882673835829","14675035111365237258159223469026765803960187581719271175020614495164816858683"],["15288336731111771500013404888277201684454636198426240280724681913437122264538","18925794371374803378263915555364114722798124798394668725374184979266371138246"],["792185886726510550534830148031659558147600699247494966151943306942608223627","14540326003652742587359652251337135024658594114814223582381044058777182224429"],["2042032377480220100495628549700026452538356134160581060309610180918348670375","24405979847413338829001427183879347892909920968237633527338772735749334411939"],["17533201820042775623097451169387329229203862123426485075035310176859672166683","27357171779785753727213152872881792516796865089566993125764109157672392176459"],["16422758788573559020599825550680282403688940471722162755411859698163532065044","12132207687118507227773296913474542980387337886801525966185544092084781363923"],["1697562612481269866824068141276906352955278300044940347099088386249719583772","13489943702391926421519682184617055244243684061895987249913929564735525497860"],["19249028776049760736059382139817553989513935532018309029021358720794229376856","14814340376423162510446688349909029806408336557416982294550504207603270539140"],["14300789486715144659143579155502030600431457544077648766825353352085813613150","24934641703998458639756934050112414107700144403940475761290236446315291405539"],["1804072700959721456304880114079357260780356591335028697783077037821195490704","27788562341405345847753223971039136344717120633185657452841694671555940994137"],["860539825689066108505120708445038985234239359096060055367424935481469237285","3415679761902873722825200425984649242809906350547074468311430435392589401616"],["9633289554735903968888490789104248429016193985968215915118938345522458719943","24615789548338149665288006984933137364932115447688161878822350878366823176921"],["5791660733328562833416964909618478708986853186304696140092886923931132231816","3710403545132683709256819381909210796504922462896582636639578438689318735826"],["20348090024982486564712278114819072750886083597753921494638109592998351158226","22102635034703062401070232200698189181921126911051311291098829908161749420224"],["27119126818525627329565672817649859680281645025962344745922475111368440945206","26948476765475591912534804901993764474473815661714497888805948728745478759200"],["8487701502699572434098576470592370413234506407745969305089232420730985552502","25095388390470114070428170350810855355192958791488195723359715135426794974961"],["17281439875107942558030503593528211760272604006056635985025679565741671292139","5889863917040353087747417771275503642471973668796029637573597243734889598215"],["11355639577813213688225314866006831320410673777316928835544370065717610195923","17718559946648094740759125985542139703160827176113256969505834509587162186013"],["19921692260285811222706268745775119017246570495266983398730325051019295301551","19629854990447788920065421383581443009270916720524845518993354035799555174019"],["5094539388015983235178448226821794420208190997340485969054442177372210307298","14721886149713371936839049878776825542481446331082543838900914293985908747220"],["28207064703670675575765862763067026912735723834437561032062656721387869939889","18608490550338801019427072635502774849551237059416403824640543564884472612732"],["20003869233484288384949031931769098590205436008281959291263299233735243204683","26913369099114241055637032843118136067795872181954342426655642803712420170948"],["8392600295065340582162638744678948692299932555130516056274793583125154571322","16714417613130728313768746123629129617004562796306827501816306544689131954480"],["28853965731681186186554718414119709770829019019288042264682351433894104324670","23635770391425174204743377483806816483542742071474656528905762336251549030559"],["26805981764567982674348396315478877246270647384964536019552440751895854987125","22537774960221618671599885457329693321807864773872074470908000674563584221977"],["8914279621310230758394800258972822529158286660030722567266031021166427236217","9192717635025943756815725566780504453277547233836902564559986532894953179514"],["17996893731529691693775758314006376645869368050854654491756769371998947573288","26989612458043068576917567998890521937212067413688680258641092402152166693254"],["11613762250084552285183451378269097804721529174543686954737529652614715084449","2155345577138196871128093982920887962263611627377541971345405435166718957308"],["13454326614953335546969104214926377896284171456091287003380424255699533237994","8453025696081235677993704990591579950632998664131332986945193858181758644347"],["3650105523021585591945239637389406216022899135834195830457831077294872307773","23906642980885966632850717991579498425685548091655497777674521675411103889983"],["16639731895074991207763915813262817867474916823003897660131993290466784681827","18673026925857209118715895336641470033407341815678310246874131476331107755753"],["3043456755075400126379936617638379592206073492608882390492105046134977087415","13014845334811769925022870328272988412612192597308784569739095473499865991799"],["6841567071467715082234365070204657941390066115667148416597559159394637365687","4167007805406150278031400841098571079873923683339831173183662318121923367707"],["25247367257047194609341513670930629905780405530713565393360796057993360608841","22318435939422570871456663644306043704022168084227256500381868505931925517091"],["26783098779243721558867676161624268631926244972531251307595291020309015911314","2328458396470926321491477969637595552137563156854280624390510933466899363838"],["25546075625783549445438437510652343883445573074895435020810482259569418629440","13107343726623542428223798541113799690811936776110552536089724940245998966250"],["13659106639448667511498770579923783182721787743142077625870253077527744225905","5207537121380223616273760004869677204883259281245872948270688119543528090622"],["21996513977230733101338235734951643885835684058382775491381842007140738474593","4775303181111235438274652924834670888135866395117103326571269851670016961479"],["11945785093093577128497441101143084234714612722087797364327560454635807104900","3212544578821298221995000152600330238753958934889876932016428726829581562441"],["20148798008138075969595539840141762825109291158260529417637163727765239163087","481215891593740618355147896081763355003071809325284688952752084063384182243"],["3047610994185834835504928606106276173906627456302435907706199275046329396962","18781650543203805885195914732862339267410250540350551440019019535585271815860"],["19438460152820161213106990847862902623131464530550033912759183016030952640504","19096735680345074885767110359886831209519732103555977592676945392662245406934"],["25097676435155427216167643595582024955776337126231934138806898978587869001620","8928773679579614217292389538190186751305321554647406686713730002570535562678"],["12092279871525123882799660831321150868820850701033415214863117684485163981058","8169541503318298719636448890415870256903831402802458998777068716416655172923"],["11741100677511782273380434129175942819220286272921267139127869134398209245801","6263751097755066708364697537036028184777672305017210798457290934610106041957"],["10594386324679536884346989214524883711713185589753483741072751510684244134474","9965397527619772178490149372516174121041196955366926809562192766642306128321"],["21436284191611419724561581024413917070865105202607937071257127981690863819310","28926763885214179877542218546074814998696213085195289615997363022113159301332"],["3780414889349609137475646470536225447148892939429410411005944941130447749262","11282378357378191867162232855852332242449397267610107000294578260817345332336"],["6040794791925546715689452781859010713075076983806081553807298186074807113465","6735224527712715365805647689145872160247105411378502885495162592569287887187"],["653139039632248008519765797980810100353816123597456651711267631739641220755","386292584572716716555233540629848388947712725298368958184833526607695390170"],["3392686898095943394662867413449706295626812793692716858114707014696599414567","24032003758378545014955235887988450636293726873434169625870438887280610136130"],["20174816334802775349897954675957416618409769062028454193746959045770051140794","7305207977508839839726909044247783470198080158327645708348525659237956033945"],["28564193231224296556346963786439220830120753158301808868291435078916086004638","22459983949504929735249438411024254504829740793747009441077064692536556547405"],["19971907059764581880758332982631564143430748899458489981201326548161362181090","26148667462908477756754562684948025738398360633485808296047837280916562401427"],["3152025363743528432812216855249516432441387633085796922996028176611393692795","14425622632499420382527102338198040395850460407532838655160169042642905157897"],["21797450456205051846063383408920613534698387043982063179366137945008181379266","7737292648088862574408640602905595934330944049276772907199891729893675586104"],["7397318659455398361750013358457189408153975414370761477135987181919853326309","16486942613562553577429513070982300459675654018494693932871302145569566615575"],["13665166891150200088751365763221416719902065647447263295108199868144571691154","25286556441179185004490170911102557489320290921245989984078021722997579259287"],["19966939098899084522519046249450662937800035374692854417944031615972989757108","21819805364705912148380488635060869901896371160768090746350340435434668062016"],["11304210598873040374677220619039224134148084940795550364437038112100294627149","17001238262727192496092537569477952931325239555653985823124685235297264042264"],["8892334562372425200716081248467458349295069748745271196379295319377451361286","1062947879999950730243707204113462892367543178663115779742679912237270134457"],["20558177712453819271943460720800657818831290609920350448807785243693856499320","9877061383737652805860866866878347488864494949422018677935792176424945971421"],["7374650742047777399362962893064099178071498595972585993959913117914662586616","18111316608783275254152809930302802657026831540061828247527936694774283040949"],["24336689537620126870967962620695618901417550517843433218230781451561879119263","8164959331743496763918807263806732966279468458446019933513218710773717219610"],["18220730506816121023604616885904953675626054987448038558680217957770640857786","3708177054990200805412468005147029698185954349089262718065516535997750082873"],["27310731390333920806400017906983575704425587982795480348065885364967022986106","21043156664064085943540961451868717373632391534993252227228818335614360292276"],["3774707510722614056435902686414340599608052318904013056070107054567542220804","7181690290228558625861731197023780074164894378476638573850149232516482788965"],["28323364651673030931826366977301681280464243781028067695940132500040096129775","20833534653250628337052925076264216462057859764702630012911969239755232402938"],["22670918232945228860843903049865746669703519138536897675518560160271901286258","9028889471200520578682157658423768746057020813014160621582357915651687454400"],["10672955763195104728989096843516365304059544307826364406950526566216008051095","20759917590937455248898065061089025560809587451043193888074244492933781470333"],["13041472468053994803060665557274645032825416861602038599600279782818272941005","9962846135968856788997116597994334600250657789364368554253914473046894285433"],["19708680120621188947468224889108243446196003947070178549869398973180113584068","14785148333324819114871704280152153162184589916914306607030488984913759139120"],["8289109199884837345920397001968331429218804768381330095191331445269086461722","19898584911529255521385331274780158775938278515440903648664537895755986050966"],["17052932723017081972208554898661179084962457357259950998025031692375546515354","23846752232071042963189107137102696921155427286644305632673036306475287742666"],["14795481273383025719936614227629825002952470997386731073581420273974576974079","6311246972816971927305026657481043635282357974099139678182318020285249720322"],["22893650991317868586408034285345056601142028169089398152182455532143668456992","2333542269968965255712336337782128491896666556736511388297078885587645005781"],["11057269281693099445038000608096188784012536650015794012231719333258779094679","25369822629183679787308543104994799809130766098344073475017633515433936961696"],["13304927888213016044586975302118539740923768813635777383316819413896200927453","16711251994779273731403646061510684025764539426066127421076741075658601324008"],["10580537380022108134395003678139801957614412487957583451721797976852510155701","21924915147816286859403269730623718845657743395152578425847430411135148746994"],["27914542722612911634682992433395588919699043332078369998874305853389477151922","8589089136881887362170970979505869924331235440994733059881977080291690559192"],["6776864470142381727414034346345063221895419607353909217501746385379979160161","2268274297827750708053113376699088782398056501835023942522571919084710444896"],["4889871601269723034149878109792462319029360660106225161380762074488743347731","8532827667495794310899467194532086784942178754118535463134519439967311445930"],["11704053917225900145462259937941234604582781455511641718368629620570700651970","27995259050383659737430440510544711444615320709005420278664998913053182398510"],["8405055207044819755595750067525599477796472335335821111264686127070659321906","23801397962087411266420637238670711126467389848879915048747727513492641006485"],["4681984965090405835246925107919897357878099404040068666131986704724688910599","14749874498599319819729173036640928015128251109508292345272859356266027505374"],["8180021523070492593620131346285829215890453900552106494016646687263596053935","8884430289288808077145797367510686696262130425629417990864880273328878619346"],["12720860554793414916080816507687862652058736461290273132183812270250828223967","5320702776131134722201654380950316878898941553903069550037875547649499579515"],["22737358117427339633464053392435962925471108555032649056109634313419140956143","9261158595467919614230973593501309162072288131198269710220727541444406814377"],["6250101174106351500245214053194402677698307675271221455293328062148135002053","12417311906768968930762828451038202051033402597652686813621453667357631855558"],["15709426080829575021483790200379165995024719217842422069567009720773401356540","13256902486852010602765070200686027418265119873967960108321196208422448544092"],["13290411911214482385286292342646114260668569799014128287963661624245984657724","10270533260612041425548465288249760148328035430143236145776386687757785211880"],["8234846677004937566841632805924418085247481626688508327911869004605728564295","7913890130233061108913951503032989617312498867463778993564550010792379094809"],["20246642798168012576311401704622055084856738555498358716167059589179296493203","17679198708047826076510217532428857343085262377616896591546137365152803827297"],["1788070224060634053590834236470778898628483928959763113871643745207923292247","20033169985986474198183759571746698184961978177780252719349554963117060736139"],["10746933561554131473080923314517648045643998808433591161835656680194020006517","10674563117000014979891295154788797646650247214282679761793395386308884784215"],["19946927325952625338288344761321805523003591766565921390878799149698786674595","19295499311702816063258122307028655702159097489683793909413071963030853533679"],["14987740259371248427297606075799757832871672013567776569592288238306598358922","21595455433479844005312137640426497122223853229135842092546891405215505094214"],["16986845805185184741261156236202046091881781041132536044530082353529360451627","2732607475038142303163888521686088522716896686196980820274128395723980127865"],["7651056926343775827897113585191074065721364992520831050895081189051623313316","21869129209325798798711423634612133376191639477533368406937991974041805403021"],["3220677607779786972740353943266568532011678288210048219015109312350192489709","11879702276331567668159701881633510625177206889416786481684110932337743202818"],["9232310968880400993761934613253522984912108056279229914790498752056116535131","8773663999674606318912773482611027265738926303560734021124187292552914389979"],["21504724252714314831583024806327769172966024737959562162987984501900262285912","21933525743427416566479008786174603201514889305794804308591590576921000049673"],["7041108974523367653071586728704808564716280181207789504157681607566067986517","28325899551867052829613613350918746956580342532270175743236248817630378082297"],["7844886876532087284425519677911002536533251110463626691923049058838304941088","26420796047905863768633172168465561697225862501769506260324005668490508685765"],["3106728989380080184436032920688802004737283098349955164516305783250715648628","27134942491936092558774323479825083080304742275186308693671881092455767550174"],["2686689496808483908038337834257225994047238664900470788221123302343329037165","3299701631782003464637693405811174552212693644314610020319579275315346091198"],["18575729421685195883251803478197080228553019484265428754683116401491643356901","3300736196982514060466059118285011939543496616097611697951479278549503833502"],["21850938429721639747222097967652432950126457544609412862403038847638875719722","11101866499702248241339798513256854322331879173606058045629493944279277684646"],["8610699151029391682502765802841461249803222693340903822678393620602285171774","13991205128867945986608720417384697051647122371869894674709840904456968099031"],["23411399114542906823213618891692037211927529917605431402362888417714166684279","25279409846717155043442678401068935462980794560994907653548213373680107532676"],["27876238448128953821162883664958560903877703607648892230940584447554412223736","3445515489601749080660023177454789057626893010410933435158610549140431930562"],["12597147313663848079969425364311440863703062656402001481245779510912366003064","21065014211242773062576800241802190265922652723275492953159375374653557712133"],["6216561464342412641380284462758798872208700752972071017488092859130430712412","2689811864295179435746603989803321404250817460654325889713917250431737688249"],["26347547536453804056900766749453291182473519187574523870035223576532854768303","20408984989380889365147433481868315229765808369071024370714294405051813808108"],["19591625232318311767124453445295395949721520180487544083085732384749943443758","12799092698432307077200175184999487882962491097230543328035907140115621028884"],["21045186395735226921123158489616239626970409978714317611842808617927719363608","26197857153625246165587213492865233755930689861257498837663180567284510114816"],["27230798099670027116274009275585238443196642125631229960118885366193956755427","2090462910783573691409177273261047794325237153461681627804099590155593489494"],["22364864883991590383922370257705136469706039156597204457346181453403479590478","16484423292202470247928925651142317061165119189176129335140435534715177862978"],["19811269311813869264857883270211266526637034333265827179906358648986451331756","3324468513607611953344977488793321351108125270002959523655437435421330232939"],["8654315748601164898736775140494314115847918382422657657632500104479254497904","15129188284723019145427792771284070595422733196964153243783204183472473233970"],["8824188587202532766500487688851401669249622872085970504015137875784987712421","17084393417973247738390949052819386107041567566025689129466488487174424932050"],["279296070652449210993995615452780183283312966346173432990465121235565133317","20334730211379226805407781306796172100284881052201045823000247965672705223701"],["21298770891177393551539849375310786534797822145585384462863782540407377467931","12304048740757686222898809683040996377820645980568868985396352828380465708025"],["12997560025901196979102556240963392229123218129292951749599403869441085998627","7385045870862808510167785459753914410074220652294986415689607171992233086116"],["10816482737972869250575007908883013185876688256616387700632563656652116394484","6699617312224344253300581690742654272809433094959292697361432336477932750743"],["25605451479242733574336087968904472965767401337749468523344725588834717510052","17402559029203287673234195276158441493367827875499022734544310722220637159702"],["8193986818465234819481130269212581722459725099597803645195379943592658939329","18697892078917205522718967282983426167339752616812553583804840424566703328988"],["24139199480955155947106954717006131121024179966480431805903138767305946253495","23541854580819456250463701389079566948244244688764331468237701049266478926983"],["16972439581166406075076920930686289707199948268013576707808763927555388965935","24940316152520617965325984139076195669265009852686960153624725892912975799423"],["6910124421196980736616305483407606723311303862958967862022109087106786584120","27361009339836176508882803437755738668516188460216779064946746120884931659746"],["2836556296279959632280748002345924104133336435699301124029799378205861174642","27166386577892770253388452846094073099272975276687384291931201613981588084220"],["13948081203446601636839583144183153890135923577039519984485236879410164351802","28186764616789825518508556362860834840901803225963476615267919813336195483787"],["11450431053544201638871659282093349995647833734772404314190431855600750883331","5741449686725225595778913242732927414506675756834911156471218228201129689755"],["25631795985057047367304074751815803655763161943261601338714467188162800979594","9814540180885564079091581328952886237470626632294751397045116844439157215869"],["9566707544574177283046650661321524598161837619247528314298170144881001451963","2129321064515873885309591189179521291231167651496365338416083114076886104707"],["4142625445658992462840665364310358938261743519304074313688950052308826825101","6319621662811627500070722243381913725336280373774915066920164627892834141712"],["18784773705843789903252780470272204046897172474942153739456285111066606362150","26226594868808475163485196773499498652991885248030455268939670991824626284553"],["8490764832155158278130937396577905543215950828431409780058880097469624562065","20053397984526077623135753491236490326222138770479807041729506392202282129794"],["122330775296381438308274098301397895917710963265346953196860083595749338256","9664235622956416337913720794123931540267810050596501822881571744631128796752"],["10596178681146064102693052732225481407543563615797657912786324614875918379496","6780805482325268394563382354958489227008123854243383836143077945411478572553"],["10179856988631460166909934342688741236893111067611212210661225917642367643131","23078823525470354903759489130015373407158993314881193098314526220691415881581"],["16134320915804367670650844513937624514296550615036952659060340810111798209361","20966634622040539678190235684178867402094133501976605810535004407791165560728"],["12073075750225860313382272105690774330784667283471752406624665047924922171735","21594522113772750325828969728969300035640908363042572990356462590934533628051"],["12651875002806582554162810112237456443912851185151045320080382864026134811284","3432880222681681391872612633685727393456547920024722716960173129101936292443"],["3773397563985952749098720633114150161257321361947266287509599863092137618706","20652997439488343122208952205352311256030653499121267654476529976629348612699"],["28810509035826295965399401115817339214673404548052491272809366759728150434277","17353420070760982334810559885509765376657751804106794472851854669502344914295"],["861262391497977853751658234417349768754654725499163528732832773062584729959","17411450294791690209532157175238253890387797444923632357656906489193660454771"],["23691111929364461062513603020986913723763403214355536632957822019760951105185","6696058765827153677976425636180864610850484475352990597028120891803045400740"],["10101823742520265776752587908293531519792466953798137123827083795015827434826","12727157921416510650533204669638596215886032942279929908073081444923220261896"],["1450854043700489786921733985079660177771367723409925532763480987773667435217","15202521973694296104576464266253347569868374461856019048234240086420722728445"],["18523956831908424245940911481033464004613970150748542913892415445724190339185","5474378393658711657734032608397588580744482156289349327325579822454695230038"],["9271310204814442997500759253286144617406240253927869870229067904534262068217","696974637582691889565020610076813165069520731527772607390610069826975997296"],["6435802438553096963790252413476314924193636648516545819327225487980508369278","11416515599117165654258896596877233097246788981501346751341808198465955605489"],["14508373116739652064198416796535351669116871564355757936483089335534253331604","27710549745736889100679433748481554486749395941314680331921617412533463492665"],["24128285522005151644708652672862032910896233889618464358935377011991430718953","2454497312688532926088682444727988037727523539618202949741348427327159093640"],["21587981952564082507180189051540399110478707098184020350859234378234566440341","12140208581711339874826992021937391695320957351201693951051067672452839524519"],["13188737753806682321942037541977209062087338587198203643374417047425320375634","80332238020702580106410512133036208068478999051360711644116380388914229992"],["15086121482642919592148563534250809020213689708501729876573273297682941535591","189199160188027410898666452499803545403130754479494242253786028625341736644"],["7293508580340604520956758378804966914552867649877679988946068355525072438849","12884857817050937123713927960959069956476252129309096703657198820366964527470"],["10008913531519119999590542790730429761717276776557009793966906281327318511212","10137067423270733730348247502852190592557607508209965302269765346590535333529"],["21247327475572379646797221529085257023035269624472177351791492982103985186297","23011210244077726542563826304441308592896818713279993195804880815582349365759"],["12857116607728625743643779841493803798848709463398253184678548283045828032975","18486020478808354077449622755846730630503864586675212777535933529000689330519"],["14142935206516240464420963117737123670876948772564440142789189580204616697564","14272614826689779687828451053518085486867395413121239989163597654227944436021"],["27705022831410665198494080462548653920516102958206294834955987598283977438064","7720211398202684834201700612158882288328389001235903002278135140629154734775"],["18930943186430722708693604720367077065133442894572720320867496856529963726220","10809508684431945128981732454535223180599395514952570013037492959875545509100"],["18392124082545699247013611351962711486684917157551779024435701251513795838762","1334192277054112626742114875062704908055063924978562741752477763244426768594"],["17763149739477231501549021852645237961465557406157316294150773735558364906128","5102099641419599834692829627319960283162908618761468274548008576868745061589"],["17813359992078361286568249055868371367183723371969644474403806817449462229916","26888906623567592517690453632400879233907391944935366772816037447349940246727"],["15989161048596974178015660184571920741505392132069144405905349312233833845805","28270052242265007613875164077633743588865640709088683508992782540703179178716"],["18612654324704211586903086500920730602822862235860453841374171665812535746259","28700454482817041642849613648371128441981938890468013709717391203597054753320"],["27143996427993388091789475053712136051301624468500671770646587696150030185422","358449819391228436753676251060932854475289090413710705061451865964533503056"],["22049778053228061937520031050481711165418613334891568606893699163888615301806","18340074753826160183307400288198806376328126209283102099085423766506607465509"],["13230450046846875946428047923355905241003232261271064814415521598550287132236","6243804557669853395838634673137988692946069878862942636405739101984864894744"],["24396473323236525373209279433567859491008157248679867047659781117713148281767","7611389838778616703234400269017732601286848551611606125371936694275908747940"],["7408841927767712585001072277955017517259499727504802188312155989766208911376","12456280691108647796406124234962444099389625746240864990803702597100206512174"],["12188065314515996224502509785961466205957071482544925739202146733346890463150","367881995900812684152456899337944551453635889007309345682154372778611222563"],["10796550741652574884961003100704181807859766174931109430247149713790768825087","9693377089776792023502737129351674190340923352292665252944256028049873544344"],["497862336486928320260187695879425514556593819076058014524158036692495871113","17651678122583175321323050692035760289059245688748875192577278489337996932660"],["12046070561698872818862069114006142390048783854179820453451673182643874567544","14809780157645426037861234575042449533103468497090137110957621369542418458714"],["14437835294579978838981618350717649427577956617674629663122667912166183356058","1633589073199954468447688682374941406823423025767917020411076312983314631138"],["12487795062645457495870360678768279491448638962883986816276862802982000410501","6812401531259972910052450806961378754657694405728416582503837389654245095918"],["17991148668132680381082278379482828527732114962969003200701568321294171355770","10202479835250997305694658311500953433235715795719043001077771879405480921447"],["5252991044459935083182388054853474851131122866427498485880740599859727099037","5010354312102288785331159706878223403075521705900812270546802677351703209803"],["18855431181924478041047189083660042465837176549566241902231711856467373398359","23398103640204611393096751732177617953655610090530691052424600954418913383360"],["5910955918676844836595956789965807591325227871439138944609341083082826807894","8142060921041357439392597680151360567412009054189061520972027904169496743419"],["3392548781825478224332143498036603831379230843660248232256974425104449628915","24642725669141746084306268490909181557503628672150462904163127570157900942445"],["19342445066148143628443282103006869876939545475073079747142304423879723392204","6734219353333065676285317750060056092493741798162214849617198989297398414965"],["7062700238235609907891840330883434568174239311756715742438360726250253982946","26795825638869896233498578959542754052829240077003218369270791813286387335678"],["6902668284783543569507005844221871053414627459215787738604631195272318236472","14132007972639089598260779535939664829009328997394681257553522961647705022355"],["20760256425908164024692768016330538412751441667137390172324368744682537536131","11849200717566418478986057078447688610944865224159044990106002358933922281460"],["14451792084965739607471962383490555997477699574659589210468181353866238436577","24762409204305237975587826525184903089101497350370699575130639391251411351347"],["28123760734683199219328023968032116439093661422708167297928939773939739959141","12502081049706727124851357558051053249471129710755039952745848013234660769593"],["18689332129857819627329283416402321215544111192043958100092415069995951649691","25138903123086537576505932341927021973014834694566983445551278918894544182873"],["1837698314988668502489493508041911319816037130365260601889040154003412247153","24882386198675080411803276892394950222366763684644658309829487476105829458597"],["7215497897369177313044672441177134203996604709079654050548701166783194810767","9398912473637871722018118289841088838052344848124057570873505037553590652493"],["20168084204647122352401692098864550755245789725300981320124227204494206898328","26919318764330778706984435662260360074059021377649100589669319665942077244252"],["13095140975302184587520369317329311432854278997149820286704618278841167957942","22964745208628748129785134829934811055395625006590880031878283470175852661285"],["1312464844954245768201182280986030482733593831824423930336590242060183596164","16342221950737885817873529636551407209270888322952778065460921423911650199616"],["1777290589252015985667913862356278754461407523196782689522919906101400840808","6778540788356430303613762545887815319305994462511482834853018092857872090395"],["565625124077720646526482042298889332981597368402554036717448008407218033215","12073082766864140163245226088531674440086222292620213139099082278912705242954"],["17817898001450667759759900636559842601287704774198188827390167194882637310402","26601741344179226830827317583055926212785209299345005010513871181289725603680"],["3906201901955416896098987046038014456151488483685974950781753490523245879281","3799840326686015924981471692007571647548664124157281663097165929895137721820"],["3608845735437494172572009364515520698055200779537180364724891652628283000724","7339818084226009084223414463332617084700587683636665483240143802754130609923"],["6126491193024280020461447287836652923045471691154269443759914523385792637790","10233432106701152973860612122704769087988944897199989672710915205022779685755"],["18531992430017537102849828248495707974911080218878425424506210974710097821391","6409092579784035994384069396967630210719328602277354069809426979832492396435"],["12912886974506380361406833694616396480260362676727831312490650887493785530186","9409548345396353126728369623812431782366063542317575583710092463365615480607"],["17772632074070951096429075941656054552495400762414581440028719784985620013663","719691098941507887304151552262895492877404285162017442797015510856213861544"],["21730722277043239690768497258272457701416687058148649521366695850478489817903","22030852435156531408855038127649821323862633394779169039630152339889111614134"],["13429534147123698349829100417747861727168641388014501215988960851032873271483","11962449247676469754188089262790364809028523026419905389505044968988068987382"],["3366733308308763657028359263983853796136726354790012632293746877897302386964","304187799545361427258015942810781057463351749210636084659293019469333391183"],["837201455810368512281930599820063138178519698352244275482082240557586807178","21762352706239490462442341529240662373731637303002869804157655660048318897791"],["5479672619652092589115613761667662853843781893663011896135526382616280828672","17002596691483627423196318197028780405943211166876259390962514187771462748822"],["18378975340338954018351361381757518693733845315906738719214688568931362310861","28510566939829054291225773450508067898024082869490890975916040932577762594640"],["11856726512549699197830587001051633171883064191177775811155870273142064448303","3463437551626777007821001563689362764444520803938472059886399877262551577883"],["4394980613643871631605535114181084145267990132489701854625323951299705970859","17514399359863604541047464809144502494739920664158671237454994493512819877356"],["27364934238161934136631370844271716737342877581639810892882151807179569597517","2844475750396390751278779502147267078184891257522831369306467382513288817700"],["26525672512532438687881157081763781160581448074500474441266544799540322127766","6120579330577061892163460027047536101923138980203428903820744539407260546595"],["14173212193441099307776963422559499762516020653297311370088106256819827914668","6743680532378977470399283895334022635013367593205753859912279292245757091901"],["17551125003280174703680785909160544089663926604270605413044595317917295253263","26972779148447535300863122128507111469003325079873219339568063015509634133967"],["27941087569514982609866287175187736872749362569570000081859165152344286353261","20982705409421160128856391881476126349707757501090180612368029093613811335012"],["714417248015023506492335556207652137126968597076511076608242529543623830887","7545492632437579228563155505090332624870871147457281348966553805528651357423"],["19104549468567709193276539931503373609647841437940075063610528080317970882915","5662076201004291641085143643044121104151302973091653523151221726234459923539"],["513105112026800959819231494270193032870047335891829451513424609207914209780","4903336270195447880322178410844800246610982657016910889118245134970532315753"],["21725112695471080884160061600597520961572366058535903086739297457017449867999","8380911750020795698998878256923822994608140526286993401062380555246834362247"],["5540125634651335089943075910972683352370061593935859943008742555154989008370","11892051496691370510264622488027710156267750752187890135281265848908605706367"],["10873334181093266404260717509272541657739771741813293557373790183254233918249","22778093601236486442942222911374165635296657321461909216056449275151967378011"],["17605955146592969629929769137787021068399725988822475073661709205308452377812","17724673976764151559222655910986486514292828561204075090609616139885506854604"],["3885145481923219512921742146841603130704573240285951436482801604783548189037","1937969466556339681517442778016449385449964216819231461874975895559735086779"],["21000191134769098760460919312670977632458798227120500129797424398159756479752","12838454544157397946590062735311034677943363249916390980397414074388002833966"],["16087041501745198426053052004434332568255195317295661583696203534630083692370","15223463371117147813179798395193175763129133880704474773948051427955115169504"],["18891712580340192280982942896538756106590207217614540981861465793054694415393","25678427341562846956441787654754521755210504949977869214756272216091254492833"],["26030739963631884687755867591552615365708843301479172615235996397202374595798","25990410426731448583868937695121683864073421669361687735446187514358500626465"],["23538487737711746542751212272755974420749260975857946608417417077342340705880","13787044654843835681307808482153361810885320015983720329297060717580078680962"],["1784096156563858200826301804752863098482153795837305101304458693653870017621","22207593407162048638687114703940826249526056055213674429952912856059646475867"],["25243637457562436515286545880416625150580596813201709386428081876814271161069","28544738560542905723199982128348160390119953668411250434641413531923336426830"],["15807225671853556488754196815478304489178084469993024953293865870590068665638","4989779490525683871563732276654802877562961699352815263958511465011139968236"],["5926808327783619387208142015085431048495742169487583422911410787046993285063","3773787653227752700457464667693619824050404506691722224742179371322192630115"],["2915363837322354465675658243376043618451650029100911641294199900082946552560","22402234459010687095803560846224694857943461984457678768316773258252170734121"],["900941737713090378005553486196253012129552093822542230379223474949345764649","10063227684021981699568995062276187157439644589089592548139961290735860655131"],["14709402048375579979977832607607584677617925284980350347144459102334418667016","13303594338455960450860817931458856707001513675508192057573992122615830233235"],["18274757498348723455795271584863497150515953554179986546801057291631230380501","25052710842418060508482787113879505820779825984493449159911156209173319185645"],["5059882980607208646434934826051296660012168285796055869678029744072425368839","2067103770557490016272274645116406005470233614610977656257159802237971691026"],["16425446353446198835037027544158677944432506866632099306565744278880656945417","24286484344860937701254977085960678060320359025753616927770373337158524313640"],["17367644209609358840810670448153983675380544915859783635127643504025000440232","27097664842321264925671074527595704275691098233127800252987392504173819462168"],["28439539197925755488761647510208180154192150725375146694606324797789045591555","22645020492122584932179881022452243299911632257832724056177761002620316263434"],["4730411398450919062828719453885583663662547147583328260611823878505710716570","25177109344797317152462803613501426575013068083636636034862092647442990504606"],["8299277119479557262909099054681741054338439300014624739850910295930610037722","5226816348598534254027143916563213219449496640828315886545465987730520654103"],["5203672084262398676572151480118433997385129021836530487837886589547855556870","19178411784151678581359663437384867982895574314293971359139210667666371337152"],["10780116282219344241957292491610403926500936414463121095562651250838363782991","21552078519309313187792645667420748789711352874838890605800909443891698440397"],["28033176996470708372704636680709470350248584116402877692392196745776186882652","23589950615049331592845912009967820657468973039329906186501353311381995438808"],["19931251705045556619306851442599405275413371285181211945133196814999592699827","7444918486757258204131247608394603824566969053555946604681795633468689282683"],["18973344513397624500638976518773940066099333494515259723250153676698789754323","28182666003974640725343568755818002233985828376306080106591489276910337830814"],["4213173866472923727611761543507394835504911034162766554665452800411056170280","15907871853289767757471228649632873091082077591646663535168998166575401495602"],["14933550256190255813300104943684615264459448510377465026646767406480762000624","13869495057252789286925837896937089701101646832382050679395148256743465216949"],["28470493522800729478455377796057639926779368695891505725224235339555978335209","18668331960773195465839788121293201142217414258655473858888871896939394518548"],["4169995956700653848972780928968325134030478477683030191434973530735687777247","11675401487835018727271779517995167130405926439174920923967932378068282908311"],["15024590420509147218102883333045820570747149107287479422456511137022537026243","10882190343236696926150758172862323448066177963456220805498202120930443405937"],["21412302656032551868869236015315188071952722873145811773229271579436505019241","6759369430734116658042929048425575595981887891064512761535888070976129438774"],["25880145309439322980588612795263527717252281180900750554947858302296325856270","27048984204385340289589887445809575583074462748585932597296534187385763932864"],["10884294371816738071941516481574623712723516136732309944939438383444689758159","27574468087004312523606712704663562528296800107637878991731762488178249067010"],["22662962944915654953050527745347140734718203005664123195249194287943267957414","21152656243810032717504838832729426722654990384608605306134327959713465298779"],["20052503629741152330864491162133458369159245900057298544494553503840902088603","28667387872542626272205220146223434841366053151874532435787782415592233878655"],["19074800740840347369577920130800983274659177354087657661835080756077454011688","13360348057746717902546146874097076688017600551989971532681947591549791771721"],["6348122398526437009197716544721628224423406505977214043803451569979487500967","19327535517286114389275411631429596142709848272696908868992633300183136999706"],["8710550536024715866198993565411451743737353088351876158459237189854971148763","25218915162547563106782516608479058340612323134671028837860376148533299163851"],["6315691476196493498956809201393211605281537791828633946519079114154881219931","4598313820662171132736015533671348875128553316764478727349772538973835555310"],["9128749062309801262319785202894595924622186676448386247906990840990244524419","25605536221585335180293167877320671589747361630522391552769014115393121935454"],["11073600553708857800291451087230194186887452583472397127407971509571869430691","25027803175404741270698888952249716741562682163528644491760384793573369615933"],["20057205224877820016458976493531875718229307725326524634432995058504225950408","7566784058341801544625611911636034643708511431853907140870387534306903084616"],["3634465866282401617759764946556340152940645367341637207427539755908310892555","4241560599348316316377083524848729320820228723217259046634009495371434982292"],["641402747873229217783455752128746075519101620329565198395918398520786014239","27265232639265978396400621572122702827769667015288053160096607472078524481486"],["28182575104832788308584122042338884988274756325996888931277501128535575565435","17156382621414098628829379997564174702397667847447107140871340671004679647257"],["8266260258340649861918708534296793555363165401012458378950918640629462596659","9828505697997797772617923539627733663979336698681522867276675801995235342323"],["27753011484908234099713046585380051180660149710599838368505041532548994639587","2065190075313918150116136580066049386315739072127917210423429438840275358439"],["9753625825819530024033121120458569926720724318402867267888583339821374982305","1804727313989036558681505557018845561908470434288896975128174910034700777314"],["2348196281773369518552929769808810721607351689070623487179942803658918167938","5905018877463306313740969926326755744555578573680868424687641500127568223593"],["16927106587679020806569436872895530370686183753960321248350767741720431146686","15989987918929864920704231362221570837429871190882662531669727429325167317673"],["4545426331257561881436976949953638644077500535369645890218086462573198469767","19302348750241087221990145241044595932343144586665882521240599762049171713573"],["5095000890137502119833873954207808423267057140554326065747202950653566722057","15366027415181517211754369213788330191676292357210880449820845825329944046432"],["14425222624761226740118754842036754633578178862080181159352368940684497210156","12937862865386629450878221133129537647374651823382324307180049750533595827281"],["17328002495858352561093287259774127514629627607151790681890749911511496459691","8982755249484016270157774985658969259807418951831958241014836817039161878021"],["24581038959804444000187264652410112506129330552023262727866439083991758141611","19489864046967086060605724252398230669950161808229213686189043625746913480690"],["22106563302945184696305824539525642452251040825839483362566846691523377088768","8429948801302788275178232929214376522708172191171374153723999304262943397404"],["13739685583937289128211972024330250918818913094297897237234535846337054702787","12923521279093143109277959507426923017769000212817597061550194524915712363637"],["9643879845836317073076182912249892744708800778386024718644483149253752176642","5614269250595628461677098750576340918308516865989121508148212100419630733905"],["15648097887984730428534135170495009581852109437235212054593189804232683545097","1046895632792654173610504687216746794694355667869006936521878514622626083129"],["19496654671400749799003905530334732896798637603288170877269497311153341878743","18034870682861427730326509229182206462415900646953818153337560959092800346512"],["7590623556344335013062330113801335409318853404497337575540730062513712444213","538281163838908896175860982240543357723424146881993130085103068456386576783"],["8043562927882903218221120049456406624944836186804649573021226640858185441583","17806965731970382153621197442513320781087745665487264114634608855012673725667"],["18090996037156298563782112570843674334094679909764713506311397106120711567515","3541129897629911313614946092581280031308171013903025212703192607815591390175"],["5941874528663934270294927474684996687105800701921114766506057657812543873176","13335550186868490422227561752099311777305356467694790479641185091797975475926"],["5629983455741896071187279088542736984493045494364071019493777617937688519873","26227325490677395056407808209921967602247773304283647966352399037478322460828"],["24241324758966708593418583902874834300731457602057196697996761952999730348130","8639034183109992683673601825199269274357721515452839546517188739404794365176"],["22627799870157637447629928646356062465923991143692610047565135280357854668057","4527389657595644485799548548652984037950877513402100984038894108146425957998"],["15213369615914087995730704941385671377591851775869609521413236084371837687311","25528382566011602114148335256308735467908163045283869345922183639673740314914"],["26791581143505070276878540612558401950910305961396072603655205588526127960726","769503272747529936692880813257341727348288005785273076424596488230343947490"],["26892086641463829263025062570588672444382429111387541764933651410671840572622","4256449943514916677045591704013679318373140327767183860544626505004256928920"],["23056218921333174000577795867560559631273265375017905235570136796575145176140","13085570141794942364553625186350832094263066055501850251128733716934052888555"],["6401088038291586697038147873532924274231117506138093410913987014428453429863","19677981802131183070020787498760148800225021933465026021764155005600945003368"],["12570809736345365218000093603875372430753195842934058210694953601787660352131","8220272142589729696335518675548499983831863641781052029940638082849937756318"],["5605601002511790126983218309027999403220311884943648544029887717425078884277","5244752207249457377525803045123714530053359270416520017824044915706176744185"],["7826943038055933062281578681781748953262531020398087604793263683141494016002","28522151464470087533025044833364581148841730441141501043222994502937275271045"],["1301882902042114131767143615609669996700953043543195055444586641176199359518","4707932388556794191303566545894306807716903413057223441909644549294610566476"],["94884440376070280235026428325736259172860333338230863799396128303316184310","13976057567931104946622439717778809999770007553669673061240172254334518884785"],["4736246888304127482490488624770972417384735686558643919649568293190685892163","12082747227328681401882065411792396789023533647237677841090717253034235288085"],["9404884713248399419139352296811389499935172871815414950833558178610319358690","9872626830226191147561830366863648492225802855113423622614629691855813745584"],["6025671363483812948419638109256336561083775875876650655396119651472845369236","22564800424473788823122389365129206330984419006327166052957489606344019105805"],["1917142430797195167298509313822879355462984056217379463400257720007893956553","23203554815897486785063990215104087688851561474960763725202685168661250601604"],["8477503982257113052215313211970447063031911979305104685709897486599689785597","14654215590585440784075086969724603420571960242835407041254126034291794656485"],["19496643989937483375807761474314768928472445061155731191251193437830791926679","6631989758065768479134371678476249817200434677524825448117897786551928786519"],["25167043333080888684022596363428945457659584791176150533537998268353497667181","7778121085606863304692099112120633058958405809986562431835357465365849499540"],["11092810210308809276720625131399333889702674039739656438728887252333730540807","13161912939717272437391107653576038313533400222604871798854405208957459617127"],["3377559639995643650317087822771151190034693154102352461088662666965156287213","26754434944802835405987393497006422469805313097712901912128954318226891819264"],["7264211424861797184562714530985224086183805818330697851574392684241675681819","9790139010943431684292189152246231673256221876340081582981897114305358690791"],["27460267889121211609442284910423124302558616097945094722738843356935638570023","25449206456997384953766559774998724698005895672151017866206329155217783708872"],["18406985659586593790150272679575141556257629401629978101748068327062193587120","579371165295008889254592144291014170369267229656368530997299667100929150655"],["26505024726085691752148630571054309986275889931630977203009928548751828358631","11529898659759723757024733486348106582800237139579944205190940635751513519054"],["3110496719553015762237821045382161285521879084775652606258568838409186243546","2036080867638145761123602159637847472340187703091460532413846522187321640142"],["6601273026578775993746246996980026335902983185109389370047549588493564731488","11494638759874403358603571839362924816374459195739646916063541689188659598570"],["9317932041125928747293822381907209104232210121500897116709519534866624158426","4936895096489495350982021830196518084103159019795818237445697944946544771298"],["23872848480924920558766938107585549482854494992600452354275172134293886796745","16617251607541729164405332127795120049240274564996602819319499126032800050855"],["28568685103338325628905375401572969066191670415362961497196355323547314862819","20509903499582465235737516247204421766041021107770106056819757553498004284577"],["10590947909864790971493756307678846249973100544722912360721853248764660012375","27498031608391476829900193868560536704453255310663532082156195566198634345374"],["28609077077521576113352211842420811836934202514772827843664758827319314793384","28035380223351259602953787671120285647356204802568409020906542030538586114600"],["21425976670573025534693142022983332530614231181648980330585466327734532865480","12865196651489570208964855916283842470928688319824478642468695157592573297015"],["14575293928944245673412903139325756295567436187956496651198825297817656502394","22187066420362994138572627581240015535423602517209437209315469040540987252563"],["17942830639484767258368347621928970210040012492925687811962458576688330853445","3881986416178405175054844602939062642562442112231257395072184342438786082653"],["21912831344944678630313003080364510412651189285692762288050306435927091641572","14944114277160015089593927580678564629902611932037796201389342444843107376510"],["27092094411477446962171330672021866196543639145081961104443077321997641068105","5898587718475211907976184037632199206183405139915452968222681348822716930671"],["7574308431752227421827414630396415647964785869524439292922574363680051140665","3782636342558992694951196571770910181914661015901219958193413507793735032781"],["13564076879718194583553273089817764459624833347341289780144883831205589679206","6671066149865939416140070172360789600212912827679553264780218209163445037799"],["4844491323618185607515547309611693917679047133277427655297926080637450163577","19998393241686402792108730166934031768455562553483336869943964673082137279340"],["23694072869078267855032211437851507861608334314464057639460524864282907117447","7606612903454893235163942028443330809341010440438327110901817034554707847387"],["8904000837631126463402618210531571500992167848720102162688531817951347653585","22132169224129568553154147085662857216096573229511596730099725313753803963587"],["1295323079340007354217866935639257315839270600700371464494163156308543415692","24789620897844762315330836431610887645548245341797819903792912407839502408652"],["3005019734999388120060407771715171914070493382896164852464735671542967903791","19687745021940255201158093093185206713237975332476825395767963481414713276515"],["7441234535034637424396407233463302741176353491012294397100534991315716042939","10422464756828183629922731715570705358768855028402413650599303544257525390565"],["9799008328942570600978867527804950236599495670798660617313309381157329410961","17535929650974194841258880270326372888373338939716867353985000702138432703438"],["330043391395731861914019625737238628434433578933669299152965131034430165350","28640989788591139201010827509449565792539239682248330564367541144045741326907"],["19272185444539188058394378268901450050532371578844468338598011294077167815899","16336518877370039578436886251407604877797080311682569276146732368622775471383"],["5483299664321287063311325390701384871637081745147744884719177820060102289934","20421034285715996971244678348981069885745393174745538070169263988209551292449"],["9798640033782572441311629972749684557835000823552302183775869063734755485009","11406821648821109633471701410936037179094423335272956672623729631431513111166"],["13822648676860264152137184066518479863426242327713589657417951178378607653557","21435949365000028439496972207039781150792405351368708594574910115867573595775"],["17467662171542208445958753658385209429550014128247777455917775969119958818739","20654392222350429784836406659557893775573773121382512804133122008036041954669"],["26980079821297599777409988157012284322232116738453014688751809234762088952331","28741292896404269060995538104374499880297002877664962890166379270476604212631"],["15889924041756764562906218418262819875339650550958502148234546204362247157858","7124630170591629167420319345547753352429505247739822583933049481294798206026"],["414404965985460968779348593718393800577567988981253461943498968118483944105","3750481099652108364583212388215583311654454400491184360768458367669591325310"],["10014259715099623269817301207985612668084064723907969991642069911349307359714","24053843718338574619680205018548934461273579239457197404442149001211255900130"],["5288701474250538092139060259133077527885777563727313789997114839799308960463","23995068790855357756765851078145752899210137578162895670191504298292731534222"],["19192033214439697431331882923893664082797769882142320081993002988315862152165","27122894669859766410542784944183015586877105385842274439450450947360879205899"],["27663208645550349198653313121906241459721449859807804713924851881838242419873","13159406551251584656237162989824426748088489768317427238379432072175619643551"],["24615274553617758854589879287338674602439922920891791619589056650658267271556","10108735344060172793659134204295732469498163277151395497104147535561806803801"],["21499326949594059910971408195688035151391358001803753221971806626557546362104","20597717264931803430632172939463519234442026052911258590556109412037076368656"],["15739044764213715430318208908496940510733008562671982538439559457596749320720","10718801874548014644048035464765578642400011564543652588562758413017500785738"],["5365810619023152143643276330664552907903249611080679269787683588499625378385","24578271299653667680241973590119494108031642124047555697869499887936834159601"],["6523664160199506001571831723626471736687707409463383212823880836328876881804","7950629433786363207434617855823707988978971482568883841720225019529820965421"],["6742609145392771240807797015589629777104243188456247215042518382673005925714","26704901013522265375057557113372842206655594454518613902376060174017746413392"],["13102917909576022397302246915656878307935404769676491919396243840897067757723","11264853805787067872899398778712499398973994451350831868008366559768916704763"],["12084387851584549493968312257855562874046789198843045900910052423385935706630","19585119643267574293765320738261678657051817765766074132494075206171058951447"],["13003775708813073210157494022685365714090029228349585219131677249045050259740","9053608941277167976463033854072548313960463098826806149260156074021896901487"],["10412090209910004893213446211313109387615922627386834594941449809461247223937","27068225708898519347684696643763395874940249696090366530755007335320110176831"],["11994611713706386415899381369118654727373646993351398913449059008219095364808","3379130066697736694168561099216776551214219834031776712057527219297562357607"],["16422836314331658688780609381922709756698913220007052544061474274452175034710","17144597067625487567820762508498561658756032134312048228146224798600907243862"],["12151036372871240344689484122881575820414953656168993222593356407132606577074","18299931863901194875419025322346087845258610372939745306004848321691200943150"],["26210790350536806539039928867755792695722559329590402078364575154680831243555","6022485246145616653384665754113129075621178179461139358350140556820421706163"],["12988289078413156801554092871918596202925810152881322625074391249550308380155","14788056006816988442232721374740909951850864052529076523091043195952964261834"],["16425665112077910317339013762540093066142257017343427069070617219677673442812","71509703765045206045377609220366457239381032751644156796032824614634263383"],["1996306137228364388221453031056386115618598400330809280080317768016949528270","23383655804027537713660101401431711179625895285536898738366616165051363362522"],["8716920710035320175833653634339141341537508050215354719464291165356645292442","5534069988824542400837320420860969840627379890971003088182131551424992182334"],["9881929988445789217897797068184276965948593088918156870407583510205638636250","27271933451080534502582825047986016832561087279927051518805643817516809855213"],["12837313038079888128249632361586463162302274321391352995150366208551603075927","22936152385085776327229296156876256556783867212539511489271331031619563350103"],["18511940609159842141867574669598310209612823108338790484045962745592689530704","25908956177760556843484636167100636191481583465975184281639555522711735878415"],["14507001780614029835117320755504067954749411624148519197728563554834805949304","11904578585787699473398507341138503427860235357192781790578289839388758753241"],["16353354398683115981346230769720177339977653767597988359751324151230843237161","6916156355649597548655390715876571442052263109333407424633064612066452226245"],["25106311644148426225394159665083692015656290642535261580217868779274147583849","15718182291568995849810427769662091629612730723776667653000896350995843132295"],["9247829408143506400255177588309134338831244768120128711260470172579998305894","8011660297446862298578988712659976783425248369867377941638771095366311882413"],["21359746252048477013554159879552279960739785778480478502567238955627868066652","635637314279854353798646487554190248792029318987060173513476138406774352487"],["4197327148653687559341054137723076683666141893105418696525280757529247412458","2252068492228563566600486570602375529273525804646820633778273386362002151841"],["2491236861347352150637493232194840806205326646549618355138008595647320942945","3727695737877522838318040407088745340427300060802102243470433311935869957522"],["27728504605025608393579067740564732539107322623898144110409001829594667522416","26935182765970012355258951744928706842104219281057082669870684983903595688659"],["19531079140875479137259842755619701502017304898575687035981052331973519040477","3716244567168860840946294669539416635308305408973258106517938697492529102039"],["4621524217160074323885780428759199184328360545429619080858364380560751473477","6502669122734302186520978682705336239548428533685026256639031018384682947958"],["21745077736551350491453147480510775630807683732341323481967878479007828625270","8831379710851564550018323718968561654746271353583101762851445381566270809746"],["18450760991641778574481804034186133548490127642778209209942027691376118525905","5253052780592357111622092067835323117477836917594229658064447042547110088429"],["10225903477541748655608635863106158181776005981324951942251111605504298410753","6447294537402398542097567775142973377525547373988543636530537374973070168699"],["28862349822383960530672165535669572896405226855219784326807423412645664424618","5240106090875421136060386479365800903606920014238326173265220613035560424601"],["1484686678017925212473031116539265854579868316092678100815872345302249858989","19833402963146320091538386002223202434310557693528362861505814356835264540942"],["869748841816127928609408521337522581318507731860743003118021100369683072061","16884134202350608486832256362581341463101895002564353114353562368306989135718"],["10945391169584951987516953874273715313264208025366793228364671583462559517815","5107607457459295564242510128399521934926361934518818258590303687278843701869"],["18913368821715861075906205603941783139124868882298573733176143590327371602172","21600007057915908905474507355509641839449721936020462603754613714074541771786"],["18490156544939866945402890386890402835313185827377680911717400725343215642822","8137509558825459672127638674902941098405139684122000817036720008581317835893"],["21136501006018743836234381995004708535154887646319732321191646826061114416486","24953056497849440363194097920290461188579182747468638481258584872707203227608"],["6125826985145728537642147347486829225078704313551968846528046058515739712473","4262242102517619485631683717653361821256864932631475707357585535592709051728"],["22080741451813505832472122748140496521048960016933849932338643692897872047258","3545623168025132526194512547251197034446721183417359153056074513557382022531"],["23417640966087059459947375837478287902580004182576597216487571144267195524857","24850848854397782392096181167765030981729607511236940162379691892883377502673"],["6869862654652188544363010516391671849896636071757571523630306920048576123691","26348321053145236799329904065095860388346446667610361306653433460285003722214"],["4458084268348126317997212083145757275402330322226768976716980780410436221828","24037953538683869505548292691105518069311734041020972377945228049657066771142"],["11271948077218852690532417330348333466741605046291591550475796918473832112640","27399654195868704329161754245475378854145292330675894831053977321883961681249"],["9133744407358432262820191765872939262241489378479131826826185534804382710522","6435400788277999605542954453414764220720906631278872530698882539981868181898"],["20908807828953868200380924269167306997301270011019122059724318633057663562134","26000934818741640072933725671239720079071735391472081337902010642783073772510"],["16534336636255898447705282856780876019242520469433963669985004771426941787331","4167667155873873136312558065700641061859847685972980379114619898838429140320"],["9327245857559141908030974888261741807108465788523884785801165347743047743173","14410954045151546548184479442927336440996447816683107061079042754176785732374"],["3490312939148563023787021825162767138537142039612968393618569799858590327667","27969420038476554220908899785593100035213153367500669991872847842291699172357"],["6740295937445674980003092225600659564253021591713730181446191540379647352010","18875954348860391569112466296936712753398033017041987174079817775891513030207"],["10623936432873049711606861436572239234342322295256987591748603163954742223697","18882474256470945864545090738784673196904416721651017681477240461804872314911"],["25933158958198542489628228570243224297210912926238662231350312724981037516739","7608164904936408539183414854941218843159786132020083122876461275734624021129"],["22339159667908331871116672080520987035280875291943101690728522564903550057968","22184875772102800349070299808828992749525360882112531129517853849653967610433"],["21701013297403861149017541864755340949188905051608378573459599305589689339633","7538859032748004555002056949923809500839434745743083421246863514859038004621"],["20159599542920927789534235591294021646512959336586394124207619002055501326994","13427646060788327515476726596716438794969699266761319515984248804163516885060"],["27989489613255322858285320508162346172915194238213833787962761392333502355106","11510572890174475205913454720888829366874845113694915203959723375498876395755"],["3461848635098922048885287255414356514188254467736774226468598751169702909560","21898657011040796879570645382556505848470859866933917754422658813046948142577"],["22194489373505749382001946397450953842530606296058826635068130973104652017351","24318396720687673202324854239017097650421417440595721594187572359646873499814"],["17705502424381816423798437353253463073569042795534290270087714804849953705216","15747684942878976712229554875094830855206257945603484020873561290757575929656"],["3205708373202343330942585434092769820586688187746035891469863869701633429027","9116589058603051307668364597481425877165010516568366489334513650731648489962"],["15962083060762316225661142420654840474529681726197293283332590917743036229040","3128519141158868700100605408270832837799431646963614749578864406310630778618"],["10251682408387496353912474256705983075239919558713727801235898351637296474808","20835470757764598609625077576641129539676044394319501979903927394137127399915"],["13912004514411779042816157388587339994558483825159390747106063377259677668682","19076398050679002080179380597423840477107361303442569682471797350194261507739"],["27903976435836705530450342680669545387521043905533314037641681485953118478850","24541737003566434765548579863803585561461750874218940484699347991178634507111"],["5556430270966649366381830884703901695909704114405885889990783243996878267490","18130764257848177156933883684122484514029338844354978112405230792758220266996"],["26474277021570140090912544725334142912227695288354915350493072608326602789688","3862195946888302825075938273681902237049825290719937741527909897288119373928"],["16763438024313278034744564857090866047333877235289479616702668903361028324975","7888462221584079146342153907318293728316532866001149116344320711693771739117"],["28680714403090475271240984864418995528026577491486389124959926637473542665323","20502646718295780446427902768570424019370849047617990808727983458320979739457"],["4924057850415978728160760624912933691017301305925843776006075267628562818642","21545621930384794328084649218573247778954196185599826265413509092369468114221"],["19768638077893262038957425036499371189069714954972307814245379512792805945573","22418397835278733646792627840006869385497044886438539091898969359670169081867"],["21855902259122949990449160449933686095214234923765562665905673968429818690089","3871560638746994230105388489796430776590689034097730092299996377340678361040"],["720215371808976540008311901937654934381218284011886604789663024140100891029","12648585939851718580810941790162222752832043365352498121506232654464278227251"],["13762748115433442486527648788474506852162143324638625987908262635293928919725","16658108392701087967126023222306462766818413899369880392296379987470758084403"],["16448892540759869111590730043642672829946370416646272514414146523590642527468","8715300833722463884300142377997018111763377616093820777114232461309529007214"],["8826360356389124829841501323854006605721381281383526374724467595012068223206","24434457707200456616616169806853341290714855770558592704263398699130854940157"],["22148583107421740412006320505151998117892551610496372871736775666442841342619","25188882459847281206686536834929378676299949203180084659879042257709537209869"],["13821345388736709079369799119686161803905250107125494120915616735750330971976","19718395235295243210642389882078031585804759789413314380472351218471793652574"],["20754636403019719154912070470109937300438736751397357023075152913568805828673","10339050118052515330349725822259811376970403912773135718958502671283587532081"],["1673850551009528187054502103944491203968554663035651220593152821214146791188","22024316148302814029934150352756661417770902295124605023739825575733307759463"],["2420326561674006249450973023892132002595212515168075849364451169426192796517","23856557929928342667175206640694798690938831697504750003446489890721260113216"],["4903296161881177614279598941845527925034623792307161785869278581586113236979","26443515157636067438373353781509314533383394983319770460638216360083046695800"],["26240527252464372610671127101314639424622422466205172591333562466023357012324","14760004894269976905787713600914733922751433979213556889101135724326608227764"],["14710925092210595816776451140659569668758417175351869763521413657074282073430","3645514908756854365758880410283430749069351127244902384693439737050597504068"],["13007242293635227949610263103031645272657128598153565659020502196126229423348","11747053818961476979062470970178150406991893387864543728747786483346011376009"],["9272522583103847326856547781948933690514944539237859698198223528757666520165","25793767377925574023302898491222444151080382733788391522341012272816093124357"],["7215158413863157606471654404473875514872860889915269223103676619191301464802","4151918255364472620775396807786220283427199917309188565492362251693632401298"],["4662609627856900605238248901297688380553552257165052675358299719795358748146","1421761679380222542687225269147476799832319210936364898237392642937936999487"],["16287675806402037182684206631226172618371010399130080335772811395290392643399","16954702234652373494239397519085713561266873923251277825208689281648301305080"],["9115019925538847558774183864457824561373327768870525800529058411507107083438","27945448845250131824314314723133150229598202977384313547372903290655641072680"],["25671415601849867412769232580774772758501335973579371671102056390640176456475","3394145465048888225176979139445868751803848697895546801091548983288798404508"],["26382195759879829405899054526986705208379697779882945535520164328155793107570","15625902443825594667771403808836742029828507677601751491173939825081068408949"],["21075049829764973590381243526652825225454835902474686330727174245872731771341","22164105790308690121691952441390827687019997602064668071815506140030818730003"],["7711917546991011636863284507772986139291054343412348696131778267646673045019","23682891786774499835029105692922571729911506158727073488520591429767118819197"],["9119646766171965245016956328138765984394929412770080182521746285373135879476","10495945527279452792678596549403663631989891641708163885329660591066641344482"],["3121329756540017600434659702507100001768929634913815074204974167230912492631","2199866121710321855230847284465700213735439252656654309599083263476323919754"],["11257470712710315676647893691290175354442546879760287099335604915732044514987","12344996829443612609678856749005764330934379171371248110258070506512420827737"],["4778949644729251446225918875620339650484511853947519664029558818323845257817","5273644572729882813233186146444836331117478261833405821068578476104206667907"],["7800454876507486424354227218306838503537569311679775452409909911117253159719","28668230343097780902895639149836239600941633879269242821835239945378238816879"],["11443850099046308060482934773845698952733339509595418981451762309786281095614","14139013881649479665407993679297776786380858599634397609746086939956271559556"],["8410189111607375809114333472903329966053534211310846219379331015757884835902","23220168767874328862718315342641644191826240128508917276672455866968615643066"],["22442242385991194769030850979247539622007007879518779589449353225230106710496","22073464655850740758907436162438803072124756582106268316562729570608294165225"],["26585280905713636296415156542936402621841609563980323066451570326011472533974","24023310442887133959226148312866692321258362578290060114137452355144356466876"],["10217818618533712290762812864507375734919774192810895725254965092507103086577","7676799868367142338227850286550482809619480858043140977355010064863876840422"],["21834114680885781524324694635243969265947896159821715279577956851585953495228","5563298445702232464104516109463585490866989502631351026565358593778630391308"],["27788843904586304774655236057328919697527468935630753433293723208471568223149","7757725067589650971518111766057666419815583240348151059335578367907609990926"],["1619137387723576623614620896881737157795177289058377071044650031784271409465","6888443482509188827900130611414145132016248374086756742966497881019860487418"],["8966939993742862158438779059968240639069930692421021411912138810165728686836","26328911436343754975272170293089560819034301626628098603002636775420668124450"],["27479592172466529859457477639427994514115285628631598254547164744767659372198","4069226408475981621157562332885928627524005269028905002999221075715161703558"],["11097235284936641611810316140045796536975338769468018012792911739981544458500","18790619592368941902214958443500752402394024881224567611282681613887856983156"],["15859688500601559274344949451743167188364033333526290946427492209913219312010","20038147406357826881472486250121777162799073822298282675682414944940581293617"],["13977507943805312375658163036960572101993760745338683379846787829775820671883","25118230043783085339669333355002105943156818118095485275031325582338665652576"],["5504626260609222170752748496339646678634684186697578733358714642775973223164","4651582313514463504006059265155793071505948629356146774252238590087431859803"],["25431295030624212400950796230606937611901534842618716918188517835031740565800","13771436086845679325036510386982236092798935140602223317601607439023875945961"],["2001596940732829381240774377061855831232459972870690396731088704580675209335","19200057963350738497961052803156997316067667426284843860962042262301349407087"],["28243185043376738297536538866360364281788605725997469858001371012981042102574","370986586056786566089949362673814471290454060337051889376200716595207240093"],["27018640051627113851970995435106586500278559063992841232876205014328117423601","15178845380464801759338773273634540089786147481550231582759754569006445526380"],["20060805236388122948999107230554960329231456060088953895139480903346280340794","10129942890365937101834645263519218069418514636248189044194433623141556798072"],["20665404301737874214531303941036466923058277935168345428453493026567893398994","10756814178995551655364910350810696542955480647326079444698485617142608019851"],["13311357110301352314646262362761369552503735403796553211478664667350964098960","12857499022807723443096381328450453633211956140477983136291197958266922450631"],["9703347944779467601910733499614672620458656575422092798810828115580031115235","9059539363622732437907017166406687702331945469707265883235127733515208780986"],["10097381411554490507911804427748463587811758529385130516012703551869877814285","10790013647200345567642933754433521730188335672434498158932539721635229039755"],["22495521212301561700194211306712581404404735058542361071483924067395505313609","17400209705669832126662412412140769868491517585570859240422830237281600770620"],["19872610883108902807916344721054942032740365594642526839621838399819434914464","25974099312654114901993617336914616845697157589795482433737169589877125905498"],["13451965443622573474498768696353263899992339673933731645807193804130400309443","21557901004556516363608032910101812893609839283509408875454455828575868887119"],["13709870794675520215063279120955481644262623320207206238375279361281379380324","3538361477606671373414968357938544985647252588933815700775262920670926267912"],["22114860641256113051686251230154734134980533252477672534427993312631443440409","22696760153750810238523036593817690300582679041909578353737616973790948082667"],["22246760411815741418831949412946900210745576896225020228304779435056092969419","145645657698381164229502597959933720226082805357717998298468318358739824538"],["19504219302063268955175407279562414036888102678308456040593187298366123584797","16451574195780019093221662011491627569314617712821172049957547893694655269864"],["16048266645651264402004397860423287394836223568442026581755597406443540926839","10869665949712605201010042741961797198544069660073673798593900578231498333238"],["28633614706627507853418591625679915689854716794884444424928889587316161958217","12150755109944609219648905147142180421094659206124606880510029277243103928152"],["8640214563476851051103649369115248845266641908066948272526357429214827856754","15520687910334932553748742910304129177306654171330860254306072946601131935411"],["15389820223877438005795972724680633796435408743895023886800445577101179798777","7108099422544564329800356824385072072123991638267246282404466069972828267954"],["17432888039862594729075005972447461659265882431254075131192113906897727278636","18643462998860165052671491765140171890433804355640519579885354636756303267513"],["7642445566152532520204688115091345274514619253087852449087616858041242379704","1865621390165063579445783895285932820757276370576972798649265923068331569708"],["15855132201475189912978241650466162812222520631233907151992332686252829961160","4785220161174742152306612989596643223338162549346042753506640221349490288492"],["15398199797572063670651744523072721820962187087360299049013942190041720826217","14904525689083787781656815435651788954784822662937265295721806546276311105794"],["25739508695444198414158643962325035749223784942909883990137534419065863872312","19193286368400482559955790675001422002828927939966356495453975250590497683018"],["4797347483510234916514486419699505624713037625654453043916168676298990053019","7259694411956388484350060931758492658704842398726852378651555251760658698827"],["17970303012519242032553547957944350870703496584055098129647231741821381855123","10335617677150934436294717688671010410944410834864142335899342451631447247849"],["12528473574018532818751366017411405469553493186511850443140433368771800561126","26286263958296555419540139663868820383743276853730592893866542526346009117937"],["16659478490156463221095400321253518907879876996902249844432735053144566982484","3473792891999283218312032700689657020421821482024059460129529019020733869201"],["4400992045168705804329686017641208104229264351359576370510120029866662643490","11323034088226260729681116974741042120917874121616372788180283557559816626838"],["18770157235600421659055645120346941740686338325450638553593531370524660960990","15442133970406475234498422524760930703138961248336745634905507952035232258731"],["1791877638756430003781876175418828929110019798758984392279574992149994276595","17468366466199316572859074728292636142945283788961514398031046819572191990011"],["11683485265603275371020590805053655682624954974005797463152843440332151927396","4107519873710336162967539039069669595283997077763531673918755341891449926105"],["2516392820955728090883812827011362084559338470401610007263200622035174092809","5068499508686850484055304028146586390478895050592684507861793680648355735517"],["17384899114508742380325742203662663172650613492214216696558482128034545619886","9424155276933900593740776537372312805183904696808298933997436252181695913438"],["9474129289529877308933708966401055642786563472300143981551955083871246919791","23466998828747656149344954199476054421791150223055256971340458571652897971112"],["7964106245005714593057118164404960339566809923359750170300451886360802890837","18742937415027608575776841608241242262940333007733843578570223588004665412913"],["24396941983994921785540332538278678578264625543538270667746130296524346693000","25894504043337935671515710402450272201505990498681804875559819676920138339637"],["11828295143025355931003171115214039840731437599630159883317877843228652607216","2500248468834980318439700934965607388798162541572292590531269714969051552062"],["1512227879364536932946034133492294527874978415882255643397875274962218327862","4275699329437862608378970537829382800002813586666735594908382516126886216594"],["13081077138270210152086677425416941931568234857783798892836293657035261818221","9444255158486171219601420711998724647760291572017477881047834500088350694361"],["12827565517275571069779369345945208214174416959588416898580947379650102550","11068294242195603099035243267357057743386396676837564467793680633540020435129"],["17175353789658225358399864227826641295297944978106190721269826076003833678817","8205935864464104895273035173474661501338818740569701684662002725139432398516"],["9234628363152104496088997133727664402871200318752358195154907717572743841685","22101747403034385069984148654414323683133080003052274763911285105389799646532"],["21829578779931936395793153999637169274783864055254515958619051504269492190946","1046060824076805490013455955512535476614603702275938354763900774112160790423"],["13004394757685076190167151328212129652946922121894976307803299291373674861417","26270311526486043371813258002192148471686322285258194073512512526175027948561"],["25377562691301306250104752477479230253218970114136455732940137882434843937265","17310831056115442505570776669068776500819472893308509337979648044222579097308"],["19394755930014812952402944147366457313537445484892159131574585354909088334197","8043558109158681425693088602075116359251380277206553659387196000992535104580"],["22487599398741058362301496360909055314187585154437399849125639373685799113617","19579282787401310754320866022303848000131787111550811283632819281782622910484"],["4889924009948678994388303037163952949918713681007299931343441602826784879366","4624942149949375389491160244624378986107101133061848718559933931669999907714"],["741556073534721019767365950676443291809772140143735850213902637731077979067","15169285291497206548556257502357432634059732822099687111762497528892052821604"],["26911581293405011674905214675575881117875774444666690161606228827251720855614","3004403843225253198212325381604907238797909126195808340734544242116897497206"],["25901512265749308263936756358367503979766717795574388445152596874265986589924","2287811937810968033699041397559565736649455395413725359158413406202990634193"],["414675816039833401129959457809843105811640397581221936785226952525321541125","2558791209751420817439830996421370890389538664651996804272697074335219963807"],["12454915307623088441384776058654706857947473055321864557352166075498445241566","15340083157163350393700346298939716038566103381313021032163426052873665255430"],["20030712727105896102741555961904063089636232507575964500703818805776206446713","15084092530104160442755112976240779790195775271250378986566104362609851129121"],["26410239630939494962237604389374781063071872589167926985937536561898361606945","12590028038658196563008452431017067093317793640311742347585087627855583735572"],["13997741400035894562526518877607536629337587053471269709539648208180531442677","11005128004378350280914153761654475399631224347434856745705350397021038950135"],["6485028763505993231316673301344257327025040760395878483798957119411238786302","25397573949606339485597847814631355565364678630296466990065666719947125790802"],["3174331837534579332793013179154837249896091112683667083716100410243110346786","27004604849451226885049684639248696514648334231695841645842608847817697575346"],["16840361144137732850260828377114042497764565578393998629238102670959008558914","16954293510186186795102187644409604058961111049374508212072233725923339420322"],["5793303601543609323117642977353617223349522204957667662510875497034505762221","21202766771373054844547020649307800575934060010831439765337945029314052664782"],["18966750191556965393848309131732456339271558270333584904228719971702328010667","6225506331547740291299635232686023840404171109717482319503660739059244475884"],["25596299052302085397755271115575071422929667534013819847675530688722816090834","12914258341605082688667420692081440473858998681333036770056906302229622404994"],["23757339507303653880906791988739031940847183874811301605584452256846374549353","1950077849157885600877898704773714049577776718869065593442041602917354208801"],["12029181692531038829061300412066354979839175117234592532885580563907866060323","26690307798789418690323442080291203892429567913340504864166873845603074900757"],["9114495095078166440878605309896033911425491769773791119208610764195697948617","7181744445957390624104482967501741714634245191185160588312737482717814547141"],["23172706098518179300311721376008429237464867574392371233384969490597158441995","12070654906830958724594906937324522731793588602391106698743125530548817205473"],["15061829880392326162093620503787598813425868725237889522315136200345185322963","13082582607221715925207936154594213353575565578156535547473782965399044753965"],["5296554547359974919472674075974427380650156231019096745422959990218585501066","25273062394824014111782483291897983109547332096548348798265568125210088553863"],["12953542309775885741221589407496999986054456966719074427055697250152240373016","11411219366662446472940350681995985231956714767695387003698518734340446489936"],["4632034980804203146659998599120467563649632644359343072548910725398168696780","4707328597317271696119614672443214760540462013878433166923990597752327781629"],["6912617975229380787993620635991147330882286518448941545565844409820038267513","16909897690840613931423292783754556978696173568540284058803086316837345577223"],["16222598806443983578049470373425792578661598069501089172406841781930282680572","14200920235132507362233323784815145957705657290482181820430630308479124146409"],["5155629539312318155631607773758038440377467949153877775957867493900808346349","20268011090915708410796643497315566924302744709746478684443689743084466590127"],["17724596295424238408783056068298963487572613121404453059634506992027658709448","2360873896358143961343058686217777408621830962962143325334779190188416013043"],["13950053244017365557412622099991399778580635141634235743513467347418936591533","21246931520923597036930653487967747234120002176112555493071658881432460411380"],["6582415668540417728798702664731585638143393027550446742114703973865419949989","2239908201601435870498796817738649773747326923045233365598060521873284077339"],["25698292428626400444783249942412878221326373160616073690155424576200620639646","5920321931115589992158758946505385656421232550781501992615817275610037056130"],["20702816627179702573061363321394519346117814821941094411553962439691062922572","21705087446398205404058697531252033219870136804197853054480036966886233450705"],["27769705419657916246957515139543798280690012004644087151636762341961054291190","5820317672150597581337842116652560279434779100240286169208478028063812017279"],["20372615712862640257585276260103561364691069152754877633126985902090752276383","10199331058433147485608984713795859178891419600668233622929470457293713992235"],["13542640076244529035907690140494062046784952027839918160147391033917297453200","16889134263899524074780830704793139377958436006389623826065801995387349325759"],["3410368627480485286697899360346739290632079365901391270808071340286447180343","15628487089257644814815402314894924765421309718535211045933728284533819544858"],["15687366887696097340323115690657066953554028189332296861758522791643859084089","697592074371345666851869496910189421329692351942918541084706824113043376800"],["17241327700119665477941596015841939911174003566927071490510101946245198722860","28217656458031649482084900861723874281129290679157973628876152777787573435300"],["12263250596612682138939096332883674351044801283770861477134780070274626669612","9952078636575079201751655935294472223163381978329120900916544434092929947974"],["1304240849500411833153264252218482196720625337538020985985761396152382201422","28314176735598666524382635253664138726310257320094020191788718804060999178257"],["13258836634265160115760572655338857009037536843339509445505268121648634862799","20448745083649269851970428089917293307667200727459318948708054874886078731883"],["15956604544012992286293148885987601920129133645216590968397167090974073855646","6870951804740923627288287728271465736095538582281138596098485163753272910842"],["26335489413083804700353935850800336110353857682709206388514681707311080976465","3984798239608589691786836313672634013356800829565988208169830673322897062459"],["13876080557446767615898076268998266683097849588133415719102341279838104947688","21212580899902759216106527499533590369491195783114800114337324474932393738197"],["10164347807782392546774807121272525876693132560412888347227933361231829316237","5032498400208611504687952011458018179988592630051037962924708508848403904266"],["23716584739123729747771565528073148526269182567687468951449646400882485707119","1848191452501482950886541444387842068590452730589353543293849581663297240587"],["918239403347327815919719855912077085047102575052609546985501343261171610914","17011465386695729235328457826351171894878074516717443381650274100744070860285"],["9871697272600360202175159805323748341147959871696638337219100951246059051877","19924044415561509192641407782690495554936126115226294383085701379939092247249"],["18483266288716855151950664190639908810760175885551566561241107595180845474758","19251556938994995804326879717331349427884985702187674776379259552239974128042"],["20658809207566805676839151853266136893540113119692707155626959706202511750721","232022311299704213502244049421123353219949465046202680314085842080199850047"],["21369356483354770959796170670934327161469943672818108674922680039568740165883","28234773180971779900750575595594049816667050786419585222313778253128396824510"],["1319564465863012125711182727044334980195197046734162206612943992961343397294","13164719344283741123462684328090515618274206120996093399636102065153524528337"],["6333459776679206410367555138456797706826159912129146743920625582330038026368","16964967740104096435097105292711216585593972680558039024482918454109650899766"],["5205966171711395712133427755683614384584781582444805607185888371983388448775","15690261421458403319803046321363317063695595171703082708194295547413778182157"],["19281448811156107344421617386699411261040753426055533921084114547930621585423","6633597050234331218891982185353303938250897735532980565956776538526203159263"],["18564744041661005844109966556530133599407400164574359093681512552366657804779","15617210235970662211894198727717782994598589813773198868412460600903984663237"],["5834185219115668971483315014334747799397582484737136320527550085396201401147","12450497019267555731206409016655418467331335743283066474254353684170539770801"],["3298879222882046582249832073535375043057192435498067690797141309992495473967","18263384757642368786612807826900008548294240085413452306268680364957725505141"],["27121277619539208709930312561346384755571220814083098296872390279825999165142","23836663722184757167739511846958803029658884131564282782704235386926339469098"],["26530769985244700592060827055757969118309517478713979610875506565283262084582","7983418312454054038491125935414150617854344914603245309608239184059968468847"],["19200461638187386199572186666354952919991950109448537095341489792752766665631","16076659227252229994056020768529481370108890565841855314101212309824583548662"],["4205866413622545912437548006707159527335425546819490956483387729829527670662","12665586443562294797510375242986372274830823565141766000710798125785400766816"],["16587240743867973796023297012864613898042353838749176463811124812974096634821","9294631196218321818194320658925754542481140136733960187729051728440818952628"],["21030091576439049004311239338577740717416151862323223840496812531484777541640","20781542321197975966596389460859251051367076185806421819311669865197996812622"],["23875338497413637867648188084482595499899400796362347754471681177028885117939","24810288881450677692846565511025459474573202777829157859631529417693114440086"],["20217413546981795120247566284108113467456299223281928410529138229155403469060","17972231888691517634971495432880551217805109677451719447386332265938910021065"],["863859641255586127789698634222028512352174871950739132799129910000691299987","20873958492242001231852434884851600445328750399089824182617676629880224888441"],["8209123582123460031792956224352061300423185890429654591832003460875611552668","8356180851521699969067569756536697298463049685220015746932086346152544309858"],["15158083279022899151001405282384300653891136386985694779178172468103870750782","14902227042926769921690701499345998325578657082940283288926214589061064069116"],["10760683715458590137754504069435315343069317583239386914860892396392555923908","27787639789276608722761069752123037265909275043643234863493269606216716516490"],["4371722508451472374313111073144558863367574003802713804173946589456370247097","23255778810710182290552590594557508423089779775600192408674184360784478797929"],["15349942466096250411843203143233737969429951926799089724535132105549690853598","20544704542492354043543893397108008736179141973074769796147842539303160325880"],["14381152507391441011924421850804881198205644188672240043182575050819369257530","25064086508793870933384020161547423945006699760553912677555287372153921979464"],["747853086038737959164400629523024178943009268516900425993253565810754089622","3809880702420955383321392519735269098007977394914782118588600783093781904088"],["3865204822065784979774443801513721097793861314331642664256979971051606004335","22587664435394495936682826752861953525754899409398277928734192800060194122658"],["10605769208028332870411136213378331604254191252273618392657497968499615732074","21558109964587219140699946796087122852333817127110211046751399142163389170579"],["22182197183389133647304903550058918177700547874109938414022972631912356367160","23085922485143042626388869480847797418703563879478570384524408880051570610169"],["21147780829100871465582071491003274617161774500372276686294256050792678666874","16612327400651900186044623080159940029687268400196873533934948284213343573583"],["532845622683786418154918001304406077900029876845782887998175933122698581626","16478101211544990182834299273841705658641136692124072764203368308627067533311"],["23279475368298719428951713453301704861823005830436758227220655052518785701847","27711529184989466359975003102766684524685503100646004792055348641063350895440"],["27560026399925472448149147298133797667325057216432141401280522382318369119953","28760504114922675189996286787260708891594630977805034102082342341837763550293"],["720555466598716625695104112775471932973217917356288545165026867498917908609","22848815702734724780051226595738254140389619728407254798438713882964830755079"],["172839829198001456709820683100284581299153261111840261881768910175924914824","8297559988363294174334920045107824224886184935245945838239029595933571852706"],["22981495643056326822513355112737241539588774904968063442740695845076105658701","18101954337529750379502790829231698018941977663447773309391987783125946718166"],["7275696527660414119561532663290523129287342022937073768840669727254869277578","22177430163349139776599443600997433057123065748281532220375061982854983581043"],["13393527614702273826851686699543314824246186671668448189339482853858656675586","21268237557445228320010140581910495293510906431000255525132862635834876900337"],["8919876624991674635805150593406230178623889606465310072993931054025828221132","3149427068902472971635507856190110645332730259999385724565313727550604488998"],["737903364877866031884876809889402702494192237091539375216703129208649850872","11431674544125541524701322933973881864749851507920672897305824724497684423331"],["20656338032029186369468174906696774909769054357057786071254750867100420741978","19635771320913954248263887619640289580101816167744283946331100853190375289695"],["830485750989931976170302442306388611400667681243168321961370354066191997453","22952162700845234184820473976376587325934991096830869074432133312962424241643"],["6959231621312151092528090541977088302837489260851899462395235908493140538849","22306881242590414470497644098809208278978357262995654487169494602984437315676"],["6813916886216512973701267770104309979675477765384693076615647135297921863929","14235155947494023491647048678952743991326528537391718937249671759194325246434"],["24888580034176747997459444922262196707744832466478770724180246684112778274001","10797525325688909360185205969285150297085153107897502675420712081693646913978"],["3433597121365034476168750600113046964753778684267862247961024501495077623959","26998055704271790414297908459913478529697805603822376950166055956952008347825"],["7143190218486128229781385524978998104185664165704315011566230985477417146427","16743581540697746780835004603878816389883727709538761843323318308651331413009"],["3791979432824374494938444262353769102315898122280526025397230073646615545598","18135879838100431913523856999260263088603978006688249073178365838244696844385"],["8241906807773447633244561314595402851784420297734320443556249224679324917770","25349249272153184631842020188764932612685789841456984346697263712694750522333"],["16504745789130666975495442659292295114992460802987313532740448586545764305567","25158310793861823107909429714936656260418226522561714519378035509383497264434"],["143762534306984669736626016859384821609323839127943787373110638287785135908","28798360169047776191385886876789757229936995488144236860792319004261294823553"],["403297757653597781546239034152071953247053899073629004242859770362349199341","10183398004783556401101248722920745983811192811339594288816884481199696023782"],["4727298244769068748043192450522459385422783107743030222423859203104061038806","4791456327099200362535301385448943081091122034872426400280397591523937764009"],["2060983556638742584511904399317419945239099883140360276490536846736143900009","13478537030904436774073358587696164952730373280554626655587623429539173685761"],["26355236345124494212491044184424601185092275717124154022348697307370805038286","19985492194849582419539487640213313494146334760379349835982540968246890376734"],["7423554762720108067458533909878354573032051749270803948199795554840419406190","18852529980667652352347326488922189968285041396726667159904798299484015974191"],["7191477439013862289150973705550955439954265470390953981802539750597454253538","10611682482471952511021166279064109536365819677127902144616469504410852760112"],["28681968631047733573346801155374747851800610203178900997468049291083403695441","9018605271998152307593917473522740376011085546426461240684367650063588896762"],["11237840511290854685131330537833164558125712325401568917355128928758333188938","1580737921148251320304604736634902950805228806630551404099533865232480266270"],["19770261086677661237157884653417096635083814499095655202650655794913783203365","12333403988578835780558965471087920248677275378207144559885405362354897079005"],["13404094723275465933434450660337161637945543699508745044521916935669569820765","8106704000169626140394378719174437353785463999185312135982663053339280064232"],["19030978732330127979290063272114004648878245555269145404372648084994713253464","18303656695882706995469631538669487467921366558388926647016919993534255679832"],["20837991380559498540943320242252210887441467027830902553481793922918393842978","16019105511501593686211817393559738182525750474924007272327533611074969392698"],["22848021622454840093965204625666298568072947748859212118615419590795413945587","3494671030735759963945856412962640447939257264233847483364579581013434569125"],["25901721885186174409214945268437058968984695470575638572215021057240442287395","4009384556253314088079033962503826289993574398225590285322729574776903802714"],["18344169685541600283482087133163555347665919444987960821531966004513291247349","24493739465665387412387650597560972810434265011555855032064972145880447570378"],["22549350288286795761546362868512347718573934401536568978189306212818852369393","25652287879107322344849201968398644133951677954237500607328488809116806731524"],["26526815527015166106545589942973201092256588279182680396404658889680720262103","8803705656518091969345413844175963954367236618261954695441144441837287298810"],["2819505076635664345913459411387976621486231031599864072569103890429031608084","23239578517321701366143053578220816680278763404403532415509980014339398165105"],["4682461832706186050174007503347787834366716127195745820533856671495995674422","24206090120712225255778716251573646236254629378483108673102563739930557103051"],["22345577253246865561011210209993985545711268245871217704710298196125507789651","16621602131719777802956760268320314890559005210135140236214699354097765509855"],["28792807919022048934245590251554564593044633767337785564072630159201032198736","24513170602466386806687719158967328285486647548501766761755503484073761583394"],["17692347954280248624540904530976890650288535287338545399367003341253012669676","6967625173090610737847567452372411523466350015884831742411112706796522749505"],["1165988114607058635484822111434956473859616343291828543889166668093208444311","24608913170397148860515851985119996998316435828768692080491599666518232101620"],["13899053745257883928108669625748000474354729608205678841209178443368042196997","7830205525331686141850847946488199018188859096207147442566895274885161900854"],["18760277098662911083601210569472708932073515652204428134736360804636814531857","20033009212729684462619773101819402594454392348486269420756297967653402898120"],["15227052136782170095192476380149100870414855286969420408546371908359706579985","18783280617175790367484830449424185981246943066216692259741710630411563080427"],["11040993938892941676720845391199484033215258369340866649432727710322849004364","433464864260783661297590318846284700464996392623430298853373837984759093471"],["10695825025486924013451674885293133846036370087219289937652668853771092680709","25641333950415560652330743032567916744267436461589723669320657793525855214257"],["13333426077239061735952439674567865876073870830826923329586196098844337068978","23086244413395260638760272651394384496480587656476697613996914305478944702503"],["6624864479946913544974812574017829232679335338305331604525022152473324036821","18064487844211914736612841786382690881606041759707617362876565560401435521557"],["25796911931698369544856722942919886320808543675062308616670744113778114720064","20743565526561820729676806472854426420858558513934876640915782898252701521927"],["2063864747932046061854660162196945469780213172494037826839500464571927292274","16969740333463875476540780853072439257196538933872228746584529543304700610539"],["19942253755326666805125201419870102114280891666053777866027549510982845183765","1867853817076161936190500342600953129466087705314074686782668016348218165041"],["6647698209434697674022279161505328214598951588791517602329234001967934777629","10703823416664162449105532666142690316509525379939031218366674354143902595975"],["23115401111480590341158645957766093923723690858501746843875245923570746427445","26474966895301682627611022240472957593315608491404856384690564807768235921035"],["24976432464767855428026298094024391973841743852353618000888192511651096087798","26991184782254463012634063722330563727450215942573061557204400433206828453377"],["13695449183958448043860802432795696895157947325176019155909248500257696312703","6425747971315841452705358547785837517807529594739984006959644872691125393719"],["13767796851394352175244677264547510301067798937466040017369506847692839921693","7023635023032567202856871229787113550955035226858557848995596158017930608496"],["13789158717309317227551336623530834732311702312676297795485345512537842340784","1638220680306203126261697056004004951876831882947225964934430063627841006135"],["26064338737294390632810677064122922086071972999009700503347068461988127302050","15348044187148938640731479978434546444840849623888258383557216698999665412543"],["21704206678573896248059451988283996543927924870032800812940672713156042418772","12903386769540455899625663320309027500284037031860018623951718201296093060825"],["28040972388636046434964373488493614203550132752183379493284811646469534255896","14031535685920509125980362725400982694567923710817578588203679606036751977272"],["26268231112094336379728301646478587722993999550699898138483315453055179605924","10018015531038029639202650296831754976011144919180960284142039039834101895339"],["1849294442640777621033919195372770815735844194118405507529177474760832905230","919524368403821865561671013121797518275790311932599711292038991223378416576"],["9052909706981677846896764123613279448971375425838562394841515671497596126126","25387759347155220696784005863886752384052852958810766798023157007206252605479"],["13458378498508781543443429028390192327088799870963385222463726931133899802400","16103703668936334751962109355307906623088631365498522081428135534793565748589"],["5457968653692756487028257321544047448547411431348163535473650913008131748852","1462184688411940222512101502173176971840669358822838282272639816106755320908"],["21721674190596157734577307954830503206529509582169053207923844002939580816689","14424706041035833395687648130866832724084921468794743397227146232639375068769"],["2004595502517216162832088156627915911342273037899008443424926661432042771200","19887303857335630084850852513324218158569214244414665384547528508059062079720"],["1891965123037428259972483546849454091578905138368274054161054692223520625431","23947967295185251520611569947631040461866877827310345048222280338222200421341"],["8070391696038690634869946964787885332420684166013860131553790567422141678546","10201050774518901194465592692025040702350339247807595434536586960723369602729"],["3229444334988193643511333784359770652459773358150157671404223943709641813890","23961560170360267058654255563192760244379838733728308383285508684599777186578"],["12723052348520537896763301862495603806359500488491014203529897480306576790506","672310312065526545149910058404697286302667390164038022968718041566394653941"],["19768305013045974027506390504420667611823299915739861465795126895246024086867","23094514291055354598574827556250289838927575534455779854466423326988185495212"],["9551967492459851188713027001568129415620796548007514340484070147367340197537","16527799359014181404259159119415913678617575294837132975880531100489251975692"],["17626877288554490360458867883005456017506546735397274688245729144449644753516","28844421542470581087442234603130618022355918512744882150336750037782000370017"],["27394728339070010630639439644647553941775521157550179833974965834908293482440","14964716483425491239729210854253786897596760285078375452734545121908141766260"],["8167500414949948055364465809602752224443894899580411120564151519466759434503","16031096739277955003940754624786744482008010844008595958532799755865576760987"],["20412340206663700322750086057296011143400078407156896732734784733446124426064","9260936192939253019735537449155110087191229264569648952522330879344595919919"],["497477040651903109593723702964467062799679707300482169839314077522052152650","21037394713431253385020074053204738640770666011642044348144753957440468106644"],["1342737487978184025440736157301975943949364603886433084814073471385477737969","7233504693097269186950430455333491387945284189736804974799553413640614785249"],["19092451267760647383653634279112913164924063113062482361122273405642678157035","24910727039773361251663422921272751092626477972449348257771349946754585706709"],["19092605310745914599183852649782101542870209731605919094378827579577917707080","27948870912986715740805869561022649982890774150531862306053495260834974667936"],["20452035719793740688504392237465176587001555699047853064253491693778961647465","21080005204527515025106424339094777657526078243392760203718168189782066249108"],["16552536034966270155040561441146359097568400818040135642389257057626493576290","23482894732866680829787590496804297399005416039352023331596288512255417120030"],["7633377755126770234383293037923585446502992438542347673195433719733369086881","25930157722838012706781976075925884941606469587641464193631137249988490873211"],["4498228082690612362209844337558005322134231945865690129319003227227587651184","7448053646094881154386683017294602639861481303274304942358322729032641567525"],["28587669398282121716114520712740911509714859358063681425899667243793596254487","17199781242696607470600992367741745923527017082037249003265626247388357028336"],["27069978685079037761084871276079906988767077279847828328066117842813818348618","10543432655730689167363759178421186044708467772020003854459346309299937704872"],["3445719777557486736554982977054167271327917533287588229425868478351469679116","19845301574779606691283464295005627306456732986205733715666698364737411326069"],["13350518985259542399150477170654951760478401684410070855234092470095228153328","2228933405824316731048420884047123869939822405565558122011708888497505402567"],["17949587981195298602311807322542544126448264588347692762307653296579751333478","15055683846541899682833611717194830640146665101875856926332654357213457534048"],["21253510469271814523875491744461021800874839270088321783502881809925991505154","17180575263003939600636139572461938531264788914652796645812972854889338119356"],["9215573826310809981711930515593227942886514532987753890825210990947231119364","12860989905899731383868632708390733134164537421415492464688080349359490595985"],["10482945493710692946885687274076361354689630102820636985678337323424849405013","21946662224976309749465101792922315173817887140223609784255768418983467796385"],["6479177895675000659541221187992083854045146783011107036382286452662156828996","9687103622772782187236163256935030935830912396104164558489921826334563691892"],["23344196045746755232949051161822060847089256123820675771793027817479786176417","25495900392172023534862217130810947352230142272359619136314877477484492949860"],["23530686209486403026989208236495773837800375517046183842816311599096569247080","23792667625338620357517516426694078373758449335403176011754644620491346419602"],["7818464621190901611984370864573380032514553728733147250848108443609280532005","15155756985011056635035012960167092581399184079722052798483445084141611302875"],["3846317191409815969081029003342139559665919589987083067496309305570344431148","7412072915709450615598099246265905734596727112081296608484667238249101446934"],["17631417216160734245536400436530321947073183050450985354010964668750354338211","3902919213517776699411498524906528502869609496659886192311432940925651219324"],["28393559303027088327929339169196652981167325133389377279972652843027599882045","28616659924145390013425315736845666469804915332710387129562713224381164137619"],["7967470923514514217750469161465072269174675083756249817583456071363120362074","13679477445102695134013068446620633225218090749823740512453349608140514102058"],["25162131533879946773476578170714024965141927973000467008492944561442248324156","24351995214693164683444867876365404818463758649989878602070394400435154499671"],["79284887809865322243908845955471435739870233123491626353067755740591097632","26453429034470444374291733809982105430649580040216630673391623614047367415511"],["25017711480044653266297198005223807201201983270726615961317402175921741916775","15580625482063983763378546391594116561780175831726959871387941779034370798037"],["14787109758275834063324488995473622709315035818058376010290105396916835313304","24827849275479876341308484042502857815831488053374175277712885550770534655367"],["22966781367585559353932598688877293650570106426528468120222539812007254449825","11106800799937831710290374340873751129929545332599984314586627178089851117442"],["20315014120127183510843046016289587556731513843701502387895954984561451452872","7808548531818634672262535934901624462300691225543432817436586332875179370171"],["18535903952625133597381864546497805644916842643649212398841638804757177312808","4077147222357942848288168241845317997669707741784957503504456225312836634286"],["1960256382999274856008224389510986437277537852754035355212814880301318836800","16927322454018767745017494761712658483016088586569344353383127619733491416535"],["8317609467178378753042851913872790397582971792191091907149227578701178075916","24035630170218279286291573992456875114750004557536382727272374252435340569170"],["8434959211562317127092466708486317483515173077106667945991814804789209576259","12990433670757398912328119872905214671725313401468578196801942941268542371445"],["27265975473749692299740636804003124555591810735519256898489111791293651737712","21068287673087916218290330714760406143178156156648505759195996252623072537664"],["5176076326353497097781626915989488961180026424183179360674572220648359635307","4787671086127243567765338236040690746006776500116823103601705391861587413486"],["9768334006096432927805389657936313337853741301125819747762375427132902610823","11738369870601615612156728841468193939666313204942184118366840338870001731284"],["1336526391141979951517636394688389543099397173021756491826468793175702195622","21621553061987970009334795772767902826351910116872103065715163180118520647439"],["11669530219955954872026014542079336358931637540379211085326834094749342578576","19668948584800392562590067719417361831044601058022885225537446935390008248339"],["25730215216234088921990050006042213214141296922835901080050406439874667507243","2813351745992677896301225283417613833345121687261205202348832476772450686962"],["3625546273530944750040178308785861712335671846929208433312794414429229868587","15910744856980549009229001625649614732113603866882853929633802957212856100472"],["2906812425613978240933497367471514301786881495349305397061434566026034193682","9712729713110748313664814797566177769881703844840470241715321904061310846334"],["7705173576487081427123794598561053793710679176193588295447877978169051864727","5325025253146895280707384937480908907236522750093547537907449758398178200586"],["19889443969938780701859445657950942229418242191915870871462395183428219845646","27818333133361428776348963339616400146725814945850096054962641518080578684463"],["23632618233668888555193070478898239627640089509893736127596947977531068366204","16713051849774147624115691522929865978111302584489772474318851475089601551683"],["28660114285677092646266310087506638160186557490930753651071322975458826376484","11689834594587774464807651576268023246912187007555744875459158344559691932075"],["28265968157493984101691766374645934482844943310512825971946809249386867553341","6754306127327416680327517648602438822287089148126317386953911102295895051015"],["7646545319199750517100187584051197049284712050864315260449230301637626216160","2295557091700312612059347864708332541654903318001041405156418269122039540983"],["19771646021328975231038475002510211936745787999108966623172485805137431016997","20521352913540163900785826465070386669855089706674618574229929353326951655385"],["22537519543341461982956396470302012559007582195979189402941613501926583914959","26249117080467505251794065252160865267852108886656550143111308075143524933286"],["21699207353853089428010466097346336265417773946078920446431345189247893663247","26991481648583416739453534710497795761476603759375524806938348655249095248133"],["2006286881377275499288684110041673842626454763449839634138442189942804479703","24779733876914617022396973736222061892839670552175619420253951730687772315450"],["25166176160528790870213360226781835512329402020219237201209055294223784257635","21318197771124946514709591101507417334712675610744628274817835760992479303377"],["4622655756488565179458700874968895021868169029902526783322679532217420738124","15549944616613066953977224478545892230857676677572776342339454429675069475946"],["6269472068879322795693257314758672797150518649548427962824409198404982103616","4445653928622832084719280892395679682698195295464910565627111351068094963383"],["11371533911099179012898956732604844963283112822958674744933915919708225678617","21626327452968887937634533723503443614497501041309386979600363671370583009167"],["14179141030887612282152524161446061317099504230817481732576444420472290881549","22707432005546141900276234232712476710333379082027360288268416989301107062010"],["22487381759246410419333412730452634996759107123485966933732997873049080254064","1981001205386685326214963169732227458996886091195584171369042449182375252255"],["16901527262622451314622752879628419971411456087708235432938656243493078008624","19513216419843243718267957938848574905754954191718648723244801319504537374624"],["23313475609378025513611664261304656664186318545278264037383179177193738877381","4547558908786126729071142057290229894084696848619237108862407108902699564340"],["6773793269684044055268271319577577168958202185557527073748891284722999928904","7376791564966189061846215305209519350909511102300133058898417953253832696859"],["3255943448509017594379111240076644063768493150487338158818526382582293380250","8591134748852828011831699026481502858070001460559444543784428589906670062973"],["3966602901039822493552475192324356142472186441634004493773156787780213878357","4673468228457524797123935968883165806565981769421775590268336411515510319374"],["7817577481371268744576931748992514103839297243080984000404635992398549943724","13930375180547406436283641291367903829477933726838458337460718830315529594112"],["18755634466353607612319772674375826597934954803249494427006877970854296957024","12252856136658621621983464085781019160193855924180740464946961770683542986165"],["3825992656082309922405594489329954368229224486213837720036116986846102402853","3663008558642431140271162767159683718576150181781224559062411450171024558845"],["500714734939469188050233559099136345167855906629669436936488780602238364614","26638549609395226671045511500892200670766442372105279462807623806664677859272"],["21072916290685734740475165079368879138733984529472448126189027575719021830271","8254869381390804850188494388880804851087390340860915107101633606607660823990"],["14841105597811857887139456224611065474633640767005958573420338582477717219695","15186709768445057071227844751052070509743482135754307243863489071615306131729"],["25475918489532130017288837334964961526688080055031789343046722792534601782215","3725892978209413945678160082770335454782246416595934325588501037571332833271"],["28416544130170436030363328171457478634931214325158295150951220182939635178591","16476878510872208357266830040361452341926635130954451591458229036876802131747"],["22334420144377579638210243459167996186195441253659387425930012925365220279858","25113069334659739378327182364806846066007326772532467194762983187409904637740"],["9302532639914891845723813774515741808916755150394199990167648977001772682176","8379055113974163801497266131373962182920791941650006859179115386655287596930"],["749488199959353601678821183314656949814834301940532070784355609588531524475","1609789524003318292282769851621777872611797747922547536392716648259708146650"],["5328888252133258182747740943837373680884217956038408563201307464144118417891","21761038240817262163541950297292404043054867938557658762900001712250852477834"],["25798513147982671286511293636387096530467372632008902793165082943396786453368","21699731773973189215169547522776167188756453346926060679265330322496647849178"],["9189462430104859513625162201515480004294289745817387323441153671222722901234","22440473855999280876269591543355696508246030761435362360939544509898456789920"],["3166309474511957423910200599631866332483890843781267870058786308460873947097","24420802331277028608660088605383347430782425375088161492826908637713076454514"],["14253578859782067245587839059880006918513245177378142143760584739240640552225","19494709953924176257097578776571205468128342086572232772136002563486000882108"],["22681186393782210253689482213638102940096166098003372062640710420557544961900","20230199651421581142957740024582458058505015937357547767554601166373685727701"],["16282937009327363947300773469277560145461148297453005739637518050435730448543","26660531616002140143253843700837088264462751385274981721202075439702902981750"],["13675221602527812439332586014194727021251343462307522014506872058304626732048","28608860279263900161918808403373483997516784426144008291569958439827593731061"],["23169608895422395284049917606314745369241763445569531407709285080729350987529","1968659472675825991488860520905584406751333080843177227057439244836411802514"],["7057292095920062174169089921515609354253118899109897961137950288989487906291","2694879806827500368801794821133151886943749939900023427076696322185886651156"],["23949474699585821640488514586257467630932826949730573386535488176311831623861","15839384979170701827510361246565411126374035014000121831303919024195777944992"],["12298550502020161868842336550195988580998823455470787369620567388493222705479","21116898907811424591288623712228622138767981514577343968271576065950002491478"],["20342380207704052907699428644400355796315805195996739470845118989228033500079","19379736472131379164909039642648732845314463179974232116220373263751049830258"],["15250508996143842002121773334427953462997804310938230980728809636160353442924","23878498618790256274795788114806821712052416483257468129779225187481752186974"],["2078026008671857739596961791437245427243544594062818795530101927004556562955","1201272132504556651656482603432388252880953462660455828083871560498302981916"],["2683250129636813578257504072064819878316894917826531224892242121339683247345","7485462193886953065158792632789871164227516049089691980940185103142908885127"],["1891930395664880580228783897677259485806256740683715093717579877008635512340","182346075754320780905387127884261487646514307063747300220273462778690339535"],["1652377358827734850451969604103134697391806881729263150185376122512881636344","27016177636058705034900795306335914103333925043699166212169934403135537235593"],["3578070492621244989806891096466748976400580677432801505572886692442540924460","22244500113056903843992115056783296212367175721301167957963106944407257958497"],["10025382845647580256751166209419772702376118636776075532364440571675978123433","6654498720488751711967709218923537668341127016492175977094288249645800799444"],["8710464478747046376200696243193062141907708981393706910068651566597142293383","24841446596351879786163773607781784030037090665877850225736805194984712243205"],["24495802286634782430818323756774351007009295677765546217198798301503148727593","24998672990287557251268922392494499801967062362430494034058419115002957058287"],["28803367847047687033743125093591397494040018669995640331582767608067673405475","22250669879111269190886903959520795084710671414258578205149393779153918954653"],["25243828375118345562648788334709752767378891948236599565319567902576720525246","14417553853381504887012232119140040709847357560068291848914234386288882105222"],["3824539899010968458825950971740532869036424384310872395473608407742962080285","497472289947317603433909466637336060086281513664738699032403211874310867654"],["5782929226600442869640177016304519935371905870416039625212313086310538066607","7433217691040863400190071618810787272823892741153325556131906689072606085397"],["9711577045584985313027305589233324704345809672052668229915387578212381205540","26204517958574850639706291615023292894267116360809742271102372911818237199309"],["1444359871502704553864574819422665883132414618650111675438283436179997715041","68547263633314491147140887118428964934969221446213276818419290121265385927"],["8486386594478382252427552575773271460885180575479511874057779384441676534499","28295229790714901629725766089324044199886920963875606307433511543150851862463"],["20395326632683475188654813067669468793427982147758426442284343772126111505215","10473644442534689825661457051011425703182967565132435769097481881723865934617"],["4827353071529569744504604102591549414362175485959088397951392502610594114398","24912558283429568947679732214702457263699725968360778128293438324176844568882"],["18486905237655442338446085613792465412900433061474746121128563517860925933183","18659678577953538458424186710159649960364960591407457538840758658948130103917"],["2731001456962926292298005352306319499197929929688363136322481890220745723183","168072042774218709218955370254422936827690439820278391228835650242977563982"],["4455434463518397137710592680906019474359670123069285218694629740459621112746","19525000178666517369523131613059495972625343369610666432637134360981183788931"],["25712993748563124714021488144642539280756354706373148591643288877398678366428","21570969000876748821011659332151359954343072756591914919229499431521880241138"],["7431063528900230792438688440592499368252817361707598352030882711179778424127","11193772900618070042245318301572789239728272056739725356602362510801130913815"],["4862703676220553864944190509058609678964764825189014468856547862028025845148","28521917824364389295696775846965473383853111774713230109454754068431014678677"],["6561312499876056443527898885424110548588393083189863860609547174208883264676","10837650310913499722712544296987083145178684171567531369628326995847563176492"],["21255084488633037355883379962377260317010231792287945737965425757069071092826","24734282054650421130451658435135858658863255190128689608474168640009499672297"],["8213644610216940363961051054942992757164091638325475582756618570737959740386","23283080496531806343119354965053293498212070223825268218266154420868437800696"],["7831450369593334602227907944657136435008888542072677698293905951257501767416","6985364676101634129218224671703789208039799851121807977877796320811554754084"],["24183660733054981006752032922376294217629853667959756860840060607103635376601","10530797209592203333180602934872107768347512254587011046746075221882498440944"],["27353072089600241737501136027505188794822608252428134371386410257730813990843","27920849220382175178190668948021049514859424150477233648592240244379777645408"],["15196638777584599814726897967343377871875366504813511299829889911296620169006","5157548252376067309000703445821745411434754128283646428494156717495914318629"],["15745056645034281551275926828630498714481890123375123848011472146312441957271","28680013845671787250956622333634238812782458704089442958086020826113602364887"],["283211081971463036726473052055503294270726170483043725925211401953600615814","6457477980613983375739292720135561410017502963342249748232708059272615719910"],["26937397984694450843972044024096351774023076216289121829902620996412984084535","24978698402486715392867963397688772918729555018556978914044898246185269857314"],["17726468401029986791025025502000110146738100877985167221884743218218315025766","24589708259227601687200632723555956213042773982481843191439267927045267426103"],["23818514583734366632421857647628157690957839857589128673031998966504278587339","3347770308088743433623865661664218026215524938478251468903227137646253007013"],["4738345765965765122577844904420554198014763179023695121716353642439125192513","5409564579094186205461228594442121535265657891048334188820990352050438478634"],["3451745987107978606732837225388783857214886226891537878489709840427331169612","5121602070808711696464780019680142727680019734407145016663608999012196722929"],["9168057991043965257298426178330911842631402116642758824975879067160674552133","21179156321378464229649831446752161349289556446560936347303151331811351616506"],["19091593667002454209607249021174799011652034282030622712181714777036878381843","19297425697359198119106544968177541873104152364048269186665892689701556891598"],["23875971944705759841065686386043467728807665042368439049126824940782209102662","24015727327471650513973690732391613683506998471275936737505049448262782071302"],["1269380896877155673349832505951355885104563751627889998545343619306610248693","23321435860806322556762394614077294833338338870142936933588479982437246457563"],["22451313497576008784371871471488790473379206581835600775031384799169816025155","15958340223760708521964176330863868956076621202428179725456493891544424294672"],["10813042021093798774845045212863581257817111614419441778137902451933981758363","7644258729522079000056644544925105091140329694627388700092730334882452336908"],["22501928384970416278557628418339568135144185041015292984418571582506510986896","21156977779874933594026479664309624151561511149770511020332536734535363213795"],["13871226701927105056759265750793727426052958095544458131057312755511339720569","28681123665035031792950881685572092346446820420980059825140713642602351943350"],["16716323621893534488292554033200396862207872863656608139826528008687537738057","20043369864074930956964356406516962582382805995282424538013606674722095163391"],["24875698862029945570983771070966851616137279441233624559857295367954553970278","15821639315027374777710721447351544726515605729706922709193561668000502016551"],["28338748809818447692971692339550801690296481087524676214006627316856130768266","6793586507690590416406555822408210976056739389595195483088116748241644097439"],["15871664738119977031601079218120992812121949744882811429020982962641796129207","2194741700943228061444119926784430128853002970762539028405455085265276462953"],["22968242198474964949032413475290779604125938582969350188760346348305378855070","9355350849252088516392379705555274295837630825418562383103148398276753194769"],["20176623553672172111791368994781877947350641794442910768238776588919612382036","6370243721185470645508771480807305333753155835171782946988929150799196627367"],["6156834237543397733975990396858557835388567297487812729562957499050107821335","25846460679534497727546834281045647864043861168891643848189989315665973852225"],["14186853009751323804568751724308719009325449481526099256589930860770118654953","804677030800015438134976812778861538054398726031581457401977546842295597303"],["22379535672603830698231519199332145591542075437853583032996543151287297931258","26691103318229003399131080887395326808561910567493863520025825549122786488217"],["19245724893730384067132876804398082540830964130489251451495026439293818720979","26567701865391103623705644146134184844682614064447570599835558589650149977157"],["25419544649185375681921143591419105089566317701652098237349390802993491205836","16880086570496595634532011926350604918531519590463637227871590974105492988069"],["19079507981350262182067020252682686275716791115467619711493457207725723055799","15744947393596918435159301189110693985128936867498464950250114126154760537919"],["20686814916623709464302832643929143276817619765100551426407825072897285222057","18068141430062359242840896911995086688061400793242495933782140430459150972645"],["13154426241203502621888131076949428115768620743921715183375317612964891157476","2250595064468774478975281386420413448986202695372661712509366756391578455842"],["24713318398494144278340687908115202038522827740652563926131459721436981232179","18328903132172954033969543193635888878811153891501825247517857782460327998027"],["4150740318218294125429892801563129448133549007987780240053371499238448047626","8492966439779510498019305322073795225461110767014348019526810660078669283191"],["16280788984622319971166135543572212007453957271338302603445102704335381452200","9129939610711769165177084268749147435499312598369599875965688895165906095532"],["7497951399556359503735549535233917532306530727606286875635768084173926336807","23555950384726067971597177465008749938235556661531300149068841642119485980424"],["19100329364542359174409994412263901677348097355704920917966432816436307723183","24250750687507155468343562479645250793053203723338360156603278314513605572032"],["9947934170570891844545510014022927742318592423059748936553297231723347721202","4499723434286778898672969214560119670931207824247608157836647954291979601764"],["12353559546877181895164762444135111405498058330920694785257944736529776390153","7059730424747687199607469224038385586786318104988005997062660664546319898539"],["17702093818367948977704589260912394928525711987553030200694447359918635531242","9655566653116705645247276929569142678080471663300925572846144913192264680924"],["19966210715745396965081470285436427110294507661122626000118437149532306491527","24207269547981597606924731834931132146236841175215255456417987076705637129289"],["3516924826864516584645322631419942209485217929604334913628600573237804878159","8662184491196477810394233692773503409954654913973756199691412435613785019709"],["15521661089713109720679800516937987615282064539711694781113549389181514206089","15949284937105572881958885777561331794581342176304521272741630590122371301274"],["17937796473662598905926292978784556061365667331283323902243100994800979375680","9844429412968380890241959263295326872660923207496474323253325083855634125213"],["23224760960426117946519431896487610500232107617209370478657405308616192317506","26072356678262639354105116819671938671706614973698608349527853201277080865216"],["8571151347103057128582639621407927705760999704677031341659189177742339263674","7232871929437272827645611553249555577812563941915265382117751133532497862042"],["27768409584586768950212842657161396431383344123238195517919828026008377294348","23565247789040006537809743991719175509333353366282246625726675958145038355307"],["20177990993650652664395200650558138864621269415310066050536285179505997649191","14062786114259731907772555477183848978163110807405432225762205099649160173681"],["20949245427573916211794195132523489901347280416059051724360531340367400023173","16664763830237286550661196375217048337277488809003496794314217881293818492491"],["24114260573445660435775363749883088511732116057747620022543611752632072552512","19797274330068812022443499538087715833604867103835896053523313122437399012380"],["16809586975247368218703890202548428580389882230031855304968184392737707031436","18924599986274418852479099338174386617928838858561664421258624934179883404895"],["550170103141466735143489940903674265271755110915980879002469898831737920178","16073822754004887858294818620420085183653464340356448749261406335848544097050"],["10272534462022640251303771862227879111410972109938937225300635569438449522587","3986480730877758448035378886643025150177323490595617104448959736476010070146"],["5965408563434790939421492395122260864781153620017214679179765508514727260895","23657886237959686603063629974019098881242527668150806026804231965872246819935"],["26375385442584855916010748740544490473782549284045893424735311589052755057623","10083537307233287456206924306722572376572825107824220872184850919049827468281"],["13357329800107596451399705398354723237231195126938347326181970192794296348030","19655013299007371929471512362470765786316166607042662379590969771070037401857"],["8153666809948917181912240876085066862896371749626444392595446090093639896281","6347362510799977933207248778518259188957404776544393024959673609898282447794"],["22515811576582654699068358254000734431600445570666287430911094927586920146263","6938517694226116323336591004458695897680827758618048176705331546143621038814"],["4526526673642509866990452530601690486574873311839919710369841790152664883658","22916210607224602150239940470194385509994055906573195519954267771309157589896"],["26268867343693791397880754805511819291548874454068241076663835133667488407243","15830023314375528643112565015125750315122569685181216870273588400395559468273"],["17808320443316095601411259895766609313934763029199024764497011384970529856532","26053813635202764919271767243071001052451078906300954173242438563173580843924"],["15409802952514405813438923786546422907058159258383955641701653598797599463153","5932955955823714978547126990481338012232911330935186645048467113125385564337"],["8485129274070946781650961098992343020404555780914234023129115849311165785207","28941898335956182901154492936186516534609182412811228212677892381076298179723"],["28146624673683328533793344959950539254504020042116188631263580628846182814091","7298664792111704081807306962374284016085214250377681613320329079607943053225"],["5049826085614992828667235924656532982462855894413502720148662833989432138660","16095029526841355029354142062106983868015261849611229206821048653970743085044"],["23566001422049490647666990535084322703519196820390479087319608807414327721350","9379661940447281151526176576368207056016884432526212476830334419222904912499"],["10742354368615349190267833664249636316765385699362863741910019640945920974278","10424628542969017760042874212343289948165162845388192938075622439056489243962"],["4063129381715543351562964202374160248771879256006373088322948527636778893549","12529318058016421063980946403939171622802646685398621694993918323390370866593"],["18327715404330743116252791964542971323306563344685992710598101215606419406000","20765627036098179455639546954070745760985284701990357743513428648180735135108"],["23002062790198412351051648282229615602288029737257622517751735735296615749340","28633706052633827656903008778676880763334474135245312839430531855203065501735"],["4184400498964359143104832841317946044631154116816460422003850397790206547845","1600984936515266843005987496660545822785346020617151321207056518786858418835"],["7956250745721483861565650505962485875497672220537185219355391505806136055471","6935739980986282025628870800422360141103851601804854320214524994878340417575"],["19693109461431295286673975631418382584842168567010074688626952943849465086358","22471055443399728483297929838199822450857975176446569995603080597467261510353"],["8596921753697779840462180889870088134543119032728976955652851164039581863833","5858252843083011668476195321940425330886672740228381581006896385978164411514"],["26961471134785595386484823335916224935426489479937611669101075121408990106122","26228875041441273639423697659840224921930971779431375468937552732279679231740"],["18649595120708847232967180131266274868341977840584768670280076852166049068746","1289546014816739303976152475031619128763583847159814272788517851921413689155"],["12445309306487966342433917144238384744223598267981806189867867055629071211748","18121298512649778542886931219900868837826339407136244344908855062524115471618"],["20026374218723574263599134285953392041593046149632823330941764690253474188278","15346775955772442804452740923848626704502241473261267236258698983973076162457"],["28056982410644773049441347777397919493792491540204923218367077569071770757540","13641396170401549837745561162107939098663161978760436717447117392475740071527"],["3239925192709573217359620313937882164309814321247388682657319025952809560173","10612059298755591901640478060936670863968246492439463464062605845393092468459"],["22092160068141580765968187728936298485745405840143364133965167558399400560523","2704075716182806516691384334337986664130165363101482808284145696686794092640"],["10251520329167545927562237642649456955638051019231791719419765307725634176574","28120563721606309066856984547785103692978490614969058120118626895244064610988"],["16314300063855173793279708988154190426744360245769644287559551174031668423874","27805853454505770649284318219860250005520875788168929170940514708678289425955"],["25901064854316678183216934169325692616774515091022993906115956717361391604901","6495916768882552165252434493730944579086164812130122500600299489807740890977"],["4384756280766677549651256175483617218151013799716302961298699676669182629906","28863468878703495310066527300249909089281009536924371330402953466579063315079"],["28122232505017894282511508905865299952203057334214806409478934625244670736724","28357947258006909867594634340888580645448530224703363274293715147556953026937"],["28675766248291839577584213984911071140990300140961969610847680627733658434447","26114331712362754919323002820976401943474335348333739345200437909940558316496"],["5824901596186061182493375915705717318181659117734757266195224154597239005501","16554623352855984474796537349186700408950435277506167721365196321085592668812"],["22483003680859739086124570574050754657420459216041946292271384863379383648306","22135713585633114595872735016532567023202221608876106128451109570567197457130"],["28242175374324220312902218113352197994634060139643852171125698101333381945341","19370334505541489464118627282904741345650739880129388430584923054397318724315"],["5304494086998952164235507707338876384122188314102181882726471423817015566309","4589904146466915585556096153382687379474608142688399426920371134580337389843"],["14540290218035279560272004740106723112876422713618310076095675830185372141903","15598602499960006551059727485907993883947930914556780631623053740444985318686"],["20684592831959858277017318501479487443125304014085967050465760992679561746979","1001410673965390260483401341739163575607994064057830943665492438406893558890"],["27223529523908840053158791232262599819600554372605213429825081692694734312806","19628879828072107252171339970424642854071760126538858693848246157785058456588"],["20203081824129224890455509619189336868508765378918278231116470558365925196111","5833690545691566745568291139522071788072258551765823824874185249481500967606"],["2459501952918028885711854318187269990504891986668618636877435635769003743018","15353603591104697487878807474161904893152285825220463916639686423987455884233"],["23478609690068461950562955480689093424694295020883919921296742985041097388164","11693034215851615569425538517263566664813654788822623032738009819170016447376"],["22697830927172306227401742942457044226150945361788527684730709281929687876485","16612974738698780599377126205191846991724326288984410660703916680077928992318"],["3317177208926288964173241997306193647214016462698447205144316941313383603515","2889242669919529469698151643985785378904504020113094711553800631845936326812"],["12183009609387175286789580939352660392676762908197115458894985389617043632673","18569143158871426478046951615833210614417802538971218611252848397002175597344"],["17381505633668923503888956912424052246776318954979553342299940614025436319688","8923731668189663535665476821630774942140016800057025544811881873821328821781"],["18132155085765192692240344984651270850862019356723404604788428176471135277058","24958125808566839377823681501687705404759675299545322378916783275251471751766"],["21748082323765501230559126997716183170427750947953039687567366307736342063229","11550604153054451042393880280964326467323043774268592503714706659079055615519"],["25080955971040740645025643124946230644473489633398902698418624012956005912386","19955763157640892167342642889117210830731729659139162444792100267120486052369"],["15183974323021343003489883782136438510622242085260781786438828737978301668926","3221966364992037467726539222897097115772988434988987010445523174154595216549"],["9706895090861593879033517556355001731953347633477109177388882898719511150902","7519074788756175091609015737397127608611763330337703773175343655767884231285"],["27354789455204934002754170758786944503053234305051742729432546519205073047079","11748996907745512175784360061488835377128354147001745317819491320028421834646"],["7340459184001572740877746061251764368220140131178450982753398107862589375715","1501832468453791919915728088788618572531068517814853600390953231200151975876"],["10322769261463475006492824704233138803535803616611437543893772885228120236085","16517039815997147124016100419280752979564252043671591319366843222691668962751"],["12492354741286329033915926634291202242571939291491130881136824404964293964741","25979747062717824559672183815845293536929005391168435317959108164821880736644"],["17540189366703993575707377934741370827309847197384588635592697387897298389346","6680603675511688365849309293893451701043599272559930854227518631586346376904"],["15436774383834621099333929423832202914318250909683326849408970159519497046525","5433334059714577559993830512723454693036508318977663339606944203156445617845"],["23770163954650588778458917863455730818448193420141394209118733453849107034171","7133078398276081850869781540882429915287325500221891593132906866178603201123"],["19340322530744874342097283239638119994288444474733888630859397003874525167313","24233377802173106730505778637599463983723635952727978638934696442064489291538"],["7941174494436624329550624188021419246781236039927012720111807145550241348813","11251630362285146915295942365329030322102448835620153476919307141505840199534"],["16174778689874664867464452603207599181808565447012464632280355378253179571698","17829085478927191378432215035325015461430230602100693367767215437388829658069"],["28334021973969108117657854465330709410238106237333865814036538201267427635665","19504610445690935917873119767246404266307272070027267293822311027736523096756"],["27206589046025472628083055631083681204798093978206070777982912725997184293092","9638529147057499155263911297509156046675741878585624411929150840961636391906"],["27685943291213358378610264865442001937357122429161577861579020592542103303564","13237876771660066740773805094827883684842878317231995599180001089233755844267"],["1127685417356051652495106183916641420389903551067868852387334779132541408699","15518179075954136532934226528617592984977858773978240238741203883256743421820"],["5202038487073683767843986842240323125572401921119775200313259893214912284032","9141122999310013305778783081558521776733500292834866024129423232429308030308"],["2975537328155393691605500027430394232953448435603115297886914164746567828084","25246554145699695195763694248824491079239678677292604892061279760721690683229"],["4030210352743121840808146798216073213386795587488540258271120280423793920490","10702647177522243065495426611592653750448035549561651342717120741572143922436"],["1583672171034771022801530508522097131820151254246705143541214600588023659653","23813679318735415092986040784682783237993536340150719191460965939311227331540"],["17168659404829723721031187065231785039983418531224028186173108693364132816819","4747995437355527972107966713123064909669800936359868395746971323316653116853"],["13816660311842208024005907230466488263038623221025506664911951410189703347011","15431613803014964424029940657903417984772858649128285771642069656449451821646"],["1114741114969773799541284506168342029778903739542534998154912985041307229604","3492726132127025862419162614374689422586184254495818068255235358694534331106"],["10166532367798044626040717768660687080321738162694730740100907747051326013038","7173935579638826755388900901211149196615427104939135773008287366121510037301"],["7967889844472117535227245047503960018409711954510058233659259672541029802501","1378203622436447180866591967322233644808055131813610651489316269605533933228"],["2756430051620813349944521802461754810753791393701725256478068373822048240302","17723816290474663752967870979892544874644439332518082931964099955883154265656"],["28233033506070109799995435824278568887063295995966742697793426213855576555683","3155109380584124577478373483710982335562580958395206984831453141359293335262"],["15524447455071815624410621576500144977898270223516611019650055079231061063531","9132212807317971100864468264923118284546952785325465638170411149580303468407"],["7714212548360237999113298123073523707205309614776739323715200949693490079089","1945666900205144197774305614534314521734297629502157181545879378175393205133"],["15095984349727564983017563245039158282991986192090003480204126026598449689110","19607434448930108773121751391328856407115190491325686756358710436043566375941"],["10142002109469447931587816823901018106942554019486718724329973623248872069762","27006732273796382710646899665100062636014887432328016584530646831621892819623"],["7048404431453031345937206890716998934446985156834677044393003212697188353503","8520056714199466345226846985707344093606470416993318319786563991622115573236"],["19859443539281979805084428699679624681029419780438553015226961319246838517960","24310200353897252065589285563587626135760324094531806908752636029954543798856"],["2962601162871724418033764414454480665252489735475662543298048194379329538056","2236998252454451471837336263936249290551998582082453441363432423130727518671"],["28238011952449817865761159309390942364835001547526363996502124602911138733537","16907344487510918413155521261381222580964024543082154061504377792158656602321"],["24722575862536261959052390573835011310517953405362441788407533967014390479476","19938645416043834374117119376782493200402130231015833750640260524883976494334"],["26436877384887670892560434876686193107869780651424829815281754439460390048124","4305070166633510594717084741018200536175173530634489478061628002025772313346"],["27463128337053309827418592073014714214187489508792793216716689385862373512389","15197380266982075638066023351962824486374628854838291942876859484444015127598"],["18883829905101373075528110053633914346555819657557032131827176096600034097544","11536648180028286417677169497598818121158671936238002497330345896258852545142"],["26487412096693031833993344182459926267969567736577319444756737247344237398035","19162397505580041346792660874638782033987280905600228067055059907997410064227"],["4790224734159968010146123076784422289995916172688124752610625621668601656685","7777360843336504457216370546763602075876206030308885789767850130612143867051"],["19343600119776618696904017124322577286190992052080026865128350842094061432961","21286487145679232564655363118746579163040199085028886275414015530316045393569"],["25398830880435161306975250028868402276157323803002551163129778155697965807341","22292846661332574049034793936940103462275392869323100750890363574922093172803"],["2236144465054403748402365835317003111535121657184137048196126716779176073900","2559077823467835350833869847017022089740104674498207325729923885755868501682"],["16341282339736606074171063907021143538087454458864844453853636811017456484015","14238884403679138595420415348534756275122171846957210387858521876484627482695"],["16948668353040801389273321043029944638338949693762030400808993321797661920042","23306190347125830398018225982357015877748421130055971810678786304890965842201"],["2834937356572437701746739178112608805002499849422678989240187791737641734772","2156318288227696583464792385265633230695615661219903435189422990202170497635"],["16967513790240934916050395407363573194902783565295487584715740602506013601881","2472515867247611743512733494516537271652674791259922218922684619672202844953"],["7297640949257831381912521649725987613614186391675145651982790479067108981988","1769374368338267160553414216425814634557746551855022123485089038334630972327"],["4917137787404155923773845251258252770848919694700358469094046049689586776990","8520485900341690636424475917362303679602660004905623012583571687972595047453"],["13970928007653064461074389163977915362882456423109198405504290732317258506610","7565224146223640669257515712184434706387321365092530417243866503278328991305"],["17264886317131177051306929678326370966436534909834852278350221074824302587619","16998586373098234914038592534036334101518381222246281802113136628282764400232"],["25111054707365952388645336474877180606957900657363481300696200012617264415780","8502080022810513975277330054694989390355800469546133549803518165422636456347"],["642417261125923362636068161752140625008917353672929945509482183926671242486","17727278620165301918122549566439228777041347191163257426224337128100990957622"],["24547835260672786584946630970383110152186850065865408803429526851068069790919","6927906720323431222809574445496380513033689573848155508263765156150218286175"],["4180608797688619327293137923416260567778688681765303040146477690439701878111","26275606752263344773602376973476959382004053045894846176656061817862124371932"],["12042915446723405477900375643909388918743547613138409626333683519019259380475","691681006566435705804502272940290835826105471964917938745685463230728240015"],["20711286873377371056565844363066990928998945542958130317761181270655256641981","18367381515657254167578034494976193143974436914781008958281653688786730665881"],["14159518519324916285014415211001248917515979237819292376151328929801228614528","28581093592197605301533305054295218899896427006652595618538786816583764897523"],["26355903193346674027662544813292235332608062211202753836033515300256002873031","16626562743949413599628400630784983291328283648799485120225304348494664841047"],["26867930467012320171609258172941133765281338752441480558638015232102720381422","611533762079486460628364136232390164526950682831689776859829226476720092661"],["26128339231143273387165209577706546727454726935357850989529867585063308966606","13973499597558200076067893017352029098758344776145826273279864645496780124667"],["8471509033114622360672260957614148884380668831913361401630765853183349831705","21133450852808212995461448768444457233871862145390033124353281971356120416526"],["28199444097010270224997945289843043501533994144528860191524796256816443826086","19627644912968879598614504711777662293764507040802250348248428488866022016927"],["5419968741970756984004286782195997578287352963076999610470750497144040314596","15538947983926415548094164639903429051949275026013713395696612875201565938489"],["23969258481961778393047173301479456158230123027167926835295575853467000491229","9091690437890079404617344976168124284569571421527484459833941544070435952459"],["27658728141276162638685798285018924717111680941522650294181473917114583928715","27486521745936128122456454041699471880174380567484680859727447900366776338905"],["11753205461900769562213448454268776199161821077808084415489311380727292434340","25544877968936012492758260054685569673444355113639378944197956694449231514755"],["11085749587048947591290332726384629079029360351737910789256769329160125412407","6545492517251224976507864388276424007111945645260401500532749049565703372442"],["27393572450373303394324878937519236998090998050597508983817149665445468349478","3872214906571325487473754317832420562072737228599259466204343645108920078798"],["25933785698819645172503108084230055613208658255325486637090120237374777649001","13241938206856877021330594911980884455701193405027247173933122344570874876141"],["4243732531872968266471127930522227932064767323016151698008871303716326862803","24813681025635625458225405150366192512334215494078342067530551442762484377113"],["12417076911722559411208431737619716428185945021125172820354812824454455874950","25170429500690590818489989811400181430645552808865817475816621633391468538718"],["20749312326611560084909471375372052059230050606926004618768986575536977567691","10287447951792841134455618141010617911807541317944845455405442028502765165458"],["10888422474867107504622896613776510295027305095640443365501941351150785197558","27641010689964870735616206347282686262508468440403345209779517345678839455722"],["691507756852482961430342053159731877124744138190460066542966749902794226614","15254412360711537575335622987782831454045164129517615746163225489424216913268"],["19444719426212102418574633762792782285632061173627385857158967762960222198861","11090399618246648821639674395686432734278641345316624615627044972504930187278"],["1451965822722153951804476294976675533839966834042798970570982799541013942262","23405563339732929099838551107356769327264549126608747678012692193506870498223"],["17059178747927297328840762894442488579454492511174992825674488396370799550106","5308157261211415652499088491492429226013115121374990601942584039357674188850"],["12032091894830485595452601738092662836366025822114901734204864216606199083478","26896243904380431438746160901363449547051475155145666805225060673566002531356"],["22660871720339257626381177142822684599968409276177420162673026874894820543724","17196214136429481493278937834420525717054317126449421421351080388083740013216"],["11335299458279256209357361569789230877763981741936203298348769279006447536317","5184549846814846485295661506590166621315427920013642467484072585966713773430"],["22357185789664710587226949419116191282864706194908207296407450379752171409344","21937482834534697472275696929714780266668302706252543782482814117192995214314"],["25806315649624748815001354470807384576848204398768226766628694389389436158825","3915243808841789308030038375830226310264015345356045086077233869983186382834"],["6522981658122558920613339495440230831475210861029150457041968351982561593971","6292200883109236013121954268450490116396568079199658027082732289663827037338"],["10928004575920871493902121018571461476480122937610662790980539691219544576054","16883610155535282167427623912151453565527267475337924948292276921213286409593"],["10762482909335820475522019438177235772679529937281309109884209714098459383149","21978652400914614587898506142188067499855369428992369515492024048936948071804"],["18890537046495508895536719623647707100769737830373725729927065151100758033638","10587077752926111383788034942464476642217904920261429919299856619163548687415"],["13989296570049480911842711286403578698840295619409969529929869216322937239579","3685473831629779047983669348644324665271430203869718801181078852411212359398"],["1415807998009563749928585310579277988044661573382498354987843900636762097069","8212532667572508160999737380419859640398094891802327269416922696447215958872"],["27028671839214514036945370121919045502415000401304669446180112584842454606209","22636975895281533478601676397429253564505703710314630033957838859913160460954"],["3097860396050490835560328811595653083571094125305175221802696490767687111257","2662951558007315175580880794102115151547294455557910530168961875831763084022"],["21036800240237261342429946311243686898372464621538485217549007917841837191372","2507168777588942447610935139371440530527667674379942711904399055894542001453"],["13085481310649832887842776334795428188818857890678047476489915592238834257922","3656333110831656582151363863682723602446487013266218055471037933171370018599"],["1055367761719513257780066402314170987169012658301125981905106777375155751049","17520726052185229979735490797711908320311522167108098167139139979507531244938"],["555847353112785523567995780500280695576778015133152893526786870991433462049","18351066340534826538742789794941852389462224646610598770323915319142811104428"],["23546799945110727302332652147248360137781765917988831862195721281256610407566","2016705903046379460515079079276475426902934030467714738785494278402372867738"],["14881458499191657816732127256302039471096522818064959980925746744218058088057","24935914172393531600035386023078235990777652548770686628960174114038296565795"],["23183798645314185718369985201000153314517773493755083146699974904951009329793","7578433185846883121151956280701594943381719583540877865560715501643658009270"],["6340945365658735223089359979948317797817573455139614440630262345451651217276","24114449329502336451119272716155736962351081229540804047750956619980440871181"],["5641873374573463724979960298184383932165416682988924400564619669577573297538","6782674848227322672237240883932521062385429322994770940057511945353160547690"],["18413332229179988957451235224376696542372200335970456724439433925051339940643","16335260727169705158604135428372181774445910127793632994460327644434058346417"],["14555442394964698918309363447681764810160197374254702688464436086087062547420","19517377607425068742549882521043589921086287966273929676347944352896042982102"],["24325770399480997738375048900014440677271716086938774008468779311126603359564","13053154119813182811168242971079713528327830055044444578116314402515868552977"],["73503015866834761199804964077641425703039002683766958014711788540486038328","25825611188874321556870747352801830777734596983415782041545155337077703455928"],["7611803170327591793529556156167119118535781530871376217730543025234268872555","12950605363571705809184835524797502684263826593138938140416159272935750035952"],["24638419613569744128818746353065759966868177794110865576695898692496642157755","4769377560005436214010944245665044547054139090822551146782232811705394528194"],["16129248140200937534476173213042842016095829788333653788541798488606046899750","6237645788008866786939881054743821837382366270471746599251505744551610417864"],["4957396555540608037252293510637895973884721040262782646680798852802039431109","11227011741578916575948370669942157836309315605698662219390915465186197108157"],["23570903116309125244025445496411900389146689545464064194550702720199236745184","13670788166667417953427187546848442643948236304080527323727801318003766671907"],["28229107586784175319027575211385844791747223924645745732885733689850457358402","10101828480088624755220342890346372909007132387423652680727030447328905788917"],["14465737592885662193954624407864377382264028902656378619374940089380859178918","21115550564505677579796260425402879153101101957519579394265626477923977762662"],["8550963253807586411083912653229713829687501603928451472219216405850804112761","21034783231546355903325372803044089814217569824251376906806676235673628731869"],["16515392295629415355043933185113877866233778912578080510962840359312766670797","12819981291537315189847099555254473403852390994496030386570698563428163635537"],["15954052879053551281766589747935682960324196728753119691419623166553478636454","13417470781496912880960528950120238805845156536092384293670029208851822454308"],["5204169184613564768548809983916380624472016156738456625991029501730808002837","7055338610326455799243655741862282144788380467011489435088106869131935904986"],["6491496197900386244092111982990870256478423814592040516174124127758056073531","27427591939159921505052827828901888924202909318029058833295421394891266582779"],["22013959026865440111937568754324533124862305445250859152939129504318860200818","28909964618802631932835313137869228247934812396598034159991708482344171698296"],["13758468602424725331641579482024847153180610909855059627238606915999383597854","19262810670077018484749595724568830383013103534280571425009621682733840981923"],["217602190970733192756016218559408479293384247139012643460286111649044502139","16084522779855155085769223969137083875408486193711097334420679993156577259470"],["14570428547837338611887977666406049131211779389465034402475114602933412491287","6214787822987404303438016544086648161691655583448596077528097279824678998220"],["25114950716520152027374893641713569944842819679197763620926312131034089111728","7854894291605276857287089725474125000927571896763975645885357198742129249219"],["10633563005314574735542488491913974932993525055196808525987181213602600267143","5653785991516029081841374350276268897779265730289734638538190255233234937503"],["18217916318139015720710445622743706876647003216171817916573903449011256576435","19403390437547417761280478715340191592534844843749370749945143136077507156908"],["5894023094246835087865750642561194239628774103914341070227939243295852270117","22213613418928453714110672191387489229295656213370050634236901021389288036022"],["8844631674269041389114289412830725884109814901099551144960878194278547483656","444634009018083774619799028766465709334186254967434511709684306047091889883"],["7715512577028813903907629369881118278456445058808704798900082912564241960984","102640443390142569429248742998315591895089081279563886521540095588362418912"],["23403862327610989266663072765894161468924244785204682392807880343628579482543","2268675221196217395970254047216096414357912847848601024828481835522417665951"],["27326953481101057737055090780459519626844018396976581867649249453029026126995","6385275135783656552346412999807121986928598153721415664855977673457968402317"],["16268411482391006255571698447197121038279191617301227076845149680300970799370","28761631593619213154466151834946719232090808159918097966942511932897667625608"],["8023063195258517305865258996885996749927944704012646736811041865396226896827","12864168038018373723658718496319384613262541527756093478705997795388113928082"],["15679225442779945544783645706821324452362416905363362011824444988109587270224","23870754541829693363255725769748839725103361357680048013247608729371711197898"],["10856151561945761653048652255012735358897174706123533911764624251923261400787","5173463973078410139345205781527903470294715219434698091592141754568642253167"],["14804298632122911980874462413493866076875755356565487992008048112139435660045","14923131077569828929676990034696353264286513071192363255214230056377453595934"],["26996105445097059915433886800454913139434213326526162860056819902100923118348","20789938606149575817466014310220841384887587447778507297522563816854786639214"],["22949850623254619659766730385631954370115180457052197327414625823384013889976","21221923278962828195741462244450881732950106698355690103860261206382830371574"],["26139832871973984535543297594860718713394301224649568066091047244195938336632","22069413220107308883977112592714659275570776255200204984167457996785870103357"],["20143523341864463669780132374566767967345155250492526258917803696978321574835","11687428332201159594981501533418496599513295188115539396652419663413521334826"],["19445383385910601857051828172023424957808879830282058711464557899620886776317","8860779168934337748021547446801723686310323608158661703961856932262749414673"],["6696790072084699026147976013624275270616610415320466497240926041878044758708","14837337643514452426081535346869215588811039253609251238050409947361633548062"],["25928028804616933658525945876577558967099581532552809716018433766788342050068","6007456938908514348060008252482130585241379138496890243039249274658773267589"],["21664927966934043842698609385357424784281096435305455439531692386439677119581","19377453719123889530126946775901050660882695550861942204908593091289705765610"],["17610102195641741625267229519250901919810830113165625566194284005213157273526","22053917234830893648312107412744134361517200462013890157077046981103839499303"],["18432256885505825516411914458828704357055620825239186486187150783068590964188","23553981017521646776538357600216175476846869192034825505690569706013515315295"],["170680084175954436400371795904643734363743058899974405270881500988570291820","11959598448933481119706623198346463522408454936708852395140391207911385129397"],["10751298964433279909358639625187072495298366879005392971833582932190965949252","28767086946819842119096951025826144539290225448555987854122910648751488960780"],["18166178287160687394442462249701099971571159795045963295229931348685252971724","1360143930169751024149971061476256724556963518531203411267550552160376662342"],["20788184237546204777856742203753467999824035289930886837899471757263287379439","27856813879736496772749936047533066332929838646768361281183706516048528797829"],["6122464107833443361856749661052461512608677874719393130166260159800578746921","900540028969383461094317956033546760623377733305374122619267010953975850736"],["14846485174706215395812840695761518729571486723126657566479072827938292244225","7855891563812209617157122345741388853405175102619356528086340945024384715341"],["18497799311495724716898397963515089822197423149798515589409885122374658294621","19378416059232664205523371937680668391964202295280376643680556852575955902703"],["16454335323872209060549191633691721282855025721331118216577816436791495445825","7303827580432939259328094986579108163968781296627032234371473036636895609402"],["20270463781215538337469845982372333844414843646307336978834945323393484281226","7227490117301139230129981241455718531111836012291530477984408813700430195185"],["3169318604512106105441723921852190395917815300805899113215348404726504865451","13988191999313865028056742010005280604529727005287510013031824612716972433476"],["6681106196966345783898361885026977913065568471182350805471058351690564763261","28543917187398872377788070003609893962310139706334936729905526025228667987205"],["13086089112405649944602829659579859770743459216819114211536277448869747738081","1805696023391751898880440827763446359109712560465251492020563205359451735887"],["18606343617694679749328527704869999064209528760890026236705371579461903690648","17669775196739210023756031651283756592499557533454651520664117176542634776937"],["8690962507058346659556043167854079300142172513733562343607798422519017353306","880085105489170758831856948443559701943933163569177011374066040176635758086"],["24567111068092838521566233530305874282798562342168389778778910712418263059988","28238098768725941849532478352833476410681742110997857888360443884490876977435"],["2099934243263946607421811871400472641072129963419462547617978089964970617831","26133940321077573492941248643766138073448818646299085417922660342140664509311"],["1770350095973260402608271582165666573624535596197760745194061398098913256030","8900312040418897894989078103770116771405319872499337658309658102872300138436"],["26120227546502522214111029017418650524273704712523907489729638815625991040659","3994907190902044260677290007225960173379082633240698758020284757728894448750"],["11772612495972232188807192501746678979889003413033517659882526485897044315418","6799457616142329337091847009093665292774593289662718794454104827876752172964"],["14759199559510568049033887745446121002386419358512108332582345811413020297811","21058583388897610987016051295795894583153274946170475233167749452640023004747"],["8879882939291435974253172789061363005178588685540793901911131802244135476602","24343162328454011626980788362098786434812202553150122912503163482989610200170"],["6147034100887168255821761335355708574054758420733901256341293253559856655492","14737016778653734836539137795967185155982114255487532516561001678042933633293"],["13801654889943695374081810875954585031773303876797998772267023866221859398740","17089217300296442575349123798331381752727112534361991634686707937668319833153"],["23776469790875117595544297807394899041032258697029352862206655590774026454161","7020130107446055244811677666162452670648238144058742932770424879615380108102"],["8787832648842785042755347470926486434651731412888420420361371025579650433714","3461816551892069503983884280202218341590224317275596510541622827783922120815"],["18369104474942961820611079318259734062818806329612052699772069541096353780903","1221209258704896554018939300009475464232205477841538218094186435116889032324"],["18525522454781339596569501273938654154753107362650781227039093891867058351026","23049556907955971039927206066871162462323564082399679378282086054277230453141"],["1890697598751323525642590540491250405054866154713442616961491883502469772745","14494325821791844879184589607175307992955223702987587705519298385829761302174"],["10367527449647125713655572247216468947683135908965243541684580072167963055482","10728556350412025144797085805974846790987947376861715694846782822165678101405"],["7101739857342562621373003910770121090751673142881196922122637101391303390182","6426591095264852110474388147374062907444684031373734980787762435287567790898"],["26536133096578464085175377485519434340396170698434683871638013801001151389349","4711591857016835811430762919124518445808445600316086585352958386738636413495"],["16176977216158735519729085845914555763016864510205338981979787992615964880581","14658659094581402355250218404463024980295012088898878064509765535981826979872"],["19583099150378765636232864244682634141818154064389048463087955915453017637924","7361952776249310841038998285751607113233073418986562318577685911611708479373"],["14147690055290723730764048475719426574988055877701434229691412904500829531988","13985449967351136439255918910209144086302265940559991700253897914796269683306"],["23023115547663501092074939745800577004677771474370079938076253087518048491521","3854556724883728654512237157675898961871076996844022941236005245776258291569"],["22995314600448499873267078364854490581917260025750426917055401169702204763432","17146479229902489825724249923700235345273788719353548443287853354688844412868"],["1375583110856780491468900435344786858613259943425770981510222465311759554898","6681320011435211747455684584064912645430228657484396287927781947243524351950"],["17022950446358745800784155460654451948799296996091947238669488152231332494040","24592740317053269762960925398138279048106463565752670746829492096176907206190"],["28565083009500215345501498285545771082996166655235023272601505821284490496576","8400255391889808711630074000983734060260322531995052780156074182788106799724"],["2229790906468847430665578316136697234333388788674393995218521925046170903236","19095385897400761103310533626772544587467302959335556780169666668088304352064"],["11735669596226085506264124216545686407070750820916809118549423338904980790889","28538559715052022779181729376156964697312997901017032260442999639803137675163"],["20598917592314860585757315432983455617319262985724048269616576463521188696161","5544901251337778368001753856617118075619035590127629422306745621482180051821"],["17885895183952688289605510855920901460421962939031779408839297995387308775030","13030779339505417245651256241480591822711483884146911157781774375239824876100"],["26976273138040516356708979208687148696421247521658146951943511589503755491036","7676195663135887313617368541799213837841905329777634344684059630246948713733"],["3228068449908365695145920837118006571631834323175470530930743080860374204343","15227617998165550270630757663787774790623213284322703147451277515720589998305"],["3734861803931267387368049483026900539758004521108332093386958275100077086994","22996966731129529354050532249256142833927071401425337324625521872391397178838"],["18790741592602899893614413412852556989828995676902891789769383430477637928059","20285099907200125303950944479842598870419922654649659829118832301607271489502"],["9556956127494450722036018367835365356333052368848073273747222073664706480420","3685212995604598126426897638546386966223775075625876878593006158455019089070"],["10419763881839258416815102397068804079185342259101288968040429298701800820285","1540415003840746250620544287052951383353525583471291290282804263132977058834"],["5590268405783838021712293715964724888141410381331261094069933806805819882833","19115972395369094785253677234438517043374855178444743918088687729331564870197"],["3267369066029855481211321479966917460143432021050015477973426449752832955028","27187841312143486749395209529269166147912602362290459296276434974998436334451"],["12638169645439784819214824145208924111727763241445292345136139956581993571363","6943254694336733165085226985361613492711388290971317521533180792493701743426"],["22464836910814494399136893800316248431356652965421924549570535355718515130422","28131597985498187547042814896946828427975221013183607114244026261456952009631"],["21066482925672117259234904080750555961357938928745517273071992089053491897923","19865319491605918819002515352469642247515551823525095592154407162716130005712"],["22626767001779482761775143407657456758468223005235368606309210002256119236478","27115344505852103429770081385325225539175099419098570002837254811374933868848"],["21642007510187939692800629598997606395661960564327666431500077608117990760000","26317705526791258896085792805519439367647168011724401748224339614494171675891"],["9671028550634486221943593723294586609742349274978704286799016213473028560447","28298038877795474813126160106940934551493877316292929869194969534428077803368"],["4425882979607541203891553197674378578835334310781403933495836228637669494708","14570303395995557022145288652838752083750009575995924755456694926703458339572"],["13511135869256716344061992088889296330306817488369497955806536462097671328968","7231804367184053429025824527163446823413391758304691961949765740989255950716"],["23390272484058424138242256671435014013371869692863193460777093516286668047497","9191344255557086637528098597885916640279591230496525781569922342924807345598"],["26762561399178701629511667785219200203293434682782663388328159080431019407747","9846619536314870731495851980449104706208002214403423589878802131027859127620"],["12615757099528995712283173379519973680274618693021134405520695602068770742361","9930703512042260563125591945948776723558407353972935625723532526830019967448"],["10401320179188602610545503769639974959550304538899344665615534824796440999346","23086759706593947978710321160603497106962463310527154455627193385623047293530"],["19837588387418747928702232891327179194256820716840668165896226127062959214869","11683061569387032729166547357137014952439268990228987052880772659612789202683"],["13684091028001781939449736349237747875961516134201097186827017946529111332505","19442664518458205452028099778872827450476371359550722493772464594602027973329"],["7904964485085226084199686434990271850367404903353684115846637431306485579778","14239441082727678857498442473072509076432732751134105665139246075836375930031"],["14109936756094273294065575128480034402847783745713729817856806207085337092219","24272517254483625343672252715275675675180397355210285108234662775264158686053"],["8489801076181503519344963724343614090823841149799983099276098281787836349627","4849999019760301872272651726693336603893003680149743941062557250327141793172"],["12784696308644689446826434219444039986689304040652015289519736079491986079046","24679105986768883324669757872826156745733850339387589161466176939279160470946"],["24524146724067684001167108182569148280235814986042321595586064857181677381772","13065620456115710091642492365799984114323867150069211156954775874277325424910"],["21372514212802036945346048013944621580565121878645393179092832656904333148345","2003178343603984439796717289191601498383467644822559143415400294694867441576"],["21962163842708141299562307672354485723305632084653140061311834178086225750719","15610768316648006306567670708097418275631637513453831544044255575587956691860"],["21514371239783824774481624852163191322709649511503780365698228381351318665159","17969882242851487312402016756875334825668791568081396617823257644924068270608"],["3702300971173779741675627056009392775658185353326529293239833847388715696903","8147447554144499208111759626402737983419932733005346719052636505865295349776"],["12473151272515360377480640316780087504080027924669903244536518673236469341068","13528872475138307397473989405613152249989963740775822092302704063599290590287"],["16023094488643516663195502009201585083775208301058407442286489007305482354937","12715921558271146729018134731700770920373047566241145664385486971954937290038"],["791147573856589750830697936985613636109956048585597766601008708922139763316","25311579150227660527192339755880081858260421942953977315034572265508829155069"],["22556720166620610914718571284057727987348977502835104188957542675403994681833","9533004275605320964666400754586243239267094205359948951909402090441154697155"],["26916895466417934757714296422858591412451190486467377970076671372153879499438","27674902347508165664843357197131626725978895760002365023854993325166137625284"],["17209518737182013658890642816083181383720035472039112920472400170146486794403","8747334727929869393407123710505868572745097977091435274863140293358893451702"],["15799317138796669955494340302427213846827348120344724300437306196505660057209","26398836378102201850787702672006148988000951198744256820467919663844652680307"],["9257556309224742018941774930480280241781462052895258662309016955779856735316","12099417769468042880476527530682216959878491275717765295433948525702127292396"],["7758853013413725679135081580116935372434089366709081004718385608678568308522","3373208608344511374962823167519508303573995002920625301014062464398973307257"],["17907225006431557344368360677715481965481613865268800963922924347158252971238","7507047511873530219081093135017274383517085545785586857730099732081903727413"],["25407981201475576151894975397402249932020071981251398186106066372133258490371","7852433350176454341073079871271584822276596860676818893291003723302887885856"],["1684188272038365796609511127097899552184723037993112987201923343070187748647","9309650700423768402787309295701528870163922931703589671988939693986696670527"],["10379733380202281172696503873957642107074798927569260416568622186498738323767","2889459756879590827244487863128380805812566601761216119245589309887763212327"],["2865788500556377030510073632567130816288289606562423016691256267939979058909","5819590243844385789475467198332597119401594059671891953845353574428116107484"],["5034513231347800682919158214059504290368820365202219631402576854591015786065","13192527600737378107783472047029677453129663782841804172951948423447712333965"],["9991109338099630742613854773000713932265245023109519919374757617636001047489","17198213555937720163752855573411761544710180944956345488405488425539953573908"],["795881177011312142677875902129978294188918008315301919161041897246846423220","15812486555082096347592344596287912780445739933209566023359514215364057472857"],["1905921037637141374029913355773918098669865457659485711331500012106516527844","20366748534496243347262469333126327957800803955093683742220692372244758513134"],["4301782522116769542635009302253099628009781893026045161003811732669582837957","11518095909518632178725792671000448156812367097937469004920794516258284718054"],["27654017263657273189133043107840817593539542170284403945181624358164826429153","25483711534957795414509611171864319352926672175544739373408169010852493905966"],["4104189310428597965670245397009270822909461672370832230225859610529882702517","26118639289069955369548829928412281127609022445499551618079665750209117432187"],["7207737158873034381340303849897239373413744773130648738881185990680650646553","385717761420321886333816751914660190793458761023280756086268393130852413072"],["22253862604613721472617702575014419407924112934261582401153617207631893654990","2010504915201880719102945525020963983862187080701268122986857293193869520384"],["20489825887288247141472825264052034886047950549210676530521110719327927872255","23611597875094396346389429959581521056838582179666326582935247645243713949058"],["14531190103707726023450073762960123056303526911213721770363543287273732445281","8998895216867727968416670939170535398752107266660987575541821521321882643591"],["21306117592632006532796180793694088696212515993099129149511164043332486108158","18015029564946131000325935143301840084546795118640803455622780263976012335687"],["2933648360419792124966811244294812898902250962223657739532999431580077785580","24172123280219751481708057576788457999939502705180955124565024653899619329333"],["9069484218935827470169059928967611616184864429622531296806577527384874441476","5840537053956095444298939661780680220218886016021949814226450952659160463001"],["6249263880659367534836624048752272694281260066291326661399771657967727764886","7601286120577482548895066042071607072156474478116419599879054869931887188401"],["12832094434189273004231787155548212731798076653049779630584857873550838867942","9437851764973176587944623229083403044469516126896840512226385367202797655530"],["2384709832972954140462144037914858048543764397092705042106504996848668384107","6554959454501792324206737586957848758899284959893139027024473893743475119303"],["8320637066335739212460716279598041085755221340722213087965235568236866764034","28651593201561095610690285182693087208043153085850666105673082356669095432277"],["4050492961733844017653360605056776637031539595743143434989631835709314415537","13385370340373116696375326292091087581448741715208259740267344812286701495038"],["23597256574793300686731556960549388816494416247609834266222435111504880154544","16859919236134796876200316987813484409738438267256232984106303866141244308993"],["2534839292889212001149501436467988085453651615608697700741910628144816426862","22549763974755997926084785682051541227567866017990861575974077304817015761021"],["20592143368856715204007981322059463262719893025193061406946770984818891674380","26939166675106420751741940926332095675500778577508801212801462578659751819078"],["26371868571710206483634101725242538956761255462901956271638673024275206071978","14859871783439939282615244346599146265776037451832666169509970155303577225332"],["12706434810725416078801497619285454013765824603154967424242462201808838978750","27481632534601785995774899669832812614196904047261172872594575095211659265093"],["10601272248979452946089005688655666312735571733590826467212200559315978817654","28638024761847992830866340728230401986045497225278970600521143699487003268449"],["1426925198969206958679835282410283294431077457943122357538233678487131773381","21431995863053326528231611201622608716187523407633049816956300558976425891229"],["17303204794405975570835789958552620520798870211054245087154371277588616946969","14836134501350512134957965062602759729581617983899833876141882538378497885017"],["27752843451648434397358148967699936144823777465538311266432110966270217996322","21285195316849694315434184711442445749324872396480783268799246024696757589204"],["6832814468436168208685259122480881332113921065700445795220282783994233869218","28814811798910134360557411378632767787574330668699800600954995870956596815029"],["27608264511446169272030117687512582948930394272338910726037053008536719129311","1031507561075255567631497666475850300002622932848933243074019433293085264346"],["27638116522298092837693697579777056375566990525647580215350294307868832205826","25149474955848511640561240261410238528606292951889076570458025233453279146101"],["15489084344646197091519645761206453421318177076485463832417712925957281187350","21446730181048901154463206024900364257434444363627878824177106687574361464309"],["10582209886080475390680463130415731158833953857426944010073804348720409233006","25411515815145205211035975168579184601506586970408514691726185787691853830988"],["18227195430886060033802333947515333903123746035128878337792093215208925289963","3527993545345458318900096038962854932045235957723556270225685940301075533827"],["6181381437262921077155543902540410703183504748718720442793411679172540850658","6695190270080272964489276584158650244364483506486617780479684467030134837432"],["17103019242370823845779885190417994190871276823379925690975338517249810558995","6966630966889837691948447966734506774399823410056535909616933849745859694705"],["10645395082945322435817098623991440519022509554636076508081395933899336735600","14995902031003292961597411063939503791127538168214703618282348935162748583257"],["3512300804434029046761786639343609625110917064037197040341631632889164047542","12210353581126708740565063287625389060957870931565806998210582475428713477406"],["19285999222986294701955047436792631691524081453278967388157593114849840415461","2769094185071088846041302163140769036546729947434584875930741280230548288661"],["12271080342445708466074452338020298809637635268654562378307488593628826476394","16499277502193359117561420771494540927691534486817024114169389769773040740159"],["1006759150359869071152495281819495780519926669115356743362172458131083786817","9692973025092655554333197247554929062819764746598501871818068358575826288398"],["23210381631441171788077296082956500838492549641568361298386779988926389715597","18043570162213715363672974224653178141479394902290828527603987466186463800154"],["11607034660219058040586601543923490468144771774329428270417037707252957410161","13902546417791554482043827584048982941499808936282998251653521466404599073865"],["4969190101526012558147937635840707629822376558770675621545212229564836107298","19539326561679098588584457242133903658554161854598889351460476200245815060512"],["22752705520140871079124579379182687921006582997825021114737545212291451693615","802434037637943188174947650238823211456978297962378737152800182818984033262"],["12967428295392175898719768006302818519302714563815729606678469336555886387357","11291326285142498966925037773353269106027055096448938391355177821894039603393"],["19976725301492407590148009915437314715371412761687706909632635816709115797764","21367503244968809340011655210263384766372549751825489873802585688324447160804"],["14137460266518492779269294452358822548043017755900121193234089137975221724934","28732712028441225000455410514747395340825470877406142560236164638367809594487"],["12971730308537036574794635849554970305285456340868750103059400815898667516427","17082399407114946456298113004784346250395415181475200264926742275570877434008"],["28276979181373237353184400447233712014744549401067304981121017419033440570059","3508509395879598541104585425020656886946542066633961180475278617570925872145"],["20091438053758723166930448006089326251245464504646966513271312785453575379475","6899698514600331817460794039334152182236377105597314283103490298840392195993"],["11915023885805177775011487053187036926200762714478145899689938992007688022197","27940092281763205112556364950354337801470140083193022124399602094510260398547"],["4886208662097423705567574083783440370258931504138939691919140205874685835546","25803020386973229013931496679935658912143589996519391761893652774143838853362"],["15570543890289074375210009177508765296117133022207432139185907211173636490849","4259742042411524187172875210542800255768773162688889604342950625979900833672"],["13870459794463832720588748497489090982938063829513676759814483463456225111279","7514195934898753450857995237713244951665791671677564058168005591749411988233"],["2291128771996986813173494386900990978169347297019388328080670369230770106741","7264211266831936449503056127967110019917516410228820478274473784719417138161"],["4855962500235868311331830317032097436513531063794791227398326466939021690460","2542205998857089961532439530540227368640119999543311102521630980570141516038"],["17636602306332776790315230210649442387701801566640762284547435321363064876804","8847644299587874864724266593515419555944838169558691521780673839310076195420"],["20307883860718010895048466518270938224803940584195904830232111975025519665275","11564975858227215153209788900667951453782176999853271557052974338212880259600"],["19216673843976511755019806090660860240141941175012169021212182873279423074195","10300839999509563539292366674787323862792948522484591247409788360266109898461"],["9925317225243520326474927321010462412237284537116973164030958451729047251750","20953491408551995356905676302876980670743860632608297844481195765891294682567"],["17165149808360467380329891123768970094519143425266757004369456777960647932740","13644831357691038507535117912059525917126054388923119268872382020820391961452"],["6996233380940583930432528801158214073040522428340180008837028964830337887112","25366923165063673151137556982715270144258101427561215219200156094827218621518"],["2934319338244308255145962216370713618803071671212596978264154425791373124820","25385931182367411610424779225257525365378685862340500750349197168627811245061"],["3063455053197278521688688370671905626081287766209109702975238786424370591959","18251996085726138944423523618027993123745707158594686784543262979244367815165"],["22451766184735887841616789169373882899497707965049852943144448339199056781892","26871064826179925125413912377833262104200009115543864507909938619945796807521"],["2980685047570521853059688464305161713510006052588594523576448313738943498719","16578893745152579314980052222144832341671864415932921566080168939018126488943"],["27013344184210724798265001104595005576038549032348170867363287986129283464578","11608489002554542111057147699104047536911743466416114737463903250295683753990"],["13720737336333076591476242481726619775608710082952007222236722983491588646550","28614357912306204827566591799083169545562586819347701275228598815244932831045"],["116048969339582937730409941340722692726760241353899409224326183491333082119","1034923372169755050704953987837614486236384633560233964352543030432122358742"],["7248487701978684590570629248262512762901689870623529227398606040309847286854","24719203417474759484603535056243721543304836195769748062755316317656539908804"],["1300724252775584915747660547321993676159690771364343277210764191093582054805","18193984091847526322177306791190468116100699290242341952432715759113547871970"],["12191971208084056052149935336635076264441504785226530767991919125465427405831","22183165923801230642145721843416993162892202861693939211554698309278809572431"],["4417314336801242473551775051726313592614504573361396616960648759363164028731","15995418838750379979385520687010270115045105706615070072128016416790644005657"],["4535219070711815870019159902380122200163055707325044108086307704226774325174","2251272268358023162266419417706313681361611130502367933442781652577822691701"],["24482665937646137447893676676589895154090643072767631674994951591754764286450","8335436692805751564250064343570907317188565681628156902410248098568538815202"],["9733021681250631896322710794346953858663861574511719178271917724930838463191","18654230160018546321659542059184567280751254828775346740081553297372435546209"],["28374672892753272517011471584444823692292579990411145392244925147396577239559","894267361625654361660129339919394209955492294952400235193121071755154399977"],["12620773445491376078692013723060029358851504489207992026425561631385052263844","336361467051288866141027758601466126954814246814279744576466961565575673742"],["2963047562909776947393703056371721276434270030710109968232096696203757891781","12348072124099518071345396648131280408331292410236410738348155907288712250153"],["24070912815042798795688553558533659612215540925356981184607496233817736663074","8661120049465867955233957353307960361657493050160473230043570638451375115376"],["24856691325815855136027540934491527784741271791262113252056247198038924957726","4207602187213144272147260631326023150422919049497906998710748571899102668737"],["4897067979167152124684438401980781231956030913222452740749956667978729546260","6923160810089719886639902062256561577541326942828331101597552071076444034925"],["513129496388254817222390998031233230467572517537696634216890776923699521571","9565271602932675261458662651841524382399594663908777299164415465351795379639"],["14415676466131661158170218758254094486623804433613234270077254719900627978700","16178986872382917100535792375431458964283084433389202515236927280547552991271"],["27160610025341430535829410012544571465724577807307540160940135492868537185391","8649604763554334266309996469167874538813931070001854622922750801286969540900"],["25110490790310436372788352162203334461576163375232739020126971647680914245015","7031681297770989526247951412906898781662896190951319828476038858295236744461"],["14788383003775776480140674030417430842340975582356068088515675077288011902324","1670955451126777774796616458354695062992878123007294643699405261265128941920"],["12858218203247514610325634010188915166423980546112618426793966088620730693123","7970778494265571858807177734958818577215051361591619690559563004149591107887"],["14203350476090402746035292692611884073046910176675735356758713961325652250977","19570073907029902256505001359398691149575710448397811083429348537999596868391"],["10524839663532137176314868118919733114875470607086231100187489171853470620880","12042726066015747563116142859797790581293706352353682432455179567420686676482"],["17181027182235773739862196878091013190738593333940121529052706468375338150131","16430327643614625050100551291672775225284543714237046734624183064294869259227"],["10800836927448123175216283440429193299255631480515465673493990506862624734818","17785375541031057728184199267025197324853007093577269484190465485503450534359"],["23415451137694766726841574957774123589499574454254529286212429383675711896025","12300149751110792430454381618115357967750692842212936443677222839231119536378"],["22612835688200976690825424310168444276987130906461433259847415252205562595828","9520131109141978492906589819157353813975343438418989510480893588688423177746"],["21552981394783036448528578299808908059822857220740599468426622596811930202924","5797827498313370280604891546623394301183773781445566414751417260044704677095"],["2882739190892476526081674700109272825172698655169734334188025770778624086871","27046926441646154918899209831850221924002511489893025672619850290050717354394"],["2159956215478875106215319404885066201567023740821838307431603417367997588447","4966091505275269508194009841008045616455001886566889560656147345786839871744"],["14335893536359078661351165121692083729394942417565113358369689640383956502456","749549655355105987570231776717888396797200651137495503248539737648756520606"],["18446513837706098088592683336011363322411909647104592156961548887249006235892","23691909542058689907413425743997927689127207025701973460407557657318852712895"],["4552800530045148573107344825726511396991728058452447467733401510225320202847","12246517505246925362345363053349331246931739078566771547047856398553523352773"],["11022626750628447401183241120641001355555461896193919770289006527423433367241","12007703011993605850976244524682351679149091265515266244041931350260719807119"],["20951167815116648144674144476690937089508135165948835367865787015639792624754","22129991233749241848070556443939656165956573542413441551836400247142069656564"],["22573323825219502618904378740940443632595227858780723788306558175468734165349","20816640774980971403472574716573199996150262940961934083449354583974343319271"],["18798219597816278432246815731693817993982630157145555663844506044201668539891","12920529862126935371450200060774135737024202935546992656671335054001976868593"],["28785078883794615142517332087215277482511427285935598426597297595265952698970","24657297347508491468394085341073619037008611352505881797094485085751886551996"],["15415467506476728757557730911004602826783029805263948848907089412279046991886","12291211468172306349022784990526755935070472497844420245225186380188037344682"],["7706937078519359604990088124757865772584423195836375386999833919183923135522","25818599639372957742160167665038236266912895969053568879599957070071805291985"],["8897377199786479669286522068410105636732717944914381820780355034632281372412","7832081087125598338861295784241097757005519647256803262409622810709076266141"],["13109825787496799910113361352260674332647981362985235812129409397463216211559","8753558611532060079024697474764110644003860975731196832635116185708905159626"],["10633276801365727151263761893967216756320032161498266067379137205222768740759","25812356391903643213693361756269062468469519798242478346662139063421445448953"],["983141828093695076718024869863290391071815052267224008685221780194679495073","26848536674370490617428297275683739322745152815353324327471774602269473832839"],["14308701220596917726496749907223213138717930291257935423607810210306542127145","16289633883457231075163438184555568918260021119186126311288483926472535652709"],["6527063869137678749692496080113095737183200000366955170275739298215207195900","483940666673948076793718876085428210302459216926974627422468183851700384722"],["18557874673405436220224512794927431684539460991876011725531030265815886856244","558283470846626873867878859392039875819960585688785823354445463096439291033"],["8985760620749337378295016252663915961694556009431717451745493302365490731433","8358033247474019846219709570199477016886933305514912830272831772185153997889"],["14031190118841422180390243402010947888706589432978466114683531994133109337391","17356953564699355649509571116349046627397712622002208503913242542472558238327"],["27922868082910639551266620419790975058477338443354250699969680397103227739161","1310116480991877071699351971479359412439130912061579038910313817382619302542"],["26856490622164166187588002707561960188125577362968537185625960819836362974479","15444414246930832675047026221180154654646008606251133667182833144866862209240"],["18620391809137428131715231927074282377746633202237205557273136169976012213879","8184835177052763326421881692416967191172679943322878613579581951323384197453"],["5380872076899416839908875413892520664520044647601022170448717048808886611458","7957109577970630890994714096305459704915355731692079018877830236210583083757"],["25478771852663112772880714581204781541818293193617386026557490133486187181738","16058091059729808277509820316447871275779254378582699715233794559825690621874"],["3787275466954512206238203833975426741424695715585646481250502959911768591933","22932461812720594889454237500346504367957346715581928967808966127315100136515"],["12860723034050329415182845324469671345155071976373259890004902767951734283675","425513492741276488711106040481909424255058683277297475026849593689431272917"],["13056361357739737621164147398100714851282169646953245594383461508564297962162","2333659344084445520348208836070203316181526666360597575808966592518905077040"],["16806005918384296797166827029973692922009283834155984767598976807253643777645","10410403368679280257590100095412072788801200108259436190756454913499022565232"],["6537884131581167994215515000876895545659289731381193496596893543719207489291","19743097979566618103866527202433113725458850420194133096773740206439943377289"],["21126026645874954232658352079952105406592118797867787324397165177221894162321","18050255640931630706130480836324368587564372488762340608119520270922312778799"],["7448333587556685213440294951254109310125606444570251960535430129061631532145","4605632719755082954145637427414258439804656277638934753450799804593444409813"],["4666193117421563426963213347049387239236213268828269011783931371487951561759","11516856315579661277853346298350533499171722794517151361066991173185121106395"],["15245126632928369162483818194967042516666996213440952869230208941634720395758","12376069654191740574203584135908614957311036922472153529801356575001207108427"],["3865602588595965739037754363711202078198974828586624267322884981467997060341","6286919522411697890719265918126391442439036641746313503500339866525434456927"],["9662783677560842660181159117332527714654931857828945776561966769721680715027","6909499245335566609303318582209257218435643194036328617070852270212504721134"],["22273401147226588978450418940675432671334228636432840951987654144731083099888","25438798324741705863028463857667979361619866553652903587160578283716615811183"],["21782130169068277265083340495649653198243137646239079745093637844333419460306","20666115945603843521588785183745886045971755781548724821217661571961050677371"],["1224823387420834083851664960970899446592055991658393332791216082562338702145","20088029802887514331393816014873679879532986713784273702586669257740873548576"],["27410980742274274821469221247641770656204250317556810764413170085434299430558","23721987866915920012270337605164015776397024017597330783102492451715795280034"],["13693645678048873530410659232124027015215209844939979510391823073920245162017","14357234377388721293572399824026318397814110430445102280923352951122996571843"],["159160929955365896937634161807418936494580134565438882692744103593268773559","13090407390327029119133208866411003291864106223617958082113547614440066564881"],["16736621067251350841755768292408360280426055757738824569446201381467708071666","19979051611333313133446977827509674143061105753492559214994260202732263392782"],["11041533475471198236727189884071137103085991200206900345891488161191169382978","14644580466818991574678619629035270459325150247137055896343689978746211884269"],["27949993004685451243534664151095006215055752456792799451889717049289951488234","23340054718235634959855847828185421076249491986876301769913517231194298518063"],["18805778706968157868674179322987239357875024740920208793982131409086089776732","28838240437184398843007011499667855343993970646795567685468879577747093670403"],["19021871133541425723244795791581356226845125870413738918407923159539736266750","13477989925515868751673999998561052477080941814053073965207871510349295771413"],["7749284894602137484676135171937018130309847557728427844141605758650133389644","137688332862844279765388503477845569210526131025212346011766823623027450278"],["24953596841440659974253128226484590802617562439282714850285435586629803804662","6583891496655775534492088287087506885443112694626593339623404009084832753769"],["16175110834309577737110242590461535234651473994158675681707487338229773770802","6666688983589737626996818487899302477813711760122416113472628168632732618080"],["5674267695031171880508159467263095384824849655228323553796114215694448186620","15809223648698480210819274454662108026879196396718929973958360462864110735567"],["5281303243492196597321271547908001274372309572834900517190825117008785463611","13235031748970382254993404284290901966825754265277732901500154729785303095323"],["983515354457239205204652689624848267253281661475853835296406880922191243522","10720491084306711807453821657954789842785137174316245916200330720157050684818"],["4830858277671766517377853748040780271592886783165396185537767392942898012789","3040652812352558274086563839319208456160671372448841540857650249502168037035"],["11670929708001079329602739446462395383179475595021430580233332030441252174177","22430510204496574099985620154899574321608376524019861737774450259363433343419"],["6892620855549234504703605385348810649056985204164281305567939309068687539384","18886511876681105426951954236815018436685577737564819000155964662862813450211"],["11367716517509829152729374207465317766460036372115274638845987552036047673822","7339254435112452661497737013822350289639788448298090887117243422288141882516"],["494595970839440425610106391952251140595595710509474054079859560549101389309","10523293130659270880716057388727102322502768287562700241556960171515194344737"],["23103125583404234271971353404996943717747028838365220130598239938533911561596","9442771017055283995168848472623474946933138001036740103415041674401657640483"],["12337902667550903966307448213338561507362884975605235375504710834478789478758","10672653508732083073848091300259173953092801289189257021906719872410078660406"],["15811616859167435315956834364982306509093255704885542684717139938956275591940","25566279968602187360598355343961860750852903875176009344665593285630757109569"],["23272091021279007646197831004413589028521535836894856300349534261215039041607","23628025787393787677655987304157451414638939361263479219196707330415242342795"],["1329606042041069459970036641171812653228823570433405378341983894957358070928","1885970905403760585535994780901231015203314304859835634846622717143820438482"],["16550581747551559563513541613327933157373471865196660418091108902708251948923","4857800326039322194685121372199211274924205001882945678565855424943506911715"],["5750346945089568720892521868226672627719151589569278817426315152159308625653","5694585750603760011174045211923995491680728153264002115272073987907223392279"],["5876239570030792412972984194533930861297494279783503218748198524423919105020","23345671558043799403720550079304246003279272018171656687057417040611978594697"],["6205080093479739419189773454702742197357628811251274276981174834959129505485","10544687732505339863187473890178507928881124922082473112480906958126550540572"],["5714789392417360944009687996512668698524719966440464214393906966834565810294","19593308656712323597833459780791458709717758132411284290629621940319246634339"],["8053411622856684250823983235771880931727271655234314390884412265883514283712","17865202921137300289189226262184507705460958889184759486268771723446227878636"],["26169413243217706192328058089020277377629196595193504223054620698293806537272","8372861544010071874763427494080245079903413120248532890080457431975237446940"],["14593003367162232456584539788853367459421619151317022395498097915773061291614","15220993406319481486936014755137167402977638308306723092837092305596141291967"],["19560366540165358887820431533985408118360625966208700953896884918168913184414","727063814949858736920237686442849075202982988069072519953671002158018952325"],["11245821311928306526190903297216308655555441939054329622914555834902096975632","11380423089697833943084886092874785890992146921657080420930340567445041418769"],["7542991405712716602034242811787226324238356703232755551297328837107822238248","8908289547146756760778050362379370306335594832671874516260185932041209956747"],["12006299070157045329678595657151871513597555306266339501704378365979089523199","9895950519542197378537522809760135246572439619497942032183867870710544956402"],["28249652781213707868808556758166713084150591078112953912537893779366901350016","11423779303378565798167335211032823818025541265777212536410489969757399183156"],["206066618781582069630655822397034918353770393335613058281954797227409601790","17611800914836872201388629565776847241336370799588842096508680178502079024064"],["22368836449839486978006286481654918639644389830006586424091509039610300462843","23711189159592844930415003143059062064010581405181416685897888636769587156854"],["2421471459042959160915652786726367891348789333550744356306214738620190887872","9861117030619105859148518870374479682203707669265421137814298497390698632068"],["10100098866955032354863070391102908195053792903917078465706205029004317955849","13446721633064523684825079959723646520843991654022809897400548661061301984276"],["10006631090990151503742605756829544245863978624946203799490258610503014545940","20158274643450852374747575866779833487576105855850060628786821864932718798132"],["25035238774770625518960193915263677673254666595679879557564558374361805356564","2593202251025985337448408514240510289160384962148361651643304210744548035984"],["17672168739148620287160377193309041808213012098361423181136126698645143005923","23588013514474633424258518055228810587291869670208087809207333551430084833501"],["3261425254409000214588255027424017081108309332371698352265142447160863261816","23775894025936069851525796362873543453605787354359218808888290631937584885428"],["21861455174379541582246636466167565304157967852111851258192812013383125179996","7869342425111871589164155582744026702992544361537664643477836423044879740002"],["25598310240037943965591030090560501341404317936158577073371096018758180819911","9996051310108580746454505683456561973178503604923924577206885541246136674165"],["8329861649383242810448233475376758027342939769919032161052217332541865818627","6939786039340700180582113878882736882352785363990601547999143234005238427319"],["22644078791307028134184850097926333405283972939177745049634701160937354733422","17747048702542957932159087712282472070203024241448894572575518464901811612889"],["20970697377238435409307666280298995419053096827839902323499385010376061640572","27867138232326835767196592974299360228050616132763537817665594578252354445657"],["21474075534890088917290079847199365118270042059942875259453071166929798959657","27865090821634753848232779816748784971798582843490219938711840457810848677850"],["12689264819336372372459486816485623757160739844434002891663426256491188022034","20868817279047035873333279116820228842771932854518803675898909252834109699393"],["26841360804094174080340074950529204716004839127960225521930128614463890017138","569967022734020165487424883963213041432558235662121347454635938329088537880"],["6926042751096130203072055646628924820986574471917064307373921544713267179343","21134577007446053421049976200397769282950093954525939262109632666179390389121"],["3318202907737660303795586905283175987210945962019382133498981456241569592487","22315038082515114006258135352918317890391094643315320567406898977528197695102"],["25959221762273985753921895129731030526979319352095930456451487454483796597209","18845113944965241383680478564544355666586476823414943589025808518696739943599"],["18707531352448572748313501409176618564854896318892646609901109799830197063292","23890914044535414234229884217698440779270793612701576621292808993303347412230"],["8950753241221037522484129555815016083365829655726964380014778474918508180279","23845283939211805532728927584072901028852836790513931032721570191593528009228"],["18191025677485074833754975971399500886447123838024082141093511465867263600648","16837050232697341247529924176318378645086774797283185892964143240808837005014"],["16296997118534913343923701340106584735927933606253121662907233856660430475433","2474727230950871188522561255919545621491950753140947171205022887804918533594"],["27114336809137017975495405390332004927910205380558668436683182023850122856263","10840625031905469976240646377035011288153182576963424249443358623184493282232"],["12949783932600604745006047648253243357456826110037155513809770712995478508991","12437273282206990520998993791021094760318914304691847246170169015558580134236"],["27667840818849977891494665658580072373266283468884539013190129884841752665836","19361410019026343437255874846119136780196281395750626511315201911231026553948"],["2266802030839571433155691683211461559928208559058225201018245771863004992790","10407876754278028666825625963776238995438257171643514234846091316804513720617"],["5509084890327606223143750474912984042336259649010536304668904557925316711715","15978736938606781444194780271261162342958330299755898038714725631689485418945"],["148103924954877440209252773911913938780173071416807122588164924813481306728","15086960415062985144490599586018702306746160519473575180709056031593424110800"],["8939725710495930655328381660970298671058409560234437366115222637027129508583","15108840645921767260710774312139535276243496843353479882383914970721956360135"],["17508969303352840221431193420412305876597447095211057440747674174767002055573","8283726330616043668710237159416703056417627384372566507529935214910750582615"],["17595912319092403572045517388672089464039045907511934646966539613904949558880","1682790305125859490540533076699858398343819900478519203778966653709010823644"],["20928590677012811610936211173590943165885843939429987761581456467197119214804","13755871627236094578057836238993720547776356966375244136250805219043260393839"],["2021917318090412189364371719397067525947556495374655903004073516002589403758","23049714359954249202174055722756166588490927149694676468721436396645803164360"],["15016611169153960758423038875961226154796045637610156076224139533449675478068","8090758817350835398252833831515899870045552158407615638430830383025367152365"],["14962631922613257255839724887398903507506881294547451750404077343260501088299","10019071057797283736319136087051554947643227360614464713757132761654350689778"],["13207680497328551983962824792268709267985077908135492404767297022656810223904","11471426610767309667746660110626015561951639227527893113289132745721724961946"],["3494311060143392765852287288909118100340124958668905290653869640812787803961","25651691358833882686721933575372328829058662778927218742875453154452872341261"],["13612064129786409437978196119144830679555752444354922845144054159369666382010","5955894494698902232418605695904640559085471689828166219877147083333782730665"],["259759504448781223430441695007359492915496244245753240696695800384641518019","6670044839501155467296160723949492685009561435257146278524545013058918329770"],["23779600646090496360925132125188706850423732406633365403166725704182911201129","8544774644237946156358810249905976108400769452069357617700897631465896748085"],["20000847414859778903967499794045747809439647929679664540327803619448626342385","25978349048821463623067403068270609644203884850056152609303582841751571035855"],["22335551765897070050275302124327143311199494723199656955453277675475162057883","628125909382805816087407925978544747654889004028135807425995627461967488331"],["8201185703396173483625711350086066741644579165232016466745373394427085958418","5686753551740570305553248342195351800952725008175336090289980410196198263969"],["19874016698826765882062121614274390770474377098698346563806229821896416065324","6414770296319235414098921657341553379376030861463699123369215725364454082812"],["13719215175646406082421671172541482527114628639241674459156215902286329339774","23247821090594940871881743802763802289761071249792867149077093854611682069260"],["6539743230975850974456059186792138549589501679289378355252989168419529967546","15412197407117313754415800209046866536075836863718814595384111191761897114104"],["16523278451170974242563909577187643070001158477534767812087157098408599941271","14333017736016737692120380885355634633051850264612280834362632437767864690296"],["7067867760468723262494152483097864977381886559290923034590987385954440389683","22564962872035121948705566967492245088580568879420360312461413763166087137040"],["3443697795066803363430083251782473696360548481671058112791958941415014928722","4563670657288440849095568343589050824457673643459799512857339592177035389509"],["6369682165490650940097930962666188269414230081371634752059762625277207353469","3510470568984473809781966766583886623206180244964525549447009909827105424286"],["5212949306087863282307810983586936110004758731945253353666577125519981567847","757162205852655004547044313715346613868787014070377103079137916188629388211"],["18062436787803579918159247507502825187997125645592542628019204992190267054365","3877924395845331437849570760001965300889764390895323816456461715375210112515"],["6112816708435863494855065115528237754560061827085431771137989352210446466801","21615590964786050061557437217348567895082181701117648612051400105083087547954"],["23836136734563407641592025231066576802057941069956821725224213408972913921023","180594134600347413680571271477038578300632532661334962138045514086152293238"],["8074167717867236851772864136695842995633135053278450852687181241481566510899","14111776608603502729583034990495469820759287737218863736143927168449739248136"],["7379996017900870901697631668767184470089431035284285274168287053199940779639","23442158990174478946807288501392422340781626411973000061875630342097041875562"],["24194073202706931934587252295911155406006587299462981746308310809209003344076","10738381634207107915690708666456162236251288792337303692728556714990186889753"],["17140206990227591523801681153287978468590339885078243399218130870710699844210","13593978424045428828976240294662982099391174071299601565105651977199905959085"],["27684583854448199627829196898803828550902049436951266599132339161133382511451","28253671375120913639755542830779197205863009514499960811886010210622777104474"],["28115023434194818490177359619126025637112943783868656325901665432952179358275","26234461095400620838392955379474720479592922278773831125639345685214926045336"],["19320015460395920528115690138488573762796768053859581048781659012609149230266","20266319514004620789487227979128856822415208956440088753103231480246456722996"],["3178590792921934721009472292170772780630125298846064590595451408557038275661","15678154464908170104741668622095077215477757171663650840552071295702717794756"],["9931375797615161924660465749442629840811642470640862516184557821855164096042","14508566227858926783922615519230414803956740485120420760371216521161279649257"],["2060698435925926552713202976875647402594870393687604303477775569894292131338","27768844602591706843360739012744597815744393271241432732235887535661199694113"],["22848701556520376679022184897824704119968367872109682588485025946426105395328","11461636106055081389326048669217026403755272621254889849795468502987207097316"],["9716125704043472799730312597906331352659842078351669971892088255831384710910","9048340020826390682472845465978882849343392592560011785475321535573431378025"],["28133669994870907726334185115518892842907562136536535127856740379383565771526","23539541369676117254869971080502213362738574187119582437196534321740684938294"],["4685829481001087118182101177871038864492691913472796045728993414519970659858","17379366628733763278659151268174704706485839535801023503326804167172975425746"],["10354080021359151059133204202655853341053925327778045201087691240907970202832","4326277078689136594003548550709700610811158782822261089855292551491586861985"],["6879725771645190603402624855701356670822156731398131342088337712761310614021","5974920854508008924692418317234846840851008913826212554845345732033715755812"],["8843925581270060088324957488723955306287795893570878546081830272814213307947","20119598992271941768227904198493561896604184615787183450042367008373520733374"],["18044325048816724892104156290890485532214953945655515314601699381503982085237","17632044238237353773097337654348523044105360976911574327588602656920844003259"],["5763639501011980706465825047353223383719915388506176803217247905987391670485","14829550066571185953673367627814498708472297274512503837057913253102219497055"],["6614312926452958473098107724715418729076957710103418935102178653356536514561","1548091055688161950375996403958402805439516098741606524145000146871715131984"],["27685899866177717830198135233016334044689406522631115330359219480514954131607","6828174857164122666274166837202389584123204659883554028992602165123021941235"],["4174601670417682497742727149690718072335333853919055717143189963775721072538","12843701397158796672698303331603731432272471567299205819714110744112739216959"],["7748651001886739710212158624567753831957983220401430433401185384362234148167","8008817658843605310796182694756091453122433726466635722770993440497525541978"],["20065339250666616121346314142849519823601405157506693822898294252881228003116","17664120024935289770239236059236805160827304936076330373344588746669691602585"],["21964443039745844892095557781229193570380598382858293968496816443376425522570","15735505999012197941709395317457824400031092972597594142553929843767930593271"],["16591982503693762758610423722813406270568592054213571195866773217426889032857","5364528397110609727683914338739676181759897678116104565238312301514297726920"],["24971382542606039066441131172252935352403589174080363896645804528839107609490","18329614956463494387227184205747487206779869321376894154755038014831919334428"],["13383119552191028787023196049418672833439888331866752582996186847812865455076","3193463375109908847975604376843072433871458678061145284805336116514811042647"],["15667551876762923947913129413995123621434923753856680120340688101027480355150","23038247222269750264700375834401276826140526832554248511662241507873127842480"],["18479839453365051207334203108051615313534813628426422676226183741447740946094","8507444282137046827991146407687295172552452608799506816030610549182455944945"],["877524762174804051512213002985121476289088819644130189257042303484789821607","12861921966529878970758513036243824852341646246921653326210097034597602713647"],["19092678749924782191184088323036754431343210893291026815434293122062444151402","20304927176437139878532077080643219257622494843871065581948677562118842859457"],["8368258981443168140899664849315032825173207789964852008152117779401618122884","9686915138865215603300430030788336884904490412898266607896457121771310824352"],["18997204578773556086199915816330734614310537288781909034530773443504770733663","10816839208556525682607538650600145800978877429047961296288766033965552311741"],["18405773728867057267542631414188520356494864188481452071646650195648306243207","27716663415001332060382152897604914224689627600145405427519857659661493013906"],["4641044643498259902368108377056195487858796293189908972865150124492100290467","6986583498224359686552400254365020300047920202666799467474339938396452454794"],["27997479038321346017453664092323552037642892441872285249325010593903290331265","10739974517551485010006875479211223411876557892329971346922273347595541776401"],["22440413299258641736546269919419981602513138634249523175587973735924459041998","6585244974076270367857828262868596464944025948479189943348005972600779383781"],["27650859697861033324925392862096093772562231172178398023857414778564583784523","5277919922199533454837845495144649749770183184053219184056681478816334147497"],["7111228034607683343623697702095715750367003588207821096579048146564873488406","24686689641068452760643084343486343255463285535118726543427094305343890704313"],["21723361385886512490692354433232490423672481780307271174081405930866073394507","21871446186588801438851377841974584125770969445882604826961827890924595550695"],["9529194823027106022011953345214364180888751240752005505682669931199258149901","17210475201089484504028434267026377467353537697304391406788790066082995579440"],["9380934118312285120942613819042492659118046876725449405787911324026293806397","22523315878217594531218854323888272436987635371619860622842916827303288220906"],["21878656960657422739625327849054292370896551423754304554284380942457678895919","10943299566588575625230093480045698029931565526949409088270116123983986292190"],["8729330078824212804397928080295923957939124374979898824854859502810482110124","20795261774122211871278229407196203098383345434418133700011243432260011565723"],["22711916546436124970415928633738248520672602272545548464580236466945061852124","14793955491288950319936133664735577186504592464868742554840271832914921479132"],["14101091432595762213186470427239020180897880706029675112064658691795736241853","11114686085203842964985025304025944004556287556252196835320015060203692856487"],["15632397842687091406045012177374144334478205237978254933523083752889126728403","25206699748734884677616586831301413373161840823891169637871488832209046592643"],["8872262281773938298893969088183578380446280094201694252874049392443503846247","2420884990468451830970366420215027843667748072016272871631811007211501934144"],["18359031430934009642676162590227643678014533861251580550635730147688613718860","6436100229468437900315422493436914997752387470068247026890285650678410789666"],["8799134017559097463404304778363839019363700252647952072989156880782612495640","17666703728117593905752380046243783554742027342994686194492201607897608686687"],["17515717906371628179089917734068414186839165425742154951085763864049053215285","8497530692057174880382271842258921564355777001192091511296430618634466974155"],["6247433399374086546153420446559303392777412085141656089726242289703625215210","18981893171891620395200939816779172497779660770652273297110726502744737582838"],["17608201533988243323336470403947056501197771518823507034207137971630713819047","12997396720218894432721619172333738873173546617142564776863729003206452741515"],["36278917639639745625565361457147567502386956489249734282556986329062789870","10962574981865971359943086658209203206574855284831150127668605991772842150737"],["12065448560000858915853239671771613326392103845894699647129578407383427564166","766112494502410675652760451021888246578354555506508105601695730659313012029"],["1251442328013428911676618058880089289288715852738665574061299449857574036100","13357568290858931472425125680368182566270298408278404202823656448509620907778"],["24092742064985589132488988593220952671705157233546250139327070861172339255136","14778604754307087542858745869445912308508409599765474101458861441999745544545"],["21035593537133904121444879132282380859184919392761518556112391665977656537431","26701881370484771327582828919953586383118686075295947272606110964043995101987"],["10865040105615098376618869032246405103627904401774801183415971192458549665425","23058611938842559531482732054454332410319795101628862703205480249955084746740"],["10494500736787771263425127595324324047237454492434995326184649200926487860489","12303782067050402248447438179394069589351371022468678026425808150209697303381"],["6360396352451593281990500279643377135019557345854086572755833835111987891578","26178774172343272553698316486925254852006319090021373745619772434018296558964"],["12685762977299930967528407175073111683094919274053991080560812580174373674013","26193421943776735423491275361950743796746440615313602505851529764749122728000"],["22816101801411054544434549354348430341259874902114196489622524851449124475625","9889050680676416198733703779360580481689986105119732080513557873961424645585"],["28297036813690123103352190858443939019473639573894130273710308899191024447169","16675076562394376941250764419454013755278775872557649801259483185624337357761"],["7406260397647018954357189560029700469723202423970096502582619312444061002257","23092323950865833451818222030536060061323482379788794729875848967655640301982"],["20425997875594166676811411348214152575740742218486066897333125710008991210213","14252988865067983259707613178639133824449879924215581840450006315238374313021"],["8215124860874141312548913623386816661466994107929784270331601919191502747730","10485205336244268033428142705870903080082491938563659733272523625875505726793"],["25054172824557633397774145092516838855250000809543315445529964172551738300261","13256354143001030925923512014232927387846345629643223015349950594671372846797"],["10428912830049074771136416599052018668598094852102426545400084910460209188769","11445900690278276306261422618669624999464248815730774689765884187616663825347"],["2426633978000022716335383241778783784893048890916771187434007269375334766746","1289189739422810038475952789491249035049566055653170617958737450877542294981"],["19498980502219747215307226929823229820296868367109327514902562990736709316622","10350369208886892189000654889219597526967683379133038680295163322605259123788"],["9086094393954835431752675536338281131544663484675992717583222667552235559683","15015837573862337966442026952431434441367768800015012784651509707100986784896"],["3309464041933798842285972410765110638835428803208944446310637610689054613853","25140436209855618868312368973189329504506875836627549738184922714563532908970"],["10857146539459645197855833276439354957583765035702271171605111751662807639761","23055993446957397848519212877864276186143419289384968186806200218123500615862"],["12530508188809993611367899867793425530568606427732253329757442479406425759653","3849804578976827079344865995888012675008368087275857528283984005893355056456"],["9981059118420531777341313471587705210843032950237910472969789496059320061846","27379136189087017591331492346574053395145736658132233784493921198527269583539"],["6741053345813997315492575670380752928913061994116349196240200059226834476042","17164112078262330800302586562568393411536351578030011108050008030582621266634"],["11761179290999836662671505523479715095981682953853797532389473232630694737232","9048763691968351225231172119856925792636616979510696828163642001047254246767"],["1866977437915535312304430524932465750571876867907551489438736432224256548787","2002050260705471073043240165652610737596616440178996481310072175637912373731"],["10389328171534193924219296493883497534799140301114345825715373287651886909708","16896475950861997749214035215438237010808879302081275291917874677733287839789"],["8288532193218349298248269695378199379518245984185911119957653496212775875409","4635050424190431482328089790634218081228483649629815616454204339715959679808"],["6499230645195317811951727714183023679128944072239399622245091374530229961807","10191155187844847546707658805626880774358543737974607393222781635008876335103"],["25903964399738797581542791260858403939586672663533609149398601251944064371619","23396281605761350313476671030585287812557465864532170358332498333229638643584"],["11082487992148319982435607846138280603458522187385679091742893722166761608946","12659602406696163262706398345908159700714771847746526740915832094000713596478"],["14977086264556446155450722984582355896276817509231697885749100755666444527951","24104892274460600219247732915556695992861447896873947754163084981236477905637"],["26658206253260985297471410829462304433068839735538859226655034196039369186891","19656704885856823167144159224076725177871790773349840840737361665004375231541"],["25035319517083627328423393247344922274452223254727471094624694892498128787479","20345421196668034665713756379059429597575040909947199948239355524567972477373"],["21624134282253861890277196710192215667413947527250921991302623593205534342462","6440509244464718483526655914700738184131370194792641060869107044108969971227"],["4858347331386987456280412522891500538711103168962720227473777152872929413828","27830912180542268056088074588931807680071137422328368354181978739932984611701"],["17417194327918433603753571285601990457356109770214530670727187165039598579677","12331175914067391678221568293027448256655162090901596907873813700727851944785"],["1412658503806354896523218492915759383941962690564947146469410451599416999870","10528846328920856136822760712880862926113062944011787544768709001235443951267"],["12820304099448438025170913141759846424418763454829484787189279726193627798087","24832613386830170429106534710816368385852681993427484714651368816720216133108"],["24446522860364431721783826086009367140383457752800445122035422006522705351609","21071827038817965802804735522313522030556860392094999109475675011397180459501"],["17362281356505743515408378728658812997416810257704468924001714004996762199036","14729775025296920160760460467200134872912177343465453952053953225178970316990"],["19458872804603323895618254102853206517978184835027784653398799070749327864360","27413348966381718062445617242480884876538895434432367987492833872373661913634"],["20287519817191700001286854420936912645120405516690755915441984960637802285708","10423154196562496312328684477322412958522890162125154963303061382821533604996"],["17154475008196014977325382765505136909384773047675997023379730144446090044327","11039785615201584051489123175053958954010495519276340988789461281911738241054"],["11410497274653712512937699681320433110968106044752798098987493070249463831210","16382862170885285989210034022429284379472122188251502795066511076376532044904"],["4088680218426670514474937228901625928345863954678783980883760575104954695140","28678703023984385796326127573293659319284289193999986402918319563243004135341"],["18458316116047505191049895857512643304344919132605754401514945651352663035775","16218937742496746225293253836219906116703124172012401011471167339175889343197"],["8488605573456441717956069466968372549806060913709481843016949639741754740649","8561040132878590258401423006311969482729815728226565145610388570674616147527"],["21876766331194519581719372288703245303394533414849484460891277847815371648515","12238354363759244157147372841872535407488577941599682325753040862679188864840"],["14438090409598852019095436904859488932290678604753978584337523882690938761641","3875952976128312349155687677381344795524873382475714997409657846106759801608"],["23099620447747106935066326728530346939726517367500943675248083726805470227554","14469520113482952053610068607502806065119994523798611962734693400723925960596"],["13927355832962891565015813365696391638591818110334541013876143145934250654895","26180194016004366225492850397014384569806921567487926742892034968329613381050"],["520238426421476097891433931577876574626017156036394165436806912927425854774","22744605520529970834372560158944060034233077514374328107848729626142602181525"],["5081679956123031280959179319665672329483539885457367636146224916786929107261","25370771659232094912085035251279940958371736347801674964700615805174850990492"],["8787284040967647955542005228958181204752487223672706610271126493892900081258","15390283238105409000600953951125323798733174228025231115412001216218836822873"],["12514508065511252051687390224251628258869416929343750511802791803118385762511","7726380925529634751576743704850388944952182933725966709926319013894850457103"],["27020710353164823090191342584785971786773623250936547931750271829834517245801","425331148198292231829856722915172340530325595595127042547807016538160869358"],["22370646733995066327524366015613433213125289444227944933029933657547648197821","804269270230579290213169073250270948419859218581324513464332620504338805500"],["18931340295596410599457271857994771931730280193311415650592023329221667564352","1910180238478558032448382860908456854201439507387216688658646978190446290109"],["19086552044726702850383374413452830963531060002064401248737163598280410649932","24819191528985212732982136637279342148337390596350365826463569436009718148262"],["11654229789952393106680558111692932774887354421617879455824540256045993910888","26786668755205817771561783999274290642823171858123255767435274325655385872122"],["10578099051157433869921397175686136680117136929343186779092406275936077721852","17529983231925648191008938701083442071347504917762660753620795910016033442739"],["17142528603128791603222657126400035345706731118394263779644897581584654660950","11006778733768260249154905111405452903870491235613235723176851022087052521846"],["4940762758056562815243598570722268576298705736222068033702526165136626076847","27523119695683657692895273752823102681622469179893093111562866203242089929409"],["20122050096887732845064000692304467347353458674045123342265929118960660808484","14056498019464767922603643715327538843655271838546625877161350978314348148147"],["18368563770051019681713676488203606166586215536199714634086568790988354295160","13780339149501779665211504659956349173445776839706167134367757751635694878654"],["16966690809976622926399283409054183081144503390178331678567798402818443030397","10699344472718068144377862195175677400685617794475997386948383050133484126601"],["11939761825561874901739243667447002936645456141394022013630814100233603468487","20191599376280726991471117600395360092365103253537788861740688962360076443551"],["15240787591156849744563848196925622962262609198692664951764627474120590212296","7369816937105002382740992558321010577252479438351216384713116636586833311488"],["13477843189367035651493760842446435763437777916297755029197268892725244537770","1797850401388216857455883471390177004173238166370174765530647107801535033989"],["28749988398025158071424767995743369514149047373931566216569162994800495392766","8253672292546436162315115989247933626331057810004350670456042463984723360189"],["26576092961336030627831843918304346049365706139242183490713267087436155946033","1941150923005407883466582590108152537232991426035241651827550553828786951092"],["26458872998309449302365770231687767563745596623051635481698266034665855554311","800852257196675959091385827434091647935898606262624868612497063807816771504"],["15083033848199475115018318645170895979816306438579456812107839532625714990590","18915962766124878255342262865031365110192849929412832068418928170216758141685"],["14038438573386454791870928743246414632362921805662822692403518800771402868836","5616817865802352240120388202124571318785841679867022090957969575097515936698"],["27172220165045023527702849814942582022045251354753869481700792141137996026993","8282374152990484822983846254204984872990307136187636018157554136515273592695"],["9223245383411635144848528064462409484645116688011563168216596465340487499410","3251411991844321249073495639990286556942771601866524580473083625076188276601"],["14897464487273905770697910112831729502471643852606199006271764477882974580093","18372293383938856011744221889789609087691752100184766760477804685159536238058"],["24423637582699740010690641483590316073593155568980103203267797785222580190197","22624260513456055656113718072214045992991854035065260550802107639858093374384"],["780236572873407020815724340662851939693384519320693834603355535466307111456","25923512672224022709745904726096903790285043899514848803273953889187262548892"],["11174420789017436230744933010252470529449284824619421869824226527438812775558","4456923368849862521552118220736011815318168969044007693486054659791653900905"],["22298667715478940236848878601736451413884906928407977535277393091092029704061","13372431327133802709438865756501775023711372543524953451707325939848479395173"],["27429261862201228456564805801948107004785673517667946545012230427628424824112","27703205248207797211204624812692444252630421402686537584224295183245583426189"],["21806914175756183466960929196313935650259026814918739226925874270455572380302","2522834495677377177371567842517315844244444420674904706051886853982727187600"],["20035994151613812658975321271191335539997864713330870361673413686946813865345","16359249357815896868600068126384523143001554742360633399265575109717477907071"],["25198261686840302635693293989027817338138747514352338181167030892981147467671","24201533981682575065088299342500447914763832848688240672560045896930696063153"],["4308882674834991226485628108458375933419582521869031361438884415563446966863","22656674178766093673815979326222171603580000715548656621449845932026493800084"],["20802382830963258200585667244483756218555662233529527254480332477401020062874","7543431885482731383986634397152189267425333421715471981299307692663853261994"],["18545993710563603577870635403643548358649847123834449864016594662103401849337","26272514166658254243217356785655455949877723573081393646965779225995252512898"],["5165548455371653911344660694131501392431105655084755193046448623002529035247","7228169979567775543635440584455008950382536503120732360033282239694538299779"],["12848434915633580827380933649460675586909126820978346302642165340312001726610","8435975919905597784427859382808294081577272574164325375011204783174197508718"],["6286679962967170726804544172044949837643663137198247037543073710141988312030","17680004049590103962394491818943060732447717522691140716980027135760357603494"],["17232373865441707704363886904022763899110747061618110829757635449819500098942","4403413995325402867811848879486220070058342583518094699566335243832360827716"],["2488710179981729603366568798165948810761924076696316496760924048226330719631","3478553624253277206518968832760576116303906444547743493009870135457885094372"],["28690854250792662282249960308774283782145427725574205878705619031682125035014","15376764134789968575816707610536831432739749074735193332204540374468549334868"],["8290823791614886694243466173007858117676557401693358234312023710648124685586","9750600984233122250549291825069449670426678950384321287297394723811852071242"],["20070493232714724295839098762241245044005344598787205275996356048330957681385","23019005081179634670321286081880633970340110302159289347653073019070653943902"],["5627931718815396333164387998887539475848668207180431463926365254731317875287","15392018500984551628161781930528239460009378436013951710571762573716701809733"],["3613379658696490639622091152308123578305079711185669079419546136284328933348","13079152889064593522010836531962270309601292622231729062139791949688429479301"],["25606049057655763392729087801219293806574770270776129751129752823995531107880","15170346780140766342874210632925554629748452377814888575558619889892325945325"],["14558432887718704014849040882099022312955595239240358870521409019257505081352","15297995779084703780116855324557567788292602558202498790834838700698167420863"],["12332725931792426031229893531701589159725150388008874983571328286197620627006","8802432278190552888569416411891999862381395180058914641182158150811239462388"],["28920378232591914633612746525473447343329090584346858577587197409291050888734","26830926597661019950499995747422425101722785487758766408334911989424415122528"],["7134613183105865656346543557640683394163737234885445702629469032012249246101","20188118297592858117704349989567723713995414170576714163983633774089408690179"],["23248145298540985899262892163736615345483670001483545830031544022705933779436","1290299016405650431195661480073677720608780142360792951910965955980510568142"],["16594293654777692678935146267043547164666867610776025231518422466626142890835","14173348739927197118679453748514758321225394353791654420103702888107808644135"],["23460594218804318464559238978984667947426162161172468692506407817863633903754","7605643110536436758919113496023359232600684996174914307396102950386346643452"],["12740381309111512857872105067101502363784092534555425040864054602484875532579","19892895276022087717507487920300979017804395997424071920702815308279602028450"],["15817693941061246176442176038990106131335271275061522995664807245288181937885","18273112479405833988529918540511815596131733037416014184125356364177283978184"],["25000084160108198470353629700584914067932710141456564162414582849248772852935","10904443072011081328285582800464011135017024723225241624399784494437430871346"],["17732946272413671922179322565730398075241274486958282577237336040193981278765","449947014771150641772819162617569695802468709927049994376955584288746990161"],["27668593159782951208144913560298226548021811371404806043791215967685945859837","12107276243507434864923206483779941412773068684671827069730158658625773163520"],["13913407456729755019183863265186625580388843293078314308553984889719072036066","24246292590726774374290831413237218914431928601406155002452967262724317127839"],["15023732637243912734045360356485659090959227102632635240471816309429257572474","27013616503401390508564552651035851217607224637513772762422435017680804483266"],["7238378445431701428341920597801767100762193122270567868310437385082056564492","12192325063050133185662984665225058743723421124109764612959320090724677559382"],["22342738621592306477708793601302524538339661261188628651909229380602906990074","14595786475741319470269538562527711455278966162055232429703492651553263983807"],["6814803503010787268659833850586873116362767359881348741769933199508991514874","8732909575378306807115481111396665817888664496384908628082720298802526656587"],["20944849286634186546086178000490220944406186309321271705448838610563923909959","11668391570255168208901298258674691710506944897847627267398986566698659038018"],["8822783123253404138650256116357821262755601303275758432285681644731375709927","13643737722136831685081908650136756191562569131501823081670432285184184741750"],["24490981232509824332993637431047995730243170912499022926421890931333788942319","20215908904269290330683781951107580472652162274058422996383385214926026180822"],["2430721572600200506856339788697543045608664422726518224111998194603566048589","10347357199601485036578950228718764978761083107880857699650223353026003332411"],["25808358953369383012072536820459798938340846825938861722957670747167941469585","19649075649420595653516251874880031170115339742993834304762330324269704038848"],["25518113233072059237513885523214429896106864405732632704890971729533888296020","15465491870613556476155146129640239170677141731614676451133507724583476498780"],["27586942016268688375866664920950548687500621481058683192129238927081490060027","21652808821952387629310819579641228191737208941696994099444815316727309251376"],["21110211586368830904503330493406522283950831638389937233904411834260537093427","6911821249885697559701457773906759835319994273052732557508702983738125122861"],["19582924546359384412846244911739541903439837742174496656775750068432299082266","279012440048311637624903986738259393592500588787047054567380926347041057639"],["20169360575562068272523520865299963659216657841938668756551655287342572520256","4680815729502832892508124724726135221845363409052288457713201189984258326747"],["19730582144521210077091277112160871531722585984522172707335294771418283965165","15190123055409121825720254426934927668844262973481779873034286783779560805754"],["8110493940828771934163760294958999069327231414649384634175959368246344205256","27123269045621472417246426943338976992117176632864398027358939652128223266878"],["7046855050584345845880193764271412275780518238031628574252711790387010905501","9104333865884425504020670696295558184184849827913088219076780777675467064239"],["5515375869208678886971023971253424312574489907876761681221948649176799866301","3415938527053524293787028491414840684773690776161540788704826128384196257511"],["27208640171788586259691260648533733755741838445571325670981117989368752363714","3041946722500214510234857696599723281369402971543019305199565705912878653297"],["26026972641842693113859340561857416940631763772255144152385846386575551957096","25032547362791725351596256457466616233043736332023838892608843184108640155117"],["6344992036600518068531282715827090139808922422015003168294391137551787112226","20973535067224711376599534260109021773721601444962953620532332880244173873124"],["7862911809237859687204856009488604746479128325385862748206851758257974292490","15343491125555264961742063062300537304962879547660723667724430857996846905801"],["8394424457868191232341945950891815340160389764832358092526352658427724862223","26383301690384498125843632399109327766799268335745301006963036130898398437693"],["1586783161948551068851470463709026437039432210627284245848162931420017775592","5015233358548879827059820456331261565488150255150218311451176904883329995880"],["7213328128397178725718235373871143743868843352187454253226857079237170277284","7245775951340455545782485430999214043826727152628603077054669016005404705539"],["22821574642105017449529601108455041473529664744539637082938726946981724800635","15122149060787279740108290755476623629902365171597956263928030717200594382761"],["27639581560147053291286916533037122591344750040686804544035537167470690623723","4373634749305521069759857232153498059306418255426198464001125482953203590485"],["6524766184953773195278879559308542391537772535048308462136023586495158791873","16447177084140605449537820294411037931429745317908840696758506441509375431088"],["13046085979066539762741365946936733256821301935279470562378424248156676454032","6718617768318543791059023712009840001732681136738474447007365384439612189242"],["2058454231647600417710115977424031333166379951061325642783561091782484481110","10372648959008732622900149770370064246309684566100202217427610090329400827685"],["16780863249938637737614301474194240173254136247615905611363965237779529338210","11483681916950813329142199283228905687798007338105048099376560617773715035756"],["27750049601854093692171771774979941229464542587939746603405784872777990186309","24419135024734120271018928710851219676722233039403362148298961634097703229033"],["21532463666484952184733109794764532303811011326273319451653994271614863310562","21861812035009166836116567545801556952275842823203814904653407387463407521754"],["17102385733110429141697201305135823621352418364455906208860455580867690978469","22866124161046670919636649653419373099179883028393159726651018099540534265747"],["25873272577965896761726210453353420104945772101140925485081829411703498373686","351774217795030094885949146448923443320466069196737121070641378951730928205"],["25643090006916081718289556522941098076502216116234936441633107083074559522875","5142976604980200555984878711364805539572093284418458702027947149090045021119"],["15211191157519632628093953430413215448081094164112388750623500388322099267780","28188059794399547279146617199730816831012216539991744548368485523244730439358"],["13834531614994548128123420884966907836967844268671925879935975985510257275658","25416326452127994923268934233984117708477273138736863390193314196645152288611"],["2051552995792095611261005580797478712359181175345959963368507387576515411151","23268468800079111678707627845762189119452503650246333732583810214099360997005"],["22955272074152110609789870597085291860555761729376170835722156367298387517982","10242909818986093834389237641264810734635279187826842157072946390740990509360"],["23511128218565084807363019056094074797037191927517682480137523685290992679304","26613359934795794724667076145175642814642122316634560128732809585101121684303"],["24832905511299538144736551348404196091507070459615167977711594211086813113114","18644660409503752706118528461479960398124208991292382090116338137392160672081"],["3734865136376809807254633597888353723794979800348623201867747007917534709395","7229765401511601180707665980514243268391605271475291748692242616213730436907"],["8999013259880460867623854017427142418812648052713656662829246242294989716706","28006469614464544521905294483815845283452273853644022687502692741799365887935"],["8066097463242722729808061641458210009319413326162783467831893968655200674045","27246221610323782115928681640323369826140815208237635813750875921216599859579"],["2951401277391983815568169804926870030523977538310790766736304568728951045061","17245834995697938843449782458108220854114905501615269595666172694980602105564"],["3325624672273198226285709268392386387683321091177334116333483687512888420277","11088059456321488080255613263192052808392207830968331864926151167242634006873"],["23978956097384958411355240374240998152734861300925967324792370242082611200873","7894878969661842014691321322838851719667266901760126145806376815519974045033"],["5073826470655695308611452777828575499121555616426817883846060204749891561195","11405200890509211737975101403998281850841145880314306097354876097665018174090"],["25828368153221446050396351693590318234292497878972385679275275621249130467999","14558457581046219177906488475033640014925103940477709221118403755358571026381"],["17286518894219361842669648226899430778889861095490282039954512085888622651164","8155753519240671043622286247152797597205318222004403091010475014574243128979"],["24420142833932565490826341162539256535359287205013459713120462582989473759290","23860449588479112296691170904252853417172624886265096990713470121735497018311"],["26167093546367419119467879848348192144430728373421315051774001930977135178186","8381440875721246226811997013318334543368889981834675991235757002014200758675"],["3893249362350172277682399600407709717580508451732596718736886673488309526617","1996577726278235338746879545092327153120595131852392540620608169568348473591"],["8026588654514521239711232873976294755791065041859581912799618148640311606145","7383607645216090652974415182584257780132500297871508260729951470427509563875"],["24555628834512492628277174550080097978266126555182893056632122173819904514380","9972854283753640668716394104312635215924633736350364696686187915349137160974"],["2619019928419342477416531735674730283957860050141024987968013926792029408992","4459145665821810741781899324064369457949235025994107371251721957184520024040"],["16004446662644613428399746636235747410167779415964026564244392756848206152669","1586227872341885864657780880318813497685291052606383863674496431295278908560"],["16692853971439435956442798608179133132205229505892063455689673932099830135917","12983384179791056947523553217304666640356279177855725209754681916011014855241"],["10619638684792356665869512616778590649488355997213214323987144000469157287459","23555012415950409143934425875400275732586618111247478372081975107335227698071"],["18119788439476542044699535796602744083917419459456034178553222342726492633896","21350830621846322351486337005890735679859275482143322942732406292324530429634"],["5138044218935964677402539334380296245372590185762409903819202853851064765380","2339441891050388714370659179083932274446161197156104998646579493070523697851"],["26587879195070643962226035521613447470351701304856601490044545753481359134079","20336117725878338008103573074632125519044362005726566712916734259269737515574"],["26399448144667402598463415159388326043744969721589265032158478415529728742145","5952122857201341372885674780492148277017529672729570502553411772053378657250"],["18836052460222736086479878164349082818953779433140760867355600931048786112059","20845314672429454256501322110255120320049716549524002363052040162896284491580"],["11093157793467762400471439391303233759341116350224473716058202945617523194478","2416781316684477356188219766167511116487812680920753419401990723161867502934"],["27770484017344898916258445975543749845115580620295031280522404111584058352157","21809012824241629555842064489799222475589670001937791209897098640208674738784"],["21770049674473520116861482315885634042366678300287591001953504049221230848181","7391601139499402367574868573697893308635465076544034949278921099363068853212"],["2465003847651961168004383763259466368991148263432506042867576832690940455348","8954650112498927318897936934274419980379541017030643204957942087116819776418"],["11823728747617606059264579252476789640591035453401043599731622808198926203072","5733445009405511122991913461462209974059224999944812616261100997668306596435"],["1999849050831240778882583231104087019991022498547173435674282527909924494049","4722693054702708843154500861067470091569428728999976242233568088541913902017"],["19002624940373929068074093428941671541237394410644013167580888194063562104215","15723706292811359091485064561477121764098065579774683683172940061130978765235"],["5416358480478257520990292214754725424373265109346302247008975216515469487765","22702852478537467886403305988116231804566501348793169333869134767022517621958"],["8206586533193428948445098126422223735849287446058369514873030975765315981498","26557946642997169873365387266363309074661770131320031455734449526411946702758"],["5199459881248789131378443623452222302630187184201531970435674783348097070442","25485378511586245852911392205325011921595039847059159813019645649931432808955"],["27356156717243923663620580043802416588656359499633960856957407068223705816015","14238258648073155525386061264468383895561535924310409949284859209483073436125"],["26120687063000745414128181790010966004498205864430656789876341689316138975800","12347199386422755162353910687801992451229748746639039004064656331450845718"],["12587182876702248217691120662522727399702304982167838395596107935713308563534","15138935701039674094935593312096561201004178303450310930556915971066612275927"],["13099664638202076536239746449397056394800649845887286591550758010902690963753","1950931784036682690868912238820344294261650579003957624141397713927896888925"],["12563284456911993309290111654859344174782296120423393326122364599128544089048","2847423425246175593050534472607179942308377376828753952171304566037026581476"],["28699967172031150160140796736370579338751328049345806002604913237834972746774","28440012666047909809840080687253581133730218294812594655972676069222727477576"],["6771449167307454799009383391973150465352039722375031571717486011575062470632","4765044866545708345475947028990035783679620760339313405795201344844021393402"],["14783008231479399038888637065636893624102052927260325441203032513170159552","25717657770172187102884989288398184661656131511405603099852661404819377823510"],["17352905043670411510071144861730241836530012529158472001150174395594766971219","11535740781156588082926416805210897807436797728504676167551345213403331278766"],["2667335592079841827122586713916651530323328452209721812843601261752446870444","7592722626703570225555509332900922094204859557762211159700879342544713628086"],["20571966972897196887618421833439667923203725456217851364444713677503371332454","20611328760828807549414210588049807255363518739864369586291539933243868428038"],["26968101081795712675180298770669820568408491660030982321518148144812924364495","20105389866131556744524988717261248553225707941237186006527608806024018834812"],["27555603756331106947787948431512913822753077684221988231677741695008269237390","3718235572749976247815185267368817291065894667962271926480105595496506850517"],["2143482022344642342489446740681661187307021551603479158544601101889528518556","607964989077353531504703562042268548937130421147992006986453193616710195011"],["23229724980902409036395986870687516951792485406313848620973048983214065112866","12633874748158806439385601621224878976769217146629723795997405944571339794480"],["26443643454389339323988463311324575277271623704843402628539650494780903735990","3631872002001098259899363459546210242065465085929421753183520811520319117888"],["13847748508300439342072615075779610404926443873669689067712959012907498242631","18403216014691161029696468375778294600828982136504511322863218443751442171639"],["23024395206604680983279473687603633294516672310134448405785747398841626345282","28635887559204178537476708527537071920765692216103535069086415550815389504911"],["16958129163162262909629280548754589979566072523833482961914958872828560097807","13420947532615022151780425014161631617165735035260148517422042913976324777096"],["11559263043124876083008692746828109522090932971940415022078198418396014022774","20460424703582908638925283599214152399859536865723608047337262585289384344237"],["13158898945286130972282658705868016504522123279413113462209277381192770486802","9153159166076096928255040384383441838281226718041611305922025542908426898814"],["20716991620322357979205845789080919822896588374143114795409283563217341247611","3161595534969778872042642155316559733291634143895147221720519951640484471652"],["11936690903564516281437497224473583704542789389449341718101723924171233389886","7259278194193726456263421389540191582281924063429252926500144932087098864275"],["18931440696324851788839976244070020663986046975165646984614145004268180214174","19786241642349857477348802094822125044282454044791514104134499883110992020537"],["18812730512879069098945909230304209507553862859002897483150164931122295441377","295900316028058139571528327439058716480458562392843968583445978655355317474"],["22639944463000624800383079474955894484045287885471367084924017133539561676510","11154872390705845001077388218602737105008096764272669928681453372518434618950"],["22324909224061006948272484412756698704932170779079235743372669560377358146832","15455068630525145192892683102782174635329667419051017019604187400791752903936"],["7467744356984983705411325934365715007105515086967937824727979522213049827591","11063680133001196383708994402602752796052905681982506128617255121107874254836"],["2376585599583962507007810649617154335184958869703891109380393059387481265567","12842572487163510170507760136898921664494911054871113412162825465294672415365"],["24535420347954835965085794067067777932107895194472047890749331730152795557579","23788604346598374398892949818657890345101673752936633098464623615285355815841"],["8069711848271625216652233484274133208728392529689497222019790938244009454860","18028012013303692877468925546259266395843272519464928385541259961641587197508"],["3030980873631434417920328669461655987830067195912290203694258174386476629014","12106069925917842906414818839465251834320295551795501213978572106286437663865"],["14028070495891747630615461375231935161639396386453079392612812784484171260517","12249096727939027847080469174752743488543787502618578674219721849124649053239"],["17561589394740105507388513083885894290756063915493273545746646232755916519949","7387000441331453619384935749836308652538912801666237569649893554933812896620"],["10866938510622343853964492154258251918735405149390510724833333500852493097783","24762721576593431678026426160160240569434999179729974285814197716140583588611"],["7184382586925506444530370123254044819877261198840243394655953868400346701324","24023109365126334853389353477175767180887134419824762034879945420991853545150"],["17155710203395780664766535857536360988572652748274776455315041524235336332570","21717887799179538994956827969849548018562811672927658508368027262870660410764"],["6107430504290178609735085355489417644650951198942754387904321576925259068492","15050371149246101443089739714014396972739326736357950927378607705040504249783"],["18423770561960401077735308887625042064729371352784791751773771277721316486864","2423367676047525850340539016552455371467227612323623416459469823161697031782"],["28884750991233850256480900846579295287239199793986625926986166432075681690451","26617859931160820916970197411175735535190301414753242162068809124488774137781"],["4497889453296348075275278117439762652462274108956947695809981879956444595529","22200188742117725407981320254170203991390587598451790518542363835794392033027"],["28851667392305859555537160146553596822375620482224736845838025652632183793044","14280406589833550357684675110760657833824566889450044551802139500302242547111"],["17340381415193466683638610190547230219054159658322938243829696774118569998296","16956999272603040195636424353400252414918319933861115167483930603704768959373"],["15932077258792622931109428082312765519347530512785525233946283966631593811274","9164149249695945535545107429018882765832273743166282941043923994356794384798"],["2672540227138354974699562291407458837819208444121278450712416666092422627176","7973076591087386003746289488949473490318707740217982435781536505781475312088"],["28590964424626364820724834922977285044165213558923647000289548359523620895213","19681563898180810861586361496106677227613734652111283233408775467019439159244"],["25220141200714833398635773487105751036631844028310202150133115765667738396489","10659073349313184268730829820550873236474665247779916686247327640633755550911"],["7264447696173173466272988417413151794841867421259182464678880862604528155773","70997798647200812165178237100203115161663029527468512402346708397169902322"],["6235796198750593337531974418921612654969145695292416973879193291351613977552","14111713702671766250367917402730473951776333119882309786169982645992235266623"],["6822689364869387825229749360167550231377267899003464855475055484206273427478","26352623593394704804937302125926083740161855534029076985721304979150320766329"],["1545251029605157710448977716383364217621445124696500652095679413038552413025","19034863514113381496877669693782892532848556955668823610852553971221000714435"],["4690987728378174869964390568299387946762527957857938525661874420944324827229","373360664971325419502400294552875073761557566866747749645183146476072823350"],["2029328033864260206235357616603370518172873394935609235301155289508942913931","1012229852097092896068339340728232722146153032884177978072179204642707458844"],["4529659030928472618599863981804347496817255010901254832159422622187612804874","12821114596511738725774162408838251944273701604728146440080032032685989301384"],["28399795126890450062430593204330838124715163353653725177188463668090123902170","14715711544991270595434579606097070920196364112304376815901839711717182555995"],["15230049092256625512090728091000594341262345062383367669483812357513874795740","11126326249705892135119294667852172995628194842725671250381057486552120897863"],["17434790964645059705229911368844324185236992136237338828914382863318211909537","8745289040859103395073750948275472719840335818318392533943201770814936621054"],["7622455833662816037162905460917909917453009171587247121733857817031572530587","9389025198590823896933759673901982584782223357304062543641338980041563571840"],["24288090940109308949385808835081887835516889918393615623795069923117192641718","20650951980913126701187566360957478526274784167757033380534677297830298091612"],["16674946957169451120576121827508239653257707661721675576488731147199058528690","27627679684488097564492959295606215815822712841881884590165380437340527433246"],["4048116230692808482666168971815797899189851082052476071240923712889179916800","4716255872224198309824649557437282525817810617097284474051002109164193283478"],["9042439424917133041172787805228648972376482859545880386352035971580057730169","13864682621575850623303260773713788387595701818393119372892739744768175171084"],["16016464978926821416253644887310787874793448153495381977542420072911074592395","22149244692905745187361598532749390998317397500555964334489950710537307091788"],["8465136444976650793584300405026302390672242043687894190012483595763072352863","10889353304854311977578888471825256179668701708964770334524128875932287472846"],["19125957579332625648992443665168477033447284588003850708531504400113111923819","24234997268297197742484961330354153660182590340307049663505573468781642677398"],["28894362175356264083747041882844497992265995824543441143618057651282905924820","4251302450763482184649564515762054682496129979129463545413492391141495635071"],["23651326883742810012124100084118726668973606712167102651323381252063156324562","20717609397492519780648978814671214606894425963981693871282838977938890988211"],["18990963201763999431097633489491974893651171725740622790856082354440616879313","18671403075659726151541921217018522796195872460997332163010533081839088608492"],["28350213859888308032216015280864469298693250096503232301830302037052657014488","25249946777618969921988658305074422702227416840036281725629009783757250918087"],["22612556220320306617517658828143221750519695928682207894823630512654127677022","14102592481742681382823785645568620942742053286452275436875753990905976632924"],["12259141462751594808206450625369312250747839092838548939134071001850043995557","20136685318182189447829763806452917841674856358536789252462918405075661809585"],["7220267918292134657844798174090800114578835182979600600346547061102363140089","21085759408831567063609174927359699519315266682798639780884377142758037786959"],["6817473001026492390701156937670797130857115803543146382689351454661347797932","11002459863836945503123267392175213160578402871032556327682073432039482150122"],["17300184027974980201773902429831874973297524182830016650138723922059578666603","14138427105250464697460735199609423425475080085875342589929237972887885390418"],["8252972376570516592281080205642530549727597616818060974467340660176168943253","5104765558440847989064270266406575819765270993175080913876800930177097219609"],["18649096997037605761723204977175254674839016896131392208001934088019229522672","21541761281160481681971480525328988540188082808880986448713250480826349961880"],["20693913486385886950509107006777775220399874570452939824132912903421203497630","14123614881471161071356037192391637375492604381880011177566295697243454827035"],["27329399457598927210480861222808350373898932627802784319667744769724361778036","9721596562674553637856830672110805256214255259180877812479753725108733450547"],["23324577720425624150997355078992631594494207239568206842556591005814409613227","8615707104776150179115925427306732252380601803579262816681041253056540713207"],["10605462028180919388902308552927767163340294439236481178647872269267769655260","14197940567310215311582574503821337883397037805447287511949555966734718922343"],["19329572970494984268725244144053478586338414002564752658485328208593524395652","22261684411292856525098513100306956100043797022169982132049878520080461661686"],["5685681805957912119938231277405262312263719687750314373213735438499552141980","15232369513678530143040101552285018606732493495934438514868069782461391236029"],["2565709559397414986332438560781193957892663556660957767354311929112012965419","5070075619264841221337230943748334883180202757225298950221025517435230302265"],["8825872273036724038480181721216350651704225784756350950285115426694109169594","26289484118946824860776852464518521625844325497100839681763556118132286958477"],["276014944212496763627174522130901181552269329263382104511108487795430924569","10258215491209079507177180462980309360441451973389147030925057091578883004828"],["5770532664191551784789733903990910750260174168566380940243563634346179371804","10458738971542414240853576791601369791023987722872828222729807669636661179675"],["11283279135226768298876080913790962615516123287693829721471009895560071461259","6269904114549785285802043827854059863987971604161063132330500827699117114112"],["20389940883980580996682385419468570071438005745401830969347995357019785286698","23288439404402488687132775919444332122814686494398000644738610535861176830078"],["7018615442649101748332292437477113944921431393222459830750678428624485492951","7005637877478678289588086139007056191244927445353568493924227462373216229173"],["8780497307783254933674386423379044618944684844577489573781005444378124308806","30072705509121391501209069365263837368068034394045379167778682598351658366"],["17263696902328256350682548291309084215726273630762045460813906126669773585266","19520689155709240810734875100684430327484044772904086836582023231133912902098"],["1077230587875922819894486736770589667421586206840329310200240209190788498786","15569907794403870275506447081132907383219826550583850691856468136769526544239"],["23226689670818597102251883838432966937190887176348308249357571006356971875581","1206922720384646477654955692041023168790966178526839923696447946370396249811"],["11044069678862085079044103250870524212460897038949248799208093367903705719529","27404723974777090156311147804266676012113003783135216307907633560173551667306"],["7459166490459730029111064466607677370833636669291439564831699872328245729531","12217430062849446247976628051307867481414723790602207338725024461314491252628"],["19603412688449034670926323195337878624722239864947221130194338101314872776316","1493302860231079714024926053873161536973349723534597144109944672023054948568"],["25585403772530604807737457820137582350580931640532828108189483173036465806731","23026297342877169893073054729753243328350440826501692539937497023013690505920"],["12044780834052916668417729094772524413996629936675324095470540525096236535054","26205806677990225176654121776485137617862069856804068065834879466073718488800"],["1313548067139464815489672417615798937263856539405856954816725630677339724069","3382891870150088344981432466186427365973952765537903970095290947443191491163"],["4888784955571722517203040646444636803603671288214319484847634466025886537191","23442889760536991061126105747873032569364456226401171197538501039503616633994"],["28618497619967242777148065032380180067421644042572648688996153453659283409502","21653795870453688970550927878468724133253549199209929940395418701319550883024"],["20090820239434594048612272760426981995738388372692208811095093971943957759221","27639202929801070429470880135027613410755381178118237998201919141055869689083"],["28076792469769641503203740464053064371283802672732054065250532098874754067972","27311924570340085037128666907840468110820722207461085921251671130545698974824"],["749767561867717159860406719241108763461307206667099663967546108460914636471","21194971382860570200401307684688154363877995617368343885489313176988359655056"],["4655586073419788866505552489174356040180650049114075721550354876449710819716","12865172724861878656125671772874293250569719301537183535888860877413567694372"],["14872077750088014940922203438677118870389272630201271377785158556373446482928","11487507887800794627670005027729703612166261821991976976825272959390029037913"],["21227592869326566765188445291438954202584093999415786184160889982707983410238","16619303189788907008223596191422987342512004192672964368877173690594048034553"],["14681904634668632058913754045918230689157461933658922115261379540309605498526","14945533779622888525696066952439059759591183849212645704823306194489413054967"],["25719159445193499694601305663649110629625528703280031762117375484640507759120","4120361930316290149932976019330493927688995249697144980384061480260109048198"],["20620926818244181460358566778490299157048187887897981378751684192639958160796","1436879073823407693602256215902479924244821984217321818584893171587375274653"],["12117889236607128457641007496423552910527865513842871145698263072331298941734","28911255309688463548346178182485869964020258605167709252711358900208100476658"],["16220797296924490114112928053093324566931430474224682285510940105651621325114","12925131307275888601654809554785059778090424434413190094120211337956913017948"],["19228298038204060741878158109165507482637391083955871744224859915217586999382","5296829471557748770037991700660085683541861892781243539131505382622455297330"],["7644271422255011751123324340836065678261437878380942034693734063567586051668","624883599475273943149409647393813337883324613478000382079031116852856674602"],["18113920115552753208275908215350023628252737086898013879314884687691064214431","702691271385112490900970381488637591958730061606481396885515221835824810727"],["27227426713950943251976824931256638170267812739212819197013420783209114916913","10853162624691627864014398835442946539000769627112131638140837367361094690989"],["21723466460340319669580735166472544163912517071175740862416550955229356323909","16422134624089853101042350006049559523293426534340502171933386470729091853961"],["12456317520337954888970045863012456084802181228067706957244099858030706742885","28557970008729690686105374655516386946754273886968503905627300517172633591505"],["21251995213549351090821045675878773043463890728296168560383395247638650613260","15419498306938273915656654289008911634804746535507305903318792998204202810749"],["1066342597022020032521140694696338348600409731956104236248356739631827051943","6463955528038071055713596468920654813923703779262953561632031175173705697669"],["5850106588966442502060844667206951142084557357060030262909150035545008703475","3200424829610372174816133762823236760082591378950785055729118392197182581924"],["6820492833640619150907371606131632613276563531393317404759016753778213818476","25256008763199150575334920043932658575454380103836785079645647676362800652735"],["2724435573612309965331267049629557099027128100546120985303679463115260986758","23546084993826829589728674503203125787988434485965952808937325199688199764844"],["2936514582595300344270106940135539951984590820815000189401577889553952085467","3661076646129070946021816400118117895416038259606738700915357111325202139588"],["26568007586662501255513594607505702646765515425455480812087014523152163133800","20265782160863216840087886055645577743385495955096119615181002608781299627338"],["1240246469777156715493385539859860695191016166596657148919472177754115497388","12045526301256375108053172347590865811138808610482742077278167221470078762324"],["35785765682816194001431384774866874260716772099103451268414974519129812341","23057340946051613808321490433014668897363192235379438673297068950763839876272"],["6355599494352752648221226440221593613088020573351440660408560472933044664783","22788594190613900422785244535280334976863372299439109201097352921484752119856"],["17551807342228301746161542145708402324147586756651570885635435691606039792858","28612465635769305424214894464935569650005929260799116633603100798671879706383"],["14863721168749084299126383613481687639958704238859872687946110982296714084109","20001294899426496513748666547498995215784154453820900865069362549425994288111"],["7719641759111820619800461890480804296529234248298719231995679521685044168184","16371613702832476454621013069337044187190458119382347246599280408722619319980"],["13981994241597246815195361873766155565269038343380193748933683108946486848327","5739394293025551737182217563930734719949395624611012444136462103005475126703"],["889972651303459242542623043597304004035737083728489492960174985062921701336","24505597688997608549957341487481017316294422749205407655961760398197072094695"],["701583346650022339951079344426504758238940756554695582261692924579241501613","5099656506045177936925227706884941366088485356499807664265321106820460501077"],["13155490050008517612324947085781261155059891577699961185805300793218823416002","20309298463595906307239325442060261533498432211651437799765718630207666052074"],["27382826785503491885218740370671652804996599450796045586729139633409547479505","7926139980588985996947732797821404213005710398177082750696467528768645584850"],["26724605944752469303529806252466966607440871723432900529654117540530993717560","22420467499551484445973288916634140567364022144394215207694757706846684323910"],["16797011976452634713532355108935237251254930424042089111730673833434408484400","22056630147005704975973276599196870069394036060695344148387522173136091879681"],["12381440024857931487744432541571032115734178475543427750654421551228982197364","9035431055835015926567759620381183049311844003801703565222704531993081241042"],["22786607820745484345259496199826193317764133256999400513583464654304412647994","26762761288175038432130780707952986949946777700867263174515342563728815440764"],["6388689823631391052944120817663149157728638784835672705967607007178374022295","25536549501865868224295489244444382003246332647175229609475949340298322118183"],["306021531205112412875366688569087814876457158964975986856057789295312664497","15989620900473365954124346395039099649886727342049789007802644766108989829049"],["28332208687343444582323906795660448107662072119207961688349574709958431892513","404300061426308327423144225260658799446029492409892057982848250834859688401"],["27880115910710794576902829854580139650122823227207403632379550816709606132019","26771949052712455397944736001345073253827560042567237419988664655639364692894"],["17603410873385796999249632405150394565413580092808556954335545996197871614797","3068449502040302586938929005096511666728356100944234308018601881163611912047"],["7966706336310109335431109139432339659200572593698260139027955995471374932757","18884977567117633114569657758684199576603965917118060418355388631238870545209"],["9249800217976480003371150031012432361435929844176419517547882026048492555305","27323402711095955419903764485896822129248593844635318331092232627047504532383"],["21285114793822935219842120153089775483760512159586959590685256790333308534009","12427874509475653295825760806995492214528216565624068847936269761393171272569"],["25034570550890452287242994417576154376285108508678910496012055063406695937386","17074721379528267227927795217798142704359373586234486003007364561384155367183"],["16703969547396682271238491778192711894613748213928693543293399637050593461720","18912214511879228165019575738435479261140909065814540126270731076253019530365"],["18012634760122551830145840542433635624327382830031669189304012424935696632579","22549656770805450956392254450003698971633131101685291284142484838283692205118"],["14715868700791279932051351006879216531177190239302780945159281572122286854065","16489080869091025504873694305272692791145730770927839588641692493337450012798"],["12923188912501133923213032860708018891402700397567142918346616808851441952973","22645609912468473862657570243424047538164888463520262835445926149864082517323"],["11445944387421869608972199773145462695867095121027601890698657041994014351568","24827985574348291106428410507215327018621879763593415545489576932723716183319"],["4831307943007817422895710808285359327125663471564598645888573191169831318058","6651841286085124272394262227175875533167630542845863773464287548418146088689"],["867371230003770013479717949181660034097267419453100202393002211505435546447","28926236662470370788154822183834742379297314845278541867809885719765209477598"],["23161096419710705198034815962650836152748593978184902851295165558932756214356","24943414630815939491159686458372977919417276725673078185746482591526080013708"],["22470459257397107210513043257536587275490739440742198619777445820112775779351","8415232772408426443961973741516506524025696927386469817709354012318884959909"],["8110671953990186863629478239144415064266630654115591533569806263395495736351","27972775243443827593843305761643250378510493291909855465544632556248784752311"],["27958536909813590847278132131812631971522645224657578569637911188100404888695","13124747317526205049140218898409649240979075603044373464725149380528402071369"],["17943927266305687642280384687940869990268032656869642292471983993050792851352","25945018852919306226909594854819379886856895141130906831819993242841134166549"],["21183206728582595065703650683528320655945554371023316694753319044996599652833","23507156636291298884977888749917520952329930229666911120671496958003039969742"],["22584500075692547398738169903176847642416648031780259925726933798892444724804","16542700124958283616413828088491113472175662054350458749857802945901783044669"],["12825832417142102588939266343685914637675415638625421431029442997537014177670","8382198465719164004176455649285650209432779132395855823440077236609988833429"],["412023496209819477308796956046176575827590452307278279086998549777901227029","1796637991360018236063171403333398548752576519759695232130632095941437777992"],["25673769278831181374464732257293440504150167188483892728040936812605291068845","26951259503176830807074427042156691909124449226499509201763775069952862263127"],["27018616658379353195988117215429213848910113659811444586624681191241984534640","26952361567939378728112643505932084126095862164308607882625419127721572012898"],["9070710537788984573327261948245314516320231155115293409145801304583181039371","20448320676155059432934607854370856307341054987957816650659339714313792931739"],["4367624708866706974363600270340099642956293285322298332617670565809985472386","21950801315101563042807805119060184783573512430483660936761414956896063934136"],["3079355872511327680469908110917946749354134734476408519428389632268714420875","21059750251275952844021444898782917025402819897686891768402267987394725026019"],["1389656293287793944038478784025566380212835114077651821679826521031564408010","12491737581162466636627494593989230213890864701646132999934483848085583974127"],["5588034579603364890850014318074670099987665826748518319265104851323571008729","11560274919773442602107308966525721586681541612947015831229483380430689224104"],["5281153896750984381655207464292988694241453854936106442523691704388821237770","13378697395738047556660086595519630749247808526485189842511050294253510435712"],["14690047308746474078214978958503885287668454077135666416640696691338976799855","17782277471938877783322685128949442367694414513458356789912484502356995823524"],["6043377896439151557261439481374259579387322499177265073946555727598331637049","27392759048620561596084567991397500677717118249600908409379797488263149900695"],["5554059409875212374100732858152532928044062728479971039256354621975796139060","8815690508126871943697011133076873213154878989922545513983531704232589570187"],["21987455670822654663674425711517065183266100829475004698054656226762264540398","2287880569323826944265265781999637828477020298136339306650783695339401480916"],["11908683515323879366039205975287696813427522358306822688740320381606745047952","22431585374751285994920601616721481268722752270017324213476616089443932425377"],["11687104629278547256003765086989530146819860577710696876058047922641819926454","8046442772880267207796898583750075595337131086956516852173534207770229512828"],["6679666829343651756332899726163152573073216814152861879849317575546259327755","4055417620623862353112638824966372372607653625760251394667084082035427502274"],["6327628041848872896591051789553031472682635118360669809219378725877128440498","2336195956135689655562963424821814369535216162016778686199350747633339728471"],["28918553829065312321888379140263563587805622528938355271904289287930699064976","21084305782467298039740069308100129007438784178881980581789819197884941710784"],["12972685777906655272408004728368666241570052286300438857611453800157018480184","18251261074553654533757252690280083194452606365017038688092505115349878884742"],["21254503878600062774298808601109660800769032272556346139458012747840954748403","14216344268010462250706451072310817609239666634405318424411273024600830203897"],["7839156088731032295994478124528789004728470398692822936458132401636362497063","16940273552045678781596979059278794766651270905770173403719205259428887292450"],["19408464225549841692747536313334344860284066142266373712646267697077231745372","5137216475318475329717987011278009725851924761413509227069666942739921924312"],["7670203113653547964050135020720493591494559654755920231870325577225577017741","11815985870863573054383127150650528649063507190052792034589905342120765177343"],["15830689579634464887900291646783967024559349218866704339823636204880733565582","28435593328392416189584109610992212429125441943610403443993103116887020692884"],["18441297126729927011617209393624367898249229932436024149953367295831702487502","18029220301026255202568600233368611385295476432780313058284288801481675843240"],["7694092952442049708865903288195480459756653741006683933357391727007251137563","14797146033399777298752256616138195364202188715592630817069488355302042144741"],["28416957763843893070419346010443441352711182627056027465350061342279078712099","8850272309922289681292185972158859061827465878723702454320981499255729975816"],["6478792710640522544508931971211731954848673820845480575881210314285341897385","27884119385994344633311273035408114743778079190828922782243991156561167572124"],["15636851202489973657490022527562046523858640567357683349711973230709931539825","5048715795163034442711315007828738714576326623440541449322983913705967653433"],["19647722010017655740997512349874711215173449652026021965609357450052221514957","26847316220731932696155227994566615235484334834468730058162767489149222792264"],["12672480250720601852072012406914222084962820386172326649607426415641846412502","8220697679058263821220852283660180908928419117197689128464755321852072411220"],["11123047104993174632847658262451723023512151732334337156417826779770168602632","25096083102705349530848838832097341917332580679158324318161867970223487871893"],["17282282396181548642036029273210438608562664353983987660642788922768507367622","14620517823995682672551403557348224667383104446869973077192836824599511549818"],["15883339520995337947776998544099707768637108567963512363029678658840005572810","22220562276722358903952997181942110855823169192391034184493941363275940206430"],["7487907223079374539408142328151876903275150494508395728735138337123580182029","28586867076529106593617528467154418576851765800088347583430090961120391976428"],["14084726516359707330438067736812691913421988384273254331061214544924893179523","25294021931961878180080486472289277615426246545955544770772946615297363214221"],["24350177585566707441868920393834463138665904001651352201699091544308407042548","18853825998459528111878311400172515413162157537896519156310926300589444738293"],["22221740751091784800417882032398736829505487571775875509867889980475263288572","58197577605480800547340399128246411528592951360959650886404228756134676347"],["1144195839803405644457387253521840804250269126637338156018823403887618478564","1916459624681531135203971007399964626471842421978389618016063305752561777809"],["6927954987905669829185694756440255785559725220662298629186442861892590585561","24967259841054093478612213585991702204253743728984097544951439460486235435995"],["19232555037415186922838679620244308749116376714499081874238563738462120999587","10766617388914656121374145902183717163232031863340040949449615793261798361417"],["13525729900009034183194480027294077443441653295945679307075812982832292790464","10249473155314180910235621563109072742292370277469561264461109111465097507297"],["15458222109699362785618701142537363329098289630304337890152427573605693838039","7880331549248324504521042253676126287355201505168252483369393526514139868974"],["18315554700977950034014144821656542229247305803558026249795362021141055483584","6154236923087612933377111626074205684850539174982895560903913209304031107143"],["17232606507389643172544779721915883565662648131061349615973571783053799527819","16020577956879569747542430058984258588342062338890672890358667570668883585104"],["26633891820805279481698223502105134123493760414778231469109907638812271651486","21168604324200572919525406775652283374395596345326733266503215436727627228150"],["23876710308200913624517627246263125204573623420482620534665050947931817370984","6647195029202464542650801514345725934457355800593764878921793708744089540494"],["16149501717271238168127712591746144497685934371156362474010404755802152578700","10571907781271132006845920608952950013132981127508938692365001484677443777499"],["9983623378420328777364188392763629655790010349995643582077255646095060531087","18731307397486519682120679663743969434895980166230208810145781156985699068385"],["2470229801565231714438977789916147007911047376030274384130705266684694762157","10206511549669469446017043429650077441206707029837417024882879756778699931245"],["5971498352835692725443813972467180334077460803722642227564603813877468423702","10057589392302982830974590621776574230441928157943177501000222577257102915595"],["26918040510224750244874433274180728160260292700556491994536047208789123020625","17590690216910481577271852775085813050393061318895040414991139802798626057874"],["586193424224241011743099582547822350718686031372539850826983316588820023109","9047983325606061166492151496470262570337212648817499177581117992430028300911"],["6081909580382685521612197470887856947729287173966457681757634747805744562960","11598001413850639322961302304090309262625767063361788428547135382796271130764"],["3209237630375108212809397148659059562802898547461247746708007980899615381701","22697142952575417009314717154581270231449507373428575177428206145864470682703"],["9649509481903705536582811104292756212692391684122431495673620222813721113465","336126685219839405284195578245758881560169712048779422624672915078268550515"],["3264425802100735592892493022453287528768795938313281913616873321791831807546","23349091308325194964381226592255899256741729183096472648538460844195665453264"],["17697039328004026927364060102738572612317026948185335782867293212890447754293","9237683862679417234322433465806792095205094813977896893624255564846034799866"],["239826788877220360313223381854180342770759757941761917398489668463523837802","5211705526930443301237610879297530534213714662289922839590812573330414984074"],["5800290612464030765128817322313529750611158420990303438484475637528984295101","11997183902101103121238329937354190657824913456806704586379532565558084646138"],["5502596934185463361640867217492673295770306687850724240165940422426338820759","357958136227758839208268016129109224884425479586954130833324257653215001800"],["19893071203816406773465261795851733221603823428738990956982494932530434117330","26415739640237635057530746423341075996009092177457951377457395007996960900751"],["4944036693011368601526894682162321362033981259933724815014280095472781413238","6533458611447676497730475405158411299193196510655038990533265213829035281705"],["18295468229071419283541720019606081991006370370026102670819044172339757277126","15108550482994224160072448359171511418178164014628833217393804348851613707247"],["22249730986768629363724255962485973616905690339289687086579841062901716873732","18422005237879064225056799108245408131205169166639724894747148995363514162785"],["26114145125192513762186362379059331335851402936766827101934694245303467316674","11380195721686988082144039204315715253711492124789494047388152582447345769238"],["854785087350764317162008499280914962750583619113315319024642831534774988061","19635486652071901019904639900514446784700242885465720963478244536352740496360"],["5604592269385295562832185139281497839480725046735044898998460098280960377133","11192021144826610106936427914480018994104758935611676401335673237057225532086"],["19166525010371204275795025083218075823425902068045940012420828313314108641682","28553052449529647638107356389787940397655754507465840995986929247290494770700"],["1142511478880042973590259969182466752158430815867780653169637652288051055382","24226487071808616520190963678023083404341139498918194508938401643307244063687"],["294382683523074125320345868459594743515949174229480142360182820454217964067","5219895264404859435776943735966280707689727694636264600210449226640503049031"],["26104301509241913316930043753748701462257712920779213409030150006986698811615","9433519670184298789368928162162858835881952505113024844830356744150921418115"],["9831809467136365371884182292661901832981423630036543806531658689766333004043","27236896247552327608511948460104851746205887072770007102826800175855354392496"],["1811599214257306629848251948545543186116010705183196387845629861529864103122","15595790467395443741654077012555536937938774778176672046531461140808932202411"],["3383170598506166343892753945004304755295125156824033509318308614611079473991","23331678454238507923106216004900703979199416382939606853089140488261232726336"],["3109216846002547450382553007346034201237825906228350755761864099943886586521","9257916668348720396598725418926123602321044583043665233123466478024415575774"],["16738745098686983782453475225078969999148708660346880127284888813661331843368","20076558382372939221103616059962155638179391342348367387999235439122676334268"],["1036056852144586800002033185390534900283066755672636379187762732624973011991","2310315972379239861286747945707339530446514927760107205988183905064718993362"],["8387877389488071971125952727719442476328917887436625894282174860837602254324","24761571365593613625413637601280894147447394378223485948506565966986600161722"],["26203598652176355962622549781320469506119126904581178853746942730230617894741","19436516063956769351840683130745795053273995273001110756349993616590248409538"],["1801224863125028464214776845925425003869854743525451532579208171287504648783","3655640103404491018130448888617730146489530740441178650342002982885513868825"],["17550114298096887475803821602060430768938007256824481421462064091837132004334","8094639203191123147478000269694929461829210270597276274961446357548946679248"],["27647116711575285470542335052073563556513025255882234694338228375144815085002","6209893012460762048387711061872767070400743094547761386202607980448569645649"],["26211573385946409625336500148205534559854842823686889228849882768912211980359","7676571964455158602230386918665580388533325787622939538689897973615283799219"],["5285899999057265731677723334991235450555996985444985775714744301017106631620","18562413116151776198024258435663420219568077389377518824083160515432894140763"],["15184180531515972316176727089703389981586851463911866346005010988254778351707","3587468172775598380311899970972488250435838006997693450487419579549224562181"],["7838848143186056442897933680227509128926009385873346665683015960675555669001","4873507297074978028775513853774996562715337930271964491696249648868574851727"],["25548732365034671685386775190183529555631055280485820534810912752176421189328","16629925522034940327742337014491059287573581495306726787715444768323473059331"],["12594333783980127016684614947824725842154398640652630512877023047687631361753","8668659008235405289230889162253183084362840367017695433883096309947703700414"],["21580599434041366290800340152935425626720407024604885285111120701965670772996","16861587712359436144712919590370929973960530045818347048661716005460176201461"],["6425786024628691806102830592290643033298174376463336597765813605494955259348","8341369161542208035209480604589510459078505732513016478031818503976499908198"],["6186673806233720913094985439348664695784130922901653672770953813341622782515","27116126635136551550525442576785004850180248324803810567580498740291883166602"],["7414145252733780727719730374932447529371291663058935236308128363722123063499","21678975639846296607620543291707468064281036696593339985201449156380477711890"],["24877276292970807117282734873100361791159607460787109602800911301238022434403","28040441171682578288160277182004384381840693961262302863854206180706817178974"],["16822164839439906944624893745038038570103773599944145660715271568927873734611","21453077454878205656676184022480125161729629769315852226040485391259218817924"],["3017813615593235560859279075709275395444694508883975794946894711864483603685","23463404733052975589266375334462246753527084367898731724669912349564347241541"],["5696971728999212967334312678988922347034711770434824047229126068536972639094","12977006811476191867483913182323678276766862577369078613411230875780967155904"],["5282721831253302252672509397278600940431327003746959062945600583953121812502","25924463663681344259073704816419327692317444106675346716313950634550182599955"],["7537905282204475833429774940065920021547836286213284417681110591395720071055","1112813527884331405897871716964919800700093982907255493704288399139867280625"],["12884463679665995468365055150037852860878389951346159450492978610881681583181","22441204662017061842205126964148433504567501420105301252834183905668885545900"],["16997496824267606113367606831808133390528948183514119588434009286676512113887","10960668036977102309468935013919300459880534291804725351826677764922378046815"],["6628786807825848132690327965199182198080343426550680732834301707790661930256","7102987021826170264579848859080958184392669031326060428532492885076695353676"],["12138391451670139266644772749372763169580245069795000982426504913018477902568","27518452423053635536335669377724688265999895952311267928700944886214489967099"],["26564458982039221645920782445780760875818149241326817179380124523284493819875","20158243549645319750147290435818039282526295551863070435868670349633203010497"],["11312047368479886848807205009872408522613443179412220443527241630348442989304","1134225617449071044845024306706360612210974916744686865226509768837827585809"],["12349830578197814102712220536306508579164252564890527664454045949134237943301","4272348811318973010819151203788247140395831807829465456753710953354802032054"],["14358821830853762396385501749495110573319993987259015501215325199169889450604","18458099760956377479227415105350876476575051071118099197500942888325791075219"],["17398901442677135649564632162293012245395845915189478626368182292877159740276","7014862074014255720667152357742424463851866668943452555148691535751295763650"],["7897028375092979526331610533245035188314364031586343392398956730524447477215","3512249045541553543797423253441265118512038978496952479961380415787374269624"],["25398517622274454207669256989694990062798836371156180878502780288482396428642","24859335664938314881396770001730036898098761629724495435218645909372692457247"],["15675424157369181392460181460255835131425820867558680181009948780972365564841","21953936006001835030244653030253114879017249265529849598583236685511133876465"],["28139799805737783226227068494875611917034013479808913519978495172947205672092","8144908702988358704851933091102062699409468131695026416602273872578006527004"],["10542631640659125397631210206782627615058647713763170445083137786931110623868","24924780509281131848115324027466342564726299523346455350918553652544146893461"],["17122270282531816670229905885528027234143455154971442744762308288802621763641","5531925150021493564285457565009158770886376826426787920585481052515433314517"],["23009026729461576363477168172706025072115306176524401964447877628149659039323","26971402301693064000107732576851412088879360880693047992502392292282823342166"],["5979226272731491602645922540944305790657265866431865719544708824367173300166","10600083629887509027952655652755264564240329707730971616217035137688010525117"],["4552242846115886766882425596071178775929175836480851107440099009319957847418","9082398847924243090501337830802332901315945376269979171871811770769514724006"],["19529266374448605212029890680623071576963071552891555374581455655149892932799","22389000064638503740314980101714685405818446924868979458349892971294474858617"],["20961080292365167925600990526536279526526862897321017427093881273510672273624","26089128090709913276875275938630636346108692864696875254595428825856594583423"],["3110099086019670817140360095401854855170791308159985661021469668379897568541","15195126334353949549718455015547546750341858552142308726468332102601297198267"],["26880568868753346727261192820327595950722740917548208119444399992040756007188","5622269721487660880741814988540445679555348610687255474532157067001676936786"],["3178226114089768995278709611439916496102466856128513103211360016574602086480","17806535710720157720698991213167646911896476138263538898860313825114932576909"],["12279027971879760049474930681168215963501027256498239328414578118869100170922","23511539969414795025854257470683711429292606691532912863474452715013854954449"],["26078898568499330117090052713766059854754354116964952646622948014547832093529","19701294195755663936070323939470016608554799159302477731013280260455846166592"],["1841415124190514977473242811649073739596173505008509062165781733067069748135","25496389273127205033228548041301445756264065612898763248751416105805222519384"],["27116308043566744282282917027349818676568061052485036992060671149577411847702","761019554699675223555439898509076532922069012462609473488743564446511343630"],["14214921052876920264526971134355673728089642795192481562489316674218193206539","5201880665017985278271497152456223540649936997336294568888179735186737425451"],["28258155330349435757065901762803819525621699846297208931447230711231600944541","12266480594227736449884590974508488409199931593516711550214993253642146884265"],["16620389349374383039383189774218996699120701578913221839219347365118975829714","14734194221961165923160603820659913736520824886413691652225875419287183806077"],["23427148082405254639848352309345752899709778117300757369990235510385497461140","10525935617031581542285631722147331233969582085901650331136232026817380667964"],["27736413948652657825194946691968370635718149348369192754683413286750929999420","5784859888499463401735038865626550841763943798940084172227503088440096029428"],["10514301194832390998284566176026210338158405800357933415061665326652820612063","27505158477287089178443287787771490585636616269080838772732333111607843389014"],["22546919136470451630499037646937724906201237737595346837653833481179780468012","20893116832576539397078637105142014048291151854714475725581218230815014418291"],["28145868757386265845600932384204721346962994544200145957786433855587337911020","24054700734876271512564350134933172550753047812744036797528502972799566781688"],["10338424847392717915999682888736612409394220988094016605875317072727843449008","23262065454801913901451696175041251009936295403972333895688027469998450084798"],["23830000680729576531156521606747705652032871195052890994513284381164515504200","24867946794852900727049576073139859449543710233119165497804291409473371353842"],["7442077911080041134458259696400414854911753435977904671213789026610275907063","13712892431668207774346571421960525498037288508868390530836936339547311596795"],["18204942877338240637762602772117448124072468396067606279221456463628921406413","22438362205652529156180282882259118081114714153615444215362064152002229443491"],["6360185504369105113937041490866227883268978165954706181783464793548585935621","5138491218171717613657445722362694349740463123592670234422101545131652542681"],["9550214099993987085659617025808285987506051398609134703051276832618530268602","17758648733156274685494397139172456566947340297781155399249895049225345951758"],["1244944958310436545536156207081687981815072389413107824963991500347036416919","25270653502111949474916777673756636903761251685081753297186578052674633201430"],["26956902107088923042646178525297989060872981355908080031873841397610307931143","20101216362360558983945855709546039630860774293546332853152951568079453712627"],["6226159573998984897477063713134879725886496479631358405456865783015083292499","25146943806555210412076566042332855750058380447377674966994406555336661022826"],["7430908627330884794057481924159087587161984174421332726838769163291793439079","9837380886784668094964282489493959379948947744928657459827454058144060267723"],["22654144490856708378322831992430426362513742866640728075622239305814454841332","15865514872781100114245396395872185601593225294985714584214913742994294702452"],["15915038925000515808075158311772245116799425061420021179411799062990023898684","20061093685245537908091709643684809338773361529263103367399081760288294923520"],["4280512932923399108602907202312734411559135736667494801670419720716153417908","24754528149915030044318599837823825136202566891471593646349986549765938827799"],["2634911839500857410090943050922781211668691004802542527598794321212647841161","13097448154065809708285382819825787346644111901919920753818187890952253329747"],["2747072645202992288652004060536753029410212659821430554317959736690658196854","3274093302494718156122106155075067179197505798450755813782819095998186540255"],["293025196252224588491038240741604454443855795866989130324102735912559433882","2206898237803406097672751217110280347863243496441975929559814030816414401732"],["23480207314173633559857383164390218129054639195643634407348439363618186519028","23104151272932142080484136075335165588404011517799323504686371681513369913163"],["2601185143954466715353310985640520533786551205668524606027817208335568292717","17207675471276606483345499008027786517205904550733105023964316520928556416684"],["27609173537996716483281638070472566023807907623971648037700548556745502473314","24986778922117792713214322790934784081456365504960638512125117740088492660799"],["1705969081249494654101091689132062048371702006756051654528622850183959336941","11240707551087553093019883336211026743457009591018058274850269495845914352847"],["1957160020621915834137000754232432848465076938682412799362277268229177119445","24443151587737821432822060767184023631147016220038003035836474249624512329329"],["27160729303723346761967685296443705513615418240315209983238365376704435001038","2578939403536928219730859436477526882350448065450217911218974157773200059026"],["20841579859516287154948517976484111946038198629814250502328314503195557866784","21239305165241158083604917244999290185187483769513033190340031564246157991879"],["5137691054387386337809657765333672745797410423567763576713456382561369451199","23478507022605923061630506375259236628124611905566089007389897428897061743307"],["16015141083611877114701928846053849025302997950836263750373361438120497314833","16667402035077498436658043531933586301065397395983159785164679099068959300941"],["24079494957932460348313583833116867617592735855678998869606166482163910686649","9935376926240416555798257707380103761814833827355891973402068897464643216796"],["9373635174631975794056295815314129474583743016817111718895540655871545452635","27295930266638074195901048802872372342935260187500413723323998399687706290510"],["4029920094996565116667626175796969896146810217165589152100324781706374566086","4970245281921181191140627479623659013606893723649923278908491416638428485856"],["18260916926456601275292427742709700681005407649510899575979267821494184036858","24204213965754314350469771115231155968980150899271269929912192702778094816886"],["28144320604532740238624095663220172065226397891730991064920148309292648817293","25068735887138207881808321559314956604354226461059292715187393625864637913282"],["8962541530894654995632677728848876687033136044424859719396386728529038361057","7629515539757956902134900579386430633338344196533110254301319626577179910146"],["15772529366998597797039415195949499076631878438030727923620422275608907503354","6282525582155882198952905989456805888752486607385737774784117374222173868482"],["2846957393397097211995105995121912876875004748837907020317570360937903914786","22973259840622004558520944115808944958436332160459078898716668802240981111029"],["5450223788806755581355299821610823385131658999604328389985363784636043023661","18758410244653576044140446044090516388587236028089254461518813655258036926996"],["27693017325018795452590556987284321678079034421096008347745663612434590989524","9244921997458908534112251125136691778711636797335678617471528891261592850706"],["18516591881066046491701441701888439695081993981164255765716698083897060001810","12052616962813493863139526821719632611944945874718357196051846024741726896774"],["264957067379032064364372660356332417186916373415558796639034443097707725733","24997246668795520346220914974440009103832332762998342446717663329777418315546"],["1570718161626724736694147597728387828640642374583500123225328791476207054279","15789509094810971778088537480436889108767944983599677562311211166067146464293"],["3118515710265700175384347259603770312713109468941090442750093315626367397601","23962591692225980191081204734582887446122898724673034003575252029858150976426"],["8512923166719939192727645823056875301066727913177031863632209505171858669771","25875226752491316749220498521707043962290552380626676024517469588862624841795"],["21473285367276354604443706030285900942085239732583385216493120396476947149286","22662199053953402332139711005295263793296617672219176296891307478280862301038"],["6599667481743034930494259736589183923014999733777643540640475469549403344651","16913374776008532931726330657475239057958663758501315619857271224060643028512"],["26763674006907337090547539053666572805945253891482937190681759459588020850569","28461450689671114381725264183790730769479262386379268780136306164444765048586"],["10737334449198971478431447652594351038365440637929115491396802304805760207487","20902278257077491513635229337315056497818141791086622420774194435535698993692"],["7516038930095980455129769325926248593673548873675660180603635433572217822722","17370311440897122634989649614536275604273108038365491411100786746515901544391"],["14216654396004747119270867746235968008868520909584256938637121002256176401265","4855712670142649402778204319503363880516388140935449206163927944727826247414"],["6442987164212467380114136252040416976154087441475958028107981635073824134392","8719799670243339011013067200861201558970918120335794697787833667569069040811"],["15968819822426345724151211506204647032167546604395319853341276997805269173156","17666165726310566797878392316615786399184791200736796892286547419137305591634"],["4176386119655516235358706949659643871994560656650531444294667575916003712907","28316868304710568793459720422007684213250198413289743126430182457898724728266"],["26210505367623996063403661657836563342079919506371207234998101970497950670697","6286452181905962735783378288193532358257418697423205583317042617534439963523"],["26767859599142387775584283284235550956972456138929876700295101382811797096646","13603997953942991759407128966454503501316379922350256396944365287071285684126"],["25569609384762517139350370511408900557587872429793006957136430023375468737818","12815990310225690870720971618998076224047631558727734652218340599535664990681"],["15909675808426631119868095418363985308470807490423092939832423299518069772024","20528804536476558688312050813843603706689163165994797525147178335883061765635"],["13342809922245328827720297497364648857024907359374332803738378928686205797628","20755843471892769898833346081151621653293199830510458956728924774317810393536"],["10664602931152959518475681306856792373335837495251669385529550066406725559832","10085202508165628657759612143530527618130585005478207147093715917059675828652"],["8578714364419790976416790221464373862777332949265587952262474200834743735016","13154368291944741004258794098819503693199228624122382302615629616759546039721"],["9052296245142948773095404400910924958197196969769943161369445221719928944581","3796316289346412557233955563339475573627181117639598672128968746176586337331"],["19577411923696863760766578494687924942252336773433493644518569102639347131977","28075721447430205617632838874996989182183604123213005721109274099199861242831"],["1344545647953413078843376736115288483901258501272094062585818525534511547744","6881394262437511708559483096449713078561887650961721732996314655410319837568"],["7724604502317859367553225571704389621596176380823830912161121309328353047057","7257681750614000033655575727734836093509774316994345900633590258809021774327"],["17247072131199969655814442957575256343719427104689745030064591049446440142912","11356599943319155510362850445355482482459124242662019456681058285528542808929"],["16273132449468220674395624377400607159933539552851160674804372369852291445751","22317806312203072611160167316502415760957973374287947629692685827250211093285"],["4121222739991815830007373331600460060913517045368819389097033958327339219759","27907413308224875927553356368036688100384061161041267971374073808849781693021"],["6689347010342358145733626903169538985773008083725355773001362617773118625980","18438623407019931405866616185612543832547235218055453570616404878711468885042"],["8955085992511532355088618430308882635022254264699437700873829590036404192887","13654390847505602930470466391014291843782511686904415297289358260669352781317"],["5007571672960671986470660369205457155392105330429136984300925864475819513026","14419499540026627311353007014813295814962236853579860212229482512973657816915"],["18476083268224154549995496192167243035515517801154668991852899093513999522799","1865750120674913616440113692059815425726242790447505077108885762706784632957"],["18838883440532774391652910230491554123077635689643305352005877981811585843550","16951034465415770763434038706865002151545237544428156120461001226205893096467"],["4960187861059776837254971803481492006141072904578435731685367001555969407731","12756944030292269471018235803708172704139398617646965922887951466786778265925"],["5884215388042283296392702059784236240821644075857591372169764822835796216679","24725428278059598748758053723052561601382384650600585334460187723267629825462"],["13153908250077959982525086514550410966134738524688973432987860651739547373876","3846448771336417153929528137953313942071074909628754644204569415746450979778"],["17833687751436799220236781215832579907505373262084354196884096002221292936284","16461649819454439771831851866703941477150095255490612761948544885524225594771"],["7888947926818532328591799056508922302932751895591656585741535847602111360669","9150308279688239400956839387084256646127195177857431413266334934910495992096"],["15023548920600115445915352519426981319531587145416991471197055524649071839217","4065942562734035431433050586770381689440875763105139840921096356962957927103"],["2313676250651275631738382172814384406174737127040212382816232576120587939540","28346364820897430583817591212161415287379469782049598477703155180167725593799"],["5594892159275223474501239629136714421830616278337902640947658935611214893823","19819042068817854171391840030902149221815977292822331042424642196465331649475"],["24950371238461425020744250087664431081082770897747790012597808927611853017063","7260811693538630048033733140072878247319611819055486612108487571554368826692"],["27384942288964827927239648026446437640622203304114832048333013840196459637825","6345122495687222574521935920444408558835868229985802473089496942191772971316"],["21416419965054319989753390085371844971562158694974042762407965922432552109375","19131532812626230963037316501268196421616304333113198330251771931394504454937"],["14270158103451430898551006938441381803117569960785904677900348781093726183415","15341336283953882187550573122381372578034827524432419678249914171188447299500"],["5955885539670527789283816102881610694114382687080069031386181014259166967737","15501163422932007623310271995941429441364804481611673990616003949516538476157"],["12230024848533225582613255409608602266965282989180253790356532524115929085201","94000477407102367751396512926389616650475747066727384097103846966933870618"],["8043376995238362988571833161890174264373816639447839325950942103774001025649","18789492697858477005640640689518433254721225139070391169031399664797838918311"],["11279390384883296539649434506109243698212707932627101848648458055758576833861","20992618717226613575878941358557425786171387062137821207423119335607978981416"],["16873775652227065027537319214171404765046706559502834963409860488831679356370","20004155483071258927836971290850502363873098658683100166012855272694701215741"],["9203756061336594040247827289570069606253980004970313943344015159091459813546","13625427888308322418390151973695150954211989060251503739525855087300093826174"],["22974240238229160127071837148137513966102046447154792093296667228536589827745","4812751679061586955867542430739601627916444299185930762895498200310829054308"],["4431543138122368149230112856145366572469986093871673465830365886009706961862","25272737934943244077880747146764311794023572309619366484194780042037122781686"],["24157294482584451851795581112237342562639318371220230986698068565732438797467","10811747590706926745734329535051518307771222293674775556162523201841693814043"],["15402562209894440661959411166030891077271174306055709023581776162151784670445","16403790583684411326357543552197769951202577697930571576984640834837728805527"],["407054941551619524193207117099950223489734730791018406565942545067732521428","6391270384672072007508621485500451444491103303594571340656519137274153064472"],["16445686772034295806088598983807339225537394078453206148692867248212612822207","27913554331971570907088668995052228545303320261127217969513232245783396899878"],["28223925891923335196927790194713512585453343056942510735707105958274316666126","28114456330153787609064168579094167975859445890807925107825016212602053112347"],["23395172779780435584256543822993759098260079397936757349011382860279420058576","28301646728854636463395233784400679490475292635478394059462074044211426906933"],["2078644646391295191328011250728320883000954172866628348661393030923553599653","14780165135156452936723536158754048712994008802897055111076400483716750491681"],["26921306647405835422006964471443004621968290858464528301407466033719265938533","4245387770519405466409605251319971857204145063227724486721546703452988787392"],["24944003039213610483764515905502774359642294550282247840906157268159569779144","13371471708928322999423101290619983010212401849759471746167517708463594708843"],["14039259017649001809895727649932204420157557231674427296691310466767735000843","15015460803063184897802843529309420267576461461218304824846526166309116386005"],["1772245244346942163540686213115459568947612237991870046415527403531777451034","19868562454462645043165632962385023136296065871816895835649041311134447437096"],["9337990992618767265265498444984998283116512605609535413927948857916178106497","25593878745382959638049261372996227024210905103694146106977940527488875689690"],["26810529904896053124509956380690279104769458656352250886094811828905573252125","4256623247806800212741347444497639571925838650612337545616724018762647180800"],["15210925342024481048598628679715194040636537882578269868034830913378434321795","7487682748535195487995319304237835488419273907038777321377697140990555675787"],["25773642205945358285875138986148272765630871288306389532834851979691383186596","16593627699978303608602995295363673839130694496972066776414702033947520458561"],["17807234381810730252223658890736605524598267515339837804124377541678601087231","15113107793409510607288347624060795608196674066738368872060834167753467936818"],["24635197195686750788016301724981403422979033004835258733505606310381026085978","24693660627380333161478439874924040737830087789898988190156546697386605163497"],["9311381026597327252650362994223075152020669282137481630015483808825747549577","4320011011404741498158862757190938492895020343562880385875856140276905757179"],["18545957558519440721667306925855244995888904376661856041138066390111134851536","4841451685900197467648906632423546458245700191735941857616289401725705396379"],["17217514470544295485634599751704528440831848092541411549278206523175583686152","24308947988174974669667691974813233308009068658203703463584113515400889118633"],["25761911522322921086726913945772757958129565308252130022300892697920878767783","27099710477378823354963225203890379300732947796361316356220770106983430020109"],["11631319669758836092572842677495938829323180263678664059799444231198931365328","28485799726585655782905607965815367444449666459452954101808942631014316528075"],["13126247639990686040712693022201482600700298956702610125187748147352755410826","17117854310326196722320601084161813332938810877449277794067626434791102836163"],["8911070380573766173635619186487631601696141070880793559677255521192099655580","440477262753897108695414875878296601762892150077551216234808277038852236180"],["14617315293004549509537700664700080491963921057832970041667774821795513250637","15473382096015556325648656715746286847671730384401440096552693836105831496632"],["14782300836985947953944278395266673736609602850622180995096368949761433027844","8599424824030939965049901386789602259662391346348626828136428231392444883335"],["12107082173709243816658244027336049556951929159767148587663112145677710482588","7737199809690685115069775240812341639803779532688407527202976253633755386402"],["3974401301966407418893856213752808806077558804017797678191322367323653446136","14233266789205407087843554625632511601573855783544756842615194322572849348291"],["5903217240860632336225971832849249716098697479605214489516770319150039070260","25591760967564328892116877481785969623231978820255960915010005728582144245177"],["9622895440701656648826804274810103876744338182326658283218859302506736220718","14621056975461397457962376655619609184918511185486147275811672029847108421635"],["5718246609358449011780151251565980604086648210752147930702691083869656413385","6062151036049837673043682280062874268240226914024001533176403635447919310026"],["9890446653021985123478071205656065585531732724642806522876437786693594089242","11914272268227584776666236410364879568416950372215902630724253158684907890290"],["8813432876910884448144420270702728145748772812017308133692956106896398731947","11545332424766640500405490502540698787707870524000708428282455345443904866316"],["9103935055617747339182048773800659454414210662942134021642754376172584696875","16839867064943957202124593197151930727685396176352113001118626878444484724177"],["495128459713960305474045679151323288004622184835711452464983297274997136073","14361740594691485918472378042872275388307740710025192349182179059708307412106"],["13313788285783616424190988502962722567702648920373970747640674797197045851010","8532800751238324733701786448684975625515011571954175325585223652052171170818"],["17652653852895324705006792573365502855998665749205694231070074767094600243156","23840489806315975787173402712073722165782538376791901077845352435515986294364"],["13426344324948357838853630302458761009376350667938166942378671777683865674307","16800631292013151457621999737908348601018585404731753482825976122662309626741"],["4042293929788869670731445389094707855059196109546103953361794609422143648965","15184537520669385977225575982067190232539033493663640621393399018473094222651"],["8566580780114508809897848030086370238367490939528449850561077874385845284264","21407939241613537078433601552437069109362185662497550301423094139857657010981"],["26699050440192037570638367129882565953730366680034706628440303763239817813886","4636941554006438487471715279910253327855113344489254215368154927111570916895"],["4017754351389671935549158297626550701312666178812167722261438325783760170826","18815246479929803476401705838860175509447748449015613276026215002300153898545"],["17814271137737705035177881258091271108754708623009931528503646288640555344268","12335088845107922604758138946028351322564163663381833989384793113896782533057"],["5926531033352025462253511088755667520938113847457866595190528253143070096217","28757779386509407914088384677032695448176397333691664457244714038475726483230"],["17497025124078162962744534098198019161167071241632972270230066961930772816970","22487907761402924394826913879245404107980945604722132329723961103998824955469"],["12618125206820237860326893913972239374794666005178948669363760493723574309357","19131760052058655823686389668675281169833053731593785764710821022611282609850"],["243406382770925707718783926700993164670360540518938518758705661596140372621","3503043388502648393070695461936700810885600469762798217953615675293399462192"],["14827847808924013298999142351306271650762131517205703563048721274716752979838","20299629698947841792361291774797741085503802103945553452280127222915221738426"],["21489086115533124591918085274759143187127627345824475783461901204937198010907","4965244772418586283374791618167896723779881968140931632200853014469885067282"],["23370963958090510407397484187865328214838655698838914108852411912782509403559","21163312409049561180710498575771635113531869535213006662321862981868317380999"],["10462925722123171667228660204701857341721927536219751743867878717452414972561","1898558605676874717815260196416346436200740653172411174094916799613873777230"],["3777271487035736551289594063405829660551729139155516547807192982916932553175","13124488411578058672400335465583028793887823562814686145992113820863385188040"],["15732582527566879232028870110613395440832452089306629162006483334559635253944","5039919203440774095601040893531739024680576505190680199738176668486914051631"],["28637497220481296274290969354854795576326604571633301818222627555193705820325","17461524725833829729353858536958264129752802605097199930651680399277422869575"],["9873968835508236481335730623525572508577827786111411453109480471996800830906","17270826552023746377688648717883489311934836577933284334458918510210378938641"],["24568704562106907939101369334342021882971977923721877042322351433905617541128","26384048633427168314573908083832943377665161238809251335110748812847546337639"],["790311143943967446319762437717290067150121582568230441279910910818409765988","7683338674674284250961094184775431718248709116424614111711282060782254847794"],["26496889693699948463548576278105142143891562382781820321452789929053381782184","20286018082107708476824160379705213585666623005745930837123404906452667772419"],["6443759232132286481790714010836074239366806463097273371660168257737547680270","13981869941031075948053456745655563471876334948444900579086847824960217522410"],["4730392604082650734498521033679207823830093612171439507136037118637461861596","307215817570159986882740598352832367523102330247615572335123303286398941985"],["27821407831724609648199725938527924119149718951840484751169378235346047129110","13904804957906259988696401190061168926509078939000167873753322342672722376119"],["24001113434303242492730531750205045253494641937673442237264798128189857212478","10264924013632660481087963164765407290315708068911364556127445960002621316636"],["11489416729058846737385677229352014100371865074753246802286551652955957180999","27162313767439085737101719771630266755240603444110216103699760261983123371188"],["11260566383262288054633874409574326120776848407123772035365024473068274052931","15681746752850027319811396146103228784475621848564838875847638438050899539056"],["24468539531521872607499764257301319124449084585709889748106688057621440573575","22840609526292453860723270077456635181783612503276063587417521929784479414253"],["9289787862343435852795904289596142201042828617196042337758577027294690520611","8078471755975723890806753357597205254571351799665272296286899087253177188814"],["18004670134587608774457924305499049215221342321505665267180082732336717258168","2504511906461053431935741202311646764789522540467351534804844184638858724168"],["18665899814152812115323043815312934000491971543787507354985355105749864985942","15749935940768736519436016360553135277140699018287956924322925769359223374652"],["10234234475534131811343698996366490853266621820461105039103236575659009304579","20677602700426216855420924601831383444540929901081539724596294069664349981635"],["17468096483932682582548242974840042464415309817581380500166947987661791765270","8556990868031835605380201017310542657481514885983930746190711180125761307395"],["3595942644044190463554192900110556142093690773006351962337918975417015680639","10282217835641843584168814265209580035682363582652393597320632683785059122350"],["14834034252507989268372452459318925845195192711193343747186238195747850915737","3947836869901169945066419119276331913144704460220104340948747311074230506411"],["3111453267100262088520725567228986529475039580159276018292212877509136792196","4502206053972742617284454125789126068920192492150980249324435897867378653304"],["28763933295579228177304058281735133178114703166174439135695096777610322101190","8483855793039404601085570808831353566353818617174704948678888136418544998463"],["20136093651836986002340181994104564065977893354396699694663856996129947167665","14420082594210063375846079261061786319083007792856927446279475144703493979729"],["1586449485015022679017345784647702507742720620488880004463334833886483461843","16345234283949919206704078609645404116607021728494826800806357940318040636764"],["27244177891951227821347719541390456974040480892605721447495381225924042596910","5612251896193266218485079903792998361514278992101912973885636881031650073168"],["5123490885857709394287899982077360769562284177521743077306864483557453558148","5166004464456247345620777628186529636189233894881613908155918528182051548535"],["10129092419296790418608119262836247212190369340244555463145495204724930559499","23465648163807643045341767145306494792718913456410667761598067974573762370936"],["13130191739244679736241057437576365334403565865417007618878211485953703977963","8122232879927752468903200491616132614556317366278489349432744812302126132091"],["26923439009717855411516118432222054872245175324403571126635551155375007773529","11646714712124418787678292069567061562217936078372439221381261842024267202340"],["12706418632253674068384765648482810753253102723778416963153880773198986301023","11182862170301764100927283916332452578672200538603538997587650308208799076124"],["19382262211691114067262313203586031052222043245321134653587083398469865637919","23945800678267709564866790999081270408416731322051400924320329232328158054177"],["18214444271690317882505694754034826757764609453528360932334350672329833529229","12515344767940813108787371400732088300451591412481517095811884766714658401"],["13631174936162699484932608126535133643381038395408583696579632683708942962846","9074777756922713842183174500137433423890582967338681872325751966293894051365"],["1705422218041614617256674996330977326057941332061185447848795627460383104756","15839045455055529384128765323133803574665877426403496666398571237685730186997"],["237078873589650189126509015566556978279938504921236904573624335356322546802","10845624259821744316205611379321021538325954398692998068465190395508144042599"],["7646241027508984834376610701461217344290267409644798792684471130685355259737","3810407867428326651541120963796285147158272985395521181489245064292222671869"],["21270993608943686582564173586049977632039792574900874131721821321315885117965","5570437450035584729898344099253651997175093321360324321057765043107855419769"],["20617324775512821268694958375578838740013256629079442783504487399619666980218","9840920497740383247051081040530435920623597818676755282508071012479565371940"],["10144805528004152327302032135888394522092427137974085474562932819630987325521","12047115149913708611278431353874914455150431671814519520359804286118411162251"],["6472116371699934407471333221629198957408795949052920425691412270950534791940","6162871734659589926980815605191132429072662056194556141054650576642549243400"],["10122163890721795956911295481028016157201002285368211963845478527866481507363","8740841547285258073606723500703466695762288742434180550778968072177968435299"],["11986344706955666970043829786640242652464957907155271600596466479750954703415","26351359221027584203792571649163487365498141898637413069712817513463256426866"],["1903168724535986389103046221824263774271302143897068736720749992665341779827","6723249206813744931588997858386520842009964964390217383176804544294266618265"],["19260761609206514756202217095428165730356181035670209202328190548474079969405","22133296701115825306658564359396165756302807650165539117606114158874184433543"],["28199799408154694242680463851079440106245910154250416675467072324059392213632","28042879447483579271759209231377577497902227359273365717882920204949270975515"],["16513459537019503750079939879773162356144076428774252589867984894599365272577","9647874257541937177239039335066139791220279443745432375130442986550480645931"],["23725036753956140340744124170832999897904958415118810628541626951217686467467","8706585007041037416019580017674645665391043836255505149180124911984687885103"],["1752112825472352612719567696005297002823860064381899983184698690188119641205","38822101516183382508969373643051870598447680501477085996845987991252531392"],["15103809967865307855034940834419943452741566417329714549004121472634742548801","13397969975996693884319119361312070892339339262428175817593351894403378298692"],["23519163856915759672559872916320095923794293574978134901588994311581778657524","5778402936295227275612796384370321083371196614039703906594592544889625235446"],["7599856066116181804363868740133620222562827047916695395090691226049335699313","17239615467372897482870994521454257188682634729485573470102298839376225933660"],["20672319258282181028911267289727808984074323020065830629319348947282451928811","9998924511524163161400284450624734709606219666878208497308405260513858468206"],["15479118344362304629247664778878450109367920093301302741911687500854084218498","22672580480455771845323242790761017725219541417950745914588630098970261346268"],["28780892122731823163460991783904547518582397213481611566649417437413573585555","15757502189649213342983456458901642876589002367550782487583136266322306299623"],["7565090578034411067548554676039930638547854553766148717204996903157715807692","9978278620231115069204136126101608895900223427041315025406149118044119984453"],["17446587400991626342520552814979388441199887704412499639151822227738500822553","14348148669713371001551878524060294107878471130104835785260516576641757767301"],["10104876500683780190568867887412587122073713020664803762314978581450743442457","22406276371742554487538557006755152973956703012495547933046300605292020863856"],["26772874782508641380927865996095952367591393313584974937575040025204185933271","19614535835250540540686900641999874500626653021572311992731046279734369082938"],["26395595140297946549570519699132799811508150571897892911902729550607834191469","1063483130810483443328499941188642035324955975892877522961542909084698848339"],["11064079981641715380421265438274372812978337143449165626309823522567048267591","11536703766958960164018238488166925833062020206113328981692280629334981018093"],["13705354046024838767184195301885872974963425325924017018971601999443733102228","26924059198691154140912183026317562969013251441639253543226378643240141313833"],["16517561357824246495161003510999775230646108933729445003543835290983372805335","13297772576710547049921242371122681824263404072556301640536140265716880556915"],["25527584204634606972316627192061792019862626935597593940228053428510160953452","3301442217632369949447065800020717489869440220437298928456970275047800576724"],["2600377757640117511395272741436620976468729623155949004124983309839519828211","26758184002721234946185993837113281744425917490078254028346952908358617215011"],["14342064632232973225754105417650792169047807899393879982223800095016907768890","1139023469379893218836007583412370196996952172220053429683704654515230989737"],["9326518869057836824593997503362483300257204901422525792809944764589609321687","8874276935317519468149377874924854552986867273812203395153081063500647596408"],["8010128829159192904762856076686540438521745955440498692479250418359605456136","19740555298937937354826951965399151491084285246793280010562271760992956584029"],["6668311945213425094348382373565758339488356420833108194987566350139646249476","17718564073713514256868810109748246015618023293078261426433571377157115124027"],["15943779421848964454297226994280070945096942555258943575718331303110189673818","28117543910449434245705941587261428228646402669166719429717152217184180218056"],["2832177638170211446484256396103551562562444333731848802091022160542738036643","28293169772751659663399368768289287658352783659456231560150130559363194495181"],["16240636709053501990424237313014767060086669454969976917597736580289812867103","8732810846213651396501139348137023747341252606122116583564992427635148990534"],["1090364172233728187621295557529266082222869187056539515181439616249452762049","12691908437885993930260115872172119450792106046757530291064434472416419282544"],["20707926446765240240411858008645359278238912812405671333621659521983559253339","2878205017739477856721556623512547635061967877101745060799132058846563713793"],["16918707696383692714098404259982789295179273761734939718240332825850348366647","4044701649365899211128512422959183223834093553829989496703575194130406256152"],["27568161794542771974540356569206851729782237958840079475132698982373185997867","11761898437208738260623270041125222722759002638614955568655318108134880702329"],["1880242847801737597254687505689760982962469673289311804803291344546714174539","18114396976692697458048255642533629640461005778338656617134895170063223087961"],["21974742299679407658133504402236062274140846314202501098992992493849826300678","3589275993444737994353284318128162540032740885061406053740745485296981639879"],["18027244986286500434388408547829635962994192151304863711525729052902752805688","9929749488174079392075795514854310902888008242734409218090037904197057114210"],["18370565545087893155150077480381407346813284471771526731211320946365627247297","2738206210987310494291645275421301317945449889278033128267883196072670543758"],["14642141296000902933989567157699352674313056712669998979806471588873320788757","22959356362985688095745479209469035437978721232915237365967143483965216973496"],["25916210306922410942911973306263459950836090427345347911998856524320592304067","10751813211146370912964511955004626127237569858255517777259807668288048942560"],["26479679113925086301076727076234362487591341393493448798584273961828717814904","19683024828917444424664294419154737073418964628035530966399483420939572217336"],["20690689349181641129585449482536156243019918318288869151407526588346064982325","1339128651948173299824487956066779738629569997933601529835941529179465799282"],["1385951827671310015715987740789771847118449612317059535491333480613885079097","539544661926042875971694811959461130887692819551707779254948323529608858481"],["25689604236674699376405551357268297324928138015970772450022780363976534159086","28586625502734018319133655720052421378028367515683399236431669802751147920887"],["11347841440857531985603970409054595431638306275412821153895746381752540271825","3096808628433016467245932974335707795422997698900242803521399263642167450438"],["8930820212455766300475373183279990283596233508559799038783112221048868315999","28864137296000709667969747369191573294625465298643006563092527870057105550973"],["20462047960656455450412366179247695135061557709769804735976066033854059135462","4826327720866667414713581883810506872686081993828160767932159589292786729034"],["13958706312957789912652113349003401897633905473272005976350457093003443409076","10713283618553373057856057917866715611095875214682032279688906584406275934932"],["17839711287791132005805940807526768095019950291338915539277079229392229769399","17059201574500047278213594127405556098996754006305154218425498404312361024469"],["14325784295454812985961875917843433291246374164375972236022206740915147083767","22566939648610516980241390651512139326757082908202132147747531176640883920689"],["9649308027146620306949217279041923890407798222635634610691251125036570588341","26120834840364852559354436405123850484589091981819313647212887660336425341236"],["1657084846902146497542462663677937737298412369954573596579142329467251940621","17147549355229713083317241909508512906585007154967499905641786864971763695423"],["140077993702313440640052810472608422424822206876246535195561626129862057703","9846832874589155607401348203129013712207971654400619879627969640710289514618"],["4018692080854693940002935404135897415802408590571884455116086803318065963433","21322922414563788040258699237216065824533348830906388338435138753734023731536"],["26863139789153366047713298920223574917545199228302307951442297381487170258468","18720457958023937533220462170906164504464171517112469193215662165661184082023"],["16745108237028810043197689243787797431372062836899939816056188910447385862125","5355417401184440580832519533317061812642351276024784976735525373044112511870"],["11045778245486733043186361955053010348549127466713564105494842438535603360871","17009703917551035670614212449417884680507403107841987274942106974858938367195"],["25514037439091824890736858361949100392186541615136936359889803950680516339512","12838327477745880499390294408243323206715445764309376183338122476710674231192"],["7846378389792102421273117201245151294139790225379956685758970578464683398770","12694424539844625395008383332264000366014371501175024854244354177944166497216"],["11896746106963707853900208463677177791560929273035956796979010767518054499781","9023433013671413889949196553975197481914450054562052296873404548478122822746"],["3027040590007004824600159765089644474581845208017707762976160292512979863010","19469641121354261585474141659413022183139843860814905925805828790695061052110"],["23579586364993742920428042463792781855159843363449714747891301236033245244809","14707864485050327158339726639304092137019184722134208038339518439739068755080"],["10664374767271390558660302269704420474664230778166458722158969561817838118060","1974441507500211781510744047409338723140986944140565869737617898063487051910"],["24037104685281991050615975144577201437339650926522939495296220009308177615909","617514395441089946072444746561135399283170238316612436911440344333081195116"],["13918404994741308717957411861111030000007736428242574369943024372003351814768","4020276217064419175083840210687084074506773257179570159728005786243944766492"],["14045731389575105240383789266085138734914480407480286990866856499549016321849","15264250259432555082286503155954439273767791642269409754011471822003927477746"],["2874985453990125738353503441589756019582034055163692359207241080942059345131","16566968735371775517839887058797119867186374717732791790548001010856763630707"],["14819148570426842415296587852506148617941519068302510953169054138857727677102","3620917003353548987560598142555471788078379303225959854354722174844508866130"],["22196615513841417859034882505396023789215461418449852778162340460766540478274","20630128858935438674696879954462288364369044282043965451587897922005762021126"],["752927712361402620483772978541229633307627990547305476357622009162061274225","1129956531660354586074579649062692539684622646391638323043402377215944667213"],["6311601898297608600965372572022839089210479014243092886038836952728140067448","11173607595015606710947537452594605405559988481240843411884013002220298709688"],["25647695300024272602597357161709911697468612165623405412222852648990716858556","27326976073943380883728401961922770089290418151994522561701781304988831416171"],["4483259104444423275260925786712148691339943339770644164425221668828235397451","21587762229614838384632694290750436782721564132178012715509467704107988909061"],["4643951604451288686073631460655375900721717180214089371284947396499822596194","4536897713827746432193303212056643441100948306571413514164287367098298464156"],["4997650754079984536815512706953359582725798467359914054804802958625281234862","24915768107365551193830529149893412954369631422120277808432266102871765049347"],["21985412908027196025395645411547663059501369462690811769585258414910496531264","14729173508380648174720737988616828046242127648882487875674544089509020994220"],["20191987981438929024302883672051183786650637182173200035459616918823906235033","10527589234964298855709371381468919235625203316344469411480771739593158221813"],["21784801253077733554061848560259954558163067777309164600385676717144727510385","10678498646721070642383334451082581596959258448082102013880301985128528819026"],["25705770898324240754915133672281856880866981020684968313674602317834040622271","23261339508340575255189742456833520452017910329199582774167051165951425687872"],["23078765680461906819700057113394039078405570992767223641609621305873404301645","13727181582373283445017799234066544122746538851794634030016883487524576512896"],["14273954097407388447698409179554315020113040767480129810099439151555031168862","9090087342874242176050374066212902608941274421922016431891235000932108191081"],["1870372142871048893833434225079939952398335299262160073128758570086306601324","15006410346386367755289889481500405271985997439077189951582823946310326099121"],["502789833530642013593432222092677249536936000998059276567208969427999660436","2729172226168812010921170026798260619369671549027693895583696601994314824847"],["820260049514668035829737238322966494042566325935865573829698954136887172628","7103937113636930776616788181744964309844267464460704049031263391628138790443"],["25442827826410032968629066063581699545065261202213267564267826963331985484978","24592331685534456102340112127088801687307203295900655036707560395974327109839"],["26381130405031565043809893306289847388949461611444599030529726088363079019883","9937355034027055013413811723502836565102942367324005494377701710798780084577"],["26642253900576775008516629584312874531304516103210836500077508553826136031454","2504565013784390031033268792652395846152089118315664364033983395741589910259"],["11577802020669828517404714035925489913230750338792424507382527627106227864513","23688436860664601337210191267228653242846265446016399348531232005543917566186"],["21015634996087279401367396697947172836738065607827114454137696618110873203133","6375277463822950346705459802002218475868113243538497102092929553286043156620"],["26961614221031018456353253087780258589724454659152446159263961505447290802322","567869874452604633330749143717074115080845442833241515567315616212630804160"],["22238151934527966032333600271708749851698727476980156987203773231599175008863","18078319508763454607295215646950534064551794812407120998022127353457072313452"],["10336486853599319597024218933806009056570955720540473036122852745292357665545","20564823614545753381556674400984993392384961500459388894699419891967681798118"],["16001348336182643178035349542445683149634311106021299737651418734446765236190","13206863267489350587948178806651402814707366558886615251130340181492155505886"],["18140324543133762144797063647945523746315314425956684804768793546081794738627","27401755924786478690676679040729410695726211954047469149139849483718831033219"],["10171000567156453663319071125492080800318143240721713831612962345088187218846","21821348843942210201833877124253836056810485233564360387335624690600402306029"],["13769233400446353856987108181446114713536269970299934777436835749570495794163","17155513039046436756835401671244177771265838538383670127258403149492147479609"],["21882091784808772099331064235798652236670671222461117575562048252140834266792","24267259023325134078559888466491869612166289315568798723360327841670855177160"],["6994359110112053923056611091136226979018711666770088094691805483471754532779","4677190184061120166883368521003356581202874571311862590284191752165883224850"],["24335440572642831585075947095773998940761866590250299035202587353102901190410","22442853035134712588473621634239850141814646761756703666767466763793716118537"],["1296741919482063220913316787480798689562475140967542026934271069488347839775","19052811563566201693369035715647971375238447161260648183746341414311690187598"],["23264393365071520849349832814470964900174920019277483642797843705382151163159","23376617135967058602349219517937376655143698093480231028991441302391113665529"],["12386771394137055282681179472243399320584814250115572347965787434258679997568","19739443243937862644464759474665318753946495836133994088579172318984829803693"],["1546466244871126068303398138025769148221968641382590723902614014242649651874","27102144374292069478588524963329850293306451535545353303378329534664597856877"],["8148344720492714067258418039402352380400331499999880084776559371552049044704","5044487333532205409445586784714661856819740972240447693936986240868399890046"],["15860537888807811277908694889540661826683959162330695281691960391215788397598","20227290755569971228598817312630506848029168373726630649714485211838183943111"],["23593988798893244156126355227148195179296358086625237043518467615314288910495","16958556530628441528571334402163564038194531061436149276188261446175613254267"],["26931955380150974529868386552920640164231279707725064126403419061127684159022","6547471868648537536194027869698230070802827781912344250557223055069833469394"],["8054305820613604716977006858402718449762616339001070951110153214203259403596","7419520439249227272536332595845129494970596402165673393156461604351816366715"],["19717566428400040124256487962594642673090729398429750226194448568943033558102","4443785797112828328757192522820729948008638388773974219925994861269756609382"],["2491909813506688571788484742007152464626950893710923589903418891439173006613","6080871561449931611746085458222916715983965227392813779870040632845303769575"],["2246595498345944437852572668438643451225574100434153167985519896184818214302","5677406994015032822825944173305754597448721888666165602099589568595006186997"],["16810569086578969633775222223023981780829786544634036737830106295869803522446","3992760364638265833707204719836139581935170915809146949060801782361973654633"],["25108110932787493418883860103081458287999479481779682958848957275342271114663","16989255898635194058044741337644035906284407054369140921804485987692336687466"],["20322406527512161275643338970499152540477038925430999443175637985065887042668","8056033609297498733682141407708298937638001268550199992150929675046390823352"],["7210782242526326010174242167769044137325553436005222063630182638017667502385","2823363520779799733333468102995269183883965155217254185506278772855803417274"],["6950233865561768786846769005144915712570658554032886062573963940348833395930","12224823773376988353377628566988081427701240574554992128426432675634991406060"],["6188453879918293167201608114845543398199933097703379860563436489427658709849","22573444369956750376309313757848452762909226841467239216251911680027195741229"],["16159516816989556999205900358316867345892545804420274238581446704116222086430","1762711307856647041410193891548438888729660626048625420762130384982821745478"],["21888526292891010261444226579339914733047171456368865674102959528888100823914","25246458918111020802685948923689500626933255209607835983883076782832602592640"],["25621944545942660323237315452180643611570100844465881139213000498249212124482","2356988723415705423696845443744635884340728257492148806700681230295396717987"],["17306269379539171447968835085554084316448157659542105069771929676445227004169","22126372699313418323932806067290126624932655052926984058773209807477855527366"],["8619079939619111138665179913558634810288516672363701014000880643315777116252","1176938838965525928403373801144967848467735845548663171332486946210670935308"],["26624706712031759349874814955928017755797872669823791854231095527534851414525","19983059294955137722051019086617663407235373238540146949207627638783897575685"],["17511572726193811085361832397830844383142042599810193622226615749621336161284","16438321161592689657400095487613157877223445112901965925888510546176923416882"],["3034646077818434971773767722120273099719944663053430174568009027132387265278","18076568619366042605086487249236263310840649608591971670712028959182270464220"],["21839369779322436958423711253561582678618898450016436707891731398531074831170","10027097810083428822320487109914398343351832334164574071051535638569828722859"],["2130459833056757330218198503320158905242046804286003734219426237237895636325","10371551547955332853305494812825479269133637233696278054508620345297515379318"],["26249168779751992111387676573288475250670329077784258077099944084409240156379","19308314806690649821228312911421185667494733269721565257397512864029271749635"],["16936480435072941843900378336719957959480410915361056506460082624856956443630","12803683253701137656445686320115230820727359823301631631077041890921029822502"],["14722621692975948989542996690225498630944058806116938155712082286952044534514","17371091192263762365494329704245357326934776751435722437804639801095510938026"],["27494690843787746739248232845090961571835965778810157746130756199815246333557","2616877151180348702569944007266993108929881653002883057319451328422966783979"],["16772751876867475757904658898110209309536091006350377216853813138845177096465","16520131422392103667527920500713295969732593806891622521491889991295470755290"],["10522366245868659417512297213488714913320275967761918591544558817469885292742","22211172047374570629215878821562905522238121399538997570710852053642576659879"],["13270105434880668341041000998716301863723461862066452872299318734542482632940","15733704596336022789023275009875400262090692936620408499238305024132084676977"],["11636598909861566567972159619811163284274924097455161557833137818777740701823","15065773357996051134228012617749223540332589921172891966508668350748420569938"],["467509919008105989211434874399794558902957675168796288299703842594488148279","18287992139238064313449286408516578968336359765620832933470429692497820027531"],["6231788284573795685009988765452461405977222987014320215694406602157243092606","13950764089222572227985835387690811339978960283512306920039694205918322180220"],["1552904223654483032417889808666243747903600084488795801156940012449367825021","7958933407566556096593193061335719312258962799607472339109778366296320956498"],["21811119098605574917995543404898619590561483719930126686599090057116375671421","23402440482220787800917282366078297821924130710031735664710073016421759324713"],["8541471796825742161588902501574953108596393450697191686030812366877112189294","4189323744249152014101942206850255365507052387500436955725269442424016036712"],["22596849523503456833702021535050449624533968511300033567743507075465814991011","11543635257612667739598258856714864866882659175248693422850349355085143620899"],["17168083921004294871121145637510121341556906230491494069722503095600551562030","7296797128806814381608744104872249580655639335570888573804026877822536808208"],["19768373591269627456549561710553102162226027235626120259017664955136590999515","21242559148601391987079116869434194084692296658655428290229709311224830031493"],["23861454617872673116257188422455591353661419360610180613104833832755865364598","26969145930093992674684996336779727577056672602547888703781179764797205258881"],["18025068938776776361462167105814905994742978877821654980097105358632147763301","28340955660087589908792266063002963289370760121497706307878651967142016321686"],["18361962824015420831159885007660880493823059814754760169953012782261840071421","19544919317329149741472766813568273759306553731611177985732505527741681651463"],["7520239636762931279812793041860978850309731947480926837904871257566502927873","459312914536377778735746571162663648666751843333056455621330579718005971326"],["24974543507624975281945630453956400878444279021908588939087151359851522652935","21525326231118120827113922513172926594600495824600495206259009360617402033808"],["11465759716263882160225667876413402524652870581250517985192988618607681203611","4757082809365976252129279614694939677225690000530033376864352073151549343616"],["19498507648740062171513529958282909531952456173100597367467808661556547706125","17414204329316522772237816757440350893552098892152824396098049100606927962436"],["13412168462323156221159347157362967094620370091802004804802482123716854390302","8326214490873922726724013289548681708378540968387022250778608972767875507419"],["6485335142704089853083336416690802023928819431410988926376356944363409723025","13215655640437831846431080821891193272991626621399731710488271876858600091137"],["23967095961985337182373588783684371943900569291983436142518744653099222899050","23390616255278690572885361787755950760689180160542302659116186640394268649711"],["3824014425355581875988178070476776234620483331953119772528491951195090594389","19273181107914996558603272432115338957145089724858583201682689278419848402010"],["21667520816811806398798020241626927187621700957772374486212445050913954507672","2538872634842639893322230183850980443532503864355490323452523187587983347974"],["2976938306453697237626343459158766769913973535228268435740308045646708488711","20677215141117637427608333325527923812917623912430782669258557643242913452392"],["11891493906909036351512752012788802957031469756080276897605693035632837546017","2250074408764016598469291925947582674825956156345170994924591396259461444470"],["15830481342382041276672451555089683619907989558438905597254456161319696695527","11119061721570056645249285149325234930966578368925353813393070076859653093678"],["15096455250886957055773494276792026581488599193273918996230048941757024860203","26867432343682098748059741271527736592415790352356676143666235215142759436696"],["726355581650462001886219291634541002264352617119748671651090691060886288661","7819417916295957827816134953735549377658648268940694860944795706906838104245"],["16439359811147147096063529644569870449464037395269205273453442985373591377872","11972100235444110878653785284886109129162803276648752524993314456379693354147"],["18347376959681489355806715776545812002708115126053953919520231035996389820765","22312120589242142198969660482400424609872330365374171229943524494593816017775"],["6864797504953110457451134831131087037899952508338747191565763299775098086928","823861816532408465781250576358037593112881360257595964475194054863540701605"],["8554820942928420157110576283293759306578633738085770597416877878750529679262","15889248858949583187907473887107568023143436683411841372508552887278105197278"],["12881544022011415955492260004298101561708756794945279024245493953855372723198","17641069404720739290333053203612839257937299288991748584285353682662920393508"],["23005925535059857567744698993812504865279497431184337123092524288061985510026","22863433268956403227115920992789404872665086857909767986512948585357741501226"],["22152331169288320433247196088141298376599419828432086746423852673553618098481","4435099807789773830081186767708705487110153046878859425792907271653779508975"],["7578745412017622631964041407027695584849058649984703068730677820755191638073","11930532067422167564785014442398535463847317731418567331324206876954108863185"],["17368015650224546377557418407141243151667079984713996786146014116571939229827","19331051138535620478746350138145872455547931599955883581477376258717914896199"],["17159725075345318516133592179532200025773428634200946145140404695829164740994","18974137828330736872124315656238157267338762381589529145663591736543069642208"],["22322412043200015313866918789529575336787929910318545884911687519714774085888","8527130301859701558930077326860257824732018228954631887292155212809197850957"],["22748805018957629340448907593466301727613340217802964199944345608144357448838","13573260249777266888860922546328434943551880642771260254022091568223178587459"],["11652127928161705655192110952292568604881640046129755836888398600977666966603","17566741342724811603842650370598099624134288546137880274357208730917229179318"],["24720861453175375554424048928623154082292388478963274993512093019242696345574","26069353299788971795652847339738746541051789567536160240208264032915625132495"],["10478106736654527823294992556412799844512304687889492808068069568534350852082","11981559033333155715147029632721987090034608827127105804987757434519570692338"],["28579043640585011239860533373401798761940132462148268660267369661475792030603","26946639437880138902610825614263702341613833749026303917018431246684307538307"],["1790739016653202931794756483987346153938685757732855403917648080572059931641","1549593649272402150836843507414785956410372706193927522687218948552798764034"],["22552287626963511869125762965550285320757954938180525273094232259063446372589","11584472033495221310394216842048010549656986213752910301332379153407940926644"],["24972220530697884789409262341006437927905279285248801583281120277900797885601","21885185907251447150438120394783382319020420883249622390257340822544959046978"],["22209222022719076390780175151091914827708109566811541561512953577206545658810","10242682680475956570342683881969747904798661339750395403883590951219195982684"],["1815717941265288443332455373966546129887093032308291633922007142155887111508","25728838739708047918921482608267886498753017205962360075973242741561886511964"],["8980595798557234192927784475594315239507307051570632240961819369766060588680","22034601281742342859641445482155987417336176323234230557064514641753595805914"],["17038518995823202549863165071483277745145326705061937838071147697971733144417","22687780242410843113454074426908922263309397903875528046795373749719851029827"],["10161102612003543837513763544495029875774159373503626561847829859547777247299","9385861539751904872068960987485310750810482197733664429224643502855252062215"],["26588150772551848464586064160792869788263877854842288518119908255208212190099","7747593113247692267505066412457042504435206880421674272816439615277392906109"],["22138978382166561728794254743431543100051481244640356042205502375958467599866","23290505165259516904660419897322646527452952848280937528990711465218419681094"],["3538999036994789723830106777540425437345334927804550794502795856489611528272","25949298912569881378391023819047765275282007321099823933489790075562488180363"],["8164410727613582824413604575480467055399660617747085341980676832528197655471","6284400863757097083045094133890875048886870806399567952652340454192970243625"],["7745221810221875694054845588292429612830282647721156377282193762712576826226","3986276863723492103152215803547549979732522318116974964743632020369390596363"],["24897357985225749512495834731897721767654634823741395348595552758447913393660","20469867150410943731710736657601950633481853771404902946602770973501582227294"],["22946915791249715479489646209193452935911604308479159913599388364593328315267","3665721418892281597271567341494997359160090564994131846760511898458307485536"],["13146577238546987052546276454083081664890818159604015738203583968710930241238","13576875889363751591719213857273036186960233507616408063239183679176358779837"],["3020115043640380431777041764401053349852810790758515837468837156567444977969","2918427650893770803036465020164786659942429056434432040760824801754218950654"],["6763523924645063510955010459467722929224944011958600189050660081606929504384","25448582150124755115585812681895793944996112964476197845715827268846536184564"],["1163191648282911869863234172392112726498144117788036030364012681472909335646","21815324135653154972537186104062168680552612687228145005880180438071147696412"],["13139250530195536036335082604761788367958226908127284888505625716443007237268","20013815896097917852898959874614873510988104229056245802960864782887890305686"],["23802207903337490030867892387445744973743783942678511418868285965076258765455","6246040807877335138086054068029053503150924561505677078332234198076509603480"],["17058710179407735476473947707642779937827984158335577573215570577674132811363","6517879493621703654775435647915368753695370856683225588230539851761495126505"],["6433879818608218459377566943741704707258934185841157920637425314306473984599","25154127169917672136862036618303903507582449814490208037733771405591613685211"],["25168823447887886432000306466367323985055356827625680079653744931018641055762","28729142973691277287329741642209824264154216405734197598778889538300273741989"],["3344822133652902413814421450726226206686893839113087114701833233815052898854","186841697880692843900461956630012323629839198096210933518603089785127798093"],["21574566448994190017727799882417032195815565043716399353040288306901926327279","11115804754548460208457970412448928252572110177789052786062464001769382107511"],["11413579897269703171543620467313030789305771925049681959877407348739995718787","12245894142337315949866780955033922259271228091831427935124069916785707536605"],["11658785161787516676670089781665032996441459419403770831061378042009306889012","28407099125604739889332632598615587900631876316448900865026991817461295079841"],["15971514255995889567675799547730826868431094169961205382128698179495012717326","8608148984486399103942856101531704587259238950034101565924880044376565611893"],["5413637738302507695925276153793560034985624178049463796537568405490878194686","10180971750133395689500784152562904748029146558558307800276447780553632150774"],["10036332729904775165747310142493457468023691636686336485468215527880556394058","7599657637999822000125826876526639258344910104126498375468001321912135721511"],["14045672978170308490967151212096275532703327037296739843781037650192027612641","9886244533956009574366326510553995394690557921510881981027343954190623940503"],["26501993492371710883188237426974445384211205043028682919210460995782235105830","10179491845860810577753821275667421267610001476413210632730552628375261437737"],["19714713245109898667419365143287432515887721230147342655131954146894050776342","9557282553548147704593551853549506513640990790252681763733583363743349187399"],["15697581439111599625187526376294911914984243987621917208343212784958725335023","6707716285512263269242595050299612362967082144579548033944156140439382796282"],["1601954348858682908290232377948910503493539213792796360184302792109865741512","22339877216110863363355560553883044579968742340529560630502169484346721944549"],["6623690132788588631541174659547087425864378832095708599096717967699114064671","24389086743514194036977391083824739850949927062693669480792012214202027856278"],["25670535544257288996776529239346746550242326292675709258738187565461853410304","17461699621989640379303767047279927904670234795889616678371593273701781617110"],["28489316324894933400468987244039628643568333812597278812078490058780279005738","20306693509155849880670864677021562202045218746207949107702617119848460253934"],["10227587925741663801470523233220449234554825766463837923055397236668916890488","20125797669226276305723490443422025647010486392232528583366718610681848026778"],["23519334990404013636475852819000307992196331682912839875634937184947975791876","25459858812393572206947931456782835442496505846045539657541800612812020893154"],["23166942562059635417972358123119564502059903179011328508067125592490070830514","3332460878433504182863132240005285799204939454311058205890540332518071332091"],["21604664940079318035612774614896276405688175040489162448983570369090570157686","16096623050323079702821117192599665632527901918750002491619926516399568096270"],["8538752059723911778268174822609866552607800665641753847390677703979510596991","18693188933700516376143401907411112632696941667231432191460542099620587193532"],["24581785068782766386701134160460509241240159042422183511142212223772701165245","14082656795746434385433399870476961522490397729267297759371181111805995111836"],["8229758898267357454528770619975401227447463881253435347464776323815040563376","10062554222433575969220852207348333996113693697564762423829672053922308705242"],["13239659121385731390920249439722667329305929970395072184790900268098934574781","14856877314873732322564586675212726529453164652448706972347620855538932548849"],["21332604651992044748587778875478394927312319950778359711566209348910332196177","26599246784020463568410775953771870198549978480878857475986298904771828336344"],["4834402536050555482375256519203618616376672988939953620255992859731446654413","2532347585994095076853107981285012463775031901088658342514521579207599033991"],["19515122126378301521250657024269007191868978261468253764980641887990229121976","23724307022251286123520094826517989542184447588870421153750494475440936642579"],["1334406749828842203411579378817470968699990690904044826854973867876034297450","9907035113699193277733278496225811632524736157403497655993827931851391014034"],["22849805006239083954789582981819173545554677459009214277136730716856671045254","25324521907298553937781876015796384068123646261492128176923463203294150190005"],["24033243129037740498760122863066202192014017958462682785309965441162482391875","3508452636400826689863969905326720011762713064311087516168474731658854050332"],["10323957101446961420604117349065599122306625746151383292077096066731674080112","911809016871214495036751907535595650819227656397413611546542118618477420973"],["20283251222545422473084590492835202656216693373346474275584512333339962610884","12608627743240398288084043038519631946414412392293069422005360299323268597151"],["5705576700804185995083669894308037706946634410471982874417103209257734427451","26397691632994690771471286922931732737283926069666867581770321079058076367969"],["28202784836687004891296822028342693965806806936091210456059548888907574104539","5036786508285227200981580548557416053426705817877585256020932779100693778398"],["19941162620712988505192570330501296435597783123738824154528335458562344439286","3457204254100432148652778745448873313586233678194642117704919085208957407047"],["11528778321013111068759474608979142157758738651049395367691119893663205734147","26715178707135002609250375616322881736534419977700333108040967315327974781221"],["14919803055467905607507679045728255647928843065504692398134560138726865531695","27127996253442910847060224126334544070830093876914668717867873154709520814198"],["22712573326201337053659511336232140992729080524303843511254201115410869261459","8784933857167255550011046170669645274629110058528463775563322696457231591841"],["27252716695533132464758244255857417520704955031677254239819568466701031762867","28467683611030677092739270066778343548234250932587646879832672847923617811027"],["8698263900023870739068467243549619659038718719789045009952638738805222399535","16353131691008738328829519709614674684371334377145709294746487696994087582205"],["17292729996808706040254451140473541451816094757136466468881309905963809260221","14586875354325159303273413662027112318530846985357367305973834694708557045379"],["6171066014156714786255000673097033442113616733164164201776718682444965241354","1122495572700167668113300537101413623384795352535175562195711115536711117616"],["17340853390714717615668100246249318805094708604443918392685610837326457649963","23405151359653520808177594655864117586784785292992138223976616569564594504084"],["17649038905645966023557251460682458308020396751965121044795042769576041760065","3044124085409881451539351972223926460479771289742530947114467215646391427806"],["17660324244476836738226668955595079821147953436009070007140995100144810260670","7427772774211273627699438734722145973176016578594262784360515251879035243469"],["10778672321508735627186440671402075061996226530898747716328569965778671270786","6015954958248031076733683444690284772013643097168548522486590677446878140956"],["28271558673559321157359962360303476953456161374287423507857566007969965557581","19119084246997858632533461380263329470079115875309215191481691379775536319217"],["13759141972948987934174340021993640393633410743747551275445444800473965204957","20760498244978092488895347094062177024508854201719496329648230978390182026389"],["13591972571674147852740870981161284421861429255471647585108454198088717924751","11982332516601697709480717935199085615722155313412548792489706041221775642607"],["27831543683449794059203487876923901879780954042711108443461143558943998920375","299651746229098003275423670227451304368919508743745012112846310976805400679"],["16941603097936509792059827559531856903720473404400288700761623771451355359588","6928573728553016173234092103524151537092247327211153526082921389576949963379"],["23565746749515254557100569674602675218929647469859580333010567047682307755021","4675068838182643190475182615276678381921949095616756685535576854817368630178"],["17642986614023166629823587249871984499007129563575485188473848097002966076187","17744625663568068874788613949183165738321922372529915053714102099054677224631"],["12655133216520878095878242662637578077901908139310018771033466363618984937885","27802952255010806931617579548401380504550727178063751126060192622643498204484"],["26473158639802201905516633142194075356401134407963638595724717245194937827757","22238435292168656189149109343695393175712118110524329462977098926190886263064"],["16478437131658689830720783038005459579641608468217413458067203300217034377133","8853150903192676667572111345428796536801188081129520710661646922655558923042"],["11118324465426921464663509123402595511484641372982781115860047836158644529746","19999871572435500554581405240797204594316192674110164529077022724313486199258"],["26905070437993644130095347979790528283797951911256581571774921127695522249283","10842050047342387145771269849855464535343168818748691916048715242710112245204"],["1313329282650477151890056307184730745436748752038096113620977503758398018762","18692312910066586711924564766427830798897103860155173751521949693215576126386"],["11604177896430300520839489425508026548957749297306009237927314325215946377603","11623420813651868315941373726131242528435681970711424164470354642586093294475"],["1759616720212733510439284273925414181377579074331033849664986848138218573821","23080984120812133342069335349296101516759213145258959673395306065230772489225"],["17183891694952872757782532971919964775214368496329037647526166063552185345377","26117945712268217246356306245769851746404269956719637539826283126288371615767"],["10890348759430827537611218007899930270627643892392478335888897645205386000913","779963196877330730786528382847505540675142623904816741659240923703034320037"],["8093530249554257770876893236283166804292695989949139253788305912511273280765","8310607688057522936211499468390072495996001149298678697074847539246373362047"],["18684656777244587421649661434055237558295523925270411061610381185580154848348","23655135634311192606963158159519816207011147529022615809291582936670735621033"],["17781569765128573102609170108941577347329830920041767174471169081077568120618","27312645221639258371440085124108901802951700293962584398815985042383576191821"],["13543588072340919021220784346228036531371622767045357573948494121880196226464","5769693865355042600396340299243917101604655059120713955036279758929955384819"],["20122276636911012879978724113311375498336581334394957329032808081517455970897","3971992369157720822850082955936221881483671639240261363954914766044152957458"],["5448943485055943289654460413446873716740191600267590995840826611712926985954","12162623738892415861539686061996774328731470441252603773227878801935429590216"],["15980520995631659072439833374101183189320979955452051925235196945953810098893","7675460266241832731331027015500764397534980042517115367838980396179439275914"],["26753284678310773607565602469125083914046731633079608108789366080941327309715","7594778238793194989723339292267220350996846063195105450718057375584271117611"],["22711239884138715384625885233723499121546442323026009635490036408430969292120","14618962569604721208858752992962904650971494899553473796114288060673761061510"],["9600983502155581444497101307916999733742471258213335777440697674730416003495","14072583903081693459075615401533859118445779229500423000683490856173541562574"],["27168750698296795005188710893909457979336878393831353209920322502791313265282","24169242712875201075223055640006811203522204037765331450318072425409372314473"],["12272428624721972172182900383614224570950217897643607510419791637925253568086","164776342020017634570912008610898566002397513867055162426898736414427657780"],["23273084373180310729480857176631061005588267618107854769069054530853793456997","10786887562470127848415302069649655323064192829086115999712996538229379291262"],["15602199541307152377854333844904526359186638305988822786915457105636218859855","2941939862163282585216794872334819637132806324163190549699190298701054236299"],["28276305954334160679407509026930211817248110582049884947509787924877102055133","15110523779266882957360681981850008680169372853396016488340109062403135197484"],["9789030768887365177030509079360609914865462299428054021075225688916030380904","17384444219607731009959642700539583148094299867285066247482168392848674717260"],["28883662726563175533950888007918764543528084947039342105575242755978494140420","19607762539520845356590915782981166298018919964585963753396145594085551470991"],["26709660433849279267411249351055303112397752344279420832603304214472560737501","3887326346121829243490820131532360070632750560718325287704973013332347918195"],["22543198849515937282248217191347805337131255461988656817601833386057708468072","7066973081418026707849185660039548926290126133327149095072285175023449945528"],["22976212632909991387192485120147074069196359109967987882543754544638315760271","10522086722892334596759259589940185553022571370384408343344040959930055657330"],["27587163359073553869350547961441267242198838165218566028338452788070073985200","23781368914283890743710632000104159065704916050909629223019939859068039734273"],["5623272343088477782696963148129909544776981490764725636376245957643414488732","24195606834093987099354539567725142716357500984385992723423044641526120925801"],["10670017067501408750751781636021031746623216500580570549204019631204694974267","2791844468114669112674449573295690282436789957748921424919642801001684540368"],["8693684334519812819697374034384979686499201336492065178879415462006512813983","4116366728887240851182851055253408475059009902986112987734896355311286235706"],["824345226522206354396267889114687369389803227147567944085373071006090469820","3350207052628990999716068301688708768886046505291752940073325933647834196622"],["24657148230384579351390153865030319469184353054890389268853555874820007759774","8130682579264283272997573591337388127611841736747812301153035145488209888995"],["5274513555287178870062184879874286706906581548292357241718679977130193159409","21949516251686677474360740337229328083438358022247198323409694345140272891677"],["15026169806820780762526270591161503684664086986650817734026552211517127480189","14764837035400584245591754203659904789021723205357612725935316319124869060749"],["25494402506381362668898359514911686279688420381028763026510168460779480269682","5165514353895771917954921817988794245170848210937415307983756462626846967073"],["23520192151641426739510754067728087348867981566191785357431977951256601539956","21171557974398211019115118817227372424090198054613658801447629333407000380723"],["7502600723236396555622504198835749021062696388153534293559624258038848432190","8293786131231738717742981547853331370601199741853182701978318197831872733440"],["23606318526919942045437991004642838491409766165917657864301474552559554894545","27036849842480107684829309904231870787604848659758192800346288851396312350930"],["22610798115609328974343677268268097145912224324018992865155018483720032709609","20732218026918132220595584755993235259875176722612152779405541059860064412513"],["26598044011467443798491219246136343073504059437233559475266235920465904904278","4584936988004421510131590456478923967804834059206195110896754842899324271093"],["17713457965271016591255708725737688039407728423843795521276785028562147284860","19454623183731696704235775033691756281358712268477361773494309337691304638354"],["27873409924629735259228983532217793302208882952226853068651187745977524553987","12605528846426355696741445838843150311020667055270622502510829122968810957922"],["12252237016580901149201741418188490746905281743023406489553998062838340852649","14649872999136383731639923468488131504701859504006447393004486375937523466815"],["16445833340022405343551984282625151253381842362907573047583281792656395829086","14316148092017855335298937524076090438673942256349823976399255941401349881136"],["23014329754069210087231902211017363986772675146198483673293208184664752292111","22806808790035044308793016126479889064119205305942787862564744492179652539876"],["3026579121206043603932359377303126894974610625442667382345880318632900381788","16090425190919530197322789940726417625515575752683433982796849766381866305496"],["12986543107433645425232980344081653342702607388553082132348488673057578038440","6195946907857858656798797545267943013304467725428086959614532775497842771773"],["13232385073184975463802312344720332595819832200950293526017294154811073455131","27590783666599601918655081536564217504049950643401353279096004946092927457965"],["1767473363066885815796164189573920002976460285989439232970882893260843515682","25713084435040696091141079665423575518383563891676728136391642648356807679744"],["21626308261821775361449658047627862628898015584430353571050988437580532279095","18007484950119087500922497402178691006472580566128037578236823192983664047672"],["22909756388043482812344050724291391977739528095133964531727791083433646166100","7647146520771731292479697966316696204763404700863602838205430746275046213534"],["1038430055411636602043774459148474512492141268809295592408610490821059979195","1381863429716362482167541419546487133436138964945534280926861534189147506000"],["6997314609841841129440158904813658322548118720308894223369024560168570254730","9573737263451924872657346047501249040236303515425149751075327304436021576720"],["13515546158573081607087346029254195488841981829666235553263553442363469173897","16871909327428593158946494618291874572965380806104479691692614155121842705827"],["26391721066563652844284823632104390782255201470932169560969538936852697944514","19838262297391991351888237201729788221959325202341974909682211233310295256165"],["13286726249291806747237817052618071804188588117662070955676803147453924670612","24886940871885967438707350959381389000880958181944822245425136226690064332473"],["3894407165928045965124746089020239826210163915373915810526906479476908438881","14108005340476022300986693167582263816254324246698077384324600960557820602812"],["9474537457057103284946717686594886844721652448986218443829885301460681061825","16374964835755395434679088682906553164495637983855471899981859045474609148031"],["23402949907401850374874183598266515600188814462547964591350051457420477222375","18136633948048349353578605371090620897443500879209792988112503371586329520413"],["17602751398010479891219455321483731483702686700284128211524397797302353848200","19439718423262804658383144562464507057927628688765470762639567254928067079533"],["15120755517206732686314833107551962736483332727146124222128828968253867900696","27991904680445433563608736774783242141714732098668113569014305904116314899806"],["18594122373579004627600479301972024409967971035844176234016280536328375149460","5250040169949021190118691853654171293489771231992382401649346283267990862945"],["26082102848355912523295642528966709347736446492543637608415757009838575180869","25883066361359918868822529707485186865622347546078367575160444994744915481231"],["14167549890126410931246928741567835170616275315212454378743419188457216418018","25861423254661432539351694123010017820907406085097770104133000702143576119460"],["19447173942164514610789617191218674147190655541397155782202795600903501393167","25192412412167107483426387921206737242960160360747755666259104725836034240701"],["14588111110420736895244612919494389536165223714634092708277955579635442705219","26352847218277351855539090154269251626534113281162920927191125365700978223038"],["26101147751134999614884702658626744024985413646172604995231310700619192338786","14349703244644211590445547981349157041263909967081708772662745182265090870870"],["14321764445451602666444716148772138561796214865454754142856761345934892831717","5607507601503754762727209409589288415733901614370855060899398270835514305409"],["20264678954170414803781930433137107484348888633277615638398780117348304509728","1382521292694827618864758641807990281702023661954467790261398913968221510863"],["14729693691183440351254922236084108964103863602436738723517643604145954572406","27139659244938879350456348786575875036690310514368560622331004575085116768854"],["27411946559020214648486801741967749015184250476743222305824301848429263726698","2741671982561618110504315728787272646669573108258991112028410842657968702940"],["22836110156231430495111040480169829408168366918089634566287468711789491171187","20217675866134226155956258820136793408861047687329546049000771162632566307364"],["5922343121060056359975560594087948176091395369311737117011889970516832075107","2485605833887853689308149729590999328027072706922836612125986835115792943722"],["20565141793962681952641613969626394125942152493556693579301658011568429535237","10261644037379146932634703699123895262993931019407849005096124624180593851128"],["24353983948039175277105251872455863004084851002920033440815551143458622114236","24597150503611429302865959333068675620731517234170386756407733769321892904415"],["21776034934681953800368082021425858969960689498496699744931197265540183935092","23666335461235929813736992550420132825092402106333292074814259312663022476307"],["17251391346531009530059177884420862316841817414051037739245126483784286810266","28315321910256097796038929878069214655492505068249263750650231604542427105319"],["6387816012149773761559949093412650854436296220797926423312539794462247171854","10275745344932371180078677219092653224698703539752730298376435391053662142538"],["15584981773354116407091280557295240021836602838186507158286336665257555769440","24843923162244365011301343152004370940794495791172355243684373916384680583790"],["27083913363281000771564831517677035538901322115882370087453273163765437547804","21493781141689189230387387635399856952653219717590013680918526284769886828257"],["26832730572633140444767647931009621561885189949660812874524832434938254658050","8909875494979802627124441975060449696174010111181302921551925176442408154447"],["15669423708755261543390592356881857717837053702778690745554823357924528439971","25934765266278657517784409562129345718413260922555551286186632774676373046427"],["6797137764845796559042920410294747415484449150405658298598179730481576998588","13080389928520563314908165697022561050335244679150981217243282188891465361161"],["21006606651484415628496868918934529567532131505974777931886634616043114629519","9057841099258558945396099215679021586646640098935856563447677939281062216211"],["2780381700297729545133183842256210742704030911401951456175864079327065612939","11473383741088393674903885184157460068881715238367232027598386427060532306460"],["3112229864444908793324682200611135158703088808044669488298112640497925714938","24325886169311977906561009176172838044872425479137569444774609225399347095072"],["3172251629038832290319769385791717643753162584845814730571073871783543165987","1047013203202104307834107180537826239557736103991480721289620536966143543969"],["17742658058241035286582505015108870904297081710091253376873593872761357887481","25546577845069154078768966056545453935770539077626789369574909418414010716315"],["391011580935256375242356020322638317597891835598320446504054337052295669942","15474448830831409847655366505917058132273965805838347504147709986442220053436"],["13634907366368943534169784880879376362680044974654224270315675197876177253337","26472178110092085487215822110406773752200568948349756237451373876664625278541"],["3242079903787991192466669533537211098050380087075026585459623808052857608999","25262474221758720340409484769699999581656685553787366283204745859550083855996"],["1919291069134311282412216412708689081875287901582516786039565986874326266801","11417014132371860062767008723875044330407697693816854292530422243068779558020"],["15484672769765481052575258220481985639148098038384931492393907599226214699032","9079045644943808443305237314381893342883645814828478321827111186213234068507"],["7598407884792205604420987407425321143767457218777589879412232939904242093988","19861326418929356773136041696594364294714103828301026010283741519261946247551"],["5857655723914371629204842798611692712814822568010483049542062731745114192678","11502539685743810249046415929462871025531253959953538790002580001394260698891"],["28335108656950476734927877344430453814763819496644496075738747480439569872350","7824903681857382974158241250204634915068528348957561441937981496282550180020"],["23934023799561174942065499675312011157224332498955522882226957570569454459523","220671811325527794571968263723049852389687907613479304887206094218339170951"],["13809269602780606679596579937317443455111216046820910307436849711619437396163","26098047291387244221379507757806450832279159124027349807810980833539366670187"],["2456937576892096247969312517112606016543573280666944661280898311300476719404","15096623628226017305259234065552362244329998772124312902814499619037579055824"],["17946840055532024242484167200457482649700421986262258409575739839298653124564","6749575181182317961322337292141379826838474064255685606870717880253884636001"],["7185776540079757815852238095055166620928432192350270102048021359468334590724","5341505310916216496630538277703764414342583208581859315406152345902970102365"],["12924093257618080971285116499404306457681391917618695406222485172255850811980","21670486303016177432656343720621969954655248338148185698713054886339546454966"],["17364421299209903539393210506882306544377565540186122796187689207617508862062","3327936451802049858296269259679242282778049618114345288452772062028304458881"],["6759646074460990580908189879849023505368393893371799024438234858314897818517","461461726575661385717730668800796615258356643016540738515307695922227573596"],["17824679532942378268979007635472408285051454195461505081623352778396185066138","8151721302134405031198223617579087323692411032592911770924204594160786636625"],["27870287444691776989019757376513658686276707138026689707730851723100828406304","5426333082790286226482290525403828734772578148789898976919884012426483117365"],["6477837876676456107284398556276538101720424420660125021636163034096125059323","16850742314700878068705762813226329880130768150789379082806930880369927703534"],["1418963826401669743495141464046376723929110297666520957281364546497829045481","3722895711209588167697565258576330741259005796847083934013437149368700132709"],["14329514710170835864199074971299993736486982801738339018890404917819250383373","2234803453499127844549175353274400580472586119458014483917459434176868298783"],["167526262230476231524651490234805322307438876892130344373246152571009355421","26945058880747873365877238533449361249585754975754935404662773807377457146486"],["3797036176672509659381646381241672678666903394176905509482359191766939780464","6820595069180237375133929541461544139299396280253521369106736596168722156755"],["13123209815254007348045698442444110458770750593867652964822336888877577897208","2962086001469838800727841132795090787125069872234608603196091637969034049016"],["22556051644189552882290753707746207866946427639418292268953417043107912348465","12163539103724145579088090801163412861636142419136592642889504478124476054116"],["17980757256167976513232828721975052099721486672499606765454604556603124734597","7589168951547557685832306878083232109182343733329107465627229118234767904833"],["18588280382957445753842335884416350041865983914320234688810845891103177044038","5016308931189637049918799373060525532844796304759143623675931943826965065950"],["9733176364281581464603207411722475469087540480087159131001507326902988845193","24220284025695797522352912400465064195261391518416141614488042596026231312026"],["2685132934483828636112807585796642690332094204518679935531992599208308952808","11422709431137584596799256819122910169208157209407071646425760148280329173355"],["2408718470345329936969108480474838772401160725774332433843818864012941806847","8852823996192357545979463927303804219797508325154313965670445053913271583873"],["11867936049630259120199472608750848400060710461662703186474812252900760808496","4480512253436015837872091717919122223439930358030671968989403994756885480338"],["13860340117328947659186368033096985591695581365715882469940435968717529822970","10484771859521221176841809560056525788782570730153299849188605736789115456280"],["21576850856239490121952095034863400322656313531343723164801367779191305740476","1189566711427626077222861485269657203680711502637905544770129531747397105791"],["3319810118625830970775054645893980178206591085836958075142201128590852761879","15909765152226147456718963057880684102871079723865104955258745408156421310647"],["3286788215928215928901000950507324491535769983850955068068546844268821036568","15159940151427598931221754956797357072616269408902321085595403949718490553804"],["2611985685062690283220920552429335428302820706367422627057845068682943095233","13090490489887060557131500729885963092998634962665983473659216834712095469508"],["21428267823859728402029220969747073684048978947902828688673757263342291988902","13678409119079121501562923610301784459733319612167652867146490076728904378569"],["13663130125352067058018116626902763261131814753770463773318374088816346502626","24939059617582317800433980154605895156016216338155311150193421586610514791037"],["4085614484288615377398404088941178916103459995548452606991613946895388812268","28186655702458059473183358036574387266145977295492230138754449745390635977327"],["3734786236729444809176370589528511025617727867605955138349461404848293580641","7720060717810667266334173015499199200773108213006733147011322961822498978793"],["250718885305248000323705295894120341243564554033995462628767857530475646199","6164197562905735651052777928468664825574775298223274165522245055173736136107"],["27340593243495722329457855608839062063382175904357800344056802726737579766245","12064343516687625480989689634057138210962857198692722880782912179969513233125"],["2358197175467870835171387032556434930616179089178990714313541362770674413408","26415373082071732204465742202528877649665788093680594224375792483080970343846"],["23258869401797997282490177830156819057260353744209244468039413208645946042265","25146979586845278494400249021372336679429554355470480584381378678721934835207"],["15791842995345373159695944988821501480167404651449621544432058758146367248032","22354279245689663414052497965502141651659587442429714341623659765357174620953"],["12082281551221969306235443094068210237639370605679624834800116052244590921720","15697227439065368773097831206171271893019386078160979637586438972076116627861"],["14291377067672084882552913227108191414711028360653907918592985303624893416726","22669691428966329230032258269253978112550765269258322633013312978412591189126"],["3300426034334915261313318688325128716274209620388256904328078946854284586033","9761723108594023127898367923737797200145424587494749329744987256977058244084"],["7330474512432927241354419325057845709652543582085845997804458795252025730690","2806910183201738519637520870485182969955356403232707334025110178730447173296"],["17146306794807242296202851643483084398423780222979868047996717085300344285745","5413404105154187605910370005715076733904877887981892885431217517585537935408"],["2818255140484781258922619350618476224934848198830378132513589810756131165028","15097938905143378352131885918609888041125937460213470896070101656020889924854"],["21752590211218708819644731122951085062789573888162266005839116940196815137948","8311593923065024665612287107009514070399805455375557107396052074894851739828"],["24241355035673261230241272855042027125270766158511199144884470287780253927244","20433606945575353583693938822030685473509485723297576680472335651109554793103"],["17556381746801126904153396216164635559833945445176057379468587206306934047572","10890828618941441951812048444390538511363527933351851500900894979521946330011"],["1945386074137361818488059525984981841715886122380068594920479208619819141786","7313042991778199855809512542551019125002806134095647050669967803958317964213"],["20521804938812024114813001611912534050300241401130444202317541469234624981718","92272135373235129521298287131270915006482795826578058905199274590174440974"],["16399889607434465874572403390142258247645018339677323362653461294810800205593","15577303494751002255547640012585414295665367013974243077695074601389567776364"],["1235612771821699470871025268522418689015464126540450518516748542907177602888","11756464506893910089333579784851700265519259945573384322296827962971906078681"],["23553656312952463663776897869887407628004325722025129655705413571284541476949","22143962507706005735112489281052286856017155570738958392409011207218877684204"],["14848106618332947045178779988862524079958445711830315878889315164840610825172","25098282483296698069616007819886096434498366424547794018940431378079705068153"],["8086011851318309941510080517857255930555409729883599105757024780989416867112","13101664663188236676941082270588664940205347373373304558126975245076663429445"],["11441921227064692576549017518375112924666666837706371481612643054120658206893","1698706965946764241648555615083629001313586050979253325713209313103838015690"],["12040747976055327305601980658223479561443723378430591028711965086816416104148","27017854096015621729779621272016650894396356060860332850067984582564815556930"],["13523830695952919701413156076482153133398650681911729342945371929433788580934","14200229124316752174273892430960982233740227953829400861789673040066555691743"],["27379529205021605173363108015997716048517373745905843566507116524002714524261","12115492971198434679593667333483301985903197896984560535843673221507706042577"],["13941886638533512844178876553152687593137285771618682200881228013378668827381","2457640235733503403116369827900133353699047045582172808050267875439498550980"],["23208637388745759119106792393460439525353426273640924218957896512032604461453","11885142240706699859224723952550892084639280375861398505430695248241471662008"],["13998058420345818326868590987717072000202164054872688489956481927432783381011","12770993939646601080143266631391435460467745634735176597668245017289073794322"],["2953380850161702710804487110327551790193665527623855473670437322282872792044","1342957838823440162719328775597540960756136708082011227526197999055956972977"],["3415271936068875722646901336842184092984831661883291279802817015004278186337","2491917773898392710394314143694679235533928072771778050327716616863337239593"],["10582270067935977032008349673506595302120829230252244874193990485142378061414","24481833912307689074271889977457554885899315566154196381619687663114739044118"],["11543915402682045248034531435681222034593530653476316459192844822760488031685","11461826921000663056906765143250367421057531097019906668207839030229119080712"],["6776140574103676295714360385384167921494955559549909971861058250010757371215","4976468746000660772018971818407935027360263762239958737252464259391587701364"],["18884252099189996098212543207726621998810450508847207952129797729314009224188","10319338472774620574706792453960514100778626641765475375466120189299298690683"],["25357175687582986004466392206817093616623892632291943405947648256403788463724","6202838800768845782303102343331618855294720270988852126471745054158039027120"],["16641545630460236988571001216253231434139978861218725144537783817589348772096","26956418177895572631281789458118033525534041378472330050762729699343236987471"],["8323575342641899909942367389220837198342106724735492204044692212337891325823","4751177475308058330269492590874884778505798202106753172329747230612064748067"],["21802098373586905906876509570726217847530048619618137966339517082577595694011","25101140577279602118340878957733353493847000646874878383124324449612120052046"],["19807696521152747999412854588359851985492239662975117143661263522981897845173","17222316296139905479348166315721877102323317190667660682514774511328370301093"],["20951749899276629401505766542107801736667045624747855576660967263287816914811","9654588617235565709551183212579380297771812900460566161548645554216304633577"],["26739914756490729808708573453228274515255531507531069189550960949825914579377","245393293727067926656759093413367959737609139521150575378805826247115384977"],["14672862945151894346551691692581633916931649052866132509090669959804120715649","26592368225589798149331359413709539992928824357970056138262862279642969384297"],["23255580781024860467662506072030501555281057292476512215990893170073274266474","21583331849729991739566807739169593116540335644759362088121858108405200677265"],["7040926350718724159064667686140996275318261869725639862336392753866972392616","2497991716698738391524463953167802296199508971400596821385437905917021307128"],["24748229379719525391311762782717644391912728849954652928798435092852178456255","17787081539274871521756134213318350604116776248693758983904602248797638289532"],["26685209644522844917058078664751894069905068170027533164136727694356414134429","18740765229526739611100870641527785690143492170916210657897334529325851075421"],["4180141321452051248616275860171286689428719158089875030961354384637670379711","15551371670104439325656058617249776490858906212753612200396305665447806162870"],["22105503817120658148624396899364703477606979281081390952016697378458977789136","1039455979422254526135652151165062751756193120791086424728164360775102367597"],["7795509198617579579962515213703874239886215825769059566399511724424903881868","28690597078783732455606280742967622961394083530485357646523334523942292607797"],["19738111737758258772657212537330683182477084667883850921591613075175496916164","18029435111358668584834895937080969986270072019405977391592890330097066287907"],["7074675582856106568805258612100309948437606298739937281872057157730846662535","11007604686735060044975716530842029256892603935295680506244879826331992018290"],["25542383579485365967852401683288206914967388336893298020061697581523078390684","25600965248744757279495709966234579292450116151384812480606448244900984255274"],["8286601681726918869826740170299705774365384828548599223206737326441107701491","2598842386917270419183539789557832654618423844637583159117275192671759727462"],["1919868496447646121758202655514766844054964399105011225863460062854071315576","21641784840668616711371512829885878557301508879825693017022658496789092508156"],["9434927162777777392663027475160172003214562215901201517948630651087733053018","22256289255988070656793833982880854726166509707182525901862128663634356343505"],["25823051478313277445329148884019832937790028233532656809594892204173592936378","26509431971549072050449138024334519739601359967119424912391978995425115821520"],["10289810220992335888285091414339642478940934589737608090456845522767764594628","23254328186426281168110905865259338399715525929250567014029387242929887083371"],["6004659544131138681274233962370104801843022944395554735582287945028752706827","2433103892426594968253074862524010821645526185843573916615909178264436045493"],["4383728227922693153775998043286979844046446824627055066190805327273108877693","15376225883937440189275468867044281949997878904094051928581342957786458354525"],["14656996666719079592351396060093379115539546556701567233579144793745455963158","24433502102673805745333372447624420855500744869003987906388722616155240501517"],["10845120597247494204304027719606771372816236059456563710659114337085609879122","21392767615059575338139005029801017010590014687595172241858711008569773739789"],["11693622292011175086264874929302993576340339346043985414183693186362204649641","21469621021244238355156567546587830556532339914520882501821735037959046485666"],["20347343478516465269658003403179086273926624957531270714119485797108334277558","26312642247308931531160511509912332183979122370639964177780534757553101181288"],["107166405483996760472937853511936372692261470363613457168965582769620160746","22834538606051723579832235701710308222958062265072034672186806700715463346076"],["8572128944243935305310777983267927525975463848448186657358571747263232478601","9355924687908517213584022034330644174692424835575653810464889963203368721542"],["9388938985663778247390308186036961447710059021311111242722811355051432817908","7398346367810897672742136958210887088838225710185961746763709313794067775700"],["28539563204217295101749726051556271736987584050640174789212884372796849567169","22519932415080169929734741722511513255192170192032316701486216681761268993202"],["27290686336986225053788242530319384519068613047058805190208636076159526503469","13435375593787401552094798181528608894952665549097062930561885149728040489019"],["21027137842351319565174192158195634744429396274837517441620343850494890142029","26203222340580769261426566612443391206995806682839877838135475932200508346990"],["8424359623818703444481564980541963165239733852041906138612283693747271913361","18419689770215146466965995638865434658952328032033978665699630737637927713033"],["2434522145219010198607328537494362649926590206482201554998893534828361365167","26139473647804175690398038080537597704372674817568207504813447056777657564763"],["1143409924996443854025447386397067621778908019054000483746873592584292501199","2677820939471084750052827564541445691280313680353209013275602528402497537306"],["15945125586150864703056701813081036346685478619485170555562630164908134662088","19479326994559968221976731437745187105414741662485961895867649040987407997958"],["18629709472303637096654313656058564648444637066410504125652619611790484991394","20107195656841457557286695378216885802963887402744366271908368331322309565227"],["18467668571190453657209224508593558215742754498393900506537920309542843318286","9933350478042029307052528451576022339667208585631221641451409548445863471868"],["28614981398587060562458105229695038427419662289953206286704776792420570312609","2239759903880787333253282579318957530058753435561691727347755111295253336518"],["154261649595875101218664951704501759443067173253644992685617760306956494742","24682654156319557854473794671202691847604457824712125576242398783857141950798"],["28119358855119416941643145404356136160230879352112743279040055995676301007016","10124066102081138703940276002807703212962264879264885562946480433018917048716"],["22426937009635778806168644636405804663859623831468783101397664452257575878170","7449383829911827751755035298164485404240803027922209192586132801135351486806"],["13701847622965783847770429703263680679656655261964014256485643028965372964688","22893927349992201006820068600458821445724774564683132217911739358393671145396"],["24202037294086281248571971727336310406777633621008716974745676573303845429283","7618628549249657272785160875571848656445050878935425884632026967910186727683"],["25484536795604599833049343698265510130458456388369845171230510300840672452952","2995245340929354669827457860074430912393002643676683067062159145448460251082"],["8672860690625107470491020273062899409426115102614288335559057139732814942546","7988724086734768642579244757144149324959306497350644133227861113468552711889"],["16419204711102596531831473760028446322689759098813844377539872450802065726819","8531081983514514320303774932668037106265032094634564972663667495851057797896"],["16700840990151820620241080699292843362123691751789831765399857617845703680566","11254029088250882202904760421479174625426586922295008907098671861663189361614"],["9843557865429932018067237843390970711559654156628568340844653255195720619221","9536787861316166264769931139423560528626552160565543438632769852918391086304"],["2128650287234473272501633077418754563914801638451183507795675680742522632002","20236252918777183719152471433441956346876825684834131379982838537367841887561"],["26218448493551166118105951550382182638755366983922837575703590532516716128100","24534116305208842152509744341785470744529592908404953981974320341211614283663"],["14157090271330513150989875661706746609149913201227839352583279754482970193178","26523648383888280985887422919154504776337315761028817876523604526289117036232"],["23385610603098123136551935777563504877652412977101247608031907968459166108817","22182914627545731131191609383387034959683395695774069146878864813298831959046"],["28351654515328122813410303131817179864908385080162161253870380314599310004926","20632659565972604702608669467262855737405083138027989416566165316637013900849"],["11184503679698020854869424022112168839708469069799032950069840574020765073685","1820823021607705662471200746119233437636610668606248170906554998360673267028"],["19212263419426135044529394054753718258586887741534378706072774150040940132382","17823559496270445287771790580882118047868734491570585320964635438563948219029"],["28376680243516146891902317348534719906168927446025431132414739765004895910434","14580206851863438851904828303424711927887527076198330117258878211051722270454"],["9139544668697409658365613523630469358729988157111994076325413211309817027349","28818083494683040050424654305956669656752410707011612935320979258286161432921"],["9111990823763995066717677309991418720789272884876227812664569305796060516771","22140643244325324185896554486912220952658082592371002675343833674848614374665"],["7653138321210269715532816643090266722435309313872659873304903167087626327424","8267882348870558621066774290271466316138470414633531998820463884027887505662"],["21833912504006581060448482280281459949532938995007192710787152895714833554464","10980521608365606623307100633183650105926343890816704855388327534833885801371"],["13022303007541103344720352034849791296016655991221883951963342158711847368448","4780422045127951660620187459047929191718310457458663976757828941105990842338"],["890754698465302942455703716767566017462528905686493696398900962084212415499","309055136853442230711158038857772436990404014145975279544159835712033828993"],["15167892327291938877383806100640976706447348394822382545483537779473256554252","14015296825043727705298488893965611842996108929211100759497253664296364809081"],["23769008381771045473931345501404423449556381997052699963719622783451639971629","16905761972940582888393662654095005489540328929074361689302131900914642862849"],["2919071707606164816124695856963270926699240491128130791202768527454263893002","19271594540007665413113295213251113237986557351867002463365422434192779847961"],["6203311260237921028704900137695780608535176330802256534157662772305173478931","2799678313346366172039782468334255712965793550023826843500574849566228732808"],["19705305268876639641083720399833866334966196143800384740902391285432094151362","23985120452208079392394062064801870197707302754166952720295125881942344867806"],["20501273013196487713345866789699170971515999553670146963868060255501314256773","16501413169129510753541267560446176886908671713339750701819241441592008996313"],["20487783590353061014923336271247472955445720859283662671272738776258064668863","28271163375051059174367959600523932280551901381925872754584046055619112090216"],["13709817262511094472716584599634014962986534101025053026648941370565410123792","20017425639673251353581645405340960607768942946823172970542455087297353722285"],["7695340586913414820684766234666457526759492913693964374942291468476166738944","23502184239845457816488167194606928128412095478055372296689530493927878326732"],["1822941596791098210417501737890119083169073133255448115754147274520714722371","14903796104357917024368346238946796110814932051025861263149796390458637361001"],["23045186407570068539207522390972892485878680012782999209468009484626955221037","28114017320999886985224597660710792092228673186581619393738430566684251483300"],["1449800808877026761220575072535507303204230043110090738205926902164254696666","14405677020235373100297125920662186470343392957753428715780220582189899129964"],["14233804085986644394526234290144505811429618173492521887798208505318384838201","17691101644564237731020248678134656500798012922398726441706085838382886187311"],["12626625208452179689069964024218095750023893043807935887080717022388218532505","17932435190343392291294836263020451426095677537616012878402250640874158939385"],["19271383256874349686031577698369839653982870318145570309616130731008362405591","22103113184243381717698370259020072373074603720163972106413863795510434446572"],["432132428280728927409763506414497554283007464009061237420597583630578971","510937236783213588503611209808179415103834714490806730813226692425759910048"],["15750483625576771488837456714223740905692778458416309018900079419159761506810","27792111930993825921500706101596240975455465999945683978168910896794847380307"],["25346157308821548212945863322891719936027998387410185195975572671064901436913","16534341401306553050086005444724189100879809090188547269045937436906648341443"],["9877334314023864086299876746751742767301670676424400737490553184854844021747","3730364859650653689920359703536740842872671943150407174079815653118701355383"],["8542892661792120473286049958109127277124209311982689531524146740712872579743","27799049618095287199967520999286068712800689135485666446747847090054206186115"],["4379245781086433875019288459735440438070100327645448858642008593314423080202","28559358555506049392157548090205344420132251319327117509260101575855464599613"],["3096141136787266358396089746939926957350744006065339476823201824499312066025","25896013452352340914857038337161476529962059164426795144088955867824500585268"],["25503896274504344000239532690226696611372996850448645417739696989682979163614","18883376601350787556741709774530902429624010360096951166580534962145240785001"],["7442193058826259674331848546520043507764447032764689103211628142792354975730","15279729649876003318200452351512317681040409677356368317253978637092432510125"],["23665951725984650595288632969440154902893886190813039372675270416365398260805","22243744212023108274033029656862218027184361878994515816354855058105367662538"],["20862632950235349836718210982035277643008890516760198107323268973977616371638","14584828648869620705670864442090334848682926751837097216139171508490489892374"],["23548161767382712445892725424593652806342123151612687722603597760908435765909","16085209155999051854878422496279258464887961116944472848905353612720353036444"],["993550973429168229661513566128894903977921278186647503698919117726709749658","18859587198982092236035572414472045213313592901511729854582974130447777439234"],["12872897222245862500584576097441281039939495662791564272290956971256729797472","7000896697275964152415339715511910029041908697050018614230942253952025954673"],["7492266646111906465850846811884922693598382318155801071328856044095889842555","11250803101217181770938116981280039177478004391810983143788449920774287465977"],["13858218427101464600927932515434955871758129278601828386573277163800880148095","8637790726570965561236706194144212440980416333938148014101414269624206991793"],["22415587126590467895042709765371014921095078375780095942927992888207973431463","9045359615212559602754042687887946508716173895595013034848885849216439704003"],["1769395666772269535499079523750932010756710855971413210137094346026715405964","23976820610634562900398591903246204772647795623809465026892920643353925255877"],["12707208007798891679019688946449059515718272367266402910996614093097964741004","21360466660497783977661368142941586016320070396707536927869369953050422170717"],["12179662235548058643149813585575636991554971505223196948622831466499617550611","28756649079094006184941421018073031314032200313107884112210030357880901343477"],["6190634966723100916076665913984745649601126135528194088131421467452144683994","6804950977771360292224278592064003342415111349308080575392112366517240569870"],["6360690222077950926313666886624224708525043226706449086108667385401094084565","1347926754539177570277269355744600207054502210433031952269723107981860526941"],["2429682911871009339272725707153727186135275886817043051849457986518294399778","22170040872705676978258528994914804285412880021231939390547331543325416154556"],["7052691828561836661326672731774927217418289945962399669845660082975501618616","12738710495064035326622749080330820271406315360820012669916602921123114071179"],["11114645619254144461525204344991956382565239841784499388400450934575800279507","10821946665117859230697042881137414514031653263948427223066384180371616968259"],["21275274250912659171988083417974794156443376608279978289192198210205148684941","28395514516826425517783885664131956013262421135183890288429556433166361388619"],["2314991029722812719123149914517481790557341592591876617058145353028018182474","20496976278239373359701068197880471295939864825856441948714194757092499712746"],["596804698775505661697072764425857735188816311969719362202895718292314563373","24381153776044132877931622797980085757417846513266193559337869036769908540502"],["22023164386577054812967425551389995575374781610020810762741547478314376874368","942696244704782980967121260771668562362765476584851362826107245749097073154"],["297978418821759145468210599748956907497656693077524872778948438071680928451","27332704100683195122581971969656773170602019806166005852405724410645260951497"],["23229077998076350536249016830329717866831905412672831903290862493560670601098","10952733977241394711177643590620409247129593728032028113721603828702033955815"],["23608423880409676498424598789298306595110548350293690745632402676143604470332","4926053509834331259110081758908190847419752556984178039360364903910145710673"],["23142782631436010843020890858092879393163213508300135384718936761610628614203","3332551854293546520059741947178349689655526895964467383968411899346156465029"],["1126186052944442061124977716065552340390574699453679285837948537295581603540","14626555145182239133706423254654509996665435275261112692615340430191255068756"],["26487893946452583780544565117845144700677697772170569819020058786136835640036","15393006666418453027494196337464344794005074978236493075548418211497106546671"],["18067278483231091908553889613500009865957827651318102894991734389028186654451","9758096213424070025191736985731587284922746448567096011667301701105360708179"],["21793321300191498335197557537846377816074443457702323946850475646208058897426","3675000782620396184667318666810372872602236310378065339402227721851597125507"],["20969647636553091997704907021624036888355745069467815231937168003379831424753","5201899581480785336543729478297121469581387180612791868971967040331400774476"],["18396513389284393321590087600777457067001797115707523049381485838292783617101","10859915003406455185363973685566199613886331485330876502156590658305098876766"],["28903699989403724203060764465443696746045826629996815476187903533781281173339","28451315967687444880314854707010170399024746903900144179901248054194036267144"],["20906580081222408104568318777398861785975072889170347924642985800242535537276","2682923318711292096793224675741956252785381331315951014254930990890093707242"],["10913317480559647447406042982582550857760433047412484370593298181351069707759","15418475601591778302601356229994711857829869376704247362339668362385798045092"],["5889488630683205359191185374019200966943391520912630569748456783037070218937","23997182871318281611919292267284661810661521638379632877579489041232232819606"],["24560336615341827058061237970822258201638623892876335124520835202115982152634","2402381808411227450922275792041631566454100940659088766091366723657363017821"],["8124015439151297507370305637678487936184072214039740411736091893132026967189","9670548224415783970253906586358873887335738476291167880986072160364931186127"],["28277078842173202244433820708223137886121686146879856314701622894500955681984","11019801070981972514104235145168828341445996482054822629308768866975067433963"],["12029097099327424307538956116602809063407805322205503881912676291333335014780","15021290923611238324168928212951326640653841661629389958497180659761983349105"],["3837967260800528830275921134784978363969778574667951577526775360309824491386","6084621947668529634167986699591728545892959432204462308842388538780484029079"],["28575110398568410388160098649505654554936846175183559990896874677490260080936","6267058279193235793710501951902419151792451380342690305626239948591702934734"],["16830088645440133748656639199927035858059066151082435361341657179036993245707","27540011155556642546766109004869630799811393714872739783089488953103846919921"],["18875324821981048416659237190259649660987925936913926128860701912486560450848","28365533665624878240000523227384434245444074937447139668207772339742756696086"],["26364606734976522478498406713680783658254342734420662416980615632618668382297","18682676670183647437165848465651442299122608597464444480710140067297455841825"],["423601900398075935645211685013526971361888427837160139425786281117898925062","27984667676194293700151336965791242017130057528414418294139766925896270559816"],["26520015350650768718210730247220704665053469830330263379284825200956329685808","8227812743094237057695410699122322135166116863369867285223266029572327242885"],["20341183416478962836217788376803120072202257780144095694716368884732999117312","5444519823480248327499650232555914633370949088655673100068636391382865194350"],["15878115463895468896729386027404659149957763977150941548695321506045622428123","22522620534096518335101494345269707218406416444901590979549950132598362859665"],["6142062539279129087001887757110509698218189695028235699741476565000616659139","27678881718136075973371180592410933584640719300336722441088277062755504272904"],["25560802955544507970766256161513340336091372515164193242639293331899240067354","24273075834906580835962771312723962881592565625434101428010415361873725462391"],["19844695782520824491023385592101877460441618007606721711603258060735873430639","15590524565136905717230728330404224200090491520639469800980834450492814244838"],["26309302195601823858904403040988422530940119719357033192439479931743687194899","19951532420310579177763734674532820683646103797407224102462853632539340083983"],["27194249938388886618185390236011966889186625159969119808799685771710451960686","19639622572631576584261384696253300196743048020620955111167264210418836454737"],["26738623564585827628514415006462222443540754706389053746213372570533452026917","27765801140548048199869406036129076634899945891936742618816755853177479099429"],["24543176287935398555894338990169214808658470441505997015807008802535629797419","9745037842570013475929732506883968488783540503692401631949537437063291048357"],["261160532603865527728300650461502626517274451212551813916038322248875445436","1019334112852357269861327694200761255263923369070802581704644787950597559015"],["5635409507017820456159802092900744539626017767974168716875341657321414535578","427642540928340289447388527562639075922371415785571282744707452996059028362"],["20610681306719797620834098170934626135467041175391180389038724273539764905142","26874389155162722929401491979957481560704040960553056624509423894181106631822"],["17559314322984329258208382733255538903872928214173060155762230894144489920273","8244633466129725614534585249083027615083982269493233347978056145623845006351"],["11967667532577345731804083259771153240272886060706177838339737335992897302077","18438541257800347060275761210023433457778030117355684091534393898257216224081"],["1381337468657429910683290576466560632717802569388090612962564606464418548504","22170018814040105813874912902363531044782740430855325441187081721205542187129"],["21337172801891361367861103425768631313333641203826387391296154101381683750564","20220176279988703299649719083061839777537085619229383025990990270204749446196"],["11132280919601451622043491330235245730606002425562005746613244984182317382111","7550681200100346918651795991445245765047524499563516917269244113423539227105"],["7437596581659173881502498129471240601396837429530396783584273617763048688561","7904881266424863315178465690812765503114200830406499305799370597459438471800"],["22018469961475603737731858109696728928261915278400048842061486164558574284467","25473069077380506241784708408347151470633347846250025065960757167306742274216"],["16011555384462604401079698152221232363413743842248688597397470549347481996737","23163961882281297865724996086577234720638655657268854015211343510933103294347"],["27977508667999020907074879183154477732315357462418032356878239546935138996218","25054406162767193493765260118467144397948533467833726699174352072851798000256"],["20160014172992529732178361860325965074835951977921846436287993193109015640539","4767691395162259373657386647723983551245237330273096562513477997162055645768"],["4727717046641860008384316577066801088607434044498767086237748382434788320371","6943327059532443186490605644028800425670595754005294291227663165332245242645"],["27689650133873027562728806383570599402735451803603306955435841690928353065237","5113483369100291189121207072629872901074757397307120540834543505736140518479"],["22377399547368858400494162238193128809663856829655988433886807274308827086739","28201858063482105930470230969530294321941162041143172710443409643238205661704"],["16827920241739770486413739032857112825477782522439430368637033671104178019895","14646490216474020976797190537988128402469275030049277110990778213011382590865"],["9027818065888099309870502850491560406743937293701400170808673748382927261858","1827187297329157202140854855518881468852594979701129360892612266075602561194"],["17391406927916782065062434033415507886683316372850359429906735536813476147129","6768340483291022710233152433788371200648308785387524526805486726675868549959"],["8489350090109688721651488496274419184984591539509867458472153182855846382355","5876613221319865441184663907142351421766489288526024006011573749235124321344"],["8786094390824559073825258187793544510806130269968017697470909911415451317866","27703781338300659519254218478635956386434925216117602731417252468038185609858"],["22865176566731688281218277154909991317613093991586342765212756201343542181141","12111190744952809652125937476159180597517255472833458844492878941070608231131"],["26504630291537014906987929889518042583741751332912106983094023858501898125416","24512852009643444418055457133770273588925512702060305381081894558920837285499"],["26264677496694299949164203184400706008692823520971320785254600623202486204493","13125679138152277331906406213043178063975520276486382710163522767205250955966"],["7345130087916103255992100190473971617847971521344037148855180353538320594753","12891280679106455307860554114536102852626515919027692405471250847471816563970"],["23631906512992149083999398759642719365806442648829984941164558865814358553118","5026228681147914226472502536043517596649501293190687041211106477055049683193"],["11344720376067295380507288541795125168081706761845318683578092455316549750462","2017551041353389263156173633637602144786795470465687412013676829360389224688"],["6793834345450630271891599003850628479517334342892674449744693778724942301716","13349667189167157762646274519233780023225073827068546022010416373638358032378"],["18247752950817692187285897531830151270983335664116214950706018976785204207807","22761173295747631473184671292613812416236672667736782327065755647863101876184"],["16621894384128614965875222217964389434366392083835791988288444503944731201490","26717984520804443230360560255573062092493206506448727796350410694047083518053"],["17004971761342968167705295337735581105787862539212879927628821308233988428130","5835471122202669545365762865131107302147599640460006195551222819058173988346"],["9373619388553183561378928288958089725870892616670114820136797591820911301890","19737420272215463175911739021527980929657137403788073357745019112335227913520"],["19053487350260632821773400600902761563611311626005480265680358977850191179929","14749516622874445146838279198490868611018165204899052706837225746448288817974"],["7432523807447680249612330239564635611312261557515779353286399371083054033972","3994745224604643869088421523079457235869231104938408102703891381669340423649"],["19502875025266462829969728504685519024173220913464905682209951838950573527601","25399628307519885904421029904332615189154880824749381051708247581161611457625"],["21313381460191811998092890495219717205470903878053569840968204315124889197174","20070389280092695174559187551026999701621895707868527903808083206622577463456"],["11098996350907258085225690861565178380940568975596777304245030255687567787987","1950360566252850571932762298312223313582697055119889143539807481530848906890"],["2736733820604482626088005258656657533283247869005551132069497265999299349164","21311178336897071584380540426762720023317847065302113548674192085707380428750"],["24474102237755195604772858716059385638999727170246099079061103550815747887427","14730153938554523365702990979290427188622827999511398067548726760505840749824"],["28345519180606066156284204436035691349040490912277748536644251899139876178648","26181632133175379274545814750977316305163402705459870314816976005954377831867"],["12641329593531666508547447894464482544995011047713436091340728371316679513434","21059346609215733525002081781674192736733916303915600253302313820893867969577"],["16529719945727629389067183187137475112664153391639970214107667305469867236642","8109222577238849925907804445386236703827754966029714434639587579484741361561"],["21548213703154965746149735010534241802315206957685563386645368346282162951636","19608946795769718504168015617659583652126254109139304323993860765257709210519"],["27929342974807038191089525720258591165479537891820131858926712866029360299471","24856633725500788886071179555495680509910562597240467186346900626875341855079"],["8853940153816655384426790338500323152156587477745142248223361216321850898370","1231880081658239674654642347183217427788754683595194697593877284572596643588"],["6981824459353797332551647640803746962007162139920900387231517889354975107193","23891789519216650857025726958180607865626223526774288547786703930067414711912"],["4660264446639996601983903161530861899010514101932230166171128314733519751612","18358207154411948864337627238663996232082451259238856846275608230998000668369"],["24573256337293012456256121818502766890399519762805680038595683636268802449781","5858592854306226907737896414921557606191123495561232039004947495398132742776"],["28737909887041420080445545643957891014310985279416817115552722313479291485947","15377176876229922978818742895068545928052425203390425812473465715301792822784"],["3302232563971001888740201343993257101590846636361985000396719440578107907745","9054198705053982259989102167809165369262914272552523632776582965956556890655"],["21326677485395737114386489141711511665238989924126908674179970716133090243543","22838406118152832502532493954209373358448363433278479720113681630629564874958"],["3529709422622684743895148434425155183592437058161684565047280121860361208257","27508171874206911371430310719426655281239173476582434147264384131471802992399"],["21197925571325432648713831489869424603191731349362898594320731743669269626762","4624683098828933172011609561700172237246338796645257986985220368545415826889"],["19825731321836764041120161231063274205757693238122393415850576032132659855847","21255188298979405059980916778967199365965435847317150059170749582873804548465"],["18090054504003998048696838551927944555048747160106492659582381956000561252439","13008943310666271273632922301764204932692807629432154571821815890408415098090"],["24403130747509870056374923486738058957523883734606101796768384300422376539321","27130254583355266838872579257219681661316477079526045106222622986929011546367"],["17674301842039471672864241879323638129234300719848563251411195569525324445101","8834203333481189342326053086415410342524708884339619411487741574866086851210"],["2633679665147704238820963266709899735623895177347271297583801811754670085008","27975579904185320226973834877216225469049414848737163251997857067295678833546"],["20314088782224486830673822377610600389241914326580263503007861096836989487962","28641639914862004380036730645044168991622394623387663350695642676523307445010"],["27913196139506266529104354675061007756739210924459425885873350530189377405353","10326916181971001287959752985225815529939995813785746350432028604619212484468"],["28179559825546680164648922911934753123647374880983028864294317659926224376779","16179582567058607505007299205565605862994793811378944914942356516804295632423"],["24920566799452244704663943109427251834579363212262871150217483795528006223151","27418453153306407734137696220626527891817533489986293532310390651901506158204"],["3011354335498008072235095133262522225981650464567238319792139910885394165849","3624327713848542312851943763562596454351189967907231994219590884119971675116"],["2780491352598495414143592867826527017627964568946161301535939658984982457463","25914068080184083759048658403214578166125580672083295233400539014776453776970"],["3509181641115258753480182826226710069647657838871099416335850323615831990344","28149230199574766065769774800559889294746830949764041044927971860830578400524"],["12092975323783156571888380646568953726133713059293533845648253347875778391877","22168716076581471448037429784233316636269425414366303855715125491348530955247"],["7032024630058438048842105840096643222037828504669989705300322658976507517844","14296313331426451404997571419066947643996158353273059766376482395898101139813"],["8471896826912860660801398461332854720799395536389137892570431645252294738842","9603660605462290258370386397108824233228543564085942868085898459333087253296"],["13368402804282174772514190159374749889599283495141185074847920405983051548025","3570047357672854053716244547121022853163251577318139103985913626955965036819"],["21589694048633498248136914286315467875469051124005789349337232524560822223795","1077204005057116032626725054591840436334447686465261228951626785258334360305"],["18858098096853299054743452894984119852231652144443350283488472210497364556410","25014882519233057576986115558976701986146367056761098339594955526525232027521"],["1616314345594015888270899692871649144851551343029135650863207510090627984611","26508291966828364999488560943227431319376181787252135316516181852047742758379"],["20140361830915910555385776393575153080993209544460140732507604610902994212795","16023256148346198223208952286329642195987706021060006698083929686088942383259"],["3125699075626400085787136366579620527787460458606393507213667561086213431661","8648683408527693110248422363968661274692132749683756089636628510966280185264"],["26101344269358152756388366969464932349177172880161257401970801476775395037423","15565318144297044738273523984649068525510650994850902335827183299434965584749"],["11833195666293854518070107507066102577421371527845276968856972294514725340134","23883252997502726853254125746724679190991906032931836485481698823112071726211"],["15284275755508404845481331543019717427287689575384859911105767758092224207488","20142174692391757803406279048609359988494158057829133785976563448884228174949"],["9317065460594490758995513467965696025074361182048640436014782618891393610294","5896825595932444912446432418588318287970915918732756725240776768397733381706"],["25584702352290227913307817361840529722545440378580115466157430896424439887444","19686954184723663171232970230863449308120971385275417603237211547279338303770"],["28667629478850429100450298207634537184144529945505824986379655213944334781879","14142606402042295573213809808508114139877240891264951543594488217266689091975"],["3937787300523917939270408531596830307291373296749766828123028128945861574019","8143305914649943571771519811257518378834375253928406282774370785468694933105"],["9662887093891997054573104107205828009058986313703397212983534920423910986259","2730410077204358932383350227125493081304646434718398325491670501136583363884"],["14775440892941042205269488338937358030812164000820589226291756880631235769296","6642725083113522721213523267551034018478446412851140352223727345103372627765"],["16365931699959664210631299895517612946801966308784755712167176167183269444856","19373010131801286236238874854106835335813570579493238808380389032933925087486"],["25918335131947634296344320014102482312160468546476866307938450802194129365637","12093574013785325123138844653029428551509591723697318812115049479128364631015"],["5405517359929929278100879734223798273619024195450041348362831353078034006099","19751089160440266839221983097721876253928023552212005024407859362371561160229"],["19946003614332972246362226612827426947413510784589250490136612653117871737336","21476526967247588773357071956450912076141652520345973819728332377203967628998"],["5358043643144079588300968932574427466287958849912274225611469306772318721929","27038258383277020232464051054369644914779877202769682705303268442133244742321"],["15753859164479697366357482309633488482224344063086238608073329704448867539224","9896050861165338984109028936190824381491502185890876554670628183327339299474"],["17991244389299943745513894316221333193960593012490472452804227529419761124610","3832846288202665899927903974617469291480337338564573632539982839830144651554"],["3516764660083676951552044948323586770788680521130766940775055683697249090689","21448009392593856066931870680247330560020772719151471747805387484405466486406"],["9191711356531153467892388137497801546214961358560955975179698332176949350627","3302372936618673689523621253621171642844927270178659689990463078775741146590"],["10894196923043453199936111436877716740813495570888404282051980224459091420750","12606015420473860702262304622330693268659280108417736398710568667578240428321"],["26710729963434468659985402308379642929438541274661516117163337517287025619159","14823757830204889568472181095223034023271375062503585218211840445389205938508"],["21083658341634597311379068056171375678588904973918677301471900382613395700656","9213220191343400528676476547761199075743740672459493432857229139413169797931"],["28335632151743846496727761513430634061687323586320734481354700723008701686166","20875646473183825026617948006652184895307241018248096826785810011946609489653"],["28721319953257735162263965378768489680675291861074441776836267461751580446618","1481296131182709415911333220381573087487927913044182472631142921391547376093"],["9489983143658349344469874353822503785971702619999348831891670027519291320884","18771857489748093540886138379186587638741130757260782085525906621569558712046"],["22637590960682708211968125084134171913969666445555630550254659976007274273373","1247349518483846293489612351289793725194691611692114287716943056753445377093"],["14517308653077750591593723001839591636467844864278535990001897974697416881800","9507876222381539738256955149229031099572462796340523588539638151777337513471"],["25266782381740141987617194077622949645627653864220139103567438297135263036646","19380922333422824183323918627023658231377233436421381109565829182955850179869"],["7288520070222229005357782345932371148701446018285553537005799044807971300723","3269761788761496778044306186009342780295662017443748713617012369714123232576"],["4750864834884612008692121638978814701843401962236508132382223838393912283902","14571960022732994695088861763453313982199181044837097580912752108770330767197"],["6496251536199005423847472569322564442859389441247882898413930195244639182260","27257932921760404711801852995893595645283750075348715169419299151007608997757"],["3849831078398694957623057232390149770681649874121597223038259961760275345211","20380591397410708854130093462953584562145603559381154827934268018157578022565"],["26979536974045071538050047583555822758259370186037522335524628426019962165624","19550416686241217910299051548822323421234764323074043992875568252105554705300"],["9946267950282178569957906455786995802589289397385910094371453052946499251903","14969842845773777143872434399067004822067850076035640863773692127313646159376"],["8337705185897114978392503067249182017208224896597349798712320014379635599155","6564630693540516486426475007330985521898011828779620952930601061629229346932"],["12240997555626262269528258587025933804259523283123587036022520377774433493793","25671513021607467479491463331827399432094416462767295651089357566880430992710"],["17660743047257330990494308318860001377111280564184228077087206584110435226818","21764860696482359675388604133968181151974245397922708517115482263934644232705"],["7957750900155566685253151374486347623154720353161843888082368483579633476036","11878768787103877651084129978614422310144427768195486979854630489885509944737"],["7419191793318294660433652261714139074547889108060570237252126482189670742316","13032056648093513582582914596931039443138506336481402549172675189395829588648"],["26810313413986433257546814301174034144712803585412588687946409591422116769533","17646750318093871210484325513120935019411128163677937875944218039506226303862"],["14578060212019805434440589053726858289218898329285246810924809579637264920749","4439940372310141337576234217932693066862638050386303857467054508807218633652"],["23130237710900069030658971965041596789144820910074973255925797302336597205854","3780461000016356018389124067816069019475482279645072001395533735941894753152"],["8256754480779941797983913469879303638112226309933373250675713596821521498489","25886539759102112393596116383294871658451366004014265931156824236390945265084"],["13357559079040742465876636661690394229103975840130890807022623793969377804904","6533484511790657324503036606028503694387729266063658709226974113939360995331"],["22471673272333371935595955458014765895240613845107197053533272607335640304741","4404582345270247509419749432048564123912965390110128065887750871603775641614"],["26760179587593887605447132793008953478448595629255059987266243849285407166948","16776418541164308563683856114854253652709774936688851125934409166660821667230"],["1587264634095370422807242792826420498901777030410393511467683099843963682395","8665104498055403180428757204738056838396533634753508323705617307644503394321"],["3732241049967872824980674854458074695978620191698224328012467720871091462603","26284974841072551341292113762809988348636675780982577538816925403433034751616"],["24326337199447860319663730806129544024114433962685883643101518620117072933436","15385381712740207577820035325015633634804645690876359513018184421418329639362"],["14661200722471681152027362276191655769538770184050321310477177472727483870173","2768951710813598559651069268234262765563333842247552771141832581844106612365"],["21446131764159871258275978401476195308631633159557022923339232525075354894766","23822101062573116554400635473920232350374434847082336404594883431682606921919"],["26783974864172923080370046117070571594280426592444363722015429516181690550106","10502054509041083773985494783385804179320123537100939089735813891231217597310"],["15738275367424429649127210639267937242543370015489942144350260664751936681200","23686902465261074906776053320625925694960891471310953331272032817037165212753"],["15705860604548614053508903466785827931369696261991300509815456176895311682747","2519702960751749629683864019220995520356720005623797123866563367235201943468"],["1540362263655100340317747108420652245186052707652068867577062473973580648416","16390795079299612949529573237834486344816342850670812124406826666591101283679"],["22141224046400462727835797578726920725696728468893575800295405770994245913434","21108747628622669214773085502984207822985782490877649314645761701158103940885"],["4848350546970719856128053872471072271689076704251282692847724497351903778325","26717416289439322587506463585436390601872815798822478752579410208612075336449"],["17724893530250385256413921196135036351021146004911262558771729307137951212642","23132931450123563676335098090397779586963135557495537105466469411027547155543"],["24480651532652851980565803054501111673695779821710389617816372095478410828261","4327842648520908967049294355869620679544883748431958581575720735472277163088"],["2696209557508012939588387389510740362591628095120803901321993408078618197476","11232289502716696480320579768429694145467800821468347692436737119785368125494"],["3271012797801131692059986023883412625273224798333736408328768826377622473243","4805275893596282609037435608764811860391661530135024866115421858643648337434"],["26545345450251946509115678773267038651815480704482496064446201734962062148626","22708876091424328545956796884119628411028423839837439791523369101904085578728"],["2015110896706124701153931769470251982512987994092486573404200812882925653158","21649566318889926842342718292903875874312885209206094707530127453436816344842"],["18709548054869637942213359250303931397484710117175372189474145141307514275510","17990505312244503670661408564264579888445579539994409979644462853255487229386"],["1974343790854091730740738565646398781916609536741529446443976789887083395041","28412423276621884341526759326511999439209647023908540879095091368823266422378"],["9834480507616759305329908085539538326143325488294366851551463723618668877807","24917639965861824190788530658291744301382553956977475331063042083446858571907"],["12479726302513265683791404212228046216179348037989787197328050524412899257594","80456358407516816723844680941104827680241466270393582467083570769723968268"],["27496269932332284783158762345121836892641698207468696393475594393800078373567","14706552197672754262463304316907333408427257252073697737140149527044552523918"],["25029061111434450938068442873305898887695456227928954718733076206820536847297","26031007679661752345870517928537458935515174666582774703824529476470613359781"],["3656864741020893981502685268244761594884063968488704314936116626337185904891","2868000819524188188463922827851137638414945313611592090003084539373519220280"],["11214112355527525991415893195993678766081392643178754788994148184458820371939","2849207185981173321445525314347247266751701849007317587567784631784259547586"],["21612959124735024198340969576341874718683329713768224085725957559112127941872","15648830238574335510126961885450337710864366995381429347025395647058065063826"],["27022556225184216380419190073083081159327749132309539188863018030721160661903","1554750297294024371483871923496878980556469798220767544836487316903404170053"],["12160969752002306126440505536391570650734276154620610617394404939057908027902","7047451055847828750902275306126591068623704704808943161736216094252601033236"],["4511048054295174212415082940696846817897335905325668374874205512077125677092","10128814018317322633785860996112275911631346376390238165172555453862048490747"],["11541082082346789596438515287778683665588718268265748286563365977267461360797","17189151926990892686542178590429955791260550524648169898773752694148196279771"],["25887402966029899024836395457663436208600025024486743963942836236664146561863","3976983351023486094894015730991363822530830737298949010720636378340541115877"],["696248808754406700037374565411770527069761011661473353146409470138431070692","15741417634618527622189024702132129249499928461616293734743616185131666176026"],["26434501168937708689756349750369673310237230907865316698186286140231287964427","16581824446441443779124462273694479905950476716643528735225534129328322547747"],["25968529510559353932609478145251440958531312098240396656688816322062371526877","773722219955329988918445190764455192798434090712586507021287694436744055401"],["15751792801976530974220542776899207835824196330804345497534191140530150438963","4703022224397411414497342770599277084446258629557347727161923278948184578566"],["3477165877549426879922981783126939029202277878893006927849290879696385103897","27213511045977422478859513387339952901188479994305973632683210576638230778315"],["4009198558939549672340979381593764842359857855240314133992402883049094484935","6860467568267038181949267500802572103204210018997019009954466366984320985900"],["14124700546569578970012040903023691948653076856163777262943545878441346827956","20099899357938762261771052735853298076337311984350314323890056885775412536423"],["21534730783006066627221113797333379326691699210867324341149705556406476559828","12127402850297294513723233538435499839094546630818672651213543530491778812742"],["15349581957634133285432237870280165620649426260049899676660523904336983000115","22675543569242660363496318268770851516999564472897548810845197274618398074981"],["3018103204845232972282205233854375741070986346015433174529583481862398861229","3813323962368177711109180152469379163711879470084150055102610097358740339712"],["21390886252376354911579953361348649539171157697804379713018256066785110254337","186763813626254355129525616463321212844673950047112907756395463600758116435"],["9140694044787771308485597021274841223153278371457504253362344941243284329322","20568963818709357331807717623897016135426393569962544206654707617955054822983"],["21890653010521059043622944186782963765951689508765750093332218870981371321732","9235638016999732764941414251037597379453490848027008942910890761153130619350"],["5330332179116195565130818087006229991065349366871628909793939033683109853610","21514539538487953318743930361691765987542848553767583092905269284162827444530"],["17232108072830149060980173442026736884571850657961765836259419844761010569346","14228974296560891877382586432853270147415388132141079109827779599860658055215"],["9833839868923055180497421769156653912918051378253911856989338030061598208547","23323264624670340416665215475628815491766339846533784065269057879043717116835"],["19008712620702413246003712100627777731098850023517066009550182618013577660503","1693586619216796474776944928753514928465159684032930299158278901229843717237"],["26010277038308250364492770783313618323510435981474157003190642135557773610085","2534774390775727874271567663972725835455488860646205016958707101833034591179"],["9544888447016860332921120205647260757341353374130165619048342451272347653059","10710014612872884400282674982749164705426993413170289099775981979009574615247"],["2947051924376990890004850530161178485866224555020408882786676103931058652997","23774415491369705603975857079103660833841005766484534442296112172562082965566"],["17306789310603412008407052936974839440507531679681592627089591267076706213215","9022301184528637866484605868818045464121342571715971360780903815353643418160"],["23097462277207610395742522052157582083146794921524909631577676993831392895570","17171292096159958557863465812987294832238205302146624072811963253878365528901"],["27124230156089744847351815989620334543135519268397362875994462962225757438737","18491259345292245671708428487693809828572167428513092725886036000314290100718"],["27594598587443994854315207820720086756985024133253885629343601792802657613428","12336925773965994899563457865138527492063306439861123605797820254803556261486"],["17548278883748455267667363071662844324824540385476602547549781969971950423092","18124270582634248027313022576538223871178481645352454784078277772853518305879"],["27197761102094960276784634655765266553836767156664288714371996218916873568860","18206382806979328986522629312486968346068213037002813585622985675062605934800"],["26483908052453144066516834928159190645498339565977114584900729579980688721351","5689520483111981839646387012140478473856518701118283946394011301960100863207"],["4486377499884892347525412419683153017620926988346025525268520991544436923780","25486433292284375743593050089159051032317145908265244234909569604445030583596"],["18848516614170656036807702830822759773740499506294450663346484054204067668461","7192339672081079043400656067295475663769943210004116840600274652527821312025"],["28527483860627913882089646780658333567016339677951738766728673499454560124180","7725071603424399703220851372819117151840272070917829037388149865594783813871"],["10921309049228364767672869505336076619260752217917640485590847603922640278414","26197342754834506838642948571544114519776026146220152190537658290252424124811"],["1620131909612779592529917366821285297459284384600716559593887113518151078797","28168457969747376209002750956182784345780293309978865266510173181354732086951"],["24949559636543273375420965220338588326037347165898859311524107893991599329264","22886060116421448994214023917995681170716747721645496765559842314746304553485"],["8885577240418729626719418551850939313249937287959676667966294262412091477965","13273248835430170777599836351919161567137066040042311246199046083354170400161"],["683444784537351237205970323388917156617411384028246477769566402345546385440","26912764306683192736366360111784028952428117440775489479433510894460097581094"],["10217371807335204429067169929502711540822714637910040163772626469829097272646","11438793872547706031886199122406925293955846339808438880937832955154942993065"],["13365838368829627226702724312126897981329574090361675730107405181092978105368","12914089757780236657266233475878547011266986328807292692052514595816699765054"],["18915475235270012236851839849239645662843150553033861087417405749090287390213","10185147592459659954458128018500375878633073568341826480319699729884172614055"],["28413070605472631803927737863564810939350814867841155289661758185287012280512","12063167544392400859579267145983098812917198077193365993015279477942951376984"],["6472871830469193761138646750291340079280110278105080744332658745925813689499","916231202173208173219345578856697556443670462624112345262102157964318988438"],["12606159205285779580445649421436651371624171424116266070706975125946587636953","35487807399422774858709820538019278415187217587271814865828044058346475811"],["22909201220769290826220735812677260706030685530510774166123438507024672186625","9858685242904973305240879371173962547584368129797483215750780930024811992437"],["5601194648671059729521470223670106089268418542932155204282642546316979761150","11732179852075643848908400827235688861683708719512922758275030624280288369166"],["18324759545502567692665148180049035490908894104960025810596291741071009051901","15855217901137626951128874214207925989474693776011276605624976840898425700124"],["10963229011762217726525467895028783071459372405990731974685060354440371875704","8237034510757625258955882165995701537216655681865654408401273827620555885484"],["12904710974208529401979029323526636028613348542654040250459216397599570439016","11759700093990783123951012457281030536938576463332387859839415625034890574973"],["21078658576594044733140079490334647410824001269139178757941188780579464118743","16466104756268950473130864555920589319144588990672313534517979605444778246547"],["17021092685237713867309980923314938249717027792958559893362474229872546147964","2638611651652322870429128547035157207706055396502369267601853030264591756944"],["12610090527207981577821617039160329627570504855937382282602522205050478357978","18515480171129329216326941114555842287874447687847818002228976493775223549397"],["28881654552251583514127395212195835036744636473823623471171794810029350686100","23633143844270439366127184645804992172688324656192479048994666570431737022287"],["16226847632713264861777331096606854875332341971106901452967521966514971761767","26900336422053730641739040505767617162044656862236980070941281894550680279743"],["20825028686206448806070143579400320668598220045088988798905461958950134823923","8619571295912204751636756765941569274505152897685713845823347443043756195363"],["19404718786192729179909311641319813839734229545579284189786386090761221409721","4680223246889277031621437014525902707537192475143919834617610404699830566211"],["5205871296595120816810031641334848751989329101722113624391959525023934427023","10633393056019971311744564035944347365788218123532115411988674535381518176398"],["7245386951788248354193146272362720501589550904210550299131200680842931528662","26528311909511180976412110347414482216731589057317517610292750805897533632743"],["11515674578560487246257857424561013811477555355125325179314100334956468522557","21803662110376765407791102656588982529660583794219436869735645618353984941755"],["14174286192927314603607022270365537072931267968152205981215533099840920522961","4661115319394597769923963910711730764937153509425353344505415513187701554157"],["2581791977488769232671146364787597352274859056703947308647837189425214579995","5225142219387839041665040757461523282289374702850440437135035432782887815414"],["143512700497611992863698087976816039393010861929214585597202990971527052861","5419716218618635913094983602399482145656479943386947785924264373062648634280"],["7203631717778812159551841112812798987267513097768786161348775016682890189773","14138673283306627283255522463236848352415605528249142457005734116668991678700"],["26040351387358532375578688188165523589956113245804258502565463738787096963236","16325478748854654855746427673228997635545532107497835251839806633734219523000"],["15338647116619727190828306104153453587982086093685768071696178901123068408628","17659387668083802987435167148207731459236844950087092932456964157276924667168"],["18198623782044643231716789344661458067556883690708392498249799013799290533642","3771058892197325584369027168854488459137268237405077415224063427207677265121"],["5944636416212643275463789623199982193732816728582726549031089523529322093046","15502506983968708954384157452524062997914997335762237388204206358341274059866"],["14336557325005319791633368711948064490012160343765300206962238943062982609573","98950211291440047663902193661656202993101410023154436391764918001755166528"],["7295554070560743178904168449671682711870126131710426012403177031716139880549","5500539648757057810453575626258603044435993103800985274762079898921476530427"],["4235877757440698466939063792057404224985751619155239508887840865128071627205","26781140273352028078218391372676253629369357929691818387031257159012308969118"],["18359523151783600082967741979875213038973459339301939655759822098092681641377","24485942412770285752492566049119258394733804323471973326823385520735318565245"],["18342117006925245385125309529507121947881219208492707752776245602877492821679","19990027616885370376914775263108392553435743051680315330291011601455186360100"],["14096303947357080717051098960868672199358415994574776904689288035701630574027","2310384097195255781964529205568146861006765282021307365712238569008838747362"],["27267970903637473991788637775335475370439341897075524963893150956061510721221","6961292764196387912656241590796003297806683853862046516825874964514070312291"],["15952675717567157481166202221314607634233587248189723949463335898056258111193","23718380648699790794887411899355711676591963940421935694862138549122359541143"],["5409763486457497717516408343179105433338548217799211165338682479807787922000","11591995789012547470751251062421848087314785317796702071394048181351044297205"],["22039579459374736248467452065264471721302003704194565009856254082753413672047","22884006488818317104374999695063038896566668791088721531434637571326367102843"],["14279939778111395354454215125255741802984845850881827288546209590481284550237","20968892190371045571066355769965073249791279475831563069015306927340914260198"],["12946035716442428869743741767375465040828649465162261994715692791277952667738","9199605588143613675895593271449536854883290990377819801884491505670588329250"],["6656432615166790311084853030052029401000621798193634863343154020171469148743","25942393461017173160725938035842379880079588213752242069771764974706894228510"],["11671734596218097281580071118242811916211670720162680425824754457226401657623","75194969898552439089707862403192128535419067945700389707717526387402588681"],["28104591619101241402060248293941740712758926846231625536247364842892708158851","21666693349227485950111444328178688263406788656368043632920231838605653578220"],["24625722404702582858138301463122949990201231912121475579265752111776193504763","25357234366457325467983026293099566332027925398398073746084140538055454571632"],["24905867113536102373002202187497741528422034331472281621633532961346916065590","19471199019963434435452032349520027413756476053987166877227669673943014506322"],["19764457754449225350137009702813082030740875783067600639896997963894785085650","27644736306237805388264377903197849090889627996899275237452192984939547291232"],["18483864751176953644491178570681632015298753864882087013140286277289307235235","17690852298412788544203216178814409281759364817583912307276907243767419462836"],["16788991490243915953949389125410231278926565436803946927422243595710021338383","28453676788387346552369162030347523694010439022899920201509145285621681587599"],["9281729892914640172788612439913987647126631742438312872523878874900174633654","27036224162232311921385955285220913581776152914770048235966976041697955480204"],["5306660625105975847888267833814060722537546895945919773893012902706045158233","14551690109152818001861584190357898382697608735473868025933634338642520515721"],["25957179474443673559323523672251718029247239298199145938017422470603906352345","22728302591652044917151263973841009846636574892133592457215370769398547011273"],["2818469267852397596493503883253439317648822749341864960168460583317376787730","1987305529990146265391464592345446234380091245908642726749888610058125106855"],["17384586003822517637130526920687160191822888680770552728543260461936218247324","12869283831825151154295709413928413760578970461931460159524179354455804818374"],["2052057321104572754734571520132807415342545286743450951411073614778888112781","5842227195018324258215919642350989681601448481614797302685143850753641974691"],["15848685569504488813533902588547040954420395674871627972532294964414119706618","8677270273606183665107919469870133669307799272350000010381814910717198312932"],["20735169252430448210557115523561802263971023780859512053215391421653670918658","1601091460814284369038908384276659107621952490971885845927338585457628517823"],["10336205514343867629386959111629532402301738966152705165915795588985250228419","26291198431748681819750110615806067722322168072382863156781604011954890077273"],["22741264559361072331583352626716069783252729718434138328300046337255044247076","19165832011903762844360951076587267523708194588493583952254637668886576235525"],["15378478762228914659967963427771914497208592965800117930882362329518129004741","7501294649974714608131747581719669454158837512751785329232531915896003286457"],["21456540757274287536767724758562009124713323733803700188169268951136361859410","11899942170203402851331655506299143027725743626291379141050909463197001142734"],["17730681118243609896608687719856737884290036614539609712027182957692295323070","11662946273688689092017687685525280964534714443363962739788547373658172440055"],["7876194419102339653489637740322020470018165772507912280397538785599896426593","7549287401097538378411397167397992828624698180869583813394766282213835257471"],["24079306718567227988892022818848357565823722023801508926365199960758851280200","19100313766353442482240905679539937493522618477369474587328074980286272717135"],["25307641711233589843168435922750535162248840311613040142247316046338129534754","17677203633177773035114010733087988812187030596447427966115651009743579085378"],["24475388292372726942936351508812988035945967635308597938042071303017797278225","5878547229976375332779624849506790582980428420378000285749971425759110729964"],["8985472321323210816573556802452051778678056954759398377429928602858556456277","10049324427070611965156376454496413003688967599407995871213145056059701268728"],["21427793787720619350641104951383090004651985204980280715937185703803011798702","17417391485279196948605251472567975796488227499024494705170381927095829604205"],["9066775051607336121651956074778791955322553126699441615321541826629517256415","2391290438784935432001270612503951844751916183181127474777502878276154185037"],["13071866288910595374136025162472597684893747166143863314907228735091086606937","11104966399965725561298092268091309974852430626627893600082382473860036980438"],["12972336258670803006919743169930243527591274192180427908455478212932883091284","20236514713535601116669092305440645001829874966102085308047606117418212490464"],["22586684348056042732376840065310061412110882547543533254092652445797548613839","10807153179202954280032564650737862971914630338909838737376723995614589958001"],["28158051813924992906381099326690260939210227678298098260101045694935174756734","22689915623602668276041771651069286464412126034102622976701035501005168683681"],["6815358088686845821207219819691571985435713053090770887457806299614289276501","9290191330880153481252639990142860345488547034021851247822240704783075471530"],["10550737934515231300348184959261720742678503968703476849019914844835086676857","1108650118767917757417209353094787647307422852942675115394398170705397104304"],["23185611205216455887768924882003930873748407322912328456289283949767424723090","27091243539260839995650382248296890974455228416517301266300826193462367055059"],["21607585017605528471352173849112998951806054076278086614182097326802863925406","27215591519992386449594551036678330242744680271957565303599868843908781413498"],["18346548146800803099346058787103137511767974706777720585578456546848023299360","24754622722437968472988990034741222107551297182903366709513937897200491004552"],["6718676190480585350568263527313157860283131817743390766349757481476020968852","28270280799201709784549515134939922662391061742215266858597555945205018510825"],["8310815062975536321846004487625583806910648778616465960244962042390505862939","9324606154074875074331593939817922390255439280161999767687918787275185148988"],["16710669887764094879747186768804569139412930387355902425558597960419385933881","19855378617413705050249731404752063092376311224402494108057152747017819324864"],["23147662698727281455807815762784094431649949845599152527562338217376832977283","13680011371141532409999068017269730506514961542300832362484419475839748505556"],["6771406496816103462656774141976857302438802502224596267704913324211956461610","14175210753697483646631197262460686603887783458921877768310506531534104047219"],["18349144103124184018322760584767094939615476301496427674639736091472571974187","25859956009174270664455310121001649483089794800223164524062742923635930190461"],["26403411011544395918809953039206034462866039827756145049567433898726525550813","11272542026385989330200694076879876915306953545984894668779565065954877469041"],["115814785092660281118922434733777767158205557309447659696579266589676149069","18209175290894070877199358109760726152170949407595299767814852745395975257350"],["17327147978903189267075178279030741500707373126377056721811780981843022026236","28050095861157705950020477283324084901482503432922756740552296218651781647754"],["17436262067795817577723114209121595511512802399462415970187076479793220570162","26462845756480450849565798598680220814754119923969689262602515444776920167817"],["16677301860448889740899120330607410462871157766633742301726045907669210076377","27745627974472501174376798985014598021774496359065416716059390545196254993189"],["9660318714226607729250460352249656559590283390331615139605642773878755589481","26363936949944144703680149977716476833903413979147846135122315606915477892194"],["13919657647656130076003636740293147384343010040433634743568208446234089538549","9879683399896350450909119512640388529758790622613331374017081156669788123147"],["23761207452957888672777000487101071305383299493070592466560435840604050253511","4174854655598514253865564328591532069288122923454055163626146085385266475738"],["2618371512263532686284261191455406184824257685254069716155324174868004295047","11281948334785645232703895462903862293019610517751872004863521457936918277509"],["13905517912896899010486515249846754931536910582361018878692165247458958569335","1056792226273598464356833321028954117602952002753141392495324279435492243401"],["8157081220928920113473106850022494187214528811953192325601949729393049993087","26613024561873700047387860874379660901900793797759971224412840083794263322988"],["27021193505156077585628150373556266354143153283847201555975627138217562207234","5861718956211177298078004816516336920094895219102048544282880827439724903471"],["8009772824116320996116146971953279217506400482649340513464607227539131376009","7478794688300664982869289543692882221573747614273257844020037775984592367028"],["7042659060715162123669395893287783015899144645423567229930515664965628532789","14717457210741986775828919710517195181576282742233542651464570925667974438616"],["18124778253873420173124263287142938309975259379027809925535638523729838561528","21695575600125570778696472321588369686066915328316412345646959553164970533686"],["18478461868032641512264220226602678927543228658269279654644217244868695056165","13028358074387552033254587246797207366240503640696516120107888366538089510525"],["20081916712218134805185115425537803205167226746587691250467622476888873655978","20725462465650779940699094764582840172700522334932650027997362770993604947413"],["16938521236913025988495643814460168122711335106705379439946644720709030521332","11331638948072037521018825530412456717566138722961245508627999081770766873584"],["8890644791529210359500614568130449657408811034880285812143053806086923393421","13068524558064213572807039963459695252512950385816502432215987034416205041485"],["9917028432366421968127465495893381359798068423493583447946407866466070680973","12492740138249206241340503904953320841051053210108371978622355499827927296762"],["5821551454353881691208314780628656753690041006317790908517470481256320013263","8953081778248465980170356717940232269489797436204579556167092623211771427843"],["5013887326526459114612333979988852511825182107634209785549594206425360859939","4366070552334015983879611669890557887065635880521613572756507487281636698014"],["886521108850341025487427341792883016326144899654010986670381628055450536707","21148148459472319829216984829626504518279918969520069709200840200183647061458"],["8276096120111664809200926687751423728217780401025979001456093384609432430848","23796225355585740150086256071814628548811107675261781468703295617217359719831"],["22854088158643030237012871237164697532185897874890683834106033137696353851794","19843008632120922405975187474674792577182693627256242077169746017837898261412"],["14405187347740593691729035205178755156564455212551335284711473263756690099049","23121885475245982351153154797909733994783502401509080551721970027050470519220"],["27669050796439569740263304499591313530602264873019906950798214808549017262356","17112230505992023105386373780893433575085562479802977176218211759928105467026"],["22616549048676535548652952610607910121272896870074114238497173427631727295282","28036398090158380659464328779369571874904008208107360276133257203916957186366"],["14419055518337133172059798883057251395847200626718409094390842940092096971545","24118383954212422783736467020518898787297044129084118669424009687577014148446"],["7171245534902311385784799146978797893288225871433007180341067431867277709488","11855412461706906487323438932419312977179112182282974979489055601110307913208"],["27679827052727542148167114214623371267431008400188684587843212750909162987879","8707880931843317700409256493911128759441390269910896858497193145526799643719"],["4398018778876159999991447460838862417788810186255806293076465352534941094531","14303951794664881637183346628456133038849482239171113973930388043180643849148"],["2347391469459276365926085501648914930936588469029345310274925148537037241281","7865482151691808781855102012862126053282380566775981190382277972786951714540"],["18890271251330639325353394786917889987460705347473002141793228944310367560524","3573413881719082267356946164116531079390510023087847766838839755221807349860"],["28529529737220325797742948782022236517646967212579628803701514796188652707402","6154909067271571812177544265936929344390172709101656817938751354893719874142"],["5611774079194719130304395868001861181374627791483319407579397743363323607953","14331211588194708147830665093450157108753287916457844909563746166857694835843"],["14327366051929480389253847528151586472994023579385591948159520204279728223523","4658905311492175409235288157162872827210032116603357520293453890006519317891"],["16415864771274288646982928480637666230419663265964872435241806355616578586951","15740756945947855142667976122789267550181530554101989953663495798718792165059"],["22905994732699247041069117570264152281970864048985099915546577722001960300198","18654610913023530057523036541144150072538810740205119155098777663983599404496"],["13819495094995089167628292762674471359292660776850570557623061070280798205224","17782492135639830117853687240326792538112283270486994245154960790871163246975"],["23271848480374633451538140133352824386581829988518233773713921537035051054195","18076799411218324725237405017983689649343317652655947172957329761539310152688"],["6183150505916445694300721053844745478549181068459975332523984504687433044790","24524773582674958596286532470341583194068802690153420703484428462132009500730"],["21250111451153707773392420107679113202550901413709724238807825749624669651336","2653785223779599594626268913355586969796263872133995782583169349165497429277"],["27532688059139847689256512247661612767460517854160988214828149809122993098213","10847335628580713132509749858531782944539194374063697276807831980506259904209"],["23035688337308278165560078869428927450372692996068534249489960750112498657826","15212282387315329074205591131899085760820608815343738718242725732650754111660"],["16857332671109529391238914195006128256368672237154855731702340019359260302161","21340128160697777864636269604750699323602427281949689229070710674131482255337"],["15531645951042929501165684618542866958286204677604164434940350380372230969684","1596883272818527132392941907872496230923372175539275925684505172038730355256"],["1843292418940444560226750800772601020226446821937981307692907139066840755531","20963400741984584973796294840890529994702746268910557914200566677710761901249"],["19032034739536676366483297475544263975443893648133829185058123537080554347528","24877765464961723664223511611832133405627543829282612220666333556015220235170"],["4418714698782128595097267747757877617477098208314297816286211086088088292094","314746093196975167875332276073641742739403718807578203702328166066027749862"],["28083324248275050105462110328123454517111140617334270475028005250559288563501","6289506079618592992232517281842837794262290588867431343769316345873396715598"],["19360556950281319657534996769997038327417910725480066194409743183911515918112","17008213711597568667648122868394051867826575957635014034358919364989148071445"],["26879263050772551459090456198812343064507568006178296627694024135340077727596","10722241895908557471482548489509555339131404183194612741137877380210584186096"],["14699958635234077792111232369980340779322221799616072737817840358967550082442","658131074478581455060772210766147859585145737851346658800302000600853410389"],["20077061347798872745308523320775422303560633169324525288868663236450217136788","25666450797196578321095771367155861463309512238962754143972710074313808259895"],["8214080465087921604185763890109790782762776686228085809611735307976928505663","9066520010548425507954600381281688683724483736321449815684868675126503014227"],["26125257778947554974728132682503326984292204608604722529375943254418566899844","26690768237456525999792607830259920228446683980921078378182984706855955987312"],["18178168542572701378426924343947445761707552359693920779683454257954470252345","21076314879373627248282447228642918028513557583957063346753963942882141500662"],["2366183239686366561722663179636650853842033021544580717238751649279691527625","14671218177407188684038370083461495545749093747116288777118499361823339692797"],["13806412459243579031126497709929282722574930518523838497408287340248037618075","4575208223332998533086101486843081138149443395470614623275113483442843160976"],["14681689694960169962107040586937390490562327002466578114628345250672520770602","17303558277821996431487373215931486194990545419625005331138740554011114098242"],["12437523917485873985269683169761548590782302072330932818746036888829327132872","6536758322686988983556454915982157373036120165681313221887405007219461853937"],["10087495812954045505721654105201897276005331543317752417034102880231731087848","23943272224443527160557125584806539174195500408756956609890230083525402290353"],["19746403638349438602185879801703284558920466361831765719430170779113192064335","17095527977706151001397315567426861067871376726098660420036981669026200676642"],["12718246911627609001273731040729072953477967170247700922207700327496679920673","16241216168843309877739306378812655681036538683333793916621552556427862443699"],["3898903797674750004066386624471280760727672896689915565167473436801545235737","19488106544157229154891953506357835766602803271690318919354037067714918528050"],["27525780611181075973534802976798240493761970719323949055393896121749240933400","4085369032192664185566945705909549916503963338165187463723130990950368933507"],["6909861028764021216258137739641509720666615859556695876035160723125932063226","1362290696039315989415220906559669918393514312824979773456832596983824386444"],["1893609829330932171106424091323172493581607783181182689272140034058060983486","14641675631212588819527399914646745801158383772897116708060382163658222619645"],["23819924326505398831383780976548618181018631538155529636691797448648210711444","14732624044794941177178787777201778521393559415896290039153753115232922031241"],["21914394122174442265033817307413434618776285879431515689493036504543951713372","14187768973707354097057717967547438777079820472367915453186971555576312581941"],["5232732956787309148157983466993895760129417370453567262820308703404726518576","17984836137833595494652149253106153817830592126299827519251290660332420270194"],["2794620790088034858790397927706867991931432107237663591102747848190030614131","12572888141365553504319461697278252356014796963922317952500693480553706403923"],["19291194024356221449986873631651551509822607787286334992073844320016938362063","19522438389379329720827571973803744724605764596244503527449944923732174666183"],["22408316176295681441367152571888584196242279574957023385186727943852970367205","23158402128442592330402986325237273597198971128947869279924295665394489117599"],["2323592979587031113908902074073407622334367925993360035546490888670244652171","21430679342110462360922928106419005634992108722677895084452780702149979172345"],["1672671205100213119760989521285264665145351199207878761208195885642681243212","13550066059248754627274607536164387119268221007212020730210217766892623099600"],["16797275743314334313713508759128988368684945034243287044888619079995648427735","10383762994356592069884408414573697324258268861790860210619194576188839357102"],["13468349999590734565602735770077611349206434914666263160978079510443100746479","13799710399501194145260629763349213580766058752477019699896613348644117754910"],["22606879805885945885587434059087448970482086758027417294914984437912170397820","24324983599658158709157627192989708401477042924029660029320386990875533257380"],["7442827658611478556149921785736588741130733994722655660589034414193910896574","24859270796291709639529297242540012419962403369822407740598109954616661392892"],["20853727705352857052400867705930945752955890560705022307986355508773430140567","14304614678239831544506167694175055774809595319710075331361221194060063351267"],["13450725027608932728468222075215335515446410941947564722955938515289139607617","26949918645064423160453088832513746792003034925760481229526091057621859506466"],["18566087530543421039002055074224811222905780926123901624993552247705328816076","25548074711905343312926867038782485895094168043685542968940121323130407457897"],["25546188881473468934247275704318088873324400143602531402768677161150463921265","21475335690939927950507420344695838046574510466867155315206254137934780742815"],["9344190620673229721513173455763509695824892427096674790513223415177910048664","22085818084283686054940493925260344211168631129510884278549780050457380016782"],["2103159388853429320633652861741661909645350414994179160999431781687098579849","22434328068533273789904038241942065188260809544730477980233608761074130705754"],["6308619846831907543609970938984253618235861521899195535217350791867801068391","22949526839277208833277208959047967153352957417170334657810307859459388715704"],["25605929083279870410263232693722060544155731271964110211546997056045263390525","14349216345889848977028269426695652568327300983143639932480078584101362995640"],["6422429596737520879287261905631962702149975389340844434763226300006582925043","25956805881358602118970615255348264359354387751140591146700477837584853732565"],["19262426069804686805717047327601831151530122640536564162341308056495619686218","8628668817941686785489234677182257230923822490384341909862272265494475369416"],["25619005071678651094603736856663925589124562327615608057263494111386273571840","26788117321240127831824864166823872384643594857585241402019332658557556099344"],["17780431703300343433442417865174006672448245835071714645452777355361739808031","24556489948712773197949004743344096017581471721950114869771182356492987547761"],["16918671594155963003983615714978955198239819538403206940402196907580354861929","12458475239744266022232470647096314807786875467473950959177124559961238888887"],["13565906481379914775369534896252694006035187771521510566870498167312026369190","14643600930019501100751247628129262861499364653546918043734075503543609790564"],["17574008624042567217421030465429203384181639439284864777687295137017517117391","3823846481667806263348834072273774649175795367016107866775183372704131899991"],["28640682852303924375030125682319503507686220182535703209636637599524989317006","19478503652194694553640284780877129716989569127640426134738261390331343004380"],["25886556558399881709363293385006631769484784945539869151076350447279745671322","23283323386519781706625770974789646803791009760902337115409693288178570234198"],["22763550276372650382590598095941716429211920131775668678848694714418029186886","13520735047861809063861255130385378774936606178929495669362992849892787606963"],["20941926775416941538490254080862719707699479726824598381198702653063274915616","16746402358662469711274899372400692819300838657473207630816857945806846742435"],["12517168009416781213617246673704671001711556303966414359766421977947355223249","19938668988121922322383524122462381739415447812510748446180181736467269689179"],["7590473230298936195652367199316073325839954255954695028671616608782417262442","12599458002885125325516083408183540244688938524884154469634788029036582558105"],["26714220138911905382625248838134362589399254189870569399361425861802154821823","14607939620950626535481297112643553375797065803538750484121711017801131440029"],["21296673258174598980693276848426263562973986515349996887614698854758432063554","23296166824701643673442815325797900364652348834086330870790168925470030067817"],["6204333113911035517775936717146351118162284616248773427949501606062683665525","28032930771436353544586591065612461982901683283423325298583888373783664248086"],["1953622822687967814033794437698499319550126505833419637457991004190813190954","1659217244637326839479368905118866703580710599736228895257547307544140799994"],["12282031588382350466899174301767751524771060867678360743166730303721451021385","717855433249565302892738300777331893174790117687346945377088830565300822858"],["12483014338891006269583707996397172108790964353300682696514117485003337281695","23852937441145924419572044636880664363436684025840938241108456369672134431002"],["7029782445448211877413897344662147485460393941039794604838249441990560748373","12761102693079030494553647401676789086058244072850390631183590118750602437093"],["28343951327742059755105621195195300814882884892995710099760780452380449915699","6414494598204278156646101506229558515284928771895105605570728664915514805898"],["1785583483671679466943282655239217389953516640644139295754873338321285577462","28674504554996914649411256412033849476124939333279940877137600795972605683929"],["28187819453977771722817923967729188679419954128878869258087776603165004801872","9940018934696286330609440582823349984987374759192134296312786836115510806280"],["24090328585978386568162464764183483934357947696489080519852710654410318669342","27007856678627231224530460404836786432088892266758488377038924431489754364346"],["21545521853973469527592507693241096328895477283604286176826334327823501408140","18061525811867930249787022534962276301268310417015339061520838516073013603565"],["17210293733965533855894381135823363587285809412538940828044532372027166147290","18913058356141106410995655918550568054096520819825367014955655238947025839223"],["13018646733601765673432612103302532370721817036903624908513485804660718440496","27677343718444430755111779660716896351819228275032289033616280300507178137872"],["23324282852342011143049894550375472601450126086690861149972087848203867616504","5046670788212635239136643878679752404673081134918200894630716525276934025128"],["22996646681599637561195845413593669583508925799818124938493052248108540996911","7727409317496424602033815656216408358105788290794468241081067834507338825808"],["11255129023418538896843634685073529603248901303575546395925852925017740106492","2112325552236350038958344159273592667475681156760232288427502147016386658673"],["22547638954757421322924312292704198092071504462618908464615757364982658511351","18783192085520987114442543044469043718867230122240289093429235138044524106265"],["9601281607017667424840570707276567970867881473620311105975501898435542150746","2996410013684956056481016245631817770121474165345390236975192623394100437574"],["3484213230590392598989004875670215435184663225116847804978968412237814684997","12736533254133842953188471949494888991281601160559964029461272029303436528146"],["8979503862743503770126454554057988351146661808319807416548144082801717843751","21742383842282417323968294793126873557946610030955542891889849588181028303026"],["14135491733238377047424810067001543797019559793592551286597841802662096043359","19515248601586563680641490343810849046023683481204316971903328175233825604436"],["17788774171513834493310851641634771011393355167203798809124309572037353688145","14232424963418406466122963795917894636493504336959467228467989462437229076804"],["11073065352437409555510996052439289776279705262679383920937874821090826590729","2870036691202052791798814151007985084772775708426127770587874076550298355837"],["7419707011214261252767977699874492325232137300147647468202269747089703877998","13156214720012969008750705459114343755599388860602161821634682117930273213265"],["14368034638682850807954530277143425418655293417287387173153816858400144099742","25879899424084358166745877813462953857248654083636173717110500706906040426742"],["22458837028742640246202896639342686187546458567384164700209612057538033610748","13980775508267289471540855857004130378344106490493513787403258931020395303603"],["17241450213175984050392549304233585448273717925415451964975381445293858973402","28299230365564930634121006087931298050895649205491988408991751662144313471538"],["19438549471701885787329259935470679692420663076860695636859819028012861683680","5227202449538795496962302192068702933222291192216349379833909546505470505075"],["15921436752923879080349662791628144624717536244992488023920847704284947156011","12488447882628361126495830044548648847452697821973349620344447366894996970556"],["3189217461732814667451844551602601654821609692227586975847331378401476594822","13633519855006491330152986377899184086606512776812713467398266605268969268354"],["27485857547040962733619962605319322051300251330819000918682862347884631814638","12408941485005039425381229039908118037457109908665205770063866343518225938771"],["2155688983360129524308758214062977901876895153642751981338938793368795017750","2008981968006947207227755990575373648374101065059909129922903606765066635417"],["24180054086535979694915367455651367315210110652047992809871488494816001550289","77561741098041080658518842729262057452704895986748841594883892864984075408"],["22638055977142421510230226982416483974757447321223473333813104056780456672835","26343059235340085654674179593232918472410399383975509374468960736271754612243"],["11729290744767539827854042959330579078235600763338111086036276393916561295864","2602246827660292979254818047450961161973536633663239566165169124135319965286"],["12774312613432582446375215628193369405235307370548592503261109283322631683251","21796700695746457274142809074102090754740772968177331523213435330472793052623"],["18940464134645591059122170844056197697463896928869959981326405888986669507266","14409289506145655009388871084121360294467226632717345456936662514629927382637"],["16137770343694513395676429985283200943089797008690868841458366484507254051549","27504557379631292772028019212423076753383543478469275588606686365607582014494"],["25743397745449104864512146884114918615996996311362031700828753385431701534919","24847527104296152816939935404007645652653884024471660279238768281858542105500"],["3738762551221533735735559979820644733689335931620234358965461064502065466426","4378394048628647972564373599158651865319633106213537722264803755959516710626"],["19524915582253716203285901280686362553730251600912807997204389140685697512209","800623366873067816991262862408165180535487464262160442360585304082746937261"],["10875798926951223362568938010318048520246065140532050013370050716135888658490","5131260818933869923055515691789046784435873794320880931384312709149472851685"],["7228224265459323351908530353046808288379048400657064305817039702501341146932","21626504999913424316457595091349711320686200339104047004778635981348945061178"],["12315847793490095449433963721825040100145564102585560324371814653584158721225","16805587817811018815047302645799372907982850769769075092770891208763221237418"],["26684211277585383064699912524949631432290980313972028956091515201823717979499","19327710493183407441611710615235775494419861957216586476048212510343858546070"],["2917614756301459628992193559844017002095417897524631231873433393632711416771","24118545931450924984787888592345208117912250347037300018725854403375038034588"],["28687111734932457698629789566203491570774310526262084650160661105948386986638","5557994427906903078203506902620412316053485762918946991015458541841934185271"],["3810225028243149138334386549925397210787492932616931444786601323180908035469","18406479802533434258184563170783034023361957665404350113621455214212864159599"],["5421996851064065308544301751984940378295128869930769247023478955060444130431","11305332979283516409492870085577942765775813104331643332266540490408782993222"],["13609379176507442652789406530710251057421073097965197176503480564258779618749","25030161889969331702715804314767083796062514621534262013428603234287228620377"],["13908500080375368519799062469654541765170204270283587194561827748096670340555","13860292990895673164065876450613639757530726238018956006456791551856971740533"],["19717675328208175294267648170148230752585246266834222906689780518441813692923","25580074334527101072242940033880303167702848410609629607949072006139080133025"],["5289083988743551451553077907758029074712376918092300098124634859946871343889","3268361403971688583349435799494919384489185078223260035496125070844807207762"],["7859958218740245431093744366241803433904216256667014009925000059717382621432","21455490750155486612230409143429378121138079038410865182273912906024889310190"],["15940206750416485347469331919449504323057563772115079190664983607283801769669","21831392751524407363830387964921557910348807942555921474623983717262831189130"],["25095166879581387296361406906058786238448565318437945956505201216550476730931","89685917998711920511194551499773626260434264370644890745495614941972670445"],["626196988266419797841777483706073934878374189835630660090850989510656974884","12465868514605250318007391758804192890851697809002819172643809455506627480852"],["17474029456323302246191701543150067277080495807576468112467432662698459189066","6621575963677031269551816638869004839762870749602912595931132355291502070707"],["23068636298399786421211374395158739456438646742324664358093897502673079992645","14262587352300713199851599939041671651065481946448448069552775754590515093338"],["9889230225027492337337546850142048170632187389623220768426652515824520334531","6486335533304942057693208954978145510444551739429627745806986257892435296069"],["9555822072097576359253230026329088563468772941506074756855447555441554852861","17813265531875046534951952515725398297453105621441587443919858477760228581997"],["8127312373535882529157632541605640823468972915311201394719404703369041893267","6980294899045037064689003204996354256882936905004019884627958788969762069426"],["1137340874324763851925375763825322055951951546774310113281797444577455972092","17665003080541468926230179703769932776390690683552010095000366573080182761834"],["5115258716824252120570210887347817020371808986359234033054188073237220855608","2556231983116434118983300899450673273026416712562564381971988367525636218737"],["10574841473531056227565748687686693847813386199082475872489773690758230375892","8322305175176199563561889249738939645108674573584471172923269795666475172475"],["11236879099049024342145726177715294603114439745293745629641266196709862367686","20341648256693870982820818550786744928638122386414307493294929015561519841160"],["10226753358923304843377248612029895374170769489166283563302732243061123318139","3042538393884986283212251177602942310025242806562095675758917198478189440346"],["12302239161099545414455650888686189219736913989456069680464020193474837136206","6360853119683852869011670600076206845559509640980293041939501743682091705543"],["9838829528785495703632477331139749006198232698572032986332251287046266358636","8651055638973980681463733363481165524657288926728135271483192262573912410211"],["286942414044026944029568731792210629625094138739791434573126217373718205820","20292614264047930161716744020989216842387499888205027098116420312669051391304"],["5941457541855028923240973834953500383028478839413609073119336337162792513867","25613646762803471454618368776881858099722177144538104337921282668001225975706"],["23808256088869235448816666440147295893209005947545487251471072188058283453397","7408193741783666740864053878829347942922818357263001386537973846657413968288"],["25081809989210173348690027090363766305563568858361282075365311209071752044729","10952434617734938314280981829085283155131857073437408665368714248515022373626"],["1312383449249403599263039091347729342486563652036246236735589965297641474073","25732199480006983840960242692656603616440099605593290029307815929499146540297"],["1040773145980496794957607655306686902721308014508919557357478760972985124216","16095882947594257839820291229005071325841993642790937875179979121147362387425"],["14849662225235656792623385819624528539929349919821652767048005552155646115790","22489528465769517668784016781257714117024670219921190024568839498232369562702"],["25095148247224689268126950145808747122957111274509791122145654659872066236880","20713210226565516435176167656712926425230149748019207999051105202437661975950"],["10355241262451760044711639347790573472964902789824549498508507228080711899553","20140609413813615291298746888834092770696829790153686703818526210611524226033"],["16100702557972780344838602995567827034877126974211709555247327567328230032938","26853713953144158659330425963977868445686803044719250054874989332486181405587"],["20749525335055004640420698246445156645292618558213718123156366850759423984720","3885710706407848109967922171132474716967445535890806422159434232416014697708"],["15016158415419591412052424649704604561757296933244928418449417869765381431190","23181573117999616031633151538987586670994226876615703351894510164999805461395"],["13916580555213938395859282461979427820549123357773243428462137210897203633736","19415006664960577460630519799564945915070536810790985165399561950577632129807"],["8589994493789070447093686028699233732996581530714033225262590430847843491272","27500711656348274427837844280591629474340406808181846146550498275950221500950"],["8248328965379258973755925694718758157203796058799875665815255978591138380468","6993226052123279458372090519101286750234717782362837727124046683405122858558"],["3905530906130260841531563989778826847613701457770237410480016135773882134384","12727492462193540174882080264459347783479717461374175863794717882562835676212"],["14072232577269356557262334507275591467778889352950676884952617941382720861296","20055132362959109983074727758915036307255074976639410274988868714879680670034"],["6467828039046673234685315827929346837175590017535857687749034638053067664617","18328959623127977168838643175770153753498055396400022284056664338507489459499"],["15185348020505563436754266668401737348712537027013168164065606490153404599205","6345557893658951568190555823681608340056495317520451710694808327539966895407"],["22425016844700626287490308512617276527477571583296642275855624861505064567388","6583310513909911215261204409422115714529221840708736716285057532480629418160"],["2572594158273541899575151344978301058923037220237766896661690548804416925403","16544871940283773141728400477907334012524382905302432625044581755724709187138"],["27472430748476368225300325079299591790142231816865245247537979698716945303051","18040876329011308187983360754686599503156879418033115481302436108715787843599"],["27932894890284733019364055544112890019719144581658223171318068055117726967953","15822252876580472059149599686133839106466254279676256963265530226547743013038"],["20880426234663884646245129430602125395370038300874850000599770596372235850971","16806078705145110069417238564586942253116778669883558373565683711938399052975"],["4647777091955571803507433960128069969137739788844997152782853196061598435829","5078234611969258322514702517436499875179322106880590301684397869348344392042"],["7085023038435451186561464921456675197145780973745737244477905602126757643421","6877388654114444859050809546176122738509151315443636951395435086951893570148"],["202448182134526738914319201759030216228235999871715856253348672903671030296","26262896800563381769003567620780222844431235888031314676257336997573497910812"],["28068101197027067914717753663706511066451975659272107403376609484173426152239","3680678461039480813826081662321998979114296485757980451906548425965772453227"],["6213845561346549292940547092863705568872058746040557218274335574659688164941","1532230585852677712242389566528861900133151417788562133598185720427397713644"],["11155833966563890522767476222344357273270686014740508608503973038909037575071","25592911679697247210888683492622221054265149685924730394353970209910071241063"],["27418664006239499312024568454603730304027276077523900852104826536981499877732","6837108278365412657636631657717955153874495257333789552866401392527908026628"],["18099265261731429567480972789402731430236353038214074217865471996930907855502","21137675269914523555185645705750861695718105553798210679415983981634187828960"],["10896352351930419528245884458620169057284067961310607749133725187698118880475","216084752321648667031440988970121661403590731679833551217082437310333917475"],["6589660484351264314414390496483882624726443922301813477605944881280619497706","21808810212728243781665524607550615487970540916931905314978520226254510323050"],["2824730350996023214552044934777592868468829275979957328209784762378883732204","21737608542806422995840314129191378837486039504388288322233006937338611161185"],["25928311219707834999573536621771391341032867451714754085922542652069133473845","17330321424755321372021575175825751789512808224352698980847877865010662246943"],["24802833729943891525776464532243571779563303564664166955400980940398764897252","13620775389568347996308337108433071602470995789589120816869441000270020088436"],["12692211877043441206048549347809153977955786397314650112709118420552736978469","25006326206395249113952550560989525641968784989233223190467281173613701269635"],["18932069475783686417450323765803994130814219129726361437586795420650066912425","1188242870689532464435282830010779417107160833390674677176769017165890900656"],["26063428813532654263266926099582739206989508559194545716340070671228883493064","28279925147661718273633393013981720774915442522572586263387951210161467474500"],["20836026785933128059573284154329083178848636564466349270812676437044117189941","21085057617003065408778887207211018310429483619718841192714925280414845427215"],["9722393581482305924223873835481468735659463397956896989040434915145544765323","27220859903994911297892050554546350343713989936117937412524398434737686403117"],["18647463775983611160697028089196021726790583885861243089866016542031626814592","23727427335510052319067089284986305621702335891027706511650474151353015511745"],["4229655728664941257727745889191010395879999232853946269604269983947545525730","28426588505275315161475312138287329303778648745565783996923182572200489913989"],["24775131772940571606817250807425244716153015499239244299059766353011722362787","27747392182273594063103804529909478233357444313478425344591977354254695385963"],["14149083079799541707787462535090487795903491644406833407591187209925043684392","5992472491683074936546773616193251531124039870273281787024271439956900518646"],["18710796545615372748688537028728531415212510224217978327993201119139102160264","3248023636638167193551148474407448267117166040017808574346412121725961692929"],["22190861989608959881920206747716138427601984202409109517418986577429565642191","16629678353283029788330243611210591133921546374084402026555075971942652739739"],["25579190842471466694548341042262686908655304664032667553206039997786748407995","19635304017473077200736473972191377130542448023746441905428459567386328470433"],["20784335230481410572418444722085232425523135789024475060997931744403492410473","21460881023522711877089309519318413618088754178499449277424445716588399982744"],["17028482868856683012999164631390256019505750274470906879868274585843631175981","1799860092854553578866077521025855703816229007366337119510862994709977995004"],["10530668176103044195605413009351963482191252105770199482137231104019371121672","14219388065128759447959239240710407621992523845747289581702475289987300349528"],["18561215195454851723995554015926818276275014875183583989685698975276839338772","1175803150202709549615177556606217244398530007474217969652316868866540892329"],["26365184475024599614584582343639677845849596632995847897141579849634849276578","1522454966087432154448776643390088246060099698623924774363047481917643020293"],["4181648936463324785330692447895491436791166359787046364842395113981888581208","13336478032666422255944631514112734313430000115743599940666493213192769395794"],["22536906841382989066555217258278368942742712386056121262456319403717619442637","4569030130518879852174259631502194063752342631299934301575233897007087497773"],["17758469636634562836686706833520155072050691889982699725700988227738606124794","12470669903573283578257616502195796975867615725726284228774030124693122782372"],["17498239494214948038749097304999672902277791627837002239536972078407584858240","11661332986372903438211867768976648589680009183200963777438511297533653618552"],["22511013980015263366539530367085818788499167893602934061042743165268004052184","10600842914543750997828000828364321460036195643941330165202679128058912458877"],["24511940805205208197538537629001445502590947385138868078255449346912575886348","16186516739902460974343937182132542211842506340538846094555438580531225710207"],["25150313001215015879552583410368398869004866110917184080563274056776554787173","4686522591775339186430004946671394638721444295660389292605861110501724801009"],["26163102339831081579829119081752917370409103923898730504391247942420572717230","8679814215421163844107293533047141027544618036937270491861252957340595881849"],["9118243867067511318803617351651930823942475410389844717356812265818707500428","22076377366088825429230101683825871632439289740562366796730054937365568166854"],["8094218167137382798144858573113448471735119356595258197864416816353458925393","25374453970586351209528020163815201595923088318886212708920787571651281455656"],["24568172649621705777480636965042679243661190960622218050481755662119773767766","11369872900032736842411512612108189615747304964546965895506137522332703498241"],["8217172508318902293790734831320465781833144827604805589118113110527067858531","7753804660966525725084775999196486957052379315576231204564328449376697001801"],["5523244329913133903198979745542920058096926435961089093931506324276430198190","8218612016169348270778932311132376503651925826928644007329868714533930248943"],["20839776940184644039925122937088069172724883960522302447166777049236807742868","24810602787472255717844316632332812048961301293432246494937087841272327878468"],["14012108568459771914797139566557818592375861293245119532432796745669537406967","7026799627850678597868870959944222871975922860994456744188189110437240373676"],["12712865588169136735069627672421924528156934211176781209060282265443253050399","15463714686007082542091998026580123230202781218834211161960406490663498599886"],["169527224645281172675651728750802253270676766223922548651853605594208414435","12196434907889588246270750463530073284581138176090836604346719073767044668701"],["25285332157918335138405319738953694261440638303301629685800662352761169502066","13793465864899410892381982061638935907853562579149463891847578195911269908898"],["12888163980080611922958890706668465398570268697439937145221983483092578803892","4503155688610471080553548144056453277479066907136649420916869248075413659485"],["14252285668509999521331970158855266105893721706986744326580005194198528429204","27009649275372411338703597735594787620265689148616711389559638316888003039212"],["25881528052991265303063841612331065821458275659816283209636010349663103819416","21851962186253993984901400223930066938574338080021033346516301764299283965239"],["10874129914979513320479888982722029167891544978173103952304322617183199714553","2857776330340404679471682620871827549007939113922346427031145715568117919282"],["19637544151287716681750749465045314398407061142732632228699345384349482990913","3591774082373428759468046502777521223916101416649906299454938186149919871361"],["19325152073637773490376385195866657008793910853435281341818786138265016194556","967101666515137739088801120819560390327038851973267472854097020179525447244"],["3197228612263763953589440058350699175892259909975699875710815655477092200412","7272255496684454493225681611084995671542460821210101382043544592691767864325"],["9903015906869585160162156066505799696830830719200274224793609546949409415455","16032106900262775706672878876128651199101027740366467409815805330737636222758"],["17976075127895640644701519424657249392487670986563666248419686545324448387138","22602546472407777907209280845658791519983031094793053541447217251039369278185"],["25547081792929078534255682153932905254824520169222286017313000262554746830630","10513755061128405395039881526976433960768669228247918146203431273925483214286"],["25482300989368347251402393572011673896521296214665866817055251022208058921202","9443770230889121509520059241586342691970355589198335431979817572355146656148"],["17806630386613639890921983738392870840346969463916342993406588038962946233601","3828294834747830814338809557515908884024953839653397019052435664318442640403"],["7289722703344042500340104782329232445570081439368229090783552981689999110025","21500327619127748346250645860269144739434866878127097495010241236202777195040"],["12232930115735278570625268427710607129360836109185209717284635508470524380964","3913838393491457573512711311533560299300802298642536437680517020332925377451"],["28831924929640432309062999855799687753996081318070507208492707753893045782677","21538152198957202492372887344970302046067858802700143000837271792434777548813"],["21553057754713757503114710535768960449859048023518951010340974073425502211224","4305803098196785060042068252929762160414675655702830380247900434719965823345"],["13018075312887328345447085654749433156136844055522054319845020101905160115237","6308252792538736544069495563391134857982633333243310573169136154550940275431"],["5673475615726225615670302613884492188677076262965894033694797081154839153423","23853891845995897962625638320941071495563497716878917167197994725185103803410"],["27100804328143358304407670160194896991141525041846757424128393937186681749359","26285331630902083599660846674784950029229751365390201104468381561305357654780"],["222730220004238253048279605911295176823702685942039604972972563770307580637","9764505049650555081428310436927949135954160045522488950930888333813630686734"],["6292646022312883709749942305785949798138198535392413417422984426994480907231","24045559673382801118277705973869688706127784001435652275564000088215277113677"],["884180411359915834386176220729998464675361953834116423612003393222342025852","9476904730659595550150416237297838463877825998394205951724459500216789907378"],["22795848883566546227205251224127776757673758869570151025780495629190385313326","6878339732829792254649862966995296980598665329433567394767723963884005359486"],["2114131399124553009414891845703949581164557392844775545659261766605990084041","14136550274975897244779057479409913559081698750783190421663203737265383862570"],["5983254680605371438561972657669037392332877757089824207221636048002176608554","28578337401657486664855670515314062667230223491383457828481410817668103682859"],["9803929602689438151781375154423738738241231448851885234898622901831427803183","11366390087256952479988930570830860681368582312911253425654600672780814649772"],["2695065189669354878601215325098294955094688742921675078627416324255651468818","28886872051491485669450155995123877258719239349012540399635384058248967389567"],["1495637769362439401371941218623639710049563185722207055979020561340984284642","5352303856346637823065043085276602564002772091691601865040886200106595146545"],["2080772663183693612244518185417060796424653161016427422106623731653675163322","15236208503063509383435865021574583594554768197311453840261418469781622871786"],["16325410392495918039578207689388557221960572911310625080956035999376129894066","13278298220741969577463835770882954361541164520173479736114491726283394459527"],["23189283669080518111335996046821349468848635585403384060179559799006201152337","26656301658186870885515262363717532401487609522773805386420520106529507749069"],["12906733808961658466751224169346913023436070056701896236490136274075773190492","325392246373877108105887340490922653652334860026139718606905613247169831466"],["95745505430625931554668207057470033411214455331129843115791104027482111136","28264150681671892468992000901043073689845681244363269832547102404221346338479"],["10616658632467963624546185375415105059691393628878353726658726218871789802799","27696900000138767196447416332307509768294158096892428323929440764371525573200"],["22810695752828712558124197574578819655236274556863472072802565672895519333748","14974551832609926943296881431206132774581053966202611379052002036631699757444"],["14734536075671248089261351344174787092804076962264882444285170441951819893059","26492347145079975600693476843069235802126163238287286932389765680979321549739"],["8782802142094026899990032321404576325753739224962263896775156324687721601583","28095888477557996261188569125632070385046996458585012826259155640828800235"],["16911505988311092699780906502734205502407356276320352735931814399518544436734","19940645280795644657921326620498737643321087009763065418406672235057903230621"],["27596723053859163197523730003869316306777497581129650892363151750574535293087","5427045942536658415264533087469006539472550184947048495547694335728911502874"],["15865361079422711508832871184611347587672601134731829000839785389169887663676","26689466169268579915396021715771887757563489439956454711887051861335935025809"],["23729629640628800982123039824269007523837443083559806152577865778003804622698","8296687011982886753075130603718514688571628707062129713166288137404588112792"],["7878675132642285078928237958793204862107921075018229442536820006236367797180","10768288343129437279353752349513085101193468937828058760225397016138533427807"],["17701518082919334748971395381362574407648537763139254290145108297414401841063","18869074949673504055179621279749005448643597277093695489693250533092077534534"],["17314627386196035968888004815992290833471729971690745537570550968787677988624","958565620855339731816077819918927000546350264099769003507077294517105057817"],["26479598333678068151446104208085573280021152143606639463443125681687154986726","25240362792342573469144490872796146425335596836363636851855540721500835522366"],["799797762028548394870931941844398776635449274657343912614664488092077102070","7573777660046305058669726273072840117954900247751628637092584440793524707027"],["19496243838879549220845934970596636296595579005481207974847706440170397267140","22198597398065851545967715494431058373704623934860803995003085534712366074252"],["1882977214654582364704156373702700427008679563331456816758098582530561945437","9742774161939830411083459439710554803036622511924850368117075806938856446163"],["18983123729352723430321411206730559123560091149559750194628789912828821485714","28396884168108382881658208181683395443913494951041968860389531790818597892434"],["18892946170023125177617263139461513373361842188823341845278035877461154249118","10608953441162127800860664451772526075898958751519791782043085528155402545016"],["13344985669137530967425159854000967241128508784727603283495935967083304754","3610286099619916333408893937891816693094735597792968163317445142663877512303"],["16155558675536457513903137808285734199403588766575101223659801062233266445240","10838691627115919879967619578697245018988230669144455917800879475526673502365"],["25122914875978990375354624118309027549699066414123593441587612897117991851439","12920759370553034848353748511938885067180348029438839255902711743030504332302"],["24951507565671725081808511396640803352109597655110745663988877314124319235713","28556502996019527004804468051147606916151873699755697859205436491861812580022"],["9627913963582540170498029091963806402466672278202587248012681920701651055852","24977649391791103058403393602830275543020581505596272158088791071987560665230"],["11014764295383008655684831234077696279808987391233256526632196199426145757818","21694264751895764032241990546562166619824771735714922631542109845402552387731"],["261158070599840190194141219408230238525643871062950981717988785812999376948","19828099608097278420560717452028611938184236302048047323452699738212611086487"],["14183827906744020770463322268118632145352074260035286966715451983876798681168","5073430022979498607108388291870468776951492493781078628130141794613462538636"],["8202840583757095842963930811092387039342368360654266974293072709896381854065","15028135598146810412981091784607971965578857508531863082916954154169418649835"],["1726779302504929539021685524792291065220904660353207686621326873013661550140","22168234364687825202836154459751410338060650298691229463640009630142716538639"],["20263388269523040000239976194417962853512757630119906857001876390367876333781","1688450181209860065533398337058788224296933934664006712587598082704616926787"],["25704679766332870307119462931409546122289853000908893230040734058915729321522","5990503958292205049361076243649250248586497507990340426458608258078890099289"],["753033190548255841861770428217993603495203183635834387353094817783568609900","11234959379819717632522895644952633716469154369752078561059358345655239851767"],["14673762799360069240639543862439154585434950739084104246082300922933069448495","19319746660721909521134132556478405634147981314713442768324248160842127805263"],["23614255608268109183609032246809508349230520938786343768974168995136898226115","18686696191371362279946159503012944262461896505504541028856773513092426547584"],["2921375541671371709238608899382296193342476843223860063146558918909106680332","20590201065272709038767245898272366592401393263635013196505950790190004555049"],["13997090213563252093964196768431355671958821910717433615006133552064223385838","25501373860803442112533479527619800047357831632751545479950418881356045693445"],["9359999914722647142921779877816807627219486351463184878176810659549670471072","4342345159403571848893634768222674603286715012411457356716546282141568521599"],["26903285942325988382321264396689434614469717884512067172455810288396559996312","24152448739992956034514340083182226994152954390446899617858407328479909338149"],["10816089607273067686884329989944700920758753254274939499255230975945496344935","17874546282260017045896957055412193448965984044088718154466527996465473397662"],["22036380167539808337475305888856819317236676390452658963654941080409462740285","25059477344554068835151506818036064230749449599976031038206418468439793062225"],["24232546217789926613838564979753521838488728649246673952241744912595722356580","15909018560166211462432766534281907362190274355673095781157430644712450665110"],["24831353775914622159045684798321445779227176454323944123717384748545573769140","24105989628102744375302407339004416178179232132242725544494314495432797917241"],["26760390891581628842753556762913487297713661514606809130795548132927653751689","26229304101484261647839068844115179616769334930116125798726768683160856814291"],["7147894251457071038286230071902047824501791098941856925665957082958663267594","16580207321133441349160292570173447168084211957541742350388462933501976058562"],["15871522030643857941177727697356616596261455129936898332185595666387831487721","26616499129040304892018671866957965718305159688014354494460103797465197746021"],["28880138025354659832463654271225995100179877121908584792346963489598638948009","21812607386538646326573777790036459975629262884294666239750115854446641896318"],["28494765139778854862696325404769483558066716985523119926143434112949406045309","15419385024809219352975257798731250768299587392341102027034541825033875251843"],["17115994342557738412019707236272361011752215171251598757716612274853872503646","6588485773179792448661977975029120906636823670723747117989323540376964640206"],["11165968818166103487338937252664921368738813242886200784037532731317732869122","12066336774905819999384628346638935797990465847102195897118192140091904233224"],["20769829022408421536969800018960740683476612937517185898566856712112661056020","9297306745788091221629210581250024808132734696349519943605606244543624357902"],["4308895763963771011172027821173115628080877506030293999767729101346700550519","20766422230116656518545326420304840636347245346078164295210828571333896458771"],["10350883621197198779141583256489496988408416822240830167529738224531174476771","14805919317108410793407355123245037694302746050868984180216479723483557788138"],["5644510393385644225747039105141511435305807924278291578495884160762462175159","24211908989689714887586536576710764085867129891740650199075517919712128312126"],["22606867634213530684438283473739615473075308809573580654663042160215259473938","11490539730452012543637963050297017282703524522406788292282569926184517743445"],["5798632552369717599147598031286067224327068401485024397905469027133390749251","3166819188721108541224443691282276942938647737832860878311710490510645051197"],["13643432133381811029946491339327106019478724101088665358804245686187866515000","11730425938219060155861811609980089623552458088305393108447217522978452769777"],["4881599250258735211451091210952013743488610326735813882486245358171203735545","7004346589471841600494144349639091633116997179687586409168684906077307546312"],["5733368407316738624707809522884549935313311167046271821041399909420361200013","2214972300428677673755724182599539989357216272665899190083779688320511712042"],["25524009452051924982068736286746706091227550678073378098757985636246969398412","7132538575126151425585071636318674709425995246250236490080405709930196309245"],["20978830382755058220916038990815159224709327507932069431659695093463978296663","3774347693113004494219256010566434485636056363356412426006682227864857631275"],["27431424706732596914427364082332119805506114213816080551528154561069784949853","72582198337173781475734371597597614219353757926707330883178492310288207972"],["27651292408789596329218045367956937547502537861087499329630009084691667776401","18699083969655843259230525095485639107861286404247151790241402471565467467558"],["10964906188842874770058060733409239324449173281012268537290958905731284426058","14561560594413740963642854282441135188273518539201719932830758497741644250696"],["9834780475101818624800039189909496134603207965230183430551953672838402838938","23611841319716153502740498921487996096691787406380169873607250969790976589108"],["2788810279295130149030366601265404169263987668779294405721877076150674020664","27666172295105212496213161558936685735870096344216469887482524473104740067935"],["9042877042760681666966075687069661921847255176908537263004382200890524669959","18384170512007097201381767050388650337736278063338514914430628736852106317030"],["3361528748094925735689780944589557683965009456941218614524924481535736309349","13490440534959405020022721324967224990308394005566201962148058102790897218143"],["6727126092317565923622650418318203095454304481828907729399972863362445179230","4617362648856349156342113409487169569855988253091823350204715630057751989196"],["11016057044519212978001529476057107790730240208911225635784587563475240853916","1180177414611400655989523965918163743558963626403577302090298921758599262939"],["20204045594229194742669561207655859914075184407502868067820685445355579345642","10701016252226576112404771050626146234782991508396830318361336169272375313086"],["23129193398669218464558035282536064859862553134200228717488648439325867945918","26249959246941485882565878130480054233451030207453423578111002572612952894455"],["2063116057504533823081493177154909335378412465799980297955815032295648394694","15927038804085305537787841800430921116955495466958403676885035595758979528366"],["10206841946571910031677743000558111476022436831199630044158209651940464449152","19813124627740260422268029336021783897841834357585846088536696126527311434877"],["26712061827671779419629472689344949102113206852157568340828737593733300048739","17781845077277518213518330563300819008917169459409304000230743195840553443249"],["7881889556617427219423567026078557650262081257625815587815167512387448465483","18232412831407882519335441301595626215995572122535147331157215740328200295415"],["27633972612730588260754858580482398559644133177320590533519802621148391467564","4392301758803629763160465458305877399518369004858097962632797652330576803179"],["10115503433969442562465713480775720147702967611384987174462553668043700641595","5749709429759798176468038392476271616699941346322234237308627609782878062909"],["4996696644942206725140789481689984429386840762798517725160708620968897979148","13431483639384797294311127629183145223701801094475251885909701128333041412621"],["25852612134851550156273423272131487828614346243489217689311162360683803049578","7288017329105687062692199167764450269517635916575324272908774250612305023049"],["9473225650254071398524368730166444409938896146368163345709274809781374794305","3551955232848049900920599021883060962830388500584478634905621995993672947739"],["19234019016133213060497949212498043165936410087719940844729648512322490899987","21091827155090656523239441655122780621840225724556514695430951643596541067629"],["12327419620428237872635569494122699294813309014117686504325793801537431799622","21821175835095003573654574361741864577727666428890123806305343757503833137639"],["9891262369572143682288991052575467363079779641867349828221950820246597814507","7858311980103833943289504562297600118152307926410363760658097829992755057625"],["24248825503159596365076202441163430345243205985289832080657560204958641616623","3409223483971329992052015330187193025232537398171217839661600028643675857431"],["12441959252276651119561167983070876452717550886907076088947319515235949620288","6202448463690898783977766681219058015779705566885885840603239070500356133509"],["22852707778799942756800966928145702616289982355449841158962868737229475973403","25368078536213317911196588018555262213017614779001141075516579428898774799202"],["22903136425116282947149314432575632245353644050146263774525711144724642098054","27293977394586239132133453673449399232536123386467569805669568251352995807032"],["4077783016739633336149659241732117564011310732449882712222003643995568409948","7066298958817677156356140627423170916934605427960929572304280199263744511974"],["5352050113862483039291175270320321786423329512240615495548963043333315965579","19135146993851947366446265220215952003547985111603515179770550239234200549864"],["24771459837447307230736686823023766549339634392676419796029468290821000611538","24762910348732920523205206345832780613252649864625923357424557283818051112383"],["28769165588319072552783282655389908610056587246830191069464518488340451492572","20947175364644921772288117524529647520021879899183507704588798460809746487247"],["18312644281698766358222121169805789844001871593008401026394604960453956345523","22377964932247987046561020002672827565626431627216540889210511899102552697606"],["23589078606697561584511895462160373855734477037928450395265796223977512755074","4702171249837999832798085628258499153834690714036771180647847556675627257782"],["917975093877649873017149421177628327696000345185853081901520438922687817988","5556426154045169375541529454049026584848566041771476731801936121861141201463"],["27206683030744341611316985144074515753471204976622224469836138950083401817671","25304446969848972868755154592422569883453928105354335876065035930363956897923"],["5813892994361590273785365076012394115707848927441319370952905386621686116732","15814953407841291608055686334653574098518939841189850045856934128107922250208"],["4219023076139896678077570481490044922689169828991537856544435642010935032571","4835862204873753702433780989036899102485927161038996322915676144013239852374"],["17118584813824280159131113508549146495047773839392320370140777036385160497301","19904055451409726212648285608860995031986679198361628941472138192883822942408"],["16415080053650152732534582631964842811570337177767082789608358163054155508392","15841298495841854703103022489868716816958212388227318248989180054381910015804"],["16263178917159865559426709786235601017076662352739899817570193609339268412795","6035381384644667980199320736643399512137783943560890018619276192856341662828"],["651886025818980739746313464646698056726049383845368508025556957511918632880","5225673143695066231468289293107387627891598427098459450895736266386012892270"],["25868528679022875724383465739335145954133511235520536635561317568688959991583","8923313035174596013802447191441312195974473626704723032055547437714376489163"],["26260849601522380039282231624535507570180704469492241931497142056422321451628","6994983573069750458019300562970669265502154301950909776703769015619950623944"],["21396084795286549165595984175343001406823411044974848892530665429411537178545","14731496035102966028989419163817844421808571535421562138835440641162052381398"],["17644786390733380906474266263663175436971760502345697702056657021699129011703","2350481788633747459746348885137816708258439035068022177071360918053018846286"],["23243696587579503902657764006278452340458127177717179517482065234550666236439","25088776626982904982609620813180963335621724857615129018655538811412931425039"],["23421170048004420636388159792145590590049459279327458304577866611411903608532","27428228974360873718943488673973900460296352544726528401383451161326572504679"],["17984760621954530603334020055461510013933804332859508904384834746752620553160","4717691886374015991955749294030581859929030606712466430253501678203090619953"],["14547810495328387171148797731137900248067436500436568933183436618033721634640","11643220953466751368068821081313713257422719072455135395588472723893502351330"],["23699350050874108589432000948748008433216900630275481205522305894753481038026","15062759434334893494303762566441348561173570532489096090212692159412051587861"],["8127275810760543363171447228332443542249600790358333693217962063626491315067","26784909938415592596546604638020000388271572199272407097699078771840699753105"],["13819742128410600744837168071557971367889714591297741919194762764786582674388","12117529262308040207573216709201320761804919773080405453426182893955370886133"],["17093126261054400151481652878865710048258995295866902822368018620572256021648","6608929478097531547567166962941336043624586573713334366606545708390805799016"],["17711552500231119682775811657260036588470852848574946448413117548747814296368","25388164965382618970945341843192395470938324599095203350638602847714681379398"],["8183658341826611674793554517096740429325436609712406394161243418045897726106","22247062892282138406206412022935676802155402602607960855964830625465381110096"],["13257068202862825311237950148969301739749133015913503709485392380030794804388","2381301797109166963008686176190661604694923828559499881342397709344587412545"],["13609023374901238704167633096645197768576741567905567478628458476325883606090","12105944470687308508491275600915368337815538632909996390661942758854559630032"],["18403549006179942287209388295284711646727280543426391491861318732536591843504","1930314359303053518987599474741989300710400195965800144553107796094302208772"],["8104002209164869448421332069300021715842824470851514585157262788255268069013","13006114680993234460746088299537654490724685439470725989460400065031835475903"],["24073858922537389917544274665238333178685920452579205214349448993269407372251","27970191034851121854755205230067207040336343921805570592478750576799297541548"],["5580474205292148364764710949477382532043140663590462955804863555379352873884","20201506864975852499259906248808631650139837501217629206957046973757191241330"],["19812052611351963412212736952909057331646438870534910564651580000871249279585","18578182114145603770822561100260316772197902474804407087406076321303502459922"],["7463431251259397445418899044129373424823688610929713798924809023324441952098","28547611793821820373886862541155891378636876045323133416928473060674071542299"],["25232582341499304467487364259953538606025194856770370271142476497569390259316","14909507985311574158621807123158954531522326299323019200045499754544985306822"],["27476786904876725664315546704529313850527426405736997732997715303898851177145","26435309166399746891554089553402267867768112672417621164971539389771704661514"],["21977700496431874425523316037431974794053732142279769948471945158593302437176","11173066044938656208256119791588190341672253712263492515085677250343335123849"],["4583152979905295764258448093776688147860618936328017190437534723591578029984","8186984290115062040123361694525710896434893202487833738555174033355080210909"],["16632521441949903513361607382494182934414291421429678832995807284751103266616","4039999935382261382521073962775949522312258047806716112652601754473760559654"],["28833621320892614400996222719339387990448574046616221998093033864910665590019","23015500786062789443646278506620056549454669118979615027280673090714634182668"],["20256576303825273613274526161156709985891117123048750602681622377964956782608","8038140296335753864979509140965604752988428074933416247390496302520419558573"],["7036504117204393442180464796847796359701661705822807581077010820717812481603","18012756678860003557912722297166913536776029916471851384616401239593887467500"],["5059055752933069589223521141269809121315012161072465705231353147685888663555","16637698843217760460082510468051493676378060085663738333875262724296760667509"],["18388301321837065386154789209581112778643327093042788236997260860261656660985","15677981657317620815811475600203202164965750222128031199231127403142039184906"],["1224416127622166134349687970207521595241572229284368391270447901856488566838","547121413250648894367366907667510884282858222292949078169422996760482112836"],["3901225985750800257300725863700485495588691869638082148308944690688636205473","15890840390717799777855152105358888737492929102125379563402982767632689553523"],["2525788561676095695932539983601880002058724887722139584613160102410888886640","2120303270312070729918672158917496356370360196520588947896248207591726445584"],["5153611772366274345460671742722678627852630574517690761062906977135231869681","25365052097292152024997679737234820528513501775638455287866604508084727829794"],["19557054563385358290781493159884798407491167066741209402005338719688727975885","16592754853280035232104520270217994440225349947385394986986864874283587550614"],["18175444011699929804708916929692265467986292031985647107520884963610212365767","11967907412745693283124694620862966013978019776618903098740417020973635320084"],["28284852591764708901864550867009839922848439756228432604311010477655375051087","7012205623111798499573290214994194724925183714762543613901108657347958130084"],["4528285500643124977064698153657068056565859602328433769867876580574189940657","13750738711687025054621539746869276846744863546037121235198087372497277910120"],["27658666122889223239335507948157046769762006174171416596976146694294665656523","28888098614334284188311475833243374782743118105487115094120838386249431073538"],["18185269426212044919940455778374183955470784027638054175988144189054588517098","27458274893836205159785139675690468511849474219685976304369483545801249194403"],["3690495611121334599899738876524497807555127546339733756182254575089586389245","13197927775198297450945079492154381635038585162600324952434233156247193107607"],["22046254513168657708289608575113906749445924025642159894576095237451369608826","12401986777887821144335291844781193566108885342324518283577034460400463323485"],["19786379397317413200571880501334288307672939554381568103426872708143300900464","18756703488878162509919939310366211566672636842391888775569045327888667441562"],["6585274989712176140251841909838595983139172156718323401600327247261170472695","19798710160349343237318952671095782929337539616645527045557314469392242773943"],["27917969842535198863495939015134278057670015798932970492188066240527044288792","28538403591216108371043938935320151020408203114563367166833521429500061865912"],["25607828556885754945351836553382492359198743190131820283498771323535609275540","23999468065842921575873888187510003337618646825873984873830683183822784831043"],["27576424349369696868795843898519967898204999508439140197567216180583704700773","27479876425432625629815659761873666023377287397660523146340180979441062981016"],["10692880153937704339250232054418976091515334763220666066183324807319234601774","11114436277367476546782926822374841187470345961268521727815065296999011483929"],["19295136279684616344438516247623315104802914704796151720281527462943446386466","7900788750783923322972311916502700850506924713657117990400411490272980507177"],["5379388175428361482353231621852291714385098269358867876193466891402220317657","11715403785298400886038228875692477474767887992166094463040130574702861022868"],["7180525920835122680122573503761234432178727561960578477801988194177075790393","26240415945544520902257861221385540911382917565892076506559601502911166354242"],["2759614769420466437319014939036653109177105720102375032104011614953166351832","591056237455341656742443132405640667458086401187941654684949326346105724701"],["13073060601546887387258931574378081904935015336036427864877502983854485006296","13974757043683524925445852702826993322276172129812038462365285838408433244922"],["12855587834415539382834308368628311547445680680318529888577087944936979490560","524678608531496393185928925863983033638410508560763914125531103129255362880"],["4988783670286856153661454495041361411633037516295167755745032216645818142789","5199616267479233272784845755902401695806658762741132343492330056206289957353"],["19119998381110689251562236034701585394798209691205140697659244118467674486489","19874376104633881127332764756774159634086943668044560625263996488436603137165"],["10091834070637189264347079101640757037455378885315798693212351936004506503428","1265379284714301300069091961720695779598815042240443562425117005138649865055"],["24084342696880087002387647251717328699776202790222965938653085028115965820819","26164042271448314634383465522867215833124120897742159929183370411653058570807"],["16233206741658191052028479358125543333081030197421560667691590830501855912674","62833609527291299473729655842337317222959008655989311521419143650069857451"],["1404162101876809279211288686033917789478913397911149774751056001965307492379","7937223622525885176235740435919652340411787417390748620470015849261566574403"],["28041594084792437986212411613663091449685867957574316567854393947282245957976","3246428165041808163367958423218934540245426459697377045527798569496731828992"],["11976871827757131014015278739564438461884232213806988369529221743776792547395","5420610992145920307277476314868127795535088989264238712174282816878552063841"],["25606614217077668854654225356678009878383492466500487257571015587941552411965","27211732263790572776091254346092711430046115416399435969436665264262955217939"],["2905249115575551583418583043854263329888159726370503942851211692471882871958","13647044212209117766501625405160622063772474187067386268498998411845243347742"],["5949108972851659220127757161116471798485215096786409279319922692688707478109","10877471042767374853167013755724324198698719032691712898498737071105211607316"],["4273135924572071717111914062830324938420093463079956384214936872729944113889","4874113864033798043541256415532649043656565683436948405519469102199527733011"],["7092123014687775255084634150983760545924070746613209520934993558038421873509","14952864210655071345494614257622647899546086747297469370893909866900324156111"],["4133004209292529222718813322354370600059626460126998487711019109056625244343","12465034414791582433158246849994810154368450711145386209040046624193084689362"],["14616672193595341104173246749642856788406914916843166322293291186051622888883","6905584283067668578463036627256714948362523965949713329308001431448946134123"],["3695750812894355047963163019514498554588481886320153399387916682993538744701","19679781663710747927510037942339155804682584711474111447420367042986286791326"],["2014762966693610109285781305415828328560374830543543345861305802573304960358","28800854235044675314112637371101656045253945568371759805699161210479452558108"],["24875596015874287840788732698280648510384181904579060767910043988431689522618","25091259944657613637509808801791151250823837578623446030070420366631247613163"],["15576767603009642791885033182659670133560276361380943717705953287632469074391","12886062402018823286815040813359350577569308882156537897949377913020440903385"],["16132694687778928593653092137824339668133343288870328091177345462527125986619","6539206317719108480599727769111043044748587119752158462321309308454175142408"],["10141470765615251134963649556737553891907614992591762189825215243498669347952","15133565872830265970522977485893269472495306096994539991664880773592445470015"],["9811725581281865462438276980391371220393008533641347398830826424525237104968","8231874977806485862895164973627890865607945494496629638033769985756272538785"],["28657317533685621267916252318999915700191509641723036316239249945705460481471","23553607344452261070383337427345391051240660737177399765824998047396840427906"],["14823156354875894267738188509386247786762649487526416861177866541450364607450","314999862589149395541366592756711263901576237968371812845286029881926779037"],["12725640111068185888115738939763357588659381376293159676560532010019394052472","23662510190860086620214184623865864939436768360458248101423045428746788689989"],["14393483637735329624916176791712276352100498481096645280894332660279181845324","21294950670584017075291385866291759783471281828726874918418521223139409743000"],["20530960201303942921155311489096326673295394500953296787569689824338499849366","28819666587734039425268674612541986255499297882008042533049024614325369862313"],["10395140151085126553270302077213267214528811774327222011439558257439891071260","14051422289496278678881854792354452202805963439174792971611899242664801337748"],["28021554973383047539685961225957549573147801671943586168737572735799943022460","19783138216057998678141414480263676449846600187508639264008870313301421633342"],["24917855096712416864485248513875908460800941506664519247251448832806978740161","9421051563358090158504378146612453468595993617500833741406517306470783628135"],["993118834422093022189955687206617956862028724292313338326217488302672340539","28602501366041968488374091929864760191159030556345847206958020226413137441250"],["6816693345913184861454178756291674157511971473899494655220596071711447773717","22071791001223999224844289343197361697073821001048083495428168511309750621377"],["15456401710225993694671001070929100250516818076781389893560326194488221993267","12795647917035857403459671017117808612382071349726947780710938263470815806449"],["19070190972051585292401293379178290644995965815511176622212877242782464484269","11231889189383223642069298553647735871006158557329190832263582537296938359540"],["10618925770799158980449759090066888040373262613715962616778354795569373026851","2871353174349847833874554876424843083679511937491855529141991801441182795527"],["18452690698224049821547130255775091036357715924384453185351564466118436687074","9395067420297271627163199507128765317063779706116448052934451755651404210227"],["27304896312584613981760915587133436188132701686970347852632465327483672469246","19615631096191445420474080151005825663604477670684365249329997281043571285796"],["28313591255430550379089500572491217316055792714450678822787509492616071107730","6716625399293136487879784206167098478799456569065389864938403215594015324038"],["11502546763615847233560393702939515979371754779892387907166541361444293780685","18554316493474813024217956809823081596322816536997502049473452003375154566696"],["16820181142751295481578960587415243136511321369779343173213666004471461052388","18077862668734119359350592720400918106917895552217096485003040307583614607450"],["21747390454293557352857529972827474647206176446771942273777151184303653784800","6318351018684169296619155490099904449784959269412698480684111747834896351191"],["26895636499115838345906847288542869169183352502309506187034363968719894111371","26637790307381763710693215519399320818819603373100926710526810353869020783303"],["6683269611464761439587610008075289861599409310914463122475626231610311789845","7074542821004537800415624626701370909195923148391900513715370671390274038778"],["20589878086534013613711390637304540621778978249561098388365523296022324426335","9763494758953363557592600459625799985440116475065731453344010771961010952988"],["9146220039555398033799296286957044420021357076395307323096004645412088543192","11398917366171262807273375002248267464109966695878150887420237623052054351195"],["792722061820712942879295425959883223974262642295874777499424554691537047296","18549366600777299295285005473556698411862770079071714440177794626462973585426"],["21293827084408113576004118089844606437298917550990228534818906171853339291793","589335843574225841073551964420046269652122746182639113397760721833222476705"],["27937527949068593827800665312047786801666559068615824137328197788594677342927","27543335604478500834575047318872497306862287376208976686228752938947386127900"],["27732207936779693584804413674339586923144408935183114539572920283308822954812","23838030053100793627874317680510714943389643995817760665005094620695034510107"],["4958857594156845771595858298671154425411572142706511980826224352653350548537","1180778678491125517319193392517898505537807104134689795731897891859693875927"],["121238471609396797354864129980759762245291218421113270275257403007982032930","945284053896778947911740982839521179506826724196513505854131583584235202600"],["16173948102725974169132200841649289270724983828421862403369224459514959145680","4235389648304773340272129153275045371302922922625979566258052600588283473846"],["25989571117372894008338272686549099585268988407172526950503894208359141841699","22742664249531818665169412747624802268852571630559310175063338390577102768535"],["27226941384546007474983617490339892644384228645792246634029681558414101764644","17555508708993083508179294215613500626666503763599316052657986988162950739418"],["26083362882408118934236566023852056199402295535986984559600721125596538905865","22439103307357222812593860590059722149375348549246815456423252900026123528317"],["4369321750967975589223238237947364995269389141303045703793247362345846929846","17629494850650193433705928437225858170028832239577807828171931146375770786914"],["28530257355163100404600023229428387229214360747541666970874498785833249198753","4695187028981435878321999361036907964368323499544522860319400181672111600090"],["15544017663782418897308764321965213741924754457884464934263306157749257211964","20996442602764654664637805824405996908380101559319762643434568977118717012783"],["11564545638014528928105367074039681745145304223202553721586373049277539825647","11335889718134967770683612335765048870036033022816559860804304257795420447736"],["19880525148433495098641552741738664059515310351017273489982347087153943519212","19983332079721259860961682121417432102357521572238209091495131791328471481809"],["28517927494310353913305752281901012038103183383742003125250274329851493994311","60215243533021026362294570498500981367135963713415302614883335643302875772"],["3323825118333158491749960791851120229677521438431871402789893492546031714449","26368531094533687411076277623695037186963363171547661282327181461224119193356"],["12925764685676776083327674152536871075283813320539638064143847813467855587411","26678632712460407436823101155461339047349766266861591918118717125874931639425"],["1946661500417378027028676269392705944162125587906552505116607526249115430015","8028796655757059308036127148365539808060906274265934272785799754696115398578"],["26044963005107266702483310835662424171454201699862245470293760848611988704829","18444033821457999475372050115095654789360350700163463580051783173706303708862"],["17261449628130627062789353497800827910787296264791776863241597139031149777188","17486884879779674282462291836377689406376701962106602797519633137858216984786"],["21810380334001800068350704929496768982323596101392050526926337831256292137577","591736091415893009104812356716777703106799565690295720575386316225766221057"],["14239598870410965427142069670926446384980118879876946535952369647136849609290","28331556110512067280464437045073150913465695917024892740374460089407495324894"],["14411170155303787814737081700270367934491039447578225692637092424763503400364","8334164255695487177467738097124434889270651561599581106646530118194845839897"],["20661268480305037964568201982024852573232532469235897173751467722424543201152","28671255796158016511993569900536256575560085328846581501964220245318346071915"],["7106023460671323955378513702530743772847796000772638899165327384984457328508","12243898568164571085205755374746075023645070643669989191293555990113098362990"],["10703137022159415138941012853882215119872626223724241056807816721578738080847","28159244456768729335433438164035174702025151067372846143296988754583135899173"],["6379040648501563211768770847852347193281834059140423035192134849039595357407","10469580527992891268933483408691295824074882944527965190967885020101732000370"],["693559648770099527823727934254379547392259994097045290017011311361188836589","12749940438563128675607359731700303388001075767288919924035599123104647403300"],["27276483852188111648118798313203809868219079423844290660818769218238681483855","27474348685587779242375941216300339148533684414584890479226770965867593334847"],["3239994197509810678335268183848221086809946540807592304142980968567433972584","2684975688060283230183408975696722119863061187424534588319524806468565521903"],["23395000015591121887756196591777571106551064142847134304948891455927045524953","20702462924289793796666198974212614485913236120627537571483458725948620937388"],["6213645399658314282026528248558185080622703716905687398372391430418918843788","6507454993008892832540923302665457850180866274441632600175747016886058547118"],["8563035391919657483638088869418556524779227676943886365558342674324345190769","2506119002516199365246196907967341777305542847029592784348881686050141010133"],["5162965985360713393730048824460427127522484986678306914112027826500364662820","28838862677992854000763553714295663819103607480062622249804663408147947331110"],["4065088025683642788656464312319717757418341067991602707666702028783414285385","5834271598345303157311757621122012168271680285670587777574470303029340575943"],["6426054532414653679107501248355868964004854610936353314723989798041306480751","18797651085209037039310523776060338358161702219183928458581297266103358372725"],["9698473474933125015953490806767115640244253801097693797236880341490478719017","8343739301584413146004980263120462229888396093053542652606143508816300303978"],["12373119294248253301735776491034528789902192759629112228827541380216541248486","10788027445373738138236254512471142562709394706650400343461607061417103196462"],["6012004823624819684952689432987665373602021637979862178333679836772868309938","25871902169249027027582488876627951355817417807985546086498613683969230985628"],["4775602890126717521896340279330303763158134513494715763534959595736708932344","9245811114934448106562386797007293736976980426306110350408524035859933425472"],["16962727649059941430418638388381080870163751023615461325014216271908933644366","9016025576049421491806523005690115161763099466834224609823863708717323895110"],["6733111214472107467544141050355766775918472730517972048474737703774735737133","247667586092581018726830377925619088447714455296055888854006115726052941339"],["12729321082303358639971475527795264587655578490690887851101917118786161265014","12352152390820194260437452859906443607932319605263288201106129610932065853840"],["12690895029605710959561141736425352687701640859926707050969482188246709658758","8213373962298262451062066478061166947034111390094663693583865290160033828779"],["17317320968315793273675060732102178534275211159512587809604623701620266668886","2659068812866384752327705951523335968491063514828147266997660155657512959387"],["23759822457100271689615769443749455971723059208495589192359933718622337145734","17582060280538929572703709983281049492343522570553219063434431825774744820706"],["16313810669428363772007913315220375611379409548510543828930848419107240205968","17215542515537364678541528552356648724769769197115709955135240141684806238523"],["18672317968463220304637694272882048784147894113605398675898736868871271999515","10408368567751696777116148404008551515703971423117904809185007525566698722394"],["22325354198945191749598796420071888063422057133407839027656973399310590746111","23667054572664925759449187877413157745689040262040063261735285863414295043914"],["20945397345397283260031708410490328133810549309508336393697928471629131196074","10753440371554521223698989221946117914828102699546825522758638517027283496429"],["11364742014513923276280400008330044570652367907081992225036533735531212762143","25108183976776959522118831374493075015394044122230591509759715619254816886798"],["19614451296542478030559795855481892048836950370263583928424332539450232751448","24145743844897914091313966979236128708791883603395748183730814775676783425513"],["1581486829969936978256829631475388924266245699642055304962847792221129732724","23824531802715310503430897203648384329196065774260263081300752546038049593592"],["12045985281631481125827153971005700181830435633825590919095730317938496088624","11883882974821148459322548395689187875864643210267711260469983185712229358098"],["5604289796777133805521680351415737712392610861258505686167148281156790254036","4898904434443698436153283313208701316768026805687423276557086741082042382521"],["4192871791835783440439399530398527832604225928661242522608466607908782980346","6551368868598012767599578340486539924925979628822153094420283917994678643038"],["11530506698624670771561851402847127645745803860975481938580110918600299951683","4521791467122575541337627207149479279494480583329743447720415641953237948528"],["21684617217499903000967331966103293249024356218800586571983529620077139715001","23122414070322637993168507190582315352819251349644233820692976019401704731099"],["5429766875635341198086861882525343057851177191580140826606532788742428560877","8454942793551070126758002534398895669603501021950490587130129879836092726126"],["19301827218917939182509847612099763918189656434448145809452657715657682673041","18152084624294481982841029897002744570309094217558267088325495322236212048182"],["14837907624376338661284597607509610725286649876460691182520762754875484168829","26300292923816951032201443676435165759220824029285568160104201536405946058886"],["7862621530374587956704079129125898833206497372806524230254463446178375057780","4088730054982061890741449017488302096348672943554237639437758640518626836093"],["27373915455224211976008061159693403182533238039779788696273491077548030831884","6283319960444836117709773564880907037584542669193976429962135205908759578766"],["2213930794948219537968373360667670873075753496038394670420509054389341667438","28829345616733019775127003676737802336174206826996251199399746771602478447527"],["28304601274780002991604311550438360376309297936772658142761382273003956359156","15043501898124356241221246637175076720349629287042724827339634454023590750202"],["24848928230861799250237869669827965177983773402970645016261516589829135036186","13803242185715055825682831053527540961860487176810528542051336351894794823143"],["22393614692030135209465561626422696237840304418939416221872062322091176550605","28669101127171753746537540889883657476509475552737738579346404502160758497795"],["16608483843188955261320536368842771427203595614532782483380778073110567123033","26368808585060709487679955707433926746471849743105873242495919661835183847873"],["12055990261645686377943249065876756654663584057914403950177163087016043085339","18838127216743677373063064390945868256929911587106629141360222696559649942500"],["16043592433368054722551203516583769421007681935224002211215789701289028716453","8800570437694697556451550470779216352956708843589115390140484890569342865209"],["27865936085186240701333394390139103235634882521022991178079773221699313800048","5370489980934064489953703023851388781317188810980656403104852324654163057375"],["22998675167970694439008650754954779303169381006213918704379528172178200304241","22737190430179258533475862326976215710398996766496162015861880729836578287243"],["12367456834143872396837303548892867849467964367003939295902216478632932886418","23797969388978411787490407366178390927249327453578218037097169831988034241419"],["20943200613487084698884631998610194324188145339456653001755078530623290851260","17529494853035260675242392139347163570918065976035045721231280990804801989467"],["1580029688356304224230880292667836471363658260102957238175379872509870828225","16238887082299982481044469657277724126961630450621763347702383530063719584642"],["5226445850399271366289546295629723049935787863005743836165121468058232809290","22405263607371680132026714049068593095287923562266200881938293313192496774800"],["28382193703213511035949676346447260678582945324012550359176400646483007129488","11963062090313553159585237180111411036587171480262235057989869656559770837410"],["6828238798159928749598469790158795013904286357712473913882793119186833940984","4544981650328902992553609574758568929651822672135044268735017988050153452336"],["24461882654928419130391764616381915426223556688037755452904831302750984642021","5545090540604079044373541654360728502186858360333851742040917338183242475283"],["6863274095579433796110817581521893773268813926395534531318935756508502372394","14842518398272005350185879844794183957079003134465632692057713977530465384168"],["10906232671215660136137984056929945424487308841522508254107237460249861702399","21521099400858560452385770974239338138845162521767586937088665501175936895157"],["4987947063976514646482213160469915018774471569521820484436940369356189312200","13138699958826046705900152407944659573441922235120257761013854276305749949036"],["14001290938401523912522684073845645123141287464277258411630792214661136097155","745859252125627639528564058287821720471085049425473240447760346259662901863"],["20209016303290015938047506022082947982200351088378864792108838068691096923658","21592372174197750130478785206068657828402206274831477220422614693569705390422"],["10079012931565762130222196520045121261538627054155903224796192099905192791100","28520289212169767974458633660476855101985915086052745652227581925566797573572"],["3882233844882482124190153130759213479273226609565738421243853665728479459753","18262830198333860340744436786911253969085388153750260931328163473580546978513"],["24837567367576304798297286225913844220349499689721465520178014991328040473774","25980645520688363980293719867092288171754850817260903637654414441685183058954"],["28115228366409368891368142404630778060080634357032453517216605259931086854050","436422313374392168712632057901440218239698372513284694145905738706532406893"],["18094994753428786313660702185285995569313438948243405031273833538374851578058","27621251611652670445663942059785505440165219903448723696567341892121822086610"],["24511188986256024949611810062373125483027874246886689917963008568444129249797","18654581833799934242651830405322778111648620240978370823639174436134477107680"],["30377280336835619598338488786632873995834462988526552803750103066874792080","17588490717396262880923199868818536168424595147294893283813524400286556579474"],["24082096486660755855323286830944109004346888595624600970813773705654154404195","18866554647759233090006612085171288674346096785105110565134671507560931532090"],["23229549284504209786957546247760667065674059023902999486864541470715717465631","14135256224098142488037642915530980967160457495354637012285027649023274010600"],["23606638669833966270399129300362647083348627408663541136047736037156529841246","28782638044107086612386047734008201256251130472760483297110546980624518348716"],["8978713506627725233084675607455831003618722606969182845442120207397361152791","28773560662772184070102806234788738096777263576800569266297473721919940726181"],["5015419119274867738427643449562445788952933547617330656389040983350429128481","3882421974566767002971339605276929819751242691123849977865724582877973978212"],["19835885421011343705254189840079017973740678602080036501017003980548933547137","25831652804016080539447959290920067699681936816711461004637092231153060917030"],["21925584928983840611675882266857652927036068679613872398678290348503532793246","26583410474127900399854409915068679449664010159497008887384947056892069665514"],["21802824667369467461876013302088921956210304781310363862957810926443820443226","16135312222933834677617840194741835947534325165457268844827019882295095831192"],["18563602114552541314442011179206371182042976713099080029411213777782980642984","28409802473033711324448662771106256849398935330676366485099887829282931249095"],["15634758255561562858677242152372855401656794493389870207931524942888329126852","4956425433004790417903040105860681042711354716873275930193758899421801718253"],["18725350421017373189233956120227119894272701791194967298191728932906891883797","14576452763972815664046110437724451649312742037401948279065617384163048117901"],["21660851048109204215680764696755784247013270935518880275745519290041220452590","5924813881511528208078708924426346036476594303544411437148752532096955791497"],["22242155087529310018050188422532485296444865071697130127773985921290950274179","1936607303498451689939343139416527573159856715974340545633589226411992359456"],["23709606507389748460111474908764258144859066420593524316093867962226122138022","13962482605274746204358613468441207610386543179202690593069985067516892773419"],["5662269547705382919845217765076850871981592260851397882973407522218054538738","26469800273943790222413528098071500519529862789200074055021462546420479077499"],["25826763928586496621379540538711188872673013086378352970934972962339445497253","22493738304388217639961622438911320604451278127505739689326104170052118359095"],["9595229169986702174534340716665660958089883899217228873832638324890294740188","18811550196815889359110646211701104692952698584131366033123358882374687179153"],["1777892176163276509340377041904567719245768824741793944718690707369089383982","4301590998534185506731019826680692331831394547405215621924943797493745870743"],["19747507253189513360528944860278210605682386404060071462385790140297071802604","25499263349256393898143206682599090059609261763452774203803225744776884883036"],["18294060295455842386079871660073978173951506786134950586877665989234738182348","14291818608219607933672283499068398254241890217032340364883384765207329167748"],["1951373482629806485345457025743460575760331487962501716048296335445436807394","7372355385825068685132339820430846187379313042723331955933474484733698544590"],["10299272383027000309079172915481605667881417408877017915833540264070035126252","23845174400616935178781950473402731763458154348437531872224882323066413899286"],["21093710855728712892136870569260687760167004079990714707674324249571184683124","10538651187335597154478998456610688163414479520983355358466100538163530730044"],["6998562021027256861317584524090461032242949801359925545773578310742047889647","3086792897486604721031386795892932512207824293298510475642677117455929234876"],["1062357873882609438001998073323254325903087193112976534273015192657294183704","11413702653368427395877655226468413300434998377098491373405838178951278081530"],["11392297344600944008718709290431429506091593920015475619625787201307988104159","27033221417140888711918206337995499665636437830776303433242763511408114657741"],["19175456129668338965014271915816200268733458961495208816198847167528925330919","6676574395088551771814168770254321226990600168277286955954776221484240107213"],["6451271134752794227249495352402750119516480590416066272046355000528943379816","3561513971317188912071108520334039835874391043780623847095783613929068631054"],["18310394387479060829756519361619736014762213953587249332441312260533215058395","1941130338443983322227964057023606660714681561437894157681990539984688464005"],["26192423225384864725489730475017646072009432859445627361001665573350851483307","9940129607124228627722835148239886770700012074919862954036440814876259301446"],["23852151260096443637341419979945432652690271059021877166922391785202711000327","22300147720242391635958401344875446144188990832026073498941671481656635561678"],["12768888120786685378512074223272767598611772054424536743370272232169281927682","2556823166201363008342129745031266896032249900492921176118966785933821160587"],["23617266827186059125295946336557171325743286393810372693617581233113447125585","27533922443539120906777149110179392516253108751646291821974337243551942194161"],["1966895437795703437835041878140681391787296716263082807960324408050856605029","11030685659004543143935642640556290734101931695109280500692976614236494471289"],["4078067136648290087954662597254310791325792931778285752446978923524744325945","15279541371545857964030021130658784226218234004856158770460756177873067317521"],["5779091472551668878593033261391828790557307293884136213294412034091453872849","27166107605956598134100738090024745753636817614319162215763465045635131732266"],["25200572172665478181649798977539402780825127740640254466813370518765776107566","7324154084108790643815119984627595770365519245157584766598063751603001724661"],["5280954130772100580289361417367044440668444835095323529043029648453296877131","28448069036295849480873180534170387528764499461792333932866662302961746898947"],["5229734740750458122881034939665522569903769333170009772024140679209247636385","14404871965240661052139863873892537573729510259988984940412376785434924159336"],["971851269435562306375606872532142256564855333043349760169945552356669542004","22365997739910597082774557405306725891180931186140259314233424547161717250500"],["7377774835072578071651257787762377723627996449849190530428681931276813602222","24057286602619071083778553521179420952370267973661796401131551981702987066649"],["23939795987754176604627465143561172614717338869373423524412233139520289245070","2841489671426214975037672539704665582025387713712392854784223517542792884763"],["1348959965888772021654201203912003688740073937235296622022418851725342557601","14694839157216016182248940974878866609109026086345097053514759989688509517854"],["747178974211763558072918430707250548558386100743765792934094621579693962711","5411460144360940775195108992135497358349193822043320801488909039193178260319"],["12602163971266852074569348072216543876508355659920160437441409756836380378425","17245267313344820248018848572379156828785207963314617141593369062821084026304"],["13282325918515053377841865071143136335255821822986326844578644328540569511060","10147971345789803526735716507883958848585078830187728676704002334342362304472"],["14972850233962689438836909795730863789069333724945684195398266290466588797052","20781786435741840602276467212190626871372759351727912882756985114117372341068"],["17966311172445368152329704106445788191248611695069800647088779032863972790009","23632909935673793525964419452624348152408186123460545636880958458094345703854"],["13114234666309081919595274540589255179683746107624872721734711718019305585421","5440368716666602254762381494094509058338948533022663525838699275300453896000"],["7302661289874214738587161456032592090779886710553260851544848007035726982586","16464888669467934336903292752611555225662241183762579076069574949045243388496"],["22310843895265010830157128619625254249907939523457102824127237362685500399581","16687688582026749871478283714901121243939241934858472709391929183051659230604"],["13628813376758528065193767024955646128953561488857129127550500127257578469649","21469286785506981929939365204499303793374499005408381295276201633989939196858"],["19291174882272024198225422000644475266486634975734294921417025107277402770388","26667627870230185715186740817281897607800514014798256362062840108113664079534"],["7629212919412387253052784211762855799205985527576278536141060046710636764709","5976295074077244170234572073449483750978756502853281071321211842527195460378"],["16926472595479876461547474897047675625719415219015162772200561977735249441895","3310284189896340080101828050684291423755382454921912944783810096529093076923"],["20117386403662955034917404336089419433696684366503412027448101168697291607702","27842612939405776896692953597067734104512177406728660442009785642074527867691"],["26145385379158813334439320021814995763059068699795874523281476816903791268576","18977169489603573886946683383700357302550048920606534784168305751228922094470"],["8098264419613899815999784875153231398910016492494659288377069255487677475782","23526155264643030873687045696867348208280754615051497291610662527109713487737"],["27462184433077652087934200992710803491646270085920224062885404064591627855568","26501423601019198831364714630497663221500996645619415190781887626897850422310"],["24668919717962584598190940413600105873244402232336467657757190621443498223474","7659142759672397451243408534092060673587255316431262084422917887995600303747"],["20637762525038844200698294697683085543476791915810344952763307710551775076014","10781793125487344326761353161778503784959675879778065045903836386942377929513"],["26154615610970227381885304448256848534670993012414798358956588014705251208392","14432393348795422487066185455548843750470052796017788318543134896510046670444"],["27692596477006119222188135517388713784170332189581830090745628204410158615141","4805052499732752049383692073335270389617238418238812429381576937837948896013"],["18681262657726467451413815178417649715439223319155604967107751626257275669870","22531682250259565172718677259551552032745426184415793049124959536021780249974"],["13676807382793163413322408170343955652989588820955573102508955534534491111839","17100755314699060914794692660900220371378926841697270585411164102124680166002"],["21116954816279690795793250144983702921573688424090350127295440546335485945560","4444336466228768578501570844556127246511115908668686514937010591292350342490"],["250968716370571175445241698392019580788848878308645985811606321035264807922","5945031582606900837151235690443026399253368541082191164285512822189022415128"],["15330899708775966269399659555196204777992694654032415449834688373698725008858","6474462711835941282074802618202695658619024310996008608067556424896395152218"],["8555290641208562934895232403982187437120152144931647885585067877672288662186","5252094921982371035303367872930684176375471184240481458590869020333302315523"],["20012737656421869530282762938483131980202263033288818633082285767307985909731","26148064334998778399293747038845879783217504072327726123319822604694478256951"],["22674415012656490290823725305101522961342224830548436299373429170879022694383","22376787068410204121369785973301941893848396310655031232073780666216094030282"],["13451928193169992489847085297282901424706212203863526199029424881111176296988","24067882740571545982554487865505389383136963274527559967376667262310133992613"],["14622295660126749567914297132876969700664244674009578757291000299955062828672","12025220356186294540094478816470204762102799922172187921672135367678323475770"],["5351761892706004033973423653760352148074886986529264146805388027132504377120","12187236804190680022497601356906284108532142496173268748058589594675984175510"],["24405671977576292765295941452579479911832097987446525657185454123456094911101","18130153312727647117285797859765582612342596454331510876338280656216550036406"],["23501693836678181102587546616128770176970703821544542376392104963277873379403","6683667116240389431742994584753619474247194348215328239074086073055831878446"],["6340043601343984525507989528186091763432764267325221977551442235202110065921","24704473279940329465597962793863608456363222230347248400939537122285316947096"],["20537893840296341297709001903094413809755600764678912341050986601605066198527","2686239352028450185167832759601430453393962573095650430763103348406885782771"],["1081276676030109004772549413779852487196457696659420234043808815249724826243","22929553580746044588148530822189239387138384965195842755480710983767405829562"],["24646950573765503944555268079355940212345243048981533306758241166962541292285","1689874223263845558892163243722530026960006709914089236416997326800725425760"],["28514553823628882228700298644559165542582799104933676999489544559433557852580","2983048952659286871128004256413066093722349189594978553110297980809684557228"],["15353622366546572819060368528958864637009392516540125597366100105086276654485","21256166519163415550145710145942017765207330915847044809344897220709592695755"],["17409694463775410469389846706196534056601896890923630874559927571906782226728","11333845747256128306084802804579758882338221331899558826229495216602594030205"],["7936484949591696645601160953751477677276646924232949474639455456129016868566","19720953528350749840102192385513132029781387249047802543597560301619145657738"],["4938741900316455848996094288784729605052901112868641221165120773316999789679","20023068473924091019312272550395995535603857187918592552104385663556691246999"],["26775547201365162950247377807556853795748062311687632722749611272628622910405","12086007249305523351994483370298087202874355265469482776671918671723458757147"],["24063896697939170982590472170652711937862552902405036907300091969954725449666","12204693837557273467981812274561401156850466557078888129121724285611425933576"],["16727026802858908807715541941317794671478970555054168067930672779152327905272","23025017560215203788542545826195134364129274190439567339335275241266257723678"],["23417105292320047303879946002211146168429773542787949136049148137222452533922","18723136409599237639284554067734350955748997870002159465906943143679655692008"],["14280009350942556565840489577442590601576646808823080352518977728056813564468","24678143052375534070927190525533932590709283707004196923245370709219995581617"],["8012080925374485599055141420505083463404578399027986188660258380084102254798","20289787853591742171145679241231275398051535164793728763698504886883376054808"],["18572524168556879629557256149912023619985243696797529181212039858715758150648","11110845544157284540503587354991526589028171300754977040310428249877336396607"],["20787058321281076897806650538637172777290167813972370882088302835383982856931","24960143605563338669493862501224107152683349248466484414579348196637786054415"],["6698660451806119470634629542025142969064475014990566900621709597252458776161","28911081425792895570189179321477625651230423786240288421117437069072447215340"],["133119302422192838211780538630717520964404683834014129329731671863779675503","6686824443883940963500396809705615656563799642618735450734493987226436830129"],["10078984600577995077540539447950614943492505670228878029142057068279065038377","10990450318599207316465883186487580249148478024931928065401134354496991311752"],["22944586054591818298275167318391036336191457894723720779231319295595450389108","9324860474223125503056568366765789247870179346302482420571089809031399575041"],["4339553403946065288892542548495735929350557680986716409157287529435149516363","25777433306983623945025306241548863065907919555077684953659753316878084051496"],["9071065320504797087336962755356948485301281699715499672866349510990216202795","15808595566876527521130842784883556364587476666652277302827937107166833175990"],["6145567561367666211139174575404363574229330611157791831470211406039519999038","145662195835941029418735150446582403513437219321413638834957948905231907525"],["27753928055703267113226544530564022200648480533563476034900772875429044895509","23645924664862065934935861335752329587018674649750733550421121374594800344988"],["11159495072017826536780269379418071112804585625699434354831754891264087734725","19245067674570041826948767139379217660129102140815816915291528078171016745392"],["17364428163461754818613215661389285604344296253777944058765338182906867327940","5130199829284527130599013832475740182754977706762354481280176856805199893898"],["13469378749812609454259299646832329513235761265556300633992689516401040718083","26009415343964692890136576700478073876345055368856854425787351396758541994794"],["26996893030092225974701815791504642240208523272409355609636828754122467008031","18208293017751727696728451008716808736549121534271611742342228214633475477737"],["5544686866374352872386931597643043328038781924856383877670117951798789097493","4644911697938450168452723788426899489120664448556399834818118103721651953024"],["121894188925248956735042000096838840441761159570679499145213485310466962918","597818561051804003581246872937368000794203757349201907234258295550395730103"],["1674640459784830953505135585732163310260795191147817416784102484862914459842","19427838296598772087988243921090898558950242925031913606200246248907005824808"],["849120089588821721742068843966245701900711322839298496141470663147968878628","10103541618829194446501872050062192528299327928931397786380774991973189710460"],["14391794645896887348032540775522240682964853561393281173665987695867472377162","18113693750260272498172726968913809208478301208513586781138461467834110946423"],["9155543621351617350593010124871241377986444218369018429683500979787496577087","23268047578459083716410159387281951139509097525720858043864934109354432378305"],["13124284367685706230095595418260917585630442787589848364637044380128900980135","12948064753477497131103266551523334279975537026823215067450488298607771013918"],["28289888612738294958780749076491988535270653814994847994426161608175721107428","10963139548772530518928333096110989515838901432607052409498886066086806011429"],["346511177469229854715457118835027042173999060579308098324483833082593290127","6835351931682893329274575669565573126647610910432437184397955881559504376672"],["1754047419606421163773103777222431083856297535927870654869718755029802871874","7984684374873775718952087619851691828713496551125896472611470863143007043746"],["8020308044619375313367058748083678063935425355076341294234067120499591311479","2958765350126755257531890874389143147088537523481929728597674499707229148880"],["25014063579051623430515113569210761790833474201265251711867293966767449388770","1610138445878687446487063451544326731273804128399097497500551198494866118519"],["16040273529189561035518261330995438536355980523317589950555701184143607908315","28689108835798236876005713598432088945611650185847891704280181734054645706723"],["25699080764985207219174967376183527407878604768985384285912897722604913639881","9992374926149847976233726104364548292551380496424754738993679712100103932058"],["23434306250470667196281640652811043222360724887286175789374098858106958904166","22743696511958351217636605309265336228400107069961459549686193127619179712432"],["15812907324389545603329864783807746146231025130390337964713336545491056281261","2551659808531515990687988635795907069462721482574745585457047333356683644127"],["13249384309343796110776966001538250254843859542021290025525674303103266508486","7168812634479627895547875512931501482200171754081323102745500589617688062542"],["8876702367375871816010921689418301731698165037672797826385487033179729683103","19491729403459689219843482617566205201407498676068294908459232603170780341246"],["3083160896885687205131991028811105648581304197424075468338552439604539316750","3616897981523098560904165531642100609922566165496207653900059148029288874385"],["8067000801499314171097601388909824678162227674221681937803718730921346316389","12903520370786301752385436036724396453913705514876727522651565809948006324373"],["3411426238673788248056032484668580510805639443345666378826787093407323895913","23102689484981183069445836355955016840356743134867223579552147612524319604218"],["8941000829080295450368947164732182278881567671693344777357817141485709419733","12864719810805665089091449332627200860583484280020184549852562696054853149515"],["18442719934715328683603736848624551806730744710117541143240104117277754930020","22745163994474552434078774612247178394985050951235723086371684969977075943119"],["18702599103846899857043244172811603075110381806146326261818509291835257454659","14929401828433579187227552694604545271526975095681151490643415211784377578028"],["10709769139116173801069461161197969448772875674119125869385090297682746708646","14987689473154707917564992661183339026464414662193039032311337056688194105976"],["19837028535147452688146650820582263411987621936810801885977925370333810684385","19976290668838207694476271250778661819495203162465495525364659326378966552592"],["3717697351583772366630335925163461280039726843106492175468873600182796564723","17974411146416202732904181076400039463237104125282004265846619885115996599679"],["10091884496000191906558658139835627915139141251471061935015536259610056957182","12405482573056833327468368154994716518050243716461742010530630930824798981868"],["1642228239933203796522157500227830915106277378795754587483337440810704421387","27398775771614782769414893558341828989680978138001231810173736157403060935666"],["2959668246985803288333209687434915772523662432165549077937370842357273432672","27023278288715893821178854232495868452162966506332612633461666834886521087493"],["27059437125913612125648351043937785411737862002311109176605140942786695903865","27146448715150758702329550629844419030485397324914488218918618873619144851199"],["6861200187671223033518233384998133216883124898887830952114357461398470918016","5096317079334463452459289578952659902402935015638995651318528961572587943263"],["24510823858806903680142245658088402994454533586942183441949903077090062672866","18780474554273816566066248489112421410309266604545901283671025976780339344645"],["23644483448870885765429509106269443422159090044334973225583886723536530379601","28057179616693284759640847690609678556403200229905761621329600079512068022777"],["20912560939453806399936842335799014555258925902894659908192894162948669656275","15355975702374935156091564958868184079698406577061920908517767457991393983967"],["10890476379484000944347662421887981050269243495863866978087256284150290504809","7451734990150268818319337791328133151723124871890518478321619598937810317520"],["14790060212012321495576942934629571396945934637646419203075432533093093177048","10308431557644319701944477126358797683169843839950231797497926717829795493467"],["21817644787739905593759256926174776816515489205308185870445568258097768412115","26411804969076777473573107547740834307313502520102393820791270798767297106879"],["23206584446394549298046147245440071540713701247127254942940109884664239718040","7164391097356544767977214997687819728576516563900940852096972470123861125534"],["12947695269068937100946237385081655034609645325740026157096559091180008621070","11220975665371402610709981993377477842045259121266518665421578407157693144759"],["119607017732743404024887131435015789457981255005677414688921466994841069236","12050496748503827240459367525844659828589369117011294739991245504274957549058"],["11938446196860250114231663292240035494932215652093422034954946283434010911632","14213739490876015839027279753570057309321850369452100131165284068845187894211"],["1326460715906242896946276405608865684435417219871625834157896186255879851884","10508469551488748926966021170426859925579080184649935487578624907273753918413"],["5425961035889129650968291336267346393640266650015609389248075154692471096034","2964366278501884535773732171769639851912320727278226321141796079068905309649"],["15606152715261832939876067461569829231957610160447872173423053576845474902264","8805496766185267971634604235065494221899512410419172063589285819907236283791"],["21900789071276546192236414519727234565361717739940342650239215028688732611944","12530854377689293545344988627864968695767145451845354864880965308266377895495"],["16858574390713622561162960608888760425897004814286798523326733926436049994763","8327800511239081949853693054324304562637454235168363078020996515316041805344"],["16730755832850703558360264053023673379716831790145274233756238089412893433678","23435262710378685736437819244841273197802862319754867646457210034680014552279"],["12782618755327223833721489161161946181123481969790795156574503662402271960322","14877193069579793325031842463634360423975845698449253569297379338248286500387"],["24633649223267188283133162920722405423865944129928240899416974397047025579976","14856503722400931548293462337834898675850646978578653113465467928405952900959"],["18754073076850506348114107499428605101553402920410053337768451246455127341128","13254773578991333659525220948963306957109114661495996129797749486637369370964"],["13178138381332196676419746309570303119290109359382175316903854113108979244820","16781495314046795703157281673416258937835140745107153245081767300994878817851"],["23579661724326909048525603530394740308137326898629335244965535486454074476270","14915592254132375536014795639068406148936775838851012970457707791341749358464"],["15627496293091774743448428283423531996734776949225365588069695958759675209766","22252052108972375925115796828974879555204362393041446519826559246824123258913"],["24145078275125617086212486841362709372317066044452765756124828931150594373313","6239604116672885235904460178585419985406651928812341164449156559797845651003"],["2694918136093642958611148280314490585884123955127382369201932460800720482335","6863091106392424294247964412414399381739050470725258704373877389304800724333"],["401493194295463079119031237936295773016843900451809296096014053578400094566","9931771635241834338215812036307371011236539243651030001974386112578268539547"],["26226957428440869531679607484860094457712356660372558695556432311898387708672","18255670398832118781478034622471333143648093501828336736734423014736428322230"],["28911385131337590693921833283813820564189423209969936670603858972297312178232","18565895637693950700359267067603137138315515977079877708101166608558814669626"],["7444416127092991365951653724224937962603165836707427374385070413147112333255","1270480264377785306209903244435929490620830085314987905946904255456034435283"],["21736723666826965768861628068000181058859904478117386840243555939624885092509","19830658715940116450023779806382297783033241034338811777111422181862139087494"],["18973781455107897698820873200749905912025391805890621108789146576924018056424","5225421820966522674788904187776879303218410971084451308844386889426566974388"],["26939097306851046323966707992035193392437060147878628501310451577955930272285","12109558420132836442907425993733728242906752903770066210018014978787361867169"],["8072498115762203676584307716911308809771986357403021160379745749663871261111","1434854869674854193454644546956275922080497146238724672726601943389376797036"],["22429949849023006910715513810549979512163524201301785454448272419844691710555","26457877851357742889856332359692253159074822666356178440718481454527686436597"],["28796178554821676602706397343118762103399337270565661711703281837890922373159","904694499411501008997329484618395104889766859558981848142533783652887290184"],["28947289422000092712042340011313632788008440443016743756331974338130361957557","7901238518769484465910996269969210277356490184141922777881384737000243777992"],["24735841890653625411064296786205828489633218762585493620018035858232909940087","28361159565249965052399299480227726626075679469797628168903105517845667106494"],["20734857142665191958033921519689355029493114941876181737553035428237269091116","7460225731130027722907322455938672946273531139238792902878336190529574175103"],["22877122022383466053058977189853432243663265339374598357296371327708241067049","23030374379533862900756704421917669270052779989077740614320075632092096438710"],["2234743838480296067263699086401045203067145856793125201068456400522806402401","598979900107759127796145761159591741831145254663199308718110545107155258495"],["12361642147762449818458262692019365520202904914314980718214643758758074206533","12542143447109958145444810458295019642751929623839891728869008188649353073286"],["2621477999112611556208344736477612743899942395203222959248516640354017716552","636770350772189969968492071274492102154641424825912449941250731487677434412"],["10058164800050466058147885950957371743744695546283089977937159160928017923025","4764912247694026667687820641297658363795241391047305965626577030158855984684"],["11708213570581337826524398939745355084944489775626737452219613038302238987031","24393037371948638489121806388877950824461667621776125261457395066285481784910"],["18998333463928529678736104623851944806727009124870300354768682690449481166307","11747069380631908159046561628509238794056375419745985585335563576837882919801"],["1299447220501728025394471221564005470800743132329176059077767914893138815558","5230416418792469743371046389347202501730278156093076675483566618542604322298"],["7402617610429724132241874159896927061505835093471799964056232555237018855819","5025797978227585990114108362154766922536790414398383549525713749072277372781"],["13094868571060363322203798897823758976839472138253327692832224329458853930529","6475387588882750471962940179372490317914261423765640125296082247913781180793"],["14094401146554864984242948590498775404660004087770957089679239190128756583741","2653317348251866521982069874893054529998908533830292213724884566229568324549"],["23094043236509194594730469117994348524100853272504986785798222462518648836323","18672594907600779677113783072499066626389979417581178578227212552659072944704"],["23722208996528688417693567849246606450379252431365528871256969345508248638976","7284657187429526788546247573760975522210404900786906506253496151226491822077"],["24488223897496919869101798534713171280395217205533740503583668109087862230658","15927383652012728738202862582087216544862001102976700523275897452302814856306"],["527169704795765096742764441088865374305422712551466907856842165089489618424","9277533810665334935808114522700863494857509809441962677812910065169435680129"],["16450886380663278654235104972002649518059209899416394094977398342312770664102","22581409854227380179035722027723361953185884717627457579124693630772649684071"],["7434712105416909750529941585977029811447388785284380839027424847736685238798","14174246842770836459824099370868518703314098019837670045159261283297177364501"],["28375514904850376137421729982706569045162073986447009730909553120761912798151","8311949194619390785649766268778462362031194858687599031309694185619468401841"],["19550624992157659018727119570451270335284122126290798853486607757480865963002","2362300021904813713107536891806137252183030152427571673867829441175871052911"],["733704076036362376812660807413170851451922912746669704764800608204353263326","2545665013051304987398442006381829658649301424774486151483522443290880055606"],["21697907135462908920875616143749747081895316313475023885587024089236874621297","24818918873796359976409928392849301124290762578041593080403823937573466924043"],["28087477919084729010793496565003849221178063051150793949593616191311191908985","20386897136932515706843580064113483423416229196952901595155519473838003104272"],["25971428041481609252257827543652031520011354119187040613233194539181408653595","21642107232429563547515367711006092386078580143707197751287780294053477804302"],["8287247200265863582442162187834009806032724792273975927084258161077767553456","28774226111977045521516891824055342456578194250954708346776190173170927230955"],["14449623691652955919729798776350043576163390326871078117785647406910178084944","14675236189779918638834741601853449121779824091300618811630660832596603118561"],["2065175970627801958012976537952464005607139398045978935573722044301296263877","27888706009481738489252368772976589818812962169282020867128323218334909090523"],["2371003575383551909308070734176382662595125261036484418104790586031618950653","7689641132294330650896392616281285870901850591377148325255107387202799472211"],["14654618854502475418053860602562943811247052331654690159249804633719636822826","23078662168810396304970113118089087045808727873328660569376698805792472890475"],["14310539216746703751441376984803766329340026424291652254767009578688879953902","14403912894317322787746512372644688422274970473526414986395171572536068962107"],["12032250223404702456756317187951851117001633185286026968003224205341444557091","3766588523041764005509960092109134586273194159402301995021860470619785453936"],["7671791271209489843346899463189642260987058428213774216468447037153969581994","27337635218917413145830983922653762833899815464668453352485948348644187287731"],["28608145096645245643188912445336451834044912450488225898746164403374439439893","13023009473039210530747543815658146516806411874709846796888403852925569291267"],["4752978546903584369068169382759152861837182394096617504313868677136039671045","28381559988796684055568090547131209057821673196980644127291215481773329333646"],["28261094307389624208227976282514675284194744697787146494466092724806743845703","25516104503018502677629490800625627022289890474964784064314596433560783833586"],["8859018530932048566332994826343713210278724516768087485580587932598293043004","332736364408517342499499715479267370814703155081509602794188368966475446937"],["7033280087972349487353412818230029876462222162856056833560305130124377473545","13230779638517170808934171048000811446996607643193582104102955588673135525399"],["2618026209636921194812153150685109613849662769369057324338524668760776624235","16168794555253337830926314022509288782587991102479448189629160014190848099370"],["12527954938856062350696524207014800532456274281103758224374882452398909828123","1183767208752830546172668914785239743471707472124037327639916035291236803440"],["26022414428902824589284776650886997428989814739576893292915166993667602755205","9668457915356405141167700342114107767146942992937014386117274307903866866905"],["8575736958686823965352129420366898548919932951195835684131463039885529069291","18629443877676627782147596066779895430535191707987636818722107675286295367322"],["25579306384557493116636856598775686721933517332377911367186753966585571967415","25081326174595284180660353887234280204111125200622436089245084511868890469896"],["9407113437781121203161551748919833902978943610804775923651897552689568073675","7805046900492124025093919368524225694799630499938500463837847172995873602591"],["9403425987807631189350323807318031577936640357477321079255794224291661478438","6233723425112059180776088475974213176769310670261079550555826660935355133457"],["4289363026253168578671164234135928611960358338984299294923793351882739959730","7384360927648970305382034117516953500103675054942740103929914503939219325720"],["5423888321196321393382844719161482738074180984069910186184416352457181014408","6497992128584203835369217058213925536355394885557463166741152121830083494594"],["24978730259045442481806118223175759946148310652611989348438018678313054132603","20582571012646269798626126048960359598272895247944026012844280959245688348299"],["21747633757276910702277085889065073667345585011538880869607586524822546478116","17914407816375962958758031714556977731644941002051263928421261044121758042018"],["25742047350191259241140873761478403723859484741801718967203141309772646418216","6325884320072150243820439706273503981042242539946632125540886163899723717575"],["21473687746632690767605464797750803581100639718026892533148839956491300601412","17110243966657428040530173537585601456686171498246100951406177176295717465959"],["5021528487949354603042549976843770197082462125805277114187140875647297941453","8116054729709586089789810011307104050829821069129636159822045415059070044327"],["28808035749625194940661597144992305619937752646714789287495006772542775401688","13746526311278216668561742642936226698401529410937018230531019255164560326309"],["3049120541577852301263450596175847997236021277704024569265265239675091496922","16650371891992197470254853725019170945769129242215402261247905899880915843164"],["13802942250384419901492310027085892743450277255123896322705827933776165932023","728604866992097330804936131742271795547856657996939783841188180175828228244"],["15024512736496589388087316732855681592819891665064517068792102447392980420865","19863511349394480922241783846156804017208195526840912856358466793781719967594"],["20570983567108860126401565505373854844489275738516803496414076379128088351822","9329521042782604115229913317135229457622048801543982158421714918632593291516"],["21306342246124291310053780133555279000736444011455108816746204481276013017586","24129603205758908109232088396031015842172917327901838877453040619161383964203"],["21545079723238922260867672232164459940166458243281620528514544232536509152145","23635980364719152852933186233632268191965398967906337099924185848023889335992"],["5199790960458639639430948928606054210926858897653593858821562385252653145150","24992527887570685415900097649273118563752706779547904141765648001603055073891"],["9360309020397028662837547084350863750561575530796172050992746942068722816436","26703883061700656107069243070877996047736339696258901530488991309049735971103"],["11759477748563797723986809229924240013178779928161931722297610681387712682254","22824450060193155593816779328181857948349843562238924234015065480699022545705"],["17007168071804195718700090154598088167150558893466852987176901345306881471436","9071353069051705804390073290030746726902712977208429809944546739101941756469"],["5246002178099778309034340271645038277096337745537440227473490439983536837938","20431933489693960017385790818584518793145208231302086294133844899555810439263"],["6127695851558009567390235598702324577812147493824627805443560512674864684583","4511616462271283615862125705823832461321060655540249001104385584859193152715"],["2895480153978391509412202811641520340248465955061446780712736659931667234841","13570931431349449869989234993227856622585486360095592882095673100210127879491"],["23700725395904925728438782601854153282710985257908530859247557535974802577912","24305801214576988658637383791574224738085003745607874559117403831656642879004"],["11257626853102739879620696068212087657748262994293111472436194697482778256911","15629796040097570721258650852782314775451154613101316637751834591575123012709"],["5972886176625511158445702459169556583803933218866384166045968284719187963306","12660717755948247955585468520627553022003292690267371973497525251139475619535"],["8173507319645765148605265533982149915074378177084347043687084503750760060323","2033838720358310449747031796313398770853357737477493924035068531821145694011"],["4256345652665213490437019154585358277919483574836051326308244020549102782212","15137974453226760848491172294375278802345791155773864270421862534399634522632"],["23476525731182361312171924137769153759173710384926547764149722934267661444873","20004509340850943829627666250782034314113390981619362891964137983161099086131"],["16083425696282009263414401306523371974277984097199245433993226251288204326398","6304350605156863884279621614595856734483068153532873030890922577638317861012"],["15725415700840024008816590827990963116120685235349813714472377856530473125773","324880446241695558068422783496662570598623210418390011003703342019477998919"],["3329113904189182271271145515936848587887888777921327866484285514838538578155","10403759687243884169714023105257462158861617401029499488357745876976098746055"],["9547674432903985707424831092198525156150532375602592849261754049056460580088","2530057358764949718043945980058774395688106513272771453636330623382081126031"],["3399199602071006829904743897263214175125753255924843465875753925464681745219","12723253221193438805054676460507769383803338265060678903869294738260670913322"],["13279855913241273494568118108294331380654178886364457431730609043683741511077","22514224447194951216917712584473261833557775471519996628293407148256324385709"],["1183794567701151100736689525447594693968730043791536335237778913092027188344","17425880192560701150544392426226517393369632698201688504177030241827010994303"],["23146791295976505882180220184969716256352210863116526376579157220584797541691","11090657418708627650344649947149395890408639619739793741273005351664568590440"],["12358992251328007862603052991521680825766094057168609410308695458856691195442","12869991297785880561496114289207499837856289054897409062036928508770778284914"],["23801332978914447410962417455139178426292045327981673289358192984055230672894","8491403443244877067488387896547027298466813683221566726467069693618576491543"],["6514917312008806447391450896805982436782506899404423385587856691430445910916","16091423471577970324790476752936490461718765109655672384852384610744723520401"],["13500717693820171418227228687662671777426301476654106910880772016750369570896","5528010122588883971126755355178724257611371825145334003068917695081821745855"],["18029759921893633132611347910460778741262895058699371548680351709600870095354","13040928231093464606354368407120552837503592317473565870326986232901092060691"],["9563599716184154877398517598607908931910443284467068068591871399892687268165","16073094022988171819462076844763576785316094413160227792610368808059340076170"],["16801608978263360962669774768615085667240837529128903999158992477525567022246","7954301347437542916168967349794517054163906180076021877030602603223706037408"],["226159194812388668015362420686876971156702144755608039387030484090030376618","16614070810034430915963939955922066359585313792135158757782458628943351956919"],["25920085334607274509955661700027317610510892775984978148142714891227101169946","14941504360762831458279678212053524702456479349721372527207759555858992099426"],["9716077004691061146498379711389980279632704811968335350049779660810725689556","10055711160436825126071441436346128973707548849011190337411591639713150266323"],["605729109640667607596855272524607829645371605214714147591842680266712586222","11454706327876148367816199322567062133425910464586561415489170202537914495791"],["3644331907140191425155546164825409702448631799038746690437384496428634181430","24023985556953873197986707370565507580921933683926220420362738565393766992689"],["27348578817958182356985553791359957545686797231849032756923883933026739776608","15534370611306469831404912172664332304048064048517553124898622959539745553595"],["629203629976606721667549942724792710131694688693873699012594211792197104160","4955545463201649039659163025787968236459211748162451863569695304274380141439"],["21862760281912517152339669506787908024589416894274926000561020271399297077575","26012826443387582449211919137680866956619338743831654282580398625282294385314"],["25627340130539916413838500501103608611855979639185095926000930608403963754480","17362841573018145375235863104835333174115316582970506245994755702278535568348"],["24156003719817842881636831655927370805657029074729259665062193444362525651838","24405956795842444194666095157291377184122307610992139363900331004903119007592"],["18716606026535362970666767194222035366642873708041988561581515190976544310686","24820500731191778821443016049334175337637843069667646916207619981866885638183"],["7156932348969215447695311525145928153775327193804386360015807040036073593014","15041416705033822602734535658022869630637585480502149282636382493221295066700"],["7926181927229656847608302090009648600799406648784084151814584372207976743044","1488466854340914564519825747430190146200693028917078916463188949049960967144"],["5474723707559313413869538938693968657714065204832862405166758017509099933816","1705947592914650321085158991798451862661325351294282778483543093462625744470"],["2820003210350628375861362355144582674124533936869606207930920200915328019864","10912980789987128489989068366903391178231183407045036912856278163634557108283"],["25735340501583689175540779681802321234502387846078253308645837237331744835666","13769135408776765939391805365308318190361421222943365455423922182630800868424"],["11880075774593291494619962593612132260326094981833302565177636228204829085933","18321041644494001987703645439198220360102109785915712526255328312869674919968"],["23651199135996399952219592797757089743555980966940714422685745127211520764369","7515472131291185804210437682771240271367063206191028004160764584669220704277"],["11874387437296481011011928824699884474209559117556690943965929044465403235073","18030485717262722901822731526248562960717467539674459546239122523167294044302"],["1927985759881602594615373685783885034586589948696098885349385562398714205682","13904918280024890602670478473137991658513814063881824083007324152670014181379"],["2647309044485079453882293970906812014062421171739382078509297526822891294086","13515289696929202944021983687786351120796385957320099920045474718519896533527"],["7313799734443413923712562430898720391126626350331297491134886195940894989028","3263516256500250503413808852981992159478576348130127139939978960970201046468"],["14709523351908839433083706834831500591004855056897554727357169523666604551582","3499949143130033396214548587191838091401285432408101910296862963371210605095"],["342912174997180339570077993142007905439644579487753410127836677649446920368","321311826445261007846854502030052739679058338338554726685010010233384402483"],["22538164874166807936528409204947927327203131674524253419484826295815297423003","11330367567790167211861473948429323247135513925802974103622522753644052035249"],["15947958735501243821776428646268537679532239876886579342547912806944456798042","2564819711357913816426318380263884489600560960340770472924424573419364814874"],["11331568647477969449724420830304498490141776078383397561379992436210920988167","14435601506141642274365819016203330306613427065345942512002203123511640067270"],["5610025966208516551785305296558148713810440229376135277727948802751853953433","11967529308801704663138236024798685839883259434793983245359829834238882766409"],["18049076927021947693151396833399924998915679698467229101174640245687362368944","14515637533486281096403618032230463175508105706337469511199366424301264533336"],["22569237582296577413333913962854370115814807886207230113286563418166600468262","13983433136989111578959994353530986681734233598974424258750481318991727655850"],["7032509593893148373430980297994701885513639284633176743876032090630389616788","18920474787566603717743819595608413498582919561170326889462732144110119586156"],["7338720388934966015359139262855043948069419965007557427267429916164744692738","16962123818989795632510171671132832346435076718892081576721748665494891817272"],["9235826565534060949136708819457779029177313970005902937632688197259181271736","21634213108258128343063268363281038953309946324819875126075269521880194293247"],["14299193456997630957438377215736454010544094147424864890356517618524790229231","18272141150786638797092936785238236386787130897466077869350469196755645464104"],["528317876947289741108200353523437343686661093259594248443666084695515968419","16412354217208556979407585878477604895100661458680837892470441653762383196036"],["17859968303046429380211825613884212314763355862308000589130102801549063108400","1790176336766752729328872188341379939125129149714548543451258471100502898731"],["7795202791542001605320463214681192881902576090210033418131149542050005226404","13483185018762992927993414235314154123521898531688660213473332097649485406275"],["15144730164915494969492175747466502591254233257040366328983040684833301069373","4831942702296903424403044954178196151826855848164766241670611112545275888339"],["14583650118086103167153311852600343196379957862950467433339561446199587351920","4078430303447163564269643149056500454233196601321553928773739357502813240569"],["704349483457593179311107949435032242453752704266604135702519131518259207184","17641004022573568940378503506330542363222169711390581358726266804389539489639"],["24846139768421365710661709145061492242965693180914883366098128973171416227779","25180151638456044091249824029833276879988589020992517194008663621681257345814"],["6802702959694721262896931975766984246299132811043002713824459648669477648968","21221078613209312425283187597533430748556708983662730533545530206039008996495"],["14466386948699196235135932680461368285925190131709078844099047461616400435444","24335966024756698298005178315420838420054498418540320602263260148404193397372"],["4893518078243833154286185082808485527298781486918122336249058098540965128686","23559871376075259819389244681090819566879779672730099034311312210322880243167"],["22950793905361210569409796990324901628782553475239612401063814032347504193991","13134824462468637786308314557196597784221691889930380863494895905141770509065"],["13020477769025051111316677921442329728133844906137082077922757060936668350050","14743546789918596269818687500703457824049230907291899169166502452062093193347"],["28184907579992021938989909330989998048795633490468106879089587518250132935847","28550746800358622289726313160254420705624123986909878237494228586093472063556"],["11620178648516484017678209023622576190061087363159844848056161715596973930594","8057062072932230647189769292624303636047833645718733385282659131575952199218"],["15466798937563816390963311252255093264726862537448698587509509857480467317036","22379128120859722245288156395673845230390914079930229531284490908465822156709"],["21769569458918115000223015253274998196468213616353224941263939056354314033293","26712283347095862132172545043738414483057124259357051979861297367113938407615"],["22894450379705778504739476850555636646288823659775378191874809831541091893489","18282877390228848325905187875631572971183635663165481920689925500148219926451"],["3237052907003478687802084860144413187774752971288045516508204720896604594152","24691116872082995615042434822752699173365797298819557979860558098650734268646"],["23067919075644387797725174194108448894873667287657333043334501534552232346138","16170168104668433648596345596851105595862280236092075681103210939146505028126"],["14586391096092046820284219891968385187837694501601052160424283659478234794618","25533135781402486455102912145292322942911810966840841880543028566450090248074"],["13891437375027127942684172778675321978584016055781418662761793956412044266691","6729015496909770832791733492239045159945033523569691281244358933715453772368"],["1405377871874448403869824525206535350071242389988920839106635470660325257573","327273850691567685486055700660803132542465748387888160978609161788246159951"],["11453631093374135066244781850015340621934680828528240215323952415675257840602","16503153329413400373996272032583399623574339347408952367148423905604485851956"],["11652348525124390743263592278996371348904221935326471225641436889101322908692","6471940083096852115660772914575633442133014578812720726129763025023029689313"],["24882618808018135384656602359773698907098288784217438863342040359127821439082","28630248738408329249098315683767799950882890079773114596569014025767773582915"],["28316709018715351937818707094143802770743059441067565864044809933693476944937","17583773593990460337141466396361585037186032477434398284328926959407032253925"],["22701240130033327686522470028285699812030720439212719871171782678930925608510","8794261017089824102124241296337623552703945954468354651735154722158977929813"],["14175859768242492685328002091723161818031315036498235872435597722245102092469","12115739622131994275659105640767321513413969128498206051080749578739284784402"],["20577730387447941215433336200934341101060297852915390368038400881255594053880","28713539824359052001489913873135991102778025811265440844965948311834292023622"],["15998433970807244520254983555031474880027294235029078116807677053675788771076","28032524502298721891042993940551358499376845345104183226912248199492760696557"],["4283862932914569219940530030854860511957231923637088523162564760014560769865","18359513875189955018503558382044498316530530373135340389068783763326823250336"],["21563267662117103853525408016115375046378402770727527352142743975052007565896","12651215892196261857048509726417442675970332520436276372050818078895272044834"],["22906259131836878398647257557458247527577448700930578772612672809956132494760","28095709192230231459516573446170980150662529911307756164436373803805808155957"],["24553985336845985201198607888449514796742622274160804967451971889644205656588","27230073872345745552960981706773684831765544441355896746166943918170204579452"],["13010762649188165096335111382080985549918385947270963536777457388853717298539","17195033787973253377902694750638270280327891295728731574423856060867828933202"],["22239425132774074406475604686199512724613680924255292378996547294377855093522","2528394787823643587830939691208194272158762318975807483257365713746120909690"],["1668828816259257987239648295551779247590364162077390446829722792777239600283","11645483961287308177067765028464411542218239529951560639233613420877293748801"],["19398147966323694638442707265532784560332390996033727892948664467626695228719","1393647674656680708793816576732177133418694080428709185826360269386893175088"],["7049242528249081615892067746103739349952940516738076025318992163036511322912","4499743499652876562626518116146206030027883184015329939087725850256371668490"],["26738536397082357641664635552234940855198673269387399550984095207794536053908","13192461721706427961398829745459337857795474953430792972399159087827556365006"],["20967084120563959603045494071642030578674340163938150557400263466717558435758","20232855389355541028296211570535406398074652670238129879621304815970130477426"],["27428695743447262407650293499224252651677906703550074983281560753124711866310","13968346246451469667183218284492551493749452269066749380187553004662056661295"],["3732102436258887903942805522786740703671421861172566598156546076936928306652","21956333450743572869827510632934502206610851745544808254342054147447509068480"],["19682150349901156123741835327096605018488749255662121790764785880232948131583","27339464134003927689278572507553002144971787927317092557842425360604778678103"],["10896797155700802825280166107532371273862751628039357647124871432906403141998","3381691237680622025088545063851842721219523381005321518944855350889679191434"],["6610266095231408706630894833759376439411268079891966746944362349088832460417","5084957831557015064726082946307422710563126029151166430640226657755204519288"],["3423285873384624518883768759576741351092417823224378175669924094014241732647","11733685986726503516755806580175793616250491255152274338855271309501215058041"],["5179980692390530350434618893758585809786001899145272830937980201373917197524","26072985280465285139728030955221870162116176696556506377479665175669225716939"],["23069319131707566254460730154114665691520701666833325670381701654159387945479","26996193200959671887645799744415087700572140074467340525301404643125993601354"],["5813151961776320442134647770361094435575402757350068960481583995386001241060","26344916754120608576730189189001426700045362386444118390888205416567059579093"],["12900982359895578146865023550810238958538830851516851921144571665778649628149","24454555746011227811834109300677878706079152145192120626908610569671139699310"],["682643197837649745630983685183688051084781907210145690821734591913313035966","6495751183764410684095819683076690196963493830211567195160616611540280608024"],["19208773150228771575303509493999700812097157307382222136153254472910032514374","27423296055899764446734919245028949205455676308540921687390760791920688412229"],["22826591453695201263366124001269650784761638877290428469480199105010969572875","27988096867415554011500177637895186296108068896196452423667619301062766489060"],["23163848165115222444028233625039744607427320795442025105383397062832033675218","2248901939509065359106012521550477163216427321279488888516991000374011578715"],["24702669440859147945601656695654738936539648698538377076111730560350338290995","10600643517197111493657005882294934874258066683970911111447139563585005686931"],["10673996455036626805920803807682180776650301586982884780398564534156457581543","16631542077867268748451329570114850375650934509077340586128678392319404828675"],["21266786522878775250804136384285119275991807452527171006484513467439774833054","15833980260065689835583173084003496863595238024119055942840449517135995593080"],["17958999443607358797050176926260430039201582676557158577066606392129764460381","20514839678996482341672242445931597927271560946129146576824334982744350098383"],["8523735557540861412021687768433956676428341480292607291216347113747456652784","10682359418505590926505031571497454927244389622218324561356552684899847831530"],["27454096962015283454217071565676167095127717196962348488571082706269427282915","8474559459029655609129049226090358566031518069183422723425400554447485509852"],["20841093490547798076851177893037699504124367500240090784039003920743162322637","4567574310503431348489216893369821327050110839718351593456338850743819434613"],["18190313959242937501217115776105636761262938043872189251694048830805729233996","20727791269103276052062759705456759791895567795878883495766255761193050408125"],["16948471376539742354417843346974509452128845087770290786732138724775355093422","15899491850175606546753876452488659910922227683146184506390395251166236410024"],["566196407725949667255066302076789613625420485824595679164817141906365488055","7008376781720560732806670829209482743035215983216601388882562011854056784918"],["846096038185467190384923049907420947407046970632823074479086240382572502529","20959165237610110272586243161729624065263425835129161997096270776468041240320"],["19883351760348184922912840510518428894054078536048115363462061547017495385949","15933782623474762997819265558785222449014229793768449655987028227801165570655"],["19110147272808873009037686888963724818325511905521035366916354317779545445863","28787919597140449070816261914975923482646608461670556069524954115591553092330"],["3217818915778217588293918195788765695249513621756582724459632963215346039846","25960360527923855686660159688074239204413271482217704002202619984764222193447"],["18315715056460164331461056613013036389942677491758621075617762266720657061247","3172472377507942962348143253230754875723602585466894447948828856486426046593"],["24976981296993084465723062023530637159907122629068114042613878335105451962385","28207072085802249911788475759072178061864628383618669499943061863867438524214"],["26625289776079060326980895892679047505117403188101496848557884440609930911791","18917902841100853752370192237187285221480796999080531697389897450038551804081"],["12541786182980008633030654439891486485898285309680228976159799953035064226770","27127075027541692317854307764175725564276239547651790610538555699967963819014"],["26783450905836231624628324292608019874682008902071702995806622699631860499278","9029804013557429005822184579939882113826656545233880829167515392662511649967"],["19992741964193814489020358009462641830896604171460102670929108279019203677263","6681093028617901945350650389312161086727035941381367833900488175691086596793"],["27403061099070694958733571409446771483805637062001959533492409188259193949915","20077854203988911665294441992567139405057009502077469455469751279447064113851"],["24754553349192102463241713779561565715197676392615749024032799066666079590209","19567759906839663459832730515778806928320992690467720039647483637335133620416"],["25756934393498302309897865180208498290910612092455887741803065556645622790655","14372937218181183560173338634936102986144359493183935067839735117615079768598"],["4037485871695570402266481279389767747400088524557935176110248832460430646523","19869753482548689432652226170806555324936261246425703694109671016467165934096"],["25844052288056866318357190799178169657460768857213670608653627977443046855709","6112899022535217427404603641772330261394590907688653997994365483508085625535"],["27558279975694930449129953432235441189166244200131009112022144774792691847516","21643063634087022558303806556457061836699517656769762573735513301287003189146"],["12634977892837295905255972312129754885933661839986001064277039234770386143766","17722039934268747606986440985439544257323751369416607091912635613171341085055"],["1633895640962375167513933002651321791482466294523076010914046618111739463715","20964532758856907789540443648145623685168069604506206284697954370130283446166"],["12384536821839279878474400069353571740406142233236650445151935333666235762304","17215460815869513432863686106239655456153214950036317772728836169337190252551"],["27589024632420637488854952807511367520347864656812447927717495507161034106136","8015716491390794205868875712644565526600135362256560361564009466991196292754"],["8583663683306134462692832962790639464668622213611162320712419717236321766790","2398571929617627895094284211593915709221337858353713363559105448010304473962"],["10295749831388833758533519388481090880286217537718937390186099841234183689156","28412553929401680686102788919028073686442368329176804271827943933431284552469"],["5944575712900791325717857964809288921726872156168213956796976797247640646494","13267011229028476123438548290417622759935244356287214681857167624244807484573"],["16030467054393262034446818168497636726618994162582342939779004024079753759598","24134135430126157247192011431272109445543732631067358685423895000185539744509"],["19927328111789451617987678212933589083808377773850505251636263115966939248691","18198235979828773130569556951161519021789683885216281333912800432259319477670"],["27078685013512610279235472784070878025438588117564435316651496105472436310535","4923126232901114718020645039007301235298609416107981091259201730828244601296"],["19691574394723948434997219548708517139206994990511204398587583618598423694271","22366804203562988859523513642469764737635200473281983304280244555260156913563"],["10105856314674193075321678638070567847782549013799839588395065965806627990213","2299857687758795117510529592477566584810598716483593910577726522574379827828"],["2555023094738012597396778776810715884137220659775221264519589393834001666117","6409328548489080271963304680391474108878774184485139194422356273436667260305"],["12296168544791927481139483161512389749756789733731640552817350755043688834588","14974966953356233244934470432505617733598905639923938350375173163579543959323"],["5111128171443389666494054726027779283770532361487184290833440345497217106793","18818816027073040141303156070056905894800846998124145946840312122577284075711"],["10465841494154131141763304402395290687895867565715909423401741314636321739801","5435408606610212492524842460155385344151344703127855867304709296768484656538"],["27259254219622360829163135262502490818398525581132363292255481997063900842288","18952141463512859135323108708009476976444806011935567038758158009721895110030"],["23799444880879080303165713144497302005184533304898979215084003342313762889514","20915569099919011807579282055185883778993164106879254561054324235794911866911"],["1891826782820580383283636050348296764080093708743655251635192201793711258179","25432197153465652992400854470053868245852077229609894075538101136330792598747"],["2994319564108734260024412043693541396161654116871476427721625270191187644682","18881514599157203219187800735071043615792776640462869798646346216059008868637"],["26933795663866118408273730032052493294784406280359938867042405115269754845860","28102532412976326891939515852868075052781692864195477673208192049289951031922"],["8142344183400901064196635672261512083954986222930431324280218561833725124529","7876339089474548845987217266202429085702801638110427357566207717821361384879"],["19248070495157517729015984560160541110651570956970454675177144084567311723147","21054024257681863167662079868968550807296868957224756431611851113397422587197"],["1672065527937724038854575087149855023326919441003582838751164490430196163475","28266255621640855573011704381946521293410996628552961372410049786735715876285"],["3083206595087254526725497598618803605747655516677050034833357851382573817534","8360855546337771687079172495839547265226005873337777959354517749904107420468"],["17098525420771701272927753942519871003176107992147768640541329258067856647328","17497081666732053374384839573718312409640641958325395191344435422044211165178"],["25861787288505948341788574317496768868845339959025597157114549071997469438123","24101495383872564030189905288635330517023404905184523825428586991983291643946"],["8163991273318224732800189527796432453332020462432059704465948231735841213923","11299907212281600843306587824083583210113987459705047948279691672135121742584"],["6006579350070508300043116820798755254822445085509737701800734457209381915985","10825349087138566813400016334440522663923066301701623151704559034243844654378"],["21836927853166506219926065880025390487630029374248155532048849851333623449791","8519712801425581122368398531360172859798364631428381260895787201213315109826"],["3292594352806260782401888447175230102349147906062003292001744321289898491971","12764344650666495536891667814632256140851761990822659551866735417855294626891"],["4871330313071503897284713139377352162565584970579302443410084153226886373723","1386540485305678284005328237577794369394450139081134151641390513915376564756"],["5866788504767525069993220565455157017884333025799911142866611443593286155833","20909279338369286474110700672305440400112164476252727883933252814431790642482"],["5312168350086406770944018706058080644194865324144546484168370627496176645125","15319682726163014603852402606071454409058139298685780584988044958804432021889"],["13742641717521802929587074142638395134555045344653869613427912503076840241594","1799704501198223204405673721892326169001291253382033034619782665397486908038"],["5497046771523597603842098498158729527845608536912485874804185201101107151043","23779310183348104518098852968283828892783405235557876227038513507192117808005"],["22542220401982721031423879335718728792039411608777891130446539121502125131017","11367996888422289882283350786793887883571271916114324921147257117300117716505"],["2320466999785754072073713931632340003287259083396319060903495821143770309941","26428358608806863965238771333862451223399706894210906877170242061186809855564"],["14004214738690665342644772813534899006113868417046250915812331720773149960912","18798611313848900099846710681336440115246087942991043488947269510038313461575"],["24203210026826281892172129971673493182519999597709238209183821251592567991652","3358996755129999760611680468444464127186219075065528475749003723674247956817"],["12372110092010899809466448150984674139341261366283653610199177020769419051230","23626133475659077853723515351437413201208972904904809980262448956550541835602"],["2242188463470724310121409984128365180679765873992277968065692823105071437151","2199677054422294817855456478718391571878819535517300546101089132857607263612"],["10126805554913087484138975477747763141798993730570167565906921069733559694576","3324066883937376369644075703989441299980099972150276494929790511782982108006"],["18173334552242482481911999481488155450612398671814063038785587155788731292611","27712041054054779712096857700507544886990489749492878929547844852600439143063"],["477469728180140157089154956214557796028022815975269308409740663326342046361","21959382541105127766377243467604907595030581197256663949684859098256325574227"],["27914799182435268498956493189265613860231950624680147514553125738555824607166","2106534588158644440442927130836296762456428362354120031856301870977709776079"],["11362777642736919832610076056647797024029083477298042627316890829665265680648","1772621525277334600063486418417594043401753495632410641374743562290537469190"],["8554241192281774774004363307399982358830663584803503225952868333001432780374","17652517259435576539704899026554701673823897356921590208970192674469794341431"],["6181228072695712590771917438617074721530356214680891363985137648661539369694","4072112476657621699761781047005251279080919543875878480639803325384884683378"],["14739286474168997324759490957127006504492573587915038966733821427557877898210","15478697056860397862680079702867565864361680634790459736599264200301106763176"],["23499268475547750285552796515012133790820754231478214293537506860079175105303","13741877411076830669324700506575093658767597716961204759143672202939846474983"],["22220972465142870889688613320614326261578921329212995606036120249214176549795","15982282544335896992125313396368173318617608948074018369013429177507368223615"],["3991406158804363202847395915261269067383811019855018357703406290299998984951","17286031706972584305980706612090699959218663422338224641252815962921366545957"],["116143626531172839200087045588440803210849026180599547264232539331542607895","16763925604263572805724134667472729164734234289532790117627364489753203977257"],["703215537178396791665920320182163166123923794588927552073835388568011480300","25012985457593658312827781750960548400449371453150247928051291850311414586119"],["28322604139042176181761050695470715362773146636622365364190812316898087471670","1495330704936784492908830567222037759336451909410770394247022552793761521225"],["7360318455045824123795654105049388829651897279481992998759967785361576047573","18688121410930587172992136473624564115707723839005896230338780613838429722925"],["15281374565162798701953972860567384869319773080370645929859455253184347441230","21530815729746177763685778700674513485804714647674254622235954422744481669186"],["12445064911187480921464767729129577488900575140548775317206982282766879255620","1347016841537748391951349060350391061562367856772857142972630534762618803425"],["6657404899024568764802529145421732921523979132274768662114270151351457865391","26809632405595294523712254900714813821000373083733435958387723088374628579711"],["21964259969246389142715735800128286930554794703275361918621608577366713160187","7783719128025026838175026380935608476128842341616544608213569067129698518558"],["27255171887130085576221605327707005062143709382474526870172140325184100212346","8930566118128067997605473884272532065560067051560071186536459537238609462332"],["20025807222964914565739584637133851013302521307122218136677818001022470615626","13587522561219112644392833144893027110765202654178324855401043353611581222231"],["14493096767733919299408581195341527939767980722415146134433902239265430473112","17321087262718155690305952271060159215990870095074809653251633975866842510648"],["19162126914635489092571884712398663419304209444256745759058967373265581871721","10299653000577494493296499256322266659418734997257138751888448473549377859003"],["2492360339338198421497240298159628610999105112019719909186318281510279350303","495658450892199508189216126549303268780827219562983519087654954663405990274"],["21977165785169282563355500139425134835507266315959510069108294338862645415306","14799302486255910967084733780337530284036518213510119140931498225776039573541"],["6986732226926051083451017887645085872828994374995037784196990315881899396992","27919232452664696758039673602730039654651837665327510520946727782778579600126"],["16930988786328135326659436170063402240601437090435640879908436147214143035691","28199990393000051373973487543866058491869335185833331262389708523882883131845"],["18812636934190462932169809625209145659176111101506306069554946386995906777642","19530143309830370516119838529470010209711186512927202697890021921871869452392"],["25702709982061646563303773163268407306506304637000185899865433216289711488446","6850409886779666429854042433473715138797777649044758518848072897443122039202"],["26372740130155349383790466193105895320440205652836824074124205100236351467612","28036061940922847752285823914305447268740328145506905771114596265729069583518"],["19923324514988391822620601774169498785031337156244815625434799235009830592523","22518055617297160646731143604306395761137755240997142320534664422255509741263"],["5990082049565792234708081861323165012948913133587530177417033105717754746976","11544334831756208141938883307703689302582444920926887487140955722412071804351"],["2247217830821639084813780111442002767674325245252152108487401201583584257235","15564700507542488981059066112758529419397858920449473216171210910940442867302"],["4347702466731461800230305074802998971021247143803533493787259301420669309518","8202531251740596431575049214382921606370744353662601026262726345878279610186"],["10930759510881402443153411059573548913708662078935162657418762853544654424442","15751451661688122857681500788612585249377479908148647637238587911584262885565"],["18778313427270079044388282525646280859301373601946743591967077835884497277365","17090677551263690329262065076593898750659257047133594816965404366738547620592"],["15372141171205237475802281547179309704426721711867456366626020993126617327005","20825423650479031739972574037368414507287762418355951865128819805047047268318"],["14733648286609773064039524494482885252361776023042080258963280989442652778385","1023427863403453288760703611030787276262568337936432865319451769106762081636"],["19570765505252609137217468844980470924438930853786643801991842571142710641518","496482950593213120941859316388823669083756991759863253105980972199102314235"],["23409756694199254630635828916185185163249909971139888670076875881933991645825","18666487325542259758219363696687838639387157496898853295159108168706910680436"],["10651964407426730260124859708321137864929403758317237249372020113578304445321","8925808162893390316420948741091703938651391988372016110400618413035625632537"],["5716329257563073695661892875983860606514569971968005254873405836541526639485","18433047334143016952371750009339271453849111319808191645226343299846151155993"],["24543382466612847735436490363789056107284611190726087687395570578653774197848","20970131024897747693076273774694448078049385176580755869886448080351229600210"],["5921262748882901618751535086876433658227949896407912537447505953707260216479","2971225001176932656558118998268320720638895574138331198282786502849330439735"],["20977211532090328404745757482048349161036815674951269380136813814314814611850","24580962707165716613550649411624822100900710849283852145002854282001312221811"],["5647151300368798698081974547084538202602251294526631463319681464949586992826","12410259136796555429915931303505718968771059457513091939254423454759003822548"],["13580449014192532185708160937406278245870751347560104869945822730237993455803","5822848004084083564465005724395804590327661167184858497398978050510418433679"],["3670327766369341613638882005824047005128257683348390936605268082413039740301","15458437553654786591147638191191431244945756830752647786605937548832053053021"],["2640654931365544922517343227960805969186097044431983924736384413428885375790","12043605755452644491726454970327419943045525259254063369242487732430714983076"],["24591596781165425157767506200380999534876743005475216470298361088138127527520","27811231458228106690131967353696390135791396694833832617944641737213640595408"],["1621098133281297371053026476873842602978502002880786927464228135978319855250","12168301342217612002274387183174704897564058292377705090702087239600952376743"],["28265508297112389992168016192223623650508661621235034765818553276346798309826","11913825205670528902635266380668280035462302292846250069710584616426184453251"],["13877940369333737099282998197712634157552921817310058462358340324157481906138","14893873937116196137445676841671033344132871821993942294602755118992258401769"],["14509801518484819437108447042978828073780557762749712204799196548438137438841","20329953718095354027868154932417654751947298460539290557111067350413423443055"],["18162760196536225397945007197366872731928174303688538677964036974706271357843","9681998531413110413954457152035237999806462587511792180673065237080490971862"],["27570060646922777154415071673040212824972434159086202137854035357023403147239","7040760220861494471865219164033142887687328949071846717086503973060591471123"],["2636815909169723986549353104284992088821470519697808173341690840490002527843","8126692760276633614239539250004090306242429747189156304955477415351352073514"],["14420505309479628727143019251754679236807338592273838873848189246532221007438","10090101622437612940553251144574808350099627254848884777305876536849880697350"],["10395566832311312433182858174830934970544215332679642452005118595741369823156","22070056930879168594196590161163926058403935275371498350693319313163920106961"],["21350785418052999143142772874074831733859524498600777081631706913839390761774","23447831153115888084064322124949307978134825996030862446618296437796828429941"],["14080195418437009672706681815017458442862311590402540089124067252645145411593","24689824352294999057332259836057748803164251939005823038332954980632786690476"],["1883752252307326071200374306421384994130194968264785240277437663011162489659","23887337799512383063390429761625387275430069918522367344804285218669147081226"],["18086956728322338278700527294124001896838943305463541601303777538326777043821","26044890542630189732146004978186359126745444869259514236726156456383557398974"],["5328791245337401824132943505871216006382649883888158765801817859557350763976","28854254161972363327143614551391252146460540146197336579416842357609643557607"],["26588436314736986117503247113250503479302104435628483429223003124043266775637","15740956632332545400202832948297454156118268389548706611804464866559063378105"],["24715033804648344756523542748509343793528255314950572730054740822091016873811","9390303079025581171483257793868454297904853598693287562374553780960408574757"],["4453037895084434268850686450186730207348745180738529367002500104854063849854","24893980180836502776025918419318134331256745242142931369030611138296748659448"],["10755173196556222141934459448008751283285450536405686792622798441598313412711","17775532953041247855018880011040213193650333773129422369355668400059716568975"],["3352807420825410236061457545325579458292359630812773580720522412686750647690","24294742759863748901577529125898712058072276679091013129949905976455893794186"],["24419193083928974321938678062356945483470356612535489489211159284112397603295","28193610345471982600955539958817503359780949282198856463381436896708786530620"],["2223243079831763000810922848187332321804272108681289506238847760128383392272","5323031610971868579030686546284465150164955243988692687366107429244398352743"],["705031269979897616177169082929649428195771609562520022089673211709330735242","24969607990628512631282422476038838579757656726705293910805090038459536861759"],["25648627527107703839909302462812395881029121770792603645229479250239950931845","353731677176283624834340746901028118979770124914372266117089254464284241172"],["24056480935523247550481771892905329851988329703472083533043291104017279766664","12297692828134349783224898878212812826241694206353049010440858099062544307629"],["16625689325615814319964984619006027444000406441036415459055683622749756468797","8366999576031286693577214676747701771720020960449315240004592762114999496122"],["946561685719294479866359708560977630934515107699571875848310397066919315267","16014334398280578348775106282152693682284296829093204378569776809982721930955"],["4713414202369253085746685461171907029528521782813528418401528805918282482912","19594062049675281843007215192939393862311727800549748899544920954886602935705"],["10350395472602251343884079605992073479758452185282297132781650713326429717688","24046111459856406304510469099288839184105649686027723951834510112237846086934"],["28836694180517184737205964385038166194799620281191821408378879502681742368769","24661795493139522597814054560327019517836645404080518842667089695534617072288"],["12493076476636894376031633778540580321737516684434521146559335196607245904772","20987705408509727037062979489932006697964286727160284337721440879426662636338"],["9120592214182894525759506820525281524665255281539505614676044289960602609999","24695887916658447548754363900352649756321228654678313876120710320690962062684"],["12886401278979195651503915001366798290292498035827350690314706552992359629639","18284304658920432652389182362511103649142707525114207598458505077853726063601"],["22816035472394838154095883271544988114009067810949924770340185166061326254437","17599477923308094367096705690302516789798652143034770056057384712503508613924"],["27363928479151794726643667985382063201837878484197700769453458307876671188975","2472823617296477041628330578485275630844353523358548214592895942871664418865"],["9791934958496362566051935401220421463865316395960510637244894167490837918443","26679914357923254739226397083234606024659443354959212666147265464492536310778"],["27671653987271888343551630395017580190389847260249510123762763456207445331396","14606141075787608714457685086576709145150756776961529993005477495516790342330"],["24849379261689066785261026963313906296448380389022913206218197153258903939017","980892414417619944696612101792365112980709148666921773625291686827716004685"],["6022744259179051573548201984349074527617310477015428760603694739815965195269","15304867652320065530055980464652567163583512168756404354794946169504834209587"],["2949528824502018484813300949012956100989731700527653071917718540875905370042","10790925770961211625051196979177861643805345654886325381174263057792637474157"],["12791717712413028552063145476692131896808942709294782791715972813168651677724","11778673171894704674170601319375878097254875224772428030847468598083571442919"],["19679071217057558394342772009372161573667173497473656491332028254241264566330","23861900003343035503616573026121605697188764823354782160482831782724806670018"],["12232633663294601045401948757266325964092337149261519094838328113355013695567","4521776090136331748229756374750332166137312545165854418594298625433442897042"],["7494269247246327301125578212098188383972132672445542850713196685995380701352","5804027418022357611015561750351696580627741376092802125639652365263830407018"],["28361366040189297775078731199192105919851279608285799922427429187943921050742","9929896723987941881383711681105865841052491006164584980659622768851193850473"],["15976001886671729849833573715895433658619834913487490548012608286864691829358","9537705380563244160041025360308966635982716218560429185195936356007225206735"],["7437258379200543029491336011056990826290352170224151242703972815942434845264","21799322948669052134701381649182016292865233809196929712502757301026167981700"],["601152140115294985406806992716663879962749378399814574847472007018063344946","20832599825781390778179677286239840867776623622790691250338381263722568181171"],["2187213651292204994401529571437101746516315242628562330772641868802675760581","6353616259056280628037773565058158900278210409079395486112647376294997047403"],["7162692159471408104484361856247362422280531244453868443885855107222374518881","25242319264541441005085072829555010350967473805705229608674035078341142128995"],["17598970428564767646939871295605354678970586676415266540961458241246974700110","27987200670635314812376044706078242518948297830589628010233668886938108278339"],["5627443558523429835876335839285867129507302990460256406093384626756120047632","2298203500028844913022579962314045409357972526002286696738803398960349656530"],["4113707181006987583637623866410583754566910291243153862902973692394583386487","8007900029898780156250794497511744755305184318524589876108046418080655633982"],["21172004008855930535935422365656405607747348156442478201439884267840025590820","6977728889428256945682979459981316324205390812934128836136434061265194726493"],["15663458065552220961781480532812037264206027940274347027814161828947268538660","12815118206265718137867616142050199758115231471776598660049021232422684960347"],["5520937921578809792536201542827934892476306787135544171307743674310759104516","7421341134186521017768714523593181169280489043765327772697454638165911775496"],["12845773874427780141355269955436038033247867467700884994372207454896273969166","14034340891093919620579709367094868494859196382290328610082375699902806582161"],["9308802758036467159127860956730964276213309019012050632838532653051426661555","20815359017619546231001239343312516443464498532538032548921848739119277539692"],["28580968694297064655808366801748140985889719905767418088336526199440050018406","2620196251358632875615682593758484333129067546326558144929776080435272187380"],["6244165758734382569002557872020150077309387674831294984799425610280758656689","12010338850766495908787308411062125288810882985060391702237995976255460580257"],["13238304736369941738785099362694929627916740111011585887205558539467604117527","22023994718052339348658322522814993605884468935722860127983592371285587464184"],["8729396109859686928981928850221008829488277115139786401803162497378036566805","2105133026983958451512880538658808879226136190409605345568588798577028653337"],["11718273414170960937944186413954690646581316841413580773099335105882689670808","4402390695430486522685810650066379066946278464633923825435048874591184293533"],["27532233743336602093428734278740882352540688396519009880242854749396440973031","6420834602481338275627634785306272112156591210797949686887866816066420177548"],["21803394382349189354519802741011402380997956267024494889487847067628441570328","4613473790449180874460166342893807924314370660672245974486207357483161201822"],["21050511989726035457176644340026583389128920077302004532204128422052782696950","7173781737863143986953553934943823705517733368868367874099739885726136270851"],["14798504203135828191841499265171453572005384832648537275613583392669714252910","19441801710802249898714559864676778058712711121186155178131260500783478775094"],["26477502300406148115147470629437718682374327138447612787697369363714187779665","2652131685435349580256073810828393319217104562830346287904096693886236706773"],["7627990892876699889540430762495355550067731251220888165835100255370317840711","6189565165017635496045481958877737521248330515638727861722403427316403668403"],["5002470467728821644278452876828160685326846391569354696989988749618188577599","18048970013882176006725939550901911930229972496506951516550628195014818441809"],["22643853700938089787122691487208279446070940932308763448531496975076129430813","1292688603317911824083557731126823226704967826853447071578537351561325003362"],["1026022390551434078358312707921483065830065469409072518478977524248609982124","2047115143620400523946360050203761513342135029021184633788352488397067714248"],["19065921430170816351316369027724035830712585055474701095222958398309015045490","2263097515448284075252677100857077981672029607599316820520937681440017568586"],["14322576397475960102865078440231592695165600823251193287142436688813359936438","2594441369941376572512568308905679256893524214312284507138443792620434365537"],["21129476628549417667331145374372670262972311669039280106908229944887688047555","13160712717895981214167737292246034982539824066267981323106774362975613715637"],["14513438199720280792662088872030581339766486614231344606158233923495934471896","19355151200661220087542496131924498140301177345016740289300731446858545858978"],["18952074762345225402759056254394498004296155684832959975783444140661394681339","24131589057603504005083183333713208928616284297990603946587250700121325318656"],["19765163875962984690794040611134423495301941803178565802625162807245006313598","15820148790724000159863517738432868071159699722649928208243420349537838430382"],["6372725400529089420137460891531405179828300990576832303737921531664767601069","26547549651826388782009839518195154877594270862424112064608895662058120762091"],["11266594980494153208454290496193182949793055264396020001785746439544488088416","11504801709354037517613798211076108926320885611148838389640357252739274136279"],["17066446308217380679953646655765221769822810334033036755886598922555011142728","193570321618988593779311625958890718824547918662237266046727188362995925969"],["21784453606307115017942383511304991799846169873206719918243937745021306474447","569225450922438678596295966385241373977568692967564580442624625048923718812"],["19185070402809119081676045979351581305281662128618887387445204797657313967990","24449321974705061901518098562499232935484755973762923029458518404820387593088"],["3645273515837151374939024915498911788782280025504801403511710927375216092369","19959292290233172093763035165641498456492736158736163630845780043386456750506"],["21020529475110254704543857460058377583868867691957641048654841302314817501935","1781803227388211716827952519319052351207370116075830283633958027624921084707"],["19900698354758902439683325459077243357900764237526602633343704278284898737001","17538504964950286878395204847515125285587430402671285086029763343410032189938"],["15716883363425615279095174455902302453050139444976621123984125751486137017219","26618532633127268378022681703190918573889871726259325289597046655577462844898"],["24058274121239078231016163014237635077611077890577235279937631547483061259171","5112272897247761458666277042338217142357821180806675498040196631653849788234"],["1638535929920913277640719320433678800051154217751659291700991698177838540538","17103155055499372985061766692847755864738164345115341966887351145915882897165"],["23092900206996483572133586046388429450062735892347630072553537214911256126010","11394999778337854297121590742012511261064568663260309416342640561437482522198"],["5879804127961621630961855407828553495114332832047169014705729159745500944963","11318986549484248817531791564683757682418641169485849549439982661570904939394"],["10782077342093215241203760186237888748869154151261121329298646823290713810198","21111961196791312081416848441029134595741410921125121805629876284893644364913"],["7334665130935466485146684566194987654139277977466436300888629423950857005449","25405256672085823399101443415265939351902051947540040995901624385874408333685"],["19565937421134771638670829123778756124281004979633817337141836245767909371652","9091657220556390802243131924817459338626192799201611522947178129020277714508"],["24587918397457435708209878602633330408446931889223758517607621131109872038726","28508376911498932317832882110659504098964088000108155902966230247445805260320"],["8978438624603254413246153839246306819071460313843361063828727949167855704417","14740455159604582909264293827169041675447123282562518457035816429002783353571"],["4929708674863699051153434565053310645887660107246847538672052839900862628204","16117662267809526519250353574628863394205116552932639033243692077966869364149"],["14564870267901592780870260987777074328835323007575255972536033526004030143822","17065597878797131389496060802765430431684952038622437768545785890071975011523"],["2477763500626734463292412892906608170281718495907202477181434267066508256782","11882666562956692075550767314530521196351420138990032551670317662024774780184"],["24940006511186942639577027640722616029374816231066152540316882984011402183602","5028686640833979437055347073944897819734624420256763602613670237386588822172"],["5840465877726592754887476605290801800786955666147871656567952745496699881032","24414413361618566236128080068568116571062241258117540664683691256739916327554"],["18423232139548107940364905580966606714836451502763926155255816874011257570741","13423991318722654190228465612311939545405917621733002272986980028517522242268"],["22663799158682599849583994187400305340105489777688851213020058047399145847091","14192548381126789920450672960435003533409844569251965357967566390517754844122"],["4929696423005187192573417466137585011018789099159911941618224226518458364636","10275330330627607956065529775764276563117843689313018436078139623445832025293"],["24655623495248790799294451609511772902975182336944580934826958558895859560151","4527438808668841088835606836848715518889343571184983942993562925800196451162"],["24976296493359810037718538390659873187622974693248197010909253399844098154623","3795692780161628159964176405293878166792035081867442309430970433313017114432"],["3559021924298656256824545994734583148548079152099492813812273317160057101768","15946933548171157315430662643240819294066051358588682677407900803331770548689"],["4256795927385778599873537100163277210509662540622562959520908377814145101260","13410793606634318605338436269221046240450108256666086951621193528775025755209"],["15475236989975175056187625000253024897956951230596613206466501260671767012478","807631324324905378117537974021731864991907815729756999087633744127626479385"],["5834578612636847885516751118078555279682120216484888142737867784078434670192","7281236357050685930860733259445363743891617012796277039950037526806940373735"],["18895373791177214877469182598962828987567427768309768509177920331896261689192","22520644556127766216253753006642404233567142705507874926224774362438592307769"],["9303643746796016618480211298429753268801905408491885865797344646362013902552","21611008302289904105609467669636655877044415234507057065034425873718611352774"],["2085691941130468335133153271744832016681095894834059429459985979047963279975","7836064006466470719534365572772078026888940478067463612258052620843188992366"],["24731889712314698286022320500712832345258595742688606111920582296946440838790","9325886036788527658203736617429767947594664911019538145656545142559878090817"],["23506651489933509395619283713950198572663920661323712740343483401492247349205","25906220971192601358614068149588160253760549714696679813577084318217854723774"],["26972547102978323958773218398636418771322004771000653791812952204097798955265","26978913092846461423902447966529833805139206402694778023484418573132335303357"],["19158345737388358584998179482435781646360365488164873780418552725715825694547","22205650103572382801451632542037816256565209753672631423991689877918402153660"],["6258804557776491086340115852604451155859987074688230357217472080427393324722","21291761506569342820246165560621262066171739675600521768853237840817501803172"],["10836370532093051297579990170878012097638614615122228076405947847359700593496","28757047209327912524103388086217286221564335515338620076483198688238021230182"],["13199176946689347077479977346585059815222403372687083555874830432295751098823","12141436168734482553342755964257311578523734136068943369550425612512302422439"],["11351053546452692770441084604997263286440472411580273571506768390999710800101","20269699512809052506372714622560547570939900741683482188936122900319727277118"],["11699043286512851265835401844530113752401726888159694852455418567219787700891","17549903577928640202132522148304663987115906890734016925437582903668640181274"],["12169346992811329223541758270502212921838591398791341392505729901522414440981","13126636077629911318688308046474199952443366751570425654339447590627750212192"],["23579926201821343784743304763397941033264485559610768656155108110640492314540","7527210001479231086211088089231182519770846507206504543340772952070224443376"],["26714187937163540146532482110023583747703182380297923204625891853097924806652","1080170814403585675936760601385714266490729445707081411689173675888107819904"],["10563854984774699411070331372574603394986639033099252009162710092948619004842","22197908869835611680715512591269766649913027260752240962678975508542371144123"],["24869124111809101397085085973690357005817758861681105669558943024852826040579","4831677991032237092876276841633268965770480974208420627387601940260080949503"],["348313060813863925329848107831574349333475875489449659187578067727830226161","20039707303858170427671686154645771156092815161242209083720225703558846866686"],["14995493622714075924579685664599112369244156825851427430957634877459866782151","17111916998466632403721535536612371919222704787908087194177003754924684988303"],["20284647408164595387030220602811231752873280162451913648108827498103751489583","22408167793425277905750250050299211422070095539519097197284443878880623232060"],["25792466314306786601988020441721920545075949093901551175473061817302120737130","24976167412931087958537776681455102040304708506628433568040476753006371371993"],["15823014498231077450083284308952163913607704586670948692211110874258168757464","24479409361340509230780853699033631126319776104865388139732005461244910795951"],["7555423688746904369595416290602448579642394579063263140744667118995306861749","20266999400581661575528827427895462368588219747263242243262858970905424095644"],["11408873494609144455729480752207584801728970787627361908163722504255529923498","11991419773506112702336251504683518317140829879018433278826759676501263538018"],["3662289019158839067242920936749157799426652382177904121093186956620150568293","3194343184674813023702335831535667131478304811639786609682905624922580061074"],["5843151732638776854701592640559840477455206786474757648230664111236872013837","25508406569955065610488966213124722469526034086855986061066061527294708009095"],["22796429921962987933566395612834021094231741735291187977968161226324359266811","923200155652498125429629061168866820854926134366849413985014124011935525482"],["3152354872986273904311606645609503201020744881574946102712776848027806165384","18547139436453568386698760213891464662001970580852092669920059472670363319823"],["13276173324254550580250930601783663963260705649128299321120415084354613125156","7050200781256957730153250391688217779005871838803360061459235415352329776884"],["19566456900419429231002443438997945178522552135232008662667072014388272308914","24679236542302029595404281255107621689865004275042495250835014604562059652809"],["15357412862220826297032105292817527369549715079176833956357717606973121036746","285653069575697357774451408443506109948965242992418841634676933174706294824"],["26011693449830124666601374539288232998088393760375068742060751603326920834872","18496721585833467040333746438729242349241974809995576423211323291462424250406"],["20403880645484258371660500255346209287999148072688891960493861425787621827347","16319306267645300309490292104784222587027999053235059547312329932610161514740"],["15292446729468631746774450200391239836536727321167026522017692211949506688814","23377201901907094751503857031470235993808788016122083024725722804287316139553"],["27546947467727466895318292175439182307432043442600152071599979332409636021433","13613885136441752446724528471154111000315021784956798004028535645113003856590"],["1441066994221464769128986611333874807437711651062734948047000219072670727124","14514685574846439457052679075760917112566600595361399134354435555298008998867"],["19639624556888898311001855932349867805857796890866677905654392593485334810043","11577052849022322184807330193576465069299399745216046671339115235682185758450"],["27583246304578643583744426676619175401047818042789348109942038270667808462712","14554368624643988698976741260803839212601727049629589276294463204744592067244"],["6744944150657340893475196154442873393172319353616323846799460569013504288327","22935107599019109493912890970129280656282531956577312765118577036604070741958"],["26645300737875781620529422850371187707494257811829193854522367404940403890932","20900831908382790234981785240694176887836672509419821954773900797604596463455"],["10320934487318531891470185121645141996430209087313967973040753575763780190366","4802177991473618431442427123626097634024097945959873310021479084333880166292"],["16928875732441545235800165615077708681578866825333801514698565609700589965353","26671506780550800636341594828285651383104813561395281467056740588330886903694"],["5540587775966513304593839462774312202556726192620058573386821878575206335545","19042899848267158040945889558787977019247723418977829915778463497907809438470"],["5193392997882453333057850151413618644170084229317947041985323338658949418544","23139822262414142464366761199608787657555319479107691136543949431388008237984"],["4624322261152519279790759549159120757704978559307144093104100205981420651723","23707477505968568044436868123118192247033995615789264811719856355480721182889"],["19982417097389074930337763144769603053677496162453479646813817751224598431732","10165188127091456657403052794469892611236854550407403629743527293340938515435"],["25414613208487893464722554365431066471476776624295019603442111950162732203694","24215757232828426249271232944765097939667977210503234433118999892151527847383"],["10338768405946343814671436339361222575175025335937260951191944687687993027505","17317751390213963855783785296283961189036862542616198216600964292908212236141"],["11877475498458730627476688652502181800783888581752563321949466657735687224253","6715738784063921595479763299870123062191172756646438954524738291241499193025"],["7235958723759747552228818269940455169449792452026017588774638131449138499980","17031961497570628368607295022426134047382285955237769416198030261541715116786"],["7340372550759743208904629778246784230245474493413771639207672803697726726564","3055332497942274881053368987260439971033232129361283744451299603167161844138"],["11399226690494078642200610664886424397461483688495310532468456119614184662409","24937374257516560849526332595760794152769407589883235318879475916345433163330"],["25352878767605416471982866868296620997466205303173574170985930858937336737146","1239252094779258004800618576852143111552846511837111563712650591256708419138"],["6284809071511532014831522783909255433852008897533282307950431801425433827599","8918512011542312741152418981022945326013861091889961060568729485329203942873"],["14882376416506782097132592074313178551085206579326445378579808432462370150062","21145503062115156050841264542313658317323406740379574531267419346290835847878"],["100324667435687050920650815578543801053507376188513573135603033758592346576","19681000876436927472217076884908456464905528565728174269211774646662737518874"],["8936365613400674963210149287921335656754578984659632827025295857655052184743","15227807671409750245954507020393373802602896366171184141318825522769237416688"],["22652475509732006829368101418311009423169736378847207843637788836677518726260","11089112096135503544557503506432309825325085250518535117194145444946532432336"],["26666433397932266286302357901634107651673893010700041206516863138985751552171","2189559808518817908319815910954521541182539683643407573327798583069782172786"],["16993112703871378995500435082217656340047690067362458988942136201304933422364","3864663836416839953049396393691183163777248466864223066904935535456538336642"],["7685668553201641114242686398517068972393437191128451314479431686675147692953","1832390780215686657241319432121024276794624934442023939783196419329094561200"],["8089299468231483795176989253478909081554476220912101336413053922174290913257","24242853227792220333433627756828393053866068078440343382054228806041779078018"],["532215935438315090613830718048248620282243171601482382583280030171579618746","14327249591336153705203389298592382567160793912339250124237748947499361672635"],["22868606240513902300755254385581874613468839340254039038614910107541386256769","476002820171232913192071470844339793469452470893253648633003207976155646949"],["28205608622213088009538928978918473815526708892708606989044699431733005813839","328894741470138713732483480329553516714337038866351825670699915390364773526"],["23662867905341870792426645487275585540384856733582564428029699026528568209220","1618722432691519268523075908853495870712537524276184278555851263646102865863"],["27440058900666574708693015136061148693381859219584945279216603499551809109365","2110865910632574480912970659058058759903945609214334667815444183641394409376"],["969638594725652258820684443422918778111739304853006409829301344694483801603","12550231938369282837473679945482261511447345037356843852649300946964171186348"],["5547993040183834745938260787401810427006949709197758736599608636068447549284","20092803625382696387318391568415771511940454904067738754469052575459353364242"],["23596533272588236043458747202922756953268613326772012256665356776796444161851","12056753157365638075693257649171390568985614684394378085096989753250864978729"],["12794523104919516077969152602873110192152613634641973903047321131075371895998","12078702607458837804573096188900994989034421279150577528958079237074018773537"],["8720206936767183682893276684289860037741295601114311368633106272443380320241","13698177962921298178720225222515550022766041104071941795113639311253195390357"],["13709009381105637130825183284890513293750475381882103899130210214392982502960","25276407638286504888030204661598405988036559542640652373543225237085688797780"],["23940902863029917993739523841738227360049506802493697026536735431227407930581","19073681550307843177774506460217371588885313448299056060424289909988782864976"],["14094065794053807922692306622114329934328750738310978527554430542697304239524","22746799953300208814413992518536778171619748557874860988288975619965563256085"],["25837849742647045835256706929672470139486456997410280558904709858817272432001","28855487941897675731046016568294535887930171526382306179749802613969643904121"],["18135991984067515319340839183935792704620528787094833401986167531423553196925","26027269453462503499724882506101192935026125425294342679695520453462752420451"],["7493751630517844838845219297589289338731120561612379827671898196402018781335","25165539727988734885174986200176541693603076210217908816755047370326215820587"],["10646341006891012819799675589163788139443796371451463995731665112425197685918","22108050390475048518620017150376334850042487194202304867305550454311358830581"],["19201293142811083753481360121108734189764168884231788750674883112037263372249","23320078829323567849022899425848647603936506569569364365870415281499297950892"],["26669682451758223349946109879198560169688747160506476779173846311281414276795","10395418922238929899232091406468234488719783846015281903680140408561513262776"],["7638830634173371576083977661112733303795709842878527287052269385110854786541","716839664032885949164171927998335398147252357207202948330892808726755431075"],["12491494366273200317606252761197691565865003123168414462426856188972965534907","17188594638918779695735396761621032688528462869469195031664796586630724373292"],["12704171637608935190542937628108609423314734996408888049726649903790905693527","9696410217667698340967293303721353850163795388476327555397040368026984846722"],["3382151746380409779740434354890482171980636063550653787749752943022116396338","27051101524225479916538298293865216877377958287542986277246687191599630115233"],["1105900892066206872138167128311191140420860105472961107309026113648389269519","7199542249109045590304757706119818631458906566537913090227269652316872161935"],["3293318877615296764400956090447659125562250755941941634825613610487590670487","7016445124194292756341495733334251169652444404139771950950590478693339438743"],["4245372834047934508497553155740913035935065870420467534172535878077539047604","7884057612800396340611015017526997129957680346917357635246042579786217539865"],["15641719554114629276885057056938970774672511977341408728650641790889471602420","7214594461885682443883189472594744062986590467031414832948561571673548045487"],["4000677711477317035503795516692027894410695215606903764738295578044791462640","22993059290443295847589421611259420760955422765441964547027921540098120186074"],["6614849549940790876616136925405790864700233193554328347528987607192224788396","1912980516453876877818220540435743208868096607820515341516453279734851424399"],["22387306270677682629301755125489089585417421787649474997914133144737136796967","20676383817989876877266044327517331424988838790419916434662850265457368109808"],["6002418715970597745989285047068354209599555791511721694453055857950905515012","9224394311526848860231448929322026158424374068374738269189262449037974144928"],["7452857510624967882638108063625577757762344849520219186590254291197305393520","19949828801539468549989051858460231232689855078572321508431498733959239011711"],["18161112432389932501149457333367736685266360787770170993138274543896596359526","10483453492630699306144800015396636270226065403157616542514199271120609912344"],["876364622906733367780127261524457089557207982105743045804621241605700630789","1854678822060861210022697991751416876235633731419697581157686747182689657027"],["15184843596843899815744489462546208567533781406982944517620435176003469307146","14532800216333796739236482384964714538236155853889994980650623123698040077585"],["21324701787996006700945761622800815208573549550922336050030493487368068146068","17105342333086457192979825544495061192331021715717482859251574984895725630369"],["23177806525215097755301479762963333058280662295517469584735368364841959022376","19027659975607069087551066762405351404674746984866004748865903135621863120497"],["8655729907316375991780657203275542459094208608108618388444625955336573948443","24580414077930715359019175437365094594289783136995409078192488830207559765786"],["20152451778274782924477401372566883089976799874705166407446083069922691944079","14312699351780037027719544385342240991314785667816574689842815936282233770686"],["20084515188989425135465801043653941544172892125056565786222920776793329034222","18527488408230475771518124876609496150744454258039481502455983732201539579728"],["28708412544756841613586456989936940762957207366182210709568484421805586509454","661326717192374683850558066235730592378535526863687082558335120075007954117"],["19755542682553078926035376848137266174005060071447917600974865735005023019081","18022166881070945682583787382500949473833992816337041361532450138142699133046"],["20908508961884295608931499451752207291835314920360283132463181950693340664535","11730240604364359062225695519618191627692491546246398038906370946442893120899"],["24272015250490389772109996031549287583223592260799672731022729788817280568724","28182463116065603529688952720393705650353265107980149861966355711055045496193"],["18807456752682679854069365808534519298335954734826805624655252101522898030933","7341663510906740044846635588928497444480298814919444958786685235815163420893"],["17405189589836597471477377261462231101479342112113315972319444769107547736451","6859044911231460555617111957432931382805856986952257690989980853190000623553"],["19811285882688120634139023799013175634544249622110658831517300088141784962915","20175380706956506924519513588055953905320424347176884317120300245543800607619"],["16813109675171111485656500756639284337109918719805129460698549930257429915886","20767848968645064046183822342533778718226246055849950916674238733158463346511"],["8371498469473499534548732519113167737639191583103534404676887279445572181299","353116708196039648236735487379259813534378503774414267497075261215757168574"],["8772409756670560367744413930530283809710814780602734878045633316652889047835","9986573596362569967364660071007019483026597243849302057446536963701889199370"],["10084895599623711698611882695680791393733336743134030706844875689494597618774","7412306099862695785747795928277280369195821595428528904685742515666023480562"],["13118915279741544505322962822694018982495374883265732029535081967737698563887","26860408658409232594321042506439659629906169088984861181375857169294314838909"],["22763416085558150215822704807904387808279270381630206262848164795604218004536","3325493965596464232424053108998459324115970115960374968439010831209927913306"],["15357829879521794025926158861048306338575948765015004763216087576733342568516","1661124909140889896783071007387973379355279871103690144889976185748487856603"],["4753670060960164886376661517897097198730412260360419008185015390455270342396","25107713962006970799805163826913216426439084461160763910424155726514597840487"],["13134835970267410909907565599813937788748862961602372250665015751795375508634","8728369809413910083873874800016584151324962530349965542638206805205546880968"],["3783351228954050956650102215941918480483157700560106449682846367601689195871","15018707689442341327836491133184143281071133480487631976159895348591658417170"],["22139608900432157004400689221817209741856047691925383923083786868623887774124","17302659583219971413221237743091118309591666480352337983751619996304423548863"],["21682927641023441520866685759201812161124992040824642290327240070114692383232","13326897045083763610010768605387050597435372061619051530764544530995455036223"],["5817060975226767223153589499456677965623764176462472433541065932754543942312","7081054244041286629413939016700268176835591179940902213781311879818903971262"],["16600564586045925505680702463022661508828764806335284336573487561159588018953","23238558821868789989081797935541673619672624991536953906678187165668205530934"],["12258335637881504408272919675532993705283409581755565741219782329592967374249","16327717292042313991428660981590943615887603458738397931475821113411758659856"],["2843973734857175751768625550726952262335896974787947969974978856549964400480","14295793256161416667021764474573860346979226049060468467362882055386424739269"],["3946695719851090174657714117563035279338489272360197643031788498631010970054","10068319730534063022554732610727784701492861499973203807189535551436578821472"],["2551750200482404807729738238774838946867154755359598733696023100062388015723","27423690823380170094297340939848398526854022739992503643184728671128482038677"],["10018540285711227950016783756218383188030621439526516806416866516560664348235","11401075539016613893316594853853687217541863848614122698199201035530270154177"],["8662880828772110489460039108024367013691836061936772574621747708335347004422","26988440475821774372424300064041448227822122930849304658637500565290294929049"],["10463813217271592896666919695496200332551782209951604974198167242878962887829","23141283710071139435226214862140035069961561241125600999858130772101686477221"],["16119992582195569737314500978803839291924818290526612166398585265242157017513","14571745255776769898577096485600008042293245933178772629025127027369072620654"],["4452683048799111089494632564298911643383936627429988652873166355150078780200","1316492975393912343674635160298098241416879926276252902763149722162263672152"],["25711458511259392413825889314528151520130632686148773978571061630114637528592","15952422040834891910132227095588104699730311484667060762468213144727695355801"],["21468408494614651008703985227285234776501421791664617075317017717289741798435","27173558788515383415654336018893980515693024154404730973129090849966988528264"],["26514006134134308105650852202118526714927606882950028322578658793166195594561","27587884199297985282036188545437210138987310435237184262428018078985921798256"],["22391995371426044793088708654529462634890151937124460070472586082126782812289","4443194188550485268861780302809149570309464666698379747101801524920880985796"],["7473478912007065844741182999386925391599045402909256882140523951523525804069","18599587674438979195907412268994826003713408768128957911579285555232709327028"],["25214882855501149533434307266074121199913171547342687746393670563059681274550","10886042281264905855131702860988552074158536440488692354463066930468803599838"],["21496373609331932177245728628284979929657243739900440526208948158704008081373","24690705669735225967054510660016935490130984791002524840699380858917519329768"],["25184027762342797898577219056623568750564010318706142680062778699419579251946","21093108440549800254225950693255691114666308959747701931477709090893920562892"],["22396866532174873592991833748688837313594492103353952723156563783997876449342","7168167133921803269335198975578473373549041853371002267891941902319048007869"],["18817471065127320954947070516539130398259178507107336551181960379889536931704","9299846268180553022763557366106164215300905727375106090013687538677989695695"],["25914721728092291351191756051796711674324458719675197881329951377229774023694","24150556162806115281848030487305378131883409119530041956591726012508618093007"],["20740012027116859110912757936170553581199159064291704115623260580878379889256","25494857149035510032144434226170517901743715391850596508070391666124767575416"],["17931730031323450845613420175337473980448455131588950972381374726263466526223","8966901967775947895631279405493803105228134452282057953119178867983762042993"],["12016232200681768924058173234305589805166660447956693224450043859636942167996","3525370616114355714202891249752322762246480483421724494734326507534721489138"],["23257743260104668331245613610469603759187729626631833159310679766550856988621","1413842945313939317334234486805193366881601652688888823454768658645255667383"],["16426322241031726750691230008470602260074721902726083041282660707951186617740","19954499371172188885162791659801053878411190812653826353328138813860202246727"],["17622606275203027512918771474368799807335327849524954243645212222043864357717","6515861732314845107833629205447636529410075731829436888990832865528001649870"],["15030548111113539002657778005497236636292860337453699160888620138347430824874","16766027568701059180462118145965411992885549733718769121561929436290417436377"],["2928968310968158103615477456166380367776569784067941209066407166516740248449","7174095547564929713911609311731396158752499219392526075889224604352565214861"],["5050354512667856914005978677515813707661677765055132992512451518667918835646","8275216013620170793469955804886238793151549053780984907307849207690087013120"],["135934972913568185431625498985514915321800958690096293319850155640606895014","19183762873811130273215052873417607134390067653343589299764339725222917237969"],["24151237697927076307075912816626707101181487799447759684183286833799772339519","12062117877559428068436515248269142415156303110360111409183001032839827320580"],["881958959388727829971982970706054901176408648763701018173121322317441131497","26905761362721784980390134507780564144870340930426101130271449046697938547834"],["17797298301045583605052670990683831718641799739896308724496406340434123228598","14127639265235237487321596696752699068356555553660105091799602277111846107468"],["11357501687629392885415985546023293411045892898088158531225287438882954946146","18033682753454231993407599024835385573579213283146623283606280331858455767770"],["7362339956723284654597532313481205034790810307955591318808359866142972472845","3747041279127577733214818258277036328096296989022119004622037727826106557302"],["1450596697232348165774982648777224098328254254584738550173771356383643400486","20217812591412989442927821686559803456842068696397564518785740670512554052559"],["23752054060576698820391648125021633796869305225390617363873777657665645526230","3264303378088616356504969246572941034784851153913493701175256680069318989807"],["10409061257537498247330859235576597668756536253143236725273434756129965123626","16951764974144771921951764967139550160474645677569287247876043666748504481839"],["3016449869595032047968963476937533086970256704267107233582079249923008393054","11243377234869619813894962339309003752827354251754241622246413932932268408121"],["24552165977640971091853934561439348462145327728206561486105774240922850377189","2164474140817109776969131543844360926738109657646023743869236338406062496475"],["1887808173210415094196786041087025051213528629079731758200006103799357857286","25522591491751279252189376717012958599774031146996227632057734891545016674896"],["17951601185127191463498530780632107988528390719826631749580115676165192119011","28497958028494732708591975836984529145746542889829393913187578975191691488866"],["11834342553850486339102848556319421328769153579377315753790022014236263089848","20873615470520497825735151012533167010407818075930661095674918709210462668012"],["17123641787273720962458372087449631023838692813681256481873659639803528406018","28298507054492941795871171327339362516594642888740541587601259496764376019341"],["7785123588563253142914151441121233519719311935584266288803995733176661729420","19555133566371031034969496060547123173779919278979632756454580564063263489989"],["5651435833197209199260274828094475071803899775455340770021165657429081883684","18423999615318641021910983466701970278055228769831948477858609240244680273041"],["6474012968498132043650133167757388827299371023685074465038246849696542568372","18942543236562085812135015535712760133721777139120495649836710087296770013084"],["21695688598453379976501511856900766953963358759724846551566496366198354146496","28684580158572291154040740409646148427516571064841673685614622510343941575816"],["13668186887934917635088607502915207870940074669203803801931457845497712912042","9994119956389315680776489340514831042975380633332404255986987197724261978821"],["6000197560169011927353670585594883969868132218869587673148800741376931106143","27509193057297720141659014157019871673182728429163670282347934808214056200482"],["18746058840546482252402870782861835274817966524436905885536325457754673671101","12756289293814214740930753906598155582581489413545655047916210495797325920400"],["8307201428302127248131614189489149028076018324513099053568045299658758811601","9643340197072514392618599567137861980416124533164284248563412707906478572497"],["13527587925641523052786305192776370958838516027363530197872993060253607407520","16465349168058063681508369778032076450858858719663902706527690411310939135807"],["4646094223089853346556507222903908103124234403556138133305658902944573857025","16422581567274509810070034540526302627216067265861724350962890503715522207063"],["28503585302697684436737945459961995586355645205531745854918017531863429435492","21405409506866498423351048064004769039243952189968774035875580034978021233968"],["21769396049963732311736075680770211161154312443557420844242720465216292143358","11188642232213219193373783095320163891702220054789572607469624258863773749204"],["26064071398017925025791670477447130685126271221370656025630047834929130767137","14511227864272218966804752114788482255615628739336441256116763105487901596888"],["2143860225862581744716369824788638290587300505045762030907928298938016252357","28733290513184156296624428476721256180996545807007311920907056494080086092186"],["8305935967013345965227669984987860223693225361737506209789765628460576134370","12451652553647318885582289923720836775756947199026258874649032090807062412994"],["3496749695248020158409903404994584800342124602890042041019238291556975374890","2872290643573760995981201090201867004956120421224908609411648691162754564921"],["27147687074474827080656163380830194535944625362603750385163642569461054589756","12324048713903126111467643947270948843901555594774708526917614547300336796649"],["28699588813550182455405763073798649652715038770348419252338898151939944013124","11561801923023809637651940192159127084630401101966275918483398039455323252517"],["21583719420817145067597966093035552720418923487564830008855902555841496447000","8366160856325368532856934343245417942871023815562791304852654180419673157875"],["18377649527192583505706949134636633177211952763756233651415524790368761715428","24096024850573991188557063526106692548465173299676648792318848470630096995940"],["26429439026724410672116065197673926557968274309262160602001757943326921051807","18986465146424892895390830892958313318747537726566185067181568453150222946510"],["20092122728772930610742380997759381757137130874584009392013105039234237232768","22334024675816284703965094079495051298268063638911971903183814811644107587063"],["28486861903234769846809443530271940949795317326792934664826624995573401656357","24237802788194995614594872313860391606758813603242316249158283451736901017161"],["24717066364565942356334444642008858923273251196829842964670214001560108379703","8327151584113058953943488734348238732451363142485101756503347051752354692701"],["11921429668533240866314679707050359918650626672476308220218219111485639311409","13101979321088507500965288903695176007503294514958100394523533678980250975379"],["12981153105486878799320567004002778368812632917364795533681743527019686780887","10831910690012148247075715353860165713378101559324352437002174119072966114338"],["12431261530088591923087854485747442677805849746973608931370980965789497869714","19503753233581317936221305544964044886097996962924180366531601865238830084705"],["11532156302147656878376254439343350699297924663456580818922984479215746731780","14254066152706796589431619983040586163512123116035654219491416356991220933552"],["13174854185688487265180196742128157874008312254882037420288833016428705953227","3937780721637540919087309323680973799721405928197421461637517130187668574925"],["8570159003799207795258445979464087852932887602393653398294051015051035273037","26931905689053425745780384114332882052605120203551325715324694755298716692596"],["8549927307847676556340163410136501638792015305925206568067122803509400603267","24936067699027951196563815415731109394434265286519598338111215562550069314044"],["5345457780982498915491126673546329925299004741623283613359031402181503766425","18220886400750899840857356444588420374612980839537011884252264691133770576853"],["15113196365827371102211158596826328534564774742456665783389446695814433543127","25678478706009729273208515214858057177650006400690330821604368229617345559220"],["2056239641660827750669918376065269500488356760827805618290444397441633979030","28506353735306435917151062996447628883821764526433671648346249261275113005687"],["2806350065328006650544276272555669858950281188912860126061081020137267986631","21479293254361848613054239063177719567124198115954637542812719605186243799875"],["28735439637967246502457899967680114563802517390885676066712525081335623460697","23202998922517935192449947348432633827105875591820172433084606607510631275694"],["26201850891553453925670613352970647219261851124683424382252892733237931608156","745905739491969320611717005313589678126552924262737586633477436177990388241"],["15490719132893852608551830067820217762659634697068355771408413537799659950547","19204188515368047888562874938051372072015592127221278967990242665316841642699"],["3611709475688438350877275447196741393404418360645150307869748175454577735428","507650585639082428940535560134004758413404505870491888951303709377222030365"],["24916147981668653285587662738647634372118668949568039105854598564628051248178","19290765554077814069547975358111802458927348735030424605878808728544074636523"],["995540655706864959865477858127255764365772976006696669377013992292221992375","8074364936912435328314785996925782638733748240293402518731177492417257149687"],["6450196528305060119212877363140120717830723195236448953869341469117055665748","25824201174319481018570324430534196528517509711845874093568562159927048881137"],["14817930867187674414790136668880344645498511421824088949646544391885123914387","15266641220224811957773720290751174789315130582676710092745879856808632136615"],["16926723353772378822550188140135800661696492952307152539494738565198185851683","14884849447690376106339501504774131116896953865292733318213879182921851257141"],["5902461974082545774180582311733001373432431118466914837530230819921612354292","10168911640127355436505609191927304507281234803917886349896130245246042865660"],["16659201559586118463507280066325313266639702690598864845859605837810791780051","14276090225616200755715137698962922630203775442896058958905931568353657401323"],["15169082906571170187787231100351877252120928273010824339670457666740873507756","6211134318109088328171688611098655961310502931390406698219375520051575049339"],["15067051287844386730172312805314386204047329669700291107558869645124933093331","6612343594787653482389199537971138370391522705916732805165829899496750439036"],["15424904579478740860097741481367721604115571996327255665649406864327057385821","28733653725969671014920504539102650426460780543859058259184420917337120012307"],["4624857311500705920694582615592252623746579059361745912837552887213576540920","6987539324369067069756599928410845604878671152520211097501683444420804724407"],["27733065406480492842452733975891842477967133520255928088049499206586910039759","4431105501829809638350937417615666157509032141745839179880427368014392819481"],["20649381140301233549646016974790983401366438153298561720966491032357795638479","28570797546634207276195165214429295326863375705489189102190787843601500291681"],["9652050803106952269706503700394464435405459768033622222856508917472774624486","16174458238561810269297189129747768720238923848071964456435197448777143074951"],["14193183601427480013176904417134894239511952991291734557371101939383561249958","26047870198874155512416789447933216246982732206270082693157437979113714801057"],["18006279962219134694244822613010244879466957104157623724180917589439357538417","25275345599369679750252364243531358824853087773598158139955687673073979726165"],["16984188468718912329277597547435026078239305356131131910077723710741971750440","28021273144455992341375065854103099780769746150569525429152150299636423274848"],["9535673922816787834554498716594637703256535229731658321920623327025657371857","22889539268021871537038029493181037236043043746875786597615709726318665637152"],["9596252200239703480918389351267542757170572228986664751231147172413609543854","18058127549826124977799987737358171488935081052576433894959969294245454009277"],["27203394357712301088695152605181811966337519006922558602688826037910828906400","12509547573672681584113638342066497800116282951941215958658679800917286174259"],["7593421065334427418824639856454219689424748719223609107194591414427303981457","8535456388277668441044983951701283449448715902093574193520325042080839472714"],["25554970831769255925802482075334695380317585239602982217187464423565137465866","13706020331277893700443587028482937426694704429705422435996616707169921549728"],["14417143717658570776110293392772197992507988232851559984429598235156729712295","17540586218202804527375002072469925272526773182513117009608664555157795475835"],["11735937947354434929533481961320574330181440366317712393399686452592914963990","23591740280194802059372295158412421895003710473005289831565398480467046619624"],["9230941543898656809346784389173915628478421892495435843294947965001273886497","14343461681209134106708157237514120239422839524394155662957540232616201465206"],["9240599409808974570398874950763827615173210513464284928108504490579360974428","23165136820694396264291883287094289793826892169639870170410036919039586189287"],["28123712438889730680478552964371206781481224097965169907930756747521687966582","23341227357768811386233499279037552902570446916732533684882437001521388270684"],["8556576847886715518144137043107320570239132136128840821175847214415896153305","51336290152423720600536663974086730659574999395639989202230805842523583993"],["25520122749784837543169010352863395730091012599393210567871655290861629526077","12597393105525808141913890819793673280073271906595768105970826256526875619898"],["13450331687391600805612263583650482144153136855593925681016393526944113957500","27096406918270888088978012518390504698318602358909322581586026618834488390529"],["6920850990038626771607052471563254092524244801254692637972358148517583903521","4289269226531061402580803180680786124552540127205206958315897713715783744790"],["27182442288777740838947841457252402717815122767459983585279717819229317525084","24110453681879017824510952234089729202883028425129192129688660269251695840442"],["11304192678005499607747000833292187870374913540499123938687196533561106310550","26826681699646384823684748089644425689964848889185089285233450975220101855225"],["2414103277513166824751882553080471581926271550632976802293227635624951593692","11441100864531590554747280305890344389234076065374192531106601637142911590200"],["12880964112349784886091714064777972663601531692059118022112681778935789010841","17055936818568638741293367191750968834380989068345692876393293622389447817173"],["26821437239824863902802349183353232187578456534759473173820300183702255364669","27241161243869488178926489369694800143511963319317982641567426472608173702403"],["26182937762445876628413248210225342534660169061414525668533885540524432055968","2535451531451760774965709662700382315281810629895686935148625641736652206173"],["13463213864299698700087121003729531910999964509150409420026368216973314391940","8785852465138112140738636709017660691578995827343362785475961924785436887799"],["25217977525490877303409021812481883065267926185268743956813397485384145052728","21170618690568270345943880408258475131617449911893252898374991903451765425654"],["18966840687957234407910382586851688785221840721397830911239108057143368448807","23187288879051282992276973776183901143938804149768710187197127705510994047069"],["24575122040094363350723830559103915218065640173994993876484996671811019740489","3292349340426664078879657715647403300946547229197598084924395399502741370651"],["178861106311071838914066398806344062254890357023085871181565260728251384613","26326793117656001215513164600771992494976547329895633338167773747785491766835"],["28406980382699690388198952317492160496338957178961118151622422586395292274924","9780003805539816984574334181432436734844410022466076525849255902243419341633"],["3596582513373430740514748374830803157037500465208294599002984445807309809978","13819731732116196094249736741802899130115754204569512725462268786582569811249"],["2099601703650027620217250609113670898372898794070273518976317371695045132304","17217220684589810287807849368028488207922992018440648699267682545274459284697"],["19998140037326467700179520943871417749912255978658040203973784479761710585349","14348783389708043622221703815663021920256354059055504822465271302225565644915"],["281654573841673198326509611140425634419591738196558502125142512812415368003","22391483566895926608942866731465667992470182008651302081928011789592013199706"],["17943044669887707936660231680496326104148409940159798690888826405323745529473","13847064162846351487759439261943269196774148331035229556949297487031537790794"],["8849748476676584074299353213759500146353227880899536268318626092419716349064","26572713146166626595518192704920644256418858938361369726984370937966275397485"],["23830201233169181797721481511045994551793023827975907969939408070554327057134","13693252233754457650467951425503508694532537377381904364797385907729888387377"],["18453007792123805176806346350863171723475631105517151860821122051212698419044","19053472484001091478946585908202012271505388784259366825034415896482894809281"],["12564945593897740227957505463865548378256721870042532090840733307269657275213","4993256024510865726222826676894728301179026256607756950823464589169600473629"],["4738301920891858983112368999627770986048756665088004338342336918452500728018","3541228031695686007099245756896753801225523464902104343568997230065274508723"],["2349838154800092341160962596057523333495963172697963913552652973986953139983","6141623013570848101738272321488022593453282593547080565949547919827393961369"],["20299231254466286917485183279063437207525637827619103302346039391797068735096","8644893045287748235743793018360549453431665211329652675645047076877575665680"],["25749655420092359617737560549115416285832136451836087630648911644595314928671","16912027004420915265155392593250988485419383935850756385558576671759399126620"],["19812264498001908708405540559940327804887117669355116060910068883726041144552","13296197124062114856594678768315439959130333187022909890255810284090098344333"],["16786981168194065704713690232798346853086057804901240457981219494597376156636","3858880684544914721816790511783819408086674052711793080659040867133273727565"],["27418714328569348599180168214832697038232920929089571522111615798553980555114","24991282110093475977177963297408338147624611676295829988182222257356275947754"],["19321176435250504965144080125913181974735846850431974135907648680473907959208","14686552849599331959577204819679800871241566220129005992902584794887128391481"],["16443577787851701269971899326596925452307802963354707248605545124153398125661","7193448677965506629084740965732525953793174649150804529218484539576005976992"],["2075599978510082574474001836264226271314829707515434259439781761345880860141","10913276610775989078985138691409502276653439186105243148641006563280186294552"],["12698165753184355392428268661664027782695687430871734737536685622310663046209","25544369016856989465097153447047523587666137719146295618401430364123060465882"],["3867695585145182413561718029053519604869962126962013017001458818884446676187","12907010630567614309835047464358067860825732778345828733951709451924189427537"],["19204782218814897300637560039166944522402614562385620706399204999269950312194","6584858625418834492054016872296092669385502421658719443358623167684241832181"],["26478327547752105087455482272306447405713226635095412946419185193687297891445","3267460526850827872683865549562645576164537577629707716816579319186894887192"],["22457898892588641276959045115746715406378100746554295868177123114898096283528","22881401900627736860916732344800447305901003777957363235788155497348825272305"],["15315914725783462216368287677186140000470938235984668412460791796663806719391","19902358203570853675210745636417749323257014307966645289872945301504451704987"],["21823660627780049931238059414720116575094710301143329889096827062066981941194","6781463393271654595003542335390631839281311559238538563916137858383486255811"],["22279722185333713177533885875826683606880064991412815419757380015975915371608","11950837620276170214783721035444720611705088831704898171671220147384023254893"],["28515727034628639570735468302412377194548117733337476363085725771314961469837","24269694950031485420794735311019765438140199180491695030741238050981947715281"],["8268997402594973957926048659138036953466227101289505267580504437097368367795","15956582897550294295576957852973577615109079464247486742895284305949377354698"],["20268077018334605459801503470255060525115699743167562168776512312133036229435","8599346710010199669279979081076446687476926057463345700009190552884358867750"],["13322653100769078747450069282445219067353830682321889259224693231040722354037","27112678777854682917776620189916308543825258933232299983705979572651705463379"],["8776125505086641415558545171218104741726040251710631100754313491460256088954","1454168669179152812963139836184397297890802354858023326995703152060424083306"],["21743881812961239948607842316071416576626717421300872285022342822032189023932","25867723178432871065776141549271810162963513542064352981203108671919756417084"],["22609207832246153300073612737935565744252819088281670538865099200967933125542","21619360846927804756081173138712933748107236930009688816160833634669317037593"],["18274123588530496179219614507793999102838201760442742659363766314763412370183","18350684492624287762336318918892953054599585994097631837922450530758908891097"],["14774959545098772375563980581173302392893509840725204227143288495422403785789","27158068718296001711302111913615208167801097353467187552932733156385246825206"],["28504572110582867516762823465316392265782492988803201664491982460031901732971","6240146593770570121553422831155777639468501192177836923493695513351560754288"],["2278664145172786925044500711813978631941596182152360056729204204952518694820","25962175527644549447650046956300256000594929110989097110603750548693419328893"],["1783253265984371351077120096327214290395883267976390407087812882195251051275","22452119803891502505610550003284442080931054109121490867727188602128205648145"],["11360740020656551657831378614367609644473403878247831542998199306577578510833","17783592741423913728490393121404790008767323813929266551888105074288724928774"],["8654861021988464797847122417685634798140405359522694892188779079029838729948","282868257371011652022904321347992639044695284652544693675961864506514155206"],["21127300867203238982355567254592849478853097574248557391252395637532110395108","12077523926158860385612409527834301010140908100430463121540196431847848614044"],["26001107864259407933654514276190411427989610948130182901287003446861982189806","14203030207266270868830668424689093196799368506940413761833644578017465291895"],["4045569251180110718548547142231702861131198752814117316630445637223400545379","18246039888419761916525657533157615254005432210524890233829410452033169690823"],["12077684168154905320326213291596513000503849652986861720285071455496681823348","23676341057642090709784399112401262748129014585501033340013421034717045703802"],["454333532943464968623630970815317006608908523034734143161867344636395607121","16032460889641830010989285054434512329709045990784910996600507211199496546920"],["13320272036416110351440303485403945304162362877752174305095327151931175641163","1161328522703136583908440114534690699851376978549110667942459094716501814991"],["2385779554336376792090429524197472003992059576770859730499968119878285689436","9597707383879314859274375303508755516636873197040235343547424104283570998290"],["22636257357973917811621395976150904321106041994523480836291064828952314891414","23766763247164190738317053014318275395946053909362173394704680381733660184502"],["21314534422814043857123879187686985394221364116673572160786426418638052864898","21270945905922334877613920225060148842281913684923594807456994891678718801503"],["9413727023976880416414211484950464385750753517483437144276038130197352810132","13655220723405196637918277647996314946090618137240448368165040915778638420317"],["13402195419681699393389352184488151023713570946650069790097126510595112395403","3794197651418466910134953736111524872714311365121815127642897065209905887077"],["5206897815976137407956883361093300174427255206050778835668715538472229534317","12500902713370312895843888885803279515008533145323082688204953028976346417567"],["14874657051889171641436076744302980893020150647805511953613977465533015534962","13726814675750151925127505615993362476016522614842432231825722912418656342558"],["5643921676176490877182067839466572743296951283624313148643965940588614540312","868982591349184120885863183509186696841894685337433086919626667991081738341"],["11998231548711693387863900706071917807647644523678255355540127795737999239183","19364952087525424605675813301722151301335520299644545676643413919231117717924"],["4651239092303623166986695469201392929652264685133880154056054881633724723712","12731353901399229597916162128168610835437570286837793090327135216165402295922"],["15096012019297158439773466880823641019165294111870256649049488620170742434825","207128140417334576528096289919614831197093230931431300156222022151470284714"],["28747623713383808595956216258899385728462672790914521995941737941553245644063","8615727940288595869162847221668950023894418873250371319513940081681344573757"],["9911362657394476367447249861157092667367477780047356926105140003989076692924","28606660671362761364791525144815763554720625769942188333401777629222257735340"],["552334760366798415714410632846829728096367932926401701995853180903255092752","18127756448934270193370718410482377638993356100943996838791111420203057197306"],["7529136890424958217744543282232185588540479378264163068213705989624368363922","11955033375256559603647025973725593629702232637536669852838078627516897534924"],["23857860736496273558195122728241151541244868622102818376720542384059492209931","23959465449925742859378339439299960277940879508564620947491443299525662670623"],["5399261068345531722401301169705100128730653042751472142108280287118678855921","2198572726426774344361549654129834019391517846448947318543973524770619659705"],["24457895869686497243282305496877339760786553757395016104688085208599375812986","26833193735942489827801394265830525260931730845167003282242576137403145014882"],["9481211968991427787492069657517291313960710231238603536314447219860802616065","3232946619039412280237250139511327838317528175853523185211131912769405120423"],["1132268611079865984518779638197847100387274915169470378792234334660898637150","11639436254009798652357172325577411832578517450103286179165769346422025997961"],["4910715560515502807106803048543510026362312598452156491143844401939326473569","11688616029618880979517169082725632904172129110658735453126426639038676275055"],["25940597346175381526933064739270675061687154160847069366980655778348002553016","15485498212340683507474409938217369419866585727486916206962281285153372470729"],["14202510673707422626819502067034963002449033492048636278034470039874338982824","2909342816179711570963060876679437985551082355344191715595540114501156504219"],["10993141054640522418306399753985675442130039069063744869280232696148301177761","15759698648833117766203183499661148062448760622240244096788817190223880961729"],["12708076152763512544389948905635309886890498721061196767679441687729088629585","22951606637933418129610756169490943569240534081165699738028543163456714805529"],["3235082335508871792051589778472611742180274395580495096717482830904189093616","12906011624990700694505617494904991294007825145120880843833446867576333205192"],["19442518536659685381538359449310475523409768497586822647897939405754058447006","19954149100208758579361879268999750136790089232247616845571574501854616242689"],["14288612461911102410153652322362040737728658560686601919413486252985040195600","4247436136873530805047769785256433039005873529828186009774493262288907463493"],["19060139820055433083269111923320541498877592105649934581850248313749533559524","7129583127835818758903013752938256635404373005749019950246312430413101691311"],["16781584077535590678040772084429471233321929506981132472328384299516049854246","23717347496050365478880610510359565655976583580582851658899595264470290965718"],["18900170922342085376338860638498554589757763505386477309149403387705369942000","19040393584516551283761842223676073369695690738218588983189327866733045180520"],["27154797736964675583318862763429141183082640074286134065637652590612204829504","16198559223701342617657417707931360081891837486067809473109766298665561513883"],["24194670987484234323574743480483293932230974625803808624956509179199506365914","26491987809052195459814331276994079614243373155796592395404033265590470991976"],["25260829720431879049417464318978402397945908091126103819175092023873842339622","20811291553762825807544851804732015180967098373390329751541246828845125704541"],["23463200979170134316581582221903384720350304351095219345113855156355099577189","12500777441290230457418004729901638726278193202944966402454714231025189142199"],["4464985072975593748602744065303977674915522517026210520678591015831911185149","25543669465427456262600814894131018714725700292130410076387730023298395060181"],["2675197289039283209702020266705492336684845418623023589328593892771057210508","17388344870313993117642217969056367762346312942427081522036078466713625064870"],["27418709018861518403967432933959315431034464379039580236784864353627368794219","8300402193234339225457706980724037202355324119292963299145536986101904200716"],["13816619122801906197979225531426646627097846266984017061644078753761729433255","13091262531453769881662616982178277442229215101914437299175911069912513702902"],["4361675601788651879691228565571941804582274488707054732886357926341882467407","2846134728457053579321219108634159434209682369845928676738290859391289485467"],["7694150612224911974015583673001408502121500699136818433232322457567094695953","10509277756635872383103100025415404800212922385031832851414394738424622824302"],["17976023503275943161553718263197234272939141599962843023939871944797974117010","28096515425619607305732055826266151409041350794065075466972210636948092876497"],["27365537262906698980467088745447009562660360771893971620824596981345730853125","17016662419477044753149702335676207419984150843255425585239897711056089962667"],["11344856937440080496153197457037055714803619252399103639212216298741976139376","128447416686257681922386287857817733265840050047267505129839618693170803032"],["18864083506736303333326588684163566360380991220547931227040917162372836264405","10746049971307687180007760370966918087264534305809470450533601947885741234413"],["13216758254189687401968169687289464859302270841071619016897416851192571540668","3104788487758817255957020684775873279221489005295958250291060670794300016045"],["11824070039343850223682979543864837002529115426523996756974645637129310812724","24731506927668013895341190361344811878376566548921269421380557529971993881088"],["17702651214746336101165935078642241249308879411879065734049182798466533339708","25550582324916572362773551062090459560159331237971954725569238971692711171268"],["3638599552842020665569769144059011216748819738837468641156875381109594051614","12315885218318259457694456379562778763930510134718993741556697059026640351708"],["19666078251321635618949765207494784676595570560167619789188220669271083587108","26147554984853758904686045681087370805201634354281067335044360552477425296616"],["10830297352849896743448619011500953482119413644434004880189453485844108108208","25222717982445983510492543525849964158100666229106549763880920557796915755841"],["16604676726784422864713243788582214238502572526100779524992847817129373367346","6424044925514467478993265961005304015757098301297139127927832598025488145245"],["23215880631523977045839782309605648866679031095753387017559483378520673867814","1610534935268035716307406871136439558258804483273685967566925275605041782108"],["3668884260419692084991420617558125884674140829992820405006733753117089324416","6847615743975535078741030855621348237810424962045807923776222097218166231759"],["9373162568724588476986490171288010942112240144029940091290986508211986888188","14816013562510046485075467847411651703391851927069277307286338703274923104038"],["14703829739863983668430781386943587746172882029075637092175431984962341990942","26543180575297716810717888909290386908565629956132349551556576258170915895439"],["22615777554030675932337563871031343200014107617732647495744665223186394452973","25036821478858267806145057247810866466165909225818574978768307907762279743877"],["21540684615075457145789738080745027800883338954378734892080898033341293108658","4744475091852655536226880316161994314733978546391717360644742010125111677139"],["23994504457683786138680078943547432333325503416693372351447531064821726956899","28933963516887391542607676872988400938392580090262026111830681824246973657284"],["25001744026644912535547586413855089040271255338229606217453471399193541606893","3862833766431413224350594829125192745127571283801420681280420863622987940281"],["16369656479640486937889394931304529942901857651252058673542906270865042335593","2514327516734336706959657139230337962272604460471829651519657717824765273365"],["8586886277685446097411992793323369336076039050099344930808639414681758493656","16924684271617952286138803763992139078970793088383710251107516335341398331491"],["17918539539257370604904228525088701392088994374493319498259934780527851388719","1433543079934658039701536489831817250603969807426245215357499292224039291137"],["1492594030182743801614663774120903198983389248162985183699324696776888530681","24490890653705172565288297799798907978652402644893817816867378588768194118043"],["6477283381894337060256084068807849659608528610723895918331894345780731244589","19745030609664050601074716876776774997079507297421218055919703031883489237929"],["8241262815170493157042818561271131465956222943434581198636420406747839729824","4988251770703249008521869041311000334908292201848323423427719908099713035893"],["12053686287218070158613835056144580645403400452316414910423434056576338681038","11822913140113222776844106755464168831232122418157734073738239985403660357806"],["13515721060393341249390145674660336741731004287683998050451897202659564920917","2638437287600067798404874074090565601349425764156233274238918333212188049402"],["561168363138729511930403451306528038603520014751979585425345273062399866448","3532262782678697105401120018539213394042929633544356803774776220683204536437"],["22413052079967074343532431313577523994185800197706048980844782109435061170786","3652687379965746986673314122416734573022443222101936943949038748284513702325"],["6841908460053183520572190035205848383608013426872494316709276785134971198336","11614090381726180138302370521091389277454677189680586347962033381016278661497"],["1625526283077707019483392531729655159616498554717178350473159830964913893480","24379175037040057030173686946629421379079782283726547072956454911113961304401"],["17498016947425023186187404458427229276740339613576560330422205816657966131784","9145982462311737700202854145159636571620346821676979317980295333169919750936"],["23206523885357296413432073268628755575290529812542893526589402673377471167712","15419625313037512185270963482842876789331608577792403135278260272372357125628"],["8619617587714573172578023795353790243420454049398377029750166159859883970718","18512737726691962203393314880761778963966207078573613042256283043836199639729"],["14605070658890149174578780668421574148614322627587238976384775587075783798438","23610180010615095563162342987152825955776007605182931995964567142958791448657"],["7377517770175681222588262440687091140458666206361521741911641442622282194982","25296450878145715037876158906031590409772324052766302128925623113222301959876"],["11855451081208561672737672982728556341067175147343908865783472316434117477481","13865873113297928512622846506513863259171849025887359384645284108688982970236"],["26966076472266358309970231007694783593423983222532387939530103958411425092413","22495181036227460650447368397216795211316157797870229192231140418904260040186"],["10837423204358334787251877389623256192311263597428944279491678276453365377620","20401957906373905933328985306243446733518384795995595956204172595954818019234"],["25123478112288169564798276047982836143482339026382542385881132277465676456172","5778844227220058409957452275784929405108491679700508511640113198519284423855"],["26109533704090137699112497326061645162531930277216007758061856802595772670636","4510282868799191212526891496295316092927124680865008797549001896174071657965"],["21909390659993716748675063307645942543555787435042016532641676227537195416591","26092041732397650702733883580474606775629758905778740770414342446373467467022"],["22912755524414072523548429816086672348728186142529456955579030825165499160926","854537198963470946957994040995429615387319337081804077369872369559276159556"],["25982365909791709765528773329819200906806417354498624107595872663157371559372","11363830906382894886809235363922472645733636104806360614439222292236387681598"],["22193509026031526240699390419522437290199625501588522586511662692883529401582","27545503448530300411040857437170897665087892238381501162472467765033942449860"],["11930881174007968721743791126139236262161512093948345902176030319338627344388","1094365605219405566241038947394167157641646004938756903899537677992206505365"],["9221544888059173924893825465315491128912009067492176271634743680083312276511","16192054131569570390202634573622435236398803947386171644873950499775267811266"],["21031779986746098486647964504173015192188612004385767948120936547341361566481","6264342566725092363869883593431068336605733382077063956655577245027132072201"],["15340651440554115699927333181296006770471113228328928924551171605459882568958","27540967818777721525470286680895106871595113259923300130477057796684305491686"],["9956353380981677555868635865410585951179622810850098055425711496866451167752","7523562140789099761951118885795469472652436626011772901770832605987223057920"],["21783895673114270148907608729208501294066642650339215481290449146305574488960","6513781574124119942375160704779519462689337062992702658522298807446269550334"],["3692625700536480888820707779811643456798504117647108551494579270027772289923","23591826015272916786242715799251993085483079835161379653005149331359759636113"],["20319687247035561293880333611698398096832813111917610828975309173056037464070","28605079926937550686405846117735069499050468082320319228546161173562917244189"],["12871646930644095352162205034930560642562881640703523933861978684516369477642","7600686632851648057154977843058428857083670201962529870441288922547465333375"],["12029828233760393361229872161687069336682163152678889572282831072557524256002","17590024768622781349572213796864621729554442012399705366430556483297201371708"],["651604458821193409928312229056971659690458677785952660849284609599447260577","22486267312188903402740860774327153311255781186599291595845546251227302067708"],["10949903052074005356508703238686695323963862595787224015415908881084721277754","1250352663631600723302580047479831643059732311030780479344676467555531736773"],["28766504260795407991258102255690574749752243336650635440588047553265325467912","18384715531493916761610268041085324572630982122686176626481615281601476095954"],["26423886769186184222215439952212847205443965395655123494991074790994493863100","4209845317340961019438338334461920262154423158396452457543127767232954705419"],["6594302664943329793144524833109466326562011407348801345271091243756375521753","7214265355178472393302733782588107861271404480346761451194260255094327502203"],["11461341248178860143383807739263399376510437404711050193420440270671696263006","12770806049141936918736947844462686490242896142811618865766763569524074232303"],["10886233903843980272066276952052034223652071114023011352117047512544514067567","18574949068011984126291296853191156582378813886881834359110124504482015385707"],["12803045069131629988273463432382619067618590201292442696105409616889518910185","17190885031914864972264932411349091479331507280425636329381211254939205594489"],["6552815091596109521507380023524946144438441894796101811506645216474776819882","7885635477630784704164933150916561258799162075167548253931430493842305785746"],["22646941307354337465808121941163647811375236540091943304603261444861381286700","19941081448436178076104933825881289356184564885278437590881512459824573575410"],["12183371747226584020103690610371888322809158536872185276895554758634748996693","17120742808595533130048202073108444439180630044548952598393647151325626328154"],["7670174008018793273089373736934919703875989939928142515845592183018816771533","2131920113849947318682472551323224790554911901268878366456505419154308806753"],["6137436266089874221178738002122229612665998854653707508502433661123556168341","18649097782391811558012139983140977905717626028748021391020546749743638741881"],["2777859964109997784611278218561819627499637315000066880900634600704898751385","4184685380089280240431882376296998195129084194257666477247142369320056215681"],["26206289584323586771449567738647942555799828391300451911628555124282955647038","5220544314888052173141468437551394373355178178424074998814059316074617779524"],["26586946746451912966023370303067692215266628247601215348620002168400304748342","6317121859127160280400456563489656178600127166792750515400139448978964697590"],["9828105537841992685713090692998061083181097534283401636586047926225179425048","4301529260923452974439314819570300820576579618381686789905464423575141422724"],["3386162749230023260928679913709029360167582523006515076229296917738023716232","22772121426905468762877980481713568588597467240673596540030451720236117289438"],["5705467104157810202007063340608983870109902244034713678585726691406141451253","3206023441178363775953038562315954880075446780639506419095125215401522785947"],["23959362817676596916061917712461637799075932140367362092530779671271783274610","9608819845579855840754014302708305094796688782855783275048426496597223399006"],["10337930124561887094998052326785289987529527056214736752374845942679036905791","24284679945670929118072099820130505243714266266977282310796768230623219060956"],["10870161998673260176271455514005446605032629004277479476570683243933627112779","14290626376820941608128059689619456272517680247546062551971783141338954241576"],["5137122421192031322320258021735684537981016800225744427981795822124565569832","13325507645562704329938913801055473019537570849791211261531059984875448686707"],["4454723112880891593445611153209510266370590159891354095300136486931395548012","20769785198530284738316707021454973018155359866088892985884925212770002515951"],["17432884368502614279759958172503009473440959396411438563754823604272245725489","15762062296482908145410523752299255555080734430629350612142978611030595325043"],["7001144566028874409934634194044417487982558615841317948824611772680644235584","4494069028610565445151856269675584542598026898172250693570767733119633284575"],["19707813484153745229480127732740404584105583543990119046967134996232162672383","24968579044060695674272570333785678886992054317105839311449604235592897292981"],["13104565171122515295596120141351412319657046186934633844449989050389287637053","28572473273559124202989731692482467477739255160060531771354584599275894005125"],["7265245372263904902289451776164659127786959656267634953752232392950305223119","10442222572838430539852887527625828131578074741969976957370297399873021404847"],["8567184994612768045760126098235002433169289389425784429162384188919558825415","16872943098766000022361787603619968784692140583039418345010659545476959847192"],["28777285731359287827136760302258435274674041848842239488557910221611062468111","12057768820180890699341173027557234429609975970452104152123759175615268866946"],["18197764356555748985035018292754580664335341478094553983209322049715702218243","770773817617480743532913167827527897568251792544903034346581844502204713285"],["16312513342356819288062115579692127384953779022336957140178725660240713756113","22407759225421273198055073775617839766694360433847244815313174321712683451247"],["14407078227928543819607771221501110355198561656781579067907169331269158960036","14959043027763778000119988772804515892090013596364914162421220041816870237621"],["23504777074514353977865894636727842798115441439003194932475467625351093504922","13898928367877601840439908199136375358045495901376297372825120968875885521936"],["12971776788642201979362492924724659019334665410976654898429803434285121619483","4010094638165155942590386387340920343802432912471019622346345126722678399086"],["3068225479134591966698986510748502600301409250896357548083984086275168809475","7584041156520372759320861448910260245949926769626580309878869666646351437194"],["28127872958457680508082157072017160469825538649170293658165404199702098620884","16308997094089613063393808628410983787211690920192836703434562811770751923758"],["17548889430714555211487959681996064009926997285234604107896379909629122889932","7733417281805141331954407264249058200245927298831196340639986709871329087452"],["15088395203967426339245041255850478723869948723244216499463900886001475885915","22493113115139000308382200872037621207601891839058976412811892781391073005691"],["22774332203773720925968402161485649730430427051739807374327140254164694199300","9392869072714342633895039532470117688315530612917178321175030771026579997"],["23971080111823643239894413030546895024682507348203833612142482989824783779210","6039661099988465343563457910490891643768469283587409147343492762529904726804"],["26578774793689579133035668422711714180251131209837314205017600561196126230350","11156278858453155261461089388340389866240673863367666725475519870396769604850"],["24911983915638603538842166064621141486497568787394743152459146758437172178372","17961071443434595236577772005206473805216712804381501377448077535943901750032"],["13813297554032383545524023313526992516289578222001318131532413749191450783963","3692510946399058285622385045518127520100760629272264151870143528142158869827"],["14241224742075539771507103704709913474210136597235914130654867256600978918914","14796033477223782265494546148525818578516415920095876874774382439942139028580"],["27916815749853019917612224908754039778125151742129660197043569290855399475201","15512124712665609959965642149714124467894251763304107802881400143823361651390"],["14164337344737941844817352074814319502137323857566354974487924751977450976539","22989463266872598800250254873867900371913770443642438437745374242396093420142"],["13822537243730913313351039332111366339833491696188288934459409374285218601172","12655555399361315267718750742063343546150862498925549405335098273225262916129"],["28514622349666690843138155763380652410121197392712147625654746921430621824616","8015567618236374197885438903713044485343118585768011357662905313351166814090"],["9981782821882821790506192322061023414305751638501322679825154380213317287367","26740510759476516315920291923401592867878184768166918682400767939672309836673"],["9326819418801819046580766960145384469908425975281405530347622687126158830822","9840628035052411392533362715508261371033491651253459250795909374152095632921"],["15252653639826337364684617208807794830593357233863751252822821359073144017739","11470055320113531991864759635064862099513174264243606521884894942054642069231"],["3347491176589283191706055391372837832508524316865234802446060784554748112986","23793966664774555580002756980368214113889964907742054206710138136643255747448"],["28815551756300480825972069660628832335526809889778709790866253166782742102755","6165081977559240578254548307537012990046371577287782134554481834006776013754"],["7991057803339322574774190873994228640178861856485208657030891676543333800103","15806817218764053440873814354457669845122455096287757335565052850162250188666"],["24636250498242482417531312467889850917931717312105173574219988444380605009886","28407678749186636106010407974907706446391261957577843224883697560226574746265"],["28135280101385279836877347995174499273126866289780332590923609473054862238834","5068247079996144503747340135095064448546019173387315870374885854865848025366"],["6080802766260210788227297223741414858502284570580530381495539789827133664895","9294824520797134250513461416335136090571208096753702354217184796040001249865"],["7122395649473041896126349816207308527135578519944372085287709325281644957889","19693674304088130656162050391647403142704639463928726631296375604502860463778"],["13464118829131061848616033938984896658751169435760905916875144209793892258695","20562007253358329983511409575521533099170665719115999006761000899464958576759"],["8642267255454794475194673340284767286262259789619933427338050618982457201120","11417794503785285903799437364543816212267385956133290574188984388953637232955"],["28091056063383423494000088503496137334393871915442274764741542713102468825147","716222094846418422128209658555859025383988691005657469202025213129821704623"],["26472171999021322576753323567182878312530526557346608848278776009383409804691","25231927088859103510128657589269767351437827338884359596313754766087101126822"],["3595552992312506986959573265386527280956037288778877946565853995350010381582","17418326314209170104867107623430423717911816545130125307451155518368589786206"],["24572529711221599208141651173569301458714961973505228239806776308141019613122","9480658514715452821845569753454579578649475933865425834159596024138747215033"],["1999553973240235340243754107900990985882781743479935340690099592970467031733","6305344531763034993089809463602117110562155306228631652154334782989455795854"],["23110117507000813512270546788402403858262382691792893407626896735378412534067","7309560053690638818805547457361128702104520935824370666821418057689692790188"],["22104947566810872452020310179101028281537927222508307504075906645763604527350","19519629816384307019550204005617734561790408543631557675161399919823012948892"],["23708752264770960895036349475673215135051794501961092459783541841900918075049","6984259090362501694530152974944537228096799311522580735579847060767652077288"],["23568553739666759079668444351194666452454153913122010709955536015433376329473","16518442889641544004095806739152925464607367476250134351530195478007857943611"],["5893721407497984046972542678667701407111926366503848338877708114163404856088","27920375366835999216969257370316363128780582715047242679766478210666583447492"],["1023023801088867777074159332377698155508630878834137359391480329371229767958","13013940850668187808027991816705345275458044945931358359579673369451735933503"],["27251506618209820167292678797185245383852723256472888158060047121173340072512","7254671315360793387426277656430813293306609342642226635311385199824935011402"],["1390633016873100575668340960533232029013302432989911688931193371478524740844","27001840969862988654424119848468154836283334587844806550949725827006507561916"],["14420167544843640173548296367046146349194590978123450184954497635148229054651","21655252941677653178873643239775169020231514138816219887752362771139759272359"],["11944997118614550617637902771040290981171725031212274244772156952090760488776","9054641591307899626266106045627913510729542136048312655039920051621346194982"],["27377743183509293760378175243187684604438939413642292429373369763121477960521","4852611305799739540811519426687615956892758467682027779300044423739751370069"],["11117951761996894371698964647197492751560835709028742070332729678677978865171","24998431202823023412058835815228672824129873133890849646791348281365010896091"],["21506370549144735857668807434602262705154955391914448784002574352396097090854","28853357609038911223395854784078545954740165263677700357505655515696112231334"],["1323069880162817258985366636611876914082745626033537124908907248256204938395","13952287740904252792605740835832512649158649326923420028830512917990673956907"],["11902592688561846566086307428459738892273129038166942671058847171122080455667","24369799956848077664447601738074797574285170976578477945646079054754983526423"],["14127823349679834801020551930730616157495370866566121382043328016738939784419","4680222211819260227558059086917434510520515304382446785811196574377516716380"],["7281969984970145179389061229713149249096307529769093706259072282541944419154","7101098382915819527695742688081243570649037285153559062110035361065333700014"],["20843483219229416038401802322413768567447227126462763474047525862692229576502","5797459276241663543593349112006697200747776113135385181801379323116109391309"],["9523499703351958055354307181855526424798539092834628706078098765472275328418","2615216048620169410129184156672638686373676562556813676367173810397074571543"],["19653078427992081401006935785126484768585814942541636176810480358647744897980","10369258055335473038048871809500592112419167789723382411806307247296401048215"],["2554012008534916505940024566073552379873224362428247345427560681138242455221","12998968906306835150827207253783653420334596724292021216139997968128205064382"],["19038102685441784527199862670429431229594953371822546078261201128644560198419","15152807120425773764151189049671676110454577581897313445681829933488930789380"],["9769851652233305612446453369751850027948160508974749403275291505199965586509","23086082016385896721700551666027295997555255141713458530368023918802916377553"],["22000067863446830009014049183492944324217332970286022658590516455343881864075","20526603731080024402619334636654992510821991890752788887736792592317378633737"],["2098020033630036816961087915687854681675167257687443631081813118327785822189","15391842366925661486233454952565932106236813079692042490730651513279825136171"],["2530189398841207811037845601361897919455874428220163882668747518651655208845","22220869784743257981128775739758335000831137078380251833876291411032866733677"],["10188682632666073766349366334115382759888326766536496347078735644635408060070","10490103133287209277727261785178236915381330560164781355380604893512166200570"],["11596554239315701584448929048213768977689570603373606576952560954619492547719","10218593670522624104458936123113466855326892197977891992882430264480615430191"],["22684646222047856971142735231968225159926646190866123017255955211303269631310","22125692704996335367723077986007352066226188005100160850274526902351675004672"],["24456782605058612046230852525175505077906828856530791088933217930649716029235","27132990999105534967412202144429241091541676914422841353582241012414423722189"],["7600122459494164699233788911482337958092298556475731307947516626066816435219","1870602820932942229673327698346308645171655268016701551725766779699007954393"],["710756374444403913000468298687982704846272987421894208959861501890914193091","21756122093236401514346833146231993807717456629394602874663414202542703619495"],["10334169145711853383914218189922130027525602854484626597149553025995978266867","428405844764167886666004743550552661656090087643127034224497494710136367529"],["15221690947932696143825845973392243139125142590962460517591825618049444868417","9229694629619171986432764199188523040662372200458577733518569012935176868538"],["8268501251094239488015336678018831184709801973090332578343848730821307691550","26943115000541686807023393786293117629736603164960609076017786760024705251545"],["8076939803192302961615958373484062921198977324498894902079783357355189303892","17638844198525035604076337897691937180226974779535603115840725061583356272932"],["7387561837476437272877607976095378371172580833749867455709355180009279317236","7074674477520599853679571173633083945874730447886160178255265627366897671303"],["11328315964261962061085532111520683735234033203132206011337991766450854949411","27161836174199176060645647505878938548868854913511313898019422062244338212837"],["15462247511887217868830549064615965610751260303800751621116287735646668166837","12574689415519592268590301418644281963090796490429759444193285779089934256594"],["19145576041998283555426448217397611715559735229668011132807334975826652370270","27407098067904425149354446817857365862096887986751177108769425622886888002639"],["14818563509759047750787124441133730173528956344429251265579675017532706940583","27884692935942387027368599360011652715778206536552768157766332142222580285338"],["5954501832161570995473367739737729892599688503137385478228714572932551530942","15273713923528403891887499231179257088491716181447895394291695277141706534659"],["4770345227061600401767575709246377544566140299264434789018657828963986821816","1826130335390449651763220844286167524829235320214815743013540276844674217016"],["17242998404271477411126814604375316038763498975298381361206601414767114138290","26878657755064045225977336741367663725339026478384781596014845586772001362404"],["14181193771330316808771167324382223687481233467766148200539378966665449520202","9518637999000225509826670119696083729086090815336778015140693523845646776445"],["2648859897144634660615435745907386640010439003304963797420376751266854169860","19569401494173695577510393422786805865618060166404721257247412634875146040942"],["9511370923697360882758443392683438834970004971894239760426465111779938046523","17150676908715567739144464519074518331369023189491089143342187438376159355900"],["19271182009980067399479481172817052205625560985220887977422741077551434480987","3570276468655788449374379881145546540283636268244673008955923751010649431131"],["14106163385462108107069745051643137176012271038650197978430616525088809123851","10884506819466990680099017448758138985048808360607698515903611276255165491505"],["23919881187260845505732960178689501823048513268515753819896833278381965696359","10982056349688968392727750789180215783089481155427960999798526382325076836605"],["10600911581989705073178150272557355494763849001351006945974093766717218678789","1382774349010384046458608269358104118764533704594796853591089940606660353802"],["14066167223074365135524885657586720416836047786775696682151887756719722836762","2825223430322569233241241818953403406785062151052661074971850489632596419419"],["19311592456325591488658410479832056321536346322157094302340903559595591750642","95824896063643123356952875375932960136562580747549913516097118590951175918"],["23486186369336596716473144897009060555579840995270574251666248758546837557409","4692881141439718351865073931731176063660937356009562882463596958349433250881"],["1938257847795628475170613019465469381957995366774375738996171248909701312176","23093369650059949560335871567099067378944113031783587605832835466010980593918"],["10426582415731974157851562307865093698089954002505511486685682727014434301452","1588387047183088254902057254316351571141142199067861933058982815009364684030"],["14875265995684501080545910470556107286360912071587156186510136803244196028950","20580792986485676286094247769535161797684670244654812188971651058081701873609"],["3112450498565829105189649195352728064921593277255016831916654753219863196189","13462384884368736093898107135220109675113718182716075648597356476847478569277"],["28667569317828579392441558168454401673925255687442405966305967838836452255780","25030132469789582552019658847132621110497631880100863766690503432062653577502"],["12211697430611739962566646459728678477039898138439565173412085178969735586853","4155424436374628074507364486476505585664063719761545480327909072157461729460"],["1704230740063600018444626287206846783933948478976717060153865743778020660143","26323162564454840192841994492964497609724579476194630825261647951882657195232"],["19687398659692876296427143346460447322418929392075287971862849654462895309504","28361365379306005732275900357190258175483998922224692382115388483575658418845"],["28410581124102438394905896953234808730912928472794540094122375982820474058720","12105486963352689781653167415066844877508579867408056906912360801226638946955"],["20404514044482201172598726748391663781841636702104510800131965228818178498636","8522406153397087736393447375760380464467039798099976892263498689886063982113"],["16144626739467228757708052438948745096136430966517750387672364850521403094997","1811782384898389698290125126658282690776260349446181103659588122782749199637"],["5518087978733214113077653766386242164856870169792271958035386463179259758183","27526070968583978100258936892751240733523028095496528624723416917095826844765"],["11470902676628823003147423002090435340090143813531152935081168232361282148808","11756221007865513317344083106418628893173485257401525028690391367175899267827"],["13141530555684759027254460037289045494941169700301983115052332009903517787915","28123714268406195248797868414108164407439501421060864816227863956886614237570"],["20642299353288572860505820371626081051655363783331860206719710366044971618691","2050953885080330807004210932631485587267097361948686341025745231658904672541"],["18537603554595716430100857536504878372232146849590790809846175749695812669067","6871913591877222177335250528804881276927533591158827277096515052596407233942"],["6692156653758250876759178559722330880629480608500482404120401222222099261113","12324788856854299051943924136326170135648814085953394487173512781088871683847"],["12645137614410235745743642000280626220394219174210054109747743313383506566986","24686447135342764255668625602470560185694432292471769641891520441768269707175"],["7138262451701391421530860411337236819894988739759919696347345041668862390788","18789659475125134196161109397790554928112635603514163921772779546793807460886"],["13743243059546845937255304351741873603081548720615237577425767548220970998603","3237614282052118705469953947956527319231392326494471656086502494471252925424"],["11155165065789934431520375872991486268216857161729655831392647110369907386575","12448185397460084822839515336401165722456208364596153893716199291460150951596"],["17938586145614789467998937939029688099815218688686736567379300522362658104371","17652465054297395997793683497395690139750162757287492909613695626549082281770"],["9713159548903070545281446782493530194937205800253122018651737988004963506839","17323771303324236930946893496061587846052676526743401669723684238304695892875"],["26488765592099681867971822647459989759089106660929051386051678955153274255364","14842076880521613128867549560458945366849397493992162883498261809353745783936"],["9990256399762444975022598027304822084358531855729094748802148927601728718333","7762948433621781033625921632536920146045011977336052151094506858656163879022"],["21988134075098956791959181629618853582713953649920409181731871631473460428782","4402172666140310029720817771020418579373226347361026020139179921017164752188"],["23112598450799265654882821148692825330604702644593017206620059541287712100298","9803453268405511648063940334928601327453342652031443506606828855805317856083"],["20856198311582861364900131162413356100605902400963010316540107589293413442739","6818160387174591664265674522907189112476406403408828551394100073218257726773"],["6590199862940194161630604562923546190289239160062424590217947865271277133992","13055038648605142961090302150212562134592202455915866266268691768493710080560"],["27586527326985118186824762656430674137568886287178056973470372433650557556142","2494285991934240101800283187386786106766742479209239514575929919757867372645"],["14114311057607647579796034889721798096602201449839405150222758587778421988645","15164796900186480187367306501811364499983316283985120839998360535209936458952"],["6644258990082730344669051596730480151540764090467106930117765596950173900528","25704056907909183747943471724528997297246936631748300024779294421874343839128"],["14727226719783209122012855358358076703393162915593120038027831014624510367669","14364051919328309690743434664151376587266490579911620096530871755440161548924"],["6010652357632281570841710397713996837724766518926558696593354494488347981629","26551251725970477194195751408438220974957645007234780968699289738869545390085"],["2508059407432123035812436458946951527222977611544697563098781349342514783374","26560290352459553514826380471967054885141543888412480626126294975289023165797"],["1553638624556745576534604852973747129710026195228977583884379373701415828694","81612446933123080011037853794559635059758568929853350703409498573963143610"],["22624352746319213221524189919135352821538121546142308973887462599812372817164","24008019692833211127322391518191938107878337783161008329236515612478951725784"],["19879381528177802048768356967119405328359907072899124239475488489331528406520","10811349174555200506485031610443092028728544850828368322366501080998664630213"],["3490435634723114707649919245360112493249996689066066368457421339143807632492","12469923412560645336232637922713073898428593746189430829371953880903158741555"],["4590907830032658761371409056503363229995900565724025562816570388558497778492","8969853402244450172552644953156419505310929139437769040568119167718300695597"],["23063409973827437450012568951299180895628718310612758680704238471983269644346","10786839768621076688218190820049592316325172776298521230444071413521957396538"],["12165651172090086018839524966752058552458348623908037347095888801851324323867","24031917590727152812161946087277429458403596396388705066677644040221233611511"],["6237082145364135718328307376555209623951839027890978604099484568664785164775","11836122919143173951279350614280031215838090092153171183908136249394757113107"],["21911945688692374213482513036109492364800343132419041809915000597234010082772","13987867058659288476724181746684173595267410444331794373111190386935130070782"],["18056106129759264115102516838186954780167941320601289461102061017720194629193","14914869555650719771486869283270466566395176002857903657551421909293530654891"],["8124438575910413379247779416137948525273579089794241685509585006640369770434","18294524550284613556359973661951510934832356708294133866688943518373304934204"],["5805741207157828443676243631367571182142722934116124319916484565789013922982","7120282509003228208436263535323405171388768026551275567422793101077001936596"],["13529365871996390781432473973208901565251363054715842174752638377549862076066","4190975053303752997763492007850884742817172346423139879858483918642116183871"],["18238128975169972025956057618013121934619173929854685131483557444742907665869","3095076853111929578262849855984694466499554238643732197364547148222347725527"],["15762693604952619549305154976399127573810484437083824942936693593120828072159","23273020047623372512856914042246062948348797854816566341714514110605965056902"],["11584055252585497987753281531979710176836283447614516638401454057387614063653","11281472030734835706528763822411588618202178157194600248314644787368280287920"],["2503631988614630118488358593528117196269320561088367806644413950688078406992","28220869909500965340129064000660627639950802366891516271023907602747152800834"],["27475265938038231494974241930906460111869752699635964168145885936623960254895","14151792599705322205274862391791593896582827892717680518140506455771213493901"],["10016032586219833577114417685619642472707209565675436037459412466419238488522","1442834039111839389858131632678582283770690079977093140032211742332807031652"],["20987752372133826713211985634384491332479153468621436227639093802345644337415","7141110629303738771244138944437410228673373840437747632211603823566404706174"],["14974702970678592526492811207096131737467251009966466147356564333509296816979","17112271991317876366275306566619765156924551255316052175390152839262698076707"],["9147088493213007188575551257983091900620722021143442685146816926414746299490","2010745960184480043093841216575611945555324573936235527211926895904329765000"],["9931215771802428040957788634121055417787254904404670030195571874557929752538","10701257106423584739039679354449165996324218800875803222105713066333736145691"],["12227472319377674524318157854147449395639357944266640280528890323939266404699","23860504098922557258892592380895021837666927294195934177342936608587444077099"],["25562148569655395684115430763555762263230918203521959861679193269163379444476","22751097428218477823090657243051321990165045340665875037824594647204944981971"],["28452572797068924663478569957381438423219270984505653300698632602767422231561","1658680743188883609927058431095754142652971431991971418059203838185618517831"],["454995103795755075605531939512481228134434108191432264530798544679187256111","11910497823957864436100463660166110079949005377697372237328071555138509924612"],["28799244502912563618639824037940431415239506263332331201856546895876788745043","5564196549148396226975308458345170057542281587040148810815881975338606633576"],["27601154351917654195521676558279470058010952021685038013055206292649670144407","9209441097590935091347252898793958411492208642024786598274413303590440573546"],["15884137166669231448541211472510418221677972586312854223670506948931217067547","28241031569284309073902073250821326387275169944907738043514313453673136841348"],["27847611736830208458469624529541932646834652800569489414392843038650657764702","15665779163339843779625988158860926759929674730278480643413859067913390802611"],["20366907501435084851515743080753340672973004546458503179245998183224821076547","9269529473493873394421762864468683959374230652395640989781030181602888757792"],["20184621401429601243991928884480037375672667097745648227648784042234881755459","12563977629308947350392354715885457092033899341718998909031183112054503010276"],["26899671476667890348843667041823820795183615059491936554913847487889371487121","16529280874316258792191877739307220955775493994583605179720518918203476509854"],["27786815569353770824839051931108849132048868965058394715143051260955372801119","22229076330270083839530588617099486267530245867146374696387220609749315493605"],["26512364953844904901137730947302474488542592143115383162306826923487569232673","15792278134090302461923459083533024130269272364450099397209557805952689003213"],["4371658191456484679519688745752182984554980925488674523989806646542282321903","2639350730049800721733629056895971732183842041936045767304722971835037879812"],["23000380599538167972710395218501457708991830627749194767586805685620286533789","14396562477434149727023560264258777830842115610552649651272204614655791981402"],["7812520048646658104329316809283269431976667969379861530227156580060479495546","6315100067843903526160017997093092143568012261139664876375800061148975119300"],["7659091771326742411563990155707511147431883375364596300570859654606064921794","19463909555468586374064916023179013119294732273269812882637110402554761343092"],["25266641248038428039742415229718717949857090562589689529083378320006796643913","19266000581077914679438597834675467515788986036786352116885545686101746143802"],["9684049236881787702063813991224296743842010804344696746654242535558650357408","1256044838573240005412833217832167410206717141741369451930126821600363840568"],["11947038644995605439250157905676842930250848695549123466809042893512998974383","20945310263004355007885047779534970604140890014656400917027830847032037034280"],["25485159690191558267425616261756659115262606621225217786695902108342594531657","21752276871138476665169279736726776370913192643530423192732226195706595632329"],["1907070820120259026663073931166847896916805647563428783670136381317283892695","3350627826214019842407326413054755999148986664373583027552023648098735327098"],["15636430257945157616877265296399853405787232622306743484598960483949765953003","4179859528572143059742003536302351415469642352290589048325693579880413051383"],["26549634702513676722566478969132652450003965898319241158211047694817552706514","6352550336315928076941004363313866956053133325760558202368390031833242606172"],["27066372672505536207848492938906936113031419202219588119739893253396613844181","28633605153774432244746106430916724126040971104115425545487960055795003099478"],["20605034947828190757641330383510754875261442439362261461584779994465689157718","1419372738295288703480428204433873139572479764797771790503664160471759612117"],["19760445853048023538990567601245950519762350549706724858300707502747097486540","23857785613786313847092321510607301827043373524523574403998476225951549965647"],["19501780902347451278272621695524191104448543600091950679968912175605172824027","15798530444577284171523818975462759657282246441444021735124696376296129301147"],["7931295457203804446964750354859698198368953691529117213696375735209729966901","19988887578604202580101772930032428082888313577360579952420208737784363637687"],["1168532079623657595022808326295480454237386403787801638411571980538355828579","1499967845799237653010356548785300147528239918527401068505508762213092714807"],["18111507818786767888888239949210359615214758010117792316500992447837589034409","6822755739202085314887898518391628023181850972705749098922945090645614406436"],["22022676807818234458885410432010421162450739739204267838983933415856457515995","23754823644724546332848093925576092232073397223331035766302899087777770408437"],["20387192970888163608884652968863254831707714733527073959194126457394545048028","20205601512435215842578581705036297636930995239000425020734612568850453850846"],["5840814374590043365620203740095176185140300659315792712395650852697627996185","14233371223788993228847758969374548260848553290875133128404219861936597006567"],["5219845663775937518073015504069780492034342846593399248574053067854234635401","17162172872628176696616730452398977851105414043398393989501195535610145205566"],["25855765929594092572055271090694328108303625422739132558083062298393537375941","22492995771323838435364528939904531708009048243853695390345300032007272951477"],["7436703767738454318708019448762727496338913073661026349392464573107983011800","27114412427792114558502850406753800425828314135816496430641654861426941200269"],["806990724075540250161013844221866181197362461333148950578817693006396594667","11947500635900978898039939622476407467252977799702734748785303551156052541118"],["24070134396462265485980406494720342154335777868574495421411850707522773605638","9935793424468188411139336360815180295564851602849019907152707721587938447357"],["1577390785743375022182959759678012003168215233166583667209666285511086118565","8987382466306639111352004638506857863456320622812837537693890669512942105950"],["12275935545008068446061747152935004027487873363029896973502277615775628860021","399847590369169716462604786110856044788635237139488388570943130857930403511"],["9700129998561375455619705210338578995825618399760346322450264374953650167687","19727825368296678292981542701503677985091014921019575370377300096641786920074"],["1393087679549923557807760477520610234324492672385414691143582790262114373799","10361716347782921314569947461291301556045946946968991280148026689522120921409"],["4901396012358850688388483789334448972728867459157329239607660780571204301181","14836001909220672777253726626042858794093306994891624748628764645554594056309"],["27593860618644885881928492087583061242411896621471921932041556705719950325208","19988123833043825080080245372553537204048051522503569417452586863814382786994"],["21076459296114838532906830854933318662316690840520057667525592991908151819585","9039217840429422655266984371577922956026587317226287743262743642667763339230"],["7209504718888991511956515363168708908259387280683793879544692348151747559834","1340155147643683646877211057902655346987443284574775958598968181331331916665"],["10171184235814396905705590792488635956253224406021199010647502921270302709479","4144700629217330541966292450954187764137669023794999136634780788747095159749"],["18625646099622884638990360116136840208335387789797212752701246761439185236755","10862013092545226750812861362924748073623267641260316559517171988317365715378"],["25891713193538053565622376528960454244723610210312645584316278443073020875064","1804559825134306818537281294344397076128421386634540228011731098102160552151"],["23963641277364081808348348276946951659347110901347480084608031930659896721934","8361126171331100259346878255876457001392914205273147275787895518776139153467"],["9426337411649317059915361711843011499703500026086490538651257649615054595520","25838091881865422910179270251001474019273311372988848046507523125125212905467"],["16762829122712200521137747925655246596144795113339375977940595926250816303509","23674162716148795540926269185694868984401960506475885303901032623853313761103"],["21352311377029987726090400444590227676919994355602693536655737443762464524429","26779138362663698787918528349276974990145704309795075077212353678683983916284"],["23345868358189562268162085486053503157473462979146743851765294033756207548401","824699090698098249844406421996484764079621550813430798120770940030204963112"],["28572579854673549259398096478955962300531828854080670463390731602243369848502","17822332822260580350899628874688331097398832675423913542255244551530306339798"],["12218072442441285201679309220328972305391574102669712509655521878068501104486","24720981969037083188985724075752446809764072741826307369687223067164880021623"],["27875547879370226324471098075218176512843316339641685963088676048360811726761","6603701186723431235893051337616571034166869413882866905080771954006825775806"],["17924475055338609784245649658002893219538771820690523860352026111867734734631","2313687969971738833237416408636167022552797626298124470224555705661307541943"],["22614928161278816393967935276340360207160522134333873902329982839895060829152","26549686377297630533107217908728335777616962261986471023253253319700617100550"],["3244204138866051065416636536547758174795393469308392717362763506622605497150","7080181516949613518649829871048678404241702030423725569879883504423854502019"],["8744205009066063034687251177560774857668455790122050040182954325953449356458","745644887895920020273379177704525306609629768263690607699318093282855830810"],["26878691236163749490681745806128522460235985202457709521168444571540976935559","9813803074324233650742947545639383107345945837710336033445668045662132693184"],["28907842886499680479696924330036608783766229167736272533508897523511239679487","15770546090962435106707116913574447665329255654251260741728000358470723150946"],["15235310311016287645060516552511657198620763635302708608511622822210629902249","10655205328401286789196786732030158932197933770147005008523045921279679833243"],["22298175513696951828561051193965440698631590326139459733357556118213856272030","3508360482644309974749818741543483427127974647836965742618824990021215851686"],["10094113339779804102621606302226403626250973542232192851030044789265157075796","7224288609003442871655910517049420026749491462025034061897465592746289228805"],["18419794955940535276716151126450596573391436944649461499468471681436520780176","27350707392336287966109520207051101167596444545815453027473987369079778495287"],["19605583756943935086489078633278367431269284028779294823228485102083125318290","7190181065865628689072681744593466823571440124587362525994036038356532216204"],["21854686179056324495804603388844615444865535834530640967615344535357837432993","27146395083635862841847393880846984021748997444833876679622869528343892326296"],["16211370441958751517618243401919206127113080380589713188029796903507281623207","3276227551374300857551905768345192087729116337763509253470890911051160066520"],["10374966866193853438862928602076675691016412804960129677933226782885038975499","18732557733790573080344269176464189136236404423333301082827996169564768476085"],["2213782940375497055422575452588149884641598145866623496063908063609985925829","11136768702840234879042992923319585629348327053354145366440673824659074976241"],["8687539659334085458010018846341525929202633928234453222060763305975719080999","8028776536168430208475911427954281392931365836879797739264156154045626997142"],["3506453916616132448836068996897410184684083277398118240030045070474620698426","12392651356489539422220250065299540286275879410171191719960518235273771459778"],["6665516075129302206992812403645022688085378564658633954256914351084361289836","19047807320365985730961757958831054344984134340127423067128645766684912493064"],["6794862168454773044891697483040666251472708461029833164608219520678644103887","21750788564859231302312435622397409918407842352084885725183081930819943563764"],["12415781979509850200116494242420422789621749399317382337632647710130369253782","14080216547104170564766205991045020224149741830988173322835556195135169920637"],["13334215401039763640809546340401446805998977669838790679593537698087336152538","325857888206789983226591754851420856440405782951457048640424943038984770692"],["7689677392238428007475551957187237444016270378854860248596052608329292806639","308133218018849962659873182142850747827198268766622201775392604139214076764"],["25784491496106676213707832531811827414669667379349156573437202776263703711205","14391116295553657783724706849332610084443349937278646183272137963857310112099"],["3669746511093460306300034173171974686145805656168051315460037753819437312603","1855776180465823522718315203927771041206198732442842503716102285552182921473"],["17773503464854953589288025664366914340132818660512297699463540002893679638627","587845489190889761971489853767222799296043579755648518501507058137750494602"],["14452164122418826554920257878200114906662102248037987179193879527924766470374","24918476098795720224327861053277885598804046573658650295523808838700645446860"],["25719269635512713273458966872505892894642274820342470680847356477706149383076","12587763111143631391629501787732380681426022592668844962522679120174080534588"],["13999741566971311108588974352630469533100392984423597290687287660980379438492","10118095224238279156926620667813253454218340928853848368292993694804627351453"],["3832244428893470065194751629622965905103950451214664306755797638090546372435","12170338385694741075474776046375757635800393028612735505760530784145526712664"],["21176138870352042651169762130640471447116300143839906740921290162994708742514","10447234188661352226966212188803893979252873371368196917051999827042171728014"],["23105201311793501407330496755930870122186100713617092105354627472703348161514","15743777291375473220288928842344960827171141256450969918789837819412627271132"],["21791877901534121596557656628307910732927580227841550527547500627512221167456","8477013199656550302505974758182622784144926299921513116476473269015886208517"],["26203073280232610127611808614417664439528442851219154471563715422380718305662","4848070568629997066267013058927314529599678990481812196673441804260983070787"],["26242995258108977379664701250246786616243345602626178977321242046197310027832","14301924050173129907458646879188790584995018575482672370561401065356901331201"],["1278631819979460346942023723483999787627930315068567870817293378644062235253","4290686359686112573378409222014452253762068065169268452589479400465635448318"],["5901274659180316001715541134368278506871123531707191371597027550960993100924","20926966515419735123843981218665367507405628707081528817779362720931237963838"],["26732185426120305668989832835839221219704424982290194782312981802689485348017","9927188188927569125210834165222704159914473173979750835682732897471921572718"],["23982990072270368343010850184723408039357935646869915495834516648121144247897","1417689593014820859026263390943372408450612254653742101753308122661121346858"],["16893086011265141138502951355575865407872670857113328160860451954935235746469","17559935643059200366097641158518352719358584922345891137182433608937641641127"],["113689792925544679627608020288566617323898287269830858573094762785803357353","23003604249820496387478237682240540847337256129135218162695265034945267547755"],["5538705325849036951650484764038700726703034780447233379350760642361200696317","10266097653010361935155080827142686514178635626652639442190913337762012299072"],["1471568344182742563697865113957216769273899522976933524181291330960814999200","773882551890568393347325992555504280105004254160592210620614168844369986752"],["15787793479454464274752065387898923629814917159680883612553495838002026860300","12739578287524776716658038999444552568737888928671395131962369360475596764112"],["7126861636618489212562885382856625994901428474599687702962862293895015045541","25502825280907399931085527928630816829519371073276495831985054246199141454727"],["20416997947567553152314675649167287602972577524900086712290965314336168204959","22969160862108247299330368981799216669158426310846645655309238839798868977148"],["7132283967667807649845361666118615714947812516221492818253555833292503091290","28364078913087041062231356980309700301328456615777903469694478747841300407191"],["21164648749490458221643223022917386234119159124839708020519857082580448874501","21459426026569928681427644875343726887644547959169157071213735705668776447222"],["10699305784260708437787535845056975026416635365105086074470728328213986704818","6118718528152648498919920849747384428997791688547660047855759367982823200743"],["1569410395910279858098862852461312368809719389662233045054918280026079332708","24854742755783209651278898608316561268654576098786419875701099460780607314356"],["17216617283067150897021375811661053552111211240532329867148405618096032568126","21144302519103595782216116207667349863739646952421417740495799083821719006506"],["14738842928546741821901092504281266265826437033716603981211344488310841705354","15548808543662529136973732724021116148194162851099257150400336943171436263812"],["14528748898009740166417540567203124000051010028981549945255908874601942516060","8491233514199679519829717748318789978885737976961774269112489192488026095115"],["14326920080890363938337745113896213193160871435833949226070223144512276970897","7583943707993035390262953423708597389202658687013257429619344123118177009435"],["15976542744834310826450403979203753516255387097455373633539320495710230486560","13630664877259283683320744719307697080734634799476413363235236222489904304960"],["17635327830380970763278254235469388878234831748786266424031938896581039541173","20435859855185977303154925585524021017504433009973991216244731142673230309880"],["1073954640732609335933084974650219285148687877707746401492388073719548498199","27736231013833220471357516493149796425172221708185751904993285265014458867412"],["27878915192893100202087260286102288728139300668658031604292396733549222748343","6169668176589500970997460484623206928294050316745616745342668952380677374196"],["20901476876323730799589615465873590671717336502543029934896120443658651893247","1027647637614624062011087535609934527540812639178846624327731189596859640135"],["11408125232243304824584634085170067526104047775754700517576890113766116518198","4923614554897311365456631390593989417450426091166083630282054275764632085610"],["19616346355992950333981730828599564497294029629937424141465151263882018462922","1623757529631797331795377536191590930550312806187313569384410179983698683839"],["21919020804702326224764222096250892547752125858090666452016527451280670766734","26638739013354298569569438934147483521493802728245906416671226188959819181890"],["8565163682800115771691110301563390801811793224153650651817763887865711874928","13527486402405562490623897607692811047159019585265723289822305657629179627707"],["11718321684443649894905971982680573164782416884345045842551555462781622692138","28545266207870156493806196112798177506136729525637879263585513258663492722000"],["9087149146181871577804304776710127737177264847495963445089632985655048799965","26648456509692771125409027344792095495905343726429028233239983410868461715620"],["854130975423410929669742925323612425716345971226077086382420859487004870493","13307438806298289506541401030290700013155231772650857293981105516355405678703"],["12195859307109576401887724995118443977671429644337257065419854631454561974051","6516134204601742661318755804517931845801292464250112859954338284480051568275"],["19335186606741995897244480967483039454012100631333058490556612611387428386951","7447239092349317631663123866664899091376021945639972733749650270052781249751"],["22918530792644047500107478565749860371999826767307740165014680172360816833323","22370663660781898583790735838621066717992486615053699723222937099273450749609"],["12019649825357695047938668525661514811238787166054377804808495615880398993515","14337681620338625311940122165212122379395776767374943363163681352718695035248"],["15579989295794578242692090937710936836967684718258727732276317439307001593601","15136710954328521774067552869852034578850060821170505300950251698682987385587"],["7890909433330074902491399675116898472314596719988352273632693520866236035636","12905159940059200886786847658506737508192727379025583965298518688327402609276"],["24303276927040713533215486898192599191416667559073711311328532503007632131848","8504940403803311283067139576631395301077822569892751720070063756129242525125"],["18946786726161992790451578015719575481967090233827467841645148204169725849921","5663913144686841067262784083047416821326622817133974394291526133502495562044"],["3880615646725431914979694263037065861769378962465412424287664553521962940820","4079896642280493285169879357454030679719421610955705550955884305226446595048"],["12483780110205951546329553149737914460973308439767655373428782131701885104377","18721371606377930010016988827897021843398439190739480911966010264834775026529"],["28352309265888234787309755195488968088722156092349241706525649677848775113311","14743300219363317731980589646906873874535192243847308917957219314887950767905"],["4302347693760799933603168097061777357011478343917383361393248297052818204039","9806706671441679629820425687736512230771114278539501341451557565529636558687"],["26295393020568986793676676110453360532511820586718334509356836751350762766874","770968583852478786048231237685540934736517389131621489948532666290876553347"],["11055483285145182006141038140825358731068098317449859840762884961874000776469","22241563709305823602542011231610052829761976906853802564453425243056103864590"],["5213479291924641638101940652682367672707180362133436968725000722837752964323","2392969110388439525610089315255672787501062503925515728977921728609745607018"],["23062623855194860596183400959786545746946679740213743454096600051959807738666","14988711925794497792305974226585434872137163707519114496308337650390265539792"],["19970987384129203305221828321891723671620264221306102161210887830878366410467","13855444634589513117519390361698532680403507123551117301613945049874078585055"],["11132046994779745113752003733885682577882687638881239868850529123903087939346","11325737699469643095973215240152048184998872574754780356814526176354124137093"],["20392507543301214348555284987452376620832751547859795453573824768609701615372","16209255076311802062113725869710176607285973245519665818132841775727671868790"],["20314671244258289567781543487941941912671668500145197245379796913506637229523","8937541715525789745688125815482054807730822043714503509510666504025019614108"],["28035461121662324771930506835684368728352943050973965115167406503546643035556","28436101022370252117118882447307304164576976004421767530179855294002467017346"],["1436374270341275317914591048011654363423675317710338490271561492162510547212","27039808037868293354786129963378733100519486042877257297171007232978790862377"],["12962671779656703652303126763476418780540829133588438934453922146113039789342","17708948074274614886758191303429901379396250958469865416028938219048646417475"],["2277607712415775748828946365707394767708255498236678310697459150542517935077","11645031631725157547876443759773741041266395725324455379964031402763808697344"],["14785456081283105444265492771852710002658794473146541919234492235283527328811","14510726887347474117750333091782071158004770970628573609964959180010427267093"],["2024582085176900480408690023893733957184784783453114269809207743519894260149","28803323862906686549026606066855660517777927462634671957032832441162079380578"],["10361163376403820217646273335586053807148850065221874562886965514057618405565","2171441202383239855478186947286734864478132211794921145696381722625884803403"],["7058004963632290518182249054667828617968725363769412337259742670662866125766","28398648115282144344078838286256317229798071016097722504322422157762268794308"],["20295367782461398453091482809693149139018322875530621576809730002667399825295","6378329132999426289170670551751630484984909969553872198878855141614044160847"],["12900778044411489455423649725723899921488910226976154957919979257635921122594","10071074820348809119870045963973405816656634301199630086460733795178988095766"],["712671945393811976221697852929999908172671726016185757229675948808395341749","24511097708491921356364004816178027503964324272966337833454752130345279804264"],["17345896038823935990257060556501576434901621668703902156301829789109270039087","25559827165653753946953438519411982958183654953010149767925488169372176426128"],["25725469118330176256062782911817574505269290858393125182499490772700847184884","12224964899767718456060087867557603299928781207420579399043704003828059318901"],["14289044076691839415655021639562099196507145106131713664794726967212715660135","19128779246164435818266247348275887451541392425602775582961914565189605724062"],["13365717605738402711292264164655055781463286501287317843940233165528339068765","3639975763808968606175851448945656762311158471611360834963588278863517614284"],["50869657837549232527860777393127453912471941092933112761150376723127270307","4918799489139423978664422957391101166343743866882514960785728590346165353375"],["23068922341414748487706695316036568918532079929193243262831635817451742408187","469580105605682161828431006510128716450413040694045859722839721152367761659"],["1522398637853676107958517541745109941838532517357496803892331396449794369967","19631043612206672794008654722272236850908364428629232353599478106877928074630"],["24158629484156689275588104100810332932173680438035176415444233355684942789345","19538733371712916334846437756130886083878193328954432692190381365398099602908"],["16598302984710094092660295312959557628328723929451079148476670157176178495826","14013056601276023996048889427821227863402778233074856650342997519788915945676"],["25915520841240765029017481101406906653482298706371521149261996152032809242759","16596377959181231754946009437521164437224903960198007170685879011698395303509"],["15143633938316079518451369530029801519416702269792648375389040251760430295799","25922079083125714209151584937406835609062219748301966318001554281587597424386"],["26344337912988155392435722245997814856593636997161881395128091796741012918517","2586527578676038234350572675707022274142998756813827106482679669683664451798"],["12630447322582322053569856754480289873556578105816743507407423860833343729144","9568513945289970737557709074946807093624259678602834772437996335013021694985"],["8144107423927181862804832383439756694582820534639276503306123625118660848658","16726484377280922907882533194261983318290036345114199871440408443869091850934"],["12374597535542902470679907939096457581763184018439617767651749838423764762739","19124466549595366425157383950190618790828067415713042809596581752779447870756"],["4845536189301358596772094871650317076265957401940718863813495965787831845292","9159968150281233837959361406792829085890071574430182330831731293527192912296"],["4834530138690233062071438967225825615667468398764682806301084653382026586626","11700682196059952591097291282935748666516053936886308357021328299236126051409"],["20327784911561269426344963181706054971017851297414587159857578247036947374656","26049933688747645993029225632813008223598622488543010064279919569593355799096"],["21627965905178366741706201082434361931481520673031418473533337018055334079615","530068574049589419843602171473987361103858926087296645558747685110334716590"],["17370116916831376060347498915563433489834042364923429137285124006577743088681","15694766042549161631352991014923303240371605664884478441380754417179974029688"],["16795575749818300965890960050944585326827047448019847104277862120541598176109","21344641839370512113082411141409974367591836161075201751654448628881761816089"],["17817935079149876687088559882851749741310114137501223511612655503697034102369","10781308273886615157321317811964534937610795056519780536412819760115652983941"],["17791044018088845114743610785218701178853744642018920744185057051692491889754","23243240834378093889668414553242850718904170975866294364224613606766807242731"],["16193322179600052402837436353416040837726461411130993314155204726315837395818","7184674810530970506057436194041056118189871029484318073545147303505441151208"],["28790244325633578652305242463694113957087302062646348470228276563640603007647","11878079600994981067496741095326223650743554917858265376306884108315612780655"],["21143712665331359616963149974350683190359835140417440424275639955416926251368","27450827349076151946143026614332258734994704064669710020422518910209420010475"],["24869035660751174802860557403158388744529215219349791434177881475905020218200","11548325684488610306198528506046976465776387140734098317454541054583691711768"],["24578766477546207744413153137143921312386888759095511745071058224448233198820","22088423115838379837878942960495023804930638841518895775396394206780360481817"],["3325605130319855724183727579948199700831075325881845920858494549754120106701","26570513250547305221473286462672525384921882449543647989436180044299233045474"],["21009225588664232485404891706214818609408210763144217101227299351292866417748","17663081697855778489893481674272717414510672161604518983820849943056006729333"],["23990787893279350580669842943834348085784956036790303225807365706243877844606","6605339478763303314399343195326580238472343278188053229556313244630299678708"],["9805706878080294757060902941515625498588236922257099911410975245637443032723","13876632861685214086047027367802450174510893609177995294830059816627434415296"],["4006901897481229051297089647482405921299427501703900850962266846303443186524","9006435431335613212959385521973722137841122815756309579749136495023028823209"],["15796383796364261490660223065031989067914703955420490747257183917061958909154","23702299800929641779075310522444731215565760052653524996311230956597501023236"],["4007725256747484318798997362893005599549208963455316576537264019053764052697","15578028156850300436174948713668728394805741330339755979354124067651651142715"],["9454406531129124160408464515142718369790910047174707117577353240932438595303","13988305167749072451869090445456176769757879778681297405184049123972978988474"],["10851414351620352871848453883789863254401451694313970371399675290018705426568","259846322481189145967933850915472756603963336782981874963053151378369582934"],["24323177822569279341489008106028344335953021539873056181117838952578509699844","419191365150339061093607427517056266203255747162682935541378816040908068060"],["21515874459514773721413643619340646203565366951713765180601341982120708399642","16000706115284001941001336572695907659766457126973564916925742043478361694766"],["26368605863452573986615475632958746278599428978378876044994892383523960823341","22265243982057767851210338890439516963991687501061221393831029103180231176892"],["22356900125182836966631403739863323002957399727907834332780629877083052855636","19916059965598374043857423809462697980916701983724882204077909681655531490893"],["9456096904203252710918565912890033128948305528243130501916145229374590566068","1543236026972780285650326885569919383842583332538299994663183027587070971837"],["27875531135939576236510721114996857827947663618044952671230467998235751161204","13069758187371659631489363203635602271742762981935726015273860905844005338281"],["10946635793143084698201307159984800910580722124101896733940365191289688855726","10158913498421541705863787616584595445908639229527596753819823220736631180185"],["26169990891544308716788598360849679086838451028392625350335081701441664625479","19577777012409812410756327139743589556386146477114439857297450307643398546657"],["15524181853919529443029662960010388085022802138642092918108664338332280256273","27975977373042931448798559166710866122555526330686447399367471707422190407152"],["11794494390767389540456236577082204274731510199551664739934285889002062381437","9762029385622660125990026770799526897414331337639111326888715012420599598625"],["13889094281568175831402653887252221708914131310920568434869893200954566576310","15808122583142948031322549484814159340119311449442163322767732600131064402241"],["26864959937304218046997126454681853462932067064213764739633361055641153312778","17354816832237954324470136160713584724116970034992323601025970830337939139255"],["5458665421123287703929117918609637028007115913609024926106867030838324453663","12747419277278462618604642386729841434562763656652485993974851731465961040112"],["15686750455550047155375989813530687972944272170028840222180557370233813702251","884815607072596458721257812517424961488585156220460707929504808976058038858"],["10111712447530608230039266348802725149320744052997232626439567379761907841725","25501965196232757759718224260558783520143752824717731930054719831366336664889"],["16713578745690243343456692384472574736232359764696807125818196148602282651290","15011007202839002700182961825147545284422202356227185554375989788301448690719"],["26867322851501956805424162331812601924570779036166831579984478464487749650781","17025034180786150246937251802019621033231856404682962232926018178474630406899"],["14616743070085182357914392304510700241479086818929353709545227245429608381547","12371633237458776652618996396312156377480045370013132835746738944637798500008"],["1084993685754678346446029407451445060341522741663105432088175448488586041401","4055285831987746039998466226762070459945093781888438312882943665438488221463"],["20915607030609451579603340032315294205181210446913814935778980429571431280005","5649583438688917414038000580130053689110337754694290424120084209239311608451"],["3039563787169101185587763093050120397929569355864614657091292788523231680124","4875173253006874830226499410326171026696308031568498356164610420751744422747"],["15533531842489578783012973518590799140321453206858463597812940504683764887636","16091572971039238491106418500240857410411956057553720014859247351688613016184"],["3735766848391397787932825212385676035379086116511437523206768267787776157421","5447045225452032322246982229067575749982578543954257319212232900467069485264"],["5683339250279274704278661585047885870286673705536547951584282559645755480955","6728166411892193402503298706822532726671400339632855817329990967140080828620"],["14717013919678851791401441483967719251188998017229223955813480203537279493355","11122688723644939688883025943481363732733086270729527156534022825407995072907"],["2108108683941238892224395439708377607676304850479914014009806485025515513020","6474644952023885275343106782170350480071835828048542533504726932433899402607"],["27308309509295038970335580132308358318014957723671408554854965179933254426272","27494529921310308908681510122830639870786978326812505137335553941331449474005"],["5685216974382833094740420146212102511487353817676974820527021432787034724003","13743929199230822501705547903741693034977005883114024117471219074372890009441"],["16835792290927662880376588870805256572685850525197047023570425127332895033631","3566138580584816153917566223643030836451293992161827698130082487736619692768"],["24492876911949249670386441071895762915900019257617038657566212132780973182717","6017064049049480088332072312764331324663682781291829158153766294956635424243"],["17637619644546406564644271855848272825130326798623810208756562665227453959589","1911147661047439979495372839238479826542371944050678794508836400055013715563"],["18131883711860160562039011576456120643981743348898513060025325899342376034585","25194167451347410895347364511284907025692070896715244074414833113857028543497"],["22849277281053879639607372195233720991048315930675758743316682324489426024675","21162227788371012871770631902480580104005176222420640431492838200991918869802"],["3975720889557050147742814577662246079666186054966591128208574432194103080548","4128730899847547464359160027536169917115362791730195063245580285434791789207"],["3323645715727464164041494120634351414764485923263957899563866888141044441850","17837525094920373391469726684840332506951633885886017010392679655821980478531"],["11143411904784431765773752638101117909972265004709753143824078340254515673354","13967297219221563974871323615408194916279868827066229329122257233588473383237"],["7368570133421535753841585461959000488306568327395752599982351992264934292083","6503616686046787979932330144022744901144648511115646228439482524056083305415"],["3376707243084368287188638081765245563493783033338461571994497156502704432497","17127135638276925085639666444757036438255944690847734158059386008694896304861"],["4164160037948639156105101218643928541942143793853429316608286649811467087441","14956345845098638741094115712749952740279335034365182139400697038587805040063"],["28266235513296970052396119871943738451583747231054152129385029465150112484254","18318564233886917472322152264363553912485612470545814579084628118844947618321"],["9442840321735540453476686979868743849428200136901058602397122527894573428594","25521627119960371710612497491076729848768255618975858769540398180472934010592"],["103302482335304121808182429229209510996067843071349931144883747475068159609","5987470107386081849356302616685147470703536453475691930897864833938594118689"],["28182656574209058040122868731567201669901181795851078571928481758871148343555","20716034712194667044827044311797269528781929870491314910179596656978576080633"],["13894563577896083824890650003851295939164047408972013466585447582833367885706","3209198219657075155940525197722047075697528928171122156266305007184377515228"],["13414926577350227120927345542354692861230658566879172013703927060914030387868","26999610286127000621936895998317787169536493740154963490778115765926119326122"],["789737186658055088998100742369598747849416788422131854524617981692884505769","8620945176306245798602585841128150599354881360281318047762927763715066425136"],["7849580350176730223472400364121678868826642048857783703937674099253598568221","22691523541176289404514412221638983441086688607814548045425046290119592378134"],["15361813845463372751041029038944919983626037800922224279038039046892617736275","21525858102914612780164627729263288364436381675016523651992339821271601260646"],["27010132436545101727160101816053321382549635958311349804700877696661600102600","21478114324016930565261492020392531971088900778784522408615139792739865630740"],["9023832432185922071893260075590431483444859320050568324082895727351230427935","9628740033138900749611048318255673905006699038339907016968015446104513140544"],["655315808363571085427263126322682548535913509842486119677300560934777851827","22823020797769910100950022617186411068161852896114473389660602910555672376087"],["28514767766869222561089812667264854640612781771494034699154637060977806100149","6752355704729629629354615021232301827124647052789875270705912272588377694166"],["21955927619245760047448199730326920799758508233956911161832442033792715241059","2982986869662529860862163484361709624451172841603174044334113642336387075375"],["24792922184798114387593997697739879114856235390611045484110040870867693696261","10834488200965219583497449562121785321026760306226608252135516724445273393614"],["6532976515574068019501481198722156957465414795867035141987547096694380163088","13537838289021048007668755587857956390789905828983689887342265894845116891198"],["10588730107193126681901971213380103754148798919166733391243848269540994656956","21062344910077816406537489941451159206034458421606322749477390447238717551811"],["66128806237504368768354980541394778500790717487396653802145268102031637443","11958255635166702673242848259706019770272279882530004490401884781548274117037"],["16363938360335030266617200879714029488724979396643458862303043818008738179377","8426582616951462076718896417742743794380412104775784051048511586478484340711"],["11105412553731479001900311818852671811326130370518043145871395471284097693089","7466275887985478088441599832836524310020526115965222387831023071959143988167"],["275602997665249674393740611134218513004516988922610241335689215558648750949","6031042033632475620854273375910920131035049629278839948635403710343942917489"],["2576581540012363598034582736528885158441416245214861810160088856992824353746","11742000400639253852869682842390803909341360174644239660247727116143279778287"],["28397632995031972060084239504911845644080835455571104930198397836399955406608","22918588766700284848953640179115982846635598306389856148885969255791559541322"],["5479931244402434715085258844885731749213789567596044899381746676419333115941","26455483645763643657822399065537360146666176088567007485860059989569590280205"],["22344425569423201138578619935472147042492342084417026523899770721645439916677","8700444531505218864370573893008626134900920161276513183789089617539899047230"],["16029751747557852066021383497281233723620075938631820133236535430346574499145","5096429573673979691176129362986999724262060928537560520799486343187186872245"],["20650555007835036672164255212506403901508931905930160843879104992333695230434","25534893929609895667181672630685437951574669680833481474554404076536051463083"],["24807760943799547619544124618554095733560275653929444960980396323866934766785","28819866479780482213662246141785893515795917335795947164937739825817035313207"],["17693048734906710668732987285537411679690203108323807925053217105056784599217","1411661260590955061103991332362887724701104928776726189455680908083545879514"],["13173962199595721056189256425937037015644765771760267796064904441391931736947","25703178502240515812183163046659459133113119434504501033497775275480256536049"],["5054007458693817659523031661908535175663994641227426328810864167843325944105","8017821452550941576168345121214171836543120425879079101680344343752537931603"],["13966508572478883921155964328689180068690095424851410148686231183594021709810","9224937416842093932351923751585218325261067352929196524159036370153973083858"],["22661077575725692401291883500063811861763338059260737689833127624062896103624","2343966184630777501683889971836913209690487047073915918085308512819955889403"],["4420398643373406318619797194633493694376960268681603437606039615117200316800","10056586873215449059379779535927159887105701058188102036117914446142272232184"],["21678978654116927007982066613300992103642627603296227409610387235857073639539","23495847322849405638295664900451340402269579426505376788936264830307712101007"],["6009716712843619224029392252954646138764363212117159186335106529819758686155","14626117331597935958567608727460718692237037755840939010712684020802741477991"],["19708990121118455514504872147555103634849410715506698106324298114969570974097","18582811037993709952657082704329880926354302352068285745909957472424710264574"],["19308888783675573227326188071444034005657302002969722044828254669825062086897","13559356472451527775033998524386015047616334540524910646609677222043822682047"],["21682201771687513279771661393515700540438828963553807310150993342358886144863","11144038725057078304019158881919315805926738566767469047046982313525195088154"],["27014074293128204423317175699690905922233883874519825860886246930907658625956","3769635056495822110909218251350624950418483328581614534721770661957752704469"],["22519042853276230071482107891770229279892290571773968812674435818466559581314","11356014814387197235721579633263569407630034616971617187585798353663551977316"],["10479741602153693385240979947315434434623355910725782191332770821169559201868","17420744226924395346008868955192602925216671892219342243972275511090577714029"],["8405255178754465054712909356980193879066628872751218462771932980825971320649","23375132030167704652846844940835688373286825903822675428196736771011165864683"],["22820060359236485994232717379104759524815529948542719409915134652869896555163","510651609995037049320493827374847214649192676700032500754500123016702378362"],["5888350348220032436732158526708978742894660904344733623218844416813432313443","4551636660200530692300331275801977276179415238772276219344985200099533405296"],["8737512827105319081480001920586783054932599574249283463534845527863744897683","24581205084508696607702443696968111579976160128354317497938924083090070093252"],["7783951625352053280465725250616227611454095652762189713604433303915265676825","7717541975508487676667081756978105643802459342127372098661361945052160220231"],["11221864818357708860840375542612313849856767625380964159600956052130255184147","22512465900549043256974903927525117355310278782703544608210011333969939576793"],["3295222764170473524180194754538460620061646076725508797880356106102319946177","9091207896083188755407189523833290818780524106882805228253958282704682244036"],["2647523098278820340021389735705895463755174422357121398071756140945114463779","3724760613471448055701967529438076532823541048583634984557152460081624156437"],["28670076998991271930513775426244709257043427541963529607720265075483325274849","2207658782561917310239628537448330625831023858100013723021345934019744648001"],["16831962816709662598695435945687437122411279571170115890739442957616901234634","2254317032681208223074292246486518193341521341527062520124847193323586347037"],["27588811045639141419296311453632756386981519334677863210191998517511700633345","11307539331773165225328744680728442268542018489769429406120639989124328394315"],["7588796034155946393306897410994768423559193838666874349256113186460667253669","25795059613016187366266113023891092483731313489364024280922050585183137002845"],["14028210955739683484144465950774534961992377249682635978018274281660080820131","24493286869171853032740120751867489799793898895760910413505050477574209518450"],["1473895670494707850542018375520496600617883530978150673269377779111094000747","24278250952807364653488955812177568006864713378132546720657908485139662048774"],["14841910850084500049060354335654492740481867617481632822476308351934492786301","12545621925836840250757172659597762593091514207605735566080459675116949822972"],["25152708236921643613321769023650289762440083641531119973777529740585683155985","13927398023027309366368131352115201084926736980817660745969048772947288263376"],["2896690162771404358305716632985189442554199733762574546093244663197697588201","16628889255087984345646351423561415713846795453818307546149437574615381126845"],["9680255330097228496137544230722834486749998880877764681960787002229358421164","19813972215105625747927412755435282998101901964967721394607858610420490880326"],["2194738675477106626920277059287600475206635721089198687234336809876275433094","906362516774286545919055289557604626881773067948977255718084959496983690188"],["3622710694609664876691634586790443978309278936561455018395430796942595957358","22089536045875373589618148302583499407444523072322656217061617019687971889700"],["2319686184648358184366635334360978245832377079020052683511816514681170872839","8997148966747117776883775705631697968217568812432053185731493406898333871935"],["11695585211283297362756530205206468184454628962422916215513132331736327278256","16004437249908515308894904522399206024126516304983065001418710917849297174403"],["9123014299560141808215353067165780077084057729907348027014305926659697306730","28123237513854872904127509805362401518100453503215417717747197834070501143156"],["3365523877850042503865917135345819874446053980542007983665701078893084628366","648680528812709064934205313724099440969191053756081933364719576207811259105"],["8230221811107634203937703724699539779348381846711509041025353734240275659640","24265062970786966859565883958696476522250833919985049910391820803816604938592"],["28191917992051386302818524455471007057311546230671479748942957816026359025948","17324506160673812141298937835815439770731253235750594609513777461451475845684"],["18394497504070288162037120627056586287624004707184740412725866695040511938713","16842107007246791619702021213587359482018438177899449543126644892585247350281"],["3968460708704696836462530837753643645859630883796108966516870408303744271016","16558760910122113234669266082740533083101491816807374418788030246045282640853"],["21540726891119310754915355727652705855502591783247450244346092907187149266889","8685153948066042681973638990220046580009201243250430191753426231656816064271"],["12483146771762739870413160075089987888510427452026698770387012334796055160486","4498973326822731746047829870634608100340265086670897451119401742569026566033"],["18182523152132133852937530763623319074386423668108724987130776736800042099295","26946379317449555573578027280316917921085501982809491422477820020340020843003"],["17140358187630111768387350239329635416266440079322711127653464126088245900604","16284217583529006068126714966969522550643340483847976771528564065433841299076"],["10882563605647587967929957526183089183613128508312491913629732922231482104542","10277428238548368701510595310075807756188005705382618756340239530997284026442"],["13685423557030031199358779803952262610241003197392048383914807530990023151595","5933213308840861747740871841056323118887052674655639369665759478761071963008"],["16358433441141450745334797310991665932638231038623630136045034557640183386327","24832042325548074702131749785562241367033014455615214128813783585587524974496"],["13768812471747649209534108106021017378474892687678880152556597429928850939037","8851134637604344387574479787270822192059418228793550170166767189561668061733"],["19820608739036854977550867870200123327041118436117776923865296994748964024340","25438182357160912105787405280986214735189075697938293709170870073107770949974"],["979989820220705273806470929348019905536712335195920912576880548291991751577","10720283649122957779485720338442453212977287211641275708651309685287506046733"],["5060725977332780500977667699382824487988977441839979291693111008606144402441","3047773944074798654089055462375660260643895186425755163684170388310299443567"],["17226335229014154338023783011967069198087930762203137550937824304825098989076","8880842971145225982894670513583935390389641851743914426007513911044697360098"],["8458305680131177705250732005593040263118061774380037417739339686681990510032","11913943489261335393635463030225363359730629763187489345148851338259691998333"],["18155209484321379037622674319999499567033682050138245475265852052877569146648","21005176181840257628316859502960759038409932865490964516749661641452775928222"],["20383735881847964764707689656337104539362320845631041673841290048851141221001","6901074141850390500289467208759948457325748911313576573955893226145122840383"],["1942528802537998207049602748089437255285707648437295734629611863692988433379","14610287948586614520987798138093276191743054717708587245583645650027376846085"],["7525102581006039308460330457779999852307211457380806353893976164667929960990","14922453398802639242966758290196592203229409174914713891106684992395424953342"],["5708771378128324232099633736012412996554155372626131258682141611255105139439","16982977840066125717198838427100973947888218352956564277561890344523582019690"],["12956490862060992911682758415312862270305654863423375569120624748811933170006","12730581944223494212091137030305560908638999745505302005260031282786557644494"],["15138279449720503556430292243712804552714830813474295353709687648481881902555","12505702583401223430139113505967634398677742693384123068333676810450972241128"],["25837483453885972810631447095051269658048141345157072632076110227747568485052","26334687807589598566254900025793901743467968675194825729576858188091338144093"],["19062547883160491008488714363732706791005494603903644488672611436514159350032","2591732011523229340603749867796653430323204291792213109967323870907743285682"],["12518886463978295368037157996970901279891886374619456469332702293458708604032","10227765628435305730555200451254402790329233808773385966708867228054728768565"],["7141069763546154189295080840656746198712068286259746262277638893296097377076","9393787055323805444353780622347265993815403139266890819017535456976930241539"],["5823263003541489927096971948095697733340482403678916942794183350440322570037","16398875838135744298990281429217862364420230466978920555000816035872625483644"],["26991543834153415364989566325443455735950419072535198688163933863251858890258","6920301644363528931046889889935854070456842107946444121974962882350825520424"],["7610171272061875226219723799281325945449111806854985310872153831538570972902","26038287242182368867522466575597320373857483693456831232454776553908859495099"],["2974762458079284225620379026394436743938236136659891202418696111029401870477","4653617714462607067140818543270076244839755430815399771094221688405933277335"],["28711269321348320503142015830141683693549177084384057632283013700783832558580","27170515367987363375923123199297718643007647501969326974268251762540827812065"],["12805420063322173410668762824792930198504960890080779269923087788997324838660","5307413258044170323812542937635592688787805625618144237649019190483007911516"],["111849747297199115042200232274974017167924756929342816630053841751328937225","7505720527842520683100253276912195956300665645647822442584922035240667383928"],["11262322309035424965901453368782042264669087575981415882931153295537681257696","13161721160460635752769373480148374921353638906114886605721595670472099511374"],["28206820739566689298179672149584457940826158302885701464458037515518000263260","4967779415360074334734809491507811499793666253610401343443792833214624206656"],["8208506184665596819815089227671552238453714436492501758012473481268463727524","5215852050904861119802204018283524515447863255444503863416356776640774625670"],["2562856619702932478201957449026699390084340440401088246179766741468959082767","27395301900664312595225701649127777395018247462853166685368084572868901721591"],["9466888659972013574346246297631274312821155405840688090308373324793161890785","4857668994088137882345037030423419178548714636105034193515517709711781075072"],["14390370346451949879611457465967158278911298998983884876424410192026951529436","20856660711309475574306674169647582394720896011641619598815350091351049720303"],["26143118716475085079058524077695782178055110705651393885536575135733427706551","19498362588422144299875213505565397223630794830856818795527791699654393923110"],["17820938855695551201186778591871795059988203847565681935066502906066779284360","17025965262806602045868482623944897432098697271701341547841624842563081136212"],["24145933123338310385316551646291049047086591698808128637706373123768619015191","9570193758694903746055075582200960560032171455087753095087442948402690427710"],["22813872508818235603169911282255658027123252069995494352995206216717834208812","4896792727989877996872419383350745081770542895186285623737356783718283356967"],["1331761565023538023394663045654069845865540194890458143918967156577735213425","24920324294787851071373520865588592041878023208063870954892539995044766345415"],["26785754301620127010053596023000277182871983863167998067630441027777314141587","8474232436048916452920191381735694064635644117971700315120940665187072088295"],["4332990066148536899181385081073783806335879349641283317826470859783482674989","12010736500795064785674671939078488214829310957835126585533109805588604701519"],["9062275047409106416517512295658596811710611783825193322057720837151778212383","7807355810778595382065121907641378117307663501298591975579336737807918223320"],["27928895859518999176202573711470762722356708846296870012141881373506449333941","12132364670663774272778675790677867816079472220857052477532164475970603538202"],["2159527674138692320842986922038401374570753805801766357767101295982690944599","723738848272369634998947533911353116615235931296848961385811618258423028928"],["1390624404593547963542502468495849708926154357810993666858173912513390143984","10266089588662970344309359040191821919310957361871401307123671908306494182005"],["13714768625480097989686793599904059924732384406294569292946929670960055402034","4992279243056130625975551669737530152440135032622747202252306249471016600393"],["17365741501588742327093397243007141750395528589836930062822218840090230287350","7942055776501865421763946637331095152601346154148475814103440356615066456546"],["13921995362460112335607476992573483810179279455460013820436381250985802105138","6117112473340848935937779582316787201935186052887751794696573447847556490703"],["23711190802278194803298451901313433007746357777345448743199580372067407583872","25260201837681863981873109377693617651898961773286726337938195537466675759442"],["24344078179327140630361014041086825294667384941748440504757392771421928173552","18327670202994115370819145311715268868669575093458170195583560855043467455830"],["663532410988169050398870551481106349459967354678124402436825545755095666932","3030472403712348024149730253851434172244950996114144783975788406051009941009"],["17915183811992455851852147913889913582289536776505639360196575208720562194571","18167390876530587700872118676113191248889492899680322728109224561982316146541"],["16720033500090261220452760900551433422881314944861257030120652174108793884787","534729082268203879431539574349817881145942790492758722291338191190857454209"],["6056570445268115155955436553621783155338723624283239271448259388000003229820","5264881152557598603730049875606208631844703891213023188449282638435399628061"],["15498049645994864834408134570949040874971787815670616738343700001491119871381","11714746555489115811917624676513585992773757568656822832589252822052618493277"],["12129539817700333693499301118405720461578553906554725596578272324263105961341","3593961999870849186048055661846722007401087253805016486956238440950215062494"],["13219690759021865738858572967645992137640310250894310165394747163844457598944","806629176581269886832027025794205406246985666703080332985239035916171893203"],["8318674949298282333131706882854308345132188682317651295411318518410128383004","23673189631192408026119873291075656845407000729284287817774229291820081034887"],["5024111647396198602771584007790925979846312011129973899077978153305690634375","24812322169289169354602734233422342367618580456395478480450095024621491799522"],["18507986490906810802376598147065369529040806495644116766250332306491352664220","13401951903048803105850713746149285008655457717724588511726209795749128768770"],["25948707341378498556645823190353558407889492062208244609544326209875636667819","18611105558793039352057678546730508111501958818185296588948767302650922287494"],["18728340933028028767695733745254646153024107809491458390616381211622609405706","22922050232413158066616482914315723394393072480841427027182383491292787703308"],["16895186849900953776689200161015473275304210807943973447645529502901563028461","22536327175882965519475670419563012136217542772674628007260853067939942202142"],["569357224012310208432977089910093562310562405781197690812199832046502306703","17411572743925999971967380223527207964722865445573349892481824994535046921967"],["20115167521787406345598708584834065897709472328037192869139890560084080984174","14717646017813220350076242211742164656343140693414493668154703219570193002846"],["15667497979646026960151761399168079978035460409572467135774950144351724033159","3364468377488263926480497587629040837246488658667062642585791369338294803896"],["27250783854975170479643949072948928709173458340430253957609838732691067535436","14151626486040590973331599758104378102459161070948823139561357476678618034435"],["15403287797640807437917087898405275769375104352718674944084194562422389877766","24159271896637687898868831959181512916343939197077865197823510382206293921637"],["1818160814747383388904751797949851882088929477383519125038157333051441440468","28277997011683464586713845266801014234194390424833449873648659150834387917454"],["24138730300016118327347050335608147498001028463629729571413847136102949832834","14006045596496667795765973004014869229406583519179496911526935691434280835191"],["3665780087556150615333551642025538387130497324692048239803130309768971628287","17438563572520925465724007671846945375494948169972556167314466832473482165874"],["26895435362537387210540761966933468029345574756556573656199493714167098569779","24783290859308159055262186907628411703477632635112034180596242313027019592301"],["24454654272999613869216187474915739863856130489668469853953448672022084628222","7294010470079660690320864777731221305655740694454650730603529324394227096585"],["2034526619377332808604656667245875659311798732750069397396836454102401008329","13488575228727187263513592496060911291295794999215990407591203904739734726669"],["9449257578167830150410062429144237372980108560279168569298317777305483880645","14448021368438662221111054321151461783788712853674035925320496083727884996184"],["13161013606375155470320789394718376869526884292639541728566464758434735681890","4185318713418301178528055266885074187098983106059406912532608473177999744671"],["21330015213427932814736853230604254438571104875599708185023809895651605156349","27292249101876791796739987312538087002250685834354982497898181942160969420425"],["12131550447794613495546736620475828491006032634468017670049804816135787821237","13414468128582476466630666653457977376196468780611732852908606984877750495257"],["10246674449869175344815697019208421057453791443580163714129649625762648476788","5224650917604384658223316004579753358007040627035867867844479678099729952915"],["17322488997573186646150334949170642522980192595437312260898205247092275567657","13527663070554156432056913091681243670784570678444893020911944372592777542637"],["8214634720546798423713869131951028487466169309126887163437928478697314548489","20930172014279840382787099040481594524743477388784417308401078420797663299835"],["2703408366738929311417125668026164772701444346537366163902945367454115412695","23052322822721174493328981051227774537852963924529037112251769624483237956812"],["11662278558231964031136533699834991292735563310112774471637916248837331921134","6090163445133179482121203822207557952816173246143747274510621105781755904330"],["23549310544609138158424200426257859051125194133797383330915436192991691166384","11037307949788412560064794679510688411459767747827868315050862950235151857992"],["9606373006872483122006374484180223161378557317324205889510056557567820346217","3909211111006852752992537823723571644022746544790149447652104342793578213167"],["4677096631660995822848576707340581184973195300217211560357004263422677467439","27067581964277709817222615379865337389436187916645574332326089278719064454906"],["1671081181177260170303881596151858925513906458344404176320349016564009844190","26293743504925828397249395541623038440467714019577224656686555759654145164020"],["7401269990652724729173776091757827811493596696557237837137293846371078336404","23759369029973747455424440798053216909195631028063329994521903373532133351912"],["26941201076387230493856780678093072384681142855724887362062199788478171226525","21180176919796640395707286621726017504486935782652227829970665991160776233308"],["13643659723889715555204539756170308703997563399125750330996889629602236126311","12965879360450925953963212269548221844546222128019808019909559132447014185667"],["24399106247880212516972205452307521467401084281335537383510791862420604173418","5318851976051188754981798948980893923396967709508409804094478765121585208041"],["28271412639026659536533620984029400135242777607831267714408159509208582698912","1468367094671739134973947786686975753025316068009412823466437785717627194805"],["22764787888996744751740116616759446077183182304794567216638630439971162084839","9746900145151623520153405708298058613391138729331378920401088942168891866205"],["25598206564332433315299934657795407051993797039316815332463362194606087832100","27383602640819602609238685939885400552354467883832812136995284538808722438383"],["19182380214687843308148536169108533827894771087851980758443312735223835054427","23103819672675215345303205726312057693904767161847588785220574853618487806894"],["724902321432773494228510838270796182133869025693210899536614290936664898152","25180244644970163527200401434372941894509239918871921401688415936991542410404"],["26327802264668844211796116892515438037843129100019861439537975153236020235829","18050432580797845890335137136570342754221656285179478028765965335778609941685"],["3243681585052615098189330330464493384651537499894971191732520954709814966776","25330766586818233203972095268376310535210838368040521275883294499513620847888"],["20407321789613465340816028810122987108235819622650645460260176503380885025824","4241514820261445003585944049247977673689521486943659616481571254281982921443"],["22595551067196504621362921693903416927568616395269311489737110847940215033011","27541736892915962767535973419656577764916718664039470928967927699682092991556"],["14230573935732092801368741555211624077057004346348056673099883895281157643932","11183468259308486622070314870121883239119407998907529543784142916157814401866"],["28632599706937774114503140254279978861485268063206356505312775642833858742806","28239115294232020391055461012599235112940407970994583486445994083413321101421"],["22383163528677341609902708383272164706852385247665659692694955606782395622704","20201425866045131838341326977801514183789812939881496813283904293020979972769"],["16854475746009380453646367983580349509878076425489656823115140017263515997000","3083943916645221315869108210500475920521758411203383327926001327572526771963"],["9023450108160431001062314932485927339159049068669496809524468532221344981237","12916931988123332217004201547566638960707523829927597094499120756223732121373"],["11528372497952793814428647387422993698232249876622443377595380649316954813353","813064476759600587920065756966696129587902811082958481018444934094010813968"],["10669951850551645577799017712179325126913670367462584985579885292790365456094","15180627142752489972383934981929120530291899738302702204194378196976717450248"],["4095253537029610630468557189379651152760293452905236933052596649002789790784","20548514689310783162299345141071468886365030187610842867043513513103840580378"],["14382744332247810295745361904600006080961182522407366421711386841510473763186","23591419543682991849649725726513048384233960845344283455669546818977501576141"],["17806957544965422903049786615057275554926932375494387288565468529051868553844","27557581993127727650867115099899439467684499156205386630671416473921047780030"],["18943801349642121331927444506438840954244418333351761491290266040220143873809","28763302187913410285394629420312097405546070199039828725815899687124301357095"],["25011424037141444392087390930457915365334752601126555657606744194183750217120","1666540106833875001144334730810751352634928477593859506573280702133670942471"],["15993561105854337136956245377792249572169021226583055863101358280661364578928","3852678053599762547468848323216796591999585514202393884065445234154247595396"],["12716986859887736769545097644976399683300795546231869221636309285027369239368","14870349131001378749071748833283407427166038826258876664110340556204725658509"],["10337648015727208340589508369170343976981706674690426822536047001496603869029","18307960427898797336571626441305262504086665943021379941925018741753389452125"],["24499163054307127353234230403152905183674679538115866472184346474079616719976","15106860206950500880663870448596270042450548291962752593486925059378390624027"],["12020228153786207902817539313878057570715666841784630449076555731011308078080","901401889391014571164111524756762933519281450910094008337420451598186899094"],["15455105695090572230276730631644809784957214001194264083825814174363499798978","10151128482175342378040543874163828993394775799665508558506763308526848722767"],["8553336954895339662558838047057582397731340519304088727523484245092661679512","27669176368534631680388668837247097699022656717603376301621672604248959377725"],["18169592974251171502069947877982073046604493371588576442954470035249802134059","1537778710024335717705149756219553203837372449410167141640987089006700142729"],["15618155701811804529654876755990347562860586107597802367377294298275424304061","5715903382190418151759389758510770688750558986670097813344399190502635251875"],["15368890831417069494550419457704123050046526561706199339122543137213663038828","24564511862512765849421820434794373189276642958058084952758245330816695391549"],["26628233250815560782402962367920674338389408982635476521442605806361460925104","9207954679616054854778974263060792702098004046680330290858747432388725255411"],["5998561534008863275703974633885397958766482626261833809928317477416696562000","23631807267788750152530759643947653796495752359123145654625851974489043900943"],["17018544547177892734574427121365073307011751205838382281186423974136996742940","9069792794344063275965882711095275500287152778653950644834842972948969168403"],["15894618801754053460337713934518995855748273171554224560133006548811414030715","16992037084964306248909705619500036688325564903255699883584907546512976386673"],["560044498658510158973087500647997945662913211344681459656008592046143020246","22326736443799107332264007899214983970238024444844947952041863413149728211127"],["22768548478459594611829899796552418057645055876773278282390229306361404896372","931692497947456415238095085356572584768724763099343726268889925895868683178"],["10603935568094873532866420002226714146986208767636048190841291967597783621968","1957868820349597476737967236674717553550836429779501053804575939048738619848"],["19075443492264879044853313377066563067466196448027900955980099763710554636437","10003817364760891345042541655046117013156783647755046500373145823276996306947"],["28664451098375153137865883131315802247511517271230569251791760974190483082676","1866418155243061195606034683289987249583852107421541330578026521475972659463"],["19268060205406157134416978489354946208324746204999566828785245524804346302870","22924133027467718286254979665856173175554551316234116689923427344418783807359"],["26950748560323399695703396430088921030419533926450765752257529075398593494422","18183034675092328539762978644184702232700464689544191125859192385985463800722"],["26428837306183431360698071999485618510556020339228576822078317088403744183668","3366345496906314158863521224061998267510333782866140697529366886212335886551"],["19866254108209520851477967203130898264343488699799182731394618840616934208670","1100686113231038444965190002755160867934097024350834414194760931929413829956"],["14884208270535846979574757088170342178319852093672257082035105736666472942161","16084724786858602580282455642829823789524807760618471112150905370007551139750"],["12418340314477375598206625166562060501918404130742073474456673127569040970577","16990683682649360111738695494382441750900809783391639087643028133978308839178"],["15954328933859753308018392947665808362670139630907729632548785012864827083694","4051031740867924345263732414765954575082002944645467744512595774421141119985"],["22384243118662792990664679763502533147168102120620639113048904151754122287496","11550542868581082687310318249306931977672447463188206111292879225290125448913"],["14124642579865097572734478794975719339170806044178119297761498197174659327447","25386096052241671875695159780201673710113978782082061080120453852791284650755"],["3913321142167861674335449377291621015832741213629973517627594202284022515312","24753883440818226429023302505076792986644101576012854699507529498370687832477"],["13112686562998701697771363238004229512514307437877596497089177376080477418687","10247758945660982365381224972031328601706869289687613751187649725253599076653"],["23723922101697219910678327120314442341362971831362954936887795307571180065397","9200596505503527419073609804516784294255493498847245904477129143955967637882"],["24299233549808376913498510732380314937624706121177133538647451417554082811853","7412775252749069688928153509943146651195091728068932308562440711041332812825"],["23064750298546616921182222479278033310585551541923116617038960509355872397853","25008881384516330745085145654794360282721498949056369477128411313896787230439"],["18506157353862075793912180625313942642844962263058977928140817335368841414987","18847366186282228804808045870897338665259333751536247415716188499726276582324"],["23899760556814253577017339944557853865498522864794034085958027478671641412553","27537315379891856632415352223108446777097325598461877553835828224686969935609"],["12068937004493799213982630506083489528019194267818260709329136683171187592403","2468200591086746865651567952390430186130563865551956104711211948228870398749"],["6592894547964989497937584206824114899545662853297078682462235824577640779879","1496748389060769866883656060450808645075838053261704286947548554072433518369"],["17356564126689570695637404052203760572281148558932303210280261690143467364515","10493190717945814922886234737247342200672841835880327149994407872261751764305"],["12935235714533447310944333360889310709206121463597310795973198829320942881003","27729212417499805458417013415264824593839053027440528330591677366494942112891"],["24906399226789054303587713976349955417600450611133106471025411202253386281365","23682139945204514322044203306206794471335570917117122162458313372474399341655"],["1611289600791326990812329293760399302287233530759662134740551057510793540263","8427349240210834468698812015521172082199379720951428356412849362924456110086"],["10203200202573554068420184333220872929597627166933314091383101205073304422765","10191985159280923199255766807011758141005443589180852165945639218306078623989"],["987372701476215605976808563910577928298280982189480152688117033159066815747","9953822264451051624600800239265626644371553381387574247654148339006266263285"],["28613899701468887789570575958656580381668996023961454998384441103572933241678","1210786915929515401950568522844999216288426199955380707137938918685156532984"],["16802753209052400602239241779523254291141662276042450235042321578231866937683","15781019621840565637203209002982935138358900990116086165378566742901637565950"],["15510001940695854132404442192157653213200182813231070109860306046971505136521","9312599724735204934919281223782989358549764569885849575780264271785170122736"],["24591876603265992118805018389269717377555621222197423455350872483723721609157","22712187985590113701841900321399099401026873805891972436646952702432508678563"],["20858584109367408372966223333713430263555216521497539164235851872682993370608","2245862331324221189085230618912946600172623859563051997183677396333782231174"],["19159281660473210476003658606613986989751997300205020668502098396098282685464","5413110032695283069693769315839673334661649191349952737633606177994077585959"],["27807646119218428972837572691394524418185850026840643503692486102163845774797","4274172921472478937753351684107261587680154643593999173143234637219421970007"],["1422359646903999410378325800345740429042900935779302744080277632217737526733","6006972195450782631880067371311114447860038776943758337464417092940750512651"],["20525199358312225224785085540486987819097869654878152687630791851132654700676","27076078514547850196858818792063691635366686260222422074681094791821042668087"],["21457818195190431468766782484070549845130846916931637067787404871986398954983","12734931784932411527198048037818137878791624697448734026193285910601553679095"],["331629841954758743744743907177461161738004663795110598943087319784723429404","6678778853636456028037218167837021990627109123375235766721980237121296975257"],["6034228846680846952972540030367432081084658147935573253188042686318920529694","15906719015572008164793771439231385356790278981358874438320504393705787260667"],["22486625752406199985238579468142780574012545902120211017846845465307611634395","19998827371789463656601019746488127453493404179502826608062761032973961197315"],["17832066487322023864709178281256558733091806505777852375339240435723784068828","24109312445933855497479446455028759418561455863903540197889761665225434475194"],["12687761641070635458690864815437673615776963621776633927462019671960312588320","21984572212820390344782466526432422747273909851873237071180419713058577563491"],["18426177181080980474006266040473539423061159818379783404557280957305538682116","11024124074041233230158712116897211981698319452259388939003847356336463625787"],["20213540349403980172458244195224118915761540368124805915051873760588988649298","18725495479018944718147437588549002313504435782228925101967262036622720544498"],["27569479593970972308198554625799958946787932338502130033697644933784079076411","6267158299143662994287262291540921836305229758072470144086669089259687561250"],["5329211927733024829601865308109424543530234481482905658208006141006556840465","21931455923150570324187637951364303337393862455172255427584275392317738109687"],["10547567815980837284873717147419988875108821486812788713738730598082584592910","3143206051670638564434884381257245354487317266438904796850428251308343298819"],["2134236660873989654840327576689390538673273188376341723114225409097880329615","19293088843790446645954900822684095524415524945334988896747688212986822515841"],["20035638782454528645643406021112724181410617103915274612262763809004277064427","22272554519729109129314804684103543782563675556243081019655517993072937516299"],["14760789810339130907746692555362245112484866933622068196909285568812609668059","23167175459828385057618368027959100410066050677227663661556635251889863652986"],["20847419183852449219379983251104197072676721611902615353370189384649250503165","860302130778720061408703082053487936385902761741170347472294991084143472870"],["17135225221938178375743871760533929403277490632997277096258250117989764117539","14253592970905769904832921259148783676307416482586326578103430489223446603385"],["15358667391638741347925553754025033539611906910129922930910662783221706491753","14309840484522850816533961779640944448530443053934879440850496903838516613715"],["6116640942110977038972617251926864750522436442899141611143956550922965445009","5335753572319405469489147065702904817390762985560996111148577333328075461712"],["14415963391418084845579349042146756433881231950975789352477257264656088033068","16939857636594565502141186734177334677883374782133032202004646225889413791398"],["7213299793421413654524632833281907431032513089985215630236524520666972386116","5195126471591217036816980608981900121921249442982659102610660973522738921153"],["9930583030229007697639718921894963142805141113143149018252660283082475621103","18308902289359301817257408917260735735953774995112687748865827573143497466392"],["21159042072231463162615441632202938309345640962020030452368088587117112645815","1832526878243481082739913102117460193111241272528534753680300777525041921683"],["2455493607968872433068004372840320153156811524526541409261278153086636008890","20248664556540558484607260073589473157324542481433862148055673920899748314442"],["13399239155020678446019475432358636400801849883584084034994545592199253165990","13665785475000195546505507244876302985172766267775315034547942311774575053831"],["7089975150886881281177375850775127857717775331980376539642824357347259302465","8783207055418797337965180850449072876421046139623583398672671565477522440082"],["28729207439521248052471168691804875843833170023412719492523118699901238344163","11284647703558748442966349564086307388685428999890270388555963926627346453261"],["5350684546909653987125623066735745285708591427581165014644961224017684478946","11835162642963241769158195200373148323409418738319664159827597796512505747792"],["17151443888486680004045548858234081042580086347088678254498895234223718057798","8049734409221848094486399889358881460992531881108475278305519358732146059692"],["4883228876443684065349886550179900372202051894914063324433606090312029210325","22483135716722958227255488972996346535803324903558448705074031657218929833381"],["1084470656809773176166220751842108273002602033435972569054754855231158851141","8700071370976845806484647988481657984832646438197351755119665863277530893158"],["23789233556741019084138119220678128379613742586554263546786806072134476154634","13469733265977794248893107082761201965875561030582851908570301282651967090310"],["449325444338476049891925981380233961371480299451042592624950974499005400630","27455353673152130728634889857963508527690157323011126176403463402202988403824"],["28808709306592765502163018455963305403505021669786470913224899318190995252906","6941038223957834652062205361510834472413690867904252586676409644689318165916"],["15935709678634672887836831751729186458058303250229995920942454150117888580814","26454050293148167559787342538912868210754897112098098027763153806031826865597"],["21705822396573354878093673805577030865825983274122785209844250888598543964604","19381694792418832179310331433699570337521685886151247758201088981176554515393"],["11544821121754314975559700295826857838644737285564306261820301756748204742347","25079744865502815091649295698204366993368903620120335259462490176141978635797"],["14154917293110741802117766779815085764802163669629676020321957044384341504337","25782828099809620910998734501487470273447477782293606613418873929715064167719"],["188993237261312247083386644076100269623502948877375032987560078246532564921","7890458928263960703962106320989338284444630713871565460327342333570840892863"],["14643204594114839408488691347943952159453613147443575656648221459585392606247","13090731709860629620640717263194646268251034349051662111351664882241330611731"],["12398204862565910727111419165034401955996265531335623207024304172941210220014","7241309434004409088718074500060575591684715553273375494777892055845088453790"],["17400172384965373431700966325317172805075375889818763697592501308701420664820","26348032320173249951565214265075694252419407723556841458185852214169297168523"],["1022522084307396022228074833037520221584621670323328598237984072295402391366","7768757458171283648330000265276364491498311461272374640315635344751484931281"],["17301868851284651435933668074010659873675499323977822161174558659601727133145","17443974439693589832986750738990652353207825300048586844890870261210577615413"],["4617434462539280528555681091908587639946729830268799785265422591583501722177","21600873933716417401425917173960791136428797383158770093442729201427112910447"],["17220997842063555620923772969881254786183550670687451876352531173853776764565","22707838558011113241394478755324532446106510215581840186919302537782415404966"],["7951820682121273837607890580723144982989301282929935840875239879140031349334","10862105676530191276792760062407750712678809893428749748657040322212802831535"],["10017297494182596891230473992072984142669249227810571912342039679776678499549","13761895800046149591961195974402929877110538190303786657313238730169466738075"],["20122735210005794988188896673119435102460930409855565196497970060554501133812","22924153556569007709111198332800555318690292779454642575663018404575125749870"],["27601190775651168834925002443721437742387342096404467660637494840145900276304","9649870849333278898689250387315313832471586686505656051273282689029044595811"],["1525091796536074046146544237075160070353802922806116030239518648726034182316","8971252839360439942315953587891014403994044000615050639128098459248685160353"],["3602386280185662876716235224107447544555226113190397912365055903062824187006","15875023638542078525367839522803567586925733618998900385861731544001174781874"],["3122088170433637982988689548745651645505062493239230522844300125920262389265","13038361492782762996609927868299339784901208046276428373308640782594352614340"],["17286509469498352495946970524980467312700075723687156420255848138773908165666","6058592765184020172872489196545367454893123469169137850073678968527818063367"],["2260433371835222754505523822452740472031500847661615326178469700049653168471","19306919998325184186870537959558931458376657982799191969270668354254610885941"],["17293489389880810160153696981325473673665455087043977308420487351662062542502","1294110731230263974346234127064494809747142174285635317398553901537048331372"],["25760026402614671522016535983290302448267367132742957473855361065168898829301","6280957012463713493288542637521961700022192002980637621593536365741627559458"],["13296692320065496819810215485045524841627064851626670811228115067349593414860","14130445824140541039252665609391507732027123789410538061966934673359452478209"],["1772356490376699991204195078162979181710950626382854994184784252139664821656","6927875145822303466630321730590502508302216932333597827942623992053319921295"],["10629067032927333349660013020485765560207570215673497782880434534021997120628","16725967231603615120488494100389463364715199465398230492082756106478970859461"],["23594956050625021346224846209009071921438937934450680773600447527713434315432","18290826353009323463361461662098412576281451885834688595774683787954395624752"],["449783024049582594082116149228673862800936637645963636991714014239097782652","21485673332467503519450452714588858524580015407849183248556776857655037553104"],["14676472788863478861893880861826798409928267755985887630334220897482924781497","28437450007335201967152872257986824055490197023184834259896373834776239912393"],["12917636723800739244208928232981068914861942779017551438508263454994389866271","20762828711337672326869192207162482059923372307956965355717558966872436858450"],["15298209114478883291635357027655058334990093568652275437491376066356926438601","20742227416420096730237302222491287502489131400874328840412218436449118573201"],["17857149011938485897559904152929767136272004970556321755473343861686530619895","13502768816420268662784775648153722585054727954383346017502903953364999576811"],["17817417034760101992582584994055687302575078036400259678849908781159698107427","9707430769930096371363006588026033589597563678366878521167825472002686732574"],["2363220970626152732405308616489548960863913910635071395638253285954506016061","7688717767547992238943074648650168267647036647151753043342641246908746058237"],["1500809897808447094169927954111701337348634674570722665216841389176822544236","20495643885413323481971163664600334013987491144573474854261398704095959851252"],["3879526954037737760100011366962257540096386510763452043936459900990124484707","27894849814381913805199230030980250652033786413635555177277301122740700284585"],["18747699742676360001511879079779492252951995768377833169355780472304917860533","7460203143871130988782019385550417987250686697637364301325612052347531800775"],["1137368292834506700505920303051045113851893375161496995682200746164864784139","1208016885535490367440710384004868610879189533779774924872700331397060480158"],["4758072555832272728351294441891714265523400084771837847686654824898662063446","27021290233055542444490317764354691497860904861446370134084969432294697593672"],["1161810418819259354268278529573143266656296350403533474847017123690063352111","5393593376271702742997684376790986517643963802563796976437332988417708353715"],["1822584412292052842360117913415464455573932275000809508862032537234069167452","8696241536303503073855799506315167788125050898422016238839363445743190572745"],["10378335020681462867724511107349696734757393932797039903324904365276126281563","13359149745794878745320054984328889896194202100390172119887603965911663251581"],["10713384493190289470502099676433665905368784433257406854031147114111105697777","12321293122385192920945599669275597485755663119583062806564658050589383178746"],["4890067374662482999130840944202788521428745786256253793027900445596136185456","22592822450646297533248337645679346206951291465685743361717211460589758006932"],["26777162348213499112897829303437872024281436803383057234944988491862321080663","11857118086572998158218490498955370920435725190456719812570596559128898953898"],["17507033738553605653571370192703056050669397677357737337752503434727096539565","13808751191643835300413511720439365791415497184681783979156405937838861216793"],["25564993782910559920635092932272129972930213188165233998815534289242619482914","6002849707368000428855153254392371188857809664675577224318479518510124148347"],["19047930664676630217671292003574859887557323512555349854148402738140839779250","276322175334015060569095655166656751308968456720104917746083748423177887147"],["27398147304551804319994110526927953581554029981172023412056988663226898498767","3608516297972479882168732345460233741222883979832391721388237128575588613457"],["28106589338893669713424420606123701758025101115902469006258127809826790185151","6801666151348509693003367601998388987179438159122434695307190296282966740113"],["27140641453562633361543685321289605140225338217742240367745363167724132308097","22900234855944977241398436779360675476858712800681540003781125475105048232484"],["17198113877534821430880479352576848632006853788707760401499103122284013693127","21277484015140167898842912071127810710500788820203039358235658040922447201946"],["26929849657179269899903740219791034841490984256916804916168657629220699730504","26845673275353105855351857688840335311929264232836179129613154726639001455150"],["9575512804274271493959618446783746861166262433339907108091383775285658266116","26619567003614507468376177605391013163676734648990408660718106979053590554471"],["14017267352218901326498756202191870413479629003269301726203473460776211217304","7598538285956562408120424253655293105448046515698823639446059448572069747082"],["27773047127530449735702113622558328560409000166455379582366378970993266085851","5706997441760857659125182383409468197734641559212406835154005615430403321344"],["21706685045475665302308680425314315375908506100306608203916025879485760933772","27828139672082258659419405883842566635835709819734748071671556612548794325204"],["7611762108907857688829667078285732706195747011113019149604982992407597714177","8767271470205370253242914977145996851654673566485100052430452118884056170336"],["25572721192282697741891430255087942206025898690373523967554123565542899020184","23957980552454453349808718084192909798576443489325040252904437466974304453046"],["19702631867936832421863389607126354438607672173077284993865971447939808668930","21915146565114362608110514765716584682791387726503238270219498997062459565582"],["1267529954411864972647871659929925647935318049464061113546455480012040695571","22477538278978616546450455142153995608592179843492260299961168720720233247428"],["10730144357714342108920192425062161155328825740495924016224204503889581401317","9786336061511537370469450829849404540277752355968005207889522126439992872826"],["26254919732617150556957993802389894421079324444523337238638876509826335217354","1643025926942524297411884020948841265963244927408011384480281519629020308416"],["7815730354664460989531553236246541723447316259560397086774204771049849562138","10025338183526087376550817980661901274670162440418381459905808883933520756734"],["2087864495082190503564504061194185642615565355894318455517891579657904015920","15443974695242196880966623248862366997560698668617446982819131972597802568650"],["27230418324911090742990925249441339828061402684758409621575838587454517347791","20409085567580043077021685608266642449346198847766732167431846050377446895471"],["10843393248673556548951802709764498223839043879068056019418955040766793052187","2393764613247924480219587369542643841446828971849519281131020009472298318659"],["11338451710638313145287778467020575707572489988159093881323479359081389264653","15623457675419096100631019936905731138595677027181208065870740261420454375099"],["24231333269555451091748716317915052748878109414851246188355277826338705023103","13832879516043508628938978680113842908624693005433605828089000859311292119169"],["21778254678609508135102431276184600910334146034173809108281959423505033649309","17913006410730297367776047239170394095544622921180336231656954675877749721667"],["25201725186869218599414561025679064690078353658049791007934768336283328767985","12599299232101563209557477407506240736211858270753679766537834320973492764023"],["14988428804993742638067184575198064603365959337522127104630565090948798612538","7770478847323818590712097119297183936074689252743923036604205851570902527640"],["27143839566140511926895427863351132730081346243444656487150335580572334539530","5983641854735582914283506843071370196259215238105325238337938729392306658424"],["9751111531527455979447234224837904813459188300410118915993564936029003611268","15333830246319697532541730491624952797012558221444893549711545951202226357013"],["23006026201426980643414557207048306807268356308196879404644329858827988252355","26703072696140423028601829023913898046055606673586492757796359859580139561026"],["644465937907593565035702228328436485493456169671557294774332899748105325890","607561826073896850360504955172736967848387737212607297101058446615137618422"],["22185967119540588603260234658571581898171862729916474097168468281127875279196","13418608520268308524665202871093163950070845321880474143777341304244328293506"],["2968132709107138523349849037527238708271160755123322605559676188319940616481","7517149997006900324487940094581213510051956745717908493229647014480175008394"],["28896201874081447413958322597620196269340566895727679306586746576958012608686","26449154324432952498640352712399009152772665128637078452046936331441469889606"],["11549317009510015000455071477841362226609692083349180987548851282490069874590","4120889233848436915060454043086579641555594281032471391238002817610817656801"],["2329970190113985420288351271431037095690311705613236895983806360863566453107","5577330183156129889978205527422541173543407805301968749976891704020521578174"],["8025804471112742623272870264111806820238147631272087697494201374800599870418","27014441111516002946238468118876752119213414909653343060002466499806289381195"],["25216019004492328262207846788418899178598041037871094572960244097455084602637","16538484683590802841342435741633234418219352819579759906073208898779272570989"],["28941742814879821424128483735810580157815130786749262401232646531292525339711","27476336707221828603162959725795866084576411231279873202734142567167154192515"],["24429302067911480423671691324799253845757307244716575430562131499504643233756","8943267038543351727986022982034069816557470625189467045263953147687849142025"],["26433876212155421157012543468412202301917926398131029836004642177484290023563","19028853016467507789115884616166050905083623709449745831061666515340164011975"],["5624273566180440692185273464450958843010925139119448568427377240804963657276","27829779500271407516273395526450300287975086112654289382570809659493805370334"],["8836935852119266111813282157097841244687350471423005130436327046929200512861","26402128280721022730731446633247158144500585196338304711637141902851500371386"],["3076686464449988577000498193111247249295047155913498161327034510144540566101","16533629192363111549209481350637883519100647025686332196668889741618078456549"],["2654144071980070079812360992955435622192410698226311942843290010555658357541","7372349078446381491662925986838717972483640736973577780449158908115127030980"],["21323890221149189918783807400768533211584547161989915583133817326705952437044","21762612330616073177484171869678309304638323407767474512964492086704450982912"],["22171974433440920061328601604936426306831881618074374808144674904399392630538","7794500105407484112800136910216149823077880422174298714036490425583707506020"],["23335807326412998157842080123116078550506836928547629623070170445805953316590","22729434351435106316831227211761164178460452724456141391051566865950884606714"],["15269377983446695234852350268023329894611421170104495728723982451267244585019","12148481538909747127119899679779574788609099368410970035700358700679720524935"],["26388310024540952460990353958677741221301113794992583677103644282465509086467","11374018090258727919902343175399913488700185231180084937201384375209612071974"],["6223554044403086921313421414421019205600704123895215024965240695010468655836","26637059812149557303747465436975242633789518263127624325389525025944395652562"],["17647689203952543997866385656970096796460203677762283267893157712660616091271","26580835030194227406962869187192175892802721729113278164861284854506676047312"],["5403415813633758287106512809148311880997558186388162931085147351612226887083","2866228939580232149046255340415246658045153917821265006586527909706235194213"],["9377212261283200285084881311309324925697983886302026322980531631141482029290","17488424536133688647044382591060570327008747548022607981371768785512088323927"],["7476069538717216183271066720620269551888809212915834448979922919082065839381","9759410462871327491392237858408109885154087185153579931359909392713567039584"],["4959916569274340141273442401179356247737072190205816085449573161942011490345","3613761228085680250316689508379048623362105300248375731453201832323575533109"],["28199679144869844655916142373797528335296638891644203287811688117950965530351","2500170232692332516006593084448891048459620922728785352348833825100970343328"],["12199378361376125533728240520904121203818913874701275673497076263705944291583","17205291121755885649714779662113012482197421032982106576972274180874097596708"],["24082609833849274095638139425082816452003320206514577627401660995250219283253","22784047454585265646466460553129023262333371748412318353443845534026439597885"],["3115225812281571934137417049783566284496167337200408535637115392280754882090","7269972872974620095990128805653546740405061878171609184952989174957158738701"],["28813782514255750401216019782565977007345100497912129784035949288311935050120","16559924484486373206967922432604380212407677299949241806900514722464788711903"],["9056630397140831691599310982021581788263606998688581827722206728426114956628","6130679266062870306349460856898030039846939118398236173858759767602527334966"],["24260108405461877543452480438090421869930514170528916018674174334930187060717","24431805160768988209647373188190160724176024573937766273128704344555281469331"],["16146770378855480548021269289464414824086738050506325218960022443618209036833","12938761828831645234756337997101622468809766644874557196952109323934204447"],["23029588854774955615216012859316166571791264897201010112126421323563195525057","16413234917552223863593077051727911764718274300829899523739062136739284787491"],["2570075931788463736061352747974321465212757394673935790492922678960355571962","13766173802791937081687464986106914876433615569109945167707567243285832281971"],["16913919733506713048421741930943007064169397123722887618541027385534735913445","10236094927790543029807807018071835522490131500981327192533609604347984118583"],["3342142092290781887013689430764225904676535847189848932219911399827551923364","12967333015514958102399938458989158655965583289535485630142740961385098162521"],["11591747877287397572272003146205620720562814433371452635682374440568002758691","28694235311721530677060072043665522016114649501743510425715402021586561812199"],["26085307464110561697737341094831425539252555607793845475284597392386063932673","251861233249054982322203423960141047916802416348129544222329666131236391014"],["25450016422334873193703333886108446525854205882080059461156019279230888152322","21294197457380101047981020162193608009444304276130643622891436658914393081880"],["3301387000181288646298744437340127710476220895614955831971088958446040645483","20606232660607943969074015170376065789254996451134030648701055206878918365166"],["20821127847245916067992043357593462845965281124898947587619027625575279205262","26675707848532869811754504038447434842077613358753437333926929999904251112478"],["4020892919582623167115227971880179291992171778644470506268182845163720247147","351985111434888058195436968526639232515134648634269343773108944874900905992"],["11147774971913143151380297214308019508013595388858640850053239963444936275949","11783999362322064464906466423148861838168880729805180759743727443664452441462"],["22219688904543567759910959508075201573470944724167282118839797789597458695861","473776048494697094668436792572895567616790651011234611565691847390077688280"],["13940958457143669976391803591021565075772743358915513287043666418911773286393","13304151424180784608650047348349179481956338256115783698584489686053680038066"],["5784414027896886917667015229677083254404912188159809278312597319755157532755","13048225636876564929976096481267861405083945108776248375075153223720684005689"],["22273192305770382142497011473582744451629380050566406609857056604168928054838","1700381735854359818440070719356513893389421818354400467847938391528459883097"],["23136573129591320844748812716348602213052750098581916360046472923664138932867","24083800957801810207311914440493491783101606955499330792041653462160989862462"],["28378710115467120505294330240250345868231652643833674808899528574114280898303","27749522511533057277784995640525587909987681693865976448604258826242963969970"],["1150145950511512996351100457066715020685071550515967327987733603818719155788","7012310208653476080502466237456787873632536917310592272060743298318554506699"],["24418900059230963190790595272942783621006198402192812600113459066178090393310","27787412226956191169081389322284672126190732202393590419360491088902636292988"],["2226082581509692850940175961274188020590046378299759621636678782307419869421","12988245116368839607150026052024446371042058744326089472763846853158825670552"],["743603038043874471171306261773003761203491212969812356296758047003971813525","8009893648567782496748972273516209842841880543861066280339422891078181352269"],["16314053336834450274117398313791563118708426600036267198834372434309760931708","2541135085020052004911163035487792395262910969885276944204413833463625490180"],["22028026727847375767021709112910286779773246928255920835835531579177836676312","4783420689981312136531555796751078165548693374636055532819604128055138789290"],["24159900686512231683725672112761207454021600742846820804951824142466639288588","19419734971338008435571208677511386495294123233545989252745869714555523813169"],["11525866747767385977909514423276405903727371446893727998393442566808260893194","1918908835083065903875041845324731760387140005783590065780970354040661302940"],["10315929588983349536883603712334811112273157285330395826759790572441773796647","661597375108459422819011734277193760123080299837669185161213846008332402743"],["11042416156517666131488642847324601527490828995203119975068611814603221942735","17659753810123143387187652759121317506480624581965646981060093261561466246981"],["22694589547784035788135571842988120868927793099212411012500552327807914629452","12290261035969017855247833033222450778607156976209315352496454436351321041000"],["4040667148959163914881843874956914671249422694351266323670413349456220713438","10381534169324001294138040857987430976784290164089344322068300179995210848736"],["9195218721986528518837052885363880025814873284102164601961766143182891956187","23014175453517198936063319283434605884264066382564978073896997762686181496419"],["24124850110633902988672232892314030633854458539730648315144000143243103976466","13695108300761086909915805555710203536472206576668400304540666295312931720778"],["25797809823197198450032240398116224343625176994221616593067830601502945714112","23343347156663939854058701488366305740333831972662561017365611007998915669159"],["11497380191083034807450843932062193365843496542317514152060005099960035014433","19301621176393271570994829753118424344413691190027862732164978695057347405728"],["26074970209431276413017687350507083359141758798080777468409516038883151831219","181765531488081290858237431496644885172996371944316766114121219058044065803"],["28275486041931939944921546175065538961380763024279072792718432934591896566907","18881071381688137907923990406483946243143020906744702990738507442799124571721"],["25999849684821310185308955731790433418492442378468428486949028373315597548060","9997731152801271921122370251580178331510628616090918469933048671196737233322"],["20530131152153053212346551185037557668813126798241620610260648329523447672869","138387560177098496991980274079177235329215620594090121035725079948752952746"],["24866522321484696510563202586933389466288546741516237495644948535187742813354","10489776340803216587487683459587257442719629357157234774597676295116473329952"],["12965468794197022993511227334654365679796203960332337492981090457251112900111","12796788793224435374698912700847372804911002493772738729589224824788216838725"],["5243145701306644466049989032292984139646586726728496225176420163715940133415","698239089384017157975033152414696453663976950686961731127223366977793165469"],["2964111544886667720018649085909686703450253169296348557922220953989596710731","9545923049110327344435870422451801703607638078482352359880091757303053378715"],["17446135997161354870147682434232935939413286224943848951299215691165621169256","8758506487353471493272308386316131545571319519135576615713338360798440292132"],["13406881751622588919082300810944578829737179306390727291373773881645191680379","11019973021219179558042168438245552883687267221830411600433282007172410520745"],["22428155267482424402194908851860980079201172532308689535942323634429031365589","14029320011182796906917902492219260953921997334115741827934439477527398815855"],["26361176285262272000071226189757344444933031211578560596697932760231845975342","28109735245820496943783267670136433312430189781895465906578399454121663147700"],["28670919508171520086570355106496018705974501154269417500260085000858767631312","21617939414440790987612549565554128031159683764100472291904538399871613099527"],["21671239362216903596642318771904483451720195312918899897574268194219953711927","15808706476547083013037322352854403032244531141244263224043947051333808374702"],["5045265757280126790260629149503480507901564979682128971073771570476658067914","577872211924668831628012857795449335488972255861923943430325971322880446308"],["8053679382028018635559813005199041100995904502981493184809347663539075309199","5183647463381642678964624489783646329572002270383221629863289463035643450929"],["7156376946567719299164893133299907176871855861215228554772071800488727801715","28376053041534196848379426505404732709264913115967584073570328266696970832615"],["28702272124379934147903258081741489959021884889474202446798060798552954126871","859023672310634727787599361702455000590134827585255891384189562037397723878"],["12471829233488019788796775589870619071942514400743803344756573885385627917243","26544063101277174449266483627823892847781998843766111688980333758825232664733"],["20206788177400587724301061999907818096137741156933637351822029975013956522097","16830737486852128488990364744365789211372581318049097606656992717754596021422"],["23128026652271414919151665575425161499687618518314055426180281399085339648443","4324648978017895918114066788428420507648530344596546336027316912518794655370"],["14170785506756690971198757379330917119528292376951153468462385987198119459563","14854203486415742914033019439080504189670776936605013940734765297146318628258"],["28297788634055161871465467922615031714182021812313242703286930669284261303410","17023616482088991280551514934541904041882391888481468571439578147829893178252"],["24929294306174645838636405607175657118959366046910043783618045708718848119591","26513834587408355883028840210154043153707738413398778142914986209469280888148"],["7653118464497032220601438480100234847829434706034223367375168556596674526990","6446917642364845205834631408100258243614848470306993881259384017063059732986"],["18704680335292292553396354696463074857348832200338649752038176385109620385683","19449950995047383735224097970748966506468946254878157290684921190447589478281"],["24017306924125719677643967468114703320747090228832774165379780554634966323218","14098304821122281399127319120782513561396933177924578535344790659127207651769"],["3802599806916774094956599770167695155654766225100353940309367125902842116335","12950271201308566754383842726239911091518233373431610218466528567089285037116"],["25229308074348225896098666385711187901470634717615232499553384102649275328716","4278473742039574606132283938583626592264413080826358867522700290935724355898"],["25755771028707149694850483762193560877505578145979781546444738296089111488231","14441556283277161299775000315224007517763887673173241183704709477191452976838"],["10521093873610652926157729435405346678316726794426056033480318023701733516207","19217929781984032142822831014509157210149789856427302098701564082682329659072"],["551161285526882704924024039696887294597515792978505812041913176326492704846","8629337637465284235968976243080227795577501692507738137238338736686198366469"],["24516206457278038080333153730927505562573727769869600833648379589151036523315","23551992075047300932959570987768739945571564075078979999836097635012044600567"],["15736822755107407826817986183601515895129643284712638711488649484744339023096","15053838549344880534054395099123294530197112737631837581869376589860928031070"],["7334786085814827987514904685896402588553971024945855948282301091047738637704","27238619411392094996346374373897204308745219539016223298916861992852535557186"],["14856870920404634623042552107710057459933018607556863107421251241605028584358","20810822986979564071385861257964848791411917116389707929679331990047541186094"],["25113002887628425814924902531407007369073981603174823203938167468443279461096","17209615929176077178845690695533416847766403116272394204064339138551962028431"],["11459182119508189556775828171227959310304798956649808050865310481425355064484","17378898323909268613908640027206073478401368803232273154199532751904313124332"],["14793479971022129615960691970772152911626666221823351810088790377405887907181","22416929549690263964275637754850292295638725141503797559364536388621812369047"],["20122392662446199793836962976400371299771469597772671398181707672223145299254","25481024385197007142112968878643556233165131298590564771443891311757376407154"],["12974913665999117604986866668212865058087183016103110824868292881636866748998","8313902014763005053332609402510510870458458451823978387921109283099186687337"],["16947813629352643810980554372552611786614849252386590356355311406751616740757","8437991763637891852529782924386970746086434606465469718073614175120205172556"],["8963828327057474658871743031497060798771290424716554829566055035933317261444","15559679995776825649192275932750346364980417050675738294910482601390048371689"],["21960050085667217547571477981755339115917816216990616697094833050805102205227","15255265407755366990635736639293579394816553477662175709944800137503882294435"],["8874367831936021892197098479869821367452373567734277061138216722974676980223","8541540495642523750550208802335197605838279533681515787865322321179432011412"],["20723625710031312702860903514977385346472642482439632256084730431341162114713","1807482402776534276971852883567547284192147153707881779587768103430800686435"],["23669579228164272988771544253059836069441635706991541864879625265004901162481","9064552604503322539896302403773106798047453402816717747506182093233356804807"],["12918986177165214124638046845374550027662795801911257545868998217098840382909","9377742789274235331323067661717300410766454019993436406340915923814005734140"],["18438822287581690034124638262479289412373227025828371373987807225948655493383","11246283296141316313348464572711319450512530421361242087562679446622098085728"],["7764871647853960243675930962319208587370319901509169380607100190596376177203","20186378762186492043164748079610348497773778237286785944353317685533245223248"],["19461285008232420197578652518172528749956521427971167596875738749402991200564","11474400349034983205964722430108005936235595549541251852973731844782291451060"],["8369568138608699288803600854849264692635211250409417787895312045798290351775","9791263823402308906664019619026135772672226524043903528246349535257240504556"],["6439108479862207485042136823591234137768623449988084554145883177471189219553","26158070818191989253494452939176727242125609590783562402554456825631015652638"],["14425418004041739418534345900291409528352915642764172430938044474876716471657","21922961294619496979258848356423837311571756615781205557440948394615911970486"],["8637289894748788972242128763435564351897595902619020987762674506045242474872","9286492302922991942887740048782783088437701783468785770098909958107917048572"],["17954139409170651543626565391457419668143252733969523036230155521095258926926","20004002386870322533473115716674601405278587604946283753446491801865900179720"],["4566657141459695596215728149379364689428950215949483299579659154956091355031","22331037347501125336867620248198557936365028079121423298466015672994922284303"],["28120750597483667593027703883123420154237455089366046325408908663190999338116","1935140856808711889641183502939656444072568843344950095103381831485746249226"],["1877003740382475316956201529448009053223005589670814167616034376678421516173","1196397033397615573395930035151094257030436634829837382728722505469354199548"],["18945981107054889712214540739041408872923343513784313529340856882732960607787","6341591618513373056567584440156534007172717971269867308492243198533347846932"],["16118630978454691204092968021831643419250161064398187179457456885286998696011","19453419376165423045984623101795925465679415775597609060191585701616836676994"],["14990528198976069721433731805325706131173958161337925662321128434214296209205","945544679483786938218591709366876583330725231235637569845458753733879899587"],["14561572752817020737655156536940613227884876325368319703449499176882776352879","10824775686063297490031887429167003041866356757349165920792945233354366489408"],["17126721219176994054514243390629806787364609791758984237917462805372602470972","26652353300837084583065087583526699235081459839501734958878555912398563533909"],["23786344608067718004476379866819421799663283725553819370347759257309537759407","6318466853953103246775966934133512763395110870353678709454575172438628190898"],["21963315961661842429610069296292003689974896553656932993679633549247175713636","21430194091244731245330903793666891062936982371526822444329935649822364959280"],["199038865149316755318073162317105369028451130058414195463210132611016324720","3164036521980227101521077365860194167979308829288972717599924220355199423285"],["4651362201919311093820672519557957693775546749433528918875071843578913103976","6517957784001479273470535886551395637166389725487277570894406038633012929235"],["16550306481653015761898544908483921665896211954548729763739597737360174982940","24620696576439399759050223098190093595086746330503493722736717269314493994381"],["19989599052235832842182267898524673047078389480347615706562916408981983286457","8016926711189547020838506141244246709222974767097303928847044450307966009275"],["28458662567302519562944344529780387697895720062888199968272328607958570161937","9664190238810519685988786339683916708775500692691143784496616829003991367260"],["27342587094588431236382005630733214037031432948993194217786651032340296668870","27913273767949361751159359520942713479303534910935241093936790502806919330577"],["17627925269992373843649271581892976531119657052036638154398604360806283038451","24277762113670894923860321933659804849285066491424736850837935618950540517975"],["486269814280495562019417251836870399556999564341601105690760709358039714153","3452705339253548406112084204978594743718945677690187745847511162891004200038"],["10482953225859867055596544438962386450774448576716722017430058469370197968057","13673084205853089269218478468311947566974895778179520073273956572509333942520"],["22791297189375879418636704988408012776368156880496296942541608063964291056430","7894599603820026029026489616583921829568099658200532476068012601429073999025"],["8995366130524912970687739370667973495019857023103787900037313001458727616640","497124651500950520985575640260628704720324365133763795015022985272264828861"],["16544064544439704046703054077044585259145045512175125515873103304256117075586","19607278748725316572349691393184393898056289407524288062858248856650754570223"],["24575313648993646786770229316809766662949297571467916325579020798339594077094","13282273752053611414049685603985166860043042821478058650224551277275087609792"],["13484542924765062141695836094303637335054315431671668029458730377648692415484","26804727733198254202540549595999688931656647936984584425142560912137348740332"],["20965403693591571101480182151710722730854401711133629420368023094063516977358","19078519525498477760876960556196888202839896073718954956059861374982534108179"],["8570220062272214116993661289016887702285031117337684899148220180940960576235","18347618295978032802436490555215249776778396969559274522820999956236759023456"],["11299623857339318450797873718927100146703771035732882934159577043545619168019","24595130792978606905177351790797535847488741337987661331401157143057408365240"],["5197040540294904405345698817277151012450454118478481131388349620264849534861","5146840728449852136100576405571961476700166999998458847857670486916564898109"],["2399890774930710548662446397098407133240509892190070620678234859588220313933","26775698139854785429249275415157620684300676026096231029381869432375824266450"],["7364441862355430442090380892740582854325036677504576293153101474388890601215","17201875451530783637628494896887372981064115538194655286098821211618711116369"],["28824288901356720362585127495262015442276702409758694862197196617522675809083","26033243488147990521674873297862682528077655355677153235088745093900087439791"],["26963543667409863336951729337324539729277998007310364471484673995657748127315","18054461025461587760165822859211532133812520922770768663648297739783982776848"],["17823201388261363729117129059722189820818045939049700264705513772769373706257","10797470194430869144742400032596394432971095692715457390467394732465895701399"],["17568028988821060875984622969533729571648813151968883353563422039734443152485","18398906326872525530086252673374534060287640042619437608954254733216105657680"],["2999577639294131466002395747110866575417829411833320223428991092143288473878","26649919469965055192263773812513766252902377932094582390524477851559232042209"],["20557795344577256991409611126204602549664934888679645484200499113637380401710","24591649675169725652694300708075281186965151528835146876454327148978359972613"],["21336284017617215169333378367201237499460877013757813627652806749824319816089","20470296936348939182763707547748166174176956564138135961467424060138170325589"],["946826020039531647040045419020493987607472014097420829447875568466519236120","10072733824870416433053824822090691067164685366735428494917904892023256688177"],["16967046427427333275578512036675782624595898493121228923940012889979841403380","27950734523567858675586123867845861759894662400085325886395772628156040139872"],["8089063659012772529194517077619957677334379860888836458534074067515831147924","1734422377339441281630249455205716595259017886666423256371333702188912176873"],["18129303657767710374611883086490446763416240110669422595183977196158421281389","5410362564093476947767003765208635580585594441651618204201428791294408292385"],["22169031131274504601511394602838814176923139873214353445313903089699578842399","7387888229822870514097157032505541656243113090683363872820241400621917637291"],["14878480937584812499643459830380794004939585925367492687180669546172926436278","12440944643304249741391551763848657505834880971407839202671282261099910173176"],["395370742568166988177199954284940591996496845285875104853527559054509134586","5557755696682661307089768484706198989373816236356047662413468671823938291118"],["2729227854350136838746823187785568034597447447205071289513955930062489399240","3354987814827277950214079338757733790497833706978814131911748210134465002511"],["22319778794979741177430399848187939290131260794763104546526543467806718282814","25496793485520223654567574249273457339218621242721905074977225730639560303313"],["11402771013811696350723635867792734055019531060876519378802275486886668355244","24019695184976558860107464329889882145822012499026082078705788527063635418270"],["18782302176800301700545326680087875529902786462043686283326125237993472439331","6718869366503680748998466640115837830934707576130860431652531985781928467613"],["451768493395300806366063345607091760518454904338685676734558481906599302148","22173218449382796722020103558022561782743964012230380165315828094953578105644"],["9793339858531562126041985279804889555318002417955512231494714014829728726730","6746378588135622862999903555365554247486613370119700154794745594057624875569"],["23580672665577948637008408645998511070474240404601796056525387773177895107534","14864367081114816638018572890643435817319381073985144983834243600243799106497"],["28219490611396102316970433156633586474238062039920191838839113880980926091615","13985329288968565706703542231432661435306198028639303293366066593951172945641"],["4366425222362702517727823158898457419133123094663792494112417457058488159913","4887084398148439513864209553860393293094618557018556923526068204027890103907"],["6464582958117854933580574315883107989150914679027202387825677244740102549863","1102030554712396280872796280600247100971027471405305049199337296680388123788"],["271437703613570803618619367347630726190943439983286272547730104771965277350","19950687337226806275868537774520855150491818146213899807454317691803104735116"],["14816599495002653631471957502313704594676261032672608967084242433817280250963","25293481273617310167597146006149656985068426583150490899704925074369040762039"],["19695962565424245715285937353722813485125978867186559514218540527777783889301","18820143969323923126951174514480092069235321849119134387986530957254182876208"],["6556102932065061648800459961931644233450877984441464809421762746058964430511","4269762347942516779473146578596373133981065472800537578506695845481824630447"],["23702870973610263675779606659300023306615081431114692966972912194149631678874","6608615845978758574386525302816346913635595943012089216793792377517760019913"],["13539611806341922252193179019563207001379429142893890752423855376921991180146","18120308625772441193786955705006263128186244381738145688394400360797082720945"],["5918084816293891474591807825201964930021290754233300845391084032593817245626","16270259805269676906167995083768205155056369098065269898949603280258809522160"],["14171564322072626963715235413868111479718700236023732534027038623996261097043","25905287611964693412976056753458274661317653627114094544823719671300519379001"],["10876036549780164330071633159801961541875813951395903954791841098312889004925","27518688657326568884168174662648348421845432540639259547423781139787140114696"],["15178039946807647258254899697389480909655677020178979236229571278053592655283","17984362293188795074352358052872509768927947245677991907233811201434445545381"],["20634655618373027324745259703131286422151366763568459576761826375552016561194","8869740069354156244428192669733623929765628497201235929868912995263550382788"],["10064503984367455726691221785244839078753741701555098472413010708279208779224","9842179248863029483088493720337097547011988878883761653902316201261012649924"],["26230604445142427650124269597289661862733571211390596237372813125115126125782","4454891645087062526074952046781239739185454953476535392072955554597002952406"],["25624390472832014400406213602453270395092817252977763983877843794699256983413","14699383422332535787221018577235969632156275624838247771717328383033805810649"],["7399589238106816848899929201551528203214068785998641171373627113194100061123","22035232000570306385369358524728223475681547715099212831892152839192146523044"],["10048381050520432852982301161168372171345605756734824386386541996997586683751","3282211885117091191797904146893565765070410789852203062497680804073297446706"],["1821085666399368192066279063103515908821395438839039602433272643246629334968","22063044799411044459796987261375148003855848381341709415760942821147723750520"],["3841502825570687189245518771082361100308033467396021467673882037102888050090","16620318409729176372221330079786887333133027370835169911561480270214292583233"],["6459627077298826861087595846175823738359342436274900898631107581657423746403","6934662783751983396488683082634835555542110240304297025427182893538019911157"],["25704210699188900575579127978746205570271433284467672662389860460252159386335","11820947317930646698460859435037645339247461131029560562723380631395895511747"],["1654492658657959710366238054794548670361029597005292226130746193044852945728","4843976946171008134977529867319711909037522023427095311104185174022975470121"],["16183952213872439648530071110325556780167929617997852538488590102212511813544","24135177833550768477984979797494050821840049900536072434765645408943341897710"],["4371865698061513106651861652994632208396127810467647536052924317929485504340","4715471032485411291513458902115710562128213105000626480576422165765681986722"],["25586372232443267317569424349512484527696327107793794706890558735547166051509","25319235860808943195557258601600640622675745866023676407157058493790085829900"],["26733942045190990628447086365608052697948255531229083195541282384142526482792","16805690435379039125153342164170377942134520406214402221963162422002235262586"],["16154920519985355840592889278757038128880290012420909359726687379516265991965","24475582315902622662877101982546301066572634315375391205149533459623198303764"],["5543206663193570620189798979358680342042375102441579780900314568209663470058","13792755174627926810250614557237103078417989859224152457063805969391431100067"],["15055503803633756201259235961443325968191518631218021037409654809377892248094","659337505458417029680576810793288324204578338020956788448294818864900337098"],["24263281474426517798179246286210649910108972473854388961178830617525153623275","22901182672832006026289761383210561816612576572399970326390959237397101186492"],["24277057467502739989095007467264625537920341634655946781863589935327610175903","3288177907441339560993380727545312165062648027161233177706274856036085204259"],["11893958763617812015675462844769587447946736859456580164493472181016464474553","9791627768036876963461038099936911449893200609655396028539400197226660670927"],["26412994895992052571305132856877960823441265084955613208469194144848050377864","11669079859945180087571352218510472712802437609459803009836870033076609723214"],["15383411086707353011534514159208379520259443112698421189459175118262982340163","3524708590460087024270105206129257198762559459872373250848173377001951728826"],["24081254576820615380675373913692121832783799519126828517040931031220657788074","4669582411428548587166194578848429768439458643791163540153841783185227440428"],["11556450400162461176838187542520051216573121713273022609105489629000080655425","13259382451483801900089012474945778763037529914310261517391448963242520531766"],["11179096852229841287998143207535013569176475450247120538395668996960667301322","25902880178220531027867159209866750292659922683752327033333536407250141880061"],["26299963671645326620421726350294594890042207659333502329831003736910726933691","5134013079269052746024416622744864958617028052425874880375032753321302632737"],["11237418042312406458873136825489344062632520049065434021503943111421305356573","8150076529337359085030865171740954267538265827100754338130442162615055367854"],["25030919881084799338282749048254756956722522408207702611739133210221914627188","10749622822024610484947889237457792832956828971211498608236850548602680046777"],["26779552525789979251625920951432178046577766318228833648177776009497973433485","5886730497187690472411401915281212057468720816353932817659716588663609719566"],["19886056585946779785686376132383853944058978802075261957171154123698084517143","20803001009990969986663336678258779581853367295897033806443357754620930014595"],["18194022843050518229109792747259678313586526027535546113570146775176805400380","28664872817585185169623387180392091262127931061770735164921527933696630776760"],["24572831828674196692782402564146935749712112057294169986068769401530746859184","28084738218934434283588383806491605698287782299196930657236506050095284872866"],["24707408674373540341032023481632921869035854778593545486954178131752720187105","21432730279608835536184513814855993328937200116907614222972985033265495953046"],["24356316803934393980761718016673737376524498905924084429980090353275367532774","19134270017972863726569292357561101658099386153845325473652871299085951386011"],["22354647867556502967407474571116212660268623391204609456923456185959452911582","4440540602536327088113406935423375033670118641867081186425042304821361485675"],["4999391351742340393398352541726501732112668285383910019317394956536251639117","18659652664546633589502531933412765752852083110930012388838045229975847074528"],["23375610941655717547663156152422546199924525399609254457631590144587786436048","26762435022508559342111718568478431812211411906836412874511213442810208560024"],["25610817120578786536298665932712682948965543718730898138797362577896865228730","1085410371617765459119866504286065177241402271936505821104475715492997300179"],["3855539654914160627207918754213012269204102418059720288296474667241673205734","9511098104705926125233380449017840014968645120975216742268968148430840960872"],["20462482418896774545997440752930027209049914278688647727090465060857430014504","19296691713472055775153376721753728498280639300529832562770684983963042799433"],["15028723425881939157154693143866166991906246822378465943119000114323445099412","578028505876366934928737012854378829910880093599438738117797027317747041937"],["19556955123940788539361932101150590928281593315984403176464428813213443329097","17286756765016186244308967691077622404807510560716283488259338735402243416029"],["23238035956536203151685505177113880338386065988129877877104010860247966477460","25594845823374553614617724888273093764803485158438671212397346732164609466152"],["12092107862593070413817344271213110913130086441883422393550916863998879875352","3376110446965453577309219106402319009211030617481701621679188207146107120233"],["11992809100526337841817038757099227710693642109084033528498545762194112475422","15163700269251674331389624913476007493751566230730976770692495816684916450098"],["26641006085994769969588295356168077740211871805422600838236469669953539257529","18840481456389692675133392267671906130030070460732818705329453697878966275865"],["21891342786153115041372036901862760295161973760060292527907369544139583658046","13022404902877502932330642867236992168534539354887019171259128998437752443834"],["16004698379727841025372669944629111815157043564200778092004201934026717368130","24782896010266797876694679706624063158198043588869395874290987104000085745969"],["25380444725358446648593715291303245173896101568779847066269637667230362424467","23912720322269255964176277121183121754277419542131055796042100912801793101275"],["16928433931466587778465803353649344675308567917525409847486157184257321904308","9455716475676270066333368695112762970634054849849931023044557109787294644734"],["23594401620036008888665417924635909718064946672171744464908304121001862947236","1690939110476692963368039328690853747248233892592303359999346575037505264906"],["25447684628578895656683713286240125439762406593848073229649541350481891111185","28346922262634204251469932480644992784364959240103870738017841906265694618551"],["16471058687724539878006995913077433296818146824118136317288688517739227665553","8850458952057767791705653624176139205598220180927765516651279217941888553937"],["16886670720438690089887928362936658866462892556395123087179619675379772513435","15916579481922164005119238998294029945543306120559903950204387985594345676821"],["5951959526250498108680763128471239579490902481109149686537554012351122676163","20468900841252533007113162757921742936297428981120550188229686273030165600594"],["12599808030836157179103734453356714830803469419092652402632814637038683808287","853823207430491073993791384136874405332845298025140915845877403581004472275"],["25766784449867274774787758131156224731171388292177419493771186894134779781942","28455388487142935128231475636745658210297397376256979371516714846565218947952"],["11012569287164964645118532595299958169103815491986719457092612415287332291047","10917513881596918962554011850579245399784286398015407586256057663301365947793"],["17926992617734652947053892250608379390359243038501214264276300071197440137706","25829313312299913349709416289455551895409287627055697201219535686855309404646"],["15569579165473657884589071881324749188915293931363166374538248381577082420139","25688231290947705897924240350078768753677905393641039786448442603988507503626"],["9307366275634222293981872046551414605952819037526756819671879050678933055792","23533116275214367758426262545404690221741612041870643346023440511124481094577"],["23170080983354177119474140980674048915642668772856951439609081552586551088703","13478112028856368198399097363599007660702867778056001656982553344898557049936"],["3804997857533422435554314639493176817401920460611174577282204145955249676002","3085609035757163043156656356220636574815446487348161326447732492759903831864"],["15174120192225170739874605171477611329381734173985693073400972548938954869435","3183317684210249125233114809323950959173085674813690976484288196993108261681"],["11594883923227876794980893036918798090819282294822172117976778233836525380691","17975551963908666282802811020509292414356636887429235143206339162073914790191"],["22500680205943589275841416270196798590180037448355219668960353845213338504037","21471397720898441181954090238925446662383807456607719756142831752748132539671"],["8621096669415101574518131160373381621892066255107070370868166574157871863140","9211000081816330795723833173947061067943740722849988189779737944762539596926"],["17837158954698069684029521853212984109366768109590338030477485688503836246988","20771882266158071874352614351574801744252648193649326888690618712960983048003"],["8401094804030128078409112489956955472902868978189970118147192040911306528643","27290959804545916188870855191050492327603005868808380709154102726017523781396"],["12095503870697898235134061805358413925727981046711645328266109306429082256471","15227948854823603979014614722462195402020638497354915855200550213401263237788"],["22549733835309197513575782103902129172819571909529846062028772003332348056059","20005880251834969479430717581854359975749585012141125886547655148061165265006"],["1745635530204155120006972943607716098207190278630118670390113235598855697717","5237463597692342218011603809768762957019082883135442320036139459870131848399"],["4606622483612571923660008828080451380743770636507453732575487362900263513987","17602180380141808200939246975740043781679905266019098728990480368819471890897"],["10848031973640319203611218670822447309891183382164019326114312631250732093502","22834921449878322631872678525301545963601346714869689393029744180522150707343"],["20389580345989415578172876266958923441448537020815127425261591138270562354792","13681924951270739286234362637746365396506285068553847584992523095317017993619"],["4881006908632303941815781928076384855907066761138047216390251216836582383698","4450419085062464299866536069708145182610616035578639777555826773101427417795"],["17048354978733314786787252858618251606597209808910315097194831897226921218706","1695925268918772666801634447319868576535146558302802921420351976952883819209"],["18873238900235517190267390116507802509848434596218553538911763926688866051456","22432781053186235627528246868594554981263449360926878208757522785626210302980"],["10548733754137128372220566037175532885067960248570648811039899899368551725253","8459280023655159380183953545723007842241441032056561174647802015575622696053"],["10187096980639561681840150625340787493792057198150477206365139097107349791803","9957569060126701579943757448134563236188894722279821008376324064569425058615"],["6327930032361176466196021094054232672082727080655276269176130218260017565328","11234914786270627105821139167851585344980038460461496651918896368882023036869"],["7415840619953636979838890971197421734543007796102439438082857121210646906646","18097462379439275234338997370579974175687471905363383237206374167730479920165"],["10230203851002250254604998817224328799657450848382960384023986135988891820616","5226299417149685378476148493862753555080108935670044876056253910692493153928"],["14628839196789842139290039931866176719908733100594689309924647457236841942528","17880208401177519354539031126919155280837996202864960802846290821255670003197"],["17891805776531719468604780530059172971219483295000234658957625888429852169569","3742181347556043771534101616392649519751005740439647264610863214307848596758"],["7997771707830009621867893931720960458143894566601283174127579485200407769881","14001189466804312173899137489871950439036991155933822594321575361705067392127"],["22227135595389937476066996954219771639275333241668809379850614368293532033622","6231904181159605996797407798398378597085902589502756676290761631983833204849"],["25443994505560085795191701395051176895359385955608783002165776869906556744414","16844400991775522563825339551149503053982921468456101436855815813954277632228"],["11224714848840152121168789692939416791643428070970225252949979352491593725804","2358381052351953095840416863162285289584010054960162007156495534197599714369"],["10490085535744418739738734808902032812213740813750639846102000347142775525207","7171648994932069626954761128825968981390777616439157728343182069523434529345"],["2016738246694484450650441535655281336923065348217023070842565063395075849196","23190397350833979893222307193633774527788401472133496067063029511106094436480"],["27809521336200209188886526815929478352217114870810646376150640524374936682844","5074694811194841821704889508803623547596815352849776245266624714179581077312"],["19762041253402535619250983038972523124818767661117349713258412051988867964510","14689322039529657080059523422327830521283027193237634813377951826940951496413"],["10641993945538310222408053632737363642650806019747264083693726740490091634698","11834872979618661371215021965857140685420323757893287113229070329428465723208"],["11364175720301567936377222530564628126622974464130282620498605615896098049220","4386629745257568033558697186898496984988349505486838120944534864859431179129"],["1875716973995231915063686420200280379991547255761253971567904405281940551727","7609646659914422506231414366806119123582455619172319307611767516175120176184"],["25256280009907677661208593737372653649448085363809692824462333069408527696906","27566741365567115635838031107780313789681411957935437741273831880955916730624"],["15249512432851553616242874300749123899627190700678689465624082034887907582744","22053324189957352160254326274347152080970817620525857861671172484948162103523"],["28221111080775148519374488542712202877653773377290060234909591725505806313639","2898282625966553473144610768280562232325213034102428095324844754041958155810"],["24503092509156955743546630381329091619568637479570374649973869354996605431460","23683882298447448572977097880748254567031291165209525487211943577092074075347"],["17228611756890721247895761854753727926003495859802901972927191692004399868896","14712539935511030920727199119333043432784778742272488206118436915609289017109"],["12582966439774161904502087368266454463410128948878196626549364008005725515400","14290659077482498196430030592034928119570960960435873351610681511743120590147"],["8387366526690728110450300212152322155688013714355910790105068498472702969674","11652900345968847954753673075222107818024737745678675409800725186294999400188"],["15708055049740176029494949213303376022589007815338961676230195202285324563666","18378826370746364226195164836677020870518579981030893887776700694194536791263"],["20718873413786854785598056145727879218678757310168491286780681955828349805521","28163512767890335518613309161337771064698659399030644460780025941905876300314"],["12119443830303570881267343048732391715418661243434058682693469845207568387380","18546141266303647371732579287560965797101091397861704783400338719129433667185"],["17675752094030851460142472362295020893281621956439297413828851728036616845872","3639826314926143975790088645433095742197424052953345136019774545019315452365"],["5788616090816020009945458342876795900904874814875547553820757114569959219016","18319643981659952028304469197867081906936092855335012234307269752791918737253"],["10876792155527024012444339886426220462895561830385901961242051440600539345827","24350350496273084292358218864144038631271947542864910574210510374523425174328"],["22363925178292088015060775469625982087927460016554474781289764598578487132824","24133036415465028187530726297855228596126814269702581400056506190510768616576"],["27393860123540743612574033624502317613239948839336326593883523316203337053424","16703053794963073744979097574353840576457812975426838563269900070385945108178"],["6879447917341846609681814194179322750454771271269171505656608707149049675982","5592740248106569945682606951464844131458081675997859332366780306072157718431"],["21381683080875484834848630708653938615743434480503920194689353895719906588345","18208618988008069735881738458571657584754964047267880262122564566513312933590"],["23633961488620311144143053027012923048139984292334026817975102970882183719816","15165456098305614292099460989680241159334685628208469814346897661381156802141"],["726722010161700258842136366721176622566570032970534240737310900932418293039","16468775254616636322770954374003632171423547586395853440136477554316643592069"],["21799485801276766127853970283964420709400523746304390083211571488299542653312","597843941754079335066187135103779818541783571145948472742343442368474093053"],["10118786172108323610465148578052586055843245642149754983184821063800724758016","6232426889042420553041683587815495229341937125135404058585009100470009750514"],["22284311560949339870948040688382677363810005297777312002957137631411930841235","8857495403963961450097368145484157371825628317050120825034817544592732964240"],["5043851231493467729804043593625595722671905493022289021738286986290177100127","3060966316119105215441016502616257067685111582628481295027345920577774377027"],["12278216426431065434451224342297624433735920245399042589859319769177763239565","26853402728084273398466418293311188273697151955698120371544548698127085697358"],["11002986696595626853009559549687617995985227974901237992728001872408292034895","16595214562515357754137104371550484705519754137007070021409707516267895504406"],["10879579267088666231556950485050147067104241112257879301583283080877680684730","4460832836742020358892359331684793375118563163691699812486642476871487321702"],["23691180443206829970604023207723891764180910827830291338901634766164291136083","18300721655764219910851701147872780961153686347317351403108647769173603400928"],["25388303524477073922178927081721568635164287276866010322696184971235311438710","22787267276870823056136639686907709966473139566330237649903562821545065994179"],["21598329166128919373526535600511454760916203153378931916096308124438107473097","23260629869414831662423045124108835158480431293393491099936520752153272402262"],["28947453585368253193816104581777907095995221081708053363292644739791722089966","10506835660967781379894884839883224706600482899605091064670797432188882688389"],["5977405010588475037322290554682944722662875459220149769747049278370582428970","14242004907017408775985435931567991976883965759658677772103964581676381093104"],["9534002817991156604359098036466184108498509700456970250245584334953812364077","27371592110982192338379233889049615390743558654812170904405283566496231354420"],["67428875375342060487330024421717297042954247927365635535179896525604046826","16937931077324578063335525854477508180792088156484446807592166598065761651447"],["12543872296760421281896619065425291574692661857648782799036070165415962550986","10316569275242964953672612967647416154991793368644091338893776086632278242018"],["5527426332901187147476873986676201093834172502436175249396249788011357919015","8225156634718144555132941373059162209207522783777079170482939126061543430053"],["3953692944261789863613425283135919166754737230966296848473368379141794604130","1158437312559680822564998543125686813259131028562792450157006037601764623170"],["27335774953362701467293755411913740229588255825264941440492256796324499232889","3041243166706422111200481692453753617868429466746332133625964908957287972466"],["12566036389831303728711770795128352760842453253405777522292478241561242849087","8058431719894338933606226761908091525325152302323527306545154631219110792627"],["18005607623447296215011733019949349504726669253034605495737865273335002290506","9374266512476206414947914221685550722573190731673414147023488375104007246158"],["16872738646477673208866085342895936371597583156879175012260661090785302930254","13638525635007058659384250542366353328758886670696730703961166062647887243421"],["28676510269399906356084138830774834691592890491295636025793257857723826656414","16590252140707557821204109236600057341623566724269596996279418815569888604909"],["5529249740421722481497280766760523049139563062216214398207528577724997988089","3192468360852953454114900528955030133370963913338577226223707298317069876991"],["16034075574607448204949530664066085547568944742982275908705426909159545559831","28168944253680638151446906499461379539090738908229038939290763561056499434202"],["9043593425946849233790824857822570603230720093462794366905755215639814565588","6646211305061292800600909923661868869675457127669654154117024081429562040687"],["12063261686511701704418797435617356165167664910862396741167472257864257236640","24750302583819556986497352729972709533983360468845342785837233720169024129466"],["11274389309136290295733294930444239393856856305188736843025135363425143219693","21386372933893570903835036265072514013731056877664375831350056099066895608556"],["24154446367202488118103703913643260611715774928936280702343921790865820979926","16428549856523724591829724401664017854130963292985717113554290453388745115312"],["11629456625999820283195569318363636527629284844433547143183178022779727176673","5951507582918949960685090960926850025309661971772618809877032670907340302686"],["2737408824519916318624230043416534858475938987400912267159223876184321092704","9037002194734367458825244684311119164431306721420806261386024085605232634007"],["11050746131348995021576647744076728094601355236256364701285866457522570874595","19925727001280069791628883226265904027716183003436242836959452042416185678052"],["13924080125894729833999383477554361894945516977254737154140893369365335086868","18982890549077358843506525339735388139980801251368154014461258141504766762827"],["10612279127654718970031302817408769456179133782973562678821045318904656124017","12383524029513692280209135811435673934355941527030540578146782426195846148313"],["23224518502184201632220087723584287563185081289685934969402641083622111574954","27407247631919696971325192391812255134165280497793960057031690595733879175389"],["14546866915629887483421822305655452872665620550007063826449796102529249524256","3659460842175942830448020879774532483292967804670919662210701493048072121003"],["15939610190777506306432776447000562175226464804447722962207256884149521103473","27392420791241924870060569456573625460822029944001943315072540756711273587722"],["13861901422398712758673562802136440341341324139694871691996816825909080277248","24095709474448982898820277850123959830426199558865365492676113470909528924291"],["12694764461625816994112645057910632613876778409127202418328833452410480996514","25219431740276805480489611907273794724547739489516148439448775967191238646774"],["17464206403154719830017141855973258790675527612926305996603283008461407205896","27279900985857435679488669319877474380964516077976475408729503553136108958236"],["26114949203380895177738782148033986497530965685153030218075852691243702515197","20900837445993072970048391828944465076717813238762514252611741537546353172617"],["19385459810182403341476958677704713621817183120452164428322232662247645232656","22310008834835620315862476999327817887388166071149571120941520571205176113448"],["26061163377029126964727969379819531049082382645488583475965101946447669818827","12900845124670434489273208492080328103484440420145143644058615059953236463192"],["12848337108190421837057660576555740641559568762755885673961313993832309792538","5262254496446223774633990725237617400949423226024913013984795123152077291956"],["1591099928360712092952581782818804242315422475864076252797730501773349294218","27046466460944530420678928950380381859219033734107003076182777715615061154473"],["1515816832245921514842259888398309399698328268206960427482264651399685687159","22624752367314013453403400728283180656531125604946393211745206205682837129236"],["23965575574176722017648167324112479940949715342238487679250743585702043014215","20392111711771063628528252114056675121288846148834728059580331423912074407801"],["4255048363198893272046440377051983449885277938884930896077148182940087397799","9926011691774031155545892963955220875343844409135953022976748771300000377889"],["9907545718463106274829575805796917371901916908410522726822775494901534671465","1750419604922845317263155023412203845140188768736841272315845285532591842027"],["14575950951161177960896341536361167912300381529561814409446490691136583316515","15559684641641893022950435184201854047968946602289752616510403374036158840070"],["10646329599572611591982445795307467772790894473146550521625582497752414472050","23368830371743767018041307780536456745939554864214131523286253624627198883371"],["23571902278651255197420493293010751940976871724108485607227602203195885432843","27031759283142571565070326562293490025772258519467689937026106245459680448187"],["15952109530245186760960067590481976239873280133627565770694061296929933538369","10640092828241198221555715901259394302935795514155115030865673736360983247216"],["14713535210392947455092316181544800083070766344805165660217433184515495255419","21667857066978201673277447471462048466850933009153145091133569658967057563352"],["27269200969259095949273568858373174517785075673345196801586863282864816334732","28600428224151144896538762410222295523367187130680220396767070533923136698047"],["15091852926174061571834004992046150965273105274669044495661791038253235154745","28255500161359801227922519396186763480672068392858440627775519132721188034570"],["23854749172272372204944203061342041983957761952420896552922044976149460464414","26763957664725253117545916034900216100151926928961542211059379925651007624313"],["25487800490162653883535709656019045548774331972348657159811443396947922170711","14172633394220147342597403726293048340570582019139209753173340973085973754367"],["18412254760331055144877785130435279549616929985094321140554013008263594565128","28812047438919214424994461123898237426390380538968881326408426603316502929162"],["6355332873307301267262783094249729256027035724292823088782143344405689712069","20501665868859210487274744096474008321010725107436818779464107720504846211103"],["6908858868977008907721347008685787525709812972338937084917944760281385839777","22715368838103461181784443767576815668914475671013046459259158009140897611908"],["14183615337040739506220673184763304609750812862203730136471863801897637951039","14399025688055704302845756825410606401337661629932324851709830863081292406266"],["877336829853737838160886989109345321411985284779153502838804869652068353518","6476347021501315281379478917600300106669625712622059635483024322994225916506"],["4739171019898096265177288569797369242188804920692261921642547101484670767069","26097256319786109168180330868155038168045547227368943914719798294765106437108"],["10962659501352848078123897817322206631460669957103436077985467041419089169433","23572295530108511778475632439663568278397218314659163559907023691428267479061"],["16935383425935124957925836549644447864491669967220783756388126455831363071514","15315166138983866951761124827326434058035717651878473167048881513104631325788"],["28593520141186712450013509307982792099622293364530910026118448028602828938489","10927690280153522066592658532940540168894879139660308177389655839669648825381"],["24092925418268567861267202323111727764630279668410168791098529147030183647943","356222973139880997594219712010692826179838762252406096192377200213989282166"],["8581363745410162062205433090395722358619707145003822040938642836035705171107","7931849703229331968381498511352591386004793325517129696096378339844169484980"],["5501536504080755772822088198875398232446375706062189966266479220284124730458","23613686904748880719056122576902788143383184238918550092895466041403832069480"],["2924833806613300125845876956435036650176275120584105300202364601651473313298","15274750404262745617477548420276771051838164964283405307057160263013551930871"],["21758442598135533421357177520589348648330039580540349631380586305998281863418","26364271853414283481894573594171623998233153606751504857653960998875445419574"],["9491512980093601027203243860716683180907596970933793950027716492530714925946","26646964938100414485809580007575690514686593362976730385534401699511312531834"],["4861586293901557402378849923488789101643171177793466361624364043119080470078","18865634261409658190288465634284237538858429383544455702669501518818818003062"],["22866588687412338131213287312426993508283287427351725836902821583033366400034","9585630912516414170709726108666921838547264491754480327685333597498287492549"],["14433256824258924790547500391152606236352683210067414450813222703520054388100","232785099239309033876785150165659432010715585512654432413687114737652991590"],["1592195369497577075774538367955197137910710303188090000177905164372924979839","26173446919248671392874194428036351167011792274798003798528791794897043826844"],["22141597526658633360589161030706014845381666084552659002050181800768513351847","11250504887903802959414057968149270765859288417133931904598783647972358845422"],["17322107536572759321413757093525444862713666025567024009522703881903765276127","21601738465024576856623566701978521605557625867666036175746100386990340695555"],["23993608607089936476267210424452872988091884596062516907188288451782609766652","1154398796475072112995325694237159553412941448904070218685650441744559715100"],["5632955965081484375403223875229674628853956986041595488974545282471031573330","11387302076671950279100403780583976396576534859394147407658798269390775523014"],["9129024562653602909661962049550086476296764101398013844958270013529954673289","15122836541941406356084653484311255032685457568576333188404374139461003446777"],["23455595035104733869028663288297523541901254146386537521103828974263644479130","13284916612331112062161486237734974273024305538636526046156471381741492865509"],["14066494666702960653542352142568543485196332774196336775827325915671882055577","14341643705838641559028929967582477236010849479672508031227071140036688533379"],["6323545847705297313083206763021835290875485219031038354940324668627962606389","17939703775205044343976843974680990695572158685039460471058921744724311398007"],["15385990781114485416549531106102374759021618463607927912231961034683351615800","16479817375581085755799145189533343051929204499403670544932277875205232523045"],["24494879583444972971895880319681568308647690016908610840446967652255893229704","26861259124884397146389420075769664333561605159110935211729872573102718613204"],["17087085351651447276697825749218058891654181671029273051034044874714618705070","27371640905583517287736577662701914770397120896380627419923365318738476033341"],["4271791240756848179702984130212764368343413604122031470318454348261959912177","20456114051842217864126820948493025744432591802477239164503316314639213792912"],["26410128163894857598733295284132101373019287082990531251512630524662950757373","14824074386914981563459797367043614389665345617571493481978678605536390021588"],["4712572507885883537840594976830260704197986628784768656962789505776983437015","4820898501418956101049497537405667541252530822163966737212363377419615489433"],["16273741959316766532779352783540996107141055967267224188873477518018442605776","12207658453416525815986341295526229932520845573659426733158203261402282728332"],["14790229074404071849893856094158040295421315184072104166964626095248278143494","2395118994231655694760143113307743724317676786879184073498825797641673988962"],["24306357705566191996735212932022977337798585935176270250792534865764674853846","11512949965401493437483782885112716531487668500001349344543301557814126139316"],["11803851250130357516030226438714838085350307938818283872404298016194851312767","18079749436649829351818860088148967992323274977728225031577895645482304961829"],["19181605607070578446536957092104052601894384817191785650752929502356670218115","9979403596001735489352948144284146493888629781139962646518191762724234564796"],["5390600098453637315864133126252059549766066803546488094274190676416096946331","8978271907541024025548370329519800300294593539188781906468320037836824706391"],["19608202531549543121359968378047043825997078094724825793286834608193858712897","6307573282261305745357571060106355246191511545034271537375106285513527347009"],["11713754058670600061113336772147426054669704525506909284025389235991167765750","20454750140448738832884322323147644048551127980756975808779033922287268205890"],["21009701079339752814939759904890973940043848285557329650102989021837707981230","27292552399087232701699471461773317570234934813019234842210209928713899841332"],["18979456298764376179196614285459051448542163096421366036968248899871317038835","14262921128000858709155608021778504888151749987923632329077167521795805781062"],["12144366229790026009948358790718381862989325605142424910280173839092864936903","14341878667676931642058168001332973180647245070637928978874424495390335644504"],["986119457205112199006092298234804294328498357506508576447974280769731386046","6374902111368230276165194748031246248377637846749159752015895611786939350267"],["19609216085412503303316556146136367307347080404328269516260530511038071697300","5202524705503291314253297066962450509893930281753658979151439741916922443302"],["10889563911104651549351393618254596661483254083904157529741136566668769390003","10002471663298671588315399106267267715095417732720816971087378713255523749522"],["11756382953889069137699489987344848774766815077458644020283405118579974490492","16939776076783167893292750851065009792077205894947286935366090277957862026873"],["1157570378223927288211613115055244273212245684568500923155698738162685710395","24731966933560923007063723407993362054406505501791666904602436947463662904379"],["18598863640441626314847165522010868503414459238092131336756577263665042205154","25963505848430461991806767337596049665877618569449375750815318296002687824290"],["13257446324625412070894765317403176885355802721093495376204034415905551471028","9549861051799061948161617036424637525867977170843889495917411008996986516591"],["23153558103618701616502671148851803152953777436977468203572974799761378439273","5967510760831606913817481579532380779066951940249377092316231081559381240825"],["9674475190624154677663367183151205237398997544955562742374733521239354208152","12983389720294225964481895042429381131274848886544474344497617416764648735132"],["14558206116888008468375786188069282658354234437524771922635238520933953575885","11488063484933016608177804626514737873015418326134110507343020770199495327220"],["15930219478589834270231724323621728935604443755904034543638120656850402044516","21024943491533511020338314407243796532290478061971704746415323416101826835143"],["6219541175862721451894274903329000652389114736857275340777785124304727746211","15253569214044011353098086409831916463599565525367635373953335589202711910129"],["4017993621120566577511695640675798288672596400646723402604140969808768713931","4811238527336411480446280629568571916118679901626956057085082461910698645517"],["13608735660585299178574497825754400612666966375503826288770691083719657053881","28422511638124055238308231041463154795960272181478509509462438705357071048708"],["27344041798088597030555455496234164131540119333761630897807367162371300193965","11351995940842022845473952978439144588561731790819894529320386514148345757437"],["14875501074992838708994386514364701416152853395477799374499793076105869037299","13834102187912826567044556291584284803836567517666233347184644528442495098165"],["692941900810331088025783792436243662616088193663510583250513865113057483472","9586760189798612863342516563144733302329751619372376982155675430065061205901"],["17047493217541748593036654653570475508497198593917583952578487397484392204820","5323187829351673598334876490978799130698674394772684339484552885927669456361"],["16180778855116443307112352078172946280912724005104566469483084496025214769548","5867017340312106001088750105888355008719817557984159445740143332015703863171"],["28352448034479135652977867597619562733024765327556464077933243121966356401148","5686738247084581990070545220175933039136539052185057268506255508753863989385"],["24142595281705768511236730197420662428293513821765640898311356317753194425137","9748161831688456989079043770505389527188105427484969096310109425789664318508"],["22317717033283683360600149592556383111373852871588419670286791958879459831120","19232204140622797145947559968042917236984563683454234859963078197436064565649"],["28857055927145411185531104116743015531945728102714634422213503776663911126571","19241093933915395175253387488063439850866994166309022767441418804114701779267"],["28312446534427487828941515133163700965632151424150341613037356909719391162371","11131439929032240246850214600652244426746468714977494767790353996082205306346"],["815464367517045040366417721578870229778445799061915026523690143597953065096","10838307212756342964329952673262699150458901042181128244913148543636853086278"],["18624379675871812016422233674590033209050643547933493515198539572201497634455","14762867245604303349109545869205158501745501163524218374868473484851874230319"],["13151984649808895105102386124941282157026142161096785372545698278625860980151","13082012212598870402628265247609840205190139676507586589985643821054432452461"],["19481629375268719041207297598047029186838179424822237382681305158206131577330","28288796086527831831276644532173898755871106292068524956751967216042391651631"],["21670640979791134630300971115948159248775817190657696416623850409409323361141","1575038967576917999275890737378411085074439798703303022045272595669945215822"],["17725722019705826867127177947701998749307006490216248446490199251734541192912","1798504607255703264839178662070902752379264789027079690821680510019351701837"],["1604335443884940338400747315053865781161190571328351219422208135219377907251","17842779886172927854016223156387026563414229870425572274359103363078055892908"],["21828442392823669036265732417248122980795616668884999373244220366751075445570","16478504713279547778435358468888294324306499303120686464724932595724336083710"],["15365712831502927307733916171957868344359091337629536279228525714928687310914","18879435301666543508229736916712369395143925360972731808202769842939724780922"],["24489375412399327056081278013494730923208680028421660492056242743778038437770","19549223975609646555135357667132678318214126752709626435812298476454902990111"],["2454602054288806146253566565660461949603029749978537487537699790913876284812","24447858398666832466268257073356124403895380007015954265122968387227995753979"],["28664143441528875920304811873823009594347168658321804749353493398064170474287","27397608916612786908201574251014975900144486547044496426060500604069772109610"],["14536178515463855012663916387506158226671125276268571826052745686801498364918","1738748466180794253323629627214819959931660553046185501887558532158401069892"],["3543657573461386645561904187994977265916608453996918579769065525334452487587","18353668171110090259090621100833656768408454552263932307899958195593513432734"],["3058485736788236860488810309377259847481178060571960291993337810757085846748","25990527638653084539114849689961132804519269240930135597495101203631933170242"],["6343302051335269763867477575107930696322469530664809762038195551523261419568","6081668502463087021993707643337949867123742797647743853809781037697209517687"],["8467372406768354744671488390743727300717455006185768535699222141807798104001","7508945378597107358728922701712981765812526632777678888226572869488528510125"],["6285725324862121744072738225424639322787511075520093619586241533966422298390","9667470997850862433629426875326322453504090251500910153434957955306207657255"],["18010315694910591810064412671515073941631945266023134702216246361054281776599","5436919308711959608171043477688631153534903594889373644849146438724727548318"],["28729294803154236637131930890517820359207068114622048790274426421297937890503","13975374820630997963711398697672844678747295799929382619614853985903038542890"],["27034520328377859179406414164912743213700001152114892778109370847100830259357","15224331936952967825259359597196455700691690258091077240481244825854838804958"],["24915909431744159294400544017128712595813152214699965529052948022302376213618","10598174822660365690327425993517331578725359097842755569359230372659653226221"],["6946153393422103403648433597550701039291943443833138809092800663266553979902","15220939786497189942148295529872955546752732887509817570450349949584878633519"],["13443770057916691343752336322781275707903021707782037037462851694683401992763","15832128184148823905998042640827956512804457420225228088146192364995965551866"],["16992102783369742959188118010300424708961861644180402569730876592712574892836","955606245953518386279579442448564043204027838219372123908229986917592636565"],["4770666081465435669721369218233407189836107036119390079815344882576061146663","3449839981683900615003694852502764489378314945042308423018729556654471944344"],["9805103942991906462060378573776578786008643912842163232243187460589368770934","26752326100279698464049174645323489434683435391115864002079508376350022864302"],["7969294792550732849489539756796809342746808349043677573799603653772107353007","28150936540384923452902102906535344568447153074809900063835881105783883716633"],["5900603289122541427420669529790381031417294459270187744219702599061792527392","1174307824792477900762796366823741429301491107537340613975605636809492318587"],["9281786855285022801245090315253966813739456621626340731747553431907409200682","7520394353110467211664502345781683820121393681974941762194705164861551705425"],["10858620834025699543895643628144896204585432951806068905022536357059119774417","26605214549732201584856915895921178267531003871359802337168113203664155420382"],["28775856667562601946392142913891059592648152341135358432833322576699781613186","11927959549883200804287057895546601785284717076904264803515813076893464664092"],["19061071763271655740465331535219208039419279815881676579430292087505277106606","5092875256347328732917533229894679949848654707613834217585578071886721755658"],["5405024299007767042794040896932121857216333004913968730821172515856567918055","14550841085875002362603641890649206068435258691856758529902841885745768087592"],["25918010811361282970477520670489863936013170925957190274242137854424422628138","28637780344884290563680223390942119997949118402710819174621438213334121038869"],["27992058673919362488850732232545169385673179584073554581330963399680747005705","4010108628493515878872225873807695179829656617356278119276717508245127992202"],["27887213271116508063008355506887086038263948750664726750128212352577622501299","22972903473065940214663461569086881770980868223817721171173640268753732154868"],["27290270520874476485961979985268442396500824690249402801360788420190897867273","15811095835574396706396459910045204525296074097865992017223951205007261476420"],["20718247640444698402015655325171325069772022538590572205975340140672905436550","21953277287846899562964947913972218898494964439006062698655733362715783680370"],["2434180881237866820903193423070864624703863951865736535386314461684071560719","9647024496238028387531647394707083698101937162395801794036533458044770410317"],["15804043527509357651154189275287975868830645699541442752743434554410817242848","14410736341793187830663567888751039978813911999486179762478383894488373376801"],["3176407778529495669235870666185797119621569148339986318699812951394217205325","825793454345050063524483554707313341857365553714729091059159562244036690842"],["24574030523203276244158022931948135764597424108801503512131743804769071926836","10631428005190414208136930488063534968225802482539429200318510714797062221425"],["21999375616780499282455421441877056496169645218213956160236484479513812834448","20459223254425744073588995379243798780903382853814003287351164120416037804043"],["8818174968236529478537874736334529279679338088497664070480472894638476698551","19101742993236125903281568908523844152059113579682650125509026300922230347699"],["11738825694117581357425693947559604359426505736316889998899918051875847157033","11083205064289330588316931562995279740177554996503200018705420985002184929667"],["1254506763546458499774186540210007426508635496198545632133849448638394249032","4745936862655057952376540327660978424788545953684440316602716918499566942156"],["7518952565471072509168498454580215123063147998394354102605306804658269567688","24122648761882647981039886619218365710577299305798878671648819725079901770055"],["21340723805451291778188352716299308065220443711637789280601590774670905619721","21194281375218677783480751399958504329451603065418161081587289700829705938381"],["11105761961649656426109578874267796005258536407367135889000023623479931869745","28508409149830915903610481177023116611533091654377385725112791132939941010826"],["13580190154010843330067151104496140264204764663533241013560020123312034200517","19531382824244857999552757363428144642715088826335739653197122617873994646322"],["10214630880281337079564122072009088584446136346698296700860157821716631449738","25270551043995006390033244625648663201111609405368211452778291070281208153895"],["27824703534801112422766255510688392965679527388623009175867417995978550709061","20244868744714175510826300207297436459325914508818638491677010994998136471199"],["10045293308395124692244241664529049464509115452824542685143224348859641928598","24304263491104646830583279286245421957569380920252069008872410678719935462745"],["17743541244565601221063023171780979166657355670349542359203149989367399015576","8878368464949464635283794101674943266949389591593994701955888363293690175335"],["19285292026438443644731332445201680718582098797697430681949175162230758963237","1952172197179196616071716131201383092901053630404526010501031434278363252114"],["28540378749088765764585208258572906382033573624981665239998228831283655592684","19132958219627695025041558228214456026278125114210187778448719514512944250149"],["8340332118989765819155485932540562381886904097891377182851190348847793824224","8771192912846985348315311274131716753860186715079493471539976486448979636170"],["21039276509722776801719725127730887806766577721420523835629266570150898571551","19544021442899535611579968825799941033040495194041586386846615070435558779989"],["13819432943047055449614722780534202021000643931941216093453309948647790703375","12347280493648673578244834282397734898404760918781707926174435992926195047292"],["4716348894803150726672396679852791501773479563682880107771324347968966667992","9374726835115686335770652051060519669894461621818008335332312292652494436047"],["10228470755408615382108409835963514385068052410903068623555091725524220362178","1585786739717649344831733867600644953383835664074912810164401206973256950070"],["11384434681120535912381159323257428780637561679241114017367288919526827719644","10822724975108672544262904802687337047675356288010821898325517599897753929189"],["8367917306243730214361211591767249632553610706779050701623040143157053770216","19504757751493581811187546858429893255373052608718373216757629887638191173863"],["11798896023526358609292454819527991316494087199900722591981875723074356287342","22995721772289324557705553728436396215495404917584747482290734776095103639693"],["6164353704402636732005543781826407768893984950440813472371631749810655922467","24196580905825796718019216492294807668908968413805269951588025426577403153523"],["26244025867358109124453973698978120192261262713179658278013970825294766019300","19674043457746324620762958505954437170917553186774347775049291397644493933192"],["4543167422018938183013171638744179709154197838031013061761875666423781675984","2317329369790032292657631292406843692076830562604521491064043157563334650300"],["10869658145687923901078437883374748319259338307479176719498241096900094574984","27076517391906320857448572495843756849845899876340063587779351813312414568517"],["2740940335180026586423263378597793145021007355656813405880661492785826037583","17915700437509446472895169948016312544147126213647232652875171823044021622531"],["14661168487990215565424878805359143987985009580939048036568477059833944764558","24292314386416936114654762423660596987956546629402154338248697718237288508720"],["26821462347835940003602654268736845145395599447497350779546995551043832147393","4035320065227105179224882764643084737838658872773369987139950792857919667085"],["13548266125143579868872370965161342715553930119216093446362214077266043550262","15322356132957440965672619165567914685338064423909133830443186269993377281492"],["21903350965643174125005151727935190909028497334834338456408972479856315687291","18560850113349807062391466289183035311835777700889785145283027910934177267897"],["27549998741904958430987341228462444111387009966721852889103658394617201302614","28267479957719744898640870410071962478347880809239985372015206187571829236660"],["6370696760746219108960113480269318401104702649156595688526994673648674422022","16744825431090930264359399868132400199974079579131218350111207499637939229162"],["20649944932468936689766415911348042582197618897262659451715343382516919817192","12070567058196462072641756248307027579905767097257122079193456963578276992613"],["5842806477622580363778574290469648795746372297392811740467924615245136374028","5358262290418609197623715927423733737686614949066923060788801372143919102923"],["7411502173318212559672259632105560546483832324210516847728774371051266016006","17513729196353793688195844407895871091342334885780896466363623268210420596478"],["17344699817098886201230909897806934583067969408969642100210875638398756232092","21412576425329440449779564335964739730824264356500289532708537722251156766011"],["12672035722523609108065118684396592823605000571691004389890898597156126640512","12252996033757775668424257229776663947064948097460469117367500148687405801870"],["12506759108021759439459956720474018279535604784480501976448008608731064789222","6747006569054729255567648953650626797878610735152826807591361112663155364446"],["26669105887918409288982147933547143547634915454023068723507563852017951051484","6653211764437572994980026904125626238191768482765696298980333756700251319735"],["789552856454494027944605264854864778784231422437873996968421569250949122475","7526501467588634716424828387343211549795307858395371829572480837398159626957"],["28236072082515184442375730883360724465834052217151972290488145112302899827231","8157997049303423519505737532182889941602182887587278747296649001908539053453"],["20376199128623050875514052336037997421720060824046368285348412620531121104032","12853500835586820752637730065989255977243031448930675670069741722542434730685"],["1124365527260883408001926572510788634539206950218522028651187959742527491523","19565835662477304040958651754771553821682641561071631663188600108287442043795"],["19978449316359651882415365598111854353446801585017723187360472419699201355147","4606225051594456076055136592857007971203278176891167746120712136245414628129"],["6370972272007195223699216909311269491309742327049610668784813762184227653790","2769610882817995689390508842859643597665529329681618628527729313642623338634"],["27774746992569716488422759722441732052666341065103748284646698449115600162545","20506679433114863890835177112284415994306999424465110269453454719558286640826"],["7115355675477858094160617295078225108660109993894658208278320927277603345552","7280384346112238863883808232158720980569272725870389166736318242009148477736"],["20967380860892802236830784912314408289247806567734612283712506359157016941028","26293856214296912546599524301325153095483580317313572924193211676677339663191"],["4046363439635912814172618448696706673192022467610085253389122815291259996132","12336469642243768875283510710879630871786451290978610635973593525998184949083"],["3172345367988665483547224631824062115886914392330721333098366530383074531331","8816657617623533288123299810014933126526581249831894508309840982977582483624"],["12814674999219513615670126329341711747158864697600719890786210562054109908743","1678057771014552777983043109270752284870204523816721952763005808382683805262"],["25247708913799185275136971125851847158331120069719958590068463357481895237704","787237554892638757002083351691770475293693211681690770813407132673172372315"],["21871326783332815515798856855745242484902630198358758722395704027965390504756","18881524433789073431614914834893822831129324108763818867521233582449418459826"],["27856220923256875114695159019687306791638187441530807808920846215448666337020","14054632157254063907633992553598886010221342583465733973490565941623058939168"],["5319564729823809606494267446851418270572289692746006795830729495373080595868","2724968712471470629667989588052265796598648619390885963097698758339050135063"],["18640655512606870946192753764466090138180794691536716839700994039763145101996","21177865154153375388374627175600153226689557508988167816321717384428588004109"],["20708953664666940241674801332613520045696541511255559499784049683142705214933","20776300740892891417256621349480603166255595963981359345997603817387713417415"],["21935200296874249258524244878007104372461187197079874701672884360017474439801","1796957856816050605094019358684908200734494714612410014395835317894237443574"],["13873840081744072572144768901321719900371314582641637910390314606104770811411","7221438545945081809710762636471543152889778534950536727333125629104383164663"],["9242042915346410153840947699905261206335371002726020960189594783956683152516","21185224418380026000722308237454966306087388683203346104072193270716614988100"],["26143125937156381771438746456329942582543286941745201853517780686500359899014","19882810762361186336584334310753254901064846778361551656713096000826356107733"],["7631727219277807737911329415265825425263724776036586015650658708227808169571","20348485194815504978002313091761863900261347664839802784622229377549165347721"],["75701000196466678958103533779164664574003957288737178191189966797757613941","20821259633108108071573243424711993594598241809941494598745821932922317785895"],["10852790796572728102445497633812202689125011574082717779158036476782386636613","27916821438105423463450571446970321516111071449416435222207516064481699597920"],["26755015421536199821052003648933864351343941816325758176091540175423318038522","20877380415286002703170887153334752718921151806761286119665655910364356428044"],["14349146941236372632941541875487968669093155248645414564536318290536954300188","18130090811978642037539158647328122768197745542081866483849038077766052765156"],["19415289491746879337851646048798182559549992533097286509882707226080383235579","21836059734962643942695405883048118762026192803204624776092138212557980036182"],["17158222606947602247615953721536377863569522620607523976048665723361911864315","27762020256318346191223946916896936559292346612796588423762794806858030616393"],["14746132822019557595417212381485241450543703297901539020766057224408189194541","9270263925862436222219017322457958649430035778879291694654981577794849288028"],["15588054588931164418706090787072535333663899656387779334377749362704534589135","21525283505204341953701481036331366351918223362290013753169901694256856165520"],["10589946200829437888408150452661560960577220051719373308439393386822023907523","17026243806868692553738093730320699552779622028376183055467958719688938501064"],["22476768341058564348678743474062600703564037275933529375597627918244603433000","8125979795441143236607057767943178592720807094600864300954276839250986761554"],["26084516644984429988566109600347939932945579067106371161196409051863072914195","7251819417822089668432858835337018440774216329327232121513147657269227651499"],["8090303378481034386498853674391172528472782220989482205024985017686382056279","7507273889419263071330795839989070730462991543041449289482490663329365656257"],["25149119552881006582577694938915659235647043193287384957134965773248295670827","11122763909554596306421501408980367487968305249969879123512072352015119555100"],["7198399825487857165030029356839911429243669165119318929164108023835730904253","14221866041118586618954267058637551097461614402206815638636332122903837359774"],["18303901714907831944084244907651311486982475287155496460006926077629778932712","10019975559513013539513377083301788247611739782218474956581907892406932364700"],["6198862718588458018082462049160601510198655100051310125119211382842580757729","10767923510526036147662025094935344784073308545104268741874774939078114537330"],["14136280004030609109236650442916263339586102648617791847859432657442880163392","4990291252506133326050040718470770072672819062191526849753470453143271488716"],["26937157918327724596839532046581364174750025581902011355393113834797927011240","4527196807339264457417084721265757180480345049514256531351853097529212899855"],["10578924478020142317056581328655536599355727310567574892550396368214805623013","24464954946419440549989137493610991872923306080137822868312624875260918919782"],["18289163968692346681105252854900021126147863796694145427134852837269773587930","4730390254044371922906792365453089682813372769911764197776597558613428915120"],["25907008881377738068232942749321319753117985436181856636667665516961846487598","1293964916677310210523229416323817521614609503924684451142840017291810415439"],["7139395550051262498646687792092255794284210549839215431569226520768727558622","20117269393552028381371039535173206180606350551058150244625331355320868608114"],["11114392805869836134811136129712829490821385420171009588214483967880476428181","18515854057463471633858614047899862178322133432783978377009069430197745153419"],["9217813292388907145245402549784301280711205415479263527019791427152790894207","22254621813243532170303467662699127977503424931780809067011541865627244069710"],["21450222399018125025954639125470333087653058968445875140348818108232743406855","17426196787254729001767123443248904722332571919904880763139688789761009889133"],["9963677609314075563142050489786750054749670191869254880933299639443908870","62391770586801372685760894884708032209138404583619691833819035411832835943"],["640412773563118768326692363753558559124288884407994101372201111823179412420","1699627355518340042242279589405143588507284048062162240901824815340667031229"],["22221550572223589687672254679879476485235942463113820270091723932751746547030","13047669798190093278089069613568556410995265092364888623603465308200640042149"],["13111975459511260495614744682371100212246478201186605351402747701173703047828","15570300711520029122694024841876660657138626489904302262750001482265777787538"],["2833754103536042272153459558134570435416736278830618271866611353903980434171","1539360057538609705011929224277107217193149737941533240845942031730219223216"],["28643634932387416925309965911333614538843149842890648779005828408581164797174","23494089711554364560083850938529595335013027022358761059867334592690903750073"],["16321649111726374703369343376850759250107376644648034878156614966546123596149","18562102772843755904733625138965100367361992365514474740444346529297903078678"],["21935398825519135206990345089944409514725445742965009448714186046668399207712","2849903841219848244857240972986818601546148243176119003928746520042847889158"],["19156690406217068742572244552777730871249126249791421690729784727974844556059","21711081027720079369868942207392846242366327899986617395468597155882461613501"],["4981047079544291496532319461656399126498866997960997988200926044226259218932","19331065983467620865452360175321663033163222889203983215484599336952223654442"],["25362330528992981730967594428069978486229568603140145810209789867276413791142","4047702808797067005457072967853563003618177781538104503258831151319236604373"],["28784222727783677819334811336381403254308537489255402564849557436225974723373","4456040763955865815497035079628354447752686709423540681516237257617704561018"],["21077812067328757986439202121070582134719096855237154422262531590507433720554","10391658703736189058787420896049971587460972978480740969562117102675898615258"],["19704460387023165540318872367245396246404514489259273863911370204737174411784","20589745689282802489169524007401224597551767092997648601490462808065177681151"],["24454443872182078287236694373530353576602779010612035305378646578346382869477","15456585825670695959885474098117189739775491129426228488378332794628766858435"],["3707937238303683652296928265453250533047535986025942983894772421063145390079","24465635791485257236795513227194788523251331979929488658930848567069706396243"],["6190269456849297188034510524285300362642634468219451453844387969025279967650","13034029929738219375549183877146445133297125159691161803711665266596323650296"],["7249226901342299166208770054413127444313081363833712109423606607602034028849","6590990082794822019103670152244012298897252439218068352070164105019915127256"],["25571336558569991765958220426782597300041974743982178075843401188135222385334","10981689531603717582323499546483996857440265834662653707042403531447684397917"],["12790000153724642905889118327194833858972498881032064266707638069715922130631","12139275850120770038947419418879586737459740895324898087589472619881294709464"],["104372483675737823109947199166339493249977443265777961235145138696214172259","16035619659905196865262735825836132678906339423559893576182100755321981220076"],["14150486945113139418664061272625589535884471383847498098488083171515554568552","5357957170707806271489762223109862267179067974938769969284344823402462357411"],["3207427679932261822386086213522683589006839138155072648283681298326723389749","2333093428173468115265022760249468744675519505049477056901950311106571216782"],["6496528297265285475531124387611632257411557325677869662678604041634855546552","11870780140308219245271447889117945730802966971094310817906651074617057311149"],["1203714600384381226434227611573649611374440749567607892713610781362900770583","17477956175740663955825371876950697511806539387726858905122623841802878489566"],["5680185456600523163228858931088920697952228870690098065202538244293694128794","22596938557236364371042857828200134554898002196567870290982888319412809314351"],["16596874782041997042650559981802015256907094557615911380363648371937426859568","22120746580201813693339688890332217800444694111021428717947371180291160259719"],["20403320684846058848580934122812488483299275722454727646680503863335460751693","23198765166813577187689361615404981972229786017578458373733345622934900605651"],["10715729205178569151142951372023747418654365096003997119025329929673463489789","15677476537071906545176973999072774148901600531019971822410373011790244755064"],["4869289274114292751792677437003783615667003047210024996568773925973067960420","9158308628870240514795922876199837958743076156428934834147788959918009392206"],["17319833445309358678864290528941918704600889267795129901043823092087038690780","1499407223109615675397183630583476802175902750496364078661920173645083766855"],["4938860360321247194674645887503140159943862982148078764447517927455382237833","21943736236998074785165676329552513490781288192088395256249516903995396030956"],["170219988971625932877596482488093870649423391300922977345012213930995451937","27667281680807433851043055801471839490436687747644933041514905148129110816186"],["5551059532061317805221837478414896283095274464132400321581181956461572336442","3525176663052293773634681190967033452638878869693217918863039037999174772304"],["22591375370154905864081682680959917135019657400962716316872501386026853025339","6207056257231482452281605623073531697642096518084422300033642680805496455272"],["4516881416447233754509459995604701655359625796941880614547190070205937658552","4436025209948775531222588532082553352397199791228879381317139607007240861947"],["13163853571272305443455080014525362330252042144144907707940630203050073519909","23629275478306733126863450593727381451772235978751871561396945606439050437549"],["1728295331896659105575619071281799232010368950183135564203089243198817182144","5198461385212970997818715017685342486425880683461944164686586603293683217635"],["24564703417005533260447617662289534331653389115863662812706782341244045413056","21271847762476155918953469238229583731018510492528819072664239426948247250816"],["23800971984232984489350215685662949517601205009004038740403631828415679836482","12024849452882195098558149775275833198565135556495743555053646734565393781544"],["2824206281606330768196747474558020350133595634738254941302277911365153534837","5875953162694374838485153351817144321104847991082733271760368149125683475073"],["25539377582885051177512377822976049477995758380311392097545528286581629464424","18076954789803172399976636633236968598427092829786045490678324833032634673151"],["4229671491274665269038435304231053856821080749507341739441483540512694045813","12564664665511929490434702372074854164821715928458387085092810276976816099415"],["7317239422217248288639276359017592341908962754770805784035070040727436078341","1882398649586610726452714162356995131834560675459656740579152104941902871429"],["8266617965867893820153800977551239210821678069008664828493266789744667191756","8913156336886704906470996694225898714934610660401377649761088545791567727003"],["2495742001532419352403874186631873979256118086764505081039432120164419797225","14966550103364356778497286215313037817416214332170288534696834086192850531028"],["9389120287295954278265946231290222117299794375396574022483095760827844312009","6567485623184525570199363764040660948863344893307858881402121202356460795265"],["5561938051319639866847195952426299677803577120392110049645899779988508403563","7621320988689870234458587427336696305297546343780400931581855870183745922709"],["23104292161535212693457576585242609991741100633400507396894743430418934098351","17482743235176818657450179446859823263373115831624175403529758976377439943406"],["3972216755684228603863860651269900621153016846004632817449354071658178347652","2910097190180273296379968003825228997698606732527059264130119097527897682064"],["15943695740149461353439475262227650967367454507733207677751240219689436136606","4759517634493784982450940953718628129370784624826095178322008824084766257394"],["5321673414443283444972321252609220227865330955906490330843035310593798686355","4331447636785088102195410194128479955561640746506315676440311147865134732780"],["6817952893026999082984361896634206874987261678579754628564022505261582493465","25250181124300629203089170855138278753233167256484210244889286671103173242403"],["17681113319164155781996678191009855604354679105187605754657755202639261592968","26797562434573696872580369558101168746410541861767299076212156593909078508645"],["1116011105093098340027950778855394761950764916267765408357411384985564439767","12262699301629777443664664983714911898473529292739483142136961682706364865833"],["13138956138648830589919397393678898384056865113585822633745519812988326979635","21291678173445137311844157297700595333181787227451494119272255328599836809386"],["17878551388913548227433685659205682430483002642464936235919037609240866475518","20281273272466513450723249409247860027531891621095094803102111990934518112858"],["4719914588872883159290462353613620068836319566935911791758240154726525221226","16077936357461364664700564955442274828923587333816747123859312779518119623786"],["14029015055217085419968134207577423986481949895661175840455562165549109208929","756346983428971099497080775640835962570173299014316327179066716976539494871"],["15800848876116009155644396462200419346847430986624582133003731896601043285240","17342807028223057121606860469638578447865881427554395178732532038112534258427"],["14618278448036539947585144089371632122017647690670436859542859059871985296265","15395036369275484601479531224284720385339408607127511848642715702630696816851"],["11913612225119310702534899521142215165415383916929342234367296776709591176825","3398007412474985481231333628484831204460269054093534819939109018810203348571"],["24610175609795476399890617887327544933947030685279434470253390716940198093579","1902728862440472697901079004898582389920912152192475687685591453379455062209"],["5509331537655596509544447558216181884152533825389892692026003420862239933146","22580353118389065634368536660276410409271771177218402400139931955967060663354"],["13785892908077868855737456663184505785723074081444373321495778363127847022145","362013209581009689891302744007298571085612815430532522200277549837666505912"],["23451824186157667669186774375696757858001644454152711143465835287500490470643","7478099747811210371401018418561264328331875079611000173509539873814663658273"],["1244018560044611509833914005453799015609162299331049386338463394675135251098","13977908465631202687223434443723511545045920968182177089737032533702640813200"],["25502875257443252301459455156464532701170562671501300916539915970393408032723","19317158669706367010896215139736793439873416260993736141253395686481796482495"],["13306814854815179536401276806668836168804739851981294782896999681975288638030","442655695519745210082983051565169835123848264197510917948003122824644035889"],["18390122785832629015050506573001330698178968861052547100850464846141745515793","160935326143907763094319926046988345944236503063004839282070370150790046164"],["16669659420721312169846817826262121317198629510649956898090072278895512708965","11336019673235809321595595608382648824803171689748640388707474839026865598900"],["6138853032184784891583968710428568970254023194625596459358104860999793665105","9917576369653782442598733399770144179496229435875034090688383164907365303913"],["3511637981649960869016819627092257138180370770134190523099888075483390701","9121261759577368465500380997423432446923954836491882360351218544383366872845"],["2193416025130675517396226630360061882978477405712553888669706596836860795870","22034009211949908860126888506766522095634138378798719591728972216011615375042"],["23153805275931095367199640973425317006916500773140440390631226569553494220576","16974435176982545164198875064525083069758896867785458116086082190891709532134"],["8968105005852798051807594033688311913403277207061086400560022088133044402477","16522694194635408520594156602571845504726523364819855174334702933235641611943"],["10233764719742893704745166438934036526325629343247044252015581250193964001695","15548428139096156866188035441176472695907809875123376715929502554376526156026"],["22889141579209966407388214448430416690351691213918171859616349112830639121101","23687882840876382602541138812852068537832216639624235153286594246980948501303"],["14539467034015045049099193774834209107221729123791338043820066885215618817331","18817326362201663664882656618719604988523662289551667812473470191770954963270"],["22343513355678140757164263917903035162102180891325332007073034534497364398155","17603338565424851962875811977764778050805101584529852377569623849255178193212"],["12922284974383037909992095484583875033313656884065338330976920168617683842579","19563564502574271291408528629467833135056994196191932188848522541384900909090"],["21959489161681011006605854076408076927454322291954972203695475390768308330810","28037528701793171720735167928263033866483684686682651118843587709357973325599"],["14631898645398723111316714898837535693823797523077435174095685553069742080769","17815551265041096156346122425567264952864958787950552635966089423460165829529"],["23707632089224735458336170461670020433168811682899128140356070720252240151103","324152261056254765659896301370086658305072378727417447422903043210885592376"],["11853223676394674176493571280446815525043306461206692087896421262490589256108","3040259917214329188616226031574011528351487476749544993249415981355617825611"],["9370329999058389862652878071908883673410032603265012909003330410731366154881","21947886440618557548216782034297322311363692938642383682893651154032421638011"],["2187480605520101432948360381742526284216813482514339488616710249194263065149","14548749169728071378107864886939170986303401995514578609636454492740708321696"],["16442309488208407302192422077407136741062001264843280306770484908764348966806","10664911103302851341872962901296454450877766181768238104116444024371590437557"],["3280449815906708892755082527253819744085915937246547879597259963892792322981","1480454843268768994310577779778912179321948189743980958199699039927510348327"],["17665630814791156611330065917794481075581678344977735933626308720298186486443","20058895222374741294771844445223083025201917612116869886286015908542991723833"],["17680152766037079780437457493061559625907813969287327946644405691870170183467","10539480142995822646868250789535539900342537227161842712776711262440937961032"],["17828706522722909140144622816038772590058667094157606986479707694137299292712","27940886856294326511385078305337635793032046614053267651250867439515150807089"],["18355397092630456456234711774886053184697865667229837186976363245446805430519","1027356516627985903434025048424372841555506881472903462764811060917325680141"],["12465497513054283348581657175661447171401867032635047465360726997899161772607","3201707329220911171251063822930762366990842007251322062024939413466010510037"],["13129453554382758531508849622294233043181507445987313324677885401259961099054","1751645236378454708795463165690498819210316248332740537464506561784151042798"],["9499213255886289168347229419020505872662515386045358995387082784113311190421","9058096904436950024969249702884028077872109076655325310198239751389096142812"],["24562376168794748685189744070415009703240902603508538697554601647500772720681","24573213625993095324408773633762655578621641974940997192336121960566767492312"],["6357755237698356874829931285799587404269481588557698470745028653929164572178","21710888047580027305441584835246761249509677434595105768538754661488624591130"],["2842368313634480341157332995096253837481183349499625110660656218920256384308","14662389927735554026998247177050931767305389021838738589090846601265131014031"],["12601796964208873141059404304563163597509372373093522313172855167691808840915","12542104890956051008869258861425021755016810429797767966607827770280332096300"],["10040937685705064657928984402709942815927207197107348091249578380355977946090","17871273213873705502687756579007269713587803717850835198048730606087549071948"],["6498174084125901213873759898218160974051908795541230106887897711640594847880","23737220963556796876095213484495447354381015600849424867963333916925079500927"],["27822119407637279742994236183498737934987809461581630534425955088343798392440","24587592868678295724734229023601411147400138842233683952732477435161095303130"],["14832015813855114567522346577676531446271679467417590477707612013574780645744","13614930238653656933317900148120510874109713950959741998054290201854177982880"],["1304720832458465745121937980768501170770864890062331213959326308579402168910","17031527160988880340218866151197747427508287783013338184329682532458798747795"],["22128624440118352636428497766988900203298464977484525851631497637054307308654","20858694432401356153387624046279772336973303159728407369483667788117700754570"],["12176406463321406798927027069666318928585626685127649239034963521991177693519","23930454844809500196024476211868747470503327931929922520494723076273565429915"],["100674441784949883193509796323379695586137444546337113965408525759005798775","11275254440851136909915678984445921699389476955962489390320354800247707237391"],["20334793761952539659947296795125840936897839003062477132685259447681127708557","12932641031337887294709944347722144952908424469428702656829161924488902125609"],["14344833157952067837304399869040723990554237563727820900842264766674976580113","15731579266105312027378636902563520941197665940683197069544420422395015804386"],["7591762079476341186346668742687672329238957884195560908968824510783513816979","23238869924243076985964826090019971188251419263499525716980627657627347979906"],["15044643025361945396567269345982637922804473466233502397129046410255942684957","507695436062736205527520117178241666022147546909083960782176127434564936298"],["23334365732270644799657506347267860672718881645948501739975715269922857930331","2386326704247362348279656756776494849409075230739491451210702607601145445510"],["7331069130563171177258799331824258635859242525301230002879310897004753280632","16514398879752055642830680320263365235408957755285389056410328712398106339270"],["23140203137764154834561300558688079755169331359439464043727533571536483710577","28092328568087070017883481588555051702160666571728959898269093023801486660890"],["3147277733309767975879481318161784779209013908598980677277300148007951313392","7784408520801111979455822434726971930051194006926527893913948386739404040475"],["6115206457666929214731030778129609866194555987500855948475171621025601171084","8910068562334781750019556004264487533125135174283748392405579804909473772434"],["3560370239485758729852755086237957823414400725489282516528918626497411921169","15179729022391821692283711157690271426638321670432730868244724020929336065051"],["23373405751628183459133658971679178250331721011344797134240744107123381229380","12170285507945576671992199474163942097551463155988352459459284093896177598585"],["23544657098757885483090227212360349476027788742572124483026778397936558617469","24879339487454758744350295448016090583038215403719127743476205677455396382690"],["6344235874866815140353081247498335651201732294082642411799078683499338116804","5698519600381554862132115271194943606989111380785969200561737243601621863038"],["2496909255532650965401758700465827250932520824306506436021475559266718013587","3589629369597822286769805219627798567449112268291617853705208412975666283077"],["26859521966643250139098638903788309356459155901048635041846821360210974215755","1642624892925460638971840966188956123818671466488114364347274403633086675691"],["4592072195149715600516176779954299919591757025473744672184148260893471827371","3144876059268172879319405469404845859955703809901722553974813592400680032869"],["7961526104242601534347487276577647475813398733060552772794753092426058721273","5198784425505561306398984986613888607687660935583133808479841312844567699914"],["23358101587036155641774354322056018566773718794351117238149063733479808504567","6908597311889820442091268871279874104259206821095174646650995084139071851102"],["19033872431086762985790015956479935968632426197752537224387277861870160707442","7533057599232441489272146967275044361274086991061365136264634947568012735382"],["13488922165516123709483610803075947545374190451818643276338017820545361178250","15284364450295632869655392018057501283088630349583799952927295404993349957484"],["5601671997944265077485278614707167161694184680743801445220931335582691884411","23406310407418843619459508746208306860180901003476375307380336884958790808422"],["8543062478933533060616299849816899598599978475174766160028872311494370228201","17263107423555179971271305040801783305254957605872791559350792773303929467813"],["1862963209919432530773613794417874418313837623313522512135510968189931786595","4573577040453187639709528103082491223357053808471780284736197044534384557977"],["6815033353789860585039746143339752028247672060302393979050285373893286531004","21599374958643745066155776228615783286150215850170394544572418658237930591803"],["5379398766562559209507001296719174876911187428094700969032693523039935359906","14692656394830337198272195358795134096838501547458948520727218183362198240248"],["3136342090479703508465119888717251121505309457304839970204352399326685834706","27722690904554461475323366659745471294498863847140230065616384367111791655090"],["9987490135194441252654963143480842978305730465186663006098381446105775096453","11150123666694725857919574577545211039709669302166308728555088248188865278946"],["10487079315484282899986415396704338193933552365261182040302069804052443059367","753495737664057862397554134752982475998731869229227551494725486254726516375"],["20755519954860748429887583551189107107230159710448581992852640667347531852966","27681542969389108981761404330866836434692699033330853549610331945348023184630"],["12664564426092001271386969154419683153678656577644008418862541779716276191379","8764126069180287728305905282285369719009785706462373745901672392425294060774"],["14299820357151623987926983392231439322958831486569642023580570055216865231157","21538541423892044889897002952343531875883882890250080742623620811506433672944"],["18771678727087900521862071457487000738181883456696672530503911426341442532591","21517463150199543879276177034155515920432085217685080359285488051693305042075"],["19457734007021018495932386943316565293477392093265780182645024984569848784193","4516654066490143021141198040648479553397590417990354399064154191833195932726"],["21325652098805494467507850312328365725026420954643194018919202176666182247225","8132833626133066114833379894403612119039086169512894905758571507340206111335"],["23960482235534045955974780143797841165970456797205963992075231667064149139305","25739675087768923302384927677385714906069016539537566911241796599353552280587"],["6883464093356872437260367288701706993383800171677896519932873582092334778455","16032776851531336521608470148505275057275141611945589207916202185790637512119"],["25287655590294939193940273927447259570873895379157863527602762216468288877725","23146820180719946854949393180085968340636141940360318394433849470283078340080"],["23671446879018069405617951357076833057033532084558941302536714447853530048752","905848779647391541986884586803000462886651428942484787376697749431625491425"],["428478610238916035938182474822086338863078912844020785090726327903832687567","8406638337046138702068925820195852867317126923460223704374780947891690998922"],["19617435924281830301972889028353346660878312226138273906175713875102520841532","28505446037703199357302748277980568678101009027253936357252102820952096080397"],["18082024549569248316024248267866582924928203363588990231465881086961175000781","15540330014945054807187739341144470742539757168944914792659939557290614366074"],["1462503947818116580479306501868336711127651944475775007484714016536346363013","6800485640441193646902333675341150684759736721364403477452602068751101504106"],["26294300735292000239435125176297556110507926390180378979325770196253293582251","28815844383667827859328260603563074313027400660701084552475721393477184720109"],["20115738111144605323225385288343457473212470016961298826460755400229990541844","27217006000428209923973195193386685798512598389489883333852366161042457108782"],["5962353887193438652512262014095753310261422363587987952515109620653352439420","5455768184543588468803153735495517816094742416921328784750616553894080327952"],["25834151419269765385205306803511102186759004447532660430966063828996365587259","12167961967791770932692529314768690629934134178787842359623711127066531824684"],["25534496415133088184772920651723186321820421239156229363683133669643310960841","2871930792072387012700734508498358140248273246931217781318844673406202448265"],["20323319014068893487657131788650168610760081066158817587678241500914573116218","10318557878482394479893573908988501115559342837838255438100938879069140627353"],["15197938992375255159166223067928929691383185377243438739581137216479342865515","4038035952044406014559820647950011511957257832324908673320248856617564502089"],["1452617944848450245101458736364670840555226115316177468163137908034493684042","10143746794083758984760974536433856097375205334524622108645262572371086591671"],["27230939627922477240847284259309383398344133817141372887966668129765905595673","23680258164369205117032773799555347594829468075505138286505582927343930422531"],["22145994988713105328998405412450347837520668744319904838578324483471098749690","9141585327706347915082470075423680606799279877554780017608050819724244792771"],["7594316381674747595594824192980427357622214868916434271292856276080739996752","15355237956095893685193508591359009504125351512482610850825324014243256525758"],["28528747841528143271262675580423229457027971368143736374325365399525384034889","7589815831183020032989022831972804858117173123578276110423595363882708756472"],["17322495738418108981973303435191173666211648201116599747101076757811212175037","6334644010177487005572119520936860368756088222950870987877997253707640759091"],["12545710832154301141142657024587221773038991642166201440985856965990639217645","10375327504376710966825883016736440459557339156345861161416385110981974125218"],["18598938162906496702692498160765575308652496766170327691007568084133955479266","14761913138877492804541632488110269332000654645069596202687312430949740177270"],["7245337295307321060433783938158767402205723697388407645539885111730855633375","24746760627913830038986640449596351403302151387848850996141902237351459144684"],["21223705646311363826378122354541095514495861117235766686889916739206310046899","15420936398803244811133349748855046081327855960943570504792497044506552966013"],["11936996220393201147327163565461424240324500176757851415001351815677352843729","15917627114374432421315030887291557613627952085695391611659776796605734030021"],["17549661182539479343849370762061559248243177467315900415743245586615693413657","21197315168263775992628269284855873762344024329170715917494462456519008261789"],["19132029176918700164620133823567736831144988059862217756516138028327341536348","5258646901570482812899669052557639555326144666109185011574563841401966204142"],["6003929384728643347692591550439199496741248575602955311341598065026559186368","9930330494908651942427588693022289967566005809235217772138359459398443861513"],["3034500676463246651256913061975263496754706819733516867151613064429411155803","27399295523946480504507472649182428751181060514953067783806989770559765542971"],["19393320041155721725770689409405661250901665072358350579214072344700345918549","22524543200738207301231746479981833784388967127158518045852017407606856621072"],["24508263947297048056864385948070159457323183219545789119613565379061050832131","5661633181533666110093869031574452103593415671146637780689404461261737164577"],["24402603209556386162760480207573026075914746586774111510850212857026479381335","25550143946902200353368496391007754152938379737322512667278663553891952113499"],["1309128772210654759986565177339439815132592022385583702802639079098919643120","28641359107251841572759261489498445460192354235495130801992133158714036922531"],["21610237552046760590690453752506823622074474321442221916382631935235423615590","5934776294344083685756074813497371775646713400205100674679091631578936949965"],["4465365045681290895991898198532326138358940871811334910136580877461216201770","26978129731966455235407394356064122262535800282665087037710996252106182887840"],["6881614330957871465848022293536335320119631936046399530301848672978848137931","18711588882831847196948618056461371989593838324306488796942581779355737406839"],["1242688129054002761190380235428204319033495992793640969241437556265851877067","1931447729061655595946814596889783844641524767397328994729893017572122878123"],["25500329526651172265374716486121855191969180893202425266689650654004035234704","1769981388899406175437693683279326601609967900008922472533625376069430550181"],["18257446284972367066440233326618477158340326018170043088068681806129489058547","3813624527229256238465614657934149866411852292397604762858061861485679402239"],["13063978065016263810515892847343861704581860888600381119953287946615972161326","19493732824111395340351947784003490770827725309731039416224336791956015230182"],["20823738375120866958708853569655551182520311303312811539242541424578089224905","17872301576893471844161471435751024546826504587050129528604055264577353133262"],["21121682654993148373828372418958655098126893132912930408203698172258367236450","28791985585239259660490871762811990012245852524533776866801876719529892812310"],["647400415706612462682194753778504679216366869494946655585422463298666954776","13067335347008395337439159623315404607947201099125123209282734466702726990597"],["12909572129494852915047292760659403480849621320337269400155135980722177530544","17719997539819506166383881775916945627939310738676677524025107381640293512778"],["9740662053853284428245352313757004904302939251190482580847028768921921265318","884190585921411746026865253288889443037382891322459126783133875709937512499"],["9036413462841081215240916016839734795068241972883142430232986754874491217757","26221213242543599171235092193390710707377551965023617444493865312581761351771"],["588842807675903119596345241207430915187654149467316842151226234763409578498","25518267182870801045582387583014946880104918463118587318666909140866176802661"],["25649026350711405475175846442242605686589099118877355166595940110588618201162","10665838524365092945374936499432892104559151939069527491596574567184220252119"],["16550451607120683462640117711421666494891998010816407786002776184816095894016","7539237531136684326252383159244764084271530285550493429861920541973180209730"],["4952132240465369466323462164942223141801008237651683701348486853648382034910","23204666145438142213284867857056954950800807398737052119268487134092822806151"],["19386593379720918497886175454444429928427508355909095913621804793021183806348","3658255563637738325064655925171193482203990782633314253323338905090001336303"],["10416209336972087718974098881649983163598030626955375051109014319310748531384","25965108808102318933687565023043156248340809788287142049621813676265282145266"],["4889681709471091624945610152564949827778835194266748330684950061079370546927","7502991777757956964445055425648258600209509204088447450570380910423273477934"],["13535528118663521429857472838612810994732250497653232799233236272959914571620","24326004798476853935458917177377956476922516776808274633079509853613954523136"],["7230058588007745153683542995107047403525448604149855301746411446255779736087","11192294577826649673000234920564743449376610058192397286705191255071595800263"],["7224934152126249561186221630376723448684372102577130178236087844859349907871","13676906208887802283637986108592948441497393127873791069085323693289017612358"],["27594840236565259935178517962440449919918093003344729908397028408895004343545","5053552722611821031663381337296301560808545817327990715726751268047894935993"],["24187607467049603186539484576132753849083531153461579485040370661832716270706","25599372028174856878043871441007129651750115123112095981060391346120561414653"],["1165879684546518180130649521000994308163660162042035936311577484944907957298","28567586826928813463432022206699346096084286843625448603923168361502216099521"],["23324251179174959895530874265070632855291234747615062708693907170329270077102","15577778250423103853066342385751732793130931694316472082209509640864709648525"],["11615881805554467894515723348595813948526529898612763669042782854116810402647","27283112999591665348015068217614865048591900289678711030604762909677762632557"],["15789623810226701489637178082303873707391247372644948546341313875705439646472","794836337214865436296454342378991339640799222303817319316156145246201507667"],["3398219465028635737758443311265993026640126810030434900891109239046060755601","27832431359541017073135592918866343209111064967529244146171618110489468382250"],["21084165177925538108103905879891781009256915689699539701936203918327454684697","27974667532152216260448341933641321724319002628020034799864482934076906069845"],["19128155151012503557232659489051083153468359752747534754562000805568489332773","28146561414376768293928265963951988697574699139827457794475052038918194176419"],["18680826875224218547492907561284550407438253592717794248593457379100504316895","21923115522626457583565460532196106168105626355573741436796548542352706388082"],["21082460235674802429488653546517152551703545371545742583934452780766421084746","27168580619106742380232996639365468591453712946247929461699240890345974923083"],["17099804683000219235914453262441367317146548735345294190811019807879978741563","16590261386097401058873218337556468013722853288468861770406033227397495212619"],["22239771324986073753899020710243242331100301793687295714631120103419186818438","15909385987981354511466620583060842888572258272444544293217466187216344799021"],["19316916537647167104620334339960424222972967151080022298082669338268260682022","24639526353004666891127150941463236037297056234193706836213416474931426730430"],["9606815970911057039688836926968830618904245837006207892470460817498898990159","28928970608822515965186175052602654933253358394562902526778696301518592668525"],["22859727888321626870493951841236846140067723095963573495844504333729302891921","10632893619425285384110143078447358265674163110579435250033766574854844947885"],["10952092606620461544886576465554880876704077600766363903619470274435125034383","15129838908798168358153167498507755567956963350457084595800415300851282583361"],["1538651639949920536059513367168547971014564879295756428250762617958623334578","16162156350364789206798832707891357017192504368305553574196834173212775392570"],["18656486376931861897882698341394040769851140967000573893447590435983904139387","28535656939179557660131472933466592042730540679252720568007595475814797417165"],["9954719463604124722287648927760691893224771320902143568594315382576975809439","224768381950204536656983671785452915429393364143358478528433466175634015719"],["8757969716840692242487332156470246405594561488866773236893746953339676787743","20288891210783961128474159493993799974883026066551511982821560591751177627854"],["23061396641557608134813979380121095427316810424202621247336761041478144013653","22833575150190180289672901621319558379828122994996554124220649657099346672180"],["3163700846921389393157137463448426753476343091544240957562705968172942977335","23853288305414953818164541709130979359577553153678596320699370180193644406143"],["26307961699517240070100218260793059879414656559123250922938352876680732339844","24846156805610319013024028948472851947829169144933763708349138114329387641340"],["13268503802745294857906934280532834677244340888943089667128859248103364977844","27307340587915983488257454092547195518979221306571305037031349213440207284566"],["28164796845264755994477755756231477285721893129029931847472486807767711737274","6747402377429096547928571867284007652846656424782471023179997003429005929025"],["12972751038083957553956690641711559163132426770818797153682613704499185039147","3613763759379403894889300895761804272570094770931389356219689910887134086954"],["13943059967584589887004744852351776467645745458326979856642878576708732481282","22800652433718760626196889472714265910940972446617619146186893389714523913496"],["3313533456981375827102467514862125213047102331738770656567031604820946024219","6398038406205332025369954940101479741572636035744654619778046003192515620513"],["4413231195642220360765398762176955323369002460258372400787171921636143774677","26977954676690918451287180916927611557649236935101484159197562421235640091395"],["3109674437152405380440904468531928206981438912077211873714831581206701854840","27886813156700303622830645810277596065033831200186810011787265348249069809504"],["19623619456409187894369607288590764939420290497757576293709587832774641559137","11651464359105067558078325853481815172244882540358439413603359845941941270732"],["23838442142985298927269332038445036554272375690021425538345337388230213813406","2631641390725878610110013081792705842623564925233442057113504963243889501244"],["21958763789748169456823565827135865010170121130886685294903279747880200067040","5423702710125437568664956033307820008957535876530224055995588654720951422237"],["4538716847027224610674601154889900901052687305162381930807269392838931903224","27446028988865399301697384160363143912290317153097487650899864915392023118812"],["28929991226255014955106108778470048333800614507493250557343329117681091056389","20857254083813997345132281987536048693641473280302087725172301899813280955182"],["8964616370171473351922229028459385367747443494755496828866605656512338696498","27472394108344309012872949887969897085314533154372377690581363395017924235029"],["9852804566205879619103247758640031438990783725771439333571638532607478938926","2011145206993690426491675345289617332243023213370438030304203026491609098612"],["6549928980456851572398723882865327165649670126786725096698100471903831379369","3533192462290889714882630482731557656213098336411396409178241809741828540753"],["12126496825393922477643685224543294422941050316685954229284987811736076282183","13311911438006353457279300712242061278046924271943719321797046080312910336968"],["25902597805417431258845194253012884190528353417964523105317777991977836736161","5195699011525378338533579482995151412959225879123216531823546160271519365025"],["25857698961140010149666750187779879620833724616815666456609781668019129876419","17407102191634239545978067448057689056697733125345222926168252978018017318128"],["13987334832716808803466864860407932845475178034302095223615349353986551382475","13748334138950376461658264382584413040925796790538322262714522254032793141090"],["15182072667819985673371743940626392783070116458831646943385918472279295642831","4301959410827777270804071431573554802767282414820370713812311056692409867133"],["5322125048872456781493843157158335095588521862255005605535464320852436702957","10694453616417667917552518292260809145051617395528242771627050709953944126294"],["20916695064811486914931469069039740744235904281241302148325221910991929399334","28836733976931104757819721217147576626624774147770165266586814242473259557073"],["18488183016647888635489700853917012462656407996839335140462338448912892380380","26351255935329035103977373709158763665053896361659923216143567539085130250426"],["17134324926829356300079184602370816035907893172798287309946298142320780236174","24351010736976685244247678309082263593755810683787326507612409904803398984997"],["26112398207726918675780721100437727786815846717882610299976316852290000104113","21374590636812111403817329127738136510294827634079473759913031768868976704943"],["7545166491261977365471430043303007762177477422529075988339759172635724667128","16584178462245951141437971522746244818265204314370478520066109877601019401536"],["17812522538985205030897658471914150445583727350222136340252059312511516599597","14910923284825260027808425656775102581146232846251588148943901849062756099555"],["28071802832263634545505288159800243949051702620561387951576337688850301680442","3912262819834986748432401251042984061822836694243238465149498184078351058201"],["17558340976218820434402794115953825051363750800472904242290049815145739065940","18650199852367124689780909099974273903854154579055707071174511154120774400492"],["24818588315030238592561379771482279149973580901218314309890331413303445178186","18595919262865370708645438471877051916281222302505721383806674933992236030320"],["5499755293980739075221643426998267727368391129101400633988143144163515724448","14072578110326759475450201082041109593134510226669058010194106217116719692638"],["28050481248920156416031627175823684759195836508562056559080646071990612282903","22952878699374429731540434837698814128379914705372662441669387957928973278935"],["2383794534698674255617553350577105133457591153687763976137673447766393002387","13865356644912380208409998786850165587857591341697664349704224138626640950231"],["17229848062874060379456050089748372663021791849538906545079109624546578906621","23808120626940173271670510115514306456423454919441929585820768261976865314531"],["2989852607625950036589624022556867729556000128375097407066051382010475342239","27979051232064233413329658266230770865315474139642847233418303490488001124702"],["1509517508007533721344094034551236464657326561690766121015756878297176262168","21048536621781485561090567602954612341181421250882532301046020294730816778064"],["17145585389136273328691244418071083382559472801025621223689414886036092288228","17282430540412485441001925994636201586958248592363569445704780896561168521396"],["15492407660781062925723651850652304528874895446554586047289627843387740399282","2008715606277298255634210686171718111692966338294202612706758313716601826619"],["14516708736826221295088841296703914890716332112751758355212284968182882414869","12234089849149615308209923860157896734143180032721147071935051494021461622778"],["4884151534122296127867772896326064368117869614630286128799698443213470596696","13653747010514028175808923826353304782806111318952814484956830093271060306621"],["14474478893662255597188092841899908641383152278874215289432524845436594376815","17530771211834705966259515390287289857737920654747375326168695812456080720190"],["15108023799306056291972912275905690261146778650529132840648768669035226867880","28405801048664304319315472397741344875530588844562212126106939697720196538583"],["24515688539961480684357217575676942826184517009960201113243172312567920751479","8998759669275159632373183978675570664405599011369590002635505697317998377367"],["13255664922301279338733659813699265448742808641662334109336944052124137554417","16927054789560905741128853463222305547297925147393365005508706399306301402379"],["292719206054081171428690470509553776405390379306024217582179083530112008103","22538802537399478775881789233191943316765718476061729881027576817741027896813"],["24656954811766279579774145809528924649828733422246448445622491405490282612786","1399165701484290019828014932947544309676977891952360301985850402736496670717"],["6855143334117258540141804618171569427175895423061677901734333256279444189928","24371423314782260683157398259835649709911172586906158130453178914435257277103"],["24318869469628053019093237595868375387843843848860842656723886713127374520711","11297060782686674810580411495607107079599757109092496281166482032088371674953"],["27182746142338583343774196486001960651593324902128281776551696709857012089035","16885658409892683306264779440861532176145114482084271200106806723517376755221"],["4037272189775904071126802479937822943056681846610579831315785888169926364488","26043711698373098027107338706810198144580563955376800984567708561150293888270"],["14864090460878957007947852273251656347001554457038908744668107026891204203898","13944162110414216511980432418090009212834247776585311449602454044230733055305"],["4239446888403960597342333786092136171187831791398869371562357801035606877309","12675687299419970688246694020528027656912854356367166234266946490089319602745"],["12391492123445835718457516045471088168505540999925510715636072635754633410710","18046229892987870997014176147341884820319227552064095802432692908300199423580"],["8642803918693644350393817183324476826177216676174520156143237492135528408727","27093694579533317225334357702545458702046182069662823924143814946787488176821"],["8205041804964867691138662459784214893511980513160709168323443047446948687064","23513983684143642213111375332938987843698178826261277311526162680880095594268"],["6119582505944724537986300451210641280384773093400787703972203821462363109469","2381679739091857759630197312122864664097587984981008403401100000896254117125"],["8884124209878399919335749477760219727187287675117591404976004072490876932497","8509450743580509120954123685312752723527244045912697976336615844669005568476"],["4621969202202583769480612853215330231230872579826515730613907510289363059010","13447574070511147698447550895658289400519177587383972197614494731584696650186"],["15195219832030429271774693822686604747680652074031318609179931651692230480775","22220735154761795742912680979562497118882415236934355270555069470857053462734"],["16844637957459218293431829459057679906649361117437610140100250989308283642350","13246252780505418621903727228355285409550444567207793448658896237270874220761"],["27086192006307568670193301789503623276274437641596415924045309037961832659257","1694002617436392690647423569515588069539297421422513892260489081642918232156"],["19886090367478248937544998822598615122600819830198860208465492980507650515773","12439065394132524026837892464839982247324616063308995658552079937267901421029"],["9656254886237225191075776637877449306627601576435349605025248583315295985774","23927019316987197455002030532925458320468208081332522301859570856758265510053"],["7903881497673875755831155763196117697170533934115228307934340476395139101898","9471835529794852077899609805449189731726961172105586606887846958699807397915"],["20414233862789805462066345903294770208564946269049155333080498532021691153514","20112703731929125435330400999333009090269053504159209334011212857780419646659"],["2441342864945764740454618686833156628996288578310399168196452059479920730729","24198178392245643927879678642098184697852184307454255715495225753010001825545"],["8689570700033357364738627325226026154575879784175107236932517419229481227404","23212660576330111108014333721856787969753557340633934883332435058241886975794"],["20102717000432700132471253275738254973062717312502327572572809671062538481716","19684408731631026457839519542151677020006195350168368137527905769860458870658"],["2450378733010646295431462392201297797210234781406656794051584265157333090076","8117531131621846979434769297678114707240735562178368119200958860960543040020"],["19473433565884303653697896140466858377134817558223277341445190737435524902880","22188504393711848841567468239525672194384939960349448177650049484679113513565"],["24986480563139313558324532720897307931856449855544768573252624090412199576390","26548115983309246999936296128272435141010969677299116108290671202028664535030"],["18314921475065184906057254980045664492817129761562855515164811432800709086524","13046844399163351005650637662061856283181552994271591418384467028621369352496"],["5625485886683839609555964265714340478467932370743682255912009227418009590745","2533216859299029351209912982044848268720256984085801285887205427214997044811"],["455562857891135954691677151661759534295615448693552981723157714436202788749","3273308730370515786076672623609661856412607424212173249061053156412840303681"],["18678658826899704275659115905325675605421561877734308112313672137450189098826","24077245628235465298374813961091202068218227403455092252014117039648755881668"],["17947910555766526180502990284450552209538032198075801265808868902002047649259","23977810276230710198959021426735343896416425000505330150694175623654351863618"],["16283962691407208566356906596315773646888440227387552129893796362459380338584","5245728493344732846439656055370746678505961988557568074550986859072358687529"],["15567393481792196287244024607811136852108721522077374331240945532144797145190","3540166349604703085692935798179158249583142398771629353146790535440679493542"],["14743653011821617295708948350008361928748058957576607812310178269377516722605","17824678582755295870603804804081486096357979811653308630566290652557461433472"],["7921988352609016285025544930713944093258697133484856995218585088602878882565","19831403759236616302419978643728520011029086316880136640746552994615169513822"],["1462757897821409687297741010337035525706080356282947839147573232581752288084","3107307654430148954687453394898535635110882097024345915636426732754857077409"],["443670467184568501129581188438381846610535160418761600189742310402947348850","4682260587068961657767393950171267132049457443926193725031379090659303657663"],["6607810175933086659158618076511223795167223289023140646699615813714729945937","11077345211211686805895956430526865494581267724722917358976309668603411467437"],["9088178486859901637666869462034223318085406034904302494316759372093368789986","15170201595999382312605679965995532017760673766906510413145808077696819386783"],["19063612509435417256580568765471198357589097037610443030039445825590203366853","18369600211536135805045536084191464920321152319253277695857696208564018073524"],["2292717656714485475338414721035500365730305255474144368727038314881134571722","16817807514072681703043087368024465730763492847802704214251979598607768261403"],["15775661094267629665568616964016251398192976360839924175725505696200594617743","15141864317501737203905071680679678423252311236912590714188875824765820818197"],["20158440366214752668289245361918094653244892567045449252114196693937870972342","24173553716717951262680404007414327264671812430533991231503602626888356327111"],["15492612228520344078345848648372833983185532733985438445941691642531726698827","420595365794538025865092897840495595951796716095412803710161901586928547173"],["25065575681672662238752057663803344708321386647458000364614682529829151061696","6705689552822011986984331702825641169608458649504112821731870964608462986154"],["17955294382060046503584187173160476331576037936905896684209807404381437363142","13688998801304105791237032060976907260174143828892954852761778909571672168691"],["38065663989852179121557584472060517562080899591757781402374274623776968592","25972769940310356363606255375734721970973224900048465389083803763186192157646"],["12876937484709437941232809157905773652899178130848706770703826169901608429086","20567570111089616876351195685202605037460163190404017091593060291857213707941"],["28325665176938979942898879706755961071204936268767229912922922540437718508503","21540267518670875372515616144400969723956209014400492840428669277541250284818"],["14320902413121148116780570841911140922281810528357902110605172391044366894898","18969168252523941421817565779921336489603621680425213449321094544960654678373"],["17784200040668446770230184482246308131082835815488236531010681003733718508762","22384122395763057658248685651182714543341518747869445329078451957720994353286"],["18703711184761820902044024831588117209928989724866484020220238132671720973934","6637079691703209286072445209488144919365980731978433704663152062423493590862"],["23566001127513003753681577180926319721298025216324620516301974175121458528777","12108282174056022193827600850732139421211122793037817072483570188182066747971"],["23341412198017741454373828195407191589247985415326222785861086043134733264337","12531591298362820205924204866792488962588741475306889773943399910697481884013"],["28274681166251437570520974345732198092045120960109095558442030515022241297319","21669537696717256584692572495175047053420160468302396480120365084039628746773"],["15961321582811193986059337662349532022695947088333618106384093942345850242081","25854445587177805435611001916939259934425203565224290081940272541493994231565"],["6998770741480076683482229097187777392112650524506140256979855045048173168119","28291108523925628106803270645441615285513428270493332080358117266245456554975"],["17202377050103707285385108036841216766262275092329301175745115470790851175567","2680493024128510898897643012202146599501914842974882318417345733773380041313"],["2645419814752690048923188669213624959119597959927255846758571203894718843236","661820180418323271855619791143122679473400874423843445320713824702710592143"],["27217828666674426497777657802578246073965743372981335953991541138035551929912","17797699672447517580175817551345118725453068509087544079754275523365690702989"],["588036862434981371450615954237402437463999838133669189364752259234316806070","12144680079232926905497293975681432647296347491639883495812243581103224366172"],["17919575620476976023745170095078958830712030344725151041619628513864728132180","17437934305493530442809910815614603240069211946429238333605030369809448054696"],["14753876506799572256309276710381501704799172866999664346349403308695472176906","2010225274655722923597510579080444385105865008616684796569229029031834211784"],["11404046534875754528857609429819256324670990549715073998613820139306885166189","3701259702039861408499882915426205489467632701274215064449424985503620719924"],["26176014527270825907744015545184261848468618975497281855577573660343323086718","7068564206158338602132053000266698584703557940277925255593533529013512577516"],["5884817278551981541668648845626146722448442481197039110559082087884561562666","8794098773834695284023790343047534471751878593229415888470308869103703806387"],["18189463836796670556973202981724069363021573425852947156104051588940326376185","17991177410679431885143857520323591928966703172653520156503104933675321337969"],["28879184074815209400877546615314368452667524561281473900322215703017376509993","11693032510186698688576604099538663806002460885974561569767148810238032310196"],["11842568835096499105489642018173387877790225903897962718329363659790101601630","10967242138657926070977321863282898917195737335804349262726381771034534473683"],["9565882981402309625219786676775726935444013628006173625163859360988204036525","22590852863884797843129673531659155302619048826628548457780228276982903931238"],["28611061717286073364579754703174841567877547095859641991753126615358669993956","8226643180359813437862924461389644574104589129273400965293197811104212441096"],["13403732220756404201970881162263226392882666098320533390373314095687274992364","11388338533671125002235443259144387932122030394459755030179867610929758337333"],["26598390245316522547433094904229277615356590890315335030421373232558611141334","11786248406357978329728767194096734523521717132469934538442753470460485739191"],["4149235352097480135815995854388427079838216960609086390994595364945889002879","8226304399834490753391677767576822713089363118575292618303400645930898043484"],["1408322943257180007035543270434755599102352998446821759165940825793266028453","27383316187314581417463291558052719038106989708042124746032406509452359130350"],["8656815842826691528635621434953140195323866193639163593820411135410784520519","25191145568097627966150981883892699480730502678834675219325577637110075208714"],["16624223618578039562291517199893230204166549023201581570915851539900333995472","4682127011095814092501825622322303993016868215596182358990740712714264524017"],["13759058134653095438562942858538753915041976733922012723386002848683103729817","6220718890671595241553895910320671158607060329917961186725397259363815025355"],["12799627605905548365116009767673145857982585298853242485372295852920263143937","5543966476389452067476863201490716908074835066096991730537537732894562875454"],["6190646912915062087041331153820019527254522022157149277128681002372497929770","933809811055412535429046188301969000748127142562761645920843903191351239682"],["26340510453002050332780501863254822291277720282545848326111782533621139807206","6992643801583154395558218130512859636789290853557362758228526798619845572908"],["13143194662508999379761138827478905454067344201358893141936520216718185061997","20394296150823570931711504881639370671445571676457087490162654076980589194381"],["7653824030820976862500305279053977737552910659973167854938130099386077869506","27390083590199967840196878700186535101942662323156171355875004711354531688212"],["3511797634229026361119997477786505674981942459854187538669296333832325395669","21230309940512292814488773739165043174444321934040331391503053476035427161235"],["22498714435162594935659975540178198628574429350913380564841366234833714517724","20287017902445407647766841733861801144199245538360210180278759306404685925847"],["2201798985254803251118178849010182462311557742872468887891120653222554109179","1409304649927643623267398384208662579749306075694714948851935170864286876867"],["7189616959309493516947485270518445410052118659187284999223201152368737437138","8513484412863853424483969766169278887362852936614828576651263933823132104846"],["5216824040577175974823677965500039780468786286054483764923343104746117945967","5609835931003791914514005463808368055860643242812435715807243975025229134466"],["17177147699767859326504800418362870271803489054151851632224193590917883671458","6434690817846644314504332257560685940804002951162461761242420459919147290257"],["7422155407965273476806846911693576202460032537546863149035010727503228348603","25102242825987348918500737764531318990523624491819272873866093283668904696297"],["22545829935598023092801332931744430765062750680127531572938651756953068524831","9472644743336265125720467457770538828529085547531788374928258428597180566795"],["12135623865798534854342701317668394548105286957113376540579271587318747034226","5770628681661943329123257580257032384308650044304405018131727984954452545378"],["13230518478609051513305569066070994097625042738356014687163487427376043938622","26131712152930116072985979020748155769687333564361814864081833839731421860343"],["20293156222703598715973039956655089821748758502333735182016762334309907505346","22600900022109028680478483406080357078278340274645284066427373814042225298943"],["14423262558958827750839911785649732589199708307453691614452685185128288791505","25820710139012098787655550211475358144056789711465535580758916101002024135360"],["20977883084107507520857989344462996902171005341180784983570021035863669273435","5320017377852893539248266389045865338356461623071433014619688016938477230016"],["2967620605104154557270772498821940467865654870230674110169541426884617637857","20775384937388663220483125976896062019684802957721762564483508575726087243220"],["267531944125991361478739842009888510096715190135264513010757051033416621959","10781893572610839261713763392939267698857003772525237670424213399595507985756"],["12170067838945380224136965810162582406335713676757291009181157788475919273846","6338439650191997282937880327504751925467690451294457458124029415264101298134"],["2723439623074710973769619014269337073152265030830136473328485762934834504479","26343921545865100263125804496541459268456885176577460814458518385340247038397"],["22896661278875841788150424189388616195727843781448314416367544212971382181392","13043722496975319117745150785560151231625753020801961371219351668816743792283"],["16169221450298810252316482815006898127001887067755504461168469188410461714044","26878648889978923674519290930008611882685326731828257936846923806259386498734"],["7285204119055864750918575521514077849613351596002549632452937248600986641380","6695741847980981884323039492391586373188264312522762815218182557659692636962"],["3533580217440159430098797314086672981413251232964033031672692481317005865008","9849588449070809390766609893742479063787131723939051039262181152850262979058"],["10545172469475595246709676470078980974394762892858201868139092179943369634280","13575022545185100789781314289131894406112566166378290326885813758598895575433"],["17617094791055831365642875677521666693383884243689099006116437129276110838083","19459329116713987186906784546694544724129279595442750061078179845458271604151"],["18505901193788262596260477383841558467995110346135188028500128397752644512766","3885203426961517391833179381527528887247968081632792510343873120993055030557"],["15451921677195481552026698385921400075676347913837954653750357207955848302151","16546881365927464069118519693234046504460937915188905462525205558767571538615"],["917601467398977106690295853562238565634542682752213217170874291262395780764","23532018603587578946924874083576802203377004152279492850890582650666238350582"],["6815642108954637754970501180144594176411703233481435940068824514793807859487","23349702579902833772116486029507820727404108563993572906448371928441484086729"],["14471493065084477820408299772932172131799753252630257072123152019287587635610","15719077858313272157098119664794796263363185084585735116347855992106167077595"],["11068092285357092230536828450384524663602397275689190350391848646813972892623","24108781209293479320823955398044454685142857168761556844482193076839588067585"],["2180891050668977094986923090216447199319588176107274847940790683369886115805","13560212533608245406822849770247353385866780712559253482806867246504119285176"],["26358844684505293969230757233246519531279987909655219205887767830475097127920","15359780062560265575466251158282344134069982501192044128108038232934189212999"],["17831680478590785816044577427851496913851295059165304469992704679749051360730","3373264558241812444580533957857521929351195220732416093339103173701887801108"],["5186568290823504249944840814739002250874162023116377896675947362245647616697","17484276633856159836245615541197914627247034496690349888981964825518508833268"],["22521739859549236975109599161496630455704162227947818702338900919020069075636","17119527329536205976100523293747408815911858614065427892502058637241410491465"],["23376002024486953627394781223233234629957016167344561100928922672163488335641","26798061302064349069901766375404779639764746339832070832257434045291724986309"],["13029341428829244213863820169147801287079789214841110970462428294709936523728","12050205965880711439012879782373431342622318030959094731641769502494676687636"],["20572325710197971507316976011348506953515421528520415525991641982279648466974","4661313612927330852900483487226825676363900350399788282197616663483296183794"],["18495837521791998459755857423580464592744516051487472906601055542764400370594","26465740872342496812309118776317962518680569559455618834280069113104657310801"],["13283264942577974796194835281106497760698841671381562723898590303979782724172","3016665089447772684427932297805825817466420621766506857163042327901473287214"],["20352668393458223392264087036249046421192546117403780546813606272856644249768","5452624164719184810251275622918081424495840015319567755119383497405673343079"],["15198742993141831665350227490133065527633720554109601955117864928211647892635","16204302573139445183358862926421508977365326603157272833019006645148162922893"],["9154382713631267324669046880637128060129053067643990674724589017261440416297","18532207383839209774054012438640548767250498523915441800081141919223747046770"],["22703960629128455415386885735172516855851326541024533410213055048548876358263","2110732927468855925652879587650293652232241301132273952919528949203549613043"],["1251843964322056672731464124330750359177822486349186393493011224941368798758","27469779623000824181657080262435359183557818371842878134082134383262465122581"],["12288449175434888075239100436794701854785610285807458657846285624887934561716","4525006211958520367411553303706031983463008901199846213142600496905335550782"],["16267846541451084680697550880536800209472138246954142449490353502548121974021","1891820711316328917351551014685385936219341753408940688654224565695502684794"],["1944085510116210891113806647150296827935343355834914618358305930465593388178","25601185246347012359402942265882713327749791321060194922874999309366325001193"],["2332274680104043942643748382954532996219335969745634437603439288454885490261","716078245119681165690846265351478451967562603626013402859958476188872149815"],["11806912987847158610803156539012587695562664865516296704090035637053165768634","19427495912065736349624666071831225984829173786676124198043049760387007201305"],["5855406689284188182482094984457474555534678389877341778516178370381876153429","23961170187923913751484989942370118727774715174950154669025624581520162485153"],["23204665464994842796384198231311699901251734502677365981134129653625850409202","12578641514589712787352685094324287910435347743978396907434572691537341823042"],["12194686398263754602678073071511358298830317194799701695723646338031595998266","12628639220607382812783145117066215446304911542577306147850488261300387935765"],["12235080786273399970196687077346286073040563060290492254643926717819257182050","2322828538118165484838726473156506273909809971953085441176315015795678306108"],["17674530025829795528617981846785137672739829995610465811885408994649995978986","11259255662996338945207577530452887588530365921871796529393019942802167470428"],["14158571904995274017213441038195291461656728883078292985486209765977189384241","13037759789978062548582667866845159190834641497965610200188983283061676921620"],["15829786248906282892795059497755424712365980179292637403784162449806449207832","12314905861483049360676480653793650196506345857319001550180069148005959127519"],["13023214750866715486931851355260489447094567358323918414863402422394355368100","2444368246287063440959186212279233264607620526241516689337719682668166923482"],["12453552474625637358808761052899065634909535726190948721672082907545077807281","15113250805622541818847579627605434094984978873233482383298442152652877797444"],["3487855066654825714229350054779995781763524265665593953755588026452079927469","18332978628905666517797649274495448369997236651750542996780312931463211484737"],["20011218463647295511076267266744103462654739608079050647001834440265831114370","26662241172343770982171694733191630244635974694897462937713435976587641619024"],["13660649430797895127946527038004430349422084201677924380591873386344719022769","12223874926104512764517982447596784144114467819077231126890018896746865949787"],["11964597769820411121163738541655376144527699067376713221222875577027409757967","16995433808215545323097451694347978304302198312524343051593810470076617163097"],["3991233181264580923792250539421047528420605159889582293338265652411140367475","25704937558150186778680843435324170224499361475478807476739553733626056807412"],["24451982527397085401397024405999234835267484143679352645257634414959680469988","23605895123651936590765092305401162491045159373397523852469702774847391811747"],["21032692268775498888790494666067162871164555106121593698762877504322784133863","9552294587616178319166718462975110506752935458232652832290027969582205697273"],["8350567376928478111875879984772621487424794809206895779846889397792928463282","18348324016765748187987535539111957390401097395721870804981804520933111877402"],["6169732321472449345134236749512940196875074238642537203172138040166818198016","7412467393211534629388131242338552267089419956196900855903416263910864623305"],["24235085664517666503209893547757486539881720672930470320463230138258608885984","2262463864632134802492230754332752442745188359163345133939042220777266233620"],["13206808933080068100075818000943000706473052755140172719092642256919293901669","5971962317279848993538177295913580033248079808849125323770464588344237721925"],["7555621506491318643665006902452357724796152209323993972502222401829001788523","22081921405386597154898724775686158433890895372662973072055351756181346633116"],["4155672480359825725181086502861272592550805047183636625274974769146677178604","28641578317322344313888576136449723084848932095190024094711101717507336981436"],["28715097522259387752489147598541153586292052598267930078394869936583187592979","3917363651285798069290782860348160972146317195754181604645608087079451032930"],["19015443872589756547954946582543812548017987358219568457586791976948825434860","4860146619930264650515690207547468431576584704294339108909486235857723906203"],["14603032449754237723256124154256788763010859971312088061461946507910062393247","22432888889390507079863607967209311982104340887058763607695922293011648325145"],["9165189262801499005270998770439727357133044584557503305530075158358426324150","11428145317638006054965795008691467826204206768395106831452381113081033907778"],["18358928043301591654846327608013378147856917298655015373116379687920973783304","2759753848118738365487424841087445819163664139854245825510073514823606453910"],["1776854241223181326222356326432471282526650179244537711985478952650336777132","27860809565390940726160321879352976302138989954654079044059460743385531103442"],["5509679219120548884971554832363755421329378249496984500180490630795512962550","17330669105832614515029082905807996000837115924287219920012765444126351498258"],["11307025887162811865700867670196927333657684315877932661217846134520016058128","28701794369638624491002326397584601573430038255893461598557396800903996603851"],["22273128770003027044131503311677309296340197166675629732498030212972626913025","28667202946014564575100092466365949407036233294997447122967145387038354331755"],["23024859136973954880271844542944042872881740742321919130512415058309772775120","9327187797299546402655343883000375011338191885260180710937943276194088988852"],["7838372926363627495473331139310627395362162569861509256662779629794844177088","819381868777329989375390814465232606539066833915840685996691545019319616989"],["12650614618393962472772349423877303250369350487743665568716596623542549767050","11804360076191165394733210505524096487822384564059154301686873988968706323192"],["7410728382861874672411677215857315697239730217610043241807142648311385367538","24550945824684358609022108222360179469849798461722896058285297856738315700749"],["21183167763681529213369365716573027123788971232167746165035528582313702613782","5955686237237552972641521994096386203507884327969852208125868736532113913731"],["3587780600557270400537780404964670648246836048386622364139453558553400139259","18017310314154032194096531352937376986786185368622046835552498941660602934788"],["28941675609024312691910971638538937106823223443083439820463232806136674436594","2599777013052815094870314034520428279607256090489084014788832520641357715718"],["8741089924789624794902228727631945275934494071817832586764291696231669676173","8583596030078276616245713754578905047679457061009766444653952979028586564634"],["893217430748971345480904375673160341079431665945342722769203488498625753873","17989220416917996632487608803708791686615171220530463085643559348639790229161"],["15878632388907636548969952028276130122273496637143937683256492538219604478573","11736511676106948698209808430067774357901018762031579323449996417283984390681"],["11042204303248610387602404444650258079520569329827625511295385515830626048074","12876299206720600584447546308188291602313267720768306123515090475628689749253"],["3651839938762832767552755468464630492104460165095081007207551627851648310771","23902760827297256443866611692526410650934067154608554120786569313184363175866"],["1229256033905487113984663182060705154706872172638619427705282259666260939192","11639829468803843716558440715892696773765426525677893956272681682553939592660"],["14496659760935539524655571186158360563306226005379365548267716886868155976177","1087663755790627320462604601611690693153332085912066112983118019817111142727"],["26575058569115496627473579594771570408281112328267963323375702489376624386800","20904247823341048448301705335545049164321552864446871731069032830999395589016"],["27530859350042359959394074510154212868250064646891190971953402553291811098738","24873825630096805223175360839336971748533133575886430819838302738000017194275"],["2290540788593222005231313603965754281402549501999269218004247679144706403379","22414200635598784315939383104892067143321022940983803293307196045566610258545"],["3534129455863337040595182031933017664098503756525882489718547046741102992698","25603927428223002645480133411324654745047830552709109713303675856076824012240"],["16667148345583164931159719426875329645869017576822944284873944359829861482431","6211926208396971811054416701446469274013895230381553676408251580058632749092"],["1369908485538081356992524819793335776036890680658713128461415863555887915305","5669800529813204355103116495897163566684098065254977112068586633197739864802"],["27263571585092898441295712273873445627253982499990801350151003221596991962475","23192187637410678425133924966822919748796524051134131833080116906348285230546"],["5612130641126390143628487140256811611168488227995694407941209376196890290183","17467436285030284609506964683325752674063892644948493094457867181436918630560"],["16959174846734628376025698582980987803143916419967215238679734920574757424858","7857712031676976093776952343272730961915672271884837580945082654010325679889"],["7631402782278165315467112061545464436407733090523746377634384784225185867189","317698302042404540092026615948223033041337481620183283297037107047882336359"],["17377020115148627737482864846573632759436092392707946100140117243406380013374","12281160580213256517382935289189834065675267412672807340803282996873308026602"],["5259174704254120143526684492294058592225979282603071732053749287691076467650","25382792109880221936308163517755224104138730088271636049346470559923702635492"],["25215433035706816596260316233215319946551374094745869785161676852660699451897","21689965470940945282860896855812995132324832450596589403797044859484551715574"],["8159927889361722482428225190999988279654626489297987636429728267930579975474","24369513557867974030369822259227563581174772414188893133742397483006240736745"],["4417460923250145649837214510575825926279406001154785432871151944082979252809","7739793579364825765379335610774263555123021724701824513154345876973886992538"],["26044500825791980031544949427625533223154270365581914665383788472606945023473","19937311133204758420530421833132193887780638460517050446753043769118009212128"],["17843727443178999819011053448473428233633631046084691367863662515123168609","5225334148051782541319998525196902265107604084839021168583286038760348661910"],["27455670805118071177754862332348119102639738885404972021488348118722381964967","12017058732204005738037078668515255025058157122353819219722105768998552134103"],["8854748585129518637364534750203536614400293732887353230790556924990283289581","9031217995495452022801005541706284620365251939364672521845887354940899114489"],["23090351262719825131850410831691633942714460837163699447033551533415772666648","17440573555102906268114206756686570376224751858312665889360318532706476478256"],["24511809505062529611321919067595480585203601825571587425808782096936159640560","3381887459835642960615242192114531638750069770429999403247974348416480202254"],["10164077008054955481907419990798673321097440240571289441567327548913633116412","14379605969136339362038779748689290158368881724693206083609992732841333492720"],["1819871189774933261009033347315182305647675180328841285226138595712007541753","5802460596964012866601556511878557128083131135319957170987775661719469404311"],["5709997063286310476089893786889672484025424643519312830658401571628751644538","1262608909338021377402504495838660787196121850693286833805928479083555214221"],["23827466921360565690093790144139294155850886656700568905416773952890471772600","1320787547623303341655911348257333441109235159085138306130483916752977462786"],["24307211838002259551516605607107027096241137278145536518996404606187574915926","5322034196190106115918842832237539668828557127641129112246783275371312897220"],["10043223430731817084544538443544303971956135427321447446880710343091499862050","26432686451643905268386220564216008838367356024124146084992585154734080930759"],["7851515707816038436925467257417499568270570429362725287402364630305721487498","4721147472113202716617083144431312006796193814064512072877783394053868828471"],["21222628398987346786003490612441333703390206216369686648073678133381562636405","6175193808021089043530315185510584178911908602121943217699912066591297699995"],["9674641674312946676665237161011557173949878336609390381552376338776901582014","23525740335500631039472668075973143955861319958175203623708810684135136986246"],["4333645433152159684790136570426424759096112547519060681143945632560386092068","22944282738515809536650442112542989226213341394869957022864604474679767259171"],["8016667264031098593154670998448194737771112018895892432548817657557719134080","22119163305030369279919564420104163591827329661396094889439193301441509959640"],["14000501401624156279341357553946123139571466332469176930589148379781750520240","2251383512700128083876003185998182535962709022421859556858201870639490108551"],["18287495521773894470224550156992172678984210000014670261899992553059423128815","16670676532829741175940933646783765490401265818521432744630879358499351365676"],["8651933054178022406401345793930447639713236915593707059375060306830777968262","27676605257923734053197055627007629683300441037456748978157975866263979862765"],["17560132229965102722219969187147886374681772191074483941404699533534994641631","9350077655751367869649844203345211519233308353541699757631100730688123292154"],["15380834465755446742874870014390866803384367526112346752854710670230956374613","4561097196199331220579520213066591444848522371613904121759356397518644105995"],["20114298554482725658259765796840358156985009024661727139465608995970574173458","17727218522021064007533836900227329044472575172418973973445852242964864360169"],["19953593545505133938911534328006285938922396221297550981171178781527299699164","8587470132418485438835820051404065160018277483960569984971830992063578655482"],["16339001743514303993104585114225470282351933486205143737618643231754139073604","13726938132176016623612480720816987738394022560509221622726888249960571783051"],["20751238635097546655989961174085901148650930030993655951385927642928767931029","28912563849307382448311185522302728229023372085485740735933599408024934940514"],["26282038347226946026077927708403498416787548771346369102901117771277999721964","13056567823861174338628285550963162493799481853031898559257960719646458607575"],["9144438530760461533561221145514385881655823165418827769238312241184167747422","19591257004663441076206928611198778457046604285261717492345830199994061697488"],["17106182822427164619627919817133127924149186300602268643592239713597767879997","3924803007902620912111350172308063903497478846244753697917747503152673707060"],["17042302993199660354314558613412152075533392493295389368286425659988810380515","28104266388993820943005836727000838146276691847841624741363026405638268849945"],["27490862553257984359853166570326068443806832970668188496644762641588887174233","12273264794448587152549088995061545788787084963022221186471164516242097047863"],["9652617931588290077497691754845676166212728287898971665945678753945643645193","23189740613288523891917547150757015634746818585301051518076179836551491901712"],["12293268004865668549739130611920102090888788753621922609436913349161468501901","15184527087143957996049126944869266716798594788681439264940843286284963259000"],["10206081202721991090543129046085514296280128614624366018603897111950156618802","10190707888662691621760080100017927156915236180942585965392982415096965805412"],["27830511303724647967259393255676673395771095168713232426226111875289434363820","12147978907315694179876586397551563899698796803988545566462321091812257544322"],["14158404433145749038703244949606188059565697073342968555972998118713988222150","1505496948126208453335113868365657277940955267923799463012199466330735694488"],["7932305427766495529990781767664710055438902450036602052448427952439520182774","4912889755093707917507686785336383016898971462635633897914299147284212217313"],["18142281772656439520783233470861494317883471150578349966061454306484346555953","22392516586916707299202478370258407968470621283928663528587802826899225255024"],["14935592229929408039166191422162819906607751177153631208079196939415818433054","22658663799763614291975480894451113618357486650569184167523842740738274837702"],["5477947693314756589560677511840550073685673079268575867318011073792552724529","17074618550032051896937074385444586260435628390048273247466598886968950655674"],["8353432921783073207616299612695999834129286648289919759721665948041116519857","5421649462145546604523640133256789852847504003780834351473917542345923981380"],["17881238318716173794206381762271545179472638698991548573482718197681979790604","26310926583895766672628975960630968026985314319763535986427629231099192895873"],["11851426096789845430533303014047678994701384127846292438497514619849266836242","25488959121551338742333784109101472407813371628900587101987695486798256503462"],["8476746678122051526629964154507645568129126038088553293263893232992788462605","13975129938894212269225645581455709994443044899165585630153196215763007864382"],["14213835854269608287746222876614154369869000700687974211635471192583792632670","2653964471618278198146493995549187782992530039415560106811889800598682366014"],["22050535717575396450773207843298973836372500651233315923935860593257391832510","23702725180180988124313227162284048288767200269515288375323686811970674409282"],["10245909993276466864453325291305414310615542690900172879075863656089559744255","10161691615524653634220801758524616860013954885176859786456334626550371218648"],["23199391802169841550710907711346549549326404844718124292219202684679245717776","16622283356093572450881582694493636306303030970972189257109438967173970361517"],["25286009990320753816976544780114158087972843213731229341980625041259549267865","14794759083090709698358559224902394877901276759137512385199828747195315189065"],["24586365407123205953445147672276353460346185841729105482302221403038305905757","2399624036815047893112958822273078368255500729754337599141992440461479909572"],["3903672544975621668390716109164401230575887711267553042597957395584379820448","18391670356616375958198965338013280290274792841014699567555648271295772307580"],["10968435268835302795810020205448314073842354685301660715295485618181226024655","18473824668997565763620800684459806923633718624271312033755306563354027167129"],["2779353831573492587069510880096756651755960600674291460766084593492160989008","7645752895700114346677262959879409468224835598773265097819501517235970526738"],["24031939802380445965615558627703519398188885033630506289529303315845962487462","17489089421171859759852221635849831369056110833963864680403561037861069330451"],["737725393796158293732902815191040985652135188645564506961702604294267315137","9340321870331644395498414368846525739766342986574952433498187406488888698036"],["15618928488693807421423992122511233333461994436454969249589166816527800643639","26734381906368874881737279410772125151553078455397110064776654382788127388200"],["27781842311226455226622370395231067847509923692748140170428855618380403730058","5002228311973053024309972069632039102428079646338169305064660483898049125945"],["13302253111294705016122618585740731809034231489081738720982035434823245967092","12907253696185112299154461080801360815640936510788266791311859050534106305549"],["10785624057289735526359619864193229938459120118673450422500389411292641721424","24919616587708217396012237151482444117516348647486142715735372435981103086322"],["2247088543233758587157413962113766977730252827877334877470855429111595739485","6874358994095885643866240250914776494066864534005210653914745617075039446489"],["16780199078090730447335440283036329991463286051728738624360427382266489230689","8238997544748394239286057840330981001225480504254395230024411178311934331942"],["8261458564660538443740688148443275923276251864113508828823563662188715003568","18188609751953557007016294055493859684877074676267588438580747681065185008013"],["23107769147677697582228825283299078680462383760432551021782180719518405850590","23641723885004444543135361635735972577485915360625116535527657660249049487841"],["18388676652962391558871975683295231922123567916987946492565534927101725147267","18817925568164094301577754241621566534429875070716185752460348395416577106574"],["26734021682150170122400357575596797769159383062270658001160215751860503472645","7025866212963894312122916778767703878050292376989577335017506106118411878352"],["26655769313422871483764298293265847703856725772322972869757965912338957658630","4762009932015454262235519641948805491768486603969102707683115661757253505937"],["18796128198251255423600318649717769873573850403711288334892385591138559878313","9436213629605337477015997052531816491563911556629067980415200366912130419244"],["26297173103462790302925594007946304479913570579968904533320946016229893979744","10775238650034369366885811231999855928416020701999278361277562661961810277632"],["18423622357708489607516292012018460694577806325885136411321932767690287331062","19817345928594963520027915003794332266240572296833780694033974843987029120506"],["2068236783196019228545875645025453640189771384962930212689526912857624348947","2288927447176342034685599708261711873189506742439889862771946164444458802249"],["15364688810419512145406688580705352315660522443260804401862295721450835945455","7928055610281131388450576915047730910052352576982084947030586498009383159758"],["23527410558759525583467013357588837089881556441742267629742163149077344009417","27596355754358641235556631249399733018557315973457656771066574895158275433299"],["26782055219326195763971115118686754236506093992711603904303770231517334574247","21670286627902908677749443314506697631042988657976091497085222839286765396802"],["14480477406659234689512053789212983018517073114742436531840097816051229939827","12468412938689290825232764482261526760724014394790099650377681598746365479448"],["28559057115250410128807244890312217468453089620335671397654256270985031407078","4690891301861708622979546034884763516749681150654955403666232625501069599411"],["11686024116879711158944381853769497476288424568531665687230150931330020462040","12269461637146936802871409194133270482617977363931144176778146564844353825114"],["12525557658243875818574997034038711668419919797037185663427040684884346071733","26062967547839309836890099038734377863385088792953301745793664113834453270573"],["25736573532228786727599302221409756837328046533478562561040460217531585868963","16029293067688688702597455906409732097359561214680533711080280576773114260265"],["25958399554035620493607420444128649725584382011522964389144834382760360487301","5342220117651574446639993440545794977212829479014713391803933140847419227965"],["16484089537014127755930966933174649759759594414529750732118931441550700774419","13072680615462499944001306579181168058679579579463200201362357622768831174754"],["11837410144982831179608984819428035557068005024039875756857584461953713180608","2943747328660653701099265559232019450198011188496068138177224978436375834326"],["7408427351959047941733966957280009791604369755512140626845235697564245875509","23772776455326747699483474369045529423651936616534779305368456940666168455093"],["23884694140353939568569189954502600018710800565425565230022993634369063644652","6936843185448713988359880643683721560994296834549721538429384901593372884183"],["10527248823328340417188161810629887015078219231386365329775603596529222758919","22972512878457226822466456383140143858691365444701232024291189555852683313597"],["4544241634226333103121557559400456259795904407292639654029288886849689733653","8293363560732302477686093029296787356025996592397608075979621041950911240855"],["16709396912711408269709742978665306035049460695461499709902157581356482454841","24462347883111080398193495843486966458555348900873570680093704228120991239444"],["26422351701016991404976729982680594524462428039259334557633017506161467617771","25523281198002642682795004809174458987723793230704862846363918408660682195753"],["9056934093709920721076255075743183972247808128812979550186347873258591853660","1816886208017655420696262479217752586098603179673793402151265073916318691564"],["24723524865633760160227062688114154157692787309127310260211680882146907483396","15457095659455926321200452806572724422776857020335680705080265221314898053373"],["18154757581894409836168795926027590808361055682071335816817771485960944250588","9658090639210741242698688011298098999720792806008574761837231780261105739349"],["14329610424396776468959980505473758130825701825768095090401603797861113160701","24404337380244620113925672353738788928788559648820673184276668425599084044361"],["6309337437458231270561770089296320999000725404492820497373035420694269711772","28616814589657066511120517270187271955564703766453865384764843968636734362760"],["17127338267143051934628659913647815098216294916281981273999270261281089429965","24792629520428041870824787723689406771044935903335321057528147737087014253801"],["17664322840974951824494166164460479183358663994184934629798034211462420859132","6412199070838846343450594508795584142807912980587456934358796150425613870751"],["21212317256017082476105308606272989281693547709686498829833663705432642948852","10038648007224888120329344256241737854381521600366575983613671843622310993625"],["27465142425576875268860732430690931977309650361792222801970322138182069840632","27798081360683250019467387793459949626395940932073549867336580195999353267874"],["23323673743448203201562398626624968899069680274115788916411422083245238832905","8213720506288068999017226289283840759559572297619417440285842042466962800744"],["109980020633490184060423291168995780666210187192743376526136012601451447543","2386264929462740741673389760865311255109629884245248362280911041058203660098"],["5095679976985375461813821033456460936546348232604537367400223433095937177225","27482352956894798799861673972138484308255748283658298334321456341398860171825"],["14930865217029446758947540184735849644506005181845516118778646449491863632713","21602369978978084518793553803936808100109526677590159949136138068304355469252"],["10369901732556126312127329915366117106660454501900572127992070949569735351014","27953306141529926683807537977246121269195645551786732575838869946707407241405"],["11723658632680961604923829023913244881290704883027246051701956700806258473289","22634652826608578809221671061860442970649112647403762698325499471629401735978"],["6566212520471691215300393703231313211293772100070345349907834973849271421273","13377412428317323893451677238038904352319872303256022579353941411447039487697"],["7689973171598329427001887648153619014362031881381869656774803057738276095697","28222737002661936536667661164363073420888021592049713027076701845907903912449"],["7044749346028480111088198580337681280853683893792579359748048255558542595561","11710432697088193181521629591906935040887242342916614369148653553952297896531"],["1749260230857575639010952876311506525226874366154407153194608141782630691659","10989275031949343229076061174049301254547254537580405801042280629849820190429"],["14716732242884719248634551921485314774410111725234479444780101258632321184761","11700937340281891224354630168760220750300579663205390950999516342595676998149"],["13695631224701153737999448859705415750815009591280005979591071475201881788403","25540779878723959538976320176961135757877632636446518306580399767729333691206"],["20158185588032552949414286600179299022107444612484277987368402439314544909015","19866713101779353072368566202495279049908154838127884932734313604663002659932"],["17471432065998673553687939041206198906180044465333528123962297494598913823290","7653390036003888960618752776929219165783805795884597960043347497042703945647"],["6886628448730241238605597650887451331839328863223295168041579957565684532937","19678741745649520366476214457135703919874626868887749441379847249074676860396"],["23948577239296464382888102191782371406534503479969363859079744644119090561520","22715321411553218184036622682517103399985122595867374501097831534714230185090"],["21215961080602284622376725751989995976976910882501838523801235593648966602664","12000236505546128635729141218811009072369988612607029041889186084692967431884"],["9764170279432830410380028523724117662329468693665064361496575423289292385167","14587631713532277238825648385629357134599934210537397527483411099364189271088"],["28908166058701362512486106356233694386784571445211141216021053410324536851261","5507286334193839436376048348183969314074307214727140677698292130200341730757"],["24375179942078359893599489496438267496518601017348086220199661174260986712855","25390058005077547807917474234463949607625045390232295716219714775210873568432"],["3923276827536362369901046113183762375915576688607833442432439237596690872288","18329535628550316691587262771079850015372958100247557001253118612405864231680"],["5566634222341196754738615266598503528729679647455659166452706458075414378524","24632366619708480823854379803430295606861204569905502534832589500048551219460"],["8544634487456932746772826846813098285617879022581571932530559262761948789681","21359005902495649225255560726328059315847282568503008307857765137686290471124"],["16455722839261137859125713324901045994501444931081196763012828314148134643405","15364616679453747419457310319046842470541142097419456435721420444052571952112"],["10363875758262306960885704056175270969325111592449850204671474336270344248907","20501074665377552635069924354072229325294130967718640221868673674568012278344"],["27173553862101482211896461961478746584775867293512620430071304181910478477444","26534719108957296840574009903145872458954306956387909694414338363630853650121"],["10465223348715941754997540372217588071588049924068598365241645048749432839727","8728031749853504985944479328086931519338409711205701397144572665230193641586"],["17252880908335863086264169546578030437650537977214197016610488195432003709421","23188606570234890000449199611420368201930201410823536162333487685913603766284"],["27341625393162809896070385945899278431033304887859095546749935171616434701274","25358715722473923579965828222776272713032520888589293953799933390138291464106"],["11241495798495984014293869157700482297857772005681359987102603541427060587714","21821304002272872065101636168698847040218251318547567687586494861622268982632"],["12377948245310259505439158590934034875735768161529863274125793783453982941259","2644769330407374356760289082141891097661984208813153691162106614606873925126"],["14501444607607359524761400406106640054542827694988319856303225376295913402902","23038960500780687228045729818370825444187814803783489736273555564118715469456"],["2034288829221285303163327389569054089682740404789603169096548213100795184284","2979069418415431167562438371288981783490671060836142246879864049828402306171"],["7212217243263874042895414987647189965129413174221241087068203729321542750455","12133765609179721015335940134761729894128512843431996388942153758765384189739"],["4902003995362007460991136193754015636145888125759544019107881360550722698189","1684633221897332885271948307371423379397425807713932835115755826962678377042"],["23463007365939491578716604479532020448664598321366226079572143437159490868233","5171398071356609462599058153063449888471880811467569178826598631211355225219"],["10919664856936223745867625193200511367519687650769112008061284323027472066760","2421148412594469874530136255529294288237150957199795543732889365248971537130"],["11845868171177540711416549676185874308396195680920404866524258750595956678560","4871199073239747038310703166475042223800077609660433182673253134728660780632"],["9854781742612672452299959010112052758324178726410464273262901083890094813786","8336200986340347047641747270364612982245427537619163180478893462849762709490"],["15969434588577935415690547639617847179048538997805636336418654043164766633580","27114663622091804248380715081282542905300619547770602495532174563696196167288"],["24834470802210351735320801418979228468514912504701918706662260177620577574782","25261836392555983197266021723322561951191906915411767561928936574633411781642"],["10504787008451171119471151549518136821066383803226503952121916841838057006297","14177359117658025003724285104946291203797198721853965024483297685367338008586"],["27333704174462507321703301061804410188309245451019133726955956186062037918833","25422003198991335003833584601292262967274448865531266513375016766237794081042"],["19348292153532566883758913457494758519031584957210901095276473363192970888816","20660634562576955982079500133530897277702835213646696417455875843786650718468"],["1329394723507081937984266288206121499792749191595589115741636174389218287037","25560635574198680619395266530097400486560136014296187223896901071660805973324"],["22506195027002078666504821446025737384195999328608166147988475144488289903642","17697336370760243187183540053101900261281714433988873496250246960610552011669"],["22651777212913505754435766099049114304346363425974468539645893956746788795402","5439791796002886349214410364548175676560013265165159660671513580689640589406"],["14980322210153873707801717454282092824762873039624677140453687915801365171000","25913759369115703286662962867868555834915728861009428761831078336895625065240"],["10188988124848053680336605137178123785339375027374425459071656130573954240801","1981325052202760194934279169643647979367750132908243046167192931899512972706"],["23933667075460965465708787867062768715239374264663458729325179183829821214163","6758551270873382203859024589319023843467070421774488535469474089702150221369"],["9972003217251394707346930128956695447333423143689934726791490364298232881732","11266336417831545178174979382270752231504185180435113724156235650357372045320"],["6086505981883943101330139845284435400939652360502785244403693130189670430008","14032163540139778989640087731908621665807869810502760666653883968840678267709"],["20431433480454280615414439568855344285208846317408051288923522931440380505723","25014009709817246203819257799359247994904722953314136804026197403785850485746"],["14724164915065479312916848112039900549314167019006986926994763512032398012811","23500231162873994300205018863325013721452111163855055115444233741606543482733"],["18716709385847065130623979061018801717856113176849945663990697536158102325302","22020236848889557305776282383880222092869007511971815336927541122739415012371"],["15694800632698265373833113067820543164456639114551642810138747492221073094429","26159696376030154484155375019274402219371673492611906324388861355046671435794"],["21364087288606192090694184406600276512397374093861249553809192766866634057936","14830495719206052740477912009575191949643469057946962112901768621117187255218"],["27413359444306036560886863110126539824518397672329838667974412126103589279885","28781867919518353538725909157338564243904772169699877443633577117667425752978"],["14572175039999341922151813363929129140758350365054358260903088306448257160162","5988570537357517508769509253190058899356064125790697901701066519950430220739"],["3420302510126225316574912348165296426509088929398127772781917167164262190402","21753125726120324321509822674749050971348397683061708771608905356045731368797"],["7339483037191934969691982293964774532294075034733391237719226000100813462232","26295386936054179429357990416186487194500458367658203109844379109006739968557"],["22607244608385506605211627893575187159925821586442175400535101653789067325252","15450096300702936424480756903882403039773674912701988148904113773626870457474"],["8061409331435079076630024813503714204274164393945729063865422792230565890271","3207903995137042658950711705106502218052118558541468750759041239347895472704"],["3093232203756828916063339588422716983208249094321157913277356309424913553022","2245293076995734670372774904663875327362720028567252195587166399789082279754"],["17668455001870152731389715044297862186594862951097421654810831137060636292877","11292391853884336992108188431278533462116005376997589525947867509190686077907"],["17249365692134357533418594758934313844712415330629717903619618894379440989240","21076831029157287753141701707164692307506874294775241847344979172105560312594"],["14403006150044041533811087982556826122889156254893640545818729968815203817246","19301828092329398347353271731898718737786223987242949005917901617727324860030"],["12678985528672697094477271559896312633636568087798863764086568396266320202810","28383097231038940731928748166028625675310397057141592320453790231096826900702"],["9420625865113930717308091942310117484279262946030966746834478557132316763003","9306905468001609898294214936787436816747860609277097445000684743128447666450"],["19664802431968191310429660215700586000575718215008085154945355718036628249448","26786680031594575940766665938261442944384086392324967499361909091828062236165"],["3712740491239513201147898709040754916836050585855068090746381231959237988206","2201813641324178006758068402694259972748720963274855632177396529212690133324"],["3444427019590932507881266711849477474626237640547759469922376438934687830314","10276464610605880565134278434429246000171284007238383561469770494897172499852"],["1018907050424944138647609380062489617725891797379065840664213528304414478124","8041016978284644900578225775065260121567259351065124622036421042472704668322"],["13991817056388035401857700966557202304569791731994510374326653774497644902559","12913278569791899059064363662463136088614404912429861121848521487577686394443"],["19550212890986452417017720453181836459519612802027836609255962380549251784635","27518687447601486957525990295887089259534806946049239009811364266957983300360"],["2726667834676816240457360827407563886600934877842292210785578400637700391098","8133724310828233770488400111359122788709273490255678551900003711523563967773"],["21361368609485861073080088294501756361872366552777991632154068395060362936456","28343814209040750859632935015034306239008822274151093877882174744482307516870"],["27996022203949876747472776046611661225582779782015014962932577488113839540216","15227357807102991202615172362835016245139933049840302847028180660843165483121"],["21545587730500600736115427104425032572221919685821892394766716167974003905852","13977581471283597792666665754192486058922217495904776985262154678816002591258"],["1013393667040478241055248565173242568857562861975454639727318182552442928579","15850630468758882689189749771376122354909188622117109674520343310409126089631"],["28111163847432531581951583281963570813313590422768580644835408021647009963212","2236063881092776461560734829921392668557910279200069418814351591435880242076"],["755036234693998183173534558270063658028379354360008082938141408716904714954","24506094033954670174659698633517388025635485253918036367932285711211879427677"],["2219977219498293674396706821761485059088228054175026893461334741246133563937","16517133506703795182488986596475648173810522818946206332496469271339271676547"],["6787676812213877742306934994583755862743107044894914723288197569486704761430","25598822554952133537736171513213046743512704666247579902000696555081227956101"],["276653849226680563552816118187707860522402082931461674152515833684741136434","2671422198014734128218347591665629362789995107065771376912607150348908944067"],["6667418301468538409103095853150491551105768868009214144876831389832187353584","10857899418146796659643112416550331504894299786627942617083859740976034976683"],["20754810241810914388899304662840088876392195740789725033455569635698916117456","13971231621377747988167355273280697577342593167880093140352912496877231674334"],["26903310509249061158077753601617776406068072133075915474469859208415407884230","4266339550866705413915754074321706787261182724381247223779945921858743908705"],["24899903667521338553657474886732162971260769387581006706150409195010040202800","20612666055720167630226535959765107180018780905020827531002716252160048243416"],["2126865606650078629158935380049131865992757557032125771920104144326051173395","606472729874978489649419972908881275812794778376342280432204249943990011776"],["15683064849938089264115407484891745142281828028210239407390686954758022952890","22211313865169959714355406055844546258197950488145640442590819747541179671081"],["9976046755046088618785043052166939255354604731187941580346663470575464722265","23198506406963958269964746679263624201668062398137916364675602359389187983223"],["24777120342381161881926702373732062762643749875391390328696941099667207605776","27197266975135846809794322668620390555625805401768910355598972881892863295048"],["27249191890868642258013112676273311952184288440442183343861347168400927356032","6396183713563430921687596980975175756691151912024479391523755115743999936320"],["24777659048770953145994442278347142439065710127122476640082387014830666510333","27357996819420001322485322489431732546724157435791063960419851331470972948581"],["15670780615265108867651020473587175323234605791022834212856025946356454719456","1193227720577055867344096435531364656276986358987501923674737385262988418786"],["4229032615474560078472957877436965144713856048325381127964317459249665563295","8453802284090349742600107089468748081300021905223223536008076217161104349208"],["16147156142463713830136960551506412377471062853594752888237910879916291649212","54500527609552286269089541185231666470045367639291410188929113606183399584"],["8071850464693787969627266424723734018424675075825399716016429108784692770465","18027940346379753551143461872678318558846803995859862020935829667249725061504"],["22905658523518110576743218725650476141164817728407332486526846916977060411560","5488179410023534743619369130709120674108522141199176168634492826861561672672"],["5415360730299781961776442479567853303969601328079882316267552442279432425079","3338188389611405441583762370023453498361601472475485440938782593109557673807"],["7138364761911111685393867409408373005371702374608385319838959260231307357446","8554510265852880473463975978614647753201410413183925996143344437620079985343"],["20462947169526967795615902249364067415004728844503168153148042840011604672211","9539956989106791557966631388103272476667674663714752160725605015213177116314"],["18893854674572173413096825532040400367960695887007163640875372881555942123579","9192379086671949252538252452793580026730816370461994378040186865156510723456"],["18910576871975281569450687547684946283647704571052391852807051664308746960946","23979353758378212429882473907312633143440394624428103729067377522343039099729"],["14238283112622493340798221572361850154966001122201366419519493939155649955011","14386288304323787123382275329046357528363939297224283909352737500897349504390"],["17255692744129288336129257221179457687776451222169558177227553501488002640571","8704069858230254053989291762235059999159895247171561424293279931540124447389"],["19705858894630677139087410507797987656792970157578690147489868108609632367620","26677941571389595025238618392522448613223710747835975868518466518965583821355"],["25267709658254914037310875596760650498902016719822957327012318407720093195846","25646996344115752067267551170228901208552872560907306697461324292739558780807"],["27261997141798531512403460754345813829547534439336880360711504555964903768811","14726376732353184120476150014810459170913620058050609324342874823514086919644"],["8553875698990907671573840545522602840632062198699542936359010863012746531118","3986155878815000174602085474047598193551234628659127754086343387543874741051"],["6690693466477730251013168760830023483120388228159387119758720356143843520026","562422136216416939232372630757712690730384818867586782977114644612037412995"],["21538324957854823819316560703892445191949481055405121088941296827963953817350","10483015303502310767510442692357445658194983720172381319777794108960460649141"],["6085093269132080809017635467557985745047736786302922036781573925039506709950","19161051238091495533375253567255616696830686066679252560992327375106224213784"],["24770938556554291616579831958908353663056165856832516475366368925860617892306","8639529823504607880449749821619536308427329992373553655610748357213305184174"],["16689147283254664623013306818711875448334536076726461971626295396697267707576","551791268166836703795936818951802130648663465092323123063075672780039240487"],["6709849079561884457575617289949711736096186581631369187388296128137078497073","25134600714656652679808809853696243629528369398016831506886175309216496101554"],["3559157008304527147290187110502813066426669110022347566783145304122409927591","27496658691488755024148833536643800471423486005649639507637539472494008703725"],["6218553555728691787717809662260815797495785477862140370019187138442787521025","27020646578634900336646932067028800858844887824262795970897879462926507751395"],["1565352925373912211611607009861663107071510961298501055168992242880620472426","4329605014104296746809805747585170380180526266240710203934355599172257780777"],["15407843818845598993861329727795952919722464346045843639086108971032047157606","7194527121047739122870028273640843192540733128860231394326312372505343948207"],["3537626172461312057393620699128130328402697799544438518116975394534479017102","26620653633662373827437507824061613662856957294710515275374549998136696816685"],["5587258782516509556498929949142245114450203951036133196659040351186315554822","2253686726312892438222806162391950494524148818110321418568889391634902493710"],["3614135935278338559268362408648867715978260472256686826560598395166537462087","15901344619718337199351395076465885333072157171132871163582255380961179068692"],["16548933608618560104111124152563719006207602067745226892908435945916981522701","12692892755313827959888296031698899697888966485520321080044313945259836956901"],["17097360281390998689685888565397911181708149814375490274649041345223605640744","19109398436235427648143873052711657861517946273457711589195042701947450145390"],["1242600620719248235147072111829857688145361237214985953248675163961361837662","26093326353900919109377263728209277656520399785155320185187208457368565399531"],["7200056222281427605681155671253217440532076100242163715867303221250578274397","13536097626736079310139148059906101849251407578506023615974913877039180775208"],["18825895951034656790345548152831795413412683567800444700473137522035324889627","28159490324863088466224831991931210031598110378597170899708085723404757261910"],["20832742272482638079482629191003954830480892308228035433793230774516215058928","27414397378817723066344606446135039937975499566112788181715413582412189754696"],["1021187817168237068348589509053327753443585742797280552073297703795790860911","829312387521711156072200013376421552653606571068289508886759580325440968713"],["4535287599379959915018416739936843743418709962792101837409230026879317589989","24022333035519440379581304010737178077926897645632161260091779338691887028405"],["5798608647689195161793244912947997087415018922836829254484753009878886910184","21436817377719723078030882879348622173830401293330789508872752292693270980528"],["4048543093480516743369598297543644737671738390036271663903952417608947217259","5575207800153380371541140018398873495578514430518075509283868055267044371186"],["15307506436699551505196797321507752528748206185210934275138855015653202765853","16463264259144502749030481944487689932234738606480201159603873067967071634894"],["25550735318858722540075010331811104786369890737694568705919056494031297065451","1891962809919819501187954210812109653700658223430780949780731088144656891549"],["10417938108936180665829461788999389645267340938939562921094517224620039941542","2292787038095220333080951315043033326072167653031880112803107193852308343966"],["10816178317069106105328948675325562711642162282177932697246332625214843468324","22682080911789486079859817209951996896377361559200517047067891025677863879857"],["9130584801690907354074904181125360176000378175259533063479480125579042199499","16521394342798844799582806162922934232792388240757996085978607683101604878049"],["21568085874066188241917927069333216142282856429371436690058378276712777593716","21795135446825535688640015017763711542302528834222573147848329213291149577388"],["22752743584905985406541524258143366254228752235923966487525957409065527697055","26768321378966846869871963755657093261129663653320417415567439437740722326600"],["7632923284784900553337449809687692406897663022852533396390888811937029658471","2243911101795394793221912512730818218140574901912616845051747790854459650686"],["8591416667205274932953296486895477445762901125450583614806571652612449928210","20742588374770372069044447663032495667272954536231762428367540684951040837647"],["27268477440933764853308056277541948937595963115930131693187092651669059688082","25119057799116226573301796741211601496603957202402205594066824320265929034755"],["8714018398269835596216348030852186023490090931287983543662535215742260962610","22757506617946255236689410884992104678007898824337451128469559452890592912474"],["27981758491168937721972785130049035771284086579527647603861816241052065090627","9935769086858587796576026855510161254442637732353873844925997279221215112483"],["27367855766978665364667156629030648703297104199218946137316924379039693451428","516550881431673543000520798186288828011117025558777891006868899670660608164"],["6042551724613529829061127079468710901595518286663126531466507689801690289401","13471103454165214523352395516781273718502517684484681508212823614845061558055"],["3076758723515816053635665806316976124356080825100266481583816817883849596371","12114282039882874786121614524650670891068693020219871616168592464637346968550"],["8311892968459154713290617807601087517846604184042004291543341255692834266837","3435756703165331608241888425825441411883475082126373366970833417782930280767"],["25770252150797186501171324307288510448012568299412650352295346501490748000143","2315852326811196214445681811349976304696299031810832837076686968517509421840"],["25074785103355668203645095606911333801464838239121106908752622957773552207076","408338918132745679313925253672708035107078165466903391625119615336336775036"],["12997920355709512492411947608870772381734258951247498976430984822003935348767","19083602483548896604373425577312981032613374520565377819299059337857210587530"],["2235958922409558274395697067994008998463028387372181640516496554551042779177","16180673506735612371407826491452644743831953789874699781668957796837828837410"],["3994224293316866554991452520130055538693114043944857508978729770544018124518","12425324011464517231266136546243135369258793166812760159414060007316348484496"],["6279973723087161014456041131275539712096614553888345999058285623988839753749","7166702038583184103931848674894909891728093138698063804741282905834508169524"],["13334822765797248705184302617831127380487573567053383833695446755250129017102","2030587084600466029183734046567471477225775246760045904398355671211075807102"],["11111483496673144833881337832271910751731559254358630544870623488863598590414","19417003053598870778640449591764477874699644167166272630327372359763745321865"],["28492735656717919842580383744084322195404107721173046148994315118146311409143","17275444688196460693742335784360639782263520063340396877088716715466808311624"],["18739368405303171840468496522033226724744540926432048895686045843594832677283","4289183825898539955582175788524555692434969057883552288902345320439178450351"],["217191143400969703529790790411242912287265575722589398472002426844410226909","9753163030892781442433259199430469013085225221800287278084028282797832244067"],["17774905118079827387327663639458114197105523740053182047895845357181035638013","10865973673235361682833981288359723653711974116031040405105274245069359425413"],["7600598475723454878851919506653904711492339356090347424226125332561046788633","24387745854745713279620329907649649647124129115253991838148070847163890244558"],["11662929171748054507290697802374997422043225467166676076839105627700780627267","25666736506599270360119258862249196158712797028894835748029206883842519278814"],["9145181263765440924394785555793123060674445092694372507847985231634819045464","26506553107864762537170892095564211073745380333147458334915920814424565899452"],["4778906506504932811848904928385545304171456248179898825427574998674895481793","1522802395890210421012815892592518814916163155010970820983415987162793546836"],["17046373449039172298249506134346050791405631018228254663572762228326623364558","21769690465910767997856304834632916236448279804647496751516441833288873808905"],["11467497986216872120260502356231636873881025415040225416392283160349567904251","25383034271494025495411023333393140378612400952934290820960203893104376960588"],["12468588817383009429470238395978308512611139775128384329123271823422356936339","27872359633851125149372553044054296195150760154151901903966772687799563060671"],["5996248582175490521972951338947637667796275797629428838345980832678033191541","4245635780690432361436134777259754392871072336115936743269827526013665793450"],["9052920062875088321295471090582135201235826422867980101979464019341241906320","21768635934259889152878687098173107036449552908803682621148599892768019488889"],["18064576797971187693634373906651852001303836651111594456847788951102949695266","16516673522189373796439652417574323116177703788040149661132015469536590337641"],["21724518886596537228118954806497254452877028287481820260477534016640934590403","5431507042397723562714806615275135884295367487998129044095308818215724618029"],["10762896606191296323978528710627374239387887519296712555000372197486792763667","6003225729509726903107249261388292857134941642041404101341349281073033353283"],["6983846248552818913826211442944052307180220653284498871860941607125241726125","1322009770349158876675082370427954804311849233868912274352759966969612744242"],["8024213683374681734669355542993320872905210138953214286976941740045515609039","10429437018359738974356769160643961035833275720979088475508384832885945229974"],["27173436628474869768984389845931608517657212399363599774897527008465516858762","20850667545002258932994848911028344704622279912090448799225740822848482569095"],["13280401423176807541122337369971203465678855050021224200069562118503709291871","20594653118816218025531953758611182938452975346908675076030157274317563181855"],["21847621995845352964365992483304594133677891352268067726089601928657990330155","23114155336788360064849704767775639941880574901479377421728691990761901731206"],["9692313735090819041866729564429220594198238740132577086947697946501521931415","16304645811815452898386032314007492113604125785389905322411708144339705587190"],["5439960671278673586679786070785481969246880150881901767808268614128906077948","5024449772796825344597362881009757478317168077202864724023614785370470731842"],["8183347099888225716837883919596739650353483485995477841336995808411764946605","11202723358422124664824107970180149700806086821442262098862601975309198183347"],["20205053330220896940317559821463233393511753660108532756241471857661296627767","307291425462512705724697617047225857587761092095465832132270067425726182997"],["22304392906925316153131924382587075129148050454712435517994506560132223883236","23312799637324384411629213259536015834745622619720384544222286193359853376893"],["13333855519689586871599695893618436902142035063285649089489849871218738863460","22102978071488154362957815908156240017103275221342585294542858328210410024254"],["12108408517111942258479125244362054476599144146838923241617081677231499877844","934053760917062597485237666749367191933272780973672384786502950494894904169"],["25124281289128668812329303398236835929045999205059910452923630395803745472190","5695005527265128800163659885426005986030515613902830915610987118489043387963"],["28548504856392679549873218837911367172195110963431465495600883826923394644147","7585631311247466278990826050441189427779684217400175852193554392905053676182"],["2269784495669727807384924603762186182587706633955201013143137467947848543314","24043331938241082414902083170558407403142536135631630980538764004642862926479"],["22465637407235967351378616186041923793851859196145144397818583617219503763371","5424924345251606244236434066218223267227302309464395679322657446363705084248"],["7233081641640215774869728655322371535223550171608937655518621329345636942187","6697290572565545956276472670547460423779040047600216699514183523149319094036"],["18312259485044741069112203525317635940543362287584125463670559240992102796262","13790454901582413180989759817201675915633763692746273795793367176501138570521"],["24957780987906918311736769766562212252568528364974618622030219575735635411404","23213103626227543655760431492707158254859778620593930242728611609379267098265"],["16909828736505831334233236573666641657040041749642132103761706291037516215109","10240532431882178938921666892497911673429220892421837807021445093550508069467"],["23993557719199757020357361460231598906148442420003356638886421294178858557269","23021105410159799249760198518428486377800363596216718836553759471164689340937"],["28200120250399124251007264059934903996152562035548422089284438440831038871744","2109262113633968367498059429866702269760521666727127452812694211644469209778"],["14284001961486178566655032887628687804717556634261344636423606319739005665606","26895078556841514057707924609733953487666677315811256405267011910204908142274"],["12909253360896308148833429859732512504896150451549645714959764527160007754793","17056580923459978187579686136698795892671821852996075430215832469876661463467"],["9218883099975167022792490032269159890226639908032497835023843556194293145510","3842421933232558830593366712856986100960278381917833791977897777086942071822"],["18925589616070717824150801608988431779086233574742390565701677512959584194178","23837212242264016469645877394676103086902214677812168411683056561508030776937"],["4425167549710628126891218426715096196787572006218258321012639245712624500498","349315233603601110277763815458598732534934653997332316214019401986046465319"],["5048750635265613043290805880048170194298104188025158116829660844893242361733","17984871209485414463880199264028533608063370643392465674862926180053996864295"],["21363657536305594498499999038624909322047473408593876248663584171703431392114","26431577212420757731833596129371597008522980185563397067250750387384736661474"],["17707280870446634670497816613897978719555790414579358358856959182657599972186","26497257398621804043383317985680721843752125365299514070722974732297379374198"],["2697614437247886379282071427455578680024309025720025043694084905936704041452","9133623260731894332139362772012736986684058777683582602416299447509029502669"],["13083646654563470463552695665211367213450194953950828619681920827197890440659","11999234226284103285287374621611723284575166945396871969408246983604741969341"],["13407705141056713097154758680871113578237422077790845487025689333020602840651","20629148627148100708188056627930857212288763558071010192537747212707730983181"],["2104689411023846788247536552975775547270201265002191993590275885555984686819","12299184676521962654257996482790575921988525330131654480367856841641814997728"],["14518911025680667948994403105078934940066731748783502934359949403877699426829","11440060341985177835828301200107020599044835656077011203976093728327384969029"],["22463979192698208790323264216244554822039608382557071531348857855606418235257","2205372051184946727900938883002474369202567155546747334650271281712299452602"],["9243719362583099198853081587607505042622500894660162355605152738138340300981","3345593319556102854218508341614312346849734158350504637640627335599449423297"],["8845964394397443583320243307451369043233807036594312941791859165468739897451","21016404883022073680911956191317078503124390823787167811577619303467505306286"],["16497996475910348548005035214021294911559019605122433316738088239451856258538","8523187285762003852035539899800068177634326884363059335200755703375535490786"],["20874104668192049214817933381122406868882086545563138507172301753633086605111","18445073274923887587366317630058463319367345415068208861053351028795639877094"],["18828937496742912183155579999866238832704943417342772465261588603692434898638","21519110169705763065590310868251113093950557958323789056805522146077542791491"],["305815501360051991273154774599276092484123149333784443161396926422586823772","24597082323966257752894238824839384175681567156503260481649532561567150010229"],["18823493778450496646012848014227076225289732583764182383343160353904544012196","25018858398335326076228206325740871710673511045173210540417992667612387591033"],["12652158406499803650016115110139974060263335691682045498496742209229796298990","4290569835576013239459683801597189908918701404573906157935223945917975966794"],["18897038799637175505046197637858545234037800303076874313235770661767649768817","22640833977527853960483721669947852505733012705769574816918183796940052942624"],["2161757443450151007853071123908989796041482325155503316857698653219488231301","20863182081421504444689248482927601510489882663891596374995611048462365291342"],["6235149782633000319723421528649458236287050029498242023284486825092275111871","4585975339971169837054168788273400007700408182667637028968707945488697095831"],["10893931350724977560716002123926174260137044478748238827532241581255593222806","15541826591322666470198941803682515015911314224191215084645368059395849564141"],["22329209525584606893434191177095284643965149446434476924112950242236265307064","14585662869707850991180168414814219415639888859521612381904389742458064186645"],["30471383314385135523546064336246835126833987622561123392092964504397992637","21651028099150724834803497139437539896682215059507606757276411975425521376460"],["20386311258636765970261614559480335645851087479691016564284698134544678620069","26564277184474428619630378200896728397526531345662099853355103318610111314248"],["22305829085865982733880061098750450174574619139496780493018902027436618628201","8699433900109483677661944883978665356212839722479499129732121221082184287929"],["18533732554652121336310097980265234493679760037166126703963352628739086205342","28295376535448169813076340456295504627545481728785792227338953375189359540480"],["18736470581412236567397903823762112712082661905531647118223421977292654920065","4295251993124698999385256715863079617691541109338766989745058245801987377055"],["27356419806269846634259314153617817082841663321495409485999247623405315825051","21973489218309230489758341795133164391766468629215958050215969115050901456529"],["5052287454024714598100269924129401695996586329318151745545494120697592057630","14942124746775643109408499656747161041526841814615448592716186227558360598203"],["27730506027451366956304278427795155473497214027957082607757924651274523313440","10810415269722542999425272650350347471591621144155446934054770613402596750422"],["27433946206887011402819560334047003953338708735823840482465634433646634346010","7763601943945477129444381456468019554210225397324029493981673486698537155597"],["11606259419896773229529544974537219437180151243952740444425037717200424177701","6484575249657632827509023249095069782014698412408091334083989005074094258206"],["21243565816943026671315821666811690321948001278769240106549013732312114730757","6804972155900941341076413311331123313532712256152681475640200535049634688478"],["18829459812994958208468442969933101164515889856985908655771547108891336512221","27601244311578953373339033717485814833788953389295628010021814648292580101436"],["9667101265204409410944214357444082131338193404403652216049050112533756042830","15509560561429561556900484096152914359014101068052234709593278231590205389381"],["28505552492914485823224649866811575829189660929331687616022948359111750075086","2799790253488672289263580086237392836950473794627939402840214677951095926696"],["9661152117720453602950109850493851050357543280813287269112419615225376706400","2433558810526863605763184504324684186667938387730375276948220153301566830257"],["4522873100547870281879054133179360376630862696841464114598720366561343826116","12786660650208720382141903073426381662272415751192295227648225515811024525640"],["9552683169154333775249953812528656769803790001015524107198651936103399425269","10904296492064483176792876439418339553629752913769792677979716821559186100398"],["23190099571403214255032682830300406059451583179139593111524410696344066214837","8302919389050183052573340494611936695520074402042631538294297680315855787601"],["70974066439582891971932763107631272474885880117185591224121216070626376246","8540890747650260225483665061705318463682948218797905561649543005285372477182"],["7771573062890662746895676602684978634806503857321961991761455498861263894569","4742056134780647487542944823415489348778486886628215599812671481086433362553"],["23506476755359688182897258108069645012517968341945103450422171205255293518209","11550758953168144892146152000194275365247513515907401286058703368703725460751"],["21733411219396200034804197487145270118044685329939852363964997851368301099994","15895615324112005879066390237708072306680592489838912633302158685365129586173"],["18908940294410050614242327626759290890671856916684537314697514974678665349217","18887937470174229837049927307300297601769447537865724306623185151865618406558"],["9617562357366455582931921734219733025314071602857781276568797572943989720676","22923392551559715030951353952994011292147546027423305637814838173234494356259"],["5564766636779585676498098350508231598743036431905279974412763611100374185497","6414106765976777317861894119197701385228908080773054218920649238926494146200"],["6399039938116444977841972321410837313828451241926315691756486034040547971349","7645487766452123550070496694026051327025662368950518950983079172688457694145"],["22095665609052646185322219199123700452135339114371198448008583075551934007556","27394044772730110197048494309034099931761907226867516067881823317407952789474"],["16255065315886191357404014963625557405975328715865703739640977709041091290296","25236682146555118949311312651485021098864020585442236678789637583475320860719"],["16428982008145858965798029146605000887572347284988302930937126444138870433486","23933006939810612218104067375973560776106797254322972438704503639707582830573"],["15293066995678364718863063896144350475636378176254363243220859509418121406969","960197638472791633681723392551325185793930469871768018798159090379385310990"],["4624055933301990077160711462178570753352967778504357817903472685834003533739","28042812821333154169304732831997175277845285051599892431187715415638708651923"],["2392469520720460543513357093297738832720808135505585813419110722917854776828","28785154196657219573169943506541332149783363456343107980866848978329573803374"],["4697676010191156347239208147878481764481139462359138282180759527792057192401","18500026337651334815929258151802724515449876635849914255830549226307518555237"],["7872947500586373254871664518179795389084052209068486507434476843316209822499","5970943681755349635689987192780553622537754002828849700760384474866315116775"],["15450452505187003699817480603728136832524100723936394926075355320042195684035","9490564912370004848415336286112807696878000044108221348115832498775580008508"],["18066849734896382507132937220814464868439214439899205255086057335169428039278","11768588550838310904197690720793064765022836774142850727727149329752422010284"],["6812350856906755469651599836093572551654769980213358803327950563283794173115","25809329416195957213465748000236125724289711835330858841160758777488340021399"],["27880662402667526756258413576728372843544298911437829099603289876852857727453","11083994651087813703319543419323742534927897516541690595877296854289138563694"],["28269054314703051269599499063353811891847602421396280184130395531914917997954","12531012140891954744023103525086036547733812249618405084331328091571047078294"],["3271731839600079146097088844988995402273030906598020847596612216515267438472","17746718781389965342614884475260098686702333501392544490294100207039112648363"],["2207935648258366171349687242132502564994780273585157262226105475217241482531","28360347103945687277991504411138942251840108784870620414199303585674237953421"],["16957786969489950150297762230853442370456617608081472389397211871480027347533","21393829846121893635681339014893334818394958382262741314909589330231662284362"],["20211401658060816397688838843922797501341367506343835459996028390608787844865","23267382877301385968333774120769295618078968078917380714539083462062891947012"],["18138950537596189707534486305571940711249330830354565938595593320680217722362","21833992599396144601113739001717760753895141420619628085419839489906650701167"],["15785491192177026186953397467743743104042512920879750150049898658879029336817","6189915044570666783331872783731344929373097705635418295809300689025661673638"],["1613437811643565529820288127264284596186313703211459861811536356394266122592","22132034144307706702095061015956876329693891261243478083906453555333123430196"],["13634190785239222199174445283562197321958661662035542699519308482204909906422","4360689515013355376199235159761475338152816430629295894631575393137567430247"],["10609159660343337202226086810173509429485035653155531918553232922802894853190","13435537799220618691015049478542536865105005270758116225125264554975076451114"],["1375646270262631283045652036047167864504091959256264122370304865415229717225","21489813463658017004623009156762675203192981036005006076564159624718585715373"],["10598867949170805434832973302369143228025845342071611603863937589263047760173","27778461248818281071591827611272858311176567743356458633961822668636429460146"],["16647544126522909032757636777150446748704235435269892460530654728942083026688","2002602466796618952651331849086366362261372125135887094593180276763096022781"],["14694553951989266973720842853645929483013430674448171809504151734092234545491","28738192020762632744932975213688333006754653635412350299787488166187790823426"],["18292332946505139474289193396937512749498552680722034753161083730588208862619","22036703651191294966388551641123394782471386278927254794746629303256361434606"],["4071672637690318757730708953636792978301107954171073492019184678420118487949","19164666914406283136160358234308263125200314616007760182083463628468953444298"],["24641359423667747256052000125485825557502173495936164186595425113831581900783","25341432819477557867832846438493960060727623473501264363979956977100717858485"],["24104101699179978555451371337162475970418826447141315082354652831179092519431","10248676790594708643684792651527365670058301282729085639581498597345707179416"],["16398058511974787210874363219524469438683339348998469809338360882745705764001","3597525933465202381061907801125779559938556786739294450180411225587194293226"],["22943044609688906596464994854368536273110984428506558061205378407366457283163","17839181711752643665304655281927411334685713106100209047769189703293054263384"],["16610842741477088367349801292541329551357514937101091048772244382458730292395","21953632863963649765614943206608048103307674617225285642103122719081379411908"],["16825241714353562445957292066038179006570109455812590403230961668412781360801","18649614144594330598828591981485552116593837574981940699914556548700767359387"],["22726319456621257075325956701308203525711961867543357828815660025860298076427","26514726122476612501079530613355254263714173569676628914203262514201608921286"],["22816316894168156370706553878285120086352851153172266716908861141702510482664","1239338855172442398004454415648086559280756833766196045638322260163777967684"],["18194951459355477972275269274621864906724230036913658213267895019092274781621","28323649208809838869774593190293397886983882926042043948912598971789711834502"],["14540124328597469456128091092989731828505666783135574354063989230445172084046","3290554580419732980215928758256030586841771866155538617789107742540065097152"],["5795823774721133609216857413992149208084504530272978028171626878718493464372","21135976737571841303359270449746475358124890458926500698360663971212100978860"],["7837006994584572662654644543219061969218951865969208693033181110269743823970","26872260016179611517075968164961759270257605540270638441413091604209782435314"],["22517188376025022356321859066750394684064410428637280067103515170633878534699","9878438274017092098977976136279085888987504161764821159954114108569331573316"],["24657131953224327518021701303279408199249614117814969126757069689964073883651","20612004552333675246868362049073922169274285768966651287181986952871726556330"],["13243643018979277982419877501704642526363249374157566597139017763634978053127","12073735627164022680402682740816998226305271499530779356590564178765040834364"],["1487021999945976122189873292527144545453946737969137772356539236953990151029","27169638136390472252770922526704955391200933289216326411376384098183794942931"],["6739350988416590172749455708991118313878834067889652973732725728502797171162","4369391274529991978967305089780155903777221040523900873997225176433366560831"],["11823139283854892401857751037312490440146717297340412697607612431180307479142","13895865089577274400907155139640903249490006856333314010209050456142750761974"],["22205450149548391867246512019725728658570827197622865745645116528002339539400","17529794906829638996702656322436769038283612336131362720969682272034610988848"],["2084940414969902195020085681937421814855332868847497549768476912710955634434","12798457717317016082651921779013804165146078809513863167601451375740633437912"],["28339296035906949875224391309534661934891875187861017604478270262730348579721","3618123985763593310136381780574669702957579645618768671486893505720506140223"],["10364774516838822008862992798599767786880947887715436877999643844529851868554","905740522092268005561422405524164999263802972488365295483392401070700773487"],["8545028572909602345648439527161648734704867522455114770088914429536000265195","8967628091362235177970077958613073742072185502410543320276502496552105678763"],["5476516321873943833246910466825057650989551867645933799523690915406046490169","6630282824184331752802049862456290712689538440694359463374447614046375563109"],["11924821917313941681626917718251269817742417498907753912515816010003287499013","22841083251747676941384253331096236726473788037094566379308844618932258252641"],["22269258101038951025493711930857497590820674773226757164401244695359469851337","26947517807846762347011699784646893243270178330545570441974473204962957192279"],["19150464836551774966008957984624547003514708771658546568392461763127974871107","20809950690903086159089244942184939210065121394027177604139423801705240698680"],["9466160443417161404950973987601631596624583539581130078468164840598824268528","9607363379608385875434607995474040295054186699932530189156340858529090509297"],["2680401009952434485549691579585535292391567169220281588297896187079401048063","13266454587155746174898756066858918667836822000712998331159555569360041047025"],["27085635643552653701771900089131916338357992542876540261812226089190194955617","2418211231938208457586080003408747267341792474543227806503086590926135575429"],["7241486145754658591355035094853889429098607960083056692848119939146236688931","13223193223421012743110916906244110420941082033429862306424006273659917414423"],["24160531416915539136266005639309441802086575933552351092546039830441164861506","5392042986197719653751912700797450465722262352382674811180818580167001387726"],["21585802620769935978632070689118692943117094186830102522426767375029762129955","25476377932282011556895852408581747234392065570100296553631569820271512476650"],["214152276047446593273913794381293801951135437343545264959973259270254524848","5523883174065940475716533652815818902895609485454029746160192935689336671001"],["21267846117916705765713119637974055536449899802625648738147966265284836151028","18206713793928630128585317250505274091999386410914191379677523743543538000259"],["6950773714824367723408840212122204010433356717658154269706782902022117639582","14451094487909509556850179791339420121311330080082591735330634926515473513240"],["25217448066095335194501546132139349673382211974671003055215934013731069539559","6228699508740484089222567787847783520770038547327386927124769690894287007078"],["21742304258353198645028092546091170676172479276305991662145624464078065573794","27964538259045246596302246340409005855525566209733499997011346114635999160095"],["15647707575379914783364687893112423425818257265331875728035008093486249406464","1722747337381680325454259496796795265907509173738242412089726842823321076888"],["24957489760021612994381573607995849540396973913998147098138972274407697672417","10052420978261037639995765536621287595309826271692393886538779121279317918356"],["8855960795253364033783592007941140110511021715257033901428197568528636013277","4479687449301558548468142234513134612565391580876486064066731537027168474941"],["14072131998074584416106890867337026450835429547833846325614914397192622204866","6087284034428759021842596199156069085591691591202990737356552254709336871909"],["800663509256836041999907052117184032957955091193964182889159117041645346425","12950766258003205373890961840407699650985338821952463003023077496267336633116"],["11960509848228356927633074426787228961682043925823894894399015937011543652038","17909633497988196981725495652607970833834775236620428781262127848545926066910"],["13561031910353603240959898466872155074703840687880171765214807092028908139408","27424480793534725942706094852624669667080524913637411513673012691399754904178"],["15281670987290361510981838843302981271048168492578517361342503804734940781767","2296838226726356474048700883499610429936745446573684707248729357947203846899"],["23483430015628898504439381599747516810402536652768630689357366918025012298724","18035854475111263945338165332913426387399688520430582038918851711592566465477"],["1069110397978535931746212898293323337710018602643718946303699175854773887528","4062666989237526324530547705495290031686017448746830036025959436340895954375"],["8569424392792792035035407679245587430396771513552019083824850657439492035017","3169537162986817004378475481504901338788188007045635596821418054655585426019"],["3482697951830380055086435749040134704140152340468501940183789162691486444042","25065119944431931170107961332026542988991350322081970905961993740616672403951"],["1166192866872592516604342143992378940175976925929926856786029816925697574267","17295134678534682132423807478949109443493214514606543824895017275147093069215"],["26305690735337087711989125591847658971826944242225141586546295804304154021448","25160658100908834446241797046870588438442723001219636647027600159029728476943"],["14731312278135106581710699645587686921579007337085049665503147153281569561877","26235578517847539716897849630387449968876961309926454761311708674836157112526"],["26297204459895422145081788374225565398589173244996021488362512490770955489984","13140369227461316250254729144852407264598969289336925481184396880811192162175"],["12983324737371010413481930164028035905751274159775112661892209111312127921964","20054032282634980059005744978861654308374100781132386481479178745350044608433"],["22166655662701581191676509438487931395796817872832867235723291390583788247952","12051110057552468971488186578879332298955836762418332183780582830075450244949"],["23105080361917870350317034913224615466021425197478440653645638568912378205775","16477365699200802618165507088571289184309215440344508365756377658173743801118"],["13981234969488100823417628970823869264534527646912325173557749080788550183747","4621392907039439795590791809837023798491307084548414510017797353047781632501"],["9800518731625109520141812877933124603380829964111399572538388962962722452556","15002285875926298313064997232506388674228601285498393050749960929925667521148"],["778145651208383368919288150868079345056843133745923250412668583223374023711","9797109044181392744829402086898045750858174504654545419138409945891114699724"],["28221145334506308977486190605138105970805604189262824663651171298145740102241","22986970749461258395915943094482600690353010140434782057689680129411844720734"],["28097138981546235151475089740857940972502326717532426020030693129964827891321","14430388808202713192500976731759147429288314270209020224154278912547846664405"],["7838591470161099808045516510520580384924300031992683804516744635054337057135","9980856036934088599984567300465956395161704309350272335396219718724822208465"],["17496311497139155016754594557509943651151021934924224549533953907120786428726","28615359339254487062093021588773329767459464935184757989883908938667815563601"],["17257672541466721756829887597288809445063119544139168287631917984071076878540","12009761146423614556509177982314723081553400630770831149104166472752319831325"],["24778425856218675081536347949509728863684886808382345462528112384414412731205","5521406141156754840879222085825131055253827635057431577655920792489045451736"],["22285092334710237888801659833640422176629415217763675859005092461966157113799","16511326686967174003251335857461415486265731037525294805926584244837526920704"],["4734286796651717532001749062974196765684607667091830025705252132544539210769","14736463608723635461795342095125192348351217857764266662879870325529838892421"],["26394366745749866636539649550870133429618544061168053467840575658204537525037","4010501542613887620389973962009705862431838977241920658837149930405654577124"],["21559493912553362983073447311795527445332388152771308722177290012960934681942","8017185189066606177972899708456940118063302303164835146920837620411780413015"],["26827740110591821954910204050946799273688769686081887244124296879307145057628","11798684397348069806133408531406314231414944619053049023191639556948015715875"],["5111937455264657277580800732576647795294922442077590745994743755256967522432","27968285724876405226243526358575736731803284222561185741881797461414646408898"],["11343142183117865969309527752228629132157775003710884154967033380292041668398","19967887280749301556164009582374176852633514436706943539864158303848273816491"],["947460478068819504538837762725144458468651002746249611557738692833990952461","9467600582466939738949768083234463050942022100437522825665862630648347821167"],["11529504931612078181184096631611719237081397157751889686418293106359515405684","12006401711369981310433002955646500857904329005982332623964262354643186436110"],["17784619037909942890563181327551341423754586563804849464186053176453134916082","25141089731902728389644191233005867488214139792134486218547117496269167494408"],["7683516404949698242558929098158147838301634553177718940798957989732115940029","15309252859879915375071158859204374096978728181876351893670557276003089267953"],["24623575752682131680630174054805614862455026529318729899801235916286459970040","10195629243294540334962967973346561686022745073088941227897965115124460351381"],["7654913451682108785580533933498892041365522564126803857099834328174308681490","4313036900516935286193262106657388480581457451927959281729772193697058537625"],["17499504375472795638753075241022731381809701248414762403235978110880326298157","18246169686838005224731920853836329748502944361848670252883417289019601640093"],["10491936739662971090720252328328230456382922203024478851810977948728314234691","6675587367415765903115642119769422303388588037678322125939129422033356113594"],["18644198967156073283502302373140938260572323355742842921787410505364018661862","3376348690225760517157123966648577024456321789136424481412072925439945577945"],["11924014556771524214784394108715802989223913666111332600243618530890389707471","9747321305293407089038954840870254971496614409550648939263981477906049912313"],["24207272099706496480139618097206515425101694823224215379452897403344283968933","16046992325657478074304708764557856869827244765535008443033729852479221795644"],["7191945209961011407223978952270518847233193206720334950194772445370519979587","9098043644243105590653690734609797892598557576571299523748827585497452303022"],["13753415358651032651377895017801087445132490071631318771754493261444624686455","21058951825581901761861433629346257313625700621073401781907411442060724440155"],["21149832969070006599316102600654724216628481668277142237094356614779950523556","8752882832065086676021068226136777393768949000554500928322516698491822297699"],["24212417849143394932532780951416175633994760336608423226576690371250519511022","14819179856796652717085028592015075972590071972789374300683003684267033989037"],["28623219456705432940206995232666973196139508061929005814044186241584640989354","24078973107783829345528073295983237438102986686161255250357312508045893143271"],["14797794301949498521132203383429845390515841067796966752829762296062637055906","26086782245704726612442841092567481898240535025667183945642415698821521530099"],["5857628192041921073030316366239683995577998058484457829892589122228315096400","12593439892473716891211903655904065542961208603825467085824678840227107703326"],["1568380745406752805659174379619350880726602869740802354945841980029328711767","511672871172557989230078326367886469523223781283976183579070572558308571633"],["14170219399009306025203501530613294373781502853446153201101050310353914168076","5409706021982144463009987345803093668171222176002035525924388002855900839879"],["24712512082886133835745781860014569563805877665776877129338631135406881115486","20583116840177746838782394129630861315219447744815845904806431040283712737985"],["14348287587921054468617219275448629934841632983074780936007850160988593144803","13332669940489551629742639568773822862033664077898915180596765825875155740578"],["9645907969812287199874323702460021878890744296024434336391031342787539315674","22403462919906890512017812628363740644842244726477618108512164991243570044354"],["28919544963926581982250198670411284662047742703924168254105487278838813508764","25958237596948860375442888031021147615978556058056112202559507658638727225147"],["14845249541662134622015890242024549224290778824351969715165099843308197017933","27364021213153472341797054610908087252843689392523456673907820220149840083823"],["4022642991346826804379873236238852806600594770957367301705847058660721557883","2604589860456116156693640358036760519624586414407549340351745076748348769289"],["5933098653923793856023648610475900827578811127520431480605609740564521495804","3495156650981067908461247195705864877763027301067732636372101831350322130420"],["18996710900819712337592055721547557784516479350661605582038538549141670865398","6544101694729780127825634840696086606786666558031676435972968314509406495431"],["22410561530855364491999152644953196484205559400392341593318058492888281600579","22317228295274212720676681787260517592098217073955332559082838776979004957623"],["11668335381499784472036004615347319607630576174756942636120324370290151844753","8843416691913293277535131586976507857767017446688911126322190757458273544356"],["16310418486171436275109515113167012337038800710291666954717724370929745193583","7812285957234306887687070414744489211218055337654849135462691108516349503126"],["10890424211239941882627540108030046001900705612880133612226518871483598044044","4611572064530895531172576964500559528205307508322113028876387253101059594176"],["25694018335783768346953937696522163421860709919310308835385439548830088402843","8895397552271352165254041811359520963046896631404713076216901889772026053507"],["16013998663762425668392835024771364495220037703765544687543297951753558026054","6552958535074604523579770872214952282921585051365138817947624811627867713567"],["7817502300727515717024281938244555685025339202954843886530133261058693131003","16662508481509071652714851743007505189300066076628390139682558334718006386393"],["20526588384958027295936800071227010365701111416811165727312455191771968808202","16981438719566808415543829044052052628896313872194893307261645448857490175795"],["10694771958448909087968691373405007493475381738453608234998906990511873064063","9253600517514021467141960625111181106733001352057937404263279902384932939818"],["2579189542407270810045313105021397069061577838630878488509600095318743324397","4276175274564357032677495017841390143488385663914614478678420647760052763217"],["260159197670992684476613099506237014513838497243459700296113039251880393005","23318841117547343359566542401692488276561331923568298130774534099483349515595"],["1034075532043018426159542934786219584888001472591895658394158698698409078585","4612404426159673743832918297102605679237854158012206141875768849034279839923"],["14003473396795076576323782053624468306085211221269533607205820383464682379140","6061578780008832137685813611337256343440939693439426379204978515508193806041"],["24880705658765450257323327474925008887786175515703126689151449367890251817027","14701554448647450512282667880642388360553751684243782950363608801992152806285"],["14327284928296755290665711189247063646721412014691496429245571203122446293882","15583058669598422252376465635422164055476531873284190769993237756974849763951"],["895126181989372593545977960492433543741608099872694301944529930262255904873","26952656208064369582076864189989200545795778102169615835104015861878462301741"],["986602268856048507401858921835988378714414589875939668870437447001966646839","752725275752438564714154994534919656411961666352278742606181168376760675512"],["27470483794027564559303108292042845117124224675617950888351788430129558572546","9399501141438086983651447047739235030800637250998679249630142089837917918540"],["10916918327100341956272088186305389639726015614150610793316074213153499731482","6240223548169527985191008415659769442908489157312089645712606734510795003770"],["10095948619903956798377463838608137503550890932955122519580365729341090529833","15871998627127374915864473574162769731104388670151450681561633228421771133551"],["15321913890962264634458891082817101011002334457551482306585609609183500070074","6534688644443524887401536148035289577988492920701234169095399638123597930500"],["13415397733529310815280309332487979480484389474269919986661452889108727221909","17286173871702762389963504681898439319440449804008580432054925703330039807211"],["24464393508364391507734058252231179549141131045357612066868281612254382603612","8603837489173264815678198341888199050526871497720945737613948999958717499239"],["8863297834051135505128805045883737080542964551039916355026125129725856836819","23716335365225901625533414344009703443899040143955431701766890061690401826271"],["23448878572516860985367782065527782607636769507267752069928427792552342587541","26457599617708974265707161956376153891845041368821971284117101212197955106006"],["23258557689613700946039497802330051891614586879161299836444574431019896362441","18977478995519988319509292666532197898469649738517293156858491783001990971432"],["3327664911150671506448748725928575148077282703543534714647408254466493964368","13276193475790062462340957980974839449368833670607446227486909433859774872846"],["4657872762721101296510801927587013830522977606598383757033793692566889632216","19065598462618357648194403237193450390911852814531311421814179811684006841169"],["23632620019551159872116099596808300786335867511120544465699139195181378183163","25113336151164701698919780288578813714834170325942518656914959093600965190822"],["7818477880277123722031906865123630308421686538340414502934806381439462968547","12910008263517901948858213046845699335556486103619299812289757766389417229833"],["19129086998100002963209857864205456875150472422238694387638290105459504436254","21085046543778521779486549610003718918014795219458257382909630145772095806542"],["26974230101307692380057160249827098296594323248851595867871226681539399058917","1401246023207199071558557366840888732296448782463840631747568731985729723985"],["18049071511183756875154315430212492663214807527042089401779413837654196617762","23561051319108250506228159723478176697898171092362408485105780483412881643079"],["14397160789058156677058706336848802684776636582870269618666170471096773464939","18634157127712911292871043077142962069513644266707928034430805671106317225525"],["14868971563486647040125691378940895712088377704790237205153932594201823177922","19065596092573606851343061325599027672186593827454612023088545927065243197145"],["12715416673292862295374347486211520879118533713189868900329612895411960508925","12545265430574613912217191495773809480012012994686664499566221907242200074641"],["24432362132012560184445375118746201789475312492271141043980240035351356992791","25922333594293370519463838409695646128893290650075769798772312128458372380749"],["6804879869811205577865025323258590803329001069742244701511639521181404882789","25948993646539519156235869455366948481139711472278295751781354276722715863352"],["6578537034631705504882635464251977831347368900064712010993363982185079330171","21836132943026434081220031227338956532770428785048452428402541195728925354404"],["7967227061482039315102045285014352562957296970713893547906491765166663573675","3482479011235744022907890423598794682744013502328749601766857915080138735784"],["21160642249288281195517493913688847742717565033674761924788671919793142390309","21162928196005575382083403354822165867912217689837738042744361847206280290119"],["10543141269989182222437126891594797215035782223250144310985820063148160488697","10375734531060433410308140600515877798293591360510414831724398658157565826857"],["1790780388004823822830142233860798688741016005590929928898962863402149152607","19632941957249561895667872597189461459437679055896514938755643319262379442755"],["28310815648561913921097888721954361950832016063912014291184051360629288995062","20620534868143634828910813649031770050347817078720786518378548349268089225418"],["25363597020597405943056451300220023528896230149706213124597897198632806178600","10754851658322516309561270137091337604019487798894363844148178953654586789667"],["13627685271055869041982199512968331548905923875360683983515560405271963278928","16003797820927427720901311347016034000539017055093848386759333362713633666895"],["1602837382640155098288064351528050605005646335454834927204744817565588085438","11030722176996750844498476266233561300543020198387674457307099012140946106977"],["12749163715389201519881968586634561644406526383431917613054179061595984944804","20410545360038684959137896268601556310384315284272110628051718824632637800465"],["23061822280201710033392898189420751479200904180981795739951932400839200195367","15702530693508074676492827068562387792735797152161022417876048882809689394644"],["3097724007913861709451375882480102863696152839756657216182683090220347046867","2006651250238896059363860013934938748769995839035524509579816735876942413241"],["4982385348485750687960411677962265548717542127101862575353492033150486054765","18469788714675891322936706674530103430157286397315831649126745774614249430955"],["26494077144949947170857086404393749472119254718776630444572164712857690465173","8707636134869075949124808522146817534330709806298635013462427853425166749063"],["13947703551764937796780520996304107641377798530153618707410066578984568517119","13184610429082834411222535358158481533465982161695784810746406150363549634011"],["8873696914512287384622668648713185029837893635952547255204424324155826689582","21664130118530245918005792564089660132071627322551643046257628965688824506723"],["4219977914488247963229504595729373318658705507970055485308146535590412608072","10368019586535560437335028413239874068933761524621096714418755856188086407203"],["25222906504435365508428731963416366931253702984168743497110323008382005784761","16013694165649418165586904168078594384299527327498578357597940651747344480341"],["16286106604872303741590413639643264588133664255450923812232808144930706765813","12989383242322878669600970978402006518502016882205607722192877929651141380204"],["1006332356284979060125619850212826120959197137132775993683191458652381630428","17320844979890464763785104626839524473095749588320158975758349880007395290425"],["13779480920234525074425440119068901651122162679318041207416858504713116117024","18020992700556330260753153976026528985136277678929361158757548848994092224241"],["17204245496216093549450453211808437237239669455299911322677133215686756760442","4656839527660234260641531981716841834102979186971076239395777274385583800461"],["13531332802551801403196676987939895384202913103460980343137266926684486811213","856556417307977819951988638948878079423176189929445560542177288327200953167"],["3576358976181263811336288802071565676930582447868007676852775765837392254666","16310426689659150307810641149261974347401163303893183420817560206073190205675"],["25544955086725789645660493967550757238281578721068675660315836897459069320782","26810246266850014778267113904822102131388526614538117550125446896911681777952"],["25403416636511389877986395258260953019931301332698508111494120359652610352644","20729489133146071843669567672337509011681165845056692949679680999689971694489"],["16129085066986570759265125358707053970950286999013664816389097578925503561093","10043605266239689553125018243274333558212910387848257624001826965262794549014"],["24376345241522459980929043105558520336727356813975689460111188278333922273500","11478189450515211576831671981727651019139616784706666825447520018418112744870"],["18590279491909326124651406714273448001431524004584852579859312482602545626600","14397901016456861122546081328625478746713862193906661599025702674895630840398"],["9961004118827602206814162624456201064508354875993982223891168851803461710931","3443505489574106529379753061753816959642601205469086109183384838869225078774"],["14276803571599258702159991151602591455051278245708487868946464778488240921891","2768079504691036941585289167772316945651221006573357645123330305694051507879"],["7052012647795547583376981463205232346328875352424300575255785414287889056707","20559713456745518608048541261135672110773131771591402611590008597918654973380"],["5747577623947806533126864418534014390270307166533891352594529290609157438234","5751012542033214352103249275194709754842639089795881970306874518963765536374"],["2324600042855532323399877468875738658858034308812121545674394305277425379855","3321508038684310654768052600473050851623047060802957579925915300876145534305"],["13161193737794136652257150162307250831968259831066100373040875532556848981447","129168074043443021089356526185418122160727467318725788696863121052131899347"],["11390016361762413908552601804399778493144064798014477934723323004423460567025","9971636266570206433838732651376103264520146578933956148650999059356777237837"],["8710555930390822667536943886388793677436168748283011879552098276596470263985","20381780090067562502028406907806769686079174937914072047162839572602989509096"],["1484450681627448464458494847781516903163406506629901410755635982991449427994","20819228929482066265110474616645545253652246622507689239207524469012528462059"],["7785747790908385573007387007030950721510804786915916684077940499534638052825","6767085430406686474113976866596460313568871076385850044225390564164137140877"],["16445857883315369090836999879259005417020785359481665222631268745788941811903","28442117581600044884315036930775961387107756345846974357236288008142592201599"],["12823706383920919960028121916185919246149919264391477913126807487894337568749","267417041258737483939470304748601937126123213198232303147707291713367477364"],["4981533677686930127827745043514722637156088607354474544369504549072569316139","1247136726887533266547944985905620555857603512023161915036555130039718761382"],["20130939169888375843593931579083325772042544442448277019341746426991402337169","23272868289866634514937531789129166471289903583886352859375329194910037790702"],["11329649792186675574384331755113922528940640868761534610090803648850056489028","6587984840371896210551313561213191744737190212499272879811219115001613026915"],["23442024320848415736636014664586362588036431062353945046503038385201364337380","26629013283736192558518731171334147063098690896829792928172782531422466494580"],["21137157369052697397803050501314166841697939360345519606577355010246013822385","26743173742902091167464907126460554814358414474611988404185662035360206298696"],["26887959618004681848632916345240498201841659567807526862718286867642404930617","13058188036885711078541454126242604973297138571724248703347070608512324214463"],["6552237721707929232161783900187656684645369703879431394228271739311650459786","21585064076123693269613770387730327711022597332142631638499820156233223032855"],["12304308855120504754587528770643713944084571338248282497245555886939752359342","26426954740123071986270236438499109905823797273767792288887383155288835940325"],["14745206592408743049725813699459657835945537512064778664006400732830407718652","13669786594224369797813048303501949796871515022855333811554911200398760035976"],["20332689108538440989435998866737729535493112116956206101110363862957775159999","26127447317596589882922517188116812129537083730915039063993348156016240875688"],["20904900085761291109628357655349928553379957345705898281634175911756235134363","12742249453512231767876483567852618069515396485142319624532272869680124903412"],["25212667113500103446918491679177996274848103029592334492659560392358372423231","328618282750261975953589265544371912271769934539987295675012257454900940278"],["709435659261527442011137472952329481239328475225450017365003563640377635324","28931422577641750632006575246113540756667860635008103636979565969852468820207"],["22597092973978888212108944146471049401239829563097098018530876762847316124781","22772547794169000867514105559846770499875988938549598202395624459597586858196"],["14406007847585542299429672850745401285265739688127535252631012563448023098901","20629994097145502024103604373421653380934244882824969340878792603723722688572"],["1183365456101742845245994834239585432797153004289273458616820670762290560042","7131944510127989627401295714663043711758633203140747011801185936047770574452"],["14414559734473433720854215103879689726003942420499999940036102887703834480048","8401002515421969355506328852628188028362727142155884063080945133987208709570"],["7690486936082532296712035593344338698151431396276268684347475402879226142515","10927584053784520106725603374822194902395431688806550294332043859571154025926"],["1998247276944903203126690282537426354143796186666925918383730260584078076051","2189281503126185139468863025221056651013412790539047799783800904089337069143"],["18940947831014706034596523949599373166772731554100766465221744817780480835813","15351175465610255372872047715901251008213204319606495102198818699201285382813"],["11903035172697060591592260966621956131722139931466266854659763304838212696423","11105495573646650363227547417058908657570058537494800365694251213504011931940"],["6095293053307690451689528505336721028075372194617259748913250302313830424739","27629859690354752958229251265116805042771951575389503378712788592756875531788"],["26340166353512839247212408160290740529748259661166487037437366229962899878992","27825521090119816118527329758576941766342539849274707327024314634729001300540"],["2854330018728958056467529391422009234075400918221203478242012869548314832073","14209130066851087351123537751199551883701794102942241108536357413166249533463"],["7324484211605030331585880862603295347005271488411783137956401907057522105617","20873533468192773965196605325122018171278206439581319602497832482532234375089"],["4330418720209101694566009633203157338159268030919490422681238001798022845802","3104894875207291642842979049615370886556924609889857920272977381716577597429"],["2582542107926875744903890092382415981680069582789857868098298108635028127199","6293141839907590818672290341831549769250829542345894757775888095219339724115"],["14653116750336863020652085251837265780702854430888831956782218649059339290174","11219722649112187427552981810489958135762711992923287903720010341595765690408"],["7643684751719926059743412879812116554272138176682867768603572183823028145628","6892427983933743069743542397282658315894462722973890444405034196407658905631"],["11173187451852253246327073783247246317222848770718468093484082600381213614260","6770158189986999101630763532052210333679816603347055787302223668208648593130"],["19906740105076454380255181167175577324790657016310708525383120379273285424569","24451091489560789022867455122442938443162667554717348749630594135954464514912"],["26441636287586737635843206736486731607357832712982994735948325494453593659977","15993237494187160709308182749072818940671958285241339993649447312601183318573"],["4240097330692887720621691832136711679251509062858353388300004716324860042041","19441479959334347001313621662844532052472546418162034955644705013306353858671"],["7912712833965152725090977381622029419807747326219939297225570768841972868694","3976000172309890072182951866775977839295897947754003496131268583445586952399"],["15467812466021091681753429397793678017513898720869999143091160315181020059291","5297506751364464965531153168807207866990204310055344663759460837937878849793"],["26714762221947184852227130803847369392207612650098979107289544435547418864144","11757033720692686655795276639507547366952021008185482745996142820815187967699"],["7821523535198803820777453476903412637023629791966523981180176023593037712266","640989137699182844214834296513208555708144165856296905496799393011411424886"],["1368863542066870712575857594113675932726081206478718144307165482044691068692","4287954076521486715764881635752378629485638604376701656469335956565656287533"],["15956158992449886139208328486290962184377894819349191166472447100533991358207","20075319850572909312039162054279763604399660795218117027483691913063732353737"],["22579658157275935130635517783248354021629883629639585258376437839136183113503","20071493643583450299140685146945737018374667269420075533189581555511669877795"],["6229566481343834784021179698358596229542461978091295483432630331847532876920","20657398636029301281778570380238528058529127331829078945200056539345583407108"],["10181925511204050579161618472977200144243681783854832115105652383156594512600","26363954573736304238185117450747016992213670605380827374053635731300016742783"],["24415084344626382786167421535909017571424568788372659916142370896713913077822","5704285907282333325555059023643824757877994441889318077630648749532700038961"],["18930433666258487506479624500534766448815538381720823089173018846008777384942","12700486320064146910995706466749886898825168302934543139973466246441029114121"],["18931365099336816202563491987448473073363266126552466497693947506243349058246","2477167703232577482299316997114422951703473752448532216864818279675712930618"],["28408015933061130847786023717601836490346546154778056252905787203583157495676","4899048645409064623681298444398388183813621317546281682974949652037921024340"],["5731221396845882597030182722678388480640336154023973286322058041676270189177","1162674338729768036013909216775177696046097730753501634035597172238359693989"],["16360371171316511428233205439604468582784108007962566014225626095789539858735","7662653258529583585997323846241513375062291368807584321097480904423306389193"],["13643450558579200789892554740288433515180709548356167230523894625819227265792","15020180581351074541310898058338049013912043039376643740086257057981584893062"],["2936776252888439143379770616163982654285138345677394270830995544497151029204","18079427983740880163395233296502435978226154015234318044254925639304684409109"],["5403182316869649350703171491079197851577104743572071239849519559916399482640","11259234255785046116992517920260725006898283992881193807962035306365181005520"],["25629845223371141119884383227897306623014757402778857509076641609280447664774","14315788089250793248868216260965191483277026458989102640320050796743648497521"],["18673499924195399531374955201354401233270289181419081221157017460515194489308","9245675508206658368455761630993051742154727478454681172649030294099206005925"],["3348496072898075949534853701734037805292528394807915593957250462268018898004","7912736583286108172342450720655859954351235308471144494409123272904920481675"],["5086825980968616828010818323944881582675778845820656885695450816178736083763","28375217231701126012969873221975297447710465008000783875740078690353536051325"],["2870042564538276831851889417053572689343951697111834225729476999511674788652","5641494537458170804823174598251283576163653211453295285133532450082511353061"],["6296026006258601862431160820767378451967073678502863388374879845351829536134","23097403665139734120285822495453670978323664132170457266237548779374179502842"],["25721684947225344059509972123068449548091693788746744062221949269090745725223","12669906618612682864874318226310333642616671272506361650982396138231557456966"],["3834076252954803985463885914512204581883089564885553065130425337765207278635","20591915035944166681010766622091147932271142299132903199039202912141769881115"],["21586946342417904583246186717966923522061130776021559177826138289890948557768","11486757654335772427929080875532968755995756858115578258025111809192973860915"],["8465408298170344061783711951756748936865583538951155375816790221152690075039","25026402076094875211985478502481416750522921232358382917448365879495599167600"],["1253861832173478962484492527195072186207698115551093052440128668995692091125","18652938185509559263828278696502000187703105950093239097953191769771631128102"],["3452977421452882544040644367830834408987826177371310004488149287513992930334","8732098475843212134845388941940915012109238805075848581189087001714077254495"],["19300440439273008971604694974584795758578492240979189727775368257108241215072","4894460971328408029728635013079830460969651457824668518195642019343133832913"],["26844374602350986930327890289032085065884608578499904650715907625748182232176","13303689523189647529262059526958287852822524469418078299032792516624606592462"],["26792472996726378274428736419174441642625152184505425895923232219218121081841","26645467422735802717429269653258364401508134762954984259058834150205273325178"],["23870980111770849510951523894319834315990397073474848600012526661422546163804","25250188501654707653210858107532024862915208633990768756315269004789608770979"],["9262659326180178708649123191648467977605188352647874452035422238253003451004","13506357782249992553923828107924755982059152714633801677461579284677712560054"],["9957060672913230876301101229904318762993430051935671690424762175504931809182","28450072019444792938521968744372908174460775567672731335720769586727799790000"],["7966184663180634922964119902056132065617193715752792023104441322081409662557","6747657922653667654626801284571576006801248918444578874189705185076965377476"],["20767879622146442766763756714877124392457439164283993246681710522894860607634","20495065460821884605520102114344854026405742018108988631228393154158236202839"],["4245642912791483686646881881523027727198792434906040430445853393744046047620","18923110250312753624507041858401361102509448099308078552364074807992273716904"],["25934095365164209713144623538481560071341396668181623646729411033782976567308","16617321485793570172477341126959723799282178176999296815900495976470163066403"],["7822656698054184929954123076349527376955007836976981946779845891588264467047","28015564922590861603025487305724097283926012980725828965704495304276660559284"],["5636842069117539189453430021399431810554364731544765425116154412432291938468","26565421579343858771168612269890285490596676100061311356388942638359229675295"],["13714665594539302002588710778014169185396275691887846613277388463493659893489","23823841460405051991918684664628549128010649124044442783867866021771713297842"],["26814808011943233066325628693596364151431750641561036310244254780096687906556","16029872386995364006866153968119769321530098293684566185486380703414359616346"],["6868727835069342697739575603125608539663273729396356515734160227844705308203","15469146229555102211449491608767503729424602585225674652418941466476100189939"],["8991510958513793752283071007747777067242204436331649133216921789098219340400","12966703569812785268127402576952887984234507765874790231416500680401122501740"],["25913166080381574421630093811845281366350429965968360838058038998571871483982","7952541421428482534605277207796725097740328494576453778875152798966740954733"],["2808034713864788438745334726451617757092478053043156654758451336017450001438","19594010129899430744006528303858363296814415308833036376657333014716192662409"],["21513779412523061634358911868245621389936288191837777629294427389340174896359","25624935436610257505587694853367686388147139801492962399402170978324020323553"],["10786697298323210505820596184329202741099203173436486240579309329607778962081","16934684030503722915195025179690352497745245250976820557258585613574618805866"],["13886983706552011866569689197133854913548642326230346941626583098896066883331","25891332965088441320625776049723801608577581016947200343412211055723401796538"],["1444665615282031901350200443789231853190309599896543001994203601434288978139","28844941122242004662068417876739561029664026849384619268321667363072113888067"],["14289177158812700777690129265404581598939099449935240188184256533040429881633","21510056753679678446920693061889149892562239107432063432058553704062985480639"],["12180744980240028841546629927816792859262646826158709040969486545030778149109","18150932023524761452351782663497838697463128120702430175705958942037492084390"],["23254056204455880564469003057825845862944869918287956688794611693043337858092","19400083661343534508432495033564371999686988348637292531379847552055045118775"],["26566714342109695162604918257369591489258843084700555502925775420210144136307","454848433391280780275349810135456569218684799411302138948226477279480954126"],["4762150628096381166999712119143044563387139803533007665896850952066486498876","1468121173428208913363486521425224609124395443575469829321669926316563296807"],["20310261948282068102062964375954481706189903928244665655976487919765813338037","2384561446764777694462763920027462738253458577176126888426008841076965186706"],["19494935478095320804624703344004355380884313469722734381040532548894728069860","10963613993717653971978922513737489774579994209788932501746093076771772633626"],["26295606768136662888194221359184641007956875742747500997665826215082825851664","408824448404766212978280665714499438417416943401597829866813528972071281647"],["14198348124276235687149632046109046937566550210477556781341375788651800784854","969010804440722535279149591968590591365353267473309729745861418148753985401"],["14189760249684008852252818409384380105761806358722469895264490842918352408535","17844247889179717946839487954259514691045175652136684328369343344383613630230"],["2266111101521636003552732521456654107086461336896447914714488963939099414755","7362672177013241146680039250686049520272184680065438001196703674387865793107"],["11968363303576354864313328227531063089791304346918101952260768410236971644149","5037259377896099657077518848210734482683429823377048936827154209736797076221"],["1929991269096847205632084898802013060585218085522623517294985145251819907928","4417218789024676963493462294997945289178683995173430411963486921379352033881"],["9577765033439285693002166392277507523167266374401454233708654423441794279692","27292944994781318644575721661576946935044684038702407890762169858289004240945"],["2317648841180998497812032056259722244433702856276077835270436133435896609410","27959041705465345864919755708968832933868935260321071804147463262349001727382"],["8916955147279971989508520917794259914510224048467482366524518330373985202649","1650105106661647568360582391580517619169357557162478135437469461333376207731"],["2814018593241403855550515089900579708961617817546530930982180751641260255990","21742163313295031022808308273796004812600261800109536830016597418027194327120"],["7810398860001344667678092435783930835127299747931327048033677267709732953176","27414702458280368827599625074247543710469925242951806652356196666908030430672"],["10237138668900229758882943442163468671444475913823194710262598690740870617988","9465237005087293775265380681899277355986256537777891145545577541018847582492"],["1703510097709460229558269323727643876214609693516268473279160433550442481688","10615984497140261512305811933342718011066035076724461795220979114801174682945"],["13549236934251194562612560834173816959986046318112120966745966232406895403063","21567836873877973229211263409588446977817375352778277604874938921147541999643"],["16556370678128317971748943299679392360256886320172919749869039066902500571160","10856815086307255474128937346338385005958971202027986146156497875815295345329"],["22892059905165100888898839173221995695987685215315610746565651379640589315292","4862102488569405418229944441047743106086262912242681070800696200040695757354"],["8212612006738687301723874318934235242027047173669297568226449126486036527940","25795129841879647843208257701574110249714075042730075429629764947863269747713"],["10924859904795402339049195914508853152680585752738898009536112785708175828996","21991117355661404116271901610198321157419063304996075888505589085798759183665"],["3794541635767966377982530100966798051598604470454612945948938997485777002726","17306991960042056977841839800493466420103815866025264895176101500280638876005"],["7832928460343375859506452060416905283113527905330971165203665491720142370476","6484010005462632609581824481667499323191209049932879209465120602748969793676"],["28413198789983129418313532105116205104285523940077435773628383733704236782117","5854319632455543419289211350939292730337313219450288857424894895508156359998"],["10105449086533661725143890858057271336925818189269903544882182790743480898121","3057142988318441595210483977014986578250340728691477361164841070701531480357"],["7328264337274497282488681330411628477012231967876292277428407689272673964747","18528875679395053781478782541593261690822001557292212030707831155553620799599"],["10067844474229416281879123590185958817967030794672077343746016385322065779533","25249054082969835932264682388781212393030050650225954389435374521678373231837"],["20334550287417318452086480415942341090726553664001863266575111716831438927329","15792038981070644891139264879151401701504384960049118876550097812910749909685"],["7632857083281253538913840102764238033210863208274303454192945296822127365551","13967206532214832048308477550421897399723595641471372273236031825918705099564"],["9706037431512381590934488056970551776236478220194799657319317043948206475206","12065339000694202501689227193783092610483552991075836847283767332714306474461"],["5357080351185403508879353989170864790873397990797916556681867253820900908253","568700668261997019128789779233032719136059689078968924829158166995195579285"],["19734850115666870650466581247203992969589991591218165697867056538462786429624","5747669536168867562582762544894575141339259770799904079587486389138216912317"],["23525604809585575144800271430925340022197887940351842360359794607739990560543","17212443542182623807661428418461615154462050411773690875546155916271679503829"],["12558845884113149559546019493651527021170234233237140881437179723897140718110","50516519396778930584985493684053379313019371928567890626940079527883088277"],["11206296797640747080183532720691166268221832188353812330935896703426819862027","18646981584690155438914634147244422139405272716972667697787141951054814592357"],["4131754555334228588623521136822224704397836656866680088011458269131535830633","4754870902876273258094630400850592221499288711367136820270784824954965370111"],["28339670545466013663645170157939306564982925465197657451682852931767242620978","3878296571814366390125033370631740978346547986884868224967424066854143155878"],["18220214615380626935086190735167406506313790509198240803591737229661745847122","2086561018835294194077279366238259899383793891610351082510454150824335158318"],["19629034551794985499527996599253928605070100420434604031449280444377018075450","22124934912011389600963695444996767214432444265629557542985915299727842214178"],["7780357074014469213621641571648840224370202156193730870886794189480479548387","16512494952734197262060973850571459327128498303899321101052547071759796975192"],["47024597672035243514484721761840026210691189877926505911251886572164191176","695139644403930077975166658152328494925079180178764988547992878066614257489"],["28551398347556276440337234365047129859446552369274848961950974862340665148325","8551258831645187628914273186323437913089026068461261278935277196782249774174"],["20653963641461673043484368968190751701719089193272894609577357827627465641556","9200929566504948463612893237599577485683187460644421440352589453040703214398"],["17952604471172554865859405756650096359493986151237988038293841918243970645118","20392259492502630708052427645679008473605042437089703170474811911079186173778"],["21915050040504801161219146468663518535685885746610630717847553328444388182807","21572042721436780131993989515140325945942721591327039102949614083540591244338"],["21627857938483491379879350851740317083095558722054908953954290316861629455330","5802741320969092289628614857578116116395490248260800822617802602826230594477"],["19831266789951161144190679849060494520393130454051113501793032294788478022613","26143863817753268818476765018452502596609108431733903252923289805199583503122"],["18624671841404469912723418818363718200060845191994764979596866815065968311213","912780339361457562341558131926370039405074037574328314423575530106615069406"],["24264702441926924937053655012661276640582321709214796232340399525383727187664","24817581587372530822312303839469176307763193537568416167522307030807619280050"],["14126803626772535789568843075438376304172278606521818168933929869044073405994","19464088028832799613522611835000037705783185738304080429485539490942282620593"],["15123693215670590053142842548897322611476186251326035070443345368245525481960","7148135796424218830690392897319331047166970144055163484279299741383341165399"],["642128115425089243530131607726681048269642118090286330686963176005395806150","28656863148706962955300232222923436370031260684479913128752195684973107348200"],["7091879070156312998342984747481735734712975990337337987014787171950936337606","23408564524827049642152405171425756582825669139682494127198294794230361292019"],["28689194819437202492819029587617128777222769529443294734401123651586899179184","14373212725956767498930116734046133428654062900594002105623218807853386150743"],["23882891764301365333136930071791061618796112388956363816857332825117691010214","18663939881170592288971218265144919547293293580643328985077021173458624030792"],["5081172296566048787233584337655587740834569407239333613538905880706123253029","20618746707186517349216776327504820126564493189242833523432302747400950428554"],["16130399654280099046356151385537631633246932103980729431953486444462233478599","28440866976556964423165272773727382749620496062461441638310526094815049225842"],["15475371265367804053881005997622110211208221496117875343434236483204479514137","15331359620716104325621920390968280394423981614249427497208843573944001051043"],["921233676025644723614963064778116667284898560506674838644245187690599018724","12133410000199207458359777439218736523691676409093744802496085924978878305506"],["23378835736179634412985777052747457651916429180614617669845961615567806712273","22496524131871332333978256259592303514302102262161188525637704249966490464856"],["16811084495604658231365076044294431456994225072339237007273828641521093223802","25718270881101230867671560926781685981758062533100184142079015429874013490898"],["16725883999235573307691193922880993613736567891926876830396796057265283274482","1278962055320941850232920716158766611666271668600083829702474695397322325040"],["994874349093737681702226234349937806646061718353854513948847433998048078733","801448405245243553184195898608355416323110820676744800848047283320780114321"],["6461356795147370297769218811508515772869607453034670173261676769712596975987","21157536406653083493074589176376542273492699282707605590918431070352803674224"],["433919180454069415352706829557010429354888986011332265826170470827888480673","9503212029204629212040229966985399068363987757757130541661147342953717112824"],["10561525961016128201301334903264413026672360977447738358351432342041520005304","10691349480161068239543243686073159071889639945690143669866505496309868063157"],["13379417906916116963945194830983130314263047521745661408870514511109280438648","23919842657397873876145758366932370599967832626831870955264423643857272765145"],["17337157963933523933152422977432100850214710649740899203071493661964721420714","8319907532885645799080687894378673373021796726910975532947754846284124204208"],["489865592886473852116102590144828469657700311141149438645419513792813641697","13654664979503419580445841727350050147098166707514618063593334698482694426869"],["25515983402171861815312052226368369333696664666127777598078232042621673940972","1262620952570355860241255423355538264812105501497669510761553951994125242692"],["5018655299514883655060718130690688061285207806446062376787631119904384272314","1918881314027806485893100094980725088911111241103773661889544374031026083017"],["8915603307702299777274011051552271303215583073652846139137826456455087169419","14626768671402367447947505131564734660775866368366533889102844565703197626523"],["12539370512131696400776959376656618220842434614939719564407639661291956299646","612380365952980011048741619356799112290923191920485678537660666407562921691"],["25826179133454233483749922495553692851453328799507175334490572643452064419517","3921238689869455317111912768757919191269341292586727561078189723393994148241"],["14888613843333950927897445060152221253866593658696417869311802538540244534062","18490689491453382517872538694843030128592278672619379148512944012627419401880"],["15645102303351668523786419158522631171867040921017238904060971669049206236965","1921183976988962005134727763253582945422755248880197403696217387087591670220"],["21110728345213848593194147019334476974126571360889343776758752840534571686943","4294877993466541182547866408875134457291723897139936037025495193168193639005"],["14555508263580457284569824769494778664618274619923975159840999643090516424638","5193734374983482570618302648722851168323826819047210285280384981178075601898"],["19144447251796208723338165753623588290928349946941905176351708462805919508836","27421724299534623778252903411892989997501685521736070092618564564958773438015"],["7908676940628028628800015398222748329057743245101784860463575338953635244971","25943270343302426202883506109314222444704659169405629125737148272493439831781"],["15560420085949333934054853741794956292471160453784099017314573259110128095168","525419930640663895917813892427756255728536572444720111000958022599337087612"],["7797702707128511179699671762354559980367154626231958543540015314436840319975","2252518200329821441899851439000631839829514651845652574848134887976445300009"],["18808991717011204472680975832712624708089920538516073413635295768786314730935","5590151809345661728737753905942461051107491100803195845537070210842476722654"],["2114332878829426852476311425059685920986778952756560736408224174027461423515","6554927381838648150516524604714367062061767314591450270407404786301392490592"],["22431432913965294424805468140630609516668695237535384290002512876360840757009","11164509560936142897562445268647900797861777780077763494831087950204129176974"],["16628743474731083532120390355955814275407447260930284981161818844480189596768","25367750577363258096504894286369819762963369960284088450646012515495156996460"],["18246483455329945709076166967829626664707978180198117809015031667117921812944","4767729072482517748599213917751351711270144960158211108877730336478185416103"],["16438621377937016418775218946017931329900981396192876421716181259856458329926","15818236707985980279257775534750866763629321331526943364358173495550715937026"],["28480779507859859032639445911841798973125496279241962169954439741236580079705","9708537147104271642903230971602778686192750219456093599463792375235183691113"],["20330467549676473820289736139135260945552776514649601478903949341043092520795","2471955364919539881948725453133388057596977891639402144112647952571214752584"],["4108659223947169973291450305064817789702806655823139528253148367600722205982","25493817692629040325844909961199591441303663308790096792029613782279902443305"],["28229523420172621401135282232870647698816862179799670065512882221235289180890","8962255113596984404056906769393249884548394102176354582767943835373674108259"],["8732075921213131738083860099820957898978334370752804598814141728453535649287","24055155380663424695405101034966306511051641436623456506036555161242462549923"],["347927129726645062890616154559296731050216248030993732843651491498351460265","14945154735102299480398746293436784660116784584350522409029970968227649122797"],["18602827978756116584868668759806109887353656576481446870591665658309303199295","23402259073541639494037425432410250191527040033464599438862224360664772392907"],["24070510824700344036462956583874355354743687068516965017854674291875444832522","3875099944074037902928924955125864940785606214450075200924434232953352886539"],["17308617749938100022506671183502837466350608553931605227171306487295525378888","11180093019153581410640968407914009062816287560401608967201469696263113022798"],["20966381296419266956508874411978061586694246073171207859188542334107015960452","26821551664120990840094112419528187224436212942930922595898311648003754617542"],["4626617202075985463893097059988748002865276404934970379350613165386647535982","20484501873866204332718366865400726519204900955578524621461868393613939229082"],["28284203791635127426002881602739039489099858196621073814341157542351675952789","28704141662463054679238163555184795172374584012961363646287379006552097472137"],["20337170884796003484691946870015949209870805451058028428792289599137395961402","2049945780941469123686612460738240314850360854468207049779586457395024350206"],["26490751916977792760539820483182810393839907823658601441328744821997921441984","9835405993130437820366985016688897561334807378426127453615214705344744714244"],["743051899594654890982668053706245812439963290369649410069070887018671527153","21556623682329215913768019007859780509826013656734497166464482387742847248323"],["15522282649591092795901731271435076822109553271007955729859319098674605125691","14006310607445760529205710769144239048826926527121500434978224075848013210656"],["28302666271620225622925096563637745109005068968339420381364490649023320904680","20350422759279637321941329733994607476754836892907954081959342593716890998180"],["8645056301267296222274126522950098108591344764519039428247803284884616720975","22857127513279398096183206097777004817570243310177447876635973180926409929695"],["23353695128338650261729520858027022085304532277205979326322094700322078524699","9084083013952464149154470989104702268489672897413985409198004016756704181296"],["19704897272937872897089767924046317344047367774947442483436084895307435407612","18083782917039286571156735049291424030520525347452639079026067662977815068745"],["20577899211926370808889599180174686500012990753791187944212760265006624697421","1449391231864633199652441762756908504065546481288712922081097903034389127822"],["27509715189440498197273328492737437197899236725780060166451180029610555818213","12511091944543964059845606045740791096012571686664001395284215053967776237079"],["16689458012515030480957310081489139704078574599818338917529764741100208365376","23687381802381401594014740540650757012320757663156383429141749840955651825095"],["3915083338205748841471056880308110592646496912353155841178010418142684605641","2290751489543077451294603375481855204846619562156589052389481691027072022030"],["13196586887416830122989150088684235611702700932438332842966895715237105815415","17396233682204585110098453420122492918989760514792377543286535226004999497438"],["8145115086178986634867036096131479508170720397893557269537523688514590119588","8661378716538345326983420586855053969279826294526994423453761362538576014108"],["19187726084513138256875400298104013224160155759658361636386675073999806539542","26890279723963531873421271582450416009792396842970958392718843078068570654740"],["10857696909026863346436429385303043282434116455914069057104383624603880235849","22674529371925863517137590664274355717173952628554704740540973333034494913150"],["22316342158094678288704200906792106784124519020144401762741931358730782329084","28637371565526687780484170222547615791862258007958761415267658805907158648769"],["936693729677166555906173801733282602248994111273729529700382838619038947311","23772540738098109663181681412900096104820892087879159133652267855276279010037"],["19773502752734973832104686369261882579728358842904470310188968417060899168844","6932998798396316172449647887685376356187217551615636773122899041176260145686"],["16443835956029826683634787160458102034264933898701532118314148751475455966258","266024504060957426729025863632391127780109506481986666601658486977969681071"],["13214134007360035093863906923288797117526028785473822812542575389726709452743","23922067356846142416394254309979206045596020870675584114535973292252580664698"],["13777913336055768975296686615074727203228183914093449859900285016544113046924","4611482834470165784273325790027785374752416820904219937663612488587063762224"],["21993283621652468948731239075949299895465257872512734365711440876490553048647","12628374623918043715089431936776937988563937029549259928598251229198449437685"],["9442230291359126977055079111633194440048504632713021507337205435034544703900","19671066970784287998278473301810156465371834749488490664785296552466593666991"],["26735162051527790979600897619071661074594943951382783101968190642898367581096","12045603167432206935209709726487525757485728994041421103777736913092650054920"],["23191920782199372823724237137193802880390166216820676921448200240695652852358","15552732143985303140428621446927110576966373709618544330531365149272484955295"],["16159869125474326055386962592784872958396655453834052535483301969400830514733","5044637208598261112656579190698819558028586968111861326240235198076616512304"],["4707426321997461680769889581498565871069121575872531096605323016954897139190","1925217287800805747127211352787928873810635559247409082143778520624910398476"],["28808961423214961275000846831620138529985690426046354887269853452827770551688","13244287960298234790645580558446121453586711086032083891282854855434107614465"],["7285013929233676452299882965540849656196711396403755674449820198521451298338","16476945546342943967294139428603916786954391241116350658212123268556872043480"],["4137808472841429972648197021424538846515119482199322784545319383058537966533","2669758267062643304665831195716389306011850032344471165396841292611288455039"],["11393399841152905569917048007983780713810685996167812867000800640554998005689","23463360600077001243635315565795436758388802760977951245835518282190358289574"],["2837688217572823851748079508138666482979373131138653113769107770955912748644","20042815863887761472192233212943266657014713144354326714642412637606148995338"],["26294164784059466092261979417480956326344406268665235028631586031462253133470","27231245595115725497522697146792789060595581212210995839096564057854570775306"],["7465157261844507226288219567807241856386996793554719582792695726339766675893","26329311663324562281511976241661391913145025322015638338189254419830452572572"],["20295241035861957693272035957899224790150547375874153186618697364512757620949","5299497709137123611068433356998715291852853880930386460020753753602180351149"],["14162348712635304641122221389797611930207458256065821639957854346197360349602","2389103293401532525734852237224290573445738239754584681485980374589545561418"],["4159625334026395560511560866882730063681824214598470957329784580103529641226","5013779319739607983117872551345930179977161147073970941943950280073015503457"],["25068232911858281280132526717388119226933988474571838114833886005862549464867","17927690881288824991220416137492987597943976528102970174274352793163131305634"],["7227829006474755932978331478957678413850653395173472538075090369462447909899","26521352130615841378413492780294048507691337869177796082785829081813861166073"],["17487442292918538273123771744012229637963750265693298014602302163512020940148","18255789319551514820966786446559185688131714694447150607820552505682220111376"],["2048265563421009384543468460759797909718632838319217967709487696653905314213","18373566077887158665815854751954094991989850065793147051477578335783316442741"],["19997869284513174259964139975498713201814819840824307221486616001848227456835","13146785252973573226790046391533725185078257927081328357813354657721878525877"],["5666917500656329519260640193694964640222203210272815913074485481931144966017","28340203794298445523262261756877465873950522595051179486367474937316951878122"],["4393135021959772435409710023591909827587226018510512085304292635421300755147","12769826595827006015247855828914982885805276503423711167717208328237269991948"],["19388471536706516608588465221640157815193785266144721090177581215913679522084","7096832969553127900653862627292513553238164361704545372270172382142314098324"],["10713499326760966935470651921899936840732329430393735476890023859543103023811","8381879948212989592044058479324935898124335758516741423929482951970376189999"],["25316443518822299548763774844090311416050518984438265362220091401025040410057","22179733943149277941098448610451928308623525355850516931501983970187916444698"],["14610192830483537827357531988263125393461346368685973362989197398122610421049","20989423744622668987617983864269925657800558575419154843317627018626878872512"],["26686164276877844099721443719799008171939383806919085483313146882277908734646","1667786716261673542845849323287197808185161872448205040857040210738148997383"],["11474494982239195996954843343622350689309237719025153263330976716416064581283","19205696120161397506049116788275495896000692831038260482949197745384443254524"],["20631746817909549740751706513390953593535420839991637813605388316102064418473","7610956575466804288687979063816039608516569429593441419270425281436995720685"],["2200994926369312140445089428803236298487139565025182087550473648320533522014","3172197078045543182576632904917751903260297498894722283474427580529582270194"],["24118173544491709925535984258906901491319934263089707973054944082511733573745","25865522346156205552192448644305801333065422613424354557576090856395208649505"],["11469382342684036965764653280271147314578034277255443349737730922790912020798","6189723578796085419754401016337915362203992286280382616673662242048709038620"],["7512536626763722489272217136097871336334815039360948083779577428827894957522","17469621299505209910848957928523439603507059114535631431336212199088794008126"],["5260001142145937758094941488998909971312139646327305649862771950121594653755","12169172317733208359398953675388999948936195170652447004528939073989820939046"],["2126322387005696165887347544068509610270373289825776384488274793771819594013","22709765161876602995598032746308959592578543843325857380227352767726924415562"],["3840680423087837577133200523581557546569823149884747140751591560286997745707","11322889392785938696637253637547379029020784349364816180290738285803026584009"],["27114206156834363925471501554719979941724481897148515158528970036917536772313","9200694308381216918411267517251631333777344154757345661654921685713968140513"],["26806981938349078190915069105295898675460493845930018245434417384773217839757","15633691115448065189442626056975420293538143916035500318014014212801635325449"],["15333884530540484460880457845280115225161941332780456754550709898516218567966","21157251674760820335048381568548589211038035977200464694521185538943427291621"],["13038083830002562122665695991657349736454261802218424047696146856832802012515","28023652097008867570940089028288591905239554924833897288923503066015726531349"],["12603804779591273154867778804258375188943515081761833982121073865500939293522","10058424996388400208841248232975321673152768462990992628853252712884014817125"],["297444892817447943753134194389288181024806939676615569271847011033995709296","7925975675332360655513323619217358663256010965692530894954262277659642681347"],["4044724297929331257526732379520058288178576105837154937372500826804229523030","27250295913306517489855119342410920872387535264222072530501600998693855984473"],["27829445983864733121149558954657273912391095419929362932175306298026811178941","22452872424425992673619661840431517643566769872487053050746145361163483150191"],["5041976627404883287737391316508304643136897494714547557146122604221751317642","9804854034998467386948523570801679802785899627192343870167669622554223270590"],["25404536545418406033940431951093196827167296159002121654966522230415300868424","8457229771362166329820689669632154448566979174886036519239929836483754175407"],["10369206267441378187070890520605138011546507062478650096206198447822884691118","28207959573918834941674702870352329273618829852982261339064951324875319020759"],["26020144165228016498548364027591918669661696630023243810797096718802946963018","23787118356371667966973438045112011931038251563373951490282950762751484933898"],["11448426353118023540838113707061185727283752302693012774962419812852358246525","1811844385968088362615784972969004791222662447907621088925640233188736184757"],["23019040480211243128924775990987781315237870148257392226391600050853481571614","7200746778622970098553488671832408209972953136514085779740360867978053815247"],["28160187465721349955603112501259440358109904530852994473137503919337316601199","4731349340671794921493745359083974891163137069911830513624357853889771660727"],["7303049708170155118546479634920271967392109392375883990268768114976272325543","19332052378601155475661632104271404097418002059830983874282866817667639426339"],["1072601063291544796557331338508883035851712460504519393473643464041970622960","22395574124513433209427042410673207312821652776139146972359057036400557723431"],["2207779450068246366589490484576297175324579751091545477079227534357557577532","28813376822298051787310289766729978018271736657439852325509258510496075602478"],["14958688690514413984054710500276580236101005920740304364383222549513309560523","28492027750699328210665228962920829221384901375337213234183563547069987622067"],["14294225549278890131141306976053197193093208986997005440153222430068579841813","27708136300451149061211425323210664989142684238425040218484088742826726893084"],["2338379845619727117944841471235498281621705167760011209023921858958662366702","4702049251730650863185362096535341572619033238291468520978331865506157204208"],["4673230459163976476035633746288175947843466640243987586666373330377480245609","23616197486705446028590589026525613797333126781517635348438876427289710296279"],["438372682073120651580103458424898188745846214947282246518788652860594650156","25797413779980618398820346620974884366202247467343409900996154536002656346676"],["9913540512079568948035447373246036868360023921166851351117501982674459352998","23269473662656893441086017158153448269349576470345007089780219670685354761718"],["791308377045964559269031861586563872044278108177754198305966188159535673396","5741552034375229826769862583478664731269620607452536146835682900444794138138"],["25218045583456489731750078421717327851653766204795039452423543563006701140421","20544621219922421365640934127849299041817284929621286442441870352137365941692"],["2775122651490517805726436646156574014847154048206246773556205630099833422980","14945846164706084821208056920664287914601627089121334776303278630371689299758"],["2813771204194909934971726255676510497414753696015964942161578621356589332167","12904647455592837143658196915195844535716679054938847334675351187867621138249"],["2048559329932467715084064216996356238387457685081858913735519381092776457138","11598419369518251920217288008416618959526701872386895493951039216453534344697"],["13315051774350609706400646314987882034273379462425260267925689530430471588081","26259175312104911372356041468556975074201229162458013476791069498824229013431"],["18948553630036127382448784335789764566548255130785170877393321993024102970842","1297011221039839076691192614179411747574001068798422705395760220502057756370"],["4969903536352326766665603788366925796608766902680643237791740095927173380511","2825530067292346108880956431003041904493731544510844551141267553881298021306"],["669109899400586508928874485096651436331825518862303545521611952509249490237","2633355495249401532652513799896798128929160184261032340168971641073250921112"],["19565984110416228061312956298220511486147176373882424847588889281208864646028","6916310791590560400708356291659348635101525416012341047651822389025940829088"],["6850385311538121300025989712822285245468383965733779161166603450037198181551","23889309963263420416960996017776488977523807244782470741766777990212526276955"],["27267653186236771934853307186723493713126852289856396301613352886308128050739","11845645284884087080874643407454219450878540967947928666760245098951593740892"],["28829252812852908656458971611618048377196093444404043933649740749581310813732","20679329386078398690539830395291672540141897849373071421786716234909448787949"],["10146881902458578532508590617181954046680991439786403741579894911645283159283","13257725385233010397727390102498060629351573991473445742093957596733282470559"],["24024968754223195557005867678828883854177216679428479076048836873478557204052","21485755725738429793281582012804989881733876538166761145434670198822428146311"],["26467409620723792749603974849813090683533480351675471554396600015806244003243","22486993848178286320091378438011823759224665792795778661436886691247312702633"],["9903302561436210248740271664238803926606887145150066906065005737738821848958","8870806826410478620873024633972442668546999692573896091258796249849568329352"],["1678467955460467962503476295396633613996761619892329489803194011460359276856","16297057041043789670706218509206511050274845571729397676361573254231937252566"],["13847019032913488939846895128159518838698617292808393979033172666975943227869","18966901331036769868373931212935042869448206190216549666695510547037381556136"],["17996136083238719584980722479696806508791980589176220474318339202978765391423","3273110582317979631185563714320585618247375182279894818078146526547026311588"],["14763896041354861910503380666902447429342261314547527039835834742860036351949","11143792113094500451401576777395622465918125959711600094499683744780041579067"],["16281837235258458601609299422995203182625576687375831280672200364924921154530","26984378924480431813807819347854572804351528781901309780682914507263105016670"],["8210634579038499719635214066150042346368108529627427572523400142520879324422","24288012604409685724028576994266335845577755799455480914852144445890067471410"],["11682179114114166591444190007029126148958404282537351797689025622471459150674","5278290617150717591772094767034168268189058501857657692816152510088821214184"],["11317572210870644522694848108358648526684559724990485363579802476686493311700","22347372627823563590371012853856623601208143476301250328706594251043143785712"],["13081125217587347391895989987235978155188286681443104088848856728534737727580","5962556030898197316951947880940022454558989234133420156784598330868407082102"],["14969616092420732899359792896434828052303691616858904011759281589394342390343","10270645094321821584881102436252333105316789508386020534659933004656567768549"],["19846752040685123580679480817591846967043748317409858771392983770623549378197","1442661186994374921965202729213278237679750529750668382314526485245458113197"],["24495653040897404781821199145553222206491508807261213395569322797426276544366","7077613961202517634803312241905086348749813327038529465931706005918179630003"],["12812985497409430347776747033367341870076988545925290817596706967859874178591","27176307831509634767788663206771433675589163038062142957871591385966514782005"],["20047219134013730074561038551681550784674859899363072833620440919624048252408","19344599464805617581691427616361985393808308496105374674222853525512180697741"],["15998290311396723008158853062421216307784958360323436594894593527935331803707","10157034095072932047792595991491383373962816386122097760337839611547307076175"],["12483838920651952361835108621990582906565384579769254199739433481441200585975","340241257286884145288971737313331204151837004339081462706772147346385503885"],["21490770124080987962853499400163984510717538200705059624519998839581016965894","23338307243661996123520441416764206522217737219420402000313905124496669276757"],["22784092046574053630332944467459451681584445668557264694785179259280556918234","20208886193648670065030582572614216885345095573925800576685924033420436478440"],["14264499714251549795560837357444094803340761331354140328175637342768618399933","11734445684069324232096689121567242879833982387582741303807743405099454133765"],["8585317613365036308973963121495676479101089398390247146695834592275143960821","26997432584371923793269975958462947859329605919933836537903447221496550166617"],["9680497723891467225386474193215515295490630199622679472091171610877398612801","14499471340756645960856273325176878998474833326835760822274849833126507495151"],["20129240280439203849524715060968282384430342817342638445923491744879718069064","7223288090461254913021293630643180938582662382423247125157574029115291352244"],["14913965382277371354520832205623644904445115530024368601925208852555002237937","17887115154350188992101189225724353914562231641879953866796273011753910707013"],["20421109990249350623051816228247634266413282590280805565299200253771400112161","12356257769125278345766428153262110762636126397956523316070495401569593400996"],["20155608554098116127552272044058371514275684055677376837510563998825294105015","27942736923301285588091776505240170698375083419403130420952713465959870029215"],["25127890758127039828642194265593850838911572987081695049064567952367187867271","9880220317507822149240320071068621085423201168142619365931032922558329828579"],["28560961586123905707989995466268159406352065264830923403339579586605753992660","19543591079766744882887986715255297308405866182005585541047410936677770063273"],["23079436440127773718386827468586741454642768045048826038337578479377359193424","423122719091984056985873802944258892985989583480695131845217312739773660202"],["24803840202526447591888944354392027722327594997185481187685596613068456304399","17446207601066905095268548875695102509203182372244905086358247578775854998387"],["28673204460805149106767684879382312364773596192388771804126122531251543571185","10439494599017620413449312622229452768742387724230495266540428388821036219453"],["6060088657430397407581493663077057895164102753322188691145802651175753468712","12464262605321260652130836574460625073296070758367475906779176215406890275045"],["3998752700254326049438495944083429026362385838201780170155563071891897963943","8554463139100135462635877053842101446643757546652186664135834307230115416443"],["2270633034898474281520642497919116244064275639547025983892134034200897663304","14540925492177996286354012711243111689181885015152718973847715366211078213987"],["23496951469932803248625872526126696707850768755646314032288501100059336492616","22409030332250159613282161263604086512955312623294691941181665024216052489756"],["354621325948693012757721325359345920902719627054046739485915709259787048153","614887736128795712742019705925284444491086362833567503672117968143376315540"],["10420984676610521780719282501309758812876710839579015702620356522471739259966","27202348863286974463971239656830443077821424505540733591576533513403431901573"],["18735013784849681856190668677916501203258019666890119524357229601051754538001","8635116365846023193152819117904613018955752539813891733294732869563061032357"],["2349370952774208433911417627697180735302044559938708426340093486350349448702","2331408033334786655477622307290227026412574771117952292355913882969707918946"],["894841394071818161538171176993254063425406572952211018118434919560183320581","6763532975394807928911861537740212948662633833065030998406018580143384294172"],["22080910461662109891605511391102460924050075911743995277828450006282516356995","28630659867682378808439708976813289198279359563371839585796691975712904811560"],["2100642637999902140975113183769181568390455414338914822688749029221023825413","16925080519086898993721780672734143581533544519554168245197063372299380307697"],["7218481790509613426122998662484870584682492371563269958213426663845551200788","19491021871779339174322995577930060165147650236412593285541124224247091618102"],["19029862003109045569780419024611685830762727932815037307202314679891701582835","14555431411702419043119864480421262367228751633487771488860431274320689871553"],["20158152866922964938875643685515076566525515219952480421289915335760002196266","1499286294532726747986559751705797285512059324958711718132724213717822986056"],["13124949888273279658879606490467977468125225773868252355389053991245154351275","26138286751259487566231562819095414095550953820245795578896083629397296837808"],["26386336486371595077260067131554439902514623557568358596893999791210730464791","17562025492319531860519750867673145089405109195856123006333632106633713721224"],["9274803645551300361460607000453580799253237387810001814604746916602975730771","22096281128799434093938158138388680048884025463972903414029700474055053445369"],["13266352090795453092471072944215155593124603674902491971739711470771061842143","5635180584836231516319557894379466768774288989110507398994188099066799903269"],["8345712193071152178190857031440834406219545549239545713218164373117711024614","14270282309843816819316983301952956018596089006959514639171791288481190572236"],["19666895378694393836249503592579606713569598530746034048145112663253632697616","27051989876088704785507864802821969019777084819230230783711009348462274058872"],["20911608156056039169865425953258112084890405018453508308742988217964546795017","22039139254369263817746634392468936393236554203187294388050611368150784465382"],["23859074403007575268864419196293983663690069108866879634251075479621558184257","9820178931790183266769931133106491685405731634313943614384053840723375463907"],["304228335005475960993454207973418549575309213876115162482301564574316543259","16869204799800725842147185737889256087508590583142066170348714951983473224420"],["13686415418468725666720556382776935880187606551258789361488766635117113223708","15275375076477550283750657869385176172019692197081389551101079448713651581184"],["12557652681630615859093452656749730956799887518448793078331433218666273416060","3806261278477686029904124284706011904796231853676467307791291225223518759689"],["26617073806549190354835022630660718532801326661394240189155078346414417754189","11710389988775036277330409282543184599790589063441382311017330746261763785817"],["15012414379138043373462816181401113082755955761297079919977779351342712291403","3890170031122528574336629006557301153386312508599324825743199661328674768349"],["4503113309650887420132124462478006195898333973963475534469636767945175690039","4769824106284231888433951865115129777425855676644389723900945029619404055689"],["13197528993628479044007729113991859037696784300082185862960566869436885566783","7759841277724925573431771662513227032688801494550613374813231272466409375266"],["16866626710933181510212575212792365045390616912247628225113281285866801810359","10165008643228474571486145394583027716716356333585479005251643539807773252849"],["16602863255571329983550720478110599212590828586440192186125882036092554899862","14914158950483347438475307184508129807657014062735548747331773718913129138787"],["24551705770175645221231356627397246445705949953353704715271044767040315389623","15301807191525057540461019750132034971808183970494031808616129088898265569641"],["16344218519882066192535534959203968027829596688392583414092787951721933544970","27186989178996726119959798911204736235159342671723272239328796481745556508873"],["6702970732173760808833963676483502498640304126234090226155095425091235764454","12684843554373397516222685469451676559187285391299445034643834667409940397105"],["28501035013170776161375091215498838120571749484648903579045263698760067308350","10959029163529646385106353522067660315495473229705891392980024932518816298153"],["12786996677822085050329275436986960575238162311111276139051290271665712620087","25410110548604037126404749677138508618665969511387959347255899090551213035036"],["15609898671122690608255517697469829473725388296254608867746435835591250795182","19438698169589458265151984658970561898037245410363358483442151730180722463862"],["256227998927736414321721810679864418098587731511374126326105404006081399325","20622159434468128199618513909210479044647303299941543519695746254780312993349"],["25859576916562270190253612943145600212749466342805365381065120984224948641993","17930132419239244773716608460327969362200924163757843390870871285411976033463"],["19425515858804856751193196063107407434021533128351732156550784400117356487348","18075862644518048790626592239655787436948566048969726949252237730179426441058"],["28745088603522722021929033444747140729652972038638860732892791140689610546644","18719434715822966941211299652926956287916871122697240457171618440618394696545"],["25900008999185626947114653523460170949886112375249604599720249055785047708565","4962570636184090818627512085433199291729351270711807676034428274115406980292"],["7816891442188671566998529324231355501441063420643598388072171413802793638556","10193764013708340934058025600357812819147503782500557458389607248579455217617"],["27669438500229385752200128380284718391714069470356710610999214295243796909947","9246655609531158276353431045930190479146891466148081270073562534299805662442"],["19761607679972152099300763005376911932166657726876176848370330195368990144651","693275593847289620965221836514153752921471352079673968970802529442118950370"],["21425855902081830728037275042268799211564724157553085754791028130142010257678","22861963453642662504027594337977341057668111485357731264738705771360540224743"],["20622809731853411902108510721739845420666280550220821644091126649185321294132","10472548381691486189335250704557424975458140536012511636132587838360567089899"],["9448533742878516994184858398097300683081769954517527375283527393278607485898","8565984632638258912484933435611484913508344067883686264798060206158929167008"],["2915702338821547576239535469531053173395174234334820784773226126638333428127","28443265164032353352696507249499469429521725652611551566203349173631736138145"],["27385568082784016948405631594648464615365762237146054633116454580744917412617","3419294009353958518214555473619391818361242071926004283794699335398168986097"],["8670087137350841712881504890764273862016211668904935558021145459819261161474","11688922029638940187786478098155296654080356180988027411236473778113381901922"],["15997013452626754022772983624493595848745192743768475764450186041432188145282","19952065939115415548495675114240309002851797808568843919150403145939610889022"],["24005144201912607289889458483342308646248346443998806442324608452675282200727","2649565360983772451722513247895861703787402626737919874540729535327067178040"],["25591850415763346428080346857383966054498241384313664548868534299477511038243","26380651658058691799138974257847070338145065969673753291323198077120629175241"],["18487499170142950009565917432723893063959745746252130461979365509196256474957","15475423105400891091616468242855977066565636519859706592968615591727170049078"],["12568366010215363959515387340066369891083206696707453990066735482320241770066","24310115789496664919952437638563608279629061061736272673346757952878114560359"],["16751844670617968501065876977333361318598910034712362480341219365448983343274","20906001705256257343535542756518055568958113219798812060875517430518065190658"],["18373978973738410488998462748471125134028080873598545205246204989822410510850","25961796514582740828273451350298826603418913784904254230925558403266573155010"],["28888857829041227177128872299403258210948558321446060944564005162371354774234","19600330915955758412005092736503646165777911594981778885714255713623380793703"],["10107983643630087337479495824693424949133283102499117962110003620992679046220","11468678226409622047802430494251124283311147173846621742201614866206026039440"],["21898538031384309433260731021917609361871341880184053222934502504065881219012","20779455371108684102244563943228050916975717954746625001723361307118927040797"],["7424064506185639296366440883734906912368248138188651191159072703877235461372","1313843218618463556096306189590879136527946563525258764603742887025967730442"],["15010500588628593606423279173112462893738451773740857055392631311381850048293","25747622973789844357139659809081668590946125285117357606785770498727070956492"],["4309775151042836492255625377370293103577176607125197963561925434873799035401","7138939672617581449813312618469944644975126219066510305690955348305245282508"],["8087324209751978635094775399164956978418357896931555819680424556690066815772","7066176127289139956802771533104558745862924312419099242689583136628318350005"],["22645608499623245688430420294168129733240457623235107149310208299817733278808","26313452049864886607341259962337280427599833146593420158085878052729954382552"],["27220321370496596950970625908054172613083424943066547096045326212309765652845","27494555978393503012997596089906494156893649580506632331824076807436989715131"],["3548644929279067522876203624839835849764587600241039953559607452982091309865","3939851991287362474944341469022912237421580459059249338061830862579367110329"],["653596902568015642001778432548277887371492500517003179844053265247856671362","9013115619210118931563449340453018507318277343666523591625265437706306021560"],["10646777462157725619319478726166389954314296058988125417035938553440740801097","11926978313822716678837762403083065329584401174721198447976582357384663591544"],["1733594085811548608211752158619885883486220349536963226268773328140037715860","26269509502844697611886963957597557181147554480241670439817073760967147867782"],["12244483929393643957957843113288018543531809434957507717265899273657157362793","14235836328942973985865349743307389344177492029409859251759859785070469450194"],["15861476490123626184285397541223670271345125028686406052061762273395859248415","21622347712061258858954604729785616087712132871170187321918548834125781551199"],["18795855968849363422378713802554102457220059122895111537692744324463167079491","26953216930169635692593968851337689420178360237730398645563691081304537855216"],["25349065740779911759730910174484966560257846701205820724038327782952963714016","22143372199926886554600956726281737954011832646594035832744260989440565048439"],["1101118061158833747689012309548635509585480265078303356456609924716788421547","23095806981379732843854845715539330371658302986965176362678604770175311801851"],["23368794511636245376846699153195429001964706157143770953702441938067731299859","8176562630410408362747527517632278042276925102367247777715578739183523562311"],["12071786517365263041895036374981927875440289102760012762607093586988925815651","10275268639406756882497289239146044285822718811158755736851448954248230461022"],["1670323581559515954461356090809630048747733545603722230321994058281242346767","27055479492853984652475245513153249176968197997648063900674967067561056593578"],["19182532298748725382907858433902878426163410550935863050949631353428605707046","19057180181086558539398177088645192281917699633524487607240988241661809702261"],["1844502360659279485159570579711044112675381977249514460427398353802648057724","11876931583086516727721219356640831744519295724557179091730559542951423015653"],["25093444535736998126294902074823347863442554931050467783669022946091485318557","25634480137804982839843727349213377390343016978476854685781696462824116432806"],["16332550099643785239699001100945460253980587252460493458236687611271641882726","25104381213584566286575368239781971812168616452572567379665004834000870112375"],["26494451965140737250791726425912594623094538647900515227175722770008516043595","12633442649572022634711850585573325075615940353546257664219910455772914313973"],["1845490012496890237125722690786886115007521311985732841354483322588711879944","21493224353212875866872393570785312260521980122301973895236543298344574985272"],["12591642201935692376571944946134751801805415810562544297601880344675739991276","12932004504110001659765630821585523319036530787395324446351238631275326537748"],["4594534125419310554691020941333536874828785041911061006727965169732233639553","14121035605544938235420402228889779913016418669800969669972464062041460327067"],["25965205735074643383699939498470008856557804132516588262618668208730685898629","22879310482443382246824684099365499591266324209795680819465352126082612130121"],["5267397685764509011901350586745807504947880944608682508773945349953353754140","5657236718011344671895034132480531459419150448198005193642361646503412326142"],["8621501353124950539072764172636043683033811515517165888395415378332490047622","6952955004943697227722881814596521535126785574292529563675608157141990456352"],["11837265187827986350287522117120570126709345167348814134469436435244260962512","14471811754537346760107422719525500746607844107375303355194969923347637146954"],["15742206830438057213869021171245626469518231482632799665716138230910091625887","13678213068397238761718572389538282661390017394517060566710705329817190913344"],["9002542415516660661892152205054477626777835528780817091510662014780569746666","23128305709450565478892731347388584183716015638933716026564434208431105863055"],["13215350114062787418338989638828914940943145487662517422075032871626025545207","3835254244892032055605585454648603344749994232919766450355910131655701989376"],["10430265139582767921448962877630610175327311115596261771995230527849088809673","5314976365172630148547247040673226187032762811059080736588417982180978121704"],["18641561791182178510092880927560528114493033449271981072823980998414968212592","7351154253012306785892435556632840453618811985262004540510064422413543624097"],["14289252713365308979708890556104345274251652960897665019372473685149562072726","5864149245348011152043995708531907704837461597792078622499750188380138701848"],["22013745971522894061244197613880376237731103917153622029811642231872903374433","27697417369391280033220631269395498609453324867733017641113785576473711456732"],["16354998892216127651104055612928926399533916368821196670293924864414978639398","9653911718648662532618593236079128121711502417344544286813528183373185642091"],["15933713461765565121312202563148484507282642626744662547054744667696183502120","19471271433106876990716985963437458012394459839257514616142913379643872454888"],["4467531644211273192205786423385479550001463322350595598811623115800283338301","15763133241005381266644555852025954950305273854820903313826026290239326582677"],["28460700514078071511068742585173512896338977635831655404558419791997688138156","12012004411423058721628051356258670150103477436795436725459933560855054166023"],["21531196673319186195086122171307779354765905847536074786844665734685202338037","28106903641876007471693223586905036627345958008838736038251523409583812898485"],["5262460786253500656532374652178057288389600255998872174347180878583749257421","3301299955724786859992352689705258928672766310268780666781404115492206189407"],["27667204193810421348577794630492226896937656192672985464335786374163469499488","16658339703855168541391552496528548971813698895533505539522681931318290860349"],["4703430759219310034463356515714255319945949423385968061377664370381193787867","26872712053262604354125341822112881130472636791317697361166381229256492477200"],["10679163235002024963696400390628234187237958849457467378508447800849753771635","27562302081969995410175469807151689008259276104174188623351889025792980344782"],["23253034910189411375636561142642785895028186817777067640366647498410087321041","28126385806913769907140311649434678641856163971761381861921622848894152262219"],["23288096199602132860495107642154707526554554692227050179913858589371424012110","18266867971944372718110318976135492116327412603397768851419868809128229171886"],["24489136113712478475488752262257487402875704959103253267917996654256017661653","21104480001365298700346503972490119352121581288609272715458156495748917003670"],["3456025977185689210575769219267587858895908983546217155431934862520404890155","10103813574701096411758996334837827567884932517322024975284635496724597420704"],["24652245873659227364311620581879726307709615909777747363424586430194151837289","17857366920657383103788705492710880239337973482259464369556210102786348988532"],["9910284498172779014015963181594520933048757826983855036505962593384031525690","27313242434676495524137672294013629223213986711380067168380591640881306752774"],["26520536844633186867012943211182367941853041269102396849222274269058060559906","23986984658132602392928443366287552078965061338691355305190950016280875899762"],["28824776542592920820224576977094258387633914043617465569590551437938729917344","19284844399591265444502805140733321803511399771986831655739020474815084157410"],["23378119322133979402147648501033757933549726258697828572900016759712733860288","5286175302624038808264928291408929178195586114230745314491701631766846454351"],["24617044371365450471303282312383649811554022761592860027199890064695838629998","24075088075207415737847937184342586814044272765871399490703036660353192979172"],["4453336304530936268747384375885382980778202414810056464392884685557692001164","19633803932169089733151002330955832837902936490553693136761472995463602353427"],["7396801255953498238195241965025385307681424070471578902875782481906870912147","23403894815673285985749034977639834472282677620943654047082886094183277047228"],["4611987271813533637069376814650402773186327504984406621634465692163739352962","8028725088177526177976306703809361600389504626644832300980928004922616445198"],["19852549843824564095141607617313143077248802830727571548555254999430116989246","26809992127075247599853281678713913350946643408866688302124291990440551597256"],["23314565776578507089538464124015467373807372035726787065234126900129152752342","15800416872766369359518645691900644275807055549363577971082456657459660905194"],["8638245250017278236815171484819896605714612468450727145344860773994921520259","4775402093638498454348337120653827279527558515382892117571583083466386264781"],["9644484593003329154080883641204360453264744210835098225795845529949429797512","10704561236309639758824826522284953024479830986110080857969962362732161665397"],["6149095327597436182336880925956221954449010451167356271029443941330262524961","12478044574559075450686533072859410164294771607862156122221646564886036922046"],["19212459800791456210286511609206003808391821744496046848952435487171189691926","1049500995481948738865186555193523893984969974131296657532929010539235360970"],["18784153986386897865164137579182191021084889383273942334562382036116869636734","70485002792978047079619108546782806198652396009458306402423186045171270557"],["25134563901238206266464521852564542854305160228294948050028156429990161890712","4607623028697619056579615937844397926552278288491208654664791417177460218077"],["14832290793825054070855439548507528026046756915477027434096589506996598895061","25038518402976292126650173180214537409137407190783310930707099743109446199677"],["22131635594116585415025348485034197984198267954018503429786215433264330064764","5997714621497716021662070116305135323833412105849625033340480247501496003490"],["19989567619863172750872511423874725332046011072131805561299903905496731984624","12236556450641463477022414386942576951055784863241033807591776736642066642728"],["13032476205971352481560779719854422061970464019136859046793175518007615619622","27521915601989424087552593497522856735770081008912670281635661350485471475042"],["22900916528424996751526155927754828942187877366090920876892628636357341521577","23002959295643508013125801118773617850733322232987095535905316770398671432733"],["23315020491865070127969099525649047965580139948970470413707692547208648183197","13254262237257863817915608126445622710482801336873456501714773180292693032727"],["24198979746849240536037852981025115017883658611160977309310246536787010297759","20005146992622989563968895273271080927375949295382027880429329064608500371975"],["22098485178431716587412400635285158974545136188638975675617598769292486390748","27548309081450208460476415624096491681996107315116141364624477186785376875246"],["10267454861962855699815241558385903817852004913806650233566390831919305430868","7021787205738658782448842701872843278756415777229733904175075153687182292414"],["22345539511573638417310785199370006449753580706261501526578776996500493930183","9775034390429174505419707188674725864563580643721663593289655428544570654025"],["20921764583983071895466249982679158633263555593809563532350212982816636702117","6736393474749271994134473398909896905897974929438382509936808502876826245684"],["12637762738147690251337617898448772131362107483060793085710332312087036271013","7336337406668682392030885750882404103139781522932962872186478495111528607066"],["12946659150738915313386203286306786064092743215722677224996692421610804538325","2641560500285696758986976868276493972693723245349789466597674241973729703331"],["26559558488585126592969421818009228268395348397245837361146642048475754573511","15869307643027289209052921751368660923531269333117156651768763905158567920688"],["27540782293147439291890211208195888541707543969386959006128708449320922483315","9631821973730826243969961297573104919615218556901753633554608896612960501287"],["27064545829614246200669388369858292333424861512784979535833616001654547365014","17163710218091947067555786531884986789893168282812668085370627433947905188634"],["19863236101518629728197844608504495372085464549735173629806879152356246162898","27775984579385991001987501572934805469654038536368710533438832057220352820541"],["11139296187262047681726564846353906611031310404785989152339245453478545876585","20190778534106922622103965105360137279456842425856663249226426107504429397259"],["4400537799175001894158151570409643220291536977843527317766736058568782724120","24242252812678248951162344217713698102676376987226563584811253881232512872446"],["22415188030376736032245287711446855835065308659336774492343732638539131453377","9346386857610462037037652570070909848414616985393542108063839092918592324964"],["11020444919826391970338837039455550932304600418132935298140984413443719620237","28602972774584040021145052310148186258314432106711110188276849849618454089086"],["6004437523899649868533935184229915545221272531262197760562094866321327830889","16604245857098150253599035685524467807496890868971900132260472940316157749231"],["8378461546824843665906260717697754327400757613544748359191552842215940022923","12717656888937234789589190204357432942797143049072336062953101836401868568392"],["22409461521748951449397121369226220394269101976662063379742007827003314364560","13968014230128940512739740944307868725632156838493463531434903939933631021149"],["4034277046996976665526417816208888049401239970440972178884884677902814745840","11345444496817370292137951755619921892639927871126737777978978518308130470752"],["26789656671367127203459413009414438356160452502548186056338026964377686146676","22022426783843795904313988478100079793280616240543034220594445116158481922057"],["15067780223431868526750445911973141144004229140797486824185351127402695151600","6706026958060074686418304864195382505704592272625220355425156988795683413761"],["7115836924325599657924382890744194743470913796054118168179076838218810110584","15821776676556025050327597699497887703162850340505782218825998978580671785665"],["17130966314231272786855540103105593502091388259115981150801658731358491122796","17360497742377950105986148392224981460689675866737106269167772996377912617729"],["4473511092975253596497883653046069592437320284240403665721489186132360743755","146768392872281598793978414427726960754175566893695000579676951552786105852"],["12509148723763403592995000622497342519974580559563854153441115819743663624280","16965940902717338969748698775352116027058922529135107768804610521941724412318"],["8571505223073709992786199926972040040968374061120978771683950142367971340286","25785370249784681738624472990564917057902028131755801315676856576470856545491"],["25915251984899320608500852077649139207700482037252438941746428086568303259705","11182567996033627329856616093673665804913772777315263587373225477562625866721"],["9445698344299424437576056025230820005871864071248813592592404997760609400718","13519157750736823755513155400744255787880869295426516223959041470866848732231"],["15537604236125011896109884054065262618277458820532934816866873233210755564755","14768136532650930625142108354494951496694494205677393909374783580195031537333"],["16538815605033035250398965063354470536713991896104665307220150305190016189323","14530399195931648281402691145226742517850492365830957080362661956978038887037"],["23102326442494210947190430818871039224369177530982189212670422021732185571830","9960664554991347784810955091873302646112005850383118760323516049004999260716"],["1371429470917095524011664901983553322410323057071451839290989158149525495020","18807229884561476031327213102638636436360425322054205914333716667576032995890"],["12436748159344534162185781765224686647701782092863588572080689935836385802722","23183307847572990462977703236841104293934910507750043653175602667177988192430"],["16572353810577523155194664380030185011455547836483635209961466780718768036359","12232496725918850774942879641558701094697763282418618997799694635980414904577"],["2135362779510974563963885560053984742747018616675942289449307285497433169958","25290232250411697435948638184756207006150582202092618261717610265001213600347"],["23595104632205356802629230788944359791371366047452686325758796000125073758138","26749644669400828164001107473882635621320861748905498689644420438664867091688"],["10482271554119207127782214055917311607473220822396913042026371538875694370196","7803419366332522601340422822077961588215949529522436093284868284223873942503"],["24495031057567971628889042887725839323555084928007721536186633784792215744639","14574381709002320076861703779582063828836804454260334409874674777096426012901"],["6415502732557599059990558614657026257152389859582446043901294659293855515185","24290578442239407388714537974027082107575019766328692721916621200779538472954"],["6230558892844704226109960697279554620124613143583163773257097361620441870405","9039957542537649453733768077436034875776446933964543682397110293040679015094"],["13831450322405295937249232931088800464798741618598115099018448977175467740962","9418661658187308916576695452160998513797715587878850678521019924493925442569"],["4721482078778905160494802399807417300879435951930995378832159266631636039403","16476498485411760310862530848921168707767216855816364207273211327704222443114"],["22277258005499136239205150610257898917158231992270123433714149459286536972382","23005616044514652311347830783305292911991465359658635527557501763794557291695"],["6144687816177683740450617389119975910952679307819509634081314578455723011488","18476943944725480302473385865392125193936609036468274016537796898804258231171"],["26088830481353805488416128384842321974663959461017340935035980668669440802587","9011693690622236019437301851469262637079935067110644047614071045643286705699"],["17338357630556945514674797323096640102883961885081265470389391441304116540813","26010981232499388440882849686461225395596407831881279874679612510703514379634"],["8394081207021711201317017265339777538526700878486627687970481854570179320192","3883654893845588299246059341062260228729566637711221344979284770073449109468"],["419979622291557770624972782476505363803699665691125238509847507416339824215","23807180933832010232519535335597695329157849313481287031496092783709611085992"],["9365942354522083397752051932800918468578907634548146121520300270333763529699","9466369882747469876351559719054260977012171607409486882909203448117135448388"],["24378821957846198661481272090045147935688492355356496004010682244169262156874","10733649947341935389271900530712633099676659852670873723650544406519354113124"],["18311014677341519572527997640862903133277522425484209180157354172015188920167","7402358827042319924586682554447412679777153794318313858027132423076662457140"],["410587985975182142275204759541039110088066778959412426517663119845548666899","1593010071390057273873541626807488077347436512998322453687182465993142924730"],["19574067981606354536450107626378802303671981700345781289034405716180714893307","10709596174821404339427667566323614459672980210122874054268065370817022704679"],["10321191141446628010711203568060655553097545028824841568311530605078040608154","14869003644285558662793716423752508643668707632162861061454139700606648469546"],["2688953197490988861161553068363317126526400146912980267650517485833993765168","11414215752808593512659689460517491252206486588424456882614972543567013002311"],["27447670076168866473011934438154073773452117907582733164986680932850059414150","18161026121471038921003261281196858040591032465192416868764704427261830457039"],["28231309944716173433424078285105799890289511173049387166612072254353332543442","11237856739112691288110151938805079159971319153397067149281602404466425321294"],["8813123645514480219654122071574381293694423799227736950824072368153522575086","5723460100392316187374692277904817107933808540536209705887590182038269346789"],["11147961523591333750126892851503835476323042172953706597718717826345353238109","28929273261851984244965443974215667270650235349143695790173753800924769922782"],["3619283935833484345243971468315521847350153737661655898273136099962212996116","3632503218747101949653394832293405011109373281171253234297516228362686224808"],["5266468574224461274402801233859061772318483795056546297171248615444025934483","1167926110716668554769135318252227047048193090139885298450296180372406568972"],["9734022546171213296856485635972383138464421276624027128009815230904630076622","6456826682190242110499732021886648405593868084981846532063906407788676617790"],["15102932616545148249487932411682019291187468924967373526096140129163362296462","11901796186595318593215852694481618486479087702548934557658317465351707250019"],["21985409514639075266521447726025807667936134869712371754084034424104011733676","22307892832292878653384488323789704182036330743641995454454031328448001460546"],["17112395284090102402083824176544612342657186337849437691286803583363476865079","7196184610131264714809675634163968620816456689593245040191994086769670830038"],["28069426806627858353561121062571814350559659713619339781037586063825621009906","10593053764996344222650424817517950834113773118689487533091973282649490392620"],["6612906652530113916236977115155883345733684358578753168730924974165212062459","15252980463512010269853994083979317411472114373459610064006588629299700622692"],["21943412097026785353970272271613108560177021138633637423468613861315077963067","26169297934266027225390114500117944837782021506266014235510622107700514707828"],["16322679911535346589036815994977548490870452450519070281006690088274425470442","19879342825522322999941700749601102195650961075986052183851959584872374301937"],["206112145461573806084497730852597757879529514763669004224760775947413592976","21174987995223528882938323980226769887864737469910970501887530133638486644492"],["12745539300006391645294684303416461732602946201170750034125849096584858871467","7368394908626229590660984618492589437876461707927408356506927383044898843436"],["2776128291353985429617930597381857502327554679996383016651926616448527883879","13219371830213174964313767858687582700417074211005871449524009242747978810214"],["5776894906394768257714499658534361318402318756582751242782380197757724550012","3118698890853991458444657166974826588493916095992620367121634700784658998748"],["25656718126205589125295564967305377011264344155585127301186271862046357140073","5356832889623815553184253204527053975336244744168062138324875725927550278164"],["1680891669644322467498515901987269168829320256978232248163326948450217175655","795585940660910107186490632730453462743814385306432673728407129540286335815"],["9084746815159035131365788843413178036646233766837639171186154134805933985055","3355808775401168978863379184458216491975706673952485310986834779378338668729"],["6768175675795831335426008491384451370606144567798587392633893388510218469603","19347702576268020594138059084284558308832563207229883657000965915084201020622"],["20658981497130878814997848142184947227633773012944267072683028114864893407267","25109225024420274854575315753566680807144215907904007319880510620961280758673"],["15190329225889641579941738675865231911471154171470162724587400866615166519063","24519937936759567102066584718508674191571653038873166206270987365818018282973"],["28349206581122075644184231886541086500292062090286826487283470090508019154202","23863151333804530448227651480966027627259433333511352504862779693429068890072"],["15297740726465796336284966094085574700345724255258860358356035286040894515197","7211548046628173664795397311584687402927435644062459067170623681192306967029"],["25829049684024019289675163449071861448896073179846414772671503224258733950710","12838758443193406291541107717758465766430630690526568148573174685016168187133"],["28356749900984575819031162747804770490299356939457732532539829891935695108535","9398546142525394561574694716135837354802486234498912775511906320328916972638"],["3321938172037163287986158127680790026068201232050534294751830530815917579577","16331399140291613022567174017396352685516668464093835537949226753787758090142"],["20299301921936177755613583755390429691549465684688875725931425297917472036289","8934105283700614482554642518217229320754327754848973886509647369338034061277"],["22369736235101413812509750648486958688743599967983863038701120917871021218149","16301056866077379129022714619337611106067511289265216070428565044832390269123"],["8640754342776965150872731254411149860008388441049127177681547111381393394444","22073943128878925413048312169275601866051477311595302268565948143519972101285"],["3360291670560479174087026138685582374316543336554472596959778151498172116928","13188370638536181932526207996832242471267216322238673978191685882253740191345"],["3768527288443283696621125160082558908683082544578805424280876966776372041535","27990294691170708429563381319621852701402004380630112701577601576737529101717"],["21701882946497040581860851189527378938932530352957560034483991118495082321659","26424406486039455550364632583775820744462489966364678293692667983632164059491"],["10190391072232195275954771670408891945582106670875386234908486682715558266466","11468743134580432068333661896501704417961770184648656159141441162744616389472"],["20656659027028993747102311335429971236566336668814452392224365727166907461730","24082305409432879459903410303475068828780640980194280897329973440922619165201"],["26297668627293383918114019131385064817501392208980318312791312521829080787659","10188031504174743359780423208722452519966935017163221483560600300528301146830"],["27997753441138901845878173680526816767432011682989672004467338798938374831085","13380321463894035137712135166843501059095327919341339417961150150497844798643"],["8391113426001858356560192033698752406162119349397378586423627393024682815081","21927823907637977750140260921811720244725398755936146744543169392349214261401"],["27555935206812921101967736112965719676588614778975996368170452928633144481175","25373996817339472320412312778181613164423528959177133137505222499980709273986"],["3825380967625588177998596180487341452991709450924989174557962182586432889875","10046373432844255744304961610336630421190288983262015991913465958138801172068"],["16361286723805052827747215079409665570662672094967069754086987513672107882439","10935338576086780775007468284666743168590174522113662499047412504445508493470"],["27748977813204238261516039164246071903113864149618213252916139666753105194198","11297038206995697557490404914990046530138767311743589871192341354119038188051"],["18892505300036028611697399635006077391950666167069490128562396836390022849125","3856566805237350562983075513790056781693488680024026120159386966103586044541"],["25402423615068205876217819120190740755677002861005443634068951800623206620552","23294067947898394497627447525440780212712252490414383336138796091498916082344"],["8728662511279664076184204579093264995286516525314415044403071215312582258521","17166115902376051320507971944148084093410560157441008695276990589539697032093"],["15676991255377225615340933614244137196373082944027233647172504647222624310462","17613492439515031441701539812054296159733665233854188242189356870427641639094"],["19224306251600881954525210006713087178274550190733606244776111942350728352949","26335851397461556057840889191929939831972345332307068026336653711849779151908"],["28065376917597011597557600893875962097610781554278798036663601281490802697101","530851437362062992706300129432918066828006956466266369890699072288960575402"],["16489121403727083455576901583040230408118106730058326711457143893111954625527","1860707055846402025087526381995601231222876076717923553947758575403541468909"],["23933569550831627393199251897031251017448005199655529722207639074363626645177","26662366827822744904934884592332832683995992413952018493086442519129512081755"],["3988177988605958113166001916746435829796853010299512914596891708076728180800","20350556377742705323741099680146665116895619803093441790162827903028576674536"],["838706839042173695430191923068191330633608091195351326649675578310089943284","8933829360699195451902883171367739089459606245493191354514453660533059222293"],["26796833528187165924505872125237807667521063802020839900447130379136880870024","24830922764479084009446990711611455752904192994025269239029528418616682902710"],["5259912756808518620413386573011063414916465947490028087909748818304354287059","27157464354450578831415622557749725549924974181552275978803882775564444673826"],["12777131264504114366912606450243194421857034416420013060794573578677774678948","28852010745264853751358182411916789738691818869824653756264501520855652144219"],["1084355455590569979081035620768241768932157954889018685977393222978913730309","21724359686294495278259623314125690575962558628046371452481351585687176784548"],["15275241303589052663266609252756547617467963268575690815861111538418006312519","6140957060015488012127228450233487272797648756688752635666675292417082079530"],["25985286318459148922150848681583635097323106752199168471304220293628120567222","14458766590777733958906256928363937435769212582404281034483930033182718390442"],["15244057479311106280406080172046736951104215772036489567860148968696817961832","25008356261108361084149651784495775225768700355971364250900231317767717022236"],["5977859416247110825707884346806884322949814291267957744552505591846372646712","10877321979095861886250652943505085585281586574230348290049956540068022334988"],["24573570737022948221362037186130317762497298107487812298781687817624922859735","19651602623488659546768429744279601161919217972858291249325756661565459776260"],["7709121783978602367063754053719432447398090172902632876838053756308518379741","4078408651132804337450844929877271891443563928999017007895530252215367639748"],["22557973706550771093622674526203421756979369492529320762991669806715981593043","19450460678572334613631218215679313850017751459251776081259283864174920879024"],["14700373232914029058928742917261354893566820398244060327066930463145159029037","14786441947658631928370705475845957895393414181459448752192173038174936144317"],["27934436267761856649437182826777036144289320167812418092934103094103986851504","17840804592912070262853058358711152559421489236664947757505413264875105491615"],["26491283289375827960221085442390211432096992079513750707435262211782674904619","13306369458506706839896186777152929421556364687335254392156180435429284230513"],["12929349106634853561381054310905732427635289896938871928787750466893334524375","17855638886113381156655793792734794956835160587156546060436349804982438861272"],["17238935309895866884132565136681180112259094362542251231886275313238451518825","1608525451399855425631326515307445398197425808677153314356615376003172603609"],["26676417102194346770422215054429698973657443222292736016618193611815934107217","9438522074815153170061855057932565173965043885252703486707384250010620127164"],["20056405796534753982904575928084668328036653363121306851229303302643324330605","18578039085912900059262279313989788975866341252254354414435074560334616659324"],["3689976266192600001306990987400926766956107817420358462407142041189313335131","23682356917500810721814129901868991538581066413516546467009873847630866775467"],["6250121531441270402959959943561673392740490917943764768579149540754847284827","17001594058739959055496363584058970600062824217005775233371963301499793506322"],["28871613769901561750740088608889426973458315575267291840192815855838714450458","19993690484064070643444872529398190048904667908631892182868150482971377320358"],["19839669155642327649533529219557576826327402079758441691956147022418378383751","28692212320136536977284694551140643068647209414093695538660474224478303017316"],["18791821305758338978399104787040885061017581517831469161762727698452546974949","5836985057555281049886394927430825402528977296167527507240749799643970576627"],["3539907128455169352154930549960783570775900719570881292361348142137026943788","1791430508696436941085658603198227989688602940984707135868776510962586052763"],["12903338806654657358204585297537015867541573472195639101521833892369293362983","24071762035386160437804097569782674617262644365944449928388204009044852058649"],["1032949859808775188753773900062952208788556343831955284339258107821020443815","12289796780881377623673876480554800413532547581012891699890879879556156068979"],["27946435246109545977239312264015899693655050056730801276490493978478995115003","24049993114051604150628079056845232845630036880636003168806099417142011414459"],["9871897660024948303661950631271252399181581704604458743411955319590174261140","15574418555141981957451602862643261744850890527981831754661657828111595241145"],["4910271024528782396099745081199979604557228371072662824575592276120685773900","1753887201437389826567041199029377312472665680311529593974316686605441204529"],["19498007539869289154491848167980955348858109983997863940444533421478231922792","7141885100171856825928429913059659078509051233534454759231625397610767498977"],["19486797910740103241403651635137254187567717545721603296045539167187513073000","13140939158651926201028482367707266070699703773629592301695619572407652040312"],["4395876624076034092329066021576868465481950172617580549949746905183157150794","8013624838590359973611926679648090095147319724081494744822432503463194826031"],["14214844557550578016730933776740611223671576005066635598333900899161537756315","25381504019488260962956185339213682422744864562444066846751293083640639712644"],["10421822083445214419984898021812881122303552014995825093640478683054876983403","3574986179576527153527149363014801035159386936163887092931979069576700052876"],["28909130521760629031874645620864518008815920416620164098442616374606760424502","2124197376961779836381219997114840293163141226303431957756050644624775056203"],["18677444886131490038294658353002174885483238291257229543412817230444733569116","8454914443470627612012679659633873311039823512837883727192641826830133748138"],["10993969628531352517974953463200813927517447275350121501861589698704978565430","20057654250957850662501735942278116787407272852910637664136680614500165389495"],["23060113818711232020565176688735196664919871200573844476272276492131329325068","9972078433739854359569228418353148496413042943133106975836679948570082285429"],["10292908623118568047160107693655713335090859213020919060391512229691204549369","7172298239723730830301604561651647775399883076951647762927272065845595280947"],["16744510006218712724802110003298787058493426379855291107882483778659668194685","3361122640303312258342873497021050229531722487412249229180970219285568469859"],["4889119256237665367445690545370711479680123379006823157154678635641525039088","14329154184977083293299987542386568705374161852530109220004096313087818213167"],["19797679062996073964377652144727865430327791509283578612025067993232975211423","27336234963333274224243971258742704771974823723517322596502881286210536341808"],["23994335744441305466163415613281596020234484461275508255256430524752861579198","27876014308539566094863297157409464360506591830220539107809295568745962497796"],["18232025086241675732006027876422043485096646443026891781158254818089299873916","24018668985895614908712890890186030043273663299433919875925854496002396324707"],["19707312562897937381712310514233098935719022222940888294245249863598016201763","18806286543978105769727975256771954336966264021733824638797053357342517636909"],["23666843551991343685976880911549550113052083932044321518497179886439374658409","12603021081840678921452656355669617196045104378596989287959709397924792612611"],["20622126179043777339783546231724223772073057541507584558083915240123984731723","27130897983384285336114459457818373849402389065552238076485922567973160665891"],["16591399429288372754896306410584667508834000800925997445983832057064379833017","1627064066080201377092422866793865395971207222999767185105947758813092973751"],["16252883501037551887190628671049826001622469087493198748508146458966469242109","12715887032273385506721727166201667474793893065349309787351138369224554707552"],["17685762329082072478703321283196771190058732173096800536384633429452954493532","2629712697674350504291176482090578050409386742325345179905983664121837543443"],["13094514158160013187362927312185134075232536679188326408216820994773108698103","6111121721325040740735137938068918591215603544939376248834667023829070303475"],["8036198321071118557439679485503060894600740188933889543416663779960364148441","8404629658793959095852146012393903847924521736301907490789558082306999594715"],["14120640131247038174791299655550784319555324939199916568053374358711468549906","12206991845785520689187858760471689374219315725614616277738244757676701555377"],["17840837766128654439464667949287548511601510046327668658757329272318201820981","11261411194120926278105610746082305063930453819151086472626534060460052093992"],["12289432865889181718634409329728125050260588538665341634811324387830520502790","17497987108604546930788561237763672304540861190974038479504868749368362166430"],["15567995707415065324337368538517001515805683905793654841394136799824462248959","2763478078632585548073833804138686490402553985841134712376038028705722001616"],["11518912685915891691972856510127271613257368586984908785497455688428350703752","19569053212170515170386238843933019557894967390920999506469848992510991693383"],["9476497128983440511368976333872393970709877008109634008296954354075685920095","28199907529244969539452951361892527423593717591260308058795653156041950910302"],["18053701139901278345290541592758428269992443571852817589096770475122739088365","1958241392357883819356997152162154928941836226460102925429254299348843114957"],["22828374439868356461945447479318487343002189694062692466806443601719788019557","2249494522379161461156039746903902745823181644431518063638232357375463754058"],["8175205767430934341402640204435797015224987940627280781292345261640397454127","4246751309645833671931242318926306308156818496863688542635658901278830730794"],["23849686247273819862772332322680197671777832390684446095771062488288849267815","13058251811119580304049054134362753597735852717519722334854817895142771603027"],["1765097691336065669129710965942878074117354688192273361644609214724036315968","18390042683222236464872170527764672747421054006498637158311757399252078237175"],["3567174217312424093869200527216736424070047921726949356330500838416146607407","24369460269935165529618432326339020643397576170939403936818626681546742204421"],["18261852411919073419496730310673282249637471438722935985001390880141183134756","12289353352758048485608647073447202695729594863180936072659442406417068097852"],["11841566223954273462380198001114678461094821082102841311025687975740655038917","17956493933345704227241745654493626911848850502853872294284803484103225366558"],["12308838438490563690088081247849239369792628006791440561846114298441641630891","16058927986593690242801475304228520667153434826552428150793118711011539927221"],["18423543247410521284564710665553788468405507992538685912547959880720113710344","12403895528670610779282033203638592432915157583722288133713258284419338913049"],["17155069139046615689839562451779326841404536438524269707723198822338011062076","27630969255007359854008273267190360837426491831732148296231835210035777235150"],["22528852465134191805755949342435037401215467329169587914648412129354312196659","12834866146720694948040029819597175807287669578934939107847332643570597947158"],["18376400146440916501858932792127369209100145071558812967584360505629290488642","7235778549689125564560802006911638098865048946816080212453684204339187593"],["6596072801598389029210874317940130619447003244056265089523865263429355106084","11896197436463175093065640491722218042395501501344288111362661816848362545585"],["11667119027065959527198032073055952525232379798855964948213479937455013520532","11746759598607338953096321189590135564452552889862616169455947465765747556691"],["24692955445058440271827098652409363640875853389103494348386735352726729372545","11217206529018268309980705688027873645512266119763024851741635732053307212530"],["22140777702640530016252379896240267865460527226492208922152217095955453432370","26318635776499391467623512369559475391956601196391939158940063305319567771772"],["15707958840381245788057809450693555383910095803720561545480968907703953700242","8587493650394704505360147057853542681769706738273194457187290433135302247182"],["22560620115578509547144240060452350784257524387067524946670934643353527802932","24708092408749702465009270273238323994420207639157210104830398204579296211408"],["23575792045292385228484234792553208900349321661789167788311519874953353383202","22309183820824220991022872441663838938685999013246725397508949847878720887582"],["10735375257891636814945543534254296046051863202691900892487015924881830262127","26723912728168471564276403653497007339556162715786464794332212513883153952068"],["13963810677144939664566229878490107513087128044955401673395267841911009392918","23872538730078106780720662468652609647825675944309370291609247405314138941310"],["24586726564255541490920384947436629149836293770307305648724624078475727840972","12650752989410927365946736931962492840406013180212736621130084235562490065365"],["11434064289910457675206738213290132779148038635939523186067019272113067489803","727780490741062062796125545773888323776811247013950748942073913237484224279"],["16109669712693301087261430653246342823181740065661964321635656863947795434853","3970925214821555642150315550655439742806208013514204270222766348273325872335"],["27571574619257835230023383134580589776667389470095289211031790282058226578325","24809445106507936241659885729567153297273351858779561929127121701426581041778"],["21285577151652511508069685326250920442111629077890703497764229381344103124927","12277434398121325118374541153439945142949386632533266990650316930592357108367"],["7450224300139115199898312559906400288904801580513075684699512425382951216930","20829705552759543393795230300484668084649200678412350118597938438261161178266"],["8429742035328664211319154618346324340809419763206519365219647166487357208592","10481669222781587217707362812305050833586002286595261191160921964133917237677"],["3936761918513907042083496322182427929169748804383576754809768784090753314407","21805181853878620105400866848741799573042339691729189761448954923164183156645"],["26056524393311756109007978558573436292632022207736533681920694228733075844350","3865411602546250431172440089886797364277612208931126769223607246404698558266"],["17991671771450798237732820692488823200643077712547544879540942453344454197913","256551709774082164131609445138615230014631825749213216897101999604863686373"],["13750896458279708642368735706531284261260210562293913753739966294385368592460","26087047393863232601623224396915670913293597282106611796112827756211907396251"],["351253960745074999539971054327436386178067055026659884423216704491825514367","16335644861709003119404796940357747833173118679961764769784549035497865302364"],["9009417914930890066954962920689376176438612946475899619077523868649864538320","2333490326319904790627150824296212837641978438182339834357102302448366578343"],["8869021073366815873158035921641885789643588061605851940990463181509642958134","22467629392902089843985946663891942709250933517131313997303059372429714406924"],["11931320200593068244421236839046528418075539837897064374191079356089796902783","8431223386342334939195446309250639747960879173013302499995378104786239665228"],["15986321305558661096847446736448626850785660306798730284977225631143659463489","19858204140337709359557874624796656166525926767979573229010809663937416986632"],["17998000132237978464031938204263258022072787661155616738143285537686488047934","20635624630460663803112277835432394489526777276605160947076718328974693770538"],["4822596004003570407379792157067598469579999841277990517441417250706155624498","2624157462853843234629060326340069091923004844999572230636434161426671431206"],["1961636934179033213921897506765027383022425424500057892474656354725329327214","5309002399393454275144630283437121412796394330717101893655425813436810271570"],["14755908154067537975245161157260571173059453763535715572943007303892758393263","28287681189636584286744368829820164857148579734191400066961903134530569336704"],["25099155585018142226046574370310282327344124006433078808717205787597449769373","13167230930235778635195914986865006212813275590717739375160888367931848310636"],["12472725187242007658406329532079163363626719030585971591806497559970089900895","14060010582281773490436150311574004909175729399904158268935450532793589498071"],["20066069819608785734771683205901855042639989113161878910294892538103048651390","28879916976668029772978999546454192083653400380236019692266753065428257279677"],["22667097944802052395597016633643965231411348549207703079672783725834318228789","10047069933342838154777863262120074760049982460853081086898355532542228101303"],["1733737833008940966150494669491941421622948851718044866861253768659331534523","24318150800050349685686115206771686894291758468649457985582769876347316973485"],["21420464312068719832214414109719170214329323976272765389266478928939938018687","23453486045546753090360703094995805661800255133195896797425174493662642672959"],["6907618994380069236638996424987346565047090165344071518543562879779665177190","10979734257310466171333546830281045150505701617452471439897281059742815239650"],["10311919694972424950376415233705220162056678947344511608387178329502414336605","4342904308270132245980758544416754469322428338064502919955719211306887362455"],["13323433531683917568360841992970133257073560970911394587360419302856139174527","15204464611524809568602500802043641696920507502103283097555902992587135170451"],["27295139376293849027088841632510532464126608542186769285020258757440964980429","8838681879450421238224089095434405694959649293643356176776980374536196437920"],["23401704310146345455374534308074912014364496402578877146338960359668475768612","17800452393608699579288375729683234468129208448503386803454155954301485517554"],["7595731374872507536640855493587284724433128157311115275280683635205232694112","17566375865509997213304599046417443550026924104159030288937356672716357343337"],["4202897569265074089875569304383517908089089999376631895607601961153295036214","16482009948383517150432542436170999222837896367921201281366884214334466381327"],["250627070097653968802349232487893041520749549445671685568503725650930426896","28946122363985592203143450942174079385885598772505540187999969345775082402084"],["5314994948264435101641921056291364429296737347368210577819344716693111030208","20221501522318173693138356078908216238964047445387726490317234642462549025973"],["26832693804073288589505883980709690661484150249866350107521257286504380067134","13043188367531010685240034857692600647615105912252968163751023591921599623040"],["4875533253759654217987355203782289440570242938765687361444462359329900472627","26347867466995847370599035656758930617816722214465684971601313042258732205368"],["9279579783317887543769077656716121859966172513594649190610344952222229011215","2509390700271986435264125101210174069313434241636916365446785710110519561653"],["15714983294131517467563278735142093958807628784570196720562164856845273038835","1641971841991987684108274380742653084607707216579823846320604136529761816246"],["26296031837610831943184374472002199153119874980651035005829443067185902435516","19904944710343061273656389856845634124844954107658146260690548169977115431237"],["23088606309587278901009312205683441337865225144246646416272488665836245803665","11689619609404183262641148891368180312161527922415948929150683897574731773160"],["13917959815841468268762673086777033210699259122256893651230410599204852142290","12988101960744645255991964829024276276238662791875075009690038307192149274899"],["14010911073109608925818468970897548610346146270278437863704279121650043538724","13735079970756172807652054480673970742011867525634232983929111694573999636515"],["2999487911192948215142002099624583134458639715181503678837209115624602376637","532560757545900268734406566127928617036877111262067122301142213228823048977"],["6288664768530782879921513723951623518578830036793151318650583652153665173089","16145953682688927021469945290054049269930011081963911032392917758581394426440"],["10734766179573302378714062935395176608292629160698558828676285125144719722506","25514650099735137445339707235367130293478129026961631938578263609010960019772"],["24942986524177169925089605033124689599535681384663376882585719779873644671307","1012815758408012096704458705060189337974185507620824581444625079152943488088"],["27756266656723262600941588338201654814172766646935798443553536526405495128882","14494516912402192653853952635972604984758829851532502794016787123492095693246"],["22314378315744488190341651496864964970134924649375631418702905856074228768789","26020455646444454074050512284304964703235674983552939745821621234831597141562"],["26795062172435153676821235757868673816448085155473125279658685469195042699715","3589266436394554463525389988152266168423871887347766386395275920461779756918"],["5918382773478744659769190132985306490497647397873322951486427987350677893685","27950855449769476909502833800621699031494626970954845225455148141766280950302"],["26093227822999562715344805855420162556411008407076346352253915857643344054757","7306624306675810980287598113877682725216792666991438619875210549330178484034"],["6065688280533380076674039628889232510401867372150481507688748444464076572833","5627639318854869258389334271226872939298764816060064000961251496016472556639"],["10591476710634596313784101603349880109132558307647746958429809013241003073164","9921632556638972218586825317036691066498347771477804490635681332243938000934"],["28390521412555988065894608558306645209228023178828203036721177141736208908481","2049580622152637335201646596231690276589397667507252688837023339344521096375"],["12431370717419700013055569306458000706470071127361033719390410269506181250706","28420422688837872350972755285672985793394578511948223753554744461362529522383"],["27162343851062234294412018628954799208924364204323135793780516897062352688482","1747421340674299999668834925238180619297376436676681602914340614576607688595"],["19974956637253323229722082665813436975863185099757177979316011642707126613099","24040411525951937549588330364105923664252535810202606933092838836983349539368"],["25679886991104509219318715065183395440840755964304329712003786785710324786331","13960256007331898425744557810547012769010200201007479111764380076600731454348"],["14484900897380085435544156120072273410783542489911798419022589771127292628999","24090646748414949232453856211480383900255699287733142117229551912381548927861"],["7007117234982515309936075105276748155254018406488019270135920266230823162738","1009559737117866461188141721381644640481915737572464761429282384827233975103"],["19002348430408941376358829320495427408719916523344063801661951317972653085253","23746754688857337893559706183614345912030703727507042530178889503834218777292"],["6669239926487954434956639543584522687270538215114775224314609397348559655071","15827715627950298007861205029574433885276918888294783157427348166705710156788"],["16965310589142677074647482770577672603730447015906285734972137566104528154261","12990226227975996666188438365748254521511752005087546999042895654793225147415"],["24288641565039776154866191425023026947495373937987433702025438317536202633139","18415846916309325387133562874832554941694338379395844213128064091428976055640"],["1251154069263228316407760165876916332447690529289930815100162275118502314008","17244770176188342858604373460658025286444508004977823237443121996023667008594"],["6430330564236179696984040419017624066008743298914399548738646677191728908369","24615928889948012549479435826222296671109626530354707341618191085468098682406"],["19394679783977601476643017079454315755634055239376968154096939107451368113563","21499072189376284396880874247765747495492805236948783917527873376298193132186"],["5666660144317485275014314585079784029914772535015178814443455977122803008812","532687372683414625978687093807223533597376402256684976131121354021147156562"],["24605113636682457223293517295462894557657201191824121375440693636448142475623","5704415515816812329677672452266846194158822246805835198089169015540134773052"],["7766028301786914156404354861101695803771316689075500951628204820608061006668","18120255753196153265060115540630162448001335356677890671807152181174065243701"],["9981711602094756544717963825386530707369184037330832648614526639198715704967","6940359507829978353321252229421745696308535379133076889339702526781747849876"],["12438710375762926827133695797732141845420611110769942115354158994343772136261","14862633792936346751998692112343664171831597295894786844915398404197011914239"],["22973193966398563161286090550937264434348671310265823026287212197490420087242","25265708843596360255222086716246234164180466649385809031741276289755632346921"],["17020641494599034502489878016827919574321296426089020345373196399567344496183","11491292846597645025664700243140003967720529319749966198169613560340946974897"],["11294182534589222188355693800832502354311459371387616217225458149756629425088","1610556376843468356218314762439176011688811113651221649453709159664773347768"],["26247816813076663815744867166430851802759926854230739877183075692305217416886","22685453116323063477487880210221454629564636887254101265463419472267326022051"],["12276430226253349672495314304244513138342023833530846889040579564399078392104","22162476687095786057583484599616731636091706331492120146102336969652643407126"],["17906399774832420187110582225756371900539307725666522918356019921590352042071","4176854287619601808567768562370160543913441688544754685385412859591343666882"],["21503367897297837911274332118179265542911837179081940769380346644960689685277","19045420778750324108861321351670541254825726799105627842970228894665060470864"],["3675489933010352508388736028138847491602304275562217178558018620905355962469","9389771188008009256237312834822294106158448637337806152591026151774694686019"],["4084536159089823064418056592249049160527377385400170053179713641539443864963","9264706202698532847487065039852148814720300166601418757398762979285486154910"],["25008479349090432120333784462878974690306878393679523168445473646716388940337","4682599039462359863970800142907634396168607114269070219887260004225816405646"],["13911126920040595610070863916327451589134542649828377559577705784126430159572","24188819257846819489201059977272984279107470135033578749073928137451278070175"],["28649523064924185929081014118667197626555514871099062251205499509510582036342","19774154135897290108721429091149971201424188967821837603241247665941309921413"],["4220872525115478691255926543300716463663700096371753827416725975089512163750","25267779830840207227643226529047320792144914411019652452787551187815403480181"],["14910272001226249511183710237235491088085347385831451589685976808560843002526","12864856292815530081177887483444957784376223166062142970957013237194072358878"],["11329936348861992134669715887461850124997081840143488461117837204860270269888","23528810666317849042880520773859013046579411814551077642932609694645616756321"],["21760143573585513175282003174523487357146334887046196834616048884429236308636","25592589991146065570516013996585974293726285423476487477194235510466485521769"],["13503882545593485329981802237806716830017838198198130678567137329086624634642","2979496457455461754107981104551313504657952134380675792393183481239744240860"],["27185495796459480003059390537648959860290467777680066804072460200463026462701","19085011712820599363020523313873671385081900355731946456460918179571421427833"],["6885096961951324082525860852557370761027392817276937976666390671100003928242","13768212684883001813212264125247671980175073646557198055486176044812694203501"],["1095089691574765424159303402803447944516794671853559031027358530119295642666","25739475997264313353226611808679059604645175176648411360014268550257033773383"],["13745250390937539734665063499242219116164554179822604325461003378579485915622","20872405286323907043828717184147420634791452757222433412332124904143340714331"],["11051361116965080979058134126883981464557842679088205653847325677697306145339","322890371498229891636444906749492889117189580573345954695962410287411699980"],["15403618817023577367368836031408321591088027351359498957441822899601526330591","13746664027801808800778541709191278674303519211448632811527785637706836427534"],["5009090250330711492752368994013353542576506549482312746834802382326685127832","17196343740494494506392293545872780091227138150865754420557807059442820168611"],["17643995458103880120746149950169664516817198628946050326749511423361223029873","22609189823822272149844264082730750868849964480961133363677470753925425819193"],["13357165473198943449781279272154556313867101862028825822854651962788380533161","1597015993585075205562882586357992173420798315592944696704337377331306566627"],["22198084760465521927669475820608680648052249175108682767752236102070040055275","7963539574235110873050976880111699444623124112608133741282505330895908554539"],["4844446587895596545028026370267891688742278552483813388891776532238040643910","28116546103908140261000618226499793107777764526318459527542137931863657277482"],["28940715676681582442354841732657333544436888581815302766742160244085033304972","13753652685368897177835482916394649480527438525516553570530962799629875217054"],["9374576355521261860033709769291340622016573155891249629842117089368534547288","11256094821923467327029798709132455599679768447824595693423047583586387327135"],["23459009301420202412611075203880658926053862589035378558239821868996862922963","22174572629086199073658705278184303388328844285875561228615755384614887041386"],["24073369044081591487634929484127424388651143374143898299078163444259916452091","8630803930552005821741131702082703055345316079090174793603122085167345100189"],["418225052473485108468172486427037842511177588653907913068314822548886850972","1887310765980185272978969457193487282279958829645805806804229715049113996030"],["11381999128715523432982629469381790962972487333329999127110427380420401236035","27673212144964225015269622427448793397064098960909903928841882385939769726127"],["16245342228522842988187128975378911446931274535034055295777566416346211093417","8386445435880391299504454751745768519141562303932090219097810223701457022780"],["28394585371346913431539222383558666499285096738368792997051071024765655468035","12335050159429286450793099056322805606387216782792758347727556227183474117604"],["4159801742609995451464021564611631664420658994375292463100003378385523509077","19364516262235124155707962342260855765416931864039975617447017332124061633675"],["15879373447526807260503765231155569623162534051097683362155459816696992065184","14284500547286095188337401739712675548332114245848294435867511208233733312895"],["1343940981710013973071249198349446615591694549882661342325396788818956001434","25658630079965273623475347363717920172853897046871873687537634163081915256551"],["9762762643826145936305563633151397016637139079614574889714715867695016042140","17095511132115178910433930872337827495332148226322326916242184069608132355270"],["28473861282914336248069864948946891081426384266292025098792421931523616412804","17253231523013224534966248566092793460818405181931640914340005396182512643369"],["3087341600539691412841003025484192645780304974362143618928563059952610902826","13040063815104661254209374630798439764268852602375360336820115399899071692903"],["7390560575516560599948706996264071690204946917662345380217432433803832827885","21614943715352043862961333828996187125919352825422260937338610036674844430337"],["23105774671608019948015688250795640331880012700548750338687334537574076219121","23957809493653727728044197177703602684636608324499285388542193540613222494102"],["20859222668679423731600367590950901601809060908971933799217432251748657958315","18824575116509995899083652406490934329872187126418847407894964430112146838948"],["13018821961468167019527209504266544438205737628149145312488318727085148542008","12061141728396186322676914932507178869780806312127281975324049411287793118339"],["12795682630207667839531921022144299466890992901107944055637226037505040322936","20252124659072974261752405044204557035113646666571033279508332364713220377484"],["25321397953970523463149075184357097342333963657567603747970104719363840192683","11213694045131089786016335893240186729451219140586295622575148394478263550060"],["27516596553678465114426751610168428052612593165427964823564262753168448480265","23453532741731051144048315544347806162152824447950644892022077650189950075345"],["14472492614688180571132087934346558330465750721684810121466767755552613815083","28655619925455736538195561342466774054316800144898691092923052657305246528295"],["3317454907214660681368585772520364998668895297909134680562869186522515127700","26504941765070243736050695644395615481472343128257824657310535707179088870118"],["12525774049674294810628640187845458728391195108268877250900840026351652975682","17263278166411086791302567859363344098842219959737193594665447681540356450264"],["23311480494156382874006286864342404209439360382988697184775443445039001418483","6072450168452271300281217019111743311524850471617704268163028326989068715428"],["601123347554421247999796289981139532584932820199757206227419915994333466476","9460571268056740013364484883474196853832477517091761762054205570239833255468"],["4678236297959955106227272191864923399059791294741301562521100138910787884411","14370885534336339311816274987359315028009855239718078213541938203638265479412"],["21069896213929742729854764366296706681968648497040058785132099401536747575804","12191710874981726515386226484583584627106652928318377241888244230479472120737"],["8987596678702257696733233981170939631621272164626154258489960888512004666954","27916457811889016577195438074415193200470173774361661529085169946702462569519"],["6461098900637888829082306033236618531331994549790891644776783587219232579073","6183722981068414589269956260349232752132770462129330810539258514271193420280"],["14787501531658577448333309110464087442564673359002396565499272181614725522342","12171332507378408296106979396203634610507612161469593618226986585469496958495"],["26988282914791200949282762804609448026070156469174340306605093865999106633779","19199663384511558726827873509431589105474017247952440052404147406935484189333"],["16382646818469668438334274057600931096435580274640151439941972868367542803575","1852750493225385548461049524510814891584037168588133701812752775385712112591"],["4453009461815496054669272160531741123349373039050255998169360740220587964299","11044881980969992331626921671090108931184900546303591375185884492266953754516"],["17002520252947614298718070234965168202249287199173159558255360673303103645967","2012047549517235563600032118383686248771420069985087307533217608159448500216"],["24089249080592214470066996259274745118304285557998386544186934472166701495682","6344636786054388087331430541555619361908769725252569281077489529654726271403"],["6047035692800560563730812492547961408554425544410425650088445770602901350880","4304934930622949696225096029481369311276088874516260094404197114424313238422"],["8530561967456131217365465581599613437322761926473620615889778602919148528274","9882281315368547219471446479495461882487002399074642875584423186428231261769"],["8886617805976985947056032543610285273288434940532261310372936365562873359193","8655909364178657566227628545810314121154260369780038259501319508627361380798"],["2243109960636462431201952838580054409901259679865962161299774296123307104849","26015702133183640725578248819618378571955575565689484291560435210938552391812"],["9370957417831090342760629120537691664232181091428002579444482738041272899122","27881026843105206501392514969035898140106010257866172435201935417187015377631"],["17035902260703112196433738207100656128557237212880646230668041315326288249066","6936347681960004357656580307323484620655475652561974810533634430799908517593"],["19149478070737209947253062228742868063988635169859479590965477748713603945513","25900253342788810285370269471837861541557837131857270614585976213178972160743"],["17651408118037204944199180058775240477160297007608581457646829018031680853298","20435303066716312959477878102469295062377879205764109985826914497467842403050"],["20276523454782599561821504730329499322532460223628895103686097343335626354151","1640738375440505813487193532385112359111481373485278967165725694372138888101"],["2849282945211208160603037591469864051044752742519279408323926738480136035231","3348671364525566508698427259425440949345195314315328968578229836093420027839"],["6701017500733515321601636222713026929806420452675086214584229274056351985824","16141816082504277665035397677794417826661831287720664555368879164609875036971"],["21059668680858680481205910060085542988678126518705024115705003233483704628956","27490778640754177772033383981573372169086108222228315501321899348376105862661"],["5726941245495650374611484916380972144519067232551444768085444731253722388762","738434364279750509091470165688905235675323198494834589954081866140591732797"],["11263606573600042526702570550414802817065243657354384723418010619599679771704","1907708627413470822841627204548366451579755256823433684013492474083447346022"],["26628205487310715821586005175115920907929318687828138352547260523121638183013","1633864289306608783160728656832790402207997758487230926750446087120778926375"],["4008173862345240912893614070815402302453632312601321785122054228622557740588","5713383895302246315167202309914954413716619003092012960661760667898573521902"],["285550993345376522343900764918040216476182740294059745863481511829278033847","27802638286920045263667923455766230149268442336556366499323212337743752497257"],["18620629151424880900318016302655610643087138534187906194985398136670938838868","14731873322742941493645921502468040342464084053411352525623270162767564452472"],["24283121883323992650847550526877133493468995242537837848151057877431459752231","23846610287682811737472579613327992135961454905983979408163276952389880001079"],["4184969632341121049020351710152466561498774043708626485168003888705672495077","17389363823698540174339541711604064785279253469278007319972045645741647190143"],["8913301757045491097761980874099878535500426550282224131918903051485129818867","24100171369439329309922576766163061296943837289240734207483613270846476600650"],["5610313626607494191627786245389372206703909968251062227820373483410179203516","10497525943125924730340910825684027562177513394590182770605499219144341516695"],["10808454518995075132502366193867515313274242026119342438085806576482840274271","20979086893644583625036131601576520131995130997319638165255454672407897365166"],["17650755737057186000665425195611985684706778376808451320786017501823593503842","21225528377672483495190909649658434753773741235130032595371968271710095982655"],["9153535325482971451810798857076607150030175557900323613670321396664126920295","7003106854138765074378230850221825767546825518492554773673182779317679725195"],["16548711041341812953522852837984496110157042639939109823189126995454981097817","25304960045423469177543108697534892072468002142185576191193260591841494780480"],["16658640740555346805654178640021767423670393636758766393740192800232727211007","2792922552229058978613568061872568745638428499359293162762970446744205047790"],["21591481225397205920682836867800053093319274287427609948852729615131539326022","12887255560043948916438691679421495617066127828765531303475718169788723329637"],["19585736397135635832458128203147619342479946615051340253666268920562110045433","8338498520703378050527091107817727033357841622353620125578119090702832809495"],["18813898507784210732611196130991276834094935728468054029611792847799878694493","12725627571649107659316031524640441984894536727615806765101316897945190520125"],["13622288779898582978130026677185241060659776979209316026001566656670729648704","5086981773745605100712200356925818748040506477476845903340563042961867456388"],["27702940281890919626242676752027843111080000089855476998475283124113254490063","7107509476709311738440324432919859945089048389628071327449347355816597343145"],["2338315457715565468288024916130767516488225991999480680975417485854804151675","741874318082204048943818497018911795683681126217749219749456323642772903802"],["18235470355797638575210406102753845442989118692370552684795405719279866247212","21728644265360478629084541153574108405141454475221232216642394783319190074842"],["19845658120053049913064326093606820847299386141133732117394365653660642732702","9438530643374715171036650910291787546768341940533659706486957359870163064525"],["13074582506543287768490146025200152207406120752826888076512408938164564834654","20516430064948519321014561570884197439296675374254944958080150250574406029489"],["21196780109633637925783001081681568221792484485698500920620839806729785778200","2590661854288903396015318641903057463361382233791898483021898917821954800934"],["8670684319694622548006027560455227313768330991338014668841853367619485853081","3245762019823781944064381410924023749201969075704373320192747417455336411761"],["13990992002523527593018099095828071220027580162014968962418567100936717811352","6994661689288467776924176738436139964541862041632677395953255946961695988278"],["21611960782169503042538492741191821801527742340529809759943126905200237481409","1253429421672888766630458306214002435525594331315028901405397034691626333101"],["10347992761305787042967952733568503665328552564660428371234361920807803053299","27245117852026969097933113791552483438287229984491444636979907599719840114276"],["910179826742410635449549263903552614006981798813809275380136278068989747000","1410830917159997341188988620021567529291425475899635153182459584537855495398"],["22811314893543755125143782418518874788810007867484957996403531642008529142591","711039940581565551496876830773007719532106295044902091485567440887244255078"],["25282762929517661575720952497029993291268543354755462114481106596434574744304","25066686035466099814922808288482331092183156589146802643702662381327365446278"],["26899507265337947756844193471491943623426085354942370593516191143949670977802","5687363933262118549654193072337501787368929997148209729898733438407672637608"],["15629411329644929986528666993577547088516124196210538150991127633563014264746","24824753548044630113026156415820848161001590729163957525438435751514203199350"],["4435562981856157739878080187339973696977262357864911985356672716982116565081","9396800209144046841776810296152055740034900412612585610520440631625809739390"],["4450633603507294530306880667243357830318714878415877346848026526147932819448","12339639186187951480238613135561603146891316107578540173692614440649540565014"],["20924244419570734346441775751511555429191549319807021900607031612033989453347","28143764662738930724445648303556112371350970228040766402258592507715257957616"],["15298876117705526476274040866990493735929938306392962532704145174749076662981","20311280671135009195322512384648684127637005017763583084970170596364005118801"],["3231290757763856421266122858154975035328652717569208737342324189391657097414","23248953438051714454142193046752771727886848804014410897763728362621891577792"],["5336920719121366504167928667231005302808238710191034844242075313399446318896","7655649344987740062971977682502328882438743677668985438786330104792879004139"],["28787446267283749604790121402262117063916108330555934901933286790081933094342","1040212238542259670819351365346431633676420497719142742105626849041942232228"],["23240288678985456346823045291845147766123973086390838855633371913218036198444","21615167019782359312861144329728098244966418989611875806570732168989079490522"],["24868229748910447278069318921693585285604938079809350093735623926071971261403","13814296690906187697805647038136001934616685470750220179829442634414207159769"],["10663563175557740773626456080116640384018756320266847014410165370058597548026","11679395810767955358484497944878850794984240120864234213461158914167588732694"],["27043028964682881997436452251350020265724460101223284168082392469784895974412","5123567674304588617662860032439204394028019471676221989122558269044071276741"],["15895294731629258705105801938361393080583764245203088923441358744303649863244","22360258694244237736890120458982673809519583877797455071006349894140972681879"],["20680558177808725452727348643374794386765766489293230736530656574847519877372","16081957030740243753428343049480509574312239849183242775574359510688539084417"],["25338337525811301502107632915718060868320100744622335941049873502826858533219","2477840748630227514615217214370406047333851290223072693446793348922129231037"],["19561792874999792258731315515683228536854454200538106517852514698655842085757","3630306725064492118377911056646612906991337644996705722610543592289220850482"],["14733057260239353304298794054685098441968912131477707959944976383470807265426","10871467542055056332901163098914381226966755423281744163053841547637429420639"],["10094419809513498630938551493610701309150872355570718247525169544834375420561","20408716374544676171756250195312658542631504525067685590831318733856212810519"],["5825513200513681011205197119287620201959909826360101225729789232625736701254","10534434294912671541498531506764735836754321000692720025565955698347716665081"],["26922606853266803674746611524500694479480333607055966378667912213227619513139","27293497358673891072943419062268927605515168543257931864515226416011291317612"],["8354069261920987865335468382553652099933672291932775768520545275651611801243","9602935362254827776637240349959560031617711494724275063954919096952977883187"],["4065679328585467519939129687476992070216064013022213701669008056310625145749","21970366774811875602807150939533428372699453524656372373300547760582855039076"],["1926947874006325135221484737089132738714118640953331737081945399899142769810","21240044054367744889149639288669318966592755645652410721606355438363693589753"],["11822011631941311236459806909663098355003321749129022873847941088107620907692","20403011793081903510654661920632409339366571805791280003494065074609005057646"],["11464762049612773849847859348992356901274990065445342309652126697582813308634","23358411563718082973609132481598344720842991484200317487573641205691829997586"],["5765268444358155381203441870850612985508830085537827101167629395452119658786","2386364642042353957953351964114383398711664183584120421088478035044566242906"],["19869758491795732635687804740145013313478470901652654904169251561312220524374","24811149168291238784728026219495173143781973112562425481497164220898010278403"],["14949298809621472504188556665412079957358102509960596841834853624413192032091","7265876668663876496606822634143553120549733228179858070135757341957416768533"],["6051734233974341575954717502375769310884204967722655227051178988327347199566","27204126360112643580084757169758543517485214232782519579844167552544027101344"],["22364881187943582418300430587761383778566423234908225222028588424087992035382","4602130596786205993821576695185829688690207205532634392294138157269553476196"],["18890936414108807715453084201586767975193142819347011439651265847162991457351","28173357114609411697559645268715348619050986730208817191261161895656536153921"],["2511910626160721980567071003109348753026067771506479890915384632330190517755","24824943198706621827779867085276596420883643270288495714114870260946525424932"],["19751628284133587307209765126942775276988243558761257995010133899157064560449","9330475340697725397850162057512074140507260080355888282537138572859258378125"],["13062295869910077980891205712758714892079506090644620089226847978307730730452","16155186544495531139967699090281530913321302740932068351860494194714412298847"],["25214993100675362480407137221055460723243396303824841040219041955525300698174","11390478708518115259621644520331119510493150115750962384798625833172440370565"],["19698969734719340471031838191101232562733519999040001172090022494964923716873","20077760454334168833838709117971782684918381115503351445432033886500721339867"],["12382929294891028698651831533317648578238304566297525642057344314439422936806","7629042954554559697052955564490968230678430896257435328276763431351316558706"],["11850982549385570030601090703952213802806404084333795055631572878919295651237","16658757315385121021190010423727003049867903512006155239355099620651853470661"],["22349615335464792101144661484580049494636960741927445183107643416672865155669","16846918117414400217426168088616634253103270583891248049156961048336928147257"],["27752539055974354919650908614283992912459239840886911943846910485948911997158","4718319583061024948945354951890362579996795476619777274605126124464526764760"],["5749977350930841137620769930186722118807880034293680166333107705825095927289","10412821587670574158042162851208377045406443759609444034614686066748406503634"],["23009101358647148592143264673134058351082285624400548034770871634054613078171","4322773155179197224147204750292163097504497424947346569740769983723668317194"],["124340038803464428064863109541874579746224094451852173822538776678117235943","1763602277551981222760782387486071056411784459690394376457878063852153177603"],["11116402865032583378645712063551595985398502679450522655863663068076819838269","11644870951657780661985526051409302317167031578365284395210722807328664497657"],["24453519035424961491253510763589905473510813061600322456945113361086981151546","26440044552269204029737195094205989088096647078924413990921957286742060269548"],["14193627443598845667130356118016027938535684742967023119808333318623537200290","5500775708361079702826183386489431187236830112432609058156037480000405101093"],["25129456852110921542716880685616561817386998871199680510687192829014078697200","26265419584995429690065557769635659599053207496667481538659806299474590272591"],["1677917210942543292287274576990888892567643007276061416646071712169981905029","18880606394842140333938424625470547211562428684536694657953753140163498457988"],["2559082278230372499815748707086969477711408732223189467592031391320302131209","20858745467632630053883984704909966597292369789545653015425745871842895742218"],["9742888338932798757289680983121140322912481883389944594258653880800963272793","3081909133279272525641151198320004289684132120695775404054292276295863660394"],["5373262897856866051219009610763412937393364206150415211671749379229678781319","22870736318536671577679519214155013382337936187149005389818444591031437945008"],["12529299013911051767046477007634886386067773588032636489166032208018326041287","26538190309654496284477104626285622658330938514049036147128687662019358968574"],["15138242457225980879053541567001136693525725457452364013810498760102082140793","19313279200534074981740974826725170185276769649440438704336581121470585601094"],["13802829887444718149898055452549480825338852881618412340659953165386002027100","19659880053531008273902154561581018635156828102767986311683651756482423376607"],["3915887570772214077882111586925050593891523786149460290834167948217103133621","16965309425542276294021314951399740572027979298782872312243851190135056718690"],["22515902466991615717145022617067834855264366537560033177974362480390565920750","28317280779708455937947556072486165943541150532095877130308089178346767992830"],["26077884139951865431123406929749634478174331121991474561349240742731211190416","20486594484136805403396902529580074763363196621887618319100258871872802374513"],["18814755404400725511541743840088354844095209383867416224091625780183416799882","21604409050767242262051033321856170870217199486012047797775534812702873314138"],["4139673057357903213701277003349085879789234546231551918895491258086698241207","12655018299309238810392474410882098549540330630773539412717206035808131699684"],["15604251653785529523668060531112828362167038239091614760951809105189294992468","21221175774565968306535578790653775915422611711082380995449760843093477034621"],["1510709182193492590010078373380076264370911874021045696223945980079658967281","19908642334802988275032618901666483730095525864667892795245224308232558889427"],["10011174403374704774440812726555472883454823963233579627931436722844977798236","8613874038892923815583412782961862954639028632332497770479975473100231642151"],["2638017628525233252730290426077889521132655547373331114703949985547334637468","26883193994014620766395082827507085037700642940696922800648975403437630495073"],["27663825632360721751851910279666741301323261138535126690355287491414469680579","19181829478079137077185652240864453708997728231588020907910323489511478019778"],["19984197810603842424128220920873654316025735331811827989276703953304248543169","23528537689880481145430919182315616237445563786237555045257405636988506286000"],["22982152320140981905477314346908440718088632646886852829622228552637229497137","17787050547361823741023476808472273467267584127844168351779478693095621759672"],["14520432005102723319296676773772913337020452252053094957351776181988163528935","4553528558076528004185710329415917444110940308896297154073641124293506811802"],["17016628950523798509528295699134395769965282349902809409623960467298193215116","19615896022093604027951005558201492975482064876902687423373166236433711300119"],["18516466684370807931053091112326316724920722567344912452356716534171176101633","4739070411902440402150152634334037081270607217812736565987826384113210161796"],["6899172981023798895544915013064724735759350756857208224576649903846476836221","1806994741462965029419772014315573278787277487688432470127237023611563953084"],["23356506402697050488710065425158011823174942272921709187423665498826114241363","5673591943221814570563402429723298981099144376861060913283185411367758434405"],["9803632562647522586264163429117422436499135603655281884407782014330989411157","8785442282802506968129106718576540556043931430315795349444304901133617944122"],["4760628849167650679814714106950071153834286489863055360061642218293260476303","15483571633190362684933291246350633392688634591512776565471305584792123829195"],["17654825698612971326027284743995747800000603539107520587479550701010903828480","21392042236080702593240065078640860628609593636731473207110627783808859213926"],["17690484583607478442573965451196323220378016721042944882193947610355102950513","19752248676772546486334063946679935646390854903862614447149713799047969792282"],["24782169503760270848977767235916796306749131921889214491491929508426153662507","935222888947652859099009663489761385406386731742812816694940657662586219198"],["7855288291423362917181481126753272679704398411962694993355359060987127844885","19181664464884294245919802364529367152643318817359974947206837370378257698585"],["8389052278946725492725675692506850110020989892505739023654667193014795199167","12547726344897958027712476833704777230799200610196537905829723818371741462443"],["741567728828526289038798400102434746824532708822517010720859415604786375588","6400426073673928395552562167655016845043709812849810227194773528701070037276"],["22100625587405359590281564270350765552825198839282835825541352540461720667601","8772297134596734588490068601264481274280256302398995369621891947020951364534"],["20217464406487937689399039115860088330843241499896519298655705443525711678854","13795069872061157326199469896616083091024397010211856083599596766188039156351"],["20263420070451920631843984449193469053655914960343768262812249602772106679290","28813240349310556811114992017425053672928274133778692217256262613400152889934"],["19443811978386858727330183703437044679526419674970551583378652498373515689410","15514326832388066139428813688948137599564742504293415310796471238364345967077"],["13867388607294930726257268080025870090651507540004249381531591346149615427165","26429685051389846253815931410242189437400946200702050057335200010460866043638"],["6993021222817007544747209506576165568213333138441536990180604578910905683885","19293322635486831300791584373702531704796319409191541964147821307573230060477"],["11241728967136090670549955292239414179027356924398574831681383578205874994544","23392718677479791008922178285344502613579380744346220157416558561568845826923"],["2414752955871142267805874810758535707517728726281904308773172489437657257813","12352600998538902327397554897388076175076453771905342357083380483878561953092"],["1642380901284564344668076618691225048632819524280345892872362216039395566860","10302128998577799640804699487441739106430765311892887921706000884644782453972"],["23775780661586494967558709231640209830759769895361985660658919435640952512703","27498593780701661122725075071410127219538686257547425230115415336676592022308"],["9863488657009393554747936265968043078761073467095657067615681351800339691861","11045542780991691793053378130323572709140099486838153383849051205942051483968"],["5166247478647264093285142540731931967823118265514521448123027151538498966386","5770056435409133077341692657100777592503086871287105679610498141497441249561"],["24007514197701056200564317188508768846464784615191717296464929219656899298034","20813227308033334678856631753538478379808763737503808299107700630811744943526"],["4943399950853311964490875550760831524782028264232861810813913382048276618468","7478664665560562922591437205703048807353919859033917095675431704926079625657"],["7009017487195536718395152068208955480488953166608999488690375330530886965698","25119412583836530628826237509148777362641653331474346523602969172620477141879"],["20163832237762707345141874641213600365509520213086677853154758929543286008499","28479461337373248771579847011997768121932229217103724007550701793986171254994"],["26134140411467447507477365040662213278849172327657595996212098080670006005304","4219917839490978992325291076870826619847096896971089754526501631335844578003"],["3265729345997351912493547241130251219810496930823063171525145276250180175256","16595882843431894690747648445396098001669127956545450925052692821236454851632"],["4943097891661621340291516271382467496387064361826041621703562650293632308189","17310098248240309721035396827685532350584903994510216610992058988170150108742"],["21701595346117267531311004017105682645740337792668862060804928157923106176356","23844732498015499909224016043534125440968344533862381802457676759461667754004"],["8095919599167215746399501157336057234068922881953668396194229961731600226004","25347489905245661135885456577980200468977756626169399846379351152049247690111"],["13757748206794817556680103006256683548828547339277262351218638938962762883160","14279603048288664276718898181703007479706243835739191724105283227195997817582"],["14469245422090164417164973675635741860695178289101083022030744439878212031709","3035868695286901373262428227503694690603152035018233921424739182823974573630"],["7093380492911507944558329906454993018430836576485197821388194984660395559603","2692284450990866001172530519890435203645443665664933489764097884091976180633"],["26879972322543228023587696390226406624001985902928847109207431975013796683943","26462644809351128837607114689449092808171648610356332232198645367076037548168"],["15936469356798732823917975097760163371238262051516099382525696607094798288117","1267389624522551420271501274619706854968134162870980066245415510427188414611"],["23676069496785113586745544667001768167527311459275056100152269746469933971604","15150230210218522316552407841657527300702362968837218842631221248411166398664"],["9487881255197270674845834060715739194737946237748562891764332948809065449917","5137758594226482624157029980179482214836568998430198111001797863224182150124"],["1013505951406759786071616094907103745044689396329800118981504151319935913930","15906081452719697652913904582757013273837081799335981619991778071226728336096"],["8170816883460280029711490648979065107485362297626997393768938787028850124170","15162608720484429032729268485744335157449432862062086645872424974408645566417"],["25534300744285056341542079861075059908825436151302045167657290648678897919214","15157833276318618064590486419971147911299432815364769122013607231139023699849"],["23312531201152363465245237957227678812507880064935490655918150854694039598793","26606793185984969576223701646227815633928285132117173198713038690225284868732"],["10516795158385787297937696778889819891757942460668566033551384590155348589153","23906759762781650228782955030963621250131809496356761336270204419530311500313"],["5455669776206178291282263033365320624050102514565661734159066694707319224764","1643161318238089374894017358449831023675281232779589319029493509175850443989"],["15182958531956218935569089296996967354643182608673901235278750637503859588762","8410723232782314891909233587034831549934358867638675966553872473542636350049"],["2652842533900648820722621930169255613369981029559148674323196256417340607076","27433977173008470189865590864452070730917981891280954263300471985327981826225"],["26038219186608252334034633682870460784671847569209173182028486473540049301783","12624874211745965769712068401637312163747077417864562979029408362395487572159"],["5750768633741682205974063245772949369626234735806211045868422333393446833675","15819440477130986176384682978317623053418351193384255855501478039597526305622"],["4296512840327059626476281004427762558346268087715470097911046906803073819794","2179147192188176607074793488315417641618757211019420164077291383016597057083"],["24351034381979834229080959968086348147765126173311460921245138836588106185187","25859301645053700188651461760659652500265356208882860448798903530770372781167"],["24884038120915727467504245890435829805730595224926810916962937331658753697714","21828533546257050398856253409128872141186636258690571271359949614910074381480"],["17550150265516757921266578897430912028242743937602875963014011314522367030792","13046032650415858518600687896526951019236627508035513055580546451783734698560"],["229496905777665674513327057539935021269376619594185796215128992062413338128","16511702578146894800618633837139973642167432160460177128939736105689248134544"],["17711017931274121780261591810403698329360878524666394169408045979743703743612","2984826276248611721009123833631698860577260038981343419887184173513307031103"],["21988303058048484564066565438224617922512958760932876975605763445940435727897","22028424886395696641747802655199207688628643604688509841120374171991564615375"],["16354488288316119655739633874996957330952145537864431092362504700805484676929","13357409904248858272558785192629221450818763343775047442450140966609424788111"],["28901237674552573500965834844977334153426578826830923517957172881638158861684","1344298181395203977876799474606208626010625856236949398075356953611293374236"],["5710500528720174693920290529875530606510922057067138262949170470308438542615","8909457577998199837511845645968796067622420137943095019083402823256869596099"],["28875986227158669886233912800796226152350604596483180553264199091703222685763","9310511103085206292455657000993596076817848701217986451488219131601652731021"],["19066671306950992140579650677810067350351817513324384587628494953308498885316","22741612368852450175824406814385892174904506046367810666350095079642373828792"],["713482450571842502299285345920157130023101527525104398549128905829246190681","11138131634445895979911031566344136490586835600298469660200928802476923973720"],["9704838470432638772458663108760352911507979098066948759004141485153687500054","27891825555642660851291577166128044722912266641851298333094634071759676397075"],["23350498892896479588668363731583459476665417813335876877650203746804862161010","1318116180411329535690475355826221005361845746333431484836848989634191118100"],["1633717838339352253031025483677814762683287971927568134110699128580257666721","18947898191631826968001613891793181291782798080286316475230315509741986737008"],["28669311945520896317263567480154148278292540120759040788528428880530465019178","26515051792228130213681471410675142271258920142640197451213346180215262180654"],["26042717834412234940230190187041591068233485593423616765000522460475121940100","24977553230611392413459627082822544326855609067781948687773640922836534841208"],["22444319570660209732233830765203108450051324205541349887776691987617124761730","1626427487044261055371395340318964069497877243390849988236505248071067030813"],["17183150779505456427020471051289359387769986347720188685744331379632180283143","8083169000303594047528962574795258545924705213891820980104270378942589224068"],["12130161332422126021804506458426114536760054944961472257956090024872569671374","20616595626719114510375374785393550454216433698764895941976293830668572736275"],["13248599816879088803091575885010101830402470886367740206290897415471810996972","23475776480318932457935477191420574558833106455578577093802012382472090379028"],["18861435733468407969613907872434821742792881102259937324394810678877832844243","23333539204931064022899687579659547456911562031501020189689528427178617649017"],["15271025733821665114647851157307735372586675809255363209212723020204110358530","2795614375849957636281289387914332934225877371464595981006051662817050987581"],["27031482166472055327396756321769724448245368509853322111661459283299075370111","26613939108115290503443489212668198409151774663080168739610831423234618557480"],["28027077286588819492613047730252755531452292418071513654933447534593403478024","15017419017707867652389100956085131012377530114893469876941387599387244527964"],["14859534197239809126585801824498440260230638408597258981806718322330002866694","7443595887448588039582155992156170727095173540783175254104423031647435517182"],["25784537681476904995871499062006132605742162968313683762397378906713011262083","13779135165701612195236476365372436044966188277721123548904343749447345506095"],["7620874843731049215419719634596291866387883522981573187376182948962523414086","2695647714666983910683121256584661442462710972341213569334372153191385592833"],["2792451442476350136447842382896310584853949532116054944670397503153856287768","11393393704207325326924277846165113315426371485662678645851201705361634727618"],["20068071276821306064130860644798170555806620672745948738022873285224638215865","3632476478460394332466065403892761790062369596587235686718887803630880490759"],["13608611499055262999434441794325756940328308888502908530537466464935108895376","14586029778103513838993334563310020739903048690748882516735160639050621239115"],["7667092807916393216594481758064601422054379599084992845690976355166254376832","21456678561380263265295757318630061141907198595911533198241600524038308060690"],["20653456675741966493310293966376827359177479012820573359472774254880851625417","9223130894563112213165114138712064792408766012427146997446903027640424831000"],["17723023343501046628765559283567844636676327734554232710474121495722363940180","4814860426521198960633325770295672400155289591321744199087634869402539353051"],["17059573798087511923754471307930528808245032790789675770908501722923053585211","4705536304149944031380980620454114332579163921000975202049660207515599787143"],["18836201532234710800431078776025982763584591171804950178911773131882866997288","15128414259084792550675802531660583483224716520903964495539608358778810458299"],["14584210502208738077706768437832494821623685319714361748674006469493865699534","7431705953889754975001361310300109104917647849228872027115234496279930654525"],["3332092931639143096748632832013180338852994092629864340429003928707502224872","17146564790282249167452711554836285003502175962199239247240436966324325577202"],["14021226922056375177437393150112241654288217647931115820302695208185577405374","16674131867024646682697146287752212944999674273837230300941154808730586502886"],["4141285309506629219466444199670384474560297278211222765759158584516265106117","1538320760654813405790338442570200045064803024597301442823457622339842241440"],["9462002259030825761398226398712804738134496640208991342450938824293750366151","6587263377206917962694213502547348972190494305453915038005777801726581155518"],["14258092612249150901945953608958727231908855007071400093482454411053720810590","8840822598561615214725718373461236197557422335792005042363896483545392784308"],["10917241716718375479984171698325636708736841092821950584774766200102578721499","8223783021370209525560943403982970004322975760376101446812013386061423987073"],["5407481158382726342060802012821640518591717285636465788843138034641578113442","11091833815734719955119246809933593096906208722179024473125534509721826521788"],["18984148062002231111350756587102708899084620567700477727858102023538726769365","28734335632409121188567626180513997063959355172861054910937988130970065435447"],["6409220531327817006092338198604776948091762270203312429858482262763084453108","22398805084623817086402065602463219262684367354988402919780798562015062452849"],["27208645576822048195828591642534064187713906320440878120871565491549114912190","4136096494479340861813903551266967967487942812551627541350072331109544609790"],["28158427306114248323324800186867756480266985792074823385648098002748706988845","11834006627898052658110863777758211615769583542688941331034808688958612806236"],["2207763116771732175412340515822810352115888041071358620348835245216164813417","5021069901380029069558021976565573477288357126800302084776971904627598834627"],["13992107029900549450176338697703588551549303349859730005274318483438887458808","18341447886797077354859617115795957032891159586786003514796610908011023985840"],["20141812271596364783878879213898976048197374807674925147641441035237766735539","11668150773075233156456503989612064742085010189645852864195497411013473478030"],["18840934709750700795598351685200355025089417486254011595831021752858806251667","17307260040274760130940351418397886569577463870068147455630916221064936813824"],["10651753991950310812554762938116963571645556614901057759483578008107715679050","16868095196697310364410559582338359105024924710319241667646561765743902589281"],["9472240951233740450599228120001484226642087750008049073056161235751419954431","23311909875851041488962081380171386429766331921924495226244092189377109580860"],["1115141169112658357555883020602330018782994359653893906784206571273867776873","3050997831392176668531649064054370667633145863403460236104926439138513548845"],["23078220851582084429722618757437259528606971818199814222829285115993558027734","463094468923502750035071917323200214295784679188713619796256871223221638398"],["3166087823069600924758676326532188789271393753345121342258476581710189244782","15886662721161102574140534909006980128859662140703455945514794154200708971311"],["7600346226940901415007975752873611876389982231879557047263280939100077063122","22550409461396016164888189660259249667626192346721390929725500721341629490848"],["24870987607507606256676235778167522486068023467578021516398625513720703489842","1376041382133814794909175346400511337285831325114306662540475186354570608247"],["18066489204872552666568811957682367597360438451999214207722571646744459231882","10615466054995345663554036307427164799445073009822399154267419193581574620039"],["25650834322387108160426026384318701674379483590296935604109689531621939730079","3370280402226166937000198508549983607785762708175876082230522112927255979198"],["13407094877053208296804998721919726244594113464067748463604583210031885945201","527660612739087747705529720402967713361496292620569183172787127329734791626"],["1720322632439587938832039653776065197184803040931618204361595033234227710643","19712811706936523727877167162032412823175973994386644005347187837278661883919"],["19167135837080474615076023904366637322742245007525454933971538667054451942713","190767711778361859154945379042737586380411486248459908059996011666867204893"],["1081073135095058548580491317395567396570306651208617725092418603746939048059","11104037015660441957010090905408980349641789666558711026597761776566806682075"],["6109500905722827930279594342961836369942557240849862768512498453366243674252","26069547836228412870445105012845830003219198285961349607753945020878154060245"],["1801992879975031568900222603486048791749533828686739176577887692547690675457","2572396235478514168834449665238176172574378193620627909232721056210423756110"],["24494350725257679111601516148454350102426997920311186478255297811606468473407","6027187410880962748006516263783526878547208217976261005486096587187727825494"],["16985425874405981740821019658531126765893169554066590604195992388159647315376","28163372831146747900756845797530726112545545017732041912494094339059532176452"],["79262740420844209244463433258246767963061690150210560963353928960856760044","6810687739231408551596584944601184655790798437234879222742152879347682025129"],["13641710790178340685878793063206516472016816245827064668868335132989325430004","15725267387224526701554685189285098372401930553276999855538102121830572336510"],["25370308767144363455651833223444779044480218599316463492087842913102985123656","23389145825356148723509625390175935408981616850916127843388101434650461930764"],["24219325737150297248263355094498443000675536729098859705972983602324046359303","12871015900527890653885817914950054501413060326573881847487792482686116137118"],["26198536034012029803050118371094731550082790073721710525799641795458491127796","9989147149901735385065649672549384053746499238800686759739357728571339401056"],["1999519581428634231138914807122165599683826572236878849792616418781207476554","15084282760534759497052104339377768832137537231224497553622098335984422791712"],["23208097788711163541338219151661908764492408769673298106048533107576636013870","2794039083400807378666972173991040604271933489504965670499950030942851506681"],["15956394297513542741127393129379555587906582616478010104209882692507807358392","4366406233031933809741797222198303939879357809099151246286313140955707267672"],["24672971416671586838687323076629865109782403443090390347936722050643407680138","10648109758847370932440726231310775787280754586409392897165957564657716907370"],["16670772663917100154556857586846723467235198891972061539879496184352747732982","23999452411949138192588080927370319877040077208126223687819921400807252811525"],["22057914923032969883142194275737258129818624820666873196651973132323043016060","26732571321692752165522969059839278513877993259464824752634176820530931425036"],["5051499811307246149512936533830268947793517550284960332102825971737685427814","9711222445446702328905739461844715176931342351350544276951094668395757718809"],["8553350734263696042192503308184351971543956700337026236974981589033452503238","19216486840925214450563223343071250579020097284322581999427625882035156287025"],["7929351945462967810948926485155725328218038373809332732883967287915635206951","16965188856564617129808703038338885723629650142408764584905181085919260888887"],["1260387647904143817203145162961358687132692179837282971690621914396841630630","12774672505846462191975240089783633835350733214019883758300543043492799046287"],["3479394687986146424668145249746892430644246022396147909733010286381372035356","2915591490670675026426684641030980310261844549199264874802862667219455862005"],["26661891202950079059443512595004532934447370766872080380957063802059630355961","24082098885456235748417475492315558268828753932060771370636281468744364688732"],["7442775355620605711666449429974416173325157671825691713966846928797961906879","21677512505403474037535370854633779342930915546789824393768495615296230288160"],["14439499927004086440784882199282306944725075731511769365135648342517211594716","18338768408317881905477454950723538376155471459878534399710113946909852368396"],["9046798563442244167806702749544276522253079898631229970008811729646682715665","8965110041810885440121561648237087282445360066540357558384716838835775322156"],["14106495180321396350562846512164343483545870872952720031472104664382852539047","11800608988622454259007550516234454880207963839355518413992779199706670717905"],["3508013841793416206756484192832114416352930788755127298125429401217432061553","9373621929326924795050733784803423768682275189269196809894387007955264625266"],["7457603282330965130879951235256942933725943565424166399480870916901736937539","12436247743152773502381680212665824166087077411375857898278711406851853968576"],["3500693726410653648802095462890801271210164188507758505549574007768645806473","2397437164878976314224655297666189794750532359169392197541156002077285031123"],["15157657154416309964648792180465322046913223472289972573080007553592348855519","14859778572366365053480214934341293611320166816676916073026367619765184168640"],["8746427403667821422006780845300955356534102988116941604502672042144659119401","18283604354606187252532261808552737300841141651911221711289800799639781743224"],["17125039996126316189661126598666394806773819980608418122235413588636639143512","20828571678261027390983903296813556051204239969158760259901109056133170915122"],["7213561599330569016807330822364068682088098919437418428008530178256806081254","9988832620716795447941228516176757470318457243875938752470112132468427905713"],["13231485957102549294214933613830041390987121887314564660786146321066477341585","7742133324384148392485253345803652994130392217576845908347573654624130913660"],["19981575718619501321148934511780878898860593306517124154676263064906849001065","10187175607635319946189274969304252463310638697036864969441012939628737627999"],["8123500489645291427133351132209776018431874227931261595643971367374950460583","22965493547664782075492796479413616441897424864941008595915818266285949284928"],["16889726913983518788653071140706809802494810608510632957553395500440567209141","24997478757737497078051586705723412081924564861082312014105821438492932057771"],["23634049878710692647802637424961127442595161046278221812606561093244754776028","10782059137564588861752802158870936841690189822261567338615476624783450658456"],["2429024976646712924665028645905739410116302427196905048150740728507891866226","23230444170423412696240074305519250779270770803177847701337950408819928342150"],["22714182244946881252048075706499304432335021090409222951610659882213635012436","11989019762080695145470917825740462379053121170642916069097604715127534388027"],["25217591253279523627223862585300794473360838077864270573568620244544880851305","27315139877960399695011686776539637769548077480916916382413617288617319261595"],["24153353225164644026948903561626350592312244082311667022218629622339254223688","13630779039264488534542131840938759605630999244795914081147820274674405010885"],["26071013425704285236138574612033881181902510050251475115218487560718898455105","11121997964005120482093608062884482037912289419184178396895442257651948445169"],["28476312688442277910047859363639269404669932498326208067464367276831535576777","16336622826573411746295837731295203034526562656440030010486052016125880631965"],["6692296315613679865394669860505238629800918794679781948315733254716707689101","19445145643558879292549792468607348870849319094542298028212669782786307455567"],["11563711341019410849758251880659932883428542516860949292010858491030382200355","28747492233146306259505720678548000932408690197911050731457870226091926616130"],["761752400978785781804667934951270153539724423217505869803678248223065094220","18957550377242436652995244774541515208409119172753595330915697222251835765104"],["8193507480849381280152092062916295005777387798928911566525444041588435975184","23888500236572351693022880893568315480562238281366978998632203666754792829655"],["18200499146264573330477277932137911939476402323501805937988695400179170522670","7879024219702454534238067433629560182973682465645757625416924566686620050513"],["13015519996779738340055763263625471711443767378822893884565153229742941680386","23724029997996759872348381916966505198064147091249612654987879966109903717906"],["17554209283899567330644118197601503608736450470246994629700612172029607254242","13743003275644162547976313799982704425474396611060568278466651787132338556146"],["6723409648223519432240876272275042597016219205287578770077796682173527143069","15384435712689340734145143787552275937079474629254086782254271076866582515584"],["9054278137385566726138972879386411425522604686738744976743747593516053157429","16817784697530111650949288727786971287828250019796802200097733701313825656439"],["4204758937213655148983003157822291078081731439128295869422500934743988466720","12055030417622326941663211482716731693768999540716749823536623946171134222336"],["2581716665939820415861222819570989396004818693477371407447498312302169937146","9839436916310861862462763282284465473156601047178164623258541449143720293386"],["28828380056291837666939732486525269866059295479309464076163648707095515280704","5336803101538368223120005963385312496878257642673329265904732925914837404572"],["23975247035043235679810680202944484673193347208123962765377608374288404428499","15087254755709657399333994837655916240827218801722969242434753929250591540816"],["26760785572648845538062711289413515116925846152098988936308079904046603033400","6915388690735500593795723072641916474952057834583304872505149898850060909767"],["28175328055342347730246920239812254577350136895034353795168934155054428322764","22173849680281504208289497004651030171209131362187517502391140140470165823086"],["16402460272873814375051976998963387654787136850422036936035457222608212207988","24877838283733306831935210449228278838573789755397185991721464582082284928704"],["18750632752267124896161820302936553997585039526571240741811235301799228900896","5631889690389802499447725326060276288997921507152667014679979991723514141036"],["8491311037416265588932463611375492933627664690928064537438196823730351496039","18370316914620043809736991330898008716512920771630070959801439767041296888008"],["16804879315637034639584459307034499402519808006378890659714907241185653373694","11128131673609479898554119377329276953679663535310265438659513887483471889268"],["23666770854275722043157505337812553283666480683558375347020314534628777163201","24022364797780040675299984048324306411138518998668874595431264002232454031609"],["27156139006141125194938914683469575111252438498586125542824511504666450778419","20576849315428991499487031423829407593688986998726492510492543486014497164612"],["23970671357224034089630766418979975943887941269577092350814320261973304403266","4445170781992932384762920211872515230069444650707681077030805063977033901073"],["3287740289695578207861838367782838995763808208249985073416449810410605221267","26870858362999033734445514368598256703659227556202014204677592816476781142396"],["17739430150643680565938915281789718879311024722809403436024408458441824108260","24999999344751597371599639561629025339429599967878434931938397529847561458449"],["22989024203488545270388190641258562422188318004452044761210293227080245412654","15912064465017663566902249815309646480194157890467783708229634049952221406282"],["6442233463531678375331737387368186136771583913901259205577124789050761134549","26401294699357873042161555714489931107129270498568666180693768902899467774201"],["10695576532687931338650587375655864004937006834914081969424855693041649776368","17145332905627501391127630077835212133698493039463373292951448422896407778032"],["20507392457682452005875214198153248531498879363084953514443528156430128803302","8431663953545497113270869100374658531991737418947990825580190784436246462628"],["22904583141657815175480741039842782049514817531143022048799874346819249311999","12337032176223838169260787778642862806438021270284639019440852285721043805141"],["11519799978973052644579902902347647707370338526601196169281681517444267018906","16557598954463702589264197198519640836888061163198779882964687984787843425264"],["9281690071904630133621783277750292586609485796437260675621274288287380658936","19586337740250453429386088558198650073845320412169681277134325101674458258326"],["19350302598580133316404702881583740294988155664307171780730995210670365775261","25081088549730703831337210042590140428337524225285389690059613953230267855591"],["23881552919993866325250781475043381554828528894019836493550147559957973401929","5278549836357825459551046470984390738963214298290950925562820669657890223199"],["3753876880017660496008218312160762264675341418062165069990912236766436798834","8691429831216121155109798815956407677995656324775648660887034029992935809177"],["28890689493256870517761332298720472279528897261848843892311874942899148599300","8480353898614069932351129534117212102492103243872457677249518642546566170823"],["16559216679222997538383376968989937771513547319929051313528839454688937129227","8166813118841307458829974161290577724423442893415892169330054938875947595565"],["7232088527081386890446108781699040508758615907869487105252243230234768120496","2885428298948448247922630452243138842825521983600250464986143726069833473028"],["8188765631799968605617992385712887804649063063606166914820059478421963111455","2301488395636675344450531458819528045824947425387926279134712613961946274412"],["14690219655626739326589614656580159365946552719420041969698931551869052632789","20351986179411828841756281338097269274479707702857256424379786307478740454805"],["1206827077987839090196267498911752918829699283743889682175793163520942783183","17300147889515962578756995787866268025010899122478112769762554417979709425447"],["8708154168707079719231469538633185982532124962542949874223859575168679650330","17219849001389450780437970826389219138836500064225356932632346488931618280310"],["25404036096559106937164511850560778302786605218463713852472847619631984150251","20258434261328548876448785705737905006421396114461450676883639662584041429813"],["2824990859539071078526207558113772116063758945894393083622699053341116726403","14343772916091180959584508575194034030078496738561279875172145587351868761349"],["17863544010311566124993510515961639734659544767143228028723677424825849442954","17790241606681666334725636803850696249437859006686942655934292597278127415783"],["23569738358499506566446166662408053426344391219968280122215974188774343716122","14361034123700864998996849191219713560443170468509768002105555977923175735200"],["26754016072502541229689341056728693774370385079393633487452923364032278191096","23546004404156962108522594549138145499762777541070310728797472968476866813786"],["13773344815877759294399605512687710329930871329904232611898960757228998384667","12683271447251320682741170897267428641628719534779883744733506165166496358506"],["20875755312737382543891928660833365918800110980509811777626328086531563465884","18340593087012242971341141330608210344577161783491414039924151303485357955456"],["22998289361803862330120319701915939619342550370889502310462452184644138437215","18099325692749517233337575868605046301453929762472228623160308940170028098193"],["22500720687750679564782067006639206179662814752258388948594353302649262826830","10978405235105501320130723515745275813675285512313748875041514542929813187832"],["10220891799625984058926791191259484250458404328253048674750635490027574046876","5528139988525896484977651691684187752157302443928961746467311512426884017065"],["7473636248003844055493447489617210079768930957791191449404285425432707079357","842531982619253983836598242889655796816192242603220081141683529517680424493"],["10858182533533644290052452353781129311708612702497191908340656299790580237866","28011869576480261742293273070941088336007252025985926630335534325142094754232"],["24626109088386981260632237641209046485118923872944528029643409278447833866034","26957351002700400342251677428293835947385957350275596450751073760381474463772"],["6743323345452280188237487470106731296860825854548625646038222016256734759979","15344786613187172362721223691231698399568991052554686753701730044641268449081"],["21903450605605690948159085210804544387982257178168964075946738691443903162254","13797515003990709640214076251456770444637926162789910950714476617869141993220"],["3667418909314486536837472906604734245867987051363351692762967681285752142727","12960299140180924225169099182762206518939522157668744700424198707612310046299"],["8574299697713875846945495922029907909726387250752026952871867912926053409712","4578275601182246379073901339491580973762837583778646714211941388213252504408"],["5306757811572254747302431404065619639947098822772223549939681528284952977609","303300595810292026441004736529000061861507907447517683612380254204521035563"],["9316758079771891430430805286616611518075470086297554249620745811268474529209","365775045811994343405832173098511250214825964702547344905258400315733083831"],["10510676975668323669600056995985300142562037735438876081236949026259179144922","23357704807477483148086645683160113127108387362769639350477961911739889938031"],["20910797788110676769185391180534093533733750066728692138695371597105330426068","25937853565141888999738884325958165203142246902512039208671710801658970162188"],["16360726938526376856430384669219078653001193342851179459432116280768046467513","16408986851175984057566734812328980360709729536238237321604660654604921693814"],["27105596371438118036599404536806168090407841148237686847981173982672512172062","3923456048383593969189755760370312109800560388828671566466387229124159047808"],["15480277177803135699142595125562042338609080038825391799696127974132108746776","9018864585482543544171516517308808514392210130859078347483870934913387173547"],["4900244701995610163332272397281439384675128085707920921879276697568744761812","26387757619460006462581749067727893408416041450532728633042120962264959151174"],["14642612352638707450302104778543031853586517166738487801470916138792363191693","7377083502488690963266359086405913284474771989990715689976804074579725466078"],["20803110348689876250826257482136354262588317537654679470535605242299144129702","11095092890317803101443457951367004108518408813856336271867951192564614202913"],["14737409047570557194840136122571703747946200185305467510735290775161651027585","9035039184301760866664273018620918616631915279714724634009108632143544007386"],["17862831728493121858443669885383000208635342291192329389217461674682578047088","3775998742503731109702431235682581139169950867503948270465941854622566654737"],["15530670602101976118058123687715686627871213036125570651603856877890171605529","28018276449597428500927293553586313949423131097412732164074436582328358705700"],["27184888014813686689037584345423543938029311928831998584672034538414196719973","14468085112628435560227141590035537342882406746681968468772493843057950265516"],["25206101772405725277235722433812276232006586544772877095440814747491389570256","5079007812993377560181634505194921133940419941795355670970502163517104292859"],["25176853269348563255711977687029168297124102565229592682101241650581789466590","18172237216563285080594692009848215682536421236521918780018931354478435574038"],["1384842942772863933519433393834932743768368848581779268816150695389370482201","12197541265840209765086940227166630337325686301136904034156759403536370450532"],["6980774191705142440485817140890652231630534323266860261255111230369595256147","26945313098789736999028884668020422770870633933855441538698639255840900082186"],["3521185746408522037097123710568246208655709967452664589225477677780136040123","18156207026623814113309648294253319554656417525664360106330221320982865592889"],["19066515921221936894914383871100733978592380866603682193212980437032509338784","24132930509019147455214928416127195792855646377136116483618181546793489499474"],["14980258074781242141471351145998879277692558028661061871266060833571482320947","5269408600452655251369264429407464410481892237372049247906589373287090964082"],["24157082808657308952680127584396362051467841667168839294161519315303031228072","4145911368884300030730049112882607334232748971569910207221694854644262868353"],["312510319737931654120054175041425708001651463088469048242966868417925381246","20526190869274340143649935893162839098644605245132645268549243674944048413127"],["16673640682115047137362909099762282436695160940852776518974154750042365660555","10362368424405897969722351158257921910392686699785226144151500318800998109978"],["10386009109975463659669661364609327461729118137946843563632471794122530920687","2011256854055098403937824521631595320811261248285054499434127106151943361095"],["12504845723960821612062523759801537474803208698479304133260704799509372318528","13151214908333717519190615020898372743694060673710157728654019794092629739883"],["18447432035108258611445471305466871199186459761916806976819945036363873728428","6053539005578746084186427211374546738030320688491219173264213653061694563226"],["3455159014804974138826384790061197667183692681205509017717024104998438931664","28213630179448624766465627788842391384358904420026469404760117712941041927122"],["18042220308810231754238446883250456188308701105590805367751740476257687476590","9102324443296436701980032928166781899790908064980048376565246328943691501635"],["21545592008195155069442385934211237617015980861658867618574417795126621081525","25581714955025379838364755486803133321531898729382631612490934365172957823381"],["22767217956679821373012379227543280122519876306608552193947922743849995526043","22407024823870658051102228946866760977617344092260205279822469821526398788639"],["9959022645200614534382430631932477583364412967677085352129207328671457732712","10217221370622686167884704671716406134245245007419654612881541141647282582004"],["6635023096856138572710230823828352552770120677725931612168823817923120555074","27138183392965722417155457533586719825418873640235527383104603924808482875514"],["28468485967683185877906679398369236828094731059218400615406787854774652481958","27993443777649079013328936883527010247002032070161124889399334664271206832363"],["26907305607505443895002897257495052863474264286174329122526654514108920758599","28032456695169437550011109255684844479675517835708715227136204320021384365246"],["16235469587164412928128094899049621019206590278049309573255086100815273463954","28038230996618521695446943662431083737614637964238459439237448475591804133512"],["19810787062241407901281521834478073944072663272326656976344134913492667348907","13129746287178634002418626143673120102717017597286662290126865653640763975337"],["27391616910289973611587778533285289464196084601208923864090196415663506827712","12420147325379817163494115671112990516076474488233137168201230090541023395774"],["23887185658894373217876233877835962784086946696749835193344735155906525506864","26989232787423543922180117720307511388894999482616277227922933672869151061483"],["27296574625742011570435025360443325945772702038346824791462692074477197050451","28611831981527085534582530531431649050241191378462320439465077295986621426054"],["15451796750417443494659931564059518497015082625620878460226725869107096140546","22670077142657350068866837098117491256239171526198545650122127030645196641362"],["17676671195251639787092577366440678148019799621696787497617574696224351854459","20266977571231623393253509041325389436530786993879858104265599236864307006969"],["10778441993532417795710554846944050977556640649792082265305943163009080923699","27574451461371296463406224350420682525973029243297398754172565417244676746082"],["28075081221366443023642408376714090401615003047482402353234406031350908997231","23203639126052170829401621544181099994178598592718567501321364032020426009669"],["5491488265684461537083403931352577367884172433304893879784226254002940858201","15577166555531038392141647856914700797693023083135861058394991701742429326062"],["12783525676504229409210990866777469229639754735011670488206240753279308528551","15422834501207600584405925684188116128001810697323526932468490580074318818117"],["12223423870843137078652878107009876861848692482784942745021231582011999671039","11915679496517766073914056095953029970150286636461452851760857183290976303002"],["28480635156018122855576149492546645998185259309036300146643802736064059928599","23674519546817809464096628334847308630934044750742005725320922022241019264871"],["27936570707801139516277755237241586604109270764931587230145843753017061052732","4049971562202493311852405829191964687512278903038360820249015485093689658311"],["5104923890902212827464205313655062560178685621298087243758814231742014351109","11434217709799011496764755574215376177690182892591798534478161312324957411247"],["1454598460666502264930056936999820436498169030017484968196660928262795370745","8479354975892452554595562633022059427783636268177893718792726532754235406596"],["11348570240708090590120656775070651812649789150696216962753617475538140428194","6055099490179833679256218636384513557709036182785578720146039682130235120065"],["21604283034683655903443247702585657678700620405679236683349647057892955326907","7769718103813030351892613145661203564169028112622687399784395078089547574041"],["5379820707284820593517667946438727845033202209341677086159048286737793293816","12197255359754076625410967317586426891937358161125001249682159971431685820156"],["9181675869721598412710838499144346620719752058894664873408907861895752642603","23047471300534857269983734829062935374043826481814610278173396651216582037726"],["24212730128034077460357782284328749701011541605039794408992870591099655815365","28364293427013396886248660975411793106221405942885320929920175357114052406928"],["26708925073766943518262769700614281087323868318027858575448033697666650695419","4800836305676146101054751824275596140213343207281164124593474128794728771868"],["15094893687462977290621053545402266879856719545528185510484318326144412951558","19699383757939533598805823011393665324809886665777486410477166522001380660028"],["9508929764783980939450901430093888840752901457662350492581207097522738802458","19846587996000312397903378074798881792916337812440802314074421199946879615926"],["15229460956560197649073121981103267527909106430454351277137983442179762873846","17484098999633641871149021327324273921167671206845261951069989893691870154421"],["21106040489402144098719456712680176892754081913393736892357194284149414630355","13110598552549351362636526329610806860290458858331170783097821713671698561748"],["21224302629863911893163031628958286295339100838337242898296097431251839480460","11888842795262300670798649419297901789421219341765704508355943957652486618439"],["22870654336843847629992077561532154512219045687110717395277970566659998637206","366265060495262055772689296862121360700873700374760277080390323440974263674"],["20105775017718847972624406778499260691209095081004284947957809072163155927911","19185168871546078847458782329837362934473477841397416848474949354196608818056"],["10511942576564745044124497594469016941245895961863894799471278645970932691155","1682127285432264988346639588458058160405919982634630406028320956599236800853"],["16620398666069314117185931829194692638294894918701214800009687492542994086123","23310476491130031434580228641553859008481695974770226201165355964485934538193"],["24779762063862441986342645849373290293399642332117663594294805657420623377201","7302238244487961151436051949853823105927775381731329638945240683553337626585"],["2914748471740419199219184623235556106183795991175233400871795317038314255654","20187291775281857316650896122969465312070342931022277897415153264308736846280"],["26218387639601511252245415446967062168056397844126782597102155457342052229504","1663737259417238640676911350969950982642337776407378715114665216233064804188"],["6821625075944818933979531312409423151285529826281181330660027755319482151973","1616754741705284283397921879189065760339415399897561249088885086466060507129"],["19198614284352685074961965326584529025477251524309379895459598083977308073208","121066926333948184238728539182023208530039733194549995804426092835155595407"],["10321521879096118566182605671148755056066235676632761736699330065936954777488","26284358851772864326577982309975958443020493723920516915855699509042580847568"],["16267459675438657456051270622366302407600622512496059766822001536480035996782","28684913729974849326500034570463080101105122981171559494609651141071455004042"],["23480791707422288486478139213642558152962414283246499940454605116883720413483","24501077447235989952634379780485842537402115349043660227225709648170975343593"],["6111972563217260768887925470927779773750222725998876135857356181640837138257","689785916761865819667379431756617134626690558764803266586298151344248527588"],["10396335554958475555694553158778711579469586520430521122095854717208145686518","11143232060882595443236623757039581999008148224680632366928224016974515835308"],["28460109745578840404722220599370574614716503237917227021376334066517733111726","16203591668309252885474863890563313485465795154054228378290214738025966680389"],["2045967750913510939000156866244344859688068289210097050323799353633035629924","8498334018019519149925538703551477813979633851740607633795009857961079866254"],["20680211437171364790614471502252827474536440193661838878280481828642819683784","21080439040983766501427838415409261541952866612068981633558565122081770583621"],["19641145806756443087375582790242790047160392888138830790378545795131936214092","5368897786541713488067924413776951812137805444793272460817777632844806598374"],["7911399213117567206512029583859443786306673123920913094596750705214790207684","2705830557217290651881797376106397168211697396740221262690653105346418721546"],["13204151459910493984390593345762858426992711986446311092527252098637997005648","20295096755323627456092412801635171886110924438859827525743882542567961880586"],["7848201201707305373475564004981536774598051936769127212783885672357151854802","18594714108502283855115763971931886462181987848719521504469529369812274368990"],["20350849000983739066857087986440013857958616194085596621241949527712692579859","3964339766388301100646572851226516237833279223485021027810415438756294967014"],["6515957093295467052542938677045719872831351506388337300179815506423613294833","15864048704677347599942009175130789003261341319086417260619701665674353744934"],["26007793731947368977827699212258648698551916383523495479486684135627708804379","28556435536342827898496675076365401091905368544758569882995145107298181735493"],["3640206463340746220457490165260866366363374011759582762408353735586506865134","14146054759516652273271117026992513008693082791119903136512881997216640418913"],["21689387741097541242830332762082266738136813971783959693677079322060648449754","14091003201815800678742338907419720494349470076465365971338457860636034945070"],["28595668229445521177657519800637143591962382200197306469919024150826002576257","18227237218707991805369917557818258502222703851664946319436526653492185072283"],["20815511075909087209589430067324856674733150983547968711006470249298313752452","12750119853067286286615620255867375275243910253647927727362288388447708734183"],["8118152763258888098619455535135406910002783766420008728666253563676225017630","12098543268398601848635635281948015207707434898033714315265441026904794984144"],["12245701736885852054041560949266168110009057711187101822433398211658814835172","17141575275886367805283666330888308806386397017000307042524038775251774592556"],["12394732970789288573442503462983093723992980562683583996508136643085549054065","17952171569090981370197992297279429026991486585031172900540498099567877160591"],["8863677112061459397048774624815954102996692192336280443931805860806889244911","20505896198599967885482432097375484892841513695858609250104938266816082837962"],["15339742020080699527152896784677391879094773081658506882360381205922069121759","26929030589558941317231931559418599155923209463848539908328260471189411694422"],["24040336553446756794396371743918341576208143812417741173012946000239716431132","27552183951956811507254173662099816723360126943262760650294468048450670567110"],["20662588034406661988403332830078080232087413478577241817941886583895783006430","6362865961788331373868328056821604257265012956994651577156251560994403932453"],["10806886230397633805233259015403143261526673131566906532256783094264620673967","12543846281274781544395078074947325144257619627250186366881200423341164495175"],["9007973455578412594616377448208710855072654370295988502215466773221951088848","22783179725796336645760549126014083269133055848654516213441966701288343034378"],["4348428584880324781916500247852104189490461409930411186930551250130559459488","19808825476370998117214753222959990367635438439563072416991342296769272323361"],["28704729769836873277938789607345424818944749306873957294225370184415763666125","3705158794157962873162207759297708990362217792201619287471062303696265713402"],["14627617432501587558006849862763955332177383775701382788153302805855493330802","4419613945011233801219613418244434150523119631212233355402649168476776496419"],["2673596947868746851190700340010396775652256716152516126477267528974940227038","20021116076080182430150330996233643726189348639327120111264048515630936364761"],["18211996523125755920540017750017518830867919822526305607793076096843334982879","21377697828853187690439567535415331420376489639713277363055127751524398665571"],["25465169789181746155803076409023520939435747435477892252664665161142955021372","13613490746730120060935729673872626649407725245240186191997509757068707631690"],["26458373819314060722015701985791109052637034303343622886624724222962851095359","16351595605743185593037292717655447462825577318020800706487921103623031005712"],["26016957563266672965392827466286693254163050487559042043398508874611717284512","23010681638359380156804072283557181722103555556453542724871564172669317663661"],["22679886219511471894358205451970222693421739196944971850346826468870239902993","2671991950122298334514418601431170793680699071569296714295599301403859463577"],["13630825722310853234487678918260949445818576257590393087250674073384269866603","23077912850931139052586361858589145674256061808383129098470401209056713471078"],["7066616012742185874369077671786681394141466628587762604760144397316167216065","19758174304587958623586323337960603946151168947786282925113082551285363135864"],["12808157152876710145131273647180256089515870410313370405483953682541192110063","19785019878490203903647934193717652467836435210872641258361666675593609000890"],["9803675062256485597704106333277580238321167396424672879557150008266506099955","15024452640918164632514305863573623546921141240684445880063744564075707793472"],["3892912307621747914116380406222821435952341243973724989845020806627883329245","12588286842139983156584846295429139757297594079664830044307370285151428013121"],["19915434720143414492721064035976618730845529927377808913778908959632034111125","17719272383167799923447181525426447937257888244667378336195549459400009800463"],["18076398549820772528972451116118786637171180469698098872023602876151528186322","18673429901030606339188019131950618046367296205310062849801215414843877293401"],["172222591552902444925479423164469034513576856822901102537010688920845439985","11500784132968508288065457410856530694176731411666525694548767990760881435469"],["16694176643940700281067833920901417854180944747422027227794267921949294134611","23401359730720568033748224195744444950568062292566063401879406731012378092429"],["2852703031101373173271446830797027786134113835962881356506355739114710225287","1905191163932412834880515618001752214555383010459545977886625603022154732348"],["11186906627058744118337424322388767943992235859135881574118615035058456409405","26787592145265928355100948427382505665019445560388937023435509431519767767279"],["616589838270960226728932115463055323529227855123364697528914000925828009234","6620867126868073339547470665774746940711439218029946479219796899899460671819"],["8578419385734579879562688803469993469327158250945865315908389716586943322982","18085929541360566256675907243047748523324056877346586740058024994012381322661"],["26930864424067997474598551715829112812398883034486142437041306252219090665816","23982034051609371707866172348184577621266252124550383354054132685707457261229"],["21419824715647693226745018440120505040964942624097861341970229439773380286135","22586108676048984459478840172929217458831417538283446709787186497465242719294"],["27983248134639621178156505455893023975464341975606819128130467860788036893213","13033597338279639713488778165093955149116825416441667298258771503209576277122"],["17993511590860436123802697781065407425582330811904383081369860162781400476625","3600246064761292346428358261452503765579194143115505540373183677219538086960"],["10396546814178954362344358111471022760498138645218381829430069490772007158496","16730631297702868236662643766928369689517290733163443849698847939413108952313"],["20720724067414704146594136541880935948163076473151137900110264251624584161332","27640512433807121364129897117415254728171260503807125502706164690473260654893"],["8062140681420947042368383127646230833523009071299519899385138321402440183108","321654588269397667448487120643871679901576981917181417239138149153438888424"],["1080181743265785234556807913313670752588381733944106864719217583296436040893","21253294888718025854808181535543241623406983436778352560228780961890355124043"],["27695896099421145086094464517808899970802224993690647938027077285638501620870","27853467199648615742014305899044523195625558497903628420674380374148957228659"],["6079331426568188789193802182208891234771123761959769145435607704980661055900","18834268731222954234770590050947992297318434042143433339739538019218652959787"],["14260699427457249526494878098729170381467102176206035350116700165732409635563","13012426572573155417714236851995287528494256246965465605242044587069217566500"],["20043563039611417260834437718568319641889144715525583011541367827361730446542","18097718463936148783157203672647728649849338090795296748381691022586013309639"],["18282092660158345235473010832238056775610265940920272272046687523926202383811","16547521351762701360911964915521618007375020240198307554600408295018733253711"],["10504725138865632953510552142320080104601234876016828643027883647162622120481","16787345350444819934684453381942208296340458932752749700545161581392110908962"],["7992496788534890550730853654353330591332634365888389599055027862125404002907","28474175260187043440340791291020213674896852034236161666639463318223388577335"],["18089457713852323336688809163294782064081797375369650338508584351267160474930","4046041327755004253399723116171163261568370287205722477932284861316170978095"],["22600456612258494911568897737252508506746578982982116867139924701978126154864","2752043845894982388533971439893233663216995216012760749904624667558887560737"],["8516799205345234246525238941966841702799626751028920960511360288917660452435","26350094601696938795942065593990794690695801254780844238153220697137377955098"],["24887517449903961218017867291571150144318726218703455687211050083223612812413","11804881998789420964086653247000555736937382934855017716947777653415743339274"],["13781882656655291931358275012452689996449302224420394096900350127944763174061","24032259449913206855696197203297506230190332251729109929904787928738936998143"],["6284528876094031016891070801383300726752456608048657221743921161788821963014","9855415961078053095751552241151484139277759256980666995613992157657670731380"],["20138440784980665633963113076190010571334121591812571424995090125580680262652","10989693509570840497599966870674908864991960700106828888139007327271146206303"],["8509733962610123659593148590735190503419226552389210313177575154725624051258","18393598004974047254784001133008074276742687807773604533444265303129563782553"],["17786225918391723831560790610038936618573044931500473492545608392735783619918","10899957907032722121011526915937634402288318234526301396274586870133541338786"],["1905178929271536420370098906052868665244398659157242387585034955131637811069","7247639499725733031986067319209779780248088149484589562177912722463297342118"],["18840220794806557916343313932450944680852410088564054275114767901471328709258","8657944119940950734211152265474700591679653817742987719577422398276571767335"],["24429697566839321751551557471247959595539458231170838287703829816205069684021","402865627348672854987455849842477925534379173750803299168331193611867523625"],["8512831523357392403268262115201800392510639678806346315749293096804725355592","5658971243505967563795740925018452200571063927924318492375005618024709726646"],["26908799746365144999497702351804972361502828933628276138829419541517752440653","25038593445152325133708638722889711452206860678729918263419132586539912034396"],["25141540454985545865294057983756565503770765480951044723007644519742080488645","23605683909226197191088792482698474067004142303158226898368981245144964087445"],["27483941038187847900197401665686591331702226575702346982713361538559749737000","7010608444315348785610387927674469938852192254551982311323264248730071817066"],["14107377024851497762571301961710492078743581180282067132658398553123479702182","1105317957411896242273951579277448175821898252464999683016233816191778664254"],["10220964652567960130853019583572397420553778184138288871073467320842095057335","20206223493221324618125679172184269067158398887792455571790200624070984407991"],["21503483733822765524919566950124892935295395236769599488616346059001719018178","23795890910153038698681203954112779759248005898577973564057092610305483027529"],["25192511098789191039678027312582594415237541580350546129407758955153623979367","22307795601562787874802962525206792851278053022004777583168633690940172143106"],["4911335130749061462724810090975498025368349308458921447267825483390243339930","4240002763287496529904486150276169639594963229177695491509487434235168274746"],["19359161481343461304625883698517691099475373248134692874091093811482055085712","111624091094182165732533164315586633998277073941061979700562576347947469621"],["3171042803115240108845041338819832686127067760102219658410525012899578402341","1239056623097597905410341384637386917310903886611634375339509980931503064060"],["788335443351852479729754929695864444185393754473961105634513564452501303610","44181798786177165466087897648668891846388633592298615111133229962524851735"],["24409408329532474243561145507698560344248810942715099026782642077857384010140","14626662896528850219621235446334227533538395368926328981121042877926555701528"],["3630663367193394676871549759463149147808980136993333188457714874857822389760","8447707834984519843320401143193367501008279500982826191004781144473775011989"],["26851906223181273023571020075353165724071844406138692624269742450847982850084","28781657010683194484034573503694944396048389581911568894136174834675940649755"],["25733604690393615022707522267992420385121920484347760718872694858441185341364","4071633598444196355421521133962641011456649009282292578809105056722041692751"],["15328264447206531789832900436982018644615272341332776400517306169273549308480","22083539594617507465708407540074516958185034516080706179513639107000770110612"],["8393611024903845543789248450666570372203014159780013147402470581400787687513","4193424217473176956491298224250538559465995675581412961026835469527045797721"],["772451683746243818776382990316396702068170672905981863779046326162886881402","4072662987003548600542858527490663447366388792463541784939871753803014365615"],["10408705519124484837262686580623649909306848706284834555286632543919882904647","27371140759678448026493955917538623733191657556447980198890496146931977391852"],["14199384787144578641753511757286338211944976500717418275252122042081798692223","186253743173589340724076174433613240011946254438320582123676059958260268041"],["26333645779529924968948623021468730973690487239545609071546045824778411696126","13798864320541964590291678842853224471459083721602202827470208898023815737232"],["15791065720416991358224950508490777257603374839482983536055058625967301394361","14656748135044574079264807391766261235775803147648916044598524575086643880274"],["19788657366465491768636288408369548577052819087937553021077502046203636958374","12108721082262932332194352626855968351783882103216728675811352154107056587413"],["2504597371761386132551105917156450552218307268828543951476501834576481058629","3954625955249244926475077320585401200723670588001755599299269681490455590740"],["6315211338211691822131230249068207191545194972471114328170635506264418973379","24104384853497279307600949855196988262079555581953738661395622457624348035065"],["12077858327073404335749738787940222660041875218518186638996059376501188278122","11844416035238305665547490508529030867242923831026202306285649708105662472651"],["25864386743523661403427758081336136832231812714070892731530699885787123653642","12235318898646257661538930053120585779840726990120070108456150038807837704592"],["27028617256608288373176807140859428156466378330201466448343347825596642657175","21289170264386713266659925749225721937304811448952317666056032826642667716069"],["21395465193122866906783678107061323740200028069240320707277866612424841236940","6174517373191736439495147312714726773926360730191591514418045403542548518811"],["11127252516856810907067082498930652547853118107461451581158637259941653185819","13139292143765688691094158892165730094616979118939905629065071630018976122926"],["28550194709286209921998126687196589419507737207980062601395506577069826627912","18590916746376507108669623961998163528851940508271450238955591258190975724396"],["2117003614543321764555342827244169856650060187047049510410476462779923542016","15115172409344217616194644546986087559812111669175133513033922463072240627205"],["283805540551689770138922355852768414294349925168205799773614543521327923371","3951063431378548370439287484221703063316476124057738380177217240756154752358"],["11710616333307131266295003165135824325803375761395738740304931211638322472422","1445031465041644366547875836607856320331522568543256649072520500554691958800"],["22269105053764124592268336943588121536720523707754123916862889971704649546396","7244467871037606849998821585406910636539681631925241883657077968112427160469"],["23502550533641824887521746166935951733666343284566161968848053372527205875007","26425041023624245304263220202528282568497698849931337889927537907094184170442"],["18458321363674160481167918782435227321225529593153666257426604504374977615204","21112678602718077318504397594836907319598590485937719111967778201160935484048"],["14536991634131469986374423736095537856554318506729818010281962164981136701168","19092777288780901038740947040787290817509859852577923306560797339121515444454"],["27597113266816300359962186111770639609799888791057368324545969145265363993669","21552897999103894193355316591575647022198573181920518370172955509185272939547"],["24439516577371939078919298352792511710095269432441812474355667219378430742922","6669059670645682384747430274411314074132138961909239747714322193273571092343"],["25884049460263164405043293746092441474865189777539569331109515503560654880780","28066503357143570117917019366238505959945008257543271383315987327240702432654"],["12463958238701759588706492461756238137783932060594749338486338284688045617919","6527194256667895665424626352377663003613644587626587642222405681163522274513"],["10678401532526666543948187218864122299110608207024982879446728923472091367486","10934557129372999634899645671252196941360751812120418488822112492845251350630"],["22265153148967158092702003448906597678071868165011073070318171647378162987700","23942406434714211332332188662530100947773114454103484298251972882425609847834"],["13669564854264671614332506260633704656159212236401545258893543993945579472137","13279316309967537150884690257656395941606648572881900749359988717536006791971"],["27954799524759502292157892044174114697302940191916057869132721420983653371501","17141492876491314388865234161342942681153424078325396030660133686545444827263"],["25388883952260321980413854809779548465353312214852078653417946251395102558790","28594472630850858528178895272456779020958981682569475442433114997131653934517"],["11354627665902393865613742254584513127261142405267708750608259566513451184040","13647012051419207588310865331613930410433875665847912800621220910071651514025"],["5364257790442467020456536792504337529121853920720058934201328691495030886713","16221057772764319798791202729406003333966354632473588795465127329996978270775"],["5975470398857723203182121099034849382412144327941137275856003137471832793615","18743095315697705693359220596583640794207032150005943315722139498424220700703"],["19517900583099106201506948360726600916153854874284752638422150849909735467568","28844197322786005816077614159050659597337055264249456021535788805908484413146"],["7324407491229550122333055414207194321858338170901833204253403407987462532884","10185208802463475396358105725276360974621580575749304143511693713553245469819"],["17426026945379742153167815339043240883684845362829086374083069624109840271259","9036128817002768115854004515677487953105860776735537448913943782907760693599"],["18919813976702637017101724485307414661894250987772134919091736024431838739747","20912854838703275862911113426443086586276753920136346847817688778437476215693"],["18003965954303165202257719731226072082627790165492654314480090260426932946115","17043631656600613929519218587879858189806460313019699475198582144831599494507"],["4284057062976555901427274323573762768369862133957689282038045912779227036678","23968967602617326328463987526363082370347831353810239369422542788652496880586"],["19165638171784577471320142480849145219541106788778146547028877022181519547687","22292645566667195918310532311370694300406996386981530373930116568724825455987"],["18387537184056204315397331301590177698520118740990991762326079109778886761735","27472539679130736730527915549414825895392950262025161363432269869595777881043"],["4912891472975035556701996896302041187168314069880342208311112141468273526432","18234133510096863296183148175981571877605176989302982696433556534082250542852"],["8033828686388526367258560495094368280142874859315449223975686674826854139697","9418391412689243648959970882939977929983009133938231178157544226521947670002"],["21621868595116141086004858542168259168460564350433645238275889646624444755655","11973890804774446730494910217810936942324961286214624286106309038871752420048"],["25819543959416024978655119571837196399854239969591239516771488344557394843627","16435964336566995905049149910682985607421447976486774324886554223466874891067"],["27932145626478201793570144885049023506747108537535020978339246086316728474450","13310014123150199525281061895233825284349521546158320729937974619567753816970"],["419407338610632615616401398501918073275173347094308270437487254609217458316","3886049352919682531499063559211509089545271948270626686131844354754867203691"],["1058959786389211641535509387524980564383443042624079736057383825364591727106","15039060511043839772866877698029109970903351457444320090489778763970066825056"],["22247169239335698418856041472244285575720882214866016291875589917580777444337","1049427323957924031561426653527818443154010392916884173094942002122222262172"],["3651628649829085602927164857425297989935610824101522506050527128158016975374","6655376208614527739088168383331158083561510390726634096936826641267075229988"],["12034153073203136503093921738462001987309000649390456081361838579968669736785","27418647877640944287052399712946625711245243801477170633859449764440824746462"],["2629496017762395092359609397044300959289694344211752226892498696260122735557","24206930008136866120755062152140574686065799232344445139027662319104037586531"],["15084316540322629848432313906534452168820802580685778188528431608641139518881","5207339537151708980488040456566571801474156923718572606726610010675203988440"],["19186560292962415181016905487810372487474071670467205504254609157557695523975","18019060257575064541535740974203448973239931575120466854798351987400528141885"],["20167247991512208178823099383291854290547819929079156285381340761080955388964","21684639174864814904789312882066604897502385531432041925480279344421657995654"],["20507456433499189389704336672590171411574477257097195493727585692561740286307","4092635837043755199148259682026286026186678782794149985240380924306742683489"],["10296438664370115804996602147710735200450899292037928275364287709548160251062","22237595382100344978502566032376783274042228904022030204832919321345524866477"],["9307573729458902351546725435352730367368616630849767065167765540832561358957","23873622298599604310818862100443952525579088548753413062685275136178583142263"],["21209228522128687736433516370010686433108717067846282552675313783055455400851","217759255558650041290591805527360394301501729977348320500572151873044789042"],["3192529783545058609596261683125561372625752393914296443910049622548703192561","8876656665049130014537517798410080358579406832060338600073023483250053048133"],["18452066781766870915304781588196860982185440546621044518435550851229855140878","24686574370435472142857948007442754408169699077599164884943264413829908825191"],["8322216428355677428672651903974452016735900798270912657397255374042204599207","806076910652448899786943103961556774856065580815061586859319956761908755168"],["8520298524757371996570404974407762083620450472385483526187887253451961493","5172827327943137834171938080505974058969802837619598148895473733567766984156"],["18934478914787329152114977240402952178545626275752197654534825567086095913979","16478237366162082464852051812417633497778923435362247147982624279926836980226"],["19632339909075737739918486269469853995728181196303266324799430924004063638995","24435292937019329486616892100883504861893783247301404180973048485301515401764"],["23299611306537141091138409673912706131041402459752339739850892746892867323029","14980802835267180831358917107856226328331566573062313875203237683130433827881"],["27409514993858842826223003004217513336847049938965824905994870001143086319895","21323625247488591983689151151132933726555558795194852544805160744020380317179"],["25640701454967291817327703858912458983559952401698362907823923023045058843427","17843292633723468763939733495363646308628935007319326714524484611272659931602"],["21678485773258856428622506037018251701758827299559763665676590619736250671780","5149935095448507236166422757138259421103465583779531466654332239924168916715"],["3083140747859896681580908710982122272999354207462358532930873923023268710431","7877616990701495773271284360382853813590677683054006310282871577655303368133"],["13674208704489048736607483648833796488167719468885282526961087807664321533820","14880875300893539968531409974280243128314722296335809074996350049129346144845"],["5161142579064739112256164179792442135981680026517861479899293060803051826102","23582157639999880622508360223603704606365126223655793838080079602700865075739"],["1499020459052609367157078292750795876579981456716892682889772751083508657025","15885899434917238417957165544158160476360407087141944682090917401256807720499"],["3875059122370915316407045771692801002838526291379332828599445234415472230922","17249035403558415702351891694834012152925823059598388956487817167348235796171"],["27575587111518917280751463917015848915902249376786656215169323088992188127578","18193294650218685368152714536609197106247584118440768615759669440464741732907"],["10369925030239746609063247853289956347513206369506076157837697231410495659383","11157863530539506075046694862447627115282282365257198856135171182661062440594"],["15949701198599122613327781525543419061127863847752578313876507178181069378943","8500687543078141914573444997613167302570773943465472823550007546264442704566"],["13455134555531968315773148350075403002008671092412765976928278317239296616892","25165649132741157895001599556681237832755677439453696790770312616555956513066"],["17328231863566505215391448510441633845381301560868858024974589718441972734165","5049748977613932398970570581919491150694236166473544780810815765884534747031"],["3373457477345619918338220063104323724271450812226258543836382662378738111899","27593620081411157339608810059153824886478728510706097831469903124603037950830"],["5836411665338466815583397148042541568431229351457085102486235417112402248303","26265991689212274807068522412567345694514882555900743388351476591939367360973"],["16551564880711709261779267803727122087263606222208901276578821216050333792725","12759159362913118569097653028542462012157574157898507128586126723752333416509"],["13199757959260509356466831099976241700765042160077041134514191039381027383615","16818597218379306543887150127180450032599753250653672688359639013345863370710"],["18138495726666521992468473083175566553403173477594541142927561221948077645811","4276676424264869495793519080231811451058025323915219780882479779274969959918"],["9798043303918821269787045189752636160993588495212875483884065829132268554902","18618189453318376721354318161461512727442435170374678595791669293144354862442"],["18424290501103650455016781826190800448586061550040809011557986108797417512434","1037003213883253295638673308154871176089006518156170194052727301201206034463"],["13550537646617504420209541857614995273893065663495730182742145517489462495548","2067132015511251089457255000313399308016467072316300532073687323307677943286"],["17475072402630523074014755499504814053737325249018491992866254195537426850164","27441326008671798840919594600485089577489623343321644617647376932328712138892"],["12399643837517651163972947382325238331586991493896752681629168806501660743977","13339517925551921717429174207264660953516277750303873615527303530885735861179"],["21471641003592049091239071837340599626246393116253779947994521709814372477953","5347871825250493896959787005006086308363588043660032941532686864954440406625"],["23897910857421329108110643615948260984567968408188786149080845261274351641041","24703191876388555437757913070222314750896457945692545200539328772413915724089"],["10682498784686008077328551445060338423153730486691839261026729679697398053729","28624869044312094760077408878514067097773130349634315461695860778718532258897"],["25169770649795360332944639332784920003222167162867061956002284636196656015449","4528669713151182975542273680123616579412528259857497476343178097357181202494"],["9938391792153065616937441704246588745340158076879317247187899153531242078368","26958080162171635594060964045260960447104194473001535691241701770827352841278"],["271152854125324905339794985991704427615927912358638068477105242033662236869","13802683167905155397432561655038795050325890273510849534275646573830522764992"],["2451120351524180760508543467305444925894414234062970897991871007712312031675","407943327551771176919542133260604781991231630821411951131507094836687137802"],["10121970497216652302263469081915225445761565097003580112759579017098314712035","22830638141274513698247550336673379557430953435407685651221243875623326968723"],["18257843482418722829531558115215157922900386889361898078753393797395463551699","8822344011338514499957452855940941026883986873611412951962360735444874134274"],["21623116422849127836817414637688711234376068232938020866139714172301125865068","13616343455589287232539288706322202804270663895719683705031115548672093031289"],["21744678122196549955213432110713959829283592744081255546594497313027688923347","641924631949286035297966658733774535736552949115267926535717394282865548915"],["9880697099705468973621199162922435796377196368118155275222763904931014969995","19824983862526226997345511145224004283184281792707005171437039829327279621092"],["17701643939617038390757080816240879763793440477046590342895923416594435747847","10858752590852393629584222378023534715837955747418011275757064754115919018685"],["11106094799760390360377977001206750277411729540639610274803269773746354033401","15733815639095172488469141629115782678584378249942641616872033080365626923523"],["13709926101576013910543225189609064580808530012347026711687673399904374119446","8432777838847273172135887286090837485311796389520477009120086524580946506573"],["7432293218404980379845425031631134514361219762323544724676470661683744158838","5294537499354510094541544284673954842709247879085833918061265196131944126021"],["24100433635466625760365049248813707711533528769444630732921354435289412323684","19322621451415800247384273393508467264592797724355139214480874012739916429474"],["358158647185965600168655234327606182770377215790443017039125314107700041780","15325260917117974768883508593947297146167721668070013172986036187849789046189"],["6281319621903522834240869187495650618022956414599586674020820440681307837656","5442953286631664507997211281568667240301070258422630509486911190882553251462"],["1365344532198148843132953775224803991138829552475228207179109102622363565288","28752245420913754696651107865686158962065786883551764099589242678465038988822"],["5207944290189429701404725476192218864757327899341675574496225687862242250477","25820277831280505169065820945633211720807249549463041219707883030185925761125"],["12604792900147072731817283889796127132502035672469056301801553569215417374920","574974228625298530380675746259024043240199644116876037100560291941625254562"],["3185993619834435246987112488871472851819698510221276804689524588486887486752","1809337279096017792828151792343306507783366504269858919924625530498814984802"],["2479798396795273814835912374357659146400747175089870217088084103746420224084","16035529653732359258560460929991331778562852403139391412719547488744641842846"],["23720758388889287173215411437326020602148049744525503452405302323501871901333","25193371667682481634773606387309394153744670447442077119644780939375270213437"],["2880802318709734883234966231530563662404452866080392838337897150502832879487","7029072483581825832498012866500088865467601919529024811283246912266102081852"],["17962542873728433908292179104949186621216778057217225175122339969839948347313","13277214548205247803506304514559538583526016860549544530462592557663165195478"],["1240071155152012926628752058975941712550646979219416824462758389758721763393","21375078016806382521947774801600670124900394974972233484304322887604670774314"],["21885906776071751414403312535445676458812535982763964455522686255731303772132","24820309010343670736244564932017170753370783327144845770464953836394853202442"],["9504012977409331064311209600822823587708425827968654501756772496804473405435","19467331366932164709156050520214968953434670447729986990240867101423660354374"],["15913872822881603908464138649027501412447534109185653219789169197381842687775","22075336993498094905713377655686643255982120246410921408471876510104387780410"],["3466618937539976910086289705974421099441472354840476064608383189366086065508","6237919442172371292833464061231021940141375615128323785211644403701716679360"],["10733320447258287055884105772917345060155590123119097551080681162321332387404","13113233883971393397860899122721339782767006328825391409514301267138162511485"],["25376476569124720001967100735658774362215578671366183633084826314736413157266","22253524569074286717395369900927166977713202269904624379162321851766484472253"],["26636803665288463614195663643420978108729634882634057980231006296523874338478","17674036777962420478428822309178802391328605795746185079855072526055796097516"],["5308779974702968869620777470563678822456700329317475684175018913160067229836","1982589507184700234409568796316482536272630577677671199679359377386178221685"],["5064321338489449650104550225977714191181482386119424886610794895627553991847","6141670841197992155151661271148357646716397120827562384785622425059291561105"],["9197917995676978005326609117875007653449144301461042786906846326624752885864","22125885537268047927696782946101633832855005027631385831571522849246979572796"],["22595115469726299636991048061081329631036322750281927657460823735550949361423","9627214171737717987917830671857185024455629007358942156142853165575723613187"],["10006786348503192454511261832829842289559771725562210095885336056498611676176","20729856930218583910363371008528110160386833161556990102899225831215639683741"],["2145690631980503674469410038513228428696138481059659545544685465318044701641","8667595767646425021610469461886334810556148174914604650664352284819270801097"],["238066921457606947900293071508275388554460935139535446393668885082523463737","27541943503488558472041009177423011835288829527932492154677431845071413021788"],["3045380640990681816128002209176214846796132502752341203740553048312136484999","13486740018590516320586360878645144204516360173909401730425760984008702878723"],["5774637199531034592733620838653943958877931944066855424092406510832541504148","19878619435972261163762555516661198002266842906693772946877579351172270713023"],["5120530467247517257758934576165584972878654395315329885793282264493933343921","6364308826173434981628124717962544682283867572419410624141388523511233661425"],["10701208434930886549017218270045623605063107820402467063826765735857124463401","20276572918571794149518874842236255155232749959171856150519143155736362508515"],["27844481938516615528864367327513284193634031435049135228390754613597308886835","7528837451112353235107551166571349570624328908802533672811002630223052391875"],["28939375323848320588564867535880558737075084587987326871969310314767871772181","19982627001790731970675615648023977910742122094841766228838032745439774170770"],["6413856988238806579318561342444120806419196529006031885002445179018154595815","17740448256004807906144442879405109141512844610409989001001781878674657366946"],["24893795550163432170325689885460649939032824526264663064966793726640508926160","1108127143639784938465108478081331195912107728861451641674091757901007970820"],["6339946244277520898557587953638202773749823946030219178981559395724727170181","27167919450018775419422592972694343566953662554479216984939722150982304130147"],["24181418091019676295920709770735516626383232152123471901788630574885009199823","12481560820645487126508245198430269545176374945678102070319822755968748223044"],["21822061817513575268289719439479650914297840137973760241028642891998987492951","11873786747041797199341812729796922393721643978448874966612419137385797950340"],["5008885638421795658506544907847342308790603402538824507163616632149165457715","18466144971411228844286107980256174151296733250861348113345971666920247367956"],["7432398679228400177445021018393462909800871507231511378769003936400591615884","12906221380235258459734058072068657911514936387874960090903357144980890355307"],["4611681579611702386495240288524663542869095492072489738755824467172375123366","27869772201296859982606509525927422994567432683403535225118219630572540122810"],["19009262738070412676274079153723817248783187126862141183371548945323177239630","23429232638169439824699163317980822485402411966058724484557682281782784369965"],["12835879534686883050480381938425523023179240870091925828479580393836339215018","6605527232604587486459558505257156638349326774532688290175837770190459664201"],["15022379406723382120371871704550619517237537402174402343767841460640556078614","28644957403784037358778422328861197478850067448666334769463246168006846988198"],["27325528511563876685577822855196186136119120437543214605942163107695991256799","9770850319994555043564068397862969086982810377528911664438005656849298010448"],["5144856708407429129177373495584820878625308435570227563494404042229259889648","22806016187954885815404485503741048070764401194698849617184089788060446707843"],["21861062711038226274834453584176779417791410667471603293006266534729956686254","15315100802426892213176618948957850615300796873272598674038464966590263800485"],["18011138662378991711066223952015318159984428361005675869172918262234130249582","5846211730391320182049085586450666435794234199087430739405067007061543030879"],["4969176112819007419501496555276185991952745132278898864541006486924424720111","357348350146987204333737994574307181308470482591339178260991652524598745479"],["28544534774205637711564335467087258104651521000906805409119532279937187609335","9813147262722840394129414691391239640322159879853848010883144905851292437582"],["10817673940873713028072825789090197987733264770344997216712232219786854363144","2370670915099765891051036657158503479265371248897144392111111176756216524437"],["14126050599116006883469863516349957099518306004839068690051499154217805617079","7860373919927460625535797909961355420286442412940325813510642051784225098920"],["1098811868279390553057361243368292433255070666303391685918681514235642664025","26883850561575107139832316579078056575276767528031337239243989091696886203400"],["3537380489807924915131386802245121899274993525456204256617526055000454840921","14499156337873446921551525915700190557700381655019756185437485507369427654521"],["4779955516424336651436219559622377708087009918977189581538698614678383604898","11374687060910701765968385829765678116799209012333559073091047525095691187600"],["16048202497820803935184909530849317861521904800659183260914595903429278898203","7329508676114296218378763109477333946868624849188968666004025870706356072299"],["5274098898705215710291549519670419198231449189339135773758614151319367343471","14195430292384399552257548274346219061062079563899521458495837300506375353941"],["9746903091227055060843561502378935735240253116632748208514122270809067801614","9086652672980945506795147634415447813444397853666434000116298673946511757834"],["7946016795794350307299309115246260545104214353891142209749080073157571781548","23639061900083821596968371497626409107344900171309738665176980273307274172471"],["17935465951798820272711156083507210816161007509554606512312364329826095234260","14021138028781627824051932621676366752754149530732376949443123815607746282773"],["24046760364788722922070397393123749030991992085726506008391866367012944382785","14853723703252249409032943914418304040653422129957606417531137064823098867881"],["15925309755509324753349504636882835523238348889418826212299658769790263833474","26061846894845821429620326179712014869136663818259724584141356130639919320836"],["28549296580421668227202748205240482860640041141261636908165808616344681172231","19956973300688211647467930374049838381208332527719774233264055385823244007745"],["22366909768421172397731469090970561894104667311302218065935250212146919619529","733235568701555426092896180492162269482661716393678243767498597828057845205"],["11731332622984937233997933350707554241071568009303880558434215592859299506028","4059963191507251464011179746028303860126495076265872759694428399157640584526"],["17628926180452193815886191537172883965757618949638475616738161198558319369355","19388705236018593675446198370554992973744676143215446024504933453885689845498"],["16089579433243068905790470674586612044552771151636469620343898375758954674983","19268389536255126633501468827447853421376031624657092288259288577396858877757"],["26862639080472426909423429537462216625028629076266661698421260384858802350097","10090626532180578432680676372981946432294984298721816555135479050487162787849"],["26658374827606345683340679849477707580523410602348527754696761759086759494731","26537383063971942050777506467097607908333758910279688952921315626633015312551"],["20964971507762779843648367304042693712100587746638506411280551799988933283013","12649386059991181791964316186649855237746177605321837566751431711068687801005"],["1424871694738630333567303884857405729540183080643512280329199242916420019027","10810889651083420582309157935564039700893237777857709076327471558350236144399"],["8241348986761617361743429105820092604107427250089025264996667146684438765160","19756530361646336954500560356204368203033093850390561690781867326633526424085"],["4882748400328366966773561001034127526691972841005515757858088444300727817220","18178615466488779283366567928427771614292997260823348271118870959473171245661"],["13592561428668457823309452939570977436847370521383632844073977550617813204593","25359231114080721385096258282466620991021192566032118792947467032022223763935"],["2023813881210904852436171256712575791411066313801749103191374690318685015996","2017692847730121414541487526244574523194812405211868056907851956877662090780"],["11934145299020115823257703721470279569578784268638719923304399112189800284395","9674450996397999225617601475912352626591074836730980164485246860499113454766"],["12195941354682162863513867095877920199887754068772753425587648613588530570389","14111235081845601172379590132960966880910443044208651285730241116606681687085"],["5831693437368014536153414349728130351432163317905135378876997464585804073316","7225808653962592526268174477749434959384371115325754072194568619157783704288"],["14410100437353325907748779864886645928356070392299047921066447698518051392390","18331719371063209869377561775304110306384908955853985055608619605167549242049"],["853055583945458821520448423341262965924193230655659721731513914624575064721","17650338993426435463439079460588774975449229596233432959559752378274917053960"],["11555354667913576472914593240964540895908203764406352777204438640034519971220","815094712036462155049190185522971423858003019612024019530765627969196975291"],["5888173169485643833960679108370411566104951220026829186395932732366000569081","22256760678932452457927472941024844124162968286063915082399085020237054871495"],["3978043171038989238447109280372352605543406678362754212898012197438138498744","1785981162438982198362223641223445510370466674637424212379724698376175594261"],["19879575739142911605011417748393854479758638954431321035523938747599805462197","20562925175974864701723423187244084586360920439658703910254735198083071866355"],["838660388701440509561839347221904599981921054991804766238420521947265362910","21476570540500480895361316070458330602229246759365069410569001538683516171871"],["20271876505654591385034841351682489284969419174266873635015416942229097397730","25217785640741716333292165146394299774761279053002267896067429260340814063669"],["27768599531994843078840765394897028946122862214846137493040335211211396961964","13840458442523232906404061929898049934089142815926794526624426405364134924255"],["27987682660792929797765354260212201216450695599491981856283836182215484557975","9108948168237513691837117413518295080298071166175116615792882679981160267151"],["13124505117687509680496921208899998966959619133628633683895578770243895002854","10426775531042313835350210802461426597061512601132192384617678189957197808312"],["9409271986551037145281281817169456345874334456137552917797050871846463914573","18777670681839995449678724424570151274499600243260067055841840386473960122250"],["8283557126062184437687449469401763887549546647172561946742201061202467618921","12967615690892312556402790797559920724707556175315615189312773763742734361708"],["22537681057154380282337614788611663034518362296149153629773155624519765907534","9292027841494781105462762032970317528480822590861835662334520260335577230126"],["16967336655602031858960451430148642216308047368876291107951559452547039346008","23716875324001145023132538941860163559971056620577169533827668602676586970406"],["5194776984215199676391532791781626921898750499712359029748155166393501814054","21193276396691843425724015789362984301088073746156489407302735235018818836656"],["25875788413169679491399379812667551639558280253543093857131323238924815216194","26137602928469857491750234312927122689013619204556883895651491954542968081274"],["23352926522514683617536391381991179018995713290234370057411579576285189150597","2594627087275388065768329223356394315277835196403041198216626996776984645962"],["18113131004415790334044616421654395154608857741095356459041934822037797661900","1606016860701019526965706038131893319115280393167307882161648896648090504120"],["21526443865163300076323903928846184486671422743103329358728794901416452836353","10227491943284114731316014547185579203721069789404462958803064460665095668553"],["5314916893992712070217552652594570111554134055227425617492532500616356940383","10316849416086312037222408130242928083426527011044407296476428678598430652264"],["7981001360987997068898953664149380083309630773874455158777635530126610522862","21596224126409981146601575971640623152901420103037939082237400410088098942066"],["28168509213165289336050717879982996829714789065814686922641404194584000561709","10622064699347397096409887574321739309414882731573886027750736221663325552160"],["20252159591037209155877868327190059226639875367315771021001271004574805887446","23183379849338885514105977959803679972724739290786434835144028882572244164296"],["13227983949554733506412258790234430581617748031561632504076084576048976836081","25906062871228536407637182248493281462175620413954387334500305550943482793921"],["6290179026328798962158263214054309580181726228552933525547777386503003980131","23029949516459986417180407495270463492578679429014231078034025945530735200314"],["10239355913693017368832322330875955267445898086684219279857113822412591942452","13623918226425850344653373652601404662818071551396432946133800135671482041795"],["2484680458700565263591582156045476424682710576863233777657913580369601787512","372329574707482664253738905236401656073500524523666648103715979205368537218"],["17815553227937499084937073296688573336794925226626124936453674139568816381164","16449581368365450708371561779605005582474989690610980700922605772015739390042"],["664090403532503283285669676952984581849707672875419544254489142145899522351","18561761141909534537968894758377649318113280023461267929182315627295510538685"],["8960138729870524864203841446049355134416333040962373527060590693459633107178","15545021090820085897449787825718971726598123772817547753411606459125956991264"],["19626784641163850017289742017436910378493396897104716594338159241463916982106","19577247721812759342810287079320484837470727441281646338928923023757822806326"],["6616165231850873624789808715118884359702363604778778923020624051347586085528","987830782512615063897940222458755563184088411188928684924397003086664664376"],["399734770737410702982907366467411152990264444571096190116846766275104486865","2394367166872238146816005184310225792511153779154759238334503080884908005792"],["4913725295099347803923568807868840198376504667348204885957550264088321611975","13755177223022949399052504483635515170807195527443993084102528604928148269868"],["23055338981844885895538649260812039658057328882664478386753060030989332150060","2203934156402280936724350602639036917739850442778965642903780695865839403084"],["1908285981159658970026843416817572821539127699075623013346812571393486131818","21841936426821649633057748939279669030467806441096286349877138436885833934055"],["972550207765755350441559192952956338320278947185888743873054377622402464261","26042072420462986423442079424184819461474062933899763953482683635569256327329"],["7905889468147327506625722691404827568811877906075891997733563584619420580407","12205923271819381315744802956640173608804735453787943358191149108346071571783"],["17623961801719683576918104968828806818220431624954618509351511529666314666072","4151281455642318829574874577863023876263458407493784457965787918166057943034"],["23208173054131808889302114092354170067125099416079186318286208088550196534933","7250139776802116840724282372087192272537900803060963586089202431683909409391"],["17736750478513817256591775330787750445826160632994093677324080509593300609339","25174191154120805785611915953703325763454956144580396113753909312077496467072"],["5995246230499381970314622894088412579107361655957202933059435674481607881895","2766360486747291463852887265776842682747258750776129321180982614718442155077"],["1546432920236384363403821798773468328038417352046829325268304720492975592560","25695452529605097654938700228179311823834140339106852377476936863936723125075"],["17912014350280883707986750330117711278246617354046310722024019600741844397150","11351203519432114162986936095434264027689245325774435473651872037760635124363"],["3129833544525136713311613893679941932236702402996455172445341347447719691397","19371151855090099893306869956012682298271185122260951378137457843078681202308"],["13695701561837400557346743377517415827461060220043340301858706494076901753169","18781147471770127516179581541563363508003567418777927227948577227390513537880"],["19047758817998512180556826286845829394650765095385376467516238665366979519119","19122170362200989519956539681419484240821588169615366913930187549242346435774"],["12917897678815617939742983149523598218583049823752183339362484578334111534454","13246539131123186282105807737911180666423084807074362795147533598336076256266"],["13906458728522315567649617139813087475044159461997440919222726420232048663165","18032173562891642709344792611586607526963501553606904391305154916722059495258"],["8204729416490686292885932106559266833743120508003125938262899705561919471293","8589244261907785294846903590726849804057111032427136029745111120032249262930"],["5802360534920996846068102849897018286809542103869855657952909354357197264153","21140954526894231399124729707675111165533942037172307863050056850594289317359"],["12733329838198513593555773616960902507354513357106879078603538124819226108364","12423631903091677742577856854044549345284960278298165567781731587313803779810"],["10591370739146522222663920691403660929817089282593748909830413699045410680878","10996220541289048745842547904051159504079664646349744413261411076670978255193"],["18360352363939700480668911696639509676068283331134639258502061205778050408739","18233650721318815259649713862365860415623572212375929932489881955439307651140"],["561676837005230601685439599932338075589579465758805746874693154995043664193","20911020515398460884649498562686952528414332739988310460424682734656809560562"],["6805328252722341076139091489103051547639185919749163375662380517620938120317","16514941774566499657816936342640557356266151689101562123955835170491114333972"],["24899294785796577856495964841957177508353308340649282335722363865825259323160","1049215028961070406941853439514795237627080588871518303250893300529784282689"],["20790088553685279644078831196429069996324866510750684937934110545380751564021","21919587376088547600890233005633240547472741590803418213474823668288440767968"],["10017589367771223462793542099243512807808434015117042574137159904712662656072","23230489874895483127304461295720190314738581196110047400510619141879468324162"],["23014970075171026426793652217830331471963599919344546036983581440694197439949","1517235816562451876815218616065759533182869549041786102132413934107640898376"],["21047986792436635930379717778438516198952589578861046416270518409668224150704","17306214208495321268201769772549104328239782646021004798843919641165764108075"],["18050993671759700899981927201958851555827654121443100870828455364432867988705","24480489734188058171761742122548177350126167691595918878799560060470600154270"],["20633922786706450756818422801138528611143006445923050624786563139341784438685","1484441458310118508433288683254809896742544879948814004554044033212957400959"],["18718179926074025656872938092452216621912868151395482062756434971888155334218","24850019490925269803890547711494396074806357456569909860055774444018988481966"],["10771668360047187464021298427167724980174059126824704104068565062816440522737","18567787388305547676688950919345416502882190564122047241461988698534577721112"],["20195428806168352968298271220735843741482966481869719655271108379464722168486","21889157306903104020754093632189143940247037935714339799382530502992946256033"],["17374598045782142516131975015920052578696503613464450586926630415727567677650","28059939074091714438350382761664214708634347815528761546716381909639409405014"],["7200978250535826784460786963610174600274914589575862123215097745747322099644","21457576901669889317530849759922489552950772825765735930157742164566586433378"],["28133612652623707846208628782057438005370289643740165561070043222753926016616","16192302475656639940217165479138890479768887224342893672007207803405923013882"],["147478602253431287167467421961241070252038081497777759201328925315457366589","10948019481751079242029267864142760622650700438170143715875544289804691882308"],["11638434646232217313986094567501396747096799422148747922012592148138091393023","17748973733267458678745900142316477783325573375703656056701179941889569827657"],["10882484057076188097158885439961484109666960866272585755041796319518802778409","1350972803324297285480323234572581853833872006112308537376057347757948825788"],["5383494553654450188801273404372020616820486375079948066281916740331296812216","849494082409363601196940734645847888126279747466994879183793721090574359618"],["19790477716496745322569524628006625347338442250314899374980080428886953145574","505341167295849287960987754959196483400673130590737611221760341484877379748"],["20048311344403003011131223378265029066521566208583720159388936586209503749841","10617171936052631063034944000259024165060479524788748637920660512800223528850"],["26755479820419842602724387807823524128317987127303443941623654980141423473128","4457536762066236948263889609824799754893018010920849821447716979744717043990"],["16075486546572289741676888501595810141349941164744818113709219212103269296098","14970105199579051597596600042913654919522286876303836730012386708290974957635"],["6051115317614513138838595762924089985483570007872188158265925627759209374133","14070223557433330657547866626205360745408858891332230305892609086735649592349"],["14987776129716895804454014470516726926060411408934499252166116751671624471509","27679960558397797385250388892740371153309456093802329016116884006318085935133"],["19355439040822030899899685428733912923617361246807635804458603250193780948203","16856569634810764108552445465403762786637938150103485002649639560307235172112"],["6762327117403502361055297564844519462953062924991294248264888877426047496645","7836029318002002412477417615411660899444276406161724223584889831851128962819"],["23579172688687522169194517608137343087808702311900814431014495104229473049258","19638785425607820710411318352535847604860171054812969536732762854735735257492"],["19412575823364832384273328628565667304414394753694660192032053138903313353051","1314950803822930429733058800711807553230875103760551851336148247430472464944"],["8432146825283289698283149099298195301474337088927869138271214118026796566930","20526727172925516846869139165336899077890575202094836805037909513009878778958"],["22771168383986682876128759266723124786588779386835325769123642167887329717448","24292785446647383752225659122310700381530517061312944934905868283101596411333"],["15945715326674760090990512019984975101645165456843681150432428958091071583054","17883631945527081564676670161539368087326975041627540545547159395698778511751"],["27313382311671099401997791414936546521271606722300529431342780556202809096098","13505161385753769076476463038444207104105125519486728262722771728939870762636"],["18437672169737939882795318855839400773726907221139201358291406507230449250362","25310122359799186194608419858268868064020005664809573001896720646467378858705"],["9858915718329986186194083384200783367836546038085546254999619313170392443171","25662646098006578494339176014692846967778144013030916092225075638902842822016"],["3655720150595384477324829803687511650747382318075536630088516887057911293855","17232150558088849693358808155756796866020055408455826223650151908301754943591"],["52319825303213765574563121333237638449532956916490159927979678083450354405","25958499146485702756248145610589544254997143203794826250953101674941071230759"],["25198679638578666287501217971304070789541585069097480556445721027199455239170","26849435342987946271288789032710326560288074353001925761740409371629032565981"],["3948215798732434509656180461477652530201055867896436671317080761762047332210","559640098637823671535303399184740584433971884131035795198587257713916499633"],["11032381494522079030741577825366416514119806232578509337376798713619103137369","11788753148795615369661431380583237048671616099154328273196465886581319550729"],["14216341749116636037454756284988988792233154609690174715068213570114234226399","21596542167093208096323146220672395314990441632781281275226307828135264577048"],["15319337254696236519922859274153454384239189002606823012491194277716250431649","3951666270019317696000747944256199748839832204596934939077017673431129014396"],["4343745378946745113352928742447873584849334485219971209347538116799496800871","20147375367846543393182446179272446374749994406779407546636138393084143848901"],["12161091037014174544262597227216669992428354804177214418833769602084240839496","10949429907543282240073791648765197214503396559643208423119133827485465000298"],["25980586047305311879346943065959031692298584474476262366208306625860979920003","20212128267572292889917653280465052359931210166159386011937094836132259661853"],["1120086356393376211350241856340232974314137673271356020301796062711666144315","12560468360260962043134151325206824162482558051274717492403645061720450237156"],["9645532666708371333931743652937727925061975751241059934610238579993110873350","19682106121668338649241825132440953761187800148570518129235227261251383854815"],["2918455618483969220128817625827664029997364376690054729408570154112263684078","10767618165863050887300544239940739071144275616904644189733717335719966561035"],["170092295813419755792189432209700694209219485081323644232078712466691074286","23683157222331074318690669498363182644304740177213720142210160576276296288618"],["19297730085361669293861341870369631023939263450823502739004968816662464136740","18015728841697103541551154528706298964160021338402670277788217071385262440622"],["10865172530915058012085438176137255963804378494050754210595814612026869241614","26233268728944251530844834392088558342640967593217479564450350940191399731812"],["18782593979784181992915723550701746602982401859891796323614140255401713982807","6742436911243735427336599078678529499256856736855592698382274099489829589577"],["16188473909198751745863070391022371237519778945288910073033860761047176860297","18309682736834508001593009415959255791177689952108933307427167287709124641990"],["3066650492501365852850449584587568313341746993428113001739440343865432274446","14234884852599362577132323926104030201149186448299670616315113349899451190856"],["10806621324576594296356414822275589503950076942949171451874423218909743999873","8630519394330917538996185830244182914804209598261735320238769365853573271734"],["9115888682131048522715497080094901232774988278345279728106544693122101729385","22501759259975045669911161386182192714006333663741934063711966765114130252539"],["8965293943672689551278627451558374652175681481159714534627796277115413270389","13963739212174669355812504503129883857591233065560824549986759223034994737460"],["21815241309308510221773715843897330592609566267892705448886482412342721366528","9841025925112186827801388755392009969989833477420001042229032205701487891557"],["8770968080681341252206691808918999136140704458877491243729531567294564779727","6276641155601368080906356690654651008947511092748187777197358521664382490347"],["23976218157259922724320989452144572220524773023011932748228297568930158467779","14461273458199817113586920352644230256717566954308578456138464364383535676765"],["17540145361543904616457722355669992014656668917611959288215163141033017435355","21770332090136054947942475060323152000509756441385700605260192690443355230342"],["15588946990733204221278119251710453023505272193659314797692366092977001374829","18344922567729113836535409355384358078541825723215789074059160817564811986551"],["15882200531091491961541028022236897898555785986416375036020850723531339320131","1560137204389430417818979874106527655600414126496867831411929209597295121283"],["13787331261711597114304430934625602738030758346691557182555392333103845143733","21132717868199622518076031836404570389609662772138877082168487041321407143224"],["450992149309006945254318631053729826552970797523009402949042823983592949375","8157794340185960968340104457055716566706337557899518614645418150776476724807"],["18229859009841413063865452166765469371732710745829736696091985523799208432252","23993264955158316115299690944508371228198121178756972997176169513097767251660"],["20825581221787199338543977132915914117540096790316392049426638566718401644265","16087944336483660155283853114999379537807201193841358612048905260382858256564"],["3708308196639168988047684721982144187116855991058383541532389280727242457251","19060813088360297450967044842046014967664125970961564258293455130026918160708"],["1146822892111501735282995818824384856875636327095496713173619801529211601377","12327328496234405889714145634159302076128937999168501925749713848943970322032"],["28059128203833293451005220993273992479874060055373593515659988723765487924804","21256332638167317371851412182057481130644349471198746461504702848132225127679"],["28013469850418670287427865565654818419910822777647274068732483195938426143892","2394466768617876983288689224777651254910747263463282848663983744087465912070"],["11835736883184191540151346096155703136536523356760405579062836655733964438859","5462408217014871245465872553899609995909526131332820157467420501427395908310"],["3994028119342537599818881125090639571930642914198146151324434278144812165095","11426042746896852881094083841500302077933620702878334413594369845343078513187"],["21112142140184539688055337363925718759575686226641291325737688113634330207633","22141483183286809920335822565724038370977944696469693077523677497379790553516"],["9274320974199481504692934566564060616945492046569903310781203348569920658657","6522406083075806747533489200349673444280026640598467123024298145828316274095"],["16344885614265999378263625582228279650034580491029969757701057460200418044991","1570596153541193324225632177205486222145917533991883817557012369418104176628"],["18675747380830558607807897508169999747207117753013121373982291216768479480083","5160799892410557827376507397975715601387882305722877079707883863149530882047"],["8539676611666129834231153520435138374135824813524219093003063146652390969527","13878887778229797903188458978644646983316852341655680447722404090298462393635"],["13120334783559797062887680136126770336053781053306455587066540813909370776664","563492114402938951917499220044631967938725825079730646620586247756762317238"],["19880217206898991712966818760131491011265505443190548450550322261667124933690","18473226330062119246603863461440915321919205398805911018583324005809312205650"],["22561638540776449657448600369197806224659762436931306560758151714744849369450","11125978551824984125731991787211318828525469802473842195461661253362310477483"],["28540344570121902595272797837197870957990682229275160535772838776685540705994","9477963141810466175357571271245402839425756268579136464638286269278232856753"],["2838206758720699862768470997551534833552417071308782093022572685665799289880","4751982423379153248559245649262031015334350441377211122529083126141711425433"],["4818477110622491853670738621653402858755920351673435232359588521847531726140","5460531382183604517718242758219554411250970930620980082159155597969535467403"],["4586835938449913102364613719501040684416481682195020682217477379935012286304","3135532889247866702547320456152076091018806234697999410533124161472048034405"],["11253131378507422709031069150998731881025415980376680364955087526882462601774","17445200625302333277343127758691418618328501654620544548791323179121081975520"],["1607283305445161701848737639186892567210188036525256838240081088960348540617","19899934827353141329701592955576298840089738011270527392260315567077200193711"],["28606233562020835468195799603130714282142847384138104941688796345402328295382","19112915791597607147038205230087547450922346625865016312770171638754850848564"],["7730102662772300626606033701046513337750374062070731812567371369867268018041","14305741540041419746236892923399169006482732077410309359835654621689685978061"],["24402621214039852180750807378725274048516759544001185689406897560819717981921","24800826877380899872194829231398155329538532786728410074475383275938082119037"],["2445783314463689574552412879324169765046011310337397395743606862901142465010","16531918445231037792450640330530452044581998335593224222376810512651927898723"],["16868688383964110258327204497527311638979740294399325498396189221845383516068","12417029961092093349746266977511522372409799796890170431199545637703043423022"],["10648375152424835623559693670743073351883129561013852528115130244107801449444","4096486924475940923297232603264068018627537640214047290573897921396648725668"],["984249633115992990646383630777026787955266945995718214542368198533370034427","7504445678210800313455422341613596603339708031807198557632280336325331034203"],["27058595321471019661506403175860074536661149409774376767885448077548527162998","462683340994402945383489881326533695316348183111627569519028284861340859041"],["2035834446804379395309039241543455574702223902158417160795950688754722390104","18091074442759680747874129511698452278555589767347502010537918837945636148539"],["4349244353263787123528776418175282225772127695608686333393989434554814620048","24327176025278191009501312884848266873583170665661722414452317034752232573570"],["14586562041404267807068430444371538096327408666724838258031387849149889232027","15724579096349517385250198720586135417818209586995579934671286898375954362895"],["13159140932467231022816485247082027447071230025238252406337797423605036925522","18739215157032679377126327416463292715724597146514618130253984010489855801988"],["3667870562759830669034555855111986023085908425475032511419580354894965559990","28457971241363045689820336303378879498091157307658246429073216923712252671544"],["19469613795046802780330850085163948921584467775769090408889456108735024278244","28699469992716561564886868671435862393676486582885487572685969777950794381520"],["5101042377478110938832141300690445269776436862664582334787347817920330681567","4901577459719085435889226185458021836580397385628604761632957570951982385234"],["8790147779445357913513393444242365875861616919815551492226758028903347426741","22674762046788201259126072624961469029759076582836307435598946541195777403046"],["19678482113929686269045578353092881088576021587937498268866684090948138988997","1447824715359190295877791485098642399153313821505904729293366740529369877814"],["4269244813815794936402830814032126989681724895463095560546058599814229339523","22678845393670388886611054406242214132179813650501113278013699196605319414315"],["27724755679691100389767782001137414243138719522599413074708110608260542214218","11169816611420121277613827213582204369401084816990042443296758060881990918260"],["22281092518172631846463142894005073112563701785432168032773855010486258982442","26216750896406891873674945072078942013524265303629577477536391929332182255758"],["4390063042594332392050308210121304993828834455878228161664608585148728105883","25142534746609077429313336009305328991920424735692337196420272674227579031789"],["22377642097666490388082865603638712819574851435345349137384426058676828931175","1164071537119224039533120331022636553546632648030816618885643932631676523972"],["10527505769312941261625392449620246030709778665306185078919871209601620730098","26511647880345005453633356134519477003631048657076636808175950904591307380246"],["7896034021646718111266483005446663584048694965444610434158008867502643699920","11282009107497610924211556966937661668881060867981989944265737147161953145350"],["5317348207895964406951579671009240975630764104664176101542089312418277441401","19166000006765456693605941641830938734877283987731540111399964463184293171655"],["1273533533594560039466127539437192730921708520284850115351989218162041264573","5209637613706433924218364298665584640771793456379881637548872434244107206097"],["21148319422455002242532183004123555313753810273541486469580339359263950879151","23246799827726686847052958277184288273383689247176723839323373383645194772310"],["24025652866119447499735879531108132861616786318696119363978210747655020617781","20036307578877056042162687727631688766757777454085769181687431017255305862698"],["12021695975984422151073597996023563571527128924461411278687911180122695921740","7651554650184917705708710937572150261752312979610938590049854425790539364885"],["16113981961710446754684203763621987438443856457702117281137661728411359229636","12254665891987718090127315527363831105101551229270220686668836484347609619448"],["23406093661182935209204909148513680308202591542391415827569347325757615965675","10217212643565720879035793144108934022888511728528735191131060289340688137831"],["5425475707828706502666809065516475437846118080939093478864604545662229685171","8423731634063541011021495907070407413538551087569458096978915223680123212316"],["13413934188243713401397830584328326279519292167373301936295195016232222384253","23229304048192355401055737766965829485047905444495640884776060225236421489870"],["28022504560870678796549866645965502960376871437950962661295430389192716667024","26109989467046276700790988090273849373974283151445726282262377088783216098923"],["9998541354050016174994195314350846524717509689304892535673993699166491700670","15684815620468974841900677300760522281404642224801263559762583382166216128461"],["2553213791204823537518392126763188018667121361901641489896606050171773103075","26944724370569184111394756920185653733408742123770701485935815253848698021575"],["4928114053390393518876824477733213599411149000049586871418040331746800569875","17926488150666733764679463120944846627868313202049353898599203568069991222385"],["17189949912718368258662541322129031148241515405385592551351269288350980907629","20767158977051320300996296295105355511037589209782803538305251500703717744006"],["27082365334748428815033156241702060545015867535262203824893247493360547102682","22571756608312272667117876576328103288924220527622423638129785963347959828345"],["22508592154672735575847504779263519060445598418816293976835375305422663724503","2322765292000195573016512729621005224572069061116793473606375565093966831623"],["19814120108984370422421915611921756101466790330599294665501768878256614026401","4307018305372939590191170512302224336809142540245836126944513650703659233602"],["19674392529957478697123858805154504931266565804335931262602270523034201249952","9451200122006835137169155995935716302166879698977406840929041396310030814544"],["9970554028381210286440569353290355842710625217032016762189218645771477194964","13492591518726813477536402289954139844341988235441368283095392531557825571324"],["23186689304543201779247665494135364996983253935854744918733636775600610824370","26125219795858349914175286585159222630731499662809837664624068024841439970978"],["14405345142247851681541760109813506597375990618151397411490756239526818954987","23216054164598555377617945518353532939929518403160598629866755051725762938244"],["6534479989566552762355753942522369085767637725423152188836082369172879462391","27257444320968735208359594818421167356000735545463457599509042600223000270273"],["27344943365013814429501766886914125352608979501265926413230553455220334944559","13084211367800276744645210377955888840573859120437348430254800108018725183561"],["25172702663856467325161816316826766755701128563199604950663233230682201210427","17288780699035146090689621242119853174523277966260680568699229037438834044135"],["10651713238859794850155531045211943202021636201540985848095930431176118700523","19695563841201527534903872126182781994825016087625347780611523844056828378603"],["14767319897448626577053189344757467448123692653242143010917299861291159778993","20379754630965863097811902873854399330010800159280426481842638215121112852885"],["26451504260934191581957296936565206695015362587385451412109772061323397938398","28808701855490917291091043832415131998732363117083449017721007053981815126878"],["2543227924132733969950873280713225822708432798023010069509842615462614694634","25369125090051214436359441702013118324822259860118481950499429674742907127224"],["26414991595375456435401271034518406814819702742852127445613389876870580296659","12867685280283739113045740237679431281061821150115708829450953841870122840037"],["24598675082829113622949497687262382645741821304334970045079877441145543632716","17883369552725689597434871633098592804500326809208622024481616962974841355085"],["11366533468164922944767858004376971054365964118478346475940190323179012845860","28156426317052057571503163776777986775262700310994721280080941625978484309295"],["11182659989661258362873400701277432202271522461384949999766694537112650160928","3231342790387556508296520355391933812188731761248267811422162131812038570059"],["9075552746436999074977777405267427933340221604064152758732214115814028420364","13738291986779779945856519339963970813847880136974310094539602440054306848482"],["8349269346560230895966993113286709245027564599314726265993008229668285289625","7410250008978138413038597501844941138415464072132867623553842150973450276001"],["24479381592793555392013285527619360164775313545796493554869556316732441083445","8271769769754479969351944725616357354495776278389478205427213918341326117263"],["24860057802335551151906258133967615310575777507165459930281698013168617483217","4183153392942299870201912558509134394400350536107167422133296540224150827930"],["12847066161715960144753808224497401771258332643487424614743535423855866612132","5623820068302198721926293069240791464116177846716725823103520109628467381474"],["23359945679012773919990695037727550373578454458057094774092499078030493054210","20824017378530099727586663490754943564596685490883223417508079002835437746214"],["6433496726949842843540742935075134789804437062824950920271823642433984955478","27384427137982066610814153106948871842570523541701803726553282131988964457062"],["11307569811377347697827186554490862484164235243630420919688463499845807594045","10021800862383020586773938224777740229061576812967185463534906731608763135409"],["15288445294048730989545071164901162512999092337452993725688675550562706359349","22988523549725392539757436863068075723811018541784171336701464333763122146152"],["668588465487725275299125630729054557348811794087889397320956438443310585580","19902603996015545764284254618992274815314046922231103333694479606644612025293"],["19414233911447980151992181134925995779340054691781462607989062662933674947133","11103549947183568837642232231908738102047856851280541390571206285592975640618"],["4265894048855528442193122224328439177763832116347267818513532706747986610915","1302882314371508709413290284721192629175183274682147141852972083427272839658"],["10241832718230988567437285178774082686332582411426896376407272464790564636658","22593504635390571040387941453988352605120841281676395948909415547211794520559"],["18854767393847354864740497821635711885903527816951256613619417720637958466667","3877719066396746431687547285639931270970972369310353719069592540769943149399"],["14148944513648851950873758170794114667490748856471943770709043754178571616602","19942299167808469261493701704407652531186923430741850885402749061019309875714"],["14489803799510324183277848398456777913171403641804714235604091270002705122118","7192223318817908666409498862969704176608169216650443638205991151788313909915"],["9657907179964971778830897754974687277359527990307578583577987089027674559553","5325309067988050532607688607317663165291842904193078241374799827560684383386"],["3473051255190826738331331097005566693200998973505715196211723410023765327889","28742483387923611000461820640146207308569983183555687634026781118294579360711"],["22167083445348507199746980785229903543611281435204703371597444187102905424546","11249902606328070660210734029133574798379793144985167895630965805253943927776"],["28168626999718507645997770142387853547875239658295100454588854741314563077042","14363089104157286687661486622105664953496373508740855985777062436088476582775"],["10958365353623627592670539508261609458715953089428452091776854618121076272617","12424218670171545227466042502271125871622771547968423173285783702876674976530"],["22102099096634835869670824114800309970661038644692578575786277048992032788182","17615310085535929279556734222855121394108459640270941767109216083931778609662"],["4433336567840243417431000968449074308812367545095726070400776568725486805774","24231379778614720911280621112628464471497078356218120547884121853254295135279"],["9036811067923305936330246254015354933791924466487155499443681972664746018542","18129922287213126200335698910397099308095698603401372441863118968336388635651"],["25860200501786320302386327462393731470563215185022911890555688087858409884688","28314790619118035609757676672747807423248426651799287597755499924509120484822"],["15807191062124728176489397904320848582344709600596542992337476075788948156231","26549074749496712734802490917784697138856301886038424244813752954100043289458"],["20421833183110441156911997258491402179749884564528014677735288262609622245585","15065275155701288713231711162503229263471356424096957281021411155854313941056"],["10014375189117411913614476250134357694136910230862795383769074691836752393475","9161022384024508471101139800515761527254146535389347611939413440930012082713"],["9931005751748885346351539133326477811609511864613756061170815541274453938267","27598572877423238149596047273452136799490857296748932752728969491755943600069"],["26828175516286451884339720632441913013505524120691131791279524385983254600601","22274481195506820134153234573663236437043811778650551514521688030065471715447"],["23110087503795402651116172132996686971216910947339921942207213233351970689084","28882340245279915793960121686519419991026967527381594631755394733403808118343"],["17194663513252353796001168575693891977864439760051855610939955907091474916460","9293639301517267815998240955426379608711819463240164486079270626415754185044"],["2130269767876463363865940884650540394557687675779016359458188423849961709268","24751653977965330397323290467103783154750892864268541939510738406027367160999"],["6810553125467460441125476629099665158837557169150502473765081970226402390794","9349319014793059329813206933094418151291714825029634469990717093401761076726"],["13744967577263034818238852604031323282286914923241004078176279220077974678473","26806179796801370988349431752869987320325016581575154822245049431682021898176"],["90198647108628037192055995812690593291130589435126018799030776209824657369","353245890051892390394388816862773846212217619610082454911921605975472853741"],["27137041049282571894179412585725529460832418517846984379387818414156941052472","3046702743923461161364875067924594326911295321831715028905594623482438999187"],["22795049296813358608332575335589457439298363413977110664260045228802767544798","26863906509326457450367198104159895229819036749769965857765814267693775701491"],["13711384486218043752369238737341702845211375589927549259701107943182155725768","13410571339136756323481405355896897558239136707509274912926298874728728964764"],["25198055934086795532492708784655027203006074045178126723606616044150805181771","14120398806366714743696830412195138427237618782989499780533899472554471220345"],["20562502485596517135541459156667725315226968125547477396420940361637248925648","23628848883376979152903108333436435127312271365396004129503725705767947920383"],["15282580242537791075679908335404152084146452611414662644355048824004088259808","7264564501855864663807100879654244169413274904643178225396250221918959907884"],["20685708491749767500086563926849672274644396150933680616596349913238199280778","18376941264865869163961240141897046774424937862283888410464560678494443998026"],["9737207522579825812839260781240047736046138532660973182289479268418214861805","26872967520753326582789059262883222681302371382063059399705659993102067827575"],["27324081126362584215019949736741692589871043076636426517935682922631529410318","22940266574155793197717231486545694983013858400322116494837370951121999824578"],["5736562058540450685442474503763947703303920270121631042249616995760495645104","1356686290246240310918060684824938856469987851321336818441701130974190982772"],["2355966176565134446129897661885666217467078533631542392259714430345434442415","12989256104205530003870625720749148534611574912101347149586063895878771211307"],["22296838512110488947497780468854131816603213942932146037928411611201293838007","10588943847898939864566299381359456062118399509591429838432380867490827466867"],["10576991349958420161919650396240826530423308590722976867445920468421716859119","10846730681988907309415596192854374518789900538359734815111627140292081163877"],["22789886174177302969365008576555783961099918609020943559324486311496860573518","24390026181153104592186481388600783038904599876508647529667814697065307150040"],["28847096997771922563144762533260653295287148153498882155617514353072215314653","25452246104261010691748030129585396840308473384487176186800507470166635307073"],["2989667321606935580617889648181609136094626128207118972943526869798362200490","15247275634974894288706757355640653314475917137304622482678067503912587815450"],["2532190951045406471544569384929824606203681363412773003244365363428962880085","26046051601464324262303050014889570098143962568072548161183295823537642215118"],["13930838277684317839637978121151995704738186787503018283970696016521530903007","27030610052465212898944904753550168099648913753636837286620756687002373314862"],["1745988370127306199310717674534988793416247079256521035221638128196936731590","2612909521193367672680165004806753665203365252049793663932482539801050177131"],["24074297487626850196934172737873038330095132442650395912840765056690871082734","10494449195798683725218855099520674496325911595350747429503116576510375356165"],["9597799835374281889367364678011544482985775752815585585140077967618040907242","13047236686726607012845567180519622715530875852461115822249367773181532239655"],["22553284378925492677350165568716837801496616388022826594507139412202254250665","9313050726365180176348137281677100659719802403895549267591585200488205558519"],["12524974223826930043243675913781703433740155569212796572540666176625565292617","9526366046826458991933483104424350525012957796518519362325073321950025438420"],["23259938996191200020299807436206350386981559689896537221203148269994923244284","13369288585903339198491208379972637579587954417032189494933937015114234742846"],["19804354642566118399113071601419922136261354779948967940657864902313205032850","12508552814772423481273851769044219763514625794268405996468167335460388388127"],["28228027924637877284732270199622635390597456100557959236839218838005351409672","5730265394681411084772279893892591092081451974516925716641954950274932019785"],["6513809667810535734947838402415830820661458766835105750794768591480444983968","10470141560922549742920880627918135174563914377262593905636653881704686124137"],["26878837154737352791114319229603067462398382943162477483012339768971453439492","4068718245289652919962324643616762633287815078928413811006618349016301304915"],["8114355927332500088391660191397996395548830454848760919434031800394430156283","25058617220264334292512975145798188502809645030905415415238762816365904157913"],["336769987266291096353992249466008210727244848282211069658026678525882386487","23141583669117960835383887623208570624686052694520467136995725471900751001269"],["1599161454730506206089751957822314653790090342957776850370301227509743589335","13837943697002474082013776631071258575532985788142576371179684295117584015858"],["20555792655476690769666982698216839013170582478964078880308773632557382657023","8989777698470992304107309549672720208480822382065248210255683159477316252591"],["14107218261963791543909804404567052268744323495002789517218871111881687708540","12834627566109046203542617910577115658766012335358206541818617346160053217632"],["21891229205904073579127537584390489776817603987144967188771717327162792578544","5447041190296818493171304023862283632582527218325614901356023292090061845955"],["8323473208319718119781693390885676449825023905417673485296133644826253546384","23895717186053579276131751008931224190887852648365426263512557461964938049975"],["8178222722008800589172348726376395598244410946397005667885510423351517165381","13853941074487509597891595436241842718224309584189808793938785689180067222917"],["15561785141392311950481771817298519941056060524672688023696960735862527531013","23019436812517919256739142502640114390023979638767010456305739241740263357851"],["5601437484837864548595223662846570894628031045750225326246205459172617166331","23556489005654274235357430489334657659094470463463942009527417203926480628337"],["16486372290313701090059537534763607338475209054921674151413509594222506628050","17234721438299500673607269611934352393784392212773210128905574900421297500490"],["7797900379508133553797384916515568471652839930413382361696217978304753273194","10920779587032343853312567145155844517039904112594591750521071024713781045217"],["6788087616500972414119249335680572044455679249663676156276816164497051608403","2610930872305655998296250733434487511411633833897748788067711527667496780581"],["24885546104850805498549660655190996164450851648652418621628184014139143169457","13245843911614243418808001123773053552111479254955394239344931872692166977786"],["1903188377691816241938842261344575796465796174542259031565802171009546231172","6268435332467265437514694186054681925660091593428741219528947864981904879485"],["11887744231164258635552252439684080296021555911238622481741976248428875859394","2041632625704084097098420400703583007413054418604230206566035239725040619302"],["20240978101266620980477731425548161183016782996344080295828457362495244825764","7261177619455841161967102223691925093210275010651827732511188128054465639625"],["13824934127326087449668945501551008413092136522915598922614591338070769106117","16897207033190723280357150179246865027115993086742661741406920745484800220907"],["5404491088519896186267005957486653455977661707594282473061747193296883568599","19078532417540695721353530491578370062828140060528061583879887286551396370739"],["22428216730589722059657199092604411542459601260550528550724852678099799167474","14543190270335967175066665682611217662523711387859615232207632167515190965306"],["11186847641408109426188298571169950562807613101568490183576434243215845148212","23728648546815510784613897761309209969601919812686670495044461940690884218581"],["3011521153767463453363490757312734243501592223811323466412405924402232988166","10953909076825774832673135138503884716771076546622659090623513394786017260000"],["11999185164164212724923884617116470488944872530306393305537024185791302039161","3621503309343525085362146980906866319331156708946297364912608710632471513157"],["11478202944646972820399254619361155511782792006825911219648994047140492781992","8556564287530274550820072066521076299477434527348212192579719024620307266179"],["12054933748388504564562597264097164684603468598182910771473608873879001626969","27671538356656795816518625196176028320249218961704339900483143055180724608259"],["22417351296625785477637321251913134847749377935307165730880330362248103990813","19425425111207871871286910807267991472841285867564482804038912527378487422040"],["9200312859202707943840944534372598406139222515447753714944668432456929193643","26420775024719384306321177437026164071904562765871111062531317515492152105174"],["5044000181451339052107113901251372509626423129468776400176949915998712918887","8950174939338381133070960543237062968067534402548935513159440159156460774615"],["27686978399042934595437442712039013305790856342628959259815407038696279860892","25203415954717267887956745651701921446343496356409898012975113338067431388887"],["16925464952726376576009276511825046842299212227939307526671707505036421734969","1183526786859884641655870178756357219052413040218251619053122319857675808152"],["28155442106534484714081047965623856715431817292992087689591775030276640357487","3793476013890921922243439442471733584250958745998443762543104541399440918221"],["18456475362901893488444808745469572051228290070595947200709623241912727565538","15397152137400254311836812840458833860950673291376341080195921229734769178550"],["6932903096710620202007728499668823100489001348463782208619329886714792531704","28358683398270872662648633606875180713262457701202207573145936485667195991934"],["11619503634486365122639830912971404000651568169278566997559737112067618275905","1642469701427198460299970757438465358724221877402739711961663224083145189697"],["9900940011777307958216358325769909458554721431034402575276048166412518923848","26939901158402453776828955679571828491348220128010986313445497289759226507592"],["3732769659908423068434024921436937639093664887269631414798740153005331074785","12560200379050922659026392785183694374462268752457854223203617563444444192186"],["6141556689363891877694040401742873825595889634907989250970353038135324512076","22776041667039465827211041171189322323246697450076696376323310533966453586242"],["9917497218557760452169508912737600258535754260205529168103534992807485569758","17372407254340745210795712951072435470408458342810768653523198516801651358472"],["17025640325999308438194399302688301002635041259219424307514428307777360525192","25348053323332215906941345105698241666590448773337774058614674874802857808822"],["25489127859751325762159618495885205106042099956971424218961327630719966635342","7644699737882449615752839495751429082859123684274723172391032499141399577200"],["768011298521943860579584079288753181305759505814000478328559013688878181146","11424401752097716937155309751813165697998500144193338372168260454955820016958"],["23500606118540457980518716433463198644289220508062743476685201467782539191934","21998364381847952190263391919518933088924369320613580873183796430937557611114"],["25908642361453191540736347373276803881302979796777712476768734606082976415788","8518592896933913418456317936918661308832883015897889535919697821074381493218"],["11139286275980823747455107396756599834036719211263198836071739983637458273966","12585478019839712931638575635894195148297235919359611178804775256447263302527"],["15500498369965832685858531268586292346765131010774748219534340069625686650414","5186595050625325701520499954526767902873743374894158110306977671356643858848"],["3220653088557501899051232168909214009509018790990985006568676867611762685206","10036789565865348652243374215778319143918410272992420072504256236109093703405"],["4860627748567043626715827400641771083385638365146117975902812778457225690517","13294188673141353472480984249448570529863171940414983041297884291539267486295"],["13011365909149399876152538232260913342729280744002118713525333201711202568952","14512179232187434914885231264992758559598010637914677654345188067619868805673"],["24916491067233241715807959632627672029170732048692759496460049357609497667807","28893947291234607074253295120322892183259757325452935266749821509210047251351"],["14614411201831698700223542015132110603401978225665556505891508806977392012812","9637930190715742293827478511675333369036499752526011700842340435836111723054"],["5919258119555564122724734732140713872055291395600171588691942553428117201676","8914956663579806335253928246962677177580720919725334965455114593789032676855"],["26332414753402092596260919942647544652626816505289218594684118645029662586328","22411767387224909601390932694210199635102269934288705405318585832181866782975"],["23718011137096450014584447150658050497093014858813236952113391996112256240984","15312016848306696054934098418383311266621918790280744941069021338489657171331"],["8318075498621738366212552503752022703977635777508825006241864600344630646116","20821628811586753643419038141310833299782031422086523668006646876680057973617"],["8978467600704569496177312325408253661506789668284856817292400365960567268582","4457894282377145183078851455559675711015248860992456576530788741822363937157"],["20355899687698577098708189538145388437444125939781630290227676351561000827731","541179581906936768882264634913477902298937392085245137182014346507950049898"],["28940395528679468591557073789722976216959415534258896679668881848442658750640","11942617411853017387965958426674952234343433705725829808661060146192866309303"],["8711630997861432209771065102009821288379118556088350182782588924135830069277","3288044401052774100003404683915327389667497288126996200716137944444452546294"],["3057393102789916398624884865809571227174085694951859377656171652491169398253","11887220504758043806450991873777784562352800924936956334736129022346779407435"],["22797781929159089944860577455080650668569995164058848702970525630791374497861","23582689447793279155349823989332833045969435704160128585924513833356814243936"],["2696038209085794839358926106465086391431844472843497416985889210186039750691","512675319860947293670335818048262199713719585639918632159778731110945008061"],["27819368170873992926511173410817300363874964460920078920057601099175871731087","15691240317594079451641543060352742876932131228799067700284604187388102648949"],["1645450080854357240294813668808954829941141643518158892899075963717236743959","5495168225655585751499738579967301248163587462408410361553537006570470244222"],["27649886443541992717788376434192292677226072824174432257003057319474440590235","7819606247883340203638141635552172316181913720529367850987850835647124084045"],["12346732078800734552706156987215738508963137931675960313776334200452393811532","1738100913536080673383781623151382162880356615266490605127480514952815525007"],["4003408672542609703525949828486984986624761454162848317125362804860699725455","14268166528300346105163197446981227054278107496705648306880614984901517052566"],["24561606174879143296625935688365616636693372502100244889846910849217606229880","6199814774608328705813147132171404728836084315242310329123689695268292017236"],["3655570812663713911165644432750809612288802918331861484448777078541328970436","9618217952107486628375954210083545633438143040620329101788303520355778523547"],["22826683090259810112016458084973583498599113032907295083738016808803062801132","17720028922052511387239875432010437475045011638341003014784988697216638437557"],["977512775624646179942644655773267972275276764285889636236532593444660444002","17556623427865415903008165873731059415358472943223282965957616854204996644433"],["23925553849705466535269564210078993159456286642716374224469698925863633900419","21467044538214870062797641420820823771519924063311380061869071910921602515088"],["15929791162815956530359919346319932104351521236887769894053220135080990457527","3976088991839653245073597368652040617505858649537502201523674901358387388912"],["18031939030267650393672564294396745573143482636381432355289338689781791188236","21869908652450999729659323438034565327296001049987195858534520737134349805846"],["28481428563638291506306702833113337599616770671759090581195403436030318688192","19679494379620074727092684833403364542225932435717638966269743106695152492207"],["23833425683418272087303537588958612901290303750588697646261658171843602037335","1033152247781591264889593237695663238760622937764809806347091556903847185891"],["27741691947023340544280339259164719095567042777851406426222152703657202057920","28259527730539650287995103821689294308732886749175563285537409481973699565585"],["8863778806181625834003313863548086208997444731366334020980457525976297696221","15329170883701128961306646174862812063902011513898118117221715095665539578741"],["19682910505308560044060487693885282450595853801565444846158000731009319526164","12888749046796419926657486163058769649664028106703676310301671091460943306077"],["18385892483373685227181371103366466686955876458147825105179453121204245794871","14341859619924094830617100745863961627986521540852950381513391742255301526702"],["19794932393518929567457222331841338736629060729195079388535197297830814640842","5354887581064685994617166321914674543423633698254076388743815275619886476633"],["13333892296158382260119743539413651886078373409016645033755947783739729441145","7624404191691753840639865024783365840514090392461311803580383744464593991225"],["16808045939747853896607755333260354120937132132218963821298585494189587619280","21689026748989587682922082313691276282687839546068624773175222720672736660848"],["21396341497730349718292346945986707850997424266382597933764579568930645829550","12477699563075775897671036481870040447486384432397083464951621589552430056581"],["615514121081763142852236770708840144508394307330782273953471111417279410722","4683422033923513801830463234432175822089676048194821727862915255922722713589"],["24264646329828331519363575951780752597447489179040241745157621258158716084669","1500849900697365115921014796577836931607203193843907363730078677495381373713"],["21919743358984321350604075621689614656566876691853644222020342898418095121162","27559836322315829453448812075527359602503877422968354924029377647577176279915"],["3676852988380740080990662893782878842836303395387737920959586863506417944889","22159832035115713356585699878174339452725494207428454905048944531016934228099"],["4858016007887768093781347767647976698735227790186082935631157905214912296104","10423518350714550205044564558063871583517837439558169355494258324025369128964"],["5416221383647198495964776264378277562074262501271647547720900631332615618744","12108556845842301608280075580902317070124290448320399360433762262217619850625"],["14308875045495616273749608453648581998541612823857281917100274844345372292245","20758755359081975435702243975155419594008767552857179269800109097011426030604"],["17188100498265719081430836613129149527238710094240636318196404881289832816117","1547845581881280926027311067567365686708740245317582705900357708682181844880"],["4380707679952027246347787734865401121514054916923166563205205357469615383768","16399729471901365223398505021573744918778110033369505472438316401551870594647"],["20484446980870799792378250303977537478025012136775995769567047587281170145251","967669976788230023315888005939923993289633982884099130027244391785583187270"],["278964268505407601086980747420588053527046345878531878682966326818776093694","10142575542706619069004735603499091848512879427272230193087320297167957565803"],["2746793887713068149618746131679563749580933335545598754216237406911598703387","12946063218658214121478909736335390566113595741646253916460952029753747604281"],["12949452260642812461015561906816116926583993888291773818977718152985259645918","1116162550408475322550194356983538578913080311032938088092281737596241858165"],["24148030095593503137622067146493861744412333775722514396820862079874636889734","7794890873773619524364557244493066321921107284850835369619700264142034196420"],["25180665757073430619491692282062472311774316836249130088070713571173699971022","5845575713360442599364566029922644073154196121095833385662512054383825340772"],["8762986996928574765224323069442188262874291950465596017930793798819212183968","12016191906831081192669856958185431969390009780353821269620252105019654232720"],["17688728887379683305980561036449294137670511078778469135546421217481745789623","27672655909947788555929968613762705404054495387724438311617934998512927535910"],["847985560051702709291475865494307201960832370717772048216986297517038423668","23307065556508941921829527823815223563182586558682694866699187506105097980210"],["12156108528828156857941151510116889851246366061620365665722221296822681572199","23284220249406416204110518987205873823186002348931150462864046537441762958776"],["28843907282415749617516386984824511872169335174026165128804857870063401587407","26602427613017387534082501134618879320760304476312420946282748280469913534592"],["12343961470278266113054732883095529990315115434328797170574647624708230243597","5207355212181483463920529235715444484387757878977399594224967377866450596473"],["15358036861352090179666258360309099854257244551263177096422298740667062044681","19170448939096948340680629381616117884334847266624405869564528125078047756162"],["3776931191486095832500777722500956045999770004770133963739741422564979633362","15801399901279352121509673213708593655602705864127324649211234712513837359710"],["4651690927299855307072456346624555080201506522685438230541723447066223845247","20031822165002631608486786080943187242793071423651269508258311827122201003175"],["7752696946643901193485947274284483995203021217426349019297345168042806582621","20968909452755827299436814852952159218112634543633333907753112184255396390050"],["5096451603772529685927948107604121309195747214010038201437031196598828410123","13271633851992871708209766504567725676208338146567507839988962759219201824666"],["16431510380423324363944293017754210881589312034097558258008727064694588405716","27351155446250132911512710772469640892433076692372077664595886145349916854812"],["24744997147648546772150526939944362113050239200173116813544899436140536556800","25403875409127655287096754826314030506993954946882799735820159801338977708093"],["317581994102869768671513286084719425904850795728523493846964374047759645208","21245971452191673284665931972613283810277221343514328563767330693777004147053"],["20723887613918495791901639502538927020002780238111447564701474475910455644437","26250106227212248165598524816969914804291519121611527598841789696907184259494"],["23005033502523110728094017778558682950562730149946424700411684461768601775194","15668572404003020017073084257205578695227986371814638246159030178649243697965"],["825100021363923960643262386609502979983994996604077345648647086742402116655","26346872175327677922459328854349833534088967577683747919951945105440755992144"],["15466530051268053356430312178216775216398836959780511196737405699485797749829","3823201806184691920745529795343734215426081430516673447372739897508725445023"],["214938085335187594861462423996668195606305810682957238503772027812604891733","2407731692352512010637945483406013395152707813581566367471451189506476597332"],["2743403721020784643796133894153669599132446691354080419206298154114944249631","4157840649986850127103196805740527506725046290224763544078113688733249477395"],["3015406243544953221578422972111129750439255606015236939314497678010864193561","16006298873252996455962499527465296548736800993633882455036931294971360036383"],["2635229339627610244084734143076538444270019567650240085202137125448635122131","9810882044853611112111668365788812881867066318523228455186682876422451976360"],["27997659893436813641582978033538839457276596786664211112473332644914156509297","15417068348666744403856050337660827905463671063567975192099710312042152488698"],["23031953397896633534454961750142916752273149858561785859014630418130476243760","9450834692333951521995392621534553310180401706987176300327419597221513434541"],["12662393980754512055205606822930819986783857035705613933259263832188543039183","69334114736699059234899967681574006371862247680096463749162974156405945448"],["1489953522959523770911358655553473251039394005457356350291645347086109173829","1778122491039789477940147911942555302516466591230629935510532981730291141644"],["17822725955162010904848814070615099938716226632006090379294196415789809902491","22119706850797913197430001178903278366422727122292629408134184543151273480466"],["23503220788819616989434247217733487013867092588664340196295982452912877828468","28040453972185913835575897728659497537769930640917477926224860378995168029482"],["9879174478047961960134479631207770045841589145342524726669091054057904834971","23837222890486795192959017064724382700294317277233576667395514148752290407123"],["27339045492915827977885787191864135579845107207230150726416515931036526402319","6530065413807622380121777509285610715999094642779067998825040706637931433564"],["25231924712893482059769588163925617676376984003878424210389459632733354859161","28679918277249748700726693774289423123991630934237267623171616466920687712827"],["15744931707127531439099114550858622367744659701072388267075064322879740239956","11075269246358387492452435431996955055926452760576401302854980105520966686589"],["2166718001778644538772795459046384985242539658250497922935606717418913614495","25741101182470941324728505171387323841488509691904894762419442675988887580052"],["10286926865971580038866326712189093384971249287822765681160561876185778019148","25680935315822444493507085610474242446968219771963380395508472332309548277246"],["7407454117345205419463386881857135883256500816146182350498485460496860026994","1844085089210588705307805112621960011691245230564010944669932686056982845358"],["18196009359901758714583439183685225072446778025212752757220323948760400774164","17040790022400006296190261413741046340598518176424386122879225959791803661817"],["17098928765693475593998092669638289251932546318622087989298657712731110408969","4284213090043229592955743986701722392582722200970102103908763328066865320623"],["6742920370718031180217534317558305966890975282637164620674172559221407547567","5849618476741965689707399225525043156809210750292528832488069184857684328207"],["19872627016845306510630799244475836320704951048895453685957217246896830855961","15185632886662669357399830721595012775795108872564050581821777051617693322290"],["3675789090075348159960911602956416688584850217446775526315778736605871582432","13950686811620234211721433367910724917177315223451720405449413245981362694322"],["24966441950261394900279122603938326759597610345669768990131729846568965398129","28324888874874517073002256305660937149284279205474601124024041894825207562027"],["22495624189124211480587371577867514913770979574752019503100430271163315212649","14848869440067290190149536404831450787456625394165969103147355880968438094704"],["2567623463702862174670668068569564705730183758202570224496834020656896340108","2378454436621593753278224248598554320687558804036546870358972970011671521065"],["13078616675305255171374225820852767468293520259635573021425121478788315090835","2893495902654641028303212636756929363759893835138819100030943783319032763108"],["7962268809598829653011330798489756778072696398205415713476860248537182798270","3165152069419909400017305126869810797476042864655335329312195729065753923115"],["26562792208511970458943996185359680409273963658569721715413290593374731074247","25381118978429843688125474801829008931343094144119870981319148987961872943812"],["2869718707207468063701274752530955941835402285847025446780102183777178712846","5681119695418061093936920002312273280943468629310072551533043516014528263947"],["7801466609422344971759994929025744542448444379532578755947376036842191744764","2150956907038301126379792567859341938087480124576173181451158766414565104393"],["7785883119765821510470740611146614551028267757992941137062116923938397821621","28395545781778582514313589464163171214091454984744246615922242750343228598103"],["19145482571241549611019584445355864010181008198895431073658651059138502606732","24651415149252612393946294437199846468361308056422046979921953201588496970968"],["18216165980670035835705202015558506212055724507096050444814565939060728498793","25920837910110632139861018825474236675306873709000534971894807535149994536865"],["27641840142357368815217150457606867026085506282443510335858300296576108501872","26806566305006528669466845302014870220923349849812420991356613407126743857248"],["2672075655308117288741426639010067120680107880632918999853785283865768317507","944092640872378558715556780549369648531492695149337764605584497820505364525"],["3889880983481071872250337841441287002784898464178691526241818462343051089020","27518768026808696079875229318184102361988462543482578760271319699646648344774"],["5577746950260355307519772982663161347784607408905572974184863593570563482422","4031672946503665462242110786174828178577960378292466242931138581972622784409"],["13960336125523960645664102670945759409703779337232206766950621150560527809528","20791401966641139385662300369845025330766397289895489016104916569229958612376"],["1230452625257166272825377287334352512600566033197270738062699869186801309097","11698705779537147177589381660680500256765120186707511531812347123287784224412"],["4603980978707470578542293086005405605810948114712741083702054469592253268945","3340287403951734089216684186313951600085465936036005986454903007918623414099"],["26774545055546042038331477993183267828677552530615635734808751067424875223496","16064040446184017838660942582331114560807101408171100927538349216576292067686"],["22966067262384981893046621683912586540113016599367194011012207434798046345440","18004795314636533434744709253812172892250403215634764255430914026278940224820"],["7115084272827612091416876164165065117408097085508228462638215292692175485589","5358911046421826366778058861980323942734079554447510909065685655249057493890"],["15109050241020219696796814046868521981911451978362189346567617227264641644534","18218164722773989095862851249830028308743335426256305615698278476073931271712"],["22444297918780675046407538797267560622665243192410916731721309040578626270200","10516393981384456830867706379265126650856822803190439858853055467858468605105"],["21421996016082811909302836078883763289590502113780627596899028371298995379316","16725268885615196769949854745747386702621830694420412023189684529446386524670"],["9319284557771680918002291398855578132744263172523932536458033808719751499146","5085434520693303936935932164488710821143989413652486001862322878260353975511"],["6599402576029765747681630202570961470435989479755569222657470620937616275031","21785195558431333951023794409963166194841651051397523335519019097238825564335"],["1640334759308810178503593036483523371212936379984150533412922140581500015780","23339147766442792419272664613969220708418408551151137724580026382792206467771"],["15328965664234244631034035446915823948484987775261080305416942486696173237535","4609138301244468999848532848289036502160235019656968053876650649239759191367"],["1841255771110637980948688605899128350996016745397159792514924983911872362934","18176812830044528534022035736551538236108141884197778175009253738979494828154"],["22474961936681908915061177202306463092416707656839548116957946638538708376694","18261011677288217159171137024734299328255328776166806723181318069093900003533"],["28665215178008772405796657072395477070440873529879876292125593595397842907690","12407968128685008322124901276472645688157156444168583066011451846862509675523"],["18666062266310789359117247946489054990275056099851317569493580779665246344113","23157612404469434883710071742189159852069304249406721058337144369223725615808"],["17784502879652849608399875697614598103416924287444873107526366858249204612258","8471867813202478171365869037613427530740045212275451439750521673807101577419"],["6771731579037668330856327721449371495726293052520892555207451907359984817151","6045887227986629937060246036611651792936844790928518832162793113436006514490"],["12835131274445770352884796360581397932125635696621591983758542856447756174528","15762699654051558304654088071183934389265944208512479918653899363152125233026"],["13717304211464426830428361208724334831362012791780345036530477276346727329307","21273350473170517101002151658266015825426393682677081647038048138015493214260"],["560090428418214828295620573705110365498932971659894140064156036944826666444","17339374040807804748818725796071606188250226363247610655790646415665323509194"],["11315304306367041902068547771344925972990415613102492058979533424046350781359","10059770471426183743680739897810175238871642734776183585621855865064287480409"],["16638249784408392835393912413266377350076857355522246187093342687632343953055","14863536358570443573855349235358871333440578248407385051038515914507626017555"],["5214814631234942586831695300567579415558087254304896602194850551789184274686","10833887005408826497414470459798548907570829536585784430272786169950897463045"],["8391669257770796356217141128810436978451208775499632961003283236838199593294","8118626538536870547280382651411383214584608020951754807632199494539783142831"],["6788162733278828918577726841106025229630927603301476465951185571875579350247","20771840025558602914645442015046919851285354747155147356520568570308376220944"],["26568285899501058249623442947037930813562700605514846574946604076596511314155","5116060709440632533888229772539927868403791751325435088196513537748240971948"],["7588841393542323007234523941857373899285950751419910812801786461909666816324","1929576957060632595315166148754103031074899356335507963225267487949938155730"],["27465303766671924204749075192136823481716803898788073096610820626562363062138","4908313137942437970008952967560391721652874391196317689232322499525090942766"],["2678187509497943605526839413215414494114575117233733057186420653782772194571","7037169666496720063368552683637634734328338045627965055387238783271397667311"],["9938421914844916914822098472692355423418841787799121913884651528736160383578","17494840756486575869739983378122879280968249985074642841710789181557868667430"],["1211119387854262867645370437693218098784430589894698712886363138426438538995","23376494943677916105537759290091062676123866082406257678517823847515605097880"],["8051950565692999959134250084693396018995849706834858628438087587115643584565","24230084773964974136160289062097159952872053847779968781593634138161587571472"],["18932338761559142202947221520068624635613558714501171220659490565853637922977","15051910119654977593254848342347943581890131865346206052299372563153179828811"],["23988292637109389535085882813447674893594104460403114791388261618089097667361","3766761802386889394718683642549360643150121009669467950453403272021387466657"],["28920054730421925114179266789028999726639785831974171352528453379314141261228","5752314973349259307328095280904255096169212649745289505851971883335634492276"],["27483952460976932361502538582047499832033639891756145571336848217646250471","14278859656948482484166818282546605496738968150847878264662544133047417259458"],["12485853107526036466532615114167331978838821141021251865551909384090231452295","26707285012967258515361298792080543907346400656268860937499203058217817041054"],["24750634182414792179362190590645760418746298400698259384077098731568668151568","14491736985649520283145449907664133215014088898569913508026288213919160330145"],["17483938962031888034618727267078230900421749967277561348836638857524456090337","22114536957467198654340576412990312969003957993564017855607089861866664413179"],["25946999074330066378343724017381476731025014503200360926594951187671183026045","2141522077226256449464501276578659913506695291942045745122983649981509125167"],["5593970030420657171826635726950604238511795608284613818107634514219009407724","7050499546641680695368121804264326474958962303945259154030667083589442412439"],["18021015925745855293706927085789232709878050803573916725860614812423170046629","21200921947364767306997682050979578428254366229625083459195860528138019825109"],["6893151250557992334753448128497205882602554817633089127384770351591205864421","18443899336536982441949050577868851617562217687334646165370180767349484692759"],["28265169543673201495839282181933751732285705287820591329637018959051000403707","6316346704834107599864736221514736756126784976757493767339507263530542870294"],["3221000486644860812919620733569196316464365860074031947852285464340196977772","9418325341125615722402025806906106572285168843033444002418072060451400303747"],["6892798423226536764878732807120918490082727161683715421587140215896349519573","26107019642021202181615401992329910215269069353369789411619397004821985753334"],["15827581233206694615681609683395875261124995397595341815195063250982496800843","10694588594701438029809139506961597316837661927181115886519850134409354535381"],["12319308443605620825272227399085343029572154767749505559613220887128969325086","19381083394661808536616739306864831250515320773144564134878807679866366687466"],["25812533221843368626698854492795988837714844861761437528042402332074696908841","24816133360536597977910564032240904126221328644826509758148868006557883179961"],["23810919474829433903687175645981361583371486592462889041848101015883190108588","584970611890151948377791320120176157351372469649481900575441319924699751405"],["20624731497286586775284291408674689353905315720133152493755060141552629148950","23539578204116673705413764277387457467929762363684739502516596772858587609049"],["2676807630267229237913273827285320502691947973748842307984062882129178571326","1691243303311901401671909020138836188823377728234180630265015879041006909711"],["17330239882679617797839539168404036058914441494011764905005766842595981614177","3934974364534847607615531544063032002183899107915418740393910251511958021158"],["21104093208706856630012874726575278512558016864795546668957830931215621611285","2883653526386204154229867727819706186432244444958034548452332119823974039884"],["16444065076965979145968875415032014563487683745332773417190386655269887131848","7149697958332977183561480803174532002822465667661188997830803910268775435072"],["13019075701244443197157117729991953964534284778122432285584590266329457214326","16134364402995805047330450350957492074035145771856620112328499189792877900427"],["27798333038995637923341685342944919049590622733380356315025825325508295778094","20134130569073316655128879615994435581696511339052130573631885684348726420252"],["970516152827759862418473571987000667268792574105966598645716217953888712405","10229217751568089443679649582913874176452836008222892174224968617170234901461"],["27401550234773613700399989653778225037346436648012186852206659867459739569989","18224948995975475311372920740720089276712105972867308658380012716657440106729"],["10629735812541816186486361938379509125267479235225541248631725612124436791733","7982833601555562800963310708652266570560561820771734797111518112138797073397"],["23488178557898379568077673449878010963061517192143284747097969704649152112545","2125254081879413952981761034838325933349077850721585370371034423722010286257"],["9337641629564317528318295218349317951250829115192655199567491831394717665843","28356704956617828926533972826782696421502376506827252124690668943807404442291"],["14065936333830528261234482515869998770866012438929323402338577925002977891046","19707487221258542883872983524171124277738308285021707624665053115378052579887"],["2840447680080113769379768628981826075039716151467189200417013509583033094718","2550890485379386123918037979577144425187696186744968483520410862322574316665"],["11598881594822195937064402400448546701002834831260616254857442463184593463515","10316229074182848838126444019730313968702276914793278440000235795319710733303"],["13540585415446275228168178419283255548336241305994815725602198436959355976791","22570386280310427862844402192742997595870774662586944512875926469278669731559"],["16254012338783688318998874497726078981071282041750758743722154587861920273965","11816265636110554486481927187377570512896484375682629815093704961470009698982"],["23521176974500620538488622691455494363419735738974303799456222455538372402470","10332354704526563689658558683005455080588036227135860051724710312380957400106"],["12207031187578869899058581693667946973654957323071296998909779710151287647415","24766778087738748108848117407366870871129159083573154752745718518746176475934"],["17461650409890214297275987306493638255566471243856599807637692396438980833108","25740019991852772915077825372408101933208270694529952775090054026728477666644"],["9544745682428827419629021037675316497643861923485280896985241026867175241969","12074787576516477136990648029248612811409156946534033476913395623244301103767"],["2238795916897466583504816354063765293591031876368581569490168497300076919572","5343446527969859785903669136451360296954740084826225347131605736252985855984"],["25436995156503946145710452117756162066972171284041712782617725215975825464149","26657174566118290976930076848636093189614403581747999894589754939440172286408"],["25106393789697658090060922168938694295549907816518103882736795900617374911458","15030261050103202714948728203456856909005946176827320810579577233472429806945"],["19253992836928408742490258862714265120608711026497148510993340608316250801931","4589582225189322933907228423845893814505224399819381899221343398655231059207"],["10416097995500050721562739298289953293685178663007929341445201523808850202514","14188555206623329255768070719973164320011575741000056212979269868370940706658"],["7192903665692941589668055646782757034607054454852391953703728805043006209855","17809740883803607975208003834366506850806901350710358293139446909297077947117"],["4129991115692863024698200376842597572656069428540093242386741791400804116543","18159927570703929265606691593439973146044964551241508942276635230585022432209"],["25710348150920736443212539664680937585213982697304983322833544776174474648292","23363265401088861528278766707606711325739228455648656513187337002294034406913"],["2576449004745537138390888889137797218741690892329984231208612406765961986620","3960816119977408949605728839013684969918302996977059405143871098547692046040"],["12687936794966679088908563402585930054467769634124252385166407666307661007810","14835440273244091424118478048376671144463039000854837474378257960691058853586"],["15066420294557103915335715098091902013045858236393152138447185990227011491096","10164249936172812839052634266963160802198965446902515585997729322326978046498"],["18963618271612030525071250363908788501149739887888956129092444343518225096500","3487263087587931630641375104175799843052721363601105566096980701409635269389"],["16484339766364720595259249901965571892062181155397497011150659562037569472863","684624915197839501271183978722769674592200720452205881119594985746652451685"],["11181248350659270000342024390170720647857991879434102186516183232289191992526","18962379743765545344100044646456692862849160871369517254527132375632110587064"],["22366582439256743333527975658865736261928500515545598846885216847890737945079","13433531103429887313665056618034235304722823228161807026493042187142484920496"],["1441461105321432240401011193263349397599668993563747974693146507348528996874","28542030328651329800228095291314158549439806114981003566589410825395250036545"],["18304214213692951945565548297129942667154935936008895355613866798295445108352","26132466832687515197058153386152617099854613411850059859420585921441814605616"],["4052069928095685091243208142689575708558150443372482392220437477463253356977","2262712083999326865444453472800838912573236905246456852268405912660867055671"],["8069592044142096293279184899230139964709728686948412644602657412915294027558","318657597801826145177617094273605531772449341979841221502057129143738788258"],["25854753822138323724628398026086228630912468650692907089552285790284228226989","28397606450379921512965577236015153437439202641049082067127972645552574997860"],["15546423131384551178572030005900212286467279781832913269684972166458431159807","15368793096428163711273245939958358636872000738390445405416469580949941456384"],["13065038455963831274960917460428069415897254599093580258842457679236506898569","18375728211340298159342602205807908912241710892448253367885653641778530941962"],["17657055278933671536188219326946393135332151860899835318533786717200791811007","10514209998221227001962305489575973898281571452018933633006885954827122311709"],["14303550785175145319332779748453240621146543587948681426533369394127190098346","25143177236544075633535686786227600972288801655345833547746625473840700198705"],["2762718995099868457531721404997407823473214141834257898718758019998103169744","26578705261523348941049037092151430067100028408386723327713423527067213812148"],["2604367927649882612617281909515650290367555006045593986148877903663615756024","15990383980288558869619676484416552640497432611044623771031270140948704801358"],["27863782179864983546687214859536174753809523417953644696021814181631599554760","6863003493948101064223484296094186382893219331254547668664664585286196399260"],["13151137437424448837877588440546829287284488541900723775068292912520355724610","1865411058115780572849414862200917212569130361021227721311691987018711468719"],["12394519249630087468748583893274157490388058623905447059105141541600205633017","15609529828027693352792265190291294936417100175440675871796133008653892273821"],["18249161592516199051239111041540879043775680930331755292143213737146431895312","4558156027451072644238240573621049198739356590740098183731746067565214857997"],["6151866788671646508380190255765738658205186209138075755590803152360925114559","22270039697868510484923921744660783338912642279217313501653795448472688476293"],["11684937844541426376249678788284567628583609718617864140998046449405301255430","8134205916463547012228389176224203029714294871144154921209469971532481335456"],["8015371773849386247331786193500050817430135767100359453994094237797655587544","5774444299450490215751754510902411793922366480878750629311155139810109622214"],["20252172025939663899825674571578001081613148721058429440089253255167346708114","27656858202207698783001422463178376609030873560829260716418310593704500567955"],["3470916344416050685331129282068117713545454679887242619010028647959277129772","1418964868607599537459272345433415579673720841833160124766592732956583910862"],["23325400807168384262787780779240532661861870413353869070344703661999981582416","19780632184408964912031531152422513403844577865841333580877621550651258049020"],["9008919311346436427627344789311600629807812196144561776993214122213973852499","17782165487424054764712390200571402539610490257123643331037585147796681153889"],["27923603718404495462969806719773128539664838228220806176690634894813289642580","16828681358552132402154517645417292694535859063205585493638985853801113968071"],["24118997064267770935468122413047227754040720074536091239718331880457749867400","17054688187752850256341097349894543157081465109223150253734331694138914671587"],["19868033679027131588001095765430942819111388126839649728246490399924883338265","16593525772999733155026973418175811679593587809718711225277542185537299077745"],["9979201191746259883943155912897575033973503556518729775753199758735430341301","6517842203839379383953247032093253221379779486431777515952643912183160542892"],["28694622557300835714032591654860781397648336857590425535900236800986893776249","21183763944286080695216012261487620416346041046895963808189177099135286468235"],["21872572052829828390572690872077159350492477872236673040856760175858714877576","9274573629208548813984424488354165638335000138000814682806101609684739166216"],["8141396692744024129889383030540517715019003225105432894924483645007085135055","17964069188411681956818541670064741489431363263482141674078218097056148719312"],["28702866381372287463824346288958933508150048357138478104312273338271367268400","13506807586944747832475547717376709350246263877551043614724881442328295088359"],["8910496793444636938778486528511642965549788948779437164383230259502341229648","12598764948472411521079369242950857384702052358286697895838121909563348309739"],["14202272139814851603314284331427436564854611038885291468413491975203181367929","1196258589818718682236970430578407534567667838282905534297541027820474933977"],["2041018724879672386531783522372270159340953210361528255547281414132973455086","6738951336284238919677787918874212508985530661246602275050426056261519481090"],["10756305991812492647532702651085762739153038210605886421837494060113651931880","16485123471197473949757946303238067547146143439591922934492043695576994376572"],["18307000411837225374923663287707873030345139366038931068182021359734259168647","3774766877360579792493250209204694848545665442101431012563386785445796648976"],["1908399747594602344072393824307704756701905329362889664080396467785941973649","582642217028505714129316108835921016488922886129953796333258971647805203866"],["17367718972013215392660021859972120598651407998354182507050603880252185810697","1296484683505295492775458389152256827600815705093315645351443694430617051076"],["384928404853793562629677857557245800508776801940144035322997170877498873518","14014096220778587045812006309126688767019234600059772301139174944418870483188"],["20732915036440201356307776206929687555799584135312607035681205543918037161193","12859645794602955540517869082776095972852522858076183428763782258549200730359"],["20225232890865715331522355489182130162475602821300337299886077554091993535692","3956942822453157893497383965604012768660108115523336304553137777569892087932"],["6646163279970796608618456510532892251358936225616536512674384268780852439250","5623993292492476126694476219428400088377308275628492368598703983495575966188"],["16187709595920757162438926483477310248256069105258078907258085637888488082696","14250486108057910157879901589839800229885809361235417163505826303232518126512"],["17013246229068649869963059105886027219735664281927770295301761091421234921726","27320003272196196931494290133504229505199392369279214148501536948656980894076"],["26861250949696210704792272168349003947805879521718406734668554189693688599059","2834975636347646482927963351882487191243289003468773498965081743104884017443"],["12300369650365866812267622339616263196257496648931494325799953115440290080446","21638625101441782333479900632265345571808317790480284687673939630005463428405"],["16853296887102765720161465586127778068538883000576810547430709420468909047242","26680249611341798628544953578902596509511149957255097628321475845118064054974"],["25960761917328912826507451324980858539232143752712307864851920037339081546029","5985667464406405083998174631581567027441063852938596799703325417861264516201"],["8024376733673472535050349310619455424592401992962619148226416007231569706613","8519889044252169379703011078304027547715538855718451727917254223723441730446"],["5362765416668011384448198385434454513253055911991219159859452364924247422719","11313148845392038392621137392393616130832927770590842016930754925827147592826"],["10725645557176115270500819998550809482572403888882612179743713217711363199924","12223010375362711428152887105153001722366354651136936631979508946416455676129"],["20837851034312119128798590066011687830522666466521751921656942198328654193285","10604405274799347590501552006865183895488616314522485424474172973378012480315"],["15273107517807951466380835914260608449783925103522509459538208645220971218561","18164558540652479482651236261886469355117109775231812267809410035984804418940"],["3112259041710082115814515871836315554176380039355217604956621318333927467742","4191195191652584486243344931263469265732830428716864216145021550157687521552"],["7887136963566599253812134161561964766740379981428278911191804242998789474268","26011825384688405367294711077340988952872284785584388300884814450172640918309"],["22899864535186983375993087502904156093758437017102239334788055158031952192069","6194032056727829538204652090532791524550315865851768490321772121924147746379"],["19356685425111228196580383824817562054069685641184388289950372514039413842387","25373642375698304858078705281718127073713585959563139483914236819981696035530"],["2578847586219642982721164954767430258292628390092390018523550083650044313856","14476151646765283176561154926170928835392899395202283392035244532422532953475"],["9042062458154401977863704055994154895198294907779322962303472877764686924405","3929941862752527600514121740325751446640492237149764405735239838307199652650"],["1915147467508021808329531157728766980943433177954546470773235593523192798644","1809146856963503850344310492873452680444203700537719022246183279366022895937"],["22472292837947425517748396746800235387297547981362914384840073502496566124935","12094071730626899517873116166638422210732696317912985004429521193381502465210"],["5542127117659315904143002003370103168175746667473032959626408720100855068969","23366938151015911025624738840300775304019356156354973586453263854332025737316"],["17560093938659442027818872413894446984858072723281624431999301294810479973042","25780876905902206402616526726951334828920461656953996673493535980739558278266"],["9399371579138032401498621701420565977287028589369719205406014428584530695757","21386661301146113365519071207690953957839063857196101501723971356409493784834"],["17542831942112867086474172256066248120128371190791648969716804757070800613732","3534720850331503924983031280492981347628439372544370847098177148530734037656"],["1162561054678823026624880304830411815599546193716242142877055023820788051143","1727201386975070595783269789987285958431465198836914094388060612256224512615"],["20387675216816080351380812104702666136004114366675559382056495640484800738731","3303233277467220383917402632339602624653189016654866474706435911438570311438"],["2252959007861918341183032905094633146274881486730707182921705735555223160931","9916370084702492882859187344589562024349909881680164377287496162280746436220"],["21955833281864994436902972003051239570232346436598826185509209994076539731675","9777661563107627961089484163344374846714512095178748179245189889189570115573"],["24698380712511639571453232245681465179271704191792447667099104242989010665522","15396071995794042784896152462350009455038369279245841468947625892528937228897"],["9134915372395781978017563946789673808825126612697387888983176571085834128974","22423533133667015257592055471321461807465013014595471245483228095220206112781"],["28367812850175933939470309937116893106684048365141373156994179349222967854090","19528801030334357350890082737247757111323038901314888057691521088610789265953"],["15974016285682422609284180130209707641545241407884609674290193318471191308140","17596483258159334716261969760322657655102807141587600203671062199636696391586"],["18167835902418868700566146050847605995323218129699862043352035934731500983279","9161960438861758221670552243894705078549219041329460290756881462175762135355"],["11727863601839699511029391122620799880988242197142224160462333798958042468815","23925121135909609308881454150667609068899408704684473684518583811822794124381"],["27096756134917777932946353532383186628061467497875590815107290901300183987849","3539979894503738755756640574798661674563028005772435389612379382088534026903"],["22899562029184221548095722088181560577532455671562246834049049600153718352776","14474173805475698605515252126680250630759708298058590889585281892796455472756"],["23090834502698375691010277807837859802207739487153567278581740202415419725352","25977208245906325982083857620419416653527132052679835956326870677260694503825"],["4694100373169988194308582073717535250999982470290552911802969570414185465066","2043880606455219576720466804177091552995286079366007575596629412070573488740"],["26818679337800043470144928463915652215496291240951739346500233155479702785617","13769265993231181299395096484617717508369125973576936790759262145731234065998"],["14681700299182708706452483703807148462037712545576208254826177101489772263684","21823218646620505676776125982759292685761047506135195593651373302638505900407"],["8324668954912077906748540809310516957017292151811859039073294551119392266937","14572699379968486634959862669789620056896383313768480456468449371592995217802"],["1277085615187159769637133588034629834983202664906015077225164330417922594600","28514596668811684233604136102230167233864186484218605402265798506845332931584"],["16909082200469207933550960800877696395939684844125536202225471112361817128508","27611181937935602090633930960914540325572116756125311814630833757033308025948"],["3817216382601606433766275998892972578156102354340197261689384456048428036136","21980917629999394165036276498458683002375557614931838899118611330049329759864"],["16271540609807474710729741067734584127076251314067277936536573303391656557167","26663798916393446476868646626773945318915917239224693250229548609830480013453"],["11705726237856762143375775418365563839410288458252523166574156430225803445532","1741968051175391418309812027150157218946252451429629557284383137306413365939"],["28927591307448986278003369338640992667576970728785133882210267227527902583747","12611325259715576285804001285276526049045949862814490192252231114655007860909"],["16009449093616775947460043747813896074392432935192734585311685129060065318028","16274932661956251181955390589845507624187103964676900046282150776805584128495"],["13074791119363331895247481895422817323450383587338303374096579045242794575840","21605481108274621837833820993910942590196480121731254320660994342194627125281"],["13643500887765431817420306633623979543866894969078664132477527486976794898178","5148982106720615255400738015499905428357740220045008332351152135559492616512"],["19677521189799607132257401461308501227327263160852916533512547035048596783566","11586934535474703902638335158418763417489584744475682325509059109502659590710"],["23666031702210627088079451417277478440034141167090458862471467824359833207973","15347185910183621893164209163235750859928459725341602149147540231166852097582"],["11026342855324785598798193510152378945307051061966149099043945874021342761892","4724723106049278837740130726628074587413276936651017225711826238161751511400"],["15006255846142974650947866236557193784916460666135968535951140225164381172174","27586415491871196006034666585726452035520758569557158227898831069644926304687"],["28566798037854699750173037064483794868086630787950480538775978692441494948153","18978015882418391693748092458432557170625228542178798259399294401409247836456"],["28665321721584261359035960107235097254385707566690886473322754307836220879363","16997102670486472462700028599870825752765695890386216095979112750033037878757"],["5766576093344066107161769892850308517081575157539293940445939231998913634089","10733675088192515362834936167946314456879380920693987319192306599702721271043"],["24679568783650479529758272342228166737627414195425945472925348669789769541140","10735272741308030733630606142132152817557036316062390123785385461903770590482"],["18799110823605511906258855082245476038580966745549065230292757563573991246363","4087179729787804062516225802148585946838354259001644387431503992233128243138"],["10631825360540068079374705789228028419466388503688824723283716161810235742764","27707789373022138933508745999965647204315412066610871812757527519027442459467"],["28179226018806193532852699680947576830805880272701497738841492436952255324698","22119924621945040693583259748019354280474874325169926997214351769092287052212"],["7990554949329982650711768331654273686188600796013997686574910385780025275814","1949091660552909388589011567077113103423374845719478231859432560320102751730"],["24130562571479945340284159703165161910680545244168368717437545515445166935887","18210956091736113824754504507348666271844423403322468195534659549007843280039"],["5702511331964473741629150026952563111295605819323726930576231235246897216087","4952845979516812168301665345741670262250190663849529390335575343507616693944"],["3447083059908715767617604079106772560303747903077920541028474963270990258432","9807320171256376022938207073016139909088722886096307067357829066419892648069"],["20775443350184836606612327365967871156678572091197154172871510972689803529944","22948924433718378232005748390091410512480797794406253103362174177021907849454"],["28234619226795893808328513704746810697968755730851087948713209644718688928602","5139513793380915315898789633098185006214707713634019268314935148117541948289"],["21199814573276808660248854665970742252865005756209076608609046220734157988883","13593515499801050543310177143799998859541697616254231327990909466296462068949"],["3037495385493506655305337671882825754374296693980508336464611512708565877717","19758966332813803353183502404731595074857863061657295259321706048774451914464"],["27672400666137674812935184988855288277817885674653485294536647274111102887084","24890061551474466924645391196364662314859887093265968824825873165319363111668"],["5001517754570344394924214343667419078922152911156564994083238086368442308017","13609455535111388029707205457863095616628415921858142384865014701369596170468"],["3272288672414434700307374670693345548339065881608929989869831802649508518714","11445437126929180514202325295707472197025281763915021919759739883073926245731"],["107965551903863417733376666443999858810465030745250483130573476123552239792","3955365995254790136478150223260108059998622276006413706871966738907896315623"],["24313074898515650876489929860184888147485702790102279012376177805666183175159","17903643151162356984632917124865237616611389675543364532452914976456438928533"],["2072421900475596909877867383312525714315172303608149813720442099006749549342","10851892756504378892558482903726177802144046131684403779257757717024520509065"],["8576023139770788761714626495112829374087892036573048635669481484493465047199","7992577046629742994784835135583568076135375963846578786906721250489915800078"],["17465265407857343777273846380748405587305761290628007694838768657800868982286","18869346491799320553926037643536725916331789789486281425519048183381856271078"],["6575477850038759800335556276882402755535595539823527659093157748547039792644","11483006733979808801304835506443214935607091276002863792721153444473313562099"],["14795786389336016808984115441987216818090637136388679240800754830360492677939","2336251486360586084758945703181931362274033623639410950153203807858637529103"],["17281348562632679702091167534206404060688451650327302349267653086479669267137","15597085172037824060950034491476504858844414925804052793152211675158452264180"],["23597159520556121298033137624994984389424563092150187338437650581221319635197","12992728114320360328349393916766850926599234555015489824253290825576016918973"],["21818836155721267215154179947295319829106424426995089659061230213136603733315","9110858915093720585351111953730567648143096577902031409281602299956588066041"],["18306665354793603329068377558575143609173387049190134841423723979327399630620","4903592039709931366715408364759420638767425671951272987307227300554897052201"],["14684116028805331011163467269717529687715595538639807581944382656725535945803","12112816906529514483161626519038408673780775342867094047662095205439871413014"],["23291518816130922457474126335330018931095876631232742196742792604989280213426","6611935232931329041345239654716421118649422725614244084318847464434557122560"],["1881542769180220958313078223211687229847473911892631205515255243727447230926","1414119306351462335940754678575894809009663515815957283544845863446327147972"],["5127973115381792993438273875853770674810908780739876589202760933621529248379","27780711433359568354550404983493698679770008920558605822756363236102746588398"],["2039767972960699567577864685166523795301939758519720367550057316642507038336","9422424463835383417164607932382392344543883354767631670829521559713722011619"],["4944506479901436024041258163177816725635119726401309360814573512211488086276","8283072241798461501371383745168184934389378323430001958136856550228517049581"],["21238634290246614721474783338167752999542824697275045217658504659231787561606","19003087117326607063207249985199591693904033890217469065823729802012904233705"],["22327694060537300449655228462661828956997409635636303103208095222918600870717","26654965612290199515931554183977779585657926053676214525996373036780859911683"],["21141895349609046259140924775913826966553038162280468123940589643997377031860","12539980932875300400224960484643588144923629654424476033679578848855637510749"],["22232539593603410712231775275702118740811558145192443903889229168435143931921","6265217615175292024095137188378334171526920841489471716310704971455346576654"],["21241639445930476645409338330722106747897048953515852585262286624752628379488","1076730194464560224320143175924960262315769715510264968897115961795507794748"],["28410925294193302754868094549269607640022650927843400135805473446026291337651","6522180583502945969860479314153129619322308782620161607777416776410455174307"],["10639320789046412116482480090759512494727808692978940716551096277285732082813","857225722234526220182620254869498606618280844596051533216856688961768371422"],["13108861158775212270868129037881994575451300855673831919970972279764875880847","24434282115141647737770190812388241269077898340418122325430145012833942504195"],["4927684297011883223176684213535174937938106781158050860363189268287193862264","18734644271806768764564224010604463802495657039381628009016688030720221326403"],["8155743350319147357377141603131948171807168737979730495680325300491729863479","9441970415033426365709693970877983604930381876391667473836304860420831889138"],["13218900540480436246689967131142182693318939128186842320862022614601275520548","25411917204441973808643075153583090270794349122771746438828107694095460338403"],["1140412155911498564314152836013180530194012230483371501230650785182209045309","17591275702825832793687432646312041708102463227813283560377386054405515527928"],["6419966708367956316095516882624333074028958962612257018706074311097846245773","355132920922350663154958698234806564527917069547934600601647913771691723455"],["14685162687955036191484011639160906560878278219659270244106536951935657545971","591227856286330522742404889698702635125671856028904887100907367628878303848"],["23545074187891277986225612456608269589252316814077167920541809460920360253522","28624461768800993864474607722212363531600758999111248180992477514390288102906"],["18793405808068938331352747533038565175897163092361874592194406641072677954090","17243508121709908190733861823257574891862485802151194636254329305028651107066"],["4253592071846616575741108148405889255535208424555565478150119229616234739671","3988752844919163481677242034710697579905481101894776217483150139101371286686"],["555649064524606818210860766712775426739556196243091891321889700735071486976","18666363884927654075361575194783465806265833780780480554017143725227668539900"],["21530407441245316635176236804143346080771034931037739577345633180731091070543","27654823451977690494634693646274637047471528468480092869278845287924734648871"],["4463158977947908607394857744855365969634837003337909667500003396830126393443","21532742218600587886230907047978558762633949799834033287444028400633940446922"],["14495714051050173532234405346027950380111235659728135469982723872056981650646","20794313358866510866852995299741919058370643458602312300105127383454742634582"],["13787584814578235532140262152475155596315741797445757254040842042786693820338","18591225368092356630473908617477775426266876425127190754760551297917101411077"],["28196186518586855998882920852296529737676433146079736864979088526574308765670","2341410308359009491735807562915915893264504623563558851762323978751758217298"],["1105450824904829431249997612943732943183426792215968950744797184075451105845","5838950940129413352109911481815962488547518346632853676595378896536687060382"],["10492827835756624507149720825066318694481225304229697559540012666414620459030","7942390906770345388986189837634759262210717309772681197578598564324809443339"],["18847285781998996237268975696176591123957542891255132515760619542739571762619","26220631823418630787468718572113916091335448738251616910845468528163225330420"],["21027958597571611817089981277383462042315933355911879655383618964741751204050","13649139554128378936315929521001585118264617263742798400236080287035355354776"],["10934161386159417863366816006984690410006504433082098310324602602874318039849","5413698368415732751668620548777087496626893319858304552846663881180646181232"],["10642058079841617193686603789331453541661818422956148448196031094359339074556","8823548509547961039920105906412416312515735318628475393279277402143705486612"],["4503474082921287652828809756361344005851455293818087712289403668405032426263","16853563373856417777498809292555890107542855994461582568486621089244063705561"],["18536601382264856163835136492250151496664937538552416362469397972876981333542","16378786253668294034882687108961313458468542982189854672873056608422431980947"],["21654793290610153884969504880496136144609765568010677523117999098072579088091","16004065223588272131556273104060096107163509255156155523231498016794934567990"],["5957080261467606937512472289777657064371461074854650297945459727848903870350","653226524651238231190056651064347449121977007971072624484592220225681883452"],["27636851812022864690944366225348288966622064845214761564173961143727721225750","18168983502982146301808515996124580484005531381257184995076619462478448573501"],["28837336516638528094979421961652076394743430527451048549383755134712580118050","4787352214190515485528566861340095381882677801905506543164889436805140959989"],["18245138855021039500045849515646347790515917097856605463002794056110581086135","14470139081572956600827020531427262550503859895956803797486874503037900343479"],["25570841189890625086106207663237614593359705395310747910602771888425238992123","15719219723929620310534412407011715566472194726409229314997090593171946724956"],["14989110771205500311442479374483524897554712471442637449398719220771885111394","530253943512842116833288343987264391307065094237899051382673032836747412802"],["23893159603319370176748168064527606412118088690935436230548143210207298015189","17875011627276697201571744322804487431035327718518024553541491456006251493301"],["17910085984158142503530960494257749354061510266104903908550628647333063927817","22207424626499343789699521925768039074543784459927892032776970930316537132684"],["10425579801183642679113850327489104468451711628077596001674354177006477839064","3587028554755338252867059975491375385210488087716271278319389161220193739383"],["778765134288218062988202866705649761191661933013586872780123399611384607908","9233837112554441102050228186822221935760016764630667731160732161500291231707"],["5611187541439740267045884993133542165378180274670222408874752837563745116199","26690331080028355795575694470105939234140957638864931250666355539752410629325"],["1239670271647973823858257590474986180340424731944822315561509414633300805431","12902910834510826107005381685982146237743709458692077839846835442713877782282"],["17966106238877577743030790407514732863309238038687155180614299788430692516105","16384688941220816699300033884854262652893329070163716276742601523954858345847"],["17031505069526057321530040015969290200180789676810456487126574710905539048673","17443529693856200460730518969018608712255191795335527288509734948188741889139"],["21490759333264567850440169826590686186892298842341333318868445294888788152615","23179480652622553539107808774350048876678255734476537854901943278576993188703"],["4878528319184146534213739548980250231875552724135133411424799592479427266270","11002903596407211885907714227830344238951911091993105136418198405133013880985"],["15547145584641820893749893614688920986066875460611874731003853061543216577121","23266375896729291297264211469847416990032588381787042877797924751927628303923"],["1934357023976679039479806791814002894643429308507526593954583314754411694861","16556347650772787926378655498303589850747404290243670965235450788564637790029"],["5025603844710233453732881410431817760976431432030058469135110749810817199824","3101649995871057793551440601399814098580362569970992785474007870291183394490"],["16933783053438499435303866427841035698549112664537367361729739820386701564271","4302992651158823570610652197176245367948720563839634092812852318166638434575"],["2544611897908385505391022924894033866378174280671634596194050690783212337252","24111235259315903448700691291914568608942923846740878213937533286140519732298"],["7064059009028072636675934499927470404205086953355258875522412609712775264088","20242087021563469839996817290105415914124165319576415860036650564021533548290"],["21281945497475466432402954628771903169585482894508934357173803715245665774056","16697849897697325543931850539132147598836018286394002635161194343855857635407"],["7583820461689579508507438075022091063566851237997750276293335750219319228605","25550725939304594870387767331614156312306796306857304564876896926569140852530"],["14326983091136689862583294589537311935694744572608648511479458429296776737467","24320921576634918120900436864210092096934569849909221626891214030029271193280"],["6925288364697951766902500016385561416620424031952624964195899660164309231802","16918970323627140418972588110616234025256012236921591000144995562983703837132"],["11954730959063318998718788218202112674440293676952609447705772246624165359759","14229149776270009313507644468370219870013035902702280738845799027946879700385"],["26788745808215181593720291853913676356538961949038745944558066100738185362255","22000174895687264985583460825305570495490352350620636854992977688037243781020"],["21842428095859390655981937131118563297693061785095885073013016222545429945401","17277508732760578742813861949592647070273192948305346066200524583997280366142"],["9323522876620217411048097385943290406884822309548689941924438464187913684482","18884527268195975562962029682975548144980781856933860226392433616561753408376"],["5970327195545878695478814588342228942845526792434931659879593781874915989775","2756029670957281815024797290138748472065001359589282728681044528749797619746"],["9507386042767755458477440591386214377929289382244050645751458030098624396735","16452668476174461104616871161648066652458154889845022471298243166370965909476"],["4727385738386144046861246675647020992285934121984993024529118376019124468608","6807285142505595551521187987076766047771869567019299066800321083663198192949"],["6112376313504373814448682452068987085656995691410707811759743142575186212605","23207044594715414716358450560395108689788788953209015223525800645670718621620"],["2599025109815578684726168541654048881559063802315955428699679023973400688412","6056916407125723833110052921590638483754132548264199666238560687783724893547"],["3905794242808305452849588308767074620204834084723600823053442633641399834538","25260925912214857888286047243639507422720078540569736929405924898735063601846"],["848477976655854006197110774082523449066782418685714110846480292200189142233","3809431297000770128938656852606943612543812447985973767241414844842057506975"],["4896363286676096316993690996120339790886044827409054835597099150466134545404","20936156268693450238258564941679748058726464377792377233623128116012690754692"],["26835572878065581736258827340960703675833616281421494476458901388102747714542","28463131292139855917535279423869423496857408898509723948732678682850218919091"],["28906549685249542051873392379003495649028922796603668891447031522366418790958","3799808984907094910370686511868694643119763589246537636300505002003885472400"],["5076797183869716564401782369769519346548750354701972417268866065671566762485","20313898071873074075437824464159583567769330679317877309198715980990496074000"],["10698514424801326073096377008171523571624392158537937681939756033954819213851","5500418095892508160953867501485535818396574394922403422414423566614067200878"],["20353099342336809036064684635484564218577903078890553021857396522822268849819","9681370260801489151107445132841727094957959512142869939960761545686798798061"],["9229094328327596759083988922119749549720626455823255675273046929009129509135","9585982117605305626922252931847981444429097083571862047145260322381470403030"],["21868979331198491010404254279878999828003681111968012051868672540337006096053","8122505796061555900593107893073476897599020683871424056746869944273614682503"],["9373174569084297892507301579886077679615632869739985185646551256347469345613","4961351361206404275906864015326109578540513190051327152611706573691058602415"],["18403344390414888332544204262223934880485587555262085888164503268289712872979","3493274519687569638434890449071965282219909610946318071276535432762598285806"],["20495921086605890892895779300865639970209940246744606167589342410113911090182","7913628988573973580482273061488769888299111843247990524484713672132659041132"],["15763191665336613741720242352421867791825129525309301302448474158873233670697","11990771705736321202705146092403754916410694823801775314844087428156635033369"],["4343943420370711516200495337038870032577312048088830575647911719967707513758","25222630338121455476874325222404059361037937297695175546187627232866396846557"],["7324605826068517921339072426976431587630949985020995363629339945844485506382","18930118863787111514812667571924089035422881729433495464982539362354337671476"],["17193382464272923723688498027033956851650211157294919055105596677062085390480","13377445806029641538868697132014743537883638936636079719859041025943077712897"],["21619128157722527641621670868096556868953186407407836241574651653274854047435","15846272447789782818109566807550234371666900550091565832730721661476426310239"],["14415794570177080874459157511242302282186469512686453855224730968561717476007","22188434091663935324963759620946898041098157279932804144894742797817939890099"],["24441098965916949443151149809822116071022703747858560255805510438800351166994","17358077925438558303808145743566419833986014590729174307462579700979135796638"],["6762964831400645989658001291061071905787541867299350138950047997180597968946","14293896432908864198339032047498980726674974217993380149902083271925037657865"],["27095625224843001798905466426532345376903518601147039302357225523363080841463","11291718337959494855341687142000299574337385163771717640285184078033843493372"],["26820084377833596188776371575557839559385729472056977378913434340937640524020","12137712702410886616282251475437035246071712263740870708588151615286408350350"],["26627914397318754408955609449101790830135858141364777107993190416025265280008","23181739301192321786027510500713906822889511829720607275282801803195541296371"],["4817568690349210884158297904869117183233302012241266770690719520629849272436","26068793089768226650357205341691387695519234930726015990788825160557393658294"],["25095421188785859776016268413927522441249120184647952256729870262850923370791","15332034099370609245448554051690640588483253533753158403352656939526796201209"],["7816273722947243006926311330729908107436455180528514436785165262738802088276","27991146746202456367285987149087837407185181693460436310742572803275257215084"],["28619623810980600516434383842072809809867325355639299575552459914691105551625","8089897019414769092513221051201652176463383777943705006061029280350739100776"],["5103694050157939798267570469688878155451304680475405380129033947065402870002","11917401532466573048940581378861774114184829044625225148928022290298301600597"],["27179893717524532304083431905392354111709297664927339325715749062632772359864","4278582424030627327625004665622201758059940721770549475637761604967551799939"],["6329015825580405046603002719045889797032147044015681898549746548367551247546","24987147153937973493490231283320275003248969134664236181685614542871858107533"],["21251436937564998916943927118523658322606888010908123558024376275484513161810","26829542946326954889611126018188467377319953608825605817004632665594745039864"],["14043818743009322432000126476541488349815234281222144321679994929313346389228","5377189224609518476972818972022904136251325561186261295332258110082512422626"],["14277460560042779938759621563390180996908716266983452718881960999881550685320","14389107323469617837616225373045723312459552577141908100572847866620920819382"],["9302819765008946375867435595381652180654594553157357274856259339354237707697","26845040661931167557230387055034049046228982671724320816505701275598923805192"],["3834921244813158261654536154439875437804113618847922650237053279545383822519","6653390219583273506812815120945834407092495902760771464875732278170871262133"],["17922017398144562127646359950106929370409899149443765798836904837150085082357","2619505792316133334649753856220049337100816973750814989821576426970094023024"],["17480523600052515996953132495572097821642358842844231150158830102293597897593","8546719978956112144228569534955479267894419166086028702781248211791324718584"],["20394360534516247050365685323655579852565368941120954724654186024211299378049","10074696091448812628953692988143310095391686207919213309563058487609548337419"],["28280656026091353566452345895509706993050628206900285901037081153626839032138","17571889854076689818245380710172792836316561465107917936127611685137390588413"],["11776637859027254703113560061508085578100206254419042112019256426876620535537","17376847031588910535417927592912779579422565454310087879623905440141272923990"],["2311951510554043850480863692975851620545389900336637772240901121754368462065","21383138268110134569656959592334594259516652729518914263450400163818536277107"],["4742780255480882419402952499882785601569317664549153841789019644872326325794","12213935050699926567516915824568852460134458655322666442982339520247153276088"],["22089019642797153117037546200309732420056794217724195232370058520615654331199","16915504473557744742009894998833553094327047603421637768190640181554619853515"],["20023902310922666072838869275927641507971676530165914963943477654123954686079","26436969328982523671698955852083881933172772033099067076448685818479180500174"],["16207028979963033109413426542378987590727520807496096768026037705159040229771","23925700015384565528751836570392407644265813998743624598718342965163119990617"],["2344749905646010530570071201365486676477664916744160586433473512159772678329","4851870710566914741577334477315095797331289064517248719090491524260470315643"],["1428975287390271522314475639596081113858176055515729657989663283173193565504","22607684480745966563232934240876393618081393444950786528844653015241572604546"],["630643419763327467866254457693202419946188522135255981523151059498828904332","25664350421489831110045819372497931709750542441271302290352859073408197818163"],["13156949118264769483961378190035158498321678656840417753285502830181004570391","16084149138167652072103346522365311796775269801513021301809810872816343241179"],["27050399973174102217904871795691913757309556754623943927253905190405633110052","24860875422164601613466228939989527236445385253790034782792632517029136816837"],["1954630866709574756232387090724913650935731186190175691382225865050048011044","27512101653630954819476324729927756212009524748571747379080540750205925630554"],["25846070006677137288711114497049128790061682787659435014990784546777995519393","15221467225105187502082423321714643903571419874725481416925404045528442374987"],["18381985595100450732937680813480688587002464043893320755159263891650492596346","20511897063078119612342205724895095315483915295055533941411908449716843058790"],["9245994019500701109495959816327315854965860561735672939116275990096183888403","17255927105969939961995033976197012544174260279848559811368451402544021799085"],["6319564503433167616047793346354990586186896180910890681564161041683209077929","916158979739322839312002975022431544474995892079420396310109531377117365102"],["6822405652236480881513043921074030381551547436764641353283950682569494887921","16227213775655134390073689150967383695878814423865082309342407507415138350132"],["12098119618053755268102656976745624989348126875413763310296785000142132886323","22202595311133921295120219072845800413548485323145727325576548981546348375757"],["26327140590978134734766463380788011392419769815938125486633685230216616982984","12980240530382022297690895287219458842493142630966198891161005274046124022979"],["2793042277601539261884437124164732754240851598003172546430431851961262376142","3190788408582216825451179537706290423838746424232959956943894836534680205575"],["2935385480112865596801696295608774062823509442148050510885439009186185807312","6010806681234259619804619420359172269281903825803815238013406954800695402120"],["15369398014599237598477008444623197462726626891971809919813522547113205996682","19544711087215547044310056620458599284302622373411433062599982712509611005666"],["24074874356056519511613150265254546311833933852242470317771258298492015428836","6288190792276506697441693414770368434232012455999283633313490406973655611891"],["26676659929194456653259818642637966674388610367494231685836808561221020411205","16410480793012734536773535075661988261974982139005292008817416174937724815475"],["7211253229440529779528578032086522121737255904640622753951039442512869320355","21342177853424234943591888950563325508972438450692460099928439598578708604441"],["4403632068024568202606999705955010977667175964406234816921186291436717710421","8849662490306848200772671007731864937651689022000292855387008674933487054551"],["9754390901886086958939023145715697756254710665414672309732573286188589560481","9974785339127673899083799370201897146074124614001077395621982671043814031633"],["17889156776024858409364989591525987852478187588928695057420514968856014580541","20988265736025171546272614854386356754086679924307329271025115953489470220296"],["4829077673587843859880529780680707869900465007661284947850964261222021112117","8290739911918569662744616822079093003749961204731132335411382387290612219708"],["27239090065659979905974335717266253334341902598888910022987018558622016122502","5391019209762746130415627960843635535756952930357853780670421537611133333692"],["3248089171998616492847254594389110413583246660139149545555339330957414151780","21466583614297343004463876676260586655474386664051502828871305327637751815905"],["8407476239401475034614647392406881025275165723369339806352876315289398127719","20270874061440026968218853437615642694744546005806071597897356563071005120988"],["25805310509493715549162297231259543019915269226685036603036063585200789283621","28280042404293459608741421532008997489754199795662062558120511368195728507334"],["12678823308630720911729084889503308943789145208757535127242747175897288170563","5476263842121570221423205644555725655675852897748838183191519596673680204734"],["12590533674340747768455331276505044265288826251425988032400829555071474615464","7871268848155389532351815947090536666388832281515500799539124458028119993006"],["19419851567921191155782419893221493734946907805526818041676626672761912431725","10087135201411472594128270522407321427905163126623370197016411734284778918555"],["28393699199068868138147051410212936504221279905852339001435830096905698457396","12173265082114713954236860113250945644170628991086118695650799417836185504646"],["13546173850762358820540495212417819496479515738311777778099654155887766291279","6193004615453224354423960591278587964485619543956855934551941378199505195983"],["24605736671993944941403668356609590774066802200079602344887618675265645456313","6549368554135555560340342270260880292062267374112151645662964769611959338132"],["5350807705215039452177881292865651044074162661422675455773609470405428157092","977372269316772687145798878457903805697258359961817966257759125689800550045"],["2572301655773844114533488536434838769419008742859649222417125622925014232346","8213005527831116220329359586122813947467426130876379874380801529454541498233"],["18071537469664620618591350746584784755612600219188236384517415125701198320920","25236554604111738977155808583653497023891593360288583625057372389314392362501"],["6226315660782663655648690840862080089895747567187764949669244774262840994706","21478107362665074022407152338884227773112078644586881814173411771014290039294"],["20749874293100537010461979641601167953978511477025820592008295847069575084477","4656954034608018084882336330727478487424002761620298893667333782921317272698"],["12997610339043120009717921657359549687673414318045194097461372971160639682589","6797981018935805167931529799973082183744509983585192770591828739325454992861"],["16189334502580334210158060114233256311195894601673932089539569790331555023945","11268322964825136997981255539653859687628709002798692836674695837522214920315"],["26021231709457249775540603092266492776745532580250480174698603287042899706339","6535039337980322272974057959979015096013872243366521739662622094198002538612"],["19504030606699950947333269106002220418605764555159553704889728301455588146457","14801910532635872585621683479310791616749791574549382288565363719927591394209"],["17205772213471218962717580496181616625796252437018297210388371107410120953093","12112859092635398549189130890777125610357937526230277049889194208510796144203"],["813634409980698457577067079633851111325563252995848988694558263555044291730","27495090756434045456448260025735230813192764999451374739351373777767764159181"],["3115188526296696039611753855547137443648357466556962879317201467479077609296","27679943725999820513342455179875394355706946391008291817040271370203445788378"],["18616693705599630205417716492913931680699275127092861648107118167723450703498","19649033994608193328553874072740679549685907330606419472647777532105408350677"],["12587704146039258409253606243969750131611120284345709426852837846858917479165","18626602883909390856169290708452848565569423091294397873648168427000699836583"],["25059418729613811680628923852505550411328903598995198457645076888284569139563","12035652115055343901042995006529732184013879265603180947090528754933744687786"],["21541788422303903549072390504833719441716719666425770703809952923891045190493","8353386505950772664840604902790469647312990592350510549641629147634756472443"],["22951783618369326778507991589017254924141329846758680907731644320594611691790","1324078924712048498404383013181307588031673010225153403631640576913448182918"],["1191327588038870998251311949636577408352475901131995510151296213349801481126","4066152344121473190181561629894933057874273689917214161688744031796292063098"],["20865957912960802759619167490917727837131615167612861055304175071199330026765","25956186031177250339514753442581517346040212099802016883919098940059646120082"],["19768945427967599396487198589947808725722950381452826882584133459583799162859","19681219359060428396606477773957161057644972630633458916630529496450154679373"],["6524911675342817212141220459410262660488382861021707389496632360358442314312","23786969745830199039722721711008969009220059885236190960919523367513024134517"],["22078885758762654376319034251815897076313058533136540360108822326259153276980","18052885997687456239573767917221847893118931129079351417239636951074887674946"],["26687827961139243872236476325224391373029304941565295285103158956558668602752","12712257256675085196273552885501550096741600969113125335311540612982051486412"],["21360001586763742803516695224247160600610352350371362993767275595258673640546","10603408913036337233153100542361636979361269710981067286651610906772683789665"],["19310814390695259257080648683674764761799471595465385492523392495582945700891","6577270968143010315327048708332618847234477869242286666565492063226775455862"],["5512362727105339255061878234090709364797773778937027153751100023246720293375","16680800712587394015679925242239134843869528340539422181349014364289728673666"],["27922243181044464730980136683988700523001894587894673734893450614498364844575","9970591114375381143600959728942007377602158674509387077090223689315689208344"],["13470204747437054669502716069402564084845263813925174875369073016100334408777","9350983622358583426357087810649019879545364677138525678285448051509217545099"],["14788188319022627904427389475043419206188804684574215815818145108461852943847","21214823571063799272107678390282413830429707239527717634695151394062198807373"],["20166797882784358804179676940601685420442351934085909712084410184167806261278","8417921293195928450938589798503625195633201578237703265418970519748108265020"],["24272682252696594641616541713501598185476895168506924324866620736455325786454","15446008449797334382562409376197375025682294196770011511443308645031600266372"],["5280154566638575264593822707716539667030219018053401839033045626283139475497","22160892461005140701697398594266906521381373933653581368022749476526999462264"],["23347923109166418567226530892654213885845555188443914638042793952395605342364","8154225718018816680858705326673787244300477162212845854824114372912382227222"],["26520281313808020228442147519098052798635376299026676682349551378113279652510","11410508909156766080867131750262740138158029388026884421258923834934934900509"],["1172098330089546009052894250643035148684540388187667943359985216712123431081","2604762982383164517999608613425051307453594378906471130292916167351042420562"],["21749550721462651893170769486583737843166374846357551447223884267158045936536","14662492598218748593689054296060830232667719784962750156965681518210937591869"],["5879126264505331429640939461158216231123488049213436696872509945210475449261","8873878081313046148246714925945878686867075660862591977722483929680194012136"],["2413548841541508128550558159375692093528351531291613509293286203220807459718","18480893952105478543915198291586802911789311611476596366627131976907008114325"],["19673670543403095766504710835262126442020095212689987638184721688983982864989","4490408649217092900385139051221241266138682179427468812471932078749663061328"],["26409395488845893864487511184815172476977488350716191755601902611217408924581","14458882757997286578072144880931572772571330151713212401303901888296028114644"],["26994491250187807607833570836703867451555760456165184558680274224472383207308","23567426033076325739400900786535398108118851929790651635969052697162044594165"],["1740064874450386278386909946368363478750382888895594948599419481137701041367","15756671723052283452723715399857760954937596267470415918211051751519443796981"],["5517130828949627253149860286930031646980267130000361676101596114735214732858","27324356856626759740117227975822868195985119581425759341720464441726226000427"],["26461302249311711386320317559686545437940542196181018199741108743434932646650","18229972644371701922435443254813504450098650617824421926818447700923408071979"],["24168051257662608892484034916225737357027195412004545899044024588568204898036","26967085142190975421288460122413656818228321952076391038387452848285327435612"],["15369500548195885507821780187515827140831341281364736227872708394116783358776","10572188825419105903990532313822138755817471176126410317391404307682989265970"],["27469441133391026030879978811768781162291535570687388583649949845397721208318","3222390579302919217719624652775549181742804013100382242806672107851244357138"],["5073101716933684168575782603535331823762744683971405913254513699461429236261","22563247394967903451264967960611737105764926391405737557558718378490948486337"],["25321166176170356767176120604011067513760293074559951018911795341610943329613","8311946653442957038950205461386664463762973234418883878250076006856795581619"],["22294975871522208361292737752562836316679808462694150022761885923851197409314","27473033777840652866332465653144260808977415598775383352338282635409733890854"],["9589221270714483885606747288416389183169385371167669769978212509073809781049","16970794804321123227568433820954134337557879344744981028159735812725549824194"],["17847996236801970326623236325892422847659154410219361359082724283799941718542","4007714791378450941751989918710248784756188307755022240019315258022173386770"],["27090387135014119220774085386126403107754110244101733268158433475341827200623","2415468156930265012307089085604394648001486255392998029969451878517083820273"],["22362135647591311355348460914417797441330991707559941037835451371958187603313","6803317233497172254055051364947370186194596553915362504785602926146263825143"],["7372282617677443976136344559243902190141859413972838350785017168760969894268","23157934480219697140577217337124412247994832929985024824230208141430120680432"],["8773834861028558243264395627835292907616767680825541761476817256263066179152","178821444791989892087540204587314400543578908879129801801753706461781172024"],["3832706344548774453567321538658176201925135426266695809593179074751189961078","22299519027263937462694749341959666732515147004941364237467144886551812971875"],["11320119196014595971653291685604870870400129819660822663589495136686736417325","14611959966107278455156416030599768737627759125467501452945479294706196330086"],["21555722300995913723427377530742194100004433329048588813680209106802012857574","25542808316036870285891902320005072048285475332366015909032971101983112219476"],["8447008359663018721196123295459750560705644841880558213930446088035124045944","25502041278113236617662022975473659030294094722719034437108385942649646050208"],["9300234571749770800013693088849891278778403476271232644887109808616938058257","16877739451259508314357750194612863317141847139987074465504737439462102467612"],["2793617737073387941329508321660186745597191700027099667675959174662244136430","26717619576129233347240705350539073056729933034752118287359821902556880647102"],["2881503762632701444026343423333265051594685495831277342129822079765702688158","17360016368971173936315129973296321425852861768261990591225562713959817842237"],["4533853380466056658679552448226255303368157497605051624827406520697389470727","11693031007370844822174225880613073886952778135669324713480473748668627516991"],["19566603855322497929258649205343088345342535092543399967730066809623928328026","15950955655638867758392791531425691580141216780314507658302899823658089645373"],["14532298613026966243073662127864396898939832024683023354586665088102273537188","21458297284814946074692244797754900691510563115794618726471835599708090751191"],["26284373290470425718267520379878227367181231902666395520741076495783176951562","11920634589301597323979592176056395626421341033017999989789588643842211021802"],["13930536120609781174629089528769324483477619346738239225353154989632324576807","23782162524626858021154480555836350280886808287949589958747604916395599944406"],["6714047533621973352169514739624190043916017571281520694018529136439984429509","24607461890102306990352215357111846040302125147042209709172237537622885572604"],["27147799783835148373493895379415933918472035692245480894059246482978100797866","11943010915025083789875725165379309641118332401032418475314411296196050944644"],["3813321117876569379876872532883776351578993398026880879021340322849379794623","28230542141671430392190512417419990824958124712105347281989079287935555088883"],["6473729106965209351404044643484839273568170477105808765220383973790174194891","27659340955335209488970018459311930205401303623454312907838278557037187443537"],["9641779315172837226813306413478383679356704467623234519043958089677802720857","16682834085186294971330680116139753205929624377547953263611806139195948461371"],["1451531253624545640167092529248665431202618061120326947151297134301274899584","11058827021753449335821033529041550656791673058727984480336066780896986075420"],["27914632172701629298564291088570967606824912765852852550102287753689622054462","14301744039551665856815478810935052113557431402905987345983414821201766471942"],["789826138189855293386266275419519425459184252471887187897294043184163516871","19937827016122284492426047779164927329421275821510036189795400087535059399589"],["5961488754125220206336739582787818426739207976326250939279685647254791167213","1419704479075384199599079260497289124082970029869694471024886248116533456776"],["7159860558951333022826786877027505078432544199822230816707656907216220124485","24503184294677989287608311063540254147348913964686486416290142210865539003627"],["524810164835213986570889017839599222523380411945726688823296195306032406200","5243614068794441970760758895619353524361067526811171450274474992859733670256"],["7257728619099546092523883827511168777688377597440870723187746214915107426820","9440303414431486343190656270477190138817044329626086956641648065235907192263"],["28024749160771814640325448838836555522460160848177470527234624648423538459624","22708714328652179680048872235553079514867807737040040999542363420543083355990"],["14256096569159067459413800233699958766335471003011846902706903069657745228525","15442602424774384318976704984540143296458956717708581263348336520772636156946"],["24997651154537354833697635085592164057143148569806765323959192046021156865879","2204616248960240788450437698790915839207351987161552928713389031852321030016"],["17633758387617140547098016689000114331763363861912145703022958425693956432393","5351023338462211601954840709743653197776025462447259137931967474321962529455"],["22460665493451128912645627410356860576231936242057522246573847514114409979946","14121925887368781967647103145467046020008061748726189615964711466892229806699"],["22295305059888076852510299659520726932483603146285963296493864092130856783511","15943847609506105785570630129729437943344725098812530878358556619364065753410"],["11414740066281986355610359588080366698453947371853656949888370469551592093444","21861933150102276512721878535986264848698354842958566765838536098916008438807"],["11905793120716259887509037398875996806728203397356469731703487245909587630446","9205741704530042231647598388335865366204072789537962194791327173362704085748"],["22795021333174139762974733080153581942750191842216609642659369178813831286121","7805157436535632701918149772087740284489902717458483239756029930308709586770"],["6674006493013226111118236308242925316551291048432703757119088418975089480577","21495093297904464469251751150044232655178279902770918635645211629626361429679"],["27114461767763541148810603015623172617645350856536669344117852488055506713288","10280643676453556300861199454749614733325057714344541775687542343032466617580"],["23968646100536724731878365956740202648671183421872448664578937676851327039309","19214153604363530789513859172721502409114358020785146602452152656553177870021"],["11257312107160624475114370400932356446881998422616024073894203722151307940888","3571979996632824236251831924085361424987755083760889421342086728807184506324"],["5493189356643865481333684805124270908079089010002347965057378458788141445332","16112416917666187560415848251506520619833850016162375660749182940168126715063"],["12306266637963753041831833400234789036605135187101093929471118318711660147671","16723462775738086535196642221527697981597089727732560016833070464480668662266"],["10314053987603914655360737012469611319289195934420719564117777345385506570522","12840308535757709016739521998471105374985192313186125500490253985427337425549"],["22345644422235351229348886276994094304914647363984145662320280532038109440789","13500148535841633731675293448788251241538048676138946590344548202096006166735"],["13259460761876336148439232780411828855161656768608509508690897617936416256376","9395184955047306912201248886841950262459275079132321565155889363627860469079"],["22461020094382732241332138437745616455175199461352982194918007527333451912370","26539294104172125866987618272354576179106140291287834723562593296793587763037"],["25653393579371606876242845223140312506153993277042291395433160654863857791651","12657242934810240024830624164272693390840243127355067633790737032098359529852"],["1319359855972502522227424230151695773622396156207513098679167730604932362637","7881855111984236681972812306467525883477591552111620310010363354833665667520"],["6521379675059282409659358627564590016415731672863159250606336191972169212573","1701067233471893199214814834114490351853909689551160065424962409347810371261"],["26531593868733743483955564384901816346615595667094728621157453008615373993485","17739704632827225575540499149950789091189638872212211003764323169219428343624"],["3409120761345435616468374709545892709308437085364120059127634553732392380854","7512473976698321073213326422062195944224333135701680555127848690507006806683"],["18264558725721794354187873347566282775722761275281679647433298481942009900729","14966257701699260074944060379922713780209782771517545017436992110138036267048"],["10780465175914685476920316849113850144125212583283032870936679370106652447493","2515293661397827389092356080253066436417892281766561524349740756397095303211"],["6272687375763313469364883204674939304748884424419294618642558401068746456612","20236731201046067717442349987838199312909327079625560932596738955591036322248"],["9622674165333473560069183477149735057069665419519948561435419979296376506030","15807741615791703746882408925013829708554307258426937729518062072309241361489"],["1446044954655356143304543982436248602436560527999327949791271172376303791736","13780382702710865150897245053670497883909929914643587297076026302095711209385"],["1155672831116913473871603344919131875923670604003197293655493820057964777475","25609733924955519349291828143919524517655193860767813379185909676508241668968"],["28305529192694977611086026699990122381269035749634016896847007192515921339128","15643885907014435412461061493087077794063666242748753116297103558616921518599"],["2773037692868622783603874266607827795212388621995026425671751023457381641871","1070471978792462437260797214955658820423429573333623073219281728830622252856"],["7718917214237447314635316744364688352892768057254421528060904563796155325999","25978590604303249866663001322606458399749865436162141094585328768856481334526"],["12909320862456655357741973032471974899109286479204086398986146764788346532462","22985916854120425040498909805122131845644841449308381597246454913623573933473"],["23770542234510892379840955855163040888699920113333991437921485315845530461371","15941637897652693579132035904213497287270143522209026668021303655490031026509"],["12872083604922033784037444601798695996518070272694413268063978173787897348984","23597203493202189195512507178171555235140127282391385422170141662231228595620"],["26459987246173808671007299029298887740446620468842696646037954755223685720247","22246415316804212496203579528935241407509194328687138866030643045099789494332"],["22983913936916342604915977949599277233627964302540386596217763257480368835736","3365681683320546201865552736334098744192116144133382726076882426769227875392"],["1176048266610468040408010595347856374522631452651729963350632452697813734747","26923454406291940395235368071062464758711319429156342892705473801001643834238"],["24418337609300643261072894400740512999548739606546601624963996461110728927395","25946616310940923543417087837938721488293470502811150929422725485373893441382"],["3564774129668776186829351767674326974386958931672648652986042228815626153444","14251945674887956900957533264412283416383774276238453904645796404488750170700"],["23567442656736655567137486204256036000431848987333030556152845619630024377299","22610202158165103102243126650217920727315776292112117505889389252048879050889"],["20325123539224996923584097805811019612475868443207549649079411148828043869380","27551457318282090046760503226955648675253155722915882528971254042448510106557"],["12313390823962446560004926183979408471021538550059356530025945946584709462512","6156162327613205017319072271704440861416304043626051258051332121320185649800"],["10828288165830545764857124129076033182072481387892955371099868980380510302898","16083554357904021262279064922444737532923640984580472869048530908680603294391"],["802582867730979738343059536257912390199922212118775718714602847048068889515","14709052025533667987417111596843048689830342348915276636741764824807927386022"],["5860698029392528630423962443846167010291640123787608706162778812724377977408","14561751084740415459140674370974917040970881791142416367748413016645685041052"],["4179605357389538390081880155745836598250759848617803432531321717180158741344","16354578097942454896638483488489969070092057095668058693219500788146644228565"],["19624626980649023008204817047372481371163239928933027405000537680453429123583","25820637583545646035215798851607989200939950982059753963332635719600251262279"],["18430189061409586427464904682236390392685070083596355375841249919061763731459","21944523898921955617702334285081639445966413804844797091421245413519105697813"],["5655378964256395956140590603000344186731711877985856273413412196161736475222","20211357610898669010391517162138448339046389332416787351922157465177285532437"],["19438032843524516916013056762012235744572963194673345362549550216835221473449","8341060599506162236653440880871645054801970468505663894235328042975154073041"],["11741109989538567272593674871099415052586913359088850295536073809148707330551","18884837421145987177884987487573719576198103747149450406307092556430069778352"],["764894639065010903260916772127952727731851645980589017655935125334249124059","21450907208867873975928689020728623061061652763152082135008349512555622263317"],["1237433918685426654528366603846586664858470329228965047736368359790115666520","1203067222141289054298532206315801757818216718499780192898570529101010689047"],["16435352331876592337480446518288320471403599838007668003627040126301055686476","23250398636318354487484124839777318087608415328984807033852958558682951630953"],["23740280894695074887170171860111656802148486204533887043232569914258667122920","12736756723042222433814323861492598498055722759730910886784517446153528169436"],["24844532015822974582680165480996913022845433940071259209975961969911852127996","11714483943339240990755787086625572624585393661884315328567465953273795838846"],["16291659125183472315962641877453340272736609992253375103472460486502167507945","27329793452391174897895061958465004809070054810621271654216280535948088624788"],["14446733485600214703072396297521843198137240640384756427610909018689223092702","25368784307298228594437825779775251833659482423398183635998272687214699695275"],["7510599797151090774717832905073217390847565154712996591176204223166420502469","8756229815753879080499836701171960801361043341214283255759054923996581618811"],["19590581345500870948628109099450294243987612011286814887250813774505220087027","8761171428572515651335301961020787195156646564419017479082782012663470300569"],["21826507497103114160326248007733585633872662137883479031355031724747683627935","19239814359182766624542438493100285809258916494359833296233035800316730836006"],["14021764581601941568387168943250202752651598935325322265968401643126668042596","28881171898923031713604443595244444246519541037799723365253824124685667788106"],["14751993809345456601453661628230680524146628524533063940584895408407168623832","27631576996964027869159937556464497022751951656474715307362221234447386030842"],["8120481217516539411191539685103401227803962327022931600383912448611614861019","22400661472212642049962508852296523810710278422617281054539199678506923921979"],["14490542770478600822395167970404923762472489854356419973799197125149200843290","3679675233291537061853434448733213794703520324347627209220747426088227448533"],["9098735848302910070354558839509646925396223170054971830492509475718349660833","12445971690600617590359683603754471109162352919421018375221245642686324686319"],["4677743985275685288119206640882691526245078797543553331730929657439642104442","5499514855598792462943982179792827026221043654900941925065472152443580236448"],["6985475918595793697374202918782243196553039491568474642731860341560230358131","15472816363282200044473248811933671400052162037716168872492470940662039917156"],["12231128742111660921610406658090314425057820636327741574709665338934312333745","4606925131704729171356077222943717403468145934364006506413662667862322973941"],["6399582149300922635653048542533373193898008875011767845251936536188880989894","17993534977218044342135879365349697088575016936000584036691684922568797320640"],["20421787562708701492903102160543066155383699364868487927413889246451254198787","21285940554369931411124576234447474466789463398592688810116445284860892475667"],["26196161317060127839715120735688706094177607825347793624408057637761733683245","5257835533871879084527374046078520208101207125128650432308148098516665635910"],["554475754103077063957418794910972474022590564321850778577663353555799798097","18386432856414620603002833801631669290776002946358246929042805657634660776419"],["15972230064818400842386364443965166995856682207364004662134549666685538242582","24238563119753980526078283480995452699434252316834620640032454355651358537295"],["24294634486661075708680369343994339059185434021673855741934862970330126630167","8063766679953300733549532642038806525999566966980543889446024640781538455674"],["28160448837031582473140126963475614282021147377575189165481082224123336517216","10927172070698235484625733592950497288453612540249998370077137121148160777575"],["25066251799655055799224615778344470410885937819818688981660935526170897822409","9870246715473829877746559681790097695196215450402731267135257368655994108651"],["21740828815873688164730090365514842633492957799531046021905788247271423469673","22132474667873377349315658958363489822951085364242521017232164134486570799771"],["17620723743291647217315989322441115810657672879599059932469369612470931657671","22385200238163559637247131605560957714976023500719179617715078748423917268052"],["21877232867401396525478976923934418696519412368694861979649415693467348508305","24520708956160902459234600617153535336209925673202335747095198102818757140110"],["4857654560155434585580145751332420543452490998539274679445754187617563130467","4415202988811244606559559512339246698342992040196676445652622571461077609163"],["10580759529392480657980560829684161171334418772127544666474735438018636429098","7859458298437640028441769640699890297326452120048675395629508500192080554989"],["27632174462887794173436677364185835913418419746592340324035626550958339895069","2255565207190450906771100955347685181246323452605367837211579128019074382235"],["20254811522425430611175449683260204781431458240788840221491571424984382325237","12909469723941774542200479729110183169206108840044920390337482757001747534480"],["25613418429388766134134557574283842147840673504279162923421193311583679580847","22493229228076720493876964467328169030472466148080780091271321612935183702703"],["13799034270072084427882965249281713160146571091344300100352872376683938574395","23037146620050481959351308946473203188888121391001422476680299350625781578432"],["18424636182176523831176401033662229424262244399654190482928075705265829175463","5978269169496122543859236501933651284160228258346881459557496233275370990987"],["7359721551811469989333641065085577786275610834944368112637058267511937454566","16802009142605507854587883064453858573548149564032904776118716341643494838335"],["22900248451050102521015242726072819888381066339647380136983258287175284195246","12990270464461417793962238042386662102266892970441963191213466713760552709939"],["22659614688825649851208491620629827316867487478620014158984816122576740637381","23866833162844704054859741022159425688337692982986230153774191564648131744348"],["22025629004265357479911458868172688769101344280994038166166651982727054361325","19029191116257294723498365292769434497832927477767211456887527753716519254338"],["22864570700706044743791717119280822548086607835222974267416718386976798372819","18035728568802439737186167706859125921008525867035376765368020664955722079197"],["5893979773467195858291074315193446402850275437145380827487275662776658134954","13756084297301677151737805591311979221148214629032551478523729108988131981311"],["26614775631117138456686970280821712874780722916065772430998967543618535573956","23913735721802252321661740247227700412864625864169391620523269481277700063557"],["25732202298850145575686253652166441691288494892476096022707400913383407613549","5868681742763707743064527874715488734551108023387497283158952953847634922756"],["16037770780383214990969723336010688660957628162941017915141028186318371686991","9056571705048109807541972970149779405132837164780331332724291367535797566108"],["9043451911047141643733588999735511109934712781927905407399214039011373077181","17534099157313609140061869933950322066090466553728027195971460521892156048866"],["13258801539465839599796601841631010314271739607995930231859070213447686445084","19488859663257617112636412389906054931321807429193307972392611509895261518374"],["24788994459526401002644354564450656076714743050585193167506281592268387396263","19394819570314032107051631482017441361341514783649661835806843650401664135518"],["5006589857985007604315021355110002652226211696309416135860053096532334061380","12700146383833849381035660552342143794259378833796258817624471044884845326282"],["5518578123387079773196039461871097592315139482307125882138768545848212659924","1075429008320706128898822343215709289810622165769330926075678058714114678145"],["11919798168035469444174616761445686031000003782137150891716694464287058331434","19900791392301137000550364901201658382321700216947832235733541873852056200171"],["23364912249854656175892224787196937119319547674608829200815334178687437053399","508321538654588265982591081176667355725633249579884363517304359787665362765"],["25037394589484325667109936049215698451585723802566881700708766023409584504503","26731110220190221848366127310521416268161423575150894493461044641840361716783"],["19372925835542974977329343388686487581384559718097433893893981938278997295038","26664195638527976557048772326419832148264975471102993289560584123330388868005"],["7195230176366096939479599761000712881055069347401637039269974350668449672589","12341936520266617160459758481027575376385797807488556256295679783268165412160"],["15507578108123060043249923154067684844018401816650806076718444419526833121584","1573838375638049214493128801315424855300707598854893281094616661443542627638"],["21346501288118536180395772604344922748278220474316885575443352006211483424123","4906494386166023758417553648726283004445769283979779647678057740441667050569"],["28746805015259294672907272619872436298720485735125234851370015334646901825746","16225564251787348621705134109654474131498888792320957657187724294832136645246"],["26826512525690849396778280443219283711853279251469370274001912687444142800999","1782067193190216074577308423976479337762768993761525987702719783124765675329"],["17070272210483031421378178876277776790917162135323299811012345073241849537432","24172901993927817239711594408490466616779723299269538477070527430886745723015"],["422684326093652854800500282760117143451059017146598222159960913062516372841","27644816126719762196182898606181864054290924259084410105593378998446696088768"],["1648760792214000981969220654719308319124300354753780170693446087904344170752","21876112297833252057659978646338898535725598763058876689403929626771865154468"],["21209556020273753752951145201278591541781965115671088720193407274563908944305","24894349935007437511166317958998365398862040171586696245296173212343627412938"],["23546382439288121881997669442333008997462119634749013945283466745523575131676","23468622975996182627099109217600404780867226439719597184256770527882805645621"],["12951286381957890081914922736227107703420369010753511065684341127421889254362","1154278638089440753375825485501894164658936858809133188633210869419696489617"],["23999172383267217117108708027949948888800779275645821022593229228559326618320","22340577196119833955745625840494091686209124774114806508344865714659828538878"],["21238595706115442110161378899175324193031028291444626989969402083673125024223","6097785478791399081247407185882689338469857756577810252877020966206733662703"],["19327489005362400155230052474136954049534334438064102776969503684769547277391","6709690777694106927538631364634571653794717281808236882736010382442304184454"],["24366376100083729047324081448067958750799042434791865585262851601878187825041","25696275876533231464432710865545541097212941591530643507766453550017939339144"],["22433755471717769810367951495857618752442077548767513114564574992940277511026","11737621438219222144913167860932103094364837008859269971094813167249616344281"],["10257211372263516191792831198523561414176078143421891926172921041749886878453","15894347786039866955344085704635167762030392343107473872452860019602497250730"],["26465984194019187896006288357142552374648621063009453270627848354624267688918","14112108675395642338223295683198960465316581028900828807734519616062992333290"],["15154549386412765955884001238881797709406995892436503954872791847849175212922","17009209347046824551457065174716147228155711753953153401452739473599020597396"],["16684312674535626498307273237692974843431849472111690306680081938811489771908","15256011067500636140142266449782484034822957840709915476330733823493062752528"],["12718066225016613373289880125958759131500982222371621587617118505247480853628","8382976180250662310228553612522891062158303682980672463037702059861230141033"],["15480766206096386641533282795236529573626763589265095841640821495707845517930","9976975977562273900530381777787832456041625302054888495629931438065396145815"],["13102699196576558176858769956094213658486984690535830760739473988427418669237","8332431114866133744552185369873604456814558662976457396246557423264566883779"],["28280284624841031162221693381028461067035209692413537475585082683666396866376","25520002328215761429045809743304684196191750300834942043133984766889184803144"],["21342619990834193249078523542456994817032919784272007813870802870165800490623","14660720319272025567689027303593153090654834918967283094299028997517262491335"],["6464230129231169904684871434960568087511075726426306221181113362708588377606","15485297389551842787670875557898452274880733743775107459393999607227796950699"],["10310755456573279633366837310928772999135955413913775657281265923796866377759","5391253629379941350594797629905168434227065142891046525409314588348866778092"],["10137797334560170142138798895944608635399390321356046566742060682817622022508","8304410932097857461913975220603243259272891193861632741942632386103883091347"],["20045933166843521723883324638526444672705088940280080240222796309439198397227","22754770037014279155761588122255026953487988794131950049851986596309455823808"],["3784498327696625617871420603496632116297831810813934818310363939916841039951","16846040406739620417972660380232314744362406994312807679074887601388330489268"],["10795902008376904432414017131733366653477567659932152011437794311223530524463","5913861046518787163212588521503963257921442833537578895876233158724049789984"],["4004126658756861314378842617253629930788165065307479059917225594367248413177","18316720233146140970630018079574688678109201139594172863158351371021667345683"],["23892812999917730919472913774112210276548327746656660791942627340513995308069","28182916597307577673924584848307806521848810431329391069436512728048620350686"],["20083457681248514516138824349130577839514534126188506074074904958327584040900","25899276900923875218339668348369587981390803471971857125786337733714418461341"],["11210307260224773400020744547545638081928750158850808301418072800296981749895","16412848903003826534107986836495091295082963009923157688755945633522623956996"],["15188812756702680098038615396021683700912945016995841537920240812073125374960","4450151263856503649311063407964210312843389239897304024660122051508281570067"],["6054231955518226475194223909673093110116677463331642365673038677491149698381","25637773228997675855998749149698901095175881523634404581022938956900166140293"],["24242495543090258357060940078343402373804218880397907972899800403140366157821","9569980902041780485183113991072249437876695855206892676322989547291762923372"],["8132962467069689610605737475379640018161849389441975987126320311989796272570","22738219434249074743580501523371667745566949507864218636277615114761949887301"],["26421933517627826510823712346679191643219376389680278951354479665256807880353","11687718405721214967698206825212524886463562005075026081537012129615734878306"],["4993718746627103582700015226624292896600070991297646246587735900218855123433","9494845757762906718513500125836710475166388774263618167272552309898274704040"],["17290217917704528353254522150744391572395150820099872403134337157348255216204","8093688048032405949607329126848103781345400735173954943777186170006179316989"],["28507874692475174213034651604968699151470842761506647746856839461885416276318","6353390412171457874121703125357209220145535120183485497662702918148745790100"],["14052257673848424074079439114741720989200345660588814637917813765702637062249","2592447893191544348851448952442593035690861933023305645096080520222212534499"],["13596582431201292105472716905498246536306344122572159919795441959858261808970","3620593716055860718358045663173928561281861159870689167027698783326626118049"],["13720387670133205103468740110472983113355491149901223381059264820269973934718","5093220755450337448242000861616911443262292499225628015406653523442312939977"],["7600120336617778539800653767394461766720681339954407786027294701038608871898","6042188458460759295018858864448637452307119879479780608679360772334440814016"],["1456890484774925292063251407513595394850864083703707580807475814012793654603","14653666941460407654427948178843589416391083345353664526406235925139171643579"],["21262002135111384930275243519106118606252319880482678609340768263326497540153","23501986051714591798291670013747117016491836296345299242868810830074023148329"],["17594941951835692522881868480861149301420416303007398448398050798788304307274","23905379056152237091615207877980679441010738913058117558721511912619167967566"],["2302413164782919006809304796340204655345726940903936177910372216597041242025","22915836084817614850850899107108560964887837719395492295774810872247111758216"],["3645157713201606804097153377774014457515774956267850219735592039158397700087","22258755722609080935143680232663820885162218347180894409231755226185632611186"],["26711746855803177602239072113827019482681750678264308155932018552101455542302","25500419923151230304523079167132231188994496010887829755409986928753908586165"],["24035299016657332537609284501080667276652174480749923748540194072943385751653","26805647116612162541189822399735179543678085171214692374863192996135707487240"],["26404989933467685875354160702830931462532195189193654434156389057117599848167","24256851994144702935511151439727158449630071282965971411016610501946343178113"],["20201918169947884312930275690390367125272977375537777760251429433283941721357","126075349150360658224640252262311357787275032413149633984340345371985031359"],["14365953536660227198422071313645232093371956438030364497869631572716403970728","1840418995401666234887996398288010404080949177906984709916859327103824484401"],["19699158409903496080550002163278325756763043875267844173088552872202367000976","26268735877920454255234320401191511944102216560281728397517004153001162802030"],["10378276529695928148024164804047910761854142923160483030084634888724211825904","18657190438200409792112125307934070572223956795147721165951290295161197259526"],["21355426455819982923276155133021472983009760360006418192941079502013680375335","23625989309442595294555040104520850472139106911070778747330926962669327668601"],["1979336804389068311366437099295034310779263473575280197086068179556780923196","17931336510968597386523311610365512903186622647408500615307229616750857089825"],["26249275141139631366030880433282465275032953947651373794236130031717546141478","12816332129657146187521732029255662280164128551880957128622455941499697240423"],["19612668797553840961438674280110768593224239860150004979463581085144657646863","3853814590376740320942290442230228842338289876124056143910334980766135327298"],["25677453098719687678878038415160233615441146566411711824565736796435621008688","4912765224397596883915180231808834176239114964979301351362757937867912115458"],["28254093567531787826374308584533771922023818709473260866403899187152190043916","11027778401327339046330268394050679489868802222989267730387115924766203133740"],["26919918006830288949135000453053456677506199806200294348806680252493735847058","16947801850357902083852638486954139031608215338783958686838211589838510921146"],["6857187190533680403917904871105803038100124499351616953144361170199456484649","4665047254430820665154393087796601522814881719041847886686415759074670326959"],["12434806898062727493059010693429596280355294214904084628224276691619156652266","23972541746587389282262181975535252912665425026361146432961464293282318821165"],["6465493992099210360468027192829637312952326680105016874957532301089128843507","3699362905783593581598161769513542361593285388250856571960981812483047377489"],["26680514456605375811561107175824465568536600354750227072457554006936148346630","491337689190802914526768521351036136241774655973518127521622328568626858466"],["27783991673683658683160153582977974855477646189765723298210092407693610964648","28073059236587603953583663404170942908474398100095208714529130998018455127492"],["8404538049243717296652798964683208556435541916183144436681851608023432911658","15817613403870818971841594187339819258994230887201671270230517250237663031641"],["15736985865684268915742514484070348746908940270667643215866232193271334967486","22963387023503309055895502092998142819780869711472338561725826405912631684267"],["13976854405828173446123175767308137767246404349789621958402861556995864759452","17139862883206310514060574531128495733141280491704235876295816029524444109129"],["8438731746941925844521416232610255290076996700557343720318096351561749730385","13675721192581892108306939951653590700815832130624708656405245433786032436431"],["6427316130254287429600979530843385227624575421899110309849730514445369807606","8350840526776374932192777021525632624489273699914732976911823822196210395489"],["6018044458360441643361148325267186064338228191284104098777278285157457910481","25536371006689439947636141423555936513801588258506218008797062792151017486134"],["12213484222041491842169980212325641180797830238902121637792263524508793450024","5811862885396068045397483942908277279544407982417956277093334455861232772598"],["28782920601753237733464346247114695436245864020234412939849977134044854204747","18633673547813033609868705368106463715109563201716574105753643821851035776520"],["15912834853246856036313047329408420251911227803795322163832700740624687391141","6318770441476586423008184197565774420600102434730503953811325817590440200243"],["27732881461275282445524921969990617694925657869339635195000450863669584450409","27927505786207861184147801053862042879867401058436880315238048153604024213016"],["24740202565841913427249427017345510022611305813184685487232252289651318961376","13458024394956024403282381625696033296010880087258703826661414608848357087726"],["11802089134637479759886995939956887566825585065023321265738039025468906871591","11677360252173802020039565369656890671492254615947575518591119734221919279870"],["5062656742012008895052476050653952006703806574419900897748885493971571924046","13453470804345097143128716128483072450833480952975149687358487783923254536979"],["23489915853911715978748932328335519805645855496916621403023879895267921536582","20185124181164028275232658757453508618134505560100678159610797092016267401342"],["26689391529342616509556983155081736704602076441702146860069965649031477396449","21354353832587152563069664446017388774143669519313532095400935356395271359999"],["5454264248465783394322755706765085659141952510523627776197018115848230606286","24465577306988376837107285151217102293468803514460747936807655981309664031072"],["16080274119412503789580400613162682537784711350993695936505969133746351312097","1174965123321411596793925320429232003993941376673616232790447375308907839178"],["24538394358891935305609041216216818918765945921335837417678266787153230585223","3763818587603430229439219192478770475163996580131938857118126287969309027250"],["4871355665296287096858703905476766498649856764631569150764433200610449588952","22547225607594647283405841506464716081477554822107892855826035323578785110187"],["1343335402209618600552550668515208438743552850252965620244356772831871872153","7943035471920524518578870401039771923872794122607067910383700657177074467969"],["24443419706266676744706076324008230855924561606379827463294075232135644192818","15012730830686766758172780567340232938890012184066196873136561114722922848591"],["12966404432894388854314323364038811111632765413166186949439480813493261309077","8035236975894444699632321642338379027153293940242836581552463779091007976338"],["3164006750920718771662949886370256705039115422526599075971595783735655552052","17236295191747185735678039571289329920593431733869547515697583447889698535075"],["14731573885792036430939651395217115498430559965370404680349885289625177340903","13456122754229815278308012655897227649728888517202306068172172166202946032133"],["22332307833905366885426116397892964251424473285081232671684675644345048282265","2747110498205039257241968253089450388617950029696185575187299143920534782705"],["12150320766198695399762842282039804517423807001592668891350121626726722978819","7764076535543174342857928171318029427987664575896531991691487165945601358982"],["13091998031097210253707365869364385168850248176549037239059335214499724467134","27469626458303132941802710732366015131099552846483185481442989695646612523312"],["19839553673684041304002402250576721522733251855366185813523431492344527814945","46046285576917416800961406681941811882277059778435067199677496338059256702"],["26783335259844749349743642087685132131940862879353535714879515239235871387391","27260135382881434380575079093655290699559920293958114717364883787533922797769"],["7006588074988011504464500272405881638915161522826347365118083235008119255136","9695065720611605866718841729606796695606585418494294024809547844498711631149"],["8490447851711898366098639943554039996164339842676108460306338096552669113474","13417947691599241539424790172369204202425738657522140800339123728651297915695"],["6289171001278329043179517014051543430174305490413163304636072108465587206365","26556982600697880175472977950793178170887221591530265034735313200922814860718"],["505565180289537186166537242111266589774473923675232152339072578164038339751","2498474495067917080803201950063223675871998318467013877498015039448256349360"],["9001632463989515843289940406710264028872567237019112749216756982072932897883","13548074135683503875974976710761264307411445995964627790371620546241199908968"],["12551975042694509009537378561992987750617369752603463978044678844779360758827","21169602920026000259523345802324287194298119310726681983850727830191070261528"],["11144612598220287207259496711939053732286108283689396150839929443073678439469","21523914737053279849608959681695384017390274685710520932550762946510091332239"],["22509624836196297126924679208786238856966704224415765690824021589465134694018","2147744956165376552909363835460511083068943902917245731667152929536066282350"],["7648729855616751937278780604101053157581558547841038359464788816398825483520","12092138317034278898323438468530613551488982757693390645599076336703211249304"],["10649358432019624666321074668637041980427408609288946297035418102674426099530","13322879710113738219579746826370576548095308880601820524137207754646831535158"],["12208866024434236979686539990606075916846558725117091771077142681256450011723","8329563340689156420587352106759702893277894098311339392323562292548992735295"],["12868945912664331274176224388130653831893293250196088780692327259015821639886","753968220854505936793696076996360580911390603496373790942818451640330313741"],["28854188050131186175766563877197044479651816834649242116712143016865197802601","15587442616642636124737939718496144500892542678499938014140252594265335430233"],["15046031665644951123844525738479079796183093240705533900741899507735774618314","14946288077860791880491057993089335725203975918155022084676540381593894179101"],["14443082198401699018818128907961777102447205128439295120907102323883821679728","11935720379123400559612804981646174958472085952569560622977986804666466618489"],["1408965998476957042433579639234362438782615128753724716313420472922541431374","13404003754617903943967712365086773924164491462062743456353794954957678674649"],["18332203455257244670657479315334123776295835593319363757736314854302413966281","13116257057333960875696386084777365120242737874786527068835893398455515294325"],["14645691679150741819932100579994233747284516182724439152981913394186194040590","18424755318035825252309462205551079825854498206279211559016832756612017046858"],["7779359017145403205790507450190666982060365005152481472140226648034581926204","20295901463723256165313282266059136762360672023135510445032463060199379618498"],["25945015000034162913934756893275415036862557080205530502888243714857499335534","21008067401406193453360734416659956707196704525146622445122382646216822248127"],["22697974642377506604572445870625101632013366307571496880851722594330613642560","19238015359416216495893812510988759819543928910754567819824538245740974246498"],["16325296841775299264762680741004160088518252681658950920500254779723612366881","11288137870391834348193050528353616621003419182127135592853657436403932522256"],["5447321972106676744952811017464474048497879172714930475496655129923293591015","19113482573716121385077711867471099744932098592504174119722516753475394541633"],["11286683448558873810641675004455044597821700437399194354747959291426644066818","11787297252918639860107218453898331007533007153199687715158904278959499482658"],["3816887636125016584473353071044202779892058328500817023372711744716111481052","24533462648931076733285888035555441586952930871200321213895545821047659881480"],["6526509851259658185079024743025961892910112319477024558854084982337487302972","3050879575926282751528388569990130147274279785686069305463839716074285198679"],["5475621063975293361430548034208135769169232419501331437774941405941728396701","4575009563053708306291401521195221657460743181935708322683023318318998070033"],["23096298346719078850447040245320191710594754848153085085325374033654219571163","5121181290624608790420993989521259356935748447839925166910241443792866109431"],["4700660746066387149903258678704297130820313724319430304874730878514069894703","28065970025405963023537912190957195158461784319218487052400294727602002521539"],["350054156430638167481835073101323373276230981182885529107067512401874749274","1158916598214710357669663032926153575629967102179282356361389344367100894033"],["5479870873566338650931856185874951969477146837924591299276935847829978122562","16805557145755109048345360200377145708254148187182694085170352646820058508373"],["16611010738811516394301523891130558216993359419042515360517022006448601076391","3669328807441939692034563032849140083973235159082916620003707113805917403089"],["18108392561742840370041041715105408499794446970939268262992237886056894851561","14156801758820543313170288438136852789220061198284620225543596734460321853173"],["24934300771165302010132068966505006823210475984894498887257382272823643463754","25369567146274956341212009399544043999359875019012816496745496242682983734571"],["9886654249510244709488628943714748645144215760802897027152528148370499597719","1680389533396670076688625487653447490309787460513728711451206198083988475836"],["13660701225578690811693036522415923641135335354249562331418498724222950128072","19785587730559540363932893217859318070720300614593309346247983744878815405180"],["5420043376789377673799494518182432366368535959566986447339440348587554515775","982421051620182109477423297850648304074806987311057918877884258156519269178"],["1859824296424897557668326993398239403582656999493616487596578553402307287096","20978958536794366623299466455900283931059414428190723854707941799575104829924"],["18897431154530874190252017821348187918082598282978583353724502899176315734571","7603518249669735080533271190112430547499111051791099318301311165945913137633"],["14585062062170068921861239010971249272064264860747148524111603140767670981398","19585390062555588821329893399057743208353254737688790462918091305179113332539"],["12241759469291018544243238846151350978098720403393067558872338568561936354592","10806496584568995245535999073341522943833239372936072668098005465353402442229"],["6413044366251850781350048984509700003753722186493490622585396155480517916098","13144243872501071164299919781935129044882699968132813468527635327860884923499"],["3349428164711315401798455045229717738378925487646131477116969650047920713775","23675503270137508169221539274523434304408086215344194898900661482805880602516"],["24522347527677373308322338054549225962660718373819446800616144768711448284825","28006960604984779219298963463994777800428022740702407319763626376201332090032"],["23554419733160442929335907266028025622417040911107438307518806399658434440857","520932539812911508631629328211998137988275232009631454126211737312148845124"],["28384612583292845590719333248274994211885199533678093091346318049544410210647","11519450346635509412300802333696614269054142661233871945786159120421622662178"],["4900982303407122207070554931091079792620314956765198836816508771571944487371","18809276614243565631673510559114744054330035472476378127307031222601511062442"],["3343900023953362711968449908215857998536959149205975786830773429077334694725","5240523341182532234109402255086591939958754539080914240010128257116308902507"],["6634668869559751416484509579910246943364851332960571746303196596055006033595","10646611083940575411383700718218004026233950325722604270354437033291273190278"],["11365302174583890596782298156675947840920492072605613305357409546369678160374","24343599391509712636168994460476536266324464491659537575926175441883437114753"],["4658261271025966609536332907580829324031043678726697475095264293582781476814","6866846327650356193425151672295710218323794245253599149522031301757924401550"],["1220288906816994410825291115663223343596378509641438455793136722903430451533","21332477565891807585890788542578015016690807664711459498413543031866306846989"],["20126272869569937057261854016012260084831859776240198526972173198514408403730","14610368906849696208629312012740987713480406761464267257616017172215494529475"],["4827700625250763646860458135586165480436609802637050669492814680162038379109","26710342128200017210529728101278519144479097196476981792630418194249177595382"],["23619145051480177359545121055273877164556656369366618604017610710678266540170","19590047220494293345770918420500977016465955250268475145738693180808108584319"],["8033091912521492355765819475478036163448906745584859300354422638899516789172","13662751477257057193182385933292440915387417204829228310455798871870998843432"],["12310500664050972287096665490811087317428404650206841211297928602290956841369","7008273176661861377599473356467253937249269258614765539466218940813714396730"],["7480108661684208261160917812767830282842349829729065265979997100858613115188","6324516227710572994352404723926100662970275805860376090180443792464341011756"],["25719326603825050274546320777157803411002833840530135903620633282451307341145","3675137640723769061958149268843312072447314516208906590204064008619841561091"],["6734398215689346492473905041795267311402371807852815546690471113716962322352","16155474332417578491538009662395213545191430790670813944954786818865442582894"],["9943186733521492223776224273928473615949692851282285043219638939798482097417","15162559824147828678050338466773007480666918829992534096840107654994247342341"],["8948108125243024292632798903103346586604100707451871853711160619296721549410","8749734831059447684219324063404635211611740667607646635287230851525343037149"],["17431361626118506384298140688253052010937077284920339346144878173584141061458","25327135741962097556313774132397351019476371417883647464168373458495677272950"],["22719827673667666301301974018843107406683145086683479320319242864559238402147","15777121429917518603408850759079304218890818967553043081675547629609656701992"],["21773217192100703368247734049255398856670908269476149813141481371486581700979","16337066882335770257772842802356652093841423277778107674128182804803672387786"],["5212489907510510519394556122296713265137646380108459011655809256294525445514","26587791560965199076024957103062312259415554038564988388111979481610958540655"],["4096711014938973519375758582680355438453389825558373919648290265951773046530","18652697132784387813418109961419783805060085807040325267196168310319479138749"],["28710939276195736056807385527701691686601147702694099518948643570101550922055","11199432180719024812443668260059080626699359594377713489400808005934126916344"],["22756440366180868022454924371121356744762212015677892780756397059267406125957","9804277803134353532309703424116777922700921663325792124748119294249949722505"],["24445918912180933715128158626402095618016908901450174901922747474456485851125","2970004782053750026892962718293473199875169378472413933123009892548750623568"],["22227811555292402523051609850393765097207721490266013661003698816784959872074","21939104702669046090712890609683800891453940897221836171132065655938109992942"],["25239528011171613899073604582084886912650770438150936893399328355106565291610","26094777642665084705937528972851231325468034656348931911922716743151901007338"],["10873834145794007181711409757057049659357970438418269447120037074539850786938","27199949851798014717709558244645263097823284577756632445795294172142867968799"],["418196424868990350300105545327502748755261156255585659150459369198490661822","28081463379503968678675283725751022647511471744031795187322653787095411392888"],["6504283953900258887194486977783979472516123414195555771938177559126257647438","11660380503374319043070088297612669015841181538223874289664564029355446224180"],["28341559243245963564085504626638147265118762905399459930540125907391006010079","11814767028980273085384590924867492050678653428099497909505903502484544716250"],["28430016916538183898922024587315223049026550932785692900878150688140331495689","25198284194629379627423367990901944600372798860389808506810123192666819872899"],["12792650200497954413599004642099071393025379698398350139451442452388508202757","23618765939109917581691510887808623137780492943109590096982912914132282471170"],["15323155429009935944695124544858124640827017120217328937192882837267418389770","21641688307222895637026865282921950924397425450131200429870399791734103955919"],["858431510207161255440954628817453367032805719420736101994841617017811474654","3566487137763001318071641883739769863157107824836725616684639304555039440356"],["27592249493188371041002260074209625921195684987125099643155689447591960383072","4167152334896986779571974926606798763485137389932885591628885603390445036762"],["24095581822550843129120477465424050829129213564258437621840491765142434364531","3420779212543349523630641619789255838988306922345992040184607538344680265760"],["17020836636103035652986379263653533859956862812753916984536695831885021899341","28668968766832747820821439650658281580076822445260195392634246384832563053653"],["10702811948751450015110498568598279200813920346370626845944701713846653098834","13708847819087698405605982663969458922714972852838059164260147133092256647749"],["17906829604839669043392763218894521356958609896644356130929152327851715889449","13519736704398845938974385693645070546956528759909374618544611491883716379458"],["10128330406471115619495952658382288248311820890819083551450175382661080428723","26961390032729560699686671259192533454917702515008015524810702470974578821148"],["19541070069050138135105966817287391383439782717118007304175913105045273453728","2502112669150294903784896068016878177076698080750844905099226027434367229466"],["15177020652221503664055482906574112734076982427658565834091022078745260766518","13841901138116799144452431582014514350200976815156221907544779902453810621309"],["19723724061763242928097944958400682558929775655004364040301653082772962354210","26296445276757760797502165912258754192690632655121419756797457943172481801615"],["19371970202038533333516540482939002097328063509306780063578499271970135194357","9411304316772792707890166843646013926544822961133338271134948203401393738408"],["1735679418662892935331883211708495874889167813708191356980547369166184461663","10223345167272960621464012646477027968326522133081933467449588619246001859286"],["17473395031276904986427862455166360170393169329219981621501322550312304138798","12518326083440457475905180682848960951720300769048189123271153928862191205083"],["18511639917015155893995159935349920665567242071102899647409000323654114470364","28844601640192582581738408374390889661047133657353663355568658345855513825609"],["23744515715442293757881559492628024220086406429291694325928011928060140449298","11825155365669707607686541960952886892547975179185391605134957934548566557291"],["28803685955770910694103615519020321411769887238120467859568662093824946900202","19977750174108209866749571710694879158890089257937448788686109640264543744181"],["7602075329422820670250719111153919813178407094601375566298227444653634980168","692229198129702064272678347314129974189037070499907245206424088157982116770"],["19372258207625668425722602706887615372642179785583884283966920315287835105885","13199428442612949766880911370836800062731890819123885270482361536712648990244"],["27734036314581959972726264099521136295023174939248726089008369203824122504531","12311582134217157088024895789790115609594207537144519320129580481397562042736"],["2773210858876643500579551776013557048897600011188659242784898256967243466525","11349528682805191711524115180749012196452142093524865900185230210937419866006"],["3112609912964589707565184264386877239514770087375904071440192486361966062842","1708148138605598894456671309322979461471404747231762558712417308912572892282"],["242835757947950943302453931506128110087950613897671318481263516658580621602","15327200418941529942426293551067629786461763241647568003911631858228439303400"],["19230264313073716210127221463704360541624700593900600975548138387786762859371","17268404114229570757617087120069598216125886868601510829816025266190565236216"],["26704116771817236815807053337687225851101170238285663294966873586534035341402","1258424533989508221722952650547740165113299498858473161008937241402412780790"],["8265904445982609115755621784250640800138019051336793151181749029566818755836","21835633373172537940913859756011301842024010570246532829472057428329704802338"],["11667511780354495863059897244258339300191999736660087031352495501457156210852","1692148040469474557867328736594057789189834776503666334576120468088119241232"],["26219633052105638931217383477862429062516401613922228060973560103708665685245","22352130315522296516114199096198223487747149431777305290496627519793395160658"],["26270340667134801198776374751526626254274831624819472465735631455830041783636","17555500799972326155351845360631456931825260455194805898516720613069050143551"],["11523978504222921152369106718381472577599098874392435446147793557012316172540","12663819277322113102637501748580247477091010646207371562034911632334412209959"],["14814574867364336597332796716168062957670791978095885778955756457375142771","5165627163943314891974432140412527208364139409622569791344713027113067050701"],["21163846764611206241012869279495747272946582323278479924522525153172985974592","28717214810977491597918232521024790357376250329281125905799411442161804272796"],["4161010908566253366439122451492552543533670715046995224422931780648587615197","9919964076953855582964993695694514435387407058929128133668576926420050029193"],["9078723200589415664151914406581292944165671264701731730636400867499280392745","12632883778695915987908801143628327214167428933719370805845417178265441199362"],["20583388103419518677786894894080606465072966442326103413545395418727577482594","19369414601775136636358196602945692763596216386788790088412382971824860832400"],["17586391263321704049633287206113084670158269391922686602567570771865547799911","26886186474296109480113818256934376549429605727911200264052047008183788608360"],["21981665111576435870610180867801517914543086174734163018351964999015318279181","17367148719579683927491164152008885692054094882363805246406351328890068383956"],["20258007615350045656854539792570339765517352986908983967882792271571857781998","22040869766871450813821427829014548571941435025260482086419324449766730819568"],["13919770252851286840075154018963251848329737453759846979864110368284412145507","21960789710743316772585473141668748659211412001171943058592204930532964397180"],["27878045101480055465079776112452802013020217576538576386618279987987113492135","4032629515074620409262171778537024911989536432243987587805423019727877660740"],["25043876240210282527989373354246053588954798407890494493593125584573039054943","7164760664518387164262993954194585420288033580802944965143761839883685452095"],["20044376123464993157766116271593580784829294533584170270177045383034382553145","15850510542087146151945106652900783787894013836240168664803063079884308467585"],["4906576363878819007248914615450975200076199143531877876426795481445415635170","25693765953372213427071904468278501646370745244312482328252423365411107124506"],["26457573444676046387553399311405298710499069680819787921621011799722664471765","12360234595943693326637905137138404805631777604405688801757256790840749011473"],["280688796081671803296001296652089385400675316342498128941906630410115014488","12350415813720772424415192057784171493901661374962885369722388249541764239207"],["12685145972128771652393798627381660767260455455907683832115344146256361126353","1772588252556416839889233205350839272966852497353743723371007104841667091486"],["23001068073180754415902031555415281494813399940607198816085979111510441425429","4260650743424163387729471854036493346148254282781103450773088922905910479118"],["12434642256961641047821785939073974653931723455550957513928239675031145281443","10468113229911420301388839166279117723418976264067743714606014354461823340092"],["4746730423595577637062162868297278383262434571177768963775619689383866698659","15214780100568506296132222872391682127508088071975092034324109467147792698630"],["26233092185763409712120459343881344549452491696695447885721010727503270096837","26923616988394237027872989745572504529733013392028327664618245397532219112064"],["13642806489868882237231235907498321633964889904845520101247129018797695251510","28470007266589136590900239869210821631514130351594699512177563222300891197014"],["4130613881409484711139936142610983028689352300155158038866334570670014568725","12127291896384845490643922348043821562491894029195161326789604648948605158583"],["4808031144183896759964864451489504517229736327210489292398679280609019946914","28620406307493289498716372088863696905829149374081051276530023832299347782724"],["12307855416168560464629250295680341644857552471422742637076514374284055990733","15509516832812761775314574122856427215155871055208056421576225761285803964183"],["22158066845044949407915322393034983304739706383080705455926838706557342850914","17224887586119099946906230774869486122648471546333244651255459577820451334321"],["15754990197550623622306248885591758223882073317273906604166665011593778198730","1218808854279895523919712761872595891288192404768155535373139168524737802345"],["9259756972529973120079430031030489834411693000882441721081586617224569997953","11847096645140074706789081093328505578938387706782234053103827685624414747318"],["11897225104008143373435140031119183112120717753858640209449303189118200536201","13855945451030160997770020957334270902159508996977402832673595693588104413277"],["6013874689194102746148892185464552912561160301230650656370788050421513874122","26180614393317377661308573532990582487788067348033376304089296888476932805863"],["3442351116902452466785563834895872514029657444799306333027096760467486888044","3881325845940779028076233824138004616394543358832916604075024266703306467639"],["1141962591835315103036888355128228679155436750335954519260766102763250810692","23841446831277464285322380126937024906167952511917428755042099326830686247497"],["5948897602776910878028912268304499210939865143284231892954538946547547768441","4338614847927645723060606063619012929695768598333491075890917639859052541293"],["20764603129476961965319655140788953505637782540387009834996819044845396101487","420499201065992256729355455111278807324449938499429595680483246317557305231"],["1642690798969020066404709401167059328204948704898223744504701727178944430971","16768750544248452359091105402834037054007891401963070124645812170981283915706"],["23813485744944858038506758259114823048688149320570196670306010369165590125645","24213226024922172793234834802482684214410938072426833397816162789504601086353"],["24666637152816628258884668610800475692970531393197780577456477984654759200770","11420423911243554424731904324881992225562946524358096072914371670016995009165"],["27921313176155384463335991703502195238262715860576843975754381963026682186162","12556722244538275426924106815832747575037537635849367549029352593786724049078"],["10238329461446789855993078923860146333380407626361006733487302380255778419746","28017939942193902807018388262617179079468357682490940280501015712870882316639"],["8594259421482626469228721823836239164343269309070233547352748315129716401134","27872327252953816529211528243184095691510478717535941433422632137350402658680"],["20544615042641818133468620617830707116481766836189438942859000254161322974952","24058563053651360675236447636590442584471395096386366294291760127165225241226"],["4626000296193294238829013205686484714493017836658736266957580743963596580974","366805058222640879480908974579909882851204228388654798095794559689224977704"],["15357155934381396227796292609445010887185035891419650117428739871074598559117","23171961803849940074191637633546457469966136400604511558551858868204516532112"],["20427721471176803649206888166243786453722141454404636598655761008788850623002","22254045035766021602887540804130557712511264083418031977996490836039083597956"],["10989007154102795961797654050041422398160112498697965468202134792700709349967","27961780411983252293432822133696992268206430302152565804548151086627726711954"],["28833127841144618972217240622254111828911657743618138987114637561667659005977","22970128053385749612470221613121307489633141681971800038724954484216087021029"],["26866602412879289679229852087757150005301776004845851533256397121671232868825","6266904944674536120338972026289629471764389806769649266589994646006078497134"],["12748750677518609225396188103180078589515906724369539866432709279011047662427","20735618623942594225473416006463139632573877801638970255323326022018371578468"],["28096207461385830268807957859482838272952947046580937210701933548301838314372","23784156581986986782011746782305006750003212490076030994152283686558352714690"],["3416428859323159295474828347639765434670274669108232571748807715027676159261","12871424037129381480256920919891219520152970332021561521243340042955512811725"],["12126929356029296336022515867984116149384004014641637314832807791576045915653","7862248467792530919464064956931955315093648368178851424478911000863086487262"],["28838901175768088739024493050500560410500490761239928216310961254518678624","4862259277809448255627527649160140661540355031860495340285193308927221681662"],["23867396336308683436372405116550412010184209046791050531193870841899131794515","14633586281706692382388062399849998822244812367776654530011567111828337263666"],["3101146438768936117945498064767207881717012211368263072552650360196433936779","24964796490999477252831722600989157743594775361519000666323936910429684195738"],["8407424456675452088228089981120227292441078820211304375142623520365907047943","12490570050942566192202277946008118897128730127116894244085311964043021671160"],["5305838303187806741217997767533514804448212125291261060411488827263139217247","27718263494652188044235125010940452397277795255340897057523947431826617154019"],["18630403095541238146546086827938626209636655442101162235794822524155998976551","1506801003680096144411719730843043837562238421373051572401152842573585813932"],["23590686503815535099272532232149363733712866040079604355507290308630322765146","517809376922782285618711169883190919900783549304318758059578479345292206606"],["3111979788283798277457663962533013218612710770176519507351120277480147604122","14409389248905960015227841508383027642989478845846289788209023554647616263372"],["12956990376373514282662682614698320914544134320508407452034997944267785463162","10386941668186694566342527043451513794026942568152510399682005338718417602056"],["6066353837998838695470871106269852427944484858840789266464930325322464247531","15367057324761693770232497740426737642323523633745547868426032796026262304775"],["11498523428159918353512624300178969021573252578709669920413409701628692883966","3584757690193157267074769046486543832165989635522345775223678504430546583482"],["27473282128204929105246497261655736481910352223288965307164621528756978687055","5616130586604768116990014271670302662430621657427282077392449315067655501692"],["11567033227297661473224492008559375634008271765600874182536480304586349445291","1563845259012822200105549638480605864812496713368793691480860488234396880142"],["27125188712718075299051496363633332847793763974587102670895052625988276087904","7955056026774571270796717500967986037786917107106849398749401683485401943578"],["4963470533892334750400681868004435102826005203318871353564565085227674635886","26106817554536038979149218266258537282684966280509615946710544528487072755188"],["27656995642908347448892267686722429955638989120501705471318809777137558342092","2389136851270967488098001142336187866621031313565817443039204280780743109082"],["284341055140667359031343750314003018716408469055632977386680447033829151752","12043968424447629847046206251296331263841086523066243016247493321796441126177"],["16234717786860751543760066178913554857258921511726470112478890995609434355272","6496780771163627854790134519797639670883819983483107389377576848238577158702"],["5873911978674806465458760894204484835643505278847074122383741739775052888071","13561274582458385295438089650632488051502378116496067033240564783412028849607"],["6701702908931445941817107871474316064323679998905617145895282050184421006983","8197107184151433397600276693378241588071781114697435591486765681179307320607"],["27808773990385156209511068329648056794537057869642158850807926973930006405556","10157939795040569893697633898421004544469936983963902277836387622363879517931"],["1880509363835274516710185484903016877399000463732913676880866828649798358219","17951299445976926142075315369799916874846739018267596147095403892038359582465"],["8982595943767559915490039281800178519805561344196129808296917778683713034926","14683620623717217850274285710458236355802387451226135259822119027153634943365"],["25971875179695757196782471164924328159957771246522285274059139461590358847953","19825261481622101326442246880341399083365587393693275635452803552378593923423"],["4272920670592976317293474827173625475417677024382156674056187191543521889018","17352610371223600641535944235826165430255415509785006325125473526135215632405"],["2415049960374978072089419086299617104888502847678221920733294019611154354404","22358743964689663216841703629170472352437565316676449413434495857932780882703"],["27355597334492051070989594227690625355050240989363969523697755026684174606962","8378790873658120590457905113377665527550739779133194047949754015844333809119"],["22690918819262138387784075352208299050131884772418090318093568087616047571166","25543585744044555862599570699473182246144377865633995936724211511543707356784"],["24312327253345097707270844555496562659987480990922423930529905035973039573218","14837975608057502934742622707348154545067407526301465861100455798984005879212"],["23562838879673688892918247781448676469649119294754594150930372434995321066571","348153046419918218217141238054799802236527322535327645840069797366828131548"],["540769912950054289431102628186914483424125515366153690122904913948636176450","11273130431272726796974110273548468883877094190499877382186988730293997588400"],["25181027075234700908662866620090211791911099391489261993891494832943085634009","258124468705526090312141229397004970151343036526404724620178673663413815458"],["26159874721669045031086094273258014719351996792754698987668360200835384572931","21950407269549368738642241447697581111001557734829117155543123533752442947494"],["11578770961852452660123562124685586445881857618133178759928574257266999295760","24848686088178446205405145374380854879477682903673581588089798111500018782597"],["5626175743807779712067005364224276940267649053509931353094787189382783490897","10893934611560489883257755770442133652781117200183428152791842808278000762434"],["15928008446701862982359194875916282065030042825390254803234498360486179769970","22073412445472510056137825485579992906044398421017745119409714731127248252245"],["634889175766941414816077894501731111071365154036139453031243671716763890297","25875561508725430006804432220432857983630603018142535136716516039152187581606"],["739089585055882041257762756952896779094086487432192038023888771975597640674","8330415588037482251775308912881412244463220547284856709245709386917241606753"],["21380804858019369946276381991752118806703240048559427265683114252045865135861","11189813517153004841960114697648093081479557260060982264624684118592877758522"],["955632367807167856459803887400769117861490907958046554307550550903030089009","8951339193858174839235366436171557837265337668941025309237281686477940117975"],["865546982856158330234311030448934805007758651590610464420532542849001157894","20758834442303492142111892980759603131195283628540847167462127671318912974745"],["11926118054672180983386014576448131621598776630941653751746964644455680189064","11756759738600158165080791893778149106464089702630991943072289918418255067751"],["2821891230196736436340138549661529322003946443355267584340157664152332448738","16750457834906753260625369078840043678175025173579385211801323909235491060321"],["11737789764315840952602877794121221585367973531189354537747079701544707614430","17309130732242849915533292392424406504195092584907896559711081275010164890159"],["14025942207639017653663758244353850243103608328227594146336892457134693222516","9590975338036705221915041961174883060970482567157179334772878018506490368756"],["13402597707872044769299936615598051317535631732057367417778384592934000612016","2363495755576547159833130193981902718238353147178164314505005005707058124530"],["16534414226515441327668326034993964684433633341559868892548220811894177978685","14056584029848314605102153367955146080054397167315354726456983346215692831946"],["5723708000031670023896109106890835783281687163254887740136723392636837365837","7612875351957992567168459487086216836506633311162698325232153801748810194289"],["1603159758456519601794054970460862696027312132881481852530999631411885713902","25262659701093583753675711404343480569292896742075465014330861002529938246220"],["18841041568224364931119195850111049748673280743483200274086354120913527487768","25408832348185522227063501808730959236454015248222389488554121498027470382454"],["12311749843425983946722301376316303580584899964057544062614269488321300260601","3633140887494412342738183249532437825380310836972219255009020539404577587518"],["11165041203727409071564919430445024027647169655165122020540700999584887401155","23720208604218966802061632715188773476233976938506245444771951826909443684649"],["27783499461774763664982758341175321019769903799139399809933474378954656540740","16026058109220672553327705096977580653408423441807208966003715239427752925275"],["10638558670758844350886575291192994278632355800175869680540321330265621050282","7591341823505503092515215514824163899382303262498354104674323741212596815973"],["13359268605814565824941103341798740099580489392310346979896779706886193006173","4839967312896872875408441298729415210563110398456810204312842102058557173207"],["23836186637987528938189052537614005237710934400013332642038194517483273074205","11099329195311776922065768954814849967017188971299581951599764393187808735171"],["13516020506845323967148487506193564567763233222555150060550070337871465176032","25361227243984934308067674101965640814943449986073166526148756022692731950564"],["5429734661846265265785952173134676708112204493498875919830985455386779236440","18840304019328413692916462583740433075363703320942971130412039262608083678073"],["6476294691630437821538233650922454247594620630248598639401117994385534756523","11306925523378521270461887923688916961244436875120351729439371103446997705819"],["28393029871829288966304477170913471440975452192428838114029130302136503612273","9028250772873004158188446602169219651411986510440644603374845889842291010014"],["6060128511921578259954026944428750229804662875132800161147648997883972707190","22074473670594511033474267287871046736051482031417096734537903233375109614620"],["24399079012337915840381941156705307580146499579440022414694846461764143585490","11129544703768673411387782591347769326162441389549396914554980660810777453868"],["22738047389761757814075447815717165243316248838112402685143509920251945808031","1391106857170739290152040574530752754314490767220442137986753312858788073841"],["21247163781006100302493648954660419372550478499147223735533320435604131891469","22316815466446567143301768619982859489972468215162610807970897006047972993670"],["6960872138775212580654320129111728858203444002282139746875253643829938734124","23695112466141759503760340201551763419529974371114942662687026892554783028200"],["19996567387622320037174813287978650354046622805004989605684124345104353341932","9772888789133993205106051056054496324376754129398295568800110443956114782118"],["11165814133199774925887120546561916846926266715756974209002495981868531832496","4320105580635747699234284063416232330698990087968621035123629595993299132056"],["16885017055361602587441029605625818340194783730677140091223282519356127765167","2075396694279565636997401591907222065259586400334753671615834272453267316804"],["27004069052895115477374021728978331397615504752691628035922799445171786493818","14793112447928044058310731339766547810062564708214432948140454602269700284011"],["15987125139822930312904905385766526145488021144256399501752898951202980413818","21627319240895586828188680299538583617862011895351775420549316313522547843171"],["843905399069985375626430858119679736425503567843134594918951310012079926783","16459359552433248284187238482785450626207158714000303898332975194438280029123"],["24198413121072607613191499575863440494103410296698815666654701930802379332701","15247153526470564601571378690883916631141000000402800479931870723207712764749"],["13143862650863237391460803454674226667478230422331327938302531796738459454388","15324069292227766034972428217103150668472506422385313391467551857413880330511"],["13572150969880757764286723238785011185903389850196492269374764466341140765971","20108700017960744074952291887594109938540147736112185139311735762702204054820"],["9547959081639882174668903630077005661415601481212516851114607719436294928575","25260821638911278857670286370997872562064171600607611460184610810918975260523"],["677528701490214001895881139984567675296161619926805378147558647798152120601","13419803659733587269467223736217225994442543817024522824731529860824673120392"],["22275014474565276981355076692705387490310508578364499780017520708903302764718","13508555893443643246201152219203612283575802326834062689858259684473539754521"],["7160961106035011730030015326311007893910449007852046053347889862380514562245","27091148950967859311530051632452402334661609987726179282576173471172387356694"],["19643908395138076128145771238791819594972651917073290021844070438566308868977","1791454988797113239862899612282446222068339884799015460057051166604770862731"],["20758614860393476647139130899432416804444148703707871380333255929751415342006","17067830447377412798632218658454801457485387806824958177275794194879946953491"],["933937866740882807350701535637875652831953679158045361004265187375668738300","6167299964759329121984529155236031436501004090395969508425420582234476679793"],["6041170526077684984852713075746608537803891659883138649379252926204502716826","2366098700722333757871692937622333055101257598402504796980101308184092854167"],["4196221270547747275050832064264588453013728023499931940727787007162218049104","6758414585854203239227794515596370886239386736575622105867088111683406242772"],["4635252092385361201826781502676572581839767124766628187158570892318134993848","18782366931857334121368122166914514510805306533076501257834521269863749762420"],["12498365151602440963727859844002922715982125197236115913378946161458105354362","1381688329691896336694752672013386137015086773872662960458166641086625594868"],["3711237976720224967100280982379696214088152766259869674288188132183036728113","13795956920918087996511062494233960112046924221169385449697777869646044393078"],["8137810311620008756795826857260108345826354635972031078293412014351949651566","28173333584536525565391456950650320863536580408369867583625208318049374304214"],["4543059461314278802160238128098223542513705856263604898271626997450848970340","14936172715831964222070905371588905142377482540095427212203556178850652095588"],["16103872490993390756163660138956779425813853463956897097674880147278938316457","13336600812198752031258509647630760753157392762332708417808977480739321297235"],["3092977729627185249512689414338822464500799307308603547516844831270205519504","14009503895403402897765327090158619761632452006485810428165507501378568968550"],["5926345080289401436428777717234915342531527533247879194681371627903066108221","21839854278030171144954850037328970196283363157337869127719194813595031293057"],["7221697104918872231016347663886081360338286212784021666098404392148642916797","20789269608735433546258536692054951489009823865257094388320494466647487438143"],["22935220443917306183516966783701192180589133603803034692224213180914285798073","24351560183008197188573717131904405033123886995963069523742020667136368907742"],["22015601449941521365364984576329176202437058400731966540155624040555173128630","9124315940368499644181665359898757711228223017808320228424057077724802707919"],["27054047989674688768742050126823838252206266959890585022685380849303185905715","1234013230347359075230630988107183594264168658138620323006080988391724085061"],["704348897899978596605924279587222062573217150380248129992961393302892566034","9484109888716320777145338847776198440091271428131079288718767064783387805116"],["23434356152110924882712404013114608172679780404229967492956861848288077734473","18010752359932067936985109286388888323199384272490711809671788407743323138548"],["16278667564319665381709585946371966724067263203682608799914148787236796034335","11368939811690587534778540438721208309785108287904575841387406443408606762596"],["14666355942192923840164971775550141854552103231454992051533194007904831341074","12987839095244611563675776674924030597139694552232448207150944584136740255171"],["9073534018458431396916015581270293383038722300649326214676317264518991087734","4825770629720194192179174990907426044184965962653046686811624454420924326973"],["9490247822910402554035411249374206028782256989407045062834070961213268324953","28806180305390291330934945638359533165053603691936418264251691726442948419852"],["12075587900429450798795263111209187338191588753997122272392822752604041637706","13696088301465962887583460222408357376307148012264696969795033428582165872258"],["28319359262199892269058209855448851637440097252187835145246524507379660675423","15755244801982369412152905706230125011895684361873039734495842694460679453366"],["17595796298895590883672220195176733841164974452293693366193215647666034968155","3450517564548424833906304931516295658230030926244352629783797437802706083529"],["6981099098216772121917683132684860825543051452450799779088041616361524128381","517672885207641222345974316890940307084374322877390980965671507359671891377"],["28246456514491113938805138650727749201709677614596628672288483088165786913033","18175651436098557580286373511930870939497950451216948327159201228378070870948"],["21185166852935516917184445728123528012987458651341487131573783645040670395475","10117934750966028005762991324141368532297810433003227928624466354556323943730"],["12996763213088655562330646185064789749470515057689775887547654963220292907696","17048543156823314366761022534569009330914899523590988894444086914739802420301"],["7199997417013107577503607774930806494660875492525494708391894197175487135701","10562875461041758511552600090185271068590877805693371892743944432349468491586"],["4477857982570066935467189119875171904124360216865786472809006765398806124367","16745165914932915461919465154940237822479004254482283018973870257417507836323"],["18335008066171179281034285987299045771419743285126870250990069925957033555678","9429320050269666916412610693654952547507454704804790592944524298496736292954"],["13885246444880897148964369937240562002688624773851603373290044631097152457470","13293118852250006798257737264036150403773693651999938023417377360025168457987"],["13707838055926201604200365054016283628260576698342923810910197348710839151309","18024193899100257821478450626949868348357988468722514264278171011924607993519"],["13033119707482425008764888680500515821609071300767912052804327307352689755484","761298936901038837141305843037529968967084574928546062865807943645611525593"],["14153453821556168636492480904755972959359551423388648523950411458564280146506","11660655809912316190665773313597683660216331366585573438342439630667490152140"],["16214456419907811270889201563805073389455863388794562279860805443560263164785","4702381673520268268645413906881513410940810030658085339328963851097375431975"],["18834497877416677177249819056725834998781480438381014717699229233858254963049","26642741488405746130877893820240221636788617169993673254389664751562827570487"],["10187532776775333044813995777040364507085543534313876810420218906613876913218","13847413530281946272050148091842550076666113680919442800211909322205715953400"],["12923133235876268907071238516075677425310808177534272850894712844723034304424","5736734856731152747315400851626757611376853099105571215077842537691502896316"],["24527200066608543884583612175362671348185993988887156347843806236514129512337","24588983388591241031510918913331941009501809597852380852936549262109764031918"],["829151177469429691605879636996228642192737752673670997934786923623885764476","12316545677993413264175702085885116493374274340788118749710432155661139826780"],["19600437102220154618192920112652435066123049755326204682294186561303076634898","24616829268696011594485380793035750291195969931575777025348955082145639662582"],["16947243222238005776510303165492559785882192226217092917536005974932144779157","20699460088647862788942199381698955189807776988152413666474015944179622246213"],["9923120913785866122889672203574688204875034518644640024710891473400701624846","2128603472488487542804319623388164231691891545722631672431740664001538369451"],["11659752854390261932756703738445098608755277512865130668036309687179306204537","11320200204357525714393748352848367486476940299568098865757503999372154272048"],["22635210567324628758082260785642027168891932830533511136149771833428173515369","534285630601460614655083659542572140798986356354537942262432919518740270589"],["22263731194400022625921244986881720060250913501811752364688825782903062391696","17609271571493729212171885124837721560732066704323004168098117997942798136751"],["18492603395404305067956672418886134727356307262264864802443603249283103824588","24349630156576098451643768493646881641459522388173864405740231134072775964499"],["17324701230066839315132928402723644175827343685894035819963650664225394318467","134452832027971186248112525542810222284174132385860309894784426189727540284"],["11245407697223896543771248976380511905640498423383865369721538249213982959833","23673712587023159396729314245570800176212500272705699006437536511195867780835"],["25549265407575188005301916579484838731259854685784483472440383307291811929302","23545983569846876586718834053821386215922439610005851844534801916425363483322"],["6773923635122056691643064410763186184368217968480168211525665879943399800626","15115902277271444920916741955288702127847090234185268124950003446894680174252"],["16227081410656757582692316642471615270997244969705469635205480799031715964607","27172286151176570486650270824125268561950990765027057045047971964434032182619"],["22143134092118475764818274747942398989156546522725770433918493192977332062504","12962596407377330110624778009359040195019440400801194940053714715198416657633"],["1029231807008433446471009104253858791083887152875287386474117757840383984480","5336810430477643466073787780146178680225420558243467329294827047115454822927"],["17222325854050274528526189305461398960900996187694193763780956991170785154085","15871494072642008022686352066510306013831743804144365214217171268528413374300"],["21116985183097873114348881622947622051918609092948719529519414793955200660847","22148920420721894691564008898984916958766289647976303745007034314086223431965"],["28369971154625279428887046037528217615306411359488813638586769437336598923025","8823931185857123628500640302380888113592980410524674696037103094960979265789"],["15256610478616372275236504476018049634646859788846298452897437316085997424281","341264139947443762353084493005612550083931933966530069313237469838231272653"],["14409903862993833667882426326090337686980286457847690075563387475145409853005","15520380547945104068654464879473994267332593011111450448961642836005294120745"],["13980694459787811673884983786385445731377124666682303572517960864933797059474","23893212796421445017334178228031585969215416648407548118143033665544331970032"],["2262875948146627750877570056363879388879794580899636921663098780559807457418","18619415644914419415069691326615630712749542470388242867257933265422485441177"],["19638558036529742437771803491135797243907346570851239158466362254518928735609","27414561193191467822112582110971678739866819432461218919083037350395065944429"],["2837486094347553410535050668961505026667840724907849840293008952105688647532","13609964002588505378153027555082638317435993832674361400454557002504427898135"],["385517111661836624142740258893581713789900408546060997647755611817834728674","7032900182611338208255687708536131000628629504934326274193308006086730727532"],["12123595947379678883911549949022334321263178194757945576479647604275582776283","28050843707815553325439425954669009213971648560805379473849799407947480178428"],["26769290488527146993610959623638717660083304423606404752863854467780360072109","6590701951009223215174673730928459555361870372321010782562025032188740857160"],["3390589794931554163135492938704542748168129003212369641100866442466075952831","24727570739797134867458962615206671134025737938346506666545725663372057842094"],["429986426789787877083138616316351376445252916173935216604731620704373554171","14167016768718336627529036295986050954118816250534770537070371725097532583349"],["10572547980776275798610492885087809760805008414307491158233000045426510026596","19405888495223304271606570963823531888052064710710468981596803739322839621939"],["11605476350025473442312450993641734245090456007419730246394812095236235492311","6307938906340785005689001523638989971824430244619086866584114105007449617695"],["11842262781722960579246889952482755989021573963669158893855709492728159033751","2387695572729395408526899138689736881968985178119387245576348759074776359654"],["18902862581082133816897603247115717845890925285546491900957897627810849404892","17557497720104598033026578838715894075336006620808188536085281248006237534051"],["27036159379975180122207902638152651153568920805144961792646694599700694560125","10851294758947851257915765905086381100610464761773449074421186850471366767139"],["17535274772232838553908071698591656084853306519711724442010537808273022816473","2944826141497604889767377190420985502819191427266107186136006439263818582246"],["20843057265860400328096246249350805795010634860549759071992113388840903165251","27082186684536569395854278053069198418141037586579286863339475549872066997680"],["21664155396304222954362437784456980126919494067044950441685443249094201717139","26158964747903179071230364837237297263567500473808451589733050453738704759013"],["16506046972296097788026361295584274084891717882062313821677529871208450145478","17739914647673046933922364519997482686626738141600614225190038029460680798564"],["2100109769705107320244960920448646157954631391240172915796120308952050066336","21726120189860316938831704808122047355340564575844581521520621580603566198784"],["14072124053426836814177099956491175994136281750643934440113363606735827703943","20213895906450759202242430224665808535337274508122226629030709902755281050723"],["23889511510419851262799723089391421157648688591134786599237490556309556271941","14249289120098004553186124195758314920418984266920674967352498442900956454081"],["14139041705166917930351930745419901569243341073814971149619689714400310422149","12097482026451362071243637307597597367509025006708181368685148056330427502576"],["23553718752460481022035255775447762095618154054808766215579898844010000571881","27525555990182778301359010447946348245861213797218451565162274549256385748010"],["28768236074067263897583897169870379340438670483259146627272587092439983348356","3663605962187880660984431885124418082630541528059324914224029667036219560375"],["9762217512133717757654175741517136702813813731755929792762565647677777599309","6639587749771305154183411853951088793342339192046440911367136341280426753698"],["5757300909283992538689335969068522132423475581153933171758959240127965789060","12882444809554514193108665143334888652427380164114736438369247474643984434756"],["20922986360077464171731408944471831999953917468555250354761963774916370055616","20349853940484092135806565287193494436220219998347114301328122439239496018960"],["1010442174711473820218093680562411105617560132157191739845951967310866376823","18561296504293011368025667297930459622856516078715146526105400947959263905759"],["2976996801254408510865432384155064383398704299545825522548950876194336476153","26572114323476365432248997430033631681129560193626705167509774997849281649387"],["26666893661996466081686985946641046157099424187137621535001879419229736013726","21851600923048853875231978226204101002101928544710477763080236172023511870583"],["16138097897944329704287997113726485179923775538635907793489524564704122160229","13579284432319859404891448026541604143470455689217097391805418225436525041709"],["14455578148992103026285593717218272660679883705264179994706572012376746975405","20419202498466304219173462095520630887056189707695662252518265203202728107871"],["17714541296699340708208461014566569081924383387449852125426586626217535521126","2207434758617330404717944469756029598245136945068657910946620328072326438025"],["26868395248439869812533147560610842278648590096017707759570207420342708523948","6283340690815654804741615539634069358292272093982951643417780850061102357070"],["28066868290707135944187007904469770786153425179748296657318892645551731343224","24549138144770522431205482013340812183950950375381531028777950389398406365563"],["21382090715744125934377593063191530745571982671025974749037889186674358741753","28844981986740706778250472438622573379843901171790249079228724982590981651349"],["13483267514721229902659519843909827696292032488567911067643979002454286647960","26380529437931170324659342754117108073670023321574213701688003849886265177313"],["24577847099032210187302601715017014071027513718549792223721158926062139747208","25187856061535916484624320555162384566618921759039309639206395139535444698323"],["25835567486807356858628138477728875971169682472198566135018480786289095208404","18481226039785871442921426275665177624198788974665423615848900874673820211249"],["16052686550227633913938972728643542096679090669096933164135731941207036498588","2357376458197269090329601521011024901502622349088236464627042704414116271097"],["7016284364060849221798479312826786360845703451479296132449220125523023930412","2999787876140885797988879582564972435107329304687089787660597824501914143628"],["15087616580892513999225514740025091384245046787840529891218984728280834297897","1691322687076077286687093527515448224928219173218331284002178612267581708738"],["18033868952924210988232118478625332256758246059375262780142812396348635714614","17322901446204344575052375748597413585566692156543993619716416164515328896723"],["8294406974800425870441476006359999982244894423609178034949754462488884385023","8165945365345167594359932555783162904671223450614534346713964595896396441907"],["7404998155395684769789221053014006838722175772629440450683300505584755271660","4370958297780576094841067059267954382980749591412702222858153792024978388465"],["9230513764005903051302083430734656351613557707864909928082952581517434795051","7948187706970334919929525368340638577037275100823030232022799406656075630715"],["11789047085830742168294111643329199296848263963330226272444891866903527182660","4599325683946397214157795637551418382521881376107596633497373806499115190656"],["2052042512438934212323735481724640064812164764227353178126038738991469058063","15831965711780099239622336792527796985688113307125651300101661040491783337556"],["12663193504538556844937090926405409761267973559302261757394087919013086759171","17503888975177457229207862347945771156719740912270835220079307318019253124553"],["14143160909908503577922984307780544589166236113252489587090263624100917396829","27528953214660425486183576280485169560458941168717966811806101948833447989784"],["11904488436096389264734067668262126760285647810451064172880854623989130722674","15469979370755387967534483097402251293342436352680847204561419031611538952418"],["26586935870538724304701518103684496216324049130590587687520803039022885800727","10998560173184067939708500729572418701250747060617572821242715490074406062630"],["19528763113903656737295639908871661937042527926929755880988784142885625968954","26898474827441100400870653910207186117097990007801506333013683851135343381069"],["651089009262704935644552506899915861876373217642079600942623314288397832575","17166013235097705617944253070687734060843317115870081269557254218994267554171"],["24799495714415587058543142768671488990918945227725122018377058159840356038717","4872331198272819588822850320424708109550242819419580460619644196003901740346"],["15059964243454748898664632670944090613267744908441432091082458685767755820630","13205453059888955934637998817851433596896522280791253063080120315640173129050"],["16219122088582867782184407340091556936687267586125977483063722681537344042626","12800343884095189487104247171449880707483803474837194880343944942680483642167"],["8819092000798012665376988692241384939784939849665597423757017437963932564423","14597311783972846023458418350024405199309900160042518260824445354473597995407"],["6366035073354943716126039486944259883395200215404682461776121709368617105727","5044936332191165988312372659116510257771537234659843768365487302040970471998"],["9864222294175049625065031891540631191393266531339711279518225686522450430128","12932735367038668045663877443574411559521072197678930938433709779460938604359"],["19464029962697294743269622219737474146952348462502109388685465644587756641988","18960496152044918799266833847417886336225679297340399893967342966130158512763"],["26936423541170013914599918289864347487371465989753484113656374269954159785010","5140419377469133196191707626621055623499244453355632274061848951282450933233"],["27114511271689218478641264754266802439869794162134995500701697479889257631852","28101683839998746277599040606861703016754193326888385757161886416019246939567"],["22603804867680404664065201756130451950902816500673999511952128731699616830432","630329956836733763464712191037662171833969819263827548439093324327898155612"],["6257632171579811735169783381009858034180791559079764112601538247579687640786","18188292957131981569358087810335863077825099596624766934978650896834664757735"],["18349860055616986790194569744656939576545312533738825026662771161057430409177","28078763293709906875661125833447416278715049036671445270176053985029441334217"],["13453472027624931388074493015909630075623222025858776147976494039169874591497","15885258145686571121313344207877876772656213667718815946024209758304200037563"],["2815778535452020449924048080349972679109719349405848821094136128044259107814","22334479046032614996056531463307310308827602561303547743686506572596093028862"],["27144392990537064808442407014444967272733245087986899065101280512675770928954","20154737931101494713332360236451181709402130916561256368098445486730759550571"],["28022223656432126718717444580078575579718725255502192114933203879471989697611","6191529928909505819617358051680822621173894551806143811260949414361739536981"],["4243992511006099532707927435793686216662782503171983891453706635288482237248","12461910437650925711152937078018696353354806281398536370427787364469188582027"],["9864958376778503707010155358397978647088029372791015256552955815210896039106","19106084945937086706594064026994859740220343813119728591435377398656621687936"],["180884526030423970352518206278629534405089553133008612836014658574094766249","23615908999260980445049289119566662934015020222439263227827009401346294117"],["23383311573803838096933483761557551802689283359499745591809385356556551571527","3181675697872027173277788740117281286063230805775213708452583807083809347486"],["26856734376066292065577837591659077390480973287848813712593768453189898478433","25366297649404618694919509423386588163739091338008148262256656458428030196361"],["20182265002746035337355106914443133075826592854406042905902699658531984033935","4261038348999890391743047528021918652106423899543552854141831915311489675546"],["21762174186355226819522196095032947583849522871010726883963025067673743259270","21686143561782125311875791401922391010377450566851016649476951196521816445517"],["8694363353011219715760364490164214926677824450543230705913680717378179383784","20148392608371717500658357442251771433435184829595568207549740700710699623926"],["20762089079440689740078332465125368952046043525503802187090524073823613979649","22962827410482412390573456306693166697570746670263762958003383781116979540939"],["14690778449027040663436586038750818042824869772765216144669851545836179863323","14673261761300218369636758996987677919423977713786520730564674697858818111753"],["24225817974954259418332020947594047891327596743609497223002733213583455698042","6660594533366895183847226551035688368900039153288857665598461120874094238098"],["3577470913497484564026711795475661836321337318299803476950727053303603248409","2584223651008460091761262148059948409906425705897199117734339560062306151933"],["24501200706642319894322795057983583299872691888202333297437982845018555097001","18676201870865286633196402858514586356498977942518991572442922800010298144000"],["8160519740109952267669072722007476967154495535631352974848351876855569789414","2173302308203347686897239861471207446248788328008358306523912764445260531747"],["18242702094083041286299559095485850608099521673197437166640192540382791892404","11790298352723505279271182359501943527606877406317045318723244255341981455873"],["2844632052302561645967024330929525515764606928301320895096382291874358233377","25386700526710934121452657360143582064992456614683831427391939239634155095018"],["11704909461503834983078240299517153587363055821512644201542504124413955166880","2786587263766905467465847765105025662810921235607929380602391368066138250512"],["17638340588940037893053398638306381874452588128748834654487567979445122443468","24916818354993623886750973566245499382951189265885723143546410811263763848234"],["22082903659079697024625510059267052984321786934570468778446710047461319424902","20230098242006055554325368789374800478785533404074661959787437234563365058306"],["129445845618296214772028213501880627761511756569628060669853479291684084560","18673309659983911404317710092709032526655140868408831290435494006749739742032"],["9297635381014329151461758585369725130078716840229441112253292043461356308638","15908633643946209612836503422458727992852675799214653400790484525260826857014"],["26885213940563208103656200736357950736238829705861296125499130361727605462485","18067959644813279137586295598414010114777676353692482379629380906571511554487"],["18606811698345572536485257524014224575301901755274558323974011901353498621388","10985823024336114239817557189039237848619802638187496190642762762109013561885"],["15669603243287150531438861985639763772118044220937487368136497756279295419775","16248611546414644753275293629401942523414799740958124858089480956006513003994"],["589586720034731311389247558573243942220166979311565967433919625401249675943","23832681259803076517924692719708820319533990654480196735996496621744605393576"],["26548108351841919272054332845380925003559541680702253336514381007111037836945","19833843266172639989781142622511961098987441394274617863396743951852615226964"],["21545888052342954091138518593429142626198205200298768545287148939150802693352","4144789538388416810125565850498039686580769031217265916373239133188684898042"],["16952643143869012399402923538243629834460740849373545283056946158814376578739","10483579257950430747332217712614555133164739897630054154537257270899245988020"],["17801105955777326333874204715659363140653013421500844105054512008029998873551","7280649630400874202560903881991108805109954870469862930281025147869746071503"],["26461764572323128587969022275079304125349081109017519810418464567660717292223","10808073179321050740608677286560844393129938112869382898218310778901775377747"],["876389218185715541521451757874414622002723657214612430421861538700478441230","4820075919926443439995431740581161561480145154782346772208838334702094723210"],["3525672070826760357332958529880190828890250103692729238214010523911253663899","16742508627062604035055582159861337497480644938982433410763879243108599128420"],["22968119746860902285476297420372352814490557950989597981765754479468472329361","26567575949743111800018836503461254279284006789484751414718407134857540429313"],["15268708010831128943458692568778289271337092542159246243506013771939617580820","15854116744661404532979112752034030065497096958238513434237883368399791418465"],["13119151638003859588066948816117476187752698204730006867241670067146628196064","25591670645243267239385769994748238593113437782083549728640160772051400850718"],["2486606876609930999865694867749134618318205221060394852588168309597034753915","22036017159268174126760106512078352221036880322295141842718493997948526742035"],["7841765371250395403693517575721338907318559613046675956360787560839658336240","23202692184831210721048651246326447287778761737516576395631511573650926643918"],["23952876446098166514889664206650025104379131437129798981435059986862817132839","2131485702076905482049198999092418301470363646959736804820299798276322155844"],["3802786426490708682531533064765795510065788286554268260528428844600337427657","21579887970674556060053456549131125428901338219451957359931512721490644492435"],["1035385790712931462018165855734948561797821639813399365460774568664466541399","2564739811712867437644790355874902929044586461495917026692227839929595590839"],["25576615006690598650110551974641656257280774151929096806876514434406073717360","8080800121741146863184233911330253467164255516437423183749483479482156019570"],["27589816508013565397188213288205225044702352677734105293987341495663344113209","4432719654950875871680654944657081850221743483930071915675740327415792688374"],["2753751174979728522967431041928469661963175472111540891935092291019755859634","20779846277005573796158935297766292034814788324731629561324754606858064317362"],["523923971968928724607392508030354598361273242359958657731616130419767615198","28606997311679608509093940847017566080270348821417364124720564106186476666102"],["8188157864725362702814378651441342897605564123034680826677940101884475885893","13605856128511141045829858239726654822545226361907513029437485786194511962187"],["13659833736994175446003963872124680123324716905460664470019072625672360395670","3290712783050416063022197371705823181178222052265956748421056398779797034454"],["4729779598210251247743434768957707969582613629954635047011539038817976986167","1938614243936125041863263707102126586768204796146475914162029410438135538290"],["9206909069904273951674669915646497580818433321206827794350077871556072691768","2512242919486723465779655067947931992863249141813043819330529924388510296403"],["27335514292249617698679458006565170331644626468808275574549476120312544003256","8187665625116770423560730619784791071738505605343293753354306906794308508098"],["14261992759669732190272143872706622046181928970451523092264941648798549088948","14042261635847004691380977497459900294197530254685867177530353366057393096127"],["9161029985829583809753491471834069804783623732048144184458081217028994086779","19159726770570650495286812153121478014074281791032684320196886776160881933201"],["11123114037023932352592384904874248821601941294483986278981341652438328986369","1088955041580749916681306128110897560084661553462507674764701951770444384240"],["10904865193513992061723217096650041403744124535367276455332922894068528321269","10076365580162992371811510334793876240939953425739115832698009069951708714579"],["10725148323559125514115685393351366938442839860147675793973805416931190373432","21815376240225829103600533160835001702918959064079564369351071816664073253099"],["28712697963932059800059980659669523191686197957046101045317552202335404255946","9577561721121963645711413305448006899438039491649532088041383852123324447722"],["25607181812015419360959319914706405033431371956318636056209875336083671238855","13685007998110852566780000041487549068620577371804568258005496223851586791820"],["24229715077261368958666056583386171292537082148578435376471168600175741720187","23771524370908280915185323597084036803650948080955865654737676711182192899916"],["23722851325552346944168177636837912550670235876302162890674426784470125431987","13080146221360904043626739210524732348796699068213492895397481560724149774681"],["14696111057694365173830544264776222890989442002969127499166508085256015379675","2780317508275391597675960894193534075876714583188105432481795888385068254031"],["27420663347927853397719531375712755756474356402665318862956873316192507020978","14959988261906326550512080494607342965430249366111263363394466606418803937340"],["13213379277901836304126517346351683576064442799810376225289743063871327520911","27440579125272322195061691524325793756727769286644800456992896079813924693372"],["25678021107387931342410056442229134047889128193456557230987685086076573534297","19934613392734802613660635956971898550034650904345881421206973291240129883926"],["28692036914130834398578545148853859367525475138868223563309716100402017972397","19099212763673778865984361271156387524715506522853839751637642784846180541486"],["11672543599605900480800817916260290704330085127695829826866986618079389940453","20937466149759574150259648819212612828676014996866846707504320615620413684015"],["842841562963188424436846793418692483259042291750045762830023594257085972422","7890532756507545413732086864956841805298475638464118035902296967083569963377"],["23206009618401943916623043242615545206691109414702303431642935202595701985304","24022011451602914844337859715015793205361004321499577459887548057071007745134"],["9609008940112938697191672294607203618749820271655769284233810563082050213369","26828894041094367247755100247123357234869509877846971230729719655704810766987"],["8138122136021571927453449598619544621149778215759069899815389250292992278978","5748800213139757211676070519157213288348128662276156278545363465685009300375"],["22787914851000792153300715017596342858534364213220590567285017968886585356466","6105335857221296188260994496224530665525151630605870958724265717290235347654"],["8065000040552631522852154771236328873123171252293170542240569139605815585211","16847066435532601888338850123529492057118207385762802145111732202564002255335"],["3646699110486233195817138110218848541238106750764669380673901444902461973524","11707211886118084708277953686507585864522439953814334367513085845196329454997"],["1386738363604274555007534386949418345336584914069458980890075466419848519120","24007507937775753730753173630790722864898622961062336059139418459887233495684"],["8524172184007767138360674669087216331514837495302980162603696472103268638766","28519326984601019314887306142467558727619941956811040373836773874950963208651"],["18101741605382024000157381594704118077942408040855894278993672821805297777504","9778119784536968760317310464248188022225799388936316766329675963970392643387"],["9667687920727269494515924407915845231118474210216499382358129088339026146974","2636778033415902898047468166034565906579343181748493685093365386263605921810"],["19446409217226842053938260833939108552749126593686347301869284680079046315611","5643855333893137108579717295563006931624958739721798275586088809190570288159"],["11907841846150917657989248645917997623881908949481079658106973547110568799391","13452647126370254309098292414099081019983681877045770409701644096390432773587"],["2272073995293393937506803324330331178676172704978872016207562614866607543332","19564615524688769379547582717957184535498320462145034434608631020899568422574"],["8839045224371410397301198923826195232526846168892100167252169069536181621770","8264620643432180351685835535033530499716711996937712097015773014126095916460"],["378492788283676634658538734145552026947381122887381639667128305787780919979","9776535811505884408516019320314368839430775948522941174726358067274205344411"],["14557027065788673457430849822891585179821471735759967976729436788014803630593","8909772409957675258050483130001942384080495807535498448262070388408242352496"],["14171528894486767773088760846833605215550947765540586789925434538619649471110","1588439866998406801583632410587177477697397717755770966975282506089846601897"],["25690953984354750699657215617124261048399678581772182888659773117693012916569","18972306276023874456068344962250453862827883459299800040284614113522703907386"],["20261211127359782780491482287018267573377923539772009322536490910685020531284","11869148655555042018876436349828415452527472809150346986444858745501088907292"],["27135532004107556180117595585277722700220842801570164526444847684209419112531","16418824961026885539868553192051173812989381659767451404802250316016388608412"],["15027912005438917579681022642664105085158064876740196182480081660804425701980","3842615480135259892682804773589311839048523074826430623550823167380302921339"],["26600887138664823877755951938633163816767044265204066822461178554649463440098","19876060466118171430611108372920753938007374431002667254702435358677424478612"],["26468396053880291059938213184442673304933487028930229810527854584980484385374","22929925284583279218034344197248373646767954507508874749188928586942905469771"],["18798562470729320887270608245170931863239207020962701641720311675091429751903","9736643359332679350340171524524908210393311025479522881280014935320792843582"],["21183059844532862181729425021196471782220320222316128675434658228340921240933","26975788429871352180363312439713930141201398458384763539650851640161167651487"],["24917575497944339881907441723048881121449474085167758966379006427988165940325","3734917790137468703609354133927986366819754755273957750920251462815515183986"],["4247060166550759082158881436226252034239478274591114396768771656560245161624","25688111206644258027234303563498942834380609143168023875828680047194951026087"],["10896247094888850215957360860731140752693324749797766335296096856405553507430","9817625409089456001308606618875560076334986360910874310045115712658888114858"],["24521686685018865555675276451108103444371873652279329354782928633939844554315","10468976187274587918186222649795911952469269284498035372043972296729493906457"],["25717873806076501130594148911477198759801484748545167087975989097589844447101","15851886183766619303556175082483594272998782248149143191556916507733276067064"],["17768201523544626581460023546625733176683321990711177094407958766102789598868","26301160945575138659122939797085900529513647382167924670206647294559742330496"],["5627950409935638100706140935530833594506340854899274573608606588680515639827","28719111630570301407632771574707292720730989401245064390302489811321203576965"],["20111102656650421487522115189298778671183254131701716034216287191993341073543","7387278905495468633010034537107965308528120641925416038734268650598628923648"],["19926035018096051417054706353002250909039939819736171108004217345268623733967","10398240806172296320456546151298313513487087832926396727858519170616423255717"],["8382589557855652887744268212756660317908684674152365255752076352339982162981","11119431705327639077351638534062693616051516390265664312741994388404604785641"],["20037190059473343839429752120023859934559812714886325254665926313064217026095","17265543568329629361038331519813328058706765479544998899570487909648625681467"],["16201590460604515552968387888124025699797132448353920818862124531336600075178","74175670024684164319610389762960902194391615669608141714331359412100782335"],["18179545011812333353382124746655807366692465096409906434836063359121700444134","18507710587603108702811116284414750497518619327997029282174233881934511951587"],["20149747738734780654139025419559713489971705043676170822224436305776428215426","9729420945489382011554535580092479868094056997874544107604538597391265023763"],["6188184324775011908137180908473181219099074165304177329987756022655561526015","11553910772662841757883562517858919934910598484615822299875519331598787954406"],["7019254875871641495442103491786478010864936010531728099112042084345617981127","15414389540710127537331277744400541777968893561672464669648324811295784399437"],["13441562074712512084317568419984552411156630204591019607045007558883283226011","5798599776975373361059965429213680782486214038532885211787109349152775670517"],["6295850053240151305348697131532267244851232906595705017272892883973468587454","20784025090940950777875237665307536370854493922120566684164155181591320059030"],["11418319976958431178527515426626111656370774863823370132473488779337689908807","6181128231372221367089919212926874905511219950554585360891451512030869120992"],["5692102628142413936775391212122599604583075095372371189062463378247226732206","12713777560702593216602992261422446856590317658724953625018751249352949664501"],["23319676429956344582245884869769755517555860764731014881252180721990028789305","492790963020811023784236034647347846211689302263712308529990252286295813938"],["1187487058704558771986942490529826632965721805271354181154206055686742487495","17582561910389113951977449330770872155291308927696863091210354454245187706919"],["5206382014823140937899473902868969203886816388970444862465449321754849057319","25064385956338372914679363804854913261249570486646081118092763382473925061753"],["1382123613644061433006087711993252179104795431090552308556999058775381694400","8603444800363832654176185110760534201496671840442570900050095287395244825804"],["2458301298422469854783803432395585141879614909065847013394090110020513707524","9408543537315977096463747055740391614841591598632582349343374184428942608040"],["9390738683542786722875977591972208352147197617782803625239068961608662817818","5406116939207919504619569303556480001563764440149853757854607921081378789552"],["5834702159248483832352348466181955268320628693382753877711679042378986455087","3492050986160334639964088502054090948799700962787747902577197606763060458460"],["25307325263097529448563098107319993412114721810477162465120531148408464873024","3561256107276794038238659476553413760992775647304474785388259675212968823145"],["27682919306215308167538779741754373107297884980276752661213933975399189171471","23402380659165681597612229599327291792394159250897192488513914519554770436504"],["26176336719024152278616397766032516863408662008638526380214379681662203484370","12701331233489541238455883741466270261450536370134190466965233952037389715971"],["16885562566999038690810270395591745190545372496207652616394118894516367057554","22023183893959412421942959099300395561345839431937842800798808510128651406037"],["17862888234672601257911429110317841541767896061631451688493172131519699275646","10534979736588297782746682922211551095707018802240911361213709342959801612565"],["16409987160406056592898891582654873736893597689849056846477789740543116488100","13636794877105989362709323361584676983540296174550963963309105886581630613059"],["10851546488044568040348444239402592018752804850259091828537497630343261079","307985408193433515836308870501655137387426305138497309436552411034906897569"],["20343931602299264422559969564450237440810478170279909839109727599904704305279","16189053484588843708884458732493808696703008697138585109888140579429229237142"],["13791146530628274569897340917676006794242675267290359766144709332038630368046","644764949042964121414660681063504429752910938232491532943069620103428697968"],["23183050768053450195505072517384528383449526631275244626953137352539200161197","18640502202873803931434642114624852667872567753049717265424145459155313032739"],["15062977600139878166824976511758212303401142438943931165305879165059868713675","28732088442639860272645138946560621907182033953187858357816444189473058839492"],["27981387329978483195622006692974805047581770151774044796165071690452576558165","22758167769764739887888716450281103416643569718223398511437585311185543852717"],["9051707039922804460419685162311228758121398199062065730904899388470882706184","16327441650093847757340664972957037471714042185192395698077435683823425197030"],["26070218123071453579123274208193705438191657635599510122002252143633276338400","17947840157703275108851811416723972880259428963096351229653041397233868068670"],["1481089634523221536213389971779691927687159092504450105371333126059396779390","26958056063625553248692901647357707321310199946628268623071384589793931712803"],["6998455682358166807665916951092657343481987699841267584769173349879083257154","28851252168263968400863543549737825061677660472217312864280879449348940556430"],["9802862277737734345150601970457221745599002895526477809125113635938925399282","16802645734278385335289593539871644318238967540886026864457292129443207361008"],["9293475295469116770294117334727574789622522002659469743396226198123467548118","7629435499720342011460156484481224290327993485671757846159959886105429630917"],["11411077074444841376460610006287763773533358091610788578493265258732138129949","17928293297801619997129005215586879863834934692950530653631759068588682410877"],["26935422208756393335482100455456982842674226441425685170490669644398208619601","620891097047269694894375874294757839354338153564572040010209713829053354589"],["910480902890094931716346372758472932398961472793760435987575734751644303207","21202631511959109055009333370815966020119341298620343792090707700746088009726"],["14220357914880063572587526459679979294975575379947594056065644731991961849563","23185583325411083761096180791490093977710643303081240047340138726887600434439"],["17274617398789423187804434835087556991785362231127353038869511377501250265618","24724567057824651351224486792192211757499014249293502488776406060114554102698"],["13199404917111072178239920518722509045019623601684931328700747473621824023834","4554019822695441177222331757068390679393147283879632116625471801298968502706"],["16062302441942116460094450082405997677169331803425170007917539201599407223439","22595506464798819436795316702807786660038316766828512986038591338501050197877"],["21365451005139676677669620163398374810443325799760407421542979434541940586636","24527019550399969511400151210737431357454200335561285615597045103841498600137"],["25720529414469696109734785932069972221516072909746035058616750823760732393707","26778467437445946065994838978996939524648975958249137148907483504047651273792"],["21008924151745628607316698517064147766403176722853147997068057062913321018926","17743206192425270354431266550166232335481766592302077645049288067250385597285"],["24427837328401399012091654957018795584081003722514914575668736212140286552819","9988792096563096392414872371526599545895100713869272021233756644551927210090"],["10910344355657371836806140432939992643966589605092879173101193135254638408376","28246116243858999198242149998953603863861505743513186496008183017842074448555"],["2250129551037564936563662002563602239360141445599352023257556691994393410403","6682695689572486648069309798252518547437878920253250498430013658023342573570"],["689665406232044278765422535829089140396620369660625535918381973473589927886","1120382218084224001198594861462970546080112810715601694368149191570914240552"],["17954624556833888900064646548975469036962267796683386423353164951361405499369","2660350348551754275734557173391955859775097632703726850763747126429617275541"],["13918977049953554187329330278247194545632039723088752761312543336165041074360","5587774146711969770565026357411751617681677416995914154668175768037720353113"],["7089537693888357963366285305933588033049580564426753780087205636420995688464","18153996011887126813727109545275507412906034963845867726775364441212055908101"],["21892235466252577833953825219319076637175678446359371837154732206099939989633","6983766297255594254819814118795526442826544482328806591208552138306094433106"],["26365069393029443482005116204643331673335787567788403909338365020679148637146","23006797038014033774146271481876389373503566933439673179800069031398553543928"],["18505788971075750901242430578876855502306665072906828747523614830158568876645","3927713669641649751125003255377916351471733954041849265320921378520754281459"],["8916781451336963508076007138665368610703033446475636260297279392984832280303","26064494543245018416266923622862079002419471131759378464651019673224765811329"],["4362948213699521254890506119025439719698761394635680690807961013046074159200","14168542258485217263031023077685027501917253460000680188839287908596653053181"],["13125393404818857388784179780892346803411633152820295416909111184571117137061","27712405759492533357642650177926558077477288260929400725586657211607716572313"],["6419082834678684856268417833266807325908437696886777352310526346283459945125","25844264980540405927087504878561635807563604764463871625835163111448794261150"],["4779291017779962419039688476024232058796045154696186632555833383847222975769","25821400750139352237752492904743153304470021045039217437291217609011917480423"],["8124067166626054212399348855139745337488563660947514930418305308880418204072","17641770953287169631093712463765626744156488133663041415384228030733008473004"],["17280248437804936182456235879763634924902840150373819915505481902382127943534","16433905730110055832823877465272500219894650675688046398792971917000105362418"],["20021946104596827169329712729470212300860040299812839763386402138979000839669","10621018611403984080217950876184269179685214849890650191359220470905617543857"],["25984158348983759249982314001379310867819810481141915567874167265275816846904","15417588531464652417341975363624761035826520108793443153188778229011948892146"],["819752351326106617216965620160615609498265822258367676477265940163161065787","3726436392049811940632300986909319378640676954327854770861244683254437947665"],["16702339974889442859755261166838846764154589824863305210840159991736293530583","19644791647774017805882233800244498453679459020711963392035100713541813934635"],["8194648690273740544432108646469978099871767839671116148288969681986036340486","3803713145216249613941005650036550905284813243596273009088139139275655975108"],["23769608283865290188243281443171534373994382699832345589456635059441413934389","28434754367922459016062084346886658154325097905493206267193282826906331668315"],["5675814686680021286738737952279667323609253120996931365320094725992580750728","9831930876366690034759957195824286466687263502270171922760821287594862703593"],["17552259643966899771037247249036857707442969398203340110467136051694948376380","17188478707720758186211472729528578568403718954564358591932811126497041876218"],["2558379549052905250005130732532775221746191724254598059493944650436395564536","26520452167686948303774737600327884914382706276906713076724383901467263902665"],["3628984652308414751398180211679395318214266862484623354818491571343725213840","25156820448753790550741007545669816890473048721659561690305846232954584566321"],["27890893512315913630975445707182913921162593438498344689487861837981029627939","21062122653391108723367218117039134208410846068727678272292340870485254226836"],["5924789599071657153026785943556457237769324501846530063843282844235824484193","24973184994186601155739665594611636399681179308287753824821882911238319568313"],["22682456930193570433947220153380106519237111920370693186394137167843422927906","14469626335584319484905377910796602423731596329946649932895663941665638316201"],["10949815410252359047120423401763906317668311759024334628619888873317971678794","26175657080817235467502361560656146055790004261453000067225830866601067467052"],["16684014063635646067104508282813313205961213892226899509377473066547570351463","10356480295519328131544138290001684773297761125898707664516115398729202984601"],["9695380148999278296111693457170431774582697524845520909195296292557687914478","3732275966274037342794584235996773331115148685965694436776167419945982513691"],["7423422457908937079461276045122433328677026284002050761531662310843535293077","9636894420760745136018022466454580340101096600973949486641431808809793194227"],["5155127455376720514796906590563822388137030456866636116055026585280810622251","7421254589973273533067461899969531171563803800030472574251579682668814702698"],["3582397507362623915137701775174196337625532031903289377981104190219229274016","27050234304864645952902202200640173195926591506368971873568188453683361792973"],["14833145044978302249578776288385462896162587501194814997323879874752566210818","15694809174670675018501331246929475595942211311320773010516631882126703183741"],["27619125511427570231354704361565848828639126642082201188683009824867750133408","15567162376265951315772188617500567679760917544887420081685574976576021024596"],["26809608933946327227224686978117994186079952579446828511452283323611615491075","25775320386375010209620849928826442025501757857400892555846239058153647609744"],["17705959365273770233385526014458487526638950188694414454069970554821824225153","24594891192612362428654741411711145122285812686347661781104982865426559880490"],["23550735756461370355568962565459900422537699622744535388109926850371418828145","1502629427705655482303412670079590876823011059372728602451155195845672112926"],["23853984275378185752535223917693591985399964480710742647962823724523960229492","3517938070312889826475393361140439603618551013018062708352571119657963610893"],["16794547414859725823538210936947945530281782390133499485221838092288942490986","18780981309688842986331170389194581928987096749645926669650079852129022141895"],["11081935114761104678467085472362717895407129291347533262816949943542530121676","598351468465335305874905048794389201284712704710225961166055372407389639030"],["12571105873453897517166044336594355424889233618997135852297938449441221248730","19203552335636365846018874346634178362148235603777891998759544035994442321980"],["9561034443401660296321581758014747878565318448386774295123211043075673264107","20461557736582443696503120863921232385703053775722748191940618310010811460340"],["11869086945218945682114094606191930529440010976826300500562224557417295862832","17495067714015146568959854101692782440631688044833222683607194767007464848322"],["5520264631083558835650073046042362499957404629575711205273922928354536792581","18662446375588022210139288316647505830105313153973964957716327853068272869989"],["8666331716048783303533405090808389534745355655097734803090294443979163698293","23949586121474710119623239700935400975366748087377144185574790098409551511037"],["28402007708413150015111417645411096115445500424024679052803228374427855182424","16345852177990402412788766905689367913945349640092927610268406357897191697801"],["8102354724134212900168631319944811125213706809702057326553878489118374668968","19024509681678894775555514370386002724757778691636778657928138568821142627081"],["11074297749250438247280380064458755334884100934551612104766958944168782410758","27661015113611730167228934334639100974632514847785766846391481629458457828867"],["12575555597025177513347230690489473418439459407728464605205978185336445432949","896915982303022071823213776849857747369344950944739800931465864641611936147"],["28218133998922665797452204737832029314038573814332814189575511713001569055880","2170420214450307316503537430157898085135434544704380380305527274523176298187"],["13442299736514135276018261035772294862271884748896048192140541310688693335455","9435731619944642658944836868565462956295458657092610418806233088816248453686"],["27703266242350015627382320139729530697849411625649900716047495317003226621463","11831333922594684245108390885620320260879058451977163126069930663723256822185"],["13801566581993026120102851656632004981431349090649780859476197997809249098111","5096419544782617288233526223105969242081036780243175039545308598652694785762"],["5597115881835550597362925822954678413682446259779051577085637884795488463545","28734632870438373696408706357759558261593023058562042074506811737914667824211"],["3267373605755448621440549344791919476035944223848514557647555168019863854029","15039448000958269528976489221862076565105595296394548498732881943905087686813"],["90647776102822691795342047844027858627646345211760845181443024190049155952","5569036561593944311221269171066203020438183270326877130553309188505550117463"],["10060341930262984125571665102817196842673424217370635398554593823889230513829","14689300692360763647400228712617473198004500992797409055717883053236619217144"],["4592439542317561384447063931489416399895096570666149831887664406780598503167","20588562315612688969506227203019393166493393554466714037782986850056067002476"],["26629099462017711204930820874287612537053298852872555306374256440005620933183","1255216592843257908424703984232520797343591330292037586874623346085824538032"],["23591024203448554893979816387662453138083349706634055353221761238148713402531","21228513460979991446122125365874592742141833655297855052572618888468256684624"],["12273214794177281469127670989622162268873110665839732268046608343166036173014","7444727045597869836715776054082378585809453676347413834907425295458842322460"],["10198247983708069308208527455483178184516184127632322669687310930138768010121","11234654028910195970690407995943297998469528273400457590720223832389533180284"],["3051856541505660346371197034304784631321575683745770044781719125177507508723","13475522778494125454022382072943553329518043873028862794181623338485270138923"],["15705835973562043480614203859192246795277253463856716739732149727553775519114","24587491919426533510860152125858488448319746105255833641295709467341110827546"],["28290998321268701383721898566133603925548243515412291412979736606023547469423","12235749548529469743575202892495232501825453143519487160276434346170613177565"],["11982569690590837257967935657365936717384550143538116601482835750513440681208","2869040610716033011277373969847726617642195732462538366028206320237453739821"],["25446077771197832412525856339300614741959278411181874533559878033548324102198","14368878155231072287178360344869984828946524926131133318546240501141219274233"],["19736098761253240006802121524282809322049973445055098735589827646277959507605","20162248257721543157190444328861395526940452271450596780543512302663799471374"],["21655483829596058461967399116282596278182458083796448562951127299971340379209","8314037212982024402482981599343674515392537811439296537423819656323805680849"],["19387082629452005093656236234122482527020877855231400134203935673099159994693","1835351498536964756491183714793808491553927603523013979691376829671892093628"],["7233973404140066136259044845711065585309140456220836084988264950500520219198","669482541072667951922140972849010765720889633934707909530723612892340237227"],["8019714911271691901543841962125941427331843479569540138216434223657672118888","21664404184412965059617026179122459327234660708821575413527197740610859023987"],["8751307495398981452171654566477753746732924922175065964612742720307322128465","14947500051868227641629518217072886123809956216184561523400783671654598403280"],["26570055747071324883341501136129708415646287589516683253055744295741846684388","14484384503036995495247447828873584226186128745177171811739925417684685617187"],["8156442958610422676584180459359525795636542700901516414111053168936767233679","7752140154482203970394595567352370521994866464449222739784624640648971036603"],["23168324137428855989278587986498537854637054579868583489190382602651024475895","13603038827465634902219027199521483746432827349367647289733614148836400447384"],["5044900785786427622830799365548129158866105782378529537948895517376602773129","86588305966876840723191107528517318950519843819465659921299010540813291655"],["22506103311813578203261918452878432654399093539953289668108738113977051260826","22437105126826364447520930456006426067666881729918589172016893576383039611058"],["12521800970605323321225342515176829977489524277697305387375503295561463438254","14906797716311683907788303961623335954089711480203443735493672786394119967004"],["22451830337574045549984309325200970251041999727539577221295564044779326525841","6573263166044346449419969216980703251104665938387983522571091063701254405387"],["3234799024833175681265859679945798789513206061387940480857344273101860750900","5290177417984538445289591556559198294140112374443645839906076262659312796599"],["23815813850022060824934350899868201408723070510722999161882362990260593017116","10553691276035360169596174667110622068203251054276905214301481797861657137904"],["14913258872539562330816733281855669702012044212861238072725029371213880573074","13282964049569912298395743165701619500759847924469930568643352269762699645372"],["28406283894506879318943100174610190298091723607486607856405207099968537559603","2047335884149893738549092950923257615632248930515492610075774953199231628475"],["3165110768543062490198649314310569276766300193427756017431086383760960888026","19978578223265868201142277425482859655906048512206501551056671594870465409928"],["19586495420159003390805466502637518638695963525300585481949649993955193474446","25271551182602402329973626817763064100093498752708780120366693005080020784010"],["1273742690711823360799212611321180469980779209847035678637449329470734221797","22980779716834756984379155212822495459448009440453783812344819176364192750145"],["18615206919490977942047560262756958611403118212306849719537697406303727188710","18235654556954828875650201804705488771396426229166413378082109616793230054900"],["13132478009194629807821545761744355075589464375141258736859688409684569394592","25103724602105366336357497223832462311067641756467304184831397237118880037615"],["15897558873217422431743055161593063015006929555199737549602121314907754678525","5457360799446258400708335122450012280233846807148621853187800289554383010109"],["9046717074304196749390135057696151106667671252503979726532242281886784679741","16781542106195594476813376335495958262441876171555789442320407658836984360652"],["11625601879787254528615339916880386025405391505285714955813469408171034361859","17387148378520066086385469967274884624754143897275388691187534880968124152805"],["15756593065669495394548674196599641219788703514017635030475786493810124293574","9844895712511771667450400241748954009699056044045089025907105243669636742767"],["907951634269740543656909252911840257177243483479676442711167106843285677149","25281094785350109783247703161156690861932347746095184068797807143722881473648"],["23640455217863096852898652474760631951177142744954486410838050582178623104900","8798995172669969262624479776171474794598242753170920074865663926599666264855"],["5840205833985068012823973327678866369201492449755433460226561932704573374438","16038575510108013466043757234938739007708281924785791182820841873280977293845"],["13396536418139102676311273152525080707889859259559029400890682991710498964642","26416717427386136599357188579332523668973051841864972812703006749723102519666"],["7096350737361572943327367660771624235328762428265456423147495316133497003015","10176703405527735549051217799248594246451778126296608527498453767152421670093"],["7120304467026469966885816716883231901823126007855245498480526237663849766427","7015808381736724905858296292706235774883864527070773189112140731765068417295"],["18136435350120892038169977227284979417754912816693786038899809886489497845639","16668058316620409528751294929964880422901091658418929949105782643299782206678"],["28257488426382377678373956373025962753207532628137345004709024261379553869194","20348944843744325669298768636221320428694743402338317486400350500883843705759"],["6764364880432597463073432899330240502914511574590136745052426027290889189228","20522788059033372600143806617184558230539630466681826004980536749052006466500"],["26100177288915918796408069817718649510540098516697474340435383267060002098021","20346340692402176860985352279414484221030403437716870429583556786269504405412"],["3888974085189746711959477443083363071252798765874727538101148087443036582541","21529662897404864478909362214556175802697420603495426518040249413967246638631"],["9655269665028491477050180410660181615338276386786641927540127729379339162940","28867957101729418086047905105461563072105566503294563972460532496799851650254"],["19689143468459506457520503035017190142471552367057958560144025998048954918671","23455287251644039529505708673561031568071947397531836560157688150624668006548"],["7713279980089142253210887736218776750522140319169327247977533686272774847906","8216353301601279281066857698447429142952285314226019532797117836660449577551"],["9701534532854649929641864231479938910415333170299093258560623904807738220062","20902376395655317815015613248599231395892505347853140451566344218203637219606"],["6463735846050043816984641930403258884068860130402011468838585325150178348661","20733570033647000621383953337991585920697763235839828821664973433450603217639"],["25452558175901268061416332053274339527532204264538885139548801717976561702815","13616699526004580977381988544139216048958593014110750870616460933564549488759"],["10969991436297000529614317335450124729608128896278419326024677652759988676455","1007496376005173236529735653167206411335304645414421987390669450331789496707"],["23553748375476407289803627079879023360854694274601332731331039782250837126534","17527509614055592572547505131904885579959665191504401562293540244594228868083"],["23721501992865423645973345948855664602180821073141054930818302049812550176512","20951903296760190579993016479928785150643899358833768016990340354544159285843"],["17048281223123639552140825185434031118321038938438472555107793082973705978857","26754868361668653910723588450584117794322947391028595370779950385934670163674"],["3100645547672421715962481638163953856649533371729319715413444625332416553800","28421485599092522981156051330278295936085995004271566835927545414101277794423"],["14821630645182271252797971875943232678545018788380142522512987945955828493876","1992327016454617605074181360862480054417462209989027416832950905853867084449"],["634409890887503900842360969408159985260015111604432760417257773565886338813","14639263701063842999553852650862784662821151191299588590026712684262173231341"],["12515594789836597150653120831215973509101264169814422419386685126677339087490","20244183784065531693898973526395125255612632354920791524190168315763996707629"],["15820434067067776336130742895886102164254882642785435989959564822266851029438","28299726597202155180049577103878565170612196515660459617848308469411343363176"],["7694235467164265913708844111865871135558768993445896336077296027220421057566","25031751838585093489383711596173000082499917703375577968474826653838185781058"],["3524963851504514516253710388134360333632485257997984384762043242004378468515","8306291611900711458129932171697575164234955255240040469718631905882082551680"],["4579603733137251587554796407692555602788209589218251591056418843019560307700","947466253423658696342295050297887931424090589421408830981514633659065342050"],["20844147703702253787933129387348925354738911204455210939714953054375014745567","4478467768813116317712650279683185600556705280445804277442017959887913530534"],["5222423234777285375043984581802434586752438660863680866529438502005547365879","26084409084463926814634747714540848018216875161039747726063523544524996637943"],["26083092758926431985289846368028039190450586873059405994410325723834084356208","9177645673105864684494750105891714012338898497110258321429371783092059702487"],["27465691908726958259550125576897560069246803766964361525779212625582613033041","13614027720418167732115539168099497799582299409373174213710967632888885122729"],["1674859151046035489548081337991342626490554122065332654080987729231969206176","19142825069025266444402392351888210617238857514616748144047756362278971594623"],["6010803068179341692089670444753474883956254801826525368236774346918447231246","1254375907884483265079707519383942892591546464440879154725807115330398213495"],["12862176889714313920332013046047860057556298555753829252370860506833287308262","23477626590528928361929188574615236433994440526140461735010065353587045212341"],["9177916800805389773262526954658822141688343358998950180297735603902316117218","3198855759066322956556864916403455658428335272730735347177172910287053218798"],["8581283465075596969020254853045592191335309076724024518472725019656909634821","22222108206619143193728370946863631030768651676695844693366013894155613134609"],["11556080511526221681690456648313508391856070707831335243038927096512853991739","5371967359616047740283181865357236160014212786736057807670462343559689393760"],["22605935740152024058795841005516179801565899942343366117182641356278873011319","13733380874148401706574083341063856490355821406483708865703392426006214008376"],["26945852347851895111102987556892253447647721922627283030966653630187797673936","12419482055622197673757599532017533187068365419966813775927230569856788407386"],["2294212290662939451811031663233784906808983762618725234472289154511653041172","12545372454971250661785704603016778123940725474953735833719185091510964684535"],["25113329501475783745999829424786841721343890016954702991594432032824387314594","5594700374570778606720067262617226041256349720613191486789148420520837689864"],["28271069402959085279569433528854838152791624170586855727077563171311724625150","16233370300302870864207657376986140583610175726776452111521161919417075721015"],["21656390992888708560251154756857198564704160035905234692792836638355610113432","6735498417803949420091258720972899375187780345954688194496374296602231393464"],["21346445888799214833161345747633486816712820954281974519471755723096470439194","12256252449160531360577584438607586624797668538212643267285606287362654735820"],["11660474158182271910578463123829897493196395891879645400485286606515202722234","738334288027391829839377525091737689684384597470777342802480867543274889981"],["5437295487737862546255092513914820615488665412351102237035358425621293436140","22343094069804583712163254147205055606699796719659138653865611128925887407172"],["27574093433399046241248475890848845769745718410007936330262303301598085659641","924868390653816519426078025962797433785979002923445938927122681562145774694"],["17833746322953011349508184742412339943207689396461326700113232132890504025840","17479501326035496539622248239397886638199953490576917937173114540463249499943"],["27657308741122255300897271070760281558073652228754190928576617290711276212644","16022327122286310756206290251212049320513765626685966882452100248069999341073"],["20202031973199669357200691366272900533562162707695414943581958081927516435963","20506979023486990508611680982087463411077073252008449808228654847051478519124"],["1309133750027071463290616846096500825351426966842743559271730500786762238491","25852511490627486920910828725236978891153116269719999336000894480309530109156"],["162535847411789591092600148037242205455720915176156919882856642245870969947","27365252569399690216985017943155543576355030523698733449097277212169145345260"],["4757940505333702083708982928000829299560960717790388300773765663919868700621","3908931645004722125673234062620420344817636591128717986487436433056662143032"],["9823601236734142571528970959907182720305200666475420971971296214294587806138","7874638060827394680363829523037329309613965234883449859801521791548808798413"],["25349606569244668379886408525291687757287943489722991606499799928777203859636","26033341815882627138700031528671880378227482788145482144986914784472311585383"],["21922875642329509930659157296290781375643268671032269891511062797092425749266","20858202479688863298903232197271602214645754906291615254828133671327102288136"],["7067242651958411752363154949496973376330126877036919596702492107389699794696","487007844992960517095667808709425941566218456123677876532015910924801203115"],["6056521040236354605776837483892806713286043908817371289551950547071412590403","23082688122990754054541334159006025908078365662989908648067673727032300867904"],["13991560818573429720939380215786938394965071488438645812538891345613900343275","4335939786078612145360156230822509045174901282085732198407484549923039454623"],["5035963876059291951433522076588477243872383891075074270342897560588043668795","9265612979785009069900057333805716136860039148449658017035123894926320800920"],["6959526442798394819079979508617137291884293474071208911269776609440881363873","26018611836549868379868433404781348278704197509031536453129276700974082517130"],["11715516390113965024721853812843282904818496981258589848285565796798730955743","23211724692026552209536301625899404583950570127503091614383366127728312350349"],["24680884436780704392634524953383900216551599193186622613507377675161692477001","22449227972352125195969920295572429223387298307128144061106882100946634609977"],["25052103589045120888218564316397194676544516970156852436614128083104013590540","2377761752031274777767496075912037671558050602719446940031813098963802860309"],["2478701935575733305602084990779762863537623339075308366751974383717184821520","66048171934535136552698478817213176623468361488431157628196912729865022442"],["9234783515940012537588072424782222048339073229683554726227518641380056578603","2193110386201877136622199611850943480968440498251312185725252143821853592271"],["19285791883657173581003971915547291420128377395143323241969412768846173200204","22116801569686002844592914139159716228229832417975317696638614834396134613303"],["26799825787164944218162287984427906637807427576931068621238680468926071386091","14070455349272261551474106803742544685111579993368021095911552246830192815785"],["21178371951697772142198135087168367731886415002253459302614682575545794138622","8048044428605173696591704456937816919650166305969135059529198603867069185036"],["13754982275168801074527767436899984554353867202854128022190801830529270989115","26905001003960887707645796811866340510197576263120285229649917948030744743336"],["6595383542601285919784040847705399351684941378496994151360207462472093650212","21769539281961837932419502717567804116883005320257148183750303851834316908680"],["16916546148109841551047385479306765157650289986940858471222745385856010290550","2695332708091796861536016843503555479445911812325188751788987856295693925004"],["8174813472389694465490232729237691924320930544514445982526877300502002516372","18410509977523902280148029727022332565732839307270404770233316960235142568759"],["27075955176498124336232176220708540496435228484103500064109400423206507041654","14008341044689253732101652961708394581009248551809704037997975443854472372732"],["188996300907204363049281232624580635012390956051260093096872061314769665313","13425084374299380148987412602655874530419125139994033377422616311044072115744"],["21119000688025961528552689772729533291866896093018744357752154900416820569934","11092579941132505852202962012686638882858373288824276876160298406032627032268"],["126618432739147311578707189746429278093597861909759470477385782351152833808","10590220773093760157480922151997018626646878450875592377680100708230597222805"],["19688446731248152644894225488351856550161610239274774715319963789331099136801","10364355150017267082116582353950956332314334760274930286487041845205756327241"],["418834007206949831329464010941377357374100681396996277861120441489367801132","26540689521860166521983178719026345643734349127700359978500314342689564738115"],["11646541774379845541322243921641912426298200704306175466378844864271343406979","16200959823783995669564225508497745835938867995059844088981734708941690157285"],["4774044537230797847448135532877750751138429662603962208038081175373142149615","4669504805573255934682862781678126358994346327927306455618974607315191853481"],["14864277713415912042933933080653948717720312361862700385382326544720149483338","21205432785619804675480244549154369194833568057864345174036033717692368093626"],["10385821750176344355254433290451937185029654478551068051842731340560776508467","13206021541819174272191745221471568032435232026445068521599986378921827332406"],["2469483775625427845945981411134629617887369249548309022476428210496152402863","21974428791044574912749734904271357331820924459122190176373260633099929172181"],["12473243314698680189018669661484807277685566763363524815911311969498133507432","20865758540817818530111045261167860558307228764986359750417925763073134752187"],["21835989907396778096692204635669070583684363158973192577701507090276930323785","27596530457121937226718330979307532023621384082971760770059797414209255209313"],["24026857572806498747358018092757259311488072790806229291059329820542534415072","16446934899713140579849486906989606760551404874297904686584218036802604077382"],["26328948347827540603338076022774160261492152246696050640519353008592594437210","18737681094863120636627714409531273751891879705105456706651102976903898842840"],["21031552373178674740045993786227258029459014350540028105553724251673157405264","15804297237855293629006407792670909706434739189253393591603635614220757083726"],["8363576612170219504574228390787394492252278226137016737574018683603350314290","16745474807114893492153813474014715739683823352865575595757800600877461685090"],["15556021220679552357799781783197887400873797622903228140945026493663613827788","6430288660851106860368181810607061189691464348820245082357664703568672285003"],["7483539022518037993367571559505007887685438025851254802294425420917616461643","4282475352239627745820959724567149955287487024100155723978444327319756295396"],["6453119748708052633629279248823333017236396877091731822095395311805930118548","4563355006925298607219855187454354558998485665862806005703426929614444089119"],["25331609392016983766128702348275182263694857904933548900950928281596279097184","17539811598905894762177185517762693536448851476348195556600953172513308770378"],["8066188489008247329068936955094420557676721301403696302853183535246396595598","18393366454857469346900741693296010935626004857311151819003144397804958045162"],["16368835153466923188883749287906162340937443309885340319216114216530163466752","26511038716276394532159886409506908989846360636775853379717877089096374625132"],["15933163346196131932256163979464793251963628326166798900733374585449831793168","10501993157158927290100322632097286738162287138799601869042954917615436905386"],["11352828027453235496512192859387860751995804750274463702606783033232841728697","4617725982589560967149376773188313131497885354534460035700761956473513767150"],["10565278500262322666837017124456706880588950826209665352202853171393586092312","10492098771529577850837420073630119616532713374193499029385196073480873734614"],["10797908955690481500408688652184256430652523364276952614784070577120190250237","9312131543526552413346733756096884736472761336130014222812558802795589365468"],["6061407823394033873349619249750150884167028454089652481273093712312849916997","17049182415664353953164850013523136133200447393551237655231752466576606145042"],["4333524583695030717332313957794740505790374323200349188715450037595245120258","28518465625981291946788183474502863781403072456908275747664157824045279720463"],["24472204404231275362701827353139027240618374009143817611175974268799307809520","1556901613526510983555921485408040433462622372820085267038924259804904763365"],["23488877651352232742543569448706956542890026462445565547628079115914363512180","20240743113181264495347127219064764618185533926756108191370855965334635921773"],["7221405871096779691802550585223307215756576793448305208613024954735362215454","18167882670423398848368664414184165187393448891838515961519965287106948656764"],["9142188525234892236529433377119098297638662116876516935586277222234880500592","12057696086286383517289168314920563876722649243448464626005878656473138927351"],["27334087835776054667645246619045209411389780570994234270323028065341060731203","864823400758231659988728986427770448631739313266238681207396498610796578904"],["4006499634025224956845840290051710694520100188243889977543309451615152758427","760629133397795253218249111082116869058121702541253144593591919011078612455"],["23206077746416055647061753903956358503266989930771663966227215138244853674268","19876803597714578509171671306225517306565952262856430368859053135909422098124"],["22240477722008369417197894693961982882356003476094262275696840046988939440096","5595648354468955534490348245929383345244324600418925283326046339669906029510"],["16061738274274801625482720326708512061915892938250329590963949032225310317513","17362356113342391937302088256522661146275802852758236118574433416523891757819"],["22432931033197746462321405135982521141315518164784967821595056262027033767195","10519920760715994040876420656571000187488368519994220895347534098444317752005"],["14204130196011600686071430719863913786041302199451194716718804011856927172155","11519563355575594422450188076755403184940745289838817166231249567434922477660"],["3225667642029804880166884856745143572289580244856370169007747611300940398011","14699008692377653006278720439894781766468647617854345285473362391418497136099"],["16558431701520449907064311134054342443472777416710002916176488835423026564300","1181134036148727221570849773210079684490195813765855725250824529703612568077"],["6646887899521954764158715073498349472836336607704093443966614907437770811231","10542958081647528876177283605763829503826900705831465747944130347691142583006"],["25337321440633820185971741121204426273108457698686058288971212529031449827490","6937075782234644951982802329573941473033729592685131318613010611895920193416"],["19893184042459419533049080181437226964964097965739816237634255303451657085012","12082275884228653882589690934633023906684142049341163873553533368625629207655"],["17491057740338855926473296943736115859452149079414666891531180211144878548547","5855100126387983465734404274320174574468940197633770747406925063587726219536"],["3910778403878479114433546135946497249657307956741565809095104216253327852369","14158983120693645557351790021466231640837513125933676747814187522089709832297"],["13017053768991802679841694218365778891931844582096672039988868650323675371362","21878339329358047796402761578819688106253960243197979886521351601570551246147"],["17468774341362873192833760037763505483662282471334532939302322482790620564068","25039422287571440184206253011540382240975510595008599467683359540972030364863"],["13773803132447296439458486427433620749108563102896671983219994064619711094367","17315677118480712054466863592098381091766790118822557465282128730204160290981"],["9480575692072994118560050045125357049870189320961472926538538543923417911524","25338361065823294163951140732777701659089581181700320933546800596316299229478"],["17965243711514550346569965063394879279298527844803599449878997262336972987591","4253532947916801498936475412875230935566036630533843106172970373835470094621"],["14805122435703882209071960815716555448954780149247152212082200494626166073362","8956649659996866094530079671061865444412415971135254331356621226924131340222"],["12367811640015472101259137746750620511287853077800948199626069093918537454507","16976939968301634133214466862771386240576918050356928467359004048883792091753"],["1109184521096403309051072736295189212630690567630524736128982213697963902923","12935836652985996411099695797989187517070880805413847060214461872477782591597"],["13467215442168379322128461813054564100633823727892422990507000142727813893796","7181662049354257881795141203621399431510546916085319994145784076503753617165"],["2948499138094215159551618678387745590936342273657679214016918497275822562639","3400708326460740320327797583507895135389135314043571981852133376018663739165"],["868374762948705668444506462967803457994460780703628007222955566430183491917","13174357384459923495165762082297604648514719089700576954953373093660723923949"],["7434551426311729441266995124592253812071453053491821241405125701352451006967","27799748641733524837957073788340461065664196804879131141439531245203135775562"],["22861168738290391476623985942194619901039065008732547734001534864313927187158","21583100522659926860624362081194413715780908148729211777983460274725247354677"],["989083234868119714295543199727386163861657667275942336869872829463887839690","27111633979477492534010163314783036608992239648214486639271545033174545680178"],["16071337076240534419205494525253051315897582505972342797663730227689082840165","7883048283476863833039353027222954593844224117424276792796463294105852152040"],["13880799831567125040099137528599076343429820650583941171976256926735900046591","16870768127001861923551366809962305842961189467608017492291843834928029360055"],["24705609569747344062754910864433840168010872996311210881956417440922328458927","20261759359807825818163604641771059581150080147097310079604418370787721871084"],["23446217958022979260467201035043126365676217809634030331567901801440293010312","6869688151906193915105430856791892860863660049424100646907073914659965846538"],["2577695086574894004014574154057794800811229637956719794503515807472020764261","27415747219124041870239747658201048536696990129333334004172756435850770900885"],["7911964361412111520440233210364309518894568555943948014673353979561362634553","14201538750145047982665626584601311604183694723115950377654296528991717632772"],["24730011054761887717080754476063385005614817061734064631928215191842904225575","7303919712359011778977090292468178249901483934382301227087797024725526907589"],["14384983604189776493486070687162520575878214619951384783180051447209567890440","26957964317621784237518741137858338931563558159646026115793810975441246337052"],["9661338728006719482545411726809343398353461062468373941552661894757008172507","21358534740242097222017401097971668124956058693107723964747730585874332174471"],["21340971318312082758985786651129969485668290082650400281438314677508164769154","11152090369057962505490744830203198814141518493021049125717345049540983090686"],["14528179199137998748894491105509652138030015834335515564269280265588737681347","4451064356441598620781332977438052269977364228592111086711711181305349135190"],["8246021580105192170508667568262364368756275927911185998512236524594939786172","850628167547258887239773423743214456974744787142720068364992393868956353562"],["1768371016265056784204548462486198384985618249866312967677581454748904232263","19548546082299847352186836062678232150922102370210104465458827412787834432433"],["28379144679164931797420901128207116142251760966320222298184107081494576345580","18231909070615113488551887570761365924367493799304759934352497347484227259656"],["10066262115430262918409909608447972926033389680802478474356122448023417036926","13302861954939659468373969857957732457064487746576300125820121589132138093833"],["25360910714548022711873871385084298199300471916979295171832262569658176945965","22980807729585653656494915361112870578620198130974092227279864275558476996331"],["2722324097743960722891727085203868807313572554801040287189920709637495138120","24665748548787541737727221085065826651385932998839225000890496745327921104598"],["5086576588851420196039407040881572848901565550592618439928003360977101022757","25428983799209206330283802742656643568995246931586181551749133284705845659543"],["1242886546796703997570704458812839586454620267556146015757211612978177530836","23757351895084352106474442964641219613751534158385820983849595879935556476920"],["23251877718265263836776488295369216997097969505938890569574125945661759458046","18623028876486127353354421710220192431578772582997490703993986024138637914548"],["26145575643321542362973393888562669922509424927163042831269960611115314330476","6834560778836539210166034767467908162521999896938597175908578909227473112872"],["2309497843959579903082103041053108660791743158218030751220252813191128511869","16544625574496605551637962914231083486202558518367451793832516520378435158155"],["26416923451859674833533020351849836757215018108660474344745087582504073614203","18185387347492363504969427028293710880626923676631495047529009693923787719415"],["14247703795327164839606219039949463302636542290863699735830923830768475486579","22496258639100948955177324801232632648020890360137388516981896668562681213200"],["19466444308480072750636667162193407822064494420546411431853500878459732752653","4227530286733654598708925060336971691080821816485138681446494975605287009127"],["4364422147913462130724361264589922142841154346284926563106725314020534666922","23356673590816924785125289158783807301820959612822787724831031394981571839804"],["15207393951257955570820486472854338905870123159396151441033378199966764828697","6932278372795911715910854008816780458598570436111167186443535040595676031364"],["13908240851863405800393813883370518250283986634416891563581992599996974383611","210781711518946397625213514147090930759464702139300563673045017079052543792"],["3260936357362476183798057519889124046585092446690118461292899768594049184875","9204017239428010845004199800974909622613082502984898612605063411303083437175"],["25795738219280980631218310755674459958025084049817598979386895826286754344784","22582052874503594514433665661854353577673986198072116803916297897529401975663"],["19696971175673630070997831824545114272292009516127452766086829951589241305541","13472950962494766892959650156269496903116316416541383409261953060546266198751"],["2430034796356011895713082579326455217747951898972858233430341655990735338159","18520469727200625205207353623099219867999964698528504386977683337452544787496"],["12001094760159013000469110384940688015014785615846708450600684946515047263600","23350689820093209256500106933841594297468155117826308552659726930809084646704"],["1696963711056402745650135335594410471831961783099756788552944777224588652190","21037338604266218082815525486458547245019341226067026597930287186004573414370"],["27017235087718663891269587629794574205859318283327561804593859653901942164809","15694212507013766594698765643711550027259008470693315595008349419557807829119"],["1672846729621073544792477762306278559004605708849742144445762104972215092572","13260272666293638007956844112632981443085812665181831136667080458136391051281"],["465803308713899299315175369047879246256907690773861489608455444764938078036","6239096676724118428803421228777157145265140337966900861490752888034862893189"],["26507107668997792921185795283442844229204321737838759171344227813826066947243","1660551513628577722789249340236874854350149285377153218674981907254330252088"],["27314305316541288699555742419058647933633789360152336380859249576155560670857","446308833357747619014499388527916869054107007622685187519783664956970673511"],["21594787059422115767315966734891373213049441840021676024288104278460880815566","1884374207701021745263445500987220475980863795435766326579486976646450415147"],["17996583234544518874210177278779518057206218273998349331331779504873366939554","10601016565777745649981738650319132488947525733745933786840005771732421645247"],["23237878178756533790662224043819898270262367220294670050757225364711458117412","15831515294159062885395727723496944275478033751611172274003461285575434225153"],["21756426431631849666243544711211913817502389042556705637017936472377656762903","14685872720282326048362486134781783849863464465974778771145216381105942138211"],["12053980056849732238844477165945126342138356196904167282021151979596292191344","23176419650891387129297190712122606464370626584414706540524961100562719890154"],["12210902671858588215733243867362164642707965846868298712529236430205370873663","22899314479771639858162798061154118719647537938503030127598958531083249589074"],["10657727546976468016271247985342010958191455133773876200584241887929809559176","24593466688135170308036992768868171806297324798810311708800465687160829547435"],["24920840246106256333264208881569297943680324476652260722756181865220276268565","16421655204777377955030036554091557345179510870080872285191963734000284195249"],["19671557621715978395457617911833760658862283740584190129913807775385810337434","26196137651195648856427321007466347577588176103413522136477300106801323848857"],["2205177682130067427625979407659719579812119067756380266627487574662569833858","7295121299850095839936014090357455282482621080546191449088461954212821318105"],["17208382309883818583695966538200983743635754130530819720803465351739846205742","3167831298791490175615187796251857628607472319326930107498081841156275440865"],["7702707179560997226642169173643021160626536867631313875666355365295486227099","12999181575728940979858601398570109596945289184008417409352844598955135897282"],["20806240277497294588897829714525879969723328894397026796002709984274733080192","18257381321625828406776470420088559125228370870113356469848415814104585049166"],["10949699646540364493266953473949691963644242381289108200707262580775949354103","22906832578756271704026278050783888168220141332591448334328099981277972863170"],["3127599873818407981550787163474989490764266504097506552068550885923608706297","28783231642971396161928148937101557566533166666843621919974798906716701451858"],["19167025327533944309706997335238080816349863895647138574438384762456786630532","16882267628971443234006345677988419762953417196975714568594058816181983090216"],["1039450891706593772697154913318960836226181139329798547675440822987971010276","11357741494400048505734417397155982692661935467852513759889976257355281417111"],["3473560263562950928309594715728686494869965960478400928676120099638064286197","11836080931207299237162361939968068290071028984816755278269982221609498384549"],["16566009558813409745590597696753745689645256352902147887457803396836498625813","20494987843883939288877055445143055662764634441051681371018756784184456483112"],["16974492219408164181619794556565363313160656431032395001914747509840555677987","9525806879498255266621626771354693339386625083127213827267546953603693867070"],["27255438625677942778948206565684075101441739624881652756938951647826840204798","17858702967310453064921829353846065706763005614703844447833505501674987077370"],["14744364188566669264583931413896229866345686370712974333256932426366355168008","9727165938826910659019816053112536017142822273886319116844472631867498526757"],["2778655278430558660674898773521615292823440847430118548321465861775752086949","13153000006937513021998646760153251328147524725636358497697186798134148175241"],["11564079131906532721182905461720744973569222882814492629712321396656028776436","21769482834877037393177176519710568050001693608590155668668698350480119145202"],["2624686072562737098305173968997337074071407163265262616015611497072159701099","21303770790517671548547197224755810672074163874207678523038824585077744683862"],["9658443075845583733546374195604319403290783226857685964145463056391953918298","15247634095822050946179982038712421155378103048695464395991890685972219800308"],["14766298201095574746580037662306092273350531939997098087745376595438402650910","7958664648728659709010625390602246073926785136426419140081269069182194241740"],["11894188969510205432803112135323885378669622269945484322697858242410474370943","25671102483586483978390464358403150049139876321883660583044679202602445253437"],["27036660356401823683915062245050795609136147076059613973864753488997572501059","3596183266466428639068568167989053660862694071735451423705374578069738646761"],["16385874254746951482562825923794257480449808964045069144643623198017936825098","9754872504307311074886677729898514622952532429003497745239886237996964778127"],["16922921490687301978598480255482170521217980214864303866054568644088642581066","24263907902829367745118851258534794775084508641275155131800031148910227269405"],["9188123282991800713007042023700806953603546772624489380582048660347649517074","6595315536900166294772641616313838416680931826955465462211966400547822616432"],["5840095695499276280552102565691158306472036264538993280132933597079536988444","23330185923621020001458479626137474949597710503279601237684730220010945348825"],["11309935681511775261998167522392671518951733201268951174973407601269270349427","28005825052792883099370712275419841839513512201787697534035673791026766119267"],["28555433224259475256181935026772583905199298769802567175432796326252427464089","28016850000008835199004715415019458124004046043685192005464621617693516396746"],["20426294300429233025942506036889814495606275119572909374576019678681354660082","23268228823703188551854340644453881427847456172450328095014667472452145891917"],["24395916871437592179073582021182760797724829801916136241170514040749859225396","21542005030114093055120844954014899943261014115043963600381603652195868822829"],["24837088727326024650677073010276492221634865023664666494090065409325575988559","9274439502707841743821985974930623224276775564017044484632055017577773476471"],["18948439565555219639275442835638527792523535239368947612154720153903507179849","25226468489006295765992666383623369697566241453913857988216012298803921115969"],["4492213474075877589164728340866172248924167667185077921506320907742647850350","20906275876847984665223773275914782807266934462806520532922134222720660641978"],["24442943920718640086319351835894954606201454884897158872151955563297964427703","5282420676454852851666473348884655095996538607271633862999736582935537456211"],["3639784702430569996802150959221007008922130229565377858432971034832058440061","12594153511715623301287566466138759656634977173625745536903445231186578337632"],["1931722974921867002245119894499082305104348441222335443159350936775492924739","1994593587284442269259588859858157495546655823871560055146392573896684556606"],["19318487150754052275367981024864569022442553126876385856348398983194937240931","6433720920586403531444866927035486417048273529706986038556267733880739984532"],["21410613600399019437421709874147940817912241399729227500206654509780397854216","13776841345964928299996210447075946996061845018067963504367046779430183272643"],["25188817952416256695379401006346409446188687141807055250709653580171945968716","6988260774593040796793534418750835497997855620106642717131252875224695735809"],["7542411343739375690693646698580044137021580921389761919052617076646977835006","20404582190740288139569036359021182341246152458700676032945262560928576360991"],["7112668525262643825233738393817782576994144007621893745548900100224106291834","22024055894140273368406635078472887408109442474403721181302522318017190690539"],["11774350099747934361557925347665919135660436616202585691300409720259602097849","13095167037542678933325080721544030515751131636187252924697565270469450175171"],["10544744986117922793294031022741305005596734051446655814234040475388109330982","22100320497550399720235320978294661970288270815586969205821474935510694422736"],["14347471110672070144374458324858496020366584745906810597384523589408179834217","3770067444610910540707553499156061837666115540884844833951535280072360240063"],["28077801912089988128340024983369376331971882821631845654462135264558570150115","19073028567608591412683077244293021833790767753979970945962514845599584016221"],["28420402673922478898271447472507185397401762079947656720788615484791909219837","10547982259177105257917946771590990505345078515505557465445861135761178581256"],["12160387709654552663448094257818651620183593911055057727690785597995253705696","10288888678019164161309230668387747719806193975283176390274504950144612263842"],["21483372573591166311481046224674253695491164230889017213827267288901686073511","17240702514824406279759211979196205619746775226751547365238666168952668694289"],["13020843148942264107103313713758944694272713969655266512366016907424230331010","2527117016250554585704328573155373006577229804795302732967081130186289899819"],["2300186103217249071522814165179846244912622923151996723203087464733213178867","7063867031503147776641133729199805364064031134273172010300426441982978412825"],["26189099672833463291750284598020524870767449938924291268913601154693830836493","7426382359302891663397813373173388379456427674320091623859094999965861853316"],["971739026431908411443585061083753771103459248415352216379239354058851418281","14414408300918781094563477031449004042170297618931850829016146262677139947162"],["4010279469771179345963955364590030330540985257959015030904295690583644894065","24811117232685935064967615257823462494290135116240002367713912458576676569591"],["4501400266521101581490513866602347651187124822665546597071015408505313334411","9331341331306432920159838255238172368868403420273218646711831901136681438531"],["24745147293210568714497444726406865635454973826228596019701601619988517815658","9507578220990131232132553604877163817639952589457207638828526933354751821729"],["14163913351826387257756329162791697184148723118171288993759512040745801204334","9804990017292611945510663649559298936752651919145936451797316080475459029569"],["14758328123985612579266684667756104031026064128205297503665697305637424328327","12110248084020846477953593590062682886355664095153033604360637987987281976184"],["1260033122225708149349115635732936277905125518935439385222076909826262074185","22274270771692769827509967131491402480975155926016786370263398308379351218301"],["13194515336257355385546913805394759360864063671502191814061159186450294456643","20876085755223463214329118942611113245006096107921804056640750597508282863811"],["18733532336860588013880778633330484070438614052661699988565364363960866900984","3643363338083699724214346575455256258013432488839748603063843941168959949387"],["5037709517171608198209504154443384410132241196436252735309916388352079151320","21902236753134630711055084315621354489619327218257814765809905328294481289693"],["9571237389279393285618131335390950014873584802513280045278219943662461088457","27933208462487303338285743292666507733069453068340387673686083297624329238198"],["12568107597654811284040726703217964749188068691003185354196252154084659322577","3748168837113171677281633600394080961907696184060621464658800876755211382016"],["21179407054589737629835712182482878894476321392253670461880981651515753755103","3171239909111888138401336048875470520182197774372849785405879670300538826331"],["15086246851182590606371407241748394699916517648570235888058733465192836097090","25980046804732953679571827965203513433337752185252050449208315397971552715815"],["23169342884118272483788134726252759149809510739186796290003146354454495601526","5125181183266200119871647961738451998458375988595280791458866839989472553336"],["15618687971022960649419509921772580954207636606090701938613055450926545916131","3247744877111650642786206880418841839264029849398552147906935002653581712800"],["2093348084050017533495142278973683854452344048006001500940695377736552951320","4353345517023569342486838202515502402972426430800039988417937687352477202504"],["10718915135689227518038538425087478584978431459505819652383710707366934180911","19451888549564295998948380875918912034419694223131016584075893106823744224559"],["7221802124417791954102963164360200066957001826117804361113546618607779174572","2153078908742704974201324482210023375780417457337790138400914907835487886255"],["25450780627338254592150118847324220904239818489767679774477915583047780605789","1525798662945537771293291048935875326200863861212922364539032934824552946120"],["28526540356110502884492154649124011973519081933462023496074673175395610200107","22136617085688512109071035744288551603953350333301951720677432824697067558707"],["11086429111472019765358758820796879281350183665597128109258147848273719096851","25857191177801194163479103012241483239127328549788074030223814581327135082140"],["18256564687262078256815331454743135377865253138795473900564639553813408100948","27793315602485036537745501251730194147901271657522723405683699237079338698511"],["18070460539838200423536379202471519296662014902940862836338004018526485024014","7938308447615277881849691487437724280325557891546177973518757879624695610184"],["12893789212880222943122762264744622339841748081407303117961005921684271823841","24359596084279349087844804793797012384725460931546360368815875616427223544765"],["26890452634205408609577523734504556651325910207411203739709276515449521908098","16301808778392732151490399861930216291604069019625989498855359643862267408189"],["15378757802999647973514105325184174612297760482359253545006301174047081832675","27664029680582276426281265820903249347813520011881932080566413917959166192992"],["9627685371602558382622211424007399676451032680330375632899346356297762014181","27902379174115588787284108541194473550665549389609339183341712977489789196793"],["20228960830368714982414439671850811716351505374342210136920883783009393037624","19507283588662224698808167397925696524886584424907948367642940197683637411924"],["5149553338090632905704366050704389175916567916109476717217303094292587966648","4804945491353160328574852439990669598419699138241195673699108778683029539991"],["23176293004378122142518775454438515936507383965708379375769612390742132766359","18747620074384275981095617484108488672695245544771381365242650250603583785554"],["6849349247287711806678664075334755678497497098908737208999367436349858451009","7950231790065882708823069616593032158814124949419828614168399376703415773749"],["26284068631102011489998767368754724422542028145493929656216794537132339241569","364666239317907654748908338095695211065045957040336980193456997810916855929"],["6234587054826004585298125304453439990866924835536959900815502931372744510018","22490417615710799237968122713396234294609661880219832550809950259048833022888"],["11945733384115843063389631879509444663310246788965736836129042470033980347212","26752464843991267471656120141170440941019378790131619987308663082072323538303"],["4760446634927348430103980476852677839125597325215329647608144993310519126305","2194043549110662665091920432390954224669932429625954155026924545816287715812"],["27948141095990253734383520490321891037137595406737992765843318185049026634011","17118554816709229286342504214512898449716146430394615469611798367511998822435"],["26000781317830174223359069550916310944885478071943539353826187972469013714622","4165983685825374339329148234079012694964300945031100874881872434262023794045"],["7619197576826557222379489791312896215659550592776962512047481994190950959262","14122907785266935315452937898520519516637779114032956127922017583648093276621"],["21664407867929851496677175031676196727088555481368642142414604344122804985170","27182334101413001693996764356478220210820197156009539184741981379529693499090"],["23172504162107093705332003346623250022767087836108466879265384902004369983377","6450718311037731673244197943365928685445368719228426054386968199495260130081"],["6750275074307087392796587367167520449387599402630197575237751297815159241884","9699966258361004813973464943927099260728519439528763205172385493919420441046"],["27668548046614111344168478711167079442879657119596202629101377114266389178397","18375779245494705080268913353491940021708250344550409198740033747534414953297"],["7630660933500606249645548614926801577641735267052916370710521660868488979650","4443756810492253941607064853951328319329838219254727295154727359700296465893"],["9983919871103647883245535206472181417889237313188497245358487356043586241267","12763740243564500821742144842936552726341728117529027927031389254412158594942"],["18581604258962690697858525151419830331167680735323485893211923463835554876349","19129278470427639993794944443615631261141780028802143472563572429309518968333"],["7778464246702518397243347455209712464000351159018862288134486922975825453803","10070320588407165629860119362842205039839435188357456842819755441098816826508"],["237665340242550345934639515930374850307877411097422924274168162205882769770","13314459394689780532127703971642943500819942343377378124570211977935701305483"],["26775824692699612916902143825696306615720372035106996952542511423821779016724","5870844979627611871063578822524772440896489439624109559396603966866280588568"],["23676596120380115118086309768264046613214024771593331992184071834045233725629","10423591149965617651268490556610699996671236109099571945690771282273417798727"],["24096235780308443940624748169006022316956869487534111847747415542273053761655","5560883508146755325082755304372468106959027851641963130093494183701179163944"],["3012190337701411738370024704000301674861675257473754507351208516582231968871","3859631526762503231661073727844801722188068354863296955942771168532340632041"],["1104349302198277956508112249388170582563697500796314582489629602986674388765","1338440211595289922568674991226902167593453447181510866260303105863395308421"],["5862564900132976561967685211385747313407880335254991191921634671323645616625","9450000464487940936161962206981799936174204325953195617667139061013624630814"],["11384786027365736233878021178275051723583946518664743893954280608003042568407","3019375741014784427641316106352771321935120836007693982393012437379426107719"],["18826693782306284888739691462221506402849577918925769786884614775477355758439","24317385173330312407558505577695081087825444756948841245114183680891334428472"],["7826889830858942855885566561107941144355037682676074807836855506076172871116","15685468006122327685438085595883720661492627372911069097736127292784251624086"],["18860011398598036653730603403646690076396443352317348030478868834078676562382","3794144708844205887275670620745853372529828763160238646134273659174365304568"],["1621399085866196904914155129727309403659900617120331538641820713540772985930","16168641096325031774533109456442446716534806874207062608590611435349347435563"],["20516616881664839219950642591182459873393966705617614142978493521656457610805","14428217245296194044802887800183160286797301100474382248574837609667289929586"],["17778894644815906110472233276879919123036156022995966153277659401315101240833","22838552399415160802853570880556779806779840420814580640972413062647128620257"],["1101447722086349359768657189690781335742813829050832892704409634659821158344","19381638248868227815698616659212647332880452217470379614627226377843204250198"],["1275778315965372194822609978205358093531900661342041832787172513891379111689","21002747104659576241661628405329904636139890659603599873228030656158677012518"],["17467541616572343692166032452617779523210861211528509833552512001388453791134","10074099426781038955200746365838206002775471174784827891244556861682453778194"],["26572688512316769527494965240932719125741238956755295928184935292010611197501","9656703955468770604860522919124876607371514774099379521079076384827486687723"],["28510932670013799709128060094328539769508184193030616190840515210641393477196","22459401541048626480729848316794101253393836882277709764333519993642951411903"],["27638426594791355583530948839554095463461924454279397045039630473521562653351","26755565274875081821891871715387855260822071254377504797878160805988127919922"],["21941545535304909976625756023351647591212563875302817956436013938071469901629","5486312346041004670786095462676154657098803233739026378493271435938883673164"],["22744197336918645234701924507358699463960730794123379421638153554455743014669","28758936246330326342710284461014334029220485227532392989466994779350528742848"],["9030349186988081585168061854304079966749531046289889341065083097195937885889","4216767957366881425467734163254997035875885652128302030222561581080568074842"],["3654558021104003164845043165393086654453416241364205283149659844098626138275","8961018981679162519979539303655398645846538174285903198943483994233538638691"],["22882593654095720037135375134398274087819789273994139183470383392066690396453","17674853542280710336639588412587663765052199863516042219752315623144475858934"],["11138002945003046537751698273057646317571343289120042705823624938614558385987","21305791137164016964106255997727372365014671747184554490626388770103992156238"],["7292538832669082697851399315388882939743538911681138463237147760638991705421","6422614275074031545773759612207937614278494773392300338399771795742980117025"],["20538699894113566823038159862074756972366558728795372372578089484000848961289","28460365006072083253562905116724639554836506189188955564155764177324077953784"],["17941789114109376275952490438547590260789811748404135313054168179020730319108","21284159757711116587236401395249179921132443822752855035398009421297462127719"],["8565025349619147021144096307767623944801670172857266204622516084929905814938","9220055611394826328667900289617549740900524209522103115827041322499185135497"],["12320587394230506572880050077329477907332313157617430813608080449844728809799","26932447815885572226095595573446796547935148171090359971342877818896623745373"],["18491863636534298552502014933594727473903216355358224902493550559732072252124","28898962431411562247035420817304094081297109505069390478091928701507300201541"],["23114790537484592524984678443654847099018401157985549805243542838254818332290","3044972727972765270482641288236968188146214175025295769352327542913606628084"],["20334865926678283335919457422680950514437468373908168662006816376983087351641","27205100030710540623757286829249426159618412563351968753630001036581781796377"],["13396848968664954587925385950375701429168309790479343314465691761885033486791","24476640047287651917733739963351299479915574495927414470548720219020748949828"],["11276029205260817335797777137556016930110683061855293908514844424582798006915","24325454158961618886520912812900765931377359231222967831941759072306132184447"],["10775355055087663149224943097860320863902071122066334920547406959440918136535","26711307206550977650782803963999547210118506634462960489730626325714397138862"],["21087657146334520408518077370771353156745322369095512535448164977365739288190","5529509615856089173589643114266198108826922943946849113833555448788476637389"],["9044385260100393090506275798227328301439736519136025427573250272965528135865","27014648983232427745463042184985592174918794702323822169348781215169608703684"],["17493728608847533568092551689413389438675436215694656317348924364649273666890","17840177763822903125914046521963161697550370046078267909085699779786483222752"],["18603177428261794134671003029059728376866364806894970221760344058313243879740","2099210032381174342554094454450341523345378267363579199709306003534909937115"],["10761416158676397362727152855373647793939476061690541735285130013561497168663","7543179798267770348304074945185928447645124284430035803056735787230270438323"],["25557726334366554446351304608810780287279676442058528354925872935354466827517","7066527581776688095981693127856770039274979458879140830286021648362694688642"],["9230292001524230654571917566491688876592909126302244185749935674203499767716","11213932257927643989762345258236521969607623601538243780015321667451938331232"],["8308034642585714316878969335989257224295996821732917183652601892989928474416","19416136695052243803890139339559638067298184017602713584439336450708308197683"],["17491648849730299025019365954844460424873392665671009456467691762451540018965","25299114981768413672909711453243433761064339550769991732895243648561085758381"],["3230112592604522282749234181089680030674743458969350005112057556439709285061","18464997761460811317000383608869786263572923497590898331222307988721423292421"],["2669818105783915297659212014257193694744432792412497465747425188644455087630","16900954967957620361879942070557458332518655987151817406085552022889025557568"],["2843507894643261649211291877005905599638346342702789651354122518647306789134","18227148365182222804239478095013473777681459508367153675107938441951426613833"],["26976576532187091910248014396066568134707888358367965780941212959759002183752","21894440706557314091023275642662897305175857737240548835857306888348376168345"],["10518014311983225553307392517678017038198859075189505521651916818075934668365","15152722345505670509801440186830244366646947403289927544057253811239730900906"],["9045137066768505634394113107335692276095102094744231332392253770762839991487","652289663576715209467348707543787447618570230075651990020023799229315526505"],["17116801221798651370963970522928343408488115487463455973940966097390003843804","17714787915950753541828499276051851072564210341050419359507137795247313086053"],["20203259056919155489937082327352542120338408828220992963564123093336185578438","5083466712193246870081689875828633780372172854913645486005028641150824360927"],["6002263766657729956711965208074324951407554114171550080915119659758886308309","7217891713399519794946153856856066625896473195403263641576679221872225329637"],["87077897134756589145306116788260935835828651034156431807238027931336592864","12196167371736608199762995836108209863409823324646173198712483605205709529659"],["23607808609389482694514199947189308382930045853111181522170997463871913284252","11578480674167964784969111999468429175120776979690459944079126307247542778434"],["18091492722898343510250638468386164091405482307003920753195341961355800483266","28945110674560903728676329660721547202224846233466243114890242660765593475758"],["2762113150364993999655059927783814619942417961446874735831820499436925245799","11784130603686580428336218730199578372118897762174076389443967092276039762486"],["7458861404378811940093222941621066070086447514877233284226621856613415060932","28638870909170761229137283137039206108803854264565974667815574987893703210685"],["19881690472830472906649635092135146966610294445473371856667583336933174117044","15905290429279040011800136966257741309464182094724386023037682118545212586746"],["27478117790212535033718987644942251335771111067394072180949907799053131039407","6911957321753839245155407875933429599309772978738526462176490906968043947211"],["5052197707219328373365198369481770415376919499883940894067494510397025719876","11797582869248837640634722159908253353262549353312645332267034631738348362709"],["10211037169177814439178014850102497381628631814071335346702269915623615855975","8269435678300978978325683621374251971782254254560595521724367618889416663196"],["2816601125308026335128964079418269097047339424572746202804467687424286463861","4779271229547907057299408436301864278400385419812855604094129445120229211945"],["24845336825222398919156997828076700804042850328407881226365239520522979582245","3481040623206500143111558691068036777412139525712808264628542441031541269738"],["14780348200075437038492430969911103052660969387230144875352212503302708475098","27548515840669743658297419181429094984490688851632098344838469930290156640402"],["10205399923529870217010838532740555463404515069114382772820124982990624528701","296269809657144267422364330545848751904493149960593228070768597401348376161"],["14971434256802036141125554633038982217007465981583169466346272215588392969154","1414915036499746926440174908730809653322399485024516650543692182121896657762"],["7284483439390921209189413932752487920552095911063633823940999046209685828160","4794829944342395980528164761295789550471205004745363088540642974493481581682"],["13302113193607266006801329360629269634516131360203877738530259990195592140984","13697823490333424114825580612793412304924685037511719213191490280132111943695"],["24966994985216576943123409897957976996415260755107719546908580955540352448800","12375026420709746720748742685774942314746369841484230045919615883248644306602"],["21509566642088826205179088882636075931501650907195865038475547938971691375586","8057502335037059071460987718499986119284831104039944946064874630347920693263"],["5658809814111731075414472696662882642376726056292192101601707861356381843108","8147504739632451128168713446628683044584834293961349346403038954021749786933"],["9106215545368843378065374009123457165325619415910297719476975279994293535099","9906730903944863469970792052697364841772339088003413396925272755685863811684"],["17108902426103174386942711091976507630950567150358631414535274301418819165535","22041069574095250704671202401577550255037506856439552640616928807560039907747"],["17365981501002046366029839278260143185205095408579010739651462088471014327254","27262800833174163393135251728230386619577396789379810610927604823568834019851"],["1044905915677113918944636821771815758425532568885041805175605394893143796793","21999552502641938648775135242407119572978889204405300428455883585458122911022"],["1703166277241301558048206922744425999191601323600494266906232285033055811245","18507847725294714069125073275105592417571407055130225756165031912933200297"],["24444430350484646799219777987509221039361075936536833082879778879824973452095","24140421132613418406983172920277853151137218094929857158102943907574550081076"],["15390151483479286069466495014767311526556538286787305186725354246829178358894","8125407504111757842495751106347543337818083764988941500114845784367452035694"],["14626412053630818824312958840145222038472096621207675190195228690885966361497","28357052811185635944491477278411242665499015904691848929436068216499732510621"],["8407750109250063624944692322494992859181481220059571682027160608080516906094","13641063362074505876795580186399348978039699383232832481423745578722390999749"],["25793170694555450404686137688532713428988548158492452192220546639435920100817","20847274084426756607618654433461573747708051899236270603770845462749061420135"],["6213011194184779705870432294495343968594284413594029485785480158626930131309","24366618602431680847651375326266092842878912816060666548258057967243877470579"],["5243290450332251977618291868767794491113982215761797294582537547249087997432","23937753281301378374535563972265957889916322893978815896138292138467376798473"],["13447672416845664252082953976486966671692249093562324601960320581140629908939","17485411018278167401435568712801588870606794327897738613130868741756539933591"],["2319341370376581903740014946625502917684797616649369902605005104487289570411","23013261600018736322854969221666987411098536205006846143136029849226342261647"],["21044354504785405796435639025752445584083365136312924403832607256847903026238","14633137715095164031271733225366841732866174846366087775983019823678640217327"],["4691066322312324929401277320327795167175689812472346855670646770629301080520","20484668325079904290403430424565168221338577619550367944175674079328594538958"],["9163235586534786223201539670135701458826705715543933977648313124895150259181","10731803491137386468228435272317363015671908818740972019339167527323312731933"],["13695390622565887494706194876830393295308503448525089701997083440753530517585","15391455363442351883428987333046600039793048497749566039056182649759555539971"],["18764987992195648686653880758955971740862306323992855767471179034187015201191","11616938861225510815890888558809648340241901954789483257154156504723083525455"],["15021574538683400944591280458207613054593800620090727166996925196398276350466","22702175906500036776938418840919186988239459472147884185045243166615744318181"],["20715964108873643499281935352355144525477231353368056189996885736035687937908","4549587872314886131094307823605974000527778506126867922503375242498465377799"],["6720593837147101052207869106786299841230230293626369760260703640450000603457","23116463843775635228563286434576899387259015725762763103352725788848790244988"],["6437569192811070097804416786569473238173693398578868184412099744547231435985","25835888353453367812051583636264640612697532250269779978927694091951002621147"],["17841658935757546278611191445365941457402191828593880648424448774501639150818","21113377848607838275629036727483574054662616923910743156040376921959855175316"],["24193118525326102261392176802647054935463949183040581912930719762345389492466","20123771903948456220637232949384521951977034044602107598922279579605024532154"],["10970453324435783014919725138773770932959794145549106957522220451199817894253","1806131757127748866021802345761104832514768845118726081433245307659626626038"],["28546037039334679906589396954096050340774517668358213945621132958780052931225","21404486696497427728646836256135947007662681471465662633016314467004265692237"],["7443407277167979395101239620630797909635565118435301239172858201921977123022","14632729756267242201422940302167543569084043486960494284764567405109678565487"],["5965980020363001507185993839467053168060122570688005924894088563159835196993","18078184445029051333575984955097171615752643950230018964192298882989603953137"],["15230978867417489347400031630693616220109124684274238867837713024245127206416","13313403803515789640118812579292547294580568780417523592406585781529812521505"],["9021567860064440312319642396965514236830195256212482692409665425256299469221","5393747390046771893087626776888710575265665355669131741899477203173334167528"],["8100598772257540114916352555715802665569922877636623412776669748445003459263","8963520022655914193717532542234146717179267973818729368949073446701602709459"],["24196935927881062467696289975294044138722481342200012442709874557088022863506","9207909116164359443138616445824354905677691448260636891194614731781996774574"],["3549283621401362400577001420118028567336856733504937601679968938118360790198","15976910059847125996048340014996406487597495698150818946077704229635722844500"],["24020817781912710013989524324260436806782584316955336571797085109302217836473","26687065303604491408447428896458317360865511498806808651170873480521517666108"],["11783791043111628346173079575910211518409658147913746496805399441553073779514","23710533952382736607349360757313143479661968564949897443120758872934662669417"],["11075426474721325496130302749220457291191830290607278353819230162036553722399","23456376361980464901710786656448728115919966590051859726569882041304639952399"],["17519734900436719203646767989740013508230094636065784789199631990385645574051","20510434215007806391353233091768284026877095563162999848242749556646356251017"],["13923197207368036435227410960743217274288129556315033366792672986367276794307","1465074844782761081398936024988143836804268036137658493231309912971877651778"],["22433941992363174187010147363802610000874079856738737048081253142611236083316","12367292935451176672904399467606918413274608919956899186947083591378566190273"],["22310635945513462753139723823379975806071716321474245282422057448653085108255","27626494882402085909610455870272987493189286199204921048606831697179648026179"],["2012555034032913881098453286827696128850913224180535026547263323159117768009","20907207147004475182326852763131718950557537843607063230631361673642236655312"],["19876593152856708948285286965552414418657010175409131378505276164370993243164","2032988784971191520704605033510999501350112309470422198524752566966713942061"],["11154743585399483487857457898521190441909307860084935697060487381682112235083","6163077233927799402542827943656648446426167780578201362219215906508083449451"],["9230242860588820381624128126647550954410794682086566464036818177244042480880","20096206145237139455976293288141986210831599651744565629873593756054616547235"],["9303345711747512057436825481629518778523427957676865609748568097845238891653","17598571257340837458041608031869561278448876020341014864747732931364418007086"],["19093571208104409418970186725127997159754152650162184873263402384072371782764","5295222129018528534524868229637929352635255766559345471217694338976433712706"],["7927764294263356476896674887346514877063021490205744072509350214925462594521","14076774128325299016696351852953089952076985139270828999909429232409060069180"],["1712767454884256694110636707040570710137341726795713794739881499832601153987","1186208955706967692707733770493368049483867948323188827796935340320844356985"],["9409394024652283279195954174409240715662479094309336474312706245889544010234","28387164759918474261676724228620874830983479787017010474254101864697555048683"],["1199645323591746276597777026511326759407221486557326980306810583568169743257","5421332175548584655675356844369318208214944383923437958961969823184206154291"],["13836333969405775629344237042372750381295705875328970001711407407504809808063","7921851404251605906992120004270879484364506919818089200550600327358615044694"],["16515794926690867134513439135033715659604247760176971624122430183646083891943","9999308697776996317434345439127870704059273582744312848562210345242621320498"],["7137348904992236780204726270941815246071310822278112419894530548323883429269","21364517747727695390492681074902633725273530970801323876000658828053508420234"],["26053708268076191067935130732761594929392784373156356274272704109476083878598","20754461352475469701229484713471495915610758419927191939434951286724794427043"],["5216308433954310776629003260780748068765887228390946711423950375969114077668","10175478380454644775282974115626274235826541792255258770101102721814144788088"],["23824752756469797443402300384098990957760305906279575115531065908407922775484","11838410581858948562040362425818600131515475195318597778862825240004752941820"],["12453904030329033544265838719100573207446399230327183704234715372968939551759","17205958618335844366856421075330483628215331556170686669197494630697057713122"],["170052609774569571893761091394236260611279005597481045386638623509047679176","6515510736963000932306033650348525186474885444001292885640017472714720275155"],["24748525164985529933819633082647787105803003148182377887526951175677120958528","24637977661051321927112156590835619486982580181803163298460218460754263964306"],["16972455028544502303945950625931766834170034869660908563718499837266973576325","4478376038814268112702849090765361457130809814670311103911912669367073899319"],["8233796669592778238133563193030852222181590161935129337306971600832750795011","17460973688416719251594316115408562059319229841515834099676544783711617279883"],["28398462099499021526948531857084469052654496220067754044954836444183995652712","22741528210541560144906213505025799570490491443924894750528124561329318716839"],["483707433123721721187261474401598551404605993470159125500562168335578384358","22897025742134826247294721959904798751475639050155988479356411449648785482009"],["2994943316627552662442918034704321398053996043597089626439532315978883283925","16077620597441247647173718360258954442597419120291660858296302689183419514532"],["7708306311792359088483568461256223635872286657711192353998358887946550048718","23087313967536258738936289857776427572811402837288305326120238133711093324352"],["28792406384549430998370785008785195475567498517599763880930032250694882722502","13642868246494718356873051395727111730623019970628611552752929256015531812182"],["21818507060237183650054995959828861836297996766141580836509170138653959260022","15990419218154716551317029310696855726849665351290929104996829467643019651354"],["19797396937608462078813228497064042179425894051278338495597584854057926187863","18593068960347365311447132264514472141087409203509595932986255746868560569048"],["9870924431076359246015870893252875635470531766516103105916805502885617022004","5004740392829215475217199497630441232722142459269068886716918602266796098924"],["21019381619360503048006970711945143522573356990904632138636036064829062756477","14218732311810368874011957718415836459469750399736916591380655673320294234394"],["20808919941535210310852071130667222989809074726088028978837267043670352295920","25701631585637642146526288917555107650300695955956365101987065924629938147262"],["25161688675152893977476185705487183553279653940671380476190235665978310178972","22435129009470512085992339209340983257038799313824175338701396496886608548738"],["4595783701979339176821969888862908016084310250260595194659350587431110020880","16035927675259867638046094042346560270934881296408743387864851716384941985562"],["15292697661090054903293886205813432672758468486920047304028263220615646817407","6098550412304592440904891991205472559735481568019478383083049277837789041292"],["23410267401199687900908684923914222159815522129570927755765184924745324771917","12295793368995897745494338744455415857959605179800929353652197498567030740057"],["28188592378178198219396669718224450225540853514794027483133061818002953865383","15875909966489886715288163211838312588308503697455614571846211613175206789813"],["25511068785479022619833227763558837656149567678913667457175385822403740993339","3865614423964877919237833136755330653540750653133974956460005558958969505643"],["26784908867319826009821132909291347123280230619949577204324284264803894795186","18374059568985367204241965318598878452634887303414253248337888739580347376773"],["27667734855045434890326533987333237423013034322181409785370832507106726204974","9585406442874275670425887883955380033134873575159653172083046867074116650998"],["18804365324418028276314454083067052658108407046182193871808131627449398914969","5968329888542393185564577755563028929534795556298413898722406458401281601472"],["13502761647370553270134384290306581654455942441628599269491699657016589790120","12454588352916304167500696389289371130331682848522092569480397061736976041495"],["538304859001434045323747545764728379633401668598257456288727621291004670328","1719418890187516566459770518884654999036580889776649317305526001838880854053"],["13118186257646092046486858577411773517471231066720995721093016413351972991787","16909224237302063826414984007100444095507708076780766888317243801853759490443"],["19219244928921723093852176419947398702606611100308806843741950405540825714415","10627236962658205976878983907915004401625734951077090587026452254346196396533"],["4367272417918702461802517012112266221205699890749753201620863152443188116825","7004821046213293686640167226198938845244709889934833387934999938206600843894"],["10034773241279667339833715334414898482263946819769307288869657671950187558144","3548449500067150845148075293654979564873080618752775384981084323061574877562"],["2354053489117299546538585017576724444010586461268038775046563282668696761777","13079352324537440511063839654382976886154495038027897045783571064818125579486"],["23210989621684684204198942000645131066586501805823942901197830629404493107396","24906985366597644898262797871618824889164997065742748268369649799525267216789"],["20915192405889454897945359649010395489022860968570899766623986698604207109491","6151592449902639914651203721181850043964039343543021034327552243775817308280"],["23836952902615509412950020149032737827441206196232850916760971778986291026872","23655483255936016618056744076883449028922277552538840083096401447047659697189"],["190707827633864293748098943583285845081159017082606262354700781691021851608","19105570389352625683014364833666312928795567971650046247429012642323719980101"],["24210435728474908940868844241052432979899039400875569511255385606405734974344","4546074004088613839134754002144867313782503166441262702480194479377835664003"],["16920229506707044484234030056625520399468340515454778539551554902909234828690","1696697068878746758641664165340710235879189663290322602043723758755613473645"],["21869715650888394051865646870143495126217584510213705770531267539060788547549","5556328351667397938443045940783750703980819129103048348162663796143589874654"],["10180161434172488759276617476191243900162397286601695578328222413926990003494","1308821365747189999462238776653032804550499853870192814412588654594982196399"],["20097061259733963540011088083803762124743357345681654285625270981286367599320","23065083947397709753394921902515369493962397485786221486491555685415540020843"],["26322087975366376304240561292848106666141067374732890200008068097360542207625","8535089733990093372207639846538442004905722641853049909530584244407532567556"],["21001356946337623241779494085463285697228025759098284753374861877803672619012","3820030057311361595181934972574409140776991675210630286625023975536036112068"],["4640732703048415298330984405235481733711524975967112939887536295373177018619","18122342734229051306253392034737358736478917830139673129781872812371925107608"],["2419078608826199933168874700406801045764949311652325869022143825665511618040","3866421987974393601622157599393081800157315616188926944414349285588798305869"],["19554787729017179535391522075840808675903128271378820642724900726751236203918","25666493994889276117809868238654441335117683750294499893128424132369725636100"],["5242226997547921297882778373978778734777815203003144956219386589562531577107","22558833721468797172633545140872531255628751268200405934368228724734555383348"],["22459120206044618193748223339340134187537856432476748827646895037631594837186","25881180097877520936390120663036153990246417492318140234803472778427169299595"],["4674574263008833923085704870201078320481097523445047756995527117907696991184","11806441668476133682432909710894266707047410695113275108662933903943819000507"],["9516915597711541169063703435488437881355189422472533514662116348508516504277","28685983954670914387742001038379683967980224353655807634745249464552815813222"],["17867264899910382276975693096923896200378618428057559500934164761484257947270","13424177446691486470520572653573498777530167442323952341150817126925544994275"],["18419367588952859718702052263692830445128268871475036506032269970024489652895","28150336401314246880157536785405607493235552031266697977623421058443069829996"],["16609981613938127085098477392623415314380722831401140071769855466386369318731","1100114996151442758262398901883010260170942748145642839567760749979592303031"],["6248514574185172469101378744678963150873095187339120824674267207279410062789","24696458834418152684042232802850535458077337109207222253549149125158478232123"],["5828993963736578093040899435758359433356664529444186469088206066505004861826","3574865892245524751350861927774586718364166516137699066582174897625994873077"],["891935879751300029262303313164066596560576596063402852864978725133297079298","12913806307284889016891288418556022358074302450644605154182620816581256477037"],["25436392598313333939530605645307039469154576549997326065800585102988058704525","15739679918616463394108419829121199932609190899879720619841265524037064624827"],["7707240329730468542529224017710681755719978029569521234239766610725335755400","21778941372889776790799016547654517500606651179170492627837016117161146280244"],["27824345661063015609259502463448413660303147969121267346614454854937137836755","25099975137107288746659777906062236520727545117599086984245245804793550073942"],["21124694708353831182495992774368120944361224531017930079688744879031039203421","10105609359353500660334094272478828132320622892690893852626238884249336000415"],["159561561227395415320852056986830780396561416126065817914866192247097084055","10921460699268266644467228718432846064096906641901676460131676786885751292001"],["18077351251515370972897388996506229467886421969082848030630762564545120201357","20736733196242211653795000784938623555373400649184938808464978518199754587261"],["5404362347084916516091325570658250587831608051679934095904401319535059511993","22760767409033444276855591392593650238054304211513569297599454090180825680049"],["16909910695193777881978953000798208635424678707195262328057915621194157597167","27496199670101659835935930004335375915517546411909239733171127516422565690367"],["27594426752928350237171886966420134895593944584087844554688134705951902896836","3173940248285082466167779019495173839867204887327237440529337413863205038348"],["8138929030458675554084575849670051876609117633861350862146992470989050745164","5355187010305696605377459056344513270256303112408867279983330929665180728014"],["4093261941808122812732472736269869312794776459919948424966756965165245761367","8830860342001987979065329465681455308400700503363686684290459572489850433093"],["811225393266630838509046899355611385680359601754541654769622660352948397180","4578544417888409118650167208846195678807721595934165804201878792497544935193"],["25383817773366336484045559065839767292160640534373112479565220597120856052817","19438303618231775005677577345683946921326515221245880889882506410655387568010"],["14996673007168409793766962649981498385340235776747042435839443778215383241709","21133173769794716868437626948736953498732163532890505513701806283557556182647"],["19333794874916390621352921788008086932648863166824655857274825059160751879629","12662910480384453260393048171300458978821565508047977690125748688256634509576"],["2046209587905582751252770306510019747941302400780699471907274427180276680187","10126297268484094744654060949352919855827758986300872577918530604655555633734"],["25937967906773991201989730397433918722219048423652679656794681583239770091212","14726716127142314662354236975313930162756948533959529679475443419624246482849"],["9110960724020885392080154252677754511673610544914572927040339062625643572452","6714113477506834238653753304410212652896344111137068266231067365400298866929"],["28029575341868231010651546281729630921468035288101660863559251075671204508326","14823778650924791133677780341249719471980925369036480784041562334946724020400"],["18357169755000345364188991607358401718743874885152190668257044049494157726197","6802153363915692898122258750930445187061667074107600510654366731178582139578"],["27108147795338715410700464964925492439311194357109838845997819945640061476138","14298449781225440673471748502877217838958310836201306593707158229641543197445"],["17310775889709469622961476297686756376845051543147373495879691044166941282126","7581422348387363785739014759624142856797777727921947585270580062620601192180"],["20360889181372151261269431072096960142024738975635563168324479393094492817265","23056728915086953657908475194379803732188173163527095528450093749778891049487"],["24669698164156884394956027205421726963194196590345129219435655568989955315514","3335053900108902399785279148733368104780182758831425629825050637918679178137"],["25766344613168850311043815679847037411711635807063465727706929748631272106125","19881629980678277413729506509841825644293526622052290895416838216914043528331"],["9505719153575535885989788848309526339603911362570073927438506462417353835942","10974083808059328219642883003695868402323211491721719294975194384694402018182"],["28654191785557614958846820712072930386602469812539876095331011871984584948073","1722538910945993294962801035391811657612346406572657916831571158442200915971"],["17235111848844851953413624836364103133782916448469555848566103117078166447134","20891845413447499890063384489896680705774644637596333823669484903686072507506"],["14453238803868678280138368375654157628919166871403541391488498859791213612981","2009292374296935700239183600809743021271111257854196634728445329570786737102"],["24888246795506479619517969065459843393534594492457188035338914193697776763084","16410127892945960261880305164318462627381107575982269509311152096610391896437"],["17894979869032307857695200625204123361838990103230736536273722374785929794825","1297465979377184909510778028937575245255518445679661561134099254763796791409"],["4207302975146958755410352233181876175710052341529221278596579173810839022656","17208363012077286990615831560012310453094546717382588755245821973511124066757"],["1850994055747600742222184628747380318686235341874381788140465865271915099412","19376018745254035715295379432049451723051088370180025923842210440975571339465"],["10680087641694792805638196503072478065952922171376520043360388814938067335085","27136487372651719334619672299166287998814661081972136726524672508600329562579"],["20168127386802953625353037234021116165417223081519741963940031818978947086534","5376340829707989722436212316455624007886611571703389479733225467267098418471"],["22842872957848995410398029695203281044043750322752706908208792719966827485917","9022986062416461504673422825027507519433426183685404765210410789232737339402"],["25788220619813487301180396111149663494237387010360947984944163262010015351900","14767513453658958515949101921988354922611011240108864824090584209290629908178"],["24941874027090861499721220068367238812249669643005434279266620375805434972993","4180880436960805622511365913429715791963156969962244312292815493827735051541"],["17086040144944275078022919520665432397304948960650004236082071012311427186736","28350128945213441858366218324882735393081465056892212578926834916758104630566"],["7125434070534330494624334928595740756273774379637439877646990935999119532517","17345890967130945232688573876896813727236931649300133268817789840714172511740"],["18899913389472835997503446107797955008823113752964613348903315690628346956377","14134500096816750807204763697566514251761793077690206738456665119899633553563"],["8800103221319080322876661300479066782021851135565091374711861013712004089853","11195981226939461993806389716650121626705714109889417443142050946050700146289"],["7651136382888693911010402114538525194530840691127618479213079153052603038485","28790496104956271827275563092654579151256268564279090050552854900078736539104"],["16842282530955976695868641676677078189552395460350222559367456777230849639167","24553155218867741166323982260635027411840609984399531641672548161112996957844"],["25481366465821050933186664435098841584464773353444895945742919527058817029504","19498386888962397443868614739479538215614175995584062733082750915954793744012"],["14810710583345090080476388453107551685098091956370928801527655756274137265871","24354573718570171588482983382000898221273267167611459424324983020140044470011"],["3707006059078178110605837615500487333171831513013463078630095281606797029454","10509269914755733876985211461720446158444343980677078598830640621939471593603"],["1358481005613092934836586117906940433392000725437934380982056804574455409041","16000131026744905694930241385953940674708277400642685665814494425329033747438"],["11371870848718539906285096342409119869597212288360126107607342743934148338797","5062901351659301503078192550183203633431625153815854469643977531391568674370"],["95850928314237727297272342027530398592653160267718821918502419086370986878","18750880979548665288481125059051219876271142773582761414351813902128869546950"],["7907222065759774435382876750917080195401446067549200585637314084726696834535","3013662001802680940653120396894412216126915225673788790332820121867132443826"],["20284053431107928834895227609906392508518854303323784496159498805824527587105","990894894173829517518395409720188499662159886248550898558569117021677653947"],["11128692166432976270906803389089563489552970901317146776181955648018199574483","19905618944051298569682722077443731419346612839513489844899676524294435751194"],["1107164077082377677686755192607696355220292013238535754861314018460118770369","24081302028016859704239052034135044712518301190866365058824456050810766343053"],["26837212949768968981672516249339386399889020174500649611188156757539404636433","5075208216001474529267933243897626571830418939110844266857111528557930484410"],["22841977149123679248361213698385559124041644044085756560792414034096623452480","5921431196390964789221628727915018229016029329078741057438945233616795240017"],["18140656254376227205024093875607133532795282798520749701585444972962655577977","27102218721818460018858783405531798600134801705324667662746874769526717497194"],["28586473288566341679711263390244676028938630652776348577491920563132629763154","2764103566243136189725417944519956260059443536634940226166592934745797741755"],["16779879851369174082251780690927062767773856178958448401288239556076935029336","13985571577465502199764463791061681995935237234537962879710612196908058996589"],["27548668389453408082522038495086142312786875679457409355250728615206607890174","10155887963548047673915984878810917079301008917449294555091108773309115839993"],["19772718102253056096141984343030682408248113592036771941624803115116249535368","15500516495966288213259057435870684752453870358216267736282779127840524784167"],["1321568724693644793719865727342569181617424221395224827319452484793423806032","25510208188555609528751385744251972086530796510172480328744209141512753884233"],["14845401615927026445283412026221895280895677415156789610741660015055690048319","13771248052532270630895577295800451730109988398308775772195616656809893044991"],["28683112763222977157765567209750741589188532875460720886149275956175253815007","23506301030218695246172374067169952539104867463517429668283698619956601752550"],["20215574835444677960760487142338189793359374428685993408702467471501291944084","16533445280319766618044306787252917122450395765782565011335981223519277853896"],["7083242440319070039911925768540048466135079474252007218463204445677169202121","7148130532413099516067042622243978622337654103853795432163587901386676212113"],["26957988248312941497869191635234157220797577190992390727078559836688693443777","17289901533334655064650187565362469949378456880574165210016107324278676548702"],["7299008772752009101886504334211864043183816724933369520689209205984501214504","6879886269923561205047276341193419961133040320476311392375356100614096446913"],["22473036793680621035495523714739188604104672669990624784615841456152318831860","18229742155814429646198746793137293967044388891525924195761705635731088961298"],["14899183808724910121010915291488388759093468205571519799231226030261206921118","17167176490969186434234492681469098464078727668974570238420718628641093440137"],["4005365596416230793632611593371749752926222102992841901303152331639912398526","25513330955369576640793516242398435390242142020548581101057680219126995958045"],["1765360072742984126010839091028766904198742981206555872472663621724568261660","8922875540053327935508798206938004159487790028204866020570180298825993471108"],["27629513013612320330422091541183726030085233547834566666340380944513819077435","22537018312492675504914088111248371847001615560140884327033387161840001747290"],["18581566728089567309248056066746819012712730556259925431560361516935576469716","22732068788592791825391640135520324875951331139185621871289532057757519887037"],["5675332984041651087566410201873848229258504951046450768384538005247076229839","11684564076431894008870880855301332510449141125189623198001346914980263171593"],["23177040826577007742343092147823092396298624653196400081626411206336159391060","12890715934668478259152780272166691321147830806987285348613374924719632202254"],["25186142272922102755427631251868213087824512535738909924887178676771625900777","16845571632906732816143936820257182987163859980803957041086787622188068432423"],["21223360824847112269864114970484679171241582255258080620075816832680186608464","13909110286231894576321805127410039120903722662602439183428836201183771484840"],["15844950186541026581476635463460886909792774086912634705463677525360241905726","16568575303756533622077382154359381325301875562558322345464417806271897717790"],["27748802821246904684046263529090281552761335607892631954580318934649507510978","10706549151229954510949950685226010155096083477564844505907986770390248564771"],["2245508371652676900685192638984695453941280730313301617973172075458245817037","13014760536411631987717806414614857699953438629726399612494131768485071193122"],["5796024232053343186378971933893057175003057675770332663583904467373883838185","16055697641201531945447559428286070148628825947865551088432324575508257965587"],["18716920348145950547334351577629071802208767773921348814523262645546174732049","20323981969997404101377208663860810353750705277980894198235554995474482973646"],["13015420347407541507515296821873783044525129485762216943452341933923030644513","7175436639950490752705105427044074400351601401871709177443032119533924934947"],["18325385869890342533587803938038502658307023039262639767778753643396827374946","22433760087989041657258811071590081631050301802343263279420690984920940545421"],["22860207912579261778926215883000522058745998239781324592311256961848056584851","1092132608562231823010851621412503138667597771811158455847932908842579418147"],["4198890905889412136635748319863833436652450789270860575554288506738503364269","15247411150853575985791132286275114507833909879548204154091939213303142180709"],["22211130590163450552896044305459684974479865346621625809031195120202843194553","17996021495614910742770187419667964821834616758569668978131140515384589180373"],["5107962795418701823047667170972798624742364698851017112702528106175646960325","23370899527154346709507059313089026753889653010737587510915648716831356257809"],["18357672457216357526712269362688315199792038816679543029036776350595505408894","28344742388821297913967787730311630582243522903822358823695445108915141174290"],["16239398706031432662349483250044174711094115178479841460094941375535695409135","16790764853563579460706086060222819555952398906002938630656290877817946655524"],["7648815727713976594627239933766053859952002183972287605278212416226232837720","18423401585631865911233738037572610052938426578085819485747001159976454987445"],["8239823942701809399879174716759773149292497305915801640136508960957613579030","28710253760839601348203194358367059989425606579406157573633721814714736737797"],["7267990396643884008207345042019938804923926006886353420191631256458550512674","21488820244293692205090912901480077384910050852000186554505213653396571124779"],["27176316431224884814868769724803577855457794363322563476232649751970297409868","5805718314962131694853579723465782284017833674156925617557030342578973960613"],["21564563576143426729775212047917714378719014957924520618680080222733552627779","5052293099845370027274310675606916146808006733028640022593641544019312061426"],["18449085987846649378823349391375197724750082803015281577607893489356557026376","15826600767443208993026059476982157726776837730913594627398531529938174832108"],["15485532266313000340712628158051831435291251137396451645143103077253849758612","23967403793776211791870872892502589461133181280499468252519070801035948189632"],["23579878865763353026866071312932704514901201256379471674495639334538844400078","27276689529217349689306547869765781503489381834302594186979568499598711111652"],["10930685080410149125327080383060009127869679257172434911046847132150055304467","28509537865233415436554645308776319289645704082216084290836581489804143844359"],["5296368864267902481423101825375774640182519367600587586606491891361733812177","7115604574980416854657178843837807780118579316597712776542413565386461409716"],["11782818285126866939051877959051322024327410460852758540096779785152675281044","520271698710418042003710972422954820265203944813252353715041472642752478117"],["19392362262823244356634341818150571832143217995601280019551485498549496901645","23499811806174139283926447468640956263144728354415226238671584486243946996845"],["22267754269883868733634070904159066165965996569586025978899649226624746166816","15420240421548320728954703510077429427053033957464448217898577263930267887012"],["7010110612794419324921443096250224303034856922372988487028770017852379443227","17738052800331870385549816271852534290369498246708227750957289969898523652849"],["14196077511504564853976979338184228422403612109761890662141271965388652305346","10924600531181268020697921605736928902621273590234648456720406374661028391890"],["13582272090346397765463192387005508406460888331145607156739429184569945067388","7245940573908501913784593838090781074147409069751275758363149042457256761017"],["21150805633727167409182295847436194097219031645992837483481903192760347708057","18121285872521412973519303002939295195515837716664137374754183054371117690970"],["2992971891337897319486868094651177560666179705451942474265566091225475927609","25675304877330521358481267692041821176643625270019592994121819924228635216645"],["24829998859632666625655034757006442878497183848705277565366986818584945988311","28713920539402407164866545338348532865768989514136202528515670304974223211872"],["12512993678389648864596849450224250732973759956483010802220293098722272611418","9272206395427734761708205204766539654481333490356311954970970756885370692038"],["14133909294217860556278353039583199950348301341062867620121622793691421688595","26784728394636577173048989633969728337391403351533124339141579286371436679546"],["7813696256370868486884093102331583972733753510355797735422827665790468302530","9078750518790603909589839669000324507374616057791576162371375500447922947463"],["6231216515318090147055248033999139651270459887969669719664356142703672959834","25810296877927035062030721542646653492735450839276063830168065369424871583185"],["6904434505420659745773376872366314988395089893622651104115732773693322787351","26042261938830141953595295342855603464463391885120579555667050477240945973577"],["1770751117435639114566965486836629496117257041618926060649215679677771848814","18051424670418409974306638759819221487375094890605289296963860417453288106141"],["24654577434188753248960910697624753733409300871562708793970699695131619931895","9241957797200333054471969883685207261623329798673187925972131254259501222467"],["13655890488531922977803248657999528600920082263019461174282087207377256841928","2821467287695696399070908323023523851007150023519598355930108036766780076870"],["18231144669109704826318864541123501448447010527835085778496259741684696205263","904450708487511997249323679298991060450839838765380746649426517872110120347"],["3384143270887965192465449533767238013168000926124997238039061169307361424897","572863273920521086426073214067832839911259073882305543237597177493031330509"],["5014004775601215911205414982389608822568281676094153540243753240365791306142","22544001225932959597111736599595456947262693470564969496269811398940522910348"],["16217043465478610726037942038262747033228568506027482604534580202841272610142","16460197618758532831384627475416490361674762569004281651522863972946057552705"],["1290223783241427084174201584107262614138323303744677532655955667613844627407","27156154992128622972342582321494887791159903993658644238521184134657754507372"],["9224401440393554788336589087734880077011036344663033051255633580498312662926","6606805816850581075129256568997759349205935682174003815927259101235702613676"],["173643562717213211986635198978231097601326717689646891257015845882474896433","18849617646403071184507300774642717313106490162646412549770658006276368969115"],["14345455831085329453825661743138905307581519767446399041632427832056003711634","1435543760466367410989749827981354598206208715361962322956145176247654958419"],["7755019199102178267955150218485060527840763297649051207232501412298596430700","2085270891996291228051924025034153804286380217355781375622192499227433903942"],["25903103144768402740446081680419624804635204674720720389888008299677731064897","8332427932320353586886444219647275663220980719073181155752574964203221106296"],["8397777690207140121678403201264744703958609429068981971556671098398481818440","9014505680378880239078075860691651892904666820073965056452547408569064230140"],["1238539472928493875382398427934243762852476810775692142223208968623780970828","26136199821368250828602168834863753015329376721448156534617718229987885462244"],["25013598907971951804899160606682967502563175710873897072713793724763412179992","15287815430705282567413726823676660573952527782984907453580760657771555967541"],["9308906252418180022919012637148749231255898938569083467263647529323145252327","18328755712986645713477402969552250989679033037798986369675337899720466170038"],["1700192608149012045104699250608628317654357638469927484278825746543653085746","9239561053172734951850762305527907589099272969257178081470425458739005897225"],["9627238667912428779353281792941507308302427589827600199639475053236325432424","19321115855534353724624974467558001643376771398000469287344903169219386326299"],["1644928331524021216658623381812111961069109195458530855693595709452872178058","5868149103106824512485168677666814436005549745220759658865931606269840765700"],["8944339938201882914114200210657361768889088420921614552408510873795611534944","22857448062778683941340853914130028842820762582503686370231071133596120860449"],["5533594047881906093977212741285008146763128375611290063606272851416514548081","2483731039118538603635962841459681526432297237614694169899281725256843296283"],["24133773120287803919243771766301492241136638146969288396955897726430107666582","10306819582439465817559149599515963284467168328088080371016608059971940586763"],["20474117787669373990695296546808043889371592567481719685248613051951576717842","26034947294741612445409830283074957021331908589205971192656342062477375466182"],["23444468552280326995049412203284278244049179603743559333602558474249858901676","16657058156315896475923837439593811267537176792332914345438481874282188367215"],["8494846534817548338036884829275403645083862819580907016885334355891363757784","14325560163881399338910941540794854314905053211071009153409158563637688062959"],["19483907686412304879500452980777341284509405408639605545080615637016143135897","20942570632437890813646815613242235011543173257686754025182523393177801930855"],["15109345592471367350807778572882632327899335821948186436242173236105710458347","18602458362108378183253110833011554585902377171150006759579411729968388235121"],["11197968349078679645366483269052879833188233475921398765123399698652063946422","11406809858937755908824087116921076675715747803186207713331642890602858354403"],["24888759536528812795688460786721595998045941533999787392877147518740113609130","16683541241978925517791363888254098985701361357087751698336773854951413322595"],["19619045237487327496478950136667910907723595394769905356379834019647554506953","2479547884765379126559066183925728911390015766211848946333821252510144448152"],["10678194431388021207387084093238062466847126935314887096082116453880714530068","10987432813559900917238922077712354052667547244556171757995489372608063377968"],["9896657770785946078631812818748763496623330347201494914141768891010656265749","7677776158808117151587087277676655512742481634574216525117521472023110092650"],["9045858681288376344354221703066303570952525398637550281382033963935148519930","3529896460511152655281749702549956421233986653111118712999366796259009158774"],["8704814053196612276801993771760425339507951628544969832305874980160323946208","15235213137238103584283099854115284956362877741966422322193181335989602220713"],["5382756830008722908393414809073395477887282274877191555924149640707362658567","27716436537352252263597386027829807362845383907512161413430077071100257948914"],["6210834585255522241317597004125811874265201199320735885041072033188978048469","7204561855025544599730909235331144976293360309247351332756135214993114627710"],["20574141894646421203255725586799247771609370283992820231275447729605508287772","8579683236393152874373585207220588851474121294245008473296571591785348349231"],["1330119552558397229644228137324364534601830404226723967651100164606821300071","848333027663748081887859300233362392341870241727257399229655475514248841452"],["26387054493883470289586173227868083939029776299833957503240177231572920457717","22700971295229172827877608951981478140851150356794424021100326415315058865565"],["23150704792137431679617647931105547801337736511514745461332562803863381198572","15430520804590027483962446764999175325847375566700900330132602942309066924121"],["11655158319452419596552280832510758887637271611583760824147628934924055607764","15071956676247036770001877868037999372602287376608838960308609454211005405515"],["817360899146655975805967286784017608873700718979312898016140650711025220823","266425213406033576029307165186344250792110102824393022476443138366485623947"],["22119294357992753774539688595359668771237536534059303795306861509832315674248","6056754102059263990858349641142393174283242717730007635825052148225385449777"],["7008889576490593638137412412581703335311140139219217472774134923340429583490","20316196842002620222138111727057784909920709103230664191614996030273088135170"],["27299895712741646341867197644799520664114174623385192962438310077316764474403","16611556119727947208900024733362330091763638036828272159444620926181115892552"],["25818487296066790903021921963534886602120190286083128948959024170217534945922","11852779944277850961122586719627591302071287368376117574007865924396634812472"],["14750457528452283131134956421585254883916014414746332496563645193372213599880","11653072371646350475550003432840179179674978309426031912919938316031377168867"],["2292837853341514096999767508592650298274113133023797726154112636192919376130","2808683399740908423466435017206337543765896051393457139174962061874664665835"],["8262035594143954301828324125149594487002465796474787425918389440829372446353","23349116175898696587350269659695237537951241418182375980678900518138723982697"],["771776319872126008142790395918289733043716849491210876027607702965959717704","3246990999083854486447892366878148021841996064606765024072649402152470424174"],["6449516574762268199084900399694911397305354013047564032474309873920252257211","21644229085387792922966192613065644157032991334127567419451531463348258476170"],["22397519417499047917706305432974595240398762722006948574965515711599205527010","18699567966395961919792590631205345122334545627570790813096686049132911307839"],["18068023537431936014328465601766903858681906792836312730644869494326780982782","4713057324081465867666468171290558041717903759395946301707898379095524581283"],["13373712769473431303715138013570728097562141876036240365224877541317100646531","18129339655283391522982332478731781829202844274359764129740098855765442635870"],["15760001469075047270754511881097864685359064152047576232638342993531391885258","5022247288384057005744122098597535796860972193427705216634359608087930414611"],["4903870838320079349957011119139074914394897487283272436294540213202611797329","1124502668117133218034540086862393981192389833797045411105480652340621178951"],["9802997704687777558177170257770784862238991778742354524607629507827239995823","23818922846299307717004035704120883833022240563034083388959732930900225828299"],["4844969085762885957230405350976982325089018347794842370046104073081736222562","22725010036870132484052351665652771624109170224853744903447209083190727978128"],["20858461290747553942040186907194520007889021168318194229841270040225777225545","27080833421366577028856762875146576832196258627008051324911569558201030903476"],["3817330016617047709829983418722102146286851046741760523258596344801390274385","2635872997554414369551974196993824418952546963614319788351786065585291208529"],["5431273359229215732595999698562634973991497896753442441540226645259480304580","26423660140927193551551736789322569560700919403132050540079355886522580022270"],["11179760940242947722530726233084567080510806489394601830849148417144014548183","332530075152066626654091305124969338937767714271736412463550835732160178812"],["2345450865479377774884488969750688590592650746907750278780953876983721665517","14431557266563160615228334353373735617413625665527471206300539284842773936633"],["22645866024290036450359563799201760283032546222796275058811511311961738063272","20740506623988183143894785188443789610683019663790167426955407091088656398200"],["657125695814920516680363361629363941984624420605850586122335140973995331528","8253119975613132405527892234029321104118910362739757557485837931477588450521"],["26248633843167034340054985192522397376887683649904627221323132302799132785235","19161592164558689308597007285613222952657388770096235976967710490751777915712"],["18279245165869934353020785488573247609405561288750468915317537515326408707071","28765461814690489761321907199137501607383099765396144722281514930201525648028"],["23694900363495159825470847732930498222891322089808846900971318102474516712445","8879893747979629217392639953905136264809146169089504651583762083427778024641"],["502882204764692350998003847917812023302210206622238228509621734949172621958","10704504270170406123526216937752970534739509338479113713688546817784718666393"],["15169386212022034444233421911624758306336118438533095023615906608967014809314","12093708422156814021915436397819010653393813457814948083374081866369709792804"],["3190423769349924490441145935341199074151113880771712387081342931533062386426","8721110664575460785166511721506619953652524114843069658087391446020378202070"],["17279352718826906733901456643096532596102583476619632769143950737754400359539","588025231133962884467025940785392412330927106334475101621489097896045727870"],["4656592088769991334777944425370760422475046594662568702897759972102133853473","2022278393301812769977038503743616586873953353309505199718249895404210265882"],["14896619444909724821190236966167681424647651550851149519667538759255130186827","27929179681716131751504692188947642659594674865046227602798136729930281693570"],["21115316278693969977334249966300517547330948266471684115059371142197089353757","25583711081327906130480350353332723927499595791878572010909026238967817950781"],["6212327817721225553729428999299450075759529668779129321608684938002570613402","23588494669134946569895096310571885240623714511223330550312790851841352141805"],["27236791586626077911887519825309466063766129855898182959637793585463522765779","16560276634033126478414587171586014067778010452023408402137320461820236808450"],["24448489911061671228139315933327603473255285108595140398784123976025144227445","28276614310005824066737847452444934863071145798866009573898072042829085156178"],["20252266654858691123486628941504795403148880395537641210424285184991340144025","17868466752107333235298849337689345732188885058088692575779064028075302785085"],["11061889584914376042231128149196252185244245908222406955488535388723811218768","13224642335197346360070225745151463153719054679187418279923571966368743787372"],["19919942457028690834971509547564028848840450269845207471863327255251791559382","5212320016555057664209309579509807743218644507676436239830534715519347938968"],["17197524097870343204341335995978478102668005373554614475858456978485830095449","16718554179839781781810276584138058124959788745913966621716998732927567439967"],["873848718182839257929764269303788600179580455369525351819794233334854048484","20039075938427225779463036729685212344663328675671643012272681611197633367173"],["10810373318496788415755891805411317722958903139045991714377571907082917352471","11411096106000669191179085498842656521590650879888741875257291341377637490981"],["15362308153507050719595314751410100589829331725248322288840311774875937910757","2194881021501910913609543337522303075039611742808236528242549884041275869372"],["6677030053563229027528234465839763575121408095789488529892694473282954602414","9270237943921853167466415340522696640743613774932583254570570417051811208187"],["2522012908258438615789094941608210343663784998722035696264495014365695316023","19564663943952491853151617782932732961149302228919329002811752615875050294285"],["23974782339590259444010689756329330616517485287842609144744882214543250513953","5905495329115449158980812648684492114480365910357910932551176256088887996057"],["26224930035939535080609266928547480244517913765417747062460711438683087721191","24318451921569837513879716192997937190206427289425551956630272658429999460268"],["4841718118781469789582016454187788447859213157094683053107458291124552937160","11830269630730652396048948984855330702193301079449360312917408763133726234524"],["5372234739676882242975325519450247199694379993216994005334516151918301024447","11736544827823692315421783883216902850678469256830998398543127997623841258378"],["16210427644945118277573860816225072248659273714850317503346367171451802418930","3415778717767850250733160430163583464754603947989702235608441607912923015306"],["1533179836240079194210977993440143114238445944976255429886630732982342448032","4285438352287602160848852580817355031344178970878994636478766564302416211233"],["15855626538070674757786702655722131731812190324309496132133579186847684747118","23950886222052602331937128489217741112938631395921581380378001158484223875988"],["26452389717717322865884432037302883800777828940820121863912642532608897236382","22146059831747450000404951558097723291292369148509595008693374400316339059533"],["5882174522228115939995916631382199159147498401821212828569981528370701486095","22633054593189815061363528629022848326541036697427434400693622810995330778421"],["5679522166040648383549581600069679982492432531786661904490953685629522402097","9123789242550571004898425126576620535241731222967391167833070524921005725801"],["1579745010732639967459753461066164976349975269533022312556076261962415018913","1429406603125372935008862410605512511605811227167182389456025941591366949050"],["21696234922062785575327285707267156093906878379801412921545251670516302759092","26642172252098274521236246435900617450224848276084438911253936480410957003576"],["15541592565503694012869197616774356468011658310805690923384838679084553487900","703319971894654958888153359620439672509591155922822068846289222717240087524"],["18675269360433355885524101637887159267829778511320158435265445440527195711058","10523588453594878525647948884702165821963115204045615272665051576946769397641"],["22825760308397148994517172778723231149930736112000998336333439814543013559856","28270551420108716616651606693692287614850915633040733103394366323841140543955"],["20137264199790232049458915166093915936150696750870998512781103011504680826346","6667505083822573704983055209661565867138098254205235790872742318914119762735"],["4695760042998786814803714687818421840498990562486892162559798036540850403957","6947120667830667579173846934748170978216862247976683405266138937554785649410"],["23310510237481079607553318822215158434545576001528246459383845346238172374135","26286362976625290009520040371059552597022293415312764375361791489353745189604"],["2508804226964630634780314346649537965571807908987453103650579456959705672783","14983160305073101953540315990787132466033896159685654634056986763148992178352"],["15717847856137679125240994278881755743959226521736092117211168729792886722227","10593698207586925098554805106605357045061139334002304139814743995011558162796"],["15697721606655602759703824425893553171303080644943805621877938685990698138617","4772474453853674553809894737202304581071483226643647883319189742850906441971"],["901864919062422627041438981488445763575569153255704350308386816208008239080","25869459000716771898887766822841591311245390195280814453934267666282059741515"],["6582334447786479120059204784832217090990255145879276308886970699472050780011","25804547934194974715344951063752313218145506513019462715680329727352368616177"],["14827379172988375649905821604317241625935048927845111432939587860699193324434","2829534319154380130062309887906540553703123974644467473300142784706233250569"],["27037080681287805657925257708231999827378298573365396484436550023916765882114","17831035827390402869660608500935351161060047943816492079981506532552669203131"],["15735047514469903769514688962839888170893397512161824574672557263618510207611","28345910117723531440069909689712535836676152913448849479509736437853988036639"],["18610483184674072335479483751449408008020586957536238410254343089443366085262","4068165112902794293265537034365083015901669533194506910013301591382490632845"],["19572712423100994120934593081659880907340515955716316729684020849427758965393","21305375159418616678785533684728290598922557981672839722499699004468115183872"],["5516181236337357840456924083564383822497752662343423583939619959984280922273","7004952633297284295078644349387682344716404338461770431573587480436063586851"],["21458000989824024772514709566416258924411716265214643048462904958592665006965","24826071463193533646214942758755746562561818518878623008612661762255132078051"],["10182605545327131116006605797178703126915440916253825119791831436443753586469","270520103328291202170949268531724874878975534182462732524637925237648446953"],["14274923485715212923420241227209399639695037075059746694915969074538832548808","23257485661311878533941454950610186717642745244156814085058902772332797323209"],["22557544210794984441984153251661901174434359019145660998558502005936995688309","9907193683216413635548286843849015843735860227231559386331100034396466950755"],["9379045191759840004359161089828775289394876632402693332841929030474361549855","7087526782149238509704106227600368309180306794666197449698617678404845640847"],["20336473566902590707695023919450654530345141328901367338337700536592942849497","9727745714421037414805152715254589473958466324471986082001399659704961921824"],["20253546947727856239052157349459050361673411225010226915983114522133670087210","19812615474702134880637589784183669502754548680707632387800641854304660461430"],["1936488404383072065579020911734238303362438625993677996237868838697697814663","11390222096799702451956862368728237441118292537258443806397053456949682490650"],["7896750505609740951529656306542687737560826690288531688576863819634641599998","20139035652657792759773169352942472323192865384601149474123578859399942765663"],["4570718409169368700892359273265145228870452538513871609111822648879301069043","20998583615812418202925209833991754413314933095447614262551778022009716959977"],["8615482623999737887790481024329917776352127424936776212274489955692531918020","17417486332637637370667129570841814453163697050890757533400691254744220661465"],["8424154745802933016559134952408430987463108473975360321445694403357428803820","795342534212571269324528475731785356546605074034395596004056421608320630109"],["21913650380984719303276373840957325959801464011544612355548367655471813199986","16682043778713552725686939564824576415890308200464130293700798686265850253350"],["17825656510417796278018999370811534807478346310131968637730302861225062180000","25728830568501275190081436357478070316606822979319102374880126807624970794902"],["17545708319354178926609701116194394400176206389744709107486999632240092682726","9731305087064543547816343454170873988229014504442023331263198092131005719382"],["24019829255540334112098357390527220031325740055702193514335782769962886184757","16468219041498341567281931155880553267763017545915131293666495032431683337974"],["654882083048490733518179393011815175567405115142861799331509472087815068474","5954626132627066892517901372419422731479944310762462632560185171844973132917"],["17595965388203370999049639574680179992863306094917820286547799526852709228583","19966061706561212291586047865266740727897381846229821725283821110023789531385"],["513536733769346700980576750647769440911381658519472724021483180518979101129","14377054317716858766011504536232203295292856086908644585360000897641051002786"],["18793405453332270817219083859289615162145668244547772706343042681387399269825","20243793778535790246293441536710254047947951306000250779292874312319661247858"],["28857905182000148703536772317462749963347725995945743360959121107378147815688","10317643844881221242542864006717544527658237032725223901492429554559743691904"],["7338808593499142660101572560131578766889606004315507043588010923114728203354","22195215407203037499321011888102057498282122206538541038775583059097391854129"],["1889893046889815609974107038362531831483870395416731725229682391474912588824","8821902738795356219500428313902490530908906508374897651247654471701520076175"],["28873389672184427032752116711808835441901634314840160017695872982573560381087","14587404978074539231997252626333086325087085244145988621077322630635555910542"],["20100108296261910781470610051364354348772303815803243076448464466313699347109","26266373211618549014906053787883405578503008969060240750447097609152881793243"],["3869589665026515154064903591786528488725786782780627291778996870948088688641","20594435963881684632212938810828306034974426084719898868739864948909994628998"],["25869081559834084529519972874594352464735047745978550403393301617441644003443","20988071506961450976873320076546194840787408060161980591908376572533171402857"],["17487664703978369080593249824272099351008421139933474888272498434242387491531","21303496055412380276746357838182121760786818731382889772911532154809995948975"],["24524887176258599499888598594581522998051394625949848783750994252160021878868","24368989144316121239170994099256940825074581302662364041912928512608707842180"],["25021331021828891729355153909085902565242268416728731934111126214553019243696","26136400545228786728205133415688780165867203420098146580041199504815836598776"],["11604779703341314574674392218412712993528850671199552542697739761346951229853","21121666365246019224352754657634115738327222997616573347529356471281487589854"],["12803721845408385207295004117198275952808501255527375493839040037707907705234","16846242372065340021130194782350270989870320405648151569891594992794513804560"],["19236420953708168224227943343588651866091806349294205441854858005562390561374","25933969255970822107962252378765408228703083374480927599305175110977889366989"],["9879265170614831173587750284266461485860851634585038634389505664826373503326","24428479820704744887575134119935593982983648563874357131264308307875394512142"],["26987263315236921010757226626826390604569607793422935785809551163919498225322","26837104205593668088664740563328038931596815340346989070642096837225974295771"],["26469217291204582893746090858378119877128446017976739104500757062951863312206","24423703913768732241376527249889341150848687813302102004900060539486206953581"],["6355743933512702686630227647294707365678078379828553127950697469811152742256","9148482044652835592815418382576640667858010386973320880763831316266134942882"],["14522018446794318378394854942072233767178528302863456702389085939273790818678","3878451825281361594185642843282949100720648251433792091934118404519446005223"],["18391605460683231097465661330245050848060133479536922220938156611561988588021","14871837471945106108598290985463778840182146372454414476308594882050757531088"],["161412517027781870299093974878220609606912848010349446800926146715524833232","565149649787949523459408673936470011744514119020065481273023332776695735521"],["27967886752017824761934129131836934713915468439437567179712367693748881044077","4969430674567979263894669837245887651499828877710635951637561660967773863294"],["1091607056810856984240174389623619387911587648423643165285309778357577465812","10480729010790602794256120740300222606342839296005104166909189162033221553916"],["13720090413382094034404492270788875687539809336311746820534796441801901204540","9776682982736697901206725125247931432011390225831680757742774777711607559708"],["20432358105021930647358135968356909928565014327575284747963215767384201426952","10838137376366168710831817017857027684839910281785371425704499785562486065021"],["7781564528043759396688363992249480367075424319004542702908160504676370855640","22704045673428531068159704638648152195904678126069700829403779991402645881929"],["17206823472649516920879420735717335426876237802870065039028628938036725784174","475567787486268704749074658604191944612378563904442327524107477611104422431"],["8682318892163798540858842646096566172265741265023839028609724372525115124196","26375915284124721952313571117781810453289068859738201695839387538575700540649"],["8332838327620250059330523320127393971343209421375385540487836658455488622829","26699867214025551111360103385532597189946451047782368895383861597261073103458"],["14418986163558710299475076838900773626544865090276140725568015890511776515458","18229040721730407951575243515083536935394520298634586683831022829426490303462"],["8013375042765083098699315448365564366504601289178319755968107791339227315499","22468880810178936446487366423511242448633132566712122897594925438508493803853"],["2529997708732395340551339103736040503440947779527179548488360753980075080294","26902546252413738711191850657462917653346174885667485432148371008375875886243"],["8140126758840520498746443591192902281281626826881243200012734401699739861906","21347973673642573693215753910000975562361745366100154215082060216846541303123"],["21123971993511953315224415651548672187280732383389606554048457080566824911207","14155496995075256267407490218613413770986036510901224971840025293362223697922"],["2955710455115757821786125459385639219781135817437944080413414448421716019361","23900180749231873661674994083712950181744701817085655680830571180838399995982"],["9369067180164875458906547906556654083442296966647581304774605033110991591570","21128888587655855882412556025266345246973682990689314265695096415075044830158"],["5357784524731150216775606579687874762888523247604094406579547070574720608378","2204788473092869864008026934648095140018594664539395102496273472770751605200"],["17859334414929647206628001223156743912431764041323405293051757214074484658869","6357085443454397493175876372983260711541407958422538970315403637148451722089"],["16030474721824818417062859322903674101095160475210406769709911750864965833197","5017282041190511496835803850679862893443746185859449803501308080259333316702"],["18071405606422997450146160189714282230835590567353564968061692978225158994415","8998796172003286218359752543254562542136818872378323220967782404386448702652"],["17948436842205604775356644805470480645585868902226782002576506116155449213707","9397645902859862647778012024987571866308969459895423752633012994918000671815"],["23588372708941654343975948722483829507277147085643145528216183275711547216921","588536514771733404903775812184004696951453647537151163448013848238175425686"],["2653188817602309963956955003760102576852112253541738529175661326954762106133","14974662670148209053451890361600818471191973148646342022577453853848329827147"],["8101383575864984722307958854328774859290331543838965853724404561688788172336","12905996681527812512070410731094428598746095285184882371285938752311552022949"],["14878588429722499255438988293775776449525809860437836864259937698304715344477","21501568663847182072272841001951221322576360576300763983195461615111687295931"],["8230251668353032160609903447418567102989515529389613345186550561226331739418","9572740868369516606965049053601371762882759968574370294236552176013902341589"],["7933830681591475268383307326675457511789730288341147485488992981877998232096","9152637843472306482615087244906999806309524321864002912476019643206261984403"],["11387794358618982725477937877990609038620799951535135775335084695379145489986","7715423633130860954337764020207575903814889702353311929481238031859777767703"],["21351382267409621517540831488436804103488415992330805541647995185367056015087","24854397792788034151611781345972576855041456220822078796178492313737650743507"],["11410859611359896075610681234485732622558394768854073526061975623483035601103","1330676096335609767790121251236337887912011313866192970507396410061469558834"],["12506350157426712846702447932373397811686805171076648091832755142165016751963","26033927979785715214201525628252892442003430311833641168397618836267386469469"],["9336627145587760140472079988059206170661201816731075884349990118611628557489","2516282939213718526962127034492383859105948755485002742261449447201217067275"],["13181492968196360228836642922224793456139228317636952484736249041024178363233","21199814753518369595951507138443720125471921278446135539224067080516522918445"],["17167456133657738470603041946475608179946487056280946279075794800333033252929","12832898471315576014801130288562794295648124714241276954478269535262881170560"],["5680643098024320421284138308405030557613763655121105974776259145318824837203","4646543803748517445548425828250608281654122555189884313543378747719041048144"],["24546244860816767437833589605571655653356140019268928713674651361143291993943","4305192183704281882747003706179558264574327256625761600990582619712646415543"],["2813678505469080116153985739383527388316500519186825142224114418186734084424","11024481513763560477534249856428357499919875904646378422448450223198345209176"],["23303700724090222792523410964774227628969295875787235357076793619394698439202","25498464266003709412587086679400978671623927926050699496944216734643945647156"],["27134471824627547145958319661973198564421504420106695501332704164543377236032","26329807627224589069102143855173573784068549787865334546772389200827973104210"],["25546106668758262949391407030613200971121309663736118937989263486795130398918","568973364420763243366983707542919052925159934736374326682612001637065171623"],["2099906232072627544427820299759483681135899097744125854772627523586800079908","5446043769227504589071220854785189382324778566029534354228635028344255138252"],["28836018423841435634834246230819547960751565073531468195964397667431496687361","10473756941941186439136176150209574708307697234334673862811051450190252622783"],["10533070504904541335952783336934906829385572779212371237823190717565772979966","2115213966254936162604990310116105420709656886207623552569625578397572657489"],["8528838646183959765485725094630184429724732480840632507949327126744795395097","24989225087962321577515781422342666261170430751170157217850938761067237485945"],["27232757007059585017743425323586405617664599682675622243193271077891631506497","24417007874400813824387100987618908101799407182547030525958741681699753444599"],["9256538791341322675034777915944900552249892170579337763249888464637694491387","4327774382150363654523253339041064764690182085670668552518183796216867888312"],["7105082325494534694034762996333635489840621046887080578394927582995233812227","6754018809851198383387703664680437765640545156635633159834976406969731994834"],["18454940147206058752902517123776101485922675396132751742335869339021361934251","23915975284132892380141264239030344350102982420988499399838003107448772398443"],["28118703403245665635510474529161265211571993952936188564426513492120776111101","17054314707170508159906857057411295919960095096792851090629283829447151059039"],["11228185731609934057993661596675379807566686156313236524488758868353783674520","25228398925321387323827651679695936491455631429934133826422698034684874709636"],["3551329782500709385389178058607164820421462699968347078216292051155080229218","5673305731396362138253716017757754886244083402748629842298277531079151562314"],["23896725534985941518574787251943833479921122526899629485043625655440114255988","18660290757722582483835280309177373521426364314611771989228060829180924074926"],["16975043559517654350623386108642050680779412558009058127556828268195657267867","7640785069000492032628279360613807094864783110638026386666294041014210096757"],["4814700517942675755481363328983581004497887153920424035232898631472939846956","27168633700815232699716463341831420477903837363879027181119718271882661736504"],["8678920015613041052243150928951209404459989347407856049803766490072853381052","11806478578238424255976487714959721715785459668875569542745771528383317354761"],["16507684566132275098777001653222352817006635051721242040613851125203356627653","20471004023754409823704665164242162394409541976562409664829666143167510903564"],["11436808733549729037534489708071171207509900152098993875033586366732828670444","26884900240968320653299765536493277395065787248252693324835237826279679266780"],["3607710934384204177006992659897509797930149607324502760040784072184112058356","22241420757122917566000127870557090471241759451808455800663446311417469461375"],["20779224417496468020025186861954019529393723284209146902859234482753549423941","2184664929934687045029448784456096917956076555197817294208099493365711111891"],["4991378611994489521162415400829423486090033639669572302951686098357834106165","9442150668238035329114394170948139116592797276449998638563390669257394750174"],["23192553892238331308417918388057855379848749536989377914134615515473560582727","9618673862411786537629849957987709927086983040083537991640389722545974164561"],["4767965974611686838312564734838367822960154460517265828398233757482705598844","20476809987462941465182203558800441258959232103882846351853265473640314011690"],["10949433740178115719312774865365930270454910960620472975166929086249955184602","24036370834300060002364961433912980539458866988871035630013680531717173062686"],["18749292485555900080947298628443772810413134664108835075432638886614670882755","17778257383323490569552244979724414181896470733470387868194634668951496919527"],["13248164731436105694686914354238943691708613699557049009755535967750406442654","25076400730169775678434863325918835283480681674048256819471865986337657367372"],["2455308845216413959875610946215971551674841068374417256765199193336923679314","20287281941389756221519538914832491080525013380454593292918864220570314120578"],["26467701372581971677578878180913512840123566380820015730178032328158102731959","23482041682017281618841545785565606005577018049768241951133488434957327607946"],["6915873056750692183520890799468653076853609192755172550202528109020289315148","7075576924163222845800905810498374842081505708110953129753604399015517242913"],["17209460910913364169697889160894859005062549182526673105675871709565803368057","7396850789096710711054060643129756199655059090916034130405847092391946023392"],["16423230646597586145555140747831312232741450811633077072705456590481932702392","13578396000702941334563042292390904009331170039318816012798917934107355110161"],["9634527064344005767440013143438476140920559228725513661461799111604663460948","18158649619316393539515315664687831090461995726446325308148948794464255824931"],["15062932144564150078686267745080871619588518091204403614145887434060799857085","20964302999297423404816174419912927795844482790055533038581901549621110634165"],["8069328062043875253494659846727602012435441845148329306760688664741735919973","28100844347755779311053932488523606273670513162145673373881422709455549047885"],["10859779692721473069493561862758968160705507056520380792759794457628328101185","7281443822251363794251343843621225712682176915325343741242854962780618557490"],["28182759001302544309669178974090454237078812853654958509771868806505770842664","14763429759312076081778660780376370672345086948008124042214757995307091414"],["8605499499051069377175936082386835177650712563906077043198319849446453077756","11037103684199982599500063928726114840544468009323731669597931283654377907242"],["22997296747121968690955807194060637145201680636708783667508178842457185069382","10969989861364212792270539404741733162556573263149439752919030820898305802510"],["9411320841147797091180118629238532307321459605012574702909699361969147920729","11813426243124109197463498641935757444211428205677084441333147310806300377257"],["26674906046633259920064534574959216436246595213627691347687785219748212647273","21486861074678166232238458285121489657135208736535668409339936402083782141194"],["26821135249299035793680187338087238760559351580973464507358285568123332421315","13615692891202895862104858155683756746949727343056198463375425803388484217143"],["24292044507410637457272497901204393211815252089397735643696540183081154356183","28422975396048754415701399630227471902631247392758958201460308872653647707961"],["21044286954312926124315225743757631577964301108985818266907309306334727698337","17876003419452886878321778501222233274839331088731601992255690040032163569711"],["22289124770922079879888050648819853750735967068598512640906013995199270202946","21427673419816721004515390127860719712170828984944009835544166992334835679462"],["27558042659372385216827213988785180096378216680619638368922276947267284542153","9191058913890950674351342640178867755274160245380285165342956489876298048834"],["28439926258813227699144419707677760342802451590813945933096396558029697647189","1848165902086601571845981778809199271647256435670765418998050288095576212624"],["24670110018260854453634219564176785221944438878625066492729188287437703203398","4829979831898053852372945360443878420454367377087650044142207201637863151074"],["5721624640456392858358763986286075029973579082532117334331127397056459161900","25966074452987035543801275725433440790258762267118687982374426335322561778274"],["6951485863784924525271412059431091053352307404273563832369284424086644307410","5099471886359974674958082385901669935791975626003054514013617906630605957071"],["24806328142426219776334398104710625249328391040199796308062835075010291127773","6368916250921877290856690976736558652239990652403506828264830645615549109116"],["25717377012895992924453999813081495735818999918661571241334292298193288587248","14179170836622722457947539359033966142202112726752728153885905729542301268670"],["22020113296977495086538216108178167692051191574353122463506468533569178237883","28915496561982177276252238242550519456731055967480782672128663484532766396771"],["13280458477086873463734037860494220281982920491642064467651785541723726708109","22267529630452743705746119908862585034027603238105590290549006598651510763023"],["3193049857299297063168866519391562237229973684189310073614155202192608694070","11045425912064407927393453851891565920099292485582908716302357436397018533597"],["18000420652344504771691422957929454403176002029557178446431745056405310699240","8653283558101827641877971869487103239863385343942087961248658059007245695549"],["27413938863355348189444808744629634502393757277259633622114091100614154595824","22734546115953894213147684985302841499447767421626856820125337942462979829633"],["11670236673885177617725606535068540041183030233405207242989644361371760889728","141231796522393437518937000463407071212616133993805430542497342403727628602"],["10837197239319404036093729156333874030433854797629143334157240736365707206168","27426043842050886949424578435105467309252376755028987555627021105427899918011"],["17453071027725512585306228055615950088330313173348230356435761112968520865028","27322385710179128031583648769926416855925877244720620677676934826063027442273"],["22328503783846423241149893012713609900137534072383042977918690761155404564458","22555572440217118744392230195850427293071029336233212804645830482686583321154"],["4206458065800002848561538970549664147127053155099778038537296823862171798839","9946045124435246181862254149939092110672068163462013478858426785581335539305"],["28604071038554779589205519714830019131830196216181263926869476742876125419210","18486220349749926852621863218027181437081234290269922354127248827640497294567"],["17896935010969495986712523549948958459425125031266601470083356377228817611765","18526423697765557531138530794461801692922222856872364000852141794705631581135"],["20444466352314606454638994435484480508253498551366788291301194254532055562891","15259408776902198000565657006467936038402447520327992781150365472204841553295"],["18810455794474052110926397270540232472880995661739838436593163674497489785633","28426532838766060320193111271170336685462980032680155818809628669323686447077"],["6205648117576550872242358397473630167918647189686556949301642191499769972549","1272223463000512240994397321051066226752815989013505549489244243987768577471"],["9165833249234407726357819708139925131112341215910810464512689381051862440144","11325212764047964715250124005153846576322602115895674260202985744583973446165"],["28410092470814113390290894276384843581631769199482058409049823348522696475902","27622049096337142339469886248948117720195292568691473389899263202570914671749"],["5794591317820040010961959900493250576058139283600926205611079714869053305587","12427578039180943708312688228940664705610423539225825631891934594768475635091"],["19513028405742360614562216423093894353819360414568040020285317735859718167574","11677405115201701316926644481817923741842725229462175389033296363424762206766"],["28758838476257752202310749163714428701252144400466622033627253252082158102390","3999991848499645856264107218500031137764587110687550343993901661254837191277"],["19555707592379157443277607169007761358007761853851113067333253415486604926952","19436602133536036914546309260740426395983819156836844197598924274381006517982"],["20355957366612578887083887046486919373485695347793672069899555973703187860385","7556537842499018179898852110901647523382528676179579064450119083541202939875"],["25587150383749475915049647726201100860135969177712363684847877878313799345594","19254435479249685058140218765103177407295050219672796011705878102601381740108"],["18364283343146467726956570231344273431872605537638100899796195749118845878000","16619299491526290875380794863889583356590250299873199193298011811133545559831"],["18414642253934208749731083846816802592992357432564611121709487687426798566161","19095586521026558133831180887212588875131119644349032267951566430117168929281"],["15715435478037522346526193942658887030926411349521134145370803677704365987147","26772252169388695819836280385896274625693638986378686785564396327185230308326"],["10183639662523749597333187177281253294226087383594453702241940697662736350678","14553025642076432843093497883383685307934459699868467778934610569813583663717"],["11280074783527940453051435534774267326744391913217494249687467830861950396733","15703333773077767002117422205274255376038719314065297056307597944559043108632"],["19219737793369131988140778614942714974598319570520385576108256451554089903763","15149554694538040207467115563651362145181372238532134366785553245750767490695"],["106290679558847665797712901321439180506962764592002820528128324314847020695","14335862380971272414425094843392959040457517494499265447451074495181230577876"],["6231378094112964203626771762952284615014109805144541156419324695497378923362","24621129467123232592593601332041829376462475512623663183773125087719985171656"],["15771938429200258200620844122709582056955294655813258711974850203373570680673","18639638268562291476542427983343915091176051241960017828561883398704920414276"],["22298314281674996662538994562735793970999743291214112774662077996131103994589","20898465842657309525515887861793074075994885627328038866732129935631780422117"],["18295387531423003380361420554596838018677010215795885047591905951800901047999","14749526567570740579443431596266351075203277393811656857577107531287557133288"],["12258956604237364158700313970281445036133147037594912834563574217207895222516","15493510367842827091993313206680068759084397290467082318073392704046759306028"],["25866545257218055521868672765127766057218631821895311767920180082932604464442","25510545981336835479013887103320770368676048406233453018266049552370468950397"],["18652121108026868747323125044729591744096977743867972777915894962940254683211","8800876452152759872311146283199732257486002559865186754969859465220288573707"],["16947004805243727980812965252449457481200205051157643208817404385081651967101","18516795145919409253718224413793160129384362611408140996619294951617884214393"],["22864699327419448062568222457467392145541337440844038653820684412959218266683","14726666626638015051116212116103624176681210880235842023320440193542063566472"],["14703757127115702134988108942915219166565308821585897799073337956520286680298","2083127130379806880629826327917101582118392539706774278911142778104351446212"],["15631238409615484351534802072421041997711965532182380692809919179965503245118","14897053319831050341049815398198096672742210486235804021853195521182629591675"],["489243649640903011924728119988330040053285000833788201034046009863617163829","582004115433623986322651968385920142644201390001654289061497151123207317286"],["22428747801153427716611690428721332535433543456283733281866977035159909187607","26790331979562224315570056386139828539770918303156920525085273811809013609562"],["8069981909995562931000127164715688974254215932320955150065617860629694967855","23308354577900140788234752132931694024269451223720296665450073232003160584013"],["16817594899947494931434156786807206650337827853772403488177688800821270124209","19450198191802136352686234171659367459272352051535120289408324768430066053717"],["18920874617186928004901867650148278314283087965261825468017762212702282111320","9726216044315994544048485222174148766724608947714685164033175509825431007435"],["15550206453588481571539879428144698752665308874511333481473441208491635969444","21176154359713160395271707744450040352178595063907793611534022541938863695222"],["19226715691528007343608510623918714876192158658734227553189200430617091910661","11625333903410132704939701209993491242224449042787151041544953744364516987989"],["25344717845429312798743754721630351641056712067570461605055413511391506530446","27983726542307328754573166490160798909702770154892281259858242901858656817458"],["25809900518947643287034982630511705706593824131160485487767896738321642220455","683964729513861887725776380712101489334213254066906406552866157390115433265"],["16479252454895022333224531619780580457521801396507654695488205272685006306937","27833549407320584806451596658083638642174431643787509244147347917025989715969"],["20168528998834770516532649218131897925902218958286523925921227597942566156725","20105805923803329500337514119285914267737891557590021656118489684519184326609"],["13070451547721192450000868089479142947568424093694644846120630554013031857874","4224546919204815721209646103430747089231501237685976129331856309887126665635"],["24703275294243713555568953048964279032361467516482448077655443756356056063163","27542563097322248530384433768870313301891617905382050911846402303223560882626"],["18714366599473044919589477680026266540123590177701765235078575704380321658560","28801413147831054808240476200630505787521030598950616294453511921553714879251"],["28187435619630229469893722689252956743024976975271328900641901522381794818514","18412205994384027238247813068458498698427124500109850766377141315166862306938"],["6089095538345088019358382242921068706257522117071457170330656571944122650893","13600387375914734324624561471557570886617718798781485679486547552282256474819"],["19161614469518700594068207625931651895272628911228489675062513860557021171020","9604538390401544587659685714081978289493589871944658116193664632112953296364"],["18258976524076009411866282770855588653423472699069985304794859728981132943470","24186259811432980825891272650906007522223003468410285053114168505801396132703"],["18637593782357316958846322126420330017491690379986867246069070898314095412186","20642569450824933020898512257643805082236345092213118072739270024037392384864"],["21732064749976677897249811785134448439927990157631440313960134623799357358641","7385281138701193269718068777935495951960136885457777523496195352326379746712"],["10006923113801158488961390175946559074971988316412539159979647520408641345315","3538886916595859711832064422838119664221578603408976136833939661260678772412"],["24996945870297409480999170299404591657406996716893181931584460360973415068012","27552608375259294283251204731122053500077751218958966193885785363566672947170"],["18081284798457730678850152463226241270086295869173012008470731912430872603590","21673506753447206852991348770069052876366323919754703886271086337619254240110"],["4045721035211311607629799036359696697803476641430707359153355076018182126011","17130620270365388418841254643450885478595120451931208948655312616963086072247"],["19219477965158662709652963030633359885133633226376463382238834071843026815833","25688330307448644147156233846172277003826759743811054120816371353656883969736"],["26093404011827425567741190886025451086161812019892602925848541325011425291402","28839851282298168591466503699065199470206469063786874208638652055663808329392"],["18418357100488080409117656967654174762283742795773062464216580227279012510933","2202745689500096391530404006889029531796258398748671418624413203505364661852"],["6319782049810745617473531316397129323134351377539818058101662811226817121574","27889648398641447177478632993316918754815183094030497857418348129376737032950"],["13796311876743330381915812065317580026123466041389817548879969376914253240530","13380870097498299831371739347217862684757582904074085152345047066823714049412"],["25706145709104840201782770844511404646461729689821203515420358089038768349825","15920284196829225105885676387431334209473637723495534167271556456451429001537"],["20714021968786373164795659609227310453961467722211557256005190083617884225026","1805496720403797087631783660445261410870672463528731295864266898260047253706"],["6178567353348426755013523443220912828074314158887708387403072807386678376432","23486197969543717838663343722835515438320239793162170292967060664049558732802"],["21424101295672306704568868023849793423536484670188883576808003162925698999994","15558729708396977233166178899201572977449877578736016549781149533706815410403"],["20068567601456964757687283705450844892297139919127609784856777067306365658976","20689107696533442617560641218120370509378844715601210560677793239920932295382"],["20775729002888124580917683093488223647272075698478196779134404277425563905930","9736692387394385939297124861184040650036036003349443008294010213564956982573"],["3098255945004011060579656476859980758063966238267686758650816151568088524688","11762398198091888652725733253421347539015759883572369859098590209458361872742"],["26035254114807976061167776978750369365062033905445248594222095745364477250469","14924229508784247563243553904605188845048659552233989096079019854567813001673"],["15577329744644361507568403513804347227107871448582120013639334549233452178614","16793195001353555843239991397544028523797805741799382690964178519212285633970"],["198298853172821004733280826838842991796832033584094395005123198313868393292","16168411554578494366483733648279850653058221595537512064428187413681269922978"],["9534370948817672282843936707989075652891779287903645673867571708752545307810","10846487298048069225103577517936544892346944922557734080842411434688508313525"],["2818006644639792195304731766025122814670071750156380887516996893291153967316","22779763500697954420314418760558877571733090511363541890338997896890584388868"],["979060436449811108999075289792772032835994094456678708453247622617412660646","19788975751998008312864358560781672567204036467909728687505017815746152953267"],["6703104419421582863844955726846629701950534972270821033120422339388825048045","4366173518035621892106682875361771208382584636399528164883831682977265108449"],["24158904444842546195988875737809284768212623100810572199122925217114999144777","15686025915957984081910742682009431295354535864037544239004763699074783564678"],["23288834867483929737551871932285343632881786904628068535070156447365484501924","19770366627979557663594324872972639556418245197695839102800169688198622352449"],["2043809410457159948185483231950478635000185976185583696549147145730248091272","18985046416512568630779731576577993504836941785597813523553447990094187304852"],["11316953886900309517916992440092511697228951485929466609418602363393999099972","27683954499763537630575457959369786430758416168472897849307178253982835961956"],["6775127148222412716611187817607147215606981698725275245658958500653380514591","20544539601637329200244634385864572564599279534791132703701668138646708975848"],["13189647152284147977603113600672813860905932043186912968112940000934917185359","26968088576574561278645187288063562328455450042381144286560932973181132240545"],["14580492246069897737514748521704243663274078097798658602820999231797486524543","28748009311079575158550801581807419298246887429949143686822320950262572034319"],["2341887014828288639418904158548471062493406905577013430360316613650002175698","15675004068350278333053687359504556706027679931680596527734074006978701614114"],["15866602750456892049119858324988820698284034384524595029744224628087958143940","18829748755582236762943238215561719879418844851833735012065856183506737588138"],["3026393140779283598982873955261630340893318945286624752767037429256198921178","28146219462620028146855852400669349422702751952207308154857620680088257127784"],["23729471482694941967274637408534118459986999766056109245974167226964386749038","17112819938047814426544113688631350051743576816287564496487937302251287079428"],["3837247768752973734113258666118657405711144954664812066017391828743598011674","16153516653606869830531401765364963447962653314421659076963983554364577524472"],["21620522923911294465225532770383062728239249303323313711154875661661611036872","18326585108258463731710088716420673346568209454309865839750863080216273621740"],["14473400552283141822059931647618683502301262816598250145763656624727290429411","6204260479390172261211662891336635019851211934788953139226323255711248655590"],["25466874569336082903484388833473148188944924635702524386056647920149939680857","8468556715785015644182125609021484483962492281687886009921544031298321963263"],["13272304171184181846093157577233135692699993099875379792461457202272451971341","14778735745894976383014331075552720382580599010944217825494485686564105223171"],["19808985893093689866919269260179237056328015814827552240454144399509053553377","22997767191295710596336633185249109225018599471495383363098205970065296649363"],["5611553912793929990988845624464310426755104932913433033209627094492952839974","12102246113667554090375219177494228824633119577217732250934043952647470491478"],["27592320059104110862770918526045652842760946687458908364465751608461098403117","421204711748680234806109713345228437058001086774082387722986588253723344660"],["18194495804878150482181276985100166923923386091388390825695374118754006019397","24023413603635970514205594783263272444941294846516920464824880664292934311531"],["21646057766604190556758537848946912562043389169011563769888442560021503004183","8306761195269152757507052030947715977018766217754309594084837327281609433893"],["19303163302933820076139921503461435345252762386207758641522979963557193861392","25154890077481468774737664744735689690269547170129046347069945936312982396820"],["21467579578827312369756370040752447708481540328854185710525682917095048969957","11380517902964225044409585912221050607987439561129921652948367825591304208059"],["8449035247560720767644967058330344656853463951765787720295281144556397991701","2083082172808576490760486359052028209432265534884242310367778856354199090008"],["3669277499847651493722329749428213999545682471940927543464589649909536344954","27469907738873515454508744602716784602244451477777806094760365038380022860933"],["561266706643108706399026692666905597066624241997806872355922351881190749188","3837094107275297187709870496480082184280279083554902260520667274123745343820"],["582576943387673421248533642403705715822214308049067719693375320032635597193","1846510338431571264236747838493208384534496912997761795009185207932999945444"],["6894656014482289109552520333170743086085821868317211141487668250399306846156","22368938923759137908622396046743337541436662851867652454807406628111830816160"],["9148043508591862820204325015699896551294725532677932323466170211031285781908","5504150331656895055458342212045658502746322015295999248065680439855922684931"],["811319660656349723876181836122856307236082356106875662195952215612816907162","14090230115111366269846957941637767726544502985112432097272404204546363110602"],["8742057792995513561285367967177762333616318067996540461322973659573159209411","11869256407658452262423024074998700255093415138431298683756139649668592092976"],["12497094350457180487480095765185025704965360023134342879122644070172549345191","13890320456519806157175875039883880148878706224865758551885642860704351138230"],["341633645510028304365520605700904193743202889058504596733677552827723667698","327703663498744768455581959771724244185615436167787693806631676996036946280"],["25146818384151283440890084532594883969228780266834386243130230098086348898903","9801014111532728871165032322544516871714580740738568576824771479866389862950"],["9936151567437247460473363194093232919334097042888837064610743003488767724963","21588395296242821396148326902859241736094316896796734922703831185851544188020"],["19858375718752342785157629783418851336686992180441562444013245970019757773311","24513271568990784136828190830390086227846351340400506715248270373386783393796"],["9126435186696747912875425333986650667140151352780976798840122586977376548859","11490489618627109584084269129288085989803647313166991757368485727191714730427"],["8028912165198039653954335274349196782647811153749808188423021475338176708977","11279191249715805033162152273917240092438912372946506543069938466581564856192"],["20237823989963363080088684700669816133111606405419173891729061273542344619654","3383799164526828348290068945252365066630291043354009195212625203605786560644"],["4516025972708534639259388500614474407561405135493448408529552809073980883269","4689936732336205863234043802544132430446210086421295877628223352378053065666"],["14070755592020814092467194080307432811518589362939223689064401596154120530882","4998384624989681441431418886250533979811202233261238744891430213012011885647"],["28115620775869400657760932840414745848737001950759883908448542979794795939279","6649348818367193947806056614756252365745660995449242157515030756576832312769"],["28126918015449278549088657174931484407881982222819850359180640455698788443315","15111814703101524066163501903578596386315069754133720847315951160657903416503"],["3283892378682919085686102184037466612150353746772346235543285206065746802952","10354222167916671863481253146454957736254444113133269020438328993404390412566"],["12489477708429677615948600092404762795465713969611260898559883713270571685475","2884412359337004401784909386271268169272507673677175647641833780181988740763"],["3006479015504617352954054015528791302011620084929669991543244169183137106703","15238905179096925430494950840550120823735559169658641407298796390414658034585"],["770525981204994040873505283061521944601141820838810413345049909819891243661","15055213352778212931120486261933737511748529107898337328411260928803057932454"],["19540964384215373045435048194853698619324297919672878192971581134101990987296","25776255473807482230852638348887235709502614269036181986877152811977941138817"],["28456174726122659902660801677651905275035181058989228649673360083322358600487","20040000730119899955384567343902645538992363556343587542306295807207962774188"],["18369154738042959701163745297029937931394202947613492623106783990222207052580","22780540529233815780825639744115114091469834762290563293149571097447443947783"],["6287404929447477399791757363648173451689798712801621224078825288012114404591","17803578753033977674391974409574765588203341119986505371415809180624023935636"],["9511881981857829226418667843361771660451248858825453371534897605256051060029","26020097149380340083283037520569767780878584824491811897581797701368524542288"],["10559747291921615361600665698683852061549719748518810084590890599757302999880","6847638887122221397844454882625884007071413628124938088644604949744993279815"],["20113658769784093800643127477174729660581072669982633613248945532557418482532","15326294338497580825751270157928052342170054075371440486889204620652516931751"],["18933671565942585601766774734967851314426975786013777943244728573834018111070","12484839434814054149860068461026351121620151075685536438457197248106987325550"],["21988591865377831812474686914085245504321525466185865342260259621829498934433","25180619109837286273895148373841400605948265074164732030002151069188105351367"],["13242550230240034000037596197928962644283650638594529345388077522790516771576","7622937292640733068453477908067980578747519340038797811951630233569767000389"],["22485541730692151123129305328235814181575276930292780076493051902541804623526","27634558301364286562599815356065687760138424607285519650710535522834045355575"],["16003878609183953561488120454711609458520545670049673147739764974162264105107","377667638195079797770747644513469890115623746844844520724471406791957237075"],["15623672207590811691270406271729426912456529891905531787621617931450113264351","1748709312953672114328311260720332717495870720148557472380647495214025170495"],["15888271577036919844410700335247331195103659084444279027825019063719879335633","26991742531665701313800570978585012400446543068296005863968221782856980094195"],["14976049106349282016258245430262951916551277887439768179063086286810381750061","7658092782291129020682049860313578125074094339373725477492445137026256153895"],["3504011129800537937072260750199573325137864660352859248393496989628346505950","11152445727981703018408114376765442500048059140065066492664045650838956444242"],["10195058770371992634074913021103709171501429310180752126403433591405246342868","28134941507999734842258002177596765725466426551768428868722625669209137699112"],["28636981869125431107305938378206307598817918619441778494491479315257503029493","13922012917381216626517599818712839343205369953033670997760702789071925481785"],["20396650601493884255221921217597900471018343676902435892387636326837558367058","1737547628927756585869323771864348109591223347546645478137922936916419834200"],["1987624916843753383623709560206396602946006443177970326994315308275416794812","12574422435243782949614493854513790079159617405443193759748904816033442223588"],["20482745270770719446778726715936354200824514096519195384401353667990942240174","11243135470079170175596761644893357159276031469228456589705671820200963948782"],["11933600694937536844563829391742373936061504034080062608594805167474966844112","2003530810243269425259554652218506791313765162842446386937092989680909518533"],["26095862269594562182034773814759696364066545268679580184206175352495888736760","20096494956848704576205513080794044143803332905511926682747265620181929521707"],["8854060656213075107840509048449342068353267507499387352545944322169449228436","12982783495988771438697665467094625846758534364158583033635543804107757631132"],["12718589476254126187097010583939756551511021462579361167143532504897815512584","16486415650766510943715027648645837236354784874857826558183703755769339749342"],["382926897678661368188515416677841622751584538716214358368709450761205402345","2659188057668807483444997423898011267250185258954209888451109849307167425431"],["12757158900974688887165763596803959790952786506381870949949316216465465883572","20180096491423227659484422149498489371206301328305198421131185071096577642482"],["27862270010838211454636934270517292027854115603377836059388656302122938570276","17902710113125905915671916208920995213902492421245466435143577382857475611769"],["25077980987732106098974043458331805311257802370978465814566954126389970199755","25883942569021904366136782941887096997522098733137783300823685593507343841340"],["12636398612679490492253036061844572782128483121993729670839501437362769455188","16311798513202884014706043493424021802667344442469751623450087774837339220783"],["13592952993172160581317188297678740913010587055979613691286430804488706447690","8210460465632560540034877557472308942053475832827510567759002561845054483724"],["7905484830320811075978581223046933006024599368114922774560135414118224637855","10461046122010135185155522293320930263812163155808241157590374127810336947997"],["8686702890611231445516220065226118230745580932803796584923133989926640309484","1966866782978188617431091855939463622306833276777568516741844756176362213842"],["3381090973659958037845659794866864008822156139927875349386275183961521601103","14066101277488446953825716263014875227103219966596396766437670882715064145911"],["14644557965745647732679016624770150582969546448099926304623784620270736017275","26491147220608935256181797820926675682222057815266569004029845546487682928485"],["13758119151881921969509480286257481845277784283499434479180564937219549687929","4610761614789117613894257180448405994563838025963558651305683678855981249428"],["2658913863263806745562287917400896559949316885179921742381396311547280996689","15596611627227727524673599567358184703899239021404516220464738257601821542225"],["25400318050829881746226335779790298497830512161350119330768180028565541759561","27819020203061173691703885827553231704907092530778715352928180525110376798267"],["9000008872246686705734966402578522203809894022331326848764933965928211301790","19373839788498638444394022812896909453941021809008510115074389020012565273843"],["12549832303062752827668514080528704805929629408061001456294284534458056320440","7170966544462579662019182705271263744321993402561620739210138951147063031836"],["7176122535953249098726820922624833356898340785613173805015803100113634897733","13172339136323834551493974592367839659032649198018112494175094688673484484105"],["12138394187774903071485292231802971120166060959291038723036983300138808587612","27560162266258350850336078980618217849425448090979538628104670203887213039102"],["18656597268234456283279498621168232052806303910305414199972618364728950816041","25962479505761475033950667442231550978572996363631448439369347271847743662506"],["15396912666778947522069936552685706379403488075785194438655491347475066049020","24717352115793494914167206765714864686597620604507615209065929267899899388000"],["28446733432652454295256079277655890829834499280030078378357491189550254179092","11485027046916298955634560706437287809694033039413371010380532873752417380268"],["21781697748607143053413439732099830652724217350827780227130240050790923866908","28023244576598138443719146853219006665017073085442650129688815755686692247102"],["2055487189162113725788375559219418187534813630777240328003584345263871959832","12690375797408806510994964090281452822113866281617271751878949391167225476045"],["3915535324082092074548247017712671413104548777982153470993850719406650926569","21247102867307390825630555586772524936745401568754446519880722827965185044666"],["14941827217040771637551113751237678898145822391636064586625874808383913824613","15401313517496889123768255411955128931992061499852549453437302033366976166981"],["11501023373990885331858188909117775971522017927370800266771152680037955798276","18383807075789755339851933200112834142847545266534418521866657972292211732370"],["7281043068749730710838385852851447510803069449749504465187441785813258060952","10127700610361581191311472670374549596441354004321826664030809609572585691985"],["17313347749934967873557247496359853395850435139265816532056782147711072084175","27188146628584339578498959058289212370880578684588402017758397585654677569042"],["7772078388458765462723685481506344845124278625902838366174552104826068012367","28228471569825602390307404000410863374201987500415349964016945251776186018850"],["27703525263837469657581099383575979445396858827856024979912047865342621431295","17149380348649899867740142882217929865812369087512689112517538111021007822605"],["22587567154722189454377781891727482248291278480331752940150253718105973494576","20396392524211493048434864720095110736538401156925250330193756298004512804149"],["16991525886606492244164069735693968375470840876306017133128422405916469596934","10560718941002323795770523344625534336740881877684632069336695718128225234400"],["11301049955885772014813552846373920958262983991044802232805032216893670016075","4034224695106504818437062799350323019694060629116901958253896362046984832199"],["23855100090241462134366154529704287213594898324447745014745979632228454367880","3654297811714414821930693979434823065517485481977295609576731756815526407902"],["28881335056774365061375054752350904518646957020456466470171142055325346440869","4606204913868927815049385885675360553533291017261026997315643055887834553174"],["1046608739609878713466330359129610412490021990799732807538125977451582614792","23374694145159945747645159872817827271791739042365177471819100975185450876156"],["8866798016514876306634686532486814135467068088964838420894488541506757353579","1140558117371074000820748422307944321757734003343081888623191730755253282234"],["26373385012022356482703574566229325076972523997580900698520383163941963779397","4773086968488511193961102678286939762072089124976224603717724252691537741736"],["13777511676728570793162839543770276857410348704081472836054925275682394314322","15168391611608824409709044726369262788669569606444116922664490384556113021880"],["12744393726147650687329116572405669397621787017304324891334714491321721690203","9446819668320107396662796842455062330033780741747428006724596889576813795175"],["15174930281140050198013025728547461482382917651214922436181952541232257848021","25764947624053492303265208303837326639333010201573931358212034179726276381519"],["26467713145066682658132263647700221585204732206018755052603430972947767285527","28377810232584564304949352293273226477407214885891119382458572793275886044755"],["22733060733063921315341199915206234393684933992970880282768344320271087301461","4619317180545217093228449972777171454242275146509230566951042959197766656409"],["10893549311222096220950825501264082801043409890829517631059316436904834616357","85597149111231983701313800389388578678256513043120858331332682739016115515"],["10559361471386767041824291286510884576004150297703158596134403255748703081947","15349377523878430605396589501094125141877969054119699879812083407113968701440"],["27162708287721275995787470329747460605193804461428396044844994418541802325270","25155850470640550976700166163964111556484551087492730592054133893606966256776"],["6682403464169039668258235290146133848718776442209985766837096995296889184662","20944999704506787621196328660685481605178704307271814955873545771256400582294"],["4624058317453326628844430548663103212190128211792341317133854521815290946772","5768939632941543429069946467456172235482260470085328916487230370878636708613"],["25100632982230174890576083258457281433575545910661446940200888414822864345353","27728201324093614298111922996899444493740978656698411806761628569674520167169"],["5447329399132390136388278215300854170826119932360564964604038601175479901350","25363755364018447041290039195148985655124450333338474607138193242884791561627"],["23909602683509738594552079707772220084800375259574608176737413333160865647069","9542551501711373053941045526432145103612893382713900960953959169034714602698"],["7131251486421623870491078499858359281105952443158182936660063249318133115488","12467816218568088986600381284573451180002399291579698515118522182329815005846"],["26328913878598555443753258270705027410521877369834624324618617987753813407002","20898363593320115934991958908213441900214713757220690458278882160521570450457"],["26055347926303145973182395079702523310770944798107729310597920088792594901812","24080328562711207303731115714642223434751011257834198837128274000603506015135"],["27197638595915929110523755186401539545084823926408796081492313994496043419972","6935166086309775379854529197455710270453422140210754498907993969778995456397"],["10752528039788806583766274228166957996479197196221210904966753180052781557788","7296550961337492963380001218595197229937139805230652474238872300627158308940"],["5477629107505595916019634024049896256326815531929252269232663305147301904517","24271135261780269066392113789226919894987679299615643745189783874904337817847"],["26779805602095633654187167154096178625678787175304976750702123060609067756208","19922143046341204034024865729007071401576416080697173782456156933594869497378"],["16979529903266646427186121286878475012904470575576965583803234000841512683294","18319487408301992945758894780863345795093201503294021413348817124336441836517"],["28926490035876649715493568078697867630803953806720453706607066264310348916349","3562348875351641203819360083714590227095002270371676832465490765921326025298"],["12571321561117906673232375631936317696556798687845316505952628680543780738076","14974673133239377733092562092044089424434829279467994212877859540583974783805"],["18220691661604818689074061488273616656512275297098608498685347451721442937962","14405479101297149471689699263182974288869568407371929651923401807938661306362"],["27375191609800455683035936683475830433427319740052707752806984893364179355975","26199086239346597006260213487533477915691097436800559870451170624200704587916"],["23134517732952058160124196968888693370070932958865051117754783186166705200589","6478305674868453215610558075487007976645314395147230290233727064834586229386"],["1700497119411234965473453110688059591086173721321762041538615832740106669597","7224694418498705417434801275894271054908572385006390561503757184205723516339"],["18676652235891509904573880009395322970390497441228209734973070370301675433720","22727950116327709689813870667673452835759321578995197507104842205330409860185"],["19872049144751400201389825524539544196156943937722986264159024747166070192887","26043867172118618630841853946417350922001804499355018107621081265062968927207"],["7322466841651745109400886894557192636123744327529938386916809769663271199145","637915271109608980812852920640253631695043555842586596845815929293542534493"],["13516841136264065219757257319550006618133344286593350759045939405157597945","15865331565815033451203142708322578128918644223474133641724144984850606134781"],["6226783170367714874190618956417927479074291982442061714557838769574222575360","19052298826377827212339672479116815603749678588457606777152981596102592306317"],["23946199228226819465896300358064915471927513341177289931710462982330539166918","27022203569131439342607872563070014214384255449390133121533731469879364957618"],["9989013262534822255004774500743550465801301663205815919400889115746595904423","9010559327656814369661690037170496281655192260838674515085031133055135494690"],["8555773609295831505345198043419855555980427475275166248024909048226918440939","19490126605476006297569119063121025014030341063402783351647025888453822993554"],["70567820626279372483814356333730627386411046040792492081713327247792234665","21903058647864920481674007629286219330871687350054397259432957191237059498048"],["22240689842975839500439934338096105898379468201747328067024496227896378483463","14363100631365137593045253764612380013769383496984255967895069717954671360052"],["16722612511181462096253641368819682571717724992583951958634715629981236899085","17904423735163283670838234749786733603641143831419589915044182555278793353391"],["5806974878380913072245070949108111070072248060897557580430940741920247831274","19957772366844510576196989606768977560318562160414588302330214351353094409013"],["26652217113736788867102992760006911533859969622903286606994753576079478446801","447113274647764212232438826767686475394531284006341822325797744927714968395"],["6527387024385388833849141294792137604454010264199915220052811180374204650116","4629635444473981854740536994012066662030653366290060305798535561818100783946"],["13825796399756989739400322946043849820186298083473782332945916577770733368075","28202858310723766311851340389543550985710900327144063602831490820437321886859"],["18113690870753054252886375786154546474092808559519288000626326907298828488285","9850676992391905395482028452666751898419174848584573846020423962138810078114"],["20508784914679942389273951705089588467325802279563056075615146897110374621358","9090736157632460132749567913122094894908890861092704928956909673988490954477"],["4157353599372940115764609094092071942071329427716415235326056972194695664485","5693748546254472562646852906423118732538426691622109720267469986417581261027"],["21894764300479405428943439233301541090773516739248606647200324510271198694332","4659539224125552490066633545946127658679621307606614991032463863085908032054"],["26265750812995458839884633555467093526438867633892219717896539814815806771916","13430739009824315017376523892844959515739337526426996301929495351034473965959"],["18120578070872183809198176229469051833195697470934848713535905735133893748311","1545966242119195050610107829405721562582548690728046510578880057997623522150"],["2950099351388570862532182326807699608238239170396037487348440217041710102880","10160452199033931441090329970839092677645495083910818106113354598725859482940"],["13133324266974551071605384973404162634490090781438417563221470492651667586070","25583408351076847007654282441226823310463396892671370817407700464960677741423"],["2626755096730423712182223432323292994970773887058121788024184512721506980358","259277474239450402840022549186504088036042258496501446228020489287945868251"],["22705202241215130566049529211573494174791169695957277178754648144274454378547","20470995866706592884113952162469676198813283577996226456493236312882164392319"],["21166160097729453301132680463316498249695423490308537082916285894301018085619","19301005813836847300046740281925943117404648950380551054591574922948692428224"],["18944166875676885452968313456340342130008540098427251200676800194480934207638","28403381382844600356074797750910728666566723364981725924094312434317435419041"],["8803150627200963445976123570995967063865837288015405441018052718625067530501","9628597396474812698738614992536233401288957324448675436516498723511348801434"],["19359007573607076961582609335121880003490407034683773593927505817085112359246","28409790229159118767567080487335390766859014826357277052967388960432136994527"],["23191798662033371113071712313873957255881568495415707612842802185909764302595","8086182306824475101476305317427626709683848240656235162567078697687058693491"],["22432933712441267932042304097254629596466528037320348654656691336435811853525","8289480061388404428699818846675203342601607389098527269666704201633003276970"],["5552812363814188690923421064241512088323845504294440373406813636010484984934","28863178797332063515345071646920043798137984196444533370037137337010155276372"],["2406402041087000409461569213784325679745676348034805515262551886796612545577","9252414027785391757240371858382846376021939079417558988117401203325502047243"],["17439538161465105341387470083748797545687283631993234638025668678857166887716","13262274443507809987487601292404219728132558472221652370024580422940102228995"],["23807647139805488034578452907615460943781579976760662201349171533561999295966","18458647893787022238229956495744251126097017633075620712805207834762951575775"],["19661882369497976662267348716213018883577929505117141249903422919584389210692","21492267390355991327533167889346527840601787893456397882531416564224006790028"],["9664029110342063343059765543287807871730673006035117155503532832566284402776","20199729624350892298051464798692668580712726782237580596259825914570258860472"],["3335853188834668824844437611053945087983403030073606396253852062569629187282","1657743295311988396136698215685985493185880530579560657134597692607427951735"],["7479241554950227079849660905209520820227026343853812017574782777575235716265","8737343232723981116838270865150050255784959623323762254321739213623043233652"],["13029828229798006381032176103835912823334518373255698113374745529371962062828","22143235069379657891785576170355032426164374689699105323889213705474414246709"],["2156548692101257671464678947815240724760354930472350890364231642345394756378","2010137318911849777032364625892835359504838019046447676808685483365319584499"],["26873007497367771871453188095810157463132151483563499743396248955574493782286","24642956915674272164527226275046394764151334531362674477641729662801136379033"],["5486216739437381092560915665971440942919110179056690800587621638949981399670","20414933504553541012056611734135043191079567156257836342994412741723160521190"],["24823305816559122575039488681037817555469783542746713863644689383375370954383","19722525959410503463256164275499257562295186960278276463614537380962069983206"],["19513992352389237727053075799331919143472358800962567468500347948222858469143","22846657133094941922774444517081640649481154978852199484249439769680426523595"],["6210273641310663120481003780790877741284240685730776451687994695544717316223","23128782571898524719849609140805987317523584445910108727403755811852714327655"],["27560381480929054104499028597708918547367343760708407620209534008139287119677","20333348104730888954684190108923852700268179030875911049537946213588596367700"],["18761896438072192249982964960480267736782443592805845338307836532038766152162","10877843077083184285580438562846903092743325285703291144554087446255804642678"],["21782627004121489373533381217813326943343643079457990993627619686437379420552","28301561625006048137178787007950429021913904995030194014770177532776707628646"],["13203357786370771322993798277048795299788836654905672744459143393822492146091","14732278311112485044019652109162575068985917715709616980283873736588111403861"],["28694384989747049817326832915421307627372205594553226124868746991677011144484","8857590580447970700560588670070147649783320941661631501767460307620579054284"],["15419547783090542879850112112233940673070136571208210859089020683145011453917","17132568051960785340540303463352319926720935324917158566435357879059114537787"],["25675426188915204127225303254584072704549445767948766872278603572126618574639","26504680908409723950136612558600617994952316410128161796722614555540385824060"],["3374698601108850525756483829666757885670759193220892271600629922221633139057","4583592523408224067587361507037440396169699440631107542552193186657364202985"],["9431093105548458677690027547981161343181675218486890857835807669650167585267","26384532063121308082429656218326611446435572244353598909980995560474203713035"],["18236658720688271686904140075831415131099764026507559205997672672425536625305","10561761340329242905980605232215810757777512339557333044018972317109885016722"],["21593941169123175462847463684515354314593777452028010794636458810678606333135","21444874997870927923341238457951897625728793959072449955819484695506777059541"],["13424499504223774880825231922715966559512855681889002769825867436594839331295","3919454829247951317090321848861509629842490609592814412157734404929849646284"],["20350462115806364275272096270238128303906638123452339988140173638340244884980","10843138580276926025709745538605141720514565447672461876663957513276578740039"],["27398616192839530865600643545258080095997642586928046567335993513368993903492","23336043017353582110284021803711932968622307496700109057354835444900580136659"],["10977950819902292301420801399472855236601136464550750750828993786094438655429","13412326613969533129487028635705714575163806132683375177838354046344681804653"],["27354952324375125466366556913217919742150570809438121037155296249536443038483","28683711036743134014257580698151635300369716430101691332336260525817579267459"],["9421149878386516676298928124798130030199022541728291104975646527447707052835","935848765662515923146904571255637413273353815882558091896425708220082139495"],["1539840860395971363378481851656965306680619169299653308719498140306661340105","26878107318671177030506210306575044135591009716612785793873760330204686900300"],["14804524828792790995948438553092113583156574131493072034270657518382120521126","26752845531195967797851065975859800898481682201422758813410970534137485574931"],["1912708414907815375727213966941419831045821856860314110698704147834769556658","24117243754116591102268541992333815717346842724625250276460141621655376095827"],["23186584763549208394884633257181648811757724044436860596873099638395199826258","19004174599101894621825446018221736965089575302086105025484917941171626906938"],["3246851778355724294084073978497764702007526829278084491372644982535300475957","12189345697966417327750262404272528956319049567128937720425306044085514033130"],["3614112729498951861195269913114692966888001403374654575768980435578951468682","7221474288056731734701172365727324331121743643789967648654938921222690669714"],["16073784660722579940727626381693527249862772629238468864052065295324060232089","12174601210605679565198908976978871455817924795650762001150411144260323996612"],["8132682316815458838449838809799755648347398785305954270015615820084441819323","25408445185431653608026547416217463740055116182096026071072303628348557968443"],["24978256116081895448545399391232334553415776554004831406612208072338166082059","22328566039847622665824253369785590272184984294557035099397024697362888740687"],["15284015303414488411060396981647534291905943806659669850109580193341501487338","11949186428365513972586130831518442859662928028171873830133372492719086524653"],["7429322484689311302451879443254260083812725157860873900016929664003787676429","1071756465651401321949641414903490850329357379316036594335811404807253388843"],["7488587948296849107241700799614546916784965294509190615147269406812758261153","94629014141105768791264917637888984203378879514543568737107337440254130090"],["12733153010803369886550943008865172913747783514405012970630506984766459393506","8952783412016981059123609747164773530301803638533143781111919527233649377322"],["3710404556191417608086815789569909512937754506008904883800157101842527127826","12546075182307386948385201311365406347561991728797761182178733470016068309719"],["7344542694633606348976007002798846667116714752860104408431521396516813096295","16664750971122588287144642633158289040807534259076360284895886194834469959081"],["17274329194274194999320671855726710435429886577056295911186535862630246671916","12108079492333766873877494050925269293992886194694220354611214992550113057077"],["27310800861240121606647773123707662675799760280479763918627946305845744384861","5079543338514783577084150232799041542779521968571462229627917533460458001716"],["25925506085006498532389495703621691093280137867209613177754715638374096918235","24887013894730858509766898594458880868245853776692752601601137907146815005983"],["16643180953175202134605932039762851304857814342797736583502062664018253509384","6981654938420194495362909649760934545393461786264019622766620474887609465081"],["18400282857871405791624354941988690019568604950624529324995012204875156953473","24582814262831254693715475559569988086710801751685715842964885103337769303668"],["8096542942360792530176447997805719529389555901644026734369231335328465688079","3915043716551700221550718583460058500174535629949917048108469763170337350287"],["11555411333712120694289156780167679385706544105248628295832392238444332309710","16642321881700815820593241986147436028423086674564774432497782536544386954458"],["11701950977687073923621627059602888276546894507348917420263776379743633077883","19333724581767542203098123151541200876586507418217169326095831345302941877385"],["420843195542004403352409088015907919377657223837659884046704658143560331619","26966537913410712709837179446361504676523719253809166082623015376605548471790"],["18321091470597608416353394216747858465690542124525302269822998578732723748951","9198394330236745555023852766064382677471366093010764274604302725326931403936"],["10521156680434931546539028288655289343472926664684077968384407803049259422868","21933160124104839201656235934835648530582069824725340323494518502789641285890"],["20715958485021144638701794598836880486393682955057931574244315738251261495581","16699420788223007591553344564095280429717132687999587027805758128855773096349"],["22017335004915968702683469933466018660621172811035919301215370270365684871859","25648229242827521454246146860584645300197486399017122685685925368678461113733"],["2060623762878144595161546187851626586982759969439204212660464156253669343478","5823772335661911604314315237220079320350202598743531525509752172114622486144"],["13580585902664681498062370395024542672356148516224544248881563047057368477795","11978761750226406426192498672620481797848696680924516735121477031752578248935"],["13800217100854186264221977366069057672523422575409324422588404961671890724647","8314946385480392610607279246139155965781065887954248542399476217785782872789"],["23601931395814376953495905519621006496899269637298706586560288704782310670240","3212964588066479351364502280866508022897259929814533594468163533195690605636"],["21645958923087708985410165635332633906531466607195167130680308008811509063775","17890319887045585590898520223520599842854817989053121846995173578242645942679"],["27073825397677724553043407893200693564458889979287004986674305937618028941323","10129202239098606056301427959548515682190759023758525741124216129595081141232"],["26540973561412102042185100945784510788750180968359304420820075324974175859863","13160428543489844757183316793278953120639699258973142968261784997440935427772"],["5488628381111017866283860759828605204949481169449489821162734522421820857452","6629074375281191993428387904328162273745175329372014100600349115229659459467"],["17574694688401642971133157014074295252290854941858945130741255529178739498418","21991179809554236979812249754521701610938202308243275282201378952833674441731"],["1873648561317468600129647616475901295583570870152008717043084281209043360795","11073695627571864230868053312003323142781942492582735282444402601566365379813"],["10578075019369017846029781946920541273491184900934635113316360638211124950153","6670879919752232886799248332820736137696068851193073592801000199416136070267"],["14087313442278529889458143673642779433099601515616050194508945496727896639406","19377128416891535305965702578677601839945891800869818574597814477820500588980"],["25657266650693595795732030929051622664178720593850765734799102391620969859883","20978742644056136042905476172134411746265126173790979453067343622221060763084"],["5069481912128958189959136781705329260623626621068368757528667258376329068540","26129771998610450928142106758638328970183721027891893138065730044933985540005"],["326213849393358100754376021277966534295554168149262935315969475686725703116","23640099433851656162024348099566619481036412286451480372946293066399390841488"],["3719649763321745114411301622299193081539493231732893085677330072672064408322","24961580570463755256166686365011096225995458456446241334211986951010615488629"],["20712670419498114827202327936966119641671192888182553109515342093096070766132","8286209830475107577377686956656391386194162502722943975989183011946258818309"],["12746947527911570708963824606355316744232614355395111920250030375813063440984","7976117827811638813453655776136974898215729640005494146954029783292052241411"],["23106325947311943248421987349056106601641559809450098975724428548373333962824","14660019217909198450500636588126961216844009318323999551863100097834465799196"],["8380701607092722714187920968345588493827410388252849835603120288225387446077","11483779031648780386175190986667590683376601411037809525822597326477553620236"],["2135096482249057014006803415332513523457579970408432506826631193862175503819","19048943072534135904414713363381341596612612604029017066591048784102284920909"],["8548305870887899357270163464027835110488216695855737352860733691828809539566","13039067712154131305013431273676593102232867777722815720151431022303075011126"],["4283838672213890193824170163930960027217138756491897200391240673928334983473","25663029796664529624694690030574619394546157160135826850744596956854703855188"],["27748125042303400055059701681813730959863389494603915861951915105218352053066","21561328793649620989513067505573322349726453919398910133965967461650844307099"],["14432021054657014022436408420661582387398337653563182064188235993531099494227","27348397917724574354710955175537759044141309272756499975871960393613390118844"],["18354043939788224294997758885931095287753392901587932739356319705058926204746","11173940838496214728580595130183876524502433202516148446113207271573453560372"],["13534863840649590103403798266442386699470966742539646858968275752219562940047","25393870141851340622593434156253070407295399172984810448904841529900200617542"],["11157394228930532750810207549265068087666347722766201723419531641173661246584","16442429753376465291675927050174818515937315132700530135743916165578390453240"],["16273301673248013217584685403304355772291641614737979862896797855802987519044","27993009283373134487230025466702663860634643995598407400814506361360370716427"],["12360594489995119704342493985902330073990402525768449187187168378520096376382","5362486977349537133221847648015051301954109992802837856106693985752943200481"],["25007913383821280764649821191777812038040967482279894466035913366468945311104","21138277577030548842588602789455898399193154752081801596443948763975541362392"],["15788751743304025597546570893673113622986897779386986818518416906572956973777","25279905413729464736768827947829200458132492674851199102999293985164822158462"],["13824229529446721757640354727302993576505319165829683696831558783847930954152","16380824200998144877920861380584916939554078012982536203835626541758763548736"],["21095081905694562201977876016730716143880100823258677907684742429810489762316","26706925716183978894874863749598402981970246756266828895576538139528471070038"],["12356888514900941073778112868927968674423815836553135513956718186095625222542","4772614510852263885207460757579728401346499043296049978164928759763543798731"],["10143171568824016720363796468157891511169115699050726892930630728437809213649","15365839239582521826293173235862224470115754018124544752452272034057507129350"],["495999984117495154039862353343583010899996543375952106176749314272065982707","19645770825706118766327372329833991580393223494466767856425273246314709731369"],["15809833113086436302537937469591822111188399504135599436075871131909389638317","6683603389812533774031951165273895879852740917106562722480130021792882503050"],["28345895151918617354860490605569846458042272689942231336426577453030028847398","1061078503916704520859749249200637678925358813951142862195533990974552550007"],["27702785774361739865205632350806762969059446034206381493355500563417062132919","14139182252203047399566616399913506531140146568831455868539386369512205455921"],["1873122362287887432742877663446374842055243371236775648146982803304085966881","2453135624371101253542095719106987266241190239492138204295802443176790462733"],["1899404438709611523924422078728577754130166121301669339381380205380696284798","5984577664719526476032036863961911034528486283748468242034607519571661408555"],["22837640325122100940025831036040522144196688142420555569710175505176763626106","5814254299751817028651321938191209592430434366696996871346406271328205405641"],["26500458662763652787957264372760167448811964622782132076024938763580917052881","18528269697838649506485228742285949066910890842598372421516760725343226230804"],["16619253489496683004410623873160226787329299764331972671304328660213008971378","8710101993434087919925405428337568683589919345839054266406688533248155381871"],["27389178305675906937757713075003209160414591105338235546795218111919847997740","8514006543788197732384449730623342866216149440682348772785597114647976912543"],["15028957311126291147250913807209604318562879423266730680754878791926723095073","11669438364819876883394775752655466889974492790235054566286097645918710351802"],["1558647742992109612370090359164290717973979039436347296602214910406766112511","15202941902466889791344515401715742099335356836061962757147726338089305087217"],["7377442242589871450977839596456040239621893578056853512711964848321322027306","4868021131469151343498102362367346066589161192217493997872210557754376069780"],["5885869715512752159358108734191384041441549601045997244866237610725412856020","14833334483468003425309853640053887402415898981219399163135296077323476082699"],["265153923038572710876265803896737875260277780072048694169480217658886467730","22414662628633026907244205251107261877387032402792432131404093764148557888795"],["9222231415814570202874721562517316419703663312470799942014869566502791541109","20769266199991368652559348525916323736910178784470225153600646948086884110892"],["4637488466908221421965972035721573962082098475551846629413041993554202620040","509682403122483318330918479649875077868306868084432299780805241143711644663"],["4269894882234132083697523487616507648170755257961090953765768123306220340823","3152916304180094099307508040001252191948035239545295759852258296678405028459"],["20351262110239303387117527974336588691575219916628543079964933830414679763183","492360129418420278283633583151450458067816693870231117076544689654115528630"],["5863320374460289897850203215522696017302964583307143610030883915361947015448","14399369564617576472616242923735249560371710680076467435531546952451504841367"],["26113149646565176011376288940089372679372430531908601541066184176319895859603","18237424399390099814239530728866549305509507929725448407180112669978891242712"],["541845522929751536032076811477856865223136433557005919655704731745972963189","1779822883909555998897423629801956306212901708427096783741128421848339297488"],["16080560557603840950237142060172487142690747242982522556888763554498582811611","22306236791755134410404831972517910576885126609815304095277438790231560684932"],["27470413418943140731110946261955325099655752325040592672198480720741785975338","2199950778420975085500551343252561819128374434600889057715345562197989780822"],["18003691745050918135848822494676402259505910595653182571548278782266737718447","23108489968077662747498007667703968129751550389696966719278273257003716801350"],["7805147207343270624707134500474343679363374078178330429731202021426578158420","23516290965708707502039080484373746160678655689273074962770435622908388485614"],["8408132622004314932107508075321036409141031366765570150752118990844414645686","25845351811436431744213172610613471786167961960809428708578702333299582167912"],["20065129230192419406508420556370399422014126783356265252415769273275033936580","20926148272052899335869504082951668191092786718460500922600378301874354052471"],["25760220338255111762230586957725412967305120201648695469736383890727896437746","23477707504527763938918424732671243391813674276747412788905507232725361255864"],["17281076641980242017473895866525547435085702748346829156844046086600590410456","24949070829277899675696386175732980451478448109946438658547230006883391819852"],["14914510840567301316047465882411678241063949158315053615727243222294755425852","2354495561719854594265346493283493793809112288530256917824220741441170117909"],["2599420731520250104594187824027163580714780753651544509717875227926102497573","12569286333466473380044239724393180659443093044430201193643182272049533692326"],["6122163585346594349565877447620972241752968959129688199245189961967751833770","3797979959086581584758905249135752748920924972042284033479463070025121093793"],["5636287222190462070161289062349453071509954288024175588945766905534154655367","22101915794414132170404805829575276008267316863045936193444345303946657286652"],["878519897379602054506302997340409836531960214279797002039580528896088428743","26972038907043783486916632386127904631085781768287964569027889546619449854083"],["16189798390836565994350562636119238287084622748045800903507918571991070848465","11112789980004837087525847736416954452322438876283543983505510570809740353438"],["14942469955380348446998452385325762023437896524662073423754335099488174400432","600413537146060620327338634895391243972309155915207377966790401013387016477"],["25780867947568954550548724156980205979262962174605428442004818860202643263455","20559283012793180512530782945764131904604901758075894460637856348057130774209"],["16600369117665477652073626232582262782767120961978515251946824746732219598693","23037286457470085708667968498923368982046313100244723287347431095279163047391"],["5709474249500960250708814522296374223291936054487025560947113737991526404477","41702667825353212481406761816314733230010202358874436883671039316513800367"],["28288755776762302948271320405183775078613878726296824333799352221421019334936","27577242069136689521143514160900248583281098984271592424006671492338413318110"],["5209081673764642828524283046020184939243375105200428771504119918732556270073","116196666302314559153899948983363133173141729919149191074372892858989987026"],["14165343529907863595609309140878308151112297009534999366798960505673177995247","5985377042205996170387934237018117286929561576885964610020207614176539734689"],["5307946357672772722487087346112159462445973965001837705484052021998016521198","14516567943269930462088795612265550875357558867052705505281571736227410112286"],["103307624956399907126978407172438119134508946619979678785473927016812603551","27422483741604192775762169628128065910755384545455171163996675395851078936907"],["20718966339972265165255321357860838275497382873743446740231542056205442237863","25300497802262012961760827461401019424781489467255055592827033246224927958033"],["17049522676499605798910869414076843714905710663511469527648328324511262586879","17493096357954891440062819432525138658077715338096937544580519394526393376007"],["18994753760436317549701511268557531689836364776950567404862528505417791418271","17984354607024874755393551414260030569837052024839960536117490675891224181154"],["24316425053331438911795736605430115341327574497585984751875315944174329059761","8762155715477612886143452740592246642136784419406924250877080297446235545001"],["1370128141011900165081764967173912544220222758730737401617106307964258608469","28562418659056177262192416248463802492425888773907473126897853261055671815894"],["17924232203221236765890816217865875356708565218308682620188141554018697610768","18058290703810770002347507654239010497089714511717681692314681748862171915859"],["20623109071106748359939444918190372126083202933158034274068601985569440222756","19569934445115355454997101481146717616478460159470851138655895984614957803105"],["28363600270424150250558238545608680463672120786450544028198137352260281431968","7653521423528773874546269344919392215463928594538565013768314414452771294980"],["136714387072643586378400093452611989356044860946803475800012966938730746396","15142060903189474021408913657255514747771077558367098281613465423670175772244"],["5169144390779168388536309116956563177044170811810635336624436652026852243125","6014352459060778471875978420526109997139236789887546515818244629575883256977"],["6033820200994082585529582155254421058532783710443104159505691555183739686151","24332417252182712159054044626489457737580976111528212222056472247052970199371"],["10190094560282276509686909934506269898002019891799670341292257846636813911213","19689618232696034456632632269204560649963523467439098441859929844727711250055"],["18079971728830920648029172963102361103605876520305520368692126320360259990233","5399357087684986216221839166692910653263617830520664329834117409208307369481"],["10924673514630261989085380671796923591742005193396098337996249371184963446339","18604649252849155251290293429644982791030708470382502230687996761014203176686"],["9324802832671247736782607328110891348283210257022261077645105400783579085108","8480654683279681881567547661316961301909555375323978914316998291191974423342"],["14891777247307968300447147125870018966640659569501728401536118885831119115710","5138716056729936128610014938910899005016651833013337727802923379394239756984"],["7944954258240323484967222543755733233692365044319168049875775527703934846760","21736447984898596517048925029130414701675343965008659926629819141564032498525"],["2611665202382313583589774271146383502373843298381428064678505225120820370467","7855985482313799064076806453388701145121440425076116078949878429931812734851"],["28146555476592008420572392692509799583287224380149032984531316854133714738763","11747751051519288661057768412646344523078186300493826905282896732603843548032"],["8224860220159392886633933417247855491632281416203052059166135787650306943261","6641398327243576600389791440796826673825036134410674675231324507484428689825"],["7532335412901755016826597495815706319471973488108174878155553444306822602258","21275505742560271912769508253687119594803448145439512423511077365444494647496"],["12949224797927770426695870002732065498302247839554825063923008657865193131724","19277485920052974042198259535266643359144654051734050017714949518821766690582"],["19317453332804741017255629277703679701123674140802464351384098394191482835594","20116565239165938277905322683874919936259720640466587524030568293236627548517"],["21835147198874234896203283825030613720688624206855835094927432310233993991202","27732331742928933582654714703818192796864723932096603749711725337857930335914"],["25020991103647279034510767728902085693335823789448101087678112507704201946025","10524715877173547408067303702896383828475736801352522396163867720458683989758"],["19679029848544355566855228290944009685726321863987659598021443649606462217607","26415162234439400498686074287125226060823542501690219980067790079055362465361"],["18318961799913061612044641693589776808612887781484637172192315966953762023589","28186906499512198636926384382514130427011689683470451046440638438655492440199"],["14153930650317054008688675261802433259486662049382472392443427829190139217421","20716075573475893644083269786787803389964136905481068959480339808487008234424"],["17936272853372397913149745751385184214220615570858056054171628479861325437410","9933308195419707889512190605679610219635554924114807817274354899369192150014"],["10021084896903845095064393241323459355299745748354146298844512184214220099942","2106587634333842190275411043555100517842212264832400488401089108327294094552"],["2265564728514892263400915634385299418761548014443395345138989219916590651811","22354130339183249311530396872278782515983964895092693728041879688238502142747"],["8468222596640810278576772779254664113274644516337164248333279268157169314017","26262026728259799820960285491476577230275041430746832083627185189979836517645"],["27619096396785668142694628327313872162807838923087595590633306098978596749527","26885742620964510571106074379502651738645269442312727111829057366162331462657"],["11672663631519570008185538935525984060561264934364862570597137120582825923484","11546025046507275575707205704365448966923065411643596553206741057916871031016"],["4915501119189519807767957579406950185473645082501475809016939241118310378689","27578661382747569449809140684574521942433789662660848035813695544102405501847"],["18326148053540489051261370231943151790344843627818086009800180951156671403625","15767113094869961052832782845165947828359025169667637737088647356641925670443"],["13700954247467419173863029653313741401181754419046502552292629910862432841384","23417152920151760155283632634839183159402398298847812680589519465355169348652"],["20994010515648730281167868379857672924455341943122529999076614411140085303023","4251441852153198015696603240872104939866900103716208511761252212878750165206"],["25917608402314093300263449545753427438932082431033473724058870639031325627585","22691834296483625735978474273099423551492111373984422286282238601006570681198"],["300073704390203719955850641449937505509569138698887388702718291827684034398","12372782220410619362170538962784243862580772032389347154646352425960026939340"],["14282096641369500618939274335521440794745482387602072493337323937306347561849","22591406915425778910815222768342873411192703731552596811057430563123581573995"],["3561366072191854316588884384473244289305974156485175985642863168897955076074","11292512555516565309324737644995985746793457096521733584484409335630655947932"],["21687432468088919046802948323480724218269172798002149976981141216442923170880","1418372963999679792500967856112229359079655210542740653259070684088014420528"],["26888909323557059178426558742992856092242434856735329850730148404492491290653","19294251537377998031278222471854229933466092478956920540639544795736578196743"],["18107464203573168346449787542457663181492914907985883307434086419463091307888","22117772369423973337801019486779123152315379895460237075866584896116352094118"],["11357252604809668950177296763124561788991771697176648894684095971102877305280","9112232839307977425748211374406897933062708864608605410846384461708434341587"],["4923948809162047645878169095473792191234847264633509654165809737310125220600","16651911185149741622750542945991283595829504492122328288770681262297858888152"],["928920980533043598554122425155715256734040498394325181829036315311755155089","6774554523717064396712382626282202578861534713443730259423434753840745239493"],["19167101928346421297002180142499894844637010786089622791563743642638441096831","9085779250777431347764764584196376957802541936107700731812296648420677400268"],["8357884482021985770825815094594737157242128105658349821726860461589171547790","9758329618251178782023677352713354711889536345195431633909182423874314579671"],["13791263650218971838723770097801123072343165037559517426385874479841037100382","7036500021641168327385076021914218518740399396177059302725770792403612696313"],["12955127013447880477477672752793371683034487575963622903819032605920790459571","16868485312686875359480948749445984485123023135088136354752537130770310909386"],["9414952063255281608029480527364383827706048323567455173096219555802218024061","22113901598564357368807703150292263793660080332380660324468874595528038129100"],["2016764910239221546388808971761776042409020958075853374161428922433080221505","6174793295954612948388347661793611372655432942960442340296767313440921939774"],["12517607391007788105933501063440443630125967363121321259486332406550161025039","11807265711638441561138849485752603235996442260252734691075953221037722779938"],["5917425340466396656433391039691016486202686445640451741045214543021610806113","21386392621999878640748638740401866709569314067499908751253158450091774507716"],["23765339155589216749145978048567800759673095124868402969992845641026355506515","13365933917688253058120581118402044310311136177954845460117765612768467744035"],["9672817256142621099667746362984421438407174264063229557392468445507520989440","2114617649774890960300856654436416715158941477015467999303492550892455898153"],["6251206445268995472784780464639483265252672841711552841843420026413269590611","12847319333617450689033511592322037308429718687331449219774848880895294950849"],["3029226566372499249590221643491591231360706401428433882789635592243197222790","5111699775932463229318547368727898088838530562504723960083383415043956143968"],["16193735387167382801261233461247551299824291653157447376090655859854782573195","18752807752135830755044267642115913039288830173074728459281636758496386258298"],["23996415927895632192235402807315169207032470453637238391865646101787246980879","20406273106988377241857684187088758518429147047943467651248455389386844157939"],["21117681419618726268275088888667154700360570277263339181652536341092074953840","2856306751412067210912444594386141387504176919362684867601888654203999627933"],["9111765722908675654490389172546993070750463307388093196532580201862315901606","19692855230045664983226954327950250045737147625054056983776504769959316489741"],["23684157171607539866501931294849035265422563319230366308230051127141152208478","18026866904671050481767406772731442789976812863641555815646263372654057344575"],["28888798992091237085426547256854670377954837998662607493806040006790004736509","27782617223981372658994809883032106039111273702670335603832898888985188686463"],["8823471795669844215076580210891538359605788754835006703904872259199600394242","5360371389974854644087112010399595067357569754627990040427101700608891926308"],["9579733049520783157316081683064627278027169073822497757011537249373115695400","13511780893909766029041064020312840065578169267804773506391289249929049348242"],["24021140725554075326617542652836811277395511880926062849752837936839621798348","14361570140572541074732764484405663697973155714714882633157130733945387790123"],["5431435503979213482291000119184353414454439647945050186276206658532863371427","10863165187142267019158099191904307903865594744482855449173498970667594189754"],["586468786010540665409040644652672185268278501422612090318447464811736593221","5950561884442436288920349744074110680929988670889641717595701762406868809706"],["13370373434283862505254702123694274372059286848537052445161396812253117111524","2073051358607575521261298344037740352077696560744952106294325639081726477139"],["18065060361191333812368171576478681575574678783131847407359319183557991729240","656035274850601392379066059541706226740196646255131535385731145168154959700"],["17616047101088467526784654551363927246338000123517805366402680087430413834622","10727909364884704577820089715714059646590879582021942371809133525677447447860"],["20268633820101219282634174928423536448116572808153037833458347472406321653279","26209510701078680010367824793002321120919895094246529311124314222561465196520"],["8712616288941523459378948636157500880000992969475824932104061841139649142027","3293150631444631694514023903907209267722851059901194816457464556421419563693"],["15985030121092650350822476427373473552095534855318678755095943093616115807319","20675111053764370651369329338476394728641081343127616291015995863692152712064"],["959703170621362944908921509251787231282515981247488658046595835717219820109","23826268829136811075856044251510653967557495588287363181057542689920445262064"],["27112289022985301314397084556603104049570739435035706817642842679172794894088","2268277634142977373463785158492020495748995441421308420202823831773812700398"],["26660884857831170624471106396403135420104552851778608217234201976424044773259","17148325329676946790795577086377026615103442216756500770748148737224838732071"],["21706133419182966092541506665989068139117874798326318665723656511056038151048","1959674506553801648415568627118374798111024333948391346810478840034774602369"],["17828936992959593169945163808962776438459008452167243640166469444402971424032","27495106664775909208843794455581579616843732382138558179620458166200341902679"],["22526470086087491248167376427811805448010204039324614502427538151737395554660","10309583131852983937851409625113378044724370146283906806371398479332184076486"],["2103212034331468159186872968620575494642679658990038246663759143227791192559","6669805516812701487301055284945038738646448436215020562598093462349058010153"],["15206059611762441541550608874516759165628785721247320473449920248122756015869","23474726160612707813575576767229444876957425728271201706336604170474661064942"],["9249657573853529037262139030193338097522150956278528435035948846108248688050","21806847213091777825930640290742617078869854900442848171584427789983341406192"],["5839496190857451729872712837460480439531563848177872251544703873171017309343","25333255804479671058360513401461204183499263499407243233765984904433537773265"],["22170719780199524786948417435122182011333780823871889750001756009234859121676","9196807312297176279085572182860485249997112287695886797219775188340316698161"],["711568349482934016306678524153996081193391287012385926274855090800678925443","28139110942616195348570469087374205388750195377971874305101040368206971209336"],["17961262813280914069571934303284653894618779710576459715704804423014366427423","14699204180095967606869441523589796417063552887866325608997996402335134820612"],["9490734735394869644238824829833520553044151383621646066491003059108331446955","3848440843587426707729314351427972645120122828934346065964408424691561052237"],["18227718699673187795227710032022393731610751330574951739592538883047089633791","21842488458619183752322145759415104166500500224788931071444979938988155562828"],["7354072352352593239005385582919296107611665774523217936793689762791622316128","10135073669643838679502100466223391373379962398810047993233564455836731808976"],["21016419326136270680630901070849963016599325983422927351268286794140177189195","5413579242679205710350456249732814652065791522082277895325698628463698469077"],["1854606265629380546607703935258668951720255733654342269658427530080594401708","2884707236233986896314654771992480034888535603960062855370760625885228911111"],["16313009978266148126638795626252873245617433061884587753907022256549332369246","15559028294506307526367258972131739454292549885171131249331328799926392121845"],["8862623876627390492989670931345327225752470823684346950458888180050121067012","11840318638402590120208962896845678162392012631805722996423281406979132890693"],["7010460372343578291194977094077294320569403083507552417094867353509374221713","28682931781268113219360487740097748729369946454884453371203672287540839156551"],["22744562408060590890798702444182788497761513449697931123153038806899005110614","26201702449134897640003405681982814963014101955277563425516665695450586345790"],["25269656339505231454890567715353201065041636343134431940379498857658798219578","2647960297316279904066664493884491883245468393480810019031988556317068278245"],["512354163121728125358901418045130207814033060128894891699343819307142427940","20297919564290770010225575990162354565106221701378947892617965724223747005387"],["1923807065522206963163560898668267358068190016306086805248136330843077271954","12176263918086644830062147172769872668891985333384961888239520310123888670635"],["18775546193959477231966209000438345299746918551223354319139552223949963990404","21468832962644212286269894954666540769841716843153413261402610615911530067255"],["23387558551130982534730006931564791194580978088030692730097494598440823733154","9238953102889452256309888047701527878619040288420786291999408256667290219806"],["3914513556560369414862627968339669133359721733088082906508558801172654543081","22647165590804618842616918104396606256281923567898614751296842978509763420853"],["3521308838270675825130667413804544592259348176060960715143288375443482851428","279460685848596308808979184460019878839355591926474083611606242194692544070"],["11360927356869417253648985563200219143593314702811916626265150796008156972169","15519307549902503515529257713315985673236704862208923551599243712930680240680"],["25083171712073152724123777074933943798658851967208863612351571356061885364235","25180137827650635970252963789950500255289630516246216372719513594329741383828"],["28441292341898153300526773700902857092271551095679476472825191845861627766961","13267200259441486137728556717375952373094427128778368641929164060343192338919"],["24553034896295492385087729739419090877860007833872581814931713792240227434318","6717131587299308661545237440473830708088875669545720979275316296673929189573"],["7914617615224473174470367526151761681927588947529939126928703255394450150942","12999400382125829690399116785395154051744227225137243577230947477336202381796"],["7900763906785616259945145064246722277739263302074874374163215248501034178702","8650493824108065908566754586113008596735193790865335277668174654917819556437"],["3881512290837827454222720235844473922951066621705116430088418798640517099556","22537287014635287707232346560000690946258759953249026250949382627921184470421"],["23501179124331989456319774384095256672062463052674094891046906749802710524603","18006225906232242036380090258678916866672160258015086988348334151106217769801"],["18591429706783919752628081519707719942166644733918801142539125733084031173816","21631980761455071893120928976904063646412220344363324674309304986797904374695"],["11375864995706513423280087238553556405826591626978889267646824919852141259613","4654967323649922159380581832073744664771379158326843872993139921704019753802"],["28027272215085175453264894951732906813189990583513501593035951398264390030974","21787521349544316796778004196624892337655890966649459279217927517237913488204"],["1669820466754938939699634661309961042377853894872329120890129258107544398831","11198247469397677614201823720241695295039714728585616724183167132253097203303"],["1199671222413716696885724587605342496006032092222631092782168092977469033232","12246584583368139997571388139619510888170304073185196638524300880928430740669"],["22958689014685623598803410916298754118034479346047034777653075687526800290591","18266350948106819198941937336881493291513399736876383336564207471016157878492"],["5698723562130758669741774826805099930438315880607861439825057062579668848253","19104770307411407068479517501832143033344340430826699161232019699455712473895"],["16992939769256776012941731411237654009947804322681023984505074474953749459601","27953652924035989812842798959389972520971022187916205221582625966869816907876"],["3476087962179251137167397365437853568114834609555310926541296741995639441143","26138569995351230326270887531617730930277811991811534410973199339434676123878"],["13485156655715137835339573195297774299890174091168150056062421357143342075961","15801223570541901813161025695832474451928935470959961741318746773087441257024"],["11519451740217349925743788849592785742470651356129371988691677293795087733163","8385433833523987788953856155561337199911675232409172726768098566386167734972"],["18541720688086016814743138846946475984350456720489547407968571731234616694769","27279384665602243890314932253954610320378155001319523638129251237730912223198"],["28106374207401524878341223298620498367687199683264350725673445889313393574354","16820976585111726515246139131412926767056736303133688442115714768934196407345"],["11111535391329760315708506778698028842024098725709670002835015483893633081576","11628111218187638491509546134853969587094496611479959077359275860172946989974"],["16102797272903859740917511682537952561316750297011286903864145587919087583550","23802351412126473726328816626894323717966188401570986952567199524518824766957"],["21005247430386978161794080487282937342616219144282611808760995174259150538744","7017346660392507646561732884093256415793790273652920232679945111984462169585"],["15202326715313855740196787847210885230243894916861858483639316338776896200665","1284304294522366592182123452794984021377459563456572516926922199825087357803"],["2148383196084966596605408622817933691582329246403800142539076352857717535248","5294868884435608301707331809504019402514531564632235339047153181508054183688"],["337602639163480077231332898823701588299665088433993931203709486082135330909","21348195145791670394328823253529269319642388958461508245741453029491527357077"],["11449693406400884195588512659537337726529275867075012966168571908712102749992","803176283059809341563294843404337790373219729262432433401273118302164231068"],["4999174559188332612764802386691186892525576627028772191493173012712817122241","8988536761767351094899720303056387532089742190710375056527477299505686516968"],["2774978228222630804577477992848840480619869279431341437422545670950659883015","27141392494008956398374161983364813737564940038210019317975162427855400852479"],["872922085160848646896020308094887099768894109090286729085283270119396153389","23488522020390695090340563675267061935937817097929085906497603235253990022422"],["20166145896383181304029968621785139883716989307676950433903787791669744754394","8573253943203664333649273768930977986807040079272594591482844748103187629424"],["21290584931110656085548803803684258073699689778707807583340609697057999456253","17873380924371671204529702716018523014994698310966006223795129697086920862731"],["6625378851525833226971960400582202108761766203301420603044603280881335755378","15177437432465688605835450199495369647824688079919493502138380464756288063991"],["19301788008508662752818063184385988186980801428954440096457073515655181760293","16852526515127440310654094944952065922902387100500466839171602452337461539287"],["10326433953304492277222351670545718403226372272996408395257321683449776385003","24616575212934060105601834326674633107026725529367345829363113261013622739285"],["13037227909071856404399903111816661544914630138088855018241596191160978376975","19698943504000314005134339029995262607483161403737177440656177686402052628257"],["25798949800535267274600973683037980869035580110694557975182727729297356242936","26673112551472024567473944791009326447892351413092197054816948410673573596124"],["20493811402692115611514686290031609684417607149871752640228442265390069192683","8224913655975032703138043933512183730700653362513287833199679843275330658908"],["12357061526384331911072664619683951916844619035715012215600072693686270656040","3152151105994984631030257181151688574719955171135008097381694500710240977621"],["15422825162381563121413491964043729252572316243578028838444470725111902906079","9728211382164247303695524889112776160530130770792704158653534030689735699081"],["15405162430151462477450112430469370503305340501616196614127004221342562693263","25949022200669295655172050345305793879382574022536160367882201143290341792983"],["16927412362076170134540531326192851905189206444299796703419590371951450805342","4194025878550969663610613901661991645907576890610501026188316523750612217023"],["26039925683962185545707418171615966598419662635339747802602693935944201696690","7622192548623488216400484880133782156585650445875794270797991153580804876859"],["23191074581724290673807475179816791580751019648384527925993457938849617888677","13221635152901298007159539075164787264931498938942818658465204496295808836557"],["26110021232997406002242924790819050079798535634373891939736428096637983733869","26906334737971732220148872963823856342773925218004090378564419804157995917984"],["28536623067949770767276827207161378316863490166416497097823989345298753800782","3909108810215415067650603703149997061356872433395096824692190193191478864794"],["24005212622992137046787646485925441881731456505233186432716153528081430864714","518642969893240763237963682318245997772014351021881745910906456661054043654"],["9504033771589032646448195895088926612255855049137279232519695322612497497259","15854214871065492259949398815976459770401109987083781381959856478589770332284"],["8969385928626428241726052888834924576243551203140717544627690266163975699497","14560981951215078434116970220990287982170806187085913305851095716256866731462"],["27998192144426447486661623403878963800077509033015284866985121962570363690314","12489054155163678024627089381221899747007519845548891767572634658226935453819"],["13783440079464524874651904585619950029254106213459031342269693832570961148717","9808985370516726374987785015401659928869912779295444136931566445371068562684"],["4314160878352255361702783159283444524251640786065683501477924188258243268673","21636670309771473550116973268936491361506910192741480893314527943620000329474"],["11317557536887334275660609673525324778135946790653671089732534216215738157414","11974573934412273675165362680832478101693569818734103863999018882210851416515"],["13469428353806864292098424012018863514732290881458358329760721601218029495257","14715964913684570449760541209965242636068512679564338330890310938647454687090"],["14985410784636224857119467674552908167127678812205542215266781756165411044505","23723731691336678747136838659537913093106630270154437006583159010351521353398"],["27786776266840932952567874211371357223524575709641043334495483890170286502421","27883532737030107619629625066614625717289647353898160705397023481721566754052"],["4944152207088069018294492226075982738131440717641357818028303691323668978665","113198733781524549974379714308679075630165299261626074328785749212329268227"],["24948303299627611082929492668001822837072377546292778831785367131734154339585","14495930388958092286557024738582533351665815371184858232559716434979479618189"],["11578225724875262271181956955193215610401609850615869600885794581614481897885","14135653983961423057736947203830123373289681070788442688646563037290747248262"],["3077846456256763725694932558975803889966904623584704502334242989448382532366","5154989635683613930535322118911307543212370353919048417408267413453862120366"],["7785431672454611079770712109907728611374930591618815413444857364492921717414","59764768381245635926808827147422891595756833155123887076044602044327041115"],["28684722786370963050389742454336135191559649983492136959181032069845204550855","26068944555058289133794216927849107200961823309991514119275259530380180283658"],["22746280939391765173535602306522565240698110597925118330584927865216808683506","6377664014761156410103397543162784608991587155091839080311317637493248958787"],["5722116441755790860690584800097739173473316486065653781003247180727292845664","11192200384001909717956310047513085524151742805488512563537819707819914375233"],["11810587937651824403182959162307817027689214375343985914992145337994989073644","17688325589716674546533687072934033746362960701404379916584917506873070457539"],["3109507435088728112873405729797727834297123893286772350849843603520088518469","20513022346457775766803949622805285306481511820533729865251027195946894641533"],["7672580927678758525971253366236449341579785439947076037304057095675975008250","1719607251895982188042732664192737037851500496993947992269613736752069524059"],["21228664787542689403454446542970914241275771143092382147544113685907720307913","17797769518574390998662059742759905283143790941890279626341894810172124343593"],["7548081499641844034217140968032123932986953625850359287248277923500779957014","171836464782181875530190345345114321347727707927775541226240117605731989410"],["5853045568041846340946975934150591013437260737459537975985779916984531330330","21793742625718637997178165297108136595114109177072104283001858723148088127203"],["10471194332122208980546674455584971447114693115530878985658424468056786475456","25360401229315162587536207243538393900704940603527473350044854040658906226602"],["991953655760548042472437977318964450271815974561533179191883861890157115826","11676082524353516691672561340990798123269278320059656517635244367473615447407"],["14740366162360076196318497175887453273972208188106845860699371179980102937111","25070923649501130938552819293997046972659211606944291022249222985945404430115"],["23454522258234633025125163946650551883726739238790655585765224360210780936950","27420150478977979533335686832248845066689921956569072156529454206784977914352"],["8539437939396384493226624996539152412566252123831701849956840587707512298198","25560187620332977750155271625799932300371749074706265176594753242867822279853"],["16361335620587653769372669467281990687323071509421690958127564291765584065543","16390969294652934398349512264700420345715847027139207815592979175999820306495"],["20127281677884849106367121493234278979832897399562248933368652008270079890612","11313583642749171303910402141435606801492642665369502643754480286997660834719"],["15068389251003681261366032342140645583543674926803204743286173258628723395407","3602021712929858356139724733161719965105531899215218452367490780796959159755"],["14569156105300880113386418436158515725906404504584887131366616755255550369390","3379308097483160729729792025143882304818786012749710034118916219788086138285"],["16810161385004089663762744892931188046481467231445289022567683244682417223443","1514219637884636899580314389702936793341590129367658423278961837285856057127"],["14061496029288285231472960366845491224974734980244122300436447436183977320370","28294172108232627068991439084468443576618749765953646777410152618620110233173"],["12437296377368678864260173499464415273020169609900079660884860465182005658659","3568433258987804948316656115989762283336620436245224364102242970650493937858"],["1921522275216723021362774748268954113125759916784395145380069866312025157971","26317668605670170256073475291621849049549023168219849159665175475232659084542"],["23353538299920529474816006243371048611417557111722903098311119778212209511766","21189208621246575185346618360188435885404991384847927138599916985316154522705"],["4206319554863023509035107961304785189394255455706650024675490097712865728537","13612770483281026265919743127001421845622311332402496889243862089831078353417"],["17573566405487777993469507728902293487360496446929326263667868634970996927999","9678271211370307830691771432329955198354185853552533013208669124436694777083"],["22587999938965264054399199217930013823365393814273351281603802690622679408090","13443771420782328152305555545687761587631829262610850386837496886790487696869"],["23782227086680480245730449628573467629071404848298654882636318352918320923649","23605030866475896735846505444482510576885402451347597665970873683138055664844"],["17938313053499404836926110531000054684318095111613577275110218503296724897874","20549267024521169364085073842862686950804842564449237438130544303942767468626"],["15597556186306067930948001121686617218819009937246819477918980477190868781412","24274461013228141740701910339198319642104835717263126817771779630091397851033"],["25551592949413622656262195683741597468174028808637696939749311791395631596742","2880711882394300724641752648430051719438018159648642583022283952212146466849"],["2665751429881982957392665933344044020994044336731339556050866850869541008650","6088570938273892777922135400825942053637201136529650194625445826206664986836"],["3450253427668558690899737032337728208536888378114715843613182244975344660121","18007628039068491418602242831383177643590322176623454575654292997303271268704"],["7916380775378691490015169621019871337988451689648696356466951469044009781803","17280837929265603532138087807335356317462855322879479004674476131375728577221"],["21025865163850956664611949227666540802752387817378579441733712546285314052006","21721286741348551658529721249046102608475230299886767424530325988876356690948"],["27659468356193280122950408097527312704989993413410743933497488515792801316083","28937785376256936570997961848354693110998283266174734268689564488465651225680"],["4342592561785221448663463004480421474152742206301860296284120135254343562682","28846935003141696104780863312530512143459851098954647442152383562253845334815"],["27286658353561683069047961677650000549142114419542436861276519131938724963829","19278007267198270424354221109261028501133039188264926561356140870594696575700"],["7508971790767874560590041834352980497975903653260110672685680037901994807174","12586846545681242160077818440754795592714447191283891424481693064697185107040"],["27448344634331657299741568556808132922362768584295725317040329683904822157033","28096311554402758441525146636914461247531741980354332295656941121275071953570"],["15710509257471160480485232151677339964696174714278446897648241935739382748097","28932638454731394529291487206423485473020922858600195534935492143091039125362"],["4736352203439957552011996894504744482728229425828529999929285866615362127271","5775050810065036306495084421671057399732886845260687415268668043546851361856"],["4178047678000543331540257686293839281027444978444297421285593488261439896014","16229431879351654136761506662973063550125759829219209749788851621097337616791"],["18395429985064358935905157651190887743818827285493012371353739170536217412953","15844553501753182356785120675611611847252317781825791170890317916131955586580"],["434743794277501196121798723919592780947865082187191594421719916745642076148","24865208976406995810213378822510885502086353045673367578185173462405497871460"],["24738866198142081876368911917394181464625036224129017925718939199709987214733","25320108651281105691820607545174067151653467173655800801746777269658088112406"],["22266985902764432665790005140873926668923770446179555878556278955460277545799","15363905296077165555427906568060913429142743646384989573632427651928438827707"],["18884625732730379644866552466640841476496772179932163024210289038752932878191","9804894132410067815594111839444035024555808725148669645085479415329053699518"],["20870268847777177641253575738079314895979062552545390283904340103988679733187","1810619312137311316117218640824405452781251643081470008215915953069584663320"],["17749694410136712364253536137222082705937487038938500647939729727427379546","20453150219545104644330008245570180085496828004899245801376621581930649459107"],["13726270385841125516370334021401505000304397713051221693313154725405646934642","20111124643071999242857843286631661163520825438315429701801462459433233939693"],["23598055026717601839329910272600910098695651616714751967437273995450065886198","28321412379769555662174252166050021227167876353157321350982939694328128733384"],["5528285149379509479013074737953367528530656747898819182483237375586135985720","28585338577764222601885399363108192301315352502068490766827379990074478747635"],["13926747504504452155951689970046521116829770071421325824108185747279213244960","11288541291407874879453152938543051300600434268321624796098212078518050653119"],["20242374286793659357240093750701461224832214502644738347683808263559039014724","15807800931345054746675388766379510193840318642991013893579060497108427776323"],["25917344563504588520010260766902371260597316764219159442617762371439166419465","8001327355562185568206195476176629046858225335716772026468786327298397320407"],["1142907887084631612734857558330711999634936729842462902656032183617153479832","21073037539679791001225729079370453153769094243850753191295652132274358758208"],["13167764410095835916767326205039901601846029104816582780698894563325079537458","8179011184983123475738147211684201131422143067177242719430032339399548652722"],["15124301162853014269123262378973624783903946631283538993753471105104587475722","9613113256021716412600150396972119088934641475880421784296384625860731202665"],["19026927502918784145011331218828129403947726392236913987958039487156204315999","26109603128312417228084095983213930419062881989913752374641272944184566409751"],["1879446867810909780965449784854890989283808117007816286762841312066029086864","16248300300571000787474101762247035844635559663185979930671721971255760899696"],["17416187166799489231480570198363499983789926315193540127959431092321560233779","17749116359965398677459167145945704816545045516662208348114792214268766889423"],["16438285546374489944361064520724886686567166130334344112271573843013177107668","9123841271692248152147224175165232856948717448987251720337082533165809035964"],["8423274729547523218788976262309646141743820483265961337877705563735993766772","17330948565649991271949359585428600786686521647951584322450024647154575985192"],["2269538996637698920671353043021499726428698476162022252627773163139749978661","28933297045813096517293426937396560045951541192848792043278836752283150377764"],["14862418833778821164214454703626171100706411660915202700859052813111012211838","2742126266463946207328449674469090534356833111613690773065654115575591646474"],["26530568166422946994028661064445780477159230332114065761296269405486543531538","26608635638495184087105315923250338839184405788795565737217048680182024086410"],["23934096562886044951956456289468691847896432807299101784808555446705683299202","21960612901891141479934651325635694048887338703057225797899551249360368113938"],["6184608490203653365580825949716828442112373486109105781941291505953400467265","15493567158577784695142743285952149711054282443469802386934701920350098477696"],["16345671805478264849494157368416823823386422626182954026051402396783072461322","25405253139023487349061518722360317064962395847754716227140277970279474959740"],["20630897153279533534259359889758403206730901802805859607685182515177631600652","9520995276681671401059964626231494702354721163890041417287857526491786971908"],["14739912247109256677487621989556671108703358742883807564086167062171888994630","21349256031369465766680737854139001687253281881180108866948217699426045335995"],["13940564256399381028660793072007318603652773661165700351078818692891245526621","18043996188492897145848730463301408715505121023246017857920453958465964906448"],["12695760382666023202473336142127262554005227747755722689465586598287421650725","1759036323428125353663231215243101715327298047553559185018082560520642410435"],["11285897960700341715569502322413703869389304066896863916610918242956676722905","23497989250363962156328024712601483491740237104978551963903777746346039297261"],["19884809774848705182795736341925092764999336770550037425129709788437961441082","17243419751944964315322015238721667550537630391034797742162005619919976450268"],["11191591166599314163212726296312702992505892610503635293710931443200090894264","14313291329663390538420705452063200540778472321820689546606629115399500806477"],["6692376214332995281208847111998546999099182073369464545472634028780964205963","8784159268610648342801721983428410076054464913070223707685854668409973073528"],["27648189282916316777780185765887471254619473803458696265559903363956670840659","1658344929877652800349298231996775319616669905062327218531815937766317455744"],["11347472264249027875081788934463588297185713782557311017339487426336388776407","28393757455188183389040650205616436952183229983216358974449291501203136943104"],["13619628328601636265027845700998124411990577913317693054789840967894945936816","22180739909289715222137410282358811731379386530279121574388216738394660083447"],["20686332859967133133976877289399654796268112372436108266932537559323335861359","483902366826392120089510645727008047863456835329863459817397987205016157610"],["26969874581943272514684079489498017048455782107011852919697558912307586099066","17956687493321783158097939486865104709500622185796772182208646667000104095436"],["28572395223069296717682402884039389662262589526306148978331929728176547098611","25006524888600846182583267439614025792969822557101122049799320340753213507581"],["2638848328479783275291943756543714268805006134792655327328267190584316297849","1424209116516348311423542245994421324397786669903849575858175782592054146799"],["11969271182374235986096961699567117237653529699306580456744866656949238557382","12864556673125591363279856294721005600154256621882837534317899570348326762394"],["27172250479514574099610342795460472766929951134276396168775699264562800735430","1423380358323841924785766460007082452160687490667471112820034341039761961772"],["22931558777684727178443768408856726028662199943230066336174722197463554250937","28753196873424032264157959175180008751589060411502444338165084172858964432941"],["7875499905678884355008186494470935815372146003092363904059017441215506036989","5692368199544580244668976875253258968726604734486005530484368822486265847254"],["276175395094228219384155774905416435379380983245593116144816621291885567802","7208971765882869268522908148081560819696371787983843320422279953342684988532"],["6990246560132650841739829670889298321764876977086956809952615007999352712780","10064464695156058316460203690572747860221522733167236340059497021563010646700"],["11224914571588633333130495218517132622752476074500201016287186144233780474611","19658312197424557053474557630643601101536778414757746385098966402553972564932"],["13225693290107095874768477617256749432899288985900224082275592154384666627134","27528043986977274795659273603735576715399334962786098723849317497642057151730"],["2380326489701789627704782644840536720183029918902878234431866699889772923368","10745015822680201847230664234924003089674664033899222585659552678880781335046"],["5528701028156317943609271884936799277985676163377042463124799737713359805592","17889365670001350288779208928486202320582518587817124359787123445509483302548"],["3972625620397572732078685617635010526907302965784014410922302477410908292794","8098089101957087317659899936327010891183424478143571108284827908633817333234"],["24762428607543027879370286589076768100549467231276493587143208194796023717170","7776028097207292386216103913408058444770776631624619649700064731082510883951"],["8211288094526775333641194943887333644305708607868799645228897365224661588236","21241492428741757060261163173366045441872831177689559040632954147123135488962"],["4770771776263460125776402023876327140206312533830785755429876949180933073249","26974167025293617921467239183551966603084909042356830741985799714106767669753"],["9881621102735842743526209713759788333348315671256929511313825751733698859344","10234914563188832468528931211700121082737425326775604422443312399955601012442"],["18775442032556193926904852505035905961118469051291483640486062836017346511927","21817625789532479157805918057208627378081757894918679585880373076715999758983"],["18578671935596506402198339870738200412712873477592635015750518301891662911695","15573039563426622190318646388224555192799952989437777487721149333739807611568"],["14581790276635638298804547441543002747830319326578855727495368461982945270013","14967046421361864739905739284598002718587209978878046451797040475654454059150"],["13833271973321999813500498354843835319829551213985604025647519500611496410142","10474819591308495760352462951552737730205806127027924461184232272350021519529"],["20709439734829694566248497043373794978042134951645710450979449095383911891649","27411158458918384895751164722798770771498215282382977938730250406568551713766"],["16677983432912351992699239838730082528889642227470001774570459118676603349674","19697383196117881608991201961458540791452576470070400569316565769965377274728"],["17091959762879795907573491428917681918894045194288152733921232048094224282923","15497288255350665881443690553613034598150549107629492418798917951618313251105"],["22464205769750703120241660367354362288454559604418941801681306297312753741821","3875557259295853965090596910175440288008081050255028725713805834050268113231"],["25686090593294409965182379986912995722512311128614037160640070478467749355538","14670361062439961339172103104497257638759805768303228213341443305248454200451"],["1461809138196526021430122926154290736356111764738769477590426270439325100818","2085650290362460721419413904875781176139082048913726836161210199413909651629"],["7654153150140573660196044800279651115195417580692697299805426743021080303227","1803884273479457748160557239368215061064724344337504341994391344901303798364"],["27545168569859987657734416003091162275723013765461161407891796068308702740424","4016573683836925264927948557560334426826328386594968012789107845420723151905"],["24974229452986560150566512653765082271097543378710698476010312930468767689057","5904373554132457610944094470211456931787274771981355238974716556067610950294"],["8201562782634737640943295138907319228303508589823463234369980378722148984047","12400302603283354688676218049472704887217595981655046874984293714965836261304"],["16139161046566009034295494763792363314278747225049982731607351521874681767576","12790602254057948443534456501789127737605375497498379025855032388247705762570"],["9715881900994963207543992382541668911672828075513611723544089441556485256439","24565369489291193630040496314933490590033703651679175344959849184521107450871"],["7432475521512351235013966141785859703400289069240610079468734495520358717384","26273487131235526870527575073701638965271864884195219680969531975788744861294"],["4665197528151775233956345718322712611133506730174349194179402365852504946168","11846112873803130093014914067886665711720019110689897806023564872148308459543"],["866167395278145137526208207782141045157165396069914640172688614035349012598","22637012003767860488223970228782005087057333891682454605906999172271976237671"],["10853396128898612908224241260005053454004476568882391710303793463937552382731","15653174409485496943855988801511064032391489486876346999932220466282446361814"],["25876564219114452154732360284653314654765122312067709511821296139105110383567","3954860925918814159247626191172521286746359357568797226225171070881277196668"],["13005710267589566874302908223848065413095799062499818801304251475239797168258","2473589935026849951268636717569606224459968138723266634147935563137877030992"],["9506923005966496006888898446524164900948326858518206809190005511856539076309","1934719855339246266347952475261821898454345369266513096077241765340107547836"],["16430475349886378365012503805695092344955270034543709047264719432490508930105","25237316860320976640659521739895163457852758489489656311805013196051299207456"],["22712255577259783399017374961806035240946614862727533791713871415813154431155","24248916935495701711171249265444289720023789331031858450063895243479779404191"],["6510488623328669504616214370085372637316064026317597692210496697155732001271","23836519492883676143257073758192238907503719034767089007032918950914428642700"],["22128897671580939573848503019629723397421676655948553823791523366636538027491","27510458338886973991884067785592588950541432748316115228044850825200299584725"],["3605986710192202532252487332421214140591025390157791303958278327744759601001","21066210707391693164281112062972919635813011106825853491916831030415020313658"],["18602203004429429205081290264496235334874916061322894158575433045962080456890","4784136276070687560170531196694261268931641601439318838175546670385187671355"],["13846717862435003519990411929400852679425573093517117795125764236980476274801","6943583644167168138736311012406947668804018267928118663181445488425345322625"],["16214099441468731930708972776693180184468710034070816336496404570886652420339","14064785547561856440144411836760690076406097225088054190558010956602491083633"],["22261045801840590937389784919919303042932940310665753200570652636290140105112","15375391879455903539741122605202729408501046097714815525107104483398801009345"],["2854397724897442341879187580331378708976984463515472991237315291185668343194","17107017929672885138193687589869777287744126312817612070184737758959211109545"],["22875523599243302535344741916397002698166746516453244853126225695998395669653","2252715674319419767298730450554476036236508662466955444567727959400592980776"],["2885033078613718394629299520340341836593117205379314205055379469301460814539","9177779034857480601805170751342223874518940923912466348098803277195942195794"],["11080771625256626758820454175904878766756041364733273644805210780328520825156","21414646142167397396559015259317378968752592040635952612434781332586451505362"],["9989530389884655611649293425715114861658491708691167889263462655634073239837","9736370472171513082252723584649919608397912073722195448441644778842702102876"],["18941274034563099065015345195953066574310896591555738217849178795938353808750","21934492898281112944372315561564448843319585378369666357180957375113977806020"],["14404747324597517824732668741220334536733642097257113520261945180076313654403","26397449399019060060412432947920731182173409871093642565085333233114361625035"],["17634245355833450204750055349382707401908658476740084502260509662539769577433","16254220554505279127021296164784075786278035527534474560519357150012099502456"],["17029650165846286957523950178856018653266664037148852078001275516697900296641","1344376201753073310492134371636036941463169931757088215627513307288250552732"],["13128020700779417205029488262250720724395222070751157477774555648471368999535","15470401291757833383248844938813716452304295354597794351511652672896241046809"],["14290119069192264670024538000357382279222025622115352735536177104619682482022","13403642340753796272492193867544816941866215882719060023620583903064366065616"],["27232674340490252841365584113118795751186703715559077315553734972689817987636","2035243251129264086021749027134258625971117006347470416922501995146457384086"],["13165841778957069692336361756250352434991961019987269204463541922697660548170","3260973670592507775908247757009319130265589189315215205981185386009495775536"],["27069689207464534119810537779225313652956174664763083564732967173029182247776","17411911949249271243529821528848803579111876313462089131726803470310929046425"],["16562401503726506991221476043258240845739875692516657197363584217876555074984","15205988544793449300152534261250808370010842641513755320475069639982653575061"],["20714750091953381828249248067565739663804006935380561194659289492026936228044","20379506603781058554674515093538748297303572807731704345387636086394682448852"],["17200134552573676958435663770794649501122649159792889053516452904135274011598","8616179324297015250296248577700647687933278775568151791519701275649094899965"],["276723625158735387386412259777180992134146489380743727920390108489961765390","1961517035312348355289409130003213014756517016957220174114762692416407162238"],["26357335678482778852685229514584783364534774078552380931458665169929574396387","22776034489926385267103743386358928174919489648967761852744534788409854437585"],["27674993436770327089108200241998926539542201865530816079486659106996105610942","727103061788392678708199302220370916298552540078943589671245468151868585497"],["10345051463208101853688710633772272082217901017299870282809828339997733441173","6088523757259738432474591491216481002902110394477903476092735108222390062966"],["2194349072464403626514735436223873047405320166329158989671936843275444899668","13740727750346365870427532768602105907605624374815531722575843850814859520131"],["25226187885966148732693013098725409844604961696111710578298872718780096239173","14976657650953990152855650869273401618672430866477994511223936928376620578663"],["12956799940196724656357888935617737990952142612294654454743910395454249551357","6542538004246004325993464343063197028782937654592471023597730029543871484835"],["13781785081818327388135713007171387631690492153085899914598304974490647138513","13780223161953816671716456347199293128427720549516059085123988363817500537818"],["6771396474971667806198446474757017614485652027995941716076482038792185411178","25453755668335108017918933752636415085803901250257149716173824043623638391215"],["15792001284723844709205145018038559436128493836570290580241816122561007367350","1963371177353894165350864413832463161501095184049669437753685735598991035241"],["11921378565504852140879596729856245258715476451002633529185955990113420379430","2095300158017940473677420346866870119653257729423225605808275566943680034402"],["11492629685969633911473337789561015899056105911715300850216108977150277122297","19221098296236840884733796947333614645689620093385971056071302467422672609502"],["10368453899058951778714742835811751046217771021974378453998523674727448898895","2613969561811370929004999274113855617212428973400511095500516227078096788490"],["9065449971384451698671192447772399562108118023752088105381152844810558145829","28006919471141051685484943569140454371705246246505655184409964924372577219096"],["6280479064847779822161850525687912875585497835415785709061457453440253057178","27703049621026234736554284577967622096394459950776928457231763731001691162983"],["20710114778049774371561528241169455288592817285424577514669009276328201846524","2669146840271339827633938089050624527307301054142469430932731993032854211128"],["24875618931033694782066217347963895876893363203294643764903953392117641348114","10220154267129726233914313519814602194696176047272239261996692040421572825193"],["20183756167576321983422822218839235515954181830789324675393478859702553676524","22399325781967577728569226401094720896954957789179892699230252759762559334952"],["10742503489623298425050699712626181362863743863545341747517832979684943006013","6233000372971924896181589521775475048917233314967678217630555772787862061780"],["21930432843726350760224183842622065853045001733498779015318986890192239735803","23068442526748644717391644102800039358422538059133189752552385990425476397592"],["389378333128547959310240871811695804110957554655944744601724808562693314219","6245572357305579410176433717039660181962282267046667122749942880712488128658"],["10702471144235781457170342781888829015322115680135106454862502151107457363321","23114350254084056000575645527264011992375306707599353522029229569474887047334"],["4643960207571259468842998882099573499363630163543386157779739585570683154141","11409325471229483497392610174661354890861434889003319582897660787708281651036"],["20301318724831929670575429287080701209631660037175380882749761231428629676035","929621258704922365482364718238524030491674522767332778382060527735961865345"],["7955735516684445217669039582815349728388534188841130964040247395769032202064","20082522109386884230629777754325196175287731968707859353829284098844261500763"],["11421125747317346037508809562548345700211233848397215342427717862910304161866","23335859479571973988320784937826834899931291650322327660788804406484973889426"],["26918513096582667004674187510091764208566556650048437635167809059020743272728","18161155844874622670251708373833865195820703761686776044316116479372621240760"],["2122164965821215436241584077539820589701061461798009120525477335588637075416","7209840100865164177455675460546875070210001635757857780702796195399972875957"],["16319009544691882308937465396053177983092139020371110389381481564502148153520","21021885466481977758545353552375885105796405222827316052522717661686146248"],["4125017851695268961236996128136476911323020647486394969673113440445345570584","16622523685096290982959451480551547551193221985303269315503154414768018871924"],["17382150079979895882675610685693314219438959604290939736721844535602033243490","15995014522786148923400373491593411748367471720639124346071394890824488538449"],["14727765904535999829230415260893324137919266306225016180347780891333172908640","7592742372910412506406437828846188877124316963211149763105660178110742019595"],["22330047022280707887302378518379527059082889744240396127736500097037987038287","6872100955777222000293456547253868107919304789967858122937906135571572128411"],["20675645856392490233108823201645212103457020468066644259035565517479945073675","12935082991883768886630156046650129098332665954332838705267500475551573627518"],["27807844854618754055507824017980509086148467999006231630349556639325404676017","9941119885201669555049261346986631965083013962043999719250067981223255558597"],["10107362439669511840849812119171002115861589968084929252346543533540439796584","5148029931757618249539980196325781269155333534743241924060687616839016387546"],["7565062394482773828290418244440089720401680462788875728011403621104103405860","14342161695356177902618278685154322479667822647135513840038387691457570561164"],["12228964013904590659197732413580457710490905973510651571685551883254942114360","17334918756926579803877493908829380933655132804661068440296691670840772203234"],["23207625346533868083950323636559749404833736913756976829338870863196569215884","25317755930562619021613204211002704324183115936259958240561453889058409095063"],["21729968633154195680589260024320168680358143423968699093522294399464831462210","6719151488728212966550650154614517988254286811527330749149753850669382383767"],["7148986311845960013435296135235084451058492845291271214146028626448477675333","14527514409670148000695317780179967449599235951775431812767700249360838108816"],["22554248376413057199349425860877689312022677628191692480448314135139001952244","28105842556907178971150726936637409981426737308885634199361328523739672456233"],["13492644807221038067487798529433575724302891872566291167475659460945767603609","3204183601733903930426938657369082427318556715424770857572336142334581997312"],["6618325424796396076173389012952248143814143458513965025274009723590373446786","19475169043167335069201174832643244088874952793742398216695500006807447020796"],["15964478642572560651548570420575495231258511514395336192780812840579128736295","18651145977794525161050531011487285855636907312529951133910870560601154181662"],["7881031586190039405168574628942243437074708483574259000244908780888062097226","17057949844993777193137545382232652125514479671422768820496398263545028025257"],["25271511420524744795930174105987676943990415027234258481689270039847595259693","23882872245784507035039649011110867518814971738962566517147369733613727724570"],["12930505038615422816913908335532490993273034805785259866342406443278527318483","187424759570675000370591760455750401593094975306098309651333756381660629298"],["19522921718799701662814290533702486982545678470105396240597332967374102394475","5044279285001383279539331275033141102080801272856576608754822218087388213552"],["15442850393085841472302945085184629657711099276166529869798693961456836829809","14531560931543353408178761407066508540428546367131550821787004105843149962422"],["2751735444341265168874368180109376913794309159668803503516813734193571740389","23548932882438891516864239993857810975811286541461392269274343489608653784718"],["13870125753520208328613747739022688054921750518756118309146285085758538092899","2946003437636481130470377227191866547131216719498867717625914400961488703737"],["8463095140701070945652149949431221345761758395000833606952218338749327962787","22693932801226300694652990940836024743695661173680617074202269864085487008387"],["4342865851756154526602687988536439222361402657650311548143940422359658236137","11513824312632971534130871717637144795435986453621759115537605248644205411647"],["21276069115572079827903105651555475228912935403008409835415443007329359698069","4159891373473510900675194684110781966760424699739057455936435729418280773666"],["1095045311619813242905725270939845498183784618993626089444955470497524806369","10648576606514883055049388176170477419473505818760625721755700035481499792973"],["15028156994617324357681360672657737601666538996404709717371021638262607088524","15358331741256914850293802038547813564270180111073001857655564837205990675539"],["10891869005917812553940039899640941243370619279152558894769915542014050231655","4280455725146757129080741810058245620413020123622933431989247703514600931117"],["14117005807315167847118324567615181315437396181975972460695961907317648841315","15255649336071640342550411395042345888686642462264881106503713404161663250822"],["13754166756069175475699167615270844802890375308362986854142421926339688762237","24553213439854848667193838295646042141064981566961326293941853127875695311513"],["10473015453658571166049868569315870337382497282946313651711098132536814532276","2332135240067711276587289628522467970120920157732648369595847435340567351957"],["9036158449982892178992301679406764599897657533168327580114088574581116477966","3298324628852153369774087199337293587640176520089408890946215737314874006032"],["557492324731825836030297845003370759334093619580715643320322800422490457882","19989940646221398791188704214261765445841340535281435289653086331454545194556"],["20295407619828543832907708894581502048872745067288306755197948620909587601057","1986280912350632564331872216457958812711314326570119219190875263071473994384"],["27428780400982621917920488523997657996276530443268408586648115047413972464347","7100499557658830378298698680585186158160673353629104143363905738441301042260"],["4086865873730836195833975246967778080597456857642598644175044017536075955414","25144150627388001740571669121172601264836897716058963934516863849827325716263"],["12699353175471333114235728598749107188663641312927610354538929980829810004577","28576975081919188846065509343075569694040570218831372905215912752331420952328"],["28187996071596073489461430705922179745815273041319477305168588106288506154735","2556124371687039218800730790357926866013868136452810429887545383968598102194"],["8576656737701521313683785376841829822259385959914186130761079932485214125802","21920985401249528436794777229747445882406329727846780088379566208905264871560"],["15288728493650403386135612322942618726735330174403079020732540859420502278422","11331738750357670583559146809310446614806351132467838794176314519681455436262"],["22713563242971064469596775595777304450267378575476805279600434114110711327861","16033347575459154978777988199887108253503550368789590470150424759013798805957"],["13231255188012163376454464648250372087483497494645369081632537606304847571621","19047149468931627418463504090155137126447258059784573204906637405473466621489"],["4953965478544023495768340659697705797809416575163347403132437405170706861372","1994433804969546533203853020977908609791786901656207351132692764459302690324"],["11147194677859103352668163233158452798293866779321320748430206722213799371197","28319029032297538285193886898064827314944767572402737611702346315634556499783"],["6117270887146769609880940529350077254665949227198244128589670295089678404763","9874452956674585683062994536374391186463047707003786845966369833031057414234"],["17213143800770273878431135836958655553958443683925567371697456102369166808413","28868121162977594146209091413268898506790353326290029668547133413885358475393"],["5850738906227333885940024614148424055531622945893477145057685297220730708597","22744849778602017948220465977856095051273022724822750895060714146391940075501"],["21377434056900063647267088201271247307025883883621941807553794144394922535140","968940248311855158759664775950593123397849612161479530735068779986820059213"],["3433836952886069836291479519899529340410584107023594555726962040598290506961","21002090252689815792383247121907157228141922434663141248760200990187963862769"],["14944010258420680981344625313002202598545428943756917021700987178859750363472","16914184561431783689270572162121118570846117856328588570147850822076033354216"],["16939564627799711467342742225489867586160765855700173725765038172232677282248","24533271368954688412843616166195485354997432039481055347177578276637515373071"],["2885756192977797092271873228889449560908138851637575669201397322504059197703","27060493268116715529339528321571013905190746111221895713569622863639206630755"],["9639916539014215621459173811640864026047318322660182114967844137095372397632","1848236218677863290191357455584695107831673927183909841936460913173868325049"],["22868051222180242630041760972310735292664386875536783278541693467507894615973","21190453580380843072916039593318432769781953065991326069732705150367742008849"],["8738974220632905010464161711744995845034488573214618061670555860368084476741","12799871872059647727479642410020456452203646517867788710600950464914972231647"],["26471822940316411777367481019774875118604153795346567849038455185548204338526","23390044955933993773057243528902030876627819530513109509037254025647991604011"],["12547113630087604862250306921759761132752220793010874552767482312600260643960","19793840234469755838426454058730121752971270644819504316498272418571150974927"],["11590342829994790520787920836920391860177706390094996893595245849619902901686","12357896153459558567031254137439434787935524126941545404926013939355615802064"],["8106861703408846162546376948591881264884049998665615585018241743030739410080","18216910834938635339914701060676728328391303989768451272415407842240471498336"],["19538099891367548317455171378171959430256033154793419322535834032375840323745","22126786209299125855930098872467320363191785711672391719956047156756139217140"],["12534044518548979446616804603408194139644456786783295659921338623890398651424","28500996003156262894699584966295306097166177934369267526428576400948972125730"],["22886542115057047231519038527339309739377351962433646038962464640605306884132","18494079933629727477830536137228197909921291407664259810743810742275914559868"],["16765861771806009212065811533374446532564087666517529929857581856594201277155","25911855249251670158039212090742899883560672843561037264491476263095401381749"],["24127908096457446805862322268771027086281382193259252779549386174908986295427","10280514030063006409498840935945654161296169502144476293922649036219827484647"],["20119353489571914560904707048593639968011452630276471505132915842757252676144","13908072050445801825164667320096198931913291906386052455308360171173064722794"],["26274354595731183762033421495887987346719440446337969397754573375150265502750","24393024475092304420988824197052456439977951861968379731426551984816086321124"],["13837556613671085900496880131475348831921321443561822866476006154046656869651","28289795795986641762289272095685817995061291303831984950002530994842741919985"],["2271347671825765356470620458864362478646502148395475001108742953026754399666","25750677633077477856858024210695291010680223864161536565647243291637550144366"],["3731658416264146464424094881754530802265283517026168926462220316677482812876","13386273119488882411195269549204030118979770465256049229005521395763995295377"],["26957666196813656675537629716461342594475450579002346709636893066657329472340","11342156626016253640286188073528838634682109578661910723588558646461994050796"],["23644116168314070302566547650085531135830217247810375397439544350433837835350","28481269426205218627395486818446378736434848519676307840734447455155155674505"],["21509196681917227775111302194185093798500210182159385368286220822669419178376","8273591829998871555528622532295643429258408533965593186453952926852588138023"],["8658233550152636720959356212501555293054289637102913057045936833010502476427","28343625250729159866171638049791266650285574162237658477770725904982039827128"],["1242942263049151554787097205678169883260473770914282219757120812402836599370","9822519785580958017663971288172721345821765552326042324576274426517597664744"],["6751874560509893913741160802931785963713614967088376466691499260352211088350","22323099879090303487019039102462361849539977152212924934327896413252141578454"],["20470855423833886442764161079205958274477174024656017927162712959321799694144","6532853737573373272840407726745834409217697532840877532427738312592464781195"],["6561916941232812052413386504551137884605727879634190884192298918443958331534","20188761505585954708400783408441803090243635647645688161496610754974866258867"],["5668530976366315013698626658783247888340634509632640649508733468842149575733","19404393881575287132872413525256494554400378857215432729360819487738510868035"],["21985027811087765535975816025720912466543600020836839317266609853825637329735","14934066202946180973769068913011382582869151794903843641812570555726194730635"],["20196725801294674507541032659862217268038682439229518534014091015152002191740","18929274403461869909867132574228646124220640931350329254579339913601430339831"],["5549952454302947834353003013187678882022543913576431856127244161213737059226","2019288178926680363921377393497587853271092973220257371158213317507194381414"],["27839119741359541042610397587855923106475238121148143178054269536812754652877","1085393078067777631713627451433873265702343941661105589433318221236893566328"],["2137145914388967726362597701087501212485222135675908653324290754544173025444","26398429956480925242312065420202936470094905532791638515158157847801225609892"],["18123323985739562304049997600431538825035934798053435489932078819786699379932","3791663842830921196395008379590734262794076949545016840500875305590855718835"],["10690700001983224230848720656910732263797349894011201365255191114697456917824","26211286141027154207268581791381959001166267875590592042680552744687424766636"],["21857528034463523801209513242309573821825353973993589575122249281178402044302","8449622759751569256976086008216792060237514921270522375514982022847787808301"],["18962442963217663362222103424647099733929251038526723813461909913830110434675","17654662035645840193079509100243674426670735484109313372646661171187859162479"],["5436568424859780303955461897061658843641218904588986685363446822011768392190","27558791955657240400704069829968422629073447429422574702381926244870480580862"],["18322219529873701805899225006704496070365918307082912809140504450291734057950","27749700326004575132215629945054879196915097315576793561693971598461623886333"],["22260485262158653597187729764019193966770089270820741333764138667133266658299","18301938985638821163676136430525210601638746801404287086540482807507800240180"],["10532291275023628019165104356920790662686022022964743501603071118910808828596","27427332476066444576473836652716079379718724716249219700034869446381837559911"],["25976465801045791897529172441574630452542993520135287457911135850348320551215","10718969301690835161905946020780966698076310587715742105794167740252260477794"],["21613291980168738023040110280784389722726786010506711052853042749538597925069","10946822640818709112870192333444567219379487327532730226070571208757744461173"],["24858547083740530731050432002448626190509486334043266291612054613409023539534","16537641300121065099926133480462786592479860649653066459906562445195840229826"],["8500349830989777830060592145119380368961589093354241134022530716057791378244","25822428263236434594108893546787818116047634055962356460395232623172396875878"],["16307286460801344722186440907933918349170892993018360543485517874241946151264","20558402377078977702328210835735010056706477777040348805679361952849004605429"],["21469830178580533181598284578903388660795448285235589033373005924885476733774","24765349901109835036056911506153988804079568139366418517628114407872271070174"],["17657168349103048974907641816229469325430575446368937899294412853898538309967","10035911033923735139193037003130457487905261134444979081619158914821124096054"],["21811060213739167560363477225041399250511596855198953502833044123768811244290","5892305461824504134783272834055971183231522498766437589854147930233983747541"],["24320286938453131688302364435948116539836939803756957758778740532262086148581","6692089544897275197420806156167858815068263590787581202105270493176050141925"],["28483662959753844830151356493081595735738892875247370411789306953089439315124","9482334724926722234009276197079031715906366011604006631771180080406245646006"],["3244140601772518970114119376236563703600735645352018851197848147754835011455","5062098939442201002090188008177585911662587749587704810091606983134810435285"],["15596247284634677790695224450007910397244072715825858018121284807596187208871","14596705896795389697542967177133532106664922680388344684449423164509465186148"],["746438741615530013448343100160522093197091642024961572688658040450734396989","3453872858474418352122810964281089165274111798166821777700015866029760935889"],["8216137734030388377356129307336869637726941647987790037611317549757678460337","7051200661414370628709517336421386903899642465457608802244879692419591904081"],["19218298683236430822694827532540358028621333212030293969563048715613691183009","15354749722956076777029203449117560565264648911880154651544402890668510948655"],["24624219795976401573395267976482247252982485584734855478581100150286451657655","21196981432822388144614118115904530594651674333182714902515082840479228561016"],["1400839384799478332397163346534396272299990007179160519268007476776638627580","26093234120928975120900410225208897380300905249920606988227336666803586367086"],["13770672787083823400284255513392451577392336168898904214038841934028725537839","20401402424826390472062938880126428998238998347407507954012261397072428528841"],["1240418072550308367021197415539336935306882151510017377617106544924284968147","4431966649466329242663865857720853477079594909516439444333128888737640484558"],["15574603335540853407480870657207797346891438628585395879944703079836341884985","3844830119611560745973157143427920636086128009723225409123069125965669883113"],["3482769621732626777347881590332133067221359007125385538623472850463677727981","24088192813361753676272716697131280313498651223707205026513747323281525338466"],["7182626296868171412151259940114446867383032117618897497413461606866081454643","4859108062153535294595251535211599205842042623991113101803240281459714571763"],["26086532569099557580918037014799979597232215807018137355947003759781709152124","11916794625604603193999930352001547308931211372311051407009958510506837552494"],["18004083092788927022213469385884738533550882133624706280274294477144473915152","23511216309688425106249201596078356558853163674702343073865481579414500264548"],["11250522175431649872677016128310345917258321377107672098466370073651520531504","6530020827479522776344305311398877441799236782974364214240431794031310358310"],["6810228123111639351018519187625940700639007418650939326416616112413911910591","18742496337106724868223164115488798333366477051571600883775965990297877186568"],["4661405501319529047331604331765631239516001939932545080262736380754989622299","9914768527283131043621372140077052140444761356480314117402010214347474515513"],["26286478635423057403745097182426058999692036666671449442898204858869011818430","20869480103499062192011807830047153152080041231619473225696301616726199968733"],["17360080676197461078438776815490657152694479494121559222799505575233116870966","4743569223453467191277107779899694998782937113570020951627817683585799631483"],["17207558274597489165882672599068902923484910340085914079435070765862965019197","24481898370310342622673805372259341717290283907053390874364593424449560384370"],["481113478192311165802006364162414438534966974375057030822101439436661659800","19724240377423380854471277528880216422406705069606062018140472087981746608219"],["1080610893776746163837593819826390752219871135258684895215371496874302174485","12616698045836560664547402946882627200137130082364805300616214854286002888771"],["8660177990583975649747345457565925341648141822210977137327286255541089309086","27354476848838984621569790805439365266207090754309223027157013664198894686977"],["25338581935064619095895676495140953394513765156145340644454519858670444690728","6277047399056981315171990709981955517533965858965335060779682623015021151655"],["6312911618180028617130393135778622833329332700076032689022480051113948529755","24874928434520968839014150805430766815361197700498344118373542960534463568879"],["17661916596107980699767450376188515751647686838653385817421851109654252443600","28543700698864228791624817913617193222021142191051888861828802712361631749285"],["17054721775086484554267082103406651251713286467252541985788439786305428936782","15139120741231093769704036509728504700593956820729253570597866251555602879898"],["26533176044321815239383319312642150252150332241265574972801250549134945623373","16525436179635963572896415402946748996415397923820948812580919883267016306791"],["377585808484479087917981791624118776119162867427646716431302838682563811275","22563171119407103642795713214550400787491935496880277163907836325572613116158"],["16587877025188751908823092428966693132885849000904294174060724679904412239204","25505960234859995201995754385653618379878854682926080363066300594809999480169"],["5182491475537395965904425174888958437752674618010367097522563469199156958576","12823386172547833580188471517634107079483845358036807820135569798889423951595"],["14386208401728243220235185513925195897493825246379454596178198893029273645547","3589508859834844744541395696498136409333469697050167947312506801594246118293"],["23931713091697563578507799658040676024248809298841809059664371285958352234314","8499403671297429369769568431457542300290178662102933183228853895897702596992"],["28421189431320780984904143900360682233342440315072755607542763709210802973261","12473676663111889881915149590212898305569732008217221584169614574511682714568"],["9285032482744749434117325724924107272006998772482415007140206403258833563267","7194926716264107575233141143957309810733126758969355369074327489332835027836"],["19088906233204676552226089162232266009861139579900356179403941637343944274682","6189263953764820952446975023399289218031377620332829604730643887097640810847"],["4553086011301726908844882027021765282173871663263037411354992305477856529544","8057190173815012422064245956363678258861262437582535924850615466103579570017"],["23179973933640215520637211393493751614638124543642302981085476408120662682769","12665621957477170217993891985180510617600001755510740563414612885433011952208"],["8871420741918812587169043391384954321522779653042592185554633410940127037500","7181830537075618931548996434035470096336976602617292871450379054695530919964"],["1288903426458365197585890587138332929274372949284945304469231194875425362810","26042219820161572247088646896688672483104573636051658063337027887112784242902"],["8735888797071131442418814002813518605077014381064555980088974547293248882100","11162630645080488834263934629734989931905015074881203472448299447660259156747"],["20516655240846471427613288225522901024517979117087731743877311054723753721153","23017594992238437737309521469549412769735250851453945649317363825033710780839"],["11422464238355887876264897518682336857344292699276535808692678868821915779287","2903542339515923724823712082747450808539209060524701213748189659761609829511"],["27972030442281829562550321254244003608778575829972398484677782047983320832993","240857077814522033834761145093544220740844829954659770950403666492070101133"],["17421929446280447350911226115687126777775301858920855355423638435723671286244","4168787440773584982977123733914235429637593025902612435592233764516653993270"],["19446374326530766598195430144935977715481010259876025181977406046189216126960","7626905631577802867202233275278857648259617249057547237534958757037378123595"],["14869813541705577133638283775634527105756003812339037024121591231499148334653","7503054602859196463996410521698546265802003844963322538219962785578343301396"],["7121278935079902597236982623282576499506622696555833001023435976487797070487","23906442621926630754873515762540947764833285045397694621181946318111904374958"],["18559873690788390082725598994726185295716315552784399135580912957960725955223","13404571906600069074305125066120847219497020965178468429413585868018428251916"],["8348994897740871212945336100888147942032913291044740606355878546969611140009","10034418085175712900970477191098713595144194833387919611511317641638695411873"],["7018846805135968042814234288652571154843166807915966034788290016867334760670","24244149459144904964888777070211468929242438829761817675782727541246099716810"],["5208783731255577211700353117938449415499723935729650402794665527462466505343","20225000944556724374233191291589919550815667738314578749293406248225470564949"],["8126823727301046710573212248499415067564731818128567251565827789842031294715","6949658598595332650104888189353635012993455904838584577697494097643656116255"],["16650160956347135959804685117281299290030635443076679587453456781481870394095","26230576638706072296164969939537336152840835277193951455277225187308611830928"],["22058567193792877448258002700912259877789112128724378949879122382895322563084","3645138156468761584360399559198866692259834260045010092090232531829068417732"],["9707476453407491622062979957569848938025596936617115237027903139755317313263","24849065490009788086876873295444306264853124283437458561330498850433883137121"],["26858171176068804306313897380676507779378708228865217476875007150343502651209","23193364496507032113361457932510362655638936971577438680292341953057389211241"],["25755619488841976820706103521265768123068415350029547931573378244089214426099","7683045569036981530768944831181146681260359981405923439505640764879809471358"],["1314268579720406335571195122202205914654611288601905788926708998024625140903","22908814806582553439350784745945187017322613742182389287300941554901114562267"],["21320010265479304492707410438841434159132876020016491898199799062304762962043","14496874303882608713258242007994663585934460268569875088793163661795158549243"],["11303109201247699160097653415939487333387124492809980203801632971214641396011","15034599995814670150781137514516266841944647506185029099911020231431962834031"],["10265496716605293573326341016885382965372813018414197751831910801051927807383","9681384073261178948192147705650585167007790378392420975553047850903997670356"],["3441240802172659959898165855937162641372174957219156814802933756639305940819","22989173540906415089606083744854738765511802733588716290445141883202927628203"],["14254335570280745769488219179941167838320456941701589288240605013674577435397","21331563314725391754640349747167117254766280726818415571047757216697917304368"],["22736648823648929761024321661806363831275063677140059399526673053395119123644","12380298470146012623039389383498870788427380364241193680566395030000984790033"],["21057489745231523320465473004038983330043563920508826868715037321696255958269","4824292711905872325480722286246188158336297429012179891188425809361994321579"],["1242238886007941175297224702321069805669857941246975237188965169695565275693","20010145178349660179502912525599347598957511647094418240917462699648206603691"],["51545550240975663948912376390212377941837690951196948232967026785893567767","20267737374431102729760455645632269025336628029020319895510988347581571000346"],["5424010344160452999934612489161425634745152088021156527660150316286135575187","1305056512328877111532826942450225675700133142503075223733956616309696996310"],["15893382527955003691117555212032717554363807826130206983507796779531870167532","21311769368545624048022330442638038410615719060849706737940123748349047050649"],["25527191620641798253980356566789065530443315646408975986048739763956100127572","23903371933060994689722234683751578138351973571027336807451529159293661972142"],["9243101351837196382156601953482112548238939797835410084083385317443722273870","12515230164860146312487228882119395244089662033320974412189617799518991827603"],["14294597254043650731664207031193960223527209286647753705134275450113028445555","6279881106305178142600718274972666957787075520375723902831227357386696456973"],["9213218457030950244786924879854785587867040676340913404089750950462104353076","17317271682086153669564783056742024280166834564404682260322579593755663367260"],["133717470092948850912403521968614616294724123814377266381512600489587514029","3148177461290044471003735788311983277867059836175398854219372228289420618234"],["16724865505471796709779455350852995897057389854080888976009902155962503158228","15922005539605784360255229305739192841735546558367864188389723575957868988713"],["11827245619047850509950993000462695607909570972083153583260946601062166378196","9324778203672855572257256365227184732007799405233545853318292813212419192527"],["28091966091832881397376594563276845558544448034627217040178742367230067500678","4649217337645349887579247459622197647077917855519949037808842387972753690399"],["10576440069560945651555160119336956731223121389310486419712439894951669114491","27714322792635227441595187015702581079349296631587269828161623712766993552394"],["9423193036556643750830894776013209311445530460100468763360114371069181183119","6450887327312896405145101588156915550457625299724695946782482957751117479547"],["23058132226278777608883678496428071330715813043527375873512572597809658344142","6990918521802788592520126446295611231505580481640649102472880985816483303155"],["13689623522014221791586099980126075993223153383319579657732387665817680960982","27139586971298908051113637588668584426887991737491429902083288843732963537129"],["20016983955605561629430629295955616402852929710405067350910668604752878152083","2272401956160898264919469187811951663139499770751147097385628284866103072861"],["12455188278059017036865497614223707203629287997925785139099127904722989195817","12361838264997013960314951099687114245608680173377897000554181504319164850731"],["17099827791699467506426590857500447517421334694360027319169056279071869680089","27978674368791627966923098440928459270948914545220677551122945298404311237702"],["10023702346008671588065536954984501634433757150416068597160011167114675022414","22321710677086195478733297255405257585227199353375783772564639661478430743338"],["23915238996633072784086934199793121939546345375240377120881703995863171298089","28391219033127634186910395216768080023576778012947955083019249450225270763206"],["8510749456112246927839751464284351541262235245986792076834345801843423335295","1714356399230302939752035661033377231804839874139274535875636651171828681818"],["11476034126785578306816572726502962438196530389756547499574189310076135558267","17903732332105687430786407155550716592439193062260534531838282715387311778750"],["6852640748182848768023541023316805012071881038935973777412032243679227151904","14476544974318480382851069650849694001733582265026110263456873731858354831262"],["3153836777706230665659887463780285947505418658591765639092659821219317994649","16781279721787261268077135293749456486908034490250343502111734981331240090265"],["13741794852745102935705194531773797512632745323121245463156144148819797759146","12226274728477444903847455826070481928664961915875988721967830309851079230240"],["26265836584971479581980554253438208486815066257060228956772466211533334626077","6297710684180568610029135991890898939459432768369602762999443761488537195493"],["16450483949841127416220669854157356413569377066876808616715423982471412864275","23074806264978609362273716741953378244927347344745427733700029895843740971415"],["17054492722792634634776550441611366436191287868265685603296167137051675197631","23222629700160348659537381364702400920494208058806618226154537600490090998434"],["22773802904679107284512750611653705184630609265135522085008897675789365725790","16064197826786909116660026035516825054459630785710096657549079287277866413503"],["16783663109420363280382069166214379856668935826825258828984566291534710218423","22390023978946251574772919369019440761199494848074978046228714864179778073933"],["25655921776553056461605294418557590729672292202206726200787780058348566775125","6038899188973275207808143555026631098712552862344353507176618254819987431546"],["25703027424536980875700877986762732253011141376016377926427928461891865215681","27268561718976249366679994732004726148070764730575188484338068056343484349395"],["2562590775421769996687220229985652665303404419677430125637270623117529839691","215195884832427160317958709299491391279652707572774126124383028388476736389"],["20336796417627770496175846752986888319750235009281525822707546444622009644280","16364601758234074011029255015747986990107092786926716668405697981888051699982"],["8335743558910866602812682978681152474884627993859053276692846957598877794005","6524015021165734252118678875021913715532248576336514549935269492387334579991"],["6621943758258250466530135079078735871020075480494916457911940059589921698397","4444794805071993106629476635535583023373793334598105947444394062972648127640"],["1903328299452619829545911830586427776858009660245523617339714387625491909959","19536175011023675836416767744238209091265642937141346483758514360906878861124"],["18379890946423850435850483106571968884647408963865488805245711200263094063680","11553884596226910903600594677966871264669075453636527759983721681275339839265"],["23193385507650627281349499274709484158172297825757608168643867107434925791277","5367462163602945983478819038547665932412633552714939222730847695571180482042"],["20046388154189975016889972783544590848758250428669993566345218063815048339174","23930769889160914912689750073516861547177427838519118871388730403559138497781"],["10782687246322013926671615566733785575047559442020240397044434600087620464091","28650795384031821338445254012940135320883406569450634947644709976441126515660"],["18728961181297079420799393708856808651696066625610667744762509365475389102386","13400825054548539390522505214493336935768390637413927097596942708448116245775"],["12353408084773636582579482887373464938066966610052605513556056713084257391548","21986655090843459945940839740705435667487980642512073119870895295883005028543"],["27870333264490652471094172027838705353447458209079897593503443845044823194730","7960423994051940310850227822683793176045657252653750258183504473383754536494"],["1657321734794078878972869282440098369169002530311878149710545377771928991685","16554069713389776916872009589504999552683361023807049342721595384658952356096"],["24336135327015728309510983187408668277178601355199555742722715970780615081207","19160463791432165037047670027491987884098343481632690870275889616213777887443"],["23031522422441884925525916574030934687916887485852170410930439598792004215086","7668532314108870594066546208476120995642302118467416080115037016494947488530"],["12024669324245419513165661833639143607566267953937659382668322056229010332171","25952911593401030877949287267426790949272121836031643416198015819947273354090"],["6999081564676779540558958478876952324990277119943783536792076239017376456726","12709812134267458810651805356063196031893107191465977832617098234782558221612"],["2262774290687284014404456965812966646354484496926022270916794743475634767025","20881926953450345837396924535484174067521085512757562737213957426793631448981"],["20720042649183699725970426560253592827147372658146677351063540538592412284487","10756125120244321686222345556630961052990973138360919732456594233179201763450"],["6768468395988761959461578141873949154094293281134836568601129048038948608947","24119811580669373969911504907553079402960914917997902468358682901135781618491"],["26785121608801987478857969900119967674794858899089782118945110856682834865318","26396846912602987168901779097644561833412324525418629102911222618907216734189"],["9979115052641094023553532124401693057720281348957683757261023461978782964271","11387868041212133659209607784828571923634433609855684606671873324538459501881"],["8444062587131711407381189093303249689764615441873061414523941427902581444132","24532258625848711503483636720877990490614526708871647870114540711468211690863"],["22621007579243472830133691773944945180177988375531492273746471601155154677131","28255474858401513833605511980972074750238700074956160037265472936365979223884"],["10676468537415767232159971507078461972159250544855875679352686404892264405924","19647311777373120817907885905138465486037771987917576884081950042077838690779"],["21606980886278937795531998792969672210949520683705334032017375855776265153854","25173225452068994654104488144491787142241906016828316482293833859299398322069"],["22135406021278467940630937248474979369678230589005553543339102699022753089676","16262088229777264892306004426682493899733230595049172853469131940284528542233"],["14138191510326462702424910031473953640325260488097835301653489135945745488588","10069045784293225917895471525991238697438112448856054454610066669722623925181"],["20820301013134144210147520775297969761536077401608291080450228468945412045429","2282079100992814946537303121171706545263313990282154936681444050606322315776"],["26429662944706786421734168565521075116412414849716378823550272815747429928224","3821325685908422319338353735575776805260248307133133526342475326405797753363"],["2468226154985702683764718832905585068223601948561962970140919657345854847635","28822433888980263312514590831875743898943001673747188627281016397511100120960"],["24732145917048761772317644772000850866510500666199017635802771163020509877967","7282064786944316059739932594265110536144989906808870549461448856133817188923"],["15318514380142407799175826401132643856192016099122696352136452655416670036077","4555185994587909187563624069026565532480277799935969876722470156165540950958"],["6926975680205383597457481032163410178456803671447695854625966383540084424076","10205511687033380901021882737787823650690363480826123869184716081123887614468"],["4165739613311878144546157424564103285963357957776203885681373975040447881996","6919301193741798504904937548822332180205015647823855994815812023219204859076"],["20913083443265805102549811940293955344959189641080451557285262177108421464637","11476647541635195363406594129757841176471829352191536358544833876328053148481"],["28216094262964240206142674336604175763843211993017518725174326061682307100760","28619699931524803882266624231023974145208640656478390049078141012543737605329"],["18808082576461994772407365928483242998682935792868784036385210425285226846855","5047435503498498853679088347228830291115274405696665980514032399150330172256"],["3094189680777306827824597807290646182704194207007562219364899148659848686885","6863699244413135599275670701599200793116507633850892282081559288065024126451"],["7070158374079638207639305366080788989745819967936545331405830163144083195724","5149549676057170542217891188649113649316247077387548107495651899709835026148"],["19859021732338686727878113115669434374350783448874075111937168813971757828995","12348871590031132590863126609559060572735900798675293812925759956121881821832"],["10575955005685650616013606279498302125802015424933837043010403920783699578376","6772567265403880118706634137157763296692003897574603184510657861358337088036"],["22568834734408043936073236927789113951884468317200673034859514308450239612962","4214019871474725586852662081299332111819699917967838205558097648213784373188"],["23593806213746085387096279648006792947640816830918944306794741799350536991165","448641510147480235318655588129605386664918499284944566278729034647632454032"],["26587099980488836774595686516101819895101690053262261784474991007307535483766","24321657492632683013117353746267674727009465814185915793640972590848211487812"],["16661257294491522971218072739003194888826400174777866412607510506859378714469","5293598049630006566288691121211261854065007135373048165521895406860514217834"],["17062451519324365543971808017816186187952653693233334601343854657753710610002","22826123400855145950860711880869196524196632427849577387722446476848235065892"],["10819098395802849378390815810691100753860556286091145134231137116429687035829","26388178695871139879089968511973452871329221695344814761543688713189870865630"],["26086247139231077034373913213558199313937388823256554180209458582836539268286","17534011410440382056943489023570782055671472505605901560798487228700640459820"],["19672392211372351003727641820273765636836087954909691917332364773024915290461","5410779046915241452618340783675970052836172301030920235144648948648476664046"],["25424215609504792269027884517081278156640191668955323623310502078453143384046","25109253653854766319606901725716296882239417491531923840667329022882997546901"],["4147994829411860897000854310354995314615252406559462357011922897260449504588","5497155052926462640566882023633583328427714086165160014120342576601155790121"],["23677332772103400462616247789097798478529149577322575622217753194430498949390","16884629530896416982601483487977309117093007999908956847687636059264904992585"],["1981914863079687008665142913707766092477545535064508938315227691848926309287","15557591558077429443834306230535263793279307469681320665761823286233426316040"],["12195886469481009466044354190295985539511507526862428653487230329286375931339","7001508973607080949528787759649952943703809068674780514116251548817566362216"],["3266678273394424826610919884347996549048635721689800176492106850178481418110","19809744613415533554497169575757666662091290455863392130694671827345038635255"],["27231951201008692436902807182206336107164821074453829315843810154430500957876","383151906418797977776789129480675626605673312495349547291370465791915601209"],["12077012112257730259137363005801494825912054513265973917753772056139944253522","28235470845865722833391334878747285332690246003921866773621571594457864663615"],["28617769090680918197408203312121960613005658440212301936608702394406305492937","3937166079789535063254124217993466642839833412428243579204345582342591822981"],["11547505843575569325511254143932793641093819544354448782510592948763516351641","22317096672944255877523812079900677917987251459073780049906600988160502965254"],["8821500522862096989879657558190593775845255082643611626221881468878394220489","18525083663133195749355537831808472294633408240654948209299951155541598873758"],["10925968972171509456624099156890855719072801416990700830100517275198992534591","21621521886842178683454770944652420862147547440303752348629642081916940643320"],["8816792586964291439721352924050402619714592755645334471877979658103976123857","24732485969500993772150579710748478666723958472147666720581544863265411354983"],["598501961974979870725453118839039968541753447342048660839437943461781003762","27969700685947230178893933213151120487879662376994374903683509865736637241793"],["6016650035223409669125018346500343074770090112858467847685786321393145471114","21294956576884199066089499068883428844545382073362200756764540221377919942583"],["8259728560260835920622232864999815022627431616623014016014639569933167996321","4990007505477314132527077330114861872153653114307201240942865334135999599745"],["12942830344199802469498699727566783645016983216631872402677530220450669454062","25712074557533404532758223574632772564510240044653423055027919949495125094143"],["16486734727339480133591162827830467418172938445973696541657538614173486948879","344486509222931864064082013800093121210741221129614575270206694321030141452"],["26814251586898159748083608532042052683289864462525451112588256747817304529755","20620123872647674679296214343475425253190543222277190282674157907328537777951"],["6971439099189313534350613472012289925978264909587502968305452157177150929721","3533316867699668012319673215595575381404870719979415286962489581574954707424"],["27657012223361157678854767431301535425185717872439551046737940713144725977938","6664414698837565263831390379507977093972245808160954729120279605123149130252"],["28125094477401330847432886233506541417594943733093926723092910466851755839177","18184536763151449807969016157618133019431786679098729054936397754795342435977"],["13607591826932091946090292581371325431678340500934209630551790144280102305076","22205151942579064349369306250477705673993082299323650868272559888666887363291"],["13079474731597922431878203166128357088414754456836300304461646049221328059892","26215045619308703438758648139263976596174705996080525114609879972092104930866"],["2188714934828128307326782445244725501895778018062867210748459143707062250094","25197219068684648647080786937173299968950856461544814938227895896497812752344"],["11250793215719634005750422380021785783703323768325947593695983340086607192256","5421528134204109331536320838955678121196059676267669837683012564026313919748"],["6027211644725514246056961528636182872348816576718480687821766918186204288512","4440782455189210588403828449038391976552672243250147932366770343140610961065"],["14755646674854188801587062377348677883095032712362582675112383332742403329179","22565835253255628689076576482262436336438848457721507577183728037001499094675"],["19423696268051265851745307262277405447044264189910724469265275585444622861820","20340593617305121951191092590577871281998590875741910046391768245867849585750"],["28116707377362540579199481411341503804279394787417823660418697938364859615084","19286230140717262524796270032058368656312444127258891378111590637695340636810"],["5421602324412270817855470164805710501729799382769225792309410210405646439992","5733275535068314078737641488448146983821466957349641869707807365246997751853"],["855449960230432793030651956363255427911166635637750337928847916459551660311","1728862063779031632718369448114816669113541605718410619823847855441762002676"],["18332444664884619779752599482490859141515903277303801664976839203445739642658","22549499584642039024377057770029046149506021360452332027180493812383027213567"],["25946399345294799240575917257014446734803179285137243493600015030660360180465","28665055086841444273200040705268793669771496991891059289265533083574517830490"],["8256926707355769791011442252233524702783718384011140027594485937868680068842","14603840111781254661165575744667827712013043300607221045390461988555956287994"],["16374877169481241564828620526664510827469260488385512672072090328505466706067","17217449866541055054618129895920031997915298909406437394292518769296394203095"],["23371886021425515535486508916513518812373053266889961453807210105315359131750","15943940730840802045290017629412053655005926009786779994271353538364205948537"],["23672159380305940565310458872569921177611595421973601359305982545302248301536","26189436569415057214335471960658212640064774294239188061734779505982960556694"],["4449957034070037718665939408935413040463463856071471323921836122975653613837","6297237139693393048200883079191127403276899526910696218368699172802278149775"],["5295353476439125336760574364355807885519782454525596549158674396126963013987","8844430168035318726557111447170827846662464083555876829527565823169041677432"],["12071099095444893540116916692265120152426474446592317347111581593478516021628","7099179991805389894508362477099183151435718567167642373160358440603598472635"],["491285998869192890025050395594615248751359948508964199267699772096281615292","1297048872129145684865396942497208421821152250886917164904277501437350344462"],["9522562931313920413820495994534649955986402520110563405699104181001488586496","21791760663276926592466042338627307582663026395314267094758069718294324594585"],["24361114581688619614708473158852555429985717076773286404961640638117242645340","18688606083882873403725918472232397934146945922076899030131950955945931655890"],["6433154723223407736623566030317912647832219579907766479471517578565243223866","22881232797298137094865333664833603513595501864973970999893831002305153130197"],["23643749288472689174682552201759925519317176301174615736565358626222151875029","15721964612173740683030868916484808354768107217979079175907257778273727678896"],["17802814074528587539227421322433011894201354727456350776493745734874439088547","8154132244335834443662650924907173431684092215068067105652431636946467611626"],["19873914510816258058750505035559023128932586315761177152783704884911193310255","807136027632682432710733225461955298333474255775815390337885594153009641980"],["12034735533776876358253911571881480078606940199233068184682632692430115168414","24511977706155259700558611823608396849051828608962954868672551167322286410793"],["12852238922383355243002993192387160738793414083013152148765955409458582723320","19164224151774751241581102532674663590769018228748513434073461022611982039309"],["9483119390169258126457310459355018193801944780915383255683720093899407208460","20837920622603106807686957312516969132382193882267590376900843141588602272691"],["4052871594057292043122137027756058940520072488762164951417210334808561790170","13009183871534207919087592385319264750876438918134344218714213587517996997434"],["18545571159194083176916912826021474832667767343207511862019434448890936539699","28923535098258629342796086627052741557036493639709553749850475764156623124420"],["8622063763261427590302975884131976178487515993718935976137203247407971007333","21955732014698287889560476426734591828042671881782923159050945892584843846035"],["21142782577172312318167337569131887493426667922950119947433449401779172624860","18381898351244814079169969209754214684968126113478809604316402214621959759013"],["1944160986531861654747298133240082645335272538036295810665744634956991444516","19162963671968527625804471263351587223588223038676651422616152114161476177552"],["26213738052375611371953420711701908970839598271443339396527222123919386419658","8360494987773216613018496576099768045684860428966719256652497807849432074975"],["939267200570292706054031429950625576152162034788829683554608795556333715191","297387439172661097864005857011966024370878713171562176728379943260008536780"],["14619245487694670855463396469610813494696428379809618091127057088413541888564","26451960572440563828152995007570985107503231267154216235408677265738229998286"],["692080697007103515573038319846990417234058325081586191224997378045882035110","5293789485884527242918951435902815404904090879004897273165400330784841865760"],["10217637884995704580700926299684920209656097914338486340588126210171120990841","14342923357750980855100449381026004994619832448650489559133462386003694590308"],["24846533753672110235287749351941502224059002489199600540496614776567447788319","26673822304584015476417159256709302920677971844672260968771090254177653742023"],["12179876384728410635369026370995403002017651614440126049534327973170245212238","10491044639873810536637516638906166546260933613555391367403727796759907878355"],["4219342275061287863737641441392415234464158061239408078706727144050336214908","14243753152867924025996014732612157666642716644373427645419882134012489981538"],["13381543636505715797604692725600530162717050225496492468708329054053135800468","11620866715171278907892965676155302272103281621263982919390882863829381079341"],["3601359970643682720644170331705815332071528770666332454746896906475572426865","311118358653617800607373657105646801562323044863442612111859027740492142888"],["16143685199600188646361084269416330314070558978364462057938213639819521260038","19741172253932026122630727843206753812823862056499419731827867171353582220761"],["11140957588644086005235583727352673092845590184321200047662057440567547560911","17065413515264593083652419033378286050947403142013351490949136241101644801221"],["6537938880898052522341589519349535753156450224415394527538952736909551555124","21215995002184579301292057663807265270241947856082018261680275189169153565996"],["6547451587060855923127616916499815438789758230960694988013395813418282372453","26322059903335688420952027855592086416988475620227560218073523891465057390584"],["20161297884454421834968134740228283260358474811903144525021442247810040474495","2532898756029223208994147180962131951556178571308550862075933633649777968117"],["8069570174780345240831528815132887320222024647908051545557743806496170541550","20488672766632738119551515153166595493349004867027612763037203699619113090634"],["21144244629663199877039069130844187832224488847522239023324852125553485839034","19256832068361069477013122089585387992321428663997985091489804162530701730688"],["18359011008634406861609010911625607599728855494690360400124832751258710042322","25549525532338854624174512067418619029923437564538627302941134494146860162786"],["23795455538106533070462827245435093487695924191865963934821332285700634508334","975118336438159512454539687868208824133180016750836553752903914275060740131"],["6485240809659150238278595468263576913544469984217965290651787699240743749940","16077904607267997194338509404508459250749446346408755882929459929414187874853"],["22364149629519698018913523425595544411310407582962076818863365017623636779938","11157665959003348714185173003584570161120428202390938748830845755746509099516"],["20573272390514580768469718623285340708098991807364019963268472048021341598971","1965227769497093953694297296771006408622240842642525880806996502926937538940"],["11331598705649114208788851467442302695330100698383439458425633414011721289890","28172077090546422386068491613379833337952220589627725946689164401136137694206"],["13239284291497927402186941205802781554474318004528283790103411550763164355303","6410769241188566770365458022340516331492037666421011321639060943901514582254"],["17650104677335527254136475341241830432463273626396789981318300647912812598335","11326709281826853907963668180452056702031505652557792171805268810706393462705"],["15012308543811815927145946913646322305421639208583207197268431709920008018224","3325921391165646006388128957973831315125886504693187237472174282386748837327"],["703801922492514934978796494198580140639761625187558702046600278792594880406","25075328484562274622237969591878175004441953474199614639885603288034739138788"],["14670554151977877451818302483789670759395705122330896150608179928115953920525","26714670007621387344103007369674132800087015159047261871344360523179492633951"],["3934617084027377242710598169296037225331638458013933558896557090595916969022","14034290123791542401560428490358803522788439946576194515820023754094272072875"],["23760126936392471515696965695037465805685311471458982184321540863941004744516","7658502083244698145407361750038983857388731459934626690341088188832309847265"],["10708512276828588736477051458676749649055145271627536712807122651597413416754","26271321381005086884945675317372640596649553588800982512179701254143953322778"],["19986785960204565229232101397495470932640018474890378753134802672548461503501","3710124453125250517965137080928449214277155919200402634816858304710859266278"],["12236006216102443356807432851783212702046473956338135187910995307101585898413","18506032308608244192523886138261860752519579864963176277413311989723877607304"],["10084445454861877795390941846624677591889093962101374264503866254214534985324","22955972445071711002987084370905837852083121076550561782167354039400866318108"],["24634120041597178777693082849112545549871132011666536789242641217289485728821","25029261529368050866043063033978934575035483309806410430637436645668256882700"],["18181506599500792575115447114249738179758307844503059612298008562201919777738","23444984829970510235542946640209103600948948235635741635197089535725127697417"],["8815649002054239889382817863793656373918669119058492706851928313834819732285","13374418471130711129381237812002538513559651620027384270038833984151548899007"],["4171996417397131445038536419902717066189293177209010959497332170564123101263","5574831437194789857491602168498499352413687122386540631846293973459598455567"],["25665097723564528355745282771320722585311692888785810689929615137744549881425","12199023785204232149253334803524611383888604468163410520927710728207944439197"],["286366762951359281529239099411566624441298194964570526561154369836732093111","18628530638803629121403993259028265181369682708482566944277711573836305898374"],["25194078095030238410283354682139796415444176292925363601145954184147692946470","16572718496731836544135605637615095930411261014705265315041326076561320788007"],["15344531369374356064475748657073637494972336963824984400928550790033434399643","17807196154239540220689967357729453593182865008610815867235631892124037565217"],["753843516995559705864069114473748846654117980679067837894528483331187575528","18893671937457596118660705798974986541771488945931141060821061456066668001883"],["6183594500104321230418283861163737911466992400113134601634339553952822530453","13221525546813730281498492735040711965192141195689411260775261250211256028210"],["24139761636522432346926079007703322774636948564729470665435214486328980055062","11754635123973675515120096012723906880648224990318202107369228969520834141990"],["3161583203479778862981488325787197615018611746609408988845870558126540661589","17265347508452056624830287278802305239533668817388544131818861742471430735416"],["13966393126927119839054809233322182191247121026397497939835709841981994867474","17335199947426093884992547766800955830006801663756560765295016657068069005273"],["28252997904755000452205293385007368396842228642587604178239420516077235689695","24053367814675459726471995214457360028931006396250464115886034212672267410780"],["27307222847576612651241005278575836081269027441636038654574221732354747701612","18975946271210888210729404207581110391363784928553232437479460975245001292187"],["26177869213701458328588253853442176022818799275475199153164397612723652532214","2601103189918054643786255020938752376911025043133849669198164002541550613273"],["22584392854336159037730715317583503097593272220334940245767855028389143273201","2974633318585112649920725665573250930345615545439559620480214016157751823481"],["23547832686343345657526189628528700961682358567968643236572042097035202394587","12375353318551606436733007980255971376981975059634445038104221233545938872566"],["3989101646061954201043320098435688919538636855614978424022889347305559075006","22759812441438641043402786664645099703821058926243759117782443267334236862667"],["1923828948671508814384846794793115096004096960048326590913182062740262227847","8926524354151234725596506194243444448578911383541498639752124842598852621259"],["8514218483932516855944215091544258978450037734008276574858203272826944295316","24976496383081417019410022471396694929176989225519549663596426718108638954464"],["2336476607027973922117758346594674951214228455079939120744150267163039243451","1896388522163836554427385877429091657856201272016606299101620304046968044218"],["10043662950777134763651388265015808985750205031499405782563037823767648797981","10446779109909427676222996283526661706168930589544212329412813812121356359275"],["8132810602255513616137239000354667831718599549665355722124234577066560638310","3430457721054057683983052189346954401906066710929676780124709470327992220589"],["28848708582708825498610108223362758182892716387944031389969396201878155251841","19971903975200226710402152978181327562467575745252760508872574105675316870300"],["15397241562120631991107660279863873740565062199614629866617392982596814484055","11525979401984189979416426890706732799130862231489274669230095855928674544150"],["21842156031159334476867495256897738775060928997069856395753617439127785023261","23487944198629622978909264793586007674971775554089003544350563334333648805524"],["27680643318159809479683752465855037298681863696107207683114222789978262261003","28066222026851674381533609688274770049678175151626824298798731709593786086044"],["6384482425945358994610768133735920653980682642149993608948967757784368683546","4370775070233556530563459697303977362711349534251288152161044700741618205658"],["21169933363625492782979177466292286944581874078107333877747386505172158601543","13002084651406080430542076511600585585392095500539655569853753519683670666555"],["1695699899586699105363897739874738321843942920081154865687062600879725235727","9165476681861506024147497885206744888312370628354527310620873358170010016850"],["10608209599565273701287591533578153173693943706185556670644113702443690610522","14458254310832632557088498084374360225034291739639196327937440595778000798595"],["5727052747788284772037308589170390300293794304290521329761283558149282516957","26189895002963180498893674511999026367607403114861859695597053441431374223593"],["24174570927949334464210082913174798411472159531898450217685191830728314896485","20278967758103096190665220756696783605362034809851069289722501432149781378840"],["8709153955689683416690128739224086969484916415478022349417127333280411738382","13470071648633956258097698896818683707672777386882341329752280489609958538124"],["4002626705825939399056385025811967692784011721761815815476069616258069366918","7414589096401081468481568521310127944838847924410896696122154764069359210574"],["3145290449081664153514824502735773626413750272671602557004576769804928095075","20736275075485230051479466585572105057961144789194021326181407336263274117049"],["15047263755190558605987302362232174992406349446863926856921125553780824807838","21567303345995204627258092878283213226906596293937465995766376850844370946855"],["16277590014024352928577074280634209021048098734174455521920317719519701517898","21548889387936260758499019936111577787005684545093487251067333688827412621698"],["22299338611273854807401535468047310156859333421710015903116388309573261012788","6698508514808674319077018609308465589790723795339804646030342791001016459873"],["14248685666450614091657469449070059117642599181038977965899392388652355370984","11103279700585415093148480719305402165094299462916243769909597115888566719932"],["11789811031480552864480903528192463574384311388658705432468397050105427849252","3121040038354637970928473885240270681381405938320902887675783122183012407140"],["13240314287929761050160023183274129306620191728000525420085837787241079947253","16650587258397686954422340337641473933265837509681958446929828430523758038536"],["4162933166448335287778245767386033056729353622886457342558335005193190486063","24947568956705247168123128438554246389633593929795167973588376365474222143596"],["23407742148061317858705599123870185006091632104858142665683579655678487761362","15469358918647985068755039983339065177601551139780890365121276308555339280368"],["10739083817033619186953527001120970606203862250846416690270253357116202816645","16985004194993158243484776411033408962230991632497376590462907510666997558077"],["27621080753203686358484878216404983691960119162564431664350867371412866938910","3886124051541474013723727699017712299256627438879186722644800127105299079019"],["20871119834834130458543919859340943019765651191989096121667039881542467803293","26962649734716767356793453600225444966225272905278480892129993837701554997537"],["9197387926953186317228729561494974769807653084305126520684434821343271683328","12652358297086371553437312194014503661449600241202002168518874825813787389079"],["25333332954134044302669989216495186753303034612348043963936195915165483149537","262108806200830149965320950988765847743158106054934162074695497051144261038"],["12205350005931522391419860354190300980737070928587250429909498796709202545818","4642637017087399637789488600467754218862925556449479517063544623895671708707"],["3074393417908507855540088173579393692111563160025418013006550572988227985957","19967982719214153359692727269403485721777232431587887139089744430753016151812"],["2993801920785925947662709382869875331551319443923280228026770248456975724250","14562446680759134571318405570616216755584609669464154780763228298881110122978"],["11527381075002121022387636000749161491973050829281740306828049083778278784784","28942151234537769656839232006911197001668680249227876675108177984205114388412"],["5148357432024143994081308029408513593874708276623429263901244655571496930493","16069339213922700819173140901680991359286464449334900763356917346443558577255"],["28225928712299907101084810215270912138226320651607886784380029371072438520578","24602633908399414799900306271033244680999141266618733195182754287186159492356"],["22377972645909492694541625877629582913212284573564492976140792469852180333969","15214153651586480936828020141664797280322062643823410494066997567062465930174"],["1081774756315231532928175434913106518770956005640908276937936355560066702584","11310790133264495943228386233867996312689298965819427485643968958134060600250"],["8470991883623696720973533009054690068593008398086755135872299392838880221160","8153550269630953648828858308100481097962585174034733488966327517816004307165"],["8282331244731380707067017486657623543370828911363515256122031062195486492453","4917757917745695357151822271070922953545085837768383055805341429667922964597"],["3684653039531277887397356001854801184873061138926851967874852204767069015213","2463362354344336091277712446758546382699222235396116603788938851877149960490"],["22256681539764296830161105735671505116352553982544533928892901872716192535280","6234038941428605651219618359077828846980478030234206530240741308462511781782"],["3988926425941143970915722390881017607145551187969023254823929659443292414733","1877071818383282929281075466674079047943761974680909448698440525374841216791"],["16397402994969164907949178655026216163026961930797198699587672337784312611768","27736106796149025925329266448043842351689461008073438723893193033349675464866"],["10919317975760075897488375796749593298069670984206816062146677424584068054156","3307377044479502036771615681907885453945393532131240411592737155063485608288"],["5445886964922207028285314168737376408865143843803607335893692921506071132929","15419222234744433752615144447083702920149913992789915970162272851490640957603"],["5121154242201135540088483439661382644084859722134436719887860079494986848047","28045441212475911111487280638850883612921954172749274288135542939460427505977"],["15892121628272458276110522152729038469063427346911558621386919389453432226123","22192300004156077082003693941192146790755436479499916311100277747983451184926"],["2812111113838490078632837966548929499209386496223109061173403123414891141600","11008417513147692614514095911375395961265581006432793413954337337605634224966"],["9909650487724138060891914764118013578369976884949370656993944248854862804750","27243198796994248562028182011407280875848746073803493907934486159921131968800"],["11960695762416809521994353628425377741302930685087930251506919510700603667866","11181104456845608961278200986827358417226511105723064751123191602770487783662"],["3573868576019007552089199486249778521897388283045697074391100830960446370946","17804736117144255259930503488303812511506679863304359748802790949115008597693"],["16976186777254680942150236783159520170889043888242237288493948086926359772371","14443958375149515761199660291358197988844112064638317837239017076371977471379"],["13980883875527881004443997522695971157376918818351899468843920929699968652163","17005136241446379252050216320119773156530145748471936452328040330084076177816"],["21385573121677758654343415405014424076894912308380541963048873559213266650670","27677162589377614000077047224159857849664365140963910865427286921324082510934"],["22531420002970777746229215923342529069290187330004316351124808743574216301471","2121465475289863513624127627258072477751659879623621475675542945085889940015"],["4503110630648897169843424812427712786656446026144900190915268461821135873411","5268502022974702012088649996628191627890536313866655751056095382752109988627"],["19453987843849222984913342707947658236508787319250049744913208505447781373380","2884832926854990479003762339868970729521700498456078559166256845803098711619"],["9049107813611650693038944316228285992464985274304204159925864992421047902184","16952745298802236038546439041190453033257702206215747991356879477293634304964"],["5158428396719530909209660193169150162210577850644184572392558834185180322161","25148263626416138355963946368112884319979323258641278320164477294582595995538"],["22360586378684233023278198657659319917566077761250366938570678570510608023210","25261542752379002968968414832914503053589081436212740352288423953135660772451"],["7580449676831305852231396930313513849671028584044746508797266659710929307455","11888459039785312980326198698488308275913896421646842911888444154466271179859"],["122049845978461999772381895589763371337426671158893371061722256247072262828","21780355394577141831766278408423090648515226484598067446293780119048545754319"],["13828880293774581556108166934124775477339588020715614971848030155627524411336","16953932244623776109692492286304215674599618012835848215635791375028804010701"],["18974970121577549220195833635350793438235943498583201169819827942719884587872","17343275465914514788666433165166457397411736433492317698975028212919091893001"],["25542804877855406154736860709749091609447078470418148679031995455354668713948","7287682904994342433358629967472937213248221858991233537297920063641948376437"],["14372777902491575553584791876245873061342446091158391493119818645417238019888","10744625379598817738985135177693379756005428049560063065542668974488343110222"],["19447841396533821404169186197442698655836343348507403584141300829246123473719","7136815506279105236157783838974428072377525906027337218513708126219722580579"],["19990109468834077476304220254604845268457041949528537551117355851004125562745","27796159981582870486435986803158370088144670978550663114378148143995153037425"],["12218339218797083907093283636455511924225882130520892395796919889773666825241","15509359246971392816712661038183382185631695067557408704320625880314908259408"],["16987761296506571085862658124205018927593624393348075959648593113489775855984","21075622800111524707063546038172942449601163821877626997289250170062959270939"],["5139115513076357531819247258238438064845077753175415596406921287428615286263","10207947275160876259897486857472976609327568874509926619643231823730802079079"],["11370851008513021166616038104098195143830199431816391267772650233375685522020","20494510957003143724935741634302442111535788947265975477952561907215100677430"],["17421435919704374101275485525561715596422634536892362676820168057697984502999","5729879526358474629454355288558144469206234737408804378513599405970325894675"],["16858928491635138638958793293336644927877442372135252512783837490978430792300","28187664899878723423027382075500228910170790917001427902492773600365436572749"],["26310727804797079003992526834222945555070137279614119355211699908126078172896","28546892359159081932765589002781903474886385472526250832328696558836758032536"],["9027291219557430679996617751563284150816957427177505381782579379971314412270","22833517439368810930902877685999190651099813106831103468976498983936437988333"],["6135250980222867916929817451711322227202249258223791410275683542496441173243","2513024884942490933814418179987243543903984601946522424082605004318156082213"],["25708762388636419128768087134413932593749835462710879485326161433883502284987","15501181967511018137746525164841679155862397456249588738076040746735948363200"],["10526160708368802375880349655313626914392984888797661881938358877182197726763","21158963022232934586072299079926687130275333410742687001099148919642240337435"],["2726594123102141282657853806592825673203561061931218860346749930696466990640","23265546271662936570030384651621258949540671840272839396916183640988861090352"],["20427350448556558252313738871258464877754451509268928465664794771577970144610","26539687792472133084148247505494571318265528659392136430494516849829905033712"],["15219897804817412709171893625062466034267843459942132272827982491049297450273","10327954994255745324465605555106206692455983311715535698167555884226600162469"],["2954232736732122596172038635656959280644535637587053320989206914209796516034","6360971783782447485176677368251516173851688362561764201051537316284052173238"],["2489564848195721126717799640281170941142118565715260227294918688547870965670","5075625084264481079424748714378122017617764014294278829511764050854480351414"],["15933544382349982900507003285749401043029379399310616185467772522381759150631","6234710544971205221516085107600513037664850457254029378685387844871692282605"],["20121668644630348635325637116194844059531200241181142792893577287246509434094","21727556039178634489175328226151997154852850853976340324317526065133884533669"],["24914279120327739522718651143411948068553388739338141538628974642480263145978","19556294758155663902452332984840213520118150893065080072989432132618528083047"],["9744765954679984076543916035566792604155018455478629042373260883885153227986","6962293435166787095656519056004512758143989930958494612534970357087041032850"],["10150823417116340935212985445416611275768251632351039045571568456552822889801","2332281511795496973569837248455832053970627985245748190012338012077266920271"],["21880896720349686179713227162095302574052866942657774440363662780845956548936","23160766336133131421007028218361916007489914413771823076293735472696538002653"],["13137925278431549832323719607210398468764907465805063343136699413356091908428","6871037736992661997397503684723059841937338645087236605396166131965009446997"],["25702570732680963464694789417857979218426180414049645682830155166835199043209","559185647055052455257783954292555946855632029818175556193853059809887312048"],["24897883901363651668227465123153808050870976488346853646409053153701003845358","18213943989528068111340348395126217439815242020412586133021409837526590980359"],["18585840784608738801317304849788830054893146106794924983528543698903433822905","17405345544839798679494821799139372633163188579249394664266432385956380515446"],["11305466331050501737856571199905588058364218321872332733561767582717544705508","3808995301016172572693139991093966701215664780650263810888863509320065493754"],["17831936607688781754937839030378503926487959890760098935866744031569250025870","23238459841483510100471574075509032631308909171537348012612977635779268826072"],["8996153164864754174028868925369435440705585993830781132083271270591140844143","9497125157111403109567686870874797599142682898127051912085360045416613889979"],["3409006042420655710163253600820375532683416156812255480573972265087189683848","25212488710642002421305256494654747085917876708820685903056668069994145601550"],["1223176479577755520276914191006122853861945359845417646671996347467291001405","5361014720805081483220775746113944720872541588136505084265533362743935952136"],["10493675058946689680659476202735921215459476428951594136892571590766176161409","23027097808710661272989972866895102250910188613031401957251210004613889149050"],["4966400667293027218941080867571437372219483195473000481929863926494595693810","21727536332573414083079449416050511739756693635960886770996138487256687390684"],["8770230262504160533234803746126202867481682130931095081218481178959901765088","2129554437665138189410465441771419257915404559972081004054632714911920326292"],["3740003954675087237966994942841424571539400836886252913072552167862993063774","25731654473267188397984813736304395607341307843665768665023254908744427189955"],["27737052353831085317868906427739751921009231617884880940013266128374988025705","3268710824602558129057356923553274682118460083636392170171201771804850618766"],["24043718978674602012367850767421056793611299897677780852100038679309900474404","1315379856950988961435876025420170730762932852748704007769171184487906000694"],["9247429997413137140955714485549553624140616781014471056194305165014931937864","4567551516793462837462142909064152976302319577945507752478486864724054960773"],["16508123748289058673310888554738409876977895615042714791207311360339014104233","4506883944291713235817371727167830028394510639558362625242015911166896560704"],["27288454137542337284153815928830699537540362599517808581536755765409259809706","6335555951240400777372356643933187142358515007530829174458330927798682319434"],["15399924506441956655454385664290940456138678087872411562373405528568588602045","258636730837740812777480442794911205162168352427054772587167986059571932786"],["22255159600465594980537134716310671292381270947794020390998569396267002612404","10108425995027882934235789066127367893618102602362390996840945301434508402515"],["17329284752913211742929428406796075217397487297967205882332554277800685596813","13123364277522915162931247659849055024006728053347155291787544577733650284594"],["26106798292315860817703560886836313041587299348388836991143173418986118892778","6882051042903418166710273019719614183320817814910581303484816329551221663606"],["18060750540902743781125982871389085126654933916084571873427995195059529616034","5190072896611680248474681458325033391238095861970479256683654893800479708844"],["12300344844787460695347972954838130568975269562220286361094302424428230510600","9570975363434818415873374971350253540718756789329110492114891464993121435021"],["8320769881699633952328104735475787928894039558397643056855618509251125984487","15232552781502456735635225846557110947985749597520423574192253675301468693000"],["28023872013453273998825614674093198892969626277144583550040169519852514688109","9858270457503798926103348268372870634314474915912083832824659740865693001983"],["2127079279494378086982202550277102710029262325558313739995913743490248328838","18967838738754024731808102917354154990607265234308409056430305497101604224731"],["23004337880669990042833473086514242656733118667427041866005573449864291944133","18499670371785685548505016586177126093572592950277934814724800743966928773092"],["11551128048545051699077165446553665236673548415828306291295995994843479272607","11219006660367728432900366029775124811803545852670255694725393068442802700195"],["16940310788658765848282662240120632813093846127345918565125590756162314058876","16096994338378214932481153611206826862798870710099499097263988646136352056000"],["22857697999153189228110970656337822622866061073885498166844138296113921706348","1762684272773062217466160245822554674181095985713883029601171341773223646126"],["10610279675799151874327532150166322634568623544295576387571161092508086481584","20903710411864941634806443013210309609300239569016643346542821210332407785694"],["22567062044251834189971880660061871915363681972440666471946046844718095117101","15446134048700016084827001221448640552519046193647042080275990603643704737830"],["7725741886376126715112235386746491046268993457116881065641014587004826586414","2560486812435030414491525764034804404319888388034121302420563571582459997247"],["6829057323381511589254533855625728055316682989961731840169446643686901135406","2009136875538659083115033701733578042779139988308768495440004657410710738706"],["20232951094563071325741483378529884239794980353338392929465759396221654164814","6796198268187206049501613400969431812305613467559538109749137840067108322414"],["15697337127550895622421704884914523119068984171809231341226623305788144374433","17436118914747217276583939821302488370267148481065241013925364191132264513159"],["16554182957911138590780945079081794327830536106567123971489463844060671406794","26739268774843155712396809824242965679461646471789795664115865083723077518850"],["6915137633544243906086566458188716176659852539577168679924216194155511039350","16406301176324596754203017571084075528457804354576610641303742048292047947085"],["15488009102986438198441873643735713623952672112677227948074187281095275909782","2639334679900454883754276437900797935867302826806258516057577935673702537024"],["7273305483630926914481771382812171069664779250186197188301672658297369900600","20965274176566137983655847779528055151592888006947066117567125850762435192858"],["9437880954486412082845531896508320021889096299042866430308554129467887635929","21670780001622358855947156401338070674009130040331737045664712948564724516935"],["19010475637674617552770224331964722175411015679196480041552706096327667358470","5170968956070489652128718653506706664909229773504488356407368192771344123265"],["23073834366726063324840696247470656378744508340651474230487310167184653807927","6637491808996290971823412872981235425726094758918454339701589647752620747126"],["25651347268027760326932733590356308089490653589084184826678035585995126682145","19387841369937657773480578762311964385384471776887622597201618786097199803867"],["20677928931693702107043759262945878777815024262964716582578555055306502174950","11179019022739657343216412785262127242479275637679338149481976687025022720521"],["7687256932174700979802714051347488424524039045389825945452339105189860373606","10434713548477283296163512422019883615965682981881932270643428386659860009192"],["11296212586163306907188859353271074744611362938244845271306303067893058664726","21631094808688837835359662196596289006314344938355828765478424351519855207316"],["27260662838070052896702173154336168779055961762943595597457506485975447664719","13853825683922561814785937418611546998975891235986991052838122161877995781825"],["18333061129587412343941742993809895560320514641374748607453157757222057906536","22579484174367176311116982573022942719000272678681902889693063836102602464431"],["5901807719138873888802982882169945528065093840887790671201181376015162585102","6233249814513297554309058904899258153729375239408059489318843388192565674397"],["21322751022098863170757364073493506856798420819897879230577407048389956932072","25513652002014640093350319495124605985900167620608606010275629936510846671494"],["21260167199302072861159059870420073292745468893095296560752970726216968560659","2181514896192471546181208963708148492358327183588152386974501857340650561516"],["17811597428999784469407861590796920489295488612680007115881325833164086153033","6314343314533278799424192231801261715105526521344866280593202875671761920345"],["8911451052792120304091451115933092785104813701035529134686166664532662381352","20782986717391216411651031727294434919751744660759803124412907393269813394137"],["24568547754050001010901506875631619184785491993459502334700121581246094284165","25185395516119532750569345180664067130833232048798184333496560729123298828951"],["19974763268318504097018512900477111680626606105364829791220660562275346587502","12560540817834579520961671092795384538433828296040592234439113594886483587835"],["2205842571467275843633401316054094822547510642546652337235196584470841773472","24679602775916559220535703265886738545900308203983546112481301755548104683661"],["10874059074820442304568757628388725543042424035172537381656636258407829096430","15854823882278257424203896934520373210418663591644617120715052079849431251498"],["2126188481444210893022763440376172678568735018962451886934904023082243466200","18834021385140920725448042339115387370743742454041849042143105922700253347234"],["8725142730638828533390426398598290392144599027773864576796907511666777658375","3870985214149480195428402589254714472554852321604483619815994563792333837492"],["24291183516916186716565234925343732639136573409791466213216776941196188860390","9147018857806082138146870280083729712762466921984688138036910672650060861200"],["14796248424592939691774864162502514220224430586617448747865038644539052749574","1118740855243179492559602851224228333805934086891578199813640877435361798493"],["403066204034867472484601349406002541461985484439055950736257701798246708296","16394621606515548004072482104856196798840659674830689123909634547722437580384"],["19740078498524136858037766991970709590909990922200038565015245401721648469921","10548393734583612502561209053287693584233371040227818078436344754870335171755"],["25650165710140596180529096163900847550191194409140740074512325099525730550725","10620491734905834697928214679078374628213775797346475882321790070759832611739"],["14227902942250383327048610164723077039094213367575849901557163992862387998607","25984377440923863229003297301341180992164935837936701847502222823375551199647"],["18870259040408858608049567372470037942957150279283310058845115680553188789589","28518107664842667806586509577906756702657001368066686889533907104983352625557"],["16800273153311751329454179311467936625439371542197052145365894366254604699306","14354877420807532485463949874646976549854384284212156747479355595855810641608"],["24389663267900220157118868166624697836490870607972426391404133247055372841778","2040844166824520470257923181035151700921504104546871975328739929788263912248"],["11109292562711399205005929931530047011692390410717223467130122036547775474787","22731675303809195445056440898499432436518925630822859371272985187941575965813"],["19254490082875003105089518678150464871995415960679180115502759136172445174128","12281602284199041894191349366486015373580217205729515498436418343674067583515"],["18191095048444514976117667056808476724687967298450512677784579177843646514708","24380666879063409111821369711042452784502737940079190331536877370872120704275"],["22875943017413229651953533021874615174458031662342420197125816191558620822679","6920069573599531537975659223077905453303194494258217305204306009482407742964"],["12607924918676043006289553573733959202457513288559168585065960440569328577649","18495337958399037014766236524982802532299296673459238184266015729972656691010"],["13543143621415884577526485698029224071287830838837923841266196717053125476043","20902606932163343531157621220692241811908826072657461097439632851116676286940"],["25422860951453694506280992660108526778714451715188755284105006985195988881837","22911740192429697406406257326124565445053135869852178845206549479313631214549"],["25023705906160985840142703729083705506099860521601217670357204984982789416076","11498359207145109654532530425917811370826169853132372983950500178119227848349"],["997342500763788210725263596523268921881962838782137631042020404534677460818","24720428658733171096422264740685855640146209259629622565178062818094970323928"],["8995914384938996047642230390420711732392991399863301534591833102722241930989","4013124953694477950316945142271643941979000490660691382863651009916565746231"],["21845585346933252948149166098134533916841623589943188260669100377662810309826","8629943093732260589989049654745819208733031454902898372158248690877441619683"],["9741673876892796548521236071319887120013403326909865814415791604894789782673","19379228230464563711343600779030543854062760583510879242085103657791803233286"],["16163321320173784725167395016102816045845110329229303352209982479344253395875","26969453690571129355523326267460503204092604168469023369520512739137370926397"],["3705796750709069562710855048748029390059730530737676266265902366158013857338","28275543305446187826900388117490906613534667419921878088793657721508702429138"],["19739521244769210481183721677187025903076150288282189827638951205042845066228","19770559323605681857364424695311771005076115347178004024683226836453750698205"],["18335041852686432281522930299884321097857250612537321695880687226701725317175","307808722159133674481168608506034038615938629821242513378297742116162183103"],["27316086584660772921293815710330826183453091490217451794678077835631807301730","27555200989816710209186040639536243032600357091004041646365363266365166407970"],["16374036924965623339126555805765253898485378661104537531478786303540420504138","6367620254469813974219480858829158664019692643755543459358554099447134308919"],["23814045772129640422963434473456773850161100992238757565375863022462825685660","14708368355521971010736948358592359289572966022961702458306826636727256809663"],["22712341758164226701387692484323369321228695244569646746441674163190119720402","9714177699087921760688260881920237572800393225286701446066760876691849854959"],["20045834384265541630415392212622994466762629856629731215818148715357867899059","27166661981028701532885887574271977719047070691126193717471923713417622642702"],["21697607985598444447858296578271051764712607310404637774758874111108768411023","26818902934265851639396497134032424234348975934120224462494057432415541254568"],["7328719334474888095219293465637686468366883406822686062055767352350522266497","12367830645914028757643455366273562148591695081660530665105635348824840028497"],["4597848219739750328799640736342103863241790814392311704590564212361353807585","6459087018892702169312311639681100188105147136862415991386954149095899686190"],["21063664165892298807990681025465502797416195844095088302663640674060597124950","2576863137434281306450305735086343209185277287194971399403251985196302067991"],["4419980201960912165799948979566548883055733317600805695788339072730982869554","18770677840968018138594187241956862584743968948820318152113196380347478703509"],["11510822095750713779887643972630386437337572801341384032992570363608908323025","3448175564246316430964932058338347009863006260523715615130762050863451042509"],["370484071931384419400437433831444559992508269194546832951219809407706287796","20558072784249147659698216870057724646291350491673342323521573901637340376155"],["24530858966893012720031221954336331183096383849682087168947583598083217268445","19615870035206148933062209396416351389387958966393246779434855133207074513537"],["23094941812168749831076334857637317643398731075622491166684093535727826095535","11657051972282578312478250875994253497778731755953202630388568655181486869933"],["597500450505822982553523701517042087374308892603423097940417084257599022630","24218624491736312457106502878275103914455324629921329532775271823787424505114"],["18708970719295272613581116039842664516620455894542224058057463964368112765291","16514446302901744557278751077931247028665717883462618181694794845850293064940"],["26991776419489148450659185668001238690292587003443305571479388930613399610618","15912878089231116362262136172496210622620060877517531652417955626926913025245"],["5723889523079316035318149391091033529857639928254208072560737919070647577945","20733551689061071589752116115034034298900868130049810351770895816996941571403"],["1666655798090626446410544642308792628985853081300546328979979272182405438620","5576347344475749806055351552933529561118188664284925886788261272223185399945"],["18328373258423604097170690418075636311277646116928195957024052512197564600530","25849390096691850546393624643436593129507722475376261331715602097250600520003"],["9678480382924240360839989076945444569558354629567972748007605623809973116723","12986335665744528810281618347715721885354153666944445573600432439299327286512"],["5315016165188456718396542423057545796276754486569059480726309449779430833104","21727191641602306384411519387816932275566235004979742542226906458413917513423"],["50605045064283240624713585688118305374867301416814931921211394379776997728","15883489624912819472018917298833431525199700869509380917685951856864134838518"],["15039596688565843847675077490016439506454585199995140162139400518571669709129","11023730533825320288548857243079060915078734292420930718864201146324462417757"],["17405538319853813669488591313343946909035040305472522445395299040916582609771","8551703319244665520127540668868188694791405463428067619449106494767356869870"],["26666058935728016971046642898242163045900403092600892759290824625776663790663","939178599162811832121127987107964864827694617201812924762415017160923279888"],["22954992748965573327296394639764375722858816133675305555958371504038420341795","13545241139454499361885232656411583837619959605483824977521713839871231601707"],["5751890898900770350876067413470174211464065598155094664905323751689910841897","20972798830789967581379621205141489781610340948138035687639438462916641977439"],["2195992736042910916392578340828227210741192818116444542928641985050187458486","17960327540664225286038128369257499942980225145274823233550718708235600904293"],["6475143856147871381944018404261718646297263044971945055639757955726691471758","20471438481836541944524044532730306383186606570025375043344044862811379068193"],["7998623486451406503335132439795566233098844182465644287160912819607810515727","22984719847285936339053012325169926951214810080924361367567942901111237281329"],["7934966537649346485197926107824908791166046878432021202538620837830834044840","25351156674739151824907278654429922620425001839418267146003440178948756386012"],["18910936276596649515254423478139327935852216438120812736698902216197684900302","22797938456437750195711340786101190185133359230660142623819259561018071518565"],["24239347547055133990797572167475457975162893677442243335957794330052727791055","22065152282856690001774375888000401600197527009272548116744436635519011543782"],["10048229619556017363251714071683635305409798066928240571673691205375558649315","12732751201680021276565292044811859640760799360621241340631616185348660234097"],["8851364294870427980065739943040245418063469693670509820967077883961756948965","16332237482454373274363848113259757621888802662648755781526997402327546631547"],["26075810843976222363091464580638419507941130678112615584007161552796611249109","4938302162465174152026484392674306836296070184247521528207041553736810889589"],["28906809630918022273836348612737847000753551653364519993340581610500753419446","25802473102066766912505570981963782640907906952744531179227904623256125767553"],["5144186031983534180581019148064888522325488618299750321706416477376597022247","1937843092969224788964813756835906504681749778882813799401547814447741715789"],["23996939097295625901148586642229301121362240823531349597473088795640089723977","28853171711959917097288353339666354495866335149682712351779374391710036293301"],["13880957736986730094006989452528094659433289628157635939460287510166571725780","26131792532979860519929080617823076215982478103538159314565159255347218492007"],["15346177099624247781494961669446841813635691746486861367539521325471377789522","27275983478408288686654086749780297737067795389110724874991641036607932693279"],["13051125463389395689583427733789794308340797843877918472835300366743623094398","4263991228671716506207390646665105156521013323451083654182240479596084060618"],["1076096457613638237337407610311745706709285342633225922188931094428429460667","8038016215350573580411788354629145380908584434585712280299167275374450348283"],["5998752619011136616687210647314050360872338949981318725911809642343878125579","8656436052691800556173458566454127669611149327021796551251907085429511418199"],["11442999408752339059382003041054321297136699678629647783906137493448740554943","16402532722472012971897598586086054103367796545481365336748395058377400194204"],["10994241172791959415021772905073663053541883884586211499656556832518361496231","2594108348176584639452119283139295361862579536122689893470325134013630259320"],["1845193789572375443737932692427382450505402753932631887643721905880962167973","10537226184180243779261810149655545293971239446534393891839934414827141840442"],["25278780642909284435520445752091009548626095382631712047307638577418712635314","19897059366610502061273527737001867410021063362655008985228829978095954788837"],["1404587461449925022824578259273960571179960836334373163397676657672058935639","1702479220516718516711885479855484856704143123995844931139372897475573320713"],["22852240380173222785168014092428904585829863990396442276836566333572599394230","6583155074010780994197119856326816322287110477165060128270624239543160173069"],["1123300312741945077870506156840792947337977287535092854941452984476599843107","10789615769191558506053401838937303542157350902600027475332542876680767023229"],["13550943939706822261588856867793190312954141276101143410512642901005583989413","5717709077839770842952794783783909294966655757505619270302806965661026625572"],["2395441558463336539936242475373643568939718848274521944555296451582517707296","20624296451144215758628742071573715076952342587503310567392037356442056701875"],["12274237110716841617279057370300154119168506644343226818163755059737733296516","7977652298918296812555347175058105661995986347199324952953790133579685509525"],["3588808165625774952476779893450542895533101798206890202179417625395889055807","11019995254916599911666217179248979137841854370176425889370677276353954831799"],["1242012567227468197847654674160208603054191291728549123741527376751980491246","2534456867644164815079481414602968841053533428343340444771801222017253169573"],["25574749999029150600638377846820761708584031693124984078939617846642612956993","9592624701617727652195091205826599782015626619442632713229625356948024499979"],["4103734471980044513890028593037050691462254785627415845048849615050690029149","755126995749670341479314591167675577059767971467319218883173034565345854495"],["12294085243327738422247059568138013697710002868189260870126122518965492240588","20588537513546961864834158431759186507331073125514511109864047913745987702348"],["14102031159071154631413659154558943792955180026128968827119037280348125897025","14529743179214873129170779929556263315221874865045045548372680096653409927390"],["20535653371266416660728320372716849412318952024835145677210098001564086142105","13507846577341821380077148963750800889918473956264239609655997682779852587396"],["27368255607718523170979357395202876490165797058017545428036241348816960500878","11207137389450063909236040690115697917444379275789041151230142928765143947961"],["5898408693904150198638393679691007226413766037747446399780978879328778833266","1603695573153738902804869601257939947440928118663875157673997461513216050520"],["5306075700890459857080821664383047138647664565396360651841214425546363090572","18207735922428086991106807966185984176502299599192723468395778526231339235816"],["5850133871355370776316440083731368576363379475169427042134318150361932340527","12247314489133241561024190181707791229912881646910134276642957672544894807243"],["14501184138919383350115364531258860511956347980377665407149814424117658532380","18351645821021576487042756246013636207670292540852974590276095272756004901253"],["7399423537747527529452912348419078723589763269717229205318056250876578050337","23942698682207612682209154325250839349255859689563017114116634786363799454449"],["23980911622761960678039478218953890233201250955674725284681678032346963756160","10728217471025588293172272244607691832949236841781162996837976381674880292484"],["5655407349139186034700846367689504810064673791214135649330906461273904231992","5833535088406352469081605415390723115239161144468033659622917645460544080005"],["710758266522239824053271092433581428242469293656219268421423262528943582056","5597457264747982743565226380949380651628072637380537652855830965479171139747"],["9874365070583177047287245965150788091960171117368121360259600962106329574649","5782458635294169013371093939042552077301764191423811834459075979963370179463"],["15225138621562181680747186210122960363114926525749291536755646811135561039676","27833348707465969054258275220877312644199115985144131417222305116481335543677"],["8770657967763020104808903354855755487867889011416855948743327643045544296761","25879089020312872718491306397889655649467167111033295410613343316254950142700"],["20624033021521940338608579328523825499024825371264065459940880134747449894617","27820506057849831840428182113065808817225761107567355803269062200972956072406"],["20433799008487927946614529654901890270543866920801246428983547629800720252490","19268632060303467842615050703770997037535793702990985688334312173691901358626"],["19611752131977966525903739698252838124842066766844411830558865331965679170009","26847903199707651368877317335579148298692512469459631250964640548873523946559"],["7486170498433369352964129276869210306711654983759291182866181653146358233602","9873466798497888622726714591021941455662287594389164879314399375801902428198"],["9624420641185485493473565373864568565596487261524793826406231541499840599693","24197589013823463162541062702045919835708302821836537220810620332608207710257"],["23037339876296697106598930404227210055623045249143882482766633739712237179727","26535044012590531522183151203823831017054502134020827004161484838721395299440"],["16125381524831406375965872120427907673021280013050666293219878663102002751323","23427906102654740018912468784311657330428134998635340381918018672138732230678"],["2325592538053862014197550821604408521605541798704843092220597249529845574593","14999650114255710455608436516996044199734713434591315635014336221929680789301"],["2380735187383926778403405752825680130201428832124449794747657023781869157257","22316817581854879232086679957189962825762313393735434702203591027148787792408"],["19735045936109780231527277764578056046258692819923860359495077540196896899457","26882531773718135199103266180513852862744386969642722803472759708033733000941"],["14631013775122372438711445392135898666519691726739534754181982282201888203207","6955997681362780490170941439915885917348137712537578589368036957827491232040"],["25046306133375768755592977504426814601410734576291817462437254057755848719411","17368586617168412413031608863364174895510342648493799951629868999946387948707"],["19080245223615176254406199730611527928378137293598310440016149612855318604519","21818341751269873940657674955022221862832472347726054793595208714780660385630"],["508418099838696628729271258640624306767405354643546271094615137962294163420","10937720802945552439370030134217465523977954948626721034378605746941516579191"],["619228650832929156791043712074014494084959383182609508197155815834353962477","7030975027692951279694908155587487172334008461876418753594748727932814280432"],["15159650325634555368918868776388560001558317907407630142298633348982778421468","11633414563859404372866648765655278474054218646559061168752393993250415135550"],["23314856264402666483883483238501044127534387707741258728683085631725692009717","11446341370304827469486932801179646051270577943369491311754025353669065322264"],["5688781949206055975304854276071603374548113030788706140033760655594811418122","3857798210330202758980728420717800404608479646469898107149509413138768144716"],["11339852952634291862664891936908360557159146646746012804831443828990852512990","414728244422858651345923485582426808932047607059803047869428240640190724499"],["19195125770912462158969939635284580628036439571734574542689871841624645209330","28752232682629286464820203325907772213392833057787483496697723574290150983859"],["26474094716536542078510696898677275326543771045954873913864720455823030296029","18767209602144526261880944549800796112969425418136737596347595952204951579565"],["21726027916133080327242591934633804245920198276113731941708285268205972018584","13708074188413173081057976090317114379014823348291151600733920875610214188466"],["12654795525576712062117039079071678589163576216855078061497007232387307261565","17657843073547271363717962751057368861401104509100522190404637726652675305218"],["8223401937768975166178585994217097217024691054243278600045367247888327906416","24369828790973979429898069598060074123137309584868868087131253721527289934746"],["12646169578414805621579122309297077442408513993398738832787443816954862016459","20657611064833674311311495516882878185649194150204979410798874967078212862644"],["12791480781451730054621061247344260595194290975850016403765713307374679978430","13317731102032461771830778229341051444002426580509317620911938993538498812677"],["1585717911519301870380454625372504774003262458310058504876082737648059590593","912382365083016478229631298489348221666763679367641312901111120609750699543"],["20889941410848056254543662408533766522708336951744770195531339633497837653736","23284255101385823092085322761243754136930832626496891068565417477008077341003"],["6089869904689395115526051297947518006730870288874242926999016273459206859387","20391715147227634718666012227665626070937034270237724452918350746818043725087"],["23133096234327207413710820204222716847587803988133637607551306660455655417439","28045726820349998046463000244868216890824388947473249517899538959163291363637"],["2838301417851093925311914603558727074976698040384702444651622348647079748380","1695317417475966538918428834516235443540407046886378886603820986220693708413"],["4866424138085932632927161997722590280125833687859246720794006904485179224012","19464496306402148986821871302392622973736836557476442246989448257249094502839"],["17107194002220873622047819422977517588837492912406315838912842963763542724584","5730958507809587094233303968645844855333668719708883073179487328721628855347"],["14305107032716315135621953319424330096702585343616877499754808710185136322755","23071479557176819364989792008104242256228394842203574099723187568626578127063"],["26586769872393096194471548492324028313786963301769617121863133509044662172117","8790006643327387827739019482672733577131950791134019686231573468631786029744"],["17581812615580728377621720801227552809094305520963881544197361763282184146216","12160553766889604386161147904679891703978327592325771565929971740099348087238"],["26485715592756152830646913501118914336598963883320055828911906386482767165558","25348303914055713412696267028679955010169027870752218640163928157222333039097"],["18791967247560881065661703823366588283210059195302628263219284641172744912940","22031900358041683304806873601325459139959347454052880862924326846331471128650"],["15086925958774988148611962954560452447327728469919433815895380752600113610087","10976363301202867315496792305228712882291589311753106556977296186822095956514"],["10615725608953739850621156415665092304172911395922721070187666006608534331115","12619570826723837870774687317966380965924951776272264368874744555286546486651"],["9629434184278766459876495003861072179310537661046223578392194314370609830742","23788598744811152303164921164756867350558466475705205448687102831235646470065"],["10021901543171546474177215769298681462538776332682723291447958973751683034531","9924526966628614400908109186622869005546791347443610850119755470736880011216"],["10568749766429895417418791874482565697013107299923347336155906449836862587233","17248450507081658906151104744073180557534128016402659724755390970492687559237"],["5816220216736904699133701397334464013430514716496622683841429556844252536519","3743872755202694689078669890918122146751902162150190125087710428460681968730"],["22783761642185358043681726029153096583546248011088594186081280376513987879300","28900946154964460282504721383024465467705803944224831150224031202541576863306"],["9076939596135989789316863572424081241987409463408235828454335625497269390701","5016222922722578865666365514454877492018435756640896791327189904626042568925"],["15027184414619004279101963982772106699834986068603535088004235846271525571179","14583808902203349701684565750494177858164569473102321750334888953783175080034"],["11351672464536346099044936564661164232947599768111414939069479793074459300782","16644567921848324011525047410314378344361429582663363677626069372677158069606"],["28946101571911221307343018054966007453053500616177562758924281638945787521025","22165717877828475100301919301469998791003942563995958391229862211468309369371"],["21644513157930570124650930016695265179346670985344557192442504179422437515719","22948316754146048703640537143677335565931693266977391446455237617758383414560"],["11637702251669691147582133017039671122902149916219497841840863661807749744528","5492501175103255836414605597760619776907952134932029034871836436130498861669"],["18075914653739299847461031958443497051431183725104963766239098286262075079687","25436698774957523573083961460283233102928574127836202085914501636443585865136"],["14716251602017221242261277413895701288064385292368624120590353946819146173179","9958251910587685946965145089913824310889723650611116675136991536617819503647"],["16464278340733633513816677502312293786451563898731154347324252144962017383151","2175897755907838026773235191065050733804938333944456009324408087425096703720"],["7951799207143495716319821177998281300933620476570172955698448758350284725107","5129874878716457115585234160064089905074064186823575553922568453076606013203"],["11674472173295345965465847129323355133770698089023003403863503907390231233264","19232124963155775813942994098502379486133659677578280505913950173994643568590"],["25236197073726164260163264821659924578105234757469942238506870472679090768373","26509483463401422256804552950154844841217782409219774231419341704242057757097"],["26942815700777393332158277929942682871317617792952407334823300120852678006494","21511794999353833163192042926294623617220601624376036653045153589703180559127"],["236917782951657635507890071648058845782834007629202125250393786099682427387","11740880694447513714818798953156318751413149399340460601898600426813250386594"],["26193743054403761479480923799138027116338186631517713803689524866087381419048","3279930103189202761262162066307490737085607766821998732399320697221886284842"],["11603414194053222208076360625194049910034170518174171250193622704660915222196","3294788993880205542601676949511411155795349300093145912437483512433651738178"],["28535185304022483427517485379807077289625032239202128761768457574318864455545","17581237375556885558574332975587227968680239417264137602915619730841555243792"],["405944453727010979575086364791090616561313677872146098879994286322696007340","20761846656442735546837105947838892424872789441405100003744332590760470832680"],["2406085221894556784024487091809618464058741082159776545868106568367117114917","23502395986654795101240754800128557122397280526205682102450378605615226772052"],["8917483205694411526507318053677579095689358776315297460887539768469814881940","23728313109126487389539082519318453302886141805444377863309542506512696584554"],["23140017711745030265085663043225638333123226634519592890062374032101927823892","23736894208650048954870788850221048732121181302704452940483355358406410086552"],["20509686588579122854958380080809074236160875000016343307647470628728985362885","18444559713699753981147546641785802132775308635332100146015177684358234736089"],["9841358682026678816771386587875249445151077848293781104205938966565789253691","2104411161822690447265256161369437036404642331864181075615200846498745158474"],["2183132681400768949558264830801816542340986699814676974271333758550378108380","22040422025754361864795985081953061792989298245950974711085760946154370273734"],["11523236930623396721854717649950220766485953771482469658504146158998214558874","16473755045790644511235564904086811966733012750186539616842997213276831689756"],["26030369435039040331778957947252649076226923796307534327062642091047034483951","26448252448299239810822211657276921965995211655715665584468646312113746036410"],["9533471134324589798808040765620801829966389025422075558638814772449403901135","23271394742078275521487724325523514585892534302540053055687324142815063795758"],["11279393883368443715636086540733669573046846258791366950059827697777387540111","11411218245509200393150983916189945259889684426252789996633526990515548336526"],["26260793741917171210258970163574038814605836614620822863795253234273724527622","27063582214623088467795309869248055498246052183098475748463202737756196668322"],["16544080362118520484574887997530577417333665784623602131371930187052996915189","5906663036443589842546432104304137240590587448125131582462479919741464377162"],["1026047033525295467576365313278857884750203582229508000910180320226367819505","2114057014256144088476140343063025831577025763933846221540225508630117813481"],["9358330321358724680969701803451070816925042687830584553418589838344252474429","19939659721936601024923452594614639734469547156583532970504844959158406786532"],["16570726000003690302722722777536742112884213193559071617791139974363391516429","11871283646464437130496997358010480403167794100553785150747590944559881935773"],["21224116748541047610074625028185114405582781634849452694861692097357891084877","12928431066686191508526373266777107097943660452472884675487062347270491356619"],["22787989102819805711099209006038590410660582268215070656081053576744834229119","1999177421487696755316465973694228305018011995787203273337834020149129878134"],["16726921039636662064990142722809430063878674120217671280549546200784091533735","27199152663940023382516764765240961116857010915435351304568099923267685480123"],["14193855655209600894518028667777520932157104218447888844044750727530342828001","9312588046188779616948084307448891542729929208486022797101798468336191116162"],["12663860468777577318715349049396089612580318440452804566649858954486409205007","9625556538065422816147498087112973964117404197226957380064034397275738253690"],["3427413799032133198196638880657167185131657606856809819810929160848885234444","6095093429728989888571847780767337144569323950233572775627568035937219219342"],["6850055233790877527233572080081448154178229448742521130286933443693919804210","1274312502791620281596747664236537745062772871990680593458114124780409957405"],["24734339395183675658946151890688185629413370744689191989584682251051205485902","618942240195028481030130110030411343225419549468474556490597840466841229605"],["10426866346086447134922291477656861003145107386650537902733214113179912400151","16268723514486836526656756251974167565891923440014928446079133379182343009679"],["6287579480930767843193233813517031183657195982693795229454008310690252679004","25193937771128213697427900458012152502803537441535209229107971101239083163675"],["88290724747381747454809980460344571091095241901179182239910894164561126354","17794754570323249133841410111968539807975185204374495038693872665550544764974"],["8003473996006365318046307806387691477447993474262213607409477402439428693518","27390888358435660374149273348089011389851148734842546929015912640931085690849"],["17175605289248313752553790934467257536592822916750480339727414561683778900489","24445619231907409144569826030880410544796852055646855391035876840192324474244"],["23460583630108757211012019492147529069676557024699799371100968408673023142498","5324343535746103654226168357757928808975917006927307461473616879670574607684"],["7195780512640230363548131722786850177732597243161341338410839187366735496851","26657120312963812342978533965218683376143403324735115390082269166168812471554"],["1360768709815041701179496760745192111409870094564685419871927281453009657202","22451005970038992649045252035188701934053582467414033748432081432717220878765"],["10065406996478145594776805860695896346041768040866912911253061671827643824294","24388263235690430671959730330585231659888282125585400480290436856548910547487"],["20393770447226697234152416745165288201373091520964084125354483796954962199527","2625347161244839678221415414322942348201824559861184642217729329847685254728"],["28810817775338140915686234204382689406502549784259486309142274947792663167259","16272586697971368653817736140959206280097039759683523734667744009111167575091"],["4391174983114885212318339838564271984971345930024369987525423055922006565686","22203992457693754010901960785150933584069665398016446728102546116413169942341"],["12672801407926006854399565282262924094924787323897959805198542525515764603299","6497506676021710242214555697426068846293118958811759396922958045806114080430"],["23868237868800354919877035521178864050015675217320076665777191233335748359942","9886323859222710678891703281460565290916238136382409546433462707846250070630"],["15601981039303972159204261924314860807767037291032052426160462788738008525032","1096366038879067030206661570164980715719168618476977725332666189567337201070"],["23822912124116402716600390175725252897081133089275380617321963200703502129461","12271487565617575789292810134118144148996990330792699446231869002698091764037"],["25240904264834974499008128402541652167655833372631197354597074892124401138038","24168148507753404519022554170251458538517641789634661120321941830406536736493"],["8763051466091176276179961823327642265837917341720720420491313169521844267902","13459299458948710538897577236687574997498403850648810716561292786604275742242"],["8141062968866935697999628147363594030811530237600011445375720910165953903977","17039452275668634835786459036142377663028114866435972344610087021237889284366"],["26440494450951141066798292795405627095295829871881284190225584616385670739791","11106539150460310829769164461969767305331095574579588026910586949897259816506"],["5131133980915310371857213956795469431527910897938407036906654707305588767927","21935199978482238098840923421864060797853921579673330984709136063400241264476"],["5263568272459225099950078083267026508985700640220853494289685421828221382272","24338150241756021067446449819802777808953329310773667683560087465189991406101"],["85770746656394990410042064170776450265589405233819732719756490395416405886","27218796959898825159583406811641820631631623053313345964415786321402943557864"],["24396063289425162785164790767794317524747878612823591956687113897756160648607","7676870418620979538015477465025566989316557301679655107344140218700008928295"],["8858667007812483139909455886165669440160353386691643200539951659715385979441","6004103921106933542749596106951861356094057518128866851669312695818413354948"],["16693228258617362671326033524687471672257093828556254395376659897374000932941","22433528765687230112988742585385011012870820460999506029482301821759499894856"],["11374797148502253060935713010545544800039536443014545527837799513938261056604","16732483729816004535370783967523252715795063627331149433739422006437251844440"],["10122348636575564052937155108143870315938927075766874353774187243018836675895","14040272066656780838724480677534954272556718740416301016438384171319444307441"],["10236876645110898902795066396115484932489814574417166786856897903961255656653","6739131488244531234542085123311162607103212073840175086655874076727672325947"],["5156458630535175405825822458485313762819260187466549115599747464611441104802","20232012888366896666965054498147931201878549782025832624220699363964107858810"],["5995649070995640259983590794507519398164209500058301009538976786295141003722","2340012710574961040007905869927172971726557208243711900542111475638582101409"],["23702114917086618753332135789888997883063995812792933591160975882659801983700","270156436280105991054195110157240354580343030812245165569037628084562147041"],["14939486699130395818012802051525457332208794622987103799259592484915354376498","18321518190289605515636962488585362467653165504146995008600403014401924369277"],["14446581351821024457999849880853634919823690080125030837293184567368641284235","460207483565997592414117285932149432619973738112963971660179563086173539123"],["14238228769177305598158257590355513269299454448030097890147797149734045419063","15430662903744846271263204154146536060894756071313311862244128785236009811037"],["12434507494627948639135797717056031374973252211295368125395138744749467436359","22440909179103907242282404682239763544271952673596366511872565606693550999016"],["10539028999355956387731699573975599742253828511978818668278830076160399309341","15050484975207192140333653982862169182061390941945080985082194770301470760375"],["479289398864077434661436930866221583689472114537401378531994866660764345479","8886107508210699287377438978604960511026598265339528879962093596449655469256"],["8234378179039690049146875879063386096557823637415522639971403736363737693594","8804297856827101241403958921872155539363886475150046405316068695587119649878"],["7921791643287986101945532952722855646367684071739421081995284432867004207032","355773521838959744202141217529035898083317683970415441277166408976865787748"],["20062564046003841045302631870291019943618791712425290638810372418549088428666","16192221690404069674127105211351793199863062111330429027923973042429872829400"],["16756292762397852069448692625669470984846861565023476445047005850103035531502","16828519573913974713871963446220752353508185974039018536087222786799623525676"],["5179621121331593783458927174228293902981718280174241296035543379955998982183","9874674461035726736501699708048259533854945476907879985353880428380144990939"],["233917098703599920807057261575566191142466565437514931393518735224765023954","14282603323534690111114349358352239730661110937143856874796864522193400724410"],["20051243658271384227054167091670615509125338655896651068830548073936307983571","14799785170967281824080533699567078981677443119625469177500618350264791234804"],["14897133388559620352945583231497382760534037301125701064037314166857305308029","20742281075641070753009116670583579221309710901774755530866200853186177583787"],["2839533677101478545739489993984817275310524428664039958788714932810240018600","25676058539272280485442504447277927011013438150871157748751925704954620618153"],["5286846878210788802086005776987864615306474499112925535415656675756911490144","2064183354046064279060926890600227460212196836646788281174104192823321169822"],["1235713378220359680985732035636614755583003939816086267078697560389659743644","16235968718606825237347634439528568270209869904407999480097453623301621324239"],["3685914485138489085021280614254092901107869550956172962107730927341261289783","9120156410755925966559595558030456983376108316005376018060650440060174632810"],["25190626596064452078031035737824777197381099123284209082420527099538770482703","25166718472320312321750047389734893634607238396554278167050390628893243791191"],["1363041247482227991769145567253792827011363869351606934793657415682572857638","22408650800802181900799959018813406806815842995414244706972284270330884216391"],["24906820295476834593333208377596697382366187168512630550837236820946246523722","5618861828593166815103446025682358566855570506273702442917539802608667036366"],["13039218279881964539993892275304064972526542805541011810943720050677339851159","18069811335398573704282051721792017526656338081365948095160641942796327434236"],["12108510494613015853845516303118315287734133600776627456764200197088690198089","4188294026824786648727118396607938835936204545020192606467569960881886862457"],["8646236759602131797025351864960759464343796987713907964635243127939740594531","5594624762147590503241099382663333842751992284943025399385174837788923116840"],["8334495232763972599568911267395562597421630747762845714602503344633110491335","19894563252139401482458052129873035405934507398261462338142864863548389189997"],["7758826523324141631841106789418036945217216138432250560316131244617008167532","240708327172147344360729423026515257847847327607057624241877130920708429490"],["1273670709949207900528064229877130729569573733366511396338028090435331404385","18423519849026851548624814959485761425705968739109478990657597133324174834495"],["12107933774654509356318632656800076023040927291822173250219463082531485490955","7152568444809384058237815425864904176928075271595364158284877718156612302999"],["2149033638476354831418518251144575657188006660272978178610171793256593597516","15831513544691884116822232107216410134574917864443175056877906440600913690477"],["20272464561631313227817165542314533296261550691465176078078860904351754732781","20338473320346657505671598908544024807356649975496201793907655234340897524755"],["708672234085367683526479188400258530704894176731246571674505539455686273447","15749706330910829714492580264681811586475118635898536340103748600980330632276"],["17341136933739878150849224273548946621418934321597973806062564417106308726155","464704648815811524801019322075949980299443077103627131483965927567092065697"],["20363341560015696652929924246916204966744946518268768775210477008132811858125","28263675628768684968152002855249064180944416443593456194777569396736735508115"],["11109296688396475227938881849141659556340886923160681993467852214473861493965","10808794615591780741763681158210038960393115011301430502936808358898667604507"],["22301987865595571073491132248942503199593964774422081732202370279510308003698","4351501344758052813248486003841248755619234419758756219662836191428427141956"],["23324107688512002358759050304416712719558907311043870971549693192350226555203","1704003977339078651278114202856947463300458176354871348171688418666693991844"],["11694077190433612955198637843683123000925967641972322481452562802716163738021","17874006805455231431440682789328777365265053363163609708790577774417995385039"],["12506021963259351792192231712210905069279433142026840762974293088299311112650","2868817559562892495108543514763692445810901205503323920083776214559857240420"],["23987504591616787518642820833956756079788479758839318492410580121384414273051","27068535508741897711730259408490741053607276142258133390932102947008447287439"],["22482095785076153657111512994346198466066700487703228914751778571598655119439","18879839766595585287784328026867340864031713923802263170845889112735460667551"],["28293739725194717034483578303154195747410512769973193960644647219654232974762","4818784933681697128099147970460157585676478925484617844600484204162697389214"],["16828103492834855455930189406387361182596745157146934542283196998075371681918","22952860476611980679368158730382305556466490552006994669108235131463309578606"],["20634183058675225441056436097381053865292011090641493193923409309341362983003","26046606438461961363200251693195410421895348483052110283501742741828896757045"],["2034317313758352075169468911855920830575905795092956904604970703760368637874","24391712790648866339423504794289145246229035980589782533320950809323533577431"],["19292109693587402357148453381656936567599983956252990702352047866721788953988","1298110132854476011489284560412824301660092277705152476223507809010155872061"],["3641311672608615928210939412301585105506728505172250872903863686825424058663","28549785891622828466398125234933118345506892684651154148658656259460734379024"],["18815959526413104620131851819183974019670014585894564655143758909666777239941","16720342429139314064276928793817425826597206748759156689858726707770741739310"],["15807776186048672481804831150654274091598809200060350783690409092302481467977","4192669605525376303810968045893182170024930911191665373262874351780313911431"],["26495691049129372310891954871259461649365832174135961310951560480706699070636","7184602383637648017441096131373031212888630420120512364017172675863884875253"],["7019476101884630050064663379241531921988292453890958331961438775108179097428","28322629695904281488441773177238546449820232670730402681011770686173890461707"],["8782329425037866985479860913978698041723574401379702416739970887785204244804","27971828241243357509912640202492826040923862248558857211853374675586766514057"],["27685050772375245878056175153878302532595007009235661860102142082412896635923","28865785767872130716295682329349434394958195202277991629838697170757400566733"],["1347030192330803112915099157576420831841718659275477905084126595725985840234","12592235956247216180105914438265886009044676667453326586096356572343648422364"],["25089279441238015468224199400791961808802420575588066941099028769251413038344","25930183033931684940579988489207989793428829941021875620108287989102445734509"],["12686003970837316371437379822724033757842828160148437660996274519174599795515","6558293658457872398599667833382879981479808361203777237533960975413675236883"],["12250554316934032074842999529371459641437727726329747294853128100225180831937","15796106362759491556010902778061631823018499357305843037981279143639240654396"],["23986355126448826039361086350882530010736917886387329843759348375873480957838","18753468914895274772377484878396085979100442161499107608694052261710506517236"],["15129164272043098641270820168674084325572314264679092023508287550216563440635","15357742627915637988824801343172688887203418684783218669803669281793024344045"],["18077737107044041271455970032739058507358688513878633378081093315650566282826","1526863401327992877549165295592660205056932428285752783480684401039852101282"],["28340780318447591516266643627105286512143357721520551542541801815916564719174","1780475656006590289220020344553034515444023381866456939497271729962890157483"],["2297223840531996403442156087000406664177279416979416708403158534220205189565","21707247440726463182590287946226869037107911058553636398651154959729640047836"],["19386360729261650872224016944650806679535029366136466139662520276951658127159","6742968662419229221623765257401165899384481661227800724031798651567197626072"],["2371253735233910741733283469466133077710381765680976548506718241724774534686","14436150823205374212953668504947906812017326329197925126607588014945588588760"],["16319046587050384189148557868584182721298830462732482885981362372382490701982","6945110185214740804119607364793463677974889973331929542767397256277768865914"],["20238515772976992994269326481356003480371655650632589170620738447360585064363","17506319418827134180842295143210246265156881690444269746186367371064925866358"],["16959479477770356071309593429750141256250936104016214081696237900366766412188","16841266090358733376682009752139038062081402914991984974848603185715434047778"],["5243090663727120443229221157388959986033553879626569070975788556083826702475","28823779411565083985795498813303177752426581848658685878650045426623725848353"],["24760664169998297913566631984280453419183519296721225457154253235360316216822","3808101758397338154862699800141848695310913157078078267870435858711271475234"],["21979499147377484445828688193926311557021812480212238464074725049979144807910","18969796189938964977400211306931421418432855948939500356791354358629137582882"],["25365622404995702255588529075774654176541163782878609230807618389433796872313","4207146634863719127528844271020561680986115927681293025628323480507774573202"],["15692200783468822402147590205761745541377855284793306686577032349547193663688","24040055832751436047119119604977331298902745150928208468591786105245936581124"],["5587502010871386268161039431049447265633298261997930577839474359734028280636","12002103985808596087920535764895755260289935263677437099882225799407739918963"],["27690606438872283830566082853005623582000254971112627164507576253741690985490","14645419079116272714572563582036721323701987261728196498568028184366090541631"],["15747143462684872111868840273010553772675978270440381695462070972484061661224","26127721108132575022996364349665237476886086051397493307333911706116031885867"],["12034316544788782780386769987830620995199939590018097220792118111828204413137","9190071219334586739766200309072369448868382570321393189857263591517889532444"],["14520348162495225376741626909323974988895903282110473346695089187875781642409","15611254479370231915213343004489374522828142763488187741929057379258532323138"],["1616908755551532893126107603100165953041606902601784918218323546323496745602","2694277768500765794060539749151799010548525766599862594930529107933030974039"],["8874709987621531186210317840927455423000113949677893902509555565052192733715","25730517378912942117119027357939214951975006111265733700517494819301588519937"],["27558859842875163701713678354190273072032274760550857324643060570308655504712","2759592412333773796671215518825425535276837024882293596021981771158021233897"],["21315022448099040040397654899031301237922139203366624566148142166538252232990","24066094328793042275532928368678601943406847113394797372976361151693766430962"],["15641262417483729066298579510807813637693778129343032498637740596556209248866","15376216155549273947333148371815477552689192791008471634669083149244339006182"],["11198500226885821734750489149301797295880920309640237363638450025977415168568","9770869464938565239697586615715578158661812128391991873476037630261289229356"],["24473418029953377199028317201419008123483557678455912627429040282724152303137","23083602740832427420816351326078391135485685220907205754942543183212845215713"],["26461838704188005570240007716457848266066414487871913228185158357154644625953","9732820371021778425908437948877345704486759591174395885757488568480018001360"],["14274627663212345142256415581815539392937445267273141887953193565742138968780","23480666178538057533992834153457644277006605842359166536447249934748394917334"],["22294423008903717664385898560307628478224157224732215502617920710600547126881","9414532462933374814474301134865580553984912147232409323175947599676520956267"],["14378950615429131127081986426914787414148976663812858474369295460787288181311","10172903531198561316305389162046310510557121897672309969384020011821007226802"],["5536185945353024415588970108010842840015231534878392314177605147006888257164","12391412199237392175271006405970222731034818311447096814382301146114581185018"],["8358240304403804876252618452936852908389007902729967452645063672869202478755","161434084127052723384799580160428949751369249544113017195278610780343861919"],["4142761934599525950494135711234234418102155876097713056300130101447009901143","16909629310910074742188060136019088126767345003316364739220843959537273347710"],["25855266300634913920347512814992470385571810143996594201496122167847701899684","15421037928879788866810388803367690204055176037613094571994724710368330841510"],["14878392726986040229739659429292895376785523879595814895112603897701345041882","11314216851648317821705715472882819172474244133302153017426437237093888717221"],["4822082016329952159480233800144008508301275947350014193468202011430996351039","6764080249724893603644666686202422058509303925450140810996850855016837349279"],["16960387878607016682017799650455838143285228583279060982217999374538528974335","10902613074244049885881673420184182963951598914059409627840128670337541826568"],["12833279470995737571504258422097343614759999613247083960249196679237181918522","10247586112150944578166693226061038327291238789707949412763969874458268764501"],["13551865548566534242755504575704121898169224075265979901628747381618376058075","301111500231507854158938519141824230207236571886960078940792711829514698946"],["4981832274409427432858936878994889482480010718149470096699662668146206529279","17604856615338953157011739768329120028584010070723839320839057998582937130164"],["14344364642992486863036976492240978470557279451812433838240134122311092814845","19547180531730566594777821396422333898125474050887579493067585946353775425229"],["4437187139757834012904439140140346556968855360643172633319869031343806845276","13802366766398124973210547491188832781483153827347326980462837782291619837114"],["892068263241567933963509945125458327286800168431307739628922025691902972744","2997421519310583829034573364478934750827162260194515814724909824392215533688"],["14357674347568010463105798245734913353115313565168584040847312526694175953217","25183317190716348466629342266461990622918572021274650208999420180952043959250"],["22823446831337846298079505878049993693459385823737637722043976322445102779645","18908038752617668502888150199994980321208766845457334228841066009357313336601"],["11310004720652680230433342317377866911263006005342727334167157837347791645293","24210655132453506361799509188516314139477378738933846108513964385488441592454"],["5026028644741465024565991448239743459724654404163694827371118696211535674361","21704352122528164998693424189969912484611408075813873524327176592282268616887"],["10867325272910337270576593470798759217182146014947473293531712559984209307913","15571256533080839753430463590516869719411884559460244319803039891357406557120"],["23759577111307714568984062580298897381776775061085176495681023475883759748061","11970939780403986243498730526737087670955960990918950399160120819742284600680"],["15951062658474871174654202756518834661687001576883411637018845104176180935935","22853433090413294903950247537804677350277219263669754868667671506495563008457"],["25483484368150008156273185864245447110499785741440323774656136912107923751825","28065112397719662921077553884811347706268220819215961022001214196169805876177"],["20624611138244107480304761279777684224548991179700445687994499121354631563825","2274393770305730751033416092206167844761364813115330349709094749920597490773"],["8518358392601279474170901460993431461478401379521604065593345113209304130028","18241378939996748064910430040935858097497532409536000488524524462794150040290"],["22708764830999679193066051300377532477767297266762017047119281920838492591783","23208470682058491952898936611845948638927674813028262238838491986122623579318"],["10758155553216293750631108573837154875321621966590301340089663794081017371552","2718495980464651620978495973268707164263752598872256477273687761072422248821"],["14702058402393902143585061746277018203164030513768013789896980662697713262957","8507057576845273327635408544047690199167044497176840083516051042601170585323"],["4202642652203151898251099439697282422344184057481300999579636480715092004773","16355418347817243359076566322327793038863070448700214954838535494327399280014"],["1774782171572238132356194882165991030896921075528195755470387341353637549023","1583734879402787254818401966856408637001318860858485314558809409924148485426"],["17849165369014136669919901505693380095785246653993272631773363470254769594774","12951810288528559353242157513033788408022315032969790786987258667160450165597"],["6724801070354171708995811188718376692470918276376729329974480054137038710907","15170001832369779054211897833303319953413962988296658930749120019501352440862"],["10560367886425312757709714846064870391782837277928865924893260465648413816376","13181002618664144547888346116227718891509730908039613104630602275410650589124"],["4661093194423618745730829950266417652426891233422730859559329940757495898350","2880004013856661833667524243475921662564184912287205450578875686448322050898"],["22991466902048799750533907273204099919251428770298796084501621126647755625028","820222504676761673825827564406574311848190467480492414402705717590176101273"],["10821310867513705886249863952108838242628055126335673703577225825699768936140","27854309038675916211647003386488102456863724980772980324173966515070087634579"],["16397661738065548107263655007032469845962602371803034381772063437001941542473","13796211216526725058290970207982337678583157697354465463641046318542519510733"],["9225623887193995479124816676653344140755191505878181252789354442847891478121","15149487106568436579366065619124878112616781373732735168170568435021936080860"],["12282837103057718149993854999317289780969580999198021299556288887584261222555","13099830545517346653585223900774971412966068279117043608622086703078992128501"],["3518731770320563066842605110312403981993870168994520926014810463694546850743","11090341105096000474603731656554108013543684729497937934778490518254208880238"],["24460123202225228292855643258412917174317782867128371904341773760889814307449","26509502869413493451969739558613936418303960153977685096875596611695450417043"],["24107022173516769132499156835933203314721817376120556668585773145605886122132","28513640606628170802552096772136278397478271016904291885787969027745712657650"],["23562886906136182560319681263792557952555568385593583516974024739962043498021","9566320923105947766656232146645942155567975604001960969628989476754629584213"],["16922182653081428325152923105911603398903940305931596883839086161431461921189","7761101765861096449281746709815681393408219560499332612103887809361091626101"],["605575895618247643880263126767140616123951835467933254116961332095448360563","4446296851931110125098791916629020775308399509915730531475986608472234419682"],["23824761361271560934397352410353444134586907685828676743003429891469019987622","19264500009758855647688659465933839290421690019747986793186388367693669806385"],["5038478696280644794882349565024498188150266229028686104777122197987530092024","21191192791733280432248277176419083414319142283864637168430525865890795959279"],["27239896632922020001221333264057764784475434001647264476996651921306579424598","17654762578993849892072384495899808774867166385911550560710377760321098677756"],["5419646532454495640363168739022471607654144640642062746403765570366113942193","24017069661810180744781654141442837565016299807751950131179117286928305981774"],["8033353406141399554823066187192403266704057119183356246485468200999450066136","14259788013526033020098392065531432772371120228011122607223328483628474823932"],["4765478649794542424346604056998715689135053900041452401767585525405657289711","25397455476979413612682580085549938167902923092250570573090724619745085064605"],["24520339532174232029592806882686960038831619718914079939410149373195267366258","23912307468816137221078816837608734983515516819263184482426628500734914104985"],["5909000778588569851463693139906966289369148102400025593879241286569494979177","8955698297055954930409856032556570676813486272171723360170309993643620926607"],["17392907388736462400254897995101558807947541334254288435104417134532714611283","21874503968662965333447302326277235297338922478653090289951970851815833991782"],["6911862144937586547387316447700729976888074843106415527173058215904548636371","22414588297775369915423750555952247174346137822095788996326280375974671661649"],["19267245240433984079198024852154420621091263218678028652069952346923748607862","17176850901540233884413449203267330300202329633905004144233281843401065786540"],["2552362066061983024047882812198053327832503604903324009010418422278833194770","10518470640879652503853988290578917129581309084069504882413250857162593008688"],["2980547830901118073154633876951088422178916405990637020295556548382528313645","7128142557422692601496159548770443524794844572424120400921483637072846833381"],["17009622199109579563965443749368051894822271554531845413545754689148507248183","1234255335424491894202107049921937185070429738650738338899244080750478490982"],["26582793150355721269157694646725000426401104217216317357341495625703432871555","27075849392582358473757332163872726637158242298265029974164688729399565575452"],["18827169825930126605724321176179056719298412735212090081403061446020855716452","27934497628437815474788749864654353060133903917331778810868410300836996453591"],["15932908437692528536932385170383679051852503579830481576675685363905041396896","2779337803765552700800025263568485519383237427663349770721865904425555966120"],["15466337268211457725789784117476099146482892440292070453733390841612552466874","25798569049858469276710979948215452409159586192139495093085097959024907649490"],["15716693593712940285001522221522666511930495893311706819665967757246897406321","19406356971714233575446814163887067422295489265458112666835094570137089333506"],["2978196301116373312497658490541298675446973328964627668264799147697038462590","15427600785186694433233481215421252586672661618119236464961104270775411692316"],["22972612355706620647442386803126365633117628106382051678820057236102545971900","5818796574205282271183179837524215840527705948537786756500168344808945543627"],["4696145486923793526348812970153555230804400711420173071698698147031919791441","3826184338649221602025928216406619672930722665805554117123956034172222844749"],["10612495563957599283891095430311378207389367374348853856102887643382237605880","17976551662106724630137609342359817317408915944328346568475756711702346481892"],["20860769384457511130746325293006371337038982826101418267754972713496852502287","15799906810514647037076858532613388287512893929776605266994299835956613616961"],["24946431439592038757324091565710221766565281209864243958445276565278685710126","12176762534993841272438290968452966443072352710311961420362516329498155627321"],["563637048691553640931255646884722077980908422475953911145478493512878262796","27502200879488614967305444411521062154897602130892447014332781406029490650399"],["11451783399084568674876042020217762776370106294870078881437987425028486893717","1443157632297178918765993174131717688722680523743634645987282188646453940258"],["23997174274243116737520977878174308866670408220221934353171752117770192447601","9938268493383717371996896825691254990082142941005032280781792500911377378789"],["19947707019072749891060977125081267817680914203700700831996849287408944529661","21070263886857687051111942677940663898225850142620894851896723250313376461092"],["10054151630980841278125233335601430021302694845612664612164764903569679319000","18949837909187139160720237762238262598345817621294103590943997546228471987232"],["22110706741884507974155128556918164218981993870272556705379775243625075657134","10484114284783775660845254868801519407812417818389187847039680249901484153350"],["25592133807943052138566966403701224628077182005388219480170690502798755024202","2621137843708372548578185245276373955248394909865194741986968516042963882029"],["24109545298397957299840962990888666976198776253129803458605713292923565090238","27388103721978875676524994358261866401651758325385065017171148996198008121137"],["11252963179723180991827230262383173525512704115853928091587896545676409481073","13540519591659331410557200711112138181444011230360722031449465530869776103358"],["21047934593042858879351150483180917013443331902689407664272224644334373189334","8188889111004029311691886890127960301597250672543836141805795494744766432052"],["28045896784607909237084532955382690220916170912176997437356252378165145876484","26129252127129005400456274072149285572494993201275006336469009551568355149575"],["18845436433788021848645854090664084919308806561725055877659641778561388043255","23330533024476671880712506123647066927137486265700062140614573438225195035067"],["26988356721239498844543454226899118412218764274407754244140202082126691745291","10384658610097691515416366980095360504819524561506768961669894855051566906776"],["19741374047096537618233809152778738815972585049327774008032642974833562515018","17851008896833144634199427109307896116738620710725354478261929464387759956569"],["2382217254115996313412160546469362868045549187734610377235322707912555489324","4902590892515693955710526689076603194445806137680905641742857843388553789134"],["26832409753495816957865333394607344603860721376275992445530476532511857183203","22362955169818432392589601223981016766195016107576525940582859336513114929294"],["5071793424703183446932550020624036320407916691089323798291527229245853869682","16791978976294782786473488166975049017514220109170407962924206450446269279179"],["23323336678413130132838816167153357559205378740670062166404800878741841268400","9193878487219227214521489814731495755562193793812106868858974672253163137371"],["5045431154563243233329608971044487402528690215764785055340852336070345383634","14094401180693660824351075590187330292644618388776599268858955833145728133886"],["23936005936024763178698231825685376533399625641608792256682585430738417643873","25006014908155989997822414283033298762946122490507866518797798255097742234481"],["225018370828248077309679419574593582192923423696426737638903532820071499475","17836844325196362730541891473920032623974904797177801055264847008734407012023"],["22991621281333746455916109222935212138668667558663925273705487021662929578648","1182236952646954038771711827382285904901818556100310267191062990578408747557"],["20289380250754499692625426286820061556105000406704362964204287829719455023130","12627197395609236802330021224901972481627809257509713876600706242929287839219"],["9529230832297848733888092762003559271086940815549263773112838214121636457392","4534534366701633943023338169596592207364071924327100175941696174606383791811"],["10271451405997451948933419908237962048378516810831956313025923548374420685984","2657745755498921589849045958221266525045337885107737112278491771431633207457"],["21638664735285428578804862749825933556001440573679826348212867707560809943693","19026931411753763398769065096679363665923132226045237778027841134610793575671"],["22928745301695236238944494660728264997881242032058876331432709199848788924576","27161171385482059372715647632369226293168215163558325300118561567871252923866"],["13284526460865202068494392867036032563672712307687904714605524508511069019564","13616742012421965842101459275268697075544975563190179361971866318897569439710"],["21370305709163457932510822281490805763153306643039598869207029778555554269932","28105846935225467472386331085185906408260207075039366460516702517375805609114"],["24645919040681091053103219781919718740641652140617290162833919765871945960209","22366127484831440576920207541237549126011841384884738136158676811739333399561"],["12686949475085695425652761144609045396691784368514795685950056470364623246839","1174905217988002628237388664061804311990850472140852803503727666676588890558"],["5067985405145125404159118599733407224851080310602904520892188579023868199461","23320005095905868320401494095476813394647436072104027820756187853469400193659"],["16213155693477332301282391388672929398291310787238519497582507848290515532843","4436787403855810807064528888666676078108246101366567350153109726121392938882"],["4959100759355729762123693500774921671972078293045027961252625021545857128152","24201826152576083312266844691539429821295673368972293783039091901891060444888"],["12195369655432244080338798097249661740056395454029068441998722016173102235056","28301067836171551875662130495797700859378757392012164119750301300736347396638"],["16051515636637282285066093624277625471586195306721034127612929907062650243119","7664579613970484487930210561288060850040224435983987962051805944653852171774"],["115504347847571964316426722279311991735328448915894594908039920481111179438","13843263041009159130632956924679948914356957796456448091096491778273447080210"],["15464655527349842209555154864081976040444334861699855668783798257997685942783","778661918167012608367918772471271845170004715995425814116011731053755032976"],["26505883590950186192565788466014963739572663292522238974931406266000687379008","19841167614062944180298494497750992600022752311610603103871530335716028301747"],["517691349262512760718194893779192351525303274753111100279142604330773536760","28902851581141553198384872152537980257196590394713882987878304666771788139554"],["18383265453924554335954451193310076679361009894795671328041930226627594233854","11327002689393449434231854116576956347429595543912595454235003402995625611743"],["15311888682257783199490693980019502970948270491268418310904364921068228769112","24906599299535177867160239729911728344595567011119406810354713178947184822345"],["24776850489947433104999826280548069973458062524440898537736178894820306828749","12153010797286525244634291561160285749924934798271923135016252219522030140827"],["10261638690740027072575970272639534017957914630950713674268151409577026720675","230849024081298175566702493102744353907974451959457789428327218979574533107"],["27963298464309773942130368572416779365255934831554985685223024908873820136898","22964654727388828265261017836791020677777220617425728159976923513862126861099"],["22838669336189874452930511539294966162675365005797784305189232070991105783635","18944990260850137749452301278066873400910773829800705221509566641255479763593"],["10999548527005537958371641458849579355820218610343217078424800437168517332482","7796341692672761466226233520438878543397073414638408526455013534545376763361"],["8032933919575372390582899283874038958453187565051235748926698159964784888702","25122942824104147000032474834845216797025142476568955300382437453804961345701"],["20389053709728443319146362601464128204024041225836908541746708233695249077520","7179634251233339572525163748059056707357289509737593883030182820981873716614"],["20112606212192579074147097906764557917015181787158965569283963469221141902815","12163261325453593306946823817461958968166047057360777386289542098420141925980"],["25704773364503170110819096452858355945301803999082438591708626662606760901352","9422177945055751887271623867802685900524705998216178888100741728633044374262"],["23104948416805698808220677770234666685009057264850511745311772318904608939376","6802539408557829044050993580921804994332659562582472649076861099202741000519"],["8211643531378035004365435052609042432902521245194481693609171729693774396978","22461725063256043715488227494557835658544796137320763079491021126164187045243"],["13733983352313109683113120549004058650483721923390983110233200434117989100274","24648730323955950363077766198790889779072693845274874860190674664662711972534"],["13209278502921064554020048206364080113246454714708960073486019253275830653364","3326819347851292984164537661539616319528574250647442296841932105975273837111"],["4309713414895540114184405605792530683775933028701223580769699261774606215429","8022791521354029340017518350015867132568173181924263873253877529667160692503"],["18245247750317364773772370306818200789217266847560634461614871925339173344616","22575671717093868907288734261831525083887618263352403849178390875071073722771"],["21342070278058482901775267231215196919476002698037217873990469808472630497460","5047590912630163379837381388566472178154120047288768911342746297604710569077"],["20952349925224892100200769282378418783337271774668509015327130699998921707140","2598857919522875857762561781534089706394592862005595323099853220262831738046"],["2130363098341065168458585509776831420869453673061013190500357666660594779065","1674005729508810856271522073752027121942094388058759966416226463147837226002"],["9700766530465781414732426115212535750363807044881365140149251553168146535536","1052017285572848574585378021039642960172276443883768013931479401128227941553"],["9092185007719274850425318271118143345614651832282157872672779755489250338532","13994089978294133691064760820631104052045958762903170889199623238449787784641"],["5380320035010949907806327984186520062243875767571033604445328672755585096751","5188439219971576309782626792986379149615144545607750349140129113104758681614"],["9898657287302903138548275230123110342212706806991033082874934766528840452190","5110488634068836078711157061872146657718929851572316677685858182260592996832"],["10509182301438836712655435319862267648196440164875697153451325029123596581744","2739626502814547191092539492858825547090926622731001294445124541718107568230"],["24988149562914881763445084205588739490927354907431989321668115890934706327002","26835399079401048523247365739081310413074208487425195932982963041927774442290"],["24513248428078983900335296971002337387543971053559897542656399894140939323680","10469493855732721403268301667420432643159810354898725417248489549076121498879"],["24416181274480588843011253494041867529977132969721185305531043275149651644920","18718588063571861763429389867505076397738138682633641127024776609457255710103"],["21013494905032403009051532689862895943091430359617149884555497074562641080571","14736098481884335266774542246397207513320335011652981360235891542183964305891"],["4780453727627276377496068354826924653604196680043684664694831416919046912184","3265441650800344901495963490969826036387191004702278142317387224038707064791"],["9593619284556892906190786414753418865515189524403235840740400525427412308424","12776375108270717199543757418383492319760076664645773610732702790745913351181"],["19996439659527607495886252604481326803829999935610788096357674722880696159720","9456027610845088942884800627786303166412059351718032751932526868634374091627"],["4538809019120977576268587680560528156140913322101516105637065471764507341582","7911795122189659719461665655225898558662226535931822424967289652269352155366"],["1484429495735104732522507223881748446403883191521352676537051804011461263064","20068116170340883492653986310842305387804842547396342174316014685006380010264"],["1345541839965862549839490762143692452877058660905775710100345901579665078247","9167640888473791225945670763332289970134483664546381057923892637734451549389"],["10785621966920579205095772949279135823716903924452627064529393429860439970119","18211255541236537800165846489634669305799038186888982318783228282569350402568"],["7266092604948571319819760176849630000358247749624162394062879876843541245514","14977481211606694062895523698000663366870329912040975376635040730893571936033"],["1514807666614582194646756308009844457458443396076259279970454594155834495694","17534694903736044924018503449614154936245673838148622528862205726482623564636"],["5806967098113497383735018338103306912952036548398634576638361654369535740533","2019631800007279149135781460298139607184715025745785560967854644996597548088"],["3381402469575184358229816595942300869213817105201912978418859992007970020227","28468533073828097473867343799310243696782305426878163916619664506814438286283"],["3362101784055321176443579356689980567909683591847215144722721368249654530480","6462963586449120322577993820142388046843628808145614104960985967702840944953"],["3872629027899839270590249920368675655876860545808999016555894845384119349173","13808414773688091547001298084629255409493632825085602651426374986717700471439"],["12814316501503882482235896455882796813679144459230672478217731877766714641192","22730235999601468726823174677628443561476907021379878813361141216217261868372"],["16683069211565738124576873651012679886314286522956597595649811563754532936321","4474668369252315429949068275410992071831951509654493007891130608812903037353"],["957925597055250920369964601003272781922482523509826317168586402480642308368","21178490482666612974416966884664668401178298883460196347343051888211855304748"],["16773565440986860585703527304471381835830816032506276937266420200868214315353","23662847141961153347603019794645702271106373330349507982407263065484893541305"],["13060871645025426969658562639650688853079724240455777625556309759044257439470","21268510850959413029099857668659481201673634406317642612547767297970195057360"],["27558503600422332913540622694291576972092274701517302402339087436348611807666","17659599361696956103078659155557892990053248984338563622182801848209615449039"],["23718727132970491428044701734522038003454738670028233067243512003646788536173","14644111507784923168826749098664151454249746794170999501154159400387311662434"],["16909607024726212645689344504808948445859369779696363266839704982262137540732","17132380561158676554280913236130958104326426948501707494302427891649148702018"],["26014074745858332615132665414910844171868562691526645130311208480811579395605","11495364494515535709820388680196623508094539575091676017460248058261701350033"],["12883517721991778315058834658437736273766415327793596373552593892145237073399","20031155635663781834589639618557298976225824041744901495574583171451368974732"],["11155301538697488826743840122526031169465212038763910011889482040539379536611","6265892540320163009709669785201978540830329976237316293620638295088013789478"],["18231940688975956344104822949338842930548219064997284363231386257270748751713","2329443459148870165431725908475918808049936168429460261028337269897392450567"],["6556954374832461179140570801875768294730654663560535396990707829402405102164","16484983716719779472544984113386821218687162971477690728196592826687473582085"],["28490656968778316861254395965468714716555903254712235697032685792672144002134","23878729950475165216137965768775868067969357055063960509364827950327238083412"],["13504119568325886848202157522872528570933284762278081930637151483817121565528","1064701941824743805099404902013023209280370546648607612422121466425255836293"],["7317950579210713725004760562558034156818500215638511936384625678901788262149","10591648958847957240408161037270839512984432973175598952479268883554000338247"],["22784121119132936728466776468825541219723427144561591601518445917687366356497","21298377719870408214979128720924276197737857538234644803713215455363606462956"],["26516943690871804765798095665221914472680920252748872486850894829939109725718","6587757163861492160700323608129208336049845934602895066765842005211929858336"],["28143150659197056541563283909927948718514937688981225625473578529238745355946","17880879766953405977266430150207778742848525257166027213816595641596986614066"],["26826435848844497983418070975475827228413825626489049747584646457671757063953","23474946331386814113398307429355006811626128796603526419618722121476369857074"],["10904855019981396000440247520429643511655920528032648059274153376265927835640","6249282806688351209008732543112592940779190271005176254737862134092965015141"],["18639488186490240552584333461451785959697755916832222962495973198804540926959","2249439688516659916662301997917955966160800160080449160904175034490577601300"],["6086500264655243847985383539780859985271226903826851783147535997083382044808","8256092144426228790520468578537199546947626590263090281980877879187595705397"],["19447122139081266533049930578602713604704313008155963287313678004911944502717","23598896719429413551685815946637798174944411448514396226200219276904581519148"],["22242928068072663337621598627812368533021931210087266736551485254070155549016","2657816800762772767633840274317697891419693010656787338959647412082550071831"],["19694334830284103955105662751093578954774270013745709145060267984782652342738","2809514680674115235076838131710540665792747705507803548693297516228635563424"],["4494061854082423033692727403258520616801900536871369404715324403071730097822","16242370408945508905217629925589121058682584503311931629461660261416633214250"],["18112440889082633596849961946474432703841881800499103206548082274755143364358","8910845168923012630057460980523154255990074490684322489349941874103439022207"],["1150630093525864732877270899508436603378709393621052171643983439624383166152","1294664133394371594905033196721140025741384983270042238004160944304769274744"],["10191604816395496261365439867092986003099036872888613353779864604771401513528","21437886082746207034628240143997894022881027876381684991954945150275526169929"],["6456831240712098714437444127096919425710188790967838121924652544757633025183","8049527407802730249298400874146384724690900721017251553672481626490848232234"],["9222081749700118668218530324970396139718198362845852936653448083963097954238","15251875992807508590014806570181997444661509433154398900290781923712792580130"],["2233758104748974212608890574450768421152500562403778521639433687594023040455","14385163155953996418722130196468489498371039133098796938626046437472392658581"],["28484276357655177260569619314711286129086398560675589577463850219896221396084","24904821994134538351396143625455680079621454443617679690631051131526221586674"],["13444851895140475796091659047667172179510848311703755479627171869128397990070","304310244476361847049075837514320956471027992939282378022267232355818074067"],["22759718570200774848632776045092017174784731919304741296472441005899216929659","21722209057542767715670423884607089369499660983830582907833386973375828855630"],["918766070236411936652694675491316913334442252055590788019306649054052122117","25445517735616917053091068216814877209081317740991562429825300420696293433663"],["22616019646384679745961220176608863250717172130708642165390602258270651284288","22123160762983383681933218076932177677802037175961901903993793329298566656693"],["20474201741383195874781833206621696299123379947854937237628165202559326864272","10314200794989548256618424532589753932231574227133856607838287028278415804318"],["14377647330114764186745382566168606122453156015298851340506182702725985701113","23777278367165267004864947923515394491712962072126566753580719271253236552767"],["24807948836392874981002949455265961054259958124068043880998490865037829715462","9620114492685838964353310001395912945791967763633380021036228704528173612022"],["4916637824581771019159456611383145849420933113843711623634697522668615176395","25294912936647714001250343264627622165351625800398158796702366323044501791303"],["22825000399454371367599703698613136444906467194673041511287758681226241769163","10895993907229586066241199149345532569835618939175822385696368080234150102206"],["2137096728401975155424738416895041679957057756636909309648115094840604633570","25569093155481979550273114511907591721704341919950938229578935758491690826587"],["27398856688566620424957028697902029811864005627575008166277791056624886486122","9975624149883180726659399523608690019862890562474743158304311058866306817671"],["18723830909385699652433917809889451955508044923244703268388142820542469667941","9683057810873286150810350548938571094591739119195413594646974428070217361067"],["6068447052555566192215313139328101712909822805507261207443857306984942564922","14547987535583791440675641082718266332653996284897068765386207149709572890421"],["8232998732995823546623825288740189310132560031083331019692394032848839715729","19046567087043151953100671051752612275960710425225306066322817149880384719575"],["17529522850105966098295542079043371751114074367645306934516211982980156936208","11077126557760093311640030122093462647571610347616901294244109829008465536861"],["14725558999192973088825837518851415381419480039871282684540558836771578006144","7858257678897869461575967862148788554632894982911003461410337361666822329784"],["15227538200719026135360280534672344209685452992165511112948420389236249184675","21491818385799866351210832333260584999343378576459676716868604502491298554837"],["18253968628666330719830344475463195251331221563950691664799517362285879038561","768092454219949680078828345739526589033800800756823612277931306521773501533"],["11447371490364999583958707504401186997228348995065683524581177445585606104391","18587375863787066377694256472680057979583281080976952455356109049899249931865"],["15061504344621468940130650130646247846739041332526964286179280963865863731133","11688640131289999022182311531800270691874532995232617459002036476185555110861"],["22644714226237574274376490348048446908460875362277113662352959175490987589657","17533463930843636550564843012433439806261243450098517388839633247683710220857"],["20591519767964979729473452025293073272661425443677749157352685538993219543201","6018784301823808168562250465218834552385956422860342830880530951267253799630"],["10620915042681895039508940421550854363837127552501883077355599359086990595864","9412034397167726758755673550271406964926510004920520527708264027343691440075"],["22893591835262872772239981340314280113423674147385488160054410675052747913700","2033623515737852625195833058174575176374222235931368496535533038072061704328"],["12202799713856179562614254448294724542023643802441634577671055754158878043125","9542440612652815111759985040751811045460986800574586115542956902866115950291"],["2236128267319128807749972265829065790415576819511482790587950860767338214030","22325833636269521262054070145692980740579303736663047942130753613952085368331"],["22948566075385226187076234920619743323537997772840275422324280767124560803565","1880109209795651651310253868415838855036191902370645462745705591850695817914"],["3824968879605668430072572065267034314242338442491546218690039509634325641105","21573733304926636556209479516325568374572712017777139528186147209337759292046"],["2885419945453043490290517616988910253157248395979544513865807862502775693838","348143594677756391482501200516264852713150394579995190610931689559330515994"],["617339525770039409615588317992350064853522685366222229469322379681315922592","9646664447963935124167841071259512418937513472845819253139880438378021138074"],["10049957981415043415327666520148441710179484280384479073517062713367567183625","8458308738193440788032789989557149113311641795922292633528683052090954850743"],["6830134454065328763759403836686965879941948132115940849347587415110373632903","7539695801267288527576095246975560060907885948083846627503879051786318401934"],["11637274502863738895870864310868348028737491679540599776897054847337096411327","22921829960542821314481821121810917800621735277631301886697708030035735116489"],["25498889537945311805270801462174338316655711580646408449394346583177879638068","28364476070912149911521976055294813181344165510625172485892920565451019841287"],["24221253094842458349002082912868862969599697788514156256961973218145677860033","2075285335332487811310162724388420623552991793090164005367636431475656418879"],["11637200110041421472739004380865162826393108899515241669670725901487234728053","27189812246915917217793657105046891531707283023378754849210081515467739651100"],["18720190605106736449859980612281920117904356400819274553281763979650822882313","3196407006664003119453934983497190981027879707854651850162082533471735435318"],["23945480508931148468438133199585026611723993546196050009565484627172422794002","23714601351402800590478333512133895635785249760509597136702538622066805006639"],["11614741305444641238635266451045257239438660989824939850363193513333490394968","6972282028348977513106583703268594125921772319252853375787947837422666230557"],["24057706151144163141234688976603474435769510785388987471753953344643356050406","9021325492157698902195634215613707028043991685614859762793158683568356825007"],["18588571745739477130822918968411777692977597754227175151420168953024226140295","2988015491454568933911146693624233570597721283153165707665370488331023299138"],["27746671151255736894638394769356595399726400605064227979641961533168538410995","16669694204291925931133452781492209638319093374613641696660976261211599962930"],["15568185863114535638890721656298780719060691228849188548320843238052337366160","8679059184846415412021808633042864868706473697817909433948747264787580476788"],["5141705105381444179150275709520060840856276805711751683055795024450047449486","19642585700241497211718654202448252749613825053737203918796679436010080206370"],["19390925214265785467507924729007525936377562772927870119410289570003577981775","16348629105069119535371616770263040093837428424729891410696234599402815835984"],["17124404062036325848696112620110134558870272276046966733193445077858070667864","7153589698387712819158955269331041744299113920697986057171608189317903440893"],["27552307531983574011354531034273720329352469865317036668166828638416807319357","14714297786991812280842842787096819375072556766536446584607512427540135759696"],["27762648301261859003011536634080195467534885158291592289906278531021018396806","469469296905728837274822476897822213644697200428590951174194544641068746660"],["11072510396553099123462583841805306198236217644891215779088323363819160823948","17464696623141719267763377393728449478701729789488992352452042229304215889490"],["18561815059256208193551711540590514628220840954426981735210856974935455052586","72677830834562270833279735607630501802700582746323384735525204785689536748"],["15436493755458062312315299497611753092764864191636764525866644211230297980122","13874813110028930896811010537585867149920956196680916140488539259032312811190"],["20511853728128184575911064302663344169752671351597635158742046272007505189409","18394782417099115033886624655465172039647683782953252005951424803295503663386"],["1289756057437680692075553030403715834434129997244834871066778312582768487609","6415068523205533086179341320617449605554679297222347301720996785711932947648"],["16237497097567894535599052849741354716092137165951682217237982467724080519094","4342294836324800855803639244441778837539830793614897884520830137029173796506"],["27825323657112705218187498489229637828058236339838066124519335665229099291002","1923568508361117980493087623225124993195695663767894884391987631291428422250"],["5368440717568251333464694571393083181007125733442849692803987034372047932754","5374056468391091862922076223161847201342922772775854717824662310455653575834"],["8967448984861496967506788329729004036583251769754067337637474183759335054429","6630172414715440435355126804269305199126475370278784466771733176612022328470"],["21784713344968111284454276823089587652991721498989638699235973037954931474506","20740634156627100864591438925806557586646540962848178795162188633936157765864"],["5732504652581665787886441023739317704394897279203360881247852113629111598146","28155286924485701808836331017676007057108356458610268109570745769931912980547"],["2347648566165436736502393444549330961208551546286072138841039659723251991453","22073447797286150500232976459726232463938741807658061959444782560703534091363"],["14486773754385084254013841347012868542983539299982316801198271170451311550416","26182876745729958291173472666702376288054406697285655063109830466593640309976"],["12567730317015902063177271633375113832546977271449366885417682692291089509162","2725020722816201343256113247625715191978376312084696747414376691900543271873"],["5483216107406509776323129136321464491043287959767771285161423062834241041303","26802531364879089591793996447696737774108299500292733822432151334757556274606"],["26591180968474745139172288643234851522909406009226828675006601776859200938787","8852388320812319816212216375582068259541575028230404627237001914187352998541"],["16104500748255886532259150328658124018988778027186519541787329347396477313217","19634416458111428803561418095687279174290020591718593167465013984183504392144"],["8466514877295471200287877036877220677310752600114212607540594396029913096182","757469062919079377227406957442778814953237630055775185127002367067174327231"],["18424437402164003443357606506613337174636823362663870285796466055833014298664","12495430719566163949275506000476498745655354390891020796785652704335469879607"],["26338309866257571215373546415619369416005414985456183696544530556868585462225","7146591663203488188231985407542817762938987021179497442584763013045982840053"],["17180413961991790826357771412410184472265488684403736738861392562195812020316","14506946558927340571142202762332742355035944380698388468328617266085810714070"],["21977146425231973316793009629590332858913325414027998119790144299923941107182","18476569111959832620358459984613452957324767105909391978092273708174961780592"],["25259310412314618464595595314170783400211559541619304456344305948301792261358","26080215635575274627209239545818260221488056936796154674938936038762153990377"],["22882181416611663032326982346008489870745516241414463524303709895473087473129","15610438746638893035330508593290468250353562907461338264469979920852982868078"],["16126568541366273324248961161240430849819982569742134758495560889392057959625","15622604202214334803361504624262086589531080815248472823216915601218533218564"],["24623677517814547604395962687376040886486209082340484271019185909664299362495","1169477293883922402018448048253898522371609948208631239526063253000862137919"],["23579529333739840706394799156710542834498264895281565479883255103296055217595","21083559919539432601841816969330238092787456819028653647483270842071090731285"],["6243575707121919413974142251568295878861515643331899098284008635009824795530","465515609227445098055850640592902066801865516095864748565426704093401707768"],["7359201091175862121666965693538682772379395330709042468561861716823920311763","18379733606731614802935638905637473282439132819418938015340752972745687168382"],["17005310187975579822355305462937776866609847400954513621003637441805854069136","10732119762076387077937659017317990682061531220453818918986114970865271875921"],["21251543958817157539900301964451121680969627741072472034191121717371757257446","23636058360979571469144884406711537532530140276910445282557014967941087382954"],["14254840701296778118941672403834768579859560732014422822167490133948008273804","10465404359558005693629644382538686125277504278133775330097677619222647511528"],["17056784010396726538185708409850228458920482180170701366346919753261542123122","28317091970509590314841193566174942340516416152787886104613920965351523970788"],["18302014616638199647648769007776617498250704286892497045933995393662016527281","18218359299637335331213941364974005986760321156521805557885116555422429384938"],["3876935173317351526164211712044204882382958573259985872760116656401438292313","9401905621763066932441522689505940667198395290890336096500751567433833697643"],["9321917386844935569586396472415888862053687209024650470552819017424168680578","22967111280324038436807595019674822501516054734085179618362736357569425639916"],["17220770246686645671927251108618481243344751085842139390810845247724861106957","7826277183424284289924762948449971061618586232419174932192060289015044547493"],["20953367332651494543534102488237020750095693428536521252355709098280929856147","20970034192784928027792030607311943917951602049653717968654668544286820715193"],["2416288413312379909659418938467791950035526548872324894229333649171219205224","21367162240153476113066509304623573783941377151186105853372370423552275751117"],["1938528458112992637921367563609977668701493917877569529355993095856633380920","14654492967007820595577545031272256589223614596568230070911072163174438303446"],["1551336429977843924401609482139056626511842485322245013684546905419064876318","22023299001288847965561196072907053637755884960878484908247002208506669190157"],["2875276157880516999459440829948611366344839735894204897259727823168108306142","21357984289768270384749113747148743859605345402112269817001771500192188581656"],["2877841554919999395732855462589339342668277156398473472163514551067180455487","27775723852664694917897593847748371732645901003931517341142590242214552189855"],["8050278282774691938019937032584805858703325302121818948283240593494740927325","25515141765453736284073744651188876894723748778314867488976373063138755504180"],["15968469946737502263420581544424816839021082071169885047501624976196806482700","11433196367580560833484845968450415768595540222039971856922994333436754690528"],["2102921180260816928572212484083982356700273370432611237685221348386515250088","3708117854089027118346841885971187704625734835342877766206290911932687278741"],["67800718915693960592823509441210748218006185913886167631077628981137185704","12861512164376868618489164491752718551645453134219703906406811493166176668823"],["23782470868326572712699673477669062898474762102602982447970143404657283645900","6130762502601104117213874733172715356231803385508243172719063473155473322970"],["20754174917278019789853225505854413447978615101567101732805325842536996278423","25384860003517616721665820333134760399904126897043773827602252886705660493390"],["18504299674705687766230680536255232654282425137227414188390976280097520348562","22093729847941054507686692677924351213812665328030346870241555656382556873958"],["16175089637568420922561068783268629426923753380605561192855086469178619982964","23502159757668836852864596539160731306491576475536848323793354554122696585525"],["13238283735292007911987331661497696543516719898073572954450025753063462573043","28441707843852562290210975331007379177003189579668849629923819891686791655867"],["26785696766687033842825417038336501545935438168626919453759859460820685049012","25881220210950261111646537123049126671313893221825274527159686112408106493456"],["11194985087013357512102470272503555664783870698236715205066882740346520503694","8661345076618520427199332088006270035497078114499984396091633942680149228640"],["23983511557377582466582006774627047626388700911350843909631469860455787673302","3212373355692524343940117498134503816536469270466891452844483570677214123420"],["8507584240186172253011243778911293712331865411555382808492041124552715298200","7231697606825413092005262810875359162129275426599313585574270272381542565439"],["27455385344585897818677762642432145686967896554640668728267141279631510821977","19761127946349672649595692270519325332537833774543884215316574015575328127620"],["2123085355104719904357611493688060389613100937242671193928034117001197307897","14635520913161327605518561271076774117386125386658764801973223028755149543329"],["15587378903695752072461588570762304346042649473092163039869493425213516852435","4487611974010196689994044090109340434650639947616339602786964987217350200883"],["14048243501270155564293116912330561539055291919296063085942553787380674181043","23275709769602476621955790258873665027739140423319374367779961792090290787280"],["15517802659650425542289777965407076049591196748998966663784721434546895333455","1349608073563120211377004096008256795220067837481374296637619645210338571757"],["21832548866202749813347121893266805263925052544837889640186277256421374775939","4434042474329092821559649449056031773433392796217607555804223236277479675555"],["25982064962943137662033712485656009783206984970571984356731859158316577063555","16730322799722820074168395106189307322560782293683481478856072092232783681810"],["10104841896565109682621824572428616329287520152664959991855469067001579197571","19444679146341534273316336164762078027216747018675462609224653075257181210057"],["26078015644419655657237381443142189561468909745834789317362510509221280888177","7706205375973875765865957477724964191804467765309558702867992109082277858499"],["3099502818925037087383109736822799195763905042369754778153405966876641313415","19600572203472369909382680829194403431115216509908648440404003706972352104536"],["21927603365292404188840160723285084585197498181169388550191055236764478266592","18077270850605899745823606590438496967600130031027431027761628635421834607539"],["2202206036479494466614531956406638006414324368751383655945726247069461154035","15728242991815439498535372002398432220546838767432913902210445165621472156173"],["27156417947634620216322078094519000636152624036347217815352491643436471011421","9274477947907012385119512487823762786110590883417534490284526142495676020805"],["21643130225563577327156178588039925519158639389482656982402365430979023264819","4112199160381853094998957345262884061361052806832048783758042440335287737491"],["2496943829590481060276431784987386189990555901119536816085802691905025892845","4321528597020209849382319155841073123624829470287804249031045027872550693650"],["2095891192832261839340283358621884066963350885954392635490232440008971111541","9489050202477269147406428484679566973509004706982235749573512320990176151958"],["3333652828430696052644705357650253137065003504337351068098854031695298943465","28650314545926540118862621712701929568267759256985238810189404211068460764018"],["25075534763662128268079000028798327260189215254207045281645389657367794508624","13236098502120914914308930949734733521850623839720602958236294995265555127615"],["15539883822211124820974783787239713903075827743078283279384247559776816879365","14094273961571638200126319516877406224369029073408217849381848860941700490438"],["14024700716591910301093281273562535259953904826924823822563383088781342779069","9830212944573851871208458083847323317668611630999049286863703270872598336229"],["4456476299891578116690577365592332517539578861058382150792797365633290561595","11621373731046784234487104138996361565278263654817978904782724752897618768524"],["27211886446248092192942228149698597468175508710875055907458325799458544930405","19124438687310139136708418851498121607141409869523628173346367659004773595350"],["924529712001743541094050336642952157986062760089989741067574909253158749260","20513410053134508766710031802673102938435544032051284593050008400734850513959"],["28923672671219961077000024186708012018419185256571849802699486813025084978846","2188758496498369075056189921545814301797733567275050674190673293040339133594"],["6101811965640524144380628900464402085065612001356854225331770488759295697101","26428349790823108148398682286024280468586514290184318637408741617707885690419"],["4969160559581869437413543193078600784435379556947170198099006990216082180598","20149168969519101334392272173573274715197962096150064429765288003363713214691"],["5766152591211499613424869258187144414743783990251543500874771275182171090005","14598740516212075569536188199606692592759165930215346658063811797642610047366"],["6792564549756926355503106367648671384875117669253905762385093438825842772863","24857979578223001050449136941694460711965749586881522431427626954607054959530"],["4095855080262881792326210375701447930383513809947861176776519243935373768563","24545312094484456211483833873004165188637017779908459213275054829859155552176"],["7945997432823676073559710712889031770652159937437381498024411835622981754971","4668719436722634240854419214426506543480193369649681454084444346089454469005"],["1801917279951430835560532218142510475894851544039461269678944289870033484760","17948870305070649522955562203849057492606569264791448634132883599617489563441"],["3830560754630398977771093475471472386485458506175806447953810761614850441448","28484218698060871363848206849607091541348043157664834002604846432736266338929"],["17651114992474880845787545568905107364799112179681127395650861113819685053914","26480648422956544055374895656997316297528072859783840780621633038470729219495"],["16421635491705153763425627748296555283807834138923041068560513238566234141102","6940666356160155699471147146315306890227442986314341790151556198259571360794"],["9717120861792892529211498263768254194841328676719893007928028353046378841537","1410334324201820177141158203506936584669302466305756077618948630266068088809"],["10236267936594379884775189876911922246782994200100219994572111178774832348187","27369411659805299532109976656769762981903259481453127021983309157253025106735"],["6796147788617688932330998286711163408610905133060123664213386504653956619556","12523168429828662908108916514546797134170625591947563653840484761533912042456"],["13104066091913606507751385393862984977604649402523103627626680079074025153600","12867606717370632425167717835139346452766606725731907730112663562399666312654"],["15288912569437699839427318964000346678096230545807544971720469828386189330152","25174377370519028268347926417479060456521697724923277917666128570505640259051"],["14981417816045876731758284811888253762946866999671318227026776715331709249746","25954526555188425262778439538803315109165804821355323612228326505706538013121"],["6692113532023114834464566061953246467441561568917403579143326578175050241742","16783120706763045034678572876141835864781727141087716677497824273057755226434"],["21760880946705235679491976291203734715169844259595750539154288997685092039267","6713520658442311455733525986770504432770945871314156651060875651161060362883"],["12921034136345142587644088178067566822766805271795983920474108322884247941627","4216232155622905754611291731350361153104702640682539745495718213050095740940"],["25693402774360808883648112516821323691502057159478826400269677471149550039920","1607080440547453448808980329943782552141123084515317086569043458886352610545"],["4537197345574537575510698628852524347230270881122278513951964923517283491168","1987966320034108216742571787549787175045548498488766196718116391602116192639"],["23026497152208413152603025984690940241951663482977175003024298178213119966172","13070182267157143543844957392839053907165126723958009377489521807323675827629"],["15514408713077457045078165301489405066464846118181546455723682740975763643945","5862652976421643779813907254009567022325598404374688372324371098682966442490"],["4723755899391292631031511164771387141539573549125502019472782705165937613276","16185635058351077580855325446051086032069613434417619664399415184745228900534"],["13440907340646203217047080961510882625632337122195023104727604170911171168440","20563486249303165107989701872569142078767671292195642991143675566497381341071"],["23975138687776629219369984381182673118335638175606309050248800735262796169869","3227545641304085661124008786770055943344337657491155340933753036597473574719"],["800905064384641105838258545872124450011207219204788543251639366493989627497","8458035355703517295042704904528789707705723040737806488581942165628747088842"],["17494628277902164009705742870254937972383020466061985463754268783120162911416","26216577155234156277622545274656330976132560576956766842229754713014834700566"],["25722813460254305433319863492965367115019556035254692333656318379427313054548","19088177244132719295086651246173161783880674288692877226302391411163476120193"],["7418557714554472693344294111637485797813026489675381017524865188243821336930","7702195115339023133475258345379248357481431991483659119830236155491719116837"],["24613961379722054357406733305430537714984921126967434201943662799060300523237","1194022186179746834819350433164851868657468241822118408466805351537143766735"],["23341397206796100678055818967580108836326687612646163647904796849161204389677","16446728085311969476221100883771277168654126461534977901196639478996307211596"],["14065320270286954311656525161366333229674873568522426026997511144792090278828","15027927235926531107171022870595140324100895937700949320643859695156219833994"],["17663770003234488194875625761423351166664241151853432676185256556938760304082","23287098495224480411592042873031369987550032175250467891027067559923325292657"],["25831775078023537614723568906103240218768002550404273063429533028152979608322","23625892076562365140402768504088645735535490373961337245059122625686308429014"],["28825852109555396409042763531674311707717059694244050773843824782151026923364","13671643353210089498049697108664875702733445620478186650830229247843565977743"],["20596093427920311789894034423093165962631019832511519215196064101399589107313","15722223611576134155624503925528644195869960763310670002867062348600844803287"],["27247041013418570534643506118611588269008546809443499410468971463531118876306","22660399756215262845292024742395377866414973573161308700256440298047426097245"],["10296160179783807638542199651937959074598028535418703435319824415175240577578","24382410328528749685806863952521766491462505378427621928230655944666699927416"],["41039098178169138217658056430745101846557401010638410024698359972683793480","5706078303453281747307829414399274904897957622346694980033593982869339188042"],["18807501280911154750982593089170837328753725872435411015441177329474472467649","14349225463505688250606492994846596957288802895577324900127371994547536276149"],["18679596273982679469231794343532495196443908606678064952244329824559636704431","7332904986579057725468949638615975686450143627061419183901300689717149245676"],["23073115189344862075322114691911276844378794954580568312444320106278375743682","15212451042229788532104953321374469634588806461380700336532015832180857443186"],["3025438173520441989918988006544051274087821742114338843662396682374178070594","19702647769632999027783432936669126317882744101325229177588454699603739121419"],["13041623822379364826616046532828872879349143896728281026716945468376240654612","2274826538778506717299506580630584760420825861588708449297942844203770365915"],["8319849725324952428690933978200787160428719098396641249901317868602931224491","28153286380920621630497540106337519245917405894432152268644533028037461190572"],["4679842393842773083121671573545692283830925899760599752799613035219510421029","2118438724658806510383848660426101670409717852431955210411584063037603723737"],["9365837633056025825766824100991212670984603675350336502093011307078918458417","28002036023479264152694500600212367556581279839924554645796475755979659091977"],["81658833554020869081197369998802344789284569635973553683190334510013440778","22217803530099068494949769841140432333026412820788949636905503469021401031353"],["4646119195951465450863430241879491762495771460991288730778884345584421261868","14110752487088109407739269948424739943375827410521752327561830838423635273148"],["14242072205119324863811423968642075730176078550813189335951218879126865322195","19586319655675077017088719334091183535156114874070136078639967221363152551435"],["27539046010761238130458844553333291649879681227317684242919722535461077878395","20291032081804975941848796114105532294303690504377810168136415537407188365250"],["7811801839259566184712872610273822734114513478018392721109275503375672752259","12373722883680092733605909295200193652387761614208856435817343002239972797623"],["21468337274305680471903443546298294008264459784778631700262130500189454269916","10188336558454577865705281206317144268947252394389360406937715014154302735262"],["17930136087440377606804900152594409803826182021225152193444654658747894080395","23233222083664123295485422421561167969824442314809251663905769509385605394172"],["19430632726378496985920255354682657305820711015416575267078171307169244438676","9846821935793750599426480635353567825007563655005668811670830407011843551751"],["7784127184551103091339929279622285941431111868464542170897212229670247203863","2339942778082950249537448782738865473559580709572022730533722690020267491874"],["6304863478486844167473801976444778602664656084013463299803585701548371217293","10723503013746745172975809135875722747127339546463357916334585451379622379191"],["4762789137212479016410990445471255903940207300386586291327304413672551487562","26387548413565452173531395598895762968363333431709296470018173210750461550806"],["18545111779217896306220530723501329773030270858136706222630106806632978709983","2165504784772007799801924887757796910034513793841559270055511380543890119913"],["28696415007789909126158686837969662202249177345582393713736427456372232172632","14368879937741135816556848797562838540536025903947391605429880907703128426802"],["8631354064297409452686807712867952600954788606256998396241258853453090855522","5933672388688940600648569164337940816167661053693155073802032546758798809848"],["14724645901011730110279614405234372192117584936437937133438531591934344333904","5329882729966122842738764957354114074066592441678749037544435061964721466429"],["15460178081995316351595634508475922477502902507971842447496384899248123701984","832587244599270717810964151221850024708362272856418340707456065201053979753"],["6830811372190247418280130744308318607078713844716936794627740109657754106675","9106886629941968311781871572116666753337896185980983409476780625428207622602"],["5433439033300122035978745756221772547047486194148748853376241597823179039876","262006901354297948074621161690317927889676383308119442241444924912404457855"],["14818002963962943860855898751328017785902531584438936087152486301235056828832","9109077136314758015065142002687387894026849783833760391134181783979352500853"],["27328543448216653969920669136131236034505380541789688165871908986983378791543","26493670534990562145508037418342024720208018473228617188491743657477927173187"],["20310601119965721663910095429852748764901939503710450155610848658095603672779","6879594189390808077581502276349410151920851655694221901676531941797837812721"],["4953337019066196288628145945979386035354184644076859996829379259155344279815","10059677881500452923907002409435946052351114091516383451525040885113025533955"],["18412589601905012077301635209770380153015502183121291441047952245554898385156","2843325522600236200871000128579046222432413749425320231011723676691534436957"],["10047020556669081951105633318139965841100218420558291905793121227080279514066","13211543795429046556477744262034884687226085979989454759079983040241642404840"],["432732500722359019637160107757095489674651027541582087004885056673878612138","25640149316236583931096499022752914474574038407264146334106169239925561595196"],["19843906855697087652077803555748232800580783490724883287437765992939803772311","16250625822960656327810031736955760993095316558502030527534418707513445766681"],["17761032053246040110102316143338158211983144620907509688749326411610335549471","14434911906578282358540924605081201092299789023743891263323245870483860247830"],["10974403014699034032557192355338982411670578398664666165281464968109084527500","22963670996414756177860621603952532694425237849944179080435317821783891568921"],["20814182542112153840733293058895608989978417789918443862672963138297385636381","1520492593805331666812331608869285526816192886968474821883491923103558571717"],["1655507246452905786150603118532891267591800185505756190469374910691872560458","2717193904383790392995319636073669546707924762222921418380848338794361166113"],["20543810469459904375257451166134484791176499442870380576930172722535720445388","8795478414749875582636446984414542531554099637494224091396698041984381940721"],["11497735656614489593602178744388957899638537882179023929329253743167357917295","23878121183620402752053997746002378654225101483553817911991837649514305974291"],["23539576619755834678470744122058060767368211668820533989168665584022090263283","20996228008418243555686072256538877280064203105281479822635995645933926059483"],["11696519946565113724913451454772186456222252552063767259151172637640098116071","20919020836993439165945666641531583868872419294602624629781729850875449437573"],["15142074309635282666218175033185244493435298434687599461573383105461825154861","8979598553763054166909226402576265797377035522058334940869827452254539592251"],["3744967284025269457179175270917674694663363495106305213227299560671175983952","25021718560020510343363145988019167101865403765595564012873798838101936073070"],["25902372133228957635824135873690314516636222345147349540356894637260202429002","2346761515299925685696651977452298962077149626004772816007969215006685199877"],["15310468993782197493637372637600096886754125983794769238792200461442770581922","19716463282659295230923769098463111986085404686353865862443826729477622420190"],["35345180155013197212879394562481131321306538224889682770231774301946005440","22520171566082436700248718774345341395710339557918989801333574241456062020289"],["3215026683263539447047808765752316324299325616156371196159110902203773063955","8024388027207946723674386813377738993487485576696744103274356538616192066411"],["5733250306319007677064890076587654744304380077330019027394610938987576222288","4892332855101687389886029534364865700754265245960829646560741307549453492047"],["10982712288008948782950382130316308830747085453850204217394053809650675156795","17052296942363822918445851904096200679639492604362332816513646057529577961783"],["13364396028524635170254104453235619332018792517808872899385980920134762172922","7801540859355569141683369326848072287080311042933241886339118355583726119347"],["25585867798430738255275638810527734845221601105667212381155025826657765781209","26350298147739150018307903035277840724301297297830080080273497504950890879003"],["10432527353821688665256389357602372648805249858995501333480179253030015415284","18289946190645684558445513500979972140410121443216420136683198705137697430405"],["23799268688147692205090805527509827217474041460174583108825931269677356378542","24172390078396855373363607068263854382074861650480336200293991075135567427641"],["3106964709687014606721142899667860809688534506395334422284367529781606959204","25053163634895877882363268421052033369279692736603659891713343491555769544849"],["17002436108755691817530752158220713043793978401022322909092448192791284072490","24244775013354583963295341922221196432511726777041432175314112895362745493244"],["14145723859804349149997555460570776324536267586877117692051811038206289977294","27834063039401162187055042914698889666074859822205094555175347333155883756663"],["13890533634741651556307289154790263231191962618437419465807969504111188657313","5042878178624441907335721909488297652071024184461312110053396800185390449665"],["28312004435863949463840177422730433544933070421852740193138437437385815363802","12980871576580253680141811623832241010394591420759898289457267001213274311878"],["13187864750550227315769678800652764302481301011549291876296991097705074399244","6889684641938441320373678146516065892037755990971917428926593820191302603355"],["28909174544466419313561900972116147952841349810871006219386701092040453110997","28573423858098308780640906030811783763398228564381485172193733636100262287476"],["28648665521466475223476163914651531171222040202532276471687993112814903051325","21237934267848450440884789096615066577489628175431102155422525968843228563025"],["10225862250592835280200689042710371785570601879011715334724528660696975402938","22585214330512150931561259690248178701585299829349037755994784183678949844579"],["5652822023106232191357809408596706199678697174343672749816653168964743821130","17089870074436000211607038105266560511046046270277240150974467467329138184296"],["16718355907354889473890833315392716674663608317567876959301246497614958079974","21788607937112554998768585763836183935034430425311514590702732453611618859603"],["1909248622705426920799340654151971630431305026345700695830484912624448190695","14305689435675071263344959712466435918027123500094118246103855712744551581138"],["12529309841455421073410992288095746865344478486206939678281230907067693330136","8200893207237823789232839195028968713106913828971000171051945501611920919413"],["11206694337063214473766092372236618948226718083823811496547607800484663124326","27358984718472647243268966199042548602979403876802822861931597221005060192381"],["10393315352326214950408148261990918676640332088202100975779147204118818199930","23709163350791738430480036635987050808464058279318921833544670589012973487157"],["23965686304874511334923591591064782915816606992308670897351966617672537714792","27833530864987555131134729671480312716389755598044204561279613645498327257457"],["12368436935242960853510884669561781946518710042770429332680594587284749536421","28455924174231093549475447916013274573968005470229702964724861411007999746955"],["19878904465373977499628213370698191206083114194367628322577285946848036276259","3205539159118361642330004639971930337597781177782570364843374744062462561381"],["11113890834446329020257271413305684411170877290440257714331792181410601568721","22156245170758038348981557070189218045241087377003762928605909389053760281441"],["15945861641765123747046245553296288957770836187309379964637272091775204426104","9672520893901439738432813220006834096527423959709540506128803298133142099890"],["26804686339445257746683475163230668831156086875267021460730772348339332731568","9700031290358870075852805946488242503799755083269186511700877040359630641021"],["12950069462637269491154215628609421486386355959044988338099461661023510132378","12325705595057776395264554105632002523149980188838820045170751281978934867648"],["23638534705903415710796506405042938412255149981719079252955906432957850082637","23217689529917809546747350480651342200290147498283757422042253465809690324134"],["19606351971170348547428963597517575046670741016941473892901587576873486322891","15513086979460736503674374149212435168950231013031493870232833405476122730252"],["21839159279881509017993225020462632527301968428626837451039813640351891984109","13454599350885491194289360088625812573675513112562368234397073425981591245576"],["23492449865903179943685187810643567040746817354279995797139583352783248689099","13010470482139882688955265334251454495940255697278391718845045600733360102194"],["19007755049270153572276376999555232173825012056546212486818624570906466868451","13544465391252361106408318534546764550844623710927432578613290081014993290843"],["23236111912328967097288703017353892958650039845574210741586942717120319666341","22129314127996946976125657595211951407672489473497702568178171153469147500600"],["6323168664681612681595590368588050589004395818084422388813086536588539346544","24901994796538740424410501935529103243389827764999454219391924834557203331643"],["21952049129167617696319809176023463527047388962204215111498072824288664162928","22814943236001123133296474691704567512756644795234883376125881263426297312052"],["13821125420153996887576381148272063569005965466641916210894247393050766102778","14612916239936375505361721145845450983821502373738648672447625586189005877060"],["20397711240108218026446169164778104172989887815206518301370354540152006843202","27332357447914457389088331748639636008170339065944824704589270856559959181453"],["24046647529717564984949216077815344082364321253893261026650717343738688496867","15723320409774376454352306325475702410798863720410220233162070398147225982344"],["3214971245323969026854343856851242679642120221969503565199567728000859905525","5782277297762237293853162433049262458003456058236100957323473910597462432643"],["27980472925313737098111489215889943228550382503440451412151989779853533386669","26750167068847523392724743177414843881862057165688436148955913378363145929508"],["22259936222530876412016315403539847557285402430492393338089863152057645451020","12010667016878460504805139386592592921157344416696984971491989450804615779429"],["5256905423513988631639709429241680983735293832962799766123040031871470358990","2235028115319742737056226551295576707548393574686571155178975294641266424878"],["18754343799632952335035862263791215339608076549508940324137964237884420018509","20667728467590642694580476197496602277355886485367474265761902379356707333998"],["12207353536633843497977043429392818291366056615376566335470032142904790090964","1093712269326576450531860470332131349441598547622135602391947105199536165774"],["9796751949441984122251152175939105274912188505414665091164027186619831255175","3605923207048784926977194992559402940145773477341748042496169629976376662845"],["21325089655561762387821571365638283209325308649120337353824188036140190214330","21213403881165907087617173356948492718551863304885064262689959636134917100875"],["23095433545259214366066236320141144267118156052547612514056909821482704199523","18162331356483877507359661531379120205444242218008394524654510748312839226110"],["27688565593220173470755852651084874943755837578325930312496777209816661734477","12308760198866665188567998792009027221694054431331079106187101453185143489810"],["28680487596194425322426231079105036823538935550245820569040475663104621858687","16683317311552511535376602695997193917142175646236927659044656645211298950419"],["23106655937476572064592933139661869614878124284489297191032325888044077563186","4029282590882849951733411765909597610165941285379969978106844251539924243082"],["24059511927954167793098352948935197326853462145764078538832220136529223734841","11468397864531441370899095153493034559333091354272378925782206620587209314404"],["1447095052948729772897008818950209889860338669585595423785579900154091708800","12559449418475588707070533233587541552375493146989151853669937583770175604801"],["19751746484751809035739957309029489763913702950664573746305592716007982744084","15311265758347090734179690239033145854849958904599236419679698275449755184107"],["7120413419097013319339637786967346128405267934935151898995441778120110593754","821265085501039001023731578349665909080500284538169995189252558747150399696"],["23739684451016194083448791545136747217233205987754875072753878253391961271400","10144796700316836749950423815428391478980802391727112634771996329429655395458"],["26380413228708730422970834256731644098261982817841694745965446680653592443469","23605335336959050610123994703769298161932457305584001042229726177744205923643"],["8060175690624491787287392405484861952032714884795878747237144917528835933292","20367032534717151337681105211957950094800163145685045951192989737924344014925"],["14142525546877325244684545127393662600111481757468882184168176755673828208167","6257309672501456990908962834188429912556408711854800215542895105357678009298"],["7348480369250950921735636343713499909097225622619313953978159942428463209578","2097799011846562006159669388913784377201070172411584609394613244110279489077"],["11821405879915352018513383099606701995511410210020794809090217661905300745175","10056982419618188389172534323732197965334012261861325084229195582637983061559"],["22753318101775189818559218291166766340789254992267413355668867974201915572991","6753034407175879005238461747166883483524268547947116568261719429895252400402"],["25754511791235524764411686523427912115865190644384193972513498157187690247658","28743313313699979430404125129868887196991782732426362373530031709897721523212"],["8147978059827366091568564963921785596629310391193851121105469539157662341254","22630866697669509256042852852906940720311082067703624843341670527757164900362"],["17323048318534954107677484195077302322658553531309976467675753285849462827231","20034165799963195262613098987883867478189892350841065548218734152714820513641"],["7382334974655482765454357167610621284361686206548902448883256087300287298555","28079228515871282475331227682842189021262626169740730458386509840874518838331"],["4546731380619165372861110970677126373532010725812558697648058899514285231443","14133190935586595642031641427407702511697311967644047525907786784291045996018"],["9299001734164732236212803243378339789113012926261232718842411204477266921482","17346037732931506280784721382424400393702610374332227354975331317483503363523"],["17863475874810988703847853321697158756702035634744454332297931516868248424254","8018072288354594738403322287455635717023373214899803185589926026688546586576"],["15968108832487322459525320811794767634619677883457914090423588337701975304573","11115966348405873553847148776530058733995051052386505346002603522357011442405"],["23181808244401692614710257642548851799612776483891088117406212569423156866135","20870277770570251501632823017988682381374792883333089091650964424672708748460"],["23243754176906342367257879147084421373221267290084652109459821811785603916919","14028922779424652869476836497877024002896866602965897261876109516571819131011"],["11025626463425448916037279808611055859615585241380682698136177701951019286676","1032857421687996637052409879584187617970529024840944559901582571228525538669"],["27250006114674492795474695597337370316853791768263897052716834438932468235216","17503118524126402810708393501878278047684504790971943016713477162250374762646"],["12572821350122604785579424497629310638230892968801120554039116019170896249411","20096024324651813071436785062833508525456828333067913424422928466702310335308"],["22339660988904421577924286658267852182980903850723186020306905756617125183527","17766932820830310542814622993661849311909315395584309888676916308907778576597"],["16176834998491928039578802110913084241585189900252222971243594581706440021734","21148995528275713034693786395441710976990402454974670761339783527842827694871"],["5782780389741211301680808994345344670786451807284297369775071689723173226213","24335076901266177936224610159188981388441192936578783236434857463557421454102"],["22130516017799620350598338403627035976532585003807005530006515402188670493441","2849161739102873985359676045120094079670353894913753293776692398176774256914"],["22829172364805712406101440969648744521659456822460869014872798767422798129664","4262172768634708943081825910402105429311036476005213295917154198688268257916"],["28815330633955951467601949375608967723145714450980791798513679941359160747118","26868509854012032599403170512052868797839480653140882763116686840452392129693"],["13107332393642800698947495298985117681449415231954125352005294871353502683869","14523240225424557489586762849619878046464910820542931711329348846160200002234"],["5943367511457678374719668618743703026538945051049953195687312932819726561390","21179289039420293018723739350615113308720729340391754885532100164919247278502"],["935632702677192794406214119429363383665430510507876523764810288677049986885","11652148964427916753750769060104269915257958349927598906988022716793210142084"],["27206384962638965930473376336507402765267236435317145251715895355087435186751","10335228011584838799641707768725018827564965402448687226727430927849595550085"],["26937977571917967349850929590644587132601741498893211441418028084549366220876","22984627299946960689892576724344044394490385046973146125380695554899585291480"],["1932412164212509757654910881425159788167895199840411837061884489268537669405","24029904871445928691022722135306722597046103408995023173696715644650540725906"],["22080751048713433418492274136409949976438179328397830942120253456816608195335","20019639767302750842402257119200575535678467538118400307538917089080640231756"],["6499363847234480208200465170401073183076661849785507863863712431227670596358","14629767414797393014049321173494795812652131437844196343289163509043256922817"],["5575182292039182565988413529557432612575266800788170635843072802309742310925","6075965265824895819417862192496465162596470254073658284168178925397829536690"],["4154583418429829802348310035450663172319126329060059555597185182997828529235","4701312811310849383339320757290200418382897429122661778098970927998727032378"],["1563502373962279389059850421764070278756677817295040059400505961055031233507","8894185141346725934385299648515307726138345968361507285130733047765022986378"],["21766304050706046282788196320978854886853490553811911329670601906889934440567","6621994542049064566529731238881166128952252152697241913540403282205504395822"],["14591788963992716865910647261996892044965213911540365736483978327608415170214","8797026905079048367583038245730493104869161503410490331103619967889556100593"],["1076562119366922942392963830192156614659659085028019568729227938485495950298","16257685459159246487540148869581767365634881808253226576526830907809020539369"],["11849022508196129264172024698961081416032227852617787316602510488709854240704","7688214340035409676163288769759725734993425901364701776849404294999846196917"],["24753603915267438351944699142332403971938097570453290070124921419380191894174","3635787757257456031257534535981470419105623069154400971191693457260027220495"],["8305532843411522997005057672840617813480590945242158099532287010433463259317","686291915982826715575885678647588598849746600421473694338893281327427745996"],["3847799355117532294280249596755321426875562847024796509788879963431533247212","23244617418296892395326545370165760055179191301301810851630191043603982947346"],["9157614494196509690473572312971748792848557038121331035556174560009414968391","10207291968255595682071290788774228279010253809904069118993611700584955525478"],["4496822477370462077164608028457656290893115199340983707229955115451475456681","3189226149215658393447496095322905630944899001509909308019994065579069916370"],["13226307862322314318825996796267430341089758042711507100854054995280455139654","3365878871066918708698450123433713347688669384070646946558374014981197607557"],["26791862988653320123913381323162176776812074261189238148538864868835652344861","22597043705518747785698735972234602672548373301655152799440383514015435947808"],["5289984968498640956724825502797956420951185932999075227165620268240708276041","16026414897152730894004820216394353424031152290713775404769308651535309235429"],["7437320243103808366570253704538422189359471632418620681305690078353691258873","24271758918903731667726820654075242884553439722025346473265847763425832588260"],["12891515594770322802368691417296750648021308808919924019376214137851932440383","17148220173419161354353887741568029562446809778951646699556673008139977098118"],["970262086027919907958878291842047581415655378543168141541906224687411259960","13527912679717966490599936265402528083612044993376727752070848042887223538255"],["23679049206600803030600054374990726698715006971889238985569444624118364654526","8441034617931657281857875778649162604272677249030242325559586535761879950901"],["19460494728590929965641273058240837939573168355110348688036915609533163213347","15529261385642372588021426355012237288071518792978276739906857231346085054658"],["17693239336726841226508490667704073753452372334995297053752242458541569064915","20940427294733370684876099525554911684018171514030319560586421198561031875317"],["27902317421966715031224442653655249793384220133653242957882960810920501417509","1304109930294807596245096972909003842072948693030531408851603531476825250553"],["8373080954253052273131409554022468028176267238345138705190316988267109286018","24375933256496842274331127387063087105932592489370549308929682526748377769334"],["28821476127731410333424516111555676256102714555904149682894743532533100564222","4677791449855266332532189863200905955273132805270532670083392074071291104200"],["11139124192263897018444200556558304395230920453106552088267466071309054888846","5076391095990689879896213753304707874520347595008293812117370256958186306950"],["18874393604992796375099804303234265351381424737927553199225710961735113694877","27509371693105133856159231298861995526261124050956103453103369738614065877558"],["6976862905420923076687144421146618168073849605390200533010105893547231914455","12392118552033415530967923826441564064728828829099320399648644936365246309471"],["11158559556713180847995328719677646029705187207147942297201418328813720126412","13870964969644467291552068744773155376445731351768904067138313578455710770144"],["24593403720320274109923634616406655943157034813103817073481059267001620153894","6644014638793262052078935275948483322388948717879050132475954788177591572167"],["2406039123230413607463201208525914037966293382447459915155863739486414155769","21068882229284596609918073558772580133828464384380041782608762105531839746036"],["4981592148910660456056323137981494123243373942553254380212487304616508317601","475533426482381120174077642732449888453541013419110855963026263273289957361"],["23706672797816617442006064044828778955956733976372434785067646928839228918364","15337909771046787456960107164728530496181759712507488526690736767569486661929"],["17404643423690053083061623670487610240813193139801638070720812249982945281294","11027418025474555174753307103709849918719806359338507224717567555723962565537"],["26449297768638150884628793740860260268505462683145665069059156396740028773518","25861516387869154825362002124758201837800297048617491932592675685961360660423"],["12049347540669808728381008667965361993880448993395025635147802336515148675223","25739582385628375905226768335074927934609282111170937993949234690583980053791"],["8907203175087856965845608682462625388845828451928935741820456261565121052501","8389088534001603166584156013478389153652757388753771706536354014870821294194"],["2556899901745979609041519600408961310683954248484910867392669241038603640461","8660195344257440748834852503717536835236651668031351787143085499308908325100"],["8059894775790404804986453601582803921386035069004036035490625257269212899526","9505757764588234452832927537172550211197982558663879005055781648536050166153"],["26064343773558079427192014105485286845093394396926416631109207366474027282140","15757384141033311930790155898805523974961590440101247203842042007085032325080"],["1245543706747762329355823731014821927422878164317094946421676851430814147240","877976349709240161395675020698735640244061744797555110976235934059831426608"],["8237219623529861300821444897612632199962325029907958357880905642623226733575","10084469853576116875872830118679774753167519202084440140425588652158230102613"],["26293773080781552944719914003489311584310588146883217642297986803725160093141","16886267850451895821883674880300206021793718757871902907040813054232589413180"],["22931603174297134815979721470302251786761079763844471011730367084828271390297","11073495579367852392210969278746227243910284756368192500640401975145171667526"],["18016040780139816946056117341996001322753033826441124937918999985034624226140","18088420978674631407192378717711594888625098257599986069901937045858302225143"],["70396757505645859526663621119986155114144283483508286245741259386393062046","19982785793647836772962869316707567523431796490965505673707594350149953739391"],["3519718066143257582003268392538202428886668238943941077994282078818966209730","24984946466045099330731731417155287368319745368312283697334968849414838372658"],["13545076805849578850115775096089603788358630285385144536341027824335652237102","24647006497960982652699200650486388128432017399128269673986600135991152049721"],["3549626843116768851315916950968638189437210877358164014145899029689713632488","9351762323982286319934616283999891988841811861739728388271206701217329347628"],["1086986855968485245815008324972868197748909085462764728354367295723073318660","28932163851548313960021270759798311611025067243574616215064753805819798136955"],["17904939358594591062178639106228920310758149340541640060991388782178658393623","4065167379794703927769734845680904161612014942698618616183824540011605049609"],["2303824638866183771048453230668826172693540509570248294563699411813075063752","27466397869513778775642578755600593177210555959790368566841174267131363533221"],["27135915645839706056608289318865793843382078422611285304998468406140872500898","24047141628543375674985822748137134173750906974086812988233622774880700219566"],["7903795638920026955497766661322052127864579842578548432557624116621410520130","17586797922507087414872734432813708537598569950279156089694135316037561161852"],["8891564165754237797107310846332591638355634090128800902596151295751406964222","13674477159425796236849259909618564743949295550675592738188873853366582597137"],["18094162712290235638112629281580748461316154626070597571610514564249636201620","23142541596709184900823042024826668930285190768532765892313315972814058729410"],["6026750419937545660463862455412942949808975106512957680132811004380099929865","8164357674584307028472987037174226995508138999303313473375585415876924031621"],["17861627390967787560658430488524691794391683600090884118519446389204270210013","20995951617870190468612399983961990971772802152733910152252076208669866569743"],["16573443142911672065962710020516702224712863830928771345945436500332640438025","5451099401585956255258765653171286773715597306374461487434309549939111744721"],["3803930506593172577050497895844682609138028619634887027809596787010118971452","14186916548453138875836546166008316218498804066609703923420222082595550845700"],["3861868423460886714044401503856858896061854893257367890275720562485572882310","27066762394701228121227388925033780956348058998058184763990439840094189267082"],["20566756230759903796882805885213808523169714948451884636935188277118888034018","28164320215240497152172904773231074146948365403855162823686996841691759752767"],["22384247455796753885072687378376036728617945668718471462408237265598688723955","27371780129669164730175373284455632283456489093645650906754150038998567011389"],["11923114920167244415106624750560044437418195200433191742597895547097119331852","10475588957100584110061805488831549530387080672210399354198513179923365529986"],["28125070216962992318652563465817775798368436090202708046956654107336722787756","5317201875846846855387822526113941659095256048880137049620541364376558572050"],["22177736166201368388616191590175327474044278053157042941125259479807224428216","8530835674890316200883902438295739031865200295711893973321976556689699417352"],["28562847473485427468763481474920869655051320706664718932721028760497561343968","25178449052375184855674186048282791585263075999923004581299419236418914116760"],["205745018049612084138644351532048706455910890791240502882953755406807640869","12035956774673816276985393548603762289230590582630003933993007431577576587590"],["20039028098248527384337768957361021712307582093196544183389967574432572283640","20567343038150825448798017716801328509705994891323436769414953238716297479622"],["16545067898511246818485329661860167582306237483107126728512322572859715612343","7187965338811449314022838649254672026490993224613409991933525643136998695015"],["24662302853473747281693740967914450386570088004354333221004030757222244567254","19854035083214890683170756449386088710908194534704791951489905498611910624160"],["6439048931808513497728650849092336860247906185201652111987713264710215377908","18524861396119145819416612071568735983790730942972379713347805594653731079606"],["25292495979661461004721031620234093640024618201370196419010410507621401086883","5026911503306612540479271885229869929096151423926954283705841238278002162647"],["20880446317942914913565562763850132656387379751428913397778138555065873652997","5166336426423207207841286772756287910089067204096273231926837286395062557498"],["17918968269148193517078179878307353168193744560180906104706750604425680496167","20776815687717314220172292768343218823693340727170397941007641332647163693528"],["5132524258648411419025454522141733956783210846281771914426332463914285667621","23054935457544264307791337242108701920221768599249034108610970354210453223253"],["23321580206143927920690691808658287017791694927592865228898827816531732526654","14238467799007950276605937360212144482955853729984468706432062184352624581423"],["15749766338012915281871939748630285076163954284029207575411413080547256680932","22027298075834171856585982215579273914186757949097468846222341287490622063521"],["4459880226765768219574595277556469919018724502155234359041656363852596097886","4696700173660446152950991842672955124516450576442235702880800650998301604038"],["17396840168759780413083346734035048597213430804731720623833286417704520883056","2164459654411626869483332623128371226351930761747665133279313203229769625810"],["3805853246549307379434679701994718013476057417308834033725933559611228440835","21991656243250186341262580286643722157949629314408172006245935013522534514000"],["16150517922976763021506928921928048889085643840405962759624563189978885426188","4461822829897320856057519069878437088063486816214067266874226793373102352232"],["4285519460046361686156336514979311972477590215506349077004862777625324337687","11463654788180437808605276283364028953395175795706629620420975644851896391746"],["11559490567399184404427336312059046292798215911309263019560328525212479435970","28330499385672808029647531611705792306538169698426847275184094021618880096763"],["26807303914484850638850434824183134712959316388520710194759211332695087191088","24678122579395386854339733375457882469864694557437063560776326342850089320002"],["2212425547971827105432230653598027359607150472287190129826936701448382618570","21786289728581420341423249506644840235500228762537704838320148336620264441444"],["4606879900708856183168727867577999059535613178559138266525375052657482651115","23321384738776547325446347604915433378864637343822667611344828021963138532680"],["19735219019236862819542954239010468907743957666007004984404780497156294299173","8970244851680581229539081606009678518593636377775964452106197825413741591508"],["8005026100169006792164051841162375755929398246845402548906179031223327063658","24226816732884270512274471274315602373427441994454806914139766330031386589003"],["3920363845462047545776521943578781328189335016053344394909201698220375522154","16619822317153450790193452795163563356378282192051501097578721453267368316960"],["18135826187815599424116167764155702414312404043018256988432892642694118955059","10966213684670110284189123985114137882195640361849885063276688618429090798354"],["15806526726135629707413062814080008777442338447342414209002569060334747327136","1122381609993558356812578829758177993308712241854274323432951619471562098235"],["22739373140808772058893371439359027354784411631037977911401131224863126828015","11922553031052627693731489401056671760184793771710625747970341114428313012207"],["26903545766854074269785289877476861130406706360040912421059953108485154013858","26328929835469431316054907318216684624225253724425132049763711989287473152676"],["26115714219317374214915041514896731796968253509315088714621953610116160843669","19554091777409623684133256124948171277927249855989335043204438454845662382225"],["11237683584910943678189964927915768940389446422669349359964768427131524440435","26291599314607154660463289758486773485601683405885072690550207808903032684670"],["11507328940820467632869579655069353620810004933817163275500358289960231302326","24753897138243642700940497117185936482106787545407400244872712540941588321254"],["9225434702123809065522568447739173960046620979884079388979812186938878748416","21008628806735028654550242498645264766079233274555331829349107366847637579622"],["28806563868524878475039737822418287462049756731334603397379886080198253549610","1964053139955077125430038560122375804688906814323555316784205813332731065112"],["880186637986514291632455130149575617895206976636933036871682089776104479287","10695994402083560337028061757314994333835395758615364824508762420601664632741"],["7997472881326563821752815542173397896197628192543030299014100884174354579391","14470333685723510332585624948006885861371263437170648981658389338808722252673"],["5730617962866776240817663928781817111544096088316506018215740990289646055762","11228225584303314744729453907669991957657873414010050302738543629818169663337"],["24884243369667559975095668258525723764412786554374431271872075853982789913791","16939611689404674759069650765516602061534016667500135062398695992886004372722"],["19559703462493385627040374145350620243836352333416748192789540634803083869049","27658248858010696922458137683983617841871724290818580443156914639799676542262"],["14198593109889872283765122665387519525552653482897894125915228572541172060887","2419410531442328401653952121998188662086967361328111619815684817251948402565"],["10892263247191766688167465749801858282417301264971609427143657907718151952711","6143854827467267290107022147583419628841041987004040832734735184817097396457"],["5351732113499871449489056487903470604999692659676924245078599769285880397027","15348217418116691639184856710687554186118041124657143369690131559622708619295"],["762490028037969039550197207396268822283405945377763667004494356223193484093","22327678517060901128436559357318602769447209272459582781638369809959392304495"],["18336093015227953519010590168931117799068116262109216168616359777684326450111","6998394339339303992019511991896423180040356669926571211586704893681256262991"],["13095425139315820072306461360159675115012489503654650566615414172326922567178","28103435314156345167044789613431246247041894264825436691314971707860933173601"],["23993087001320032319534303880016173181896453808730623929558007163576771263426","1163703547106287753251961385088421940586463015073690618471587075201236752766"],["18858660718782447058906171431185713032108836369326968728806710514703765296102","22414187026843304132791872328132301871329008269244113729367274815511104475393"],["19454325248295950795637973006785136058746031542646077458996356703234783498419","7563550064373568973455184505430510243633179616885295160610004583927286539864"],["10032657518797083436445282359871447820906677322523654513850410037333684886886","2895755252741684023480132075489180349848394107975329939898168489446557890340"],["19409856938161833197831029541672861975906312111693714650187483586208676627913","9943099647213040774365645277825859115393920135250641403344651977177412584851"],["20177328593449875782894227258166948259560064193454386064897105270929945731024","5020224081729743931293032048395517134752199184925304866298400396422770316459"],["1072474105046358164883350746433033002136570115729166730777349515008892085702","11615448235507864387364741382280855944569690899752505569976535623790482924784"],["27827761782598165432250571908672047073051600505610316265975370145189853791280","16699209363049612971901719515204679848595653075600204043816373835315265211520"],["6415095543013680427572827190255567453875261657787449625690540930206936647375","22157418746992272188196564990196578954565638657420128763037256625821263085482"],["14517655308873628323949108928262559973299882649729264631345192012869937685954","9924167753829834540927943356547087457999951743897230500182113535989862944799"],["18177244786428482463599263982206534805109157314863118786520075154271762511532","10144884671211701669118444494564752457442531647919823350088802837999507385988"],["18266346583767720379256418590003899171336921819225468034883350823783352675298","2985743187094994886403281436589864613823815775390383262879159119501316350396"],["24649439346323220835034566790708976539726198854625136792567259678771719173732","16800776768513083688124515926554051139626456365800279554359944705459462542666"],["7995218647219774677494751504083849894871348448637936903370363712323951869627","6579747179643527163001555381676176842946529099693337719274503869646355551701"],["12372112497524749231111465443287461418739971179851984317650152979866406047254","3128231821209666605993295206959628691924794283371999924426361264873259279999"],["24634728225722630824286050973388338590691646109198845856716571917024075639805","25849937342149118642828594123100773318108215428649171591857458641311102705683"],["22990302044058983796392966515630522948363834339418036972179172128708216082194","17153758217733202065436146632408364937695560613178985889681804884624431943861"],["11879869344676884481721722087869359293320976522174979947034565057970136593179","23708054287561379705462797568171937372641547605554420344180708044222947948605"],["5586942637057184373170725674214703726303394499393485653581050869878098134575","4535856679988163228038227747831304437158771093725899320092621754627399565668"],["1316394049569355819317148777181566641753352574328016499201224358549046174095","26230128111414962974204285493133248484553086935024728966153994704427904717202"],["17526336733836926529091578349575636393018671074383639503914238666827081227642","25262350323845693052751714150976374370116124773027730412950542874561683182650"],["15173263855471241473092910681078566952760990421368204648111210702129823601619","16611320837255946260287136792697567067427247896129340335994727301012732239498"],["6441354990658574624045188463900587261106482305955106293148073612394990685035","7773236575603944009691638520219061826564021650867097517379140905598318652318"],["26816849515129929933055858968781918977204844155278731431058715019367377372712","24842184548605731741495498931499171490263370170275092062680031257181980670752"],["18931578102979455245863301556025383765794540224600189929724725563205808436746","26868673324661537893804203650611556315027791341861265769614442430918676329014"],["19579879075731448815743953309805560332174977337976142751647252392853314411071","11452664793777063744931889045737520848653028602797535690984098447162965443400"],["6068115592155289181397496745158644607352101604012109867166867837578554167530","19221573587529889285867039286015944180100712043763555168038021241719524216917"],["14676884858806191032060757266600455093844763274065579405862283606109814246914","8521782397075538614169574272827835835399212546941977865499464099958821642506"],["357352662677499975488989321807091830061930100979523203121914984104339360574","12872986436523569477746846490525134535230329288238751913551811169805702892985"],["24104278052334963236866107884877514244039108787022727501858422744924100877538","7532654829313927832482317524191153173939122684479878972057224446976531222335"],["23140101498179757706820012077563523803735971218660713755218843070619612368527","17863661805431843808036071201774230055047381669808775248698382763169701487756"],["13501749625531501935187637965808698991853272347387052599699278276985185007933","18992200126150475097723735209372102834239885201333196025409237059330299039171"],["9012944674484107129043172684681462253523559357639020203114176624625727008052","6197312801550108883198338695297529643867137048799946227270850634591429754570"],["10078290481683158524133076993635506851337850369397270137548535091760335843241","16000150600905150034549272600108161093711344416238651518019574331667259657631"],["20876637877986806060772832326381100753304544154380935837742758623565425050792","25644306533929491457465274896954375083800214132635653501372549347075743332467"],["130146870547754943708309622776303491821789478217775639100073156970825850398","14856044752702392122273517867547747636355835054144888998313571135204841915203"],["9329189137488618503294724163456129530769271159645484935099226191750221978633","23960688880156813913939804331548224315868620890614013897382396744025452310267"],["20821823308868733570547712875068779091351545427381635216653712663818938333829","4056889054653210722767143221892170952151891391255187051965549696357311748538"],["10557039233736453642680023209941763986314751969321889235937817893010000788685","7580614942159733929281790529608243271450327651792274151028634879276852283478"],["12391803329034936260864151595990322796664683167876353516776733499803119181877","20421754423729861016116288241759678905492653911286049402394416248365925883207"],["1569742236977854808477123808356618278010542682440922605238528952299998904620","2723287794951144110572743126395018322582374114806270008978338721224575191000"],["15644100570916264369760284429865478327224346454239793296521530362113503765443","6508256218354695809276009189213849639480848360795723315501639728863201531716"],["16604933816186232922147187733071074202347865061099605933936204619843957869914","23510129963511915146127324278961979773804678265523990430074589951773419551288"],["18166130849309873101712286069214856292377036155197776688735049242477254264486","28663280527604448692838166596873171490961668551426442046335325037538909208312"],["27375257774685627946027213863010920404930710213011977683751392334984431082336","19814246014259139430392955278626253269319179843170464412182962876157877848919"],["4184452252955705559875571291968809634951718610126298939411581044278907867463","25053213672745553098087549171796771594674121613473881785158681859348121514795"],["21071802671804554101159857849390087373684185663236406911146725340570039776547","3553425627782693785590043334443052617415380672773230012880394120753483229047"],["25360009586694053814361478933283241285700864582236794647949630355844107911233","20515054135931237928992263714375677525899354776572042200326158635125315583303"],["24982007537085875609151007545930596289215823317486256629890229333262485541865","865439573836521224473221063507161434990675259180545326877539771489974307039"],["5228690766614522655959765975664575986160262866148097329301565293196298761352","3203937963323397857622025304246648526045423839429264621037306369310555372104"],["5491703329468168942706601883828532115528622806799580076409376236153506813520","16375961670616616618295826278523534429328487693825604890467481846710295058503"],["1707686960759720554912093641933457413794229028916146128258017537833807437066","6283284482172833795501248273224295122963269163020085171276418037155875695812"],["20207788748659902819733301626555521386829569216262104601950059686463624928928","17867739374147532687089532977365300236136783066712390539662038416344710561151"],["8349293055281543287283395359717791986521511239950563579975873381430554792966","27015479762927537933290864440247982440933097839553830026499084160967423354708"],["13154894417783186902737703925999282798369091545836917486404241628993219227039","13277494856454830129501674525244931743808868600088139378867828722947896856470"],["3670843231493694511510097603925986599023771278206681947626768293424573558280","28483978673460880233958049335476458297343145250085300540011803790047636548280"],["18524634712586300189849571982318193423651741850738813500208256465388964900195","4611667255984230027134250912960218085338588602269191721341430850568498505863"],["3838278876467495014113769781780345287215852442944285609109330205468292571030","19471226053782461782205115330454795728588422597252414684425465868255132935441"],["11182010268173973680439255577570424170055909524362734298741211936492585483443","19977932921054334226152950364312628917190302967990090870301859398819222397155"],["1805552828483743646484434761610185634601850529927145052778319165303811294288","24838119731410437605555033965093096837855814288739101488177789172640768759159"],["4066461634300298907549094962920900619225211314112327637177909647875234055270","2928691479420151169794434992370033048928879776708662282441328161661518673698"],["6274835704889899784296225523657757302147831292104056521471605873666179855274","6381863570652191609790172773621589623328567073515613496660652610709908485049"],["6366902730020880587488148148175732538463588856997721523986058309700393815147","4505081820594584116358395380155536229573231187971402143155682793278513041227"],["1436245981507578965879333641448078572769450017852725654922847944559169619582","27458035655014844243177865887758772256521776080155465494130511308664026267717"],["23983246245128755476821329574623719444140687355134371562343415977488434716634","3729989661987508340692966593198628073546830376467216232509594921373113245991"],["5878983850628445016553084887627405531248540320298705307432852599160239429052","26939667348327410635333370110736515106680337934179428682539705032294461829125"],["14475940998727715230270160555748073871050963555657047030872107398009117597896","1136496239317729978470397131972930772972972989878231936876164031741105116485"],["15677975648989180511410627845359449894246005848706472238123290949429870046231","10541492074665612213763632548867167745780303868291098595050842747020466046537"],["2485200845270607375289774382390121224294253840293676733113721015675567249711","4883284979609529709886544647596521465505300733787616939148434190427727630056"],["28835001469901598233068083978952888179606493258133810272052979484036319108572","924357209495127947774363875070602354586265994203805030922666561846946546731"],["190279099223980945991456478145747501261852336995537229265298622176066846163","7721532357927031837611408967631171014556574310194371161756138023997983742004"],["19708285980871344601883521330411097427010155812402981464297469576009605949996","12713125610518461918476124213916452033239013998571181572032355729603088280178"],["272298861751639490895857310206345880958581497785883041770936281224334246152","25206439890038439454358578268096675268838762988933208595475517045781260111047"],["3814930273974200890103095079840512475649104632812436662330092527722637415182","9592383511722127485315641554102329699150925422916566617421852700903119410927"],["8759251935998665696182234776234629092994408130937505962243843649837594464706","21386042145155780496211519413946057950241786290537052782621343424778881189054"],["3690887091473198609418299682809630959276837373912976483661701255289408385975","13681738348059972574828669893642867232643310632313939460739337164626326566192"],["466821715099514868370532352000408245800343664401254344378463558041037044241","2650985511881341307479264147331497275182384423236740272189915875082118918586"],["19111305070766870805009914868718602113613474847978452275854803450213283259083","10300622952985209525940505564605234175929471437733633709107137196358093747975"],["24716920685508989368833086030944200734514471353061435733606393409812840001230","20584253984907852727793971826490670461969635136724051993054230570471686754362"],["444722573582961506820844842956938899852069354609529415177087733252887857227","19589542433562992953172146350696194422228342382366973826018762196292124254467"],["24677403480493464720905013788699181089608794569424663939665869552287647861077","16989363697212438726338125501755458949876506746405432932472762269379294272090"],["1076425274115987300009850700643147973398713128199863355665099018791628212427","13872253977177936587218135077279566513307870913962995711079895628997192786412"],["23975061502196595333283602029156611292663162995830075787579430490213498044610","28527864479325800177306927063781833972835722688762333431152650612892882332416"],["23389368836628311450023575875109702259669943561589088054157660559147582869835","6753882284917917171998315393543136267417204174156345664066944440138139359508"],["2977393541867533216968293983225287517454634379163764168264743619304751649678","25960127332762664532882933037665241050774695389080919819962634275835831020689"],["11731353044036010318306836274057054512683817878528249241136549362364500198539","16566265085741714672009014497938674411379255210081689887111263732948083908432"],["12355252437659424555535771938399901774171465572617273107215264849075951241220","22660167137168927563895194436552583204734907731433524276652536978901095396763"],["22125693496116847822308521090816838806116170016448492812009194135040232706797","945376867084011491331514222927092911737763506613843102095232194743734380865"],["25428129484574899014414816890590231583266243950920254133531353814394257419084","9785389835086416769483866131835604324496397346300873069718653891919762119389"],["27735020696496343589560239772580777297717222746108936875994084301987584084303","2852199090327076240190037412496247939660995729936692570956237223075682855824"],["28283710953828595306025113993909108764702746994893651603298451388218852597622","20423167642962318421347227292056399731040338757953086534115435090864650752427"],["19191716443791604592089206107075742094504402115556518440306298087900889929355","2783012920738748153612440197332419491126847487369123717278410969990859866212"],["8441290587401265025812800500715279789960507859602398318064718815823994784597","13697939013650409696688960646221934399012556061196614139824873355960062166318"],["25111204838485925620687065714007299023434037206018984292210036402953867451620","6254368879434520673407810142858363789169343846012342228405113881397821732262"],["27621856525617934087162922609432172453489490536107707712882575000049525172813","11457649525679307197591777476450875428108041412517584188540462296423461199305"],["696113351088075564580507753585990379962808456950286183813162627277134475500","15559489840157595911821949057985138951278654336637745916093511620430643340126"],["16429317311884216703134897833034673595202065333924315041872689288614794983005","20145018331180285125949849533951579811948655215130811993092115944385296126926"],["22173916831449134137512048028858819565448230144514048573963802084504887766204","19488798301789887491142685827953291222032122045556770586125517730343860545890"],["13643860852776886179512556027806135551200088322188966580668957013912971457597","22985057197008432809346864393193627327924228997194913296445744570059388579056"],["17108608264062360669051047501531484454387856771792142269736299610897563304600","790950386624657865985778953699165237835043012235183424694473139884191131846"],["2087562215122844377825867365731775363799587002511158574209261895707861160530","25041868967203954320505085285369710479739755124166757375393925340476752452131"],["12700650612331809809571575112309765242866537973680781094073009612902848461779","26840846371823941790920838026499059413529542007340391427932036861601476140688"],["18957306125360329283501700670061196553880363097452329445415643282403154480551","9595117048180496226308589265649465027635480945678983143939649684119140722173"],["24587675467892888264983296124274849909363117240431401252935781968457142534415","19244861335911876300787534791374211806556169200164498733601430010947903290235"],["2527179548302627646826269976855540979142468660391805651702683680629163571870","2717681687131491733734685253545682027863555508492735122074361079801291062816"],["1611586586688353747503063563724680802007724446809278161150614929106562926446","27112243202608219745514562445745265229702844051126235733698401427230670785495"],["8905317531340804605410971171982569335035174796753840687539184101661762934519","4542333697188131673658993211348623265536927503345622860379815537361178830393"],["3554818120841457371465035362403366761292541660864208561039007953088420128367","8057072457963803962469825420208612636278065141193645184624872153368218833449"],["27991915636796912088934653265860120163739064464381259778310543487635525195504","10241967407828314269231371885871682924081166368455337471948338151284462796275"],["22895749399688218071546662868725037691085446368225987497496624854054221572645","8953045327520541917534906227238707477933196751628989732438361196276271149380"],["9696450711447459127875098662832822673414613619788511376511273847851256786700","22312724073706361010158459070960495688385628406059285211528476141699938859944"],["9434412234427345844732136307670497820626159723634886666134874262268436424736","6689763482410878323936013972529621255869513469055867668351777109581281806158"],["25395313380054713914786464322996767626690318743573379985918654374950870325597","2076023136523627620330496664965999498010715598036449950311997089530542277072"],["21554612051365142196203583257133613025477373072447563833061251930924737285426","14988537549517617396618569346244714249523158786684707830415152630497557234825"],["12352000883865423678326404911230818775555374705562789595074859745251500831183","9287539064205737368437912020642067874360314847834254566022304409344887414865"],["27697557593988816069848336303757542624374174534897226939630190936692915077480","444973882269636770653300893796393455012079803694671613541655907822504768803"],["346348382560855759716102624085375616606129900713122750155712135496713083174","6436364874677286229674339232803701125038996196394257228932290416870501938140"],["25081658030246060904933738339582811230047448692997475692682859729251830694097","22794106089999446689040369940902694798040391103615720661632174438234117773699"],["8775311195387281385422489451738440602951606252202411341768762196385290119485","22705504497634726177459472086814801835257845308147287366003326172172160525579"],["4772708949653361191492857028644200505652149396512844792953020782219282351379","22952783321209563666343228793992927761882950648436185194385935665761797857706"],["10734317054969525492546139373103264886633297105050315347738656764495150035436","25467625661581833279190325814488348277024421944303692663358344602014978228704"],["8254817289140550349862844604376389025975717180176329299527939624026672279255","22318801455888761552433207316839488144497960135905960455300835598836262335921"],["9149659608990050847728253002212763661347566111599240724588686920811830640925","27507401136543505379063950098230791459632526643952754261602892707697404578648"],["1114392922503272511101067608438093690760075362513757304381380460815077974920","27400205078517572525306990721756961040347811640108602346054196195324106385473"],["18631686676051362483316490012831357966633522735413691524673476954793477451023","27795553066572480879091925039617019868743372595484139966924730042340381109587"],["18327312640739621919872926930108483203286280119619151643770035735317299080089","22835778290294253534955960067559480608269552075452413990028399868077126963244"],["12634761999733107213805494314801032837437091826234206995170389220510244872192","8905573515038128063545361559111598091037623053860419763927514722993663041366"],["9409964313645698144154710939800303783257014685234405274473815686895720328056","17612667314954305559286478232444072254291138670794595747804211773712303144840"],["25496714414702718829885325448538402338676067266979893496839106104790651943082","28400250512135914575974558965987041037660861277993855208580570906149666609576"],["22072667169723485061294006898415759447087689172624943267756513833487181851861","15795059903654798200872268313462705610944412792674876800347590066015263361518"],["16355541889095653799961827752777515314082771860448610139360439215930308084589","4187514999284850507929037740420338462217473880420013272247508820176961818561"],["514976517519978026880178374978069052641677587759620699544323572386420790420","22821936563875831345585866449881772108622318260047946639408436419888664165814"],["5009639876991133624104104397737900375931829474061013872292502610331885328102","5251958613963717390366625018226346114622357940945218423013955421197881659514"],["6872319126062296213521990410392846383997234812534107201165849953631965988056","16513068309556461029913433414574992708441084062706257166273783726046601562527"],["2765223337464985270114058477068874191057851406439943290806224076116003161531","23373491325100835061112373256721819457005588760784920511565987050529384066222"],["18677945256420051047385169270640748108614693845947630931565053541331758022266","21345318241368705352045461822290711222459212977773506745228642276817502857960"],["12746934283447948929912186206511581549177850964740796711686417422272984108310","18649968996276917104908174433218841829595079607150927187058452841429903011496"],["8652201623094246492715891107704267191028667339512159277432024343739279887615","23330105860469822916844686486369800233746625781593625247601559626140700610353"],["28779443559093129280415458663731540507843952174679894734985527808775994625608","14963922371100842075025038679337641345221354782103656206928700885179313796522"],["17978887772743576123873315575213708830944056052347343287583173074375911134075","21214797723345978568733894569863293493725467383733257847400309139438945859641"],["678215110681238379641215036574790280380353098771372785770599419494966291459","24665084130669296530946792598539535450009253725003651490938473932358706622775"],["11122687669307183806593362289670879307639636373670079308493195494287153639043","22084597699931179135560776777440556206638223837668809543626767913269741826666"],["17595479758598434763272468205513963530614315485036304883411668957920044098229","24992234406088778248011483760900094476669186523208868601491140854198247561656"],["3846884287388538538543925643138637933108641769260209829587530344324154053925","2569220410889795672399025395567605874087147852261592501537236943079292199778"],["27686976907938142691944799533639971693360208798035790492694685614673673499187","12454447263469077132612439225761320034130863212506860077383088794818219048478"],["16583658176796894807966336631911408656714319930048477382987680797018912179612","508097550449512745745612771068365324844700646568064618301004439606796767341"],["10822655229060872062592657810699689519017844381118289031372522807630595013381","11569665202974009222539444543494888233904400733430464144878057475277336941379"],["6288160490247489321930447726459557664698257074725047600066922649869187806787","24457211399460178941831715864181443579855759227676986069640461767373953348972"],["10091369098591151784095422377621281145597724763051710346828782825009289798511","6350096831112919918231412799493431328739204206088907137624147386766845314375"],["9625885585272136897263858923962382748421449318146952025981169734832444452624","12646983652284664207451630655491425693880625716358985676935901934405096727871"],["21652646431901842141910477526804069062185350247531186846814614404535697684199","27903579820457929501577369562924205171373526920829291058265967377156846094023"],["25354007922145994262347613797145003100809897254120517906483283946331803407266","1096450039393065901237949305443294884582123572152617547104322855633291695576"],["21130937020882799899863198751518341681370376909695773355081400746031647651925","2640226792088214055112888007003899221263667929350489560448489234793676776324"],["3269365154077838778545075363616581626302762068300693816725186096415352117621","3939282276536378768108614002502681341840805582598901382367062761478347301104"],["9544155931649531710528905501665585629131272453330393611503176452805089917878","17952008056423479757853003967285946087169815310397521215924874035975768036969"],["28413426421383682096108279680424898639019311192678297083621865400253445788192","22011609001956565790916708552032132414389725965359290807469397687538460974550"],["24572124477992690832427971830790432224026131191378035571106244447071904306987","26500572457455312702728259683211020722569970965199405113262612626259563629818"],["12991552123531964303407694432775462068619819136348576147636198227640700344261","225906564001242942644955792435516933638648444302166250245260876111886093378"],["5371209490856128365452106274062025099829485389293390251591538854283895551982","26405081405812749769693044628565013257564529543151404424950740202943170637705"],["14565693285473525974917524933339874561933207771428328397468173367651766839996","14810374762379445813295259850901160505973219468230215434307360396508681088357"],["24023827973891938237846666910138510208902770975969136036918151042711733428298","8648587748193267583184396362846833645594081950448493865203744883709548879424"],["5169588305538887787283996698109446294749662828593590345152103000203003980549","8727281097122038465343061293311448673611450066402548240299146555329003652943"],["3216177642489175556367462551895022009604798224015178076187242274719035531045","22439285453880214734074121756838559167318103680130322303217171026083684260098"],["18753918368098334335172067836086141434158425706700334706563538612583656447737","28342277008838118432560992126661381158349758161815176829988765930228443316316"],["5089233371982986798849158630074688730841583144177079808742441842556611664292","15743175482223857740872221487513595829287420863529259751181843913403930758129"],["6659719158522283046131675274799953349514361111020385251097417710078456694719","11293251985749947266879878283090878123820214893997751725104237560817050481687"],["3619081613977357776853472636772341622266230453938791048487163490253488055516","20757488070757346434134726945563256412164700867673918568527598185217465147155"],["5591423021230044972063827674217169083976382467142729136225143206036890625879","18971075040040388452369477349791815312685508469933831630785956554303441968926"],["9144263186887031167790769239112368974711268878349904838343836451493557426026","22914375584360733402660513534447916508600036256290107572135518505649196512839"],["15248795510872044959350995882379008788911629870217499272249738168050029875659","24292440034559210809878742998340323885472425036791841335671083635108402391496"],["14024249176223358014918103858364955467590817331682996273997884618143438904556","6832582761713801516913480486328962682961292559458993774974006307078289430412"],["26323281664617085003548950124660439469912163197833765453663417424286862758211","22733545540433428877072542440605275468039439327589666584028867714415628688109"],["9037093073842200027837890886724427472179385107955152600696783027410829962285","25953735814595416558283262663649586173653552642885542000793644757886717309931"],["27138314725290229165855310787981314007638307330362327838672725571798107220943","14478597722923675520058998023312849805105914770006238131049062924830966427451"],["11360131637587302853655347228337315453614782786613881607870030884426703863212","26044022598992202754922125362191431600279238416654925602356132345087729042058"],["16144181033726850527865275935672874984382341095492595332343822540577990822754","27681885997758385980576569859260325309445267833451013252222238649399069946156"],["20664350467410273714180613366656877979258797164284833157890440024908884953694","14073434135739208269366658660659580796345297362696626589406476523082167211877"],["28024938515381966645432847391908472838449422340413918930298494434590334909121","5367003032445414135212008712047817494894126447629621510988739309331375118176"],["18955386892070805530498739830189984196213558808589922875040133870723121361703","25099262746812480673048458464872280889593488033673096725311761255581696540299"],["21700448148637542543076083536358865729242498802351553618726113312656428707173","19463102709074417062628012072048267281599524058820594633168712634349735316928"],["20727922962490931913830182298578487042328338117998549429954001657156120916785","17706063400692848433160981690061972014717578714963485453498324181570965110275"],["18209642216645355853945092278992051700463217566706129397864653024259738347418","1713361896250571421049238425032346064375782315234222296855375862046177708442"],["19782181048784171579775855380954862183560899198599729076730061430658885068200","22659282541100903696552046408208040185025195601982478840798719123950946051681"],["5024426687997544191365658296014762082416185609307780448353141253905741634525","3415496880243212741265345183438897526683095272498223647660875378944422140027"],["26216756485224343540922729036587831989992386667716829124151750825529398125742","9606937917502268621325064920586545152547789974682596689852118294256606535402"],["15345093026446660494124905891655809195762562270314544999246732679985357978046","20296579027394760179214170107757008934286668588578643841477839520436695096542"],["9636062346380517997437018036185223811029222882900211856712892938618656413063","18395540846156132491604461899576048139909548939420519028978517202987359496718"],["7444171501613989009201268926445875092894321604379210296723976470121537671523","7725232156879803569802449840735034192203919165796589098127975812592574810676"],["1955050236714651982278892660185695877811199716239539523083078056117850036151","11281824492329004907985992791060919762646676885081655216862940037825423046714"],["11650499852126801333569465453415323659288079916226918821996555187107256737853","10637908737245235265386642224607317294112966408736438618188623633476558573552"],["7209747261842798808909644478403942165329295914315242603140388559044768311059","17592286531076412648958401747505022166925259946790415396723698199690055027424"],["5280935616833177372994380378643608756779588216769910507380800454506883926587","17186811274213559831829396160495598774679140192230612553933597881704801326470"],["12490109789502213134028120250658202699234205619773399937553017791494353222104","26517571317498262482003809114994438931754238860728565693057411292961458251992"],["28647249264331927949499169167091333209634587134805651832398918758432119488636","15114293835497284934919151288371723684462538489386378178008099115279618667814"],["11243758108570560274762107136132021874077410998957881515142329838835308739257","25891888155448494869309805584585700503194898776340107428945502752290819852427"],["10721758968393489210088496292723151033099273747911002201720132560776068367328","19161704732326201547315387313795380510483014829786961998014431638831990087023"],["21406862109845909949157093382537026792006028157548322840108584871541710864277","1320262047193121663886670761072945697924521564741092147623425761524443825668"],["9546513936808731627743542418186375866006582480086144692144826249438340352587","27197982078288045599498203841209125925931143918388207420456987974545792003794"],["1866721410485779466369258585986478318292433672613722536258758869410933854716","23962275859900323994539663994848628175678464421309422545325915172068289938351"],["15997704033714650733871527523554676405174261198616161414634738637327457219930","28560408208960643460588022834495831610047910001628459949589450344499095190302"],["6489540727367083774202804299944147130163129647696167131966732608744579534991","22299218357939978193299510262576373491890158225020224336638216427065136869942"],["26139711774689880197176275229669333424479375968222054181825731254954323029585","27618158670889648566236065713311403052703536532819526428389226989182763166590"],["28020032875170657215702973270158800521172180013835766102694000170393596211388","9170648696800364757517615685747942030719755361887861095374452869654828667479"],["8558285194212354688038625208344008306885729093544988228400627518681531367570","12241039963886012367722889011622395423797614276907287392596012442997547977112"],["28596641197797128890522618899836378432631953183858672798820522985411338242579","7215669009316618828740054105884849815822362605380937695250710275972775383962"],["5287567488102140723543207502645476901720927111156571981620540888889822596817","6132492605686062803960306970584686793020113450671029941773174953117916419845"],["24164861250197644544097534335854524615370587387479911538248665363954558079702","4320047104785552580058593665022252726371535399917883445492460421579426970506"],["11189659618847049913670458423526022199876038128265975231568441218140465991347","16167733433810602841032628725901572737326867225874220159554181374596998437571"],["2171592420939500855131797200514684257106344768382770997277251492865494320265","10346418650546245671606638113339795398997927976874761189789845267145045168868"],["20825465716920987097392079506395121422089724297602553775309348141245368620080","2603203366974030195182643873972073131186450575285262044698664861478951704381"],["3097133677909446317298996219403018153788973826832184714044694454915273467209","27716947754456806095296051059997841245983361609818595707471101431882883723331"],["20028997050157506083193956800632565811266404676519362799626172125103123480730","25993094933418366808733402556119127706177933526085422937605960341665388738550"],["1343079891463734289870321400446631394487734575929559374824140508734878689266","26892782226725868408634574644404329637983565479891350245275700183345155386609"],["28018459028727396441239587510747440469768569157589785371800150279230178479629","11209682445962678135809621013387345034085776772712491014382814103369904080719"],["1062998757403609085240531957165722806395929637530510688311350897966626340180","8574793922792355962439097624481125174733499508084844074029471559103657352838"],["26494670819701157688048490080424337349519348925674571165691299515046854581133","9305136592171073502578088138839436093607444036288981470889416959226032643423"],["17609208857136850984458088120528181492053246931210265331367997769164111024914","7011969793613407502846331156530514501075283211216937115946172418758623420975"],["19999757029050201006109359409322033588321933422282350557751230775257263977348","7433453426474241868107894834256385677587939319908955743733575997659895546675"],["21201505154171313656245674598634438825663753572899238542584197260846415915919","25234138734250491495825583754080259165675858455319726755509078288589627300730"],["8493379343891652806095219243834191633261389336978697104095429892830800311570","27154774436797613939745625650962554225501986695272684378612274879214983585350"],["2788273820974189864404579731319984656625355788915133151543235543475915689976","18780817698095062687302913068974015238479691729721093688898893348139948594099"],["16761347389099583798877207218005818497039622557049789663891271003021599210348","19380424866374252043417751522474437320938956664739783856057858504561986514135"],["16337814949205540935325327081469129902884433949721576982360684256030773733673","14082937102290433496869717856704738983602065896408514143485989268935765757387"],["16984820976640160952540662799046155187808465467911666526174434577686607782665","16291000135276320451230992201569283092353888055625599845072052213766067688234"],["5767781391390988215559768772929174095367467035675762345465242467073764154105","3693427568189285118538953321129379982814209574490794461947641006668089784734"],["28429321511265353250324626562320545227939864442334112673698888386358974088702","28481924210005887395096049211151217206048974250343435401956289723045888130785"],["13526671386601315388596843931473213443096703963587765215889928778832309041905","12615717951655691739943434624464453168016712947821372539374617473862866039037"],["8030787367663441270598253818503753679426149206150554683091201589898758297405","1486090541601504616185115126021737306507560169033528102441881596697088245746"],["15259744369631682934487368158918568707234563855637072410287015317735648331742","8300493752730674129907778656500003399700531152810263455516712549691089250542"],["12678898787780196393061571125166406579717106974296581495637255602597580758813","8591726642130809862064569041508760851569082648445706352172446467982094071464"],["1408853335066878573004644313913296206909382205549032360991383194877059866867","10077628280594154179802536432767356496515583180777463760694821916390689010077"],["17766016809459098685218832205057898214602502638646486459088156121701376882191","28333517426588116515979539084526559357453400355435710028932746963256316227138"],["8706467094612925135306052089970462244861567144474125841911428092386900923107","20330909112716591514598580130146668850597854775732258752450936514534878130546"],["21659472523065374290228782454556013948844679517566283346803699223591421874517","4827516782458100128893033648951608710669219996316850957564755401879413937455"],["24839217200853631514447713627076454274154424387935982562545967569524918554071","27286987180688240583510388570426287100893223260927229817641183191438708947765"],["657817873337386746443805646929271985418885284238739654089304651132810505365","10238484225622662929862821407253391159711738937067224168471662792229584828997"],["22232703596963689562674160432437908986350688330099269181589696187491654422697","9903612965706059998433579662955053626451723252894505714807291592270789739956"],["16569531004325955726871183770034861256456559585582540116993687604532751154223","22555034636216057173827186405305252452130746118885140867610292777184702966337"],["9616908449648695529955420815938655828070746312532021409466209313496757723410","421319064804636843401926985881819675317945344384333725754041638196551800649"],["16506969091816274654798585846277898445798126833470481813708599839889895426667","26187136298046805765075350027289793908388621343189713712413038121377068781227"],["2281486192787898474275664035400549340333115255881580495256130321596268390873","19637945247474794254341178436349301413573012446492712016989696065954231437036"],["17672857100214619017494828650177292485414765311821359103962213116945724867058","843195168628761192102652664977030866758139182168133880752169893199534525108"],["28530583382928925515295584161515593527042701112230760678852516879389313820323","12445526488757172822322294897533397855380305625763443283328369395534297864008"],["27928516507165948719707576290880116890979094386662242968219239316682638081898","21854412352763500234496043502622029259394111262020538060352410828509172979772"],["12301704129383572223792935356716855248910816962285821881039274571175243420038","1990527252679703094008082883311005641316527693699007725877408831400731430810"],["27944437284029582573357678134780050681973699201108231321356345447718440558672","13573017174267053604439060193309849852207104794141362115017900339263636312594"],["6143974325020804127645764282129053241624723196482155199686451759849394473445","22266660741921095773911124580391107030694852980294547652879368862462281780611"],["19970115943294494851676997652609687644232956092808335684127896945957732342454","1583254669654868547541231124804858840113336759597521070876316523616438756286"],["13434790413948331276395512163028767442813950699421394075506877866560070116035","15781123289018314520872466818325787152774987960976552719428368176407119803015"],["9779454510757113464229241119060868729858126990675323257035967700296494145206","13738693333962485994306247017339991850767361367516627283206330654669341078414"],["2690298801060293322984003130341273290215393430013748901065786212231145128026","25301925109203027572518953279632307973494997902045188232812887611006631543908"],["20552606438164110192044054556862065769327143658932067828647466214336853459432","765357033861954097693486472302516228605927980719949480386594949945833223047"],["8800393684592614982740321286042749507311466288408380727358048553130156067731","15472879512996822564365293037824751975072035064162228130986036131734899400893"],["11988349335173816773031991114157995928120765699110201069291956753068374475994","23268792368346028836663405489142259499673160401260001743073632003128371060082"],["18488688667146474802142315417324919192352820763857944069521931169134190931067","8863025701880065236582825937841643497430088376217358206837186165276605609992"],["15768318211232726220686851293205190146210356488416729448663984704422873622231","16106232622472925389710372051404205084790241468429323323669310827523912075062"],["25628481925007331930202147070381935671873590625058438611622356201764465453030","24647707682195479426784213901919437000226702333803527033976189170328165519714"],["27749181229836443455760776196399860717863404117917656172864464511746318516869","17247895057770179221833443366830426745131505111178895553788966825772826545907"],["26010424003011720137914204749662846241078887885941887323048196426822414169816","5047192175992496090095424249736448296590674108227654246180741974712232659368"],["28048848850637177570682260575874261697660832500697187429353176107690144440702","19253143855065318484441583644359415837692581600988409418397158298605968096240"],["22353747117483291261071440303894523609115343971364614948787764722661642359041","25530747414655099961060748505548743141425779439671477020982016790200413187148"],["11212746857128692098806534019008750603711656792759967186181252842449092165259","22632871920433538391429293667468750186309044048026694976585844822280048595630"],["25994179176137128069789702990219991483272918592282265234468524505721764914091","153091693346146129520517861389497125629506346297938908343292998227509183011"],["11890158724919597837131679736201746841110383189037113105306799920154426116886","15369722241805470818482982952404643778941284706483184917148912350061655809038"],["9326834844827362106055598368988752948972072225928898544562148864577747654153","16718617005013423290475594408818293856987245244780859495908304283052885421205"],["4332730290027444920351466440580258265011352713035857099344701202609363449206","8140457021585704113399885475935892863920735434396207778712713616114431521657"],["13177557857721191593476862491439847044178269338706909343791385641020247345831","17372692332836892708299116094548204526847795714419873015919803651593688305339"],["28305782435574393173269635748721315121177384163107211452158119783852398755775","15129524889376353684964181433876896829592028503155594809744163341510072211750"],["22103531758258092127874416457634271513182099057808406875915765079522607471601","20906700184795243906557616683986991392425439136201754041814001389328187051564"],["13906889486676007931253882435778244027063944537488371652854630132618892377335","10932415014272864942934668273924231826561887462119577450474227522346726788426"],["26458013968410396064732348896867971668163493894634556134753978733741648660272","24223673071370553946932989703148118913381036271581262958325397506722238609972"],["4811736980155220918437724832037996150726048055434202578663160383542058158964","24127144701201233281712442212572991596658497715403636935653332119645689746978"],["26112259801008810632848379974910842358249188455620923426826818296814898544561","9610552392036487634807110354123027319922731077462015905091900512100532051831"],["2103468570441580388157455742148447862035145740093649987250968845637679846537","12449540026547438730316379311986039245828252620266613914833395310545754339540"],["22727720904248325945124011372811493503966332749560409067582510502323097722538","27368486978410145855507189838954004000510416080641644107374209869988063937745"],["4573021996780907514025027110274956014882787570001132920007353089455279628550","21119690386845692248462676264035262500353762890610141770634146656172245416351"],["10401150433844521201021278470721588608413219430338180213853756877113846161392","8467042520674870539507623461076555167773062147407112448150493852766686981124"],["10775677712183905526451705425087710431953063883837270091804168783741564979652","17790390975754924073291416969031159731580369111747704252716990010264013522066"],["12631429745403952491506183150437464095713051825386457372184190145726824958913","25339440419445435767600760818422545581403861398245971940607233891799947404455"],["26204098025416168999081704878786631318708688266795492689571496271559902647560","19967993821389751642452149747962668642773415304529826346341979355933113910006"],["20839447412809158621661535853181675725493217834425062070188756673774074860272","13430303067127398169629504507687423591209563993063376369911262565406925349933"],["6479707963090721812855307742833992113145820532854828686010987674523438145766","26680181267883999227123681307074277264554114189739200178594835419077302751566"],["8224714217422075316973789347173988649114320249842134138536444084965448168128","28882315264616886712333124669455370028997317730625564852605058552678449800309"],["4282694359509186157180310138204553544564159694838160409711649601998724511932","23496360294151116849975625914477992540649067282345366799501002890004263066011"],["3962256146956918619926270362979038695082319735649388745102466596361434342329","26279503590961074401477781243720515766178595166430488695845750833618774368896"],["5516424043836601404153651807734010502849576757123616353086155274674327794581","8879411218537546832852774605772184771154290538259377571092716828577342167285"],["7591027611778630545896609289099432304169771746622213581513981893171783479644","25122351159360854589516307825465461858748599633060408993265329298759765712806"],["21491618716508651219708632782089506157478862638173196361034316232922740409269","9129283415053189345860084824995606719759561329789190125946262610868897485323"],["25901910139469837704368643978811135543364783912064522266180308472744541520065","24511422760610160955676828932193840428594913280268830431536545187856593694700"],["10400201574859259631165797234966920804109536475630000324346559204449476067939","27487070464673085048452159465377042736811601652343773533243973458889920212940"],["5389366422591195838340907747479874831811954389895357213297924660411708842107","9858649756515138187969256756621200603315796386410079700214907049069841203092"],["10891287310571125631404382830035976539783671516486787050565689811881700778088","24237574804934974427850916624547852363164615233510207803944500407958946186314"],["21484498155692856303820628908169852150702985396903587765750391988959238188057","15756632212767871495912059573752224001939266598473673735849819834520476137784"],["14275765824963634031216533228766284709931039088730711923883682025723098812535","21224900418767229828191246124661948378902294441192179029458421373735415157132"],["21335346943063807090938575674228472869765813081942122642382774066380826221450","634602267015736082915035731641400889906078037474796289874925298667262052155"],["24457214107567050890471601035386772718794810980120916964890776974888850410958","9232072765943526756301846713471793171145767546950493981565244743946994103421"],["16615082819261343125477060764909348578114317394241462502251202488372628110043","23811298501948641603466689841585434046965277982938774045897667706504113524024"],["15031946344358410339245416108283926645043565577312830388682241979926211631557","21378632181890725175374612009324648562312838532249752788436608230409833941320"],["20948009740703296482027720165504308160229814780774105424386846088973260094410","14763573778946010853652693904250892000250296942150105136856762350753611956603"],["19318749514173912739246639636081037180322037100794005852050164600928282223087","12312005126166647840179926023009978395533374966904606337253096608011331726911"],["10785717918730694960782655454164572011772843174481342434125153274031753166844","19281981285864094749720810774140656132090820585475549323784048702030841386710"],["2336159215807506178667273159568402071317874840246020770439813935876418290571","13826912442169007107504542091139173679513327320142554068406552113339100372481"],["7207701861961386111664273660220024881672659957212948381410215831583713465367","17762855128042360959700731156412263624617742463930241605558620639186612860133"],["11154453045819440692303132599874902183251775626344323480588074350330440713213","22877885034710484372297689474641540473779727914637291906832914236101028816669"],["9263795174789065758347156460950596486489414871879618702165913062396814369592","19202394233486458252058116471521272869774802751759741694936048646091637680470"],["9196111689346774373388733787098259500813243006949005726672865880137247856111","5316961482197023874600992985030352963031411329896564015261547357432812722446"],["11078056175975670402057455352607920480487065830910834348605933387254451821590","6398344083326427573750672835374169674945556169070180315296163599941945432345"],["1741016381601006067240188468994492224792530912629758848324746357960937577005","26954028273045031802534874800205852480193185818783042911400903789277994243397"],["11098025821069501899721842754657535333902230957952482906596759242788415771241","25602269960961792661687160104386213261503082438656541866366085789499071324212"],["5389257091430842974892630784145656441930413312633534608506750334693606159077","26341867471314815361407077044711926487380959891214328926016411549248651059012"],["8382965523743205985171319360418209151892009692597850462274091615142429760057","14803097651685611474563083636429025610580512558905723477275978741386620048579"],["11679454796659699525855263756416186388097180848391572675757691905167879081297","1514659413607374006512707826463704886972729906346035061865800237450416571700"],["13323291884406913328504099355924051599923159058562605611255221006234486650547","15830614723302837235806016639539810743945180370710173097545698874295439866538"],["23109891834354796371273720448313719061079778562349994317677488583567210983837","22318177329754380135490807379807886653188132954508894650682365001714607349963"],["2540044769601993322551381682805443032288932421271765257696461579065469075236","14035406155289293207737803765470305591094313847170687824545847543789536918025"],["18082530027369499691806178947795418453381044133654551460103550839876362249178","17023436507663426992378255932710948398964630663467570813965265682806220510635"],["20649803568775479456106848060089466277600145064884575251490571639029754953653","17022840864450922523634401280287537921179733064286948441265696929954341958645"],["9405024506913359271235512598520907387813551503686154335772397737776996421578","22453275593131587524311335457008294044409641374972861665173366918140313138942"],["6588001865748231838934412232681815755103814782407375282686124507195479620929","8122478497160792348759973930737649010858647190622888361696847059354033582232"],["4398646056420720929597675124144034495226565293195905073212320544924242621092","470910318465752250557173609766477013497963643111980056301693428954481221467"],["22111980687507646144437933083583503206503412484912921314855449972390756370368","28081526939443470609544444632495922818954347639284561259134783567219779637787"],["7937720639174575247512570903598106735704180882142182929782814417265997670581","25968940251565241680121096532910889080344417131514498322980557449362514360387"],["2501365061455887632962462333701899426335180605117341238076259290701634196440","14479768270144142307763587830412497125608391580548456929353525686595393268921"],["6887078876522869804385789398244063993625283491955042200764181002124770227224","15113006626569396752853858391025193673180062540500976026396097324667262326810"],["713493865479932136838326010044384296672060579152337403323442819413538674968","10966472770982042349069575730620229910092088096166131939803162725789020347293"],["3237131560169202545632862719210096391861688971071878561346808320890726121068","15123764820155373603213748306758312357086886232642989947614835633714110573113"],["9775316842060245822679453704345012380461514751292239340806707507482477469996","14236983206289587248085660205242034825086256467692523965621402120211450776931"],["1228299871505919584233642131118481165414513307815783889559114520270131741421","7835028592928084743655237870697893850121991440333703641177204422384190677723"],["14700334285539755868428050436671365938419638371127103826741539745811101097003","9852876320025713584365141263080732432741950384219852743467389552931067889404"],["21646416389946265669679214833495536881165698283806147315907294557886866120126","7953231810383279963864811070414698079867997254568815751945896966739434944360"],["275628228326648675870792336474580097128214623585273469342207230608597977211","26332779485595649969473585513018229903401574013094941539176213455498780458124"],["4087383530017598062470744467749480706530306239939147872689397628131814538108","12909231540504740143153829120979618404083755573771458094469201745226392142530"],["516660412386583244695544918517337965198042330666604836216810056897657466868","24811413092935867731118086704592330944231670782754736749115267242114374039964"],["18041209950134426200783938430713219095051099557194667114734679367982167087711","6506267348961826191688485841832823475699463270160283412643419999671102055390"],["21343723020859907242390381480210668894683522690747853466898327991028626268640","11425835971300090913425768490902450756807551631796556266471786339137596531990"],["22737217467900968400542115099085297763463450077414237298880173953310282446120","8544741154048832765133575701420931188285007349461994772755155690844006821127"],["3738155471567715305775603157264508442781419520441277810866434369159460432694","27583392107028873423479857228077839867984037328420960192164096004850769219858"],["21021479478629478895968702780307541249438299295349181438470654474177973676470","27228410640501954007218780485708987303822295391779364742203085431170412508668"],["17214200363691613920136615389927912816912628863607113081665192969227574843869","23872277230479743582610322141046328424805712892974250964381020980179842084739"],["6112249773311662260376514912229142310971221526299177099954315684135485351124","4205188875829175248309203650865434346512464140201650652951470506506116741130"],["28473578377166597037761684665387904719233673371361643090675957091911329855608","22020796503578861933651429392745110173646122496057217002594135625386208238561"],["10397039765588400258492328918428206987490262658536976776301541459067736323161","28338503206441087691251082621800497571408267787252267645492011081399242760274"],["25940646318542491318122417361830062010308192085914269321586838879133006474318","18518399819027587866250538672252280245976723054213398966044506515087701703388"],["4812005257722431468582675097641241983411379777647921095460060580197280958041","23447184685634602725481873692470473541398881309776498324314237080097496429509"],["14502055776153081086543194169884491851392902731605351473093276610052055457926","6399729315491513266492374406470351177049046169665112074189934591922969617973"],["11632774535688691532174763169521590218463699150798896904866989001949205099724","2277640952929609603206495254702233561747821292669725219797290025220875058473"],["23401105378457126641940244724294509983962672094677059647275029176251786319260","9057341318108707886410281518866829092828608665030196620811068560697883214165"],["2386567188275988836248005913749676244733232783375044705149989654576520154504","22583048558031669312145716187536904135541825242398117215482207243314723618515"],["12980153530118728812452835794805724859662667235888298249616833190582244157590","3722001106812141536502319785818952859390207402267947202023364054289136987998"],["12159310406306326757847445286955040970485264675778823791743317652409819692367","20088262782850716265553511878409220932189436243258767826166266019904394007452"],["16491085474282372823126420883379588868456448774310218608389090768105221035780","12451684192063987754238574909535263301592840540438375443807233151181216851217"],["7470745266075323260312121766413525069599560563072370670624369721655817079933","20191056562456795583544716181173495158243236639801351843719684342971298835977"],["8915765490185409384398611066336581018041540189361263473500583749894342882716","21741928682314977566742525103895721210313064661920602498784227226408919960826"],["22929575093487242451518198254001630107745514720595206778670483432107540989450","22196175849318081173998170467160932236339229526476413849469090114853095542584"],["18314125502221618125105925127571317160001017981889538116979988671752910415320","2948821509595468389043871127861089742886282717337196794972179063796948117870"],["8307540823830635355953333683289117865665779152888809555039609488063100354566","14643647358753434231127886661447741194618903781784782867541371132556503618366"],["22484912305868284524878448016248936480630948374327396293285773364746443118277","9023810485148849162829392461971368479397054355334385611617074922717967292175"],["7261495486510726026696616497895543149288930403130707368428574795357798664360","22463483462350366860657984293200454842626137784450574792299498181616806955291"],["28082373659823150548406112935118112115053472946289709293406015006702961813976","9511680147584708188011965976984671383365429640881449368527945814259408603325"],["14643063162861369947385081125291063459348016334688996653177225609264272196795","11369709666900275308250394456384050917136103654304753046361219883917895285526"],["16635620075730251561228738979605199025947323964230959360138595372869433687519","18456375459330082162791189013820918277972475180186475583955368518635249304298"],["16622550793449483834613929911031503422581928602440872222206498697065408137590","8437252532849527894388774308248009629782764258788028404402850188771114535140"],["227670724528175282251884461318098236900831464273753504527432088215084617021","17966952759635046799041779695061516247271223841526364872401057218152576992688"],["1093252611729729991920722843090275857221783755838947020647861188064716917972","26451723664875296180664599846596096508422583576508661686008971638208534714036"],["2937505987529516346350047523681336653789908841726302987914721954575392479974","6172965524878477070662149530649048784348175861079803873231521678753055227409"],["10294709985987121022724144798403106079244081230174752967310738702688299970986","28186750315520877047420322299883461200071666801488357254819439972145070077628"],["19242817030971963081259977214993541415187943564492261006175596729273467434301","11556448790431611653647014518122550359186243715185435516198034882633718238611"],["28929420125137425902964868109256211940705616709263707019081688667944541937333","22300520904155022541294549686618295190544943657460148408236826357185776231215"],["13290434887683183405945704596420812241872224106747696178417050224316971580123","20181715789664432713259410021021630428662312216301800433439757625619014345280"],["19621722447811525875669986853403077379362372886839341170901683648392631735004","9611669249118345283916165923341588595639926886516863288865288828283290164281"],["13832180542536492805563682376983060272448038874233410261409933324224450686865","3177898684690352083306905137140363266367291760046781491963226985106703821311"],["27381971964222284868428052703908716632570869979916794492423690343470869394309","8847365862332229188233783677725368585677304540277151986060522872445410898733"],["3485323229087379974155948581783491041679570327909500111569361428446205324017","17198701792367947332226750865383571705955366533768087154943419645978763032413"],["24155208559450296486042393371042937003942382611688105149879429782552759640805","24325771687101825932604508368350848540435585298512763808591459588272058063780"],["22896309422551578424557458123832442972230041117637827529454458987376854011212","9987832159112473715060020142151952491744588483452285054181982850568370578544"],["20268013729706934442235970343971424613788128593637922956872882991846419443865","26560321734222320615464871504620383528769138196655297583777365068952848213394"],["9828214750394239500303419106170029117826156482361757119149222554188591859981","15666653425108921770167388018324184650434604993738227374794344695512732261103"],["25199302706381110694571797493040357191582248279035830059554654269270221619031","1900505436795154899181468797728302340125994284907987666980766050424394187046"],["9012153103316262150079175605380890730394894364177900960352000876188135180268","17865375885987315130042088707315697734337734172735878742657624662819572111211"],["18707828737299545163260462981475450388495286622497478020725246684314965466617","5725295350195603793397137185583944565078197080108096907562217531042723679524"],["13881856159697546577697631976302756137560827034567812320813227379276417626418","17600708091078152760849067416482279692998760628712736133868882875477216801188"],["25990150475478561636098739643923709026834894556046602363386863582081575445906","24856503679031844022736914111343342325974383445362749532309117320655919132842"],["7997229647705385078263392882872756476411579552372420082283644755540581549578","21935793508244397134373444920645536036689611981571646229558931683288614880738"],["497120650050722768673759092377566763893073707007055856241664067391990818332","16515707334347445014418297332662743270436202834010013797501172221480274793132"],["19600590538773871577139719787539941439012198809464306633471272089492566657216","13929745118748054127783338092152247446821984235434682754185231973544739777826"],["18799726893532340593452022371616389888099933366040051727565125035004796962485","14832867573415442477452273388015957210139061203605886254356096793730723763852"],["12232612503852766369504317957801420255159835514656921377539979535682175205087","5459732559832236183659323677066945944262149445515073910175905108998915342240"],["3813589439424338175196540816017011999772225261085667189438209840236692859449","1848677445971962037716099834026641135372672401142951690593154040428472869352"],["17410282314072280161329165508002293514414821227737335233626969474771397557827","7209512723012594855254001315148237271516330259156268947614645800536612561503"],["5743821435794919171577891684884911168421660767894824518594278340636191216761","3404486296943168390811009886021460144423023675777994184747887228359885074469"],["26991379852287004248182284644773169011366828515540157309384151249529350569968","28426222068594838679251340322120339137931814632266235446164513806955047780794"],["17484485222119890406097895055209838453458071848586958436253956368059491361779","8089180712251589182481860828321799297282127981778164748636698814667892804168"],["9660854725498724442981986204561518932066326571759936169558425701124958626036","11088561047719944554996809403834529941123629057149954654822414656585071522991"],["9235513065034755974383519760955555178930215968525739665737750418462636285297","19928654624106675937384424040873494402412088377618451673856040103533015878866"],["4372731157788787220991614829851363568976434353042297057130461252630106821812","10155054736355885489235162820400389501987099020975123225205206387361817868765"],["1131587513384003798808968449875873341802897503199117411540449466092536914228","9702598141250630746966968855377544840301103167343218632495332478505884580717"],["27182691515534016395610168504400714440238588878679480040421196918152297050804","17898965678106963556291383412863058754067121022360883619081954924776222337374"],["12369563730916391126560614251831767654617039494137925675992310006062441686049","26952096076703302199226401039845532220345617907857425014103872567024052537943"],["3364166519893647050441137233289227493236774742099518319100298880185029024117","24240904272048813694314698166943715860096552988881601203507108468090186011722"],["16920744428486683879144923134587760161626846118026249034285556648713896125644","21654825807305338063141310138297973788967689938847065508499647746863491474070"],["330835724672620098291211288481788929617003396082638522430669102903008293629","21440972864606725365512073871528454132704607501128526509615413229875301839070"],["25846085750014555860603297120211196430595662749570239462874281558988513643859","22844339788461377209024055777872811162285563443966743847670812268813461923035"],["27580823326531569579925600316555258290894618877405480160526300871279380087484","25620821423518220207115423994528821727117264011923096152829897907210508554302"],["7687091278427319002454789605362817635941507195137524253098590786351251257278","27377994670901883969790856103104127731411514813231851150554000641664460268265"],["635064018744309848546584622895000652656894785901605961446479488100343957555","4520761048274844908971199493171408514232409758065010837952056425764834635739"],["22372185407059267040387475772898853126822325477542351137706411101548426297050","1026539922589957672328094649881437597557527251698436836152006379116421989060"],["8498073101956023002461694982528023464629210461259992209227693949879773566922","25938408033452080112496789371180756262692012718833989903765790731822627858620"],["3636129942230363032763321581187781068260701607132287628441014473306860257995","16284962019386688037964420092309125278099616821593317607998365363734529292950"],["1372570695491169555323654326129144580015373463422446527273424326131461650134","17011099315760575603018000067199682059828302973679390830922608947568278466430"],["13305030929886154931981114546087051266050202748280770001902398610453595791183","24448366079302114395399963313592735966189386733500594847477724622745200439963"],["6363570809636805555906409819289613684782132636654475021629770779441598339896","10124807376624498628073407379142779927536765147925294001312339218528414119546"],["24381992248982862021946471448619035246909365508083472736576673319364100867015","9968489970274379588316726518673855397792120221513644691766507783189649242285"],["28399780509866701537627427880912300623833434313889211483910961581084634631462","17579185712066244879191326066788827384081864883062649425648600125041293726035"],["11988532259587712299572728027560432529946780564875335334124645659730418850773","24347091577272460907970025590541348362932960142564135593275816973597094476152"],["22926172943637909991845761862282363663119916281168411461004051968743142026088","4216103587996237291015459704111159094924880678163429773271402660872556788714"],["16472058835026486164108211064443565427159179811602795870457316558992639867699","4219898765196789041166657737725955743712636900024235920599313433352483192928"],["15306965023994084044865210472520076826786562078397075228900169695901678689805","14872467187225355093609615208678887003598148859062180452651470919453022116031"],["15315377284363568886697812723090153134256558818633876261808595789778682042484","11424133985751461653570931403849252159132672881562280689684817491827866839582"],["17548949165378484252119427206629125730852657430589139455632583116806185908533","15635838060239841107379076154041638903771571320539152612768745816055253938592"],["20050696230450097639176140280699202333369264818630789922775017671830832467473","7487252880992942843901913535695526049749759196380166586288325369837642601804"],["12793687041900611685079218390155214119311934161372703765440239417584936011101","20728269514192618060748142133767047487931622539200837419060415974657720403679"],["24924593051611609650284767168163024526241263653994294937312582278082415442387","9517414791480121837993165668451571617834163325030511643787321715087366427384"],["15948378412442051360982593367279363783686499410156062410901918116667178072843","20901160373291545906924742407270327324158879187445801413482388933571573388270"],["6946500758760546817844716257121107159709585156818498797276063349159880475878","23345901195903949041053095374318679650830674044035585605282248663457456368585"],["15010709520612872697114807100606508065812430244038502570431771657432914010187","19977137346107763887383228704485351764634749732545027131796874429484122518800"],["5336420357714786636839140015351316317886514795785445341535089823238834151675","7043326048688664514742494123512238200944688420949607129446847396010377692383"],["298807010693132083467974867309909995343387564159368436427882736465002882967","18016922322175673764639158544925134605378828547845554013292823654686016691561"],["24752192925888040949893896336815975782932422818698458164864056201872993653887","1750633271336883054720983107925922181600340283032967455789636769122637295712"],["9101971681853463584398759077811459095973575304167004783504501555394059644718","16715720721149306863123998431233110520673527114057747142489993866619368490965"],["19807474308418507224579787317487803401637290607825757642988820852179717575654","22192291323552689322012454228862067630023388365742551511341101242675488843197"],["22765814629872414055675093572085584946743954674261576098248089013580074750368","18174989089967789701808954891815341374061355742433899752806882838807552758676"],["11455485960170308139308302802707314544668073590400034051757695944354058928908","667086759867279418896355420284168845411658442880149451193335302315670356974"],["8826836422018315812876562291507732396617659813982511367981707527537230393208","19378469950607561285311130607090636067343145259928251726797270959217151106429"],["2264874698508600342037874886379234232239027784335996714520252166459451525139","20248065907895340299521716837900940185255837940089376862679643988375424922165"],["2439566189810848881961124200023536866369424663087380430805507297988104578909","23463312118830922745610724689804336954345928166451486092659353271221351471637"],["1140525734081081120873024497695212276749014915846998540704956520850544448042","10312142721395554036314797663946356110428206159441771226035017231296665185737"],["550833425252718886030726587155176360319007820059464966468068414441662472053","4988856533310403260920993993097279919447132488810418840690838174302122497407"],["7279785656826342288019849489956829434566235938246166766682212864395679376922","22095270627934135813333204893188727542265473143828670286919936439597797695633"],["19202419220687302134233585691762674243164225297096707825224247599749295217769","28551497827801558808958705515114706885813379839395082287821418875647679066903"],["21313743535356338536009927281967656934151549542235492750233195443331729365550","14270080143680218303631611227532027352138596929012857425871636200765916862805"],["18050594485078621765734060906912697656329762869916216100381188535911137239116","21897021588990493380754099146154231226566756315937751406004351638709925163938"],["3070578880806049536977013294574072413729504051619190853130197798802913621404","24783057050130117751482710473148170281032041655826670701269061844881857493951"],["25975266559075772402636275052079521538341844243260103005817739616998273948259","27476643832152458011360956013928988383708115064761788947980305059790445038857"],["26187753077398954587795112374894795229019560096978904998308202921739174280354","11201925530194929638989948648012461608122857832880265910368130312667973808176"],["1648140135816168401119595875776786624298092824739889573185192866779031773117","18681134633322619193999079393187348518807172302990684001013070942582741191215"],["18596377552792623490688455458250228414300661665955812372863241553236484643617","8630908305418242317653533172786090942064348633262931245421838655900813675006"],["16374053402853048771583371129998090961140424126041206834162875883167608737731","13165203901476018428197549568622912145921211616357741376217119765344002303643"],["25306821929913737227157620356658369458221407324035880109266391543633053841951","9676017003259356106390169177198317487066514597272332867614922915235946389864"],["26203921952709417544425808817115118054441740300426228430406919194219617202237","25008557580982344719002039738605721423195106367595559197702336110335462192480"],["21914612982083236886905372177789275574158860938170704726352895518073028789047","13929118462081217625522076682048394608661728635382270694377786265435313454787"],["25115312433813275813713340559003400264029118307038138224655823132849657989617","6664675944639415046598329671386869806013531295345482765581992454303045501389"],["28464430699610000188558215822253831685938680892233083998843606168220361061561","710020867482721389158687940161540297609116196463067343181113667085988067861"],["6255871273339889170743757327910800007429379174411525933677964543103535472950","27104828252058755426075265929649722019526454102733451488869767130676279371016"],["4819376268318590809374960742719200960711785720312254719064693084393125756338","22964385148513062956652380354137156419124296962693003625880092145708797545113"],["3470460521723559907944120107353641857888988780736872078444826769184809104515","21213079861359052777540068981179658067352020891567243139713511288243237825480"],["26914381782713697446692720628862579730378944963153831722924692311759102680609","28894110178993023075750386239368184687444001474234775688827853377414731489603"],["3287776577566716176873386509823398120365483052323723346665611439988685718482","4192057080328058229123154122414917172243038546969637443438990596817488209677"],["7573717730013630282942102995944076387700866038561591318008419744414689985002","5021335701154738823577272957083288554018447486235128558335773982680491614865"],["5512411148821534876710686705252228443867785990469202748769961144614407280236","19017866159811430941309058075815099674886890730674813212583698612619389838552"],["2785270654292009568875387550380640453903521070794877410342172724748461426108","19605547604516804137179891007058042676171394137975759940912542948941356377739"],["18067484334076248876610925793663837906680359060885253249590077605875843645800","22932119461608157057170960580911086883411367035475764338764492065433359787549"],["17719159896165055142812536265635411271511584858061175616757452461876702520319","16323991464296837507433703727745854179863028710330858501914932724314175131706"],["15313298618667254614145242548691132149475947166219680340950409695275989659441","4858785423319035394421012288613905608262870078433411738196262026092329626475"],["20496089365830331480993233608093285401951991942266825045351699639476558414130","17816374032119791639434685082539701303506014256840369312423033305985373028524"],["24085132146802738404882142835745029117186172286169265099844978722721205366227","2386155815571305263417796414819192348421436318188411943708148460200574069946"],["1856649131571287922576523901963914035446341102797084155086572717097277130496","19463448149739086469895625261541317516879280552709743114827023964290208212856"],["20701997155362465468378071149988196113422507670533343349657612654679884514946","8737219867666768537548713803430150217819986689099213144108372039568099825157"],["28893553948875314648650067506009949496400312572397029997229951333587944651140","25707937666953572664495618812715856968038008438626899366966624946088976327598"],["22581349855330996091272382160081747126925154605980920553947049086446669972364","13019510528654574403093102933451819350763649454263678616811215320175950654544"],["12546683931242153302495435438636849905484410533079572683994265266463068867701","13861895350869792180542745854545706800196141394858248596969417853208095749490"],["23373210603442631425287387225198850932899182601151416770566680573374898869815","25062985935273174856571016656184851940708569950758917978153143443253240407035"],["4404078003302362405560402007166285012384520866908979348163245254065154643999","17150156765072857382559044255003469539117989147785735821911182423606419246001"],["13887383978904920750539991273140636345546547838606549709722529718757180095873","24110595712953444424834380012119040028430630741059736392096593815473542796673"],["26812628159684164483716185041422718533650629453717663675386344142531322383965","17699823836737776282150463202896847475394268994003824529807775654483676413237"],["27221023964221422111007091550319548084664523537198220765983912361955559425357","8124491317722102443015922313838095997454734516649700331730843792095912619290"],["11096261164429954811755423478764127345583014033932148258307521906248561575194","19714590970330460226520642776708324547276468859981803611918006256348919265669"],["17798555933174575920102753997769692966686725477960930392640299889687008740390","15052366563710936371680577928738303865431748567981348568456474437750842394789"],["8485960652714022124254048402234431371653881122091553504932691439636499655595","27313424928471690482236990364657887140640218250569988622021571521607369171581"],["27823257583112266360419214948552670502948479525048433853401476669273438965079","12004986631386372620316710912263883299346966904500686829771525957066716245231"],["1171427337351139138104391280349064565070358115499358362215421216452134329234","7505849691017094117007014204790638872504201183271277835908089103349898590031"],["5041893842830322783454341391408554529314604428158883629841505674316911841993","18786315188866082379476006941114182408688618437061198029058680622969564731816"],["27975404388785315977880056165671185987411047110245868547091966373902068654678","9525085573492886158795217322764558320597900575117308699641558117497240121290"],["24178340374460380949604389616277976967372178255375677653274307159031450775346","22184605446523862420852970504220234091607490774952181392092744135044520663092"],["26212060875031647961546136056087492299644387762440253712419384730447992484678","2327382188411961514306800952623536329135917394067952926754745952964058213260"],["27481623285448693616686236048806077683663665639654617359679958790521167742860","22183435291562673077825252032514857396896118317634674333437350943748431224004"],["14255107337032025714704962890854891019945582660702834646028884436340392580984","16479846266830598041995208798749884596522813931770620933146907470993204980650"],["14710291243864664087333415558740023511805470050752011295539001366052974452206","20438530736028566534089143756753761315048816679530048411020414132095137659644"],["6296096402926411221990260558228909111589823186526752425366567638500247107326","17204384934326912124567816817778924869217162816067027628986403828910515494536"],["5056804482018553368468096020164274517039558629540797459384141556464255231947","24703406145760260802696012735781326404186617461721101420092658551217406673913"],["9672117426203332404531331134080368444811309777259638231726203337311951063013","10908823260157924910087413968850880446275607845808045564243548705715208275090"],["20592651913052406619038542082653497090607833433926056323498667095931808599214","6192039460625751682782010680289902884379387568515991395713670792895240517264"],["26839074643047871599299406030412003070070418920672896444529926032414257230904","14360119672906013596406159573640315616324243894120752006283266649222741396879"],["21883204293833625462033080700126201448626334336416905966562089721266442976966","21563350927598560628315323479745546698587904235252678561242745929837298569222"],["24221085940424032441936502499520831014365162901679926826170648810724048160866","22543257778306741404201225313407335320990525109500593653993154571720487085113"],["22792329906987362190702262695280718829195827747393821274764752660576915344241","26184063467837023771792749857267320271908637565858960977432837771429206984321"],["26267022724791731365934207091808879817670552939228627725288877303420997396571","20039309920274116202612524081534070085531723994030742745554609452127777939469"],["944756772374928504356343662849074527274627366153006784890378859737273674371","21733671921811009187619263062941522473668340878472929234381447010216533905858"],["13229019239222611061620682761378865853710654074671027639431202217340654424950","2983251587399437130425404681754898120471096634058248975472488409933803359739"],["21863323707638818739310869716176454735748946449341059590353474019015971353206","23596189607541381716252991923811191320143246674510598112480612567391608386268"],["6854835060874026402590723278321801454319263344327064533655324391974519340902","11734467294732820655892211920121975579398659587676745779790313907067558976272"],["16716994409805792226760107493006725951593279443727442838865690376468710584183","5376121889361802513473378241580711877986251437899410537605188543691456730356"],["15478242702988035768509692062097158545031052886707544961311737574348827833855","4217885276450663336101068081617085520426309302959513829771846735942405635971"],["20721801956048911117613748983898457124100545750262000079385552872625598118250","10383705722926610999955106320228813992846367331084219947681815105528475211108"],["24659095711567956992983342800477815309716717597851260355151672515567113159455","2971639241856399838962178522060893948533661646922270748561987251804894697047"],["11463564115887497323628775239331739244646462174250680321693106681942853862637","18617994611688838641220449867449131621748113277794269990734220036894773693429"],["28092659221573415052172434058924903625949518663305965703961975965665520744100","3553339961261475619017476806257981033158497475576791691991588758150999642878"],["6693921409655057560809344251373480180857598148447084192412827499284725281020","25291018899427829101034727533612223502056498016528125763409303828234498239739"],["20294829340914471960224842599211302346376056071365156026516120522608607081719","7353963476653886382143673948316859796583217965055746378235610001271107863119"],["23313317343147491840785913972988908482456280204010496528276039580077163325785","16747374534159717388748817809795536209418618109971055227468406895258189588792"],["12233393850958705907383016328709262728504572747778222793630125714635409895709","2841937790501669484216444886913861766332596567433747063124836712512236856741"],["14553215264150791205792924942332699666045017426223277724794426970998823654517","2713754228819288658206790064488472668703465023228970648168649206734283340997"],["1858312358138556760588356378404635451443750581875257132424829454311055174799","27390802117025600544354527692578359913471130800598093004790911145533107668564"],["9916097984947400555499973886138696397682360982824053139193064371022523572376","2062797702742982599297984038668365537596126159633117162116775144538427504015"],["4540613089774309765187279325863648648239801204964816804237030658274514961629","26003726777615699409707966864372824997637784872384928459152898150799116526504"],["25627598445786685110524968759356648562195408464047028473691039218179503154636","23384338001512351282699969715200767926382975134460249085044622991875692613394"],["24639689390682849212353285610147961572193677504946702933232117680519435736487","203734618711909021347838799492965429727651227773225747024622946393146509550"],["466837805459116938509775131491367945145840923524474790326210994296417704434","2769182714340524967302477026946426727307189075433297903697649746070228120482"],["1605527976766454292677187467830543621296457816796060430603442173529354711112","25945842503621071221426514650581346805875297466964387428559914933826009809802"],["11336500958339012047945530402296537282750600197940517541855868611323076538744","7950823564183742643386251124737362922601961788718741728676073765847480916662"],["4277001430051775802144873719498196697400386305376055210364384924806527857329","14099606651230589524117375906051115207726172918187911841414784473360926679901"],["12860510556153437483672119478486171501391023282600875661350398244625513888484","11551346808965427447568493765473649755856971266225384255149377432324732208061"],["4389375493931793333319101944304271855527905993612909100914310176870448809368","826890026392159268994362990348938453827865559376951748726569881830195342746"],["11448933253828444807563030327102461910516481861144218677402048232865218925532","7347858298858205477193410308269986536287116592523891127975850966870609538762"],["26078781047736022891936015286994609167764075639939436762978447412911462958272","13139386306488839593184079837761049907632154096921890275805135421277495879895"],["26767191977221247642413553980337930115240264439415389869057880741346365107932","17210019883033734305525120866280858398230678921950550267169278293986959777007"],["1695601891778964457362010699706170153070577941501288085721453735066653362562","4882194202810411125764536115690074356027604532880979298025249190780270002240"],["8409426297298730287334182274262721303972797278859976077677326540660531601227","20065289057785530164914733798162878484745828684812958252745483234574640017647"],["14583005660050375657112305708895390702136668046553982097168360262447227585469","4873128158810826285175589558936251830785701179783041243146459828236666200230"],["8187323414142675976579618079498169894137469529777256328200876490836179265163","7308985244854636183134678460420425696488971361435097412630806425546551193789"],["11490176747348555050843715051038844155217926196710627996494253218055849798663","22459936535023035911246943972651285847931638019788135355142862433907675266693"],["17356603129871751636441327744780578907446820741670236151145568901063692668365","28158405532980139171383699961943044205601320082439656375851695063568660596436"],["2288884982171131680269125225902623963211790138615671854411413489723674548508","731133692468008262192083767425586170559900514270660350191872292782541079294"],["5319195028253860287118545867018936365296788784458941145299449446275465981557","12764706922511253401202028327068639427065178983362138052702334250584145908187"],["20885438756046107085259659923369821488236073907718971759529498168924235110046","27576284377528229929129037138836930200425731239241096378452566945780026862237"],["13008395920337264183280345790052644571078733918839266382575776934438359439844","3790486595240854487510399711025600137777285741565120949219769939531748757956"],["28391620531548571646805370321250769178529641272288561303727605855038517878168","24087919514853689335509824257835268195733249074189330408856687541487650155925"],["10085321815869504502162416503799820018765850256061534561711921727341048762940","28878241670375694155366601515922599501974445836501677980047797296266625662740"],["8798945292555632171815376886244290125033086406937369200209592883859332478764","12292445164192304935693201301429031906743597720857281528655804278309302630155"],["8509898124121866124249065735983222742639352473264645096551693816411016573100","11895535703856424842471747510890373870441202270926303208294122166965632910561"],["7384973495470236929134980794355111252362843439060790714647764609290107350330","19016997654882021976139700125974494028863931757694574082030225648147213611804"],["14590916970037603845927047960191250872015171283723020298715045557031633886651","14074421902125189479630679915686463552673144051232982717899395731003376204489"],["1123343115438374326080134172941944501383482028947180103447945201543550774759","11635124026187651140034893597934054107738678678530830126024128237708675345969"],["4107777029650636841627087399807737405000002672360015988927547715265504669586","20758344859798144773242309691175754032458777713570382658710297534898585442200"],["23768888595327693986329653719802850620525355634466975222479389547594432069289","9948542564774945934954753312269906044762990518126081145605950812132235356896"],["409350066075212254332876412426793975210306302067662447021481042872340746600","20899411030249489902966863943659955309790458283338138589093837432169476756599"],["20490234856680390882976528197034916849001674511686989975549697711303329231187","26081724949806489312910842887928463822983084174843817638040125407069276484730"],["20030613388230457762983905857482747366157791912126003961591509178084443980356","8154526504659379443846349080368893077483072018327774912454804857851350787126"],["12878742981089602854543045539932365575487970754900641445169515792846193534290","23271133550579781962357272580998758867233040214647758007684467110134463932785"],["21048718107165215645931281190643876109670281529290502991484289587151152932855","16519187354103959004732817320200004938364222441959081747776452864057580131180"],["17458437565530619254577950693093246426527716570126539012007970981473620179462","21846234317624244986670819856037048075964851798340892248188290105097380437946"],["25601931721214199374388728970484055911619779933618262316496746588622624920407","14095290863896853590007222706226607693180390260184688642856975911877793507156"],["11330046002925476453789337077206991380726297089251072128139916236859284871235","11748319600022565622587435070842322093256626056388644858626299517738542144128"],["2440931113877859574121679945160158661379938692241697615015594388247270430477","12260009840773516861590784153049147014532578916733290693180416690179863679848"],["5079260869861854463045854733242898222513139245896876875647427330567823462789","10843693573177632365420604917620809006721232433829986522653718933070914825163"],["28863050256066727433473593365937552991926460614230298742637813725769472613626","4509027701243580819127443169421687341474535350724360398681341304392850899775"],["5155894769740443273432382076996371119308401663502497547918313064771435588651","16161009996985716436624900058167713089861496753078176952021737812334556118290"],["440568275279990780799641669605026596016320698637160852408988009949200694468","20332026919131962563785005752655489068742708512195467836863560143499964081701"],["17777084485436643661604010219906398398406892747669311043078857290594801176575","26891924055994191104917527378223294221772384620131853978460736567738669032372"],["6175570774433392957699726214195062979507273664992867690370513503317474144299","4369844123548293199822108247873036696240821748303787395177191707646829556068"],["23112120629409853694506635454623640832956433275386492690958910235467953167141","3339203178160677253839614513655166642620979679746016044467671032692389444701"],["269944049991101434208168113989736311589148099985404590106119828436785299583","20266011462347008277371684869751163910694427041690745355141766969810471349372"],["25239030264046964121035781148708828158985024351261469290560013451077498227755","24169558820346449719302592310289008760850768934735485498819195746325472329699"],["8451066635754261442603060772837851077476964205381491729403750688343593432117","3749916293484901100828882113769920220635261812196854838330826369163180875388"],["16788796664887028220768441689072953987166264906991026768656809862804216742642","11471836986338327395880086198224452655584769860735831377982102622862932718334"],["20044024900901387933055783333059423174222048545587835450697265130821530451976","22233834781757735646444003711229579958834405056795153743488063339735307432733"],["19842410525398655451555444402272248259043523838509253428949522520684138172175","9006273375557511722232109933933954766762607698209215193577416224118626541592"],["22079223512907929331013413600527827757238862820134482057501706825936849727178","26907351274871988107021354410117323155819679660692849738107755302989921682772"],["3226448937742046197196727784065670233475609716934893186225744191876053506213","22840416854577973358447015752091286762267727212174844943198546314724957469540"],["12599815958461033907270545848964563415575342119138113394459164683828411175528","6968368444368701904831821932221590244745857728427781161652439519346736088599"],["7840129371650623992607167209572875651918985713423661809066176531653421415433","18878011358016214428819757253370676135417643114236986359245563715169380079435"],["22488812640674020478135548955785784964847714878367692557692042012907441777941","15474076411263177921184692823786941002292269670110564456646338871672004133921"],["27152907132161241530464250548225148774146174248729238737474559906189674230862","10770816175880293258794757392116034121309713517282492244616526193784006186204"],["7031575446935604703034050608998176558813247675122242309632454564264216906126","18968302992320905355296488774202301283146607126914605628790845666263928773263"],["16513060732917711270352010340383959482166668434697885726525519314441872898431","4066364392072120479542397634808179314727653609265612714611432937528406179388"],["20960681850152077521411650558467084707828652497882774729101581699401454560163","8098493268010787682185827857537341044757326415532722824986309053526078453612"],["19751400795482936128083515893106550420541520651975318580706569810148695657203","5261533785658108543516688030867747245653859329397501596116030386304142304375"],["26571946538569103744003163576119883363957556560625621945128635099827637645967","27083676986159371793498652670397640910958555642604949082989153712299829767293"],["10311340486402617724368790190171722545360435459756163718915875167449388185926","12659042868546742610601523601428118531932680417884439785199070915813431891681"],["17646033094009548745293788585612724415468106826678655980697848418546143225055","12268822569716939659613342879303705356732570624542001293431311986352638934941"],["536727695336181773757064152236981502067922937339824918427169895434698806690","4724524289677386646432945067706668635838327980538032534068860620596539435954"],["16437290878502314017045541181844795493995706980333103029063415150769030949866","15811788491844153401250774380035332200382274141383027506770534962084618551800"],["25262936966454464398442707708704302178687270757391586003916563226288287222592","19503168733171496788778623385130830624157353561988667454435455340847935734430"],["21733604303206309410698913493021102494658002607786018439870299365684192282315","20119514700560928646994285014895872643512025327320841086921838678742728367576"],["5660199564129386804458055363864546035416093343651964506996806551627644005671","22265597295844710180953741027534363138218303943535264636819927887823756382586"],["23760065074268402079952243733408371402723971943559935261830368573660737560201","23544214569378446668553508848878782972805084649645106585820452230968540750294"],["5647333916959097377750474359331944197171117613353446142833092202418456976404","16705604944825739230177437332804336139171740120431264238353953655617177191148"],["25130564786105191666787224763417487552956335501128557483327050532151067956178","1559552484786308103199101212879067112790043449967042811047232628578613262528"],["12805530408255093260194355457264257780874242916283158336690358925984418581978","8156355660799709558454095762689430644151488674695469314875460964882439527663"],["17746014777822927753826107838266857205139992306785273145580629403440854639480","24559858134221992575417015542244216430260552727078002818089675000446885730728"],["7691898424709384086386708045088207373004384224843082386741401134376168138611","24996896604029040175143790398639999190291517193214934032996986418799101349668"],["6060541226677117786683682480006606987658071124310698066796904162286902318742","13288739012467782916573942227691587274378675166385150855094523531666472452544"],["23116826088972431455191177251101259688308140454767486767772540966115763011258","20298900579784080820778607839649871340475764105790170080545724268467149216598"],["7594184110446737915200846065528635158516591706388709569185375059345253414361","25210542938592267312714854375190973523320962153052815124623309753396104573966"],["21871355948686184094243579938210255542463766420686369121581953053700519205501","21466713747399744909470613826563075843142120896656133556393753258048322122467"],["10956099357954282138697216038804365943474657260369418845180205540147598482969","20471019007906845089082399807219202942952071449325311978682643133868251404638"],["5085320692296168789981187209185987193594537444459417928673993632600517980216","4465978151878214258699762785437503867610319523019359296689465320099342369559"],["14270263046474663341004359147842862269645153822382102960429082096001464532911","28697080375980588495862357606686668992150282432951808771182052610785329716373"],["15383927217316163472867542101051266289885157335343042871806541526551507630491","19669495808799199601072681278753234746301708453406443024771810003761296969863"],["22870716983725975305331194311114739534078308312361545769803296686268373068954","14071054481904370647417628505732277680217909925039462260567816419140216269697"],["24413409758152080358991525721321144206504441953876357623456156442156046694422","5955946703886496910858564883491912863920209529109388012345602258999108445314"],["19204118160546644846978743515850124937691036482765073951304167677650199042306","8578811064121702803366134863623271132832626441191036733017141953982372504304"],["6982273111776229893763992144165534823736358868092455766683903249173720633883","25876082436200573092250338570112300732893039199825901074034996515158459306694"],["17660745275374300128365486373340243743324255749128657971848428654926069580452","21492331177478981172020921788021031540992531966807122382936411005315072267259"],["22756718819622527961557789501070912618741480816864186071559319885588975162506","716627117201227961533764060327407387631500065336012121844629119461322069276"],["6194040298070754213726447942883535512662410557031203281000460471467825112281","26371443064927253452382396841953158876055547316545552594880210828240061368587"],["25355424698059366204139125888179070072406810911699332389545851674674504806650","26639432603683777221700216567936066322914279366480905180622660599770803548015"],["19120830010428901191084423910907451988641312775301005766618035074180617014044","8501844612030666136324090160880274603654464063189125088535907071836802997911"],["18676381695978439698928740046025410043081224608655914462161004011824513248465","301473031746289229107820016106946384451212667752825420489025666300566423627"],["9725190473116918036794822686961399142784805646936041896483028716328266288331","8341280128458720745261004968177942401841486919467284368129847094255052620743"],["8956704373154038963162214891616601059371826546742499284598334635524935672167","5620717242578620033844843813908938819926159928883609651529325799243095154636"],["2499904633174933621281970909469404176394217568165449609594596753442057116455","18669834671199272569220804102496858229360134381533878597310553585551191664191"],["23639218997017000977916712240206293630160415132210050880209130864857420543762","2612865206081006509571589525477517151205570952338283227846724212627479943800"],["17844615493532808319259487448529078397580741729057691671476428082384324955052","6481916836830842690858451283172352811759192787783692465671126049917250200150"],["10568792406559341824448739093909719420819782945829255756543640221886847669182","9880176157969878635206152112926505560791665378685643505088676992313799605155"],["2696491059206815191165369762243393147823362621330738718405001740276268196842","25426030316798871765154599927290490116179082173366290658251457659422839677124"],["6971304290414535317670458989253935474173054378251634474186085662091641366800","7684325301216932404637710671338391293671645707393839653346097753292313684594"],["25832281910203605678078492107687493671008423692447244205532786211976906046390","25345783898311874883573672310734638896788931609646770840481842709052051005790"],["19899023432879028358432928451324901634478971098573635563276815966336695953939","20309202151128502981188782360833043077760594517918817184276156090717656572309"],["9043335409778643008412363230144956701249994814885707044848112863937050853706","1725570998334229565931556311273418485448548164493825306170216855323843267108"],["26834897530525887009360776682355015433213355153711938978745110260410567219452","20257682323630200235646011134381751398831235593993326375942570356387502768644"],["9414760312474309373467395491587839581121661262924072864700147897606125948898","3182176990810657441284089337739410676764310925290686328350173105660148575818"],["9817042786721378339120153160671248284317045427094869564615408542946267608490","9643509613740102351970460516416448806759999051776846212446689756198437507315"],["7312955255664838452192635567817819612459588784738132512847251088828180041177","21243332880968377171314545826975232276327093621759941745018775847054973127961"],["4143948389310096672649521468803263519331226725876569360062631192509446048027","17012299166507100417256878199547617545783805099002509623061824496704263946805"],["16180096666076911072243388567418612986451510742192598833616514961916407481143","2012173383339075148468475822059963760239583781990613643978713066353822535368"],["28001096710407960782674444253608701980872063018413227993618356339412463710417","12714122471691319681081735421767266531435599375419652845824946348153072940703"],["8080895189956797294679342049754268878485507937657813811973816629152731448862","5473548995060050973795745163032395140506153655068747262953903039525594314062"],["5421670244628350049305853099294882563037308712755812889566965789656294099389","27783460297993155496170597876366039101312982182043709111671870965337678568977"],["23442755614315304971781240772748562199106870206135054394087676057716369333760","23275987668398619829776755982022726831412774982035003207070027103924858651075"],["28821022488438109574223467177631087301887178237935802318441087679448492499888","3954549020557037565807193724224065014842480589820132736761065599044893172661"],["18880745196851459560407667002183534509907739922499919035097259900280767789489","16592097489112993776695572722792723942410872249094570337978298198642824199996"],["4430531007583032123729810245011812345587639859268916272927453936851855329457","22167757730009190367812074936558727743704676812065252017902846207390300244209"],["4933908990398979210833715077443295860209244676830064209844709497716383753662","13084091478592928923542001820569806907047867981228382451096086039220280391088"],["22919125869674978222152534587879731243180898532703767547831874244001356147937","23496875392339167016914876672102511758203172658025361258321187738146146261823"],["5421011779170661381911422540381617190218012008506664988738502347289356692034","756790826820450953003092362142053101984471831483444194307457534946131458588"],["20121710611113486331550026852611740157182142172707453527326835097286246877782","1542916596695106506586763008743012854956210873506540225161948692872419966073"],["15208828120781946785887209532349881384246893216898307202350422920954543541368","18623411759110026264331348165454858599665500667185847816674651946917239881161"],["10893779372411378346662934359805073889836555613838413630746069699391379033771","27486776961444049111674818768704663751591051788953037020569982064774378428895"],["16361503000404050237093420529263883290085665696204205490136158597358876356131","25429653140109633555688266674076505899340295292465913125158248815438601211621"],["8802409394186950157530352401334872145467474733223861295390295643367470788888","8547256821431385792105979177622887117821065319754493556224173696387504004146"],["1729044732160570468204601067516118220758500380911094471811944950923190735902","24938915304195661603250393808262919383188816211460725858101434126697774940970"],["23397351799498290672274575508051494140428320330260756380360991980157662327286","11079803849466911938800579389323999382528638296280965233332917294560209291822"],["6243957230102471563946634631838119406590493029027761183091141695468745688633","24272070353559656652263488350222458586770231016205175299910069826878407461498"],["18090802515740608789406821863910104281141999609714056596469620451876519602717","18953457778579599502627545883293575058510640787180273462229982531363000526892"],["14243919277554593315899250096718961735672205736550779305898634957496733170610","12427393070423299026260877818971968987519938540208441396280275139782403507995"],["14011381323559870365488855489672216018789502427866735004249870898605376005827","19330991281722607578529607439558065929873904387965399414475384197802069924719"],["10919500160154215285368560135569159956400453943862407431361481839437093065837","15943998834847707163901892590007248802541320137904557957622733695558682370396"],["27157158245966642824990163400297900881540557108016416998904917752103246161145","13665797807815318614998024529312424597977000285339490755352919343499996386890"],["16499499898380436171846188833320992495551405440144612272736109101359312342455","11200216643161234577647445797341766919514795287787750472166464132608076058084"],["21515182502662576480749270826557756013656972383737458666017994946009679710389","9946166980061733789079249933084481056960512396478682289422633488042882504633"],["25359283524369788862944585162891045825063216282527337549190514631491348539774","10568413659120678334829656623532393377876842273447881312196925093492583031775"],["18122739120390943306010875274131223142788520159680323788286598197842948318835","4862782335007513279015740636676167674729993440568851401425124030078815683855"],["21759061139307756227890747623104407634270020921386504670036238757261786616095","9529337754893376472769620297923576992265976993841803290414001813089037109729"],["18283889441735536834479644584412238895740917577834108414588074210968904156300","23057900840688035140596209978557176581307553390433455301576537244560678269910"],["7293702222285728419319700991126874075496634456404219653309854981691670086926","27625253707220864092452876452942165465047149216530800592156307997014504821821"],["323062353247649558917898601737342054758200570917744884978497725383622130191","27675659874599371250622921057497097382259050965214449651929370582367094909691"],["19653138111525340922594775061057922729180900469776619787390233086935769396485","6352379293318708391312957877031216956620676324370053655802388827536830176867"],["19468080938078562320304647534640799977335733270121883769513268406506707180999","25111183892758001496623107168702291540710469051417579003803507953736130558136"],["12709057857860212036134631026461652350542545674333181885139785015020424789870","23270371604634088543125688885661417279046519539813133905171866023686417718913"],["4522589977667175656169521742449133916451823589720006190063968523035445159560","18169874242711005782622720124320044621658191743950543570389955372373098895624"],["818563046717147177274218413597460520975919684978153685371775671473041703360","504855286667501752545068383982021970489023913186753079176501198062964164906"],["3538480795858436516739672606307397562483829278702576993634013962185501267245","6563161509165386625104104112288498265180346716402855728780362681189031369500"],["24436657027167765002745379245967485852972188721767539150136761142679449830757","17736921724488705037559807232586553324037775981288780853328684234673073054757"],["8487365432648340897860459664143804599326195207243902976681619027805967679194","232667325145861521071948206760107602093666686735022868860291335494591545875"],["18653568321365984860559186566932353474350491586370926169617699953288858970962","3609742362800489059032598653899773362596614531727874217888279139063957629554"],["14554885832979850951419704778838938760325808088786666269503286121229427527063","10476620724042934358939883374480620588430285548542711252114235618519478965787"],["6991843930122144505365954634662291325666913540936346012432278248680742373791","16559012962011540660661036786577580179241995134931441521229135002450104659479"],["23359595777690328544479917161419819421233053761558716100160071695427531043271","5466274255447673763159076615942185136787751680725610643636774295584947136085"],["3275791332624046549623937213394991983886189827777275839381218918457308633601","22766260422828093714246904606622996165313875186195312816074061081917889498829"],["533860766151183497058711704064923525772183005724572955889430608670469581444","15641573006572661496166641004796530311147431248153918782548917130135710758483"],["24016998004960680555001879737280095307661688931334119005561200681061152676588","4492766955326436937695897906777628937037602868326056814802297422260893496503"],["6831895489288532447836123515093880079177743809086030922159194285638587324810","1487512387083675111693727915292655261080735143919134967325287794651079642137"],["16289364160697532938477803456713686100256253503494749116863156125654061834391","1443195312317933171334092773955945962838315659289576590689092002895264645250"],["24524173293511365081519709400649740555263422849088995296878009507475901462128","10511465046411365587458360767328628428574871788709687729773584283113448237200"],["8265719995329468265657697358219972126532347846136148276778170083637311830999","26745244188059799603406602692415234504476128144018135821886587401162333479510"],["17668850822175013432835615777434234233466205458227351237226183234466845607934","1484596568271347860284041038260748727099743521134896544996953387781268005056"],["15854261052377147230474960271857103225630080390765349702481762661721604912769","26962441894676026120060041933831257628718013727833400260934287029182464999055"],["2409350781179707695079560995281883420564876022252447552557401460557522056507","16320128249431877590469682835110858896161230287284518595286163430585158570014"],["28420214329143790979890311974208879267140399881009388205567303080928622524547","27873508218476721514645179801458878201620782684937235046741095487982398338168"],["28400082515157503105339766575764055510743517160651877263073534959271389079188","6533111462384376116549327796159610840498074609307359300389833086014795573108"],["8831019854893959539700409073122238511324498939597288385898120384430244938574","23046428403984078072387373828305402430948863731748306431559977967690625715653"],["8851667580932891777529492641298044394307122686584240379210843790054471183990","27214879934922111457821371212554750001375903924486123963790927024637154472323"],["16393319252682601952885269893407279655136238128415942787863749745684029892962","6744768313165165933839835786959975663069955944683195313975006974652567583330"],["27661119270372752679416399475372981768881798387826765469354914205039342159447","9413622137961023174828790473128060240447362250230039617416571732459477348854"],["27353746913628269757448787295320755162133187763503821756112065819351569110749","2197052796429817536098582242126956114044985938982586999817578723922228204265"],["16003966568016101714296109512861023636320006087762171010845785700878991639794","20782239780202190644231074118261844700249300368643345460981895878500670231585"],["6748831388063644071470477164468240746929776848470903788837935770663255496506","20711905471655346862815709136173593390887271032982156155804255012843532542162"],["15198787264105899614208595929839909507307214042732411905421102766982456191227","19605966514613211077550938362115913214867841950384033033272498361608020927749"],["9390708444799879707924394996947882046907037010207999087856938463842081988810","23688635724971491932715507385314613533908414097563661464547995104948075462965"],["21405047897007313950797692254174882664237886477268855288973584019109963041874","4234099815859443126876155179215483863275451848931031556184622194681490746877"],["16031430469340073667515393666707497761966685571569069151210813774567413513476","26514036529777983277612465234041344891558837211392682769666758815418745106786"],["10949319772706849452331017665916064233665208297833503429519305197421723228083","28732444545464589020137662004802288949772030166037504930796233977840750758952"],["7309923583362282781479794955367509468597744692523953719233794144604912432446","601742211826678767915538716688594829948976814514192054266544805102205807175"],["3163417342146335806167049498783666401196306874527191487350095876302461613814","19045279232441244583328531329390879933997645322257922829567140794642095098948"],["1564890460500666401344405359055176543398353410655279139213858983796314574003","17493702075376606163151012256711806310034541499415621853096859650462088171010"],["9889192538429378010683057781433413921707020479480119832234460785719439927292","26917452558441108074766649049486262073731865742235935367360800954747309489763"],["14524825275682648358770633883122097286565188129608090130303113007228563366398","20584196220493374194774560059349714409355663367826726925435383998875205536758"],["5001562780865488645718359195275521018377966665535856409519856975731818708378","19920400097850220676180553373601068690205140663624410975004224903341178193020"],["10979677439673711865703848951005802954740272040352242143948428245478056118602","21326587462126059765753953664882494499054862450695940716860680880532722959478"],["26614689753863610810662502677000300897041199245791059500051012362404730809023","20831537327531676487284030130399732698684224136855190054389812503850291214081"],["12407959456924291513555346392240517234780090936317683461364445514382906105064","13142075672167615495869959988641388221500978134052428372485288112328144487737"],["15835612345338866305296183944052428577060449599766237598997537938894427403616","26953708899925783822582585050471182970483300843028861573339231860544897920773"],["15830143809794595598045442065975079819122650471665205647098140223078307434564","19710451598562216928227261286635435196018653169896571417616744288024665947107"],["12484416098282760021606562643657908266900469116588668496709339461933740138496","16264025363975168296385747676251353925616899223349322710080441373487338979458"],["2106556570078580985668924261658779231632338951446353861352777825504423303951","24925086799572244103900286161130578968726467376084974675957074627969989640444"],["16416266663770890322685356622437234586332847842069081992797334503496280511317","12562828635291195473868683923162413552606055192473995453053919249075962725432"],["22608581167475752373401153987294303556284181501600886104859086241147141828239","25348087123331712593691837748358898934994883972521615788046993693160064947645"],["24402749148159204180043994958686289348892535029314686434712985333076573586649","22701440750885264084952877353448413445757531174929647971210064479827757066369"],["21624830971977261918153372522584779172984548412541219189028170401277727657912","12141515394439000834202702400617119040798239135296443643573681737911519366566"],["6080250051638429130138903822190692298342876284183871813061702576286458708214","26774184522307694790276697318440179644617088257115690273724634255341673115703"],["6614730010289023782731058669116409027212654304484057545042884239933218070801","22553368825815421797542391251961277503646936402488957691913631261247671161131"],["20084778456795575431379508075670902442531454964888073486621573151126357102147","14863716033096084449273789317878213316660243146503610137383743508077798416687"],["8615900377829082963005583043442160093937217188036576468274067465097345317797","7880574049230758352476011579669250930205747909678563198521718554593804516743"],["11189993946130835210009704572773641704759465473605057930400959845700239846279","25584308477597752014265645434756254488769895521190381685943690297751799863619"],["18387370506676996097493819304227422978605409035092849977617420950189266845948","24837737002945642382758640265310320657456512816972047216211261596713979285310"],["1884777862563967696212417553680517346235584881078650756806301635487166587398","28473195491065566178909278388065400984885078752230743580555445605219208418240"],["23895675323662192649353757218940495152647321776107436443117474183006864129800","13139594888431481632764735054287181044934965618424838765985531744581308414912"],["5252924715367924073454950714882658033425146544267058843818885051039401579373","21023534295625744864303999402198995959144252202478713234250381011099292440431"],["2732866113805790393576015978565183925650450295252794359553738262049848494419","11150070906001163462539452979450866855368031489670449793284386767575875233766"],["27316086949380301179649138129430142582774155861073270978421098287037489638954","5696247971449876679947685171739662525406821818341920511671516450871045318618"],["15642920673879927777948433689510915886951186463581444400344442244878499905596","23412322794888605362983379113389016319180311034359431041813859482129361425124"],["1411032529178741349404647350737266603003530210164257471261218895867848442351","20976174426089890803928296502311250636120312914891597206327445208596508295903"],["5915416009405158105239513883084104732359030562488304977363175123814960310867","28636516104044037959947777588452167472168224035707216730943041466776089473453"],["21196722347524332379785703691485680430805848214832179757724521930442250561953","25874457774621092530954035042199523811595880061251470768541876888085516814067"],["22200023553433454480682205816006613743870419269528393192902960850127492033888","28912715740812817361909497394901241070810688487842126609723478243193722400656"],["13196381843796125313509699821741941723970400832004654658982018697909645591893","788089746850441162638767874143563209155071141550032161378524148779956779871"],["23204478082489091686167724341349307265672778065057036341550997822366373570667","4077276474658114035198386720683484399908002012564763460593058993608973826660"],["7286079654739454427796533978478750924822135889327466652881263020451574620418","14041051587861355526425183566389030030905895483486686585774747389170783169851"],["1240115699451697050346150173683719689531179273120055691704939943577349980822","7222186877173632245978233493912177468671340786242898130178143077900269456140"],["28359200192661407816321749178112623632490491943186792719093799242723297729524","17233848021246435949000602181040228584180963535465974251038215084002410860662"],["2205368145504491535598697303814988981880399133300276007133749843422011042601","6839480146582589647061295295994065666710673986442147994492588987092026461495"],["14359427562922905170359247255874319503063418861946402487214183108405375008565","11492955681807364830138902990500741136309914472737110247920635499917755376917"],["1394301944331241293494730932828668049490829966573785036306466463879386382861","6753653590648373498039257877432416669278611617052516638806770231509729553245"],["18737568668927675529857804919442930903530850364811386842542522245544408447475","18575731008520352191496088129426850722441143195676450273721664419495710685273"],["449903376602666452622648882000101160277501708737530734926853350108031345476","13638075613783969161213020514552762779032432397471437805967699238204195194337"],["16147448341294582386899068582604599843126997304695540207095938034992327951794","1928374578574489294171469965234118960957601256883462667236562536169173335354"],["9272630729315485515993246333132741777539662498636556149562557660130880251993","4714488036458713042435563845856779211636577503071197395913680091087102825200"],["23786962605834602272402839362805747357453132545996967966991138767962558181102","26182506682395978806969570202154698124872436034346024240608816682790301590448"],["6070643843011442714793514984620793386249459964898169734856434959340011067748","8211466626541779251539798716166761695252537137935527482243909084209323152163"],["2958993630225707355974872404636685518169972935142736159035154219007111984681","22165724717899660796777384914640422135662705013724730938515736453651574453245"],["17304397780978030721439008512811954570532064087490976591897159631853916763126","16079235479936596035453140688742298949883356193809184451231781678479894253650"],["5297020293170392177929781525291548471125741161306503979357329892220973528848","24666883252019090094940968285175754995766963018373648735785576340741081705700"],["21497905647358926341639373316038114435422207616672093340209969945729871003579","25232431146109238980697824959669385539594528513610033957863384963338140840777"],["26993112154213013380175796667439596506924825222337886091255889922095175351598","9333629109472752847188786735145278884478268933969685938798414399506011239025"],["15420887209538309410596805688518788097195075444795267705293336812940668129127","11253527998768046060120340917998785165658143996138458980203991819610653628297"],["21987144863708686954150721266590400213344300442414964747834839539833796762469","12555393577795005993011178245233175807193979099613079573295406828919140330204"],["11675280034461911560179054953006216375599613363120980150634248288771615540923","20718781121499980371239042842407690763236239908557697464966557524469875663578"],["23021555052202203085596435234466495677231101301859163685160631055912279761771","26351318964588872312089213809545014385936815012381059222404041046881998099636"],["7143995924000874654387868917073569897538935653868316588844734439814365718096","12442013808460692635988096941617383754313633689365666931803445626732991936445"],["5366534844933765917840556651711740390847437665395959797080258148406109769591","4540339680582780651532046904364296846401819981863726927366085528111712990359"],["26052886324332430402917709191543002985978761572393840806735170825295224907524","21303933943707517172221339018668343547897551267326031828252861270712370353053"],["2168135511033851971904599700589270720031758207155392852691001127245383373144","15509007219768209243960568037365728065634389924402320129176779986072425061460"],["19164362056865305922942972332044177274984572434615334421207212406791685067137","17654282959656307382310881709286588029178790014328696566763267098564510050454"],["4250668586589834080826804256093431146132012744978542340376315538921480998625","22354398389951689074907429592833229043086573611050698772749869001667237871727"],["18224299409224389369837151041771344083151969573091651117528897669303007204710","7334343754353970060960602061588988683216551959874860543130631016998935912200"],["22966975830035546500413710685164756856492020175838769466993506773872042637304","2491882350547117033415795697949444596143757083968045006382931162894000764595"],["24134921715194326844826267786374340124653666200421380857132931123834747118582","28150779473629626542914774730441332286673997284442642912741671940264977186089"],["6802648312594147719321643010610776986184444023917363414588194161495739870282","3281318541508219248281332420622252715687747661315391122357237849624677034193"],["11937187103571511373690351104860723088093342640441510678599238699146300760011","21487338136552079426966713982908854439090516695059147354183100565086517279039"],["21858987387411836509258823074762054231196914101524443372412619982377911547183","21624797754833600162602153550530184026455430177580646606598325025504600225978"],["4739179613748418188161562057997084283914455842752540072731543972586541711512","6351273531707698239333566560791405553384285673627464760536439204800113693104"],["13894789944820313022158280775646291455722623517066839887242684665336213044533","8853838329023196477959004428720289328329996637917490809182818093694736658741"],["12774250516506422384529171245301005986175129792822538990337108016791356256288","25609999716923166337995195279958487201360154595638829509970692884858348595373"],["9823962363720422180660552015913309041707724636518754820440468656467784981081","18855557327081906137646146564905520457968165748578469342511132765771053692283"],["18150782802983756077443726315831470652611404935252743935713836195558964010267","25975798707240067564221580101232046465884713422399081810566478859411831764285"],["9406647557846509577019002213488784501379614476673914155638246519786846458121","7196323091552187149499128954379554993017397676224691265138660610083660278924"],["6287787854889821708424061133499899012769064015074523918650237272624113965217","16040095786393072053781517046018273492615478406392888073523937487483803427564"],["14793454000601649539250862127069352700306701838496712669582182093847693432333","24552450937484663110788882201883260092461920194543327657795533972918439808909"],["3031759870991341492105730390735232432761987059433725045072336090216218278362","8450467257988935659676847011595184690498214811661196700962501754398831655759"],["19074675006680221852265854753104924314722244050590636720587233597829784622978","27309530949352595063630458726122488180818762824671199678387903139696926232225"],["26148177525894107958278502700756399698358978935323619261247740326207200049208","25361795900548664821045736461127244542153610372590200041949635806211094021137"],["10181008662067854808055847414073898420136342044721917029008117209144544720934","18618823156926353382534336527860647943182961720342064166400166191767613961542"],["5496251072943260306353139077697721146346686430741644736692573673110749092713","3638073960222604271063791722739181375103391008107864635201811090359823913470"],["28557956282663706467668807459854705669687568371868770044107854341559840562102","27874405253472606948920578328148401949185062832858437442591727237918441862043"],["5208670205083018253678902113344399063999794308837195228990340673895521973594","24834313310780467286872211451045679060723037368988262166769248137179714766123"],["15243385761032105232191433187022364048942254494363606264629825162217477709198","17163293362238974333027576476533341118532328585035731720550355375154453602759"],["8597531730347488045846354574088114112410152409934382970812379662174450502344","28691902965701563522488116915601784301488472778091151456733846413521821672688"],["19755274377622763878708892509825471526194955173442714960023103753800069911161","26689382846447292357301561909640780201503722768423278161681070007783833766212"],["12233086036682634671364976586957983180067564208103684009006383235514881737822","24130622949054712088368524284909476940083337035542618979531474176802620008455"],["25527213553266312928326535213092860032735311331441508391094455660164391184006","10642626309507570353433256431812169267932204226567269295590361524682186170101"],["15888643983431337762117722409342331037249197780088085945624274272619904294826","11134223535181440981517756618955421233532090355519502369571109011066673724163"],["26300929632516330257177017979003035728307028742415132696085356026879937633247","19386609657118231809744924542935372811203169338770119313677821116187415143407"],["27657664352441587999503639136360431419529851379201078663919593578957603749073","25018815226705757969674092533193861156227604202640976310468199736268618152516"],["28902374792611455796903370430616532590954097930530956013469144420247047334220","13012085581015611050155367021497857813898051077631525668425431795743029507610"],["27373741739689667231724745440851216820083156063617957175502192683217404901184","23807295323197459722592734991145828916140831087845975327529080324407507920562"],["26496343723249318340966704275943937652618541887259837905731858425977462066377","19372083554251088953134391220783389848125312360954195577665870358111884516061"],["9412954615447031277203015159871708233746953063671650497877068085519545230787","26483290484657010944312083984476911684457044925803995936928867629717831929263"],["21262013597009238589464276639522096377684440241717285182558521365223656281020","2925560240933552185526417507367933349926825878965087568321866084281198609844"],["14618716448682128550318966508212617814930344951094194263145010747606937342423","17252326581347195713941461895041548821854251546824481461541416013228594966264"],["3377198532173088282327613594163776677862901200312412601934432109377055230607","22797085462641020166922353162977380699168663783791766859667317377741210360850"],["10316632069563241788762484647697196247085886518209468484329517954749636050603","25969971330041713982618961821089764369886667358989953476500236614073876463148"],["25712107010587501607624104486202687419770345195716427977746204766790707949482","21081536371571774434307557796370960141950421180272855610611881712882209266408"],["2050354296672493862202660157900761151077567543723231005185329539956839230003","21484291047961990358583287420406390589328891317798254577276125207186338643170"],["8326288813972044562514263499674405388766487187332283900893433225671067928240","6018642676113467526858324689099906781683377176451985084080464400709043782316"],["27461363575180531044424997490350034972806522709386305573550462568589443750372","7840296868775438086615546665184910432359675966516701571403850206160831517614"],["1987365570120079805470856172879388540077827582853346491685658931699409543406","5636920006064595655454043425680037131617091039265059874319058445294387408983"],["19415219172113881786046968440415898704244956539605102074727051217050061097313","15953102426589159094883926449806574857911769562013757444709816281272587194114"],["17370528967401370633029772730048584040396189109719224354261521967902036575803","5780987459821600050071965229791989396856634031517723685676475904629884901457"],["13843937153011836127957289486697213755555170338951109940507667356348190389142","7605186363233519504953345482341932938202210212443241220798270060994702666981"],["12576337282664761270902616968817875718165147498866381525887600457625828140135","16011312310907731386700204547286246334038472825685053983551274166945110677797"],["27704487681107738298955632179963020935833462488726622791481575415551632932244","20965373337166712132804332950821400105721074532002953215353059459087132933730"],["28855450885758566996257302771912029869643383622807051278514012965447133349865","8599159127995355858826985629588481111178469022742246290232241781567858576722"],["9873379159402192707660872036594562449843884885483300942808865734002073120098","15020505755773063424041002819310629402186315857154991136688309400854476974924"],["28705067963348723855815653762379979620218895642706990138179742575625004470763","18485627744663002147795439764165728659525296034747357514136958989452971397985"],["233384496104203261505377775248875735463779440889146534325132201578465917039","16950309284558738416984675470663895386968949548550411149830321091236789966632"],["6940900277820182339401474319428598417593995153859216105607534070627507904095","21304228279121663699830182001043991389132354579878850121620227675860030862464"],["18943615605925402602595459571363777415194906921814520639916105265856721668501","11532081796185959097931138261203007575372295835859558442369328177241197403760"],["4212360329400955121256561094035345417327908124287034569945787160127706906797","12501363036202153078194725956245977130150104262692062447451011790026545228523"],["2866692467301271866653513734552659610828748509849763606034741389492214221023","28827124363969312409490778714794486513025322779584502903316950598184190351312"],["19893781155453064756890347771579954875190607887283627767799660317431202928885","3502300733088680132936169580316378336530873188811332788342082814788372493074"],["1772453271770200576793974623039605415152180903279207141362304174175898475405","26317502266112553511836844970874494684640047395298143365616433303808368148783"],["22753255760008206997954789908006351901792322519033937722040239638234098470411","19772514095137321108648399606432483244587514449787738446160967587953738973622"],["20005229748158541670386190996242400724113194864257618623366873571552292754478","13655289395397104653620604859990371375829774566651783666297601355595036389774"],["12926710059595140513666401297627701033386233776346927862660150694819078371166","19414264927082390500450529761549117324485746380295749575162057071266587086133"],["12483473243302212544388556056216719230527028900669065536085703456164658190675","9130105990625759713456291872835058110431636851833555148016149131398843794617"],["21810426130753067479168249782706352949830188919782765416553901774800187180076","19481073199201524156281512566320367209583964518057435836363585561911680716286"],["23009054934973579831708817389980824256037766369612006661270734853532708865193","21208121913410685798987942338903318219627646677871384721427622519792878305874"],["13450243453687661544361792863976950686669335626995051288976336716920443750596","27210107436567623283691471248564085640523510783894980280398852091601572677577"],["23919910675731038612451848576825800545685874611365294863728701833321254217913","27801638926410244928827980856976063706511890130014286914041701123615469170891"],["7312227332641466170236822652714321849813811099433718399042347224225584212292","16064868834072557255180336529464778168380788440766811673188723833503848823207"],["22933479811908078001106549862275229557509553002747749020443317813737639714604","10089823124077613610943566199940642910809606901100503473658035279602110501923"],["25493765565323674685738955308243411731819527437124264911191655413631203554495","1749181025962712912027196854417174141721893006262361961600674528676905300225"],["12076227108007547790056499688456097073211211349266195335058678727456569277892","6989595028389893696380795003336981789877651203833142758582406254834719357559"],["112760698584885783234319566173238216880823595673279279094737457598062538834","11438308995308819228773812467085713346892342467729285681195374713704268257738"],["18543302570520970852717036059747602643853726233730891172710367929658857333860","5171755463101291041954564020712992997051265425935854227377811403061344302728"],["10402551718145591013506867832533539698507168330625826908188434257568311486145","961898843993704515519699442402500792762857321721766005398056341561010439509"],["16278230701123726504257398736014732464336042682825754666884017013300077154486","16633489650945903858310305959350695484786402207607164913932414653904871713263"],["21078264144027840928185911236126145172832927541888998100738919092238506722823","10609383519740280463204427401317043049019686927511779368421104344158392051983"],["2648116035859490182382879677358027780477732231001594832327902326167350789444","8959257203490490468492820637934232519489295800363246647638905023910674679946"],["4466054048998258955644351458318694000201205505766210284758071245508398673684","3078519596156163487308570358705292925286934064325541483985333371471665579349"],["26399567227800318013106155234219644315102784629611734877977937096080308890503","5288828164203275537892313667895259411360994828608666887806083698366717959975"],["2429863668556921007867473546545546997454105188520344166588804979882707381165","20019817148974778100955533332117591272742114011863631225337304461807013331305"],["5819136561191275111978880471391837189721973520959788360732704382849779005639","9523972931868470336365428366867251355000254053906877917935581310476888490178"],["5960821238482016063167976433787078088509236615434247940997851451860558335802","26761119110840066026961584339908579833158298571829669559588487692831163011950"],["17714723770095309730371377479804825158843547557657553947620539026197890321332","11081924028037089032025821928510237296438010880149698507623003192832248164582"],["17745951652236313405458361605777732675030158024902786509725047242392593176651","14869705175780085837954753384883637298619915569829048626490988580701002025520"],["17593308645928262359166463118807468825326927755878845305446474161294233492268","5818291819153822281996971527668044956470544919057181206011999514831812094773"],["27989078750027463300090515672447643604324942918549704553588284518064474012120","20717260314863385555488430603692231401717693908701276518818622862095849317563"],["3620417979432676228478553125113456398018039566844592376793024683417891072760","21682235705317145802156444694855234254285835501763536414035226375834641434476"],["18580776142958145164959382518638650921021323360894802043919988721748600840077","12446590957209829896031089361170631874610508884226352673210858750691938420650"],["25625377872884883537002342031462875382784262355009335546608181093709982356244","7937683524941172476900758264287002201482196780744973748986564092554726991910"],["23635855528476520838906636600850147464744107028357917384094598861407580490239","681556408882664954595506571893488459712617859422062416348740019302561037478"],["27501340707899513835376975348987519824721414581583604741118086672410911608604","12335400937355384900767404544760198104777781871477470835416419476493130797328"],["23106173116043824776036901175624682529745932113957009423535852804812682001257","9874930190824342570287665485373856608010241540010793749675285645077466205235"],["9130569524212197493539679237931438063694795648397986063135048735306799275965","21510662359607798840908311999034843178172245190008783643223342593804056465750"],["21745740165699631985374023044448971890936760100094298575738308561743830735781","4404645627796111927463190597322194263963731204176654094396237108575029329053"],["22014221380421988735268160621988310246621704192942858948287651881937163424276","25572362452167503169324125495978181050690407396612768607748120258190746802302"],["213312161391415829595390880958988669555864667868501683370713947264357252030","13061636028090292821736170892457227900140622259682644531262340225917036316020"],["2710984536101339815819289248159609339678014251197447800835106660822689867873","13728481071758092560023543994493164543517497993927761764797131410488991208704"],["19408435777085788755471325360942217517677270072426926137363992786370180356835","26615019103691242163905599703029740932063484602608345342113670264201635810554"],["28326736280870574465586892496757537809628482811936200910396537470465973845771","11827297271051124762977650651935998026120602383825949969817744898310423051961"],["19900679162245748174158543121420030854396695611130086849456002887326585474642","6922678744470153182292518318202991918273087168454004160292553948232675687254"],["10228505155934769872933875233218029661532083200564562236233909165289556167806","2017275507623266748695575334803447776561808605567629878855334640090895335671"],["1031546546908987552063809933329164622450588119736352407489089737959894832945","18447156122308596298219004791704204214503840432924507281384994695343733847227"],["300521682018426945153332740594988780244368629130491374983067613589777801907","5487229094237027886037366936234708363380553538629549537426488808657864524062"],["19882258911049449435067543629787535709472928553353009381286030610663445902648","9070086936361885112343000671063405926526129699885469968909924478119705031282"],["13623502975988596876286420150875357775621927339726010430982911568823957904781","2407416327938502889096928231720921615717084833104000110858834030011548662990"],["7756231803454754863196483858294783654741028036122197645620815834102760236184","6200257251852487268992232482798451129144881915759683919186430814195528798613"],["8810014241955477038648935072079781547299747525568864173872755167855471147353","7826398806768350358046626727242921140322883956855444457065192763430354674877"],["20075225524078333297953847118333922299354652629480446989166145440944322142671","14542865755895478111945097486594366764795354008048146067100968220533963981040"],["12293728486573313082446528645466929455002705689397946523841734168104709139036","18135437153154617462553780776627170726636484780103289011899684980843028952945"],["17001345803827273402202640230959989908743489916819250635606102165177603856586","11252821487894035246212125532772469406795225701639547718752951790441144583571"],["773191280723028405307098870075285658385448211532687380041702371932026260207","12393844223030445721195768533055953321064721023938839455383029345353972461416"],["7992323798515271543438891133914427269274449510958043245473195854637953645608","15103285922090507135637741209767751494079341812146024003246794481094192147113"],["15998474628314190383839630314969683372380708329748171102736750011149717678626","13074582922222518741738688174794393983722290238685208162551103298257215460245"],["21525472868481008573612904351940761114630351936725948282183273193882867305994","27186685565344351618076142313076040116176199524233866761117031141356281785932"],["10065756529873149567271083372264357146926057521459745671548954250270923114557","24095515993063454551233597929194556898066493539718342478935828983065495211829"],["6361889080628435665746304862754975550806126397526909353354684580940671542641","15374143284472363866338845372355084703698105249498318059034770113906459323748"],["17021103140210509245169492382529191214641608540549441279305927835966879207488","4497884139124863282731856760722221275055223037457534876401884585560671626218"],["27733702301316622467352389147746189679904751304497860474180608706718058226707","25576521253326204185404599688266735261252901543596387534834161200620867051149"],["9692691443464160019523038610097218370733027509641143961569694063827392341264","25644159637839269803213241485459267372539783271130192649546731037864679208314"],["23883267096689377350196195352409713097048599180791483657631938211080614070547","28836220512309265961417836958053644544678802898412143681331683899398401308932"],["5504528628290806482705817830792032190455928820225305652354425208114294002710","16924858878930264143594796222604478253146140471897976360243643868245316895630"],["9688602934252212783635436471856426792599569610498309012979771980728572645671","23930248205084391016056282988526551502417172289423676314876642497556649961423"],["8300671496783741130566049028535306562621679664588950886546669636361745226903","10261573525392820420733986649175984090652084444644124033574502651824104744282"],["18446790595640264349091590034748629572825071609070777536959952939084604761912","26873966100146711115021787839908819185781852488040322722611547450553879815929"],["378316727460879037380199861280498445703733353635366141810420239212144382504","26396474237520881267836059841823671076802979623138056655915168229395110833078"],["5704981103686291434979785631321601716115086987588191926464016285226310024803","22054983411417745908746558448713162984795851226819026356495395458433682812692"],["28370582178162113869117247530152058659028191352049138267207384431628489593065","21450127781915415775991379944968120290586331363449841663500175828579348297469"],["2956348199531443689515392446731773677714912764665568042176617385546388184619","3025485222756783244063802481243770070136597468040533300879605115738426577284"],["18145910660091082198394196434313459798194440425341249259214788788953435611859","8027883865276811064497979247920385255839350558480977043155942593375827762623"],["12625218986737387207442594016721633609767867155519386272436757090356192922739","23636326251302514211949193339108261443624489997768944790034042872735493975280"],["7488914341685413178775341208826590523145355637628506040716619916313005655731","5579638391392027798826087412421235347383553551866562261288297992501942597435"],["23925343258526143321397564681770762631465869757625872391033589923382578922698","25379132905493572808536320314240719032030314747726139122983074611672723724300"],["15385172498219060904882443376827759381361802724565184185239549791472787088857","7253929933269249581278851812916149566371514242750898670368170852575196373843"],["19686959549834808673011988350355090491682089002156544299897537581377893072907","21119556850843512774413055663882412639215672663078616519461487104347296887718"],["23738029277681880450301527456277934234427096633391778204175608515396870423239","13634316052067711790048351651036487113993429924593466258692159472651409029993"],["8240868553260379094116941272863118981205512337093642925033490490065446763077","20074940000070681479579730699912263737385867615983120352119131205976473178111"],["10022842584600334156978010302101066301079210712504091009973761495249015807230","17262303072393624736120868498615467652016729121658804912240788793124038418344"],["19166185006056862562892994809519924104005763532507200385236768593967876174815","1892116065073317337233248266802539142217503034700981214700139750875607898282"],["16982884122811774671390831337179680353306763880884927601775053445060470551413","5136213461779345392724091507761001971933170377137892934850275228756835991337"],["20078323295102056633559793210653847823313365611305766191666270995900744298560","13702900636871039233515636726081920086927069260266839869236711507969925510560"],["2066270309273751805095982251217097216543764071014023286737084437611822610268","10121593117713637935657349287711954623321344812941273077698147724307124646823"],["7359825234995083339629448050060313324068394233828824537435302775544094124401","22462327327506716732478039984244283005561744662923778587536469855562611467052"],["12102291254329217717234691423394096310782191382911900628753683745562426753156","10233422566380789388924588868027251635055625071643815198491807677227861513765"],["27577505662884134795713570281642344324965512756303687589963365356454201288378","19745996853210157524442755530862235141386275322423763411409631200298155748726"],["28186979743808467694524835452183951489680794061569209956340459485238292643644","2632176844086644055520599339956403891779892069686570776410445488601487581239"],["10550917122984263946048587237672611603626727879466605246318899283215705211690","27548727745465413014332217005265426049411254138481997448539084952470107155326"],["6658118366972021179006202878941084953765177879627748498609963408536558738219","50619210993019358664785785752193003409297336039045853558024293501982166188"],["16754584040993316190867309465738612847870917743800612066973821257245802521825","19122853432742558285557894159164705505957082455980074225098782712255300065623"],["21484374049084324938880615050342489464943967893657262042834896359491087349669","17728942830728154660901444701220585447611873259640589832120587177634194254710"],["12279803615920037485286754354531220000574869157078613803796644801159483631145","912253590204349832488200055499476806190365655881687958801686502676130079391"],["18119292081354762030456731391755984476584526322893295943003741180115996545894","20787902150093667202449918328996270937760516860692489260094204689659731788888"],["6992240901113175880852847174265352648862036973363010848169756997231926629824","9544612077788611668800751822234434933903799950505848295629642652370997952758"],["5707957820001969967309229039304746775312804057075788226803147615941841247864","5041605712076101487183401030007625570528841296321663185853406683242597091097"],["20919382739886821633599699487119695586191629238999682062682233191684170588772","9772615204513858675756168564918671190419825438086200307949296019678226995204"],["9493206728861226176697698138355462609908782757393058979247698414583500066684","12482861438746273455404747388384590478581666126035438425761127643497802026175"],["16941697608166463836059193011822956051588961405903148453985898863185939203834","16447643564678037189758721835625145449756835747437333960008964748016582093734"],["6759516517315757437742318121699318598000373084057332187840935836397402003828","372060510916290584556403129631558856543249717728792556286304157987148678816"],["11831598897442208671622987163178671044993523343039676545964490307180188857366","13858706678937257003422883985233938040549366770511769521235718798983752419944"],["23425719242658916837730771101134478122277526151838503259978937027179746316658","28044128776440221591844623482498948062157671285192820360599458534861133336513"],["3130981315959713984454745099179870977154264892149074801464961308371972373350","17665470319160939601798158653911866059249841678932591587741562220919495519548"],["547569768374035576669111371653592550582819210375341012042124955468858182828","1260413227107774804742495312900501847300170394210439360184958175959995636366"],["6136421724412001932454730945426078403275848657845302568643280213218093192959","3057413870392164671219658587554789592769948075856666142051055259658543905721"],["18443912320015999115273625007399184089884898162151547174052584583874795854329","28893799922810830878809169582702834591840024434222434798316247056851017700337"],["14690684021111088466921673333074417483523346334788210000889741978531711802807","625436257239221999061737633676004315190227558307307253959476475567584532640"],["25879966568308902788786376702578489510982112967629554075903711477059308733360","7344090981337820528909402516334647541897022573646214001944775969923692519723"],["13659811900206636438442291091360476256111154334766982033685432114378165139757","3975642893762838652324207349693350739140315578201838967702781232687996324165"],["22502026053848021093009651257695727143407291232083844294031316776296405703454","11456413598866819554413259766141790508162054665965731985617954561498766962882"],["6322753397900789490537649091639599036279120878140851439863325326783485919490","4960312155480338433552960142355193097003745806628370647624819853297989822184"],["23549114368016003065701923783910077800589014769131474749703319235279087092396","21545996836646148098694562067483885873827599352219996574560954753871653110943"],["20329517383885419831948331475443032846513025963780887620022801204462517196388","7244225788991896509442969061533213931570355842922799593654647336809592392516"],["20122839932686999763328885273818297529615893051891790478283447579017195490159","1320704073550749551283686046832805270439812495443641267171207555197250734828"],["14331824422002849621674962231027499638944588750593546316043971249503289431574","25844676987286126016905154549123699863816736572299113178147909355425248155245"],["28919596834196879845591250860121330496111277861365050385857712436097109217862","18367451013519224392267150630484733717128188254058299732495843737783870482446"],["18997569651544300299455253459175422892914316680136593215504036411419394012433","363521571268889180816534544659012715933809703880731329094575858949820843784"],["23019768970525022019297069246078905783467949040592552079734774496521790133389","9008524410063507705976363484668627859549727997977609032163051921841298298684"],["9299242669944216238008210065050547131766621600191392518584940752638959709638","14800558009110921451274706260471682505984238671160287463707904425531631841291"],["9331603950570275081569308785651634232850126088304867036009652106282517450947","17972666854272492762176376878701438114115052509305926093879323026622580111434"],["13281622742651882805866575713037238805076824584761530253688656669871715760267","2762871957784879309826634774043351895781427621063324776871489013414966981053"],["15338826278953988328398284767165811155174344711467981713166200959341585476527","5280857489816881914796029469650976314389665181641343643897844767326045977919"],["16758493274866260556632295294457413970357730970095963621424109228602522581613","18851753942191085272699434895675897868096304481370171267128695523857212531780"],["21440430400466705426858815578232766549344770837318845930116775958008989348273","15786438087730890240939445106642310173945412351615485033135451291232688174864"],["498749817537534738591037841161176843725716687329591605532512462903226385869","26557285356707295830764744082102143718490308794461078085208186018382244130158"],["17352312939379390937204191003336839212734682844801053494932461846982396196520","8898804326158794157216673233686556287759613127390686011296883690677767224016"],["26644988816154960228676344351914789594499706115437783018935032012024660933255","4014940967495067742522630176984704024960654901842287612689569048901709937561"],["14910885771737261823405140228514959265455330796382433320513545002357129404445","3006541302221459242402339872684219425346638109337743218355264185898487379154"],["11860713507280249413607765358019201176696694898390026158728839030075829449600","246958231476720774637260693975122661957372270657922486559659886362210245867"],["17044317290257979888189333702297543057769764321683448435581680343342764811622","14168403291056002543510102572905274707479948282146704688885852424705731431085"],["26356254359352527969150771847449437944526367569049347662457307998777349333947","24810909435520366431348264064458530863596135816135789764507773583134402107012"],["20029573673663443939223281953884944061611725297255624711712377795371511219825","9289684076992885556086797522339857234413866529182458486421406211791255354741"],["21755506568295019497641707110068752711694958645767656121028966444640381348025","7805104403907464308216724618517655686254801312127439065424957717651350645945"],["23577318965838817106487469745168903546739926553553086593507743462885877308828","6139496635382856816339660615639073669142441248148436994581417458253665080213"],["4034419631009020670192775619506096330652869195242905468973588539927494702527","24823179043076273230381958144285143502665656120626326175352067275749275151451"],["11105476124362921172869518000940305003780407499708794003646490366864807034915","197605095762535376099403412710937056846978673236579618924005285971991815559"],["12584587967759276812727428660601783930920333207448546001152033458837781437662","13411665885842269471656188788410941671576673941036217365810321847735855510583"],["21950683369343758016270552502677974454379213415951424567446273614055801071008","14189360535698161687053152344354767860918892067943850271598216102131018362141"],["142780127402186361758872668385047475213620652964139065372086539869905789779","9038781330501632678635075472436058961006942088971729461063561852152957585302"],["13390212369365024654258352106072669498496868714643771800832488147913344343549","17081921818291943121025157972876367596281422661739066229925365694485410187524"],["26478971517055102577042274108445018210916480223040087220411035951161748080974","19307530072631654307417585493974407414720924966468360041998592617125219215274"],["422574011661355184211401736259211116731790011877990688557979992995008014618","11080692578999078333103223770089347149153093383571136663277602423112925267458"],["17220357879135205130063605625349291159843914280286893410641179786562512759929","3991444618027191970772232902567555905002749835701609842387745493323073555729"],["12859132502277404895729713570593135772161108582317075384182284225738921470305","16970384493705924916202179461048473088099084524869136842000452465155971224168"],["26488175936137476005587238215300388689288814427063657255678857704636118571877","3568295662516977066592701368754361477885341865000721503080485445845793262267"],["12102143602440870350843813071542267064046817559389014502749859397326877665233","12327824102047961271097422812824257163077848511235059058117602079085917533965"],["6836242908344253292141759313343142086943032603567514179702158312749404631376","3598181438258782801438239444919005742066693583606194059578222848919831201478"],["10627441357346767819605937576125477457378862634502035681491552308981767351218","28275473378522323119208741228526413407120274834259528507036398037838685298234"],["13290305081662103363337490219254881734686397898124911642999236809338134741372","11513453014457930222244338638118441435763154100840108733608779636586159340701"],["11285740010396434223660310225821824208489748404765946076565549447389237666433","24774969393533425099702365075700670859701801899286095525538551687302873875548"],["17561064591442503803349861794254702933080802912521007210729455362387599538611","5697407568737739749899215462606141939227606298907411862128582772025209320613"],["5762726554183650400787926950111119941251564096229544082143823402888039066189","14528494896228809053816155407459766000317717786583084250503243761083473361982"],["9590074385024022820037100845628252339308612600060232729808274667334693637799","7792227296176945410234633156609607434463677334234579393448996476001045996626"],["20996720508630604667206656458970764765074182913575594556825543482111891963958","8530911744312011746127455017369773329104160823250447302195403463429968303057"],["2953632381885739426192373860666454383164116945486693493121335759012965865380","18079953601001602645919812222137500945520467243566380715752454776336936942775"],["18265162105908968461274988765080723716292721191563629318369924032338330754022","18912897974342331646694301261795990849780288065297206895126542806033424428414"],["3005776690017807282507045339271858016144843846624102827399910584437349027752","13177121245959104257168273186840355147944225286684854659946253599843852453217"],["25726337678958842986845514218319824502737315670617830337456851544091695993861","25492068601268176727545220820308416153371655621904443603421293156966539821417"],["19188073902664572554641243314317813629433223882356752296775420142944406429026","6858488951880443556556456496526106264489878103585894987847441067240392148979"],["7077549517899110328315504511192349908474497310197666192420808005324483010072","3647620355640054843992634727032836236662688790064265775259098305818328587456"],["24609927379921773950158461741798123243426495243429719534307740498088120650871","9707471611042236465256943981347482989630162914968678840004407732533672976133"],["23641926289962084713758072963984699116207986470762241596835802360391903366417","1624758914240309839640778515883563420834340351018890974887184360625039986606"],["13929275934870845588341530296925961954465354699777527406001025189527064691010","1088078306902487812594770810903144969748648688628597245605465880553457488094"],["8415307454249153564178642480028650250593626556075047116131086774487828296974","23772453160703194335445598673456868855482538920181630059252188100544213318627"],["16608923285738612347770581467505520897822283346477797530837225851250500887744","1406498715141838912801044904401680140840781485196038557313880975938823656683"],["221209276345287973514489420913410217888030039281446234024306078239314697435","14873794284595968885033868525323580386701557506408146466780769631810742638156"],["10278654133823102789008291061867749730636401899717050515691118469441336330641","18976283418656675073900191501317022084646859842428096122795616202648422012422"],["11976430937595464710643288822940067950610079853781245263275626844139012315422","28686259853610808593498852878482296910575007668354484632672260821147075340812"],["3798550816862318972700062366275718478854351323852776760162845947078288442266","12660175932686951647021581846162613209924852014571440890266175928393334939373"],["21323173090825180937928697177651306078251788167870785014969741262742862696540","7367618328673040180544665641227867474833616851860138011208280700692438287732"],["13903459317396788146467423794414723987390061537004369993193274010331821638043","9923004723409687703653012210775738910210410841161772333858246703042242146920"],["12454795159627957308679288668690188658948820827486336359908879975238268156001","3492836950068502084149449867550494228759529719035952977815992884431095450946"],["20234673164306250104329351218301584577583641395243244897493703921215766073270","22438362205407978264687378657520046987143752759427161600948754921879913911200"],["1090158113432028880485727758581629807550111933329078928528210348171012700716","13361954368369133661359660550284833746586292961403415057093492602686428023661"],["12002294833233853513585428030775452675789347564971888014513861402014725193522","1022618233435728017121866100471953766324682479640287895541906692170662162782"],["15783142827556573197122945302549098652364761921997557437021380435766325001580","1021170686855005500125335642117767087001501591988487679245032890241858731209"],["15859799868565292600012419842134477298559388622928012100879893231910827782892","4992366534057693175799435415478183899225266294232544096682396982309618924370"],["22710990771365236867296405995104140268215733633171163261343738900736078075423","9807900571169899855570751150396080710794452812271437379135691876742891093477"],["8488377843836971263591382689763497463286538319123781994658985932463457603279","22313845695504700117850684617925166601013007209237683509810599756165848877396"],["19997875301511957346379183688080842068940422751438127651495335430803070973761","27922696772288234350862369645273469943946282928752253279115024159681461781292"],["24123771259242021390260407562288011264814653694807211273434636459931018786115","15781596956907653526745651647961834231045959235898479809325033817707307492790"],["15566447966283446850944276552144267565845866502639760105103137219833850849330","163436602916989169448750469767199895165465196539538544620735442728196514750"],["13506123977161083384014708428448014368517178827737418318585391455909564620840","27048629423459105022266990844004524776779383896128955057163967693083229015565"],["24336205580988977904998497673934621940042379494974396526944793985021646061692","14374432481751232638250674220531683749378111704354631044177796122266433213058"],["6329018071188469867132900816363460591543839721459634063246594685251199712150","20301641834502034852415413516163363175637464726934871746777371321573985817386"],["15414972335868952295970082651966815841845557191062515682299255629415498511958","6943497926937762638685532651615417585661397640538486706516650069041749857417"],["639976710875268114649541267625269194217405220127542692408053224444930040857","440953187717352193302278506783479626042208214690604183219584359566862166137"],["20607170824920645094772197201792960283991944741702383223008376827888101034897","20802927026846424269801911989644653578103001430185397358802366476228123945521"],["8901592712359144511244282895891259401729791853119480870199943811004173315522","27449101778111434479386296316439644729390735054245935795039298227084124719868"],["19809476427141694914338138504345178610544319547126544195298749050697199466565","7338760549241037879932592667127054078879638846410691673411815553218274621312"],["20387124130051475298886749090438529740080562725771363017546218069939998832850","28326524046554763365566966905856693441188288027467116043801104476733709525015"],["15920188226803646679682543167315779139449644012130296250671395749218321932100","19224183068926882950449109116504274231739132941117748287229232097141088598742"],["27874624066810658114168724815094865917592381059502253086337188606633395378248","24415381556176256394862304726781039607798379591078906558467777631303696538095"],["320411706964038673976320412859273068892266234688676632991310635974449905313","3520290448791613558355881726428574229973693986409107177642339858090135383490"],["6185565148519698038358284424279792121444300783076243609755804135762182315758","1997016456093655048164961866168714059921458818122329915523534357744857734473"],["18302437530374789865092838925475433724965206263042144616246086898254242557137","19004037303890577592613997292634485534931902088721656241406151416073073828304"],["22307654472619962065663343225602832089829254270334267962271485408012158255294","13371361688560447190599711635257805217100669899045428471627388167320389160931"],["3821471967224565318350668248570247238190431227836536363922229706927157527850","1352136944909837098480980071772171924582122197886791527302947702701752374346"],["7472192033617110091153505922324827458839568683015951940435373169095098260568","12974249272396137117327351558523994063529025846188814088618668891369814248430"],["6038917828874240169986939082724993583693584090008850727381186622180650194014","2751150927114985545298326976131756722370737563141714443403641856094174344094"],["13140005405331966885594429705487644714897073175716712457943788314878789654299","20772853674648772649732995909923065689392762332841593364346774098265761365113"],["22424467387923745072443462925256343591417729949393501572783586978730474619324","12444237847349422183408846283431969941870580858215336474639244062189248852317"],["9915293267688235447771079519213581448011956399199200559820539716476633145854","23914586702091687830826366443938409275259778731068705776428547060306665406183"],["24045138622210876145338149739279553214807488096538113024688278308825983666222","22340312803070541383305525914518835023584917070888598481533718720354920870765"],["26855689006981353680281026542775262049287376249185054838391849206075770319050","3761678838699885967867448567290645674287673391679690950022413321930811118220"],["26727502130673570458490125865418930205855437405098456577139392583152671506339","19383890297081853692937014642883928267014718599753809873919745938959014809213"],["20457525329843833974473779793709471895394133971904400240178645590397773133759","4900216378783024366318933179865072993846232724285752937656060173218899121709"],["13918274734657490875153003187917297258520145918281191400867234597513736920765","7418087345760718428707677041177325656576480998155347833825510003639986342552"],["5320046933441017177383125275675175457798768479729876881907916422493474488977","22090178152983792882995625034703449131877321928301880602556507462411644481870"],["26791831271258054243583534660699834925834881447428884683825831130560895483581","11025725265134245146287278271053662937877784706521002557391400857597159988423"],["14672657459953687843517317789049103411772368345968794838566913905951377692245","1718553590557184972081041270312299639320788985599522908925697628645410560033"],["6282619663179277249697058851003771402290905035006293149674755381235199957889","24623648010969527811091791369114669929438831775960342722766108375241294604912"],["3968121092824052918121527592316124543824704816230624303496159345703174952995","23787873665106855449518839034134769601470317592404638978680723850083050596450"],["3136086501382418803791327941091151521282553784647281568403696039667443394903","20280628492017413844605714912271508205072868414675339458966381295206521229094"],["22591739104842950499106554622005537112043153815278941899750911332796844596889","9707991913649396488071906277904063155058423667931954336359748542992334389585"],["13622935840487256657640724465712748026984376263928632080630838860588005965320","486289317681146837818786277217206357959736442227490956687111431287097313704"],["17433774351395450274442384940982944471601269205186139392107031267425686754214","2868706445609170033727206492905328696097051732068712778110994437378645010698"],["25408820171784358796449499094823756225720357120243687307897186938607517085783","21224918434630022572432217645978151438721837579895200882347463790011034734595"],["17859531890876497661816154758157066703701749819394316612762073646929591710426","22253917367993685525213313093168731595131743834486260868187509893230604451921"],["8534888067310434896526474864100445231432947594782433658811530662990667411634","10870045200348942398107028400427984677832398228888992239139223498714924763614"],["18050647443199756633227949747682908701003513980710237938140882904589034198150","18539355118974494488770593421591566678488668939116518960720697150620936570455"],["18652539240153721145021027201892253411721424390865195162057675625275677329398","28761537290733525332672282024635570144254240077445990760026681247698540180962"],["11061644048407431454871296158968588191017645568295212586731650412227971732203","345506907906422344186974195394349590699014960586941863747574848334430685693"],["24271515924804491578737304783902688162101389516542508317610005422267100137789","24361417563843531194616980810154886357053460507313103639719138026960037779470"],["13447506635956929459116190576498642931250554343389293409592548509712065712413","1425930439570558186604203530856245166901064559249262880624321121342919517646"],["28334771924810068586834277593047883777877855789146298108237222469975722767668","6374196826179387534326440441810049496572196630674843034940937536919159182403"],["19987721133392083893095199882226997608202797039475896469313167118143955793969","16890641945330548863721690604214740561214478318422300593406166690796459977860"],["11356120459750265732849440854266520645309386814242034972161722765165581348105","13676247940350289918761458673529816034125853179637481902218282835314106847637"],["17931368865520493326657725991103209688313230698662724959499935383346002019433","7190994206977801552296270097019215971422771051273073275576826221832309743706"],["10069659723051992481158697102605953190273791430043702414291212354851346203082","20966523750807855785913306452430327417390736933358273399680341494355122379146"],["21174648695595962541091376271515427394590343472968695918211660498985519358789","23481906916749757543802310271183628864308185897835043087979231057097651805886"],["19164213384616891855065667215062815491470041503449221795027106710120095922062","10634058256626049979110209419749187010530210421013156890015709145541584405645"],["1636645690240867675156485571718716286489305249290231618172034084445647250805","23962141306053785099579040592698323542052958964879478581108040563534064460112"],["23014838581048668189506157902154755798686611565727261644337758863890851870119","15035720055987589346743616194100602102196271762659083981420599537931301160184"],["8413728264712406230428879153512014023262102053891299336866441512277073475400","12148182918981145247548329790853637453293096620230292031185507392878206758853"],["12245949169615083743128194982769777707040247338469409920958817884125544443021","17809898304486452421273780394112658528244472112961116804047312364308303944087"],["15305814232873302726792517449250527774373703080758836826871171313824187445275","10652316726660016498157585169466585953013215952767320188500114426040872052884"],["23531053542487016008466453923333420031939224914295531451585705404621055964343","8337650845414968619702444698499933751076220761034938169479458457641420356886"],["8249752571446163818651664942209656686831302900540392389923017106750757594971","24332341360633166614081375613794752793860550093929791106579250637307764110781"],["19062181746280959874545825654824367935639263076870693072921743945535662876784","10674783599023395014058349165691126712409209284531697413605431932164804913725"],["15061744648084544050479449897258369729299911218282026709444739171747431682702","22778335610232860989625166862737158690856104711999414622569741883797345664126"],["3935918361502126871129665402807015305693944236475354056431359546360221801413","10886926024116468566373881233479460005094096448584555161568887981272840842081"],["3161392715791429308725215843523012056003460227796711350073139801494889598788","12008834545259935001421529611876356822550416213260789270221853281844207484549"],["24350557707696655718271845804421799565630839558640644854194260382958479665038","16803252420692153937995623840700379652163602070880659074278930099265091914842"],["21298233423584855397525466636899236792581270660364861460844142075617869083133","11083693231169999970677923493435680947493549428860256200147339844214007358403"],["12411980485042922557034727768595114445623771565515688840319264398202912861286","20974179222103553975644374529528145402469561336136113127871750608764485801824"],["27059158819995881448466047471889066151985764437572721810645015956012764324801","25576069656587738994209700143450766303040257946203106056346014234585475162353"],["12017023177345341473653826654941210903727146822857621359450206684520380927144","18288376888250948587682141960535721232890720938079381024933843836777244879978"],["25280128720480258537954102435548565466392300788816622846365485833879134180768","15020770912285625141087866330781197074217970628758664936845835699419403639431"],["5429856970442223469265023224670394553547348896778319757643513229836355288692","28774561578551669574631088882216381319190035688006109204466295792807653006742"],["6169082450083989311151026368371649318000386657140675421323392234356772283855","17698118555421061701603528387966695427498726126211023020545267214027271435839"],["16481586644295158402886900915141832505272412634533338990096269739730178471925","4472261517083604827722725108802142068491858570326672099086042187633950855402"],["24676184975078018678695427861063324049271680260811931368951064282063867915190","24276782498672255285867506011996743243817196346678599949179194620688859684617"],["18671700658817231317359073368592925881685001630105537435155220998920629774423","18129640977585896724640825839607855088798800388390463835096549163542491545927"],["12541107599985140606099912355690314807669127404958246629699288356669779270297","14571749732381602364719841651545628984638251244563559913512960344176127432517"],["28942356695607974959917864245620049636173305176459548930223644543851217975367","18440261858549467374615768153113728995434522584050320300580066232025976014357"],["4163824458390831081999499248358556034428989571684078038464095807311964270907","3116431688101340403314720604726324917478572210768876505939125903567382398770"],["22330272240769617235511003920987475654460906958867225414980521862394598961071","4498208329039608080641704222714403831522616596496248571635303217275291287282"],["7843186270312263345181678459614017672815091916391140622734135801608996713328","2705760567872231716454144697073265031227880518914409686711309579565110143268"],["5467484691559838357839162894212032804063250504754479804005032618531924982253","8948433094749215132705630907910118734340812985243835535172103670194220412666"],["4737903322844849899710910502118408512980594436971268875833389691578216909336","26096130639185597390179840579691469754814636016440550701967968408991353190439"],["21684684123788306008684189719817103065454771970500818862757896379444692089159","6749893556952570524522131841106778820690141101647442757370885094828960810228"],["3082111958213196334678690182804095381586239413166906310231309806052523292773","25637782134680359644809114906359180048171434646196847893777311484308458609980"],["2225691824123281530148270381674689177872755893701565084263351439633023296767","11545949924349030539544398042448607129504054295151333430667847727264115346198"],["14073690889077563139672385883885629526475842735873930284990223406342186080625","3032940702745303935062956376267896018577744351404391580019973479597585621005"],["18587075967878037588367572278830823812595070602673336352953799106134511436958","18234174769056939618637386462779729912788277636216281038197071117138975032703"],["27226889916385148852512717278616797498732304481876250385014212333553945824111","26513997511305562955234190058287242781293884873877491561343215400018682842348"],["13564678650337289774615013240456921934620767754492903703794744424435921223040","1629582607298427509846586163265488972458306920414088718223211613701604025316"],["11905941831115107892374908138446229682534624904589483369475010828094452868475","16787360063988809651042057044109230931122626075765388218812970885046147035624"],["6304269407999811963555831210856385514428936403648993168684412642485860379180","8517764227033373303220803771782418603807635422346566161508124015594435918696"],["28868334851234412832378039720807340561960974523611898013313694570320363599839","4713371156699577554476532378147223669249501539130059147816151583572050140873"],["4833317288284214481096609720323507704965261861529632716325889541953955995826","3487664441245928926403433975507063559068351891727925904320882472092937346351"],["9068878460066764755121363695536887859879428790505484057274617167022107571955","14879077244518937339485227291253105254803002912895630710415703994284733782321"],["15176059448586685175726014026346366460387862688635968259864454595639787709060","27413218521638248568118998723845541575448058528211477647102787113239587831395"],["24324004240216760849697545374774334565015215927890355385045254226281861157075","10629356735303687896632658686491408363146106609577873733174244986098866928132"],["11431590211885989762182839056889000115271441986695340390435680991949102872791","16675941650279302096902387484821217818145432093161168444942620052779398044157"],["14207449629538449870921814489619507637705784517903404650228395652335128355614","27272738623107659359180138676863318338062832041935895665874504176452442705101"],["12013660594918143509902351917034660522439436662110587266757262938033604224887","13604483897671645017350613044719781394352462355102337589455298623864706956956"],["9099066710221077357298861177543847085300674357185658122992367521576000608441","12574583869052747939921063577864868414404764448655277808540332140565993411077"],["19046262424309546090912051603862940999912586323401708086574648353947848385250","19590160924949957469497272905969901841136303114421545969843388353491063711932"],["9848047976587609637630572983710608825775588396242552233275454215339247375198","23661720978418482404953456218774299231784194064759507228970938758437207824974"],["23319634611764599906792302850785398484728460672295620368653572778670290846412","28858157430949511638004447710924999477551082881416082933145218091714703963739"],["20632735047005868657549202213244810037562310386331984839507008227501873790887","20529876990385813891749471218146642246836299181818785913012135114141071054136"],["12773477595639457270625929607049034574359199796583177270418537813151672799342","4502520422024943878133329815136580388136581942607802380677878682895584323170"],["11254885101604735269882243232806733865555641420347909495676998891521466915464","8543740838713620295952033327426897928525983979627004911182752850052424862608"],["25817565051858225800101751442373423163002129148544475150900352744833370081604","6955872417632070366440551735897357675952625416808732536961607884991827541239"],["21303708581833623135507121115447695131094615015752621264802893118526521088494","18157730421167078676167766175000062714453120140522564560141511037917362786398"],["5997762738706994387454920601414490388649237048756765251093937370281519646039","19342460698431733049720155349732864547821150680560650368498787045281181151183"],["7149560335546468225492946411782013353191875701963442368127703501468180278354","21634818072333207318208519926228086040328905808149295895257260644759546538954"],["25004450940838980666214310901664733199708052069674750862077031311539567813669","3682628739916195987461581194733735934073965668093039970248924220404225343975"],["4248277135385381319198385868620618529532014737988928767920077862551136131182","17619065557327166938053876236518746217242122252129024417593525954269792010996"],["10590806886137888518503909431697833754717244673865368801988447107368191563685","17446812678096840677211815641993091479662596258992785767593334598344556854272"],["24107285530861585873508228295337014973918469602788094181189115851240787206536","8544577380433399758971857010391071347397283176809005864250098659309748239468"],["28502425570297701066809602203578719176557520430565583508268710429361893186963","5271652009765426540270651422698839372252705029533727026046366286316028375571"],["17553333212130927535592529287713282197078794365280276009477965400024522515074","17409200734365216355578034944747645232048148331218127669459169525815620072228"],["27812604779538910506688662702938366367007827800609508666906256338476268705947","15465615987915423025672848586904972394127836188347225524577126237965233128624"],["12121883814994272818889890215287915672585724619080170004240738591431605887682","8402981274947908491582873367229493878731139983130243907081247055410870694992"],["25502150522005535237306075028215892924685019314115798709895678244074726958423","10570712878165113905503040819709882738910452310855823270391190867434876883413"],["444028200837093958702176668334511968157440637267134426586229384582233899972","1530565786947070157211125155380966112743430790923152602536951955634805902138"],["3716511394808060114317992531730201028840115005094641783691513004184347837367","21316641485151967474500743267297772008108307703648032996819043207244978974247"],["4066640936568598899951974775293442444611960686416301349265237100290844090223","15037386816970297633842666486502145048300795274052110198899953917004558657359"],["17750336174478047383582944546849220470749366219765454504449895509826885904935","3659539649446027438048274071727344889298014983908777364944906081451329944721"],["20975482731307342194240977398902944261286608668874093044470142228483755224191","17602701959418347137179273692873627319549838209695302074594313440533259518855"],["14679130030771663907722340880392056999273082021756272264677673071846004639185","20992360510406593882120451887152825656866593148352642784572123854958371224500"],["7793862644583552100768431234372709298829086860398274423741455843316741592464","1793063245458535249824679825137925025355774384472884591224652568688822013973"],["4316462228827761832947888578467024101615041478996471456469295929809204359763","11337075453546291733270918499122526070223416241444430230547601499269117249949"],["23112369203410333154240335636761512593867428038433298704230070563372746102765","11021919804972827967966536338433242277756459887333247664685965553241454188592"],["28250147979442242123918094945104380742155017308594223775788403380892565299733","11100815172521891720725880022212615338669252434305905753444933857905158290432"],["27483385432489823525971362453915509356710846440642921275748902984185795295004","19084956875430050065460182351836464474125929067860420452094881612523302280348"],["13585487966015394016239856864693160908226483946039391558661132204187527444190","5392341169496557834611034597829942202700399111442956077627346502721548696550"],["4821610144938206123184883893499531248748460521003119232473072385791019446539","2956170707063695789719523662557464901358771706507174975090153502083555716684"],["22868255788338632289372682033897100028084418392438715218807036197209868482152","14948126507289071457917166675297325032080737598910906752700813545824456568519"],["4534293868369989304743459260184999561506552937675984932162355407432162102339","3831415789750031297358273492970979441653826730497322365440365173552883818050"],["21454417824377855819545612167756299279808912353712824493259092033677948490888","11967589527183023394286176677392396583075207529324083645618096496271879418907"],["20977862654076431304264958542646066936678602262804310243341803144187109431247","8460712145654360032656163023191277057019223823790805945923498286539120538202"],["23869064597875648116578248894011752618900172493570725864210194909056951102418","19418110980049282220332873565139418848256950617997560217665384129871140696937"],["23718825177738528377929197966753436082110916017730404811193631566440332930861","27529700819969264985058663860506362861869055496822625223176184828334900583978"],["27171550934492482863674464246371137312781408280983949673935392267794767419188","14818945842260945207693192906475926532807795049614753710473056043331560993580"],["11330241284569566200886088459374154755093354816921586126860248776878227055727","15690780689633258162290406067690203867147986315076009154782057851203236874873"],["5450155429913154055236376876236356619011094581454307717050396276923447317746","15490901713892957181829630699642581402747480384510916055893824887370800455283"],["20201863409403000586264477811592230538815781651620978552151703348850965860325","11512173759471528838412262511573119992777486727402371801548990363435682549318"],["11285442320696752614779305163035440039058341402492696321375930666191155943509","4668530540356385351612036469269944152108450529563355639122397660780633174479"],["3047353581843328267904054967561241582470682496159033074898139298746550978091","13352702230813242596840987428909522548635993359225531703884021069030852022543"],["9656551831268747774958223371768434035831389408970714783340519206247838170283","2268384949388899133022241222725716348057199847055289097767155749396856286622"],["3324684893371959343080025351850562921701216888624262375207983335525991698483","12050148449333569175546935127803443348212676586154411279328170907214328964525"],["23418947890937422702186206804096256778259796321295920263280397626420220698159","23051239797767138417121642662647527595329264675574176408718239099290773310396"],["2013073250651231437457340799732477925002451087389471891647939976070812169242","7992715948074458634850804702334958537013059846456876301472840927811808100086"],["20917269580179405472130269146909526974267389130440371392526091524018517547537","9842923570369333753524740877407219120899014818377002215010602993560179804595"],["6866355838583919626645769704409855765335979186529395620134467668934347282903","6209657401915569533279784725589431987666194947348411203212139093484130271685"],["26238385887725450472837214662888130909903277364603316428910381252271132991904","23134219303332128714561035119287367040974875848795634632134876347716192722937"],["313492263905308889664712453356737995140510103841641448538087804504997611355","1051426270203293579225856952634808652044258186980712225504996957626470027250"],["25561586691871782270417578870440942430905991227945004672096005931037191060467","12958860643387683506909547703052688582660801016138438557657444834236806197474"],["16787865355930772933361194661352044031947249815291863127290287998927571768492","457790793618203367262319997083434781857253865569214094101449011399161978076"],["2154753077856300456975398202039887400122583608364322354181397273997271509931","23153456660226699248778844819206931711704201578888133762279852428397436557765"],["15136722658435043413574870751589103771771989918712654583275347051230638582597","5870438493826308132072172809881238018077219641920509641243005205370188422230"],["11465801019396155887157649565709567708598945065014125827584319936407851567657","24773716383308080257273687476367959835488885631165905862405921494452584236972"],["15783850935117818602756718133046314553105073084781190276236924078571949912753","13186091691291755064271822173394675286380647934396932432825422381319323604361"],["1800027834295601124610019084326426343011508801370003087338108925339863442306","9416976685894420909738222860971984635207947624232776662258880390780144488480"],["10712376362683073776869311094792011968631944721368684053081662736161076888969","2546488037729315401194972348902440002648513751327111499499946127067341914345"],["15924065706179407843153962629560772448154843517619086927743551500316314453910","9981490948560284845336521078282244729845331717273736490763155573998199802135"],["4769952847354901148105312204424945307306754139715043468360762573725743343621","13228038248709745545037529458217519290923815324928878978884517388764910572077"],["9429000896801434442462159125709774240202657718027652238528943356815692599841","17557696964466280770185286322145328788381695248476273688656083990232847128098"],["12981965044883009005660564454103956088049722828789518149117499659090049086420","18911252372530711371574184693584852613487461611753681231239737055164674622546"],["23760476192278722056953923763992676723710771507904878196705739297057774016847","18297754686232757950301329820400444834754428215425486148044890993225077216165"],["20648760073820382455094513456242260398569500627348417246261553520585923315379","3772987053814623708586017339217376084688078750001170182348778636243865379756"],["20661454364226107021064130760036412512386710522275326875647267650059359640499","7923524413679464034534684768543486674801145522750222629000143457884431340293"],["14853266433385380393441096621296047386872016028524483038510420859617960716196","10639487513127238665428514085485981506419550082221590370634257587828200057065"],["21022495987255298199856044578611362749632689814304482264912054555055396272198","23301313728892892858292316287681779130628362302919361511856305680672737378826"],["4993652303668599434100207522712122841688421497612333689078194286346091323199","19715592896394408766763417241372194465535304765219182430646447779605418536509"],["13157477057343139023805717563437093736841503045432649756065177655228841135254","24742632115175422384134308303252682653698220682057150683376602061319947302111"],["14728243861386236537692406424586319859448130304977716935591924598714672783802","5855230929776447785693971519517810884480744075141932002023006414071963126790"],["20547977168677013293408978670307558658139402171018981355066462249739147012518","4682617977552157960101995306121393912645723950705127896346332305971168116180"],["8820789634751689485578442320009453307259574399071509810923344527258510516952","6359202684652055868843699919885427290668623690999106832267952501182854176400"],["25751641654991207527269524660822619675364035218445929302603941993017186938487","22376960882755287021945563692122947939456846831320002990629179272103506945605"],["7208222210969791990320067321804791226328168870874751513265174049246737630419","1976678494542911201580676034696031580152160390998219788552270866464401421624"],["2728258376437175097046564440672957321822009746256977842724842616448355069767","8507772984477781991258086706132457105997093544177697077689630238962483515941"],["20218564998001547037871845565125406093667454244034758601853663010384445278812","12153068709052105531025035000992005784337227545116819996933060037888997728246"],["4600539006703031998101360697305785493254416267001304067472339745212941865674","13459872918445981340559029486050647256237962177720958460024298252381420789873"],["21753467875066796302728331281686251787038732007878327330340573682732509115713","8374250682071293997325973126016038156027389441558692200710008413011143871357"],["14998036965954798036305830822807336734490935014419269345445237888236262627479","13323381432291151839716728170351989239131829354479526507562548568303328427396"],["15714559649149099865789910461688148033829496344746824622570632850985907685094","16929118153892356412722028780128800193795122318720761436859899485195085290148"],["13743456021877919516622554048279920869138820625282660796056702805822234087240","4668223012603549533998852816545687806912003549343150849139996984137406982939"],["13635935444330389207154927570195019279552900515524311093762791772000580778585","14325898901620023706817358260534764275082830237061183498097181212060237095092"],["17306882286984268441879117430071979532054239547454667667930511503011538120382","17250373782655641549167716986040056569546143316639951324455200415000225384043"],["5438609494078537120394755143618208384876445744782785464467713280260315027238","21660001310457635630076208913986852229216427910609430828434372049430767707397"],["6918817069191893974141556169078215927757679893887980665184559087216595033115","23379443115036319545657356038068167955649852182638405209142483951006207246373"],["2793272713552781021062657214531922802246198084277207804064118244911681629005","13679608202645082336267418451737128574694845855869811257908170710278904964432"],["3779901882697832868679852104937179177846704211960444694918529880264408941607","28792482149408581490964101359200941129458826371513885054280145256801327812148"],["627212291614922533486022473914278841438704133749569016445676046136967450239","183590285478336565838475847718828751206760527794603994465714645895554143886"],["1780090605338295917719126053011693313129176785417730389978277719976644626181","17249431452585508342866845780789708460890327583197642717620222671586986443230"],["28927679348213530514335570204785002478827868669291969250735470759320442926706","12514543473126795349526045070434388831246587620350513821257847823646005627259"],["10487831919372653368595806063714615619314958605456975263967059666580755592051","26560180708174041578814229841949723684814776824023425439426177806891484064548"],["10261564660910805822940854465466134653627269524416333807117445049189469760547","13450464865080098370657933974623644670993893872562284019072240815754201679465"],["18108487246318009250485804674508144101338926687633261306212298598117879650938","14668376355131129907727494004682519676362557522649723035112611226229726310439"],["14222807303992721182956944447378273136048181911568765737287479260713796347182","21701178001386766407016469211327554151352824535377290695736496772609294917585"],["5737267146758955662492616286885663346698468281241923566447709494153590904941","21055157830824544272086622258886885673348443669130304190326732372149454554129"],["5652550700270375825063521921692643035267940128440695412009227716152181268840","1794124725171297748138263732954472730929906681129773057040206489718855973614"],["24238183148871861109871441841972116818772352747949741748526408401976186714194","20422186847771556433226213833014505858580893244443198200779850161257153709675"],["6067788979661903111274219541591003957992804665615865566438880081608767787812","10115659339333906342102472198948593064963056871545452501364432104997896050812"],["15891694991756168326034152281362433522057578611558986520220899844546509527343","28502144155587906847960374535149011666682671476178182324977229826409073358330"],["17829168108052791405698597166430037494194439474896839683656041993540022884016","17345444710130880793471880912654287752540935797896088307827437993300450645248"],["1329136512200872230476741509959882884421934906470144423591947879589758999089","21588420220983099886012917269536287167696382306335315157945526867800745889943"],["22949394539401707923684592164678454112174334072783234722204733668472467678031","13214868238636027962795244212114287186183204087597030049566668189460360474943"],["9215563572348249193071152160444009411742316271991357123319044994066014448582","16756282665334991953829538923193334340410434843872191211785305252106980348872"],["12960205883861709352531831518727215479650863376104402374296133159636644021897","22783087265492412047309123416863286781886138311544353996457621181579492720093"],["18943876244948818297488968865538770577966116705234687153092539012803452551014","7183667769909890219560510778149762189613114772702845828235173676698014201279"],["25496187755371906442451602523346555274354103042946242912476730742642994265897","201469511241689067294285348416600126118671561487399594956212987508426979033"],["28715127200191464702784189790937997609966079018653547147484311012591441436150","1436312353969713544874771533382936313340941472887658356977639824469323765312"],["3227160525009304253684790375246625656451198554758689807595129779852891221638","19462390694822621140435961066314262760434825715491458242111035589419235296506"],["12330267269845079422500462945641102961126857691009264092245364154635218495201","28059674267192780451327045527339725492154760350652719611682179456656288219239"],["2047868318766522207008549468617550456840564661544024830339016027605104957986","16154929916868769043270415463737332837041469067389351653227579494891663048272"],["9349282751362578575592733969523248496661901025522226859758585356236660910196","10482879721419864071337945531850296453304254978452463282759127433696613735147"],["1776560846502353373003098637116102739505922329522647619168011173649590540340","21007837059689011329323437157664980601940359970280192871301362243907164218715"],["6846743869884367991576185219687684366038158472346939501462817570261168608410","3682833415292040733562611550777449109596077083338598666448372096590947106640"],["12097306812996823531065631684712207173150926249691154090496729552509682964573","7038123672220499196273939322908863584955304466927705246235661311266502135459"],["3813572439918703231471240607219139545487458185843051208055692789388193697527","6739810139478242433949676527984535160250218664473158288569503106690678873958"],["8397650317750915296391154958278346886025680555946240961400384588774791343513","17183161007356417352374308065598274898586685939217137387773793148373756454284"],["9563744951150084620916908335452207774236230218717440781959893190532026874935","14013506554166229998079068628482680885125304137228897076459542990518280602728"],["5209362629358195666079735275166522817563013852385351005872135621977109233722","1491603842204571202806310825652960761496237352152114916139203427014479848631"],["16222792529576891451388235459041268924508515455228682374455506567876115205333","19050446007150987145973853528910272840297618831351388871075371947032866819511"],["28716328549129230248571890420760088020367872309761316916906371180187601617565","15308556783055082919979158622199743905351978033035781326502774434478171324127"],["10081555343142522142364549745701319174123000800190974524294603696957176444911","3515558623939282863976474672625791736881263259799633021399180611297788438180"],["3809901227052545686889975076479357833052570665939448048048192447793439163499","13072152425231514003425013222485357376750647494508783784175908244472400549634"],["4946583761771457682523024216784202985792231804476787564077503100210024321869","15268617031467710231406604500580931987404876477273896133764308059958601581387"],["6182632241902353979094373244471482774073559345253192152739489376292345223005","23727407934868015019100728060957397685146389938753458479222792190490654912983"],["14666341574032996202956877034335820394573012928656644444200012066733232235380","354101485945126166647183606468244239407961251694443353616241971896301321196"],["14015124035328735139527430432962101565030832493732529348988210936658967786448","11473815914538888672118331652093355488856541432245484041705238953962896855226"],["15413239258631526897593614858837850080781925516157050319598096271756939642100","27901414563044312902133172469910007783200232189356599013100343409288707662046"],["4880412330411636003628948877955357734837115166298710827896351385694457881310","6892986319443261618567363309618589606077396609085133718905727500078992132256"],["14473479121242701131588917436942871106671730363558063351981798257234967721278","20708922479518023229564516866153292839501405260817341129545440227461885911554"],["4696546521233093208920363241667348837807764377492598266352142359204116072206","19908303024744722766377204012175746641965628697989079654735044662955314066972"],["318311757101588906990496240573655396768312147975603155847076270180132779853","25398445458619520501075472994550483255237469485380338583867306183926953319919"],["10799352635561943516830717413277866728138879218818303344855205163518893853047","6579100720630219078528043583756039723460112936016173901227029505365285524040"],["13865185531982763668698234484229699171089594311853290562637075758865486421763","26335431696836426158216360668774662012976526062597356351228333125633116037999"],["13657548290795535891111182797791859585790677763685970257838623921682762435987","17119834818694653747454825383793913520876713494974352284271324742220422078096"],["21459928296447203172461137535512845733261885954618395046476892311071702017090","5484938671094755915297845454532681577508274256207516325421443867400432296439"],["16567234803051165522057552591203352430203761287269142010143862674615895321515","18841789793559646599798227308500823629847480685813746598303722128570431496879"],["7799117497012911296916476031208723182412934699234414414987464878013499990964","15082003022434572448118679906717302896699638852579331465441635686108163936096"],["24148487391216812225776242159755251442946905819864152805082640143145172180866","18022984074635860125242827895878679102001442674566520315243416541181289899029"],["945647966043807907900001895721817310878394158214055927219469872842295244605","27444866565302827240949872068817051950975574705652242330355970548275953922136"],["9056633259941927515877946589488794213443034744979832035590394717042753091571","9694538735785157806221592414938474883501475682898995948222584262762397994791"],["28584037824552239806961008216366437402597609668837344380890002394664077760755","190370583448750582471945012870805677951125171887992046135236785182011195839"],["17098350109354342258994292268374425145917249475194442294870901477706441869691","18178175781435530474521593743321363816104812334523353389094476178165219896748"],["26525080434233832648723688649369996446769601663550993467331867560342957668773","6900359873780721978066117903900811787863926068173442660939027211043310043280"],["11113936691572170247067386085499535179822470232021125966631208393677546824459","26021720113303936791904511715553856208629758034420235199716425488730821008403"],["18424252901777802431582425341154458246123891894020588821033897816319506337555","22272359566815945084968701112839140096121401384217282018819547666922531732187"],["11451602356191008394168946294536523476388267700757995163040604687851429741053","25739493710039239126771349273099518510851957107103271496242874715331556330635"],["18963427362465053870537635003484694919252858376821739447142259881436015415514","13920618301809022310993665241553763076114170538339292673002598131416175683076"],["21826608105957152480874341597353971915086153392097888634099096602151848779007","23113455672004553310504553225273802206034492016717548466035563833032812198728"],["22696028553993861909188725370511292301705403775235225557122886737471663625577","12930626056384615708788128047165669599875419452563959358957448341343221933512"],["22800103103971946597215429320207058830267462340185914993317658640969296130049","23378196344663627402703249109356309804451039132273673444162848150995520574705"],["26772617682079821995719481108938944359422624676312087214451457086395851004088","2120100585015815809338538518284159905993297040497181508929997125999441464276"],["7873364612336938957170972081624372335562447948535506994363950930913455734556","27646803996545535362797135557843053229081457479427509179087193028375890857636"],["11012802454707883773129635415825639954728040766483692179093708653468931572373","8807707138147326594149577140164753604812801259011699567448975665503413389695"],["26290938135185390854061406205816173751867824472455585352101973600472577772844","14247564385001429845419584365646672710069969819520870626210650268728003059223"],["17254839266498613913497488970810276409369085219131752867356681778044339032710","19988280051024392157985479797374239624758912266577557865523566862227003529322"],["12770703258172861986779636029112406982297670013585355363454076587503971589517","11548952507757985683148363056950585393212521325195751074424473801757405859825"],["3334326073077430217330202900606994994889637030838864536740397864449403535278","9648624994919412176078696081395577934633218938513545585832845836667487808163"],["6888978679036739029051420530138689732074975740292560356663682380549188405646","27319270607588401374520562317248354529264045163674640006179861716700630489640"],["5738115030222080570880205637802499792604008279510231966544132878344916641230","28694706616850420954933400841363559073778753512548022235684670771467261478094"],["11811025952869405191215947411049531737563768682759584847201468199691623854492","6719654356688462297705459604351555185420523750378700245791301254016511158124"],["26808475286455307126047599153968844741608439363448298606953710951419689042121","16996512905813821931409140163679368750522420869271123095827834166007724117653"],["24118295585752916739885076159734132834468968573651794598524316619353143953135","15536585674492259282588472292801516969525709006078062566349571533798724465249"],["5523868187434526853246499717348384705392693747808156120675719211463708872476","11821483218302031228138890950026444123620088311778859487142586339719873655350"],["22676523502313277009301873996265199690948053373553241323984533610924821692796","1627553547930192262920484265968999440882352877019761299209708853067711115484"],["17475206562452860700124043926087872487078935831853476876475083440032691904246","14698707150069873646286888780624188861301012905460086271000746848043575654645"],["26237711086195844156338149082726565412135198934163604100979459770897039091952","2651215479273681539517980594610137340621731947632607099575341864070553445262"],["27360288192098353055698497233440558909517414073722902054524352330903125581836","20845234417398223608416940883592661383193883903952529634896066669285912391125"],["135465114003045650294030282502013168480670465959865881067391678752370253857","19221448807261751052892058563599008973754789914514527996847026469214574254664"],["6247948872317111119837684397282720726485333456317943620420078820293480841697","16123615157407113094015324164565492246262595269856681407524134533447472273862"],["6800737202943050803936629976832455902100988640179905278311657776270393251153","21065736098701037400002132786925238963840140914308860416088988136856791984955"],["20821471065731269767025599090625247447991046815519093172857861378542024037020","24066150773466741962999648441432533987890206903771168992792556133409130888298"],["4185317657356583972907206407583041724445937405731474127113770644347077373138","11598202615045581338794721617489213731469687830608205183439495837653926374481"],["8716627628180223513721871469334148436300467210433287159099328151914471553275","4588528538859845288857760121356631191793118170169843763675712240497130397093"],["15967809460596238244036894509598589316853551639647048967736585246357907782970","27003906606896569577455179450895493709902482353742085258731567759758088670780"],["10160673654168236779111776673982603678339562696607559209977911684940421178913","22404984362407420577188162239460701095269224739354299532396693635208255995657"],["7795912853223376255307203174952471957897351324599738071506431083508717238533","9651926708480955387105461498325836324302685719014147756514607472552089175005"],["17732198865280185015042254700153977320679723817731390291681353302485783219064","8378611553180224685515508634644245022464244377761291915703021325154600129878"],["16259155943829516017605344720623271894453173906290499984834030109600719583093","7441844212440301120175940885330373758688518681088527251527552382514716201106"],["17792700426371548727224961156442567292289269197523141735119004451485528423130","7068496321011791001091930074882414469577249839181659313839276269435389359314"],["5303002820343762313257710623791774255127063656214768968075113963314309922987","14212499648630760927213671360600851321756871398335720219482576292763779787272"],["11475503154244337736148184467931293696658398497935720396762021566657844490012","19867581386121728871985225640375812595397520882995642763218320364106262359295"],["27935539916239902364016267558299429055863885456576744822604382523696640870530","3488591335502894470825162543506549227538576054328842668637421462268704564081"],["12143979694965258160397757183483515439764536110302424881640745492949730874932","4947207600362584310908354151365352888813007231373737207546879718858427633447"],["16510572933368040233960499284369720589361064987519733883716714659966668403974","15017677913618072370893974932752676642829442612740200180354892048908098305847"],["24307364432498625626224627961380909809541691563599966334588599613066756988707","7940214099164040033508741179866311156012666909414421995175849621794143863511"],["13082669883019502886660315843488584734277861428561898172683598046245930815191","4102163084913859902384268752995294586751675626391055073424374087567840459869"],["14352111753844413844501896470103607797359931235120934521339199891748495391403","389179291020952546210423499414903898598648523625848686261632695941064141871"],["14480741976340236206507548399957761040690972640381167304284126135831558120538","18073913209993161050522959977553197735086353568851408889675892406817310931822"],["8547537726625388642472251635512051948557331617789848650330256574775672382745","24099276946197431842189501612166867791348729985339799716928109057664041018312"],["18078640028195331627750478397553393976854092825962364797107381545395248075322","27134886495973722432877331114478284446569195682712246209234215580965914367445"],["2366814262273093610187728021547981574981014108550745757565492242414780795503","26835617240011709908017314987296275756145130467520714010748318367092127078775"],["4097993847707971194305607902894473352045288519458063752907946325924469591786","11014778295406612436650392712247977523812319364607910190225658602939276227086"],["22166614976769907682312469896048151609835724203730022208747083045845902326656","15848139709823636042084396282870997084906146676074059033288316612983397557129"],["20086184023916813426719603292237993709473971531755480389362744674943332907263","16388304356409794375923179639094221013705840647172793678546396502535342470587"],["13838550769479872522387836791501088989237788507194967866861806991684992301383","19446819692776306522736702799828124829098437283253638545394343773947638802432"],["28731043578408941414337751696418565334817365644095393229069535869752512087110","13669259086448780774532946319717662038496490324016233818075519651409942428593"],["24831735792767808905744129843422650593763326976934817770493638799969268173590","18316416790751752185604144932307541530859177010625200545180937016751944490062"],["6083389938521581938805366246437604669083942292033940013820187537870175060831","15981830307700490740715717463672747062623515841505986538799404609886666561714"],["9381708483058547109093858250377969837124937552122279940523470361973680680997","496715424955429628793180379903541397938305616156337865566598394837928653407"],["4366152550552146552503797737603403783749295970436258416392152250495904969122","22959241425704458646687857930904913311611127072449194091572715470844893464159"],["2515663925372535991483285795409821082420386855120332305635058074108967614855","27617226085603100433974710799613117709768318914180741858878066961395793829295"],["10063735960604871917489941313459324541321604949321235353843470258004898549034","28003548342033956721612323824180651082623302189961898756816681586384789889461"],["19298371500300475114669557017116772911649354908702338074852677026064256175966","21571113658061120486404476235528067547835324264801998071402303063071941367886"],["24009708971099360887792355297313857539829797400581703917668158377387326247052","24691600036969975789859532495346215633780322727490307447172688993284976359782"],["17100226318350045886966604561005182963386013197904071489887567698157639850044","11439818353018482969164464763025719582130535090650668194233727386135577621671"],["5146049166034632893945385950035553864115623143676479278315401299416163240379","9656039908533582217202079098970799498843374443583536576089529822591918840170"],["4495533153101343209900909056874505682782650883498310777016918595500067644597","28180377709204335374421873709160406666322130030164427817146707742811491687153"],["19352131286585743202065394969975592960891547673387788161741722308127464726381","4494701184854201617232566888430256305072719315420087104077842153239432692338"],["23904017958942877992096742868744410691780266596359211080259024475671726274484","180777749461762872672419652396810496756134139263917339060134152666059252053"],["15623960268023692897310420465701316871629880089034208588947818416857414853035","4187141136818565322700712574085175688854016955699193845129163575282463215487"],["2393347615098093351583626556405824674002541642122768176424329206464742108829","21640906635150941508625463267957466814963279203093125676811200197686167800005"],["19221945776733740269320525809252706114866119057114582686949697102667561727580","8503084537139361916437547240196488298169611141508775457435006705858715123841"],["23626575987105448372437969631191195865645318192119201404558618396682883958566","24018596138142783457147809383159177792441586823560750703137641457163394862830"],["6881440263014763944643168546384830545792843786838110807142660842636001106049","18318438227976952886595993247336170214320336323003458023379123535272320266721"],["27702866358279518686163350502074345341581397337539907345500178447387574419668","28370576584485647130999898062203137281083040561535524695983166521253312374742"],["319609996257873732377253536133837017986274603322553159542403106728101044033","17793702109276257978988629488693956310043252995449575719176922834065301307584"],["6400742560635694258290297389210619182727687899681291959208002566436286847159","1236708729999245672838171969375222216165010233290056014306730538692477247828"],["1740635296370246277055810388305684082140777288503982374434506454090444973836","14325408060386389330102945131256198715263843135196614502232240547976030793967"],["15840384676100851767571755884940829429197907243669373529317423657219135749067","24198438317232134075991189371171522104656997560186758796092867801402058245479"],["20540297353979004259307940312561949557986734966973399265544508678443378086001","9661546427560074766883335659118777692730699733513734749666641248917691221725"],["5678561658653995784525052753056501500995421295330599054824180618266923246806","4337723837128875270898546131858276866826895036626174163931702410364530298055"],["4298813441786922880559305162157419021216212397755426360774525885410760940277","8159383283308135757909459128938373454315546450612105214657753680029810482545"],["15758983500257117819780305021736810660083206948603381331941327609134695724668","17085907915063327254104681053194479417910631931422579182000077680490308477524"],["1297004351718300493448176317926054153917460942093565988388937829019772938433","25962833521713314149665223314402740658006613148747127783911183333622742935176"],["17235965456868133671128563332201949291435542821983476774409302117568497469388","6049335582666608359309286888020062673697481462152943271100035682396007067421"],["11707482893505011529661723751844778248436896589988685697572469645125780437125","7431596022324568081023944392010724503798132219779132468525266115032765365799"],["4030131526483775240235560586839009891893844996626229226915452709417489345670","3607072934858074437345147444055962080154199635295023102116070143944119844914"],["10143063359714303571225771414510144709167561036875800661412333245525473564766","22813303538725407098144523721370434572754537047830439569017278400229735846994"],["27424878389338953572779992427055408569423760678350477932496392305135652044891","21627192975361650442880938491815218873421768624449665655878634714112322502780"],["11424150261297193573888911401901467260566524698121474448359401652691034412881","2314485657776271172096730294468708330581138846792136263788935816868918665169"],["27083851048333065664154342974172639068339574152747391213611116626881925132311","6855750165723811712282090509913220207738082303668870763217656979358560186808"],["24705004467328821563574288993702319398175427477951314029468883555480231323490","691840664405633089867571429474242113441529437579492832667163926013696942659"],["13249870333904905083771038769172343506456925302931323594672565913169328069316","27814255872343037638475957775301443360672879164500389987666190447981895196669"],["23202975006682410841658084849504355284504169086911377496218212414758949447786","2897555505998575339069408484473070802899180782838235721605994801761841480274"],["24563087497467371714361534786886122612691120869582877548853041061719527402353","23805253290798105194253137701039179450061905666077067047595814462741838986792"],["23346329003019797789143336505369622998412246955311442782542319583956772605742","15449117309728920897420504839787424497948300136058777251172300189784585933803"],["16318151280610404124574642990509471253155945051328164774158490117008228818254","516286675407687408961299848337581515046869428080586456340481505919836916428"],["18552686610280331618757878605059008391247547535301967386902002790220599083291","4622336028234460656808131461208968891702087994074150777376461061981216522155"],["12937281342043971417580010592408257551323556066075432351008805592022345383546","9238171199161350769833382119871750860274632189738621069299703965195469231089"],["1909157239153537904092755124817022865365219253678814551470943726718614198109","74081586748829335266886657933811741758435565165361787832280458291605826283"],["10333455800479713500969431965699478130543126195062919519976466247262883977551","20854629003708274509612088036399048191860600537865705837659432031417318808910"],["24493604663257957596321119708593163028848347438989494482176808504656368354050","17118559495188236960630676420898553302363742188446957222012674638551203835103"],["13509761926120642658313694702123894616252609615591207278527998915271496782624","28059902628697835720670677227472833879404768156093593704112175268304566377146"],["10386107662634533544109316955735348078273047610887093973690939812379336782286","19719311837465218320732192271233102120401760634525989311076107558681417275711"],["7692796521053170565145797296225764030794817780366127284674138214717378554367","9293083923245782497341014643053531376025783294702584519536612742554400925965"],["1162590317384564298537286647924851243010927367669515679891148162517423538247","14547449800806768535987838277389480059653184864131097940799092211492933311554"],["21569905126079103069209322729018913332496460023494099678634486380800067308988","17101396295587698251562373055908700410801575320548863734294215836885474470743"],["10445070217870295478392577429891439000186737964592491164606784372531085495005","26428446252617884718525795949962566954954048865652812592020074877041950339065"],["16539751357698781170241487741361431726212322719588519852261764250346546053028","3112054302441995876171991800539854038433448019764705714118794828025203417552"],["1176888401561998848053510835422459731514300218319484977164773589229969676152","19941158066914871440648331010523489975198895551070694697817348664622404771550"],["11034503148591033788632699674362454586387552825086419739635860073690458310069","24037680653505615999220865917187195527234445999671159175155316984400155549257"],["27542712398102922552411030543256174442088662637312025655300681857185605967832","22800138287237473791334905658398414858756457874286941521227854404479817884772"],["2195877813793693041002838801902842765901419348854501384969660086568881964538","1706992587480502365321820435288168808105050770272560029645305224695055443045"],["26418572445199331852836381060325390532801456740373777980650875586328503799469","15687924845246460852812477564709430467647679984971890286300357712143331979638"],["5530713682765069769348087844585779641937196648862579013668449711060682992175","19138728321644360902383135195479709548314908241360101462426446977224666112986"],["14742804392389908581696726078039954107644590066176218105815591238317841881367","4948125689911017703047492352881080240128011145169438359100400391304229891726"],["18672089892346313147750022437366489519323599864353194429962862124023700785645","24621618051209085468309005825068345707722828527802822651841003369328999633854"],["20177230246163139442368964462267949116984700009113870337360211008476678335633","2608884746490785963143873892111774223351834381831104686763238293312423217038"],["20035135031188916717222672926317949778686489893412755012424747999539345216056","5130238492423622706065929479363603401566364809554563540442792082736963469837"],["17457963851016771992179077527745137067987436681709826169238463532987319221534","5540889990268172941592393775725770380320632277463662769011904677838181947468"],["27182026807190756241329815218962678225841259946095900041650454560861227443668","26043104276618123356047746424011080819507620272696218441387364309173500776031"],["8560299024539811685928582146176695913142971374079321574172277607677712222385","3469215495316648126473841049026169941940054977685204649125319601282862860256"],["7775422031477008187411003346241833753999978051157256625631481379985883468839","11778232795949251807227698932502254151063557243046746885907572659070544255872"],["16959055339654019194759294119518238913574105695313578145483774311302587330476","27258556518024266313079625471787921603926800093726356806021970390105230519844"],["13520176035462968093778923077786785353755044064167114637511178708601934617219","17965595236190528984273432294044872205650343288667335986064960937411103172535"],["1849846430949015638652507934283188720575009853054765288261218723204641557124","3379406939185288506984294289964484844385456114652480717624261791074414823792"],["23487320352294817262295480882947199136594268902902387748303833625066099140735","15843186430334256440717380160024922047645338149451206998546973970919327430944"],["2079934867187563253584403322922287273306941641706672512773176352060167282878","27009011523203441338140849277009219046004356929002229977734264328118935775372"],["3626904072139835135880464779112119147230563771320735164543527646479370457138","6588104489409362174657545985265114925876686449012974500404082260855702317539"],["1060779306066228155385889752083913115479266784610904643103875651280799688234","14343307387387017233202691201645423888643163653348634349784657631927804441884"],["6973740739593999863367038989652795216082059775264595091754153281255318883120","12113646375884397579079298406106180281569029210858480625554807484462726722173"],["10988976799585743543561975586498504402887581637066020837362266969969429190966","27528104610279429170834878811590308541930227602083069989231876380286321526971"],["21355963451412249261539723267749963187517172553633617862754271337018086954113","9101327944615747235558348477019774069310262820063202041914049746748988689667"],["4224961315047761953277541856655350203583463541348257429393827885436380156686","18054790802029435036538014804056369732101876760207363309516039835069751531307"],["17771284956158806992105733905979269259243550366905065892037178343421919528326","2909998875245579377093497224533335326609493345202442820709061977784748631586"],["14811043381877970046838778958882252610692402115881699722098137536141919332122","19189791497295861829932342023689682898247012661883051122924833566345607731994"],["20572257696178736906257296938327578394615096299954997537224758261867078997471","3494420452713888402820951748585499520812652392677950349006121285242215250721"],["6835573962782538263392759455035778582397908413252352315261034235430370016709","17331554654600910579934459798740449094255289970936049389368775703721434601194"],["24830027332755886509290612914821679374907909698000074803197046193518400985387","14223890152289569314031432846623175702342569844420293112393361774925591631776"],["26339494251020856097316448173395484947814801796454400746025625743243847580949","25087147506944021122514443518650450431061575799495451422104880220519094304784"],["9646877214778227311426527977839051542553299802442252117359573209266654388093","6231269163222654669339245307374932911886988604632929566139726528697746795765"],["15721867839439458753339235887163511254702170547613128058617382311311975898717","27761831024537220025928843268291291599897201100353048297477124218040021801278"],["7807376543204164168930812595993758519115996377151862364908919310724778277229","15227361334701000945566918971921013677694801943129913104605603255547676777757"],["14338566939723005272957979880041069410659961992413952119512035120513320706036","2092953052911096602004550060500463316086992245059144875540908120568666842753"],["11781413435453829694680570198473876892018370281722891680307780493820629537623","20272949847248449218745247668964080193627122911259393232212911797872706757842"],["25884268175880656069686324205085426089422055519707946851737264557504519324339","19273359635402178341049834621122809065663949322601609585683674438262638405554"],["22826791990773700507872182821846015940274519630806081668897738656134915243231","7300490157025507687359690882193816633229206106484437727647328461241248571774"],["18296354040311556715687823625318308732926110247414076584718297683981521531545","17604321145188181228877861893465409183165268888672166919847615054985027488612"],["26946671904615888599659092338663306187033157471508617505131002447734128257975","7887894233773724607696440229246958162915697192149332383016669398727185119268"],["25593745966611554169516276570700058736240679292759617126665924231923664898928","20015038373073819448439860251098522921991732923254040438535469651939521568392"],["9163779326451576160242379490574524833051280947658458230485557059215872309549","11976703565515969871716370649788791364936654503829045404252117213204191825506"],["438151695644544157862952844588156831620138363371095856885092755440024001308","2961797886482645457268430002595436393395545456438108972370674514937593332907"],["9081046339892719599814482940089341854571602320591862687422200742116036028917","5390010874840659318630645763179374114582620108222705028869114917285979207582"],["26821598938841822119992679251729164325213902478261875977478839995422130067691","5116698544701660640293383537148227620341432927833035157949891109518962569596"],["28942026645177756364500750798573922633259942872164545511695993116672259187999","25909782423983464227054089174273912212463517193219199571797333689867737777542"],["11665207892800852340236122996219207969031539957369183221582671113636472329718","1766219025005299150372092426883955176007591024779122267587174063247611601375"],["7901095039433989867298493861875313149750615439997798468997906674665041840972","8551089246260748467865060786956009334118701851314455416259483516876159201683"],["28389596649063628537340239298924386482078045321036916778212986779624855919099","10412728436837220131465832306465630539422042599530854847995850006246338207203"],["21571455355682216912096425822871980902886414818046876321633818768808719586553","26958396113384871366823987811414290994901789272454047557584941661480497786930"],["19357312902266341095190046083189344119829781206910052646579003565800761003968","5587620544592400314984310098291483915815582054709248905018347530475359116191"],["21544680712074583690502081450519388008537284570417819094597530427815585483029","19044640245130950836069491890081309956958575538793781261207059901136323373987"],["22734306437870312793286927982515563830967900203185303498872599678270259854523","7177273142040609546716982151150368801455490823685222953686406124752869081312"],["8219598839751568171667167240937568312068731319277827448097708313785903616806","12334597529853190873444001782596472005482715946144138033566675839326167468768"],["13648599553049827535752117855124559861678618262956158768936275059297530645054","19119976996175266498528451739902339691309335250403466973082279093045747117656"],["7017164638288629777340304593763741831812962126423271816914903886193919755695","22257806469569799157137873739023068841927203898635118957769650108959480513750"],["1503765055029662841841335118967705547968194908112706169091845592883117274004","17389305641131050567285698847131771891351343857200138986589529274022977078553"],["20007917145669295862204741427592684844679889190700511803568783309309641246503","757786382125229267735940613696305115547461881751278833943753868397860552799"],["17317529430362188389951613816863829497151049845159197906844442587071193008275","22667277658623865597100586088882984341361331071910400353173204238761691923473"],["7119610727206870120071620640496658096877467098401830006069591629772650561310","4220432962491025815699068221410977677526495138429187628564986588381394648075"],["5257327532210399679925662586042201241789394407003271296338349388535279009693","25307022363189778452917032664723025687905803305985361010452832412681092599781"],["21216770825522345872712319696851363633877550666302281116268872228235477286774","26243522580682213132506190116250447487259270947095776319221596464454181384472"],["7496049447737244832540476394405693919730356118412689222756632701288486218460","28284229753166511478952248099439670270253021403417654198520028479263811198823"],["23448300454642858761902015807978386856294905699569649170961224520077710650422","19841570237940269217589983393560242350093540362137381553244816005901029264688"],["12947211079099206089080193835818498743821004860420242214507583813735226157135","2075899940476170779016755501898303916783324600280783936684783244592559161024"],["775346769311691718807190915082145627364442848832663038565250351264637657409","2701916093626988857775632510500196696970845144938563072799574024066693465542"],["12445677754056068212528599395045964447757323737824030958958965917806282361911","18832111984850452254032316302293318442309885801804892441886121050107499433119"],["6885462066868402634210158355521537851329400705605892884928296292934336031091","22742313764115397414855793684195984889240380937688602912158055392994504669313"],["9086284733653693548168963461537889010811629323728285150373281938272242080532","23621858566263294128570454426247051695718139753158842668147261002435476889186"],["4955988128260943303067106642176833700450537968079431802059078325807616482582","21016719258867684805051302375557761281067787540063664689717736991297281347918"],["27360222629987961196046731845052113663974946624827554335299247195401799765405","23011133549132547237040859857106681838826387368896580337471088902089708920970"],["22233487357720793420428202525587275915485709116028239521626725985590473951950","12173400598413120271213730157782336314460855165247344196764484087234488722161"],["25925162221415208601461302640763035410206766028155770432343289610846389023683","11759183981974801169781786745697727007854843121534897425543957830305446719998"],["12554124343011221862495082339146448948391260351579748800102120043556939793328","20112589328418133306204027903329181415479924906483094451065881653455397704332"],["6022743864108151279336613583115993651798768511510260795136739162049405695108","15701858533788438981036743671564024393332113353684508325046681349108054989121"],["8462280967272961634399259062293848621981654625164466011657838262667379704923","28087141326911461940716076712735130629656468982998495194948362655989100627860"],["20884694420740736117451502186078651570451604504299135830480405497197520131111","14914524455311271980128211336537254253913600532925883766247897197752620951529"],["18985664025450502964294554178822094440124742633463310378489927455766658346175","18902016406000638096270052874559624390636192879882267827952760655545226723822"],["11553743679158931509627137633621673412968070622790713761940319492177937240914","7317200976894325350161517990051999770882063310734735405177106940989997327936"],["16509004062705708167094111698724524783045631667241082663589253452011148371373","6025940879891394123899000862834482140468854892712381736978494043705536181951"],["13051564812635428460891669686972129758980694352039811206508111113273787040707","6307964164261525061405144230390934228407926064057963678887846985802615811756"],["22519094123382616717296294414131071436472815491963697954482003568493472628147","43864576230301366547444703795092145978888494937729367287997992838458617599"],["24465394737564060959440392211613507593252468503346968994261726616577437303306","28325435362763727318878351946926716625241823275329745055032414587388184976407"],["18892429141109702927274228226781913574719989332023745275075748738628608922240","15937927509266297511540800469811693303815902644794598077254660352957121612370"],["25288047798191422346411691596451058316632871041007440846823310948177807615993","24763095301347863453468606449920588014386315658501284270292860967587353293536"],["24703227506716246619885990593780536338988107487025610688993391589606733030773","21134348999698463679163701995278741205132686724866696455515959119146100953552"],["4769904208625425784401359353579830268591962333989936093832502888150718270539","8043385606482833618998114085569864017056953571176404707116922085336419209697"],["27951647453880692039079869871899353649584155803916113280793675376137641603300","26232681161351831793179848815489393009743713684310230565824644731894057217776"],["28434392955239506559117010686669131162040215497125512744106942103431882212706","19973075682530186683377808598236684439592508207419245787927475523602706711619"],["2551322676443682240127387380217400773560694618786412883732600707619324487382","1956910230759950554984017900036550538618171393316825169993736135366497130417"],["1245835106570021466866306580018689983999539067677635015375742644970223224427","21565063920258380889280031929170145505828807329967538967536196445044775305459"],["8931858834660561175409384008404557836639213052667546461186446962693044813754","5454750736464691057502482720873699159709331199571836063307380857950501681193"],["22736784672205943155880851624144461696998725885025092372693961553773594797997","11582356825632876759517707759292736035376279114864566461421184302194798079643"],["6249251488786090730217607386273638675512350758946267589847339266782712591569","5674593081624663001249810354158266339956455250272897477602906737422036307623"],["11049508660235167056598300816293099668808973049162194524170946931640871337582","27387381342119547627728809407464675186041790191531277762348169515307925053528"],["16025984508252470056229604775126135921094014324376619163099191616046928337619","7370641654159464499111878667177176498029174519188255776374897589925726166808"],["25812884659556670208558301089661305045908033330232034647143300398761106244528","14553344586565001139511837813158215625115384634651385152071484170044989654835"],["13066769356262803266919262142663155578527793853546672542255599095841114354382","28726810554753721818019270765529762503295892444934074879146832682831358705980"],["25131354281409580698223620345721386769597102911806880617929538068003746614761","2377300370674788362561291873910281874582966801631783377564504805416493294127"],["1134945331290810191980128874815797599719478750112711453026138887883892740337","5943064703686740345578243648678910541825927638282887320984838949900778841313"],["27673425362270951097893922606783014211162051915541790633378481891262774072893","9684584626712528734417899277192146335001279139488337755544235231398594589801"],["826115375934902531024162108820102898749120056208809118363463290304018454570","3750861549713583076345262714673242021745887064370309874225138072833506826483"],["19594174971399121407397585381444893018949485506673283046974909131609335137237","15530179677601175220760089851212708266487520036512776893399792720884366609065"],["25660827463390162368096304718167517376759636399392872251035922763400276203031","2374250603636806250243741919484928492946772562309880928858410593354236260150"],["14371846721686209066449671093978917646654331773188957234136601009092538470926","5176473574554386107480458706731943519423767523877142491849610499187537052758"],["18007534801717134655684934603603669938663735947398033096740960571968043651992","7679875169763646689815509483909097428733263624678030698976242801244443336279"],["20414182101468055579713391523996157776488943285149847436669366128718625133810","8566043217621938168628398944527202933860283582759563117009854932366569789180"],["4055664106756015822923681677374580439281858223831328443692094268862744288870","18521608296092779222430202627967182699959642261226924215660162905077114219931"],["26748761953460972976719158617747477643908562954420456835695964022523096970266","24921584809386315610188260055557687161595590035913771476802765637837299105309"],["3748216573932349933866111965306499381591895771136884815075418990806312198712","754045001190157191190977432572568171156341560128110064509108907544130454165"],["12639870213396538464500442109305631444894562436108302065370740189200534880395","12218902577620027068472823138999557621456748412809436214869042156685634788814"],["27564048202667051654908355111289974434712973039532572396877975978121327098057","26783519839118665711229481480575730218629932555561293151053501870643461091377"],["1552526200991400628620763343102165587690994921796188671405046271068390382023","1311379273015928981393126974357637878286938305012345898549010610927237337062"],["20448035146230931622369201161937729317574911144603119724025458740798631298848","27550550958071517091188269581403525111883459350413498570786191105010601777336"],["20351822013409081546360357977910374724992819305540397563512974772883874319351","2226878866698052111530031414946063870328483776430753841225205319802115442571"],["16484660019741981240217745106572144417254200616999737022104956950074337290535","9702041742301395040096617582496228744800010471411009757889230705006097987612"],["14670730752326171898806025160805016595466782534428258619576881046005680014601","5366981056105463613850115757864173199304386507734052423243388300960351571982"],["8114068613634588464323584129589888445354224178550672504283151443183822564262","7899049564465823890237217635157456505345169993106726204866800721636188869002"],["21420697108135115892980406882824531570254440614342692208574443311421261051774","16781722299700064241744397274883283896273852712926769745723011557444038742576"],["19473189719780986566978940937710427092331971434368976002059139935928975083699","19260580278127766221381900394121356876372861125877720418075802327708101856187"],["24083094035371806851841099136012936235654910374339048302001001765467028033193","22725893084133238171934729597609228005023572546454236874218233633255328313267"],["13553071031054591212747077574643969838958228447387994820621816187498768526378","176275541135905353178113494596272913356512146301686359052528464965617418664"],["20371260728975581539868624898744492571568313990453783548110667478554168468074","14606632805924833667137867693642020554581719604882896609067170689317243418027"],["19547438911621207575094907801649060381968935718832766953494071674484563693393","2644161363839735762238930824578517907978830929340930950999129053331050312325"],["27724687347082206252026518530971314823017779693336568575082512482041105213407","13375297819265430704095779221142444417980831852500212088069694686700636078372"],["10218756252914169540620182985733012409873575863453815886187457861016637851406","18238413760371074199440370847986129771609855296709796793837322832728009687806"],["11852057099728514432556844892363738695457233310138989073156977643899776016818","5497347258979179498762979629360105231661486182546935817615977737813113421578"],["19823811388163912451345607270451901746737875929525423855670807098726591980002","24978050400100413296246139039339973856229658034230287385948808074671013376207"],["8925261999100089580476063423513828646565335992448357491219096869581882789407","28120445362646632392472034876487140020761558836757620722693673271656709201882"],["22942050813160322396421738950898542807841276305714594650636635978145611912313","28275663814036265332171447453982134864310915154598961447796014374668083580973"],["24918440859500164066824757747333551911320433223786932267932546130211128132697","17057160336764802586424263660898213140212463954144369240165831242309412671658"],["7574344411097567072180398030884237505389963830319398972132350340381156120264","18797629164072389912829063593311291686766152850285863918029216056194714284388"],["3049520535631791235004786614319879644771879431077371028053164556954090763275","24807165360137892707123827288456770400625057506404361621081208196991298165513"],["27860648584175233491296073471412555938481005511256385312469255840847853613175","23247157420594382770594042002084459266025521416457400264452919764368967008245"],["25803543397463809241836071337178152708460788256190892518513207521574247230725","24162578657995657179429449205548440316743172516027445132724343194996534275761"],["4436738103177283276190511955974681219588014397106943371589957781231891127094","26124611762764126087490896201747464541365659105316188466158033656004923661197"],["561913255359949594869311532810723308032785334838760729313702094254074108153","8277508448405449434636928184169965576900569652265492204056943799964763378481"],["14692825764390326673647686062979907738377270507194376177380626607709586494474","28122098906164499356395602403938232025609874482099089976905167755208399773925"],["28069542020500279813573008603201321852261475919664167073717567060072505370439","2532770237236098581634301410898742022776162501263537335688619944935484221489"],["7887983163176015073985596162188371573212913826101324426847506540441462542116","10178805136754151360996053880830128407077683996060358657882084160190514214260"],["25326216449348435004541903624382146532144587931169631362484694715721815317767","3146299616075273053246938861374862165627468372545192381887693985987609761053"],["9241239071416498112142324717643618592803210655566532175869287778328521220585","22627935390491352521755470157161054157359905911779132448594589045544990831168"],["15800072783486882663762487475385123936411844036763252243461352290876315770716","28826082933182575088543488448337333979958356104740890690640458905551579572727"],["4896845598672735471553425568788002868241839929741657695325797970937506813868","14157564303346282186741164443356158859954524240843064135873561531960401868660"],["28057096651095065684667915028645269486362736218822491428013913058581998663928","8678199430086269357009704489935276425115594689836881128443452598212387114230"],["9830176160491992469055613858203115686941161582372092720320345907968836754044","14882094844197593932060517036101735453665281212593573754462271822352112738272"],["13912667969493345618287920153257967182174613981498679269391006188750887414373","14955156531784846216578080418036439605400384953134755613680134152626758652889"],["19567639667756073675119653448530429185542128265792330692871773520132218457718","16016783796414040077535353981092493112979201565754042465338470765090772225486"],["9886026185686702703521896166108767442066064935643936521569272961069629452930","8013261586390265383534287120817041781719761720685581621391233722811411670479"],["18382282952959144103897117067387877518403604385852078665467591429698137998201","18535097662672549520926880230791631378926716785755410302892865690111959102641"],["6370837702035934344267834348734161626450215773905010559618409614772766433633","11559626427694934856076995718880084737700929049411857063604182168162683534616"],["13673723135355648698721942895308367433165245404535853612496261148247746367784","19378811684423155202037140180047809678916080505875225966056253967805201375307"],["15884027961000153104929240116997777792454156986524004455558809147974872887579","25812315717154524603365381326359849060495788551740778556740500933547032002885"],["28730170453659808487249932421708117543506176315024739884087179271864891831623","5552972000657507638603870869171619796567933417062644396855564140024051090990"],["12469316008317121823411146283508919871561310652617584677261442495926932058427","4807962958547202234791962269128385045869836268371701949756727772200811552377"],["13124060959050452937992559124660692779603839162869058128027922314594834813361","18473782695916095416423903405716343465579822934884693856721796718383815842392"],["17706620582583317691309849120286637057049226994133710185122890273542946865331","16228759184254834395856454349498012226231832552257418541444408848745220234377"],["12981803230579751371887395273392332455474445036433869773416888444944890479680","35136937878721690771718002914945908174796230982153910608223077689051794731"],["25168937852865397126426616093951371835298491324721226729974862939523777381285","5417536401135650849881726663745702597345852132298093604725360886273392454109"],["15736156471216146445436086283133124228864321855087194056035436377315910201016","8249325576547370521410715114323998774990197529325087880961839373179412532113"],["770638448756569263463432292606849720231405722907539757003087422517405352632","14052142803583096812949066090073563491143137546007779975914611252337295891116"],["24848779328120234110295154416633830544199204446786573386219563208906280517800","5027921625894301592251017196059925279853638083989159157890270837782893599345"],["18653773776499223414772605129152961742683556486157559271943944138305423850549","8499063284843968415410947138250944831469952862346613262752399418160207584932"],["8034353170778542825277574510331649679360457109425491863999370217230081890170","6011598608549762733679027456217831441127054616344772076756624700628584028941"],["16306418652283544447815244678229937457836454831821227326171847236315512278756","11072732488365526577904900303373660919328145365224390532055405073461553860169"],["10338960832930152710200245011275951697724397718173619535022666534237794616869","23440446543884157650710783474399686292471802418201620721120877257377956633083"],["23066893133635747182568770247526905641679826822097630469292978057672246479835","8146987938384254764464121089300196441152384132010562678369640239935581601057"],["8471134928371591845899809668409917885083842130822108038275412565849017651513","22081985536090408128713791192200407415177371107839181159052820528545707499671"],["2911960112239614759838237213477273458696690202177246458435952180703461405031","24592509553044650112305499131410207030667797610906377220984062107471492196901"],["14742008673229924102296261496186761815704533844698443429623941407788797586852","26388652064206064377881534551741901921273455366141219254249041374132954843884"],["21730113521904604522985965886990443186371382982577061948118223959383482380508","14116949666348155815002855898832929534068543669026278043307300177475363393342"],["27093379077946488034754496993858966456814640238668017507701848312609608648581","20069697307487661799992810621920396137324963537766729319673834073367740250001"],["25663013500467636408318817853435797265060821673651626005725080613404945796553","22377399100608282091061759762505282678645354157920111267678204538348294059048"],["7092505432074588619470729365132262312717507184258906199655621047068443973411","16280443480579234666617531540360928411341303985138064386612496846398962292438"],["24572769693615661604829156136406750371892553829573640249091975684055249429902","22321914267318575470682520718421931282970456928707004323604339335076113159655"],["18215713960141864093777555690150147277758670652514966285545263790184705656399","25525707228787609302792673620216011146147033202232543895238885509044310448672"],["19092557765097245719661395991785995518553997032828336476877584985166564107107","9676057634108099348091290393793517165780387242687111639119995223973401086001"],["298660577963234571881554887409450294812025588288073517904549672172708548082","17838231540636631317108643557032760375662987735730985688127288378625742658186"],["22242086654119603748585845997497360120024790957936978679925539972655857014537","6945482588772789177771901430044830953341485604056448955283075142414620498321"],["10063356458812417149910859856385055278006700123764886923010562318218205472678","13053570983559934114543384779020550407786843629332692708626378433788805926440"],["7493547052427159395364207735573615691421106742835408723523467454933401043746","10677249246941727623963731229367204026076945318385088581542386691743094953742"],["28720778596144205326795062776670050051803953953681258324186928276009075938601","23644055718194747517329317220678245252845214161973749085612544276845344981931"],["13865690686319503384956732000540011820272082151295613142752922391138312837762","21518704890919769849008811251404268038377002767960367597109161898154273969462"],["18122841244313664722615639065475744326780655896225901728249620735321863867801","18409823617053071166262156149673829505331308098117902735508968187345326023786"],["7411725702782545745076153309411428429113652804054876426478591009210585956962","6762634701910737171788443166579876339906318153929092099610700617524655342646"],["7123266301324873269919427466780070341043584702285298339619671202150517083385","17697802526025501368555557554519658363201989794776805165580621044208962714105"],["11353919898066674055552621344090265253425387892610153609865595049526312275893","8471943721468386412948919171254724367700464800017634268996339808019898710997"],["8278588360976072096266155638816481809614593232949129235914256634483980297975","15363512078053868853496326943067860220308092050723190386328368218331239325581"],["12827027321964926643338577152426852113092695902237584864190339274120799318565","27282869386578513050059798954294344396606232605895757950389464408599381451291"],["26122066010433125018484615661204545392239360775814217572338356051996118295299","16844541269497369288108642379183234859188263810433245999270083934191765634649"],["11663186956124162050013479332161705628737739501112751034226647752649045310917","15308762799752484202130376836430665982637257944751251275250452311812357998524"],["27644798806148352243231999823191019076892576017732968878979367869973487162193","25161003690480783434703943597575763857022186180180319950673749821560137236827"],["26061672349686721408301803152374688992053800526683213585662418963792739764228","21398272462514105439010857370870453765375419408951329248121470392700979201494"],["12948916884395230973839743313672426275651224043082818853896961355609607885426","2987426814039229761657281049286063400729808853013170729203297163078220058630"],["9501868386687818059101962157227030040617633413945703049115691566372616956099","14690153389259406567162508189364007032862193407385215545561061021949538862469"],["20059053300467556068940064713979470460939262029427890073213924911561169555692","6741213708529648569423079249420851634732179688943968916532883946812509490454"],["6373520342830885703627793363661015691195253824305237492928241809910585027139","6029688457715206356320343940269939241969008500123023843029822392719582108647"],["17227001566000149367978210765825845783402560591281228047728380479191299415829","10040345983604663308447221046346104282904819789313395951546015794574852214144"],["7585429100820545719392379159197643626818965652668662164935628562777205775255","19133918584267796214437366606068007921608209082007145121158795347440664553914"],["15325389301421011217043876368677782416148932789768929147584028252927999479361","5318926402218868317721648352896441012812105236622770736159490007577518207546"],["20907832215698030130231129652751818502029172627309314440112680081511454809356","19301037268250742958507201706849879953994982354505047033202252193266939643068"],["3254681011822288274490682650732178229155012714942305759376135469723306290140","11517665367302695232892522356845607297186914943878541012096183713647245391331"],["7635481325260053933912112866097747101108533824109447293974525029019215669505","13247812631632420192185641121260285093273110452066941607548842713293756522911"],["10510716110094424642921418913482421374220165785880114421523102587353810169404","20503611908851330284059260968081443931868553195232746185677825688632108569526"],["17117075329910807680557145375631833313041245696755368832348261011154062587397","10465155931361066650614380744668150503541475055035898822925937954261839766572"],["27306100775244780089940120499101942909577400365064572058378986197810971012444","6967780416622875747581458641924150282768289407435497497870029127776199671136"],["20420239691633005610103737488752261905539019890418772997538427143436001703009","11585355927086955775051933362219121168422433998824879012452518683458312664625"],["7187095663340602943846094035961078735942186669887135471505346379416099315042","17339451850282384428270747745296908318053036250313387604629607313602092805043"],["5090005471271606860078943085865677256094376326841006229406677145469093207755","9981250045230849413063816506300585897339810447299060855050635168180470245706"],["619996254547603306392999555837941376822819692329145569500934023376283336454","22675991680601537687016427109108764436970659576815598319516357878027918009574"],["27924827684306857678883984751529516506061590177088247311811804608249235701952","14475890411913175072342737001197544172733891028804480921469078286718685655083"],["13997429936863980201279364203276852140578214026708139266592096644425540301805","24512772450004525794808901826067250927770428632189375800419874256898184526906"],["27417841200122557605924885594625676460327120606378990715097672153270766418362","246113528298264547244596425580835647667209236317589796900216868925163836804"],["1703043961853099215061336289765972060115451042198576439661896869575692929640","13677784397419936042555939209269335769102902310277812047694734718145581765849"],["23838682820488180519907641885639438505154182462301514824037199902180853680532","9357279209640187065604516211839538960522644615937435225854515057997227349931"],["3046813269827301593211716615608691495641703905984131268704350697004536518853","24165371128297095309910562242952872599882357617949661770881930734966865632904"],["20543316573776671529165267658727706358085070348324751370290834432520845396715","18627284380347404763134819954904823608028564277736929660975288786300156719350"],["27698430030091264239477335358044238518243943598425549502910067758581664796652","17773485060109619377859144810322599635666896174145550015818583715906104509200"],["21021069961239949661463224091899107941657475640714681040236408913168127511892","5939663866023014113544953125101809899811764241075118203882994948919007499832"],["821388532618930634024110468519822054284068898365490576395405704342925037907","12501821006112716547803704319771487192418809825934177224129712745726686240577"],["13219782543282136340429702044903703028636457036216296551909292124868865801335","20781909932391755201920692060737644515234815966298991986361368020931267746190"],["20916975740339160081307118765111864554606844366308842945685507852801698164574","7981371358887254252828156620800864689280980624508242988887479260485985659120"],["21077712810223422685942565401982521103817834812349123561638251594308945892058","28108983029618195019657540585455523546109701329469577588886260312803549498163"],["3246400116860706727114564243854060539169273426385324642892700134399086201629","7935184604096703343670848359962104235777530484653630924356599561978707866509"],["742857598709086084114754511633134157181703920749932682807230395323564550617","14092652944840130870695041145034549074499210519886315070455888175864643734052"],["28838985528358284941574748111531722760302278748337419372865905345374382419679","20254779901152549356254082355789277854222649052935833578816888382891253408552"],["15240618352831915306605885665803039934390252843407426698745606707840348823679","8163713226170255318161680191641519115315412255352158574069081606469440261700"],["13051845444306291394733175430755267562821491348142894624801343720186631683275","4609034104320119373883431383775904371968796531290605968345539779226688498734"],["17092347116976415139258944341390591891518057328354621154559796944683351197652","15661408108988158234566964300103861833440353314784874054399593901060404442683"],["19020112964398928691435657997811863455726957053973425724874212580263563630444","28103095736827017913911182839392211275629048903779980915918573645971121530279"],["3385478262768685852383947693662967808770569370383170535374785625396708783869","201396920116180357394475899921278408373921946257433752546864838179496638824"],["28040801952377659675258656896614401993736081794194595479561893920452821857381","19692280356934282057271183535961463700219541128552774490593928938321609892150"],["1019106370225443641221063602589564503017422144378404211602604039613916725654","5535226309759577806088622566571402479034613841647893355063730853236640341331"],["20201353009238763298106747562749873818533103977470597302905872258042409272576","653471140791135392861108778623705277710238511727914035033884200548729574929"],["14709959447335963951219992750748350496468145389970901918196876445969414031397","12613225220436625717694248312866365852255446673566900989952396018707478508243"],["27077515185031519800201244647940627286185985125634489406292909103896239387122","22581864811319222872822767247478120991388102763691470270686538022311115581766"],["13294435626218510677869265825954461325307519277245136616406168289555722858871","362030504683171745209238876771045932151926998653011060035756282001753769027"],["2290088428850181241000764286605085831369532896759625167339280685325373401334","20991593049796784643350465959686063502352596984396008320034990964009166442476"],["21608924800868740060012225156215071697063278377670522523886476860148622010186","5884167461620209178799888843501074014202915009531698134441440123112854174306"],["687479636963864774364635412403111248379543704201116457301812534306901408299","3365560279662890504567709188099736535885697522069399266662242575442139232140"],["14532655340196947919871993309718287709986635854476501304414534877328742440168","27488954141180837813084222141959384804193323607569445811982804273638163899521"],["9310020911092308182033498769506760964737012674130754030192623957961089378492","3910112827312071784555822454413846975199137707537076114296832177077171525894"],["26430040015835634595598517534200295905321508409748715084912116376268544075882","23906389774955547504633910694783582312514417359219998663060173822030306397382"],["28066055596227593140712959577952736024371824503284257594980566575718682765799","11309609664232664986075031437559842715588562186717290615159524980551029273288"],["17175986112003857007819386379544962801938472111324076852058403611072159458109","3653672222120358070708324949211255311855793598772829660416227650805599539798"],["24128379415303420155227687433499803984967250039691783741718101181619164340108","16350587457973663382550358388624744600152709948659361164749152686727406461713"],["17169805526960114906988321832268611367806378128760997571075469396849690719703","25266002208959816432892418699518801634320986586194544583809467651102386875772"],["5637707761309069335676181570692327450711116835032109640263190439762212742085","12000798698810976896465113638178652236895841518475471957402123013157505911182"],["2701664959172669148339531099913820496477629356370830200672458543648664048876","24863017882502896581578125647828549361584052986356168191587320744150078831471"],["15934096188277725367557323852424192587630239952807743356301942417350227965323","16492444773594787811566820672414954767066281063093266418141576973707898139592"],["3390697683227211693041658000013877298226152186517456418776142246027276016128","2378352008774525489510864189685929835907712502495150491964447990437174016278"],["14599308801348061040194219425576359956600986416050086090410234877170730703113","24678645906996950223190046591456635871878301076878750870492201532897032756455"],["13286290114745938214546684023997595795087685679567692018709103552603531595450","23891778262196518525748180576345657318280623447056588965282649035093808767424"],["17449337618499553322662021981542885874833613912198267170326218036650085970119","5750476484985744799794810783649641711426811396104753887545442989838032147665"],["1451136466544842800135424939455743484690027089980072658215564367983674808062","9054210703133826630123434227636270240629290078652249427502362201829833103673"],["9188429536456664659442504691304575093334762297694088759016675702139530667562","10220319075375160429868716187577270690115666932648037553517006981907316410549"],["21164770408642711857713042586372419089891861346936255365712435501352384958805","9052642624887561413248691901765847869885863430235251840982529743190713249148"],["26593850216026306649195700046960419207172182529682202303908531314050958991149","21901817060169534707302143091691290592952741059413328024787142987551165771951"],["1135344156922318086356786449610368999692438410557687224326293399190634042321","2105195707385156644525495973050388281080408574298271626056155869155321180436"],["8621072946159810232133324217269621920563336781538938183742470922982865693578","20937822134269691692775214439924640324433007039976710251868883714903238763077"],["23497189177796187785243330908673533349774489554545682428997636804496050500938","18836020922103028624462195496319650748435505712708641902599509657877481167341"],["28645841197461282485820584768630584602714329237218930537292928310719452421157","24707380253144816600937588327465448163130552166193305038421304253391777233423"],["26096740868362898593589372487419149778315238451485160813314758418642083701646","15737107378932652610324663529478429962968838319071970460038821498747441202578"],["261977417508362309180116193652263725930130950255558771723447704954809166585","15607661669092726943007842531636868418752066153916984340070963840076184319364"],["20893416926898209514559849836015504306775594169760870941144369926045381607948","18405885243419050693668975414993467922299896704403072302044620348786223905244"],["7792122775671745225616711993826747051075834242423373912698429714726009490333","20181532091102296433560662058648019580406866327158548384459993276773245856118"],["26742648154271657024781873770478298939019391915049586003256883630885229058064","28322906733533874502612294888731855046432134269077876048501490700640656987887"],["11369456024138302761908841372834272164548247017723332303332192727657054481482","19698433656589718512797707551183100764115773813991011227823946074317444947906"],["16036160874651050903467405668837162019209512563491469104207881801747521087721","22540650299323777794749178072110668110211468648691308678968842881817306705529"],["2480974376088664920833182812475913163307862470065199365717871255845900498933","4223861907623962851570870347688244437121102827216926038251966639576233661187"],["13761976282047616812645115629858879927481991289909073242152652253884582395365","17713206131282518464588689020646098834163929292857151488157939061755651163470"],["26234604753106294195472447893451848368983317710244301807868342937754280284544","2314583390261376437789047566825098588757456840026733793536473916734311738680"],["27970882131550422319075990502633988961931998935440880663069626292031579639918","5371028614293801842001381700630413575148604597292932768079194305235289173947"],["9105993501338229926366406944878738457896138085944732687665857457834166413343","1547721420319151441042535439238024199357230712057492789797222484630201457683"],["23757325691447565409431486215064116415813555010345112162785865913619057883306","10955279610830965640195570554810713250131202226135760538801673160872637093093"],["28783470508643964514870596197774981603614378341709649984316589194872319032929","25609513720060079484107613953754298609504298495015363098294674916518492341858"],["27489869784269068068602201854464564412636953095809239742197245340690252462150","16139699969457689585035132496450874764796482406483940362379898079547553431931"],["4260013852009485617657926662535007533188929845538495147754630165367494254033","24051434141552472033606559221480795101093878382054720139584656163204714336832"],["27490963896998741442697507383016295213954814179515831528534879294676551211871","7872729483831290776110515901284944621581440522348898819849117826987275211759"],["15788600348942147389746901535314912469293066379781339527107332246126741159620","22352688101148611628407970389587687194490679469613603266511650230470211757178"],["21867782290679889308889705207531733230343152982299378028300632380132174329766","27792751164505893799305067991114535883213546616418914049284398521391844270739"],["6417075546640477851155711726734161088847782298816993688419801587556695947543","5392141007657419872093651547314272790114867115906669198013835267893797341259"],["24608224135126062085057124043673488533359956317468327370891223423438319888817","2718818284130617713399950506314859623161438649563823070716023364476310615764"],["22628979760263181640470764477827716453764502044660391821980070491990068829105","17152009881021183328524604085640909709021498173137488978646986903488953637636"],["8152599257715463852063945170960089887915997821904217927021714959905130976701","13941230978069872012660287325434393040340514770005763802607927551392413432544"],["22009043387939119995881773977964672565584929970917875943961601108978277474882","23827351721473037284964735749241586737270912247248427775565269405449540463689"],["9019170647718427807144286914903900728411390171422553954063637135041159919252","12437214755891840287218683649916482002804754778595781388608787702766586115284"],["6446719563987183149980402551819491356096049643900425021077361567368312320795","12854465194527744570001479605697899206490925051338522968473865769290798311763"],["12461263411861837337095622121852709762179709574034702241237902474435248479581","6893661623740474590991568228790271836868082996639807311981452101960057983553"],["22753346063477850623215756725834707139687209141881128837295526602299552155353","22208583082816747073238511490731839319353411580474843382926571568954781029816"],["24405758177295763538997423736280461481136366263582399884393259540593679533565","777322866224034941931944186812369411694771463611180997156384918103938460356"],["16496676622086067690328547415086426307476301712081816198572168665087134534261","26381621978687452465965721740803850227706523384292973374778266266748036156437"],["2457022799274933435475608225500312922167357866603274761860144856104545866704","25626524582573212241040423009178374421537941425369573748615642004595927637025"],["12006178599854819937622026586586906570904949381279218946662006868383318954202","6799450918065454922884729822160683270059676900500697255178529179666831862354"],["22434398360965224943858698687578744918169645438679676832683567756771096270063","18425972634365838400416539441705485323925530981280279273236557651146708359660"],["9135299648513442816290130240433193055655212810694194938847286658612703217818","12352402128232486372948780309895468826492904844934403001769909449057185077884"],["21526443986013661218023254749786893219743939307969395773695213659138120745378","22188879627081556768770282022096199804076226927489592861199941973914534991307"],["22799000607182467850019294528834391071590323360444514270053081222273145175586","27210017604097031278114846179488178548247349778193927922674699825429265555278"],["17794994250565491464474063397277130660910404216068065708900344288623019198417","18086745501605043733276680717996023530323364905138599150654922178259727018676"],["26640903787809617214828697625249493099354906499459914122844491753139480097066","16543895129131179060042008964528154408222956786758818383648552182090812570535"],["22078013251161845298004886548357013400864439682528258280184142777298161052214","17947222663901173601231116074294462865371438147764552690084434133009008586148"],["8241240079786631783637058441444899905712458325572254988597147827780167631783","20358649174209589069895834310448250778114051578063309539565017375360682460344"],["22358722961932436308100877038440307353190762396600477178980752450744586325963","17499128777736618410918999860548175035496895977630067664442731285584789999697"],["7780370955554299000740465167901228293331496352219752839658426911554766928521","28682575579221152765019459716194357725353641201072284856559862974997704196972"],["2975009842977990680495760862172195483776446238452868074958748879338469353520","9902466173136557253123305486393703907105101885429943428663983869406621611809"],["21630451635780211587430741118372445949677052959344598226932498481818038774838","20362404317453661757376312734795958035650186297641088863846015672737170526299"],["27942257489557562833379025079463210724785217296020293018037461154105780939365","23419972036611186659128721463946270478214635484145058587387777420030504840907"],["9544652501006795823299988965294936726230274341259576663952885480617465389122","3276929574940029329364154098435651589324580390953703208844875334404537417159"],["11244282380833957671278783661537748868649434090807017242853821596326495146004","23782937059190605854411344822246045144344109150836237368452376333505695716729"],["7762452650424814853041383122752652946943830640141425086746179300484060484797","8690132158559930893034514029191507723286910039398974985153468034307239370720"],["4367109491546786226558003610835211794020875524256480346122244901614304721147","20582165687093585619238664467904058090907843308771416335471817205903985738086"],["5344428482798080236717872556164001332294741425742247540177534073702333630133","18637905472644196068688400901993302021107517656710043749178489935911680941048"],["20178627577055605504812167438540407494133039461551437982270991867972654913327","3839117880161590147460050159079319770664938603327061152747629003765347562052"],["23741829613021718443749757720415944203223192207190985367212844617185193421605","18759343277418278254820978596367995003826972450340838421928472548096850556976"],["28082330672119887706022331612631034056655440690904377377197898375592605095680","20414153434987505365780959355057213957132291718139836974220445880702978561476"],["14490939362946061618051897068017720384046055065668227810734563973168295536719","5730924619198668721095214441362182645083940219189018103569755514864471536505"],["11084564215047961427766842604600353134319126790764971259471237782396122829246","19332636474333567093379287936249679022378792763169731433202362256256700127426"],["27594418687081666591963312852668386559547794619111233805739057978476902555395","19097480082026424513282151845110780901227278504613697917872825230181298219243"],["2711975639747155662485392128422966849756769065429850138299023667821331872352","5666844344210598667739805867188908051193389516677273894889159127893070185247"],["3750920128271183688243748434122793334120310612214528819900213067480493889681","27334720286809504488916235174382911376077031131545188935246767484362063353003"],["2977661829842065736788717317340279707781639921503210088919100434657740318957","13328426591538336882930794843276161266850848444246169126907783977434362620310"],["1182403009792860088050857952488446395765448629831323526050935416078982278835","829346328843102934259822525815166866740599629194042315339588370594958706591"],["19344845017506385277009014823998973781701976384833377325546608271258575099096","23414776465542321648089763091507199508306257954475004727844669022128909536856"],["24270968212488815596259318414219359532429321923585333613928356982021503197897","6390709557626165929525800304412005833674290998419370333436547690219886556769"],["4202432134602317880441314532898317718136941335446000777853430956519311430625","12708590798849647992766341712581820185266378606007431805232464880840734771631"],["21352093912685073118887166451586581750962258462207318029932618162916466556033","25530579545644889942522841701907104982988846396547986026901512714716229253614"],["15734968630570978386119583465101288268857168350367196960933296050780321904055","17929057733541064101764367058437187652480599436632455522072197492804078847185"],["27248582839410117281193528169086743063210108409796512433052143452906045473953","8502782887766581614927887553862976807007432692621409657192571764786088847985"],["27136533978033652627799338457911983684925746424997706532762277874371055131409","19605152892934466282385843753771105268464273444384528401604211617005641508029"],["4043550580909919756554505881792782425722088169516490712969427127831496790186","17944205164358991838606452045977628889775835814037392180456564676351797120549"],["24223047816018139320650329169007496821062416635570911686173489777542613176327","1652151418976629012317153559785137812952212506235782037173619681791940779615"],["778960192319975944266871908136870754328272819051825950396784170681482169507","28662522630896425589062583295931489879755736118249513369143284944650936761709"],["4526173188365075291526772156663408884624536766341348903746013722708678097982","26711401446899812755242591222746901685074978663798989789089134374330422422081"],["16502693729662917150572889922793576876942416100902746305701574560066917197504","15152530173541717467445341186773150818298146622914103138936730079573651092501"],["8732251295632202530360565592222126398181864577012710196392794805680098719493","18391038378267975822710622609277079188170016336250771749875554557538740677072"],["22342217073035125789971399048247144934809082850414812294408157814721610626129","5715070408618934196558290005894601944981554160567770597709215222592046562376"],["14475282330853896330274013174891125699478548889732671231563649816312184234001","174675080465457345308831540712898002015236338705897828868945019095633322287"],["16017459960692806394226671360612195980353100226869062411702875096758831983465","14649169783591638159828737075463199306561142265958756694212077968044289094186"],["25272967569288306307115510209352410323967704841716076988130963021216872146656","27854201621558182879091285791626955744028315213456502796904577667997975570893"],["24493584299084480350401569484076477640459968406372237122628217818017484683846","28397414774741421116960597854179923949241418820642547476953040703587050822862"],["14643036897026609086878476608868406935783600226594358101521882047189979786312","446678453494061415742595127600365887131839523563299837488663329485963008796"],["27707881311917647582745870999436927392730462924741683863642387366932544702760","5841505796708692742497780679556181717945302617494416574369846548123691913765"],["3051614717004595780034192062262394153536552360895918554747953869855183245024","21657306067302543143196648455082554690215244115755281538137183606188483622573"],["11007942455653246160918246237969728569049035067449937384342599155885575972099","22199808671032210515684685504050436386010706626649394500643426685196385314350"],["10853455544609985089380253215208579431397134813740671969838639599105440519563","13592243551340796430931988984063259449568007115368237918054835636017799600973"],["12129762981503058755050901325778981322496112107667606336592149396305066916645","25799078776009841737384435870260458336497894916307825524160412968820629074792"],["20593875767105884876972725204660415869300274504195702759786203560917948986822","24607314220926143885308316606745807707774169940295307910688819405616583047220"],["4122708565865506466807301228841950077226762339711485250729474374888948462672","6212543521572476428631338646178451373717192196153742439939578649497522629878"],["25610062665214013759340207563890446481767064690525474986177290628164964675141","1698673415751507074592662534854291072912050015209723967141335660038767004871"],["24663559966363117631461668696252487051592767185710135341852867473737462540975","19812460296276066782927805352304881212204676780167368983313427000075852873296"],["25487957315077935485137358359651712466108510663408060844812977297143005065851","3158513037625307688297230351586342777375132498050795569690224095856871866932"],["22850814584860755805697103211368472705923297713539139423574725231531813856633","16166775898402221666529606834533108444223227917270207539525473198832323647433"],["13486285315211319264220953131636630777617165552546717091245853069322645620623","7643103465064972273836610468225937341709759493539551137700583539273775483129"],["10365703139539261701002670509878548952132978146160760833695086958089910412701","27509453961728548542389928284999295040614303757621119504222752581135575314334"],["8795040650575827939017664124474954793003581856285960215448107377739570525937","13005142295126361123494540050543315228337780224265156639863050026457858757902"],["21622433526361675018600053599211664269795162589271071103932944932272569084719","27616834400616668332951499442897635323706636799379668998018279951538806806945"],["24159526164223361397279938252801885466035831024916689962937354968136038895715","27812998904792607588163543116192579909686376375209090313318802451282718136880"],["16498052423814732968845732105696548326322997558224397626994538296966626908381","1318734400252913268295630522234976731681897443126088635421363805425555158020"],["24251225747694131657233588788513353347840174579284934207554658448288478696291","17731038388564279534256151455203616187284576066642493953203641779609626895557"],["26343626604746799277398842802091646390865528520861498960010835458182709026962","13990818735526425325158332322798036069233845346637698339037921537410460025672"],["11636633131914510625346980197466436426060209404409871850333553555902122310380","26557131934663757711771000740360334832272011864399213435756329476503725296638"],["10545542262645207287247081275392077038020801991127768762728619100560584531586","22668733508108060737445933484294137693396297175482669567395171382138873373576"],["10044891085564014349650011212116194739359500991955368437215895438582382733169","4157329766200035845648761888500882962368206188677011144312788666940889882499"],["19420430464402207246959066247508104000293586242363157888427071606800604959825","15822847782563234645341857505389936081404853737352770972738005908437626049445"],["28633031884089318227571707005422386313568962871231113704409226693484762134245","16620262899447915483652320887646232980627388480986242717787058805348402523988"],["1723575561253650381542072894381080651981846929944971929600179284474879725960","2266122284263502589932052055405656012864134103553476395846255630250430949480"],["923043451335091799592651348695845858723401139747558306311452887177850314205","6821360843151436439172409350007269900566563572537368818610901403801224967365"],["19741911462063396960572227159411386272346101580133885200545841612916501229422","673720658874010326329005377120384065143364807783035171090130636295071552933"],["22054176884697694886946044474332933967391532476572108354136447001439641894491","7298248182232891703750373609618919241087085632425869292409023046794160067275"],["11892667717202953508532559747928935765810492325115476624005524112327374601076","3850291252653733781188596877103993727018847721866169650264273834716114741926"],["14714935942138573359446157809922694881469701646385249267048860174554674488777","2745631710854057251526619366916901155268993712287598892662687196861541990973"],["5116144438861491706773577117472142233429166651708306408934959679898813899906","18713756033491913757249985357910944784250996869333412505745138830799917974134"],["819817600375102690434976500722459555513007314014530967666009333469887500385","5306547876780225354541624986883207223724734781171843143643600507727738817208"],["14952229840886042842375831765951123177812614218938804649294681250975173080170","9189729891160152551377267770410253116481418893552986796192573411898071176288"],["16677240595906705083371157339646829162491033813390619817236859772194300983468","13910982113031414395696165491057728985467316730244212503440259797830959903417"],["14706907832392807082171890017078250198927573099452129802086704734307351038643","25759521329208025159879340765997167240942067390002336129700935668766497677518"],["10754247866640458729151357951657536894365457877783541515356994621980761550560","11657516486951279806344759471698760401421987606914438273212663258592405375179"],["2347322343909864743322787318883688970552990126925021553641925027825416125275","24228052369155991299787338454206467522907180983391225077774942561504328571751"],["16892205628581144208114228116458584473679808518816629702798631403182897438107","6832234105584031613182641338829037893734190967370754480558101361232113860894"],["17196638601060866433521152133167478668177022037954997063892724439743617439166","6755339735466944780777782083067842789750720708908827063715787604226699235433"],["5268678838211652783301397018337469402751572610924290814668381192367206903224","21998716397863893296955763732387092926977870303435425895039628689510152467778"],["23244110951047342223214518607064190241606804212188384753224222382256968557610","3692429473368935069014383353352428273307132814262356897745837624932998092949"],["15864663769483643956547308415472700234406049193712783030069756149086834792330","16031716825654992810249876395810165913344097466550516558447480935149472608610"],["10626596412442135183041257118657926340034672354503924149372361620237973647062","21129543751454556514185281625759184828334179977960480058357015014557326874088"],["15074311397474104518084307398306102294875336064855633686628333573811044242642","9224451862627990137317907984141720236066850954710053550593955331273985361855"],["22548488529384477889926471008722407117251621720757507769414453095949174573174","12897577149667828873088680937192346986005268518435951712539096714696059367912"],["16433676883461735575712450006949094862268079147243268165578669648718831674972","17090632931589766129225819713276082463244104427815596479137740478295953892650"],["25849093637361609837718085827394216366494593917897384357011202154438853019833","13261746390764933257264672438235264396654972972646765772816590548537091786154"],["18192884166338035324733917299290173723502528025330043821569945869131507886725","6117056323710149049584062529146186511670457011544134238582797330215656603334"],["5649842790565659302833824674575996090242615055950485595926857083474053767919","27707172115696805071421791428174664289732120787324703574831643987683185107757"],["4044388421035896156705885411402517419797829415210033376898417880226900416943","10193922941946589519190500182518234209341206156561266389756475320886036579173"],["11029636026084085995285210388427266802356612687127144454589649320169807351336","24230547610067015884723592018143262523016677308965983526443083011956208374611"],["5780456971129716222543748679082410239145585303645233383357732399354089088378","8935251922720874424912011190076415505210990480360248763505823100366868812732"],["14542869797208438177195185098666317764543374384643825015839492067779433843867","24266253182637662603654932044012631477612032686260275649531551863632876351078"],["18648461605483767518378066835202777791155649088567715779684460068560543779286","13398251597267443963081334747530439723363752009351855024573827882801478815509"],["21027245414778956334083601941322687037911327148547792257069642817527131362921","14415807208396584017296241467783742983268707233672229368736152358395147585854"],["26154769284977350931723538256543655055805894609086152092366438100766802550282","15093178469528847944212813779403935551286482900640414284744979201552927762137"],["11963360826966377355298099271315398850730328647348775670282497399819720146552","12512974888451986698167745282870292793974859737767389994280631135511197541404"],["13172772195903027605007659779853170758092948188307576090607006865905867685313","6993027361298766299638061852596755351280254652010077692774505228597296970335"],["18605700746282638225321570606084667540921306646403237617791384413794564690840","28118509695070270879865906907129294091144545631856996079762629397955377345615"],["23280576932783428465166339544817551797101343041141537207647852595551824881502","12867343781063420240286659741663754528166944392072267859798162785100996617382"],["4172284528577944003576060583354761082991392495890239070766744442172504803597","4628655261857488302646092787450777788859839939812472174986006240666330460764"],["4371264297056725480816923544926782515547313818825443758961860425434090362495","20190402610290649752130856695276874309409725817331278367376247285815890024302"],["16118994314959835288856126808732419939870992953328540276402211721685976004010","19965397894293618757716257289065199194775221028207603817724243597347163325665"],["22906440093534011211937747639530939162095876245623149820247043736578976094936","1110587942333719005338408381307832045349925058215734901096066166000470474514"],["16154646065249703037638088180128039287634954804742048433892379899621521165339","28634944278237618066280013666044126296619986752742753719982881830551821753656"],["4860171451897909143070395333318233563049825444994678787741739376553992003805","16794827003615046840934176338549203602870186763769914073718695739216224043773"],["24384666411107135715073549648846779961015791836520367234549956014556311077744","11025758076278023590365595920675850998166350150794861775703576589405376757123"],["10322714531038561273163399012184973867883623938637091787564387090414219210926","21789333728486270152264387173984285315295654085374142137752693696832420890543"],["15204734117698267304249566132543322316480501347824899925417296514233304936437","27232881984930758670305888001316092097171014697193667369554107515366616490303"],["423741723572165367863275502729519061477878114375572738748324972544993403116","10496201980710306462560934329968747062626610142262137056850823701008178473841"],["15699113487925185464196387217654030495564804952106933714597769076043448693015","9030559262109042637482057912040148413527665776846805825840261161006240611729"],["23445866057256537290592724551263563693524019385609619415438623913033526259812","12230582703535183047262126113201368004707795580334457295658101611601772496964"],["1608920328861312667108019180178536121081758975899237255740997732970433003458","6495613045338223160709982725621771766244617688377864147489868889376664040279"],["19897284536361022108356286208817853424489051025980397039972292564099266890748","11993023425732713472719843338935580856478941968192286050511222841405115966555"],["8617342750619063372022952059677973723636351172211606360972753529032514036241","22312086975252364136869020166764475310229848761731618008015550796507025713920"],["16029884196725671634967535832134184162901798674269534822134759366794495528928","20810649772902203050778502467453960716290968909981094992215516927304612149659"],["1206291471344858790039414157073096108960937310889083701768093150111925421321","23818285408558036842459125550777607060101944372987710001746896779766547326891"],["5183893431729004045118837932437284573525528875376692241136291829290536787459","7970034424354822927469650556172213488441597123259531425691084372623354492264"],["4165228564051310766320488125263142306215681776246909665426758230536413275892","24738539262482651070242351796550877105183786594941157291500236528408408588918"],["1566990880774551901809494339406656248463282956142670692794800623250444182903","12768308211043423333430760516524025795484650909413142210359112192377311779963"],["16784316824355083708586078389050180026975663164235274598860562083148370110580","27552886345412003804758230794726166666683268417994051401929895624027772915529"],["5226585597878832995013153408361590654503543264665391996619607395645975571699","8877549028627441500762053900573652192266889896391472611694341717972202665434"],["2563181305456042377683399054683559256707987723167676112770874203079832820987","26833941824717256101238847345224061965410724107202812178548559441728743788504"],["3949951719955345697921623053007464556505889043333545648753857352790030501028","24333348785466688216135896382557109259818576164512701315442133522796384060319"],["2143536893120902689786550999793724586731285425799505249137551589648294685308","27486023355715159522273370070574382711437151486242882405190834758659082914724"],["18746123027607337287994664127764367406171783537074763274645430749587646648659","28181417644719437536239008904524489989507571027364673974639799218338652318210"],["12402656102722995680417894421665666677555421172210207542239752100162656412019","16974624258558247992563831138141446231700318254789460812343924079766201998464"],["20009058904920756678882937642784558580035260307607657397526837196612123107157","25811291525745209381355053429402253410818325219034493322027948955873330115813"],["9696728350126328066510586940807406059786535973961992072556415478677392128336","22400678181523637183527595707871288561701621016545175314420503532301773023941"],["8145392982574455108176125640222277692338002369491738447478807217197061901062","14680939048205408421656644382960937415030484039150800854588557675512276754397"],["26090880850844517400859016456001596009513177809839455039599400798373392419134","27394509772076048234292430695404753434232625893403627555432056666755282845041"],["5861754010806493479197959821246179380999047700153845726500842542614649658525","4801478868146340229632795011265987420521279509942213721533849277368650206996"],["8426042950903221519438663067181505152526798949117377910181205476752470760292","9767124324057825664523057734229052526117081375244543825617418884221588905608"],["8743127980598287432442412348122371101579061568892744269407172483127667315514","26972980851008124601511314659810796335759632484835308783736462154015992510304"],["24795368041565629915527271018752624828607558174396651916434264665661291623166","24053010487214092129618470763755488233482370665840899871048141851178273953956"],["11234964493528130485553721428503784388535307465071513466549729284383392539411","14287268318868347264203895723773873551864677121073938657152467241372621203765"],["26331690413866555609401432145206153447930263683293200342581183334655303075501","20545471187462788723588562520003173201308766910639014523624647909136406125514"],["21627132005077585417462707373270479297397293534261855735179613766368979030991","3855185463852734844072406391410176823576117461974595363820508611555163111329"],["9962222087120427034302822222476154106019934999653080067904441921536462781282","28646243313205900090462200618794281359329032164962047361166531070996523334391"],["28149588693081699575873525464522644857335779314429393414626418193626249305460","8048010078318060705396940761317143422921985142593746107636279702573703485896"],["18088780800446420343939880480549605552945771330344572359360888428461031350045","11773958439824535518258698851384481892424044415320813803977316650528471020833"],["9512640987585211005707737635524684668381932932206347414578253013524837669556","8274350670846036018383567230192374111956338176430834749523704121528038085602"],["27692332323258935011678342904680994652708676736478570096277443858261455399504","18019054188557216187487681354708659319503931638416968534260380640069996446513"],["23780201639717700585554860801911749013525228208531855487514892009401810767868","2447816739395995639919268108604901365087966955433611620823477999127482840533"],["27665968649171530747984292469154764557937700492904458692627828855396495431801","5439310694435939862750984474040292265861373363089826758625650917546067289909"],["18058913104789366641657205735848207434316522926128203636155590036360426999190","19661316335665115051534216875285089182843291167940825622626187709948504124041"],["27920065942520496377464482902422641656072565584359512730601348946027741940269","28540879799019042184617732018188910916741541103261930136907800129146207938334"],["19405069273535727616702762790195210636379132288732894161448547020177827008603","10432402887664742349953109883877869621207399282753501336295846535031344528189"],["8813551166306775893957678416828193096281860592300291425373411073306067332885","1448584789684944645023971938328735406834033889740629859238418374559013672649"],["23749606634518525851047693241877393291445203901629052436893964000725365370953","8202932307891745069405906492861164219631925811793334894229219220882995490393"],["26764088924067788164670911053840369348516265766542828822879970895544096487504","26943114646529980740788781326242298202352618398502249285161211922551897202713"],["27866324353235778768842200976307828670384637110710491479821044091591654097757","10050336896890265163522789983231063711731927343891880660178749733021327360489"],["26542925469570597502892286357730308860653803777556677169696998320020525143624","7649784135963175841324523838738077382514435536964803139284616327517451804992"],["22496357452692272789737492387711206853279058514744453144004830956323707304752","1211888104142457775809792273210619931841063179281787239318561621696531515014"],["25488086647857114915239601195445573796378885835129728437579567098577169740080","16406621220000627070361200745850865732103712316111376124142737503608388058502"],["8978220135501515317740003777179229746916632666335201354144229752718482353314","12852464878497051498773764863395325303208068730926587101520904464203910448621"],["6198163660980221319648819392587995672780624601388325468881969288595322982469","24972606312704507956572951411343594761582005495869517228913346601041494279931"],["19480797910284284796830954120378856789591178215511932121612756581905624430259","25301031550817229020852513432299790538306728436753506853039644951485631979078"],["25260565792355913297349868243894626960297340268525519806778958336250526802355","27449926336536124032660478210991132038686115675353507161931622123773696413014"],["19841409076176063595101915467985271679466393250026030900807884366982211047979","26514396549873812475175586398484433179668354662594168041400038547142589720385"],["21546131075770641576191951082978411348389102010312211107718806052664689777796","14479933260140773148993551057316369766318154131182652428327519783137158175131"],["7424958321976267612754718467064911031361748046826172062082214654386028757562","25663523937779982651925560240384223828815179151191495913800667068913005652912"],["16344780084769903781834742517678961109738781884566698973959974085366276145680","6990618343915646414956853410364326544198741922313164955698308736980565377422"],["10346365855180556961013516139474079435559117126706236041686752535338392100149","19607439319106310379468970472917282358969785948502236014045987473172166153766"],["23435804437251035637429602446434784230485137381861770212546014671087159376022","4030158207516765421220248992860698622659615376701711914196640529738569950632"],["1735560412998052943298822806552499533190103610485376050994599436804134209560","26107255412279135729638536824260130310204487824882066935423776296527419898489"],["3233774221924968824221437804350295915746187349342817382933441640399840998317","696236011371870260354655497370807791571064123506090637953633297705939227375"],["16778983534995594168522671554015653039589080818464472278606810348938197093368","24892937110159659791033047649036227335199061549739988469440920212229319485361"],["23415444731999422458337523138719285765194033689295784087794579649224993252961","7574939631275444537384388994018609589571807701447144385084678097083733309352"],["7148656758642522885803522747580711109406976164689273606995012736043801148172","12692330947453624856207576012252473460598451030477669456831787817320004844681"],["12070971751028753702707815964501260377869433826736565814830728110826701225784","15092468164928331424266299838804873107105228760027744046846358037013486762237"],["1736599696205052349070699349112020701238733842936619174317619031268415613413","11628558332091713556088251362046732091392088284181184930282825233260485325716"],["10099718540842243142894871229689594491470686545165392530710455908683837235833","2434039908270491540430215763772752776595303738322677947957202946815083623146"],["12765035740306588465149623688910520095915614437563979751212056084855179263386","18173646212996865639401457486873978048791073950348204992250969227477904097916"],["17648907005960800192206299760096338774263555115476342884208640951400508485535","8421277321634006011047935203095614856606623218219195815277613477116801198343"],["13868269451400272897681703152966213609238327088347953193286190327139936813320","6241013406043452538963614891960011229045896017029259961674177789076127080899"],["19017797801011308026805325560077144500048680853683091248936769929849847255605","21847699919741919517652648089679522142073284934373055845581460284995669581645"],["6534123546133895564187839068767330273864348687757403767300345142437764943457","20860124230308658776109687242928285162662469064488786941386008493970612532026"],["12266033527313214261935026329590450034557613724094235638113131974844164636745","8286001732372455305675377693221991282000578943496693520020304703039165917348"],["7764404444852551709528855719706512267832750987857844192569510722686536040579","25548072764074324697874875854607702290612272372043834657979258158211996247809"],["8894289960122616019258933270265700147693289217368418619401183033714256256794","17582454177648295045583003717413530946234327861458215654290620797381262769814"],["16012713215443615807530862045788536231750130812407375774754861521596346344164","3539955007763653051914349297215334712264738301135202631915104263599502793107"],["8044794363763751126542795284150485726939527478435965268802157642549368840679","1268757061188927946765420190700496737471739888600688798417847439490951507751"],["25507445982624927892507494663861940087917331991239405761770292590697668307410","11788671272614962425613675295624597638409264435473617797398055975612981237343"],["2642200965929393833685185637562486608492283981980368874251460179912148790243","16975925888320998781042928296440443121177836829040770363888423629596767237568"],["3159754825803443396791047967329051656891093211601084085206083847851946613597","18394505115371295407563222771102241340432114420777173846541584601564187435716"],["16894531000670392568643914013161248681499714681125656172255960371491140471962","9970990145272518280828403625302423806298531789632230050451058861687038687475"],["2501548627367854042478314867169351005180495637389759042710342569533501120731","17675430762293032083877358992213397284509883731164640697449326774235452866647"],["23649698307953087754536641750006981685091025170855900259951431519468555360195","4035573861838794466244992293242814366857266061303873547436029384004905227352"],["28728535046853363861168851126618291096155201417312582576408831432317564966395","10341188794538901654817059458163255293199512900739951356929035216346239015218"],["21390155527313413946219670961865564006472503797098344228423812964498974440721","14975139379270488485883764246019570001847349813341038166468872541336533411957"],["18665846988727615310364408121400485008357998061190594110794968238034143368895","23511750677694398498912159276008496972820456364090326133314278746483412559960"],["18861947435402227009454341752289154504668297606431209839893481365511472619609","5812229451496243566146109687221437326236055357620904924287992316249674320308"],["24676919105035428741812837746635185041952605104376493117625944244177646624679","5556925219691417765301736118216008121334802025043855901341111412500850009747"],["10096078959887754222167880098195926262312600606943568497984192941682510686187","12558218821367786456753264897242474799651750217184865340387404361174882381404"],["6932502525945178661103358894356310116218888210656879822756568402753183757863","21594214295444741900439921933287603852711629357327395377115329903988795736979"],["10571541845106011434309317992558640095672766752653191251293180376215284864100","21563334543733239060528690789947429584913810035879968011006566659080411020110"],["17045093555746637882731266473915435758678149807060379204881197213645324926411","7018906417657976398120687774054742732092721604129820136489850805951460582721"],["20177909361921102718069529625368548623429340473545735370043729674497105842869","9591014434727937474551532341796406494648757053565295716986772994732059170115"],["21893903178624269667522793072984769966685732203118485575307062165655866461360","22195282366779445688416616457141977231738372316556676017704505903356567950556"],["23090907173396612834813104300429641640096771426251911794893584240348923538794","708982911950135385567690974296501533789242564757503046466531880802854991865"],["27883362778555193142973055867507152814458857730385175771038688902588196195226","8303567792968825915653467759469889952497006043301822355794698250659670274535"],["24738393392936792217800331996130214488825615940908126297169300702121191861676","25799848150538604249602601430899858353241595739753763899876051629951229047298"],["24485024970954260062305842826046141947921833969998371074731260506286013982931","12047381562203309320252196455152400022878923461122920887172668541445608669098"],["15598194422655973805790417074289093551040448722139681351028673861664197213351","22198977282874488421122145450039243893908461085895291082216835387265048793650"],["20021547237980041741067080078162002846970576834416605255524826133028177370192","6037276945391421507642354881058063562383379525991316600113689535040011761087"],["23800300320745923690858141831821890014092472481171493648957152308857673088104","5601485873621409236778912025314788946371854901363178606847744750206826972306"],["9097939439339216024055387691353840005829420766352418877827348311642697079031","6219504301932253209184410019106897967333504635742015799130048705173507011185"],["24056687939658256055241058735139816830692093696426296404298270074865800994964","11652966689027799354653597221466747303289198353204091434114635518987291232787"],["21636240978500228899807301743802710193655800176171560862931024690830776357058","24782225855999047644896395786070072289620108169514073185330331662078965430244"],["28185802389861805878734828381191990215029666806126628461928990992292011978482","16266218642132660473044847074653170321012803473702140577701662853408195814994"],["5323616722325613150740504478868896714444869723522068057589620711053356744791","28407862903875825063912893273617943722106390225836092063873606957007042895780"],["25121715669298949476582170897175009814683292728185411942296930352409960727981","12851966726904277216143423623536428648271042214031108958723997417141882873626"],["8830478628153554921461809593156214775547463904552233607473763745459613359567","27253244270918462690406746406019350586764685680629114098919731878906923577762"],["19089699356806259803883380119914926461707186688977482179379340367943853332766","9050207490022180823634692409756679414496555743256775093016310516298510464362"],["9322156541028945812763702026118468323168012986263982641551842662140687447875","4582539514217525844171547962447811200406524717302241729490098311785224610151"],["14641737393368779810016142216271991750412258816228551703890825905117950722082","5722075143456345051207065545922989158383405122817778812358517171884282919469"],["20949244268536631688805580374235656562762707478958211203731789406028615544326","27823235988775186563471501683840996306468448594673359945656429838954696894469"],["12746984844766372792541495717968425481051362151365290339229902340570427222803","15666155021826083964588835556527859973059905266161897132676170702346686980224"],["13533392233297156482339168520592767712290702455620630462403509657198353991801","2450090086731660565279500314128089034678574712208822040968805588867205582439"],["10791930600393641264794982586093059118997635825717774239997169950040110641785","10446695856427129443154922397164947076424666646416487990700280896525351328882"],["19114131732230027899078623891243416212530672714997240304215808398200390516552","13499741269755398332861600126608432913381233378311269472867710554672151300302"],["23161021966557426036662571451101574587757868901471205649555842119786122297410","3414071498519639360027349674169566418009714547279596312308058263125432371455"],["18514355104171982540609309587544833165845048431400899417941429076359381824679","10386628966514575328019277048807659580469335379525956589625543323337214703657"],["27505757558660994425189088677716876280068897853752441975845865506676785870169","14347724013763205488325956741272189840931757893320289589049178509670913383474"],["890592494614051320459892262105821407196559123492062463932437120513625554660","23010863658838910941880255131590670971868950314459868610858984131783811110471"],["24566663608661309179203807640390925783235694678671103124043747834552895673355","4700672119762227740908116579233501295656235943297072960673267674237794824233"],["9489305101578407588924276870010089560083985709202217307492471981695877777012","21869911929564047218160581020778988043544599254662935667921777123250163481412"],["4624018875224009960583906392661926504959637034169729699466537655983100658581","17344925643379922635727067612273559095112888375167295595428985251864956152122"],["18324984910590936998716656242049988239465914480001817558767684300306527482653","4663092371021575237161689684822947402321236645372702968442062602381443212615"],["12570307717521022592179984352379173082661550010096872763578182163431758871465","18683457821745383585862386870836737357472605003335842910426594762201080181272"],["4347124402573083875605571875254424603128743771350449999930164748198475761531","4741980847562103321546200258567809627136838324217666949778954229153962979167"],["19227833612278567788971596496656980770781260212264388443710635345782491812016","5924757088249549439921832514018094132095402555675520699773090914955372035557"],["12055478988982191166632801443454879886802254318911986986000536717392612653598","1125527487243672529433256608741107379316376638601888944971661160906981024068"],["20150879145561626777134251507216992353453167759456817668846723461226199698618","1622474990383908581531632057301082188328504359155531784016926707363650864920"],["12996424599099768904724023892634821691964401971137433084165654099131523950291","5202521600063423429037886094498731869884668479083249265866847100800032707438"],["27240907112389733644032571658594747128452997842556106908710269180812106683188","25790786999973205944251285899804186406850604304151588091990361592266881838920"],["1480404890773279940263006855852393275946022893513222289959468828663910926577","18731442520869503915609956965578476884463029013362420736169226190365205092251"],["784763093140022519212677413075218570821579050840624511031528146979348864717","23782924047704167219744267803441680181017330298918617217274868562819283286712"],["13715419468318849032099219915035867746854751582160729895688853180337225592993","8337318527326604872364925217679355137536964997941179623716515789318634090699"],["11105446531634139133377612744981066414700958851617003873735592322491464824528","1036371119303286164068149114177112248213817040483671790958557337260796094093"],["26814788972494673499889619476268074698898066683963939341153808651209433857432","28670726101522881812638075938938385860851325358675845102992602493271504435638"],["28343312085581080344859280352848862986434328325046920723081823254179755213528","20848531540390024987147536291444767432439663363863902544744234088193102859726"],["1751420513241988098446392881376579656177532415866293236858664011197535601323","25142101254081140945996391306379181553968160623389851926047979245706827203741"],["17246523348125853832693292481035931435338122263285814877770688457922600848057","15128413582021229846304821771687835938261981509786573434608451482313918445230"],["22722660036128916227066135979971581748397930852816739584517107587634845688113","24329627874546932205759550494723810725410573660081483636685288466542814334564"],["18607059001106282567844271628415034664513466280933483086163692529797205729140","25822409400795892708939393717031993847986615546305070520666202371284901025071"],["27930429757809443000987873229805042528882152072021226693195146270871074174499","873354712993555357024268253681616812610547230496290957936386419277206834851"],["1507412022770593378731695919600872434291428174093287099201118820114068762259","15859386065218587583486027131871265319024672928232821514991570890672200535287"],["13843718518327712682649656404809468380525685184662316923319479573658285648930","1598007724524433180081311400508857158619425559500408396227011662849390906276"],["22493023774673680367408483642705884555562725417464828439475799189432525869810","6017913018944671818811113688666671912233043181861918750331665352833816182455"],["23368915424676940812319589560451444841724913668864266778408126483207044056408","13074493918312662889931060058846470034493308390899817372654103046331839821857"],["695794619429422607712821285015382161780098330411454086398874436129488968947","14584900318993903893855299861569482342080999647987372587421721878278522818289"],["21507860572807932863236525918775533424507252830916828002760347027452689598264","14476578431656184077000776565194512507655794034154104823174654054453035304218"],["23153578277211317656387772504492662306693915660311380023581860590737936903811","3936268690685098468598836137376533464116507138366174232593797480675162345507"],["20826636834477200662352353445624335788106933109468766824001117082540976319931","15355837544566167715125526316501960432933862127519451576049924958635993124369"],["6850124732968021830260558644735201719561062660204759547281985075246822384973","1738691552641352560521333093279257320919882077016943412101109160898992634750"],["15385568485638110913579585510197845951217053356386871744436117216753381493157","19489426188850381627899618140974944445858264886501199409091893253275079772933"],["12037930064897262369901157629044555786212598566071192536592441998166769776302","6378865581690119331393592518406311578962522070235193732009056281780947590351"],["18295256906265518670089633255747760021353307874047298456188475166701053272538","6381831214034410845453002667726741796631719040079299577170316324740607148516"],["23915589560983345163237748404571143678742738676301903618340942725822425542963","14211004429769847261158817010257025876316816106638764422485816862348443014990"],["4813606294097989437163416863874354208010926015873866682953284146813329713157","7413711629615903624896633508255031282070239739933040470399685131949256454790"],["20323500633229417849368653490899172173581705132474073513168446204533342878669","5969190865921494670888768299636149347364548246643022485261206796625842438116"],["11017267981915864446461267362741692292491447769334097951056896866884711373431","6509636049671296482649991252249862860283421718981307459174780497330945640381"],["8789937290799575256738120524003723828973140626192917286167893762636346592001","11480446202996617194382925173111721013039491698820995058567525285962962550241"],["23519185601922215672770306113744980002984017401393632321017930599049067188854","6886996520711840814604405724035210564648123396329605207881392054101722273337"],["8854479198828310774955216666604897921127375410949049558111367489272270075079","7900391702629161557930335965060442180031157858583261863166315165862265404812"],["22993016860347212254242576636000162899974158982209997654845498435213421251042","6677459508895404917990264412099870054558339980930971555477532613947757962719"],["20513833574962002673549260486552954645042826144981999964574694666582660546405","27337944785331071869789188940966641742415894866753183585647821127280221553911"],["6908552584559339757908212608410463424053388267140254350690512584531994616311","1807234504804546401675338643880078199882127754969420761618856436697880633092"],["2524371480781099511955504972237693338278157910133240994365690024777142074763","13847771486515944680091816411942068800139034039231901562056506693737681576430"],["11390191127699483326213857396502640201617485439394566197845654864193355750374","18699014482708231470572510354554137196812895356098105863955833422435751327092"],["12220357655589191516673902749342918932648672294354034319603992246422246308454","25938877237224338054989195834391342564877456722183685725980694726614967320522"],["10717582182979648510877246553228613228373965891511642162465612345258284969477","7364991564278421684381788167724156500771545660618434489978610191825347723988"],["3502891575396965176693221979234200691963942377956582777727008246956586337438","27182675403171983801245061005413694910738043605361186724782173100571402889873"],["4392353094188889594745892731475050789783020630131046094505082738201441339510","13982105253614209954831123736644147177078332943810207233763114031367149989315"],["9087773771024931224677735611841416292988385526252593736179355116928380058450","28001955376132660233853246422939398481289904951947758958801787055159847169259"],["19079455711374194815639439226166350948419574656928888395939194876164182949624","21638525312711677772081357405628002002801220758089345500978015042579671422061"],["12168743187324294031319357584926797884290023757329993501717767973013839857914","19981000058437186242049909767649395328039694485797565934953775420123737417082"],["16242317817049551871415690505486128675433957397037153643421326351572352015793","15611525730256526280920603084972506522368272275548288149212679931114014326330"],["25792704669724453392084861288493762895461687178926562867443337860526085426960","14363345741678459823214722939163367271410554561764181361629436162018019040399"],["26720281792821629647196098778796623536355871685586103078812650517057337646479","8710209698228566484677438553723363036827411982000817051149540076522484576833"],["21223139535131162020054195815268342911113394618789997192760389424556314125736","8791647808737102511977680957487081660413432798613191032559742627373921491579"],["17485585388783730664508887364484769232063163889852288041015452939085797771292","4393031628651345656896303635605541804638867206957382467942616906512626775142"],["1940893524237140367798122098178328866844793293898999898787777156809203859795","6721707737597926441041696662721719332337770223651674248193174857769341226984"],["1881746507138315597791652855703106207798494629408901453705058319517647645335","19797378073458893982027131141758379112628646988895191538733258644667005528142"],["21909004123001566479598903338831546953996366297505867646634510465488148914421","1460415092898906169218613919510606413759240825509349330477828168206722582658"],["8387940528290458728815571264915344698670496233895825831100231107166131524007","666343966789798966471261373875656481542249311993848287751861259276256956704"],["11100619192262111838813540304104794990617013706515444567173243155499639549089","2369398212415049124374472319874951148891111760913728740695099520152708187983"],["12230817769677858532348521633711203965576144353168771213071729538201500975481","11870030484398933717738193728794988455335488344383012410674420333843323992075"],["11857869564628907796087206755726979921912716485394777415934730012182780062971","3385431848340529048967550259394648796399483043781619911291299503958172351337"],["10863625074922215072169425096412873615869258053505540297789413619449217188924","6108529244011369075063211093513996511635270306037482464697755560717574511214"],["6217884216672034112427555102893922202074771259388548720214420480405237236659","19507613290195294063132360823739277603720119177218080957314273688241854631940"],["2498383540946337959081469150250604089246898393395316559998217306239584757844","13672067352253869884088769617550083305948781522507894231895829685123572215102"],["23634296223226943634367010250797132666274053632484016500673680794003421742473","5879162509650812184349078981069314052085971859702042155430820183526993976137"],["15886071024891150787631023981660396825779772361393781298344173901020388819409","496341506266435562945364726530568916856635610030367954777538949467554433973"],["1913006964542243164360316160765799042094667370271316609297603008884888955985","12646192074108038310837335034316023015967824682037061192021639010658552294977"],["15317178824012499556781101527074784312637410883278408930989929058703624779772","23600005636679260513664056834550749276821752211199798815710900670052915082056"],["19773118618017742176023361910849916888623876381754163042462090000276858064003","4704205482954737664031102150077225575843480597484177229674859131262259424712"],["5931372010102982964306671597382923725373722937265577448909433347215750832296","4508836336552507607309287290558611586750930628519313683122929825362011407821"],["6137135230835771549592207520741112898199165848701933355525633465091243141305","28169755533188665293321382895877661921983499070834106832194502389969138234046"],["1683317254913299208187497604365218293064646933751976843458997819655184461560","6533817712912301408535938821299719402948941546717265590963788263364012934185"],["15722434130578079456928692690305087314790040792459721379233570118498806955178","26278232338471697233974814878529638308011204067968040996330130983913958865722"],["1734637818642994227185900097792315274075818582886341462776222911628458589901","6257736914051968761519289501126374427989145317707616350229441285392827813063"],["28558362937248723253747500888791578166299207365791860996395628270702467705394","6809067440424795754433172470391652961164164697852650879663888798141667787637"],["17722769024432570799518917802629188433345517462934455476127341940535209889482","28257922967686731127477390674322024873722728229941557950788494090652010157750"],["15939917456681769991523327022782566832760658107124262329167415017879598683924","10199548170325964044763202719168268081790621006742806048990375288141416584223"],["12586832928790847246715848541353730450134584013053312084915638751545207017914","15007408411721492074990580804099693757250196715859888787299769929094763874347"],["11107710095246969603966680235531620739706982853668928810225445687798503512400","17777948560637382296429049994001571294990901380195912996892566112498141600166"],["4805420105189551298797024884118586531342184688714618933639990761042573436574","10822012197592338695143550465335203247005686830446989611743324334920487005811"],["12367068810994878148469359872961734831901845621699672989044577112101614370928","21467471667665523680791730790059024026167935756336614431490057665552178774548"],["19310937042087992087770276584118324769677815470997973946134224124011348686795","15911553982136849300419704987193177024476775250040753410396723251534435543138"],["18922654052816581890189169767583039120462503593055098051109329993273046513568","11356965094187714763814008044404130314284327347487818310296363184810573093569"],["3509182601401312476135534377165321598925529804970883902698896122783269561625","22195111740257091494036297030399130697781319018200733919882135227992338967907"],["4370138331609995421156975717404441495103618698136573701946050292003583225224","8508765089437522841189749789205859255146023126737078452129419712554793133499"],["12713439193818946701242845672995357130092697822816377484401326114252038002220","26931332049539355130287270443904378216059077868024931086368793935518653671043"],["15053481671097959992781468883604909130025253851494480812212295117311296220310","28907599490902449870911474532018635860081701942447011903596200760122193087908"],["16133821950782220790579995509915317511717593043519932962876806452201672777064","6146773696374784990413872700073637377461585495633208056759820971088012620595"],["1647502895211520122264605366813784397843897397446665022732889070211272796336","11169665415960861566692445897744568880953846517179573575615113978080367105357"],["6896608620539652091610088065058397119992847595120041417998487126252523584164","7793588457642301967174857430197992536848057974544520508995305278997720149665"],["7483086077617187757474225944212107786409041931826195775364345302798510001111","8672384176759295119292147296938372986615027237973870813434953895769137704024"],["26614972364117398089491577904853187040874465874164902408392377795477991372565","24733553147049937377958895399601594244663630419867673832870834702596392390298"],["16354448976194308791879845079746174485293614151303984836637932407130716203119","14701316023972714955476511320563422180761899889953538539084387626811503847209"],["10959489545725624487480027378234751653487086807353104714880400517080351387873","1476701929005955275006381063824224930165310501143026779760686222658452816428"],["11979543749022967223924389720809693890017201259807592541601919757549307704110","8628186249668772093637544244514041446103795056619447522604201084255344088894"],["14492612796310686423523532100484367243003089106336230707051770654212968330932","21076792899479408057743439079028679101569097765079707196616886547500374664491"],["13857429055860007150992140757914351073238996665146838001685093828012411278889","27999189956309722662455834958018890182042537310826868714699906604051697940127"],["23137668764139265608900860957926098656665138364316101627802884430990222451236","6361200919446486387771540450960048011060414863604793189120175235961527090607"],["6538654600868684880990045088310100376064858878505606923622466760758227905951","11923751115394277149078443837106332970010775640570603533686768457465280711724"],["14418565938263717064161843500548784808461509909491632940593548407451397084516","26119623299204666165455166898068021172157153677247739598921248809731588027741"],["15778245598440780188553229773228820359526075504493973423703026065846802588000","8763159610706231598238254594960935643336764874225090605364099517826149922814"],["14853772752472622499484296685109265471828426781915046739118821825656032310737","25963991025746307663304288075739825529188660409932906882622520538671055165587"],["9260873876685962385506136390126454792940173035075359049428145663479870381948","314687826613554451641134902930431172396525207581984074050610379202583142475"],["16989216308199800318222438255329086438969365535275027394926167181525063557687","4807613038916774990136808065469810931254741787916476243477267950786156657133"],["22708676963569807150473075507021163381958682989956347522923212187234117180407","14120687149087491870783267867961141303664852060913316816241267630836509053468"],["24947296507574863788655055572324410037272394296571949687345279092430246792099","4108850719029169495936889160890634879604036204927501162691146544637394411668"],["28894764427584581567413093417681482468874124483527868296501769197550042108704","8208136846002874255814504534072014193605820907925438844403324361203081436213"],["19296951019414300488831297761147864308857624462492723915888246041343653437654","6886001682819863055499644663828633050889571941885187443630805356790097240012"],["2771583755451724958998507736436474816519438067491052573243122090738126064922","22291791001725950558207756438894288203646147284234531854846577359912788647019"],["22880688343576614081280790212832483577604423279943789353384607097407280996963","9148311032673512726618561260949791892065964802038851438147606933407312755308"],["18502973581093522420199846744551612334177100191627323545473796471512000072016","20934477571444657368185283330218863473699423157778022722930809904945270995357"],["18277571882472514082960154735282631914800318948498139846923467308413897417461","10791789451143281600823295124610206013036357673497550217109381411598769223621"],["25632162415605800072273107004828387611375729100453619295531574381786024759288","10325384236450099052043463798215716159131977866158216478022029160423747978209"],["14732947491605495908678816444462749633980745650259020393859705240465682343536","5496180570172322530396916615249682208471174880330544161401800207515139510737"],["9559920080290824210139294262460046880678639242747147622914308271715779650230","6896189409363166174302879142156611808889618299238050539198786525397721783556"],["13317277859838104357500707233765185382652901264282511923980059326879167066421","27111072905688499026246515608523817864259869884621286208069629056062668923674"],["21906325490546716792031076292759975573022100912984451092369565711005726190993","17294525190227440415914460234747938163575856314511211235293324383645771259785"],["7349074076299236473321790450342721125655815360279308166412461969871367194989","11689727909690831695149512357822366107776866005493349484876160114343754115883"],["16239615401097474773813675208179740464160228176709221551316676756984545710431","21882197419003624916998613318611523231761600659604393731496916832165742684599"],["1517031946145637813526005672438000171412283431120981409648397873894607899984","24483090086198336105103376806191943847203706128180980099241650216029236494876"],["9336149327381137145241465062297282449917438158465052952714995995916133559204","5952121904997456676589134718080817987861154862049096593038354907665580432544"],["26020135433146872289559317578622910806176364621253824964868755356216123560967","11088496752125939238558804791461326506480166118726066509117252909052804138026"],["14724057391780216421065361570863049051084278659506391699903027654838574100878","24816489170974926996009046029563909807814507760188940002025108583007405080525"],["15379089108245887555834869571530021370179790721139550201867635831325532958690","28895176762460561504539943390531100717361128438539300054758464307558510896529"],["3179442388420982056671672934418945071429511620198783533652679368337618624723","20595476956948475101123688807766538843187762355879831598729544476605443800391"],["11753676874891599984901078624169334189854798570243246481483704116373149644958","15855445167121064651197954560677679874276351261835512796785218376255542326147"],["9701147874467238208019517838253732463762254443619300603648312843517594371191","24099571247565982337476560431369969021136174784936483578708553144009565220278"],["15685988913947092829061779995559402349090029051114114439103454822224733637104","17439469965399692389093627668231823990225102299720664178171682762068143032207"],["25803816022355658561637565424680089753575388552312921747886932690895428451786","15249493475284830880974061733593514333973015125596067001086436144038539341563"],["11036429005442553387330569401184187639271856256076846924871232441806110934784","16993356774239384519704001816251587233914844585147413133641267084588757261132"],["9103330514389234718109236922790955569346890134508794021401240940088773062930","5609721908073715520813018988177982679586384201733403008695631441493281376507"],["27077424536354897096962498457231092799007816293367270346747381841904485764082","15552451473431527091010337728559410260210941642951873545890264392356569198437"],["6381472118518132428274956913992802649496303501244625785271286025096561509170","364396124721770024761730299142599461834026067029190180498346310913850178805"],["8722757737599071422820406621086897446866605474139653264129370646056281835073","6414997402520590419862931483620408403633383027597143626080377331434159288043"],["137657784257442101730137903400428783693149928639191361677689135099217028217","23707107886583893553763719817553772408689979684841532695339855855479435548066"],["22330847186250307458302889969613760488323917387364309815422629754967029947004","13956064398733038952512247868280908653677477984348454622853311970949150227731"],["11595608454879508648413373223101864943777063056378337780504728162817997129667","25703766132132539486013844062015521594835007986478585153800731165879988642922"],["17629401622810131982743971377693317641455591437108889522431887871660889989289","21693214728119741340588357285200389609649022026142612734296629559507037287823"],["22950788559203542336503473037229174606796796770611273179903372456578596526200","3511980810953662801223416633621757372984078704919267992326777469896490841821"],["9336403001268113068670942958702370832201912455695651781228925251222941638599","8279890978256202625940696813028393456107013889868249842834723445855208085981"],["16899046445128426130505239737784813089991228320088723775200926639280489255285","9542257072063506708847854095761121042917100891337199159401706192166415815340"],["4993773094550312582623131987709918473197594136101371867640837556323914795896","7598101965289864544973371043666807283331481066889058103385802391152355697324"],["26803838467427445480329714920695904995832943878933921966195095268201265087473","9643353557007036571763878217497230192019188895759698682964872907984536648349"],["14176738994048369232112807994779714750377506688421216515231225347492290929667","22593974263443436630609233659874642974801946615980299673994097991359996255942"],["23307709995543603723672896133829255961667445296703935446757222207931779236758","8411694763433628274500825399284500206290806665961626658350722529611255376697"],["26068542299751041621459460889942208755802291581655878723585914174339129547986","4150054675098357554905476597471204764160847918364769286267128919064530611854"],["12337430294546815885149387599107351021920953540620731040383286378809729600429","12980059620498986330571749183049161447149318385773926405062207157532371490049"],["1837333139263429406523396563884167452457934922277467068850556080685002035436","27274731481640942188814912766348196337226107244607979327308774753215972980919"],["4762164273873917662848968332135316920077579228776286002812870380508099691058","10952988658033823951144870476432616879587405582047599168252478735755607457083"],["3749352055905036336496736324111830296857171264193608784261318170554589555282","9046660025639804256034976848208563536053560745576545348837553814897600931188"],["21986978873967361373635458510595615116421467228354303390826100983859284992714","339372064163830615520008220573140584233362874857163151738961708420018598728"],["19844588732279498738423757164861071044938509433423083558241464908896674532198","14985487036999584247611586203101357931235013703463402220248324565993886539127"],["9836089930763236655003165366446669097469196246654248199301923064574205965619","8183521851306848953601320831304233577004268823368074535408359339837195222368"],["28424257866846939787246957620185244579876253841191602251917547648148975389934","23107026226350445671184863942173807916842228955208350768438621412816987274595"],["3565567278530174601951794038189293058081745883097651789880316802058275466153","11057283348317204503273730223125500927914624286739079763091627843316279707934"],["16703400865034612329357334999639220522409030054043961334627249480098850417716","23794223260394345430554884301890609605721101271198154014778810187341053173421"],["17306722212700286339579646825370050201076022739744321938820609560407653715087","20541373211566591894359669489494141800607113923007671342859698566638037084866"],["10517805727461893611963956754792204541025394737986010658307654751248770623851","25130744385837393777851598747488869107052004997949710712452716732368232355781"],["18680988018241988862819298923505544730978537359683567910338410159449333405804","2442619583157635032450693769694730388405141768778776172414496181633240394979"],["17736719046016876131473629752770161940793020293778079397629732301988161754141","23398093401716234365581804609341166531174763753064376817525877060645874649419"],["4674065161695957784076847455330566585025157188699474582153889417797899154435","4124857001573015841927991948810182208611150948217710813219227793317130076072"],["13896166633283976178231440841669254486635624514337091603085139975137432348103","4685434921132576971266576371739445084889125147064536333912507340352166872298"],["15043250063798431279165599253730949542807991640564695133820587281329741933702","1449543930703812841305110344120324970519662785300180783792436242155045140185"],["26980611319078489904611753650003066821715948494244269343426858010974000944476","7335082791217697975742356175547141122474488331622280965341213980642941994065"],["14918395340869640106918925886632175433649362774069863683881809585919688736593","10170623023293734184948766037231372903073138776707432313645670564036381964735"],["14000855665556172565911462423558046165602447099519575535172559530331246833492","1512698321900381521382491985515070994560011394736837477740929950791742027769"],["23765003251459584214172668784857851143003904799664197381152896675650130379449","10054288701422727476150276167897482250512302721020930002018737629469678085798"],["15936842772519817256236828054165533573240684472392521148567555766934427735113","7231712620019454560429997584850311043124235460436741770815728783647322866926"],["2330065108614865758660180190373348473133625591328818156654062940827939146168","13596795033561077821528465538561617854445983912079462183502803828197583354808"],["24367763131411948022717203944336975088786128259982533285359844487202921061929","12655824537742205118092177072905467569834468048039646233993704465530771748904"],["23441853990977411706310081730941537469942485482132517795624948444330939600384","15471057863905541273868047331319974467617507106593196258642238816384023600144"],["17692480810191228376856148060216633491223236676748584343170063873671497412520","2205330011516260020940147401668410651229615852634100824377409515007606686107"],["25266370227950772731640360914258025807778282682712404605034398140942452923438","19991517357699260034001125385441893842537899547176936810524465338453772172664"],["12843444693649500151246165394564676741388357237874940648040303599202729341500","28219149700053921506200733154860417358731845199580176584613991682509265381744"],["2778581568455282763208982213914988183559831058270956841608916284769290895469","662417638535639744646885503358042743903450354469874696373887356244574350459"],["26821170199591776625516655809567566130961655600569622643600472195040353097776","7847443672608950931893275628306549088621688377410107091239644178433124840385"],["6363520174293836925218561135856197915079401392587629133536993305192406715329","23506973622711416557924346546908286598719023945582000906108257026504913305176"],["4842667123007031523885652811693583826661225944656567442166661442878799842246","11777930956315018099389233543703949034062964527430416440992617826711542710331"],["25913859092846535641900287061155913256034155133232629046448983928204798568890","13375554194195655480278549442682763431441913464896906498533555478269198478068"],["22139291146345758094249978478582151910486641054386357638877066675576082642346","24651456058327200058611108781818945464267023881132109363240441373337671225082"],["12790129528716976067939136467612910878764932905536594630085373197621765356949","9449729509118262272207179936425716091045952855694883589587946438174540592054"],["1507894090612126926042565519518981267310168920094684056341857264952621960725","10418108505937045692735243897503853309575392024684310346330026461283117992974"],["4133239246660979566335259881668823726406365250314665097034942154667707228425","18362861737643571890838012955600152625162766669700589473457278240985760289561"],["5178160658343944678354249944070092071050796070175331133830835655312952254394","2126677885327597588305463280531651935094751850928716364209818287254718796990"],["16027075546510114307326527724295042946460145776567527048163701417819761803140","1435825125824034280060199483803911408599715424575131376921242462004775296309"],["11028340159017661598691334700134535584467165547027331455882843948605727148719","566420612248581479005838409069121892970759363113649105299981927437059992315"],["16606091853242260243096579616200793153716283277609743216851084218346716393074","13706509538765983718098755852686175109367155487780507881169331551907359568705"],["1901513851003638950157698666589838229267250388594591314703873517288000757805","14602691083827312035201040357674426817672286408254527244478406818800639510667"],["5926039559849244000397960579797221470557366344643533882020771582433842000649","15014144559143617805029493886585478033477616556525911506919424232287566041169"],["17832712126125824657639886708189734807119080273746533120484810231217912626305","13694646464110898569257250703942223298997033447939261879410590308816188252380"],["26724702553795830418366375280004992885697253202806344182600560461458142539325","3118503971089495807270042587187723671548950518062502159398037085449471865794"],["8321647987380862061169110060778129012761965007194894424123366222339440441390","9959981309710874176234202688253729642772825085751560680347541661273201297336"],["4509205267075338613151170756795052876110759105492790498150685187062853637500","10596971030721222133632466341908811978121971554110656920889867408124665177939"],["26948195580898843121296850036638460197692219602931675480291187758554636548394","27193861014299473867284646738212955660738446008786637844096256375257225219594"],["20392267569527996815486321802797457415889842103026461734004344240797264214410","19819625409010567622130357406639622884374564307356457936273921738729860977239"],["25117081856052814972451186593073858180044507262833584435262649008284448861752","3791824687509929945530912931950653949657271334040351718313505902700667147671"],["26670863354724762315068143056906733164433441520261860401998419844569775291644","21007136082185984963128363489940091400149838776688728039370017394779949012780"],["19486152659884165196242700308314891590253484120227140178944997549519949845959","11954874377144907330650110298416077360079209551290332372597267630660864828295"],["5505815215603218090912249303022676871207343838805383937739316456669157250249","17255945274567083740562818324240967607716253349164447645980877369266688822045"],["24808306265442128205823924567377862997496410805434044233605354033398941826979","24677914169847748506213170634828828710983445453836879696224353443024756077650"],["3800798991261743116161235994976641884630810303723086416561664723310670199237","8646182683312448452863349111357548982029377120751779933539159898593725570604"],["42615292202272624633079490493778823414914344871229875701601694652070763637","15477533799237935411925415922724960145033568810693574821357832003709818434515"],["9753989217717948432819839290528177322220559196331751389991604211718494818078","13553233597114930074938079805379698931941825053125002324169805114959436059391"],["26658671665389098974184027601614812482015485724446292799318743033803389391866","12017105498904527874075913399073112092087085906320826566576234577723740407185"],["7319292647619637432992436386445332547436852806027928614985228270284649031915","17231175847502968632763685961431670619322475754821412755325785043817619485939"],["7614595147778571062792308983840564740923995209306037052664379706477906347291","3759937968866043793565001662942091117647649118087826444621401799453670734570"],["21369321656261737793012208996676571805001246182164253642998299968938300803426","4775696663135903057135283838640357589705560503594323222418415648328259905112"],["16842330865070245169887727894110416645471974517973405799124852325120437654928","18788639332758283755162453211368075516004457494884973871426227966232170940457"],["12818714429931170474332244992048655710688909260798613396112263299350850175960","17038782561376139632936245001729390188438306254059005199349232803219709857388"],["4777925601804720701180527072891534079431661384864264048144898447407079700033","10231583186620683773930451277132987123542481308414252993346844389714083239399"],["18100400082470260125216986631340598937555259034998418821722651492800303078756","27345686876015021326478207268495308501759623679886616464984988272619084958651"],["25368358063867746027262404686904130171624436568259879982355336661742494505167","831038562876127162223561312758355030046845469637177101444762671219649608468"],["11569238896362999324389273468740183568276683899123451986514373636238691284009","1736430750809359074421241422489451304546288265868571734587591524418118003651"],["17072393060305889714479293666792495862523099139838486850651209223528287320402","19634599327693223508851926054679413834708479447369247813348296115087699297132"],["27646633653193906256819133259867539094850141081179361956771894104224880319965","22567575522643229907658309350995475172058336460542231215917373207434588082386"],["8943980205683475970927373616463223071941616939935998176952318271438222226155","6464952314874276264378096217394297696971678262546491561498502807107724260224"],["21704050724856043894703176126797691035494544283188631923691423910253332494711","20270505223410988721296460465214382118053986096419351852249527283958672910590"],["12472795153628280583219439221535733495839916974909903713435357487381172759969","22978398130445658398684931351504185409484376170962341476314647457093612365158"],["28198836377342931034214105083710376396625645667393658823501340870706391779097","20894602677789230454571727629637824973558123162901073219897537231265857916678"],["14277323254343856342675966760064469231106271267693777591057797932809125237980","246413137398078683273796961954291958406839968972249511174054634353822842677"],["9147739605291019852120314702189842173227552130574257749139574550187980607037","27175059678573034370349943928469075670014644167116128980771353784535386039534"],["19985820623668280210263854093862468992713481137862564981343634780350269509798","358840326183312938735786262864580651659701350888437003403149878676436209393"],["3696976352108058599770017440211081074823965176740393589124362872094632446069","8849917701756692866074290555808924508744651846299554765844135145420118088257"],["1062219870931030638039824354906651019657547418574035841931884038095065900432","21520339288584383034962205511166209011765139786059773405953591707281894163980"],["22675415282231177923721028731604632475012860398821331162697772619304515277697","13027585948868241846138284154506921074841786434393596600006591391971230583079"],["2642065976731104904331976177755829495944164231148550494522268235780327761858","6769148472379488009615726753290004682417989838201726614793931276865969704724"],["28706961691139193197861167671852417492126803474145522578102286186122081579654","44083108539130232731356211808933983615527354506092475896452930851940385303"],["13270464496010274431008639063741855016426636823005804033502432124494525830111","18931864872576481487714367396722695771204747080681909479506106935169746145897"],["224802484509897414390215123282196237173599653794993431080414452259065878319","16624560313869026971553438436421379612531406091498945954047232952473340931219"],["9381286748589465111750552580970610488180195392605430424785271813844878343430","5418606424650438650542808596123218215601398858039216706236377376289348729654"],["11529368426240585763821226091893390451019453192139829342777509455513245032114","5007544926838525083719832966780066188983218399930395555436547522218053584944"],["25035314021600589754046910456294378712749456666890823832393911115388234457824","26808047072501705506038940641227212406165473016033788465713532535858080351965"],["3478547694596929110104949702214295579831417617035029249199927031586310998238","15223545115588771343148598207181971393174506311507174077171919451806400911197"],["28302478218188194640813848490927509282073928643649966478486476225249366290485","2070001922566256904825694480086554577868409062700998072525420421222732977877"],["3081158327187244591646593040429636096304147923439466489225810204834509715652","12524029389724127679382513876234934909924923496285584591482490482323928781497"],["7224978318014966237949503630678010217401411975528845784651819975295681892333","23643228810915014532448601178916039711292429378480873312723873412913944118496"],["8564148684494623669178336999047801261940486463969814995587938390858505230457","15703998627422726966194065196654154185757039889959545612055193334974857585102"],["21069063884563604581057204022943250853901305322937626870146936399519159062214","8966959444303922373646546820020882936910397925225798540663120703429338883257"],["16414920196474051824110568203353805628264361060570545226158313740857694033616","24334247541623300160144571565848697371179172255253840651334539979216748921480"],["27619563199151586909602958014097176770783621378013891490244743870450115484709","19201504896148780649174274796183600940219692305524273941575629973284351763409"],["5319160324837140820406545160536568290553246001208477551443029302439838753620","13416049418135508663606720962664019911858723445351013507311965185465846782598"],["25047805818759332877992678667257335614801630231894071553280936987600878884307","14028898862601437060513119250704866008535091785568948669921258515450673882185"],["910828134541310089576954439551654541472359878081580072079403129197991942271","22764601738636699262817660102214786970548516934334121780160956403434768343981"],["1813449856122522167761997508796592575013852287432222039321349328744842727713","26734803938530612006866743644769857435960538955285659936775999552285148439065"],["7019253368366925971444583940629129239470187607103308400871787389826041269052","11736526895303126399609820475024886839708794433520034754125091248120268767993"],["6171879961178216882662896707693630926871349914020829802697818583645315856553","18814550304633675485672850916555366698726953510478548637685509819284938260647"],["18109405044852283262639725228773423058760477203179620730527199831289532899518","3242892829442109417909948980930295493906495539535733321061796436306046904408"],["7183669848030317478967424896223172702090258717395760587957349417027740686582","11749526413318699365674130799847466891436986790762246616984416862569650835847"],["26618539480860691413769660808737083108469984680612328093651006583387670338206","15223905685559678608610145105768745770652864339241517223946263162722203286253"],["8056795176144500245415252814582659199040062209915913608120403302333735851435","19452945695257823619031200973247922779204064397462270165810523185806367601609"],["3514777057981682203543148542069088654793794692136426215600853279587681046232","2327126861563468028593298788422767466469372259742514198918680497865123588357"],["5610993701651980997027333974220405440280431935524517733513319403965710663795","25864189749812557994654728841306652172114299638401536534063105578321336553656"],["13453827232536178428661567930480551303771090657972487798172009673046302496189","20399493918227812344676911490413147801992979110850275706130961362863907920888"],["22280299023266045076966779733391782191428783437048841677344178613791291919886","28615288608706394033534658596661628689092264942652965853519219620536347881261"],["9305562542279563574899660877388657500594456958831596605511443040620273898304","7909305907014062662117753603345554308042733974740019069808810945897036439475"],["28467394518586370542566528780096002033947722344608491290018339528305771887701","26740609754266950959678213652659765378419770287001088160319375790412280025143"],["17945975224293098681988894003630953211133464599972756432358345360583551571569","28248806366280972262849343966335608217425937386886571166484927833083650736663"],["17760848267579501990971186141257780254912237417079173367511770418759828583329","3540384309338867070868819518015474341710599958738651332002552585166052514041"],["25006515673006765319471054644769619040573110135332671564861431593599164432257","14951454819698337515317872040420010327477077660255618719561162271333275876511"],["22157585062667233500783008791927246327525066242560893928693364544097685398064","25582433428756600534750452998701748163256092773454097480891809305260954922114"],["21426869173011333603269016968368769097155461311721193428223768151933708758975","26336342361464413392957213776896423618503941802345640462727743779037305176027"],["4641136851316230665838250776679580181560642824974355872577622639106387908356","22665035029173519291850716890049503440566030698204262922919700858306776487359"],["1960058456596741522995994812264960169490412143538774075976189725108895346054","7503597564672119915499403484927767494766242325287026304477853762025499308096"],["6847709671027963320925985734018002853969056450638773857498553601238987291957","21861814778058733075455120820168927176918727717168559124395689819178690005210"],["7095046928248066778499620072727234884358344077883327840996125267684185858679","670780766797456264069798514110237417565370459104670180575806538036548382011"],["2661872470672803730492432872656282212023575612713980234015181293985799255127","21449307701595272644316180258170821860439592418014342310623530271144653499081"],["13173183735392912683661278044753795918973213263278460695382935235953450559191","5618674973976048125556993715022184325908517996864674013450604513794149391117"],["14381069357872917528241688349821809646407400603080973570873682109516253005004","18891722859894826805163287467563409268493077890857196940321918660604476553775"],["4606285770733710163883095382508469653362289647061948624299133187567369302601","17610587726511210274496212085510102782568442039690958672428787204491040913573"],["1225612398581295171533322744872541660807946816673138443879660254057147575448","17086108954350947650404966156327412267626824289673205271612108238608049589244"],["13626128320283125004013853830680919972033303682057801855116374224578194716299","10553272087290947441357826595713160733723457797732151771083355700155728641587"],["28880530310517881541385687266345007981166630398090589836644959586399368471843","8654659916185311814146414626040333317770307185134480258267862947587412870440"],["15177770581937117528794760611535375463254068929123878290096828617650049821597","15653582799664561942765589707421066979392710920853303037312030422053953091885"],["25255741718623110201533775481662555548608168226350719396253008631408613712414","19741468800567902563973934356574647427781250827893695296385452509867724375664"],["17420673764490053786201528406734993046011038506922518857011905859510988698551","14449401207782608220441239179928043223154389421590341230358513692563681786128"],["24033249678932030819132773405679317194288509258343755850834455330793048217086","1787928140363845121500876000836625861175845267347081853643644330359184427822"],["4688736835872411218242537332290096594768419962942405826864611537360139361020","2403439464568046222139624745971218108486629461310442661477574158719715148592"],["6812638699420774516155926083300352459195093380524274340317816520356727379343","20876591402708417218287300573424625477400004762389684395656939667593323786209"],["22828044022382618322453234294225286818422793099599257023499443112936786562286","25784503561773951724663149623078115871183370989094253242046281761030509743488"],["25994278277147380670871776429142050632056272753956402887383395286610670904935","882279285447272082673988858841717194424981383494101129338215702197292084102"],["16504983731838794072213116755030889600896101156323918040514482617091108490113","719101997651214970927003914960559019286120423408427400435365086323824109718"],["28606548829420919297588921303833097432056818342414795180387948900344307703576","2845165563815440339541178795103386088985826211999523886040513416660813397793"],["9610060070414818095692473785019956106734127312576702582697957558747860932058","13534900409395043336055451661372688080272084349566792379453330947251033302148"],["4984324123258001594681050320929961983706138671668218324602008792705702206044","23430539888052606459293214069810379487500173136078950791648139275148446298690"],["7177973874477509504621346303127116178769831686832866734471251391020620052108","22059076356699749773327148230367482156477252967090715057185827494918539094690"],["2333708256144403880743021182612359012614180468232964448375713713572937924108","18616677977246195501078860993398800362944653328822987528165349535219939675901"],["4494535692412407073870422961315219058514818750763660275961112095521179014245","24425478844769488785886635077219567043107621750940612174425068664071725772469"],["13044176073711478502726880948296611686767484680514609175138015727528196970298","4999587910301129886240734574734535373353650714784008290094973724815299668368"],["26272543616753763917128046174670775570132514402055650161747917994714384933633","14864202312793544662590317575093549636428433533508953017078701569060358359431"],["5632618068554080081891528196942464784628704273015624323885295186829466884238","15250055889901130214719519686756581901369765001781796080125863703374401650606"],["147890672809453759939472715047937270083725513437796133927257367707808173549","22384880701319720399310355180786270544815861899578244555891515681626913298557"],["2435281405945316341155419435402153020827924226305157736208339861667805252940","6901655770626153022619409866140363793630351330742380288636902909058571362958"],["13005461187976067846617925709475393624005285931568625578975802175352491806642","16804777983638145420048415005994621025554749424374498279739525347675918823140"],["27230470684319281252343109297013385177919863365489736537844102904453974971636","8499651652565206287654095039749723866210494493482419022789278783177798938592"],["11260976271318755342094502920331696160585069724422207047456932909499212528962","24732918070786486761449166088052656760258608715977344274377640553549068561291"],["4025693320508091163015416309381362719320047679601680350262290266564699193774","10593734562272325971034155337052907223501031163163826933266098322604511227003"],["22541156980755149706096622238037538141386493630546689732179503755848079168294","5515908538293868710729703001289180684178661147372556777243480047939705893003"],["15630461360591615567916505351479034124734284938934904080739382453828976378900","2944074118494888845227066795689982425618448740675062252599535009759453405716"],["14894740486521665910287791115539298859128424399836787413454453794129023490665","1918477006094624690028205342744109324693892786928718927354687932145345281964"],["24574654257988724743542217145288906903582899680697152731200397510961658043729","14626281006520916427967207331658610111559388466453217305028473734620772894769"],["26532116324483003357939032179400778740782572316591356861791596212934823897545","1736532254923992285031664961689642118394691020965547127365408989846623507639"],["11051114819570429922965066277003441919521523286372243165238980060306595257341","10966901207745337874910815451578482313697410497596007900384037195962306436524"],["22864194427932171043352567383929208548747079983217961903467838589073976558477","26272927240369535132088040164153430889445299191210542212941806247989011188250"],["17270158113646283348760742055151482136192268014193931099357899048219683959691","16267695087928649311558664236997646153015809677904610868049269087738139139493"],["12790193769438011351710569811320101248864671467663534462572070610214808089935","24966070561107542332236919338808273408302608721433774313516153883746992671686"],["9220187818365735211226548928934975151178973983315202579587039561641907092957","25333303811156755721937531170193208915445663247630550448696280089361188599630"],["21912499333294622598625879867418397389096938439681477302182195505699204214454","9622197785256211856089563681875029848944025339131373017572790901821651268354"],["27196707554149322900966493100503797060168553903434402496248565361246506139406","21408139261740628128301773902330178466174097554866453974504898202686063519071"],["24239048095496215225408412234301725622976086166709133723683862853495117975954","20056878126841576522077020649737380486150033380139181657579503770753132883080"],["2972059408234429627454545076395255825108222183537874663881942546517064102474","3269958972608499296517624680071274865691502370148846789186167941004915488708"],["22418027115253518148632060217124646421946134727280015189370436948945785399133","6053639214196945363140815511871173700966428396484086439800022577024585225218"],["18392884973869628538286125263219856710564827842762253650595936974471693380387","10367469457620827361629555071287109094566117802217096465971065950294287981593"],["27787699208714400488727575773268277569881505345624023137755496482168471140222","11244403834549064596317794492922096314575787348772362400623035439173935322950"],["3922126783214356452124531878188972959925687480085648299989529677386350729108","23575259821714131457668010036556348612382898721202781554941825299782324986697"],["23549500682576633346106267499175326124362954694350725217170621814330952364926","624914063061938082209357744693310791541533545658364310095848852769140756886"],["17435913773018853237366338904755573129794547450030870463403733536853921647654","92834838613145495572408404273494225720915540411167885667901259002839801896"],["664676647924467778673590219546611452317826803950105587456845211496773870395","24479851802547288086548836170285071287075721767201834183833947782027178709392"],["4153925071696540967031464430978933907976784763595434626644282619799712190941","654350546237409552779589366665611242786332587945670953090534092639254037916"],["22986739222742565214124860175578666173507344744663330438238712535863331836319","21403696212146418617256116087721598495559574033857546246757705162601312662759"],["6942641663728898112741755815356144767194725758814555250198178803158781021317","22390668929688609078772521569134547932507993049467557163795627440994694475447"],["21761433451233162866527443946540699419178397941193127206987489952435214494502","14643963793638977666400771571871079781212465793952662471127810432002481054407"],["25878799059161753833220268477341563233428217396193087623962758519047982117990","14203612029620702129924328514345580914736605679268374885676318456996412321805"],["15194306076584671673809900072731703821144271315496164271936730130322757962759","13785870139102461917899883167914440427463183807824897012242292053165029112041"],["21435148469650312504512586789474085155495679506212665195261961353604759089910","26317163613266037121656938657920362554242432669017102457215972816373600834444"],["6703448026124879917213218390215534338741682698036067804438315906656664505822","22138912120272250588885378613735798497098814590078405172604384748182816433988"],["20166241754423885249114549309251626361671076962024537445051817513133599427166","2626290321347423045460606000830964259151540650341094152769409199148859932954"],["28688722500894690606840129554338465306472776697754796089508951736226865057658","18434614334270702643814827948649728466090250977511572946110188960794811134430"],["1774738075970869969404814247468427091870539512690046929307931495194179660634","10600929292173976645353385149086960975855475658267377714453962830822837140549"],["4573876410456169348218528794422875649307712140507167627124729836241231465739","26158431114832223520314232734509346054143561527951413779403722522491995680098"],["9458144953235813649130904349924912050014866593622858294029853401494192093969","3324718474799706109080167507467141652120108238149311934067010153883015858020"],["2918205246884141616374870758047966285246096023853821467981015348746377943099","23275050449092902528035671119026579875328299245511719149639181841209205472697"],["15045095003590505797596999283010014618317445294859848843113700384752172672662","4714837295300953659266147306512931274260676733969645457546147870592738645606"],["718110821974832674055324120770546052845703913837593160914907138269064665565","28877488480646520983852395279123567265876958511087947702978825894612711660677"],["4882225382420982453928524216623884626860995798595266690362050785477671056155","6865612053337557475697631342047095731651153200407272113372428745766202451262"],["5007992103327502932883936893894174085283003948979351260355528230334034819186","15059060823295721410150166882055313070673847583042958440592747107874385550288"],["17573949910716646203301405841692161137531342150542371340232125689393371291213","21174985566636782610086617338747835126134184881553076697957669577558654973377"],["24533208443677775790557683091955126639125655759754615904474751027583590688067","3409021757503802085975175336715630080314207141988068768393571195793851709815"],["12567657096399947336705142582715691833386684665193506019569343761183911131134","3510290723850049455720383938786869518045571207665189524742233734094732425009"],["23126231237020281186527010912627070100087356235051570001213072921364856276476","10896221657926043027078277081219511784130746020889646957171374713545396514960"],["21966780677856561668690025337609612672123831136443679698999432619919828400987","9390043598790057279763305430577114579469385830297065558324136005724209805647"],["13885015070880984085829513073357444057933100243965631845943066738451584025193","5443674642332801033326687334046726371767112234547313725755835405988393784038"],["19374085355887662042812230194789399505266793041115860890338801582344613239587","3845574449960216565034505313329352327563230102756604833251793462972451940566"],["19053017140603080455832003924153445083958323794163067997149174207568006492553","26551052129167504817749368392841099859186781721411284907081716531485418922212"],["23140600897692014431730550540416903702628591482824668897993432062514724411487","11947967621973815739507050876572763152898692395548055019750658950809571745607"],["13207223808010311498662075013949159291682928404279759064751842547916557119071","989915411650008635194445751837149571495688108195116031066667694649783210721"],["23876769405968886375634645505518784963282268924805220144637702269513926624301","4563369070940045644635415056141977371482337540827632836207042560857186744404"],["14284015210193930019086926120981849652340765298673602590269922948240360123962","27142661924608898815333276147314131644871265599334565946993539275903939012227"],["15112399962369470970000299462382083232980296745695217794790402494391914018885","9316389404603124599519621054838177263403515967042512791723012024221991936661"],["15489726801348569757194301318130384354580683473009500194946368380106929126592","24867090642208436307421573042970448370632552109878557548985166402627003777349"],["18059491698786733086041627460025332155875757953585808672800743150732322906098","19100238105156390779713009344351102452300437981033947063061296945466936783005"],["8673238792223200519961075268184439161396951883955591885235275030666439501804","993531580273293624226738885783049846911196682861084562506321948383368433906"],["23739446275199202581045041096098099160026996999143982424420217075997479266106","10401040690489808381635648116570812087502281588600283761229498252714035408138"],["5217224392259270208006642891710865761523200105982879191820317649889039133481","14052824426884567741929819128414914333919843281671460520966624721237893891305"],["26873103786226661476748207208919849636894649147235068538044753692698478023385","10850509564359312295959313980372603054593989116126602559560375752711703938450"],["24986458045615800698872978644872586917658268572621720098750964843702316521467","23040924262220255664577567189869084057831643084424827060018916749046945061390"],["4275684504449650114903233597505504159520212711580753584596772458389807653934","18383813216549045901145290615075772762720918667573294001917721692296123235427"],["7931083152355337753893854054288822235266389408733735707693987540756808063032","28031630844435813276812765313418305683460435799151278553126730864142354084361"],["16406648179426625765387712604131468164096840336760672121257392989031660546776","9106155920975094125049242606000235314962097283989522656874612721545066326202"],["21428679263619096400030210736437721477646546085346563017446311998816804933041","20690515759618962135643767456136047897123404042235021250540765088068008296281"],["1501222733426095916312805123823670395637965220393292593625850334982103424902","26858159001870389732649924777338145588988685576440147481919906049557416890649"],["17581398317626978509990636306257879146645941347509840828239342304370897770533","24514766485572577602371974067637622764016766440141624866956798905956101585662"],["5963546456866027745157607740784492063444884493076716198654502769649255657040","15866078214476428907907562185164303806955306150202556943288814737308927111806"],["7010652573524707613986070953849352044484332186351833993045616435558421289918","25514553495562592882153180874789415879065554838381424192711563066235916521559"],["27417347769095793451422008707453019088193814283879248629792747230776998063241","27666371445503727495121409533151864419794563704387761879162945361589587339757"],["6990175482780880765996768880818808387441552093356423856686465155634833379029","9142773483856900465964102984076662272951486851288473062248321023076598046969"],["28063853750874065261514997276075332868657366313893678138102263381696695629749","7799363200340065839822498485137674680516726245231504623226829512637181841722"],["17976416299832762061907790147169214256207105015628354265280335881293528502480","16650892111524439815195006754414702256090937132574732434710436432699380516729"],["14354047812877681676598668354904112488424648342377991832575346544358760817110","782131316304900536310711965875442552546656044264030643810686034370399869618"],["20379205015212715214077620897696226383639166551815811083407805465808001064209","915751071051602814431698742651684188066040704093543736774110755188170879682"],["21187023463275995629405977318461465218870541736658175051795727407692000719635","14361332114396344165682439142208286976066117099903305250373816976378962683365"],["20105853387440028951831702759638898575085733402564887598474441985877557453636","11559061498130188651538085134100888538460053614679074317279707609574753919116"],["691510368921871294748728780948691988025973528768634145021577791984829074941","21905559897630930158642981921713308091227124428126554900818397453247488629323"],["15106388981460951971509258318508029851570693463466257530800739217940825719755","18537458565979657675236991582886534739489000226476923722382781682589031895399"],["9469897991174058042189318492755099486685415154037245856022298838676117894890","13723541873229794807652911917634308907871898824367513422935693776801323766377"],["17789309146642236367362550973477577049575696987362824672552551582394526822524","12794338383139791229749340204088197629433125917193227702163989626655262198419"],["22920248421690980198519254255440143931710843755612920163090418175147080478337","3033040616660346452542586778778650121907532932654673651140993427609419121072"],["4864672539291291611009789764839590374192131821485197509134420713496947444348","27372364828134643755766564424503672980683780170389837094339431723084317097304"],["22955365269062938433098749494618720934935644910536964239995663563072000662842","4309260399742269142689407845833276869733394193648439821867612959913537754184"],["20067467982715369618090732235744521718392704455443310732351570168120764550765","11963075279776611527042173180590643739542640334242643434966079880166401376956"],["5284268422166088249667594178234605473171080990629894201037245246526401286808","16741218351422605279525292548803741861536709003159466632445616962363753096136"],["11334544494730840393427255338733336310733232954509431218076125920781718613304","4438598822114314734169375472838628032834904853641402709873090226474771636797"],["22077553169840969168300858044988574460029119622332251295944009049894806036785","15691304487078811084283222569395484075252408858302423056071049308564549354729"],["20360272774397308566849438092302541778231172488949443650501244816729839736486","23450644949776654239309843183020077072214652718871607721052662163623332980704"],["2039212797955845466181112260681604527288418364897581560116673372719871126067","665275819745676532548041841475221160870637772261329707072947808104826860089"],["27364719201394486964719812757720865120754211909605155871227272543317290768307","27618311468762664378529260797630488108003243029139195876462648140200081163559"],["26440905328804650485191109723875673762462991457537748579479356588016514087864","21314564487695761779808527587664750937554428534566676061829816556877079468045"],["25333006152219596355842452889262725211279972195287755995680333408653151233366","20932662136691502940207173648635659524534292343582114061332966942830646841434"],["8303950213936918138171890612270248992448426463006261753759353323753182027325","1798359119962392058271839388706031677371730303755222066566398382695106175521"],["3568689181187667003038831616677110523509549861252563043418684240063135503790","13400777176340906497602742312491211919502968529017433625162366192006346719928"],["2562530202236457171606203170496537401285937025942189769535958620186033541010","2585081101381548684543856324930869830562865855483356786231164867277408706232"],["21950825133162180810469981653598003730892942725530368471244310300225811465305","19912045766450675098550822952758463524346434470562289394823235602271771272599"],["908704797857420333036966717735730015237294351296676194600856761393101462274","12702770162684375127386885819827761735848220515385046231675838386598483535338"],["4330774244639841203791102848067427787200335643053955642123366712939833190206","22080915003256396164253276219374233275077634563476583831610654714677536982041"],["10556212779388640710847099839442373617589750546610674345071282681316645275009","25398036753581941130646766110112618207224083407100381795288888643337608982140"],["26224471707482070751355880822547367594467067815057319587451953642140081001361","3381392836424742710953728002492218038607405857442832792824044582486934508552"],["2353897468961889249066339861838051234186080622115898039063047093069230744111","9735524393819337479508012856200756554716036565055740314317283718885847006856"],["11488903098902171863599355475394248818901990453357319780286043061122647470268","14498949562202271947521428899187762586261082183995111761172177512151509444927"],["19977048617921871642769360812927340854900948083216848667824879532933566717964","8846162041660565766867691748579976508304479068873799135090571731252241850646"],["28112120483972559865503112805115497313764355344000680763550390190100370045031","10404140993990776343365299383589157530580166648171205818987015141786883527562"],["8858965434998569706352893222185777811360572365104119492982839521906319600","10119616701460367618889443721847422870746126142407151097845219218557780148591"],["21137581689136685222993248913241579922825139971952115810411628625364051872458","16083012730457675792258151694713903578988002204621431192965876853724156135871"],["11811654541324467548330327359441036287559755775784395792281224773445799314517","5760454305599689287099450630961910099636530052758182222657146348292118076095"],["23635634268755901212448246552544728677916647672127875187512572158348195813886","21644137114851041647384077120264134161672219584385311551550787367814824877578"],["23634470392179040038858326200505730657835250822812222633883478056052678323827","20592738400507364423668662062248411174634796221757856464225078987592963511517"],["5264986745147251551605348765871337440824878675796706975002084506322265235607","2500309201234266953351061672667975033665531924446360067074546707224653224992"],["24323865080059641155458350995723483615421235948237527793746203528007259045578","9309891990883735469130720482751447435207816391816517829815005960967035463685"],["7130508133845783990087254983276793035915978061781018227775963320274962444956","28543013452312102549811067577536044226200216188719995614311831041929274852496"],["14579990692570804652057690891983916636788010649011857770824042513151961038528","14433270995546292440159277265950471914716165596927519261735994884462218660549"],["28323707270503142298657186511726906797821103095793499470375791014870809132397","15195742393466599524701945371701302123493526461593485479491402118216599850997"],["7986177099518339150599786933190964205246822290203027167403259893996606742155","23184285211327629780679519484863581244126840601866260890285213229459599997458"],["27378908531075503870658920034135406578125008752687319066277435717899882151109","25872051389621127656557273681401007451902904606290453655848196585466480688451"],["9998891867945433354363857829888643114306047841688853469431900356116882864158","12237778795090296846139417879227561645739650437205357743415893967907658305081"],["8021445335574358122028646327140389861386295038138498217705555910012109362833","8405078718064342082825117515514378128421409818595251433832162327448374187307"],["27208081649663674352303043248812039184957846059143247731079966446642631458269","28914331554810362189338180263065653848602139980593250347411635441969483253552"],["19683509405718970979939477730540661205258279962544443221528219822061865107791","4257680097763297631454811046323760148759896500456069781285758321559356973291"],["24250961263270976499728865819445630645112875011865155083003787757019490522856","28833103395130930314734929410781746088743311217190345085866918053193533145826"],["24940835067447739576341127549687192503657754200704762287781977971634262680752","184471443483202453298822494217545960046424476732448592748516138551315513455"],["5148066865629750293336280573214613794527749111228084422408392245612590658685","3274426674918982925300148155085983542889055442299176604614261955134655213742"],["19079805869453430999946992477909214783502516853420612546634219615643867010668","18840785596649761331901494821424085425433993702993980633490496412038184223776"],["14590248543566375570898520462546163919422994528295542244821124070385308502880","9391365662608650800713243224688281955916670088350755409605494499038479736882"],["10958506757251704240347743454752190056698842075164980382763945150125034725848","18335262950725503455853292966763451470626209360815900301613675205763770503342"],["24663764250855864300985020039320278476628387265655565076960947933560107420637","8239705233430089542513752129592471141638732113994704365183882954379393626901"],["27852124474157833197468932183269252382901499320304023324892993547576293426929","4094297941480010374859336840343751436159553467860234151922925195578045678740"],["8225788767300951097438018169339176946567853198110152037212409905058863574962","8939990239991569733617976935642371417713471594478801702827193870644912656233"],["25041227943985465206840025196789016417261078806242619144491563525127575559329","3181241866747834793434449383165730862131460561052562006097867537403844692146"],["5678177593617754825251049987531927680627096421920982693525117859489869049228","5848359126928199736383380539333120839184139776113206456676396761979124930212"],["5818644011821913516140513066985043187933695988855318431985184331749775004712","15508201900295279358962121730522543500168737086269269489161941253165723081774"],["13709597136966047112828594569523603766125333066271787693796982361226888666635","28427277263931085898939820980561218633089375467493649891194618661077016308734"],["14918295403826053989473806253989646787142884154847983035802680278657082207619","2896691503063222158096761839167075167804497703786868852201913953171535986585"],["3128992158125616449926888070951650939946060469972360781460849866250884787848","20610715831751571195473394044217641945369691532082009868499873532435563958300"],["12451203919236787162381576657273664657768477926434313975386750859829175984629","1611638934845340060845645508316018501385025042599530494513616192377566989066"],["1234114684557622589529728199365976084669446300597731170765977852178204875279","21048614209139030463976597906775885640036861296673417277391983125217507464963"],["28785795037043993596061517984838730201175250525208476471160854133838736215079","2964445747722206452052135880840780229328445321688980430573679352836592613294"],["20261044736180787429420404720546894685583119645318484699719267672776858944618","9055278656954504780236070132983219762619351981744187878744156604878650658542"],["19627957948193527613759405036859915359341158927717418399767045898612369317506","22801103748687759301123066768327951268136753191371115081378889691188150291205"],["27042910159468087283170409160806144448890227317794220284427180133206973049899","14514692996618319662891332708631176155883953869970853887756561124981706056762"],["13120633265610073896138405323669000407730741572853084982694045607410101492231","23558366302032941329316496434284567344478601939207311158352609421538344182636"],["20531237608124447019567009230835402541998892883180852515831933651760587513232","10108820670063837050362933644584845690312514630052144454272591815153117944737"],["4066756248964286075761580949013693158400943839601396652403743082470022873008","5961441868405747170937571142050096704070685288016908052301799304081024266266"],["17071129260875387671528202430800419603939377344749198178659617069826982981150","6841502296319676003513977551282432197152348932574929585655070720880254522676"],["17556322797540150399127535735530909097499317917844349124847532977267057152081","27929005589964823371876531689373427670693702302581391555563028296664951345693"],["11581322753708190483547765486842364209401453849380279575436160781090565896566","8688382293830787125476367080875761722555920228810381549795200963484839669486"],["10136667391695375434834594084908278736323654868430110626501659662280751446271","21380728287479972294154113884287902143633761735895666813034835291655644805228"],["3378743401924359544880796041670099439304780977810500075506762029756684677391","1472761808483708474795817782829919601026614811302366832540312811448110600266"],["7682238561429199215916017742121790589300569567671118019883582430900713176213","22215130113450131627479942393300430401824931728284728653915840882794812141720"],["545905727112220045100334733957919927809458055199238318170273274942797012657","6813515713861743083823775127052232522095983533099358057527728479075190867208"],["18272283484472789707374580097186564503483482195789308926683092478734412773746","20819572235307760991250279759550897993951982952460343902025671856309388367368"],["2048312843190640914079955919950899781573854562659619402831085403976691164161","26889154668981479957868331910586001020206150242315172783678133306872527199473"],["1724379602364478593847018340784400859364075352453789670331835037783776027139","10757892450600025536410135270258632729468853555498401332687215478716716457437"],["250804671445392111738811619491574101126234407192423167407110911697148378063","20966825443752485983532653763613546827372721904767741075482753349363812989954"],["23714423539320855829153632730844348492376617981402341432936573052475663643442","23896525868212989701954438522692477102139180901914924338670791518307010858054"],["5436575093044221822195955884801781932863421402700016851650303272832239274151","12440266443342907407949278559851351243640692680600395024296302387244686279095"],["5140159410999757623431997209317316638525824818085652532583767276365941760621","18289858887278594359762487322977077260525395115364816814014951416677314346092"],["1519999013041050762710159458236214679071890618018125401558297314674143612085","18665340470297207408266751664073902957128250639459293355272407159306788686836"],["16207156161430868622164459442790661805651351724261085583212383015219312159822","4054829771059635369577951168672152991589222806994294624496605773177154297899"],["2621033099414313660952558013131502408965217897273291429949878726937218355706","5194977994421155692778394063396286924576454129365478841745858407861292050603"],["20997975154105348548946249248944234707814668107176087608576436196366170216546","877881682396451265303093892037745615789284206832351712901915652516065654712"],["24918981232425713762737715534788267549122798711148321881714132865945923808216","22342557747756739729574027078782433075345577226826275401184398577380513937365"],["24212949716229089279046185783854387375462713875108146326703769006796590734699","6085576127923809644578475543744884969449597228631233107086732868201465147041"],["26031909765053472727014724700664053963497510959992471543632727824700141448767","10189274273562830934506389559948043259981298086453369799987949503659670855680"],["4296632163797253744581361936763579240636251538292012609740946944634674749105","28156450707959337603334045929865747113895155348301751960296655841857679371309"],["9777453294543722377560539388905646249713907610567891834680443605049623722795","15174925679638295322845172334993530755737063658623861688314905641320137961601"],["11751144938211531151893704889700499357383838579221534616613234344045555015225","17413787058076341530778640497280811245721056487125873373756467119707814814396"],["18995518275258524019947713642771009430040771643478313358204581683492967655696","13064810650636922750584327923653393944702374454289950726909317877297964334914"],["23189469818447782083001614731622410639433880552902050033782429703423910346766","4761644929544095861070258222887301960849320700763043986415474196068981678192"],["13102853941664992206085354892755403099817835507816060682345153582349813259003","8190552568111264485962533806345580936671614715216908730650308041625066989361"],["12150224481051240810068623181615787121400038270995463641983661370573455152817","13796119320368345319060728670710769769466967255180514220747280586136652990802"],["9973956760860961605695181941530268119334358297875741362668820042461896354115","566900094297091498304821089260673126673373487404209360762291344691978120620"],["11901286494248629024088584619159383850719659872208037288713527188170520907866","11364700630410927523303829168570057361196932346729515911402273634204963975379"],["14110235438509966399302764992819138077246457040158274824718695620378381560069","9444008826819677023532439929006625912377889016968610827380907043026181803425"],["4506729494298439336085602927461570484358950074153764306494193371552887791474","13095006829543574130390527645334392529286665389952158472826792572992863632380"],["8720137733868337971008900652169580233762470607981973565883641879952301702055","24748203222088750214931454510318497733818632355473859912075387081262714478383"],["12325175836474242219156650598375419427172027485525644275283969824661564612710","9776973937640451627439333235962777815263173461427315593650115744947789041548"],["16181941479847358451927504762595892926515679392583801325790011685303590203701","1619151500840769337548962668707455174212073626281301252858094163470182321178"],["7472215297419408625577333413097282142590295754887709628462864025280656223428","14455810611152363232224885856867942903370671752729150802820844240107948734630"],["16349987643362742050752228245985330816382744258633503285351454592563971390804","525689153713051050911088476156646832962044033188092073467945571820338775488"],["27563088849589723890919342210698386034745988518915036171054429094201877562307","443958628617327308637278518308423249562223219008838109707412578127528670580"],["20187566255231997913383950708395796688032317239807637901516035643567546032961","25045525806674692779888146787563033835330346345579979669438361444055473862729"],["8769986888734410665730049722008171869210046634267622914780926030688781738965","24972933879196081386881009421413229687443790754353725920773879687183942589307"],["16508832878170390228235648109748317269489182974668826614047406443446485796031","6729143532120913521064642798010578593294164626498902305604346120144435909140"],["22445912133411362670553561820364596213799625365232540939537428263173616642406","4050740344823337855170426651849935027066050000346709197812600340131460481827"],["8655355475817734679735665252305515359639516510746634749694699494209419415996","4322583980890324117087792724324314623343255666608323243758379148212105254421"],["441433051069538121359573246432341467476945535372809651148224768320446069637","27995311689040895945492501439886968783829969108525053344790723528551598082038"],["20480806279429635362797637165570108572918805966405634808811436750574140555949","10592917086076461906781529320105500236630336631716705688450478414180766416163"],["17735318173224376802848197220794271438988532952753838983754489522579982832726","23703794541727780069052287619236289444165355982930360397630825144456581407066"],["6261943924335980227377160921955665648711220699239441742578920389297433724996","18894332392798115242112311761110891729571773549160996235275122664244461265952"],["1581541998252757022043823331301421261608147525431540591702940065423693781718","10676648037894831018949691369112876698844892123522503553557299798880849211084"],["7222147848024357010588786892227077201764161554388100676258255345480230618280","9321442385473694333405767572071970894790870695366999432189470765275289849364"],["20120701091801787404467556708568489933058064713453324142871078715475294300418","22808184944620476505088427805422934695686142565547693778713329628708111029875"],["27246955313865265054022378583844964568579616682897498916639445071945258581161","24246264327685552885847552106000725039901486992787544506194244505423892165700"],["21473332829850448929826222540460033048123271873650198263306085931570809769251","144288873420499133605572102247034153173144501028753629593132613226319626874"],["21475941416859490547001955449527066801636001305371110983132168905902538109435","17219554140940327063562950891677009875786596633703902946207114797960548487127"],["20731074566460010247394386931811656672547714947353571291433429136462888415368","3887104035184081920993083590321072958432012327827851486436385152020681828271"],["2499183529731675208341216877810911979181162183530184861099368196899176973320","23370991882518778353526466370467898099766545525506775989935564396277488618234"],["12372953527404350036869875488288948035050234748108102071089409457602598364596","12434065875700446696632041988739658753794564763061244974028686903286450782981"],["25824630736884943868019059463147583641053429666734510429225768047400129188947","8363237521603833789211851503497018705377627882489222379565178402631399271760"],["17137968725794201565857053757786139340220171584510666336937106542798819459015","3836310768867044445125275802290635935700130205622448331272754254194770633723"],["15202486248096188414673457693313127134691257369256748072474175321662074016141","18428071284824459928902995561950922637280055798581752263915604680676364572775"],["17697889806388980017643810634863434297502216008397504130918583790065476033577","7035306631759198744432096303543291688033155436098698873576401240831369523480"],["17212221876766800223496861878767878673789820454477977816225947846780528334247","6324577927690411026727297108278180417819675424078069861700514380426288886970"],["18352318962632982269919058610901587980869470155547912074037405076401479369975","18858015293823843458331865408844505072525784288652381212288515154285427145647"],["14597106251080218360021068475874407914485396239610660236984794435776333373674","17053618745746044074521294764743203930624190691580705443032848245843237776910"],["14913980077953345722869304410858521518980991676685499847557372281868192929032","26633405968487962432700559202283525083836035962982386032305849721957534020234"],["26474776777805991890670226950546909436307109911415077696644069115545272216005","10874670290270498375215534772901370298368305628246652440340643141452180987308"],["15860023489316945244780063302308806117731086360004557555919942965591440592003","19258455524329511635053150036180523628587400951307730932862150709729308857698"],["8294482676494208614170526331285701895855911142789311231524798495343042470430","4602813693369136012958059412190150192968398555845863439090508708220295750536"],["10600555206802170382810730458411573878581794560477368084334165079322566989086","2860905541759574095025909494216361722056076970783696627328245420526995526219"],["3600218827226616240627650838312056670289197422428418501077227755255603097337","27300178824152455406073084793401458746789685081326929418753694449850061757840"],["25717909181275408533026364970734871298410834256859275597811885233306631542887","24174253254072072997830714192543987913332307603673505002558488783506562018407"],["2158649812888059093366990926475178606289067795520046397607906316047536130579","1682321487497016239004775584821609621235041595424981218582707417409702691260"],["19123965432495115207914176973456162698245114803039535102304315003089886391226","20202529427011029768754097636788884379398148784342020052127377908990016957796"],["24385872179876944626209597873912164409070898657917785704264830779953922209208","5879165431433664646319084420416559503727518254706877984904894748424326892795"],["379912011905923664928179203446273903912611165603256687347789465339497911577","23197329425707066204598166390052491800553822865253549156745321974395225830657"],["15415273354388458920654620979951426866117736843595309797828134290312747655355","292992939623215954723457417573856286773887360506617699243124582949084128145"],["8216579886858563414899185246727220302392499437325106946516493704936121553968","26124624164644300970014656371524321176295080220982145304800606881833160868623"],["10064825339770749199695003996363099894658825463547793313226393857019715522701","20312075504378422206808894163712742978815871240008071146721178241242517347484"],["17043753764601860619097800293864838862904900352091490996592128269058227826051","5135490366087962810299988038882360322738818653416480722385145550305602840426"],["3377184160888953821456919096528372169439461132110867145575763648535782400836","12047730076972362708935666611834587158279300855652545275371005686815000793465"],["13516132562684491002225037895163177520059721691386948468447306321782545544502","8121913240253188859495534105720592874663005041245499570822642315301574156371"],["24824783082437409731860548807328898657707329028919728949228674084273047244461","27783471693153341092572079082852771902901868399072308772824220146566849300421"],["4272288659360111924049378553186743157838809384875214388895835398717758873368","18967819904724327252115675388245870133166872797170252593899769206600686804334"],["10334564809675103531690361320992663757888042795336843870041845547224375517762","14787678652523001743946329869263200925554351934545301113173448335852587469537"],["2056202929623450852396968104237880294042730301952896615416797358988999425989","19580090457058946882041747835849871031498890172934432441384389922347395292948"],["16976542951641694695427572466667858982182888259537529338681497197899982410238","9588906840761060434200072160421433095124958053613336950286358435743947626523"],["1622588723443040782217325459552321222914105418914429914119182256369879607333","20313110507701284866525849151534475675040090812081814322330110847433834998273"],["27854734889231127970802092500203360773926421044309887293350419477964009003885","27180166306658560407619819926715012364288039815157246818171249749747723621833"],["9805881183087795655685118959015919964662870039332615689875797972374978652667","5496187199808875254189472553906258917336240878430313422834820972645918370559"],["27410529654672034027519332056588638788986563074367074019573492979810475963570","2879656136665297486399004593645257848922652181430865267461098996361140175770"],["18553146303561621330950607264526825485413321011314379200144351032025241921473","8970973282025959823816430447065488628824066780894612476558985469168154734411"],["22409863619736588749473506807560836337072548080129582500510623420294526532537","17035733658174084370242939208205287435890289599567649242664393634239394476223"],["15221445861030701948183453782700612205600850441438110457790106838316538346255","11267572491501402171303312206238274795839355484077662919788243399733221743670"],["16022516477083194800460161250085056145809784992342281923447476466841866333716","71705525910597912721447215679031310500833136585294778518336864095356713204"],["27117465921849034693829612474536571703306677792377445602583833594778603288885","17855731228803123390140469415101615670146892582894300510478616350849523853189"],["2649247871454579541098021571290396901146801092183762831044207084335127743774","22340570544986103033507267604804721319195566916628744942054333988477573357050"],["7434379071631919294536994587088410706456906269154622288752161338419217141168","11893115372690922474406708005755359461369154113605229766972066387575899904257"],["28696719843512524784071756254810597792570856358496153907090354908257105061874","8664827273761320715308803222993510040355291579295661045164502754341824276135"],["2713414446384328970964460967753746765005663053483752148003889518752065038372","2779660098575909451332684550317574814423551814515258192846513751269128915886"],["5520821375022103851199009231951211290396828111338558566020146740179237505039","14042504636779834437965265381539794431186885315622271804561088242776851510889"],["16613640970396674316868700775318112978557884466417034554030327549385332963046","2844074037059146267332375563685670435499386546335913067297643919110680933051"],["5485489331809903808785949308246755347626285931169966101693447943570699139255","5330445133947234543582604626180534434808812170244645808858990573777523693215"],["6776594638301624970165753010588119707353914731024510333479692918618903296675","22668056613776045771832551468142806775129255462355063919342062723357655707670"],["17460598790058400991713796394414016187717682217496446198407006765867838557441","6423118857216401502143372394007954447641125928834500739128368238245830832001"],["16213616811243513409233333454375859439340330174426543624775261189377077159916","5287978036065584498881660552890862162652533830031457333287438876381129060208"],["13548092612875370560827579411161502918115070090273865985525971049903559014777","9189743063633363803833199718973752583026852569049788040155150961371025587902"],["44836268491472485499586916138404968812064184196872941045037260974145775643","8253745136453028272849363417203489155584857816688374103525952177228955221579"],["11200396498384078715813233533448971918609047074062415549367177106288247877259","18890916518433068971523833829075375470863537483181505211097562143355381962025"],["6166698536905475809727318396849199538137910876176957572461181291573685845999","11845929586010534970060510562471032842435325555614842618100935490378138454008"],["24819746201398915019067153874743653189111281655946651584966095089611103206910","104045390844970438288115716258367599026275602721645844539828286555699932714"],["28764584128335323514494203571948704671604488596303071699328732145442063513746","16365911183350928772845230125748920796682010439484385202205583090711398683160"],["22424784717127799854538844364909287442770605592732642901517236350230951485613","4077712536398095922976543835495806668406772393319894076459479236511006199817"],["3743319080185007327146223975034578150200101781981295159467636108555149538470","3468724903114943280979434021487207853381333123359950566402492909756865519888"],["12038932914463626241323307200533744295273307616821204086603682658081993854568","12833026948407960248307497945529863979776939501048283035586459750602117636885"],["10558733146146580599369047917725757551543305454953433473478667990014563576087","9961649405804226548659579715825727246190673199437023581060848042792607696472"],["595520998516116463990136418420801833663448802747345706082725272693131905825","10145508822670511355184433858586700373852237619629748109583329508331349679"],["617922689363150330023302843440301761011631829111431970811300155219007569636","25109053596726027148099537786190753017639953095602513372053205747421993666865"],["15109688932360548274743919419952109577792535897107057790825912791176906988767","11814728695930275389076068608551110122058288301234541704643332321685651927624"],["4310574512970092708662589901953793632545088745476368666843896757314594444370","27614094266753234069511067999319553575054932641554685198442527035023847127115"],["6937388607858475681416632384310194074744863014272580786149473406640455532175","1830423328208107368821696685502833498079260829651716339051554979524834019269"],["19695202484612039363734832998686009838690656400291638319662663616184733805280","19201351000322284908151027013772118328733882629401050974673484218817778485008"],["21088044278475048829752084066775657466206059903479219244254702615744388942977","19097982488350046934853228971217946079135481722623386417472464634385287352443"],["15052179665846762745706809942374290169549204139810159730390832190220950785668","9674090713978124914523282432382476380764571028206267085744531647242492020085"],["25212260402906090289828852314398898979489332705617825677540344536969687922602","27514253008112591523839654468729960740588481427179165168170581313447322271656"],["14235306592419686717720606263817423484024911241224739299722214499583544676440","28197741178389687477348781389200140006551071158395088211303829725736745109761"],["2803605953220734302138668928708624374308147624211836973663600903632540925927","17035304859767408935231709123317269852616017377914124642929020446440590154088"],["17530092818410718512594771870121208009197975754717567122683528670046389886211","6388138674845911284791809722426451737356415533228779374578940441128139252639"],["13189306584738172374050752663462435519779438211599322251164684334964273709658","6483740800861315613596273531726229567610884162598415482241759015859586804510"],["4676380194129581501139933569793348007632995168526505817323816259056916769703","21546615532031541674100328959220310565409833912039134728679228723540202063169"],["25110313993364685895080028422228043998778960307539391846599795466081231788860","28318247225324337162902970386711300095354070795627137383834777629075092948236"],["23898565585604667437425179464842957184796557724618817505276661540536067531491","1526256732464875943127542186370250472808749770108376437036889308586444112506"],["24208143681916063080317510361032199435227236597296973916292426627895643114697","3141516460091179685773428299000308928698718192226491705743392666073788015890"],["12459722810630627711699123346738873547147773812976379549215314248699326149773","23633261161465788413363508424865510121658101611263448789185017809490787528958"],["19552157923704789138144542638400171666725571981171410036839406398469452776630","1273241659209584521141865576368095185537662165519742771156625642716987084639"],["4890872730126171616841260874919190218561144028885093371733856978064281465489","6864948810362213567453349564016541581037120825528530503803326754066638573865"],["16573013943632714597859609793200201751995568825848959325963470815000365414565","12026003073547390554728355258938363294551341582790608586084014959645135352614"],["19163765956891510676553372688462520262360313358734849603111704856340098523485","8293647501275659111199334682831612881343779904901104460669374447088612249998"],["20975006271721653298854544102277524147226448817331826657322549065016101087370","5544287662480123562648782617834930597905987683834784109187186764412302719930"],["12728962156588234990488541335847502665879941282591060672968126796487386546896","20809754410675711429131514356705594362734776086306232429529079841745854406024"],["18499909691704698742272287288742788061717094914614333660655055654387102215719","27177857694036142187030941676202901239420415737156143680022638129508894355475"],["24178628139433254728570572542138036704532543901223379955522462763023003644783","19875266593715799807302794377215735950662759441444255839685043767130949160359"],["3328301974741794595844296069535579398640724794101439151982096764124012928305","15403431386092874809533556921110379387176456317452957133345726537979228042259"],["16021500988469104526578146163537410737994766652376296294757158459839198338857","20837920787107733459691413500867247592562611301123413080249515265577457480330"],["23285905134989959789660807446998009396221473417142774597420879138249854420078","22253236871837287307921778252136983655137101838562215111135503005640864297811"],["24905088846888081753300901653775059100599024001162707199482729091365477590482","19370611420180661154933653698664884431243384615113300307281949674096914929481"],["17253990153346824538564835211144732540917414184617797242440744499973033981567","27914194220851089376480386777870025108040819119711056641157512301660049047771"],["8826172013057268934228626320216404715442712102324990433151641214890853846606","11805048772519128549026159154877387680811248530781439541522978727375230031549"],["9989049097751011569885860327642851591930696195131025658150848016859657589048","8884614163774274890753872027408098581964185954017797235265129584132216436004"],["5838908110871652582552248656982821346856697961256856711610384671900264984948","28033185525614385782304934617129303320511601485629559741718180019706113049568"],["10654171036180218086277665362396318102872009288943407225696668253025680900699","2103975176260131630199533291667102050482058510945019264224204487406099692106"],["23814844343694176060703193770633315816666312428945054823555504490962243911982","16635680691359903693700770624796544170990514846550428317947830617307305815071"],["23811137801902634909019624692247157313043388775314728147988417195323087033926","13661372895474911366243032449881457027007083647413365412833991700501853511872"],["9797387677407854702180807009101302110716841024069686570063491611363739696404","19646900612823694905665228342552459905699946717172643393489865121340333573525"],["15028772450421169767800773927949788072786236195374599621811875689088887519589","7442310460532786911306304169685810135798039012401322777619942624075125004633"],["17491136898434716528656691360491432402910835419094493155081713960066287144028","10513716763149466002749880582554990126195973131546346829717002354253147393656"],["17241238716394173582261675357568161655652355054820971346341012716018191096944","28483896299784349597550907366603854005203745304047144601070756485153739971605"],["23250782621442171023779474537368857123455914226953262034270230514604068909235","13731568113979609050340212309965778288653520453635499067662768545738858778310"],["26480265059241033541846515755149192401967548690215133589306258958489929953431","18846263163244788296320057757062165595381687667811372816733012539159837088612"],["11743009895923636911729295739820687588096588323161978943509949186943972621076","9282683378022573484172468388895562297123213302704545900180810079348899609218"],["1962104173956791544474913582619694326792593724031503301921571477085274500814","20176672658153810019081438070564740678838770979632636060466515344345392675968"],["14148935349149502664598875443839221300930204768513980254511227699754053760033","14958921616325840951942577483836732841454212523824007518553303055149084420253"],["13980824025927327534930957297530209002186180815121386858623514321365098145024","19200459942914490017988344403440106991262058869862286415211375797001867878528"],["7508077318743453513511845704104483586089063930098577704558757163663682411948","8112719793746158735188145526371995242898038193329075840512923493984744455673"],["17591972766547545529441615186559804065008162503897913322960730210810833676744","195963869457609449175271893804785572022672361014669469580007357142234263763"],["26364363480763799765782088522870681709379971573842768767980246432889641771116","28932270487018792144450304518591386292180865512773327701792947333916519663685"],["8093017073320284549299140188589640437494531112384150521771072772926899278278","6987399308803074388256787659800271052506486500208242892311903998504984999501"],["9446191897788337791830737351266962827940005097309788161480226914271200943397","19190250206239334128115534975291234187552354407256508676870133354709578525194"],["12735344756101711991050970126777900383795042438968052539651803949044813286290","16849872675010366554295736285859966184465336722935538760630813507581704263121"],["7406368894679371515529363597475492546574631929636291464349917150753762002553","7687858097564307699302944407967082198244749356228497575790406838793718915430"],["26947299207044703712859345767445020743443931986383042498063431645236430201700","16429565515553609860081584810824702196112671125586354086879234458282256272524"],["13817447822774328371352745864511639398412943696872127109710686850017606730223","1624418072724567044388234992130101334108092017210185725282108658897872461088"],["227219749638361648171858588417404936882683403529724461519250002777464983058","17554308993368206455520547134854839460606532348294976629013445672960089048188"],["26681424262033139027501228402086345425487791589093056859778564620169794357343","23157786010965151941276504161583542044142995386668264624634084224934191994886"],["25817772987691748291968591943315429822635924681025115578920093569630512314311","18370276583471013323244283563062882531672651787664656472708568193755683193068"],["16315835518734413473090914307999746183416178510645401979462451242305344763203","25017772012569735551007517580568860382444365997036543093572333291091790064595"],["24187000403173840881644623417983146620053088248010306107942252141715140326316","3798139652246441310982901420646430537590859083127020895577381729505675971072"],["14201898901069384634680012428927343280096797631469659189844153002673091244240","13166584115614995496341397143142734679941722546415793378826641055334596004126"],["5726722744734252735477235637223121932039424677548628859528995134113731966199","25390841223101318735017160083149430926857575020739851277422962963641319343443"],["7199789742831540662964718704676655647074610448626510993660497428501327535413","1505828351040466407742879672032587491180524188539079207493645233220667238574"],["13913270066830341069462054441868445016050419607602389916808649281749216235924","3792909063936075631526521530093030245463057547021933090962205227697447746729"],["21693067976184970792237089229292251867049116746321160053265507716991685237334","20471995458702409138247367723845703020130733452077085032307512836565490903016"],["28240252410393692111963137246020519510394707827048561249088752129438832952733","20668455347446069876962684738727458748761489609118966964124638191180909219409"],["23486248469379224256666816276730201633363024049271150991131440918975261644712","8989279263404311959254961866595748771898933464150098889094211331929225793960"],["8859305747233027362366017423446454360050292673480889027133576820523904655695","11504452205581027603003483137717799412932290181737732987122771214144674001845"],["3340596233898353262972348818634981192245926811540482986941546054238959153114","14302204337343626018611407969918946669786286139791716559093160168885261620345"],["16711133351046488860575144145458206654601966933916294451315848534656362938229","8098325687352328423264145945784405723488375403889165168130771737005871823017"],["13845320207523120299146722121803022791489547510045520134309752390372884065700","1150414406832917811242140883112949745437379705331887622535706751664984595593"],["9511608542812703675585712306235266586580541366394924819637628834184901600446","19005860197064870917372036888464979791929690765504947432076719828728594382105"],["1071276139780957814808046252782391348567962604466450733690009432688480061027","26569856152172968220547772121574138351948939252983095164855741216398621829460"],["6411222970567757949675659758996926728903266471352315568294996055969281577241","11782691547035948074498431605281398196686568633430081857552801608227265219974"],["25386624067636525316008738183942402609865340512217671525035261038274400413266","23903664074024434282354790415224812858783492469201498513278593842501851914559"],["12816765800624403771791749635102862994416288557152351093563722107096318586694","8134331056258434642732804162503319723008788067108250423420723944511472552808"],["11494501901378744741231841165991792475550665401148327450334405589882059299229","10143681988163865921898878334546257645423083663660184723983718897057624434913"],["12627486692735251098810937626780505340060280503238664055096180463768495686638","28169818312120474200775995295011254000467597406941961281128853125501671749497"],["15018847060205954401192741783145172654950455944212115049431248004852810483962","19677231165700830635451084795623602373636177334871959202384487201168667783208"],["20951962185237322493007679290147988398657557365066202049509381817414556553902","5075045144741547909866098789488224654537682611453889609603240892320290651583"],["16080872877962134748264767852306861355373872544839982500367268585661332259223","5936908784427721307699115903174741298637792271625132587608149909523376681890"],["19587119659517327516108572395598270684436937827034280729611114769243397667064","9918450630144873464055122486950755515185086027756638758634254803307405122537"],["14254807075285974246645808469334989288010925531245079629147053695878615267571","2586045319469830896659905197154811898625052600582605590681397282484436305304"],["2042216247640310628236948612203327960765398138842693863190144034974788543016","2907263640771229834183407529113521696843757628115349883192384951586014231191"],["7072496457013759079057656425320371044350207018787983148044129369190953878946","25334422174943084836226290546815198979989410143968992887070950685289793206784"],["14863365605998778600660665336195721497758564979998806969664633767801334456372","25378997221521958404241284353010742769980390747719740531686829266150662994376"],["18345971812433293821809581396851342783635235189523274849131720735130399126514","17515853167294499585431040680604500837183503586997209446860678666784380055851"],["15193220856670949231067669501978127337622130723100983979602850488250930806830","6542296481238617706954338518909295959236600294965606787931742200478519260036"],["10778683602561108051180301867120759493162075417766141606553097616975518971959","19405102261439901245287313984948709461735822159572937357993993414212830493731"],["19277295150768074695915724987402577996208634570765694725354170878114562259118","6527783949104799887815817281124685404968431448271324316307656982541026159988"],["11869389287033767149261578063625292288784893065777313419555887247639579885666","25521999573205253276446324261232498835494136966298366549126482835658506609280"],["15148459695025394717266349789443713561876425976451236516577930388917457882170","23665155119357861902010883648182574152859020166209632574271534487001790290134"],["23033290009276454156511037211998004087289986512644617984538774085636424482612","18021656488974541413529890239326398233399759739729941770804106240065117014776"],["21892677090219031650619345189469445999365228401392159719802668441584959566505","18523180601155632040284033121141224206308217767161977274636851280065076930479"],["19152899084425746306504816823223589554913385580467144780750215250545185043060","3551878102188888179431976506010640322836980670494351704732146287832713572106"],["8721896131001052017100005293836793065591296612451594001215691957483938093346","18934542698420441742961642365973387250933750007326670392655147101957913210573"],["27246910907004068967380887418244449192219626918579732052973075564753850434643","212370136257088068411059520720636850637620702464197422354654308952910501816"],["19633255568533218710163919821219218660071505788002913392168230535183031712995","7471399523395997544049556108252294069876384037432089808250513603439175668930"],["7671944231053697667997817889465287080292007676784886387034867415786251036385","14653313012885330805668625343983865443662901257258461302578017165458735778284"],["12235325832713103344780123992316090613537379927918723162201670685671399006506","20899621928689562663498897664824976830357936467124341535580078004399631767221"],["21121456517360060067599351122559890566472477411461422424361960218229523428093","28545722928078038473179075325809623338002079778380352011564178992049274177424"],["24343667075161349509467995611670330602267146734046177708960117901527598315425","25814459974082305961945016814977668795079372236943492677349726092028240678794"],["11372811171970693449983232805647126035637774701217673908208365872706204546108","21089437248204294037236451947086528254794182908392144785966406342669979387520"],["13895596622416849588067789769683429686378215465163548673705271506537648539875","10850961682777204810605016971628160350380219161033604137503956660879268605698"],["17883996543963587066455304883728565200361456807473396389876541562960010321273","2393234260655850966315302835767563318567848539169642043077508321881160631079"],["5479891876544135729431220989499861894929104000070845883321658467740023234576","19587025090815376621373605546647090019086869723179069027364296188412229566094"],["10723953239451682481490394757226818141935814479314401591049527298923647009240","19900109944473247143288573992915506643313920175254625890296766366628473044160"],["574876672578384388152469025251741183240528109554725590024393409622433336128","3389433562549243556757255659616106264400741285277878963725300863889042166921"],["13744910295750625242505916859317491880510891025324675307558487098992337020255","2225152886638159358796541907848294354998488474971676224750125131594840066880"],["27585312698020215058749934420801739031120441575872142574417349021651595546622","435212016316489648062189865699370683736226425402048585294008654592129605277"],["23595685475636663469523418590868576340659975377292672849951421935801210154096","15748673750537386284909920783034752909657739689175571072054932702386115687520"],["17180992183731801908904436410124824977544633941873542694906929499773735598174","14989526600287151848550861414912452216828507329889416260386200218141059780081"],["16740384422250126700050006154858925425321099268580260079813531134748001073097","8757273387575990662463180616498129678133551425856943382342004924425977339533"],["1166257737630457886196472029588730034512340453169182289694228455506008119623","18539721118046416184022299451688436646470773726051441923758445476930367677661"],["812225433045663297004163948715436823541818271017153226289345197153965979460","7512617090181612041651795659180726650593373998201606969563706730785193026733"],["4897523457788753958947396966773200705929286181239964678628469476287213403531","1041813154816806229081524394209076555110012395063627173702875593321917480903"],["26600583366233021311030625762283477703079705829911338151017866165925469909482","20943350594481405928585956193171738640568097883850171096823821528225966783197"],["11873266145035152440045425504163234007993935600785656528612014945718688662744","18987726924096507401371723229392850416389541069981224134282441702355550148879"],["22264714866493025632144993048064508017917927686943468873229843928644297595410","25411154734464004195668328481937377801805072633949878178698633507703013559976"],["28931318562984973901383001126319751540310102080079573742658394628287230681498","13800274007161812293297944078184069019198562502867341510455466795141560089490"],["10972558927258221178664925144855250757569437129256598471836952875994785867934","7222179100176344895783216109141859473703900079091048665383989376358405972707"],["22379614606623758015747266397621824165569777907891510116711098450329066876758","25102963318434547597927535110474834480176262983418342970238442456003179903388"],["25706730149781049861107901601211490203856794126742775459045325728804293424792","12279552360610354728218112028043583452971896104068023294309427856151129897645"],["25468309920276459060004120039754295839992756141104610672948511375564734646315","14803697264633020762567580111767362506221896129673881160623073633469058351955"],["21604059173603188251946668289087573211636482472644171623994657668131972142232","25100311299960531879625660047633896295795712682315427572763441600172950087923"],["11498604210933522272777045014515234191270755006050388621340365201334173510339","13706708400189178085926044904791747667455290235453551633860014756409906456133"],["11524960846004065658517572990796878822543055410080021445020917772513956706439","13609047859410895622554561001024644125826436287431303741576623856789685757190"],["1142413487727850571658292483267773974233627388164745618637204361552660760654","4679687035425928977640283819086897994622022337779860379634727823486709926965"],["17423769494151002063666859308875976900711937304227115314867155496507614028321","15520804360044309427871429130590255251659935072487805972220517063580350533576"],["12817691706327742426598321329364318172279233478020190894489908438218850583973","7991945056537266899647933086655674790269044971772746215736234084494657912256"],["268862415800946945153014086989513169045493859854048899626252574314340723727","22830889527742544749064370431785275811876648427994358615025929813309252831043"],["1269333343502932681329089359293201124543411697921256054546258450898785145461","21849416254340882294681629439481460807005342477969485069057621648219506305478"],["7133824370251941315212870631311196313869155463163954445218219197849622681877","8781800964996276692808425344878956219601496612323749948699329633224510845396"],["7035465569322527691013299585665177659806731557736535238617968800445060340010","19912642425158696528489466059589886741542099545375032148619879879356730606230"],["16651514786237475903754757236022259600714314111194036224185763449173875506955","21696319532430576082189389604853388451206333965031286266254462671970932544640"],["8242662355642437982755645763673555170039121219548656239728131150819011349332","13864118422579910260579496647926674147024121749113413879936910336126829655074"],["6724348798322270135171382375116128299737354694900922174079639576670103472966","19483074032929590668753291337180802806695873329553489702182564419350295575960"],["728806939102304758088158944210438557452899553756564137424703472610243718970","23129912563250412263499003359965210804279022024501520753039329456657010205928"],["23965859985718687989292057038385955226524292794967450400364578767019176779967","22542410524349063134690569840335770726935680247266656400138258870788843051115"],["389803531991099908386073671830174298801961928460795973556227696065661486136","8548524724124862428866086282644695067301125952392964738207288931651874549547"],["16573343390389944540754951784176154539329431153055790397850570123188182565005","3564550921351107319681819289502902046973696832837962444601196878445719650531"],["12926376269207677678440692696336881674068450916674153504970403239584727227849","21180507156993574929922363390622730943932656631589805480433799246889273816486"],["26220333946591417094038649308369572722997139968366831606720411980777735432246","7284179410279847203685393065143936791993337606956006405350165143035452579496"],["1300195572847344491330163379387192233402922863289503339777817799867463237981","627289599035931150147504079812318836219276180375638599430359484617847763229"],["22322480946668713569307930154896704354641970985851128018732496778545658251634","12450335150237685128991169530684459812032425877179958666603122071189395112776"],["18287630043903177780838137803474787859128572411566098527535115787364548612718","9591648539120167960191750589012976001449640848710550745454817789222572195578"],["5366394650794675486356398324492786020463348874388071645392772703080280571862","26334840716541688492494865517172082240865996083272625048923696789545817409164"],["13948827443960613941161057046625577135140569729281966102244885239752801453234","17386095861427310613912158129367839715292698223413053596228188310108109285738"],["12874225334831228995949958152325337459147794829816112117689656691645421973910","1510834774801782491564851880697325876048961000756744116760276019777488376519"],["583480162025185469703662141229813574215390234324685400477083472232237149721","3652594633714834745108290275231564358437955408757886665813802211709089755286"],["8876014582591426437760114410347031753529055764786449985227612553984169768935","11028190792231539686021139209877564273087338716188709231969915118265349259115"],["18180745784581151822539111058147598350524852516865848104477094365599826126839","7559293466824219468086697858594055162239102008257671190948332720776929191357"],["28103245595447362157974140700912591960776456923743476995586385074923254728978","12642288767792042291547212602265226094314487109541942286288231755289227986055"],["28548865728496208254365187749820834837204479093848496166508919454701900040196","26208722032249034842919946399238172882505409562216424136122765493740279702561"],["4470774699268413581250431684710064984825833823757429476707369156920366146887","19961572156169800238587192601986095849544367099109867882009251686621598071849"],["4359544071135490100074813475017718187720269406138038856770499368028948786541","26229263697944686889146466804820553795393375784341173334565093494772896372545"],["13584977705558351876880194714518617910807560133928764034130746504845270865951","15503859441734735430684551658292119262627316642295251347170776852254534234279"],["25175895920664071590299474119748109438771496782171354012893515998913974032842","5039335031547510381877944579681230218087953464139987938191614411924294386587"],["6703906198279615357125051163594654766444429956676670910269510626715561131461","876670360550997373941572771539656340923626435331570639999529610365551164099"],["8695346210527118385959094993553920234519589249962967440316911983128176219644","17570573693521029016648857160553786109022711743285392013026462473325342125751"],["19676744036977380730207259210764498469858791608343328439321109114751120395461","26272939111036684036705577430740245963497750897643415160845397716708240569068"],["20974702391532194879700255639585917358337885709950548471088453341083074884591","18138972991825346021459181884855295012092829965923534654427668787676520670230"],["21165216366621709535154074454318960346406258245698768509174784460842675251401","24177868476156935018711069716380496080964204902161143010019962384522337647816"],["3555490024175599604838660609092260113077928728728131457023595932042663337419","6955644422097292846429640939376489711057538518734605721844779292462833676788"],["26192890324481196046502433013986077116914622426496033885076740546095587076751","25632631222375382091041341516699684928207754191725977825628153158144022450277"],["4692939658822613627505716456744800663993222305204143177583037906490447525596","20359031990513516867408585838819762815193810695355893247175517370013248032878"],["16784836554252008204091225988096556663235366817162247021002919211132586467626","26029363227310692813726679784444946679038090514840901571616551550518608325725"],["24267214496391356596551275060261326703366378825185644341790470046221287653397","9734208192140417789497194216516582458808977231738278865725019555744649423636"],["6239175622380993964695747979345845845385091064693755810879106360802694086095","21808635748403950153619838765116878644433947658983447316798963322600080235412"],["20382978987971939367729614291661023471291774780742625272429636733409648964577","1188759826864833149821160042188350890837865933655617674460134139441766846661"],["9073906853252171546839693001068003071294029426957549006490622015817636384708","9264178559062995591244652296316508769884421135613472529487776697760902529789"],["18593711619112870408322960934024261960453544325485949833671571628385963751927","9022160941131939854892016926219828376974843708542691553334294432758142880083"],["25501065113544570225764568586278195929610410175582811151762725074900472308824","25112931688705500308326284657013191993627228593554727437313238528425153644754"],["1646140955206573058989099966617975527137170968203400841103601992475167330844","10878904427367788052384579213070725541572219544958164864496017552276244704784"],["16089611189335143213427640512194982063416480288107184060837621624072331960300","21649613187743497578242727486317926276850163507455171340874895035832807874182"],["26425153845111653885322016195573002365999996159348995437991365979515181775279","9011565733723579866319471051859735535995539141037341697953715503631939870922"],["12225754106309763841410937062787479096086561356797513078837325573431355964997","2400196861550068957617739668756017542284640010296750422484652906519341449972"],["23910749779539647290436330320122070770087731653334345173484094970789610972562","24982079097170744082894154233021053782712373105511872557690391159048320538614"],["5199694902114925426434808753528964992055913535324479267895177033005344037361","7212277758720255269589515507020962920806450273959986071921919461151340215826"],["14396132519355524554353439934812962181958598763738686587681026242399206723305","26903485709512742540469512114713558158797009706869257825191837849337873933535"],["19398487747629313678626724868652049501837235260149427508971181865246104125424","13156806519925999287877773195083550787245056590713638738398018253314891257673"],["15298673146754917998825731577658608991232329428096998440422567050330971914671","13030504554746896274737815113285613532540708739893935780481550361904277383932"],["27701342750330263159936837019628071889133942775484564732964611484739737191141","26128886782332940541577033561277750912423283270254002998769205772777013553570"],["20413431439681800317279810714680460877285437342915289720614647552628471694465","13875564187993632354615479156100067491832520416221945989742265626110724938833"],["16239361251270199916500314793943586024030905950039762223894558046568007677957","3749838291859030313787367860187078931197414447770285606649268406250564171090"],["3068670239344408122205874834790445079911912809067764946444768305411306115289","13282344881124352952688733618262680717487816946744143047449795365630628884169"],["9534186428482847480644541859029435135683408459117262073196100494993755912872","26681063442300977587742999594584431170148373979390853756500429468890430161871"],["15304873227124570283368169944746585421326811368410339748021329986401004651943","15412919558756919654846756797885446002158951554448351170879910096189275609347"],["12292749506988207233088927048005592964803565717020015981737249235642316425427","21678952390578257331223369298723379657830879576996468599290791779832435616626"],["6888095489906048186893536381542639523101194281611304094762236996556513199796","21144274249216119947580264776691609070753249068521199880498067838130347760433"],["15591172744689691946885449488020708674998530371835253611592010511643209220795","18233086384496591011157833679049312820564720616667203020003084762290460168980"],["16260900839271913742088834360664576799986454617431580203632127966235664235308","20192260216506731247385987369249253688958999726352024132635874627065008534166"],["5670958521255641831751377776128257301545386589474819913389098071400655441436","25803476372030852470502854589900105241398707327508591262078164743658587871060"],["10712543629605329121388535858827866130823013516198816830038985292110875361741","26047476969010380982152522679642369563283229993828357187628506200778334155375"],["3926818539187796639598426717016042070567099624521184537975569651432299962049","11032825782122817872016468468239151742968291706635635535434108739167955756607"],["11154285716747872924579059348939778433496993756782286365137087976239339247177","16230759131848544893316086786677583410507100247239446910819020868650560748414"],["27286346168625808428078373425126143126705672727873063050514690871189758614107","1516278757753614285644422281778219121802629883544902866258476585451916000464"],["363525972408817499303677305427836177238591074559699950542393104176380749200","4148850442540822756032282249987868902294195675966571808324563013908376935581"],["17475488003772876270419324171761523455424360073854229107350875659396242004905","11368551144304467555467091125641084568242513194906737384990990613140692377240"],["20081347221946666427344635219718382484325850087235926194984361791324504479994","6475242324985255103160325859615355776901806047134009937725424806026277165054"],["17283358157332272750336101126456786992495112099953022839158997192869826024772","26998481558443027929312267745608918555000762471029488698451268014864902117315"],["936630480000961243290503311023129135434262843145975884032512555572012996876","3963497551405928377518291802230857253313283370926368459983368616473796383231"],["3222560844836844807533082316221970330485318146787870326529010790457145695263","402561192308922253647335615041771889442202429391739221801988065117755993550"],["23934613731810361397354529995492273214807913948506116410447916587384690619742","24098177207662823190138092469750322204006314520474032457683015767215471946172"],["16669686361870421981530309912407966462444825177286215393764081604389578245912","8241612945296418876555749383305512794793338878886542270043330830434555402342"],["22592517607356762159829588713500124503823021434802355661486876738118667392840","20706560993012160669669371960622125476754716105669432019918385576633250081730"],["2055126830245260650846933197567386061913616540036825321041679241513718594139","25709400854195551977615763515356344566375678164846808200305816305684390336427"],["3694983509512446667514619780189637042377714619913407442399587066016681929121","14922085855915803130878688764083173711000274233813114228595048432524408403676"],["22513034921863269992735011924577033361495068938368859417187022070859326571153","5756522445451389111573450959947244064210111158944022807261108203606735737323"],["25912123144361133505922651573259678658184258010182312604550461520457829682431","15159845070363671356168444589486202289246365091355192601647373283879492339148"],["25397821730702261681555274098151578835326103058332157200960930698063796622309","25070593474128348825272922577764912534062415797661242179073596797465289116323"],["101182344175528802610854677696407724566775281326038109689429864180613520144","23765577424139351811288060706125726886442194453187279459576495522562077992833"],["11074592823061966995535588448654658529856150974170397015069737095160526924563","27532133407408583033830576411081264514531964367339111783658721605806858447722"],["14536910755533241693379634044561898745351164424515707252814086283591802178588","17958770192868924930690752012421435109779143292317147290680923395610241129845"],["935756269286723850422194267742940488444972383786672399896569327840137002326","10164658536367975499314353294755224037307675240285925363550809385648508538932"],["17102305373931252051740505330639372763473023435529871558307689377063091642735","5545821256182079228506292407834669083114552851874398888883563210259362509786"],["28934238510556350274570182380641183834054088425589319138704990178450672190543","26107008759897131618704276403029740824620452926811026840394603490034726980945"],["11911447959874858448357018544802596441332740105358292642625123926201291219762","3979426598113278595867919957948436404533989688049152627608504731860985200719"],["4640268828177389278733546599386825463037720095736844931529542608915282835613","2739569414022116968651408422937137602386208913223811707116928939788089993557"],["6108621667032983056762162542044783139222485048611597314493805271642498223024","2872234304888496175741901432547685825515364460904333587310231456752558907041"],["10928036443204017060568736369027141311100549973328890706410473862052418180110","442842227582448918823117482066151897355118777461383304417135265887379676444"],["25402092792186111791856383824131098242340231204988902465641668756652580789563","867974487353618551798539180641148846495160741034272614541015129298490107579"],["11688268333638652186601672420321919254153333576500547532501775354360333230831","2315893511771175501518459659225766871520337762032736261874872052310999393276"],["1385929287901412549865447598012466050914178056889828464174480290378309390233","16328185193594791701260588740693857971779120411050330327447523297311058185050"],["14496905008611805442026515627190967530319674809917442812226184133170059064248","22113072999559014440052464053166819390023768089158070104220586680250822782326"],["17397086566312007332153226541147088556073076690374535632563407878186196300526","8411253136364815881860019926090747665999185010899529265207722377554496276413"],["20706767503979784531330573052193535339616847900883380497352454308576549473279","6823991085043260247478611363622449938806078295961407328479488768478691796389"],["8153031920866317466477402949983548853791995184467047197902866252845020667668","20422213782481465751766727852268434724765020663136757165381428181305598560007"],["11865190332968423371155395400775580930753198625395263578437330418397139141169","23315518724337583821910185913344117314172415530043539490169044988558738821658"],["10058910995508924428030491570724462995013385922650555610463078387159042880375","13737824522056908630722571184042503316063011817098945288480609324406868475305"],["4282580726653178983833502269861808482671798388903505920077361129565005571453","26642740197206973609024982343688708018806827601092698376732408361792095770112"],["469951709873711697956175085239106798593168642243959193090064774055409634391","19671008750879257358689185250877605540998171347305241181994080036777084928803"],["6688237978458276758494039461123047525943411883480321440126549150285210482443","797449661581508534827376712807391715643623603509347930778996816908385752422"],["17112471201040886496357608907828727515114712678020162497270552611701031656244","22347875593095642065333907251947178052754185901346751630634110222040261787610"],["23889535427556648426897637023394649423394466464442100784538764455923906423243","20510409844787226040946652496614636825514849294857108820010039233220017862603"],["4856864721430838711361320766035267680971665722538484136964992344251603122548","9714515062264732692006259409470273456675125259948621833505843941448719670068"],["14103870810377206670865390785454851300378751610200555529715881275553541020100","2054337822373060616223411570143169838468329539944437853450849089034962741632"],["12952758090894897650523097272089543217449970457437858264340162434665100452871","15945045259874465161372351394988160273095978517081929199458579839541862099398"],["10958516644685908350081851683213963262528270010085645554213271282467033588875","25588386791284654240594566970008536387188254461815793086293741544174217442532"],["14867507073188566405423254642129121747161854880982719788301552292459282110979","16502435455105394587076870221901357724002822534867900684954415377883401041600"],["27269597764271934065116106049903810156514080332880975401031280733960483642334","7933349135018725043367718848668606572385269518381648126429739472168109711058"],["24067138759129981159123689972417430893431020899137629813508037195407490204542","24619960555134275271597068374101382825066563599694031210080637176191986573552"],["23693012187080124143853151445681027032668805976596426048450696938657980120165","13982977891616081882600718562957053655475754445845031990381359579462799036874"],["25370619575140012228840668019505901679148040675703253590624450210363807115786","17396913580943428469749886239592898817714280041763987048701985423620183041700"],["28555988796354188129894531437734553644949060012052151762441944512136419987790","12143091874564750258589811081886314853561056099176145828379191903047094133434"],["10367222906482515179883441948482131639725969982471623205886973563359008910270","868353651345701575916357692533315456739412965619956564872722687396465598956"],["24142548300196202754403110390086370577299934229807092304155066629835625635518","13085010881422877177256197792764105720389475594186947451015210827258246837840"],["1116351990744366996774998387414844496390661186857035586712785820197314084540","4383836226704494544251344181931860871432203101473388074931381390057955111408"],["4965384367445844753289407554791143478483468939265630011716609817526669726331","5935934324133294900699634519873792506761291527785434002882645509077458907799"],["4404386048066910888995506659147046809806223214446112378002856706303636879254","5587400503438559689603541616924991824347635944841764793506222802947368628665"],["27428307972750894516261138061448549726982545995451709674035629316885006542899","28428910358179027831266993809734585630133634867844328410458251207155545054493"],["20737163665296609305353615276445477324731428702240035404384704051112332756606","8994978694210778558005749887076066446755785515792763147827672646743947073790"],["13983508250183451036656726151072294865097720827143272779312992789050311874094","2151060832028380320505980516957552071147135902299570666719748589923472954817"],["10766528622305638570891608262823383897940279156506122566445028440770635132769","24980524177024661819533227005242488660621352933308125458460333133157109634588"],["23449898718173711538737658151318669407728193692375466513647344012408378308104","20258081191048079351689576765635158801696414892166108636174168233932145738466"],["18078158083960295545764594581035136587276524549332485627262341569882465317852","22470316971187300196177764475148240523022089511491530468526068360992340764278"],["24517611696529042157455167467408348626638870336462079594618907248163525188610","20781382258723290291629076980632789200819079066082630423911767714537808854937"],["9022831143764644536732054506458720010274360206286107510864265657233810945142","5669437778523867763366437995310691718117313577276673134354845769967975170965"],["24857707424652733011732521656931172477217860853095132193658676167980629313386","12014780087969603665115375106691284325143585894871622586805873222212060069345"],["5592777350098636396698955185510802145849334489582446178383131910644079829446","25674886236518526833188597952793031723371226769122735598633191037724816277128"],["27005879696129506771309589668148919491287494924017166278885716814986069578396","8629402372556868711600748218740451038643208407213247495050394886083828586198"],["5372025253223825479128393744383449261603188554807373309917554470573287799838","23103873332963734630080966505793679171196417380675758302987484105828615167585"],["28333783706267819775100904194008294062423588740855238382346309074568504295797","11527714952463858863131274820105981230259038705542313636698790477465707598793"],["14295256311345021645561838672354380191189693694770134451993489184497949566806","6801059314654532051465732145424995667781417770133017627248549470325350280271"],["23308669873929976767621335749284143701923314322180745383515038334416380751647","18685940505974588251110538583973362617908600296283307326204772642860097832396"],["13076669809362959410825608675720575031756727781141830961841420532703973143981","27137197405605928784120944177685978865013040617097004947901122454441315283537"],["3971243193837996791756995620984748112777216196201074192669711334052992992130","13591947288312281600973945842996701791914396009257364717337765558509495508170"],["24653853251035209214943794248586713279096655879340123604586962660725926579065","25002607463334480475262790115572034167779636813038163923533352730264254621410"],["1961606636071224868822593858790390214922378586908086008721774204096598575095","5070549819626254262403395399912844870854119229639562018770601400040725918406"],["148648870451833266636982272248960479451525618179564183800790324454752695558","15507771787123018405717054566505930590789265889749497158009239892885020946953"],["2497303927156051995979630794357379982348349877537304381605932532125161932153","10621660950445600431956770683301969020152801685646604249602306171320679647922"],["9634222274732559461620783074773864907511945099229169856479460141614591253535","4300681708915422205651052843032847717431015632086176392871968980321781985393"],["9501284248046611620531119702958493940180230368585770523651154559025108616409","27563647659468780285372401769796561664919752610397845103178452660189466025345"],["15227108309593305934305751281167507329993349772392298271084853292625009986509","15055871487790802610418809108964043975344689340616741369613648386330643222699"],["15393074546191603804693730627502532421416986893349925982864716097780648281354","2148473980656170047100039227313381599298738817872174150553099826328879992654"],["20884674432445296708055798635287170616130679900883130840879976412997111536872","8296514399133430907238709793592212063196761999796986306589289508675579332680"],["22026171162122474507092557470985676866450212223491221584493929455645752974241","13013423928144858003051503700225123100655940206031211808279610744756428144865"],["4652210766051382430962807823394018235810688584224610275267934766673453659920","1809815161528338891142780465283329836701965427520229993430165042936034938063"],["12968966285595970390026061184789296407122284891297892255283058093283215311206","28738752319429662688633798781698637770066055863254905719915077680100680465920"],["10660996647447428566662613252164661269010344872109592714555458528034589739281","24573684358384942254512324925857125460059236079858903081019611492393017669182"],["1733450996675054377427714127356592589759973920959650871617662291797537396310","581580684870557544523254510346436919441513287383047905174683774731891112749"],["24518469674986011831633606739282759923862529724696617575060096268145832211957","7561266352990959675921566526079137903930504591112210194923680574878693899927"],["21912157348606664912658461133352763639870452440742541491497708411729574227978","21521812159917780914045407893692124382341664143882618176257635195640084293471"],["12524372754623127121447984863667495501046867311866868547961051429933072844943","25160598764165992757054785394747013783888163317375318000723616820329466963662"],["18936908641725106803021725882087420371710643302508959834935657927148324893785","27489586328825536379771279631422537266803942643877041705800288623233406995813"],["23358939771438135010983940865271439885181723625703129057239669118862401965654","28304853257320399726397831071380277838953949700544276329373246408218856420433"],["12575146972235870908604912556290738666177152776481990915551241024520967562072","18668931509165368877942889503947439979455029295017643738301719346845308290196"],["2330964677254318762690209281838614473805933225185745239814979697194369967722","1044559875897178001484875298504633956405979092577433326119041957809495394212"],["9027356462476364842701697288608976431605130784981190061035457900515439410201","3313771275177610335143783274079523690539652901779822494464754307822093251165"],["12243984092238951443009454341568012269613112052159297528496275805658958498936","12516652614970370378805967291620458558940375921833739814254594503712037461975"],["7209171503641705479790939081222689242728211603228040954211301628567457851919","10826357694409084871948185958606719218770961700161272005033647727647337396631"],["26614081002854495342475895686897470296062128363175048441092673356718888324606","6585929784613208739387153334183225053485310309397963511725458199537742198304"],["5803668144341723300566213764014602971514129077539188180577925286763092077434","17171642373083553127407111455247838197917797647922227834183006027128212853294"],["28653028581822803887061750416808316371816430880267670556308029805910847690165","21604168489519670042792645947233790594960689774346247781250192233898814959098"],["15564372108839055283421501268915126102021303847908784188952397678895959470916","22267016919113182030838831598277281756042359912021417038188644198265786790509"],["19912142213123424146678475243438050158668479189683465225696188134130494153660","14781794113841280247461894667066237372718484454479397649780060288507743075311"],["18747363944488817927670288665390343513173804955843252578258962529721320755763","21021420440668671956508832067115720350269047890183774930784967574496677835885"],["6843190837479013250756201435025980391244031844964042680054149139932945417105","6105041434761384080031700645067154604382378204217916095280452522488291808272"],["14246307936422309480243190004864013990171512463198794365308006976324920459596","28865355790435857633480137852817974451366566258732664522548433415737730936739"],["6758274632857152247332523342746258970834256618905381881118082427199745962387","10451889160452704536420786545494624873102847392433609205593831404818284222345"],["19010228571288949473804533573920732923098751770580273910721941724399345127216","17109196467682308435932053659087497667275881330490533520788667642507665542316"],["24009496655226693108078711189269144194514924065800571529319877186699529936147","7599496064178384777308962285719105859947080147288200886698506991243152003630"],["21694904106596049603549182574466068475266401297989407866257107036239448620137","19294362065604260778102962231686365530427901331721817765829683436275051424915"],["19622524245613449192035225542045469861965998046310042698972614218788924121798","25066236853522000598886011685602079976401822943064477805380147882333401625880"],["19061517425164499050286776881340811653166748065647590545766750596114919496364","6232793141614002373184668114769994918989521151644113548271069930236196292846"],["6566254246786842636831459698411554123665408775458245681567990258729919523220","22666875440792474418184719315263202691281246384321074824340720598895823972015"],["20908616679896624796056437695652486456790401776098191372554896410336011812915","12953450437127768344722642165015879195562568042944289041275373002709137013380"],["23898229328411484900627381055933207513052917327442554080440874414347022677227","13979317742838612186886248203366721460114688515720514040432532489561145463345"],["28253677222004326451608858538088782264988298253209770127694628661473957223358","28351137133214240402690329512980132476981927415696594521188065168466443889865"],["25764589809475659397814303305742754016822751226521654865261863777168638963025","27724722187402197976387392097669898581947335297935627898806207787206852247613"],["8671997203065181431683784763289617061964853800954635546823262197247965527969","6444345085433765483768996207588297559268220179843354446708247024520634200157"],["24861051584325069043140185340541632602313400890989380417963710051195637804957","3659799465285434339308048266605928305412209619444200129001144728234670783735"],["15695243711482283285718073100482559520010658455048092644016604395946228635511","23711201610802160669248518228523305625228516200210149166040127871305359214085"],["4443984513488662477583119169505583679527667266049462016881428499938120398819","18405407607986428483688916693308687960154674404696277190597599899323497643130"],["28233297820786051772190708826178404259944911847241279835396697129082711657493","27035975908185029440472284726446434450041287264583608151358012401051239329399"],["17304885279808570671307338877399460450081042557049194338919197650510017512141","14624394550154214071905330854948177726849258398931323897251378699048582892633"],["24051735028091825650515408680364113709922733532479818403048819427640892725099","12556154901421074898165567536034737939916313057045197236775707058807445055025"],["202652535379018680603206874226453296733307145137461968555908368808083822750","22298417915349244092951274440119122970507088161906641123287692068500042679267"],["2097962786394111800983572515109086186851649364871624790805968775495724177931","4598506305757229383201358485163600343370884539860561028961052899477051409332"],["12201225984934601608182017812568574312209967602357435628768963964342915529227","17071903515230364360487730229906791593369702675696998931327232306822723969271"],["16413508272406401870226570221687075978942270275114632023629048072449845498328","7499316125897678637607537273506972215343741634355126389178555976036880050913"],["24643508929977171776627738986468747599468574183210055320443198154463270997758","14528181627399813744267067078686113263294377220639273091026795059897665802610"],["15931628562970663953744877493452616950165817885937710362521898133371368153881","28327724038171455576979571732977275839554427533433855977561233846674887101385"],["27642519396629617122784559889815546886812114322781626987890397367503391598445","5613210066926055834443597833351586815260830592408798380068606686707045133838"],["19995271680339033601675842238995221807057866411520242022206291425612040088864","22520191801453408702626795555969985786989662975168681396481699532815474082291"],["28865440293237617989870096716945441929566410122971066117809229410506455877715","12072600667190821773201938339838519844462861095095608411983161589775971774427"],["28284765901755659711122496484359040933511656379419175863996274308877185998573","6135858530388095229526383624608222257400486307085069976245998602593419814356"],["9111139296205438930461852075864041961340988856967848464106218629486956135927","9229236139796567392214570842043324874785416028664574654898165133351375087669"],["22816072899543578392424886476911557723793259062518133209509685866273680045443","9895674120711256380526900112735273666295702496886292119639891998557525053153"],["15764488980640258624178703841829624644991643792183027729335935177039604494742","16624787963942660637184158773172267273933048925640431482685856139424676921564"],["2371842201229780995179435230409750751600536058925871781043168910541846118648","2444759758596127837567365620854813946736613641322461085805728836037334135405"],["8669072017982617579956853494663305388894937394686575346711306568952899046429","26618159104159772264615108631773386746372205744945199094354196171843726667415"],["3423896934280729360828208801651130518859930734847609612922570049132619499942","6315061954780240633242591752147112513882881827910798282412918578570229546168"],["23884074659580957447139286993004481368972458672706591997826021827108610027022","16478390675842032871923470895141002528849690901048422059192600505539952795598"],["4988308284545386249036137517587625571118090138157530561728126349367493445416","25414044915966885790153292231360605172144353436331911066739815250088707042343"],["15512243408882688200969400296552768991906092988539269418449638038232577868314","14888584548652227527059567259355539008067444132713981539357148566899973221233"],["12827220820130103120883828526598220652585734174758327310895187537589299861884","8909063479292018834380187401936059591062586634618464848639045253164875247778"],["11990545300252833615847719482627361227863289011996042607433622605275234733220","23353977166638497222498700398600837256965729747689851120349866802530019152036"],["15595488156818696840395168336427476893458512610326176280297298709925838719551","23103193456716283257768778908820203542227133661068390022017286704386154844357"],["715193559817178204055818855086798589470369762548295849620634758395775688888","20191035723358402259396101279456588855006950970749233706041955039316960107845"],["8970459742082066342333438119041662613036702950384420576427250605558485038702","996627158694688612610138991885431702295751026624116256017421331257841290704"],["13515349990904609119259269111789305725804722060929940779350806436441035599742","792582659961469092913757384805470049656743274236659282961772256254828735016"],["20655451626664286658506522979572246208744006589097181274695790978212988457279","25456948675305233176652284228441011308867124746015851942060178482430394238396"],["6094927933230071719668205824642845840428204083476191887305661164626364086813","19155990755286045187555842602347008004623471570462264796423866489358454024721"],["5064645408878035143491007940976011120983118463999616510741749567173541123217","6602539654993829430257076022658148665056833098733216949201423469032147817524"],["27770006818947579071125586988081870824727741235596714660294139983698661819839","24707999055868257298532971130539074173221122771184094242801412700438360142757"],["17567636749289576356646040529513018691133190654079109462920080848607657350059","1819103753715542866915857678320674475066722689186929505506899056383514001390"],["5766945448256448902006581452913684533362630461421734249423350724785238786984","20733461082011385295790168287106409919932647807949561705692164405817915902400"],["5577166387668906321923118583283024742315005934881549514424053126797167262680","8596731541664341150376508880632115229803146007475400530306857152637930239155"],["11818069100939633724798503003540075559668278550381439670062988381473519336295","14088266532080500818621244556164431522034778413531062412930335157965339338927"],["2993901465601527488230445167554781277263040952205573195746279031902454714687","20751739625637085458844788946340974157734225397215388601326590986619190206478"],["18443744014023067417352939742699518696188035857865720435789640762307427520108","11844425145831390348474515419994246699970824035294779861569548966322910769249"],["25001231522354054854988709331176714542246061752703429065942717469682912677389","8191859472205410542926649950276006889127486577207948664741457524841257169702"],["18127050270323075474231152301246291511394724383239969654577581522260966743079","16075760249644878654017846324500387641597424616546398242882199106848584998175"],["8740312907718585413494042212284478281914386498057343591768877158195452219676","7612936895335703416064613073657961576955891260794292634055226225726957170555"],["28196860200661310901918767370220025596026168329615374050331965414173612218710","6579182720179746915977030304082219350482947182380242834383722210533967452718"],["1984178612694981705125669399502130789405370395743450850925996179510517826631","17209129590512028851872283336844694250866074616537131421041067496288535467348"],["3625329111943388681997782873899072441675325798606353143810567675746058444902","25976105058397531855642726059754001635261722863924840938494927868876140557763"],["6929650650495956018059669433389041071781665822809225911420836931370592545416","26049923466627445004969242716591202330170479949522388692983589259148238067989"],["19475919301690182899114289368769291008176125391797521216095298826220703103053","16215616554120721247481766731805704867250347907519817740117055788495119169898"],["25138356361434959817198910405519676394520201073445796732198558134764438831","2271919443929020669090190751618762690580099446240619774563410319410733365986"],["22232895134851701514204776788547875333713690811756690326204375255104700967554","15231299079254412020385355994744021602769292195765704896918527674943961103964"],["21475021225473416851323158326441107019103144207702505927522612248551391674736","6593614595279370892697521564870128182017849160028120575035723837728651755034"],["357596188535866725387089258796817295074786340873601070753886842018865424874","4961723674525103171633391155006446128336367942734843154268542268293961285049"],["28571253604595568948814767162728358671943796579931157461171580134318988305227","19913074068720765547853201199053561435961672262984303587428066709433973596380"],["15787142208014877251653160727022976299367981928336768626697666479716905425962","2791884202294268409474035957454596462848415394984761994031863111466409878808"],["12256035606197562756104029660097291828676597125104421353315879956914484920030","18850828613827898432390372970520484293736296343162602642003833712423976987483"],["18615486376707989468120136982370941974754647745998838978969554883042469485433","20076056204564788795718445482545889278023782033442436973708877683905155560808"],["15393195769788364895360139898249633857821347160774128539990581932681515375232","11639812477666225131339873583204784745111679795371334979311190474460681715322"],["14412565306520022599261276672128279433080280010338762704892493802312299711883","11610149130549437841580396742860476052015664652513469509382389935927153210023"],["27117978717884464137924802281374792214458386811640358137489659067014743834076","27630205421393995125951173253390803848853539931507164462267582003634286273260"],["4886005744514995542771109815248240858698261946800496530979544008705330597679","8270133972880820207575484566203600164413207077858975481105095803942114691545"],["28924087640626493432525187788139949061917656326145022370443088675973907353108","12850041889966202768502747271574014619693750289934637707576641679230783168554"],["8288355169070396216783520282205650321671368374459042146223030375336004385053","13677640226323424815974976066865118431985448778624922014685473440855655362362"],["9035416752991516971123185783798862047654419307236056954102515851892951164640","23908996964263869929587282388125254426346506869765773338356014686120203311620"],["25738040066315512718693066984771120940167035677491410373209421490089558663160","6933582489372121448955227784331229207469581334018925839981352607117419524317"],["17343162808588380393504927988131899801715410880417876560991533485498191760828","2798174127498290029054721155900981819371713986178076913086174234791208408660"],["26308320733618537446592984926221896461902644657426740916180758742898487209527","5596631239432250973086972896681359938308054661382114350327853963777011802665"],["21707168081460675794099504221215686831900484154941242020254569633027557431253","20618907450392941635106000867681618214972650932705183747901864116003946363748"],["5439944772901165773281631931549487280903723783361888429325425641490053424681","18679994533931436865991478529239157855424177808308161410770961775834226667655"],["23683630236973531325625487066015123430958337488993072839595470095318937772187","16293534401514123272911875539670439685622791835978277070186767447442511611441"],["13726536091953273923067598345028884047647304957408859533473317994773606577262","17174157283787932793025251879466244836384912365282789169815141284940456094669"],["17770954181995900469723430974257411417873246183060281636405435832121142277810","3004622823149940060544198031279990849861963241852961392474569043744989830431"],["2388964719062401221423246539256388226210712264624119585293059112670760595484","1594573294913120391366245488055906958920462039230599680602971207776064874862"],["20149907074252743437057046489179346415015088146057396345035444023593654253181","8639859313891501558525434953559816759262107499148661452857174169971156991175"],["21652327261171018511509806350803927743169669305394195494939599906983458465667","6299794116696980231080376772656303737905157425110522228170566381540039705383"],["11343503480522367198827364174526414526755802983204670745132787786592110607336","23210077938962444937770001794956675570913173467938355671383785849526753528057"],["13021647776581503774363808744512614063571226115420028584839852020464633428023","5919557270315329297259647073076536399326211285695864991511789057294443224394"],["22098550023378587350717530444082695481706801502213973817159174358488034634893","18391985503483404692575570327235148902679076573729421688382598652396186823505"],["12989583187874074702332518505844939288440838143459136332234731185404824473312","1885169907508163834690826563683356049343303974702235330269033259499421905832"],["15728793461648287470276698946502355390295622632997300727813806681795126744861","9580028916167869883884114866236752744795619984023243450693355752497612508180"],["9946301962795386989952043507119634524145818243624766935928205583011192930395","13883636087744871129065184380124094509099978186378798685214252410027747805357"],["203059328545320006756900775526567100201046247057344920422583592886120315047","9500713561046682530898556255976165123562227711406356166989354964798945512590"],["7473631474423678934568240469854056496937068306854492906708207622176121674383","26118066267328121972690328407517825851529750150435490969481997528908040124412"],["25779548493921971746477087813889861950950724899538985130804879251604200526333","11485901752842774710961030426459393942027924712733586885165205613331696489221"],["19088227068107757134602505559918473756498899730947835754318906855380745581099","24490732597622336647698565943596611123676864835738813371848606185860076838297"],["1601009437975920627494458156858641953278182700446965283715996462610545804226","13774535105837610489694494361633262146520929282383169824305108963481382197469"],["8645689653441858103083756792757125185266111206185663274687012124077415572301","24937992493280736632326016176644769437960215148805485650812818843089982248969"],["11212026030441919371022403470455525666747873610309581597944270170079494785988","11165076385527460348172530938547204177665249195081137727311083095742723220553"],["25870542216116971993143963919229599130671205071721094333483254406033934858839","9526092748305643053574170572369189365119961488259089265111503248799190551791"],["5868218660354870587489079604906656186305340393986994097435362189201872248601","25421490458745581242396768728965340129452133146185072616616410679397648775246"],["26768507809271843611608582981772315163821758014658728558024119016487339518681","11522092851407729588331571557058372437880746347680761661782171712604488160069"],["19456715960180394543029788233891309849130554093699177568176916072052477835008","25942251503203083850410880847372743220027055106429439413337726804644317926439"],["1220918699560960356623183901323842338125912892689267156743181614268681514893","20565661224576596312116277308225750412909186910601328635258613314014118586887"],["14718105304230455115226261951745198278507883925348674289821537192136080040376","5427810545550225286703129744339070298515850650808715915635527364322956237516"],["6228378023319247972635040731853224317536594003148961344066669020217143567145","5267269297662973717479266421261544932434578273882822773221646694881418768785"],["9324344872103095279476220502143029547283405917100673610578451142901766234244","18126396873653318360255267972547119992095082363952003216037855615956954860721"],["21254660644521924008973288191276850897735246197919655731337198948555462170619","2223040836247402450794246935547885545902092399895093955956509555612565879660"],["25895160560702608720515136122177488825469532982383370683164180323588683279119","14229473074338918924847646956391916514293016681449693813079834519141349215412"],["28787911950919069785493884226702426470173795739408854348508993381387112466795","14235632322561346666943833379811557457666716486670000460026203707994832864065"],["19884535264091184119388648131294258888141843372062336121941219439784021275223","11022766822546475739708460759573685702674886118538624500205136302788785553599"],["12575641487330530453056868783647642987721734307693964682587153050869471267418","27713966288188157164214137241904913871166800102024820996540523366541832941051"],["1327699253121032910083036461081085017358832725129714373759590220449570335155","25554920011075005005388295853413208377515103983452030440246194569354715943175"],["20136321152720833487144945220582061718933029374253246892362411784720417943709","23170769770248661865160335733687276559143874230217531371573818940704976541663"],["7418912982378630745916190137271194558337176131137957698799497949953324423503","19782868682192174282431533471092374818950386827339858605353902186119721941976"],["22786003850934939481736011535543056407321794616836373136500296980305399344075","23512196986075312874157968724986606639780431182575679320471290785865278413393"],["25116157361649685336229413796356131439026124394208208714349114130696794330539","20754788110824439656545018108419816068010992048632089991942286784141177734598"],["13663704972323866246108031424965964909817634978184333814119782378256086411159","15028094098627267506513812784700828338172342591133879992103983743367330382704"],["20390065240478390624198719958568566802534712207109898690551190243825819974500","28235473142188021346130177040372216163456510436693780989574868544292594195849"],["23600926699900710648501246611313389980962753070360064116877200855280098375753","16091993251403918223509880910464255080846632706097986983793602104233303370912"],["711922748738362455274939238041854105211282261424585480329580837464251421660","4022911000507317089966419045976147469627042781952005799199349255181387279571"],["5188019543966228921222929200495799972257166300178385045429492256168429082559","17735680645186333799967821198553043723814290697072488389607158659161386412348"],["3117699315756128543194839974545801557940060298572407515287399172150284221943","5715367437386391547671018759456043913724928282063515746746476378475508590745"],["16873967225081572814980869175730636713193817554893637084352648124860089394598","19311010529928953785601602875120281337361203589440412588775683199399195227093"],["20707355706008651131568493121036870506346928304477031412937523830745400574717","10016627120144846980973955151973256199305512078304190338075678184381404300010"],["26392992666511215196491816833771781754053965145760552763822630980876342455224","18932430188698623969888280730313685566221937660677895905366553213333200914189"],["22165134685304979868188571224113625453117123400123924216573638497959977842811","27377494296426865369867184995676893306311522947435324887285170921205562537353"],["13706879903845316626452274406936175467733721853963124506229770207013517255310","4250497422945069231853205984893874225903024463694159053082436810122043866468"],["19917280747147669654028970779780778555291690442299958933981236546915068182962","7098607124817003442859432133157168249168137987907653978521382036411916187171"],["27799152188274935730917716165765117247974230223359588601986159036094980310285","5163354798512513517639167977135873351378347322028707702818005751431671952164"],["19087278437318459161909149651314631234466772316585531043346459789975446948392","5493667464034138442464743599476947743256137399275961993413600615351224386478"],["25705492103908124271207049620196800772942224215163606935340967109774335008649","25169599534981828412566679035460630346917543850286176832183874908717674218156"],["13330014693124037729577013135644317319892588543899848488504647862521482116851","25953368875806802122994445438135343100818814836587318661894685230995798691494"],["24253511781507749276296404717549243782319439741199815661405933150268541655714","26415293984694519372487251845044449690049187136759435075005899061133826997608"],["21531905547016055421801269504234010189940163488369291854125017190385461208447","8936941475689723539014990421798956621101768718921238765946767894628418734260"],["9874288082728982955301518051004662989619960589972847381683942819477791617254","5527727520598916603187764714736536217272744621299830875995777280428907914412"],["27688580798537756178295593337324626123988927113530619703260848402402396583282","8674382493204037952386518864413909319317125723695477316666625385009933677807"],["28528829241359339219735379516926710416465680213399079523136784382676587042013","3904132868537636989883208622204614302923125695785160614938241486673388408505"],["16749743982487893698576002079101702119216013767957127656801074868048790220242","16884091760368209034071164645300395621147934878304771628946807035939545486202"],["986933028921042047154854297366056245949528174102051736499291987357337098001","19665867376182851915094902541959677429405715724879955485324046663837836765049"],["12929396560772761032372560465906126075563077588147391170479310780655106899230","27461538622901550130455633932067714620099651691133545779447198089858834301616"],["26182703802891884802070320257519233325154621677493768369409988497594680668546","28771888561951983311514908254374502565629807422054479015348161000284712479279"],["3571864472257353329006941935828606620128929260362114271350172677044862084338","23876157770359887122775075759884292632435289628062639119172419054362187956410"],["341374733267447596807457118133589328143916372508196249598350148605988776286","11832454769765674559506923382351216724607426998920032854061076081538238224237"],["11041564385657629020372103370242601041207597352948844422205690444849702145504","18849584215628427622135077769230199489093296338334152169564552287442533489100"],["25216456511916683123818997099975592965600878022686826164437575827891122134351","15557606730345930144052262166515586720015122855192035852884912426326987231305"],["7973343907859513741038561450546089628832292060666674886160967836678825394034","22791205534917713116607123491261144564987535909426364808412682464724347077195"],["22389866323417865644247015871816488675713043817990500960994344355080561009727","28211180894111641814030352099950946483214530253464040983360123252244402130096"],["8281664370978595957885727361943255665781934707490780811934595716031945017655","21868190219255128969209621968432530387649569440569928043419055815438563739408"],["4325848513436433134377784757035002960500297538082662814958413656395402802196","6855267111511049573118001998767569471570184096027046869000549403138409813125"],["21818084064391934498337053726850492322295703213911120172574559469910053645188","27783330627442630256899059203645627032691385045636560018447697233400337014058"],["13948220496546231389992222028434885934720541004377581147488339034074665925395","15833466078778935469304890735261561434503179659729234882442716692221663770401"],["3572805799019917452049219416138715216514358935608662765728195846719031304700","3396776775050883911806582602638637685539973117641405369721831160374049728655"],["9764185135653783129366900101570404092371391390038807520090109267280279056746","22084482306346182845840942314459813185403578332394132489403493176351462143358"],["3541782105967803941672025384378087058471192391099725909257583526443253922793","18866373374064865718784194282306722231801748661305255890007951182303479712474"],["19681703751813695749487233827811187649868642209654985974540846971997086053240","253680286474866103330776688625930536715434989939629055022562638138174564991"],["2933887624214080703669616110329780968663947952463834167059623778903520666022","20194767227881023063479305576730456750197512853393634159138324309024501315465"],["696815511042721857673020514372710271541737192928639814263707679305308004238","21537941111095869876025445684065032750418858156599384259511514379021595995031"],["4109955166117199487749125197876246038137055342737804756928290210225001704151","14745929230067145404310777997026704033729785108153764959030449086553683981143"],["11026738483060212178159331086389515925556935326151279114953540788595944688104","991919401728005646659798574086022517372960852843265399202852941619345256415"],["5353626352579109543087456443883613135504223550706908264572135698070578946159","3267591851614202684538439594845331553664847369863961755923901837379281758075"],["7456389515130544834960140227212052762613519900432689125022822666852623204929","26630500800414506658210568130242602607208768849797418814839503945883297574029"],["400564363629527132295260616116774742572026871555386927770740997529286765694","15044071290415615186897643980727918068185179719869768405417665528163328633363"],["26305261855956291053881521259976731183091534022380720442586693933462308826123","5655266481794133765295587222567456977331628431420554911189415958013787703143"],["1092759510208858496852287491360149817232153244992630867386734803427944645574","4092740091742292821833696608095407710829689121169055181446820078844016554408"],["14527699083699096617381971687666520659336101030989356478670479872683943616035","24960791964067839040213930958695919050789788935148203567272101686052282880789"],["3296923369393128114353090237172825599077289712294382419634445594316706947022","19850738022954725785176609270638000897141270344628118387545424305529733001724"],["8349698975707001458228965667752590264375278701133003861365151784821473958180","8391376386555371566550042204707143103347901194149250625306526116604457439708"],["15073234059794950828245090650821082493331247340697764207213248718860986044024","27219779035917062123304603508128725174488064366126225354729929271105401790787"],["17459019411386010394222505593767812782769565145099785756004823336852478026930","27125355861492293166863699497031530530829438590875820982261988432451301816225"],["2931454362618007381941459693052269002615575357785626397368588383574831931475","11605762495461222921843129362966019412110879917765319572840141279467980263472"],["13828354944670988009990656961833130391411759169711904589733626411428914862486","10000465398511612969401139689265149521295621010528709865683536647473118811739"],["121872655986441329168050115468837937373263780501981669840271244309270564614","3031808780299108665494941974315628908979389285773995814394518396419746428636"],["412145385749421412023832510560680472842831429441454395642873645987353867228","8400601902088995275878108780171838394130507839431068292317404392021363760981"],["20086252278671276222206314189398870434902183596705431816773581461903448363759","15293539694635625440987407794742485985883304163321667811350246333709438111092"],["3237681037809452473398820605351451065532420103922047033075203036963160183415","8393498042116352036635720140406282877249094196375341092023322908860531531930"],["3438867045060225138756529138967264867498639368067637203602977478740758557950","22630110427353958406010853197972896481405494838499611461959202015951675502956"],["3308697086714713780764624644320829296321924739181196911691613754788702470262","2473021865541243499552836476011864604086678331583205342664111192136113571659"],["27767519276648049174466004151576858397022247413999695840576423433861391930130","988167692791970938946431161389358650568314351707028633464666414292212705349"],["20021782230876035391491670214649649545565413785860111251781189953105528896315","25045947468621423219276531777021545827205147292877839368228778472679132737703"],["3362729183020477591701419890112159908438713810671077671487082930849199392257","14145538449220225442499108711602243260946240437242770457166637539519706506496"],["14172444724232404582967962404812215548614120946368112950065016458519687905253","1899273204961214055404160458175943557955755270723342857206778026808099882247"],["9086990162598003226409772407354899841893560868674071984851733376688947946863","21394694301638227591218162063190385566766574157432557583120309336788181095508"],["9254861920658375618602006850271433188218577954374286930968787263153101056138","27195728761661932416543057637218268214434484028963285678044582555885315451345"],["11805611012510434967643562807850869648212202835772260516522106245723766699524","12852534783522312339889086818025775109826845289355402904309591854990597737243"],["15459115516950165094307946206757391199484781552209885419279178550545272535363","11395423040806176358198608772939904154580555146289157612723987263899367045687"],["8399354598150795711627802279249465798552295499316759796250232185958779463488","23621529103294694972707507191932193065533820017597781078988031592641751209561"],["19490265537533173121458228957392643085713325548713230942088440851449241568346","15829353836943934917951960849799104722982019127922651492987716736389488788496"],["15628592486634884715090392519538634658890780277621349671047384472440993254826","16814697348795805698453236672796687432148109198547047985672276424317433896504"],["20279783957051073592903296494714798411359736940786642603826500547124007895947","28061962056224591210846470738287381981167172021198594384469970386538529167192"],["14143111293167373579339190675374359028135068450506128285182128694180437878904","28801481851028447754584643742232355553492381328098458066038177843626214224548"],["28821656034073293349923696761989952565095806592257480361375646210373423962646","21951626494170246741593915841950467507064058341827824441398932984984455921100"],["22522439047453796202602702912805170735666991022521178483411074968961198865522","10317287349936781424731240528509881601712223819798401317477152777271455878114"],["27800453726609016839679688190294237428321955135757475489224447225308294306597","7235919172467865274532269116700034925076358926787066991494944220137625111376"],["7884428382363735827277462613441514453028042042580187481019044986230135793827","17005646552077457655044254150816526407008685237627468285594693722514815980150"],["23248750630663738168200563504727090798226371691002689896375215911204207479709","2613883997715155749808761666330017325903182433975313741454862876868758433368"],["26789531220503140266877794111285414198601193082808106630014384326095362998511","9670891316808376791002882158189103759256373462299504034419748880537473073420"],["25599485919709721630491496169490054605975468489982562097464568848714839858796","21930798356371719589823700584402298905581145154268727160907838483710014046187"],["15027580231693961075492331269291102780033450307624785719428845028142374194508","28197261859047751506668615740450974029738656054850962564131716235624296747690"],["1507078106466239455378337528056234994986499431184079361141726718980208888652","28547642778670305896550276295777736262325784587028533981375256040655547966476"],["11092079520018927571693207704213234913192120945867641458130105203402310630568","183396022840679214978996345819020948149849454174761174995229323474229558202"],["14798468411767012563482493245903823584110785117900409988619403136736001157137","21918293466352153779870721516432170898751158457423939103103759750545334941493"],["23817799765884843856909784721287758559804324238211322188557702888908848789636","14846899144434045515970677899927026558188607590336779731327730129972224211985"],["3785093617018493016756876606924480996603475956609151869003962728407695319024","22838540037301549959622914271768564390520015354647029004049903171959843652055"],["3532549308428153101949852159934771837533537201216373819166967331556361023110","28084515742662053768296608489796553426330884672623815196841143857085795680011"],["25990278227831233920747420639012994735724420244721088286710778205745591617153","12347263702014040387074640021849913308020207429659256267382481804109058261863"],["18609548058317633168396852275461429889024970851057976045675445746840966103601","5200675584168259062761223845568999705737176100610477159503682200924399888178"],["5297946172409517159102111196427288856134557099645221749577108689904852765133","21077037027065327639060125985969214687467359965610471755201411546992212817068"],["6481804598740547210716088104720769874934535511974589329469923353804823513996","4452234633164176756220310029895045987837676278854642897294581316440530770232"],["7426723202867150384912577124724112481856381441712669717148431099466298335681","15529371043212748283381892554067115746795166843701334529663655489144023675734"],["5401946282783859117390652826708280190881645917624058425018186167121647569650","18557144476508321157670601484450815168851938435508016385021904607370163533930"],["4264844516541001129826008826902534015561356965643722626265275855126408143889","1242185275305532872227201309077339087026574506475505611980976394044847854907"],["24290414593269655155745969781405309865146126049044660335965640714120258150410","4089849832970561000116433150908824052684838698236932164314044091212193869383"],["17938774458457538955057881496144396461100046986979939888283091764709064061897","13027699032831740558651375547977149019676266568742794508870128695995899362506"],["22328954452722313467069323459458934127258255704205048658946032537867080411021","23169252614421878269243303932441022024245880010191519693426526336339641550031"],["21411963995875210976246276756061885251979659699379262608434309317845527603444","26257212551208820690852467260077794480669125254854311770988914605640483943174"],["7852516802218738689828561622019581564057764977279559466825453091810481646719","26055743609876856688649638737607365186229199449483585351760579754588199073399"],["9455066982701736918612952403477800065553226965486156588120373516018549565215","19493709451918510757064466101255129421689130034178150345280921369086103258391"],["7087876793327016119791848896016604901683413674032848606741875201098091126819","11937137589394963620604466552135963640962214379699768699055073058734568862733"],["17048920797870489051571276935733748664714054755156389013542790687352582566200","16068381459678415908062705920145163606418980107786511388034054442814970051873"],["21339753143219244825585752940171189755268524064129169481087759166164033204939","14288118016897918652573264495875653209745735799390967709927858987540756086030"],["8948151478431789036849410694314372431207901193529719951794465656492352957531","13340763101886032837829474994008506147663582372485201481873236547409407247805"],["6155543673465956074173541990958248751705081260450410972617510649801827428023","2702690483763831995747680414202516817987901239989364590598663794400162908078"],["16783131893804850425210744455962449223674968776536336985643326418088937635015","22868957547282894590034603026677493346911963511515117566472201033799619883092"],["26341023498520707460978242393881800985415628904088197398323636531816661836586","17340406100077334906467811568586932529499659280575439919726197742559212512459"],["9996558622802257274295192340212917755559023493521336448494015056256248236285","26171967674795890848274786566483451119707577539846596876817965647049043492677"],["5026639967592735030797844035291257490296444185951096449828488534245556218375","19371157703547004375862079450205444677180239030567788630010568804554030332948"],["26367642350182061276418966380178327674090809458698524720915237440614409605837","24045795883789747177834686911517544901678778957150173516399792809766709362076"],["7586062780276116421618870538527249313751634097082794929188726951430270802133","17817046970262073109383319508749139688831455109988331884252593238460445817765"],["9315308808195021654668070231155704237777173921982585216960981984633269483309","17106572311447323146164369993389397034382557959339179766519533808299119949754"],["21834404457746013907194209574043080331697302396906131060771921623523776937222","26278419440533642852254789855899848197123349920460833424729517588778216126719"],["27596462263602161594273295390327709287755163179821758704109650115668094943882","8640996828070591969590364782970239707204179132009778749677060123583495316781"],["28815801241385267716301673172195659159747998963676579649746009644635380106807","13875811462257778490440432682662701391714192120026564057453933836113089507359"],["16466912349541771752772540836155652959114266459836630834654532978447153467960","14086926554635906844191508374691773161374714057303960967583244483012431500241"],["8231737663151682773991657001885535285206153085418919411792913572971162394589","4306921684480457291519611036722673736757015036909884938625823398749909753169"],["15557695174690196204079383068119620627829852237188776168415164739613058489795","52595711759040700899983032489358544623864703137615005844719019954500540130"],["20256689478957605926273147921838708386924473802550211857483395647845644906239","24898035133535359799259746673045052698120134731921315728970890080979799991475"],["824962761489926497790436446361274334791318278102767356463037565426132803485","23973931991110760851449099538755847662282315486252302568202740517453006070755"],["16668086144330035968825100647437696017605680766472898050156426982996787582516","15585916872161989013196129735212461389172697185417805273947518227371573398956"],["15736509281920623354227545662764078319007863061870218456441012381870142033074","17516527893445334300154857781924396205634574042952989917022510628921800996202"],["18500036491357075361984624729233392828724108260548306964942002304133307606404","15164265662060032282857562109731313933974601831941145382753795364471865316485"],["8461181025552637316334578043684233995130501361869084123116361341054418380526","12266002830909057646430372531312097772325290549753284172418153633630776550676"],["21132647749687517486750255923693931949348326890290935733810923317257525969784","2930041476327181183372039861001559078751054676897617613094341702560531028012"],["3806923820615080396478238665274463988418602473385913996792097786466265729959","915870480877875576425833337390580331134740449577785728965329439258004225118"],["7214164455286350923682039008029163152958601002005507522253975983897660492009","17145588349702746129005576341940971224453141879391448848391953134163287289494"],["26185332749120114774431258230294576702439322150525347019486677083507060070673","12469349633145437163687083328855316324469298382467752093208827647285274076004"],["27582274120093796587813799452670568618593384106851942705091022388244189429053","27297977379732069178171129995147159837593025259573116354545460882043595729545"],["26344664769800840216866565408025387450959548865848051397661794553788654360183","24406035751731411048065778011525391435287005191668370591233293100053181201497"],["3041069723453920562371918624716253693387956216564136640374487988680415679269","26305517637093966514947574629730860325040079356542964859593744595331506821331"],["9434990393143613870459002054430680372244126921508334432076725013965171273749","9336280141711048913270863560172216500155282238301270383106913877140999113002"],["16841363908593070875753798371033071638418990072596581453248354244132827936681","8236114697526447835072486301682820622944668319506890364375604189956354548569"],["19364815074647608512265997942950622994757618755997161362006979235357357357198","11772352119035220272980373278845849046787902411968572687599869193508438274661"],["22737327179166458882199152493339076220312585174347834794189199856502719812495","15269360601342500021026140837271073063850431935532141163570465743713260654971"],["20225138835195877341213751606623717314717667658795396242693149375312957558031","5477215064589939604532723801222914907012473618412237586206553357703151706269"],["1097589140764131261338177229083581141520946988312703678691620735780365760945","16897750020988198816512909228187120899967443217321704446650074140772680133852"],["23184103403670596517028836670677048256547700769322926614243925187996991120678","14556241622869956969398467745727212204857205404409193934281807978090943051801"],["3368817658008816498977978890771747431656647423876203803768766652076656357829","27481435842333996400289245646340026782704835804798677765576815909014475176835"],["17270048136704967206110074216815553350575156914246252226836262341922557795634","23511911036258635788308475008725461346218637811757329492463165903403959305040"],["16472160264284105853649568622726957841044427166827223705535499448577281937675","5137575038022559867589630649569194040733617776087427667313381921554870721886"],["4152682693102681493206389853365063758591429015819812036633462187243416613182","11949179393177814687097733621256661349354121563662905707838116259928108523258"],["9371636241237802976645119874944967650722720886134893724084700353857921111004","28831543361159558538102727433562155743103730854556901554621354124021564418319"],["4126139822837472176645791927820739678283100246192012330493581103286444013271","19968353049051773427816157340457118336693180335173738009526013344080907708800"],["8247847589226970040255592731550412940251329266996467612363269797896210654992","6939376878370321955796801319613423382019580797660741464505961420885712257832"],["18922006135751018173743256931393088508200387931853196935121460526084015003858","13655398260657306055519066897655830798336335168807935722860142933676890189583"],["23173507821061766705847316522788281876186790828910955818972368447396536375531","616694867331811343267582697917998189861589986137244304988732264740584214974"],["4717546707584155503414256622715173876502519158077450055298776494631680681072","17482198086731279672463772753972561853084785513653634337355691616462355423678"],["14365239593981634548754569452561238967060504477882132292186476959148607199379","9071010568200160113579071267755494677685919591920239240072703626468506081365"],["4743252532797205566744608536058021585648606033496867747084755422683048923748","650153144157873906026416993735058369655344450548839416987670944637894507820"],["6041911396545199277851508739312561913147312280394692819681654624862186485000","2649845892437759433859228610253686294218973552173262872412485442332073896312"],["1268273806419197104989368039863995468078188698138279953120701883202979695988","9438329043800217554996202136956482483408735370628389775283327152118740646957"],["28139378976351857140793767620719001526383910514413012031145729580713130740730","11414347070287514658730012326570873606515529144566009609064889299141810118642"],["19750512315936217851831562871187261722485852199382620203722624104844365855237","27222165403725257388886787453133419841473659212882829884170792146992066857663"],["13007200168471603256665818016841976205620864478187259766522752073846784903325","16558986134265419589208232775361554085411305599961767084585129025040071359431"],["7461804748274299473074331099679872089548926426242012213836432909714767691266","21753670453449588706559327190493585440844987863038193228471236907544120312454"],["2802044762228002033205344376664372573545921313079465391511274987506323969960","3658623856695694149328765156997105326211525203082014651464204516578461548276"],["435223084050291374406247217315454056379257405080938259843458196556855188206","10205514498248257892159273028859525838626500023376575977462378153237781637530"],["23487291036722481768144089979756572589794869002117468835168956494089795546182","18715359354822633072904838837245090857986903969948039256764682138563012767100"],["25577557248631315927122238381111276445305463542000330718723782534530822514811","2532259328325468538865777384999503222032489903734241159376218671582061620560"],["27987319930343483450168308250757101697939761068173119355726456497595115284982","13521077600258313788654702803367222826098429826591554408218255093805564929162"],["16052759030569484863187830107094926414320803578882152769184912455300157477904","15354998202657792922465659975882532341864101090770737085730877886347241309901"],["240364999107406617997571701478951547869771644309425618007939521381244130654","1111723773000806321470818020444896095947520520484906768469707437584929875016"],["23317092836578620631935919346262157419509443273268082007226811253340925541853","13460323655028745951210873032749256115831486746651586267722871658861737731259"],["1689601571695706720886069794983623124321231978734377749380830741885061065311","5710341802975328550349757249435885095219931761575389105576671874492286451635"],["21038526275628668955851576939483569250359653364294952968333555741097389384031","1389271423203465818615910187239905632338061527432184428664794300719203149742"],["18637127236342292143805013486952378610213358197481803591218440787238504163450","8182385759090121267387691390472621263262294398496773269021718788029689076970"],["11707713064929212436914511252593168762446894906350246102272905085313125783794","126887861225348792758228063862137512280187873188074003756198286752669693914"],["20086132785133643720916278754919907444654862225353452081277221056040450572532","27370506811017923512013730902371187903434711523346961629336911073232037592329"],["21598192947558587039751219036371890433845306293878450175115260621744707371126","15157922461557909213095392478762832663349099217688396147968872565957979218426"],["1678297520112150156342787588661877225502020891858384839644648554002123870889","1634056075083838451274390670212090927032412691009907160118318214828941930928"],["22329739338797356158712959690559519086267511060240692749657193623004837893155","11468759194375255239744738643557977540508437080714239096889066026549619095673"],["20493117601850110717783331195013627861042217044511128535427745173842672063887","17539126046191355368381830174828451991084805985602270089328890784232221506473"],["10545514019244091909874550661318870961702821602990045091234338246864711600604","22647383396177934515938817440084353634292877631153019800382314645088374613738"],["28580484325018388948953646850924988878342203614858523725936049824235175148321","23120541063078042799741375749595784421933892781506822603617698599064549908262"],["21967758683662630989846332457181462994217793359109898910156150857817781920545","28594017785342129757202294909333377913704077943895391416385435467110495115949"],["15833074982826431209901068374732547413715635947444618027693145823756030078962","18934932984648037042546859085843147810495570960542023804105319316603934983886"],["11145616612695180979752095187093281300586766530578421271878829715090812157091","13189312620581522189152673387808921953731046821722093722070788927960921902783"],["10391022458131363325395293440746466401069046316520552450121825527355995710159","27902993739231474443911254338266117910038710602390400248257846835156972496248"],["27833768389296174733102373738051574867723235019686981620566531641932636783307","18664961380328910328122019350158494864686377685745155426987360141350440898108"],["5810625548239123128843369568763445137432128361325101146124941838908559903405","6647053929164243442591244816157673197900569842601159038367352495667742565576"],["23002441031975581832016331711896952362716701196953660747563593362265487862738","12780712016025421465512048952520531672548883654821338252450107429157539866653"],["17644130026770165138745467420451532358813915871221002479425748123053684919790","3243026175892176009618689329467882875252452998682991989461418460629148796182"],["8659090013413349865445339135194942625656971182784374455094107258120855638791","10318117298403975718733606505436697173500094355447871684194542296982076547740"],["16548375083725129678488852035120544971065461997988625975306846872308328864789","28810102922415489851057764914543321074537367478816607682798720878849596660108"],["26176170097220406113173319792105227680578808981979653564377461266094685093286","1630295482726049150415448681886222228804331313201598431091673557659618811255"],["8375125670844724005872753866501622531907419625094072314911792417458824575311","124249952860056296950220181013184797983847470167030685199684507696104883175"],["26867696536317784828263291162914165856581754602760343021472801224628538930660","24125250958408202152235443035571621275691099128387247896017774532594970699223"],["12192750712861801857191640277395986195942132799032844774871212502912533130280","26967537736578775177301380057755939421692382905295896621812940604573635455787"],["15550767437296520194453492426189718457491089464475448254459998951813330747573","17754851659372311737576815106248483569446856034981079390356701299061320295699"],["25260967591550401240630290868795125455749335944940209117974688251243686832006","9393852014160691027216595172331941613130774607469587365573490339973756501064"],["6766740693146525133533566185340537163769300802740570306740986215461888930698","20325984159920526360172963892985732433858854331971271796429586828965402435921"],["20671114536465786026962124588114686030521626083776177366121652680172139701180","4651685296211720461979487164999458970717434202892692917145064693176406900488"],["161838311147471002735711770786527565481468611113371800776841604364769613078","13873386865695185068764964135338884065138845676147614323899758959760928406145"],["17949527709865707991559428824446580421670784064216046377336422346244936147434","21878300805239797761257830509727370197648607753883838375008784026510575547545"],["8760059973851472345892296535297347578322678248218305617963799320670034052282","15690194315787708515634694589158592511591632243882436701033891910193634900772"],["22578242330690834396924051789200471038995784608603986732354579467930155549559","4927815426621802670165855991166250493695182469950025297117048839545751901947"],["1970408645541094473227934960066205329902563063206608863657111662308150166414","12091286320065990432028648069602242668481583144528287387234468307426107614575"],["16251972811419222012003947185821580012751089687032925084112671930687391483699","7435179939136640317002262783981970668601114376435803360251073589674461686845"],["28693529113409351343863318859245423760741236458165653686056466356396775888791","3920733815300185347288953006078037621422126779176620334015548153832052163900"],["20916061191915842917708563109673393983102068276945043304312112675115053913248","21356031212993140988072018056766920563260793561899177723878826772280052826623"],["22756679915174094901479939372205692332629135075758406584865278865478706525316","6487814091654824779254621702449419395362655745621445909007144679712607655460"],["26673108276982011164564215462786759730803314247451326180996014864191284076103","9828045792071175482804665966034453359578122026155672969519469416812752975221"],["629455763907793742562830974014611059028705469221136985946373156789713266419","15668574876592688850476002289013138308283429303918177536449940651209282767590"],["7955560827574135863255652654382749324061722353650324832023026220507616202845","17483131047813090967082348138205624386168315971281481394971974328051404547163"],["3868078503786707844473268908087868228934483097671577950701495263672352996583","14178745628541483417982931987521483127000384834385782109785262674248193984270"],["22520667696038997202593107172880007666981053988727153926009374806798979195445","1042778338544073159989335429791607805302139724911699745879012175399430268176"],["22647272812050198186786369453668293488588449598439716962103746765304789339894","25465153244391034057593312076265374554115619517230545300270983493056525534921"],["14988374277089523666698902781895794704527900683539408438323238353615706586124","689891689591415716704427412466423334464576688350017278971177459674724896003"],["10254902351821025194669819897648831805673140857772514825045711620464381674510","5937245973543027475800195494948774060376052068990699747043922943240010528794"],["17665273519683981779315802635781745532694356150170403644197315076458843719807","8903599313978607920475839628101353095929198173029277151270666427419931235138"],["19309489693287590104906607339921383759744136098050962034044239660348797684031","18629415963862846842740412442023976168165469935494566577543409983940905171694"],["15805619870282084259958892837883023779910534821215560244367383555539044668586","21135581798159041936089907969036981801398775684167021355505834471474359337811"],["16403813509659832904819178881485219857012860862848100579086889320106019189295","24398031815797093573768494589728713714261763504337092010200912987105006221821"],["21505075096053014027903504459118359907261468203926725499805936429442657311776","2972374783486945726944605101208210555901070327407501192993229075180107749243"],["435237218164189312314452119512013432582622628664238388268207497419926411207","2029333210202330945851334068136409802938281554582301672033527497479131350520"],["4054081228303575203635017397641107803581980893449281118400057048262724709199","19022408586932651446764722021119283560911423092972716181065833981348648917985"],["14299006352622149304115566961566877881674862214078213325997528164784118816012","23060094604641311844903771864085197411821486414612633437961694297193808561857"],["23458242370885205175174641567152398310214267419015152999058376697995884212454","18039546252421620465247142196938835424459820642775104779656572546289075983884"],["28873692953039268011694039664531450816133087837163655381300353141100003676587","6016893107469780898726881422397710732940722783147435596121824444153768303035"],["17293541667296380027528018133334124478397919965440132738180496181570778990907","20453462585915313304241362561858651148710193834290817065047339100910558352427"],["6409304253516107513146678244597908873308267191154592931413070921630202715289","26795538445043657482866828973758242476204109420734114006131296950307183043817"],["1634898156094963010702184074927930163054143239817810680547326345051037580893","789515193828953692519355980833460385646437308884166884433419169134387503499"],["13295160941108041435095940849607019024064797354840425791013010255836783398769","2435749178317050793986133987436403645883349574868923370633519919081948053442"],["17250571740488385246288899365699184609985357762042254753441672517066113790757","24628134683293054094280151174795942194517744924141321138127002719358428072183"],["21702642934832362010809924482820938912551656306916962111758861154133804644127","6733332780059520858379627549291975341204956742949476705371710255656977222841"],["25307781089900716531922186423917378674536573335867661473527360166211960561310","11997180492626338502790695444957179737309688440119015109822040025793079481706"],["21433359818454300152989667711316329555196597815433345845220229155864583305508","16860970986542221109376297482930256967912692933425018963815992099080010724559"],["18166262462244742648050122649869523018507294706705127293969410014370300069499","14590440518950100110977789172379564133087245400397438646104425433816188856206"],["18790627990928712954092485701869447879423852791732760192354022065597064377408","22281286416261759518393832618853004312948777376144266689641170399472284079616"],["24228714406833858888147803293582212708404890183533368673718468581153018697220","22251732463491845855369513992980080493571902233166690784360726127253454959906"],["25037708773474922256999268845555989310833446982494431681995026795045802538480","6738031934841801875488354552057118040845362129862340259471914616193798229013"],["322294334988639283613427560034919361127447160328441577426038595108104539618","22274192470575385936631865809054890947405728859506781824899927106119927129936"],["19434976831298686167801690479127623553146649723302158338428792691945955682579","20631423172315603356636147120691912365277318366383540771821913289147685631742"],["6014654619733555005797062085396527731255367137130960924975017219673938092139","14373256379861194308059765260207905919824146038300358606405905532364167982341"],["22407588008513621817171898101609175082365151516538423610205041868328519313121","27214142864295228790778985090976797083859197225849971231943349450059919431015"],["22276749389693387377836469145526525159655469914206053195251227511825962901540","26147927394162611988626240835590010540753370273948112276089071288532811399620"],["1191906638169765599049953606707902386490529207945199258766158405926278990457","27192303557256693817736489316705482410221320618923290109818207360885430627939"],["16352100943308337048234671444477946231608769793917703809180340177281618451067","7689865525747576094672023627908037640748694913615751180779824612017646829563"],["20626614310270649821956427813603288574039109333827743237214310683649842345951","1977324506185624000126638644496564986569056702932983580284487904213261710772"],["25159597090704533808284765891413102684599687311786746601812019586603171394872","17942501384686366172103575220677779407686395929195315889511763477684201463737"],["14338041504945036984046549217565494073670254537505113072618833855431624983714","17496321858080197728257989893757820845606747595046911207585957530483853534971"],["6844312076625101696247117737025048276449728597971358032938583416095535629878","7948683525199017177211409364917640029501684614962871446330032772715799647672"],["20774435236378223209058380477579973820611609240696919699651517413094627683325","22557217662831001758340981868574384643764102070164261785655757271399712801819"],["12403164849782360264994089081421620801710952444805612870119518175622373489801","2462448001258610837001826461966367005106805709353638808012668956794019437295"],["17075087976190815498899381938914304574659274347796251527221386220379317210075","18165271154896213271852418958911632647202741150808799539503781973836744151956"],["20648301817694207590320421972057044791271018272214694819667629116316598423474","17806365936909709411197296915913379495974022228660944238248873810078113751350"],["3440055398951050177049929576621530929551309308844720866079194161325000885355","21246228891675866216842165828597928892561126806519683668838196202404318382144"],["3591844209822382469816336157611308565600479121326795796577429092954936305829","27576543206279201382935709959042380455535894858085567205638019548584385898872"],["6434725137698087749114056254930514210463962826581456156265348661832657965070","510390252906043443556323755740557018290636876709989506332235647879420794545"],["16028876357956112009939661963078025861249449839042890980732845702948204555743","11609327109142747848541298733175507529835658326123993231235390010561417523618"],["592828626884126148260626084790479112024257691983796403396961948589380510200","5687889357457507148715233816393581817782430173258095021579965548476395038400"],["18739825412006038259871743647475311136751817543066942715744661330777894661150","19321896479810705358570915186560385739659571032233835723146095853175130868203"],["12297149636338038454235445421033127943073188471473747551293988846818528776966","1923702464046748694516842978594290362285636642679214038854358539339170267272"],["13653806416402385273602838473363293648024046167881017498834416727488540878493","19918770803232289133473872306618541310023236634367023525155839636078987735929"],["4854599381908544995490105031292213838022152571593721583662872867973448674032","12905921351135343903974584078374319087732156955877542413140031364826459264858"],["24266793179333313247119347598303463491632359334385375283875101912079942491135","24048603590452203002030997164392821510396718956869790121845319706267736835895"],["7934741447220867588245327587927421922785880146827694960257694533076110122465","2168913689876881772229534485542423533274254094237467422101728695159418637173"],["7497875319838226902938379418659587809064775774582473933296728425105206416321","3657839643828743423339916707076581072409788809220880754034461910608150869619"],["26719400942478117954160429441875510874450099379626075143310916896589712060620","21364243199802941246703625179859906419454570839910772537458243009421782694869"],["17993208580394003221424072579619870655503762339725195547963499038865031697672","11139921092763687236480177314151075066124385132630498344814826122984860533232"],["13671201527430384294509110964628082839390953920890268155068795240502835616968","9165151266225247874418240622906751028633809443070773192001179330196537884163"],["10349793575178302409220600158844181298058863994048601475769182255409516593034","24874888062670299192252850531053022071259710666363349735780720533078882811663"],["16993326036075695846203607099330207870847461774641048847832174498099151678869","5343949413551519582181222700866200610351321042509118223648105030823270329822"],["21226988243296062768696554774147105207462307273822449579679811313306978538374","13386017066510427909022142092557437234965147726684491394734827247643423533387"],["19150543603345141698470486326199719411889161735519471717088968954515535543020","24362805293160248579688845517045438154766157406962732983956756693546962743216"],["3214976535966732987355140622535979793512494375373500179733608726437630161250","27057066351375078810629041424523394198395394574899856149637535351384515460986"],["9504274859633626764109105365919730912241640146382440332311907533231647007024","26327851735811330431746275990437718495113862338037510907316765152819588276470"],["4623335217125644749455811031272445870645654478862632798195347113376668746258","5947600103763042370080079601759522403067326720545311470386742727816650726136"],["27135082583832666187787446864718769180138635952238864429431730888559727536240","9509294702028766767147787063960225082599208849593724951331858805890359872404"],["28044470186598812278977459256792497559142508010448623635479090341967138688552","27869920192759379863479680585985301508176973484880835741182184371423943152533"],["6374956316835023553987544385953061302889718482474747286315524559897542946109","4860569236951702701163363523927366554601679383385764686265843840137541003566"],["28362719613076754767970195721739192068688641830274483538536247276893660676882","24139683561626022524243827460279174500379848704744336984015903582871145579355"],["11766983167026068818431784892610924277884245732842685663098568928101232236187","12993928425703344412701949065957810011202266812055547338140547132055804847175"],["6664897331977927737193345840011135449200079779758926862967028619799278258892","19338863381969931403899606185041521689420580830391214483884512301848863886715"],["23714153817329069235728938969971654993631002613948105224035316066435498955175","14402482829726362474264938828295389279732405290108019535445535691597040691369"],["26122163297352545722024648362360474172993511108194090483845796821443736389485","12093353500139256684791879598512351611969074084222409207938111486409707614597"],["14960658557571302035934963932678099540566585486953250875112979688671048953157","19037159186489399672372028611690423138153194121519145908013145399357227135567"],["15494494623314562531455897704222169161760909013687006026973608003118078083549","688201041846982514199689511453744472138451238402520967139676438738218609478"],["5227379788965980749918212619156306520110463075036266825517064383165035423419","25676662146400163665517731761572819722611158780847925261011130373020343443449"],["23261235835912551181612284163558463507617472361727688820655870294172779663183","28632349439295734072776894129461908133396993265138170547589853304249626535349"],["7439766754637439499247466010452365811733225989453487519532283811962157040610","27319104418555190672607311447962488517495516539930915915073655791980452268103"],["17647026144184577082321569895711030219983356510925376549734167085596040787704","3429972238473219093613758462696777670595704090355815361753658558726670647949"],["12805933050048124735536397993119953453179930795125958589183532898027861317725","19350078249578513019733642835103540050100418297991118553631205836074120696588"],["11784569758786014565240455544051995896595515317600767327608894800321834998628","23272003325234751015479130772086198244210617312902931872063049825037860900742"],["27317311366802406008629860713553074031001344860761088188306808643935819773867","6496449438574992831242598573618402217807285300472499023442971267208609955820"],["9060955797542315575269217966047523309286288598091368010852961041199733533082","8105032201219504926365994740721095080592788974622569192496185297508293673761"],["23644105403004300868631059944253932600744870321463700531875380744146293397683","14670967085828120952201814346857495150728419003291627043635702455975193609202"],["15024570979960107239878645047698313253453264575338227957631097725541787312198","12000616423730810674643382572284957515761057526863721043458537118854201476394"],["19278668453205361517635299029802346529577174221884940243738112177404219683635","15733416564941958889857485251837448194036065352293404939331368877568303211421"],["21193975161111579895381103728347144312940980084474118445969285692090541416518","28059183060214073642822181271412616884020132238137395846972704309267446063214"],["3765662921715640612449358258251364273232183892557360397739630373674816914156","16723215833444335129631947377508577583386831574801230600158513408236064286569"],["1356443136307824177709625774934286391253501572504060151551174339182259976634","17310970478617499083094601011676124357740953528561655872143087671382669897827"],["3727371475308646219575948066529334360113375554183377620696766470350531780834","25064161627918595414171968327573692057571898195017494728830911550772108781026"],["7689318073222341534142379719812447282614896775708398011339456831458434746746","19427375668134221927607954991960316161552611854558327861812414757104234614338"],["15785180331352320680449545426297986278878758339017772971254605587411554152785","1390765095225498280492506496050110579250897038832729277513661036400742531555"],["2711241073641767641358163748402250377695318864857759492870555339218681062743","7827168811906005087563912797692846107241545117616192753483497380423776448908"],["13299991736926702332492688604920910591354783868132052340751135420069927932006","10434195218881937731146815840490132876752082469080478209073200685813170756669"],["4803578137046321215675368820344619746859249568530637826866920488312712789400","2590166230845517886136295201250604433059298998706049601821995042572313111303"],["12082684694789668082562917869853967103465079250720889275147447863484335884447","4959026988980830175580476064756633888122234939254856807251429395770902355572"],["17178512748311087878344668069930400336742872479922515513010492022543081627373","18401055153762926490022779429500173767724114262843631090479367767115870323067"],["4528212858898952740174274041257349230846951020016158149164343018384242620965","23072903845726873293108572832597230476301799359742548821235067962700421010571"],["26608925647059214660452254325618102748374200154124889835692005330779203022568","27342504651415238243583073417704505477986325697015914965156080319254859974996"],["25923100581549651475097408298451330683430612757189441188163023538340438444002","15105917642091031505019453441026989572435351017073359038792932489955865215706"],["26625765829185070311217781787449676339876409555952434922324911660963188996256","2127083397750551371209881145740749246566216050196447328790073263323486775898"],["18537894415616084250690570008464539527069739207466786460180092325059047301707","26027905468257063920029554196173371548220294040501118109372787201344552944916"],["3944229833597073647753887479904520916562300830298561423589973209898619336476","16497122208800829269672854681229834003861549657650687823948374962588493402275"],["4917172415011669708104675319108697956284653312184943494850989071316673740563","20943582681098695873022078820939927924312966804396106158175608215546822015726"],["13991800956941712426594683968814697264457129424278068639713038007960900671639","26738563656993202801004317940862233747797103206880486460003916016800751471714"],["8542032396594887566618775439350992818533039920880617636467987979197441140853","12470527052483284701238311896744086743014214951605235050598927987458234648591"],["12705230869820682661178516974842042054972371168658317598449338442857259058973","22086099397015381143047852527215050742207816591839951767388746441599600344030"],["26418386298466104619342594295687683734326162036776338977378360081223759844816","4095822694082157194985254330352429816195562465085625345875778750276922761672"],["21484979138263880230756632382020945154110476639321694700383220660676838267873","5660440548830966070440762308602896610497461576315995048663225061748554246770"],["25718182831957513869213583822419855056026513058332059591072559996366046501659","27234226783554035083156536235358495245973823370009757693750156932458408675380"],["6040776268829222429228027152817312734536292793440811549145283866004589883658","5933144228353119972439567740644703227089652714428786702622566379543583055694"],["10206386970584214913864369618544392940316429393971713878969563134002183234106","13618451650383380135328462426369290049377379033596849295582124888071414587282"],["723991891203768966404854597158194659751937808607948041366994089791621199930","1949725344600279292001846930480511337639466489512252330992885944551314669751"],["12039408509916357984500698214695594711152035982863972944430011270145166782319","20260247484780612663233035480891698307915066910883381874956202997879189752146"],["24147390557643759652209968323125831961125363340500037794812159658606386159859","27104001250336369617760108229722406555431226784358193936583749885484547468967"],["20122416757195399592651807174006262333460874014815496658353218896305321609190","23943652952210362051920055065182480061398695169983158979914012601916775795294"],["9338899023400999684015863490953320888646701150223458895348764919487613945388","20191795879851111932123781726949753657045190518276156378381475087047245610271"],["3890584751842811052507710362645339555537200049123589168085572150379204483157","15680672196334471579458466721851912945882316792518781700469192245968864184378"],["6470669372574766577944088882798403118364000537241850468625216450598964127012","19332496556812743761770624525597435720953569188103098078150892219318178975569"],["5470599554902983481554823494653225079350423876993998328956539346893676424838","12416236115446504357742645245987183020137471667140365260138382596019981224390"],["16631066946012872028395585162539299226763132897272993757852618171202490320017","4106561318212038268023256704833226368433906060951440609024300240477287649359"],["12920787937141977774086109341146198748053708720364574357931942056634954328189","11323809203772153801544097642651523448425975698243164248076099016001516712363"],["2946376982917949317326811930425661500525554943987526513505077960526332226663","2776396363596966027408681730355790729445042941368700941614766799888352038810"],["20769197882229534991315214092143620969917380891495418266741465914730730004700","23906821776085831583488979935598040604036358506834051553301413827560322347011"],["4311372540403525242655310102046185726737550372880558673560331276395383298130","24835232841905490936417786074195654998800931091303348713765222521575253184260"],["10557059979780406042467972060230854703163744601505024499436430899079849117221","15361242444454312508508042357056583248287722415007201025468446946253985309730"],["2589912422580180973293028150364408466690714939771462021983741246926813831184","6802690189317629168923623634774148842333711214527710598629512987678378829130"],["10383074812355850013914251215551552321383205457334054776252122226826281153223","26901843419040034961646898222380885932478665660632119589071904548127155286781"],["9295288971092087166908303276854784249810118171208493052446196269413036726340","23621497980926175056185561659340463480149919206159619043425200737098569575215"],["9563282983443056681219564569959974041508781134319139145249903567764973752787","8675176764977399195362977506311910819069550967023819668592926749706800218699"],["7357349363390343059522888193777415604733888133381165613701257342324003739141","1082532901516438130968724445184522716184906886326489903990592791674700610511"],["1609857174433690416700264254131714750584471798307418091832202465132488389420","9161098257362496451821107380229293575741579946381538752675616688683313564679"],["27405525924065213687577905784394537887705417626038880756544181287346353211947","5840663141020391043597592329760292557485553368002188357728366820363662275676"],["27643769965816259749996497270858734169016846290547831937686679873981201054793","9167991122413746774524430192881333630586883274289431921635410978253688287380"],["5131502950202457087339515078256863824740114980075592171677043826060738586629","20388341012317393966636414734150437308742602580335019084968767996879713401516"],["19181529108763240366177521462740946368315278536404699659239602295210610453591","20298868190633016163028717413943695507087365778928968595661196861155168768510"],["21033676692885480655130575103877984584877876150818887803174282009551867060866","14336117611009904884788695708265837761370237283542397741171710496621364731192"],["7080815812563245171686598895178566662831434370646523496479744475082614630850","15768783417261296700389026113822881667079635684025299901490777446911900825107"],["28055452675754698760215290451735614263275314359269716660892705263137510296943","7938324275440929961020619485753537379995702805791362416861951081987192921794"],["13168942893351804527126377227963948443149208742458186029306397190532119380485","13562842270182258440264426010097067895062499584161496648052561974939285707571"],["14296988977049481317783631141846681504976850041646804542356626500466932759545","12050510529943047189501447412456114934163436489156759981626669847256671050423"],["15216825999199802413201694569167403837198943164464320154795471143200229554161","18761254818638599692741853925987615400102196968242450938167891742781262069770"],["21563933959681895458904227165530004963808296268238817725689850263285292176018","1017336823039030060230471161028512128011831138764336030949839829021054653159"],["3308299718883163004682993478351729538446510943605883378670110531414377333342","3070286676196471485942738023729815317412190346426754697232161369198535305093"],["27108147597884204825607744767441369801072402803588867038702950070060886596994","2479561514240695664332685086164322805532311737135449870350181986945277703881"],["10766181137657891544176505013371428117092207760378728831542384369693616780526","3445864606541146619919391338150364599105387333109593423139280594944289127444"],["17236318883676681816754774176066949352939631428166297224072293246945190343013","23345626754636104582593959815268708607789337826220808215918398592796851060998"],["21180701378451244448754865763127000724757769042422520578955433680523434887675","9674713973866908191456406777167567756856055491206171523007269282027813612851"],["10555541304152098588680902377119260405860370472617040067991977393691653190950","23349783825250084754411007528441676900543136706481102580308070078186584178129"],["10517158804465504924193588891462687520148151338793947544172622067536876330352","8618827382106976958081018058496060664127288639610371113315840808186744677648"],["8739084512125455017625083929283898656015012849123374038609920024982086458228","25042478906487375025005091809658878491704947991430025065402008818690411614664"],["17527006416629049631549751113360810438908430481376389314580417646555554368584","3994980440080128078214985548808273519098621479076640636955837047550710391547"],["13425751192192237153679795181866594748338987304565170500754324619057959041269","26515460178420587165829326230030561463715236587645153168622248953345366873220"],["1173636542015362660485038107055111733700659006541071130837803080437458123348","2171310028025798627122799231274878844495789743009792324913464432669683738038"],["25586345512941378626746527463878235926221631930431034440280410202993685180488","14916223755543971579915029056880343256327952969952363243782210875815398106797"],["28300940554872777500436189285034880770742440293040676739367956672765211903634","13129088805334488216132130837607332316194063893068066458276842851285119088381"],["18059989233611254382463053829096274208201779901305660536742170853026903132846","27983420950859459531207942235170066833469081537264145494090681777748997185536"],["7415686279418158466146611198043971496913484735819856578078896308901881732192","25249354833621837127697600566206459000775313938448692879065568956402962183249"],["9229384444736999108968890609512043407661576492722738446078123105159784473439","1177646381537316795736935093677939008298177737008150140403811255661713616057"],["11754894626086275693484095109464088606826235385852958263202127791061738576709","28271765702065535865555514404648026644589309508144180691944725359946751438724"],["7035383015314123946158886068701925842730801471613010118423602995607631824318","11050319336205118652521224894188310754922426100115595654187228064193243951157"],["15723408486474446363126601613295183054107414932470857011775670898267913457264","23122379633764494923994106658549849905236609132655932545493258018238794324453"],["1070687902066067113176151459452775339568959716595290818464754644427480512661","13221403990285043855299085208235054232203241816212545285694615787109590569399"],["15282466643160538979543047003306491544057675253537819372811737408513589285162","19142238853934039656767626859666238269073635596930809126765971591532599096485"],["28419622875242946873463567934919213191151500624157512609792795666577852208674","14362354547872478836837743201579344400773851415565661203870760503148333852503"],["7234536445246813942473095018387364393578995882680917428040277407754924876558","5030176813650443511762422166140628535182492125368654185367180778867226101418"],["15655646370516533219323460579446258245887448352046637720486943035792508031725","12330822585030496148909584269630822770823964364820597463741507253952754172260"],["5330634459314911229869581147752825662310238735561301054719353711677624247327","17190371303207312012611419355369452868146857907997452734506140533921071124109"],["24942579112741370051838071902437985167251196143614550902673536626926741637851","21597524927441864948407652090034012983998631106435738494055830804013861377160"],["28403366318963909233502145669834816237129227124858812272395170918109586884466","23502787071230762779989943945375434440363051576879352498229141386701555463969"],["8259176853865698871780019248970660557405426582589024592010567845976207025606","11495328248347582427282820856879279023029069552318623182949216783511330430956"],["28883685058751447223934722031644380069723526499196100184461267584279725240950","27692233727876653163340703724713403848729784291245045990955825345075021468167"],["8231796351476254714283601936060849734563426352817205403682606406191080939139","5822691044442764849570369826932584793129084880557783286116800350631876781253"],["2264169736040790657502264025547758125283632631373682680300966890672552241363","16015052241977036446511400960237005873203269362268101646696699238036652223979"],["22995289366489807204656702954208479186180178618830415061176591112095035807047","24033063916452239964912123512398615855807228307856193408686083899293317450253"],["2502349342638434063231104191459661650454766994841514091476132209189032906030","3600164981220261425079688658665775701671034719062037345862128438602878345566"],["13869015694894533007456028214971774105150090928532549962894709112658759203300","27946206609295877901991225455628131418167213200179915713697799525629516056775"],["6097809621046489448073453719805591178801716919001825916181730620921260002068","11435713008846492680895177982165237198913399346267570017418030362479010551871"],["9881359350997308051620577976219098704172405793726236281383153743225373339185","14184734103900721179135123420757503691986253462538409305853188156778113933397"],["8873406686993461713772031296337720150208141466432502997826812811810048200454","12037683637989985230677701603779364380655226969145212301631532974323021900304"],["9908224798189219843728553857816245037905905902547499191999582801118391680425","15221939359504932390229194008962821837380170191729232041317412701457301068230"],["6175949652361775933213894089684323339479589819465197809143365619737945213351","24565298166242624490202464790551959445620494536486098650341604277938440018022"],["7431410183355105110718528344087788642213147640967119116644287721634098011352","14445654334163278341352220758924221926468701402638495460006180028607007367827"],["19780392795384614060054752402593497993000434885275182914048958851379742267905","17651804664723134810595156914393560471700791738262780499505570301769975393620"],["15177546620794430983225714801054481887658939793022611733658458764541838337132","23701326875205979494158278264791107553154660895619180175452873865543350582996"],["6955162492826907287274257464332372331045678710445596764706068193356813972805","22655989390897314422746407981618789061600800800139100846010888985853310079085"],["7694385746648448237483002584660841167940609791935888372921306227541282912005","11219251228423595523146474899078397417789052949955076729171903581943346548556"],["15995008874461752251148951463311718142206844595267838486290772875214804460931","13210271844833292775682313958991487752036645984146924591966372512543687722009"],["2998787754318273970868662658809939324704176339713630626236698232953164113873","2021585360342025160765608321686478664924124041332012194404980316238091288609"],["26246389451262325521374605378861944415744301834158741703778376171163416740258","23057594909849694743258305095558594255865635107450011329224659394318540890214"],["13424696411047032211148742204968927192201245198465756354711206929653012323371","7644536344084052027693438041925233476512879965876036922818697139652241924144"],["6158091649561852163832358266520685423282298006146260395337320843731280011015","184247513573827714822445994097389454065185787735477162906763792084893332144"],["24809068984302232922383575513839440931109595487851562807751243302804153178845","28940685432373903567604102019216025187638851466775015941701338449312448633861"],["9933730367016151222992462942351975048050658991648664888368837235890235048602","5403296384208037130738259477819740422260246749288498032750973949052386687905"],["14490552522188898165908875728162054933465773966248824618239974552458964643675","9601664174676549955593409549317496384640005394557230668921675814427742082150"],["15624354209571833847512529528777213228909194004941893522503426730610135669841","20495475359116062973079951816853575132503230547127982092271744163341376488754"],["10652882825206954646949493396474814961115939072496524249549545612790406550009","22461219440461652376118083008248956600942512253713529489297950868765115663634"],["15036251814619393016372410246989996512902728256098900549381170718531384668640","23480042359851343822310618948489487023177522075658925964866556838615972765268"],["8780951461626390161378093271087494548783417659516381348556491163878125172250","8629680090137298008054553885273992433507457141675531198129534226573936200366"],["17202227171876419539863366016554112354611855362887169188094785677618031117788","13439429004792988786018639732900326113529643597020434772250308690210193273420"],["16018736060329426643374074342629057874063344754437836677448580999359496225545","2146957381045030790905428764948640399747429445112703598765511303264274020887"],["17975301605979956436311086225961244051436892375571737091416593634709731884666","20511005520106079446641834263441881612970507403802906879792650483320171466040"],["27576408027929102803889007324351439012781775362938667222095479158757879876751","23489046371623366718255823787135381242812233815901853991767080225416943250799"],["9830263491545731428764449211267284766497992735518901029252641105474913945406","5781869517533398902110940792958032563121940881547444794248252693986011339485"],["27418736332520816596507317643903524839715914421188396243870816425640840124034","4671043051406074319569277312272593959569001345854184759475911863182391076330"],["3951728685178868614651092782036671781380532858943330446796252215448039361726","12205365174939469897735139953009524808828412486672054164823517881716663123142"],["12708713888021667918478292203357438817662053804045164581798510984437102425744","2880896879082403030640988439470234681411207628658984498916118595313718526296"],["20816425673434764722053822150459621268803978418846066964566975432332158071672","27909068128359773802653548019727699356530625976199661366835726532190559041157"],["15895530515762847879516819996802603446860864308123969284043965331508686201958","18940677801435024733100731427926533152482982518306541376686415759512531261217"],["936198095184755673753630644281701053256538723303863873860086997010095568986","13319880192078934634772526816228882015180161345232694249845584113272701316757"],["21411551054482569354847454503830035103689718887442471586817063072321002594804","9630615964757238268081766609394833250898661382438990915474752569836257064736"],["17218738121399421559792593718862519530455306299341517128963435289507151735906","1835159712510506135620169119301053270921262340842870429789138381579158549229"],["19179301908795392289892255233598567702937548314325062663264147644745209273000","26064501582796231722298431109431137694508972771954669877382752199006191258879"],["12812669177133036658402085688044387078353928596146841424984661146482559293064","21771209787552892565075518646423062752701164648864427649833174412075717723842"],["3679940006491975356084225290428454282589083022727576604066209272939869535953","15912486400288934499490437314893629777819723391742543069321888966423303631773"],["11763907890422738985675973254167809787322556102853909024978479017904987394337","16190755191965584645931077010819802949908230122368062137932881131882852324950"],["24363943573691713528029787774400447070266135293122968955490503764500308379335","24150450721217426289291623982669246982185532191312365549089862281706562005068"],["17722290534245233606439125142664132927160018041088362015432490919574271741124","1240805334365659083455693370434373834459395631516854139936327795787673909342"],["8204701308478287884816602466768415480711413054985877622190255106991911526504","1813402898577102998414751637421454552188138758316142022643244405522300333614"],["1001884253851400917982494410076100555654895869945079116802885219806862493582","20122629569429677947944530916289407492717662009584093294174192846671496743886"],["2929913812438221047431373957120235442690283966106712110837454621788945166895","19578738052074135106180176268825056459277389620691004135459051743160545684109"],["24604954214960878111010734597996713053942094681675560760222201626350704211056","8426623298206689236385469140004316681372472634933358752387112492056405306111"],["6711130736440846080663031479019982013553713912153837446471423137569680272843","6762522281503908417126535224621201220515960381056387562292610952949927326726"],["10186998443008867366672136154856432108422794348305860267059159438073971551068","20655571838358785178394813437054126907935382969860321147977616155271158311287"],["1772445353818334765738848319202272550707089657169686385774399268694233648491","15274378265512457953424067337151017525507245976899297140161242654889765154212"],["5307472227204965572770211089251078777149536977786112185460023420127292341127","20705960130086790118035491950334041291244530714329457029003279125869291154645"],["22817520664775104750558962973278523341747670119088061285798090473349940164997","15299364275735686506875145679499913433919432313105422471766415701008490645597"],["23144533548804488523142229298330066789661012566911637390539075998866435438563","20211260888986306272411232949580787581181055854244172587092684874708079961341"],["3347550742245379570248105874226863314791471091865589471739405238223926965387","14518658017993756421423241616772510932147439615264566568297958235370034057766"],["3004118949830506898815162556820922634781531004285097488971002608987790496862","16568750527895971585367997236566656199600634054978333371021610162893710678253"],["12548952502204649524715530375180413181255579871582129023441906164516569270635","14464733832198073605789523161699658181088383144624993558006874354803244296081"],["3120741112609625123096783702316487062413123373776822585990868447628502077683","7199117642786000507102342933233296604136537640877198571075158160443453283592"],["17826901192349396080306178577834223214367521507526895215500502587654793590057","1101184131619010786110604995791279578611965631676816511333667328904931515381"],["20282190893876860412395289022155563178529406722221633533917637813558285695697","27376605880961087641044895571578373705409285484911831172594903756036591714051"],["15305757123065235859627410388529639041034009982154714521977524604944529838255","12603857085141776050093117702746315460894735896410466550770469737129778321985"],["11586937338114902046120581477246957163937683379108594394142893872160746405629","25135109821677446507182585995226402896134115617282457230112681919007667610094"],["14341039307188012609648881750693795781094758608249284919564360628981233660047","26748858688794356054924153656045003064962074598780513726141685571355855714543"],["18826791238581012288569436941273415755208102083644068375176884129031739622396","22581833597271937543901474651687817092869022515705799532541170195144363360943"],["19889332839689259177665584327167136421474799844173805026997616650342738517006","16651429927757212740857024479826888828148604452645202814928913674129425576319"],["9345214507705653041908168144539069469315666671953479501824387588866083503378","19029645140580416645912824634280173606713911471894277906773565231149688390400"],["5408018551480706078463789534631498953258113304068282647058077718949102763861","16914497444159257771810975298897232865177733650894622568724856655729279220187"],["17512462026936449022069817226281574514523717691780191153251559357925434462237","3476468894439207181198899432007771061604566675423101226146670143661035574661"],["22120349906146933996858524033884366530525301046094012228137513187310743166089","1854917007987180699088649512159174279043333987509070264483540627444458009154"],["16470421294144807292059736268283540277506809300765124262296160960428176535049","26534632704195167450733407373926096954056850414199110335442677004837000489534"],["15643319984596212958561490335853405169109680956478774768631329382916225980919","9379878119491567089542616133595864130728729324252463958607392524788408018497"],["2609718940890033463195992189010614851580549817306437757467174580235251618693","4114508772321791754153980046878512524967889808956959906714246960622788863017"],["11745138632952130020139381770298206587697709614619502424842094742842926570635","13429709561227085182606418465157867495988534229953579377326993789447764985117"],["17854647949729688277797580428601612406999938504101078744186698989718485954183","17727360323807038481449851568205661290175321256891834174122285248896468616877"],["17314107765665156154152141404662986323608470144449878076566744971858958906868","3339067778219142327514173866153189146133546858980677740208487202517961018642"],["18448452403849256458606547859529128957426386245060059755215988718535840301290","16856055837785111727069029903441417471162442050864729615562938382514770008245"],["1061556127112196039860976259057513968613624071159875320090749818975023169794","21588395464164421755464957032979212544005772494613071866249299220606277261832"],["23627159721007945587701822355231417612724847803112940047842276461895604481727","7696041284486024452620900534795016549598626106354373270594431830466898194486"],["18310253171380777341918593562641658159290215060802562075698035837692020516179","8243806309088481555405789531153849799167242823425725473992667827269627767048"],["1480625336300843028428121255201570173353913319460249813643902101383028957905","21470367019085350064275902038248872134758692311997306123612049240828425858704"],["20703790776413481881538121163401758202134934960997690036311040558589037842843","2624994251625716983094283722711844540269254947839294909518998855467668932624"],["4413005778727319713829338691503069419862963109847459332527664021037860552804","3915884340461433142642308222345665457062110895626577057918117517051588939798"],["16085809001774002420657870287850240236126334405839512633710121968611472788946","17021993044955412093912392351475309836768763641401240599912275408489422581288"],["2124942749653912352412617727238483879200079576666289698880367478153852690033","19018964657359041062588529109996402287835182940326547723089942226747571488471"],["28745809461653759515737574640573315830950769876024415620609285849101432156998","11306701436643058098670801364919099845105290858162749384679708624992436277835"],["13756924067032467444057309600866830198494922787367641880188995237179234665256","9833589606815865928119932231635462220536557512091280228599648177805641572322"],["16795906612452620225172736120295126621856425098177142533708352490947033810628","6905852308528551920173182986619871536460309610235431231033794622043773144920"],["21973999948741538881917661017409536420152677910471258331764148027704094479033","6568324166582583616559432771299670097634649587551386558055537596879422100247"],["1699229354533068799258483097874207008825804858890117763066841590075626414412","26464912431299388441650123897504024629435988973203027272504271824276377147931"],["13857710376863643483545205018603429307508805221261847900064149689999868305692","13864073980917253481146878404117428540779765494862980138220139447580968463371"],["14498163588835540228710089260161549576516307166473383260183063920387830565754","14931012687698594491563076941070542713008479339370905135299619921812233809204"],["11319986491599761737548644923910547422499478853160184814957424843062187806222","5920778322850368517024688912719352566410810447373060947920720123781964498820"],["13769805422988804502678723909720335119629058419615026472274916300801951572858","7844183143928430248600889162459915143270687359285832541724142097145939686242"],["2375849648609334002041390436448119023200609097247541094779790396732301313271","24976208606489035708473725829158894593152500172396019136679013682537456972446"],["828496951218564633876570946387291365643773511260365410705482768535614740622","13547973307859693125659759133236401927951798380432507952574098601812055083150"],["21371165073870717562118226488678059902645894945900041060435918572597645507753","19704574561228774937944356469109569005007159705292847870174228261426459393064"],["14119589974464785577726877124211971553767487859707634509322338893117008566498","24311716773169636225569415622817458868746303898287102735083515872740916799154"],["170530772488466183657878889010039897501758764007855627360719436210700978865","14772495406318186653048285180312214970643953099328086276191451422450955843626"],["23977133319420768386912384009093483399123524508980418714511388114900703571071","4644839582397787992057709946215569923504111583330158894950989468070121118979"],["2919588312295858530744013475164465300851205984013655920462700392403633711331","26476903681780559560490659199730303611617387203435582791313945846142911757462"],["5209479061340885984021803854289376352945018675326855831627859812023020626028","15462637329553083728893462822459359580027979637318378162147516038238621854570"],["9888688956857138295580844329727031112785190336554434248049710438836747039781","16465496747133880235535116279957522468643534461778263771281178414229963336873"],["13219146560140781506697636234018891766502618579591090556645180659868052938445","3226734605097109732051102299672179574191691452060038548237583939476687448924"],["8143470685586525861305357672384880440422331881383207519828436422346106684000","26402835980449860225818823047150350398861512046427880237193038031880901722340"],["344299850738442101011657492619443847296357457918320955279565680166127754057","18615128818527976206374193505543806204813414519779223374689108557072160061658"],["4403379816410539716009058772087677057380600785527851213205589894364499311718","4700335517860755114588870510827452832390506971095037126016456904247751302015"],["8383664871101999859765843798392584078596996751328947641812629387886655251543","8626428513722245106770491893722054259629812178431411654728001156956939606724"],["8156886306402476389182384149359262879983560596623329480779732109143000127538","28508840005869270666666705269646985274324315450514463568045828419478980778876"],["21041391152701625307166292329619717567689493208279310268740089370752821837706","17622902680543188600624955460922644862987044166122191497301284829033511889743"],["16458409645534783366585661778496462986205449219593425994654534321752497315357","16686883051512270041018251576320488350553858814717038933071206775077813842848"],["12515052510979408763405580633686914928568567400392211598017153208804641652855","16535637913944189896076247843803736789634268846999449964507682701225100325410"],["9160677222383798628574420660874725181224990052701852575369025229670118857690","20764961825701351067991431871992064652562623854631914804184002471541972067455"],["1388894659102716689611136341892352602967638917685240677259212861503163099916","20488670797319140228669837677753089799113986349096426493189751299118552437293"],["1439786408866107678661923371132162706477852027615167183501435648570100439028","13030970431868406115770453054902700990130127304592322347240832086105755175910"],["16926921845370061828329394662795542502939599879039087974879610214419115350614","10691541868941849514256675115098456185179516635958370761378316543724649261171"],["24379621167075418452229998114206424713922472641099657535127420310201623877229","1694354579744470645412452415601075755822331221778665013128040164802597113353"],["10958908414850940922522178629999324156191313017147703407652806265334576274579","16036926871581211799974223464068109818744863246169013263923002282663943972096"],["4200949470884361043523256951592183663207654349356827640834460576687512314256","13009044185974966255019574141997803607414267211887477405343435669891475165926"],["20935821034132016374065791664519301080928622992677797929095422567166212941452","15274873197848574710261862783405951960281411343840317783674674336551630346891"],["12621408140323917595051010607558838548993921473273347227525800740432456502092","9809587505881002514547035527333464721197449653236018449124420719347112159610"],["8085657375106580619118192667758334684607001923370212304155806904724148300852","24812807184108183059240962740806464885213439870642176055680654067920775646361"],["25876604268107287262220295680141233371838080876938782071024905207994795940783","4139949925647167002564002598516184671927339535200213615156491375071288467388"],["21228613005335914849363858902071611880833314084236060417733388262929818179991","2416342402414620881543399710793603748890743761689242732622894897941084714855"],["3740134751653092296305783694421618875036437277073957654960204122524431880799","24038214149575454182309494612256197667484501852588623282592536833884764299200"],["10891867403999700588091509593747502768651074258347027077263164200002705171239","9210434674249983584614167726750336622318896301724237146300072337042938549307"],["2435746850399387914722319224087213954629848959942952540706340113003022077230","1525945964626384603483726583245887118242411919685419812216877370542666748466"],["20603189205968301745589584509726565140400529889697861745659365442256761192064","15059564791063799751768012757779529824114294312550259772491051363133743035272"],["12622919208050464755401575497418762672245149801738696814952623431338146865150","7763833496145869022981419681268499299013288268151162485180856719301197430568"],["15666827340838963997121369112540942623316676381059434162313256182335793375250","16666162149541879055037127682115973900538641393605413449769655763072493763934"],["13202838891659798996034535869064783597893513357656996273271600571091409055763","10888142932932051951150196340690351364082693222713906315748374914727392679890"],["1527341891255591746862357257240260202718017823849791961514235081980250086998","17714848564791045370944212382182052465629232123098342741142274219586067650733"],["13436070717877881787575125221251002427675753754337301355337854020385902173291","20244384669070729111691909706765639445093848944484489659607279952221092669546"],["8817681094682218570076345942542733872837954621376778395875062593360355674308","20714850696997585748685302074410388669853028522016340180951710229351835115994"],["26466261940418250111818250825222812321029455706198816826680332800861931065021","7616757744275027948637463264227621379889834203926424052077058942692929382210"],["5129076101382729063998678311922777975491759177783177994451341251757004799684","21402243325427293170090292527961565659399909214934422130643858323712470867206"],["26723532466890024657572281526582914387829681305339230500830623015294747982081","5066765361376195429878646546181234842592326068167317688598356309794459769718"],["9711495238143997154901533811514259852160654067213195675266113175271661487654","20085960844635091396170512354578895764798269737032037468934676372344211973687"],["13763399164524894788187547295959234456559321779298750956413079101873530244522","11040211822040448272174564537107318141862308685692987491640605287786077926722"],["10461981979581320917095886409839064141307335309928186194449579338518588836875","6536176896547328527894515689614585889844667074149683797201821402727551798030"],["7444430219871058488440198963790931009355957138214058808632397428354447046559","27237650078759195690440905023393672544576213369189312348810205469159251446423"],["9741544039976120439034223004802131111042201150602305102008501908860947101559","24705031764020292528411792389201747268287422298725958800885776047980196045502"],["12231775857883397432261371068531528442043714119373700275630844501451916918925","2533979594444987720769795981943351882086794227811122168168547482292658380933"],["4538720312043796866981578816018830289853660275193676533985999560908698838210","7419279855892421584634311249504294201105142202065356296455980697198795825945"],["3700306506942109747052272830775067525212135841062061326162339339942565670641","4295573088469386380265106027876153964015342161261640080522213828779556670892"],["3983299359603295271429937086166175494453671095743648777516072715139712427213","13255479844742891084501790210875779804140841685366185259208046981091283755576"],["8930912302193067908723643577585686488856638604665444871319620744573386473966","40492953146206212273292007643578275421783750665388428259064465995595128403"],["22697344087480274356696523000918845596965095924217747221590740081346702227195","18614559227960608893041409424368920117508333392153484655332214264556956549399"],["26137718450764865912581964532479180586469941697655596681720180621890727874068","17383303781238299346354371637533536524700003171971626066544010374311576672776"],["26144640265846072195064247995862954641351362363957767470730888788702456238608","14663653205066462952222487641995595644924866602147189950023246945787350375824"],["16039201077402422839706343632697149711646734947467903149152663076948592598984","21917475248151498738653742257155258888484880751597029894195755449118298016725"],["5102118230952133315647832864108736864516306671957893203444284846812425800265","10997841454379692356833682256862900642512691957877511903414801632560659921593"],["14631161961871893753634758298400052900586786990965220834827989727862593430408","25759646600792116545749270752314169519473509400358209742172608679915295198622"],["25718447492863784590890140243474065106496344393485938388299230219231958725452","22885583895789810295117625287698949524157564759720086655007086661851086137452"],["23042182918176150552928363341724581999076337553766898543425055877855846367830","1081489698676390725673753984946860080822448337012895463457039000562029990115"],["26828180117356367423232369717722508476775328412757778196188165104759199739297","23801561290529178051357813145849059691830983618757728048853032938008952483673"],["17531623357272767862873479335142205744361712391260834088789228747705897181552","23362780193597013200052855170285215890367826512460315876410802048685300308343"],["3535109057330753367404998853717818742074080346630578177447308763945735654856","26067774841389476495976972713431639895115880615707862992473220996998744828317"],["13131330645885715353908532555826974162217121590661665500069048513143113894643","6406165637688517089361952181362030155908799678543757908824097927628806383340"],["24393736797866369206137702753497880650886030388794084771616961146428964331453","5305585687905609151112067566998669563483500355136232889490633846033329115478"],["11443239322419634591901312331514414453908693014893104032152603484355096661535","26089919073141536587035529238736128247922173706625951033177888884807355077105"],["20075977395992007325398842084321898767739882889748975710673329420988152990451","22429636765223377373252528095790815757854819062784614692720514785039319959877"],["24914316041070621031121186899353232896967799216987202749931938917498352217506","9020390445524667032101232974673596571986971574378985684252084687218620880075"],["21016631783589597179577854269864454585670688433241308697732496647223156790659","27317983467051256111494140104414401851553142137136098706944051571552967696251"],["15400769407287037424623511960489097955781296528909199351181805631812273844005","9883204737496538077544624032983555829208028251652052412855709663472154805785"],["26883735710194219451133320327482713539263642878896365940652908969041498894139","24058427217657602630267333526280668026817656291518504987897734108626328907806"],["4173010336344572126485907972471026642264988210584427913735767937082233270356","12640513706251515080638701456849720094484425101223659820639582440840976582514"],["3667833896315620073158731119493718242777680406851414824935995591255755733313","27934470442156372653957149366694999812219618077627638891409398675582554367744"],["9712462061127773923183386168802752801038328858827045642182268073400827098569","5200315608412154796135591058564843559640539645979214625894110584852395057882"],["19065434808990199244250054415664158402930768623083457020680042058522924211492","25686572916495505564687312955092101163454107542892419411762967983180079708220"],["6855574067813965603836379525212818842788321484152272021606987345936596294398","28097604067081438050669298643468173300705311985096257633928160183490725786364"],["13866354107273245601884409743789902364885000019724190356660996406064172815809","11544901946680431997218488026670648505285698725673000168704184564039576862126"],["20500339514595171872754870547275638505761983211008255311816297086590200097089","14613661659958308690948484783694415599994060874727352722031961607941857673016"],["28565929885181126361709342766057117983828841873370017756518614096255913942122","9898170366374751956318872549910945217808815518852327295778738829518709097656"],["14407971202381076837954249985706484606053211494907038957701866219282075023642","8403519738720282743985175161989040019631852451446159659081539276286218184510"],["24616055338347405908292936424580166475814930720730241713564843787978564641708","1334032693698176713641642978699164546281825102207210062145829984463384642089"],["23767942309724826238509924643132101912960183912049034160922340323168615466314","11695240577600985324425753469285863400243263935039978056861580924991931174902"],["27459416690698966549753484718437094592203266775034062614333364353730371230522","1004097507176983546487699143428928066077283379589031710406774595011130185597"],["1666069928605291175775945011680314394996995101017101915548604654079264534874","12446012487187040787168271366424988824766051417371382755292897820813662106853"],["11355770610471543190488416166374255365229541446047459279110322969585603439622","20772928027995350388822659313896614954232172804336812079948306848631726832815"],["7460220450178118631637216924381658276125423575954176853767886743606267073492","6300201136450848284550929009051349032148826627992043740598062152450462649908"],["24549437731885657409288162823227466257371722152960872801952087262261012500375","25505561702070254311050239524357800285007629771818047405476451155521121051321"],["22660809675863059847196311076320561651913888632066230775391359757975428537509","13245011223558899897061554890427014018247650818096683767300056786505537453132"],["10994931272743748319725870337783787397355757586278947491786732759378485274146","25621495692707925414335075701724749767427598903614288915520264269212162650136"],["28527124692757488035070063405718444250465460557377611182182878734851051496721","6008260622897522996210511462671628434755046336388136186819014411353766739926"],["24966755375522061728668494974508081717958966600407443603115966230955625583646","16518410823034296869410998631301224496676354005085142719131364286247323225644"],["25828906453388619510758963588370055086219890542044980537078730759232888397260","12260513773021015250016015715093719486230688559296647242105252839053270844906"],["2091587807869440666619064477965020052462078996251078185627996161223926989196","4274582720774297950458818534845810562886450422800978898504412765053585475197"],["8936291131911149475248964418220741501532560641392294241665722485985765467028","1878553622657246418600706171642623398883453976659738508936211117472220046393"],["25459212436335617939572149426210200625139210654725176414128084847785618959273","20507533224490230685753172992840576811073522030339283062618881586632833543738"],["14658067050584696841294675930469655691457826203519320651804806861547377938569","18666328580620089684135018302587560557256443488814052985436386725068609642785"],["19021673615125720085165270481664953938442036851005177091538783147560187874734","24222495651231021058388972392269413576230869287289224138605887992261055538832"],["22807799752923216805215630384037171680673943617178925025147520610133622796679","9429564530532711973771723701368202667190453921707022500321447008828890342329"],["19712819776358394360765345377250386232707020625165645604983781589716924691139","10233955210722936779158682058314210361643962133035153797150953563369728781601"],["14339971481075079502422422501866475757600153545089231804020540264375346538184","21012569138295716595301599812998592471518327164395874297334948905411237960923"],["13765422421354447777171586308394389039554345462019076248072471650239759617699","18943629612086534465874464600142400526550089681882916253884421039453982113843"],["23335229294176015017071576691692409356373654177791295894508882614131543771383","12443934210714494891682094538956138506674767256214726002195354659842629269867"],["24999855453815384113930720986393941179149961639922598759290165508513810898177","25205839416552684669152359354854444380837249775287507497856983618827454776803"],["6998224555835299432728979676896693011138424589561186842415314254868777233074","21881629447845831159705371307741969756157702084876847699720257900280749848078"],["11432101407878072021858420754082597179011739711916863309231220876013005376466","15627170309469046073163303850188738546218109360694119516351074513655150864565"],["25074514729700898646301026358342148405800614582064697974361361911522925408294","26007712239839908543088056572968281317027465732518017671368456998974074143365"],["10205732991361413343501955661949041953211734940618700063899750664877861052084","3734327744787812802495865869992737041087831311655699860752192703397956569432"],["1767093365248551318626146269272594097528201315131831038468255632055996405051","19082412670354938902187836697836872250460389067018666124386944854987768358374"],["19132702110483172565522854241303901481249090070512966568948254960411887764078","11077486894097223234312515566681274156915065645697193360847989677645234228012"],["15048382732059782195751106995906470704861335564871615630548374869378965171578","25971598957582684486901482388764062485728148598516243996525232043594890477235"],["12124695613891280510523525372322975522109035571493383235810473783861882599858","3440382342198525464565861634426770765524485987121948493270423710054209951760"],["3316346899529928230285948429881754817476577995499544511117802736441732229392","6583258960200068550496661684589998294078052718626404611095114888480730979112"],["26912790869519303636522318111090798673177322696385313240811523073652406505977","17906930916263593339837434361714591325015765914633457862138326495632434672728"],["19338588261796057356880143538078190510724833998366444118902274109773819849352","3304336556346464916291233829153849609092679024852172266631532837178156849771"],["21661306140851432570950315470003266049710218845841191164221414196972173504631","7005014668396585292125304898880961171447134364463521479424292484662346623797"],["17766224463364792190281139660656793724157247801072085706500157553075842016827","15883088245791114711787654711111608957122775122087991076371915533653005987374"],["13430666370228126751468894080148901309371445242663062298092040314191301087907","7024448846829291331561181704014235092237592589008226290031358542489033919115"],["20888984251675672479333057052913181456791240541393797742304818340497657787162","19210374363490958160841270731352272044262008205447392314890983630300844200597"],["8019303383173449917876917972584004698118948419024285848330211385043860483528","5369478696954100988706843677868132668080997485819300773017538130256466335005"],["13329255882221748721214158795068400173946513157840156253584883249404046315220","7369055674407457811726707632240777332618996226326546720419011995741384190353"],["24843944404234433308802868101585149193471509117380026680660541119743191944376","3356421761504681414659743298048749795608183580078504158694904604292687013524"],["23833706868077966529857069398743245083935417474679423249168727535759050794477","11459109202804040737549224277774881404222913800889626457980859954640861496083"],["28830513748658789795899043267965029509737536778327656290549534389126819378440","13562513589258204164428990351888965609260802140687644680129672283049185029641"],["738178791275145887182406609693398766093772700042496077290864764182905719766","6084221229924626521498006052141651795951821677642632353102348224265235972034"],["3743184368228638348275573992304866401545438120507980052419975173673115741922","6304257182031668720200610666884750413710189648789273441383670846499259182291"],["2480100740564560515553894521297148973217968721542405938418145625405750453426","13339138246443752482480391221971843703784138425133745524147897948157066311362"],["12252259744784954292536074883880227834040404613794593200924482037651985276027","25037809016973174360274673529933597035114714891189482258232260078561950313926"],["17780830296731980014067660522074779251794442480089567613631675910091697182877","14906408978136917986957039116590454176022104103013813195864206904212755767527"],["11065451303975188068848583942268052494861793431786176341104028629050293967731","14156558485859084582223495943386183138749412047029146962517706988242543764282"],["1623048676778555769349233562150941477572572944770825124773526008469896193334","5326377035451515285319905513098503046286648134840900705811596839041870129900"],["23966293903021673086774628356029816868864700108858179858849566399271278217663","4918180005051051185014642047170767643002331008216251332873822030550939161940"],["11358275274509284739602119582058131564014572742996334173073612954010750868121","12203708250116399292200639865863492950012321501010082010023577680819004508338"],["12998361863315881087009345426501458462028731571778751805323870888518182979565","22028228721318629624515742575415656513628376142545302691069560835780363485043"],["10062424186662579738463987837064905503460082767199664084546052731396629805357","23983319456144251252710206629982424618745152866923321707355947552557949710854"],["11416024079951151099222767410232963047706352512407337391101961340398919024013","25891834098117569925783680271167214091113357415336867516354716597312602450611"],["19187355340705422465239537472923886391811698983190682632713889671844612937109","26488863074504152306293187787028944676269637692833996527786776079547673915079"],["26471503724633073223105423232988671259346419008755930093764671793554230444431","10516850413206455427717915708991307325778341258050892123040677109296558571504"],["4705206993432631949078554128901346538623750776295584231319137408688786669870","23464164600026133290670595814134943283934994321801517840364516563656697699979"],["19904606288951012400854689482252251858288889166878518857408336095312459172800","7219527079179334025620551150725465220029700597204030600200640710689545701423"],["16010785166592406335263086994444071537298824972023878570816832405895136022776","2436941276722084258073511791377000067592175275266991140484997843308080145648"],["10569879292201064187179096824112908836512190269782065126710177508082821009753","16240427039073895854677020246138014300487764895273456285533855058801212792329"],["7875212066730008699284681782204345669303252290962164101397591426044920422288","26869620015730323065253039182377699923986455502138116405687237248775342022029"],["4433287277212588789102870363334187505555270529731144520600787894039141895612","5873148841725844423668989060157447658428845922836214673362520867538544897876"],["10110138499757073513630148161673318939613522330867056542849697673857387457771","13254239788798058827694871159265890817196730008141988679350515358846506333110"],["1049528147936912113417888589813645242403560129673415593000937490161283144502","5277285463966135663480274186364094849308540826501167684629957188159641885116"],["14836377540037981343171349864593795369317647262540218153667624484411795023698","23002616580730643136854642269095850439650984720491112150696276985976945351728"],["17972367154383663221303610113486331055295488072911114186921853620285814810111","27880958416339838852563034684183500261140637883366611549798814928591775423991"],["19966411316581027697102143867091243381142746235456794093596224854611480353924","13008060630464594588678655234481309206381252453545654637262437749704182828448"],["9041505985089734011966541206772830006946344291306804335622763553405602096341","18728640611250444583729926674045048539807580477278566451827721644293290788186"],["9709050015520203980927836918738337398394808392376869323104845291738295702578","17871060517477414666122500907159808092169533544000018648490088438372987044051"],["20577451586194386784051749977399677056026508649884259064847730015054393102717","15796153638582627022817337818438241175272281159367886338576526244327168311714"],["9466764607637400489435909149620866962704640172034440919699696445145801706396","14412867881074149082879062549930492493589242953486655674848078737333347501819"],["10401702252349867139437598255472333913185169575127667116801861170186393116594","10695608939467981178618275695201374779971605356150723786590811510268174978467"],["21355675532418621513997856541864600537892036150662150280124115212892137486799","10049306319623794992239683411904154480010017826915009482606117499903609576535"],["11526346971128128845147304056854885603389815242245145870329724264439895782717","28003442895035530575667160984768733062972052922341763445088683214042791082257"],["3431382778254713635005980812591158057517454962011199721819839304583997784504","22375373487235217187500719914396429016232525967338214600337504817601812461193"],["9143609136368865243042320148487204139357233853036129996739142472186815587364","27988296634974163752620628522778023702788569468364633990071378219743027365636"],["7827629985696882729861014155705322322306867490233788047896759242836053393750","9688495724364339013695704502079848456267902433576914121146775721943391303129"],["3793286134969074925257886638062714666176874332253415523271777716251856251756","13742638084941668725540794396919964846848007327731514099415777103795936974242"],["5447020056351841787528722940982909730017460488087679329313471429382890125092","9220316726550566864915756976968313037805051933133313435611197390672420860917"],["9854260086154385853225238991896831164493601057557137109239384424480343932743","1206327832093877920272029934435464783044827934340913732925571654696432465795"],["28153560359874484235650452110472921913682511315244622100713006054769716388228","27797024165211781843430275934729014197446742332399931370478026610830877010474"],["27446489394987959408787409092005503839983096389411317224458694294131206101348","23653289535602806318066899289790412652795664947905261177292130697732855179887"],["13602570355561894946490270165298111276605895606915401218839637881771028216872","15454409875356302631206748941905697183039360139414263271500490338744039545379"],["4627975159256247005263697908283219204208597484648062047994635718063230844694","5557931172240524282957260409920995481149572646612205433577973605952629036263"],["9895057744250789237472131007879407053900111621138838816726576187765356147702","6107375085367465921300321351013228046968037695828499222249042828538055681132"],["20795799746856107578556451491213044143921649394999141595477718431340958382362","6156689263489889026469927710889282233992670113810323726354766028747607843762"],["7132657010288063520248533320087587845834305064179576942714908786813937137869","24835252210658350093710029037165455704217520706689000252905970597094838876141"],["10899782663225216324059383114547847917111150307415922320543275441775633010904","4783560822439926776899473093721514527635886390794180051431218694255972408616"],["16151473857128528624709741183025020194285341528734486844945980179479728501323","2268104566361208215798821468395031039358564619584915442974423127717622815390"],["3092195483479627816085520903155606234773649366895145770432236384297419544963","22951980975329207258597847567057325397589255915728701919212708514465234864379"],["13505549924799823803847584228006314958443197062208406743725200288325134739485","24194168816568519954183355346382790609215877882425049061476440283622200274634"],["11545006320410464665528704109280791365193615390537556691509784688238723599483","18494604514298835556592341526465689070162985677643105563503208926483282939639"],["23212580706648619836923439880229086916162318182207661997259386249136704332557","20298767990428829366973913381127033522591442362210013324279617406951739507270"],["4597980145807184669558760442791611625266652390038469333771744454784190573912","12949753232819727017121628103653628534150782573747835007247136080301607050601"],["9716707659218151512799611017770060790923978588512743500945429433556668405544","735143050308132584676854576084962936919166768646875242097816763517682311044"],["8342613878037756322787715250928434049675493162015423363696585402180504432239","21058166570277538345785184852569465132646842858390899137787943087436569120756"],["23108980599120074105743869011738258400161913129424525570607385456984467030007","19392030217227032557096008014308496001621934780882754328924865467986699976375"],["12061950366010103663443208365036606451210316339348914192754005006187956691565","310440205039692672654810717387845987682329364150638611768627795929627404409"],["23397722593718915285230821396348813715732461198976091071486491308041269895173","18630584213991923596211149153090474165682832916132065238783191089767551070024"],["19309995878825075873521886796471594630383356085560430880480746421976179667813","18107920379718865961658793429183962601994430334577032954577789013824148690159"],["14273687866304576128625068416410740741172745539443584232740669138956054436945","21393414762110459231024897529227272903803564138808530638436334767281102278210"],["15854877223451530701965670264953861544616725436913537443452290402045808259243","16093067840957414421979114211445669832048913881827984200892883866538120893062"],["21144627848045080781403228565120639701126139504899299938502839365858294751122","12995461648013712006142376496535609469382852548297491563863144847141091349068"],["20296256428854048672929410732118207276843456070528757050925634374200682577948","25027294484989399023515183057180913339890320272046157539074707962970127191414"],["21061426203324413336576766576197152548441491374865684843120096065905828151252","5138560474125491900609922141415695316584835003232677564901362880970659989349"],["25040704191241530846580044176181559808158763685735344457859387622455999528633","9337127814745433983408142838271468789575544721672711089666999487728697292473"],["25372341120440812139263558069484101739287614055290516530844476084572009293364","11358172058194309148592614965963971999548064647019799588262540744005840068955"],["26140470289681703674900494203784670182014849412955468698737763618707298728171","24332268345988379093334155145532586273301833042638382722961944208426854086578"],["5536114586230099387424341713924003052235597295811661745884281081576333144978","24589369231673041513237379858764069778191716578623038399213206261948837444260"],["10344149912362316615841150600254675263895377432816465502473525951184405516793","21104111142158357455594317110657665451183690673503499046165180647557535809562"],["16651862026320274032381549134299655277931661848318686975366370248048781675213","13737184209356585370242142601712884849025677024637644351044893236683476462780"],["8567035897414435567666872991146228624506223581660442510509072535949998219908","4024673820325559356593473115478654784932701271571984560762278225821891447172"],["13994229248636875552871960563650235186183808425593159062613192300322326285272","19971952903597598350162350110206046732233735836934628358046548278381885646730"],["19942343205811636023618398920757163267693894564911647863305657865355139331155","6003623539445640399575924545276596596848537547237634123003153694077789056927"],["1127328164800701512921759583635270717264843843176858247137858943832918455204","19616149848543735177477209772902075997605404664613295008951759287362341276642"],["11958493814693980101793430288072608388766073341130325718603417860199703491611","12053988734158005398875651840156340684979608826424109010111369548630567155141"],["808506005542971197469354334757023607849727690371594942250843331618654426328","20886226930602678156585397349909518835937846570765856436751283650640353823640"],["16462019297087513378895574156124343477172191871240856688260582616835046703914","13853758762916190089010533720861987309806273559680752576168562044587725688234"],["9355779938016361186572660511363656194760624190411271738963674455175121427059","17214303664003326720128488237918858227558798839960329079839636367742606990043"],["22454743410210959800095442356508363667660267902596579029845176108815113043930","23981026776329318179689088433362892091549381480632746427201070897168276343521"],["22808124912548925045595242855797823718703494336276559874798187740792064501956","27251524346225153308230868183832853947262640750730763048842347673237627989776"],["23882374858523643821377026615510934061284088986617341987166721206786546733317","28559337030158357437113941948945869618996167188323718976823372572433299651246"],["20988051521901132280896073890697908941270916113635947963616291756984004036736","28561130694331054363738577652672921570819532396032754821594629033988463129654"],["8840450850999585674170115517742445383831995852209399905690827601299221516065","24962858427402561662569746436751403319117479413499401505514565694583893521211"],["14469725836421390643891872159747644261474175503182998266968553114304111548909","11858837023731525450052594981234128321914555199815141426245729419520545587392"],["2328210278504593533646129194526246306151559646293514289835207796276000699518","5334124418086839277608246156640897231026578695828007421576255084446395092031"],["17230774594218240582610737982218019877171992805814565346523329333713754162058","3024474686877368849094985122489480253436966408462480712968915944568209644405"],["27768087210093220988920352417215292879101734177409532075553102000956499645816","1687837103407695724669113263498914171726344720101933467387417435159790126361"],["6402210456444192170057193088086966099277084225441806701837555871506545157879","2664577683585556219000616834124568332006604844149211643825938929550911140694"],["28516726515746205147418554956755476617911011591787820829985359592294638110680","3204150591687358203339019258556248150322054539716957427390561559337146927385"],["12115347846854772901515111156460428082575975256846745146811797567900187327936","20388489542013230711824622623496802644206306272093368411995678066197876117468"],["6888436435244865527819164805279249497977824832694584642412585516570042654445","14405431309317166017880761126296598843082706863861134282642121407359384350399"],["23207677996505312078449779061332384240446434536849973802577861839462107335882","8006486812564385765021993218748708392818711896705082922798593976860732542014"],["9065606000958408511580901394087860119453009208543801297332620839657435867813","3558082168033991211377433830160056416458931682512695879524256587939856244369"],["3292155491403639466221694369492672650057107957797263076783203595513861852883","9527252658872727140152721649315775361743927798255697498640211794867417149551"],["16327016380537044677310327811269746955360025058887871856648824132335711833606","15970762205857064553745695818734904072006010056791456446411270389786856914380"],["11574007496133100131299318218212588385011312005061579986710176896056131359135","1375099804092801053722605825477169351898338575048065536157654883671041346158"],["26322275773673899846822568787839326439658148911810667683312014412445512066059","2768028357162878018367476781496580740900084420979892930319050393301499161671"],["11638937254334759433456282986115518875234980710137400216476371988382238445471","19684558283355903448974304634591183865869839622046903047010738156207932934553"],["5277342105890474678596898335267099492330383783532402442740180405969791408618","25429096232985992904648753066063472810890606653899815000165619775422744293336"],["21443363239709810680276494629061349639483481330615284005917542871347770831019","11147725771959083246905405575346178703894911905203853245752008179978595306054"],["11131864454686560300850521958656813755429433132792403467228213498505159172859","9833383294949385565304935046506748315123200764678295924456263290382534096721"],["15471537749326952169131386596823003420746565826565942954721685010729986765775","26658878858444965493380130172740966021853973765385822672851426936941706205736"],["178458133642924973386382665638632434395679236800149431705121323883544739636","11950163137264316568850658147839717614498806672090141136254497645966618132142"],["24739206706739456084089381622079241552611060498191755161904506388977356932177","15387814450704706725531365484002427889787545652654522223246012067421198737433"],["28711734896629302699906543743465496290575762617994280167249155158838302915718","9238601655026474048888254575572705111854045868337606652333905440883991821003"],["826435449948268030719568590794912690325124860475761151021296475699187675838","17083346800012307662345358920450483422936430467948302086361242874432596225610"],["179353943649699788965493189856511488134634319285204359919045341468089114591","9498120403418439568699688717788821781013100273752980326331389705137152049028"],["9149072615982776550773503580410691856746593913007147087421196558112377712381","18075235790638804743505893045083398254683743190782080287351656210045598853728"],["12864063037670901562038595468834083857235872996347485772733597197370065221522","137702976884353700016618728187172685774964074150687005087957381100571564536"],["20058917413232027891983797220970770015184764146552379048622351496765331962","21296397183031602600209917994837781112781737592484430114567103370925729999646"],["13715541393854121892705465718354798574517705576980586596817980526891295351209","20640294052556302794829599480489922040837544394502080593943096325041204601036"],["6324350662242080754982380512434176121636361395423439873049472238149912554185","3123255843457033305666114152426335962412267316479346319718375188929828328998"],["21671276203884032950129262079865240685850245391543202576824172243484388273583","21732182370644583621277931848994935592489532740728046531622838806451146324046"],["12527172020842367160754964197553659275355281960025627377781679490055303651012","28210100633875448546179696884400330779997979195904033589731333893205779959894"],["14308106408676430615532548250758072557661253725748994653320475468816637643189","3016258633946871342804083910883686813057080628230862389358834210949041865836"],["17597915250967337191997702236954670122063699388517111245438782368408869079204","443438733782817831202063936897683180084229342547418100333244005799927568186"],["23208445701785956478172055065048325816172066110411433257686411566073749377337","13273937297525292049078486246416810923443928470767171152574908118895620723447"],["25748988699791212653346615344683742100460864796128962108454988684929282858134","2431840317758706533953315020443734003901175329963823328104230560516080699155"],["375785287109412020263983195879760240321251668823845010364803833377159645526","17546360592684186829201152603999855107471374804448830103606945300317097785177"],["14413523969465689391706257095065884662081657613120827419598663609082217295399","12705248365584977887152986342083508830901493561943024518449035663844973683460"],["15989177908381874671958231757379578141445036718774407930658706297751825171857","14582805926911936817442909644425625086193933303826220626240323828070880198179"],["16385600553949722648794198514456236723098763794175310328252470530587031505880","7156758335164043286783388462729929520440150009185352806282278167157270848238"],["4328815945971586733152537089393412337499367369142254687782911218872828995318","916881934618196064594610539318975093286488771759533482646452363969036857166"],["7623257457715221173161801241712477584267525128996420327468686980668599344725","26023047114383933246867157578208043712457649474475841244216879315938315603261"],["25469508011768921606719975428845412549424832543423111118770648599184587409722","11011140175710907436713589643370607091335901462860959308016003037910339444981"],["11116481070830271467035606126141425017502500468456665104751949108601646691190","8678873493975165523250041881498136503230124602366514259863984391983044477102"],["11050496077042114334537729071465096396660297677389056547692008262407568274983","23538870133800035823712718653761362015163883921030460658365102889983162680346"],["5594650922060091947743718270664719654962610479979575470661015097599159788508","922710159461435415338857775506291059111938304857483858901365939507612186139"],["1800074212953069959833978317188232206352751088867076168133039143843614061990","3620650772590486093355824611407960166214998444058250720349408031146466008859"],["13059565102892150270398866909748888650392099541854693702137587309247281048015","26385306089757183412912285333214694267016148414662463884877701802804680869677"],["17223679776470055357996213902428130121991636634738061197985237326352723859070","11453960767326447273014334024796104239213536037177646732177519436820031991985"],["2002200227712731514493141972774213378116269906766510597358842596453623617919","12191066008748188931195610237797500041811749010502080619945375376326164638040"],["16576156556045632076622316809405934011466969539775179544894601976800476713296","17243360933209623586390697724619123068695385113261556664974382243405849530808"],["22901960901978072570165700634550997132360462930681672798203169089673169838420","15188577519097512026483356622502938525677835043080610164255619791992334773564"],["16463256948214755198824362690042308396508558868770998490653035619327392790204","25673186254542252578931165023150693641781764806761527190471343195490961905096"],["3471011301284042467867680990889047248068802836245992216612975943626240442458","17227408208011691658846636742717339614995311002155993313331279304798291962001"],["11368679912193594709273027124783059756835600008415766817463116004611205417204","23864908774794175571338243519224837397586169369175653663496050395072700373053"],["25409981690839238093827577478084343967877471820891117269230884169786692707674","12393567139267384508833275519451261912475574585037121336579864575618797947347"],["8630456313893066797924179114479186083980325548819991442531696993381335721943","16429798452373346974399866349342069458939024124496912797655111347560554996426"],["16556061888674881800300311268362110151908862454691506995983914601059716086969","17725206033436673221417645189012235295546767707032391415326096139754855718101"],["27959337598235058155771747120958539812406123093660355288089125283643037587775","27254925137268836815038884656648333814400698733424775557017734070659754932330"],["24491754038648338023399508874831856621594957987985439361636821488641485179612","2243008224793146207056707521980391717990034746775961124085424434110597359123"],["12962122226128529220040608680834231557860649431863900372934392398146515937354","8851600603928914396453386652020100422228903332362333404349778635645772837477"],["11773540384042608474276043695508648915006366994832270951351850771362759360976","28795086581362501855146799930645575597270938512848276299363840793114781804271"],["5217840832137036450079902343179769276562577270517637180966256086968127255791","20644164835587393741467829082444142461107756057350620523605376289859500193793"],["16851924263926868501993953389575649468664854626236064198088235550056773912634","7433628843924492954101960161257336477979886824599146937504569366971452724278"],["7845744641850881369294380619112140067150345661570357460473347470022673059826","24599767266086796798688764315128271429678252902545032240418930079427174261777"],["26888811961989829585545368621566313850916716240441595060499625629134798708827","17131849258581116634877968118365456297311817080277246756483140495336155601904"],["26999269096327720799170976799082091799435764116250283399295893567052939606176","17151038171985434384574336835908321588411258573834710111879285610636693873359"],["12337076927571354051218433439183505915071317133249955338894984057051567515078","1994916813090697026889733830377191296786410865059256483340795771255571980080"],["2352955168388173643513724261768298866618697688938924615965127503224881555594","24895405371701458372438277288892659422886486404587988768013003882895588638310"],["10511683416302196970348513407530994798128194867434919850316706915386549439615","648622732872253898797437717761818633948454324372686054725387992250597271408"],["5129146251873524367593500243925845511518167635481419966959087027875908685072","2272047492517507281678076990704362529480028086464362754110494738907925913247"],["7525153595643727615782877789076118655522533475544128597873209922177936761396","6849558110609178356824757090470885725378672605558888767621216010476103413556"],["6234324021851502720028069923559598676015245599952829855198023768227644244867","14925923408030081965702945977874991278907509563778688798305214212536799941324"],["21059473272129775332369411803454783543085526742772651755483542535861810153618","4997018278399408800447564493225483713718989377272610727223725814241245315190"],["13013901348712216969125749696540602362144830647433203342758283755253067040866","9455537070231878913563838226880798229778242265946938878130818415768784593025"],["21824072926169322620690056428781234051381269261783296647875006284807293706753","6137805552750884388158612885064275224656750246939230058003234258560682270540"],["9772308759552143703637370532368924497238585341508902518807155852978005914290","16901801339125296344857294494708133544818099712227842197395454375761036824962"],["6462964650599523783109121696603304685989004222198003372558144374646920963079","3051924208615995236318403516463944472167424706572472714730121728754779607447"],["2393692961688831990295310583864264966791544771252499840025501570752770382887","26131494857732486627772719367487013079859800280931719906854732268884250074410"],["1285017904129901962108479438429662242849201941302396866887556864098832998733","23251468531606080285274841073486262470302747061712600634120938383421622942389"],["10358055992817454780341392340153633011834217764675350563366945380102915871493","22562045297181071664487401047584605021539922481171236782204926501173595038166"],["24497329420131472002315817434316345837436261382562300437754027875066411027762","21020190748011157462012507931469601224018890892641505863892046960785042510147"],["12948965121278854038354446710298696010971958961609542638596834484665577907965","15372617510157853435774845401764529309609714973279017642213071546084269412781"],["26294894570093016652490452524099765622459832664259617765092415100088842809817","11953748401962813802353905769331519569247782610658440683725268439515605245476"],["14804885034376708574720914971582585413453222000428657170230345798398312879703","5453666787553683765060568238896424743699890655146175472232961644271302287258"],["24694147797493231193445429401100812249417687485866684994261562077747305370980","3299036578861354557518140521712448134373549135550231391200869876977541228604"],["23978259506657913536992201207399186759786432026420973034195211003668007766147","10456367658534903124532668550189357774695447151929689525340934875654411796893"],["18705361318309787872072413961032595489640089632788464713230945674709890916578","9852753132784819511540803607704374059941804402427103877261858658358509669377"],["1188259444522163780900998399803943377424374211892586831617032769058799066061","15048492518937740555119711238760292773057722580425632344640817989283109893269"],["8524031150638160056108916711141682380527993956261181154715527885983011281254","18444302327201186981973423454749986734985702972881832168407393808290718637917"],["17576486564435775980153797322657431782431508973295115555021144832017036380433","2563800823894682738770367778206235931350288487745388918567929774153804806033"],["23084133499894616221951402418961059540009423738176797574073452379912548083726","22918710256814953124554636669364766902303429094821563373421196442071781287340"],["16797201805798583513197593302257346829943079449768184827708890474151352427874","26902633974128923619899200881140154566749241041686320893984932015621251214969"],["7476132614119446101796387332403322558084561847240319945352778378198232208517","28209718893777326863200166402590412128162988687756693631254792546791664770537"],["95279771955964085424702457542926664594571837067309193959747847430911657535","17300626058464991126065898871779649631809136084975897869524710446296079227404"],["17559074010766886299727668421769244812660006924393292094193292196335688700436","24881405354197677644460132877354085534030150070610729606548842559618636980155"],["27146376006990996976574421268047370386899960037765953820183221444192002488117","19900168594880471587148395883255686719203785497232970682484970334791163119587"],["4740833395546235113098857152681087451200293910417890249467309242701027363890","27907153387426150048674222286727674118231430177259805980639768120868704551230"],["3584421570298032428087311814067876504445335775879619488420222696639891024939","21353347098898161164361103198301663213439668370323668720604188573410803618719"],["23583549591175950562172655798910788494211673894352548591979277014187996301551","7327763684563045231160441778305258784105559757374674905599242011499992006260"],["25312862511160275829756428364791948028697348877404656350212016033164639742760","2355583065836922456526437106907575556796822692895737080451656868855156599615"],["16309575968230182507967753834027181290574294547523184189201450268286694977609","13024159798696836575621172896521114424299791597938420776696395761054906636075"],["16830781291844202576288351168009867598016624181345034079654213138351281730233","16602665627649025884599862987116966842968141807921001819368942423660839694624"],["4704475060035935763812214382823978717872535709784885539161963185644408554417","8745723439941373938119411381799417553316899011661413289612163407814054303888"],["17184019184395996074400960116010048195461316861694669752192127277904771159509","18527880843717942809646933989500841674404986533095162105986763371106639489017"],["13463114934495732080723879367539868801981572246081381096837911376767283503605","19016886388341796516744357889307399085837403641859605550830302558926675471970"],["18149150603796115326494430156133705667618375825187018385458822661594577022351","7173302653816460948779439966767370740017232540516757487595561823709794201567"],["3394773287365960808605503426001504099498533971008613908499551495727151038477","18968772964282028858684350146375018470649310069812971004987409864744970667759"],["26677186024739116903166937825393199178392453437834565625500288244283477618563","12051357394190095087401254774495021561538165679005808216031682671916387144023"],["6259164180651308178851906874349530681470624187116740435427186582167601902494","12321805357602141051851410820404884081304653268068724406477937460014400821083"],["28441907812624281225072105192140716107895879293034600490189816245964393492755","1774436070683690833307059775937425725674917973913851801014808457564565642277"],["5218841695920460692019843389527866209893626981539543305529186297661533145072","22143742453761258498373299592907495655238785309170075952163424550671090405757"],["26753194334516158549278285524809302506532463229582757590355132332024656065200","28500828153757993856323948941309107060531102495463768019900816207008240607100"],["9171453968550829860888684094071015150584102125159144772201835945725702034164","24948056630558568690759756065233332768582075314187646854439188292614420873240"],["17674834497432606269406270377318829483784936314101009347311409517802427806376","18215711557399889962501258895784310733051823525561155917637546699490199254053"],["10767566839625712110786275895014607068593227417243591496834480646273665833425","1671527834039356905534544157864404063070833799373828764127321985847840445769"],["1985381896946502417086959324206039839706437765175656839750183989543300360494","12332652392878580366353388958643198315123952096573662323945331643086816340025"],["12702867287359694718947121702369252987880996996134181761317816055853780254074","10113263696529153494287718792301710155742886759009621683600627621100013598481"],["26718590049115853359103142724202955207094743532275209120245610193565923587968","7838235684827276124617672822257488959084039253108930370124697747082897330626"],["26214895652511955341655757694304064269872884178942410864102566795173820573300","14444810153051633562021842882414043581926028857364230346093601988162974431162"],["19984665326005099242248906851766447994563306713514631903484544361537407762780","24036948341654891622298448202427463354121236957347648630973834824119114219503"],["20100099378088530932885891723757494406871855166009747605864680841721261833129","24232079209787863965920410312496230022804608069619608478683160956379808782566"],["2164229186633824028953673928845011790436991048936835992779295796926711527535","5528170234997785563816193276275298974303827422843179327231303201338234554597"],["11855095601401705165655456431309596487267174639031058611288752947711287972970","26328946681555440302391616030827815245235199601926313398413916256389747042221"],["17744869888824037433436450786844857105936025137852473798686835501292899348156","21034720890398724823894634030402743876309763514390431767966844317932107652763"],["5241084542337375489674413177917119279218608137346570442669972310998092349078","5253066074365239370544905738004852305634569149757304035895625534580508842280"],["28523511096301690809145033429235722641587112747784240884105891418864487088633","19411868951101119054078673590979282364392287485085282672615240239433285667126"],["15222588593797875935080707677658019287635475748936785171474449589978221159711","1939640183751437513185989291752456737677955373181440520028313359381761176970"],["1779398853504891646630953345280279885663372824667355745623984692875001550564","13025270013841890404056132099869547367337716861989067877731783070320081211022"],["307093913971488091607374281666611867275309712093189304794117248462887652895","714609411229036496782746287657836215003782671772339098227158034571042837351"],["14134622439069670578123405088655342577777684269174828263978887764203446522129","2923417655739307474630676269062672410038789807204928038412888641741459514426"],["3123384294081630798359458316004677726464670219456271583779449308729945496491","14591938053489325124473433446421610385590376390894852055943292043207616918206"],["7566813627053010105510879884369827040777549827427657647724189947721141926579","8282175680482367185400743166252289978053996029397442939176059945987643273025"],["20838798030944026038051587273052204472661364966586073987783929666901452575944","25914699393485342548824831480925848459983145458826506578345796263761299690091"],["11455686813971349314451628723897971654131869186936884880941059074493479556557","23688486530481162351422755685791344646978192167867383420186342402163613851541"],["23319443396796429093117413108449478237220828625771554795041027964424272953360","13893274395191419345944179538886790674618731173357824686298992885614714974032"],["3028622538235913188306759206568284570205375807551546424832903619063326444629","7966081823766180477241267859478644104160930850325818006173178110041285085969"],["23462294298582022436935163257039023588521855052239417483691496793517649303634","9268514489169617922893067141807383728503891039405949000062829427783923813377"],["27682662663822375509171476133366151447485256958922272220432310957707014998736","13700485455055646072967245325770817363653257409632368746428697627991258626805"],["11892216414968571731600487623453860168726465748708428826312371239265438746909","15684437055633908961438684063229171486778262440751919308083817370997284557313"],["6973188338433268431746295106510172545750272222192414000400170451249518466791","16295442519284079732284939570635577363281507542548745433591242229832318254153"],["2255786552710074253503813726390008805204966896692103021681826854807401928561","21666294429495590853338134064492946497269464192374034437013046775174130058225"],["22407614356156486639731630588972164214609564640712173780552424705502857997721","13350505342398844268777744583460205744013262719345369685312111356654602653516"],["18013009398921313340575046990673772375864275963389899288184492001603860562933","19109812700213934447058306807572243785155781678472529019210211987281010142088"],["27268727569246579805334158953023178012960698556276477951628571729903466477750","12292523550071404353315301640563625691578212617835627094040622620542931324838"],["969856526729457029986583033145714073642019664511105664141804046460795320651","22152070350245415361513941327747280953919265915219929406290706400209240524306"],["24198590443978533331052230567683279311748622219271799276375303086884335725222","8506235194895603274894201013141621995793751986353684421107479884423148057141"],["24260587266318105611339485593595007907612613260637075287177411938073555678657","24595594907473778961711141310278527059705892349071280931666696279544662924861"],["1324290850689638338827789111848041226603211030192252400827463079334023503003","15486966878621334707724157520281944923600960181727033300382785567736850489879"],["9330259936977702619395004779758374503412120819871073624669720510294864467916","18087881157698178628147052588401418308452977274190420333674425465782265810589"],["9592425798741272184137099661422075134855842985214954792751363419354571078962","8921157388445192467044228425894374070668629919057547099771668223370165649104"],["14445389378390073741642865292831216296929254574629840578705628682252963349275","8508767378118880705044027267367039260178587169567116628553128329668071201258"],["15381116038468582244328402014395745192896451709181484563748301536754486693094","9857244144240630240732467835027261848716300130231599729263041226076765600823"],["2543193341938597199365032810156724619022332077446229061337782891343266946153","16266204589510584871391216319720864380400463093515604783501379602956095963707"],["2468244352385978327024948101503676553096895848825909491063122286933663624981","14727317253283091302210425963029790393359014603773804122114685370819531723378"],["8227995100998970064204336512800762804627368228602718934322659286212324011287","16930552066481905721523317977704134803007768487568176799592373463597454506982"],["28845472553812243567307867028252016679410822151550690542705493606625692347465","22620773551694517298754549765716052258990744745704556990786835565187866466727"],["1070960577992120755252119474545398741924168497147012293956591296984792324262","13377136601739226924206727839776131328694819794548991015679157936209687271741"],["16851934251299645899334429762379601912812286841171832388154562903532487166596","27574299398400277405545645365864411972550992927533759611688759112481492818021"],["13044489179267882716666457801260050998394829681518507433083655674555938718273","7154208590348111498776928096821715875114745459056942149234960536173863249798"],["4604352408923748613419872801119580220356784290673681035675612865937068084722","15595026682599899959676430982670779589064556724203508523019089586002633247829"],["507149409134966589844874712389789238205072790465203301498063581385967441742","24737265804597622987090560377403031477525360170316884077468004669313928304193"],["9422414014002985088551953154965705379700575793496510620171185257765728149012","4032398401426181206536287588505530818505816697712512963815563475802147530365"],["22261259483792162775249953194541283297610901532212783816578670226409201714578","4734755812067027147315811616027779551397422737829177481195468472757824088423"],["11486205824632136348882081812512035712907138579794036418657851923912831930301","22480751149229567815604206510950694380289926824235600377060699774429805938421"],["9691226988276947838353789296235942261013035056571501551998802928711074087339","14309931967097901546088425741949162645989442882863456647474443609916480226345"],["16619665079711512559980529069106923849122876749762118196370856397270747671211","23697686358923368246083660435798212830078927764438560782602447999035753434719"],["4460126669857336325683794025876232878235474316914989411673711840782380755890","15173032089914995297300961332581486026858703195019716677748181414729688835074"],["721078375326565266520894845539221901601452488939174930458713830501770157434","17632731304540517609152126443462439013093623100673896252328283150839154843542"],["6070803448479425052760270145725373187087954157820827527615612602190914087159","8510681438512288559052594912402782799872302069610165298564432522819113234580"],["16025732184827376002197890887903493923353503147573576455268193204242294140108","19450674182973618555259962739057407571032040704492324975208818623548117001583"],["2112695976282253558531063410776246807396120207651303715657247649997911970494","21059022462069527375345676100883025982653782566191281466775305588060961923523"],["17843297781960610685851976959047687334886759203464857732539219154097527531672","23257222054146711504610646331886627101679451254114638505769083765533904087993"],["23654239687588109217641280065211079191376951054230172777923278223350200999805","5642678737650496881144051940503740230781052674984150368197891597826993658033"],["5843139574217915359357880915718273034621470612960830374547615365623935923579","4594867188783796322887928233201055871212654478077785231620312644417856490731"],["571263438895867748961529918368529361271171391848519013255638864936389146390","8109646811572847846396381419574406743040973455151593770952537419495154926912"],["12700643913818630513514139240844338612994395543055489130445957350138499513883","16531885991549780013187211238006744872632784409606126824087711305407830292314"],["20434497866547746260272057637723567129356631624442176202987120638220843846597","25645671982291962946901471536097923125464316131268854351785367049654191006212"],["15746932769512066097561489477633158989444041681253889275604391287379023007369","11605551859589508330150845590647025963935195180697986643769886566891289156024"],["24480571472780932583334166266531976640072995005861554449379573088722066686356","13107878414561066300591901043557154094413086149409811276524558929797244141074"],["8235807936953352560339752351326697104182778849722939449498895669987692138717","13880643776066465611705506120857260487824419731728766563291244374670131855148"],["16199295851398920457629442040247189774267711705525069735644860858905595042182","17433396329059712558946002594317325988170655698469104407741832996822046655779"],["4977150401891599156865061868049223403524318805864830265665939926718517510666","12998551385369055420527035058505154800363298656467477098222239082490859671309"],["16449967278592013671850010449833581386017206547899484572928848795191436540608","18033890695144650040910064487101829780111176138841879301226271229146621393620"],["5299678796658863253163466289202839952562181106748603835533468086653676980296","20597776377898653157787429317937661846955878271764092406519157101263449342240"],["10433627971607904816068754494910460433184757003464975062216570947054976704831","24545194344491506343762366521405144085646619397705520113335852763258914258809"],["5808203741921050862708555813863041239066067706929704020285028704325981828310","25489354404419812517831706584471801830113977451938646904811143976581665348709"],["18586973236196236988844618141053753358593704923386214003757161308220100545855","22138974506757098902286539875970897662279537779429529543154969285456960383649"],["19943078411197109179919092960004611871035169732993142600573855306651813405787","16599459924401128463771679644569161100450998189317722828872966994191967778453"],["3832292814577325837680853948480595205552382405151558082827225529962909284879","16214515835478345371370680247064253776741497647325431242403143456853050451720"],["9419102637517549495284729848540700415178240957793170751826980459279732246380","2265536530319246599161572412855188792666405435921380611531942935133814123504"],["2023968900515792390456641995387618408525304026637107871119581031088044397960","20516856993536886941054315962894325080528931183414321204329341306397151535440"],["2621360202271910995866190337594997769765313698003585428105641392288768421081","8874384956356589550032745663797298724062793948085342445191639322061757945450"],["19645761446870749310616503718848380104295778134528064622026465735822200560564","5929352901011312143571264477724060639473022060259230032748705470178304627811"],["15270767172122183408541997491152358860818830593973089643789612133553685377621","24377363851815648109852740398934158885615485182797541022981274721468749345146"],["11114332516746571907041221239423690015944695958152950574222965497175553203581","12065770439945593691180313040021987618745106111313768950177084919844393430016"],["28714339548483063510594344817757806466195281884015621897697646732470150475600","17200488847310575771319372605557035376024913625599417437008596185869788392028"],["18254976946535134041726343737425923201371642800824689387440849975259117847330","20674943259211023476864273618237593327798382815140576900304559929678088827749"],["16111701270536040947080012718398949857539602738193420600888423307046817235655","4898657936556983022171939753179879603367141097325669015635214062192446643066"],["4699769547237046418563147173853938601239548566517404677813748285507094046062","15008660526808813153074336918068374327499140005777140740309488266601344033129"],["7428189457867280398220446729929773106075766219074915845655902615823017411043","22476954422012990889949854557459019180669280440028880491551590439689778594987"],["22611523003706812093660009287965620119731444482422600309558142641941488752728","26737463772725248890979504249294164246639279352275020407291753673944603316397"],["8124986089973723697653926288147430565337315276130905820224015241583967020271","18287349477064261845953867316941488902158750991199758955623477628852906487630"],["22954852763749511463831219954976415152241943069096281264723209041658151666307","23829813792569049610632224350948317002376570830684732427853228077098283879013"],["14354584321417885416581670223540093289479176229101605060144838669002784571276","21694285886504795169516188829811264583840259452241696185019967939179455418385"],["6473617921906546534612298094009564971469156539707821444817354331481360159299","14452781053129225544285911310660547578810926687673712342130351987478575170037"],["23794582438834036260834664097537934829502707500138948158512794112928896570324","232796024155746694060530007854314442951373665149698830620000588642235890101"],["762814849048225181904506492219856809860245171302764703018140376838189629988","2998406882748514441594419303902390759563465590187376151082512081577335208463"],["5524732352194364912343426128111922016334203933933081289340955142330976251389","2861606458786722341998085177842685245316846268255249141162309885345271550150"],["1249208141436624419958124187998292841166514091297897791362800648123741776052","27239971315353920147131481482851219880442520763857064824534163535331996976377"],["18243114171373722055077378724084747621636298677982508802712794269087588009204","24346550180289376998859214170102454153085210923332057103907134960738089137824"],["22002894917694380997679271141034452539440750883979262579896102809612414510444","26895400832616765270271547490298405583062395521442211606756628373760611125614"],["26402745554715394735989592492146686206953387725413083796273552675958614497339","17849801191775561985376045748221149219629483891104561257473984676082151328108"],["11289999098247897259305605978685327644374821590877816383064212350140844341033","10419341321439133629243092791995976378302240798745028717945127674662024239497"],["15707004110075512691759422178222645003476779722449321726692880914286328483327","22577617695580119099686183431133896910692915439411718799314919971697306560093"],["9186543002996279293166241322659800355831862802544132044167054234092582742520","25842024346555133841036382530863545627273865575509397578103929451781680302168"],["4344555463684586714947962946160292792141069435034744168511406766669362695583","5646297412525446984969845241693003487180084614944991492040338791720382204701"],["11556544661738859285663810927849956935784660277804124379836621012899605078204","3880651429745617047977282391353466993530607698842304369086755821801079142642"],["13260763206459217948461894472598515759531638598825746835828692683099772724619","26186499061359677977091736391906838106310394913832061220107768284157830406911"],["27813363311565774368714077705737185817088202784182069286153449349989261450283","9166699006733433733627966125179964800986246496852787959683436296046899550298"],["8512999733949264045286371441632027382866392300347205516881079000522330468941","11516825744063275682495022640973762616996721326022885800458486890862742470696"],["296891012492161495605953132786197908445128167532997751780454586705889154361","3966270230011041016365596098528767125758882529538806946961169320502071160977"],["15187768816819163797955371882125342890965522672699816361830495765827180193224","17976475562997696550093999475157143975609494303383645969622244889926690189080"],["3508322441961234164383065765846886728308724646321871618959209197029506324169","26602622630443693958177820992671712386663333956605439335308572328045196197855"],["11608639997367365419905839651074014670127006667890131567908640892919937807901","9017598912169245996018641406845053312660828000491590513867467855509521272132"],["7569359633731928874386974507919600362290206437704039196872279668854420123781","20878691636028620429117311140382594911826322213257082489069034028429307775079"],["1057086602041139474190662604079881084013888177782240189996453274939503520035","6714525148907874096183542693357126027292249839088862167391057465095550101526"],["3635747107290326258025166342288374778437765229517195883752777313170902171442","2674462706463384304668293137296730365630495200947106393878233024786745716357"],["10890475139224158237644585100725050463425671819392561041001925119451794609966","8450373842615998779831459239525405753448658380766761155629791311329841957168"],["1953137985691069339695828553464390233633216548858643054564317648411867199010","16116386437459652021392878714029379570681108173427311047109388291273980176182"],["14774649234895837630164230868972205585391549508584328325826735245713764274903","12476622359319262154795769733175332242065168493897805171076025513620306483907"],["3251400712630191615369570784786485219392769830836093157445023691861761349667","5310341830273311028194422630539400684398191118820457824785475520810918639065"],["4032716397450805195937528616537602695967191086373847946009450095387202990311","9547894500848450392402065389999258705012726310409412730008989925559059861114"],["16663229145301661675083981354209328383222102548930884359870543105800321326574","14993258615287513273745087267973622001929590810477876138144005442217226766480"],["24659276100622813889767660035859772397858760354885222186552215351868550931730","10338638171594412834917430114026672304429383307883474391373992125927948119516"],["20074955506204463798851032637231639583469790661294315450754967541246194233698","10602826216957038231689802312178522942956107780357699606994383974058113921650"],["19484601940139919493909603227005940492572740360518260118515054904477429425929","1944241153200139842073411635522572083977604129432069083199017671023804292754"],["22156667566734682967204281130586986470117747500014640581601162436042249126039","874464465211850416409091792486956373508783682657716799032502017747425287717"],["18129053297888588650164219979702070571522656446229136424158192172417396391551","6880454216957724356333461576858350172210149927571767828161637846606675915276"],["13738256820134069195807676425033052013409961461065810621752172627243436222192","20949309307220762610414614016488056928658525804136453022591951626982772729191"],["5397127839396163262271420962480708075750024996980789450905916271941654420732","6543592533705668094652406899201881753413697039566070692821503741344383903770"],["25464030645083228808304070148573799188137114449473307318055940757634471374842","13390137781964363646848049264619282529405272040380371116124627011507700228480"],["13108609020331092705095986447553137732210589605508890414321239180774512056970","16904399258607074128337563497688141455846054892276960834402355915404570643520"],["1832066086634589338749982344180672164376359793322247967826130096534473047940","10646769124615599081164013564957262953845390994617116884384575449931216566030"],["23228672245039998969079976275294474581856430511997259928654784608501219613335","24806026988420365000260679346294618034350905886959375975517341034801676198251"],["13239325058451753946362367412362952215465283075219561635295403239551623864715","18027968860415467550396368868104248930891534437820209005845246675795550326177"],["8823100025484370897519265889604968018196932505758536561847690832593710940785","6898022436556146593578079241632915679070172522613926072272305793498126178339"],["15940091501437707226789223305945210153984513605483794555056890823261908010863","14644719810615936607964154689007566583650137254861633695193505371645262571220"],["11429039382454519825511040803086515960770091872982032414222440281056086635938","3713546893522080503524231682033712415481973579401044110509370487598812491589"],["28382459580072378348524064234812966963747630441566193873140281140046825233854","14901999455337748145227750155590682034405542000083197135278683349413610415192"],["25002523617889847944881031198788339587790609688207648858600581007949469449607","23864693238263865583807820137851522544147124667870851487578453254005913846247"],["18630068495517439656052852122351402810710380822614495009050171540362547776933","1350404320223847073976083652367163438363722958160098000721338258436812498507"],["10469913747315880806887109223192666275282221949592571932607370207625962144034","1994710519395361687301090384219644510705723784109603857604646813496255634671"],["28255112277133835886246327186240234927488112702216875538587471820088152390553","7947372143705823355103866940141092220283704226503896847579922752208795582736"],["27683311812925001515949929883493288498622120646236003268137991286845867312351","11769754379601260995478151188610621942530729490945379478086622259038858129080"],["20885388038131964682044675124645795925554758473017665939037761678619705546195","22483480636999370354850915334022284905687620269701950335857401442427279335754"],["19122796867966066833593254532914882998487705371324545182887235839299973850536","8243295789424479796567856674645045127263297326289730984693505366039470189354"],["12619492823367017733358390173723890107047432240548261423505357789786783534111","7561040321020947430738977925144905833557974333809517769486196005385582539819"],["22077338693436550541831799307394454910169870044302668312471765969950031952345","22960969522499641057230541366749203721288416299945644189265537146197009562173"],["27722121964640575667698256247162922536546309724441296788667049866167245569498","24631837768959158941153346875032914879930014807738070587035515590758280137764"],["8292591184871828679119182736246941440159660409706859840891975359800411426692","13136246647993389396733807726138957023533958689933966267073736841258690047054"],["7187377165647028654648770125444623119876541102827637701789156347270203449500","10100726777128076281706776485614823637525604765431793943170543446549864039737"],["742745109871996235611391863633255025514367305878791330786393416060372941939","8394394875552254943382616363226173211370135323631087325120243662718632451504"],["11339229916016036982846923620672382540720726776957632166429396022048853965918","7718173304876862893342752586541298245650567484091262029672740607576644238949"],["9574623512929481646574713233560191102446948267927770230969052117988340312625","21930322629076643683542857496817601924929509214689203121605749263084658254927"],["24808849316183359279097930862488721039250326869398188772687625925770989010926","6363938461593652623858448147818153775882823239105859842840653719576396615299"],["14185725791554800635770275872067441793304583098386282517402627912053186940690","3887916454127588431983820948171393083296192841138198987347006095007539552293"],["26276015287411486201765540336062851947386527572930497585703398732324570860708","14795718482718675909522834977412982430240669958518000727607832678143629226953"],["15957534337858268702514631134207725049620965769069530979813391831954474439640","18834508714484707134601030106696051590596768707910664782412942297976521413293"],["11154897930800176190496683031358572083184376252475500940922483749904517373315","13526959531880771819268212642431990495625959195890757430140679610331599527394"],["545855043000755798425612130088146582946656373841284339799228197299338471952","17213868615309337712737951712128530681976653859768446005661465054704056446033"],["25216340720316131154491568910661982425889892050765501597229581439715497407237","14340292027497259678797728720958812570700195083549817287863502429269808775584"],["13671331696684993533937474666816154392266715077243995765328218295210594412386","18208594927002035624449233735176979450213354316384384196272716212993493140231"],["27202809390603356576174108860105066605893881801601508121104199370245953569716","19614629899758910843282808515896710270642041193703787507684748265838154722116"],["8824191794716463360962823348882918150831432157987388520200256646549697869537","6759751858958993991012466197927591475716490091957384953622135895908098783373"],["7239069663735416801092933236474731514838231944750138552241319589376179324083","5014938567915224582706489150171609706116625348278137828742342853230473288273"],["26790767821418388716067378475397041981082555936551837792192119031008280575420","22444757228292878974159959993554509635813463395825832917298682802132133186451"],["26709239887199118993903975650479106365295348052166283906459906215214641288761","15258302271072471161903645373669266135349404581118068234821581828533098783355"],["20077359740469531418977211889713000710489891832289675440975238438051602234323","25679618335871082947220089266067456765728619489713344167180858697770379146577"],["4449602921905697394927427124627822106539925929918210321216371254779643938998","2158235925352893128782524817684628944722967978756598342867788583599503094514"],["1345610415645021520569858768367960143718982263007129877500692324633951519725","10439900629727057975342265829613250738785858872434232631796891967970122708758"],["15831693982259308286961685967748741154456802935454367657321642016188227040084","8065648450448346083131520716874132338839410789922433560515961204385357337438"],["15030093888484209344716400574650430562861727870254931370666706594666057434531","8487492041615432711971945002351298657706316293187976161149557977295007960171"],["1730354956799270729459019352539375977263505720611646519167375465575956555305","17530013156825683195216144906330398872177582614353070975980638396219019101702"],["9751349048978298713517281766310143927037595726378528006162451499149151039620","27152340286179845157240091496396689184600837513280335527269016969342290768713"],["1495800975183295693072244078450874947963702932865448186882654326194184403204","9868098158004203957698374146042739007998349223567121663966798729974958612518"],["25590645187276755913171473822575992919730599615481129603300620034349309350360","18844014311625838574214873491261007625614830752312770385751235043308821435869"],["21113340479918404068731965205214553023687211534786385682072792857013324568546","23588474644256320872328510173311699043668831040324015382379809408180370867645"],["22926528530081445286762182826473540415849862419380123216181896022122278249328","5343499182985660938947510624985434013810228271838189030135432889085241551452"],["26891465340049824833997262122100640453087985898893138835029246145378790724058","15079435121607813203576475975190016956954301611340120834067579876037882564586"],["3079470743237609303400088400710771968165088846453855175638900585412786497939","23039594720162963848307552528529663526685635884688169293359417802924467581878"],["21092808113502021903840042373199913993319947617662442618533905710280116612530","1773431540125035795531191886071224020380151398448730601800614086599477255177"],["20594438604930606461779080001949396957060224419813439025421370799850708083208","3442843533799699397812535908134409870705274115554960002041372087720711715814"],["13561848088819701046443851027933702222189791476787711924535464557832316479107","22726922528474507060237860067245776337589504605090199296072750852897759387606"],["3133962114911807577030971274328744372691568650147974451975157113399224240052","26083908208183621037635822883225593418334920190800779486660299383451252015503"],["11677244171094131142383075845714700078112300507263192877945165681120541727736","19763385872084094871848240865278577160377219779232493783791814476077177308097"],["2881886323131533742856379407094420993449875197546198266713967078665421278761","2735288636166227716789636006906327516083112162929989612693156403904872812893"],["6728890319478015921584821616475823208768750985882825821774196498586373311907","28644300450734324368403423144630428401060100021289706094361532114020372823000"],["25423472485385643185907852128519800213354122491343881072501704846767119978712","4054539969584726221642139882199360180718695586004011181480614779705139237312"],["4439953158955486467681866412669026997483153466862588350875022823718199518443","22208491082576617470584783430090906519595288985525153914301102923600029204670"],["24641463695325413937413039342912289625445059525084406354987939303494918389692","15019731059971150920279899999016507862018360132064049692965865322720734121590"],["5262045723124972598169985255771788819041682675540949291218384577446495298375","14152540243329625152372717271296110779961293410893425822879979242463832569964"],["11332947423364507194541170797260607470680135187325398229591812186152472566270","21086781460308618127347941078769365977949511369752005681764453318473566728033"],["12910335942419459953368318279246804411286674980890994253003793711379268875297","10180739680057376046319161660711761475247811187479314469430434503995561368727"],["23227205174455955522948846896872466315479487270343100615704774374871138187755","21090775252018392921836665826232805319377755797594200262991900192222802614155"],["27726689993793351429845584957532042862563877613157194479886145187290255374877","1041196135428793675601118980462777137269146377755332461080753865984937185525"],["10496433263839552534894874510038954219749217255936091072013321620559175582894","297507832159641897175876890406441401772313885535045264396784803480811592887"],["15124875658597700501845487450647218196735226821812441597748713930354212142689","19637508220182976794329825987125730730723105762971412018167187950362910051053"],["16054728052001186775009712095217884958596318728917303784781564784642463519861","24934787297329701808711669853672283099744160827957371378556255693466612136585"],["19962020699247961141634962427797325681758483114994579417480384886979796870970","5341294735013033223670710341924897870588534565516847842134759715266804029031"],["15888283350951791489228773250609440519166709382682380068446805347759018254702","16180994735545927583336940613153309381518395479019459844298785652930335296325"],["28559359113560631270038892087516699663219353597822749981132843963257328273946","26411377232093543661161071049129741145138069450902479105690574361031182980199"],["5711864902181336888754267987934370711811528540419634020082203431975926831318","14867947807577302740918038739295190166764238989617587668721322094379021079727"],["8801942708894836330773119467166796459927605626982517386923402693185417503507","17839585174412033312923520238059859542013307013775995468221773622122187926012"],["14069566905986995712650843540280195801051364454651234199373356521758513956815","10815928114985084367581802284856462884286621455000448298939868089179233969897"],["25913717750034753038306261771789413127350728970081922998783184609916941265440","6209183963159240600006452851969112993394641571127859188337596936213042078773"],["13609179905447333771680405609092969259646018376268816344932915552158338123029","9356706961153342874427036606050539344107915186611873038642521953347297259453"],["4051828183794757998000940274084603461212630434038149603242716667332613785582","15502973905380394005751347469692029531295991240759553024353895818348729477468"],["15957494830537641032389393242667807923096320256213540021477662435358143630373","5259034437967053670111307455860372948321562774418109471145949483257176057365"],["6135929650926390432663379989444949578279778947439308303981310259057809528868","20938149002339097773919435324134849430055833954605275797928128821022689691813"],["18818632147389253624907033855241264457766245769241315733680472757876189955481","16662065607122521822629898873596181384813877158372675568980411658573143615610"],["10337861740621366956026127947900144260681867610488970754620858427464353506351","11052038720607892787704160611793575924651668336242939624866382564390082145859"],["22797434668554612838497147655898008032694884243757950275469165473246824151149","13225816698651401126578714518877511948335871910150902933230061086530769893392"],["3379017170994496886812716626377708922501628491968991218397172657854999194308","27719131138966449399970204848445486464270687022541678723139599741031668662240"],["19653725801663146183938901545473153094213546946621202177745969409969308762568","13802656078240108111552666346822821688867201495854228237838956073316277256348"],["27276173391642276736759539279879284936119371870199568061323837085956824246447","6030311350925615450666314792721593780710913206269207366280642614604864327885"],["4953591580520062175238350649843201912198966775993297907039858288034281027356","18668371410667158008563646967837784218839156005823818127367248624841804096667"],["26655137348024170734086157814478322536359643278294435079286633367875472999182","17147586882942871077270519519933790447882345401628038483402510082472151293801"],["16671688981150479854108181283464783283524528903732429205416708931708323304492","21437296799913929872581996450631680713710114558244151366245924536636142426854"],["8273326707169518482240743278146603457973527237041534133466711005004775511801","1595481272343068761936103468112903824847931344632790759774502464963754108396"],["16098689961778480671226698747258394689713104820214170563860687278268718742166","13915074243950452018596858388583591715909900532194792886205265744525317466268"],["4959903670884681773081697477574674493903680116130442274498050338840941210282","6620685422491713356401455890633508906653675321723394293779260507796600269003"],["10906671009808203677003498092356146683788206034693997559221104523118744272811","14141058844532640170851102622120314965070043436074230674347096375156086316584"],["2982601092714366121344180863747102938638283151216375831137297166446688526180","4611685809025600321055518830208188534714132196710222064995151160183317595164"],["869359959594710968047766342959200663889372845559130754738598760248892726354","1077777346278774568008608891603327915471532329574378133468432915155793408649"],["14119476811726971430108242393832357970477686310668722591144275941241039185039","17491178049312264526125682691793098547562975489560192942077278031496551731729"],["15829105362005826393354813012502351958692580796457891101130333094371013247145","22030527162730238789450799865724358383507948021137311679075816528691495543366"],["3821604421165957429579056210005829806724751688020177716799676247539626892937","17947808792809118931146366575254545071737141919268100310271501219061868901368"],["24201040052708143403962529421014234055368191726793659415346212403303195551289","6631263618331867058026352830903418499715588756386315587418067757896055109508"],["13719622962211443509011983166845097096235131518993350115088886215184709974793","14130227045142950296742264734293660213884860660659788832403890506531813954672"],["17963762627695846866183961028537089604840551742107998421329819090007622160191","876075777981230936950484660934820540190774214060013622984393989988482243954"],["7578520574711750004386426866937145129559133746584753678303269898884635969370","17507730923979590844836133501280859068948007355670394427246433907083114606647"],["28051711511229878900897949787207255257899175935950042815902208019667775124264","15669851534336148511337230818919251248651159297392493126030698863899443922032"],["23380390823117816895738153178020321518957573065605986701457625598649224677822","9084281259718271736126103818348156994841632313057653596875130349604986557798"],["25511284287469735451415706214205459503993170370913983352544350205634596950341","5153306053585097159094715503694544710200413364636220645045738548837970036576"],["5943789660677438976269615564538697768113786608486385448662897695123046873932","5045933718052632237474949032169534504973469625197991550934063709611772901709"],["15142895015089660950451489006812691123145075869289038219440872916202492185873","7441689739931875024633158249244326895195663818514258869307513142087842693561"],["24250338083717092816944219136679192978775131375784640255768405081864024616361","17107514063466611803630925178603663949151669595284122009140599381088664936171"],["20525154942114255324639525864853035433245604424774099243140424618396230482593","981910381086768438614535882680697562424036358693961143333684736078697728767"],["8997061453476707300560759939463613537886707636621554469692926822290829307997","19435306979374300810391505010527000905759367118145693451791831211929892785839"],["4336994243482351445838257731126894913418278334187336534784825032275897034174","14475649700545054810293112494759883342767118114433256521599495527386427974331"],["9199959333280938187420655980046996587371436635774392437250752512352311011262","27597901623790977776696920019674936623051772318162598723481007791952457981126"],["932790169912932106719182373425556306667591931121732331220800740555631993440","9679762378281834832306454970254216554665969586165314258147425800354900127158"],["15314311207532668399195782819838067271695269516923856071152532042653616991428","15735475181309493407833652517818787384919595709698158123540791651445677799621"],["18092880243126113783302662497156798568534643490688959590914634847351866477940","9474249702898063435382621674071538558912798933728606857217053662765889245757"],["20449916381332211550355972560312618770507192589619346151488399680356560049623","13494330686373759378749556330447840704750730828323836955614599628129931439182"],["6423541493691038942100131270364320100576357778288187288375612174346596543993","20449558837134046115321704006688948184337565505255472042416461230816934670852"],["11044633226535204223255173511391453426153472571821721318537569482801321077043","28162070207960240841298831933563309821382078362348403676358868708583434965397"],["8182992167435345673523177839935516079461727754975568339428949325140028488577","2604335316100281133390497048380190404597573065552071856266728436486853354323"],["4775920208066408280670678977250797800761446735628182649112121253026475508377","433451983080148963924404825460339056493959797402889680712908207131637299482"],["5246615827872799764730313448512087032615775536450391065883011435024443347811","2461562743055635603831839869405734048443279310999075713213361021835496311649"],["23311977565605476718778010286419713787063445387627584504036529833302763699000","22939703202820953905254924315621298529035998812450296591196464804919464601151"],["28047379521058304600859170231925890423413863381058080639125087961538272560206","8642967300427263035468231445374874471517998456722703262759420708901568497840"],["10748458105997230018620086144811823095824489780420514297497730004358805955977","8581861132760064927398958036430936348595014328183917518398843352198044671535"],["12891740743406989705707168706113813150016604217500468014769750350043105591535","8369429671253370071900944420293893845606540589240672264711080040957102497050"],["15104419441074349999053067240380078247597446572769372957694480060835268890678","25331034856394715855537231426327262558468758301990912676306379141199145543749"],["14802441798606311794094299661926899067413026693004093513600759834548323829959","25577159573164414559864953682473812726718578472547655450318194523461296297532"],["19756054058044816228694151052070501800588778060456644473613581534064696459782","19086780001156199758736082039473632132236797985998996985901134389862884321822"],["2941464410626374887980782541269433181011507416043714407428141210030948222592","6067723395507891004724166454214672263914423498476597759004339191462381762523"],["12484713678149988799238298840948608949686120103395426172469786545266554583421","27227279394464843829006786716529768078303803295287468966149556047370284560580"],["10608649015300110034351616120729038810897949573172322049439432583458562803004","14016814977106730632069024236899937009393031362945129053765505242131616655001"],["28273856598772169146502445300582452625892516423601127766011367040922172489745","3622197486125392010341945297701390552545000856540649916686989424361641008109"],["26076871284671592261928324205929442962179362728637666857939109035999280253138","826792603755584371410473323957859324544491558356200693767426745924713301314"],["3649667521643228839936728050124538996843480013132784383733706843562801339982","858651322367467381384249789020249983391992434003875587360938224029905404765"],["11034374596604634394892697459779188181376224916492216482785895297244502400202","8024874408655205146166168096344058840311809775243830440426586622201788198571"],["12245514097415973843713539642268050284948182015869064336611839303135796654956","12546975406887997107353945572533769778324248010435443534007554739109879370600"],["2173880005947540935859537466852217205850496793035734347397319894779811103864","6960780810684738822406832400620001786391691113058031239332461910509867150775"],["22141544956971279409565672368236339724653931251122438007031076164693125507086","5417422746993296360167752617747065908048021157181916147741863240978891791794"],["14457689083625040845525673030411830297588192313986023504154649829782587756904","26827468450301975221010389547995121504293793032115479792290039984457758595038"],["15973574085198838672109909750186504950081276572090024075819605812262405529714","21540790846434020515758348563864635814384058208313606862259348932181765465410"],["6359157557935977782553748374186420703045689664894837838789879147548499400306","9262213635502098336475401210649273766333064636151530190222970487279670280699"],["7826452007731808714093556259454514889220131068910731620172856725764264869045","18222484718632499288887971572697046505955483196102801652056013611700477201729"],["27947704231998422698665047084490659661687990548944036295636235865766244415880","25333934056752132026332389603247809606704751678670570050898097609541739135146"],["9541714631968589418283900022589245412880667671690279232933759373179642228941","6825207792066690324278170881889790231400208423692599031761412565687200721256"],["25319917521444014219671664036032912891330725949677108335949690461522288105261","24103042583513916855134172483328689411365384249100056089571239066779476348469"],["3608053761261634190861139497372148139108431800417241097764560873352130877118","13717235772439232634811330167631183102920987160982338408430248584556761421856"],["20591886406954956944048730117141580622679740745327326471534617638693545213707","9653254759957682572589468222024604454544362895041905661108040457768760716255"],["13008258038664498117182348615815247022492609027797422728021521117550624967450","13960629248887451342159743370324002071694164260529193964144447025931835826375"],["22809268767714735416098276568622847926238374525005902971954958828660984296122","20073836900775261014961723842759072855306800094759619920854304975878732265433"],["6566335150549811743036699973422628816191253175276397891210858903829445501493","24155528942765034042911829658826626419758811848177857829725261546541229346198"],["20661628947115270507467495360565011257917279392983156263370574200036412159463","15127672773589644178401866634995948953269647401179828793930096987921817974975"],["24530075807439161651155775090630861333698412646879875230302716081705670016552","12080495924605567915685873984536895502052852542041941050648498489939379302268"],["5959323792731665596928842680022719348093250510847388975017746196578362963484","26247007576991238695492237292074009840376546597662249503603663402178798622693"],["16622294081176459092575418044127340280540475321075167489904405322958066998759","19672361663241328954025024898536748227208674564126914364344643871285182523615"],["6966118652092030833119742384190857828334665374823481938325626483110259257529","26049825441675296336002918671766986293806797279631776498146950203849565837240"],["23463122591127071508647687593029018119885009119633473205756559003613662712752","16188994637881324157359085330729168539517217743042809297245559805274416713279"],["18998597912685819356960703028570281099871931296240395142818269196802794932921","23044825430393315574319878100291013166156600729640614209648845973712866166279"],["23899654205074411282232834964826961705292936330238630334080280770242507933230","22416015511675012351964214185627089989398905583216280504764450911734185844970"],["11000706089551371593492825311824449160384832232177984323508283558587388159117","26223893652889331274641273745383238319414060382576985063993335493606549164651"],["10074275921345764940778131789625071627433591080092778547230684039049500384697","28017730478042346748470211349491869813493351650848224481281361995552157800045"],["20194002551276378322356380710926517475019907484119434459895820110471409231148","4622554575111948381948724921016404584570522943333589664298612749269956544078"],["1299479316714371476338078916519284311854393151594921981429180441755954832537","954735548436716383344758282097647583888337617658773426486369571138334252261"],["5762391463427688563343118992610832646879592054719631942086800190332229600106","9048183991291699248258594334993750488228445261268124408454844327905273539666"],["2081311830749154294591460986417620109930646679619349193039793314449846281805","6267735237295269092137309806685086927706513428839111989875879994497532472469"],["10077994211304529933869253851600342837103255577967497210305922164417100606060","15057082590101051511641079378494876035327558271919916459667504111689828676893"],["27320347190512147628465712411912638545610236974368939705862699930260501807814","21759623231740882183031214765803052427439459640835688333793707977755268854601"],["4293168879201701896356092406492364470600921796805908028916879586705345614072","26983638589335756293820123836187298710794238043423665341790972748533569699482"],["19341378847315853644834468955979698900181595496954847211288343756534536833893","2134068104375265094729705757967289125879341928952607784645093416021835867366"],["2033119261274815734810050635094378693923442338000071510771354340252124474271","1737399341266815731932407882667907296761924874486902421697721966577721286410"],["19708108661075069244519682982975587398094452450993396442216199654015785483423","11004998099224450744563332288987331935674544972445360380425942200449406773840"],["13906451115044528091241110840498626192264192700344981035257501033043593738373","10216739515871477888034241104090036424288883408666448004030800508355466160628"],["22903373077885094425496512403962276253510781255692385118776017506118424163262","23149022198459469892620928626934895385509257630109855723525318116562399490768"],["27358699968998050068400763144704889167088144564975828422831231942112932810578","17053504218375974797368770010797037511620296559627499571169991353617435860198"],["15068067030269678561522410513500670321287537980078755781744120508048531854569","10893027529907996440782423264763538223548488891311280626417700644169142677647"],["3928261539905405979331743812039788556360294329964918401773878446515402938029","6074208960439298938758567585047298104527547602639303471546735571101834179860"],["5880322916241853794505479610507740295492240091068612637100385127466427110874","18250268330260256985869803564900598359012375254920525681087831883842452170539"],["18705426991194066105689580820765236726142177059236269911236667014883117556753","20071896671766423020909162804006788582018062529976251289997215812880929218150"],["8241734364882242350307435365032137526091033615220571369399533098148521757728","24792567032214492864395376186824568643393875494509861051102554618793600613406"],["82986811141127239501921243964519042849413412986405030261866250480602923713","13489014037655437199309123810303489103402125055475206145378187097556713418042"],["15507628917888175955036892260765819260954821675308767693084131375663501774342","8985693874160954132292041856989382498311022051678224624315148911654148701200"],["4448136857430560178282250772040662103905437287834047906135628701899354955066","10066066208428461592648700214350588245365912562500257312174228734345089927865"],["5614724466179680622501144940839903252308625273411365910181304243825950781017","12405753727798505519324488480824207419759359999945561527587234716712116867548"],["19727473020051838019545371730346067106666807335192492840667864702468510395666","11280436082428515764190703809780434446045531171390273231953731972887966810332"],["23074213976935636463440297183496784047696738108073698403126254103944872130630","3384647044531482951770868089022229385933629604210285565933120833406382530740"],["2167017312182377076846266364113174539489405809071453588189571537902084668085","6919605744024858259240910468040869932069225154757568680433414709494811811736"],["15334396636512890884203229444500619148188428833392947772854080131125070133651","17264777882539956221646159834917239891472747909398843805766523165177901846951"],["12554260942178392514139598420310386532740687760880700646044666781528931680468","28446423712868633192583114228124605089797382483360957841809553899858387510427"],["25536377370483374684291681173686183553205750240641103865572708026639070163101","28352257950249024683459441452528295831553118852187053355609018271701958804065"],["19662027257575497501001135440014066856927723968364366496571731380297358799374","21286666307381391742831933717192154590877922318813722356774130819306335827324"],["28379945247133230928008294563183780763625954000237417116906132849606532459132","14986911906393462972955473090418664694329862984610253649167860043582249129745"],["2470522600773385968256826170495678837113627027218777838242359282397013217586","10329303789545473959562099536077354794687757649010059091293932782771694751633"],["28609274536531086630391767951796909527483615480144620711152659407849569044238","11564380631092202052552251233083108173487304143391401980731589904423593173249"],["23831719051679633150758766859765834619553184692185780859982872654502928717078","17156342380225527371517928123022450359231540967807743060344055561353256785576"],["24579220288112328674573620538324101675533570379617675115784284384094396063461","18664633528140231834008170235128108399242099514821469607359130091657270394075"],["20863852122695526469342861518324463986808086262173142250275626929876842465592","23682243156296552037463084723906662664305911569508066641519767215340996532383"],["23955798519924183638838109495611736040075765864748938963097570337495918458357","8450539340780119744362620044931416822983691850019246793350793242886984367938"],["305017739040114262606704742231211120616031572621384632245599104041892654007","27173864084971164694969999425081324254209103502595346910030561097994853284640"],["5142624097627095900662566343732343175021793567075176082474471134255938378650","9908014991410555021099083551556864782029626737731290072286289459250392869952"],["10875711494490696214060561739921340025766058869706875771071115404077287806836","21675296355799925656485638427103501523853159197065469490793983757940370662713"],["26020480584014784403319835212829948669199601748520478145005263430290233418794","3765891672212628640121044131460221809626877929081887762633619298361697510632"],["23198367087246976369834286056867104383165855194100591986747130378414399570955","16969324736124173624446576310174570051173822517716277750409318000711766264194"],["787081205583747941790156624554277706376502060128458939553607719230051006762","2065942022843937247695800714720465579491555167883358531049478225108055937799"],["508781209813277972001449590689868689295692986398482159872342229264112805746","16303119710233144927411101355571442228060104604380600544306437993077936757571"],["21422960180464831907510334698009208778660367493043282879687980796966684799257","6036411372791728584550987405610228215039880634758526878062065532425628088271"],["11851099243952092334647418543281925979109498557854946318137059049200120057969","14398760431666234848575543944547474551981943538796766408794009550645109595045"],["22698882869152746974386777153148527323544545755221983385960593080080576224302","21366238423023939543547676781267894870647894687842833505895820614162083389958"],["18580991397258915149702233968514002690887038659380658475554949728120296444460","24819566260999235343114384449695710244457883237106007444406344586968617618247"],["16882518194294889032030818109359040278586845531224457508422489111689908810751","20131445855438275067963234515938409540235135151764544092939945989067740879021"],["24566985938478170460384742105290446399142612823140615996444760951890915092809","25838656640794414333785511455022914969597957316714880343843083550870822842334"],["3620955888205103633465717513029827987845039888127172122887245286685048123738","26354311719354780039453205937407352240031301910024077757230065213239595044493"],["5059830256386774767917679671949880384922933203670538153740681864430646199307","733896483738256319670936479879388110147131363047408736883222696119594344906"],["512953305944652068406808336517980363354226254517654398307201629551000657433","13612081585727437255606959935446219686014926354747861162161007960877873405934"],["19205500418286171314310316682327732490916120660005886544281816088829346551945","12226738302233709948791492849918796822620794244811620417659657662020099759602"],["835656433869375020781930726525303425961010681098240601840141854123703295354","1380174842015071283179080050801267517045052254504201790811250452103537070963"],["18616745236882254812757299321411082464710172862212195962569244080121779682339","26197388480603042753227393133277961027100008386195794310623632830894295938731"],["7232738537681673661915725177772077448795840538200288306732993035713140605492","9446506456153599748624981893750413275210692605562483087147778713289330261871"],["18436320680961997872901033773361614167325323172790883072858334115311871333917","4225611700689552405901595722607297358730117071609931528860864254511785291194"],["24712220960295866666249626021760736871461951751002467112372850717918539921645","15890684070300594249536385624864612296680100686307925810672940037059025347801"],["18536961041228000744705795403036650995655851980814931723592021918450453087864","26847422137821296183305256096530901083430197883346846041504905270261453625782"],["18884849237923476592524759040310671216740751150442194121418142783188574843609","10643087349403183941293929054405869597667390604359673348207620593355014971376"],["16630098370212617170026502105120571531494285009218519955158118986925706264214","527124654740521200706558508398574658665463830988689878049526774412890048332"],["15133377772161264546404802718679404819854591814165450664033035121298619328555","1760032201082740341115514750377873858064474815672219537159884868100672829913"],["10878469972116417132971730862103410044372842779656448281979741907074541707135","1756338742127943282431631656011109330297997668118905303337479216508028150465"],["7115104248721963679538643075603592502461047977164276204529525097658069980172","7096622324309163853112981733912970198259993272514471142879079195499285139844"],["27449978543736879982315149374808945478839246011159605950070181477019130072863","758285207765649613816993981873401372708822577468897543042409693439978726840"],["5455491017265334775731753893033543829879433717616532108003635373413596918620","6686050368711915862231282825166934890996113071977920968038877486273880603256"],["9046272144834815398762652085847553506099943953134667697570710246756754498355","14867946320614989043719880914414441425279455647815926381236039693900275341189"],["11145185391113336564951392678535182917356685772403659938434942319205393769452","2569748191837505078002875622128739449339627468301288642105583873663122779373"],["21629231987862141813322750689119493803747813896123554812026521149561912825229","7619942408070884418310631399513401616777818772128310690734147394839014945493"],["7279302167188743886733024233011177709100790639009505861435254491972668021333","28145102351921634517635946016706286221211439088019577242526855775019325206521"],["19350928160939943806719818337113525708446930742361926235425030490124171737409","20033222602475625452677446714240174201527793932329808889621718122507092345828"],["4289523747409853264852324458133806673835378115962228715746639919109229442856","9883132677591895690295173419841765568618079601740521201636000024020891459509"],["27115811684055111028012519941920990445071099880036619953389882482261681520993","14701853262506154319602595573094237742942414177020385944838374959869903892439"],["3022890916754289149481003509026655588699347185865291955834449899557355814698","16018628138289445369157777566837881721204752383320372976244032989249920478578"],["25919547822403257835717752905920699205155666784309311677128484876294362447425","1758817206115874508036394121725431325325715051678304576607339807432188248956"],["4108423812023059143025652635885266753536452774044531645522930692830675582121","18564955246293720453786732049052809618989125816852305202736686239543278122056"],["13476001027864189183372508859871027720209115451181768850216810043739933397346","28518770790574360260674507810899390790203356454525079965880468702245317268377"],["1243161219648412661174763905939846848710441364428102363376985025364780865250","8500264653735840215215490283748750123553074305024392329810038795366877386596"],["19140743667936635653614622282700318157288974213905409936136914447482872698479","16091104971556818888573215870723297036737497975458951092658232223593028956467"],["18746613553510904870985921417238737393836041161941157219235285816146012584671","3415481565858231342576501935914983795508373706127941034609310863853363192794"],["17232621206941853561541214646010834316193732447091263662015365231709748818689","21072255486557880181566751468961884883102170151644045255438533468537677173978"],["28840103875274624448203019197336186075034386481386059416653602866926824496547","22025653921004680918355380370155650166347652282430150305306324942285498021831"],["26197776194763629152185503791409146618625629111909360310373899756382879734711","15250594803668726753865681304380703972215759150018587519635872366186205750709"],["27871675900466027774118866799771460082615362482153121672547179972970083181772","2556234298891001744079243279748413652309910066593571820055918299727382470010"],["25240996721403746678386550128763676502373682339318350358910381140409760020897","24797757831589944284250579262849051209515233506788905610295806615385641279928"],["27791085717969731184543753721751335575791808988498048730360830064256886778220","14021088159100000369786738459172010907752954373692194515597959087797376851948"],["27842330524851725513720527762061914401948486255228999526276054153135865142113","6499741267782841960135411915142420831579428309625244019857420991754007244193"],["17839172287742199826295873920287745541570399570248876509695556542911247202087","19133147990613281088752099291009648877198687864414264418570963025681753167604"],["21639179988613438344527065210931630162357300435704677861534414235504960137091","8763590836631280490975955235634606719686581958626650352390463672497080064533"],["3828453502984139968920215094059510416516050517209780225179256852161840132560","19600178106139548436612976512530627249088200434272870660858846640863195029470"],["22585492410092569977970013064448216960429628718129307772910332250680339265957","27302288029361230362006063392294105315742164333629472845829835126820526125151"],["15190035052597027557215451469652459407045882905764879429957130861786133832529","5324333976211680320328690530825838435815408009741815702795158277829007948928"],["24253392453242232166785007796795380352278194941653036378187106178969125499316","11928725598149499458527578633869834416447802567493614132999621718491957047837"],["13098107530298837009656699725018048340973310153127304559213057455953326384117","18214863630003338862374475140022719722908145661834585373352840710209009459672"],["5896426458528820094198994393778150133282109733632944312297294428999242959848","20499692176180417894064759618996280661409797175391872738460645550886067255965"],["6902719887776805615230899664798925856968004650604283442661827908313855425960","22141903734134171111189612174815666584987084742167652819950260889108745584857"],["12771661947020000690594373607594614696737369113763982112485192837283780131199","22027749771180739795028158322213857215102551905251822911056687979871009928349"],["3633182474215329212965876345434042930245515158996354113437751518441894863690","5565449478839961769445314270377411067321668555005780377820737137622867835111"],["15502195083388595566155646971261497357209335103554045648022991294817594473780","7109902576752321669686352985386246187581934450814320015417303482759657457103"],["20396978567947666385151110391900356780821003158896982432615028075617559722641","4439447206764398743790650334044036339265315829875748858492901477508789132216"],["15924375639595816692517393167833468090954901407253335345166930225780304260812","6030648101803047179516890123628394463770756461406156536137634861785050189153"],["4347929262876199858219734240174059109083386034057714932735223683258220753092","9085591272452326366663073594320530593079695351534072331738187632458798995522"],["820950329151756117585136071761643046121529407307090953381996560229673993085","8675997703284009449922746180250857096180305692313775309658248594700539389977"],["4609931470779944973486003097192186826718981743348353421643286691447961126929","4397954181204432816714918502610362993287597587705762271336049182265964885867"],["6605668509558041005629679877315005247516234874311838209323753482384000165139","6522780568286208748198382334399470981025884516658043823625559578199965175483"],["3835184080478680563657363291656767432312956883049499676128652916202128025652","11613400442456574372874295886705388291307919528716248074296785276618461599367"],["21859287017955158830729264476960757058189056851826747429456052305915376481548","18373691518144595618064104785790031464118764580357629837611077131964180612434"],["6784140111461925348306793453427863115556492297181909370238371490949143772161","10489599287347394747625985966259605394472339494805956616905539597336871047397"],["26855434366838632693823737804408156074525680531712451527281637878416197553199","20433466987734848015848216456878140501559113817702384134497657816446842700978"],["23850055536248246875928692160612008151661135657982026968360840071014847601613","7642561030115928151278279714133671865549735664489304271986361483911007927924"],["17841037922441083733582948108673715919536096834365863183489322360239712359400","6650052469341055052152885467615874373186486243068750116499223623245869027162"],["19201097448700529350599623925835766905709726420987427468340688382659239674348","8039415184252115527461264229553547156176149088182350700731574613721642523637"],["26213484796654718491012952738758098353800076373858026516479232593696274799463","24646487314983424989612847833685481640567893019390947478062354060237644871013"],["25624434069576051401448399005438547629403534293180069306956489699068745218677","2709570757304890778887172948626805520559805087465516184718166898855489176417"],["15852016756990551130448886682884381731782564460419633135112071896785312720011","17445921605676481441982395612872337507550886247826166524272151950981452879213"],["15181373290762636813423631292361989271953457397658809279426209857482221236160","23295221966937095217311914694742146724502103081669049596551704001249554199298"],["21049408996961067931115328333845791435257085404844560958864897100007277153062","25885953853698370249734265296547663740532834460774950905325363883357622000617"],["8209990388173454019082248446999313120905177664024299116517816908834995369084","20128731936881618650094145011679178751186617479556999795704549684885165729740"],["18729301363321822147476568668131214238826091495342160256516055269351605267619","18977885971943490605595566625554591728395466160086739034289587849608979048848"],["5269465796796400665088839793141942990129998686331697884772376008733343463784","827987261457244410008486674706589560223382670836357736298178024081670928673"],["17450459752670363448991538039749662229837453719901719993454120753620209163161","17741850258199359151313420768554292493004625603413102135542771150557942191396"],["7812431501400184524942376591657391729114133554254270193914293584772992415686","15501601736906360783479116890172908484655704115432526948862773091845588546590"],["5710712254845703303513112449851782011654090079481738169236011686075042865360","14984569124512622569027711984349191684957604101535156101585035773997502306544"],["4758085849091492911038777759194098873921492379176786688553612376156469443482","8225748651989972245142795242595625449774260607841288170763948174921590164018"],["27941860203172250641838422478783529980470318827246915134958880221950501957141","10656161358086034837108847857022534062022445008461168752869424099565097924446"],["4934184704798272081393741417820911037467212685117564063741245093014199757923","18246042142995061689886638154417516508548685337053952719832255848289522301121"],["23030067245458301590574545103573234497712345270858217726430302696210800995797","10957045066224702328182493890892770079708534032498650994362532826826096842637"],["25924930528068719124664748107705006335488366092431869100309955817301684847371","10482807816447636853191982505437139297403533995801487125146810467705402805045"],["23323368535811793062928968565948294679473478911103105620444688972461765256416","18477787419586439859656993501804295392871810417962022760985409818732222222150"],["25554413640756482528786689058611107571011566811882015454639340115794609964935","25765561024028757076823910548932272033123068289128706979984975965419144340063"],["22736280125827492030854664542504409646564678694743593742531356223906041878182","8787025860705533681469534624536766360010670742289095845194256289277065824750"],["2979006000470815195238639301042901074872037470760024809900219445250823867620","24430752821685867919273856848152238587535332691935963372960190673163625284265"],["7829671586040638549300824369432218806732951203328812654489576058641565882433","12810552829345538904256296442246348641542366994957117533413269788540853127375"],["19148270935603817966874317108806270082206325634200025259448725939924130066021","21295490001033961093575139946673450737683036948887356434052837582870907904053"],["17720431919019818715951468551770807361364787971869566151184271492834126623166","2602597173725662667611563498207054817854646189728724894123928759442704307690"],["22144274412698862917402845893856350471176054177675473018436998038006734333153","26604829581477325296953783846247174690537916420009715610611628684049185822270"],["12678584945283095480070207833770168634439232011893066558009925203276033278561","25177884588876088989100471552028651037694220991202465087834381734425571295484"],["17714286195809104670970629366169173568347156770075101378034816224974366503760","64338986197562165261582703313936595248474536407734731290540350466543549496"],["11155483606960438121009635363196107572351983599244331888568734530744258721192","22535856825582959377105928796364071762673882994272745759768814283839707910970"],["12005552069270064222243176219040383041156857285008821410841864789217006826888","6493070831410714397334508884518111047490824524313500940302730084909297111760"],["6454897196927122994706340041257584994763919422935169579585310415568616074141","23180653825892291558708134988846046723985986067461613171845107012023181803629"],["16503933695171718160100934861756936012875237824474594171884536244323924532623","16071636290855927093576794494991530667376469051877751862789640037694716116494"],["16261932453642013715570988573963061449050739721343641885667779787478136607792","5676194220901854398415561718265606902638007698985207029033970033260852924150"],["344323522254176538448233152144505255745652860169099395744797732696714550826","892732860404077832592557633575128810358280807990170646594685840118173986836"],["21350749494122315975833502793895282300736466917461237838867701451129422786923","23607626304910039248247227002314664474875258939648559749675621107674541904381"],["10230388289735154737898016348527266938326398418796756607691184462409178054476","15349638025002489382953593726163987812216093391270549799260428342281822657239"],["8481721067830706593486786805355388091514463815596520636767395004642376991292","1459405087561896562387000638501526252573448601625725533700237682344211076694"],["23010274589497364930667330413476966452604181333200421759729708140822395109549","710619769293719080196902694186202246583893236319952172150665844270299573278"],["26819881676483174321942799365559279262246451419582189723023135770307580365264","15600684440922532090137013838605607561831342974769836001825306378445265502784"],["21722512209402141116431371749277666993080652013806183685959768962788954259367","2288662938679268825094828051211760219974230405355305441239256234592412129487"],["3689404733780989663604860220667111819076720932964583787550743207041449793309","12847597564590087373034173894801163128782138288783374287908554063016023066552"],["10177745963357979979972947425057649190902986005655983751720603862004212742706","20404059220068667061923242797905607477574293716469637064883109994762755133515"],["12753822480828367649115042139856583012571717647671738144711645739554215391469","148371320908639159497884072319333816649407428308496187170937055886684894048"],["19626262759817947319901109537380035819231048932372938430547295153503361187463","22571603444875450936479558325671217096725605513594378720948536243642084388573"],["19724680907758553752851891154369812954747844489784616297001031767751361990886","13910605840160565436750900717495047471742504353927300542202152400595080167488"],["855010686494065714856986034756287979392975696361238275601162945895721839692","17342836131695488336567711840916667718491229135608717653489899274988933031477"],["1782647168029719551455319421471736255785783023999495026328666547140844052075","24287845849428380804372456437613919613937191627859220284316355584703899193358"],["18296108541526962938739283639250881652744648906689278033559466140730830420851","8770809626758955418844552374695355847799856375716169068984975652462323689019"],["20760017209549971074286892642802335954684504074223086049305479398209976974436","2527113637561943442561048703123701402143106781116738314893250676330889213110"],["2316982774713860487371940810957439317389508019388005681639048263752324005989","27711614895402500019999448323717987775513415035857116058104510082387225636801"],["2976205859868161798290118778399073174656061245651047234784451816084252320328","13721588698822854402321478967524929693264041740821723542892903862889255173065"],["22822095156977602275336962965945567358832846448296537578097954536527292002351","16962749464014029733004093580188116202284063395683362018131883694906281667212"],["10949838118648938818413543316017777577840666055132732967297087706771339429312","19188584091522373832219421274066481045392330004565522728884622369851616855450"],["19165159057045817336108697563576903873159709602840131128090882656283241170240","10422939214798017655185910672289696738415454878675391320808787426362011410845"],["5183113453417066486484196277971660948200541232720555242080116287103012603317","24694568751153116884195933315746737198346602905352196144505709479266355123011"],["10437915280837584535274262895593754089697579427546266497129630720217220384386","17960532480966056410258692567008882571534635483751333881634480077512450434918"],["14317526419814986527211093901521576896953189965923113741207568389016305905082","20360323315181757906397067702129631141032374475625874858193781823008509434664"],["15715483487047142512902318404878469570354621511519957606017025985637427804924","17752014511244541354126936442257771385539266769444851618420399827986233039848"],["10651117429789370489528080256267836939753779849567903997406531675463535821957","24306686006521627216244111073629580350225801872739871730284135832135851181151"],["10724939734522558819345580744872600635129295489129613488130460713192393475833","8164187792278786761718091042596958230455637585230864483881835176039924282554"],["12428287931090225547666135630693669497857739086641007864471452263561790665013","22031626766000914528311376189600448883261508066625205896659688505569782905096"],["14059259978863810547487577542515767030632105449477472162694323276673491379391","5168800201497358796580888591315165827965104835211242219985323778228065272222"],["20301499368597606662258104740295062678532831800573976641780445684107182853739","7841821655426421774279724694850041658604953913888702639915201665363320628404"],["22451197902402007295325474158954781840048116436392729680062460737520868231213","2508907885593504399862279510823638371436012350472906188925547585649959644612"],["18817988709996274561043328073288629983577560340474194158692154388051470572987","3029498051366564516699400640158236385496094360535654264328653221521203553828"],["26935702950259613777688321153259618150522905007030544247906281078556268722007","11201523198879783677626769387846370138630476535395116343934658823686434768263"],["19162277966959958866870820472083133013133917691686552148281040903981198945395","998269099468602055762048641066583638474189252755712161287294390823272757040"],["28147839503396121184227403588858871201965599441666538293772126237359947675907","7810215095338667136720701614927783483701625113022796826918884847738532346563"],["4782288804380944684165994252003332042044521109428605996219537505833194182529","17008394918822295635689105476368374999869618088576284677916734330658402365697"],["3529303433395434502418933942427098641397997060580614401065461419688599653842","20567243737675476348591351496946214456604982211805777715637758515064149981994"],["2600319312220099968186178814971274330399145879738062859097178191721395257157","21928791995270739839084304430915488211563915025700765868104511938746228362751"],["19362140086958902235879353108646511255578121525533664032440012121922682713042","3557969446713267420771789633061102603375334213277078393695559272167347019011"],["5987392617515648308416798628615537006595942200369861129462496524328560376977","25529106734147150433296049561470596299840652459763948412240833115629647720681"],["13389762676413214335224503436726485440034367079315126211967939514988905763166","2917439106527930634372020409642569396502066443218844853685316428801616773332"],["27129619961094639563911704147233740898762343608307800314407920281572159805833","28090431323583128804360674532238793564286630994454590477386569757517654638892"],["11330275022439390959203738420742455904386579294557137826303620611404009084276","6103186367096806571193784393796996720811708230054912716221799895987760481346"],["14344179170358345969292066566825812842517186624597263620765841309169740920188","9779040108770449234028315858571951505343226014497558743660606349136914776721"],["14737457724446707410889196153702577571505592604015013808555926747291851915555","22569277931460350667448764519986564389265426152754919360524235931630900329498"],["11540779030088098095671666649325205139602233639869868700203471239285195689749","25145744445222153836304938903364475300691824248953797351907926962454089433353"],["27090403760303556176225539281814482987869751508553938251585250729783740918536","8142778928074479468128054900984430170693694097584158160332787875020121826450"],["2124261383141520794737039405897760718716830168384695308291740459469765239970","6101629274642925785640837868595393052424831906263987840777827439172282034326"],["12921713479218094315380967782996219433660318987675990692140690845379338295093","25024653830041792863317302532241086765292644005780118124844122343067945290765"],["21472426893904645642699313813246165395999163537989641336005231479152897491653","11602289019866128403155715231965374714954894509462881394592988660317299496086"],["11616495531362916212667114177603322469384022161151026754742372290271974771842","3891464010750605963031020423616207512544328711538895251634142882060085760070"],["3155866094090971178420753811445212882330698146207494048395894291376225203020","13509120723920537694921923994351546159098954762998417689733277903115687581208"],["16285515494622605265820568856991114147039162376707777767085699502553940671649","10866008691203110157409555003516791359471048014510119387024658771605799003671"],["18290982234009641540157962253833097847271851064730245898652777234575500559938","19891206464065499675594512381992535731519941318401602750845548060343899082563"],["22497716338596511322684691145134470045987779434982075155931612088043090000155","8522996417823915433957931778149115015958020507686658379853192296525729000749"],["16041323723788954784487270280064336685680979485459157967909226483521442582756","9326413829052821925151831273492237443285661909611349608949326677886014581380"],["6264059382645388614920160833221859214829908954136874330919513437990009522393","20590454282001598973100743389907313037831765027943099738972546217091500549491"],["10606966642567320969354915623786609709024420358801927226554362051714733118896","10690465480270695899212985796913265445664606507279353212295715085523962992208"],["12688658872403628357050528032668177149750102150794310719536678409487795712383","25324464789187339034470338838866965874098924128407991967693883057827850984345"],["13887362433147733541790158976870222982295823810665439777545964183627927634316","22239386361245330610279020258304339613790504758488662823615821614009684855247"],["2349040821293204262859209318475355210466121083281025789154785787168585118420","26691196798452021077341336770500343716605826019731223298868372775367261722489"],["22903307087660159864802167532436232706211949217596141347282732718242831918102","23904340177436869716231045454112732647591062907914850077580904105932824226818"],["5651756642564475350483253300744689215413392759708273249762213783439410463180","18573679196253266958447562236693079563721841301701850510708483169778437540351"],["9128498630713131522812979066256685539578122169051476306367940006770439253710","13815940736392068577735281948604214071421107252293501908630369208994777559181"],["26868681279951169751210085058011186692948602384486611972637507149571943899598","14625009163293357632382825936824903397903526650993979248434547364548290464596"],["5276751916295550057870091863797420065789352565996166010744223474497670172849","26860455391910205426580486313599809770508663716204634995963101686650312108988"],["24644141536692225992996916409913808602828073266675090575511926357736248885324","19682062774188669614425427823339338227259871015487409867751258595859900903510"],["14642300984854338825126613417153698148538641140436929549790372078914945412537","4166114157381439706916427528292331829311004954524324316933473979404006415342"],["18824178656736635323815854977859444217283819884323876723190994259009681635933","17211971036963534741735758952241416055440256484715198418580557355685486647329"],["2903861953650107167038549834798490870396523524807996822438619753730289462273","25666760415417483306156069971108274493309731893045532485090883754447712198979"],["9210924702176416600205400101823974821561456559182492043584754977687238361385","26507646794078800561391200206028696376317255813716733499061077963588505599242"],["18178443949992748875182344472887813777310542624778543084066650272934833618432","3420697765202223820140223853206248373365475202564341295031894044238833299892"],["10753536281726495612093929049492137716467127671138667908142659266024879197987","21167005608657936062579090563305697937342436103497135598976485984022797115273"],["12056074959784948125025885647363936176016208637757085403764577850999033548702","24707090717367558473278461655043267527233351541652022903792479061066730096712"],["19214436941257411007514288514642576659982559874397684672971203986076562046029","11530072060403016297277574650354944669017047551853017059962376168797265636779"],["25020951554865867091278714114514104348465381489852915183669579281236460806715","26228188926717962502925665266007912716293026405335355894601785995787448555558"],["12373284884944810297772693822859490213441533889916302418083633938161584957037","545069615347311156897808019301885778451976449783370887505566137748219752781"],["20949229661989537745773055841118817371055069145649839975637520882755168730288","1318932952611882595204018649819286540429741580497571369390538392345268871944"],["24397677620477739066256935696493561499221866418123196237523432327957788721055","25898462790101163104541750560862395319218408178272180174650877718709797751437"],["16270813297674065488615044500710814709694825565429918273345085925978606328021","25155473804251325494927303054368954803833605612760396999689708848282762219956"],["13112486471920757747136983779019184108431653534452266489666899338271547678239","10019659184252126043609669698415577178527204712381462160370817162211820687875"],["12755263037241246516866124657043855852024915128624562785884458637192591148213","14245910856052972723581741778588524847160856146270433895007909775768921725448"],["8058214391192408013733505104322908857374422823999729889479083662360587968288","963491197567768830515194049906235304148169361648206257423346994099053331505"],["9985330578021947343203783626549216142087861710021412186625658819475649417388","25154291295524024359767523176619020646918502996775335930086754801259907072005"],["15453959886488071363741430430832035629057273744884792012972566264071602700194","23930911223474314216797051919509647963248445612652088152480668471607879821803"],["24983650236671567233897692940230081298379000122264130760021337134206129153509","17075979518030886952002748603058848083919610042228035278349087960826626127849"],["14616631779423823558953870910837478952053180069431644709865367998647607836815","3102272173557210049487890824169004392395798623095284231500883209939529747115"],["26427096157566057972049269833163144012174961756349606829896553166075343917427","11849792598491267708356510290063468122855953234483119053787428231310678596771"],["9261174162143476473164757469338314001676374563040098190735409446212387309678","23317076968964810814061505114330483351459576713930985741445654616761356990459"],["6110396889410972134122121046531783423394039179523285344355209723937779313820","23657425960725478418740490753828048631549213355507939176444561856895434452735"],["10424975755544715113776582791686120700222261867592475836906998609247270329107","4194147642781446908000030176465888635184139928439033544154043235236068489631"],["9431354813114448100252677023080194964951661195885737450476507140477131852430","21928484685230880753252780415672618695848574066726752913335780792478318404548"],["13532519608864062728477388260404795546377631082397635615567683161117512301539","21330719780071142634266838713663905985706306663719816696386072309917187829379"],["8684674320518460730987828734027522737057614365754751731643510622900701228909","8101607095066770767856385217452014911195389218152292365693533521728482274637"],["23404087745290061553498012870130214941915962704070771314618916573259987501766","10134880441857313308427284540198051669833225888396563918264042294991467475735"],["9047051773262354871850411088980792357213603224531848538026337925801497262653","20532753198366383200228627503729023716688168932840606977852230622304218100010"],["19103161756797986889618225071023930863984814948986690776763200221136365900958","10082688191746870208739357043048734660354299128500159288795939460289343378179"],["11197647782725685582766856307397262183710431025206486038582511653658844243747","10627576811531675671001938086139116957510509719775027201571926207267866177002"],["26782046431481176573392277075102140443424123276917328389096864392456099253372","26973905346631631257425382863591927802000367752199278945165427537850296991470"],["18220738278916144582527232703537769990720581747887472299952171862229445300004","16958530052333437076392138675191944822090127625528166336637688992834376547950"],["22561882940886682963519447211169268134331481389490643777943393573449215384936","3366126317947764983705802507417631033985738047199160108680594227515832117237"],["23024189386541960359508462897322484983358326607707976142367432486617074970018","1076718265727374315423509534356168082840714608568319837314145292213708026216"],["13138857395931833894375105254898703419710579896347384989646497895512362340377","20816137655504326521119098883903757211872817595939939730868621125035500554943"],["3625973140777403788720050651626138863122706901242160586947897142090596532384","17221024265018836109456985721968789793398576483758789510481093239884663768770"],["1755662614944878868845855072449478062881336926825878460536800824358922315962","18137416531763324873389192098848806785612005516238942827007577153143493494997"],["28372137979758347294949321273011745862412727687816701663200919011795809801286","6930943449156474526095363685867287261401189253335309590887948191788265210515"],["13424341830160391791835581241991774786020146033742040360508383367037674545671","24429291991402959867600001288544416298401596634733896390925623837123017935783"],["19148029680879267231741218399246472587277581867269263021787246027630915483231","7332454088813717103390391243391187438117582713808137364125948007873251421698"],["26973995503989364856880971315243010138889459148416070139578550289436818943978","24729622904785856135271762616831277395466530026940671135802115380390738328661"],["3484118986128265925740377938318003742423693269789679756201158530904575275818","24286656401615016485288000838181837202939716709681813694713950969005381301264"],["3285152611391380979017959247807564372506965878785016694754192130674719311996","8814395704278816595391390301384013933155616491956805899416570696576164693988"],["20343845688874928899794643218925906680230726013374228845609974878415633656879","19221254442657886887060734146084000723840559108406490578709658421511557551212"],["10190163983991567210067030357537015950568081340595489633854745185921407849508","27483391788043896212446983477547638607184422901246851919628394558980037000741"],["3002292934784002938411208990757088073472578517071224920384015079374473565070","14431176919557545434616261275936924253154156299728403980119917092810316777693"],["3458772891974752360699649009608058574663837338418902443414854638434640556791","7235542838665452866184170759724879162824106593474084831662546906645505783813"],["24133021490597484534589514638789378547514369041779304001391116161872194646098","6970673896856404833116294076465894674026098694773507185499274101608213683702"],["27340254908492915350468974938008322608856518256184796506576629963524162332818","16498006425672823841699479169690461080881943400207187319218573744154582957655"],["17340458970244615414799069921977983362021460618722966993738116611339836935474","8763615770916883562178747868661391423928738084258158898464804068602393104835"],["11698369182206901413913616794924175030313114869265011003205999081954048553191","13895299987858585841897782689604090249875373923964496849823709960433098394207"],["18270982691219381678904756136732996718022528626252685848034245829818778149916","16615876300819398962079847305847437692691758970482466523415085691640492772797"],["19708172068620374836476038381327810520242632418631806027614604657728057261049","16753937929869439891637325326658604966803392119739782547250790249149304159958"],["6070443602580117685443684632741880344422621889844553160374565102381255165348","1085061637904499675698215448941107678285872355018245942304938590405364540845"],["22743425780321699654748284326011093361519665002326726850524788598682948878849","23093608602222051289017258287161174550366224163423176730288642483087944201898"],["18102783392302919283935187598618288849174893968838785401689015553521011299848","26272512125140736522956103360336845766261855524921677372584816666575924914464"],["7571234156407009229576822832294488897814148521569093777340423125738358275207","8284217367203014610630640825345508496496092943632939250456162512156647181414"],["14469778925399283006993908738111046550434784463036092756319453386122441822803","14359872026381948383439557440967192027153378735027240325956908473946467486256"],["18234335574938131984908138649655673226229971699604600460275650178089322847208","20668415973168664727507003630357980083360606846300763033092468655372327282956"],["260167431298415881733375481586241625070059141362107408870827052550909070544","15910061332119781241351882301517331168015752923581246883078178387512868158807"],["18192670833633331087078432287888968099131329815171574310830159023441030723299","20908320278201642220534463424336900578243145493507484248718925935388217355345"],["23445249271518790702050268003746913544171256569234224872669322989185022511517","8709299229683538002864410160740613875933482734571050933710975905407294937635"],["25829893895654376486042013510445533082753698839794347426606129008753384251946","17227434108498307878594702476866389746660471778142760230059280717244543013023"],["2088358059916514518964258930541168005951083790829530033713755340918864269774","1909631069123809719901138797097315690409367380205534667141151200287327010158"],["28317722038458077366971394645890022539881038317003849450499858918490348337220","5403838507103977405477823447970345129189365380302002038599322508220331597215"],["16224190396850838265534194514963128012370616093694364224106730061870782957514","14604817354097593331809591709556818821957988049018810031673102906040933668795"],["7704710791984484747590798728679197489879322169483638893047424300636708251201","787536980170817974466914877069909679688090598136961068671402808501918304823"],["12003209938668359539967106224437501152208424704736200690349569802994694738779","23961635270726683293438713360844380865566514089721727691092627335327678362443"],["14277888063488968352342502794657788646509652474137741975203881340474476288522","25747076869905354947427393929377925488761162356889828796062741207415890185218"],["7010815607001870015713264035024322436117674151575567245615514609203247570605","17599777131381122394507253381218303638217564145895138012750912483432757227415"],["2792417571321553465215769465136704854175812283888218180244827563303930421184","6047181084867942086420814665983379300706776883006226468916337620732169870198"],["26941617746574521689996288008984605295770341482869606772964680441053425578154","16381755103283739618791734332563911561629616945432908923876004527958205768008"],["4784694364470248716709543562104756031618779009396304641566845602425874592669","4656215816180308004650168977537917295126902235904406210055042671538024692002"],["7547148911500301914963308494075978284236145766220003991874221972186941299359","25355118182824582235400120535945955613796045924084219209371540097873188653929"],["15756024114721890600723459592451114451248306753363814961772021569527982804444","126778697687815496167371182912962351172957545878861990554563131655306731819"],["22382404903333139761418177930354687233652380364763910232683749380782324522782","24258586706499857748683031314643281617584278364884567009737874559652055098323"],["8489253139448636293264490279427732746828820337706457686981925013397519602404","8726928105131155738781868367497006691208810254992817757653985528230732102013"],["8471593820232621720911504313337518332882615007711158825469695645191437336974","27984155259523706189743172814193227854026040536794409884520434605623498537901"],["1954558120482567982800413014459382331399196108308116612111097849375424565496","26104087757118899519200515001182493049943690346597837715747748811213213225008"],["18933756737846068149173908581145627520056895435295124108843406343806471715274","2800756398433665128630354768547785930800974503879339846440793079592618036428"],["11434119455228998116610937437268398830359287098808930955518060835084521926378","14087641466307242400030701486160032668832195335515664740321916474687221799834"],["26209993998912828280004812519664877249504227213245968073313958464893018129466","18983239892480997333525273725724807172927795795112205203227102119149549826299"],["5274757285919377483804869101871617736892631402370530384251657973380849243857","1552224885805390087152253181877808943634774993840967943102598629086104596144"],["19979774100800561162853727535413949784547079966904451546090392174620706523037","28814702538676295142299034323327697587462689658515510557147156767503325964288"],["5533596631633405508752837087208457439465196045928191621953627068723752859978","24315933559359685099655892435821160820123855601744848827213262651494883049679"],["2352312515174216647903094841736161735412232441611178257257789234869734034131","5114038990748152763386077142683734985238864134833895806346953579208107001848"],["16239478801316022698198011814231080900512417027005983484391499382325358665376","19841784275713910138518150222325046690066262037432500803927850467663488472242"],["11433042026946808109038646456241174701030337458226806486449975745262097166672","7592404080040506225903082329394639733646758549140680278870149473762674890039"],["15729622657245521595354680060519944035885464013195737979475754150753545598323","27707219754153312694407375023653166659197522651545980515076737953632949528205"],["4377318095013923980262908036945146636291012136195293940036612918648458969001","13734294237447789033072764370716342171482014348890911401869716216129454413610"],["3818267456161061756816516339340702697787312055944700711618624083507848966189","14947101913736966092439070748812511099521997588723408337080002891256768295284"],["18119611750858889939885360195773237708793599873911987831816552095467623398074","5922682802935628758557396427183827172034806596845212825020673506132974718086"],["27991119175576789463824423975360011065675757375720215250810663894976067122649","4471951767367580513571650600966602625984613511848897839275661363924972992359"],["19374951720685974792359348168139719230740833912143087986317833367209759047900","14273441040821933487196160307405173232285551182406050718187093572238819043043"],["9630005188805969727820773737409522078378706541200168586780601568746792365112","14716873553782092361191026927760388826364934566975929633005662619696500795137"],["26974000207552162344998302656160941027303967602792724136791532741971765177026","11896031614569518601553919368913541411634826748798277326794782845936942628659"],["13416363396816577512866928652436864561492623694834501882930969298596116225082","22125846391877127518367718850266261876128754421150207551147242755696644420193"],["1815095892211496615989798046859290423429826185502807176044719626821009497355","10470636018938112265557704363846373429868287408641118086419936822974292862841"],["21351911778014945294175437212670834185721016380709182493362265806931443678210","12518410448115026979254909068990334609484402836711484570875567803291297770662"],["6429241828396774913356069299894216375741540032545601196470205707452756202586","22885268355626776665521007664079039544274861703036543513930025385583110612062"],["24716299948177637434781937758313208384502896016405982244740720815618964024614","26384685023894787957811870765310178956354367821155978691821397819795369439816"],["26838852408365033737574723042394054376849563056462048683814991335791156659775","6914693252395693586990656030868249348848904289143611924662665584967900739944"],["4462396430386370908097467150977939195990244463937243453839578852796125303122","25581673978453473185064025161566304235242881821921542092768062605817013238090"],["18751129636554658045154249189604460137629268591485101695658003416796208265641","27882756758459405517059423087893986189824270518116538736990226599760787847314"],["12777367328127623114000220172114608338798012205053397377611680224954044233280","26753437628407546673031292740850346713279628360392135884321164981842385064347"],["11550485418934279016479718757560792177518278795571911877738887584975699361378","28470627657396172443396913654436951818771810369819136512438688129335246238569"],["5863071541198589483635663689491152402228285862009567924875143931205082170562","20999113449328230896679186290927605434017146590009735012526206995257167094228"],["4579807063343393932051737144896741470472068688040423454725881685443140180951","20183134859193477580576093295797242248161874332749606552004764523606044192176"],["7913425263863678202355115076209874942973918131774249028137528226921386872184","22593840579600627320456094823929172726967595753268725442748451323008306664301"],["9896904230967751806124196434894012813039583098250427288505377521195905620328","22359513677888868101092556713370562105980596056848630830557482204693944560340"],["17187599363054064805423195140675390674019993343543450808197166984307745261776","7870788723541230221249504412145924598995889140756253789967318555513963570205"],["10409206870411408157151075821794912839412691803159310048216295468741070405188","4385502214487674925498620300830266165515546903392483666689604712882003065161"],["10077559190498527228937011757688896477132987881937758035912230111211412620454","6054234829069654718475403975019734781424306695398521122274354886131434274126"],["6663397089763762976168003560730247926950136227931142649214901733664298150649","23602546672035526569808861742297071125800856320282940839640770185009539470559"],["1415865866851066505379655739511293468658021534173798838400372370622411892193","7596200865664105206224231498300193410043701231727007893619135726757147864861"],["19403319745135712876012810670424326449508734710915095771734452481638792746373","6990648478934710193213725072364552232064113264940405074381332347937016953118"],["21413852353170726089686926622859893380289742513573936077068025547780308635970","23426881990404774443510213717841702451305301390335650793605291183536867203084"],["7275525098573943900412778643869727523581495285898849739511327668166068042105","28082373177202648762140233009530397188151284586661776538660249625298429352977"],["6889413605854268556452529612039565108980973038466112078694883830135314392464","5069896793873432194877194262546035904618330328919538659769116712101056937769"],["10298175252810635581528583524739141062904710256536324095305852874117121562972","4603298035691903451974510240727155485480360283740097910665757888225746445192"],["16627252357450780225380819774285304782240456883116323129930028904248797945517","7421238385756557198546200234265764331632551209289551119940916293751471756941"],["13585813055186462401251784796082299717940419804973540781463134087584434247235","20477343471303408034050198684915652869532108676938132933530822268419708452764"],["3535556285161009368925709761429830332686339329525255457810240356010657246760","11794700204017183153820121107046816495125186047845487896594578260076592723900"],["14763755346061602889413714939323880757710986848486537823013096454541532322996","22718204211297900276645139720210539423349074918825969411393183329193769029121"],["2450775226910107380275738223712328769749426611905795348279940189641381453556","3042437211854305243320588576794141036764475875614578786844700120559885172143"],["14060031212865412093809142361435673624761340527351596523999769361977824311505","14810852710523751965382390986452009082803094039465651170752649880142965635503"],["18092013304102443071959774772803301494801456992632430901793186579678489767599","16122599879408172334638544658527424012026011811269652082891564640976937204046"],["28428640473657409113686593252823378361205893575049114472476420916871278411749","24070905049751376350971048955319273687946516596487745891346466614637314451487"],["10568179279610706760556048693498523837652711487531763503030094698541049377469","28385473035251833135142203981792160918466077744829891004780382664850934164614"],["4206237135306161151308555002370711700598339006502529445958626053915087874491","2520078245086984996240793947678480469104204016271643174870627485535358097039"],["9562298457019929968267455670236735992849645852822086155797699991083672825090","7580347389651434490343558674482754635514255238007872722278786546699572402540"],["25919659661285809208236856307655047763997168344951110086963784841619726154661","26389730311232532302291946383219338575871258771969148936969572403771535746436"],["19184567381307334906763903433579043801115488125272237957279180589044116544334","10382315041872444901059602255872376590530142793464931327335427842688046203068"],["12478592516006206819596150575906313786985527755795473100245803567552573638647","9254157209126298503873824983316705023405359235098862559994024225358105831424"],["23257467939235539900557875783755022492832200457623964396039261944873610686379","10526204512471336881284890191974887083546152833436058486638804035785049877321"],["3561757690654052865864871453937163203443582206793328630152889997618822061449","7258366283626435343652511798344826165730806608469311898686174811641752028169"],["11190733996049761201834125977345213379467405941003499707070252696349697734394","12275662940217137742135605453142571058695569172342439579852414227717102631346"],["5204938908286788356761838929300677786365386621805551808889525390453900913005","11590050268715644361172162218327180527487151084343611839074844726681655348664"],["15322627790161600363194771964428760293673933282198720424906257310326623830861","25837776595987398592405820516490163463497662842766428136185177272833608113589"],["13315405154350168158617936250146716206709673271904822728626856100306436232086","19348220889673959884511980436090329077894544676796226053192823561267003684694"],["8857667701099801462427620454555761288831110774024309869246941940160876748151","22856356251459572355796345376023808974667517608869748545775452905716740710135"],["16955976628688935915677095437543614972832295208892691575561904963017417127330","6410462772206377443176558793200547710533745160618326653304497132227565292048"],["11907921021135426970365126354669555999485179637432062861238015949831174815037","19859928072522026947886808132216278937265397880042060427605908200233025984278"],["27451899408752203918983093843704783381988937847373755085930381496304590752657","17864478208608235457483408625218839286513836339458454005986756097137610594007"],["16350896289599555145328164806429097055663963024613966718265107545545604109522","22172683092770085159625484654640021796354069326008155496055502334514602684172"],["9577961612056292615640636425589751762232808880374171592188525316049363081435","7725291801498475075336449125282670463543563509202751631458185858007056816978"],["13775529027973159553008476479688625394915041055777111842957834300365264779315","19388692803663145315536844522203768484963277618724484933666148735238520460355"],["1405501648896028368266236197434165605262404388819708616792630007308941702457","4811502982250544447301438167565790126795938504275456021934287635712095533985"],["21610030737067195599168833988561493817217365945518282801660081388373795160755","20996183659567185416193672943913868261408017657057861893939614939971193105717"],["1622560329674157307500578536214123601302466359408816710054152794650194972806","14221621126901653243825855620213144115271207441227564548130809558345698302421"],["8589906701751639521628638754338618917239473687523803507760427485071266894885","3362043197989818031700520315675269262675185754880262800919480043581259546228"],["25295503017163777542210497695229107044358470460489946205271770378060660921216","3801369784228798338934278615379585282917161007198754641920590263392986579506"],["19817785904623957899927357404727695586070242804092289447635315144651319846471","24433180382501629293795755600958277496035973573080778417241919986620088610900"],["2442679675707632925389174174674777365484573075947824504456154325435709595618","7735316322670785785906532826713152168997112039656484707251864964313158086662"],["18361120113131024145426491627697239894189414503183727920343111890941557753094","25712770964684123290217698456424199972154599668942072939264893133466251325152"],["12085077839340176020027754405058131962302978661726489871843758060575639228838","4677518024897061677145432818268386497174945379609461757757909479765324963628"],["7930652537404800865202833696559230695674533579359672559241148388131766626092","24847869641864796718861027341299429852452915995364510426879782840852935285308"],["14839559067579447170802171456053330812145572198459843168700161639693758985929","20399832489563183109019359385677680231669244772246101149771164149791513646687"],["4546215062292907687179246306634728127268806789453101007615567316035606265575","13075557687882743512956421222169235556637584991814676270996574061227029841312"],["24382721617670852723883401487373774508214835291625761641683733468486287743062","11011506434442146691322697471416511236073848629660655266078093219885995950097"],["10741967775294167418528551392348157379300486004968851735564769429051988526152","26682294329654467775942810206425728570457169531186244091894996114878945861832"],["4866456549838996089601585606869265805159462320129823521176858253483972775887","1838256882746773200435962919002978767803927279909139280847655541276363412614"],["4106946765381965886107669164498657957841870089143975467836553575800796334468","8599555982154200680198661815539198590254670572838300498744344181917408261193"],["2758533714390566327846539014417736212839997253746177150631875132328319431614","3588250987550728389688452910580496193421296161286192929995259240651445329611"],["23158547737266785422173479577366630616350376560110440592062238643996342552564","20867821125710996925372237244897730358666264784906173366989379281290401903443"],["18013458669058447668796912151648400618483710514932808160977564128566394825372","6849842099165256905479115688545130451808963804848492877736331176401465740085"],["7488106849096844180355284402588835128191498262485373077462805639579420750144","6272890586521116837620568881803004457259506206687423078343498810083705639896"],["4164696217493135536956224594174324222438390447008989146575137679401508613629","10440080890588409751416740559113221629700221713900087224416778551705571372601"],["15284870240199331079670487737972164071850694268781267690259483547868804355886","20120976627271249807932022965014020906025372043956794626826664552229950892467"],["11809434103397940348221421229442006017963068311165061100908899197376763539468","27276791661405425345932573939199013236202837152869741544923244234714546908255"],["10611890086361565984920881461339016393947530189772504159715627555604737798403","15379465408973388281900751025606381602498802590593222918386396186683642767022"],["17355087978229482415544223422290342056651388510396882527189093486089582750560","4089360869372032967391101640920742761736524824811980829212518682748670740785"],["23766242787736522940013039231432900483950805633027756301806136768892786542489","94409443112175571276123797996647144824355133692109929000401220274109221754"],["15699658510291735843918822655632639654068898425079257455802623855319782249676","8405370804076874532749334641649821025837022431134946660841448655464718163226"],["2961151269874343385756607606445091084722759574338357047789133405442887994437","4983297961308897977717043492240142613004597086139489425801959393296588885847"],["25055186163363149208929056389665871384308427585680837226596190824205491953828","16192651523218345021822608556960084728221598016217245420910989507562476785806"],["712621351725891921083771686903974227898918106296951581551310036213748347103","18015523514128616621121916913492200740663296231757892689825339367563883105"],["2618998152233750233887253282771681469871922201629559514886070215714012163795","23144497932532394563155882144047914326720028078441710991140124958292667340411"],["12111786587292779576069460953206027365371924053260106720247205022522809194578","15549543519618867850456320261156124699894468438164966998638575467637313380804"],["27801153757634886782911211412998112054339115550740808905445887966214360744590","20183279126732598838103959793736816433936593703519296876013256647000128450448"],["12249538876374891384574640970880080070080179552712875544218016278498250870653","2313027487029207041609442083626455831810292975876384127859121227163395737119"],["9715243878615521112692206072703448700926411002159097610496233267335197202195","9450053332539434427280144534112463473922482494867490986506786938205010797839"],["11763601510306418008506918644195669476602530574653673995683620344556786979437","19860378767423018770236274526660458956903634383696477167513808932197096513355"],["1019996578919573139251574125024217678501051155542543932538639595353578011229","5014305121347120488983949005914239019175225864464292125245412120699319180701"],["22207813893105926809073565395737765406739482664120190212829777468236578671861","28081074791581946500670378088413517031987728302827713389119300366776907772630"],["306427877491799595131631483265935946252882441497889449751538509487525168576","7413725343274680600257124482804485191907042513617182391037561560140779376299"],["3535907497928030198206656726303229333881256625350723849116249614925054950410","11699683545221533644129573293143021555349616423406279068525742389807887538076"],["10246784424549199166395432284795563433312752441456423618914370355481231466881","25706098119568443900561479442739627612878373647567467107650113186467226462829"],["20010857016463138202850933827525180534544240501322939644099086053650355002270","9051398312543426243407116036707130097959843142537522802459445806186792541521"],["17311832315595957490961783176922041267755891420693930673770648878675681309729","26933415028889105068572108100125004323509314075036067271368847735436285389495"],["23846163133271026008287735228057904959488642122717799184195098874053480216609","3417523764085893697802797993836009236110200238601901624204065105713234389544"],["16751400880201899435404756259654412773147888127691695688706167859127913350599","148243172676474456589360862566260788562881680293439259822145209681224881355"],["10412469473032193731467406467104395901963717348113000126251889373107010242577","3528702863472916354552941931850852268898546663314539655297682462640657725541"],["19523203088030002110542111457636707203246625352444638427284348698266238492005","4012039396465155614746098615228755411725630885568364444587744785560998491308"],["12870382438663811742937591914474075269825901849738407995880119846142447257279","5195521350735887396642105944637735722989823193870383703947176680668877410530"],["5911743822349538581338455002668881807180350723026662730040081651047760914137","23868335513817749436886579528203579182874318189698238866396228411311946346560"],["20495871945182407092700145776887839128297509670257327225484579855939383530359","17805646478456685129212369303521630336150053042382322112524740198319654273176"],["27983379433277593278987675185213116891422683608602035335413163136865392673780","3360702609607169730251485711155331600690088598904717712876315699399136326109"],["14360492270646580236402484148884705793762519035596989779817763678832240724771","3614776171240252673015375562274332751840669498282649821560731240025113220459"],["12535477507103468935197442695354852367449436946769824781649751337346504485381","17597228647237938303260467123382110477052622722293187887929001727253858876865"],["4768400187659728667949631979299294023328106488379645070353316307962417220911","25186507440586373784641582982493179768264275581173770392433967508207376923604"],["9272803727309048596062121297858664631911815021395597073826024216917849106770","11167518203528654665607592203879560626122316756802707483279138533782646653904"],["27577275841353827207053279093416304749743185128735461537340241167951355422620","5266938178598820263918222168892695508207997586897637641297793806235800306210"],["2445720262917713019048916100072011609676276989412941073351488998647361916577","20413229730078200298764642317930086921053180260291215548145530624733919750196"],["28277346257621702438015794096903215587960591777144598297368999484658764755288","28811514571607914166702494126921298577997359104514864421415995337097264989655"],["477405657867453094774058962129963460814100824404686951681529146763003726510","14431389935666369295070320049960988459314170859792058102271930148198166838650"],["19366346440415935099235362019962403559938814000874245793518638981331160856360","12661344398129504955712821781335512695831189661936986423668092089663987179589"],["9733082578390449072769027366844423770007961020632855909761129079281037969895","5079205534508940364794387406087865172683994048220406626468286773059920691598"],["28241152622550412646372093970391361243570898845134559721346984860687513537821","9690276253759095536455161110250108922441082919551797035628882999054233393481"],["17770367655114407559371313359342257023272158221063096244532201135148527274754","28810602019501674222149219624183246116299101752058662061221763813812999896804"],["3026667066716638584144608508424635999455488946235174345302876637245150498781","4402645513090924950888501415875372378110256954449991638005661858180824875438"],["19288880347290610134608460359989645288444949642579904199605902176255582726056","9401542312926147834385549658547807846107277601835384670075593644700624700690"],["13462184561508985469993990444088990503258573253935121834719997806472972379489","7599423242508842099715244618490347049706969822960112194375388813698033164079"],["9292792392193990798389016894250185004377679093378337133872683967452194645317","6539300281131317911697089572718044377679291401022626545781566371319172440027"],["11868764995925979187887063632421106694479594048939355675860269301140445358853","1156151568066955916789959680321893333209226165457800354775975569849726791555"],["9635996370044043583517695706033871278681290864899965863164755520745237779316","25615495187610463294919849771601746977703944816476899453264216375763222009095"],["26694238062280183943700828975785377347563464151189837846563846473200346993051","26564183639797604453881379583582650290385213770413479425168230199330389075923"],["3757223729956964626004902998773129687152492951016147789407640974034214463603","21341051828438328213535543942704003591573125559883936676343203500250872015110"],["8026348141723550133482876400334756238626579948327277300892152993523012038552","17263179373657476124116902722086593610105819876218780029902017842149828014274"],["12545898146656297617128474481381971353166308847326218095963898283816520661266","28144475978288727195488222308305015857418776484728243103569953583245387483986"],["8170289530556243865919535969266085414467167914783531922466988707880406882622","2537708651441528691152615131646059348140952905064909661802069835370441246242"],["3155600737392013920452640181802962224719612762248520299961414967121523717982","1968351627416752150093370726091560499034034116892487562847317380766322857301"],["12350838250733051119882207311568635832919525231462128643198448320292410606976","27261793654520446970241401052976625076378951013434350433596576107898453949014"],["18899218971675609649202624012856919596092556993459604512985013288835128495186","19931263346122891152895547389088390446204933342243471274542378084729537086076"],["22900075328178425025350228945533604826589839323631048599247701295815655394660","26246175787397083194182336409523219681966550451815967707082495592895610635139"],["12503798349085209611047295509234530552965849850984610181359337218398298128916","5333649067771663074962894095736672958725512456664605717477756830965980910618"],["3272673935657938534137762799312051280909922879385624321289258784988400065163","21846658516839146997907530225602004549573969190012032725887678372226431529218"],["15746665756902266569619410643490937036162243983351608213931683323580843867309","12948400552662317696272665610434886726031081111165165512571030369600900637573"],["2226092848689532239437617281278145169002237580800645559878488780140731036877","13369170665057993792455542786130694625980284036754393805836367078201098003063"],["9400411477682525856910116029913330395538190774861158672975774903517740924142","28756493013640806845941522546457748543635392128885387893550820918103537161373"],["20128216145925742017160423796316174568837988948986449764399828624122577402554","23097541976125505045013455401274186400496679520399819325242205629111985731450"],["13915794377750477986791586706563278848677504787642363694181842089766413018234","771951654147667669875644714997935062601052897262076313125278012880809904542"],["21861830290770349342964132424909420379384813460616767018279290040831190711225","20251495989451015236327778263983776751472950915784183993231510335723755060708"],["13234235505170867929503604738616739011077230523256205153041628238885772348630","2561680226347515199720743508992748533441706506123570950353852325370582335398"],["661900526942791996998294466375295350769186581485075966331211852586581536334","13715203981444902726041952683776020570095566676978698667966586628223966458816"],["10421912784356264901800088432830347576644323354506898853763735064809960134336","4146784155375401035781596183676994731295623565855113481645659089846206616607"],["8446457042762508245620970796387133235579074599959186947188990206042720292247","2625869977187605082188572421852010156798751745014607325263872194845103834349"],["4512740253823199676987776819355286697568569803368101732984804764765356783196","4783032474078294168367772470654383347459190930042876423407767805087544949405"],["15211330605482966622352228515098066757319605259022661889317558022258437080602","19550908471507128008897734151161128727369763074385033279406577041479837084679"],["27619105679884258850888233537642024688984846079358725044982315853940421457572","9498039737751605687714055485858997366933561237733519166899062473636682167577"],["19480129064213108605004187607947350524937632750650343586184734097687742048655","2511469153075573151735072660373251172072120334220131689997665833204248243704"],["26360603180305847106774327301859508170745398429701723841723870783657938295153","12070143320584008620165155565445774649930174015502028985994800220300436976278"],["2032014215387815192544068465103946567638520109783187140487303501075474079252","2993159355337773440376231564590307647237514381935589909468466865421483662666"],["18738819969884193629047319278272312351952109443546070212409319641817852404430","16102932908536380128629481934826872805578627997697523686864952597568190304896"],["8554052737134648679243486549925139792707055308127421515360108811195365435425","17700741508571156343590997965792039797812592389041171062457372087209981047234"],["11624670319400773715670797284323443440503778573167659358128008496141809713903","11415848185151134702803156379306181854338687081187566837491172308432661965488"],["6951179168658469062374362163894298513494907070292824006342074267395755860073","11900648188764926872784610930732081304661926887172712162473514258991979355291"],["2524120267341041295314165372711228410686819557371986608491418527882615525540","11017343397260870189174095711392693020081796235885875945551320395666363693124"],["8602751706960977127735491646793773538961838200999320071957466998544978573092","25705879624594433100278506450404159272515161157253892360250548754717778669787"],["24137617353966564635585802893313278301527619330505055657515505187036207618591","12271351067009121421967131678603998129040755675647297744485939766680599235823"],["10437467308860252057616756746874836534348831719621928437511805676516056074833","16943416886040086375176980291815236091892127543798849732463611219987788484807"],["23955273988910395322765838107810793301658650242376883303356565062004431755700","16034430439912556472234741526668622176956945246241607431144573909435629076584"],["7883371500514037436215969133879001639355588405575795549299366664213155393330","17669460927685143975051247188901604650446845029662634062901589994858290160166"],["17779424935387048022699391457189138089720429095143988757911446938707638131733","16269234093162719952224285627602880523819110623110781620754736555645457035249"],["13232763807209513130914386650424661091715888274282580636823870460088037038456","1895180405291526478750616400510283404697742941131480550316975365521211168053"],["3033925590480826667034898279556778554248997118151240609477712752482245791679","17311021117958696843343533690491913748688341951535853250539021154570806997837"],["22953619828710066859791407917059002027968311896981855859777174809485712187422","8031246205120171375520824892415761137649458189020972608803961589470780636580"],["4395405024513171891776095020588984617014016638004995872672320263711043040332","9653795847962088625985482960265425327448842747506381431988294558364747054710"],["25219930009385288258405858890917144971025878062838305162384839029588074370872","8377854954393248817778504441916189275704362831167864341406679034429137977460"],["28672671567166809071105811844913499911641395717135131094647800524557716598184","26831961990393248190214560453346769470751635135972326300333277604115045954010"],["18967405894816681793072168745682639739128840469829691192241556799008845372734","18843876034387440324225564578392755990176575676161028667781510174547725838108"],["14908382876090996877629595970470921698702389033274804199494249034589453517075","14563785869764704508272315888958319680400849580059036215029541214012993209660"],["20267773559121568928193621424525709315522063594670706588365790325561952089537","3388781689122822655193044420634228102517226731106510673431972881186623798148"],["14039977016557181060595506469887585404351439602354633932302012123473667880866","1760569767100398336097022178309916251528001998423405445807285513600127132328"],["22576588201883641228348668765753586046782664838261577308343257953105213788222","13731266554234088462985094012274674832437478223916392505421871926077287862533"],["17088918725266642814181389916480829358826873283874949308566340325258708492759","26646985966028624384025575562267167426383252252411260690710534090274632796560"],["10120920909574412062844227835255599018963978217947160583714999406419716378554","20013881373798796562176987022462730118494659748031964714920993458072986253719"],["21337175514438396716945415918841395144740047410688921846304889614825321429153","25372909509554003977312313423582222514499875574943507722842706532011968230439"],["1065911986413514495624858333915232676295197721649597874570236907863524733038","8364252060797968171415075391889360909095360631959409892313704969622308213221"],["12646062021888547532019334425024601449171434657700889725986045319319645903152","14573422460703535665055637547631530791642791750169655698617880488488778687960"],["28837216093984940916815785006163221620638194906538765818093248869574715357028","23990850042885262867925752299823646979002739002953002102001425938964579569259"],["27547963736468119390870208183659693592297214222876091225716073362277716421828","19614149005185827172581625002082973514771206871232140484996730691330422295790"],["12745767227785222837615625233068874463999413987830842151741896591394580496437","10799407921626433333566639956960100690198418133462939061871338191231690098392"],["10533657681944155724077902389343929148995213047724326853198855671192598870477","6122453439718884045714925603277347998132122947393476578736786538320366194742"],["16688374044911408219099880842749777626828484874498826771508387218516459734839","21906786792196304919150810964202897689821444081964031293032723133240908713916"],["10933495974878513896361152919173094624610712954008093815069338269967550822964","6347581487338305812516121462546983390500463748121854648514394922997866056888"],["26975699823113512834472262792329757635814572976608584606455001775328759120777","23268039348215459565392793976506052749311209638003276024857924028588620767770"],["18789990163916713341119448179908885964846418398469729728783173125284679402407","16016110707278684327776607300220126526888091531238460007545679325897588143370"],["9324161700723448133003560232497241440517442681709122730924019158279103561910","582484915468473262343763389164004656851222704030973425533453809704867295741"],["1146626646769007658508439251217742495615790144375651811137806624087630614777","1419091592256704733658480074586327568276330046915747323695977711854301993693"],["15760815445999208817914405318303711759900574632180084962616340030690934804187","17022402704305241973449803902671373380444233727543049882481199129731124123341"],["9820758607123027343468080169396224322566885608501097221712109816122627443783","6963273797504980446293581995312090764474435658014794694250381618901495680765"],["9015456354509374879440242748907376521828856130745887702765298174168284596108","1617751569382552946224729357806139522802916401154126398797872219795413106328"],["5624583108206877456320667020838393027119826334444423041654584268450598933300","9563858795596246472992499712831033160928121972982728947762319044124798945457"],["18216101662948714532669242059991725941660502003005138768096276037947202665697","8564619618760152019324473187349256806668405046933596686771851989617171994275"],["15018559626277696573151239605179384219799596652900602752273267489635353586505","18564450993638955565659255595663027792435347611717186206738003313136768009648"],["14387038914819928149838197751601954903439931757010457379050296621713068566797","28010293178375370958831583059046339599928627838709238700915300266344336106975"],["13613099488386756831808157660149714684018364689627017667558075659007551974831","21053989873112511226052060700001931482284499708071850518918241700114089930019"],["18750954852714724205298661784216951334237360360591825065358107896626372651996","14862846328406593407352981996360786560643619179420973804525861846034508763881"],["19654014215543350728992749986415688220082398466767795617765635866311904037698","16699905757913910319730920644285924419457111496821751391067278790114977008218"],["4133790063182249253202603428558520453715521789280136279562622868423193713370","22340649073722954841930475919365814807604867216042572074044657839334750082006"],["5142435709021361070551605091861849004610501075277771961256778377154688774661","25937214180913963801767348023383680231319679753471479519943675197751731931552"],["14619515067952183239378540436894062742140508013641919801354945990040539133138","14513374110050162017989740274493306411254508130329115650249219881117735684943"],["15610641902154396824191468943004363718601710495435870606516587997330626005098","6581720640604012646254787038493475053139150300111581271971459432265784647883"],["7161774843619560554188830512012928665944385455575379607966941890369439440124","21189808968916149074205983919719475704700408968855215425351885846615698854182"],["14120548621907023044360458232903915848080490191741026508964201720949143258991","5478127648752820294449761171671641440176506394967054421518402056480461707047"],["22659767656881107530078527555728535953169116123579437490754641433881151997610","4513220289191390925905381406842758201719748486374414625149057733292429090590"],["11689708714740674024395765610720856612072622039094759283068142783712405657831","14670733058704568245901124722155594338265600937319763308505493600272893446730"],["2298087097764666147133848031014340632009959247088818262699995601057116897967","4707315722678329177991611714181310360405311922260650693335123890102902171306"],["4890746403606035081643175455899151657815450176185076096197906360544527457903","24666208167869457194243756319852241644372284519573227572585273634860251171709"],["4029059636042853278968015381256773837414094659724519616142427128999361625540","3994408354427782390612270129495070429611825320117456771483539815216288175992"],["22974976382633669735785638818550120131878171296469754543140002858106816636327","11295150576756526055610105776265301719498342101174992390432845048196295507959"],["25983495626140756561438981708419057811887597449906012614571725500921278534020","28287756210992400349955193463787291038449542994360458931627503160633304937056"],["1175282482594072190937969496290616388698680094635741727939659580924672088550","1421521103577748425125337444854506898415678467905264967560530560268238771383"],["7223948033154435106354148683968902324178318211022643957092361711945281583086","13280340924385982656340722961035449242491845132512897061883579722484201564048"],["23794590150734243844852995269917270036497797746191607041407823991341741604833","19789091799358890108705641085794661740713892821547638020268147711600780383055"],["26969966211518393014297356145101502977398382662111087107452897069507182211108","22874998148366389604457878604434152610333144409985481754791833753770234397910"],["7742550649917791245538176904155218629126227434275327587670927950695473740628","26851994373682550162277556150318333941281871964050191957929941461202925275468"],["25044542720145559938283175568765468905544714646510828280193410904597248605995","5423562090016492541125259250546205009174755688275972240548535034089039525429"],["24114384571913986348267581058915088121485284628385994679502472624634052164010","2421887653873482774054997745493653772678745613040943158709550145898204569508"],["25561201530608867934460711816595119507996887420065791975967660879461399290840","21399793753224846820802491962463068715799956983260233159241792805888818921509"],["23564174806959535714598468062709182786402349988835170573692253598732308986719","1513982696406570264181006932199822569895578350201432950857774373677640391323"],["2259698109396704222091539749168260584489003785033619595725148236989955889398","26980386000181642085656480095092993367633384140357433048668321029840941831746"],["27408084679734443297544131714886672156010520357049103409197223678356430349000","2163219448949335093605891665558827748065004279648081880204776917071818737770"],["1901007339634664734288412628753014962863073451933030936662261875675117774282","23821497808096498386858561246172841762288976939065596306821274478039882933091"],["6780441868002853365016090442861748503668387863098949396528092202163294137908","8497745001615652872918706473570404954621583668503078171350152358194773384230"],["1658179034772423595248905819171690214544717545519806737905780844704445142455","18396122928414497530779515966913657118682465927110945658487288823308458038884"],["6186303658126207925507916684717512543084191771911701099517098100094491309680","6858330599966810106767181170792558711796382273751770053953147353471958112485"],["22734618025404913062197644385737311004072560051819666227072333315295819743209","15540437424041022880458604858165472155543380354659927303500820238821570423772"],["10600859989068915362806663206578221876284238381646027616119626452091225745336","4484942661140620559953579331084768963236252508176795202085626198151836555215"],["28010843700874744070470989268490388737336884159622720549426376163394805410005","18697216914632856421375465256656992357798159311493453011973045678646347967305"],["27242018419096445230354824537947815429568353399377944942747691082636508633711","18136690962881377318508637206697554909161101587543199815307411284345767070832"],["27621368282604578553142369895730354566364901240801472227709751772443612724900","25464520828291213353990979118141724966265879408774136225362460900555008499173"],["2863461400594429322257015373181081734521882695711693750585797504528346195147","21796490317645849529921498519096474466911309072726579044478104941071457707517"],["27311474557843173739647589153345896415723340144249736611338742763559562197576","17984584705091665636396632362206460565802785522968866938468939385829151902178"],["10948948835759354311697957291854435054844459066684108362552118696289873245364","9056042032232860103092267925105204095666623406947739467511908274390138073013"],["25616451200120710523317666965463897965944597846619281070656880585701477096692","3815965068964633159140664409651667126834799437105983284370383805856403654789"],["4604824634568326512075382348107715133570470657109951650536367483559431893371","11054550866075637477466742469333609249663110010771380701787595787507591053125"],["18940355949376441094006937081105728780987797060733788914820570278505890340074","12906893994965077646802833605125939773982788139511600716967572555905571704790"],["2017886422106476329310838156761545723945740551554395912263923338412577817542","4564411961219255467655047433278824709110973674735558717945262938126028008491"],["25061093000759830052443946139283719474373550054452211937288695959140633330123","10639646840272966817819292382833430958125271660437670020150494362375136626875"],["19342052351418975540843021303599358414146332395426640282236217762892591725109","10024079837156589002457196857984763011807307808201703350343697229680390687701"],["22839801068590828087481306489959524724928506949700732592017193060920410670895","13210701010474550068840219245266556715403582437581790625723052606776222925141"],["5394098663577276242622475339276228225739005825696877968963427260433799446331","26767961457757753851491675085542331088577489307630358755672492621643233378539"],["25982141620147697278600275175927698270689767980164122296162568457293857031324","1953526446343426140238108777168623724593864101582193919324735008951820683306"],["1519496440682213296262385703761518925103792872582510363282713983121488318868","75124399346431137598606111175161388839035537609594524033343550847239941029"],["8932869543091557804421362103398047294961258894911741413192009892064662394723","25331008221154347715055074301705620803528422723879278842027859746678018874370"],["26246508275460176418914957805179615556564443479609403299246574437227990270370","27339840548355605603722485933100467718961087746039976296483791370510026534625"],["11333477123133320969228232693537891852938657690398508516303910105996421926189","15994914707051999831225286149048731590666483850991845611494503768276950635571"],["10525001734420884471113543856116430823263251291712331219874664283174354875319","19730560714757033597431268927329998672223476870243783727668127699764781106300"],["22315369956693601772386384652079599496261302225707891827400810281679079966921","4920809021566021205934067358237415713112183495856549716218670979899231755797"],["12571054236121586604905023868950925523279198499726272594359893385041257510213","28719944074343335926049893584630514979396511614187551593782110333247468871766"],["7442646360238957330818464725145229049377274496767484738473925028605768968266","27301594108230917938332040384103515146418937933808542379180168313983488004718"],["4594969416937834823462854150108885566414311761126615913059587942164166521532","18939821403598766827750140925625718062285979683034580786603451284263023494015"],["8668671903260832468499564349346403064160183936503937821139589120625721732553","25194885284281175947827042656307715777177000304477153710876060365404675605539"],["20711449644252836879246654433289515398703252982044168224543643095673042040132","19824343585899196564457830181161175269530432480212748333390356783418617102936"],["19163830298833548505476382333230077297836697958802717788039691448306816399484","9665066372136749209968644457286285887155809886114690127687265050608538089037"],["10028208904566790919360780666651451366155442660175183330564366124791144963920","11004724938651986131768996825093855483221609711707058361230983869784061133529"],["4786563715121041346307562135793548394771281572441441689398141310648848129240","7441030885218904216932374491842320278863554248080777951264381408561861196136"],["13203079099567093496765551070281200318726721270940233711497896493040141752143","23840193500861916285382345332762001586426006308162926282710003681761647892715"],["26512998310399955909842733788822397991334533124363139831809740129081987246179","22886791661194558347172965591990370276612520308213840939785340304329644371969"],["19486567383678836672042100501883400056818765133317645930846058216296437148584","15881972355642354993781378620372194577169532121517379357144084399851981194269"],["5999169034672984144504331125683553980881175448418836736966148500791785611697","23914962308801890802760927935145498470537585848761722488603511392709535582887"],["26635065866329383566558422012506544471224255482094439494287113222604357496471","18157363091505967982397845992525608451672184960553557947335202398681220159856"],["20604567576157565510768075864421243296384429735806245900510893483098889834606","11754229125350828325913074335584354580147993180640303693282697247713224525879"],["5935744388946814414494500496870991105750044360880040992027227454120887701951","20926352031536327887544091068917127293285058516609808588141956620155851606346"],["6977018423344939730565953034007456267387460756001790394255483894336578320003","10535693130856116075839457346388847833612160499093014503317151516936569188770"],["14300355372712546055243983791839479507061878768728609024279007104062101081240","26635449314614520774070682027907350893236583174071044871428737862897018712986"],["5428412193353065969608776456366887413340701342546822924436488362145124748276","23807144743924330724179725212669444368339516950456023397333925723480237545301"],["17918159367577085836364207558469390544696900598142886154192183624780399053921","25762261398694337921923928262540665152823003613005693597463219888509829779945"],["6415795987428725157861659656344176565210450580552856579669191084187786698770","25939051061496617397217174314017224707752354118843039748190008588800717654765"],["21084846135423520006838732681822789626905661412863107890463833917914242468817","23070140705628622784393543907369976107542807969211131851220088569752934941447"],["20709049938131213670949058741271285301221937839981344910523258084877172123505","19791954134137294378142186282590410105695927538505119302422339372236891708170"],["28852515536802820236289220264012402447564140217149246423057823126929727670675","27910552802047530664908344854900031825552790330620968083852871085334401919687"],["671595221391661701253012391590218763830097788016784907604757102227340234639","869762097740563567266548705621265778203283910200184624104652117817927319105"],["16244058640121296419709041312174120850181389783458960153982008096173542913184","11660056470750582232684081636037044674104368836920372359170070259114505929547"],["12879546862234713775370269373419799273455632369385723333947643420749349318915","18531514652459006787739038000322822581580433135170136603898745335531548947377"],["20541174373991213189973123194980427805945881690845967429877210917221288763979","26861926718321866842383897872714453432269399517314841922224652954603957999485"],["15818589571320933478360781603446564268231228839253766952985209099174407862395","27349068800206485333051446114007119634707251347774483909037771651188382002506"],["5416843332786810100046885120936193290952534579149776585005534925604182313353","25960160332325221570542456906323383120717758255002327538955186212499875511012"],["21651483894710032924172158490249821578597014907911553436130706138217240302324","23867220323086156208582799495066188349113170360514025488379167894282426701972"],["24747769856807128718265824529754447568756528298829911341869227140116663008280","25610810743256435165111068537918976578418158810040518536786071776917554845096"],["10008769840057166085485384492122266680128763402317161850132361834993104322315","3685086241131043018952997663815934733362223939234911091725019994577243274002"],["15990570335197260709241260215905953124495736233466677510391085204143985972513","9772535374885998194642968213733174829289884430510151364399914271862271954171"],["19711813545527990444945181922792051513147639274159892651202405477419604824628","19221499767987685429255799766417494039484031289571156157523213346329094860210"],["11587857388624353515595827082489132063581307339272865380720069216564549769243","16987103651200007968722072196173970514801732023621836903701916373798353469520"],["8097240314935856036926839535440874829964456239411036818042844205165331083241","981208057763337727202823253780398213954617141789606535528421719472303126731"],["13396967552855049751625057357415994968814924898458536082162732366097855851537","14848840067732795658786217179969848826397353909733227826659090171174549727832"],["26118946998660768015494569095786082489216510726258717491250684164039635086962","13802517889741294535332828122403867817020220966614657169941546128317937025666"],["26358044463453575115507785065465379865673553012580185139817972527875313795845","4548296564258389283762979190271723517519558790191732803400853932002075727174"],["129258611281960958836880824845189844504241742662915294581868683219010245838","19999214971358770139839641819395653144744625155482478330790377543059064790026"],["21742181969256064571882339769527174574472411542482688791149705683379142934157","18490073015828299560016644647231907061250144404370668981898303567718160640038"],["2517208352696232536354020772314966462374633119581147700730610966451351300909","643858021594777981437516053392762993406558822912436556827011951661549638663"],["4472729082389844465597214722178232820388505661938788507337760541910512892284","4371342291257629980578541325832550570242325018053600354897741414516183275120"],["1959114775151039014955301912617573140469735940464228899636392284303123578702","19718261336804392085254670551093327398788464799449764047053523120077579175505"],["816434760889745429356377898678552873552997436651781013586276477891130142788","9143894094449357850069288555894426067476863900725734136057991250825103807774"],["10174593574372368096796449108217562248512130488514323880708596864122621932305","21316063980162984393671216341613470440802523079396850368914956129764018555776"],["21444224136234590880375972177091690287306465321058746207616846029006606876239","16338285080593777465387102298901081500857635376410455918818125405569616619070"],["24152676151138978535175205719404591493838817533941986225666363268264723049572","17336182460293526100175182013692419707886526897268625472035061381805382076138"],["28123173042543496340450665259376179211842852184547071217349041008605758643486","12014234105824623687248844521866375829333703313261737569074222507135675081169"],["27691587267949335800710438738765868009464197066577594899663084804109377688520","4780208181525739889385108804247275253053036334916348739976847725164190266373"],["25629776353416077391268403206111973603657548251170117995050838584484542647908","4636621119135366443053989917324996866105443372301434088764318775903099528712"],["1443726569564790363551509543187543065970569274881643933292205421433058068002","2802647655267658849332549142249325842775182251443321050881625302921074219523"],["26938986937500700297852270087783616692698299457051439440268081846848071027887","12697206212172052889848010234265876245112306853610272736795205730177757277610"],["24340841886322491519915959181766880569522823826530492746561336074437896496615","21326377118631290796050565486352955511657296745625911135350328394059290792363"],["17239296196673448987141212179884501719261343166503405085858753235928708983906","20411812326864327485854710240098233507049913244484088277011842694917986843123"],["22046105736362221736218105307857350243128230518851807137054992871963165332684","8551931549735797695281680104446677399764047478656218737739962236822415989748"],["24229246551001186023193316581490100444807013630060445597608016655106890153387","23032292172695795826692923219403880443140992771191082825415096119544492409820"],["4600733762814282054793071617803653929321702123628843189920790971933519835861","20906827382177410556155607529518802741945010404264470338878565365417831808933"],["14409285977947257217162771459622756702024330124166485051752981482986896403362","8614245602868514145991642651165148768054531094414018615551472350872326362743"],["5424879736440878332561087993900050684748970872966286078307177277987647932701","7815936281467677360416995739405604453460333495782760646895894308443527580323"],["14969852920057635425473008221265454619855485946664585794948982323587674938217","20625077580734565674119534990209247377413444645903849889441983622300380999349"],["23984939493889574538517179501321666914566730976399116828512925999711354315206","6793061175766273846274397185483366298386492809977140454797621687373631182164"],["26527058850647401290229250970700558104781167516623551621927537427839547860135","2718717355686266601701540749285664372749000865328834654509886104038079891359"],["7090901028181425190682854095550033451068089304032827162285133285376175083000","11715460980818266641587607445220043480138394405133435651865728708278595140326"],["2978109623813256317383243835937399846282683803841395351264575838831705583369","7076254567127507949767686229477839873711637281204274802761599103137929932892"],["1012159374361978897216299890878821393881087783162835843306788168256622795824","5079765683824145615280337622417602451549690434477874235520328551903282981496"],["14812985825466095664467925167000606693060357945583536414808021820275089757000","3987979209296408979896223695670899945279753390851683922938593204020085302611"],["16679422420539586062118734014997362004586366429046279867687368947208770041833","6274821003674635225982728760888639153935656590928556767498128591979101143285"],["17979910259755716422660756310081707452108001174234426119233760656009043584348","4324281043662745059302014129911811556103025405972840334094733847187275321453"],["10851139579297194368716757699309376163704810817842904848183559663275727809481","4985725149391683692584561224250749026294426236234304064510581960419358371360"],["24197687400588055401370241926298041641024158454052191885335617969655484243736","5331197158748315799622487130670099226159513356794628767658287018574635617500"],["23078883450677381211583327320785684712042586081557451166754552966408388176790","23251048604638068445192312676686282052243218173446450339183670060238778680968"],["26265041571838238092234811060927345266582251519795017754681895951681956457722","5583858585548025559871670102214673305262673093188130021411605970383351206542"],["28030026902284292375968519315155557999531340108343402349320192728949229323350","7837087783212833760942434791805560218523196835109019723883898278737251978971"],["4952220251625452136786465274054290878545301516554725044573485229497896951732","22060004290326600474282496218716258822833508920426924263402616782046547895798"],["1548250120323101517875345242909116680171777535831107846892532179058138790725","24288255112052373620818674132933337804293365350518361293412814955721265390456"],["19957780896139876436499041618509953706699978827950223418650295959483034705962","14467162443347509035856645793209170138648091238033596435192985180028585593229"],["8830700629783349580889508943145118549359171039433728980095115808233395661699","3735535804836412663971351924385862136438011817125238796272069963073145665226"],["7327068886454317394073893086175357568154939682543526289220414481892129432853","25363512472683528365488908929776458889908262761706059258527573726449633621962"],["6106788513413617213001376783567247339649078802341392306943355607462560765310","28832635262386546429842431533418720779966757278827979571641978564033135615541"],["16841524268444289192425421841215867417573004662260498550810651256060383107974","28499760973390523770515595987267228947252539877306536023684203970695047012500"],["20173687691630619387648094958358411201951541775899499034254048046033564727194","20254016141697271299394025793103652604051248139482679812695903237470699843382"],["19857232512659055278477610844425560686828601437273332092624804640254943752865","1939377770451912192985687377444968633890130265924934776015196559654195909310"],["7384433948205573524664707560757722983332409115933435235397721430686862160694","16535825819329873341847903069050198122233113426244147735286263635476612161223"],["2639646625669336368401911115156102404424741590618860470284181560317838248912","24561285910887599361178856756133347700231004921037290087333415443192484518550"],["25457807461279069093124811350611815742052764263570176506999027748621669311728","26139596316271900026551139260147861973629459032290477322678855905377369686122"],["16683575063349999548136411312095490637554489982970699509031128352280548799732","9746623024090299044172975364199626734301987046301958054840337716447118713801"],["16241930852115149266261062488125942170240266242730052413386882630006118091881","21345468383399642282791961494160576584090310112369453675757346354231773447457"],["5643588120481705265042996175115565493030268480332716107109641213861116352654","26052629770278865378204171034056612239237542948771758029914664232817638032588"],["18175970728340614453845280373339336097526292651315282293372512347475875263096","6093092200384217625997438536963742913936717910086775537317481325830357789782"],["8004808890044889101648305346213288250330364469185820812291756345809485172574","16493831654563904289124949743235663989783217770251186801189692808213974194888"],["26906112894700815210568191046440019436256545072717734422205199542275788859481","2846585838989347277743812585871487756422385437759031387468139065882113349886"],["13892043223626479380584974699845519317829409020428341299279804423720271456406","573460234280379157471729707358663908473737473470163353608751843998445900680"],["16423120169773108397855625752782250302632578255644738885435225988324599641209","952490523824426209917498155943325330815511708474722384153832061648166076902"],["28928625675205221490252369340733631431749697024028230968687269552031836608809","8586210445769718531820693549595108168821467545945277582265878607573608442180"],["16756099786443402076600910999669873537184686128928736392826671629398272963352","22813307079798697144687433583341599601585876199638443256822015516286900388582"],["11629759688636180437924962557263752534008335101226415519084591701421256806333","20068581918857983474079129317911595114371059949931562077796993178411613245521"],["15603634302883362864216794499894821566972925024144108260680912882045906578308","15893379836140007491180024262677266169593147530617661448848398343986184403240"],["5257211673636298225315561071127010981249187191781180508627022928895629041913","19407567076940731252051792137064217911747917220479253542962473749078117108366"],["5286854848655900313029218181118255087102719068016089803579894801334390946894","14556515383020538327312988891831908024264709618060785118655206489170289469744"],["15569610760569346963882839780844306673721177677666420559932075181141665822071","23779385684387301967323142247746666804645257224498286705779449181432098554606"],["10291707881532988396180280824948454388423950059434908273838633904504917543593","19082380589351287281541126323007232081726374444495067026622813083318440321809"],["26528506904362006283682333299009384880776430981789171403876917097237609604371","19146798768746385533159299787136768489208293743102499142219365095877708302477"],["26967545724369773383563685368738964679696021707216894831536434760955031809902","20372604794749591441738272749193346689248497880448638033186515095795290132201"],["14965842213016221679294018620297084088444361609986684958530498041539477455168","5748506472026800300434730220813958558294906537273045461775586392402059422897"],["4381969156466555366594918805878523609632017283157631583069380235717323328151","24528870354560351047322499705333395251225742256555017302747558699828859003047"],["26351250183773949448322253751339420820639086560047229061648960001716528602586","24362678192849617847793788424038348456597038274759024457801736658648510308811"],["22589556751109192470994201333045374959128264475147627612583183807081838898677","7594228299195128862675997898481071033617075524152421932420885386569624813206"],["26116116064945159494065859924364523779123480984618781150893995689498758197741","6651106118486501842626905918598727596294867742536238447719697723345890979648"],["10713405239056926416262485189533714048060323543971239414892575724529193418348","26189598367202576151001625407175745662519124272673389431463553830095039155853"],["20553946990424035117827873195425929236121952290772617155933231899670103028148","18374073320768399396500468154623772360368169767721605210050910845598128825964"],["22499761622009308661609074169401463516791648257379858873398551863805862132414","21997064331323749471295479355767680911385908778910401286356239538461028909901"],["12709494864519675049430551300307521161396374685409171309129014043460158630894","25354590839383388981023571839074086823090136820905244465150534847421237734077"],["2832853588448733117965436122444671979325729503779396846010370152094273745528","3984617812354074328997375854771816564749131150337707922365345761924249885216"],["15256834483906012487095942517674070437434356942084361702163750206273647817307","11955646185413519640002621331366742660576191477756733219300334906690752559244"],["23630871799663158409369101100208134295062361798697059259026650099979392881045","3886591292628104667485685463975788710476799937287959764869040667565597769042"],["25712319498507088929026590229344290228348258398098702623942231271686580766205","20707073943540666692302010080056203384353827233249986506893870910665884705288"],["19563899069408227607282727552015805372413040233060171829063283181963810163618","17792078098601690004972147123197436238048789301400955614290341792282567806313"],["24141259455511964692736967508326171241517464202196103800013229999530398217236","18047899783972908483964495680591051955478236666710496704231692032281855065066"],["18619596245214424378848398266698183640887442826432340033864755455951978222066","13640860721589336658961649839690462688160953578635020084073414212471828418359"],["11096025813670159989745859643336653103400855863296486344108201636604617135430","4633385962863187260499331621846198670388697609622727364101148299511469913179"],["27012189486328591920607775624772325046288357509052167069301117639014627428797","1798108651467863418882051937401539521498301500310956283593013966738098165036"],["13372462420811518302146392930132969808700387524397416988817211329955017795144","10196473706260358519424706281619516438990973242422375064864003832223675372284"],["11608426871208140099491424164122650763319037661486785586345222189714122236502","20537695302373206645199561543682453709018639333020997421332645451080871264289"],["17851304769312182346148664356179061888653472970071479485278620533284419412559","11347792199748751786691570433478205777009801186243943582439728660626873484768"],["22151078020676264241296960982303010553784526655766754536475474569758806384002","1057265895272845316902683628618432595930279274017220941527144495683344914682"],["9642944443306765631929623391753685584409683015956650373178746488937276664794","24625252160984048539739437131698318645347538919924771703808929237140991177615"],["3869824918338201146906676766724088018266940417878879989509368897937282764610","14916312062579092907313664054027834629639036644700723878157439444540519818779"],["21926639224469027356156354970119748566373976663749860641965738667311371161314","11152458366337784279539426073927653291410207282267125132282341640271028151732"],["7050828484252242373261875800196992705825204899087853249302120698651453703809","9495002919997054479754952117659869347221376069319841395976938206429822355818"],["10966071754723720828933541092304974945060908392513826477128907041255041322885","20124375704725912587955096353265532697641930100736152623649790407368126878845"],["7384173753935812417053936221674032707463514274204569857652112069946965845179","12375601592610122516868259416163186875592781006640479516428681865646066982048"],["6214016723955729261646639159624871960568767543871304097813383618307984137826","16498094886748819526928611164626925830639587092382350537744979373613040745212"],["25128991206301957292978194634400850633645317992320479735744546090400191094429","4392295896923598845499512937980341629129730871668738112599771046469929065734"],["18130458880384138623653533788359467082901636709052854644860169747140501191400","15257506906289137551163291378866179303976222390518496071122524364403936218650"],["19476975015134684932665013859907392216743481340001900018858512276992660749251","14863877447688868420873879642255616559437087603915452932466701750393774331453"],["16974440505968169359991472897329644721870612131774011184664595758016172857354","6054559398924869846815284990150385730245147974610787225239013304240090544169"],["27356002118505643552469518115116562701989154476074831891350512405958324206101","12425829014363879051256082643246534224774002507390604907974701085084874534992"],["19863434475729962917227863088741990466523503566967493017149366112479709424285","2685614068912229944572555717824304205189155192100273143036433703433324808995"],["7571291280588961044953074572129263036647784784980164808658852041348980051797","7848818309106657785970607810578839535355472258052170456497682082186556046404"],["9862438437408613981179484582610014896738521106682054827754101397476923022465","17224992518418603070304249334701833326488186937438954679728831838961073730881"],["22143304860547823531023399594084111590774559442858962464566256082751467670179","748100696632384083346082114156242173002816163657545492573364983420848237461"],["28217125282742880925646449363072839009171585742528113119000121000991109768561","27721771703675562252394135844910529206661093645102940347625329284960143922429"],["23459730102923103486071270539050755892330965364398649537725801927509553138153","22651094030290767270876208832233609163401644975051351021826968711332939282759"],["6484087103640068235165001318322826379336753494674711688836872815490269167338","9123027240060923695467939647355732225011780644591150690771228531767333534277"],["3096526875321771016727553094262757567278346400323860607594070084107086919236","10473441277801597085068198642729757594456772359726300323614596129258054190022"],["26319015367688974275166633355463842577778364058379743316409957384428843728572","25757473424356529683015516198572242304776166673631363106777970860539253079530"],["14939729292711933331249255040743022941281699281879231920738329864771179474265","27542987342365950332592843743154213070248058569386829231712734033584759075819"],["2385880411350999509678938290600460958207908277889011896803162949854202921588","13887765815724725999455143236660732285912150894085016588633567035104176318467"],["4500939090278547101108675722637555343665853580523249792268355674538090633310","10167832111097422901102180745595467199131224297009245115384947377473679315666"],["3626523493445699097503938882281642811774263331989405284094299512462279602995","12322887038778294771129836136584410136487835936542724872109616479902517996661"],["4359038300645964087010467563624520475372185690492514931762885843521716002972","14569656924659918377803751104938592100782931497567759103351116753731094827941"],["17817325757728217676767567215873998145733075024558705373750977190310920799997","4155764814554258441674733918036514054294742218679143527911517268689161146962"],["19438026564396987057738839794413321874343353884491276533620097955738042475317","18089564726499245229428706667932922766165219755241673044656524559899599999826"],["27339253200628977114040783811865346482703688349055240411442666636521172684210","9971856155138383453401743050231776893509421189838563950861882050171531550449"],["16784682837400138141834299049411344413924352069022021083109147337535109333968","21768871262680360886122432442230995133158570416799884698836029470232278810391"],["19391029118478946456620764810927294554245994949573925745346287603925298074088","4473681102080429646059832877503258078838536940588538232426516102332622475133"],["19412530738475146980578409210131609672642094088865950586763307991329951525020","8858614920231292255901418384456449600034224471423748659070512326756866242552"],["397676391451177850123424393738393251588598039084788035269716223280816432874","10556858656640173508697905819356293187466147134477871163769394679112211604522"],["63482323707526434738687074997880687717567982651330994463901081548633110445","9669347567143537868031518339729898946782637941944422733061503306403330404439"],["19955847046702318655168292432574941621474515099604685314036384756671637158906","5395821942227669610349076018006886014272844000638975892336794121427996502106"],["23469006875379525206576601308650662693984004921245320519986957585390042634788","25367022437377700109711610964969412535996721531663532771525585719725412588253"],["18844836454142784774896286593493095945162678721968996259641154898508463213187","27806547053380091709932227532204289182812719755105027529694154557609496626405"],["11291521622862285521249590709247380350144606702942338396674461538163463536310","26855598309047895956245219423611118416773260036974569911386800340240791292411"],["16841031505968868165278632826785962531853798694572193866245156685318180708935","4904041483653321648700014258193476173885233704759080415050883193885912808983"],["4945611940096656774161056925824323399480241148232041611992630310987183051461","23662291301799290403003554805377766390221993199568121300091418780063052248494"],["2756959151527525222987911957995518850872356663796454045875334812266709892723","17371195132353459398871775795371019689012408889988519668380083809222339441415"],["12061803425715397331418631633931063661316656994599650570335715773989673845820","22103730786245493339847807080157689527037752222810920469969151734192925517136"],["13268402032948306179103580827906562551210606450585152551853124169713340240780","22107429287007366484496753722923386563855444989691354903267472832568164978921"],["19171204342543952947386657790691934922329824505062729367663197641129299747244","22525533930864304559349080932778353234402592659131152345965936217992176761367"],["17147167619861637659192649415130480342938647507866337328777443283011092440381","1917446274305592092968448111663007929343198604157148615432979872536785481540"],["26153529184005161871860209398239397498502727687385826564631869420583666335532","14002848086358159004894193610415339979408746839557207446497783020686317989399"],["6734029628586694670252348280191626401942881299322395951766957785794915263328","2726515137198459676606516507959186805863895911407988948965164680852518905675"],["9081330162734629638872823250928876937285372156763293852606394450374425713713","2349851737008408396248230992667082478059690027510038237579335144337708011969"],["26166950913654217028368955805881508555450219286771598562762482749196307641624","14406383893696022181199958812664730840756188532292925504063391555275764558688"],["12400248092431938462345090550702579740133796492600748496517756045871421336562","3111303147799174233384111350041944323167766263166085531597935674620031647574"],["4145072112161496003884202015147429708625219930976838888788314818420311904216","18969232867303118118281488958187575320354841282425727064255991367548359912936"],["12599540719187465930278054109457991017873523172904647048176937192654605353076","8876208302070545655195649894640802159426997290571331961679215579358317571539"],["16058182501419632785544089528111295741427623010867430196240359208135103015431","26245836295381385568782791588338488221373626055767495676776860426854325452418"],["25558463985719745452237480636534043573100766705491564078729328402099822967084","13454293370254623214293390342838211549075145190983460252762507959309358558649"],["22752059804680340080085395374916286911007065949453515219697637768568618416698","23412989894806956045162408771791411105109330084921472322651159748226961145259"],["14916168476149370156435354310047846533935064423174218228091643003346926376333","14879821293965324264726016697351876431425967285700896608158919479121110178256"],["25220231089620842964645181602670065151135552807285044791093059523985107254038","9689988532314778835304123518542194950651101609438389098637804688708117365126"],["4972702068312512268279579726351446824670554879611603417702630083161657258932","8431431534648291933459924676674466829676262894974717354813751823624155304712"],["735329490098384438301632285749909547194532429403755691314447339399371517584","16550971539128239977586634664473175024786067604682739387475709301863434810539"],["25524649519837661965434223464877850478288192232056108391034975851122918384098","6635017920429497377859710063928509379065558450834646028128915853605151192206"],["14227276404718789565167384854995384566247843038064147008950392367984208307114","25822399793510574381251160832034163633743248007308110089408249555519815471323"],["6685976945853470837730665579527834364484234712276545877295353255246370135671","27438018481035813307376668665780889097444963120484245702849622701098473054654"],["24880007882634814023574989282045673965016815137266621972159185154514301196754","14509668180729222121420512783761139643252144116233658574209891159067024337036"],["19656577349489659287580327759662763524548760911080801038555668973276906852109","9676390601787961015461074674027150674544969939165455641325303152877390271798"],["9272504090540184421631335931827149133494423486059925089396002796932730785759","10428678062388702689918687557818313479204289967194553055856365018917948131827"],["7885162589941579498535968506948147084467290986125278209252966395324393370766","5178400566413122780324822684021445322290878464597409723870771345497957212480"],["17098312275938278373939861351611394933924697693477340746456410589475340339646","16966415685207087677424777119336646129387954715043827987924615218563475193919"],["25792046938055391205677220689606329570197343644773545822717990459073733375201","10929676187498139857254611120887754929329750302279720186854408770407696720397"],["3470941407284266271826544620141115110022582681542300079953735419139844495637","5919918025126985925736036957491160605434983119902990837813888798806958305895"],["12483997477553910578808681707965894738409535519121640223997596374967786501329","22447152756228775531204465671086220076661530324015179505377988619158055403027"],["3158842970268640761683996888692506975453557217358504511314898073291233812237","12740443352835931855630586698445978841115140317957810062906835981423468878243"],["1481166578402015890018552043393045273472945864604434408756281480068370477087","12803469540508718221506092414635880845609688730689480253346613663553570565420"],["8006893099947190030847879331676169356012287362122066697869830022034608314940","13882394536357077019793820115202826052935241014114640337560487857054588286099"],["2678308566459877617608728228593974360416405557832457330752905081223434463414","6867582689660176946273668834501764016695116588830748000972592294951465772851"],["17967751418620590990530960874928120212464983266136051306378440882138415805154","13195284531435684404764023392191126197688727715782338713065308434986209777626"],["13826746667647455103288018598462121155903913645820144157553525270450124483190","22187233303168785354087849700399175212756141535885926550013493162076739585790"],["14740219926402590233027127833390341702759811027963377142543280227904825664992","8773528842568792523527781758094411931675640000835086083833839373536585688541"],["3677788922039703673806800003136411465066765240996183362579082278559970409534","13375526671694164879876482354401874318113636208777731900369498125099118448381"],["22591278241205561098735234381549519376831727465681465818833086368298653945755","27613737215161943138143166103828441503214969208895182746547114946864914239035"],["23679273372102538431112749300192402406736962513955836732898622443503316435116","26843926667205710746352343577169845085365300839713769299222937416952472854211"],["10286956723169390896573684989598339465722343709365716103934259789373023882275","14524520433649828895461495913946719944245869249449460413595903523906215506821"],["16746841277942372834793673450705953373158138950542404130868031577499669916279","19503266553760568066563209636427810443750243488878626126228561170970298983389"],["24208836234239662905381529220610737487287157221039887945902908433688556445535","28434899020591973910180612779490331400566380532087509774223325129910931187926"],["25251650717362898224650540738850011303280637402704886648829606753872754847122","26809680654990744516995905845376665368949410614035854251283672089484730395851"],["23378001958257478146434325991426243981531726750374201409415547411357708122811","13853273597978612869783193501644934492656071182863469207726147294203331108593"],["16491831723573481338005709639361761201865100592044613791363873673130739001468","24350404562991741265922091731204137136183534192110388932438169622441971424028"],["28055382822431450166821351070508910153117080978218676763753402587173576905920","7818081950715033840045653418646487768402913510993704892941992474531309042054"],["15946015910511283466341340969025362666943129105614301663239351200141378083340","27214477233015005391488544808561643955340235153049582542309989678247703189042"],["13116413567833752866972034987667328912489194208761093728765518407805957265255","4596260665659404491400539774313021284544384280346950324470962265208522243098"],["13337553678071260597957204181530756067715453022170859411786700882322503469036","7972032141272722949371765791115786621670344718268940455041592981240594924161"],["2269250855078056237258690549322871569820385611159743167419483678491537113756","5117962110480176034105220301215427354062094239093259268873695761504216068434"],["18930135289484823365199330304938879501308818918345768341002065551007469006584","15636190509210336289837712739896330838603780016241309900173003670721074181255"],["16016314935441215625084375512750878637061971258843644838233267034394447890376","10533066900937040725666054342003290148440662892052763732380403149701063578617"],["9655172291322606807019318269830260050038782307671670931449991647538480081250","12882408165158588023663860511671186271541595830963048334815651457598974158372"],["26545473947524820174103649264302998721782697392099556137989997477511610382689","13651437836269834018990389445992426595052664291773497721077073493271336005764"],["12648832247381755905763073486487222738458860134809104054228148137644485726544","5579563355630618417580874355171648523825215612770719324578006291650373450230"],["12565376602377290633191453712731203399936393076242224991450927285731465478761","25466357152201720376692969394803782420172570959283644184221039346032860914251"],["9917466656637046178235447394549165115898581131031030617989467634182735063955","23004191275432321392661594074799318283319438257114272730534984304187890721688"],["25918644322517715809307593804697654799978811924354643269919775464193493568199","3186215466318896513258819504787226659693786531493373044813563453360655879526"],["23391053327140633346451755637576501650590853871516203545315697133394780424192","19893280460122163247705781489429692245706849626949196369018301743483264638314"],["10981199636267033869312620371974690679025175251612570510494458987827881114934","22530408198842917782441522074129420114209837651658913808425763254535004814052"],["16862218366968432059871868030745874584655652286132928353679999772460781467171","5784228104566375911546107864223756779972649992386725278622503989800369095519"],["2560513011987132350049195815109646539482245574288014122858080218009937371987","18074090199162796801234765429908576371070552939832016179615898997869572238054"],["26316724621331332161696195175833450658178156519077655412541414275476296178375","28405966734256841981695819379562558490446148621256526953766707029274325033449"],["6261911618006284404026960858276454962492015625581712714330609364184030411444","12415037643771706894061266706124269148298018318856095916708034848914679897394"],["9167605249935348795729176956045154966524865632661642925191655508533909770948","3613102458831228361881587413876288002386055617684051038260761039575619828266"],["13239219432059644122988089256150308502576827464445941673582093859821384443058","1974160273055956336156772503956064590302363547678796101396393440535592376612"],["10076166171759769777349542381624329639112254034067088681981614913149690253070","25312469853497383795042751774046933489365465355050895225395784158803928345462"],["23419403966710548515415421639512056274608948940940601370243055063900497136474","3575928875886410237783950124520765903583389260113404680831980661895803538452"],["248972574830141392436274137573113171583382937738783070964145944110700139882","8038294913081048254170676280415179478850698111651192472226175308828875152961"],["14185012068509944626531224519919931699524804827660762494097796878355987719148","16539281131181159996153385673280987854605599671543679128531504981428177995732"],["26665024034906632861298206038842098233809677400691466366790501840940560558631","15431988375224804243461677144246655416441242341565663529808500512197237408389"],["18937474523592226419785817779420129522946103413119238103091665367017358184065","26445958591307480142808300753485780211540944743416180047720389485448464280988"],["13120510801262650277522852292139800170984479296831281381109258042310802971452","26328631960280230594512950685880154510992035023600104824627706743776627008445"],["5622851950439371183028837013358926458193397424193571833970629537008012358546","7416234433196121310540044767546450631989490015471580748134570329407520938225"],["26189444225734938543626979463321943801285377476466858648521052732451788005489","27549236457254992193160791372148800510606684721754583672212551913611001315879"],["8124712073523914327758533598533471428066582688682351175670035502459031261880","17045188726605763548906695404130646918830082277329438030540147070179271931961"],["11954157387093631574811482302139667623535579962147231781312847668772246151399","1444797848529298803355084794133350677625858386438486678601179015317675247423"],["19474340176158114791993764976202785327607579174042282549070125663700045854808","28488226250242477649887268320170285197194179122627654952687299290247843790834"],["6809065256612491934835633429808225099987960204978380195103245619169119604083","13714726735505456639481866942221039862796620388806043259292738848504892161774"],["13346826367903938639840217941638600569914680494081143234279686947670041850194","16506898648410922258639598317066288946130177061302230173993043137571711579771"],["27456529939758319456348536122371137280657692081481878556707250936802260411011","24812121712143107203138078778244782180802248062782780797238431671112858793554"],["14031922470216731459325499024133339729295788876355548700288969387491494731501","1466377557061390242876406460453284401254558052747650046648528077630147159094"],["4928954774852638343277299709631773070019916665283646048785094413612911598299","4138601837411771273259803661472860075350935431010024316472438598296066846761"],["18432821079382692834900782779040157497746671032868823468180670476220920542292","17586227336538697579761860943825676217575674183077399578361437252109052711379"],["20277816427402507663016228290118582053938565349596550780032515787983589140147","24689109240758918944879744178034462209322828200049699219342368301542162295958"],["1551543101801211087773838716168610562172944701355639684162924502916895182553","16712703547376814831092432987857616223691091061787572692809709977610537325844"],["9999912954872488677252277884342168185181685942313308348592176611200653530486","28272002710997056684806149674277113528553855832759888022463955517421233587657"],["9608386602352618833233246752931196817312261701669018386614526626762994881507","570668941298363517935050474000287936860080329118129648460325538632011394409"],["26171405050856060184334886536920222101019005158603498190233524994778665080353","1230444032017709618339795861670302769613297610675097263247717365131373940331"],["14479021758641571686575228429786200152418174587564620284740672580958134948639","19867962228105752623539036301985632401607097973178926277600888726545564276669"],["16567645228050030629135113594745389114137205151698300491242868416019651418265","18938943987221224585591441198924283536567936101340974418601117041414276515381"],["8599696122548306862567081868087508741882497490296281826361414957227801144407","12271677872621963836947609604329575534359493498173960997668880534865718124977"],["12988902780924355955489697524472043517604415335692357145499559047622020554316","1889080071551259137787058771721527792624201290348414839550931874708192471988"],["20719749026928042372770100215691421281699402172925327269048421851983752828230","22621158112916717652614268292571950513597038528926718499099598974964996514196"],["7911360648501392902795840989733155782144032846691125001610488352479398549785","17941870519879043612552573000763225997028521453529210633397313810566141436612"],["12990562955093016552490766773721585253449182373555508893042038964528256005619","5882719950283307574776010561094027078503312637457263916665459273305237481222"],["17514703217722417880709839804907106428236850304418628745600497672575384889779","7835906500030704633461774089081931239989003472390653083535749469582813468441"],["12637661232369821603057980875946462456006772665950103227697832117931195095920","14471563776101701790061274382124607612397592236844531907982019209354710908119"],["3787136048251130731758890967688391031239860134101645117534527630483113457278","15206909787683259970029504594024337828333829543412010291549294892667643342150"],["12158253685800624539845338501176222656670287624359346808430736737596416555240","2967267942299203748604958823048237441021594327970270237593226342051577388272"],["15943697201029496522699485365361094185024890372568200941342647469630759146267","11646801349607765960573383607995940093106186086146694885640802586247681515914"],["18646981679467174326587991246416630891490002144454023125062445949900488165538","24324878173039254964467537227877733575627459235314464392272638919586348994470"],["6814928062432207326140023621465406722461038446407008880491738199833608783445","8909414614309090546959582423617338012838655193868412545916870168203960287191"],["12110601253245660825344148260706540877560826286098037272325154631004206341808","26095696086581588283289432184134816848248129717889408488775283757718313350820"],["24473456595091740614773616519187772977271919770025149287824143254056762952539","21673388831772409287180296664758765972943831032935092495515692135221491117380"],["2362222658719161382843972267597809004529497987570906692857556750459663303187","15730269051373572502253536557710555123405139506569498480781538580846971982624"],["13702821492096017890948923856359761671496039722890013795689052952189660546434","25616949480848196918089595577012779151230435005458903076162833884438323109836"],["27900829986874383813720901654227985418177578505293307674858361432200623006933","17011673979512757255919213824096614056282161337173084426346728550465896322408"],["22875273053340815403704599264196187581578419637679498573014664671126306710907","27266398655201478794777790474310608592981042332746759122273443910045943231991"],["17161373299751281063109138817460058048456727256644950608000886996948728803635","17356357784370867973079518799535816783022468029007935193827725907444208868496"],["1222340648886843974086396349441235343313491188020381111948069253399624908524","6909872440404379262351021097301804439104536684022982884934829177675932220525"],["8962670456861277024009593294239592108475374363412778371473118263833002425601","6381571191886084331647807174233265214226055806965411438951114000114994537015"],["22824705352032142133506964438687796595955398225591998289118991702796822709648","24328805351518282538101169467254318957312678624273206725025627117830215408517"],["17417782893056600626138453047877411112310362993911414505052005564106683578299","9089333021552946313796004003393958851255110524722118217697597997088556566192"],["21610614668752579669903477529542725212519648297983299878221124540082551184910","14058843005355423134269041001524429843489177610959037462600151326298999195551"],["21855746919302758757283811690659520498688542641199160562560560953748838766312","10487282499535125982324569178052278041253165872865081787616086605624022882840"],["27602997778324951505173895501160121020078693741669026337467230538377377827262","10053246333288787270215159001032291751774914096687329739761515015503856451953"],["26258158499574746240917287039738884597903929095877007437108282844935591502738","15234215365798949622748089962036171899045047347674661888594633930793979404790"],["27116912475125713216671159851922179948160442743527992355458807413728584072543","10240914723319218860163555100381235140693236623174703186241783780514564455791"],["10737528030889521250234242869315208754759865043973047263657166606613224257251","146491197226213544139596850968174285416526281927934280158846870199798931867"],["13205564400493612009015408678315341539054550489621052871937736457901629490216","19828220301163604943882033105881119675334848875564535166236166610113241925105"],["12667087745864672956844701069755192068341268839709052937667509137326934062662","26234535281454474256524769795956785323631413581228204920225183979951683417049"],["12695863712759569190512228908435138980192722001922350840348725342002413750879","6287462501898142595770353049184222333684162187550099487163854929073285951838"],["22527334921359516070391503045817240660178378110798176269934990953734739062262","293306068839076883504508121176756086900949940505700223775138089834542025386"],["11477439050498924080822523840216268666558557895067709435707311231945481640249","5069469413073187416160813831516568156747136803005520753310308646013069470027"],["22245516872740534855279603547070173172889894963540405552548065272953105413768","14009004654351877505147294519322307652597934702816166640862060889745952030108"],["3744325265743680138712628273114532932414923579766673877880415287625909952367","18194217890938709028267369460720122291487225582320992719187889032690424420461"],["9200481094401390707875235240931969948366711977815521716058415123297247222496","12663096638076062590446286127589170172212396590149589217972854409635074096762"],["27105179968900552979178241830775080109665441902327868035650965321129107684547","2430990692866996037730013384791539891100902017988154809796671100413632012131"],["14473187050621778096259362718242969429396266808211364530269214586503852062642","2976619405459171995696993178716684958413357270600881227585694854198654333717"],["14712765988895912607839384398572927737165321219451722777867079242728264776550","23840507687455574861619411578948399967256410989887939395444084299731592677702"],["21022627358479387520801717409328076513053434863157448755598820229866379937408","9296423770830480358364148036775571947975786555507452152630587801938306986865"],["21822135025513931371475401478180746700882441421934630215029375891539332658214","23813905946464318074105252863320071056639258154389747538592570894192752683632"],["16956339661897710745349623148868922725784394444582135464823826287205184128952","11335534365559011370919551541129467482593544891857281111929576305970165880820"],["4082997161269114206653579620118482107442717894352099040222097212335409288231","14364645101741915309138280383241923360150332195649976530752782391801582596399"],["2603809722813028698204756546770280626980588444836870544349552980549517603818","12344232161268986390734547797676315463954034512705701176530749834457178369223"],["15492837956967784702615004998062595937157352075175620231519003863561349756468","17268857321666860764203183429594579584572655140415847087778281098215113893849"],["26836985046875463207939386451019719225820807682690860536292642841858230810887","16772184069373023843003309465383733133788419866150307886345359612748511587746"],["2163313883999250450171542612449673611113724451194734494646409530850043181396","27880420833476245360402661704047596287761527103733494005981307272179962604788"],["16171057807939701308755686888489173066611957649946384656051321910396405010999","2186766233272311692807913797166996645894785337078584675599144558719648388207"],["22203759889814652888979595917012851757093403403609650084801562650013576675017","10090596329193456148036491142472878891823205203079471096710302754084988964805"],["8991401104764250403842561519447221393095944022170428269237880465965569724421","640139120077763749088673642702354221560502815907545998925074535695822833716"],["28263428743347717548868266909611993266434935703684540093365257608436715493976","15058970531671556211727920409991167491599826540832526217658270619911691760226"],["5774412926376587828282031089376795934625024853819430553226155210371906942223","3834692129857139994550211543731777054687907259264153026897926528960342981860"],["28564143264240942668660786281269877433467775965462619302450907326094159385020","23056084067592475014335749772400628746017357390499161725396347665456631311634"],["6321575312747610001663160079071687756670469805150421890105134490118723819870","8279611086790412760111792641154689817401103327969693730408945517022559894527"],["3812629109209250235472809871386465692275080545555508708451176706634236594745","11040483914442003049703802940173828592939864809635478767168425013339163513912"],["28160005668740432484362396784674858884775487298140504450881708922002108051285","17504469034182482544853730210283891229512602503038590123654316993192129396094"],["21908592031858517613629341527658634937605220508033282801033683790066321103630","25014884494966371735331029587813511479198291739424685830126310992495753909359"],["18739027475507662461786638417616378729342187986171112899996483799116035393552","6360276221150858763353776918422350920443904386330183173507351511218489653048"],["20576895754608610929994779112363847970344352199566213695579965927031126108905","18785108820196674664726102743614595352383898352112523235300808418525800786453"],["26153910521999415326028318429237358167129391188361648323066562432065302771815","13780646078687983764380431944612094193012062286531472576266557097026130041041"],["27942709475561993544834715845019869901401303860142172032911587051405641938453","11221423056554279138630041758158971377205520865022447118055983139139869067672"],["16598920047431165288502964563177587512471360555921357268445013628274312380393","360033450932122956817480947275587636378338645581071134288171870209766391671"],["5885478342707657508488144438769776945183604225442379921733016011908879410319","7649986601833624625897782068976102769702569985832171121670329232455412813593"],["16403370983584071978142184130688356928152399373522168412992929695443579168960","12975361092820863530672946299266128984290897447116476656758586792819581946788"],["2213032151726952912102995815705640201373495214780908369399312034256415327466","2798381123932498021244284298221540240999940670320791274875621011630176071921"],["19506526653989045663332303516548666704552075381073907347205234488630491370499","3547699551037983339454997048074815444135389030255889399552281799517694554450"],["25887948557926643616613509125160489795451571388403061806656334948618226459071","11376134489502200227727331466029574883485440408979032322639144773365486266028"],["27354673540467039577252316098768567450235306881024906560122268155864747593902","16399218483733768169869121960802811600844740779199926628202543191139356597913"],["8753599141172771530140558140011599468748123216879943210634033973314431485652","3162857054807864207841421124186870041382056505080624887892723734357032909673"],["28659524440565834749320690868527473019992889258260917625964469393828254051954","6135893374405431981213552808969398417595277987696168387747012773311054257020"],["15442158926674408236224809053710029283784676986677207169144736905934511459","15035174390788750359066258406250597040190744623257458507319089948939243333892"],["2345188956498249479691844694065565802113387522509906633475176231247021945729","24271449215164866104474634902607940979457476332170646705525211566104236771211"],["16037124076807174284384385955904755629594297984097125025991456820696094314454","1708993360101064517716051422930895600951795811046407915907087870461908082702"],["16678149188395971195187642515408951058465306435298427629411413204428882013139","24885248881871244660074598704090961657509449140129153346954562931844700081356"],["18006088193564401147170507364344257176432574986334426442812718305333442412056","19610359409281210941595458719658406004341539690153703944349128391284356345999"],["3678921894375700593750354183464687771821250547864811287887613812865650468915","636355024177229912533922139758959700060485684261515649374969971573200418609"],["1522384770939205167924571756612399569895722860631983971459332731909060555140","10061671267831792307457791399891597251504978451255226895782331805258806772363"],["8501228422586899841836502423090207250313065948545269151968459776092564745593","21380901417548965161553061160420567360626349756097981799341203917682516304697"],["15531189424803768159275845356041548547260514149823606220706472758895692500029","22222689494195346478166710588225505589599149705175159686962100144169960848343"],["6322201133653509528276074640453600527375630275592471322757159493633765163162","163413998367093895812432954895360843630254946098265757602088869556719987973"],["20731000131170776041447350459491372194321575425292450397897549135522973017937","5211970357806728398393104545014696960692963281773547216763223823584350881897"],["21804545763304099754504021881131402446946531869525036454196526625217084263263","12719364250936720749549692278887561901335340297740084493908731262526677154232"],["8364988950483712094109082158540209042766959828050830817723488114929862639722","7824637050929855257491375166788768585177265551247668530683683742989535567309"],["13941814945497925823019609521450339532938940893447551348625124920924605725791","20129930762897742367066521843959400626303946990510059471274392079021800105547"],["19956462960768142231175334349368706354898368159355198493249686134666383641545","10258915095600625447157832832048402879907659304318535901696488824118409783059"],["16474034809780238575491132512529922217249646590014935986739993327015531178134","1433524457693568160945021391922792799365014164790528089011046431776368447441"],["3645111258077166493854159543464089898512325523288162763304700547626457777568","8577210579406810381565920696512073425792249231020863567479817841723714516138"],["1882615980840905642696749755783649673070852521247772926052735130522299113155","11664644004034097736693773150998503346660370709488206825883427093229320796396"],["28473141410142753462768512031527789807052591886116092757143319730576523823743","4638391492620973570989404722450395400833935690671138603500916984004190951477"],["15532559886879981599046389461058109087569631636886185557674401973567074632966","24052213649330675194471499269412341857597260970518479248019072333806623096132"],["13517419374349631910525820560108192005907849361341611551630861985733313969580","20489006256010689484513346478584622139356577266088461467487637483941309292043"],["27138537672869006085607558777626963625676974423448564984734930157215251234232","8221518787398958377517978414718259087191960067057741186348719346542841636331"],["26805631133727165794567359600661781398070645768216384490237895687373549321593","1947843234340075444348887744504613695370100543698559802179399958048848282887"],["15903137486339769679080179160162765620469719357884740145495871453086815087410","4844736958054455697280393059702340379326921012768825282855862403999395520035"],["2536132495293025126839661245411602732751508733803372668650088930583067150187","21251645041477382204702540976657542587753812117756810096429876209172818791191"],["4226912907472519406510102714142197174488209574306565949979638209487098392211","291525655042648426542856900103845729154926556065422568041850641283854024022"],["5699976318916449826894926691636624679237908729006470420348911722577206653092","19861417276209155866604869504481494800245299291164167430290155149961726310064"],["20937692232552137804244800480318423455534988225663232732142611219039772981854","19477024144110209801835133361157645558717835166760652027915228464401196476488"],["16729819592391956521922508843175788830052737050536173326980565884849126381704","20896908447911625544050995347456389748376518735178361904526879407912531749499"],["6422092217462766317618995578843904653935007900688902902976197667247508535498","7691403934277544857927916724631572367964781977133872932856903248411331797599"],["1305418402439152794920557287442693888028852093065882357146015441878880240720","27890503647494438462454852014007445036725240185938537217418724070670745175605"],["16297839648558640120951198744027310653725460623480220871481541376098309056073","15310508906630549035798877383491652408800968647144847614906182882864893227521"],["16693078021787653692995792241887935628659612881706464860971447712997820344217","1371520090987716685962812508936734281560236240151646279020101051890822387565"],["612436532527313887513932688891512674058149091829882705338853631053332892281","3903924917208300325299477880349913985841468975820289435176624160960991773521"],["20177527218681308365301643272888712413826483927129427948155936490286982210257","23360625374431660303750725875739949496604787558116226430159656284528083980683"],["12476199091012378136441436702364920249758163853868704965900104678246697113041","10852094713818453628731617150486011110113374651517063071758485019384535636450"],["22179552689244373616307442725904997231680192135064402444465001304596274025482","12057999036956114355607982741630683263706780400565134051144210696185334752747"],["8789505674016180599016892700421721650347952354430448441457110745967296658475","6134178957615786315457008086456322565438628590925523037677963983772625754729"],["6836407455453069572339338295506713921628289133593289953699762293685777361500","8683887691991356466345134398371214679684803282744147237996083971287683414930"],["8916807913852426135876113811083551543262980281441581992838373769414605476412","8427072619174131774240594648755607012885094380952211830625646388812271658941"],["23170984002543330912511434895881135395872872318236780197709717762944501181566","5833293217832158659886970452143740610862631430669275546704938166258086902910"],["1183027484129071125925062702702607914666849722030567150272378559550296309780","24723857317853281000138753746290513987520624122291967502648849678749605221171"],["2368792382338991881549281598917112397777930026448334344411811277622991368513","5921139893213273980413852929135521676559886203219258891004704112182303154668"],["28251397822569703246696241413005888370839401028535535192782446260910241168160","22138096316478003338569119092008734427034641585009936906371492360710381546722"],["20710579322617819146098169338848796015016878046382887538378964011805687594473","22915488713820820897837881390935854586118489023976616304721442939072673266898"],["25621418554158656122295070848548092012334851653907428517859239994954296179468","5992679476277546641505145477897148859857437967684167777027621728786615076470"],["21907489276118099851356097260990630667715835950802013382799446505422335029046","5789548724094599249285065385664214036593711211035346059471867190857943959306"],["6824557100876736455010812798669908869257710102530770202321322991411342512133","24794878670502518507044724393889390740229711418403365810804498687893485170389"],["24287102725592161107182260091092215133088091187083226657686286295598636282428","22431631631945006110345722144597093281552935220840493869162130145033799537261"],["28285362062071073018646874137181782830714405865429156542163192285777602372134","3065810730294378730138173756703717190698859130591929654709871136250525199304"],["14877483559585553326858243218309145985948342078268718170045016346760222243964","16073157127591395118888146277272247922463320447701095865238857263115580570064"],["28521446537245379577129673642281028839254257174590286726565001718600104888183","10823771977587664057978245367471004355288091368673401234320837622950892573900"],["9164480244631647082718373837867155843243929908711774481955355835871222447097","25150494249743387404055828855226319096381830826374689708005803624773501837943"],["19903400809248196784474097139124674852316760120984490357856216938677691903591","11185350448589124990150197295785224661466088681402971061779337960912776239123"],["11202971394238754153793545435409415467962899680400997857918891196350870026137","22175356983548059593329804874192584471323228925057764122873296610349142851216"],["3421796444872384816028057659031655402587146535971395072692004074650366436406","8083958565626004577755797697029797952199271567588399449939034428472504761426"],["27815347607409705928173044344322044476992676104271816909993869841652548513985","12943803203115043569667347936026259594969496385112635530399971832216665203502"],["13117858285194764322458512558941766484418077897623051555981613731163584444375","6488931899730763674575272616771957807241657761436435031073667584841573956224"],["11115968928304064930948748163496275759654014920354771823284493124882548021700","14858096365410896292109137821416981579124030263081133960250343028568502729506"],["215585577452861360615476140777181426424360447505293731944210833124306694908","4100028816605544267439770370550143214708976067040623059947526180978615826058"],["25037530261090224088608504618361921241302141506281638565367141503354612087959","5295184557363837250295265083526241007584832829148559271418048212959734805328"],["27323349525805820599449775891530006392653386610265185317697300875120811479926","22493221448874026936414300298729149440889997870158020346872540450280926351630"],["17659146940059827297879866016991073007741901686136954029171245475521870752505","26954704053778718788467663201898630098506847393525048738112166303258419492876"],["8428903801732550153792381091525875680029335392143811497873871195690089727799","1494691590716454406859719131693404720075894879002221132680538030126954019495"],["2526824783945966643745711373145948997217754177060264556806866635002949313109","5793543221811123120786780973352447889791693411225564895880314857991914240691"],["572367035240492151458434209867003865938482760202038991736964064864800458128","8299938839823562524834310260428611884024243660275792283255139744376114824249"],["24218072170964182221575899383897142445840042552519968634696080232595206932085","27651554880313384104201055991606004839919713447076624753402682715629502951819"],["23361472269780981767188849427921142555330043900278037612252270617832733948374","18250725893739767888579015225238200477599211201615411183005178782758157481487"],["5731922649087735828121679774724163352501865665148277277019259759509788981181","25339573908822327139657041672557514381070171674448332239359258773065348027196"],["4435601388214977985298993285549743528781262629906428666635376887857407217416","21923162024643419970538389204588644545101350457630376121073692984931057000944"],["18368403779002926842053883911654658586092083329465748538763064117156325865924","11710040159933917332444925257796264846925376204582350948400408456034668949911"],["27515674944407855905285262220244437187506401765706774364031982041110961511135","10872326996530089406805137172721494571036186714657528314348580593418253522023"],["19186900294056373836926972695302308922158714523017361772732615849707678972472","17144451359936753369239967168054859146288542712944657953487677293087921334947"],["5673850371634313637930012578144755304467664727609245963175460751653628213278","8405922881674392587856685955864617505057202340680000471865406507106469431414"],["28515268891490278988576463120094798940078238546901131291406235936565102926737","23382518332500214992610625165468846819067632750897835282984809057868438903505"],["2668413456994928729699499542659783255635077856452631058490198459761224475261","4042403151765075132092252810511801942005161732734400489238964550793826980034"],["17450094241346919389755331419954871897960086662949703804169668658130380775111","22227474859149241178549774065267797143993329684335728646255374001381298462152"],["14762863569862763069325783441916158602381152342908197574785977567629621792910","8860867008763108074886383284028109084481410425476935275467663703625410978626"],["23855994125883590263629348533957886740359762735080918686497549065965942637706","16037105109250288903882794209722161875586596370715054335861316145209347379182"],["19377954378190935884602949075764868828536032274569957071517300835257718705814","15924215065395639248326195128848940206240541026737955286551779048635872521670"],["429628079876349237598599949518671273795230621981918024996441320486055866260","16502685768732476432383007322241667634703604971260784549010769418248047365571"],["15953487346565513460610655135210376051113599238289618944752386842656880381870","27456840721628383406607021897787763182516791244131239554233247350657449738932"],["12597640323066233894739955051774599890151364648850760839473215711212294183129","16694104595322931717415522197534720630483782567917020848498759353995975344860"],["6998279168713784440850555597182082730709511494885683512004417537545791648491","20297564678722153601755218403790182948941360994117518679744485514237354266344"],["28102948922357076558102235494699720039497423536152378493389822726738114153146","5577860622254693104515981303594500919948033249199827882843098642665560941490"],["21654291380678924646597117361576405728907153382223493777535314853288167783494","1377350041653963075924818090205799553316271162782114597254317814377520737421"],["22358663983277261623491974575493343187319915484243744863338117598179290502269","19475320786505323907375095730946435993294644059589903299319814880377813297101"],["24879838497632267891145051839787337764171145159779736509215594206075461974785","282327001560874159521926559905434404005698881972399018213101472176571031377"],["12248298163832195730037043499439068841246150060464414129908390518521518843430","21516967628655087433712623872707143283962472778420073931157886220793334642363"],["22788901049951092896609958502756094115178659557949458070012043769931728251765","13557653709887127026059430662264534216538931949495950770501031255887989498322"],["6454549939931746904856718059327151414811175069364172513862552439071541639418","3207299266605982943568156261971530796378927653478962935096539326713268580749"],["26448861384532271661216913386254094910692887353002478742882078539032892959819","12044862106347147111848850682174233914709442067126916077755073641139781121517"],["1332044393338333282296956223589134547949091630284025372305149698179105783204","9019112016069256652834243631089376095289162151401072385610522786876313224625"],["6630479238012039154034209350013671124092818972320936679005884188500712122438","24083613436371716726566482010819519685913905786066520399578512654459842482648"],["25839577463095564579007359610082877283424715359525568614057824655133779858587","17384092186641804156558012163953797455950026645824708911717876407055630890638"],["24207807968724763862597590467278953495746375013783251618170196576777215343329","10367013232062287468801391898196627162145885601108416273650456016708588139314"],["24388281771177538909749047638241592696452986364383559600732037725065695626414","28422808652191311389616119275475260924978292259115862652803383813930338669348"],["15750452399917621565779082253883334984993979982250668474631443310698935850214","24935652487784918375233776693663468354856391920157303852184902551551723751003"],["3344834729482956845269189489164775787811751263372775536536795575646502092345","25403255246365493394542813419262829313269694079869816505171124719765667650862"],["21451067406372550009453979192946299976133951910151844298607040237639255439223","26780583550452882729540364938954055414849415341723153529494983844008507268922"],["6036390607992167174794958693632436898993358290198148204774449086711676137701","2380566805312771963293498334136406320110482933335603943623668222606616769229"],["10377973905207898953630285826996414950302712862582329065675189829333918286146","23597717565982452592569257611437766005729336862348074345935805895715528069783"],["19921482390490268721505199721961363174271472344577902687181311489063311168294","15066750890670046994820861343880066352059539885947669924398745069283102262775"],["97220515594217958788757328267946264357490095248225583444307283617839620579","15365562040432538323937319433651236281915351546196605088229412853246888707985"],["2661261768303690422038640649381523993883910929128786359705427984647985152694","22531140550597292351875317689622492082323310499028876986837791775417460201332"],["23518358978374887401147084697752401335861277982888926932721246057921989450513","15973769421232665981858154777539103701460561493343066732171251175609764589321"],["14425638586568371821699301972180929704144820049227444399247326715036166368327","17866758993772044511454713739108260525863335956677902947590575121415953727018"],["10983724644552699427208337218518656661168105409532334423230354595169821996361","26553941072756780625448339573188897404920891546422651914409817055153033952726"],["8261376820462742959386466663607336804890454551174124550733342968594163266344","6969614832914351478223323600855171681914158580281082047539351448523212156168"],["9291206444783764459750117794564654870124274264844800846239312534694243903826","21710412856964632116658651577611159567756829546644564639837586391845809427183"],["18513610492784760684557912957753166524184764267616552324954129857888488322789","7780913275738868512584336067240160390352772901294361391139196060059953000086"],["7741405914307286981794321141102005923276150625402196586256982554218816155221","4692038160957420501059100235638690118703595292739307393859973372887083702875"],["13379427380695499876832675234874567171673488156721511124685630076977682045162","3437880795627572560465842005484741835786401033867961919218044916032136942812"],["9752338071309664332039764013009733890027913126009097699498977514941269125239","22790387113330168367194976724023218396932888728757520464471108604714703018027"],["28876445230680959530101576241752333865204753995525290338229281132831878804940","16210553658565917537814632152318057215742621446355767642062197892048949189619"],["18973234008255452422920734302805044132457583085740438711305668983546638534692","19729776358064877299088161158073312919940871163783627901015495446552074993552"],["2488237324363526698766405839836071545312645569925608236988064940369327552385","25972437039210614577020900744051312303880374495472488260818834903820214590523"],["14534706753381623137602269838884174771260392309725073951242490845592458180766","12663878271115338832530135354957662625571296292353829629270441984886338941670"],["7089720453995464868880784278346066233205267700900599404905595462128029317721","9533882083724164979376322108896699068177477500370164323735718515358452194291"],["2254896396841798589706674902982295381963796049989775103286925974164058893890","14160965809803366004292189285595533101625562585979221031820155714037915677420"],["18892594426192300405873953818814526287821508024127056150748948957662901503779","7900251941966817046849958269950773304441633399073854214597243269034223719685"],["859028801202459088496210781303106950633235831729681826770057772833396471426","5358939940470569039416572706545275706762449681212028293685796554444126674835"],["28943075067339050832092430471210558684690871458694305204619492611565688305700","15853721419655456247378271052311002600338398866659293393684225854971418317366"],["24873126264750457403729197785005892127345076193592600489838270299172495488141","8921445196607291038627486596115727936428316225948651478044667413571910721432"],["20238880450445931429728398081211893358151599527031201659374596589399715697193","26223837889337795838216436805658237847322487366318327266718982909104081206880"],["7284283409309612946992807150398210728750290291843360767018416922404474777447","11100164878353492729229747980029471999750350872063414234750362914400467410828"],["13269201317144368190317996060384065834592260471289312086723170621369243232690","12752173306795393903294814551593334571001740685617158652327798761879856980447"],["7189740817277627024923465692541436938793950747151700542881959039866757269307","15989713708026362286877349701124069065043762761953445315739168860091378447582"],["6215574992036800706652494762877997223263743500122866857717196865351963276137","1927089993901795895406750660991168760928252884001482443553074334623614190285"],["6148095022436568690309910124777571612891008763730693593206776090684569311539","169994477626284137771900953558800186785025484702735151165788926155393746511"],["10464615921825796890200371874081669135140574987720467883192192035463660411830","8034744617526295635124818996710653957395320591926623792283744380022068029195"],["5262577849125641165020319590077416201926508418474610373309749396147239360674","8057036725653449451361521684103426992173132567223467073820938265330251468360"],["21881032446597429150502216777969722779451076107813277122445227838201936974597","2715396343216696373984118486670629220789340999108981468557337746457084567957"],["15517298393326180553027635842970467851707659442210579816950358648472968107074","21121425123615238859797585881224088762404740165612887090177129702271911490774"],["24361511584557483391167729915209484840842650958667571752201859358194325084697","6373713357421681183316448113073314800535604984907485031502028485280136727071"],["3304393805403642851246922085809281387788434654091582614882929227503197585848","26696934132869739003871416325748855610555961692863026508472063799405215431810"],["20780455304209208479275983376100820710062193508519786781210894636653452523680","16712150314589019940546354595101006031572134385001243878933583870195582292012"],["5707746791297574670308438952342986208940062777704962471510672912597611457658","21189193763331202579283271391216192856765785811150080337075418269013588842592"],["17702493838639147547380065138805428882746426040276177291283710117628815504007","19254681341391374697882966849895014200182685245584141776270515491366299511815"],["24118393400171949301097999993660385214210761775774970497455579356465845348471","14341487913796811608695942456206043754071843335608254589151909829949880805992"],["8083435676343907481808764725752518134868386625274356649518988532598223930298","25684057897987084737794826275557783581137435644642319041046208611889301973876"],["28140719460863732345352579685527450789144733227835456690044413342524276541963","10929961726407899840230547089647448282916613204316083944491838307086364320046"],["933815140104270454603876747962985502475103944130549651194980984852399213062","28945409021210655948965798958614573108694140201687956994402069843314481303141"],["21208565321201509986533072966843862706386480130058028182391203965661765493605","13742144965648678380551629323705418972265089204939675871351775616233468965471"],["15968180113789227097860149319437057323738527096122297007012542907346269662919","20842001078445088280539889535734349450637844447829781569605100031838973630415"],["503106311759157753412345537834906134435171352584009620016142436774928487541","963999261094081341728892971262928013062659656621695023094538918065932309548"],["7940287339354054909698150944316422732117943819750917016110933180891984965591","11832241504455745759240115786180704939848889004879678566580283872299528563491"],["6682451901207600760181687070977672036181260549771215797103755517547129302395","17124757343090276898324257776156930278615856695778903690992647566202195527755"],["25359319771382464279751147218516146692547814699195929373438214709663164383217","19860384985317251811036445650685085458175107434509521020527269153291455894330"],["26149269294523660659179660776013743045994402266957145410145129194619713552959","21392399292272220514688066662991086292750740547379174890974525923048362536845"],["10730558761072945834819588857647245298087554067654606101740222812453967493485","2939391989967523719803807921031460239892546721559957385374053578421629634137"],["25836017440807947875469946168541822345079784812475237652843010436288908089151","2545720258550134936963623920221604387447472565711530986759827535963524352389"],["25522031648696998786046887701646061717930191796156265338076420472436887348473","23373473515543711634078547806351029896804184063132342219838577893262541282273"],["20124742538621050879949825723561589294743711269828295306870508519135297138621","7508847913770234240895239081868654766907602377156985837973239153927655495263"],["21260555553377721980546590686229982461486912043153313054991423430064083262717","10652060422176408128631746692985550431123926894695309091128039240663955334581"],["12858868218899446563864376372631420001209588743676742348010904789966966326436","235246239158316587590420073264985621432282484666510747855401419993463598902"],["8463728176595716149717533745104667392186123627799372275529800609790213737946","5868057555951048396665309296862040023945900432306950817779463146960102753289"],["21612363854656646734728771702301682132772582820863090056743921164938809492047","14867223596805322425065011351010831249284853139414519528857394515029131632155"],["21798246008749204231336111532629907951522404367719365502046427282921989484689","4625918166779260733663600487538204268609986208866166432831391281870371229149"],["2786174814427720269337176816899220308975619929935253068182887414003804370742","13520780267181878720270758501618615385001652853053513314146064535250437952504"],["24955477015609930487756348096529530600909133426972222823162311717050181744616","78645923175514349541440567507342898009297657571422839944889638706387141116"],["14448553960926999595430976421156689092203212614346438986935126839049611224179","19816066479609319122100958966071592696299407230349449661878206306715827905077"],["10733887418797547133114750565853934455613773020735311831633701676688047328590","14021577742201373551130518780417251511073306843094176561775494689997624551919"],["14834894766375753958154781529499741267669588846835172508478310998784438849630","25345919731474987843797422639111308441608401360190235825194874194639380526433"],["13751949885221975134356210623273617800567711430165880295006435864883698848634","28193927816112927632621957555840253405965770124237880202808792251910496267746"],["12934402969169609018844143261515863193953118943612756379885224334612335893607","13288331178064892983758598668097778037945186531950991939574717591062817674288"],["4936198708335630347754186443973889241105893168784174339167812009053694072743","16948403528537493334107228060899008546567360429695468794299439399452855776037"],["4635055171565924281582307389822060749237236303015015853821214496595763027172","21281723868328438552998430997372792480717631183019027619179611609498434298807"],["749996834797695321343276587905772529185804932566509603867964812170690797394","27725758440022594745832429343491701713083984269009443703715269579465413489165"],["16918331049162354078375837197579253956522570303022709328689812251918498405385","22281059875054665952778604177705619804148749474954841359721104900398698522726"],["25837359745106366478891266533213639470095051684606970521506814189680621239065","20915590917331983969673536022533126909723430608990151943781726842453023189931"],["23969285905840327953420135615573436667823473166101334359731840671264375544860","23046810760450972299487677315790678774511864160534911142619515950370975124241"],["10947805548815825335112205378667637579049334850267298756200891854635918432026","15542182006075974742324497337979048522576155994612484361005768432631766107907"],["14899573748056351566439712091056776268289765749104838605122169396287910278685","23509006317951774719585080459881605059632797034254142942273270301268749989419"],["18356402835458895046799307652268882306659112973009369313961122602063380361641","21210955013300600999658266602832963670821945834750410158952533811710940167542"],["2964631869350422046437435984977333240038022656724195703642750200770262163225","20934150719639456723007126506216507184991073589051513265143298455441724825010"],["1049705163898111877753087206439899472191937426279946952148356417889210306736","9256498226569836746392440737739785015616854650938718634421610893294443741681"],["28526869494190984487201697872676198085457709899764637679861144249272125407917","26192559722636269011230695114723075588689485819727547107318439508788703867658"],["17053014103751255819335033953740159883617039787362900246505632043098791811955","6025807595240173187302462408830695316456939433668171104588469991688771578002"],["20393820003331940268650389403793027254291602614030436893800060592994577839300","5421383016941365736978536623159910467828508884895962055359637189432930362256"],["1555366959514040085137682164842638896828592081709097011629124564670131752169","22622972694799797823067156627564231207937558298407072448498537240421320094122"],["19661219059852850294491576191159360816704724637725228146346543021233160862322","2816353047721909782002857459117566233021957017723900551461376024528674436186"],["2351835862018838452015950375606128696274097649687370787628869991692465399239","27738331737885083181710144960958288754037574533048036746003810849046313848955"],["8681531472637758403221447367059735924561855328947906741944892215065488562752","5835466622147341834240890060422986120063136718703886198204825800053213323386"],["19081435402578253523591601189772097224988115884030478430568629214264314307445","22001438652595211693248130345406413057888623936637544302519164710541642057829"],["28304151031165733790287442553838316122313230473373401970344958238322006449697","21719240003663822979304702069919837375361471728475567266566536654600864396715"],["7677186612239193128475620470712665043739637164677972962842557876884883680947","20577302424209269331673245017432735597004365740497437478423798213435783759392"],["24206875466641204239389585084916766557797565829466951703485427605857248163351","15898909433680300064925171684369781928486395876539099539128981372627644598904"],["25851127693056650996114582569343556601637036027191944614180520752426203831368","6175141153556251775076756277197472561524370022765810046035213814219755020156"],["11785429798352003046879157691069666364054471414088572264781626891675627743531","27195659136622978299937943501845806252009860723779466074080886672967247256078"],["27815567765420761695199868702343070812315444958731543727610993381060239184646","388261346954771041576259855702371173721272990878248927086771872265012952257"],["9836996736591440297028430266184335500126950577440018698282321888648166897191","13006955301263742692042123482718106592394387224647833281768783575822936232065"],["17546345501007250602027084453845819626285608466344224241075143993107237875987","2935970937633627905767941359613408192973727460608674892390353254591604257128"],["1140638530213396892093434682200044096052606311707784701871216627134213520767","10812696386432763081776840936965226838926532297736835206066768643284388116"],["24453708767302193605550213013649031479157125472824173371865056863318680746968","28014282126305597639735136684351651603938509008433724042879581089106580007543"],["21404749121383785877539734372338937989847697935315567767808872661129001288696","25460376509928206024180474087915193113749322773735565125448274715567066871051"],["10166502116656948139321102282473456870027278132934256676888041567832830998585","1351535982694540452274529802085300315789210822448958972044450083544353020122"],["9284202312967043311091006762588504976110841481024111551380061468545599012451","17794908983247406398334446547836355274760084600506586588821874022280373951218"],["7318378867131185533933703159483222982438361846690666474741199977626410056573","17698241777434954187356087680002231449377319684603317759866206376846652615929"],["4297165886996473003136056231756296383712310174068180519288861143540616598697","19297517590547965809660008860314691544371412907345542111548387833881045171332"],["22356146008635126937485960073262606483091626579960062416835315650199068790300","5715236570920287643349687706215484931789247675684604449253502400174424969444"],["13575799984863255300981283814263700619801009711072786255107890062572041800128","6819068940424428644885786159643278821666301923530780409383664490120219652879"],["17302656888102511153482687745004007992217960979376294755071298242717889258703","11537479611961128933879133936173201334230074926954706448400140757804753033396"],["1986751825326272444503401147879485265026672128633418852412641295919131245012","12893914578068300678046111932730662092422474330614150805337332844564942808669"],["18145001072911605041488352393618216032746617698310275955626474501775268273043","22798432694662190542109738169266655829684373461972272646332671430371153802225"],["24988646945788068248931768935067361474617854978613360804674169632388347892132","26132415414713972213671199073369045845528223271227219345194031816081974613616"],["18985874492379919267486857445883763550099622198234740355950921602538999105584","17746003110691650632104682375468511140808480846345835682320208501474308195167"],["21589915414402848502766530577971172416425554584997669046912194865558319829997","19716385525469483534404493059072385212701525474040839854145462357192757951721"],["25529937947348077552209008663798324567106817834976153872017264432209884367895","12993778147684503148110241710838693065156634407933829759946977847590365865140"],["6946823795028960818601226068999911521532402111891638529710093577911596342871","27138711547556507584603265212320310170032720238306250718746824063620610382371"],["1525552703177781275204215203986871904234980044950154216183328335058179985623","24782206462688498590028301249552723554218692333899957600165662063028841092765"],["4629305343930088536190330465551991132773390648674521064882623882157808817454","238896140420208896284091491301932949931631423927922427867121831443936770874"],["25844408078916079054581617388294102757425876407548047360888425871904010482717","6647382270979547185747780668356372563301043175054936444340506366166420475535"],["7330168984155780474392155121423726910851671401037918814914795855328937993220","2678512518189621785299915164209775972542119639001022372309906345029544820479"],["5850299689273221549993094663786355111614744649257773969477890777261182852878","2428091444052559770294685195399815916345952227046343099195419327569383334094"],["19548769361137514916488288970015128723582547983916988258884982397143541226457","116118695005694688913713527546696390529787695480396183590189188531828883267"],["25174298841428702625027351509621013265115810311676581178187783821461276962476","25354098665913981248177916489445984068323619666621100875816155392603694011060"],["28672140265378912839556028272955067971104649021764010046900961572206119495595","19734037503539264758761939193486191883186914002667682062586330188791015600952"],["4035262142567260326336677097555682373894750337081156917660135807761328788958","18404089503319313305577006070528887634399770703714716749603038307141942456610"],["28617224556699703891336469274444589447734228689653604522967573560091198051128","6132531952045641045018683112311262199829968209335591100532199956276280485402"],["15209650088954999854431858834469749789748860104668873349290555428677685168242","7501571385657123686923212570499471584338631803777559898171139738507769098809"],["8387381451665840914153604014001002133157813313729191157226166964312547279579","17376397707994033930303414785238844119983188675127339544175767952795608401004"],["28103348711845728932102516936719088566534272131091257072461102249127558608106","363890049355973237517216035912006274758658471522566677478183307516377563270"],["28526504822635174894858532712180126287686168343617739147077108242971559006059","14740972418341597848359025837747753344422214114773738805013647391434594350208"],["2038337361055642023742133439433387892115035021592030505972332518943196231438","10205282933821500444843355303310148681772941776429112506137759532815260801410"],["19682904891399221518637213502578228307798822843135665532983141049801657551539","18800351892419353881261487022162060462987839139791145432450264128862751870850"],["9058112118639879702044813842716091971133677115913819016755374053573850124622","28045368289239112400969598297349234193599342615832442212669406785113280413420"],["11327173022841415403251843121920802790129121841782300860225793172693961517842","5978325351000061446025954559898530392800959834460822100438768233152232499774"],["24792776138322066118785601658109348157114970728916192770234270239958882394974","20496919586048379661312453326126666844934385037270305676257375499437070481164"],["25375156731701768019866438928051582176515225932938576493256583933856828025731","23162085940252401279245538927123754130435268307257582942675106752849701270388"],["10149562588093615734589382181230030903385552585538417406242244133899117377881","24033842094933381351758432089253585922993367103209898218180489192102570985321"],["14695831491749481029495375020177997898441762610799581834106762302265220439463","21853696966672040974803494705972391323830825368389414998337151817211926825589"],["9700178191738462837171921106397385699209196683506693839687418864791366519656","3797378344075502591242752308075360061219049234665647857395218285653771873267"],["13502822096858347644023692910307015710129997461800947061434124121869532013761","21973475477333369423761297983299006494537531442929331325906291235229338076059"],["8806980066390258439578118082779913484444314356059760266890222811671407329237","26427797821022575211408004690968924885014687839328283397986999929622084910526"],["8376997801787970613792863722576798888509874646830483877469805363161754569704","6495305921193493004480087874205569870904769803926764410109578320269535031823"],["15988917220770525352858883285146170934814524037624451506245598597285743786286","5633120570016607054801515921662203654676176035586339410539368899406250458255"],["12247191725869323510228159752594123634570686377102035439698143753608778647886","12098975573922816195024213316713091795021796006784285560008730419074495093219"],["5288007595509916420457143935891295604878250956715671835543314493905400691448","22368603896679536288544247136371854800606853570531613949475741459777578196767"],["15630392715136425022528957433429566302399339803556266650062548648805042503844","23611663836639125210255385360634378046139459082162764088532591363334407039594"],["10959795931751947602997125548198620438206670387011645831193062928410095059200","13546666810720690232345204215319074245563945893668210888946369225345947882689"],["21189538716426548600114509879872459466445418832104910841277533645605246957498","25112267643690134093651136828069342273296641568168100988747722174723217479493"],["4101267091693319275598441843136682487516686881637689141071961310599648305739","27609648832660895725444431825858799905051634033212758546424301729372939587580"],["12454278428380207293454676775703154865082109826227231967128550887581213727085","7413276779772562677711032356040987236978752714205096752049373430718636557313"],["4886882364615772486611071139851406318685894098482360623820140937284054580443","25852493981679192300663333669419561507401222720677146363139016012154366762872"],["10851413913989441593927854373240841709771314230517968907286904630528118139115","4986521900533714340223901286589604423605018521147845018907979936726781235613"],["8324011189282436646672162462082259364922231556687069524650760861353844065381","3152733942318235668588330297144267493255989318966888846290646591521915986960"],["23433391220181947168171398014291762877516663268632485790701403219338729240559","9264357143949555533914821817386309597392355694302609299834970431635590955988"],["1745998972477764633413364905533977289896469580553377567981304389614311497847","7789955840024426675007227857858993296298599252109308352387182480115452611659"],["24894490259700862167395817709088394941723886399124869805506519759530121922205","15522051567546433638238433004903085819574700385628984254795435278141462611050"],["6822299780981828528399295138443435739954849470377398901757157939128273117087","26705593816237085760209728382441566696027315202462168313945325136686959684977"],["6605473169543605983325164987031434502729084999008871636567569000261380375459","26353527568941172637727978032359101261786316278276155126926507589945987012216"],["16866729633898409584516681520079555673438362149711824346380332426353999525014","7824969001680062906478609979301970975080726991409697023779651805587470836348"],["18841618822958656822164990625953834049979493968250640948096555656200879694668","17685327115949393720227520386614997668929006518151042689252753868887930925529"],["22555052122228399860638955121152324026613396922335248494698568402949493465011","24077383488029659173233231819989740221855488310214605726625474783510474284210"],["28451644755099630422384096765875749030415707995885983374111835727150923966922","12274579408707828745522675160441051340263920206204198517733676414549847380987"],["11895344493863587019732603323386077743648656051942861123713518520987787116079","11436090813685018993120339102984392811406599128379528585945984019486246317990"],["600076718449266906580313950314033835235919979590532183642700647314356297712","20123397572556535248395891242606777239866141720303151690281705308547258509163"],["17302999069685031972446203876657700411840686966896206497247287290820110428326","12525207794096465329465028838241368497829783024609896673357624991527892796718"],["5765748101705864931219301932537811938386224267710990715972470342336720889792","987927795116230428091970352040945458463213156400157467071285882905786120773"],["8860716540675374094881192915677448816384370638194679933457820884524418562769","25264359089639353068051198473140847592184274306570968820065534704236738731346"],["19757307522931846400617735831707082277345631735422945350772544564397459063108","11349064832452135931927736538302526382971594220442839017271270141591832857678"],["16229111737134733449891108506192550615189187489407858685532709336128383172109","2820362632083110428189801158571419328168406311848935724897186636038002836194"],["4180164321411884852507809220787742001795366359912567841145085528962212880843","12829731916557061728833702382848957250541655514880208270216308084675579536934"],["23061160720381652962242138169740084900441438700931216266460361999025311786309","19917545060325625383073693789018293271142864313629440380487620130857069217716"],["6625964860384487906921282726038959221862393799688310912725867441460877244402","16470363232981937675540283019379624615992592066387761922353318215263951161150"],["4469048267974655532391679376801869176531111637911518144554466327278808889545","20484392022713225127343373730788745294944461076153807222219236155933879834100"],["7078582867568357787626754514234410539713588921430004423335117604512905871632","22791310441577786465719262725423995088381357261722046852937393030167048450141"],["19593105728182365599378254368319868355890720123240829041181025780478703023795","27349081802928726248514828703879248099696658529606579245022134423258791515345"],["23995795190934551134412945296222502946972675637273639338897269354792775395009","7008716950844375198669864195213260923316841793044004841572112692711298060716"],["22449085589202385399397851230864411265109487952850650080005331508878048063132","10442631079923321304895624999893532261243012344579659178722836207174337710217"],["26039944859687017568350105032440930209062811403484582300890460776739690903719","11461117279196639640695786208079091068769523262529755322128488722202998441209"],["16439808715093246560517427703171246057882229347616142046438859614086957407559","17601070550155928935513210086344816647557251606587024518708306960060228740110"],["18146541551254827470417181088372651101488985902181693643474208474543190675127","23126104420549274406704763382342719174495753847957512822749270013186867103466"],["9112002422647136419654070505826155252214045061816587173574123128452541159044","27949506123664829034928403173332107712478026074772257295297368101939526397967"],["10729153704096857480261420324451645558426937888277142700349258634933423438243","3726650516476518101373369333683873647638734714509078428767909338670065455977"],["6986542873804146621319485039468808509629031642044978407609158920016194076668","17122241100367408437529964198358964901800840745169866259073594640001625727452"],["12645665645285746091306574581964659721327167547202482899377532564136094725632","1868707505733684704643488273238394181932314170825336407193606607347285931033"],["25900689855281337642771903369037105007219323969076604890328045929321529888809","10357716485472670959052718178064918347845318687528469718744897617223170462463"],["26358195062077590082480152869415226128138357954465057895580697900733039526644","2846932561686178465149996883472906510810461057635192126571341779943124067621"],["26818374272258197483208146232808448496834773320117332794184011360894256785551","14910210254818246824018745324046192583698759975936069440610225555946441843705"],["9796987148040810085048632679683416278244711663221658123585579806893986570571","620111014334942377678388116724499791665842699250375985168777310077584606746"],["16653139472691594096532792023528555974050574784526734480125364000328459046990","1221995891290518112236666542118628452786015242010136094315781522289236616985"],["861981086756147926051187314258824997661815385374232484727127376658183394791","21348183260933574079837470239829204000688898590110264288396658457905901763114"],["25771541500262114156336787113181203269846064651612302745565801699694962316597","12965000664478754928050484796623987524523017990441156562752050377810540639526"],["7201225620585079533011989525445524740758251119459662266316315932629081447737","15046114524915020207753705106703511701688406087439868689861121786757652592146"],["10146086174002113221290138500595647606810429196813867118177953554417584860827","27485871980749099757971293747804605738402355005711513003752823663471827258660"],["14539201339894429417150318662094644486166718574373170993725886798959893532603","25218591362642136378121427988752995504000165856658976233335128568171534656192"],["25088917916061737030252351424640440175454377985364377007986843457054323203431","16211410134093145019280079537960273663524253292703774426594259535799315194996"],["24389899346993704122274169757503322606729228992103692029932207428682287133874","20054275276789125340089940680521039975986849877943992694876922868503362119032"],["726716106747208686036562238307568206104517621272944318890959241692725220533","10165557820671976321338551853992205995404085025246997278082438393942421513818"],["16021762630602116245242801587248841174596665287271226573310973522581654206308","19530429697679434023048933593749243227007745990390202530616498236432924434204"],["13947501025297778170189586252707977497870995920951597122252383857557663102849","20754360395275025035438979727810225028376528280511705484114082332861833579587"],["178899483400637359769520811331130215774906191522941504386607108558409625215","16151825000082899631136493140737358678898745343744699338499067235090067079369"],["17013440311544750186572750285177140203272856868962151358190670943817094473499","6874418759643651195274711382333952616734922982915778799896617915820914534612"],["24690696202788816528796093660448478833191446392343681194241780185848355540408","10636020841888632434985335609353765523428674063760522411985418055611484350572"],["10984435973789717448685773744498847356435186604238598247021033283800784829074","22083264061858004738971937133286499745511813559657785438989398358190324708774"],["300727586509600752369067481631817921817779236265120786110768739147467827101","16890575316426425595462363305429223819199527730121982929991992845035683820524"],["8475403228031655415346200262128917407738001963291581465012948732057402075201","22187628535039347778036574605343374060788198451437249478406528895265975650082"],["17533757239024809719101668892889282505313599742081610106597963587509699498401","8913683748203843675002140368572556186770036244359674858576751426072994299137"],["5629248139321037292114177674358394954709508272280112847626876815795388051806","3198090612166505267408282400103681054581783004262870364913141368370677209851"],["12635271644384296411354649502232977549880564372334911934590920373387001043739","20696841044393695571161595231055644668361170549476602236589136420483598868086"],["7591933115894400702599653972898856814927652685293807126398536077808915132027","25473045549098497538035005207849719144902821704142559112039232481765546342492"],["20511570412660032138216169479024478767156833794747377084092118097752997926980","4853703602920288604878098293150299854346190975653158573782256902540949875789"],["5743745404415616935063871868420997326674585405202586376397613760645841806186","3253940251176628633054345774990113801914532133191373432952863302182696161022"],["13227756486677286459812135530992625265032032786978687994566507583175281815796","15010377533669215576550077579391140994197237965847849274967577132437558456498"],["27801004003816496423139675465031820017534734567854949345643109652808832545796","3018962098686476740913516203601370965005206378115465019307086889932193176128"],["14099094148875254127955158053071987315898569002820514903157153950132111661054","1847143401491750897515684766460926128707975808447836369093177259777076770085"],["4863258769340484031841264625010214805304332870667073172872276597203767156599","24888697182205597581954404619280523190411732893793494319289263834845449954036"],["12599371724468145500972949667082722658255832444499433174747503983687337370528","9992717667278587211109265429320227551521717805641222505763877896067154281890"],["25088252730300808119223251105906312207534868921024826193706193777891853132376","26297512468342826021409371641847060131804300834099646563721762356963613643007"],["16549029779350228919452421031626952299276972217716291983029932181877081711964","26758562303464975505566474259291829991706430136161283828468163625401399591813"],["12005100434076139528726303497617129628545892650397807838281943537204360559636","951475304152610403383295287864958800049944203932384148275296834143544210168"],["2256395074564013539119214836890855729230182347326063485840787392861193228687","161000339538367269881621259339241981829859261572516619358964208428205012501"],["10223678309051101079502378904234146024784874447490931746413595906567589717521","27594351935815581753186790144497972202203178514741974128968794420067592503086"],["15373031732260781818326384345144937073304074622374250253173040447422668505961","10343403057481434034330667439015428209272056713979373653559849464235898038147"],["2039163130978477683302337370977523692507383563280149162864456247623407576386","23090207254142490080973455205006651551840916834132956664804397140800300320393"],["24113225821891082872625820823997540218229806855913506071317028129184327936638","5920231402556598098247179008829702646886424843487930693736985177553899508463"],["20606585334085143287173221518020963372402817688134680144839416645784955857778","23474549348337889947773561010646436873880030442556513147608596296790697589790"],["25843499832391272658457225988917744645358975098382775827989670580663945804804","7565148821564374173625641038830569249719240708695206928608711089570737475847"],["15651078621359248219406064265717463874304070105868624264179180527483869214422","21293234118851795720588425272709523403150973523759191887658630164912324700366"],["24091618452747762914699043369263084716658233285661792708168636806907226147135","3992362918620230189803010889371252132947699653065872017464162977993959571136"],["21503995437138082288743903045677338554519947911385088842120142248319073712076","14770533766166100627562876156333893232401455461080084457888526683191978635989"],["15937940195219507056198584679367127782868785645334991005025263110926002933256","20882918080913359626117725333843164950726636460966763196518654283508213714221"],["4012921611452409709733624208743336538774143457985504349724108568855899883651","11184874993524491854405034979934135634967257661716384541192084505119808365258"],["3210613950849184150718959636385077354028348325282306925042775850962972237061","4442250951952563153985248075930539601053728843950838001406630155393087085415"],["6489617090378389171807942726858053523647326490409048112888868743935133302925","18802539387301896922045615627689480567537242576850009539610051078654208062497"],["12756549400491788159065521754184343695543372512232363457269176588390252404206","6174253415337241830743453203734231288008541642355538088765609362877019972669"],["6985440015617079895190741477154179983315098037797306322606911567873921417191","14111617210454585413987108280736166467927471472783494205331254338605406834130"],["102478238985181673776666234762100817463492063550041748732621907775244078080","11423830612447878267600611104308775713733688290561265862719321421580467038899"],["9262330080210089398723889099740853764860458530760045068684716084340423198425","10959147155954003549367843836827128231763455563782310786389423841973392634124"],["13406577116428726723847024365404218889010443668281608950548772264357838498295","22293070415616961337888093100854003605806509569380718407266577373094069969373"],["8532553464653499382137847250001650964533998190327465173581503472257948634947","20037476111900574458402616287743494660042658340622728699143631654627531048139"],["3159681189830857709871747119903512150967724012797301791074147065283985453459","23055481431609345889635662241683674095985377652811593992499039167674363501170"],["8871548504341858844583172144718979814927355913944919270667453034852155141881","25847810467520019136389201095133224624080404350638853714402981509872796928467"],["6822387309246342275883066734119499906671216506766907233967128698142665996990","8485389226711832495761621434800720975365773528047005454160429027195995542218"],["18533668135987959317236226130528176993893476407173344232481348966077275392867","20932364266726633617835488269842198801335324573787020214282013725905647393407"],["18646831096278832367877887583956518812350778419594196117251039028171509026359","11168232029339218065070611277243104173284544127565153394011787020203133425289"],["7813640767924005256151040813960779544120078427467272513267502512447469249302","11931167052165491153282711252764338596665361971580287337794626660453941822213"],["26999520013667755717243049938071110782957988516421270395588190285843997995365","25635505159309856306881080230436939796811954826069232410483596715017469665700"],["27717548682602175276213658463376147894739798057681907803156513670736080124656","15277169558878509022159884293810469110811974662397228645332780667403791454549"],["14687473920882486450224852281308499643174038207170587628081718593196266500387","22864148910585548449197536036173954577467356033993337394374103975163249342982"],["22205005273034730104126392483177848040035324664319109111433059599445944232897","19830267277552377031770198848891869252136348758179975144741700467687197750312"],["21211306816398387046490535452831846832050227827053841396324277365251039362173","16679646409692775039611817268145908895658506611495629553157143584229739109071"],["4862068556603525734247752978505484989010377312750810807852555714799256660013","26260276584632188314313813771257386658419396834893011571097568824085980052592"],["17262466867398437196634115535345688710167328963285491598407898027156864849042","25610492579814163834068724777175407018939572270998869668865181034996301281776"],["9466895984471379753716091604409975274850716123233425746148263197014844336897","2191910833991429139947531218288940719576189408780308710731296656406120742583"],["25006765299375842063243868555301296881477846271378762911655459337810648064618","22131204079278729800390633966278851705809848681760724372146965820023581159980"],["23234684661582075657194646385810149790911821853395466774998625499577654555790","10332292352303402331922910921236856880319083218544926743083603317330875249794"],["6513633902852651402276359885331718178520147298528705973325989009664827096901","27682176868626637926837741117549227740009911080383253676050592385283254569287"],["25172447975411334780583732987422113264292618409049425550089193985342120454630","20956988576494592822711271717789026744491855930870133994389499406412479169090"],["1501975520755229464580957042965255073970518304141312337480519307031107468890","10532965312282436740673557193161671925568121113984538226593687063921268877845"],["5539085712587082891561413420183198707440135699651349668775896387709354806036","8304053564436892454667667944921310312235847529198971368189559261391788646840"],["13142327875567538128404841967783019764812187194650416906074343471832967298939","8575895904411546935464764418243476802906281098059225575097110455882509148500"],["21464017513700058353455817183377929051934237589199119888257897055002309329815","21537543894771714280832749831826711030251700532036983169346202504319021542645"],["7041962380403840584940478354107083094082565975780857661674105967822714649606","12853704524305097279868162860444630748671452840645119140279370225039405235224"],["22701157393435314612597589383683449477555662003333576965952596248123100183124","1678245047149014821119717313300745998397153685015009461695712246127168183789"],["9056977243878771066992303013757281367692422070387972853601710350914611785435","4368714387069981720464157534022265719470117150921930981239065205300731340285"],["23821336100194361824494080357983900969853371354888247420021463654533878289519","15781974882043852140447391363509012249909065360719186361296023494446841554800"],["1196204627015509577552607968984192472458269949645925841569286615483050732698","14928673662074226531606078636007631142520507449057588270112941144663976828826"],["17326392466871972650484642321773977242506196110890762889538503381913349905431","11906151788570948581990371360693325832675903040940765762901770993881131847547"],["28915016686580729392310937332070549180514114498346012354456768390681959238174","18131141997031706587630117485272264734664316287773886088321221429255769711004"],["583072816370322646530022188805053748191905347938187989619621745419397208877","8196681487160373989675657009269644865031458777176847798331290543111057123096"],["11762334622744822471606660514332954225705204802448026159040954125638687849977","18087287723179803014287573576490370230806863731426377182255911910842940425189"],["28228621428019574704498813790698911401894214528487535276887639371276215591744","9268113679327438465993056955383918408410211259584996231426282107799359643595"],["8818669519700519159358327185082379483434114248078700366910319711036474538050","23026508952889147950934538598494937705907772835450822356300110285550973069277"],["28532130723750762546127968463991747109560994898686088367178838527673390833500","6933474399973764717787999184152669564027400909073811705070178463672953469533"],["9284948588557667017132503988660250277080914412419523473809077133913138644748","17049397566209303796280687429709775429577409471249285691580241460434706389064"],["25039166735837329612274584304764981127241461672096405117575643575342165377801","8643335115929168760456687805457401946896755778877794143019883771730076673079"],["20803265589229536356186384141262813726889215424969743533836237114638930488738","11362103388503026515030129928806538149100222087164080694192240939575152992472"],["2089504208608939283430136702117690758518429099050999908530087201012828398594","19395482113055174654864702102272998030042802049636325503026309447006553349910"],["26452568209260571886761301799354340917051879238012148534580694667510219054724","21339804489230513748852638329251128119943563244700252507222683499483255226329"],["26125811871214995113106563488944509864326457994296137519613268983773317229261","17093428020980901333716854099072692107990266890978329696387117459675944993865"],["11711362483688373284017603707469316513470228325494893767251449553625996918157","26752743155020081035117742653358583176380285549795204552073101255038887570841"],["25523914228362772690903787541746283052971783977505832564474554073213478547237","26718104039926533224804216394391177723703765545538902634491984040500384633115"],["1330870961690867908208920032231656886421264018857047609483926418585174292366","9101972680522115194971279356404256998014861605489594812279616207486370128716"],["3128791498050215540988137386047343389262191093557794645804694470739420966669","4264131293492107108691217325995856519736441521886183680511129363812914511653"],["14537081488744801993540814143338222313480370710126946238917108677999237407252","11663362245024677247653083647500273260564112099921294575579008815243261340836"],["24223127023365383299794199304957981941463476065750278027917906399611227117862","10674388067672317695580926025685235775825702258172116271292401001735029076417"],["5084923739271426984076585474321978641254008860004667059940486448780744911088","979578837924749197347919430687716798236195705317051733710735793011687163816"],["7920575160102403290688714612465936612048683271993144475543531771625132907424","14558920578726488733835335961652612838937347208648140881531562202468375136044"],["5599009820291001938830222866761521702970148035364040461323557648641265307882","4204868639624688674915336122429021155305340627406548983937200810754291995777"],["6471465718372776539116028713912075122088446679094226334561768594899601674348","28135245456116297155512810085010202849490020358876356071687033758352791732955"],["3806141713277055333549109046908360384324484498520636768206202685126529057530","13430965587260751246227108211769444590237743290388281684365142051291410670495"],["15034980759513592523481462087710621111057998836855136558957525522750348596788","26270041842414159438021153786263501741406064831134785149971374426078321213560"],["7480056188308349560239692130250552530721795772692113788619503504245619297521","17192205654824486534961882690953086271439368761029775957931215635395157850926"],["15399127084139872431955321386337778337105706633866220606962547094899350800469","16332721484029216870534105184791999256125655300168051573802092479058277717219"],["8623206416774822596106728653317853798769647374612006214177342215746334266357","3591755109040386479503961092134179081778374816198985271709460873120417621644"],["21275055122228755171686270806310268532077940878284936147879526614173237066799","14681311038495733696185893152601589956309809017104715179484310712968337944812"],["24510784514201828215970387690992818107070370725522285292439431379481723663541","20964683899049003421820715133001725777055910837917136520738735581860382437805"],["7004447287431080052430020363135420221910964664095289267562092535950453981127","12329244992693301313770484875575133245613476470745965377289824930999461813178"],["11136305547213762199992209218818571400099744914896831851926406450888164435222","14396294176806195889613963368019127028021254357551319336216502774806684748834"],["7784279703365342386023471240803928488418244863302657486334796552067436638588","19989549525690154169643485532948267853007390742082902571032647963137509572151"],["630509850065185395056032984885376193253226857461591912434161259071156589898","20935561040555000623244931893199388166678568041698680374532919840756895661706"],["9040851874427140537232570504703767201069577372496714523535714726529754240339","24395194033692890389876357353387204452535915179201096018551174501183693730561"],["13035662780320112333921606179075114556642793063164677588642129502725754204956","6912842177273113280886814883074055457186575542020605729901757947544556373453"],["19060280775751615394696615898012779586352674694152511800742601223120217385500","19464252217990141781562984532090958884617639616653261866521216398395094356211"],["14867062382826287520943113553107117992725178375767868365704203461416854789072","8142186539427095418051026746999289445723284700398749508681027417286605558228"],["5183091953210966390001119395324822115689781988820978295608661692220664967847","5954067416502222261006269053450842259961733916449729148784891869048320852756"],["527989076528642204102068730344086761989468988097303030933776590403179432601","12920735959205955961296736352441870035654944466452069275331278641138575161113"],["4752141273106224952188112981591755430205942988155325410025677811853254707688","7098316888680016653469681265794980660223915196027881595708179257452953565277"],["13421587907971292694560638708429899102815723948530139764531048649878381533654","21300828923700561197789638405099737662209408895781766527283805691212954736544"],["27418783667117596748787004126910391120651078027643919452541837184046863580130","13419242260050446024402546064925940130017821437981871070051908173180767196058"],["16671805587287789340764935458341190407776567244258293621986978539763442656795","7438119283007102175480931092667796187064611771676926662678330115766100834207"],["11577421720573570350027966327692356284166203868244001217788921821743677550813","19564104371566895391902058183526237096210759020763103709914100999880167175742"],["26928434920875626564291889323235098086063534746609806401798013591426025607520","16467353425949891561898200474101527680631138112678348593830080119267527457625"],["19431614145976035340785240220301246237043039377605141075106169460026357586717","13440054370845425686266343112376530247226546629583399551908347994846741932938"],["4525311858753629266643325814894541247416578306413791852259505554748252424105","16419875406827986639940899400785324790101686858795667054168764289159931350605"],["23739304226659606902459926525147379117253684106738215319616582720788851231651","23310156365422730070509758623273156033421331711215489725500219304308201809487"],["19370567384113746175741579250751457161067982205560337927633435513368754694254","13874287095594124009945521175781913209518669445706687625697657737191672681522"],["1102451346371575735752699747807337282698703232626234701637204783654899076271","17585501734666840225003692757147709628948802685203379428976282626765887351485"],["5279518461181041864245710449143067874306862640476658474750570300019119630771","10583339414280985752782670823709137265379445257592307670933862625508650332847"],["10903662132604564968820855781745324548429521505754047695025600222312323408961","25855525254755895473000607429929890165636459239006853938209972254066695945954"],["4011499151464285034988727979634676607683613826120326708840100326920884445066","8331157475815848701258700769810833654522271887718119721082495816333098101022"],["5930173662708663062857767496567983885022953273261250098292505511423998241539","7395496080031534889351062533191630457513069826702655929840786184848472636627"],["22396213989475560344101863317991990837814318120948619507523070929720614790426","13002575514882831819053278294085917590719148462439147749177903923601468958343"],["17555718689356268821005319994751699230903344435673513775270629215751904134461","17161310184473539750743023752568231896619571779554676978680438017600706965474"],["8421195351056295138700258849831403950995580196937756609808187521198156661674","17693929169720100093581978909208043751598746117623052995028653812854435749269"],["4591488177311184287408152868839745441400848104752370334513695190473532561661","458812740275108368793081503055240144740663175213216862849340567600875522229"],["21603045630677262020846163670996375921676316348415302485357142281332735941716","4259307309572347821967190597442999915789045406073946581064969958975847088595"],["19664534203878002429924951428674969676096810468057342915202094014800508909401","15670030318482725235471546597505654698107686903375145633733081107845735770471"],["1224909660078650743456103968520763760933903173021933295797623811570801326878","24422586265541334608239183943199038920014037302541829777058811097526174895250"],["10514705422578336030456937996321054767193665774655368895316446456175618059323","19396357361718536103129599984901433251726092619392664942086445935806987344056"],["28292166645405045764769502421410259579938994738676197821930068137134672513803","14568019583125754197885320242401084927988546377694223875822164065944696809989"],["3686209392111625875551025578944457092259747593719952262885204035282328736587","10938040928460238301093459863024751311750635910180381533913855117406741910305"],["18993026920936429816783855845245889178005186891292820369351282769423611690539","4335834280449386067560486892099030975957187322088507916289439795458172736711"],["17578771181742533357452948968722446926198302615777847519174278479428676236017","15571121126504996800071259472784559248121858897136723031397799272078654323271"],["24943724354180345920609396291088871718997761045246605117334254134785468807661","7014196704483517658707212775764303089468837452395024791434131098580854317163"],["9651041059098511244063914285181399024613825575571636971496983336062625096186","28437368625847084077068160262143366650209854445771819578150570048025502798313"],["23212458672204243927150361826537116017555053356574679364219268483168627684694","12617739312046701698087694069254886036072172138475033996145311633095643547311"],["2135935091724422014906383177485612674428196934813677131904428670387024036370","8371506805408801714859602143280899820027781534143100447629235958456483781165"],["944287396695632084155993231396381475907733955764576205623597917517425156724","2774082132452144417138509514933144762631582887620645733829256741548671524138"],["6053692190031601676134215873114606458397062603165141922159716995589455498032","28464496169700079550596505037851196073844618752323423991024548820645511301218"],["16698076198855271457902339279097290208396455654131137799200074407134003222378","147540408985071061372579921608333281415226230126780779649898829980116773047"],["16850511718509008887020328749014063713731912216756148704331158375946795864163","27395455054943547403970649375549938397437493439322263096579468766860394750927"],["16229457024581944152344114558130149325694120268018555221845858994624732348712","2709437954912418494561888484508574623906528431203904597440666019753494708313"],["4031810028777630462947400312741049355768137717435650558615521383879411803732","4762517504558766826507677439510202733674836336682631522533684856024570783541"],["4127565759621047860798741681264024399545254963029932102148091595141061823552","28352784904800819367132763249585988776099722092719981060502546906313081752248"],["5405787290649232618022452702388345421709029165629719673308356546853605168731","17967417816937071938302722339150382498662770196515234634083668022209340950031"],["14449572491590016783716902003188845766629176777764902083755972395947273686043","3569667427790224135042218457106918292046089784050916545617350484417008150816"],["27938211352433169601531525268519983765667696083717946315229267321222929774641","27935328329897167817899766973692967728435206730267499559741612475031969593526"],["8756579472444182235160937623222547723088694946382689847506347840329679805016","11101645665885452164499832565047666447308568937819557183471222053734695362521"],["12606801243019443844972436650895590425155255340863816150014237525072931739668","26383263915014198900680837355594832735085256417313638313253525948265926027526"],["24841988235804684993347295999746582037888746639812141548594818957528085166592","15417492865862402861278451998065930820483191931204196743474220767666332723188"],["9273230961445188387679819968969506604846890761639344357177742985398346543733","22426586191997533464761794267138813355259354920750418366789881118919911012642"],["146502907981659540042236996322194919392948815962777421308630169634525289656","11079533132645440653778908525851731217146953656476798473623328529329185922740"],["5272996760543644976497066277302449795832536327862508056004010473764972315950","12408326795507249279948678793042958339586293329729753446692702304494574462075"],["10245677532739634511484032568345042513420843135884558604234859002990632235998","1789317567536248439039744842881764249308671749579892435330407903482429423056"],["8251161992020146454392660710649110070438485892836237157253347206104997811654","19624361980390672675964294664303550704800455278620606591196029716364249744938"],["3221202916707168003691475691511568619749972632423413214377605702730280405436","28495523411048231865111627324764472500465025551872057234062905116408753345008"],["27346411545287424569028639730745508258723874639783410361023228397963038264326","7452479448820361816960211671997046106818374400111375368603279873928280760445"],["8914060331324032979486300390648604126507696179791258165827993112662176478368","26153052278076590598745040098602651184208084885430622319104895660900579555288"],["8528033865021170524567898655907670022245280806480563996481234787254662941429","9292825056481997082496967305335418923842783016669195213825038734216624942987"],["12851118210632722429022033006969498939332357425235418866857832598703386907882","4004933711505613043274117417661678714170495042700474515206110207335102179367"],["18501251300036066266852399395048045897230617419893310837278712532437433148949","12405234438857876981092783268438387871041539385952818617946546715527768883871"],["20818608330937462502232886140736855962442470610258747494863200766976785056941","14936353683536438646382942199177867052919289323783703368483837441187215390084"],["24516659067132630361145295490309700729441647665474516657393544652957097002671","6138288961439608914735604201863525139935703284746770858885964184831044224307"],["9679794467625046367841725886552151470983087286844917057239508312851043628870","1603849666470143349118693924106840626249776200525815875419514308893158632699"],["1554165314452612064140607924811457647206374374476881176646222580997841116094","16465734878465220854277357846405457988504310156436126895481047389690788176268"],["26330118378005596501982812573043997771171006409740270017405189322235410624155","15780952397368545208761999607935762425898902680215681288357192621084385199907"],["27077455508061677335618075409711972043297278926182937153965091785086156031035","11690484038212454762675715810007382494911385684456965204752407450692351147259"],["1995019473560282451551868114323187169134566228727934300672777150579864563673","12114085586022085149560588990629697433570801554047278799172562018500179143550"],["5336783786448154858600541984602577905544118065371667755074860289406775349134","15627498538698609878784637221411194081018442046599343925647323223699064994521"],["24285579266096726126150132218130443959949242715889848435635914279653310191123","28874531267662015436988096999622639131461359862200219330272599405946330650457"],["4641529585204426097560070726041218870254166935502581551298839348776198464225","6975940987402392110197930335243305119197513472874620061910949351680701675059"],["2293212656644725428857965549860942271836083770211362623609133944141746649096","15792581864807607335856121280231055466989831074009997855382786413493482451657"],["20365883155049736070982408713282862970926840887528506270096468584422756933173","22396474363052180505263604852146568497979687371980529453516320265303598960474"],["16867172797432864645001604409597228570155597657967854808639792508086108467163","9511498519104348895116748490182526959527583760436496762730829687026057356269"],["24043290235737149312373604073952533612227280839277802207310232387029545011100","12997145852930095613982770065848911433344426327406422652729639200168495340244"],["28636788828261749031146902369517202347809988245013878141908187577764137357053","27203094259187910304501910550419317315705310457639014184543590221787362157539"],["24928181119155794920142108918642674523187001281197477707438320908440688647833","9553732667946427422591214912386622401488981770281960498680114872947368870000"],["17115104644179709336325892832639657934918625234985441298304568578237794642989","4763505435779060213863857120698582705022130905031544666278400273033932224628"],["8749419195954013205956810767485875166640411337650022108201301081619287171551","741191995856182275572056631113526396475951739459891224318487566202318038358"],["14197494412408249927224107302201587311751769355922852120904371384851772957598","14363563467027217326993276915576704822696243007006994439119584285406168346371"],["25077022888032798607522972752724839786064981893482913782543381552307658053928","9584274080678076219798638437503857786035017928403209878663715731981785817890"],["9631653231041497461508530149793922388038311407231091831379797774015338984010","11135114008929127184734924254711103657071818483373737072250267446068551012049"],["11699990900683988606785442242597422439795084225118061584920110529438679524974","26400670132963759747506915367806404955604399692258731630092802580607671080374"],["26862744728673409362992235685789853692016536469102373829177944351126627337789","7701647210843126009448070692965075515496516865185237611135112484886344858146"],["5936256475116137981022464191190031711185383400922751110561304006807272510832","24225855110107393300624496427209461888141064119239608122812580320936097239592"],["19159160686210172966338748992618203075031136435004578067998030158281582641250","14965426334048476226216112425915314241032844592461731543591546290441088066236"],["23189877205723067974513390862742585718667040363695800415576193375940494774256","14899478283420815272845449274790665985008416208278630484362243808740989912875"],["7138830207488343156029502703581926800302216076744891039567584465895281098065","3345807767810949000998990553262222367374989005485411158231319047314365401949"],["2814542348097043391478712189363634171203093668055403291736386104095760511116","11500739397512140592619278774650031432674099281517549076342567684819540677213"],["14411219599275575628908960130375567866554414875921945914989129982797986449964","16925839646062317511202905190736361861986816922057543899864434024538246074541"],["23035716185107975400705264473918878425622963205978822706802059472520848763326","8101107219799189830281766736946078463467393347091142551687347546190407798016"],["6147717506981171369698123871972875374970689083319093125232930023630259239118","22429003961393560408299541929020083876052633898747208321475604023876161998620"],["5808248791990035329635111341786670839862764670118684581845810701077789659847","4721381280818040658277626276516785025389292948656764954793046447764766796162"],["17091599762085070589251664195067179304351785112427688767687330337593237515001","5421607929486430563802818243171317198930453890379213198358285733999528081121"],["28722337783789158595559159430295668871481816476837083992095152949909884959956","27360158656203390078814768747926368535597022847456692890791594800251952632295"],["3517070955860396803206938016918409884846567273136715454775394418895782141925","25748110657719654503512990120982918627236638064560365393541975503704784144100"],["20611240547530941931861533850739155420615748141234461211197923066429897988729","15976202076260932814708865039406805407623866588548196944752426447613819728882"],["21891653062304740481139051209684685256751434282723784582574254785586645230169","5671463368192011431729399935992917884411890569473217984867972881108723256413"],["26879936318270034062567404531439382649553891115484223521096944151465608170091","6023160885235745427470843415506745150863185785961465907065971611477287560370"],["20840951214676554266022236124812049231229975911436477798559882445748710666418","10111228934309622056456632116627639253760379830540748798028245773729365218119"],["27644761705305446602739005501330595479508422695145187648591212871147514624514","25490698845449049018045710509173779770774017570928709682526911913505850770959"],["4307666969690692225213093913081518673567624373231530466144910249181754837863","14060966475377935476799883345845131104842280752390230466144102589348435983324"],["22229344785577378831627261564258503968340337444518290466638591338635363132567","14320305898838551099152481735029822068902742423347307782335388619821651953137"],["22544374218633034149717131115357040018672300428554907768648451195878475690693","2009400894663112971834676705522347638913330138052857793471448397182123329796"],["18117542043995425388828991037706140900381852666614234465254282408520917597273","13223547054651085817546060475678329243610269094743835091249409913834946190899"],["17360531627152781736480919470025812073604717366830910396023129235129077775138","6590484624392614444972420289123365893181471891886506704781593183993345152268"],["23195291057034061420040829483638536159550637578718707350300163996635857626366","3322770162804725111385415695337642889982741392783079465693097031989534224340"],["20206951645331116634007773553942838640332660844197016610201944983429909754628","1060668544319311922468712447421605573276590574427170957271074801770016744278"],["453954405157326102248129967412753434458807297670495987978740432755757376828","5892529218160042467385469673968501916767765890983593978035243024554970870013"],["23894787245985323316166809773848327083268476958018703781047336426124958253931","17385386981136723660616799144278316080994253323449792975057519976713509376001"],["7143360614744562067289410994805691332889455039195252524283222835298229288513","2054936293809064910857989955260838366532790394522988103095972455150553179305"],["8371463193881406296075714857693432432071228387642919422813552357026672260567","3230487272763353909434421656172233220377214410547653800388235729326155909365"],["21806006978612906566252898676104204949538177091859709372922025599446981683327","17597056531152040207030999123463177087228943716492590295964897474345806579233"],["10335243058679630423094059636526105602787597940573657126133075550815147687170","5434789295920963573940476719286080199097373862322108075945508744191540492217"],["11310671248927786492074378421601504265177657879949989908495727300504644030964","7469382978790182359353993103784860394155558700513415074331671157496460054985"],["9574230856457374784760518919526344992559863094448647991387595997942289009644","26161124648210338386805329284775712215139188578787043985505375669360728979817"],["7550608573164057112219191568660270177365815352444699242516964869796625320920","22379253135900904776548403759316145481700434305663458253094207869152101966261"],["8422468717969687944993809517428642626147001668929399917852078054954897278593","2721572706729251873762242004764560926099135768191020492355941926521013744307"],["4553951970863492923810671501870431173578738663807366146383739044022829045776","12950944952697782144322506757752365765343841635103829719781741410365542881858"],["24014803662724015298714188804563391388820221698495668335120136176186531610914","16548103066815825736855157721284172765529373981935879374777916031516989138054"],["7712879775955855442786337003181907109510675640421759859465783963239718571778","7615515265986113048117461553357864207462166053462056854928764249130881443178"],["28336814599031377422644289987783655538634465805360830928232226434040547901487","4063015671191802445861169897214891174331650675301376015998137095741562492306"],["4646602784939235166506669499712168438999962359436300479581951798313134897379","5293084372946704646938499440335053823597817588524689969581159009284667289428"],["5185257280413798793165767998286464355593947406954625529583797879088754387578","10755529101035805109418044535153256440105160667973023032540398086693484509170"],["25869711754856576898101501275869233079878854013462045483957654060183286216231","23244290031803952432104929229748004452575255088908971469660252928288220954560"],["1706112191301792713153364337525235121342903377469566581936905530731231310323","1087443749068274807833056256580412741281981443105001900427737611212066435622"],["11451201592877928076343493248821439788545351509152069950200503189480941337556","27181765900869582062975763892479686200498486122578331473047424634722376548144"],["23568502122057583857738968531746113749938883675957750303785316591109786212235","5064361191154373604199256768442158110326745628634614804549578429053448806299"],["17006071190718940444397668177569643242056626038027273235421546715527919532453","23410975246424508245675460219412875508644700015006751877845628297936045931524"],["2247364307131125816711797306095264760725968162548275530099123403494199719622","7152444365849822174017245648108225814287856428962267209131036200854915538812"],["2604493819136884729734703582510973589512639752966422009334637978898889481574","17321304659387144826987611114842945572452261416449626849972099628491746940112"],["22482660708815938317070117217019751638716216686631753334305011866512135308789","15313840721579927638998443646442083246025732079512823213656154862050651197783"],["14390945154327429233428430740512113322768312083608782450333949248817533433810","12054554021760617669757388719611246319818356678535653853216464749019978229104"],["12661217837100134524214537905467470975455757744582203989218919379389040069761","18509438754243999825390878253266740465861089575567760489521727962477300766865"],["5605573426871740929365982843952078346982962883173368493653574335967383386817","16880278557101352769338380614343218696715159478284394183514139034046701689447"],["3457463969943421216714255799903816171650666510040821692503890326922355149006","23611902626565368254430459916036928627076055138420032752874719386170435575852"],["15490710632927214819749432459392930950705975573915255380668791218624895354078","4166191119760031712621918994279552618325409916865869872692227021276308135360"],["8932743165745098341232012329507284857049480022146389756100174070237793987362","11536080673249571536682695275065609698896255178322059234475792790832301276741"],["3576912205893368574823218312579712108569656790599955923003508547557389175728","5757486966758290471790450070160215978797173565128947880583705575216517538147"],["2328565691271050636091404069427802693467060144273570970668942159288435429199","267231077517836296520022787768583183543141694548057110874373746094903579694"],["13341329758967159784788175617915676089335778172802520551935787803702088574189","10083346335385815221420252852501291932743754098290037062509201788177061801349"],["28107736179488469261159261196170431922400018671361586316197125425328943975656","24485687900712404612582267843830045608149806707087335684732251790543040825672"],["15532210080832005649044268866562943940357979213091335169216051953336219973319","26639794029713055707773183000165776581795389529741755261129900379656279185718"],["12886341360425382235986869051099344884771836530087909791481754229932368308665","27795954051599666414505464434888782958843337516847998758517312819047287364116"],["14203179463690041685928048210424142445764815785766202530309072921001473494248","24747619202657085425860221986540207896065786794249396066042300308452979721027"],["10470141760513591115463012922516551736453088702562737414298071410238103400186","20425038783830710457461714132026780404316146573492532816983269830139336628473"],["17994393842943122011355995087345367038099225388272841252066333792100285341769","18208346987449866786466471809849080282160566956670959715906781383168812941032"],["28184046169123240178075878056898690682841842338551084125366925081715739247232","11606130645991205793147128852945345166713810924941425192832238228276594132201"],["7776121345884503103884032666778186132783811192370277900560406453843538561615","3266087891123994203133732068883103531401431806194229009491510176757289399403"],["27429099273137998462432764302879663410126881159184014752649574931501255975068","16505881422043807347656626998460107009583777916781139880826920429906577451851"],["17067316712234879956618202198019750520078642876929497485360124306480362380348","6927624445308080556557835763251329296202233554793829608464440060956091633542"],["19209661191193849010927245602321421752567720975995870780337425964101780615408","23875723000732582138547878194501383240640819081974552710613098647775405575014"],["11908644176033896068628938406531914749320434464493748002624083660405552328662","22728200914673887504115496604154226513473542375578676762285091282306774459123"],["3482622567730359979427596220641993292719697770354520119277605277847694052311","10662933007343024629651469664224898934620246612214070821767169730422128197145"],["17909917782649106018155452490571396926413673201085123702151604778471367242667","24932901195055213894002393769895115963174055262819392795115239257791290490201"],["18042874786121539196133166845558228579695538339478004183946222102555186180811","19124622149644467080105002019090185406302080491891328718616458887817256403039"],["26673512312759449201466145533108029866209284545027737374925076764015370246100","15188910005468709990262007470735460546048302060485867462909019777011145793997"],["19317905068019222709089935554389725943375053340478378544028846962084842799488","4149651318172828919510508108238647751793676943335295536770276068169697507222"],["18556656600707003362421691367998450778767110896543626083898388976440134228577","15452301345926550775491065752893560352199996231820080848384607725229802420112"],["25702398420183386037988364268649004771797804938325911221132097004532203371715","27443290594923092566757019306533078066681033848491473020360484064992553206290"],["609867975728443224155086842625722978515937046463598363851298789543448317782","26020539930257676773626529039156657009716643833938560329573014207968416817245"],["13073286873047303160919243229794225368666885230161962229870220357130223742561","27210541581817137171094282147754253201513484838493726568968008712386732749776"],["22189970528348697037673570737891459011907803392533160263744441890842120032250","6557086070026711183374162818699726461499253493119473991106401142657333194427"],["11642547607221313346837189840126361427998332064280091468146269975438807840322","802981264590970401778336972935749338246898120047209351669060926615221265023"],["6879822098459068995344822389659107882571090878250530672857850754276857887523","26811777398621890409020914900713675090914151347650898496814504591584374745127"],["12562116075747911766629823162240195813526856816948484050309343921134768179944","838463121234611652872491409673769465414216117817423338084227918051148889103"],["26904212526266906766889029145650492508209993736444593565716542629680113841659","24322661329339260335546093885104026076180985795290409823079426249647014088039"],["21977738169074362333278224408324279466054616789188381038301759313105074889832","22450033921457488882175968222748597522083507678279769272706806036984949036043"],["28791188045058887197597678687045477288650821566227866196951459306393301743870","12194854487543157661279659208483009108584365391979441768288581195434304053161"],["19281271226215572134305684055908675250526290853604361096467262908249874834984","8324060687999125585295926377546585451766832588262439875587583716431928252505"],["19435306451393599520688654729818558034788463839917659275401904435899138297279","3804274418901262900201265231846733938124433209496779833085672877980981201536"],["13673440838739319004705409688920247450211014647809966636251558858067583409489","25472940128063845073060198237869634806715535533955771588626077746709201310664"],["26365507561974888200390596764595346756516146225553974040623942567742443844044","1753349813779045074023819767334073877213526755324540748999772689292901434778"],["31889395191157577826141715463242850548068915351506824684922204234430420260","28263668834936605194570688452976156252970701724415649530680464429483278142218"],["12335290143827955471589065550107438485880611100715139519029640684143836131975","14209905661844708403246475740492487503676866183262942730374997120719207346606"],["2300174987424759445510368397418488037824403961136993663501913810027391276314","23738792074084617993862671363048239184328646546457756967169227149799181939239"],["10192480060152173436209012046380991047077124401846458398411426982961304271745","26501970929459760312474747628036183817051499989406677766053361442371677555563"],["13542430571485690473295055946772008824377114238299984734396706207947817846873","1450276822149232049799361260045945498338468118169094768669676633440533307334"],["15181841251941682385379067765319199354293996441322195241848516845382135426386","6081256153943957517413157098585267628989597353319477819697536850874912583871"],["18711335750451755874602502152203790205332678973348884273062793553068622904414","12810718267904694454389642460277185019547052922302473225318915817328454470510"],["26437522961658856072970649301151077425459463306870378240871429760634156017472","6208494908108182823067506177285115943911950778385815341256151406731793968630"],["1202721596619624830025605608638650919878342980039944201086442001953400877422","5936485893393191852103345877744720577032202486477100619791350229785496960707"],["9929880132305854977102619801204230278887400501601405258785218968534259396633","994873068149438796322628301998619673605379659904888053270928471948955484453"],["9985263060886999932157872813166933531150055811719306427039284826142770693700","25853767410639782573133512117288784820493387293350729885870727494796548740727"],["12731210789659392566877300335680337694049173367947638347514444293753274277628","13209310640651801455669366366623207267899381599328371913370527260807659555529"],["12876665227297402195518034560327897961497396521373991116853466301647609269092","22557510132336371708181600163745203503451831520655741034015381613281524751459"],["12690195203597931136817604246531377274774121855291641765191369911014677164094","24495349317635155472451617379995277359870759052366353360455301055092807455373"],["12584442217954655885063577839907338896164405087225725381383492205545212109084","1264901300189143183902887794778863987018251350407273866474360101649062813514"],["21095836654356390458759592963277691516915669937090218616434589730072239879792","2294396386252375755133458799224085951212051826864520268422296441294642362679"],["13580353681412431135102975053000433672993214145002118180636544572913385293112","4491262033722973729345645814959895801341292892141364453933986001746912984891"],["19512667647045521325587711021213946705451212667105284177071632281514325124759","13045139864288829158021613494026153505089927533513341378437783477882925600768"],["2308659258785931070980434546620469965588298109397709414391039650444152240521","6155842042942121275866378464113062621213788587808770075691712837700146612111"],["16084979044570276676546163733589465998871973686158934026961050513022723006511","20145624217142041136284340924528156355532157877517876092658937039130182461157"],["25213078590615833564814880011397628882747486517043986872445772806695337455331","19357165366653357600638278818829715606678816429942393089240231462889074403674"],["25429659342391154683259274612144956544645647156200761020881576834862121898703","15866880153760965550675309273802506164380234532995993848325073725858513173005"],["1700115966029642527278362966590480284552110182909359903103350583878206504868","19244761234009929078137108893993583578287811721714448864241714972774641051686"],["26019869090537502010164492583109508735762183831061138037508813695357437513777","17094502303522181930541235656514391541733554962496893563086191091010464235243"],["11509866151039129246197507880287243777751185293273996388079761497450680610547","14265963431840627718167390474803852431100594912761494734419487004327109227231"],["18937026189752193614034703007783996354930403525516838011569176543812654619507","24288096360995290320711649628070842440583576809823446277563131977878884237506"],["27966000432846057690129091623272991703147131595735866148501025595176340196852","9498705735490187769904994300256680643109034958184797711498969485961013129670"],["22950255692767466572836456679642195020276283707572134792992781785812551752402","14052397149500074981024215766176743759879390925400664527788221909923885503799"],["22031756944951544841129340006992255125996305499245151432008042744203758789605","26461218717187990898603709987857377384708964315867199996715348212029332297625"],["4797889095039677352942194860970176637754819390035749985687684642144083519882","22534469668033927905683264447179781094269181548505525903190647613298568144525"],["11877608590842689965097829891755621709951648874781916205446336353548208853695","2534247201706469301989426524098608766076594627323903528424648441867785144806"],["20052520440332783938319125058246742077765658260725726176240519612777291082836","22183801501038124180201396990764496567792846571966704523460807555711282069930"],["25710934224394329175442255737914904925768472481537910104650055539331601257305","13957894522718927051732435336228642029310396614308849301905860431914987224102"],["3209587634549114354537933807377162077909524674907325191668715658854649341421","9101828554147238272518745607445561868739919223520753337500581371835737163871"],["462669569767259257907156545862830617796259106912679992775146751332944727124","6747976190889141809290404141275117395973586642650147245477204236306721909723"],["7708106372500417642812680523551157809127346144895319874917406985979278395906","14928479566686295540299597382046627851689118837272818119673347763446584795979"],["11940847894538450743292329739852803746230570206114378217478406524204144037635","22032670501456534278354639446533049882944533796787228498529506638555087087397"],["16017397901046740137959943854124772133468183431967889659203672259861476293844","23346225764293209285318469491343103300964020908369157879907782864170525242529"],["26252741589552328195373725062603840460098526523565550643175486205833360668935","19802859010934053224147339356077954003483119643440733922861808184173125702799"],["21616896496133024190860514975958970484897169753550564387677595022293831715207","25983356232939241549237926614914913399915936653772343772910289976405932630256"],["7263446215780689802358215844034408276026266029997495533886093189253171512314","27722221529655799273169642294096168842523352689456731704836834111062963427758"],["25875872854225288630282931716280974157546275582731820201338812935628023028144","12995287934866029907485026037621517469610583841118612279009645225955891066563"],["2521190687905073073878213480758060102179873639622697659387010999982508100037","21431045461417662055135914504226465940395088981448364771942719823234068348616"],["12057718716223329750212749973120557379461628013702147718175469110836726150905","16282766678743474224000913844596160063833513522558044353703889607409710469393"],["6899642786734153350449519480490505720156449718349531063801728775717561842407","23488627407694234626304550466006845206433234176305049538405968955141604327776"],["28037530236767832783462713065820686490749265561134022948571607097298972119769","20313265282066595166336669759991470776899389968305087056824834103745665315911"],["622990744110478206425965324922187272548303365179476208708679437726372340201","22035583561899169004917880848846461014448102779195584763689507042145760897866"],["4525384177204916993082195767895194475413723667949735521171446745058669547643","13416942366665838374903590160452877278920104639275452005153440669086128316386"],["17330468391378558963696217749424116062362802720994048178873626929213952566305","13092865585563298920837409899780632145040000905532177551270827530340416997651"],["4606983902978908663240850865056370387100988107720419815830957214881315257364","12443088124153704815681097784297146435839097832609969153975958782826284121695"],["10443827822550143296382183523047565801888137383641364169467270578082689838435","8592841985658607388995944667425123133528642954640462079186868509562406308665"],["7744110892785604949072521284069993262008167048795431414038576935249830394565","12349076863380836330605796731071379108676933035968913731174176589974114444445"],["12356676405151342629619376408778262874830350500721402259164433762211968591720","655081824108443512916969379091515649293352618843327995402135587138037880694"],["16811802443564244409220004138315774828264160958077286156050342038674076388319","16564021712279222545164947026300852758576592122423262898891692645514197158077"],["18151512297955157914065627067112189427519013573375676904993503157946862753049","21968739279616753765266440909079265215431034713012303831657993821753677407529"],["2183426638657110986592914283556008038667124949933944629971968043086085100113","12570059491289947415219290513727374691009507189254845950415110837532171580005"],["9809117967528058229611898931537740960238765346882658902648984972154715986652","19073469928327249606578174335169024716452100784721105955533358281758987463782"],["22630473331651076142026899335955408432164408093522972477824802945348709903590","14723652917450178334487340291639277525721370576367215696445763140744349505017"],["22366286522350171659741357821231490449154934195159748999958333469688396855027","8418610081539824624148684369688956690492369306098769905520018518280699247914"],["2024572723717671513030104734147097281826776412034481570684519048904019640087","4032966193448005994342020587358984578627985633783145374796535660604713670694"],["14028031671814947200148092845960892643054154754819129884787400254225286613406","28463213506911213584876178028852938559115939041904510122483651903358040833695"],["21691552426618760522072580738980066682563916101918827567675182315054742806910","12826841966411537273094508085895968966562778253018309525181236001243367631853"],["14046540469313293236367364398893174149183134062673104920615671801198694943312","7852751067078418943059420831725871297323348896577684252202819052799804267955"],["7648782156372415001964800430685383207697923706731756246624919390009165362627","11368722334376909251592659824830368993547075275459459578932402802370986799212"],["14614910862331820988595467531829197382241801605619796182261762348033685995858","25823053146348753248271660873581638584082210201248598929319786370820818541240"],["17154421822626447047198998611191148348681695099269674838934357533496316322867","4313720917852645112110455344031638479118150239074934661948561509891650257418"],["9675043620697747609521669118537822380995113352546312500570100694623038825713","25924480435604734267490982400683646300610458649035559335978106615376596558395"],["16794893568744304117072015914718048724439337377977202123932589383907633858976","22353175689269092956497772937986956674681452403285956457286414067276012193050"],["17960137779874556830042819937671232723036427688314616486049604951935316279394","10718308969677712702819420333527871680758617583777599173203702467603144652094"],["27256687670790546638509741958151708847068955048031560690485114665732762907490","1949449799844739756590057027169533195777942774159036862259515329649964692521"],["19506543578822790550580811312197680861799541108290038858117781343066275151534","24699777113116497496498087811125776616799583308089152789954554427672933567917"],["28430445297773421989487870573794536911934985171575365444869896779303848865650","710458362123756793453770145223913326293688084044671857250816234848614812115"],["20898474251622500466838775308008715741540525503670354906606493816439062668423","27249102793485229664319291367586181669019338782235038732943927794812346124965"],["3940132704559458508584651571470947931691346387686111776160573796309306029610","15495167992127163830447836780473358523376610678367474660834191193305646685450"],["9964777022357821160340945675132295338251779387634829108726398966492719258073","1543206122630752243994873161292506785439411454101179454488266050739879098206"],["15603347573348769199892933439273572301759618118515228954615200679226303491826","15516833193971842972077517338270724005772796313171311720464094946939327316248"],["21513755947495762172721649165326297883067116820662983462865025592825412156646","17918074813346617160081851939337551484349054209277809212514701712651141062659"],["2224544967342518008133811679691175743736655148623159891314533725572562786416","1147905854248694157068842775311988374639737107114106788688784820585638109093"],["3888965862098569666358418044195529794698886980527371523239224083447141563581","11490867581889623597256933358898649620509106511297956178587741307076179003594"],["20281261776082466140081277664688174433385236548404941379881170532423367444979","26379803646807820889053149765224761952281957425242003699841462303235171172635"],["12243371846480155049681123291241945581332968126960189431660674531017424231366","16711419870369005201515734964920631287182917269830970197756918597274021038649"],["26249082534837830719391040873363426233695788443497615771777570146153241123804","24110889505254685795104869658348323743500356720633972789770097341249522491934"],["1672769573459887718096924823603777079752460525842611356091551888603181462537","26257811708454653109360430088505690026010260845048748630493441042685401496283"],["5507736157144119001974781398050121093749784236522554640656361003288166145713","27443125567439323805608454389318034307238153840356859688391323538465818134085"],["3062500191774228236155613910913262828747023932198935272409384156163942630763","3291354483015611072281613887512735256270272661998278325372566518348370768493"],["9068361682417720140601546166733970707132761411645691792111460044951730844537","10320870494083310736050537517842395181842442285409828566781361136613503324142"],["26472913008907520292960640412282708909484743677404264982236735597517150323749","21761687636545705140621344275328888644941310132069532506178855042678318920678"],["9541201196772776711369146305424222401534505621208912635969680078221250525304","7958377560997811467795778977635223590676013607109321293417758752273355928121"],["9648064275763211118614517532744027178534253087719976735909580533541486069128","25015846326012060645355273966199510038278727962642199410942620439826461313179"],["28537418879263567809280111258202513848528261984212831611300079518853586150541","3204739160038733322200862265172290049607841558780987195266679654468154640355"],["7121099626750315038151408028081822156795252463853618743117150447828940149230","6073821840374147842422990066717600939507961062766590187488217296899630975039"],["6571792191059867777211139280454946559895001781148440033615046694527033314720","4395299566083433880342053284793202717724536717587811176508661644077667118862"],["27422072748266560280550385742722708667366522689968898179949943986895913295982","22779164886546060869389663776105290538208411228094114669905204171516558254922"],["21896659338901849936286299030559941774334764174258420841084832828889250241507","2925025908283335658030843144700316832210120577064368690399257782206432036227"],["6068612478949872532760792315817626131606320144890712663349479613950720420103","810333036325178730365968464795750254321519120782709796862439157850002413878"],["26220682978725525211747741255171420225836750291451069590063952217903788700666","8987462873196249401646966757838174608005602907327464832298763023411206541421"],["15973184857903738231357943737048576450283147750681271018459627418857230056504","7047276841771531515771935759529764708146657677654450393810009328093051271290"],["14968607321353738928478808923351761088564566374076526261674722626199224045613","22256000311916850461756559880402777796198597052177065973537047315624302881401"],["24745116493840835515252829078078242573220345717142215732205862671970958628381","20172949029472654761337051200360749211051906347301159187606484087931046732346"],["28209781379721909810213923001150079388913167715530384657348183058020192908531","1528016708480123951021219753097196574175708318819013078476373450923844796358"],["36740126397435213901826393983867115466259492595600775017502432274888577264","6431904216659358957404387904040198851908650764371183588156794227795071391854"],["13037542752113761896327845734126506704416712749470267538327297232077929182920","3492208032181911143118362555621141777489978326583738551931653922270432686447"],["2492705206056439787754612529891201495889896565209784059009250222006144962914","4060883302954455816006244438715615051584137590021370939994546890497163432979"],["27270106445352790680748212095809506451538726888672436312288162659312102567664","5802226966239042367218719817944287208306175772038600230827017691609128238344"],["26556924056038216411085818347097292603973201429920878221171530052207267272180","21695382411597496424230923400972157823314721618976222188685744434077490955127"],["23159752992800411579171754997815240690020136091272747349408880155168706706051","12118862613817648813167151459660128965015963373943325726538203371543309933322"],["99364108432980321243035670933094136333478922088189557733274228691508572799","4706627921789369911749313375777399511803169106468313775352472544408891108115"],["8208195695413285608335379128753386227201024001012153262561007630493420813967","4329826786832498367152584558522939605688643436625282547546407830623069208530"],["20909866563920859668682712281453284110738447329157039514864722434964350131119","25806595542074982746406990455952512306605640255698153407836582058789946351024"],["17632375299410138590845199940517974850647787700187696594311829279536577810555","856923123021590321675669293940357102680712083508766876076075245707340484653"],["20329671102444831891865757005657366597556159209512451505844672022013711721830","849138875897632801270901065085857127733612852055041597920292153675285650506"],["3466128262188597601563719970353938503275039669736729667013224110652200973268","13647175891709819150509993989133242473504763391066342408439791286823460592203"],["10943764633942427960231053838570287192432801170352805061929696328615818936929","15716703879020141073767117003864369972588696205434052737521123715604860609600"],["19702175484045115334486308422983965660171676283801972920282087822577985483672","28905546504257184748090946615821245554883924097781308374227153803242100410535"],["8757196830845316990411651549744904577460292750834167019481131149730745954806","24456230749893461163613472352445035859567259671887523741403253196863753278153"],["1058191758163985037162911581042532669155920248558978531044897875862050014648","21386876642640911193084445733000428443176975752832648058931055309842289704789"],["13782581189109413033949049427405971722610505462495942068222617514675638671971","5837468008421439108732083345641697016978408645505193475707536253722006843879"],["969715937594615159408198387294194861512883847284830866504233825513474702447","4802733548581994669248763859944606197436922058741300684596094238063614324109"],["2979331827685605413128235230897535627648422759969591060273426977701900947676","9683576270201667115287385677091003105385483544992565338887986497678574478812"],["27708165872122924135362792493863578422798430946822282255560768130151611696622","15496678242865974810274794470441730687456875298342362511479309936463674329097"],["20478404898381024348809804085913324877533937326087720618002036373442570789526","10704237878576385885878150375062045369925674711637389958763341821661398887720"],["19504054664371024502916548939559109200891972763268498600588023484979838672840","14791304818057336452717778483837796053669016258985065808307871689920627718337"],["19923970770047655215360268160513333563636495507879117297639973569280872452070","8033602932468961351728888689196613811991836591883403708044690065429368498675"],["4956657766553960535117693288428375656808455814406458921195979005988221924113","22681487542544865871442400989660635704704023902302551400756800732300817788504"],["10205212519895850657832106209398686507598508794266896173366723104004780284175","12437279248624449837120742043599611922435841236392905773955213875417499913027"],["17996693603946983758855766614033315053106056408704354110781959527129801106383","23012441060467407569849017308139525243383628073061265306283653487010802156809"],["6358447536118892253366572613099759752325164454543552852442128259565136491705","4233749012010237275967974401654435668721325243624901890300032861642867918129"],["23492537235759647327239461712576618616073151630191648629392175548341003869460","11123347963385336240323263516141046411025401924958457959764775665661961835937"],["376875185218259631368568449558829607062966024936919539282474100512443505609","16853670170203655838256704902140188389396847652880296410075394528737485673368"],["28439043825166027474834648229885005634351577790338331395241612699657732007341","20249484502395824276244439389765591728653425748511368313495951198954609615002"],["16182229291772189787430379705165750065991263409503373811543894539387571708692","16562212237276632014680777585191219998750434953963495756672051060451912457410"],["1374367428129655756226746760085802373870719151619744213681262747599094932446","14269319915076690894331779116749942377416408647611326750847676448002471968734"],["12969172539025122948115977993685957329244713355816561797670384416543145150078","20738457172215659377106634993197072148039230025664208096677795220267845283690"],["28416644717951552082890634529979633749925150286497708301904015516544672004873","10964250184076175484354775497407861854193163996422260379140784402935559587924"],["25643168717501450778220431996880055838763312526096186223406683993106884614443","19056868638400574487439484832391885274019731126491026920790751014799907683038"],["22591200456494346470500239671137731813562885902203168311044145758103510282183","25829629335008445160403918853294201064207636078901075597661453677443559518893"],["10939266062426132323991580310231834168082907460327780501108643585340795749481","15734114398633699591201931088862603974845024399576733154114007303782600125147"],["14130836401192077285056848781247129229928631550988373064293840056163554507252","11263249934562559769153977270140186036679518717246851645592359552529198671001"],["19365652461332051847981372742434117646573003160670921980151734967017802145436","25886995615623432770246871971677196370561195883998138012636953529978422798011"],["16895732290933473007399429202286846790324251020874991182345495363119962534884","10086090627040772672258678644240248187944061282928011976558658399755405452384"],["18782287734327432227818021803798747835329668354865794221119892139024639539532","18837188748144712219867900140516252004573450491966717127038637991630551335762"],["14356607413362540304595923291767194487512128627689009977878085498537236380395","4871942505377002014984784832207225304577167579740517590305343132603726463159"],["6066205019149139015909332281979356241466156570545048766018872349990161425852","21262983703988044036189537590122931898299296169611447895308839574897976852223"],["24430973922569404606600179050016141986485489527977128926434438315663424797130","6627798477313472971860777492224787303940613293745376096746699505255534508"],["1594003981420681320342742063095606065945910828108575096888708571306346746196","24673911696366424299225053717892994040623645482704486859952926647067294427696"],["20150430615579558424359980746225519892914193934279498849814779191908854208550","11383403708238546620975756823594064973985615475065245030263358384500844024236"],["6939923712229888308136634814748996885544377114394954223806543973190826435839","14886850742579156802242520066064689663595137409339165794248575527089179571418"],["26279703224177357956534810263442041135556922290728182700770522686533355045277","8472316677368078927786777175962339146492083230507405858564758645289203608466"],["24184536557186330635427510308235919053581700198100672317913204383300593631217","7704618117892290261090185449297646036073338107737836296666752222073417218510"],["17499962783101067836416752592242922476718638734979607522801709362624593031288","2658772015401197103419840002692322516382433535108844255325405850150264501089"],["13256264215600482045662965793513240688654369547004082068440255396875318127625","19564622970193581460211060389336032422643761870894336195586563189020187935726"],["28270150252173299229002830034705908904261140709512489927662692698355924871536","8953715019417848410972143841080766094867459870232455936022488737358801257078"],["5101055540782695038454541770585406794314809668308412635820228931095261299372","6648003115303517142916163444038955214978556581167716891533715951099895307590"],["12316443550615055485153322649986999193646955074896964668235857920017680481296","667317070854227532410796870093684091583700274654581072036756775188782625912"],["23077418375726364646475244533052541997783510027178714269587827456963418579750","24606823161161169178493106962708378419528080731727291943939522568318488423959"],["23927437077701523923415014681000847581728783647645818000934992352114457851320","28697751980461419868475734658307542136230086626949430128608315740254105780910"],["28341813736259966887670644798137109346918489772446335100531481155402878784942","6419864210675359729374578437719332358009069958819330477400515229480628846469"],["21809895407826891026834711130675987619456363067367009793850176237096385788775","28248475623949661153836460747449536650390299512684013661928945913491274381364"],["19500022990704474163719222401990766499807419912294502740278526931048160184087","27101475286722826308690194426191839098410018161783346073979202499904661266779"],["28060153790480743894891925745315889317277326262119035996377052884041510549107","27140559059627064516052491422037539099530232745823221685073016277604454982115"],["19324524558049925553496302531688930541331304182110721764030862309179327626132","27938854802290367979073046541903739157452411989532392912071111467248937845251"],["422197302682779026864225024130589787139201872647668188262604785776924801774","27582099298799574276728668342278571760942754590913352163806929774268258424061"],["26177565041062504684101338515140646622806145669050567383484120971628874900780","21514541075744340336778260234639010596023247199362280019878730044091113223700"],["23915125938550450790203761701924872604565006732366561150197305386586676968651","28786705666633402006505077608236655703574726242242100570252821917564031108148"],["26404931546652561375193963154207782482724171229404020276544969750194774196486","24163016322668163095019335132860466760769238556814942943411505396686060917416"],["18909542144893199910516057628847814041159099480189676994065131492937851201391","2317763431614185135303482585995458011901705413277543054913004110745597186908"],["9949290847262141564607667874505233985110716698383733338607331474038436933482","22932588363189808252785096660472635722663105387133606003573824287626424973143"],["4239313668633628588929791528147018747303733078511649463711528513695343373525","1465487617282302163296809783910468723245095546529178121187363315764257406877"],["6289597247518845174382338521465469745258382141969432727336029520517070369336","13675014763687900067122654354373453765516131264831440666429515083848091729870"],["2728254624608003990521974122218246618021557985214415228527468486208653462697","15320661445566126923982075603435824299861854981898359185728790872272748616696"],["19983287382075537946106512507594422695735764796278492439819101551744859558496","6237279434205818736213775307164419673259287603659586932527121230551737030039"],["16384180623770823527006745039794390160530073513315287400658089070499978469613","20063110050411695555844972345826552378338448290080454770804281815161561576346"],["20991941710812730092916810473360257615915487275883404646419719274043575213820","6342510294380034174086001945042899871351982136099340095745584087923681284605"],["7972935712499489838829772460875327787784622711666805108782255278795377395978","2513720845749814213109163883276418813102854605213042083097681621423077927385"],["14653006240135988438672336899420720513318718006294993978926681484520227396602","2977493835063749839753328703864157268380926928418947260547985774936553353014"],["5251493507423105623244480188170188888063662336404252419393632257135430867016","11162376164320066670821134457673738177244881093386173955106569493836778083129"],["3108506878585018166183507929498593266654761782210244567960472339887801313355","3725076131100659106124328511995280446796736699822329465073995179213696901055"],["9223935432347552018907660526780827879344786128738705395935511934536447737540","14729132811794625144077426341090924637873149221320573683666153816775146369003"],["1780674978407637866793959226601569801010750275646142925067286513033131809087","28124384282676484936870886319985325959786888846092439688916322718157557416797"],["22790321373712409427648077660782117137429418318634421278302188466730576650008","26405074369840924654467601138556947773653174076120849576035672846844563850835"],["1668771074134746828371157010042907228775607525176962755993560995634630797546","15063398653156686726877877812021092915510118302960065577177122447807739227473"],["6449171082193793357858037694231621158439510423785196020606022066852557872139","11546073185724791883130138349120312086865439425169554280122856987986370727622"],["4025219260586561610874289734181318528020058996810478611492494050946876885258","2593695649638056834429478852141131048781485386609104186877318674549538684598"],["5466913971846769358134298561632358719893858201098916867437577176775415559732","19878006991889236088136581910969980685590829296413627956367473293665148904297"],["17373727362161400173761916596227438313848515761170420568325863816337103937331","28513863704818136752214143360608876922917816626650815079760332056684482875756"],["28329274549535079932874622867838233081775599962448894114215066210866291400718","6632219044494060875957628419601889724415490169348268171650923166652231240762"],["18894065442689611622095703807956632095531208983661229624433024738636485497643","26059263131804287653641194534218331755111288415200912073008308042229291260890"],["5657336910375006484955251603624824219832382842595167710387868257808608014200","15755653839847318701565719802606238043948894010819842572719249778606032257457"],["11265748944525129610609353972139326579849428208938079778297858253392819508123","12236003176568624377736669481707083798711840822918821360270354781021147965048"],["4062813548178671870204352456911383055620715621297996729941944906190677290671","26369356139558101689782518207199897974481531878163241473401660796331685942187"],["7806477480199203730735073712433517542321925972322299146241539828011963979007","6303994352171332260370669798280281759023199941284276756113782658794769573845"],["19624091244820386080176764385791854932658774450819133885409841907245069152160","25126474897254076754413172735027788413598699272708256646473913801180402942579"],["10608578026636517247907772450691660328610314455936848594429908405337174000791","12036224595448967228767347086062592046563373240317032768312197638587007445083"],["25868919217787461327185223675703608630938037189473347288896326063218868484330","24635891558034125267692603024303267319402533203435225013330713881748397125864"],["11468256296273939667226232024899702584080398761380543509741946793108233792661","26733565284794816355826812393739451954290168859250800900441323811048780240751"],["5797661517963196328896043776114473276425057481178696634318217969444881412633","23659609672656982674946779941858970164520355102453784686556332128116286867515"],["19585390853446604161479658770064403275510189177183672987767413588395450275236","24024116386278923543297288709571457963870297975180848569193268955888149707330"],["7659325263764559034422095392553129326982503236191221002370865793619881713194","3575790771645290959519340625239070961141357679684649202132191374757322802502"],["27165863643800100400360827275670515469789981904348347662565637331757943371248","28099202285315090921007942794627856959261660222342889098092361366245217391958"],["12803687753280761856470253132907857715405198111809702927972990003813166365898","24890473023810260666085372781275542631744433854758451393238966393524078777341"],["23337048979910282039902872802319089905126080244702193615693388838626330565402","15514652659857453824324267772319405601634531365689026891752709265338061049616"],["5755870471135813862687138003864231576329606141434001769735842341705088063121","3228088549771673406348506214577908160038125566155974852494117731514117124725"],["5050981663438949101267595695607737134954187777066176180157625246598977231243","23486121736630083927945262037074657726134757244962984571649643645114898159600"],["9735392723401234400800286469086186217090850768678794480862515134325946479379","3212019979410874377100181232678848217014466698602341496887599529298491696499"],["24565629983705518069672940476943082312897039030954998395212886360431170826175","6633314534369614443800961441236519872169210891353006923356123568832114103111"],["1497882542391579434214814613038029659899695705912633556421395877157768674725","25181007132761648891770834268286341876891197864428002680379817908272529596991"],["18510321412050617005902808851033348263798860471541520731489191407239093331383","25298783754515259811860703443928680732245827845380159849737600099192930245459"],["6697242902117900968291080841734699028097594952625260313475250583204832331969","26512974003195104131861203831118504748013891273652560811046747420401941385850"],["2971961244566392157378453641812401909655869185495938726504682745134386951730","4010380694479631259117749846438298961045669361551119448787948254202293760050"],["27880223805179125156061164011117008987121528676202659311203553922324518326183","415570028010121127844543652451853688417853966493665953161976563725215686243"],["13559019409902802112111061143074946331779137155125258744619475106886444441974","4368106897397430001744148588612426699872871724196420442667655887767519803108"],["9153275502015056367939947301463951744449506709030832200978276302736931190379","20680663745868768294136933089673616807326396092234686275039813523212510426358"],["19226764827276920410150161052489584013704385369943386584894174377734352374589","17114102777454142281876317780662801777638623650349653894388945272267587662717"],["18840012719570593825816785094085261011603353200854651447095097457872633633897","57411332941324971385813639296814463225156092805418471038241595038948734898"],["16289348205622724480261111566411083800863546399731752699279515374750568471585","12121046082241008611682589400842776416136323763921225560945995283764228608141"],["17445775879896008124863957540293517565483252619043489385186313052498065363855","8191572257797345031200946328515300447502519614069462562881497437589897356750"],["2063646950430111517451081569913217085583708834684351080689851672155731836975","23292723684362042199421555412160251721069571071187129051329308748338175996289"],["26416812184996349483724553495744838532032054794313104484377873733737472772363","7590215729088430752088831643396019042500720924353548617245811246391309033936"],["5041019658264602031884262746723591207287134530982617013066630883705754780979","17316882137388390584938034287302646037164609077020189477997186737485390867760"],["17800935948664116909148987888407606897859491608408927717391761847022238268118","24976910913702804838970287854054046986686032562506456795398133192067919255265"],["28588241446482327719579800847926606423738899461149353498414833690182774160289","23881835051739996787875113093697120074088325099106940963613486263543499053679"],["15956600620382149947728040504933047704136095002781919237730644467396609656491","11338879869521711152203243737882264318843743621052860782837402076811437319621"],["16527664430894275268479623219407178096024469511431617956604218592780252984177","25816909780817097634592802552891853471422826277705154551356547223419942012423"],["9701397304316464633362975753497253710528455120063634679415925611187284792039","23759977402430151757330488043630438450899946240921763742235264964589974766796"],["2725763435375876884324608731290848997013663984910965334178559009677892736334","27667187716646536234403214463183147382092981846548244026895401682850424588499"],["8366124066108350857510051015276871916323007606859743852574864895236741252121","22033561925172930109037395591113530208492381151987663824246493884766601839897"],["17960149890073495063099015644498722264732343645551834157818410750827339251146","13714369246273368393076157106571865067238887596918682720050255113420843159462"],["250359082491018699375975396490822468473157438134790470942544143646174617207","20707438611655212699733515025295376349670217529649772649325913929514518621760"],["22587062508483861961704640638389202236692664437013893757284619286419224843956","4055456207778442513766869030424309681243491649475832350874169281984953978582"],["4901927418376490327931378555346130369882882785605152659136978985933515368315","11727918047261741756826676791714178487766660006442879916752582351083864849565"],["12343435384394425898702575808357183540623847481826465598124724067436765076198","27028527411645893236453360650340546596046463086930616450519432470893685653997"],["16242565079769605181345741184877949233502698723770755212430908395712298524149","24254433016982816642740090481177311816398825133362183535566688107617053286772"],["16173395139144077498865140379385367902845127745339454002877282731117697515545","5807009887180906223292700833448964168387615245744671372994140106109717904745"],["18076368604543681098630038085253587284746525723512530059591693763868714743606","5660579694608884648697110684869450698597853304394607874815403853276329093480"],["24363209639916060672691619702282229961947458251103812763498621997282888265206","25658460237141390274155724987764393178012795379517740700348980740293772694873"],["21307799922003607228983496415671733352840878808445919934268455047769795808384","24610433039083714159909226334855722849407703620547142877903032685482820275094"],["6666866654531617892783685899381701456244558220547934317607187490539985030256","8738990642743169116582655105491187840220664398645756893940031075688238382801"],["21951291429881565820420811219815633356253772398695616097194946893147959582283","25931493841079439319994755945585768115390658535155623122556789050131107546621"],["28791809233186497142215521036784487064633420955303635577656066041567670289750","18113553578778111938124792160379293564702087329144587352075806371002011743681"],["1694478595136393925713223808090977145079430526182700471901519877830879355542","27454208731389836996572846702746233723038629307082825877120235438731189220387"],["26639388319729608614422193316195840154135381053134660919882218641406134429429","17307938568315875508894060396016554852639948915328587420221815879840199676873"],["15876432014033496950040760182835471481688022137915514465434750644225422986857","25799612265024451165966174071892610775446005340816476276048585901810199697954"],["2665869827923573045325478542451570499186655511951481522606971712747168943641","3395374691787764211395906558990461740564233838911346615186056316709207593969"],["6743299560207520714903994778569880276776471383249194022199654129198164847791","17195034138948614206789754626740905523978118050317326415479180532167481577599"],["7677657202744388647319021912267450387805898565260230535193048848680395274827","1027476163387535270068991780149296084975644378035650244920870677047228839350"],["2897256052522651294517287305587888742940419885073336292000324149959400241583","12514112969535100451942057177938783221878329451185343241025013015257930824822"],["1199248166564965354279201816164481802788992502071003362417980404879529535870","14472688328730487752193378950649524735945459342525654467864519556509501183031"],["13425352434889356516564968310595193527066700305635417685461328301303600211319","24790867405793892995697956624543845460025976222745569367876899676155567832654"],["18925465173157246880565430546393409110301018798576422532751840247256218928103","3539561158898017947338311584890915964553313581071362460713196163992368524317"],["560381273196601712826784607456651612484713375491509584125953416132139988673","14227926003075578975969222755437498039462580794945502776586000605322246604582"],["1553253843139840053449416250085334662171239792775463824744853017288912892639","7099005696154492912009377047603178342964730070238961832260912212298800885813"],["11489322095710815158589332595494002863995747620265181431747851967884779603750","3497074915359339217308812554339452630976231575395243139860315268765483378288"],["8152883921772158907114354660999263816026274324281075902142314910470621294688","22906118121530559047488192155295166087253025211115900416128156756971180177612"],["15000500479348626521752674125363480503088316682910253695022462549986303355402","20199606632082837046437656089684661922024820247208080739102624083297972769437"],["2743454024160421328989089571372499800859808893920579351524778970043693637983","23006405865970451162429682980807476809316835095774954496199813173756371604375"],["4620605704254723525088622248971133885153741650325434473188173827332459119881","2578807666416584604410195432328918997622207507929329038873818910678388510269"],["19177073892787077587962320294778387666227389800363229568616254558990084777423","7643426965747263794356554117387914450797361961783714682462166241876291686541"],["2733083621700064081206387390287436910138665076807907255437492690284258893013","26964381506821869899781708460612153848345098920693429237428956757752334156161"],["23479196194256537358148914849786888643601460611278518704413009047056266796851","28607146397080665535063850538111428892852245852404361522731209595601417116954"],["10700239531278810007266778340770202378630320993055309068251290710728426587553","22985626722268557256253096323755350702445494516093089460176533443564579985644"],["3426538798763911160830604471538267056622510390643201484008587856806765586523","14418907785037854209519054301815377481804640369097497596238522684778396553812"],["6141845257879722308460418606668740883767881242519440621465241077356299236694","25240917261454719645349134395498839710139943924610729124800758574532292253441"],["28622644763720727993520095784889739757861166752013530790976808534285202941951","2323822745010849433942123031016502983999163293023290310920582738822390063229"],["12336714711316187532411050101699726787175108838642360160503683813031305762686","9211514891256658653746894895542082347076882516362698416522284134616537873419"],["24772110050131734662944391799879884049330530833851126693854262504623911484693","6721136664582679287176124900301235828973752939088167166193203394619224763152"],["20367601229465017063893671101104854470867938815461165822078826947905653820283","20348505437170492881909920301580318096599276614744153467408243450859129028947"],["17972833892518818243880125260383281621908734696850209338579764977264585993254","447512996310203150523337666042148871998448639722259077345180654728216169903"],["21205505744924858019384646679185740323270055720489168440675370172381002817592","821813915151592059268039740678520142222800711523467424056157865493808311804"],["59433912281816033375602531946016233845923434323417453384457463382951635614","8307944933615913084424280536268137625399942061600723461221176335491118237285"],["1412187207668065842555632802980479596794639482937170957177136535098556910223","28493617902675304077969512708823653171471628849738431241009273609879948285247"],["25303562177030433250145961125900944894546178649667700851639061995395635884013","1551707666179753483641885310303336917713823295219342118737289390185712479223"],["24235124547381229721695145598322256939972357523694903841242543435154827888889","22299895325598856024135162104076742315694073434337066562172590275804792869526"],["406400970276524436289148072117313072326942479515436364249888048229765016257","1654866237360537618438706412662348637794797143914621212686470012112375639731"],["21330934578891485268395646862590370133151816449351230362934155207726246665941","19657154350691225603184933091120998384765267062159867954180597632483339596268"],["184662341238016870435082254056151150035679518655449730338669169405456101602","25309018483403129005038397633255039193526996062420927840952672326984885455604"],["19254664675578386882057665978811291318498063822949953841361179060796155366858","239898290752492234972018595255642462417362618214199051129607410684844430211"],["14423217450356131646321558910300199238727509720216209399843491785674958893505","26012730755911518614216459971043167235536012937068415035144800432460662589773"],["23411419420098082078407766932323901874737232479245272114398405043117972691039","18631100372631585879993890597309309190296677384310720240593750929769111131835"],["11033405882009677193344127907123351530777163118573874220156394993393486503486","25388130405815032656772175214511539085887919300037409817706542696060519925747"],["13982818166542259560450723397549412168053709434623009132377932902500841678822","22187394740391797712217883892706060090352404428181078954872016421519271248291"],["6015849495000956789051685749308784931106931600787335722830544472286291371342","7713456957652927872132639655279833931732679061686907017482042698107009012262"],["17231614278079539280324203098371099759814245412000766530907594643896050923044","13701532404843261334578608816170036050067369544484469961930200730240054628060"],["13958494234285515852758322061451718213488193061319401826345096497496045615036","9538382160897491457473248632228817972664303350212076349559372930997481413632"],["2669880816635824180136997262867129527449001761555208662398035637488282858150","11189393796716950439358276450548806925929107031908433743208065766015249534889"],["14232421650902474659661182063499470997644095849475015739358824906300711768000","22740327051379908361582862830317431877450330190279895265867253362320986960398"],["7607417868690872418285003709691131705409236777138151202622658009051578625227","9731797954672200508050947037515768427368588985088073442586899524441746425331"],["17461897598677694519067132191473065669940399729329652600819816708847347485","19274602413719335939869394382243913432439666652274423215080054182449701746848"],["11014670528916746819658486788491404678320141070762247826669403893189982663924","20468693936425066892232699292711507693737985033934662152570040529557350980539"],["22794499308096294484394004662113036225218915083020214912961633063179027628522","2981480442511412763369417303020598516697204355551485385822866263336924274167"],["18598818942750899017812391452051237361268768690120144905662911101783817197466","1713291380861822250849679223561685710221183963391119571236841121867299520724"],["2896922477718912612264481804756011354672670569865483849455850973897286833165","16377717657388206719560520060572414939575851263928923211865982419093603404923"],["14833863759774837226276739913205277465107795845505613027403187004544958812547","19406939384222449020981175814727602363890979160946960187062610550332564854589"],["22129967030010057115415553838178969392784853989534956423806068268467128108245","15255967359056579055583563405431838452798403804435567899127693802275778189569"],["10090344437056227438638626142588663739193323950546550886637062308727323926227","11930957609812637790415584117029996482647436068180365357866682869702551841901"],["4469804070370261044556357069084889063804446613360408183398471828889661549968","8570918162464378109714961700455322560375455229186398578766952418165205092916"],["23253999152768518389182705940459213587708384452817114509723315122724234423182","24908563771586529417815583507344276693647439372220245891891965859274846712356"],["3832505760987333626202945345804747039024333087486516482108249675353817095273","8841873222719043423639429320469705752958429838002381929744433486082134696794"],["12134328220383205229893526906986454361549512544884908457159229267749450940488","19871668571482058953162833519876701909697847284012257498155458412759086393590"],["13552861699235760099754327497133725598088967032625938652872431470615292164656","8143291392878806770276649067448770590943326535065959956575434037860288734797"],["15289396903872991284218895227544571490832992412926744551263108758665282041978","27149808010131644506937796498581039205679966025923646565005737731165496298522"],["28342112551998429130431930489241114811853811590055889847684252818366512084270","12526260167632198293220298044387196708705076496629247746599070977683701320047"],["22338158345946872295836495874714268088882672024203944582929868337060234779607","16759296473831423837615421453747332002229497290206829445822864570295608939825"],["23510726026134556904345270258536941150600001131376605833425917372030650755722","22966692522173029183402645697304230205689110012075761831850328364030596794701"],["20510361432148055267245320885596881365782978104258890873439877910087427887277","18589869133352646499212740373876040295639061617112885502973555043932527463727"],["8123029325349502759394262341543232040272416767677082800953074576550201317546","3628641495930451936749348484194981842078642142274660114434885120318198429786"],["7779849553622546685795520931126942270693741472594743803494257284564415379570","27903522514356456655351036327893213544575715404224443034044119750024627476708"],["13521235751792048323434911014625241716784457377939506117227607453188525811","9966068573355556297137948860522784670565943521862217776178903136054560465383"],["9957010304153974059953478923749749355416120594032537983221462556050256756631","9640468846759974076000616363166406247226986602903336827355728583764449510858"],["25737478249009143033549850655217238683292944602772397115007509199094378460419","18649525398630599973094539296952004607827570227469926269278571589243346216062"],["11090955773135127064119556706746684043364479563750679387779928146546238540166","15316418869731848148272697836770179824519998851112147541421610994593908922892"],["26484527257011580104926814874739953945122067170826160499825033371311311048523","23950177213637403332176555303839535463818019553882329833284862300452979950727"],["19307892120353083349289416866220705207934696978308991584695357019858952988329","16292670764810886701423299750442135933116890183251278007652931048290793621228"],["20461562397573819386064149555294112402228504880314340544674508541588460454503","13516448280169975557333828318705159844202154124961553646218023797246963808564"],["2302115702746912336159261072506494343037797158020227786355240868625480439488","23897316553137128016504955763504720662500551874720390735259029594953729852769"],["11581422468993517427254669231313400204716417678105899538526493690609706315305","3965664003247707985508166399036402565818584247568416154827704694148733835828"],["25575214019384690166548589007170255398758066248419675716426020417683918558693","1535420088705567789136949769581740320433490654237704140850373361180841042593"],["5403376448682700142011591502356734763347029861960334678423993673284325020973","4194102971491048880420768277012590799177375872041893695312068449490103030261"],["19594591822153934183002170859006458729945655908456176829889437401674630708050","21049627036686305606364576492629770775696371661168605041610371143543996802532"],["9030283256438389006151287603741771984477543167343567402874610319082549910787","13672126790027714716354222305694818787134834292939992046679649953040812362011"],["19102455322476741070066443202327295219961162320337271362517069974133273079392","3295855898516832611548910153436642231089041757321249385532440427804062088332"],["3272192968818377790679734599570024597119616240826099837742580095417494999251","16655863171335059698400612261085045739262421509795732895751263997990568543852"],["2073445501617551263322323937426401782676876418708908391885155499985428410518","23738144282829645036899514481359785420046351579383948706167405233570455638446"],["13330405897977820298544621998126965223108698081767192815541455923627975365001","9912462930617724808350286704203045609039202652628721232845012760119647838047"],["24527023391827828951882778780104720700842635457012360328438816058543763842807","20013290077959162353715471192560726737495981709964710507602510920411621070238"],["9856904893701425929855212223806273107976534309853955146764898389053679249007","12642858465456550619265824314617683126619669200866028736104089294417090866553"],["24155329943161631903272539450899509776296672731272091731882825379963352906018","23275489707902240443242395787302621142081700133423696199413536439687477097107"],["24678372002756246250495146049830959742648343033949915346323945807732315896594","5987017228010015471203369202954793280949869690256146023748212586624401455840"],["28184691399983908183510054526909415572494770225315021279422599981297766001285","10024989713394839071015544839920433918887886707972815516376085882184115109562"],["25315181723904389778226358111829638601575316913779587352857081497896451451445","25732474387960036010151637590070702608668263077077266062923049549896169310500"],["8218349581731090423754845321745054501387593204954340713623863088206441610047","13888099473836752482763840235461935636247147323656936093869038232547612050813"],["11782863200766398022986101806862877563597199862280425367878531009443486457626","26854735379621911114650807921787286585815541484508518070688261385148198987445"],["15891044966967001226213963212046697890069286612710074825789152442048904750247","18235252406266312235175474731590347445142828796812757917008061559645583394983"],["8980021182081077008386418040745449822126028455776877417466721315349368977422","27061004321626590785182657667211659555562933693377492253440777528151353251175"],["8400502890640810235665153362915843240346072364800996477318387111852538809136","7889414963706705126473794521309197124352713501348582424739634284585350557282"],["15634981418138836293992639979233853758724078780265355256187979312460702741267","26237233847410329991273601150968822921825298736050724822053453685435538375194"],["17606603910250901235285430259639650847762917534352454681572571530847608640682","25912016876432327749305542497099614709543722295260139496967163232655328628777"],["27810200366431388888806054780451723745897201027942333460481555494511723917245","22942151349199517496260140315466276093131781214858293318571677804146370306616"],["7882347595674567508270164592451421813768433060760991172821655341814602630210","8782082919488190368298920261270264211313567414779517538020044316943486958479"],["27576548499775522968305053935712004614623149336505299751569160081658520063607","28414606895609070973658879474305998914689343140867758874308352004175969724332"],["3274716651341506159894168987946716160115999968654242488531201779618750982927","9560412711392151266237331124760744861470307155308841938769535193799278193060"],["690420173627360040833395096884873365200453652242078840695920138499337083008","14554528317495648979460368453617290223513460147491205117346979995601757277463"],["20846079123501096765236271078034350123820869887325618693062756155471384009211","791464646577073976603666655191653785134607647282399389747301275956947997533"],["2951264838213029571386895638723413582350320079102390966946606034202661969644","16803273473281133637016534580933995864827403545751842739568568768200365937015"],["7509297063609021941063926295482734402293032647446019938210947279668821264126","3086881741383675794264601095113143976181964261443176394450594672011651940759"],["11026855903925092987284516431166631757801422870340665752008065038841302714895","21475124092812546463031528766596557602683297548394206871090115151585395239019"],["1686728050083771878316638218140289395572346715559101144005721472822694938448","7913396008098832567831754246740967317198648844016342671438658518363697315946"],["3383949317119868833333190137906896502996497630730058940638157987359643181708","9265870841043937314878222792452012481627088733077231620849022776952787988098"],["22112872352993040742424120147760067471433723136228757098439580032053591275202","23281151937603233853092838056739996802836649022796215425675241824698416476694"],["25762150299461739107191684190192398209819472020348607359147473513137333035384","23325742211453891207062151659131508033732035562512372766550679319170188866843"],["12164052410349440778664495160763564315465724405757455308056762828678145796504","27309996390120749734955528376454242295086161158034957672943639001493126191049"],["18544756907808167826047163430142182311384668702213872777373356000907491710679","27180718616454323064867812483705095957327291993839115258815228909207315746524"],["18693243186195428455174645906299796764290117414205914136933511366337630031171","15434330490592952253165054233466026180530596811532145651806061368039652921378"],["11775444727466165958355964711637501847017656381715480102011092418114154925563","26875698063540369266442012526774802152471093787355994325499615908587896762956"],["14159724041885906269536294628265033185980446455085869665447596119533389885089","12102796509741021216495587062267824608336984111029912540715772064219092801931"],["13843550132399138674951575372431739396905626406345458551631637650683860107998","12840019146372125957291352648717088323214021442039273015839971593154387943080"],["2012509642815863605143465779898134326550625131779422546754356861158248373614","18161434371583138879201815391829937500861566173593252170987451301419517561994"],["14899162969217491597588404496010832669139709083960077920259238321331507738386","24966225990632457059146164932729434492740558512497399179565329019469782011718"],["16041508407803535223105175356205420999234212196150419619665551006809999102283","15903813775772601766157249036563188030196066003601609823781961115603403318936"],["6449756052099892798574868311522251738387693543542609010122917178372000013962","20671732190913910318980703157660135592200387610323831248055472009351539986927"],["17087583904310930408425104805377236285131002417312980857645034713481533722361","16131999300335405833649602614505818932067843356983014477701819964337463648311"],["13774940199027229888718951075549071239947969328188708439673945231419797521330","25591990299349901915737675396896787647045710700921160096537678600123278078092"],["12245485535816255377053145909586982918399737835566360307065274434079178642370","20717495946966566029964705408626824825111043754955318338946751456661120158938"],["6472425297560876118545315208856323006457719963760976588593880460324133013955","2562481234756429426507003882558914240928533537462659822046748349488953858666"],["19607373453447551285857173613770309776698285492186775914459426345452766191428","1597940684693572417891705570827558594443200579225209334976526438136432075526"],["5507016467977491939617374551954430688532870299541613466807878661964005093756","22549121042972111747866472461715408377519635877584367772754045858640245267275"],["4716393152298858828253462493425846564788349910123292757307132911968995877504","4319807013734374804824730524949936371370198613638774898407989119062068314881"],["9755428235495001894573830762640794389422779008729529020600997070442054291490","21063435940344098026972049004718634657474953004403305256065256583019507434729"],["7165573257959759670287344708294380290375910783909916531767006374269442602209","26129848639566955857440885506123165672388401401610205450672584250996046516154"],["24431174805328482213894632715167314232613724878351944233315889368502243677247","26732719050427050260752334872815612799058762151427744550538571850491399818386"],["15326144379732307847520239846404736484954613575864553248190028926087077831282","11837254275090144005449077338886109390318997831275453408446409634646922649903"],["12925608665969461373792632562698438804559718103242020536483575047094292041860","7640636278853258296115132092180273055255908702001938346209078428155198490703"],["2780207188825460735306624450974255468870639476127562699868810420715566982001","15791974696780708876326441687978682394866437668196680791063517025671139100883"],["2238236607788448744548170874234101074940387793916242554907906526946998373169","3202009726689061838661094095263759491157257253399207960231926877108898836203"],["4031024672534035403342209476026157994901640589015037442812061909752490745726","21550361529122865963778689905374863064754590664167306408718276802163412135246"],["2345605241014133307182350738768958965223891787608743418207062755393020786207","7224177726289988099569928627554524902385073886140114788632768353028271637228"],["26433803811786773839948103391552611743526797084382608388300340574654525399673","1966228808574452384309917795654479033859972608794276384274143747706211313535"],["2911789867681086193941890039972547507142649090824206391961675177997823390585","22832741106491375751482905013895141181340241552686590648111136738935166445830"],["4018872997585233873105914859065390154199176836218967203529210929576222176801","14413465644982127257871577295395917754190301012113917476128257267226623712451"],["14304821006094690550635857338978004615041163647409991721452639280883997087135","24761450993617734038921846264007394908565149103494275752929746668956531369111"],["26753092067557033839692581182171472582718404412182439143914684367228084006750","24380203415181712829429867711949230950999536318912944664371921082862915881387"],["11172466748018678781446604614669793867623725739466982222777647671414686405953","12409086492830023324877827531086694065248915385247426142246746962694516266579"],["9675265448319307043751527871146801321858625054038918457415616767346271224775","17384399708605182710273759582831376743152299951125502044558589633840238426170"],["24010202846669705988449408942005479516108020864294042187760189113417367492258","20271675549230753183217184328354417001254035841760478168767520517232161839059"],["6918068772685496810256799235425186334462272021466129767187536382498322070112","27665721336241348767655512246693109774954708684775723439071215737733331205003"],["10449291303400813987903184388856165753522396499245243095795669449009814505116","12989428433464310053416100258652156938842820361019359778463648878515086161092"],["23734243544274438623356048900401935087789132362117443644040316567823140428054","10852063187414942970308256553093493884023456238460680736976754237916250638349"],["23158744237570317045035345498076460310161543996371476141337747052733195328663","8121523706596908423197131336368082123069648425176190199315256332067776833980"],["15622853510400171547463146456528870880665443399059020823023024509170657472008","16844718771709745845607212277270505309505541029283242084241749814188353739456"],["10221520390326368258557969271695265891692276328990788842399236694741457111170","5351154567071538974568291782798043146608889378098820555717098054761142986579"],["23578734131847095244987332558329994972660198646921958552949289199599278315450","11901225239685630440709592524664124722115378745844579464100762397094293847248"],["18088275802620863966770673726708528884855927588280059841867174454075519190146","12421922089168050132919265083553683315819215254834910307222202372302249906124"],["11170849748111572946147500495255922762481836601968959146980833847784739026965","10935906473162915807003325023887551013392714492734431971250708393086375392523"],["3588576387629038410434878630950654895892022735660534643641907793874641594554","17687865572515299996019616096673633997947520132913606916759381970065975009031"],["4604335462360588191092707737338066827242454620323796573015573747837932421750","15430707176711811231527904980969547303735547453284924762123589828535058245458"],["27823145106369240845558879720796828426075761569500966676017807847693928553858","13628367340950112857384285001541124419508274403929807356944799661584654883876"],["16574709072209129010623699550000351266832891437844493006848935205517479057060","3626224797804100130711818326825265215271994009085607757577914442749496822040"],["25050889873169786242048032864202249158852845009800109408522283611547909511445","3499896191724870162455933887676778138959553907714645460593844377457674815616"],["15333075276863935740975944373833429489215737088418789351605676639575844876971","6084083507447194851780560745783166270544727826707396561084645620074361193244"],["16031888914506236859632394517531310398529622359791012086104899029105804199218","23878593598773527864914498476596871054234174065185625745370020799442756228994"],["20593959713980241293657063689516537919016247095955830290182098685125047133432","15529604179323699783883065132527024841116870782617718358219407886673118057922"],["7932700561216090061655013104086747625927186106559183498119973826220296246791","7929852433107276699061632890427702067813240703235964952840335361450774005222"],["19875780648479723221487327025372172886529584464427546786803990310253696131959","7816823318837957560411977499362439130280942188948091637054747128217603573175"],["19099688040053529941605093994858878799310897877750449803993794700646239471394","4381083852561178534953891704656320754089760453208498195155251841057343037433"],["26507767149011210209691858330617969579232063543263115596777919527354263725571","3873915858037993418516185803091231756548412355291640698991924793420903904599"],["11781093233956163351763686833633937099267415288994275267808463596921794745742","16064333047213639505412509099045047120346811918261433437284843926872127256829"],["443137697583425857236106820894539220751051329236746262271093129342122481455","1572226908666625290852201787674565556720771441291731226848585866579392627019"],["9662724968618559704117075491013791589196959960934613376288264608086275907225","1612633713704586042778789220946204001092506235655077053863062336494134910166"],["7447757056104065528307953608736503282792594484161293960985350797025845063992","12665909134464138519079355538690825107515847871546631863763418804926187534681"],["22831889417794892924929305353643695947254190460443909595230924222875338581749","12552100353223783092727877139414430973196659692856804637836784804667763127045"],["21094478776654955691929942783537011421603855055932023479044405309529566424872","1455208819571963382833454853293246721799532122839406488727805896665567027594"],["12910715312799673536049874040193867059570197238509031464993778160476341273087","14310038996207342133562945633540767507663290962661831778179096955820580667731"],["19580603673387817755085217676765779417128808169191346180504931303742758220015","14228236438350900764021913693805076844464992321071902402249530833069377706136"],["27465737574281149142912423865314920042582941914997167901288193395740705110836","25478762787530810052177668274228033413234428951871591976769632112855838894531"],["12426873869844240312146580293182510190273213744232368566716433079163546589049","10049532607379848075632404205954847585891196262149712609801349975801343925728"],["21722724029205379233000600095944802370044859383975376378382282667885791019705","16095931303258293863376520015478778070497705836607120847482064955400857793652"],["8070388655229302324345326995476511453078231529010564728386754913143776254916","15164665336682750947982823402205040510451932097988936837633069469787020151911"],["17650264936834657532806261924233563935708861895555100629955972560923517637906","10411833792183730980982963167797815410148741400538512967280285583268922542598"],["4800797242698251545596899831902550627816357797902085538531390771879621693936","23859253337886485825296201032827028764463597610496906507249486163388539496778"],["8466674394443524445383793540032074371418459349296301749058222618166564744641","25663565269812357731413405250367420703019082637397515451882216582839526654199"],["20271091577021334234977050189661518124353025051470862746542017263332463879510","19061109651484169781011669818989805521211294208029495537168341608062448350325"],["2511243247632205770938895061408863560140465411521835383878459018430044384830","7412719844291979197419604848950998275723473962418951566960077103795072888819"],["10956592741674071493219518551337118321898898056768195757926818912886496450330","25840553489155965726158204407964606930997001287597423850627852098181147814499"],["5981418707857222591955748910058307411013756503353708142610343532930510261400","20578883604470439823718715924902829026387938034582366593541376166921994334425"],["12840270117653363781117245157601785286113593911490782936942631384329041163820","5748138241122208500337072345295212227431196902711476899343497839304405078598"],["28617202203034343065390024118398683901757330489338825314649572580379126919655","16110509101618088481185055045151490165986387680773614824506025647890624185833"],["6142671588698747264711207197255733815118998497437330747488601456772650355682","19172624265783236435334195846934901158739507494708185021154394673155346769183"],["27849956557470009900760784607061082544721750948599998955536900465731075525838","14702961074692340028408723531517207546412041986442950914340414512195605303282"],["383006974046855988600294385438580435290283732888591293950464546332626969971","22718976135379497161038739989255849405556696478833349364849994356495490210307"],["4517648596161968129258961866650943044094369087957645928027197408166356419118","16073560027532042506510268106669191792078555405115354422615523424902269995522"],["14279217788996428340038295535332198499468342164709451379572355825215400272466","2309326153970128565358153668512208948714031206261858887056196811342607091369"],["24644861760332673289874958634531347169608797628364802891915845309604293289396","11078767392996441148120928458538777972236740527856440869656711100140295308858"],["16420316667581310550962002941311457515323781639345027159278543121864780767295","11510668176690097388893819264616092056816662911078105656165927413094162367731"],["11877791824471896168261648407345942979928097945594169044318996946304499381152","8447582547553578013995216734652451029497735466387944422651006205324891533522"],["8463878881509546021133254438113656874305917616063724700244165064227547316220","3127848064659874508479714913275979845420714361210233625183675794379549065904"],["12873859474656361728416549035144330242292639559996960014131192143047655102276","16474787694940492965157215901976620802959899861805790182771374743561290212224"],["18859158902215083975143915474813406757263094589403147769263245729548410312925","24714764083193983631175228418436786550629614435682409931683922827379210962920"],["9162635869828404064008154716786350268987565181604466635311538443334947584899","24498879024740798061043424760902392907136790145700795031394101453312559736161"],["3579191042862328788994756098985679494835974439880462769456566985256970060161","3254622500357889579392990000903476894845526898875506603352837765564572747366"],["10859094334069657595012781881399812489903048361474818233588377157798629611868","24272223732257638715923461387331232631475418710502528165446052289803092266268"],["1794260979662296978428812863701948275284750176007864793124393934905051186936","21271407737210197044591060809702513798059249780544677435113070179884945788771"],["14085053939165487355921934338242103839633644957921480751242385763129310354200","28103788352199872269444430844798864877401547947680137006402848282207952754004"],["23077069330143792008977263049290617637114262957554878927519668530229655203185","1452409375487178886265639775004829757447871425970139253847929826818020085907"],["10652882066638932664608261335766568029878477957489225543697731423153806735133","4869356686676732210184533280881665213849908326063817384077911016139003332583"],["16370774306147795609236092575727931501943480604490676482081456484478793177497","13064310433305468549846888695460795306418258903742841005374743613527035465627"],["2835929660916285494511989354456740135610600583576539454748265449926647526865","1673817100110261287811973967206461770452365256094683235384347570288545836547"],["15704751056378972039686147365878439053560815784647128897627460854901001347577","5779393001439426465034408399645717188595904767221148445641224810819129319596"],["4030166580629431988394144509189436185534739881068213929040774625452067458908","26825539707602690557562472624773028368850030345890509528427073378051073019220"],["9181784995049906487127224793738609997839732827017984383060105478441694242123","18128654528127189397700959089438004209859427144203103259952938362557883332497"],["1937878126343459145644366014887250172691292074590615693607657130044829353688","3020246676721781891776684335625077202609424873777537715856575887411390587017"],["8673782441695541089189304410035456742128915568526409746185025543657958475770","7357133389653969155191103248965948116909713961927077050038601160226307944337"],["200089187284105026873150440934595803642673797949156195455138101924551819612","4432160841513931308198045670450546488957147476453282213365855681377398190766"],["28544123765203679071039204888305315857507305712900748753053717216958479984041","27225597252488077330070267755205504563783419631878509154836924530537572633861"],["1839248020055215636277114438174674378904195133044046371503643078866895696995","1779191437022376723385792424796734958804992002814440865998016822096664412266"],["10006076154668822930222507686501792428752822416637316192390570325815248391962","25934254199826430994490498622875190370428206011889749734064826347479816420771"],["16275853153692833934105041243652692597698585641274200441882511333329969438460","4673551127353313444877778913172534282730021535916089773566539642081956635615"],["13736184668772190152535885979532094290968735425738055989796162247174113560758","20976668132799444519426647347078301484686117744043848712764531146942096641089"],["18846406939085509496383393131931376485370429418791286357403081667148977494888","28875483167098822374660110196474960103867425577362719253276405772697324904157"],["3606154247936481271390412693736300968752557702752023522334140910636228776091","7450442651288015100655124688888320960050523606813022671725256145341162917018"],["1215382894673106923374250700887872307783850625295803505150907258996833103890","14561711704310844125327080269344628860859176761386485008398665728607478912106"],["13350880030546070597632417406001946678331578818723524212921656771161487863074","4804702159793076004947163772786860840870049362172068291756126695155077128419"],["18738156082687744472469717585608508246472588063356383175103489911105981733024","6377837255918723878025563408361216260221317777558517959760213736553560901329"],["18357293262856946654611415063750757158534860480900765127335287253240321443423","25469388310225189199541821456190610194354478767189850110957646818545339935960"],["22371444249975967756255442803190860472616450611984324158648351527358628242945","10635345568050622259636198350232778112743180279106489734062318203710484265938"],["3432341403881673708380864382074127024305748934532751039160631141363046462869","7089763516087855629048995384598452471657159171892676296612681033082040086461"],["17019785316112784592790201050159545034684936530734636276961273146095858912677","11717720399911674275036919966912926268146186171193528799562624617272163132060"],["23682685927250728538877448929908733159434148777888525835368241887800087461425","5779486469867767565299797544539530766123095734525753692208218857473504991375"],["17185951737959754616945562323755643009755823008061444495871072585422829109502","27962025203439700992552670616202253608350640689502672954137772620851989419722"],["17530650699160598970829797202290078447655358020012256160144309070136725197766","3745083756953682898304476516954254618499447653229391464513802180600760914324"],["7374821073082305852455466965754997537244948127090471430159477938613630709065","10159733647394356723859550663063470052829206403948809895760162796668693500225"],["28104453935627563110566720675395366688836976498199972304011515596547920168986","11605358068176347629021843076402084301900457684664765393122397044072907757624"],["22676749499130949928667212621341850139221531959812515553619952671483886523095","17764819244206362639378786414995450474087292682902917921242104283454661828892"],["21652719564692487451115722944847690819362466812111545356368175263752694879272","7899842704113376779848374353075838529650364793490572253377285522935062974336"],["11511246706607081863791163912800855982084309050180921869108665379217797156022","14061007975115809050127851333483347871460568630409482605738400863622694979171"],["14168406978804218771609899079784442827176890994650227037449919738338490400377","6483642547224020380636792233155416737281899128990631113206888197881572154330"],["17763347227478897152504824711883754675506140957621624248430260112382174666152","286182478979189879146193399124272584562903631148266124343172838568636216348"],["28547707435867632136584524380584908495878986240590881219583850815052294490785","17157733224858704371377413850584510212817877189062980106370845442738634541136"],["25535703511793458690057891373355771999532651330111597132476690728544703586104","7767297308925041509719069031827870577247813592364398604508346911275487546732"],["8379034787471669830556663698302380092261702053793039606990358114109390422280","18286818430472386804935176332831293040948957716328312913317288864221296115816"],["12860872084206226148783846304556932970769304788542035499853672118922284287404","20871169148680738439450734619366450727180550861112069254401224932750875260735"],["7900647747710305411872164619232612635995548176334115288229975837759627343217","8910740054291709230945191650395910582089762760441938800715502207497833967840"],["25184400714610204644127284585063644070038186931398018992393423913490818831689","27504724962059353171449694194718558613819532474388677684329456427146024602381"],["26663842421431270383242298678935978955413648680321838147670333947755347988148","23848269927263618876785186988018449590838180699996652282273950725253017822548"],["20973401816407144466938153883134054789206389989862959319319164794970140803423","26042765703078259958839903589344124988209964960184770321106834855977719661674"],["23532561767002737120743040750524101413776063533674035030277714287312191587868","24474290922914702251001474374532297768862663697480958156954852582975870697126"],["12553956543978353065380533032714636845300254731582893100059228613299942807812","22799405529036939370355025596842397008698372409089661649713395970015428341462"],["4189911947822067913441444349396955675369072470958318158504075599131794646573","20924931225978886810886828333869220776138101799937562334162902409780537793893"],["7225629714927472021845167728787097253411343934399738350719903173217158183733","23217303165474783107584639445712346741928623489733779635163438623866766188098"],["18908746515859628559956254569542217530840171528913051641739662996641772517657","18765898657564040519578900607981386802862803358926745264439998190020267480782"],["4489914129111450243056438818601638505650417703498828882230600246359546311645","27635689235410364727007182472085740067777066556589696569698602354658891507587"],["25133915426509694317209528021774443351812813990109538744708280574645728098222","23109004622766979131108589430077368251588033296120337144736826343902878226644"],["12372887563201286350139574738140452998072750903317801638468614371470724275018","11249925780941333728815312430432433970494982973953562542757054631975562598980"],["19974255586624103655301716582535215747727158613019757869353394504007551957104","20102814308824512556447375724381570985426003709785782595397801950282428459136"],["4073639992562617794239050889480580237708353069258122736446540153390571058948","25200386671892572893880008200171252324285249544620734198198236594946027703804"],["12671927268516560325518975156500061707000365216850385189856856159511933601397","17684000718474122486831576960606359185350769525263890191539772980504388892726"],["25245925517406145635410890252554915840317179873304891783698080247972516924949","16607914621362361686579457844717093081793384533899813261195642536649233233394"],["129967102691414845087589380968664099824334377155909744694957989729916316984","8070996858540063056748743624300121281123675734496883221418111421446107567586"],["7294388799111059787746982623164053651039954787194501272300434028030922442967","13408078351954373650354209731341914077264514005210101310208165067418458490078"],["17242048776854105993730145841074717118049263678440976566216823628951987067805","19348504242542417461952591164507762202185206076392666742583905103715746338712"],["12847448711468938640488749274476268304117652945193120622357301105683972887208","20371416024269073580306339125713255214267202690871112578776718946192559933598"],["7114404509360338498282458966171941855125579358186201929888933421780387963707","21885844317395891625042563035845496657060630340985545600437532833945429264638"],["4615133325568305058562208160684483254205685591178550448117113858901137686967","15890340384093346424428515160427870855547213884337565091340955916874142721521"],["13986162426321488325809932419264063132750973487863874933213607036310455826100","9378273483158338706778347097872245761773773193069369874388391448611267448916"],["23557992961688239657080360728691049264272932421644467252972036834970883906347","23980186720524465526075105958711143959532542941770464190529393631989451485701"],["12087926464120364222368536324430875363106091348389536241237566946948923069881","23411594609259878317993028080299312031917238149266619842510176203859380902442"],["1687664419112011027471209199950317556795460644323382426261022245580364644272","4000464608037115522758198071665873355431806923169276639561470032315874458793"],["14878646608756448568527464872901622805404320837951048352243599876979742553668","21615185504973610114318035179547697238957734491147450386934219796290643126057"],["2720463914007746329279359119801020237089400818897068620876469148093448627355","21113036434155187556018516219566071848091696790086674106292275908289236453407"],["9083850481057916118038626204765945849911080439951129832276582419352050857371","1026634577834582552424952979116423049796070317116858318362839044754643158028"],["10815198851476524887711882649413217362691639442477353374832135657361247910456","20099213888982851021843773620569002842489754382676719660442931484407792095167"],["13957880857191126532966018604938073641948746180720410274873409250543164484561","8319013603831644673957960547784403295542054724348682722847824682452172004837"],["26835644668803183088914478967213206442430718081505310127610472220107717851570","6449684495224587918032933980518253084575654842895064734982548022254131091420"],["8173112620958755282834116314979387131424279409286234970578053382915995822598","187176240643716141592735735063871402451527855430868028428049366565541378398"],["21056706433392049285252401843854099926261194135902964575076880043244212533540","16054065588522109864283556287460038025621344670462093725236068297259611114441"],["27355112056786529380441209045617179310463715728790138455742394066065815927950","4382453087848874153715731496298194834615379171452346180231834923998851733839"],["11487989767667409128372192418371675896971756194794073643544508356436817722009","19247323495969306485258532353231203974761217256136854570597629282872955849350"],["18186364547009276743581018705521812577742484642460763597080799795014930318792","11980561515007203391885753143960387625749081060705475377139837065411116455516"],["15859989298013707886137380723048550043362294975487569365615933014937456431722","11315074082296011080908602165501436545980161712350549767064515663039577632503"],["11744851481123915331961511366306324125835564514099697422288263623082941899191","16642421928777414989116892212954355999680532219695233862007611650619281952786"],["25504222038146324826529065545351118630485920684367976479583033221383890063591","758579844636208575166539684667297027325490555195008635129110032786618176257"],["20903458983810853713824277666728095514539006056369101993021665578215387498683","6526993701014026948083616327161700758615539032457812981690748788239329011956"],["11013442531223872826098905179571523606766345241597342868945695988543296962345","12960154723222267870001426317977726980145103413678079678544736497976542289979"],["19430418274087613883770005364015198615040944286490240182651052682227135475216","11980255494307521254110712362000198136962297347117834226356087243586554821253"],["15680652535571735993302255200965356635058229951801715630643611107856300537022","13708901234667639141127921591272260729001783814294997961000710196626338350558"],["10584041980901028019120960812500951860488854758471138584477474733786342712598","23378388051487644531426259861578941447812303992162294888477673097154428795588"],["17817955504530619375883675220765464527472721282970883468975695816915477705342","14987509567635821974544009623212639474097059812640958151272971553292842723721"],["14936892879681923690492395466533228772184630093937713197666710909769617455732","6963075562348310345666579190913001686500784924570190004100547736808164926253"],["26949228161160647418674694819409961353897503558727419041417219827631826208740","10081184629212006533332565326017102869884182717956760216349603068199723630902"],["16612979539913985396763821754139647810777893784347616034360025610826220054213","24153129425771579548708296413595347966540751992038224592984492035912227304319"],["17088835095363446291928792061053665611725955575970715838789017842095539926665","25985958571134059917581933296126064067747348020637943276331769133161468546797"],["11319017170254310808106643661501922609813589891489561835845019894654837083342","20052180570317910824473539795773877855023745012212729424717604772706936959271"],["20595909458746486353902007015496545251744766248990378062694776064604729957591","11304782995516231324462614199864606404131244567997186050193926030178696036234"],["9538042183996672663579259134570718518852191016925350341441875232808008633678","26077854752768481270924092204584969088659999393869695785730495845349458386695"],["14794199468559827665561170110292452203298833265502171162670766929710253583956","19233202876839342528952375547075852137830348044147729739839386405086311843842"],["21807862628782379144452734875970464169692198144825996761951320585963330726399","24160551772485220525680490249436004943683159055933730802999040245367795768916"],["27849341815938994563450717155704255435491772430451160897992033246700243970121","24417574311091059520677743292091246641903977997701886491782626386301105619049"],["1717684728094821066384297604457821634907142378877314808807368835412372207613","23358901382158924599739394869918675470179716834502757614936881980463754595682"],["26808777050228734818884802874412763920094233296812320661791102600778060822879","11338687849817455253867583637627499797526408432963247803349141715489302162859"],["23182748109487042059023049504752317418903327514509859739705526464031573537054","10961570886449208375728734745169886843389794190110559831041643715279086570629"],["5092351374659183982855107988969876712675420576076001199925978139661267269104","1587486886093476708808976981690435450533668456133917152850142804886252913436"],["16054698151827352969322921943535965795620941491541472732882213798367937255704","14235977644710343358918376333054676983969117415946283918437899184208913462379"],["23657042988739459959311339438525137129462790744462513794917964430269642787305","16469188409208901613401464843475661551277441736497927495734162430754880444519"],["21716471251926074358370152884869368423953243890256886289353406496352647598949","3848260647348770973053934194061270806063663368336918876106311344870208522011"],["2307811544985366271519734789419641990092845033600466043870566190512024097654","10085899698932389921834405379742266414676282028123204169683393755500921661338"],["16607228513010814726801351464722275026557739058162505388459042538045144271175","12078451031660708838080696525977720151937809169681971406691298319705041479148"],["12268408393576051419160563441032135669809583825583102210947705273672306706754","206843141256026855426536278862882192287432752975207125005242885857258032645"],["12974302226348575423551298158058890735737258200209454680255889227417854728212","18340297045119221706886959228962527636109061128747280756864462662002092232969"],["11548903171887963265530504297500712274999834603190690162773895994137365378599","14463608322946451586272386571179078928225340258608278709782844474208070337035"],["26798425197331181781114014727618578693473596671557078792868349211334954310946","12564981801132146615323499744998421158112652133855987337238709099284076177605"],["22556555937258521758633858229714052495568292345044457051206447694098960082186","14962941752059661269018512178995732616234234320053351966065717854320082473236"],["10243223123071534710741032458498217919550376005658423550453330625898968247945","20777612242919752399088778200077734230378579020833833606033677360810424398204"],["25971567450426900827065624649212849643012228021274670771903599408933847822561","9088766975448557613974736857546501279571219031904524404328947588182364827550"],["20795933744214789044082076196364218569169840726730845456152615246383591162943","3731682961724688374916806787515358088606782138771954855562784249371265339768"],["15642986065745842235414687984975978628408947409566966078343365841474823488050","916740742102490233947638863484458989811976211635541916879572984887659794822"],["3417210432037454726747522199623381194886059210091222848198939024337208483268","11045934425510338624567388999069978910099441219519165623957371375662469786580"],["14950871952241950455742859012667653212385876249434595627131826159066162117674","10446088129636274947225275005629068849316760344428378931363509572458642885663"],["2077677388841903018089383765220683279534220252411709441719928230184960068112","22565643725216759700369050382781737505499935623259105446576931193949598860227"],["19524925703413376910019811505522827846539533635451883061866700707677278196549","10240128374652656664922846460690828145681833224258145232238573913891591861346"],["25882333275123525433234669848855017933775363400510706428552246589648805544499","23471545255422690499835419249801947636575417287892536630491983240336630768505"],["24145376683359528173192955146175015240836611899202067841330529199108516299423","8539517664832661410389451690574902765520096125069475491142308721042469866916"],["17710337331976557873450449721516452073397716826450572927659414459896880331412","6971309872971658675064110887526375295681430405597337380540458229853397030822"],["4286459133675978079648201617362734168975568934208838623980893055738696327194","25944514317778583357597398615772953252286699062696267347007394746190919468092"],["12239398979533018233761298404901024908873336346122411081060791174336186270132","7729451749047136372582267675921866436310600923677097562320076070324099865837"],["5335292856534079101271939687411678481839939298399012610127015817349649112774","19378976099003191900680994043167958167590113669386125196627290590626243158246"],["13261794904551666049215110121430534662378262869442153396940645407465487570369","15103174260594648005712159359085323184839553183714624986824630086695424533154"],["20376244657323993796524346696603674163340535539089981608510694293257797606483","24763703021933833761004158380832791271650409937458459650149916337040967944640"],["3184620259354096474443940846893592675658410006658804277107599628534236431251","14859274030963319172508808905023793397185950430915221617900673145772787550988"],["14094495782557023220513295010097340785202272050360063524227570514806834344168","2976759925291495014340824416056353548681508972073107413545094660561660657883"],["19659648251118465796712310397753719765226608670393622124976294317843321958976","22873199121260250653958003919979291474181193238254498468324420175017574651652"],["20459143012012600913773119929595556824769809294410116943019815820265325120708","5559288662198314941408235017053028286180950449963913174299533620378399752216"],["26108504134177819995061037316250133500141702170496026701360016259636444501255","22684788943036952453958374740095548965174169312410222186237803347665996305064"],["18411148511648287144823609908819604076000316149077258854234447473043575463243","17219361050324310839101126684884106739132229643534324944588919219061425482794"],["13022813142213947971957144916546223711259135381145332922565482226825567155718","18735339207302613987713409060809332360152200790337440352556890421277187801370"],["2993809444731261269841660256021334804389688596988096775908150934476873133421","12853299534533357317835615149884533712092628534224282775110119779114361812151"],["14744453465867781655780760493858790927511923223371641453309703545885475778497","22911470441772279067517433576238896994407352688673035400196852938883862585196"],["2752903680623803315370996491652041249598652780697792773228409889627887915735","5726073758706548454791940589343309805615998361828463936802494347957499320208"],["1572457599854067029786964873768671697810417827731696668877425925231200388146","6864213374330856247721556734990506257497240243804662781710248272103792662479"],["8075356638512673093474529953234231560524265742624496670225168471801823328860","8089197988081090290319723271309078994604706036273857075070585897699198538103"],["19632274374882417393899271309536587024469499269318844060698616558561193345407","27826300908417299536186133967148215526215707743251522642816666264217668534530"],["11411717392623702839184600697881382545240529448989337769732179699466146449201","21787256010272662150187764822515972842833265037253590125605289803494729113093"],["3309499108677938803349569870666570660835854990197715886273194486901213639623","23325478515511382923415756944741622291582400307397284660846592904228483828870"],["16755640562830375428316430949255755065599040717810318373590778821316024938889","7587933489307971484243683031714863863427964572235682142391433750949505097514"],["3774060409106949554279623009119312710155995250029233270127721958459108380021","21890429547361961225741004693350042304946529237487329279923922137637624913394"],["7808320789255568539349523099249589079843680152260150434330303881189903806172","22173423479803868220956107909100224026188609780368252824271087329367531335558"],["26266184788863064013022421313081668247764362854294429250756007479065946664426","20464538788140134271706815890653301761245969127527280600973122182793710154257"],["22582422804973590677518969425178250359079422629633906328877721829080335585416","15451480923387983309162004409490949306621142911458730306979472663137123710598"],["25880620275362325569339014992397491846536652578858020894351971155908116494970","14260146647511477867661658320619738340809149623826111039576232580477592263989"],["21422601525595748684357260890719665912421510177675993867713629671484517157826","24608778288152274434975103461359474303381603803213213406894026607087898702552"],["16238693752157008837124002518646595039509213484754461784942050057754573477458","9760935859961555572124054048915566327536808543107659186734645140251906249239"],["22207480096197248881880162290515801114222030091850290955534723958821255711776","18852608413193134113339877103403060721817129363118541026226860627004411180735"],["27286424736140136856502593989117745178899365284493118502885006680041791537957","27967822639816176849624522063381081720440640557070708512886698957271202502883"],["11476400051527659622684492737277483162510347020523891646889771649959344039775","14720219399775590724275347955915527699070205553738476766514365946617168798968"],["26177874133547934588167951157913219561440049476279959215795215935111451980366","23998376036378584715520607894790383141467230658234707946402978371853198179978"],["15715666473012754588265232786116780923834102414204570985397078927349013840377","4412838196295495605395702709356935354507235388167687489243855909603878071368"],["12258489228525629756202113039196521635049797779555402213732920682652787688907","14691647659146354233240700038567551855794779626872463819709913085957932613229"],["19445224740590480328361763752944429907917265762878117744933412162257061680015","3722177399484834753940525733005385940555285063348391935706447691870289947000"],["25527905595510168308948638802891986579659327060820615521509426153861006525216","25326794867627921304092655278377078758142700447461809898177865428887068611818"],["19341001987313662985869022640048625067361449573457300242599191346951606643879","12807890824911680444339277457093263893638449329054994655596474912184443830459"],["6846550493565629121102405526188372498987313788116554690438098188836655335618","6286467036849911319298646287006787163915218039029517763819379649457222281501"],["334650431044551315495182006480242650893496159554675045770633458971503114765","11192722348045600824207613708451989788222872057283148287049455694852345200864"],["24177483050050965926057212711536409098223798457683112935475499328625421737475","19351762182541460212186249180587902772434047245862682357334927119072805399404"],["5938876044079682419482827935999726502463337535698588514159104636967298017625","16237334448506561525255949512396224883564072879525171306259539032758447330050"],["17268018934665589824961910360249062405145677686047476064682953408817035582399","5409858310525210700447008270716590134096996012595075279479140170908489033773"],["8053103260057899804773683883062574135613241329769287171703674917180039329497","4566477721720266482792025424769830684449576467487231829420214646843338205160"],["4923786353711277387882597318230304584528030761506086207453841995539947926848","2447837114439418164247321501206086508656444469665964720887602905363425255297"],["1616095906049305208110053661624084109353496334902805311542958089953231137864","7741254832090995823504872549794897867785647130089388208857162850723052087087"],["26939949669468395798774706436871960728652540581321625056795018051110198756312","26000418317885814214604966459049328240960416190828401477250716725793389499466"],["3436134231909369402437376597994950889325842821083551876852145498634842124797","23899623911205822766374255153489687300642102875520277812729369537958266203821"],["4866396721727713521587544800405303615897987309768573851099054920981961784003","12157287855188686346623179178082870026490034460517028610585092189322152239379"],["5468305715135786590004842899961828634236445745061902761807883038374165888545","5807247373073987891234535194835848545135784642763649457893719396005637811048"],["6127459300177871926648118242208797459373379551614699292368373461355977292905","5582006414789599727252694389370254178049315250271239962315153205784432978170"],["4793839776305612758474492198703506119005922452395440237762420902520053199806","15482765619232326229683938402228250134760635118798719826737350152627293449864"],["8845642512030253645614050655480990891738588215839105286659415087028722862347","28276467962859218995882027497059730093413140680431355213243046299630182900839"],["2965072530998596200699075531595116570417909376770933322112447425409352982873","4482608891331922528943098816783926174168275839159629528902327045775242989451"],["17459808842969091775543224016068288229652237018928307368859312909100399010826","13098672770723143840922837795799928992382662147352316521780763047290950520928"],["668585920201917180602734489380492698872021867397936096656930486488975571846","18619926469094798997972813487740462392156892015187511480344078741588272090962"],["15680431127288016356338289623144823307064102992873010574166651280116554582116","19737610560351518813685593349192608734585906426578928176852558929431229812611"],["20200948122439904498398216985097258284972668687351773478110582527975247261373","19067917159280863202128225908529868565350148684826061517026107979108827416602"],["10021707425790017884984470067840506244255243946458005719572608181555554559892","23973456358801539283956239582993009334318899640367047605424358463093541693543"],["4345854878475854781587015548036841026739136195938027454709738500221840140249","2613531413085196447730904590329897430015995078966053235119296144830943433945"],["7778314639054222949420450871986799518961121607890625751093797443284695899755","5463672837722347863274869818297337692126000209097068329267781363340668832972"],["25477569007485865759458337229882178484216738730971735418810387482966402072948","16668534746481522012180465646815847744842169632232607383006675017380601868041"],["20267747871921598951737584338809947271762071994571783371250356703807423793881","6347818458962506134573820635707970235825314680092371510543079466183935314245"],["26687258938224312126914721055881005221029615635432660577888315964288918974853","19564679950693582874503543682352169283692584804154047638633968148945014150447"],["23541773119219965324333788981746209451762712236135003226040994300694312689491","17078144084797818778930791552896391118048407480801812737871910573337696000687"],["22011041475563797378482461150350637976378699924475710235310832396496420499964","8514844991773058658852844150937309755916329254869028416881529724187437447270"],["16557923557455892338236885446050379875338062030148110551545871547366063825446","11886875982917597000136563382065025083458215939131174656829431148194411690180"],["10661208877945750266498943211452979256009110232748900640871634314387969790884","6350164533200945936645180025850069609236518526368007361060850136570775049178"],["22015863791571679554905690186055040391879124490584174284878207870614374792123","20998684548886913523461486112882925894902766810982557714654334781317431137036"],["2587219675703353054538734174005691030690024475642857117527260042058230662153","23656162025239173526144268709995923471134406887109805115466902130008806611947"],["27061550146575741063841532279665546053149440570174469012465458545586622279411","15283790206381622790426207679369114174841515799889999423305766473604040466824"],["1059037710483195238845216360193346494714834647292775980402551036105814128140","9871759154960618401033201250260118475779012430327176324619768057887218722970"],["6468311583501105471730149614360115922078767162881017679953688684348990048251","19132358181655531879904400975556836341753757905761206512978496135561582724978"],["13875617982573184960129288503154328418115441811547452817170469028830042146380","22669465170969461662041428053747975369889093479778712250181235196777082556148"],["1959206018189848309887915448539197009110342059256706163380105861420064408596","16271577679173882124428640327754984783520276600740037315806440410428788556123"],["15201413834020864180923512778832142165977411855828517438159678536208570612906","3642566779547330363243639298781582959844260498093124167099499464304809654853"],["4180197281077895130229411310330683057530737227342901124568427875886981877336","19800319363827261812060361228858318161526123117823433105500749222669331102975"],["18796676656275097726234108004640546113967568157563024427635546622575537099157","518229713499987891052861650844814635848814223744496691208424302411059041559"],["22978166539418964924788881320557607079723638287546226870324886032437442714397","2791126309877767454500634565596673728883482583246322768578386304348776551469"],["17924052225668650645506648724972764296509481478653738893725422005279305589473","17202962587933960757897387180297501785107618292701396867882365568214107027245"],["1926319997805634738494203786720278170038319350203193877947481875086751384389","19363613105290718150629994369237131835687944427922214488956187322985732561127"],["6219985641993728758661034167444895902118435261875608673987140449615311246656","15396759739727281003113536763137841595847117540674444487376805199313187030516"],["11782457476492383389450153061322460463421712500712157022793127263707682902655","28081687841196034736742671129738382226662870088244662836522635802855181168600"],["11822199960643247390888572925895036793671860534423830693218657040446166388412","768831705192705314727869431753144272470809272011580354789308726011508635792"],["10818055165709347974014128346252226313276278437054450783437282681652558703580","20437406363611071995587422836474702543670218260929404202872436758843898463858"],["25396410214080025216935961163963640566159722616838548012252210445610141407865","23572396382099503533365149376285280473511850891349809726934296644552333822036"],["6579690181301065984289270114395787389422414733062313770011425066570485815239","1771435776712767049639389242502765275390566023915706973265511488269248996910"],["21035802135309155193773543712260160976721536301458545434388612169854794791773","26893518500858730088066854642055043030972836685620080763660078303819241503544"],["5376944654655465793763583347659256406821910732500228275014748528956461893226","19462781122140207206327249067210028822845480877438919967514149097059793980022"],["1121929172764274127754990737811252960750374727788065950115273988223352621422","27627525116505881517989480591666692992104108090658328872468647513604612650909"],["1324469465506210599921754410890362414327325650134104560732595282011811212312","24024638668104987593751376564512295600936260399905523272842536892908461429312"],["9197689410136968167002004982439167328713303227436687657678051253089105736291","21408867773699696725645372252752449038116467949668540110192018554559574016229"],["8169500413780481223840175570224894201813404572670210592532220095480209443521","26636269874740799220426887143963521114929311184006800728421065247066518985198"],["10213943682452096348787258739553799802321663386971648355942506513433794437939","3925841874470694737308407478076199427048395221800494756449878423340316683332"],["14187056295755130664052260884841910364245329727436380984703598809172836484356","10188578563410634876365625457265762735067201710801458479420128551421357934742"],["24794955620919929543981243511040014576953711815795170889156931609291674281104","62421559109069543316471450608689676088840280815272372157474977831936286129"],["20219970863015197379170581145290090707267241610427130616264922923019802389056","2026463543646990703721546370704548193697918169080745819474212878094532430992"],["8846071461534116060542868829931447484616025257972437230413969067234094315344","22166725379881457414390113364287211751830732471904784475986186316295552613620"],["9525880313328295204991512471910475441681833473973116791405799820673910274055","807934731807157573516064448469862917236802694226615301997793878737295428413"],["8812834456675709825747609000196859664090749209914676191513833229735493116411","14131639241888222560528000506854013668281335444547140686858658149006263342599"],["16182949869494672814460185831205659309343550060399822930408870188671916871787","9366408979989198906308618028153117057536109669090938234664958346882718670382"],["14203310440487981856355245065169569674588725686499348402960350390746295718367","15178230733497031850855521496208533863713757947877922298564476230403782925018"],["17021563607483906014192042186284219511745100958133122304949820403333666716899","21304933954803449012974164448682657195239558659531696978251464288830910555453"],["3445860782956279390391264650012424505645166766887089464654902261710421252298","12823679963554710998723995896126064382655068043223850247682038475685393204586"],["950872703301995514067038546658145760586663289030326873506685199376497332151","12563733973408497918518506549617179325154272556489583169888188658279659201460"],["2045415975508999087002601327258144732883345370847457961695394921360120639949","25561905801329433235122960132810041503710846841142375458805276764530088915607"],["2296809907054595143766024193041693186057354441920920012668674557875730519311","8720609204384427325888730637151471086226051888236175663515476512714132199832"],["13846433827734823365562388353533737762876612969586097911416480081864227529052","21751826676657886787258045840930212320979859003641614522559208753665145921092"],["3468594729600529512877190576085790480695205644485454136030758674436368795312","7230642758797800749668943500295585066557211121004520942246663968472698915264"],["10706793402901232351215057307240172298914321573870183548044021229576807104569","23791200631562381788290027277913968646463893836844697642713801595548016470840"],["6981396086721819235085696297766568809001095772986301756515654817976766226740","10929985917618085079101197620217431336492581001626932316926181080133795837989"],["14267634082145747242324446657648800327510277840010040698375973435180441254536","3486227492340395122691660932745054559071744050541319863220474704199841420885"],["24184689197934027713919368638801251125474809551099392731624185568833320336004","254652180229286383244521972609305599206033217417667023511248286159889510079"],["20532347970177499882753683326659971807449862096101311495386533226093217772595","412733187591620199204050998405352593417969343798191305448766847526330437214"],["14938675676873352014832083285984238103307699499650814403401299935640323880512","7172442114500538452037586315967645277120731466663323379710366309033549376892"],["23731578534574546835446407994465589437414846082251253008090645399981880753330","5065607072298726315780053505986165770080608319398057719629241778838231757677"],["5764952724109856041241603881621960127213261553020174571856588525484368230677","21093901922931025612324562442044933566684747477906130631396024869162591821774"],["26659074157926791330641371538807615496290031504643875195660399133723286565726","20723941931894228166135526378962247007655348656687807618604931315701355295734"],["20190921766302691996595677539809468586589735157748806614388863508621423987290","21266790560290729128405990207929353327052161989390901489943043092382291723532"],["28220407858165418477607202707226771125813050842037963961878533752258100296390","10829927708477694445404948423002331702737776779909587876093457808403800915937"],["4777318093250126633545738996878291262422944794710408659771046401102413886494","11851294940445488083209565309513508045957026297238584085148607112512310521322"],["3687676344381599493200843453916158534336558648929389636810888475605103426701","295219718387080070574686625390675732138790723025149159845431685099610816396"],["25974018052779996412819071600496557667197696642346589222435557407341851226355","355466291132213676629932458276615414573093310633939304495643902038712209931"],["18425072504701018682249783346345397176092273165283817215184050087643757501243","15687050669410097100806348916764601329111396865855989474865503840608826763918"],["19988217330756984010515159707501426622681227189066842694229058204416230442194","13330406310040566675869489044933904939895203336381733339686865713227063571105"],["9899595602666527782601885880799562795813603967972014866141368580392454113564","26039925951491454167531089112054043197437258732445370973257074856484033369106"],["1713015042846684129842522655506656690341176204894849336163100130562620474221","24570744863911456604912852780046056657619198535660733513128626635402788420019"],["100344725276096353974990158015423993377112675026885048128817344777005124805","5218949309298573536979069418114530714474883489195158367450688241984466440786"],["12467323944898772973411492975417256029999710883855032851369799753387536134376","20542495275692586032931120964548403115577867917951159344790642858976587560698"],["18756443293449753441658791951160735684529022107514935083018169544445450450984","12222850712768783489308980431480584621702536998440608345757400377261667535189"],["10387664665930635119414352417489076746447464817791950810681449237661056078576","23266708953059196226471315483560341234952556511512830377019335511219748844637"],["28321008544356273155211647138444587311619037143679499602888135151397827041873","5541744439055791114518467404646449367461633482547896020235917794164038530528"],["7638807947402728812273326208639820521707651580169116788436087745464934601073","3908729325630382547671469566484896996257142648709111062600210507853075775148"],["14819432685905940942818531639251690463161434331545382683396292948066693366334","14169880375294236742149699919055720952083264228077193970735825040586570575606"],["19459192308106382923335586792559992685265884751330492537827198098791966466819","14072442237133993825175105728208971428566432072821653998992827339282601119177"],["14580084813608950581453017011690694003960823612238700835858730702149330716567","9381284596988577937425922578710497103527268770227910262010995718237464328832"],["15805947942297564848533080825832181359163199518210036023722700283588650201031","7454191958227885667240040694301959098141599756266120722035077993013077130875"],["17860571364504089675726182572236811304600724107958263520428665677241358112857","9773242720387938045849172840531314755476518476476920291142595341771394301677"],["27562738362955868953223526846954360076449545925782082584976315795703798172174","11716171686102225067511779961823193627153958053719584644285633658311276025368"],["3825009022727641281160512218424596588206090188509016052187051794046269295904","12195766275327081662993667826370093177642780547446059452776671108015587879733"],["996592982613009015653594080967381078197566081395792505998767213184368605167","18336064827745764947138169034744397306586137566642460097252802217673301468078"],["12079214971750375740528814764459710859333625710880447393068867161297112149479","21705338412514068435941540659579753822028245286981300666119173909946924124995"],["15965020883923961973615095934508553002527738270626792014323702177444725704491","11454439433223796536957804042641077186834762283556304799860288554039207806417"],["5738947875453583063848705508523461779830651520445486495554330218296893404832","2254869341479018290873362133393267229480681722148571038677857342235267302392"],["8686115145564745405824393060094805347250328828248345890012578234857580650504","22387542428728888780693743505421603865309087520614179325137667322182951922778"],["5270400043039390684263080242828972525923866245485911157813137400027101850426","1277876166621136731242061561911733919578297523590120818733023227154128757124"],["10274452841316869370033678744203454389192379604727041911393905299109217140681","14994238820008357603845559845270731106675219513001680750067065908024251861283"],["10637220564802812456336241062245335703107219040218803931849115417464071267749","20923764006129679487576501562274189272594317395167482097709637886775376382357"],["7460118635372616201922340572588880331407614424593841603558322112238641669748","12591548919283472814960762303025679378620359157593012072973650209047167515150"],["20048236732493561482159702179213501551804380535646703135159321426744317403416","18908595877511092241220152590270877750777030505948481238123045748719668876318"],["5732389929583538381104126644220842938601482720709682001517025946691754908841","17650464808112117596330824102474310384959751943585425582652304576379978281911"],["3173908726376438964467638739994257206543497537003362580786086202891271224101","22754299554014571199809752300924000490490718256121623199486093588983237746505"],["19925031983375297679951686050760414056490916817427713309839558923549570461118","15747923953070569168879910893536556642592055636251905957444982005093522370004"],["5420917852000279648038660449999835897352761307191463916530168350918173314879","11675288477844626228085617759805575033819345037147252212600986320156580779572"],["5487821560273258975447899719197261876883512831162774934952558650390633050395","5441228899104857173403907517943558200052266622735596310488784121692650442328"],["5063347891690848381216276693226054981899719813146161473703358449005085483448","2854827278914169361836050035354410647431003723557710427128293172159381719885"],["11897917796778926601774352381271384650262955077880602968311925941458539604978","4666685803618799574582830620131039765722314218771642885911700631350343055264"],["24095435824779524916223996982385043353215546913545941334860747066240487606473","10686054684783155366139677326947418878054008815271635218662524222427704521875"],["27904435079462666690778756241780927567021151488835317404837034703145077346252","7542385331173203020383836001572544484582463464328954783678579251895671748883"],["9899103756345810282680982507454437037577057362423618620704456136532409508753","13141571280483503801499862306781869703567656100151970957629358966692383892264"],["25194270093729598422265422990728217981108091127727242432370901092037667334100","2879499681997920656226180786404551707959721244181580822202397169527621653011"],["10049639890583271232143451543743342233946262195247962515854405873265959135001","21023569410909671506437011649958684353955184280090073246172520311203018861775"],["2482090686667544819171067434894829028155623164043224892096826052247950651243","1957458348207553226554952275125119379567632307252997617407038142945246721112"],["27148355622577147043454633829511391223934887507690746080934620776310514575530","3602564092614772430437401643175209341189607151351264460642523456795269673835"],["23055019306457647138983171805684979009209543343865366971234078622546546305729","6564610968365192467099168857850474389281340385725591827720553484280985418386"],["16924514262953238209700094483666507762022314527163576651505063604879384282976","18370583128101241144358668610610356469499170801166941767124653644935426305430"],["10154761546690158107092885459628011986989538105806846300645487194283429678269","22880797856778646103628706996083591131980374904734942847543051193745858770708"],["23754398115415533752428729516546805592331044149307325113067298463534072510043","11178578407370692799622604901667826041318233173849483170536708302799964178765"],["8348718849683727600727596980178149395776528929190279883615903217413656102141","9718115665476380870893283202443705960156095341466089961153186267460410502669"],["26279984737987278293035431791259477448025918494050583900373457994068121354611","1976038036551595792229892771883050356219162377335861137740028230007835658944"],["14364578444021715400193765955168293204111450424450084330717770373945106057493","5516573937105393769748241890049433150222809203322096187655891585255846560474"],["16190874276490677061229012620247533932397687872536667398267668409916060588192","10759801800119848574791442053382346791604740649781566600636492899177985348535"],["8913914893867483540712361690164053696755620703757348208794089172721649080174","14670663855403164475988286423833258632527815706110197665232971699980334728335"],["7266146569110692272230629843990993208976655163493235239222473402855407369164","25499603252174311134944033977328901933931489202897710488119493564575284033103"],["26557037048111239911366084321049176517388793541700800258523144466790893054903","26616467066944884038150346686920381059141318959290295154018747843556354581091"],["2824057990331281709629043140330339844181574362234005009025334298446491882659","15283296746048424624528073955458477322079892179626631314809412791347602083522"],["20267398066155152325960275043959314423331085021385000287888435268327982545704","13792975316217841431027229789740212430413952385903891464959987997775778511870"],["1277313061750228801914613757818117627052109425577930617510713586769680740652","26014933074012963549117795126971194815561915654569020402855791249678900125462"],["24243510344708338817128857762134802093152100090615291843138629122652375509851","28910717384018396057726941249003080343103526271527439994723010441320777003074"],["23652462573444095097455288939166411458803133749817413333983723151777885580137","1159276629680908722494693891153151431015478268809638669953111588845271695845"],["25333846729693324834429486781971849269752268410590613249063674362449866352809","13926069220698598391080618382029147925431600458094220433810042874594376484122"],["28069483266621555509614506618585479023792983053777867595900360472020558445838","25914847404858529153687104073906365050576030997531275807440438916686280565537"],["7873937705789561293786234151288001929213100119457977307174855625247819460832","21871013562266087109451092373456358453400715795044254089256178905057024162698"],["15471722938327402281683412405736245167026286642529374635696522852274049688632","9977714950054566338212190131759149824510440315905581818627900770373690609087"],["21446151017405395809660947996156730013466023696927460436772153961388404934384","4292561016935259938919099342703432100536126695671467955765697254660781639957"],["10795486472879775153402145317607400992795295033092612808878039326895520155810","22868272655101618627035570291567575827579396426494581859742706350436200815179"],["28177107874343283670794784205695663215811679162306188438039830798591834375592","4211586346191000735611972303463395169290663764510220114060102172001236550634"],["19324029274407475239463195968457867195134101446788949674487006623091160257456","12272753464015529643776393106575626407034558907634266712059221196069118693427"],["786532200468371082973174810223484591339646030738157493345181832491754493824","23328870789842986828086640789067750210368276071871177072982765601072841716125"],["5525364146965796033911868539473660702484672154506163663925138630971574491239","9681911680342035009877550464085245458669151755318864629894216286763988482767"],["9325638005785183041867182151659064751164225113670113838634085612358811546645","590496239568244857404102075827356771778453855656573806347722714166979129562"],["27802303402145197498339455895663934628644890486341310468510098095929773937146","1508726145240072780723066506672984468720069108827523184920248790302254936401"],["8292222145808365721408488273403196860840966291757115433276133700633153305059","12549894633155041379338339462112457079836060862764856786950687541231507190353"],["22295230402571442587492128418780151801036329862869931225208755932694323975487","18315379503579319689336584231285391706399812322131692800304370464933040291932"],["21054465502790548196498218359178278306457359922757405993120756779120153902255","16660676824810576396708725255516772926605540428601570633470378195695455086994"],["17756940172475680110440455452449543867478394421777323159808092321547650566429","23609817733030075947668413751535167900280969003528806635445996670136501574501"],["5146946965955675092334576859621768462727429785389934895605806819323916369419","24459430851825932900002518768474505673200010216820234160121106663489439725554"],["12061564735797933010867607302196333057225207301193898418128639545756144482580","10533990076641941909609361098324006950695337512610339304311547347572931596021"],["9180098253775897157038141180827631686042086616599964982305316959749874640859","22368304642517220042652450861622220719471586818441601094118249499079656020074"],["28027504819691376431486279055927543770856147952796856052804476305770183297682","7471384070225494043236424312646776226259058218928762089186914471091848038539"],["22981186599305147292633996272959376871072344036240343188657606679706671440613","14355218642041503363241575002603985505204913091601339791361110672328232228386"],["21531571115117135577683516569562646685206723655622966975214360455738412234590","26838012218370604837400579401006102694898640061433455075517203961162626111793"],["7267167938770118980511350125308043668435085240491795122313107644191933858563","17719538915226872962817008917418309623935332367779768445017357046207867809890"],["17752548535080102636906480419236843982632885101801885611589618236391436731067","14146068567320185046957639349716389975622713513966937923597573581644398373359"],["3389402159016302254815285668140443669438420422719762999304031818524022394980","19139489458373860572793241481462451858914039571334557527110919747270275053224"],["11699882820240854692928825887714507249225241223425322152169384057769906495061","21576583920314745774512528048775376914705780029339122922009393869342161994266"],["9002527606894571815750520373437711192488633206441473021743898059055605515134","13981410015560595034551256039746336526328701651164357259664563794748373533380"],["16348833078270447547574117505853364321180379794517018314434112114494782421375","20107161919770904525261907054061359200801842458660563371083833264473271143095"],["4711205179882042525941353570325421074748502547373941894222789717773239664187","20618742927510848919727678165862560224127270500321386061328687428108474309618"],["25361013463549472969536338820802485439957408783953694960409826187351124068084","6771650935480875719000130274581364024694410821378717631390486858509168156270"],["17333396886054147656815795508604679642154602578817542451168699122619287701611","10389366888489640126539914417144126537535440927904801026230898003375589928931"],["18653298659689043974479070886323614448866761477910522011435381980567886776905","23591776732788924405883909334440980728469952986184225084956854157450457654227"],["719927775045994738509154355196613544001720899270703186290496508933256325791","20249770298772892432268240594806059631568455755067530479843664036912558715211"],["6974730147948116324748840099382759724892298657254658033596005598763204709336","26638106910697641107176872224745127893661524256266311312397182913263322379649"],["14591036177227097766154389076686186312154833897614345925055572318249538836782","10712693935521723721571508958715305649191690683361155281488834840221883668545"],["10960478187675730357547530196878000636427381673448274759263811328956086527046","5162273005637514011613927761718317140837440055930213856548027287662781457140"],["27351294261459029015186135724895448844053781315031069393996615250830583755749","4761838894282524639712468598001004523288810705205485700389706445574324068865"],["11589399120595229614753149788287591700238291103312156760711523065906533531165","22321999455834388834086435458290068670870060648980467282113768131274159414338"],["21026809370406258642807142107627089190598447747330226913764803005224929122064","18319926578447086814124261343939755957206122161423825294240178002151611974335"],["21934703274913541539921420301803706855845558875522321356863587471656857637395","4145853941921467459230097364188466368181164663863200097255449536748354526760"],["26858024096046641882287810300101284311288701059475886180695764170973529954266","17366794244858282884881555948155695011930350207739185991444414558903783710580"],["7587342699237262599077610135431155574984854831357755018555999864826716737801","12672595531393254472640217969028613203076739193359854075576254673236405470487"],["7921841545321946268302535468421492131578396138977164320588379363673677566888","21143525858499471503720082877941475145214434707496861632889514590873151768214"],["13216357993135492946532078929895581613354089582772841216989527422795605190638","25479831261239874047377296492499321921401498040027933136442952383971291981103"],["26125971772021283029047280520543506498561377890535646740829775041755407733983","20457616332044205965594422448237664707273208061323067250276199292418343797921"],["24230865230686381940883242169167201597773535221359567634670483577278204889318","22883352745327805763993247036540204896337369303102798180338338312403704531043"],["15225689136333333412205734409981880502176319471716416139724994912309984918754","20270197049872873031681312349306510486914400356028068242125080719466556920413"],["27600405299682212551320908852409504532814413402157444530332415195975572744598","176723735469159978280468512401761477992446496427601674367192480362864302505"],["4408557385910355197627379071700748273172177829050776951969782483079120328154","10431575190016601287796190015667842823651474424141556041786845332135327271654"],["16985895014811729892295566869930674649480956698077003810896272997042907390344","12045078419195206647879764904853742071053949950470298415128356198045095636619"],["24386003801334750305209901017934920773462142728221867158199163448806110388818","11662802623740367521139461504406135560176185495096216076891277763061032427843"],["25751983887756551085665414108782080104056313585351780652795530088208659823924","21935820633759740990811847977920480599661787761188322637884801769293170662463"],["16261042950384238397157400363728683671912221054444331608641225804186893844656","964243074412530628105244867625403452680361214426672587796029812812685778992"],["24187156709312117151778453252278917344623540103788538751491809814452352184005","25666821294856185240501161416069024794077501864658415375799550683585099316667"],["7782646112286864464675929356771286523690283756998679144663204093278176251076","28429038049834577288243767619626953041458001294488648540972504207568356007549"],["7431846039840594185500317106108132617858367305777092560046065146013552126239","17771459588306895352202255918596025889502258356253424933602031776592237148053"],["6613211626484759892461279936838650551146959664573210510512747062015956170132","27563599003459416628238557292545036516203029251026060691504848887769320380064"],["512979781368794828538260904040305329037611118630714209390438998438101629382","17050034885040785186496330386711634338142613568211693683781110501942216396981"],["7484747119934132277246540318120803265009945918148204514374898147968402853849","14308891243179704473634309813169304926874134410517334179934176306500593104929"],["2582980756603781279824044535980449513575485866904501227729282690817952213695","22954985887588740709522769709012243832584220578152514538775034281979046202729"],["24284700782070202121136754374799649478380485026289762686797744758382868726189","24164666587503910204753237943276818580858838410248334124114738769960827206486"],["8803434551753998062568300044463579608593023250197319169003460983183063253479","17520114716518345539995481186936367865459652889129374233584129705757612256540"],["13764773871542914307646115521345789631713888902648903992426045695089613424765","18041150324211671077228906601468953085930557326888397933318321863838575268993"],["9333855054621830936949491930962544318481046617470397201332365912510291079946","16698757560602245300574932569916937328035504331471493136166397142337829386223"],["16289201335262727886350234690222201377955950575659301116571211158781436621868","28189973858395257136455399468974682611676801917650480094989160273212973526159"],["27483402537919119245302134908070005918326313514145451216273124702965545727627","476153703438356936621156980134013509951689970582043558144996165720137079218"],["21082107578284152905344799336678565983324339130574632160740116560840223852785","19660789015871900643583229107101188999841917232857161275362602516098278936055"],["2799283474087829736766167883434250987185062697304293692233952303676789313463","4200020155844116067386811909072634584245447071553809894019414121619930014648"],["792395359127115925624301405168096659690139930467543429551773502073456030471","10361002590992623278280540786631237253180133122716065918243211481816759692470"],["23492092209893721805476159797417699218862120682127409387716112712862558794317","2965956007699634570484178784799795809916163471660341748930350960542766105842"],["19373689451468786012402797480242444481010021120613281526242643396056540633752","28921969397525832903623429819258543236923681709353718951705552102866350461610"],["12948658848941502036419410302250314639208078562709778157667166518920762075509","19173384490299555225725270739758734162876092858943139930585270841300594832734"],["19892599254567850593107583616106164559804708519988440272901227212526881049204","24091891298534689737137399558862128670967122854996775330750905545839272625134"],["8523011107808480650637220979139313515189658382765623111806121458216599386588","27865552312638591296069798173765379625916775504861166480400234172156372250117"],["18023868190809689736959619604798736907382303627399816030256371304022660019128","7479765583948832431779194181416137726395531193904273658844789429366914066816"],["25391565919678694144659025647608989238028409712688006856071666087149628690461","19093735537551532287126004508747279420422367933071414345220126116030713382885"],["26665123422923445769940712701098451362692807943561506377310551974002219871786","13765940221665593606979764319468101799182425561345658466529924949019960097130"],["6594534646249727517561692491002155198532396237566483862503351431560627657972","16390619236281211475448004169340493634461465615925845219787264040608919392116"],["5804183949254053654254914596058260007477221982645260207224589982521833230218","2935139832210711538702679705538290243585308180528785304170536349195783198748"],["22279737363044259594767813893012942033504831851371252397849789284051816074212","13821834904080954743798189584836621821389362670263538218037446729770889101400"],["17755500039055118092595545998828615723597709479126973051210763979324933475398","27720560332062235881361157866893078560931122332764689036297661763711456776274"],["25294137440849922302579377407992916611106565308772020772664851804598298342625","14953097552597629878761745758670082905643869929650906062676270300268909734073"],["8261202557643076783929855370003735463038414171818859171026295037787742827965","9711315940875203114706911974294656031126572480938112429245542341175751833345"],["6264637827707887483158857008576948790129260277537633016481452665179528656586","18201037239819679820938508818770491270460871393156350183467163405549899920599"],["6942424033312595758617060729395103239888997754689759085182595326750130500977","23415938318024815091525036153985737635982361954013346189394306546438963841457"],["17795053992160309518254382351632005775009052490360090124798755279930438178247","5251558601100521133697754971760804815218744335270541867143400984667804384160"],["5261065983301381643397711844571410278694541737572525973395756411452505853156","24431220861555668599203753989966333839445168960486238458255752017417383795955"],["2606683846518884919555054035194111174011783129727140937521798409699577994590","8935009587687424179993546571390223380756950336418293883869738790962041705487"],["25357803996366407830521852525638352619186609162964176143783512852550371827206","5802192362571045891386761317656235489575665832761399022210693511841782092564"],["27076722924445291201875584021221929400724130095798880551087069133952424518601","5781897454214849065660317337299809726965304289609471862181338362836218144745"],["8148807240546529508008912534470639506520956975137601219229408382124469359074","22121256944362301374927715578790678441026440569428424108124722724885347553450"],["21291155787374112971478984635886453779808909903360268731359774459242280031803","202239437861808692657634289180348422175960146917325964610364064837066846759"],["6182394301603063855865836650382587741380208782237256600747091459568642245349","4094886875972369355359830290379254127996989635376819071841345523881094171360"],["3509892879230798022336343201370389796707966584583818309551731024770933734308","3021213355487234984358929295335050181353197508002801270310553822768686468723"],["2024209516993841340285306904502713659621267728442543575841681439438261816134","17816704940356462931355877939820612918502812924619740903340265694150556757302"],["23322181401831337789175117410956237141512336274186741566875558671328668312454","3122362727198090930563341035457551828188955875293177509583128290084784347785"],["8764725334305256936389523145539342539827444745467021940488043807907383265524","12332083266375480114087493085994460141842276849230753613656515372258250973591"],["7483249513835435450440078225950879323146970839829728412802401001826881206126","14109280982136311212158880969080959152767446951992657060897292730523744513848"],["12563293580690821882443580373447887407845013727488100839863458400409055290256","17384115461666145203398992065674967183770891592660904020752231606925455663680"],["21490513653726528374258488556233035756704892725439188989655063953546336280559","26223200030039156667963510314829870011068758680087441689688292481612057090592"],["11096894849408758399524199620727053658558034213922570714018880171871163103460","25909532167060117111142122148827081704626252662297618644909346271164973440378"],["23120341258541060935202855600556687029103987658602757904845577691097335038454","14085400280879895764713093098526064506719952021199054605236824221683234184437"],["7658694451686452550416072613431410491388175662303051706299450813787259847609","2352433986279082934226994247419997381005634192449067896564817474254304078919"],["25269171218026072961187205895058400064002177848339618936540457183465973485597","27707416397424849470030738458519428165737815904024349848304708248398591654205"],["22540030595332823704431940413571047672389315716791636036604099760713381124587","987317982032190694056038717718336678488145405775397062179390879167230106030"],["23023731015865095013077493373357898626035508380753911432365041641001346136415","21114476016688464705825659337533675002519248910701551755883053226240654684586"],["3457491619654178194396523090748445914839919915133446687622775801941878559212","11006941938274088951419782378994687706677280543020309888323632728662921234840"],["14353144454986518174351183041739030786873623483163980462372065874307150186553","23008992967609288098658903560190377867066985880030270599139254547295819944734"],["2660905765237232347239369587225495981795442604400891827837101775520150555413","2976879078189656696271180808182819818872930632394829520868774843797279255026"],["4328046229749250532624008404714529623405616069724736278287812152666426824297","7480726764583283652306686019285353208212706879281264385173592546969464565532"],["7032622248725916261838504805694052197445223650149711359597135663140065753342","10828063161780217698956892038812810621881817639875758033121043573758165405401"],["4989686968785548998705786260695509019968774149310125626790690928032998535084","23717922184617038599587113535661046523697438370204248618058894140547569665846"],["24623994977566778410784045573196009583966166551302868762028020670573462620596","11919949203512442146981097417874724380363344914267094561609345620585626426453"],["17605109039775941549740696379565576160321995129977243422147665615560431317922","25756672754074345953471982443822625920680943335262816118882728465819535121660"],["7713666991615504058864627434603740415333794673647204726656520187628451496234","9784392654797630163240845127176563680429521835345512221520002170975149391182"],["7545962887068071317907853119256519552337043178159231737317889579134004612555","7472283488112815282165748423971530854916034262789452112196418750869815992063"],["7738680308676113616500559238587013694922244171215065541297066566346131202675","24896425290486075605223736651853380232907975632166138408470362024045482539552"],["26868769805987932493486391662622186807459088460956819793051382631560829330547","4966574076211572975921177877433230056935437280940621117913584812647021609333"],["4717008467321618848054458190576936316191724472728657742163856450714431188832","25835481096328794131752211915927040750182705699865199768730476954788539767952"],["5737348003789386023270073899950806889274773256982539530942071010096031385864","23724094355085835724483962140019051151507861905032448926069440090376776851840"],["25373996418447163338362722991848018036054464411208418417475296440229637889601","18940610490245902750041480822926729775483915525020963190451272439229612158887"],["28593072253358320621120005502083588695909101296397448217781564399982049967473","19125100336913576918495424836665706153564269351649425805866022571356957827433"],["17982211158316253589999745078921306733681999201349630981096964498990149600231","17218194865041637340544730288396857257182445446297059574673715770568176597586"],["20645268422868527198913464620939753220133234114721833371378588935103110662063","26999963671019830287831953918715031947553531054394452738572252873881953959728"],["23999414117759316058237154517053955556241135624630892133300096489682856976059","26308240492725121561155408409573215672008302994118852077822243741764131835965"],["277668719372011652775673552181232915745759531842418428896186755678852673302","27166088312164201796046589769959119587181198553119863503196139067434528421780"],["4223999349114791173504716538329048074667997188029063960116394057980840458579","1802735277167415985790736375986496045853913558110913430193873073800416547168"],["17418522017622049466746440653936927091096199069107905815748684213547942865803","3529422592193909396833951210958080001298617285190405868981242785390206574823"],["16688346455466559993129357952326289244669128954699590381561244809337726428589","5536416073887153134019480565920347649569257099131605730978659496011689588442"],["28628190645042804802358912449852134055907694230822377844822160580121015384145","4795727805071839314212616924781685806873159158162182169004350770112258821952"],["27378197225336276195360652888928781879148185706295040142417176198824872511796","915840298694816415361377909213140935540210547744809310196820106355035333907"],["15995654857542956122967784658231064493847845818006625467386539397835685203044","19569302944462040971691257701048265193806284288212501721878309070307804754749"],["21907441930598244252129837127937911580410604350026613322316731527374696070695","17866072192678669640231362269570061096830121947198656517451602436256304885610"],["18288447970061695213798857578730727769441557868023350341695174792485963974287","21206635705814007807563709094741061764979069221603433471293912409618705423369"],["15377351777830035530239639038028920747700365546964756338294208496423103027025","25535209272559192113986294925387182663331716126525340063686795046915215730356"],["27617847474321068572434948329999009558960854149890982418066125532548278170807","12383592274999210211256413945428772970751089852299946183356897348619217654057"],["27221031110142973611094821546602682775244933057764324129289096378897018796483","8570482533710254674821853152819622681726517329609731931474236342767888842184"],["8849666759036528326985882542385202461046064026225826472864540015975946915629","18825489164751433998571063311652505726848281182222624999977720489034521287596"],["6102566103997281487540493941751964006868096567406868008680620514141412592304","14285922865673417667449555673432245942011587127636479444539320544824701023036"],["940926790668894851927157655668176558924727054661625522832114956917306720955","22744115212843506896591766811238723846962916136377012405714932757591431536840"],["4489216528165658010426992221657031711405233706197033564970379705193498376359","16633561719337467778735707752751294578328075712604748470893250443211763447458"],["1458832604761477542216417402011499706541200322764122997718305812211073334568","8482617069051892292246054814627188215433421688468108334576281898398671363497"],["7706451579734771762270589004030169696019880569097193800054515075994804282231","27409899753203600463701992399494898099182391928661159086497132228925667863915"],["26967471518766670808888518416819751151090581850065592168253832814747135855061","15317445379029944876902653626136683021405532458274512783148066010066619260602"],["12009221428468328559308629932856534585294894406086713716294308055693205358654","190173647427632851144007694886602606363297617149003867415272400433253651721"],["16924720841184788186174446935074447456519976786289052313137624684932958363153","10797934329317209366244163562517961226973876290347690534626972428023619481332"],["20228086385989573066499227617903199705124035379280929223387448597233047317126","10734670172224571169989789287352837430012252508809658080036123053626790540177"],["17885186040189435092295775606602877143121870546829144208497012872590451449654","26898235514017003029194364963135424504971648056949344794472146109392373783420"],["19677647628802702969663859039131377468150152920574849824886071823815482454070","23200167392759343836181768770756304196000352694089421269860327633151180602727"],["27700174124153600247360816329473745584493006546652807482864115364363852386416","5242236302931739068905328225710646401120929273004941320769991618621810974300"],["9660968236795307950506160874783703094533635716154085674739351066517997070456","21425833055280522302378813470989909153229044631287173190152547021614295937213"],["6048208386623660427537569344665664625274682949654421217082645759840920245077","11612641555906730601884768525465252723348937656255997872046794065925156981658"],["12951064159666237157438254221936020295510076133101357496232160429271594537837","26887080625081102177505940196350663981398020471164174041502622012871861519525"],["9680732034361201289403289015886374219935282539425651444139008917412208281879","19938876313736773389406797666900914100385654395667930399369952175188527643794"],["9330641893749472480968474219928706302444558533559703961167562868492199819767","1913899828539702473869979191435910926614895196970168147495480740751051603314"],["19085478919764806655585736372555052175574359280352614728248849420334630850029","17961393206503945679806927300322185015003213271730516135725895139194809732512"],["24958680497922832427318528591199208774686532590917840858298171243776820646129","13527858310085977192429260372879795667309508784561130511816633337824201530644"],["3672808455980532863080702776962151825109345773969506864886653727569809195756","17249422162440216477103245329224868453631818788516321520139755044441112119130"],["15690136653446086414721296182754622826467100231101577233680233789571475184550","20931606648050782860615497294747502572970097485412749152088947762293189524303"],["4729820290792671198828208983922808803279350147581992474969366478811187511679","8286112217557212425306050680284233900377957805296140628720711454376425003958"],["621767976640756296479944748909757432345863941381368861788887894159917883396","20719966366849345335199427591177174311426217313879068422338082347757550540163"],["4322456489459270039309281174861366183777012824765735107241381433247844775401","19646496523145443134773688393585258730502347107080780850141791361696009047273"],["19038069276093740938929601259722997072495281900623903985085124547363198082661","17062331818203671220004501841703255067549275602709958902048664086606461762573"],["27518060793894261286114927349404462132876715242103916115423395875808258307372","26832544815567803511572807648657731557556658622297663863603248135498648168665"],["10161966895437853515785506440485247512257475770374377444094754176197123489637","24260491104650222138516093109085354089721217434398474122561502213022453591615"],["3982821028249098402657995595091927277261082954856241431559483805832282601154","15390213066036657591683714222733638462288758587014925887503518815795372739778"],["26445553829973583782249632609653201863178118277892218376311678874377500304919","9032128323138885818635107717273787383196208178812546094984030407016994921604"],["18978253539261813049049764798397633209884988699863760831778054867157378694844","16382452679253197971175268503420565708175206715058146692302410723712135550695"],["14085094599187723756615843856126527868546060531982788742511233856668042273957","6128102055013806472283395086767486184058061637208893365904796128839540477976"],["26279017379615179877138953124230164307906572947655969381048736039640003513399","21270252861724605328842323042252439251995530301138365092648055876409440146404"],["25042276951557928967183799153377892258750140488236904904766972970282148188494","7573142604746047075208829528749106649907975498647504418738859346690244617915"],["15944799689317344763811113802603876960694999094633871009465783081303168577896","15606928285050181096740408977089665182868598561337562735208872824938672741233"],["6804267982010524850917499953205307318894438917158613631323930526119257580276","942318960725587998796622192646544163499855950992363032261543044011916841236"],["23929087672991807975488411153995230266771803455620175373302862712714491998976","14977757634552006688940957885232385680165157622259799229249319220271992656848"],["3193814182126947279769187098691360668152146495714435761024822290028504908550","8956523411062304175210858250816119824066602988354577911639762873621616423803"],["991712978596462011479165266061453528759321191516621421776947092376572066487","3427501819893583293980410225903507344786375161266896521684293195224014889506"],["18436117207107491015542659324314875444385074463674074026701952401749821906624","27598540154958553366311806641364710474765792946239111758935522339642887011568"],["28475934610378436492809209108082319230181730002210431591181086132731491940937","19911724338072855974585103253623396025519274950114774165911568802332261306514"],["26356973925913298473122879344878932965760260055188781568407800830147100968841","8770303607265220813399945787639017661982942546157666633042849588343680991181"],["12734592640229573576367475419497031093121815893429944581677932439204057097787","22910167848198596165246626116228753019960375479302123449519058459486478640867"],["24719684144479253887429239525263935344467194209412714236699827503564571566986","285723844178266062560458525895949637902632133245277188210061811314883627629"],["16146191494065125918385041490138915125274194427116168397508822696983991163206","27115532218353314310948761900205690573192962520995612140812758290819974821175"],["23669567705084805599060925956279282494187696219318238301823015851690763369693","15543245187606926372986184917792038107531102707472442513548984729899922477675"],["11438321861127677780415668464843049267859776982667044041777736764743771438406","24548652812262644488708463940957489152505359066949656281141245612493822482374"],["8334193754140830234785230651542851282086598748947607333564671036428928246897","28593666189048749018304325445490563598696371931467467591526287682627399121217"],["8685904309851108711325293607695336108870071780708372453283772672399889093324","23314438652001443969570146403425511219626418016867185332412072906499243755457"],["7064189609388810278024717018601866872582375597906747598350438460441005808920","8405205615008201028264383789416713546533271464883048729668082844584260141937"],["10545182406423975283175590422240316807493768985675485169672683718401873631469","28104636446397097355737544558945576936118374880106566219451023663774863408093"],["2419228684422597849666401881186864480099946350689831215665184025792365421352","28381364285410652784112522988280299981396587205850537848841545976419103646323"],["9928564531351299804559801960909037904372003803348071546924318901009469873219","716655264627774417512594068739201762646213062783407745305643951535191236746"],["17989064651153443911012752700569444739895344947926296138200883196663189681614","6892523669994415164221909528685671991248926828973174347681435011516741787399"],["22558188218173170088556687860811996941184307016660352680807114245756712373079","6508322276659819330444070703858340960812000560475899751647955217959134068804"],["14470877344054380010600811152214748849261041837485487148079683750540074424130","13003601893394231328277274671847446739923565210501395176385991045252474158252"],["28798112590935614951257125579847505978601818294294692219681776058495631500535","646724846199595077431447830774572713434596378207838466867648773274565359102"],["15699413529538949357912210417507031175725627953459667150167942110928546870033","18096409358630500961194290763741855038625963338744459852438647715772316960929"],["26558723929540502866982050819685491170046463365421421580717977815594406924359","12963023835197173608241814686795022240878472315424227436554596146815737625977"],["10781139289110154604147676074226457424449638771858807091516083674826248686927","17511212651728375764915467277310905150625909947671636131568722379758483016694"],["21188078879485357620517029925399373211593530393342368132239827593962682588085","11316755279350339653756026577366835243622862902567077007279246465860523773590"],["404644279893557642033597469252113774882451040015255846881216757665644292273","3668103920661249850063370147311362351037829847400429500031623723980953676417"],["16499015927871384483216667069051701443883786810969265830028754574986450800816","19467119980600372416126646297128413927190365273864342245855094830867786299699"],["24536327090906647844553242453538696554574595154773708138771107472809652934465","716789925238771908717725350363157202201204562195819046395921783336945428130"],["6659608194570486422845455028297251416679769900455503329843357221993284451069","24366856323039069690090880815036247824528105180479064208681895562648281499781"],["27475498960306403625262471568062526064640402926197869406613500714212726771119","26050598370000904343972925083566608953157003636593669253164601955318294016134"],["18947830359723241785259235121450452882098703672151079233470194145809238116950","15782064981937314129844278865135781620321227108375884547888662693374519163767"],["13450187354874303699769309224167055028312118403564129477059745289585074414395","6955809917635535078309927732313413833064789755038831524638607391460163507981"],["28029636106396546460509443434011453096455441596334049372259844390567428931208","27364769680609265916213006149620736258934336138619532914839698236289990629679"],["10756660410525920548143340880993265515806800003427664935616134434892755321042","16702720825764912457797662928815244778059586470893446590063810207081506079102"],["22595270268617852696005258207966898178299619228853142060582679794330417038010","15039706584756998847554949038658473430631006562803076486982249315267885577122"],["13599400131507361728400133720220862491310861275421775966765721661147451265698","16092158417673763815802111812128356305368141289137637227256320629506373564985"],["28029719286843510411555954918661006501096872434002126433158561641737349645121","10906908292341762625291384463725739959511809098618326992457280753797254138522"],["15583584686965479753219934848574194800729851336605089131757130083555334747314","15981293425908113649774077372271548510069144482534519166651994740619181841447"],["15711086771046282120269841978106438751087206695832064617560177264987365226647","9976404339564436492302366961131356381456982285816061715182961646413465207583"],["663936762148085754435504632399776583975288605995874767415454767279505411492","10619571672544323689775605460724899693390186294380923542335485265286377929729"],["16704456671957231063865137706220599159648983336721050934390499288493385435701","24819921709133287789647988902807320685082122940842862459161312867593426724869"],["15627453301910313471175003640987905792683639834807039004553772477867189454343","9312924971199836710538852222622756373994144620610941371334239915562826308257"],["10725747429087697024010720656746489445183380692478733126997844601328068107290","23014096218681637128521279152778360657424632614131523909306665231644391440870"],["10278084823612773172437491917385766261718627316441621082780890097710866684320","5950956589952046651921197169887577767897402056280377497718892350609952230431"],["28192546708390895736461130966727975427038611340930012758563685651676678516025","3197168217255479865914274742943678564198063165561304311959085893424592706531"],["23012407485474613144130857503788872587910025386217712772689157897552639462697","18544735985191607790652905746951197980183767753994511190973712364046267141405"],["16719525499076913345771661140403806941921060011934988383339422128712901062838","115664444531878447021563223252812516321432992867747716571896710640732048651"],["22182569418539286556328090360993274384771849673102503658278881557610081079879","12952263880256092166084922241648950040125903842484781593898779460369057067082"],["16690180658635506711495932801032702503427822629380252879805619360508178396690","2647497596316052922356878612676817248292602555842523417699529846114691615463"],["12341952906990073544628698784648414946600558026629997703194981082135482808537","4982810336389039163324912256360383594134703026586125165699262713114583191931"],["14454942898128642271205895690957833861959439568827817275431792662043004127984","23636291024673389149831763572507929065003001709982426650392855684630025730185"],["848544523805145171481820779099913250596228587867229478879570948242967784424","16892596452086788177389793704508493812577616697895023755071154072570937617125"],["24957721507160179427288325168473734530640577367354991611825632654815521882077","8908387165392348850233771393711228076367798967183719828658960163351861958308"],["22908745532532405143205529139054938752845912020754433364383422546699860274220","24634373931134716301063825719758600137109985450541811386599532651334876429957"],["23672470074519696470891388788684352922351844282253542144853936589456174753687","16620610461018914944335463229135548990412312591595107862377861261699057355350"],["1073032752760634327008588520444704709699774975560689604158618955894422630503","4026407505842620949687572101748150907404424105976716989191074568747668872881"],["10999710414155033561783013731991172066159623124988769936908901344260932476060","16123104815475997809626849599308418325242800142373026969281181664577162947652"],["6356436896911643006331969295157363937538266427652324972706896023050121227831","23876030299343533786981490237758976842723044675425302967973293592306916085532"],["2363002455385915636722935371020244471447808689986108850974410361280290002934","15057509262838981518732977314697073044945884653397173860303531553967394895739"],["18065976167549327135992216613617906652702982957890657582576728030242384185364","10735729354244604615362302845625326563632426761334203176578698380522235731865"],["27012231277348951589010599028043062974326407657487999904656120984810639302395","11574565767453691067045252733581039545898121969890969207599636434900493685025"],["14455967363496336647627137683573335838340069594682666628189186143411094015465","27683810528067352221158994364506435499897237026574230103510570729358168037118"],["19823214745845905607852500366307107801748744167784598766850201201753963556353","2177347016676401611166865816037818788785204074730493279801756837085488690471"],["10727317008272675838727480039603395141578867670017718734403844355097380474783","21581963590687164453254431517386002589687528117636694156475141349719433413697"],["14913857631149746746237796453834922314549652651211904200315734628238241746363","11861598441528877436267719345179653594801480047662558215898830480350904507002"],["15221504774900871500813798837118198982226727542219672972225650626836737923770","744404995788349018611671359607347868810874463123266725406323301578019150883"],["11564707266495748901840034453999676260487446968561386709142809633118294316235","18721077143590763449394295808425667767459123012104325513944862179451808934300"],["22080542538615623142695246584230029637132798604915024780800465620153890785971","12081916979610871612013239229757847213901036609229265879446265305643795049577"],["12321383120022771755877356865234871316899135940506419262510223667906674894472","3827818511633438224932740056844853590323791150262347078089320191491547316000"],["11243798187333419081616146422255113669037146245700295333822853828852701650919","22168530562029241289641319219287719862783958887306850000376123047746846814522"],["4177988699877608666515900839881401630324592366519832527748755020197700745563","877653851593378339781355070706373366285316520898917329581416683893135057545"],["10496472283902862368719538233105326628771627824801637611815421244677683914330","26145063793315255373798708562813722502450607443372876420522630872203737768971"],["28201825965790086533599292248808550452419684961302189842711592948077030981810","3688872840760834299965521354090316683188555030542208119369461242837923693687"],["15023535855543849049552294985738772924377885631713779949525214190004561416435","21907746767894205616256123418282827936444202513608500342481561336047325058115"],["2217322504859298150930473059247444043422550131528119552308574840180230635858","1183538411948083230890859307265622219952422138173961314492593515305090190017"],["22071270516335891018493958993484882020792330502526661996622714915767131437846","5428711768574951591368004074951623033922068026366377066416633450624009854999"],["13419404234546106248625224326965350837877619780044727966241469302246455968651","7809706119152508687741878322769858759420732257568962040730989201800032489486"],["8762882391482949767226957496973600068199457576677855193911394484202597996216","23913029261436809887038584264944732855129626913951360529113278638735706202127"],["17580368906956744843549278998901350553335728571828911214414463486164067769035","11222033460817500478262710051434415199507153221441121959737040703471105232786"],["28496617143306860594443355318681932324989856802461057681624747397738588095359","14310494335562386543586872770173274675352836785665535951390630591001401055537"],["19503942429021076141060452256378882373090136351339178521265012478167885043786","2382440888716104935099257796495496607447960462777676937996422901420685418190"],["3719253349085899412120359437857435262935046275366840079685298368110171573838","13626418183496620656965328038532222561587167458861381069080571061683656972064"],["12754196447461250013716617365428791565093175302195021888998257429080727010726","7891489864616685379777086219217954665116288818749710466242846271370592589050"],["13524320306189528337803279596717054759684487538115944104597150891977727904400","20488765821969914990283288254662383739215198621389644605074702474615011541064"],["12583751370900081944591733259945805767470813685410755411051322744722018009355","26516503965404765948537158400648477126996855157317824872259219949349545992342"],["14473493213087964430327579959590251200900635218172314876308903313777663044798","10938975007995487785527773737876008142936705942634738136541674278552954713928"],["18109701589131154132258775462302473767511340854639162853890733242579902543102","6019427708010189643264626971413631747126823418447496353797241041158758700855"],["20007840492370595690965846152551861704976941073367307603082618975599549963706","17710482739421499145317698951789111854336120347398455234391566314385117453927"],["23749630255361096104739735447797905476878499320679686397019987109211001069669","4951874012475557715215830383302916359594677569585931632289007221677455083090"],["17019140886981444538135673750870792412827886422450493793819655826859739033238","8430898592723692498872868502228985315901044847330742296087594705377762187055"],["7322898829570122009281560602626136960616555946316189763202884061121111838458","14258823183306524308049827870184307951004318596601223336697865692803591002667"],["18005494688147532636299336775030028737513655288477142074784207042986991832863","7269508943056628976866038837386640453930330216328143695947598152923470073870"],["26379761367130584024048085296851087691456055230835401776955612227536951575091","25625208470064499621379207227903202415369491133376801790300132148518989854683"],["1615164363241781515125168106968433729443189624323479155602519899795911221825","7189709312854107992753383857212565375435732853539616470554434526116938780947"],["26808221984597560257846202879099863747991243134127562372029615919992516993976","16608298646930068304809941652795782783354474445370239505807896506301705457512"],["7162898510211308954964407335477255670654763788143957973450201878612739623569","20922812505964309843806907045853721389965415535438067728788675908075714327678"],["23746875286534603254119969875794166178869674453184581115745912692753410157018","20282609994803406916591587879605291626646211852465516562282757474620037017853"],["21568728744831463201462428044251337441627610676658538465580016008505788971483","13979805958623136789525908340341300654478901893997583463318134017393650189082"],["3381165862639041620094289005486604138058370993344693114249025639868806465479","27098533228742008124628374800028469668454940921141799061524110866834493004066"],["768914073798620602370244404882258338004240481634285753434531591029904898531","24954893150011953006410191493102086925686447598123124980223531023770563902310"],["22717061898891761143319463841390334815489947278458735271596830587444899070831","2040852684499385937167573957154653683603653056556417873798745307627685835818"],["28283061532101437888745277837581575665648182840799755305057919725609918451587","5800174706019054027036118278499137368824599482043915676092557963466989532143"],["23652334904701294542804987906767836762102045915851112259657598726718241025910","24491490412792274087623245178562055010354304615551730550947844163557361213733"],["23154169698126052840395890859703211733693251782134698464167449494808826637069","23902133144699797493450371253955752296547261145094162735184450818274161348776"],["19900847938041859448622193706203170469683471336334573226476799192725842500219","21373631539757286902533521827525090217935998738954844747893282318598282048407"],["22114801292760913191771889103240192549534806411165013483679010178910937406450","19421460298231328871547169886746560434207466067512538213317703656155070531928"],["2244835161955249813002842897887300815897829871540831331070237216344471255590","16061799151352722889371941817597490771982933710193085739902967128091150768732"],["18930941137641021723252729419093055264628834251579845939825801562192321511059","21861760222352280792645461321986246521859587380525268535422116854946562593517"],["28584028213715283392318608153615172146388249105218301440308970142121714840282","10353352124349585803788755281765819757289637533603128543464317587038939738157"],["24987214192623899160484971767394934185030085894834499149069172623312399495935","26743253041697821816468570826145184088069663303572886068244768357640536522119"],["17924949846801843264934005175501706168189045809118944786586864835860597801690","28809124414587832882437790778827639936630291928572932970390291873285709093576"],["10804017694363586329792504696026655434650650230021109018148656645679836745223","9427587968996813678173472055162467943668829972076788776817509172672292782602"],["8565942270249610270032767660581700161919280395962673423654657349576199378680","8268759335983235483630580689877931327611739421522583337770297492356489623226"],["28028049286299177733900128025166091053678902274366996796478994691329962343755","2231701933573969557680332751811204076570700579484394610906300824246858325946"],["27350672956633669319905064809895683356476069083753090241280919137320556519009","3900693077263235894485940754515576570961119530105863329074010723531833287590"],["12781162443108000404273219721120026355212696123020298419596143099936393242311","15690837543715350350468254666677783342810529058469353927984252123872079892965"],["667596142524425738501924801240017362790439657442441930588916873686671831726","25026955974115569094082943035570000521727838613334918015133076224953399049594"],["21850234451674995331741298239657555913735632523625624347062633527372846997762","19137253623251139070879900896585508616974813621007619257111063000016540781435"],["22054608754252189979338053241586488056056208467632289947159581300051331355299","8109966660192635665071753570289227714471411438632647023615285215158528493487"],["4611804669161518281026643301201544167516634474088999311319290296167228913327","21719691209274623571532092807952782779620172140854410927632804680434053440407"],["19142566331247821263165430916110136735660972709659333954843511662766713184711","11915518029541278389165504620438816938135143142756193175311641917907839358947"],["3149789600685284093888434171124888256136882423254918844817267575544172136642","17135886066990617587896122564139920926992597974590842010589057357453513729808"],["20719189776617619800853491035153434313800511673527406200203999323060045927327","7232628693145906616681716600150296351448706968714172178241425423732464552268"],["2204099896447354115721572926493432928579038238139993717848448525022574232585","18953686368986327975934146934784080183905657755644339626354376914868834185887"],["4774016024932930067943342042498059250768726001872542261159427481046890327224","11704195152221505206109201636890368302908276446542490261684721114145871938707"],["26238630368392347310787706843084576131912668994040841772396250605915616569012","21667723023411300244247744178532027418678533134805445306092707716951445120281"],["6735523295217037148927780354927883867684966004652905212381592890986264773898","5115103854343363418992317160715654726017341678773806030629121351966444470132"],["23110524805408265528482708572085186047416456062151855321528172926113520549051","9532390218465785052361273112695173049835553113479384999549296273255081676344"],["22214566319019907268561004464196784347770241097366970776155434471417660455955","5065659235941178068290817106642762443249985659877888282906554442609962580829"],["19558315619974619794718936522285688725610378821140402117526068761010487619601","17786796484076448664903004349091760452455334287934707435321477691437574422148"],["26170233211333471480086422455273192174762568248691447840615575464202656851768","22060338249860083870532062106167217127067181349116741303604168208497997957663"],["24569021273695443674053436236300148624304970519619219162397599613654415962524","2965717818284538227042236333736922800580476975501743977067528127042202691777"],["16641485945368340234770693303701040628387294046542210319875991469719692273330","15433827184770510704001393148316443120666162329764962659915856713465733383294"],["1643266688208014100433867117238504217464226060587479181459295943759684987729","25722942806957615012907143758547115820059528754316246554911012823454966606739"],["22195368010748648364030784246854879416495354378534211053274113980902477037831","12079570540751777268635315590023300833365663362222423212060784578217285231830"],["24421637507411938315660442080624719479037735659756706355243170018706078599773","5469895539881292552184296460303431012276597711799257469482956335279593769598"],["19472641442939525559463612722975948914310143357735586301017546623462000389153","24615565160350271509338862876273071816014912483554841249861848854058323036462"],["24600782372081759160573628079183978369475054224000488044094095087949911445684","26607759690492644857242575024547083774041845849396046526904951844153158804346"],["18071305671392724246811733875704949611170960859059164068335535461499177138217","27808968277337191028734009290231142975916124386193414827233629172765955545382"],["12740771506598994771891541468589920675780028729392991648894716917879505780121","9918572929786952156886704304354422143805820560331582066111931231844066445997"],["26457615708970977227931715212518129889569095560793212929617945718481486499940","26931671905507650770468510995629695570347314680748441400270064745664549994351"],["25742199839428452831905940046343395487734841652058719054277350160572523549301","21180584313320231490911935816147054920842215823784668188385768416083795747098"],["15719771667997580413343483760836164363919617071215957942273162719434684544216","18057411333726077368642275346053364421111255644925384476932756698501426054690"],["283328501477993072861841926171211345736965155437541064669797699796142630691","25125807739925670717893095869987801909326345101353922269530296837819509135411"],["1303961558125470645295281741709067926958343275901709253989964718195834559364","11642278636541440705789679144604517151839287609053966988698809001786496741218"],["15972309391452380015402934572828090656871877791046137350794020756946163649726","13601368381704921444123194857681670189138779075049909184860888075766036850179"],["718044053576583551863524084167524971658409126514183996687302656618362501368","24900597607337865126705151040571016202796114421940526282667319603795152598956"],["16061123292730176404868248759899768259522806857761665138758903374968982710732","27226307091410478923143757526023483644523787111288685140302240938386672953"],["7579035275960309895730886915387691041541475365766575665675146687498703062221","10307277578826449087317161024813384213322461941257466813409467248510778569219"],["28945849939107240159443980639651289632125917960133667939417916825784637491034","21093963604191411525210801507510519054188557810398069813270051106085655151328"],["2440576901275812544730468625548663019645988859866502435582191785558134402982","26062463001870157576143353082586174599364818715175822732302687991481813681480"],["21126373045509697267842368102686249710020130246200653268015603456284448026681","13655515917405672109219391867543122802236366923406039367593426250747075552578"],["17049253427512147493788088007856025116854011111147163325011604445500193341369","6137866852815797325792243956510768866986701085472946583929144140458115678601"],["22664509692988957243152477210003435236343343124162321736396817022864401815699","9214832876265787650448728584049180513878206601837053053574152761584477598035"],["16263626600426613429804429596826119024526274894928658764840903139577077700546","10208770555336340747040146263242095896432105741085903426148665518052607686912"],["19134192861879844479650905888034753639967919002286391157391895756264020936440","1224975554299624813862158904253427642696070487844334394311701950343165759961"],["5152908951180190642252114040398738295249323071257895331861895418148453781596","2561822743631079473534499168054695357996827706978147179066038783070794679145"],["185946838039926628636824455234781564823119063865265045260454546572417830724","8288094334367836806419893061858465149665952080973633657408901509967162267246"],["22799029346705227551111417243991322963710873753186007808531529507278775403945","726516042303232811614496815262340433291125618189432742554333928685390608640"],["20308227335460710666900635837143931893220277016546965149974865087146213943541","10317305405114786609238045279611383418337847497618312515731314113532190346565"],["14881552195806510978029443401538356709907656731129044182587668653774549642568","16303083613393086602522552874413057333460743649603642937560233573328696544401"],["7111352845098810805950914473753223691348267661053464412434572579661517796561","26909682490567142866760105045913303441552273708977676156953378676484750926697"],["4390212772301037690484103571221727381250780536991496387974483489405490112690","471050845744128017418471419299463981757941260907583013102013548958382457390"],["7692629528759937641317529543580334357639941282068717328190492758627821999724","7995784889371196146648948905842806100537886731960383277811421191270101280217"],["20159578752260081468687202351478642749783462365790359034092905019520380529468","13128136167864186082287796000031391769031255558479886272163097164181296972146"],["16519126682983888673551405454673342279438170532981296941361726833866683905473","18679326615384576760062763409709223604080109902069555214629403643322182042802"],["22070646096054194432400127892450619569877602287956754667064467009764651576459","22861532684896441443476214838263468193810483524233097451967344944435105091092"],["26405531979083367014275798112037661732030115721006021476712446845419863926358","4173984490882316709358766766431818477120995894062312123594833987976929364985"],["22596518386695324306930774149016400977806696723639378939542051811191607197830","27974634387377408228088741307914625139132447795426321988120085292972430308278"],["695752925183258544813417336949033049137778581277135896803330718771968909394","2979867503365836633236778698766777567042727704727815607427572779384171394409"],["12139687144075469389410050795556060320435873702549512314151261346205986562578","3594522310889626357900611593919834782063492085258008609832388813022939722108"],["1364452208968214493583464160391856412947112800330760332486695000289981427821","23162885875041707518006253756757040535347321736874694448392431273780260511953"],["24647625305812257694020364137376412252265049419085645597941137730839684136562","450690386313602167143982600888581063700115589311705161184808816462248494709"],["28385545344909721115550971288138278471581471434966102568895301951162357205898","24728750070509076127139060768354025601439605012431374477780227651802972251853"],["27846199274545949068500794574403837337786439339239842923181987631572163012809","27204694008361722053113719507684713407866490465467829409919107961033319618977"],["20367606310740852479532176100413084612136630861195208973935751395073490512432","27826460768626592044856082327207388290343977425182016443261037962635032437113"],["26521053651347047893128847220666667604769404458220606857073445728075297416650","6745180878968973653014971159310658254463521284539322228831539634878245273810"],["15499351398275429087893573521786077736988135274084335606873434979790578538532","15948634259639271322935272384118089535021733969636171558461263857474282509462"],["14532835064578259793128474030382307496960250244904616470759731260582817146886","15344714172505741399085514805257625438700880025958799004943727255686704316699"],["6971175656430794909166579247229447353359935233554821625770055608822324015514","8699485080869029132419617491051817035093578758030977038727607863587800673495"],["5648453610690555598499844486841100019799487670676393183407955402892859491854","20889141738140064002935592424073038775567002782715568191421356941283804923446"],["4884936374308265549922075461386414885994474166015824191464944298941673380832","26866899038358197690389354851884614896928569874150059550325411810129935055764"],["3005157599063457568466901669369387296535511836673398332570908684394300646094","5295347730165353898711068229141732362773320080917555423957187700633182188179"],["16385201173220779403667335275761748459596464593064287093068587396813181304339","16140401605587072171626198262335626392458394892278985786017604792852802891045"],["22042400466646394347779830723804723574804934978311986255320291102677553913098","12712079447862613662363838051476172023376583821810498640700056952500254363913"],["3457218749751563485450939035380657343672384705579423514663294360409222155452","445455425201910835146586185237661067619643052269285862127432155648372731333"],["26197602092362621609775441832768148989032032653322768636950780646554373187780","16724388058031782447690619616124187695030764223937469615064128665030523277876"],["26102706028571042328394726962125692307541751565486620246940325756262411962446","18596943543179401948355478848975205557829286062925390627958754994438161261216"],["24565745707532432788817567733491109707436054710032913649047025876076667119257","1925794828896177502681008535766074348568859063295772817032496757037016069324"],["14914056462525697033489974786693604057597677604045690824436076693818527620221","2715994124443170039502042546673847024911398477229287824796626992057248962713"],["13448533449612366441071777723569355116652719480368003047030300007701512003037","1741364085684211821125623082616258696038137815880777048540934986784391859873"],["1782209468887269514053814951652773876972957355329221248783377927729294475974","1426283031751055710053964139960804655311105535906178567590927436202072401778"],["26738087780494660921647377475357760904000073093514484168048224589763991323523","23884024736869674225919863284868305591800084777122752041886176462237038728835"],["4345491369524049602378866548421717617640912100004001448824561877469268281580","1021034832919097758524887461020570475313235450297794215112509430207095774410"],["22327827947182169059576471986096697764286226085779133978486301655124003228568","5112557737262880508239669053099229366932108452851191776977586749823702119635"],["1559108990860693330795588517652037509832797214378715552926250712254402570500","26439090008815493331933281545544579694342301742636748735366524325984241282666"],["14534077529304334752955972633311338104824543774748708089708194662011228339459","12018708110835659061335371133115682951424662846043877048978955012752845033970"],["19632778763718383317923623449550328994921404708515802803951387124938112287993","12715082533967166369542925243291595934488269809113259903951438335079837580751"],["25324042147628427871612343421856123190960266722850821475079342995064181855737","25792699646078121035843401527378087452131018612354948197505289565049845443960"],["27385433521064816183597726812720776332642165157901067650910864389003246519655","11133284698871965761848057172827672365100044266711293751228866464662553171567"],["7421674903161312657397071910024367560741720412106728249996215770826464923475","5896783132277581589870841148916420603144743519058661700182409041276541668162"],["24049299940360199091274143707955132321370870074555995256241855078652819055561","16236856071050536477856921382293576265739571702629735279813020680721479201387"],["1347276798764284417513715926373014664835083354002835108779457957128073763016","1343012893679713493565085566849961924191471110920234742453746942308804954819"],["27870738714900975177791721953871242904845973530553772209689450651995687144321","6491750410777324263803591774811321267953389277707450702689429583226282293586"],["9697605091281567611476426654677776171159306033963949144979674099162987752627","9790642827300604777484389804178212407966144865392518585914517978719879253279"],["2496616622322385328201644213457011218329905743042895910600219804806907579045","9718363055945036840752953871522928025360010333134343693151795970677578286790"],["15833439694071353807214709200567228873051045524963519163899288024154564521253","23048398948717841180784951327413690352519136786099481627488946340058844040357"],["2751152670403757355827461491543646617158014234770182340508410605676374428461","5083144121293751640841229283702356176253213320781315401819626998281475264180"],["8903741145636616615471305496410126678291611405592914734764168937131021876324","27604357992899007729466187044105389337107562046737774072239623765228877404846"],["11388714264036889491642957717482970389903208474638935267393981196503761595945","19691515548800825122761758369489503207559636101820697157590234430647375054271"],["18548465704766667129586724386361854473721718088350066961128044334921354977956","14298983482945735430244724516198347029118644289576831674260225582883395836973"],["18738208157327829021792702912786349292436944684087136362860380591603918980470","1144436057322304438596452556742101438300315483782011213936864844502328764423"],["3162568016292431981365073991521143370715456231327376170279545106998433067465","8613998658414893746674048890481934697257351964661608995025640191935967590384"],["765978552036446963117485293113037015793396189349203540974141126921468488399","13467228422484255851816764264283062297890423939825062036466406416858303413602"],["15490161898412921799944006685847360353182115485946268661952615447857216239420","3001264159324119412839103458187727507916958711996060090809888542712938882109"],["14097994970053905767958141701959526884032470854778301293799804206321284378950","194177647498994111182395322253549340428677460597174870443978169015266310994"],["12049939135783142405183311253402463038693267668911609134043426606919849201613","25074763796499042345276490109786472900266128997883197483632141376079130802917"],["1308345531676273337839223787277340619289366361777570489641086878251569498602","16584904008886821984949599317198036523795756435609999551089540998409680671675"],["27038450642580191008254698313084284386330064481910340630920754563647477318114","21538849121841414673448774126749285457451893840405685624771417166157330337404"],["13616536599173523589026147345760484536222008490716452312203627709036023789959","3308886155473365295282743029209064760464615997633483990784842731779829011903"],["18096196356340194113495210421984420297837098306084127081736801881761766623348","1905449548073279494138520818970902257857322388443018179992859769766624168519"],["9634480153626439216148940540838509934034600051986697119037132159495628105709","26441417192550096079934506355754061276865410762850359844187230269448910542962"],["3338971698108236216888591773428292503736441077486150089570191253196192039379","14671891447821022529216107836972287059484718147826402464341759930855774525884"],["6129405421170073228862947991298439574784703221457300469082538770580563450945","24714539278336109571465497405482556925360380556324153391455889159675310936375"],["880700657676148998502239186462545683783453395443510681191507346693470051369","25383667745478566183847082076269247912265524067164589403681253692609346786887"],["27953393939001622095167660751954219338308976105945707806358250251244052961355","20313185574697117495628267702526561908434740647017155636207172458242010583273"],["14940195024988555200565540844153994548143924806998114121161349453399713302691","22292671512178460176318155395740833064746252990933181574350512809111976788788"],["18049025101076596174830568380124693003397210835059690462043526748119333530893","3838516058751772278417834575461224916612634844151044635149095426245607058839"],["12507477344145419965830809602302588926214539639543500002464626690032240151271","3289591528524427179400732258318621269836522905568774995125982337558429795553"],["10262101367757335076779424094720838583114666592428281269326861495851945201796","19956723090622917782397631548407929866645336861077948031482676964471296715045"],["24924216639791672095077062975346750276350636588015587458855929204902326303582","5068783413629905344118617322005070053835350437925357579083069601944425592899"],["401123902548977379668431388940055571011408764248317980225189415824256945482","15917659149042647427896913574572192852028252163233963550008593598333008868289"],["11608230620868875211159011763833972307995868367444154649033673928496387131647","12279282315549362874255915273748541871451898048222602645530864259873979307328"],["21185376863391617344854193753440846118607799894509196371037087572765248599025","20149766777964821589108236294047768926803295562725619538568814803298256500716"],["4641203517749483694721657414856614379029099301641558227424038751587867443726","10350145349306126763730574076939376049806077247826759157023632938263186656920"],["4199135644470546685798944723049634212456109805817747065118133594213972949644","23153971604861866227886586559538129005959005594006499277156797135548188686486"],["3099625133637125923404962959248944717756034772499417748372351932866671071949","13060368491056975947405022300606670783978660106066246718693269445414795186826"],["21119026973757786326307024895008669439427916413629042447506471437178512032840","7456071342513572448346017273465212211099852767220997224636981874094015579260"],["3710876056629145241918754276971740900352125052739181615934578004571802566725","19801491446627123338220532850951694367866646706746680814303396136889664099379"],["25134649320655114438086631470951139220355065974295070631455731159343778756635","10834832909477763018646467335005507892362925405166482910792363440257224110896"],["1073406459499532037865690956322721000067215076475387322157421771482955596194","13078056202803390233803294254235179344106190130442820383043808755209777807097"],["26318514182254896177566469836624815597047987012879579415259138388627816560884","28510095302760318181576213604217240419651701977609969786592465995155601142885"],["799925487189713598276868449881271025842313089582254544027624588825725982373","12888900131173316276745895514078420261463373787913496743116431160414103417735"],["22288465505155200342814484843769333877466756314597236109111407051570233551172","15812224226146256106305552441224154446560626178830504307519817159073825265653"],["8502515258020926814518964225417521010967054238918976790536488772582090660964","19025707825154440992598111489658312332898045238877719100724157803037158668040"],["28205513946204998600204393549520034487548578731643860396227901774538322780480","10764719726954601931344693482216590790300353214304854665408472896862208176927"],["18412321169803831907788952910035295940210508074156826699751505152428622036168","25939366103142357928582956010690720779128540601770201717199226209678360686767"],["7049192764978571240728515220559091203028196391940629140245120281546970415243","19110877531276866946623401059219017609998430827131321077061065341912365546831"],["26113471129013864146062624596115402219701537551432767240142781567119753575534","13948411527661039781334263185098536408705375411764059344506697805451143718389"],["17284479958090233205107906049248805299318574786521722130946986724214093768103","4535606491690672399542179740294473323057269874626579653870388134487931884090"],["10284952830853904705788689037153479287885973843729225881515962300835032063849","19650720760625282656860280041535247563941389587652961246813501606998636537784"],["17114846222169428985594588759527968426732910384483997549198704161324656936886","19403505142829221438144102079431060900928653649732295909987275259624314098521"],["5339758866170531335036749172769059640167965867820119027359778679927759952193","28189580413200114320518231794804382268539839436249459944973701460388204891375"],["13735930859046398203444803836927935430328078623287407700077032715965804631348","18660845873016091670029276866161582089289296247190247063769404230627667853285"],["1248628527694033395436329012239387998637774550366525664733262385509724709182","10448488675097857120251241162400093501022523867830111612574594768879717843584"],["21566603487649979701615378000951542521549183109021693803863067056772228351703","5697877126986885746082311477892523274799050684777634447532238460617812373511"],["23358061580871156011991473193534581158338148928063313718045773577040275757966","25134667803085665398255943377473967137739428195559525342796576375340006335253"],["9820584035396019260953662614394403246434317931282169880128990636748707530810","8653051907138346624309838044969276876680894176821741232049663743120583954142"],["21266733599083819910367716402616479186512216082995159029055058421622261804968","22329978092945124003414650609432139469042369990210987175080723716726061868014"],["323635403862546260682772615350325119750635846170442394085230841373894972722","25228065367863503481193265731060841832419312716676037947385494374046854717606"],["14167486685432912667412604182199091589257234223825332175903414146644967663753","192173066220667290289163596084120587398940578485809395681632618043530369161"],["3747867875218834110820513790577498021553754231659811415738337152504662211876","7337791581957910228778087659835155765559600955220277906988283777455264459178"],["25570182142468179635237933682095078163213751331437563471822607439136112795553","26879665980428907269794078831865997919204062030827152497412028994389587698213"],["23557867879064145317749809685376240307949165583606633225526240688432315074105","12092943470615036578338202257643593205468366814994807840847059448958468599419"],["1215353717663396938190094861819877646299528248288659931758695449790152807002","26410892701379059434718572139640480686821628794111160146371742599382820628362"],["4116983002550070642516772516814982257568391141162307266439700920700431858404","12282185390778004215052309747517394364595136193761742716421909502068599092993"],["8836043066986199094699406500479149153896787644175376661154908298777400052537","24178102728456876031159336655546203122990203441487943723080101703127534644008"],["23111940923879840751159405535512703896508922245969769894529578433951984465871","15585344328983335394832158214297779404748666938921907107360842781644110681964"],["19333338805576564451010589222562888402727664653997543737681308224094400125860","21253293863334696498680955894704589405245154763023694405838154081501533230082"],["16342850514568499754056109872655816818784281090676526686284117389984501766595","2503786412146747307095551581671406184604554490673435493055520685410804027781"],["19294554961983311705675188406970704125025589542217799229455601282339234929461","5506365548661774204835889962196203239800377371038409403364333735614078547139"],["28828535500299157507404929204210766620794074392877484518475799779691007352927","21791795554137292539578336543432076822811372256837280697840307912086899348558"],["2264956355473450823029929564155335358452045018467210630700426430349184835652","28306803489746462930625792360150078546072903162111715427342866712632078612536"],["5458709330688308574038708591074675030753065830266796675423365013165206555364","8805841162156248421597662155138632382599933259279017353516226640016018159089"],["5037702744332119608228391490834977550892781466421069364736064050616650793519","24402488718763829465167601394702901036224961900934081996675686720959181879962"],["563116080645071489033855120072617098255070582258549075154962727590807462813","24004587961174768746943936130571703483834088800715456890240004068501101579367"],["13489365747319797471428465153185524415221851675900801997272596239188269722818","27509108680444028530427405587442986397726126552894283509247098258597576642340"],["14291020508570538679443597354569566917007817867504094341014079050208223066316","2666541887001866001214673585002415287035297664133247109747260598019110790588"],["17216077416957553639058787475930176805531266835470292682224159181468814473364","11604741999106191206042674518719414157830479148261988190761209919864294452244"],["25101750875817005954177722494354173901786492915971698707967117751569308496469","12370331698962560740655724574069247115280640977265477927359126238830536148195"],["10293063428469080303646163055257265309691590966841214254017029080869085375250","18254703867205047580271754445290214793245967288941082776963465517427341622790"],["8962595613061797556357782774333243733753652842637539297159354489566573371350","987996633862512815074270957734275529213751981019885369937866103396178419405"],["557538193927317644835009111691053934483155869344613521082943830735059867532","11131101028375730711422703761968350473284367713976632229402390885180890568893"],["10981565096212124004391055883637042194656360108114701599272536455094112189435","8651170750064797327496570790909537511766176819892589872501830628383532947662"],["2461720631869930991732931000098423404766348576193285313655326340544084002517","19880967320485892756171063670390859292852337443450995257617282657921231259693"],["16672746577893414034346676382486253976299291571999976762440578454008104662578","10836031759431896132712501361994838506358321488314677000063873665729405724223"],["18581915422559330597601266626432244810677786255307246043890735007952990298401","22455310659088266757900099811879462621638989645113495875842303349505922080732"],["17500284364221577310145748348042458366606573572726211126830018642093589321697","7039039741057961371571235112391791668594001379234370045583167303115323618172"],["1844644744030931755157271475559333020939055865539580910039756241364296692380","5785969585390423160516770066464429659999847297648257514337291244487663175069"],["7197368064930561093198798184553535804648398449454068562546276917143908487108","6294963709898014533180074827539619273501710292537351307567826729514584782663"],["19114098221026774507665604245173433545124753176983966368319957041697650768486","25155597459008205994754587338073024932317465192970312580182897008937956664515"],["18412297325584248785536526498350545564039531839008311409876391370714953465288","5921245951881190112385043440492440771066227540546108579154894238073833918988"],["24125231861482206532254795602270039840837525761997016101516817759662618081314","3773962313750186241504750278903754803406515817929320911507563529822084435465"],["22770927317249088940933489315096127895602874934717312983405180780966659723262","5768479451723705627935244349524774760004290787635650192129661818503532180400"],["15373200203263649664707626400893059465955573167069016699557168003327358145746","21268365553540269895526669306796461433242577141599955649551740393099547562911"],["10137736220659205128963840494593098806652594306478470362281313505693084444422","14318089966215488690636171800991695142108945236747461112326228841818090648856"],["13554783692332477186194907320171244864838232957994517101014248000917611328508","23184740577939888871773397704185870303248371101415527069270322297176242797055"],["15972535075678213658146573655186199766950183219023317685999274371280330767432","21574642451890491840360863363410270338744113389627486118393348946495551121197"],["37599586675768966048054284442087981059354622907669461530683029541762470831","25530086432016840393795384383852078779985747601103095360763127393071841574600"],["23709655861642243381291693106438620294566474962461956816359919081941119575000","13367230617026761968100781879503427331615516872027876029880537738160821692793"],["8195246978618616649179976617780924130220068313900795796431558883949402076279","17329094671807276881318176063265232566936883345613758054501268360060616803256"],["28093032701118693378260198241415289150686058043554747372319967766845692777993","27597607033640084825577086966105982891446110651648001670505338005010458376212"],["8676381708710397533181881697804757850279396941754357196964760607271846839932","12031865707430487881338115401248024779649298607585459642204893609997203605533"],["21924765614313629800867324362574929326222184365248252872798927490075398938937","17255573017690418317341061125295111502337287509550166930097050449447653704401"],["14631354312133338269490557146242274244377012924274570159674376059310225044995","6454929142193788789177876921358465532550206530365276491297553717625903518447"],["24355068323291948163485240374445763041484074556024774431194983316570989953326","25466312305591815982684949839167918233676280292267722552116615778432957708166"],["9573982984429806924456594392697091429415933467013300536124983171345407861748","20350446865229145267718577755518340635425315855473533245340844167785859560322"],["17308206519585416035828693927510986523768360930340286171709924923655985656760","11745283112410738118233485728855773403099196309333923148719521986071829496707"],["23995133884393089843574912961025139948312511168213732888630864814207581323214","11216824351432668219824678195861740530207164653616982786797404755786628614613"],["28516716876089844422394987515907640543490552941887938991550914633177741867878","9584183443518893170069476577196131130707090943551506027523736546400968084957"],["11764428130762274646710390736690343511227762404714781035823384934991788166124","27814516224593135183747436198507325893385213900487357003569798996847282834977"],["22125879832870376629383709854860533195843342885576791387022877757756968426319","24853347956424348301403071270736694421605829480972210691146397472526368516395"],["9160442281219861076920317124682928401362892050218510826852148606644129202454","5086733696230114779808907309149187592483057410185982772780795516051447672748"],["8291286800867231734274047172272654904350346378679985055577730022057933405150","11976099761853402214352745090417186284794782784125615972738410840681627212405"],["14135627280040259610759666841582624204258702115339829058569810255272559599926","25867301254885172509158834779411943376369316414669879236286932481103074913111"],["14781250266298568804534496634677320478715506279421162922826347634354953013776","23177332587054777011209335482389173056188909869506495397228784702889965224766"],["19226334328196352290581978671790482097284275254448197919317254911416914888366","19357782805610827858727062412786902242257355300897011618304982264820212246045"],["20425684501602927671211915735960978451798575697738354991032646390544418503775","24368462136016467603921436537859295550688784538784888599955275439367913148177"],["8443709554524162285358944121948363737163085702559821830226281527523712508314","6834346742665645695549546274037900882399097234549497499290688742204595498063"],["9026567824768561124038511195259284796527009321577553335891250831429828609521","590550722271460971069470306114458779242700560389730133428993934971662532633"],["14573849812918431534543606978202264183131014306865464758576652722574984914822","19545369591390680087103432317730362112956848509516011371340966307622277858332"],["10836244270879482438637329259388201933506058453350201555370115922680746150343","19286319170429303111418179666409829656464043607842727823253230928956650997967"],["24324232178707517364038998136639487668553527748897968236433998010052864281374","22438732571790573000715343240489444970718035867295738189116598857292004825619"],["10163616316020142268858223982671170588272089107188536407006781393341725565954","6569874993255633011127808706761218349886818522531775161129418649972245322567"],["21320420736489359772015018872669077689365082298740095467521555263425015017608","16965408798754995411018096197927154778526976017250476967142140429379052387891"],["12254205498123179299788523592138217984272988760942727025304842924774629081964","23015870759326515774200456248433708475008863673576630873490492882449781273905"],["17536088388353400868238657799789517964459663595593563870647747883763213601820","11955781428407657627714170080497681264135947445649466013346461808370175429080"],["4190253395594113558528522488633385815161645366861886847119444681139057991187","15494764849092539913441554665518466757525317977314055223863497181068507325659"],["26339705863561068782359604456244557059303448123358057656629076925928924490270","22501566611426710241397953794553780428298253115116524465121798397171341457683"],["3077170204098077572445406048175864709130490234576537840296723392576439768048","20019400682925162615985486230479356075617721765098643994132667283890017445942"],["22811804085275181751105778415040111326347472010855184261116776709790989565331","19722810030788109379673464906609205891216772618268281955904441610790584384250"],["22441006590146027664455701688391329971633225242891664437537981688338402417440","1656377470787079262502250217070843884021608641654572407814680755335076899877"],["7555560445529441189257304919148366706646042123872604435965507260408742198540","7843046998681997057464749003363216543444611775438975549376892982451706988609"],["12624963681540647391353474509468525011087901999131998123953009945914946760611","16351135048722953347040462508956841638890794273199773938075355458014965130119"],["22755652888895166756953063843644506536066693886017649055035538010654038070738","25254987991816631894989701535477937554112874436572020350881729278931671972054"],["15990894013607354296260024102421473153633981564491668102903660178770815124161","25541635122565657307821461662634270586377947873711631242229898204158489939363"],["24982320415124959598792230251609724133399981019024192698059033644862713903101","17450988402789100681445416302735872279000369537072786897340151269664126633984"],["13784649324502312405711823982691342544104954905738437265188404381352146722445","22846528836626083230620012855407938507356399640034280857625690074015191309294"],["25227055226148952916137765352430862145607839864594049665608825340629618463323","11661783226495316730373071466149015532153985707224355371352679831350600132108"],["10600417156223361593471716842649655679914778472259085266252326875730312715480","53790321862582263859218176461922282603432809134160538879500724999712633587"],["21723424337467026951852091812025574585302632265345895361695755692143412731460","28251821327758412983142120145726032311874039762472988901484718742566455979747"],["9811552357361217225516276397663548923976190422945890114776112750920138604700","3899462683913834501082901624829850637336062454452237386414531295375751194634"],["5087428203448906732413715405476418767335028235682870279117600912096207861173","24839674640932919066368565589331024818468662806919953676149964656120714257521"],["25013054011400807268191464274462283106660581828961140828390374211180204912093","22027923040853659107167309318573092174191423722673230489932012819411941121612"],["14690146776931550073312981342459040272362878913112054727703959327269743988896","12752890705553950476977397327208822877377760122740513594683574022977507170780"],["22145687168748517456675273578469687093994489429184706856332190603830151218353","8916974625557142838516152303878183801639072977251618150695654154812914719929"],["10826002696607498832281107363429737793690886149335271395417539425974694361672","18828435733024903462717060713934357025210015441520091298784258155923465915774"],["14929226603909589019447620022222308570048517045547531428074651072262123252583","11278660608832447060445825465449664536924103974630575142013866592933078561922"],["5463352505849470225561127367340922833109633672661951717660334739492151120419","24817494520375322703332786927709014758526667943959214569962114600678348767377"],["3813404238414993118187413015134451756951708768638241494546294946705194153365","9080421794794568081888683061625962215348265706233245469690214858913857795461"],["3648459953903321759448287143418821942134296314850285817187665373389986399780","14789312761497188793792669553372906611483797133794410291444598639998109487570"],["15202666146694231621621921686343268790289122407411827482566277648275449875276","13084547866437112524164992785197349135623218305779125635910201797644320694820"],["4001304751461936711007128695400048654218693849111993216268980344748826119662","16413144632247346315811500680307849191182132717691825373930995258251391636907"],["26968942569610559621166801516529557131922784204578397851460470703390672148708","7625494341980046919492642220902738132713057865291630146620105239509085029809"],["21340452869111349813568036917949835202273348246715428658690210207545519432534","11031872880023446880853278041272009720076198657927140441956531042231578472206"],["5767001257533361178053833939151978582448012358117478068805959144772636753328","21240875847304729978166666067498960066462525872155926384861433024889282666356"],["24209214821781852664256780703735627937648299436549609474077690739963832827527","4883828476180858493701501937758190086771378441482213504220578517663104868478"],["3239026258338282144100511944508515122496326932275587756576054445248133227085","27740092276817124512561607428546735763068351109610060884277378464376045927968"],["11406936535522551446753668313292471289558129452824953373825642562909802581072","69574891552275494136046692899501777334657590687855561193696778605528328274"],["1836416446892640261115297603862399719983070550645841956952787625698442852603","13812174570970129643862554062257088913351850174983023081967596143935778882796"],["4847272687777131127752748813816967328694777071062065151396516005568961720906","2271012506831675008341124368626107596961779265239021640161337502235158573358"],["3472371711488133491379724509261870011014323672248360245153237966529249314603","26015379087510204876996912585723201111283311958936006846345912316041434821909"],["10704125031843758612779627139085390390080282651814714829930831890422735919847","9624872396013768429075757331983527836669735984993568976582186404380383383470"],["14217376839139111377737489484800729039486247059876385556502935283005315024855","15385784069739998944478037148983065330545084366968553669022971914473604785739"],["10152242265652152186132750220216461025162328590362881364909658824194892446064","1998672719638243077635804480077895083183708675187307482370614478357225820673"],["15037313130596757707397131728003356099501705595357192764679874539600068334055","11871802364966988080816218952401676310157371746303739940441301823445611561693"],["1112871812149797965091280802175862622466178062564900547031488202198277803866","325924393740248669066282833536976692296244940502204901603477408957754974304"],["10118260987857599873992328344846684695227771639015260106063962009421709969959","16368667694073345569290298392834718796361418623728392255809679238583253978143"],["13891342969838593101817126391077259309040196983801013505286062044677362567624","6804127314303105290880200271021455175936447375734651713494202969164056911541"],["14074777061553629965038403971761426312503439310124471623452149129649472095900","6340125742178300735744799907427311990421238561145223154875001682804940961730"],["197427589072479585289760965147390896999771921699269499032518928841117242513","12170038968346402233517689657868117656422809975587095332744911253634195459005"],["2533545838947572953761906445356066130289713452407836315074106992710994438497","9967261720041078471987701991695998773863682866572846110096588852979234729406"],["17121860173448199535362225031909620000237680307091555877262020071764886801021","17960688848719701197805970383148439961028353373973094154325820836315300865056"],["17692462682849661349508291964447282644866040997615358123473266290715880349081","21079764833497680288810497613956459086066417286278181337317960854814478055446"],["21705949092719264071127048844185437337121955713731629353377792122275944293594","18346620233837518342395667356044785302163125652028698580425638403546656137500"],["23296826647699894052354498365920151028389994973689190344030765841774547310590","5078510143719300468086140949450150671564399172679776743372750895277781910294"],["11198522607670865811266181142428371012815039723499377398717821552323468464825","16600016814146794851266572997213677916364926943183873988692283803566260416841"],["10586643961445197660150267325971787692237768562704823330137406724181405544281","26924600358381447471243267702016437195602094299057500843415389920523015968453"],["13999673261506236260293683711280350071473345901124528186514764591164793878291","19194511200931526967404042210985030542028025802353973771503801645866857540044"],["28072445992744944730802948825692645916559247862955709596339333369620982591023","4399590573302807915096180464881561351619828666274552497387123119691147651509"],["8149900068989485699239064469869890443233178348815341770774348022749455408632","22989269186736610920347245460691475377584141946701341969912801497752842086101"],["24969028876559966719674422749119268080961944091094391218803143199281174079675","26983727383561228930457401235999939398450307405821162840827574742904916800121"],["26897291248030818629593605209857392961947198713929061088613175038253011445668","12839243174918040512488853821104241617477023286702713243680750804313835112049"],["26606947456491025184578252627828208608325923588666477307697448837843203642596","25584223306546567243859418538518954658084178865843399774312533425143558445899"],["24807038707541836854949107287376928625889792538780038260588512541340766018112","12657335936675615242802528539425879818212453287030081096542819981886277372278"],["27831716135913560974185739927769489058957350058789161747440574419314753622219","28008089410992877324528436608277059453736963355138142199408163133379140271997"],["16210565552424470870061960165263261828979653528506888665802303327551780678628","19425703985451186617867082115963017555800606266253877429043549957974474748436"],["12409572256390374030501146686022848458744951439905818782380262553141385567489","25848029140025150909076473380386685863237759877993684303352265022475230149999"],["11461860509700547164832372768937452971584147200446821020184643988322700816873","27880311069702067798958108476891384565781519153194099451306148499519266745398"],["1747339907631770847198082365709972553947472885939203349486357965402695962135","19978350652903373265562363828551478095655866364863300594052975607683300481802"],["302800992287145777628612579496401011408036179068190923572174986173326994182","22139498085636649096789056572218534273828218904151479293444770509795984792272"],["9550398262687525186663829663762574646906332187110729081917477897674993654340","15443888107310599720972048443879419229637069693523510611432454024566002859491"],["10296150972479097627238129808407619456014737908870759205014110847469054472214","9999667912894169850266356670532546028296351780854412974445593875931823008491"],["2427554969502187475591073203406981888515399753700581842380616463859726660182","28403896610223826747925380861270436859338307897748833408382253940289299437754"],["26834769608822984770646700307094127454614475975561934800973908020316290580526","5321708816956319151268380976789091536914852228756120240053300779039448156564"],["27559203062190902644707892781533603883956271895761131192214684364740867408796","5910608903211209565487762151867264609692562829173107148122477242113058292674"],["22712405992590359592366433220197072716089961828928616732807800995831582288523","20702028007851919649999014840772012482475187191397573866047715172848153462957"],["18816249421114554265274892008494855005515844519617232622903988252779459020356","11149304017231478075381534083158250143149152967010309794525603218669799461133"],["9044426373685672043383667205563944424088554932079057820596915643621994476946","22008916362452907074414523687992331883015693551621960930012866560874191217934"],["3696981171650415791330332269936945582276037658195489113433952971587919201769","24510623451189582230063931252042055187823507094969051418497403155524251064626"],["5178180227365714951849169858804938498680331122086024202170770992604193591115","24106484774440600482952037219907939078204128970912571589549362361734778774447"],["8187284340882465681346321176794761366782099040344686653741830034979541958791","11274129636353430278155993721764631827315147976372404730666359990601776416276"],["20191877299218647476347709775852833762897540229723669398981830677051515315886","19831299232340370541276524576235758718345217558530091016919039969052987653353"],["3349409124889672664473819622840333053496531904431529007646097889528415099272","5438842510499938908153586259004892481857501301051918733006151649395234587117"],["10293336008871359883599219280243983513102043877135336723169669179320035606274","22730639488771339845330456241864880977590459023832991603384986725813470042097"],["21530917512868454116120009678749876888674940239914258737955549096045311298952","11009281820871674139241956799724162716879300921385011645151979346830876346292"],["7642092806083198277608053278948905505936075693001805080502239548244178496187","11148316594868540710290955977980008448534843866892013566889183183799386718083"],["18507491887696075154655096023974168431451710002791647076375820720814392523766","15546175688809478653860643117828866594474381744443291740421905165529685076426"],["26692016778320999299356354993057359315177107672913871719277752885060674922743","13627532771636399697401426578842150666354094026782782073234303746191078472441"],["12505266854012846601327590623086931376308470356690435317731407026705041326330","20984023769985746529212113305936710142610546886641168276586591760489903811973"],["24526124657100234057615882603174363565778901320777140494788813938306978836360","8410434900883720339468915220549024024700806454102417734988171933924312903304"],["26765701795762951488183372959560843822694233648753276376231538074892101235085","16354783474288600325621900979334877568797248589697455531632917384704618272608"],["27073909735335647163211011649969595618238856299985945209497662547163724422416","3052179231612532398040363199956305325619410621054899690163224868940094193124"],["401786807510115805330514912424404163070805818889579620546347461432717362810","3830075286839084850674599277260529783949162714641357165452622977985781943056"],["6929215253043239552435982612125617250475445621589122017620399770861787800199","8171707234927412310398989450287619836671744288216792803783342440027529851747"],["23170169582447406533844109566222137533160563618180343062367238291510003989650","14371668722660072615521121345832116197374706239719240154810948765615600002444"],["163444171046414982960893164130943955003836408060513907354874025540007398158","3993202396133232705374334707442383600586966803781548625991921205178589413877"],["9795444480682205210143016824395684994162900955872741993895428828829012730205","15326305112902356675243446642302367007681842736639769280717342077254165696294"],["26435118106933023130321709297626897629408244779501143046237507731412102220490","10641717064542231302886270982326363093226483600952137210332393416669307795201"],["21508707461039668360096389356947032374445461438168744116639187947243392962854","21849815992157718773022941941156367827137320863310779982055159968313691247531"],["3752109473956494252893097115219895360255508732972146304452479134981258551620","10356288375892068661685900953389706314553995213198218724380328040684331479482"],["27291301855070993223458717827599183964232996539213810657576253831800235614736","2868567137619568621856642389857462940077716927496789669288200942663685457335"],["16680292376254971992452883499242272518984936587572479173671094542268843842719","6910649296678242087683143967007919016349913444185458907972810714361839701607"],["961439788881526120074051569784279345951526943165800519579179602352013214624","12678232229144234128735867866222717368949136871409811485364967627417845877773"],["12149052410373766649732101788168733237374420626225494639315442058001357482093","28939472223079896660487827212492564497693117201501200825378808070574077222451"],["3501534023129168055713020467700470172954949741963462057527942514105652418777","2840403881014823250529765287452045889644817780874511506538859374427664193509"],["21684529683147063229402259847118656270637582154647612325100413430652320780071","3759085453455736050852455576896575138317853063570505503818134191178044704703"],["4519321597319852101706475374595025458710752333518150994948805364682971394547","9124236626871155871305935193787753887230705035831267533792915736750405975070"],["17646836605322403961832514342789272991204316654788049916359116244614445382773","8599690373076727596303290909736977417990133080331061931244887691688471530081"],["1270229386960214087692268265162612851947886332588333262113765716836547847748","8529619968612615943786923303859816655090474020700501551433954667257276423443"],["6191088440517684439161199601543376528511970382673864122173800817134284776882","24547179172078905422725280299819358614454013590060584766591009855682395314684"],["21293415418939765245985771398591862978109142750335436931452586160636061305304","7399149046366934358690848510226656714068765854175401702791754485852190664666"],["17036998055459168242365594437168561198135587941967316525113735450129500108927","26096199256353820136779953250093571618600558954011809773681751521886544071826"],["28162806811377410258836891463577725571329999130247539859251356707490742051636","26087182080432683592955588512222862456466058276977817248772686662247408477758"],["16522013272267375923655821712017905795516019378004167498032825603365081395846","20234006437555252872954594609085697794228311024508164492073457644402661743655"],["26538504183000266528150665591961704903399320745849828540789903334379813137328","7674678932853375123896110919406248965713559398857147646675007437703907133633"],["28083477304542607511689759266648481265777159384786826704999906270603018532095","8766680823512841015578434343908216838162907431520791328840801442228670489677"],["25625026724273097424768844222394270953211714091030639823457664215212306025239","3328005317755478953467781182615263373169694112361861222697181373109583567776"],["2556726375176366911157438043611658088841310714502342990642129049709944317538","28482879721729050317942065514153066869097856369697179968741796545020076881813"],["2597198013484095720423256928511408841328952007565180973729335412704798720223","22196317095430085976348405379241875819605338485099079374110382997878925372250"],["26990357033758350787057983590593792415814994873980623118973743851767898009317","17224157928360363665987139332300066441848590170898601549466476963881577413584"],["19408270677264067212619145798108562920006241051337435766246646917306241942916","23797952734567851005695786592688373818592550546676900246236621332246924108179"],["8158880422211232186970786664382799330766642547146924154658809245005757362815","23602765373477991930776843933807862377225619751646132503187155081080194319334"],["21620806922035575101381503315738109846427107283277005023062740715046088595127","18477453927620046042652513918062712717216621074456976540048522128984401590955"],["17030223041697180210526735212235857544706537271415878465801969162140982730027","396304587748667181960975093106238660734319303336383937146095796879372104158"],["23328023341208317034848988444736179880449909898401993750392613840446852712392","5884982333000703472110465928268366863965359783960975520371667405485706810222"],["7641360785350531737942445044246732532057280659607820113324117337313065170771","1032687331856246811653357782004599230710203375962097579722409158208972532736"],["5937732740411732709185589700762877701537368784155642728869062777178344003255","24732470726680411525567712611838590067927356200395974939753103703501472406980"],["4201141191035537326810827021950825322442520133970197889323474081531451225249","1645074394005779625941097089043068693449264571866545200679843194849568175187"],["16268100397426663605402520348176536953785130000251734769207365583937041313621","5808874779688723491626915637688408726275733232250457688190074709215039838932"],["11818755098483117690303143055400495084432570583984166275661343616938541404789","16473484640845240954298942290683273292351060989596977877630116650154090183644"],["4927511079447649672580077735408298684165133399099201333461876227629129221775","10437532408527895604519560301104266646179095113823717273242489404329284253799"],["2192017573010555221806521905089367651387669234181323816602559203168165574965","26063382170720227448367991198478962301822727621860718339922251218408030667602"],["15917393259977723892027627029809192911069568318081958010661044205851961384287","6290315404841108580004393095392956474203175108712534845002809591486925101927"],["24600783843022442889638335638836454429548724053193410735818725898787598291311","11509771132926789477037627849140169000411181335275983650976358733320517872582"],["2658763536976012328845864182064031551796005817820377466113679781267901614785","7798080173515938521556086260548852749066030069949470752046637950848645052302"],["27569185057650956013742943822248631392599462250799607556530008034602552383972","6021586163871955151266318798563217590717218826752499159212182822737847716004"],["8276937743335017460825792536841037998585680377457800664782808573968253727255","10829029138724748702804881325459881875679285742096575742646119135364743150344"],["13059244327280445840563604610708570486579241635255032296407972504394566087929","6093232773745467192753534789275883824218742799153942184167531428156425570287"],["5414271625925154512436987127749536865925382553526226985376335018516718472252","1327006792795795125141070048686861350045584541569701530464427622216631769388"],["13830107962900181078576539216353264032246688459612059034230751352833728094453","25537445976168482059395424558052867921435942073349631275993074449020221122847"],["15989994505856940379807718314369166434070300512003580242656668701410796357186","27822570177059329900244468235237956032830063171328830832187534257924931074882"],["23257309845772106536016562887652142666849241515586446655701994622932863383441","7967800012176245453150543973430613158899705675526843626860853218502772376928"],["20361699946825130458489432008599135423033551096758715456766691606739819948671","18365366269965535508313290125402946640744915943092793101478224478520420607721"],["14599417503337708018168129403121600427560919246206047622484545533926953748896","20871951319550392352346120278956518493962903072097125750557829045004138883830"],["1669266400256805018560309116872023001920782411218701861279599016117736517454","24437040609434039351478680807907769012963764175273825555477636795455007890390"],["10354598502097033501518567120061440908402387719386200600021479518806017762161","24114579673844205499341973833283831304223449421240618011505942748560909994580"],["6937053034511779099499603751836922683875693313667354024776082048191382317521","9077719411762106290964519035277374515583414594040218413190347492818761396703"],["8314482085560127301837454989140707238006319444051186531754952060494282020060","20051896000574238716668021216025505259425204047326445659033671128809827241731"],["8917279514136217423857923986100129526557380301874755832510393438887533930851","22939082998593742647341938728973086371546129080206309658941246379177694463816"],["17030382821650932275440136720440552753305189700866298285720581637135477654749","1771154766458844254481139059489126514994000154452332546282497814266386658592"],["2427345715777807601362042695226253668499004782573785331666330760521928948648","28723907083753916271749173594374077936224286909821751195865397153681941118680"],["10573357382663243407909183800589831742427836517605585417186928930342822816654","20714122267096439663044227043584883178338642108353772266616122968590322544471"],["5694094025868621175841704445512242236411912019780601933715976276546225461372","18690575138355401945355614355377799458259646830801629819926434992279489021798"],["20877172351297945137517037429270638840936516467499027112441651566090379188213","18414633989302706623900028505301545209620991681412562974171614916536357482108"],["8772093210228483186539923547850803666833656937109805876103114527760720466409","1815760770686981499449424182782064671125443930795912941289580568723760365738"],["4439115149865953019276750754195729304753165624185357539299093151649462684179","11215993300416458813919631269448783881328189098670157752773333946044657610868"],["1492779734538207336974304217519217791485289106533288796137064459928340476163","4436337603678969862321717385623222932161175504681796221845827477651291375312"],["28008997541324767547079371100168607542179822117991283042238645146524450410157","17203186434203218743670064846632819423730622786808032557265314791309945796943"],["12251552351855977035428872895679030870283957684966976205344928430811044889730","18744577186083875345761479423263185565366419488179618698088642238757500550386"],["13405595634031972629909948641357419076966844843097680949447559840759170830674","28905732765340191154621666709401843083194352779420534034182221064109302987825"],["26995249899125124524904175013158035934226810512112414466258631384093332145191","18715732789130028576018475819244709202416978680443289419137992866596032644419"],["1066264135853757947425993385070266331313933869567510836627548176778661286768","8708258985902638759966204006636287787976684715782006689232682746041820383434"],["9468992353937437505594061802417592212836958588144166542385372028513373587884","10576883886532548405021640560696413649108927225861368242583852772040930788834"],["17431525381339044425148046873289250412875719082068019785396240483948902440424","15145607167436539055910483475679588580861023957005367824473595028472486578552"],["11311562453363280050925284291475441910062292740400287914926525571642674491230","20725057582317224189240476672737847100437406997357356392373711467816410458912"],["1400000497702329593675461079426930618323416230544009390393024659020750728943","6110630154271576671029629827839317993146942772256057462187561633733204098731"],["15459211845126827474392988463845753578282795797913398634117807794204629513682","8955975896530002160615102545271631820363601096297547903882999512140303170845"],["25709431339366470599769666747753727191722290682916386098617041724803342113959","23265041244416354647869645113792545199252256849784441911168293983825443952913"],["17672440822022331423164599210935831355188855585054729124660278136744502466161","5166004750212449524897461552906089510779546732664997557638894437670048367029"],["7310051130363556555167915531326294859637352635551323494803649076030849885261","521639237894674217007211519388671961031802936462869105552367850173978763830"],["20117600785434824210402517650020626131649590953699897038307468565638536108534","3931991583080782356538559263085240886148674370594539570464367032214384864563"],["22494524875342920503494263054807067273250074923390303599138558915866854483292","19178998367134151425912932476871047896970876223605517724022205787800001302884"],["1313030988698515267105424073896393402443577776235005560702868578784025417716","20012516777596803415972884065032805424028783466946782148726315487611492372407"],["24688341357584720709667025977755248351458394804679723203812558995849104186405","19466702740158360722922853163513490827883566526440568683122933211308755519634"],["18085720669947755001749057333167178254666963438824739694975947600166609861695","4995220019128920827766397185218897172705907615321046504968017211747542278419"],["24282850912078930160674986906247611771698917980487201737457161572075194621853","25122096395276912160710600830102724033422443304502855074338324913371251995737"],["21736470091404912446298877562734611825763043994481778713330330726873926829171","8397855440672498258963597672922150437146941438597406794793949886985554290267"],["3675616066846327250056243939546404014242783414473204025705538375552683879516","24806142956643151211905929988815489981700214090296838080453954268953209016009"],["22945286828921737371287084878977696284577259259447446314326880578111337527769","28331360683156586188696093466719188469672185676367382582581388079674996619470"],["1308054350900365927558832838888922293926531513651295089963220369967139271717","12495094175356303499618080301004048690808573631884619536368174818278412152468"],["5896799308448302306502832769955307774593365208604426299834754847771749185435","14164249966202987764140972519761849740787978909226255140168344103610308431920"],["20941916779533202907730180113594912472597546054836702349056988250559342987173","8702652672267995457382712011868818036812057457412909552960979988026820085082"],["9401423708637972981980418241737068195149793392091702794338348899654995503659","241401909266433235276829168502706925880870999894093758666026295937665875287"],["21652620002713383832986787510670913637030095253749214461738707742363312305247","26972674609871035898729089072704639870737829049871563198923627155821808895649"],["18200511313650636994647070655926067300332380640824159774961343744758562678721","14394435925704614916509130775678098578970934186888642819561769042533330479217"],["10022962410875573928835282802695060703118999425355188945844579791107171113184","27684984800265679985967728348343025652152934359098412068534206149331038305263"],["24319640929213892127430333057744857231891401616970905197685540658222145843029","337553245607008448873221338029441013234926520731964336806560126782724785414"],["16853736834268786876042941031780969711696608609591930671822078708801671496699","10301961223620723678000822762993564784944558146636109921732836212171611076715"],["2617246782968760694138561284962139734656891720276224135544513168920682021628","16364946474284188296135808869100369892582265472908953976208441101597373069381"],["5047527586408938296593341407933150429561171694719012519315738203371702253646","3964187467964794733401241519254108752319902757893161343214806869491457152355"],["17807959911641820963525618205511364509955294123735276391935661195265788337002","3975382756848257281333579425513723079026474306385334323261217704691566464657"],["20100871870182870889820230286230756253445540962195545730543085619250661373408","5878908353267401783277702504327629387294110231568651153721793183676450984706"],["1209353706014049079354780337256963066821254331532643588879340163046791330158","22173769779384399500224649580864511722695934885333199884899978235642185576885"],["23073878691492266873099328194034505801133561819126885145167500382410689550922","6429384580760968459190442940882888698834006821602238827750405347606137848501"],["14089161584999274481546993176110356731343346749658873705888772671359699096126","25247850331565064240762137375152695694929637347062068809455279548909182785783"],["23506337820705402397820516672931579312952916044352039290767835954758360750147","17656041788479740006665146390953014589113439949332514477345436940073322249555"],["5706463462094981763744801073076885728546437735323196199869896344770636850261","17920372794505452788051145592545678986286240000455624578514650715936657637182"],["1174633551938897627380005159287364546537680103967121666238373284847696780423","8607949657633384130712163722169416534363457642489660205169616348632884182640"],["24307189014786664511647076385363972246695872754263928545682839547478785010620","15998093768486181784735384975975444132379123685060315150378292662579477540369"],["194971274391597935810986401978003780837862453245429329108785822829962595696","2276596883476362470397700142787926072363504415183562653039921418234911332594"],["28827312012565371205087995206319418678028446590322525088798349518713548995713","10418894418401763122814631161669638292852760097194912197528824504874353358659"],["25811242589996099464831978207387724600200140367235631801686665791935677160572","5969941262877187140917879327247468916908344035242519133614163031884658081800"],["27614363828480044343892987814773041154369367169234051676737404124511245109387","28786789588092685372837482792983016638910719097325262177132085901630159347718"],["13128278395789840764605480162662323056492557266715927882673851907729325031580","17628607483351195500324807615348751878766175624530634717860586526521824371503"],["21605436165515130017835115649226663789692902154371464233681497917856519343419","18700936551200624293627853559727791490175736063720140170272780928510518077680"],["13910027657403253549742816880608871397592628862563247219071018820716457167411","7073383024641753664698728445847991080956977835861619412205045018539880032596"],["6919600735572404598728169242019477342289638898725280371012438553789882701350","4260964664117671974946676194979269388387928937719681602344634371168957306582"],["752488450151855746357346541815561848247595760925555111629590683139821895353","675521020105579150815538485955079140884261743197931723674041084541391285248"],["24084647194047573305889411620238737202613016548859073451093358952121632361489","9753388580994647919957050282164625185246626531096291662981913157314009624697"],["5179204773623329487737565060904285964743727449355174173164456928007142856365","17754382132881693576110989792988679834812629974775716341926109874963341829557"],["10983394086928127149655056702421740604450473777671657164188828417751960963822","1614121970403313788342556357845010822409888904956820252994186231486995151492"],["9479065251574193400459423228180516483999857881216315061294835531463868424441","2017180463538465418452814579910712412553843448994784830167159778263118453416"],["11318917884137780938618058206732365901524075477676067181782995793317909417343","19172759394210788571469565291088361631405228297793720209819826422056982280169"],["20187646757190242349261892371907266567911956648141355168340685016765313218893","13660603016009322639415281961983029194844072988928820884618518056502110820122"],["21635483120665398809477750371860057226284303024649354424409768884968166734436","20150854811914427437588424926523634815147776488404826712506305767869057344568"],["12194636930990731749045107011495418889848416050986442969665177303250409143933","28543576198527689185852470765885802974046031302332516079270257310476834374169"],["17986200856254347631545414734288936334204957605405522839122564058774861698233","27488384341555376978896224273127635876469214753563818968386410603224511201119"],["18189189240289868439310092090215182450449388276612197773053144484561831285417","27542996643893004219900924813566212555933959962377258753223119152971139577476"],["25922147474247537018862677339117191027383860043372895923518332254324034091039","20190703161878798736873885780107143245358517362465197065691005708338479440987"],["6426994711283534719434526530858962991366425647480645522647461019264083762171","2051214562637757576904009612816339039861322173996128711894591193305696784608"],["4281255332788731199582211619465461891671254507202887560491009839191289116356","3729558034756272046490207497484325144049547885687531521893139884266743794134"],["27594890184453113034898425459325768962905315977799670458050786543108073566409","5747134971676836746886033601227176868461394915998024307061860550799103056564"],["11916527148073658169956146545523421010998696403571245765286411213841706099605","11476107621470505720046922669353128268958106556593611715718220662958829719067"],["19227120234313443335464239757438705789826077446760062649201029298492538719231","14308150081898888775282702465535391281240029998683329783443270772261600940468"],["17947529411566248555913336676096963668545365560709013314927098169620263259357","6178447772649558513624220488412326220568149664593716558149942117044223143850"],["25018374094106900071886153096531263128297162558574176450498766533290087732279","3503755074616720988673310802912278585305614711518052097864157347775436671341"],["23763293609774020533682407041678569761145893309552928472321892591330956470783","20131040890248536786355910852610236931223706898059006459348402842749032010914"],["10597898519703413038142285534668479665330567166257401060395121252429290831248","14011361547315128416706942669193653745047036587336625496707485280270033085429"],["2061064506236860542298988179162395794828159409221065874043833815986646188547","6112573161725908651531611581462278807134798705002174938496256065454448304340"],["3663781889068777575622347167355741014504021808115886404107812521906590225655","14936556140262006929100798137008351572987156624074613854332949219622541136833"],["3442402157175054845401084356449474298017493590973716410101456991668313963511","16865608571918959040196669351870729979927014012109880561291530750400706034680"],["18615110802438152249976984719126275754624516165030972434307620213374021224768","14959704170519198067011116018806462130955031499820620595610685230903624831597"],["28778757307429603423966020434389636253298429863252878455572846054430927833133","782281202080940449892963863111298830818771041227547169844406369269196612661"],["704753095760557859795280959789826189934477873233429941889722638727764491659","12742837061506233581219904830121068501880737955668047055328951202157196034710"],["28493013706454683984736539751052898000909538460618831614124780946584697809848","5245554653274143314039869732183230786902311503238368563902230285892451817891"],["8418190919846457073960882530838888233743678284338654559595161329951743330611","18700947403000005215180200347652191378690077386417487647110473684372321419963"],["11486801787103674158328278101424165471655372564342856674964139805662816058699","2097468576376206496849805805297430484520646647566112391472186359177741972391"],["13247604206505434121325274401378878284739676301879119625779162947782976176587","8105155475510453495224845958172250570251634465024000437582878532732690004494"],["9967665317251525992159905197404159634925069487776481836308146142966054306676","21085862588629361058406026075087089237940083184077860971475324551394062161698"],["16774618407008374172249501739220961251468477018137883303377953285303371462563","16263675134408384576378667633472449371088142766290993086639551734186908686859"],["12283244030814156052595911059589252758651319538674869877909834674607756265441","10406270775236071697617363283078025657405817298345103906804291885213314416408"],["961900141027393283688720929371665902555364432692417033892392661452699217428","19627903644734434066036623702665570130051393774635978265187635881482589868581"],["20218493228989518980625646772012435200795139136991920310555528084372828111887","20480260588906780783715544582380332264949139216615375063717453550178713029121"],["12152651945278781886417813900797879476178699866360026902664597157143364057206","23195345713625793332441420026801611035215437250417313590264545271858562856257"],["3007422641198352992150808295073449284792569649620367060409314099591799184700","18446921240518076834936310467494686326340746734401593093002374923419449284648"],["25374068264618138403859286958914524555615151827677119595916232064563240149329","9182728007481071234864870866438814983453149308703105253220627714663797911895"],["1962979468923198621712957445585421237340440579306379209451639899563304697564","12380991739330788485216812552035138950699156915742636993902262069885650794132"],["13813063655016569432097416090757039979311009724379115904213654028587110327409","27687286686240476668618618863172402835612742198389426932091191172384912947196"],["12523738890050686310792433404356935859301725241274797004839691180892000616429","20306731798424841344948722379486691511836608170144308333180033306128920283132"],["14205136045606398891498673940405669186487300867736732640562841021649032044040","23943365123040755027042837725012006615706907130860424615417700377028223787541"],["19700050790171017137918858966951447475851159939674623879448621249550388200523","26014278268834539138849667425098242656675729161292197145762536878686111918996"],["28650177586578105222764806625902132440760139867849881208859211988459489148396","3635036387898792162968416560796529254674451810996334146397069065971868951839"],["7953483694658476540860394476467779080407561435499976732447135801490880784879","23505684472314539549941321239039649424250134985404986996692245459871025753066"],["24418187395806601590577782005444606616236362877320759347205982982596776201444","6721835836908248010593323332111924582666605939285555363020158688179824424308"],["5613306947258628527227137860851984108650866086811081977079857641629645594562","4229785703158056276318786076132321759938327510451153014492719932599982015697"],["26314463096373637703682384666324285208410449488577859465526048532270149951040","4279725350797636472330303022551363485254522906483255280978114795856730708981"],["20493317545915547329136224593627828019087474879256871022108811579121705420656","14172112493995308530339541535524135221524966529565356892633768436884000026914"],["8111201033894183896550856239500560905120973625155329978606054961027172795850","7611755285664671895229167698773435011574626618147196626847492973192855881907"],["1435839900200788042060261174698686516950825007198611438946644534622115167747","12370042672029806178575790444619428799040511955484811401204270135579959148331"],["21633989211030653236531766987710299399064087176507599729040106417700925818157","17710352121246118223868549925316404349163925385305043650528023918281778311720"],["3563467357515354226461815102811572652983978402106448025365366194058244740501","3144555695137269213459698142857820561737092111372718406175540305331680467098"],["13702965915963810751110854830573184069626303760320290024497241843966663399058","8726206980480073650367421199892117388510039176443146433257199278966426015325"],["8508643006419213901923426099986843962205651705153548884860930239689133970266","9583262612342407238630900383739280970594964100031088994743711786027777808029"],["28750082077901572234135189121368213793573867866692155291846816312244869859140","12167389598626965530949752820409463500639864853525599451060904484075967046283"],["1907883304463453472078639910071985414640098154631359185333100026248543590969","28760822290919374121780973853973827857785009883515440826131158309437117192683"],["11023303287964069330787316619589688495791431241777326168853719466401423736104","23714962950691347814570106780966629036745417571318520770637597677674924298195"],["17639712675866153246250592723093125933409692137865786689798921370936111843177","28662562214145310702792882410049039646018569775974263500184289247722978195537"],["9702836577282197451880588454604548964924676165414288496772349739112030067561","5536709831576648255751109721515074979880925065982877124625604359053286673097"],["5590149315763617760843796361958208517130207899480591318138822274659807617606","3161877146425869849060758145046427198451174009036400714123760127484557501925"],["23533918619581205671077195871804326101405371413426855795065536451823670596017","15514857927538747521802692514534389719729795838384952132010122686896205598959"],["10145201086302851009756316904668267034988833849973965247311913078308855524424","12054200930085593720919221693995112699473769139903848521285606394849171377029"],["17285885040111613353727887550000667590131953071447808474946512362499402170841","5945078974856555051239520796906832485529293932101852873656356647456235819008"],["1286964368797681556597903755631940517830073935257396561865236496565242048240","5119528097106478028525105737088810777855124515238267485578281377952797795870"],["1068901742082268684211752071745154202764748938272454908134229318929830754837","680465722007031813358850055394967114679321566179690147465111362902387930804"],["11791501136611021371810543977116485987080290757602667916334389770176972004739","6779196736799768122266352554104180690681714546744096485441988421043383676946"],["14662188069222876243897285474941362791901260619750394835893281086518507992636","3147112931858274524919215880292497123518865281784134771647600399274653228741"],["20705183482516859940824054797021075309111163252893175792115704012598296202359","9251540510611071019029935605951546902283743484557886274624342681861512237003"],["19100321961888385784960025470047776811922737392092950025793968927388899677865","26154738881530430549143995596108964046293912089240869440703387162909057778521"],["19447627206922759637317560539704259528060610308989567369051226926358397313001","13109058505093644377042066617135133992188225005358790111421544654354234677976"],["11394100158323130782083695014858706086032177816627911664864602238475359303909","16667431823137277565617187401651657887158426648763460741380961090106592634296"],["14927870602213693303452103921545740791400403942884368374260765483754540001787","2890516257282261993058986905351305381086186420290879322071390291105694964147"],["23742188954923800023527490723418908164305420568516988038265195973006206187144","17054151016688045373432290554970321778502135181084719936352061246643067268288"],["8535067048579062373519616756137657694176873925771778190343832496133241826138","12966884722181905760522390312293658659309649499429447641966689829106662524913"],["25545731208216895924658461347378628832393733687536170115316562889313436938133","7093792864290928408207458058716461344579432491555513151901845573271165493668"],["16944973268175819513326516534927817085360366455984362831770676492538899693237","18601180517964974969373084464027648436847947468833703791121763016944673210783"],["3836085396100542178672490828615127896853183165049495373556842315820819330102","24279361549400165545314649101672537172888391256347183171641230958593032914521"],["22459554685657759844943136123526298158805396406608645371303752176478328772483","22373866480739246917483407481923272136129203891949308946540603865898380452615"],["28651417573199748719270652485942664655369457981962663917718140534286520279708","27481971926651115447835089076262308789699028096096760500804825699971998504526"],["42177865751302033550274508068833314098122850368945180529130406421546261158","7622649491576757867817297626419906879563832030221794817760544011716919722597"],["9275345782688200273036178532775910337859384022510566786411729694137412066856","16558945271654416482331789069135821773219357834619427528427477828945798896156"],["22474832410892262789560568978576785709339214480094180626902722071265236702730","9683345248913549591161398575100369914662419655319947650888819338124343600639"],["27730216196549149539730184099645149822937591540369568724694054751864986759303","1429912606542572436877985075225190957277320071863864660476802771600422097156"],["12329736802599730434540389416075212099952934158341577631264203601336612598483","9252020825081591073690297528671186852355569065410093850035416280231003634743"],["17457560066135257362661040157649350236189581610643871107988767763164423607125","5587894587692548396823133533046311157038861707226881391639311890600071171606"],["9913792552915116714805162267983642708482939990341301397028895454164973227384","24814384874019036952573132188616147183778850811907693320029129086395673762963"],["3868777618689240191459748054816276407747980598875730590418409058860254309485","19670671656529466962479783612330667838178067069527900681949529854885564602241"],["475300644823554015820884018639853241698404745121591721586320239467939901231","9572449398726575893030301362539980284041805698018083355722929585625693888341"],["11100341925224715458709671666095336737974212299316529180803452358729595740239","19270219573843594987582018171492553853878289867456972683389556499829474955473"],["8328826540545349886226107258878936616111105382263004068976894042005430503520","26720722230707929467627316013764461370358709992596539871762673719610770999919"],["660156286863923924123802901226286644126768896190976284904176079553468622125","17810291737749698451444426776497847092863932116198020029750597786087337950272"],["10002634090091757633842273560804888455255015837012341607179321566508427301736","5831990621791030511731804727482229395224728170044153155760982601891043693759"],["22985740606104777079005229126163392625242643345912833382249052437626039889348","10857626341012020364937296057901208654513132673672792799686597761523554948570"],["8373580005864473133192824174822779369448641905186061295132777025996432611163","21020797859828339271507713610016951239275687134999326455997308617387781818172"],["17144363186026237437348653442923573250940036615361540362640052906783833995542","16249067613880334542632994895974950115065092015998574615052328718253559837328"],["2843944251998871970366528311248536942145673715373657836320787416147962843851","5749099529630152846537158578564076772084319392959358272391689015490291040"],["3090732767894705403795205256460426784394791620516567793460698781877186115550","968150498135731885301082872200898505069543467856889739178410696151780607950"],["23695178784415113879761351107722619154643781327064342441571073242303505091448","10332166068248801589879579503076938682889461563648846696583907989711842086863"],["18117061437896321978140034089644979212384992182814279961748104213375921350373","9266695067273051338308699366167707624087007547038243039383231608388910051118"],["7105294252487699324037480300279128791862105928554132104663111651812543788769","26875787699704365333186300180199984243238314409322474035008045005127141917581"],["9933782522911185707392653515387282598111397422778100261061973771201402349878","23337772651218020608695166885813623125108226664178208489935840139318477070246"],["5557997192153878445200243162567511245800046974357020870334404881569785736155","18439727647969494243026675684894814807787623924365299173635604505195556826859"],["7876492689218001336409642596665367099221822915405817784561276861357882372769","44910476187432369099150118548000558209071660582869463966510415479881726199"],["21834881215674507709294771052889674815357470587331757212959798987931898904694","12478097321435686677297305824761597997449748453365268803097931729806973915272"],["11319079904890316410109961440073560744656715523233056617683696513938369221706","14918918799100618986972824517112307996722569170146029161836315181247236493185"],["1638723829061865868748425556715510702577026015363216876430528339519991033016","25579399872550850247534663146335985462417332330355329788531747664293670993147"],["24168123235752383807943685139478365261079513446083880078656463469999706222468","23293590327107301862263785661279000170988007833932477701361144970622059112614"],["1623931661810155658747218794187573197483208258075137857750651042317345134169","19135241329204429531460365773262287425938658333887764341101221920885196639999"],["28530534589284151456949447065403926051150991926397241360861385908563978338481","17628007464356236485094244389809353721078719171326303895994710555555104847024"],["2931636550346399018604879831670185117519277698360288760331187267371805310256","5836714217169609728274659741282338790508696869832405231762582073389930728784"],["1049123179541883044346584733216735524753763294552428957349907101018878011625","3128228215463845732686350513915125914392006884125497626692731738519245169612"],["5547285989250461664739558523191817635454598837659897352992252807628267445091","16568018196909723098193846886765532345149200610410889701734640386733553669611"],["25788265178402411048561952576516533817030924026296174616569625869660505352393","4686430335458584421351247794756215613206991329299925722861487729590910871943"],["27402907101078138038467153149334031657850952400132968260050005428749077112036","24773290981082036825662226525943992472617552898002545220986238888867558712271"],["8024508637354194718671057593724184543055441067152620538968950935426220616937","15419927680993243417735605065310940993450531977860773251389917515720679184512"],["28924509852206495616615961575772934120095817054120582042345094499819257959485","12558670210105236927758031983067929260903117945561890945974300302567578746935"],["19489642955321485361078982906524159036851341360239538180355574866205698246000","28560417038610315457605483129349748706217908269578878414736742865213968452358"],["81533525769741894787172668164097399386822304283013646596032718675577042975","20764434122440331439014895257582520264836415687620437166590985814199736480326"],["5206846995476336840872521372787748392015909833936518521974536442298455302554","25488712204723463007558533034987103486356004714345260650297511917085051957942"],["28697311336048832624303248219707902666060055989992404003285006765774825639572","4002075036038248516555276051554987016201907709032215449378786783154772957734"],["27023638379452128813589011720629104420031528916004545035895635439495175292870","6024862848614011529938048689668050377514739505501655938679577724617835154562"],["12172310420946137347948072079629485985201054878086905890587997990086887316839","9816111688719260929583205198034495075756787849370800124471015431875184200548"],["9677850975482835591718547945179471070771226924822708409281822571568858621431","26312002333167140193533723554809220574781305766408896688953912651408817401485"],["23981618968499497587718149642029271161024441100855874201358424632692060720077","23472083710610916088413595463792988648072518551805011590544489840078908377729"],["16824739673879132184730124625564527048468956273117628462554944083969999927971","2797667275714213214142817523044470463606938740667671714016034859727989775518"],["12960729691985394538476206756132642354608424974416017205568893324351009348905","26319399720615603953845470252500363508782998324450709784361023599952347132706"],["9721859987760205260092526834381243581025791854561935225572012979862674937076","21269436048242780838350629180589234939092396072332847606708872054308552682621"],["5413909815601196030908784315981767325842636137981609171028703785644881706056","6206242775316340182619984375589163597119247222635693147048024782962383446536"],["12590916928034168115684570790832708233158771447254568637931164079953436291754","18102656673136054471512912363841780436242019126449201583472882334194108863033"],["11630430924325838968387854835027314481920061500999795647995692199025563508620","21956202463021447786118018433361572924656348873913550600195110046384897413876"],["5513019301113032409592491657189921883050586253160006191149418762935600472895","13954843797486414877526122538878755827700415690483464655687465040090902155743"],["3904079045920485942671129284733917195018670490473364183035862649845011433755","7486457465738956154145555781957562488124669034315261703427024733007612341176"],["20093282179118408672281433823248095418316104022240929591941188177627653889316","3776162581310912694703788783905011815461567586336759120056562836856321748567"],["23313045261982219422122118892428007018473806310171429572401270050341800507511","14435946600279171957680186305730784576084803226557718103872086794169391366886"],["17968231194903570939044064532007323704513226467230086255250172290796180313259","22800907082454016647063382583236497002326099741720860386105492441554493858869"],["16649829272092348159999010810492260029241781883633571363718274444703659150529","19937707657100984072347975672615930195299643886135753302392487846539210922810"],["2662441689869728272241638319783940745943083342499427052788044356215257606183","10583877571273872064788341849259222264239542805455008526003557075653737357997"],["4514612950735474851190738367764361982071800343379105034426969195768378088383","26541933013326937695367878771706542962808586184672926486789175080442045884725"],["28831171212817242828039037610940216790657302185146476784436131266210433798790","20466078892631955861977418789600564117965846957150691808382620337154931833413"],["15259449917579579170079277971662962842378109585463837896607745931130484534285","11324935400540064781150708515053777753947583950814052108220152271388060686665"],["10034700125077283153929909037841187115666365017024230339394882784259539247617","28082547913514364681302512889305088963512034724704619467070641625403944690347"],["7151469448894711007881540953235160685336421050091752179049685127857932872228","18572855541708054659343650234755102153602949515820657214265859106921058068798"],["25070299224809373861693173418235269757021102914882903913618366932940842200138","25270225905605971091555383343398791886516902212813497145452356863561738528719"],["864426617415492477831750315984473288360611203866448232253746951764159814297","7542806491020830041158433323704144267677688587478501171735005949402923353518"],["21964512581504052475414274669147338115359114630948741434260786601553075503798","24470097792632083531378626023151197282178022221396761708320884873987508206815"],["2381178846193349461977591768113554736011124173046710839561708878996801234301","9981183555405332167180879435803425946632570872900581615263364051185629114507"],["756105133283700627951602497807225373748570207946865952800092254800622993376","25191607870896969551246484599032262113124964317248860845905156324541087181240"],["28581326186846394743108695992820418129372514027490728420112891574635609520293","8042701559801387619766535376726432885272821329529233006133823064589690281821"],["14878652834967111358329942619430832251529713861215857558931957599728930242030","23136546238684275496627053376494394645330272109481980658811758681526193229258"],["28639182803924182899130956133872134493102380174868330752490301721950826420016","576984852552392518636808977822588123019524167041630797810512236222281325598"],["14169021981613860302672115257479254503314538661691229476085652788090994665402","22362786074970618018048218864066512089088507987104197512465192693638734506972"],["24964833297168867995527619421830857174836732366327011290868882914169621822619","1892026292634439646939168158682268771207866418433727682483630118287391077471"],["6041687338513540439984301897235605874559000722256329509194650867610382940545","340358064036972956978175855333713449469602611472907545059550841342740676101"],["17654398911054123942800128892350265184089098760804742932063901340048031253583","5288037984452923473199983489495670263311359481600528628182082274905494659678"],["15903784362931856620287762807288564952208128685182791602254127455821353770730","1481115570689939225360822346185812210138532344347181288109125127393388134564"],["158017931999197817462359212107295489456322599007464123167319723758726592583","1478187028492422029697741080791351824337000523368905099757791058284163382626"],["7450631783551087555950454515654305972967688297238047997771881380712330160809","25701924666381254596203915845735837536656914529112597317815507074817704644660"],["20125442010494114309689494917013262940950847329153210870222642073871340517057","22655599233850135639250865775597923147161766189323050630390787401173304443693"],["13186016266422169583075035880597749642196659858400860469639608548738147236448","2693972343119419693297214452698526342650153078809694398837126340407299586708"],["22246900118246280159470265345954174769457725549569452331355846473222684949898","10373981240880536656402600887694297575306879631566068904290883093794073061241"],["14631759875397587650683163904341259159541070823977867771782424156246138155447","11099201352516387983438390792708223946651431141955804461009036379540619951732"],["16767757622134269825452188907506957576771084417444927746710408007016881184063","6759388501386788378316226010403150080609508142866881002851961071903059615908"],["16347754169197960266301479013592702765217438803092172309649694783842667932836","16067360227180737154207838034815881897598677797883912852550794297047992499728"],["6308952288338623255857487766310876099066073753135952032650780569461960420904","18146733665409278916189033248912646429318938901295880547411595321110657307174"],["18061253944888967062124470985682528571602937955892472550272707148501804925636","6206129811555332310642845014231113889465023414934608134581916252116167815722"],["12847801239240848182769263758120377735761409596588672756519975613781928134921","6954677646413172546934867628312412302920870624326580417113983349823404624932"],["13184463308259903854505006392772759197800130946631258175164748562084584371387","575782293264617482123252077748929994908354320713326506609214043672801389295"],["10871479861807743771718645826584732391536339684575939392973445836155447086554","2268071926449969353516304139686605522522735547846939229500185517390452319275"],["60498761963296639025317498895246797649361687504348924507324136783544141592","24710791333433567826853604751070305686326582612889201768194221757516235383937"],["24133178363213651794833594022989762849579255409603620144541549266900152724908","20924864625802327132173546022229233451695143606188692214964881973264842201522"],["8865731368412684900991434194143810787683831285389840517948292157147681949199","28437120749243365622209510067615628717293693464719009888387202223114611602285"],["7530809517555764809246264598375738834943297498302885375426786277780465678545","12177303095148195572096188076610206569099085783917469226781938871693117077085"],["11684544212719232038936663831740429303031916731488364401983345678638435136660","5312035982029644903794914946839444698553859658950965075993990096796631318637"],["15234367326387115624799416095100117086878029794320895321237937021071070423156","1660194245892610801861546777360461352408086956265025748804661729154099459055"],["15025921274993798839150820552827284723689163770949852229107446404931301687868","2461229054455422132698323802026245419239251864521612144812325612010498473913"],["18203263513846853244087503572764871707571008912952921419995316106699151898654","11556817532159153251677025285603691449552299251397418105016559133434898103814"],["28878313478742244685502496363028947937306397172083600809190181913704313174199","18541900650444225803333232277517068345451064460864655357485590599885205596592"],["12758713062262055922307162994779422674064951429677020747369272787663883501508","20569356380023664072731232865977512746378588192598301667353080292020944493687"],["7189901809333094761502474319520669334649266432762299137734284816948129032920","17090047359760783945635928731398139729431953868193946110347814558972208958539"],["11812579996645083407048280089428892052376731424240183602923689989394490815740","24071015801651711775139082973349642780223510498406272636533496463665879036215"],["15394016758945118448045780378601989661314526984975714844283624072251059909476","22063811544785885665863244311375569737041548541008778952226210585088708138944"],["1386782429896636091120899358884988303174301034387831384466995877636426903480","12532994323912172691552823902914826114106723062791039526021786991910750287749"],["9891356356095385226559038782932990151582120181483656051904162607553857200630","216206086161505649040573724896690191276163386801316226072273167247827403598"],["22893612816762707731615347954806118921146296968118795140160155655239339341066","16327300350800920376452105667479926900907478291764679819201364032303750177928"],["19680149071904334968939551401106509526864705081275177690021415084595980963212","21065458968113604020704594206713607711174817927144391799473193525513831437026"],["12769827171979641980830049015460811315674271864979353908153205430787831766868","8081307954749262298844106469013992812819123178872238769194612804636750385134"],["18816546319403749524001477697545038335445357167356472875851913378989299313872","26629273507259675115136818593422700101542656715816140366199677964370691744375"],["23631386003787816261408112761253078316665592359130274355681995869578945453188","10813411877133299449960986265462706535865132196615356046991696873109591533827"],["6482342787483151744544123930863254956891026551879301426622780631452370486736","2477227458835529232413090175028599497754659055691101788411297180904479242354"],["25633383014987393490879858189667884048352643247931193926016796511782587788672","23573035154221028981664541435238100191230470714573662857520686571689689146259"],["15809628410416755963248350439870483318156064402256484167067734087311791480376","20860280125622101898980340252544453270578462234646819842936770422915595724165"],["3071713573906005086058837128375590154119055241954414946513920731247517822403","1575544013129683400713898041819244923731554636288389423212289773677786901367"],["9712615721668618717329993550091058821640994282217761043414920410164781295273","9774389227875547043717379800227835329085906544364724920557341161472743021568"],["12058083435142957499738813709872409129747046040735108583526312440646861998965","17004406947902133614449868947972162985592618207944995020043181273092121368330"],["6699966843057864525786623803783857832302950293084334071820067258597884719520","21108716988302060743902777141928209314893032122910955760398694886680890210387"],["20604869820627586647642644517131011620611690633632867884304155386128995613958","13839481456981463424378840777864283556932607528456003253338024234743964881224"],["27726631270170323206160479653849078052981854777735900636847744394208866670755","9616653183140253351145319669857823877421179777114916384022032335012730457534"],["23017090421618049993553126444989930381705694221032066965399147920377842572463","7669799568018700648869979629959812281982411253737926453002764112100597756005"],["12628305489862069189874901394961678320090379086367798562330485457315413674488","284241539437348568330145840905132166231264368489426173889660973912770385845"],["24790631329254914598418747257043050973122264181915192388105695654759822055123","78287515894130677270486752433533688839061835626646618714239077275433341779"],["7323724982424194578029105045891933543813119890046184460752286642113227917609","8947173548786214938601722692469172492772368325845081563847599697631704744707"],["12517632296203104560597345902392086277942684301052764420869906303068309848176","6317248228116316685111950612838084218778726478328539188142523461316046129690"],["19393014605070939750036196119431419779271989498572984359334445679636885070194","27504538760768728562165132330472040582734210221615234299762854859687318983825"],["21784003493688625107685389089022151679691466697159003072822376957809893734968","1908256209510824669800929006315691696717769985198136755537704911070301553610"],["8872269403070826245774832841070722337130506767521118545274279297363194604017","8968466462183109192997587059294780068451553799866232439993345945521056673729"],["21067829120583123226613275931972622829669378673134371586463846005874552068922","27939017758415534269925416958309931286073000559695019181833380457686972720929"],["22283126960333683149757881783743590111039727780636516618510305616654306016260","24901102380492420233149524195081984557602534449481912166797748744142003231611"],["18809183534665122282296884697497387018332682183882061170365972465386932054278","28103796101213513818270827827897871418698253995920897491562221486562862904340"],["25724772209836189248644162956268004025941255191222238491075512828565784699688","8694196488070770472171214013120077735170589694329476629979609873769060521546"],["5482198259464645918481410533040038256492436051900019599980061023077155377104","7944318848346545417470256899415816163999052877888365580440837008454976079303"],["634569261251969046837839916380722584354673822553934378179200973671458296175","9858724344046897355622240562538830749063076518716120348894616933119837992871"],["1870022310847460614788183595666144146585986177071252599552419338356476791517","26231909544891771070730250652737139020393053760669943238474642158519640135305"],["16694640219145615770135011479601959015064366322753277956647030285436013810053","14662973570776508138303662577764146506124647688115712266795717200284990491027"],["4417363777595243732699025300190508601947173644869521861597952420939619243672","1513476161829092295779319509509992358407540708206861961430079104390138841905"],["16636141953208816180909947308294427389555464444125837747299410142989608684590","14794715017328904047124697750345980597676357113622273055446178534510737521565"],["7005840249412162876539661344063116802255438527600646935684224712422355488354","52246133125195578961044894078914716395061677950996714074542024516109484138"],["26331100249516838268308522830658068676358880196437724820667046525839993431986","18911406885392785136734766592640576639438967852822450610438139629242342608371"],["13257143245960595051906499856402946334074493077791866553912667550042505180426","2861891161480153583818058319721897422633227924120866156459411159230166826139"],["19452749096027695336754221038973162130148864239944372201917938841921290019630","2552712364090043362037442750716289869678130520126116268099305739267391872386"],["8448061780322941304052275422315326219654864508960981080024882789642955942003","23116444309827298528146630396920650334919549681119059503493249264271524373468"],["17798454528627044540772209906144297640455336777474081742933920601778448350233","7710854069548453302501046653708972363836466874648382723715995762024793995093"],["24133738099011389079413730050722019682284971194001518317642175186580328445226","1612989974122010575961499952907449934102744830609700839977589834712090650480"],["22695934629120292507300793614492564568206380576067261490817143090137336861324","19293840674330542224665919293062760119468679998603537369645479421564001625497"],["11685215866974829165766127269005501485070169564784834782882777024776811735703","25564153688423393264662830133467205208113778407970974717581580484009291983444"],["2089276062549980069444555934502683390695867388930012245264545003628733044946","2564819396495874484178082928181609794338481435948535478725962499875438627541"],["25063328683687584178539188185455206886574671005531621403336561113220080796186","8502817447817923813278681867255390391505302631417742727537961292859574304519"],["15618770496575358904976502549756347281688587887830686468798136454742796297379","6416111124236934248290644348891642369246117184985278630572943392095801816404"],["6281486123840640997810182246458291044476597721867926135828027976011514371881","18784207088945773700800062412210278513848917688448676265024960772021755399193"],["28028728074427834841939349978151916563147383881428610371070069701949914918113","20826991612528236770132441603324694337477696393264937355412628484659025639568"],["11746813983480715227799982781615423099371168788125709670635637377052634836112","2050379370071586018937661256381979561364395645976779377891866144840457400410"],["10396045528402498262198148862111545555153699478919511082913699868209376866564","15131146539353070899964147326648254531951476989862194070758787365273698014565"],["5875754166932661382530656858756134964308295746816409836222066062938739413585","13898398616770849567639484853316145971953093775142309480056966414406762807164"],["12747339867011982843393323905067757342834116037631432716980481833677786519696","778336138718316438386000165206935100625472082941739741761844004420221245625"],["7546343188897720627684012841879522349382978362554706741768898942757471003292","23627400436675724284642256684619993241828432714629639948747625388601374526684"],["19006062866761881078298171930342062833310072354400794586447625509603992209332","24770468772780185670477877991667095486717575247882668276817668913202802980432"],["7430652221035868719535113784370864083831517691215508095921030319894628696593","10148633434831301014355817556046727670874119087698917532311680376621995710609"],["1163031033600631854975756170619179339920896537916183602649880939199873456882","23728751745378858993955591257306504429649203753206102740167549441528770283814"],["18007169476771396765299114028425053130596460822878051476274167993721949335663","25379100431572577456480937700430602636693691057786335646989720147123843623193"],["5685011962875431872935333282360039295912757854542225248932582608442137019562","14677611298731104863976821409845521731153767236318169334762709797916323530553"],["11359266667101186524933036948836486552180192652264797290265305374313844437356","10363351736289091597308842798616746384433248835379219567290564422108979309993"],["19374404522830069823273203145730537924080523195450411289525709211250460656589","6633032991668869195594446986942013443258171219808564486350207399649628769548"],["13500167471278599521242978159034409617311773783139567311146915047162364210628","13461519626106612544088182958401538601812755397913868203851233687589074558605"],["10468264023964937988866085833660461201842508224009808492637184314346479101384","14673032294364965689778462130262960008374218553947591589208942026611720619743"],["4019186489897984335985887876910523233826353856721880223455506226130378438207","9577073001183984779669588609113988173942241963237761292345239735696776428262"],["16379361132030006251933180317668017348965007015667052856029958319580995781235","6651537167372974013718911231291672415769468551695878650181150326198184992015"],["26559031944327114550174916750493091998396605718388660111959930931006582666872","9973515618067234271453773070625940728496161831990597882813892870771400447314"],["9130344967849148335030104422226150668559052627095483323330079894717930602011","23337526910929642994251499840994595131788531060360667256532621722070952933675"],["21445372883330761625144816190849058478739683871357013596039328546384996278204","23122707546092661294733621618500864057965070699141696705311360062861989624719"],["130002311500558742877776051056760456796850894324748312227869394437839533211","18620260681549624772506979809043296080954561427456126547029261951166812684450"],["26210225907783959480651921873588447700410728648569541997064449554336599272362","1817535436134125561613621408445532111679723481958029658816772128323530114218"],["922274405273106982011949437016346953892006892994751226004185772883585648435","4854674145813594696565479467468897403928849748444666585913250691024205714973"],["9900136292314440953153643696021048264078343489367103512772746909583739099380","9681866505055406901634337798361290641492369994708597649934684416530333515019"],["10308193232310398565429592813096350533638207103823373291903646990841011732518","15517294004399874915253426665404056750255402730812811620735904942206459541365"],["2950955233305850313824263918673033790766501374059249829031130370753407559304","28920499438969784102570418389077636328857530207931111573161735598629400587633"],["17342480464362658511156035880096028796247775448670935561609114826501793216128","28747106615068008690233127176564352276388313703460825725023080213065864898833"],["10104537856693659553807336943667628922951443606556881864319667988798538046704","18273725924412597589439039809356510117653048995622366796240541671378476278909"],["24075521958493199958152432148183217169546132223248988246250454162289341300379","12742415340308046599807173017848861356120463490433804871341620982033120816696"],["8745343540592582422580534539475185722928851076796135018232644936932800905188","11725691413763446849321698960727905824295143293742961047832466673704292410070"],["4577267509740428936207074906499776033705433190735020176132305363210033994059","6910751305425644561079020333438086049107166208054608991541587381067047599472"],["14120822751967975388895102233262091912763204419414208236645924650685604153380","26026405495896120194044057872026555721380140516194342010743507748025208762992"],["2033676606796397627870245892816002109908507230894602708215228659046647856097","5105857587635722391742904981818008679294709727199115675304169411893832751154"],["26454574253751975751486267524126649573940607851870215325823461442171178547742","16435245522954670223175219256533673982294397889090709905649893603661034672728"],["23995968764708790493133297429309751597685010427943636602102897630759926724953","24000482074765135946863877658910446690391784407715990734643802723971298625064"],["24293936805734634509816661936456663268521644810785353282687359396785321631945","19811662679493646735304739832110877416252979006623940619279066758777502018544"],["3056523425021327759632150412695470728380727246079665919351821661759625850278","27385661909838483488980470776152233220048317860671255391738107813437910862050"],["20332695860319409883868463207459382412871558056851443350648626191100123010324","7665634832946228031836590765872949589313698071105141333543502159960762060617"],["19594124193527776101997312003403772966798785863518609646947645338921152836802","19645005956901147157295210749673808170630879069552851938333280991349756168076"],["9840432292959396098235462174906940912220826103217931689016731774717287035739","4331842656576782525492926041853913302118445756341029653188939622127419662890"],["28917794772342907506746748652208805509707463299217714371547018465046733675431","1992292520226693234474779683639776733548500633755367338037165288672277916236"],["22610479878758776748123613114793662095534648118491400605203646035645221634077","14859632901605877028996959833296472220973853353318447627057112307758325608587"],["27303008847132095645968575539141072231512989921097903555705021947352016701253","21640471451656281484627166894177736486912763987971758530843226390286247548557"],["7051690574534350389047977050862992018738123807528422130764382903713368121736","22825768112359835738657384222566307501837547008568577110217536971984874516321"],["1832774451844750138539132380808680749971120143249255052555901118663107177690","20899677865403641849328058887370239791756661492478060899261987249814823019355"],["27918939941417953719680019056104260809387643014624100169727600474512641448841","1321138966308344521005648175010340651193970496257525623657670286671824106936"],["4778829056501517723675699082526566326258756611608141902532163426128161712932","10389154824816050851519303169962190116219870914653458471650948982910832932023"],["19722487298893988055989264194173044800583855826451794170483963120263404016847","17812329804936881335055142582580206835767433968432011672498073092386100514895"],["10661168851504623260660950868490511158978402549000755258824854869787319538393","13064618085822985627638202067183388389958281091993443011925252710514850208585"],["20437524107108677278920905283424879781700464675076778305810465235844130473674","5442772878321504455529886269504145663177888497611619395368328421117529210100"],["14676745953097336244987479832783291012636429900203439187708280942352968909740","24858204034470038237225023689195087656813309925170086288255870102482611557339"],["28719004431672901825131180968685121786022939614182403780032465120934953351356","25179109880931606697378361769245921215113175033481277496907338689045275139908"],["4257984423879637809426734491220618174465564031076051563712538561358925917809","8370823253451021020312257028950745934965936394666202795784280294997601749357"],["4664285186098209547148323264952631238047874738476902598453576147738109756146","8423343813409506270110755985311519017548796789073466762850142864560527617586"],["4442094975666074165923406983445293030682866245983623578746038139627908398723","4539778520466545169795102893669062198026061174985209359179794569654757546900"],["27994215904861992460757779324237379175705679895016092761070030085301983095298","3231871362528388076774438979018816282188642291754956412899196726289005446854"],["3198803182455793348161184157948005511343340429814199787260211822400311947269","8654972422803483985271276858946878883643551670073238183025017799077149330239"],["23066784936403900006702026681157228682443048851068064194552342761880642103950","25242550919281895545548653555990438442258393019902574273174384194453511534109"],["17735718366934121051059890888770089464561379361075823485551623578799885305180","18737858510873474470631001602732684803544945535847009711195801996196428357561"],["14415833349480171352351153922773952758414508170475594862563473436295372263455","18639148103594892434276746102378920258543411271481978980266212893070060512899"],["20233441464080615741708313344550651738419569551679578741469335833986785767517","20594732041841846577422748757629083156855817028178641509808522925304280590284"],["17508455236877242412599360885379335751167867002172855986062069843836750017572","28170981156407625411996791944410320176766318233713739218105712937916540326510"],["22891147262005388653942175672776955238603159285634452654530206855895400863865","2588018009036610551850749019264626966059916259557014307174433695409160003867"],["22518242029670230565985832965929633789985807712339358264517313715690681812097","24035080414496629014118604979326452930102687629973945353858021897354563444326"],["9217947547996846602608163250836257465040162336059402222933340948203240172052","17217124262948113781545320568253908505500939606914176826921981014536737637133"],["20060515618818083687777924352835608506505275586937507507695650355017230894193","6080157676023135632654977864854829221260635348816801635496008386229867832194"],["26728661476197294211531509723433222470501574121821709028501366052650980577745","28662344958040654821612814051705653399991649741199223671472604682766237025419"],["7028464041134531053806565673944516045885666935076377802209203601088643909341","9656534608204264979536868935712943120337107398862453456097016456315380858764"],["3254295714539253212626635660874492935198677827918942068045668872702159568381","2552608910190404542113798366377211270367864605833074574682692710038140865581"],["27862955188693470491740430025063868080620449364469015069422135319831320329944","14344264565935349523375161403045108409174871955403387504933546412589209061389"],["9812884183055840761532700930159902164512970865460923419939239522918293538664","19446613395925963944548536558072105148283597124477025434244725527095011370886"],["11560773122473698046211089666321213690793131704043497902004094314583139659919","19735447075153081217057952576571220676838936218782712464583112063435124585515"],["10196701234336707435795044664552994980209639789838510373383803456038359925286","11291873657345027316587834201913864740832448437605776494235373992024375111584"],["24093500552112317898853171854887731642018426710700682901989092152371097141057","5858929437393547039461237540537210849172721336462920149682776518753542990835"],["14267707764024833351936925401828237468521497573356951104000887342605504399153","26102505920712611522401716247337662569086391325289678425340578923234833188091"],["13018453654053504165106710797003209391989640785818994997415687313494285467614","27978699039847119410447320434902818093687051876784878341929480353934555447289"],["12761823283000090851176082661110044201547879974885754120860763718279257540148","25563429564947013153455371671826114721856742969832602207600057011872533224145"],["16636483170169103982180175498697539666977555474350975331740704546908382589817","13712111996690418051898339112605465958693008288862319860260182309805652545686"],["28589762048084378462677171938998228283223584419511593892029700463489716882096","8939815344515387610812191056286552819229859020111158457221394708002762223868"],["26426551878724402517009113212603240884291092956962697334651131273114589253253","11487574411483567810936693833706863251446797452428465827687674302756589347101"],["9914397075775050446728323419574023222280458789695342228168920292507607857920","5821821862908662759282573524411140806072033824960803471004505889703309999037"],["4566197954816650537224502860848036132362779635911506159457244523521047835334","4068500712793209382628772721453913070967560116417063244219192371097173249336"],["21011295938925849419422066899121952013510504321129725586201057902771404589999","16757536837252009197839366802101494332933544464904758961410516105952846447960"],["5092608019427344880713686422229807654369418820342929497638838359185901875735","21936468760456299844002969087553966034295594410555569254017188680328822725909"],["9613712597053126015339505104844536557519874486585830882796401572532398246375","17057832199356436594449897079785750708928084427443678713639258233247066915986"],["28302844274943056697333103887043884260029170468771783359725642796510427892764","9227451700902081375417452579354096015724387513752939495294758063521689382755"],["1689759305012506961879910163113792677948700770363512659070813100360971741465","21052235446503763799898386546045997161940802367301608691903023195798885012708"],["21050889088162841821122698773595923421081421468810553261435639752929116229049","15799725436389043170380299987123105153659164670106701475681409256512891674917"],["5689796057120767199515103926208586730192136727894168968080439080253077896","20754650726608451971073838274621383766643997894841696360277834992330163944272"],["23340455694099944733022351671194134246824276484254715996960468438399974833067","5788404363702369661419580231448495890039271569626110576126886001071321442413"],["4612694010006338119779351413918294052890887588470819264622220046653084638303","14212418529670785716506559993025610347508175233052716250034070104773994108245"],["16678454970500661713463202510768038233725113047554572775639612844677242493748","28451559542179069059237137573689398190467455707555372562440134390882825815226"],["7190888483674943379454729917060536300481049841658190159025855493522985191275","699107627168858297946573704698271456270041140728848237859054728700764820156"],["14716705852940076945567279038061910354276311060027625784357838147962764913599","11955089418617362563072253884816640704549081717624959703881991986858629790793"],["12443268371261609352077515535824839360571891273998020739746667520852941358376","11905357112008802174442501469983075151760221335888635937514515437411185660679"],["23708721078191349298538487592298443335806351472647496391660779075509888389784","28223011828441242078598076636952457657751014849475749151482870343358035706021"],["3345658469067298245777080224297791887328662590009634209060898717074780952887","14450599338392052616478476433452703992196898193920512869658190318918537901553"],["6122093519007467647760649079938929293006690134275116643429055030254606903009","9203603636507910159286731579884504168846157401346090536941400473839807175794"],["27141421018296581334479219444825801363037579792387143010692112016734898154097","27697947873233196454665413947224815267829607451659681512194106358535859925044"],["15048780920657788424319304106357214942070198798781837782769139712633373750611","18307601294764688745773809372996860508637120331401431134438869645727641268426"],["19040633184681332085294253796225166445475961460917486645231251724426686389546","16546801425619318774244988318639847921885911173346903937883958925971441627178"],["2265924783771183102093804124094031922519490574524672172657519727570162398065","3160361074670047964615825649126047845534013590227817130818663184826254142200"],["1936548878430865864421850123677773799448213767359852406509979627659162730192","2497508354529455034036379310545630013111400631103436318319722357183262571511"],["18669630726780215798117337951709822251272197615759741658587160425174666677483","26451498111848057640293540304258097216949097009049564115284853255056731753369"],["8915379174781610342858862617924984998192776818201706301561971202702589245180","14476645927162828222906914376163634500498206217255588182141891219774859017538"],["4119963110556147053947368047302639394961449688790055931429981930296668743640","12475115951412181305884206558020673946117822389506110576819522664840619866256"],["11872612986744981286158961075254215757390467173226997087111283957299108857399","8210238002900082789477150963653281169965339153510879391937888981649422079036"],["22781544820420367251464898117428594462225504461127189613724464261483803689083","1142124017096287564526031388081354891069794449080908796345991525419417361124"],["25327392959287511124576641111455800450981797842715038386749851657853144910524","8597408196653646374198093665969631364370564612424453263928004602855868692683"],["19453066291215344283573636651564365085374482635214936915727135475471911989304","3597833575803064871894586600475440535265117723291897318831999676347024696195"],["8712672387226848505564399296252724927442553107088701588073737854370657328536","9467289106919897660263733802601025322946568487588769586066339642107866459931"],["16474416611960130968217374413852282566829352883225481534412414302046193540076","20745010354312917176343848102450871439886881740413225216516729071447958402836"],["2441236599998096620334694535753441356464218940978442343656614011280594177939","11282541258623192673951908882583877810347266217370472153232529615865734577665"],["14731249623224536857613942648803445185116988667776146387024453768236651459960","3287082979445126866706585736799396233191825752407206015516232422469208457320"],["27975887179005863773913447463820111616691911852661106029664444311832070790225","3744722804181046174725500858466322055478219973125401074241839611606159976516"],["5082779833712981339049517612344448253187950587958890814359935503522212598575","17211180254175598437065509356471795015161921994048033904863368123605295742456"],["11254291824406297303624008799026406159156702540047960710807934987043382440851","7604834818725401662737823664237405380560638057867486344599624341213950406538"],["28477267053421095849600605717948394199551049332989280846509346224655710118238","4824881468525581786900298438832939549179282355519203582004821762192829963923"],["10795683802938308791315514994232857736164854060971330472245025371975474362273","7026796306120049540388811804734227162621094132058302454663433099237274494210"],["22413081383736499898792198116832163603159440823637900001888671469102867584322","11908744369777700671468709588481936674856928716914344301563549384009743852679"],["2940550443440569731431105733706429728913224814589946606726332092861883754556","21677251333673709032589672657106794243814987876011907152120207752675854142913"],["7989637887021433297359138112505611382002201405514555240274157173374404573716","12915673821640620178384968437872078313328603412868560355978666689775986344559"],["17107682076759781046309577870180059239535515755753038762772967384105035257018","22372375142627687726650039014773930219969191998718241091233908664410582555212"],["174519761356087592705962533128096459834384920609881022092227191952801805662","5774753774641723610078120972990582246240228155725226996977839943551441778934"],["6636113673655609265530192147744882610023595364406525808441328984295213430350","3574664651269668946469762112972712581283846459807090548497089098497362210445"],["2654677813902940724146372484331633612499927937104156475099757139592968461061","1942566250834485615005699474418328806570051657251962720492990220255827908344"],["4668585019755985854945585177257447952949754175200921631047542116717760877733","21167481626790914846097388266426948914963811486133966264650289420711520791424"],["6355922752681281292818025244840684305532741776851137044454392194763811916034","13292498703788361105902786397714844158702275084478131468713298135044322642653"],["850196834797805922324110634879727989800170487139664736309351931250708560933","28600827507140816766283590310857709556069163014128264585257708877921596979102"],["7022030819012638337029779050038608020028463882068773652944963336963044145859","13502533784595707408986751348243583473058829099501216394508134858025777555051"],["23687584513109377576291459720357405328585034540744667536372652275974124873733","15499151444440202250789657819248928006271135464369757552411881168303734111418"],["21486930808003976135458202465323981080535284160602064151220089386402241347938","27333536753980866017463776413578271952213371930778862984839543186752098142823"],["25789101439452372352924362758477567124336964788705587246259620446889204866855","9208012198317958482311885017372695190913356167357376154105550308528556973158"],["25175588579278647148992510673345089604877020417315443390259747029460673952893","6236843658127397783744246039617670808188813580852241911373084463742068414321"],["1131458702759172797374069118363279200583805671250131472724886558542671383716","28367469416770270721111308330030696118487266274054798632777313652219160743598"],["722004583872584990129912534298859018882242881189378589964086891915674385412","8271521696240639138044841088911819319473105771212803181555979390998476576776"],["1494390318404601628309865593592178595089849593445710558501938394192702448979","13090468863961988229223422910052063533439540903905516869991122789015378738020"],["22229035294368987416663130342197587926497442295102229493084459871809894196131","11841900032857998880718304127211784420541723987884182848382720723460994353764"],["1134825828809106172308046710781560979816112631529226730237782832611692457313","12387172043746545212907412052318005190145932456492579007173261508884154487976"],["11679821931461519570715463259367988130269147249609570223562197403839488398673","26010815409246559865274155823385962458271630712382073867103609071099041657105"],["15321677500988897921745347047344951376975400919691920519929821554568889179330","4811325463372770978884641678874967358476489245514451115629949956094195543925"],["12109141676421084754808693380102652071715565740751271552568240258751792434347","28316676502442499990882482006617698610013647058896315114013785992741310729951"],["17029993701418430415328766554727941126413013122373942399402790765493595157067","14494281201012469279799821469094437890869774984215582302720396074252431495306"],["26273831938143293446477678365930394063255790359863948629721073391406456552798","17908708980806284164154734418781865563473973831174909411282789425545507438120"],["20139510226124425982353929180031002182472505180154583882436708895718643584859","8230663102585811767992923416414637862798753708653188218425168921919284861463"],["21049841277453491476431727017649505838656063624074688261198545763578595721421","18082005122406220858495381926851474335667536059636958716304267512313444150597"],["26785056061209385441013605871015313401716931010487338739424365548685172906766","5938687125016575019121184041668838711063860457836914088830958052787410225782"],["2162530279688724878925074048778680605845175185635232747835930096681104318156","12939580301303089756804291956885967494806823634396629965562703218378825543839"],["16427511147012163944543898092315272844446017638714829193731405685387644054609","3744948409382348871140079395736125447757228342854159998637146031624417652131"],["11743015217858467710682202726899520749839686248372117105475718384291614060784","12430929121777218768810168890038584764584086735142812010884420093761321867659"],["24200701428018633336640619250212118102872516901308465417689423788097264475702","8645060975702527465098372810999225028608325178131619974451118576276905387703"],["13922527782630948655077601249705455723149637141654101120871884194430338259872","13694980737519247463540676109785406727896635249342245946063432644317438131015"],["18681349022140763394506297703550617926464165106466780121572690418611191606861","17588808465847498382130420809700614494418288948532810470294824366987089543347"],["23647762971978225645706401427661691053926838485512706736454812347452052089363","7084347500010786444828527244319489984871160349105585000779258532067239792878"],["23597282690065937713836681695927486967345872324178343419098137436899715169105","27053593456080918532644588625967765970736653465945018568020146936419430230213"],["11924836686948133816124522883098781867326091366412012870005369550655629009995","22373887868235749129615471886486170793882619864465323340540812683600935409088"],["8000878507831936423999079784385249191657462432756120086709643752488325505740","4466909428909662382389503032316905098896805151461524536207029421173516406413"],["4427678489970338678649225544797500740444609657638908185447563987366769064367","15583055323354411054230451502022456692230778412361380723400390114813703448961"],["2612074352674784769828314844470407707877822842299468543797746375249141429693","5416168518132685069577423818475370150593724959648280201746220919289961516064"],["13327812863496230106642540014597753648160081689743516440589695461494700520584","26484654191644275944561277083001834404205119315322303246996319921316402000775"],["16284842911231645788211574037680118195574442176625460630792303246412745430263","21487877901988968032246194565852901691017041249440387190407157235019213493317"],["17484381300333534627742783239660488449137291962405046668453886120221898205790","18785397343563002964510789016741887380503242056138410186611516566150272403376"],["23777134056938819998506263173332303949395130819199903844822000083095363934413","14102184868780199825075865266380463549604282675596054207311206712458485234015"],["5100358983824381927933102035511548563073466668801326394230056235507604705025","3320441696186871210735363449118811990078773851704426035351141470154534626605"],["9108141393754697485094177993852599215856026843990728489051690970356547922916","5510666131323176754246870138954784556666890578810688754267806952065518400767"],["148178269317578915031137929241264466973472987932676471024539383121143383875","25932832220290041012115400720766400622197934294718045692128097147735005201339"],["6591825824294058451351171144999141688844149726485599839559014492094261505759","22149639491389743454689164472574659354698522129342633035477030763404492101662"],["25688264089787938750636581098543091593967218244740969032862185193376121392347","4588790336360714285806602958804945174005548810619027278343146872387613166172"],["20689476547463088857720308557167768055728099309280910437124395688977490814520","4129326906138656827128053831200791902944366579239252905852304260884378529291"],["2727201264530060104776059091145906695817154195036868750978167230625534260362","9371506619466420974578084178233164578959667165325266723968286247315379848574"],["20937023853542387639991993099031602174114578017358911004703513184862084382143","18546053915483979633314300185965279232401697553052884616751325104881482927157"],["14751167578508424967166549596520267483517928214626172180183926805459336114523","17804593885602058742709684493668972307665129154931308300204205493078662407864"],["4623849676377277466099581822875888589962295046849194213884929804932938413445","5847251439035658122079491846973903585937980279698356382164814132106027029430"],["1278677986218438890545096985273005611226064381821973086779277667356528972347","20923671629725199552320293321838837600588115458748686348949828710113689471520"],["12761942728297716598251600271859299184687289212535937854241718802206998017853","7842257193582193703320520356972573026276676920289412316819286825993810352631"],["14431234630557039751795124774002116263407500256277111766009239794189465170831","4161500300312914610565350301017563717282192496507619150623691637591354783509"],["4226610746145643088605208999294916142827162834165868552956423028594805348975","3902836811604803775376344077299930870772157519850542719010434828329443037087"],["21070159927623789355403919106246457056986987124407696687492948993520220044758","7251788217354497095456381309772374910012565911251902547647905091800624620559"],["19642761860793515336816715907948742609454491704580490766241027163426172987163","12065968271086160479208235827331739842006365441078986039343674099609011003783"],["4178450434932156428331523917511379034426297906976344933317928422831822403575","2374448654891957198560989141411637272037733320075154828599186123544955963289"],["20343359865384042573774169391856614482339266308139122074659999636421788377960","28044388449927534126147765916083334867765038127661126104429194566828752857073"],["25522550090040289339170174221626924708046728733083265839071285775055234433288","3064870250663001555986797340642461484988722649771281782899570816705746625832"],["27049057253334355006368826568945345211289840350989305377182876641407825423706","13245836035815434091505827713057285753994567347243259306493369464827212977703"],["5260381938758747650794317964275204782834264988243315122735658015252735190516","8965571779476510954321211762807864265361400359413206019746687098703555787557"],["19911983277629040415787033221949895431366406056964757206567575277970676314164","9730385653649775214905952057195426669710728763698021672265326598793077637252"],["4763447635253184736426824439909564986294761591897512389113777232766835405855","22175601372852758731421829020276291052635996362777863649257406062866114540104"],["12705706248737343287213553951688128870800802909949929650105800045184858706220","20365891429442910834340094989001389603133524174534389020965484350814789019703"],["17853953949957615533702242560304555188274880940270816094371641358683416950684","27255946571193534332738410724806566682980763631717536744045922600131267827238"],["10409940976362063162086367627078798029559568972507667855026896419489462282328","15958878440423052967137703001592524512480791472848646177676210206660851590117"],["17843170096525810895754996795952376001750515988384062531790921649477192255299","7734932144852632992637766136436785230372456779525276476365299575682166504182"],["24818440453668619339036838888536158761318563410449996496875990191129216564840","17670644308374489878825458525740022918112737281459376739536038701656768975418"],["26274263149478311461132390490548372045367537591374369762759830836622761577399","1830377598971697561784244772700500271004969777043111381686737680467553038717"],["21194146023413799955533865094504401676141940031871501205760718648748821503525","18123679426537678538400510673827024029853240133320274152746934304640073721188"],["27235782837014894171283925252233929513017293617796563191340581212680110906008","21972050388087307894761834016061835825977765052192939156613223795217388587443"],["21720154736264513758127754400892441213560127126053262820228681602580809826505","19392674208115757089449274083501546769525780629799439941827035026840268721443"],["8040853668706758879702923093087561959150631144572385017041901542084714446452","16543966857159432829897159951352402434466095875171109150346523253869862868276"],["2234477316985832454186027998756328936337732900752638243116766703974414555506","13435975167031867189141538528498916828553093962306147448563036862329286063858"],["21839992502420461009473364726726413801464592111238598529257094113783469288989","10423197977776881525306465328028647900698999524648362755345420307308882809077"],["18235192166660675026372637342854362134344119324042579254703860953589510426310","12209020833422915370501720713782634178243725701103237875728985324320990441259"],["12660623898739230555968834682118431409591015023300920117834950484418756550713","3007987567454351704539943506110701439176037055022401383164084238803806421768"],["28813334783484888663618360969174728249945974451196903296081210688124778555239","22891575495331308310486472369903209357923651471348405638879363280932583586356"],["21333877859601642151381438150983856400227356794666603973716920980644809564454","10990485480926001808137865613319266122418560780357212502096618787252854463659"],["14678660289777086137333814139907920722777223472282815215957953760202796307292","6117328828797210144351178034597220028340045965483555640972734719501951792608"],["1880082352530726368996937723303270665794320152293910027383754867807554300735","4546140329726026118158059453548791442067126106145892070613013843208996336728"],["13159566524896211554640254523627561825922636338984301315341516352199127832574","17927835645351168230087919728389720822735650508693976377506768634876465667279"],["3962182937234813445250016754019742887520633587138666037878440194608554968696","3477239300130285965410844247528815958933498902209982083828873041240558464207"],["12955829784337303657999202587911252130884951261397398755607679972938989058589","7458047258214195973070198866970395923849381002758422012307551964636434176852"],["24498215620675435522997138008297941171835936970008854336718415521292715973080","9643856483111801276293039406449930461814366721437740849732300387910664906886"],["6946312673539130478923200981617432076062972445533896021364781274589480401903","21872039634354598681669612614224328703988461781203202552144608422630768057522"],["26564110212679724640863836237992191600240251575754141874318715447234695831281","6239134579516232432592986783871113639399116028656879765257383617036835126917"],["1374409653797262357274281883909768164914306136473110582371220522642466033626","4358402521725136638538623931464129470526729979412628965341516250764482212847"],["26643113649890752833741679181729642070351520638072833251789140555309114429333","26852529033798913986992228807331271901707025687610153542072866719023693780800"],["14557235196220926725260797163859891580186007689452757323523887505656200696579","4580403984406747015138163687637735936378339621371058762955943502180329195717"],["17173268389623988775421222465623727769040312345266716877677493495304474351521","6372466380585405108590504339832695621765432830832615861987123332156748359448"],["22094604813239838805361802337078101244285703460218410990040998446454288691602","26049087851310461174794233128262217254468310473452252104935021574400571336379"],["10816064758267637100317783559915551215690388736204126745105206358022113071029","6324345785058924453227330231573580575454017533512721691601654450399244266013"],["2218145596910830768144173742653885536692379433239634671332858703803024318854","6128265087770253750064977717393203144986136697315456425856697424105486141461"],["26997868410920095704361589812252405943560083632249228990282544639086478845511","1333681211891894381391728889265000512229632516674640823845125819396450564933"],["7004984395330900407658741243074188592174816693829195830599411519091480616080","839101795329101330793453183649656673189362216507951146398900434497085831673"],["13821714151424142872694836801624469438517739698830468176265766948469005046094","26282189965916476139882592032043077356654490665486515202534606543830497110870"],["6795923659458672067300818803019359504192154110475422878966337245671360645147","24408177847957568107601346820602780833904651223360175697545318455551226912444"],["16730068452737343221672207278219262002401541844048305176367931827437604315352","1589334881297584693457045071307139009449709959854099067022327416879441002912"],["24762453956009156492181167061756301305821033533480078578768280059717774521033","19412079548314693091646443685452475131034208883725114165352695466340548850578"],["12412003014460421578171150752382440947616987861115340707477330901115321320464","21622209868389420805919183008083185917651318935832856330699441834559859827507"],["22864086608232893718694808538498565407351361803874544102704394913246491161762","17020557018609296330402847604900122132117841456126249861379685389516447295588"],["8780274178913595789644085784988033746922231787842933700371165113164915647650","24887720233856579996239366251297785447479246410440478954416321311814597162543"],["14706838744704140975204625855797423133590597491993713651403971178066243053724","12196877983299623247946615206848513935581202872512234124659098010235740748256"],["6489668661085749059697143171011720316704371950111631343764873598947360031181","23134396915893267789204959083273699880120974063862549115062399415559994908956"],["18572749437477241258899077949699812778929412687529562000724056379410025879886","5122006090585733034110915126703185821987615320270968419862023723415186842359"],["12776714583367529725987166608127881731301875252197785353124599242336039730718","15125230223895978862800250280575534741574393324984735790489750215952318321943"],["9505005930236247499438416791714728729227926874588410200736030072811514981779","5940101613531071263254737155415465457130923603115276089657870299845001503834"],["10422566731867570861023941374397697224149572261121823840982256923702344016769","2247602282951989084066194032785587558441065372275852539301543655757930639091"],["10661426742872703401180833471941658837939426452199730045010246848618387771656","16404895202342822554978588006102022265872988007484525634223181497335071960215"],["2419628756468829860176277835648842057521660645249757368144099033878153992","1590266936481340205034771145685383071126126271090957563885880241073125682984"],["23291997655845376744912409941242440944877363351248589743637285226477383495705","21501297484664404332263782138911089390243311562363640285722247042589379377214"],["20938915368478519993684232821173680069502547632967492113311541723458890590435","16466087697328111097156416368250321534558650806207667658010985421662416076688"],["12866949067972782025160002082179025956594024352267795971742287727392621690335","25330678695295925470347130458537372571170715231166739316749121832819544380265"],["4042703123005454685558912001998253232614833710229637289984065747897410148431","10685064735243162244544968771469823970031621245045956405609691216265444958426"],["7699818975031020179690451340454173489673486789131008309103907146026383059537","3139377185810702691248472384908018419552071923926571020075947679846350477454"],["10289901904867087515919453148940894792494764254015202864381015588399624846639","626248761077445419673444139591381562788903183201889434293222945802731079315"],["7710618728947938878305589497107960966478424362677375499185134070705006128158","23206118912846690951187820818608672659673482627503298659839901426831042558996"],["4349816559774176870925799370801496556339970358281739921262043391290835086665","21526973597838119714755273329520053522169507936977915429064635932983342083902"],["21318080020082922320287769586250831427645361508560456734924947833808253220800","20156401986821960005656827139629159392684705850272923595799542117781362522143"],["17507083228250979413160637931250507447145372175166699262328264714720773444008","24214793773058219329809835335549797723636721892090303580971488942631128209686"],["165946589533078147677343177361650827279115868924534916786864437687367167802","21987665868574026085660758696967877471632299006625846270104341058680754585393"],["22577522092279294018430357139571908759586902251964307736638945822420854939447","5239383241720463997342280580022021803199140950498279120047946815053073490622"],["2211545511289069443721672025281179368290104966343281038599320655477355795726","13404458252854296964730447469146968956933947513302650880595693073840625734977"],["22189623740233909940890082023751642607376721960990116922576322353411606347990","19316049354154386138597946545728476134897611299138869452980434229311213653900"],["144504086759394286492787646135627819120698012965751083973341552585941806287","17274808504226569301453416054605146347778362576923692401955874710452802686625"],["27510213595669635204718614026493465667877232452897363171682697141158970507071","25575642523442289537895474110631348710233040932353272774074957732388489016463"],["27562276222498074691813443594850364692442656159702341889626843111880242292169","25526160809292270949769478891401226922490162172540973770275813743211418923154"],["16823807104955672762243352098633332812690465623429657968219226596952076657036","25438520847871373923830282356696416539486547656510080089304138137477485855640"],["3182775300825116726274341677855401519149885692233018699663572405717420528256","28902538321199833821028591318325822947839336315851390650137966314522830878144"],["18157505461129873268866811668661958344082744971282244278761882036383200700790","16579413921868241486574902484429553499563838255716263010706334343725746443986"],["9063193511343152593932303416385023993243643731773904564092237365464307259338","9602930089155129104407186197399947171286913073828414870704019145312361945450"],["7582096885436283141763358268499522348882026778957827490745616340837219100785","1239384105011659337300851323028097336444736281293878128664300577900626615634"],["1051786223524164435118747236304930264795237866166495725869526884714380020644","25362556691331011306114735605906637622976225061386254619936888066744089999672"],["7142946349520352349257268920066712671384192483173701823504140950804426307994","18678498667399094819598325745039830644094488231322953903013320063234669467995"],["26233910508831708704806042049428572055193202702580660922812579720413988367232","22630038795564572260508942354819495689752169562751742004208775624223067527745"],["19595660199616564088825760607561589137469959804632501992620342306807600701879","6632354887684879046674016960788513328427938477823886350525324332627065988796"],["19662060115586803911907002789891433806096293314886167099330592204626035854152","28059636749110258529979113802950636173369269865280769494744721919003197062502"],["1415181293855609539149184662586888677869561273849135342537801119234281496461","21311712859998564229441661451679878126704567949171191219911338018493944882958"],["10349006397572953837582173870107712377779102449744085718057997853217618144541","603106500402266135200508948164270163000406291652851523218434922196691205290"],["20022665164143255552742750930036353477706517747952289051943739234037484173043","7383893272684706058708768972080036030507188879488457379679050515805599291984"],["3168276693900228968543610190613559053246582566619282997573536720847471760610","8044518758953166532715557625768251059210986140658022472604077434990880626651"],["28337006770953755109415443610288909061757817754834963089073330659015443041218","19454984441742759741901276596252472302085862785621320626213863651951286613819"],["17618488258638606473229012234743072724450332513035715821293306159181458844687","16036087755595546581781604655779189762534581932636068504106264749795863736069"],["12761403891759377262859732268209112592538735344927242661536489347408958461928","24869046857362016115695338495603147859498285254144653337468457939866533652231"],["10386371215279501136759104879309605471189191955525302592626362095224813054094","22513944805656672866883437717194204360662636949525177943797064772311197573906"],["19267600938560071412280795037659431837079186033718217546087500824808672606879","27369496292487169036040971519568837461209672054585388111963167305166474389332"],["17003237672316900650985507013843875684825640100765322431865878431519668967735","12500774646083031475450697524226247717259086799432534467471184266975859371629"],["13115416693455753622620817684926940458623515486131182760336004454228684289299","21103106111737423623181669413231960689485653161337968616394864746344090406293"],["23009541385385000229546784453441484861878951107516308350172805551584887328034","25093070618195057337732575833405594671506756923415075028196825120692345375281"],["3796647332029747173366190044647805243556638852399830303991709814296641098154","22753499037358189750613453578594127591627742738980113123228669257896822819868"],["13445686387051849765419980621940903426574982727265659975608551430742378846826","1818531918567731441224158971370708972880704856690799700381883045962732324973"],["11472276737112744693440562949085751449043857056650841800578926051965431705031","10632406238507737037567627946378812351734515701383291772879957921265039142684"],["10068066524839030537835654090621171869707056819140328530834634150164759240218","11572565221353900918556408800269327466957936710467811814129911228042360212839"],["19738326560971168965910929098427343752576087569144966179254016405243201080432","4979810721727230924021432442099122825886083490287823031112787790143091838352"],["17105050975670871812277376973610027592566124776122274562268475017657265785252","7793961112939052614439673406085059955089300364188503649288390010669902787399"],["5419929828727721074067540361657896198279604237400914196638304171737535760656","16421180189176222839102452601024430247244074254927414782478210086840802466577"],["18693349122354843850080532858019961260717044841450254149435694309152927794562","18297591867597662425873899566912769399903975755313165360602730977165499174849"],["12673307517613599639741696066843322933905220056583021958306695572185592248687","19787423104516373234339776996429767002408241245566634127913963761081151888689"],["19226391322318667881428037632597933418106712187215165763762195825881373951486","7619277686693934519853672238626070223310924726957063393937224972254141719037"],["12766759009836364868413060140163514293859134021502002725038250871964566413967","26406585251508294769767700794223570762830045705972964990104467099061814988823"],["22194620238718707388738246416191895572640999080996866567502587484395663423310","25868403805778322131449499719945719621197362029867972202288714781575596819765"],["1480663972381231458980098786600909331288923888605347256768864426100727085715","20055271251679961367234241108401985897384846217158199768946762271214165874660"],["18585047147414076517464171030134858414047977531052542846768500410081984172050","25408437982563513449431447382846220989077284674151282835308299970561304422772"],["14650046286550448077871165777077377857719224464087872937373909639849981607322","2093712130100478247174931813127781673870872794618430951661019057535330407310"],["5869240527063497268685695305303678069753311073260557301851907953192593615516","27122224192753967644301548577292551188119683455669742637825753131929487052349"],["25461875881249953495926742166022377980932168935139919198818299089928676176267","13313835300757679347188650938357108100697032123089038724296103625008603816260"],["26995035514211584950809602389386420939832280344634734715505077326986082203484","22874236129138350784220191435270255595677372499231030442562082708721919596256"],["14521260865620370907198351526957737685080271286747806576793183608914000576811","3602920564664281950762019751467284456389633314973951695216529241714666175896"],["8650442713022572574148420590770399315711502383057453245646985879644274746878","3789641647138501608130590575811866313254396372898833762794034443774890702710"],["12831547678838101888263331507889920411500966899692970672842987111834955423947","21473674766190678699486183425991157230381794906533290780526441733470284353316"],["17505401760275383778684653689445246922101848195349580654144815906991098136040","19955125654711175718651895798922258598114763592194653198901069843245277851221"],["28819065349286628779889434416343048270528851395386019450015574812886316062079","2894319165654890329739016724156854432167796392689966735306995425982433854489"],["16220924797881690823161112195415900382165550965858246866265138232484902056016","1031261800659512795334034416020683311327006667968810146705519694735975836905"],["20992822409543053881046800670217899023220821504038730602070896121155120047191","23431825461741586090535144254648841091699546059163118537668536241960833049459"],["26147968401722783540950294288057719360135779839517645390241072193701072887159","10041752564743118910031697607148518272160254462164608941567462982576200446947"],["18448343493552299890650545078471230901733325338641312070502847108991577001792","10803535266889224237250528904370443732355652231413367372960801438108325843333"],["11223334565424705356558470627602273760209686255875736129769787065485594808741","21571777404986224351910512233082133192559368698828260328399904310529397811140"],["19240507019257290399806451668104729777548627000589669675684693006932000432163","1267024591444272488648783439536021850806908139508922098932658334451217479395"],["23099246851485556659409496218910897093906684030654784969375576821109049892836","14283005880892920414139672943657186192478902282119086216088205296874549451115"],["13742202822652184165694872183783849041239218483701278869546683827410343964158","11621925734623761139883433641166416900084770864215106145378634079494590032923"],["17610026069742520000731464385960635015022001160005347614340370601251269323183","11301285178379885566810130635564910745826944779384258965148594069859244603065"],["9295571754217080110799200945590449350597178434405699009402964903528540374493","6599165298751599592623949059193475993805436809495575276055248982003194696133"],["23672438849985385039868979724633717170881224973970777828959143121554516342786","17153684865505567111499073810882708367229191849172229027254619111252073767705"],["26712713744498445052331786498143598994057024206036276212865540095913184269090","9038833574171640147862477421478126340510928025038935610633653830491465168272"],["5958557140077053857536479936409379429578471856391048421005139099364840773347","15773585602205559133801619516734216335628871477024545632246826450228518416490"],["28271557740366293295547702235173160754961551815837516841845916119482173534137","55218653398746999283481297682836690408950683387308523422142002474663287604"],["28561081261256697358215052483659321612113068501591481285123111252643725573110","20041620560353579346040528131660698152430395697007345115742106199966863654695"],["12966755259603404091094503651375525939214623109662490207538310569089267770104","21279305626481863348786333538722752143320213676871676804623307816499651041700"],["19666881104267501710729538324128309782456756289535549184668032848373617300836","6180716838492708102946691236450376148943058644933949205679204323946079533758"],["22822885979177152356431511975607696636339183761063738893928661858704762190107","3306629632639033217845136275985607948164198264662186439827390282404047595899"],["18489087816213995846514030178332737307661285990945753902555674023412167326254","6877325934199522244413582609737079271706111908695784561012367972268940305328"],["24875041944203917184987797440150094709402653833326431085052191309636555451443","27773122331546742092269243973857148266815707852768424489701349929267652171878"],["20267526013288072808690509956722780275346152975553706097638606986796376717786","7496955280083723254751276227055131748456832764527795845599052326432479448121"],["15830235488247430561068294573943238922585888224683309572840233132533691506532","28737321990150342086139790256879438414016899251609084674029751144160650545832"],["14310384923223501823632500470442819779215464069029124100746550356484913441191","28092337043475455896157252797608058374799969168565741617467151261052172413485"],["14284068706352176163816636955109464322159393774985181300471743677129942225202","10828309310349689088503596338370972586714044148637597560577365073516318062353"],["7751111579652616976205432875582767169100254724329607942117221688583162081416","21698847392535040891202830424907617388681544257312053633635298793774609408596"],["6729460579750436116715281318541181579326836878186033189787295722922695499223","26199637319843166170294570629094574144579296048025524488641545274245022264626"],["27293394900573021295037979039486604759888792762318667142426095774107158064508","6250769818509364321538441527064134851010712017792596046001067765024779964216"],["20273303145444783230206483356060780062109117373873955742045236192017122360902","6885887079061447308476053260446678575676181796966507844938527683782080058649"],["7653196548261273537415666142027980628806191042264597995938519796146363650771","7116702130578941791700619134757047201771575827491179589390643690939486078234"],["6955897264550691353069938906582888610869023045437292237272248202907492601567","26193691061017854090351902836539673863764661279521841974575063090892960338088"],["7765426054267757968824045115716022846173600170099278659821830766535986835618","26649609499168297845119086784640421232789935491018037050985943523341671431157"],["5808834719751905166703829507588445397716585482581326297766696377221192721359","22085183776064324889425147112598150901557301192715282593361291089559374487111"],["11451211950586876455359509355458461800133860963270589170933790368268779995011","997334711550992783177477294047786205542446972869925872658998285867102054323"],["4599692898175537888020789747314534687006415819985685437934001193410177803640","16992120258805610098920795650596193621790157302991661409316908557615986755269"],["602106003236213275582776120253724698364245094100176750570210584499816882115","22175742152110412588528645377433697705930076723799878745360753909726319369405"],["27983652183534939577424144458993896182966452537241124700334536829958680715016","17114469363543628312410526641575153158399905237745615745196554335270216725619"],["6167481621362911145020538475010337396771318959699767716942513764920378463146","9385912916942943355719483174706172421652910531950251964206209808337320173512"],["9589262640889105986326842510331740900748060283186974596454249859852658563800","13584056759284408247377255040291669932551953990586807974781694145819159974154"],["23858427078290256510369423249392764928166809659063045180902899231090954001017","27765935603207227456518781444593537629892229647200669439722879243451283079560"],["15449087655324980020959964843505973601775431226978039712089108475866306479807","20308194404852611110236340947488285611323776245015590478971535379850145622927"],["22508536394655811356108695942463847064217902062001397281222648948463743490986","12642290025546162264782797354872376058847931736447926692525999403381841270631"],["9374962615874447211810671668129619785594100313333701278415008445113017488219","22502134027587936706105842322140945761792329669517039524021413099709839457420"],["8249757834673900664906431879093782269387418976615140501860211069959261595792","13004858427597957907280355713313175758011879724632832371870533811684048594406"],["2599179690457783679091158990295461415964646717107024410460640478306418312621","16113650248328497902697383216793579789141567586624625109083762918480694609634"],["10750843495667970751133728305085076677525233072644283643249230774960830558932","7433490821616981646380088470241032359488112428236589251632808839342024864686"],["24388494420076325611203076571627444503733983535308939905137649695903624445789","13806953865027478386732334110132595068709608931235044904958475644833209023235"],["7704255538729591515459168214892203651928005099763779161620324877708951073233","9425865371766555917599360038697160661041554281824546061163867470192872740285"],["24583743535626979814315909687959033419517630307006120656341245982375888226321","21321063326713980866578248808491436514955296660359815701553453522405254526715"],["15048037369635824840544157347843316015934890331041201282420202892372344825234","19132426748328215883994412855230684830523492458698755359692278441919517634927"],["1469823301962402978122562793221864504090732290301486850677612415823970049467","16724330619470468762177518163965338003957475587955852654410389097461452279488"],["12637628988986659641423841226187541549090655300709648587175253773399102721868","3953273962251046040751715624152389317117203399128048423655824190020326701568"],["24325776247881364511742748954480906648293089791392252364413878995959568549930","11136640375179620435184359809911597198019085905512100684200770433123216791786"],["28342937981563619790014330460196842224470423989629158056095480310980405376741","7743255906033718097368431370216538260337621462292954697846390950630152875267"],["10320132870788104991100401753552506606307482850339626150748851494470994243629","19428822330380549101514054224726772144906942296040283726956423158024789790795"],["11756034997154964219444196723254127726037174047187381546793344687951633771615","2692083041907298475378590693505503483191803676838050237926180333179100336944"],["20728374410978453957133106243589053535066582769997590800704666538992122548673","9230029553518849420391349365813600193145424808688552301709745061654232873464"],["20944391619360641376699332692560967494065978930526318021439915805424051460628","19153568798963553902254767498592801280942762313321294882033863625094614305256"],["16224728345715084860557079100585691532134227093956264896123240886183729501711","2246281222896343053902139692162327840423110110434704633194160206092725469946"],["20472296326906730879008705205161842537080892801815165965292824723360492985586","28816864537747210274621465237008757310995976167688289601953495898498099875877"],["8788978809293524415557539000504970021010119021736505131363241734901366043933","20177213789979053953078835804255450649255784482597187305864991943557832218233"],["26029818120419216200178143702711858757834779735402770158126899820423937200155","11983742859252563673138539787734315001710045571326310978745509349351276144565"],["24354877875971555850183566673716954429774087053064159743811769859649612156236","21468793459729387416216428960695414530137410356764271233654779070112086217650"],["24584580660525749769432218009180900228177272498237074035455397050430448188653","11205226974228271621514377912632117042595304461681295533993139030022947878388"],["4425691219725179711530305808969152873080660102682772487852399303274424999816","20284588349514401420016368346071386270283007880043713755506448476954249770977"],["8479872338167915720683423340064985834981879248542694250290677735362083220300","27792565589555378191129683110525587391287553906596451325407253041647715081682"],["11103770298100980036983466092345355764691474914074046307928367197096468121264","6282684737238678210824927079958721644248537889276011290253385695237513307841"],["8973237889328245933563344886541333846450780289283995025231375725448267611013","3041053517820467648014083731077153516894394797363583237176869402847162594765"],["9639412674952965526711116688213510307696811089842963809562393483208453050432","8283789600394214072586600568936164494065383974534280752133775703816057557510"],["8634105678254986587551843519306933701292478251409657511972465712284164330509","18621292967352831798759946371564098481947832683378098622644521135723524490249"],["15524708846414606129225944777692706156150431540349737461315365862487416422769","17317626852834111586678674547838451350259919060829290462033121595786163617830"],["23565863372814264699646826302872119678960642027467309441772940535951107987416","21326920745159251172738168439910242566762176614967981984524888029364563766917"],["24719768643400145030119323524402329414354729807347101239395894339002707465182","3943320032380441126615102652098349005403837444727218507511694154387722448423"],["438408840032026395895686392155807365791650777940856298106817171547363437576","10952092053285460887656834219462673444761342740568212589963526581869328844573"],["4959886780833646545911001960338071680080437622120367955128472225157710648870","2112985606032277719112090504489855889202265551006367851259151952573860720677"],["23785709169086944164517161002785769210366146078552282362530069361922057300773","22153413263599156443747089339350113323947107353337374617903607475757417130573"],["15621484872041858526465828217595409991878137653952832482738141410557074757157","13009027362138388507938103083993751412403402201820744744389878731532575514968"],["26906266697712040758035017598244372791458362278814096561350068297736375601443","14974230951144268297257127789234105592060673384308366609391000003466790488863"],["2148127302494255584555015870179664003374164750616684175967103130167322357072","7593806029533218918027452965496918607724931777028174698629829909323767835317"],["422389081234272033933309941494007646926538914083492711735633645400848705389","18974266649257657358141693028775651481917925658989507113765392963911642311612"],["24159415675023687934372862713542006007292236978704383554706641909862934966835","10448579517727913130846013623098309530216687156007064430658778478460231055652"],["20204382681335403311288396802948977714287486544497521569225734572659181772045","4312530282310253259629798683396074790775105942221389681485828460945414815272"],["12350035247466687957501686982015322652739307418005699613306532654388477657930","2078537840484700423169826222095777371877192134380452759649034473173848850997"],["4632072119754529380053012902276974295996726442161664459177429184472803604940","880739813844544389891165983889032570125086992442026132276451494595952172139"],["651912976270967052837563103224987970854598184040438738196075559765698017306","14662133884477125738243752527282672232734448845744470293046909834633931306952"],["24252172335559179549057587599000854158742456564412983955842794982628968682822","11428259497400010618114687053859339395104229559843992293356240748933354631261"],["26836986677317227445225375732141268968344626200855629306821128913406574379537","22906337758903833871605261724321934185784143888994564767642387888564783845454"],["7003199974631844031199488188949928887797223001263801365017816130854269565519","8694309772554866780265837057634738343933973005268874922951767629458656477153"],["22228601130225240874633146275375310126356908882016605754240458774075868648901","10278708119016307605039962076765842399657382540219464004626604616666185454155"],["16899710009366442528412133569213958342846808946979833396733379754679776358835","19434934413788953449353017603681778772067377412139107592395143226626237255508"],["12243466899896228418465199472404921357516465272675252151752655281907862357114","25612192716100267320185698364060687873167350282616996077594397172673416194568"],["21332699728316957284653028709784536111275857116931179632471895112516734549418","10937320360007470590339255015135542799661965994400815291970618092891744652348"],["5377042884122788552494475524608551292624690460061692996066741059970570389775","3833233921076222074544591336745965191286621937785396315545011679531714291531"],["19628492541991757038268256303955746498668170796360944349196404899008946415674","21054965866008677151065533633259015121095813222877793543338410640646054548172"],["7653021009012882601612666848770070289463776210017315977792239637284290838552","13837911675915207723846939232641340958465230390319693999751534064543333408041"],["16236748654278074455317152850773728355562236558308847143216164078733885877420","26939791415194029212626658391688846835337562991631134107680949460700507545205"],["8225578772302281029340140198162975025726907347135126507006170198256656948359","13499851102082163997431689098237093153151190052094411091374579751724010640051"],["23804489111578742082436019009104784698026865982230095910916342319881211108285","25056657700863533184103268229498383838996292527862360183884228706858127318667"],["4797646007815777735333721723238264349459678548520909637611125176424072211845","28050799419841870953170984718772580601985630596114849501597411659049330059388"],["15820349182768667947931856549507010253506656864152071205593785942602404901677","14368971073439636056259249430258432989031396414452076363894212754439730373422"],["17729706202164598785205122233838041433263104078575075614827248989731685892759","18427760329252926110325601760937898024436047950624058391541973787934472188435"],["5975728792940196125516222889537291146262774627717189952903369633592213420581","16926772960968700312008316530238853177039501749898596399457329584345749505713"],["2589887333220966585306786332627762269915143014778394731916337233071205709373","27850665234860370820583339813792516666172991414631865590321220137972494969803"],["21131571521029459522025628354642039130883715301889083090514675087654891666932","21191550367268234732737317323766288881755591354091571449656556931468352739875"],["197231126688827830673521644399157909447600767675481238710834128915564415602","21771398582602651243168233008872704305469857922859212326669663851118772221931"],["10531327628252808674811664689735236613617265138210557496229202060330424219378","566610814662474440519113854638255357082418360328448668881909844566559183086"],["25667287890611553466178855022925051284413548704115687005364322216798472823717","8307685678361968235009526014756297647242730555136713813590861227524049597527"],["13482458159489317885158683548100627440964397691051122481407195722104594482437","508607433783645854011164276175840767086131967496611477781337730397056010068"],["1708603516598827981709831849555835193129586032308876300086525479333821700539","19801557379413981219487007195355096394921897182476739439111944921074283499065"],["2921732763913704364381043510565400320884639168245832067310419985702320002246","18589283552926608293607522841155736005638997556717452339819919519629019133590"],["9099300639016595465297466875272290859553234066999983799155133347606120795904","8010243597091776271752891488107357907767553533713773315295737841142541033941"],["3319528536383529847992044805823713687709524865418562030738731959602568839064","25264698622017488764180687615262764025478968204993228554338307522839548832458"],["21180868219940063690023097427256890350343556357004053250325051731785189571212","23147292870135468835624749123464357795137196618644294494537357752436639601154"],["10220580721913735047445097798285196735593841782238287623955120155951025245996","9451932883155705599545886764925976812184486208357079961124494392143690689821"],["16613516678580718475826808274348089948209765847068046022581963317665142814056","27576429235528600831673626735684897474800262251818293532276647569126087452264"],["19243546022370844460286078727103065278913331838974032596179627917427358998397","19128207143431212922240937711932244903286452196104743677854735700358284132698"],["21133927385740877456303823414581372213009424209066240488337171146010597943135","24754227731269707600309586230408080977754236916232942321333685374137884831837"],["7663972271320859490918756604722170626070696489780507468342314214445134787577","25269558426550827087285455180584856630176694187887948618602155702190860980618"],["8957130854555363932822409436175548040605397785047633685491714564896379341092","4629384873841089908104661983739886197617447808743269141038074191015747063612"],["27248012871938461745672664873361683000323947406895072918906463374583503105124","15367238331582581938703186752614275868352368623288838146948007645452763458686"],["13616980923739452220259511454774058775532049330939785623362293426985719907723","271473544930803120864072528079927976588904214084616796385590567765973427075"],["3922783383759342867706921475211975156190211647175019599573786296721804309687","3255755168833237897359120610771130456411109359891956002237155484425806780583"],["12800095985077262477367284987261979418049540087463502055311441942115022819699","7085309804985647605143357250935168364256199008735993820454908413795636760713"],["23467230167542762160699693909059116013399807203725011320494341458527548342729","8387487437970843257566259563117161477192057506213097982004427456615244419496"],["11902934486608117615598367577215191078565274865760837883981305235674403452551","9953857316770901329917337705848086105278215041482228257475634805312994417293"],["9772123572247144640191708324044516811559101634687943253611995119111311501923","27008081908525024945138790667660669388014587174319355540947577397265239732278"],["17349452948811863989482343973961350184623989020768718860473535873518077447077","7955916194460023134770014868915168323189202686483844237005957528971750630233"],["23219723896792290093952162024617407573274268636213546767291875566901871483305","4204992711826974850304504573253661111094117871854647072498314627184022069156"],["25307891698941052992599541442871853442103908254666351498381102954528156866146","16118298505695467359993429511389486786151958013351774736564821378596018566372"],["9664776868981939185935599359643736333525822763358880906338295322391357299590","4104885465510765023899498534489895076313281247766813689568983909438538773488"],["26573883839898598509368019618626489332618026739412642080765920596084405607058","13721643024493907224448963904872180413948860319355058364148889661078105611611"],["21381383856011369812710572041658085138610962445132076595745848901513959759467","28145682040815928193047754978037113449630550654891806008934894861354824596233"],["18643837207270968654374839651677938281202097415448886479479398405606123717844","28552581569596442363580487463986885599602720116987975993335930883096269357253"],["7542805315885667264864756159154138685684506554190872715375703552542090458960","15041728959145602497889318994509591290316607142454515569561717042591558923737"],["13097391722229586341805123743496315951940236318879955030591752133917372709326","26564309481031344706457488636714012891879274670056175818317365475147314185237"],["19722605694431751303025375155476811644431938554974588782191682481339401699099","25862273596137697459893091348969026035127070959689363615225901555753690571618"],["18767178212646968561314739154551119351864599881176985444978525322607907211161","12199079438713046702599262364680247033398935344413359371522329064517037436225"],["2155225864243246605516143503229839456321591716472278091967617176062116536449","18358481616588245273587707043908756179240942084228409641842653669292939822631"],["8637624164949780514868336749368299807653135524341711980977432635890258503511","26416131410696122413093380390517362497218372684558170576493188788468680479942"],["11928406264653174346621924015970066764189724767537165318493281004031876801053","1578929061649549195669076910000204851180222360403121265741959457468180717031"],["23964653315073005807379852130356761976486561822377090385023025021319866918119","23952135364109502467910127683287096615502066134533929750879175048965552787061"],["9638083131978581211990874125285757354069329805642981102699672492348781264820","24822385210940916560855251676232828883616764257307917352267153903659470963967"],["20983708667658942209662819677178412713210268776166225224024510925712070177437","2886695265003918794717010565025638201330148063606682554901598027674320003694"],["1525941949446107775359182164384573635770334546134275084621776574961702889066","24027841540362983288136045677544377941410970372197224192496655565662648463140"],["9473846004623533011763962906473757234618953809203102664749767200768723377504","26775806194620433537374318355703910226313691742298549063529265132428409465082"],["11960961384454287775382217314262692439142984536982675521435942718114118277259","15717501415669653163220219254715902206683023842144044405780067994988524291934"],["25004226034956022610716460458957918615988281456284772714972026794316805170917","19166282341730592916545875861004100856766108303086019356805919470810576995261"],["7615647282487705047737200708670198220950966961195598533106652203928855278463","21810987320709510138547451787179324377538841659454863485033182339315681869362"],["6427761686054028390056880790152675175230878042788024273852830365000300506222","18722211294862008560332437869370827343016107937600207915132297356266591195777"],["17941533729063281242074300222013608200293899842930890408788161566510935516632","15961781707290627844859821513439088978333477729846660114472362319718126458101"],["27961321023809421756323704490918769778516361710441770600017842323898868653927","16406882786159219425643953123284120225382617719199474114560610154480100916551"],["26916277802222623645285862690932351872790320368910265951131299545679642832393","5856357423397707905982965017752446243552029171132149646951526511303833093540"],["24798437236709603122889660834493494188112688232289473605717392727514393424940","695679933956114345586108863120828474686985132013290006817941833884143161396"],["19778114107830363281938102650746288455671936448545429580245309115980039243946","16860989305804143902651836700435799599307451253391404448052967400731498094412"],["10881978022997991946963373744953071945957449840104607327958885647470737016274","15150635536164372828394607267910652246973359042045616507730341004430515955196"],["25487929780092958543454954747286540570550307984551174972999227527965241053883","2228785017237669532215217161063886965951170364569377583966938156050019493700"],["20256119786399869465790535000989789409009456828380167242682776802030849837829","10588760639402638414953609878078329256536189582497323818604872326008941983322"],["25150912643085189012100838321284691691462672129504765723766389040917579173779","25507798930259644466270049021190480938812292599911772758088048344215956060368"],["1143854098751169803691728796026368603237948043605694121113790895601458725255","14947621056335390969649343574099327055200278809060068199188803362590571187077"],["21388529777902061080544001138606956931065255376490533810073872017731135626750","21096745979380819218094725885984219240259934763037396662685389016270163856696"],["17479193472458695359259969254128428369398742590865109922385187971168691467557","16840547242743567446901067814388317084077820106051383368049478713033628675796"],["2048975062613259321256156947240646693213633373280155019944852096261288217679","6789398226282913391914476784804686190294229795585109111976279244941370042665"],["26593348941616082615357845203668847839332222284031217593127291752951017042583","9330554000770526357937636056386814092880613460301365011887949996730903516544"],["2432484598875774967016353658558883887355637459797302551564289183809750780416","15910994817507298446178382659703237930550056682631425109929627228623216457797"],["19833290062766040390492472162292355249750115792908102686880621470147724030756","20238615932532432843026834383191869802162588051286888955701601133231976253395"],["17269041221795130300384442195032586228339868184321316528021823717968835653160","6616916565505859690524990397844232529743197584989832525846859543594021573007"],["22051172574128741923582338867310523481741634837589755705750281414737774679635","24547674202358847489467948162180092398562490912863892917148338739384690688624"],["14088282858901991167767094903714646381905284446343772871766454640023914600863","27036019675681766007363829047759376429303949545470984839969021680874812346558"],["5280066127095888239004514587385994780405331942837648475139656063251225483008","13525991156954940729824648259998604976780223155813871821917451086753308150800"],["24224754534727866044447644665297132494554854391689490728595753440795256971231","17839662551973386347503008268094885788222162485957972178017238072614238271988"],["22023048526352127801079970068826912329219840569483931646885009164594056398541","20411882096284288795573867050928219934280114887670229337311361410932290713132"],["6778181480860180303583808381648968038978651777915655735728828612359387519834","1397855839164789044182025369415005582332863763470863882331975504316104629884"],["3046198179940567192503536115983172511374659883976912238421553008923126164505","28315534821365909177095280432323971281399570547706577420534091857038581609869"],["7652897169131091214104173900431878227112795343512681371347866298179894214196","25238735294815951448658581497195790181959718993498724588435673349929084002436"],["17167650297938508448200706706356305081570310728669150935696985193900438280179","3467238249540349242491925539543769507312682055332895690592106134112819426988"],["25847367854216406698375996559102333276082290898164512828347716974215713822645","3615352053271043999623380232289981544737750958286015192932009192635434012901"],["3200187111876524001796498473045670289717486698534092273000434044091746605152","2061389490257692518380464210710438433282903563121503746057530511522736400451"],["26047623131111003677084081527772308419354297606801005658884798433677705592046","16115360079201597537015375415476265873153377776653139864569526575787730278194"],["18263032091049907786429276910956646541736243484787673253539049393391944690078","10839384266588275139681811536011554782904294571863880308282771368206210456945"],["20717659162875672934487097479694940365713531656229694503020870603264260193793","13731380744106434047463944391289883528792092539883014906046605591425833291213"],["18642614607193418829018847390667381387635113123248683850709352440712153286271","5012382626564526665870783986939827141186069407612861487561480868664203242435"],["5910122743163763402248570985192407939951359233895673162038616000428213314571","12186939417306229397173149065325198756674324771206527916208622802958290245493"],["27321629101675054283226080953169328934588057894449338225753696583385547545381","9789538635643071587266175469601145363516096108248787682234123770025552140885"],["16458021570543398247695499295930757186114878986025690408038824276747974784223","23822706277213357680620244087500659512027865095645862397842028471133426965604"],["27137604434676133536141221065116513270384735213599895779925302238675260420942","17709661635532735800470320201272967994984763051193676069046861962414198292140"],["28460967812384823262071633880788508619015580341144652942991515822045251905363","26561233552220167669856060977991207638652928213626516418922613398248801401983"],["10489761748131274830191335911392189798240464518302601080320151403812156428713","8504148923800005965098286677315188114880900268439948100375265188514718509346"],["9214588162910107502070994472491913068867897647800208840822534317802164900733","27891914226876431732375255544410838362296575868520267848213639177854570303187"],["25417348412600111567702700427767619256174040734102074427648016592002315554687","28053425551124241564416781461496366078385702425798012352159521040040472394505"],["11542431937070104415537269226223965253669530824774434272337103950724482304937","15304046386807511813492520140584518576001276370512152455175252200647545556940"],["20403432674776121967051628671505033086045577527258171736752021867910878865678","23724511072609041203729835472893005615731666261904098564912923100805114186604"],["10352696606038645955942982604465309084966040717716929029805999631734463327715","917195016699368252088187806282983779390661178168048606881846722447506475242"],["21487703544839318658634554052116463477966287270008760807369054219000481056673","20556497601293314211593101992216392711364375951715652603997406125548544157831"],["18492369983021737897089292437137595612064470157424521452325153748432814973402","1047002331225926725377855508212297166145946376718447132464833259890791734546"],["7194900347020432079181289236144595665715636602456340843971927002289720767056","19434965877648941804976237921019993667443196557268828613517051704583781622044"],["25896152078371979304812183842942275987836508584797230387528858397587942826135","27451119433386886166291828323656360244797996298347168059876484743518777124644"],["7225950762536019215004525893411018221921561229613641135638324455327411493421","8867474284382121110817376251409617498619362900053745569484844413558833767643"],["27646297318896936272868023120093460630981845878910643225232213300457839778918","21511333950850764355655863572827035079025765705135075085527827980567022219444"],["17991689829623803876146320327447411881361711847553212443121847701219764112063","17235984286892874888202709175824383618832574042044186298112186053107853298720"],["25923127101801692592373528394639943248508694480333599541827076109858273767200","28138416330114322089318525558896632945402010383937281205598554851826917693172"],["17994672252967714362495330604263139794167753896843957359010969645285316303834","9927351886828986826256374335137896223385297578353188633264549965101795317416"],["12927445671189111666805888106656712911878954125263228688722804048500926766034","11437114273652348816777877428246535831926887729114596487696143014237986426552"],["28827770042181721747995923148991932098481016667834175392739876369128140631425","7985167813791512669350483059218136228381357833952339903170775501809976190258"],["12732289495982382841361938475575014392313306688185234081579393379769820912633","27438877692305228356404821515657192844331713300524727774613817715013664717858"],["728779667312860581143451629759893452649140073776660400824130137702091604042","9877158556874241782858724068825561878319490334000411278599862823994318946833"],["15822914693287058701409399394960730859003459475953383720005732138994356448819","24906205181574358466721378830038450256180891319469117703107530224848026207851"],["11992263030330371635805708415880920019359735945999844028100645513416388178519","28019087835639230998116302423546937632258182377193850835933246657846472610675"],["21188177128408965271595465646829150680667153271261686165893320498399588461740","15999608993285091345323127054239851380053311685731299465193758489992250668306"],["10942796534249512458060517019420142404805297340678514332186829817686353172533","28187129439625031286106957066369618582295944968994322503503024158706027214982"],["14742524203195736314934183537291319755591800033486560121543986459007063903344","19817568240964968428888705980859507026809380783825606948704691486268676877255"],["13521871130187531202674696630596814409650218709207456750127044813392310062807","18038151169364843319045511365004658378649307688339546978868485563666369859794"],["22910116203672772080398226390526797402396891021624193343161728766727467082687","6072392025026009977116158742486681709774784853290801507759470078233334774638"],["13832824117151744249260669588623754924245245947125432177393794670168326846969","26389961026183423911914485465639153453830530466195839366546113718139997594248"],["2344277616106804563596549602711158137879366664967134233602708119718503889495","99657045326648639116633020116413457731096668487922551626355392466067472416"],["21267960095305537292173348340973623886600215672504664389023671166854486309023","26468220539412075388085814394851617432767753866343349956411128742946501056818"],["17636534894909799746227497718201133307113220260262975445632565112446430989074","11610582906946872264482104911909413075274244218430641166512833490747572138281"],["5813984832345370536102462791402351542695302106225693727963384427547169968700","8673152743909072541050830569372528764734440310291054123833601461765669854657"],["24804726490436278556505855863783061362281666022665221486939520609331735765946","15900981436966098827840987646828284787615615536281583664793969418955342026735"],["5363570243286891118451475544550405360590001790386666883254192135287761684671","24403160667468340885981125078262262660294620115725003435974318950880504088063"],["18585473888978490866740316605647624232011838868540157188817811614860432771856","5153683532690942648634458349565463705531402241828515940626882613423620316893"],["4873059823626369535514705032876501916654854202839002765153941323869651634454","19823693113408321378305242333405350597657943213526846621471937835765621119720"],["21840513305713020482591088131262929467463089813725832010929357063667567275768","18892997266388034748727599191415716218981520068662890952691824225019356225893"],["28231992665082205232444180180834393638135057355811960690435758940536408076865","11945969620703138419539093905755702886001733390426682053835730134392475147992"],["10973600688749586719572906725370423752211814235835589577251310551229007492625","1103545039755591465386057238258947722411596365959404900979640280498372764160"],["25713928011077861728472590541099957515521656500084782759877598797393954295503","22293685749038107422438384262858653601292421037784574950742503729105633070202"],["18619053412789473026143791249555650903639302607978985769604566204190198110531","229929390024211053373952859264905184154587126003858605203573838673229219759"],["17672108374868501418554632387238989795277056581378688500507700302013776645441","12607058556607210960589590051178645661492624185615953496980920693152015650937"],["19432525069307152885715325821935007038343212239264937941264069067334576010173","5724492901819207084164439061764770568151274103210287895225683394742795335209"],["11989254763973852294965694484965898680731819058452684804343371864139237406251","7300811168072464345409140285530147507847635857641138317363232379538654973820"],["11478125155151172969668035093178434017088784709270736657880559394019535625622","16284218537763638514435416860013871983922357428978477835136478910709286580411"],["8000740953659210290750301852838965788159709306358437412197098583676437798778","1558459069576902099758538791015505386963852697656523009292214556892629806768"],["28753976088705910160970423369221335143637733156005129131683172375549878940162","21652841133627037439969298030428966922254569324134009151584322222947063553472"],["6592903858168629562145123409115504524130079947025844994511724534383665976850","20587615644050497084117382763796220772767640306570223462097755331727543930127"],["20630777452890390971289423718589960810174931834083172838383600475269412619331","14523814262811899427321715662637709144958250176621152451914520398793998668670"],["21586032776606791325434605293179233913723681348229036813470966866197897778985","17959983906341848308500168568403316491024348774893496148064298783036504052183"],["4523540652461025379881459555225564151079172367027368988375492579792101451758","8571181737423603250632465339387448411302609580204966499780068233369747144072"],["26728303541365943389732801500347237780097170142525866037075322610228388653344","22992267004885557024998744114587575563918856886441920652252497333235364246405"],["13734318197049171451490038112968004388698087267049359171604380164558868528002","22198751044290515623578751512237429069383627200303003312638205785000545273091"],["9116680431979904780699175274357009192163989476399740561777322637174385553335","5080402594007073399562026449680992915829668440989584739542343504147663328393"],["18389988772227518606315987340987510958128729812511770315159712161837455161795","5561769609103095516260266245115566842130814081613040768887908194131011969748"],["24983306643146427981872309529351053916611006894279716583955268770578787740077","9290190015725744455898432226678334276540937989649954747936061026965155545699"],["13431081804571508607871460882450122031052351887063787873777345866583504189994","5147282022942339232264276498257332579242134463533374367741659109732350897934"],["13674046308993790261541654284588215059372818916689177675425926388235324310174","12340428950692077523756571289431557562029406735986949959750852074884963567052"],["5355657741265596460567590444085902300282301490769174831656858134933595728037","11309425936125523737076361360744328266500176759841492044122009820478875450694"],["15820042408461344063869252124722464216286971514977152401172239000616941967290","22295316366355531829110569428678779817950323841969071016443898008335597357095"],["1626867067937122067079585049646450585443603704481077090778959023572156401113","27530439328142384644569039248126729904896196087747012344043461565835332537942"],["28407083396432883810687807448050664135999813930421850726975504884989994434563","12784304600277053165823854547427936535399468881151900365201728258793581776093"],["6687917531907498563524826585622042485297004876492907910383757330412256144084","28267399842300470547297381917790645820264632049110926806252545896158950170317"],["4728080916157651207966095708586056850350708373717792184941166111357672008348","13954626130301026183527439139131888852936741147767283305518283423655084242426"],["19075994178155541649180544812565334718101213679820109179151513919497171334156","546159960850274013226362154149734443791329297034018783527588039280965807479"],["13225182487511401430689111936838396597149311321294588919203745584513434357245","587017041899772472553093894948949226652608016331825400967007231093810812083"],["21760299097128444310927241212891655244551912855332055177693841470640718119090","2830857422528258916618337659427470955600697750673607937945866110509020538696"],["6159298267226966812095965615757685691622311647065235709002815714557324739097","15489171066735938353890015084413298243744988797593334703715454746097644528951"],["10409894704939341568238747332765454910314748167205605091938832610010690613850","23476374051567934897228760505167196961725246868758617937940409564871023853308"],["5057322836761695000942349935441730343343680603021387590542933874564088486461","16065582186785534418691400750654268604762145514549104971996025795403580333321"],["25523332735130489970395129971306442551123026474293308755204992182051934561998","22739582668247792808559990791256773838445112242752993406891301905933623725894"],["22011028758452433946797658170479010549222932013196202002403960363054864606796","8148187472586847919141833545229941335418790056325787747488264118420882909761"],["25298620739096042832451504061949675705375865596580631680038727208608577081198","22220729734150166424130632051353513722889858453493028474495879593024718660053"],["6203330072072569231367474272695870908265499384296610183577550511217302757711","15158253625894528145823571123449855208725466932076338184376692909169401177961"],["24638459556679938450312153440067269744208568921919987907356761824505511582398","27847199793343626302667743310261794695338524144266276144522154125160703945573"],["20677897521115921763598281925555946770512772410964709849335910399827213288356","11143288738998776512255970527970472644639829321954375198622788484717254856495"],["26583173292538936530224836263778311008533550542441240223173359459481257513842","5434699656031070466406710966115084670949397949788198999012708235039409428916"],["26924652331554286714973385534235267653181993928560954655396426807822338585412","12999387764678388025420967619125037488315921402680821076629340754409592809268"],["11560577022472088147553461518438713834661538022920373739201076259955644118105","5403169965801411879483269043851257939247331207330805940091910004030783354006"],["28866568453767637992730057350754251665029292364978470741520471915390868817055","21005981757865856255582858920589815974215940916375401187974249742702614844722"],["26131064569611803888369144075047771107188903566554929216712042704511607688127","1674319142565957547915986581468452474185459708145628341465898629784857048086"],["540294735676546666176716336651801554445597234491332039160716028421796095989","10861909166071522994751863509242732426351992008680497968046501514678637756416"],["21918468664725579704450223955373773989938370516318443182155256913315610979039","27495392531567418450409091395787505542441110899744514551961352258215484988547"],["1481434547608632264623204570951033616311603615390923470579156683884695006657","3213145287498588221115669038832879775320333805134614375051713515143853235685"],["943341286014500652894503851344996175287585502020652989724336034196167564482","4285972730080632486270726333647125218523804467258251613471619894753117819468"],["3886062615310702933879811402925888915287196174663243318904922135794124391004","22018694068547768230724158152677661193858086757035364637210641387331115207039"],["27203569113311963730998570425216966369765121535513702259897718326800372984257","25801168250249506444159550991145134074654640497657692289936542564993469951617"],["20626106878597206536992856548104414972276767233811575380941988031273708231416","12874969226107200724311635628558200386546065834572297893504746995356641370579"],["17080264766399828204468912765731477009404595735090206564747711337491919075300","3691574776573277970316748596926199658802076979531142555280006559327217447956"],["9239475347710868119614339177289574953792061777440676370661926651060488279617","27907026259333839927711277418844513844093487810134070473689561894362319630559"],["26002886249400690016457278376316400232631884843147797871576910676896242674951","10018730359344415893164241658646864317228600627638135070169651423590366963494"],["15898716268756909175054581140423886933018010419056173675376862415950608886107","4176836080409970742987932497985658838722328752657755512353654479808749849427"],["21498372390721137089752111954899191340844064314765725305085065181450860618779","10174026874652597774107685053480593717525627149206088983752752322628134183920"],["13412286086671175404276132304530091746299766667945227803142811144838092249868","15488032305715030260631705495988199930487093879387011141531026708082786654055"],["15835667241887550944259459553933114785671290476399762268379696989971183471874","12824314298411384897203722190262702715122943335153645191655890513923780178193"],["2142064475212859352944415314844089794906945635051540660034464901070549324808","20778658966861785666901077583775910245538084840317559364490453413085555728658"],["1647969389315211009542396779303154359827468183290631710830520215432219673130","13809797435374900846401700885262714432901733657477861499995186560730252261610"],["19755158902694262301937024733051344902592961453299320165061066686056699522831","24879488918024609669061190126875558419251055001388303465093049285678526430276"],["2873784437254869982524695498671496136857951719374921235280711254614993398719","25329967937960766867413605251863640143331090096300823909059536073698258676679"],["23429722182790763713145271628197377566603840440300987511219846006356000605491","8648608052205144884787042581335638023702722420626986626185555657608017926384"],["16611379463401031485384286139628799818802740323607824787827248611305818477777","9851884719355346253130543315731293861686948626999605669852756839430126925320"],["2600176650913487294254647035429813883680157305497043139341439276645520222764","24452859943652381647297440387612840224274071176014192843279923801420132344923"],["28922945056834354093860600153167754352082618419043435499910913998345551880172","25631742351697472556102762500188568496772407114905500663944925307636426830173"],["5644069827250899100772296570009982396771190790148959287626329326867124976105","28198288830404686060513552075715002358263696896929408904108828881701001324780"],["18312031174418302138258964765542882042240608896920935901135475313775878440717","23145045655641464589750460810162890741338427480590604848655630495570955257983"],["6162349166825950389811725031732069344626245341064705998084933905448539394341","6528731141513223946210118265505706576838273115315808992026604987838810661200"],["16976065326518196372300975793086391726293474926427390996970432447288644850134","26483025783657168129034341337923630248531260412195307726196850519096038870725"],["7497609195944239325874372204209460723640005641656545522811352231714119386775","57525324335341470367625552875623068471752670176400242075235922753296282534"],["12642686070376090266429660714918243506374369893128302598030051336359949246053","19544047615555035125359892523365546408765604391325349738580231847168998726829"],["6624126423310710093063507022167897329682685288322886188710923891821028958744","26536217975284842718538897246564436967267079484134642636204131968322504258401"],["6508095724673911893918303806969928388889838018065854181532694308425311531312","25587784529441493934207863978266366510033199060200746842928436945671975257568"],["8856739507061816556384422730619268194216118621545502641572697646827340774740","9511052200789020097784779449430121131982649771457768005838133110421971896037"],["18784770778855767673676536130444320805597820191301145167592886095391108620493","9709868969146619596879714931867701128022307683384251420897204082599671212154"],["21778802667429009625428063125958689245025557073784186625209345961876555931361","23788914609003402154095513939298587312152823137887115659644340010290254761792"],["22654359516927270863907640392842323465255591385809485484315826455627431382553","14563366011082033759795489008005391543780233107609240422787876054266393689592"],["23908026571259029289770761066810573358659198381530941441172658456943536308217","15219077835912044034898317684953297738413236162695935735045670407215258113753"],["24407873885626277903080771508552929877276371059471632255513227211702941598121","15490292894489226543296490321775512730351070690331386402299982650286602960610"],["6990190418560254644816911456736987659833904702930496620114579248360485846573","24224780120879897923737845527976427640719579947544429991632835557508666988010"],["2779255285419793437190339936993348205374626844345383557904066030368152101495","2206420738932956307315609889556919094580746689523983057867331283229463647741"],["7732034992376150327055800950903825482443645708604885040669623857272613594148","1095858168298165666753760973175470481956631480995598258859050545062901948702"],["27406037653009271209857468995128597095645859619305684350242122518189377146771","21069442887470183004617569873479974345542129235023426561761181656536276745122"],["6031436923924515420169377707406531548449082170992351104033539511557250785402","30187784255485829917772122482909585099863729881889070559160200542435008571"],["21106315749940450134142644480841889796407425452830540130286095226581371838743","4521062748589849492077650519579584013264347809830341737158397403198469653049"],["24818969945824351920886284585463885456264260971498817448469634634877775287152","534647109557324953462128329074467969049812550344614443849926094109309807373"],["13741606944948262843139499618955623132578801208636498274787040886915035936707","9659949555098619997418554762833189354997508877480887816272584230770772429219"],["22370688012369949651941638175291033322615594688213845951490732368419304575315","889998345606621729389953356376103327183488368583480841041191744046502226675"],["16539958765781329666978920277364965853001418606553100846433959276182554256057","12914015611512760235676873428810287904207774949073574880789940133533375542982"],["3792694245975504963748012947218254453520937315352439186410775023664997833208","10430742841593319919483910377555509621082559002733635450646400152598055903401"],["9478412531107159380809011674449022992579814917199578014520744734986689766505","24297429239861556200768806305124976196638215112779517656296238608926669951037"],["13825437077581402230610812583474664535160648455429852388265791739989391711440","9418793826907582172169298115434278300665300457695868662303575811273749514219"],["9852627342042433530608921600956787839944496724890351308281942175841906197258","19058894745160394338689125388045396851837472402930828163123244843449962128699"],["25937355970691633868095593540970245415901500028539691876377776002718730622344","15630928847197471226401261932443193274992223926891966870754823120409621330188"],["15916938738661279890212579000440564689610327693161496979121761050360313579748","11153999488024915344339461383229092264321859781514627773383775721198124412431"],["11319750634244804575487145809405258237228446239293538187421307380055862240793","19856193732140302481056816851153339501045865121516306070729734819750577290387"],["20527111331308679545255634581151606060013333139996521019746333585477375258986","18917699249303764913505106221070062901867239113693591235979026945962097370000"],["28199246465297690474715609713049441987604088827729156140501173951411411904745","9506675664950693085168601665000129648937621258641363047739507945911414074913"],["5631991543845676388278322162918882458048885998815728933382706591751601864730","18903774385956002859263100550147274095991100871257159735871704178892372296801"],["24816317902627510674307487456208128650912068269098797694432118785547094593402","28289260235086201878675518272148582959292107995728981107290379804050930549142"],["27825746406783222195752605404050874916349426381405785450570954943414610979389","20204506846639781911085709787646695601258276218373283788458583479510871359914"],["23946867163016473750241125428059908839357708249703582045104230226105988940575","9893982316709844507262944101198235718055552119778970052450056013695206529578"],["24062368428222023211360375345181879067842484481546103712297138436251188911757","8120648037513791157076427799965312040201715485575699258952057897767071027073"],["3651676507780130022332382621260950615160375918034547214328557399875388262582","6110537333463566784406241755930623283137386348588508834405938678020352602415"],["11776143383196862618833635348370606621581799026115341932808207535626621697832","6097019988977183753527857183555610282497170578640526127783395045143492490856"],["9889031837676334591448911718216230819912468642621304936363768223316549330159","27551573872584015731645888641997562530542145004927240564068422121425496969093"],["10637811122419537366258868184467145770172259264444917201263243907791760210432","25351594366210010243743029752310307278709255957459466908321118527122680852208"],["1260163482633243249837919538893529824426027185734276962462480839512360498320","5608590698539730818712961344821876994591665457760608517070405836976775739792"],["8374142232196856244776987187271282385330918164111580419189000889185701945736","9359566575845362204914973876724626660206586906121280029722401592256472166358"],["20623165331784012816342084482473055428262599643397360874526987385852128629884","26363422485463523433801623433486303712004013266291364790402969235410591803109"],["6109557346019182776943736744607850190089208539822271427613121569747106964563","15676593983044164475708956691234866048786805748687276371266438846532124871533"],["12421378201851969830680029754790353261366228602715487977087890559802027093086","28299077118821167787505969374086054161855079269545094034554336367508851564407"],["533368827143037461487907021049433767764894247252802133484929024637552452099","24352471048042329483865764702777216003576646726013811142552502770050788057777"],["18810918744262767439467773485986109106822479423651181110097207149085777669927","15367657126060444216374787344847587524740835896222030313984114568998765335178"],["13224431750814751570201139033786229056492338692739645499104542141788924134392","18135498748307749589309513219985951790779523303203109877512126190853577955295"],["19198717076712234529992268186229109597325134225092409931248942853061114434229","11211326601609084669688733264753968027994507487253247772958896075077835011720"],["25164007568200439395624004472754272909470288779387080161330068160764663549452","3131319183245129239483011163874636754416056950932509662402242276683989680333"],["8030868338028579707734382289980826718719388129953848387042978710426679649000","16945046157459293339286727692422179996865526732778460388545547713805592801530"],["18642613642444746803038492059129758010964609857181500600865647927648227611573","643315469385456391208783895641207435681522202275204754606513272369748698154"],["13960476524193907660509879322429708302795386255801734703536588357131598793039","24172498997723499716278521420090970448583864169233088922507924927689110400970"],["17277192984995286848461666303461208097519992331052046098848421397630366922090","13850145304010140380992473788408871802826973382859584835868360510421356073066"],["17322482835836342707834541261994388793014886795604862942663353796526399237774","16707677394938434802644652921425268707334725126889080072973456673170824549726"],["28293832695717773479582173389184088422433003057318221333279504627130529521475","9718713617344500196447367175676318578254868853450714377122990756810988756361"],["23493868055437457283550170562281481972729746871187047459255980990034545122921","790321929528663634576097029008699186536450804318097026635414855970164983195"],["25886514893424976809411901659445641285825624673791589105872127636042170920649","6001383796243966849476731901241383680444913533884945380519540434647969893434"],["21956414907324430620421064596905741434200145760528172105316989661103043601933","16788576789727609619105396527340149936650577354255889401233400752011886068497"],["8909684916481373029898062509346554551662990424671607531825255469581551143983","3979905402934785759830663340459185695716134726933838922315136553223450808447"],["24094698222756655219641430891630041388090887340425331427146405955578555472205","28354737410282590993919559724250428325701653481801775072484103843599284423256"],["15653538522962942714528726667862364685319199622612325344533884524355736287681","27164378099307917461755018115994851960026560713525307421921509686762037332088"],["8765681204552964083885226196587271886956593127343714161836328596841023555529","23764461195121806069010244431584992413747195793349972873171737428453685092849"],["22258022094683208604563958796889637237961648128802625904363739095714603427338","5581239770875181688151102268574565567824073072624377003881052563875728807998"],["25358630116418567816531621936430769095780290247180432729589493022765085956419","14061606056975628214849149469441077461253658785314003438888420030191235598710"],["939566824262788914633669247524312942853161833698949827466082790752516286806","6005720718396647873116208062284957824351218380128223298763339803137411665262"],["18006419580315300315430877776540988305777732046266931893565553929554754633905","25395585215061311601989858847260199888268494151442516278217411383979755469817"],["15933460671108957816619801850997842346697178615909842956887170161085014347258","27227746182997561016457176606594452530615134628599293883018347089216562779907"],["22638185147102650579233951092669792823924684621798189785664269696394810172067","3390987759115442160235316650515859214542146878716721039268185189125538791082"],["24575222139739442303163307599363484730048861651194053859409768890835313241025","23200279248779528433253372916104577366721323352904637566261650864558268287760"],["18724951926134524877134251180743951012404940491933495396527740251152326843297","18846706902584343790122590739329415260135154849271347593343164015565562543255"],["14350923277135743424650486682771395349129251418923423332145139291008810311111","13190834522712574653679906193637291579258240997514862633275914509880856361040"],["28390163451583002886743723954686722494020090577638371193232684561004412731537","14770072158420403719402158779809178779114134910942857268604612783251336456065"],["21060105044314241541113516802099066799184308210026771877291093013701856764281","4922704312917865996057802464052812381252503337897077239929003585184116253965"],["14923772834893828319286818300868387578531226390180894767126500888914791867886","24198168050325907257762002555865578622709664853750092267389896840225084482625"],["25623499602535093484530028534643181864031482116372399016544621880771626096423","15722880629013707245141477414718635980221507650437438018096706149458008660149"],["12857716514063110741932776956722291850022925382982079890251761785293260927397","6529309871058603549380523534628369522745613651974555762843181101161725957998"],["26294947208516370555519672259317054749155033389836843687510362829125081124662","21886032421267512108547043190778118758529449776380026226714548361959752255771"],["18260269481273200587683283952352665580374999837931750168417812522932791501302","18184916663644143340492915899280108484324880168020849531302778547293489832213"],["20289181761713375741076877875000369592398426598613740334506139886613061090308","25516412922985796763694863884953617528376514380136589162237862810376078124826"],["4123930027906959794151385299598283271165646585677914162054076974989304150735","1533467822846244260896938863763894698328217554119768276339472176032118556384"],["18638636516105317042892611995984759006736709625987862987343825537509018745532","11324778166230554670198931710802254601065218206684108945087559552121506673387"],["16153421743615043854469082448322590464128752313409443519552873202215394382835","6081331263665523568221899065901994386019453632868216264716052543910822756701"],["23225815212137025289635648625440302441941723782198311758754117470453912721683","11574237422409819606624383103591274623848092246266700201736728192090778997123"],["18436124060903244252806356431829925415986665241576114012674982252485836882535","7915840280527632458450295369968903220530842060340192248886900389906174036527"],["2914931144110843804323446597065897933703409741356494551849334292988756986589","19059909308003094787850910508221455494117311299189121721848352611800212160215"],["411816446100921426189183104419650873524366219485242466885292638462180372368","12550724657267056998270771255017918886868007249782144790089382621340219459557"],["26499826072726752661304689612212986555398111603130634862830220050902048630825","14138008798379037466509727957280272453019890535582319443317949966492357874118"],["21818144592110129269605650236513067238442587667517044223658103067808715623915","28855645739683493564909629377930289140326576046925555982758726008086358924346"],["10255830885503722135696863447961685957721514271787864665844815251904652224893","18740617740476797202592376282276927291476485938747890421174091353336325836283"],["21964800519543392687452248712415004803238999105381897344429921750153926552710","27847570519940644680109206842989082244162309264544587555516659954276269133423"],["13425873456412872478888714904450665817778115591892986756575094338844000688081","16769239244256491899285764427025481898236133363984581397990052940299067726925"],["23240148359437257668937282351030827848382324425780783658100040252145485303269","21272880189317870031463311154043610183798816033962376218751763062405349455008"],["24537118326774864459929031957218402193679088072078431237031684704985446505463","8288336582119578696918775009822099731378930505391137461791698720669848584706"],["7143977970730641992076787787122322858490867978567152335795223805036732396771","9643480655478784928825204331076702095728369778211016974963945832004916095714"],["21589612667915203034106726717604745808203619697752136979752095601156190969820","23058321550258680655767704145719074202050100507320592187054378462150667412233"],["7419376288546871482296024721587265934513724486667624126002528738545150727890","4161235202092476648867042852428176689391561128404223175501012902455120855040"],["23115727257804712604026107452620495730710374087051042363938879904250304191281","26017554951361750184393139879507311212637864524989203344026445765542274737139"],["23259211372509159195693097769327125010857453157262048967258524057335223040453","14689293862241741949758914437253545255060010636693218066302563820760999152178"],["22377656516634036830960270825853355871127453892926875021766845482537733008427","22252818361596798995239749356400081397854529610756706251122731331460133998008"],["615803194020996533358611738070718396900584578222729848979997136005728272952","8248924292667214876415298329087711970285112783438434641478594795494697921642"],["11776178310651729832496064021364727839726126928559916695508495131704617602513","27882470164665302559831166889765770983331499425146036627946517759331164071042"],["11577745724380376410865093217603293155330966326184967542241147078728945149734","28555691292401931365503591012993591530704532072218737480119513505119289716072"],["24790881878813168453289256203525853123345823044774448918752464829326682299797","4221745332535804715283578298424925145647276954356421387107454242248892998559"],["24871279313307111968185517737118402332710821082495033537694152848943429174281","13629922349220864845220213739342817370585986464746835911002279613644003899160"],["3632159295769540389856746264712778231132655169236454773421686529402489256422","25872144962845645522693072953743486804357172261966371501973759273105130588692"],["306930943532526925291760247698430797627201709885678671596516699586631663509","24929454776139569586242171483952830297114386722737659739268374926198367813684"],["18056764987898600073280384598023864685473063947032602292871390493184710901668","22632068608021948231041596935216525641489818960623474529315222862051888251302"],["24085827144642400087852316655436964909241081507257059621142105267024885252453","5915057760485457978332258364313511089761949036463831731195824523171043247785"],["28796553194732148043239948482716481458258517047963313084506840755392457720955","18337143996320728404809920650440210304192104230664911707707532586638626621080"],["3060955974336159461621416923877479092839013301588452913308412369084867991102","15000344469083737546642976566698914875106443101394963987845348704081606753521"],["28730953537576344162997789135700609432128316169993879822390738755481480638961","16371181264596100747736777408198925835538721013703275152587639723244313900766"],["24043151823484211176886494522712698901910213856979595847129158235295236570340","26733829633452426571180448008090513807345671498583651325020651417219821030260"],["23573543304912624517361521003687092921642182283037107697180638897930636808860","14023844945317568400670686108736118927990414592113426557084176365101713368559"],["755341814126712984738470507619202467038440381556147065956336757777578158419","21417151289170017711401633553515627846875130851042311891580655191081566727433"],["18896174833594648656663539208591867558403271609026947934931034780319987541602","806232122880569071310852915431169783170987544870516539665096219668467952511"],["21816705973327218942956657705947490745121201343036966279099855510016496903448","12996250975439825230928388910040553915975709960628993442296500265204861370851"],["28321141911535504553326420923263050392721798053848718858092712734879757920997","18977327249613196281472521442103979625800756982087499202787768797775763251639"],["22272987583972027975580861341863171436188433655227601510114277259870527954057","25771434083217849661206798357537114388562151921648212441518778248112878386090"],["7641040624136486383795511863869334849870839716379869653664968943390487547243","21115223298275844922683002275206646888739587984389076536371601621415884344691"],["12132789037989001187105329248508539191878219437633380729673765282551653049782","15449275940014902863052495725449776436430117943934624598325901782225606201295"],["23341109507540401562099844484845529391437535563368579348532901385332949941891","19500982162704107911704753684140175835513632094839415660058556061193946903212"],["14749392024852227744549241183748077631363489639399350817847123296779768850736","12977616243045419555528502203444776253657495019821474964332154647241133840744"],["3010123012766841904959038354844739175513700511721835528565346777388299206819","27448156027518839909799658130571565486112603840486994579105989072387336887171"],["11640193165247849477352544726979796194435265478382456341713134676470645285991","8853675377216344980412636737796666086323512615961326289150215148832572135962"],["26858605035619111825888647908348748198949999948910700403770645400584935959090","1783697871807697535468898293837515030258833058689170190433223252754699832755"],["23943358429252192622071502277729751123882136049225349333675139890342168482806","19781265103165110424140256518795994157016702486500092234203987006531426993455"],["19623644417950013600220575044952282941941181784861099269392264898521705151279","27840832829552764299303738231202250055799319888512588339607727808725525117744"],["9118128450175483861509938503705080354068326932530209934974977477780456338863","19562430477176886669654268398731839524788898447863848461697496128185857709114"],["1076821067274958314521066023655102431573488996161865663170449576206712284850","25914019381106013345789446339488731481509944839174264167401958037217346049043"],["24061673546147102748195523100003454079886281355024711926296540264209560734745","5871766587204703437830487800066932760282807457006245073711644204841221771452"],["10190595507970382823502888036835860485448792042429107476435803338477192600003","1152376402369996349531764443165152325927920864169023625277838123969257926760"],["11152191994509581623617983892561389504759484951774754507041956839302424432049","22429515291607385303381469324102556799586920921351051150010692907027693954607"],["1921716783247678107993367056313371355962255311818426459391862035627752200700","19129891532287395672512942819320317570337590356339583323758124175992032084516"],["21318270248829948335916295499228580959289664230946988686713158509381794003913","6729071915507486595935724434654950015737577868384655413193234174544550089773"],["28238922494830321098103076470686210515487185398943122735682125453000296525851","23936198754450186238000339894726883057193149521843341868385688638525473856719"],["24974331818811559451301482459927923761611639535158746233911397451755677439599","18362160038096336875769313463727774072052311904624202039022155379501401496351"],["14622054717663931651238220505222752457117642948863596405501103708761770417334","136824875587814911876843489132439719882962505967471200598168463021084130032"],["18132915470567334208607421409131470296749417133363946440203464781264114354103","24622035056363299716734178684221273619622145425957256471829120695111023706910"],["28754920904231102278375979617436761138819881689548968047310918400847887835452","930806607217111542068092714647924615725886362307345872067194460528763149968"],["9881178331263236938041047665249764024119418025863679067402750266445082413414","1702756084757937380902987225631470300957696362663118317821964421716022343103"],["19154244277794093520153963763729414991448066927640325245208372623903524802303","2777176021007758107238334755137107185328177768985980137590146926096144659674"],["22114601100975067873284723028383639704482709037375327199946911663568308804922","13517014342785457510869692261609983444837528634152661823081875338035536000846"],["3219549539326210874819439883793939582872972178441116865676427593534748714530","11511269130595239396502072346429122786435898694679871523638053211978828192472"],["23660591631312006427625718137596823644100140661191233273995341435097302312093","3526807174161253395196090242511722481431312857223754875102666559320727793634"],["10929924443511164298130203291284026571025160776956111372523314609559100118130","27980049560994070226242796427722754479177880661749569981976441925742838723961"],["18463219156890234498731376305854588955286067179835481301088865177310103552298","5609531688970288636203807318318662779443599458671318991277646058817601958429"],["14824578797773293349144500881701032289794806318487533994381900802227764635378","12059687663182671239188166980341338082761495784704818172538649443260884347124"],["28091018761451918185382434008582129819900884481333349639302000180509046969857","22438451434078582600964158333186938060101644897665054006400672063410772591219"],["6837940879135839061326678067065604837787487802579750593358759080465722563681","19584162800172621655508535412097850412354754967250207908153674050126227078996"],["5711626450747756012644841588396483487037546568371299821016085573199801572718","27008617785172927807198088614378602160201123568893772190356754929454077040652"],["13741673615294258180764979419776539139892581761794479653848912136288424561679","1494599046666681048215877742432067444918595787136444822199619806385443284785"],["7328872038140260561804651703391832384282077096462560872891043306672225635846","5628386737617261949970401419005533334374900285803548693119958928245138290143"],["11356173392761621476829469856330004525613819515018017673312834001797596897187","4253191531917770325094411754087829127075588917003921906831427617966868280640"],["13657572953254422589372075488518266397291514458120378523482738871896169131195","17262855264066495176394030511305079196786965156550068505770339468475217278226"],["5126745858719398083339470067098477735772314286052291434367262002346784210988","17358735025686337802693907037283438643290006675024583678618551175386522611572"],["548900867390195361783885239604472910683622220173971251800191296358739451635","9970995183887184249631645066568803114050163499723140171924807440075820121234"],["19518766450826879508746870287481509336036409004008200176324311703394942193173","2334844060991139866834060620175239082751547130541043972199898153749893139635"],["9721454548435713985942171060807887605751346737063691957531046156088692586345","7860285596875233949379227706324665710616296434682630003186613617432739414964"],["15385999370760163732846338193743409230560978098665892040536680118488472387468","10978573680760658861666390936599112492340955555029581567118848195062465270697"],["15700781606265526548080097202857182486527054179053575215667004834215018447554","13631931747583677558497102178510669861416260621906666991227124297372083342939"],["2721528777442760913742396002918162428965171662758540896324135167672602837084","24130669497905176924243250242833720800182232970050146739115463479005564420193"],["10842822342831823675326885688343242412045187035114248061555992743585889761950","25351537445747597173953913179638231228261128216589288455544975429570078392296"],["1196676047741538177004590027555577074579924333938153533825221555734854518072","13458165043828198577983808211023983801844607810287648348166700295165555829737"],["16634593451848515350126450177709081859155035138101710424811799030476416436966","14596954003668171392987928787377662460889936247433547371242429258950488176609"],["12608698173977445260816737860213914551074198291947632706376075568004340265736","28915286985601437264340499412574621436951581710020436430038655833882594790185"],["18717367600963973782264025675167929133042367679064186035194444151086118566141","2948091505352122177507708167051934985223489647894128170758027368280941785429"],["7231935514589374369316972144655428841486762327561063050067166293034276006795","18298554511784405208527978024507963659470973248199599803533748732868027523721"],["24259511684670800003408257000434738253837783114141478163711566001948948279383","512821759426451766871786103275066253171899428158768778072060436655574190622"],["3571737263745550726818213198235712191313417789622609214327983438534639656008","15307706641890461658120673421551033854118064528503907752937182798822373237214"],["27222565400717169781010119476503557283432710664655231132275530284182293509292","6242416697213396121682253972665019527202836992828823000692152874681654592821"],["22773740998453843948861015613326505011755471391595646659654871414702590999256","16422331282979801439894316112399623230728175348283278907938570429327411631116"],["24765404223744731462222843590317136399240395488820954545897246483566987738177","26727742393529839864996312513112948484003062661735498091386487101446540259291"],["195205087039807138586285522495394551525289897359369275616539599880285890229","15197984172637228233194387027279556836422548824808487219614286739551455388135"],["11257943229397990827383645108644084773128724811727166726320913323716421515185","6006778787952026067576048573249439867902840295137965965184123056928188009028"],["27147912348974240797039666593424023548399595394685874774574144414814601538018","25083710218462259941617475235533392691228807714484862241809839903405465025005"],["27335044868091306340894808451265759553974511454218736201182863319835425411799","20931003701528240587825478138142342600898730213881038195410861606231281417211"],["22198182628976952513796275794760328846064668691803789922015107793938042425983","16311208817621623254401428995995028073745729668897653593434234543902516728447"],["9255992669894469761968441221622129224434656889525574358371318913312478931572","14162665713478266812899628219384639026537745501236604712248989491161785148146"],["4269345270949823363021598535708668189403913393997571610995157786405399840893","14772253707941294881154991439270906350082886583960283526446115618787059459024"],["15082468923770661146126976344670954199262400657304983873589253591373268418904","23096764409235037861343178366670823758179399687107067479926424569691318597579"],["14773333398015283466152181341312472016494844183059412382725707155563371499862","13206437360890073694278976146187536521644565411949088893891410831452564199290"],["21914250748621015998109529716557049717524697821479539027172877889504298033053","13895341344108184437951366774046667322493879439295100718288729443553545430510"],["4498983634739064760911264505875314736760429247054375232502419146051536509052","13454716849972819875840134587880871869602394196398364651372394129086880125872"],["8859008008007016096007470900856774561660604930645322824868999592908051863644","18952975605664993730727081037000039482270739568122659191203561118984879465759"],["11542731602313097736023756677261958878149138582915015644868498457942380245154","26908319362891111834390431782578393871765945575977116398757168767722553061431"],["32370157624814475069071393125850248969323986171737830120003126677636348118","28897072524835666999549034374112590408999041749586613392872638192900405297394"],["4582379583315556158876538723816333227219502967017735630293591135022661039494","22915905070454365368604066706330626390794412233439177668888741371447402978190"],["7995022196552361847391259079089462563635794609559340054988759136193626819593","11947572679654659681885817465032820702100113018507569664831518219211746335895"],["3491153569615765907500728379942969780409639127229656332827450567664201742619","11164140823118814592079552362418214853019474055071026579945381511583619396511"],["18767690853194627797222370894881527059723779228994254984084770970571516375071","27881820615738871890394727885213873041383984558827169264636139595314352233746"],["18404910164898714048964484184141973214154942218961118605621644979852955078586","16623003964470460670432743221806200506752749180558238626573932981666735330339"],["9219317580636445282261381611406749922751685124866196080544272242404213299080","12739781783761407825988693500410787959139488607416090219287374218419867705437"],["15922657580019162749217284169458368181690812476780970172535518426786247587982","17674395126383448161860815839522907276571304234598631240903668051289419694611"],["27915315087039007484306225267263903419674378367899844707337547912741895188323","9668848392984707898875465327179094870219617073667735677074878261039341209811"],["18750790345559195487025904771952285291399022820832445111548467586171336883930","8843674139425249506986579292323878283707145350069265757351464795225287867935"],["16082380771465190926838143746030662110437671109304072334188330083729054887370","21193469952159375260516700212298122619983155571956872644890595680153586673224"],["10060179164493149655573598367068412768749397440727672445517752633163584785503","10212529089353020954129730447301252643138534455476028077123205479931820686524"],["23239946516710399371945220285706601308090148609486081196629923915441989499076","19418926433448640708068571523217321374963404617986729736229303871931352895522"],["17543909204776999743770335164660382854697959117912364467488976052306951700316","12141582609948256929456625689549806734201398084299399475266618885811027763654"],["9462985577595255548525202002841052838750494784434495719042333642018758453641","27680843309778258042146493024384774145295567936055290372949210417771712318503"],["26810808438596372540883707535068779759588843420418146468081626373931101991488","6622449695582778373078611320167982229992081083544716162210667602343563169103"],["27508535076610291775746740642044209078127674043808088128750522824372884532803","9651055827235537112215548139706740720634183878994307301141463044544893191903"],["15697695967210274114649988693055939907590330335864374260638238289355229781582","8550318453138208378114713330368158429658747033974437842569232703536899205630"],["20107471621840120669472618491493138169737986120517153356304109196110872434098","27009026453152232133148262217999584856955712353725675932448348634912754065495"],["1615166624275920714340505135110671429252874343780884978156342307766780970882","14889922363658111728481609016490522989974966455005156949149901877356569709770"],["26001718802235473497512265065341937746603500983240748021362375769275885395119","9669170458806510080043083789319982327474231429279633051263693148471075981897"],["10705028007284237280227320786995723361129317787173071051596766480493985106171","998016669302101490804222063586254746018519563172893083890792163546540897604"],["4603356363081241486413677585118167860074184091744358863228918196648244289979","212161120273945420802163219616423711774929017549478419447366152070736471418"],["15067670901566951107663768579258365676363744711466298591187431867319138032092","5099382208790470250417467524530355069375126657040017520170668209742327056470"],["22401277203729559287401765819596585289784790480573815814169933919987153055733","16664048787471893284036647699812040751855517222113399984721759652454023590092"],["13523152764904252757662361755060303522388961407885729609608740819505706917629","21654040302333020275642123338849996174266276255290874541900395849919460118455"],["16944131070603828718559535076593522510545469504893919214537012379355182464163","4270752814241042798902453391361003617763790894853371927351962792024049507400"],["22127139860351186497219728150763131977573011717464323073565095341431884317745","26161844619314440737691304887432213561134784783096035207144255842570421796342"],["21160274705692833735656936021239268804793932259124763559458929540614101274095","26687956277473222667979616205027045523051140458003932588458788494514953625229"],["2763566586799830984962350261798814714796777629329906177698200856940742624142","28590979813839759020707244860706979865901696539496186243440384960794683325459"],["542419336417745993973570761071668920630696745612179853782843739347184815054","9675193015102833282425598021476561111414678432981392623891091320593385355044"],["9201688244606001232507514659291081746878604369476236132272493550689185393960","26577877987262165120066153075594002484474584876916644176745160721443765284512"],["7594541622457475944573370725020028488488319694035836482338811152438692711761","25209932464806083120698804288239167670471684151489991460755167078980715670135"],["1549780138738453332916750058871737115083147458039384359777515506242450502414","19334678015593618521787692401081107598673210257355391063460610667856570345942"],["10552462050446911718786521954344596878935344909916016255739503261511049902804","23079296907243262747950158858732667957661199837832396599320558964429002254213"],["11635835572057661196180542015492379896513664649040238419314626691590176099529","17490837815540093240941075225921666607729104083828174236451342168217138346010"],["5175899599015796375320153883197103079326193701286411195142622519035011893914","13230929507230437130813744193478776124515179633878353370797791531871225196307"],["12139271061514999741996670087179798218099680875059426508132206620194596200710","11161042014647296701220389175565810256927592807571825294777297540825157748354"],["26756021551412395300796877960728583854162508649843978487325864081568939334969","5498298845866602676673942297628167197094097300858737057612911797095414485641"],["23532084169784206315387681178504470494901357655816688592491582362676013732819","24568972279202022219460681950828024172052927710180824880958727826738059899111"],["13333843123395734270845177904725119302072883503329097376247875690050962712665","25390340294973302533592870655309168596848390639748379085976581555032379672303"],["28025008193714355891874823853423529107597516435758222663994453102529751043515","12773502977241344317409263613150821819218566634447728401827171015061614873650"],["18352023446011515398292047819715220143077577988020370234072841215598027199960","3337340308878504085283428868255260516413627295510746821797388873502796331553"],["716181829299146175381404112917860923352924466170839945627600504911374074890","7071721556657686255290245340135182271004120181084214050108939244556867847534"],["5284381277950471673921231660582947526956475374677925505460772842850213905566","19398053380681355546701234775218345218659462671551709710457743955188784769238"],["10207807848204082319030054346672755706294634791717481199830846713884252741217","2583707809781664964450368291144286660077535325929301446774308126822269637794"],["4875949439972582630476978262289516998737585204623980764180844730218701677427","21390896822522212893947257012898741682874007874155562340539418717865411794124"],["9689586331544925421769270503495666524997765090856779065611438462308500296948","16066382728990354350065861676114046923378253819486978685351573377220933492892"],["19402958735160706266793655033108378290372066282904134821136519480798795204098","13327719940246601872322841376214522324682715815665641468777526601653210660342"],["19832700514403599604085004574060532055096409701296220152888057554262863091792","19297785417783392454996246424093403874193727996247878023604545519778913461142"],["435610202386317676556004229926893154866135238105016520114993039892636030716","25950723447689766503289239698254868534334685262689709052674224383551951566162"],["4412158362180830773603432097270849235828225253527713856762586697133111902542","9144524255722124015320542104358585047065724017839287758888658698317407380128"],["3547886057387795583454671391256815585624129663026865868477701857884397789681","577508153027515462380916070615905290713164295782177168269230958467079237261"],["18221618411893643008705807419869166910319945595867547054421412570637117698456","9331817285232562229136552683309190399264811541028026955095815296292925627596"],["27761654284312310338292659533394648971843861600684125352905808720064658064593","6836097770377666289605154976530157503455875036234622623476396493698319398566"],["22494252075047444994931305235942314400226494274579675987716133175183474207582","21272837011464586576929087291898881460102647742706314363349634977632426829705"],["18510019351320849493434922964103903585714237936371731618313425715592936324148","12866378563163413492702148772534393555966258811262123789235083548447663417297"],["28242001400822143074623750128674108867263332843872065624086367677778956516156","3229975380905589380523783144762662038558217332275038439764421645149308109310"],["19493528670865531202833451395281477413765316979156292538619687939667843820850","28835980532590278261635539430110549159145273105006338624839390277806821909472"],["16725023096884216761465296201597279279976947820916688675868056193951390308897","2423716273829942445814915017918367611744885009233527669723929372392826562779"],["20231422462214807293317302044523441075753920214332520042719646584363369059885","28427955325051955163174461163842363359270271599614679495325453882826378902308"],["25293384504889856251082427431538315936729634294346147076991518408301260516567","1047744134520264734407727069176867764429243312490894647046403654765151311"],["23471683698790105137444355617991998322935128121763757973134814897470645810121","8672866792454973651487728227274927469459825182341704769898184050028439574625"],["15380770111509846868377547731629437797774521167221486528420706617345874366942","5446047828048735122762453586331546280389994710425397305505167716628281251791"],["9974942026084916767970504646449517164014148950894694712752794532757193017716","5146162792393385383893785727065808460954834071140614193929466247051604114264"],["6555995152438749423139228118896887486064286779065039119519560091334617877504","16822181966953501107914317378620468519845580170801077072353179925722271576659"],["8318063858648768881439528934901339198689466109459766756864178087822743760363","27472689345755303557298465641527188729814462298130481924024073637126620522189"],["10644111461189627555146471391594687322642114153591539668364659679950761168536","5119960838210420604375895838157883973250997624580954709661008131254353290704"],["12940080967382397990275843554075804438786364627249378416232200026229627903520","12369286191267313882134701363483487406453222867060239283076164648625163531017"],["23685907455006216096268019208685755339997076265484418259301155243284181647478","24867500506338248890854967676704424392977255003035160522406018721890522651125"],["8776668965769641883796927005131356114908088838322106521621677074920050892335","12098828146301543354952593915722681905557286066456969849168202705717877746499"],["7673718173405971880697590491711329297471803597809340812323446223207958373528","13884682372202156025207157638396636547116346036515812387908423333816336300302"],["12968915479597783964209154323752919423323671839999047970528110288144727357787","2303607644461912244044453887818086795835360588044728593273458063303602741841"],["23310927976201128389687473093974678400038095932921861559606772679089942691806","11274605552879817796930132028668415193653589139383814024989073501376258768173"],["19438426166224911618939236511551704152373056385901810417391055744582088312637","5147816823646873360623363462979238643004900512737856421224559137691259791285"],["11825124022887259866970863324618257760349959715493528904314900563338390497360","13347533378683687471060750343376093327960609850378163232966169168935377855913"],["24068806522143726619178532637000386556547026227238348170904181932276126865493","25723704725892221707485364138700752685047510462167551640113309622574297639864"],["4883707903259584778441128206993669824068716924894692508977289375308861623146","1621003278963016008547893324030469005786805624921900724776757484297830103224"],["23797701756330663138749037020392599045550313535149879188501412301072607144883","4093255132418803971537804068152259368466922004665203466493901047419842589125"],["2864611108924431399438834474878917090101718150118600574617919567229142690267","10818517633405617627485603045537394850969705180329739237464215511204935127653"],["2164982188243644654368766944740898268886262772840854752652318813565138336351","3498321352141956529628179059081803000754341655565248707056889196479838742056"],["5727135930348492046626196284934968086882648527919542203032733735129474710976","20570509900149097205510521056980901652774250942332984250562628968230597818410"],["8540491600946771232922245185437421733374762181375444558545751891766351623827","13975354924983554160309001279976341445507431680093338063277718576465673646293"],["25721297950891169472790643808798927961698262913754423290251901502203952855430","10611646540401182096113273474048133211067796839653763247169951236264382102092"],["13176822650635856541677618774615103794267486325348267883759645235643066406329","24028586536678138038919430574505224449895258992277736886812795155375391851823"],["7032013216766518805130710681161609202634298314772029508142564055184387061216","24140641807978676457131030395982107174793908094865720374868563088310472236669"],["20818488353801986296002444970906373121946519906741145493566952905475366508228","1330556692031401165542875900518326114312311423123525207594238070924805361587"],["21897341256391570929920550455384646099372491089498609239784505188662932576625","18879335273931319077358674938309532284856944816169207180113214371756974065790"],["19980413578445853898204114327797702030263063125863934961512475444590004708123","756391396895272729133096889694832069352749486972529496071526065734465730275"],["1420753958414296137485964322566955027105180929663538827590802753228655201285","15225690310480571682014419228840952473187714043827577110867395180483285247622"],["2212398591389557777692117667664845690704858139346567221828732347187303845962","27904854421535608456613125126541866195090856233715795782652322176603508486187"],["17195410486389713634674209155293688246541420018447011483307806540410645457066","9792145960955499828285194285193719964411653846583631386526862172085001818093"],["24396426542567478962669091857452679696557136331985865518877327613870362385034","18166604490748058491164475472659448132066680612983955848203531338922805611070"],["9092430207715713775289570585916268462691998614811954232899051779385603922336","16632449857327391889397783134022196437192277663665451490281994168557762232033"],["8043347826077303840976295640999117995589124359180623750706762702754499185134","24799847551115764503689675885075628055451111440067951725719691435947283874104"],["16506151489210265211186409945036069155222538912052420724554511891902757105456","20696615598799297885093071418716674560969074414377666883763354542045856430419"],["5603485549719289957900939092495949570489996900818856530803393755786377875320","19184526787492732205834232369513280428943623631761357508137495951156071323457"],["21069222742649841227819306643811899789740546636485245246016577013292518891076","21141829143687827499382087706914739569056257668360582514619210502115847645630"],["24295850377639770565595533501118490320178270730387297905301370062647697104948","17149624323683280092400159161898238756483621143298637575657906878802431176965"],["14541065412266370944695284258766326132931593642948518951229072650269141209874","9495052365340311661492448208999370014414391124230444606530424542373780756656"],["22887576839324978224052919162563719607481876594494443400033386951988261923670","5195570380123166854609791156081970359628071015459838137730215862376416478464"],["10079066532570979356720946889245341758718511726329046135312010467856226124352","23909464767239501494647203441057096490240184436063056635032275068705062645021"],["3227986130767879135519169115947898230815571771193904254419555050611551046752","5448431089417227948876783179904800979889651163329753103852483522677838633504"],["12583802832772364068794760231504829381908368528028953064636678342280708066309","27556122099516512852593794373956795077842300292927822223520458110025314511229"],["26122715445528930934515389150613055340951435279349655362944848044876577856570","28540741519698480422591588988563181268770735949950904444246945945031603156961"],["12613130853822832645204526300130248836539952852043042123986340957350837150799","5612752690142271620614074577284797500239216588191242166086179176959019190542"],["20943355286136819771634766383685982605110274231482074385648949514385393511949","15256456525013930822066487442928842515019658685995380665132870396566077147863"],["27266022117792916707733813291863794374627509207300835829699926182971312691927","23722771306720443321317857701579667216567353295738883961137368214900738856466"],["25006728207284282832010353004012909609373426156898488051143376699550802264546","19137047164640809258300529344860185742250376999504487500796728662938875941489"],["7903018352185980893535153445156318482197781916983299685613806204194224286940","9934436503117399968889430215296701329810448175126905217295193119769891866662"],["22793806102632621680999950043867009420629872546144899543456141545345709774075","9728534564873969999837268812296659447112209271866680972710478823035159226080"],["6578831772361306052449864790212383956716392166495377929774678009405807739241","27056506550364091360975649904739267795293734105620361796754002469762985167222"],["11384304077975584091691893472478094616980043109987250885853253426284260858544","20323120124446617827805267423576846001605045570008986460572255777883730588854"],["28400786136857023117406774763437182039250385460299917209026225651813621823855","13346195228420166705412493741167858340788132558420745732801548984264812148756"],["25976336824448202336273893930637834808328998999197215861391586634075171481680","14640615466461464424353940409538059857444794896849304072366830759061296568093"],["24970854642502381107241616990727154002929590591384867972608741424482141211788","26140495929927284404220820658392101437936840269439317696206871884785607101437"],["23285678020417957260423939983200784391979390486285703315918195737275896132879","18327677313969475335172284157052204669255224895922169126733403321098166627088"],["14042543712676167337164521166685256190147715035828707419301833156940276605058","8572416973127180335922828395363385435414774646791157273499658888654341425579"],["10682269201764310153540075470006401964323572589530679321428142021322362415831","19179668881360345197582117018606006316365944502639085902604426857034030996124"],["26986371795332005653218043016714251643685722913113754190193345978318438283750","20492533068323876202139457642135757870234304728050783611768687663007059864647"],["17312668235133408540044026319933547251298982309244200204697152395221518493826","27940991314605185770909801438066569805787675917169806480045375712651514119613"],["8478903030901028710930765264786861323410260533697084812435217517367589418367","15462773387408453044643592186739343733413892330301195942500457752200058229011"],["12652599492926580535124481871266795930063009099611598809660706153620634798217","10194730031650134213215829845755660443870336842243459489120631464525447721236"],["17798429565751674376388560746444391599231463570565083749559348159543399131257","27911044361847532689579513477292154137483541365604740997533447127684510133882"],["14285160547141255418366143562759754760943170113457806978366740333646328986220","5514199480235696512910381731733100612634682829304793533081248854955903393184"],["1854235904138024056514009565514936128006423637993895278194961148862775363010","12943396824196831463298536197081750383782052794341773598873322756724261532601"],["4399144600683131623525392914227957544592159895823798608623630222091786238338","1350178888054086493319285020656932443446238431031711128019592377980273368238"],["11918064869234900836934211194090749061348004381119206271106999485730909632491","24755304674969864456675155624725414312153646102066244744281185765503729956817"],["4189918758991090128776604638310461958169929787694974677342196104903768883509","1801098563035237287842349598147563129298866505986704231111823553009618412857"],["15446669089821472843816214244401420296150140280655803244349709715153241498432","28379599831461547841720842815489703641756463229909630965664687765247170028478"],["22441399378461449133149967651123614817161203161882768798772677229160854774311","27973238283503158716361374091489962315425464883137453119006308138186801136665"],["6883379040851857912989459955983017583709753520706673444551065476683257148014","3584436334805388935525735886807059549340259087889768522961583076700485929897"],["95648033566478039531394748303596606046382819786543683654237908565820941953","19485252233703471860931758931563253004887838672108217136347714389938238237640"],["8277705000866478768387696678500638677937449881119545303086149993244533922113","22210947644632444705273015795867896363556082475962417999850677789753532870130"],["25990677716568062439581249372943859733436528027322848094003660115725502783977","8803511508516412291964235591497815509621262608407801241748528027008478255357"],["12470511726860147562249198769382328900830328337363470458248837766500364873466","26508630235779051323809255142736136120972021583770814084327439049034911737769"],["20367818877448138007292507232082853409854544555016776691738550201426152742170","1997706053319429211405444933111394432292185607251352258193591677598822471747"],["10655935871567499052664621160959426968914098076808715840640043921213849743729","27378076814671344210115621736714460757886922424104089085677738648532238819459"],["25894463366535736870984170972394895440831320911818322354904416050082160638934","11891537695346402450493949408353028963204758594416667122802960967196657813317"],["23402612167419347481581379872768317885401190675297673246720779095038846302746","17651145615983166169930524359595988575204754669230769113074061776806627291553"],["15791883909899742466232867166832742035678043215788186094073087217353773393474","9519354078672163165402535498517296702293053022600850683349203044056990349507"],["7776090764314533607503511672050740670645035603523850786587954199362391102294","12053889704779487974518758616709351972683085355611262232221195684868923355568"],["403624693246859078677848345932388246749947144129787934492851539720929376782","26953520961146594095632444902750694071687001720227236698179142784253348379010"],["21449098671174567617347926268810594097651745566813621997757267645653852188143","27104338831943274064893462852454148875642212397294524681111224439293207893345"],["12539653952115054329736226522787236376910907221709227584450230963821381012805","10656297473770255185584456727230423997432524835310352113610732199535573714043"],["19721425573252520484533256784733329760301856259716330480610365095270401057004","25042461539754477162267600884578935844461757109392068722173594058660188285872"],["24265142770545988982707436063782023297271790830924373553684649451480309319321","7648311916378161666293708011880154898716669108233202601756363547269792524324"],["2161694309894695364074474863802083009099727551746022034691625716278581497082","2462710222314412662048064895603565377016248593350016395613500501013416553161"],["18911733335418825444347389353507103292124664584152391755199183240726616898394","10141112705535356716117371875344360377197110582725487285900633310443533011064"],["21777011170885194684384564275593087098886704940837344124116018616908663037470","3451679431168089686276823665338130857035030486523588558183797439603767936759"],["4100501579391790538451707438155447407581185165211619109079371638099100528540","7718912573800929249740576553751227472356098820477858849493535121465155821881"],["18862941714478337037121194147147382591021961939762314049697807015092700931523","25024947144595241290175772128723538359037084868786404537199944040718323249017"],["6270857061464047477083143288309484909616793327587924358320666525325418472942","8941816927293200268434068814499572732558665647357932965465620496514658814449"],["16753918861846304599394329997221632153137637148749550111165650148032224660683","18704778975751638942403253545454246906762564945204605403260433100275327268625"],["17096559542169114991486898329348738697709973629439247720275939450199642196186","86857301351450956428939848225243335040973169140884414743089027560538164261"],["28546044521978673499625272625892753868574510110304145766712719840177526330491","27263088304503178393220675236236007834277960802495064919591302657362001524175"],["8504346307638520887925545157768415897512367861634407901372346732953827881905","11164945957996179122928270313172303479448572101395764125723649735780885995832"],["24442605296194226430809997122608018766107179720884675651136041089789489382520","17325565751549248671649472642138243854791062998784048919531983182937998409104"],["774555782971250253434965204505795235629842262564149699124314405986843832557","5609217936801898695002212850116661817761845941865902819868942448279420471001"],["11754203224930174261142093576592285472022266765872934942230632128420605303336","3480764633677610041908021170818107642579266082674918027804581104242096892147"],["4242421128551518772285477914563820685561881315652291784593150912098897554608","11293176476069377219969149421311824466789751487329968484168297741473280167041"],["6580025639662326301697492606418162148090538283242701625068034213114153032580","10585044140616575818608009361548975346288026073888376132270786909372184257300"],["18063055684085244872135686445773714397003465241139613594890279928351045814844","11325279427480082148974264512878407281704049081726299501310593796850110818081"],["5319536562516184741916361760383865967029310628378665835472595793709273516984","12395603755336039090021328819138751192802549624032000504518674515459876929779"],["3816233311585282093216284092471442145215966709113985588387779381591057732532","8870027184472259109621558831139310819396706597416009082052209708403136870435"],["15893479826430971756574634680069688793379046822909005007021600799588954881850","21999779162574796731721546469352398624375515985842690970704142960580944549322"],["9305185884013342852192165533107695018174774613362046412210632920986136854094","10820105836406644383879061142417505020767239702851985329578004253030515473013"],["24383740145012534036216560864033783190461615537703216426637610747550639072518","9572765509936211053192741656903544487588543227702056620648994461284864214385"],["21005648109872014812584020792290398508103071141223489850064513192089000726883","15785717608134491362465540686843450504104985326049070632372602433713632087693"],["1102772154605505707981600698214173486559755419052756527653246542120640565582","1995179088495695345655820739352436506398582477016215931863412171854704501575"],["22998473435746335057610449503320863907202079452997410880423208232621267587348","12539190487436773098908143985850983695591315352459000713709228318868266143428"],["15937114866431241624559151792374670078488263390906057077874854412052848171970","8919205970853884334512792627739642131606763827912695107537901609370683216067"],["13319226196668396424199655864370493445196006585854495440709232143439067422761","22117659839505482106076354352510575301567656622227219350795083672895681536255"],["7935629795811056488287248500377600253891230582034299921583254527757981474126","17847332813370405186878959459633869383520056191327227194267417946219574379347"],["21410256310921729068339007776744631773805418451693554767135361676337308523280","19207409533407186215582497441807399270978974939344621928531973137042553935219"],["21719370037223886733433513538968007282586924649697046619439425070175688266609","6068004406672521182374569606376626807069408001896400988048031382336908191154"],["12925855730240040999879672614034585452641024569550570286395631259792044873194","602787881100264087098018082479675955393312953635764784064128345974464239686"],["28933233049950348768627409636316121492690973817751117546892607445732500131181","24071844456871503252786681380781117949846526502247253957694853508875757726615"],["7440708338294279732385646227602502638381870345596040693334736822502845918082","1781796569697947752421808229157740730997151227908083501036302540958621131432"],["20173755593563927818379610228329355663489980097733638532229198321601258904441","15622277043625126219663843365840964418970474164378141317616835545933302301448"],["4657622352135479714601233606993677952582940531213519317606086978219048072650","19929558037056111414368113627988619496006062458539857555797661347880008475267"],["10905546850005573110378431237669031608740518924786685529037794747077793705000","14666362753144775431935415577564596429120052827876111924445920279672038853587"],["16957170637067008096455225288100815032711820282405025152094077356743502004052","22656396710477685132433698696882874612466255115973428340793204239506155326140"],["7740391651733333270958018098398276527851183438194804853661818596921006579398","6859318385390585662464415948301105611293755515232697753951815259600839934672"],["20896670056509549938209231820988330971463377670335651086807735366749293967333","8811967505547333749561958129775683025882647752022339922883812735385836081934"],["17226757329350162897351571718331855713456733179344335990450653349672148311950","27713948668175506627755588890576032765957599440245721688751825104724408434828"],["25210722991246787915700108862577604392615861448177306182938252844098478077622","1830732772830153472354936591349024835326797750135579423652880289221271584853"],["9025465626573342004576007769830173656568214406323415882316574727231017825001","1354359559541426519269467959699023275639305765548272760915548356947425545935"],["3168144725585353035239797224419476739583218095626433226238709792213967653463","27626758212998811112137048553758795305460408560103050145911393597397116917683"],["3848032812796131446371671818036948559557481728844057050389375255679021217253","165423993535076617352486690178347039866224751605769736675122496238371504193"],["24310531984979224994052843073699310211152965401467187851547025120276632854225","16532156459214084342278812984521861941148407414607750706372122060516064822505"],["4926315396777364740490784823988749227250054609105173243134362114100114514894","19257469221985021042496376885448718253388654952120057105465737727173096605752"],["23037648002264976465457913583814070060018795373773601276651835426995022634560","19163073834623475884088939354039295409279623550929602004234091099299777590056"],["27508311020101319666336054081003112896493696674082758247701044150620274997070","19020656256379854227494131098186686163583063659036373627402664549912793369076"],["27733278381641357767529293136586558808632885216655341725228865347392057207140","893346300360509289815439320155448083812054770503817279311837708461319340109"],["798849120521156991724400753190981115682595885714372324226652732242025393181","17310558161662407581380999194986666407603180929265736957789272474749774486922"],["18828862699496421390965753754007731062158168019073260277297654171943954886775","20253408806933343180857491215058895469755318303355411329183062544332180422669"],["20587278291635158329300589632282277647860714854756580153249656056007937677429","20839368600228146983234158618863260148090871347920149221733786141026938149062"],["13428673991936959596168946553420003605735836216272412708327775853799847630861","16722751218947832872334682606440527893685425721763293492732060291100189549738"],["9543374477629805643651152244407870357110425662073251426763233171534110918584","28299539778941891616980199826141943495787236175113508477552414711649410854005"],["6828380559763080928326469352618507914273887758237953277767070521931458072361","11374221439719966634480610057062147831396356269696672855265225501448311128379"],["26185325900944336623318575678881989204337930820057797911557377428280096533292","25339406857984775852589298151841022202986270038513746740062714180277276332290"],["26215347718768607930985185196425874418009257800398794281678695376577844238600","23228049925157107711045314828046820917960121292322359815443859516601613422615"],["4159788443788318493622659932304673809792924572325181077725344367786658327485","26153690911196601977357309379070251123820987225953309962073943673168824037341"],["28930174307109688439824886451990135059128039043053949410521625013271366378495","3916809189249426477182817083449395542494004255243632510264159546358455632881"],["25444592958581225698464092372633821661522265127592735050062705822167742851957","18134765337279680761096259454108970020570126835750182184783657641155311978450"],["12826321615547105016983421220254099708597550184535096291674451926810212500068","16166120740727194041831634748737252099268469067751616940678476949093812839784"],["10495294270698169170557438354148232965535659595081899955183452812566596422827","9231783636951347215264777581857283965503680360825394985124717785762254248269"],["6865126204782819995782462788145625314630945748321513569280746786187387115152","27786893342645326899471048396405096945001735282180751305930128344367832419607"],["4206314807335674480775126947460250697111733526149295580495067343556605452964","3514699534481457058512892988037560004232431531312383867300977473973675231602"],["21897785406465116601059863784363102545170246713409837361818580109485986978762","24627477026303816642374176512800379398725079487001949841092689203287672653858"],["11480508624550555683883677873085261833676913531852784665969805893297909639029","4199791410414615807543833239536298888460051893538612613872547589803670251927"],["4590010206043705803750990051577758204739994989272837415257174804916101208270","26216560493409081717401909975759174314249702460693362407712147429774348843564"],["23397862944582345930826256721449143496247052313271431916236514110535273055224","2150772916888906499590807589145103404209665706557585520067573094659374218834"],["26716908160727019366570456783132425478083519146160102393337726759543269475726","10269613720878033605593257594906876258314121040428560534052840545108259040632"],["15791812719561619603205293817590150423475770683750292703559706680663601939450","2334923238034415652091757534378924566082282600537575740151483070513194878012"],["48046333355919019061328775197267036272070272938269964755994993005792603233","25933133021956334088307441841303919822927707637415661642752634153201549273699"],["13824831970011350058169882398968392712076917416942614613540651611191192646269","23184856046884250692461677689610183185215155444771050850723190602392875286583"],["16337855527117409786366942475741184088389983666520551677161843835621210651471","5182954970943305209384827068330995106663985956820032133295253813281056224309"],["16972507928763781673375842659158316837423847948988878312389409412792424667560","3602594087498227264921124964713118985250579807467970713894267906644097458556"],["4856068789572329987961049275578481408040086307326913177080200353580684839257","27875610976935950508377335972476717636990870519992656981144746621124317852194"],["28260318243210059925645791460699978408760329586596910931711468530126399580391","6467949625407188025317338150201335798396243639830329638955558503579111934050"],["7543277537011439371884294673409284870753385652495700723414540691936675973496","17459933227817492746568300311521615543416572660357472998593946849991377872093"],["4191148727530197665078501573585997520797512941282231701907548239909059585011","16869509971736758931996329025721066323199034226171383681807977879757599413422"],["22493053196839575793401768272207001630123513258182720827536529180292639978339","19812059350334722907776767839116670251448913200895004235854289088439720951831"],["24370177168237122356345639425196827462960509743439219297184301682689302838475","27371046898255792144287631278161729807608482577803632236331702956679417283408"],["26078566077187717320565610499561834976271949155496316289159587547113276005146","11765123761214159969874145506884452139922224929938493583960742312628073515394"],["510053274268454821824342384596294292440419941048190093374015930802256897609","14212071349206136334669435152089825472906300422315998221826288753295529639881"],["14366886642291075660784828714751212307246203314780776048958512236223257123591","27187166780982771378922301174714447449958660674393113353113995618460620463131"],["11430612276062410443778367449387050667071021480933044129668652532891847273920","670518151033349105371721988850777957519831129446908394644208959071431921665"],["4427969316553589597155326200079239233194852456290134529300698056138559750903","20565920990571922352680085950438064074161402769760084130500667329449251852731"],["22033764482183522605280951058103271309027042173572629648305880497069447953543","11177638995784208244244286913126616717297402540580941075603035339175640787735"],["28148120204931521910809438659232484205267777001680901391209031009639140976918","5744420252468655614614919011817644687239105143210651201932406466806730389636"],["25344346493762398138352114680092741857331324506140833285904931014722410421899","12490332127183293714685963514914062097914655588747291685920225237722338734292"],["11156174972139216071547938769524006441230289293692380407555391223790786817953","7731647125449525927747128538383242055374515126651386579527005849719060921804"],["7626006862929427957922686561595668558411911153437817403381668144897152453749","16996799291959016478525359841664195145246924301351960607133789546732436691212"],["28760182551607853068591315250882293081326700510744226739633070115583992469300","7444235023172209663010746415306237532104216507555663225454865670302532838147"],["6613918520513287253924395300877946455130767410208318076362594187891332194951","8302894339742501838460084911563592340531742093549371097685029194501290236579"],["3562086360097090707489623149255412285334486936778162268128795260620818905509","22396991745903874577437473689610916490798806084175818154542484143889911115645"],["20285193047622090726466897442156859785818654848482393941362781298726311384882","5056943957438833971906532881115462147063615512213840262921850539552078624159"],["16414449297630424649928618729377220055359140616058866344246514362779718996105","12601463563663752412131406162203137104076817301179663261251594827264363870818"],["22108151609994136661832416551775202277544776684249659012962342230534766365003","4085775337612737936391921080662847457806181040300542538168981293658461690033"],["13827525132967572867269729712131138374094402034930588233351439238919506110195","4110294692007628408162953413392432816852565450996285194831311782402569470902"],["6235822747160832595442692322143294937148182852543521101345331612617351119915","7639106819432253483312976011941481239220692773964108456593624332431472328781"],["9388887570248311128212296311754729796932151287209587138099912494092404822257","16612360067069089035674344526706443116791639047401555293008690163848196804591"],["8560183093227643359397524768371347058758127409439777117325895618025180478278","12639257526420073589155411042366819083339971857304703611755056389292364472036"],["6488067895063831732479143328147164283687435963261502326729238814058518196197","1061724305875823967868564216314869811153144403537411240024024179094704722479"],["14396103403054082348360633771282645212465155350206582120222775021398582448360","17708836921723333678414793270027868184149653616598445949478862006878178631340"],["21843195361256561337435963910760403897956211948889193007251437563892859600111","23715915958754814873999526300351905310543172486697278439116348025366127715170"],["20413423637305702249517561521405622870056884680846895126766426367360914454509","12863869513874037590956344716001198367574267778301859948629394096600183936448"],["11332337679051470843741910323941294704685442761673287339438312480570857539776","16362800326130259260991543277314800714903927483115543800952240626208949874006"],["648277929509567054780032640433625695057831459633910828302407048177353048914","5416451558419089926897152206969624407223229412707976788325066953271564802472"],["16192741674880055461237659516752004212554169400831652617636386241167060067008","21395108801543108976648060272559241837881779490103408525698017430518573240368"],["22334150286970518982455225432076341598735727400796773430005863206171167324700","3448254591462134618810013588527355495891998697730795283882601387289996555390"],["21505932528275128044697735013429531486546704156179786817214083300229923993133","340898493183596345335517398324758940379630948709554523993543925461614627052"],["28286690636829323914164577625399038327292844674583034408174883736231091589593","902844063599510509109008706782483255412017042914280717790041151413550385102"],["11451588303425710282236486914774977760975379232042456183626793628856871543534","22366030826700095808936640495988704280687885697189544545566278098992140214979"],["26495631764368849392400103894572113754798794144702787219689493929428381961726","17745813943480516422649850544912176163103107762287458225311277470648290711032"],["3112742250781315067870420647933422452594848337427233074827402463497793679785","19242167262174093001375479517339005491563884218243894954988983396299201142221"],["28946449839473226911881037309628124572838914097495342820854839853933148693625","5805845593816720316073952005837397790949649576732583006829564575865634562554"],["14505517041594209267207505331904094176325442630718873709282879094649869517104","25261815044874290417298206118174202806514360105778911367851812473126779037688"],["24633262903791204164748152244695530939069836526779317820656706987579269991751","1628587978965538993135586908639152539509665993627459811249422738448482178956"],["27176733245424126560636969078083904755904378699373760934633752710605479038343","24360721364101408532926815546391948020218525674805926586682696281456721881682"],["18725885138161444632427892677963792767061114018576324048907062500253971429923","9615061796016769029479771032559446163044393309472158001054519360070811176014"],["9397008807633599544523720844032952363883655561600731327583712454731692297880","24711210876134288059108122435692382263081729530590235867153535135594467425639"],["24795468019086250979182861784162810680868486875602851366666578112057733981522","491168853240863988199196053679673919584223302137628087063195807484585993989"],["11023830768553156654346236609938523502731487258565134905782590575867022599537","5424013700378005184601600046023703581692009083829290627268949337752229458436"],["18625118107343485377070146538530606027598557844121189112206802443363522440590","11233514430555259516209992782147495748318107506304550100269481070917189057967"],["9096638695366938509779591733012303997559520960010147964410377193743047828854","21146368906815857654457102207421609840329223904285452296238803167474717415868"],["8592619540803365833982618430835310763533164113797946599944251300364449499878","4946321716724761379860160879272279690292188297704898454202771778831322655912"],["6485751504403671019041860021614538086429201832040231353122636193143283079475","16415314762828852061473336149672219368126255632315912509905847871075106963498"],["2748444596895980626601187305679559409765484018746065963989022575357313594105","12876025201899600872077309783627004185154502788752308694540354972193733214342"],["2019384155933619022017005547562515206637095298050934567714965375822390210286","5387305533374757992518745385193473087826453485413882929864030270477166985184"],["20506610350157605339439842227664798344665777490346301307417548301992259892183","10517451167665963575856348256795214331491726559931968673476332632477587154953"],["24579913395894317716711305905235401017391348797095936763641585914194296080553","5545959631126588358599486149781407662371089099583732858621722281819159381444"],["10747685244507830615741212622884670301643982888935645701643847950401115363759","9859288069315754075902028961590229341258567991728041494786403061943715400370"],["7903381941476522328645634619179640133995545062277969481091902497849627998619","19132102745243614281368504719622850452345087667257409535274048489288061348217"],["13715094818304387265412580753153119172744267688317035126762170953622845644281","3592170862887458972583000004917616936615339347546119520077119140265945251868"],["8546580742317606314607091845255412128024195741959775771928583555968885219876","20683200838962634080411410604363942212784943465155270787675441613872002480968"],["25760980815821102632704499735861246082950426401593119588569569067035344774061","20965143994950601370706087791528170435095774670681508963510392296884345053569"],["2845432094245481219448277640067897536461044636301889404243738073149572479690","27489569873070527484985458180720420699563171522869575530217899987141320213821"],["25801079371840406260404073688302795027569987607629518318705203943968025937647","16822156095112155732234276525127392910917005724960922994175983244417351128574"],["13720820728217181876482811757995952798476461751023086228625524999743648912137","17461025873682369098350745323848989904209531203452295475151542938039322833169"],["19758873513078598208270285800509970334060831658395425810554618488520071248159","2029177653054098524401568682517178084372751943507941687479986052281147818237"],["6112858908238812300901983635565934054126644799579118255403276627049585666570","8539072482105352231372697826325224311887610017817708336674624814764071761441"],["14221851479457692595760522771215805392632231303898514754686802232230119772502","27719133936346277197470129318456331157359862340004461825300521229630554671447"],["25721920221415706376013786766963568873517176535438819700091200723488257000300","7663804606195518374065072145503791858597501360225641277149000037788673233008"],["19149123325035740874178256707186265539522374260174267609943081418860416731237","181152282925707199714183277150130504218712377762901321662410912857593020987"],["1402995019141243987057483401876833117635202681492157127445625634456883765621","2247647580466726335077064205573936103842295239035760102416475145225524338186"],["19921605857371087866777223796097943175511694256131756988150593900676625753773","3874240794659676071926687095134251212586549347012033486628089147889117896304"],["13768292400857351582366630857164412238400798533549654732044656102778484654478","21461064477553482047910184218437013500218861942430926631931492754217579377835"],["19647175316240021085926194565604943932256183955491128279616558224840139477041","15286997257776846082688719830028712201956136091041674231844311466499624059135"],["13984156121615167149185733896440846126212528848969381733217126499218874079335","25610673264559229190520731833033513716109880486272223073454432999829379182643"],["13637294833567962280253808155613494005670402810527382265485765358764408955358","25879132093648373004084207173154073732240269580465674690150792043923339386160"],["20173005773679071606160555350794221788188154110573505001459873331825400512402","17691123326101914312010231863460857578057154141231449078081099370738125702554"],["26271185068099766382143922786874159041487305759308313176449062616193196304526","24322986254445030536463485292332695212648566715028593555123372693455886371534"],["13868318983801494642404723167306127970813089252341475143173112137275379247684","21667449581092595753013626972414415578970221186425584262362802849345005975434"],["22831485068670289791927525721293651115082552966385847098702250851379036516607","4900909723033832193349120762101396457784681573687271399056599733441324768556"],["17478531332468858293729232603002808285683618350617967361262170214939305907865","5662004202365645063847335599405801034300903790794328911508990357463023866763"],["1622522875440639878676265193119821324969894949474485221994692154978657063104","8366991350061071120328945765194569591962750297524603634363089590400967951225"],["12780873097845676340409668446789948094427996024632501335914611626749144963798","22958063646440765871623726081426495171374269337876251463159804797430070380370"],["10474041662695390398998265016731983858546163518374505829490169955027955617828","1725327062048204672099220834346512885629674280820825674175538828504335964997"],["10476175459591431134992253824776110314802624250295408203469237635958890162364","20151181935367149667555469602214614912563936585451285479420127657921591215443"],["9096747209960444011562233277350546059973749819515799797132488822790096095374","15707280214953068369331453290522902136039792448070385233583665041505679244997"],["25040047798167514211625671315252108672141207731981114500339590590319970581845","883895005780977555965788999737098315966359062065643886526335766498996627298"],["15824505787844685494058313544192281994309475336397563481403219381675311238666","21293742766813438870654999988833255533591491578361464454087699784175806629290"],["8989003817760336116315483542931993363825144171798972015648886962632302452353","15559444378238289131434267592142652083776745483110875297476794610686071043399"],["2784363536409542098522290524725471426101977043643434518436409832223199320497","3103425216418431493415343574140068340170433139257783127202268028668857271591"],["9833114401733680275935677474145240876355822809062793361457091790443945702744","8440765738200064655288660014697687022996595058776122370191577158088156906345"],["25120041478227527131688913828194512385233977539058412920297723347412210357960","1205584375527804680040972147417925517981613878604065248844171455342043473984"],["13024744343162290176191490617194878368766536819425382905029181260693223799594","15145532501387233568142024217490747816614246861710010689658744548357312272814"],["14924318626247422609037778604095466553719621521878577504540761256472819683905","24719991628352552014739187482501321326933859793707755913050448659358587878866"],["533973736452924933188478248758948437313542943871707118836952231866032947150","24619525149624584389460534788084360628068311486241735431690178302967726415187"],["19082883007946651595975815411072360667796180157630953491828838318187912520128","17085071543511926154699030429647023223458380502594992371211844415609845504135"],["16192114319643893351831618897399369309960196212846949667793116771390161835921","25249883412190954997509794351770022530659037169482087469527562841296138786716"],["9937014676303407161287461484070938537235567927454589870451697567411559926369","8487795967433964601659384050916286774087489527709253704410001299147043828354"],["11894106073833334565992831611506778199748297932107838954692004167981940824584","25324546010870307552070449773172437164654128608099827689959721904332954784703"],["24667785823067885572413461439899762153530479279359474435542713190809288050252","7850590448292349925739389322598704741233580524631405521290504089579967383657"],["22736744422402524247524637823131396312289976815459955616000473742503836416841","24474297801853366005970234217962757739503876665163243943082463748141660425902"],["19743174791046613161515139064298573613298839107709266976157531264750688604648","2621243245669722134417175157359919518422597842137983965689275390538648475965"],["22108479900337732783106886329074752866519147980649999404976409249302093011137","13736363700653463279106841109287182743279113398359033669044951494354812775953"],["18184595207762204293169873417150535443209451761420596743119289490216640532721","9167302725923152949943553694229955510745678280125423803893267797798953229774"],["6553652737490902987165478392607695850308779075813376257194265587645895924017","27671796839150025069617393355053350151424060955327466714225699383463275830285"],["16349882664940501985891145041381520535951262745287090782987876130285147391678","8361701753572384609431904382104360190536298173754616827800007919242209661754"],["5197198725902677919004076714806100532236663334300029531781300956736952621332","24244373420425855114156455265541883207127303583858437068553044194469687441669"],["28524299260885845412787662671709620230605171476687738818488540486280727770905","12991724311024976821572700761459637794411071916882771847871520766056208807312"],["16666356288503390917868150853618196875886489796995161968775047733774930864445","13963469713383413353068026960872230014232275547306928188967268458302687246471"],["23066668814081584917611913059670758202599929988518142744167213063438227511153","24294377817400865968029955062483338725689816707171689772268573654262422313727"],["9086395835719207171476759321968856737512975581077784839686345082220782320874","8642052878280805336003301432335549158548262154536634064204330340802790290411"],["16608646880356286617401558815961541816895898465679809656332206463648648666602","27598556414499623964057622720309417746396131166398866758372984571095899271031"],["9590812506095609964859253842917031365405786007027786133022863879993753047971","8745593573640897368300946492327977879630886531747883437768732525371771369466"],["25344671770785994160449030548629993900804070708381287263403821662924497254548","21494288805065637592192974117430516389748482456364161300010667528167336844977"],["12401609805327755807785194124062189792123965836898412803030082927287694443847","24512669953198871628509544204839658205343511505507927924208717694455608812658"],["2261367187619102206983831068399045471409410916142656349670900818131075474531","24269144693589955310028371224285681503322263029861175375678825975679003880940"],["227378504869796106864548237432412672799830971217491650472191398959273924257","18050531659392810620975298844068964230742740697405248144080702536490605199908"],["27910406828751810697989435557453226000862034887183656766350784457328220669291","982491859646183050689966798954524865089410954937291147468853108831342715281"],["19689588366049949208974391797613069635969626662332164450578984810197381404912","11329165232081472394864149057120075409122067904468190843361326410942972823497"],["27225822975024001356446759449281662024250584522160395791599409549738287992504","20415660415848466306684976349235620721711529065343009807464901078782538348559"],["26974136250941021451360549187261663830984824510059098090267266634622281055983","25783729102758453201267936170573209429663645692250781219047762240616199686435"],["10488548969773858479488152944451191826943926337739140568525673561948400883815","26738374890092520373379641001225406226221822348798441661211456549117543083084"],["12722776810282691896196423121537247033812314836296323850423399401807121030306","1887894915967496269331087883921823802117940391761681323012226401563861394134"],["1516190558574965579188552574172620660320229106367580913160333483727763600015","16626670257415307531170886079254200821226941161132587748321707068165419767263"],["3555444716241173288770840985319958469814382380114584215076275917261605300775","17218962572874333921133549826110758380928808999208187214703203202966269309680"],["19501732679606480838400149197671159243512717486382263539358162484123590835293","27988237843306257022310260148642541997433850532494015615026727300867620496247"],["2701581646481489270547107303911355007191785958442328227090997408843435971447","21432940511144376047267677891950985337371052028968434856070776635401149457779"],["2140251421048360256347283726489558463532556470944836502101491794952389912503","8269734647406517542904174801874936383021819690381978551825423672378536567216"],["436630648597520278104642225786638586556914689221228918219117181716035045959","2325581956051156386047409686339385434070622910377826484105929679211342761512"],["23962631213923431274508792756416244561505333712872963596802734848675499922110","15787316614360953610548132240249861708707458247275913954133268846639875642051"],["13364118087670231247394813233173168363705910340798253565358993568604872327403","18991159785719168152614488657568820945738576637732983034707463172877708804492"],["17351771161465826848760896506002662229530667522320840055816157462779519970576","11385401547456454557914032672090788912232766252038954669953818211518822358900"],["17683687440819351671471537460574426540247383701880198535012876164034282056473","1128742724202174856893989931790041043667370393030250910908940368671082719066"],["26022366753372006327935692378750221728926911025477985454703626633422384047900","26328465274015174278779477013782937178067357978013346051724315404333619838364"],["28084116445329056676025317362984691143983112915793080596078428070741915212190","5094452907523698446414350819777219322719033293892445378401539727738068934345"],["16937615312426488708593628280616345745319633589674309441908982022561715939626","26622708529361850057607049798177400564734674769608955887631547347784034099688"],["12932203741467834882871868569578014662800412859412484705235663390956475487432","9039332324079551186181781434287424421912589782206519211606946727406774682490"],["22193848467579175238396138357387166829115726134734021669672143307279294429471","25421205207364256062663724858630442159184141937765000441907591425703435527314"],["11121533102287305446201210507207815647615628737707282704172763082089622121426","12603469273887286319174024611957478036657708246717877276720288914759945805704"],["17382447776082340465293483572982725479897590921155122227047050405619907482209","20287073098320471608445436243771906145640356514332751891151827340573938190219"],["26165757988280118995450723782730623268683095696053771391221440198328169823811","26120187283966557628318736100440069219141342718552655212816824486088033451036"],["28367155580966313336076414032682466249425496345077632133557553837969683379618","5636760645594189963942600358493609381716112523282194717993792927046518089817"],["21050279952775501753739619804772257314260065562844385875833441242015590401456","204669597137531096254235796265847124961813186243157964397992589666629516135"],["23863870746223482464557943001387201206718527248630851747946155225037348670129","14367231718470045658209488334081026029929468102865656750170442272392297750555"],["4258694754454119381309093459450095191627185114469539951323799127880185761422","3425450783963574696526617381103535558522499467113197509296805898909648585808"],["2252623868253138957317636117297101633307273307913119890637250196275409357200","25217916026504408340355531040468234601348227635000111874445102803373061623828"],["6063496237748565393731492276656134096729103795701803337627931565853317988956","18610521042248948837641277833321325235614785238913859742269351006777222418405"],["8970745220250910114003473177495783827803228061008141630594421815711543148512","22926849457641731708292931713078108010261976880404675856153803106731592159725"],["26662045789817496168307124534190429985615212596614802720077598411589424110847","11421050624646338564275930040432060829774827019654187637801967523139707493012"],["17496572612381059551018821306453543715459594721154435525884972748008856329279","16059586474542113578591065493310062339872698974605377375812082869914360197268"],["16168010740257121342669818819898084857651989164149631925623824193996728276894","27128617324045759418485963643350073482378593665898040939246536761161661199837"],["5985529877911305879121727238750030282093670628766138876576692669604371234284","25268060246026394279670202204166886645677638186813451431003966005113848169583"],["16056640556179170407952373063883297623614325496983968074013277110002280733782","5899756705890794966641311129284440528915714507646133614899474825762651987917"],["23706927346470164188094850640408701282754347874145372288738902910562811858675","24182544262972493841656918129946168134897081955960943372265725699113522310613"],["13367584748560217157433532300821640993675835092473359468536142830133287419361","16690811618503141392511786201614272026622201199896239193344534582825501295296"],["10407158835841997599194065195826751992038004094054975920343506796012355161307","1041679073227176806995483637141141586578327907998330830274912922654527283999"],["19865408173929990985730346112131138015807485234151060763110568006707784194258","3111476636785895609146629062778182302294251676988969203895348199130581424854"],["26447600869820676061219665083069224958337088866251415790563177437753310385302","1287963565089739224829593573135507144015018462727030036081883213786493859054"],["25881484196663364309329621378871105705812847993393796980333135795151318672880","23893182220119359748360337041261719963473464454357907908666759310072394221254"],["21221790546213798147213363377164039196266119847231163225287695933551925869220","19160503186105177767607897167223078610881731803493771298218367626917032106798"],["8468356310113980999047012090704803470923519011240349334676830378015068299536","7138125929811092894531041012515366328665435248965941749236417379747806563983"],["5658695660900928322582791063539833271073169154729109637987856863702897980080","12439872537033976433902597560411491350458774984422836195755518681032964119172"],["12926143745109439667317286744686374560879896954518540669003661782508930225631","1708050808232386541069356980278348755845771577170344137306808731380852217514"],["3046651273103949613718877512216764189981078335209395217833565687566035000231","17462003926145080959655443816793561161972621888159640444717114756475250074621"],["23067836611271982617239736726620883569193938522032533463774726319346914569043","27679033693230649587542360408220267656077397230089160386031379043714511694011"],["9176234463399831767036046950070608264094719954562147465869070190232420885439","5701442105615751723615078838023990474466835936640127507955272465279203064160"],["3299776008252662487821068852824410674391070474041504522361201023264216861041","4403148465085339701908752404770816003840914025863016456916776997103523653260"],["22907582855309179997917261937704774253172861231063276619114248162505326489366","24626204643998422370233627662302182430263886518410029723651956849005299982927"],["3465227088145881696883536417036957298933540856176237321840852648588903714580","9808414981967292758957970386501656400018982408546598429684821919243113499582"],["16233616751475117591805243954492469931612987021565673072238397528093737390146","16921277689751979166365985905084957013085505782075801411450441541828579890023"],["14219804678178726484900671006108808453819288328836616777218030967432233479268","19582485282868908128290224928168260784312260103215953485725438017151532721398"],["22143975304580636784064216308261146373212292708032419470000156405205487862673","1285297124521043342441160836084727123379735440248904983127005624718276718894"],["21554094511829997208507224243473689611128341057902021482359113494231055145761","21544208720606517897643424472453375618628230479070654861770567465526751847939"],["11813105115356178599814941647034122208460352440180690045274228313942330206812","856612421196607655154143080483121221981854579976124553584607550288541583819"],["3511657229745316943006322866492028374162236855741020092552681852933148593980","15818638744575659577995858920168955814159308824398628641219640741051943339097"],["6633375354821939087426725253931157824813458885455170555467519785773477530605","8043789896643310105394437789262719856932478938437980784241837959526100287538"],["28018904421320985218812993366559204487460266153476510828477179540097669379366","18292494118671859054831773587550474088253163325207926980537320923750636580256"],["16072188050606904451708973312216800120125085626529609741829966735069597938326","1088650538584329283253069267758148496271011342497716611596921134314570389312"],["23191590703074282372929823469106044403417332626620707117062339454227240551454","1589429996338847364786862006873071155722655663560395845757111573720308962862"],["13610516813412319490510275488952570524254759734599435892350305715340376408135","5879855737312844937759066638432227335312281372060382831105439879242300234437"],["18922196067496334575165764442503862666119028924342988252946964196485378562712","24497160094453658667460161389594942346242069789572338917797952200152849771872"],["22222732318005295027486506444104422937660383240336590824482434411582912991365","7427210616351752241833281865309023990934456165175439348081245597823426384601"],["23448174450981969146624881448470122675433645328448815666053040830942665182495","21629386718036437926417961864796662951094165496472018822150173465464644950078"],["26044323793158177923468563916681199978105835683528674773209312920593091684067","4556489018116395093882935983631734516581264167844182470317899487987397575571"],["5650068102597812358255682644660867050448123656955345844071128371441981589693","27970955802453590147350000322341310660563267533069002363476555676858184312418"],["26410108647522541361119999083193229461142346252024018762649954163485596722456","11398501590427538692972131295038891217291864888806338680346185844681533714531"],["6994544307406084031650204692416608695601556043522104724148491708562939200291","24537334569601142736664875320078249657214542505076743423763133519514100900723"],["9537484866287027462980214418076353851225091748156277261407809704629355242695","6824015245628099215343699047158831162686064248015212203866152113973521592090"],["7322848282000092801438342946624861144580124009741415387441745313725854290341","20951110758379445140212706646520755352693816312116791983431804342385655591661"],["19482632092193686951236488381765532343025183274675782920602125514954453512438","28110353299130463942785888265371966046181140098072036338627416111408768239756"],["20439462117642604221440233019326570388074171098133683453353859147570461598555","368877890214188996382958172995252898181632342726624532907183976999046566561"],["13481982261583729112479442522612142652164833378413602838968238555806983354180","24210954718088075938743836001019387592845705757846679528889714249741766214180"],["19226895151142813034574323922470810745344710916843293538887526980815888189885","523328805106243877814767548076996483940513648080149057975773872603399423983"],["245263321922214622998359709527102808353376774586353838975682875735146091081","19421249879593255930344707599025098443390572545596670130449394425259657486572"],["3279071027219437612743579152211076528995544810690385963061220363756369426580","14031746492468803640978198739986154604464660838600240150741458473219226758223"],["22801520800522786385169576137951205011198354044472445042699437321088761039847","10850796352658599281271854805041237487735903526566290377357957010874912733759"],["10785872662075145536834227179083388066384979886276912328861195426246084848961","13460038718779436740607685678131894015243103235355956609972458715732350720302"],["8369904164113268556000288442409263161507561144140279340407332411661229254842","23398494951322891212994261091395055412427168468697713235911764230202333388268"],["2376304377090539017640919655773096633149414560309971757069566199829699523127","17529567441692006454417485255244497789693740104391958356149709299714336896656"],["8832570604414520252060695246055828678388979342528894364303218716192054389911","22457256634549658481749987745198559629193609998101757294757153983354758531577"],["9308190736098125385474678843978848287271154546990654560208087176115478490202","21045453718063499864091981833075464801388822982148255215689720250294093066423"],["18909474545557608839132398765128815530583355696664582292085042146452394678206","11494584830443245165715269425075216914668372554373321855952203949803458834789"],["24976030302012357497942365339424950433817990161148867044378870122365338244770","22034111559349751868215924602874582055886115737571214107560148014108968284279"],["4677843295615463246723935232060320811891090393252149181223518362597112153554","24532127267533616957498523173578826831810878441286378459767336514469459391944"],["10183932823972541273104390259048394295271187633543392843898759203846090119914","7228692013365122331910742497077130945491805622160471271005980784266904546866"],["671459196901016912756368154278686483332019235727879207263072666952170597382","22154131705261312001419043479290380294819798249136239520587246908017416889413"],["22600267628117491589802660558752088707486301356810574336519920156331827527988","3008018539621829656984328339859738047370574805579112872244910095459531120878"],["25316861671318317498070145073324596577786064014640194446096698258768616620191","27925221153876435129830026550355018691552822749879689707195041189127190293311"],["19898135236328647055816647827759266443841131337099350584816264044551177734866","25903279065012795326837663284799042561459397169444310548588837692931190906832"],["17632513368383640286697460654172236064053399593969102141366784601238103450496","16868453975055382329121877659613158180061632196579090997842653977161939396446"],["26210618402116344164151950787489573856706136271738086077317105781997782463727","8709999990752549457572042302765774993939431675987427623617053805318144716308"],["26749814834925844241206228600825821163942134807973902299332108518559424495295","8442617588255541024187737052862365888652552237423203889861094227136828350638"],["21505269057444145990781502524009692028782291586371267716132462917418052351022","13612096004479222669260886964293988073642936823172120851911224774367024867883"],["1251811304933741571177026226494340751039069768101474664888995447255628092340","20672687699013407327030760890626868098573123187888534064218309458635357746384"],["18914413918667846423211080460657231886561902973030544887931421077307590247036","3921443133616749883699047777129777241483575969190822295464974496293255204367"],["3693673003675122699661742865761344612736339301839196796516458701491048025078","20587438997374066954088816724229831460792141239393277324323225255546634964082"],["25486619979741308500293096469692718114968612581210695564875328013166076631997","18762917903305896790896440129023562245430028895566652834575546693676565685712"],["23660895247513070640391263265281798506352592726116454915146342800731485124127","21277302222937290053747340905661260632898561371028309583532634722772556327601"],["24277837760976216408952892955549572996178185097667601891904612900281225719518","16217631448830132361195686491975262596747470452879814694398816777699936682417"],["28565697029865376755753523955304549879131639942283939282366673538863979984173","25286813324752263057975585376272438068502439423350804476366079639297233593607"],["1904536451294658760966205318275244399582338315957972736119174240191073255211","24329450878892290627311929128212991123182897592887390651348551654277023287145"],["4176231859799534546794644323482569445089853935884056594626766660120711345657","15875772540397050045341356204701476490432040380694748470059305970567135811097"],["25240167701050290038006703415519019623882026648224128093718189069307443166625","3882019598574351757621776761132611716269995027574206168781202049403682331335"],["26788371290683120379006340059122230156893800823136776934144713339893153651129","18448683548591480142823124312264025493675581293788182573471669260779495777403"],["24447260174058226628901941692396349522619657383773909250084817565755451761119","16318500357924844342627666820367680821635450031378711053135494515212720803528"],["26187489914434574362698157702209366806777369379744511941713454222308850779361","27565512148132231288229874166136081159949245416898277663035245594756806878024"],["11451293401105363209676438298475398009276356173331028942571488010304028705226","21687947162219584899809797861000435612133744182817704793651049809663054318437"],["10619099261463784181931096941742534198248004431073771696076082866688455631372","20398071985194376704228445633200621634982425896383190018235176187279719320872"],["21744399817768872203171693620276547682244213796401769569619220709885855203860","21057729754775537257501467322800510252181157308830917578670128745819163596744"],["22626912087402395103436142313706696196165480159699042723621397472447763996962","19140767346843412316159545736808699203916172034347040706587552102771693860461"],["28162825033316789749317802647852379847334076500198465687378245356090217557310","7391401165861179557383414427065542461721052308618774515338364922543534794823"],["13749735848233597853278973602208618139634193525048393847114588369557723355330","3074141668451663293140477310682959334225033144592359008137567108253734791606"],["28372659344234585166737654175921980433478518864390229873319274190466539706828","19531068445431584564388932012124904685425256639188539606430613281122223081112"],["22208243481786202457403819323275133034674788639654431497441323406261444036383","13766561377053863920344640004837151415809319691155412493734692944331537995344"],["15277366478256700775131055739497721809134013079679726514057910490497142063556","3353134539807265166404237198320743138257421518293044843446046245710372694507"],["4193574400855019623696173797203134553763473175674438034980020155316091413998","1444124718455438660738181739725531375607463819398434545129564284737832792249"],["28885631682809147237305677935305800704586571128836995496716208487276716847284","25387219236607470497245568114026670107427585483917964226640706248837044248602"],["21929227480325935365817260344789464884355420114920631108072383332605180939624","6212540642849052285351569167652466072542526501947830521473261559359196016738"],["26613720191652904563146341576861707641233427454493309725318236046397605882848","25625666478520733148566555107179391504597181590103007355143264369252983137699"],["23237912959096855254366904569113492117065826879781782256524016189387630868741","5369632857302549722923676336790399062343001034038111785871088776058605922829"],["17457546937095761000237985898624835762572533654148524820423714478883264110108","12493553359288136559695228618753201369119338787784551907866033912384663573432"],["8925311269287804255509709804375582235927227538258309620695175716298876199358","4116165131550892616686963925069539274243521308681052364935558392447100152061"],["4863832166510682981515145905779406012554291367899009208194371367104056986326","10965142534642795492355782486454664489064034770597000257199464482155830676992"],["19172730745147627196423761178807270556050788506849153093942532386119253485133","25277622513909711548018516282227681665040364953859167231902539408775177053627"],["7305356087078228984109355028036767260602873728889997514836023134630745069236","25983569140019169260243494281010432876207378648680878926288790753057159763006"],["1591575804642156275146922308137377090662220395847195671028862308084297544175","11088602690845834178378909911364645742335282873544406629171391027152974385616"],["19866606504333814480823177933163788790625301158596507163188730404303320001622","20053684661505341890140603509690126372009432228314752087584786680398658818076"],["14243560242615732040298284124676326779984164709635117077057539630285113594173","574370228238222752738602549646365557456288627205858922675377954078204930890"],["8457690393440619156588255160802802687371236226853617357500930295648390284964","27268133642580911138199034174307838791060993487894814500989889394807060428602"],["14994691384666366159048805048916749627943740538326938880278650221323026516531","7417538084698488018803959277990318896070005262410653550785895449902989267653"],["23600538646040918668451965288035164485192953525525397178984019446840385765944","6543598989640749108957014800384985082875847696660016666770802229114897217917"],["11986141313166889779061156981347297648801863365091907332323576332967430696366","2749193409992190553810100865672944050696543396615343209637855972680174195855"],["7384754512735913733025853852302099762816527374235269691036137367746050759287","15382144872347601597030580268834426898210494314872704257399922496644706692831"],["20112665368089806646898357246597011709298634718001678740980296704809531698729","23237497897362923924023248363577375324133222837650927862449331746495939023269"],["7152391912000253848148727251870583405631111222688006660708143141667461796940","16347584504706546246454968183732238570500304678984416041476586590646013211384"],["25966942022601829093481908251937458803712143365611261518308385513372069454395","315966985622967895101106117379007723176476407788876399708100527342833865948"],["2540150030624627686281872600861914947533280290069251444701795009760730630882","13490087867151975272975181929601302738605416161233208977200902766582450500472"],["991182043612734049537124966986392531392356595767704059728774321392861825748","25752713317102449602157928899945061598976744779275897928625181772860671630132"],["27504225396328363090631289871723305957713595586590780271327805043592475960544","23745801826674340316898783717797710114310085104238015135303642973001852274154"],["19544654629710816823050264747229020007544989730245849978684415355649495005757","5877091006661919151879810930079474416122378392612783066242665296925052198822"],["22465942678697761840153813041057298382879472947130831311073434083915000197340","12446568629656953257650100070237761924754661041915155863712146209626190291664"],["27942431300270594272075874738315270789058137875930598819386903302787016073710","10112637994048752217907036437556318851838316845243224688550354420663225274161"],["26659316417160128632273063106503499247389566309469931785579848225869899245749","17654943723724457981487887776648858830885908815253396878821112433721176719044"],["12572594287933167170005809501063630172401155519840777999507757452076066441463","22549047635674246729996499305505762783513755659653544803631011286614819102730"],["16559982056506583982412343707923186300590001581273804593735090176316057847323","24662589601609416648249103554397677497326661636303992591702579706455721645792"],["5757463091347179522920786494791074091518596635480748285374351474623013865104","14784164840250762659395923986899398083378526281553166125249192255494336241485"],["6656630554301095785324975665454187591276461813664722393862871094491639271716","23566035952678968741159833090008376049014781841408998139261058251801857218806"],["10298061861915908752362417182481884457623079002414559163013935056363673924700","1302792736524496000118424227140271000973173816867518512156703043197797917865"],["9970362568246170438568637132770032931918164212270733634278486396742303844581","26880356075181293755969630565241546081730405249898366581849245576637721958730"],["11897105286591244575120079864111362731797630753552236321851348316528721455994","6731795409673655851132304051584530824208027611652359945163539209248133439847"],["22223242363443340314525645713867674877602036266284453686207503363141859497359","11760270407896356437564918839218458508958771872818233452018333570216749350911"],["23108851211262323937851494369196531024629363659718523330446999517009904464796","21803202772654803065957260949684181524970394051596635865028616252603618000995"],["9369421738520734510024736736877691998007858648859091490134662677016210648529","20361190053214475871164286619782679926201187232886857451782705525533867160951"],["28584933034927528808599887389538758921261369514756058026403737880636256524401","2031032728651848035019419830188971726969523774817223223955756461530164861877"],["8923078502998995911784941683996942215083247664594842864258208425793634145833","2631325486434482268984016674698261776529961309487462886574295555005133328104"],["22062268807366289215809184639959578574892458968554766415871654668367428841244","26925442983010866848663961007153111458359981204164550975894465927382664768872"],["19427070754171929971150607453039076325615509099099145980036094703557642420523","15047086830000564882903530706484649107092382092122326791347454975918317096599"],["16797539972385225514320890255425230210476065486384200369599609094469274374059","13289740807691926059780703735103381264797949602861608155453245180707393997703"],["5944094534547716167227165149721575246183112224374053654127771935182435493817","27868548576599373192769052711948396429300785872606751355865316764852695207277"],["9956051421682228208331127830358746557932950681702615519809915044292284849308","18545829983660853933305913929455178206653731455731811884572304512169214624613"],["15780402090279212875520655181418872053754521120328076585194190627110603166718","25462482994430758977728767621483566994874741606638049104011038061145013433147"],["13069247412125942515497964572872736562059606285327289755703146052813967942873","16315463737717439317213620008175852169860188397094004114574658747173701476210"],["20442538390692989222845865643984683468664835652437533365875378390860312837332","9781677427718228140275004519757953993683627548483083614043487923061370897527"],["5540791333708184008327176460452694310059532198518449449133080326341435256712","14924186452979128927927992336012274971711970606657051588186250851983605008841"],["3729434800001515599839957950104940323902607439200196602328665924600018184100","19666845481061258396414727129809392303025495476144362266342105664645118628310"],["11023114212341508001589405492138764952309915763322173401769410578298096506409","7222326155097822268173099044669768412358564281392113186496472658995174942886"],["17590013412656489665958602975590693638143277617563866789473846332255699050463","25701639662085397219368446251408889767627534859366583325688813749532948285873"],["6909153347217670353129366780559717780245307241870600124173046251988148287307","3613718639826682253084264615681102461520903994291273817188673908102864958743"],["6366101924088037110489702422252412563795147760283341939208360907782812181623","26904450193573918727894833019418307066703164364130190554137637605575871604024"],["20021027982092510219465689699770058857505553025596822043713983141031176555810","10382768275082976367677424270751682170554817708433533261236559058467608786757"],["13601995020483702233425483029105727642135192458940231932610174724619251005235","9597460301066328318833177338928404046207419339825585686765192621330131391267"],["1311063172692296017922320701925418504079213867256386385359852342470712686938","18971282254943229665737455127785295024900723706782212754082688010197109951643"],["4096186925348205494583746631861696526294392804176544011765544444434468573076","28686689901453794650741517155976989936102146548824814733260388899703893875571"],["3368220312517030195916840821170072265817708651566134108524275184052277846718","26321524033902204842390172934239654672089765007688931673314904303740004884160"],["5308340450993390834929855612693671561985162501499956361739281840356568443670","20651731985275234962315946880354895168835261846516393059394536489065145627151"],["4185117052260784046460778907616480117648099208510961370289996465423312455552","10722220120721937296269985371900769107968027653621454597169474534976852483282"],["2076701359295516330794918033733317254060297656357663637620834293259120697897","25654351115606781639706916820741206080000755025985497150220510241788930771954"],["16909773043348611515775673562812524463734954562261309489251408294949880531563","17557603256967042576145707212939697744978570456898521687865997062149318311300"],["17303071573844871286097922538072929295374552942832443021287777058525912662910","21188227948814010303821418389075596040012085803168407062798944104294493676313"],["20992030277226581301491090073760308872062017729006290850996265975737382338933","22738946732485922678812875635067582556959493127266308144415412567366257551065"],["28503558891905795205950913797568404612019709415876848305594673691887671318768","11185828656980058313798068510288976489874387100243304941107643073700521384669"],["11798386591014110613208395496995225480238727277443859959107164260531762351915","2288331155880740829526132231075150433537239807760288395404177130267420430736"],["9144998622964133879808891041907525336784508568002901554511679933922964105567","7900093261847476381979922126539084627190010176767315566694395223285435062748"],["4693245024371107320067041411114978220978795751522457773134092278326866060535","497964801760551855433898973725376781806195044315033810904839280924348402708"],["10925417578432943089838368060188397278228917410764165906585509255518109986159","6589022078621705580475941518880594136086839276226135410763383286877428189435"],["4437333646983242723497952270174137819834475864578955713170001992110052879444","14933632281104305097359810100437442802468674987909431901334852453832466035246"],["23394566259091029183576355012902052935432908197486324276097476719800367230781","5357981814891591285474291242452405452593115128097483784823546414278637349390"],["22780684351762703128401088742598539777816753997719283452086053437036682571286","27696175570827850450992306828966813101543349248374477886401516624359537366709"],["5460245844851629777581511106925017475895855056775510679078822235095294679616","4816648920086169060516238091343330482704811798553901054163200560345930248311"],["14282420715428368122239940171324400101014400474398292083229602026165207555360","2114618526496663607448424347507844086166424848815453277968626443062317023910"],["2267980561485731983118201304300610617156284947145336573003594245402501076338","23960276742294084169781477594861064446899771952484634724716778309882271931452"],["1543258059523468525796026647384347474090595029519803185040937812699363667088","26888228380988176808815800700229338988443959482058986343816102837662896689779"],["109109719794684176027595611622076651479676669016401485380714339582555634157","1147291951644278792960688782015088954583466898854965414397698197941407801094"],["23307340509600187191251385463471625361497010408203243826045546132776663327719","16311651160937509388040689966035531861812049596841547869595241144968115810723"],["14032536330909691194990906302888026932131650781060181340830798637730336124504","9336776847043925599079382296921477130153409133287840216063350361690178835168"],["19804672907649825091543580432421554828678626030508396040965602760368687316800","3833964948602153972037961152034233827880647533564245697375624971937192477732"],["19955032982856647495866143046202870612362399941016375468219211454515681895629","16390760875128403467464017283574292269099611601069766510109934101906141068196"],["6051942666175976654433002990047080267456619227822484619020193383863829555552","19756329280668188648173948474588970792092320604383038082243531912475536356408"],["4286982773999785796870013822708916656318858277041830539235180627783575938288","23426605387618237200636420346334451102361651437094306499408281359571641882487"],["21187920345116881423425478973936900314772437762890634797728037440057667061472","22171461225486367171688316618641925341760091302698872080040339164929224806017"],["24926213102107910131653797533320323795299353372411698625458798376431615646856","8861869224923389568728897590838226518712818589600383432340707719530435332362"],["24402141910992856115159157963724594635384782931168502147953861284013160839131","22412640612919053456842913123606429478557321254346953817741225025774889578578"],["12611123947938087293458489935159245639437900189356339951016422046166941651789","25961236834771082771048305038627355710916267455910329604909413648066700529096"],["27989911243792357546877757347644336742556460878280677039540171114282391707673","173181249961708700912048029693760693487927438254834720518789916893139717257"],["178394147751787357972248756006732507120522464800206684065445746432450727626","24150903799417157308715085976954538924255647121857605840960608079444014524176"],["23797111149906632670468283461802189141668869103185790464911391173016723071767","8731994424310529950627303420044885664126951783605157017305511992987147883540"],["23255220362721901243434489268795216138802913102937108787009748669647701131865","22586904939283598812590076962083702643498308240833108389803106742867361516003"],["9045894390199871687599615563438565886586476832600367457353013851722816869075","28680102242915831664637406502021694466039439797609556120276876083475624403906"],["4379888182964654993652153342688005768076041424635597663765488297439566325092","6656589034099248254945717027533993660097197115027033070367344125049440590593"],["2662409529349756654130226273317695429323421279640232795764215134596823314326","8723633940683878926852363849087923856243145960745726944280961741623461800849"],["23207497717024549604979999656686345345014495001327530960016470821194951156970","3344172705437001869798696651076489822868010875370352621297986701444384994902"],["16018985774353649392482927816982236688458366929485319359018760702120457560803","25153885136835261439421848059478936635237825481035450430020384615173253017620"],["1647006830051995783654884770507243370199195169256354578983679777121455220551","26336082862272190846826871932564163393545705988914886072526150896161117614351"],["16375690458423242489591475974820126931272525867794113570763347282696910017209","6672093026660991938599693440039530915748565147011498090583433924079036941840"],["27622846170379477605226273963062205051637761480745826773961723029429538498400","18284446764546745602639305875544806558287563083424491567985729907684738541189"],["18949065971398594436368646891468499520117229763209868780708878394680257489244","3157798938388672720569704872524064063206932134352524784121146823344230907112"],["2405003501920131212640490998359738619342911326764164651906768918279434852215","14589492277055485118560961352008011591311584478476014084734776709772408661405"],["24908302479701278306600559611158555067977771454994353561136881789176063558713","22147036604077893876936863002724257028449751196208268022260372138322281241473"],["6265308050516809482949631956718338054364725225691342478021928461726845083652","489204547399301326408227619559476604374022804084269346531793657802527954796"],["16600310705755876199090481992936155417652123552499565063197520760520501211365","21558124088385345753029296501064034334009903535682188109928481836362904253187"],["1960359560226093289413026296341965099439211747781102557755387122331100409908","15103986861379156700317775973772614397213687432562915468482396559846068203287"],["22430011037101523463660680082154929918989469465427453688806209992178156115261","25049242260969329601773113052315960437178573600024483543497455674882773964367"],["26532927160902770444902052480022109683547233391843240266614779315875100429294","14480069924631010602971711769628795737066818467024745830647617132226672560184"],["3226124033525045933221178852260953819821101808072694341079628646970301920424","3869394523300327675725439888830661792096405485307697258670627428270479894652"],["5736993910501160822974494079174274734306256875717851721194232042206990230048","1397629191136323683671553292306085431130534555483981405330253564446489444277"],["28192354451751099627969086906875722568382418489410872142709046506276143403708","26925215760191604082210018299656364096540854318318325682187367559813956602994"],["10213446058308059824356880442222055734649201983168148124343591155236180687434","1231488952170127250121961867994336060170986351419178797225975244025463503548"],["27205380094433902231848089445664728050976067101647980887034381704569801727228","11030979619086606052574553479275978408375972702323225188122013099357192121567"],["15604627845897771408583898384363391780095004586840545000919776623325746927710","14053576448671914293784381941560341338796015628800414869553487427188228651813"],["16171728543939462964929119567795450984356657093138360470899718165786054065420","8995789864469018747824375917230703431412907440134643369596069162208020399125"],["18071704041938366583080172266962860703918621039328174584044875354294106172771","1800120460051141034016412510880962917890848950271335298334285762591018599804"],["16535878968072784713009969251968154198936801341034828950483886277369341590915","18849065227686633606053128146534378585809765614728740205110058878949671264266"],["6256468751072854272173601914906070183436564892079451784277376481658603095866","24791458615692705368961605102575254295998209833041191795595178490747794049751"],["7454889504166041374602839499558191659908099672528416211035623821405795546065","27602208502664152748556888837131070603200873881685383228679455548607614579380"],["20726154668239121162436667842298820251809455778141606928829988438787078630856","686479234607894591097478827731261723945187045738682138092307672503518633337"],["21032654884076540214217318746896798421259926650010427914087755729377480263525","22149370674970907732340306097189533745326060208909844143031410521730088499435"],["23052917611270619401991083955263124884022811503414900094026058446828787470824","18418278125409105381622192227433347031351065992405843410620087912643596442332"],["8733722361214147317013624760657771022941219066041288643407783219288348914975","22959532121857851491315939530552827718463437439663523415094817576918988253116"],["4540869588398518199414477955776478105716265655559338331142445511718727963842","23450398938483715258246238079332903484075907218861201711031806228170413808485"],["12262335367998307389037809953439033055868920757783005770166801196617179580946","22301498715077746158906990626413584847806313469250472106889749745528962272234"],["6411739001567824352533116285521590917261582080507642043707037028499045982690","14117774525922287794642673588496193756975746422799630238972221928884630875992"],["17494675918304277735287639629576220048728856749833222112981693097826069925303","9948591728616293523871762095744913932421145676368140901566062507226969412733"],["1427745003005882101580943505378569539542142719888498931539308440285331619697","7415000887109595405413789752610079707532610088173440518331375111261585853842"],["1107492069798514211546824474179937405843915581013986100833236430141580405447","13927809744095063926226562280705948084604686622622611401052543124445437132258"],["7028715261434115528034118210503431438668802813956423824001846711147280859483","16839212867193046409560978989557745895662924126197617538318668660218338622976"],["21791609573049388466210731615686714456280303680134935486591942196340860890671","12237675186063131161288196309369800699298077267317278332314324575696287789650"],["13503157616331170253511158040840721037764465313121617048811174047888461927226","10762092094167397325660173786842761342595072107880658893875810258838546781797"],["27769050271128320625679507707934213119999538176453529535152695130349189335908","5100093993498799711543493798967553697980014246970761977538862729286116931220"],["11885430989148284648624133474137641381399747865780666124109859284450942640400","7180044930520876065738761674912824017294292275769961875986086370617848983906"],["3600727481916881306717513285562030174659446016468475312467261768905726402924","20728358931422733312350234684629607986149325133712913534568678496055484643309"],["22091378779670375654829662183383715707311854689527007397626760034276289565415","8926710740803172555922558904963982327640582199131408007123820764392989087379"],["369337408705044203035689242957751728272809112337160022842572684668104771335","6075036809188080004544258020810101473349926720838166687179356431634933065412"],["13741423864498442018477857614682442945531759919617914945370695478613828827530","4038153365516577679267318906195401437928918096897853132518721168214604576743"],["9913127845197183111555597811485985158158197811911462810866178072359081805658","26268702577949192400487702852555003357254869758696777093577459237748331812447"],["13779856132682002288009334884397210791302028449340605176185426809027958781479","11056423739062840550541860898855993270402677387279262575259417893856856268122"],["21871349507589059551812097717663171561093247477612618285153962653687718185375","28612557332520308777265646697900255324219316395506560092224632962277261346756"],["2434385618957960078017500057410700492666930064167003992800806110105751351040","21429107142768791050536045374152765394791998617343611019647283628505725671446"],["20364528522700673603572927353145348223401831884444175785972327767914961369964","13129521857312212628968207117276447044152706011126440964373700884691676281097"],["12943548813979529536062769784416538383063223189345437860328262259611428198493","23257706353548190881751740866250528129434906005418052964674906540495751271444"],["6277289210474289164578662929028280844123790809228484212217119364632706184550","21535813285485288755532738756285399465241482557109187899202785411605644342656"],["25022644851906815955059807602685738092842563186382006496563954737623220806445","11603595839856548678978455131679164438951849471944731789963375296019181890163"],["8756395618941766545821784284416546007260466453731467111352830740364537672669","5654087647818579139102747205668245330317430206924044747176826912634663343505"],["10212889712769786305753817254352379234755776335094761138296461343110641887439","20198612680692218395469778129384516679153287254760784280742353283740558155217"],["6329622697118786130097167952104340713935580551938019250550575959400606719765","5896093453120620513056611424971932697277434498949229388569146635134445441263"],["3250295552224218394734548725145719832950839874762365827041353653501007852755","13951995257551083836264677408661178131387418939483024983791095338219052658309"],["10822249290518266886566880891651960598962639003108117893346704694930052792915","11330668239005612878543279592346778576197975709699805436215815900365669532706"],["5831710692716091032112971613285962684472902980603633033338279764498789754904","3259221928358047877077343046382124177849270634259387359346517877736962527897"],["19508268594659723167063061747213341528826432072644958657594565979764129037824","28702554486292285054380087937027231792158948290128359147483205349423341907040"],["21633958131761775426662962642515595553195009630982039288526013500915510253390","25794845704937975444837303374759052577589957020232502409041751625552251192397"],["20366780848612546575894283996727966452866524781629798725572124403335897583406","17212305026208049112676848398809579003375451725086453041131883752477607822421"],["11882822201046071243201490373085652470191905016633166284164869303782600522558","9450740890813531701899039918103319923928404428543589934586517433712081368119"],["2131530199550447246411658082041139279607249553458934954603315946518565996487","8249459051130650969115787529694093068010126394397013899660112730420598563944"],["20919875862827863255004806583132422010969823121497819446787942457591164281514","8394585091117367335960675647080849702847801092008912907773902753432873978968"],["22714018213224376320912380676075890223787193829347854006273865943473808790956","26641164760621452576230924521029814170151119092060279712235277707200857774502"],["22048134483484335664737181876729717073853124657092199544334219063969867912066","22792569913450099983361966408720739529192971719208991580743220693609094135360"],["14409671729317684263400262528203848333698818958346759178070641323083112904543","11120023556869849371026166015436740532295297454637932303679372153430797492900"],["20995328431999970890205764421928732505900396962580684731880556119927330470682","6299021033750618276454258450095847321461595437149445577090630570705704736071"],["21391332669511135353247517374661366036985889648863140048817522818848996158573","23444881726378616400369157472005326576997379391196524067994362788452772392648"],["28511305820992426733138416824011262255403564324820487505967000876200749705598","27923384750234917600908213910790535915364577624893231658093263062198194085590"],["9831582385638244116094865545556518105222303553642896930339280384504911391944","10149615268065120847577275839874740536042641338116218542023328920839085221310"],["6035891105817110592282645160166007188402396468904924698290740489756237234994","23876321004351090768892664733285719316444605948873081148668685586019374563334"],["26849027856107101264153116375456164655745912059055096437572126646841385036500","18539791993793683980122335264135713553265254239537045049189756856243531048455"],["64571310291961217494051159731138177598164787514619017796167525243920248185","12933791157015959076835127828822370973468259401736398906778694060059412920658"],["14577471575115084379745068841571494739365057718226412723269629864778160810055","19966855482923594467564384149725870297263288169210823387972262774329813960564"],["11290970304555134640198608045248635650866006049190128186277941505956466057275","28730944614653830789729447107384124521199462994897236269587459680012900148415"],["9474721026571490678763284590635864012490502042187949726766993192029895215646","7545585935171003245618416869094307425713490717842700438482673163135406927620"],["17330412646739749173329583590217749208001353202759371295183983581016610773533","23302694548164765042003966038676085667794183264206390691791444654893169179716"],["26205407992867937981469401229791144014290170786431412660341189321347780622749","12056991054425937718886708012618423414665831923746640059562090095839282193065"],["3995577045263039542217325351956559075049779339782850043600685723629567410497","10905922771880437006587995514247367753265350353543481196700583553604244146904"],["26687327250138218780164679088496175522835411336891652113129396211189568412972","1448806037584911701933079135499180130834343796303326808183133271217361755418"],["5620047154033786713746030965244651094527005630182356137794772653822314572705","27793931878210487442388612144295781534062478398270279396898526507173021593960"],["1878237562159272349604391518562405581963213847927142021274226902389704066529","3533059811184165042463730846392490505318584632949122223817400910000532628744"],["14326067119265692155122560278598457450252587466570835656159976211498317500291","26982589792099135243665143531655870728387807565011326590649132898510760669393"],["8194974869355910955721660611904838990778539830715903787535554682936915172715","52284388388990596733829086849166298242981743077417363264771730381349861980"],["16343415475178493240133796403737925311989236739613211448695393193037129060010","19253135497028581036387743228442489288342897214986058426931442712963451558936"],["4175725737158367099123944675850750462194110667760706531858647751222771113321","2564844054601638969353337815114437077706550405970420673834304826534156047925"],["2812168078821728190934757824692824537833994574895913191078607397584490758592","28650427200934682805430986619423906520545001428825193875936436242503298872027"],["28043619798307614275952816790724008720135457986093061842280992873498026837479","7316119331416466922659765953430266877874948584883067709931486380560344866084"],["18643814627337708609746458259163224922597206376765777836634749118101492461602","20422053990475236453137872746289542710580821719290871072386373602781403868775"],["22067614083627413582525372650930728259422547997756778201628136446960954610604","21545965059343472508588829945807949859827301165856987073510598927079436545787"],["19673778599740496880699287444318763728668152242728228872584853237696350378416","21228667675078549328597601733440842035755065842878952792785733436526102313109"],["20402675462300680897424578789840540812183812317304790689004276628087866935060","11232498776790691009071613347353226582821479208253782214266825106794491017823"],["9906194145835267257609745526974033466303389049985422077367876972688179463575","19486477550958798268562314830242909244493175782323647919747492244700746467962"],["8884429028607400540310498092928152282206045683322318292893172002602589810242","19028387288488152152785686357956826238626045856455611811292718117538177213846"],["19421870379741023939544525085613770764055938736891174295521009771737901223803","10705326740308600485547627431558427662730138640215273356998099414982078600539"],["11258579077344288121438428241148264375251380397551464850176452409378016997147","7757634866804260474835743821811502884239340012883065343007163769100440766558"],["24701918016883336813791106666647053841911929236129269648077627499271542055469","3677898442684801823343451494137596920960313505500132982528142290440344828878"],["23250534105240923806133048385709846083029494403190850295964693117884611231627","18359441072759090329642597749509528658631897665037202838997476549894858475007"],["4830642673765013577049336458878282650313584183220561469521500350427308447575","25567112501925915822455320917727583173022141820559915921688765864042873045443"],["11496768646576784274108321167939152584509939926391929978989806727120647164373","14438599114960528556798065354090153845754517622288788566884617804795327103673"],["2575997348847743532458344717188371305647266249232890868671027612494121436082","6062877850756020570620166128726805375153391073286327298448453736084667536483"],["9625874117161484526761917224860286914833856054714768135555355811952780811123","24276305647431937933853951583407288520574332632530943847354138690757064291249"],["16406332202344904276225524333619935545998473061187231366160002861460263157733","22606819963362010903060700220909426724045088859371860295946797675911211511254"],["6386776861819132609247329568637433236271840146885872283797978438734922240","27228988439148344827173663703770917726382350206220689693357594083798991448563"],["13618312895649611730491797992730338065634466509971130071587909702656369910765","11388118152749254296775094244781422648591487157133518032225122583686220362648"],["22173661955192731904668692805367551643336926994885708470852396175576829788286","23371403882883489610389895153286712420404811162585889261287180156669752959924"],["3304646533722500998068749068740579555814292956422170258921067941857721120951","1219575066850743886001092219097160060315164464242290144113234508576454854174"],["16713989644081191887396492342456315880727213431934484806900384981192058819972","1563018048378767441718614824295983474348697788180543509171081655009861754491"],["3059512709598188673371553156181906382918578664331328242703772560076751187207","3065050818892825647073330419841317753510850136377606210163687034419758835952"],["2430836157964807292106146097935087033671799535585189086961368227613921352074","21518127085595623064305802226322719273403719475286372152450331979479237708067"],["27247412990944960867664565117750380533946131077517705467868794219943922546840","5699063921031853129795354210104677786316931432057940022795612594455278994841"],["16163386559672805545367634756618324252658465705323651129236915508954429181583","28227660475833527135064970573079974038571864516029110905826283445428626823970"],["24565467756269177931569916910588322785247071529863120013699922791252240763875","24360511010264335331109588381027938603953606278132825477086773247715624456629"],["10340208057163788027655220003993130503447849634841235096834861182037402536740","18120130721683588043145942303994994172166328360617470423412967284240231023091"],["25691061126044088339387585412570704580689992531702955139216397077364014240723","18466115148611736208238832466598637824487825172043577466526615565212239634233"],["9152090715403504873204997916340392644545228538826659895989358447328087695322","5240594033190558560174048086579173764773895097344471312093269046111584369866"],["16665140774349823732020818670137036219914474126365833642617365954917125674258","18829118124176338381129996233568107881862983986847070900719062792525215409864"],["9540274591477410690554084394305719129200830845268557961625520739432956871956","18391068887443804616483812983555166318110085963016010120137066425481160029798"],["19289806022759754385432448259075436195053466812926209516469567179816681167229","14065222292269634005728373127170517863466559832892426605141048113870495017280"],["24879841975371277546549622493166831013477173751668256546792461072243985521400","22051704901960609767532236342628439896973350300969279989140944551043603292025"],["10749289121259557864189201573085683567999173931088718086055131242520011450253","14000569725186663833698975174182287145849673559183701898574188354837029676242"],["28757547247305352546984488952666545882416289166949282235880169412027940389963","10945516948005258518546124400961400377337924209731270163717266856350754640234"],["10447081437839476636702216559693181596575862041157325294751377474311610832077","6261488147848527418464511828798633224913657170563057229125189505610699469713"],["25200325550806590530003814891620258038522457751466083337833150497749910809352","5646432523255335288868543507802885307730061026403364180029171948735503409684"],["4303255575267601952656596944954615117554738557130132545767685736022497586111","5188837681976370086749749735671510496663449095840777137269996071526012241050"],["28750153435146231873881132395620280520892237817894812288994315038077265188072","23052454526347457180237628345788456914237323592272969511154876174805963849100"],["7190325106815684555019961054781581041288294421386817968436870684275573928221","327959580887947764583401810249208628992531280964976583940536370668344974469"],["23906119464785420715734037427548320537644561160341168931656541823877655071099","14582066161466085640986535330931111552638264512608719306976945417352109012231"],["13577519241648500201092049323622319042713671127529273691887949755867030149696","17198132682523108975210435732730547282008808644516668879344041058079595230789"],["21147568307591028253747882137959941278123408768199201904462536667705469257031","19440497030741763520799865452243240291559442529125551770260672109855489254385"],["22210487145851311572026482252785846479627890559733307318432068736388377063515","17713147337567533949958912165035699855413551408232051441383095754415318429407"],["16628011017072768788413698534597870234393410322740764270836183783418497440995","963965708197472872216593703009037705423624951186629996499824481309458564287"],["7592341644620635897459473904525491786497169864927053786254768174482403208587","6756369835844834848717011897810416503254792336881029310031573185069450221961"],["9706404297561332997789550166078901091895314340910431049727261175129635279748","11126123285899361513907848001578650680734500174882004687073729278051294008958"],["2930414747878933465887879381308764111193183226551447368366964978534975598591","9910821610073772651646494413028247140315080845483901475134255710190926116577"],["27739480083756545944283950056262745234842004490627706791564156167387021977925","26884095162819340268233015019483808272661755380460656258449443261299522288326"],["15783381536409311430338858714881985148905989325709290610045743507195613208839","359735348025441173867611808590327929765894794652563912486302511031846642624"],["14049758750780217207608762347956344238355646007976789302918080477281042429820","7285505646307000434232887761154225456175310160834979050586419167750772191733"],["27096917707503803462984704908896107008621483692490459619453481610092909212510","17909015955675597678656983688451798858234298386803612715298297168360990944705"],["2798794823170369191052798875116221008256085713871194423412155799576767040543","13946194256643175187629785462500524575382872778139951668064029234089272613701"],["3588604614933162233215378147848566359752958926967985406281686136643719784854","22882936503654857992787134851233593083212048477363665168403821555531441805564"],["8677507719477368795174555086137515987075409773841341935335804562564419381685","766693624437864990327631012256286665621555176903842933744934633112876414009"],["888031407749465613103127204323221280939339955444394131296517162238194683228","27239168257808732164761589164020019708712048098546598383505702867592471210281"],["601555791044748860952555569281262788519373686724982974187244343646311147267","393093327694700923433888833711258553685472213578139092786342061127344540490"],["5063748359006893245826131817730908121118392478513026842764676010558938756246","28692992846370730067937308972345268311977802725796287577879611226665163835961"],["26150358276520385063222780249735662004371642514739239605452082195298661738285","27797035998370813179894940073047564929768237940423983336059360135549024020677"],["27328899197015447306130080411227935973796899017611498324682895403047659264825","12154769892289182570868891138536646428130477771553980720964828358109123453922"],["23241661914882722497208642355142113007454927092718440197944646956371703202472","3255188060963448037107171668966576312599479542767142521814863918416287565651"],["1216833259522468772445509000934173830020771061803882775964378523120327889811","27601124863206585436033836840996341012991583697493564798550145497068459245693"],["28430117440725764413171323020139603694800109227332806317482038401860783852729","2533298361296917939184501561545161370248080271590809827733746634017580228568"],["16389961090458368040752217996644922037266972718142140938122748776106257550143","22836262652532816610623361526275255727904357826505578775824631290526257592035"],["15134799586204316296069301360964601661736228359108231220063522716402253478063","27776303328729444042642640053735569720949856039554284370987654802812301838565"],["15029348668822726730246630312267102124242967035920685701840385432820816071800","20518425317096244901486654535900251630564069592973015132368315979568134518186"],["6428276131632286942854022193868045063875012227870431272683142810733231717571","19533240969711102315406826672371869010280745186721365642903640470520784563268"],["24738364260204591434198661040795711482924210460518993416710709874044675277118","26995456205869353480269553442870300347419799674651890835193670875564655661551"],["24894708453853406224446190206262784271502623505293586128975119993276253575478","27252264415315815052222450768609084053521443756739351301764614352557862692558"],["9743096436878839333650452965045688771746430317794899216099263827486802447948","22397219399772543904544108026373514847508543130763488231452993260173991700726"],["18283870283575060096540913849694326864309593717636487778898639490808855175879","26293424640056979788542901400933394367771507133207156905300798826954610995067"],["21061942433834089193789192106469886238018122227485059732682823102340676939693","18259182658235225072378075849032513645708739239462432966270915900814050372157"],["22006061573442275817739798529713546351428873337023952829163538628697542052883","7766576146701944302217318210743453034968545829466826826937187859546737209334"],["24504259554192579615716827854396854209332279751134694120253306064104117499893","20876503375103598979222827384069146293364010750143222554364496275606610650031"],["18128652537296486299953755585982723383752981670944176334089754914969023305111","22543947232569860420785326214906899645430400135496244134978319230049302939087"],["4537616767635743578963599657947128877391598603186886173491501529635424375626","23558757878665743979885672179076638950015309763831967944835306873369010018908"],["27046721521257059128996191525519242343492368341699512754254756650924862054551","16024283318003559580736523738766740613234725683496464954966579062348095818589"],["15729299164096294623966920735136482058848766248794422593642755087030207533870","23911020772274830928468756000568485176017792389853938754830216786377034719595"],["8669517098481415940528440730937707537421209668791912607811911092889373541450","7826045629446311629022568485494521286196586959300488227251420563715233578396"],["10306956975678275568510228640323067258648475963202578321954462630547830360698","2061314389464090729666073826317184372046538851700674929708616219369120854778"],["6154284291239950937315378292970125048404162119027823662837932344622910190063","236470561122186087650360862700273543509103635789101943285048138728408471881"],["12219995376699550563193138562608702303711846594335860451991371684997033691318","1956795653795319128226385524303971069822536716768881241822795162728674126496"],["28751282421801103390538702440439202435743107844191664654120494525417602813318","23871324623200757436054630336757677737801301545006968458014371054062958305266"],["25931772794543441005976015177948661954367211550293584275307407875125455889073","17037452899101049117545220655225812125186222371077337600411079273298320274089"],["16899596622189020446929902559718102565133657980814113129712198511080902370858","22793637977423458405805990482135819311113064373818565707461501753781177452273"],["3951685371055789096873997121182847552182226623129900995859561955683242829280","12205493467468941646174228797292049718557156104404567753709956460444482865983"],["13868525968201842792086582935921361197373520509256542030205364027438458482748","8775182384011271343834447618640124623291015373947991474633286664149496716808"],["5116044504522434150704172206033282561197728998622124050959827651525981890317","12688326647490433291557820074604625695276066269738357362520270150037334763317"],["26735697547873443955076918279027179263997216197111628229819045166551284273601","16104291594892380001962882009371147244089412864700732750966780435125350192220"],["9487896443957186624365961628134729204215163075175008427452112635882353579506","2614354606878536154599895921602002360553708588140958244873029368470015973909"],["8077522828877361291302170763371592154333140345412951121761647357339321776338","9582357278428671576727709079130219209255827364083485511345632660884578185942"],["10644001068105406607591846480384268502251078101414108089410286659565608428708","23122944597774535928304372400623602062987442177960428088663322831614149732180"],["22076761878922806109959586657331848862520755986714414476629742634560156053064","12462776875372539769478709955127619677484640787301185977571871578082465205273"],["8437442079856260126543792413349917012448177643831898832116353380931790073142","3876412482302716432194585390912214182364804383110139508100640274381980621985"],["15568352966115418453183636935046862001894235596241310968696933695035041952770","12225361081232144660108900451953961184966052339784105907979454543714187409004"],["24997940801339002394274493187561777364456272173901915259393802630093325750690","26489852631728318895626012806968540358330872655465179034094437608776081180091"],["26177981219355062156961351479888860012337631098861536231846974730527686483197","20968578764208360986443305692168540414166484620530865188192391163002699188807"],["22403488301681284867531861834577943813386301431222588126852752944798917342076","1295220705293899627257286797931836079081244407168858854942036265333173062712"],["13240669908482337001768879196832005148991948404043189558694322605766503855540","24738967574107310544843103628372995050986266487652019960830475222405230215773"],["10812654966238064423133950085886905398021027737922593674202696319309764799519","11773215412333710486044960012454927836396333366561954099920178607025719846830"],["10722287668613935828283274690974308946773799720428357541274100844996989543076","11854045097780295213191372349238023970790480659547273106499072057430366237553"],["15161658239566886588566903951679619016241745351967007680558499653080841169288","24282264277462029136839979477645805478710477711999355827475775741766343271679"],["12887018630819590046500534895789062453865790731519659777346776586177225393586","8697892930409397987263633116656566380676355083984700490333180102371641737387"],["3824648854507242033360076175430607357165165456877784099169486975830038226293","5569727918316092405121859820636177544999100511504868138665449231464416317876"],["8924924324356614288612815290956588941923962802818102416785815494231920997827","13110665612207607089999126084145896365311945484914728706791744250253136199591"],["13458458266191997682718814409947192077501059152644672295112533269834821100304","1093994054647687866127900836649351296199803839019070321905882774887257757420"],["28687789547391214934612901680248452922643378231303778927094799923131462577978","16640907787570775808096287468418159523539993264750918814343440874530383548604"],["23650534315912595896273750567753176764337038984391273540461520484200299102684","28928707871247715129172300014358621711082242832978592848440552662304951538345"],["10087407815889736453602383543698747085506924877928558289666007599211825011526","16640058932563976510016573838425323731571642642655212291752430475413996798636"],["27201822208691783632484727916670619466809142060028649764310630147937550278888","12415219481718852056152144953058039181947770019344445298913228122951954999870"],["28059997151471293927697283172123154637544783980784317865341087579798634778608","13212400942346408576301291252681041532337714465099424207885683669023842792671"],["5455915163773331999776850424634351509356847474239591092586627351899738850598","2675737455374355056329882188691077039299854224999627030255636161553048035466"],["6726774719810849363701036929537079566683258183054979345980058762169961090533","6242114925323959432144389811303766430699251763711897614135254794127491824912"],["7262013266698925477565441411495179914208010231687373741587835886667992493692","11330466982194415702034423923603400792938328718748056069109132464784289170323"],["28128206521154816647556950423378287431710099483183288266087861164789110834400","18059006824321111573350897045873085167122475346180152874092063520812107089552"],["5285776217689444150974196135909868144933424043759198326948358831921464039248","25151970080097752075150500426209981656722577069318254739898490936160108210409"],["26175821976072413387062963938618481656655086670567197411135677072149919924","23757130032551034576147453380334398240928863764806331916273152050099369684875"],["24870327309315120477101098287754227237014493822837348524260643423571964490114","18007595740464213212997083347808243546369203503311140134004087868908032511671"],["20077953007013090436208665194318651689336428222876867950071534387692425551071","4502464032217184854926555364600331053827999968951455754080626794403048837379"],["3187221219841423229758084206743253640866486249036254937551702379674873290317","5969014666266613271537829134208635969102439430766366426440728129480700416952"],["21130700118073090648669821567168157896758238547580346859643417542699494899138","22776495522718489681118634241170470435055113266867875053633407759059176926404"],["24316549565321636686639332494228552225602970311502238565750498748336778398632","8193438010335028106191674425141149789072214402530275026646743502504488292760"],["10698522328697687115132752953485995843473654084423151305411748511617883915093","10198712049857573897549027177338624295056810231846107207824529581947786668814"],["15932736399332318288098780399116474636266231917025765905682988368397032423141","3853542907474926976289071081002014983929256398039147748993057425018640848528"],["10415778072749504245250701083825549524906842522897606965200167012887895037203","23173162941464117834296456993925022924704638749921926540961409453960843043375"],["26865014155494591314170689221172088412675945790556173689469660654735406588290","11815129809221114764360793639634809333335581463230723936805873410622496359928"],["7114249360444920362417282912686978972203768831794958134598407123502156040918","27607730188608584178767744109058647972127973163612983048960491437325093369733"],["13737836234208363381486965711491662699296322456044849516640527192373140449267","1501848086801435961494322178862313015676401244115988769784653852714880620273"],["2485177481035003900039787756170545125328674378853098192318263375888912754869","1680407004221986611427828596674603176357265506785378925762490555708399102966"],["7257470448124986063405070570888978506631298825699417591948593652062748552383","11194909277565623381445787682058746099917458905724158783191617260975276242260"],["6498484863423793935175922526083686456859028979106304039565896896587105770100","2321737020815157976178567438587587448092458035013799549277182057974167510238"],["22379544898977195463617469099943232386235047759111037579488367188355553494848","17377103244724201399369227175745817631004920912568610582249780851648922353328"],["7035723081605470320035183815611793690656155483840292882115829933301279781900","5204596098008574998251020152045959082543363036189583420231177364328832791771"],["10386232804146749703766928420664637410549822698381816818208465765707405470085","26890877792680297067031364712865158538957175650350976106605890460946450629763"],["16526657672075800413896768897509672872074274329401246853722484422893890930763","975807891285297829186699897691561507993669798054430478017059156407474098849"],["15956856448092070115401482267294036536664806397255461947239370608453555757357","13564938168045144418905927737275369806135679900711383857803705500796050774463"],["22404871796422777612751760383609347550999652338965985110453671358361498691662","11247332513741992046520127056448370687343845615419303469501747049220143552231"],["28894112611726162177299090049469161895758274650769517667949927576705108495826","18526632026052432013249287575066880599707007414809813088618728791352898931747"],["10557877595569017080758291814144711289391470703128283401220236703519540229194","14555799354115697134648444419705561191386129214551525393558452685768783301570"],["6510636875532092013977804350882342213769910502100310727448711871899311404165","2784991310877288235427772248795052477066513152275993785226454203940266785935"],["6645169738957880928360623409580141730770019637592724167102651921681889656340","10824080462620770061383524889837420501476420771358262798289082358474779486326"],["7474534859957749621931590335940142374911975199180662638304981607003347820103","8008163562189547422838568900997289125814318403920018911683528587332701647423"],["23614225151728032610276628299355916240783858483352141009498583796400295814518","28802619028091789430207320584346619758353070932725009547657478339352903300940"],["2788238723892018876365261431783570634350126363090793961733687687635519703283","22409689397061377594620468856140751980422985060318079823492346943606476392182"],["6683875286114660069722271605633019428538858628395645000502926656309953865021","24358647750093136195079996026059293628203099706802561924140947443454644708597"],["11951850626592916170844212225173754887673686052936951576750016347444401659447","24616256470669218752920488170556950546102473710873600702828033412181081617298"],["1762312780758052648883640150828045038236651378460048708514255517938126948734","12292151053531767015913284871902556327996235656494777797555286672079005504073"],["4822193443632744602822665362059299192427277752023864875350431632404912617305","13316298178402690435577067551736041148079822382365543790093215436756161869881"],["24526094388568968594120957136750082056369434874297322929226487219932508386866","24105963880133629732073776989877337541657831482306852523529934254572977022796"],["7667793885822762717938597721236716378909253428697773487052588031195552243070","7660756285123644994628051539877136222057048840704633572602405083180524538657"],["18282466281408776569690161457076842935315329916892970105918391138250041025598","25888641185516233216236865109066024057053336448776020654697277447627785777783"],["15763897352629637191034910803096473414170262987365200437865483701252922749000","11344021990830389320262280722607360844050338822134680555215899193193434744592"],["23794970758965796964210542973708659381378476991186504094343045279377030365679","27786701340222355579836127645016586830773063356788996311575866767714475485127"],["14505453771045398863818407925746023299412380509697207981285353676420055125590","24064235731490538092715088361601246786781642003735225242302109510182248214943"],["12404198425809488149898308680820601578662542498068693879884003917658543739536","28841478157652230400444885902441577153292952206306127642320729133768196758150"],["20156807731344465551073146199806466370015336281728685500130536765211688293103","22131912205111605981471241514271462545838256141724526715482395145249244795778"],["16972317269381219380498348644521616757062833003328434493301816207317067111883","4027112987956620625187633796836272032786086802949451905646108320100153733087"],["9425263265417818754851179897326525794499470720352604733903355790487106980280","28590081894140578369886077625221454435702928298261322526647111914938599337826"],["7373348092485891407590262944809272823350523435460307033930362916187933660601","25782531690167820245213681537255110527155231476972138411085673907086967007839"],["1523505578112512600422224489029291744615182609711986236979447293612525377865","16271281941361831003779821585840517619265441770311825872623947948892738488190"],["21273275624605758325359803133727132664415027129566574756116914769073946940176","1208277421894562715396781264657743110532886538662145955726882122951285250857"],["11901359899236056761919330325119433294228990119676483475525358111107149501636","5406683469588510068512577740712548667675469800033709225859000444522045394930"],["4607352680290955934321739360465353516227460700444057995630502122623292923609","7319968401791607333155707059917242480932499645808633872436041140253321285621"],["1762213493265606965849940304081195736637715669180685850278654993959023922160","26079235643421118497689751911751783190115986465874028050856598608010557889268"],["16388907431413639418821029403015720454567574859088195942960711259369305802906","15935679175295837914833162598893869417172593145563508990155706316040796118903"],["17424606733400608546213468045674168219083114678695813922827129044641595390676","5921833382399420281084542627301624695748825503609766229115606849276670305084"],["28551400493199842837098848047330298636610302299761334060227474756480128011527","21811868961135853772811386336374739307049360072118284971101267036198999005068"],["28353910483868087693929209789161220079965295475071799120844704595670320135419","540634697592031950128798102393550515660593116875014902621908387415914822480"],["6775931828328229953632425563002686617837924135181946166954644427073310161159","8896698858571594331296195466944636647322905328069958800912799583628912974273"],["5356616150911385200236274037506119282111117097708618274696149553270771695226","430157853264571359885677903164934073552785150261555003802278469777560764158"],["21515694467630322970093622872769513348936106553633069818042928021076054919599","10200628912184932870416660635030843876985063937898603801042496330401917684143"],["12633899195231089046430807247896090586478340534574078882965454037591447427822","7747616435168932170131327841209119732454254319259138829254299018453980479106"],["22957625364007166204177125295880759775046845319405878089112399954915966206676","24487953395750169856893928369223511975493775547539473368590962813365171029448"],["14194503064854748346405771426673985156155124323813149366859966974784426359528","18064053231775130901851022142858295035482887713157293205714331665249688303625"],["16815555485668999701672424421234400800093510819216276434740556062198234503173","10658058608625970104620194626466163572391423016757753460632788300911286789207"],["2613937901390680433414617148392617365494626132387148993133999041927552787179","23017142735633164609022620344599908636388941867213744552077974333520747386909"],["12726664487176442429326943792475385698457312432797353352556130298601109168981","17307325684009936757544213893900246307477484291464319756266467893284037245151"],["4255568853538990783768595609692312400293934198529635875768886926081712101791","28848712961506951104412358393004883661307375350483253800528234285806440752479"],["25360751574168745706853848772669392928607178741332120356937176315666179438463","2412837889988724815918864978875221562682860729251097064614651717830515884320"],["24579595338682718636944366158644275120745663745647291165614118709984197010845","22750536384315161396556669632263313227115037022763723403450760231226790873487"],["19223815459195898500458483793194176431145366767202259506946539016212347045135","18534348627516235938714078528242310121664972739294817004946026374947755432522"],["8850331323452400316217744995436980749180353485529042873392090081458604633145","7371080491864346243799564406940294686214497572042784704747567674069023473952"],["9867652273185706765410200034115722701081029057727821720835800882283173503299","14876066485706942950194457680056286850668757270156419367860668366431218352431"],["25763543234282603484905257709838129225334127487683613633768972173807231045655","4492794359541469406948675039382342407089736339069137764001285997227194199955"],["21326147010967727485564534268465821451747566575603610612373219848690638543557","221463897654588766400948023236993607127516460520644096342002286670409468828"],["3825360712137929633714320574438855875905403458036999546415752835133256730689","8638928537270042053992680575867941082448004807846821238463682039227645965112"],["28207206034895827677148837473856482282053901814485563697632368476559999213243","22332931839561748317873440340521391661255696967449468783345637541268295500859"],["16157483332279700067845271217556148834465779810230395879697148923703064052817","3969235740522732354692103627026210388038093428008968982966207742136847905601"],["28489077325780831251692241793811308264022253222776732042957751239269437387335","13747719134857667047543379297401224279572848090712417135841365760653462973952"],["16193841488357361286977246822280944444089055738153221749797621796039489715973","12539446531584032633305351829926997906659698309266210470515138257001056750247"],["13000270135094967694600882952704829183814965007762480789693467108751238746396","18113237888782798072967788604948357607104886596303883969840748975066138160421"],["22902440630562323918772011684812556659974631087586732453040692275890977502577","16341951549467280369780568380442556242485250867624363056212880730820860017301"],["21918115851651980847507959838994816319504248922153828599520519233242632600941","28106138565050457295240475946233008498660653372906301314783222766770381511450"],["742415532519343688486262683935495920426718166908996405573121970061569350241","1613537696338759241323388515415782565027080834544498668077071014758553454978"],["3312257873243432410112466970992080927832537639986283888274681440879408682657","6480869480287637122389985079173375344768284916842884286446750291494886654094"],["5764664731220971239892062196939642956547049788162708602123663871545580684391","15288601258522462564484774406975199687553664291045586884473172752424778284935"],["12092614195490791894404870871680814636410175441917342335886394336246025555322","22193636029944152869717249565194096680289719427325950909889521632610836343927"],["3314395029440190416119167737154047403289484977194684178548703802573706145289","17900436577751683704174849266625814553739115314367280807611957677168484581112"],["23674340029614008786556900162545959619225819419865422953998470302746765956891","18228935111617342597460889683797867925164813212114324158507412173890079941856"],["5210121844628358289549356482678633163547148785677270718129047512765246751021","24595708714119751856908470851489828441451518549214478749817881167589907445336"],["10942645766258599955560180488539049327104690362777849207750701848894283084494","11010944437343576242500319697989585397445399591395666877622008202295484244721"],["28082565632600504869798612805226034580072110947337392618722367390976013482786","9379842612982720732064334274578497669320148230357224553242481632968069598728"],["5675822013802367930448272899459045658992968983879488035265930871492325925934","9588366966781218427827698777390121190810181950704404159880363494132122627617"],["9740980816588352814732657350594124291593810650885970224403125947271185069828","4332518247859412187760212399013740063837356537037304715639107816175884740238"],["6530749567457495560469392788132239974288640480285939027517896759438092574544","6683221198684685384467796335166974800621571339993041026744536298883895102553"],["9318279191882582795217177474802501704912400815636774408301576641167358126754","9180971523681249891467202990182817411366609446415050313930990573012297621493"],["10108374180404499289573208518165336563880182846247510306321361037757472048681","4988615927864607519688433007821118170691644879836499914562192847365471970195"],["6240885374107842480097158216884146109409387219687840654615721745322572823866","9696086438641099506668900788638840143344294691244887819499656366310809875292"],["10262994150827903080196832460719250890873324581276499796234080121950779659178","25687761993890866854377206263248479441346161242477472654381881941642502615254"],["4221656083209760329936636038499966464111768263740918793749911569805424550376","20002011546506476073518012842001281751194559028800690656420050450973861285732"],["2642668409383214136263017212002002772668934124637129201616372417442967411713","14242339781596069856811277980990479540353195449146745194313358062524881614433"],["25726261219986738748456574955622469336687791262598392394836398513451115105094","5190342416719426689973322879831836498317219918586379005100687309812096091587"],["23420545753439008956629275040425271780919400407618501892726925932354269496743","28035862932517343018962135993717301991359025052810002994671744683890350988822"],["6066494776500784672679488515441581514399227476971135308050602924372149233727","25780149789473429999514671426139075513411670096409458362501916592527384493584"],["28281943789328014908450172135601568640401382663479926035459216078350093177372","24094562300735963808115573416788779177091463431315174437037463347749986251154"],["19806488603746019329817512706496750395849567955462888450990479153875309248624","24904778039496688506395876579134436212744698323824366708020681380082694298294"],["25968502818494843985933353262164197189905367342236716943645164676539307775248","26225388997865477950176570839779866309745590854939185171314004658944457546994"],["12763800577706441075349666475574190339106965697451367892583133245382308197702","14796550183250790584838847883248649143806867668000617200086011790215023780929"],["26057717430497978328531091081275133496089983143038174863444554082015089914894","14089055653672796875983310608396588761592445990223143587923193973603861717618"],["26877746813406181853667526910852523402954054902304877165055554433413451431881","24820428225908435258434665330360096296209178346688372589612754444249987734734"],["3089244189266033512944169078752861209694733961191652195810077250783157751341","5225431671628889655640605114115982005231457567831003335584370591433668785788"],["16159623699222373436567211139538329196193182652510913654925793896078976322355","3836608226401867906382992731774017003354976226085996628810883480302865843957"],["8560560963700844853376846279292501552789519406240585104453548823835044271170","15407937661561561106992381513227580299688371650199748019750857783569424523771"],["11188643724932538125728311899443367997983158939473587038084381960607939528578","24421389600649218250902406840614595185167538536370508992534914881009757274362"],["14071201343785851090883837419010770158436805678529502541249803574250775793335","2766290321072104538512057675099112702702182863608578953257761459107074195679"],["15856578505318081709551340145838717854654571769256696608956761252180105771293","14188824813908762101180958588156203015822586964488351496693602350645962751640"],["17525370055916844240630362134463068904049469896581952860005416415188742837872","15614732608683018692724820249802165017752364565934914325906738003442456892368"],["11342291915948673629941814926611494876986548623543344735645789683019420835599","21665410661155598762467646591610091615956247499084108223951239127560583389763"],["25608275612080496234827815065270414255391273197663206032563952357086316480472","14714498648300404401777088261969330952102562890937020897179937138600599981545"],["15203781804948960485336830528639509632823536512937923239321479000549751351174","26794404482475184063720734195225674167210284339819959109606642230591976533037"],["15632300280691395674935497876163030325051052135620948459370008332408780695605","17728357486457777762123908016847334343162044110907151168052587550887961322798"],["20670680583165808964741360534361012008403120269386140462817813911799995331555","27006590591603700026507884831835775232823200845489767795500833737527423891420"],["4249875097798159750110950567685287933080781998433912034877900005486161662193","27478597898155606611940330997487534510343526885953819388612942340411821558669"],["22181696929804454458884011687478130697689542511436383333609870646479629027941","19283545474557360165101720540061257538181110495077601854094304000960912453216"],["15688163002370126245845447725754323764408368584495028454739368121718419329274","17976491207056668890471513377755074844712835268744586395187019484147162417098"],["12221972041858246071106460243282932538694919412425957272372134937786870908945","9630948481929315498809838979284680243679147788501445878384606169069736368280"],["6919340417272266954579697107833342670913862486362527615154686491227808461594","20846761531813044221369899034095843720739087689691610148907389668555983372056"],["4102280945020421166407155652728208957270529151158482342618370296498343848878","19709795373191071885670537896738843606448951106722348763635551795975541300006"],["28446958999638925439725111245135115288932353584683126716726693808212478643070","4049309179842206246207415631101753346380521318336392931197580799326847137802"],["21493099598216328099904853693375066537346899754057734988802703780997271822750","7025833041650927457100955636126620488490612802269558309415136678262074399219"],["23340669291794301390704408690574825212931642871664620672747609447206871965887","15869260750810020258851983163752898435345645372164633353050029397690967172850"],["17724463097248858365402550527842415077443085502218568669078110269134700039974","20303520635288421137226691133407231287566616422789376151915313606811242585135"],["19137894319742794272736102817210757675322340822990817792124531676078188605209","27205359759980410172201847479798009131074927902059772217163546606025468083989"],["26344608931707422450234462795737762155623957347779663074310403722381443196894","3642841803105252888755270526740818454845373796236968088901777014071428318896"],["13985262263581538287648714657632111540984122759562519417436274582990592188220","17959551309953385755164035410010641799495290485603731794105483054798386158405"],["7107637116672369245855339196927292248052540936957924831570416086533082253196","21185419301778366985921971887900845088621784305572404468119075423313674467125"],["16975958824566004965838212528518231859214914951872427955478138640071556754524","13606536887566105257095371596548113976915886921711741128545030555411211423121"],["12923668939694999262656544791167824071500458123340235167264163478202067714121","3891192443001141639165900070536880881731307911950409876188553639454433250465"],["18710958989213980901888431436150986424205184897857891620178853121001173287584","7515259231194527213403198683354268567054220920108392783211466035802932925432"],["28514561216146892160575772023453425007460858116738342117630169955963550790262","14467123563202766394179050679258431380083567855642949635323047356601177446298"],["17430332453897516932412116320155720245150783927393253678693649695453792114438","21112883057373374027127224781860355234979948235698883932232584872351640729850"],["27329702973713114470329813683320833478565855025529440627102919508930916580950","15591167924017277415627054310759586740759718791684002149757729942354785692959"],["12296087525092738744342742186954983089391983382427680779975130526182406990774","22300791557167527333321046215355402313664554768680449581034196606285995153364"],["5251821647359384906243911390599668928417970554813185131411296090618408485345","24082541885155438388274805241806666089371292575894977235077508355478358151156"],["8768149780384039021631516680567485778397241870272407184327456362617474327453","9718554716793340801807235038223406063895687655316474154485958240732253194705"],["3735221365053097100900760255723712411311869005966288855338662164745598799976","27274850041124199044562007839444054820832045270326286628857460008260980410000"],["2746237018190752981521227078747691375968225339227525769794205988786810153809","18677789125412515267661528998869091535486899931287853156481675992828947565313"],["25755300078740552625217679641434885710199336853579090998520905728980670462219","2900519332408037306469523510763278687219488900630397156322819862794912684515"],["6284558600606603826064773730852864761071535899704442095312389480438067501235","11552492670869061563199924719328686466473329772643074193602395513522402881586"],["24116228023708254598500732372756773068243002875281454383806200059537512842796","21447867780715909952735603876740671517733145304646060261241116875053915941961"],["7422946155777133940915552209353912962167519306766236407844879182329087892392","8133555609232556634351199267150232004712291984359995265945377965595144588201"],["1725957395097104102454325833913685794108023910392645946745728472455106669876","11070184095717708856097226294885263759284153104869253604663183439002748882877"],["7369824888558479526201124615880116545458123389187622493856130266633516778318","6678578013800039343308978569672905799549519527819711750668371886086328391259"],["688452150505811875830603385879768390464337686375587097226225909870060306609","17792555832394946437393697397879478376801583040923456682237229981670218148636"],["27548159032928498123510305249392232684657421211207340970361172078033906457158","20759809734110911126274693266565987087300177573294732042211188618495423077695"],["2913280293964060373497231878626598252852903590005421043711821648408872005302","19178837982533247301618619311512805886154814433382202170026159161625637728032"],["21683019352846672859246766327554569495043339044359891967193752259027720728255","27112872588675137041006808553480560592570815242825539912109520809888255096763"],["13854411422601434566932838840320499346853206099535666619239174577249374576848","19285224911337766355997190209342951404838420907485942137726875351994943842703"],["3988997876530681034241568157444162906917381416848778389161896279975874556346","1521714628813020823981030689000067683037992678530839014500956889681741092918"],["10714417366391509868509606330504583407469328523239619224367174266510784617502","2551142080540220441039505149973539332319950503243072812109885320609404083946"],["21055899147525722849699923791159596360772784833935409395923268007076661297521","22843282435862722573302286253403051629398873906254424778700015444710846149261"],["20269956436411330086906819348074307441422805097911257429839020069952960709954","18856210126577121594096367049138607802779156119216157799143104265662305473686"],["19736108456717672083237943948926203915522844448926101770070800070032702742416","19226438599330606350642617741939978368532492220541390790761537632291925177731"],["9618722275050906550676219056972999284905842092188877311394768468462370771277","18518499743058335569227533737981433640718073235224991073610477640691842079820"],["3579595529528304091757290865998361122296543703786904411991666996026714600676","20217264052490190860475503793750250913860698177112942857297785391768692986626"],["27609984141818161458629250052101712931449910961122213163854018213963297779505","16267595746512966489662484173217794687914640729512949226734546777095548981500"],["1152482406472931131906094057771363056705542091379164987354446761252075931869","1841086981202136951006756105563860437163423062254336092295719301230745560263"],["1410362205084636679544379152852972501435461316493867484847573494138568218279","5090689880517566057217831262735203950895101505902905312254451034516573774373"],["16276292979399005887107114154913900724502262843617577693586751277089411372716","6192432285242180608282086155878681979804088136656178268318224155518714604796"],["12664436203845972960934411729135475580169867903192993476911089952224835304550","20000825600850577164086308744308717161658325066089423273019184286516568968663"],["7869485631555502768825228651609489321532996710980838930686236325250836753705","12208650425910046912349127060974235605757460477153009400585152975137591770332"],["4846901307170942349919658245261899770005713231636189164122001927070415491188","22942251928000050390138661068888828203355709329901363739502388496190492051199"],["20715886623807647566369516538876293297255874757058521089864590015930100626789","14197253411047355080915462977084319199384745054371369262777142510726001622088"],["27699302750496887414923881651664974190943242866278292336724654859619595360948","1515514023356263807923936269802051621111194342726762120613218091319177354690"],["23274661842492941905527957063250481262269443004772830634203645451143162812609","12405508890197144666304540897110577651952795828099764654115553868288636319145"],["18276691391927755012987669914501171316599864472057376825565650404949949583019","5371720567105404268781408081113539961585710090967509121879606858994502287189"],["10195238618318448855063557546841379613872683321688945524137403395324097014994","10195819253662239859161696500455041062323681690871957870796942256696259029583"],["10252656212939087965285848413655939849019863352309068686630552260457844928534","16659112035099946806511630715870268698555066827589030259966751123860432582389"],["26464340014083724507548655615319769714691694404499036530359143917308439729841","4992175608142245294797997258558048643141919640182377495508097008603595884590"],["9919847261975751220586343573305643394545673225216051377186257999673225630878","11461924994793950712723868149434472565978779894861176637539959982395333379692"],["23838089429812774126492530344578577074669155262811856013338491810168808867278","10556309286628032870322161918648094073114851888892207274519435487750309994045"],["24670666566482724782254503321288618719166188494251450843134013215472534692671","3003593321698567754736753895216803222008779628485718579154446869223550855220"],["12751560883025560346940583944189933503147837054374987553376727965863965392325","23182230998564586888609461063105805718358665662897531141863491170827396956208"],["15286858208195733487641305482718950514191011666138786085180417707748906529289","11703662174413741898393689045020112361851733192228008204192275518294281958430"],["6530357790013213994616813414980210219640899179028606324416672731329939209055","6830732694872047650693561484530656377449157713313008355148628451798350429733"],["2844306345923885315850163225445779269527449187691134010167846718266434041470","22335218276750909914881686919044706374489667033524780739568615235097837580466"],["19163027571065501590928943576248916658416404790378486048605865726582372794598","17269990293167806192323752666084799807368901172905858323414945002149326882144"],["26850775458321347866505161019190503053107566627830857618771889654231800978290","23167564202083237660854179522393836322416923893336670111933004826637289618446"],["2357896383827514755682145438408835930131947238654531934352908920120660058721","26430784239851639254987786086392122580492724358998563506982687926825855579266"],["1173164921420637895864581986996213085968138837712517609680915847218350816958","23598153222078165076792576990624519592522925747669185617229504431119826576362"],["27055262315537555939260429559640815167880748080165680885034753031867081977657","2806691436756983585870404124795555774049958869300625352820097947434420020849"],["5213275274241001139444840438886973998823841073745481056123058294717844191142","15325036552967969805553083263188160950859491380879437820818843530401018960818"],["16943843248735772820492210637618503601465146845887255576186836533509683766468","24771922480811368344016734989350650476384078681276643591974379649518994018741"],["22903735912109339950643340718063993574540065976451354866314524572003726672463","23482120024241552990548893030590073893654182540753304685305902353704551389586"],["21450271138842196185694060533957257586559032706267637922941938429947309857061","16554118940605419312211373739589444216011541872755256754642766559003629085715"],["14097376219794116434356914804837855224767189990867249301352397302635808978619","19435525807824689193699915995092918354543102197044900576848666064328637261041"],["19064683027529300117170042056950471496527322547613635228874820361773782869873","9587552423222665165955657546090319139503156646458207546619073726125752328342"],["4958658239694417597088257133069169725334102420105293309410709585668302572943","6202439186790339904956837252032948647636262992778102649978354750373680136424"],["6665843080383414556464964564654250789806412678391287257309495027551319242741","17095115414041509599677135553842743487456308776489082250350730277361613108052"],["23878084130763119566388721177089229508279357428883284064047906029351700432629","6624460944932282532659529757477949212485048719151282681227963442763428482086"],["1013437438946513134979042148870309889224515866078882537493048651577140427937","13560992504051303813311910076611499715700893174781777224331255394420831116782"],["11550384324422910305844210739664638113142640221896842316921859461606781372864","18359104738814827194977179991150335326932762433294119558915133789903465228126"],["10638346555442944533090753666067711119318695158770613038301130905664222290114","12546455030630226359385052107479642397901531937225876429795645928933159779213"],["3114054446037538362953640019511804307304855076562997498194783619556283140403","23865485239571266277161146156284956937878307112929000086564893045215231809127"],["17082038103033093024884442963504341540235589265206501747211726750239934525608","25079934327805447478099323683680736739081670063496861630632182472158584562786"],["15708098029951077179060386337823282958441832050504206556940394198618533871971","910958096551010519630704105442101029855177996295909753002553135876954440006"],["2669152631398836275736527529897551376823205966286182610505971752544518119386","8736219524622207519959162502026565281821595152073731712181182324926288308760"],["16419458849513199729091084743480366673960534917618967156500532137979526221490","6069694322660993559529953414131495475773401522863025781683310754825706327667"],["12962402751490370034026517215927995759996455493109098908367214284406791387626","3398404611047913712531698723575989573118245818596708585679481284109652943491"],["23996853453271173954588745254613283625132387142662218495125851061889533432239","13603246111498055339479621525268164092697134646807810520357882890291556145781"],["14539251562690723182328154118545079417507472343782315559986600391545799320145","19931374046701262333422765611266742739051547130341641388998998396969531861643"],["13563428243082556810582517993026098873280119582407427631266650620680364302602","18314187061746239771459603176740237782996731179298569095305652684038532034989"],["28039713987424427935035053062804816000419860050240815058739106846611747915953","12080667967051084840065223739582818579212810895875286139883544592553446467880"],["4549791856954177832415291881712394720894264845779507441648294371782934048098","371536487827346732472164900547154000178037704443735545280085201219267324313"],["1679806545291023788390577040975628412931420585765980545832101992193094643979","27322570061192920380303883813761501584545937557221309581854908858269227826662"],["26795232164324386370510204180029042619368123031978970992426277411122988027496","11932291455248111557202029034136930865971487720735572947892882753982996766733"],["932360588236957273612680624463034304110950615069887261951051185516513213195","14416996545148507681233969080489277354930557106888936156634170064760702478070"],["23144563106371275687768767596551332211385643649358250955491620137697320621826","5916860140263104240508421561093437577534522708145549236421387653031165755077"],["25400440873984034921350801769698434100308276889766844651163753244604532653040","9841465250491399526469429508479478122144230228764405753251813277150847544846"],["8137715827179345416981647709868600889344208345866804561179901841148452603376","17885272540025944396434785411280564855172018676497022537931726217488392161889"],["6469570407276704028836871095915088120764579190141206937618563844812515740101","25089257065257948347639011335356628886641850319827544516883510302950483240205"],["7711452355914112000846200776153621018136837017099756641622142193900260522215","23701958004658174054286817806869876340352276478229429713326375585252646857229"],["23864583245031053059484514322553466061561263167919023900616027434582118275197","15205679927530076397319228213170112612993911613269798913665676150744908552865"],["27844689102749299530409686301097741263561479937101441716255393136992690490382","26073086363505036168090338588962985173272206647349088647985066796795454140202"],["10598656980464842683219221089028820922984240252828492163300665658365906309642","16957562041472374084477980907803315069498390598250961025917388328191166349685"],["11026933652251182027840375482825600408593387030421350486978891933390706144578","26133890065136561153735070633535404940932893057392952648365772749328780241334"],["25378122197298512637969660025934099736835488663024821549017188280558144339248","28822774506375032695107655486857185152091281247185767178524516240542332068574"],["17016833586698731050940591257744256197110620283880126187119777726518038165198","22023570938934361722304764341291017726201646098518445165805279487393246357330"],["27756555088127326943004173082285195332909459352071400670248002106379735993659","6868317288520666951022480524458018180212204692584559679505492483695199551982"],["20912106593808868214582716930220673745861602335019449232371945532231249088699","26548481665164251362803633704713629173028105514375806637751238021240440787635"],["25966293623008967115837824526094135430343833800811846648646345238352515880221","15741583535004684256147198096715220150895161605313478559687527481904944452069"],["27849066474399777715573361379618666808748260850857199284094783386201625337434","26857745117108116295728313153349395795942511037099900068947148838531996542402"],["11158181275457161132111582293216939159147632566094782495236810453581625903775","20817498046307268347883656302891520996704206088097976906244874214336673580124"],["20927536531417602863882136240600485545772574494528876690167559566308525485999","2203215714982061839298620905161134594087960733330293456838421224824442882954"],["13513247646646267672998213849976360668719025273129799638898775001061906607069","12678847615253744037668898245732677246318185711976383539753314632536153826929"],["26418871467215179103933731207046596707478475699561943699947226573018450700944","28483877247186539102505534072800557417141508833154061042712261371222110379178"],["4525815198049551514148795338764512297641123940236779933781118469662286279598","18694130950031096874507396730932267667828067249843096590121214067680908542671"],["15657178780238568083916663216575269274756303550589904881831565669714117945185","1916852150536753947049617895034842139037480952147866755829755314518360930625"],["28564626065089463713134896543505152943057307425787644828229170555445661746344","15258866468034530356599361980809690387899997343982285080734076555432884989922"],["13914052901064860810093473845393327807751360864163457632504876678474322837166","20101571353503316485082443260555236872638198499956287824531104398039058832375"],["23672495981396493195459971712472111945252491266292094916992993783805448650101","25308892750629780812071539406144924095154943405604049308024540181272836593402"],["20163927531187562813886465103017449741120813117728964938667018547445856646834","17718193571811487341760312493850653652812940645207848981977923346098508624809"],["22872924106061492642237399276161483068903873932232113083885975256078612786839","11978719892570485438069232454884114457264728111267801464679934084630476589082"],["26354850694303490215230663211806250197893973871451782427849425404277864662377","5544437396376003255051556562448316580656436358802728816399638932803871390335"],["8213209186784304500462260440902710183982017254120935362482849960119806558156","303930983908707629302748362141408601225241128627768620436083232938726540050"],["14282314422611092400994777847280318661065630082068864025827801237547874527673","21449429915331911261214040585984113020413556992272073067834708483456823008688"],["18783166365064194993326435694067756622619251046760754502172081683518548234213","1495023673854515575596294545416911083681326105396253742259134211347334994341"],["19094464084796168922701202726417844022999563730700920113425302279916191774833","14316224998087892315646771173223627083693280508794909345447100381136966432318"],["28321848994740120452375328585390493134535131494687097025761990143943773528957","28256960423802554893959386399968354643966418902890912045005974890127474026309"],["6383155081102774096401111244394495029124626047446224287457986238471308738340","15490706171542660899017212789267101171633552131628765709607540631431208906466"],["19384290965293589849984279535798091154780120242808412501276872354164307031803","13070625847638762555137913385482482224491785277736816399452940996579714235525"],["14998501566620462617099960020087417892847469525164159639067829094126714769807","4862835206171566532709733460809467683184476454675210642525687049975527521929"],["3482923349710677723421846794507392650206187927700303129461905373193358106726","24899462984519685587470503869283289840252437460105665232222057823100794941804"],["8455060948731973781000092309811593486442606063405647270796925252113993317562","11176806123521274360210951097593060869084050976177116283645724326365531327487"],["4897490150800162109382630481851186839928753149048817133611382830747804309470","8661340641679096516971594870508188176468476453923643874431573876197438607948"],["3841895413134553324865684787093719982275184421282542335782825509022503433245","2316990930456422425955077390341090415910783449005305663298877791582980711149"],["18430554804960686691438244257061665961823978663242575826028385651597685406096","6935274437442811806911024880376262113178898984395298467400278853313713418339"],["4683343767646178383242638183724785418910351147972718168902257715959305210987","28447049277544554060256169942397675448792578333843079513855443368931438115406"],["13714163321882245422290489446768085015040330566777123025355579452482165865729","15227012940252349073382620571551449454840609091084005359062433189276768917760"],["3568989406841791771635207065593162592627076735836454434902118172336329490779","27070746462810667700576445837139406356344650064279328931053267242077699341259"],["15683728240017757208272515740634793074008285637913875616840559878852125230425","2111459798683689309600415500232122111589848077245415279034813558430458965925"],["15562207036263322945654080526564456915765590599866906654004208130651441650463","23447810458085295341767227492599339773584234463564140030584369020407500251358"],["20131436611266952613368325729910698514157392079107256415117988256735360154618","1706948199807385791431336058608366855815672997097106098420271823264876845708"],["5218829558023227145700321462078654982226574069335418166430904704946588752492","6649001529608817463993448030775287510418685231024992032120633357167832382662"],["28718724689192685128355722555459499497160418576660483200959045710509531570077","16107262178156554068253033377249589641473864390365884674010289325336263823277"],["7541545625097497698593672884138080632729976079065443386134794862378386177218","4494073840903263024726630220412429423421327580781715156301542910224249162066"],["17196176290273815409017993084239334749759070167707560888591694826512940503376","15627703530523865694095119572601203594013356196682635857887700671137198665905"],["20550079679558250793410782915484240248211237613299912770285382567251230562295","3423657134106202403994309278331348684458591679838457644922802721519291301973"],["10935568244301055067200537547115081163905577317099634865158406782629790446903","5753782991700845756606573351764335477919975271201523510376197473041771929948"],["26532689251560367541660530236315490918674389046509292684518434986175400878972","11924963212451802884156475011981631883442876946515899705845586433703190228518"],["13843681024959284087039206938225860390274424651160867326016499202898564651363","27581504713536796658093534381467255169867189293177737525810384352616037830940"],["26669935930059845857866583316235297057303180665976590640849643428810624494780","11762899545335760936287946332281980833789070812258163160274568815115680033488"],["14148385891401962565180432590336772876863327793272588035070670445925705302775","13024983488568063043294245711012406884642582267478794248549807248142238560784"],["22832895272470008045366210156081323572410632360381737759859082281669147704334","23867500435958680000607441795077016220558467377517139121487495791747397752584"],["20273133313623663317711760223449848753716747472794636268113428062895552682289","27491911366821577890734002918802453514706155866387307140635017539504085975847"],["2119154936449951997218791708626677569605556818478859085419665583420900883530","26236066998114297512016076332577746740998605410231558826659750549370487603115"],["4849003773711892542099822666157619866064687397012156107085294895621686363796","19855173390893703649752651423849219327678361477399347909365615834311047349448"],["20336044445506777724858088943872990490830163449451963038539310964277696971753","22600841330657503726761325928729517174326916953620774264688088309901394163099"],["9263610212432566417580678729557298043213048375983375692041227715566817678186","19843502521256021081444257353321815542490702843706971012401879923234164880883"],["9115941523493414590776672744846786442613025234707656609116568645832835352837","1766945618530448926244279495507911512668937204640217061274544868936596996551"],["4640921440632838159090395807356867147578237626011603141569478399655440265867","15859698707546585802446614171392848193062077377442000674701672496495127584783"],["2875250099532953345260975888545426239603726949814413578529974133217719205966","6862623122189913919109826132750723531499331750522717663048291160295854654691"],["26029063531045080283700188850962260544442917114232595770472656998096429100194","10472294304276651163016035769790263353870559210990223885718733675134668303114"],["5066031074573213271855249695731744740638861521511965373118319484990836551244","22434238238498251302821267648133906177377871499199227319199742743358639932013"],["9187860771711410213565562048660037225430022464851797972343454483729107096023","11326181073310972186195988340431485896214168602316928498519566977138556535566"],["28567000464013168943251996855491835646884931982655001822199081323288016991117","6576379834503827103237073315609969562296848168150964629240404085792423274676"],["24139808098425902652172541722065620070106521626372956751524264772016681582199","10220051393729136551538694105185541808880777715589123065336939430870015144079"],["999630057381560563062912433756985148999687993461579243034478466466621709960","11943572310889432088866145606349123395730190692962597766015871699855449181798"],["717326345484843468496309730509010409593439537773542565428867231872839266610","3269023043787842481292068667528065404576713130500067265320504805295091744884"],["23640954030374529115762950058145379586837846784699288886455893305011869221153","15305591343787955702199092159071693818939261745279360011023987349306135950351"],["2906542592340049927746384006364292488872702526223878167191254931320027416816","15191882827344389742100946567820378068954467888033542692017953268548458661072"],["1251746324067485526536767629956197413712556331119844598396900223020228681242","10793632191806979191948026045043864487174094470956610701197302002032009027749"],["17353174045034877179198696486897088545456152918917775415058807368715064850360","6452188078237965156535489267061692448785391164845823189663280417819175210506"],["17390456144973378929877443052108143811985054422463697314386206045101095169605","7120827975831004231387015867115450724188712546112894979957841015039809892845"],["26248065745289419850834619042266998279859851959868946030354108765465584645943","24786336195202567173964672645264120401751201887649719429778370002574848050074"],["6836902386550948655524539783740865290682930014911810431916361757218392421599","4647644951754125591008829463294991175822129448935781805605006648444163587710"],["894882752119118772343508076528072997307928963971033019480633559884080827023","1675481179784033743465477727251394368996259119590249017473225942048577068035"],["26044610145212286112892596337893957398474070373170023177827257390899754319260","27930080815264764076688605802936727064173872339136783256598478500915164060931"],["21051352323160471784538685302154741158271632982636881877985770096786415150534","3633543912460810687579681390607763565245415984616003921831722896935946595861"],["774456266267584054132168011549446360513774722373808644959604483645629448669","2209996375336830940925726250194888152658803546065266688651178445959498688139"],["19619707695146070467830095499018860995761909172493620845907769032772328829779","19269604606157464014723415559549153146521577003243355842140623100136636242032"],["20564814157259396704552644079956557385345081510611739408758339235815079294866","4405862446642871094605758965916361798169364943406417584599085735656254059530"],["5617456361898716092108604802048511960634662894941308536936113782446867684199","17877648176806969300145904311801328293714232894937716851447513841986188901951"],["5300971457516973997547393234002249895958242607112278516294326566117895399064","25328886871223312581599167088616509843601405019801369005374819108101144870702"],["19168062620737122263826234123898327661231947874242196439766737098007503587971","1889612884398136321183719242808634884391599988059512240265806237001014454494"],["21274032125427978273702979291739290707369495812679814092037337292530181770841","2179200911899972854357265898885018286817729976455013761286736857364143991377"],["14249156882227938054431055857342244787766144906515666904268980290655792503550","4332102570137523682887946859606661187565058978239427653873786631535691333914"],["9559035335292708861143710918211730103788328124962411681156276840173635373067","28111568459730625084226772816088753620258988488129596860099157642026827099724"],["20705422003639097704457138270327628196193246394202847329324028411619109365208","4103548384940593841486867466743505614752428102739372949265272456870094986498"],["8286520616707738102291725477851304428595397639885244272713436463508546722904","6736311740499225185391450419993975621945380118133437447435738426949720496316"],["14542826238761055806656428626841131009416629610188111592770356543319627843174","21763324398684026848053342919028735976394382754710629048003783036858128811657"],["22105255581467647830266120695879171885471163252709739704767276502074615516229","5599020403330391095698520508276681399545848635315497639639477728181809213694"],["2708442099216766899289604270151081335213793213158594088330592713621674566338","14081571710669199872665914617338879622637876062958041621985644512278154549416"],["11329640828631083745147052617647366583943891307393001631698069198114284906213","2541941508796155841535243027249444765950908081084963756785679779911410663062"],["13404314587439170290092454060518437419584409401481680871858458315957805481266","5053700313537184387133860306675265338939192610105686725322110068341691099583"],["252703358211471352014296963802282627414217975899926017260033456285800248804","4350959111951229991417725757277022622710094866444030385641307129369219163842"],["1371657912712843566291098144579763862375805859968797809252427920157914034518","27036459343092089407795594946777268734646345220553033242555319491324703044550"],["5574951740991311960944122546047885223674155983529456548311347162302715168755","23845826567878363125188208247784204606405445768109639412197562404047370095978"],["6992763841895761787840980327650332314021672748755928466341630168223081807475","11011638370602138483665148552438394051865692285086289339075410428162522635759"],["10982858406266760569071343367312578938897027151649264131081779353512866688065","4598544713679985788172572248516073546068266975048970677521264234107438987123"],["10710796707763263386885653794167255837819935821816894408814476001013803437038","15558926226228031811993605742466530398096475991937194343857138305006101699082"],["13617278443587468537284811624816958277881833181264129168562131365057695675089","14184179400216203219574526869338470725461699242659888163083713926754619005639"],["11698754309307153008603365945523107984109486352834287647295106309110176306331","12144847953777474817516825604647244370836311638165200008013942117692855521959"],["6008937976644778385985310236634406176342474749529572187519278862736887125170","8752096234811121408456699192895085381131354409319349823076818193810823902802"],["686835466678921388652316102640838607740907496311448027459678267933571487875","11775388165847636236735410587845739461462542048395436122456668734639642146062"],["5479780285382479777943137874036002966449521978271785014773483991016190706285","7126331130345530227756109307819390352146108293478687569591686569188225831492"],["28580770393132795197677437666501330196148818951583139050755256886377693302943","8057839901364803034927346757770151523665557566590337322197386276293390456244"],["21523911271190708231836591238156732212226029518969725630624902187129321675782","614060964844763795358433567804442895123926968216222525790478339984539305462"],["7287133974074850960395566913249575639081464520752817068247884734553380333765","9338974915456668417882017761010850607193525210979693496500129335402326543745"],["3917574775120437132501178012055651600383545854344971893984585631778265386292","22411615018149010150625757275817938044858228874796387636235231044235041913919"],["16493224053501497680233105541167967680802084433688201023345948094671028224122","11592942628456350839831536559020205997955880301609597425592283051724309681672"],["3820927905244204568022521190860209186032760063743411998942374221718071492354","27741373480032402315452411303047772920249405984084344136548410375898019644466"],["23932928498266463196477685477422760779411707549618973875524650490446036383323","10854497466893798207686160207694440178662728607232099456155581905293459292814"],["20518501250923545280946454240176796389248045472098872022556121773863363248782","4925191593859614438248656545319202945590851646442548462668696024399131432444"],["9918313561423188418290577190259767542838829212177814352838424391157360883000","26084188781866532922542529453350914928937205819477220239106653932641406961740"],["14499331313590362215069839809401851531821042713779281134668298062094737736147","23172917172240545067566396049035263218302589471553668305986369346639802355677"],["23720095509469995566681405466825191726765944631858291030170005406815910833582","11438876656052839123218530181313210963289867284421893152991723547347563896635"],["14133186093989853322052510662945343873498345913417197274547741442885590872142","1340738953210043114604983421583500721854382936662970570125468732833037228700"],["10232691388134945200180366758218702139360934217531409038050203833698511046120","3056335232935452740276181713044585504540095792435616281510469560544682281338"],["23412239465903907568187563518902161194710271140324648423199436156308994202251","24553308976296008979861943525962295418761621712683499220858664445192197644368"],["17779791864420830810138207523762161267880648027397472653361234952450352469168","21262970321566933588774046799832824853951360639443747876184224074141545001153"],["3205534110816632684039299305591701166273509105698084064828735054195451848249","679625913877156315444052294701505503618875558256018568093757444863721813466"],["20238664093112505334586968557069469165134078566836764966655196514929149099180","13444434976667143938403423157943205396799167497967476989327363557345765186273"],["2642739106918071569574021385547861198048003255219261406546986786973761351113","22832240346387953369518316482685732945377116872192820290657611680211954413155"],["5992019700131238297652248598438179029259233173645558339617281944317789885571","16517336915817104010709363522763679603531743030079824357527455203956699957861"],["22750255829537177962427066405807356567499172903985696933931136104604884941313","19232201953804301767843212646141682543951211510552257624727889297289438319667"],["333363846052723946825820452431692941937520894742851234205871190951344838503","4399404838052425827349756429761322800563521949027749129045347338600365213110"],["7767372808123484664019493000926046863427953530289435229614436847678455432064","18619652085147369873122720097264898365024828566861410859815909234170029292910"],["2253817026972001140642884524681057135460509680933644829554280294175895771566","15778583083010094682618346997157621647917302102650666521027247503873644085354"],["16024829680247603284927809793324688238774087353282898034007065135636754394064","16538897387432341095555167453524718176362072935718568679321354141004585301206"],["18370757503351836639124721174186129139042884591435036422285745190178191711499","4166706277954480043443059869744989729672821361921495040315557734940353700041"],["4062398996233005496816165812649198461405559643132578809648327767581243697947","19181928547889786064649559257275533748030548346666586493134216314686747086374"],["19077318529852485847690781604011553003929313837352500287789420169754709737974","17883225480533456115506323572465006698330310757028772172803036931395827717246"],["6987837454621912872943039935712056385287431087821169207856155206049087672743","28597066475039910041551111374591564439870619638564340157469036779375430276269"],["3361645525763935160633300319561519375027333916654958976714698258956721124056","18981363594442916095822422919544098089644284734143837467952223416356257399434"],["4372644703154526461818741645097313540750766591821443635642186722180115235871","21347707603654382211956339317144622058392681195773051182023447090781112595323"],["13204059498566906033124173163746246749545939652303852122666339401963375261860","2692753408564118058187606417774772650306309112835430084055760950003060349701"],["26739787418625286708260968427051546294140507192228515657806734889706665518637","22965075031061552528415290053237311418190723474480166142106982454276045408566"],["597737594599819587964828900041771655145114068394552903298461017579958892419","2116314214626938790950715007263179671196158260108619121170516708083471464323"],["17398729783613950829097131336248200881550503206136471524091381244805308911820","28365710774419107866821313765421867837775536523985168986362975546495006458516"],["3376814419686894746758224938091172874035637149011534510053559317976063315270","24757380809855993428752393358355751473930799807997937197708866815878732393278"],["13917599314125326535783435592984341734612155835371472162467162374931966612233","4003005344327551649661126262721576644925182278601979123140165117647189166255"],["11351414614646336115899266390028226757302134653806965417372193159285929976664","14017870861716758909920974499726242693151159031340210533862291642578121357244"],["27662065206677981814365981449729314701717582960009070223775538601372766873011","6891544526962094264350700743719711854884195264738959918361023027495995378083"],["23467668690292785691009220625292091075883320584809744482479538713336186291400","21673362145827198060995382931954713388385792196167031345339256662895770928487"],["1272153559088294570400697849588907104007333296809563908976050374982909159676","21551707380833378648147789454044233569629957206969013387177492933810659288280"],["12762321573258167429099790721524724192799114849103923525065885179149262899862","2957545354385155213343501749756988192090203134579500591592190067859347611227"],["1721752498204828460405070724308205323490417895015822046151227356422928090874","22889020137557713389646512863640680139173771912685608101038580340330694328437"],["16039843410453745153642601025072210121451388329927505428975466448901256463715","2807140278489288079222316027057094691057754954488926158601351617289046198642"],["13087436590971863789670710654955774856853418729434292603941135294514652824346","13813540329855912785495649220792153275647577080034565386624068495149152668618"],["11075965297938361096440689889565437539252280488415916638987204477635009791913","8632287046334009091273063718699837274670858607040604005756889771065037978659"],["16453843634721798636898358887937984650717432868015800357299747553282544083573","18241573525616779253080280194890855797145479523221178662012888436799950077110"],["26311318424904731713816523677532884794486078465478737499967267936687138916538","28035894927741079847293957158132650279918639660295870740537201367397870865517"],["11308079460250322341283270277663890475317893386963699749947204686738640276331","3614876789666435373414359102736378531169452519185869807752510268302907551736"],["9581642798985029676504006051119085685075191533333871482383337123237763153007","24782890753698670999208241181096855428839291372768156244635293214273685587431"],["26460416736068798663416906780097654835102992150171286803198923289400827632754","20758295223923031036369178534375482006215801439656715946109365477891373373103"],["12134261668857743258885738148453049636489010751655168025749312512108864826569","10188414893268766156977930910369489318288069066770037208618437050259224910515"],["4148914430234262924012824103898738802184173647440301095770678516493010650128","22451308475923614269376482716716037697213257356933367024399802950796762978940"],["7508793584040959710651149130101725766987561463943818288091667576175307497822","6675751547141606977275171580205117472334688036791573563798510777567560222070"],["4890187568876890978676132774439620086618287747532597369601904628167775459216","6995975266146988177728829548869080280797856098635875737930737159588296513697"],["9965566651534148441341457797267475323348191898759992742482140781808191462995","22973448831631748720229731257668277937856382060033872090352650654770590121382"],["5606178113434129675578396243970247903422436144030618629083286313737617804249","1441088850936441130981733450437078114686537226249060626505481742544083261024"],["556863698421545648688355326026191621830690912492435061332628132859896412079","26810104649155809175073010701757770613540802475866051567664662713664024848720"],["16591264685516634561229734323157416836109744920305105480494158528415658158508","24504647673487357849232551815457103441343035162610213406693107951362196494186"],["19468024465864505206803001322149901941207858386148195589315019972958156175492","17997573361287935952245101223533420638043289421753251989967099149955589472994"],["13440681994282724872019383453478638311908538685344397312374083357612479110397","3873295718202750770231928856189097583934359872200841110254787330663512977203"],["23628204629820598994831467257499957419692524624836267080717623247248070092522","5427457131974612889068685881325802858727621580377308214180013385763260247808"],["26878184004609870851676158370677878697257355319690725977492550361419479669796","16012592714123807234460889549447561530276598742577034348158391364320366534642"],["7057034881685778021435054301846848884627535808102949509704760140473286772085","2069975604561091718139930537264598419184663322953952768210144320096523942907"],["21317407878456147675360599554212238804469004147129527577148492797051719727312","5938078580667248120081560371649666474560476342663003701375774358142276740495"],["20157277344249324680440558306683237487910665111614418094154380962327163415278","22540045116529961966114030828073294563727859807943621321842369218960289435315"],["3674059073569102693326002318953395258184837911024627488082071870077364622018","27403599018755280053312659406971779173018884767948805894152430699517590918023"],["16540405071754981091233827057997965744766779077512668757860068060452696147057","18700083462573166863031402933306757645002484811810317494894334595462821479987"],["6957727217916105116982785025622434965711598375679254976573369703865013060652","21371520820506191097238790084994077887350536842993623721967809792930554459257"],["975849077487108811096425342247397373682428086752881252782881594698222853227","14421992295853135393177016032888727829982386295101044748608785014402784310146"],["8479022902205270849636512993772926646411485526851490765299405328439243167835","10332848766205448280345497713661031467050873589563342570054413544209066885621"],["10780704682376125926385400085338107867820328743434954307685383086918599507694","2638166143873493678391790590073332333008158419875284857626990797641739059151"],["9961133259735853671999389190437924080960613583771806066885858754481515876755","25797247491061353521668239361176552537937115138056571367272341068488421890585"],["22222763486780381094509841980186687081072606211404016642317926927477126924408","28434739393274633133743647992396841034617300248357546191664460373126360696412"],["11889461051663038494738546403659371285596498542639657909190824852778655245060","22144607714789715018977854726189590641946607125430838900534501457954795600161"],["15416638275359581654482834239241920710764028801616167048045345355023557162815","18749121143327658465294418519103986560237785959364729205915335989206635438938"],["10429254316799048203381438727718118252620266010552844761119219800507401069277","18994745056094976804383828968606287177042944993552169153544278191187516043607"],["28423813026263644251424419004290831447153685858409045949459918247872453800489","16324095038861520091039836279680618770347888734440555929939088855487274045370"],["2889047406684289846421630393169460148418390617957335944371654191673743215754","21899613075635779422884966444729062418417357775010007014819123858318953325563"],["2854308317017147319906057880232275620896721815080086457202904241951109066546","15649266214928095416789503074154929426330785413855033014337480930602612638324"],["9663024578166843196949820939220948709458754701773273309354583311354098672860","11964046553030718314067133956554643252435534738579914687935081619720828514107"],["627536761286278446933400042843231123918156045938055523726078655833655433819","4258291080297894235481039360414087449793369667142794463202229981814402590643"],["1124013432066091728652392428791958066873638708580447071607030289527433988003","1934590276015203619681691516383645546384248505345055034459849633527399370128"],["18170152509790827885329437135807813355795308756716098645645471306315066652205","4809031365634611315928387204714270593103419897216050981162112743646454902485"],["6938332631849625715588096189168316688671851071488475390735643111295411195012","4055688157208207796876352486927624728821607305107536226809041504604345161529"],["5939586436901568637163606021937038617647503551782430008783366384686021502220","21093638457019460061610873929951699945941247258505064070246534491770340040141"],["28359029334535210601269409666678453539909826153988928368112034470639611487748","9283959873516210441324769181055655153944767428273249962882809615977028123051"],["21831719985589620791877191822999712483913443026863119699277468281465269863971","12335455736447717429945583444947413607465007692037545153077801046817154622184"],["2388405050705114763065940529921095223236480408381255483087122522410941575305","6178963710155891820346772684091080367112275704182898383574225182113081279891"],["23564529832962340983556574789527746138429785616560590007658900371526827627725","7038595476222743242063274789209319862292968970043523358923928013176733478006"],["28440821596249434724672345745236571713710379752213462902891287194320217249585","22619234009367118415524551390485139704586884097485539704140432211933419747642"],["15498661173130877475329059437421292651215056666009208839605203352577873034307","8822675970303140043853699723846064966361482403028835775465168547438017973245"],["5212345316527712294709509316722597689540277607992275713185289316987184762540","2625802212936620163127986130478452380302380992430400010390594943813564359247"],["4057271194798470332944063499913567548441360996284248894795706911026661382217","24664577555930646328548170520531517615732981848273234811159580927921677272157"],["10612354463007535060652817543830509917819670405444158746440771840014527843482","7920854393679570708981734598466172922901499733687831519813315250565095304244"],["26528532915749565539549009891149108680979337063126693189159559162958816332767","17339575122703063614850769135976974210764522750229256816488159265280718340517"],["7899881804470778515411580242885821346619438106382862529867504348010658083382","28835994768438620521474904076244418627723985974243080904176848189985756377971"],["18503135362550404448817169691336373069362302093541855546527842568984786607964","2140160100745651254688610270739166186224721357802974351411492250638399253528"],["16075848483046831519627174917255463062437709625767397137535472000523728599841","26104796535211144913660211638028972531310468454150465974672454745962588504407"],["17848498841167951507922470030866300620387346630699023756341732607829266822043","19050859721386350031894180751419248812502473712055418608008960862781883262266"],["3065833407675817606329711996136937261926528071831897144438041685031993625837","19452478550547624423574579520394416933672500085602333048049250098420566711444"],["2294440803632454424368693500407015710204661985330536599547040658544747495233","9437173311599881176498219173282738352901510985898904640873697905319861662828"],["22912993511804740475446803508927824895874286821472534335648468174656065640994","25728032711300156080995618322340305090448453756262737025910618998140158562009"],["4270771062900328538531897555978115611611310215336834309285501616944685559606","9610379727665911355844162312624870828010477356072028885482227350026563970920"],["16284377086273647156702325990243652807654020591283136543361610285039616035477","22200461444177459574071439028276214522636782548856504573304609272478382419104"],["28012213448437345642509343804997525174900361855811847668719896241252567227879","27716983097109950551402879498674356816915034827292288446589999392341861403402"],["17065468474360354412418109834276590153271384382084660326786258673804325173235","8052365881272834042238882119210195602551354237851924963443709664228938704853"],["21627207265849734058521938655943665556265233119016543876296561042919062533596","15189074810490219327522813714701281147718080069997635959969679862186426078709"],["10802672578343895672426288662043647269667983466021670855854109952527238177133","5036453420332534483857622543377198441578745078751025179469765632519823345103"],["23971738793644268871837560293016764982373192252766631274060501228570465474320","16133362809978218709464231744170230955869388643355793736201208062588179619141"],["24285673605476184496139957728971069209640386272178738779486055148453881319447","20985794719957384780854344059216176634072505299991889928263029339410365539198"],["21113340054178698539657088732506189971938208633856191873509464652964294219013","12150531131298483950248577380074901644863421777514216282377170826783346857288"],["7594639385690274596411033500782270960340207234159062489417706260711702945233","20769391208829517259995751457241927316884041015660508834376445872230013842743"],["28290053976871373648068954564517085538911172915595242443946984975021694987372","10748388116093369900653630317709778014128272443221790402087533996965004664091"],["8861902026270278176855589401022918911168564789649038634996131567408885013306","21531496669724341035011360530214104876081592911648188530780011632379837645076"],["18056090852663461018488300098659771508174124648746647108327944315367724509096","21252015173700549771119588313516690174243160877487289870693171196143189609159"],["1824109605550736537894988384466141289850908322359847227021046319872419893145","22825898504359287956866820262816538903040627401366334756549169552019671966777"],["23562271457001521620472551832414157792058018507240511473738620735491322739081","26067754168195126170525129340223834889686598592195166702118108068263687286120"],["12471397327876046992414638137390215269819858845811690052067230591220181331943","13503322801072688750678181156035231808617221201449017111170628689455432842257"],["16917598935044961217560180819151772586826228186286029128691664474528634249143","24970738314620614033606802128305687865883709827287503427727456285860721272180"],["1749937115213900012864477851034786048767209346887191079836887243926422255390","24705640580146525886880951390266437200496987506173089724284777000003159899278"],["28375641711301535811017933825439187136390059286553094658928347384736754520015","18156999616818163054978523611237952867342523246975513498113666868408740434557"],["24302945474516567807907885190423753018193123704665788041389325643847173612852","13677771845010281806171773734264736409214938691628400731777943012617715328652"],["10841529527064548797675139354520508890848447316629052060115822377855800348133","10580080160420063410880094750973015863452873901395407344378541021977953403714"],["1980716484899709971558216561066574238924040850578981345341004967098601533653","5803333482856573220547020408537132388617703125479446214741307211289809193310"],["27506397994368306664582986399670042701106120704344701134542310151865970043389","23226699925029193905365349284113588261028968621501226661273050936187777533668"],["1330221990849070663416340344084128979490145356207308937552433533607187890592","19735794974914134803217959292249392711337202098875324726665730501621184814719"],["502812280061730817504450503809062086081422722951576346288788760858873881569","14074888010723106367865600390341943156395507599638997231182857852939521358068"],["26067597265235914186746774742327473495851611708875697576328977154577407625909","26642542698082326374417082511322756566794288456919656073358443314545959919195"],["551229480618311612095797662648714537439262868207833775705814897961315794574","6328261593128905722931788715889521594810088067989170031681343268442191672427"],["2790097026938394940115557580366304659607637482198056538605318119909395121439","6549236327323635793656403751862493628856714950792249928171566730653220877565"],["16121706843934419983819977213730558921510275963594852767593369868680917573834","21151142140840104965531205477868831682747611700778879314339334410326799192247"],["14679729838482914857904705437436616752469513513521128103207090634852989887191","13902724920295442460435630837542413409282559293552747763585608506386124345876"],["3380926617202002545741802193480421933254916267514529811991915451374133898266","13515964998989246162288688710413739614154743609878294099123972316525318903778"],["3437883021182875304182487748073529621891562028793874609518370334062937826470","15703011788009327327090954750989119619483828583840962478780850194042208745296"],["14508755848102437786045495551422111483513049816216930199416832538291950235017","10290820965879378380434926515453170987126784864330367598807969532689017392276"],["27986793798600261198570310810749940395205581082800354071020736455330775556277","19743133191788727384493518353187338299006174674745387212921421457814962462850"],["28409942312253627033565736236811477108769688330556396062182065497952051587559","18663582837463678863466610945681979026642123687824030569092927374105570018532"],["4426669900208493943287423105119250135487546608211394760603955096027428380012","164515728772607511789708582289937554652847846616219784850073961459776952224"],["9836384251156101274229870009956453521710556884838211147239567003425037714738","7079546574209417020346117993971082607134833962714735533609948724604648213516"],["13269484413592920471891255280689274750037423883043861369734740334993320366170","18662726415555327572184446380838517105842879218212573075137311450790597126302"],["1472093740660064572375681785762385118083101684370532592139297895348285681086","23619898135945751508862635809883108217694494873929821440900777724210121941343"],["22375879841288879010900477182091892592093625215778183232448765624340992938994","18737213216431482324185485490456678313568352514134971829187126220845267566859"],["9681438189676310205868873050230375511928795429166942759018325622810984517429","1454254878052341449506943436432980403255571175500667832669124024538757642897"],["21888860209785750363746433518137141510879304939249543506493428991160964443518","4704547061484796864433935715774588531188216163975929650326006875013041001042"],["13689819224620585175583975231780298720485752851307616967486107192054332049203","24729055176370925487115440909253572010934479278449486254124251659079676619537"],["22796791854931918353536056867899204690528614461235838643221084867911865736898","9324732232625933909243737408076613517038640489280305105891517257173871132625"],["23697062913513945152134707758746141149102461525801852764639627439269286573853","20292831582894844604702620031698062357056127144745934523855645187619454162733"],["16774051039830259372567585583639216105734929049955127530322153458253137880219","19262607835837103535209165604906121636483144383697245286898050374728493751661"],["12370068762887329529814520831525279859983604199254553943809551092339820130326","4417430157648944259862053315753608094572210456289379004577305639851024146122"],["15353111020277334069808692122769994182178475697981759212573530557168025029059","1085590044437153955020632976364331006155849173958129148320060967103952099114"],["4113502886183641413497289361030398557780524893861328795770086127198659012901","19011725979161255034884096318635790722897129484803978246794976399060303889795"],["27629090672933808164862748822244356475011300379091081628814587142985410275552","2124190544099701829777737525739788788542727803581188700379042457937156977458"],["7227090593806542273364187247444845693151745809703404359571036029624391479146","17704231197987582442578125249710301794133686381732376644397243432478201624572"],["2453631447720892779300758962533166989490446666506834934318393056189215152458","1754261676073157064540623141877246879901297566728223606260706495020258415093"],["19841712999317835718904501964173187004417749472140470855306747765005979762801","13513907154151770043264758153350044048775228078700849762613165515520026268820"],["28575014699421315574787085830883874674214794430357015480395041072125914672823","833129678888059570476519374790624907314707527470567483360715925563878418771"],["6598635725738072468232211482215075724274947523147304196968098813120990945458","1315810935747579024050061439549699800305901426679019816125259255401978851904"],["27113718011172795087129594812338273376383844317815315618091204061551391778347","24193589247666873062839188535492509749531722407912305752467427020038697922279"],["15628173101126359865026856053291766572796740769715341714467519753988579434636","13246242941063938227053352859741306558943506007302156338355973764044403634445"],["10181481516183653639924658228386053700321073984666246053855185691317053389564","6454655694952442977204190452272389625136039853047780488480702418573402467126"],["18392923648054001457788312929642669774041154627746475765614424920632786747328","2436863555397733692066611223586321918295189677625785396104919031614575783706"],["6103440017426752415641259809341063932566374962384330426437565944797106747829","28664256583085898264753166300980959264944335567070064488041585433900551775339"],["17893503367951695568616466467666035826027513573456526888718258481479921608570","9295096644813971317713365814072262628600927530483857960279696110996656454468"],["4359582223708240998931481587820279406018037795584025816708205294256427933811","18793427476336679269332920639225529638485463083410202996710504674473552408597"],["17752126357556306801285918491127818262019067429550193989860100221073921434895","1923312181677650808722968906899314498459345206961305552093801937357850220537"],["27019561954377873154206443824142298616338183685147445459288149184322186597950","15454938633916827301071899819136220937839839098002776365222762312666778264526"],["15554535116693396385771263542623388465207079112829236237028903749766687096757","19614724478145141856034083697588984699715614325098804808555860104107070342445"],["24650770428992293360629555355832980004560497295975931069654763358384466201794","17821726537749016868223493492727434800397585447161252488261111286478073292616"],["24000334954388666096740548887514969834175992237084583251973162738597811174503","21509497666375269026824078927855082459329726994818812073702229394161474801333"],["4017477282644522863245725050825869785314531027317460310168809064797946709405","35505317165999409300835545688788814373291392532783322337398262055495346971"],["2445532068783182939108230158466026995287633540514455230626597091531286660541","14932029828942275334958797933277022243829346108026591818794999324058461316500"],["8509072622212411947056714158252801918992041831090492675165278044746209007751","9141965003207774140322635697096839108298308755162713780104497463034921198117"],["24866412741019746299196130049382521462562960310679120131754077460368074169673","18855913822544031820188308904916827901832838872648851015346775425833035824212"],["22495028300429304289450669124026103807949115457959519364102843918139393850818","4085727521306227578345099602249305832436369971289084345941014883302731193191"],["10530190488519729317442419792448204117290588609422829609149246531207154139470","16139043140124481547758364704268752485019169778021621147907415310381272323438"],["16994692164878010504514463434430202241513136527593069686662513593338174050296","1004447176435967004530443620034891885600155333370887199782037143348894636416"],["21059917633090674923272216432125385105313410777859149340322963817759993708250","13356155714393513407037367034798270519876032987915797724777595334455081767516"],["765473944614667580338091737811015816811323078210148763486257916697045139277","4543791210035729676696355882037481335342900292561001048909379704230620840673"],["9476235942436148121665130463160375460330808526545609579523821832016088479664","20221862349616371145256559348814159349911330500614333336652940340255794327135"],["19473871071522816913661420730755590514970311676701130407625384958190701094642","20396166760069445810042737660631761825213793914013206452534257133422003952130"],["9505202167722767976447983832370462286240269695603380277043916678944806157475","7993126580116415660118391727591178335450424989176479064760568191517539698578"],["24586616000215569950325582420555673939500662047652562254196816083057579797926","18229881674175858704731838996607512893820258373237473180869201152367469974846"],["28090747622194607881540684411713851662906751736829480448031598321954725893772","10756831340320766997018018334216476745624747839441841058761062863672835554966"],["13790624306741282653353170816681142275257461824217845547231995000918300515252","26699003480577443685500860812158441780641319803427163658747573218625954468821"],["2851530283429942117890045336508111395294539911079028808996095767392044914181","13051450456521782996120032222386610805646037548909845705218636179182571501481"],["27718695086049710832302612951777682587342743424990321516903680097110785758811","22745045901921164642371710490232252924536338388325087581866931607615222504012"],["14326222756265496419470571079866539202066119563986808133845442711757443510214","3078810418576277870907012205551421163326076513410220624971339310229967820796"],["25822664069706607155206438643661868432091241987472305415258348663901826485106","14178602640462009177497728422509408703605699892808779668024264539213141191397"],["21516418216772729021560190704188733520576774597292646374793301786030262120785","24904086673917476847668199879334668084154027849053408682708364495940601894074"],["12538407745072096351747419434837354279806824137528498829508326117231835323900","24705267558018764013896723281702313171729375861871147671517964709022861916495"],["13147554856906674640882276253744100104289847278797353229593260126244932123568","15354761532538107822930186541801609856117305612026573057631978565057226889270"],["8187726307060186238915088506148857041640334218710676952549661228595513877786","12698529148654452018313058670690216026753133162262741416576973257783934056793"],["13015341813516718315737854121538029702999163439886755353954415749267020127965","13179231804769629951305870144439640932167261915252876030259779719619800123379"],["19376380411085089581773846893383359991195955938029346389495840766247343691802","19282022508432571672374227347461530351473709446342714305868842855243576742666"],["11318334515442527926720606653840898198449798778984217980249742576935675542016","17635330573458730133923628042021506598804011289338723663786168278403340778324"],["19369210496073430066986729376467336586040554684317917651997216966143853640651","24752684446880924206101375519600830477420941063991502023685918267392581862488"],["23641460690793297164198573562730407212225045441694601354903839859106477044958","11995845125858307299396118089035289836677255076337123362286893791569531787888"],["26382076496256286318008281747693719110976329751164580606438986643862288909011","28935794702744261991349007320855276283114143658145586877070030596847621191088"],["20729170665902870170968586491593416235639208915618559869146787765135540012689","18902598473761077683174627219554574614961606012471669561938099880493068983521"],["20058192112492938644525020721880269188287335152002327385722165405609159199395","19502379301406285529743698255024071216176472334485455191267006063010087914715"],["26067871683548223899251407985264445086080482761791859762143093572421518243995","13920531159112211424382713690312056674689037358899594235512647170767622099096"],["14054675992214569369064825397298203061672593965151678305600130651075609602096","24493185440793846741923641384431558385350290739861031458241061695287247678768"],["3689572354885154739319625268787309647682208474550939746579543685733599670182","3388905937302038590368387535244866160872784275988637797091956043848047485262"],["25613147637273277835404225428764117896723942022391566946984627643603433167527","1086434029566002427705246405557196179501411900362302091239790847678498466613"],["4380763125751451493603622207159766350109696085487895825835893889047864339720","16814289427278320681267695581364835449323840998429787127835162040661032148439"],["4522191053770421744216562357356156841014667985504988459783930006466101392157","22280238108618036889950423047526249762096647025861719719291231250866257835396"],["642896508038147987325104700461025378215151900702820251344780188668252440796","27632012104910946664854341968082218218468630414155564484612827381059384012743"],["12387520195862090774919371842758358967762998528468353360889133578037278078433","5593567361453699433387801961933470883454794859279162903566809420949159390511"],["14685938464952833528345374240228047434605133084047233033892957760510995152765","16164948699287976179186984544871261376196160445808912404763228173999710914122"],["7519599958463434642973922179339120850732318789048899389993784701891721642188","26762738377357335821583798983521940202994053926423431768601746229382090556363"],["24583952555668481737233796202326725951599333476777529706111142763769682935892","6580098459312400560344260041693642520084200454781816476243201386614678452271"],["11636930488787250258639810630434639920043917906037288074295885302312031792980","27344397093224285673425316873314441778345252993934186120394761177971105760160"],["9288616392823633994646067346327243930687067149486105901521325150738587158663","20410312027993736339399064455705182326843448409518946872902531078197150930749"],["7660990663017508807988897196312272042142299651795467278748502566294603554669","14968336242279295118796763165180980283612994001287211570779406894953034660961"],["15004690104531229048842021986790085380750169948199049867471681634957494011031","12976823355889929212491911767992390142894070199562786755743114574475790087719"],["13529043735476537980441241354434278031854287579648422751384817548160846367222","28579875834961221700713089403799295853966142102068163786062060600507524057163"],["7491923946833330827550952038000249616132307995181726138972932180300419068101","5137394266537726357669290361586460316569338915834186431701186590964455088337"],["28807952734532249146569409533294711109241516617949740745423703085865994812323","5295932218462766115200229019176325954612536240659373548861917073033212194076"],["28260267912163225195503610647049553987275615314929152196356191812507879959983","20047740705664267298012316325760472712565958908417961527153016562752180495493"],["19457110267785332307070898303473064126321727670189480550353868732819572645541","12040712092708170967333484471393810061450209396476811025484436653835004861659"],["21053175093005321952756873199008759716715711569720923080649658836185752164142","11553561651633042868921486123622367701288045621839263348181739345706156099579"],["12579343271382140048697787260802897960339321248767214998327748259132925220361","20470411341456069736789988753858960643539697081587715453722930337726647281201"],["5208042678188470666076107514508636232349263126444130236852996539393514209965","23936300683490974874442312179542813035939154012758915346855119320737236386490"],["12680962943859219348871947470315119925271430124026295128651567152981075672980","28738877014420309154758518191859049744732236513135206375936427407721936503662"],["28491296675954298212294571739476047397595370673858979619960592028976270234039","15107310898564560094770080265752058574587895198697228800359674943484347269992"],["8746811352602573316283008178482166445511242134869783609788602489591830622315","14430723025477191481313550117600135730309692598657861339581065033195184216125"],["15699498870361155680968689902862424549289974497894288529239635906333170755797","26874870161476317278958721848024151224601906207543183453621026665447925640043"],["4998254369558493751713288117247747145599447928091644883862425250804033281272","2034684327136353816323170934069871297896022725664838124484397456684045592372"],["28124900490289762285671698524004471715653739789708676043205035686437280842455","20351242509161457538742718188344325413696239691880300639557562559930374596869"],["1444673189578526905705068245010277210979175998782281638065342635043483669102","4969907951798738660289347097721794619744639371028084611820398838593570958428"],["1105214949865471408432043785265438255433752258324229536233043620832767960323","15744743818569294091208753090849598077460615841285503619612811593659175883960"],["26017899729008328598064825745452909912609581751869123542180136638839950389161","21042449908420547820264203988165715901023051323252933131936181857973645891012"],["18532880553008695598039649662696452611724984034361539975848617258713018838693","10763824715108037674325762194161671393651622403237882630690040338022734408129"],["9610330230959468684587165245904795598384261396819434553995570327174374851523","6120661806484573643113423407504138304137809369867974955234873786487672301112"],["5665588321200493231610850362373600544205342969648221313997410591758104524340","23619948146551892846704011306004526956651319275779803330937420442753069852784"],["22361627894202406184918238687826053676130648056248653069113212438092709247346","9716336379417211167750171435720557238957187701783333670536688024637580493137"],["25487788307289456947279284106024240412585941286781741037905483192972250032804","13925641475453909539840524169274702671515988765465414093745517452445055951854"],["24323523274064496306984481643305791273264083386525429894217588797525888339520","17849380058505118384096149908986463724208781089353428124081704122971662711546"],["9711803962467846818084907363869712986111707109121465390860112651731374794770","8384638422198632514202017105729730890909306279990934328401863957778179684283"],["22939579221312400783658271775510897880079067047447874428177366910095377828915","8907844909682152981775795929192928561839536217425308948428662705344093719549"],["24296389492485138941320655449606811803160203774076111281908986251937201854234","17419807464447737954359126553930476075100551184670345266629539269149166942044"],["11714301369158695165331860472177871866861192999082335224066096105101867306715","19619975174715678973386305284544988292035262300745973350645926057457496998686"],["25921842847177995430362328170595415032633590116340327559966092672355279964798","20977318312487577505510455547523946511698868307859712771776517069059028033840"],["14921142105956895282950551218311839482320559067245846069569160175884378496788","27486934300183777028870569590037220377687540807317738839901327550094719872248"],["3136172311202913244292127442596201465064329595778541850519933895080298877958","28518917142160039841921262188699291764523180750851283156519430485536844582057"],["10748473211422885267276007022347772366970214144305747922683586823715580364088","7511226055939534827897552031630776396696139197035623122633587550344280223027"],["6672715966666626420659330309906686493024253186151680589406484367715709641768","20902551407384233537909042367986322992971622401171186622868782543062279326961"],["21724167196175898642255861606660453800860268762088167511659659639443632539090","21668305242172616176826000771887717207603075672130777841523630841390790593683"],["12754853616392100300464350273527538799364334616609237441943782315486161169917","20374114779138896743371765498113619959484625331064082475419875301592985763150"],["19102418083014107509366491284359190841063825676377258968463815313600682480332","8401619851206821162246228698239561155721823176823438902588550798566724037186"],["21265393952080074478516369042406109346689870094663017159156536678013711944280","22957262539073499400902608947537234551107177486569901607551155577708531681687"],["21506556085290444195711766089660507057512854565597909860091245202011052509807","10547901280699454879124514376379275537125006578744290109073203784725720343402"],["1415280628306563817567203570171526084363445187716251990468366484761522756296","14096965642635020311236029720684900209852297760470916461005620269709802462567"],["13369974829618565240878727052964000508629827278352353038574098604245380504200","4128715799778715688252636732109424605902455519286339136278796731254782350072"],["1969867833882882492804754812189741934122688180092850247422252830848165115447","13807736463236638311090333341150585627123136826768881598115986001765861074148"],["1273405621328388724536530571642337211300055335904918649671776240560622556193","2077790569880254115002420734922490144219003260958272181410572359757947767466"],["25858001846957495491654736363152683284525720842954885944817705416660510990524","19279016844432742458599837926288539592585968649843538641505908716354298829241"],["17911609370958299681469618488661610494395873554403575666731243693709815283787","16164069224225249863676538981118066420454572063152207034825672112267010829334"],["28302716849676388235847294626476318312752487990409416757688609004791353975260","25931348830610652262428622711294610568553922881289715510446264356404678929410"],["22308143899465460395298168832232913160130406145032884707470191383106258674152","17099917532594792761596258291830124702258592459304476509327987490196818418964"],["8745147168328859561183062043634255597395311092280724484956287165051347240392","6668585412886865013971995547738649885182130364861643693715084782053077425769"],["28804186965722273941920146583400794607597081767972263006006218367953052756011","22335511372638623430954332877809417318539880699187494631679515879127997256558"],["13484608728465011575047662202956665801302533751658136206901055227593260546109","23934763868991860189938860391830014327942830398370084127150052319576210907835"],["22791550894975622609736449927632474554458075803160746605230624580032303380632","2534128985607857059000663721839046602308186392464611194071890872183280186803"],["1174761381570504804619135405026068944115717854557742121021687785727587465451","12933794616408664441464942658040553354050657198643694678572305403872884373843"],["1879565984437927077793999926877794113616697986330657475866807659708860962069","25620175611393520319278099817258655711222697545708176803444061732165662155251"],["11862837328349278637972108580313310616374577252558415096339593874189612245126","18012847930370944362086419107416454038967417221252311585290773300435529959404"],["9983119350301325787378017316359618649686051810266839441365698918945410747657","6361197884890216381577332941811833842641601521655866319321686679577428506438"],["6314555761041048324373884896440850036467710509340889046838419497782706620249","28604168784054545154231246779369016637636621235038197267226311750264536039846"],["3840657874816600880194223448085889933954592253537498102462165779743708894995","1665892781816116786181619528834927174039120989106631309889476598022436030368"],["3026491882103182493089626253606192631834832159729469555256553459059352670559","11354778247839688064192941425346516248789297593632246220909774349560862038868"],["15815358656992444782393727511219248049390030406030521958536383595522608815768","10454023598635488848789506089549170327210639198571479358536212725816922320978"],["14550749740909253742677615029725348584431540891637719768356931620727637192838","21400357683708793345813584663989860905807467444680128682167772023339986211886"],["14912518805304943247700989767078435529491427432254884569407054644043611639048","21702000330336291810402475206874676145505013199367639240950146828687494400894"],["4818248596508379616397891573303043727164310007942191119868310848034082404533","16469702833838923225504528002809941857920422634469263443348153543806318929079"],["12805761498459930535621003764540961318897177471741401283185327992606555559293","7434191122827644389930046316073727847751411094916413944738279342507757591134"],["26387301024811729100496673144319671444867545082236645955904468177370854814803","15391791415222762811730335215065787229045927971354652775763253687820208644828"],["22606201143839640837013324288712051308379783432024405547509860226292368340158","19240593525941684109135609719743891776226125631566563131842620728333868709583"],["20899828668973555516111457870763299081492629690558512888344545012488516535359","18266425798653271730893843232930698492469553273627253368440077327922383736133"],["18696084056443462228137862556431967522450848175406089259893724546706265230957","13642877277500570746101104789846106091142532059048172387473615828460803590544"],["28358608760735982692122041599812593755959532416482547443854568895569977028922","3214404961674970498870664716534793877015960397578488130590132654519320697966"],["8105593948783239907005330469429137637077985099480596351199393586057046649482","10363412799418613003988289825386750763359076161593799574010422518487643767890"],["11656476352166366714040150800388727291667876013874689955690249572263130230332","16187915042487345038494523173073000167444459273183941684753365374954360244427"],["23124746047116649131093557052698810182765436492770136764443783400735837839745","12582750327133726075900027082012272288118814201530329417670687688479504197880"],["8682293677163076669685030004816722378291494482612147079837287799222768068518","17281163237986723451843617291450471308481226251160761845985959103744919593627"],["16915667895572627221064114891095495413434204767644794871653324095759550015510","26145591768017882658832652985168133637638998010741857801566243397152952693248"],["106791912357709942616798094504618212404703477823495485449061898955162154074","22469263080596406442741872609394817770646748381953664699540012268492389995057"],["14521589405328904320812321373094335535282107609800201318123406872856154827800","26397810133465934439293440931539114591225889867827959594280765081273736511126"],["16282835494935104372584615206945897368486010744127284595993345942833368031144","5218775627422281469281481576851793044796123375244793846878775107369582350111"],["10700231524916753391345533366003187481861524013049274863102103213651069070829","27705502655263276375287287783167113103552885382486201515315825352123217731551"],["7660006778920769779403615971522950939798281832941890581402652251844923339231","5959784373677715838846469330035858991872021021170035570548283431780064440174"],["2809905737245280234453369040920660245372277781643858295231370976671859420750","24240800654902743239275869625341205819657925694413142515216662434942331687417"],["8498768471394787164680160007545364853495899724228417597393079386549810556336","3860067357502145013542225696565306164442041334578981226389806744870870310330"],["18795990417577504594880263744734356676785452419505596272813162008640869332993","17547446850681648498636414609535866628854467717806716707788836314308577592700"],["18696815850415309367007834476581565734305002493061016407624181783026205521663","13489197391800684038278683505833598517637423461355823950616644503978592800885"],["27087287716399758266402286998304451569736309063023412747795777423292604662217","17869783856421410734557177548576894028729627227265375136067789507074229081961"],["21820682788056039916068016593283737461564867031170445968319684036180895211563","3155323520110701694611040671107691043934860221478704737158645393655847416742"],["10665022929761140154570461564887139941328880078463272520347432369832944079590","339151037704597699685311619515832317862768775914876919019638764457338482113"],["13366240616213765195666105159783718761552324316305438994436605069741781055346","15508150578167449546155978311451409306457985529678000688144274732815998615784"],["10954396282548778759269655245909157381902119386217836943736895967349165628843","10793195679949694986333161250677277930145007340281369233561690955227286356568"],["22390691225380032813424042511864475069096658531568372769886480958489781286559","3359765617387936011584445143739153853890664754333487106674807436008592039802"],["12815502682419808613494832158399551346572043016031525425951269301646298825658","17272394098632138861899027201100457463569654782350923384889386625789610146037"],["17369520730656779784703755023126680866689021702715643604097186850148952127523","28886559252311944032444596540615566238548971384358419060364025997013211601864"],["712786601503548421379840728557094974552977854018970332620091607468306449800","15791131895479490159398886513493502722080666992837597385734892757927005968675"],["22781704581621302465030626898814011622106676333400037256402792300889233148711","2981784537793010703537746121276532839883522246137405053314980749468514370061"],["5885949765295268121908141490766622926096680893669233565979256952981549605490","19132272004054219806699791331583846903855217923771993765899201683267930451102"],["28312309955050891525013728645919033672025673832901003171983707145639892725953","7317461020176004810131447094256453495644881455434598497903120639335792604052"],["12776176646799605333315604305705273179287441023095367813048420978621213008189","7540180718827618670620986950065966703392931637093256524318860763719169829723"],["25054053769469958797758722679786593688103943515661202667675091252199180360170","15351324868750816881072887288415544276428964179662205978512170121807869907591"],["14083386629932726959799058909104313805149139622099173867338537786642124146379","15416247382781696035106451345768631052313179446652939301162026782660139612356"],["20152476207060747497423286895636433407806783857086871183849325035987017578269","8983928547468367667763480057085471753375395430411252605427160781212241757619"],["14679200201740051614560178526897506462400140875396491195524698403342720844613","11319719765560662573608785660733073518433811917262742791517270293662933265353"],["3288616711832700962166210366526337642142167841054919277519026902161222320950","11369838406228221985259957040133422245329916314486441638766874859224509082297"],["11626523741835392145300089844351449171193556936231453642893008694849467053014","15920128926449854769157351254547014519591223492368225770483336929751892301943"],["22120618314169506565709852397022627832723282909669110905063123583889653382891","17254872156620092703681060389231413031065593020648802372887411003186153696956"],["21452159841077579630995559686496141766917013086270232328513802941725366543275","20704266736900420049077642924772920982744587079068869552324813105655238194611"],["2930064041801971753865546138339024318990791210210143106847952585740137558869","1489059259108719947412519088141152423903906193998635674574546543944217393469"],["23039623820491082271997706605933576587441804031189496362913288993978152645248","13752368651403738592227907082048366406143613637302489492022908788210238808090"],["2911880622177052800088660100587751576850131196361620430749904592870982023908","3368261028282546171698446339436366727416509242255096316771231386079624747277"],["20405819356413626087343980674114502141874022404593910007691973950732161301083","7582154039526720753083842992369029842313784982016873928263882201211822875215"],["20341475296026972404331395689618957830755122605527935629265225911158842039574","1876302204956996879772404961320905309067649831085785229392325200732875813558"],["25409704513596923713050170946052524103653926078114075300616510721274555759017","18539107068727777152880641405623163986762504124022118912160889850808602499181"],["14644757029531603221918838759992453459484600713724427632506873823637620228081","5458902466350964995687515597023179242976203052500565026193206152897118829166"],["15532303477518144462037951453276963378757393795053283153099471036665413422255","63380343755972050459859151063996509622851454847723205626373358605729167605"],["15559762195306242286428771001565992423626031609755144806941561907581823111826","11245663349557393985111931429008937091065752310928726456489342687921138514795"],["28536580995075854619459709169933498213647055827414080683438616114503224270223","3020859695774889418528255051346608358140511079137390008207414879613452553570"],["17509503354364631512464489029271367251017338107654161364926684336849627470866","17912367075721289827596456332385810526292650236018192730319112242721633504583"],["9791931753621164148112406370129001438896766698181909825571409969508582126413","17431854506588744095880912339979041315943508012053819314450195722101488144507"],["2576489454177014094037372477528394420313354897842052215961928497539863403306","6155668770062487338917782858561766824526659145003547622298076999925224322796"],["12502358994654935692937744648750852490056547525909695012838711744570697502200","7214897283529661352739538985704824955079148106260294987650980762652972065601"],["11227533262015017367299785232148947848467219722123085179883991937367457026918","5520289278386891311634492938646716557218987396794912948529254405412529762189"],["5206627080426108313605714002019314540572355240702007914933749435809880909935","19532478488234191958734752732894621403928430550017904588737511004969922883198"],["26244902056226237821909549325210429730424896114514311708608546904804043654478","21802392389604693522973155418539370346261754068111377198302779003716845892696"],["28446698459766273980590419506809564740824720708962185307592559507274105358363","1363357048420372088509324205746097573189526692770246552989110363644182925717"],["12483702237455039437099911262073576914266693340248364825716516801470632211860","8700665352180888674446354719922489184623655768358647379362299566608078927893"],["7099353436994004110886882758482984055356798012513902822326935804736201045652","24460369993596495856184194609426735377668188459852334037376960086945552120372"],["23592279535781316913818925291031077868401589083603911823370369918741648650691","2572625903444407495660728130310689673642682766154857503631325602908569200274"],["2761634577740820414102699586649003966771480868838812246738180103138649395809","26956668641784430753502233994424150936275907503478436018776230772865014989549"],["6527837703062622577435538160913935282603391865614451957859953856725709732116","11081335322713829815891386335952705880809590306742837380028260635371420350433"],["7109175403404371601517589082958532407348598175404970757454278188270034115715","23597721705403899228619539977987200281092351512169202141340034689433617005792"],["25926920311224075699971585627043660756278661554836998325026481620730640055920","17470373352907073744878038404216024891383761463716028610464398056970613798854"],["7805532239526554384375952630719924713909029248713871444125254150520918950577","5668128567524280996222909767850553558605435230916527655227110894983188362309"],["13255035955970413012782078148168030119056997180917467550156238886638726848251","7210523579128155832753579791900784251168124979916185755843455337943035399457"],["17359336780445077392851579797001127194291715227956386059947478273387982240298","5773778266802788924858110431357168671948079026012010698088896508714362442783"],["3381684968186881843133290190082101783063226200932129400104058425312015528876","7725518781954497725217141422708227945805088856597698122722100749746588004645"],["349554506151651103100837523972365414441945683755234233530569611552667942217","25328355314730904732323205751622310548002357229728626292816476164630952705057"],["4049563483957937250828662262039396255591902318317942759801854788836317002376","19310480546472799442974844351870290182929681533911634781893687227109980296790"],["4742865781985021929599422735045657984145278319857537858248858488554946707037","20800938737940129751099015105401805239033894796708129976945744834779167088908"],["17808795103969496253744900960681576891668769032863006682991283575637967023417","27369936901835145693539432596952184043410966682403592603355916162969268241771"],["8480377697872033715961293461187667573558908460659997781671766753084286032264","12150376325794674941781070680823048075984416858852283774063191540737748601273"],["25510881143179155431682711493034730943794482898325157267217830809243311590014","5270114570696304211432354842870658790326527285784776612644131204721958275866"],["15974653672847457950759954530951464686126034285712231568271567318096352452205","21602301576064076993027108754240937424178442100970465429010949650207511690036"],["27864105492212690802450280950434322613573371911131757876166286758281558542293","2964212132574599446363903980968350477306830653913828497003887278815871263581"],["16906997687762914380460669831326723385142720002635652197308870009744061276472","519875553958813302947187578362213882898148682041215816386426871830112026505"],["18129215444116446546320640375167527649445936868414598603798957953495084633989","24552107542396277287958398562860076421886647858733771409106354976009084587731"],["24685397246877249539857310966837918545934454789319655797020058011219344456665","16423908655189102528979858543032989352531600338114097633054925808177667697600"],["17227902138376321782560463741982486804806814508136419508068690105020928975716","18792889750785179792473225159656087818202512637637815945099650090091257744331"],["2297540081805850108085945249938819487090430110893543382364760562906568755335","23323372089685771809148024468177362511647470737030874518134692959089404693687"],["13923802504143193367757222554450224153090219945762823044690098818998558792301","27369857107555644589094888025202544249287740689237385289763995432334271238362"],["5764704432206168677873194907751516273348065176101031768122659858919214409012","12080654843224000811125440929803367881652086558198533837322793835460764367314"],["5317910795755629831599048883715346532036613480778583596390246099780551490349","21308296046091185356660435311677486352363569965042762336435138229573544462404"],["607734988210910157122422973110808059977430447947829232758086824622839870643","23766168927663304326663816410878937217742379680249319080328643355239319630856"],["21131420787191707541703935354002117622816882012381033410886870419224282033745","23848714477792706840412695899227445449531330930690600816687974064112448484638"],["13610651071329955549780081258589087879521298689453370056770127933313333938982","21925222202754269845065519710527270891392972589969296302283417737135561916044"],["5258677639063345513159935791967417121081160606974721884420691991675935077467","16946381777021086085984820273496807040816570935450754473552180498750164881187"],["17271781935469929105989298914464211375177429167518289797059296212873215927441","12439013067078763164791511706603937380135417072871742486537699531856680369014"],["22641821602940418567801745050936978260162766682946556717645334469803362704805","27543094705526008813449679574762291278994291018038890201248441556027503282029"],["3615397874124531198032909703412283419365433855680566871551721759899786515939","757408798540620738331696691571202737511814748004912695543360968608539796598"],["19732209039880304058475246833811998395527776492170300422489401452796079933413","18229817745567008225209980442022305950355197339531720892118527036535676195108"],["11780288051215283299422447738255746010474932226129617717444926478623903466919","5136839252143252969280533897506554320577729485695948436875655330404379604406"],["10635064697282493291711104938933158627793218824561337580590316812551973135454","15453417791874399986194105836863373276499971012608678640494891639165784483447"],["4273270932618433572628276647609141190735868268307776001039711131888336984158","14461032849541574285061298613382172964546819332886099412241990924231049149146"],["24367321645018236167487820312475384293537370189413585516209737720845238015781","27789637130905994086178757484379456554406006929465541548194953174763502094857"],["24738808635048513755963878317618356284982640192598054232301254556412553433019","26913355453088918000934866532919353247900959265893854640953149432504024397544"],["15190601000237445821873336772800753110800627642584894836365093904211884188788","26650796870846325461738305254570154119212788294215687709517787166974402671751"],["2593872752292523961998596426505476777966846665719858714238890311051436827896","20606041026812670596025177621560027932946684855449385202286914394870623029669"],["13602723463714193744825620982445194047669892770615284775653187201177497213535","9973285153528914530254569225260260030123881396453918036273354064906044286958"],["13455704254237778925055645937503347807729893047547857511050338821348399635130","28902405279627737813120393676739212955542946546785284619955768641460448986397"],["16758506494675356981415640842013536480024928080975800581398469170553477877601","18568191482511220278948671872147052811404056000537365449953005680506605489212"],["22699242619691787269809598515342867207804781029871777080637247654788471809573","4343222961195692576287118439563837758084786811908222667547754986494743817754"],["17790740039292297539933276611922659107785162984497686136650747739592187401351","12115939675440115212041988354064068784009186596749192401419268771056070441098"],["5861499413523943213997175060900332545889550359193822944062985654546327526977","16811419566979457204053638417883439383727705767772929928772522035810623164971"],["4381582020292840468148458676269571119587018995178705583290379604664656166884","9573866554703920706659851466059044496600826339458025199502244780224694860651"],["1918313489090696912916885530280182160306751168714913025734375371229195496839","9943815917221245413062476543329620661359850024678781799936965281037614521401"],["8414354604337229265034378727425688974541058841482497174828613648770926896212","101107723274274882398389903206617444094543907456545021824643756634286616670"],["26439925156866524140186791136307200171032626994419684623105318135467212681497","13776927164587590393079721172234192105612411212724568047668323250988018036563"],["422555722044949137033102795376241368848863959339428338135586152051052010171","2415717879295145477164959284852503015481666825732083593264017343727034942843"],["7069998310794579405445866075312528125818471612729981466183320530360452615567","16509629327628734169908369883622653660148257246642389197312391462913112993578"],["22012659690313382717468371733161711642676175480482793723739718041946241704696","8140107103533782303559597905741774437903793598236187139601406018001928444527"],["1601195804562217442352901582287810268454423872485408125637466637563307671136","14208165549253073981797316878858711036892612442102647188058282141813552828136"],["16974513956891278133634259536790740569316086607626384662423391995375026973518","21336408165005719559113908626606106224853084282397408195872097725279041479372"],["7544812835312374083870864944248688329172392884243594449929444984417630257207","11024141990604446099751484494509430048640638587023441050541074357034814521242"],["6646057799743025321676702521451419395735687829219348216132181589408329575062","25199703344997471488207134962741381113537193390950654987354081454899294657019"],["5092143038323476821236531304908532077170308615385834927465905596933267770083","841035381134702246917804236360648362329327774177857931187938019494332346366"],["18111103145677449374085752017268193946974605446419474698148629789423009977840","21974916648812678061584780445166716728582552721019043240445740873431038726649"],["16058255152721708496942313729700429767847551217966754785417493586035662288180","27215462896162848878222409970386437889013522740510979727420135524229579034448"],["20106229124363232595814563088903672182487103004030580962131268624309912313682","26548087905355041638323254443054106153058231449418576835244402922546790463104"],["25434235442611868930070517580953817426148727438090056102987251210869037830274","21789625847130620561766527727069437110413502979163363308196831336500469016864"],["18595515207215324587703599893377338459453727961298065432711289317430451452808","10576624417957643718601027267410960568601111960976587865372333983315361361774"],["17725881682769359067472330339297240742843091865275063824212412401638400176253","1608227497125331121853782115002921653318516937083711709592910187718442191791"],["14891997304780110809958273312229304879394965735025811059442214867464673486065","19336169504218070307048277596698098416020912692548853384435166880290826614758"],["20754925516106416123887026240202038656121533172713189658708209203957661654387","21526239921786216628294863176078654595743425739964712795405863038287165396862"],["17301638122049365302135232456755990711067162038007708289561883339845918158270","12452569623783411475183073663829086586605978698776424126188359374868687515123"],["17799744572506486307140362236307925026637231593449874582633889913008809864776","2230175043987935597321466180855487433917491033658252288460816257400219458766"],["19293267155921030906696562496331276123391231329964372329852495007642019568416","18092317103422425462692663173723321778768607457210508261974228764006229183543"],["17863137744021646231342977710659216244507479731879968258450400010202829896353","4866360078894354051189630267663062859382852644927333708128466888205900035690"],["1369597358402156797628137077199736970056928404664789341572825193757343223816","20233860234801131221314729394691542394909306915142612118394632677377442941908"],["17251846917123841167781630703382010503257035163919515629488666687420798863981","17282564109992087542217123125759727323454134210070472828390485862556167140696"],["13612499313818040127686794009022720619028482541521659568139540206505609127575","27141175646686998158634561399487065734386957768167611380969218954712970793177"],["2109389730027153399167810026781183608090826623250022817917981493067997200157","1579465717511381997033430287834208778548152946688183091560296258430725559858"],["11847628318522967371547486090687547467081470776956042166110757634997917115803","6780732203642524798842308501347491093277472587783330200647565222272822103643"],["9353222061072082744494661901725801647364437091264880195072569848889077923618","19754914797930276755134255780168341256565868285028608605451112276986503772753"],["12248291018733537323740516313158017091788760939276997246132202607956622085921","7557566890988559407300684698014374458096356669747842076897964940139618240232"],["1410880222344931680397852249010925748931217987200000469667823641373521430506","2013452712364116645733183882469763160714141620185993159111505666019664237833"],["20408656668256540031186350434405069634253652291732125804580209656069794368088","19585745313148641507019886040350174832578501208804161898979510358240025299885"],["11396146918633355699378314768725560199217581483550113394665283084883152074790","19992534029091522559461110089580210395672888441735550731575332038688784299847"],["3709384094906043274282354032280460697114480514067490676745472051844629227756","22723942088061945684560531348251162315014158430173197344684470306900496394158"],["13086909330913590380072223632288555451777149814142496922647991724064204901416","10812554359520454651037152287748566858071537868169413631926544697025077173968"],["10508137143329664485975182079714665506898173358510101791724988701068627558214","27084766343294501693326496790994955837909315242513285686673129263495512185728"],["825273870618052312659887455313334695591593130304810193254206913146047072641","19418446722680707315577466629977205418321191151776899866680572408176535422252"],["10785214100504525795974698129460199246180744466062919662397398756233611300813","22402344980235197366428405298374644644691485620936362296158159857700914591879"],["25049675172751976106168622553271949536937358080394942723824443187247569818354","18629367407341281674936591871194904548707488891790272734049869404609843756718"],["14564527968494410365086450807738162186470118059673992286096976319994704530304","11125539255389780968636881725590873251514870732423192011077142085692448515300"],["15651301630852936502976945243872044008724107454342478095637037687607321718249","23971455703209010460786487496096282414875138210123325311336714339547420316244"],["25794386100205260018744056837881570153384287106101172554265858856716559035437","5959786144242265811442744624835177371072008878828306315499181025915469255425"],["22676736359776269002569926003774976846364431621958988507191941995584487003380","18242851323570073493277604092754343798696247534043581109223291256340556553634"],["6569612323735680615476036621115526939356657823405298672180716953389510098408","12408035203699395273751694965072555036875594521900730231275391583928987846772"],["6808360437054051748849579523291008548462576871421328435937708868967385737411","10275504357414274442991953499256013543265962912301163956767817506110905023548"],["7752069159805697181350442896444016016506161811497641789270238699346987994610","11247733099816680913603481340037489632448272244453717263778309021941987951742"],["23680997582409711452663600418521605859618321814797001928615101633033955228560","28604637623033281454551686928200525018626454601799189858749527995978088675610"],["6282308726920689079880797081717599433769728413524795470751645236959062522875","27630707061373225800707346953612640326702013911021167617321886973722499055678"],["6080372212291059467994356954767156099196618673115137072140451166329096537581","7609097825835389901461539677718393384215970326468548080358169929876933085817"],["26381797675637474814271214894791928822495743314438404261773505479691606138141","25390340518988555049087669732237534433987894139328693474087463303225914722428"],["562812179278506134550981036628337439884262250835928675308421656472905727674","3844665987636815941257613744127724732055337737189789115447030901098227453852"],["20648769887808405873619060551569093998849037335248924944893278661684723806473","25674903594211565303315086231968915492885952180550406639246174495485807189432"],["14148746693872781141282856567051530326142555588990816706952482807847018315443","4309185346878785439703753945635379528100233079010156042337940241605788774659"],["14284062059233206681563239873526783608292743840045701489616215114661400493756","23465041974950646459236648381177352307892515428341554173752300971019220513208"],["22561732913474073729352049804724007093191423640707552510304044779616379864665","7429636339584985999362060823251133957669766212359981178643634116193039573945"],["13396290660549992859698358159165921273977884491888314360364785305498050670512","13629975813985652111071628938046776841567206541688231966473580847210588691425"],["17628046258424674174095774792624021961096476151614052599072780479629241898055","18158650960453046223956595311316251769965613480713112123736062894157978613528"],["8233734807844186667927809629518303986066053983615038623428155952414713799478","25177304432918001204634235107662985270628484669030265669901006061617021902"],["9478086738115581739168941950160850350568605628658568104392362874350594014032","24176719660654528127672405823126336192331736789497801775024117816807263595263"],["21527489148068090620768024037537637856320271020207950712567444658032761396377","11432133986376401878816753234197550780574134210925227005012052423001205020281"],["5973415043643272043881090048439863008478056133289630174873108441743483988575","19506105330621856265487256496430184791833142142284118068417246934968333055748"],["26437228033759913872153212083261323127059247170561475784073400353677718460289","1148001338359718186894438924322085439171952201263591633165988814420882334391"],["25454110207448776720433833086797712232095881175142651244537238982982520497841","9038998991185309903944707088995026575069392029906214906461190470345857477499"],["6244148784441702312193269649352459872476487641140390205901063921070991573953","15405232934832278974453242788452014835226843322785703162842889158573573163033"],["21404419333190348000809279415452057638340082811330937596358050728091695045221","3933850253921383852720178983330823625838912420805090616961563251339373449301"],["23058535123868528677967946255634509764047003492572904229254332315329639636170","16543708424518424803146752209296197961568495984779159817502385344782367293641"],["26792456785343347985974932091696983639023882421289793774694432437092370859903","18727542181433894746341790425882602937080259988322291070427901322859890611462"],["22068506178312412132993317165210415043576559954901042220741493791387674891749","19885841668347326768548890353069485805105267335656046069806090194354475241016"],["23905540165189556484665753518947380430300603447963882093867249623345019672605","340247745885397865257209317070718004034850710080843826820839847416822213321"],["10566950395614381892996800299135501875258007354868170986905995313093096035228","23625018123350410919086374130091524621370876124344459106251691819442988244129"],["24967672182036293005329133080215956453850555813426266355459497981530325750300","5811876092072640809693057078137731075114448872821357924399943193346745830739"],["10466383217051164460092230779973032153537798790871855805753115110661526180348","25837652007894566063645373946983889576657458182109728958194304166967978169806"],["28927799486246154975766091070011798957243002901167490954220192307044879184725","14924966591997596483599165167928852977248802680580976735804179148784659326825"],["28616548388122556789636022262050904057849605512714220764042732747271550526494","1972712235653599731630903721043801154022645292149721795784810281408354096520"],["9381146577725688450488851273361223245203363105668742538072004170577809427836","17564563951269292745863143956822583006470380925958913557271057160826760205099"],["20479166239847235505043870276504264416869187919477281582293458894214273448314","20567099569222142719109356813613129945326964547388960219682724166083902174576"],["11744781529464686446397105925941789662174661905053310397658377784816873063203","7488848945574273487055756184334369940546769948204321942799704033444293139718"],["23299073656480090653909714583554807725605650800797337335588178751489701413998","20979078387920823723610801918492851517886618694915786289947577314446731041464"],["21912584252282138862975335269629408697584586930100887429136419656765170671055","28093235175246803993914226206563519743232441572366464155023598153016933372756"],["2536653418124722885983409403013658225431747430462082852812769665479863401921","15946546295978745312777611396033906843114373020208299481866412463910919196302"],["23489342555875139361791341592474649505512129761379437789487037935958171898161","10341531376879439644744270045104575825648712880313424694599166566835009608758"],["11859524301463045906238402473970582660692286658148995739014186688080583431813","25386358852602452073556641543635966462718892896000308430318332720461701911720"],["6026140898402395330818110447983516914991530078976371307875217028536599033861","23709037796880850193646414100600481188890382401184347287179145649502379376962"],["19050213672075605697472132470798190531688393289538807435885263893396589283328","13318448468117124919364699232910209318957546724699327546052631877011978749970"],["7312272185345106043614693385838861923796361319921311018863020713535216010010","844802172895902166346560701820534218924057389912615007352576727270652320860"],["923669072151812465918194920603531688951068702715637839700505097527973354520","14652789746643981100458801517650617499701048650417051414376190437443754657394"],["12510462493755464625899662819400080535878271453588344403640895254970241308345","14877918700469661745363422889318981571079627655181299756884640261046958437476"],["27704578301968740326388064944427903684684696602227043822892808698338212872116","13105390431790017492491884131154997136750622809915165220535164756887089777534"],["26592484178316419252745442558607721520486753465416000792106366077619696145498","19440087412109518484928082451490863600550676895332084279600949609434019834474"],["28862233272666091202623542008445218944161795947485546369535241026036220607275","4956130699932536205048028756553399541666517358324894347212454763234989407232"],["6422681768370329608083848730261129081626188886712671619314160145721408062316","310182886859261031952234821308537345277102288726634938707497445264673034142"],["27738819100737361783539703720478325012041288654217898799232275142662332625455","21158572757865653985592210068475820710929729951102908307244050639578690879895"],["10389322715868373906444323383233681363600719725503590382353690851715940991053","26292732356445025632853302345199163635797027846689146667324248584328630556567"],["16627004135220576022492728637929215065987156114502216948446264462278335673657","7234958273321777192717821003187437914691206587361734794843399790305055904745"],["12323914798871906814032709511536348826938120955402857875920091167355438499248","5884415895542570992168734454790389553924683648311036929231411350517320328314"],["15829925030628886692765264706826330828206158472034207158034869176333985349467","23640544146718359073297684100417931664388144673055028897767179036275438629712"],["10814448474761930655040352420684897488949050687108750204966008586920949246524","11324309059656015335210964630591940973022392521862344183596222105241087321892"],["18586377236103818407698176196715518520341918493945906025942315489275396220927","1511620986001392102330566442126626504705036846744018800473183764533435197580"],["6646433917306097893658240044432557230627127760754634277431841078023145693273","15151381222139008851828274056995495738529902243789768187760066654931928783495"],["20727819000925418551837832486943807780292979716216150335173921759847990899543","5549347491019934193929723561983689657709753119734697900509970776583775748680"],["21896360663233379660142842174953860238267645810133486784045473120350611639679","19591756882411722295442510092105984624642215335919535908113451935291309482280"],["16824892705074899712815065551440304366158987304700650739894883419227661512459","11612737775904379615152621820658949038860163922886741112674824731184048692174"],["10151250240674023044547805833140401490324400556715023755121170006139219396208","3798403367255068187255838188033011175614750004885919213407244903413381728843"],["7092452575773275505323141872965871969881492855395172565570841629976586111155","8179755585775527276273596381622284519446560967946906999659381275357895826083"],["19931490381294403498839230937872401493915162365315840207764046161438454134545","25224467591688045935390452011593990425480655730324826762344103210430411153900"],["19039942737002152159551600481941076175966867279824079429912341151198338456743","12117446296969448786691142783742219415762581922517467041021126926587866912377"],["9682129078106719197700844301728193008079290887099948051387358000866362667355","26062828295502573602283770287114977194169420715379913905979692504957254823416"],["8017847801100866560686264442971939546762668035382032351775031108160429126855","14725954108845140376400921514203554533762445980787563237196981515745875536312"],["14921606602464956440521520834200268370001251147504056397140957914880321264983","21198310479901331341063352240163867948220933655808128732351584966320149753879"],["7571096797805541106048750260077132699780921007875284259039824074221820178513","8866912130302623743336769682922128733350293500248645615321375467718674266083"],["13610297527417011564730126270448439778770559052133663820909070616713442995271","12429085476559935723859954315560472996602908126596208389422197210621974294499"],["27071002904712106103396336697860067344895662264390607866637070068488416489700","18303369026237279384488712295570294810989673506857126376333962985329816738304"],["7638923127006026449121930863178548407532370180355388472600617526983968046588","10476908138882217029780854912905221091393920416327268712220867539652025381416"],["12047072943704005371626837423503680632865384085854430375482310733932869337295","27825194584130576765479520256017156065827230568279094516288011169091094053612"],["28697291485365537787311827411369337070437808030641004181967591312549152107953","9652391145241125323676662823763788182959254143181398604701732732859824813956"],["20795332120901814309099948501245290830699386757342878844105626498008200428242","1067815461851024374193151240433307164553061865729531266818875354853618719112"],["21895320973991508272955891772358517896874789675680169317386441499396757441015","9557021840328754999160119049162734847234763740637772409190721486014535318551"],["1380300138712140438247587176595188523971020382678202863756163858460492174876","27110165931583063520029588324554713182741802498225357170840156731464978949136"],["13010124743072555558541113919982713562837211714759900267482503802653016217876","7952380241691106197822954988061148947356662467728405555331891230912526088139"],["23807865535951878657671567034023246144545754984131496246708974919561522483846","11277908804204353368631526450878245031787121018855379540678202872145595764565"],["23864676437246149481095093643230036637896994766353069714345942310078109504276","5710569664024983385721796097268234574101415067622637988884225299346087395355"],["15794567928991287940702425785407313969771824935205218892672023736057689754933","15604085084030893058687243975434955427432801855485782653289588686409790252130"],["12670604437647695170134711657003836233499268756222900113593570702410415673817","6504576305189319942915179943365278689463249989472384265961366268567250587149"],["14614028709272334930598945782106206180487203199145293540878407107137472126369","20336927421293333198025346816027980688250900364609214835287197457563757429576"],["14631276082830868215781563297926775457765012918439210906006512559572359564627","16944211700464546509753012703525280400648266718522417909663868697689009049187"],["293246729322232220236638905673628148148495387400447608797633192499109047828","4692346243390295145975470763179029232553130178008389145053881960494613628171"],["9566092323723449566459671801177476777406364096799666313086739740263024221587","24519075787653142319330438148873133702737497621027774358247450589430793140740"],["14404594040636743618384577839166048432667320960304562582056660098877981489493","26405292663907588298594714127821709373677138374162568783288644719007482889615"],["6443593337911241135580486418286318850662166083396886980226419037086033217243","5133874467027337542261613557977294651655899366554240090392321008423776857840"],["13375785016753316205436518398497460714604546399934766031183803994280568621908","21843961345896349509353194380958866466026650239806743480734533731568524042934"],["9531972527730203476440963086387399277925685041785450444543353613925397971636","19985825542841836442756048272332051343462676958437756083530119345882030945573"],["28310732198267284870224733042685004951564088391751553043081889182624723506324","9241456132356108178269199920375141491082890232088791475187161061169408577739"],["1049534763179508001495783252872965608605211666451632658753356132408336829744","9859068227632123003578810049727347522690197077023542241203145783853466060526"],["5100937488711356713199041547191562680314409344274930798198016374663266717743","14510656233817116994348756281617709329437842882844284601726403851506436829948"],["26712025828940688640706755539682496554595447149083353834489334287558983245721","10603551246311025035758875968528156067723021579835801435003620792078426949005"],["28044141269445215325877492301030127417042892891856778235832584636463572025781","16344629711417402096551065385979559734281860048850629498087055033872358901889"],["26388024358082558409916262112744753268477056744614784166662365791855125207094","19068111907653464699251413602198980197570920399246964588295239948455262067448"],["17495058781505239553195529981946867438131054700393653140247443094417929600770","8238169889204654545955036538750986432502819938924311832886330434586496130960"],["19251314139261471504381507860706800487536892924167174059436566384019760693905","5733678496240200806792127211046607941336837302868232328471293517415074507543"],["23717905107777508654765674247235079119876211398510281287131914220346960344738","16959385601699516780312452263587590714270675808479808409490154261306220785908"],["27709015222477016304179514883557392668182203850441201106631252763483903597166","24351992495318200435646529297805792892782425590064765589263899645926803694041"],["18863898903451426381863465281049239093487369888644958843289868186283607793274","15796323966317889175054827400242485244696655896855556494015327338305483226703"],["8744688128922691349609653286456522170491869850738735877973838491625282178290","7577932912937503129545736688379242593347912032225276422597310510745191349082"],["26749395322885660104183446682841673734698323094167562888675793460993787020058","23848304043898689413765985424679198124994562191074273874311050430569325119299"],["9421190288443822995423988944669108537667097164661333247679219598302740513962","5134840438321878833690890888143056124704411833245127911401342876840794575841"],["10545129498213298018142449419204386143945329232752751517414278581891517134844","25204708200855680110765262817882122264954366917126455660866633721663553841398"],["27305795704396849811750139929311557215059935507573048004908883730736390240236","12342635200095094639203410884137959734292906657955615103055258403922846408436"],["7872589134668486134731782901119642142674394665229481156278719479520121362816","7029794112225464984881628940787805919021992305723442141997297816299746679500"],["11069407955405945054223634449108978314770000685422409381382494777931443937289","10609780212894108166052894628578346708198108851916139626546395520230359029346"],["14198663654375916692920812684455368845620557552753402264653591431910506067822","3329572265685987695897085052081091512442218845514463797234791841524947564514"],["27818888032214063774383158869816672166026907710976875021280571268010427053761","13080428363769570349718306548834953266706587662663069790889331869011375928644"],["5393770442783123052355547685107705010263687311581165996578776855048122690171","8086082757066495943977531009578861128367886482579864696426055199601017400024"],["6571067167299731261123107686438933076704550617834732014866987158980195736761","19172594468062031730194283320207686321723925106490832042939888658682237180390"],["3884024883582837791481340942587119755150304912426779295904517745030291968126","5662698997214268192900989682583377530990020741226426302752081225671221988272"],["26856085451713019290581352742058915156162524495924744541542751746455251279127","20911358193649866837735368075765952213760796181479491912319300038353765643030"],["19978019677965868434637564737896073257154398199539012407040687004207785346980","14886137057675068868580854047273787106752682828106772910295546830130093609452"],["8199596658849705629872380704526611115600393892972482643159017233019349164308","22787273515632097557246370903848875066377688788130075392069358031095416348532"],["17187558611816515631534679781711300581346222446744714482133919136003256833328","4606678908825810279872052609877533902135788151672777135044919360259418471348"],["8146551733204215863921591204329374344694568636729652960712924222957118832355","14005929635604958917257324059262616440407712259762325485103698116791145781567"],["13419188191124984528267934785866441905841213928148767835776547096608784869327","5019021391589792233007694955249615446748866605638922230183726349609978501412"],["12252055758235481318414481164929442360547375481016795091174424007477408193157","8358534245491954301756339631295592586975836233075952677790571930072188982346"],["17630934243569837630308801698485349922236587403644163354876959011086335006320","5668026705122133988225020930513962228097361557365708905229245815355043932932"],["3787566198051546769138579257472700669565647667837764661691398501867640066863","27349936548226227770706147511641775324442047927532726888911452763621559759510"],["27472930893592356925796430690745700878045316734873536288066139280806483191761","15631798730785336276508299172084528322148407527366731416366931570026154494775"],["14692881906496653268587600153255690299898776629054732892898989570401704765568","1799224076098115367829008795881125936748998169435481183234104516227079221779"],["19819720815356002758865521073173398125375553022686758684844656909169933377657","12554469783898111862328656565723154136434212727395339993600098847973689783399"],["1931460094320468089128008410675061553832361783520152284631491991627847587341","2615474197075983260703020418089845609800189218777410551270467027374652254546"],["27929623056236159553739394352125329153004628667035105770693425176173257336331","22394488354017176729072253221487368436598983574911901439940680061198827591911"],["17401848087086249909027251119642411121935284575782933273865245956152521474732","10772260080070911049312358020054120570985096321659056281934365369280266860687"],["581963575218622033569005730563533453360559908367167821479706901842220920526","11801862706853355003788427532220998506933652636596578295383060795279938444705"],["12665700223859375338287246294180782590801756886123842224112964188088453594961","3465659782218571917356569277994244551186792025209109166822562647834790564209"],["22017379491528312628219103289189486907302585943604915051449850297102386871238","16982311196399719303696387942974406397213896422629918415160725805881819306871"],["19741423408729879568319807812750906726331397811125046226770875017124510026786","28253510445104197196969131115503876857601560557355747537385426985521776636575"],["13426167939537371237550893445139389887264330194661046894616713537707863057603","3757094167566555480483053639575654501388764021399102860747352749953214084766"],["3448810097271272053555877598053997433607932533482088628948556084018975280497","6662950098815176280995856766476275852887680165824544634447772005089610295813"],["13266577517635361520709582287086123746861615837992729621213119564833926519115","11726740401046953191005577309878626298972431544954265116856217969789076776566"],["12135101534223569380978182082350219349170313950355523235152663403445178325625","21014956136626655240746440369040264444777066720652810128109248166617385831698"],["26852474525983125191398844727249203902085168576560898584820844224723947867477","28365301870744953145941133380360892464245063200422180146810192850298342497161"],["9549776876597817293660509224691913288848903657794706863931518592463881413762","21079048439568274850462680970637639376795455915207938910764148946225272728694"],["8873951622506092450797282699982811739570396430431509895531092452093062738646","634352106688549839808936535986911573362437947946104982632246378587182866058"],["20954379332605617922479505037752751425709615290366697129768919713564231153239","27582438106214137703104309759057958894464432671691614903844453156847894663832"],["25650973978430645508901168464499156611390879915347391160564932424258943366937","21393181274612203405194053603206111559692663295153424055210614741750651546195"],["25265656552689422480333784234034821457550452849504647485264504797921986974602","28668068725855381083319181036802509032354156316349187923920908685831792549117"],["4105348320289589654586854844908270257065396919595603732948826617544838974153","28401409300566748043100685319741163174509647652423927349934320516502897454338"],["22149988566620061851457475136823110362566057446535539935767485920983900509340","808799254831572886031575827798419475649243359987321072681593368118126970712"],["3572958996581829316363894418048463528014515448500327273092448703734279726349","28159760833801516521466050734528570281001656868190030408201358108647739908064"],["20327522284062063456666592122067345282969385283691857576795611633797778431915","788491962417895281062245638446760898955094699751410233657961466248650408113"],["7345013745485500802632456436403989989299914646477023075044000865612225959878","27258891113653907149776661612910205195629534942326865493199288340625703730893"],["3231925590951794562169879892740176491652689866177848142897569947457457921773","10766314789088898945728157938522792488009813106348847641425249328431515388817"],["18648868860081328463378164908002023367327958860998426152672384642124463432069","22148441756773010162106623832882742030747208500394542134688122648931458468167"],["23182573578625888236516361526964560811956966604381035028800920628462077293010","15522787470514249191607226697032721742223864867747035022431004105995377434256"],["22451266784805648906832534288614287665784740753801491424057175312755365637429","28068953611224337930368033768191782318501925157314479940575861287620072500915"],["21217945516032466840005964884179723244311603295854513119836284821163746596457","12662884032495001728764739203745414671875279891176579868780782780177235810643"],["8121616050219610588836615379220041145281589957957469672087264488820005198333","19167335046260470181658087502760985154728018889522356465284153262894560137344"],["1510035577227290572686084194183042662905929369262220852278534794605326461862","2879324423814620618424933926534521449049385946672920532102062001632569261396"],["23688016079324288878390240122359664390108210724478253755907509525815084113037","7917481824274766424441794734459040470225617784359249258027587847460411953602"],["6417073763052381108638748802123808214885578227905005160689386773111627772964","27453126237650234373905629601479131519329272855385545393152679737456372915733"],["3934657814417333445261591630856415664133072090329265144668111623523474959192","3521617392415050133523101532437677508913699329100569837443979445590051672124"],["6647820183475074810173658086534375615105124988503689296842199955434752865284","12245254789828603399338032038278796698617744694550908780474640034463909275796"],["21831615688772445010836604023832847316280833156050078253555214885536516384760","11165429457362780223513346930761005521878224486383875203945932805534199578287"],["8581890437121489043524984871840635269426085478630178553872521713964404835150","8059838753105302177692459658152673447324270379094526054707076481903412117913"],["4338033017665506511836875593354109373690049086181144890404938397748562003691","10837731196780834003832786740808557509023574455147247728232757351028970525531"],["20932078250275264054294019880886497386309742882096572139974763788854810185767","22347385060236030196683494249958632730144272855592287383397112254260317162681"],["10234207167249809363772802949740998178476575093231156753935328095200489192717","5599982292178312047381289108072872490716284312874112534476187992103489219370"],["24160853029412689967008422361269983500142974845588472351147411556333881824536","12613301872553471241294753969587310264045550427614139784268806743491452016318"],["14533965147971293086814298578559225973669540095535460379096806624581373263486","23691418579572210427929238357575410948574903517143210679698247203888276617950"],["22910224064882636501770564411507096450998590401455582592274801965019494809179","10716445582958645717177423454091320582517360153386289744584545908217327789522"],["2262206920763510820878313285337858351803976052956478479224498592513497542045","3037708532574824327145404576697497587649121983479221249472585631781835845064"],["13434063819773254260245712685428110784532849607128922542237427960137531104900","1739254661599911378794388780057852663129064542115927384834361414412490750248"],["27740594586390563839649878724895292729417260867352792666986819626132607028931","13953784234864973722086284911947031955791730545043784741128091075716924418113"],["5959441136142790243510438888470242230341746560213848622437333380077404885274","25189607648444295855722309270653909286057735637527443526853562521247147513809"],["3813675506318642762794442347647436545265577422275551566497328614376580309877","27270805913070294599173564088560165281524879854308739972557581069674050177737"],["14390831083587956871427297812147378516999868686962646347454836195333391121431","21178354853489519257115919910659575074501323124364724992574960481057676445752"],["108611688135710339534293297348946864645713614519559587653198971034565885927","21626985939024239881936823414580931186262418825850790787671278516343538493173"],["20692523656595326225336444171323114948366869340843455376053700585397234016594","1771053631465184261027074045528356071986150202030886139430217685560766793715"],["16580172295305830852902990578870945187199882523694637548885534844232682245108","11442511281782897458312028736968117594127025616647975792233895684029846045823"],["8124509832029781976057397871986742249123224288986013809138528368480432587570","23762641166086714869251904361171175728709493373479036501345567435588477678997"],["6886588359808486425092655489299575823712285781663064377968751819916918354856","11646683302096790597968842854068945738174923159241610837705624097329257007469"],["24288400776408850272535743598212477924858068416883063427241212809309253013093","14445371712310291032923861187062893862861480321712618641238891265969534425329"],["13235633565436844073871334761943004550016741019742023520896007156416871536556","24489547762493238207492491201366210621812018754841639612694820120614790851462"],["24185497312648657538116622024511757755495768182741973489169525743568034968166","15091944937007173049035708138776113621542642251452606997864051223478320264790"],["4005475625705344747536380575354401750179662450329457423961088559855183085186","19871825029301789516627480691054231583364699710806439464439460259408373860736"],["24674963314504709265896268635937441413251761117531550964264096175529069047943","27457869530099926547872702781938687597242127732232998603515594746698991989364"],["15702520632683953342191681347551930099089039725728633178873125244725711279145","17146849321791330635863378929569757814099421570262137176532952436429200254738"],["2905608519915069493860109511121180028623355668965658141329619309881170237690","10861052257857524379653070944933158914124748140145608122208730834038801066973"],["28019132722430313140723061162051233367934479360493781652669612768008025558481","21598773709988088947496574692098810968062150775680800588133838128940062268882"],["2479266627031154892548274707845608883691813407787468387427281538194481904582","10332405291964481459677318575093638576039406224164096959558329188786307885466"],["12573642498899778071030007657605191293583726790919427175477384317510680922080","4300788610074908388314743564977813318905957755155472833397784068384881018458"],["3386189877502087136979026364762404413791058531228497543750084311046866186841","7199636820311755146163605412544486639570595210277127616910335509706712251040"],["7043464013855009007560315407982162015527471009286381046249469633700486012235","8880184546503393230211336923360820154898779703457595881194501040736764167927"],["5878786008984164357050922708074465449709956467243877535763784254787111607329","10970996956192858903487597759651240413417441745329492683533452974294978957859"],["15723929648910282387941410111757355995546552357909493373904982321384712746431","3010942583879367602743405478108473400257432065899086046652814904499862788868"],["2707762158856812736341895579615969671894374164529236746444867108231586484356","27430009341414483387359297795740167156552699930518425425646816447572744772892"],["19921685572429832624942756877575142559767193859140326511103300501613807575542","16869855069912813684020480730821988840042569691340733407923775133674853371677"],["23408321917136710787429703573379109991378869773647817561936382900945697446872","25347438932017502560739581894999262086567247292897977845974048618681644956051"],["15986543559427934120235693604542299390929021498635289201048619573200361822408","21179068099705807634900416037647041900342615693219868258761066054859208326565"],["9845731887409335805091787890330140705353355282811315370836165282981296995307","16768219535634659728524977681196231881988115573802662799273254010304858398443"],["5001347715894157254900730512361077930141661451396795899546769335571435485300","14725254315226100025873768121639094449870798626947713575558337597045486707247"],["28726410559303303979845477832919547101101767729280919181952624638259117284343","14964663648331323465381877539422267312167194237567389760621251926307742055640"],["3897675768432211557955474136920944609830758573698537037020070908681167682036","20538578462786204376114730718573887689159229049312790265523552269590958617083"],["865161912116433833755619086168029044233245863774023078115185869555269413571","25339772097922441754605499209599642554988373004417357160572112383198879989676"],["24742442293632450083270252290444422223853589225673317946120716976880281819522","3355259896281208190456053153125437873808646313072667402744006168115354981586"],["18000983829019481398398057763507993011811172515865129991766453035179326234111","3899099292585895071579480749439816861168105022326513247720141525387309603541"],["23183545005186282461317197271461381281487815129531967205795253575700581697206","2946368198287369373325416505594111267765539571682707043401269983079088296735"],["27491176310402612028386475032629830864383142293470005270251102579576054371947","16130081421959497459917826673955719710327536162943612962106362606234448272079"],["11923461801006299472924221166826381494784235319633689046344924226963762128896","21665980678041988262071962042974569354557049141917680924766611475095313673261"],["113230160342128106743532774384953605820827662109327130471302047398155673203","13830197778157911975521005217567976795122367291692116822353945735340221450207"],["22076461432484868689989093430916366949210111162471901923918129305852929870768","24992850759659415319784995105785560548997103145873496350489642588439712361263"],["1829900861029455178592880718674086216208232015968398292729399024422428300407","5918235026987217014901542505856625098519004968911419706547749971002810627764"],["7119266175308621560238501337775221998121062930446127233644894468090794327820","11977261815079921606382894547038838898595122935582354761251994863314372252599"],["11342342628824347402573871474130053935124155294786117416067405530260899863576","26263738695923801812272670082127256585385186696288018506218124327842814866353"],["18557212316655409240142155465488428395177484965966296424939182468100752515391","5736864947187953978057855957768001690132381570735407334031781516156557135992"],["10129253943139732555975741360480609406994933955477498489133580693708150349383","27323460374302822925615597567065663097060768281292698709194596116930180934434"],["24891026032358832719003904630161639629566577391185533410073512147833158107781","10915085835636965067104022072871738266725820522614429894367779052242268439128"],["4600508854616819709974849904661437759106712413314098984955862764393481854377","17319185330998058758143515783817749884669353351574220574797419032956709974271"],["15011537656856006713143442876270094554475227860312587125388925184346884302123","16382398629245104053088071512559570607885205256383617004454744643152310288418"],["23689491134121866134870518855919489691501415849618219031267416233381312647462","13341453907546927779396769678952398227263861910833872828917117955542789683230"],["19554230419795839308891833030129015595583227705638705229762855226188407011784","20165063758785858120812878101912658558626244337026269632742083108222507737334"],["4455130723014627858235800621652752065529740449280093637916422523002286868880","17011597415270744389264685612835794112369809072162838577683700185362373950116"],["12961849726827446110276197486774978454071729616072394909525450352809076045813","4038035218024894989983026768796791530113868219967215822044178234703956236817"],["25862775000330965373944861520421352005388027168927945304005640509986387543489","14822120388373036598422677186103739461488321075240040295492751453905577641669"],["9677750751179217326887487789368197625780652776367418267362782048711555058195","27849471129029134151554513658267289682107547709296008308704491734462897268985"],["15740213290492991552815790152168569341670042433991784617714831669914723800917","5597461965554835846649063390927384713766243149109278246845898801153039371861"],["21812729568739261026764271754568815430581628612975506398318546967459417328556","18089836521367488602013941096540019809995031580155905066729157068926498731795"],["15358505653393300722089630136484336473735107515356061315767258586883321742886","11263812787506473754739711086841270965068519017489358073826711591048186886919"],["21323477877335401385085453300365823013853672999145022068335904841580859592700","18613355799454369496332737421793979124273280148150489324377017060054019922319"],["12111959977164319387390075148118893269283949452261923248439619003928893472624","2071559831649561377973726063094271462980764150923969647934700491397749384157"],["10691084560398882391844111957784125172839674868636532456113508834044341588024","7752399058701823324729468636144126844392242062601927344342920478409803929487"],["408762938908524358909784022932322251798091837623402379770237942634631585515","9426396808446521053921970328230642373410220889282320340131163051328739453129"],["4967520853895429771358315190834553208249355758227432681274509492204073450320","2325655900558204031377773572458227505743467916227962889334081197269888645825"],["23957265999967538336269523241693269577604836935010599503861539654138081718083","17121238779817934747423979353530330346054811563914088149193284671761386085698"],["12932287548122522935830082342397472744688715902776236000330214046934497421013","21199408911412988727872119104616873302700631223999623027846248626112386968693"],["22987633961268501962681027310929553785882565391842269645716296893718055270071","15598964361023835687338069316027078072240538955870116863412864733619116845494"],["6049490526844927060917147887290640290850659366758746938501122607885933564906","18545094506335526600358365170351356299524865293397407795116561602967155494509"],["26057082071898782971220141362629770133541196965061057202700227279796108658863","2908019123153317195070037350478022497550789452262098742928078043097268988734"],["2306960696923334317155160193664056845706930194012706812017652018851259818039","16041046548390247008077338554068714612043043641180206689491997865072875972178"],["22474526564272190313354424278374376566658963053799173394271591479408481553609","24127568627660509828240214887730380765866564897425684240055834078778718312303"],["9537193487958872142619161341375811260523159399009860547386246204015202657361","6086626077997883559238133567758916334282861801522576893055484518682747148348"],["7278722242170764923090639163311454855962857983931528200557264100031814741999","3963755390339626673660319916564233399539559367025001776431590893881358388057"],["2644843546684174060639705458778297190584733350902350265502763047351883518930","3455203562970131045348039707468912598776504069745651980142880038821570870046"],["9369731684692254690808134260111326214943100513039461077759800975540925220535","27565617276103383606792151787538946175121384548139495890939688518779189196539"],["27983919119654298477137103907590740939234788531363487208650606508842423687555","26792895028471618062375256424920292019713876261030118140325975898262890176213"],["14932583720831566051434325753529913500910547345467404297090956698577590779012","23126612860058484067337309024332345695994218913250308321815171712043827876648"],["1703153488139260200332745038743965100271534242087091324880096932185569732911","4096465312234643166547507075252320149464833749054704617768331097160966066115"],["28568444943165246761185541728132909100695872068403252346652638331634805899670","24980209175319098258870146015146685294448444579656619988932608904187043942047"],["2631041216421547946353442934347016140396915349589530658809982943642846641500","8397896407370576267854001817112555959537987379132773511451971435752719908868"],["20484320718382226386277141246168753772696927684922328926235881661388423102480","13944643764754595257530093835147715005858974810522971214961771477382736612770"],["6821041271639914752621807753825886747067647099787695319998837097167080018520","19222219732820681819936591791332291704974252407005863608857689629499437493395"],["18303081747142726833661786601252441689407299820911835399357471307702836262761","11583487459383698291151432390634247217807639124241976330476305691330321734215"],["12113890434727065463311393483141581263925226096307066704213337994435474052448","21483976899074085151523184678640999704565016305044074538687841263476144927547"],["18584805497973489247628120534469016671254009565550713224939764577873438044928","18731078620767899887268112343081768188734131459082244317860404424292876094966"],["11661450980255798679477639931294389805012398875425568287395637002436144502116","22646785884458572548182627425638682287137614768515913482918315959053186217224"],["6035510507245611688660278297245166104932548309844754380524854218919686611962","10940369734061700668589817318139836602799244754757068257410728160961430401809"],["17371839386027917305045835490162364130632796244932512367312257286933886115937","23914703417034478792540380886093097336042354040412919643587644541001253450406"],["16248881188812093261367509387575033617565177474873885221067228783974757903334","14232727087569255196224235746400544490281297431279263194148985510865624662735"],["20395564955521616305845418320323927033912122991774418427661248287603952415798","23688981590074588743391434134532687155576354092298400148443550231304406642555"],["4447268431907741731986740309819561648630729910324000745830560716711311167737","4256994465136933372035961710838111181024521168035213819346069903995988575946"],["4072233060923242091215034520078473522774501462849746917809974814381339441067","13756447154721440857762969819311445276828561888449185146586777220262791373277"],["13935291739807230076445948218563172191299457328447258988544779040185355153638","25414027649940488807471555429327179151655327813909322010671213381577725918440"],["15643918964993768963506021702841219865771464744185942328391266729534228572990","23286812814994801290164447262183137587305125810549152545272163114206186462413"],["27478105720217687252872825536156226001564333570301729626413873819098458906995","9759824976117434531944237205934084155595489915307714152736519861750009996151"],["7685416445106321804832064467835536789367078570100170809888680201359414975105","17902710101951362238973104121226456160473128040041307256121844594462456556315"],["8907431426477209770092764790890298575516461911256653927450608828357911911156","18591672607411782625573283227351104867687424264247827886266390873882863034405"],["645852914813672356359515301797514449743867275459225977803639224098996512789","15389531508227937925875609475698995620205331495972275024127489686199985951670"],["4227370579379640918118989809595063717280125899754821873662642721697286826851","1948834095058594736399409211201534235272928508072201285774377478888875585791"],["26251217384466342581115827952532715070796361756416426986217118272640837950004","7186140319580502323522261939825949682914062235968859521107039764628581716021"],["25440863560833724913586296842112766516039419379577953381783852139917685065953","11252806302138340712928347649118034763194453273967397857793257325883423712302"],["28822857778801492591611867867326378256492969927940596508511406887735441136109","7351165661033470291826067070278509221623581640435113223648999774196174351970"],["13793358571169493045232545310476863782871865787871003674795586888446510910298","1546648534146572325823997537027414244202992051217732774919697453265606680512"],["13916987226286232440851308484473533950364617704923198328369871297233420435312","154255332746052474857013922967801247274109133821713155859908591532488198006"],["27833174792499808903979509082471958927124324063486756282502850460370360210491","27909795518154609935113996815922172415577858486029756535300929964850385401645"],["11818427823603816809531599613739118928384618882326063913211608659075033252027","12914802651684955701993256936820964713679702955803664748439615138178942715245"],["28470168038555625418796987089556229428877773180323523094896665755132592651300","19147543086800325782815797463819505363386613733227578783206880989313153662272"],["15429353555894882168032536910243479118860386575635864439705659287912271700023","14117426512399617433087700141904695498582968249901805160149880824606417584500"],["19335809030857806187191447590809223271089827842191773023006011083015837978567","14999920102337088471473008128051813571926918787609784911081470697879473744240"],["12492100189287333416919486059567816838192023300795557865965415416217389524767","12621939552637755073543439882279128250251231086608777847856523169437389866997"],["16666889679691177336070259139161431233445566733959246858278928805433953889780","9359620716483394122293511139489380803478622698460197862461623761503772594319"],["24229515844499508298977335773692324957531884935246861580556251765458297374391","18100402306969459591500252538978871587810336208414475862272605676495710283951"],["15806787447537371676315915949327741468014445246811701907980257402960112955979","11891573046731919265922435864808412677238192279985482538076246112415923032726"],["12129604667371325304818497175616001633697079659429906891315574050484948150439","23777239239498309082914779345280252084741913203242376635902823575076690251496"],["16973100662518988666433849184447155370092465628898618491828653702212944993480","26473132021914413784930558313834797715520267696076207822606380869976483546487"],["26364633061017972552954734404513595856399872484568158511198330401316940744466","25649584064883223558437716545321229595482472070816795985253275465635220344029"],["3489992470771177198265626221477026338075627048505020416059321196388661420881","4568544403725282835503802452426741583067091720498135917854767308950812256596"],["28824263300569078446054225550019192239393427533982433314513697024063492720688","5593099671653123128778344087335039979296726819826538613101214466013891857289"],["16287216967350317468420038114337665877905342872040260659493797816263902829638","27697756871677949689935498273182120415925196985640546953600113052801080573078"],["10662299494312392663412553420200277483618298778213723310965260204538798525294","10511376376777165481983330514046795842286441083981468942331567586400685962625"],["6186662001684711670690737771882138886632237289510020705574828095489455004529","22491790274895452385410536441296953367091099778245083543185820938413376266688"],["14184370911286816017291897949334703560004789204995517409650620561473739891019","28546095707713824717946329619750221967703088441493248185118415125809275189262"],["20758185487942851489805451753033167559722264242129668350246343798045178250630","22304788083936375295343165350945902910456667948999939833337305363581689985181"],["14172339006816231662850447297564538278598666197066593420473914399032203367242","5194966980760614802178193437785269949223847615450617271938052016666917468306"],["16385631565974656237360335045685272215724194291959892914795178972448543211789","27927780944322191491674402285920516197997198133979065331201258867214737055067"],["7768404286253215185931352346271161003237846188301517428690321881835071128390","11124512523615115745078359118073385697165657177358612581672305346121354723185"],["21408015294665795365086134360370337657830879597432417005400336953791942381401","22780527716154758961082996782659214359786631694255471113403066692153551606449"],["22616691529906247260645771785260084148753401942039275889107168106290988269190","3589818772866717111665811901027680761726722973169503245424334736411252870922"],["11238019888979908581553739062416211307295873380763945150905405841366284060680","19163293355244778653286526913404140252229449345372587178038616674158716329452"],["12683259823709540208850114640366788001947577775695572129624299824606043292418","27783801836733848403607646542616214391450218939709551518128867369797984424355"],["1959854943879190851735423477162725980152444639180922571090402372426510683174","12488707313190474873377695257641124806388308166481637021550449939568981591901"],["23566749064515692830029559020242291985100113761496677486932880960292268331617","11123487430521661920238684514752400310676575893308767002548318635738386725141"],["2579027693427351353606353979699070297879703788048149367570069538049833534018","9310317900394334314573411523527699041279528699280087497097316869041333348344"],["28440952216513362905333255245144285756612963242488438194821483449479820810046","15610457448661202959225577951196654241957069158115798652226896826911048420122"],["18304666852305481349992429084379656309715507492150019143984001174836992338966","13930714139227846954047133293774308419902604108524187649150753029643908962827"],["26785827593742408033879840203670965418010541167099264370753054270203838484140","13704300839881338095718739271102648010155363396298867862023013846457902682192"],["20509034650448202944586307657288251600075618252683815399661171205426587472594","19571374134245019925283595756915995072968314461481907768917383921235109528565"],["20153889666331623231087609394632529387328284796867079362650716314090652028296","19233305287454051933304408398375451949497498752764217272500950681125073578136"],["17529315616005572543263386170894811106540176251582250681971167947541524447184","19283778209263390626694499490074079490745215904057070041545921346057190960943"],["24645012188133530726997167257925864915040483762847568657982785185265017040232","4646881828638785253915975487847223835316054460160769855382510301797920013070"],["486741808109091369707549429084054425288837997006719846363172115602374419145","18269224852869716170155348096976275550949172561136775007647259534112690182509"],["28750079559740829935580440702901721950720095584511717667893839755920904682544","10147989171148657675032468389543639191472913949519139206838087994074581575416"],["19322739881124518673438436581730932332484908569287966457291719799728848667793","19043908654115052556879959187475031305551929365686872221465936048382530135971"],["18856331852796856169524717588097287637150058387088028975009695724256828530022","11342480913134033617155543042662726535027990360864762418895667346776806606354"],["5978658028918669657284549876808239195411092123675269372927682023233009357705","6507947518590736553154789539461419912565702446200770931354760825721211877732"],["8529153433264112068386543749512178566970620511025400504878161436881547017765","4236330094126419180182501557081427994910430368030776313972122821787874744871"],["7942790878853708443837954621002005279163811685152173300392819112702298061248","24159903345636729429475204486318664245488455546027280689866973951572960396751"],["9463366375190918009013819145911609179188417518255267645751911380849076618751","14548632175202242829218325083329690668213191825445344213691123813321624658403"],["9951253627719592052106541974836182085771848288402460962284068988774633417281","7445835380510195920005816796368750902027785393610835535828820412974707496881"],["10081609906842070685085332167866844334265498905418217917345705854093478544650","23031753686960994978011317021186154664950364330344877570987912982207963004119"],["3659677312135997210614420439523139278901278993791542881273354750826913505155","7490699119763879588744682039193996096999527379871239830347066216762814881020"],["26205408813063441763823921811941672155891913488647376299487013887516864548972","22942331877054896074369871240094260125204132592733050525517147408015181150657"],["1061347100764899978684318797583461784893038248360196062633805254084161125597","4989038487911747451189902797742158352974910033651880240294885311784766497227"],["7064535945585042620547774815392490925815663721499422402550854538778922473121","6634701179515251676915536639928084992747038001561777490540681283731723437885"],["4824334378467719837779873386018451213267881593479299324087570541275553960042","21300669138268777758172373378532142615881225718980040207174135626549816221445"],["27979153490951705048694336184506635583039709017342314291166480708589984262125","12792993662664275719351432281345900842007126993540672192170403328240371477599"],["23154297686925055799232331158669422190358524467799924042796098975048035558745","2335044226397487167762517949631881019113561839409108137022180179479522783043"],["12298183169803742833448720336498497251546551561432296186601776700761522732290","18934304831242933109818245990912859911245350681504737150902989538417468765729"],["26813293292307930064555530209219550622729923333813157961910905707199174291819","7685919622246278324919206849724380176831315370845635561447837076593975681998"],["22920662517872837293100274084530514013155629040377303392205696870599324759483","8544626388263187985765186011958168001857094941342387089482506730538008418803"],["1150967763705093495132662937205403730986715005413670829466853797152611489713","9288024951527532569863128428530640397023060406594459054769052876713230056113"],["27713750175545706608938575393858777757733394007093835745831668595102730426641","12550206984483798789980114170327389600642156679729176747372969349743759193647"],["138420902137040199267806446925552758668767913724791666285848988061902488211","22676117551839553177878673797773925305858174246903365333557815146160421285833"],["19352076428692271375755313411550595764084789652200127828973773818162736413411","26460660639241595962507084797553506185464163235169399315340201422942762883468"],["7389899903842547875433969497108051298490749246055079350192114686703168018775","9291504116285232662754727454581814619572647705205387738048110265597687573443"],["22193987215412103161128934434313339108681466435772612387168570299290038986071","14620332767351822762854218286666325241513245122560659969658775586208625277297"],["21746622025072617640247499254311839078505181875928189339943577110967307037142","749915055216522066358427820572822299141475855910230299378656666718479339181"],["5321498638607412177091196829960293718998587344029595511507979289312804569016","28189935670816564954784769814694647558639673986866926187188333415539904323849"],["589025183838325875365341171790267885389987024362325207737620603922245967164","21488616211958210984670786984816182285493153321201612338450150514429532021104"],["7069266359043812636459668404793144961971775941743612506170447876578069843058","28482597389739036406720218431563964480907982210612903256268787865815032915188"],["8724777556215279379272933861571584141816650976910357761794912292112395953456","24919270641615980190334760841016972241898012765217812406233774921008806401073"],["4039745600393502713518224694737423760965801745050757473045291037275088496076","23310109544206633509392658679151109844211473928582430273005758036312584844346"],["23601604141611175103536811594044490627469628798498780236405422696415148315414","14661694651706375448258743802390143054109023596678773994017881223324023434156"],["9760957732387285237778348872190537352912234384054128483701066862850197285571","26751217298299167114840567294628473853072421068383896408447579383863382771761"],["19426424336680275000535275019760994868723734515267368657177437126221374931517","14313127255568434835547395007900083192054474228305082427846977214099488223372"],["3827128276743137970664726523854265861470410123433157579363692214141171718713","26927096336072911454335877840503970997986467783279796822427039020349865260858"],["11263467868675776937396896786229058950000142711294861724294063789753489755544","6907560707802517729304446044976162998460962418730756145587472142771804652649"],["9792633023975158789800544454413399251715684775937642726734314595930027418255","3502655864064299722803218818009928261742590591969738467183169011606976470394"],["7520179592781804550554638461910573513327185060017086219199632805427932548495","27528159032640425942469494447390579983233312917435072083747594877355292024775"],["18510197645095564199304778146450128605281232264002804584668888241028707643648","17657189761877257856555423802525860232748048487907484944617609803078511073722"],["28139332445372363127591883003271857904316383687560771197549428103435868713637","19379837206181906143271442199483971149458416307968160953703539871808579487168"],["7416120826696544531212884664601325517521141645726289506655123996514919731648","26426748965136355521135580728701751353554583329518173775612706257391035125569"],["3759698774668854395973967963358128986213158045910408808949823813023280829944","5317936979594272743936857574284576523491418974283087477674258131976388538228"],["19340952094795649805124150292380675688192879067870396134338733099441307414939","3701595353397385497282344912129994563915879785906682279912117756149028351912"],["6208443976668430551813492996325003953933711888368612932821800059669134314980","6870175389374345646177607821177130418152246267040644133445434458345532928237"],["16019098346979748821935322617083347075104586015879402624611868388880546390090","24237127486008387517809255628772736842054207437003503533341125777910639748951"],["3239550554754443010217356918982644435720417127698251897957336618636659308654","25091118819815545318330913077289857811181297464633042417974564128662980557109"],["24807234717106446791142984366560312390708950670200150544995531338859491277636","5049358073070402873309648883036805207704085016168524694156281756420477045412"],["12085203943036681021546946962039344427835650273105321496195495744101009976052","8348117436543206470057697070323128182521630650768916474572733012507597190198"],["28931876655407717395879754664527009491981636218443053712752402266701735936558","2421919738510963533588800649256309241737730883620461465674360355500518002467"],["700285225172405589560241007714893706294676630676440319535732262542567101587","3150150436112047257396416035813256731862285131271780824784125669949187848561"],["13291098091749738421654146126914450693803858862254264308567043788843602950812","19339937695515705886145995132284947638835601840000550688335640609742727089309"],["21275971442012905360772884728607055914456418475319917993877451157486532866625","9047488246601463273767065804870352692510862468203248758787161943934096465997"],["25509608985284573928236989230777883594063164179821662076420805335263845775811","12931452959936216667494188424534596639947340331272048644728553387214568753063"],["25522603772194180762293828719550690575215360673972915724993593542719583601977","23915729976716895812230343314587624215107681395252884604879189779340083265997"],["28803514158393702750081982302722617114219540261577950506553961622912878689339","21206460025956376165140941019985667262062698429310038032826114075460004754409"],["24063685731682941362338462138498582947298335064686641165999325322995267082962","13492973642943344128095740102783294093846115301084234987541217904376756804611"],["11184967603971738602775500518873031158215921719955939168612883239695001531441","14148880048992955655132987153335843878254265417650424210831599212771288689498"],["26582197766995950418795540488786681701718621762930162286175766469730536342343","10330046160017211429167709805045291522210111363207386004500444183965455567308"],["9779707192683965487101709238296156986901626352366496826721205231678582098290","25759207016188302240938728624217934156152306089947955782305269715935532378514"],["25685763276261672538673025089240540527589797010329062780715658957370097551101","5152740558945769395750349299937905930015193630490184648279714358124672000449"],["26803086286946782723987743020716470168299721193064809838613126819811099860002","27999239650618344178219025211153063050909636231211814795794675498542064951640"],["1338027569469936292142683025846978684522588659235615307416522652978584058025","16239864290465147133751906278838160358749582285099937284979899315671234839397"],["26380599114336049899496994737291361775889787223010817352400971493384020549895","22075765279093244302708591708337486338166732631705037038714903326597305644629"],["4332762612718942010304967422858664510128048804088341214435370772307666869179","4291765261790528305771893578858344999815500008450986058785405447819972975476"],["22567112203248739452347336358740025935259813471327128649766390517190735489984","16750027247008016026999962424367116085336321416658756688949918551643502686326"],["28552174026657269593599681202787096094082439690729813606819604170862116097332","11157258352995937556359427053373341624936973197105952091717331035960676162590"],["25660831848035897325177474427489814449717180466676870466911681182878412658434","4086480439546943999497427125551969778609230732857425931553936397149852305083"],["2726803286090290320540041157029269531273136902555547992604960146640891046037","6589160298068722721034474416405455579357050179436819551945372150844453360101"],["21396051802272533173440159473413135362176323042395238803568113710942123988164","15892353516048282844271945659665959827469130189835654379657973281942233410205"],["16583481906581122304060495025493913790296459921545354378918219563790738872914","408957305999537952565151416754538633893447078379324521598558484391411927942"],["28262326080594083637876721625883981260867728516384428132523980816628621938616","10865745649563121660566899450118588019743826625676262413323884946811999032940"],["6569084977540383922614827412125937306201284339603975972578727910819749459504","812849702863099056048746656053087129687009780894323310556217539977457026795"],["4144332065746037693004660619477317851287239031627926308579781498828835191939","5713331875276956194980236922628058161330546967114093492580849732065125434637"],["5688266754545321828993876108856537864270483738482838139969234087644099542776","10865044237051550832116165947151832073126748794589944668457724361466010384491"],["19405064596935282032033157024030161987792962589227867152365312540683569097669","28304549626044314395708340834064078912828343281403171974335065240833683051752"],["24701435731119438374934528871360808962055199304952715036849592668740335371692","17712777618814157858873805373216862491780215680309549208057176611776414324065"],["11405218171470383886470440670163847356566019423404126286277458221420052899931","1678946193954128542509470658520940734696397725879647530391532784553149942706"],["12178000719799106647844866383567382693350140158437730682171458978760597364867","5116374110249087061497508578501184581182458844122990046765829601655273114930"],["14238125897402394417407591167861871842036064107174697163919139261079084198117","14203044589013867689272704457956006199034686296887094367632099786086838854577"],["12944793661835607261951765825296981296199436304390931463248700239314728835240","18809298075642214369268816128931260238010189619092326725824383132340410891147"],["13196653744856796457597826036085199834479679230750429383897899120818072697018","10929616641787129730612945106268744867314023314890127404945655099305032212394"],["25621787486702427945020818400080310893113357073580731825333341275479496784475","15256983665952319546503689285720801003818594433567238545037206800378701430262"],["8858144035398442730985197387315629785512712065008751969452418784382048204385","6486218579844072289017291753663346947451026317839450692265638379484480191123"],["20738840861795195556766052974900860237439224145176708995949274026111392940619","15694639832478348945700053124149144518911866287955920933989984629920593877546"],["21177045590367382567509354218862701061429647565536217417411247162578023049939","10387883877785931453197870719320138811483780588932554100233212487233444930189"],["23718678636909946630861087877388473667325006987040960883353160240036103250503","702893033046335553975294974579495108576902649120151990663445311124528487663"],["12325721812380438340123189139897818924724615078743483472964499110013914733158","13152758414074299337690658007434927056569786486283411799982871157032825386771"],["6860479704489191124200645846648012646580252424170417070184198289466608286544","12522229914150051389803858099744124940036102890525252879356057315755011736367"],["5518589271224077632018791960348444208912667695001757289273716357425450990823","20502523427649328168203556649738680660085112389167997297539727459003271013678"],["6995507717915303973668070556061669461057560284935404157565798439257260282765","3906248849518309445670584148743912957441034487000185297257032249201816358375"],["22361431156358861468393600502303302056732789458164301638272623517017983245964","9238473395511333407124074247343114917508979155491568161020272732587581922065"],["6105029171346301458006718506331579242222787278180031681229270087859221416395","11032141835709718490661129025972865715616739603589811660115905052129282720189"],["10316841963576595180974539067292499404002331088001803781420770067555108445295","28861030089337884224605804823037057476450992954892709912277273395862811880191"],["23681089021475712702199702171076903196814818313169781580503203753557141701480","25119786115703370143320360352271913677307520208748983631997987336299676662135"],["15136743097289736209842817047762185486461540852088009115607111478319751461753","6594680949131616709054653771498724516828931001807316539856659014302003970850"],["18493941423562726649872669220455580422221569393320428341057730757111978660059","15921558464126225674661486648731182169353311418153421257152977014570500680880"],["27839923847305535247091583874147982144718361337870079477405266914774204060422","19620976929637777808851991699596940896697306851496311784563134597340497707030"],["16457499967932504816405318095338783956464130377548440985805193225529913594285","3820422386686440595387802482854799312599032342670341687969504815648414675959"],["3671339867453900607713106983055612050295956061088273008465506401467582203306","10733236036613088462515045942282661760938751459205148186845914689495524778136"],["26956899966574467893079895694944309377732668600581050562162319317270282460782","1958915202659484773524936230872901892150625026276412100465224532589720521424"],["25466858849757150665288840185613026652520503569159469838317627182744114926201","5122215056329900062214048115570739162379447946400528706537611591597959017541"],["21781719267881060739221973076637782240037986590201754861856560746338496396733","19124985731095146360222768390178418474825921543638866770832953364114587394288"],["3616987668849869500134503383877152831473383311595563244987924540972700630544","10489297286187827254622951427114919593793143131496528995917092600904496711827"],["23075682394855940396877245553426236416051251100641095782380778222790861845393","7510429260717045294145735950543736800920714779903899891026891621723894935420"],["10892288959002638734225387889740875136483535220266582988185222310367956469150","18117252774707862483854450183729819573571276263645161565652750924638877934807"],["28542181880170960586829499843613095292722472058357766899458339718498324460267","20187633183780592261107646637225124523146489005771202622789776707973270737657"],["25850076800116969029481588763566487120780152477842669247672784689660291434072","2347324791323209947598689215182982490855381805491181888063410818937973017619"],["19293682179282395539838482390667837163356701878811450734974407518387788711280","9881706925142262086971958167534158849610238283465206885102573622721540538640"],["28022071831605173477363182065460720494702476678256676471254518573385742541622","7458596442492257580330677098645715148261460915371385232362606718601597742862"],["12811605008338611028277937689077550881043421330885898438755803997890496461592","25500377035509714893601929610412995890420660609239423391058684366028019707557"],["17873709119076742720969501247286999570268299325305588034865719307214238627052","20435277654725795549872362793870688304300824938948226681754331524143960842539"],["1967610253746584192085630749668882994447630588391560472888583835907823037734","26715521464896009117052372870665659982252018659203355951322630327315371929919"],["25714994959107511539434491172894679809485513346313200628281602485308847142310","21440378932694721569838856577497968527361454711427239397823176231931127080000"],["22537217941826238653994998114577122396817144100266302815995401838256393128052","18805598665524082603941308509286390956130167817866225456949584872070925942421"],["28589238553962610075367622637682764904701363351796714349792882539847007676325","23555418233245610582353328353690691605261145793675798716891363307539018076590"],["5698673249633209140811964445226594657844961823387117816442368197330838266220","3260868357208983022543441393176987007229016415387449097050628679440743299840"],["26772728660739659439748347671590679313406352955972589231200106028627947122236","22532845388239004501496914562264919763693480198851676998415743124392936322586"],["22210053339958985619979762922311017529119933841542254866758400579937403247418","4342708526249025019787082021280477635375813459927373856130459723615099148087"],["11324729047272263274228862860856336696746608161768648752709679779995395085669","8083276325193861279770690110490031565606759245788005691817701427012324815912"],["17712886857596201577846849203335986109632322699163704074630886476789232004871","9808968759524128311491881499584442943934617307952848047249398392520150212430"],["15491099314826994749374799175512890061891496946521113962358036167293671034387","26915101539733927911517079379370651523546346381905037240130547355590974422809"],["24934029934280896245312913114521386618425153103373740250110141366587534699679","16767534602501097155185196877216098862535809456517228003528224624524223629640"],["22956314302915429273616803519345761828670182668276312744211040652827458006488","17169080997197394204024940846418787478796139996197303714620103455335609273044"],["5061871096836974089772916955196300357637860632487596445948111522670092485971","2936294897859264774652826498155148690835226518347048128846229934318292129756"],["3320248296118548123192056709910232024897689331467692676106918100346770578572","20495484716808871373331098467473472401010333846318475657528176331374756446213"],["20097119332047282736272658880013858370350407907849640610708075433613541430414","26258962989229992566606238333216439198330725836855854779459239457509068778075"],["732245140008845844093560817884282508206355190740020768661282374268333090768","22543144415309989172586151169392348449785605046642156747953075526247798713320"],["6081907361473659168332324891473985219332731241945167549343075886328241036189","12458533540847401318112804074835829598755068521039755987026954100549516555579"],["19222490329407547896802055986213946639566647536994430815018450931517842407668","22476532934039012783442202404528502495234387776978161158259466787939285123279"],["13473165465365649632331644596723445428795674702451531901455833212179042685729","15703163995359041756017269777718145098950631732207020171083610893956968585154"],["9714747307057568197159104099349271653874312693848636417814468619584024618969","23495227222387096572404492660174916640196895044560152393585903415239726584276"],["27038110463099734845089368571356251254553422938527933743193259802038297104719","1981607106878157968191970719543134059839141385325508575968514272392783889340"],["1755434453734242596666355120357453544918290859490015397460708807139837065037","7220708273666163057739134697906340785867288128692617655918915769772877322159"],["17574318361635784176085771955731042501767405925978786979015830878618160054163","9172233359821198861990461454978855927484231795580830808649936346408719747143"],["16605426468172300983861725729621987762438763362034689761988558399425744975350","16282351661761075686797725555656267216112203311082019615912061061416924612842"],["23734885836637564781325147220716870254505090034299827256184620802221379454419","18806995115686674151470072483084377134643958550948602705957629628371130225378"],["5590776068127069565846404020389425563899771254197385319461235437020353839046","19108310644323758329663793941688170930073182468601289300456888859482269476860"],["1646336717713180377675025986347988647586395632240191267963410472299072541843","8550122956351797113189459770529437306377358467482240822640905877724323185921"],["5895600939571681768416275018769898269013009697099115033887397679863121266250","5653155898813841480516430974626424443833674329863907219921790224344982664955"],["242666625007092508629693112874593580257620523143189368895065171587248778000","28477152673425188981555511180509241387495145323356133786115805889579282769307"],["7167097902922155906917534520234034192312783485547094481676647213200290210794","4081238698189484626161020926026732445671202264319579336200856359687702048793"],["13671682774370694390825975896768942156794577587371482357946094568373933826467","20222831303305174583519410794984164962545643164851349081940422628824786196075"],["3917524860893576341532957256792840148676234288140630579166943491559502605448","18013175248447999479934698979256278135648469031418187204129979038975542556519"],["27800285240507835189140959500558928122861132549265334826726904606459722993527","9813743289521756260566601847864360193401255104507341905351443183037102102885"],["17454096069174731343586614097864638515069801607667877972238960889664131205206","18902353966164871764285211254447992977772679737192870004920117237805889214488"],["22023883341152183501193474297559252463273341001565084004854100333024183438338","2852934608985331831949429104226932711633382608123397574564029288431303146499"],["8003421294068186682376553030501779329264336224315782577872664884640380317704","23984653711833763330695621271752952407471967666564875347350709244953606487452"],["19023677971073852838846430165865433506253804509857876224159915969064693968004","19767338010898360344775927286522266266022475585531253528091151853526803419891"],["21966708517056856821198171583957788650092317979761049550489061257137395963864","21370473636282871342218872996585586340533881562038968106836176885160255567316"],["9582422030633324626184559497975342242536612988989316860420163115367025056277","13676141851032971760345170221757545463108166302545304472144352750457948554899"],["23891865837481480096337853909845597342274655946790393282050210346176819221377","8218672644871423262232481350978318556562373488939401473195046066988276102624"],["5374649892968796798107601833233030583212366385487836058254805866471710306919","15711895139128947586094440366103007376876306012372023528936143160596938958052"],["18073197756126380436455383353634696900105305836941825026820178929062067401317","21645429709676856196778681864575062625055337268293505355536929706481736938001"],["19867619067029840464211574500611798115304158415026693947375643440054728189239","26961739210669560264195269417053266069002726448995476384482206058670674376735"],["25037023102152931240614446222520060599534748038914751528788026115032135956995","422663700328780708545976490037531037681083441418770690612016903609445210080"],["17104787955197494986550767830211444546455704494986178075641206647921956254801","15420795798324521203674681759754003949394272177238859581252985377032031254986"],["11499755583809312948505041245239837473399109372951474288012152650807092357894","16091927127417034965359309328005311331071762433939322423619966101047907417787"],["13302663046039378255959736832934172126673604819382684309110889961126429984723","26561256377988536400813472703053014152978012873769698297514999508980639345908"],["23793940531005171751995680330731533236676178861870670079147009409166791107669","2151366164329080774773882798166589593626743575814619713949756237967843578920"],["10666255432783133364814857524409505904810681166352835527419042759159064465683","11522192396761638636203731631260919079223509841202479047615529794258942650171"],["27244489389335146972773088971327264503980923035196704113416407963996766978249","5638294340992125762280692571329282782911711788694308166959506565562425168815"],["23377520888263782300433246106564830863675713437568285700057911162243100409653","2282960823869085764501204717499885467858411518938075893523903852411016120849"],["12905084771933145124113893968946043203099025939454783399956035697900386857835","21462831124722303986484538189409527749625916873468085179389623386543128372740"],["25806485209301659320973639844423771411071928060809433175332328207177717573828","111289184903532212232147505091707409322629001083097845378295720899461426685"],["15799361667592001110291099163594076032854616300355986127141734588763928490510","23401212127886249001028426279706912360615477253214054055434199427130929568598"],["17768184422370223689929854369589513749030805367960022138429528675867146776304","9931986569003713548902538856834094272303184525314990073715163054188072730824"],["12398030834146832409472614678039946723835114029236541688104068940654539878677","23568406248453625435787855210138120618991348822214846367815434472193199579453"],["11304464789917155332427457241545295446793141498801488150859323632535521833251","21161357419270825819614672817294395334916426290576755827030165937531912313133"],["19941549219065256531366423410053582265949125747333147493401911559572790694815","22771781281234761152541478204824056938463153070846721848619993866701654325610"],["19083624029394327071918382254062537016797233223609487895081790442360171892057","27742836886383676749280508644918732558857140531839525255633328037403285006889"],["150900305572582911642389876662044992864441699680798401282817624777804044154","137486861481331237828664119043254352455208408195466155421526010603937063256"],["6453127470703578473699426878509055207522504354108744948762365216706206689800","2381003421299223569372782886986872104273301242717147264234559922339807450463"],["8388742041620160499587788434826546013779169503275852203826630067513988626986","28829262496686100240531857807176258190990126366236495358583089774464470504254"],["26100276488489438487233691296136976760342353007665167722135715952321591967684","1756344304675162395853410050478752987139367781391682677719465247155123256074"],["22187661274247497753405767667836765918580648316439235757613727668366821028025","11582097081149211394028219042493889086723525038847557184921993740178193619327"],["8612142028745429195125494680847153189051671776401836894338914896657396031698","23313954029677437041432646122205279957921243810009224328452139611186894449864"],["25295093482916368072671434293711451355921363585678198792843987449961401508784","9567470171072814975086690375105343913218290619732827402389978811220160323891"],["24551601341443771592949240438023859215425820796652710064153268802062006616003","23199503076962102299617873863211691042127126937381939653123357520926153988539"],["11820036948512956375558589090911151808673446813940635787194748688329862128524","12356773581252170852874341480106409441796318151912718750096992140707708602985"],["8825141912188214669739701222523269485989505490456821888002733801434424457550","26579576648895451229678179677042727275199220837527889036648945681795615348746"],["16969901798727405128804459534978084330356513832171274809520825220777162375355","557565748339925760785957315902627358230366862930103050881814158073949297842"],["6904786498590637426429810069385340374654290973644311805911196151590134485869","14452612393918142114535752160173073028437726448912138800164947233907033988014"],["23569286273569883442122798619525243975875144398782687905233048712437604771007","15353945265663517875924995322542827578943565937657643737445686896271995458622"],["10741716408936720197704472888817759393091473323406892339526949117140904628584","1618460127440053417060222977140982149705470293644110895597335227853183774390"],["26886698453437377322079815377992744705706101469106559139738184035906095043089","13854409600704636853242509864765832639480605785079492920894793487101312375111"],["6973434488782400381549221371926899397100510441538617562047752675110150968156","27622994572608416870578113862602471295762849498748255138859967340293081455517"],["24128611523527410237912679608023140676877155303106617846383487980973962656885","14747223115798431731263379589616075794370843066187375969044186869673017221647"],["6014461476079453613841937615042758091198704088252873081707473136472505580802","13625355384722969219184089280473964667385749101799238091619528994728414327970"],["5428524236511543590858909592582934125619960428073307272082114425965960718635","15290228770255239505010427294101645877618495532937434894718294307507642953082"],["19613081401959289598657298070423017663455499853663817157846602081702731288862","11782940028755167236858965426158429666636232287655050602435029153841191975929"],["9876905278104272285699497271456767844449006678344466617575157256046395253424","23864019502426585360146640481781987451005737136744944617011630014595683926023"],["2567205121255304983027642711013752597256164420657328972521088408586769171612","27233629263495092199964348629956569544156408852703464927503186214338023401739"],["5058909247412994143491361761713442975513524428899484409691527564166510974803","3819151840991436514588782869810759443764567785391521901680881857325994406089"],["12909389410764371559008063374272714248389783391547213204547677020626983116466","10528353456978161042076267368945366494793475616860085429746732280742622824860"],["124931291088588653248792574619082598303447613747230398927473480086850884383","26189514446608697683882928568719115483053316096016924131804123497924673508759"],["14988014790004030860267848717128313843367641974662828721373673537812847553450","17419860230312552990716076606505995079082826904928214625217212337099854401181"],["3488383192302101718883694128201865080710076773612165897580061923892768147293","12713779092485935685911865646874701910119029176035316523852146536739136125745"],["10606584221846524591038288047839973712247726338135254865225178650119014808308","18468398151034457664129726180052145745972550560820969769858682414172813241453"],["18692858319392662260108953127856073922795598081321233637080341221897012530455","11102796890509234259397986093195235108328430551178690532045484767023826770308"],["504852003671968872280419482190860398802675330929716575410134476989399641339","2452477756092800698838262256257820538431012282884263250106959708237120425172"],["14756807960423537510802142623335740019202182332832490900225378488475414067354","26685082490897602761524218861481255919259364846920724163894044351939530984764"],["26967519521938888319722122301169972953106116498658107182632400666382452931118","16827750874908660862479433220934616799720578561366410698824454722778667020422"],["18087011593886677098121720116330899920051503397270249385214107924982900234477","22904550906490015465268762943494945843867849190032621763523520952767528814823"],["5421138931650791944789847775502800032670767551903338021281757665832802746331","5446967757242496137759937222661561928163127416476830659149832835385491279144"],["3032470297150309961106506886784101028382700064740122505003174131819725494495","12679990989841744491362029997603222731079303336701392702941218999675519586645"],["13535665492378191967970684064803593031171049914692466730759067985769968511895","20321482484193696447180816446902770993411013753288593960972165976234530936018"],["19353475392059279839173753622474167797375807589707949777732590402637788505380","12745151315160634992276456256581794317078435291848174973678037153768548491186"],["9221870066114129464171882018566986603339401607835467342216462130349953680873","17383762310904014851252974502576388004408875270695723888216513664626968094714"],["13486778595731565040946076194860988319158139070452772382877486204182691677522","2074840162186719214908939911575824027097963011702142771115423006143879940770"],["4587846579832552888426188991630285182653125777749252449912906333955885289476","18251080742872283978000932653102048988254329814829730200770501591355390748343"],["23318167736965192223743976705601010208472052834654949578536977916129033870988","5304710840732476222064481635909781350079329476550631499145218928775050624412"],["5445351577278712233223308277305916866901981023796944345606470179237015342682","14659553992610182449745033839897895229053045220138406469473787995885777930846"],["18253296376296409362754052314516278449562395983963309966206636764827042000308","22206087402969096918458724942307902440545934835687120387924813267184740457618"],["23844903371094127916121665224996429840423583130951397505413102279783613016434","11386277314763410713546989965351207427638178519758849665518709443026247741235"],["3591935696674018038013459212717770502131670980097442727564954262550381783792","1169636210265884783582125110694537358963062053544750392312589370764399013256"],["1728514346102213578114183628430100452241473383663096308229137100677584503574","20379081962084363123163094374308023902676001394976174257601842920782167383216"],["10307504723055768966036203975805719998952952778653499341422924881471736255092","24419920491436582159206862655824842702113946394110833321559872490243743410779"],["4721708825954281894742756624744569036042479231095444211579080285668004158383","24557729217241052542224619019575033283579442217024062873463317217870952628158"],["20625138214696457840846323383721912882075906335208351410037180935893340422051","27396380030080733662531361688230123899371215123747166945001591824463650396548"],["5615586092232580790306791998092486622309659493285853673786283279250319743572","16758674403804955180673407481276440922339282708444754359376058810421150990216"],["14199766186041140330345603936964783224961369499375963950823754944879719437615","2316161304318089856606831668208980579330584856830114245923523133101446132347"],["5946722799959230181253018385645957450730582134654786756596591776614328714195","248320787924084045968054954197080990761188114844151104182808999685613266244"],["10695334126791784894932600332351914019662041429365604850294618795616079714526","13382679638468848092536082873148922945125275972588917928324589108353365649803"],["20383750779285918812031789107001510172900186274511951975318581389326723260020","259269812707353667815424621221723761034897492830629374990506277585045408599"],["18010697787422398739653383475920114113806972327624121727719840718919052358844","11014498754789306338493267664171116538776664267499930154226623354308398534518"],["9749780117677967029897336503100920301587674055545990911333214592136331110707","17215921163034531224169113840297975463074105831928886517250943331215169688831"],["5472189598007308697192034151713392754955237544385479745039989899157588851384","20960749809326545029679021396499265425560980440979750591721935267904822782982"],["3770123052057195287288551896153313537491605838338036369004125443000442005971","23991691998656980798740747717433798487250625764451197532851735187475506809850"],["28453806020437177116787008040418159099082762653479217886068767062816390809993","25845518263773378844823680853708408198766307718272806661592307789903012928743"],["25982960339502081734582541351509039998730343905263569362593177318887306438572","27997135121776373971549389801394213499477693906609233801288875131062627005812"],["26607520575936740591598417166478523381641566550693205891911284803941888453545","13099045487255202609647178147845633290974382807164011851278274436806152152912"],["7178244194505167959281961324676620015932808508047697864385201332152942258156","24134815030396504820169069738407003332542715319355242018911080696817981557371"],["902533563084904363976228720044412672697850176475600994624924621166344574077","25801810923356516702856985809097052564234049637752923580630248284315781294040"],["6257616921434779523854580537650062308006488924699765456063239045698853411994","12984013266927613252366444722122713644313434805425437936922236352904519722971"],["4848858409801724856940121183180681253161643389422391970049203824276846425765","7022201820894760852017001098171776347570025821822263868409798822024104858603"],["27754560375699694864382612382264032494750356128353477518251954269213010702343","3789682822964649315728121555558094591334377520478356404285104574518122723847"],["9190749786950810449381954666827273647672349210855105101600576995612463467733","18221592746653445888691446654972577348704615281750222108618858833061827573448"],["12213163112784202767003404426984169483444460211269489230065571961994786757035","28032323275659308506795802924050405654937629572001157251228858897839382693594"],["24384885542732725668872908932286667616021760294013355670405181640967779825194","12975791752916670817937789195100137136892448336548754516441988984808476220026"],["19739919463379144279123250442735341806583227557487536503048219386213856702070","10513565510593874450821607479467546220422611187291231828778075440286217570427"],["10056853295641676233608360297974808633259990933291252955944336162781142995345","23279273660062382279046301642187981023422538598201227586249436853483405558990"],["1472202557541643303004881984006587393459113564635686702136590727146185091470","6328213897775537768307064423933754942514295810999839372912786189854401462667"],["27456932414696998239368914392838207189456035156222989211865207268734252913901","18244301191947060886913431212264898458601312505890457583833193255650577869991"],["11236329843678142887374654641789507448881017978109427297872370190804738913611","13731419765449802514772938497394139106926241833451558285339240520015256287637"],["24668835407907107853634400523682107866053871358928710817227006276795024989333","25459060780970196129506910481069622976053986528196271533524778111448473804614"],["21150815528379056927404589606540090626343753857292041821923275858200958006046","3608358182383628474990619237291166840620291535770783500386037359582366674984"],["16963074240451151828302356383783224820327141029866765544197437028225758533197","10737422243448444867336841233845848057515156786915843487275513191001759865909"],["25559433873449871018408956356301724141110463949448771466225989272705363307519","12483242825165514477084511214300529870806686379165494307645437842727294869861"],["13591650355348066207138049035010777501026359977667665189058331333579226514704","7033641482121123926147846706802816512284069610966960508670877582886006081154"],["21037291878031215220878916326334822686497296095482475523097268399157497233250","23480927335487324540132786111273383643414606583510695069829085574453016281321"],["6260792366969663013143093400397795592056774625075206678967226245913283480855","5048620261325222222570666575418226116893998465196037538646362420909681742071"],["26892714664029368215241747994105602913697685162459462279439926340611937154622","19801825446357943497929036095171545917020004301481307976895871678022989012794"],["7914568925697454902059823317710735154424800844524799754789363876614798789720","286651707123990843257806930747515962914604725639370065398701347824493314599"],["27926363188517774967565718199449307618672216283047408321771871161518785335511","25683209079878683846450940727218276024174541296889927513448713207856371509293"],["1167193438631300211516566871773842977815450224690434767658220955882931338022","28801904697128966367930490428392688744951036948490269005353934853039262444243"],["15228644613596661605025738841408845656230966578594168536048256738029839242288","9628482596064010957752576409661768860307651215024700167258883276560248128812"],["12088729506757389055871711379452170414129111685242769584564442590922934104280","17468067519080609981381820318159294907539138165295160371711788012104786936438"],["19272812614632772496924569058619346755159432568870327223631509480394846003843","7782687983442163617804425082922634053936690331369761800354167329784189642346"],["11616720039871867813106838495136896275065333327496366644469794174624762335382","22459415753226602694444156486414260205917510902930602731641642720237140495471"],["1958342075227131802047786107527434833139573128517214435167042981307198625654","8438408269527161474779406854867083235050650907313381646202995739796163297419"],["9996885363874252803997317155282669605647927798099529522260892019584075639995","1085508869592231194158355555348997881727181063727711932857615562803886915142"],["8803052954900978479924034319866309467691753495028278832114035959349084555748","22096551688185804825470879444846518857833963572006665224087481100941965267341"],["1865178692305859974971133628699568443553438026157762927525160520986697404751","2399639823641290896401568749264782494907931803170092607304204055837851326932"],["10100669567748197276920338104188210475744662735940574190552431040903181908887","7623350396614542321729685303390809704896351370485008064041318739402432992988"],["7848800170776876388962464614380531004032493610554879693166183686380444586729","14695149308425936562040429267031722197354796007725926712414079119112852201035"],["14323721036385918337204447688721555884803481679267364355736242063185911415495","6469528764949418082618258053255408389382037863610794909108610249038887933972"],["380439883090296423030853681947124222924601190568040458361067386653505329380","9774688150873631157654295079279328398631483578468834269783302931319344327907"],["9760667733911350341908589335720623462689595323956731287615067934633493949073","27074148903199997757544444872135160646391393800332049911350180794395561053378"],["6340207020984859122612718696806610467939665246461942732481318955400625464290","17456290743430659412711338771694542219225606239454633668994511897119574110536"],["9780898331268360011775802117403048616811962965189977408413416848272522630698","2335821554895575406742221908119109840694794256105699956944128641021190113587"],["9552049739541478496197524588433873489277629491677622703407717517806042260102","8353939295017347448760353881521304892231516321819475863610614916515689650431"],["14330134391543469591845213944871088921601266751181017317043227886938235777801","27515400745115161769956651419770913327286209938034562338419584080061637673853"],["27352447966368669427685975909276230417707111694950461090484884508618110320653","2636879979634388782365991716085884981725658197913370438587334870839265952750"],["6007234573330928311825234309500322316085107523044730098173579485440310121519","2088608656216238424214916474376436630631701834670436167582309711547070264089"],["16611860738385797724154452319439093552317169894645233023188074599859742438756","26363277914925021443001496597067420197448439482364957257184302484138979455795"],["22239423833559749613883327064561749795756228816222165901516831936440646829603","25139292850911811670766223696274830829418420673886707472019490619142836717940"],["19853969216301766904760382472997342222649018395207642540623138777398592640744","22414963677914384888441103807469033989791766014325213605599277658768778796133"],["9198722252871422761965247728324171170785800017597902673569846903268474727176","21150001412085418847708647384880963014075192589457863724877532068263431965471"],["13569901329310421712422941158634792523655447485479661843346747064082917146897","3614791801877627699068430132984410808425081444149076157536920773497376863626"],["10406378539940638910121530257992783882412712017641296910394773032846547264976","22860595562500020625762807405418211228546307899062589344336341866481415311632"],["9593422695883295217394173257552894731997480721804109522656091725666655645914","2206957978225824461691010877152947157768694547321279247141274333769883648826"],["10173405548972480976586296815238244928249566851001434287290059034999418853906","4076259767804515639774493517662647619596012793771900597785921318340355806855"],["19593667983616402420864050155429440544261518230839962854492498287434146500812","20842777176128438247949935737024672174035517534088064496434327915484817719227"],["16545576058706168085821527542548970056617719691629147270405513987202799841851","16551271248732743920166080226046846176135255607705529801570637896938270170791"],["1471790005895265865949889493005155531866113527547474921350411735315191115368","9786953994635546356398968373041585604320159325230504847047945121255682185951"],["4231949224233540891277988272602139820098659938485062981108417685273277463265","20719543009484649771951209770099215708007686639525256511566532781452730541616"],["17304589830665089949824653704083572041214907485370228686030165892420642309962","24612060414191667267816793179531516545617581623720404409069966618891596236912"],["5189333904150535887013402180183196963492899816196894875269029777036994508516","19324636619751757685740974810527649735166247657802869295334635029396798124236"],["19760890758451067589068160803932633052393721847528594949706195306857640743329","18830304072529006699262541223912780995965429381508358760593944322153257966005"],["13376546070313801630938795449834161073099998758041601498645784135710806458257","18301143473767840140638623268543458088727794971544411715509346079819775981674"],["16414615731442554595119571153770707383022457263988157491923535666299997792950","17544121268203082975958418703624244300865173381930302489052605566663803023754"],["27218729633092677797144395454969868175615191766083660686672626773719068407506","18753470222886081558682515236771653429037261710495469217993329280252637333777"],["1500539707603119650497521090844967389395390281695276324852222761037048519781","7370366294886011018406179862751505713862692691037053370267936588309404416189"],["3485598145582931455774838652557401903637459784607267463397956664705813119077","3197785221406028376001193039996904370526152236223189187204440052102181325482"],["8104069448951578431719532025292893053446489205906874510510405764730423758846","15155427935631579517955556331177457062804999984401852857608419874282235161176"],["6551132385157518703563668145617756296701060163160962694608454000876736346312","18043850374512281336982433665952797900310111896099017899840107914147744753999"],["1833500232814515281632840127303508857233829415373934765028300470775917212322","17838559707471554130359462607118372730334357624489404887968487033962454150568"],["5617653098935829224212421535674976571820622514339424160995275691331250760003","23169158555622691021406127567632659297964621779301614698006775631178779505228"],["5779647199290058503848875044281615567269315561851318117895448631423636666944","20713167310999257412676405972326100727933691923734135329042576009749073502137"],["1465533586618481352878561202625808495447359920182045616476050497482054481502","13463254223633735235328529298733940986445105897635178447087223291317824538804"],["8491922850123103350586259382040956456800245348633070022520453783035188290337","161684625196294041823857094389960103233199855148416200335713833653462272918"],["14509875262671472963318678724663735620434856215269539110246939583606705250066","18033357973378632716678619347868246000685934283571096427117194776535830280553"],["5310276692226054446884412208138931907014871479444178862388002794196541603728","9056553146389310956010795707340360597500906953732965977603100795752569266264"],["15791387406690668553592092967735807347726215341126300436324429213765754918018","6583452937538325410261330835143621590271315398230930949904652445259213450773"],["1231447569823236528133532212031307594815571821224594116848868736204816744959","20879792957900692754248710582522484916535150142769382683004570877147761491115"],["5324211116103203944624563238426933289572792320570340605702236261496559922821","7303797747787274883554430925584642029977179615240462012984788363747400058151"],["10318175341644714681796924125239028153012934471100624454988096313643239213161","22693409383090463857319376728285078309316090374779286631825873597598120143885"],["142127483805004149759822479611932090103414897817995436892358559274332543521","12237202910021363277900405744708506104727511311308281428522770063384508860643"],["5406319009473359392184009996633117403942159546065030023335795953430928633615","17749037437355765785164388569783074394356857296225363522135211739153695377271"],["5652140006789805794472230495839893155622081002272789650738668427180168542017","12750530756003700386468394712372518988324500642991581638581414830001985184260"],["17381037563201160176101863386113182873794030784477519786321226224599036857189","19578300330245448183149862041478563305588520902987453986313440570864244699798"],["28879485557788896126558818009194134870152616444788772326071917677581110813489","5085564778414663343689120136673116993610460576931960452913512982776659809443"],["28045009745370050216428529980793291590048122895620116786355794231500158456837","25721447319050127024692274661746015910915585920140437174944547386316998347507"],["16993070925738351725526270165189827037854354122334126367990906915802707532393","25918760280487823672590867158588310215751954093922613706284161872469223644035"],["17300686652005926418213122586461061636116702813793231381159781177081876206374","1163837614599378536821898641678986013051054791444306799649508511827771542838"],["4134595208874914342480967910637345234111120519368828507644561303204663049380","18164910311579722573483089979992153553673974863872748809714339877119323396628"],["10439537898775942305671202177087369403951172323323736560265722115925783900354","25472107087416505278401165194084717543619582022073830629380642946095670096233"],["4988863472859730222019935043336712998945969716507019556472258925213388035363","9021332456891120667252241567935561600163528908845427713921634347930986618918"],["23450606267242439696781067020156528291582345124817223815874732044264495815520","10570564184850978029561490910214275621329869052710197430996437674684333334357"],["20319252095612200816067087313695776833652041054539757362260136957710046655399","1576966537488562369978919927293095198525461196515587845621931141112917416743"],["12355281956505863789528026093341389609892930544317147295883168007063762828959","3575928084627729808308287616421926595937384519632906244772085282925655943869"],["17799748076637397091384458389971941111698131130963314686144010447099459112479","10925737931455628564618675059882513721932121698747039892571255319774759434377"],["22300411093983627091466147921581004353674357795130684423901639520543260196269","2425314773303237782631625716739019612834904884631144290549875927052029396980"],["5523056128572152216959421475015587149173627852949278886878297455157379691846","19970322261194656443256120337611080534749810234410757688255032070829210064100"],["21234056726971946718471937354402679335952030456127823123390852674750761651218","25109064218510491514602216290673437485832834138869957959245671644061876139575"],["8922190599945577930029883916160766253759929382963598758352016653773570194417","8004679064480485772400654123594975741881352996494723503109098121766255430332"],["2845746687993982309391836050081541846540320779984458855016049317866509338381","7535923114338952633150032839557430689026661392012869361013825773568715884037"],["1256437350439827657153995542392843851643987587506280057415287193629465941599","5289353070069896773250506460410629448555238638158206567256336127286682129257"],["12735823678091165105813928369872728152927989889405460761248892824562789411436","6839617624157665718884856927845645656418566249250788773085138962250669471746"],["19411974507991962926077700368050502586368677259899731451572504070933972699822","14392606118930029985899316049544654852455332609140231009406890055942380557915"],["805710452723766201828040099023418888448986433565100389973911128224614933052","22190041295562521585782567486711186699127104139053481116894962307863553478348"],["10144372098183079056009603837843848953147424587480449431423863798868233169338","9156983552835458787184040597691210764370857430536113439458158563302571865909"],["16241796182593605886220140315068341930647056323163842363537999086006991793414","19453914701102721677813996489972772705381541355950714930402495636510514030793"],["7440374990755781336492253156330841349297361267607259124241875635002479637822","28399878240329882651431638263563781689344183997416476957571762212048419388324"],["20817894168197703604773878087163679513655693395901056261273322489174188628878","27763635250067441201920335831623181100796664650820329360753787539336219038908"],["7963477703656844883541231514447065565618116056052730604300732224797173065538","13440010547128857239434603309931475296151990288945784961459855519749155308801"],["26163829266264206760274852359805882919513135966689576638841651743583505259603","8584805250706239631893171004430486087308387892570077684975077165563936559401"],["20307961998146544871063776183453119237673082502050448067212776077858239222811","15666944766679491925628852072790151614927935132553560778352480424231367488261"],["19810684072394117396671074133416889100310302350057641508914450759419396665041","14456710472471518970748653287107242867078895240699309014252008525205194009701"],["23359897726337553105937691040955065038096794555140476688742565778596329292384","20277151580930846086926012076758970765836028744048964427483063984676049502308"],["16063148526575070210395671107222385676869969017723624861006525237172742902473","10653559174427362739031065341370545274633757632657154347341679286108681486932"],["3811221548721472564369631081868932318292478879086849040002938626251832488535","16873485172076671964244499504789806035996179100888763606451972520691633111445"],["2975495633822572781261982741746035256150485711760153132704940517845075376884","18940353915226248442884612309973305244835319935882822586604063204928736479973"],["20940084391320665741196211394508410569023573125302707025116013661330394868007","14696492474017561157744501320055676226602780474041280001419244488384393624073"],["3740675202681226995992773722769961527731002941356811207576680206392078343426","13973236737282002649852234076382312674287813287847053303986589518745059847239"],["14835332686408246984523307757745570241122563644096322296191005924198750458271","16208890191655897457005543380894798501953534306635823124136884496261356108907"],["10925537764145127214861727560238327272514265290997585694041731607474550146640","21457632985148007539149860421430901096690984785123575394306163386370869711818"],["3107521632684468890461464321877526941021824271674356267247008607541530273742","15186189598482520367116920967449811201414351694192421952524094667411882204124"],["10965032202418677179649032875740432019288511478593540177822491361697429306831","21318838564546616633098514707856901656382417798885404779809653429980039167009"],["24350279200046288597806397725046109269354513028366257862140568897675653356941","28645841456924353042758761028876475080236453705235676943320020986865774741754"],["3630444878332608856462052508469019168945206671846417237750815473810465906252","14170721115963491365326536815056403190464874129128334242495906050608383555461"],["26900043452570099217796635188753151883456088101745957868312037853628877390398","11636568371668660390688202278878650857848754963200964769640543753353895484898"],["6729393831057469743339361765338189795511456580889331097719080447259395901562","17853813338328741860273110236420542029717159636768527258555235988130563898095"],["9830678375970399464501532798921741948477672041932390447441304684667430123088","8197685429438784498628660236041166927387504035223136790998617408553307775033"],["8874818435520690199628995104274288187216177344579619826971861323614753836291","7133778689088236035605641240223481671852474040854941323614500056539507165378"],["9305376976407845022964879444312524879410435978710633166260685766268352092331","150838835034810880149268086674545047225983343648597751992706213870645568276"],["24724368706654498222024990200219778249982961037262439419655778391452746755901","19781041942617270489231161822185919370973298218208304877229429491990557039780"],["21600714026034544217831773063349549266103100959622068727969041717928356478646","9338484608249910448620060030977120907226388149269484229826647124308848291395"],["14416035859355481869915465052062052448869694877260242629865517497053359749054","26582349476378482753653498707126844871063329106999053438137649618328723434764"],["2105444961421613303743904187759912595793209202366752208569511937706770070512","5507422230042959748445352178264053825620060036732787550113543878929075525757"],["223451453710573196654514367625653632233960780797804038335095107616489063498","2382632154553411972588690331660867722784919432457283701676763634830385347907"],["14285493894618655959974495041994341872134662573287316558214865669461081547499","19587323557836090406884621589119122948594272736492543926230451390960909575992"],["24204901931704787186232638252218313390049671165300151697924560843830619387253","18981878021565730971027783042761293388151460199850121013471754817319830554028"],["5670082130031963551323289865562751271412470158658483083090568454075494660517","7831156073579529461905851400873187765676712819112163577162920301509175802695"],["25248826358885968874454679230512742079436464425691490352233983397202844282629","11411102641437177015543466696810707042590272488554093928668680937554715463628"],["9235057191482005564640072199694625565628825195679731424683483545677715926117","10507017963276067717972495672477666682622535928472987246762785945943214726552"],["1787859585646965507982693161290861482051501232474360435263469962960150962770","14520641679804132794045859486097874362321979139890401416239142991051072020257"],["15456289149182680361116017083218902726384737318825708405668224913928160830925","5556672155385031980203096903910865144954506984319014570430859061606557750472"],["6416187860825740183691383782370198828723982063362909796444362954169386875154","17573964686227419042104365313497453033832427036060569213055478596173043339932"],["28129094669813578513333867103649039069856066187349625519576628276842821114382","18694320561384240200414016788983407543459296512079853406191309745699777097421"],["12271194296461558677859772798118875562496605122501567938159735021999734034234","19281731695168319120011263447714126526911462152480848109751111898025378451998"],["19768740347153344935822867584928313047877237495048721211007490669352106979961","12026305759522984896923267366267581456722116019395978882396213321587133612479"],["18299101777931171314986768459028573888495340814584800330311336524443156733533","21290987413624470920231275738327241992491583260007269307706024400564355551781"],["13992976023843886313943241781626265902655715536215343054335385441994292010551","20255393444046324550630306846281833962186568811650125014011089656038405080102"],["19247266742571941847138872187788129140786280703140076308205775320510669046993","25811607677542551604981371268354174446909053157701239631010331203252683480932"],["14911752202015669173840034662602026906647218965308533518049169866555414723418","14240137673512788737678259623291816837890126439448352284692057843396783035749"],["9633692749100327116939456247908096086481373174353941504564157986237085382320","23445018279809164648378571047009040489690506251578330799380018812629402779899"],["22927719317192377875605777129977908088884214651871255364718185561189155863091","14203865240146050136213865190349066140601076072008523996166313319411787463271"],["9131296626988437188512954053692789660353332126473975884629481864291347111803","7995627822492935898374180167038378204691462346791308929195105493902378375934"],["23287739360645340354500945939602044499011448860922381956560801998043694117916","1615072435946793699902570222691672338328188072424788452169251649800134373842"],["27074985237195651109068344013861888153961081982692897033351563014744548595088","22032036362878372675992213235462898919003015914547852796528495762891775683199"],["8859254157415752762903356258289506752060964602461777380938052782934513273211","10356975231765731998000043086965165096424625706444187183565530835227847092343"],["21149150791802382236026856536822724621605943389046253866569606022982011571914","9738534576033673595299887996469796070363127044488278151110164202586777100733"],["11693259225158885031618007568831049959353907279936439764654492330419361467471","20398236382038898126799197343272986241752938783412392897999941270329728628861"],["1053702029895520267271259001228349274199710621100988969143072167920260407658","24462520611791293654483951686577192241007606539011478324231419905682686941242"],["10669256906618783733120226892801633585438916165724433468901023082441971484387","22497987036232766634044316810102060855424235408035298231304229873060794542342"],["18168834748288953547567238592560310452742640260327792670264762508179591945703","20318839606419751843827845017117937921001428113870630482511805974389350205197"],["6506635469601522241525746623041351607230176933597471292919009951586650836550","28658728830535985985479475173341068241222687947466950049666434306047230204562"],["22599557424894747400713742515487235170224451576760751100254265737063788610493","7679214933014591230351862271141822557588228546633655715509084060126933895160"],["26792777132513937144494435049423632553993676194332090023211254194310263019375","10780749975552952316648898558504297126575377085801630899316853096213176001190"],["24970428832672960550995639694356268779037909013007778570182145321753425802594","19933512785138426627267139535879383340071655100919782941029550516294256667593"],["719527786097277749636123753636687969107748627639150554735996012128144249272","25058384718562540141934457856445224973070399036375282535485122338827639586211"],["28370332827567026781479344491665650212363767472152787277876100529821582157654","23524204269069502704563462277068649393294462608339900759198755919034008808932"],["3253664713779941449103123623678859914775304153820610157780595693998280891372","12784566035639276451974763413376764280737053171744570833233980878597060596315"],["24055885734750486711303702562394576650275024068322746378260564250054006041943","12836324307980440065764222588459900043428473768351331364297393487442338340507"],["2583640723667367324881148487399093699269406435478419204930593217082576607260","11077731523898150321972892448064644246691273614128032922630273949971769216497"],["28349279152375977251824842383860646191971479584256226668463862307639512496099","16302632542192843433939312783861993414987674189003085697294558627047682066067"],["3078142226789161181425516921332357660603533236734928263567747408969720579843","13255188394969064089053976062431226776644238293655332674980535908966574743249"],["22008370267368600198665864422912224086135220242163795037989336313000482666624","17522212656438637386338033375119745530358003875526863459395963635238186666497"],["1073635714919511520723509668730576612474115378963600078618945170856829468682","26188771850193917180571670326038638679026248821158290088161724421492746360438"],["15610002923402913848656861380024997288267539519968372037518640768113766385444","11045304703564335487881902646653744988334938789889479016234593524658439680069"],["27370408360096666791348057638794768619741466990493432520674435945464229455421","9571248966610190974457102755432478332790342537577032456016882296597076144109"],["27852821846665994728931970599146084912677040100326539820337852889666877723797","6869050245627362026862719374578233734253687532633115265336761745217983187923"],["4676513901268448525128145345270417760092871982039540722873582503313182023339","4356674607024473471019459759270539440062445752106505861425501440346687206954"],["1838292836285642033677462266747522297053713712021377246183787450342739053128","25348273131541504199046924616751147817702522058354719628042947850113612075272"],["18632037947360030548770214398795973316464016329521986185915615255776316455283","2191418926674591212733838901602795329676277123829149274064086172960783598035"],["6524682593737642826916697414955227341921174476901350143700577089535114517505","9147187962373225665800774455318634357304704106934247538658947529664500369014"],["13769911185400617405883952350855608759687461578231091232867689994241034949493","15746172534540218482097270634448539057244536983292356714687182843085019621856"],["24149761669061084305295938479970717282553947674327580011900643510188489591523","22971705266390344736487853534365303675143367373105415085500735277239303409100"],["6206199471507312403769726819300627784095744470738305844924948697062842973343","28831274178427609842970369152537027125705360218324313682638293430315378199655"],["24376268642523267554520027866907243171375153788491948761540889985970099088100","4478761067737324992375703740747687846746919967952181483402687998556051565148"],["9182411975507593254861295539279494515127986737101587598625311291836109991934","16091109795579381992354026702926966597099633616991401464457234732554031959817"],["2982572966251207815544520726442803088914453217249720241058131587275576458341","27012214734707883073859513176870376458742108402571386038598376231650488324609"],["19745282398528585116364192541560149568766212239120318778618906756134847572823","14974286279649185040073132782214523203701502426939034347331683171062359140372"],["19906690282243878064901835251305216620849422453472583001134754907069147909707","20104752924406914796559929158987984763267132517497056337932295529043404703064"],["5387463491893098685461958341398795138313428872660698821302165326501670665880","13131587562262831841446208699299646203252258809725893137274780862898699360536"],["9079343579457906165718077621553831720568007507120876888492547599713395743711","14585683476501348405517685098597222914238937963065011279751180561269634607280"],["22565148791026457565457238678605735552499185166025868405002632004237415981978","23458404112486079161552872959434289519977906448808437961566000230028433683385"],["16312538126648708151916416698477128190811464738416277345588194892862582202107","17430736522208000449535487936133361372203521019111364925178264652479352813189"],["6149768763519237589437014140064601995072893495617021560219930831107093372909","10590518162757906574458214855308752139382447311111804391330003421551007275257"],["23720003751673351179854071022356531260114371401881956147112425330635316110928","7754526880880445737038348481238916404163090747329113981565155055069797217595"],["6086686172817745259468643813630656668242012097929591390906358383402231701109","9163794533368202548594754524298077255609113021406216086975161291715690054657"],["19384680132391304378614800494347488547286792648925519048203992670557068978064","4130739673461555899980053724592739809472950615523688196592565167363562034560"],["5196418548165932383129298681841908698756322209689925652166935486220619901280","18672643323925502200352264758406728283853265660618206972678890120546776032087"],["799551133987336689645367793553732837689184745595951884243020472341926984480","9748359889699965792669329780892672902214758816062696322673271254111353099547"],["7142822440701964094949179798044991437674823149868007698676662436719805404431","3559294529663064653276376543278103971636498726811882966685032577386785447139"],["10045389161433619770237379167138343507172565810583795596691114811761676468728","2062374397960547711074882664463990879347293493218996453869828198398895810740"],["23313254625181056993843556444765565760793042749038367020050712532953775373984","14934577692926825681741430304769522488926587394664404760106985883064438794177"],["13110676068591400827397947628493186675178432850224249058227428548972436856927","22468099102537998120880156663258214470059625179272258894289230724858771865213"],["20993625951976013291475175138990300355364110704698071381620646013236528756420","26473343864880205375376277873760525551239970216982545856796947908738703382780"],["10000475689536248782120092772857439876879721236871458178340621392308119412265","26951404456141748441224806265616580957503527129747158986552173310585965317199"],["522263827128354604240901685905442587976871195035350800718149496918963376279","28106718706415722654935620975598860875094333157428984414132832003549952727128"],["22469073106730941272665917003454449353155899183495967011019834443925194347847","21061806507817759602323957872600150102672843060106525710845530231248235021480"],["5945602720391373660603482668169957572268876386556095965659133260435919775657","25977510435577283905396343099023295427200863777900845718858191913197186169319"],["959888013446487272933569441938916187435892970584395419008027707615981177420","23407073496925522013724384142420580607068839792367297256888409912615494238808"],["16844669897672129460919847139176274593213630700423241089292818222896829646697","19892656809264069808620881438455882745857815950725849261925625157493956700342"],["17561219278064942843764140536410775137991924439145247769204547522303354263566","23145531942458641624431180698173224489898640787793700691692638965961941067966"],["25551144208274340179330576023324435292174396558038900906800371374608611651334","7219355055579586575832527851904735384566788148365880459090907648634001790450"],["25536522204109932426409145571326517303809209257843303607170235234931608865827","28947001454368072541570025245435181850071769036376091500125835540951268605371"],["26097029866495447958586791848479331123271324267697684507556651083736316934359","694667834667736481549508120879015782993299225144366391024321652935657525270"],["13535830688412746920782312794273519837025501652062294138705629711397304541839","16395539062726138800269002859601503613294481968349585916098644797387221079263"],["27383147068857932600145475651454757999187730586215405007344166988347913435293","8125221617729360332928897533510528214948696629520100058660343259562857229254"],["16993641019548580619467251794161960975356055842564305108173358702127278714998","26822009716887699628076425943742284188321282768346152761336216785128169340916"],["13189718941958057738814998551552541891207309349907584050859722189244339117729","17040760157392362292636870969958251486272949026377408297509033658702397753344"],["16919608294699790885748948520216825484191432674788465384933805014359382775680","5384169939302398667411918929194430507573256033102610464411379319117906182685"],["8344225968926563122429074340083165707147824744966604357905237714005559627112","21435598800126399822363429163535382101476075973131604362761400362470684742586"],["1790645992656309729053855265475062425529877054664492057275011333692430046138","18219126211315124856392689754746184356465256155485659185996801983375911815860"],["4513194648493694399546143929464338406306468948545804108947740595126733982623","28728961120804558731449846578769393234775333220265381465736767893768037211375"],["19468469831416859451936616906293173465963211352406764088868913564454477623574","2279237867276749658375640824570854417927669963978570357040688347668573136380"],["27287752357145001309949728300984025185450990810203991526283710974982588035622","26913387218902687607687027894930926607307803452225311087959517218820366177092"],["20499411014644366704992685109366385143154819978152150573151278620229637664270","21672145473945794038857276504959196580002954547813944650065608562277098510762"],["17926256862476929801769532470852022742321995273228319237204641460122546072661","20806937025976843384181491932540276501652294203739330347926479733925506234308"],["3005882810098676338692058770502346263664636751849913068198754284898122342375","24915392794108227901626579245274384909528119920344433730150613590664226666779"],["26993066605885280730526330051860315855039415021646600604379170435127983904235","2433986842836465725002545507182373195952516074444523052817517003524796745082"],["28425722510502125326687570654627788776308241800753483696712639400393550729718","19673593613153244006037391999210475231846789143058296240338208579107628006885"],["15798267792046302236931656789585332928660434255877765918836291477061803063192","2885299160614058045222466533925416953798655524122808557208375698523286265922"],["17230099534644203269758587688612877511326723590390029497849757218708798868488","7335448113256718465025232435922935998505448091014368313012534931484329266786"],["24288580490278012381988838496853260685834207746726321063021384196764247928246","22972180599521057576747747485118062204119206369314719484595300799180933245772"],["21115684880036864618820366811160023066756767466635513306691320675591401342588","6439847243613043556805504676342231532764560513412716742879637329301048244315"],["16132640594117925741452852849950325358004214917253891100464835281589783520651","423510520087575322042532691227191257455693155466636014270047266404631656415"],["26181934279819252059076329005257223265533581381653630868157350077970878833444","11840971644571464719130061748428679074543541207701849603908511209859773495877"],["3423994670188582753060931390390561977031794822497760881173987554555205774427","20058286631786898670342540342931443298415199275905250379413166171251338989945"],["8161597000526500077159889330744107227691587084167773750484690902732128049379","12949474202903377319623770852628086445048169134754064995865767699664032978356"],["2621739834116657491124574430556177210625005616560411839989582029721210104277","10777644064806245301712374044241876783163604246383282679848258360091385033164"],["12377364606233395525556932559863322666011529479259426866364738867076442877591","5285314802813780878362117729644205704371533928846388816932565976189529786507"],["3033892097302090831156679910819960216665838232533567051533985914288809887909","4192560514533987758051201901419455055376251184922755957527684201354766429437"],["26646012667101820001822782315467507591165962831044773131535524377132581342001","8369499367321556795808227702517924354940034353687678557914658274057285815408"],["5027480286311221232032464015975862390373403778567590856111791875948048189913","17942610051595655107232867808313710273565375684680115983304848669247463010471"],["26985411227735997594522800705431564604665887543555819609976113837073757826736","22611486869864887378889747144776918477790802992053526479205635393895582660386"],["28475590575534486105139413078617836271246485064389433498056165658711415341898","25415891217892260324721074345510585869927991840148573385991118285802619358730"],["20156472859929870096430994814889493479851726220135241715761060818288636554044","17393410293586747902568390675958624401988621115386759188590577825846506374874"],["25520504042538815175255919290932183427192625028451363174649158316537554311278","21372309967095779591320146855710548739884713971131667299205696282053820773780"],["3382273424771232039504111018133923738495116792990177406968422188020015486872","1881556217133562864284679867872513866854085899551433259515734341474627275444"],["24591604036825842843628548314491741824977038398711383206681430220100502244699","17874951879526660297637802516784841824636982695271210740212540891480593844655"],["27447721558595879818319255022391051771271290064698473710424600983506665652539","11718448665729309168151926387316096094322665807198061305617080868054257902426"],["2787997739982526591100808983953594449058960366298710264908686161709773617254","11572858869032111423215732479432627243064441998866350628433484219008640549568"],["13083239380792065709655150809470806520219944573713882884359593251995378670505","12003562958188298117745382688575383447340060593747367944192371919375438829393"],["10865198200272645632794769185534247120525837670776741871234111308064889000804","9978965825487311810717902819693827519032578404655807780009451985246495518624"],["1040863813877981722555876876017922944392253778172708113670633091176019819982","124675047001156034915932123547373190460689696231723891476078541419537647950"],["6153846948830134589265900555571714331349170421252597202415485713536589625656","12474576881690112537437313639837954045040508876773212330270805061539056408056"],["24313034285226420961564660431282174145743386014232772822174871000945212674623","10663662341071702758374964801872361625437484542804603600477161861218623816465"],["970961287897601752506278505396463989014484118556913758842192906951956788936","3128912496430786496120758949384953412723832562734326278373422860749437064510"],["9015492649020536114109292792760609489111290871922803811269042878671400801312","18382932139650005718404831279855318141623523024592194427643988436054973144240"],["12931345351251636191712989726670425756967600694948120023593934178559023125107","8125747607607832757497699011574702103607398451277075811426541952303670803108"],["3083771966355938733596366240780604199056019206309190552111762767770125151838","17484378118765176411283043751811625124082226024672330122829620744902125401511"],["10353448679680393652234764681450563990759951020156270122505463877200609700799","23097803923444855885030440281285909372054502736488878190147934074899844187722"],["1532130392617412168211382742090563145704722916229954662141312808899101435592","15151831885117513371775535419354274675651051590000950052306373754928277737600"],["6715622306977484760838292473365365608334376652809246929985655241915043765973","25257406598449092989357971483998486926540147579448813873636012495488637188404"],["5412687647812959329160603240725211502844338185976063529971366571551783492119","22484554221488293127400530786490008414583595998379511743128427834800537017053"],["8239138191596875813869633940046188210284877903026557826369923220305289664945","9386737365708451873364231651208103430260689553994225674908585282198974776532"],["5867411174729474642928718974774842422181336640949285361394674584469051602923","2277896657192719309735272371527139387909717026311640961673887118175647882202"],["19926003647033609768642386747276654688564581592599669586070657606794899542517","22233583537812422212176348136517092585637714816488118939895512137180815427256"],["7425716186986199595505294629602989698531174461579346680723427303204684625125","24102420021357065260300666215736739240254499627564257633855543669848184061702"],["23831818342608074103020473278859566861709996336599134102077604654888629241315","6120500579720989387407412292220111070706055791197615835066659449406704014639"],["13809533501785766920645468712600102162915363754956560132743408845920490425461","24935952395957973124010522816793613119075263315428621528445649527444046644245"],["1111730513529185517723271593703644837272989353784888857878602751423784877509","26843087961631319253707463368485446626246648403872496621023091825356730660195"],["19007832560187916976114661905425630790326737914726691857808972217805759308534","21784584169940264813287502373859942738827513803231752191902655889751595152185"],["11953058839323694252492674702775460666716124126689966703276608382071385602061","2524226205461498504028350029711066322995421521464091232381625289524439415442"],["24258447055079956788959084383699555642544987505828586364945923496060724337794","15052005385836313535704243925225159188550800763139496038455585997133751029345"],["22013721902952036628383955230787002197524520632462532825923386719339985676286","26233271559078465810772081266506726291508786389269343124317472612831759023455"],["17883196278560917603770671781041197953259095221410126447385959420585924731569","3740046509254006359048407407287600816303725084682431515445939249781251234231"],["25721457150015792325262707152629541137543651595204632006088639815056857606791","7326756356035184032774850184063006010883512139122864179897410156023284363249"],["5658320196843866961418309650532464900177726306680845192862505482365716566646","3072533028257663051972043879012874539792373991904538017241348560476600926602"],["23497740837012326718569727390964343226345079821195324394010517927117502962784","241082186481145981761396482252473056239745749003964430949082946840362574783"],["8716597711604033580689801161894664243749652043815787674566754361767997457429","19069940362808457934713385385994398993714974824501553495524962255648233464899"],["24615609862282522905508955552547490047129580285849205550752377949360878496128","25517435364453445425258264642905705594410311177990366187447197951202424736962"],["4836723718621121957846464773714580970618571516291281311244852106319630205354","17245992508426821109201017114234902503932643765962605800182831926208643190452"],["6118727862289126289752728628022150365608746258854493505936122250095830143376","2159917314096770212626018727292361488465505646589674823166960798670371271097"],["12155602378687748955425165557218375584563119070027398479763603588564186806361","7326868074949913240317887287203296496417854229785976332480242585400855812268"],["1672013889444344427578460526559063776947918998560716229050179859514292611483","14534751672709891280096923105210292551743055895763578668272821542453280013817"],["7185503146538477859846763579166704441140170910612992599337374463767463043537","27929500990057107671341831571153999400368000716258535677627147929139315660280"],["24142911156179550223168060268737735509426241341083609368427051678504892810472","20965728282207556257289063557429425142818228740694141325607674580080515901779"],["20292586993451101264312327453935282847179168858930137772884952647785305789419","9720004911377620874332704141750022047355208755214222519824969571767603552146"],["16593287763854298339648406507618008486025080841504573979809311930882571802425","397373652073923575861398467755802876378429208516614431889080465716172639876"],["1589483286943185006936331101826173635638817641406300123765282673537013781994","6694449162225495229920295813425370108286695624767587633345658404627744614937"],["10814130337613049232024246229236525593498514283131915258995619520568620959078","18351240392969216142635372683792535163686371252644017135336757482917256791508"],["10542247154150879163258062730492083194938469718120621757477963992672266793631","23906692251909109158458695143116833728661690322427313113254970737409740909396"],["12186472000336030701240310899123604331759988097684025153315098880317965804524","27478371311096068968776775682276406636121075380220175989726085135796971309924"],["9121903633579981641342811960316813030273866493736726694953847784682528617506","1721178492348771919426230418957241801761284348056065694609564990832216976167"],["22023679944918604069267801850160574826808107684766740721958082448074996913043","19161896998758711099593249079512234123037328995608399276111195950152981750483"],["16823525716958835601474603137146769102520771057259375441930319930516153652644","18766269267485463007408993395986336411393951648122816944074706288792236904812"],["17154853132823463404613572886840242961983817010360953771077643052213148459851","16209439208903839540948852119494512808859037605266598079978980844150672934807"],["5212003165166994271738648973910954061961081434784423220737931784866494043861","28527512119124058674574926033378736733181681649299634399360544936782384512163"],["558735413356088503351614459277760590384049300427396671444074500755921840536","25425651773745530786617820709959603287750654153069782577295089121440698258255"],["19477647645734161762503776404724892533014697406983851829034364727890790651288","8993173323132412807473325561677958720048619176760121145803667087380468207270"],["14672991014484894356122067846087261383558041149763787867876945762371848265410","2814770145188048635472787293823656716310970044984668251303600742648312326850"],["6245257259673655959613324145016702698499272170563516090809413061226992162376","9847141906980704258703779386974509999423953200578356216651732878369482045304"],["10668307388083723046042234742742410044301060056222706359008450443872120601355","17156530923357079396912276599787402067246777725856278946117040847468122868249"],["14418256741661337466379556898772475812312486575926208277021504643788670188368","28685038376154783895372650010140538605307262095190201771902172253890864387192"],["979776365368130985911144806585372298191282023807153744531928475928753395775","14227683641158106119193087983040703209199674151359883513018208912644870742985"],["21002109045029830073778413407199374851680717275544272390163565385711138092138","23939649543365779272295296498202937758263993584849274180745965811030454159732"],["11442310423383801385826923696845171360367436224023166035788450962003931473262","21128185079687856520064138308345193073358493433367774294216516660079109977278"],["24204262737243764934607781744720466184707866015175068438942660709693541363200","14608864734666878968123918061365993097008210217329854953349648984513762604433"],["1315062749089203222238050162025578845979962569586402726141695186369285981985","20089123628706869975870788529922108864543190115690255810270440645063637389102"],["15473945593789462129786225733757122108116729747164900135769323918031554020606","12318672462902038095402560829331480010499752598157627731429536513178081030620"],["7739664537394768681363157932474174907575474659664110393412508792771840984091","2221833072400836615376700423052744552626513033343346373037328072109284076038"],["27274048694921150503546636578851449722885955642072991294590864907489511297962","25457073393094318140140346891259495728918571665091002809510911973241815681634"],["20528030711436362275671358409403728917439782703780041181053242763714127108942","19506483677060942054431237645696708351525175101368347741106379177670536634276"],["25668569254093371481049800004615437766334856470914172119291209673508418900042","294016383698927228078287719033881335621332278868458580372777036940805419102"],["6144985798663221362905932493959538391524225231655387038289167426579715503477","5257051745577098418012818544986948779502719109942027763998992720195101069956"],["781954537945099715912515425492005715250558278065514607848849106440134085753","15692297676714069344165587282706444212051765689300165625471382047820152315431"],["19341534757582900408948283539587312370056395649383005756358266060961825111332","20284525210491010285155490000134117131464536143917435804091880457232458729339"],["5992214018055544520870684156983190558713136961375119478885038398990559092205","22909940446456801053947569947228414376012056062326964634974083198063201861556"],["27115251037364813487763454301391823278540256284383200077168044956317630464105","5922646682193411446706995373921442971367676784944051311396609776770396550985"],["15209961143774036804972340594534101431365530025167391196163838680880789409730","16071077568736254908808996500549979784054210202509994871044129703931189503513"],["22731560049907786455852742156569295147960162383937951771652652977603461917377","232743768353905423964624228840423524120292032327723755595294922105949230703"],["12324301626810568193282823058888573579674456893911543448724279405846137774915","320049989259279570814469185811218000969065195853883987407990821619345707240"],["27643890294732036547229401457151188619470605506175788239312711552649537800513","24803923852708495846682693204881103177121009134235351517625075109223952855442"],["26244608200559835492286598214754442099600512671562953548237902249686606539312","13698532570376392160223821264705414587673792513820896854981716227745665441961"],["4280264067953139158697935524617018508502191160484368064533754144979696989366","24521026193665309744780669983032878019260823217696360080929540089757482702706"],["13465879172428956476080427685945793142850069416285981119865066671520150748166","12485838027394999844992784932046658450173870466168451730265542210193005940066"],["24353467445074156490769012085103529650749622108960787553712655616531539310597","11898491335914819499117635254086720513872133380157091792111924797498877877102"],["11407244986744268022149460108663797265467786053976502086862990807230184739945","28360464217051655861477055187341323055696240141951355310943651757630557389189"],["1303307570380041149158893250053266191692655645200239363141482758536721287907","20529142508860473432828992669432774912033599798432169771143829304684076593501"],["25967650474072340458933470580497664448274536991215687439125534399803527238623","8201645697362556306367658885096358323525688044805421558708683398799833043522"],["19231301315566016240581010190682215190535176628725174353999032824308549600768","12374781510315451083388567889400378266176648503236525124751066296675906261574"],["13874853217365696096710951857995022642616957283633600372762786129814558107455","1598828296376889600885461289724478503617579274919392535446855049133793067786"],["5974359421212293921202026042114010543528977296606098803179193262754335724492","23843629112696018803908171291194055522500942420734390366096022802026598608664"],["27513511221134554646397755351968743162864236054454465558254192545898128412540","5531544875883166443025544763607668309694945737121933363413951940354845754672"],["17799478467757794433317457270471288317674224146217061778054032798709031866872","22631169380906752153015109314913414083057305617315474540619409469672471268795"],["9673192417711614608584431284423172887635775196536118917730602184642771679586","10920961790894226332152384560284065537407558077199763727827770170507773519293"],["11410164200699601657858387460098533551973419675575664053380482462096878004415","8703544826110001006841483800690741211034733538103243983113255080320896478542"],["13952370491564809936763415546200572991929914008849826153555346121541859110374","1551803035596991332543112854786653537628120391711155159213763706271885509229"],["2306125757094085335210510382354904248198013125818851725016011422711714585827","12365184170586852787249001998545246219265891255237907285935688690963008621585"],["6975041835305540067893592468076648564425593030475496540234465444101950081632","19979351026125949696304721229904983659884348571795650446404255871862655874621"],["19006854770660414156754481212824390496660272548668812223918138562014752243540","9455714380396556557695088328011962704428535565684568117738142212400879100541"],["17016462715573390660025707068273369970776191898553763572137990145760805397697","21108865783353337088600674711665816584607566709596616768919829457072069472603"],["27924637432545714616175408790349070924282541166936196866791860636958933374047","13055257485377192503696070003663156234731710712959025496723001484367541510437"],["15479332545550083332169912535767960319738544958551697255369763513514470258932","17454171525588231632480682334748551854355252876515377695642527167547856649511"],["17798007456895123224638476271570965406009619498467269575586505948029173138132","3910245282860842169629914385139398903187362726150024700139547263177368148075"],["1744025872744392318086433096499585464464472517405288971762437845874483549385","9612493997222743979135199081832924626820848412342094608989381666941338962197"],["24171324987826925936010659284637987761782833901638934813912036327740983292303","8963313005048036691739153503736880339565281115114808810100451049536984601360"],["21004128732840299039363105904499813759144317445889561803085572787935947576219","333377743512396865815489575321124493071648771834099652781842865959603730526"],["13568239843838888075333926026638624398363564704547843679931243307232780361025","12257991430581088008204643711781766890924848792184099582827706299590607301437"],["22805202772428695316032000881532492584874729707037869278938252914295989434211","28110457398655436642453187815582229599015531845765397213985934594562934011909"],["20906316146712716912939452798724714243802598077565460345722395442036025941687","6733405511584997791852668828341137208135601906576282033706727253396539739604"],["24428255056125866091562763598235089819003551986508968566081755275169439130331","20636492848199051546822611176873621246931529962211872954753088526901375145153"],["10547538875268444956705869773896436024417971129227798649137425641347014873425","28392602586433079704412007044351915139107488680333073724171507893860102250121"],["2906506017300809157301764893212811254373392742287711402529676856469550169689","10212312212731845653617181959078789465246569413510886004136487761814100308659"],["25205672994917672930833597809092094952664758812714892433415909617675374266147","20585130176682468997323108220343645631676915497036649125210338865085018465700"],["8582428034404461631372053306526750207663155404300566322093107956825781830179","16354810272999596840494039614119121578629376088793901633199403023341977193488"],["28509240855950879132594559949453326449778230956146482740637894664163042942997","10262698387039958657133771164943973535095589818772605639515067265280772506345"],["27783512348729957066001155756349315447973145860803646057854549831103599701886","28936723447316391383843953790195472250158281643309544132762819762321468339343"],["15550608761802747884585602967804643328653286444710137304151482271648123812999","1764717331792758416136179512976865846084639615513618069268641917364365193386"],["28400029507373733434790567391903180165349943979246590687629622787371840794477","13137733332272248767384362783435776130925953090900671942097153678098863998189"],["8689391548214820180662872029555825353389790547279624747958943567698438925916","23327732687497207969825688143999984905346114099888076286750308409371746952343"],["4637785491591714028240628583280944118613438760372369944333840386922264817838","18239940299727494285122833500571190215443854551151485440809738469283670179788"],["24680738063235866909810689821709933222531126388971144059075930405728159416816","7820561843616523260218984227064564617433465727177096234264559485265705197463"],["28921927051048876662688116247519615084384928281504540125757019289158314663051","2128301918418094071543512132182441070374545510484108533790142016294542494417"],["23133105597556013472452304430882184276764870848486504079771850641522225083017","24759107422341026697637562950743864197375983564002627384542237744669233673397"],["19955647515256638698060258446191169140791926588958098814973563883503171583008","8015509857813655561093504921742132032686976448535330459786615091376309525795"],["21757750886227018483593251863691378397661200713463871559251084993805534135509","17030043833660253026101921001772897166975284884780064379453201815728651694210"],["26506686422799198320041507122388964435134455664055398309679118294920066207104","16890032456573963723160928766987435493181633106249045358137408908770994882473"],["22005180921963213443758149295625852639103163366149677291039715729784423710394","19976501389010577259838590809059391604376465403791490702691568163442099195822"],["9931984842500242373385787479675940482055879015894744496053768206350667356556","3837721547524980913896247672117813245303119093419733013788730274967394808610"],["12739804315236307129425312843327896217134218226972126112832591394751284322607","2138065486680338300829689909182893167847392781649763834533948041712837361225"],["16404486641977235553641449182498472051630231060082782535852405390757210333411","1665574417010707379520612381325610096737242092902379644793382848110951837049"],["9946078364401109594309249336438257768237946667419630688585961845839284910337","8071403377633121888493297010593243680620303845394107473678988282216409070737"],["63105368543692188427815021387809263636219265664075562327063602096517912012","22534107143844841134859321001808839028619315275502792802460822805480643894084"],["20776603941093062502755495020219763304287047614785557855717514484565614425309","28798981914337334504512518728838715526882261352705923328152721490142468152311"],["14350987222112598008676854449355692691050813642357915551088411848584369349188","21194118787972322244398576215919272205907495146551520057306143131266047244391"],["2995859396559027538294683367470495356670636412268567063702018713806649183123","17385885052389532754600187354783815366269167388701333200713249245599932621276"],["18554928418252346763543001241914482294700395761078827650187434511607251214527","6069463528369507244140249407547112030700121219681686008275357570510313530742"],["7646823626398233946807288260869780521418629728463787730932012871007208260691","7748111638655507873804909998171542652043986057529537788056602681984117708869"],["23780116737942947610511348047046642411686064892115319117139895500298550231934","24776804331333114098416972174651818022859399754057003310238669171431648884551"],["19356506271496753359358329724924437691430338234264659478602591555671524238113","26773331369486179269737794996145629547522541011587571521502138429163067523841"],["3279748466532378301475908265462452210808957229327653783862313034493164174605","14157288195354431912605600699643718792622503282893111563180190217550510358821"],["17945431568348390649126855585054177161810065991019688295044035725183652386782","7028742834035369385191259082732610310024883174732909953308226880926158541012"],["22031196347971634064363535296553192112812495118101069993786062145428568702877","1168303925659120580154475229073599458920521133219787462982121136972454783580"],["22754079902268762474570201691717035890230637235506048898121741889881925478109","21892308687117402773561868774347266795798476055944378588254367839456175562993"],["25985887850850156362279525978095251674248709972519090240809604462475992443748","11808968913891366400864211158510612636246579569711853290091881973723473053901"],["13792439360420561456446029284586765877728938011364286916103874002061489124554","5790678075085832582066885680257075043968072360850673436317302820098176584481"],["8565762446774643589414172375123544831021706446630012160101854001302303538190","17524246356480185670599305048467622017715417979080107956496837273556098422290"],["27577538556071462073972108952769906625939091711341885028378282309742687235118","21573056672835354842175501910561886574499592072112335638085066337624384465766"],["6486862320956672850419064479459891298767058731056593478302744618934196795512","27665708844389863897097902271388378054614167760977356812323197729027425564599"],["28301203055869516828310963060907512762596204776770946641140658185903244779604","10135932419607086701292185458566786063388231610442220404631289801719272724749"],["24637700911403717752604058835874840431998523603495293810113515756307948749257","19515395749595427309714979849388214295262461137929762815636531088524472373224"],["9513670709517318927435532235011688148987575191414427041637289864479136754692","16144476057740259903684211753665735619394594440310693132422962030772652345716"],["10397891351940739768489507691337026139722453708953742198289357050743081738093","9652333768785350734695949368406247810197420209140982949630151425028120588901"],["3876301487359313235645409686961807907659302298902064300430033809943361617279","22329816425927145318970587353779246473671077637877477661878882754527029831274"],["1067013463036249844614618758386754190314196136699216375940677456563775674754","7394230140647017480158379204233144189505703912769278097312932380358438000316"],["2630947747831705304063438565223511124553205463500315806068488840693927132458","9530044509879019575072099185214954324267274324498632601369091773119908691540"],["15057852024781283161922010578325788088701456373305839780037255437571290263414","6929354843467719449876266281650973091101380864683310429537984123944205378399"],["5592165178829003143315255870979634378574441148411494060493527237008835362177","5998497207283519744720766977639584255313941056241277955657855984038687100802"],["12022988242617431025671458160089637548058826588274034459109328554904759988268","1984948244402155931020530838870038907068609531903118047249627620887149758131"],["18794889343425071771797338505433384086615050359502741792687305797834852425500","182693797155386569215818931915392560342513065165113464925828954497290351635"],["4894436958915143043583720236243404232263123390240232165116090049484145080618","9628652989252514574355019435405758713736262622302456473451489674724745784854"],["11265608674657646345096223676976737515031924817293618372168109644876029321190","8679275305850339413824663476296760754863401973160017126717902056489033478948"],["10187219841400031394344664119849396297595953625548539186176307116337627327894","13783131676494172893852467057228765328380003025105381470519526782702581111712"],["14414586031942406062548119080655843178486291120549048361957669400431640176256","17559852649378272940538918757962818539972663363543394110868046264735236497648"],["4551001592453395197304637898381050849248234945529777801547618641389852509460","10552079752859539540818773334895395657926606683126152087391998122683239351694"],["19461898038814150517286164481027982033275694147879843804182916850292593707978","26470494861507387593426553518401941185594843340310828358758440417956138006354"],["26493933969290668315208927157589641532269133674998880745551516199484978758763","5976234710127615107104260633435270374809261091697007464563912706560777671838"],["22908716039541748247727708079356579041288292197921197936302936841373009082674","7874120521880171355934767677223643878555132883932774730524888239733694817532"],["7293705768113142820920647563671342485176445514351320600129801578986809528269","5420247338910567114150509826372026325994713223200664286218608079979425416217"],["7779933307331142551425902598227822447648251957984538106176062392292577453864","5926871239356952499107987749305667253251055603510652125780962352751335066343"],["20354691339109270996557815793853033880735458723055541526810246405990110960895","23505776969278078499583883480612695327952621592264640081471929519408050595310"],["26074663847187865372058468258704945503940205718731196794159942790786806627734","23480322979516952003736693262662659429514618046864937531457986387040148782249"],["22447175772716457792540533729464957181304623516367662308165026720125855741464","25606713050023531247713260466885346614916646769347864640572232696835128950724"],["19520999671194128526677799793452712915940345879184634542211722792632611963862","9821002651717652121463476119792263857677290858275745943030335444349739461506"],["5405929048786252675783170534603268949792399041853168766651037958963539693417","7190637779316891379522416099156705810602248531652375482494913955840221817446"],["18484445272099360685260177694554217290527517986102195919526467081237044300146","4644348226421809884827725228674996146778764345935716795072196565625943447009"],["23063197434889183123429558485773756156397157693805772492828636843135067356834","13598468643918440364408696677135300667930763976022510775563963796950010022017"],["22127141929432505200173481421325849416002906183048235907457839806214227552988","244420243214994219554840404780920735693683162346791416900459222363385936266"],["7776951847723744585002600838993160254892057541333995756776122569664961229718","5116859912524160434702026524504552329060179725321086556032371202872738729191"],["5444729152800574580743676483659895524560169372421950181081813052622300760605","6464503476765206537647381953801299718086329333542472460883730535200549159506"],["25057539430884133546207189888012430619544129968266599917071772843967020711415","1694327349365277318863532846896202644153129625009500378364066989690795318564"],["4539421290060329255750222721757085085114893363747121428061999103966848489993","1295763139637335854438157598366975912921350125476964526478117812005482953720"],["2774316269443463142401132933185658775931622998758579797635314934437722149779","16644152099805204333104768711799561212667586125113180889174776164058055918025"],["13724730228837138816372014566692689833673572947577016368019241026346290513020","8223042591799259712479842931198315071790308936679651199314170472796784258704"],["15533545547807630633600901772126285012425196033983198460242454789702391750066","10146715542814312507333717616996524591058010340648911165962116357347522829558"],["17155668890615139741893907619811441751281511334087226588600179250256474526369","23089715607768264857797029180690258429899388423734349923575597714729869700532"],["7017237525428188423135227822227764107237499172844013225155037945415183304161","14405087928436658541223994974558353740208872832333469590664796277059947833784"],["9229426615841238544240092805241316377792595485263830593834562735972551142423","26562666849126959327361449121580331852368893281318439311509566734580780110031"],["6884851005343653348788123947900230031701056811323986191775528478640068004295","16636811371197544431924519551161927984214670277105726098849771730886777246884"],["15882421731759585515464465126876017097266354881176482167422153908137875494853","13983148538470733429115304888043818893591071235655382522361801127852022114975"],["17912677005443175851001833648597914005483161330990800744427824027476303496167","5608613406141130028143464606291483848377993581798346474607964985933272748346"],["19723928906392747224874655676905905711640094721731135546439510629776811507197","16632596113452911428211528055713824593010910707691209174562617559426299554871"],["6940915933103309514155611421509481704441340114620865248264963560520337498041","3007494702904239412056257432393620379664228368485992289249927357522078908034"],["16214253758754951450707083415060377739108517201322758191851618359969425806353","5598294756874027419620447672443251123060334431956931508095542757729672736593"],["25712352385153054998177466492614926839389162039339410929537260405184396249163","9681415839671602880973751439648491796370538406781911367468316440440411944247"],["18915841408536852252579787160628839201794363455108474066443930404256889977155","19717164616486559280038256760047947577313162595745127806492396836950475098479"],["2887830583233288754763501136283184992117499368868385896018951236029722254923","9672403041080852868577955643879819276347452722294890283461410374506498545122"],["11894928654964786604724095640461770117444900934183332150268505245073571036740","27985279059105572701361946329858876301505261167877336267404155432906910784041"],["26938881590397665294755266274060556864151716409476838397700869184591008276709","5361721512936311250943837665554315272661171053370358699694977495491167942249"],["4709740114427338089687417590143002825231537500000612209664054018273546895718","11810597913306696787246094199535496066700881618307591708326601980664234606927"],["6039244713455483543079700023628190747760707961779610742697418313728082183478","11561811120025737279020588553454242026344221129767580360345067060897071987361"],["15640147130895130607236097937091439110879533215790252708989457474384804816912","27366065809056522660136800589600321851340487435262266773740620476761535335384"],["25089833131437150678452907478263709510828115656949814224774895056920028344975","27703636533002325330724595875834063028350958011124114686809661056558962902566"],["16018901108592251061998331842954302583356911038104221255626540495617285622859","22183957597136564501592889541755337459427919684060844493946297814683037170715"],["14597816671853381386519372318200918722674805726033297440360707050561334398245","579189822951234446521236796519983619721222181616877303822694562198140913136"],["20129179942962457993140234270852393301106270128488188103999067475216504908308","2370869345057535039925661549093998905527367444015782289722696059636030083852"],["2366747883762185326963066065572166648620782349269790470538434194079078213185","8010343738556047264730305054719992843368467446949858547631240067480937671648"],["24396447317194064818567720670537195369549143985325095422426267468134050448622","398214084783091399136713339430674156674015600234742423010681316057611115979"],["2577083845893865320796566883269045502238842402716904084541536870393801588337","25606644651154410044147724339920573325449624256781088738134709671246667583687"],["2580939306199301656904811171286418168992245255914789240675811805001199910449","16312367682390183928486996206105478512350444375797413961917764640485581027038"],["19144436286529409083016671383903428386396029219127019145759468032052376230204","6656419329483127406126115719952732533981869423842445752749187110447773648287"],["17120530201842783369533840075696507207541121380339322646092434820248042799645","25852698914443275073741760208529195060951225058282848903432645312763040047525"],["11682331571998739159108161910657057137175327945119685391207774487310023147573","12098545466129892041957535013549852694310927451573345484867175646949737552353"],["5552404485105777874278258073118435943259894424968684465553510137846655856456","1435320951861979074498348978600045540725421044183356256434127782798106092591"],["19247379096929689100574579009668515101648447001816413643072253697041444104443","1531377301029284398758991087275828271844480465079590147933353742096242440385"],["12366409654049973162199127716557224194742691792086252330544457693650273496947","17383849369623775501570227984943416688964362675452267216663871609601410113537"],["14850882365846704097213564727288560778484100388519460971083299734639316638118","28532465263251602145979298807975406567561209031748885454025882822769446137991"],["19117637365357972191883186745140173983278943043160453464506272147381397455693","25956886851837289131106223690601943542767979924861193658304045108605770943574"],["14865304548528745822993877386696032797401603236994540661825680799611169057682","3503707458175368616566186173697841239015690840731620039295827823616309584408"],["20948882429662044904370757298394542796436166802639316049577851231811225009541","28145834477203937702867377765265229305693294975201076166644099263598488610212"],["2821115581529278633954476182993579953668469933253981021101824197401763930257","7376431726173108195640406216030434788067770155404775023954612564619308768891"],["6295792112188071222375938317294413677693480967900698277598603409076024563073","28826297348563848933430435686573338726162329995240580425669098927837572173436"],["16116269622854354420598389259774696885561944404508169034103096054491004499082","27378310940142579532713886820798630328677222763780348084631624121480297325272"],["20243682107673772706914992588461171731564817447971001797351759394279112552266","19398084390720229646625717705331867329101416652937766032968249622914174689113"],["27683633163086451333285265585610841904587040137519250857300738640441844616898","28304440292387569723594886949778475535090946105749169581587888491390683784821"],["21645379707713756067897486623720524619449485874721593031218725508095920488679","27142883457164809442932352319258203202671299129660081191954315712276752776172"],["28523448995496755662388192891800601902337522146911789885580094154250756001314","18050392574515379347592215735400393455868738336167614195511788757349952390105"],["14678171493980143259806473997764304947446344075251259256285890862625328201999","4675695315171246037643310611822133904302380088502046927281277549341322015693"],["4558969083905039200497477297593231263197677394907212976579068232243785596540","26718755609044068327701292172784627639971972218538048354139014931600057373969"],["12238594558925635982848271186647559542793007625061006083802175230309928829997","21473404336061353034473875880209018445235272557287143961516396854646674927797"],["14168572022011414992130203678786736790589181616668827076824153839280182253102","26478790153376231304970303678495162505407762147624874288998533379600918278206"],["21489699046776317825767813933314201977023784810010132014710184158789884549817","8521741802781494480275675057607415139777228673690924800731597719413882265989"],["24623012066474809983421615730366741626850451892438796488795910656308489778824","25504556742344405056543670701234149715820635060811341115016387757729589018319"],["1299919949783006323322219924077230909500601130781284887306772415378133644659","20927775665189122182654593768782160086403548910071222889980110919191976465224"],["19941356877352665883470456317192083325897132084627705903609875502562602546668","28430727983506784668064975914662637420572348916479057671505245056237492905689"],["2940897208500641388370757182961164231479123567265192372371793588166703970592","12575414905786009818324511979280346118873968303149997821693231932293331591054"],["2052220667385835765757308077337748292131605946318182171227020991916374676219","15510009426652997465537100855370340506224106881714741739326904681714404746575"],["19569230413877465663067641638232034161089409578047822478165685570645089063657","17177155163866260620853822664365107419339441168294435195320492395483191144523"],["27705926638392239210371340957832730633829427281370713470450002855883110604899","17863799490792440219688848260492885775614021747231456126639504302296118590936"],["578997968120061880402421631189831366791993334011696101387903593295694764904","13292570730623296359063077610262793675332501210713330018016463416141211600813"],["22681575218671706532325797733891574662400889769572776773356334435736763297","16126431930070704328898756574078993296234100435977881761616530597764874458136"],["28023150253368337435383128434407603567078832658517475261907317568967152285664","25750584763896191298191640593446880905375706787191371019287773944236382695847"],["28800749425532294544405601440056082885877034458280389604242456393620973279373","3180051297904206723632273961681551162644704831423529866073653406843146924929"],["19465637609839700983696611256431107968519083695516499230511288623224931445682","28274133578268395903938836562836925204991772012201035837215097402772969539442"],["18984412820634980613480233391851507975319366300951916017595170057019126105462","7509302310636299264171761544779556721115716140915625726303937663778048558123"],["669263948265256799295687757239676056930717086017535159937189532762347867445","9166946073560282696340013835024694609598454303728183636893121097323550386353"],["4824024517140342720544940725990594369339783350512643449082279804968301923322","3217868940803761308953126833410934331020678481110908167824163516632696163365"],["3899243535320247377100408892447907148314066182185773676484590388650449295551","22424974447562113204301639314177358471748333717525060630502239122616274067642"],["28393065963177587321838700100242250160745073734852418600893709233862026792160","24317926807910757235814910588651378575163073325144959032216479912984615316037"],["21123900423784968620597283081104750902030544263534447216447133595111579925970","26490937049227183769675519373922081959024571182037960802486571989815324967926"],["8144025812026724294479704917516013927908775179334081732342160064584373549769","15780298412260939026998844723813088672225231031608571152843270364726497968021"],["4893600098718067957924579483124860622137551369301869019007558399529246674922","18682973517978709593262135939835296931764599079824321528076691352424368113365"],["17387334342135046262877271565197365649280403438370966958409282896067039698101","27553660513415517986926439437061953440223631225312870173850963958855207040001"],["12188881465069188128168718332253638595178632008320713118074501352935685616376","21213718448667360811923289258195698884652965016618358194964168075643312183216"],["13854622571659494317829043221741923886250153975504993033678764722205205020051","23210100488145692509607268797835986569339791982539315294341959870732724918093"],["23432517518513562117702105632733176767784894210747655581213164997267485264846","11059827867219329968100009132456044963902027030098348597392827142983412932494"],["1817927958589403531888720284859631595354402349134093100452417081441222479462","7316299508131047299666568681790008307380489785148851850025910102664891449743"],["23879466720219537548381008777037504530747496662405325201557407032112782616324","15978462684859615789262648597466615526177713551977684868583277095880804988424"],["15333526393562945731387381680176376294668521910986147886896902771611057684781","25293577369363068082706344854804582577890445284471485036008883461418176283193"],["22681034320653583184684173386751785778003166089912785095935262052728628422407","28431226177635538821951912785360396663410802088135938774245059915795233366194"],["969754957734276116128448111110559133994628978402723063290614179469242994563","1275306241155634829211093412994601254202167251307960363099082363797626966426"],["439934317640366231200395966416052103894106402233191231439193191570224641837","4256842745898321446554909473659047581265877894865584626170082702517120838304"],["17299599996414742337026188031473671592911232006411641569677626481868470255210","7222768102004123395068105301917073723833522051120215559408171776843052630589"],["19591041209653310408746139165163714826319651475725176131957254466420265729023","12937809174618050545910955643674400129623853852225631374693230851832844543754"],["28066653905020332588506626171575322411671419941002708775592373973855367772000","5610214259991375346941541608251525014223329390360385004556075989892997538720"],["25456945932025176370378351461501139662456763259629204372415356219394700214787","3558807046573438825340040277087335139732599082800431507036092689221892433656"],["27008595086896262421309690192260694634635408252811589445578908580203444249205","243111530929123122297289812882558703456205966335907151246833094844805413088"],["6804687192836948056971130376640536626524305161924754101637536276033185780796","23849368593806938631772156188826871230803280232899588120720287688523034703690"],["2575196555264184108997193447236249231560052295281951858618706318648308814772","13780888492822405418906873917120116392257274053196257635631176937181730726007"],["16246509870846788523295954848092374032402240677858657324690183087804270315604","6371709618928148567876096795295402097327408279502182228177098366469592177841"],["15962465572417077624555254553992843748773595983539479135533067534753867038437","1989643733004085052902902111207968804382696050553842078453849625639980205142"],["2823725801006971767346109394153250333797975693232772722794942674562366174943","20106297652245194015594828841058107301342559236044326691344046898792636044575"],["25924094841858982185489290463341414618899992937789042898749082313951183689250","2531608725521409560273610449892177190591764971589971578894733470570582019768"],["6173322993596824270961533298327641312939799742515436874561799647366559583989","16683247109345126791317822709353438273406303568652200466504646643105894046266"],["12892905644834401420748327388003126188469005920304419558687397759092623042345","3100182495003679987438561279984027619316746378917297998917203873433548071374"],["5452326543258173275206672170418235207236045984521630803528175459938418402400","12352920181825250093000138713355755580312071905659623525722929855277499751823"],["7054520286025495134754721686506400422527015535023897872640885614618243809042","24676203504579123720884463358713234568750642062029715911545345859531941927010"],["28226390013781672963222262709490920706291707316168794372937337833477969327595","8345718323542707815850086415996641446972319498165183274453356491178161601313"],["7353551314095547335378652607367370547220215356956334689768677508882807780445","17495608999017516551655213747575637985551721006988283036418132307340271047028"],["19880356949613824280762148297550184827154212054932423262782779150793171358144","19287311309117798279506744647259031718007505918185638310389264646363365829332"],["3869185984609574199390147109452638410672522302377197528829524285340176981087","7177124909591402598592725595091893222827456639132082629658145711612265417969"],["3479256907678332688969205311809993674069305529224426586358029426322543749690","23166926738306848325320866341835085133969327765340006542805941407248606221980"],["17009940046055859450400357779885370121553275101062265236904145425787527367516","14554462205304351067049633785313538953562971927553155424934856593183700489488"],["20232356857992827716690854698294643123563942092494748811330063272957552059341","15940783480495218877855321125847243010250156292144835300539462318777204779057"],["12487820851490674037893895351785183357379903908843615641391944500113862625962","2322024036043595180627388631046223724882528370471217543058172661582370264850"],["16199703691992847792196907501272084738840906805432863283860020889020097817824","28928364607303660046614825947995665515569002300406149246032965221828090134436"],["1163458746399866299815187349451052076272820478694315779158168967908641074408","23983780531404793062817155292793913197173229751516394510360580122024299167528"],["4177240908649323119234407069992186976224303788498937871746194126328718456360","15665104664776418973236378596891559780235456138028161189316883110609539924406"],["20930164094095953064595404676616767391528381532252340261797594514547400749014","25466896974713167395018640570185099884428885049590978243529712070490097618632"],["7587707929474411142790505784974193859933736222801029421628283228548739160023","18621157213761343994366036228030623156676028885754677096613597309670947308803"],["17456144576385078274388774945435363789421217414431985826399871102897845088818","17014493890491015531769817430630097120198749954834660850766921434977216528320"],["9475607864090262320446337951411873347673908460621734232136933612588447979720","26733623685816719068931575719241339664993401041001404687301828707617905307212"],["24174168858671944753015427036121721614643151064432228964757397554079707746874","18599723467382835045306084307958790568913659521705820472785143646429768885161"],["12601026009635235594624120565897410404969166629573570360300225876058662533882","27852511398918903268494889883697792430560532364783835529361112153324665089325"],["16210619124776218884667338236427277958747429052003057827496684895244395217961","19577688243773321436458873697737261690223807821429783528413682361781633625242"],["27522895578386465241846240261218635740326289697210608780305969053204227434293","8857123216712810099669760518426761356096564560778814122158853575811181976717"],["8771633806057281575882364124856619846150299085538607443380569027355142901140","9000195491377564156150836692189775658969840383230764667960668001994138896370"],["21475557089697014358853181798396066508133580618962301803431788234179096806210","1246754492738787434403608729800127235712037739384463437761013880761298830163"],["26576801252924188406649363809426404120059589917773886891766812686302882287880","8456135588973804210242283657256428965687365033250883239634198956262044002391"],["19077232893957819239877635062658382830044512909021934993169414224394697297161","445213991808053649543186270360571901718058549958779335877395481511834620365"],["6801848716830510638311833704129524406887789141299002261994899843418336876511","8994849316771591130297312647732343280034343952838479766601562687031718874648"],["23481214825545253398178195177938259157764391619224839210706117900216144869905","26399851699739082000954994795883796130356923502604379300261625959785206759363"],["13114589587765639602157616850114341245642459895014439011955108567567825898554","25438678171987074528787511483451592872573588298085371542236094579137120585040"],["9731424373479967612740160234648405205165052833131220192861450858392689625189","27833320330514870409503187275438072956749747851697402411038135393133172550781"],["3710028105452889661325869189907877118421375434231326534260595923058546429252","6941471792260124687369026386660235790386075085830897971834915245898102325436"],["26934750697281392553454317145472694707078031979979693404093291815756531646033","25357440152340250605102295758384408773264803713404278958503240375463762806222"],["22068474204628950114266706736907166827903273977948101415649045418986346586590","18180879081991323936107430668411056468716777664740810814956569520674716338138"],["8685415223587634566488502902627525093438535421758231675847236216425386731661","24771874511969048475333434698614659522242661372997714578765537827603554334362"],["25756046666200951327141155786560071522109990959143338035926308648625280953966","5555596311713250798164295985108956921991804505290797672040898719107771483756"],["1690776256900347633741481981019253677689532696399047075329533592796175984474","27924818026761356612660804076468113749486962536460872343069305562627461145996"],["4283069785529816286551235222305158347882857551787104603607873246032923868490","7718537252884538506777424164789989329301341934998678911782062303464431779621"],["22041162747622283662071417122020386783909629956245717109846615824137209302987","24700720958778362771181715123549895648601705346058291708365891638496050140185"],["10397739295630425340531109397973820973419995450631230721118139890479839505372","5029111096264091347646986806799319969745253798988035323138076673655273909797"],["15277445058146126184961232336663683472880979889054442161012699855012298790021","24265548194771724329508295791376006068230740536214417113470570220529566660775"],["19700896749273336194446654549001521957676357151979135535831257953460365195607","26169521111113109241171277398767844416617165089419170324251636511665169590373"],["311830814681140264904401860666738727481665102657534224115605996580591647252","23334974379065063025978682477561437615833396900992351568670376595397749460824"],["5023314090416974248858063705931630180863937045902752827197073697107140468507","25812155382664656888940931660598406707097064834864765939697219015190171796476"],["19983588223643875418350057422048987475468945588492470285607922513698488967428","11795622888087432625293862869654886087162776279442508483168863460312152734663"],["8356371737754350332384223653737405670489750329737066601002225349676771410900","28886027928107630038646302009686607370470287166264323447969328022970039905765"],["13463145621028123762660839261188517013072836419423289248532363125169112598954","26898244457393680986478407261793337275071618190696200050347031822644030914746"],["7907059008416411943793019685707031694796878630991359426530882065941275270685","7838169634311557658106146073843934495490885818554373672314805020942637512965"],["5772234703036023516448929375183309848692710127689634300419913663422861645595","4001751310102852853283892598721173301464681597935325828586414809843649555527"],["17581196225456186212824938767803090536411094411400373912801751960549598079512","1421114855701150439916021473658223423423542044088896035512773647505447481795"],["4663754999899328446857415416500436251988172712815918372012389895088105310165","7914262352742827466559280745414776457743549344185276855919866557781285485820"],["15053388720332996808472992005075689294438339257708759842300044602732944473383","1767759497763553561435161789514113857933754959723421965717234780628929574826"],["3355829960757391926612912949218864304755132723728716833615475198127231684783","9301741270055165098421136142584033503561435510874774614715685413106928796983"],["12465719975924760321154950683345907889310070125225612751782808119012500046563","21243356732698469181205512313588362110567240843295641066487331814927074333280"],["11618457005370646850658552317635652110489958412338911627641858146978323589986","17389078709612407472912237682311466785456181635905987432025188804987103967042"],["16163899201008767740065029164286659651949622746051324896837530904953845599031","2788012933073236761633817004805346879959017386805684014849667093370405378622"],["26464648310306318615525304196559249334195270625310995105130699052802851906810","15231018168985338214101685851313837066330000865037402594729873276770580281683"],["6201500471911341910709833529057289290789601579752148775240904510033238548272","13004438460722132814441964169405120099188219521364388417237120739441871528867"],["18051851861903410059186802692648427066846568440826003184462005531082465630752","14819914507039798535906210575250816960123093281269808849146763179415027110868"],["26785907122655135390759234152131964326488604386827475609980893795034563995094","13482001692011423055718262631283502428450029119079102393651667207239786447958"],["4578556435284482104093264881853790569841443881541322657608772976660190616753","2883252080576001246259654680160535816118449629616074122874538102235355280016"],["10849214783273289585696409616217621236216409842711688808922011905370500178749","28207615584503119031613701816675167932115095715897356391758755580182532546758"],["16271315498786781190993427021934947365556431467188628351741295579362613156355","9903402480180091167855805362082795733347880840009872853860713565793455658420"],["5656485385736714183382699995350754311944556552851736251204753457177087276185","16193960304512066756398678310491583089996838284971583761152141396138164777905"],["2789272853735717854187104720179818544895297326995185592318708550380938026732","21369107926414543400867759678129245134784861607186836524348210397746684335354"],["2733472789304968941273603305498558390401834687871612159390676183885328166510","14404630432590160496734460030285305953543547491474703107164763593006069158019"],["6124420262577997483213485167464386425204966447710176091229742977713795932884","737112546137755253823267661664754726692020397345594626056493795089096593285"],["11200386571667868469283911518789656262557591833973916433137584731293590540524","7681428650385951537965352027724591332457274800230488275843229828654582056546"],["22724338922809332893406124613976083352991347247374020958658687050193904166901","27596233198892285129018076861373672394807956499398964571892214259134934781731"],["27106076572363769409278870920410236527939836951555341516035680342864296603697","5812134906014812556819729859478618060207379395666942180329143760172913644568"],["2050319941709927300497399699785838922055028015629171725504778800790206815654","19882541717375621992511585400839844126136430382619190432805006755032353506687"],["11078922950827096973709179012717364886477307309099514506158218380588511830022","8739702523371967248148065137819948969789008167698437345607027891139962073691"],["9557763241402750441784757627857086214557079934440573101326008031026635887401","24411223130146945175988076134779134666565528822160122575664452383587666470922"],["18127845492847487182962443557622573090571374898934232895659889180085491508845","26181022475812281166843473820094619637404737400788821369827562752473846699637"],["3028257874740792747995775794273076149740929779220195073510506173740784047488","27417911733928886290601946957196766547043158835759923952130364903871601880665"],["22653298581943738544595247395181789164438179286767704003549271944076769274138","23204007363030025082204216473181652122981789270048397585440062209800471142944"],["16860349229334880455583040275163742751730748072766802439269092199290893543085","14013765953102670574078087821700060501174615767224068614528251943384160366939"],["13287597551108793386740362962248163216370494994422598053412527834842494480216","24801558915316523693138834699294041115732268496261450629069403884534987803212"],["18674864127269056637675152160323688974223730057840842002501079323930769934749","970276402677088070730521233197866938553769563445302181606613158752003966757"],["6935588183759766257398699789426460211303600399787082594840814896448929496475","482317737674119958773575199095212746905626035135309079278712838891563896902"],["8204719638758025482194446279871812555462370242876304731054592166576328387633","12113747111121481387292099430176479526319864606306119594946066420250117732807"],["27392748129971064252212372596158946913967013956945324553585588664745747043914","18101133453848197029667920393331942236125033834380322840553335718956434261475"],["12816615575803288911076115236462717128276045169458350239787676320875703474427","8453231004435648037567759746908216544752258974933586271734125961017435004893"],["16349713804174256941737750887686530090805115056238709410789085200034687615791","22357633208681040475552827488406398875869341053900144402098491468722322806699"],["28102148414632522803694670378413007179085250138174431077398752363424297529196","8016625986925902367085818732806078997946331339611891225362885848637498813777"],["5881645339976166920930794925480330740648207595222277985919766309389110190529","9613355438009170099063116632623591725926134969084519445128222709235710829673"],["4987479045178516755410576094016966451040923459802176367214930077183864819718","7952168430942779480923157811466837775673968671398552098303973756933927125292"],["6189102020140703552725030263144894410990517528504858477589212854460349360610","17968076611072127321797194615242001655968459486980008733672311940987863792747"],["13811037023714374636895698306498627811256933203018998212693843588676692492353","19423977468424878631352756012851911775512621659961024911981762191346090467714"],["8957781158047097703041403897472539638023796021015030981292009843547587783006","20533167309241036925406579665101361717099192982324166861216899131915421573312"],["20113816882093734801316651893236747157402896313933376416113149941592638936427","28220110708143363882897230282299019208103010529304884528766746643434328792519"],["9175682301556794854254136198455167773705713688819518394141528205908943335577","24211226885743938696209910491984736938497754911340798170737413051261853262849"],["9243938836778654622900525008802229954788577349623724731274003134079059483691","23115395441546446801038533430783953939991450971091427473064787203889787291794"],["22398564260110806728511695579673075866540699387219602031999812566415818902498","6206152212415484523583399441295151716587656213564869036572071268387531702077"],["1490667951995435255352382080290793496395142454906842411549828757191459527590","21032476375448455442220199829846934218273309633481616223742423966592314574785"],["2273013196531029558558767779124599227474143762035229530223218183235914299736","291245311428845754615801592983536366810579969727395060484018301649450349098"],["25840967434184274737773838574010404764514862161319829731985523562901440798988","19337677220869913959937150840872535093995559249249942038865281539638451930926"],["5501490034597579770315018261115566830936874454363162233566976306431513942302","5330912873063933503029902443411512937827430701234228786394612639165827321584"],["18706246601084566097770006811104721476187857290036133873372605781364069062061","1025057814180706736064181588058052246321483253880852643390456956231650468765"],["2916066077902876055476902202174692400837300485169362067646401847672626384289","1041808226794485954243251766467634624706249100577421605643108663940609945865"],["11420339412703304684847719840165089615949536609644098006740131157608480082456","4862849878570545424692445198771736002407873593709326353407125767770360308812"],["28282011184348394863061229548953939033891608550151389066178369268097712972967","17484802636070609728890478453050138084755076311422060123979063165969875091387"],["16499821041875693545294260112639864012207139895560753246362207061848117247513","6124897905541389547076936679863377934409159746362865603862102283764161904417"],["26571410193879018889103563549970912264948180396300262138796471648537240206525","14686368943442053715162533277139393560504564042094326000600631011919359224376"],["19210201200041355244475120314532052022850961178226593250389651853033320712413","1023071698960916019934583458714777930970787090161966704722453013812495312243"],["15961833021795693595863063375863877016468030200062968159020857887617122619181","25498278487447763151879721583084871790364198391158489822979673149052952508589"],["12434761726869959544129691512093273507168544342268449849593468034558079025995","26523939606602056986166831806101428743942631405946192503799026935161011476706"],["9562641469491436205349343557466203612777402988007179933698147964138550836699","4747714374187546538557465700368461617363905069485560716239697690095420457006"],["21208772278881547025345294006304461753936453668734953922746903452317125472061","6018903254736966489963696634786153296631340216638734963358015341210674151984"],["6366789410434078907211144661414769457430731499513598129483961984626462655106","23163426237472381347001493391974925977859631827918449744070619491763285943280"],["14021520703507628383378075562286787777555635259431606384522743282948278421567","22352969620176793831427181085290311571876183465731401250126103296193443697722"],["10191334860870621662261035265414463242676012295808401462890696901529634420181","9708197685257301792074047838169495783895451829399989027495237886011003180340"],["21872578772406403122419565665241445177489993578383432048550080462714717585309","2269087933934076034376678053349158326294563191016190430612801525375677993818"],["9305366822612502864914804929747026929912449512535610623772546402895227339222","16241129392828519039766800812111054676396646754793812099465146988029041895033"],["11777920471372344330470404965063448003285780746294157405115577083325300125424","14315671484098311160280756466399702305963000896460798619289055949444911059794"],["17113514155603861086949402527642873385366438031559182369833279097163266662271","8375062199602706897880556201555389783743656069992297345290205356296259133954"],["6994975418459868813099438063108232093473776572393189301252055205369644485338","24200801553958062184640176632400020904688628249759949634017747712752972143053"],["5755355834233047157450091196531441554775365491995689664276837845180947185712","9685096442560565771551581114864918293700101164742761228374759526283492704603"],["27730215010954519822850442113608905895344690051284267621897548262800858349893","13941170789121045090833124241157246520631897626561385217081715525401037177131"],["27912117657235629591865298816932876746705499812310976556625305582017742258607","5535860667558554846564527442327002392154328926529413501472948501725369604162"],["3407532768612550889723559590798697558265867549971919397959445199290975147449","20705706286707183986996043502478694090760320349514174035610759448697353260229"],["21331712273034884763632570735602818735470928184078994035034354980623863851851","4235975746814219683570729345844462401316441587402192316062176205396011182803"],["14465276634432957949835305496451955228454319673326165480164278943941374052556","133335821700101704817030945442961945199853280273059355966123501129383273720"],["28677337454088251741965937078086357160445324498327894849861033710572565176687","5202490158016135598041754236064505227233681442083096291709825693852926495652"],["19920335675047537270869000680420239029136541265032288862846652028951589978178","25720173223455779093139658496952003140595163637140813827692932258697440931791"],["22704091886323929885394539614005285139132812050714589792903176470978844256796","10944884336005522339350048475656795962266967099668735240282235676772944822965"],["1431145962944679294227593872617927332933433830728747340135699307611810936738","9445082209505176142189211497108188360834840802844485949683672715874799011712"],["7305937146317686761242314948614420628486143656846783840035260855533400396453","2281059925477678121420490197906757079760106828032326046179348781557147140332"],["25035713315695596551081789168881369706482474105691546760481914458365782400961","9162397223163949850679874442580762108706083214458209124733343788764345664361"],["5946521130892799890537133718749796778309070345392571920079514416789029901888","19936228444122603734475811651280805082529402709925386149097822850682485921351"],["8361831094475773593150720241854397991961594812867659753013297283809952310282","719132411191764491751203770191486262372153525425727916256355994237368847876"],["12598336998467177411603257206641113072283786114378110842551512574949405886263","26051051406423822726641951530639496921222224936899340545777159462124192316188"],["11463883330504533618896721556796676902366821161417956474251293077389083577573","19473451772637208972644110332263343894465924577115872493431509205072402816507"],["28439678511094516893729897542606149498026168334045604367190198039737496273057","20547918597534697347752326242722643704038856702311849486640368057045207381659"],["5327071575334649455266235078859993901625855580352484714274734063794357010498","28559648209494171677470804283993012337639895382429394656380614355565757313084"],["489252169685426071163329902144193942048099809161271108651535809725942108261","23692096822323646240055309382801455336866900158661896227009045662028545228044"],["11707738496822224779118673337247153987039651733568745773991153094449515854972","21909926695348660438862166918868721146449771141820800613467664076302223800541"],["22777598743446524397607541489557718986878880094496674944054928201325475138083","21345416230632373730263552754107170955485888341981477610159200178304381040859"],["2477070748634029681089858534492132319379932533258588119837851702388035914473","6445974866334550844396702343773033912498897383654568314556029257188750012067"],["22609531680335407062283750933900390608733067860806708824050652159289551236545","11858575895733463249420180502623785589871344812923063270373093107168964776051"],["14117077182697826554134073331534342430109765989740006731652954200127726778757","14480032135623928305459668067063158821249840944174384869086446523512105192937"],["9203738849154618328483260405576852822236694069562460655608403428025299125677","6031166139812343361272164351011845505626198805907917132447741128567114992855"],["23939479145049316152958726748775759061807387850357822059751818431280353999358","27349707523789174991331648983850333057306484595657191283215617598309903596242"],["26783703262823944300052276259729211585576792072853433138613634941208733943143","2091120576997943778735328568617723245685351573342122746560113751726934415305"],["7688144431422610299457040098593537965406784660562568122368292792782078903980","11677079141251979964347785389908282223654498263050825171221951951098790949229"],["26607367883125507647396523014602161581758234679577890217303748822884782679444","6318795191386615582596369976081049216338851751862450995328103209117775553035"],["11822934400649720966338872941740360432317104616041770634518478701603770116113","6222122593340628179658659101500583219493316305951213642296779643302201457230"],["3907373385349817770854429112024488560534386255676125840146920046418117246364","6350643902559382112898746195514869594272196969446817412976978040685311640376"],["14734054035997621649262800266485673645673038813323687513829618252413724498814","5062361694831883311426191539865710789822578042657511974056481960882219835366"],["6552742922354811770030355264235061041104485929512675059446038702614067403396","1508533332046895572327573622011929901945130206650731595255809608346366015005"],["6223569894067398042570315184318847741834173999825028870629621244498941144779","13083877854556847136315098462492211437835922345955040786636424946729859288034"],["6843752482471583079630701003596360576306201145350632855803431997359044561960","10774041387331011110649294551634286737505490865378528995858581951674658220206"],["12213251341314575973796225133753915561413559575225591958463759256179150360658","21817801591098800578998926255177994037944499357718262862225311804458717848223"],["22214873627252611718700969299576612495398967669924791537517264546954972201368","9836828262615665372501992920219264901315719757014287006856004235508995232489"],["5136827716639345636122235607577620705351834536655345639510402276019053378447","28104182157592599451083459960204636837804174599104546927665756418031771239693"],["5171951618183937056452688751582966569884133932615434340621700737488921995505","10457095266603200896588011279250851087006891603122983392334193978450831847440"],["23604037300866161852096418195269909556672892227310098419758530116360138493875","18970713014694538695097867153535260377963102937728141140169688091224809655347"],["7159973936078909907473555959479619840663384954430061094622524624866123222732","14346872229540709966231878075457089831223036926880492909203089887475059733270"],["27794662556331162222384494307570073026427071600459883904887169522885047492718","2036934987895971304722971749846959581841502398547891990966353065285252691988"],["26677775775600291155486431434404788012682369663320890545970468318411891872681","7947605726482845631636304315524357857218625361217475440938730707579997874982"],["27966732440577735573467286029024176940551087957429053653038902231164761629109","6676559405882224539198102683015823555303553693825397367511859677572060313550"],["12953603910949532133208469666626991147638838427968443153358655550776539120109","21749412129155491723733217344977280938117658447557044091971271460034265391665"],["18365186137767728058726830072484786094060591393598229177898711416667172581006","18938231566012464761417940179612384966699202810259026185188388697280786991613"],["25588318081352881037342943156306071373734216172248592069005864241250227095234","23350471601294890253258868132071246691695919985220662674926960513766987118013"],["19271327033539413974456570178795410993100948352398736966613150456196829480921","18105169403088454887009386067985264431764977828553701543880184243411366318357"],["9494684792676309980099182611187363441028163050591624733283936104608731983827","21042695072183577781916412035684978614388284564954511810598612255236577283417"],["14236231184859888823513506412268533045983305998399430258387913934087925112697","7944609050414559194563509761714334471022511612528008254100508298476603515342"],["11037541079369198055076503715773877172719344786149004953194246745122217504275","3405491172825983634396799254145685857389217457273125954383486624324116623211"],["5052739273232162336412247414522627080082230151702410756068419145625919133855","23409563697978188109454844822485358633033934530990556813018706607898021044402"],["20626806047148451605415699989605019625685359061088506556633124337534118737537","2761697057698279311072553306646162822554100177964306285903507820913484722063"],["11171020348395326139997080711683406360288613029840970921006860110470695881291","13569906273474401710291763035015719828603299030282135233283822797905123956195"],["3891690665580717648321492536811205148850011939047556732157718599456266010487","9909604365484925527619652844428269191966148248831289271997405438135095495245"],["5426448512168216297471449870969509653188166593024426475550360848801629208680","11976140729632890746571057144711962333375926998087456253984357953268407345232"],["20656343405008091484076617484350688275265448945529671725860838947460147303434","20445336068506431200221443772372519200157691790479783941228934057551921540591"],["15512380176450292248165363058426847952044906248749364845004202693220693751960","28903960868548363105356888393243627060782210393996415618457695697061316108756"],["22936665779045269209839474826994988550400271090819779384707056865779903384602","5217675215865260496201035357920545757621821966971336211952193235106185045582"],["12808075941778739993159952481751556241425174083109200544138145835503312665049","11067566500744064952191678211829689751890632665751992610852629337345115339584"],["3978802525990975058044776712671493588724278461119276032044483076484447608902","28869136665535390263804030843177130146544033888050988705541507078676016695386"],["23321237108216382082505305774221499894436366226148886691557878268264513237550","14770183453702461081391427049682288663961921576604284479254475244736723690480"],["16081222924730311024893635853275724906960156119620363221004668078484014944654","16160142223592750685745097989673589671902244108075943276113814082143056447589"],["3717362900426688030804944789665741171901829517953495407287685344957828026569","6805803671565347251219327564321355533145120156884897726641726546085130604982"],["23502409191465909870194390802765607211799329709189210253448726480513051275480","5730939179693523538476490336759353354966274050815093077602789008264081870602"],["7567192588399998013470246346318368301426749939680290819488584331340813441384","4094906706054582978116849633779510902316071503927818721583264911492101292703"],["4700484246934635475080788197904456206849695628021113587189735673440075221725","27438144648128247025082418871919389532467119676323802462087603317121924993689"],["18843891212237487658746845605336759815962200211691554194589281400783208396554","21354591488573823498969127863742298298089301593082369719774039858990064379540"],["8899795718509624028990789518301806857773977940577724514573876191676190818539","26331126268434246141083146303079164771028952136723173588428058986184214356145"],["19406371492543620512865403880403510220837942626996976897450191125526869638021","1184872129360695044713380397937513689985420512548066102359937575929827367164"],["366912195456569114529919453013113634073165523559838079277548078016305761729","25310582028047289132121173065243033425835621351589323686905016667195969933117"],["22853455894911424600187084646781390524500025605718683177375682604238243413392","23130697207163211897178091234999779508543199155508231556277908422161713105072"],["848193034209621493791742457089694880034677581574578467229905243447484617101","23895271545161080892957057736296451064214735423511652896907037329640998952282"],["18952315146883197664789482584186641381279086759325325778224492555877326306556","4393829462700901532867845992173563282705634101888171248165125455655482477442"],["10623117968221570825603606830269104222038356851063507691427745422222422812464","17824959130049497355185130666188855012488433115935222441015820105272676819550"],["13436731623022835939876344864201850863359497798056464413873602459619201075569","16297557733423627003811599529254037060323012476785822808284743293119488741366"],["17324318407926139307204455351342985536931268822336497303864096018172180073877","17384885196427179321940219177860897027621478324135564167789703039068800887355"],["16558947233300457352579417594752630457629329435538002808238198584032153223977","7292549529630678090082284159937390419027566595669921061924893684428231010784"],["22919780030093188571717184296767793574550816261888868307615010112259133589180","15761121980200704307114186659291105680281979422334321535316026094142217712576"],["26450369938061343096845873351625218171476484396766169091163780815846610753621","19484861346103691163938565167712288122726780899190858221792303425345872804742"],["18500535218399214789679144946445066993106569274011848143326555718145166391748","8628347746194247418464052099927059813418130346516427514372503499721712772556"],["10285114944042570787382457061617351122566620129797633760256587360102964213617","15548615326624932314498196170011975851953298983868943904904795434446544408886"],["27796825575603052849457878517445520709887434679349206114177995529579372665611","2151020390277895653340190495218751996343666661859468952552139031358551312864"],["26056169919040961111637541571450052298998760609403278038593799690627914864528","11080521892941758937628797212552538982184361901422900104087964079313066944254"],["22657489463003775305860750844384567321492704701901283115612210107557964371389","16085206686183686529598121514822051678535861018821127748761088556439966311922"],["13412473028694485376839928528632780889295298758429160311691059057869542024744","23278164967880027309989093906624838917493695463945677372710544993533265544690"],["5711567909070097585209860110359576671196478012142051162024129914237060627462","2143460831777020823824963400942751265151395643553528137804251953183406933895"],["1124752768761804551767436134481593049440668842299003691483963061512331898450","8101329360816668657205945553252198563432166565794555224074651557612732356842"],["14822367406258094417254645904438166629878151543614331448538795885019554561714","24375127248658443678238440579818236077944039169902681435899078812594171565261"],["6651993260188147718046379713129082004825474820057764028619369203104692892052","2173395833207388245250439401610124699599053086807761576601884839884218872921"],["6956170533237653975007252136639402539079947208937120763369624350108643058561","6955167561820261486088784950371153320198378990559138511502064406094252539631"],["23902117401669662355712478072959325959310913719597841393844207322597681825871","2376417430437648520538572354787302761903687875242351882920924741048160280543"],["23267512690207903051589185923646861038556772204845114110804817920469523666790","20522963069433446178264161784156855698362157059461103944728951285548717975779"],["2523014566527898146834064198030624479441949280250661651304990397459978907214","26823461515772391468959063579309748182357834632621823655623625129858812526794"],["1378179286513208122856769630013044109763249082551220957570977532740987321003","17326969144729574046380647936681708461357866975027104949821845362276709963108"],["16883278922313738928470645168757659147204756931768911871935799952511286363973","25358376191551722619287170764301175491345087221920364190772587541896370802180"],["12083610190638808740051005276460114623187243011913362205762370147834342096477","16372118976021390690651560890718914890443802844479369741992694305734365495587"],["3884956424156001350518568830852510459348174608672649180506844520427584808562","10246480793773377738328832471888709536272827569001109808759323172587645036227"],["17366675321854926304093720729569327796057766534304119687399900322282103451004","6995144495258445207159482178187286648423929916043989335918841260785260718539"],["752406380348085795698505381613372783813055545201651123997916650917804331567","20082259454255341099726583103943157102999786342572164455933334482785514305350"],["3338805465078632905130030965531452355295509091559951020489186838217931790152","14152361112396299160323340984404005532410019128473750682939191566070782552741"],["12025045343483049536126048412132332139660522790285968545025036714367044706335","27190783384953646213429861405576194237950938467991885903136878255057105050867"],["7062560179212550975568732268263315225815077768122599889688235740831049608645","4798539239360084408473188435371281254291729871672900067883308397935682933032"],["6475883047681753917266727966259013409660780750909556636429899550402117869354","6096394728715855276975325593210396321327036858399399559727089514253562093921"],["15807661922519927577463431818848242015317210573213142140815702315752520829956","11345738296753677405223399426549933639689015942311237520854822140393633873332"],["21908376514373458511321298555872330912268091267874620036288687095494314695183","4239027844469434183529980384929258918308872361590098286009386948835309181591"],["17280018946722968451066601186470039980907432423359624897519087631131182579054","23213205158293322015922060067965882202457073722244301373087257476301309584592"],["8655205180684736935654585612795962285321634371843378732757607217017485083203","18749060799652363759079302881476750539596944631903339599930490009564702142493"],["8521949573814744371630899644090751630912737134498271500570138375291432793197","2371280700669621039319710872008836329255926843169424449920858431498565369437"],["23502175129102441239497646013286791600970042696284470936842234196487788275676","20288945708785256367886782679012445002646898929612083165324317933381905182496"],["12294694382050822846272435125615585152327160037852062582237799580276436203878","22688933147317238367786695251510224557302608023385148992581281578289628218051"],["24898236418504391554585295222223771217121090522046620622907301693585028643509","28203296831344419951707803116095111898414591635749464535721063110949979511167"],["26639179903754933805947804526645686887869348255149209046760383877213827226932","18978530017206899858340040557524715762073525603494722947153626990165053283519"],["28676733965269137966861837485436045014890620823477107655886511461372742682203","412579137008746166838006061481393592157754057830760750472410827822916260861"],["16423079916531962603503015123724071912517145680651922322349145382840204207864","14602074448029282311722418537006610986524697555531897065517001530015492132694"],["1962230097666762599515489870812665408460967056658517993641246030761938954913","8210976443772777433113687603157329759758010586282530521418095180545492608195"],["8816117241712440907471686947249544322529965033764465134768395173263487567480","4076537019637241274879704957733606841819267785823536232970965509958246452571"],["26380576563750861845214500524493521114639097211884489484988466018315371931214","27854401663154135074640904559342466885393361514933792094774836276525056314353"],["16496869194914826231368010776826854377190935203465561325832963729053570671096","27705487199454757433404813737315798739711896536089017482705502302973523840939"],["5784261600968741101731801670440220856359692553160448397760539136653305675080","10654633069118551945247653071357930576666685788336802857499893642366863889994"],["26055323290397598997581701409118383345863285387364488009060614798871943427596","21865047737757621810770474442839260991289485263403393173698800649976590795306"],["8684447604119251554085936946022062269422172210819321965490180958182309193615","2529006956875874724755374526939748703354007825657564742574577775979172921012"],["18804164339489359175715993599957496014191879256553441571963365619991049466955","3452063066239890970575245183745025609881859533512284992572847404611985033209"],["21717483577945893491652293559979802892501839130230995630769152728138325464159","24087291784394746824231367394403216166542816365923489529125620915757696606729"],["21224389962877783854338901914826957300702156377669548448100593592549280394684","28023339145774870492807514776791059937018188146000173843673581792785159296100"],["15595190036045462022064258656530646257520136499915624344394113877516038171572","6482526510250449555562698411906824287384068738654330236132161508642533082970"],["4718286391751260074357630814606360355860668611437761361328613297692383314601","18431999479339777130584913047566227574517287929534611616736349920576395794195"],["22752068251447953584078909978437651727597122385757645183628963237878849395503","25289565372223502745891048345252119786945701292078413019392540162583832743371"],["24103636203888688829916955733899984359794554000248106023692233496597099217175","18328264834390140896459512566292558495461639262989863609769913848859837597306"],["27472905733096488497771790444930022554843969009438099268565033164960932004872","12425613804300723176435098147747165187285180245342173073443916296008758693829"],["26847116739758028930784780858683654498027042680894146314012640307482550161408","21584569761950714780363036735881134676007363139845535267545028647922165369396"],["24828738264403925575348028172297222208914071276335296272914689737544911297346","19445608415143681183942581600217104742823855038507336585364605794531825037534"],["7482709564727483788921586769443430623845665615731796034610002026794326738216","14258598259632322527067367692182476622404177650316762791321178553775296218064"],["274231754989746723533249435081882518369709354102376876544417306464873583900","6563697020222385909604982052836305477385186114416336478862385801607522029264"],["2891888433911648553012422197341658855242216450471075494999714165431787801977","15369125641790299753558753924932953931943741879187356016039646474832140482354"],["2889559132887855321020597414824774783734140880368198735274435068088864768999","15867205657775233969259846338153688271071239461226716482314762376360215708069"],["28734988231230060295510023851016682403531617551286341401978177219724662937728","23205636237387387690847523013788438603215818553410071692171111552827140637514"],["25528627663830668813992476742467625387743385048483368109574098844347332124778","15216814986540779770976714334198231284543095801279725542904040986171445396102"],["20639063844350301272827377053364570881207154171524669106599602733728626976488","5164033422402371920284127348823203441227742169557047803521927087666634431963"],["18305984566102980416166353841216756890928371224425195930108132162951638047897","11514698633327307854089989771195662642928656159904746412314150903826264250686"],["6118872539253855542443915143005007654327028230689774776373705378195259364591","8496422492550376994084839357477972625026506867946810329315277193127107466925"],["9222501703371553665787798478196006904834010704963955516034409376569888506609","15905385137798032860381852420439125199400125002423606312629670903985645916762"],["2942919093971686509182695147944884878543717834657662460572569883343941887265","27324770732985702699553530843267318825545978564285213543314209428792656310577"],["15037757034007233636127423622838983596970555433042169838608210743787276381203","22911301872472634679255867883990642318718618185959718243685654351552972717698"],["10036477909519820824381308094135851610735364944151166132630607813789894423254","10256099873775122449867327985999805015981671721170274302661025082348179215991"],["20365494643223147448156687605970880031585750963302335395250378437866502759950","12369573577955110397900326562533334368132505428669772405686902509790592460882"],["16118321543887345313809118788470234170825641798973325968604774293543179956412","19700722947015637214326741390597531781405869682624556638732192914977826034820"],["9412665823625793751219330304178386232866702450235903690364405938858900547611","14843281939371041011607951532452523737561766024018678284309428292818353175535"],["14495122508142098447543215133286658348353588629915457473492560581700692908247","16734835551111634202517604408674178870056046247911512155031276447908523964395"],["23914447453848353706961509540066169115428071934802581268785249365992397236100","18376231205592245567013872965818135858331203166510174196812574828375455279482"],["19797981437891492902633315157636685257518484032083931976510430258115044082881","11692786510635241733917032959377320329931778801878729945510418290407030836121"],["28480145154603497237010858489632742539376509103005919331245981026889577082645","3411136654403537373670124253005232859141018202894154805643669830834565939100"],["8730563630469609055224642257779278450987046475838583715935814671891115406266","26846230237544033223431485390270809611420967738064985894477699165265606668569"],["24813770300085326167740765737126848657847867638976076116314370442450222397223","24080657974205861570900256343401772689662684449220345988615518913629931271568"],["26970885154981239866385767839946435465640956887538513331802809416776119026618","8545130823488853518410465917068413716229757909246292235829198138284829282946"],["17033856033676777473191300321319935937398953595209268053938485840238205499392","10643432010844831601296445506737789745008164493216011068046925532360257865315"],["11733508674857042692712119711423572402962729487126841960886220670317993817972","215187804065524698298437095821772715126555067668922084788144842703700417077"],["12937313313759031766299534041301020182599202951209816114905470948363346249016","379028652256061906949977183884207015387107512203795806591668765474583166450"],["5510357003409069007799562946953217368447358092585127459845483480999247299523","5902362308259682277183280131956021249286884714979182183881666613124281446025"],["5875415520851896487656975840015825600236820133192596296716208083599831376483","15633230610842582136310377441674033236959426316541737773366972478311624855514"],["21745697804718719266151330743975322065338358097833926376199646078495069814055","3596877245240522472746274306022519001135124802918371818120387923764279860600"],["697665036066390459477523527176216449057526386290576581686247076941493244927","9369826923198025224031531829054075573042775912068239084725081862900701771444"],["21109898725573123690382093019938740193689822938319814335435728597480706283937","21937651002480423540953901397027091558594311010673153520923249289347011632572"],["11975408047468299597910098639738281861166405086212596245291781838981422543584","4518040668091095107485392436716375560412523613706305540726195732242873718130"],["15422016982003038534473230648398772504243358578866531380820107520739758817515","20418629488398762449942214423973998515981656422719245806836384321063855159047"],["11952403314424198136009202136852405579490714313055514022745862974987102695456","1623021747644166885871252637060198648038227786106685447026291833255011829272"],["22937697080500693327597696864379066939441227593086006461935861297121296468693","2656216127179063288207893951967582912668618026125152107231187910471721152838"],["8513089864664867550817343293892190409739402511497349999019807922737579497142","22676102755312253529300604983771472074956613728019704582741613888010437744900"],["15378633452152656682672386957317987536702498392300791399537752459700287060405","26838160373611449365722013297031574348018546190001971060408274501908246681826"],["5989772977020907536799916540771470822671796918266462707751978518019454108407","10091594824774532612841525500008336981142780201033801082740188908545021307382"],["10893552319162890149889368494317544532977261890766419996444665748048403579453","28516673246704468682502873964077932460447198915720695350331552160045719701845"],["3478181426661997671288239955383483599878767586339603425770998281448692189878","21678429473834043309996565497193297659496748247485268941204498126874992028138"],["16671769927402496447304401045414482087932048617004990947038510334733732437095","19135229054014974322068301360940776269999463105400380055703387247438347209789"],["14568262873088247133207113204535949189633806998517976274386057421962970799278","3090311304779118390191083784583351856193157374033106781518345113334393113898"],["22832681198590444234372795365779083465003942923885565787054890794722327721023","26773977696083961027114681503396845766209986394279967097188027613320226208013"],["27799121569317491914629655989002122775458754258290481667495596852691755899421","24332311955303518231653232879056057606308496780870882681140698656187723546248"],["16095716681306262591093655174429297913397727954963270207657873621834138125654","9890533808464721256317363596403509398389143378617293092945676944475498360016"],["22065923778633088870591381430398786512407080508649867963844950839893200744648","2586292605440526372264820137845548678340092938016486815836230495755033022403"],["27549123838312951976574967085395937180843141139152606699068053325982041805046","21473378170463970361866955911607868942288474593655404019230691009750186589904"],["25816002938220805663032238386179951011652084018246511596595384499097251066941","21421386966999407898161909771763592751876320349899440850185663062694896144596"],["4906315001351670437185452520652417100277180193349495950319729610123906669447","1140207708373118089634567937991203956706964240309528132660419189279717400666"],["16583436423279662613454081840924402921136813812694295679362513041612047701436","9068808443763178082024558778956754909529047563808223353922458470639235167762"],["17055513843493986862098250967682115302677948705570865916114152550093440522965","8543269190834581377568417983266525192299608573301007583993936816840947530702"],["3370731996485011795932985285380460371707412243273285202229784030956475203135","24053694205058655420452437271764134936448254797163027755275921839828521807022"],["3925548103798452294133161394049702505245614561516129473821136067198361532846","19717473706354075415084938441478539363977143037235665451233045477091341519959"],["18377486638891561238209709464314894047882646204945442059563988541735918511021","3922420303668581989631500431864944664073306072160060680143293443403555723690"],["22199770604116333898022472053228201616428492683546102079038688044854432726153","18528470307591940274842693852887223303498967771740204458683992634109683653153"],["4964097642728510617880576508744188148925098446964038379864608109120850436683","5384599218851613258620596181098980406796393136443223678387586148893874836368"],["23705545326518025190007891612406391807348542875890653530889205495146760206336","15438500121452569162075784465764286042788631770601672540154871685144775187093"],["23127187515483013935069305883388142862074113137728520110232830568168147773593","175268954884765570147043646354126977495668747742731100964403195886093003456"],["27864932952799444254621416329279828762797493779790680846130902874718076978209","17320079489004866526835942768828724445657725686337715887763810005652246981229"],["24750010054980210454048611214974135636392619792882916256219145578071131693582","19696453974714496739397363815299588069097426693295619801017685567861529388798"],["18876593953876609624470545661863880437696594124347047217149850042048440307982","8222267017319799096289559425335847505414804734359362449345652166096064228447"],["5523843174101365368631891448805656709102087123592596039516670045973249084971","12744058720640135563786725479364118313904117207258218192821281795221742507518"],["11512346068155763956740400327552948146107268431590196074636920340739226089153","4864024961507023876644167961406342369069087192936950221408185468967845292266"],["23531039570586833234843952192882650830777065615933112615829779623508579559603","2165517883947137250218298372251175020156378591484345470558407921118934871459"],["16878523869145083644112919832273427649981456065256216018794170000223968209283","21883023963889616504222752569767883914786931990344228354089358625711266709070"],["14614859601548492141154513873250650883331190338725161584439138314745486179299","16877595488551517332557179262326103056479693207358961672431637732041830008366"],["800325123506417518077348659732180929854045234316484860766101272781331711923","27746557184374237312975415201828564212673392685348666427711910152104474802814"],["9701696795013207366061133227333819873499138546482953699650433605951591117302","21072422067464706168497335765741857783320936337826395919149220969918590418365"],["15448897622528904622997897149776355777565850502634302711043670309285808726491","16520483410491697190733222308744807746148292796821389542030216510973221719203"],["16979090420117085377549620440884407278996013410431627761330067268335689510609","28517925061636579592841199251686432869988367092213082482218399886554926184549"],["16525982147014192273333906188052187370901251213441784232021654038196757247376","18525569091262046587392229440522968369667733178791588125757948607951953021167"],["15864281256845651501724795238207429184126866993782191050400946318620974575838","28049485364264344350639400865932735579171579739926329782186280201243985198325"],["5742616815873407581863420381229891269169807994785402775611139847908451458617","15600672490626570932817952759312892247971460962191733842398469097630396732873"],["15012705332830977089437341478944051030161793508631750329021748293132637637586","2909130727261865358509183657785913613432347811323861327070967715001819508003"],["7753958571114189786779679895349267650576330562699506786674082187636375708348","15333179397073420912448296778775341030784873352998387848788259713101403157827"],["21101169405529435348508101841292591975452642764825474570085312065956756196747","2883683867880233004751527769391383793916657050393413496630293140402679793550"],["6781617191247963190170527384103300136448001563315516218905815781004698589918","16917017553499027835680205548421041163469394816566293774117137357440790508375"],["10074829800436976258580667012323257544866235551571726452538991352000806000564","3589416319044306567855183969301808623390283537385443338728636729483215349718"],["263800825708283854985721795582939669872954896639732835527503892218866987055","4972274716055578749419661583859960560501819258419194386262931851128072728540"],["26577779926974805261805589217438464070153209234116231589177153207735735929011","24339251626472373521247877970571403507309273651633327995276855074934503030452"],["27916612417751074732072827252429607498174936589407759491873648218246114675858","10333381848698166557040992497322597171866626899434819212454186609663640478778"],["28814172918456152006000582187888588027781427876812136162991205336890595642283","16345467267098826768936901499960168579569372705685677671087578674580540625590"],["18816395919337176126087307608291314733135261127434368191021700694429537050137","21756219467998028180036465097222442542429836311985046663123289369413331150458"],["17543128100985617094925035208658671795354613424927373140017702116585975435146","24511501143788578836563398855463910190323293498262090027350024287312456106333"],["5843648154207205821286122958661512002382576518599115221766466965996047654321","2572310082085993009842576274854680596181775603870604323961050515184219136264"],["26338589749384603308974780263779930843424230671392852964748805970565255739542","22098619799196008759029480846087256956101712027357491723892074011786590304363"],["20988566713123269309936145346997066435648536582121969551720817431886246992767","19502990907428470601113669590138318745321906894090963818680501049158288321325"],["7132003037422507468629474014399213347966540285967081866160360085451899189297","24187335879874370333397900509029668356360612468458458018822839772308871429586"],["4217858165970392020306263079486289155365733135767949287651252120415218564474","4899618436388295106675286552597324908929560380933681278985697923044625722329"],["2763937580628550964600356517061478898643250682716446964866289988111441637715","16735954584457298132085818484652986450060963509863501575525901281881387076623"],["27035392645786575905780994850003568556389077436200677216098850576583049193604","22842386633675767709859310594878031675865206764269055289602522985205052942909"],["24660160050906033747407548665537732650990232517872858022268012265848410688694","6421957933494804354449126712465168958392009136055543957258695207959615599579"],["26194473474116902210513087794263120275903079328800102716447202935254716454968","16820685527903286435193377917408933682845219220964344476223479068931578846691"],["28238740401518489054956879111302561914179299161468444492963849415887761679182","25706221703395826486123916080753734009360963664632459809325481750390278278898"],["12263849070401071104788581506446670464803378937071809465727779481511291673939","9564795517138994063227829336646023514798291404726125605296053041795355565060"],["21326134526424669275011808194103527558130582943543378759480799239371151064266","5097009063024444845640506644170722687083979584395607482741434136905151223096"],["10637111227540724956295709526016358683403025361127308462507507635300502689224","8266480397868779060208789601901405278692541249510157613191412196169884947565"],["14741159997917267411076694570964759486369235521821096343296693067349623852340","11143355332547973052836357139400057778115931549260804014464464233815969962528"],["14047797174724019416674296682488777142596650634829140544391192124504062611441","7057942838225649249498422461991669952308171303624853510844538337465390056611"],["22299487919876222461917791579217988227718990162552859030873677730710424726256","27015783043704474706192446637878944428991805997097757919303743173484295337350"],["9944987069407988624843512584519729495083546578501040958694770933682958607304","24611761941342855624295306449734777778378316620669464960039718721119779477439"],["22080531846492884189186620654846547730270713993490943621948108682192109904932","13916932278312133141710613189319055256015589536840013321885040858992142611117"],["22401687080985440238321941347096467845163679064803620813398865201288781386473","28938388062611969925470134038363371506450665271015430111839404108331826231778"],["5695383900791940369589992264910129799522230850021233822298870147098601867465","16683243584168975886093642952151746695810850583521222597242225605551200449899"],["22303939419199807155854869133102986284492880372877765342920570133911946900462","26767444412498995487542906255123360685633184039103969819032937554774367479171"],["25144546039053854252285152632805690516312752839482026820067048906808297852091","11717664039847360014019009332432122739389150868588770754094755390311091201547"],["19600062299387715369844287615143948086503970433111715154907647730519075038399","17151088442047918821035889021805374996911680979762579503618740381539780755897"],["27383064523228552781669723701999455090006491952261171874634584159257887794204","5028303831204325761868879095700076998801994942139609919008449441653435545179"],["12222709148069161610618589928652159163038534003668786342606818296105782967097","14435336657820568051625486700194824591505473967686442079988355979782373515802"],["20913004331922441056194456574804289479921805984360671007400031552676069281886","24666729851101531747682722956413869898671892502847015958367248567076992571377"],["1895485330493707424927627272462727026662742766263753880476549599842172085259","16556463621034393003114164877695487382307815284945888082575549711167925833803"],["7508075531993721207890672131350337481488227584666205668218854706996000507349","7099208659461324959979523682021966563080372483224746175866446472315896643006"],["7484169657813796250226438583595220021792215681008391899986014480176053055346","27368754881364032864785963747896539924818663844976669756898473971492394937805"],["19753907390995521395452304487372430548256229936135328861986666535149531015761","17889913005740313131546785302613645872057124434681533978029206668955081634629"],["1903565700283683235472979247467695642496342165001444543265078330353530932931","28763381500588657172835627007697587634233531611568289846816803305881758551570"],["19566152343920412502722103136303745555296716738984263297590654236948475960064","27435439101169835276036930121431969323184787679926544101594902523961532136272"],["7390206796753512529456843269504668700303447607721237636064412256926623448469","14497083205598675258305959539201397772047122120525856390929435816369205600116"],["19312610358529734324889139286748236897348408273183003678123834085060171386044","9608234109395783588489515177451155072054214314778404940143132608995231732221"],["8889883023216592372867013163844008853698501673646953973095645091130205296291","12038560215902987845243578256193321301611073887266663822976867914214403935981"],["2142546833429230907512981722876750280130434073049535322050688975226385541350","18279514163747932228969655118633853858119562478518664578210975038164575814130"],["13096463620696464317713784991466228492948660440466796849749862612374197128709","9441675487096796988752878125790451164505840816516252826663450682111664908780"],["25702311907513091188293492740501164039815817532067769815936052976445288089623","14769799814707921249579568741208028454806461732105279024701980906230342901418"],["26101674000961687000419920528645051573643175525677542452427854034101060809887","4253812243345137910100615688004221366753442331321512943520578707803623125248"],["21818486402327930423777520893952549074766647859538781893641568271412003636719","16602879874371075898306946988329319986489096405824536966724867610750250538087"],["24872201571206489758227884624565050085762569142987671749998356884395632131941","12384755357585459919861071899949593503198092665432544590874616959713321700271"],["22828674941897171879479685266153693178703723001819469322086675283184511022714","6474325868409290104155961063711541723882207204002894832294686666267625602407"],["5072566319463761559037919531741053155167613602498657025232994861866592168953","10511569574131451197873900122773294497188625191511889667097179435771983224878"],["7325089205549080235912744036541427753363856899659577781500736352750285180623","23544530459995881904605568871315916854171406551368819108098973389211971781681"],["23978714315896458737427379785965099195218009438197535906691485410343120084979","23316877799432982026751673043210502920301334108129771197971684997388421976110"],["13683155942723059248448170536980926519001639792690377453817778611072509586957","4568371338094569577653546077922856707130503841440464635288578605044951256819"],["11251279518291905403463853717715484703195989907010071109165299349028580849695","19840326066586190866842242355125091571202571912277427465907257561789761015287"],["18395307493776491583713719243239271555160271798998066626219873285694008006783","21767480391833420805095512426180842759921145785365933113433298978431482052035"],["2252975011392530329410514237630923657630212669145672242465752482119794830454","12166187711644692391262002406095512380603283706560127345323582130992552553556"],["243570419012628474044424224232692823602526654418814441231055626657403510992","1270051747494173185523161000070969393232824625920344783881683126632231148336"],["3608357327660967861569033374943954204604368256235106161720328298580139485081","28804922935200640944325409030373682856206349013089839422048393106068208887928"],["22890051726982634250023720510393238519551065275134681239979770136827619218658","9440878120021002074644627437129426677844512806879736650455844435109625413489"],["7729925038922007469911078385027771573154142365993145567626093166018081101552","23929253995086923827985511385501617745209467000518674260284534715598059490831"],["7876666402965052874589088672253157885706454411802435865936814298618568949746","24630049016642454268225686817302191430846676963285393235519916632107468589478"],["6980168685605409449965307274797497856538583318342358936215185025336265986948","26979578630089747916835528039756294072594537141890390761836843879525915396407"],["1832189343899274033561162002370113868087306271791603505143677727340923186147","2308218398062720437072922433608449779595631232762176737874902944372630794828"],["13534260072226539872472550216392141557184379901001706875294277446225606727741","2552665495356628506507908580139711422819040868706066901152457252277994794192"],["16358028750366993038402881266274295100402518428973883247032169713502342040765","1770385731102144192083475729691961043399414746367022035956886293495199899690"],["21191576674190421968523096753648833745002591169180393875032636033910055589516","27240418290962062049785695019342941509040269351576108419942606182704220687999"],["20075137681124450661773813076059795736754615485062686321380790621786057460941","9728687274064954196330182938829004886006363170014140784870420425220303988419"],["24819148912978167560594642538931648315337301870730336133377479722972098467475","25037958946365112375160943854905673920554107005803708279557907130732900633789"],["1592537451646351224186819805632974893290859272996772215731119123083639960261","10354315711326131868929822068071204845827532313117384010224866581721903694559"],["9542748135511537050127331620510651160237086374265456065779801558072409018070","14790143303818484925444058555114930672217858971554154759401903081993244351061"],["9323398373362676750659635440150795035388609624739289294983609847032572811276","20034243312460012515421157597223311365000771130252080588679360109829645836733"],["24670436305271001904038038421594949681345214070506567657024361038550209149376","9834532756758269674835033071148102087709535754937093301067791017922902213156"],["11345581543928151846332054205249674519650658018744791828885096910491137943249","21379414288870339243739433467060714363821519541667848330177544079946165881123"],["17492760381828275610315573688429524254451250631147323587864761248335262591389","5825363017652649872308780882898259619701668432605743372872583097371282999221"],["6370751088765211848361461844835440938399482451479227306785113570471577167282","4709982847209880517574797346599196538223851823832935259271188050533663852416"],["20672994967208669342349947693447705861546271922010728904923308286570175301515","19099794832132347187000424712051608434535880916277408988466342014935963777440"],["10745772530443769578886115315446034669930617896960490910921353350208887158303","23735321402336065137807033660225728461276250789467643550054590417997110122550"],["8435977851120176172565601433707616595411591874632915797415727799457848800921","26312250621318829092740128163880374635793940888591236618707289692708189261775"],["19669947555676946417145466845027252453095584549221768091907543273561709011748","15585175748356151278292853551788078571679107003937682252216604493831998276881"],["21038769770312056556152221213953717092958661656546823157608924503834797865490","1113695263648659142035899779804319486878376329045478915065095241827052446374"],["5235519663412129656391709302725992750970084021780737874165472542938209206439","24019222084419533597492373713962797012945286611318009800691816044503099861062"],["27401372654131140858539131148477276039307226548013848805996071760866473751082","22412632239037529894437281285123801803398030671799851802114291268366364167928"],["9629937166625808771263602918751264194678073783941056518435336627756723151375","8229166270083167033764481848588769908664850538126919751653445174347110491513"],["13059519373019501309097160398307792047933187651290608408014602876150476998552","26730023776165954549981387475741963688486893091865837494258716144861415606243"],["15029533121376292462585149958448928569654203355699972988097057452566239533554","21061122156093353820282470357384261413830608137414622256525528592673221325842"],["6803661341567142234146459970860527217283646763159574420095938335532561808034","17772446841563238222468432321047087581722403643233431497262260443841341164941"],["12766713379279675538041219432705825507509080474586032157157005236695993043002","21421177799832233226752003797637361881726664265254654158026900546220929285351"],["26767416147706895419359032349837788714028464348462799116766490260565709277280","24806266104375208721465294872183028682178007775945945230276036086828763818755"],["17211936834870297985952485840894599427271468086423644791856894461998916859756","12512186872493214671322243929949262025490917188376769099674619400889529541752"],["28381079673333584135875814352280179541720730680764430216442253777813451304327","16306972819414218757362760840530571008151432671147811491268645357840122240343"],["1759195789494088955593862178003919668134090522177432930219013342643570428016","9888649170936207166996155681084263806289805721624711251338452175179465524541"],["13036979390916308768843169293761115205615420431578198576785309421233678521826","10086500123085070412966201740149010257499553176591185364708451444333197605559"],["27875019697523417680436393425027247390027896620421943246365137952982999646796","21586812999937788497645529866472993897946907180381916533366222283504165019423"],["14734813368512711828419794484249504873173164345505168780598146394000134526065","25173482350323859754416139306379761840025345240018918087343311356938377653789"],["17572417777991714865895602571502352261739368077984558058439390583473322565612","2468861289161246569918873141128415575156940725415143897299560049078051306357"],["10762047562539070274124705406882383635154052323170171169920844445900795524720","17875947611148336330920348896570430351259103111722958152745608423051199706756"],["10385454237330821697445651937354501338424742640021333078086652296391419180819","13101402671328988204819563400181088192268856295197600209204945793984534862188"],["1438713792075447529866540961603547488443621572474801793457439225781509097974","2937927074329560733775577865083797969294859744907574475380097131240716617868"],["15980442150404495532714804315567089302837699451495099851384922075119855067900","4161601327816775905908759541227510205653218432808972479685790190436288605651"],["19103951887124885788316625123285617588560719588480356266821039811073339254109","2214810946666251449577112903450771502987740589691397761611349458734317497235"],["2979118371832984084557078599127835892521750219279338903745146638453965800935","6611451701769340782440001752560359482796262975370055153609840427493403490696"],["11022133153734194281213495011975516886947087926164335348477475329972403439242","16367262307818569194064817907309857628238073180678836138199258442631861058181"],["13193491844834034060804854943226488307563601813228885720889316529044927799859","15070161643789477681268682721833984683018363953398750255814118429592884887130"],["10867303548185638642269750369677877815710410369767420340635309802444880477991","16174535730554910357757385559395723637145806522651107561240223465312609549064"],["28336551488428198039791313294852371179175085946064264803574863213619447275747","515944185064092801665065661846965328882790823301242411699758099404521169414"],["14701218488792493744297872892898751140703302578084628875727825947882364253770","1951318968577451598661956425300614970364616828482948370555272469359380327122"],["11034603216049345452502013082370407549528880831235353048935456815239596081410","20539995028004091879109970590180797458431374454773449742347925753349902226378"],["9543554670238062331271244408283283765424361991164189465954772492200166423678","1961747855189545144959483257209763720965218483154480279994925507658663827790"],["3500595051823698620437254202255688202049206735443027390541323434912101172362","15062332927659223490540587855696225855564475912547145673372509057816444099090"],["24332746880769584906482151803488959472382737848267450710872919222798525626025","8103776850354347849564583082298667545151021304077306353222949564006985195248"],["10938520336472627945141709082849755992210638453838181888039922687569663902087","18841854314839566681623099777725992479545059181193154155372893466919670695428"],["12928180423768059365566678142748337957897576068261171971310829411462283512703","162506368044368679975210360478172173682701384779146877353932180850262756540"],["1376840339549487956486573700333334170240456574379931273164098889301072676394","1523854729550856454976725475518712591539764870098868238833127405517545755255"],["13204423243051467771990616691120204638233217031025085105493247573662987782018","23874098724362523470093378679298109463617412484230489810057884660190122987482"],["21940444139182240862937248585182519620277128129718187798695626771599915280565","6872859492652117376768381324642832661093940814741234629633941631667224739952"],["11468245357821626742627131200908343567089818499748793990188503195813440648450","3379871207355055789944995789588603485355726573938222626153825652370057681368"],["5583519110242724500088888371198972815980602826468737308962055185614813569222","26798280771654890324355572009582928082993742193594208708566158192357465467358"],["21076487858588452042040041269690023500283907511008307179406031707697309696176","18383228143635697218598053171849294522907830982192243845386755978088318886668"],["10788746165207658735281589011973806788020904816148702399313479460528724634812","20747143223069950894435912906118903744397109920397143483297429490615130464404"],["24338719742026647935564206635897828862925467365377357998404124956728314022695","8998399343404017398703885471038651007780663335859225835058963682067749787847"],["11197901743193270832706926269405000592013348561657077336356045425047712565661","9981540090532477336942708127206305274092115561762489351616978123684670485803"],["496130850645459365666563489849732161956844323558738007976395859854301420462","25644720471373078658438148038562772579075063736205743084021669512888470539081"],["9066138013171514077322431844816636681018982694376442981112895418195796783441","21488632126274748969757899179615354914693243458822945809839021106016668393677"],["18142239374721568195723412925204290759398237766303659342105429846270852052783","17444949684631293049225836814721171725751335742619467825939575333295043594103"],["8276115945556070685428537719992727530863018966338274464176523155270293159572","1163015200446507680021813525847060325583244134019095855187731827092818933009"],["5017778225457407522772711499997216658976934372521461592421243946591404154675","18906814372133464567577706713894361815912884996784035039327267808396115780958"],["6877952790829963078845133403412582206309848371038774835292261847113615135048","25464488087603742165067583555906464930485463270821302412303787486817780918734"],["21254328140802391386471627853305611540692541964682679621892444855137468778797","24388568480007346599028683800039134449487626225740199106914287115843622146187"],["7735112338057338649253802276549197458284451902790483704611288483380401758745","15894816658169246858776788166017763689188205787121161910992580167763506067857"],["9574224926548249002359723581733730539534812939105020696493818197885010794695","4152414185091463664774350052262547562805669515238365988329344082428850934774"],["27017060608716041663956560164145948676698806596668391527032474911090058605556","7151931442947006496761489373287657396620508895554602773856504143708762199382"],["2595586101193693865694261170857958676395936546988600513835989556741197805364","24009439548792171492966102936382732508075658976471059079370713462110591796584"],["8122378222058395040760051755234017712588503462623332092047443865347770765790","17406900263802901318008399048162757541582587949916283646928147637096663100627"],["23523223153961073559905496760851217128383541415608194394517029860179212159296","6608811972013267652543352841609926306619474290976190603100426980065503580694"],["18896081997529131267803725397199031993051808411041232837551170040581776297843","7471185393459264438427882524873299661976938928560904136980545740914983268965"],["15968930350697743361796032348822470448822500585008620702176784953141636321932","21998953255324476368003412018014400393518825645116184710031443020778340566495"],["25332190341321219680510951669443304677755361321176957578797178619088336392204","838329287473472491874987003165792473710055027750754439901876054219550691198"],["10093495081890769068697993733315600330053043152988007105841733632179159438780","25194045613102883102461916824685139658313504599662837824421321348283846628716"],["15409370412612878315310147806494199387044529293769086287504282399475809840129","19327239209714614471884562524035321585164913533757242127707372644301527731969"],["4802402367929861310283598859707805225117510192873822041213227055845038113057","27805664132276834467616900625012677447929340192957276782512821196806150185438"],["24718668580809494873967328178951663984398965223283187224615493274652639268705","3401936532185842185472742406238110639404312533678050985367186361802798783394"],["17082999892615553817021694961270405481221882158172021352157009753469682845299","7914942624426316379087252559447567408683933792799707223528773879715735398075"],["1516003961089696440557570214210697542399829358787853571676603854699476769684","26812894004666386450991555171006592144975973173497223482446925832186169185664"],["1080998465897658525755657754664431967223953280158270038640692536329175518536","8564895752237866288028449533413017164652370300743430301213298877516796208293"],["22848351535495169770686083365372399755129126745236350573481496832247479717223","9612936700638482126916546113368617723547843309703215063290565677981401950338"],["18171711862838923534333553812543556625908894238171590021551817803245549049957","21183731319589768911928726526195261299386476921444870821908732192582403599171"],["19456085041154287914268809709137276047895327123810389598762544116226571312076","20881512392207556296064836256189378200844593535736191789053677739690384584012"],["8216545328971462170756956001271140601038375234877024640344537178851019773662","6536541472362464779593036920061368067916156661823321890291292350316727471014"],["12090796252825923530783309797933142169834627999486642602638128381790459362061","2210703340151424265651421355520495369596939360464279212647267654503072639696"],["22059525214023340888264006920562205707420384769885023653834441242821310062418","8092012019120500083206165535867923050221324739948704442521469255224717021029"],["3983223687894056332251060658667768719255029030059201646492444022047906813983","23256240636087298262437729758021697680316005237715227164317256220047841868981"],["3108586965396143184134094119013114789199318684125328681481714583405895253358","10296241009336851402195418769046109848591036322028908670388607452217202241967"],["23263443498032913393412254209447952426636279653069184721916046554683621144427","10192818064404394690315040970142017048492962292183079971283238393789762309354"],["10108838768486239731426323696812764592296284453500676608661719244438384852570","372746966296540739014880867610373891113543453148706634947331904573306530603"],["4573198374179287128212133650478077911360556035454073715532809867192293379709","28652596528910328061703919874926641687148414637330825876961392444923841554"],["17380359458855902645128958711134199137710329368245482366286854032460888484572","12336889142755974769859242459648394339019805783337119526832654007136808405879"],["23253154076840019168424499190577791267499318054148032537045630362671273237865","1096987288056855320892293896225753538878295267457581535912934665815025374549"],["12646636799317278177368375495949192031607045335338877975735000334996316569862","18145998732411393662893351375643564175745346525040841787242150546786974069337"],["26053165810689127839123473427458867877918387017441007241195785178948952526659","27033373651066944905222567866152033294264989282548061118004498266930021881496"],["286464179637707168861087167075804427915627634889520179871686372489072336842","17144882899761320322034481952093655448445908425505209017106661875433403177709"],["2294939518752982907242420355862943707222244566467774464289786329855421287558","13319721106259636769522605013882693796647869214944515527216491146594628630992"],["5363645218317261035625257895921417203101895102041296195330903305290844673389","19807472073740936777972427995350175062824140209704398002453289412485798189572"],["673377382075352197593429461322361135875553908067665989033643597528027755994","19659068720463332401431660950222946590940818750358565503534448455880683287912"],["15593641206512069095495586707658924378670004034984118740474385116110516887037","3320757393581555339304177553985050356032674900678368515305127097941853948182"],["8103082365601179010147554287448134628969072076358562280346147138201269581108","6893924423276823161463954902812143725221151713135903762747458476150875670006"],["19962042501356351110592920345683868386766401455167839208290108961622775779249","25341096924666878559752424638121722730234365522169231576807994226445487845625"],["20379840373290399856312747726400320767780350645401070835083626015621342810380","4800801278059988680028967283937222223754233709291859522524078744132622013937"],["25958859165337830356802465659279699729491471117835252383579132876311385274074","26207663986381119957810814078187435916365519330307299515549107115249739781328"],["1463321806715563406435893057213578967911875549019786056421063890481602213629","20671641635286377365028146784512103164062425429653114430622961435413712286665"],["20739108864194983144397206784230650747983050844396097776359236734962979548857","17742027298092858190090181698227573296370222429175889709276682645407927272070"],["24376812190661742183636125596047288784850654237313956045169149498216234142249","2545497252438270764099455094037200796734136187157245138796537938057542392624"],["10652702840480232730554767360416012427702442145409706217816217175897275688406","21525973464727003614132989497893356448907161091248228976887784672281931817341"],["24416299499570648758903065529387031215194625251854885506441138944437476282954","9438688904961930124841495419371226495040454381330846505084315547010132574569"],["19729066599769074265862146679863433383315004160636552365164418423955629476986","8917600485222314276801856895549192650420575251032049846981039665610720508781"],["14206467632324074334019440881435801825637268172226345738400978860996901009765","26424384043690031763237293650162744017462777533412825764030440211114736427926"],["14909687348430532235178167657628753259483715798678546346636019385686573095479","10233547584004543887576699310976407243327641885951263488824549490446113465300"],["22724241113414589441073652218629841467084758469442498979796026407515508663935","19507275832577503718838775177134686380440107254010755114535949351828501386488"],["22673453185441269706022918514027154281294578509339217758948119219394198679682","20470989310765724031341309128529798133328773857520677333462308667732902292297"],["5859902064787781718298005250539623991397903107618525484510044847420459254565","25439680403883340289965264097303209244186227473483321277236951146976245612923"],["15204047599529308843965873297504669434787786724576012760633865174029449736175","1844868732184674845674666516554852568820025314822428477786613976710417552465"],["10098266634631965287337408819766722473695582308988048005976799262083327970993","10172540799392777616724707377657009129679357734054281893567527929559579183257"],["13644639234818837347514885110818679334249705937983462778849420685143268490554","15300953651898264734362989682144242132831833499473697472837777731357155327817"],["22251419245382160242237955180766391439721794910504788234632158206632933775545","14259816726057469675285905915558365798401952907453494610620585557850131049612"],["17719901435053830739266921123923335694357478935461712893161927552073544965265","24313615265960222359739534362548942908299268573446790254111135390750668616377"],["663852878703002697015395835014758807158567236929589898804252468922876793425","26616313680941814206881404339021568359220994236279142880776610386982692682064"],["27559914976229098529476317484167351070748903040544457505223410165867914709284","16282132617478809828314073324864137239597766313187906391110576973057975521494"],["2461525229096111785095227218354398583286655796340543560295857943049279353037","21798889845299221259761413836118894031034773795959571150691348966062875236522"],["23109729028290596898133877470618638997794588849475987536718034707017795821440","9329564221888585176065617609672726605962370786873016674104373846345876546911"],["2782833861817767055342570443913621416235816857437536695720085266513682044479","15072021864877891530342729042534456282347763478820681537955034692285899036967"],["10240208613747224935207638452704661374150569045496354779019966854068966598814","2861450732309684376546417757765471594410635466321852382449787430476014046191"],["24873472157406988961213459782844368079919197468467948512060726739101408410198","13971525149372368002822959913234538857466593609331031210634934672376074409951"],["5216424292723971448336898786605240546788665085023335608600567303532622610733","7086826799024754411290828945054931066184603422168146186057745465021300207416"],["5468769644789673960965352537884963660880237323474122520296532912727257030303","26288796203648084224570003737198368446186463134478857574432070790160807211715"],["10575069086594368360251770652026434409515756461436178196462833158751175035908","13608906792535698117542054377179494566445371486509082461943463364273885624288"],["4444192201749072827906503462354219534422029144819875925501406887846868495908","5858220835079559931980423526297098601170289884532341736401808064669031660980"],["12002966755287793463986730063146264007375311637071328872723370622789498269182","24462625195695714077509859174815005377528669002600011759891119383697832836991"],["8529314247473961684112748386073852778899242803945059756016109479248937682259","15871170211834975997191762382281904770042459462423508566618379137649357431327"],["25782945280737034124035995201577767242477205049487794107790362382093451483963","24733585175199308089392434839871805732491991026366890629003799016250155639457"],["3762707164779506117741293250774737639486603470585831527158491545046627249185","27844999856181761471368567652541812220748771058524823417769504412246402184247"],["14176055224076505198762633242895419494839587106455900078163082493776194354768","16532684914781416469400576609867399209901552347822012595410003738898522822133"],["820020635455712117720322372005465191983649956411451634469072690942557885073","14272820711053365097319637268690627005501334614882395206868364268465215774397"],["23721898842459659406671158288412973154547568970132835499818433634869638327550","9175502534646961279650867421863513908662265447986403122447716210317534433516"],["14158380077604647867142333515228682788995297721424068749269563250263145390930","25350683890140960120938306448040592053153636208858554915972637281539628519430"],["3472544280313137456842375260746322394166926188709173002365239489773412669045","5945932095504251136916576554867723523710481484468007891806501394215005159309"],["14032744584557962537302228512374218901378831105281424679519879609822668693049","9367619882232492739876697227911743806102965948141775579967418873809577817087"],["16306472014472570502287158474209056854232830372043818581549457330707604867412","2982268086615715867560218862206889805722955331268320025025262454340047227008"],["19239341028781301373703714021741919066126507189377342154573668198869861468914","5211747052281879260682586385749611934989159327507575556543119160030034245668"],["27050487321532817907574115537801789832035367870431074141093799307283944666181","14622596405310423407716980467211072334612231812845341768756860022082137106789"],["23509509785163268050472952340694231154365244680465859124717781767804897261402","7593326642205849670731189863367882772321047697737206209433703020327889167560"],["12016119685312184502280843933825396551797500892389485029241013073625084952503","19345553066406392382869317221694334405905881994510495515607708795086996243016"],["28775109192370498384357153276347668720647476452367212897132249853898852460332","16514326667448717379087952990745501588694698881195724575283963621567499188792"],["20511981294294612956736142126309329187854930387494547683370050012581094889598","10070709637004064705908886859203823865860921810920639415087175820504487875534"],["15700222067349054922230472973883161458117126483079726490305028999296445843628","3027782117439015355864530994275160886142121609961727564330811637514473840193"],["27255619403985806103807058053393043261066572025688664621203549004364507140038","27033918712267900785665053744204577658716690994744648444353915925254510657344"],["22274234332860936386883344225700624961113730257781373804583408415169389249539","9789064742913887345505917641764574154955470184656899776240357236808697845709"],["3301895326310825284950942852864817058543022112593424965593622484088044739893","24010170000753741969382496150780398271844266747503058894391163975363068096617"],["8424258306788728035793722756582693596287926785497434662345171683660223834731","23880919125604228168779431451906417491996474201130258390360363878039373345934"],["27808134489788271135912847423342031569796843293299329222698162902833471518523","7566624394365839569260562179945410850913093963368467136259857877518972550338"],["3068844532350882159036675332816622503461308246139983959926940465810118121561","23221044702778017262498838934348340828888726600111531772534986204111747573715"],["8514252455280341868431792025678939918341505650256960971969306160964146617594","7515900168243983957726287554250178841308168389398446859698510003176810182830"],["10871516761487853840094760187643498623442691989962603557769359065537282374073","25131058125627716908409869900680174371611849138065720434262683756246590921217"],["12729813558462283464894823824592366194483402895589877084404422907888977661857","10190300044298091696800495460340713986632885905854418407751965691333723445167"],["17999531556086031807550362371851950070949759616826539332161231576970740733408","27046305998376290149419877362093933384038822891734310384032399373638053660584"],["1586146585106716234474363995893325495631805701094669921278233313235892129896","17371806770501458633827142414832282875827144198212316728429879644158882376226"],["21904274039662954548356417966285097480436454914210111816741328461270729815320","26957693030373354868761022743407902796175577224743565749881478099743388147304"],["20123428769066682435792333616148807339027776873638341626619059099472909390925","16304267959714512377883255605446159318434107891980476473236754603313172595101"],["16988659998036872200930397833044066196001640537682864793574650164246447797797","22574595527443200482398477081762222406810913136449178750847167875740529142459"],["18004872495097777740154680527313244139723784114939523659701331963050619329812","20508105122356369758968062272928041049346674673412115126718700457657501641206"],["26541110942951584393302739264466796396731662874691039187929637657015314210311","80812788820778722986727565406122795316391309651029123531329817414050630246"],["5781920132045878630831403500826421484925117016303753657574474389480151632868","12438510186098397203669727319969635632918397909997774822950013883664634843725"],["13977877377684163645943664724416487168408634936453609739071738396205885740556","21285316820277482978749849742626237140063880097301848724752276938487051615491"],["10781662320167583180329128909346621025399081572333141387974785129482722737833","9580403939625866153771675880303980064751314104376269492304614628275787680871"],["4276430675068535115640983026745541965721910653199925100596008429976447175006","8685727824653032387155131835421836045324177813591921283298263603770150975516"],["10792916643955583938935576335877807081911403511924617153384909224870439709772","12316265334307775712257447782623290598311782892921342898073892062376964821406"],["4603123075413541754818523570296440329767314568004569922252770438272307650187","9898348963280977659600369644329813679593353862339779719527135276731532297908"],["16607102805723171724207792070499641604980153104586629817803158075895727742983","6972144562461925195569912503421028712103239345511505777266814127850307243858"],["14675038934973446722971005641743568988819387922969282446857638311154762549983","15137006330642010563492198470690514928049411940381661109404668294905298007189"],["27451674213122543161091550744522201459047526608418706934957530087976178307575","9543849891598687851294531985044952564861641566883048626999777157806664646054"],["6975241086853761427393281311248376206770243184649374791023169928315434929183","14628077126476209498663672035956233599013943263666679270524888766775562666842"],["11568348186855805112230149762599615422227667508379486087872194991058662589187","26354248758144846493542439793695691414240656352177618335792470565991124321463"],["9872555122079305859509759357885695794058781141506273787943142279459958446557","9368344028476627648410375608430956422636785530776861294754471247938506548617"],["13802607533590285272145618144283765270763067986717526372478878581535134872198","12717863573532125267610774472708577391642971480368370324183855727500225914634"],["24268376156275078529525512965823516212308945021112769660302689988759648341249","25171947928535870063995081869758793095430280899545811736340038063624545041318"],["6274819493170270218939497014301812962911967048987562624761210757849641027075","95027581784540589661388114444487083712441873821094288806605058459244078373"],["11144103001802858241242240386497790621541030087524759840458091833567574515995","11490891465859009771939481012322239092661535167060229559066793751208417690178"],["20764428851534296937449634483328353396040795563771951224074875362460589820077","206039217777512275606506366497930053740094712986054150460104768923674396108"],["8358191750900629976456332059941409716098610286409160041297822177451946295990","3377569819283463767361153187715045733763809014745002448158713925888292711226"],["9407873891092646740766762741698982695250459703945767630189107756971463079421","13556524264178887805933702949202347672200379338709178052663426558865076662131"],["16611689801095348791464657937697552357700818215446090293075152749792723357273","4361806182377516309932174310192057547981200286791958481282994119587768679464"],["27975868028838371557126189718456425599430673857045551219772135874019062361788","24214686202671694362290775867820998726758770136532621490989208364928524027746"],["14424741157438482846447618946607728297319802837452533092305323233346888647620","21123828629087175412681175309376726493050312249633208117306367956660953468564"],["18581713290254638268103025904405891966832091525985210885180022546423067122259","4218579483022751813042337217798277056669612145842570705202100231263800400397"],["4343089771540148428304677577853023300978411638893558000715420166845831537646","9297730429814980957777285115786778542664144975413304863763821309519423934211"],["21229213172864723048727924667864302948739923756984904313309828485287791262585","6389130952867417108179697301416938855044014526771433132278254296452755463246"],["28450798960626417805134514915654594580848940991111315671479248540028411219536","9110992150575578558674417927319729225928238371037902354748686794238621193392"],["15072468472212426674224820035172236579416210837097391611797917777391820482410","19727139059445227610903696519195290027495539058995899298763686414583689051796"],["20937196132486450440604100477476674983417086323035882371553488100516842241641","28564442003774727885769694968797047003448378436814645141098794768810803605683"],["2785157764623825136297018363234138374968290457575264992182887224449841761406","25397365536778330376301824388309863305684413010816747063888546454124673113331"],["5474979203194633320154982653868159926163007459584131100190242545183775793968","16776255569515022850079013440792660591473697592685830155022441908775637154133"],["1938094093029334285155040160183899310697372690829163306648152498892290675422","20326244380322207286190128675974911002028197617419852000566620777227409664451"],["26723810800175745825799729761574471933469097692461980914584755505776578899276","16562117754361595634315211496086974354271076730983268867974412406783030078920"],["6478411378340958768703928575344243664310140930061022926269520121846360849634","19020244525461296485630854066649184125963926351651730948883431003407627053940"],["9772093561012668511265924446475341000972121573495213098001921491543064089239","22372444289583187066361019780255447746467758658974217461414401025467255723794"],["26118858183980389597038021246463803802911422323014771706856568561786349874689","3799226356614081772862763048513176514316107643674531122833083517293174277136"],["4395320274135343928247511772847174280677763459317867085301975889532206824363","26481382394577621045435695314324474699916949374517164673451503566283640105254"],["17723768030338528516462206329658957559771303407592828026104017164314061133138","12902982736148168700056691682652284365528907992959709828391868084042977323401"],["11866477661624774449072234127057517675632603044500353676615581863260648304310","26494351071808334771290263976477360551397259022001417313929085693793104201317"],["8175499089622456322285185024851549783448895019366916140515829117003823502769","10564918780005777051212894569858962933370117586975239706438124922893791220473"],["13049227445736609021502794318674631198902379328756135298408688843517530882276","28470070575455536313801164944819667769608188216227261884943810917192054337158"],["2183050738472522817134429958348106819331204093858497540446183945700731807435","15829589903602242254695745863076925339315121931805070764520882799365363509541"],["23880677734329794944005059730237708762286249900645222644000170488051206099756","14595570688758043955737505709532813046626044140214838115496067096524475457733"],["6289598070484822292069975390011468647930678490240014352905314762190228629684","3868466816130502126963665017522314136863364363303943206348836289866265894053"],["15425424758962190433314300914759781600668565516118386954686031962298612571715","9208922941848824099410248880506653646719580235779078523628301135222357509288"],["5885238129401932597078553273766941718898740461968588373538932205413802844912","26316794737841520646809735602080504157710491529838885348719349203292640818586"],["28019851478915158252577865041769505848782707826589808829077739701690590244210","14801241756230305804322829186783549606663238794819601770467658801974263876796"],["18035749651488936011269340528116790440822233438204836896306524517642326997784","25892017386011137345965585668370658444624401436574393936654944540624794567864"],["8464308327921473025053467221000705105355311509794136637661652880404349361259","22108711722439454209291117658025557059736157760772158627963001760362508919716"],["2339460033624670424256638535635980178789295262008573461783970295544460435343","12436301479758746615186802870984329202748037758793775112075979156598447680691"],["8600308798768204369303809121258165084411955032923716959179698379092151105709","13317087701236231430659129042243829267860981976008788189667748463453853028037"],["19608565498550809630571533824676817823284841518421944614694253189743839790391","4925359532544754186511114202297677360970109395142650263669482310375606066617"],["28012213888236306395048127486334280225215752517091838280840676061860080286880","11639171638906344285078571260595398102790132176787865337663616779139636420820"],["22212348846318741896683559924796179368178352199581569958083707703116355632973","21152824184826846914051199320929582690852242225701460457797289595540019361534"],["15649473191425656130958862402215873402433342359695819009938850763400196010916","17425499687927461330351492283843836533650381764334657227433581934627971783381"],["7134998167126844958242615838742868731351841973429635268749603949953835644874","15824494566830108675732922809561832509834859897770490623266554068957904467462"],["16151413544986263190806792875026906673934652701103053929108559043557210015224","15221559738378545519356686546542722593750834033808108295080533479956126384534"],["15943660163231055718587175768661157892055304191478313636618667351103321402735","22572104216731411662126594512309018032982760832944148925910468832626916639123"],["21510644483901756659567420164205873995300536117912318633803704192876197894313","5334483229438734451900692470266773961262843490581722960451491088168078439953"],["7815408966873552071831896654500368334015586351137774387821954894615560032104","2443501178194919160494947985996986033629242120235615325519407247843496895405"],["19045805970421967965249820433937140725158863519666951802012711822890245953629","28174797863031755835220185366514772681596165112503945192378070907868514122867"],["24515928450806033448573860328688709192321379374695495287209100952807845752690","5321732940365879830085512768793494199802849246567834432031595283203954541134"],["3965946275959069204211400239927253775949105389245591995473122961906529744974","27008524400829789361008934758880383612401120856700199143040899924947738231365"],["4064155310010527746945257371548439951884317728499163117432888927278978782483","25743265285990777342106602679296690117096081597548698535447339462075360816321"],["2586594764204074571996239111490120305280386043529260817533376364751919855310","25328478160285172670792748380576154468843602605613996678233103515850926256239"],["14654153064590619829259474147935306041707312434497093471784645278534094024811","4253534980790008446116351133076694194720603241591461511979239136833222711594"],["20545801616075118124440245184089675001632431703374289322794725963485551302083","14068302580234951031656364206092868291453701975722321624997229181968712416320"],["28109824642716831709870682963575378100644481364835693147583255458321495356284","4010980691691753712414124328507074390919257383660214830532200039458174227037"],["27035564805853479789016178435661101279322461930562739901155484065280351143138","15708211086062512712566370473736268011338466013792802397053808667469923442275"],["2302055068196876142694754020335128390596028704206142170323595489332483150055","23317258460767338103050458922749499775289104739088280976295643140050136475936"],["16944221177320801686907323312583077090753733594730510284414737328754496382382","18367948190995180046177105012517608186461453527428245916241963489596263614482"],["20528683045732178213020437255376409114268012300602080918416661383361973653303","17362057524332948006781952638591477031562609667367746662662857427020563267644"],["24140725667639656030337883715415013040342282304895571630263317516923641679348","12655143491828142327397363578389310735294300766494494786746439169377212113888"],["28540073532059699893924416765829053586180110069695178855241126323723089813975","8488715637741073890440833713263587074873484687078072983180361275592260212235"],["10547517489690808858229730180258905030411881294628417911721170614756831395006","21657054463220425107472429120174153783230025718514692652524489035557721802649"],["15412755771924145267793493444656644871837985448545223293043000245634354961146","13787237235612839218860355540682532197991077701661348404378925007345704066429"],["17684511297972954766030339232261810019843203651985384317327139738118070281090","18648728951054610198044912721368956051167624789584173822448328732691798664141"],["8702024344708012567258063827135272815704908609305465284031424780019940337278","28720820615306655253717950215660669086341075035828210200456669696413288691504"],["2975116263378395629981917829834979678281805788675255382615860812965937941036","20135242794834061983661343983821882995315563548003255842677846752572524916072"],["3051753856812022449480729868842921124089604365503375415355425070554549589477","11253226939498175334882212938474527711035756794629734511808943519673983196986"],["16359876699093271343420067711857852873983342978602037765483808895356682983714","21124367299506633497119409266788791036217335545940316516456834352599127774724"],["9382089523247067310803343530458027802412299021759171012641762440502013791410","9117401322473172948232335732415859469864383190854077602106707819010730897954"],["18603465329298645098744000421955180101017762467870470142396298928586294938245","26694330901328791912177902241821290646129665362980197581097468306507867707326"],["24078581042148678302430930949504702403232025486498447779641332381131689368780","16022222081176880294986691101739402704683976352731546919395337138921966700999"],["22910307619699384697790040492544083339579495646828010908255492589478655769411","7503423019211648480644068677574151088287450908603553057580002096380164505099"],["5117281669855768725790921915889623673724069673342042970742342032402921326674","6906808943047571710717311367729981355485062721435379291121020034723473703868"],["19074446413694721867620425262294261783848565476872411203320794986972160315838","12913397273665040902553875654582340387010722899384126749880673552374098069594"],["20294202778162843716908608717679467188596642663790278057903090777882183131685","13280569389031527455754091029786124958608248829367160196116922796662382691266"],["14634263658099983904736668670977501783958256374191503842182402410320471323551","21065065243841663632938728743390263946414889667062461602554011183475836593657"],["15344203261254940118815886712872160474890328832862986015189905109523116230101","22745804374346758267210188509271599025907549252062675457183111399143130988026"],["353068137303417504831332460199653816924145751074701832366114925983888202610","10618365100433211056474192493488968637868202220508800278520602971490935174113"],["10385143237335975514841294563160152510962000990906567777920438500227748358347","20628518403506051573249489596773352734594705236392422758719331211383417393267"],["19167662223748398316808889464530451878401565431130457614402762256461844664328","8249914236318641200476038321005541277211852271932576044449827449455563987290"],["22350501442330732376513647302218727775685894726190704593932383806122972576705","7633058169547624907691013511262020778700556405672656654226765684661627062157"],["20822822195921403742261202953967369319284581176123183688008010759122625822779","14865388838486602397613224705187859308351145694412088649764056903404820735828"],["12324906536724752949988523027614170532223670176800374032927098965935750092106","24262458521497979655129985769927129164188370159810223489095988135800347768303"],["23926726218166641092953602553157683861482626368216774371429254102080358531638","984369915016237495597130327926159690024682953213161853341340536962357761638"],["28339563516103479477480594013400311753915018697453624437874921982443967229036","17714130769070857174613194322107661524309141038118871828527240632657833513664"],["6377381119587032395534566379638651102455107105271466863333652881425831579944","1798977352910446796279458848984616568892091815785617173506920204889751313288"],["23814645540876015701537615189012185815854810056428768603818877652702299044849","11624010425638114027574428393924234674772489654214999098268108683951536100203"],["28757979604901539868102500726556211420088639054129131085785631742326927838557","26727681356624524317159825720618646523354400258383629486405076428125629744227"],["1338507935147241353913199984356141841844465449603188335329818769400178618967","18674980980116724580202074371136503521954130694843975589323105784903303338064"],["19112301084417969084459785237242636758793441810041376128864252766358147818242","21412685488192040877929274588712498289081508582157272360076160927039236982323"],["18171712145960539575849202743180554003163336945517933755294736938895185734952","5535541316845479144765202897396144821803600808694368328438881122462057246411"],["13839983992615820480663954306391308204117131373521414704451243562927237393141","3256230049726896165299051687829419486409876081107860712191561342309657855728"],["11059953590660955745825678539095008054892496472980722874298209991182495674280","16567944836840477450155749087491274638808730997383840584539107178719722581043"],["9683051426890502588277237653525801050783339600135492356428985161827543870004","13572562919941631097096503178289886017598739100807621130809138880778076117871"],["13818137576832182077527599841427025575634772790907931184150936674796161373658","3176205604110007466645426994231902823558082686023722982683671880535633062882"],["716528842440688483905412916296263247129541632315660562688914948926806404999","4556790141926252968360983824611968749190366884237094699697373492540482595435"],["12371312945638413463972027490172781689098651723574838479340071539987751130254","455954923765074549135094835726704651973201796200681003778247568292203532047"],["12893207063766129391094800393235353191750347376937860048155300209935696295018","17530942746759697317225421291700323403442689178138125185625544948287950230685"],["18609079416620188280065945065501597823306809008241236453242355225695952009170","20837875328225617235609847278188622374917252590527149321976288383933003816678"],["2833224638782343453038672815943173668796777123547363622517694929054724574321","12213887874638611608417973391907222343333624211262451285777648680306527626812"],["9119646899392849107803740846956552813188616820541180179789211589368226094164","22089734433358131828426147439567204590648508901581511476727675110083124738204"],["26804733955664050263221676483649192869484497037192488984699017115027218741377","20206869192968075631246925703400270769366551833605970052593600170226037145702"],["10517995242521183535043456734317847647299322119568511035713944821462599133986","24590366809203580570097752117539480443609499213234058129537137667835624277100"],["9775656068595043729764725766334690126308162992762825921320077663755618202801","17880611773707745525357981103340721167039664998831737706859156416878036964254"],["300917808768122803606552545211400873969510704524373464039160368714946537588","22135906792355547741434393658526709804943360685650109424078739254094776261646"],["22512786154690600532204459056607201693803520541031257355870459856475156795038","15128407101434154790096069399687846975351357981433858278973631652584949865231"],["14292259337853622834669684898819123595473952983505416688355191563878598318736","9476971802830395923011146215281792978020131751703116881416639117852776857269"],["19240891405379306196630471382842326280890982993105803389907983470840326205188","28123151266852811267319005436255497439834009831666648612171394375532807194436"],["17279911143649090877149210557254107215840433060681310968869033810497687630341","19183980426071448721473052605873173229303055740450554987382717518710008908449"],["12659621712347143118396053881344573338687676290162580606645282431319259014550","14781438366599644019037257892021760306787523210568629061747223903971425600449"],["20166568283611611291134269451700624626750981769468059056517224331488666499560","16162268109843880568331803542783849622836586546928585201330983557841236382236"],["4530704730464504049542741043576019962197639755419552143566819487666905895050","27995305206884273591921700603005419716214220290116165786718005993534193912888"],["11676220956809786400036166608894453914542289371774023303581215104014352095157","25959193771492846742268574140101952092323857835721977550503406369336251670419"],["5987270121515503465420758964526130526214688091405733031762608995849345382464","1613787885576928095347241257504910846183154248656865198216493236727997139484"],["182023533805516600866120810541123219514573318966944721679908547468813935396","24987471298299456616089148100915119024291077949453593974287557964480126291917"],["9125890632801434994890437494472966672350998214324990895911566653636923863747","19665255397185732911895818388944561042228669475291886751940746952434714472382"],["21721774592599097087126150397162417021885402347070732967563941766763439111325","16604830220435549698484507019214619443783791674247539118916898843343470524714"],["26004202943237821862801301318612451579207196688531960807876047214901137213847","17522245476139867618265223795186624002928145823333904817154925869589629415978"],["15458227269728353822306814873854456803865357589966989507340358632197329627298","19541823516243179542519722757763876507820764488111205337079094731232670572499"],["27222324265833029483657354061409385504175903089695935244129030050525661922789","2403936981914053557108578162148028179425182905950984439351416576385394090292"],["24400599487417940582932478678579343609656522057302841830383910568942395679443","7693719000289947916929463033353305320004471657734738804355836249098427572485"],["6320591100767735154610771949161260483846659426361387949634702546653958685136","28713587592831991458584057927447511133368625188229780781415984094877057479282"],["25747316196763004383438049055716432678044576199779893802214066730713759031493","27772953991509407912594704197570111662862371868680142856249183916635367936737"],["26084553116145860965585427751992543100879799884010269556807865834989700455262","27303299490227633130580580091991050263899018047904864516567527010851427506868"],["14892152639274854120597434180675228022393970760852643840320242993872650859121","8934821767710898685873366074927833524183969935293953717283972942172859432723"],["26286971544471387597624658978137077365807822529778557560724435303721054693824","26561155407465615182679183718724742421512272761868715487402255725816804489812"],["27855931789506672982449825624962429952394288867581826345911053704523210635094","28293751890249386476495822303260609621377211620566849943842715393616591910378"],["276244607441116311481263452609713829435551912047544759241665700488674535941","25826400781536148765674450494952861719135597279145313167825712515382444071847"],["23133546711588943083995153653007539805001590922552585062233098085092364080615","20296521734631665959034314887752571552674305301256434047958914055303674483495"],["2328816122320000314614907640625373797953881775639330290670822416823663023753","7556194268980255213818284742284967585789013790585827543157763671429966692576"],["23722822185289349833483564436050251350082558106818625123953406053921210954495","26910655596916434121548712977591342744237493470930781085187040057512468713786"],["18159697397993779844416352485356876967539334085406762526184286898216504385928","21567531416366325632837512622188108066848321278409738163184604524342829952121"],["9538311921264036792863456107016385532021565224542686025242751607489074457381","24001983662947757926405568216596619760184993099333599073874997944233690700602"],["23351046832958500471271009285134606216129174840692741030119591723789570597771","3654750639073255018290281059309241973370344545053163821872901493628634822254"],["21961144289782082838610903530273605166553285036375507041770910740636111714135","10278766569201030166647578120107346961447330588527686569184044674642294237899"],["4771133836658245158224883663182344746544001432221073763810353450762658330703","1325102486570998493443581538030232302833275938806321322663559560290996759492"],["10724525788842398117513198648201140575528622886638673884043668033965129740831","14657617667677121165947132353098989754976510832258962272655825194768015857356"],["28100422485128652152685216820205091741378927835117194314172164677148659737374","18153392430381510197969796607999519458631151904912006505988448767295980677954"],["3160796327041137389878060875572334076127279982708598640891233230303715101273","27165671484039281092543080855517629055031999271485431621711421227499798413006"],["6945387474844032715263439093930645848194993417181393766678448320867972015647","15518997855576488319866616701055818363790713018916725880901309974166923342575"],["1921645549751101459226539045254671874631325225992868026434526076551747453629","9107298212498971613930258638850257740733362604632209099806394392350561956160"],["22335821319298912303528302290985256170084610695089079104913305350278406988055","17765777955586358092629126119632136582733446771461607565415111475733549495165"],["11386403640551587642048808893652915700990258475076246979680496255006442157710","14205518324365356135968974565925398709874047609592292560293401793219508747448"],["8488076048055301668673547315628891830773955870357982174418397902984591958406","14538002962501728015802675303611531387877240344320517524848455353587467680328"],["12459565343668630938059640979755207117603136642841814641703940122174843631088","19871112947373518800754775673300430677377448748827979125009054057793953288565"],["2465940318079788194537730282359449472781998121176555821054279964706170258215","25590810772557414157054873738836624260134867624224801009295513653812477089407"],["15111708276817366871606871778200469250780259279139314920250424508391947200758","27115568157650984353416588788827105445785322845231885530268417697807530940454"],["9004760586856208952935404492425226972095631090031329958481786086377060807654","26255799486812804107042428854840566843028910194703985790631604291767145599524"],["18887059953435205520231842201170481169351523078558463824401754492184952295782","4476360907168035109166653986720018862399658876817942343867682141450556757812"],["19045827141951713932281272622395082657352279627528496232490286364425009387342","897980767890462425985047408915947108945864239713879083206306360230140250764"],["13398361064120451541796603023743149449660623853228498110295327035489130015602","12301317556269934316224954350354451823454876161288106858337903672414278884630"],["7448458264948581684888130160184731041612095082480603406930457968204216454825","11524975465898143736946868684552494862362850987902218090850719171144797403741"],["23238594853760274753339481081287888498177780469610545481767816714302698553159","14461246281797203159222381157535689534382115247105942617577530889740283230020"],["6294796734985388342505595014694788963399413256324638331060484314922197853453","14340633527383803938055583597316258609340894329317842389073464491859187913895"],["24599665637808044452368562687228697448489274807472627056111678029827472632282","4340690538369819641062776867254698959981559296048474484426055591023700449804"],["18112997200742295790531114942357510885869917040878779404034563746889675082206","15528913004577677877686412511474659014282714401820074988164519275561477570495"],["24686023372504261976824296561405379887146779868085038146352519524894064767147","4086630362446640462829234859010433353337639424602208204207903462534704895230"],["11786049748706448262948494079685316870726370098768552248468982567050576878610","12415295896413501260956795769504595389705540422387498798729714002166329964958"],["5997848747211938186744502586206954389499462911502601729980133625465934670806","124852046903740004493703800187122733320658530312507348937154942796894562256"],["27531598786923352028729779150430338673652676327454282843666023117145832531826","27906702251332448613139569078313721016037657101152880836495363798668225306884"],["24794086578734628863327837053643678811898890699683198637935174906168827061515","13804721756134269043190303189918145281805541808947758901828079960818658755722"],["23758036382062326645997408950137868684495286523651556476109472323509103790646","18418778400286345528862944546187105121664981392993726376330758708731425830648"],["13810991443998288141746982234838267994514299836371833227022670801713286507947","15109715038979352597622839732901043034209583464580984167239067509851901997112"],["6290507116329332539394468772000596322133255995627926221874209898198074059776","6338806821365598485971195627172765114134538115043631438980942460317628586646"],["15281133706145633935426195728044386651382131556095167961383379271622099861042","238847048693646309588073966419141663965908323643393763977330509963818335669"],["14909149524833047567662179681672138569190142070027605905904522321694729725053","4012177608608286940614827347467695463822817530735247530655781531127893344777"],["1594846976075239137631895855402161895883641398357103659283567976907431723777","24592579437973187134626628107692228422396360512933766018393734694867813428770"],["26661607925127254783253932265242350980441196931211990540819474226168947435158","1547746665848771739781291010831862921612076233902409924456913221504462088054"],["5434042776389511132670496988301792509142105830109452778685518248264655622331","15178986702553657133792330901359038417249006133631282094625944720857096088735"],["13379170897215767393925668910385919433899155987316532609087914706001214191660","12526146924943256655393272449918477206316943801055607974267662908422487991976"],["24443720880019398839254028224583303978738731094530686223166345506414068291714","5828964509964798435672892314864198787011096550993435084278468719044924513322"],["28070898267774599221679115223560418195891129470548017351697053433579713832431","355110943711309338881687490834630607343910009097688453365537927314620622455"],["15052026349330823349694242840541628168266211271621094767025047385179874492534","11220629440928625230910567690305072006269541850011062015369654180705488740334"],["12429021751943144003706424575205158818543479626935778525879730072965307095127","3019708376891089286437804446820572942389611190464759241489093486556189674581"],["16078391681326811001492625427115877511333725637804926264223192203282801694205","21822819195303139319481533877649300814668718930849708108678239837804396459"],["2619007962962215158439915584184275482444214156850736009876010030634872472194","8256407252343022367834039778900830160681908377745395946947194960746325587926"],["19405857123744172758396524049022870870042647887372729031791743102764559462072","9961841322708553247127790176636234136605235816469667884360617907601227806137"],["12290683979946105365437380845040497465744288632088395831266190786389986922163","5579853666246748690094460899673676687636379389815663684004376773800080921728"],["12705762810647350990329592286779523004069848217626447256146846312834837946824","19610428440113812746983282172092352675011693681374438477410273091957924232066"],["18116070455899407126696095103743856551554752426171732505597437413255467869073","4775090011750787655251691526348620404170803930013106384649513906627028086369"],["14534293341444194785306154115940095044035882728225092951695590115746708318785","28335305856131369832335387975055670317397903303535733264369258979533838516710"],["20685096144301256731081880596980880660839335483174107371313650745223426965033","17127506421133533268044868561358602358862376414684880955262659581386038322295"],["1382507167813903117070357159448152773233022131114770977047687827197177177770","25917486516561160293589244529980644472872042069973257157985246748718306961806"],["18118248218719148516410294218946659264439229632403284469165045899829472677592","28465629213020456581111901702141013501885992557872478776860964478004440925745"],["1108168315009829351534344413595210633456147084736319772656210696488935288953","25590602804708440948315632130179901520301469438203534493356243878466643628948"],["24872342410063661317639276484405560725763922359323493317665637892286553647841","25932280096113770678661178653218897879592026372912921511884233007776589900934"],["8149170884961390065857689604952100813954275324888746268343975901265762786728","27176631974546055815965992981973914186100880128200894150879411386944908777825"],["27503500936327432374268206650138398651274197955473003674980434293286011572333","505492154185656025989243364848547545109929249718805119396799250326123646668"],["7858960056662781066212693538490666206056954604753948669895297160006333975190","18140136097648865328205871150521772650209019890210544287911837732466020585274"],["25172670712443290724233787258413749292314772118767363807547137938665031057369","5694259301577793998123970611851126111369449914530782838945114709878190091819"],["17500480983631514246977698999758901664044967372563224667790210798317292334650","10209923417596532630152706322103779766261856492377745110849442325955684688489"],["15472146985778349217328374756114389242843146719309673048270260929618502149779","3166715952587744155304351319218568407464089329875090724116426208448581981182"],["8529777367943967367918693279165720056405862008428972432661843224097866383489","22714363896787825713286326317852017266984498673789497144126378815103137632367"],["2283131298676866682231904489117168160002015266350489062129054967928207251692","15203183145425345335589854631290831066176292946248451224370097971765864077998"],["3641268308925403403400898151545292448212269072308537329098178551905744675461","5369273374058911156140721073997376798801709416957574808219357060604128744425"],["847984777008618254057883910469862388845413223188778328848117188140301026617","2208280112789373664572175846032630612420687551777764542028732547763888921505"],["20291866245665103378366274881748128756904084391980101729841455542631032645617","4724657818009321027622178492570417376307275405920600290615984340067868304111"],["4601778438569323079258121745171117861399532455017207409643786327727361255068","9455418863055520787628981017772940544370419366107740401926402596650938857509"],["726309248536007086695259756906888102552499683714998868531145189987188130132","4403858762868219973133583444660181084542526954506238797341223374987619218530"],["25815950638829927269220437619175076328685696984923422272664615093954375302730","1692075174355425754250001973379689929257291263052216191618298043184715100920"],["5027013163892815436353449113648134054291611444818804588558952409414535283624","3647351664484517992098810823381114588800737853944781166397320096300243030806"],["21322223913453623926404120762352209115733192072646633582732519280385696443847","642553785081624665977975397122999821676209195586221266113180002435566223094"],["4549566868383156874937265369746198233278874432880335332879000980954360782284","9507698057904244737476043275214155817022620885631919043063517102523651993562"],["783831420995782362615026473834792495856700027328311294711795105756143260512","5244629332584459210124806999392624342621736658415484812568173846415353024446"],["14391866464449429757254432022922142248599414469991894614342097228660723008403","14650377128560653435497727331107394118192981869185892736202516110106329426795"],["2895707150564233087287040352575324809776117813924704831670916659335988265817","6311807660726432578552633917515107169237689505196509511059014876966849837010"],["13031720018456094596593285919251165986859094772746370687508699672772553934690","4855861260813352216734119819523492123617332943951718351860260230919090834023"],["26194448110675266235751500404945646878716719327767298316873688971190664382215","12540910587266524892314312987799895588529303370202866802156155599664882339551"],["10637428909171041412435894001094523121869624265105043621611682933393056329900","16913240498922083947868696919706903335641814980557887009186281647897319059461"],["22391721481720064228548410857597333941201856070686491478824288621877604321527","4165337034116642562019585009410473910252113962628656842636741935832523080173"],["7203616240297261762939882138422726635100578506078863611550389439778024355097","15480399650101969490690263378055764421108825891999271010039470150732474784476"],["2741196752512442273613795990739545437947112312169690452485154285332818380249","7770560782890006825863543957228945730028606402423161013821599668453270307228"],["11975398182185065244860300388094533591730313114795144666324486563512682076941","8551332516725631721841196592813024007889271262976328946585345249887356515521"],["15431528603836554284897571710544900267375750608625351931122984437798512395678","24307273644612762979970050019655243374908706005005123555018599112041521628764"],["25270345947198213294450972606816096649907946333191512745686937219275963309094","25562362165173883831036431527311727086842219210227346412119302292375025149231"],["7314098038533112719146855333366922102139914103747891767331947035421408811222","7052040495745050347684764989494005968222625504166634276189393076815565300468"],["21306821440765934079078200475564810373523574995050280190916832920165502192726","28762659245202584485926815611016439271239612570708817224034079166076759441198"],["3419990224732966185449666213318571805215686117691898076830432596444831159336","11687479648044911456607150352929232465166806879775402113603587233952523077240"],["1457700835817690555532177388939504256456351732128464112753359257070204246958","4025974263898693716193230869115542177879004079339959065096142519386700854571"],["9268975891379310660085941682465009681113577243409850353634884837251712892159","25013552732742476742249910872901978288442657118176736819546719175803831751133"],["15425172745702855444803104863371227664170373030905819708921476625861840592549","6002102757588707587145265318553045030916170974385769541413687722895812117755"],["23183537642789227631664066788794256868841816056962804955095611087545075437012","25393219906721891641861374826370264093065495411692117636519405518708254953135"],["18140144483544275436191291874010373607609654280782145357332973835904256024628","4065473265439692520812762531487141557443528913869784097203564986513882977507"],["10341501667852905180623195237852629810513878388915397890473428069345704750709","16407977549064074285056876046590356869637401468648953525784456520125278139114"],["17253335649800144596005178230815998615062566375225388767551206430925069833891","9430544734383440525883676573523216083232070313155169253887912404623450906406"],["22915633889044467878130575962785243042290200042002463248274779917390735574019","20905483941683522111399807510433889109135019036414310712746777111259118201000"],["10430348750660393435430010059194767294705897258511602617801605548348929594258","14832057045725261407034721943009419389871894440334458066491986422198370791820"],["14630708491214579764609299690723291806499895363058287999604811882122600239505","18997549216750374809822323239955468082353317067935170229504976898740972888353"],["15700258340531710421339208825112639819124752184209010530297854357700006829573","12072410157638870786138292424692606041170701100945896417349271223243573854425"],["2403942684278399031055037485146400673026007486302158818835773113031772817268","4350730152168907939541195806497729688697486466492437536055723427973612652141"],["2865888483992544693571261805704736821355400253042272770359808813837183189581","28471478585470674257600642403950173669275590722932624494759801583976367238010"],["10194914773924465056685859893450638728155766586004920910638385637421653389127","2391320250616125906355726651136063200632181869170118615469246974604019796001"],["8587535124629226580863064633910952616292662099454372208948459988434823439581","28699442993645388398808892940543608226845782835310747259266714163889401559049"],["4603474058345529609726530126060234787493759766704454215925454201043784109285","8461727113434757892394421386604761194840469364829404243117297540129065004968"],["23582336505817144843082689781172664212585509681970818528656798447278650214269","17293958019073734088367844467224827037151668317454072138560120668216119562091"],["14485597105536519688546924604734308851285846055826188501405982933981208998634","26958162533363123603814242100426158267170392634390697276600512996547610167923"],["15114355925117271689719775788978470725158765262780542690506621776820729048535","27779474417324805282302229356930759174436390152431284204725610899372715573119"],["25785464612187136670374178483913989588464543961763672949060452794180610617177","27690948452436016721832157315846175179068303346526054307963980724305034288801"],["16605042042242917043073236810840379556464552314289579900598711201185769537654","2012697374311525171947244606382531463891305461322797240524791751277377574766"],["28356352672304196844953164145171530351158403430244784345349091845843080782821","2530770379731674261283880159651974929846078314777711134758646972964936574913"],["8869441471247881710048881462359245302780729164971657723336972283635644822012","20731289559605399697810990970829173889563897197367170412007714018599329477317"],["11175487559822688798854040342456351992750081660529836429970708011974439490962","1198913983824634582289911481269401967294832847189360849009754168742372219346"],["3469445598717393054502058467188750646746483484763691842889731881885312420567","27135869088996344074444891937483179001478914022078201472154770759294071111881"],["10747368367799158785053287559525271170643348382046443793805137694223378546201","24301685017557748535646245735863894849495318356402332067636349796919406379548"],["8013153721423868495720921204587441758442692370770308655594578521099380493232","23491783496188272495789037094182897784056121867417617406297222344830596127662"],["6939142940638332784093469689630720360570463722980468626658005485168129319262","505581237381368457604498293731330711617269045868006479087855862498452775340"],["6619526031144970404351806155149369457896614925247533403918843474072984255620","11413636434157938748411585926500744981925932078831164944012122590515364740030"],["20045442603288859338965081702012811144294094532369465854395945494084726458423","4322757543609501249716758791451259859037476063982731014123144596044869860348"],["17737449548881247490222377920467352452753258296336610796361157014842700515166","1268478250591566119327647120757655730791942525021912538065297899880995291293"],["3298081553058998632919552497235319569339091562300524788063028022308081890703","20904334998506013824381456388223479331351330206281829298475575942793530615451"],["24964148148912637224243490959725662381544379831661164788437507763586603160483","10940853534127041897459143043275331268217039604889725454171173526948855324148"],["437038155140965579694797238030843790008700593818496634173238548125487484000","10731847142345171598009305268548981050604395198114358292886368718990228935032"],["27110619251019545890377668839081019215136551403258381847896532934545353005895","25332364894882645582233654997497790021919101601005102194889592034108378038444"],["18127490676703553172011206383617135059026082478277844454323910582654107780373","6904700209834968625493806457358673577022904450991196377391411891597601291933"],["9651094475776516119025134239765602356361848327522938308356724441472959778030","4831995296703732179681557460831573236827666121121539186488630151581929304515"],["14964841578845590085170965658171739026222707003018441598402750174362272420891","7585218412575306793476355066443903173617502247368175399238030368162545383885"],["22080027069324111860268163667185965440297087148537617358368444781798907965605","22666228454895444942708883097650471380213672080719620698226655562651386528567"],["19885640609235972708605982284738813563027183613847964748026915501244942921311","5837182500435350656886731131109627599015843179887261416790196234570320112056"],["16621703880470909819218993353890283520325430394300026725985196844967361877638","17648162870819886451704243387518696886899515357385501957353602240798065640776"],["27331516477368691555908921172307129143213016545271123495653481468235656034844","3845598219949061202017931622930067304017037088446737052656657853057212005716"],["18736062085222531552848998196698705155516295675758164389865120832358497612451","24362779472055908600236817075785999000037276512860791607498887203911906706527"],["23261311105130453295919407065539031608540628580863236115475195217803003864435","13797082990930002677413095008094810052942761792416603097401180703443902707652"],["571775567101661699228966301978774013233551028035047785581269984707196358173","28280705900675441457486058246090150417496872550067652856327374816819244518349"],["6069682079631469231345096414033703345464120545721704365899048867264395241009","1647991107026491427406657371311314856016336792264305101003410660612172155476"],["26184980601252034860476711927487445335291006136606050087609624632258542871912","10729778577960543792761551138173246232584118658821678478624286619570896217187"],["1227531060784913994311941577984448878721067184835014745970594816639504076387","4633193988788116494541175626046686025666209923175797799805879969358393954080"],["23203508818018143252872254572829127668298783102428293984533564949597249648216","8408164347009395778199676969909729728809356900706529565760573673267705274248"],["12933111835751426302717019049893858271044021523397055926190092485831938791335","2080539720770222832203173147321958119808175446204846174476584867054985849191"],["7886064399594342375943924292746461239381068432225529651366194816255519567673","14378750910265162293071094470917086315307427308195236156951720781292543062287"],["28770503580207873255762091314619089193462055956604491447081967277729728005808","18741937585493238187056085441394635352591860714393965918997011010476988798689"],["6880034848733412598333299278426645242844225175489879504855707282579644913825","17825598158392326432056448346495650782568415128079093410263763859747591828379"],["28643336709358762936747182670052255516650977902311354281797903004333020740231","20524398954061200910458557900871896134131006977975268282824063531374975369971"],["4703650855833103348492119503095109393708963872088113606370999227135778458792","26615751427604363446200729045830896270893973544647586229313361256774084074157"],["18524519033756000954587864745764932306092439775265058134083770709654482612101","17616282173955078443198689520782477416463256553661165690599884095453941363195"],["8870748011098907854772374448245274594669832407398772279389618094426184895784","9950249630259471055744557328068397168560542883452791141944347162776000416002"],["16145329340249235572641463120968628071151888286644834472819149560812816799193","3883117954120856629701277030439425938779667930148080266927363951346027934853"],["3404907910197076681459464992826302256847306564739952732429309001553138951997","12963466933554427026710100233063831896208155027048660642003230059938327767943"],["5973930932793012934136521964093050140281779073746239034569930486108381367537","17317521893153353913982764980556010859123344044469742734285000915611559475119"],["9415212816426572673080261019696816701604261365205220011892378374516535051731","5032824797520709100863645010304915503496851554563637241799142527164300983232"],["23889753701741087999587504425374727892210653404377350301927680022794423812019","19993725693796033315182318532132079157929647701756055309243116423300084854294"],["14787587735085980006035857916388095588556954672542705051559273734356256734284","2302855297178959044320882381553157050433974030687523133552049613048780013198"],["8668903113081136135563265600387594739958725623728096326813666613995016586743","11258380503657805650947712699042347331214758324724996206356631642902607690507"],["2815205762507363354440566577283342683837758662814410978731671361929255350009","11658440461070793061547460510643471718679531866204534145652134355892571629548"],["19793475155858682250297200681250360782796060888763279730295155339957364337987","14081628159023164996756658391259650457180063095440824104020144636234010018908"],["10329998881831350649044760195636987867523325528000607136251340334653380827760","28406631065590210761565155053065063556566487719283380179002661825266108396936"],["14006617286425768051137395966133760558085825357130586471855498553613773021832","28213268619220095583384624330719108233565371886694518047849937756754724535621"],["1401039745170938994957456172264785969335722658410477910627532408120437268233","19665657323636345850217733665780690137726972861046681577084486369193400666379"],["10025643652899131726730773273470822329128591747459529662875268003319783389708","7286226294578184722706558458235316718787573990500687401182134438451020037781"],["16232641473982396727347508736633038103018360045067318780183086766992383479947","19558776607075851018861960238396234187805148410178037738080197437672672576469"],["20206552965966346915743474941262468485875913649535144217961238064730921708476","7133217482340087663712937203334531887474539979761258920414829003721767942686"],["1629322532644683088761341077995648144167798708772560071020353795268119949998","12547138036811149131795669683332207979393551347923169934769152215822474570672"],["23681320848758296632711980841105126976111484717680199502937713617304089198988","7225430325942272974116095386356744120691424403394459819158148905837414838700"],["14504229118271892296624430510770206386235365474386603400966107305430767616218","19269855756249504489204467540340202654296096514067398439392893700028419447853"],["11528139974428498204560717025961899210356144331393198003934762740381916412388","13900030018950135468476128606825982011104167012048244821864034221676800966357"],["16659758427083227164893446076499422079595300437386311730338030425654665071512","16962641492536300967008264744702979960572135456689896855800420283889071069593"],["10823667784322835756016451370209264096817096750495477278495157190450969080115","8858765106334015515084015543287733363220639416934745596026480602326306001603"],["15735734066747868703241161462832493425056972740395840325442445124958195451543","2184093028715398360226822215966288950322127512266848917568394694381741650254"],["17271650260434429683821363649256616593728245058226689746177145128643374145643","19182847111061547581903111773177116685837807485813210811740420107392053655618"],["3886170183771911752265540565118008320177437997138992389311868613046380920374","1651528647830420973117050937060845284286624711297529623757158568295331290766"],["646099267477499962157033511147746708706574066189316877619464831571537382570","15999534618419170466917454328430021380218824681400602081336912391396496308716"],["21886178796705423673017503317543191251415764461730748906021206173567353880079","9188737508733807136276762920853373926187849466527580681366017251395053948177"],["14742621450982103778894323686274512700397460652001400248544707876231246312812","6996993536866440063091577749193438869494640408819746617297137282802573653537"],["20455640455801343514017556732145132749758492249816840494492485841922946127043","27243432689124799492276208901748126055290868193641946617012592690915113018723"],["6527455767367564561010421841630475528933410414612578265518474574342997798384","28049719037404117641274124956426728818527769312206965837721057404367544166586"],["14436075279990003409645188286054425555123399817944531165855610471083507142212","15669644035854927521355500533880118813614779294362674129338812670001144630855"],["5767223090504268707204598325388301039801995142655706907383112662218198023985","2808464458995606961634906019281949463029148728305094659226206778454601862797"],["19210613633250103274633341191121052720830137344737823691623210692320767651919","28045320768506994965586173380302063527876501472163281232658206029593703275087"],["7027930736499239939736939807644764260286559878805016552186807866262667115415","17149464089491265679298664766574414747894189162936587592557313880132310622348"],["4058117738903340732844414284442286050251486931707347208197021133649250850792","2487402161088528329241361014872983293621876221475728154171042309364080301173"],["10022872843336454741804998698231862723404987271030914782678528800714600804465","9604325616007747833366865194793327946592158535607066938634259707091609059343"],["1594008337936290778484674382883608671811833837398423455300292580784327439823","23323509151248811063422052769973824169023927969203507653057433196024410876817"],["7097606005587918255022645722328414880875794597160285081663935322490057380046","15544042342471053458832911859868013916994338577168046423408802469861067449296"],["27583156376605078620676655785240258743123074879544485567119610389379030420156","3693858720753531286462261793920043155600728213726535743765858334994351954070"],["20936770385816176636574019153199825977274285417238964896754793280351007993934","3385491696427772488548718194343283347757240999764498071027044583446814637842"],["22197853355708527919137469969518488693002761156672657893657699999415483544854","13758888525945817381291999297449687828971366189779643796389373766823714125899"],["8696332830409469580788850193475791999469349889040955606912282621296552869428","5766307506516137577957102937313359632777538486937716751388580851001956955293"],["10212662057623289055872493685576483971054107230927784879940822341506046459440","15127629985148830357105693965274720660373016824475202658632203607942099385060"],["28940998863660693398551919370759195191476783295302314010420402403541740083855","27558525857659046895489429168693406074863433459576774977577736841504382893642"],["10105125011406532607285847960446791909928245087673385473250536538837969583463","7689344777925684233441615115096705299793449074171935749275504171550128006534"],["27531248059587887546199791277178606564136322340848050793594681333255039654147","25140047205411449674168350405574474659703651052625192892815419110866584875296"],["27768432585218800936808327214648499291345691687567010450970816717557274210430","2986179178241499729652834331206467729138584313136621925889826470714172996773"],["6392127570775715398741714024143623532711666050613083023552678968716332106855","17711969924403119850120680150191863787819427516414313761628934688999906382358"],["27626779879704765254750124236278879441928015147497696329094047552303560065685","13370824572042362118820850804310538689137524137955128877273614953664724697113"],["673613454365145903572103621709592949936762562163004359283593880616128717831","13568693192519931315137730819301086481799663600732595887163726746663570999757"],["24295143184253126942083663008992975337158981340517647747708745210414002920793","14878465394430890602372593014766523582767825313128826506749439924989531658444"],["9433216836028764508894641330352912328125059896176073585605614371566216976840","14228747413171845491506847038064610916428283129826941013843617113479630459457"],["12971708016539622936371476194941888354025235833281590468571467261486506439345","11061224232322467857503708518385884824589828709218401229425741618203428300225"],["9458102444598863925110659799562191259685179478681232104198751030783221802043","268379339438128281208482267210311180659149559753039687146686315289088305857"],["13923988534398827370977610891232673435471089093015227063400105984913474018719","26454868456758162283688363589215125943049107110218873128559975686970258858725"],["11809305084926511508532885730535769518141175987413571308274298879967635397990","3329375454002894149312687602532251545774233501341514523272063513113164052769"],["13839777152302486322045674425514848166076017072580954310323376834916242331006","4625847768631242653978254758566001254154201950455781878593030451970986598710"],["7520670827910662248003902012333350343543181601017251336638523566377299092608","16323213488461006473225661975720015645350588303011902927179902275612200554756"],["26079311287071496727255136478255213689094040376377761304333443136944337543365","13933083869982073313346950068719494283309860956114616005593710809306699570593"],["26156117696555628649561479214516962212858448222926912764051328721164321402683","13060473364897255023859435851088914842926882212287934025827330594950934210586"],["12398633998768032437503870866058844803458892018279531678815064446183100417481","25710061432704120751606891896561076258249443631382337425982223029975430385424"],["25768724866391281134018756450959359515406236953557578452965576085677061332084","14165805115222264814246516120319539005330604288090220342063937750984172713940"],["7991088686711773329718469182160835831847111230814348901896882771130271077022","24658418974878948063619396988754084062922500849782639647102737218143150298838"],["23407748185021470536150817381425183534310488564107198449150629881933412179746","25898930405882654600941933117546444541137589334359553264438131018549296076406"],["4893963016446244113460489289863253264571667070947140433800245825277352724023","20454791387055573869066371586829425164632668874294880475604205236462021204640"],["25445491260420525536181643363172847679667146137976061382464222824325408591471","25749655153094189613273817712280482208031362817727357407507197752723749152470"],["14643698557523845837083356879541365278160845191548777420699093948671180403783","18527957602914885695880331315672886207688059496839576994232308251886972359396"],["23871966045981869006498067430757737804823376507504664667519532218890752570895","27895853122987268231690275965803808386783342759704335040757298283416607579316"],["5664288650758810156653990870036309456609978299016343061937387576160387812905","10224168276134549657622729603014743018003359252026662154315390352379377885542"],["18175835472109009523419932865060747552201141651301515700193784241505134982432","9234879859202307184543629340410874438791480199022204644430845586083966975881"],["21392396150220536279869500850765129341538740384230859648972419130998705122394","24142790704875789353183877798849383135897974676568853950710024609146212557694"],["14219581561042777431535642662030861339618118781104626481153017631143330621904","22135269591746277205031595774112203205409395959328112890729376895562794186281"],["7650516369020207256402707644868494884381304551560854650095393120077867102683","10325787006471893945810021846578771661848186817159274378964559665595582392733"],["26867904955392316855266744314117320001583456426263208296372478521865333178169","23349994623021233332600771454134876106151524346680194304300712327634996713023"],["20949611721140527918650932590078793668144282045274258136854394137574811323398","7040906910364878315514067793765015945401642655233898938315495248703591526941"],["507538705258470316594272855682667588387211286901678818383881834196556966175","15968675925004804659838142529721896548335989574867381297556787882252300433646"],["15703124712981563983451185404927687089826045420201522859467764259541457844753","6862354907342940247964131036700312917303713864422370699906426530391362190557"],["20146814069236239535424238212108179327668258875701648745825138207614909251155","18615400757970351368097643627937220024441022160321119505818725316539340383903"],["23516911750002901047165749413284845650932422957226184986633493258844131425624","16611229859499237468355193181189009050285743888053596816908678654482220960905"],["19800958632011876006123882982921948304614316115466238503612915415016756982786","15170048662954907181061518870285688560653392840463029599272742473741798471759"],["1259254209183585287345695087999944209901593935351138943257536290353425495926","22792626557281632630391454611041286153586865182889398919427348166364317876869"],["2221418076320527489666895432091727221852680835667153608156737092518201195950","5792076039751629368705479098696417659905073208118905814548819408721324435913"],["28420760571492876205046372362599729268299917596136775647181892483277130397330","18664649077321075197606623667383818622609784158061804581188070714184500699398"],["25606993357870833427245902369735467697746118347474626323332231411933181725715","15295731451191164441285940024397861542150693226670057286672694139845567922835"],["6321214828469598677712954097035281138164705791954264424591713805997887901443","6595489735900067062157455527862858554623219912753007806276610506662192161458"],["9682538496196282737752555347621368763173753326906871782028523664129576044409","15185943621694989123425263828285333049860422354389009746102274178885325495115"],["13874466614247093652274965582651179438538597741752883584588622852793288998602","11815328792933987425221745449440836158499349532694700082255373866356285634138"],["16011389783788926497598816517988720870820296257229029146016380116596884004692","11327143185483237475730940908535382859153875099785221590992688836541972649503"],["8048524639029221089710018051678422288881271854318877985327949896066846019878","3553799172738627994306466093727591740273588195005799504291694028613990342624"],["653769160679778931919535517101947983794711563768470343807067938569162705579","2428076774362001920490194886904970531025250800062344085130606875005051192310"],["4514534397211219232540922909279869699918288128781589453791990939710466512023","1627174584304040296990827224431171811487169056093170961727654044920387702886"],["11385878346284734913915352336306612850454100190802901536115453201767227020164","10122205601989114303453094994605111710946340864096958282496680544237267014819"],["4737275460297156232649494316187761444195880913006580004968585414656438159044","23855422813329076915659747592628551706740914117576728932683972481282140486510"],["27548519584943298551764144788820421882493326807195246657299229806509461947894","9906954548455266935461731795933920544808258911765368215533377109203950299276"],["4452576825104847288841346572398946218127693712140101796316883432913220691086","26039576998589463938033088030264808069092315738115536936188901160255227696346"],["5518218799849891487584531851106813659325690311798389525613805997321731768980","22984459747137652955396897686212294650970012843554033131844191414668633824291"],["18545331666536023120315024010643470880605435272548497949183767755922112101322","16196968293412135862365882590890959962059929472265619520192610111896838548692"],["12121730267367424949014713154564498730706222418148869207032984493406156310841","6811911104440727654643447939853889430720853308367832004933165801565999539872"],["28790234707635842872809406958585179057246765190483580070281356587656351321688","28906845246623305431071808760650645583562146232516297832655329743266276039476"],["17335284423865872692388286028821192447514583741256291561129812961563881228728","2659385327244989673341425089898205283927574504780573317125001305579456316510"],["19811456209014311902346257239312155218278653632285934732732403994270132598571","10013693407280624582578332591306483072521145839694004778175318442657520481301"],["3957904979190494410828019371198729760602117594564520256003021055418414602157","7274274352693904289096598739900818034170600488719789884318710187992320963560"],["12781501227223635904750236599069058522441024822768326576538815838557140813904","7505205562476426340836190899444766980048563577777000643064010957732956547991"],["26558770186929199036558366697240418718670551260769434250029219991079448023926","23852057318341359311460031338582366987834301242847366797084981860433902271872"],["22748866002763056609539125465800697623484433236360156021387643928490662986417","4750315204633931359948763541801873178665335841276631449506287679283550853709"],["26622364213808279933484024927727873738254380473795041722513516264627412746561","33894165580567567754142906795869336373372358582882979263668085896071975102"],["9674594022135638102424209141865968621420149907422726342502413632845296648428","28340368903847638794493914054822443808263655751802913759139526129884338716752"],["24949170258478356738112236030298454545044776039808875543175358466009570541972","6942334589359180620040988332863245056474432974110336812131349538074953382169"],["21714054352764650054683125993994644237290199425474998388560139779734839657451","9858171581590027553343624629632764184032689973305603913790141280139500345675"],["24483133039565305953201197351916681479377611337066246988088462987235491686930","16881032568488847890124547370572156380344055020439106453798088636233326033928"],["10460862976968225111383621336318258475785290332750437486312694356256603666802","7967333240625787720628935019434501904473941417284675747562630834291102919800"],["7796492738420069279953137651957418172122586349323675592439971348637046915105","2171411459727723090682353642557432906596585156380639797219527269470743166189"],["26807978949583959989390294063870587080042340216727578590606412627711631439729","25689931000302929200390408617341582883416147062040123531383480623875962341122"],["19085303381486627222626244526543873100061422080256660761585343811174035868093","11189664512062667054599437141093329604565089714695958361899187413895364947230"],["27394858204318456635435376304439235229104893582082472586140934765924209515294","4346999960204454644203670229074181396818818293948132251393805125189603765010"],["16563872288825053238352136944206517390755968039883360273171492164397286033673","5522077126328229915841849192462968150791661509270808367467820763974315940958"],["2210819507290293423172685311881656246560744026463378380391426862489919101664","12357094816889007336697297706959791770507707556457704915136796099914187337004"],["11486388703126333375116486046894916878100777183624099039980610825126181822477","7239574324802817553271654179385814385638084067440036545210494337106164413769"],["4892315436521633246291773804366540247294400714238856721842573925198493527684","22782035754557277747684337160440470547702069146049981192738410439799301809930"],["13229819671468330441507054155968648813606648413358093643992394179245335389347","21679555728751597755758698613134609653061249761793752956866144480124618286013"],["15205436622496607973141854523653122115980594294940464021387100355219776209249","17792833909639302832649098159742975135570665984346659612703387606338883384452"],["27429154283156788739817331728834700678645716724005467001122155183411701360795","26167753041188031534015483501431536099247798382381181921673430100188659690337"],["9169608161296885035023621074092177743346260391540211352494432652770055477714","16009176671571606290191158215140288226328433073672451365395547218334004572118"],["4503247179788343910716856689525631072926057169445221974293036708603369566392","1308875173693752251789890594716467214079848763513327867218769915713956070020"],["24314670846422896670102633450581420966524238830538629664220505034052456914168","28173261597549908097834930595779876152772944550090122672258647506392368095957"],["14964118958318738869643113227745951761976470057932718665773458967551368939571","13410709572360637036002848577025149634532491398604043640987291823439138769455"],["2338626854564993795793461987976702968315585695920308756579175142331751617944","15747843663792109788402677816598808644326540382313996627684334350746092692792"],["8302639634764776590012600681310403700326584386189350806143087932021118379479","8069769709564680920482655724524656735332586188929765786585357019687381705256"],["8149125884472593156289633066683218148206760223247030704809971515425427307825","5191238451671166005057160731352128638972155762071075510352742182751299251580"],["6559165717701723893668715993336229384870028104063388794188340286235552779712","8187837646300431446107892117598797735873526655687936723702736162097731126809"],["5885121070852161614439722526587421350480707248732222670536336122788795241464","24316514858615657951726220656096770603870469247009600577856200545966074795054"],["4670829680700623294167387861691323585202986588713717901261181140407809890692","12101491138587052097821030927312285167314838633876811390319158086743699870012"],["24646480119733399140909720374076435059545878399711759698059361596313396379653","15227689068839195922902045144103060877416587005351089705522722762512303429643"],["23284456870588381097651857508091889252103279953521863986553029212624529339997","3962336860673901552795716297489055301680182177829595347693637639105344732877"],["9350241268549465509576607126016700224355444594745131975379308950414634995393","21585120473212242685020922590065419942721223636286654282763506182248870720834"],["3380892264061109422265005749368427700451113946583023932623187626386682552393","15965924315737203896013657691681161574757552770544013830614708931329390655117"],["26795025138104020373207429496675426171293416996730159944549976525485327595139","90438983688979459790589777732990515688341311446558817549269548798628194303"],["21274054604571997221036194978221162100430836467712450700238412313411499047582","27046732166920387457426024877982504872260682256204087106215910376896594269973"],["12595670169430263821092147016618311208171340939301984814909086762840170436307","22984532823780961013886710048934658332601041215285465029867715796855176263773"],["1825603114862854671867079620276828072516695541581797010364328405617993776887","17211264120671950718012246030585256610649400538233203760128642273613285158498"],["2239262103978872370682074017458698437597470424755179269546479711009230677292","28214424444846085705583788156052909873522625886300420173376010390785611334408"],["15933774623821509589400012568822617918181922575409458965551801627279816771059","14953387769539179936401048519710743663715527115522295823694144422131530519171"],["2918584633318873708782931043647443272921445026291283093084876641537828628172","786898693045090982474605852048040703036921729339826804905615188702787236155"],["24372585322135426108864890732223310950501126682915716985005790476405623180534","23070224537536658950007652294686559132690202296799069845496143283958384182608"],["22684389415504630595491990469153642526895157280723124799093105699009291993523","287994084776604527291776460900674423793845244538716590781195830365550443515"],["23696322200623737519645601015302025482773984325056654257898121184691265973897","25804198301692225033883866621932494201998302742629891856667425550798536655178"],["6030928634811489928255923600256063323477409738570798832609114196735229249191","2780275536938362728327451586151899915185542131894682241656190235449449367133"],["8385721661968065739828847981840397287819586205687200468031241237896019488368","18927724124472986091001506722834674301559221221965073337842758856334711957924"],["17379603219881396503370234114154874159252799980871912674855765738639387559766","14610399297999436423080610353766570159311153762622616807300042046510948609027"],["11285541916522019039772621010082512866210680571783992522452044179306130334701","24765571497378458133376367252062467474590887545499225123765715545033155539763"],["3585235460604882127524114050361613702197398684773281809654691571485715498813","9820888194324530559655960364758516179455441780277846687738257907859235939673"],["7464350881265171627940394789503950966857058779953456328257084778646379997532","25571872598768085282420063191174460164665252395483349453490429372708689647364"],["25248312288250613782762344085435233198814449134931931999818872024658747398623","16058774988626354039512935770089228838483627022350655884354795201411069083839"],["12950342717753473021493393827292098126963740379660969823526616421726182237483","20365292141005189088161772045255465272161946894251279991405880488405327868056"],["1534655180824620331810222223199192190467209413799869126135069778702562778860","13048436539264940196427376995660997632498611934535808460754444753989672184239"],["5383723726316085744812898091008689243367747257000410961000772139308112197627","25409587021520208715244937259082390362613384104220610448760624011749240505605"],["16041593959179328048282400882194537087312730911759723415964751246793855695283","12633852091967832173090097501390115059604575691651655231982106897205475233522"],["24506158642055233748234865960860137052970402097288459733627583703081130551535","6358726093893929696678555522848978832422338019573089915133429447514705854072"],["26048621086567143969451491413024327785359289311006341727882979064928388055626","23876276256194792459340665919554350787148330215130500654157964134707626982993"],["4718533140072683656383845499499587617572638426102671283171901581810263315181","10597310682591410825041827053724387630211945705124772182130427478755841775108"],["17034908479475274250004092785809659367496279294533794922463923450117918835822","5897784440811399647668216916817492389171276237547600216947018769423372377280"],["16513662021218480629642560633667759030954996526348644097078618159547647993049","17678461919210076756081150413858261639955148604947440905582330775706736378510"],["24384743432139725218490513553575589777421560959533621625994078124182077708310","13037629492509343763470734400916052425137978474758158984146819523812186324626"],["13530452263288029561858692468570239695550687577186464036319308418723132813772","3749852254876996409714910044577945748359379914291464434356773993315290851286"],["23745404867341131997720462566830044551487070230437748110504399982521064254754","19056964176040977638871512724953424346359552378870532356284194920814243832824"],["17570341055954673533883728720856621576348864564586023354791531389145480103835","19914870461751805291445508247620683754514323663709587327683100323665064637702"],["2947130509764083252140130819386475807678980658072113106802576756996742987883","10092518105266951895657518078269596856128127270357089088479431406207296753296"],["28738608141599786089640464867777014208560776965640136670143937841639202982470","11111114133704614224452274592553624987804989896460237198354735583620291638243"],["15667844534546371042099992631155908123437136629490852063502684611760837570865","27056267897456558648602000988611573786263062711151698522055179988308959001988"],["11754827498044453610971895532869608204018097821559628633460210706748203481810","24822765114148483176726254038671606875016440872295197722310531127302507714465"],["20037380954561714856973414001688707669573252055248976273354790510060942139161","28941496736641619553917783904366465422013955154585555732276541817792345209431"],["20820541981848979752992152652583109517157020521439263279391232540847792500386","3138701700291095085461830959090422209305927456235057516286410582816820653258"],["14774012471503627735244999115424174169381588756237229975520909611210220791509","25335040736763790714332146779767575657312641347230196821322300771906422667007"],["28614104015045084098328069134060229424512937730647455639846492632482091982671","7850058401569314508243835134011959560614456931809142638414307077306258081357"],["4330606285773012390836239909638418857524476825196768265764677721956652928942","11854697962278882501026199303070890097066894597076924340157366116828825940171"],["14936963794669503062375419939800865955339092022720618753504194419475216325238","24453697336047337567826420539973004963834802481058078860515801498244440585760"],["18424844141801117598061946795335598680891064244197567015286846123273402972767","12333082139133568515401325446767244392595197454828311191428200989352291692929"],["12864234068290801919242190049421284301832608837532210147193773614838447681731","13019447214042024708422342607400772530228799767463579528169977449198150476724"],["9670175092501886488706219513453844747276916035360362336281540769769850828259","3072052703462689639226545848538530925813744779736775648081768031564311994572"],["14785569031722656957947716035831776234691525806839179224922263407197034003237","27722021459893606064145611336655985076949833194653405559880545036997851904619"],["22768507272533804056941790835814573200954687970098691086516146443813198846402","19660240639716069533628882397919823674384602166458829966171529395233190910903"],["24689838936854850261542749175258944731334448092801879456269677914893631812538","20804983063353925593493129552007169803296673509790282136693253651380716503888"],["3057675078178868164095632374506795388621626822765869861156427239231199701086","1359353622316856198074152375120247299796955912549083128777839514161994747686"],["21870568050271557001295955312583854243216581907471120905776464979293816970345","8648685865388438084049864970586254368900440244334661307886083860138472068091"],["22581224968638774326774278840755277351003467257171100472677780766795127307183","28084075409242384979717816044658056469892378542909142793064853927725302999509"],["19143297357030650287171007458918760413799194426707045178407382489912156648117","25928440131093648864580050719564747796165671209006145064212819561907444384460"],["24490001178903100477334471440096629092057725835347526919519159892116468637126","2197577190475931291364781713888265381363033923369980348722823704612130524079"],["26261936239797041730274362658937828858187087672647574328102706217800761143041","22135417686029687806893062031327873345980775314857106410505334836803336065385"],["24325754667825175092832171955194811141340797000754778367576936715916726758627","8488147167822356012126841149600539981180792967326145634576475499338484475144"],["9683979063154387490444285775470926976021844458797330857669144759343816712673","2266616585192375551083618871105468955875483514375632992277281591586369192141"],["20838296366589608471679115781213458000461455778941043382697846144854695341477","16737378824000770485158403145624545855759037892821473944103361801795878427765"],["19863393051361017926245427560003698694302762163128663222105787569399598149166","7360517432263553834850747083171607243049555158645058571093113576156955971250"],["7968638623051868247037152425547298534321318303520756701446921603808554874886","4060953877964604719115823854270276880833096098032783201828386292998307174237"],["21479611396164743245184319416914232315469421155787180637699687630492367664602","24433145706313754176576106159422140230506657496504650916862539712617695830237"],["19167578161139456026260890423659494651675129290370306621496031469659617752870","28403607632408998287868080990460433356014818849774216768359930619060604311274"],["25964216418564901500931058544863145790307795956809346448485046587664086288307","25119309147588602231169067626404337766019820880588679416347275098853559395317"],["1850634583273105423807184051202798187652112653164676995682172491011761880979","15525717773483493200155228588972394754986022771518847084791301491380390761442"],["5566561060058024833999461916859172162594568886961608104354328356378040251762","4368952556297817815978585846151393123230605180786561615629497871246344356557"],["21050751036449277281290769234729826616006693897900779242635171266415543181088","25433430954511445173636719121832529739129022166734253121182150640576467860423"],["25457656931419368802178697106769489752978964733166944228816724156771321657488","2973608993236514161870046502609137603222011774426348278651912098559476891402"],["21238954775530536141115568418155915783768805323736432254579193124571813197801","12966562737086757084624140344917478173451818278156104348295771050497537795822"],["28124914162393489841706114018794450676886058804212567414352469698008828208789","8199379465933411165855474901465376307871745516875881751984888774560995094465"],["4950023540716755081180708664600341287157671239703110523609156153524318277895","1903193708927174178195002311737073595627000394802895105643207314331843672009"],["16999950971550519184472237332170047665288700709224923622173782800124267844409","4061585432530274463709905542315120156195696761119029610820208376524864521432"],["24628787031450684800416345676603883633572117654397307003424588446055741164810","27375081882532070666368253012628192443582468695542145998438047317689034548442"],["6443345001497266236038817621115190982435135399940865838361739696630144840225","20949514969208837415166941865488061856562415318558681178166247322687932918104"],["564803916236073920597898597088470438533241376287261532377702740094519959788","25569746652184488310108344917863723340860004625756199458325122588067727331179"],["13890693666112332069413065751014818066025137485331161408710255098390979307051","7540870614023391734624910014184799398363906873395501292562434730456105584894"],["15106371835656222136483369772897767053143705208911710707266752990495888290412","15944786345092794788552156760761524059513251630958429340460218543717467380217"],["21065500230691314593638850576894846701729020736204050566552262954546081026186","17634938220365292522949235721406047928807401391339823135104511189370950615854"],["17330975935103470906733824395021337374971180802863445914327722780901268289841","7468806726272730483969325215566053892102988164653943082877970823222876445744"],["13243976814695887532940288789154681742892094413670623414490034689606061388466","14208392767766019325132626171621434116545245392979718993108196514350758657524"],["4388076334775079052243447012825609901422088783648078462134088731964149574595","4507912760918683274077043767862864729613333207378623645019365860646975183068"],["24502923348120473781146041754913758047515615418335804357816964192870047198658","10438669130556495193579706302467142726517594195915296672120547488524276354385"],["27703618836708520052778476912517487700116283553961465139815969173617846436110","12792635787212757578253159339500961280207069746115426389303001319990385972820"],["1259180445575493734243099030185688712441817054575320732700858261729507625847","9288066078177355050920537664887841899862055454249309507530183103567555448141"],["26114860944855698607088490589648084641159460414662275749779317026519370410442","22109619254351054541118276505904393416894365588965377364472676199381794704893"],["10456458032622223783505028224077686938200714880036666612296502240654317460558","17167375668207054073282567132922919437999420071578945732155036421646739898498"],["14570215455601396993130034746070233116297989151448869096959819296248417528005","17778168992015792337932687883681751717413736074447017535082452261270643330622"],["10982589017045649171993275334332743079928260031152938021591906566928539629680","23843492424851542137850556194058170565727857859931405341384369560200551199649"],["16379577540869633682483256859707176219671606649185638143371168915645397045690","3614701275085911869206413780518667423470895700673825459792140113965979945021"],["13811196970794459900159421092602937814127237863206588877982081750431727523006","14762126783402078545512395908072702226833329787038721418181177928861992173746"],["20364532971414591904519832303371522027768757051643260093236995627374128112370","19224083310210933568000604890970517484599772747978235456766951094030453692864"],["28731976022964833016903537574179739005201175513875220702874121105344067230609","26908262471340874862802200197323301933446807911566700748481867442128445257993"],["17469535317930699786923717590698967294912006678854411061270338491503974682629","8885512390235666670274243119402818623481017844957135367873281353295586393891"],["15579225844836012447056096695025714169973217118312720864150845292896967469495","25978471125710816849969277727884739678007372239559507002700387463192231746624"],["24342871057426037003523223838263712781958215547785973075225245480149320473330","3199565474734633753968411586808757896354450868061863840420053188753070748885"],["9165515180817727336133151824642705839409447682081356521186672219638449883434","14642967103390567914489838519203107147495141147648177548115550144974270095441"],["17396261708248360421623715359935972119559066929116698861396438909599933316071","22223116452568220628394317039843226711986753837826041995396203187321738004590"],["19902849323335226664564840297757241675460966926310584793825442608394735090349","13352798260794827930844277452451983308233801255231768827782840398743872542888"],["25508168060243591779537035759007489929323020563826015806387226333388425433295","12347953024157861454800424521332700119390134746098796143562033760312613377064"],["4089731457867253214486010354558539254854014867029659933475603242926126308786","10898911123060986756879105774413518380317857249961232268949665536221378539260"],["23430516180657494255555194870293561291866952117194627098549086136551114176784","22763895421053667381698138201455944081354472692468293129677666607171088225830"],["25345265432896945890562783429987544911263025952033559416613903238431059362026","4580224852075660423445350914547427910419836512491066138517277914575776044636"],["5191511755757805523074656346346215204560467218421993908416524672586316070129","24023482387418456278570791255391726123790814031844075180905444644546429457561"],["24187692393233428527375571067848811413320949428475197596398651233542471695824","14223536807528985260246204894384341340309255954198756383372704549487711908946"],["27504401738418804570802972338447239004695457879704246587630295496176161268088","8391443028090729013434606864994110800876179181409535254565974811249709271913"],["21322783795750296262657709019775738126990966233674491293751225703027876250874","27018486251748299415206440596970944849172245823603760319845607485187860356343"],["6532904468413121550773496054834582798757681992737074803819146431840300092282","23661969401439830768521979870908184868283706671809334721255125929814672980714"],["15710936599924552998935041911174481161378044778368558617017937291105591694340","23291454361565765170541317874902942654468005996069178308552699007207764922082"],["14753805984990732040137211569121469996617884080907387896572588331578755290820","22452091531705172397014056950569631500706339701323438327344490577992057158012"],["20332359845313854464434976824345135023972010905430724085147099083187928196502","15179941692661191131517391916963236515149668132028450274724478707306969906329"],["86884702223029611567540531973087160951985307853355072387903080965684942267","14316981969206957726493081884199312357230828909383530098599473684473859685947"],["18670796150002067421400443104091192526504363726162431582180933989078505621120","28188214505803892725835356350372618126266825107462785851215641984259820961332"],["12437743600940192123800811615946408852573768377917455413553646435003260585751","18972511458157761296306143180088624703385321068454380486096574957651115786501"],["10026978748686114664526043084465237655102411001606656981971266647820443109065","15600631891512165088874496752570681592682175346087132710540089613524622567941"],["6182604715330196644377959656155288758434638179527690306306029428946536586607","1586877924404079130584194921609150698046207867104593891481786282187339943830"],["6707778036533905079047818974545735488325648941828378065341122488790769322170","10288423918128806913771625296089225804145215494273622188603931040805483741892"],["19907022504657055007156833609786992562651774506517122718942786290310776861519","8244424661756245572868210962034631076223811062661507262050470191000411930999"],["6147972030835063204542538070802874472975753926404563333411270850217733161775","25707977792934528607734235621556699535725996622409757970702894668999147099126"],["26579173979277898395968305159129466320027176337521553838824502937302676496224","2824801692627481627518749040872806479429127962085014864811727973277800663335"],["11962168557023056843629221285643182540430679801690882752489991303587989120572","11031267267218648452051391798922067457026409805333794798414438473256379892286"],["26473939487985917056594196204880823761509384144738023280358763517172199385181","1907307039833907980943730950085986272664699028668634019303850051502586216010"],["28569837574576206641247510328080205814871470907088547662199169741698597391376","25503983600480292106371094717146147948271045960674163774524816828992844500258"],["26641730469588889482566099706239221477335854781918809805072521997412421080018","9219309868698348055232194458815908041817327417873881821106108380380476414639"],["25499352198788322206218641246986402026957384121300079714944350075692149722912","7592908666901659417489999173919733083419971557567845976664736553652182847359"],["27670893694119621779347033291075883017260305957093228198333287071878953560101","12802755005570995747783848937990342794969103596231554528947346653486839819222"],["18714119144765379294752034199937410364349855330920206772950135664092972599874","3175306640256149735987145270292180558032187956813447800013411186853749197357"],["28776960162543562758454419564262213972917958761194864727594265069775945648552","15684424111618756473071221564383008375132790515552598805806261983990921088062"],["25452242419484863744067496318218706675285075437326439287440189899205567153605","21204699761282781591182032735268384886136079303143619535749022752027331810963"],["9152760386447926195952006260813813027174291586253773577927293218621404001377","15850088361318770454180634428248877051851167908636943235908573661933304747785"],["996638412522595804724303008549286553658490551698194291085943791004886409373","7061566091957164536959684320769616125128932713169101859763084864760918753459"],["4599485850416888480530196047230056702859178639305564695063960316124720011632","14105669126939597719136501841001825421912812352773258200765946075808873390525"],["17770432553225506675698780145055415586897247760012466304206567495491390905703","19534806897550769200585374113126163868837908563027006310935856049507897998604"],["15109307509911035665520705508941136179813485292392333004797217196552201903690","18392347729610020793296643851467333526026004682728754226776517676924716883238"],["12829560368505445749184411003379670879109102501347274533520903051630561660449","14289136776186794537054078020469668626183095424395789798194007633087429926750"],["9708351638315263032067631883164921269701759457944922587477999263094454204947","6263177595047844484257884774541004645238809791971565116910933288594881320310"],["10083859560679031433953991180263744431274033699634091740910555731242213439515","22838934929949045728874474956441735405564560825739261418773538858564316945821"],["28004931369271746318754310294060527795445464901029620116493241611293706669681","20629918890390112556982197085545377539037361223066923520792790608870615763154"],["23784284088912547214162127370331346584465566914026438975215852076834880468708","24573165253343947908395201867978222583640832632012075635728496486639412064758"],["10659833006103052381163391713497107237948093465631596110815338876488233032406","4096390698979555686087874805347943844502636444628143865790347425850361496043"],["1738311408948302969654338695412834625288783417014848146172185366332511999784","627676120207273035956888358238654933260402878447666843092897133291661374961"],["12759035858046603495376012287978687306591249245259499761030102787704543401230","28447160917541482432962052090438571591121418563415807316309411400019279314033"],["15784263808469080160822287295437776300467594321405313984930617240452237359424","413643928447659126321165459588662840013110287600796832427816204786682380757"],["28539784141295497807494985932696876779434862871007722711104238396782369017171","26025469762256240906683023375634203068356566470600859926956547376772474541782"],["4444501442431210689839746613113791676931954014490740405280763648761448973791","5060271593887682204858552979346210520387793218040010076471022807890102649606"],["3001268257602924110662378784820329470945756486881654004028954647445803303021","2106869430419434646963546125814740472951356324399039677668031489537088691534"],["3998865302216334305593491361362629896321322789820155153492002017274516720819","2301567041209164351430817616023117994197825903049628180893142653298455253209"],["10919442135368950001667508149508810456404100781895109016406785649359822761482","9464955701613005390151015620192931387881581198836249983479682827470946499297"],["10794856332717434299610956622952557280581643036813067020993996207456369783961","12029822558577745998596587286578530517902777877118747004413521301425990640869"],["23602738182960130974432740251070176262936922873132551735167428267154707238461","18027633306203686068369832537434023229601233646765558381437690218188508630927"],["17710583024243881798591353370074710666410065893820498288178293633164813201624","23824470188726466711902427376725520753377474699448837075408385112731516834317"],["75554945705595616100439677765056752352020840797014571272725845187778366815","633174235261103781850709533022392002377653581969657254904765339577543382657"],["13580621754201267237504630972831704661027188806899763901480076024338586496584","28701180303492294057933660225377809166551182721048731357234761576437048201076"],["28460150011041537021478507227730257918878426765643223376333482952098814294446","2863097088003645374382736635409279457110780401294030971959598648591258804789"],["13740390250158489950882456949151073357318969022033430510953114860460254990728","15142617432535927708849353337246848588068805065436955419159661986891866710809"],["26173343878278949907510841681825968246068519894173663268353025687003829686634","13156250550432712512125500225386929685662433405336977464280690805992259190255"],["16840451160427844525661749256906242645701379554184646361045720400713721363295","7808977223959714259815166641499795518561474433368857697996736928570900849232"],["17685521267037495624469000277212701528481860100502973560692484227125896340958","24033365925136471575637942342022841149420648568574023611049864887619114119946"],["6894595934526023955061344620214359778298613927575267618825076317806255261719","18078898593531322085511376002091635484297096505719854229254906579075230332044"],["5778111576774979017948115095158152372926004381517074374135876602792994198338","8885654966069567757767661447470185921269526805208959477652755220767792394141"],["15077730466070928100999447275349286186207598424500236871670994269090587673279","21275200060507330350354421451961299085980920971704615470575718455592295859563"],["23751090119785521387868734831831217152924616383856881573482127780522579281743","16116094017895303936245015641028689740003702830394399221626666878014273606277"],["21909540541097265905726890677131684221353712454369634520088956516500334525364","13913731843008984568169834817076408036158810094259472880229079521165649788711"],["7565778190011409123117207700314514783247122063848885480754122578032928554459","4657589599108166218705154215391764978044261231732161082777694648071727817712"],["1892915699850575439270266536499756579677858400889531812239434791114531175558","9073087622198773201505288459913706518737689517491089971451336784915440287713"],["3610667986690400509057767000609838536733586170967853098507678088852479825067","19311730080170241171515871887006621039824468466850810168599766617422385772408"],["7209284618081504090335191531690717666966469588984479034452639599306771227095","5786526365719881757215998650689413046668113884863875867584594004761733224457"],["2230495329239254298852640432612497026367047797764979202215361131120014408922","9156596145195546341261948961069380121199751100829076212554657996996133381610"],["10646691009280156595465852851519257382612371802507460340549090760119610136881","17771478646347797144207775644358568769363112264961999221303800888493995012864"],["11130424384773523174354054444632311784086284333793072905408419833976454639905","3054006925910779341474909871763841609167963680244837395665810710517546647601"],["4990443743642702199916929435487284175087478608862925816207494724551307751455","4456079672432737232199307073723103007089488657484224070367020077824570611581"],["12911408060570467501478779523485507561413451370416790373460980663510929473973","27368080209315095298117666309211911955653687748569003412875855230563630289062"],["14514607923666027303748160269097102025560483377426520334735130891681921106139","18668012448324797124885251679785244289421156750835292021174859919633469941008"],["23601465616093998070662549734429187710877644337056681593335902538824377860239","3016271556476857770875131561073308375247993299618880655923896648418590460369"],["2261569225873258158986021653373742206617607703287795704535118396861113546564","16819179420014934951042927311360201117906809772114516833638502045605449137424"],["26495834729574456441938951332629300388341117844332684633457283272841310046904","25456433312415166327475112749657013428219183947738716652734075761779461116517"],["9366356554698990599266149839501928096026717537055214247512903010077465954359","207474996211734657825212786195341710920665176038862584817892256005198825733"],["13545701038681745233303730697489796129541975765085926167559999308714448524926","2475282533628537557183205367437762321978558155560060547452356570267722690288"],["9773802628042937673925222959222086761046937350741684806073394670348834474056","8060534080297336310409473582798522118665318215649404388296202333263668890205"],["7978715938010009712657304153744107635831685421996301228396378588019329002913","28526502508203809147920772398973945328979239146415188911510453593191927386794"],["2098305721890416015749821387696571913121738027063218205182434591085237114034","21386934578548438429332272998536405053093819512663962331024395204750882130162"],["5552328595560717127249231971179035484383580389843427150848965796527264143044","12745918534325717572516718218092301452938001844163234341040386627617504810035"],["27713370414094581753785867468169091597921461368962248737664179589622106291460","15853398079335512739394919686548347666496482551833957333079918898214814412445"],["20004802321904154693838751663860019810007416587257257043452347180883182512027","3147683391135978718682859745962077432018598193503582272590287750574736140882"],["117516540006058003761657539442989074875723640529015782440055827237316452163","22429617208873037237303354784454856157723667476120894908368628964724220421834"],["16967381348833840018084168728901678200639438682256310741635371417180334184900","13584119246069930084403491180967377561104437455995548060323699716463185153947"],["13885401320976665500557187466631388006834967833908337841083109881421495991910","19833419113210464457651400679782522123155170851535941750940554798056124011278"],["22792262588286928869906306957955731331796260410788910284775900823326025542124","18588336821055013239366277162290412472035623116103601923104216361573220461694"],["13752080095376087276129027819936488976037612601652718447797928228002226531366","15871146221931102400123040241551800336860443457521623450332136973719135340126"],["13241630361274028475320722029387718354257029925354138975922868611884276394564","27729744891004915430721302808565180974666336271926591980591802138354509187837"],["4568250150238382718653679345422768253964018765266297390973853550114779046065","14555390353757132769404783974426755773817194753183987457822635560724930537385"],["16392799555790130767761774509397131533042098367936646244600705610028895443261","20740210770817969243491878210843365096122078907886848804660848099020714409484"],["20850922474582327793851002271312500325902222926757962961732864799218426011319","26786548260590084296689256858715834886051765841061291849807727278373797588827"],["17461739741628392222175476787610578653854484053586593623848729468628895197340","18112707670149055301684690577150000182151573711773705317460686393783503853684"],["8060668470471101050076073959860341928703710136108072712285343414641269858653","18645717588601121062747036941186215430436666829919276055030188119695455995849"],["4014209992143666505313071410241330930582913340077258837845684921794750024013","6750761930418497491877389144903395236103812198396408050928613540786849750807"],["19018902911549476617828731439637863748135950570247035201917567040630539535994","10173503662485967697843920715385186358965826847605517423240236445041103827557"],["18738692369422659325864537879177456873787909771081295262018447412865858224852","26415610490820995898948494126332884656236727241409971436588911955502650446014"],["23535571381816519627932550699403720005120977913591914519598178296562888154234","6982477101332598352781948870516623090192310459757985370287987222396544351912"],["5651393981636990838066890906582462792017411468817273836748752406731065428775","20074471332114177899711841967115796939611086985059892485275394864615891602720"],["23030591952247266333888687800009475970511368913380006645662682828122413385013","3434563587167118757367574643636045917362477751389646556486685612346283518845"],["13277052832975797782179515218327011500910197004675185526304873117075618547180","27008643151471710433880079981233674770307866966088351201574804850419352757109"],["19924988041460196914678293075813497401986523317054133805160719960644396346684","6522197926875524213424742036826831219105118921834043591652242957314870973403"],["17426761916844711283126280878741362523282197518455384403846285168775593005360","22964317844606119213209984827774978772274044874121729072358987302080980084393"],["6106602185498448136815885602175224741082974183289385837214927499018755878304","26987908483004087672289492002333919773884217092090579516176965019951525090124"],["12173397755076490428596973294930068130026701755277105642447078626130247587344","12799198381438725792064113437016638593287166888255916548400937348020886400183"],["12104974719095979548418091287858593720474903559443825948904938584198550844056","19121375142544445652163443035983585076322313588584363833498313410502148882095"],["28879304169796991887270719716810951602088684122330617476409196939978016639556","4190475250254521663229309086564803458315912890696271907002784194582281508320"],["3079771927235142471781602830106423477153107707739645137098598271671627120289","13022297353477453812693212672144115598262717252611350540804830321232735075054"],["9494775453035058386842247816580615420307271768490115436491019776877759736889","977628003044905841361956577467853705670567492199264832561878413536000477981"],["16361363105202395914447610968244066817789006949000105544637674360967803837330","4796524697320567808062469848267579953213671878166039170064830246532505485757"],["13018540815924321713810439745366282357102625635400815902207132964094436083316","9576895008051826837492886385902722438818102711677806707530472782745563303631"],["25540129149937296023688005742463846567742392900065400120896672246149164543219","17343364705307080858589238402251129362435249394132318952055726739459109416557"],["20315029098211898696418982670116111371748236699794633310059079251204459673392","2902510056333235754554093209378762706609762350730672909061286900452581962887"],["21052512257389820800931355691626400315304154761837839411404741649546595784542","9095591178996725496977021286494552603490309800642963526496886295375012328525"],["13925182798780266819134003178722033099474133584529523409807219700940657264882","17433507804494038372355394239787269301601883539957669646489752007654494370227"],["27535981628539131396522786060393090870437613976960897362898823846208048358365","10587762902025561772786946185878490793759979500370201157331511893101100924432"],["23832401987831759423680476856400157687919554582883370496067528390122726543070","3644283669892137741956900505791762672631701678064080797856327017477306637896"],["17427423412277735770179252969145747303243549445901270645483595015611703806691","13616169399673314246818964893238421885418518962628834497211178047450119057518"],["7796570780190185411663764661642440556114536674093009165017325882850033499801","5504685308779108470962063954353722625576616200134106025961669479851927339374"],["14462388070198825328361258457558432219283782028865110040251273976584184166756","19215203931264298440645300035496272658292693009450785747454839814453659696032"],["24531857208700863327150790791414815099492405592989340710767596903344721806020","17744122861160883828599573143503632944799630352111875107068792829821679560936"],["9875456119223982301241853185460839718829920136602534428929712418340196781106","7813594407713420156649185481595335853150053214671903337004170591385677519208"],["1810667148862442322357864320478945996098747635714071340466962833906215491551","19054045851207222817282692088595989022418931537993880802279229868296945423255"],["5034283903935351508429103167159996716253559212664769195089923622571423304544","6812293763199292304633564508225011730687973560883256222666821632556419711791"],["13259934325140209353093163590444746561776039074897163304097527110586007435537","13419666473697327997871205058995226868505966795207133500550071975698141684540"],["5268892588242213641409819899906908287258000056092554933012567701066253582988","11131982613310200307737897189659459290324214202267781250425856237945935782267"],["23357245251766959859409100552481550276337912163518817678450476039450716788981","24340879893438613937380711795244489964644355189386430255309109146995011916014"],["28811555653392473005250892788656277982838012251200978934896408690574730490576","21946087475908562183525521026080047599317961541187964452029361730141056077130"],["26394840191787411071572002557345439609499734881873339717984738000079353323440","16890786524555987408515298707048250879547809538311841238842976981927848465069"],["19241856327409335548911824385298297010046242205522302640227302912421951019764","14989366549130161100801649185898304157919570536245949220361346438197890054572"],["2260447571350822945344920034268771187484644737973115180904341901385266756218","2809506990513640248736209632405230536073303098472788767208925510773927030577"],["18644161872177963983853099675095004669792816978495927080566323133904486474687","8717429122462093659854409527194510561169035818041275370919029548107170018832"],["26761383017469699177947022118880914729971751862164077629805533404631410898852","18043514559690487060280650954488879847188321874114441050260948957932916298904"],["20136428677722698052052253639077779536265202943875831327276230526203969336161","4459340658500963950249673869358600234870681307847647665577035328359567256872"],["12286786754265502787659055679476722794093967763236205851056896760496959322810","4859875104306728553822001684008957658360611325439832702145979876762134269545"],["21993604575511219901618568054048186723904595648365219771424295475848804235497","7363796933523034801695255889070032886669995046063150758009082610307628759764"],["6656658931939253256755759292544844704822323726793717216421206291496232642491","12692633596112377952949420267516857651618269752535695872603758503034770306109"],["491120672249240815490732623256215639574904286205918823149234359883979722173","6314890905345802564211678324426555988321254819970464605487357150645935705485"],["9081864737595234796323022636141818577587447140711276363522239753199108241095","12659387460253581559713346829876611749454027506089373820207367084523244023841"],["19398442909220902641486430293447955065693580845046884480740854544464299743487","18335875855681438443307793298661524271642333120933237201947105708251287667555"],["14933237128115813402470557535026399638699676641729000003189788718715685636551","19768369063250727471009383856452113706237558534517563018250923753800511355620"],["13177432560691473423143798672858168507488035466428361862047140079310936936133","13890039151963545796379904774857673900769899650167280518921067955306908984293"],["27770441536854178981916255114957170542986633062168671024566712306735258691216","7972011855811669642608691918811779877523668266675348294723943012268222617195"],["16210537723078180042842925933073250881061392211373058453198139384074133850437","5236865226135280745297800520041430008181487756913560138767807013344827532790"],["27152790087716179717669014678217857856414227005415759790261085390326038069119","28702213739153839851855502211974181335754303995951642580622879923132552022722"],["5923589993213368249649602937768092230322970929300329324550629962686273343588","6375605775900927482179358737667487391103786544167379249816167182273172094110"],["18013092910293836044025571209326079048899838200033458299849889319864302299992","15981549329987851025139352509334253802203202332267780784876376924124628513500"],["24715081085260266471909368459642514778889324707925426236440667941373233477990","27907124683860625284615433959095099981069628375996413735221912949231942966038"],["598598357266232777293794766952670992727454060264987829816071102346663499978","26812471528123561998102619948156512845914825426557406865184367470217800710204"],["4685779815887968548713468152308870324461673345837037639495896704320131680978","19537027366030037071010496402965334430485072993729506604611557954129301944938"],["18260538835646903872510419845395452971646007124908087659898981913263121814251","1023020713360792131013892236774464211279581511820152471481238127495716310692"],["9058276984830991960931112381543517714485850685301919416304725310102152066644","7966087317025192059320847672221534144817383947332871737870400305020872012475"],["10800605671734280893481563717944772292023681016852257989627262932829831007383","13077817331096037667384129158702097519746444271832077762989716728504678507156"],["25168675309266220015786591396691048281718628934584535540799830990354806361443","1617245804297012988349927924587580451818332050381760254519487146008155660058"],["22761520199281417888271902440808797420003885778942023719985485433062071527200","5205045347553246622297627495129214123518747685436669825448634866934082828550"],["12684077278757352080636571103078424222244879995690861371672158900193596173662","23088462862935990753791658804127404288821206741330850289257592098357200795975"],["21677943748980086150782328156931526964629499959984100815762957647965891744146","3994267338233385838652798999999162112700050651409068314036612193520399303586"],["2913940482947801395469466098930917629543735231671356657659436173406488182770","17771736284572908948774481941979331965000831103848055100222818333023626499465"],["4831760706318644780529596105287373369969273762110213401588138574937781768704","18448617879028094507600111975161806442881629832799221623107442386337343779961"],["18493446193827837325893258273045500418521196224369080451337569995522112291565","27966461087961265738527351020394374682113337017299209104373648574525693854996"],["23295097477653697736599921268917931987481491535613470276561653644542348565594","25005929760114062943401325074023587145028419781226805137778693041892197585946"],["10455377285379220314266791298369269642143166367991716059034553045413415037944","13598071793307850374682852056372527209388283611929806797452558169399900593573"],["10939386120397185414890123404637773656912064478965331512097897746841560577682","28758592718138440806619316452952481620570847295510775267914498463579125483463"],["27008889214341014512696688448674091519265908569267833932655145442955114137640","10961837540176045602369208972423363201572211536551238401296014058312257514757"],["4328680155672018394352224342627348934132618151692159914065211087351861844373","12074606555313772319021584968767052971009781980414307957782770768654533005774"],["20010804793928419257664487276400431644549682875499428100435290828666006266918","27472731048385538467477791980133908467107695700587210702397526696526039256193"],["334007171283603397221806988728330360455664794462519703289011137371986391708","1634598495891822144644505749884514961518527293108316150255210995160585628618"],["11535768879557599881493218627194101338983928049488123702806404141540220079553","17942784357083769647211538198487088437677630155604820796899638218570959812968"],["7306407705352733552343598228008756382808829038908490086586515928051941984854","8285175227465396425453395001027848579938221275429178489655896887839042995917"],["23096969348561119691088465868674883196030839369456388329876101557995112432765","8319476586153070836395258342292926607658105564275671410104314510872355136627"],["22533534117255893770868064537955218171967499832384451840698309858313173375296","28622462727930172580661360021113668701597668728162380241615910974661860579072"],["20460762013019245461198441901622107316832639563410411314814771175001738177562","22123672947736531515820553589057698311790043580170785257775924874037816366457"],["23979074099676823130983270468469360426117878175161630228588595638770279727665","16750488753136107033624304151442051424782762803517911966787048246641318114627"],["28517329052472245869852763637413195918388374635656354282077984031078394257543","932687310647754428269653646757847537782275605502767172362585815262309409371"],["25975575614350797624789586834634586917580624983808463247368207076301078893024","7146296968567731820915959254460975519891735376792433048958376051625020960381"],["19008917295752274245629878336783932171304724396559718364757473134237181394142","1123628729966884406342001159365461485980143800299447414218327148669734872094"],["96755319869449433009193995483738444740754234869339292200828323221637202051","3712750606550403809117226023527193510047649239755526478251845553833501535803"],["14649482098505708219524738491429806008414769763862819260873780872184394270381","21030749142191433828896707734859890108515333861362952552069331597608597843143"],["19241821298563383246913019425281005669243161741130081631115619916544677319517","11193152644616033681811430123116669786989854679990429492021698126446375120257"],["20260735309900295508526165703942362974856219427991390610674274167562351031350","18236645720340014833316808099874200228261123046972513408455418441836996594900"],["24062466388346081792552718125204679023648322515649107320737714574919195868932","25308616616031826991650017800713415332311137003722404724147338932521097792571"],["22827814113033700612262333831044068926364848006907659025214627570663886569478","1195014573296817565500562833756286806073139874158386750841404139460802819592"],["26193533523231479626962009626280707310384332183103729518884353705157982169487","13639924433184256200009768543734958918883889372442575152836849814682280116694"],["13390219844161392990311893495590801765437522404065893818791950259360503581398","2579288984217609447414134101590633850996840060534846922954779047361141214337"],["5374751109275214450121073655714480007083328321674180850162892954028698781291","23973810357601148245739496301091952867276012340541322580054968211078468098853"],["15548694131949706973831423146257211419397783266636273615955489472909392461490","17389461200832405705462817806482007553844446751861635000987574261074943536483"],["20369857405138409092220940531953203914685819042195841356810020658785895011949","14801433601421050927130304618771596107688661734625035774831384132260486233673"],["6045814710009129906703416390762713143272016494124956594297452250806773978155","23058119401640056113204680444768834517906802943598172226200140339215223584405"],["9006898314145226971997021656400486482645658882180749561408784365750939409027","19966770110896878033071364054586914525090016195049230613675136469888879127348"],["26816961347577466392740322422310822289573486727498421910154253971258308454415","12401523899116653123941032193266260494055460665800175303318823511985940101907"],["4514092216856761369096185360515780594714124929451608960645324114677019289835","9067176004106956178444730882029696844494220793336965759492394713260095279896"],["3931719759387136564250145024331868083770733077346818653515448295239868149805","4467744060963813395234612847829202759257350560812089359969817165334289688358"],["9561145952460951456685950735223354630108463492112540619729746086076757032986","28719666138013028212765795142164556414332449724936365593124951323729200098913"],["18191696999412651999653841435008739271912200355060538746843272453013350409105","12412106018420912571079362561894846476404972852558502276487137400003177394835"],["7228826681095927967197285523614100025045669965071124076366302895138257878480","19890428975570287221871347933325637291836577074814961440391686774934502980091"],["7242412194900950185980347687024354490724014058996544712278058991845048073361","3596668003521409504568669197755127899111419539596889219229478669916401545488"],["160023765691912636758018057242532519174900833574264461523121429769974036571","5875960402721171767998865727435020377308680466292353882175194156660043437235"],["19362550540502224978500943602324297207888941386089426196582199915615632213947","28070211100386705313152084828353595067599563043246303961800999288116968379026"],["7136292167816837544979924114417352732943510195106506200938198827900321012452","11536954707946339219443464725861510221752992553329299789685949788649360938872"],["9122816514537884605591856434112056699695059445479321010783421525645498726968","21715011534318118431328841643269175029530143453698102740945420345936236303602"],["26191697004791042309370101832392236500866762311804531846472937764123318932254","22023863923349330162106573764243832185962252662926474733682523175431182443865"],["18072409817776651453033192317410357943676007147317372767830748480093432003796","21929772599381216468386750032969840008806435432817158751486160551423949630131"],["9887083819596982980003763537897971586704920385053353724564336652190246810634","568431798641400774432070164135671177997063914190132766552372097870807752862"],["11894259464720914474732542876613707097830032014456160777878026032569398703287","9974257065971065810113141615751022442466775365566188607803841054933224426744"],["9971840609664325879718319341300584834754706135461979257076725199408328526044","9560967054023296184109303320726591172836254368799068491585225591609424938499"],["3130799194074845948990797412386268831522969378043219132966551436061537698135","11748751947405158485627421098680645476408935463324328132101226654818852744930"],["28773390814533831950178861179868424076632046369056174105923671503648284382090","25294361843698272602573002879850657643474674266518795700811855503893524627890"],["24873266396099607454476964831452289064680750854188983833945229165677048262781","6022966713246780013071719856818224224987981638777237641899501331652943132016"],["14254313260256764139151885670818503871464512590449520723617929253901077088953","359890457631791253734424273376730751083683178442802178571559962669151848848"],["16071133453134269078803248524444671566856878017430626005030213992826599921631","19163154926237154350900115501650349832010312904601414862798438218880592117219"],["21376370398180823127044227460407784602186062740442340566684497438394434289017","6162534324592361914143030293936123930753207267689239798169042893213553253399"],["8553389092314790077580204577396154970894917252559740269707196292058164341395","23742637219346431311103028804869737502157051466713119129030384369605010764818"],["18499359054283355117717856974259852181836448853165867090586598230093793869298","21786977438853902227890544123106147348627947462068242806545741562941190003329"],["28390760759029039892419689286588040231513117697667692924284503811850363494265","28538791410704013807072256796904025595467205115965262430575470401737684947537"],["11108666031611352532672546573534262499193927524612833527794670669265921596614","11898690214162712226883110370316701424718061633872594993633984156487990132440"],["9039249637200740305374843774331280742974146476913438005767449024894598870184","8257428104240294319669057314170092342505176543367152357511754890974092457802"],["20169434040742330954494923211520826846628965434823863617607045420645707733112","19513088211593501107394331196305326854629311062700997856404463564944727780867"],["4301125738538478575901307889620088489439596423784376402479710939999709999432","11768951557101717889457753732939623590085365239784983770505057821229339753377"],["17040356887760230554690620954583246879056642822374381533207531849814695841156","5896973405386240337647355063768728555604944297517441667886156384650492209888"],["7027331189720755342496239118479981166426388077018889374628774704239985882291","26198939146545160502257350570999048293371617893778396598479347087510593327644"],["10795721122021641838708414897031599999310767754464005186951160827780139497415","15895891911572576606989124326088008772567081622885392318993368771535772059528"],["10662239692142646671135546837545684583199288320327067269879721571321449015437","26197922407485583111495022463638527746406398841636323056962593740562427093157"],["16689032187428810686077707768671263273664226388249596872168833464151842837617","11681951859080650524060657215206396572858484438889845522566776800442854838474"],["5075751091838595742529178381315437948086153279325373462800871425882743249010","17251001508961718757902723086200532066091252696984759957520144181418752789802"],["3035688769599601500612402527553009873660323038713983164703530180051126050307","7611930476943427885064941810503170512270065007949472867751752724305008630020"],["3547289278173038606597822946878798859199459873522623776014054195080404639017","13178976620289793996652448623553618465501772234498593749500660546089222543840"],["14891751137365076764784980975522758769991755305298609455961815996944768477987","20719612874006287319531780292185499446066924715813792871643573478240979208369"],["24943117502177173752744717814407186382817481014231682986940064980578071525105","3936130459521772099529705874238776733518508658824622152784632076350254684663"],["26357922530799657413363670968605330865527482206023719885081719561033714966899","11721502830093949249298146013264202905999105075027841458023100986352137385086"],["8266396927534604391243497950617158661644974849425768889768571977930985318680","19560413556220497841919231867655305975327006864267744715958229440101408972366"],["22709877823035381656773689014394406877731920717776420556845414124647175137562","14999269595536205536234062208971044519228949219887838680202233305412214654206"],["15656275945528914306175388421771046202993641349570666292079123287055526896825","6382370797611626689049014538776159529915686163079987838119313236031533965658"],["10093728386118831213663845678941817647690231745706468143247087844499786697390","23673583040861466064953785068753775970260755119767223356372730275859272819453"],["26628829053890308361995810619708947415769296938359344665820177994947785596705","5532186877406082551983836770492329974520931863024128505224601062156538446637"],["25038231558769450990730898803922027965824756975211371292114289982260534908626","10313485486134690003658683803176379260139603205774005087828196189244332333598"],["20440382557009025291681942521843712912818377372031620889906010244335383133170","3476731626073203073821489151098725707316785347960604916248830253506951043147"],["14655382206848485332561677931190706700429232314720412990886546292084645787524","24065204749773266483901753014632508388559145924114139121313361070578838803916"],["21578582834044643145709985182022298880725643925809031434821708524968585564472","13699301193474380122175958866809945185885714627996004367705937500283302154310"],["22720838621594228958249928027273145696619456588733308977090247367982854040178","8373388642933154980746119487882920769382505556534123655122231502883621222792"],["20416733317780036096803503017612802089243091296118774548053494789442874639579","4077349349627903654581001712448158376951928716878142608972987884206249861282"],["19571552063162431563747113589993254380772574643535974341538375379425814634024","11214737701343549183596321968425876424506744894455837130217572181213144672580"],["22760530626989283683979888706594360408979313057507171123987745794685276225381","9215722545526167460338590675381803540072681931375117353725351220416592502681"],["18215379371047941876430526621133621705594463896214112468927090387926211699353","2733469615314790810748027900622329845637407012988794376818839021176997717354"],["23095506089108965511344321931760082722485156673815909046386912486659909940850","6098109917241607606777723410551307334826248591398464846076402294305791357096"],["19104865590947224339806001590077887771215207448795036990683480491755023640044","16936148121388226499500493843020023009345584321064366186742462128240013039692"],["11754441462732419004171889891559276607776655226095873148552238592793005499970","16258940188926425653805681321376489297038032454922888100349053937723104400177"],["2731113585211700867661253609029587130887312882356110341731536051273891047955","3735085509543902575716397649438415320796063310486955132283271339726571869422"],["16075502563245735162452306546735891633220308583958020546723867314617927065553","5539233832243950929578039020486698626853684746800695197685882924716702279604"],["24885442605247925266838487212787266990088023470281768699697926392337013203709","7608497633224663481052007729813277955638268532956915808377214409902043995979"],["21393548545574724039864798977376927319920011077646352501244251689579584755832","17932025572730082741352197423240790765810749464382970500469202010642726506313"],["14289831943756733281075298179212102692687468409228883025359197055370481780772","10900264144530138907669185749119857012524271529391133729346207118418919125677"],["19510927312270958097383738023538569382753495099390255581058426415525052470385","19681201766489118239039469572227411464438497330006688075112174695290826221603"],["13225357188997661739264079529248747929992265144789659998199442799668088607325","26732019358343618201250980118616030939096542146826168406266930308370748947700"],["13591693331436310232944717298524153856434849281753680593309272575204189002980","27588396240377025539991776320598285712819697945206727107502490802650932374107"],["9301104838383418147919539677311692893250667048544325495031851338615982742081","14897875607987110516250111532016083526227274892794842809066660532766340012296"],["10399379305873787325550148703360030132155961179800777597571901791583038168502","9666412866486086428980197545514333993866824268338884818160785870421120347442"],["7182020188425401324694968084753490334653962237981555333557871428702157745804","14439765120875126531063934883488700332908980408606341475421678594575516281575"],["13529455621849198425194433882403213174819858417589734863482675807648408614168","21234315674004717819006765902266594334374628102235641317365496596670871729628"],["14569377559252727743496023439567839268575466541054222153191353386953977991340","21268045387455555628404524940976657039507996161740704168458926005798078658760"],["19041386216155858825080229798843131269474895536374523589542205904246000865228","21718645741050298112416949620731796970093977885323634011062969371665354845860"],["2722670700408833240744882089463128378008623117007130016103881393942617047636","7609270122244287749197085489116054917577745287417058291350249107826076423827"],["25715760882691455019467540455058411999673142984904737426933395447516566481633","14254794570788292772178143883172240414472974284140081747286825438940670145769"],["22600037111921675320060531847877179221599067947450557220436272891757099942705","13696897568531883469912885304327672061694281413924523752098459025399412329977"],["19032853630237943519752096733886081081926703781629052783400517720215077431053","10745037340596997220914879375526224646124915056646305118346342665400523826305"],["4748318312566267727029900253322815611622621077060747265901619756645648513222","17220046083624858124276437976352049372230330079117135778324759942696432766969"],["22913390730005134171254781045621496404121601365612071665568117973618505636083","14136750974639915140284747559864270492860507044646428781271829590299399492522"],["8753387551191897685634088930209916734991059801980557432117781307397393789450","14230939247837655268948959036914706859917292031137020553596976239368682531627"],["26092941176518512109376387456412127932168186104941954488295122834302435363784","16077083334730201936234211629861400262277120997755097620683282935211963000649"],["27768491290890389017332517928086436648080253189924588854252233419207037012635","192875009393505269172837791698594070918686484855139217561960385229910129138"],["21409977975896086438149695156141639367996011195997780247009452444272591029033","16481972034834772012589619259596495118337255219922131251925512332040653244850"],["17564247678414337719269804613564183517738655867771622693325608576544838905512","18598286137955240747488231288555451042273601021821735548376721597665499717734"],["24292885115330030480363154690661489838514215425208201618468168625649084047886","13803205832148369302672866601335170973458853643948525588590888255626405443982"],["10115781761279639065709483044118287157731401480457691433419144064038913304623","18571579665215248794763262922366906471794266045459315639838252642919071907401"],["7631742123472827725340426788026050604185680248921424928537116271666148602400","2960988385918032989581729457185384264107097587148288512330936744903124017725"],["2643629097422282372320911495265587508699120005720374315854284443238733670997","11628257548904135828264600347372604024169619866590550456400500621785519152971"],["1267038061772321253376580767366292407638360258965848469538144458599846601267","26993772242945432062380841856071027313673603345332704934742242140567089862232"],["20023294163339962831032612429426415472161617845686011360492889842096495722830","27782246287021928117466767254450863646522786707018605388545549787179299062080"],["13078853428275007747411087885537256313724850851376666208647913337580703688769","9892074984196478347062040978244960035066979980492445954950324645991596613267"],["11152546730676915071059651660406487748573002060285550206171680271481491200317","18525923078953188047575066636533845750079815029256240135778093785888758031389"],["28761880739973440138996430725714565165743784490502890670114407320991248034448","15173615662703492051701459662114896913937797436548100361430891682075101193559"],["23605665318938118200237463076083260590212725622416952097034567306193002238553","27082267498824501692429904805884604715637422939276651894957162840899106240625"],["18486427119710648589259126893026676860771704693896534584433189311363275464545","19791996759828520698872918160134252079137476705704060306555691799303822393109"],["15886686215250457354143732340007779685409304834173525950094580274600974826639","3103060448731275663833755154847745065562645621556800234303574659068006481060"],["17412355852548115490935793242730413500925562950506755477876064593709569605940","12172869990648630980722169620096154005594437258228523588178836507822530738557"],["28817765377708269946137076591896900245268538196052519477662783903066444659324","5880650617709445887787518564961031148976624414752470567535815671310901751042"],["17926449726822132842149952271678356856116756048899091411720420474709290826492","9657894510412024910269185920990428997676155018552621339663970856652438503149"],["2865022370730728321160367413894902076619524525636332779461511931444151411679","21491304405107000215239997971559066842188738689883838881324323362795174298244"],["20738692410300058432623201379712095250563180728519174191003141170976259189809","17021633787969989419292476037353846793457369418710384236711887064691947849060"],["7980591301597699972076131909297150321372087175172287504726588903457724490862","11200030286065136400446815403041436511161262326346125856868902345661049745420"],["9228146637097244488579451080350958099360896819269239305708007710184509731009","23971608859844717117660337984711371666040280201290546305267886854260266089492"],["18849122659027203327741087152566000120815339060193211941037810214725017361741","26570864428834680675595738575481700176903803885466326031256024243691370336526"],["7986554949745450414364050770326541520915500516501230702102335010139729368434","11303436041794060606952217407177638516556478330120674139733834350929506197053"],["22900219918170042938535746979219455694081631972316991870652979355213405488614","5198813544839512133068618979799239368677749556806741611151265036590619012705"],["8359903184099660644262461286145751743841201252291759382128641533159835367235","19619619903382451810106296623762748632690648679713901962724002337260263800202"],["8817678797324493161784338809649090258179965851329316336691991722020047862263","7506019428315491461452198271049250438977950295599404665642966740207779176556"],["20591269111529578655905461861988084053439385962255851008701364622037451873311","17471768529862671552607713155714051395508974801755160235279634618356445952320"],["2277019884801315600205189709908716673806886920115765935034379350619050851977","16213477628755050747199724868661857671371593949361169700018251043978274163390"],["1712230233345396568588817634480190361706650397967980067700305150615420040268","22905791151087402820383234680187798332241093461855163792411360987018680989486"],["2438950806300713016579838235596295366924035946219739035198014204830359948683","21060512409832012220671486653769794574728865178575016418606316063571229099400"],["22847559093611791984107596243074544723992244773671645728216250918147650670939","26095377515225284028330651883081147505992815447161361766617778298422851837892"],["19647018464362345193553882602216354554673969177931373717103127077953907732358","1351749386765746740308252340338322266551948676675172758127938421737413656140"],["11261900312423502656880908546153507355034162941207116820622814072714615768091","22793902211687393818158433327140438514743209985508066803354495875955332427856"],["17183485881612525619850179463303682551691686038189018669765674644427483423570","12453618676967171736171058733274408402586489303214500272290881502178587503956"],["19428443525656315362672666846604818080612389187523270724689119220649138428593","3301687454033755495606546851679102030996243264438621956132243993604974178115"],["17608569252065305866193792010418064024498385269750302956291768774334835528927","14848838905224158312829238064345327499771565428382824131546512828794347779504"],["27084234907358510230993249206580014054302468207309066246090086521038287007647","15407249648768545407685281216583943546286286332335804306105395442560413787977"],["11991973574024709444376084235887968245834076904088315545894242434076582149935","4981139745384633933588177324696447324760439346908465804897543274247812268001"],["22087350439508833981645351314297421316886886655403105850405153093097648073763","6835210259968772857925812493280509645702211908725787689348185315677556695028"],["24749392834034882183691400673078441183644051991419401566159942748106762660794","22376323412348552641607472640745626029015602085937262775373421309544462481672"],["9597013527617814040948022229357669794080342569814564263842897501826035454595","18871101199013276807016008503995018507066751467194622257636430306180358515252"],["23114211023143355341612738533677609102960160099967501726532613599527708726355","3234414343874575564581739294613216914643322267159836269585719698718840893393"],["12933546592328220823873936770046318742694890788539399627065905826305921343302","18197254599697896245612670679752916793732091570554689852711955349067966143964"],["13163278693018519218413784172662502671070497349075872326161731096616085942921","2116387122677848128572071490948855327751145458716926067272278527737527883736"],["24951983668778457374302613001437346950720848597657283276024722245091438133706","23281310013889130691396364965256773073490444498001617643278860200151979927477"],["20384335838019512797155983299409171051798379030628274650217640663959986311795","19934000784135681747987361802127792531050236640211434416916125928094261842037"],["3287298443800677017962063879166717866481522405625278113952037762824205906882","9497763140627899023875715840866080487677208048293871395167091928890433985680"],["20351503811978714298487508726873135182407396362408355669220758094177586320805","9036346434900925252733854423169683604540978018432422246462292411889040490626"],["794872246879390483306778795954680871417749194532145027663162106411177856784","11268430898838417159128155734012930345178831911665661711368070454417366578306"],["7085777617558648007257569850679865355423780545853451045078451144178087138624","6072450247256798476710897918734287398157803400041245011639164022981847533622"],["17808210673949303702041391291076470292599254545108793681013609906403843176045","1571956741003244674638266906264258632726423323350196259063730333089349219272"],["12218327408384274161337822014253894791190246630447520079813850865569271725799","15283003001988749964934029165601252537979271418320974552720458624231980378319"],["2834154477902672429939400395836585496913523719782635963976491108721027275622","21870425763831944725996215447131708707224602722606567013914424212038214141635"],["19518587203909415073433583839134537736348943964588497740639093687274240420525","2659895732178471857423346759832830343262960168245682197341820133062029793599"],["12819565100313780746372573847985296657764228942150364709439940075586263872241","16710369362472655899271078949056505684266258537160249729063775983062504547398"],["2561205416799738186953711728424332839513259672622278066312672211696231914234","10762737706764620483823222312886466957431528916285124631640214113653786315233"],["2539889730061674205060485088577833474736628264613328640300611552606238568387","8143082731528121178444842613316398799047052153294501523091424101224498109077"],["12403898503770369874803041323534675921369028190209065215290532237405163082146","10180201860661847540379379329588323061462334228179438481591819418004646556316"],["18485252247849922505855837564896319171037346452781844713834338939284826685860","20415153785251880752114799460999349732307758130164261559878948110058082084953"],["9259504897109445880307903969332120315979385679273766806585810250658313775329","690907432526969301743712803002521893537933611969381950774411878574258247315"],["9440376900267953855493360009491757586909854934671591919132288581836340579722","14524429760316394875877909531928927704920724039241932577255043360688606896875"],["17613986740209864952583861279026030441101105102219751149001779870589897061012","15565744889200647462856640456254765119643220419676896484765555321916697545692"],["28438796718913087001361299448902541454285166273565544228467190699097446966619","11060668927286095840821660075518186480916213722607129441357991022665254258446"],["21012966953727133704774869471017735498153310611596331572488887471847474941610","16789746380983163804400629559248517022395444443358899050397610213579653995181"],["11029507076936403456937221096429129306908406143613980236449392580705792750783","10089951268375901016573026973340425961614206469280922479497997732253742300574"],["19622602126018643907985955667987321137057406790307634482825507247339475660455","17180142463367838916875281831364214276075792131057129917411660036350341462706"],["13959097505399935325804688690990436883701849033351684631007942926668897675720","2974297209645232791064293849551101149906429172735581202659355654905376214383"],["2258047188275670248508499429946700608248360751171407115088979115093196666169","19301453046605481395191772757288092345249217636075879869601736413038985259624"],["27389770544967124166530427442459898914486766964822306752032201263710807460736","20653925687000951218432685010947674214880881556527472221334774640629073397404"],["11371708474208053366854192241997385637585584844781876644078268157977895882408","27120218751597973653775269972035906705712926664297195204429829247622533480962"],["12628010951269322453660059592901184605370862314969789065515877735550954739369","12121093923650509389471968858504068861618704437255230059818993465822373341582"],["2246599082466471426403451474437019047643634762969588700875255738397600565638","246449111070863411359765332231514790254928041815347047516702457035950353094"],["26591210018000729319635449052013020754314314734649311571893884285854325745905","17339848399182324673801938534706233767168883597925925839049706525763158332295"],["21648209279172447460138708433764647291786633325002509210824710087887539149948","28043740443624596459729164085565538422851921266232826656888158494781347199523"],["21571851371041447595073938354065700306994162940650698654728934099381635730442","5245663799005948503918045083218778217539952402690751964532717808496545700110"],["8333713893044310187100988428701108636026065778020945019049310815764526835648","23078366957414696714427534077907282024252936428976634701674703460694180277368"],["21297643218793807135468776116182930377372431209896640548406837462921866793768","13332209641569911573181036809291203899532362492565917788964513627946605036259"],["11042380958551905047514660860022966660273510514792900084623627413065266842007","11748941012050986897967673270548938453452082637037877988108039641856924538300"],["7054692797093072162976848323236328100492566036873689985184818581340651549989","14604851378598670681937473976423288805965597047437294444458408078787326662534"],["17139963909794195136917331458819261474808039002227438220399804729874634491478","11684685325669481475612360376714184822404281212559822697937680510080602858510"],["2181449145310640407740116280172375143373334345816576034862111571690895359789","28708280687808609796238883294006830425731320478848235063148238706186624178971"],["1982409095195486440547920462480797124029450092537837853539427036446019831078","2903500917246552207082604967273011510238048341529746713477613229825254996198"],["11330753564575890410164788910413834671845681808704425624165560882591433195816","9185975419148763785607180642441010139302789163233803960866144863162458100362"],["11127489892075684531806695370519088098384810577888658932160214373879821325307","24039952583606320774296348342753228411625294824962777525514671217242868457173"],["11766748134274403470710174931056711933683651940689792086705023650093824300669","28830380188946831662845131283537276168311508418501101909552784610809788826032"],["7932247691789796909001986706996577444067740156539103914011155323055530319338","9573503356786957501614140555675559853026240476350559956372392171226625230710"],["9837907060456302146972938295430960604765313890799213298984307172754879008827","8939057361624932837683125899185095158269314439501573150521109175417679212631"],["24300986587507940888091165767507231826907022893157601377987114904203009900609","21508584604553047960537425975955099246433182486088573406208045567756250971153"],["12488201549893233215483268544276478231440623226999713666037236361296211425059","6420627547374152866021836093047980912840591970157573882091456064191231056697"],["5505180660139539784625550637629523152574682733981338256091040162008171966575","19405895352113275084573549798675799519807028387588834938274075169471791739821"],["25031586246140520556877911979897192270035811095965464587304051000448639520144","18745702051423707180195523096531927124644679970006796600282766603565919936182"],["6549494380170584018377867591821159077900983471496645493675365637148021384610","1551154922915192867026480416965464149449932815211520829233435856318058315466"],["19641146247244487637267514878595475541112817394597030175752629616742910004527","10072815001210776523067733344401806529877058596530670983480118262808617301769"],["22695561777917203163795724615154582066418689598783416290820873581917907552118","9341458265973410286185904066800464060979029339165173832812097708983949113233"],["24182005662785282901351899031796494033673892620229839111677211674365653519529","10520479097201508497605484640567842736557498689780852635493367689203068415698"],["25478892039802830791791518325914534907550297744922125649760297018343656691453","101222898862855468710427610854682952810013463461031642884507742543114043951"],["19664483680321995228350947020528074081980086021074787288109307542003096808856","16658787741541483715580466927114534337919407285753181690860436048292038270214"],["1134084615978481039656518578155416341708413709649604786358687328754523025422","22084422378487904285016684986914643097687880338929187136373196742694674517140"],["11294246180593729410017739349391417409755548366040898655168727359614983679908","23781041715134556040440686705426119466134900938877977532914776592924024426355"],["6160185830232258964754880229981755655848373917976013862152561625387171009184","2300697177554432205831134018152006954563276905919377277408139614648184098558"],["6312528242076259983552527140394220971806954860770521981458987814696827712187","28471174541555173021213408199644698937256891799115621737172987061934423540508"],["13488421134784264303480899257405648904159227044213014958753812481463162900710","23252384788763731069871455355279802426053574309182877749248575477809569710212"],["2810244156577859232378137281599393042871329729898012509915128849981939362595","18557139129937164445944887381433892979841463728514432632747937476969482943701"],["3494134468252324297832006897546154715604234334088532679131555466770640347711","20110087258702623496205622603490312077983349966616677380885722329579172381179"],["15150092303427387831126161722447866514646126950508608057186668994590852955090","7285556082032237526845506680207082692925929386660094882522613005858007115384"],["11993844945089505825457340396689880209585686212450177394856960065285097239770","27609469620305507196294324271896782453247443648963215082483823833045272064728"],["20073915781266952784102756101834859897741421423222655988666354144512247962401","11635651857155546985625538544782891186080660864480587169309864887138565963698"],["25924915930361038816099598238972262934961662240798200514201336744903928135776","21319595812672020881975358706003719886460576202001461614544937397121938535938"],["9250644708106137370836319941764361269318459615436222742480394359369631105820","5547776173338267920860754620921222012345075808796895337235429814115392381052"],["20121674926484689194297380465972929433556819455384848212183688664522857689615","5434429335375020790754305830209459058881756965811451973143989434404763059810"],["8704943512228461224415974157760579357909758617344014235131138472162971402818","27236690713578684033295815996921634759748478228270583085791424912920296734709"],["21055168734490416046588676393034356729874002631312022067792605182875243220930","20119747996436261122853617405448066980433969669041402760386465062209325113731"],["6692980880035818655445349689351204619649353565835770978047968962407520370129","8915528722866063898209462549736272761836368377634165321804978540010633530374"],["22099125679271030238120290407557129445084145870581742151373981100395919100079","24747894284931942308086354643524038443533493771579255560628699587205226756011"],["7231763155825238435173070844943188434211934896940429407663631893130770128265","1367116372317331062673414019295579769876776791417539202791699765979673047082"],["5892266937830167775611959196233363805241000207221936536615881010100651150424","8938472024225510474290305497746236382625449799407230386212544213447350766467"],["23677404071797034525796204518158863352150804502414559885622376351580822917505","20828086300580047779662925218631819716398621311433123756038237947417547994787"],["17009274937501295040763443007992585422130953135522040923075012992026649469001","6872107909315674412875812442874017108100311296732319450669620994825266558528"],["3607914062954323940272300052771446994553455739267186282389284853380676383819","17323212962026464255823601584279253202156214068262244293533800981984509312902"],["8836358698067009950147025433216889976837554989757529311033133286486702106134","5319778197859811028079107609313396519859719811895695945314206211112552352166"],["10604352291151723671528678948047323653113570948876886718100906419261857077571","9910320424875167858289929995536964308101245615933490460187171634068896400340"],["20736022994312336790543767051549237700887867134640519871214420118057726097019","1134094828804317440131302305631008049286617059839610981097601364347720625263"],["8211019860712728092065291419345579553786050503883644306538046265182290634806","5531193597473930545668889599991957027411627739685179089305309378819821023187"],["3216325536880772946694239446743374450192579955782371423740953375280273310113","27589943872487291508811557869088336605411388157628642954347467689890578484155"],["19619791037442028566752544761720054510914293758799236630747547600009886537598","24210454206010104919606880531935988294335103343674054993233442673086142785218"],["7729588147948392126512562024776701532847824007419760854195882519266230199289","2472567042724703849815188881080543045572934189651496674218166192559250631876"],["16368053423920259602715640021156882941547791557283070611657061712879439692898","11345569320245073256843369674744312422657634518905312126094183284639650230029"],["20283659064690348327551843020102283558843684488497554739247864566280624445786","23525393440534106718782174776532029753292439062282271037790979764758408233019"],["28893791324532150653033917674338158214250139120404624625421603499816486417126","9086080192892807234959116878389319687375866720571978661236933965929264375402"],["14702368841739976321172777520075380583408593125303405739646710689590395673537","24080767298279127541309820808577950859469989195394441685307128618191344731013"],["12675869657216667855990392770951667470541773703090291715472897318518946654953","25075416112627953118638785544124790820092057494507484825432249632631513682979"],["6595523230844804286259670150121831329252042117724152657252665480732871191908","27253006821189981965560067706496055293207688808177902087738962659772044765829"],["26431032220851956756742128927824549351180636452622686756758747135527652795458","9140308761303074368668645897329844636071147269269431269482757000559270652649"],["15044843628648539144504095674140055993346563336275402801034648639873502339710","11506898638071443517895620044372763013002252924007692143818715268354967308868"],["8233047459056460239760758015741798660831949083508076776667539558618242063110","18828882123774537806191823040521145505643460531207508069280727057926838358676"],["28359403917956099815529030575343172691928069995634709938295788013020976912264","23503264600108935303245695402524339496870629493131387699806599454102019995965"],["8642990896840885606287982840036559722252008958323309956993361735316728822389","24840340714050653592293448708010878907151220123321412761230417376221687997314"],["26861171317290578916039129659847690443466528834658177633463912356009446179493","17498230159261624939973691305575341153380742358573751120950264416636383804932"],["23120170867788943200238043904885516539645802156617665587717495749756059582100","10230877437678955601514557873574966442206897501589831230838464523332608077724"],["5204075691472341079444377432296282761749926367368128021886403822956991591968","23104320894615862775721776024572506466035273713087880503358027114068546498989"],["26902404827795977586496872590421542525882454950020742520984810027994203824176","24697369894152880010497925670427718295262345676464032450634243738849239650950"],["15101317460894376970607961343966567365321734758694087789966282314937377857657","9370988375619587207219420555589594138338244867093474951212682653501577086039"],["4295916878186789376974045518838883444045520949498812110156425469202324686057","17597459811417534275218638861595640241815638107694251255677249396957167655607"],["2127820697746620775656146404199573896296526639910456286837211423897975586969","27105732173030258137389349568558516380218650966815493358230668568776950558190"],["26819720790238408279646484376805035618982185471462237237786654781488892726931","25982766410447707978842952510325732102695904652602727183282625210414475048216"],["21661273715633337126075261604014605284789003766836435619753694499828285385885","19192561219510508579104386527190422408700852718517012268121793522293998897764"],["11979703666103817886556878801838193051744209879087142119256033615637331355985","27224243651915248229283822519033639399829092753255302707406656099231643528556"],["1841226826980167665946418873408946492783316949979736155375629283116758922649","11148926295051056404340585636914989792396172901783699140475859013570453831433"],["17947838538166050745947469195894399918696503221145310694473912508832689995838","26148709438583610069042049743260573669541673923397109993093843393044537913325"],["13664357229095039296632559249758168702789882736558617221706431057834787852931","14920293071358333789651378132443724989290278812930473582351799985885007246721"],["22546710477167208972258597044580168926855103754354757693363637843209068316659","2297879482523992456605435840842156554479655545548919438638488815374151675125"],["8978323728753944495710568341455881785532281392870362145579611090481405870549","28316211510303670544630212768156545611748526364662473508277740011338904114451"],["7944391552414237196355180156594740579709307800432350251921933549011894988617","25036113384231108092140029692025346457094691585445336430042936291990684145936"],["25222994240715936929525886115763715109800976381507935772050738850581937940634","674816693142783370741684466916466696117778007273954297959570203595540488351"],["11420472129086506046689316697397943975675502730389589226220875073166843009367","25740748371834945495664714114684557916405250781064015633755167010697994674087"],["10404635282056606284131314324758654723804202008675242929270561732306594870019","18238046510484758639537966998562887622327824131547456731387316982968583942989"],["1981046252859297760684890197862878545033778905177621470023402138929204240454","20857249190245079984509271587082907094559441957028394291092408798613145564805"],["26845778612576125323725337354434775497459476110321136380189120843381162652921","9516453982344804112150972473031029614462552313288091064959492116755965015801"],["2878053760929222897726882030647056697307576131688831972376008871794471492102","20290802426736138515237399535934113808523241558385227808918755288299142331075"],["25368754691237793071462006853230928315187844497147330900857179632547233491900","18546554109474503963191104520811332556870122657109632345451216040494629440856"],["26522749874990608839768242028320458141090734691330455139633370182210208599205","3446815392775962122325610111888840771899929042066333237389823021330141150790"],["4911792165096143343073990591695870764130239961206649363201759008456100972976","27419520011015027993725213905680076123015709765055374462480873363497388536460"],["12858029336848891846783516735545150086944568342570074671130470691127768835024","13729685025162484310787400256001976242728006754417027587787080945594696060328"],["26829026308837056536859690140940322195586804692926000123234207374344351477706","25469664867552807102588768288316121794569015175071927654474142745664553349172"],["9355606755942304562065582789403971751727508654911541249462014843777338932890","6980392072522725422985682504147842690404816232685150198079725436723772029517"],["23059706788401765619395472845362853861393107630161566828029522314142222103845","16831959959257117682002958037512127719266306157863209681823421897977197922277"],["4086598082703942381443513887995709325465542290790591285778465299087760040658","7761497644519077200703542471478909625945256681596813835789588623033074816743"],["7490876400276375799911265382431589871588290105844224605522434509347157241005","17509265698964624768829016205472322712822228123301630370074874296923070032040"],["15777856304842065761664379415576454359422034560729814044485183153153516368512","19211450377187300658252993981173170895298230220457203456659010442599939859955"],["5409877606359130651014668723979839691282967215846834013138061510620401343731","11299457878228281886818651075940411254847652100642395945328092860123659587391"],["24244157287218021320202137951533345398628046932257109076390571034347477067170","6679068410257391520347984101734742035787130920123681351691990787622759389843"],["2381489700864452597319933437585113014770070321978391003825908669559014929289","16867121824197727624541768737272904076996192527659426850457785120037435120656"],["21653240406956465875901680526217631271839875471255591305318087056391974100267","20906381237392939316270946350831499417588120165513175913937288998506960881062"],["5120485461126295085906378642092582429699412337696714088047087715075648533386","13413950443785411704805430867147315699043958044615701485198744491298268501053"],["1841247006776730536551556976431242942852912218592834250840181587270887800511","17503223466171358767814092517516153543645132184256755536638464426850842537261"],["4274170712681718812837207306843751485847736223851557718879943056146692381042","2337672762908300052457111256855625578023349071616989989913545379903928557866"],["16221157691828866142648039842075459126985014376939338597256575529640083362861","12178461903382448978137576474523798061168284343839566765392709143360759922578"],["17867982341265588694702837071173882263589859279747606524211678941646155310469","13884514221887706513234430343690182718822045917284100663860989408866243637038"],["25720104150799611620116141461780025633510666584046811699059869650530848643875","24570103238909043837246382934783462791108923963643752808787967798909288096385"],["17856245559094701814598441791405145538405054073066714573754624739768000924279","3831329604753035499843275509921182653874574349353018506069364747398603623711"],["5302733284710367152881059001935558566510865885602096906085368142844340350450","13323946520330183851708143206662312182826785129318052725770698173838542417307"],["21754569525520723613150848434978364915132044263004920357164576784009920189045","26775129478634745768285181635707239507225129871740931844219100341897484824955"],["19312045111381574681392559034594434331535258042292380813770818094351860214069","23391555761674331367950072156167260762964527258862526320750488331186448364906"],["18496627656949810662407309619120592400044524928277546515876895277763194192462","22778375042650574556024333726630799915078798309580132627619578911721735659113"],["7530913938140061646571930899547649258878280260484340463632253590368002626182","16006395585373425628053977832121598582967138123586494459181148036925269801870"],["8994373475868610360559175441903448429670704844947772486631936823076066589662","16489010177067021751343372939367970442420386815707276441121438457394437272984"],["2373614759914748241788425893858954223907139469081520499070189120672695429785","26446166223704882133049489663210339820209677424641900696175926467190568753329"],["25501233528690985851578735977552452699008493681862118009509811823679387328334","17695728865291461297024891174897289188673873210459852969540169017522959044251"],["23895185999831774271827676881809452956157653566544582153521348475917575415330","15564056299377439449889761599465772530580755131790694157086213281989900315604"],["28904413695029645614392546419333875852538945189328024773594889656484928338266","18153073445672211919510091676108353867475982738541801194888103842372933600119"],["11602661660331724457778547122130256287018516849553688101339447565472414450593","28929897906015882378767596289774917013230375879990702696718858015052932108229"],["10700316135465669302803556146671091222805770024042400188734213144691835915070","26759885520345952205221443717786969830099781031216240360302488834697013962721"],["12197221362960429660230573995037233487114166698065767681268139802375363658867","20659309390225816380094997128303494187421708211941782738058992334659878504575"],["22364959301366537536149886633237111299336707498560683696669606899255113708738","26440935660798983998562137147177423482367769869137396946633306643615274940040"],["6168867726250532118315424703108437721633241040150156583052641878961987297789","4918237333408390487448689950150702475036056540100837636286153505829539652118"],["18196774258709554761018570689845321667171711068723966313466812271659539100265","1325197503923936691147622504722291437203897306715830351073908879351135427951"],["4828592091777994471187534468264290874893967961431484599852904120999273173541","28045495545338043716755335478071307160738999495656744761856408413880337184290"],["14001210934391857137322834264435728310726301490585017371872669178652291825758","16030106380443050769656872850052471988647976763238451817535738315122160427950"],["23709194756592720083265949574885134788575075476532676065463117064286009363212","1038656414967838742157537550470857028289747584737326600338311931198022698804"],["4401544076744078543094449907069834250888429650416367436539884175581004297498","10041718508129086910004425837540298974344680097649653078519690228409639763127"],["28070657256803762523273586792168360008732868520990318261116985415376740319750","24505101975653669388707522335896669542211664384486825753816219627901955190692"],["19250232138755058269300006883266908467223978423782998971478039366849591114631","21167930115199081219334595672370781849155769604331714438473842588641931844692"],["19279799981403155798275337123688942553662422425524134703443522210985382349554","25372372396962089660951391818787302247128157679901585528276611950756654334817"],["787330221399595753609346597871375379423657067122413610623879222251483990097","7015684999973269596534481155255144031257930529695038553840522469137303707185"],["20674698488007277390807706411484505638720684430696228326419451497046083579097","11013962223933308189634834410522884882714872621669245367471064474796277733039"],["15952762235477679556195191243063493271227933866934160337767875208873008472010","10236098771179603264415777039910276606645826582655555709171852213746179225189"],["528789921237624647623310507713449497624814724346125640840956807474463953514","22559034983656159640579238903405712650394707927158949649049249891254870824752"],["22962883398246356805749653269042887020480505831133039295081938508483815319163","15974158763388942690463281241098375426907810540460722564706141623175113539700"],["22730978590379281682408052938905183986734327213701894012281834062247039093360","3015178218535925789841058550048457230438274104480976005140289555116385240754"],["26812374684463413162262810946882433139997533782175568165196289314353261886751","23014898535596293476494330276902970661787238175085170926774629368535168697580"],["22858746682144228271582728855530384096931303457600121908437256447582643465408","12579254652133535745701941882064969374665668088589517670440669136173760943372"],["5688539276157746967932819049531676008437215520032738660956853937225801100004","198227510439657976107162947287214181469304568117282314070298024390175718847"],["2293683542451411262602475091838187624091179401029977790293056119848106433361","20417384388682096240743692577430406961230493690706912028220229082337598581046"],["18481026653765429013312052902541237932929052612568784951855503962992663603412","23600373325292011805710550889537293309803594624563193383186574684523394133747"],["11583228990403988023715666735235046686780537878116762751782335581854587620808","25351734006847417612182212068838385069710503608538803627729418734644097407690"],["2613632807547950622693079320580134666406744023656796991341319872058861670993","16461802021901323418120154059101131896106284958136738346935994757954878824351"],["24841124507207925335414635880426945801839975535375220858736841640250742429839","18924136755165510461173663659603529157051451777427142987317302902343470046539"],["12700907320909576566690112262059059177759253580331663722183589248822984832047","10809629744063376936377209064382068141225619983046623165750459704320810324592"],["13325701586771410670575143630557531157864196043179384170201934745082676877834","8436564921277075098652337406041939431466908862482396014233735288228354639968"],["25538760422887579856766545477030095663402447962223563492500982399594959640060","8917770474688197989554547035197542573867362685328327615276857925044564376979"],["15100222401123953649078534752186489474660922097346615446541155379631659234813","22183821563555756743398473332553144736745455012357702529543509444915707777661"],["25824553813759142231926686504739947569787318936159860626371547816424901703881","3622989862478619682584582814600592150583274480814919785111380396341893740178"],["3497467234850323776775031023325829165735983669265736795868070694849255194383","20528446305281854344133776070811536254135692368967645576600230570245433236315"],["4994329754116196831984197676087505124352708129305197801868546363271713875385","26216127982630144922076833970850705553858305469252503568633666786384278464880"],["13668282810576931112044797102458071604477059186887718973169762910804737413429","20990868818143903842640213696805416850135225695872223251790643475802812821856"],["2655264521047289235053733530220005465768604966318250526559176798242768547428","19162883975215961743971810464291704567298871248765629793616324807894871332482"],["25131656238288027330901913229710935206910440038858248417923947548988267646131","27758828624736795912931887595214073766868342641266556967113992486634374378224"],["23762514919105404230288134830142160077905463495711709025868479144120827299627","18444671916504295075449218113229821809637182281411388225176732210523680845114"],["17240714027142562673398185617356601353788154831377926128509316972590951134642","3059634313593305028195397559284135801413746883777899977826740465274314787383"],["11527517401636458161658706894274393958480771953625411329357707148083061859235","24322661824311163351094606060896169787887160878597101736820971637427910701522"],["25810610756857684632496293427340746106952973093699871833320472824128532055904","23121446114561082350500442061330068522796090850884054443078130427351535653843"],["11182043362863559070613447484780342666350827844058772221234547620586806431516","17886205368333855898480923258205538022176689628072387583868569319724712582894"],["5052564159605170303887047883421577232276018941709460645059988582027510708714","5102513968328066518533959358033033073833310405896349333859564404138638566293"],["3902087336471945370694295686039610800182680756358915046072206993367782998655","23444407572723276690021611374373372953137883257526107586820724256080477832920"],["26435168437761246309550917260264565229104533745721359217091760491484996876079","26518171690295831706043564901845798025024624666929867671216032070950846579535"],["5808584632240694172665373388980269076270789567138671324565069134440013959415","14746149235038401954940276216583750556795880175184068844591257860245087087403"],["3064973018800706765033994444927348442318253027779329310520510639106737742170","23317624791197502954212884230401251947212610716606527888712151530369140644752"],["6503735204547620543575267370508256105486507483976904136710030346755878499431","15148836312912473551571046290607147907229782768098667654127280195069472270094"],["14283429418829121596653063122707502010481100407034276743540934859724192938550","20140394474212532219830509024717810112346927123018713145659131083566148596485"],["15941764061095603292931281654321368411629113387422155087129656076569136772780","18746454596968361179535228342589462457752192849181316027936500467812333692007"],["1216716864608623689288502362856204228182667925511013224818441357527661894650","5348121870465086645601810655896436651147653260778375713122927954573417834137"],["25724854214632995249041646095759397321828946902795101265003393280873447863894","4348044760486383767336419124676742277089657965016788822520460559957697081637"],["12237527476556850103917606942288914642418434639902041855826056863873126415379","10436007875072790703534389089970274238925350681791501514412233530602574164282"],["27757800854920239768328735131074919041862161301335872989481666141157659232756","25486706667338567977141214168862420208598703068698349521479972958882933252403"],["8688764135782644885755144370251398971355403580314701191710351238188093871387","5359278417896354279920461246504136475101767198956499399382796657604756993332"],["285518032375273749816760831134995771888964945170460127448372198865671988342","24844602876278869910681042159890460013577957512032532449820962435541247586405"],["21806925090781697885175119974279272751326173521620239446774032074635807607397","7520734204692712798504732383412435251586313342166565765775253900994477062445"],["17700688203806577913532760553005120877854327591432169462928762811369418782950","18088638586933873772062690441733406105537947465432785220990522982330688952779"],["9937798739031244944082454643135411653467751745362059950409151025870898972224","12840470183180108070148572606205133814318692338156994497002226676993804349357"],["6549635409575753454802646265905795107945369159868009174856840596185986854154","273616143441362829737348607724268924807997395548740253745928821586330801240"],["17682638178228015299626671563712570017575880132513681702146202668637973298284","23928915146169530642087195616865356857243854652432055517820055418314301960945"],["11147423749291410641937170025680112286319493928018024291186434949208774325025","5665538748423669216209527478707164077871701719104005557107902664210031782489"],["14948855258231371867094163189557429770496893868928130722217492633755835994531","6969340413825163903467128493835157843435304481172718827228816072965984438800"],["16893607899291535046560264770002664177787039129234350896237358083318395496356","2018802289684187397270798721185378541605032675990252387778381614294491401692"],["11395500934486510172894386732702664019156438129701881795526865645485016235376","15881290956553071121577346093159101002868707736738007520134826678895160814409"],["20532133902486685049913929503247892365884410261775905502774093496456626860615","7534675147255732738253553441679480493777318677328915890801881714814388978833"],["1735174444410944292939071358075466512802176089223968133632418492969137321198","19772603530194559998348265926963996422695533999832480835310746813075579314484"],["14321850008426887497069210508172181211189218644764768220921697449258025032839","11497008165009579081509451393211080206775011845155227228281288811895106050746"],["19490954918065782922035988593720376370725258961284617128162743088081528679119","7795854786791088593256252826540149744489089795491488674521790075785388070181"],["25359186761761046152394840633470350727836471265016026855875316137309083974859","19465672418428317919292724722396983794540468112121327423001895884872725576186"],["2925514119365985713741345682436294352260269993204290819778638344487849952948","7301050719224793788131414268693930873098112225119646226324152112899581697823"],["19056100946862342005688750276050322634382489371954509648914426660793808977795","4760985989229483465999872539166420880769907723753154417317516216058483037552"],["26591277226204393701357793812715614819229485779200098474806561368871193188509","8664366727498709548197095451631658422296625358113492150415013402905766302162"],["8666640987118956279404692767144406676803716069818584226834358337141879927091","3483327091028541469537349229538436195373860664812341322907471114154488075856"],["8622052876032245040711991457634605316563396419048213832113476036882148011580","9198581839827907717678405631927628873014233972001641775414218326693535503481"],["7683706606988705532380487262889979714188771550179008491496056633178050526165","14841327785023445324950909658907618235119934697961811479737954101172481896395"],["16213446395153907881963554171217538804532083698621320497340819870771398617911","25312549783076471786518452913289022086339706455557010511175857813753950651611"],["9239663581031145004187084311169156920225457251871100083423824060241116938777","25440257947854100301143477062636866853241401360458975236465372512852278674941"],["28945588113956559283196164841305169832096390900986291151633717783742189952296","20470984850879332743589322099117527840558918201123874892224562891360176919226"],["19745646368334605640861167299123164018034866009424575111172320832657257191038","12781492549206367982662363149448297891076990429409384277135327277131109475651"],["7261694316323555576832692371150964787644172110069192796809247379527110510728","26748686214193561345144443880024363884290653442433821148752843742724775144565"],["23024388481732922664397158244558756956424047531283201664614160264828941136233","26242638949600914957400438461616956654107622741198170463581120351318376929791"],["12768055804129725411409219134244841355874301866292352390781061691808337914786","17674707142841549021191087586511829162865896815523717244954676266701728071943"],["18077789700307453653414128931507316411627727949368234213749932710244360300916","5404394980680477161201231954814020789149449778343145587273997512519334505617"],["9554258774733856661567376841412448524139934347315909727690198365116511414047","24275047525923985858713035652376899882562580985726212713658533109163405075304"],["19159421373146745381081425694579717353140681315023791016887761311880209477621","7752265146814876765370178944694341633458565324235622919338386183455630334"],["13529161053620463108021701467228090969162994556747162104596968175646702549332","11172056757761573514241649483876612902575320280936868499858024789223319454819"],["5569082935399851922068171762705844616923735483125674952655565267554792988652","18023425865627610294529436826365744320077185848029643503565875575352977280082"],["24935127624080269081378634579947569714847401002615342766877543834409193103251","16039537151084157937460997600368650610569752154907880010482874703060215513520"],["578667076970610399774229878635517911117177625587525374167489693105994243357","19575153676974870535641232541817282089324011752774206894488040868471378730411"],["11080661167583281340941243313146431974614857967920674422765112525659238827942","23346033744495993966732457977971618624260427714257084711467422382922941060944"],["1536350098187516908265075271234105597269748256083486134402869762793990426531","4581245488106006273758612388606106166312472671806321974526088296646722018006"],["22864230631955991847740511797667697148370135673472839504186686267136564888857","9170858834329460512411002802602094567859508873580649239872368309108414379653"],["8712662708339711518030603807430538328570866154618363493569574828655244727871","28380238997010384739070618156798528666262311471368311080362654116835433849575"],["21568283996634554517100247163316472668107568563466824855659208191014527222660","15606330686241772211709869894085651980724514881299594661606978139560590092203"],["28323864536234245444097667408893948535607763472339881068026720941153414484243","27475950869401589633590936907985191690572144539057306338534425966620275800136"],["1496872549412048662997848562562652278661525700962455902474354479586516110078","18637492773562585056880761492815123733942533653424809875797879799833407898886"],["28196522016681014219104581229948215706964892559968045528866261002600592846910","28630383772760761448825661671219922760289594484915888879410129043525089110278"],["18920016562082984364519095658386190239253154479744260080422686231809265183664","14058944545939847621905036058240184832400876148671263440233139125402977924289"],["13101516756967277429044828333862414282847923718772249908492188263828344760034","21743373893500307434285213452237761775325740164073126317498092841777470807611"],["2823835153238415094991602849287510654937782426734493051791438621243723706304","21118291846692495886969109903542918243268095114827689861810429391653766921784"],["28622149153138460861052094925334023611002292741889549826212476252980360257395","3707868808860399554436629257890159239250119860984711739395984651886728810778"],["5098695895472330916974232570121918198558100936415068920371588457851320443011","24396910352008190517260886132169526574857818588104298342022674722528467308321"],["28447648838318612875803044793723707204386536022462043148042055035667168299134","9490870373500408289402326032586688416593623727828672537460069087539294968256"],["10606382226024458066226086781122362688959137222506018129333937349952204715865","8408700107579639101120623236926249498886557508461840579584270932566902919327"],["2981950928523647895766112826153526788595775413977486793549665257066475926018","12996846093183161600404037791841702886935618559456555296126124983453383743253"],["15874201107761565133252453346675081054175373035223468002337703747052294878626","13950822158561496685695666369545366159225174238679185362733152115245220573627"],["20996238417466679628586844981369706823415531017808275772397382283067337698138","2770023738800198394410075684129875784191767081004621225616801395195694741040"],["11669861279483880864416006742308881160378665194592586814217783062809859981471","18093725379134212825737207350148888024508641599254340313904733330614144136741"],["26012162830483806933059706835956958997957966657015861364576703323271517122259","18936479131097077850196226792284799794759131228589658768640735853485615759347"],["4075430737170906451752171012670164640022202993358592652535235605947397298909","26963937214653513771884822278252962036609268376671377575936267137258041090840"],["16598260398368143354357799237136444855130728576915646418486892350737412791677","10071148859764569468245661708853351647488812582077489743110661527823692687917"],["24109804553172080998390207476204121083919385911572587409100108503115085050124","18918459595261713317492270496440677773049997851263265167285506868538826341352"],["27356884967949434473193012557524259049152609140261271053360963991942046313812","4569085051504811447526533733657133785013946179138910848362317728472466292514"],["10623175540148206182244384818575538117069152548234353095945831391316735835529","24313916701879834642541778098230948107095992674199176118681936919639051678749"],["25750536170630620764194801632159761386756372754358904311441475579721135472798","17007269701605982279805465065002264040946235135848203836620816512686909446833"],["4577029113254776059066717090313673337057885065514714823332861198117719208912","6500977615831507516291554221455134932674964437158651088800747973936380955111"],["3396523092302295943949155110196779427098308079128440660173649777009669649832","23319250026171897680498288203565514500065146838769901181411656227431609957291"],["6263981198337850254917224585738570266886029689254271735236656378847921106381","27379385361586245448205578613153733525855167851912589177480052125907159212344"],["27196947596796078097356111382524905579932028093365308091396846757139386991790","1455411112820662240967706467611561866876351293854556777621133976070612482079"],["26109107703267308540903902923290011582174350070434979837942654128917721570660","18850606042701758555611267635910138205986183361949657444931849210017651192296"],["12089533727679578786379998005515962036882007289357678818619141850765470004279","17402096553689964470321141643669176595486335033860607302961857983632772899441"],["20908109577123658573917987929704488443407584995277891832871653828483061276671","1219669151406502611030237672225473269708084186725918361472715160487349703460"],["13729465264424333952393875768321302104820150986066045358857125898450451855292","19080192220160230332856640700838349799022439284427155409724751149309191230423"],["28929352924742102641813714910029775831680335892601972420488962594001510575539","26283583485801640911561102552485480945366292752100284882555115282526645927187"],["22027829564047174353209108660471412120171839333010871539150012043963662676902","22809993567661031429094993815358561586835944740782997992054957298328852404589"],["16737219209870345255623298241625755496944422419031878096541921307070569957702","28865493048553308565453341208366715633155970831542800735509281011137951823846"],["19173723485355399168045201812157331976113423414981017844404139995250298919716","3028551595097751435541301834600349502681559734078020257052190925954854175831"],["9215479933736512808468273086578366746962640602591277218115312193242039315073","19823868509997416639807634782306050228292614966619427566809626931417098021842"],["8454308320331470896275074819238637836050260952641628665797169678102713435218","13311985424512346186251432173991721073663513527207396869168347001445675401820"],["14120107234637475022745134303133193849253374772876402393061976617227388478027","26890740562330604191765296187999881718299134974054687084662629627451255266582"],["4447625210230715275741586816763940958261496567937810466856500766967912191009","22575761537582186188933265317559920212106188393815650066060175163640753980759"],["16769410241068612051732596340234483518182493435265306319151993926390614150105","6125827906435779917690419883875718272900477971670562315821494745626982112910"],["20782938634190047205232454186450393709489172288250148630182581886569639264495","20088334480926285793547081970710444481664925314800800385748157827543909419028"],["8616307022369074249885092936772546349804261391013396592840186536551273236807","18092727743988276417867064132747737861327254737495828928605888165240015282959"],["4575588292058675284330096774406069217635750226456362285384485305752590363907","19407320091711601858987843212445656935601420201705459971949218846259399840565"],["3740206470527456300044340363238854171291715238369918410577149010892956980954","22526796472371244957157464954604467128563496054711715387709130779261030943143"],["26843858880354561445568573880220248531333721813476654430391153849573784401366","20280054012796742773303201856982483413575035614497251602711020043359268995567"],["18194676180017923851257339002655611084103213413008907938789071627820116189502","14357361727295120735849074463197265565102997622031017155479595672176589322726"],["20039886290094083880654678146762159192255641992322523487869016257467363071157","19969001401803584678150647227564031226706794647076490804765091632752787199121"],["8892617431232776182770043117882605073070505391931162874882613619029635633690","25266143096469070209568408335335098622688083822962004687243367862967840663029"],["12611279682610010002493284599161616614056513732410972711410210915191845399189","27356305462276301602272764678033850826207550458063157325819282530784741510481"],["6113180050070671654959333717311298976223066190925999944631841141175333562163","28717406887620738446452407683459453573546070910429223931108019712169370506682"],["26085365568084475013131594619973051196842636239815134276561580343792214401890","4910810785016596217828395900382524494089669623268872322246859922160528931024"],["15174831776717824052795799103695641456907995579293600022693257602729632173049","22220201075855762237456289877085219829892440409921763947629032038970499653359"],["21113417664362283838087843077687010476160263816128974602734523639552754815433","19681184377815547733353696414491685754963023640396926869914487680679713414156"],["9968895533221591837747805228219438244699090381853961499468917521331960392913","15226711066582138859393413141329051315643968359306881741546586855128243292281"],["19757173279812278870150818914484355875157542872186985824982341218584057445442","20341499433665427621756489232518773188919044233890496610555095445640290691938"],["785826576706147863843358106197334963235566130845930547882519012820253243368","8975026998322031262301330923440117643822198364985943493333233426017092997083"],["20783867745313234886871913987155808720119208065010455314203803462770456388871","12652014573617371174408673067716494793625097402079345223952712036620110584586"],["15788349069582765687262706821047232982310490731042516128745700153320837618691","12827704089400854824554070830000333937089376193431670040850736637190395871412"],["10050968668436456421228712596548612874364472869349468285153282718473148271686","8618026585839911061034615556157338392493325872902938361220344307469944417494"],["22260491153640973256999910045135347623012533175433268838586143820615206460382","18860262958381829445571701202004410767742026305601845868913107301202813996650"],["63745270253707813039892121695169502122811427162269902717440371649478553158","6186052725301937543223185489774684562528559941461033081203237559845950686490"],["24055454492470472813954628400293584725322613372619131448352353395654487416795","2363478387585266023898821227802944071224358519151780031596642773704513642444"],["21598162496601554085395482364793006473264760538972060563605583550856746740818","3421478169772439516976131295312472405070673017823765885031925480843400144489"],["24460511730577584729823039068565900198125161902805670044794782617938331786349","3467383177118249988075203908485966894258305388024166865111345972132432464695"],["13224204810501022514819965416545315451587095579031383974835560835594540334661","12828048977003005711778064368059831834807455041989582984065781042581752149087"],["2747684767780738580473433391727426835884150323349648552455110926964506599253","10033298381345377906221239127754638866018082663077068293409195384098095530337"],["5837725252524108566293506020364692080730117194287066375266640727099447285760","9784162224300209872516639932427321512009258786414625698291067106262524148256"],["28100881265667198787639986167222026181983757236331244047086062627412498802351","25966475733549962879234015073243125532164539536944043282329777332671612482785"],["2761675159546262485677882924370787128797692444666542647546072722100104066654","24652123654115568267663871484227792203695736921905850989280645399624361256473"],["4161279301704540834279443390685300794650029309920982790427737033752431387480","19621522959547089522643307903064524962559339095733089815543191679416042984419"],["17722165208748905543002777639781580225639280842507746876745757010518394249223","3280006938725685933417413707606095575978726254175897653149456224356862933804"],["21666445142113696497089247619248630757514092255555151396506079039956742437667","21184485611417558140228132381400000246174677324284107911468796701987376785815"],["18915472693995172135010444963851630350128380221192876880100491908996999276450","114153014789844062709969837438905828025577802680732605588398051111853897898"],["25132717577505746863592620441078107997551885451505849881318955912571565507276","6362686820239509003387938354203307288341225377105435702136413024482062359428"],["20650377217143367171172283241432442936143964246697133119214171899628693939780","24424150598633983451802409888680543940107129749715258346757563325956152562262"],["9128727310490575186940887800560181026901888912363522100686492193304996663133","5186480803087152687086576158164486988029825129840873275683731195451235099995"],["12650651373202817888579336759606170412712686188000042342179409659463526987126","9494905315919941085008654277204765009031548565466209107065557967504562534818"],["1398409473634891107641868731679763912265911678195496472989437333827784302081","27725584836475214031299399455654595291491139047947545747115014804923459101976"],["9081031289032081491020928407937509198995780784544360888983035733110273924633","15668153417415301701592716522852538780958754028910165266890222967918475307714"],["21250119927452992392150538050893215558091072853629368510773913348975634452378","586406108772375806924675214063012242971586470289608949800861159397292840643"],["11448798455049388449831416737877400504306468703911795686312114176585136157919","13338789126806279596610520012313829444644707384767005409420715420462754605535"],["22362938093378056031314004896459155798256255292356129161795016131992182798062","13577662150517485314094423849037794215607842971683448544288290161390185963540"],["105644074358892506212177000538810541301400145717238637911958258273087327931","26911632732690545575980233826932520974513058409593394313742450451943565430991"],["905212058978370188042384653014666359892300323109924859111001860511752537097","21598926577524423266573219046908711726804278782150658139740514476328564523878"],["22757346813580678582250311083822228699143648456523460133069807534001396582361","16909549531366959260051026390814584925876107946532858100174829292337457737699"],["2488712053564565839521596761836469585013200755617173304464752252043892089697","7610539423270527568331381289773181468954252534375797402664510101599641951634"],["28823577305844426270611010315502860595286860796411404607887704566599330927564","11086544126896571957616586851950749068129152321807642592503240852038380706475"],["11598047470991527396086830420928823568492702229548822401469515608424533052027","6707963411815227185340588577572908797349250003965137517135730677854652478416"],["5308534820206003200738736655343177731491422756476789377722420389713032591580","9550847626557695114280967593880938123575460625800531420172809504223895733078"],["25059031871290752416500882051131883745385573619238771963549579936754862705287","8800150720719649768197731676637375581502017571321310041790061939329083231563"],["6199145596427023620835357537480955264105986311495919987122971901199402128808","21715141544872929506792284410985027822982535759189390027512117057638884301162"],["18920083561023169570217996219141188127005337682611161749992387052061973551651","28804941724247810941989139680225837141602485467432971701258253445820707773736"],["10671732713292945836760049855569360624418691772518001499685903769859451926652","26483140476393790789171227863156955748557953271022289052323564180278458916990"],["22217086172075800359754453488899710879094414774290342623981390361903647989238","19553253113675820799029040407479342033861930983825203749086839738961569287833"],["1497156577397715444558779671451381885841977440169912206975677071845366008834","27829519555683215369598317310007474624296444150835880211164078822529288045988"],["12198624607930939924723834900253379741624397280648135645240301607545260601861","23862486289915921329167042058145136620045879899303283620952118026634868283076"],["16761865288866740036851466932543763214608280310275364991865556793874684123729","10265656463001948795833847567297826501897366421554476369877572108188953943549"],["25717818324798440254685812649301730417806591102039718278696400857108653189456","28801038024192218476624208695827813320129566632930297052348528030867558740099"],["23965904635654611868998416793924306928073369884105514457725175029343134588545","5880525682059685189311158940609337427193677411076002011510139917256429451175"],["12593719477346177536693886083436864517207361978179969195610873958655180054568","27874645444846687751559637709517626952040971805083422555973758056807963350607"],["8467038534376034548592102106136929236615532788694944630876108446378741102038","5594277322865072044691792343167362078800913577724314410290153160613374946284"],["1436869577661178182162726625281906836039798061201589409547399558053099189302","25914226466039923373559340195906939876282980601181892421272864497724086967153"],["6592230729125010848940207038017117218236031026009569217774439540102171261627","8074698118448909418646749312817277782542866990626249651668915213290538897842"],["20727370271369251658516521832214152085923204688789729416379822455411622409739","13838902046216964913443911211839829220151767978601973669546946045045935738832"],["21000377583673703781227358722628325442178811205104008908856999076644191159594","12248091539141720474068660325705359208213665432811525703775887616305559782841"],["7962405119314056075625994706882680156551145377217056187464572698391655921049","24459010963200425802606367795159766794120882415555896883972972689575331342308"],["19175296345779274945558700862864036822569987423843181526889236720004869525459","14596075272771462738023075553842540489349856502967437956255473150953835498082"],["5864790659548455932103236407065253049784697644497260800596789194537989032657","23657602566124857597361190624401718874333354542952858373165451816932531855937"],["402942342831457141709986835099417160593272788689223847140301343231196592810","12361187181915898786311461066044368750624890043192146439044730189551603950617"],["4658084115407485076492245532217395573925116088276509730277446734949510119506","15468998177617108690087304178627969505980589338414422672719385662704129602522"],["9591689964738537595589861895850517126823871746625216773771655036541754693659","27090947605169147831260880888930876822261549591470886499117799574522073885500"],["22405170311348650330474848104925598264396392370866177164363774144540964379892","22897135160984852712442010977625129031188626034833817748854879652580302390016"],["27705415192566124299211342320359047484123526452962004781340461926819843729390","5443818675721389687474901023173815331514184915904699974397415631575755906698"],["23792212272643310213353512775509831537368067488442318684703246187422485972902","25312253574250501697337949885210094222690645719314502601635869620891679573025"],["3535377610343502592512585321498522238456122509918571096657919487875649640222","13608948146109515302240106933702793986346110084053917553445544896102949105776"],["463112948741055234831146618751429895356527780391074624262583671266277104297","15754446359967067249949884845441908470527279744901921843909898195834484999129"],["2620673448538953585778910353585932138974487863839799686251192669038209978094","18376232900822416810256223591097297831223707804455535482016032569314237769574"],["10494701836678823863872710670203928615857429024659266019183965528822320550009","19678826207626708834626060723683456420301400662303949006432284488693422574365"],["13643975717750996577585564559477878307287964278425149271137634118224030033792","34141640594223483985466480835308363722633036581223548163089615720115632426"],["5441808878934889045492244897687595632355768493168299290944085631140639428525","20755059019724706043123675409298863806564018617941866589029426809894086565829"],["6071468067530371060818557825140034787789753422930532404073479260395318697379","11425729702474904687786986793233890967873829842356855603397234946739663066367"],["5733232177412961559621386740614825450993407988858732814758568965460300644084","17497370253889108865595516093831845394735327214194693515791562413529080172797"],["26604392774030520548697596062607577672441396301149560073870540941687117172217","28123614147324492474756815798223084825575842870744196144498063197182483214924"],["3892773148141917643189939809321776775601656285647145738223925297514773957024","17433264162976019691979147705177273987012642370637076859070499425722417533135"],["18074641117578062684346947034629971167551234953448956811197981608928197828548","3133869791928971259260315169397509954210783162112223784577856231784343513606"],["24442176199738649859361947272737898904495753753058369709527057017530904741751","26477052040450305537147369160793013258566130277424408885131076641261836457869"],["12285001707460168481383183384405556761478991746961445168401254861874430543036","25484963156244046137023633383173683396532618605757149433310125872452579456731"],["26683683323305966045014923592702249485627896214083452931735696286888779870597","25218215699970074811920354963360312984607544793089420291901048305910327458399"],["25713311203314538405606228467050682455176863932456182724801777827789840905997","8582869746556748280956564661345841949722678655583715015810206793117163765126"],["26798632669318808808237607627386869522096598256943457445934313383403338014121","27244845206820451017538368287276473475740839784234372236061160350303981123755"],["27586267799609292421934742385227994309801936756933121271364640881677333366801","19953562641506353809785570534020538119000143828069834465125638390411234681240"],["4149384576420989018240608589086585585409556959368812057290364977439789721057","26349874058284970734699657641822220540863241650823549987782927846094369716771"],["17554364342036229861311743872223092262090222684768543850659229389917693150851","27253440430539910771557801153051262635006607534175189199710975489255007822495"],["3843053353656793184737693529138552374810939482133623656718642327360380726068","25403656382233981992310398617028150964278502470133801073397089371318459824297"],["28621879567943916245167694759341691664888112735737352071453511876285748567870","14894217013457617602426809748333391705757764017517793998017491173392793699049"],["27977722147686527528186163222405709732017731342033971805879831501961317370786","4501088108907906209788286200681691962433217854513842255863266795690806892551"],["22986422593670329646728372851538915567808586252655389653558719647675509733353","23404540952545997780125865660235805754991004882911383350205145384918024818439"],["11840285773269596320246258686967074740751454380616134073821243146832503297442","15214496429072031347847406160996958952845854268628356325287229442507572116329"],["1373633640783939596475990409765369443977273776299921445379586987540826498015","13896639670470143241168883268401512361932651411092481135395667740544893923532"],["8442146936016306029063849876308241584244299063476969555048378717096956999491","16689147621838314095436553683312710841711547413507650539028663377336319267380"],["13104560641936326977397544613731070699770590603666491568082744566521092881712","16186408464413634718085903482412879372801682582446834534345331033375538552500"],["20270621985709114478642177065645922891574995821017246471757149253671575704335","3979093899503367746489038695709758545892728223258572444164957091625046435072"],["1875694256802543038478548610209505586037987118055455779846922706486744442911","11877347939058013891878930415346054620173822115545235050075675855563636667457"],["22206577349831979820520362866132721596871429955230822060821215050958445860037","20979506463501349476187303830617531224804260499819818345975095174373067508545"],["24147949236602424621330350847713085905419638687064885826689631362031754119455","14122008061059767514838945901658216559556452412052917277562416680782728473861"],["18730405690508534769586216834118029779177826923198886466816893413857637336736","24512101857772522340892019781307087991437842924993901701381808813685955060343"],["27648367452271242271832193820222358476422246261795531964896153925405403573139","2182573527935634650934704521212448196205275070423330315488423862576442774723"],["11084056849771967459197106489836027995428424028703224429513998078766470100509","23980577163226166294919344235329297827641421974742952946940716674808179951044"],["12304765326200338486962643276164718758462712574094198529001167465079913778973","26368960139831781696179738614284131093435232310034460289801825670909145675017"],["25178189066250020186845345091492490695398134057110851805921754195881592263057","13096484485050390863906625322978690611177928584143557480245298710390294124006"],["13131982474171139530958400524516852147937059598709524557066222063827721948822","5546612729018304553572988064761606554463609516715985949721729545219095799408"],["17342061763144863427985617683175894776985766628413326173361873713935266225017","5968152118870403509193864811952217339400689483801407926911985576112863177789"],["15660969208802786575305508346169027898873783149621961539848763757550044827319","18876346396723012238561461698480406311332160144087361133223253435825103983355"],["27526497736967058372617845001842659245892345721242736459640244658943794924775","11217966381573466147801345246765739270396657033700995346555713245891766498640"],["27913783058315341499092428161226072548622411150362077709131582932872305499661","18760476418086152530807552302803706233499639714521633179841185872004528542027"],["20023044996303347464995590821864460898009584570597029506053371853254658076058","27023531357429824582975345067533642942704025866236907383803941611723572327569"],["28070749809955877242470330591481349883881826090136843891116909940627951769478","9533522213928902637317205740636126194112371987564370755136931539048138722830"],["16834588508158658503105883918466157630853425658453650633902226701926080747911","47024700083023460509228607497654332121219287259000908198962542148802009996"],["7098160123923125469779937945743993419345020371628597421246324038123776239918","3861788065313107706307895744072356597055777468913206998104875556056353957453"],["24035845935282328542668079901803662625776617005316335746640688442179897686513","23547310356171843627804451838923009297827503207627369607985047592201727789530"],["25972122810356504169977277292343186554629248892075714279939896889394781869662","3178751933916908846205887860873499155787873514233642896932713921984477459219"],["1728323450684909325779835807100709307092792480984425547759149319716957419870","16611121566667654727050766135916538282802404903619798012655691005172380524764"],["24845589134105662353190884706174476510927741414411774956528277070187735361821","21741455025146972607768250849713299588027618170636098123562770886524438712714"],["23276727607926947076711826949666985910880235396017870321814373530798942281289","16483108007491893408616943167968370935839308211603050676201589160318600375318"],["11969559509573451477800338386573631484520242353190975631747761328861174469932","16718554779252069976937324978821002136492107328426835767607469412723788545721"],["26426681845391066436827955558011208701354377320689116259675863592894064944697","3512718502075298238919381255659064756994143658280668834183230416810246682126"],["20467123528423838179344705078789979948788422019669103147054371382017959618070","221425599111204780094502948646528938768155726047452443035594137033745938035"],["21949995146338800845785450868268735984693653119697441908281003215755673426141","26425393115055530712133034478029461053657123277317152289286487779717936660468"],["25282847367375320128127129073960894856794502446599851400417062951981567077815","25131688427498292789106031232229256247510017951807514599736798771117618227395"],["10711798526846930808296232607258465608940025298878467071748414784705189726108","26429152461463898411883702275552886925482647323398598176690344406081642475138"],["24985270294196553252698043622358832892002519615615036379979053774401571155218","22676989899677483545467206408631586123876373939587475422089052557002319745554"],["12171489949099673546494101530348974849154286456416388114769920240182516131696","17955343135638502821049693192610410866575676703557884652798841216939145391701"],["26970401805063723439151117631297793014704322233347900640255837379840791641708","21713005956590579898700078234769900723322781651559438490344136382598018502167"],["10258728824172375224951120449347517643935693849537112190675738076053898566675","6937230045105152648361496616869856704069220768360075629102470010032450218846"],["12298425884193708325531868635704287879999319995294893459220726807897078261527","13007894523096605648785138725717234069140432060850552737725832841467975237610"],["19336915782155672075180999643143216295008952893979108931462133090161298842899","19735498479945202684089544600961422055921292405316612540225718650185992659139"],["1233668529907362561091490644405653411032344063870024516469937742697523892126","4795916856451124903558300630571209592733698014117750144667172514771520496115"],["11489033368627758560062958811109342563868982651853035821470977789956615985553","9391865207523797211809496534281703540658663285317159824848127882288774736184"],["24730056196418886068915878809718461511265827699660628148579991772210135273495","23890692992452427725390399545586346937205778775909403129367083767853499306665"],["14300544496184283971436531537932356161624448241723074661562088614627650778229","27657558397034581001849318527781400306374541412163922866100030521383952685946"],["11580129877613258025376596186239877787402585314900399645548162657945476384553","16318974430528631684489901363532007191887988883424295991695157917555127270739"],["11106387110861660105130019469018607827582753736163686369114957402758820779107","28318845396116800451435184155072166790513104313088424862397999040940376841773"],["14645550262465935228824070063508357767181265831006995851326077026468990472934","4080895792298826062930394024315187404823605778157333172129581704416464482948"],["16672085138164982455418243102043961161728986082072061702983726241226788490363","2487114903178523053263604410681924766195994664325432372997319748341666164137"],["5693678109846883835964716825451821406699395844402490815715242484377378554608","12296376949295033534624827882125664632231544789849761838931951050606428285370"],["5132408030673250888571060797612741310905200122438301831933344060715205049600","9185353141662734557572552967509378109733310155490472416010278105503021483988"],["28710437782921938500360651613564795179254961467845529879154480840353675197873","22999034824158557939275714510414964934901677014449921770470524353542043424246"],["7588594903731428896797305840354932230829061989745333122929297048213415624774","14148108899170710417074047420904754633094857462482648874980981056398646544504"],["18656587019715976609400079958505060119286197299762001447589666033296579341243","26483130529255076946693084485220060912843613879547683452886869662923369451829"],["20933451677815334943564233015447631918074195273347305295359600080651555843362","28616591596341838039504619346090922572517170772236531900470722072975195941822"],["17055843888931518013810132431580845650930797847811744649912231329066100870343","28047794833480590518833548820104376125386627720470191327593368477598933503933"],["8638656619107522911118550928728505914343393048064943733292579317124710377751","15602879990771680204040675576906458880548493490400077847536537450666553599324"],["7254659752933634502956989944091071029780075211586650922084698181789815164125","25614790967934884665508904674570293233065791139633615810640034037316547372492"],["28662946594558523355057278606386824743160738401428175394620625010994916620266","7070403704120550996506376245201910807927715148234674120368460310270078156757"],["21866783051199623577027016739135563069459965209901851703387416866291260839218","27684112752520288104528243585141383488533766092270967352587418716510725942663"],["28894696445788837441050658398206902077724412351359706733041597082824173208431","28671100057573909458532794179858986542401367531749372111773698784313312160103"],["643065810443837578117080506301615393526837050760888559456593462021151941422","21856700051316818581824291192935777761421535380719602114822223073414519959089"],["10728471435264895045163210510426539245299770784498755527657295195407777711664","7755061068636241718392852354373438141467046981694120665149857680305571407105"],["13987206534173670777228860216861345071247051321024640463697377321228648777857","10914354959928150096738436665575706704362423166507287245776810852545727857947"],["28322926843370439039608776556650451721429627325818102210988041197688292378497","10250398425970409282860244485749568113516452577750407190829971532490245903903"],["22405474704342807050925565287658608844079206947221868352110813839738989511066","1638771821120992362389961735810589031470861057776988653719928494110335337475"],["2251969490393818534662127867509737526079087291511490748484088110498721721510","10960393631584339969422690870322209357462675702524870744166280015035409399519"],["17800086952113481272257530411690709420513930938874678878213598584357772275288","13744226158002244691914067287435094150180190514914658892406101683216415512432"],["23192967606375355596743925188935550149280893595795180244065082053817096057309","9395798900522665357720366266653986734435525275871856151221322465269562746358"],["8054681214280555192301081963454117150166930528378867150896815614159994877339","5252148917551853768503152223258437915624559491761014778241970341887848265505"],["2037248052447221388891965123859583179541384076096892085779216665800784587825","16202783833553838402915441754126027427879871102077579285768291149428420242582"],["12267740397550109818988468399859929031265726329983416968230353892491448999512","26365544397135104207688712731540467382341860826979239331963296112473975354688"],["20770913933497186508819158482738433103920854300250413961662227430246182508949","14630196151967867044025789050932009056626986120978210531599857609304613693396"],["7685195524716547705718484935762876654168498827710782259439957150186623994278","21831984467518993125016242959564179320388124090179707400013156494063681118152"],["27681042380578145888082933529399517721674315462452244905976983105672822569747","27186209223085242203401970560572994913692788477526016087496030618934260017777"],["20076110552130288841268180632242140988153631000671507163330899700724478926085","15856623286574514381763176141400817942584788627651361068653608058993073490406"],["25965695582278139673224395114855402662849066968764814937569020406114187049230","27216381271844751625449048993152268623334043799854214755279740225508192850883"],["26270929751599079999261646592762504600073196762749118116000909511633824274291","903716402891096695604599736434860389070694618428456645165869818998963053053"],["3301909673176421732704900682413032712597314336299407926527238450792026961064","28432925644015348243252746109998963871708077961999229215632343331184435293392"],["24167958358907461079452672092471577322520216462483366992222491162374072759166","18381355355171950563363116435143283564994765805483918212913307843115378084174"],["28759151362343989341740889685469120562790551655747652319921229743839828540735","11169683934596229031246726870041042162539524492485391520650202670115227055061"],["20932557658176148546347783437826250774959309311842044620875088007052332306835","8623594630517979243596034624583535809616919759646453077350057807838420082621"],["22410436541973773579059514629977297176632071219374906863171912445056668678800","4998058853813950915938483893307653492384348464546713683886471783167928620564"],["23772094332728976876723638844318707061165750088923610111897037770621843387455","6668086397474943435713195608485823181974832685215566364740862022943575996811"],["20420113644149775590228697184499167838798220852383658395664059018568238351251","13834276625191193069361520786115840734393385554838544858745335181925789566706"],["8653732320170623705227617671437895329546810329904543655956923751741350939893","25393238130257804953726289373818168360188030089570318636111300149348235019624"],["26955463650086092865057646002859320718808286696052196404494677120519892520195","3278705967723792455152116660748738507348207367852268232972578935701202949627"],["19742495192656133046765110260635200621558776794457849731828865353840808206019","20805641587784422183363614219039544201821058775752748623660447602982044952244"],["9213080671445953150487152163917290738760126279765453343672457072007289249744","23802821438354395543065459365928633396041808484856429683310713656873841708849"],["13833624380707663221281501499194330174411121283657618972029551315408637174372","8852624364021021251759655028000064589868483825271298138412576088140563572470"],["2761575792837082892518523325554880375833910779835100128399556352720956785898","27914193652166015100163927878239470380351120514383243138625162583121690009322"],["7165726386516492587547903937122496003818617508701721152261230572412426702883","17255328652004405499872776997167628107250365133729958723316004212916209341275"],["792835548535620226858142507907748664372408768224449715303948870719868304848","11791013564714705246636471316419093229919104437145968156512859802532718319974"],["15561443462448911047917348937901545543950415276600313917112327134393429359787","16287898227846485253537533600819188079285091352523247221911903138563041097488"],["18142714715339910720052661668621026065150785412057921356900004752118778442773","18669893218250699469301066315103118202992447992324855649558830334486340080806"],["27006747224064768258553874171305804620208681518365213695870808810559455248026","11177304283876089422636579716419947628977106903097963811109388643339969817329"],["28846435352926680025153109518307161778211216435282916466061251138088985467472","24693752943544377788452362656653229518000683346438235213603326236889781866626"],["20972009098441913602562683687941759274089946715811926046850643625847262191408","10338901145290182969809688566896098685061692762762763034011012773355048152620"],["24318855802494969819781547735701396579134972877665819174687041977865502468430","4907783492595070256766915055767569997318354404940910872778875627386375032385"],["23887443425010810602835210444374075139396376665075345043425919418295786903758","15982235934984964989006392015227684746832138063343269718766024653466111732231"],["19230637651160399155878844433223493808418951677697853086178954179746592902374","2268827842442192349629037709992958300852966301024536269603303922545044154230"],["868098473900846410915464332020323287652925423394734231459114533656824660760","4161565546917850132204000212045335937333934100441091455226216371221696209374"],["16470579076577476768765869697217329119781326473044784561782724712145632135067","8175276912662751146092586722624718676647645201255154410328373259536196176836"],["21744938258047955451481599841500437485962989078859842056930010351046452986722","22868219719540239198036636675777216669020033943529773137206759527333637789640"],["27130633533181118312102058123791853378935091774940507348819056615047792986030","12698708995735234870284007183240258086490890011657012544861080802082740509520"],["14849927675306777195361216102896721770188690269702302826204849777121780526948","21128503885089660712305230899551858862636918903722880750225088837786970585760"],["19915809720838019181218459905114535784483494248157540145942717501118621116915","24891272848994855823428409102576245012995162367258703878138893690820693196244"],["2906858529384422798206661376586469533329687264062198226603401334734472942519","12272322017310755590654030660506182085977477208105279500379323318577705637130"],["26540430485455541898873790895089194400395564791328142668561768275186612922139","16287253908363134776001289066179563041491870470543299419482740285371939197171"],["12090971900752587148797776935206811046413822302013038265760156988863426480234","17837214564182913313340563934350871933168767987248080221499538054895784409283"],["19445091072082438741131482755083025491159012358299979883238764109710623327450","469509576802900295958373973814108455723133362458604789352356981076177862222"],["26730097979862038960259314173700477478823916176319967524471169674364329912701","23761653615193120981337094051393851595784279068425176484005398868841300743469"],["10852989969121448450746866820378193031120137696339708964754216043938897307","14241614557380400499860845845655721415272002419449469525896821767201753007333"],["10568129837845935380729965392457972061825559759262210858702601568248330893654","14548161346288212297716362923902934428969927250585081636570231694624408320785"],["16473818936464920288033208609513528195258983384855449396399522839510352933014","1874262792273270335596585521899454021240504865605002416031029464091228275110"],["14735798556349678919193045295794032184472778381671912215749332548323403444905","7453858821806149107964325824146281357694218860100646732395680981240292205687"],["18719219953634583011221371418531629908110438244408909765469580061149433206057","27011820641439775319462786527895100514409964356485385121196656256915065087319"],["24063137451276985181301180744608306351653294055559288877791318823025254652074","16095651921970977799260553446067885322686618553844448478097993533376253083632"],["21609430292283511716692066114424961163683034639412826444917133634006934122333","9727389047084170519714418980828146896856600186209882368492694093424564576611"],["3914343454018026571849591650614611705777150258621936120239082204423660166675","12773600383288002513802585137240963658889224179399446243944082586930021971915"],["5306766493717598473501721807328405760965883979349265374843738113288855206552","8211277083032511871017537028060566097877185577293645407848786558596463961529"],["19248210729236688911997917784838253073571129824635841510559331929306848342920","6547999772463685837217526822937047174227682522438674158613443877793039653720"],["17420631360526280225923169783200717355698189052509726997214613668510629876370","7846135278187087877430892997121287532128520613108226452281912726226634863360"],["28211401489253283142958895516691503793644367570290767783355808868637279210859","15694100414799307383494917191906584502705723556376424655839150179352951005632"],["25865595430145505696999515853933940153689729702571261677278453197432053136555","5728536039024545776141546232015927249217792038161471984793197266366957522548"],["8461416708879771289648067162454506822099906644906144053603760828998951212762","19837078232848165629930368403956140541823185922341093860034517499635123932859"],["10370692391938721486019353223513158701702556953756790715900163418647545941877","5721449125344476361736092759262864616608803555836804442364032429377346342904"],["6730799493072705565578678657473032456800986718977875051971673660093450805861","4174898543487395163502285478598626273324785302906954038621881409268614462984"],["2352751004243573723335474107998442717291682423687325040924546258755694096101","9634892782790410132267032513010240284917907287558831515296121529471670399705"],["24438275934449276120580563378449038562556797249656121404332266101482576655305","19540773067498031759309985076278193911565069335674197289976470939249387903430"],["14528347774333779237854562101775446281806844705040546849669269242327701821137","11306455118132683801781134090884768734745990386905583461215549329344856419580"],["5565977868209257225429431063006257469405495583243769674416365321045633623458","8305155781729087213528853181855628552122142686880987318173626146049793938691"],["18086848312702299445905808367528396281266968673388348189016256668712890366010","12531094148138851951483453952280072124302107690252582515774658324789199689930"],["28442736134864025330300883405726265473808018382524334580745965202621693609887","24162909939287265428858000557292843230027505727157125268948831758295672815540"],["14564018060554070378714317107872900886050902127763327549251044882718879993499","57682934636823246895120272917356686531880287146553707668961813661401281668"],["6279263451766366318314356515171014588861429043785597133077256080558121990209","8831494355856656621276238798912351561357159162586247818268775127126344828074"],["21352122924280941215447168825972589123707845236842728367280183753957721513592","9218458157354313772911122054380694489150409539004899836097630719323096887415"],["18690637830213402101671078246040372521798403861242516638452847775947519491184","11363813409694152077541266384515182356514926114817337794385369032023892557922"],["7511148963377895488208965129935316916853606384417403381580906351951260602746","22513102019464561028176673155858496452129573966478122720266578790813718725348"],["12213029195491199476271732583577488351642907662120232728590472115693123633331","15280615943897744659771729423786371043029821742079990922208198582828883546506"],["27044566015334232593047597310966928032005764988223266719093546061589385020285","712212031573597864482238457256171296677874233958384891633052550790931298005"],["14884650802453978086942346876420892469708957833285699392886463366126059870557","14363954898836354269958254028839988851039678788126721126608716536903908661483"],["3282438632150516066178113642147579381744680060226697283611787360808801399928","20490774007549607542804021972471020528844620934495941835105408719651080836129"],["10594277055204697499991581626088591812443492325898976532296662424226641776719","3255442588686317541519868641475889336225143181387165443113004454907806663542"],["22020581930183396349190430216447530192275146228308856983296371621945674000592","20946499933098885370880616544937298469466297144174717391904592010201032943018"],["6570152908630650524541853424028219287673510285136364841344172621778955103614","1678234973639160260071268340880919847062055517940513616489714406058616717211"],["1789353794483528452291026687424252025018854972206984482260025730797950105286","14205497969548730582876995548583369719422293596645470439643954766940569674177"],["7399376864483623021031549556858760499635710796162570788249387134603235721476","23915854354745479261977818026491453039346336678224230829101062360393027962730"],["7311425587402064015871248155168710221059641301745954270991674093917073110311","3614111224928544203235413672780796836159036550729701643807539919280710905299"],["4394262709454782878758098764514008761692774770280107449446080946061239664674","24788820228549417907467754611049594663157082533916238372337793503450624523566"],["1999400658297917111132319286086487042956295328038089241921917123137686807528","17232793813359382026013476120288601905414565780900920578519396226686561972288"],["12626471998103875750727708953228761468614363232952782067422405222006060529816","22033631195529623733108586011115141515549390985759303904729571849208981183552"],["6015976437183813600966704365812709922234650555680930992812618293584243646866","8191375700641057099683410094284932826321662251381952911767448521882851717677"],["28574948220613684309277444932602182859511680129522797137340343061409868964528","9711407394962460508360913217892719287098674074507018333921621052842514311718"],["7555307858459318064721249262447660090016375432002806096893379031729087915582","12495345885292924175712833506931074157350696669310254510234281790330834463063"],["757361312669490305807713004570691647460730017380304711226515338847148572734","22852854777678520206342525744720830145669233130396518025459669506853150592352"],["9446600415645667202573961375971973106212574902217376322756383029789410823166","26673585231408384887386075405619230764379965466171521340968760721345377814481"],["27395884334716479043962445691296331168320714490532659207869942188233275061329","2020805682885427803592111790680774492571285803981283058080836443260158718249"],["18623314896891143320763087982269761514827765923936699027068394021653809567345","1962916091682631504346840423574585000240708985312083832409715607261673944551"],["15565959264268429734026369084253964545973281394029860401897657110428753389354","19064816739487619590587705045904145841405528991421242589087230826868344675467"],["105605631889307023120888734275672940162629067085719996037452401927232313061","10980018588050065541580094123475904798604568870931481567510953341061826825305"],["16775389154913264971712865863962300520453600482584175692865825906675438848322","13446970660492473648406558128153243678333311745659180283996960136764334181925"],["3733003437953993854591064789839593688908050096888399748857778316834711333389","3875456387938032110329417911228301029306624038495014302179181744387875433071"],["11996838003015917410943646341225786946791799115166325228446747791355043955513","1516460456827049246955051967570477876305936358964544031872323141744944484914"],["9464746101722060702929372157142440295759545059955513762241007486302018459147","13462808583227044521203527298778733252452191623172143376555825757680864870346"],["21653267973503238710426631002939264079765982063497790144259408201267412728027","11446674344319056991633422973675006862928400835980432022367647175313675262104"],["23261111155141731406003999846214461416647753084077451080503797892276733548413","13850544925726842162729944399200132806640545708822151095986989934116039091711"],["14923858009786483194144813931542197412252679991325944597365896990855217766153","6872281568059518476129711484512467838362097244297020435386906580693716069615"],["27607232345575962336385752976415037920905383091778814566984527140797043491968","17724317041699677501910427095636659503411516127221822359813500434604398348227"],["13244612591278004664104393805113985520783729473268800757417399973403073715770","15906305099468158391165276996179532705914431860004717298841362295880897276243"],["4871949860915095468098811138880135462338115697133087303804488083902908505662","19639590083475120557427051662225901940057323557341889641314581892821447213363"],["15545596385452554687537176519683688333368335215895969325564283775994017566723","11500207584296376479633816322298745049725436648505852883040765093481763595267"],["14930405007881667527112838626728449429883807064159410625931124362726465807416","6980734611917274861745967016204613071359589013361510697246807011042601031821"],["25305121475143115759689360663161877219060995178129592583413611199045729667508","17603729423632545982897517988236884360657795907561012101060646626614939810550"],["1216385227460541861726004856145235350512302215828069423471876784386223476762","14588777434356869757958296532064394053974037256221407625665324547812508794778"],["3191329974968617356405568482976887375265492937667853148551064291718960268506","22720757745999685173433573681320330573519571512517933470976842902467937890706"],["26210004498631969327120185522401687823847576680029758823396983085660342401316","10693798511501996497210027354283016645198810416679193634642998382764022625713"],["22440871483200878364898830127032680329777000245938131016080888381798569719662","3036784001552411579700885401135630094784451201974472646797154473368576672228"],["14050725185365001283683997300601448784987583599991446399117831839884938166448","14513794115047075981197569903566282796313493445583559442628533195236265810202"],["11247878690422228922049215806333742183296981472264789170146598942895144162117","22341033131943775670746471559109610203188574809983405785083596464775861284456"],["23298126126450540790100310728593677178029740473329794193601784856474666521260","20401503312772083406464601052506539540529230537225905886275880179854670347246"],["1906451389240576373540788393882525432506263637968362747761876336944261063692","27081666072605864367388014545757686772477628839156062145003826389784888634122"],["12246936797528839903619208446664555234126304318770925276458336821245113872396","2939725564740377066076080982242982995874484965957713878988578859065383186679"],["2059254475432172049035506237335900812311499158890784599630009189624348378883","24905893541681637900035252451859950187991257693425699832840812552783754678216"],["19995831107919780651921108996064630681429882910771334555509837189260070530829","26853876216475795844905235125859382469590817843041963418033341064854215138293"],["5840569686449175620161341445549051933692778445979473053903582643375561839090","1478548397606634128976123194012257593288494308576136221590531913933716609042"],["389368843874368938499515513231301663204332699673073946298814524630393324510","11209962839035349522888116272614182681093379514405659519386431112748055431260"],["3545846035811430916335824903382842854030426026978277098519149270162134516603","5693706923639828173750781957699821047131276830756057143735022682881483493358"],["19338516559315756829504917472454193348434575568994368155764463960615355079946","16748685428052828908651271825919865180981223267532777216971482188405739481264"],["8469476927655283481339781230892880840496736876061718518430424689260519359858","20126738689938308105854446107293178585335084244848948841025136353821028538113"],["11098010140998086566951510427385381724782468607499996981943587819418568324867","2450151450424934271310705416823394267667478610994505642887484506419420318953"],["22727875263597699416233689223874694747418217164804595311396327382672039624930","1814522518589890174606505469024638048070406589698589733293771283129272968213"],["7292072521128475128016323612128665085803996321228050582552107046655280367560","11544957472176746974019861115760158048735865366898178952405384296395767069373"],["27500484194817615087211626075967832487510296978588419695383389230616738699377","11091746144490570964424389495069232189918425356467832622496149066124681689980"],["26317881019092186312098324835191300000123642109325345933596823105295586445146","17858976432676935404784989171482565793623477666965162678048517689474625096602"],["2347752673692371267083112210272885659026541527153441381813520990235690227891","10434874666152790230998206877010879464463259616749093056073349860235425941668"],["21792033917874569439926705767453792471015717417521076000762480894313109770084","25646517501716209163254776432083086114140069612861815834850702168299297921714"],["580938721174442685264024253389846086208478811474840330886381387906019344045","8716081702963081032013742216122593821074217245722558015273152977278533208931"],["28078959276168141207923730238037982944830713651028717644775675057887060490701","12695898902436190984500604722760598709062054446883509208282702387207134726306"],["11553877420035867078844298708300330213008354119183211653779669104263616520988","20005370875868999776383205920494351459598093331041179411231790349945020322508"],["28653760109352424612140959114144577823009282535889146762136180832506271819469","17893886918709514220955632087770836896539015794644148668277873733498749545102"],["27029335100975261913127326519570353798444541812056306077240987063806704413645","17876047852618482960080770563850402357137973338249553827578255619048004817716"],["4262564488249440846613295044844307349101162348218376546511613293382375384037","25320627749948164982081085632785412182477004666914286719110440596541728452005"],["8805282080241104025441944155582055492308205951360399665361729054679468010186","28184437427100562794820503890753204067636003990655278083334142967642820909913"],["21753624153702470161502121367481321236852037207577097434548220810956119345357","20283690561508559487165999082726418121690257746532340056647952099824387252223"],["28681044173681247956654708239757087317154268438525558765537899635005901934543","27915042801305852746691141869437902358866954923950355059034667002127542586634"],["15771975488998618921514079470212598764006761084668212544749899325051815086068","14225468026011785763038413107901490668272949794406452599703698649757656324283"],["28875374789440335061376759804429049667362664941747043616336582729621181450131","17517858247783103264739283642125260293056768697307482952475157034157251013496"],["8353221954035149352331363437447427205320675837417802124951773935748845648078","13054733987672928760732274042217168888403787510620467081122115363731985354251"],["18903667255066962787887489519367210636666960559024206430179955705341098330999","26453225496352190543678983991056596396602808289105342196314199788992630893521"],["12915391124809716820156871010180527588371850124375960047591129440220133886244","22969397150685292969511249606716007377095987140818268632885012588213049701131"],["16565098482208737256282405095085805777256297179209500055001295147034928890044","25050037983264808642511092372912111725984068168804142089502305375260638353764"],["20587941125483429912618193411697552153429942976393604212703729546931186785433","7524440014773136947095057129356702776117190997726109259109616554157930852725"],["19662107795399251728449627491563225432452838639161857697086807802814482025880","23644505457394642066667421817192197748975306833885241375106103161301854306839"],["12106988288481502825950202655182572821621357745969027300825702980298754868127","20468507866976702403918404566977345577648225005968095387915589954355828352827"],["19350376497307990536885681455855391936204077481360305315313496971022562719864","879945892855318352832528709615963910133454524657851379661033948285174422205"],["2316219605578639615660189234333283416343342701015039080513333176542624991671","7337076842781016306558943766420108377776355098216081341946785641626020962074"],["2921213522781311940518171125801769302978710458966054893443893784097007346063","7724234636052878136215203482290375175224234053156900335444511411135519405541"],["18388970045881197493635219607252074147908214415600834949050235749285592899592","4764045615340660662935392064757354162966000095575694216828840597907234704639"],["26310418640140856540757539075471167835803451325232321022429609277146617386324","19633592646135064653363167992166857679617998231345223994022148120969127379905"],["21652372941709089108704589077590783458048817254184517239108480090418956679970","2357686113204155186465040190016934808632045573911358766667940777672851284813"],["11324651754776392742556911922097464133821646912527491858297896725602494290351","19694722193718530363587428033039528074312185243006329042160588476757684076953"],["27280953769825504077221087675280333366603114838462219426621652121757876040480","12844967065062343383725489793475896891108842316106597966565104772425450512486"],["11087718285977105861273289877211140192496772840013397164080686807043369268875","15463072217096313766324065562067128236618826039162767304416609405769720961994"],["10042094384299072464057621101201847981133337323270745920773775943234843693004","28238889468331924433211991996379393963988340087343302722715326593851085825472"],["6882936400129920853562609736497888253328872178403549816278595127295868165190","700825761280876762008758135503849946105377789164976494631595156592429173980"],["5994994433704041049443749163890750302599637295973363277435047114280475686462","16974054528120194130988695565511682352857376871752205619924393270746856186529"],["16689799231457138306354420185569448086453045738717023080529444681039335520088","72093795272922720354796263830061742755021365752517581122340273543508010424"],["26701749484567050700639077014491174192117868245605866661276390556563677610024","20261438192728834512518632278563910658466898133856835135527281464762191950901"],["22986573272025370754673615819978061037306768037820958077068894409884129780163","2546306755269264943671492649231744843735432619671925399494398411931469692706"],["2275667105330893663907198192887002113668164369311468433725578340364003798838","13916135928380569777295435290154130803036606805743881723365370990764037458838"],["5535120964865796513501894086820370664563626446397398815398780197786575673239","27700927285926742653601808707614236689482503412819987292809845647252239271241"],["13845414648257106405675176905841658581206648229664690962882019562405312243589","5547975653206682690882506210673253460310333750693238930110570471403813958399"],["25303995073754692048030213523099770482610104312487815101335499807825702146179","5708282390852613845671097417624272783776428474338514915569736454976939970933"],["22690774853471657146012025696363515438889079718376358613160788372959257137622","20111991746940236461729954992112590211136664027713939021384110906583429444456"],["19884512327432782600127623741159267922251611340327944272449732706839607149923","3186333314999209696876781235714348818670184714466386132462560566883253214709"],["14031149145364436718595308387627089453940193213819874895081947027271589486459","7502536724841305553575844194413029590631935597744520878336551742009161427559"],["17935632951668601559649149157928797934770684046244733174277102289331439667874","5689151840247803969962746577311108534456450823792677576481102912380511255497"],["11086563821140331254933681038577574318113115804359011515074463613301222086718","14529534170182016089232640645201281968840757812178947047652119093883492328430"],["2602459803019324256237460095239869356862034579923301867737449764724039676640","9477092886536871356833099449504576764646127410244994711102935043915588426948"],["6108625997063633879029317556896468164270144594287050700530645825979942529294","18662433867938845160079602219000835492952854433290433234252238799448280940579"],["20265987812959293120398699984464888582076803421215372508698473446859176975204","7645221750882907688604869758513561004942774419162046072572194167754004941794"],["24717718169729983424198117020805412963787523281262070082042890663605582616139","5308131704290482761466464598153586581462485502986353446515214780378036777584"],["16886589161217259054203981352134112143352872045849095148347574001069413774084","10665050217144074325067854998078535056758412608347652163526195714694267535496"],["9665368469604637133089070430471133916299094875687244309927587154478661931941","13182444651392996697986542522730442589449446959995782890563156067708830568208"],["108335528273389627354317962408158506177131644541593656235114286757610846918","7046222842267616105924034133942602770178791690180763561703514423806339868077"],["24000598208019612953894555713298958738977722628793643437355631506777820500609","9392267074519532595874102878310412829974030839436393580544581521053524542896"],["15422508243211930478956424421101340899467156316517672212500638761851268500720","24501449709352300668379268592752592146216130843699777908268323539801720428376"],["16478481219321877002529526375405137461867634777402135217339611169058482954198","20030163003965368500141946033140226346681803834375384785015663128919229662295"],["12433596685791495057814550723760424407400432508701391798541444231421696509999","8458020049970468798172059791661374396207199845656995050595845256377206892237"],["1486048234618595703022480355447234745912608998007034359380461469133554396948","9278606273284486882571225538084435658408551224499582005215593819427670497556"],["23921470166186533210882769520824697942875773458299399562515684722607002463646","26946038245623679056406346932734686613167198834900116110092093761593883311621"],["25987304937728565423830529376879398565557986881889977395797433179218460369013","18318320903510912862136919529919892838609382998268930263262798487894299047976"],["6675047520013694524076009000078908381027023405533737758611485178272524086503","13542377756718999521563120022670110364639961421317412005131890544551808520902"],["7646979430008243397070740823429077203109282749144601751695735297329268763161","14004952778376189513513088143117488417583939989389557015637388566105329457926"],["1913047185533838581884880507375628958826126657822476116705848167000421567373","10944817788436997417110615559167342278109730896929165634904390703779884499030"],["28503366934433761331776076532862135320473089046349236246206620343229617627516","11704470765628942752879362398058080121510332518839491484352835875779435509453"],["5987592155600781346680147023863765604381166951475465177972978391842340351243","8544771663683876649362063982273070892084385812728090907099694016696291784332"],["19610381401818546304696320767018826387078446770389808095048536887395183807062","3182034102752973095236245309482755611748185102623920803133414876882052804256"],["21065842166842786333915660201429710235186816880763078335802569374832972881004","10446617679014752669273396300060109973404823416547863496557096478053778021213"],["26175892765909282445299405723048525947918588411744725634694691406142639800685","18084794045007906021030450886145685888346973396593248588367456408450324617997"],["26454294510454211466435450408021286543527766964461300453223856735653881753300","14464254543715151401271402421381237554630817238673861676301561023227529428306"],["12016055059404953950270906437041462592952457222718433976166488751939676418076","2789763087438728021259405047020013280300569514943854714735844805691653839859"],["23273489390937323406890264876006266120164798917038156057069493784261820119797","2905648950181267507852504589681090430187802872362430598014258552017023132251"],["24249570282395795263611900237050092590776562626157127167195289712166577158658","11536612252234360378433179368246305988083843800122188168531247204204150556666"],["2003163430249578643870419299537276376449621639488984461535875499488783974131","8662122308305890567163097198765688175576520954178148860800763023909308487866"],["2472230199151724440337873591891293535312152979487583807981166464712305317723","25672706217912950383354740063195929945038679040313354563959864516239912514138"],["16862606660354067110616716309178735203221596417295471174495815624149674219786","20397696007690291209501352497418276756961895178636796182034071895668214550371"],["27778502967671941787117078799612999860525141256722389612423506836552718161755","24084745031074399469933671012764994744570691389941947076659134813439910198665"],["2001190157187362980764223230728423531083552213748321454654615297186973710028","1167695140603644742556409858500522608751779707135126194825736583155130184854"],["27645742696334276270129901492931102295456095338139389196037154304182848935567","27893916654885450770130573378315753376323392276571686161890428784701058367962"],["9126704238619589714701054815880576507247325855282375965119540971459135994657","13515850477458707295280531488498305789395305168520292295653415581310817753143"],["11738612596733254176343456305355429186188853406553618868498980882333086189051","5017610550271567969172606827481109251738877734815668421716235527356960118111"],["1055033862324123157378383535014681418605059420656493416073061923468411568499","26658963589316525828540346634765304934520140092844958237456076024440870688806"],["26029748072378925280880973039499797705824510717326785050136384571369641913799","14461656897566657114999385046344889491610575778571284756467677392062595611387"],["1234003794436063938826570038368957018573325957146951296916810694345807011429","4578094743654826256322467909524053483041236804297724733762568439325117126070"],["13773972030872745126255963150737155794154789866151087656271963058596301124957","9949410869215690734044428645307277766248485709464511092186692312537102150489"],["3291851567968750643753171384900656503768689739212731614717226653974327758932","28166620571092882898464039287515840966235057616298881384202683891763330970673"],["9504628768841122029067787569667022190716564536131894045802041019578535119325","753552509251135517634041404135873470469862916123924119682687383639653441913"],["12506465899378359399296035222360713471841823330189750763233459355251120853573","18177168046014042942179180182224870379582668762860828223866785519155097130202"],["2968636289148890853886761997132532462545063779244552987887702049988642322725","27826135973877421723607177447573365361560877990374971371348111148309108660591"],["8427594562710335826624354871331226852921036474184237269517962216200300022801","20928774222184145873901342062172666452556074257380034873275013849222133491277"],["19017850898232152773351985618627667902327656825157203296051151019190847445631","28314149973675384260431369213096572034215849381079402521637983527870149445743"],["9281272464844001413567220922071966848661166606471234723469575245866707445805","2760998101676080318543877591953131368312862829489520614035028168269502639229"],["24725448548407722576435302510369910326294754763495472004075916044319267308413","20241873867685336494012694474321501299153054724167396034508019560262701997155"],["3826267379070257886012158246483263331616449860234026046799940942195497938973","21583071097478135398609346303361928581564109101508535834486450725434380320717"],["26365052621648060631277700713143719086476960839082922215829953737978757456848","26673258497189606350505562210400945067754731810940419474009584278775775813061"],["15772090370776505104006100416288993704244897821903952457468458252604801985650","25478330470855923993756104944135207741385131257462053498399108685078188498582"],["20744143895119506247356357681668733413368357275815025003187460990056163385758","15789185731623803989119482395085938671670488562652606447277462571023515645264"],["4182070504663251349738123825401930360786981622872202223782742523063465677380","28826642435953969775635958190804700969500334897183397328147409897622279343040"],["13771603429762107120803006641592537333870849800606258271334757263710246564395","2384270047773178859332821354736542094368201840099397792079939067936516690505"],["24813005847619180785144518737777798094369582694627337630185136576521551807292","2122622728920811585790348753089453703133239963605315104592506690240546052363"],["15595714169339879967846887447759997956228825899360718619042286963680039622121","23894088855368855860540883974547905550784450523840247033265204062440517331758"],["20605442541214096435097447895578540490976153675955167424365191168438957107739","26236425579955488126600273735811061011870164296254152589544074557093543312127"],["5939104764934178915574297921086979303916978955858564445656459309079044392770","4671433416113773708027330254981924195460320978282335276159760290246243240400"],["447290390221602270431763270672103736504629362860619587663904090696395971477","4121871583615634664008632469727082206765806358773424565072236283337164399995"],["1740908247321779957001104186736266890725645345388147290236803432253333727522","24201323955410583556979626793389754745107584345769701794770767599886909097675"],["22704467240309785956165550186052251498503677316229076425989456668061102739206","8049814041931487390646170021790402671907237723944962054147248382154499232284"],["16764096687671248921583185969129738805647404057059611712878572813292100324291","28788734353947328266139224472465678056513126453107209370989824117453303789966"],["13291659881333184133682265066038506138297612291006554861224480819955365105303","15734432427583020872984550705727410917350528687223448870127922110218707816310"],["3806881465690842290504892566606743646810289412834533406871404198648119535086","28585012935390786163591805078326729808050210955864022084008205300388387947599"],["15896316226868033451490815500391992336698175545355963406191156517788019309911","16186482782763486277619566698488027153378444499202876125517483844606615999269"],["6607426401146488566265232024875722051891689142677659893167828346870925380773","10912464243862919561795677884700474221906452349515396799233847130690863637601"],["7490013290523405518720809014096783460653889139316772523143127970671073735473","25756572299805656637863464304419251600989162180371818445450525166184030473536"],["21762804518838777940177307904798119432634432237945326835021069834114301049229","2828072013029427349114812807049286043934844682610229480951893796834037894619"],["8401501174871564285776354459822443585848866929293819239518405375649243245797","23319186835114981743446807856031955637852507552344526869437272409274081349940"],["3549825105891157348632676923360263655629140995853137815634161263344300558447","21481864781450138416141533382537498888354385333374223448359879249505949788381"],["2524370643868030418332306702038751642123560856867230557884179631073401305470","24735904488361606747776951710664962360282964771987765074620337050807407882436"],["22359276020478371811757064623802523110661725278798590434940132778862672596459","5934078514366220168917183137106547003403134636880812396786137915348783758436"],["21324058253877766666853472903769511995172276589195540071300673068499887952265","25590197469021821522149601090370891538968167410855347388686126057242342469470"],["24487327624686135624976015082543388749957170007883479289266706871751849943999","17429988549376296621361012401474317376811184851943040502779308050227035090739"],["4784847891425756269548041889401105959156261342046742893501923740310002479506","8863828436707623249788782178931806865756877357177998309332177073846688774075"],["10178158676524253312200749757063366212539285046447546944477446121370858366355","21402937493411545565764295019279923439872013301412209545117377052509198936824"],["18425583295120843958761201686162005826862896482445822051160679623609650760203","19663302826216614143732869557827384134983849693042289329592233927796012261205"],["10079816332872954071127260359748426971499769857506385350262685048046048085843","24560223378662586021646591403433421690630756155315329410925495019908656806440"],["28908639455885571772294208660205691409196224022905863981720893224774203661472","1864371887538569976278837185887970740103109658967791913552927212196985255981"],["25511145724156244793279559028695926150671388689160054625123170060160577252059","4118249358605800912829635834269330315822824115162452411296486213081430765258"],["25021989285507091021746234752561458554591082275538689579802974371434809080319","27478594518287368119302758061803328045028554015958023963638475655663038146826"],["10034911389213620289938957585527015187095327484342128518534344517863378385700","24327741495152505513016076253294343615850403531953014841401986680662388448183"],["21764596706109561439647005348338087774324625822381153517026734404448781627177","26773796735964556009317941212142255822605461661112201008876246301853332900939"],["28847112745143820696119084285159376809442006968608290999325103382862983143189","3059436067322612942662254395723333736862407423973851501298057662581409152668"],["4609448834635278282724942310124357038959527601826933987824671518764960915712","6918272296702875975412479016935679231959637292003074700355279672609409688151"],["5788019168491698411564589259254610527556232993590151385858455107299681136830","10266863250270817943778435870729707734257915648796274623867575077279881674152"],["3242472602288715878297122418797514771363101890113656217677297448540831643890","1283863963868663905596220442915462862573301299632557243512754756011793871361"],["21333485812364326792569830924052590935124351963007205299565279939701188365660","14494590905072435048105549265747791009831819384049451343522031941596466299365"],["19277953391873591822271328557965714763728704332525750094016904744233486856184","6885662685370599387432210865153307320913608711512918074762393663928706186523"],["7357874980081864274876626565762602454179500553303486558676439828667896193918","27619926940501520598658739621022588359534975379117506610139500033673235033048"],["24096974785321549854333806083192026954478828225841013487676557634201865705411","18764512563458839729808088436119272700902404803755548194461879639017147055676"],["12886030015253316428022532570729461016797379938681101923811676102623454818405","7062395293032527098695280941109224114689338126692612137922436509184455865222"],["23889067134062914148844700784366615974824250308060468274050391813238386577873","1426841905567879261908460720795268410194082765903037026178959208023683497996"],["23796282075280357791347578493168894128419571056410110119755287805760731854800","20137759855434189140172631919111636873362294072483895168169921450163901247796"],["11391360094560780989225209805993483739960535600967650568881671525887541287762","22987310131357483409795461728533483274431301915208207938212236785351510808524"],["9432531758890903650150549711254142030470698860506865640349181970177933229250","190186833894145806986507046264101585981453223631155851076153092546728387542"],["20429515061672622662715433371644483781015144169388139002705403503862237174419","16191826771817018542544014087395779383592133718473174043882431696297922534923"],["23685381974037486486170516717388122052500511728649604702900146658179902300401","22469801582346279888667525266212121446164781768377344639384350255956310547152"],["25955387640554556814357387910883873121498140035540771838759064917800646963718","17283224493054332508236626463183505727641626525646330800995363725726198942775"],["3976190584923602146970820102098463458365317308674736514261698603210088076512","9479789790377963347438237373748726720082458954846177712247614846973855078726"],["16032478862680616773120562509578607430445166619736247408531038501511950239192","16012823986905002460420508485826594107866417838831508449985806695540039224765"],["18076141724873592852097378211806317299585843649052330192247248891028844666786","19738608344603495197037025441724208946856482099151216965740771615058609197417"],["17083440169766075638563404847131508675291429487612355521327472841612876262148","10159869727863716166342691023678448010796263517345374386612199977580632675486"],["23691498632043776579528345835599774678759328406811813001752169229126654307735","12625772546567695024073416217536045852033675657013613006545947697547521718234"],["7221686158341820058151173769112048958511007663801477091218605133407307402089","864765272208201113606877799400458682992008742155603639866171538405126053292"],["11082947443102200185135935092471315332912776733011969286491737193683047642561","3809849874962582377343410344706860201487357975552145659464912261935469259797"],["20640460832282160081835997180790410700657289602655570213173319167296573089130","4515125351476962303871680589017507725922648746698660723520844367506682247188"],["16902754887039573320233791028733946937453234052735960175274756103138182969988","12294502271072178997066996054812855613556512644768241928612649948456328120116"],["19264907896101879643659132496860978936827187934787244381058071470249653785144","21316537951711655104420731554094665170173952696886038825644283011407565278911"],["25552261399345271123513416313578780514007853274848388717118360369701368083075","27493430328727132839273251665468602583196595424840558494450162202855873142725"],["2973399883522830669358129775036829816628423113573172313422626701745104750314","19811583295455136059021833097336163874447418423715768722354400711107806639003"],["10910587316103583450880379655410890443254941630771137047403650591066304568926","21729245517621909485608770370473405139642291510398841892839716599311877259620"],["25687989313062713406708201403201835115661466180831028819649975009329395529975","23557898242722786954676492211305303517334130394263382692691341202488158082143"],["16271043231189016327782081697345791623538455844759463581344432501153197954168","4157347766670524516069772542335271993397453687820547611187454055850965350941"],["1027006941213218482304303417367604848929910352676301269567962319230806827927","17492144285732055053356152601943930891965170137054345809654112745604702702036"],["20094672109674929166776884567798839237435015636744745035749832358636305001960","24286587613344725903773600347682357059354010307343751826033933142019784863538"],["16360623564217393084791606874699324213447600723639312153307872945729308472623","23674557918515812851300553300587365893021429263018535607553124789447037054345"],["6202549091410855594170546610414892042089261669001473892394591357449928565423","24978525787023636903979694142084503880986847991347966261362574705949069336963"],["7446114832438839816727293242743762194248947880496248836467467000671576658959","20090064188996701563512271095415231576012111902516402351548700682912828553952"],["9868005680169159256998596892858464862808721237211263125029744967870878739268","12811991412427983822812449638324004324472317397374214654645746313269576814987"],["24131483098012344666988277832718479798787709504162773846661130920717255032292","19471687476974678782136143330161353494083616937194563636704741371893314803337"],["13992763245975646401976513956991002646454306122864812252540075837532298729737","13493660025689823449323903128549204147640420002856906917615424412831342136416"],["5696484888778369735279584318802809495244993911475960439831223070107119582956","22817986308041644675547098105108670648021430886206684718550343713289816619462"],["20221660040916990396510509623253555375779768230895151842731217134516829872279","5983046842492368006820213191030370798347572883355176479117832751117562044338"],["8915712723649509194344158958759732843233244571812693160005049451021653416477","19719993122738710882202487042093085667406669512932389449704846904109276555269"],["17096823054423342817668211704200445549681940909386496171896183763311155706505","18847672559649162101615760006063281172865256866652697158129020357965549073317"],["18936224004678169063313926942949907142428281046331262481753063261434234615814","15908750914328423066234284352123530133575186034462053273731164319199269709513"],["7048478347547635736152395060832839326462887059307150936036644403664678638155","24762846889785241576673518029138134714433997755399846403813510396772110741467"],["4855522806861675536026610791655222178969590416303821635516400305778221755189","27804595265920606362862205028211842178819278058199260793991853038555038424882"],["21936413536804430813840547817182280811380822284281948426973993010777178996014","1938669323792392470487602615535683565840271957309179524066394663590601963702"],["21547423114690889208061148742393444200412015581976858588203628011140804377565","14071283380033682791595586766238640800516927753469253414054305254259096643338"],["24549302522634770538681964322701585596459444011488605104086322173918098063996","6997584745651938032202824841918296395972068335224262442787621769687978816447"],["13032421571172633805111623791372043531772559396823724544844774044864488101624","19846580176186129593439473565625711896102691600370610168210430277703252586658"],["20351011896537431213720396694758213881078166179908585103560102288757440440248","13831656521990367760802302855195121530648069993284566183543121497721535265450"],["27107412226998147013527153893537155121309808067024960065295455319593888997585","21896034608447135449017360495055040567785798159819238506317788708520401133183"],["6242266708319403330559874009909894077814668448691601418694895190057960411542","22557176495190921061639616279698717633248143703089260828586792946723576153456"],["27452347555702226405102225668999231695737873450347098498305602895095430679578","10269571661003298482334181870641402656427821821428944809841153965941215449008"],["13249491530877215605683679049855262901005175580405254129643365667368091102380","10861797645992317986060946286744698698396557971939491691885068091837027436179"],["27934305528522232870371822802246288032753951826316788417414650702046668446536","25599405603880410297819592934491362514558144029765236675535574220750905216533"],["26413741615001664091274058948007513462564793330010964324845817360934962575602","27324939854426818885681072926262750205523604627795009187700676120235216674942"],["11354216226839510770515527721373930938313198651386701353908858368375484689770","6420878767546084197290321811012414188175620913112113153061961328058726786500"],["2253258195168746705240077690054219425239371230942143902164191828187063677244","26456102140123309553697814077553223460983704209814913660559477470323473552685"],["5334423825386375584364875022304363919545967962802159434879263494908902437401","25876468291769500862681683484384093955118364560256210366680021003748724917172"],["1809712480401612041727654765830379885930310120005994608206165753943453060471","21404825773791844597334077694548645165070674383489599173567284723388914719503"],["10763855997575446755633449937510379413316471539725878687138055283406197707933","12813067033643325183322476341308086994050070711748521249824780675531591090357"],["13720405808443004140346782029470084524158218010061960352785762998174813924137","20964508977527631619589556839314549728955844507985177352751822480336334448753"],["8582101240410953560320289550225442033271230955418600887233004220522030859561","18440655799989057661242591417522969558234199896862449456468956050769455877165"],["28143388007421009604498960862194686839334224852214841770965087681236165109961","4071016493698382297248666115715087062091253406701523155530729624215368834981"],["18360288761874333091800101730549496379383911833618122023222778955309036220468","25185116090465387059589286379564500836149134346468311056618945526840996857078"],["16187931758674223476406969554120006699107249746438350375975490560217265076705","26193907206681674149008514036942040778103816617024241466999029611378881284426"],["2387892070119248990871624764670306919892038641353619627011337693777514821278","1645865261941187940402521367972257266163209284412036044045467730823638781502"],["1509914168732389115979577977089412035631481489742426963141983570123366222940","23842625399710398932538928740097239471856593843544773164525734744524967910828"],["12690199138147332982839120047457549620420032044609386371850706148949316074163","10541681293085802050837074518490923289113288985128934826872516771538216685534"],["1924921933922027678151089013261055550983837690301007469568239587692769022750","16877623532199029893986544773039460217412645458330551059304966673355459950085"],["2819695999054700363987837719157449266874194071140206001628253211852676382355","4174410081483997471692634878159213900125131807604698837763231403075549893494"],["7781322120595321424620335634476583022652019704643815590983842155349481512483","26066792770469447361849831216002350620478123996108950177751290967230874445086"],["26536949179383795535857328210449878596594281279410194517412091190481062126002","5323100951532423398126885180478091654065745655710824919273019224668603655003"],["923878373417460975507852493687114663850292003073807853156078907675729212495","22061339456171218575305094468924037642881512950237736271421901608794832691066"],["17139258300777255969996700645255128442773916712438789706951502155295087160716","10454984609691802545893535210793590103111525990987716527902679816145348182683"],["26955204416978795689811086882230519672012297233793159834296026766095621380949","24920140809867697180638448452865596182885893735575086384868376181650159829335"],["18587285152171427964454906388342564972753903809867096474068035397781553867987","19401030944108825650349125211259633353882249549879128442260680936771451147738"],["6605180552801906349061807133853945098833746193951864575774824718613962717864","17077255645287580494053351120803668796401400006661599155432645157354149713538"],["19903828820808383502727727432602396245679286041692200105262986797616737203436","1297194000702795710210841130113179589726490901599260425941116972394965229939"],["17150323491947798036349666929215874376902523863923116423660763205133685266659","10002872798522986746943329169023992953282179948157511495810101362739622575117"],["10668789353057383631012247172730610691281471721038561168797542236474036754644","7495850155205876478675219948321970950665410460255862994904611045900074171059"],["10120938005053103835634425663899668022975996963921496504538840865625474737375","14548476834756798240776754687189060071094872835919405652814272536045313472244"],["26933376036407121817188603702491074380751407909321394498684619574022626234197","16470069300133888628236555983660307629356648225956252539109107636837481356502"],["18426340537117141107955858692568406230965066699674271952873112957209403286344","36998249496785558403319660974795859785958267046021662440485632898562233953"],["12559109289771736566256823500737040414324294937681510568296427534397754280637","26947019519434187163921348070189643764474315784193977890109206728414216118969"],["14769298491375083342078590669203103931524588333522857261922351384426904424711","19431332481863819698206407303945306490683509772634810340576499572608675312519"],["7975120979481623148569236633001956449247198324254752476936822496681650690280","21038101560428761241440539576818134489825978450881150512864240734521467712898"],["4090137475448014557222238172506012379868033313182921028024572627407310229391","19642429374822262961950792938138687461586926979445721518824546246427248534470"],["9268790580631885451314519819881789900359897060506240108323216412616693721509","23904833094685627054216104580060557405406121134149084627190240016112413764751"],["10652903626699915492580748793002102859493924703373635035899545964667280809576","15622873195817974567982608033880848636033013001759542126173242578553621360228"],["20630301100905726090504508385025934902546900326293589620258259427093252844844","25584456917102203395742140100313615654855444939188057400783593501960246871256"],["11363833777693667156639771386173227243484389044452199863915329601811692786461","9663239934914774913556921783824640131252128767683739302201233575845102554807"],["12422376755083856633548065328356639577880841070485706537040387687981581393521","28594644654729125795220554758251015540006696873104836150257616126489757665650"],["2802132509407404488683402636047140318369350494741618265429445584478160041615","12787820014814379004124352176396623999597469900522459524743901501194736198433"],["23857344399098528195998200162454167122573231517937388136312029432491238476056","22837451084207339645900550033886723096183892092784203985580474629284048668249"],["10803180064858381501402219789452707486369866375099900850910372545412465026621","16363744648416682428246226590774488821405053615942692687308433318283919864729"],["14793985098064995495497389705904266700015803032900516508799026542014328239570","28442684582407887729197291243873804501501310099693334595197247792731282977137"],["11809705716486087275951387047521669135854896545856690071415157222135809858017","14382874910421450303143350262674171302385756935679252175293474320971239270091"],["18541080090929887394045898231423189492259406109532137898364666150160515516589","5234245232217613910304875138907967347147220691375333394689543900684338765014"],["5948534554779394871849173133116929427019999213469545261967832633342506537548","5799903144207241466027383816070698509821966809853626086961253327396398369834"],["9798109016288078781626278432731161415065849933310295320971636112426600847017","9114185838689093435128376146462198674584799389944849895834525517184561918249"],["22312448376313411023927358783723015011757496134527245286724754736691424063692","18007605425930572243280029833450129713862567968885685209014387667595246614089"],["19569297724141072477844349585205534679985267185110092931756495881044698462028","7457115942908858820210797631246041495737445244066664852109786340567551316636"],["13705021880378233861138221312749904847285381511421696482888404641046516388498","26003350784250214318393560863025868736228940504543924046762783339240099705826"],["10052956607976979940475785132679031862246948666205449821974802605964092115212","9281598332491468603461880240799740610161269709519845826676662987817912225120"],["17050175764195348092559818789074412931609511141974211294535617266737717433599","15945902040880329896548714406488195224204489992933752650818749818134314187297"],["23902319829480352731755512338209033356997780750178146628408074678934528623885","12422640689358132008753198643574795683900627843059994535663608648472187694943"],["15804356242810888823720415191169015154129144579442905304014492603787097838306","28184762881998143391673410470382582122685326802887251206729427874114555747256"],["14609415413179241773900818467372833875682010749977851877406048797278924747752","26772849892676821090099256100666857429641546258508081559383651365830464252870"],["19891344215581602107607106073980041074923091694011075656267262059208731502646","11393327881057215518286800578107482979568469552887667684562112401598884672905"],["20755063144990887262709291759901571228584976990025098450214820602131764676515","23462896344645311043843132920904383450069737684381843759970749641498529445435"],["2713873599193198240577951481335314224202195542594329513466189963455162410403","3940251372866769855253596335099042009704061578090736131244000330849595073573"],["11030515085401028811642881867692068962606269527593851544515269989600996628164","11617878931004010152166131232277500651997231244614970048998476589377167125391"],["3467556260294759189732687772522085043959752131441484917323172559848061364197","7163032060622143993380081488320550886372204903323603703521349776767028212297"],["25372838529178223901347198003490469788128699768663022870139761409845818112425","20871280133977938882721803271162127772479068680057153329519608972548669029626"],["5174774273166558526882752610737583287624527225563225200544135211879210819489","27962616037067072131296949098586151154366209124358835077455851537362423420394"],["16677129671752236377543447765197315994112671283396047237339776504971352741553","23140186284781365225293872870685462069158249724241494065748125706590547204809"],["3921318153717639460280791739084682384553865856025721280387746859347414534474","4389547661446049340065295829462662657506635405050091831327037453757499264655"],["20565927871864453623960342904828863276924410546225527067292287586258916079775","7504031437403705038137623222296835137796013070624632699795905968787349350541"],["6086612596192997154321257203533406779262034793575790971254559086055697515777","28099675323162878273211506500312585023210769468260584761191013616353571787772"],["7443039169679643518350119392373243474279347876458089725298280062757173756847","14331373883484332095197894004472055550544132737911439266373374193706920600807"],["16754549870499311034054424031970421739177517955843939790741176203279604970981","16036614766235776786691058415759016758172993876321814202222321991161854969719"],["26183839294260115605571900266313990957331393815754592558853704913442527687179","1657235353925086645751494719660938975354480475314117772892952245044825707672"],["20288875407115188769822978160587029293869276865837943188652211533931804220023","7999829580235612721606070424862068780941356426948584284222669840263415966284"],["9414668130859123546490133749951024895580643854428854154831004838203687683724","6897485037301339766569560470515009689547521618513577589237222948270508810546"],["3597009703681008077147813880924823137876215417564738601227363234556800629472","23642728758179918869538116232502829772702412067924774517477607377170678692341"],["3523685766904384776933314031909528299635457381295485402429045324129262636213","20914725003746420784470678755302648016228632357242779300304750859517387433240"],["6630332296052759490259110955695167119973978613038811751967295943232208794283","4539443171097524295812158999572791795715112316407736080232708441435886720853"],["7427869189865949163942541139951791483918597355274437806853838732557104608610","20043584071729095270184307276137705595003883150347929721055276104058526437676"],["604059189159824085764113530854152979277557512663725200048898023159101078665","8590439528003818935253814992866718227543115885156842971357380137270328844816"],["12673142206016849162397459265731497331879420328007773761262233376695706082548","26280976076911295305366498605678963665444039216175447478047563776112469271547"],["13041796172337399147352801271751650879061231605359539326685055733370992981011","6097941450079697059727066418157548880074240639783470157317528201495480480797"],["16520465679129837537874623300643758938638115547591147271028161168302251793448","10404665575590947128255127052143512974584264117334942538215816292233612537867"],["27064931127420422254658191311120671824633960850327091364042416310529509125749","12597119403080356676110460649096218066092184083143056110411928554614939479356"],["12194021743052930326738923897687427137996048099244463415256800038630088136637","6025776817278226254592350558668764954864859147647955773284304123136550931489"],["4955581687683580566414254681022365348893705248189185497816489297496891297009","23095880552383440711950509666294741758042725097642873677817644401817288888482"],["16678075187527180680321403455316050110441790069969971211208127460369041148728","15700381814070777493731903357510614500860043730181163786175571915378447601776"],["15992962780680630573541028474219328101419250027346296757002924389472615092560","20610976197850413323049687479536171890560369716451032436443834065196813547424"],["3910407806925162841582907733145186902860697627575386028588434660511580776604","22382010285321939181606601158502512451862702009658033634760240518670885041169"],["20659409703972029427473251098502832238356325439115725392056091795847120359236","7789490654781191287358852673339010545841829188453088131513142718628099620184"],["17696015671054313645116801117374195209038012637864785176902049118795190446317","9083576554810887983940932494085487156643444553546550084961897329839625182363"],["19096842129879959632307493489968544678749412503701722307683634770548555905911","22426599515357520743193092356103881918794292202012895866157048499493209203949"],["14016464157894472344545369204433022765540288460519785796496055486170389585599","4549870094468884804219407639721923228688820643522252022407351027898713812335"],["23925072763309498058193781151908919320805254310467376994337119015867847274719","5200817444621288988369987290870589683202972540393691118358111760892456528038"],["137638577490150213430041392228473043929037418445457583387614283581602432845","23828619268836602293675959578200061180210818675483896487184013852648524345923"],["28677075193100761447762837826664668121931605373140144375055752879667157890803","17761833522038475285247425567062823778710095893643979538195879690433697005501"],["21422484277506081335787375638424017997925530573577358065395865125780288244200","210292266011468431961399186683254214231083775268485134159888860709000454931"],["12241098274255476375610312055587642668087163798704957881863843338861645699842","24265357717617553313863231740745653284663580418695340049818941350954189197074"],["5362227457751765433329400801934469691546913851103476821456284698554609477531","9909334762382724310589805957311668018296382422965738845206213292625227278206"],["1425480802984895002103989234904949364818983101275534554408650302899058155099","13604787964532748087747983894268078435086369249999528028411828790674587262610"],["3505822394428786414917081155964415536535233404284588590603386346589391181375","21118970682471317051856950507232842364212482991857728412146542975159233643411"],["15821784824832344951829862378826748329650064291109378770954320329925180925742","22028711879647210644182392965616275455622523634448549675937936508293182764128"],["24214479723855612012302632498250516436483546800683969153190069930806147817554","18577181306891905600830993760809706778652443831140493056944517457815949870687"],["22825134183477401629433857593594564631685401365205605274963956783364025078842","5687486631423170219705971885590078952418158375099958477408672973754819858756"],["20140916808989026507985944726993591748276346560089182509515107820322007795083","21238435495456190355458517402720498945570098205223827870125887260579830648930"],["6264010097897217107285639693904305872738584528975195782100462952473666292210","11458365609646277200119508327304488834048555004257252485437106258887704253817"],["20888895372470973715869865368148546302269098572137703586365657407266816713391","16998240987394033173667864065202723654090867981964622336283903366330322269929"],["3758260316334959905171952111825537081579683936547747749503348677011965313632","10265758080710471267543454612062801187547839501211884831031590654474634056383"],["28629371212204816211352326165499587733203041424288363372199623257502835446928","20781961451065082206075966910285408846622853930227505131075526110899295400374"],["13435163039019266149627573992794501021693952104771816542007278788836770829368","20772615767130718827438660690872203286389227336073737882894368083040147100182"],["16912024291448958396214487246777628150953543770368266268919687929633644398611","21238823811108900915816419388977133230397988210925289941323536687614377829301"],["15093707680480824061771359739165724533098127839111545701177019521805907333340","7554826718631380064053401180911235264123119923696073539207618807350360278078"],["12201135473716108116361440714177684284879949036985987925108270174808425966735","2638833337556063271502700664378217402489015024530476374752646213223194102710"],["10201129525723649705851242972721186359891748379471187458409459361864325387458","21244072767017374758273918359832046181265188736840430409893470325765955067415"],["14995180443280944964812315461251822865481953964850643568039588523245369906155","22720797460560332750316659778880346965823039106846050745915794478029226069522"],["28761445015935560086963630546152647391366572244704006859927726633875380449673","25311676195884245124914333111481852096156611561816179792332745175712753533554"],["12751338500559004644564830933899022530973905230298635180623319619007922332800","17074806560293209614842392388711227870535544627133387562392922258239140042322"],["5091087769752235572978577956947583692298492867596047134796641101504288686190","2796009933545408433740598002774893950129393320923982344781060631287895545397"],["19628397556374123423959930770354557849383385832088548383960726793742478269857","24562273231771059204562968004644008312129121821814054220217511417191786513011"],["9416008076143212060619251148104484054485469055589022897495511460105391986351","5259368049564260012199165780829913998287882573758942657465817727159268291388"],["25310440446659570258657129921094577509275260166022823705905392983421192024648","2375383352215706800566006193887173990941662012967073759190849890952675664826"],["6196351917203886270243782839035991042991586515018934835984487594876744850687","25127603278980080068431327838865867855207220974228481327559365907065987953600"],["7460513452330033503465417548876481067298111296476987794697214736217324764701","8839432910799620117488766360618481236688708009958045513356851246348135536333"],["6091789907922112684580815284725577724430217905536059605931073616719254638137","27204573576629002648274086236030848954510217815800791647079788456429026964802"],["25056775463539657635983740921057793413403896743887636145804955232098985320743","13293892873667597946184563272962832153674584037719384362516826296004266754330"],["5964748883711783934393708218190990707452508548039900249060143873480804712056","23177582957402471912850105206408350427145422288255402728673448996826233922236"],["5197434533030405075563127077967383777351850923509139458458298152166554993722","23435027373151223536189889410607305807429222298221253248385577816978081019461"],["15199494528263403724691193119358167344225350963222122402741501108774510795186","24982288407343664569397991738793632370896371393495538702216162139251706200319"],["646904059816725252744900787894406800092937603638626476841091186070027694355","12339156523415478435331263500953588347176071434407180568313744947513991755906"],["19753936537281341436271582355870273228285507633770468330073478549887400753870","24723912842441873772740256881706094054902713982009238306482558664917091928722"],["28711691958410939261269995823238376138411356451513253858001138354976393255201","25884406850070045735896383001409046205883249428734924253683940192400659377065"],["23187161218713116559002485615507716120598820687246370134973818322772689067289","12133912084583336334004035728592865881316539302862232281011691729117977498674"],["3053695223912841917166077739658438020242712610166695810374125602498660788238","11733821885535063077710715330349479745353936945886678596602687827955915685689"],["7087588811545326519892916811812738130680522266149739092291499238336317020788","5940859499584807670361632262808697424830111840389432867995390945196923318040"],["14370043115040840557746508274227900581298628883506212173387342590754290758996","966146629668865746699192898897567633129799635990489652651362844955798249520"],["15604615433176507413594642856873045697345873021160161192124333938990418810043","21953854596172944811738821744913148797171231220988943747886688237226936822637"],["22792240157022306187669817755919804042778871115596879773619611455408260302293","12694884022639636124721601517790866914051935185466050235395477342924804065790"],["17041037840653242021221891987990343514243661491426704594702774306628751995164","12928804290606719750826118143998384202840602783165890503293925421395727248675"],["18159051255611354544584865995966745699600078831069757359668620221354718919329","26555110587245780912105811099827477845394778266225419481007804461710888136120"],["13882537969993637957849133578073136021436889946921759698900500929442302877510","12428972260394756455904152387116362256166180157265606469874982963018960214382"],["13022558892890986385251569951281243833550034519756360415437217502402216367649","15749535304329144044378540909318634420929158033079886410483623499790481489324"],["7161463974746186886737550611263820485660459477538087259377684791440768603929","5174390675540780285941608755845659865696331504866829445677499153562383460428"],["13339367795995700273774515576387682019754965845917832869012856464319317726666","1607087731554673771048391616252066890835435182016620080534799071102188239284"],["13677453550513353281405106361574370270333192498488616481840933567172445423473","23667789129187129018745828679094130953349012365036062985036873747817635296822"],["19588164867153001386517974972975267225492642292395355023537696224614628828974","1474883081655857103966630353307718524847745305362181129372573966957604095601"],["21361932416890505630382659166182102223106318453323541702515359138557199452765","28560129626750831323196215540274298781563905552155411580742203959327114808410"],["4621020478112862357772618480921731981299247006053407362952543751470771231776","16971696547479422854880623782822452002813418827200639353420566489864219727909"],["28706466541343232346816396584003143613609671470195117707430356879504621091577","23978849117979563862633624966421045417660033415514503568084152976808147508592"],["17781791705320949160029965851280190359622989687505474338234902314427378063052","21129103392056976908538212633576972413033890925487888748069886006476292358547"],["27601398440671074877990924817808849065611886502738942702995034863845309127398","11953739241518134232990757658695252829623962836162378564369925360816933969694"],["904422111359252534929880583316465676849386362446808058790625256492394451553","17690358319692487013014515789735961142532995392232541535399833238375305500618"],["3187091567221779237887153321154881811290523949538482865796786566959399589938","776063614549075231626364650077418180960047745074223612369022712150774447969"],["11990599757663241917483598038595239066649129254519960447321549761621833233557","1079942143584557986297362559939969052665527437381055845519322154251092640678"],["19629314790716769198761544013345049836935324539497575155749320137643275839830","696906821677794375694723970592962209306665364134729899997133005425268027702"],["1120597242080618764319847452955950119523614000109215687937895414723592461360","7785282949550888031608509700629941334299390904042714572737733041763374327602"],["21984549514093321732579256826937437097904895237030578330884440963109501517400","13627408583456224652950348350421440916117206221336458630893970552951526065876"],["5162881385548100786359625150750026583536337280923388667964297596666632111070","4786553537014210605326015001828288428576767748053762865958013942542004011153"],["10757809781342564784540440842900892257160883176400465354758526086655881156301","28756247729941207402021316642236158329099319447906342000822659275996669602907"],["23887270209898934066431483414055826119744305131794516477772208786623083788829","17286132642747783563645844223591883960963776875476170782880439807041315748703"],["21911329226408122519328452043798425924192150417150396328538963766874172267505","1532755408701415221427050670779077716032463096386937754202334709656691320770"],["15289914777567680971714495139055693707029021196054477927020889806073398005031","14185912515571900069370175359703975621694063720423685553135897872954461759652"],["26648920006626605416170576666229617248122323924070394149703928189045412790445","23075043673869773941950263048481003626320571700755832474269587164289242607402"],["20689655343602720447814668747604365551209611719124532295951428624764194068025","25989372612405568754628765841172826911610793684733134806126269151678950932680"],["9248460708076837241597548895505974813113672536116316538901800408523699528415","4716042459020229347097414200350669686501922417122035517406319022729571588816"],["6051817889782029993927646129717230934110109346566109339362043942671841056704","28443436187225937208913576792633425064978062800743387602283933499643627616651"],["15672275723332882355585863970595995858807520321575144047589959000850109132777","22513943448545862039236253224833270577178646864525668526264809900183826538795"],["26399490663466147296024968996209825193317364714072261194417850904301825886680","13203418801685514097361042811319750972164090659660137285651245145593168942323"],["12587714175324428178727088530583678207242945962855750435716662846386888117929","10318076883973527227552373193978633414767239441053774742515135294582990871166"],["1771309454324212504243969255204418264477003483189003581621960581017899770190","21686647108659350198524962461321939409526211491000771586995433382840195876888"],["22228438885879771753858416618753455942288393050775175618667106826476849529910","15119920531813395331131878435551308821879001437039461307199916569087533499097"],["3607144097758539986123228220283777766504034965879310160196342825283245596116","19918275404125998170231185800645404940616839296787402719281864985513306694840"],["28676087469108449135225809801913894203616073036498789119208087958716146953650","22879548553931023632737750484666611336320879690158432469253736538489551110713"],["306183110472730696815133323507410223163069310766519610179020525573217730980","26387820200979530334445945954845861419023006770843282492933032735515086273443"],["28283671936920207202111980144330178276774383491072240624632660923978289749217","8095404752580892345531261770372823742971615588637881757561303444458622570278"],["8376440379814598052917424845975707772926580608690783844818402751950622349258","13884161653339469064251539262547401135522730485662225380422862706877876346220"],["4683287093593848053433575521820835230415231302151634993283527135806890664937","16763058780895296334727287224973021719783023489099143066991685053734141922351"],["17591139394541999497340295881272298247246679988012117083113792317803562626246","21453970050567983677226730425070635775184952872889259707474943516026133766818"],["28013520129841053970612277095642742687373971721876403285210751571745144263936","10149767848033505688514948898675598149403643603318820763296397710763209676834"],["23546499079389393606984937306624405152741504389091318955760111549295516720719","19877992770612129744127913439025080888023102953602189758894994466592394128686"],["7473690464171848696546644123281479679398151452946893566585924459340885868502","6259588062509072762081838227431187044246211232311424671624116600685178347978"],["25971520627194125225177991827664658851010169409044995711412747199755037776485","27848007844852989324131628847198292407738102875986548594652549683148734402182"],["5475203144545510818876793132315121503569565040285596224056264763437960225938","25620061038667954374449978302415470785193491636844065583159331196565905098637"],["11763335572484783835719591146969315901899968708995744364999895265258497702087","12581185403963729327701816748644639067689643200939363509435085747124122527121"],["15296253478187488384626416220743691094796527403216964988990048530437670039297","15778817308487887759925804780544337192902148717495462586009271242065993591493"],["22693950088093581166599778750963843642562338966884164645583273634945250457568","26154483216100920203523171174740210063988791591276073982078171187153459698633"],["9260528881390739377808257822204368776658950052543219492527449646814745079283","12757101203199826344712847236250472120201086642277647686196382293839449899123"],["5224431726264582010803092139302500484106418226796094432061240343597250047148","17646841196973448176931097045399554450862970436409776030338098311362473639780"],["26744548330612223181410434713783671314363745992546561261491020115100843647945","21938286395339655501635280771868126946735338220447114321644848429109704122424"],["15834002098118463022181521139797755030299758050837311448014991567370851256681","5588423950957095288173477385263572739350109108250604676920551571088108250081"],["25019417826154615831188527847348974966063924776562357614251174078857624807045","26738137565798653313120606002664651892309985915108349704256513772385046881818"],["25323599343247899502615768598622851855995218146490116591934919272831917259211","24996361773971731277981050205063793284441961890492725746958694934785109139420"],["24328169133667701384423870487174219308975312605351520069538092624679558853474","2603554305958618729036943952195677843337421067373064611176444223365645519222"],["20736269892937263017914224553626724750131444218703076095188204951446369217431","6152610833231305201060515444162956573313842496155917353254159518559955599706"],["4602704798584089558319359849944467182389090957881785151026668819495888324400","947957650581888779132059299340697939818486977215170946836073910609026718850"],["7892185767466697878598738270092603221223997230791204469673390788670875589433","10652401151672189046456319392351395409932206426466802273918607348395449914911"],["19294435646453906637518687442361005815227017405126546782931114439116007125326","6555393775590693993162334479205014039834258649506261213207097311230657328317"],["18969891807372048530507953935445689067753526632043167744111393917911505307231","15384549128328242348803219988328863028147601688330326674014746837959780892530"],["8683010429963335642706597041429085629585220953982270488801911103318998918006","24647672850109959887481539167252967905387729114757056860164654664077120894255"],["22022761547755772501981911617236379182757245473399640838840005169307279686628","5274066719481425253656852442104312941927784030650260185452109716805348743667"],["9624735541988379479858526043736318164348201837107383836457412250809038872111","21284206042600861539522632594020922818697991544381883755466674964677015889212"],["26045328422731073195207150325749786622398477298983625427298103902670570391634","1180479657840211741915138491001178855077345476614261703864252883380018595460"],["10688680111414144861594133875645884956313159643394203984932356252029232237612","18519324733179881414094802106416496151452438803903178172527453468052303283409"],["13125069505418902980759007518094473661072920086975772790011800021917506682585","4361058061010746764463279231079434395157681533972417097181532114219888454820"],["5445077739127973432413407673530045424105658669608963723158027446464803662904","16638561810794694151692480699725374392483339346281161533437966669963569929833"],["19954105819253077860885980974685861155138362845660922018778927058467085048620","1806065679411585998685191447537912002820572733176901029026872890572818135155"],["25616168426300319141606176583558403522930291054975754754320043932988441630557","22673866728791984627222844371193585806890349474440345306456226295112549528463"],["7377458281512173902745597832546683478497680945844219910741745358671644205201","4662003895630354008696947470885604291297793339453973736488262850022264268847"],["24776855382278519421404627961275259557489812780482713324491039541039060968808","3937807063779606064996738990873945554934704875061959659351081780382478082164"],["16165830750709140293581894869097205367869726393514467242880481312111235323027","17714693288292579132460008049128971148643678976560554706652445294996511996692"],["10867651308582915762809754085570015550018548941342666239602596947117057351179","18322416535906609014874459299713973927536685338035290088624256840630324594716"],["14255066052213959365811761836576912461167390180105631150584590991823086742103","371328761911871905984793785999359057717979993509935496092304444796638439254"],["17305225164127901679799107744782353742735086752692568899063690245575046631804","18853689958406330966088681393808503986351607315590474630235535867130884629344"],["14248833045355323200946053829604044513031498566595270701173874170957938922066","4574426045414468458944507061648804854431715617680141842899288180004973647660"],["6954238752993667889416209053785996606364917628120989188342649414792678420040","18338226260708110229519881197081355173756541917436582861307257173475095671210"],["12441361806127242886744700344980842574825465685840682389788519549128288793345","7542672375402302710389192374482832855930492814613820745869886333132463236735"],["23155711590556470001625072840249761276595090459103483983809248837427297993086","2975155492963642445324013069983681774013067216121383878954413682143124070357"],["21052428220990426600068116021769262043619137649959717155025932903247947882843","24115676263417095323254344017605615378602107946508716845647631801494303196657"],["11960189711429478860111027155863281408399257961276406685963422146985554216001","16717991152752668809146695896440517037774553867284193442117219103560384164618"],["9909416622772297637590594290226404095068123592130189213707019768020296879449","25256019637553538838741026157183235519366523830748190985732444346737435234287"],["704563027011792596612729403478352728928788469201709825624588155404388161101","7518795581376948216428166051475803494466583717396970380811056892533293565555"],["11325165841292616582866609545581369289468853882649591783684878486606611708993","16869609089362971099740734831852437239238606694745837293616601756726931630699"],["1338840980632708853848685510436054040875045970222231866956613804272865812040","2922184859127500154491472082609617815979215420603866871205407438878286975144"],["25438461225220791885936251457712406078568723125808549725745829470700375139181","6925709697877937195435852266379369654353506823384738161075492056051307831981"],["14252510851336594742572689052041576881224265508493658999675170664868939892674","12561280342978605456561293466317290159407937019207650773413604778255206416489"],["6525241127051774346248452370143997520873682231983805652891513614098253294008","7133507500251576951909383479573361745346147887613835311857990319300384522284"],["5437777917743545828426889289214015861136565678708091721680641335846957841862","25505041812104110437986479290123013867395223280859796133412740166436758340922"],["8186279397996063864855186725989075513043573371773557162984385224582991958597","24579570285761055542118030925516000569712865259265103652333455851077032005674"],["24973666030310040034326819100126595632731099099874449921779146909883060058533","21528484509756835421273223819899558774625658941692562829249688277073704245635"],["18677292493097605504783134278328835712469118817380839288627876695288995332902","17114528137227010892363747776154862209965814108444066051536556636014520897588"],["23979043961814245581976474475061352257861370859412704842880721347428670596775","16089849499963302611549891751432005672830190736718879247842734567327380037501"],["21141148836269495522181658980131141937491545695380310475497374903181252955653","13406720940106393073025001911628901532324194830332522365257570622575951996320"],["24614073035503055102566119829932494977947022045313083638582047027200163924442","23600923276988855842075651669014667240137807029357573356642052746583456835880"],["12765260784984811543269113842615274707745678692625205384519296143568535706806","17821540921802248400313917044054829380425703250826185439379678953693278593049"],["12999168864269136609337843910469502001660688579030327358428217849075882493708","5909316278602289195923736821794278898277032382794405396240548736726667568354"],["24122873485224437650184578896580634910381179854216190626932042281354281603219","21169322100682433098266063947008046423419213999010176833747330395574020021677"],["21865489903380319825273415712153172869823385811868071696000748481539229156497","26835974687283466222216785224040057920120900600086519553147334224442960597475"],["21902468087104310665468671428082080004274618382400079292423054748319491289346","6116260140980431644058155615585075284043594286444089290991031699873478983898"],["1248473537412381442658030251032471481577585440745866816067895027047638593006","3554340195260477685699450070879398792269238996085139387458687665748480723783"],["18894255825667302562163509649174104648101457837109243484090847464076030690040","8026195513770849912446372390224671869139750964610426731127997588859276231881"],["10293741332934822406798082881589704881217418391404394458315535443776561791964","24660855276413686277082159184248722987559042119621239917029253812366517703891"],["25083593877740493998359292004263976746227989523415025289368945225164607021908","8465656402104172951317977724527365704795578082350647896491982279242031167111"],["8614147492268753621071080862983756560007442612710704525540283072773075611096","20865145057891305496506164252252342734405135649838157091151474762956951114861"],["16340557267790963701675166180402521163821647263375274627466034611338832885078","9730397502153495526732986312755332304171069040362928425286374850214437726317"],["20762634489781567224552686486835695086990766451828334979750731989265214795473","7288651654332808351725426415871658500653076325405804754048282241535414609535"],["13023783785861457267586540273315750355831249969322032531823447403926301330393","7054534654987896781654334746221419734529981694677616016939529998849129211828"],["5756957061482723558932604193477367874872833718935606697749851357546214450613","21283435063962262375117653551045079385172116368810445342696802128968646095827"],["9018591582406347700678172338282619227632762292434778087816421053969452111649","13008639135522998099244008188056632574812352641427051780035623270520824845694"],["26682163633838053281687385135084431964342907592923464781077555671989224214975","24524839461281129839036203516078346734903757696277620641567251896159861148578"],["26097410380664578532671773533005785172546521753403564809467394768979652833707","2839594632539126564879180393010756762642126739850421666847291171757199667819"],["4086221414184980277075893530164193695116398483043658889121456482084775296197","22481060005846307701261811251043166173867324761402403721859736903935681805519"],["7219654682375438329958785900376100022092113565135742344085772218290160216795","3781702918204779214324623813509031493919379551655864356777095323031318515743"],["1597475765004318937147013112237491166743683925930467034012478880333138928025","27497911588705659039662371129811923254792082364324061767167242273064854448358"],["28343548670266757608188172874781328860111858920027421765141060254830445953630","27565925409070319845507747153950138395827341393070381669062656401323950848482"],["10607418373089273396610110354835312652326019419135252325688947501668524194339","24575677134416197400523646427940141180276171746035435066976710388552318212215"],["9048900549041290846476920028753460435702158937098825130746753552277871415054","10705677912115010805215153765626285254034342007597328115961448186815049332079"],["3791165098750822697270032304087655274842751600339205189666897505726975684835","3986825363078684400596816349929737568319122115825620856619395743235708939098"],["4051839871325011359467125509681299985668759219263819463289089475725124101208","17501340017679595511577684614605785292362720151781265960744018066110957605132"],["3628612760198454240450563397063504808745801635787502173952349329104818149941","20099954390755213683441109212061708058162746709736179415801803490100081923096"],["15115357352590236069737336964838697618817372027498368007584920540054495573617","5659562811517667515289994237295402885430866523536217356842675929303172722876"],["14659436024248482911124187287198826019881504771596642776509557902162434484764","21056693131250434288874263262830112506529085618520094763864709389691633443626"],["21130818186515153286568702078432111504764136881608831523236091191908809545993","13113579007249972223794164329552723840590875247200077731042289038165424074334"],["4010053949677176099889137426003199823499477900754760574728816514886230179916","15522981554160714745369959916191152471635468016700938178189626598340013335479"],["1171698088977895284961815024706425782151453828495543159131820056804343785041","9835615948151915843380178819921307781392937116443125290189103125572994563959"],["5341858311012196003419418367463877224759712538059924217144058896494397137986","20408438726146082502452038668982083893079502854394847719011303931914942448772"],["13589745487567496535119891254064787029178424299157222437296207293356959641596","19403242709468885668751238454377842732583070453877114591608064581221062844203"],["14830500707662645410692522482235940420536718405856684372243722275051524467244","25053948883791902181263098008262677973245585282816607429529748001311421263271"],["22815204696754593177816658597617905089171872324907303674585511448734893889348","23734851247195007160387233893305451081192118709328642978842832820555548453101"],["25333574852096608862132589808479597404599804349746902635778041733990384638654","26229462207712628810889476984330081332716578982272605352402806748433759425462"],["15515709373572080610191196804228507801028252594952702152956566483340830367561","17836425783608590594692365276018303164212503325993893556150495678567702739684"],["15113137715423881694423272331247829995295830698849808113735334570425846249092","12479032247650338040788909854896017857753566595344092380017257462857848265285"],["24305017922373909454590345633725977665315247317315997481169804512427835008071","26615704247886564340552370215136899170311502904214424898652224616910070761918"],["5511636023727540425425804286958961401019353690082551372170517025075100167409","14308821375344322151802158635444997080336866997251542438360874070268701187699"],["6192798539619650481409984900323269576255306443287136240138327891844155953133","22875234047395794484001905318584976541889510900571926903509487435556342507738"],["956965834288897563600652418040296410997656213337609254167787276920806930575","15469955738403937082180476527659531798989970780281709309403104285681905969499"],["19056909261887192396322432625098480722772426852333670296646041017091544448258","23511319426422248880448850940265765974368031375669873117849755847080429256888"],["2148075353990408966904779889519457464144412241233958004985578885964035679360","14152054117476374518766020816225021130437353735852581724553026075755287174979"],["22742196287838531387689179836163054579351736608645571546485846281574205054814","727579361997491551854186548386010824177019990642329513042963016540713813561"],["7394614654788834275745863965070903353181160944171664604906279368312986514882","26442530056258263858237500871043958022590990292828324682401370552438050841172"],["3911578265086816718348640635506630597847230258856713977537534537150893677776","2833993292825211669461686905614077927461683206128996543597606406288578579658"],["2114471545928043239474705765653083530894121576232157605065544554265534725666","28411338039745765972906033184646863094631435197895777648616838553508101389210"],["21050962707633537254690694109554094711739765061227484336327484110721339490686","13243133127153857906986430017828483287385913359456190396808341320795896027525"],["22622629623804869887592249793678538249822493645687230700550400445596126448459","6463235707038493701925073596782934796593680370021990667199404931968822372324"],["21562277100228619856209516353088974509113181005292318962864598211468060688301","12947645893275533304097796100110108224082493597918044848567372669835365932085"],["771728855766517331419942472571687389391818391982623305076306441155372477800","22294872956255674268843028369937097339941894862778138446992533890221538752385"],["2996016045045237925905789414013723655847706372313415378085519661947153492404","797575533416656344266968695463733534997437527230443516076657766580401761481"],["13854558171383172698136637171021029131080838323272798224730121252085762742757","772310141285639446663601750073228179829985538019798210890393795757530194585"],["21965992315665621342034978055773411691212118519924985225531137932226743256257","28201213181785107721376550721196224435119005758444317423070078220567531145791"],["18250162370581007139981945449398067143227630506426054676534764300725382460649","19981950615700550628535471991816814392047075677538986737086994841008091590272"],["24648911195019344898999697437442581045213576175161485980114287728055363257556","11300052074086551082610797436583342684369306591379817599710406063047624723861"],["1207638106972004091227172706098826241912955425555335929556916989944850631679","4332277551121737853132166051400060462627379961006421546794174982557345503326"],["1516961530004336328804847446287696854318200567882686100942988553121000882581","6481686394842035378902581869022067974071557127643683103623369852824562343530"],["11712357502413020226079917866656785321286924564882269208481257616795390895292","8667619989543919928991002086346982108708566563955516370486863184785391467494"],["5587455513703430457027805185359896991388281696519597448396119276986008617344","18734456460679960111402381154902128002922518900902028602830306503641468592235"],["1191554585888758609443184670766137142955427899503692556707351011080254995682","25167619118328013928661516093970217234069517559560619714336678174550916646719"],["17559319148649818917626022389046490274980407801055961477559203650508163670047","2420198648219434245301693307024334259922693592505070641784998715954596616967"],["19044865188710880636452702941625674966249425348953799005672866488579049305618","14189515199732118691058371754182399664321576502066471366346357015805014685055"],["9492089829905592903162310135534338043662409566614770695740612435617240025129","22712513579828045857925989609006067787393748978027147925434309582439710832847"],["5253844789373823617306259874061848268000080311028932354013984269882249164014","19524511404188917258310770348910378316692314045841096854860972492043296158100"],["17827781952651024847814759053961116679350110821862267793333705017904622506787","2377583023406078980972465478333101953707397993583970164761052893395192955830"],["4330061706540473965851734499435655874509776431086264541985157990114088713238","2995276407714061721621587059023757818149382307644323581635421928628372985810"],["20954820818049842507171895429077902696428586422347243426068029155891827101058","6516918408895345654826388022959616051087145321912059107910843963835658964622"],["15489629174717968027989383030103936006630518382743222584235350204989602737534","7901816807235812957464241289321616380988334031796077702210376378934941030651"],["4593702389430505120453464574298802057471346185257634035409978776045630163224","5477041176753284954610911137362255118744480167759752068255194625579419333230"],["18111426200085586110838911549907217532624968880755022016587407197878182984746","3361195097858106373347468135453446501251882170007824680174899825028317040130"],["13617371797149079995655107825408963549502217322690816817179552184474199649064","27576873852892146612940052133264577569486640487335993124183078380188409037647"],["3392766266143471335848014967118740143737303004685399824553370617859319507798","25839668165828816171792389873976726229945079048419256489341368653003064229985"],["20057475624463140225843414614065191195179241602273368275022489278905508325287","10105836982914877771871834006757084558402033994248726912990857691562514467894"],["1884330897522572192361540610231313543945397675195006788824526389583186939787","8880920063170164211483129775726921338527703163911369383530059707158831849659"],["5092352695664358360361110373570373235580518221868004945959407146906284148","27355554812372702238972846042353392019441500512452429742836917086756117568692"],["17065792604701275357308206265182531073866609285415245038336921772345419955636","23488075631171378578182814006934865644022257594096516153102188586367567242079"],["9940956964276699654042703392415923410194773725377632046821909967429166699839","27035911798489248866178603622605870751131422713824932922198642491502885278929"],["14537710068317167264911503477163131458645717487585104984956106923394921957934","16231774138790603370699016493264713657711656998632855550040570817941060702998"],["9517791738876814375422585562669066257903012157621713049634036321948506696541","3842467613236641855451510293601505412533907484433711344274699780460757932979"],["3692731673973867733905002784491709340995459723243618669723046873001509714904","603302359779900999741043888407042841832951265364528740809024482927670632621"],["16458389387216334770737726793320900424194310194917359588586355055688791332669","17036737363480515941137903266300180788748003536433727488530281859772741190122"],["8171492191340563833335917766877623534465439329778911518884611087733634172667","18544436435473041341974061848098852184573461347762960392842833441369859563792"],["13981761088603121445943109732121142821286587369110642447858638292534707379391","7277288835382023990631934445521456636343003250361706074911645927806692832737"],["3875371428997016182638814166462525324029352790167547701656246928627587560800","25801475637689149273127035452183181333377571539321531450301067060296548246679"],["24175999663345258918793313060276273169519712998834300005635442892597120029207","17429212285608879482730308506388378043195742596712613110806568521808551857977"],["6381471517748489643825412592869220877065992527610586159835786697839510993659","4018557174857791878399866732192808679754106790338827576630252164746103987745"],["14101982871935854801937757115984986248592774176421497403442511650054299470884","11884093280858948440393962837377108253575253096194692815240969832193448281837"],["3071783719537077179457279113615672156024731880372202436081622754978318090126","9095783384515327712884680987273600586774625824120141587626602308357415708894"],["5710537592474500576327750292535473494067935465363055354870853695570783697294","23229757288850046130017231281204443249962925308145864299214549880394380552106"],["24931653052124946746829699975344884325481881753392998456497254640442894180265","7943462706459026380795863640682199950318308696751864131362748842946346915923"],["9682085813149916986035985252363453469800796680500401438843856381442724364297","22757233681530006043056226324939224714657633200638226259772260872626084830142"],["5092110894734844842541687216254451239153592027372910804857573485131711403332","24524630794985846671122369565420459699145676637082203314052055230852874565328"],["1070966081617955776674360390851180027803279005406374268476081657896902333403","1048220644798606928847872138258324500903428400295972294841859032002744355489"],["14458506858258346561980061695598380395641353726871910399830240089658604064361","97653991088784441430099348349254609725314335253944554039595351489171254648"],["7031425578170564563963199283904650753160627633831936018522433313720261269656","16214021329280338692191813556502432675236773514854028881567116990683280537678"],["27505871830916339199051923216552524351906763109457068097312284332345605575309","4897047149762359439838625183683812196458727289453862152223398234096980003941"],["28581922074152399235469701390041097055254303685045636119835753803046267623818","1850767011650184562094987725345149801566419942660334204848119474213645175699"],["25676759165205711341703300181625089371100725807242340800164425398759652830545","24481463666217287440239110910729526752662153327933951504588485356653955637324"],["11086517725979453788139472286495401153926455422120549522987902344918607373139","14877136525512028180578282017899318870907492976565968751586215000693081341964"],["13783787806367024399931435285106207325664802195029315392338268209787899662603","28538520561397838540173586117510552050377830832353143069966273541806413044632"],["8217993718750059557536747449858534849373442396425590288767348117704913624822","21673847371357934292261695846179727642109175761760555281025156286698033436071"],["6440421631778291435133595742458579013322022032447131893395230598495686866942","7648445082818608081538568222462515582528530967370197257407590784972528853063"],["3470963456381957977621787381171917240206646063986095810846313084205942343762","18349810986236172789677867679231237570733801189654022988210109186070247885783"],["12163546394370480090228078571516440073329497242548508928517066418410775002371","23710406718301281278380014496064635179312151148784554181402693012676564187546"],["3071272108729187413004811788316108991107850698792401803008351648233171917339","12566801173104231350230734178655507229358314682865652021230261388250424988344"],["2000271809742791190324306326745862973107475556482673650382631173113874743241","14981069298954393152464115228376783960868716803118702065042949408015317386775"],["15698322688004704884316742118882307195302772306886234344207788833766541787321","3162622248780367614922157900223512208468916788972909318715059898810488891602"],["10365855456284348309045856730173688993097265720994340113526964064760928474497","18184789254392020742307894172113414437145290549610360444865131406515789043776"],["7902075179767101980636968794913334855682600379342095027160026066975170775392","27336838507226162640400532225604887607407579865737536488324452152500246249761"],["412311071810390536773915804596225164215788688599532332478165177893134729309","28847422570627747689032739263405691753277593384148746530723320713283361960333"],["10662843664397442050456430177053463046013825054277000370681299493745721844059","25730494830451749967989467830867314401604615811240251341329368790882082745746"],["25851403368011940677297512820502696362479965954069461052859638187825300793495","25101132268292990518394650896338214912621911209259323140732585023361106433409"],["14585784212496693789940902853421547728209147201889767401659960382382976355721","15104737362295947355677790668936026057691987211445876296786630801771875534141"],["678900230906135974232083314986717694434332177854006084544296649108758616507","13945051420833188951973428875966010370189309353625774306818457605161625912500"],["4641666263998296652670745587598724001643537561034999601526447656421019761475","22229205856424698023359365438366273033234491469998547387404064518892319060959"],["4117258445318727112420277794000132043680799354672490415314125376777214200430","6984524812377449531647050346411644667675385098504546361472618434338189376866"],["21629069140755122065512130761147394801302035899260727392440477712283728879779","3603494201850013278350564416734430748385834934664716812992249554885578412267"],["1258084803243275241848060381808101748388120794005259929063546851810516826019","12145600636405668435971193790074427687585822537556691177384530243347569744913"],["18807199419487139783283491551627981025521253953277759147581740828278919116354","9867904645666710866956741482508985207453661985832765054127848653330525370656"],["20488979597606995778279389645955555375833599985496051838922923781357913263229","1337519125612171978911862722516970505545160009369648179723556793750581373769"],["12521553250577289923741509786983437913166266077152993463079437624885942186483","24481222830808874203965532755162258401336458956122934233692698504785714160526"],["27115308188979714398686655327124565725551653175293115998016769654964125678834","6703351908657684890802210328509196662602824873942748783879669969981069077905"],["114685984517048317598144927279997621537055399483592655882059403363640510609","28454316778059310435486377747630449786686955850932248356447668263920352762187"],["28618041575061458112777141138191360320305322929179654473999785966640106889559","6835576598702578550667200050321478434032691054851821315750591379772588285403"],["17363824116324155694015794539744353467784979206430222581471520986211431896035","23212536603971852376983655880240496610692700325171769039766029827093544708321"],["510714083745646805903953043352828252179770283858891794364389140349067138951","7450670965450311841718876828938107003198053875883101899847336209814166287286"],["24593245385830612822936830413126332388604521467465618775910365750324320685424","23711150688646898691348939802471128793494811055366999371860961794857301911185"],["3780704610304701848339060353320931927700450570056706636087338830768394042874","3022994824809097756785187219260647555204169268174151330864778933769240467732"],["975749612036418275321846577383629240711038512798356354295734390399114621771","17549713261233214012234985849066180060138301922024972171927086942595115697647"],["27803636444219895173269580325042404289657723381818967350324343354174747957946","21711123271024654921599127535508305616832138541291044922451568097394692604263"],["6484134022776788957820340182661129939036670694474997172275532740028975946105","10393366647361829381873510439308478428059509578322896422550501459835234587297"],["7986613790691217681010697168703162143967976048675292213141893841847671174293","13295083632890795849673253836118031530496685080079088220084176020077494368849"],["17196779891127859081665381840369775560047722671033407401070611535502158990422","4233064872100792127733863178128715363933439863123680591079626885726065392990"],["9634256936874568688588708931853661777244283926801552446535053612848235456543","25776495183246516921777871247147805228336921556062954092788569298557161818609"],["18147500225405802254661878497728733704751301638945231149768104012631361381182","11405176471496037003787109746239917471041831504029989455108783956179349122447"],["10227000405173088676346317085421981025159711677433253387228418275965152447358","26017347623382249144438817232529680183530149867833064299569469728464671502099"],["11817813134022460695844702280147333236520797783638731908117605414555151983117","21451753718200395671652217141219581040185479013466837921707726746829488112217"],["20123044769481938073425957837382499149660878640958484152751691846123087776960","8762822310772629279033787840354484231087088204543715420283983963268564559818"],["12967689451816663009014211440216785954072931265959672420234148777085043424538","11645319904944145933473956705766432267743360660280438507774494371318729688123"],["26241817471454395045693412757621574985578504720425622077930509173996721662485","7680429041510816477172183440245973075408419656034655858676014198165203845448"],["13841937761401409412493661098494397497019341492769625882738623676164596728580","9963578093016215711674670570420658184754220340713350537936520473044898360047"],["23899426186206660484927061716279695194303403970708630692450796689672042595601","10091854334820967602856433321042569368898182798654276112468542707039303294158"],["13662000198424447118727466336052743562403048928162573806210792938729064728932","20629145220265799430155851094642756179902654506144853430246100029697171052278"],["9104821710227292916253713720212349175760667923528348865469771924646602575227","23937997044272269691052939084732399444478201431176135501774104975196878251189"],["26214372642339159221416658982160077639451668236809278396313156968612957733225","19634233167311364901765200671614564670989114556986772746898244895141849712389"],["6789859210026889774041477780040210799126031783914149960562011540984602964123","17193789460926636920407072077562037161028477146706017481190776568083630755191"],["24585256284422575353333681880239216750605658610127270190170950149966828906661","11955010051963751616531030211799548540267835950930820241814215816140267946210"],["11333484459625741543686190473647545270307439967133161136892422219599050400518","9993316964177631165040696030393725477322289771402355878530187979926066157568"],["9402451936853304444226765538710590887988207846662484892301760725374057506767","15963095166199503383075764812971660689385819257244340239591703598645766039980"],["17850850112718483816751586981785802482674424914172138154463612901525500956736","16416641950723311387853811306183845869537972103312397108337366954054541599406"],["15688362136924435937951908521330144822050530356572628013788237489657492798423","4678133753320535395851031197646210681028594824313276900448810137707364881211"],["1885115825606641381503558428474374867944949788649625777264939193513252254810","14327590756656635801110417161008081083504928769142384678758782053854026063165"],["25848478221797983741738133141228640809192291440364331201791671766589210020247","19569988296206836173354872528531524717900110194097087247041303845276114937650"],["21503998173217092141740310935052904170880906033392749369851609431014742449108","4538905301204586201987968226973166304647128688738826941117858668268888629129"],["12151530559217951645040745337137654164340159333084069950338047856987117358267","15974083568978982005946675941335346583649024968595971120334800702018209001563"],["4221291408219520469549956068230894002973399748457363923073162898077270599939","6292008614691861673176082075297972138933205371555166110226353190465125776906"],["25721743711720334456626589181880362319277847865089514420189865647582854428572","16064087766414196848120861237152505054757706892375210292903797183031204475285"],["13672756810346156040573768205203124099168606849109648336468547616663954703995","8085550159553437090217914088546371999271755546685086506982989870311136400318"],["18925313503072308458652039058780153560985558059937648726280948513073126506442","4342164646055426299591311148137280538034202344039409679163927841178099411321"],["12549978077281805485582151598202521021267002186812998147660105782984689781026","18357432138617971009455984054986115961251285012781805912287855559647313162065"],["14853869953300760544525345759204745421359437688527241240228728034343540240778","919525792559175323781672959435914537185064977839026750860888886081359361570"],["24119252844534898666704313402805388402772355998518326387634078287188161248181","23228388805899771301133118609265793396705876226124560010624329821515308510502"],["4556909726011156452923457715425223570577921072576418100988618598008397062536","24047485482700857936544977683273651342279970653321822263856670020298103181613"],["20089006087368361953782438684566612056611243334330364948732708270122114389568","27229479034233472576706594493451076641526091095899225070011677461514369310326"],["11623852454707312680156774037004866356346391046665950699307504844506205259606","18901503578341342249991534000838238931023903617163593010533166182470201492590"],["1140611751650150612647665679680168974793746733387367005467658781651461837663","2626670813559033923818862762046811618019092524968268098894761539765862614811"],["16785279893343938827738597146859985689295159270029366649702863669548781304614","25802525952451755675637454858177884524667836302107245063926019374397144199054"],["25591346295520932948528981057957908429453787474594174440924248760352225402378","22129348760543600562029275938812814638457124067243864433700910150799255347876"],["648151295878441488118515932478872521467505720159361574041137706484250062723","26548884302522002605341553827852026502885056203302887915689320311919470072686"],["23446180629500395772670385683657740971817567631812432626589903160789648689909","26408224134725392875534704446013820489766883915965312456295413297560643650907"],["28350342312742553535940142359437078487471663582208947750480127264139630142803","23882495762628059121058145076926685497644172073526641925845583084450232029193"],["23813745773474270533642130038258047233203724695064035725719848471897194411915","24469210502645802122728604147505167682459625580900433725095047191169617695526"],["25862645082824266110238776324468070997070320512440683854663323929111133108420","23996419071103427060939903527098564951589806661267880680454883098509384003474"],["10796352100606597699259354046148067784653743601666739929929556808309036093811","3144968109044839928382991891718573291342933770444072968542242274892693937288"],["18914287464989815443687458187917306380392811538277197989364424163799263252644","16915878056739161012402105416234564384920309409720302808943638601289782436249"],["5137279702497309982713988048741032637967860757386184477514057913222980082528","17443887616625317376887535582590222200966027892101128850847704797541361115734"],["5052423961303102099300755824703562496144081174993724423349515769814372247442","25697986969238029194742006070210121973720885025608990820246390524728531406509"],["5783477813871717741350823477176248162777081330982640414572525515248301117799","2493921334050345530301970441795689866806164962638571807694339608320888671566"],["1182091031170621805946138920257399774276772519469126775384547260843820061836","2116298111691675576414852038266567834102287679132914627168569116066692927212"],["4303349627005684285583671325712770495493906200408430423849236566934672271485","11187174157025249865502888254375567271320118948631868991164338125691117619292"],["24302554558535962305080529315315976147616275121944908989941120729348034960817","6369319007982107153102278564523369855859939035839492671499351664038838563531"],["28169891522454173981396322317523179970958677794396290404123482285536382923168","4924759594998455081593081492291245445637063747053699802946528362675890861888"],["15874391375007519015353855730143128501127823476500993566501830955215535233153","26192002323270670228702245066603904993434220386878706916576932342465339020763"],["14178440045212389262114015965012279374416092246432769949840167383045112426286","14817724870443028978302184592485605883640513705075012610225744136976413625168"],["9873617496345280993514451565723954723431915458492175483042261701921047387262","15140886767369213888108685602373730224530400071989985870928540122237623279651"],["2945754201436004386548592509073186258362962692090012421233698348479262573894","27706828070560160563566243132047703462070395895281923301522496420583245247987"],["4670048292626311211551947557655039256881477228577559202864816393299024582247","25650276600866162107373933478818399818187558071140806275833337898497393821143"],["25487119380833397072496946337044676037231373695793753987122177583589199047133","8684472688430500759077267726485514876477151971980292630702707305152914137749"],["26987098635933418473935970648110428439381861151809856396145112711711977334341","13333213425844388125165494602992223246504582480733852802206737325618226436036"],["9416751142162762067740583202884809405802967037520250812631450467248835613809","1264670823833830407445933633657180674267896277494507427190796671851897528622"],["28307683879334093268323861891932935139825969027950893315563544865064190992515","1379546713610872230009232033346918186376630900981770990390775368345817252266"],["3912761393890517691022707660024620022920723693208782404381455761671949122715","21797832088593213886848769468318576895941944530087763609985493805182082923695"],["19159607345216075810046381498001183793451942196586542302117642786195271487819","25136156754720169114653382202532461085968236476679912941771729592530503565250"],["8254512160681207646352743715544367721791339974673391761710449407540994040884","15526462121347403194485752676487360640116593066001912829692935847824341727236"],["28705470066025601223116082129771461327940119716620462313770077497301329174018","12273349604312469222727834481496558554358228463510266376114356284381812631572"],["19263614665015363770598866620377247291022401928905425783287055877178219649097","8983088384779866753463258021731486122918229860303762118270749175551866787319"],["3983764561986189162552335679268008284941530830413312294629225290019195365073","10285015047813930087110291635326903916749725219479530629493027182915994791187"],["14761701938287442901359967013322404930416642048374924396639068357187701741096","27796798919710722408146206710332619178294278957354018451361889845981178456265"],["23337159704851586537281081249060370736779897656759377405635596658796939883314","22274960262756318144234126383667401098558172061574699964629827132825276633640"],["12037306422894755517190916698271104955901819136557003465566253249607510592026","28791470095468032420003194767519146728092038698974713200086156718392123331420"],["15291857823903477995266489902817198581560916928228643213266549978325496589460","6453334704989312444889693410466934105560340067504079663889420037223978636934"],["11998213207176296347036420377452424980104503137230342241378862170551827393478","5005375468536794014369323085275290068259977302922374082673974738557786957565"],["4589796005053202727458677342627193220350733767859744576621865060950295451376","1517303865903700358826865222691850250244923545291085810882161367856710105924"],["21176032948743060452629900206022278205616756053595449179778005446418560262585","12062195216557185237278937500626873650314789534017207885854399069287960378660"],["11144061033119032325819975979514265550903395282650699755390822684697188958384","22720145556487133441992266741417585528706100690731760505722456824542782285795"],["19587644423943387544279555342959913499027301604877045177423077978478870561406","21347504821820911777451692974967030506210312644770454941283271720137740520717"],["21589714531121975171860917397929238648486647615370420147213475796876000249778","14321127732287810185444949269685152108143960548425150940951112443184158580289"],["25878932830115827410404401826063613674722955415179914990244524260790860739088","5311993266136785145366791655912016258483218572479168756433823166885299040970"],["16132472343490223942505273732090354167915314478391602017946709279181042256136","18826281162832175682693431246299205961578169162806848910683000198213891220527"],["8553869596213381760377961929383916133806080819929274350732239236329023926269","2828368510790432459849900426405741819749463416206624985330385662575134033998"],["11022373148363597843567285505771858773818718272926227199179767703663895813538","1944802292675196445035493617356719065122434491832724440504269301069507944377"],["7512604795955619658598948464341429249728069909247917536208325360249204745394","6155596116069595498815323359503998421954544335790331194205376919367388481415"],["8268083232723374300228433010744392222158890598398965364017535400874543742204","26131894319510140359254439645822125711818270471248878235180070458307820484806"],["3520628758449750694779417381604490826664225866072476333003193537324053301491","7129740890791145861099829817226498614251776561393417581287155384484000684399"],["848011071329933711414781154011264419539938053614922407882019456869167837129","20963665772711487072219262926269112082237917331792844795478533909306470209332"],["22214262257463084876841329849333658072108495414872283576293352330985445107479","10845512906570737365252978085852891965905557399684618994567179671414381279449"],["5461426855738748204311560947576765047575144536619484412340815188483498136795","11625268616144152764040285443571054295828177737433690208256496230725928992913"],["8713978883077636968248756023936218821242747551324374494582608452219402698658","21383290196549628217375276462734369433770729139611323203208485697042574184726"],["6577003592725396371596778963214571929408504736335120048113997068869384959204","17989953516872329702729290581812883854234620528966542351215921068299199769020"],["18013318953051463319090477050211444939887550662488741924906581076869201464711","598228948486115445070229760911814359356072651410616707609551948985185404731"],["18768158269388265968040150522865545162822901591441300797538621195629768272959","24000080879136095080513737452567623203754153437173622862839111276387474842747"],["17801352350583972612300537939630021593182192254406646096168821126459591652036","5781192429518691725703180384283839780731824676988463647409688306670378383166"],["22567029481460390392066088821946024859750371098629133612444895809615922225438","3863898572357462203371813906168652707981314784047510823329343357633324503971"],["20730897051886431997629161631468287228827657788839356323551454118046669199116","27972609294378339446664445587657889706912085768884740453680661119180087775729"],["8081591047273009224123414681508552545276072329991444321510072258667516325013","23777964296191992695974640031457142067129635822856765838882273706222522100129"],["6829399554104843586541941798551723419865539264713330951043337539097395856039","26971803850951920138298270772714015551720943197615247994081172806719923295185"],["27657728917812964785414143758812633265894270692413723840304819241066673968485","17289452603021756613363468955831698899743978917221120965809871675668056843183"],["164983961106536232345785209738950244464546919474984902961833543052050819705","3740528529255961026040275338202550955330147399610687192350851966854884773673"],["22909484880431038494125381962270197185945869137848918235143326292539894601103","6397282581754917128641271364849773357353977553019764456020184463803395967595"],["22085306474102848940090796254859668364795631165094261896633011911656980487146","8237942960497404633235065036110384007870075863902509903138026851341335500319"],["8535465869360977303907884145109428669470672912800473043563534395949389789917","2119749300887025383168380916301414820685683613010219389058683562851949367677"],["8378159356500707008450873102536239295348313706642894812077747166232004855721","8883429800799537229442632285108397083761660495779063316996414294580672469269"],["3689746539737214283727397700750375550962859846915203634512907338219300024027","1601161663872326155130537785145048311137146800969219593513696999700280891215"],["10766746442898229051948180512086783040219339166811099632715847032976734739805","23109039443737335481357684203658068103937701744630740560700236450600828474159"],["4458004001081020282881386079156024321996167217676346418412003981359496623128","27036912712731573826866118153542991666092890342740153063616865273294424314178"],["15196596063020912303858002675506975661369840283247525577040569882740365830750","13118238042803304989598448683981491914133996141782215423367324796649379712874"],["28072710564211501150858057137475125659602153739186330488484181357880162313006","25212774939769418598096878473985591429097619368607416149941985250090958856965"],["13631904559907713934812587734818867081107746110489708545417507297117424311670","5771184083191391641966068937143218321541764641558005084700969346089592778345"],["12385455794377380562475415049532927248674444700200074542058675113614956342155","2781662004110364040150163263869851090366283905303311606537132656960625842899"],["26470820658506285916554168286827294908629952220663969020431405769659317490350","11971012094514903333335886714691674062064402363936434380621826949667738991367"],["4156361624505672790332116577650564636855514627921010409821378832207887512761","24786475588082220614103800752202435720366487290585150572965826105273928808813"],["28006156288324687843116499899217217685785364816996680727229141471495241534377","116001512500002031656873252900389826266405213650157455941734941757123734540"],["4540709659285298731657494130361514395791677009186892725037585901853167555653","13663321120282737435112185257985723289393711606730632998064804494762050316437"],["22337315861181269397547108674068369286922958254089312303963996212642867769019","9350329585156459476991129396901631778177774202471716325979451923695587569943"],["17523669194014272765273723302603284700572101546487662678753532950382496071242","23211452022376748264434927402555300881511804445257090683814159790627253836676"],["966585303940855968309708777935415128776662766354211913543562564655615191630","12379160645759031992531198160059850340939196666372168164609864307335150413308"],["21563009059237007630684374296302952461736721960016795602978781865569882655779","14873372087816080240728604160792993480510411388526614416868119840434013860603"],["18444471251274820128872960455427913280464482291227920451311762753850445412355","5137271205980478655775533955611392243955319887157175154703517994930421661842"],["5048279558822595050960577748526357493400492006332115546320254590398336928523","375210774905841243405408356317295691371760708868005629362132221919477774430"],["25202288213583079641615907096530024340452893080485242579668229449117401604541","11812819547336157737719413775088032654871376418709247052701274015401106549895"],["1761612071849610424377146095169666630739431280163124280649294890015564606226","12554911713782062319457770914120067451247884750061410066682833756851452883571"],["22214226282198689695504860946622919368744386204763211970098856743946968844097","130462417545093178167889434131642821961550897189818826000534583543377569520"],["16383748086296344939045213981300395972421637887989735700022200329971104084421","12809434101051080484061510372360149632989161404608858344896555434825801305319"],["26780249624439814700883214877974500261243581834387039022307658470378256556195","7733137706512489485337970014447710248900860005008199780492211859846713589979"],["10020851498599952419700765560147890989226744287805449280048636243100345251489","18261510369587920550797156277183939124742320740385501089416675307992096094834"],["9450974679324221272580018145749721704911977388225144943452186058438404075864","26143591512628557418867543369985488297905120679410329537666962654085351115397"],["20353540899419460661319363246620979440939718499129572124084983127467283074360","23818376619551574290353690909113788130715525927670230815790782412920349476663"],["5005387858799408699597313970229529843372640375691981286688699328995454677848","199842277025744564159085571167737329067282275300229348084051057867952049379"],["12043677272560404892107944918873737290930706885650787399170398207864763805709","12056010244528244109478836448422081754772783737121564710766149297649173483078"],["9106528407076541724222146887595470420306845359153513968173321024531884375400","18637833990738805848783617375680166824395950703827827478096784416883521572758"],["22353574604409345064825177964401053041534900492261132796748079227076198118178","19181537598793332872976184542629564480807760974336383914035283799008161568322"],["6204419192327058574584854187213892850978591114889521977109078272525688389703","20125941317530676538025587312628989187524751589084208119039841135199105389145"],["1840940712270214544572642676495744708962314438766282437741714426981254548392","779403439003682135098701954294313560717247613176841077264317182308798102619"],["20537357142892694256609095460732821449061637690842707747981774545642339796110","829532694961598360813940983133514344023464541894200007311340133090302157636"],["8352148000230063720185417061473453384418219381069734439572549692830734703469","2730232111029770413205396756286352189490927204459638668068724993235995696591"],["5827888201735517938015841659982736365628491947655439574989217917481553525428","11774824852601092717773195147829960169858099203911475249987569537654679672359"],["2132745677041297098929952904040143645952365513674234223686469199367443099202","25799912751880179296527668621426312570434105761742786905314598491726917641395"],["22303659900738258481715171370914433077315763769149139236740054853021168051604","10915909002916373454902507611689398641648716713392146725195881615853367073851"],["2643978517007693294573433400135585539396174198335483925896040996656593755153","11308310421028701292027045601242545003885522406952246467054348812729105415707"],["10493486933162921734995374147750922133589021394215909953463362244100813627648","2949209795441137936733344950111305319244994781141369269764798421613436280105"],["3036973193161647624510461242267836309149156878970268564632431989302737940508","1699692012714477334509211640918479189765180127944525899241194630547097196856"],["16668635104824127587718888882311908076785087434865122265027920797832045726971","5365489002659931891919378860892810057233233797775583658602509109975194168592"],["7688655988290132757318639768097056241871427198387921299030625371053559987862","6703662374792669810569665739918206124965313876116675252373442213902160886717"],["18584365486160030621307717582663439360270353201033674245252507494978502379522","27211173193459679899491373805833468639818420915124943410844555153793401109301"],["3177740383871059074353029578687937407857795363372895411399817663494099665869","14512129202725340647264866853891606466599553276413091122793283647334629449755"],["9288997556555754597635026375017873901601159246186323693543166288474625474331","11511191003707065611447204868581829531870854510665283181609681487240246422655"],["7140550800162106961454446433798476044827522642168428094783968174300333540291","2684069962498337558893684893960376680492022905775624295453277350648615971999"],["16223712689995314346234019880330252738662578561767468914466474154772908394067","3066986831513272553263607001757564274953774877598661438041484236603181726488"],["2636357282277217754304145453023945965524256818135895736649970046334386149501","11236844794457515502077469316544940263308518103882061118897040793559769726168"],["27125092545037108010561254051706627987037180275781177303881816023804138482810","6015587073413177863582998835038247996902487616278441969648988772008692253592"],["7103393995741503234670990388286366396935107478733280162914438114505991925413","16444183177918809954793284916710983823057300162999883272217722107582413277797"],["3460838476304999044798546493302896051215123751619982444156652326277584902496","26260042881605266073431669505640973829122523308911354224246293396858926184274"],["23127618746361775734759235990629979450630481482083848863877009048793758047912","25200118247332527968054523691228136977031750644771656711821437329153725522457"],["4679464620440549331005417889548168431004989690926095480462462739644271015393","21122698964147240445545439714644033069625534145196213235772924426420425089504"],["25267901691938421975209439344872785668699135373583863912146756115138723628078","16960283026567736668820801451474643718445957060537559510080355272052406640631"],["766608242670186021674778551812319829301543034236982669595396539175673643851","16378100391761968724421562457879115531136471018975148708887257432084023222600"],["3745092333113826714280664380092836025107753031883793071796384930768648008799","15530674904849347044510688654586393859326765759466912025807441441829916346265"],["5453425862366242700002534979258436218105373759500628055727387358109751398181","17322048654864881959829955690488410878850836877553119822595583580746460714317"],["16125940473871895276504847951759459739515924074313952487157978228511019662555","5234115021328124145764187774280479719410375193221552128473011446442090221910"],["27311694568593807271892203010223539066688299165316505646093529478104841856201","4381067204298707683820978502378139060121230338963386587664818528446515329893"],["9933692663349752767342655261734256471147243179458921668854848831965553260776","11173330525947301593472842963681930708994291224904686304975920940758077274668"],["17968495422418696906930366383644922988266067186518382464842120535777473600503","8611476655982304584311172449628258117366580263791965802731585631534489801184"],["5826849254885064091294952100147416853346849077118288607573931513108146484488","13403056424980498278277654420760744582956992790589607770162749105270179988631"],["23716264370982703875381484888252706523146988496628062004708849379387360541754","5869570098684031391206255755043082125915031000674187516206733530085784900604"],["24157509502300789067906417522040215938503928904493539337370249607827255026806","5971501026596708501348866856232349995335649167424014921855563552126570888107"],["24167756389629428525598735870962255115321954693803354115975958793302329689155","9562955164181860907753792533190311652085993231556167066917510490541593164609"],["25512229265579919748013411893872267405950517387716006987104258759592273494494","25977858554951583391030711384153786814880455508717205167384779544304111510889"],["3844411115117985121340564175954328030602671238136738367776898369764004756492","16305900918603807142767223204002816461870160373075954341945761745254366378350"],["13050660907404375688409126914621122848713470842396574822000677267459684226984","16383328228564316821622649354628728384570425744360468320940468011436028025275"],["11793429474760303894779541076965323402202556671172016484702204897732626563798","671355821014981969189795177243662514785614236674149627535478711753047034601"],["23372899564653291332516772836869652936121487169923800575475771841320607122162","432582176826522138001489538439585966688825719285228453532217775118020590050"],["3857478809088831984382674381866814820601355649558210222401447665120320810714","8850728347492470115215718968809043059899467488991504060142451764785749361211"],["12713672179599423213327172415557776033764844104038987575202559336955405505471","4046600548737990412511880880944733877964861830530251829120246200216400119604"],["4206380121634872045660377876711576624350265889483230895669787766947928430236","308031420803747432281976126538094009213135290385039302993579887238112453499"],["15114923095370657871495998651528321081729527184629820539739567584922788990055","4513497705998843550412101103036471632463164225293596130281670547866993837179"],["12215609797689053984058782312264905647469759882187340136140435611680574813472","25895800079639686313310931269340543261980389417799129916540070223345426276993"],["3383825360798633719078003150831439622667566803959798085526249463931611308062","21167765452836810636389817024349859918552590842178243560821747072322512960602"],["19355980520299696593967881679907042711394841662659404219343484316291659095064","6049578319082934447391135233565949078263160500762667893633807489170740802389"],["6209109587038870285023340763434430257693325986977031083892708368418587356876","13306044682440543287393373212022935112319622633741613196906707097058272249945"],["691660048020080905169659956246103758346321915226051723674143039817703922527","2122683565916728945961835246898547337049981089724483591910959757931305619557"],["10283856667009863898390465720295907249078467855545707942640903282936567686649","14773058183769112335419067740180606176732706713039549456978751832574256173003"],["17191820994166921955107151090148307231054127286328598293193063477107020445473","12992182589035712587172724423549712806824562291519965281451992131830971987631"],["12880387786407481065196828658755051184484893239130741291110183814917153145677","17547008877287885322745300773529124693722128107594786287658385521270174366285"],["13920904055328541141023407518261516292741500030451585536738164283534806823416","26287178457664417293381331136382204634765438217344781264676600362005270092353"],["24939547789618462532713194277550426541646030048286892368428559280250304362660","5523924878891219834748846322035035809260536400498841621718707761460794082298"],["6546015019368112012393248819710511119245600412271844281901843668794119826021","16946794718501910030811500316715941032526168886159540274458026601968624672410"],["1604961600180670639552007184551448137586287247666502931620156504222670734471","7135252983640864941593848810096414999780513347986221035341272039379043028542"],["16158837750529285473316487165964324237672618893017943443831303681239371723476","26503623212377052327357598154756335124750356484578695508585537476966597860472"],["22710193038593163164341215735228624164964781624875171333914443735054790318390","7771840927478661159392747497341273269578028571308874324772155748623216489125"],["5191257689516537156471705633626901467254439609924138938847047301185172040757","12586749480217977559813679938072967936830039767036540447379864539184630492421"],["20256769216831919450443921635994256043460798900968296928069245884057784800932","10649977687224429270400310553219401082048136345805948707617136276410879921278"],["1648915212379444028851770521016520267093629529912153079341096515462761317094","9690730366752239010612258764565751063967359226386518591484500038923910945908"],["2353038659389048212187853390205846540494729715388804646950745500885034217121","17461737452569272496951764776814741339340944805677923433076757418582436449681"],["7122950479922785343889466586328709202881050349401036727959188751474902357021","21681775166494965613465310963101687583227423556448205172043738020099668709593"],["21165793828614137446229889735757263015621919642884731020106761801421266432795","26956710499652011018101745522213079986739431371319243563342961117624568920246"],["6128884931330925739334482818255966755523313562905743943536718058592064307487","1003351878289234753199024821375262971359813985626200756855351880509591188565"],["26086830368233181325813463410480753505405547996584171881491482328410639356050","16386666304470493706332838280269197325079358487163391978832776681703873969202"],["22480049199390071659147461901275290019445025632068303206190478471974432121481","21423483414389351233409911167191927971474349430360622367738771065178409500345"],["25314727536000176233981133749268113336719422127425435587553550221263860180326","23084174466015317712789281609398933583767297779197164440310094151053783670263"],["28148848674582943321022948821888815492041637476563167212673717406825473368880","25145893625211560064317753661398421578294978445507889067623432982381034726517"],["3346390386278547562603404141683349731334063157783299723207940119164970426008","2712728737390395260973326135771709836359826695365699072241828894226836736149"],["4356720789758094486087949815996515439940907803880985713091038571300897741790","27309229894717323029502035446578912929082084831283929452876120966971632870671"],["7319065180676706292667623472683190308228296991146719546214341654416434646976","14053186688790122066272924284071174305904566666364309638583445017280578501589"],["19750348954317908297634984890406990390048435249662582399519065942323541290254","18428515957544770348381364364496551443398436188101824228851605935377373905272"],["7625303010249784537014632454456238009814278592702155234570291510664681690871","27523231484388583026641361006928951197479607508249499723006456174085799798930"],["2003136830249351849851986570947849972029390575980666521155229717016114184513","24789307210324581537891206619552965193539132722378738050153359959103330580113"],["25637939776310761683093960438376452792449651986173250644516225642188760913763","19125724814955610520338362059781720768204734776547178101171915537358395229465"],["5021247954533603131471791251020428462394490537125833494596388917689474936070","23274233957562513443899146572776420598051629366910355839880599645024466442634"],["2617531029927419196793840419330986430828437525510245512294066126247050331623","18044866165960547743267497210087080834128490857044979644608866654638636046231"],["21839448153916389947020502736739397192464326349594615291058275519946101570898","23036018022736919535564683085089544561944402593887726959588060401213486559279"],["8671283446065946846234910651778554746879394891952929778153734894913400487838","23184814625677988822681221308026078518076978807883291877152916948901923217646"],["19157547940782446287350222571236833705502177788779264109640923721545382549037","8311712971698435243042071056121345383303881300903410653557847592497847975948"],["22214598800932286571465993690363210760691239122323041084960911361232366319606","7897621840771977387080975841308987857922448264030876992461395949803054283413"],["8363530423090510471459903296130129079301622204566811919672401936952197293884","10025890941054195525155385242549904233325217497755760150319775882935424572929"],["28296532408017300788498090922799350508538690735016203292670520584143520836907","11997136576588835694805176450131170088614254865940262440524118420266551216406"],["5891785836630983724575592766424972954713091064717685292620343317406958041717","7440051935815232379777072469262763457546557667365549922277552787786172074125"],["27699037339370841854408808249658835387730668443341964249679502391933152218417","3475063615147291629837821379030934582283226824644532693337909397107041605054"],["23913530404997669878567096728440473511835403028757926817345784329276279279767","27803893394787501412180037501353467939465895993871961656116324858720956024311"],["7365145869214833565311521584764989734712565246487342266021311780065643378446","222388693642232719181463473952372414979052083828296296299380620769900659271"],["17241605948298025358210175955636037984539201577432474313379782316465460529868","5753679599021377083062541696790661191804728608057653004484905543912769627391"],["17784333531632517284115364500083385646699571309791234936233387144326565996530","10403383003207743114450032784332749034042304390745355716742506884269119173120"],["9124547971446831446765961063786235598295105870741670742991512390988785944377","19268894121049137434096975179890221364963910227039702096882461276002661918784"],["15373181858625658678404372258856388576341224005579041385660118791365915585990","8162193257326683093616117944437117514425770425895514999118410659469518805528"],["16644870900263824038194788994392963428526166531811421642338478779056982240454","14932856562382946950730519622704138089131233063338375020098583618027688889516"],["18240869502788594377804908220114412668506110954215758771558942588388479905632","683054612086934491681837923543700582566835290812263180020902742504787895081"],["18344635427846074870413828235335641525181707685581206289211467501404010228553","23515387262989963573091356529157684090425886579830659998756090351253145238657"],["25079186911830859207174363892732837346982617036491464927084723254358069965642","5563879942023019573632562387452927525782706656214206223648381960294792219793"],["775845936980667876941360945465875752903479826213466254593395122995798119523","8725943572148835339750400321474481467108109125233279176015771368076878197593"],["17424793362466259692508137075977306541725608612358947885668601555496950470932","22439115933550112278089657856315849689616858731791280812080854792110241159609"],["25513135512281427301217293502642638315704123334249143667285511879577725774056","20088543700044252159339418086419619155014432578900721637140719264900602304424"],["1245103491048119989731547937494183527012100565267529434588949487562189512379","26682240587518430100456333641291814192484194936470003657238636218806010730864"],["9742279173154141015532317425630732114626981297704096612667282214541561049053","21468435684650543808772032140232050628952290340614210116999445312517855518617"],["5745321623858208497464785034993441671884014396756697881751610202533930950674","18034485630407127348023050686920404059871876964540713979805154670697695204036"],["22232610750688756841468428738473351134509869829992118262163221291397100342981","27619339791763932644299076452595432913394271105726702251118479226003532447613"],["4375886880464495377003475888532527066484271050314690326649195610123447599611","7587094675791862415190801496569972327428985216916499357259601229551667334516"],["15762898348915180251571152960795621894048397451497692156398643968619372636111","19780124495549203780493403646358357779407966172338995694532855667198324491869"],["1092412815464922536299893869174662222976787948517095382107940210476775521610","6122128237378812858194356387467858787616125368553487402809572612187482294561"],["12544182763039933517460879585673552563436623843750604112345895517587688230990","16978184546243023052161895803687144309521089702583103914879761071575055065497"],["27348198969763767912188219589614913542765601868141890714654464408353104104128","18051364061178862311499134058344181778888297912316064840940995605654638365850"],["5133007993681782140368309342877856649921693305646952112570624712938197627335","27884973766264918407863758423644255016489119780913048118337039244801342066495"],["28440837009817945102071382380674246420482864982356284603481798424718125879333","7159036448238996858557586005648387930181517510801079086382019240470778149441"],["21071597439908763094500736339603830700499627173575560941505029868916757986519","23191127741339305205801530263220805074034575615161974932747633955000989171964"],["11308429598208212784499554593311769274382590261046588257940526232281487299761","12788757143614893542729646116033032535777945138855523207875692641164954850408"],["17815628201201634106359489825515686887111559691700109804932329581032741167344","20393523145457188236606834221275331948052238172773447537155982682329383570303"],["1497120180750789764896184985620083973444992242125864341611260400311989991806","13776742472210091750744040663654111612252009938939148582950059337756524654272"],["657563668057553649118021248592375372788762299189139880383518722798788007794","25446660309703859835043828325156251712220681701646581829840003207324370738279"],["19757169955137141768285639731264747303833950474422537032420558074922050780208","10828599716086736102761462412779947662963360330929342707106821381736489981783"],["20473926289172709322350937938170497190441758878407969474574639716217742248698","6665919703139493044584615822197738503504312815313996820319197644918387865507"],["14087209598554067082297763527659968367460144201947911322180734446266194273889","986773652777682002352971248224394595936294116128436710397154594209956225577"],["21595152048895841009839258381124111993171878228890632846497063830607512673249","12386396331281750910378934010002228031526276494971602470638357363687328185673"],["26334796986999165909456591414798969383937035386876236269731825661549041474490","21659580021190380274353438149891464447833273373274301871837016560470949791979"],["2108944551254452558652886194094072172195704218324340712299901432001808255087","16402454467191851302740432215049258934924836924146581391395479842901959519616"],["7097421826143828701607237086340593318104658506849777520847117549350454388992","18511605024760305282500348759931801675888481116052662636432816656511472797864"],["10899093217527649034141515235242611489104125341120470712933967557913651716171","3518300759519502853050278521797025992579272078800719334959788872621535619718"],["20064308263671048355335878346506871864191489347282188280948904743825563575861","8801180581452596905639658676029233178600345747280275235074801706343238036053"],["25464604827266313626839000758831309454530622943191024271182856573173000305943","11587470549534302504748215338563002072306678523295611651492220784447598313087"],["1126374855417532999584825701127186760730290208074475018851392652522365667298","23954541841514609173081616674393799656858071736317629617335245746584451635096"],["6539435752765546191850086701637312012890843448770922723290134678247858932103","19355396407810442003702950196425123199063932172978278952868778179830277665326"],["162970835580513088413520271725604922676988555257127394504505372872387368131","9371871543468818115459469678738851005870946147635091858795832427453708014247"],["22924660833292740117586436491061939577148450956239207448104247074539522759485","12814056170446494385741860079955785753184380520905868195721921288501050610036"],["21434689820707651605562932433743605035559777423887411441292051124932959759903","269919050441178388929948679590696086737592698178303986225435402549323654479"],["20125642112583776364563390741627962655274857104735294802705959794221759925904","26461665951222654801466946274870642209136058902776277932571457324035001325943"],["4077748414798194703680726515221121254973176111273223195122679534559966635971","19048688143362904360870380160804233846617929676006677685266261668845302519523"],["11384584222431678952965489512922037913299957803345095156464183222711706408618","14929070622906474706526355672011728418641826704766589649070707041435363705355"],["18984367104274568188991181797765107562623829465540637148929097872583143487175","12380625187602205335374083140705498632937076427917192403198761124183651473689"],["4141558811884722615580057521220208576731965959651369894923946167139372857797","13810104572243272065241781245961818139580816041221749975118198717931817135737"],["2960318616549385622080114841828489679704293844825095677549870064420508030563","9081634792381209797112455406161959596494217904401088216752991079212711479059"],["14272913797275277793318073534775770486304527278925815991137167857883994339078","10928489376385870226551882136093997857288459085013457456285204526354384888522"],["21800334727639627122826913085532283960410407141122373485689792591589267876383","8641342167517149486093721737575016802079632603154081667304944417215142030045"],["24987156874441322987672324863549311883688170156395592439588890566490651130769","19401993787069918199976382323531734756282306454491220817469374588283553132964"],["10399012793922092351050311072336784826368307350997405527166554033990789015434","771129825590238393164314277547473978620192851876813198104073726041661743226"],["3790321583094973677420027774247294183482343981399851746731639850840263654002","26135983299424754382277184367805617625176379492306455297620143681411924170886"],["5350458814069083679237599344408053427132610148007337200875144540874688512545","10206883572170358799172719221548678028055200771614151759471738279859565585989"],["9047183920705729813037511808203677507331341053409927997151285990714551458724","27147699495102074514501364302273183723104046272727367189567172252532603617046"],["16286375421710317355360357103736926113931782133416593067096227202454661411267","24997973126306289485355335356822170743106541889245993832173144930510301234978"],["6002739804966079949368951848553976396731841136029843753358706636586309409335","27575568274394853659000141605248855903598277142582460713064230816056687326320"],["14760608867999015550743630580590760976965497545336704861878147146887950486260","17790146107459632519260868179184970447184084849539898015293202845312155308883"],["6191752869783030006219985866378243566332879649409525061546948296117568746417","17002750976491225765947649988766043380743078767310522637077250829227835453855"],["346570066712229239283090311370277992893969560599970360748876790901276258913","7337664627506981771246790649741685055839331165292132914419356065923644792159"],["594068872010470923017438070139985621951611992559019497004077603211005190933","22598021786848252175814576314593554900716113047308086803416969832007778251317"],["11588042143181874585019860577655978700658555487405559105486874919327196348715","14747233973304135862370303836923467027499093391636684364205779327121415404732"],["25405466104334841568911016951489034480989284931996033864652069572052622220619","18599999312100759782183377816874315790267586986762460096698124157260098436167"],["28111451292874527199805468678445111751418986356881383569417446625937500728565","12828367770343642728161156425241843826549782886653265894851831372612948915872"],["3201152201817220500631040564355214529546594380012397283744856686478865354243","28404703883415551979831833176798258738408886550322345664791454484896197402787"],["5812743219309645014418189372836059664591093992345137031528351364477864575560","15673823310737385992938626530398288909376469587107698018396355005248102739003"],["18570863976155768647199203273623987379244794620576155704164755119433919442332","18839961039478281603614785667122858887703056390279977751693941229733723143723"],["2452688146375701118551873000843900342393146041939598651510602245370407604885","25203145483651743893950445599805826477200045546156776912455055899368660039971"],["6515144886051582967648297582238991721964146355299299066506686869462449541962","14074580173557196954976161978940361759677653951088766347099264766483870869879"],["9105556164227499400377342962029128757270261972178808580564028534487089534117","19603803073109071170914649782481515751168687411463030090892020991403047788159"],["8418969080681263709660570115983804178299892822113298521850198988879640976428","7576032117841434478379381851075534574167839152940589595884611095614644831290"],["16959547492391734656232377158066825788115113776181481184218303277464338226884","15722768291667482661024985862995072144296830657929429052789470015359625366200"],["1317259945568224853914515703387979123559022746076048915939849014515445821481","8945043926708856376138292604040899738631449922585359616825720984122864956081"],["2562272235136480426836197140022964281634103536255771954001756164010990689395","25845942750131760803009787359819537139951512415662302937479136407472391980657"],["21682074629215436839223526102845508140514299544413368456372923182195291384949","3616083212509343934501272515264513505714761220162922136003790109152180034363"],["25211609471979700626538192902396692614443331254265166727007670779788632340921","23569192999419430534050622081592316998293634612739131786054749747481339037849"],["7708516854841441512188911938228475969064589401414667678465530366110534146026","18987333809424230734346871564937660661507348971683619237074904150062567056475"],["21187081088849280866197889241174838095785219647240695643105575510984054558502","4998516506133373660440153646706961185450850461396534462770497455737480649327"],["25270825363854053804791942839913406367572215994198468092785543863560710761062","21572442980632311802646082039046076877143140330660927657298762266700336683461"],["27181723309395459979531303987597938604790266283820717650291526663729896251669","4803410982909610654838007437339475141229742998994276884910900221179343145560"],["20845780574336459412218937697941256748438152344917160207867153741846749112076","4559934692342101925292180702481466725711677684495658443802375472415708264418"],["6780719204349104209291741266256209702675554958425510431920284835385594093624","8482158524790303071803441792944058926153829812381067562222330149054810308342"],["12186714572024367768510322705881673877705613255284071517496976449448309197155","28729572871752344800267992824176673527748269446124682791893729067795521657325"],["24914363891997574468348068627715810132461692386361767092951909084322376733498","21629471220419093536194796301271716441226417300964808543407950283281831281055"],["2164949045914735893922084764567736352080192649773900602816071295394038976768","219205004438827737957625279247657315053050645198471292742896377203019378443"],["7448626621085385616652569196499960445763617746627017810420872882151684711827","19978916908366078574117005444473316817725716836509859705419122214506125415644"],["13131746943533349990204062526643978226839727390388216148848569648583743611959","24081790441371730092405105965866633733240966083142647891985649124332051855638"],["28264994849430969007601156467271329271999494673745324202168245330851755845650","8814669366547351361173295154754610251773753813903799060348258472455951941354"],["24414095506339071927193258051249414308919535759798878683887645874018920993407","15306430900823165186128739123622189518869563720108920300309231265776415480573"],["22652460250438545918202170081428545815690503945842036302537321099350055385699","1175833983184495919890791322317234720478367337205823464658520822583241381481"],["23705005841331034899529329258758068123290562324762867486359448335436887540722","2813414708228136214156187349311280324532569974579642833531481739161259971965"],["4731343032868901495690655287287831422684722191667409524352778001890310145910","7803596227968246012227394626600309479636771526709154315225759323789143715675"],["3819831127743763079321771838843058845548485683100485691997397552917685892755","16171127220494410626096489219605259043621281899361708988363530572103403419226"],["21216727373160809839065368331163431180536430689762400903170575282367575979594","16432265808250780393168824417843074776504585463371094602542671273637369581908"],["21530514102720041649928908529622573231723274932478773959574580964849288305394","22226175786685061760593019923631818810223889731660598060386218784586857363513"],["13374059797125943533983261769728779481421321761829933340675477850497823052845","16950391877637087794525942107579173654995389505137587545062947092634513823274"],["11358362948723978901002251842751509487710359006648740649087482214675340081947","16769184934763477652369199551444514933585936102644595349689130301879084887943"],["10943384004593776109251282304878631275402710406882916298512858494576509370637","17818326183984490816996820347037777892719434099807679879474566104039223743507"],["15133618056715824749437414010859671003122512652862169727231470183988773148238","23726146073741546758856677762007960291799716285390152759439669823969530478223"],["277109560714005354039982224870810802223327686776613528317614975056352600499","27763100353158928346611330494770305653461920575621894770455115764402129628110"],["13656750399594958162552191953382547997969283016620337784754516312422670636863","434579476295521365030659987426119314971023841615775245184823887197774505083"],["18334480058722749383946990232056877449698512998415313826500843024240446214870","18546081970223801834943832349109824392061506284408566765151557840361792466110"],["4943703648212295716767585071948129198730555506986209771316227682205840439988","17519470835492190789670176802230885302221270660067874989863329105578870819187"],["8397981022080824523608746327546150129445946453383597531183493237941854892307","2198860136879041837654085973969336267010219907204674078711183132218418784060"],["25715574017753922327755061911547599122948784910986786528495662251568207730362","3603191120256049883530588909392846040620748888707750916233100047466795026001"],["11536756750489465587449289465808728157931486724730637704410721050823364809682","17097618330467404477272812065406547543366138509243864545331639604387907112253"],["18079530347730880250123934157214419515696968819655775522720346048793143719183","7942527830390858967482531736871088975937814954135160962295654668550708619485"],["3301488902902542814985259574748603940871783228162235302044393288895535957657","12276794356913169828628753264859414843448675993578099493949838308938760689821"],["28493916575363584964485628488718064625221828204937520555623517813935182803281","17108885252276803935035478857322135449894873405308690601279568210247708851729"],["18615075513544464147368938650639926111913568629027584059355836533664101769924","3057455601577902705282794831800900564201647112308003338384159767229874966532"],["16402015277028567646051368163734047226881685724343248425283025454389586796332","15506994528748107585045778836690403474968915186427566192354092400812816364619"],["5126875659950314564630188643124386777595324159348865834768104838773047103802","6638115381777446003935086712728787017801096980597401672163004106693088300292"],["21306141513664471870129633797948484278455131562065925717869062176416456208497","20425874562692578012142304887203906424507392896629029012868346836480915964687"],["22633640224420750580183259674471208136187003849709498599837820260327676996733","21550494999436692829237802264278339299415243169383864193782178553298466650299"],["27410517122473097498680496586626830621910269194579710620623821088984040736757","23140399840134046453362542066604481693111478528522215431297570481003772843223"],["25778755127277122440974493252570425630294452462204267195091569813683482702812","16218037760036327700379008920377886701271816602599065978058379666860489456523"],["12223039653359278819006054353034848887071497195116378572028907446974821105167","2914342317143631339463940999379661516200075942597330574454032790499549949470"],["19494212560251878230468573623282446985436137112565248815527295457199329178968","13492324365722767076525977416959828618917793651255885661930526272035948680813"],["24453626255616941568023481389450216057910379520144002472945215808272377993598","18442689451967216992431367529033772842724313163001055205581694258271936453472"],["26955801838128301948921172885858665651610787520141913648434536052338911589185","18462676078314485855093828667288934005577669204907580733235208121897110177256"],["14594676932551605599935168219123377134595520043969673439198129966804941813387","17305161947136959557227438792441824097877787474644072851646298908128104519678"],["26831223580188437524828593565694429081028142900022174928792430673717543894142","329369396354861043818018158233453994768658123683900511558564680982214599630"],["2741965128081316799782762393140219201934562698313697004606082595841315564069","27763080571583837775099822030140585676926133561476889229218327837153186441134"],["10540369650381134833813736308518513207763472445025110404615555494397787492628","28519526366232858764118425463278176311899626260394234824802047149809095883695"],["6477238248653570632892956642357643553243546490130912690995085471127070108502","14742462358620619786290960072122930330237303342175835787273204626282346159564"],["14612706254358818159517033894240743817463445211520320215640255871434001245028","24672419268101982652192592227021701144706983577331228746667098542559938570439"],["1423810120836624642231271432450279771646051388134508815500949281335284329714","2972494595638482528086552706475695516551844699693362965343543770499619238453"],["4360502999777059667624109353630744523587578737282062282394911649821060258147","1479457153025773483875853739443789447631054176888327525362359121245441904093"],["6532046249234513089348782733517940825518423031784230984872469641980267795958","6709384366503955913054875838273645211943216125213129087631451710882543629853"],["23457517150723522690807175347877035629683012930260901087731498493900827913441","16860801640502979460839094770371732220668417964610308449536300414298671615929"],["10985743852695765525008240333270419741388047067435826376311943819661469899041","28199524844116757550553675994297962131467912214575616693356077875825376649278"],["12909660663246784688422565574277235390978998631990013614484201936254403214863","10446265252743328847010899029135988588401473715142011643396849268230551526422"],["8067751729576865144547888104106927592064155935827074443222646700287051329298","294931900277580573074278198842549784852771094501383666839580028419170121921"],["20607902564687996417130809115024041993329545882287168832134748445403242856042","20221469589773079332468269037965119209798423949871725442378095168707231041453"],["17144537146639395017472452572562933048558546457320663179265191561859588184436","11786864634312253360396519047232793778701977479115057237461209087718145375991"],["25416281598985205032837673690767016282096702443308193681510475064844402874295","12350368657408478296805871400449106031076039388600792532781496887610711527317"],["2560358210301898929118880160883904977214947592042264859800854943541053076840","10458984209363246709331421402978200076376617095522457232486212517220603580711"],["12643119588626527619086028492711241851936641677785621437023371545317430700513","8057163972611331791140436948891100774214183549741075017986567297346186104650"],["15826545627492897081432868949657777739477069756153664433928671535259823842606","16488862822005111160588165521939010204911088234803457789702918574106589192866"],["11031777321639860864393213014515434292192340340465120460830060103535126631485","27401588775491769231568901998161181440540277931462593014694403994050826017072"],["7471169843765790937908598945646526824127985547891906372339426493582494978069","19821106621673406175097943719136027030031657297905590187905545911655680609124"],["9041879194802107396185898218079994710083362357946864903000329959424228748346","3042854419988957375745019593707267453289857573044622288537958843604864028843"],["18836001526248656464576357735737480602960894212426643201234150526861368911120","11576839175184429991060373205336274215458592620989529191079134483345259720953"],["20401180228581379926552071173082257763151396983195247292641461125793996098154","14775199557060354437195673488407526926675715926864999988335120815638007140833"],["25589071245042823833764922746470395788101431929113664613157558173585993479319","23350845976160180414772670288417606060401923768006831700596504576854850178353"],["26783886500607152680155372810251620308203484845271744431519955511527185495197","17416461388074884176451037566230354307743741624904999694952992173461347552263"],["19432146419201355585569515555424360394414176679077167710065617965882733674646","25572865691499931191253362996740936966241878117982728216448814839903407256869"],["14938774944921584664011259687433262880089333309210494462300737044981364294107","12691505412568668666996386936961610186821140120057505348815580431199927442990"],["28886540079222908381939183825864321809020509205191218893231549990447450018794","5748630512979514184810342740101545488069778594130697839147604054348824774073"],["10321541346652854483944034367429287197387206259287866912508986701443176511446","4656258089021259834823802353075602435777991185528074430926705987755282124057"],["2277914223460295814987290769293036710927175396358798409590914819929094764308","16450179831341901158155255235017363207601133572138800721417142535861121765403"],["13570638042046219492268468400110714457702925423861859339275236154568955197013","1913694064922295011160949720167039806380875464503204347130614053569067548780"],["22027392928115146627040056269599639987067333783961382805061239202335646796411","2436413949417187376835478202444048980191085193150445625516120445216755457678"],["18401854732151260628814939423141532929763311570393122178468943460219389534976","20280175980366328525110111324179828851743406139506251237626294229366079917028"],["24891747320158371423544569930368841191150150033512703203183345576586234732784","3140585282000298862968704161792208501034463608243476516421048289352101472476"],["1467549256927807300850630464730254823244559511968501301986772963122978514707","20635657593700477601487990896952250365191526351094878886595778166531333381402"],["28917217514820070134362412986381053640914210072908263433973123399256586956551","21385898635614759177544006993590141023990695399019593957041560072182053526399"],["8518885750816932470362490527924441752657044459735431960973437580861834394581","10403444157716952725490325343721662380848317036034423662772602401422897368117"],["24570379184029631527411673224206091306365607488814233354396936030711181796568","12608680785762854800962723767036642784807869131569437181581410592171412823887"],["20655966982977613860844145923106899935253494261193924002753184937449466667339","942615526901753082720787982328308940424062420052605847119759152234916897659"],["24147845118326197659237607376164706519024109319249001632170042262453488533695","27057109035414646478252059120947682385674770978978144358760486628399068001222"],["21441733577106706726782003217733428438363058316781647933179714378463349542192","508313945474491316877286666822382076750188051891836911469244177810182545426"],["25821662497447887008348398734538909464010165873223229589288500918125652418638","11617849651911579018404067155751166140669193837295260730269175523864413341286"],["3212854627736190874517684163202298424175619135569078276546787971452306130548","4279072958707701303999134345847684767407529942257044530212634175444518502755"],["5631972532807175738701535089350579999082928216048493623937650892210043367638","24361896427798056177526366015891705199646942548997310686369935501863747260509"],["22676002822927768312273143086048865341698215274449143834080628839771248068167","2114275404420937612604844179455368718679204908139032871495506110477403093629"],["9616132064881343744666310713701204936631079990455876492165013153864608267795","19676903935163703983619406380383930173348626604033655842067079745291889962111"],["18944842148469759194472497682967501167526040315113900159817980301019932726054","7489744424462859184633053612547293171630208530981754733121148712184051501715"],["8695970357309330765333708160349233572747690498531750926454487130415985707403","14666416159348721348758969875924359807287901937977206404915312962942311916777"],["4213377573261955634304669222976229007847600053660505025828720350719967376850","5824291919541061446178835366019893829384169317676578692570911929639228988500"],["24625771231166076444808818744253995621286282094964947463705684080201424678784","1221582092652210963490515979375903820545732719566651116090156893662605635792"],["20769571111029763415611882344135612348998946250295127714585724295978369033537","17244972044136388345903759028873082991298611541121084768064757780135422544264"],["1286473002790616413134686867494044888518891370539995375611134974677833881727","3063890145034159372747196246921816484872482240950033835562414951891416072805"],["16995554926847336249439668289327788744699555463026241954661447281011782737050","25111260897887686448359921037580666197333265690154593280228083761742866790302"],["7431560875080678322080220858953805728016680618917284610572716937677586983663","19474486360018849165160001745074392743262924775251145831759081843100679981303"],["686461536137602954612349283793821416430532428541407703934258620889882178254","6280460870108244987773667965654433982116770738329807672651713109709314887212"],["13666722226866017686658860054231885138680085186718009113630941326315085584286","24219004975626712216764174558366977012366719059447513493314285400724383687540"],["3283521652729663211355686648965436091598945454845521205443082602946473720507","22687976564260508773945704730077495151728094851612382183335615276669185708500"],["15589835067661833415151054335332122355738446915798092228089673009347189673546","19703959865104367585598586357279284561460986850743317393624979309437225379900"],["18526752465290741253233837170285616299616647241282578684484561155450867857673","17974944804893679384540124328367619146790722160436552014426087859813505385414"],["15921065858404882434294172439261147897755569500634681266048017179475747153396","3838132649851915230324755238288274818868172641409398457819719108246252614134"],["22370821741869157435464074668485708684352229977667195184501778629994727517214","766203077414191436256612652962291446549387589899548072578749041765625244483"],["25151720558616840676650382776317625925039048201407319584403635498402223128578","702155192387474639007544555114845377137818620347505700520409147391996060985"],["1487011382842805055649267717118493960137980846122946689284059566064396703002","9512110848728998577016018081496240055491814390146614730001291107230173769436"],["2895706227228314553616734443229659271904202535819242018560387066458866147599","10234042815131926867450644195567652810600843299547699630068464588384878948973"],["16052576654239125825800589385506053776895026491077550477572692504686595481848","11135463101953070282397235893953327380468479300122118611188699819668103973130"],["6062743700265363212291388271739604114740154871105723586366024088534150676206","983137524412521974459723962866698623539178666651785069366702270652817138677"],["1929606866010577472627810760729593298874444497323908009220320684273435341540","1734275324671453101891658938244687135635188019242855241486130202124574812586"],["14088243245867077814529834728182695618773167223343732649774737779581645350438","18098082343962932186527811889669151403418963777151993885138233073635007943657"],["10644018344702309655531794453547507718242104555418979722344287935934160060836","5144163364928771976248565165629081067493980347490415502495342805989526646177"],["3851677154628352142226149119663918008959119415513509883013730145086114827667","20347738370573152349264877399716864303191750623671190346661406027563823537755"],["10817866838032252720936322618213176710525981992411205622854099372844726016190","17451448684891701621482434912114447976042979713510381039549980930078609755636"],["17114716803631508798371101898966449137421872746309558729448328121983003004257","932083586201587342334179402298353134637682705138428028103287469156364265498"],["6849349865732404478364699029575304146350709735974392484506833147335251191993","25167186582772632218612561124638122165432906860057380444051633847384774479852"],["2610117217264299608688223756342251762730913416832576733924054338329593946534","10112224103232233599249610021305946102462793321667810398588796755271902973976"],["23955149654816358856059619734822518466086467821737196016343035918951768170675","21486687403294824022941721984929109554369070642753235864542604852762927890862"],["20536702958871865423992513774925328574653009546847770473613139139247325277861","25315804321504392492324573936131741413334321867566859907354460810659960035010"],["11508624257955531778043675741076568725832102291667763482283352394414768362113","23734073078468825699439489980743019159546165213145473394994176716907515336156"],["5374519541698758261623222581568844134697123940675983050449889205338863786010","23103391116149481827040042133169007647106824794637172738011232620600628171480"],["4653769167698139020067365148201552831418058825776190409876516699904318423700","940510899990924105124833585413059546322463312408293490366077314934292139903"],["9156379626564482539126770996116361532979713368765540276551861987560708080236","28150231543851657670696581329437835597751949607190342216469019711737395151140"],["11449198641178100820245352143231905552758631872839227541333827782127275234674","11555126323586885917503976553829184286102512007658329506241569680072950756478"],["27536310795025125278287753385461524721059544323862239360195327974657448860140","21282161616235636086526053815410975937154931799170170023008411066316193794320"],["21271368010513051360827942120442615360074598447520965005241287837933892611657","3312566418085469107631858223031231356606592143650604686507023666315510704563"],["25351502426785005648483978744116344943766879716504703258292093543838549264380","1395883564969461923232161212641007391373093292915731479468619067726113839663"],["4534815072275938326237619808432131796700361304388079015429897929931535694141","10276255206011255650819794982320802612341608081502937399104311493064961367417"],["9819137756300634953092355990864350537378815039101871155155837343602888439128","10325753567653554087239780304769376681110153574728701174745358406062195939509"],["5809852942735782930013188015239268516778402453316718540839635212799207471693","7076025436406697286528822598128939406242929277716381297034836367696112090131"],["19084266492048249685675337187348922868151778291372775366908324835043747215406","15336366465078517629844300056912323726900338958673721336177889871537008747430"],["11502122569543680748958324307164484715199955406025729796507750607162967122562","17230775812385288693329060083906080557557938723199820977348988818031584382380"],["13610772227199040115243073852953038011594117749128904578374433649694067271716","23658144519625878434994467124431166064233294291862420608290371894774621754454"],["10754609250152105501480661038691471947112603750967466534828791623290387899029","24290873421231057860921838509286055948159340051682801552414102539667125465976"],["16822065528906712424683367218017449732037408005009675712389397210977999569235","5078861791637408981481179227957180471942777480737575735915187831394122738361"],["774849686818585198607380846106138326524888557058758864544400106019125955193","18629017040148939169646860100291052656433128454315572987481746786992443269445"],["18498491765190922074330254941262508726327282255370657343869764990990895985368","7065979963067339696278493522397042559696375831577349298094937896671873391075"],["6528688876281430166852013250673683673249505880536507034502074132622672911882","24751818238877014340947190205210928069889991187816623577539497034116242378354"],["22336038209098749679477476870898092067730465023674600587446785608309334254551","21159677108472263220917992278544359686755558694358912075730244371412319815612"],["21245785418893841444345478949333917313521532516551460076056079714105029147947","10479998665768988095398841470982979769046508151182533985435569597363248475870"],["23305831047025370777459851170380173422068977117075947060834242223213706029044","24160696312235074119358411684156179256266517429618063154095282405479503337840"],["15878956304665316977091535365974894654642537057782687194747230733590404105177","12241479873899841130401544576457801007909148199456787449258834288577351975912"],["11733109428015694145799372384925692514969412552723976733645285697537163577837","13253600592884763458809078755381976258035480955044812640079403175569946042170"],["20047845486827048831738667456475946170661948943168768544930940526727288927651","27016904284526252268714023300289549081153419623324477353662134328829585515882"],["7382543357148532555215348530135187404348177993069395318941008323142616999392","17205120991926594854320075597759167064665284522465602600838546479084534404634"],["22119715239430274110608077912996392990093762031852560372935231169008479083345","1542809518082174251255996998425193589486909745658374160260020296617584162343"],["2942676043733893585908669496108171878838355469488195601355391856646523485286","22023602146083940784097025763268505827349567331330595812867418987358347715958"],["6277611567062889152002219668601399009815911444590370191334414494196445984529","22082676677993095882068285695217392284650207500926297285828492175148589057648"],["24883253657812271413045757038735159833493997264846829457202286431316766714413","96138209942114436991209512843802820044996949921893242854766250400183386987"],["23138252530302269140843761099444572391662903661093303452548385342230150844775","17978007686800578355405522721981625292231831973137044821834470906058295037839"],["4995465922775425379147255852541781102588566428122673022655733336518102508387","11878071891734996026749587127490443884055030847221876860202977623168272158252"],["6066951911172268558017232144495187507053623228355278032363102250229046557824","2893164754611307420357282421801809026661917757431833235423720730955886289313"],["11249180548075873462919773358902881286188096575146089311122662412269082668682","2045271301647531495319640257432606368006067933934023054088563474474152174694"],["23913498721379100731391734371842039926994273160993025946202571496439550238691","19386139676015567631303546027695295024059148286562249367542880514277387159696"],["14734910709290138390234667305873639491003274128767075477929005815305033769766","26080061555339432740875504566491548756150849298732176718072696457214749357559"],["14771722752091222627324790648629561554991574166510824167158507170272889268319","24846080054249342174727532295380677940275753310562436459897978843034232815121"],["7474794806465234711731592317204810392840387284946787964273878885355071055578","28724916934358053285875313619799063214403621291788652335069934849288687755977"],["3550342605372343500157494745727340442176286010056816885142121813390526758510","23670784287112490453611630542320357595092832858715033692164693672511120619197"],["19805825655067239564676465462492491161378490965178246847176553426394795762515","21808013810749219720254624669922499971923691918338852963324049521104412059536"],["24454662879593647622052029144488136987476138896814176613904398227866615765680","8612732065546293103017635033206878220978473308246468875722448150303619733809"],["10221638352907949797265147754379218798918560939887217430121057731872881635368","6815134037986628234146139241416329060092575344608765335434224881473489687696"],["9405570824080786590962200519573744675827596433272186526644948037896913510968","16905136620431572325334681804554939666960850348269296917384987741325513954245"],["13582755854614124771359632373905674364452693502290157299781237395215126592023","14437771542052862060118822354051852652417736818227518082086960063174481876860"],["20574596953654901881870198383492133720557698021032568365266230271673192723897","13967559635946011209550760960663507361046647071570792774526507655648325833038"],["15749119539533922053046601373605679431917203319245640634236205088038784015940","20657871174069906369271488852512631278601702302412018107536668514120822134086"],["6304413945401321929241816986373116954598993937172178038591874221239407505560","26844088316962859892103266022919417907755060512885059669268469060294219321684"],["20040065180690685908011315563518995955658005836211256038899221345151607715389","3234126179679274807453934649057157538121126717907954751723744500350028028237"],["28040094866097567838886744845427513646175672243143767640665948828526274052706","15467419086257743916843904966903157669796949736593239595227404239008523740932"],["16484594466445386950114069427480448357916429358983131051418890479854033488203","9725330883249737981924833763581418379069045910688937143150623499015272205349"],["14975996539623756473357741975072519737485766544111911483121523339231637652549","13882948102671090324087004315222300208816181440478302567319116289546583510310"],["23623250025128497245584837709876078491942895544522269708937951665811542377610","8282723358227044295077791029975289529420557262423410962381094158418887493299"],["28781444802520583980299785636263812862365309764851401225806146768217371747652","13377732781562693099098916537240789674183354616634000789467779352932967709367"],["12851116004925925630026307916051156333721987924062355281135011393993698264430","25494668103113177292271156452794488570616918114243777182026259974284135909063"],["3470813709601834887335639810779105008958244235684300129651452326215886961513","18451903329666320583086046127398550447721746736158540462043391565107134192795"],["24046627287431740796737979973133880308032694562207189972704643293508495208619","8634373187712384774826584786921451348889800646908286370272170763733141881877"],["8565869990452620142094958161444248734479207957383091208702135211859846753822","27399518927795673881841276898646184709150556980800138691271822136626170124077"],["3768798858223250495212102906707659756814003114857049958670528890006155684654","6584451716430773973743470805220695561753250715798727980472173349656941627175"],["22229904256415735477322609793672111441333450272884944524903440097141655781122","1435195690074288627874305849857699718451431954827512879191418096368672967667"],["8757741539338005912161646603077316646594513503931944009836900788765882419841","20883743791938856948492099615777355878631176093075819795155118855343480284672"],["28897802120711507503713979231259401378231706997098876301097269706122558632866","26961139029854809064614841069625762239608188502430501006600012669617923833753"],["7328046671763843324000946062467200348043301079734914088038434798451223598398","27269736213036596955274585173139951060712712045678523264375793944926356817810"],["17769702813868189565674907260005323583260490853688570511263301775122363622419","19733677072408202713854689612728321587681359795820443953286237427610091275229"],["23445669330705528320151956793702602750627475492377889334043271369250180266319","9049281119162033128410851120725098032711780807499656838516879502788911783386"],["23137408665401996123560775598415434421676365774705808477691194544373049196062","14578566055497262708563311483059462759275888482958998419025801431887434975458"],["17386351662491592139033637545193160650499438047256779247168348369814167225057","27938718050301771669967872209088504900882153566066055199955436030833013062886"],["15693756203941575364664238819928621897392536624349251602910518106231811392889","12687713317976211404734740481587708338219476574298961874051545568506837837356"],["1577339635051948853520651941355433259786928915457640476331094715692774166720","23098681408869035143246441233779971975513772298880600947260108469316371456366"],["6239192235324880964151198122478165643259827665866315759672058302211425709030","6250900552414769806142525181141891917289123750286777308422695376904522096669"],["384600292484065117540644818321450983423666604423834424287528801722565394740","27436934948578292185602947422576492271236500655397393290359686514640618473569"],["20054022858816782146443943659152515865844842069184169429932814249409136499234","2544804025242345789649570312730776540034426971691201727297824587608878620934"],["11110589327892932903377140902117632774462212024075181076660386433224672155732","21274700613683048360531471209412723663981450693254397268521662452750165985929"],["8584599242003030681298447955925804620704570189288411856239977698399468143952","18297740683458012489645925099060831640317794581803059967165462203307098480925"],["7779823237932248728700462358023512839417530510509626526301012741459542747445","25397388326213169942768721221191257626398238053411910797338957362955740975013"],["28685312233170483901128869834141210916686715654274898409623455923623977092115","23240859688896887542360926853939282600364840819858559628406476533348166952704"],["28071645017560572336886869820244320837058626223842184315523704437554993520721","15155172987178384231043988577066658004062491263228884941165566548324297482908"],["17475468004521338267796306971237706968644124906147164425451347378788489835083","18531654270291758895856332159761872376079521691039366216768964247345439354854"],["28615241806123615683297839037500276361673981460111793065599234094825656531561","4175274803095688131563513243601475889667716229713606863589205467089556873472"],["15551522010323606864194966030408464400268690034252031964769796941663378114772","25841799422033082143274697448850613087208737338111849443519974397050256741237"],["15627703216682252500560114825559428661342896174157834829176858355196246992264","5991694109802407441676699111127464192591111372307507485209702995148963527718"],["19254601310043634397905096991727221833422637594504867046462116266035996431966","11230713902899265678860992770593923899063492514538284945155652441139013556499"],["11384659203867239431152164657164456949750489288343093310313112217957362771558","9622072926291839788224373457236366644012652754318226618136381263264239852929"],["6927864097712460806792991786707142693622496577902298583653251380865219179132","25944302017551425996186803227840565010993410910354885359047753599341197497477"],["17511414947185341061889138411130315378491258224257179640003914053256780463090","25051383406012661233776134506925874723192381770902575061239904463370177660775"],["6827083280910768438649992010296335427195817111739966421736303683148261463913","16705216759362036034827535178297920482771569045890643250055826104670511354525"],["7811017721819601198543605425046213328879340830798231553890261386611758805948","16173524306153162879550432817441035175644565751897318799738149797243383872529"],["14281813757873000566068693404628892316172962323378502538201140082106408338109","20451220491448241191001148182366568910667782282795022452999937088446139652623"],["8864363677090440225722378419603946996581884304357303894103772342606245890784","8065760015042745670867232384979710003980109060783998560145690632014368377407"],["19343714933279412773686943023307224634218520717165760776371624358338532784508","20324047694857129973356144280446918076021656722958806534854943040205005085873"],["21581640589159845313320749922270205467655112604494321883615311595768056598965","2855712674295697882774638123540449577571359660374863610111813873760687974779"],["4358921583790228809325274365679343276630573651266266079345378040622438983862","21639197201892796291246217594110459397530833355314639855167090281371200794651"],["23103502674154753619829782187196011788159413589845612992773689666594500255730","2678845419704328709218604839822069614625107567560266221962188879200642348464"],["22291988653590758168759382220582162381737744458541970402883590738623594605208","12808283616258901674547517195440887076605593232915788925515965317787878544494"],["20292690469641345690845834915602412480642504291210791789692503104458194716499","26585306913920382848399026372151727996655722062599321285603598359920485148978"],["24055696804219857195521409437819972478963718452122926684925752894668909663753","27677837741149830065227397979180750342439872530843057294243337352566342226868"],["2567271368493928190943709939616736206302390846743345564401707681032122720305","1417305256774572340113194344561582832862400315294317394614481912298015041837"],["16221153255041334904111609534631768122411443591222367745503861711785624914585","6055243549508468490792560829747609266174503203301892161729548726961374084417"],["10855609558166694852537200190020214185776273239998117467643897454184439394855","2192326286928731367818501657812513188213644681156924744187386891305586504512"],["26985040078058224891977772444398497094230004894231541972873377027948012822489","14479545568032576186619054505961988408657136286063599728979647758203698001785"],["26988822679813753110179618268022114354891355382155922784348798649360752981974","27307639047268988573556147147586572046688873371408526252488278886073745111467"],["9052257923269907647716175461839364148461641749586789631598439294715671710610","10253364710147620058658901151693116386153085432676545387570666268953359717164"],["3770783898116150803969048688589736481738859715887778241692373369691019332398","23214422239038968100427647714117579939105031528902560653070856305425043276903"],["25196278834759832149998071518354016514980189413004701499253252193369023858272","3214495051866642654899755296484893693953963014804104975639709717148146374230"],["17417723195602022405289834881953100641089754139950650807751332253289750739959","21607604014898125017988852700031054613372259619759062326666540414922692289278"],["28159294359305898333889276922787950910599923559949263894214829595232705605556","28400315921555409096284063062017322965938734389230619094839059055188096658567"],["17716068132046329968394259742467006277445453155345594138085387702817284834741","1979875221032433755655207771353352807095005612721391212736717891923157937562"],["18519140123238671037574670470696369836546659308637654527393389150812035531056","13872456534593845260770720227221112139669176518728616184565055141413982171210"],["4403696768244784985983499869888227257810678303349943112721784169955801900553","11166611573848895491798218329093953932503979065900277519715503097978651816687"],["4292179190855173527600646202994665384656385791746273657989464000458079053462","14560711354963278752652359377102648250354111316517239644488276057299355652171"],["27253277382988307558986505272456260532289980375950494993467251591833043676595","9184630722791703532860239677288698131070401575968112742665848101535976621659"],["2230158803320541654259808201404942971159548995794610564214159878349659107511","26459352498636351052238398854636983408587977422505111078922331833954295688319"],["2191857667697100073464391061522594557296272312413028538822347694932275178024","12640577217505740139597927005707141625417598793558426780023276347649618654837"],["27302666766716900070914346094822006245702235366157885933878027231687909890841","14810094845749041135958718611943576076672835199048361425282941749206624007412"],["23269880705464308344917831992549171324042403323079833151191203774973811534615","4404147510867917493292590067293751761195677047698714232733730265823850496490"],["9793505706317469423936887273272526184005955765733621911111980778267438400221","4235815988379258588245825250824892832905044202026768625134395102679841988843"],["13953579015489161988203438054838699759536070924588416281422578115824528797237","21875782800491605641760654440452127419191515168309511331392051651788145534083"],["18977602270945782979827392443169248686316362358801361892382753655071837829722","26271571587605865966548336053758393458370707825029432538098403498187554652996"],["612534578464873313233384373187441867892821306932994617714893522374766992611","20525415708817644551520166734457812019456399038556491362545998587017805845823"],["24985031835798217676197515621149785941157067754553242628452298295981069897378","16465570991763433652463667367069725973486860904406948211304407634389814321449"],["26340732194558564034726027105202540163839329574114772128841332948514057054667","2297500231950385911913451919917780348014575472646773773764087810492163994460"],["2531848894137776179884101975030255795592723935928229979943772691447880741495","7168935225760465988781933275620822452527511508244083593305525831429427367395"],["16364139652953172088963264222582319800938081248826479471932058131278966289834","23764033896042221792619635615997616504694309029184503572994813910550362147234"],["8164880519808715150800680852262573089741269667786054765390375326154556235040","26308507833212030465303781572321023176650520491081464856009306010717116709620"],["9927110534421913100004151646424595000842999097402654861070720875408653020222","9072184834091570595305068364245081049042898964120735239896109831546397182091"],["6585920782183755195021800856459701623810085255218343948335393642967196641725","839673672500198662824302760198043894685180977715586314346109221496947300200"],["9414731762972586617029136635151693088342177913236954465444167833034484204906","5718605063329732558064441024911963785416384403517199132518945957824837518282"],["20348221114631824645483698125389269991561811325125453586199121222581958731821","3998659101988986716114514442245906785816635759394141278764676428593384404742"],["24043955578343939771720972852202449171888287088614023300618319209169804521208","19714915352560713582039178612305222057913370936535450192910202241716996350726"],["21539406234789051765640768333430769631620344730776469583524129906045051713507","7270770400903548032049747978681641064971281510650304268713334333502669594037"],["7100823974957363663094656361172815568489537738851949667446092273317318461970","13974766770794843031855295420896050960075157683184094313805061172671585340458"],["5571728503609450343033048900819544234191951417831102914212823599113694382737","23599299684407844641563886391399531284817649638970119769757008249766024232370"],["24084143726977689162695108073270626550371507219135551849119889327629219659902","13606070928667141514758778230542361428515416843647803525655341278018580743977"],["6713098127318977693267817463348702284198206290371356491805426497118468225429","25711867791130080630404809096761017547431271981253968378340502016732779085095"],["3351197186287393441237720510821523990546193752129795317480367476352131954477","8098338013435473172895606853737368140503000522340284589202972564548416593190"],["17028172787651501286415715633544475377833301745908945132986247857305979550387","8568020612877711404223959206922283611104743239811163680017257227910290718108"],["10451486161384934633274161458731108140665721982051534594655272094379924536097","9223475059274838002802027270648517934205742596886102610109729221333106305011"],["25303186936961630354971183190619874960981004989343670099542207580621435360851","27151659315155471440455361766078289828378548009406682570640123250026666664929"],["3724690662726564872964195831497579308150435381871923348402917729894366210738","6284651311701687659002322395608639934993615642305881516432519231131182542139"],["6339538086077266520755313206972392209880630347606063666635018910098809288181","13147543579943607194386582015489979348123775422230324678266823897250021892456"],["3425979510146814305275931478672587819059440733657215891283555911328565354294","24780022235061425512248539350452757469396373098268258939010937222571869087460"],["23373900004015515392849273595059237290871478987006445990606442106084987887919","7777448780324837454038892498449617092539357640315165765388979358738744850987"],["5333810116427589589220890976743901340644309980550174458750418429057239188519","19596931677548521074814747450160518519068150711059157708621601890241134803934"],["14105613137230024711338042961029949478672408086891053231447226696471062370057","15755967972147488221432327751839366324649278258060216732455687003864002232029"],["13772846433611253565458669059575891603715786174846904867182320979172083804982","13639744206967671331936760301832331386620340366550942793154178582004804986744"],["11898321106352332066453525586120495619774464650660868750078394820347937135638","1346868195671881049870624688271854552625752801806502637489149387402165113908"],["27379398994991717027685417236109878154510641193385393514831453455386697907515","6340050663815083517192626530798980048209862250116663234068088148366018889240"],["10259157300806003218686583017535256622018401838408065208090532459616860796246","373334461935923343622427130352931863022002672326009336554266371921096549965"],["15108807636396598077590448374169159463195661199259910805638745423811607595484","21024133753438277552072059987819570074888298798061860784963124190876220849499"],["20883233424223634337406727937009337918016947792988644494416008758082302045737","24113922680751412701580468029120547902466727900747379399832741359678805498045"],["28026455765661336169889032459121281968313401890681932010171024327152222036856","1934893585644649975905382582645549762967274327898314673080145103758467546181"],["20016046834570833301534426942437458515083821232096958492496292592491774238801","24258138865300210381466987350966955898715144425981531760295838238345548693291"],["16088017249503378926096878392868262871238302756120483726747167738503254877444","1610518196840516144957572223016451837243764411526732902852934669939832470997"],["7882336340247860917319088887311411830918982004721621136723242617143098428896","24110136380356069154183476626968386379166368995370430867478364759925416807306"],["7326006079196949815089962043101268742614379767954357278368960794649757829060","3561585364961351930304643859200203315494744850228132400561546675468630581128"],["24312108767604431758638364146378570521063910384153828009363533237298054035927","19270816530764495217199735150833876806568999249229417636696597660160180190488"],["25466350921970112811929986786120919712549022521998635100516354568663649054640","1881559126172887739668697835251855077211417509092730800932189409364562854982"],["3027687965693465304845959807233954804798843636302210122418055325107048948544","20726527692229915449118615550803183166746455746896285316538052595122697029717"],["19968111091878816603774745444098107414133319591245570091521862113295180658901","21193688434564676727798226743835382520893249277608465463905083847598099919616"],["8856866630903825253617122110171432924003490854483640685842576945784523346846","19634724383963403104560017118342920671775581238942490309907282075411718973774"],["14036540211517212286218470404867424463796560617049399048433038538937980187503","26488218582856033813589158584579350479469494560163444483450965511678161836397"],["16473206421480309800868928505876625212567136858753037406678905310209809138894","5536002251761981249982566592369186748330916140708888261488752600178963257943"],["8190415364820988252307526978812224497119675481746137917076479249432617840750","19864245927579726116918719450295666654027664741337796739398719712707123334005"],["27737552341421594695000073288013080624503815132542343553508832096545132316653","7845157086041492137451012380963677176470890361532208398102939213278882279630"],["14564008326548115676292939677027912406326419642828666645892281218482221052447","14542686314824624558346356449442209785426276090049565649408220559504614004438"],["19459383011007677390874908246051954712798863457151473362871493242088257585418","7947211306474058465887520868038877696830219783319698738185342081730919064975"],["11638769223172889775608171162559210180533541609121243892584498833604215537420","23745615740653385614317957745491364148929425067091911981673376777421087761913"],["23080936086100144158701754259881545668054167512734968499792675539661001317571","7412320819827585969008021928067314822160272788003900950887086614471336063527"],["25262736988722659703889291603038296535942080957485148720187676933011169441540","5861668604999991797641893964573359505739847584414945372767734280840614885105"],["640787921101280630448261372946030068366490235002221627091019799573151686221","9737186080831242723069091352601577203501639136332401800588707572215649417413"],["16434136442116156161015549046211379519489382679676272804708538431649151005097","10534135149859879408621370389184698878011920171729664099270521891987693262058"],["15623829637116949453322250763729236469459186409049133594674548787968727837031","15245702948352294147867580996222599928079821767644415464664384813007315110108"],["25280918142115708111352749692719678692886492547767718303407640705938552217143","10386143096074974665272164478501381058521501734762027544151558801971462797917"],["23924403096806894402463478309350433405121409951789961885324563827445691174305","13437413071105741896895048417754518577267503792495793965065385198922847990058"],["22890344677417962839339014994951391100868628876368434138155172772680066465345","20190403721101304368882868421625325760129558640609946453134339615806838834365"],["12440810927663991115643851629188558114931848262793492394598537339668935976319","12816877020550376770032925298844545889824368813102668675797922229155098777628"],["28141252088942323196922366262941103076373130148949942271803177089484178648104","14038650742046983188882065529557197608319065948022977456667464539579518441487"],["8984650785740455392529825962667495510656481289529426987080029869308019225053","25074360682897037833861951298624719888024016111814113148449451689659221987866"],["24561272536809303491833161992089179066631108525711625606102832458728567908970","5999819342569162818584846455329453483076517899297937574027994879196133489448"],["18178995700912014272208200064313509329673344422499992486595973446492643668189","16434515113698239117423347730124884876132723885939608360235224717288069768627"],["9573376379700360425063625191752344473782510769326382998042767097939583579538","9703484892744210692135043470725631355834026570927334096448964437194346871200"],["6137297308731780536329945288382503193991156725614946590951286150929915555936","7963726814454341778104778013924382094179226806309963026214874558823173169454"],["13912525732564557476832573872933527607600482473740715400681347633774147831816","10786850318427695935587567936236242853822322134366591433191391694248508598054"],["19566953161464336676047668461278434651697205850676392388819271441070310032084","25036817315316270695099106529068562631272535874771208005805405814041229226352"],["20288881089601860390153762442068151142084234838055299997236322405112006411586","3573546689797501566073716514216271880577772746582233479176060080116031170977"],["4649168288709339931844635060542373292496518403920782841088748216006309199515","1195709654780478164466162400372525701304415826296893276832892699103052889646"],["28358583749353916402315115644065869513835838287014460874157625452013879496864","17439303608204228039890151646804084592864548806418909098200957575589024921869"],["26743979430427878945115821265892189583480761555633578726674471842177663003233","22185137962377657405469469835264618010806422170303925968528302536209110237232"],["16829851633899340423121956743366376117203447615534500714970411308007246915237","6311819812958679649655998956283754819792695457356131697551288864506249544526"],["28437829417596514647645141312476875740706612366903057969477061979131130237631","15116133342928678980830066010073569305434616089676222651983191498554894924270"],["5330395474946966816736966585132309218836253161465685624367232759157820532584","11234815692897728815705530947605832673473967418745347561947567038239148259150"],["15794770768536149091257147257242808443490403073819400667154593524119319432552","9862991931888501058998431553838042949414806832679777550710956829083681182118"],["16251813730806034772491881247490794265655317439038011179154315342295008707482","22970259178919840705507094292591048069210657008915357792863121844669203231900"],["1543463299451066125900739740649955736127307626230629816225316321263839314421","11974345989940577631288334172461981281259072965161621736570140404568427632039"],["7882998791263936022723251845015962539522433547329652079321359085785215550307","21949627812217004498572001343330857408232049881107035903569087766844906223961"],["15473243484634411977400810693306827788563851089914694257381477999197920629692","24982693312107044102307554801862207166180209275973211291566015550211672344417"],["12130880213151966028492847553014066057961800687662507114092004856231205255908","17792019278513316101468532393982834268593276355372019772292288154248021667420"],["18175928902097732451116954555456130560782000868899770154805999047318804027814","19013152430689953363832224350244183668907325415927649792306047041133017737754"],["28091779854016273781498847128021842450176043926325511078803532616642018536155","17669572033609729980293235223619102745631703465977941967814174637950230040238"],["14403370828060762647910778871049456416714496097601882686290637705167850979519","9435920047872192601144541732023152057567172405101435224714403096599176301323"],["7198375359250063937057495972533554064942150105269791730432650443038527641365","6624649879141611677943444621627271520547141387601725028622539118786667952302"],["16173523424502194345212811257520910288584519194575042568389562199608832596212","13621356179451325437400122970580085194754210988879261479027891142070172726301"],["22474798175461077402085250943139037524389918598172981716793794732442891758122","8190468549832337590437102092216712905751498712848930104190399687367489355887"],["11799368677458354853910823176740139632750062159721134749359539094903219145316","13765533490638271504652869896837233171784237832605405459110535760439426053845"],["6542411898601065766157241239825268963360211015594634373628438625915659070553","28769007899479709407089321099048791652888115824744539447707883155931587711226"],["7211680101307522173846564277258222874495734122523038281520712685421521691711","15582465166437342231204829190972445683848025508159137070361496464517220031149"],["4804514162471415867851373860279844470940023755482056021973615080942157149139","975620089552350046105618113550356878738525344307617781534784865576665660893"],["14883053014929683343198989175696362464808449623994557326917038285227239979240","2985870033196121497579020214993627945730293118374691618017952131728338315506"],["7096123078172210893230749525184229666610321108639650643636331130178123557198","19381142003412154707527549898859240588050405544718361049216472570790411242758"],["12373504341840773113427864529949611931231487067083439648052378927242327725344","10521200889762199265938254782935374519038844980926124769651430017730980533521"],["15833322432085028156082978530346620609933905631563071756833768616207291508206","28384605310430732468650760993386815642274305415139361595574479103333790306665"],["12922973103303607020248901815615304421530322881074954525397744081956830805611","25197345453020649477484763750280505303128651142674190803104983780688885479453"],["20997918339082831686106318746122357767006087671102777341135962677601467118998","18605271956453273009779218576171763103053396107819662984806973122527675777590"],["5160245997025053237001547984603699601001105611561951148498241925764569428179","15768998570495263512189281358692772266870198759751058444293319309697040810751"],["6270658844731216685140473630054242535676704538477433828813404058006221859342","25712459657942007903888770673303293841563699273944343284052741687694373761551"],["8348813389111126250060649294092238231223965100166254876731568010325511982798","4642457441627190122205934301161888473081002165566479237639626594493726761543"],["26382057698715061766698893936370253266949675957825683298991461122276623472420","27262000635505371178253871208341812222604994030296896611443581648881869668700"],["6700082827665371113636563005365910802692420092513594213352117501849446743147","14054859786819018428929517696324198286840537999074745144724699864324904123439"],["26017090775057222227889209168516870586040872877023315656712254905792582419491","6681807693889077315403968461779334483413729644122525989200162082619299402206"],["20957007202557413174720720313437537692569104474954654286752792157130607258282","20266206142569948272641884032759829466957690146448748752374808774116868952154"],["27429466169595365865591880849340284117485612413541805073680112577085040219009","11845372435014036801022248988355859005912042094597792645392760278974726731878"],["28432379852921563038417997858563399972147909930348314593394070171553170075910","14113931678377759163026264318012177114930274019377244695677838476978558944029"],["28605044222064620249557228941155767508911606018127356877124972879080242155739","19151461031049562459953948638741491691804510826689950838579799053338345506295"],["16385676518726986625791943130003977813477029786768740693796804355978773713886","18746356425723908435290884585319016931018264029622141881242804001195452825197"],["25306532102813624210920921180967549647234029542564332131591181877619900366648","13519567341849164870071042455277717971720248922739838859508789506087230093473"],["9580881805478866824790790071144892141665519284074784414173130003994289245371","28759668821267541802204008916178609496514113566739623137075321164376360029832"],["25747910230125894477136735671352465389025195275945289804659779086985483105739","9571239603481598977018093218629046081804741937775723508381277421573620362032"],["13494047220739662673246587699325364667488668662926413322381374120232109927299","25870509119183174295983841806893325790076039652221175797240081852990207801588"],["901240803637695074215204628248576769787108846091238425073851920007848378696","4719057293054817489780348766615933229917288264820584471331120000278615771479"],["17878382155107876050513006523207441627041287027394969885096377218680264388650","4427769857653433426909031237979826472045746206963633655064054187272828537373"],["26663305986364223418096195507306229726117070029447933619370917977433046381060","209931275388093728719174854579259026167200910955741161251788897956249754225"],["8559896032415944396333591552407569252938127538098215460956178370071890955184","21461301807143467193226550589706643379294923167781263970428254854037742788648"],["2315278121968226161224103356783412491253703471475485145768430965632073447681","5741079727608021422604344212871280415837657278020466802343054251560599426680"],["16954102722112055402171803720904755289677405274537638327519960539607493365484","18734493237491856738999635565657809486702657222849212117311670627446867429089"],["22737842170351569778766132991684239155508993024233378042599404011836090133855","22352357388036754215148108016549089238575612933891330906483690991739522372276"],["13143348253727787516951225825514574416810919856931635038993493416619827065475","3605312686179190586820883449593275071484506131283478310884967174472483360061"],["5991145248123328239125595594468540352836358921670439451162394029215998848830","10861201769979715393309030225074586521444564043166920070118654119109469055882"],["2402539602591971656204793939299966580766738521175617289607942527865782354935","12895060758991118980599214468850384864678847624900882388683826247571458908528"],["22577906810208144628642888885903365332058764327327599342177964572109848159528","28192857742983051916115572738018377384736263789039015850105795721643162676433"],["7946269999091961722723646961802431618070922759506833817141909227066126966151","8329374707720818833083459206580770962873340272840135315754831272287902139327"],["13470961505691375879223183472777758288628866026224939522519330731550835279916","8299108885465574159882565597606723475325046179230268534263000232821521848580"],["1506436881240591135519579202533400837343624586740104268669971948410341432584","13021058022816033132442268609474426368269277598480409548043350615543181381782"],["13566260808852935745346554120595716596497481179619118720226082487260043573056","13014217882134571572147944878271363272043327651945343062790762370161980242249"],["27656293078811421253211328065450734817756090949436739214621549386800374812762","23144764748586731310628391849671544835160276173006500393693990226757836732413"],["842323156469651991658234542219796395695443004017096646204724528128377192981","4517463016847031384143263048719852875874845670111087860750410539806919944171"],["19024699126529759842357164647166369604958813706959842708543921853868850706051","19728515444848644307826337466906088346462205766152172643458091366920358329743"],["28667749609465001932483252675003891869864366571391545510081173232789123191458","2191611524423710300092724492054880042181681925853949050476220470814758440926"],["22338495705585434051736849913466123204755160730121663828447606019930173344307","21139384254210908806254746866587453681566124825460241836552474728195959741698"],["25050906036294648040804322353697712004900892157726326131759063187273035355391","16900061504226852943500416187216390736942639239232539314660104442967558371343"],["12140499299352612590455530942858594479323283319954341752076555550476145820574","17813983161111918652482280341865167461829401413404945641557047863536054335609"],["6523993906586525297912515123929799994043067573978821314785648741033890088071","2989299234960114196384003731919896715735214197144161478101618216516379489139"],["15408300124029051206238463898839530780518761152104742654172798690959231531275","19597598791333397339972021539702184108890569146697768516175948561479842898747"],["16119919913167426030743473565635645477091735585842991970775767144903689609350","23638360193561323951508237733662405646434310125901592759871397908525362552257"],["16992069441608638816205074804751850605509227032003082289995356718162867769036","540708838444213610459681552718265390429160885807349811265713252020184250875"],["17432523431620587991204798752099652673068532958135054754064625268333100569694","5188009342149360108483833594557009833562536887915655708594543583416839309027"],["18655002100773436538955948457258112921893048129579462589565376977873565067898","18380640307913787184677147041465544751013441701114325457880605143888026350815"],["24274382582755758850495203252240470888326180321152846429702601037762642524681","466509715332869229897037526282370386796095636570267387234019928268023903284"],["28408316567397374455736120232985907196120740346858657155823181103468342422097","16749241292064827162089584775255145953832656160328853928089001963646011065865"],["15537060123352931851793360814980403346809571374374943024435689755851544619654","8151967335148654362556827268667259094394857838791656003432460238707528585918"],["25972054141036797444742261766131791850674007568015217960460261991706746502115","9287395379556913862684180804304700742564219453403079531786124615743286263579"],["10656502815687588338500747567397767634885566132640584982478486686523818097261","19467909542092490868883554207293256410523460155919325735124177781369291294267"],["9238458324173707747483787458595501107775576073971860549237812120500350599055","16256579876030857403451044995378788275171812107344026080366857361677718571943"],["6662584167514834772554624295349134166940712426480766096280561118518611776562","26786645808736455836834249536160781836902880234654306823075159537485862910289"],["1510682795724907465023326670836677286434393032907463136994706465324694338041","28111046456624693274608081074041434732102880395577606150904140681892181710206"],["23241896233890330513190879583898846890234579766963931313391100151967162829258","11892285395594734095182941751737819089565191059141812860424196445979180657930"],["6593796479111299053475653600232419477951822131391119681221755363885070346543","14843761835475743588541114927443900486793430884020317138471616147198690647015"],["22572995181271083478342704930271545648568122820187683235967632465186053600837","15282741211096350263603048716620091470460967791603116183552119916951135349540"],["12366825896083297185139387676578026457245392579321903817391333786137347047744","4233823792563578571062476751963477708695241885849191369692358856502727810389"],["8993448826281416589008310092907427825160245486268687586603224045661555190407","26148725927671725639258795114129699579082374071380383858540254894640986698997"],["25321566610092931285135973030467856941488953334310719832424134313722470418201","9093992693084745761101079371537294335575914193901913287138263500393724291313"],["17602519579381898462114675896899720427034709863695425102378639126231247384604","16165713909479556542980973450269369420305270215161932846577721940989254644447"],["25327259892417709662985474637977885132369864371913647328246095593574403077960","5700445693790910028089076509570954912170542530908920901716222094087391403735"],["13359709127468069522621963226349044450969363685490548806392577721991398422895","11272433489025544996573018178151689807196194240992490928271479422522342816"],["14659838000182758438311608011972875970541348325780617106966181834898776658906","23182870519198687461682207335243940969297187632200360901380283375144146366325"],["22223968060565501299422060262390254366079261816869504968435222107864780107127","8450167659438595012466026837328250954522661829880868301577202408021002092222"],["5918278615349922926302541369676972091069180882916212275529024589846827161121","12041052731900590670016621560782255894148014245045584916571607410413384334371"],["24443474024256295983208195348884280524108605179224237378366096616321791791404","10865815334680606821411136426980571924482955900858988378978621083950536306182"],["10032836762929380934743458483490071586278527891251962261187595157484032666832","1183243793341994018238937095777511657469443665571764532485790497682297415697"],["15094326958037841469544005294362487682753603109368695349136609397112333389048","17181786231937214437267072185001443213648419696723386374511820947106413403465"],["7782427079395087537787379046298620527912034008939273368268551161051476700960","7269026788816413974065543188236073661934098755140714813982984159515631004268"],["9537871718044542397815098826490429134697675703494595309787730497927939003476","2477278907067802727882211772255612551489190795725674621091021313136689015116"],["10684746168427515677162069360953923875987778878244010402073275800818394895341","15951667580040503878698940177576001321579359380702043248415293175253044561457"],["27769346952803565738877042471767021891909543769967761937280065809072613565502","12180077952462103843887629366807050453125950974286094348541575718265121110715"],["20186015735416648631959834646985542386209392582220027434482766635406918262300","6734203175827316760417104299047668029336049423420480229487816403040347455335"],["5760886095369611193036141766829607356319798677305417263843254232341973731380","22442116295020320329474690627653003846706436921537889187355596131414553012015"],["8213491266221765522297090908947577956090837243903663040534274514453673305177","26082895024383486789968322373860205832444277134461099367043591131585229050133"],["8976182836508517541349122109684162886421658203974239359657588566527265176160","16511724477800122166385246975989214904282099810892112370860632346966314338025"],["6753547326450942389788452217607594162900694568897197368042398155106843787534","14976760756574259071369535287799050585301788053870879500061006609789912639192"],["20800496702904106669888633649835704907003598544244949479354567449172017604899","14805873371309258322982809073972878651599831723899334917211649249192934062985"],["14774587251870632739642431911976790457540658500373324227314692291965146196186","21800808099248171292724577946431269506059095891606910334306552535574938979191"],["13583227425061949556877769656370952444098936209291283766768991884058199511980","829474468110860795393293585249393043772469507974768609652762845937754311191"],["16710459768882676235465662161096774786486586650465700842382681827093684685109","21064009248434773888937147603231904992598190079469839770742912099782202683927"],["19733887334001365338111473154198382508434674175340760298683243119088035808621","15453198604612017688446976601688275140633463373685152522523130759485489136374"],["28100840164774327970967762242055350565876020764499068806470031052305553022023","804492971027018336621726306208122085683925260340557202208820576857297778432"],["6603601975197461364428652941583698400894698136960893459255756782985052993859","20394463029559655721157591399040040172227198361052847599436686052398354268593"],["2957343939427001940178445565081615763795229824617216753565550070163962905432","828980269635505476332976838862853597016924967346969010674693330825089751146"],["5862628977444302903915354294655359638209444139948377465654072149486598847803","26266686099221273227960621843726180979688797027612898893190799523778674249524"],["19310694898313798610853348489580776425174396051153468947562691565224422130738","14059024841516562294096636827810557770180228957335524201497376529723472546027"],["19300637981169507698207808724459678894787770935416034741533516540508738703078","9874271763078344072675724557350336811951099312698203378797871359829054758843"],["11575475612456306417590049348160685542592845265504790015250496338020584329441","21195436828578589174122934526250338533414451618128275313963249487459176784360"],["3127949573056915149638784558846508958270877331121299209281863196647510822329","2319948364105387558836610765806468325736493313651778876031234232113949579636"],["4198680761968991622674508730081772406075981889702225248577450963216279773251","460674373280187526803577898692384445148574334726982417056558311856843683409"],["3974347723693520765321412361921357978528780828292214624067261016044548512276","23196850149546957265474133994661181500704223779064845267594870271662908860562"],["7382581763939031275100234790423886062135248268429828667705351661352312015869","25981682284713073850746773592096195679971031456194082706341595038020122475826"],["4061844647110377526998907328916339239041960139958892722394841777810616967338","13382493496631911257694750159850900217557858717333067815183104287170040846166"],["12465509499799010281515625708899424037641760990739334707962022214755340018974","13461858742708130028156654757811950660627612919062773482399583867598076761849"],["24178425853244547584890715985265992635030688604039977272061869688270195476810","7987626469222744589161168967787518840084571112854234916935653907158222793493"],["23510572391081251451569002858570993062370649548870314234013217607291983120577","3222599503092625348514163666035740537361247568831599838457219392342943363766"],["25698287872737579528993473279082160360150050629866339143457349971115983701073","16337799310302428606042456222967321223912912030146111239774541502517065348380"],["14862132947113328562483241695089830553229885325836464519995952562738320574782","16052915366545871682956593770332431024883149842462867987115761962492886542402"],["3004309124646767827315288409366269893155767396610365646179285281223782660096","19313133459350216015284105413143454728981614077686060259909702359384489895266"],["11995384804963151746506785272236611245433568050309044652747534560715151075801","9798934803302555969708405230266942923368702504692619638571885478825766326432"],["24782862841578606936121783512488523471023203385739757652478032082813881709870","14013125408289548185902560982349599815960835490521341589973313585982604914434"],["11716990293826782242672737942144236829187482309321148719397196351511479682350","24361263342541624157221222764521631405106055300132265170442966970656457916839"],["28411469985529655396578603840171116208961732331365868725053614252499795618776","24482140332790057178419234641288134735328346322407279706873746976609200612378"],["9486460238631037145911241563822289846129728567191766572216539507960105536865","9939726231779774222636996083925002080762747681688010898171154905047081756702"],["10922996750471053443637422384203212467851442865860683635746596358076499698916","25787208904303334658147003856191937265101116396445681314064503037453776906180"],["13300499171058341173431097673946388611466988932500544826478977694689512049643","2000392310115841562729443783898088969347796811362339749060914105829965230548"],["25282415264171411418058186718198433861207750687021569745285620887717089860598","24684089601251154827244436302779548678606860877840936440736944829442339459593"],["12075240314667381432758314469579417258071930929757423429771608851130574835692","10205814372781553395199310667324763138304191188487110073678712076024652560851"],["24325529119770993301831924254247591438962178916741054745103551147749176737028","23991085108580418170024898600395536569727480945993231453768952493790307353644"],["18199130757494540410323644701708274919084228232106851838060117662738606682413","5735262117368384649560099526916894529782674044500119527547732793150311782686"],["23897115737070910430077082576261244571159714927219682922843514328469597569941","15564291320010603532496394421328731231784767265638208905398339652015006234028"],["21712413352865413101393805024066849240843732478074359091871658628893058799876","12356069484810936640209596124500265388566572058949631245244450721912402010752"],["21125398410551873934696343897303138444609235929839542701916108846085076674193","19370623795997582403946156154545910230023849570652043050693992831300682390471"],["17260882152159294903059307045432795165350199486783814042062349125425914837970","20857301473769223402221014097044213376467125689816862490791533724152546693264"],["28932411145639752318392333415939667704157214519355497582046924450357733164366","17378964162058608598887278751673307782906018138967227858771484534306619131129"],["13222130754476183057170084596308412547787581219673079196104385358270569213637","24797726289925615514518461111871913512469568584977015599066332634520099743867"],["489437783137887042893612570429827764523187901428584155685162724456551867568","18999236394984407882441244100452280178444865335605169522099177137272753431219"],["23099235102415462773931713372550507036002380572917318466804471229289731257898","20996058203969000194858907566026251898609976854562898030098968579844627197934"],["16205997068213364763316781262194058511779725407517537486846129386783831020602","11057609395315049095876778538655832247909514274920476482249721188812201985961"],["23472201438605251862146902364327178503165344422683363958106684605102643091898","5145842782187161329936697144129186441599129782988112239260150966224075558237"],["18904904557613227189392555805207937731112121282173521991479760097866671251079","23091791945239678284132981724263047753332280539828025749736974667220867408512"],["26087397844182578833856629816149139454824145685046985970581959970919991839252","25574450014285353875145807751962172497634330083120347996041766881036970310520"],["3610555524007709333759837008990025814930139711498454962686064927633489132347","6210202332708547142793357520344679943413994368777197430725796444867413713727"],["6290219339374481513003714636850512151371186679787378450566200182431654341362","15465572134827439453250645454066812788834874972450559532538016765162591233684"],["18253589172933922615814465628693835506938422053383539533559602053824372397961","28531113625758206120588955859508326473811853950293451066008036657982227343826"],["20776951647972295190672689996247738382988428698797665949208743260001704412178","27852062056222444567739324548886711142145509795705130396042088176871926124504"],["12727715242570476657783728301520939570425576074751237633270866585657720134598","5820844503685750459112310473272211854199321492315785025932596141838841377056"],["10701369109706432094903556409557023701522052492672889159309497949890973989768","6207789735321127504220393311700776413887127413148014726350450491254062231981"],["1762776246840031645946908399258256070271389993341930586412263231800516213987","15941932901193081027455547885598263692461310565691179241959907639715806899631"],["3744561644319185975984287609368877706450579294225330710275170139418471719488","19597065280017136088222685615622725294022552669066986158994085391518279505245"],["18381855030555148365795435302978836191315969516724295476332645178390586328161","12397758282985625575569108925850075848959220409584259784488682977082342664959"],["12014614832634159594748005759498239877817970446324527935324321576829832552456","28301580018625666845366296130150820150632120408796874344205972546587150987933"],["28921755263149839177697824735338520666823604906220893406079137823358378208505","13645332338155390964629291809312726921394399712735806292334327337847371571267"],["28244519460058970490527112413992491207273314030729957556123341140026735408706","25016174461477102217889052711599938376045159786011147614264133777562581087204"],["24128578080684769160115622275250242064772994529166943578257783386348376407879","27612448115685512435137134042784350955108558773946776148483926067623195734647"],["17157179199125197927714858834351447648076371979104217122985202383792878435307","1998461097983545975806175304415956869975136789382271446292663167288694018992"],["13885485256653934948096756431168021276121109030250172979112319826971973630847","27990284245417226241679608905711527398279196783231354186843601650355013847251"],["6907755426264910424826526674938093744093602875023526849422626066034226384112","11054310025003028440839409522584036394494384502945453336080827592662125558400"],["9190689124845012057368219921375325201441128009465745275944821757177712277480","7545079076207663981123182205174581384285585858447758329040572762608682020141"],["11528422426499039422204458607383411634781802655334470406997137578810545497073","3359363734930909884021896599975319305311743346276892783417033942612073964120"],["6396605918532389536249667559411529572461775295126592770779524253681394502007","17622262416440737853512866412653403683828478891365750041149782276507083044236"],["1461308016399584574062775709366320277602277131289756770812175195958201386513","28369228854175220713529262449869746103069789078922369492001461136480861537821"],["23354796549206183885352644087185108538461237415973248200284549371540786626874","11010360684030564651611992651158523147695320474881612091979199669714945147560"],["5065511314982388547359300035448674720329668756160351261215787924365086813895","2229534947056998525326861191344930775635996310799931653762821534282118052446"],["17266483343541609046140684133148884560367447938128158622682356056404326356337","19716280210548923193923473216585983749881154561951503169606202020447041456650"],["26371496332201045599750588964250788106026689277046547279623043809388134290514","22319377844019277668740500092701244856637083729792121480531693916861705524066"],["8716188713649252617319743221576786483586060639066443542887752647465371656890","4759526672456092384021060173222430073556885462125023837820809431914953653673"],["16603719627851638764573330459317261180415304169086556620975845294761640931842","1506647249286888426740955803593696768095905085413865508572020479767411105894"],["22716524422069680373977547270183448133599805059630961656472261531769114125690","21397458092160502275513482580906259796870969125435085506098232157269891660038"],["967790688178819640569694824341527362657438531998397396718262475393203260121","13285341112231340191678988405938906858907342632767612024214670472325527503437"],["25202068064815016352582889369172197328529038498243918003589803625910465242872","16852732451097063456359925736050350419902458556801032863109208007596496407209"],["25830835296086318405583898041339788042668086662369867150042131624625025866568","26325623018520393737714558055484009761065487286433094592658049801045327708880"],["14863746520823760182546720656434277986659223360251990343233884504851443494198","21510274870196451976259541888268568835569624605662498862665839675765673059724"],["17209366733716919884753252919256763529265032137408420608831594311506672553772","6099468770936786215998051893270657166886407496265224051196524841596604500561"],["13480941639656221218597519799755531824907884460805301973922672048454015800310","10386183626547374873859033425862220988351516470540879181611621293286026149281"],["18241099095111573228731323548099336459484916243211288342976117244658072414018","6446964991767763679713026105985752114770353586355851069594169178871681724559"],["26293822317438995916261290000426458113948713614251730058919227305731743797161","28943833543474500710943674646431771534114740012801401812416035744503409501068"],["26041041938999166747897496714951561053011313551532961071683335839210182734394","12581654025684769704864392095179535322292126411941355804993433477429611031048"],["13959826259763175930415497321500269008364535505131847047796271270765776968080","27849600255940250883134221567356064411374742793686812561920169655376624138631"],["26111326081244329752165940639555610146723726338339591546421023481770415094308","22816230258928289916456287018465207262468270337999776352941991356685159878292"],["12323054789603320962982856358979581661228690466620171004374123743192970235024","13944902190002120865745693006557081229477841005575179164244836982233086328211"],["1065898766096233653481565445022780666354413528246790940611115842911097701767","9938122807119615993371852432733430345577881866651548529260455357572905899009"],["24484555164041067348771875181132772803879523040839203150039091779200512785625","22922300448580897768514314429140809181325420590419469879061966196834684865171"],["3536049610512109838980286469570226823482639652534022695739489658457929993130","10351973135349147810899883571448350231361806895036539342493821419491071455636"],["5014615767236101218586747511704958691003831484846741974848449052741383325070","25936099274933298785368941606536712139819615351434161390126020725286867604132"],["24610763867541937155062811061461306644260955240753925187303134208047649986677","3536944830394630392054542630579154673367298137505564893678089565530738234888"],["15172424744267867188487797469973959555806942033329288001418424890805066072252","17969929868331517733211936111624870961772493377649665300525824390163056066013"],["25127728206590643165234595494605561820310532172023998343454519094046837423321","19342044514320021512095251841125784191110159473165388372941012318291690336561"],["14536723823702543659837248292575088425041529550418128812521226144916263035055","25422422116133791303786218890660424506410981503289322535618413558655578438913"],["20991409941487024768229994161980288106571036451974801919035487788574362095758","25165691352904770626189638311616406901371956527649690095093911717447896289100"],["14583385352746828854891587407715882870975959311203052302163121787892787982621","18592836283946696904794161423611451210046296905902655972589792233049480533547"],["13170123940386158373966231319403325547207170564112072482565195975286823705975","8980898904385244563218109152678188440932238937403584911741381426408453353755"],["25111849298606312371771653474438259929325999005772521019284533355837751215958","25463281900872001708123674416092362250320955736236192558808441172853259272924"],["25372458280685972883693841653525798464325491145767037535197801375596353712335","11959287712595839509427323803364741169413308526029333956976941203550978674177"],["16061520050305609687916278684833792451434812183490407672986012744719137137740","20565926942973718817160411935390626371773156990295304668388864816802252178517"],["13660852567966861433870314152531071924860351068705929543154537668231846260226","1126250020149982568682262860920431287653412779475229193843840716510274925908"],["28619581952897143410103941253097180360869163485129043267243349327482186073402","22182357131105276562368311938346167400473551869882693531749743500867876861270"],["8883777613428271738962819447288209552992111640587431141442395006718883774287","14071412973180767436782283468161771780262684481604594652692689217747465618426"],["9449385889303024602256505419496856825783249408307911801666476708950253355041","21638022476015735145104092321246142223008296945920723873304999258449276328674"],["17862036929900497759765744759166955207643107970316370941722120672786537375141","11453613018485472494216028516706002086043695189568310691393725177716621598041"],["19051488968972896697597963695955382571380601794081242228126985163544259644430","16486079581822348066334544135373688257939983828963813142220627766809256872433"],["5421623139745963626258766322621463359214529124269432806460993850981655029820","15596376251736068982453848485625297763295724475435784611542434227188579286974"],["24594428667379827595062380021616413629643603560346439507418503754083021263128","9676472350685233535349490483977427582361241379645576572492487433436585928946"],["5364125935271301886286224877970128981484337804097600911030269189985190181616","28012489132716377764728251559437010331358548437214858547939558988483356043186"],["26094721133103385416588739155257710528718648212087944379114452837506866021573","1054525182018410684973545239554429786100463550703875794036956716969010536983"],["26898223229229349674465073446251571225905853640422252538516789606992445038254","2917294371954553570588602628229236212112197465468797220790997673274789053483"],["24986670879576528427917145401721036567025142517967023810553740293105619831800","13679632904319499802876984234318661265057053634375112812968508681358704920913"],["4131069715120514503323029514484298710709332428714441982072589972246947127317","17091019410639157101407207599403962068196606522010129002271134120403972370756"],["1156257661389791282281531888889951544380475881850705229179004469019516335441","15744086866824273252277573921042412679992747821160017334770383733777892858401"],["13420578407070552753385992411976290341923579771066582489184602371693696350683","27419282514641329988845688150897910708226760290479939578993750127107913015770"],["750843531313084849834288224541344577577848756035087509866316498272311973305","26357108798066579350281940342910326439335057138966622042245033674679855161620"],["26431241777027794040986919933910748192006883820955708558619803304581862502403","1445874499132782614125550353975392850683722485077152626292920041413436756557"],["5361920811001863760597433949888875488255452463761083538159455883701668957033","16572172912618805588667441280646947778567764673852064370123302895282924431371"],["9679372285048695750376094477318048732235348498269739199267411530336119604894","4089858246579895885718056069367768524761239947487212354102631195706195386649"],["23475944150158320958732173496863355867496996115692664852505379909532306852333","23384179698317703729809087976860310454153988169522724958170889769329829578363"],["18402837196617216011835810965476038940280386727953627249010515486504693744294","19453806838118652719316652095837649309043082733498150119667326043176585005434"],["26886506255450477401248598527178333050344854218424225468876732699281058339894","11452682635465391279800127582037553204032079830125437255103951035017254861261"],["15632400394567684320176993604369471561709563194355313739751408167100150413452","2500233288292507757973028913051234312068564785920847653597250590583240629898"],["477390199879142147142410778383083007381410592123470772277033346081230356120","16131501852905646598612036435426469122234081773110511437277959577803762727105"],["3108042042713106278022265429800716342817292832057074631949490902818422309430","19417750343194260717374281794895816939157729526549641888656038554615986538214"],["23376849875107564554449267014714202423644054368775426271765215324113040215193","12906695660041027610643289325097514903893942847720509395010194510269317682761"],["20195656437286885421703442462211127326937450356186163591382334038687991226877","7568792282277037456084080755473273366672836102102065509784851882273063456400"],["5080444865991937682232180458697389172168314586615529269146726610998878901410","12315738620148514610681868329578144957574302109246069566060850298055699477071"],["26930366310135637835936657390087759146098663845156120379395369888964697575782","18990036654098398960293194925103545644183977101465229236311759767826519752082"],["7545049778551042362003532582181806563114161367732528269830881148031148382018","13495676406106336633223963381025106709481388282177048463157564264841959351920"],["10412905035540084776695286517092156593961850714386841613932538644869720589666","5625660140533736418904206645946288239180943412500032034437091542757094634865"],["5150837810366504296864371309500943896761648602888957344215524154250016584114","26841611050357078692577073926265435472133648016614778794713999310024714438001"],["13090545082541237028930062529486013337329342952595953355243082739050549264803","744114358750602973110655649589185281999399718376621888826108592360553245588"],["10876850620281688026552055426592794829395891021309834564313773835459058411725","785998328733102778525943987011270096785786211692933338672018903403810807473"],["6888818892082180497283125770443955236511504152345155788382107380595659560913","10849923584012930412014043768768398281940588059094059952068868266540838066456"],["5413037906256425293772782646443359050775625325638631924014716404806576558334","25880918972796366555379563267385890319127889966219044593905226821596124961872"],["18369872233759925831135036382176876447845663097705252961077863607865642765832","16889440059951330451210363923856698416754321039416382220287092308756807146471"],["24845560925794498205222803567752712145389550487053943592249392443418339778489","28718233562748469229266393695567081079875212990072525015526220362489461089945"],["13756613016919969064122369014707488040775629037330524379233293054179436901499","11090132128682040384640031415146491822514497782892810396575545359958681577209"],["7928291199003749630727383885404818820552488243448785886717201887645535891606","4560651248472688908197209902246697774436847900438450265883102475758060790662"],["19245959801494376504283632974009356688155107882516350159855099495835956075778","6546137601994656450978073316291746673722404301826995919739202884231597146851"],["24880717184718296162333756821091241154499831677523612589075895922009015906355","4200885709918484294450343987725152989128336515877712758404426126994043472669"],["6195958810594284283186510135083568869878420588411769520151556122057597061931","9712790598426790909496411744231658553597320335441956708333887690207907498168"],["12936671827988095481343059594276246952169698407078742703523744462992672778622","11808240325283238820788131028907245690081654718798467583370537754946793211936"],["26314966063971088041161120358036571835252611811380393735273019453171347136114","13735458336584953548969943719838417284884862667890665751238351480943125172805"],["138723967730031484528231132118814875456573682190472584608357299461015643150","21629289303803383698685957457518297053449025614467188697787080387462155158166"],["25867177572601941899240958729003285676341564451370471819727671037520191973027","2419249053628840258774881247123479255109991449073761908234799502456041931051"],["8742730500753800916490474072532037455142689487917208246095101634973014292643","23648763611262873521512367572659770674034223851887233205669781257808859697494"],["15939329774887562480684951283752371321963067828753781939943020720886186897","22904192532285597530135558108941792262318257782317575607964190655396848337404"],["23210407435423267947430161110426954790190148756865429457302722870360624649236","26178616704387535727189477689147632119847157950268522912666894270667300798471"],["23044648253722975906042671766613516280717216198449417949020009823405017685860","16076942633221337877305008782650108555887193918653883360949078238370023112805"],["11854917291652780410988346737131138963779042734102185040107894124175374291711","3433681922267895270667430134305421887031559233486869220364779129921677223845"],["15825547786728137284054419122137312086479333177219742969306365776813021959322","13025863374262825638930515639157602288901875124166282559714293013785497055346"],["2148872684698449028718233071879071596890934029815117696928550997352951682671","28863545556127216523942996238062029756000429885195306493536694739046258226896"],["12674252847802534551090998964127639999331276509137536752374921112069012423711","17262235955459021553418131903281183984991866999618590659794405420423548795890"],["1041094598844175650400107529636278811254322657568679620464770694729931974592","25176165428166315140597890424005748907830019996787633883792223785870667780463"],["21843779543556189764081139149483351407355573806952355316881390527396550985691","20241359250376531271059164969238849412906218583940842550876936877586710923484"],["16783669269088812688720712140433405230048518534588510203938622935027351602678","12375439947742633069327462523515066954350569619341142316101277836982587587807"],["19887478638015983354293935635832029659909012522502701492808371930591040811978","17384578704176775325491274108411971316421066684770560552680152387691059205742"],["3370701893866247349729262570429647163458196478000567224345161200118450340735","1177457407323523341888105482997660959423868521098001540080618390985911623611"],["27488146951622061856528976295022439430162003322946091194202592893455961166846","12705091881681006607565340832007453063321438546197731352321386364269257736229"],["21307958596177800495830908879080426996520283703446658829634991997435605759234","28709305072660289116658816049108737229288830026719246575028726112555454897503"],["18575886501240285817602112542143678174456997648400343619195991265168519241879","22546476311283720071419611797152648978732525224135908300989152428113664531984"],["8077033479836712457221369307098285292890298305121074370070272674347866073321","27152523851615508790563013662664419902373165284134198139266697514047436475712"],["28737129425333206415495292792799969880901931726039001585899024546076143097995","15772723841297577949276309201666183814806010647551254292544147430532511635147"],["19098311770868570947355849685654178103282080777826974447468362729698222367194","12394729529992968836551408645144777943387705391434072629093764977384713883899"],["7208461614828650875279403328324625449656700246869337136858545312151567497684","21420509848776877471218607520822821849744142650549749441761459703544078021942"],["20843962524325024550700706602443392246020520181011609714565331047530805434175","20007854097891291964092046160188507564318707399221176601027482718135118834754"],["14588550216709878364715439907340989674404914354108318492161899860629705951526","20486595678860852948459063710341248937647265539918986687555775137340031355641"],["4791780534285928272122007760235527306790389452478148461648833174468143777864","4280053271795546749572247489162450747966363566684403472030951162801893843043"],["12008750524997539132191517701715051159580429850594027626608258951205521763090","10094783759732707293671958694449776775634745721475268108307604920915253461764"],["27700409538527067065919636992152724529198823097877412033337767332602476376878","3578914904835406567471673783087527619377442782764933198142641095058074998745"],["8708554771972305914455111134820314804806981104704543085370058547838813487985","13445104891381849145630488210917287155385738320333535977482406893906862689586"],["15691591750078230180333259359010475640374156580820062622628185060929570488448","19275242706697884500292545444098621055026894197876956116969083794843795870264"],["10840045209248413753985638101933678399185701036550944730698607176752267819042","10627003755639217933125273958136395591656606090642362658432142761972951267700"],["18930678889268899111896610002527020190851950248984812970426322695972034018349","9544665729153780343528082082658552260825175575054402789315392523624018484750"],["12542945060326781574951304512031486417724214893721134848499216702362740047296","9846499245497670205278314372271737208558561745933821590522294225850074032289"],["8938183169908180099920260385484666190378583129497748705258620247817752777714","4782389568150766142165914369822023099556002757089216864366778467915350416348"],["252737957437154743003946627292987541641105003306309635501958039241957222213","1477414962152596083034807512663896627454136297998347222675572034092453301760"],["27226020232892417939284398533556302951570727746464568019218365638905292326698","732806864081979288971410047080489662809330857745963775723140195644754130769"],["21348934377168053687193961420120112328000162095935451942210796154330879087190","23775097600452468378150790804091125835337666574941947470872406189911588307972"],["1824258866894226638035690404883920857945306668707261957217237527901723654281","3776917574343891101204595096735236214539409623329922295268066792708300757353"],["11048929595242327387918697458351032916811382372008811649379894513731271608567","3424373179792110495580842472529643909928332079091710774654319043188064964936"],["4933098524755168451426153926423513135039650218062713692535344277525987679402","23642560999779220457134601425771645952364777516031327141201452938574317119327"],["15428339378580780821309703735124924522393195266830570572180919462095532669306","17723530704386106115192232433175758151668342261890631159339724144238541186996"],["24405649614780684861712119612770406868915137182530463348241904877847813005369","2277048112902142047846957902767696884210890122327971421273294305855230618698"],["27883521118800051846750499051716737297028180810607704430726443256095132051256","20926445399089912914296075259602434274824584756986774524000104755344712594694"],["14533901611983377777722501660916301200750525609823772959309179154397603881570","17963649668890718441429903326600857334074525400794206874658226075569813687033"],["15029200641720284123640203225451005713736001793254522321279247946058825654938","18811633899391096055001902747045351188473744030194415345926021708590966280150"],["6186160791944294090667880551811381438893214944343226045486288130893313774061","8655958069483169947234296324486729192554881073022405050715545234033948465673"],["20788181411907444482865794380285513638863787288834962320776428297456143246753","10673525958749291601811708106470928788868896168194340684610270447375278613249"],["22557001492866400829745385191583480722690043547909608869305569825453696523069","6220998691745811996721107796244960791569752567324794667371377356072838232871"],["27125728252024256844422712587570827069405431616413930052879230631605866445754","25113233867746535614497534537209839079179927563575022710213567650032254456562"],["18543152805130798151620760358950545663604804143336012137876004130042493352088","15520387451008084789620642956481801824138796359209890631108086637222326046571"],["17454886338025089317594403558175987890053867908471991879509360780529917640315","9589946763635569109516746395100032024556802700563699358282299443720377514882"],["2974615241976651345440463827901283467416708797771620613068572351221083318700","14025082864218601274199478686620271380029995109098502156121058561819082349536"],["17967988724715109916164837773363309352726402490179784586290018095415994168284","8214370224047584384789027127387134023342071319965484319338399121123516014030"],["22371924910180255147762598516054631922024043034724287438368559957598668679291","15969996019821396830055365280937220587045852330840592272312619463600204125119"],["27187754506285769989081322694175917704993305039793694409667221236038426433734","22482254636230304415957005959948005115984047173400416123859343348566433017513"],["25614991788127124439792729772324725215869338186969585907700452988133168566534","23276443879713311684797199645153703712729412119018111609048031573606709061456"],["1477381561235943112717849434110097399295369677363001604898652374126302767794","28344360023158842631582134932637926393998206669040357384805015128502162995763"],["17628092388978419978229427285898361873982943094370894557288781884872832988629","18567695819570100613093304425157300068720341327891609287001884483627809107135"],["24038796338880506659501886815310217534394459139898548883328419304354325054530","11773068054171770952637022240085916235460589766701257113836938502001533761300"],["1099122028193961831483481842780712367914551643895293099262927556583856156506","2469185262608290376141103468316020831987928907792336991606305024946480824504"],["806488590516109456401530709893978898315267185701470532463789227773896544499","21900189574804600821229414693889181922766611544458476968394189283651849542431"],["26276769284234410405170244140618703106829378707439636600946352579886955184531","19631230420306602971240253845082360148531770368017591576133921359767331300368"],["18415597312584791137321281775628580746653375699106759285981481758146389688214","20084676011768843390406585059744879363448117537869218693403623927675963993100"],["28269141145143690265629416832054242530068288637417568831493437797288284941570","12360799889343322850056328664143890315052092487638030703102759121636776230088"],["13854421681065110562627164036955646368925984522326546588314467127823671631238","10509250168569800667664314309349760168191623605591185376352214618047124041521"],["24070370225381199125515523795605060602767979210385617551169980297840535951438","7172948229708252775914602056770580763247555469019599270003816039539434654005"],["10064108817252201874441597832671554690858569820501500420802469256945149395857","13652306109815704798933129559120918741510945495155923817249758617777476031782"],["21119158198094678132976587096609822495722644010491638211172861886159368521441","23084103325801181224311861081148345114647002841315381403291602406483332988609"],["11940132714301178496224697015986542371162045350540332803250769254002684473694","10072313763190312714490874435122320279598448285100254963507459518468571865669"],["9601423374326220532016812846603795838277586264966549869282005176768059914665","5993668503789416138693501640896457494801884013371833675803784865361524875757"],["22723359275297317289161669125197432512951677260331922586981912701728215436325","18185671350121658418139041973914777632996484086280702916520542290742413655115"],["14804942441236402443302900455053082866247357961901055739276808763942954580662","27531462673529422227563820025638230200379839559504536438507195480716750396351"],["7866382952042857911912494799979139141011419686783875305229140660126762670661","4119306683207135092518832266871988075078366764126779453673375696677059243438"],["839550893216323610431605841108058617439847403977014114921256767121926075730","5760274010189217869070708032022479483135825335778117522397129370057246271101"],["28787775024967516899000108817875632233793385090174004087055742622062407374849","17485664652893567381993379838772517042428649350448661328948439476727247353715"],["12387301917896762051049845471848489552099884904020168570187550299229229461212","260553662073702533127975523129449094042474466196347462858069187215273056417"],["20912806092238946159092460501766547846238875918820911830379661443362407708186","28225952508112794912732810234095397086418494808793771666570219433975299738402"],["14846671199318825149824779152234007392648492082534411074047993622740677626304","15651090117617943323755749866918278407275663716767137718108052195608416127742"],["24667365095290718927364976746624091032299590973751908690831605838496757483675","17948775467474566878787474760449888562739117307185211082947268276860879881829"],["10547374532953157176399871612099862523986060545550108800207635751832824896722","5898349654712251356036988827408889888104388879188969552683084898346833477648"],["17954669605670808726527549957466608635797286330499725771748458673810047258600","19027034878586999359621225222380611670099777690315106579870065510152807043575"],["13252206410279936803348794371231100592074469679782145832188978360499923723505","4918546560738677784517848659557266353191539429118616012004229623865638391692"],["3797849100700854472234401925144247215460247391088461476401520877666134293484","1958117456780732008384704364229728139377370497383597467334427495049644155463"],["3821579264088190728511770418302511351657861951969454402035983376261614610921","6964471846703231843689930992370176096410542649567745635933349595084100418937"],["20340498679137832593552670522273027820739981986741469016058688770071690352514","13906553731913936019790543042289720803682192625074474617901320744020848772392"],["3335497715939013696220526828691315830031445654919395572625211197977249633857","4956507092805678334879410201988288099675575408389728166856774356654826077640"],["17319704905428811595680356067787585930221107053505968583769346324315664531872","25116597352664139940359253200102300789937632566959978066717686150395961573046"],["13619927785105353052419397844219506274763098659375553424755912864512990203763","4293337626056985788700646923896970113608998419254227484195255190599768263214"],["2251150506013545063888475078473329535790632572091497945830801514302378479180","17237473979642675004867426779648556876767675493215826022260713074840628037187"],["3769007901801832450762532287515538992369781407409226420106804445875247047724","3571934526574486696950189958046065681217139030858633412275118646033709754668"],["26536722898672371911934182060249489090441509663448643395518351360057701000113","24289727098108884110777755161558166223445158084702775763053051083223642972052"],["20569010402765437907532152468115100245946231069373058916745755820446612163345","27499915379611849295823666885412367529730023802378632534240087255706772439720"],["28151124999138933617057547259483748387099678356546128637226916835113697757522","8631713014410569115779308611002120238105951621160556088124300305926226117200"],["27299224418392184394499105574129857082506760149080948080005015517199048536451","27000358830042130208929118096744633385376917024369265741251319351211869047071"],["14918781759555384700248554889197666481904328979493157751771472568163332842973","12682874950360993116550871533606847049679888726800560288601467622153337924784"],["10735202580953373458615658509516123838640340685694123191611525505287389824383","10688987084263396469876832977700643398389196676908292797123925706284647496372"],["2222574274024546264759512325174190503695718591134564346661424187140464383429","4741193203477996649004049716900828193113544834551597781133921337499877885003"],["11476829890176094915825583499852336890330130695566912354860897068008522424223","28934114075931725993836310185672027890368728782157369591666804067527381096138"],["19324365195003732413154390115009461258136544665974831441029920504400456378350","11638530185710848218885237807979730210073490383501877036666880521810729618160"],["15251588993597372078622663941016640903034016627709344778547256601685545357336","13929269283345706866312009378096068114962252209830977761269789736280255569278"],["24953265805508356592236186084954732156379092361697364286865278937872632847623","23582468667129729027159557237973138928303466946494547120850367621931874734545"],["25018993300844531135335605236182198047524702259074156526577978425338185807346","3619397693568565228666740662019273484585568825824123889456631813607383035164"],["9021626586871542973438926701099980407396156232051015022002132104175990184226","1033345058948478513412487521857161605922917905256499377959494016879475110889"],["6170930095664135275076498692540652004687845360192083143534521612366927952246","23313315407379509924090607921776216426018993780880582169939495472172296420976"],["14752478372686407564866074274239003858718168898048377177561636886012422120357","18418078617342253160859690447807758353406278900005315731980290696268389411325"],["14957586487686609459601336023698248439712461491523274965557227266188329915083","13246009255803038791918583450660130947641348786898447962762033882496503673154"],["11452259639695264948034564472442273246085005753562875915753996143146764886940","11254546150789739181329598174776393197038181198418603626809776947479161091363"],["18780819324085156484089622000582459567000391618630130295923564767854350114614","26256758702239412068093563446611093880283476438215456467714086014921299741165"],["4075670941103724327378340576655427623848479797968758454639862143955099652770","5267761490650405451177083096673395154665717823662553259844359000523354205733"],["9831819428447810592617602727896432257902098113399937982620097296978644831427","20983493502625915450875880817418299994760401156137496998812764125819259258671"],["11494577232191242131385380495824575609401260196293454647233022643046941547549","5590927470281524563164337129046219728658536919992695518479283153011196829883"],["10763216789871764414473493763805423002433781016061378736298054502005026877141","24611838434916831990282665516811230403336052753255529057835256924203219040736"],["6017209781432342738475707585245555300648360648509608361609022738824545824505","23074604301742046022315381837443596062241514989815087305047696467008257879867"],["10708289349647354264888299420151553756618831305895808224459756478666259323315","9259007821944636532658505286365458960307125188463112458226434779610311853186"],["10262036742373749657276593142764042150776095305390734102679767928215271574588","536285895616244825535788181266218814213308141698536042654308134658309471912"],["2608931784239125566944412554328252555367324208600883646242203285800957646350","10457137337660910669112320903104857886319132696525450951882875982784620673224"],["21595543079486238627616386237726032839279244688498155137522762865726755798229","3201167148756104337667018137378232856902302346915668359173324983266592759736"],["8020779572689228526043078924971842879351498726483586825629041239438917306949","17871543072728873497438005147041459044242873273714757396201600311342212187001"],["1942419512782549355127598479017120752396333287777942190226514452162076861365","4309078063109117662560567003625961923287987407582574591830883673622841243557"],["24980812694111997244842888193992376288783135271778317535005175621673281066729","16596212598655465843772409432322349321403975458105187056528471803585985767376"],["18795225771557709272103291598102551077508765750185612752288844816677870555232","19521419506924088068974722155796862452604195863589726520020182806562730732288"],["25987551215935464006568561333299434886019584598103000350999109243970967420606","21173041642364886366836619096158780342429286332258397196748217583920531894151"],["12461772903371660475429188233199173040086068221158605456430352658595937386935","1426931831394379671074728047411808506782651230160460624149519897152730427496"],["18612581592441846173027806573051633902649177813285103960514893666076363297195","24278501790089446712069023948569023862585588334408592630604933934873610482982"],["7411520281614923646680169630563780567722300051351330828564386650269378469658","1058211001450503936100770233699722939364984697491179628419608829969468761399"],["25502080967469589585189534038763246701196154671277917282756585302237049098388","5288391302809702327217765555110611919458867724928518808445088748005907007397"],["28457947673634722124563374315312442161709794010033812553314255226778315096744","23718810325504594451687275775731980932774964036128865360286789890622568359525"],["13091435397844874246917654795684794561833640987424104190096465488010954822804","26335290191946122365889210484423877696522960097442920436744724426538910502843"],["3518339796924530696644091787738115609430280970679209096572672152552210445309","10489219938434733252986807101787010006979925637919164522991153385840903177451"],["20339168827710281244493202363252426456709743999375895591014438836176159945470","13654464915326931935783616217481788878035021698907597317763643497187656479747"],["6852964246669429803293384796239969960074924371372342161250164469415742869460","3590661340952702377548842653161443042595505441178542979917862925324126888503"],["3838735120411418378681460622046487976343384708546190925520374237612670752027","27669889064098097582280016679848177961103730638865024298154617915724881548395"],["14333555400687229770477796862346094668058395517330678812682255644499698870509","14340829865918119554048861007325099383087693650718932867264905269203694590766"],["8013192636776856971304811389274199320773311603562907055635953390551698911155","23243295663361899641788204277211586565275557175653420191666675822892427507686"],["9047323633199314390968726651004969147053580175433354727607744881117023801199","1833412615599607950705456754757070207205143246255935844871582142985417662323"],["5364821577214581668485703396571311476353927857934351485571063643697871222513","26986038311213484576304838360126651939357377404008850801390660578533572465815"],["28847532967682617685859038788333536724677073007295248044129799994108370384137","28154086767404294068748873117456238983192259677854938508678953943419795830539"],["9022375590244141510781365685610550640181769247636344286334629913949405654511","12455804341881767109573321507921986579171974773287106597434636757186181814760"],["8648546487091882752352844565290801647065960268229480278494765787119549651215","3589434864571536332850352452175999968129368816785665742870595482572088608220"],["10404969606133231063108872078709343075666050097515368523853247237633917281831","14449640163224292019367943456033054600233000302566117056132250287048382190168"],["5217394536184650615801920648247207930750919649381078331602605608827029983128","24994451735425625140173876888297966508310614248314920731596895861580306670784"],["24811438519084640372863551905826364013038703274080051470379061585279014517789","24331653108231786469704440080976422320906676061688046231687146467731457141416"],["3812005284726804864425506399364677095516510988386287609860028118631129433128","18870594670774720917059215436048349457941821411073894129702173694364027531461"],["3551607030064402284937185776043695646709521311886723570895260244829825254120","21622403087531097655745194927715125169282346449618636278610104309971455948647"],["8945005815618871698043606305523390724763502756221508403571470241016212295854","7161428131337942672152437277359045709911562814520598703383323504440323104595"],["17053810988512599170848654547060199179551593870356829146501384533992020874495","3714799161164093465101881652434170703749436837417636177682109070431062459556"],["5109985465022187265896532325642680102277492732047416577044946522769074491353","327056124529813661817775659835950847375798182930932226234998329278481310614"],["19753201207681202238271606622585477102229499835003156416726581644672352172655","11184852882336622524441520768336352546067739136359893397456942577937138081344"],["14698703272288267613944588517317632187412741880064923262922835567486466742825","3737202866179008769608409850497897570604607919201476359844307528517336363617"],["20623903938336338770532135273007586268237342099310431587561048234753896743868","11361049561693487976657668817247876951631959720532574166675133186072290524283"],["9111897860961840000317584814633799673592867557859202658579543107995244912564","25507493948496437275556879269515483269402582411175911311589823184095364676015"],["13372599987357096560817933928146695030917244439152719245716096883081670698873","21128924756104364656356341457222987528323727688610407388307628221298142762445"],["19298907436059606598771917109689666157868437433736332435754743004872806864944","28613668430839259735848445102510623415371797949021010170079811713632210126732"],["22644184326787094378503114159608417804666342702123654149324761104579243107322","23659169187115550541042822841485546239350269351413264881766606998316673494586"],["22201403143970494888236464654243527103416261242327951721298846273027449693293","7999939161134906320819457918753198461596116998758730799551249481585795716189"],["22173997067570749493793955074221699375242808207791750859748877172507346503792","4461543290347584248243477054156500238476136474778690482818708925949677907102"],["21343664019960722199234827957155879194933776989873069182943366236939803201784","20608547951034284925969346396932378654636885571185637167609682578778944312849"],["21031584803409714576013900638831583800924131345326711852448261427892583807036","15541509976326668707207034420418214099645525991721145436395940344933840332319"],["8213139792933251600219863002644328591753756321687585943745202086699828566438","20306073436380551016686747576456655394920584854663016366758974400497042549827"],["1919653722971572270679823343764536841411539904704995502528397219421005337124","6789314062105214826381032545509968530601725255559347817345606418117523391180"],["2204147302085818037861565582823335245827340746181418687733769934359782129595","27114989987069555909515679949140280407037014784413623996350859030955268714392"],["18358973054390198082308281653138321359844751824310326419659603161440991312030","9636717020022090845287882783896335762213436427682122670104669933691500196620"],["359145358016181044414779422951730180906364333377994308157226394914176285452","4222577506669899598662304434352096190049135710306963301409260854905983781297"],["27004085671052589491042735043767793592979200183240605913305904823416459309623","4188581168485691487558856535547321254458205698135222849610061907453931891843"],["7316843001105745925116956453419120833243936932212936121415056632170433196617","3182979791805596855324663078263652851050918641085271194263035723522676442480"],["6186675770355525108416087427891700630878659973221264533439461838396358491712","26104588693137787707181352182052589292767287331233798330010319932569455585945"],["6875062137131249110694385534184355880032516663700783808228167179937385446697","14793240594554895286977513315904073877493778923768926967963788475790777502041"],["5264570227219845701494410008041897380229686809277231888080237822345395481072","10829093241140651200251606911572701457414234690211759401384161323549118984923"],["18054025509835619371118440828147786202350587203305672798349718266396732941335","23912388370136180871447855174624903220325592499360264829932799651883024884007"],["17503331024131713245468269641723449128889219048244747086936221267064783691133","690267781425086439096708725318010027880318941973577057760490778336912665423"],["6197984398763429568153333393319852077774589136324003134537763512980196406146","4787089592027908591475498182733714473936527329846057040034214024097842611164"],["14244743460704807112872220160994822449179094311555587140485131362064816366550","15491473625126897779946380592379364869818441918241680414120051743516556447439"],["16855460220323204597520896399394626509284015096462129358611122110313428252502","19314130005925319329538632664159331809896762525181607346680128442071960199667"],["22388816406359388416227711185646740643155019054975459060794960752309185107526","702351215106195343880758020373766272325375422912687429577555715309057503310"],["5854715216363534150972654082227200766840817823625887523710391569304749874305","4190207653315681332785258756169707940255262706068329898655901776115961749430"],["17667941044082634595599157540560656758265865346507153617424746790344398656570","11560665431169614638756483348471605297228842983139472900360571695070599698578"],["18348317242857995822317338157530311250693142861096794617850742088419717362901","13452917082552757840392705489618517770611021446021789427695047968785086199322"],["25759878313549595267516036936184940557809137918720353924918609970332977659446","11289628517799243193398393515715112466648242078656098192598001294054533445970"],["1513906737931744968881020468642330147854931198746466077091082323989478821327","5851841971485183714190739618800866316549704709174839634660180501857529068367"],["5144578894114512975426486501824171846071669688600691822979705543285896621279","27001649835478476464713737508777618556596089432095384790901480587288854200964"],["27985136026367112702019047437533305622783415206939722519128495417657190238449","2504454079892269958127488740627622830708036654714993363526023889288421171902"],["6717008782949591979900362158107330830497845675650002216881159190301336871538","4446990655108649203650247634947969960855238815360343300022177078553384612846"],["23275155292173570439948403582738972463958871242438058713397389346154524385330","23064890076042571721328041636583660337329105323762375094488958776430685727952"],["17757125960050518245753916191977675588927655639861607926603878283031983706686","9536854349378175692261024362734404286345974391606800795396905536872685651138"],["25744588034907439199132233969075109366757541254276022612993633836959023919911","113734245918243335394956938337708032236002760701357854208450932944381461568"],["17047336594767019563167511445813366176945189896829131628037254667351901801508","22728393493456448514654147929539419108074021029650369908817883792956002994816"],["15620634699624791814858999448826902190049295929899068989244876628156393435457","2535914672245157700649533221592454401448756936277473255056949612806188560389"],["5106756655033123812998608793706756768214772753287358836058821339826599419093","6603367264078937043473112090441568006984263790223696501339767828411650041532"],["12900499081128846727301146386783195002055619126411001295687700545363784120356","16419579561455399827231996965969824691094236899039607518849466838924807981440"],["20642522839742993904449628050931208465235037146561798900255524605276625619456","28933527167914179079041099704936833035419798094849365830632720800556195824980"],["14767075257213821737821000132591953028218199296618555782284256597335104740853","8383432363261390891066320049955464463764348887085428982877843702868724758440"],["27373759377291901789601575300279550586166188297937494220538436908277544940696","11454151515627893914561725856503284250677280939487564162090411332733207078269"],["21765921660749183611228078632601788565855499096308116957827370508531800174668","21140054005551606653931769690546551586277748871643522498353419239392036230265"],["25697245632871658540338673879776946172833438000562214751086136812505428674977","26730288076759113108180653381509143371148465986311658877381604248942044268038"],["22762116903226131116438813096066774464925648871338408544508096855663397396264","11736002928256685359173959355444613775418774481891252399628810266725181968764"],["10265326989296684555268615059446919608829456820887009004322639102229262840598","629554960298954054548209478432473778742066883248514576845539647495605958329"],["7833437362678578432506312858616025119688601462128461853735397823110877673224","25004634216623268395784987722397417391143282380652625044153425233498445921163"],["19623564897928965347953264280602230126095481782296648936140234305767704747470","22869263733148884532106678657507702855162073489706535992852731485634816544566"],["15610052035829761758166954770832478500370969102422780226414184280956670991255","20884453320297781322093558784364643255202694667600482730509997933939584019789"],["23372126507859542369632706981703717491325379050485734422184334741660467198977","3928264376009713176356505213631350612900915482848515660273839895758713482142"],["11786617490624602834998723144294224292226422945751855403032610250924704339493","22838772937065451468068932525736202925344199983202336415951964054654601097153"],["26546884781343848531278140054300651996786582951774480092758107332206077882281","17380772654335786007488366132665955404503708976243287667047195405184362642372"],["13168989014571350961115911668464271699327770276151470950875305834072426694072","18312267846449045089627694896142481114188926895604075931782175934442838473087"],["12331462813786569553562040253298306432796808373820232576935221911952177434175","26708111493388857255491089276721908755146658893252739234003337946817833912635"],["24363712867339607654001288163098493645587171802662856171937920498784498795227","18956273694811278708980317064721620530585684182357836229085481146268065275714"],["10114769293440771338777311941190871835746389453271436561948025840483551781615","10459001792431084081953863708565779464719319629876414712098484163807374493401"],["3441622216877596692101710923515060622730403058193729220696515573437116088255","16669457972323988111670669785481594495955249828311888733430044311137788629495"],["24294014173299264478372657196138891615641132658997890425619825499166489408917","21960187636561717910841096585070588414695226251649568802099150249358342155750"],["19568552890669314046853968999214561122838349243734859135553943578385471379401","18094835833678155435670303975914530620383360382013980901298599205601950410133"],["19692627470332825714463330772192058716276983369159111758864261367880954069136","2495942564689541280233890017103044039299574008200296008827853270671699131485"],["5022174942438392579467912832958671937977447490549531122372248531343053960030","3068030884530352954584995826793343332587332689796144641648640459760897800712"],["8371305288771981600660559643384656474035256069176026406487972672974778646791","1422321110799510068884131065663067157255024018216880943252142226173643666124"],["27578713553547797246759359132885905525655559878591047570309332029493010704620","8207361619704972723956492242849939492653157453747599690253215798376550013817"],["7933228679459356343578370112671369367758308358113140124279484434656788665066","27801272041709262290154091815566782320412015564024348267579228937135690752425"],["28625693332521194997794656168457599020162205836496525987563840232580869810259","25859236379675770393822573687728455022674737558957824876268095694081762166833"],["4598014327469528724802226612645422633470705918534678377547150984843401270003","6101669180579973003013832884266110713361143318399225769996370998973950970180"],["16270824635846569210800576957843134432755698457978601118417701379071105252557","27067169787220140809289253820728098176483151616232681866556838631791747737488"],["23953630101634192384942585663685152717593444982842065137457042634828394032059","4102619949040971971901516904382606636606728183728836283210288230767406856173"],["20568342875395031048836907086336429350578091216349441899893336310053257935024","28933863092572488318745313249941636874809031859817090871095771629436292686178"],["9908809452379020938995537724731422054911834323883827755311879050367439782368","8736821852347355632275935861625642099845746258135485800828289679753731678974"],["9933200265936797517012909530133605313384460286519033680612891078122620228254","27532065551605807653153308199136007526951765104055734437441569563926228637910"],["18929190195078929552788777192577069645139760974983703290137922366303142778750","9940218466691333140049675951532906677384094955284067479013991682861918854889"],["6152101763548423882943610612177422976643578719936541346031101222888534142971","19986839065844305526644569478143903918719745216841942451012893397697956216550"],["777164452240842087619511195226616966969398451497251971946804171077557969667","15468956589512387680462542311854972056016530638530683861797115668412112416578"],["5786804220619793285428580398807110965538529346788121073738925064232665224336","22607019097234947718592188771508893036263688659514692704530312993111085876884"],["14301102073558859802423456171742686180906351883139189855670247661615146288731","22207913646166602406884907135732266249259003051168755357654710226571429105791"],["27362782865506723432879817908530972194509906274462178762548660340993028693760","18376595561111387430165056888651046164912924649243470838628049542421892899436"],["7555633788835469567928836225166075582157858282742671686969767780681698789170","20303130166423605463561509711601021458079622328906312785306793327535871768083"],["22905319563323973782863455944274041933200399200925186581656453082866580283753","14533416071395110224187317366145721155117861435227824851265669270911440109735"],["16404003307960924095946576800202499129475177377303015799183920710484770612377","8856017967860352857698209499295900474166321895509423439919533418146174472363"],["21501848701989266942813364513802941112529151021207810794881859044039265273636","4274760077509827326612952605275096880310514232311581411910211813728952754559"],["2819817861509730600006413745374122239377185617530778945572037869916753781734","3450696340221178205800861359551850232125450159678255284214805149004096723355"],["6325172203988405588551180841625543350739247956243203134498152032015953595105","14496554306393053010445698885392812196743960122294030989451395947802627445132"],["10815493344514910908673288759575328141053237993810196815261894925986911611109","15377441713757959097199245085714887214453346586470295287934879917749411281299"],["11119677040988571397280311546516402627505100823512824022647501762474942305814","28066275581644639566207959753749672874341484622043897078853796044823783818156"],["15791086213991276916334685729342965016923077969809847801236006524918766301890","23175412788631084164463511830613424540269982285731164431536288752706728699764"],["17544476880441734791711857148438233735991401333282616593523956365026877448612","5605670360166194600992651413415148104044860510998163058432557425387959022830"],["9408758228823447719412465814622659699400466823195971891815199146280047508917","18393436270042585978467903649984797164229362285078125461006563478728792684291"],["12188316619619514905136007878165739773443488305876296055555699034922113537120","7003483056891052088321188485863849285873899058100155396925619422984583882994"],["18602385732491843563482001634851378984573520512938475878757431416614883854464","18762347129034547313548316035839017589056001785534067005976015612809503609847"],["9620496255099873621788076020361889038605624504414891289402750353267661106472","13498671052395291506938236286361717733853078962287736708632796504548994544723"],["26675725308904076409684620315190279044575976244401102629631391177830583633207","3636667768402943477198757482733423955360396693936655407011465252591983746678"],["28177668265858108386341162812722189954177878421781857340651310765738036170828","13256063940378163986471586669351327652297537627742801543832827236177184172058"],["17501709260396063688562494537364573637001650975369319028925143564802723941730","11921088591566420643424639317293084526230220167068506907343150548154418239485"],["4351601017382034191062207747740851057313159881333391859848746531747049423542","21784073912539287658966380360898366581963530958128407322417479732140281115420"],["17695544033182066872996860396816770243347889278268057888991630207256465956608","16341527420260560841202288357997907527022646758348442665794755197244965766663"],["19813475327176525295641662207006808735909274530590307468806729900764756678331","8021687556450935060039169775927336018406207687556811985492905620640829309155"],["3330745319807821353956110194052915920267583263222970610727596472431349059381","26307618643998970133294914347365516526442702998727453421550287950925431176327"],["12576026404166753940692004960938795392984537458501136848019652911085741929613","165785143566736260432575033047141776118450150014860624889488737607722806855"],["23164769215270057820814978199368518530750708023010500422438608784133212072855","6125076486673735837137885637867715571483785666651534474618793038051384980282"],["28480100467138744525183291117892348569288727859505811709014996270597387359098","4579816269550003184284432629695789971207604728106272089822608560998507512140"],["13829458262581945731208758894537169021902682111812440869507275812283255241043","4082926609925913394938898767005622435228589026424466599279325353880978965262"],["2075035019279856404631962267375824801882447878615504436609493708740918691303","6310634064149807478707751455126942414539732791978028531688768368531286920810"],["2678648711977915613291317587694110534202465734287914475257852046032528507270","24779870405191847852001084508064567308328394042272614911272452588865255614649"],["9646359207940676204076156808595160327863509226613361631590092854568214613623","2623644727475543913685984957715002299967104498733231418004293766255085095426"],["15993211510458690138870110821079591144963441271349293023574635219783348832104","9374801633127675217948055851416987248133254168080683983198681430383048759152"],["2534014054762979756289333946848356303477106442284652938152374559633374394747","6364438385743685192913035661149923964963130949138968098012382821851106448463"],["1727968992011088917287598393203726160092989578468193191603640160454196935363","13117757395949902816803326500341638662984471951697169718879945574773177490262"],["17532472242397843796598487293628823819236408036234041164192963186387966525273","28532489042909659437181792706973468269248980091282444038036557295731161284927"],["27970373821076812445861276600076610114133317275361102726324847849696989189803","1304645851995404683748800346800670826909500045980660499669142558974174174966"],["23616880472333990051156723622832605538154442009326212551623672586544572591966","13099584870616313550235948864361085655707325408629168423500772957548534552067"],["19137350857094710592876614644820693959084359007438613310925622296100457673587","3436942154707560833280486067862056318210258581865798039428757191214777460249"],["965184349577483232158238384240551696176053939516658976450356170440455698317","19800913893798013938601414434048376088835400505921809604863631612958656215607"],["5302473092065627013904211527888143830558662471205151246971671354739292151849","4806405820693604078201144346959891885821874171511341604681408906199176274001"],["13409450057363337644589907023239330977933418434229148719730944623559243144616","20247228981412382167177808835397472647600128463880707958807563005493579651986"],["12879609275631040188428571149951801999662119346257230687274680628450533393963","25843305488329583465364612007380866751729448860385739866621700087665487586755"],["14979832428156572920188492507387922893934247610239551264720640118285549505997","21623602657389815427902332283296024006137192392703062945957029297413567098682"],["28092701289612080355733234338152654602979568703669205804515236123660843955280","22872584495436489039116479725405731193390480779033364625797321597014862962451"],["2086540316880277803244057487032076882147339694970506615767890097680736163871","17152815098387327595565941242484996063224274192910754238633104701891316729030"],["2509392865245008037132376092918516728074187724701430582225785993957035726341","6455965730830012452156459094822741897810030292965745918916187201691161358962"],["19577848471518308454431786154423059749528780741761139194659831776908321543719","6312874403974011922092057521458365689819637950443577173123239546941877130809"],["18964464066490369830523315144742111796408711489523538524776307873309354063229","10566117431816213916418984427291676296141704118902063183315481019029966792593"],["10563170015317463785462063280316860301984323633374933486604140192130319858776","12120384838657224302648436288792614465664677504187137654417498835145252762280"],["9473739244093334557331626041036316673683197738715854670665572724900857228835","11389474641392569942610326038948724065453285842507401530855098892667200852595"],["5350596514338274816043911551882311676537500048651988147614111933116948922702","8043676751796005808691076116716880614971688735223080452846279819677032416607"],["3127699178741530702862729598071716240368249927508271748418838131634341743455","28493878459140588316463280233431201831499722692998311806683174969003238141421"],["21468868519852011951476196863804003743492259892476492510465972325819049250732","22586754145731477856634464013773380762316805968940726360836074624963895061027"],["16533366483741212468027104614987337026521587000341044080166844100964187018683","15117485556804144388308339095729297592838224805168624208531646712959630369353"],["28073818793657702021746548084529024366934260817135915879352699066790116825353","11428050069331237896100115226655936724679903299608943546409980719447762754889"],["7306988964281894223287523098633543945013816715044487024206709469034758862967","18965390193429400174820071659581113277946006092517383371620348918179517288324"],["8725693307079469050691942139659955196907727969096929822971963806759765601339","6516127990531775998992417090117208527114185036426583421259922885284618227994"],["5582118677094669319948684348877452485589750046806770017492474948514253040079","5954006468618636554382310027784368273411534584377326891742366618087074084902"],["13502064488055241196589586030690288059468466925550130096451353350253966387615","25315222335415773790259621690077399627357633713807834166954380700596739453634"],["20570676804549014659030630560348844457054172845575165568203168145733411503717","23823127235898534054341585716917744179658381473485343589098278958777348956798"],["14213399020363889420580220113908379404565912872953710149694105380279910922096","16342789596835203442123996250164432754442296666552803611424140143315917712130"],["9987714259963787831389018764167337272777722609651378632324535282248183599729","15381827611237294855520484317648557648684549184729134725854777640815924759639"],["17654334093779508426072865523787685710696543295051944090646005379728644612172","11896656329902552072159989724407539542734012086436075841882336404300913590286"],["23319055776341296502974476153066411222580262914565794545517743668938611505388","19700826955114073956620282457002277566344661469308952958997779446384083814688"],["11203789545421333400299542413874397766651556368270394811848394630870408722200","5082758502877685357756696821814355579975233540769218162156000988565975431173"],["9508771636506069518692231554007289345466323471016950490745352942708219403544","27849963687729031804323026319385725549365549368652014377210740119837802746923"],["24701937192207788253037426738974137370421871891473021308058538360347491040368","24157413602395283102488929399269403516670005834058758528269682252231129518152"],["13642050080256800853109282541956832863629600165995780240754151012037484704416","11463570252235081598632998695877759318422150769627647867945908437737500179847"],["19572977385001288100132216725802422059642027438890215627742233114140268231813","10383631142317664924536137432504595041700374622558117029237823369680185957438"],["20528115872910921940860565997693567708200853298100874881896236138215649106295","24323604719024270711133882360183370895882367990557230949323501015867161593030"],["16972723877084479231917864456602137342805220890660621920028819067001316896734","28847449509855242089256207880161820711534015133555128110696406083469323685089"],["24916546770412785298345236772483348679853445144935919217179419018778560937781","18473885230220100056785974089094664216196438454578723212969376915216510337785"],["6902589862587291058017846969851175003787576936383379537211148462064001628861","11904180315196077307096163186333102267200077303864565162052038991528818892868"],["25730800500385883224507110927563245008301501184365099340585978081221801568503","20246419395315153219241400640335788914469654182893574597589796780146683705473"],["11699670178706283089916839027080550956395230740701519367960240882578571130090","11987418787274858339154893263936057598260441796985098360094364684075471962937"],["15862058139138209937157961931847162998282235973079540769751008629731115488980","28299607827664781129029709408198545816851756615484848856110006291104542945697"],["7711162143213353363099315398707359193986834030440761402826156651993676935072","17220212760746440859834213356972023029031712175165297350950318688235785418575"],["14803218609029350628485189649095699992417415482864381369126982001503555197332","26024438327189729241829448367129350513854408204360124589147218141828281962577"],["4637552967709880428812974467352500735657342433597207974143397996106144292005","5889629705148700644618430250913794154571074278014654554586794351490050327561"],["19766689742829063094005876278882813438668839428509661467582782849178073630782","16392605216570411602058324988627334923190459263337717438186387379317995618510"],["17101031049325655506519083106597663904297747856876840373934666232042431887120","9445758378002269032166524230294975766947763223461260407561246976332553037377"],["27499385414958645963313261535544497371858336117182911109549249551144471149925","12152974318447276804486861361269751133208859880483598049221478258366435345697"],["13635539569466290868467893290776170014169314084863774919620974777162905545303","19231043103663663919140759884118501501263953162631949326514885492058701795590"],["6389664022888506227002092434557999273795755955857893009262104090759358572446","14152937007406453116497716258681922807190945941108277341967734544207588708181"],["16982309048850339222033164636890723914532741425760527976685196042880353749631","26274782343769844342004604569661585995027913405321222641118568933964782464542"],["27927126700945904259382060894095376771271396862439034217876015213983388431231","7141602739621144225309608259285064508453491701109288358538858065956768586555"],["21649813970827689590023827528249212778144714179223741816772542275985726345873","23859593160335101389424230237048601759936625489302286836984407320339193408204"],["537876430611660553183402423661243500440941382931232772876341655051009743281","4306903137954359224684754692580559021044348767998421128072352110807944429850"],["11847078394331145121009928596460239890008352252162363578406749806169452150763","14694518861438011786370830462797269554762793272582110145394656804054362086122"],["6643031039779251917092389550772947270401149278523412795413853252464343736238","13594575214655391731233661116092231272814398062457155832956767891750277827588"],["22438284611444296774932906349297345144041148410846817359570494939812401854092","18112388082441129375444156139924197498374594125832073114018700225354905781950"],["26812773694141122043718177201352512162962435603825753799069552851173858903020","24681655524566849799600371553961206952865386257036861969807140856393402104294"],["13631037416882446321930687827579560012921222109584887042669651836035867878083","20263953441628475358263386281865301882713893289752899434404245384988807546686"],["8939036135021099739120197410145002845093689924700044422546899799555513131969","8640202942216640081161871149203872868979312928186148453664466985506524368326"],["3157364207941471533173444257933327998850286187522448117396852240097930400893","5083711189850729202498438746469170118344357333152133448431703426276815685920"],["281570530157704191883969438951677308034755350807551572289447555191795530457","11958573848816112044432656155305086268983982828527432761149553518023794250731"],["16239354640693373966778846297261614148337337281463449420302026589896261905144","19873738921289202429354080815693992569648235758659042712546682093996396724979"],["1462717287574413781084175984747924216500923704802381183759518022292456141267","10686504130484919768480544988914150047401932763001356782060906339952800653420"],["12654340594825947867917403327540476601843588329804020333070337418075991570647","2342749711326406637155100733126562907127179691629233837247603003199714435519"],["14283831043401657742872288436603731301992084858181561458964875203624885671331","11089566116781905009951721110375464789512087831026325517074352453757886598773"],["4323883782926296528600573207684554488679323199859378742200202129544127246318","28896290363375421587829043544977015841060031846267987645873639113381601694551"],["13923660299104891185574648713238021754265426304842472186572085105501764908278","13594154724228921929420021806786124583705302375242959445087163594639996770698"],["25981686951368211738773375537391369851188412257779371323425057299315932586823","16994724071473515428787990830633000072441431380554686860718014989660419992575"],["5635473157317613027624900973090978169654445757234535410224206592381451938876","13452419959771696956340096147648648295545121613552826416924658643467844183863"],["6512903963610422119307981683177768642601813812711659148697937672285616955206","14700705368046338585076927898468670924011761945882377353427110961389600251075"],["13322362931837575808225312766515846509535406663142049563986691249632705508295","14344338604668588972288150773619911295795391036024705421339893902702193162288"],["8707253805786500000849988470353238124732764927618304034295359749534585945513","12395409214873866864441028969256213292162867227377557080801451498846791217738"],["13004713884426507661681792849070562469216718803117182589114987684898615461124","6965866512900805195328516390786164272235165838511944395942002607320074064155"],["25861839314147564567269628198328923950348595883735644870043340114049590074451","21030848009530803636319640236160742815919607056257126082229435309202081780195"],["2736551645596748386913669985359650474876991944365471609607979456207235337903","24321651820278651034071703318144833136512408860555111894960418611265782419343"],["479029776377258202087400555642632822715416788951961934376502448300904247177","22682812661477916485847810178822289225912632086159639068725807445660049493368"],["25529140377593757670170547037341207488274685993032442606959347740835449070444","7992788025760912282081546188952437067747172641011454698356220306897348355935"],["11795972628615311239289402180533604204640158990348070832925873059507628307399","25504259739504639881178786026634343077471755714973443855445167879831023681245"],["15224779739386131778232130930083755337951361760877405313658916104271656716010","13280815036739463431538583925798043248829322612115991564673627736030564420128"],["64303616615630627713103271238018130026621860825779752113694945931584862459","14938936774475188433148009846849772115486620058911774688063360603890626042550"],["18103902744774139285869565485260554509472179827349515778759658504257200376174","27093821968035605912638268640145638489163140038918651540015015130024905346058"],["8200768130846582918978282787569660964712906412916218979405560492776570187709","27783983844403941265989587895635063800567459203477285623098679759985697788102"],["20430262106936556004990056428589804035467229273971629034529626881905719872701","27332340149186106430830726180123064722822675027656883124595263989987571912254"],["27782597748008405826531526877415038805254847332297786014378919602693692000232","27892511530631670998680331820158209063062077753592726041369519751055582561449"],["22092627556821342702673152217969500285871569085154534212087455258440750425554","18645571288063094463035896739775554051031476317738006183851864385250560608525"],["3955424490907694871062062804782955774614715210268680816898121461741618887001","18245280819669929109876044383300225289648273570161293873210982517526248276494"],["28627435178324169622718351405755170615427634925225858170419785350904132687639","19291272166757635226040639058571637076240165840827409233245965374483476432219"],["28416737349271066550276266020218202933859467727384480867849425252311976959432","7461983988504639895163775050991358502164619254056837547282919742455192757284"],["17257712264892535858369198375015082334664372826088076649509155923034560736832","10706848017301407471795243237920228043314204138299438941301158493156141889752"],["20280302003142343161988456633916060720786752758785418869171161788581316674837","6674379618928918199037949845812980671203487978331575735401982993706634220031"],["11453486435330321509118526501609521670406809094105465370621295222584724413088","14074125350575647683786417805103589851678429824748748515155684131095955258929"],["10380942291766393053536521268004791872472724360584507130133153729771472545276","1134808042870026692212945849817340609573840602942933910562232480308712317056"],["27924513418686658566570268437880088284938671143883604591393672895012525273233","14707676921044766376368757790370944939932987303929680929407362487754446797627"],["15999881677572992713581281440387046901476159785530955482271300288524097935651","24671721042523635958780797403884428162252334284404013225184614419081636453155"],["21858488850463394844510676422423804274271987952800686703619322301879689550848","27296507315311892452300461938322987239147601968328057649394676806904078523522"],["19551079691171714738587648452175900356727923907130970720506584808664846102323","4587738547298334961868407646193431904790384965638010138819355070004383141430"],["15300584401810860198830653480114102481254713292654087008488735963084115815172","22487085166320963965899310023875702928767336404048128224457112968808343047426"],["11826816561309389113128728745736672231594365358201930967416398151395111049547","11597045329845071432972190160537263614527791448137520804571125601264694399300"],["2567658585389305676048756999984675310664314007607525950035354176532970557581","15816049586636608501349869057831001378723956185997024500200905659739258855531"],["5753989063147356354714729346245977219565261926037764813950679248874359559035","16644958699424100821641050568647939564358026117650051762671617921542846304790"],["22236169260522194625868966186632820105822547003311910933327968967258779609940","23366175673540051388332406292823262167029841955966164498190320059151927783661"],["24038403886115242859025195176658528610582112109948099997601684099618755070971","17679371063132311048965266699451614500646994045934665121418761514336591179199"],["8834701065339982905092532957608394930683799462602398695763331279044117407129","22879721401897907835461337730522594699814877297220817825234417832245836123584"],["9318066409910621986235570655808209783598622182115684156822433248481512595772","5090718824182058562935823940749840348317325968553452841769099263604833572125"],["17101697949421422012288748098680463076144395880119388298631313612749335256942","11582660613855067757733448180009116346810065912294589302632945721647609797436"],["19216785774087881058575368893076330873546218718985599307887939112118476042954","8428890822769652047997140372062856304965479049090423953768970006714612895554"],["26395332302587723797693140313250919504189386617399876192773214775992980816204","15416239916115266483755347199577292460757448428352395469545308510104699035207"],["27790040287698241947998686536445038212468940015855436953336601512089255053568","11400026931904384791836179010874361017499926621913571040584534715414256337050"],["21792633449892549891813785830080093999030733560708492672825044081554943014","1866733169073815844043971375167469829315580728968540862563039899843266433766"],["2875382981273042072071858744776556542809612246168092286128726475795251170391","18037655751722708429668897681890473987096462499663151595566569386824199972364"],["1902738112591632041536904157512697895530150676690448134421419772354031428607","15464437452498219160064615194459599277300557922329037542343591289750044253304"],["26589280344203797206281532691243731044183525230191586755612790605283000160711","20329463319739454099951819972973307773349995405761501844592765282011141203708"],["15646523614733075667851905155341204721664805181977656132984992710042516982598","21005297421296217681560463389154516826499778269959423343080580603982105501096"],["2613797680537058677254727691173200216888051623002263438616909453361551613881","17379989850740709184305361610716676585598501258227088434308629610162337122643"],["9800117545377898653769265890361151512178340019394850788314880380241501588001","10452480627767037597474162410429119628079025423312487680144007496413678097863"],["15666855733559900560493939761308069521881749254604221571155788731904901848808","8213578285331263191756726357997496451272678030911485138609585029693029310258"],["24536406431838733992176201130772255572923107831708024429571025877086624666834","20432633846844436531793450768653452503300713771624862246856043330211017681024"],["5991873261661555576364859018739685626889026251246561262612954021379114945085","24440241136093526730259494249600447057452668242773770183604627098793249464492"],["2863666561350124026940990352372994520413448614868378678500166838762385394927","18645169457613416641195452653374962806353968288947793686670666625058253552443"],["23898307331942784442623468114912250985280027717660950170185070945598859043995","5161416166574497048209543389782173145331541889129348121241713727853696837678"],["25753757024369255892049214491211867613769247125476137355450008798378290327957","26519818683645052016430182131032523553321799729342718596508658494465779587719"],["27497535340034919834554011071223425940302135298338851137555305126990044260989","8681052964575500721381200982617149124886419831749421706939880178173736274752"],["18335272692410869937025369133308102039867633830360300358467841201317907754652","8235531766382380719843138957699483856160291838538315140932748291129447623023"],["1177538263472533360671984355683341854437338606500347491778453481570754000300","2700138351406330285480416075650600735300499955225734121580604227431370218408"],["9912907860206671163832937430233169137252571717928189097471025220250511601678","23089263652832632979282245402723992141673538276233402699895194109974645500563"],["10377799197419518356792466344410812816038822004165235608318154717684928021134","1527017198968728012273878840175427604067326911729304937816613888685862477196"],["23232775725750092165378797596454083053562954246871583578284640420493388880376","10175076938662070580238162754083618743277344467416400174932041674196234394154"],["10532072938845937961663343025982607737871447273133331422872893518984093557946","27870098494541897351150160803361885647846592364099924056600847366485738563790"],["1051967321408393554177987654350757961886722896072626104263888657426056138516","18542940008716098466248269691492521200504143763455098800332341757608216765017"],["202529721388626960465264358020961531393262020786882716392283127741375274301","23933025012800456240799134497523741915328659019865446148981077882150056377102"],["13190537458855226946972058012073183365566964309450270190943523124812867676687","12134782219093949705070355593741604402323045118385030506438229698006234803737"],["13720297737400690871761690403009830085589127227550058284265179487463093760172","24165767294046813962567969649594059259151690807914982345413041954035260175907"],["5904428713814095572949449244142868672992719097900332996899457925170573462551","6952763800345990862518898844353120287382251958125555413602661618151158055475"],["6582691775613425124860942156378529144538984250610007242610496136401243025313","1745706920973081148822795303158792021930941625132185275931882978939463828026"],["9975557927758911136015812486298274354701317939673661914637516378779559959200","8596563976016780980373982861150515708251521498884069956227318983056051840516"],["305294263737614360245573875719555232080378216258848765236930032435095099150","1502145000154713446122198710619108227448734389578238323259139393010692821540"],["25436000646491666181814129994357604659711620988615384023320766010321256435667","23732703229590074121713247227051203959320015125465631018734971912887228965723"],["25873509764762256003878871467346550489131090105869958000738292886934712406881","12758630772410884431164186081164161186725021615560440164179236755442420227023"],["12038665488630080151772041633235088020368394550040274766028155657081478991840","20625870778738995343279172995069539018356872444105275406793143169849415386952"],["25483626656960518529567186378323208249846520444676042709436876099360912888600","13761418372286382013528842469001567069175764606211550176673581730829100218315"],["20471485715383287149566240108533028231484537080287669667147926254840010860566","2386593130158298533646393544324848766402728470288905522108252998263091771151"],["19813323682071869530179455307674656652323771221929659849853493269133686923911","17442641079357256272958471682534716998695505213075803397898562715711974211794"],["21249177395547155911540866181378529026693474853735323748395292726738500528418","16507749595384129989536963657551082421688671565321103407071180145859592579970"],["24670170091218763255330835398040562493724196585315926443941484139846703349892","6902627693208477704661598576777645701430121835353098086980344239129234028570"],["1988183893578914975992920367803839050918039278376730992972041673245479591325","14492774083585543277575985072681515138896816284481254698368338679728967215961"],["8250920111972587674401255642986845626916346639871332395792055878865677394706","5248805353528647863808219691961819357701776697413796777369449883068692745501"],["14345591979402258353090631433751028643755722447048518332401882679742696913007","15477184676241519452271941892959892532710581541755049174910489617879985999538"],["18719115923895230461618814490443883391245855237521631939093768108392849455735","11244609507516679146201425769300162665624055395731036499194487084916872092483"],["24896811040601114209034388966166873973778972607661823750399197941122186827308","23485425620790495507868212285366827231121426540171678039732358834164818971234"],["8061154088664329294352030504867469896575638615629094817599948462230042872696","23104778828396111465907917112589225377678004822390256042569718051180744844672"],["3715922148819597969954084530500121008160348436587792062576947209266297056329","16819996642667616336127870606664002391524441840343870349495713001078200430252"],["17498340844377502597936164879639003421054157808357728713181989997558848340004","25530185798728535613322662889952600947631777146554908934904745346393830374637"],["619360678560646322632379326926696052667019341744237419649771697210372435184","14552783508550900081746800892543330869565669389366936058398809084012209000559"],["14641181261599197777603066172909325220011589066246140904382492766029984991696","20407885457230493900467108937816025809104834582675357125597703760726259509425"],["23300182717733812767579720464033213360228275584491017516277242510729912149641","10030598633239660153118783686188997118419285963121520157125442849247285937432"],["15467936099414714264108083780280024174867040674933870839542925639845276302742","12318775045996754419000342934627475785270656777244202230514292039673084869711"],["2897197419326460377037398817820327542994928612069712680090386574332089341393","20164820249219031729186007448115483379958334411655556234501331796653431215512"],["13859891466941653880733644097361290128280171603276688384038813143480777577172","17088948250442230526239710260802020086962795295234057091345098966264737216504"],["5985303065776090261265017148885768136271671695264769735376470720827828560549","9761088017393611922307902057010909480394822466569251960438068223599806065745"],["5817423908113225493393885750308096476217336672550122697377395084730305333152","4673701979113900210553925686812310031738420464885648956037656276225856565073"],["7146175817869203202851762666990474369336396091402263763971362597261875349255","23228978451554463028003129056883207024523039470957178661518581696476631039186"],["19179995663458295995733451816461035238197743157162330706573448716672779259744","14720773665283381838934457979280125153535300847628950610858731073661412745666"],["2774152234701279232621223729256107053252060959527385899271850604846567832531","11315445489844426557862378569054015613941984630844290892186539403188549744507"],["10202734241203869540450714533143795434705492706689067478257391171221234474396","5104339604935464185235089920331292517992656316001443219949093997079486771344"],["5006240416624021679971918399649016867903569313661015610916097160850857387442","28522420028475420940039503807706945675072012243638492346962350532140845463804"],["24133977083346069685193266717484755453088722082277309629649162557040850963111","3700329522538387120364903954672387296889611957112955910897389398904098526635"],["20886439243104267581148614863648110460150871497608429514622744688007399172280","26546593570941678644344702200461396215779604999951471866109085352154063508873"],["22383658528544237475894102223868331279769829252889880182289109499654558682532","5928436135613296164041877496532938254234133931011874263477034717075333084028"],["1562596624898527419496207892246003473473287028631924076568515454359478824650","11258541451075637996394482312705415231884427354870260553544146507876962532138"],["25042643792386436017266659241095978120776660282513988522711466813200546997558","19703743149297952295706749179035223317348831503831581187745968022375605550874"],["16498982126214218973466605115282072245706030765685333090793496109191382148167","26264279247350334381223141883787921253529639997864694126263771279732514506980"],["1538150937629568959198324891843025254914756721768370595638518883246993103428","14870155024309412245460985343058362156091965718811437489030815379218489851740"],["12042433120062622130684504344048627906444558885821070348505306433662721439243","27967487687240955560495024619463268223910559441015837645477705636444029156188"],["24823397000987116006400549812224701664775923352170103806272727232752190064075","16926980141821059681266650726563964003336245505190256325552791186049642168888"],["17143928078732061347058089755634230224158313171155885199007169153828907114588","23939051098639708782241976922000325291753746872064595019570248290591846410178"],["13886042350411604979642059222009027760257262005857403026903499952036131447793","7457916412696077571476881843104707883885588961337644081991194758110191972739"],["166775031630931858231941808765538221856888041691454845969476416680174732946","25593155541092349943631739106514757368308179441631646698474343548117957443806"],["3286441959021136647605635581014283566293308785816897097899793954025882391257","12078954423988475061213065136187625345491962752714950610151183283444005130023"],["24578599004973917523422628969368651953303862339551604147306011476107126983071","25578444281364910908466279424418509786593103698479833321241618105911933825706"],["18049191300864897820559408966506914814896425407652716579607214422501606880631","19185322795896235324995845333986631846031855018762703501468545895963963588035"],["3241708681442794535517985897290527384854213046468877184924654386008488572358","19831397621816406495853397369872489756801857991044448158572676062924147398212"],["25709687564629545874806201452866887553057868951736697298395858891987882405071","5590841808400366021281341263105623514254000912807247974984925583493199474944"],["3322812948711842582956696916332721712905682857896558289726728178660307772548","27932840062431474167062322065974343862159987217131277859210871703437196606953"],["21247436502758346481809536814392591919498170937535858005570241454764706471937","9363822921677980659191235133493860231588452062827626612461204635907815764747"],["17320807531894517398261432341123427824621668020181043617470619106784722797083","20064137463183423862631110684307085107364339146413361934208903357002897585522"],["20221817774273740297300825031210365374964355935346124290943290376487684843031","1024467573646687498291319437807593635302741874768334250917758707959763890005"],["15136843366780850001086879328728282002469574957284378978309347502438531079699","5561759875104639824950246232602189192105103825235162021470010217246619983684"],["18432259246087553592345886209736831613137916409765660592171900209720181175911","17917779871109257598450421529570203807562433131902746805527139340290968833629"],["5060489889993356179242007897048546590233291426020842388096244240846180332110","28342910455507741610389912759918990893672328798923103991678061853716293353992"],["10719286199541568982013745542782575173313287358486151938034620863019004180763","13328536469933798143873364548727781524466198616986645020948193302981303005217"],["8107877151166445932286763043606823053344495712248532608018520853803333916364","13184202124097248585339874016742011236442454438465750998133605590919298147027"],["26290230409864661517554225839492158712498082881673403120978459283897318819990","16289654439300401862237977637030017550700401643484162499659006611618266635081"],["17845679701363106117679721597965259755587066529663659785187844670219828989968","26775613508813205511529919665529880455797528816633662340968776325573563232541"],["24083412690545895253387534271341194705515707698074867609630036281532022823632","22069207724343114330675768608383386512399431322016725374231818339107455034617"],["8412708836520556319613704804838504916614407933656142717355020601980660074165","28229673697922777437373175425505135610799773459458500856182927840368135750122"],["4035520583509840718830371549541654910477755159297853219655780295311318671214","12788268891074303914595288752294130116090720700938027614681945359684960782836"],["27493987984850767475338763965926793066206190434837471663892363773637430654959","9607880901428005262452291643129141827433435061536984618922917111393108099977"],["11977184460362444273741545120070177200259830023297883786215666268139402128246","22110977140635037950615283339112837689935973948523841153510480735312413276537"],["5517272863649375008801097499823398025729737860923886545118998564605092559403","28794961008968174478736169043721535179237365152707595694136159521281455901688"],["7632434770790757294778212110624425784367473563054148237585763420722934404162","21500723057692734327259063783380030677105725444836995951106048017351772643143"],["13425467007810228883562268414689984946787983916934568051914222294910957508567","11118026085030575008455617986712597358808468773150983719101430691397942259295"],["3381210772020777940652751257440354880840030908359199509064494184566007582990","19113481975784303604124891908496948959284271547093579769164134351623268769458"],["15070719710560278956019961538570287100054457891660876386642195818617815480466","5462364286331723243125885415665249687149450728417478597775639297954399979718"],["7180746249058103386853944138860044789514970527678478677935340904272668691719","16111709533123192582918251004703461790317795572637884221298517035728293247121"],["17265972814965237985124018307750207872790329606769153928934530915952168148028","7070892370998740699710792442267288346111386217240073597976946503693643479201"],["11332393000522001451181845428711518995678377110935821587208745960926976389873","408142048105457109858351183076101170403487017256806406017345332309668461461"],["18046968978117587537865231124679743886896422524942149017303700445269727756336","13828895460392845048336913444191047791558324702985016604217561650031383453573"],["15885869332455310788932099363276308999266697709592490362523290089465497427741","87754575714068350730745065787998071751028419106473819155935040970526222887"],["16138571944519806357387603148729803160613754428017103716944100887690200113805","11326682634596972319211980961748876726443265009938614296450567449026373697674"],["27158525493374814012749598293235362345634416205841354681272240741509061017870","4570804337908521066327663295510874029070659901434491012929741465941845167722"],["3765363386886550975373419957646428636886201920630780468010667014522712125361","22910886830672506383232194071249509745782121061663108817121457182971987593148"],["26417474924537651930724106389007405272971257493822586168776847191377053974640","20202566199796715827024976484366400151160065997296502318385299307237109226277"],["890275863288145664803361652120548950573435866716893282706288743504062110154","6660652787166497677771075182715579680715421145102795651767150214492285889641"],["10610645677484302482341749293958271569641149272816142575761309067213503443076","28126872578178882008012488377056241513994843220507661526930200006662453361893"],["18436277211117992254232454525519571592074225942113018091062153799470702810341","21180269955265628284710089344904026917642755889597899629117727982646709501697"],["7094162199380923803865227129264276589690097522266964850083923009012215991332","16877865246102620305271905207408856447713265348080085717631302644957934778425"],["24970060756361168170639002879026829952284928545635580674990026790184174741037","16932513035913551587724776677565851980178197631269046025199438566541807095207"],["17523534349114299912274218680230628952324914669495349508228697984825056725100","4292164732850670771121450856254173907261588869537778365621080231714763451881"],["24725807744892925972838816913706470330914165354953928944871163065738557627901","1811914252626907387787702718282039739450433934057963613717424273003879421148"],["2256655750357902495748291860538720492305282988304906767741485049643285628871","22442512778062528835898109118685986439769223522000043524076062613840363781326"],["8754780706178002074747249031283831655101418762513791817548127250880214759729","2823483884686437893926037693917540795750059144940759977480979752679391149171"],["15300199606990775945626071995042552454701004573093448234174646004510976442907","11519611511800940489737119991149783535426354208638454424613720076631293173072"],["14639953301020171781649718022704630093690831666482530575531743136278603550458","22723797333567348475933637988312601706795500297774409349841821409253642674818"],["9338406290006482243583890765604640950922383617683878792764093793207562239866","1835808494557262168138662377496994158832076451572603580391096329824185884219"],["3223624358238462229798640047503680468799660831723266597029603945493405780707","14229587804023610678524198789091087240790142829752133021606010599014644451651"],["16214518453691256999141300579807885868146578468034470948695839233317437173569","86916853808178216177032238088331346746807554171326290169528873317606183931"],["16232838084202636325896369588245611804429134126394174758757349036819079129398","12529523384237298962611908832211155943300947382715450850741828929298300256635"],["8104075684169622097752028546858015647224808713590335244755376920208117172840","13111712166707001682403208632996342025870294151526686393754233542646329823216"],["7270786870235604491501339035328890657068517503201042434358455564898514635658","3635054480184262781802209006132771529806573039210042284329958442853051884003"],["5153952508740217804403791205874517224346137229601357773438445693583203999384","18248198562357492996280957985669400302474610722018369573511705502806636797997"],["19014856929722490800608676777603427679800141462012573673140312376683740004095","26200843526488568090320752488965845059120468911409926371673758524906977022501"],["3630554935999861190303981049007133109763701351903255056571441054610390033159","14954088915095655534616252115792786654298127900874180224765741434327741884680"],["18835815829314576453634579878063194545710931921052807754815412800601009566481","4647736129592940425117145525632806861275235348778437794949342425059477817555"],["15863260931221477831368610771519911123681477329617431956859340495781909601594","10381402798610634724771502020940823418009639157083069462127316918993946707141"],["6269707906085164347089985602628006882723401589419109602719385013311748350558","3741013136259334202142284442135507966148821126483563401788713903154281234845"],["5066051134980847813060997248247978406887172042755975179803615018948586548766","24994275636737761118124298416493988321567660195122827389420102576042525258520"],["5169923996015388779812625056402526561332975442449468916000367362771758498884","26006050867557096729139828133802331143710437727280932805830904630401265324536"],["23033755372792835471326209722819001566290189138410333085048631519337524010231","1442054963149735172737443611774535802405006136478893251773491583370416399957"],["27858080945631525095213293023416737980552614191573926693788331749651236134117","2160331067930519864874179702256700181230982602309640857173363694470606126475"],["667500823613621384549809733419214010983698891852264589721061893757756242790","20470452392164954004060390543524697543520510949805576443773583308543398303693"],["18976319756633263779588183100406536099103541168985835704835080168626015729475","22662654537389436140020071053766601675958278312203032176437176739532379821165"],["28695637750533198236889111194928190997862859278934832005348533588189678055716","18661716115341308714976374382887582905515541780124786486627914400310403716335"],["12991778175232875570311964833449323512217429003641687503857944405574514270904","14511626507454262131081162386845717189264240835755830230026157932385755129002"],["20964999998980278611562252502851560804710655717087138083455448926135292278642","7413260283102482587282662044790714136679009878241349496237946824210358817281"],["111741148343225097527558414160764406190168460643741471997999108836908971726","4325276717046595726095245902611899667338939804596414705610595416458513983348"],["7808471948867574477477206970677530814923322453932608750184347077277155169731","1986212128624429860043271001026949603143161811309088492723915806032698193432"],["330405329457652344180740223363238007415637316667804738646277214638646041675","28794695614413838944932374433713248481858498066979868769985383554837733634981"],["9163221053997794378870653398652415355059913522025234912493102498928419484437","13235154497844714237556979356352625959047005457124214302845047723407645625435"],["17956212942576849397490738789009918438019402062230603612120018408420110008537","5489121996880423880868578563104249855478798229647204392278432821143527647097"],["8286378383515336402230973069379847949957925951738638954449546123055381607127","8686379922253784268775988955321625781616184402982157435794104002306350502118"],["9888868852560670904502248114653441589770592187134438796293607427724008768417","10281272748793880323455133354989687334944063992953968195397976662169327910120"],["7539699991051678913155391728126315176767257847576575735752721937823797429953","9742648138999773477412615874973500342425352717382452731308899586263265636201"],["26496632939865916780957933949560920677742346232201558137627684994224635698287","10324945665478849967957083710679910512736137937608515911113171021631469883415"],["12783028346953823388969550228005838529000715080730770735619061934738555621149","1404475805574198901361202637379739145766501569367864150783169934616056583613"],["8867151404472074259510408418442877116280117236582151883137922462335387988472","6715351939277513346129013540441040994116587821706829789276582102020700781568"],["47457841448545914942910176449104102467259308943913109206028749437389459483","20355967625370783095824368597572106181402347263978639118184720159022750631846"],["891438749266215075189911542205124492364068574070116554302869463237880523741","17816493770904780411090455523125003433650949801118347147078738624676123973811"],["16658795249131429809039058873810253434082204867876558277483172008680263844373","8012393458578137675325515998541784376232194461673639715500631024875130691694"],["13195758407462572414312594124374916302117832231786419251606419364004771957443","7688301153202229728049402009849759495572316921681453190691584462362898364773"],["24635708901072528788193403378316537527835313537874880877363671412048069033675","8606544290452440397990439790206367751226215287107702418308013683678710531711"],["26765600050389095771877818860701516470269826496349842013864947215645322288822","10066541509905243358024248328155903840903895581973031489775874619062375460951"],["3247981421434342996046253849023151947352984389770073182534060955848235583419","10445831727479666684273902595217350853392279751967414064602496444490802082793"],["11381170898800095631960424002489321013390350667275037681139322868520150452113","8855388357181764206299406659715960488919115100832804070617719645795434675600"],["2973914886905986567266999145858977405381975124084110670074860027927446210449","13766877965867584655987459355272306430834151304551774490726377929553386028615"],["4674848615019192670180977705404544648765611308498308533561712615701029497847","4719904836023314414267303397060170344934684993770108891680220520815900405583"],["4448970386922476717751999824775807688788385378094279810825541712310930561034","26505773430567869066590061354522194376226757177566957163349010288286366992468"],["16746033146436791988173592947494519435996171804995451326869312783879205280694","15686764716005407187835449276161860248764388878645599051406140877752753031862"],["6527199777318112468724369214692798340891245492325100073439749242034871849100","14753012660129384439128697325620201200023898865662206870680959542672375315252"],["12939027264271453194769546828434215935711141988146370080096458282797191083446","18684677853562356085153582340462531343662372117114760471280071610316650265529"],["17764119041719429666824640061660024743004126195075124249583156248290138575251","24064262691935144649252173912260470729239067969140741252909638602213928504172"],["15130299952189064478245821955090678418123864130176767407947581134773017548959","9112060296793342940595416832380437521950667660739418715073848819176434758831"],["9197231462649361922844337763226410203606265237888218872245034445978497818493","4587774546016141255661230986218579787867359857913448144126560526121138566289"],["10529291673139305092885902386833853224571031649979894005455097317400699301604","24385137221422107290312789714611874320940462048077134858886497675192084998989"],["5125978261671496214634487733090073062093513808440060577100245091805430744952","21046616838846698444660222373807065446401957601448955628252806561894944077103"],["21505607998978468786810518335257579251756360511171247686207799097755973015508","4473183123810917969606765217180981291091143978069654967710884212711381059472"],["21839870308639536471090749783371930452838763122367062661961355166342928204394","23988084215380846214802786995646933050800101670690148437930575627890462466066"],["4902082343582564593292544565934808637936321838702222275367758185494588811153","12038976289381318882782050841165157060084909360671853495103712662824832706493"],["21080780695334819398601959856736353392752219753567301357767616221554019552321","17544986494519153565365610595324719958685923421812478918463720164117052402342"],["14518561317078781265191344251247361842884164572179261251157835072691771858853","19842332349009435480337802909787929668232305154055777949473528361477201396991"],["28374882854069635407784223945502907276302356821706082692248445844190690141188","4223123272330935442446551540217152708785689904279054905825111095314054081642"],["11415522306212380815951018744021374240541290764760358741173657175865490461814","22277018762972778743075802712915414812550212536211554158725373286453201358822"],["8758374832381321945780517838590507207936485873711949764960231835139521493980","11954639397965506527431777383768106071683336783507683799879380577407434890857"],["8822965673755821036065197377437688508232319453042092200809215077892634440754","4825778781315531842015889192225133594011767851149804368964319973756994597483"],["24741275564534184081801532782678004875767717681015486237326832201288483270850","14566878214673531706532271997524415961546784499566378805964937977730418767521"],["8087085595354331584690328964690671081322853593144120214471823099048460020473","27408108847359251561663088272446447101405069527576631605349045086553418595515"],["21964829225775581398492745828391302087430271103079319755912314772114107819859","6855031123914595275387228482599805704588470866240894309194127277863092316180"],["27489491919289555144901003601856905625004053697196279834393404392937628154349","18937738587142131962937863128986890862631853464208928998586071995813952293092"],["16040267757456164753674520100352544730366116070439859610531509721589728236918","18301943465480291455659900480989466709911248857870497388469547480857910702575"],["4090914580469399358253685797573409954604798388260503762137439094593465025045","7580467602504081927228301286707201140095197315458611482194920751615955193497"],["436828150768358820199162678793700895587158143740315269411283252886943306962","13425143854140812274658255621496822514796246260490883247501647581225131136304"],["18310603345575092377013026793378183159686939710626976439639601933175331846262","28239503534900953109659112314555965798739770948207423752541748618293529641596"],["26973970045429490204781048370531588936775925293062644580231395193920578812510","21303084378794515495394990287596478054287350274206503023142078915284199959786"],["25906221220106148874696730483477424090419620693488281285929009991884902045238","14453075165246268201930562531722298782753577186335783451804005034657009625382"],["7539057812041052935201900967378909798624614324600411252821848031636122233407","27480925429972211694925398242171110630701099466741893759112004887189563188019"],["7325972321833942796619820296831614582134672271476138553494534760188246659930","23577191619741037953335809627825562950980313127421255508202341647870547333131"],["13046469219404964276926796895102703117278306448701074478239864366354301242277","19013722643420555967029956377677348631735719821600205783886557847289996298356"],["7680589286701829259494005213564176442234694009704903988761704220660196942346","16908408247457124487513263646068358524689830834549410311237937181216818763349"],["2579500959097744501349166830743577828958459751314731702163541048938976000987","28699563259620440864401091750146201716571639472682141150137941277705418602294"],["26034654159458653581077890225655643392025805552250672521784180195120360018235","22207151553514466127101508056864238046108899450954439208714189096710156611707"],["8015624483526028387088491997792210237603590257775958071858904640792038679971","12422451685218011241811139454671115894585998533130902690836170335890164982033"],["12217716502571664803614896627052596986342769662731543548977945721500520699892","23160024219896475088073851833638106027724993673570446030796408727251587414995"],["17815167140176053633248893884163946803659279363769051923090016745474011748693","21126528427494839973373101678302558711999445683660835726869033206728435517109"],["18522923549437760374920947849070133981254624106800865377852876491318400874554","28773127709485548017257142065135523895224265261888922060216309649243356970714"],["5461672487020439324560366844192035191583061354817593453663160337029989811092","4603464077636264185299664534836197705012105534162055016122968487000636585450"],["16896012639223848785990448285887214730715301270211108743735437137480106230757","14333500955780578693174440309237471466034667624867113734525563963515764424669"],["7858092434817414820506781485944608696557537055495985239277980875536409591575","9487048101781766317177487103651816867771025626618244056380367098495520387948"],["10497323843908608979769656871075805144646835605602351304453408730648445913620","17948780788580328513932858331572533566923399026849816313787933065031092560212"],["7882526989006066451686522082215093082190286123490774800170055273401792328706","13169312638244990501716305045890062743870216598399524637941698579278512860521"],["6011759762159946451188583449723125573005569020509357574137538752452640820708","9733270265465128229662360668977585920694067027607954122046684083105908290998"],["19852958732358148357422663148499257819892719618044997681809313826653536279748","27188472100037650031120292553264254769744152358797955915890557113377927272999"],["12618655713337859955223998567143840430199247614264720977099286923016462600016","27051563273926905457370039767933775551283853105168876656968653529703749288622"],["7196223601884385313264970180888858140924436899019200075485706058667593714154","17925702974048783978125214953998599635323375504632117389657811637137965401076"],["12335049514282423823892431774561455406734269083032971313581743743073432879648","19085490775660443937708799148429600974011988764760117333786322996186850046153"],["18446942402112677645247082517255405798010768346001383092531469393980018834237","3391695982399510818534886581129927610854349925313723568694019812746091553730"],["14248888664488624264168770638971849308471283799810499576927685341182122925351","7015625732374735092877642370465655767609335070991226253631661886015545256047"],["23675991101816978493797108794735812097067157842499324532423431192289292371921","13059130477513050656449695215655615777458628556693056081144055847645859260776"],["15917440573890724579687180411752116751782940134939759876177713973307099671321","4487103343597983015362449714894219140138882839671033016476189698024269833960"],["3142553777766617931790328124086423664294530048288103447311371285580100955273","11564136694639164337794638561001504162124042042418115403582614505872188610691"],["11385335978326930149246223580605266418667381975986114099474929239595949862592","20465907354802244179407255523048614493955121899467623188999264078155678483491"],["10523232411652122195717618424362660076591834922584338702137695118604155597199","26484040864622185104404264128459075496026995878104460779481606346587258650165"],["17159658500303658070181315881926928413332823525159684018117872789151549448712","24165012256406360403583955632487493359113016418018139496017017275797833188213"],["7817977445927300825443359204106755440035904200157325925388444917633197154304","5850788713488115951632436697111373318863170144991166075281831362400002936193"],["5845510225900179150090151461150739776549523419922090289556082198654595235428","2947989109225439006419742062337977915115547848149650839806611156155112755418"],["9665097078520268236846166565808943041228360411999307490445128383839277237251","1985129709035996390142015850706533895494845920863407091261287184819603720275"],["18005968976687981362057641483850859662810144552361087668306178399072961893542","26082637688215235856113058773925563248193801652077777924135653568039824134331"],["6494582492488442923190598507223540911544949536032127088422691518689996522817","8945803264099250413299463234232990247574581324550715224544529294113182808043"],["11790203727914877960940096195480422204277287052891508902582332620210752081509","8654876939811088442581648264631878798730928535628738292192501404126054797846"],["11798490962472200147214180109408033867223673653680125848276956574391411398116","6086893636303006534074254411787618073023933572759219015470841645783172054224"],["11242117462074368371148218270864398577178252292862674897540509295067104776214","28760757016458065277509290201946025161590328802657981906550111422478807181979"],["14811682624068512121383298278296184130044566791118149363921159306437866625895","15752618837019022460670093403766876826282515331763129880807376686857611423886"],["24523661163433799912578692271013321193834014542636978169690891537921899412921","6021576223210781913271067916394897810028463448505815755437783861732433266699"],["22722418783008309066041165236382710330356190113159251639284238436975432132352","16368372490995819146903883790825244434127909796974407991220752417661210852050"],["28014909657358542550066498600972616004776277534572524413562736197744152916142","26658470054772104255392190237721155343652277479270748256424256565465560897008"],["5761435715066223199997749892081299956490843292642959563066400280030880402971","20767850361208879519080686400794855598438378148258809816617181721973922109668"],["4374481065534717083504194509936147319136989262093836108706656862378407387269","2527780717549051164396987758889665450703829579210150534482602016175569183406"],["19781694347073299669627333984014200025038523593964122446521282259487770919405","24093446514590128604611022798135751772137016841520748537178328552094391721459"],["10666777676955848405071417579789750698603401599787355477059849897542691526029","19889460378590510337754225179623609706990418561126673579038468440505185395610"],["25999471703015869315914546409481704349166281399613685211181992086195934447797","12704524171440243571128309189482634431610830622968469940227935521811637922236"],["13148349092982556908395721332548429106530349258082434486502459546439039749439","8669943701110506296829267771950080814372583714940014088159865211041491356411"],["4204444626927440746361712468611494539019961603316886890990397127442199293360","10267623596788177747742017592841770564794776129389354648787887649961634944564"],["23198534831967241500404498720589789312490899479768021005507262517033627148813","27576589386608109346471477068223958202494699047974510806218493954825373738412"],["27121911578957822094075191903938229116855883160839808748380352995183993685837","7601547550218550291394360558036543385919837801284152532202486174837888913227"],["810141457172636116136205633516729766597507435230820213139226196243620676239","12936926742563540950089491932607340698924320714250944788532740246561492476573"],["25148677040871206990016794696939616648037219205790827357283868906142665643036","21083143857451408020071129475509946918689049505078210927369836451009598741579"],["15999288095140803581541320673290608003735008624275102466954016359362786914463","20332538899134012397991778788585767062054482638597602789593912081841006454537"],["21552142105932374139199380511185038658650926049860884101836846098120585684503","24407498235033949236200615457303076594652749618727189354027975663039193303568"],["17872629915777526019242238147844642716880378273121816279943915254877075933801","4387316379977603957539170464945477970974254462644705874073120130214712314020"],["1941706196948864497767757733681370771745551395297263954301259004276308196946","28683790639489779329907442516911403257068205560492799420385994448793496597534"],["11187092068994035068233773033738565862186746408956239844134189983570115703550","3406565907316211702956245236956883047390344782879316897727780675348417552715"],["2939898614595616154987423526051307345007005103737125084639261003853855269019","2707901289028790540201335183925165576830458030071878668604457495216965114520"],["21520567013604666645182422076005129401605738291379147035707614784502382350761","24700284806399288926884477325604767087951953556584617119993035702015303802683"],["27525697880874287124317336775500217779615294158777739762131219010050034017849","23075288532551072647389471796138348141444075828252130865719893419209480031550"],["20422354649379893574956196001494726344368039104952134281902247902057548559179","7573720334373295805612951286664208097333453351293453371460205614370843045611"],["19849717294030249223307041722466842728674448931152320875749253050097923022877","11507449106707249405069468940640086016919299178292424833065702543257573862486"],["26838305345144021543554477230326010396925943148457644297581355447876698227011","4235007343262973927455662011907201420929030388538665049754294365620233371391"],["16088526418327945591011515582342332118764810319312020752191928351128435483795","13139449296062148630333035109008474766536417967622744524424638916566554746535"],["2237106820957477130216209588189196130377651725762978703434259903529229486877","7305242132312954223045022012745804046924112522722015776945582798294546330203"],["13508624984463284218599701753731797868022799959931848404569865887641479178052","12000743064818383651269427349209859987201188172530983043843020877681022048014"],["88001057349539844492238024659884280822277359609079165866466060761155024725","10256682806043404293723689960398837778359439182476420862801764945298992795238"],["18990652396098891282240260431497348474349784910503941857762627865763352221445","11529746339083260886222023952438772933848878375279916305809793068025443818584"],["8734868573134966204844768525936969655994226607529522227530249347623194859868","14361975147157725009994387524557831337136308526566457831962826854454093343170"],["12289212626473956079599353907262340272945296796332647160505138061177659940178","1812434275953448060005567291931432363924372076175377598773083793710397239067"],["28773859053925554464485754939901784724390124134772621606723269875908571346185","13212954173123712705797741653035458275841590109971852745532927805730495944032"],["16918234319269219693120990484638285294619990864963841557703859363463203941539","16691455308571890752946405480075356772358041102120145343151161846182890872823"],["17718757801126340203057646556556717653827471793039502229736479335181024047980","8558757316267085581760575937593559254188370119725949208324552936978037796013"],["19491271017664246092831000626670529456830191215984436938928472399233899789507","47113352731084143650774888347167824132066444633748792113606494720055221005"],["21215169634312755590756187688216024433611962603102833770979443921080728961038","26327307072079171859373559256685616271628104773208903432214969856199699486800"],["11752222386838824780702626827291538435970871397941473650648008838058466515346","12689198399677799449697105984591140463970477510998454108418867824338151866520"],["20584370737358210108450164455869172251643772315555297876387920302326860052355","8033232188852006358652041063736176169121977694352621020556731603789307330319"],["2525599539681421588540496871977500470828694125194493574593559357791925021819","1788459812551265527680687571335614393647087341176124338521179162983872703864"],["401966889934344556512853742811965691306689090582075068836976717381832631382","28459409646763527446552829123050301129743834970083738814577831369402001946323"],["19158267743527819575419890081165662375044715012724931655340761091169598335874","7651251652393577420962918652123000064736004410072748091973489154984196636965"],["15180106437398871829522307764481058578697173254471967943776789706670557309829","7300248519650767973694949077870524288482055809190141919445911341381376925227"],["23620503019135625734043176848833440337092700755827071150073415785134765329834","12033754591100391014726380162336198501519853182098503759817316444469559624962"],["27719428010326763212910313617538451155863078429311697195699267207907614559156","4126667423714869817636729125404443740406155685308828724077746073676742224028"],["24999224855622916907714606933891079572762181247233938652430992455372949180391","23527254794575240422113849630803204028716106988439099211070513137461548684787"],["24371091167840836673815429210239431089132474004265536344673624256444747627935","25351285981422595886464950541382341667673457917809760934023192489292691583887"],["10574607186108192471949088960156409962938461144690069009815764825171869768169","25649288287093179384767701344557372844042915147587340817828607328833266025840"],["4051506272961108245101306368869328853314813113177772981190582841667317232953","10835169498147395038403969266449751620536494190622325412454035996084349822273"],["11402087689872097787109482996134223455554527466936788009482739139576774347634","27903946753680300155759922452057717974934368895025943216832915375686655068702"],["25598776320157306544474046092401754200855101437935788678334680666471468350566","27390732587307994358840562090220616931021554087202525162623442542051119117921"],["19165569053313787569564879934426271526625837719519993474021121208640668997394","26699306998571794995393058457327680430182084509649468892689331392650109000630"],["25109812627789594451046407183857809974219558277187918314854034352951984709040","11709303240049093395009472818794377314073509154587311848348243277176390557831"],["26284845701001243419361102765396977711338738938015285425481223527574311382424","12841968068216183626955130088294503297808487577055429864186822912880856100801"],["5504256158992139343709287468386953457826094941564531547339078197078787901647","5132980948191352273280143261670433854807560849880298507439394672658107206895"],["11961984043586954791898459398028659565248954335248772421184299988703292580118","12389003832325321306304848255720863255162190924522891859334671554775226104764"],["8279241147633171474023982024490194475873768984462710717746392372135425232289","25761359397669642823791326039652034720588804153930820108289275250647934632452"],["23068464331397744429966508303101364192872856609163054640333218597276635137629","6940901961903485903519632097038661519096018202814621914204789193859502612115"],["14673498561752336996347536503815315977320490290881090004689283835896423910902","11057304202330254045641841479792497200469386698492670919725375890071539006788"],["26909039553072066544502406095339150163263875974402683824569510856071469876996","7353270232298241900021725332406319067970679039886900546339230877968440519175"],["23853670486760311407073116158917217371123831020195723679143085164719149742748","10544255686147870356632262086083157453055152054449262331635277878164110746443"],["17192804025802393713179239435236539193367523420520058737379819423511679384639","63246962594305469336922750905908023167693228267843648755772521231037294472"],["10825027870405825451571004405433055953816242893547825869641237775947079964025","19854958140816874210829588860541288192855325000991076394797577616121858708762"],["15860343934660326860920092924613704131778830183761191082676103133671367407693","24290476071840390437597738956817941722148184368924908536979800189632408325954"],["24961139615256656424544061699266983844577353124056356421888659717899935404705","4797765723474937102305961105055604530224722411504557779495242290131643868320"],["4404041453201610951371939970550281392600979651601924031266413706605616400541","15498644057762628535573782087481427571758367945927174718641512141943069283470"],["5005823970819689335803460219494908641325544625073987021098580924368544007332","283330273628621656122595602740494389281588849749668454315984903332512691786"],["54758177338902249112003387971802811765843706803061652363562743387917274017","10903713808518048656822422227442617767984052441796433898376564828130290254362"],["10287190901021861499358545765833476760491588159167304174917286725043226422019","24791105352900486563652627712897609889219358564337552730082823172406958087408"],["5865386789018406418666253599883000120295566179807931933766619512531236760475","11111225911675401760236079460591194443893960898059220130638137695047758394816"],["27074024750019986375179433664660992825715664585218919748826734411236206468103","6220236179195159958454919384278192018264840998611811831259658915913499121116"],["26987777032956222778731397134481954597219499629199184361930935383414751093103","26308801618842691335795055332876697806218423802314607496635175714950320273253"],["9450038977724452807806905742162490299884820667570976349193864851214180919554","1762243475440622444717514149618371867814001410800178463735964837735303957826"],["8187583453968268412065883769296453388524046272624067387080371889472598333379","11784942444898546265208801753555090008779155534090946153790048932057877836277"],["17854041082532170600426656549415422702406766978406321783215114069119027462576","18503248302493033479119757294650200766471233189347845231925021230065674539527"],["9503915712941457088797446332627959392394115155516373061842981116818964621129","16528684095265883495818322847994854490543504228745648391781345405093731557163"],["3974164954359456419880242863101239556633929563848073988100854385615664454736","4758099043983017422793526412164925192452254095548472680639503533596946523755"],["14630558861780845860777395695845847560605363791098474251753379977576039432494","21077634161092257127434179289779422570313557430979377021595803104842106764587"],["10778454273698641862701299984106334708685937721414023498990611254828789507906","18967252371778564516331928518411019542561998755342883032348102015097041470833"],["9187754598875448386055057156635064610678613304488786056510569000086320042013","5393776755223939873936462502284703619742752784198917809663924644978846157351"],["571335821065584795138854327392349945794996371302430024970907168137800129841","729730699702369247382024617596849465628969226830211246528046614559464047482"],["26687740420437110706768766710472480208744991979844075098603593858609379522670","13231579995937555926294848779595535376768211160898717452447621219333026709789"],["12195037718186992153823755644283705626359605808558221206739911562037931385370","11490404511101384955431649573623414722953456266144891486867233037933757782670"],["13149321743604484136847432670949651643129920140467069689450683129452732003409","4201432586985766322440350058930366586945753216451758980824842557912141401469"],["15916292193096554655409780172454857478910125138763960299185331042759597255110","5564689168182883173190386795555483421354368227151269005406999994462844204604"],["7401805931865155229533157830691505018002020675403450492901575497375765940559","14790561415446932932071835541511206922863396599607342256182242143497856964840"],["5945257875576695482349876221066895448449211580223061243701055509600439129829","20111263038460485882078518124939298136482311775110675723795370314172036295936"],["23807712714799503433236298281212611613199575401766969733982107338372138510178","8563720886984977838514125266681226649862956269681856900866225437740140526091"],["9268630009544085267864642079820704827306626268553685605983494957566366274736","22717844849798447741409789496004314671559747835843391824536861309927398772867"],["4073983859792556813254178042070007451049252266876125277357430693601708798026","25432487985727615241650060406052435399152817771802501531684132837512663899253"],["22638230662435818103437900492510452163803469368504931049925874400720916984963","12701136153368130054093247143045839804182211174169304058262319141162170455387"],["13142595106223993799219311883645437416819272560999237382721555045062486698226","13505454108843448418012619769349161345757316362307738974392598751175712635225"],["9136197646300470374099749739552419686536190485523185898427653086176958682326","8277896781851570661939395883980596622670068052584430713267577635842689618919"],["13013508314335717922739804237127034889090471284159623672786453965069143900404","11234017958377532766677352879395413885181604559828087781626688802764628785095"],["28210013546590259746928665971231768918154054551595571847012060619891629133496","23064505378205552436960364264729278621293136908185270008910703221561090352011"],["1796726267429847469505092592756283836301448536418326954302322149840678129010","16900059234383938755627871300930286626224446855259104070017649122309153201148"],["4779035627952327201572116025220864172773182209998664741110454068168325387589","12948316091556066808721793343687560607732927889863609742095190277114318127682"],["11172550812265052231468383319697699077431333454171842748867031739748867836589","18122648920859334038351903490098683962589386274935846051401106101955064486408"],["15546908626874812921173781244692747508466394980956504896518342011258057870482","22027815246755691924301937441521496432315410173223427228653862747953460339873"],["26998538959898339064093172382986731906032874021373251997114451486464077677375","11810042564371768748292463281531492816270621478264074382463717113963350330244"],["17850834740951883826377191803123712207582085500658635410491789625178173253827","10484871770725004837124841039922606053926371323496718167600708433629374942479"],["771509875686544658693652576798071534019937698782251821285657412519206507272","6368057946513338712418570161979710721580757612692225011957292416898440903015"],["14728173051183592636414418575705900200527333837156772537443239446899599171983","21150819683140787032780582891486220713418452725549526021385527010430731939100"],["27693879222266376984916251076942002085561950568368037017789160412439703100869","13912310105942747413556565434873501103178855740678784594253248672995985292508"],["3096867479166964008239254013236206887350346262224944259338708937160817799224","3114000523378745595460913844679253302889782231433773129269155221583533014894"],["14862530947314910751987429800955945995559892728921527491499323283109568848958","13694083968050029947208942700366783482084338440220668996072495444723414358255"],["23501750145276659070260786893086193854435821019128316897364340240786149288383","1702301166289694860457649285842373359704135546531123159667511474406184604129"],["13134047259543555719343938885275047821222096322673504008646628779104240263166","4565862794755064930332325107876232751239471366847229451418211411339050738207"],["25006446122906127157958886712828161275010389015568708430069755083408093453993","7884740283330555088166659607066172341113364229727787792854242622177189486450"],["18940892928948084754040988666038668451055768012932981470394255575493676581955","27271916589506159118664959762892829395884348174498461572802031543006162361875"],["23219119499338730468063807299458289441423529739935303075730401585283185302266","18908626112402741513056804015427921131319921120420187364222090768120304592710"],["16499271534836771619080556872444657518199132353333370438096591126551017128219","10137866079200604095033693026831418579240326888729139601635271618894477026742"],["4847025496404022091308200512820492324474437722863052445446291449571174966210","7054519365095566536195838132585832217750403136646070523753508184803212733270"],["17843021670791521810727936916572438521567490788748095459488801789047117891821","7216630092523850977722800773107448926314198285878584619332585438233731675607"],["17267590873709635592929744908776027612670318787542384423965635652759177798754","12093920175314314276567125407735809535928690555406146378720873016848537979764"],["22037109069253002870355895313462958060176596092233886288778727818664889416413","9180993606087912272255137743035180432797661168316579605278042865271681649070"],["13953525910471374776935871150161532051025794646642797119865132604222567259819","2655578315090575685798659718444431523379258240504557387236395915206671061980"],["17954274155741750355274970712796135279244815803130544396507778661957576276256","14991781069407106384642087705262819521319084555221077414035141508694701600460"],["26598800810483299711829797148060482617336814083494219377156497668665854358719","16077903378324688769106939139785279143457282714284827261186008747512808670922"],["16306832196136802630981052323898509917284949215987999795972139511691232942581","16536449512197136022698325310205591397600034403098078140828687898792513559647"],["14378489072158284361113634011811678232524383981047230550405332223875448016544","4542303998554900595766042896486689831415933344051898063705200884613813254792"],["18598383818093685839958304095910036593599259179162651441946712386635038939903","26827145067506764591255620761769327795295536001798957430731092316654515048222"],["20137072336991060999212162450538139265986591369253652055609874381151817261296","13579001712811420804377560095057302403014161749377062764879019171282423329903"],["1530446962193746546719195937913757861886991805255324021064346554863821624815","12557803106809117754262656507993854815185728627815550731153039378366694881386"],["8780408002627251680291266112895042232351412861300881775763052525612796463637","4067425624601501516562890818563057883248963146912477141879843314421391136563"],["17681644895130142929600888150155388818423552548575029007154045192173477974734","2663815708236427388152796294550877428603387145229537882865650180953250352913"],["14777806362301751667498145890736341517538141741107611754475312577140039846146","25793637778983415270421249990013627172176848833187349580090833557701084199089"],["14175920755890222640912358601395827834189511182514994973993920811882923687747","17808914161577835174274770058591457086593290081007755695930016654138417540516"],["11694136893067022520134264736790231828442187145500429358742316815315563870218","6463748595982228228513812962356967921025836167413400140404688045227837257326"],["8023727129652349502013629742601556801923039851292047222971931851721352185075","688568544741082790397705655291565038986156216982256122518979965499674774742"],["7745190273302189963406823659969407690964055761910056705480128324911581847031","3340954667774701866569271551058614684815284492965871213352110209808442561525"],["12285558512352897286332487434345715858727641307038022850563867623065276439937","22534265552514596602443946436714839915701687803531005800949116967260287174990"],["3857564632944235022472671876446701607763724756212353181025938586393714125967","7657902057863786480135934229494829776505264460136186366642371651953638930909"],["15142423024669779238529068527062388179066641006466296290367603419874779474015","15069342815133022730021902816582105929954260899367230473727936937868038507085"],["26164964003541800334498433098055151751711033439142820550071050753011614181343","1870121359102998538292134048732855385482493043643029290274243433850860663178"],["10056284334928186399469799741793567243354653827937480105264196982088044416013","3755559673304667965919201398430798382460895498528922668045652692664818579684"],["9631651075552230875089604599323330623088689658895015610179898183176613313905","11437922016602535373517525852523389200943655209199389130576366571838417892174"],["22136588630107786709345517305116992916525155827017761383295909729153160159036","9716881906792191139237616960309018597259372409988965313409012991847676885334"],["25789718988134212066018146283318132532715394534992031700326632651879508916338","7231091231298306751992895590145783301008461885620430759566601689536986396718"],["27567015746748310522173208941222986944726800586520592450785754764696195969922","14416410637144293990032432424391029460746746693126542628936254172563023350990"],["5492874661306156908600156904736014291563458136383639733796836148085745030316","20071495795927282842573634910745541216758231992899493627587546529878237212222"],["21584973064082290749769500624347400938832795008011047373148803391857779757308","26723584340657719848747663297076353367374022857976557119171688764287492964962"],["16381258624126667619712030104897838078186679476273963528352201980832230317221","24054163137669848739347911913500574678943708097683237255948724975256203353911"],["22582554116069296155840952268213800985965758916627411284155374107381082457086","2946311028664113194100148228678034881466851127739010732322934739827262530995"],["1442687688653127371470234841479521867287697375722437057005825294605192605180","14768517874646501977179106407054203154214547710059930455980372265820522967068"],["1707637037536526930830862097503840095502041355440610586994185151191516315557","7334368153141727523785055644476662367349793366829105601865687817792677144128"],["9372042911530949540173464604219850097594648952855940216365992341127438020375","26466793517108548055298194833755475527967105764951535068804743927171700270517"],["16203564665337604478773846536890717031129720161587290299356714449985397523084","13562769282321472376944523528698345448302640486145385938742527006866791053949"],["25723011756406095166575415244402442172570859229100878235458755727321606296767","25740793556285995074724531304451001964546575639871578405399930272643150490023"],["6348141574499779720705415892025588910608043044988963514010550089612510686650","3167441944511786140281492645182808634879433870989714391385790135037473910103"],["27372191496055320772510678244663649670804960213310816813501564213438809431556","18159439197622917932596434273222074093551010756362453003682661140403244823805"],["14623643678259024062575791371401654078207492918482037226685544622551714199925","9937349388908808594070867715024753149874519037373342493689318882059630355552"],["17141619039457816430528353866921022987375638713321875368539594255309317411572","13346595386428352486551933463597460770183549753989615998361104843211031577159"],["19344548480088281565392760338496945439474594567689597946113919795105256370471","18759631258148318188910342019004988605595190822204485313066329632366375865938"],["28291370676178028361671266099418855966265176323853374451509873299839273399960","25400927329795901296460147172800270471592583299864677801241660552871703594868"],["2635552544554113871309192487093193211663711020599834866424757689493371497581","27159381204406191923601094016384063216635865550975965472054970558616450287038"],["8154741853145618400369063627657727176346257414551251993605009251958645009431","5101578518559690040341430834186109418811969394183994584472389332284418000519"],["18252243129682738186952553955185167338479083168937420321872463909469880928938","14268327539472057095883500698757703206695187897379517973120782119207304457598"],["9947969471955482079147632163635162177226781742144391991548847793347984576631","17770523006078556471923892350247244889383325336603191466250039091531807428772"],["24605746073620236191838313779430145499129816609744664153797427075256470059255","28280380119537210666883347178262815372038448338708875091823444698465342096490"],["23638785121897496886243225286150366835048141572564874136473579574973051469089","24598861982895841771997256383973528491017163784946080584733482435033261180409"],["21761457737347191877437510399195977442295309730123144283968642850812352667194","2509702759188792070297185280952691937515062458295960201392105039267840354867"],["2523398263455420879443980730714895063309080284730274313645355187074016256411","24906229347681297086257181758311053348261324206669785860965396979800751817990"],["6963549093542716633085109831111835056126545194583892033235094198551419676557","5967307108972595242510130724535203554842376561677700904415453809203794903113"],["20838777968822706992472505389779580459809589146430894335690894691645399463109","23646700108001237214630638869227435622552869172390662032153669889483288704280"],["18144618855526549368844075924492971024060450601792365363709472573589499182207","11251162981061605087479798008981233668211204590710822870774500687039334903393"],["20470829212511941145505076821968774554102350762945068269693804266036079990069","12888231020962508795100073530016123782680777862805466454164120383338615586169"],["21088844584239847169428186999487708092870890874656897477258039382591293137303","6735835224247535085594500598035479901262457282047944937774096272964807691178"],["27483145094516376761892588804124969927150467968080186050901672168470830565533","23217061487624058946302006404331292453847489498891535582075046257965467132984"],["19528846125246846462207993926875206866104418558129019681580792711950668134277","13183158738625044629281961615524586779760691080520121742695254383015742686364"],["5277406179412960140011287681726982135698404198511307642239387933554190019077","24016084911565136361461918633694806076984663546448632504647742184293224369632"],["12152513516897606672883815303143158706624033549319470139640207020214346740024","1500941671447933325883742667456437686197768800475448186098229431425347658408"],["1522378178180896692555041223199187255399156248380159960482032242567594877312","23171533659912878360420433262905261659510301126780357643273499964906231762891"],["14818594171396731003796203990616851115988477216307840751413672629211993008133","6854640303625705509218410288196009645738832656864644666863096648768982488076"],["13058580672972380434459377153209419122468672715213107746661239238595954758005","1149956804752674879292303285061017920920296597059291307012689740750584945688"],["4492129641865283016537337297966669367914929916986741249326256660659447937346","5759640322733606715075911646030099403319075302377788592228300017225907004617"],["16238117777790292407344705179961438454042540003589153907603834077450446814360","2821435815894162299067164545140760468031757339750297866829575507482353840920"],["28179175884519680928363759960702972519080796981934116728489083661048652374699","15395295271969367966180970799687949250238281112525739712559187903096129559475"],["22959177457807592355594002902327114496148988942498188627357691149284262822378","2437184281056713426003642493713570895644756572414042771776583864585046208545"],["5539360538526618707308461680778856585024651975071285409697003307294711258697","13980773525013587266961872277991535598831536952551613201928010399817672542104"],["15019808862103890563344102048889341931207403960029379287717838406803374934408","27631545060365544411887910898333211147830568362655625348992209931869904840442"],["18747922778994288398767031565497961152573447551929271090165589901579169151670","5574924868616963316102238902102583257356684900798771702740479951652038054931"],["95548419491683723968859167290430771904652983152010903445056197069896402312","20686683780697804986669420860465516203573264822174285617629069124106226196329"],["7404515947535312805531891061451550704584099867659776510230887515675063778380","12104767893772859791758327919852066613854968301914249144078998370159663778116"],["14124959349558566469115570725980940482538857712317407938543296775360293232541","26368127992437542769805178486262653559192167276932167973376178289682210727984"],["5534944324895618738365741225777801477432313097466155328589309905892508105431","13948277041553715076537095735561138484361885006647223678881134777516488789617"],["24694641393021908875760804576962763737186260237371893374430457083182524135293","13120851907061103703417264171962342307822827258053473387945647330344920863232"],["14424159133123409612417210970675781334043141159559394476246694420633781699685","25820063194998283330202203653592575966201055526528954549225950464949779948837"],["5491068633551108297481170081324354160136486500189852351832269375180494575779","21843997820066996434474344796397472417413488456718457358779875321172325504353"],["7036044645097651148888612351296435393235091270429051035970340634955209375688","21511367248457478952614460638990936886508418228728234983633773930897470173107"],["20390182682150273167144957352167876463475333241378772726966381754988450447023","27471496279522668713790550970048899183776119210442363708854055755448555175518"],["23471734102075202428413041823384302635636778037107116378579044849180219795551","5107199426310215088272720831370321679358960969909836529764317052510000677975"],["27704960793675070118502888858861366316867681241562791877073870142832105406683","28230063059692240593358648653460172490620211773708242796365675568456785370243"],["23407217930813259898572508443529017742853011292170827195329373553554405929685","21636094452955393612513559697296753613245212212798843158680568131772270715658"],["24274559935664563074729362540876044351071984247845207478736371166268437773962","9909520069362125866981599716173185191656034095953587521099065316317484293211"],["26943757390811440108135089467502870175269814182657606999934604882561084347584","15413776498864647882974981384165448505516481192688651692406761321769290192608"],["19819970262979529439512936206115482905685390596648473207035196653358816606742","5189738853132801916726362454774728081205064112970870674744370452146451494357"],["21577351716863138051496395650614999512577071992626292480687317432796015525851","23458103213151516554288850194348243302944640880086140423623249048752426309296"],["7154200795418969090891734276767755074859859043967371916485378240661764797965","6188754668484848113034540064477508374390275091445023837438498422797287748290"],["19436991256987129104833684047787918713938568939328171617067242536075641819251","4565926799771352107179645138754165733531783998345833625257825285946797357011"],["5920534165608079926604183182975978683933932722393094045330561793777011887869","14148855471960273691107851120947461299374694516347960935867481750498644743781"],["22871473079155112283442815059844817544093643076123930280108842605303296293069","21821362482484110126063636486934689949070215214308899318656026244205628697023"],["8170029475462249987729067789338023603107502436820460651250465131973620779708","3980309176326453817039893538096051784034867787651357826971486667009156676826"],["16827167366224094140528760205414040955792192763170174092994544226568844500802","20655702508554438292879058189961841744569194539952078767470403068614941770610"],["1579866844569802188004006732139213841045856831789540802304293057018715205272","23346453094607775579888991080366886798657668215757062623891594583443682240135"],["16263237272330453223359519759718042939975714513139524261727179529936122464716","15703883930570673223971646844173397639222205767928302712755183572569884625281"],["3328375737856642393029818553828576775935387999109263083833306289585356475099","14808169235192250051370380376590803115409864205725649398335522771480239092067"],["14666381764333556900500095005311299667478868507994759499215510513478178562101","19962493356153504848808232746196799166024253451245392087972956086644482695326"],["4213123750000519853986244549056454678611442670036334714351955165417799786294","10316578755081732624696766082921268282547276180044835920052962252127893733564"],["4778729967528938738301424066459726429916495871534904640568549218226252214216","10852546742539130055965589403705383924730221934112481105310605681350605337223"],["11640746604276573904169412882543774788727738610170312137103567352135320309930","6665741119066579813509316857275131993439745629203192865378239191492325939454"],["15798896027474799605631217408933380213954207198122353862621891202203452217488","28865721218939429139235429130676421637678688505371011938132247577871286200993"],["18638708537243982264252595086771419059341288729664485679247612723820739088269","19220212084379341874576448794141997672519851746188105196950555129592442855623"],["27418345998795410802310873130359473911983959546692048722416440657570232870569","11778205911240115110863753046925469896183906930224106561744712811622257078728"],["13581252011345254372628973197546666353307343561999637624814335576329570499883","8056735852226671772329577803067462770107919321472517949008101774179628113548"],["4731296551306958001856235975722608414403616502021690088020769948778827602250","5880452168374625995967569258032398794877726870429284224593122154795770167229"],["17296878073859017292425326235870182942944324722424281979890399547380572729606","27268639139231788179241942652618461995864478838633126924616881499529657191472"],["4572871961722052745229045635961557717878306767948709111215545638242827138869","3525495395615790595273692638154316413565075051987718371108424338897908304872"],["25765248315169965270677791696771148728579151225896370447083566633235177266105","15855690304299140299677858864168748624998981936518301007846455273092814384620"],["21192381966208394399055474359522732051843319952492754857817993396191790241806","24956225900937760254237043373378644368702028469243955201395767386643998068695"],["8935101435829175591251802169288124247857257549398936004304747654559834326739","27602215781251251092351896290198922052790349122041028984857013389698838291763"],["26530047801728354568168399467882757827464258924857796791743492421861456030308","6891664187353893682289518592825358761645844225361705119752450451601607495697"],["1033692390377797991940581376842134923477748563294452928533879077158441870265","1294804677924694474763276892333331638393033152213206164147212226923149929209"],["3799098134980700881358336537550288985665022674452592967951141974610262847874","16018659923470559592100835196847474772102047343364889562953775409412489599373"],["14767294572492495009776918332848881070652964959095397524837455049136369723323","6833183245890770467216984449318861923278513509448422005886209493768970881237"],["27764454010558741143930208241432693355196203530256166445685994370456776102723","21351071179293014973559224607733591388360357066946640354372420532604032268989"],["11659789450077520680159864869389757559901449645937055406441026710283636616454","12180195121884634793256902410772963698624018258796155715586568183088813723161"],["6311774343067216385708674634718238706437858042016598335356921817738289119492","19784371969903288708215465809008296820834263942030681295012738322214284484845"],["7424436801315676100513035139641381411237707922313195645656115869171188130849","13956716431187010959234063055028186564411087275334118743002418733843765638828"],["3858782585607963964036319444084007700341715528292445061962821825445941723093","4731352261583773044767041343195776183945992517966534360646058030306941791839"],["21819294926760959941461956037076918028027608257612345621120905723310474859877","19233829793022728310130272181960571819359504866695787829962951919759720620356"],["21662219484222879780599325099919862394567475197347346743744392762266836229780","19291896480285310920318450401315995224136295721102715523025371291759573466107"],["6344532454649091457862619196690422099455266420137895302183257007497481373000","20718979862842237021019997827669844826641548310737684855752867647445215151153"],["18937026343420104753007253012938134666991869501503999509580350011401604546460","1278734918471504343655668600033686654260354987744689852291682594604533257280"],["24624910739964801608028547129602445771770541718713007481387879794475763732379","9158423713598954944948369934921391024471439681320150072918719846777851942963"],["1966082549082910009243936725042900325649943938821007829487838235084648673187","8248226293618066397686529448532517247643560614003118223735384480418671602735"],["1486322000008368154718326909413344176578314196741065082128606418747831365080","21128807110878442616153133489575719375921937573613954742098707290122979281406"],["15888523298462113467480703872075964605926414384395822090752502761022467729137","23483733725982305132297338742235784348484487786849537399905649967070103074291"],["16238466244794420761892214562166167198697407083654408028139009962989135839353","2539050850672956162667299823793100431329750823583567814935969594620280501108"],["9643266359388252767500311245332900960961622055296264551709693683554147996681","23405916364476193690312232058327164373400100194257788649262457198835330220895"],["14622339790700669769357855292577008346127168477281897063310848648758250176658","12079277728358098911344086164287034688188327399066030022830955617879885691924"],["28695616941419402374731546982743915171542042976869868090058901808157413685914","10541052788682339469846309402866145887364111995761830998586101280002075567761"],["12955635019786369186910774630011373391529030611323880997884781710874138390897","22809140462258096791305039919240042932185287445189717589646165348685720839410"],["9084529417078914306304833640751516979849569137991056924045875171041309223478","4858239793887989309496682919510945685331343813417269628549440797077810001515"],["9644682807560884466100399928062710509367083623764371646566990835827318783742","11774803473481048197198293660161522157963182968157639002670411527881076805129"],["12600185942811821328844093457336421888045833584603653925941283452760557655727","14217343819686391069462291384910028115032803119015051362308122049603895659596"],["24386817921400328643328620798892163187582432948633139702717071267235586377901","8889125912307533280211838515944165062023042529409986631248665039438223122881"],["14414602922065783922673201496797011511956588043809967152532858251097155790267","1939032669990394298248805991967829177423914240121864053653911822500213437242"],["11928524171146073318967917289803387178028901000282374445866957218679479207094","14861151449753853687793124284485502029725105611228529672077054297234018331468"],["7474646674941332899956129278201762113854304259206338961670468606667385964520","4993518911794806705269283221718540521543285357715931527438237885832420018808"],["23178122597510414944693866043912712179291705121624315014405400142194492143047","7457719515041166406909570352362575362543681748708417950773684042848709320647"],["5552136785523076854747800423669393324543477687423978752914435888024222932357","10269068556774177240530003362187717762942206538493226205415012545299506266857"],["2697701596205369214012834857517239010363296291467602831002155132782944461988","3158657038350810582772303964972256175761080124784118651534891363635821635758"],["21659636661416442920009434249947452823373680842577291887253683386974630299051","16544379762245671218912540107750605459551317372202802644447446942710267633315"],["4960368433189487488377563017607492816549768881802606358701095212385530180758","23845706167652056898866621393420907250911437425208258780594922462648431011690"],["23001380816230654335914829825674175845800543621659598794181904951069099231807","528818171348688100222419512541957221871485307217318248541569434705907655378"],["28642896600407318078237241319691336780666851648787878155674475887986741981194","11162130038605388607691476622781074163999154256838403359781452373068483839394"],["15520044535749907113165908412148843613156045842231891723621531735448836135752","20521297162966992116401440065208427702275768185681444296320621949038660878725"],["1501398584217489434160332273343153751707011873036728140485457656909190036187","1011389350984885843276530647775101320087930609971554562863075588296314812783"],["12171260059644568408529299185019413134090839173975091404071524064315721391307","15163988567040462087016696542712946683673198439562935288952745577837102543873"],["7401021287750613230499614748743390486900346213377314030736952475232931716869","26781221340460073771755035129423555640059031763522825374593983726520244952729"],["23961333149879535306465468311781316627336634973619441751833353281282165657236","15027320066043406455737207067238908113044175880796497419103948715182724219514"],["19657051003301531592316065347974084954807217708708145267805588371367124082526","7919308735176254949604724659797823969666226900162287966506550112104038664668"],["5355236044374336626316924674128933074381174915598485049454208145940845755926","4035043252662450830197824086162151719228009655899089604229981946812729438733"],["23539584190094361046186657935974781602853601228407040047551713234219867982418","752124908200947312489769363285398359411588779327943631955263502752164804307"],["28202899048557247332821918857705487683641812806039317467416852590112811754702","23321184321350876708247690174419891778582079112341408711754301803384877261442"],["9828605857987956567396555075620537816075177966826321610352145983730061028642","15699228215623744764567388666924657349015557811465820429666607610864976060299"],["16090634119927012302668826360433205447314506203753778241619374468791034854275","26777768780957988192438253415510320257087494256463424745219104721439189886587"],["21879235604208677796705373994829377894274843118985203630663647472982149779220","9125137359552769659880673245801357682266380872287499146352857196311711173344"],["14047680214944681235768021699548749087625508546216371161611154956427476775971","1654971397194299772182665583025953680750055270018811327088301947214934999752"],["22478397666805770466196619342379597313059200208868268489550263874600333139672","6412570935416417846687711564999956859885385978219208334317174795623253467554"],["23173644450565549416121763375772831199789147026180549852194579571053525120","22820750199671454790557457917054691748240674170310546767035615823174691091256"],["19376646826490484499790358692518929504192758947394480410487233663134461125703","2452409439609198091145692350362211785158085144609534465276722263650356070007"],["7198175478863579652234865798640414237635393521652755042233605995972658196102","16905285086002096691310663842901532326084354444084354859549829519498231736152"],["13700888862973719113861045336731871542354978257700290368426688945909708358945","12025058398867350908321496912916988709232973618913672633800102513146735563998"],["6047661039440803817297631856203419474778554798832653945844152928081628768575","19930632632031197751640545642012058171688563950357223375861754779661151647138"],["7503357744173127606508184334036941844215726656284283113902478669225621713470","21283978538127785575612553759390107011178028491727116654266729740909114673818"],["11028551793831361757348479498485142905580344141171330108875143370353730439101","22117063028273676805734589416871279515504875166127981083496805196348207374118"],["26340863100560632136056338804594039969960189609901854074191861182985809740118","1900879715315439766387996942811455161271750087886593758482949778903846617207"],["26290513133724890405133919698926394758966268073558241681446928358581054743039","23135955090279407770862783640998687538023834213363580722785787556269571850779"],["16247891984680801615459689347746195345410161291812106351860192894879444021577","3579089502241966987866386922077767886965110907324085945913449538147688964891"],["19591732978363503555966332224736044306334754115472127181678018436720192743732","3264082681323626186820105049129655928621672046162242216607173552873157322219"],["7985697935857178928259440444965879564863521281228238435867660225160799455210","8192467640574556624944324413830154817456877400241854531003490321395884062262"],["56837861299120451465311098758267437583432921942695681098892494822709899429","8591271970572231852335478620730522041719092192500873265127163462258609388598"],["1331885873212727572737408223111338642574491101015072095494054628133576268918","19588335979428724053257224440951763753055526825260722752514845303391853264651"],["27633229711479457775107375304812526829433615134028178966964552533237195953744","28735596840744107151370551100178969062001062922153398573852794872295814633759"],["11839716715488758683521174294156271020470465192637625624225035304544412609123","19956028799874597286698520290983895785334442713980018889582114621643966026856"],["4166357275244299614850419190932130839494130563567939308750395545983485243603","21692859375517602057989955574208244642057072514752544793702422409696315729655"],["11727269604216060284069784757442012174434250213822956054335469737044516170309","10700191555056045591503706732158215304174880262110849259555507010591678495108"],["9320078957982298406083228405461817675665426014018892939568309739032846967669","23198700211251794360539304590769224870398765853213356698319060630385772200517"],["17257952224932644674943893097779691433001880040845195924831570878274017926309","19537093219330196705484250056363594509672135981863243484136560247775195140321"],["3000101764202452432243967834039722714982625644558168518989592573399699131641","7653751207525785621154164093011318957999313736645058747351274821547060807169"],["10698772436009099536365971370790306611296430722206424437483913619022875081817","18888471292789655969844645466560843767606953835858808604325230140529191360612"],["784271514164093149944605411183206513777726887236758759833837326418399363596","3977074429414572194688454061806343343366301112196659109807435141315700696668"],["20215257652985978063575791687545739021948371253368410468185869874535096382147","15525466688800312194623084841173725650949834850469030284647249855173943542825"],["27239471405175890222159028865290589268800276109637179021522923101718562824029","15717730383059513334390881420599981669094050608882392558170324968386323896857"],["6566873565194582935372308760598782760788458481793972853080916808950053681746","17471052039340954143532860241801491632749046661352531128728611536524100700747"],["3346388058891932306578512131683095651095353643438991042692704731767849681922","5378533075141186876357840293188884792447993128182900105796467001585893802126"],["24324555287110216843154659827743724550494056402611607727969062952273728445052","28947717518770634649892575604568832556776404691708731231817701550532773349828"],["13636424788332463602265975815095205632728516508054728584496273986900030696947","14986898454418034878388215609635246609529994389428571814909859030356576090283"],["23713736203387915342017364659998620114836903526307123997447099650822547327111","19229957542652485294173997996409503968082901086255745978049234164742641317337"],["7267784981449477183656880573461484882557689931480039889931510228691441784978","16381584081591277681222786588983146555794123398762577256569971345446731963587"],["19542669885294932668982851247034121115602820798438068679096200796744250379013","20791734551360624211125709911815852159138613890439363349279467739332737411768"],["18263117604956101634504924859794246718828220435759173433802328758971158212871","14327943654700575365243433127900003045878962274895032236892586207012462698895"],["10253738324576084601563811534805821015839238041214520888664978018750817714216","3282261641897495835231697942970441038352504820986327423839632618605027435215"],["4762090371703253476642659153525270846988326340268566985314171444171908354711","3347603764657660868102089386293957273708620538631520509114084799833562204606"],["21366613406814245358944250035837878767518803614290350262893334210058401956270","21558282006786931294199126703213036428325052612673047560922136782841454907500"],["14613263364405617791919216504953005270697530971681914169009912386876023151249","12483683625242830765643968520536584405349312348061356500898886688496090941905"],["16043211913780703628952020332887304959099576576597287526186102637738186437934","4721609566736951236189881830436877648754664911888390228445370237402522524279"],["25431825252055219014365707043278140367181616826134624855725317088542804339043","1894024851610313135385477362075863308430199669267710473299483362431634233932"],["16657363587353109060821306529165755295989888415015996707341872534341613677619","5325727799117275689282105711133987968806547257673873813594369550170194973765"],["13433672412589264858787128657857676283253161469932192852613860558692903845124","19891882938219151006512447265121233407924628689262662671373241357951264472475"],["11373099049049891619031750895334660386895704653667551985284095423500049677619","6146799792638558795342560496689845223837917774696161641593644441553568101556"],["5963725530665277223458666176020142546873387302939561901152433019475067782566","15267336545406676081364775258439330958834398028085441240155750854017424137637"],["21002079243913411712027170379628661725057784806461858087560389499991872620544","1006199029923941717415916352996655115091294567343101424354341761331523224705"],["8889725347420697535317695170668449911505163293920885733728304617955528019036","17777107416811715519686500920856181263177526341967101959287925964991241920402"],["19077741554567508382261422993298960017074533298612967649352768872581189195679","5216518545688359165583604356952332228321676058954110251332650552839976712023"],["24355627552190845348639387662390961486935796910296295896134298231708221767272","3157497290474716762476500536726341727846439149650923795589841799015315270091"],["7462643048045318417578662226173118578931941460882693067387474516844954384294","8716489601218020838147365600655121342211603722444622520379889529570731680167"],["28421073343969786858566513201998775992396409118671062843688125774749610236576","9572461299901102605860362790825263148079358859695154293904893331432656118157"],["15822445758284114635476753556993448908613645947559143447306627600037166955157","21912870268178744618801224501050774227903194334602129165251992769065489286202"],["27549430025807826065394937162905613505972548640606425546695502658877589362870","27190405733988265475417098797188917315429139606151516682152337245950317824044"],["4237701860734405859461714003556416509342895871377426512489211281134934384868","22894828764898881423205435333798553074914850447000982852193248788076885050190"],["19492688250182053172846017987751106752599299997167510593019978742470620412049","20120301647412421975818314801239238637193229474446149411767562264146825437449"],["7426023261681123147740496504123200966680274751084920408623396087296867115820","17694634557884261702403425554921660036610869233659085852353264362718455755217"],["4836171091450288122107091354219882307149955590259652105194869735609355351880","7663923270656205864553504950128288806841220556011660808500940104076556619086"],["7750653250608572962176042955497815993096446752468742102944932480557097209215","11404027497060524870629560566439393912431463371072228804378410985419761641191"],["14832390289692735110868363121958253568388829369077363609868340163606747088444","12092481779945571158978280361807434038268640472867420700794489878028756324166"],["7279663333637346838958949258005441617634168352085821222259849238168993051126","2548311197931797021946568486237840986850985820680994323401383747278667863466"],["25222584593323667688726238692013588993684481858772345482795748347342842229155","6772760066703453208592954113654118678457217286799691835477045210889469568700"],["28820939772576527039075176938534008697343527418227713354735014541071329072356","8299357847048157910043527248574308979251303404663082841485061231165587411432"],["58012908199313711767500535924926285244522371761904355174041928131627810898","4882063906460456270680036327815809003519440185472064566013287211703058691358"],["27375257567769564419515605003558255802198064855266704679264394191107915210993","17373020429893521973222169866781622412916683778445191217986075302880985063842"],["22763873875030651705205732177344889447473647181983430068990725938276616161590","6990608252234475871167016271954761295501558279187140609711363363618561650509"],["15053795155621121622768393165067552461293637141368897475928279622234351500829","3191311199639339209221589135279497108394312472055208798123860822388644878290"],["20631116669868412578409285546521257737774153554258158738770791435984010981506","27060309631010882982073190673128116561957453819470484287814941267835120829007"],["14884227437563832616337664476468022952465362257371722391100990904478228534321","12925276485798850218969845160757288031247256916281050818677252650248071976177"],["20816447412727332636445822415780514693839328083268106463200014105558284979551","8327525376723784503784390020574752332721004888069052581984768490304024931374"],["16705414060821652819858535734460632430738352440498196931313987354579273429028","5206843847480362440414412067787848249867767378518902965167588581353992013300"],["21282863777138601241056494868628907928797055381374090777619836132858730168297","24807964885115706542728206541136638967049302993783778944769649989541267218632"],["549622977388271633140860920731668742040104814310713888138477647428713524706","11998944352567463556751048468416703724539007617947565654616835066576142073259"],["10934749108276772822838493881574218983162126749366948151522634797558281768271","27593365140928899868424076314411664772756038275681264794924547448334983882629"],["2882813049293315697922001521272121789892487964086876213476513454240341582201","8959594390784471137839012260513851009993519983947385132900278851901484357916"],["8060444818490671415045267876071813774479571174676494461614450763287247955197","16861452469769914683947927109956945717240209178194241446767700036480944956931"],["24503165781510008219876296800468676978067344886628466052787700234127408723632","4326360772247096075686863118579793886078821051908393256984391533528884900057"],["19275542538437566550959164188638788507601124724699444381349814732242434902920","7753626447231672635811921409981990248619828876263438915689407821193076800127"],["27541766131746603283032329317391495757472467439577550548379586280233051411564","16947605018271942993883127868709085604370792251867920623318717356071840582871"],["24442223298660824971921882472061379366124453217653816406242699655381845570648","2507788642785774775643518560752138648661687351626871621789884159901837250163"],["19413293319590098175887139783177383180113512314352540215452010246423226470120","23957216635423822112392532878387632515019492245636962119257679028215891089154"],["10317973780121293312388133549392733155177103800864280126150184539013950963427","3386246740023833940625840906205669835665064791011294347983055512604563574863"],["23701021404251623487187141783708139719091463745200872376017360252593592217231","14805579610696714063390263493191561093634543986241085700423926861642441351908"],["739771357364692454887651097709262156734501077884244090923050556661807904184","5385558950138908819592931602063501357507238984251833850175875771465402517798"],["17204791058007135846059356669176482813074429651700707084245916012268753563508","11275394146312280852298657723087789527258220214621366608107492008438485119553"],["3527690577128776389050692664521882867904123232094380074245679901812681913612","27979041773367321107503241908047147867054837516198260039360905243692635614676"],["20172446288480215824334794473212308896756741495169458991306908494989709119620","5354834987637398048909889807783913626714962845797663821377685346845880566447"],["19273911994137642134740602925571729077344932273113863512832258841025138794125","8633037485438834717935561703591149004743318283908972920673958095229415207418"],["12408319833036012763719220574602189515459063992310528098696521017210663861864","28928872521819682388822938389699325671135647989974798154068845181239233680489"],["8326661913931752944043740427664405996253315580975006231517147495229898656185","9386177270971234972462052146746861862258612161259179934711973511850392765899"],["8011765397272828676355464498058244069111400809347600522417912457190270919355","2513844497489366709975444867475720209492387422876464823968563902838957792616"],["3806202733235839798362962033596633531702834559443062862689583526117491616530","16784018906562509064045798934515042197863083378684852771586219474412247302147"],["28436182067424788955567389436975433471931520899126566324631013280491421035251","874118665643314875913925927209549962939125245793047366151575295025099060856"],["17470340220451553789806937796053503371554961352273963656090947222099637935970","23074444028827334385443397072538605864263829625433447868216416439546151357536"],["11297685723506244428545820171578633901537068245859842700719285955764827018992","19608591743386769310941564275496707338381095987336494402658427247620944441847"],["22970157916173816289636995892744545740083050016997132011302284587588375559917","6790210467643625279381278712146975827243686532326215395111929997907672248183"],["19859557877444497921130993485313531477440895051876728664128284270510229142500","9654441735184142935043343197626873795958090391336895975187725149404273177585"],["1966699374124175113856314789481487956036532491134303208181254594643641706631","27406707216558421309249611358000616125516500717058414783138575523164072870011"],["13138331055959066726508403909703028585161114691899462780546001879558590467197","3131566293998614428752218965180762948318265006497218082577792061882157672302"],["23762594679393634223118831436207067982122983794701392309906865625675916347982","19534919069372945013855658115350024258247102492081578948095855706833943275223"],["17931020081508582001252036929091020243643711906403273127539506133954056611116","1197228391335778811607278851948990018211081679723592185650563977685743500531"],["24070775354059256966905337513923947268375690209837981610933410311656379623867","734594639857790955424087310648233508075793832329986456781422205910723132332"],["8995226979676006687860260532980817602622532633185089798304223648946809402300","8136600654811043813343919170582823215879302218083240121417050924709925689880"],["8945624193429184544214027717227617269539533369924477202082788418340608456840","16794137752423721104208067234282820033663403581579731333437798369707954111200"],["28262846596444409084106740548512407580287360226217356772106325001900290744290","7848453302388096293140514589933599860858155442788345182759099407576260267360"],["23139318555568181165234474151051235666180104143854660450974790270563794997162","20481278101629433804351034267919431143891342125534460411224854435875352816432"],["14100532287430416794367532107924036702921685325366081332477053122421342788672","8175125602865076079038059328672627894753091367195364374739155762792710794396"],["18553949686175051850444218879096815616701452655516575795056367871895051290756","6933726574548327430776706521193963786638103674498458561993199947163893562829"],["20107648028421249574607246727691660637552880373220477131124348990897519232958","22928055867384280545359895741071929279950419353470615323972871594221342306386"],["456971525705475734262496306121934146324083758698043718453998518258893489906","19312468081452323904775135605507990082864759479412881896427966976183871106979"],["345949696514937090809456145240227618659713020082363910507403686952245637538","10998666017491114646525478422850456608649635590709791835013173678915368823758"],["14903875424205817331703924713519283999293602053951422555654046468514155547522","12952287133518494405169400459010753761623970005857755966626032168273246276295"],["17612128536399458684662309942412634301071545087318186069402642495262536441160","10303785001588985364302430323516185044364355879560172526664721064819749305191"],["25799217561664617495835398050273372397775268756259566028274175350664117199326","4037337102126816071795327277139359572639654162308357373863269469443706182182"],["23063445135957576253309762644928951320925686025961646034298517330253580121698","14985667614550342995029109315590407402600527708493497512186456422931755003786"],["26577819502388135942877412892501354824587844435002429764784996331509618079050","11068677203429930654661850641637205026106957342071719877836852949889519593150"],["7076054082249643596291540234674915878658052759339753961687762810601301925982","9869884362292261882821188790876267346931905400102908317659578517441255026155"],["10617679832484765810737591268271886391960710282149839027801918011264946571604","14809839054416569092932061316677030006664239890691130391801916729183413902369"],["4941168784416113971663729337333242462938184932146006756442279401590723818001","20858415808285802847858837521990992972768995326151613428621997438286487087523"],["23756570633345415270049125287020931216799573399624318667075391623393561199492","20232539418397952263921130072385590385177509601120581075139069623617684416224"],["28902578767267303344400425247303119655957686707281689772034410064141721792044","2986246069037532463491933458061974956023219862020931464495117547086960115650"],["4591936568911920435072616968703028175523052858633156964800568923169485187137","6368008445765074976004408840311500777566992198301687535042467218036360462164"],["27057107172103425985557537628104347459818554957470864324340120332328359006753","9415390023789664758591676164198400595648978915651633292078047397625689522296"],["24928782860130329105417274502728794474527378792549988537626547974666049534953","23918832598934110757655913503222748069639846076921628689754844778526059465930"],["2723779361942101191222594094495495693990157652309721093030906953623452119928","17816212391097127714275571034733928156735171359020074306881484379931464204628"],["6532792695478539006961644025705725800180842730776906113293476416843257178859","19270034356812690916175055867516986512909400697017651223577087746085260560118"],["1186025641079854202191651613380863209506530243091991133414501010076899798485","26530615934424050308502296992558804190492199328030848574391276719783996907"],["18981437567228192258187049988874858525582725528364924616792451813880467857211","571587806573529375117544767654443822215850971402699751891480660909821427299"],["18198083005840062692300093238026173086027297792889952530172410136541466020746","23906639588033355548615626238110825024872127384927961405616357423600699333297"],["4611733409017938145291903055899021247516523900418875181751315903496199555048","11017752825009187702826648947823460505652460820039331531258978252586763589827"],["5716783928512962350384156689047419350925665841257106906308821214078058288235","24349320490403868680051324277094758600733279619211572068448125123638204579248"],["10394577609093015722297159221113109145892889322760032098033309593063197257595","22499209400997439945879092528713734742875614721577426872429969088355660623429"],["6838831114641518991784217162443917583937779435622202578645803291466782779684","22189587389840010613415183132253310641628906520935915713646958683444691237633"],["7349309959799415581422264074603537406116242280118586634779558383798630415319","9807606161928969885056334156368664162623305426160142346102586618059637643001"],["24312719611710386102372620587473710127846551850230147209748104900819614458457","2329072895048866001974279703593853376125664025632115521782986993767752029858"],["8610161429250183098874662955458526904335411010777063547851019081227160900689","11375448278113260734093249948793972445076780638611936673893216497010173815848"],["4170243810501923491142773893931748513686347062209150797643470251855382266638","17956280782186231809160643441158366587386548038784092233377059370527327539087"],["19324169848480008146181894702042414486684405683587516159341173554088243851240","25560312586091983474967499622681109663432989222469042994935386240799721564842"],["8356859796358393234606690119923325556836815645059945853774249881893996609471","14232306394942043055376649312693230497036887868552495377828505281511588438881"],["11111842075894571907544293164176727118602423415293966207690859328069962658720","10997438441839119336409374104373369693792004003091184889263687895965330532607"],["24456915333768300226376585275452645084823841863193102636942856612461471922442","25079305411004822352534654482725063463161431051425134423854037266173130887716"],["19423469637521929055633134876985315955991786465272430893808392949637500825631","11494820316909999151912541644477449863272394779970314494110385092332962780589"],["23807001598912920579227104076374687690103266435100412519293103343448378256632","13974916054659338453952613955450847237587582011009926435351864143061103525987"],["16442075070911683224585793542991139879133446615640439883183562204236668945808","15451019416575930009993553491656001544242513413773150271656384278816188345362"],["10993921932346505722766095632961688632716153407246582612662038778254011317316","15520478646867179356290515725709231626843442606815368963091656545030239643747"],["19170545444216801808946446313515337355601582996742475400200486312831903256514","4881723143531165103821243587196545458918147881784652835690139377335554187341"],["7295317673288696489527647433581313511994828854537327831521014273275762279888","5820847249349130016493166900258522047801121054700183925193880517403581404817"],["3120671936169649188284442530847491313704022263925210502334183531673957773215","9522569969120802544464809928551951296896940908697260874276523570748197911455"],["5587153825855275420870449523951204821960871913756992277236039666595851761400","28781592875880687738422526024237601547052042998301003194402182038343375759091"],["11878343726454179492458595551416206723017208667627379212437003104890772359084","6758793555752401757982077376004804513724031208917067843485825490810463649542"],["22703500105443110866378487440837859812717053540179182783118786387799967245605","18709760589359130603080311323392350168904197082670795635879994870026007711685"],["20279875477486381971065094063926437973471168246409827585721961941036086520673","26597532044731776728719682176333659308069387279750807282439678766759566975106"],["24031767302714825521770138572687803687447280894072422615972726000348519880667","3071937192458624366861663021330716628028163959793404583402871136050751361062"],["20264530408027178145548618573278059442655514732019748558819194914967638690008","15761580763319502810069496175476391393962344610249035111320333771542526404582"],["20071877156065466732958002819046393203208963908377240464306946257650131759838","25370387175669708890665078537056186663852394261358344824423383312259591621405"],["6316975329126904007269789284758034169273949676631745022564059484759471691536","12464030634409723098564670031568487729639294352953133898359590113921420386348"],["18142361278321183852135264768943121859116876264768165021971484350406357304985","548370328455118753337211556111670186878099813703400259183252576656777518998"],["17795235055847268751195301273090694470903357503122704777125932169829848480450","24755624480114270766247858735665958191887116079044288454877767508564900071285"],["27433467519717105989162277881186311424792136139863555771901013524986744260436","1407506487009982156871143011214691566604434689572327054048241294076930639550"],["12188010785194765381597774503180484115341074988106785452973375869176346298849","13000780282352002040641606211335328636959876413234126264321952082002946316815"],["25356934657874356950648245783595189876247389866167715745011895720732336998013","16111936067290302275744159659653960081186020132075818158799911512159512756844"],["9933372409829291203051110769601885240707523827402174682826790093383351768561","4090108408817543342338264424879824465818786092073069982350888123812185541212"],["3861159336555580051640694404743049174184531886059733042532163359453034597120","13925784169930371999085297655385422475972637746160739081757797937833239591085"],["1591451600505826933922540835773986413194851677888196720971473935718739959560","17251088285557243230849182828834401197002474797935583756851486333002424067530"],["25838356272674798971794701965270280359493944057174949031425247944440063104020","5749433538203005456672451556819343645078250579275894544913454704566673706707"],["16272730933933474545692165508592042616718879641462802049980541383015302486510","10537662364009197851014040735823032608885569745957780584213421731618745059723"],["27789278289753194573336602298843163128289496706980048197351896083880634147216","16869734485343752675498803846096746902103554845993669072448346988007145184313"],["28168403660293200976142230670776626860267852232364295316758236568242237819581","26790598308492276521966847300799398764666818265887863947017773989924710893932"],["2066077755646388265192703717053995659406920369012823932851560801166453497571","23470083210498329651410134808054087548359167192698421135805943072500874525680"],["8532990313589339388016972859926485075237245043620869952319317852193127113346","13451374313811751706301963228505990545295709802705502183361356506757782807530"],["5894638749935141468047462152894285636555390167895761012100696133858329626743","13338586531165379769289498817758490329264007889592743437317402982839914292774"],["18599055537385194330433192884883092068370616880443367497076460492725035907414","21127213123073477358761789224400181684124437140429349753564004286707297964722"],["5310865363153424679138030152853986193045127904150544730881201313666252142448","6044801727635504406771696756194243282714342640147152385977432984936425433052"],["11453291267352168486141710965525457195848784514739804769264099231890537507565","19161265474870940111586646754805920118917723732414888438473353748184429190816"],["19832415733581782672587911866925089410666964718391118948852235093125441312663","13445939008981833701325827317944948448656132805124191511927989703382780574753"],["2792014782682051576635143461883654601375645568544970199078676222815094808755","5749049361441722972117514782628450415563595588382943728977898936185961858831"],["22994148020163511727228015710468084834377735138341135387981360199598958657427","18321022394050306143297578119067368525154395146670495632708833117345456402816"],["13336953210465239103550425708354996199875527723414367299521447963523952638711","24332316407355942413820923172888445222804114814518626920613819037986027719640"],["28528956009378314831621651294707767470620060178026927947071106979785486322984","3606207068983818232903984819930279034239181988391142291736125297370355156321"],["24277135903700219804283411822777488944581280100040755918646682302151461732792","28206253822374863250898679143091191548841277637774188333656617162647596439984"],["8373980370592486634718845426695780524145996672573470447063866364620012621461","14242436741417724796523633332942487779164387049662469891377216183812164002163"],["23898562971695059529798926335087376473184414965457096680054496358101535794913","24077173195670299538165694455728595094348262635729547648673289156369434753553"],["18695675633777520631824615927933926846393404071662087374615296022271630258089","19736609810231077161388854059384894272918900946688725265111998050578403208837"],["24893813703123197619621577706456546859043645335113166348075025695754062462689","23140691846678685557560422038268994806310336256276709902320202284607050073279"],["11541773127302694673948212770162297364296390541240854287662703380397705296166","11867548107190442679970502609439846000900128830285164264635211487928104453812"],["8173683649766330007157029716749060521155479837288068952191171538717249948613","2125449035416093326175591624460943516670542509476305624544347679071207211491"],["20625650492086349273169710046900245274438263176280649806503949439906285845665","1529982506406646676103679608662657645294617508035758025086434258765241484980"],["25006368594824110889904776317347324796414134948450157311635663985809706542354","2543869996640899331454041821884493403302449649371317287725618978156532098724"],["17336791484871149401897699780163204537754974494028014941800660127271751735391","28762522995051949161789451946385325552411914492543202714154753036849121619103"],["15405261566746440539437952625668172137419942834041247299578957835953746013722","16087931209173717443535190667159695131623084391265803540311607867885263294552"],["2004780431750387066786112381912448038340220935973356943791220731485593029469","6059800577230390957081308065084676110563330920286923814868744047281987479859"],["24734920393422636140360081816824032725084038003499726437283056518441090575881","10657695425867474332042335900548418675304371092884509502461892589244896885250"],["6178460286622887538056241144787898075124796330539814707492685942110251287379","13104782065846964677395650874374651678504571354041201247198120416937003770006"],["23527017463419933418503531703117906927290071805320449345212853059364543771009","28610181150253506438393606334400692231007510092453512178730247292981813693458"],["27863853195466048658150700600912411788626053879604841380106108971742736197100","10895117091168561721177155686946341203613745919432472122633287908896013368928"],["20578172430363401482525814117975182967177121921826524141232594752032212068922","13932948864253652688198295863900266844897669532720401887440120228888546813355"],["25936880196359582931931031122716596026428915504634183467702608006467554865016","7759512273344048416999342581784112323074356953041642140165799770350790010587"],["17105680112941014808323358511135574807397512997246808124575836903073278979682","2877621315741893996960758727779010675905649104094985019453209123325626612396"],["5180022811775011534247927647518124736244834656363371167608373623838521931559","21271037265044619173067881935923066035337670315940603348984079740764649540848"],["22294237994689607226853158438085326957188231659837423770221742984176396454815","23453055848213343316386414579078671729359283086465185203885633564833701734467"],["20821611136133615544752524821346332669852373938044255165108302388372993429103","22285077392056207193428203568111841808966641401106212229956270632670464082332"],["14654976579705699621513334881486902753718964391645959926334681750702008819715","13536320957059644957574514898953747748665217591309567305503175260461205884333"],["16903109956320614679652701128297985979445074288935743475210663975496988481137","23920705931261401602373054530336871556994096686942087835858425291066171856802"],["271497186162107569599965368136266091917680372557870684180833011946521077211","12745412431394015247704317480300785933434385132208344494762190963834479877878"],["22096926684388589065812000481244473959001216376583064698191378465845771118077","19483537850909020073922924718978494037079980051477490232531511845759341235257"],["22638688661107177554431298125445901820029217335652609474780714474636879393234","3275217063589036867663665734080171423640837565837171916895246433078867895074"],["17827804830229431196949364425828619902568986890910751145081917362574221777137","7269192437763217824421351419881970901915836753924975930919346645092986759869"],["7723244702046773056775729367843482767234825514901026277481350069458642526896","13209567170377728536425575575101971756414320919267501581104392634265288114822"],["3593066720651363867171583091877130825266448219080105440311251694919945828669","4919193314817887015376088275526341673579198061065902216849747214197551968010"],["16791186741397406074466292687254650371279335460240637915393209033991481153004","20755989698295882853170339912437503007717870517570250506099543819302041150057"],["14736953386017693031674079523898024660426625572600086048436663768378424655977","5885525920161440399049343553872051748472266994819748965187815036088865054888"],["9318193434260440447743639409298021716242371223912670272826254335071143454475","21826649447879983456725286205264807073780986902298701531458551698817922718012"],["15582782348941455727186888251925748683424344946677039363663456060316771959130","9978197837405522888871639703224705718843530777347240031825485363796186657550"],["7857581142633118271715060379819149325404587793617753002537732583137266181225","24458937558131437995966701152408722230142161863712965218315440144653049003931"],["12252972183430478688353828155099892035999186496449632037196164630179867078669","27917208542358650595193876405558066433683530249285026036850776364699278315385"],["7761979894821295565116533100258065585515121844650282423817950696783926157045","8583808529841373182202965728980192610894591117377621058423617219775960172136"],["26572434204829042896715517028703205877842949960586804615125714330160448828103","27885297555084101251538911669382520259850695009090108834311800128087320855890"],["9588436106294950261450534073714963599113779320554774525016108106170279219992","22150524722009560603546426429948773544220681395348478726718830500444052801403"],["22042764038794461839527599954303335905767398049754698622324045644031981565369","7414128189507944407584123044343976359278553788731411016047643622672844681101"],["15287001357096659700918105542591107411790016202801341242271630039326514863683","28482483685539302344318174925167887258630904613286465616567505931683785338799"],["28900021481684969255168974345176547128874036677522160984856640268790577119684","20205772601691465550135965000848990630066651982883684407684988050127513105955"],["12505073716061388482455181153344550481995163786298186835024898010329847279738","7211187089736335912823706061098798726539658530454665986852400497605471758171"],["3072591026013842534888958380049444103380601070991173616656005123874861864993","2971255412327921879773855220981618413870333952826704100230572726468795619893"],["26555197755990359752952801386529216273671107841948557550706360800583782240625","14747069454592762479956471471692334192547245488638280213669085674592907306116"],["20488165941583653807361802465926548843827582651199573526125552875391928063017","24394182352326575588715877562799947209589128315614522543830961250719183207808"],["12477868655136237680405317125629598074884994243915391092079905189304284485432","9603913139743964366885488472798931704906430399000983805900158871789555629270"],["17974889988047829493103074248373360993992106934682945891065892329832504514869","12535404937680183035354747065960055359256224956763885498413136513059508611403"],["7197061130427989234385457078864696790345701235376584615712053716657039282510","21481832087021462743433790952812061058987881072682247854508468533664924229690"],["4181511878877265254589393162257957473787202503950069704748954953724846536945","21634590429320993384030875580207860210785671540808346248394634063675978986178"],["20315490018208711320087858194973607407500939011543866536020731373606185028148","19551581682337414332049948585225213833200308127019441887355262836258273543896"],["26561894369406533124906194802599371190303949398466915670399612006888042927569","16065988146958324604953079816509382551323795085960814493691112508945660887033"],["26309080071486397661400740338775889724633729610239031054460522230050684720947","19575001178479170946420409691592817867790504696524338441389556884417865246686"],["20747203951053134772998523061795002508600233858944812239160369059818575857937","9849298354342661634559328129416825192408290996682872052393185701414693947092"],["9446640385539553774591200421503828353217676084488301754550920663885365145189","12007530696754868417939799534513990814919908490002761356126386260276891679311"],["5459129411903468016508231957193987810104439104076886306867053402475872736124","20451201057322527670382937315888036369235575800941884451744344893772943396672"],["17356593720573166658141609916466168085145801902957552481605046229097506003833","7102237338104349600751217830069742469924776272953195637330749610250937907342"],["9312226844521135748658132852395773074156228938256094322783241678287006743498","16567529835812509658995514993986745464824713264936405579543437430957004116674"],["4200967354976451494620193951758243978372310646486669683829571498350764489851","1581381890804359213572202160545435561309287890787482538348828428681990345932"],["18343955509878351253052393707837002945553483830832921221272892248442093865639","6683688485641336856955042979781414309357513335235170058147567383581307000499"],["20696243051097119526868304323929057774215877437774450237868809113595111408703","8728554894435337226372234632753704130769787127569647085128976593170870166949"],["6309421400708181071951136039235183916982924571693617976278767376771163759083","27614478595168494487899739209014450242411027270014649001389961909729058286854"],["28225195683056051890129559539832874213873124626465359010060830049853189446956","22755786284386316672366158954200215842945973246666952038705005384614591480356"],["22400451411113866020670903557967480103660738347060726644463307151048703983078","19000543363950577326111455184243667654533532018677243867785076223190218186555"],["26238460919152762862114259808160840808515263937096152292649810931218947335412","58464359195597031987790473637286708128631201544954194944820320562283797271"],["4906246930274118598884504665565116302310847149638910214068401676698557922853","524778655946917603317544317809026936243075578341318923641254883779310305164"],["5310608533786544246092021762560064619658014292352846766760109330151885675916","15928244366011122000490498601465856403419212919258067565370322357343911074491"],["20360921798032718749991879680916992335033213143405139394984994525633634473030","12533249490018645259646919608442070163569090229184999487660152762189761113294"],["28380362916356002105537128867909908289485984674157137783740570304088633823117","22271936940063192384182045261619291541083886604106754299995184794122099012277"],["18973097607837551961298166216014532574250467305696147899718113618455972200524","5152708372574481099377428430672555229540689538977566755603182651828271650002"],["12130411785171812938702945956387402207004756406137381409375321417155752998658","22071792614775098228613292707820711729426288187190608843327716306870435388240"],["21134014196959802843482174110809234816345577796342740791083290040582285647070","25731368269836740748573247722283711104738592325084297313072171766546824251703"],["19522684348915167200097749250477064120153303564483141428937585429960693840147","14389357635614898059463887419491254735552524861147914897563279213278456731171"],["24588854225679523861699061641366301086144995711993636557206209362848195244865","25812016782060752993108298121280659066463852934785322437125448897515290140299"],["153119261903358464889800130533669229647181166807194687212516122273734487793","15442439927884742512212895869677750650798151130362681937171895082928424900085"],["27693464016558532925984296195266491895312418173817024780243945984288551480623","13079046889207619112500804717207438725751710205046480727306215604257839332989"],["574393622457797463188683880737024698546684423181119887923839575526026756687","7641812614978653350426664511250645070415451284803430225601016486223162969193"],["14679541881355079894339983822725163840256429917175885692027585885160652506593","27868752927183767058251554881293695798407540963066655983128702834301455236668"],["21480259147456916640872019861332329887520730946913426371636250827404990393566","4974769523713645694407396990537257571688027928480061947747288090639409408788"],["2283528316762759447622924723038643951265260565906180257049927745211079878710","13144615768871794581634017671824147168331612726487917367761072684430091988364"],["19777476797152846739622326986077551006160652312985295857023847124427291816179","360595514092666098167212604782543350154756215461528911213800517287086136924"],["22216546521890340174712617173319192257836947044394110965241465055594191126313","4083611915586658973414620524354341519761274573542189984299446317916828322204"],["19185062905280092889834426851553705177490209249620554667832769114632805753760","28623134376583169738423536343027939187993468642572073844566183869747090027118"],["22544241315523152390917755481167574789336707199344380547840043543864020835327","3024885323290362257791206103000801191244210782336303427021628484145621087842"],["26402150235799807850379894139222788968784643882723365414934627780383168242037","16618723698149430460215460406729994825920037783934350541139198073652805662206"],["24788392315710471180117949267577245630677422100913519377554445697622888569038","21647643225791314626927416281201011669301526042629697732994781602438479161226"],["12778595469005586729266235666090825163076101257586605344535386215915551206340","13343541209351675226648392166059259394687944976083772252578336018284012418120"],["2418150064163078581404780497241110909640198394077734497883399910139054355215","5567827361597864949507090106508112890710080409219361358081463256616322714372"],["10977898943230634039102988723684403973321201961768509247119412717449530043718","11174206343534216217359483440563225808099853753056304842723752367850390752262"],["8726334340901138181238042234118760049432944353562053125338667157047955508565","8908089437747044775017933156777153260882281166381508546864266167039541766415"],["27063876772982957854350555170492441882058783972290604381078509686163130987073","12566901581445543167252627220249296977463645264343592244324296278908495366249"],["4676775346134289040435402235667584419743776871032553215793404489023392728185","18355383409321754305896365633570478245373625112553177623635872609002883569693"],["4633348968758387527483421845461961480593966898178979707862305679427919021180","16797907576323468848250119449475381154397184670094392628617327755552987069096"],["17855355664270399868138449906697062251448894919999663020145828190972225442126","19238927908681024507427410880748001475556920848078946160092149322469428956426"],["16804780532086694983461450400390856812228520837976079752967969320594880318676","27423103240851764044300405725203055444452396332142739097069348637917948464924"],["21771616211145654242951270831390806801179994906041305100602669856773008966643","15905310777085101780372385221374038143067699987121306647767622175167276066178"],["13961271588072158691621378875322093126437913877400032175736048765632880772289","3244198830190854720886015055366655794629207320290087370497638056110629361366"],["18932782526727250143770644312983431807687814812069778573925766767649392903512","7017527656175879826060169422509041921263371234255172820852720789378652637507"],["21677214291547427121707729369332053535953554839536342747316480271063167948894","20563086577172476032459101055623477319494394244513937160724027240450063776111"],["28125626937146114125276500381990024486290229419924049079652887481895529813395","18379016280808852964800064958375062661374704004577473730899026622364556948300"],["26626452689876096713035290493766346424775242935131226910780210099361954488055","9263404659555880908139819434749288136057918928274529447753043414041485359424"],["24624494383068694694988357126524868896139123629534536964500190448049312424337","16050730102239453822862389009353041667813690855056957504976411248581063714313"],["16878113906346672148527695197693709837320004294772268694470742099084859806416","2388747673020052206402786763695546010863912992933251319112291866302418496622"],["17196208427764674203507043393076463679531085549692320998626949464009856407971","1697625351832933966947372097547517193531152171831392351720294313562715677790"],["19812540466063973434370459182201650376459941712245355892859874820754748161118","24507114002335677377387063403852119907455675476360905998673105795757324295059"],["160694701921738681877767896295949176995605498726719058320126552006180898230","21901886413495634639378203213012408723279423496750085686320803118373016082171"],["27307262777614510270458348358329252039993665755963272448063181432400460543692","5666498052999000283551912688400203659940445284734420042390921566714181424037"],["16961664814135730005262993318753618764652810842309074255977919418490700740142","26492385084488513194831175459542228047332743136108974910644365520904191798820"],["16236829933052034283837512822144944006692504547205898269423444412675149111729","2290628551786262942910309619876853454160433566021321115432491109915293388004"],["26312467867546270341387354731888822908768025210062326678990178677688086915428","1061208322711446116523455336095870374833554772725975708115270078014773545474"],["6364163940802081773990568981432887497432986752203044268753327913748831450463","16562704764948617758636012339951259022929994037238740859663043147607200278228"],["11182245275431780602054293460400448906838409868053548138842288445672683518844","28364619187282058414131008727869247840456639504991578783408845621785953685696"],["19963509898749616661071771163343662538855682353393508524344204886918531498062","13574549827864415598873774189774359176934067089082284702727445120702076013435"],["8215490103683397992974389009523522567651741993113894547483766996886326702504","1293123219738765033703220645032947136675276980404207555131589193258430897211"],["13434122401367093240390218356286613121334263779736130995875840592706512331322","28519371334655228778557659428965553889423063455076295155830133515846249241898"],["27274123877416511487035935303966833818330329464859461311123680457755505914485","12270756827623696978798848048760757479361851609859753597197635583743769787780"],["121609530139485194739119068961501127629453784081114121542942718960583053189","5651382963789627162936946076687647249264029380598003707391292656220550164354"],["26246481444186628592657263767318507685866990541341379969645511580460322238745","7337266619694860657637350828594171381295569705119986419007411734303301902481"],["2460136508132973671117354869659803643012468603847155280670144366230858083152","17566803290513761222941376272652060317836876864005217619827513042313847609921"],["5409388764428583658613917484401775314488542285002084855695140720932251067083","21280695918118865387630451496858730222569509787093417677646217587887224549785"],["7667295761361159774898528509906845132601877952363011663715492640622180946809","12432115262362966426099181003874010524048423825403106531059341744529228675667"],["12381778764616811055401335266764971041773087997753866747928211943429628162792","15889092998967767432161965153881673134794250590033155697625789441023898706069"],["22926691482678171892733427428392459334807933860593760443257393224882762071130","4136342681264638779062244013549767263047927491239331571575363780616463231271"],["7187565637943407808414773398547539457923109408652200248249174545668250387002","8855849987110630249322077308197843279086413300344339487589520461030637942332"],["13892728867813410783561604677406191139478736972200392419972980338384535454132","21720013279861551503101240239460793788259344072532259894165612030757744094605"],["10133553700923816671736150795262836912466483580304601816719514806470346386645","16143077507923863208141967938932907654630426644290276563822344387426927317824"],["11524891602605655858153902317639442332534433056867170132936251889559255588072","16498698557240776900955738566455180916079599086360849468895246056632723667954"],["28727055472093210947955207052811129787422249725748626444519051563816090601793","17876230816067377837638219584214551635362752314898182114885254818526857221611"],["26088151177814003810478477015776566941250257189506972706874638327746454330865","19360007619998974072374842284870705753952677884460419322780991849368436202330"],["22203524267429289274149076129091467465307432267919242648329249632693790155112","10068301549181064920116613493327162645406397915866343350028151709157766870208"],["17309072829915096752731003233690230029043107840095478174202856221315447439375","556638451263302637768085441756085365013752167602458555488810344469725154298"],["25824712533149138557827139929727211949900001006437491391694998471958334373628","6830960956551827896078844884608378881128135848587864300323160331775787666853"],["25449047824865823083444625168030229485563382609927757386639797042553230388857","26711641578635429400496409044629889117965780394802265446208256030914805594987"],["13000769756900954172855856341082708531726612529889442470886383450674991173743","21912026331989042238487438827763987125059981275899568478673825591846871963205"],["9484973833042526681854304929923336700724590518121455414346847586855802291617","10883629767169444472426002608912207829468853084475563169061233713164001662544"],["13613438752232618108626162059541616873374610553063929513864368895480581773046","6201473545501784030877877705543518456250511156600401554350046200890581238925"],["11377396727564792020499182702978847959530398849899549644724664252209834027341","17993109733404529186828129713465491215514307633431217445058521884138666703981"],["22710142023364855287433837957452716437580592563588257409483597763395898579080","27633734988147397619189806189913132991661825070609773710100566571861948094708"],["8404722341923944791651916844651433328019594202920232079086371344773623332419","25291039468196871055127802011153082778031723172918517410576577237860420874973"],["2531828157540559426808823216054556662874367666838278593197687733860738276591","4536772475534065263640524588775318626318492872952224723359728313792694150700"],["6022432156553953154845076228119970333408703042821979470109793198129453113900","17292522567053394961034147479481588453391036808146508252046773336712671768446"],["19672503437802535130867568330714166578479462823235698195895969235123163006175","9006532330460112521652411376998092812461425154799438950136245894955151073522"],["26524642207928272149502475128548429569082670211279098109577606324969243713744","19741252020664679627398973471138575882513195009119230151769576831340054323296"],["21064371890096265890435624328312979645382916495759525118764531856749697405023","10477322568188277907194854173013721574994973549428952837946045312454531171166"],["16878679176010760861308108274311547201160692856171230053955750966409918271296","6918305294358968403649652429537222477766891123540473916557701815910122876838"],["637536135190211885579862631454880409193992277087032110056896619451738074137","7225539089774606216230664676362360722656345762120944487847833728742664903726"],["20149917463489965570791186629699414325369242148209187082714647665130304755682","5282372787285295781438532229326469047514495117101055615722401012391176291853"],["15859459905676151877362240350420159437011350956608720898805204748744617863416","9525583947654620260840646914211175664384937503426002199429008055008130343426"],["6220908664093942189639653970873359988620499299740097655117927679222624814427","22630010695406316581239595416471958083742928315324701107603277252244281875754"],["11437065425577486230143326620572048053802367126855366882655035077996754182789","23431946959361656738287732053181662790921797076080958403248712312839170395659"],["22387071302474829859918797656476633770991633268921686559358656568960000291161","3419409685127836044507330690943760605484272130424214976691490480740700524495"],["23142044738734905015656202501043795956873156745690463362248512391712098226080","13392301980366491372581455261963340505459698663075779492939746190175536355608"],["6880819287315392061514769701730938528883214160367806081252469891062212388497","22623682058988935654786274490186897370925328002847247975090309752190100263920"],["27726453211842857738636361849125427516650643628781539545636642873036384046256","16469356389800521030207842966281524746975736492304860991631305879606004431049"],["18536629773728225701697961642251261555709390180633176165386062723874183941987","14510305580207915992605042354043529888975605669885953025476933168333709474241"],["5805333176268437373318633507031091928326417991939911883444101361749882131582","19971615964204431694243231222982321819904137514270157387771961466904014238422"],["11075689846251327226716063794311986765687956526944504185098123942093048700917","25004333578924882773340363344682231004814598652357866337934740632259310660943"],["9711005652069729658341793529609131632386886838608948204078316580783847232868","15793894525492250988688720174678741218984506008375953407613615682461801669503"],["19662392032296995298441208633402989522081838017264273074074280653988388775799","19519773599772942885733449512426649434140187537357225588063047868848624548914"],["621967317884321400562027645788040661635501846715320224489663829017877851975","13665579124357078268825012250158615481415762959298258581564538892656154861038"],["10318368296056384523936134887066268331817504056419434524419459198972479545702","6628838921970774470076442049979586147127599085743356089151399121734295522418"],["24388960724106552322912579656317813006624574711314471153770256915889013266570","28330977710108948867455447219436235646576426144361695801731922102716578942444"],["3489193096568648793498186030008854776442704123616498299002020991988061568792","13861746107265859676542767203256962643613434834780581165940374568800895097201"],["22566737633490265547731564885379579480055028381375012207298004206186309008143","17529669670630310330436804160947169980139178631231891499782243297749872998384"],["9368964276093920022312200140517264980761361452331769589191510694932893022148","22616826360445245974164041742897221522253559839348489821314398103592666161644"],["5240560555296361788486629428024234794171367676416374096933204572901243411784","12931640512891288879594757676789861761712642712619975636465842517111694404181"],["22328396087677652044694795368675851560917794415963519529213607604241388201921","7122212112780523164212267788096266114402934813072353345359543259582795840305"],["7667316135829345400562969499931099548909042378450947181545088990230212569222","24699053104171778176330736383816533260110506669984674553752373463546531046221"],["6310792939448892066777114525708979236111261151951420968774146311748435952554","15871980405025219827714876842571552992550940476715431759704033608097167813632"],["9565551045673855921270377045148971426229435701762690223877884248699786063514","16302597348117530784626664673524561717000613850963222447721581791371721623045"],["26059727899473783531489002725320257675355160373161559139158360319784727175736","27472204245490706881688809807350127811708322547496025975817282133445890561904"],["7033358953466544202181765497938278785739961613201007702055776449136819669187","12302920008590570934449244952658848200901768480701142750801766227287465110238"],["13175827328080065659693770440965122917850687419856146163861751051030916319624","23096759297401598584888986327965162451291529093654740162981432181446695415031"],["23973569645940766610106563753860497325532082889248120041562543177663849337654","18331042301459255731236217597700481113552054646577416151465111807383285905854"],["25364793301644431463055805979416256007232302955489795147045527693113784742443","14162865940141575565191158435416046964144233873066508227010658724084413043157"],["23902448879829543081209694954011930718156786428584602010277750406442566240317","23834769213936547782081195027778992818220371447863404880595621247515766001008"],["244502016765829108334632955620698278952398996168880224455360271304080636568","10134046123560758004097005736948869736407771953368795250226590152711552085607"],["27735237039363834397194580161268272662576320654210066614882998158604328822978","6133142883197981490226271462038389392309094534094166413951213556474254155601"],["9796353919426252864372181931140152408045083278863901494279818038872168526200","7676536996147879806642896028772260470310367307981270417338143968825155233536"],["14699922556340164563331134663628377646031977709505634765176434466408116162159","10718586592151872390906028330066692585865920217359247586719436303306321421072"],["26888921167944517808486367353609951796283846494146178455671496925426433460018","9974763611794271212937930726491959943850815396153019858464044023916381069722"],["7340070199001178981806458749101799419491837593940279933369546185962669829056","24140459068382325205304834852428267194055931412126514154580008798887513638688"],["7521656630515200631908142328352440972990381959786457113082305954670757056218","15854188296738531437201072468796292994442198759155256666910329460376120805044"],["7633549053510033725373204851262739617112509153029091529378923088321114211106","28699831418533367438976117216774455781502460353917484953369922349516871890485"],["6988558736597757491017366613218498528745726948712904446992712919307045692767","21381228806147083906325150022866946966245068305692360698491774647391105005331"],["19064248028760736203948717403451817914872025374329460576428726037731509958574","28072130132362564970881553762850622886403221647327477092762655210269233550386"],["28299135252400971575287009188584751033940918740551657029631525917436506800800","24476339727763989317892214386431051092077552381219830713219402056074330430983"],["18662013331984756343745118946150718045693367385948835396092833440168961763044","723093462882914584396501193328516859428879313305219403698276060419163762103"],["20405845641480309291677349664674902219711257066723946647825493337711586485192","27625752233157048307357901004675279083597950382086420082580014908611500935821"],["8470110456404040862070506150370968842992513114395783220714973463675102844858","11792137487798142687303445622877171446318833509367470236617287837570044033521"],["10539002640233816119405338442544837388516510857766119791450522173998541076989","1690217619289073256188160750497324252125584859652030557544612893413521031829"],["5847016095979093789483782232532220483124607116056181709017852903356113460702","20051011175355222049621631067445390961237779075005045088708145844751086008491"],["21082050403949246502534108896433972601391078728533398166233250016174917932891","15111230965026674627909915959723717479509069002934377453399301664687236612840"],["28825611976119294696124550830997811469142084314076025567982635388951208765534","21735281423352447254235124980321437859883507875163596028350761684871601731576"],["22970278060683152629586796361884156392746479677187772803093893227716257875889","21136119435471123122425336535169281197293778331389119007738241180239992164951"],["15416376470385574902363088616483345042619000806961942375661425226196181716733","8203319602165411287135804617976110103778630282338290073001641278213344065940"],["18150980790007344846804068172686031480945053719023643167147748383742126414833","27711244439173878249799916898307260797521832650647700257911094100859651265540"],["3415316614540361445220640286540366080960870883949431593022575860019915849276","18537942922607545294343484422474638687373341040703006510272141040574499492209"],["26373974183901445162006607832145364781894311087170215859512914652785043075349","24389547661113198893649404689777818242151721169144394522663323044212816164960"],["2835901207675324047092229619124118224668533109586076271944017988556568816613","11927077324619354515441254638818639289380189633088478241798106915317308160640"],["3598309276588148164255061602466444296763116116777379973003724009919591128377","28828140754175368331073854489775221609381576224093713002645471867184205237272"],["7348155826004830002913264411139029369670925506987464849647121644675496043229","12970598725736217936263487921445104376785345569745252180760753260308140769507"],["9783906913441982294331104761410918964344777283895055235822529260574964328330","7773301928516534120890806992821369104948593726684114928660063633767662747684"],["28096721409359655469351699625994592267592443884920336300915064206156251139949","3192236941529668815721606155956302648881464618449431845448108963180813228685"],["7870555778918613901562032103383531714970103636472394285288935018886673875123","27570439794776238564323721390768886366757052130637261369727582253033479954656"],["6833235481951762018924986614796249168253626858852378618310238823644391799778","25136767194486547916550382310647662036113890504491683148911497488975737833875"],["1666177120159157427002831236221431796400426885067876500906819143927624823921","24001069382170624876337700764662816270675719284798194396068188497693532047483"],["11587835501929708385276265947550110853128895198169845197276054280182122136603","8554843811416205638291157231311227841738705734206823644422790803707742161926"],["15482672914638798335544050144804650822861171595860849147821299090270029141614","22102753726391630614168051537501156701946186648488179252097761233597530940085"],["26874312725311629218002321349047695015957034510672675145609657504174658867794","22487329139095906909478824785553897147453619152108080422620548822266999653251"],["4759592351889255988060355491684037893649743303829468142478121818668623703145","17517580658149043360313090509089705104755182819422558884995470111254361923492"],["4960309858070964184683023669925906114727421715605798013661199975370262961850","8635048050470571171064281686002713569841974540051065543457111683353142310743"],["987339095448671720106679370812542683373937128240741050356543095415365612357","15831892296448651723071808153593059314196985086615818579722664127646159964197"],["8173152363512984590891846753636216664617295699887427050870065249308378714638","24735549960741727323484424922623236790247369839146652308043082054441103356549"],["6348636057000731662394410469997948433496713673648637881351791641288821435696","25750912217182490064507785197942261306718798025687979478462033227253038807893"],["8352489335910406855188926536104109156449299602549917586135411332691367962815","16184196812019686581381017516981448225531770469968173906275005744217585464076"],["25172660839702016164228398294443262519326295706243587636568647601801418381164","4108830917588813878366392409858539582070703748358595795003630724930012091176"],["26899371614482780565975886731219239607675424082138337710636707598182444902612","13057757517395323603817265713129498176030803956168013775256781353713386242211"],["20309334403520820699890448112895298878700676204135106937993872442792911705889","7963530997467658226718993208815915917556378240753013766143025501179418217954"],["9382552902782082094631570535262591907922688768508088745083501921623539947865","2529431928545067956597986793791539588100916360150489236715077122289445932863"],["18912376788747200848890123400564776349438030792244415646611465953246917930512","17914235916397028913102801243389385170945246855046417603606298413864720208869"],["4961558224936302434388038798122083804018457055818908456823535661939852880990","28703146518366144605346136465010138463066731837640464428748483490418573280298"],["18473351409512870954217715675963843809479825969285928721816257248920269226038","8258875391265063760431090592170202682882873505989122748265081640526398664232"],["25951201558338249133908243286265725326984491048779120157723671203179126537682","10401875912712091600382912327602834036649083364658824291739149188703045852662"],["4751610645110741014865335358980184348089263594739282948840651094031146952547","14401873070473515198235293682154337688601606683033875058470177143228965218601"],["22635246911500309686158278036971233906591297139719799078697579748781623123740","17559214624926125204350967542254852670665179854569079885785423599472467004296"],["25686600135013116565736368994065073296856294359828290133244110761946672118033","9561063613306469354966868234921221357806249535231666812635758064435490208162"],["12530817967105721146955854796515646329531974660108191218986101322946417654399","9497988915283005692820280118460509697754597406318110839272542552158893496573"],["24290127374649582236051524986939685576120532000968787962329449734944665958832","2946308673604441950892157218723089504383644955370050004232293935924746002342"],["28114467637381460797946335616149445143171972462917249717201209521177574410200","18572164288404309698294943019789287798801899477531621950557969653589451395345"],["5160166212983848918864102581562827920849335547145390384344971502615439154538","13478204910984543391064825455564642939293744631409902802385743013409167609277"],["5771643554709169240937501732287280898024295921593272674013560787244007142239","27642252518097954141384489697033710877500232639916495913491434803416686526201"],["19467715907386248599365364095612790760392077723579595720403811788385654798312","15036191901668600372210327131572737566053424292237017484037228131496552015099"],["8870287920885219389079984392571998615933025467562794114582740023007483926735","6267823965835291587021023435921076715033007695774251428964656710580756335334"],["21394248355172330110836899475526930342420101385443671140463826796644500493346","10635398573899612643161077633024128918377628725200752317792717097392498561772"],["21864475152785645537490300334703693350496184656422040800269448701557680993503","8111579407722150646666072843535220250472116859253808465134489076751548234230"],["6647629308329014196099399486207481409257391399757904533966511884070670440301","28556106069996005568361918991770994807815834529183785883892717083848989041579"],["82089691276839717645249221005671145910920418839551449388660202769099139110","24008497430671258164936036211888624516022593787827363517280910214174195714328"],["19077030852086259887248737727013481695276294554978057911521749445407319689461","9664913389754607275648772639159600997028593081648938121522608286535900554824"],["13902326355836218389170195187808636868067046115654642939866831037208940564341","26552128690824431855303522642784773521478898777554123730001980207160069842405"],["11953916549620888817274785341030704289856128688086438990191299038675918838924","13577787091080807749041256241777316971888272750572421369374322601922006368018"],["18239721106131904367882340725678760238955206550151651246709086261922736106186","10945162694309929825241755361209301094279500244211858853895639698244845984400"],["24315521074559099829952240218823364467699992448682935113782246490958536025551","10220090083313382147355511853115208359309753571946522230093843001229864736233"],["4455831552948954306171690817654360315320017509545420208459443563203002244094","25210144359838757592236413469421693906974812982824505200195630026623247697740"],["19767581332207893605997659043720968394657013049552217314981985677096720630145","21422046878604491739669598724627713414779220434067289014057372520047652958380"],["3496707575812164095296952320872516859552883784587807036620719536869842262040","840871912249083462274518932867233819063533844884817579320995723870623538337"],["12563783036462726321908834310265440006083453898884803279352484448463732917394","2487964466515215607285104026222259928235476100996056826791678648122496570509"],["12794962050147817496080626176748854453434058409728032439660735517568499630095","23659946994254086683262645505892284612828899056119647418419022428874136056927"],["20032675080347606019973760639368269364222824891280252258879014920624175471740","7610926281954754896566051594787737031655521688831011619287392472894783010588"],["14465352446426735414982189678809235371708802356654091197746666047825909790448","491608344085513766655437902925875377180522268383876100108924744601999833659"],["12669733840998772363538827636595762529818432058481713482214379724630918844300","26642484147165336699692292864575910626245551065817605237515415273461841230570"],["3888436891050610974110374331935289610994104399798558323611979972138244334292","24657239895284383949484223185473566907243253682849955423851995856602732485943"],["24086282472821809594989665293948379547247581676539828302922050979915103622608","13258915700702497479704674728445287431826733825204195217177767047655500413174"],["15448852967091967454892465663329423550975323764434131453970259034949122043680","2048756749974373673071209233034779779497603432082015254316941979499741929168"],["11067317390952732416449165883730011700629588118987267840597114322703626179030","17080616539006163651392363377631427605851820502755167734254775266837607033798"],["3975471162749218219595067144473437609202026705908849957207116231407958504251","27410292771973136141954856944271774905285523838414397665739150339659135489912"],["26277440094507619432532950592574337257400983440719127237495496826587198831616","20079891405008160875581316071901888155461847100940905324869819759254644291599"],["464704955745364462471289444735047367060360456626587099559662947736747882972","16142304367603947116682123825550669814153047677063991872674636977834718166305"],["24764100721320651863205581625316082506749903782379036181942146236274492162858","7684575582617555155243990326041920605762329189810703909278938284897536867348"],["20072743528732283360193856197985526671272552978357470356488880923677439132502","12477358777172965072957160873608503361119083384050241196922426767850716717409"],["19739866351195551462550552032192200204775345167770098096555790735548439272479","15071926293164694768447290495511026905035963208703053608709319708991689537"],["11805664899262116855097346402377103581786744158093648508407746343247962330694","3485785925922123539214063903876681666633015893131584780676516314593545569870"],["7869775693716235548586468364704759950904861320285060682461872488866854362221","22274168723737468275966537430233638556188431103166401829145331163382537198565"],["25310430433246083028612460055411952661641138597788034272018842177099715174920","2131679292908035151568676238402390378890424897184657500343248546849976049093"],["12071106757766294045993682102052184897348157356597752962332754824448010596199","20787942002222485813844530418023394609791783455464510716177467355604392957470"],["8904429188383453143788271667265951213227291648788922901417170260081239405087","19008031295079321826201549586273542817672190169448796348557657970403196637744"],["13458700841246462091600454397404602577782964790990816515672683117873908172748","5497828479176264813071713308342463206134198646655023297636093110868638778339"],["26212616275999192586682092491280741545839062297519536744863327628480886280317","20220918653444331641720793541509091864612706112920454437758420848260692904820"],["9398418335890200390559936749231937634150019377006875347049660635493244698183","6092473601730900934715914031397373428136931622974747440255361395320511886442"],["1231089590977142887786862926607017447513504061186047707031066449652405159229","9486647955118235000670416547521347306391273971407840652639868784985302063003"],["6052940024454540133674284082973163929409896041994937967452026871740486951585","23292377247360531251953342332716692402678079914758187789733942596194572559564"],["26864251062526118253661295896272099316207536449083334877723475297764155689569","23522153776627978753141871379974121351202436378439625390642235225500216132662"],["10449741197011950497346482485517312112198310875842199695464662075435830737973","4453056126491347583068380860957545296713272308102318902639350222135523489335"],["22595558694565833736153778211522274533471869037797240739783756583391946334445","12802332516924102132214378620730589301769984793611566635313454557550360397911"],["11576899459684297561588678528194640229296046170919117431032516772208847441069","12285463704060913712960642271520605438383770934365202474147009862386964337851"],["18128016320670592533715189285952253603083063049002680078850573941171386368810","24188452218399546303454219611538121642154343225264559874542915369668566398767"],["4581809462165565605944253297104877265576229227087028798804580575067703202797","18439578141200877756359822719351957083299235122943594428782628254163087286245"],["3051869268811250035082166750653744991592385356738694179441073813578999300673","7170134235122177801908770560531359057953170575316006138461324198465909020375"],["24233941528138996083280034169091010032526564686870935690655386359490014383731","1230902185651590233306225275672967223547636501817137792522534723412951211007"],["16489984118119148594011118695435323471519602135197986534217871323785361132350","14248457818039353306233116346572879076069040536924257495936867460504196507985"],["21828204581842077008481557929512265916265206178287810364932559271737520983072","20386905084148943582239386967364852324320635961845809208776323675369972632147"],["3317589145326199681189391348280200247715459673998546950819416392638129787022","28689896237905820230435933970207731296451490030395092938350540929439555425022"],["12616465126130899430055996372648217005443249262276989410257713594335527047713","7678449271887264975428218483878944712372072575295940807254737915157527123821"],["16160520574666126760717949119560639947200650607801337600386115784012276817111","499186190550028358063292803468595565975948027679080783255674592289256700559"],["20524972667526571567591666742461864349054994180654323981153277359856785607351","28007316108297608499845735238142564936051304991272285626444921114127219940173"],["23096094810903467034738068291398433816224513381393099790998400211056251946339","12117443388700538040380846256477243825575315588329431268014831364360934993457"],["21105225538314923278669792315994172654673015906496727221631555704712089667478","11529876953234532791162729629387230634005211393303502789673769157714596932694"],["2452081848331772389877963952876210195544141392915724157958593841603007780288","1504379645430128589866944481701411639785285611335296391096500189896490218282"],["9172060638322010765821018097852156619701581166729383552516996856572026049609","10602280773052715337010780734664378679417376304140259753359775616439053641205"],["25729314358973596146156437602206127495787074090963421483691608749985414010381","13980136520035899121038265941426225151805250564260882890985580580864798980250"],["21992067118530063665089499618730852401590502276809167731621591410642342025549","8606575544121076172785162745976813801563580749429848427593756615556202631182"],["19852554800317233983354588160035248669597454897335140128576784577721165072605","23930860433340090065704023471746917627005965144882701411270144389651668490754"],["27620397951737370351300482118959849091386618268221147303467589588222267030500","9865382394390606442799641176865315469311772381287782451114634401052777682555"],["20084219977534575835967011171161270779680841952141842790979203648400439250819","15774320288390035643048498666158164126530069264960670526184298959812167706167"],["25651395747518326530015299381880770910419724441921582766667091754970145516498","15785568278955170616446272851104381846152988462333245934600688251184798335080"],["27134848127811966309384399133663848919183461316648531557596047467862851911850","4368536788170701472599890198919167925907041870834051347179264202597753733507"],["23594783723835217898472201816801657853491583226005659250495516158163417727886","10429931898357437748935907266471008265868033797057857146619519920589676172347"],["2847104976075240313687471387271675476935679193260169985683929196889011317076","13307735981906019627773349850670308837206180408815872477133980960032879996360"],["2155450684267536851331568800787488821295083369526941095405933836546034496621","14238592174728020743118365551186160251881027371768204591123852887605607800020"],["22276990808024132526230661257655512581877958442103436086837126806050310204340","13429046482848996317973927149233067467911115918792060425157867109520743721632"],["8769520816244399308843275485716327122692552351950035939685735284399926683500","6046071555076530137077012891460111047765451131079012513050888861309213818147"],["2763882917648746702986699244795615580682544410855229960372897143002222332952","11975243260565467795541879999429229526041597051905448668296572992870387156481"],["8887507393222786832974277280793374769874163995285483139368774014693415152913","13786782513402742224863729410572184987224610168554889593607117376668531908002"],["8851160861303811499317466823174449267234134102564755597752222641036871991759","19687360264580709755682767164440503222127619604115682421518027504822686396765"],["3187956444743575632604074189312772522082717643910489062016307408781381868517","84569254269976458494601691122032456530137794264919228258760443277944897435"],["3192637599789705587395967621415604873651340784704782583789467120772747537494","2752828195472356727887666716365777991168342780519009602982800557463244095890"],["21809696611260675246150595105951365186986338078892430845581834058798944960919","25360482556464564532884832464747438631403323864020047692371260963406205824942"],["893704729973837121541007461609027479553281159408907694988888682736335759512","21444789864555154161955783228984520844003155271259876871118887431234776255597"],["25392082653494944228697221357644090645577266194659509180897894156239111127895","14148709927820493572705085732068842134711051130262130294549663420632636037088"],["11963680861253532157180551982077987206311638498512814487619360115786122461094","16559932566072492667200887860806992056198972311098790461034528059466459076133"],["20496861815171195789062922323926962876909962725153545758409870068333568506732","22482006263128245890000822613527298563888196320567854625120367550933333532449"],["4836439580350683346935474121285984687687369468435068225569645828732423931037","13377979671699297020157554867711863326087491106742089976513384703526755245540"],["7552259323444566420760586137593040731717877112540588077124320731099219228932","23116304146967624287401823498825695998935622971832217798650408376906791011001"],["23198905906522243577857888012860088986658992453883780790525311353812872673504","9763013726682886989122858257776345924679767131783993273026569631068206301137"],["27399816351566615078876835366918746004607815529793455069435527674707057885844","16546326193223628337143715075415901501586631225042007836394633412841821107057"],["8516821190438963586071437121384670982835081290918659455293825719433835416735","8358025154409353774184173369548503279602639239927147138010845012707474211290"],["7756460372733146807507513493920875231804914732432156027890286962950187369330","16131621712283086262586708304565201805571957914688265350914398386348477076449"],["9506481432791913084275859589566578108904808196380499344380268343871583373099","16490494031714143821655191338655364913781663379335452158745743771207697836854"],["6901854998255204311400579644988064789362335271030958560594397940657017739608","26515910193509971485795098844016815553114085830618564583743762222704323541854"],["9279355677896294644230575775154430936800106084379043029660730233422242721141","7718006073639642315623318350228373746921088375096426964367191116418509227565"],["13943225190687606852887123217334751982734006494306572143766826506880592049537","7786001886308146398252858631223185563711690566989315458510029201620895760248"],["22888864462978478127740742964493801733967482707630680076641913513378371283767","10019240739388615354332787457636881447385112240276113770546576366677448279444"],["6879712663919376032455570260424411447974543831507825510030760219103667271595","18564563506001435254613251910352736575509336401014135176948764623229695239000"],["27481741154159308849010787448640084236570227620839928240716737813601011480919","15769741978113832193681407859195763136897961326651697552056869223980312250811"],["710120855373484913373269271221792568724429583279566784014868598168263309490","18398310009220608223898784417817721493712679367438955346022843068348076029019"],["19673156333131368678403709655462423036298473150185709477659740923923148942596","25785574766361847171678746489679896648206618730336185970913745625542815154509"],["13650448864344062504281906042750615077433342557853633576899268190394549416617","10936264734327513651658518298233086794659648809071333319820681352406624773203"],["23610715096658017588574769553617993988538613549315357814044904699760232610728","10055051981157358402319033959749990745621097496340638933899385589837492206110"],["19693557243793960136746491234412880473284181695400245609983576596018519132225","16162188060072836202927249247140966574458679030924652528655913721078720212934"],["6282973389535437296822371936100237453133732845047741150928757975919033398045","20757113533251637849204085077577420831276054211190381190830605526076418545771"],["11022568106678517633955918558204447748976567957776145453253587942855647244774","24459605687651695953287286971878618360336960769696507514826741825713048814829"],["11831280538847174356773281432231235976655646116138631729812504826328323963988","22118352057840261343668298884475443678702539441572415304513555087365262871637"],["7461946083797185817029087022401798008268169932925714954790984716538906071771","17302915503186963877570610905498221374090673529867375459090742863605895141292"],["17675539999016398923009412219401659975353856026131679542485774007188266398886","17365828215905134945625199959032540628438254952260713619652415621417332061122"],["9174235448175288971416415865696963360297934956384127859796634017454664275338","3476367441768382199689422174263912975031360568705627424503131261998227206325"],["11080917117348590187666017886263956153262951320977136465644708994471262428827","11971497459336075189486378951829385922277393856243015526486086533046414579089"],["11055936679851732304038405449850724455637742715336266011292599593420406988801","12977474127896713201157495260302261507674261314261321451663578446964654784513"],["13528649725617219061658384931306908527511120101632582155404245015164333877519","17679350319151865140234842179169078068255348491310660077775854935718511904070"],["12694984390655533262111025994268102668982456841792254439699845674330538180113","9964131561721564813398951845133176031592093375489803895772125943676428583906"],["8256892176623545761165132477195962779834793770440430789836609207615730685598","26312908834288612533855903548349941387390729647510439630851816074173779187175"],["16818238272450600973796602967894330832855833818674997679423765838525425129422","27563416057872242065778080003851197559245036382463263645611439978212779049428"],["23335077478036906983204876422700387272550316588734668236619625283909341806090","19516161981154970889961919086336528821527707589154209646679465713377611472047"],["21611625893580350478280741226667509460689646484995006639390692970846494105254","12797488490005485154268007591937135040092451599402780116528395778301537853604"],["12380409366527239341343392969235767474718829422655219915985293750235181359877","28287448782466304226771095426029089353185729668859566593664991891758256383640"],["7625681823437108800751898188921937795858261811633040830058462221601653187623","10309191157580504966083575699938862466013583827889823994891748905164180585037"],["14240556866999907804645290401149969640462399976521269622804936835449713570212","19405900989410769727633086795629345429193116468827884231572514254433816057819"],["26311849003638389120916437517133818040785999805176622146300267908771055675899","23088796071925248123007746757268264691531338768542816221788583621811214616410"],["22003274913616828113084795721377013276632250614051244144467038078181471767629","21641507651163768320669280392456320396846590537227461386476970297617165768778"],["16790486891304444999861535300881101967791439542039975669427310215905165170892","23666296378646901884325493447656205937668387943032483646309782288000953916898"],["2387212726423791905735358399844415754049263429786921421222059917946445803927","5055630542899385065542586122698738654773131777875565802701628506924902094723"],["23314004879894492745062010717961985872235028620231848233007049458888516479654","12047032712014297680698080237624529210079227612720138364311527408747775814250"],["13311847494575975499932773365614924088447463886945238568795096215508282673755","15783800445851858700401725629695806228548646781580242339369563940832868596696"],["14417462838419819201822215826243659935217963445023840192902545866459276331403","4742484795012899651411522135128091789770671329892807768734985794723607189698"],["21625176700570020420931383381615669695781661022873322323768002323553333290556","9039610633635302808717318485479174655931337071016193215872418608409218062355"],["23270972797336860704996303574731717538285702398361782736495192279193361986345","23029799295392981769076432190380910653614852166538012418157581507804601031931"],["19359559993393816727399645229092649454141363865894002018938244470832347551665","1262221559074041404442188449123251570369535318123445216488594167764982175024"],["3394560945476626875389520893463498669434930789235910229122303540740774619499","9895892710975153890362710381977861309839881324077258529684795332453802160981"],["28211709628518872110436356226378221599494606342878993253783211539324325905436","11489063886849510313242312959652045208017823818134711653892844989531585104882"],["7100062663694695348333928320004760335402126335384329491204131019456337456938","24727986024113623515201959235804837988032522545338036607670157637727681333229"],["15534677628934806501552170091613609535315220661161069553619139980679665805816","673600047188903587694641787170724200931824804862732560208420510574223010607"],["18422615825711411445623092623634896057409990455785574077466933815626156430789","10719054007387256701569096355561533702343032333166377770339953731417895566602"],["3259300402448844807920252087504692344304091315772328321393654167394100323492","7578422407285373702458131623898793385385344027100740225986840157194462005473"],["12671062822706251266585542141223781037253895940239648877009033555312586065972","14594259808362098591536441752597741084497005643787264534604891865053045988155"],["22649216932663422630910293988554072788851994140530253582014845770538371107754","2303774404090834953628518735171793218511572414678456955385150109278782711109"],["1275486302873921641178479855421663899290763849921386185028481086691815084396","2913170086643200877992594739981027544429340909280298138966932950609779167159"],["8678242266267936964667697314362257922911460893852663980821593759764283925924","8989481335613929182194669335367993379153394918484299939925245897095989298576"],["11143716256212679076389350038650503773392484684171114671297678541342776838062","21348490992005081718499929682183878522795428102571081392002232260884056988978"],["15130425372558842756487110952688028112719758589417935170851154584478462862268","10203033527510807937078733459995697117236208311525109535036410458538005705384"],["6420991093568012512394454070245425855073061334113781895231864603904151182072","7670076996270062412629661994528667596617966857378714496837722713342626560431"],["23126526784741292864532163906616487623273488800896730188128470539691289349599","11392321200043442820298869283658994275845721716476033860755634059564052071218"],["8090826658924066538354032432486177658272283956394863518207128432476544064547","27451334637386020638945713447867074205702055200686135283826302360122068889905"],["24422445321858635885373149335586322242593084995742820474031954424836553727989","934331858685950021366676551534687072005774675432778846050863268625795383851"],["20748393925740968450982061938105298529709836973071853345262934415645103368276","23921971494440804831925330828576290067473644909158326119880403011617292508649"],["6793547212434979251517090297738173932705476978105723584758174192781498765385","27122689124196923071739711842765726150116875687555103332421555498275972235462"],["28035010021357606555342479214395773431287579527590708729686906356437404568286","11927194473689409767177156273527507334096090306034108563281918494726375384149"],["6423921086980054123735703020340126079471259490996438598367349792177252735704","8690759266265685574036765437362800238153737853833389192258905451598390678736"],["27918550543176724099263500472268246182032592617951588004381334240089288450682","20270210261041933325995792890519270417088071459433780212954556228262418601981"],["22393243600816160326631804115714137430434469513774445980098939658206766476809","23207674675097198264808118024397219636385048471349927470666666106000590841585"],["16093573432756788093325758776631125058505136270442007443649859315755834837397","3859991994367009793380701251246284449897576037976055977142159938049876972732"],["14085080764193701718425457050505704904521809998747872848147534711928471251586","9909252222013559023790487657411740307183198723188959192039283516323587291809"],["24146124604042697037546632642576699301531389042934450952842782315456797509581","9294420212912084330822273226291380825099777549991950195254423539013587223622"],["15637614197853765269919968356171082913291701991819200001842846418077411449236","22520786789742685612303481381700553815519421959809515127754327755777797269849"],["28080093394796255276064912054703449000888779039982364972613572194224786659577","6952893299411146913887634268242870354390250063934512675559586510713285315762"],["11011872337817139375328011382667915385727615338623407778106476700835411385852","23014186474322071309033777898899756754990485571141679828778215601256625640977"],["18241284836146624549135675585468164134114302285143966729619945681002273905895","1731542793685461839956716070795749654361644178411307766388269092680266132015"],["22497101450041267464007208328855704879757720709603736283036307292880059215765","12655893452955017123136883990159743647771859682139498148193125846386721211225"],["20817051399219197598936236950245987760868630101704569432845941733996231166195","28611028319506225799183383944051070172505753001813401355063957693460981591727"],["5970019594300348269014462292653221980060756243334969136834856348185409637750","20626910751253411197619321913887749433351698066310361832601696793375416665851"],["25867991923778076051918345209839115044533543484236833094849239289901893440431","17065015645867018861652568716584426614876456923483649000029385222754835799785"],["3529456344969572556816567889107903048138246347743712590323396517660632915906","6522430798006690011404144322689686421128061657412383023179021367904601917785"],["11154673382831111811842574086831110276674192760593126074749892354547315695585","15192954868434101708022402688122591812414122546284982953160500418287225131310"],["8331722987196664173041715971994561318317715456649799845276233717067271608282","18867554835893438383756997034249178303643907304907289235612841258784095356685"],["22124582062746579974328346506411431312651870117524575661477427858768732989136","3537135713431673319493192411400835295179924028883434411324603104009829478920"],["16638424238431279873560504168886686960938158688070640268695100511490299050400","14003703538941843894242361405264793349347657380271547844608753890535754626896"],["16714292534246978992683522920722607996028649080174757808760725042529163995640","28334818255617006459405622333781545659133860265396789720938909875255242665096"],["19878318144147979127533448456826303799094353003899051805728983584794251145521","18485445151228425055728876289796388672622501863411330783418437012260159530236"],["4312473784789997177773282661627252501326178790820639062424686540755061653171","15794451269263723714409228113454891472936304556594022375237268648463172028457"],["25577377904959806232655563100389611582351809877394334365173877578606416090039","21380776862406603474991778553750463901386935683933361995313752326929442025081"],["1365106599543193225827672250861554452341176769265598198785918377425999945900","539930694981737313485775948857541495527856955021336624761199762580811428240"],["10349633291071830480246055906136310789567840960969209004899849395789047536199","5369427242539750432562147422291598284230236301242784193303655929178038755624"],["21324818166482337137417547313950255274975085521591624779037442989937086634672","24115404223302396555569358368485692877967924097459240963862975591447133444525"],["14153478066173345375174737542053653543270888731441948130317983329619970167159","5723687038305620181816180855512917702656472966385088558869845308984995856802"],["11920715697590268345922222944201157198207614416556164109648560635622762778774","4017409484934199517425909075924129770132045941542611956761659932146191354638"],["17897381779726450672321165032629333886586962136727929372173387825359179164499","1900174204009476221003071838054757133305961206741309827123346643555487810069"],["8688219922801088853904390714538269026970608138588813298659259774634874896004","15683429949304354975046324527037829429241456813974070489080640171046000601525"],["19108367079671273901572606607732996701165936212541403903276200713700547157500","5080987687703347639961056529934925391261214199981231127267152983479068180698"],["6514332893538954787129624737414155211711256172620536487707639902317074727507","15787112747926962158769114314495380380013275257575714502214859913018086660684"],["28564862056854953213782728963602099483302813448474487581777575589087996530149","15718503938344260769352619337651073302805079130225798835648150215064415832196"],["10210005797327303440296336350439252025396730342889166753200298590802189727757","25512475841728621495185136148783568393245364843204635723888505590468166042410"],["17504562125911115022136992433086214278961441998852650876664592811129171274130","8449592040006067411269046210328097510874607966324514380239200526991354622288"],["25403644233717528024342209065816580755181960314841584399257755143809742035798","7515003870038255539834064337458760394995217065072239994569916916276101737567"],["4121666261636297868026971941271524748227257569608166982263182011616057171354","11372602254551719062929314769862789807238740256767305949473027015776251569696"],["8204519031273458330603420025504668306229834434169752742351662175805681361116","26401209953022785708353578120733530678205021141690311817040433917637763727818"],["23628399914110142843754170476592124519030001567424516941545112461998332669922","17724432647028448675152566603994508515553159617141075768916251646718840616996"],["21167550501506094590592405583359905732086118730494927011090661950234741260773","17177528816428040125382535287404153797804531236406083323085703202100117163770"],["1645801927716985741780775256268389164600013215545683800735390584626507469401","5029096353514333918647335546333954178679091311278527811631666364512162936256"],["7883160391096201313211363722867401431506492071214789677392841463454668841576","21093612040910934005278067118504428229938107953548699478637469054064722532897"],["27846002377947317499305649632380320318681825353411108073994797539660782486053","25188882570631280549283135893443847046827588458620143044448458405152128949054"],["16244949159367791042411340047993191972160141439646932481665731192654761145538","9559695100088177528851461239120941843920318956901415846594843200950821731774"],["23216145103241925645406535319662397138286012475700540672415068312602708944988","27770088758267371975962076014436561667846987900781121108386418435737817722832"],["20240819682210577278955489629105185185471188283535159091537003494644673098521","13654139276749328215701170330613500069693810080136123827596235618449619164756"],["21320572612128161740592174746044257499321394984129533627830538454888952528562","16280013458106731211070724097881452744777555364242544676223817436554203647380"],["25202686587796195800815721471581507421059294556193696354072611541771086572930","20052452707193234703761549195214507783724354761211228672582941282717450823525"],["3391819901259431403245949862903450653090647139096100583063127712383908108445","27107044106063903366160454430254769693771972792556798361388970257102579439607"],["10147266484226837358199519229925652237480358759844890923672835562018101162720","10885697647050028559602750745530992284769657187514055223412356442185162152642"],["2204456502910549279652510362189084832823095307538554182552309388834802022237","22488029257926490975815059456563619893081330516635128055665801785664659855433"],["14241058493831728488747296724943869036447792568835184226111486645479911282893","20771317350598215974104028515076022090248872269366779438319795302254076312087"],["4388336542330434398091636345245078057590539337962051692921678064234357965654","21362449069936393280377642433492220294956363447427782864093800996195862090534"],["28308310121154939364030349562533196246616741542180746682140808673302193238984","957638873542896060294611088503853192910254991609364039576629675779939538372"],["8601192963648650606421499347890903849535259934664473106867409626577257326690","28855402443006232391942627480581671092527628611081401652860459015175181254896"],["16736683594722621895211732034739666815081315842538181935874792151972607655426","16660872927101799659415227644574709581768414527483303636733526286492582448296"],["24240933740652018516477496923255927495457797253427852832079005213288962137545","24566605560065975478522275732360862378892075058948440570595244038041105060329"],["7183312927667238578487195217646719522050585159781467828151539799140114196272","15819672321959092726332153151706118005400179458805248651932083029237820616950"],["22934643556080103096569842893592552662939839516813827606066191516044563904372","10520650472561481287180717003790539105011745366425519281029280095807040681421"],["5717190372457867529858246623387199831666802791659961999420660259462004528401","9928667962704828247414232560034932734549942469722573424929590765101379264662"],["24042339381569442546951367828047763385317540820155937864957790936516848778540","4905649794604108485632992874220127375516271722797940486927336833793642044273"],["13694486703641086054898347162084103991589824637116762970521804047718178856754","22904632021760671997718300251020256009234900897689066583524010037248119402948"],["6339959413247562488044976153671249115138428584358445042419719872046145697421","6236693175001645213478928407162706790688507042608742294845252639328541464630"],["4764024196703916800381686825284686404624238018632583549935692129646420967503","23639984865520251492416061819348666458053408255865831992894147769794597553807"],["27821091850062588000629901027169014939795538541450910241830075890111444423440","12426902473094807117787152323681327997029858432430108006154753598574226123667"],["1727373268917129102167478557527038859577317552155757754589874484201630930138","5550124050902004648909065707647455470379822298277490972449048733571216177228"],["24032464186280233225488560721411714908617677922140931040585594309508105739486","2648399377795721201511390165361381239790628059973086398244787853290870330103"],["7627974979613426313663464360856308962694736629204864522789436771786509886571","5693287996589232790854475825361290497488853762098103435193252590356627777705"],["7501296945548752907421830559120600619793185232494987342534647601413127821494","14293798838680322138003572402604506376081130744044476626971919511070034259976"],["935361278731228691921954848086299307786861975051764779961476923211872874527","27081089112957838063456732030872220032353881503459337442636293157199792542463"],["23551031361947909487267035192069025809553635973026234512978638922450374071562","10803559326473967977421773976347257064625430745023116928984114565660356569177"],["15929885691573142278089925274979108669740659593573465708133568186710848540728","28314307943100455643135697735181904429504323476525271935239568199164776805399"],["16392608202206102191262522300527965050547963841140192383133661408089330623342","12745100013062669568954772883905958936326284984498135409520312555771808629127"],["9692265115272387716492880096035588655574426229234780245910067190669599892905","24287609234601093493512163422588502034184790565929255069568696164261201930836"],["8160798782530742934110966985083063066000248166182106263635179852333235524430","17642543322098473737050612617488004021403894225153972019750106325885911261021"],["9596625943954477454642990931283750125011183373733244223545177744067993313116","21529394794770897159515249597931342164643162781921820712891544778396055321834"],["8291160333759176678896696571815493024230192859849079420675339767837131955619","18902508258116130801735767187469940689686075474608423118505853594054046294900"],["16092714629850707249454113660216015896564656815071462255382476921250394497891","12407622420741149425450255420532546377738752267137322293391070877012801403028"],["3848120167306952312173036190326481150259355048518913108011060150426949052879","19289507300884876911741514021838591665920879159325247045965167301634857044769"],["13974280924619036077944421920235235202082495687357196524816192237387288772231","28586597643010239603451954437010693249150112547692515714762665711259205371972"],["23239392805313823001530537035966043874176635359526972794671850883580545967498","17536235129044766082057802648750556908231424112669056653553718545767555553588"],["4997497077089564218784053528286558613654002589061496072349763586879489041652","15859190553672857258788575886108532971930737860282308510095020500545836309871"],["18730990329233305694084357524534193089685838584073819204495591155466933195900","17782481236152901859804036729839273572747394830682275757675886493982823465825"],["7341920679230902946271579095066797374968565760424132400023328767285735381286","2858731093542625879289433115393120265294501489817693926097648206933379046760"],["3736043227506581257773617570027933069332439650263044578330149367886460630569","13747393766170155944755453574573019561825497112499087130493006157690898176123"],["2154189185174217808491556038903851813657956983097729760907395961620096509133","1220285616380308633905489050425515918698431687341129306756116774220624785412"],["9538105127818288636632652209892905378334422787863615570854329343196134296686","20359881130043750337864483168101429554910164851665268183200645864145785297424"],["3550008968911859328667298319771340655962794170745989624968037128207098934688","1906637682956883338436702765227553150691141616981352347059329402254664394448"],["2694860402862520541905667369881051734265623617138333588960400246974359960485","24961219679643936648159267440499843099173615567394409389519579960835833469744"],["17014326440843911170506805915826783741178149543996791802777098165845076964324","19990297544642331724889138860965996672032673431689237173803915028107616419863"],["7148051111719982398447562717716487853131447536237525966626394664575613402279","26281534341958534348691224346814288252392174120836407201980245732125819551117"],["5670875092811213749208848154075595954991239757521669693134406294965600702434","15838160397357604929870899559219507193160416917372273532173902509419986729793"],["25100472403473565853780464975489775471433240400584567935267600937420353497847","20353299195492266745965794872886955343732450870489021052127671873134163551297"],["17582629575741399097526608002901415055973049217421756481809899745966398888953","16038793534395803600267446264556015598999780445140686921430811111468675361022"],["25328642027570759934107967916999883382150742585576391506787935522090268807777","24878201247205808597954088100609163523958002379568781130285343047448558096950"],["21740586804644263301074846978472022392160636356986452499890125477209021267444","21097956433592759546091944271775803997655101321623456700868809752931360504016"],["21416215949162962022144011777899022302342734193227912910364390861454762567540","17225942732471580956175977503510925800979932783468524433076295470397729465093"],["22865426137450073423870756024463773800828287817963158963911575650508784934553","7293888500407843739836563558993362529566269041340695674238266462899355341111"],["6784823869542265846408665290911227989308421545690602121159730868022315901792","22187804241242594667374422933249178559496298851689201783929621720129521793694"],["24271785237075645896765583228304091184732733218497076518212504743744527929198","21787440915607841165506905230040997188399644877993212505260007260287404871773"],["8202493847669119819041071842538337815837600008703391854332567595772992368562","17841490177088407387009452821339263617477564424048968893348463880539670837028"],["27365075159174555853362618829840729050754871625053858177357570152193401603173","16785977943603672217029626061940154034315371977244510746533473245621271550167"],["4631905084078945943382912207784956554370086014680014753309612080513888697983","436229983298526198890971245112765403831239399329998453649743669705634826740"],["9484171768445620116422181293945875655901655079526202236455302849303988472900","19629521924934521267143092804042763767619328006048940076375209014018636731322"],["7881846178567524539762699864566455310300024755069256291282141611275344220809","2913325250155176188214394870044338331639526547198277732176167862889617642124"],["27726810708381720126950543476130920528248682082993166293795446250855729966151","22753857857809797165320605515465678463205427582815217067328118177264095589035"],["20561907771994288193829384947612095296081084498318655123321866047283405679137","3575637522756122491517450622653813459596977007831521442070514691232364424407"],["14525929723168209123827892510171121584425588001828468790725376780249326600274","10266617841475451794339287060397376384398908622572645766141651281449820036820"],["11873382474807257131926995533459308696907848862809133110622136651814435036322","7425031954880851897749686343467031652292494833842509464841635250724050397799"],["26259000186463220405858350162086988445273964907889288410843195814901165716240","5503665291212358436552144984876403884585832935252000578985216028091168766037"],["13935276641548130524375275140877383283240075028360669076114842878701551180001","3046809949485338216616585593550264626532698331303522088679765267575047128291"],["11473564967546011142017116719092649258554153157356855536542100979773438142126","17035653436418588274140465261186743896832713972649324551482140342752296806492"],["15215002402710187153069826774762062421297183306485848575882744226149716880834","24643002929424123159122440405846403411156810276260580416617745699438398550029"],["23274428051048633902520138098876254332218750731760311298206278739009256521541","25596768406798446132944228211075141560557844852426164057513971610781722158294"],["11945299409066462315350979683869952926772446983979953147300774181279324413004","3693529590150365104062638132812436870963447524142642396319787823942193116822"],["17364909394272487616112463812939289426883114331914576433529032209546789498961","22268503440843049227724972319740166800630077842691048844193490950848451474481"],["10462333906482830179626474905359509934205253435309559274265972564959212388736","8223399947453036905742415633271865807815130684279403839695203696748326188355"],["10740860685763261155154111528501574436316632396275761377303290455830720212767","12974328171209666900670010640286042565096820958441812758189265205795518309278"],["16238801001878584656621181460072710011392740195252505120473451934296128553229","26021438578602943664706641482218661851795711224112582721641171843901500797019"],["27730460749097586523283513150236538179410988555905670060944242142493698383333","21011158779627735903453329545209526042933875732810851609468895731701193388212"],["14795219095749705412592163434270863576058006658347607380115801840180211971058","6007967382935570351878347623752929682257908345925019434837330619406878614639"],["28921440603758085971527001036230599187648883065061308247255813569426287557768","21709691947371700648892147767602227191134157398074040446688277373161230739685"],["10499257354637754970291689447661471063762910716425333372152325693246980761129","28653631089333290147414055259375191910748931015501792477559000950893223646181"],["6260952239998899393347098822587326985409230321230968175804966499253539086780","23164141276474296954521226843430752104399714328793091689548249253990701354983"],["1861183708504771232266525900014034061872046131953729808129586717833219391006","761652986014712552371703836696055967087918501370415847894099565098737292093"],["12135669359024450552864429931713637528400117409911729674099982236176038879149","3886493249514859280818200038636588488999507515903335224602856836527563784582"],["9843309091333988150595514261308002558917955639037140555522583256866827034694","16767092354481823656314361002903748615443111259851889128606181750631408167558"],["21864884323741800124592566252956748004179720217929336876657533546265138082720","18914671583341426986659831362304583513603081988819962032410776763320680431446"],["25673217257103557395338495176779173958230252054922530148122556569195557482457","10981218738159801148761294043488434876680918045407285110926643062473037550596"],["12587417145841027691299537297256065585985072014434662704352000660089016807761","2865846971278462006381101127204898366307544370299742953622767470243139093856"],["11718965768379719304972562123735935077428838307245546456701627417050334815098","25561404036424841264714959779269270944607608231452090811620476905405372385146"],["15685649589809521497825582625746210123097285071113619692144216800574185812661","24970663462871051483996461526664331359530932143229786313346925114878968707917"],["4269321593853886539230036837120050183561587934754059809528274053623945610939","16328213811352390958777603243993084118492955650897795006072430231447052886344"],["15264752606517191258513505924102363103412445093213038312364418587013676299977","24380935473460589651280851742034090505425854674028843746362212050272992590153"],["9751124505140036392392060669304280543137938817489672897829547039990514665548","9954751697325338224287800015091635886055408836996603284498133930117632493433"],["6230215815101339999880950128573759525159477646239685308199076443455389357978","28731042877490283983413449852310005636113162651429456007298388139713778636887"],["5497854708077968808626588605219376131490370048319654086881848342109744698014","26535854862815295316308137694126416881499227514688161864575158809951451038980"],["3560681814638416999214780271022126967490231678361513337852624666400706581743","2794369692984217348203844559833434071473325690818070493591213638286769042072"],["10243765695313397238606271640008644920276788650346102369121379661568825555316","6722723289667059494498952265916713231826466220044767166265844629004951553464"],["24557596779845130917945002106412062100176066379751758243607263473930607205649","16383856184349370564695389174615434017456001659601732319912725045345821424318"],["26104896755301485760054759141148160671342125838827890921424484404534182935152","3721539623541759528038299623624883371818610843593151012165321024099593996164"],["18543613207729054849005434019230663218379739145457524405156167783289782288654","21527895367993563740283418405212264858077476355286158063684206274761936570424"],["15636714824816342480966317152961186002288983208813266786133997726473929940134","12043353458817733546998686030843508096356906385026986773078332713202123137997"],["16640872453646444873185996949119294411370080887173623886565480601027654968754","22713991073168546359239497066532868015312916627830177313180807940445331254061"],["5920599572459532954023531097530190219173198157299837888759146871937421544604","14685866331238913322819206345520642576098901570567528982926379278748085373607"],["13407030673747146128946041836542224812333740447036384702447370637717357241960","1181401489789744916445336893623992918056535588324595629555052885091677536620"],["8358692784274363179102164636949685311441384812892995566571880351955612126336","11558268022898598380978155302996753032448069104134273072622508137673697995701"],["21299323895291083841810048500991894201493747097189908862156301579972421356952","25647476200622732164354454570935904802732788636564423233560968778363578835691"],["1499464148725150953153570717158560615281812560830012211554781520273505177547","14949523966693091080745278613383130656418469138241865539207593509343788062131"],["6478726324333696305712615221692819152092413366237762426729712719524803623597","24412600694944444892379163515546359263061528302302735031404471180187051679280"],["5630334391583956739246168499620386271747288596806888813168108255528760976085","28919150680804184427513126217304948554599864206085946679435444258716015420993"],["9106187809898061756718365315521057253940492249808096181908428328088105715196","7270296575485235173193904243014020767849560892689522965244218982768971995062"],["728638661290503023547812174227334207322158418062747343213948070673429594347","19120857508815635336394798449418913637499940775451173573683562093246413007165"],["9453076153954371055866881684361816673943004614250559051604989218861995708118","7348427033148917662669298982729073754672136679232911381682716685568805667205"],["10622808814608972048446216066911619514377742884583841002277452790910651290234","5596398451542178722566240279516146433226400801575418162476089773402771000772"],["3684399933686084524430905488325141628886419627158122350283526517780999480957","28645887670129841250058108789196102116931995895001109550231886794475363591673"],["1110234715672656515711514623817020693445469429792075134939373768363528541787","9625959581601451240178709349521158153739490984239855569449525946030253114352"],["17158652431550728476308725768542524676926463289961468227285863652771803003554","4168330721653959205650855321280560823136781140209123315187213936818346356070"],["7131797530537819463367294686291513265907722165071741986575327430140981049406","1477149907911728107871883537482728158337198830667142281304679200724947906235"],["23379079405817562170749639602405197994410973099067520500542387857592083317635","22301081312190329643455848684992192701117869162087915807148639153886749501207"],["25230478240901329544312944634090396627949919713126922161389029638572787471081","11289835627632659618493750806449058104365044912546289958997144859047253438027"],["24395750042646578017332953570275327369271029847459980368752678148804204262731","19106993780479653872655837782198936688998234445216312151452435537593701446510"],["26343850847775157056888960891470247518955873845523319318187969592038247363982","28669151211474361675677126973003126457461244573693789382744639619300246188049"],["18474121177095950936083398090041010761014995630932158534019750310004237729724","11373614754000902017819431587164943637523360327989991040500189574129392088835"],["283684822377254209615066699211625805319368016418948887412092436008532511170","16690146886618785633424914720909044515240275464383660444983224444381592920505"],["10656838445798247106838990385890228546279278681592577237736679261806393275569","23385327944055535343574483662310218809261397876754103622762829181234878809830"],["28006730088950850172275215214992940120195152156790803060496797839317343259245","22580814552057272828736599921397706126220058729392702143358144522698641615329"],["1199840370854121936529169307968163100413085888696786116684410669085668750266","10560312937415223984020667767416460621129257372398249199776546984377239216730"],["17667108047438360490646768258120724837828078340658938655549939921268992567083","13492600881595942173163488615367551650547893172424971289898191414808636964989"],["8305345850183006390259919230333106214453262824393945061815217073749648531910","15745362964764853201364109888961693073714841292796298416578969502519777293032"],["12162686741422371043461674984300773632949500597333885233939394014663254231713","25444946135414186633301286136162734108585875795082422574422707133120586555184"],["12209938014428026117076641940806070007388882745042620814581528713853244151356","7034665734853258807507167201386350381499574251272786597304940242885836339679"],["27395860985066194195972504437026676952346277418331790442332201993694102104799","17369402030233375334427676079130001264356824171143656722557000911438828759700"],["11851815634271740315252733772039123896588072918676340100854198152588655993791","6944792976312802992685456235418439706082000688682415218808180588506957469890"],["1550764071203169573884740195369049180851144604929292123627917502433220384524","14217993707225160619508804058510407368165146923473140271396675859948162216166"],["13444544262558108728840798639695501354689216095385974273963555541074249320858","1214189414869378720371874274650690862674092028653946610993929892702019440094"],["2637292605117115832409214831388013919878314374634964374779492164351118441236","7750802661448000407158282327902663795459817322679308938012997865824688991140"],["18653465341492182256436744283276129298126250147623554193480869094557376217536","14458578608520803155776264850193334568967173578692529564882948740373141744980"],["19223966863473195283093784308280960156323146848145685200866556340953822683766","4206880905186904591391144607135649065609976051648231912042584204828222029937"],["26284548127316493181088662090416705460750219598698200132908757560816446372338","15443593571457555282314870447786445661910945574410757984342104798252065841709"],["24115794044293918677244338034599984028187814850243715338223690128511095198882","9021470717241281149066708831298669247072728316366764516870428361161359039070"],["17332672370160013825007890253644554000068926018664736033872863314894696898343","25522995860037831250481044198522242563253872759011530073156399915491361454012"],["13554776548800677668263031608702338133947493006615551798551830500231737920560","24880556376165244833644939239771966623595102656189509551361773887752307080231"],["11611860788172788424442412513442346532747217191092626616834483109254900837915","17866205024573662954972089075557231964355444024725390637107108182496430957076"],["13152041646873004069498576871973098705794556815235704956403427172372330166455","6912682018046821974937219404665120801410827727780819800160692861388383540008"],["22038812932172523789231262124506814393858125663787285332506163823510291879484","19019430520435635206337096977185519563037782762886464222480453837612171839005"],["8063514264853137074251447137113948420530179310045058654045680246949808711336","24265823524570886275095920996479374979762437523347422820172827282331414754494"],["8393532128804722768229671833141463594503370588544293825149060410800480838560","24693810473428926377670423417443153700551139534703411997681786205889707847831"],["21809035147738993163167434332783586034546867951157585395643506568578375285621","28815537326829828476361770424807338349453300873062811934312408574902053369188"],["27621162418243987167119232753716940321433709009585778660520282586608061791409","23536189907771579956156490608851580962144694224226618207403806666008250116692"],["27312310278706800139405392701780838229539847482521177212461837478698373993586","25626246460788031851773477159002359487238950085969039167820052991171287073483"],["25432719063217990317736577261429946053050205363414428281116545051413173408116","22708768935684528362324335246045918997110847760890717652224032517187169333461"],["11472027810331103294591958264047336905458205190266931978384993195415479330328","12982535951893217083848261916764001040313494554267668307236088347659213133710"],["21663927009357923436086063086255796043085468950227009465558320938519581503225","20699439335699238543747867101825787232349554311007284505352088156079728219653"],["6767023093848502909779252737719086408504589932466396281785992700410133625793","11193779461416356503980817983064155020234535252404914895609783407827886569404"],["28249043778832882545158918778456054183899513571291520143591911379439201128683","23035323103034857411462464956237829319627190071554359592415341326989733177678"],["21598476922825455716141941717790637832078613858859831102149667174680817971732","25664074759982828797518534736432197120681721133342347509384590185119321480850"],["24155337583476167612003723045634035183157681913293674982607495124120914761140","2348914186680737506822947269021575576094197380629064942218440684526699404459"],["24334212926112390518418895705683531803280028500706468535964760905958646993617","26674976636204184646949877441780203711615873064870604183136969539770319440394"],["10691134547214925716788629155029973388163667415187197612830202353444219953162","25349472342740912135532395524142877159698887426966986894885519061251624168884"],["6390791738920976543380590854271772757540893978886685541300405054409386762354","8800587974734021467335415955093418261449281954876570673155528637072126411385"],["19742705989863297565104562553615603302038968547232887288752281030410592745575","14526519449673111214957183519101970097006099612452743365427573077350998543131"],["10994472422648335764729036542421259508525587432844280614566970560043150528365","21486812474053901457859822282094591255067053633948735688481060915695979144809"],["9594558909112840993449773788751640609276363056503263698724474187208730351565","16731647241660473031170822213066403006977446580195926191539592519821613062876"],["24325887894629403730318894538397796097523491655106699303518880589630013289646","18012135416498028544540795001175231222041077253523699086648401982582222434089"],["10879709597785565972164623132753628292287178620334254927372336277132326352256","2494237811177450374555480299004305509788427820599819859642588819499043762448"],["14081316171537550165741355998158089514378122627537589728908565659584202651232","24082884844172285774949922262243493315344518649711240672322644844991053958126"],["25616322753561961151306282889997631821803012684022948816295982935976102334035","20344257805184234896012038201644670788330450928601900856671601254481596974037"],["21415020854650807363962177875661471237332221676804188596270791402590032899983","27963663756175733614759868323562279411455984339183329496245113785447076675446"],["2809498136483777113069216188213599789393051199030276465750956973237607624228","9577672620774303391073698167582240713004717183199176512865024319119312107152"],["12750584878269717075619212660552697605919284332286586593183307746439464043376","731712755442218061315863707373296893749431619614330929555682013647016683495"],["19272794478348131902001848212027499552599809080320895386309027994618240750233","24904149694641442518599402208801615356615348519799118829641985607153188784604"],["3554876060397750907379443293572275095021827736225853646182350350716043686772","6310373346936280130860131293791786167605194116378965785031994706725324035677"],["13939660593061249531928207716468618998686522151144266702141616324769571142479","8607645741669618202077118485331728741205031837798786657733456324985642019118"],["6033143906090714206056227508601866648596898366299721283763471689318263892215","27331813923961641540057706467706730083914225626470066380059101361786175920066"],["2955184702542636459175130870935160606563003018183476617864347669953965536100","5088792471803522199495624221207068614420256694692976348309534162425760745612"],["20097692552685390514821931687880956248687085064567820433771489922614607373151","21976428762489515381969326731798284747765493234086325716473869763827318681789"],["22129860473583009158112249310666352781140176351908705486848587996152667782632","17649813188324670865118949635760584660559749962360969173051514020961783360220"],["14985745682833201871577500669819521880084957679715793455164709869686045964761","3178004781883975485100037734938897834220858719736241607479110213632204771914"],["22936829416105955503145299930725774216837446567493632896749558700386417642448","15704084230033872811506992414879955824365890678764792414046231201633760371772"],["26532827697458573640184833290313288170291676341330382430647913163440341683095","28688687902018612205564162768735325199902318151812578812915630104084569152700"],["20850434157414471441889306888939608639304871466061938141755377508967938177194","26871583043936299209796434975819409752920940756091127222265410665039218903447"],["17844299853860806404786578888597696355473406091058217249682175157233333568435","21454819154962554088176187427183574094152321406836891446303865711678554926043"],["18998758301891146785731458912905214036420740618820098371895193008438156465633","21635255174795670105136944595430575824655109736240084813157668320010717666329"],["27009145779180384265195801106307484133346543086335129414880713696580431254016","12242260220211175540968903603246078664023559683196049000057719897877844415312"],["18646105207285235637060859373256806670278109907383995405336374436970843141599","20974936879424476456489481403974433476394152901945622741291710001429272402879"],["13652424714680366057383588384965649219902876201508946012333726957222401325770","22106364023816122409706200770877058908152778698573260705772223467776712893070"],["16268511634970457454984659271572658361655703324467751317791882324311190784484","24293075581972441327715600266557988449319827221956393770839664989445359636180"],["15534586372032131261865723745856881741355152134285074709047615944036998524118","23224305592249805687389153649436263279070015877877284236880065171796687086938"],["12207668034926808673580774599206612855714676981615418972546627359866417111767","28093676314419773642229891472629298411687621280110415100990893116931775139597"],["23370938799461733954693693609404969474862073205712673457492375850155255760973","28723840298584777056109851200216172459762469269384228688661968378554741094137"],["12545353445277521423033805699969341344293040554256528225125756803111159422272","20966721590146544506374349306687800372525989442105294456308992353026106728159"],["21631381817802639501555256173057637784094646329577273381564252748488666060053","16580833880872341486981640002195093099879881008047220454706596104418267624528"],["10139644676004829247464446040528800915115736672368011412277245349016364508040","25055908879612883927941939635181739994136551771135458714590520843378876403256"],["10489008587947705684022742348322281017539700259247977191568138761380406389707","18850391526984702074610362148660792191014017990252605416733466677530580015928"],["22233970603072676635092838332107144053876666998125737420955000479946897855461","12086259238622219579842747429113202455218793526131759683921535834229607034300"],["20857025319919026042339966007841186543945970365620170688995796932475593008652","17797856828463138365194917643933870453798375088479962966210122363066487002322"],["28463740425828078799037168360945577169442000308316907903544256008407249999671","3055520498485272139890324755687418975080498109878709054955319072684407907450"],["20770047723979231083084176363053010234170059922847348342257499313129800621336","16989047712630796903134896770105272741411382993181145748283086627700297744473"],["19475129437577512020898637155846145845426984289745581734527898885611101174536","4703982717864131367844419867593185764759007752330112238893953415392316001908"],["19922229219810971698706259571171619795793208034685793184478669226857548036603","7267759771432159257710104889806722583979457971383070588215522064840432050300"],["10846659087281610409932439770040336530718184948814219169585095623471821116616","6218887666796004129912588436513555472795005751139299290631781314939056313071"],["16222746599725262369488967977152950581409251845895990476494255480932674553691","28347142019947447109242934922022451861322337499467893276419035734016300232897"],["26861873113397174052879801180902371422477343241792153072647272170922768195753","5608661387601135400919738004987939126156232327718645580413787460273954533488"],["11000555885190118104538176771213462796049833377467363297596063452202991044669","13876674799947603290977229581863267516879057251134467803645271318302524417290"],["16599872975919156976112491849548008578242797192841712297605281755352946144129","15053205042562075827267914608926634913658354453323747532352014732331980798883"],["6192930877357571186157678429310455893502041530049193593815308830801901186653","22874921823686705561066678934008009552740382671904060706598539349597040591842"],["23504959034060033582425301212664984284000827692121350186053774075982804747863","10298853070085370471828007802419020933787335599393756748722368328568153553367"],["9892845687712310227185710690313786952899807982013386875312605942631573731536","1570605052327524011944528800619183454348740856819859392012819286621709214472"],["27696097213701998556916022551673690085864497251637347513398689253550831593675","2990842392580117077992744420158003042595393251815735696141819800203175173837"],["25634599661234853838415462781519959823374759197658208744466236686309557081109","25273803260385122959252142917300667128723309262210169729388378171434834397572"],["27354276292842472749387066407754194839636562508504730646195441115055443298434","28521830044324882848537803307558926759644146605609781698281691146505698904805"],["11578128180129866433130223649945084728115624149788167072855097014930020970202","28795395534242106384101007611109888142378018206316094928368651044311757920086"],["17243536340095235212980839638505358489249758962978328854783339366934588752292","5090679792870352106732868780115951518683956900071570663387760016172109168938"],["4411924901183676257171907591161718568651211652290296660099263659485901034026","7385041477308047144405464822351896887436565297290201040957933940598890580365"],["3591336475610657651088284072066943206798522714876190162079281354617464351140","706404085655829303238311958452471322670100446955711229232744957990153705417"],["20195378200366279969042478452438739381772884045968543672334155181251272067893","816499974070058704018897219273073044540518370358982866102987112038533332514"],["8831922240727678057984940744530781389135134636842515299174264425502028275055","8488590348301754707420877722290716670180002603793082858842476657604307096876"],["5941514744941903909036679383301885367333134966896289549467640661984251800577","18789419901669659425048609320298246633534180964232688425161703951241658414182"],["15069159518204539983308989671745734517904860025665368927021835732883434874938","27531409302309680920677878637810148531869803743609074193344566669682123480927"],["572130727175094650011926904201800003977379118558246948989998157541443538382","16102564279797682799228274875944578846985092571542648419245697097707686892897"],["24353067049039919029658288734997267397664077376102926369456686485242107447689","21095378675593549305623297779165702317501809923520677155525368725855108818655"],["16120101388044392787718802548248880311894568165161416013076820710030955454275","24011637840575528610919036051100441006606610962018176527206749578168019997721"],["9510295089952931225435019421437782636432233000892547457197478386224894428101","25998719665800444837195702538101258243005171802523959071816347737234677830350"],["12087835255123912826321813797877860880194116564718795574010185388313458180190","22315660355332789418000554855418127645893014435875539692807850270454527927192"],["1686215521706603222114641168271638560351596420172479395457489022347965217347","1555142417114663310004559680832868837213067389258495734951549141425083941295"],["1735778012528245189479291323971226222324779364216849814813915106410571295406","10423158538370731191174991340572918774645253324442792308917509761679414452675"],["15053488935789759337628306578785943170422630451796674044452099657582349815032","8958638768270603013858816810741773567614037933549801230525763788655166279559"],["1246953903266868040905423487570207110263795795984897716274173219397280541398","7690727056135232270633919687779227210487261819922117017405409993959338823312"],["13927173729520415243948248200409500360194602893554320890828109987193285776989","14365793314327477513227658308090365108778062474616785071759546143474566426646"],["10231496714590913966480499125319658354157298332067062271751630224451921529284","24154440209731224124119198517810765365996619158723641912273183725877526015773"],["22818385337847514374319041655050748634618793116117774508299323652411479781530","3460443364094606197262160961608405663493494424121422934822239442999794386293"],["27298093071697778083981071092054973574376133635557783055009434444984309391520","4120573868862412262751599308456547374648655896358605097915972521698301935821"],["11985542292545927899913660656739089121016219445817593291610976773291937390136","21534988607065277101938123963412842408905420883756657860838740867959089993667"],["21873681243992483856580245627328213625343227002586402357870328352134788482689","4054878096777442674006235416105689053815744537785685881215459319340137025876"],["121003678318739555297731281019425607246507687970805074318051088713357713382","398932479569127465045756736277956057762614567810181008712078730729873790102"],["14229605313219556211910295805558011743846795427657735184958239642756319153840","13733488541643587061284527124343859986755453674447831213321174832532212172716"],["20811192507877374504286815487651192329657861038848569874877170737155224533427","26389972241322758371386593618870350851409614812593289109227321965572763173449"],["23170038910560469474385889870128114141235384132621836389406465826869060946958","8267370535365008572361023650332742680913710678711299086180522945097969918499"],["7137635279870013740682036116086368510703415807547286742745216545016377906309","16741179625931904019033439458154933769652280300549209483338011024471755752681"],["8086350216521286081528112619968874148141562919984975647110454846660769177946","2571592952428171199124046554011469780299944582981235793370554498479495587894"],["19584044346026199767425103846995281619125109348303707626506831514485603065061","10377249378014814227777061572482148043112778599995470710631743995889521698245"],["7712167935784694550938155079721248107666137382110773426908958878282735742343","21624940619317703661888604565971317619958611534441508905173804055168388697898"],["22226944259346751852479009630139112791937681974256506584148726110825545731660","9388620355008625658101441503787369360790735502406713659067179808119430171145"],["18400111496378801717753266002749055006549640301118079979822539506788353891622","2060692233673484069649621272680556827920923614158047284435804339966397360364"],["683143149913053520756895679259524404530927284332089442090992975707602819517","21306836525758387210986145550387555335219311810131321950948471356962137255307"],["8706493917099689738964403109233195764367728617412413709636456865416896178905","7261848907906939190671479202341499962184988671277449230168395026722423066706"],["1408481020769175375484475479506841729100649249960272821074139362608082697040","5263792102923919787827379866660877411211695609013806779190416079065224915506"],["16613918640543720699082371740877254297059247953146401747689422207191012643397","8994410195817152490324725934401664680023472603116802478285871460862639857329"],["19665737464115625783852146961152099388683927732045359769425327814574260636144","26449270693107744430893746701468837841118230310174772497296535122248265612785"],["18777815810203308956019803646347248759473676920003921528254210308278286009900","18938051106147798443813495583193675763775976288366154694933109682716281640115"],["1411409887829335986178667476334866744938767527140574181281448483644723193476","4422405013700527321193250887919574716150963385103714816770883726280421744249"],["6682349510715655517424127666881406591746837066557122346432247526707849856992","3866536175918599170279309748557055178444086319582572567686478616459545900913"],["6625917085962306309363988140286331905558601568041448690272347210220860051417","22681826809502507389129934503847190031926222453505055708399448137082874818738"],["3439636257477337300912015879973651085045299529233372161020436943121517201829","28392631626410677465867821883776504955974061550710779332358349058680196259216"],["23312636081574981628078908957494817286572358985911908285258044991191855782358","1586350943501816114808564956014974929400312800500982963330060487606223523146"],["27423340980431651736461544926166545040290324333662698281926653839876093873253","27498272476124157602699545590112333217619319091895576114833799527243503961744"],["22963039433676320858216893419089762386427806903617074786996733758164339864600","13949089062582782027981514775020363020614850022809653455794298323392711597390"],["20909290303680592646373663490270244460222420838708065660893182082169039236855","26169325218742693625727029925070272208873171280806451897222773518124783273450"],["5512612921573067165605243650502083571005946100560011610870141629561206195006","10754211141480905588033165546858485247140838641173440795905787976074789679590"],["27387362969389878755773093819264909621423902191443621925065382886323105639512","3027960370503917310886429924593866359322262565400839856893056560986872474492"],["27653078020965654230491481245845679420611725133050049551058715818230180003819","27729044066483542322321250000007707105279883803710194081689449783552576797897"],["14974884230972267184253087925829010006993443469559149453696313809391354532753","13199292907780333264542298687796274971237724304965884321692785538363115703184"],["2695690104129273584680424644316239848600759599141554854467493761617636501199","25114005647563122516559100508876359111519889185028569532407807273216675202350"],["528261632938202007113141774349750305435179755364042780846797247782518130381","6885738094637430026902144205973208656917933843189640073769955407972820134382"],["2353514338083756392237007657530931570672390697214616934820658419863260971764","27074679560800260083014286086531968481191818271756494913674436927173827876578"],["27515048508260606601436105828898047498666466594024303896126932305951308937196","22768284794430162468680495116787919584838638533224476784380906567285682838263"],["9371463540944634411421193067018775106811192723334030015452893755306864943171","5373395700732815070076127835877294717143543236906848910134669252350234577255"],["13639579071679583386908532916706789299645467439574710663400399606496015236877","22152389891300761399790484065721297582812687774017002612926693122564218999147"],["27935507811480828750618100036462154037390696911212241619832908537999433600280","13268384046306031190823244685915858394953829646244618833501276473222809811126"],["20084633917059205665285693080978613562467154384368263156634127522431135823774","26636953450952987275613784374467868002779949902281569847576515695100849066439"],["26761280567401394340517339435960811821118154409139240487003946318117092462090","9875810949170569065162807067254637830761590936188684882653950296795795768089"],["16214638303136620292795483451815420947540981705028945393390564953474458414707","6889315911589316377924619990999199429643798420248107576438005073240194760180"],["3715101478930159410969570365429559070846868997748070116238373612205242112872","15186504923624320731120296724755483205641903613211471743346823742709135272448"],["16084521856168935397430858411374901203295845573184612582247702238954795350175","19785447527926013587758325271105524188645452068636072822293966011859696126235"],["25445936860867413594728885565998566264073092932175653808845646391279811805681","11552766380300286216757921958491078724609387144103618310795587453937060233490"],["24837651678172294151178604907623278558866456733626531470603741668134957753567","22313054378743835423138429460158367038898498526174783244111188667804260078035"],["10833588603914889416436172596142968793024724542236067085014135370744153327806","13965734925545343795687976162367827482629598010353182224099364014713118482359"],["27938566519034286585258005407404738600070786286088096031761448757060108376865","16222688400437639162256374474207873383989710890474717509928933452202105703128"],["23740586536669473856741637359397830895197095060624096587209582465311442094652","14877825082110093383316153630949301830815149573754686980688501845925298250212"],["3032965496271825018465170990332470797795480263012414068231386366847533640034","8880518546250952947844282725270395528460043554395601305125282399551446652392"],["23619898113854516539866318163287654146923785503363962316519496722981921376672","5943001037860850907316695979196722580900990694550031659695371050403756591645"],["10264973469435220939227811354633341310261638097940235745247957843781712000641","2755117630042536357244224937273216235782724773788482413773791821618690907563"],["14678789578710148761604571188383559613823919528130120180397609856145986749730","7428441010722088902981177817546743981437845808329600335303292347585900810533"],["3365887224349542726052095736273294681089482712346303039453415244859200455106","28444433781825227113510476947458003065377681317253476953175697963381431847784"],["14756187771224843673185296444878690199621745718566683748974024056134611178560","15477489529315242225220137341367246139668581719081102351092738533859215421485"],["2836633437606829848751161851359086990926356821233376168310108317861720127212","20918892672372934961949785751022513720975889454330848073076444894814766345556"],["21314180966225655358346237265320597125752423983126278670008694494046193596987","28863141511493537282376448763605890313341637758186460863146085492594393544018"],["3451452431671754425775044513801393442776698315914853240042995428286214490285","16371326024774484208820204564413651202558984125836593706380203536296990493283"],["9000807004661613433560619382465255761154104408571716964930483970424713757522","2820922346250660704449399109712613351793553958990911566953460776840874763535"],["24032737230424526776226535914050213998888846657710423578824228548584225583696","12236447368740366704661357047017251392304692046927399659553417498942575681509"],["24883379518671440534878872224649095349451592575714540792138219255827418295541","6862140297225448120622039708080732438140708601078615550887226404279917937228"],["18672129520131603248699188269778272502324061564325733889230116395117826570562","17312512301462917875378916955406286827297564135590729295906842765708340838357"],["1871757572384692218592578088533652743106287635448873068588099329538751173534","75692891018221955300523870081506609080511207452524776557931712445126916590"],["15552046926392521717493179296938119758056170716624937827936985696871037964961","22916325586592137253015042962839212457740562802110395285389362554645407867504"],["4856303820427496762765682817694106291070434115052365490248153774600378293339","21355000727818316902008806456749810790634996043244141730892331048675104956149"],["12120796614313048968975177934268364551885922426708006967902258917313134252352","18473980884132914843363379721436019350573459017733052426410092358757884276257"],["7616622136401282391766364378261878113977878464808106338906233630666191146370","28353471318833216845391231951812737641094383794033353703997081292764162240036"],["17765079035145837647186380774035010665776192851790826796210127734314990329892","4426523259482163662326336701591875735502291472507593222361776499186353174795"],["18835115711675439975449571310941025937999202901660578992185878726603059241841","26982901773526151099134216233933194030876374353915188177729919136475533202059"],["18005028852371111352323997572165102113524267363405626934542371260567064673697","27586238831859833851438804024851757167013046994083831014387880283886963522079"],["18789905218154664968175808362446703050880324158553277686060896802508607534176","1148330687470358556509504405375376503100059662218751690345087425311913898243"],["14762570897227807048649281960810462728375207403158477345829001595101403482471","9110016329875977436202437216501255328798989330088175615298275071871850773065"],["14678647581626728727186847392780859078763544390866740747510969702778682633701","6136759965588091029970941338433874050865510059762702509021784022093366287518"],["6552803370284798919860593349169280634466197371561930438318564874102528183393","11065248681171130750249528666794816698213704874590345111915926488264997247997"],["25301782124139820818450091591889348663775974425025007083045180961672172330751","24615756527218697541615565048169536405480506746107275056762939138854039545816"],["28568785983396251871233187441140708126551389369916443340801539569495786311016","14350666696106295505682873129713622281286518645604542618556303777644378937031"],["26113127131600769324349125003527261850950475269298446364611686442312405683866","15672512949134708318680538262625355583356508834498821675734609463101564050638"],["2599127650562464503555820791002357052517245806860268190604255710281912244317","8176454440300731839794838885485230095695220997102717761913417736487982855622"],["15173570891352335991280163889449625811241356420461299770824309032048081706587","12234471720441363715958904400266525499087563307969349829299970568448096731890"],["15704210399533355207650482289154734459414202615238208461420790197740701030659","8184282092882364114680068588348273346135747493509488688198622764277405533700"],["23164658067090528844530949897303254589330314631030793866848427480032943386963","7886989424086208689877212069770746379735607125546195982267117166271706534159"],["25914428664156787001466414574494817841571890257281432468863923230192886266954","8644456691563960828631901493852572322755574961047467809967065730783650396740"],["4737387446920387109157373915801543525196199134817684026207606608217426358331","10869132193740641952437957344684665902880875334976815800526281576926090712685"],["19882922090020648776436677519496099638962093836632365148523165081164205762032","13243472366569546049373561840179895195192028563669475334059466132490458758381"],["2089508793781150749859195561695072152251312306000245967274018634817747028942","15625874960488927431439173571092113923284742169012922447183027348209217154320"],["23738849155639723677199599575565016011810526764366800871517170783343222501336","3111899283538245093393866990892285443106621414284941069335300705933235028611"],["27867601861510986201728203998806280829435909541803088919986702579389485952655","18956184806132268411488645402040640692613829801806888950061917841366947620967"],["6360961714163614467040132883284968530966517372357532794363927041373736608101","23871545070619412010151712505197905695535374296039905929896316300906497861072"],["15983273598070199044053275858488911318775534356214347700451601419240915278395","3512182574914997146221980434998170233651387333685278707893770341387105670255"],["1058514444100743050396281728756055107439886104114946656160780302979204045802","27900278410130620422811941774916711764165958082548406560285449423292898220209"],["22182328951902227168355703776414913520464148626213096325436402593415087849224","25621768554758648321252032908498568659926386285955341128971051360700566469396"],["24218589214167261413165790220784505282134471009788471155564043212234470054024","624489993997151773831574410736467307674133281199413669354322944930861349163"],["18149246725760697655408422373467755467716104820567070760159595317048623019414","19691266133716982078954324138382005331876911197813324698944774711396812411930"],["24799630800052818409768190878129965661082695381119747606123433063574822620978","14536680620115399213276956181148679752304332946848959253826310340488807724517"],["22407282865361052278989892705869388012453837314678283646921836284491896688914","26870498475771008199297733580222866672699695558605249620836391520621922621074"],["26637709423915558412587896445478445704805596200377545986828474414026707896190","25913304539748242479933797934608870649694782756282538547309724290687036185672"],["27164629554061761732749010878254681561347477103657328873128643229880250442470","20506826272237043926431661646401082116998170017987337942295628099641580536678"],["9399544567002698942959810632432638125693305038495059486023523641939642922367","8947008588087753515072547624437627503250015247617970221998388813361888090103"],["2700725383969149786499681114169749673354952393890595890511044817909663393374","24396280878106219539805945049987550186102956200239840379525153970313845558904"],["1719341236793651721922614713835677093441145842274480711311899518296962460090","11109839155656826095981904147241021455670007699260724055410521419310022519738"],["27750913552245625768457664817142039767203547422319888364568701866078072180432","7269308265722477687737251850873129904463071318327137691671581760598893297268"],["9467134707443231556123386227574680567782430400310417444796514656186376472520","19218365735384954482140608876814185442364812029490340655479707768924388969290"],["7422232359742507923326322875717182666393621973678289829324927128502394484216","26262449316793998336938006752794768919619221156557513191471110647747298827194"],["12469954966847375636152685672501380351757240886515854872130998297104256599111","20541053416351396031889435680757751518174652633830356378976282938438830850433"],["449271139823593519741342119515595264335079780719570762954734210506818711538","17978732451334860986200208283443676903633909742148697672276162658730514151313"],["28880388947362125626510659928181418953777178413387853968650430161430475855704","12086308598438629055911963815474022466770689111261371342590092028142109903819"],["6966953703064994397374148155155414824485534302862604322799516279299069869872","21115109940194522426422845993254075511234976232272837747462131578829835431233"],["18425789750483125386001955272105651537335010373696708676426875042408653579345","11528253402563770695026551627001873368330158268075229194575163485986966116676"],["12548191358674649993170658087878084498577784076092621672133113634840551278815","22882008568845173389165928323252707926783003700668408398607663890593656872445"],["28802129574422531825470771258655532440296232959659129554052659929011303058917","19172079679526895609055626565759442959553722932589087805029945999325041720277"],["9221240479620683796446397346387338855089344825991617305125818698308148940911","14678154605340522637206592676267907763925433414016549674961842883027333657891"],["28597945876635617080145223426360575120519166601710454704654083090280429767986","7880090870370390306901460750433234486435341665845672438958350587282989816799"],["21470580262872439908243076630924923936025711130983434430631710156665528778646","13064019604260169982557011095992681206311692184437543316978256854521534206811"],["2382890603928793760929698554522182298357738700230999911483473923951448320804","24512461213418923423674090651462414441927239532579487811360436870222044358171"],["5371961005143456050596791342344116061141423247088914509081164087712785304060","4652882102441562707802888160092582707718756459164560658141894887708944492653"],["16538351845278291756998496078022078266507156593538803752504340368561946488839","19328261184523082626934149784526750725296507559211936666033555447389951001458"],["15948030885880285248986348591100133544385552298559859939161313125129209341320","23253572222022120228526352880096446438442460004328520238537875961834076356415"],["5557333096219176702901128152729747906913474867270672739670328122925149254198","22673998174101172790614096133823522886171932142905480274445319884351009365780"],["8826820020548697818934229698807867930837743759999711070462798704629158266805","26301837600415205457319376327986553706282282608138885377232605407653310281353"],["9719268564323455338202608049552269852530906006017534443414526341005060557939","5569611760586437773703941730060408728192012632586706097864455101024733246834"],["16019980577054098770228902035127824805115083683946880922991923684857762997131","16846234175173673134327902752962877765967812583586491759827481841152955160938"],["22302504734152316060565985025203335987765050878748594469619062222021754932502","9845840489996883267438008186519759660766881582004696995203794941349703406260"],["15120643020217042504412808459180320689718534063592906034588094214881104478015","23713647362358945920428284763140661964756895174037886659112685234756789863697"],["2969508671652260538926734220794260350048046620161822576093671994055953887421","10108837174616669107163998581026366198679063170847642461570865318908435975282"],["23565069901454335751842609848249899352768434553959614473893596318769284973336","24958359127450697156078285524590304344248423354992119658515644866623772357526"],["2414880013516589606615555903418725147764269541036334147078287588239980101207","17983520700086778298180017932740192990952633394901114781358478837685102585286"],["22829585183169850410535499482328418332293039982803669007999547576092837014274","4872697625903432902963112146708347795989297034639602750577899346732384221925"],["3794653800217421695774154213229930889577600087639287059747366273742408451568","18739995248919931614066368824182215876436921537017525488176346177235373594954"],["28094469623782662193771068639339129100675737133175087656639280132594835347237","3760902578451009020347858917837640050385388920457411487697977799934830526977"],["21479502079447993539122567162970197269197764156811451191089781353613691473855","24666495915572268469706672714959443306308546570730247507453587939781810959384"],["7807033222359320569422374417577663984704884737145949622960594356410729045366","8761974571363474915882581351213766010817273772932526953724283318147165272320"],["12561564357522703361865854344390020108497192364582039259128629908052304491790","17333840617727814347109175128773608732470542292580624170859280077427468656034"],["1338924906317513690868471073574434929117392778143542393677674607391442306871","23220623876567574828547565274331918948890759500035054918416204227949245534109"],["7503490780654240997575770836595121813786884415599919491018756925054359426549","5277651927641964500761724887441759862634834487240420579062841673203278439696"],["27445994861207603930498731601370102486465380479861755488112338061452372416708","12437847922805729949771133966982917882947195645163622126301782696918575295074"],["19869005138708856442147585139937882714952078938319484862686980693071723967844","28663633667522863037353426942518057613702748537607919646366028491826432226390"],["18238692077940333928933906122996542705842969470265012452095444443603108907205","11376573604767575517519621502837363797320005617565954526482333127253509366376"],["28182093152917750886453987049837951023147078911353395265312617129085032276802","28648995504930424793629232248763876901001596397089664365313653171451097267904"],["4962989584743734158878356170296458570245451274293102105165832616598538684683","1245271896081707827800203158785371494916038338513127995343816784125833834592"],["7011255524663366700983175482904082420949061394767280715830532711689608337833","6122946878179616553244301721196544819922261488650625667568570037392572424046"],["5251163085261764892684698620139277827236725054482705873175941514749965083942","21077992487099264181237417505118743821025647691227897447195581148165774060941"],["24866870749476909228779669389565596081930323212911287424410813673318282201929","26104709211470627045567343137836754940184379807807850983090937800197000406342"],["16338345247108388603761473708674623268301963112923115827682883111328234058447","19162502243016727240485566023155497595724005120407151041452744051373754514032"],["7569988358109001951939213948712955020810962863388168650185279787590891681837","21406480554808837985230483690665408228451812597915223193628077178487808451982"],["22958164558482024226384026644906761756812907374701777015499796899324024079411","22913832580063301559155575087797148142441118281556709600777998635530166185838"],["152930972414558797408372526713283984892887130390945262717692651568299036671","22437614744663877213665656997154684872508261999748501907430904345405040212298"],["9947594909540349514759517228150512163717522365201853753917573890151833241819","13385517532736252170986204958096813790511240182354485613068989228093965020826"],["27799036489062513843683812849842615630775630017501786260000260557710542643345","24452491545949740724641744500616120351093936129085464713709277886522199097233"],["18623512206300314775021393262776150491631859279823478793492595607825298657608","21520899060791829666075916589349178627580697046018851389345980038465758892384"],["5861400665136785225575957810144736771946334761289145226640024612060869016997","1502836793774139576007695472898568953894624010031733418390639574327761783908"],["7768740295037989993591702044679046044926923994774408946060747415625430696984","16248159984947395275567884722444277552914008431695243012655031811410774945054"],["4622603144843336543876002121122837348817817469614374342977942178683533710536","20190985238704552827127224894513444255388839646204301215899240149642100191841"],["18840495788283409349507795803332050779798173414957003646847179159872530631115","21415412340704218570847521358301347977832525829811447763938855026165936721158"],["6354670236444923652176354819655839091579309647369754121287706418218607995320","743247474728328402151486242350294211570443772358035048050559039089108587558"],["24107000456762037420705272616328061838067846773938699510984469637496415675012","5363426064400574785213730824740413573877751267495071901426882439426816028874"],["12245036142368634564598551257634027213038091546768113889298966107072863951591","24030526540356834280079779106180767045965331462192102696294131068035029789886"],["183701415467300226225026711776411816295579165050180131302408818606177718810","17187775421020687231535034446572929924298391763163189659445765140007263189017"],["23116116356500729761670838006653937058840287306922388319659233062217878087670","14210947786899230802396628537557732489213924508626579094860231344325680598511"],["12704538586838880344304836341243083863117602652473337794586542860255513067443","21921981519989029165441979682020681795299947836959412261779957588569810528767"],["18850864707227265267319561707688022353874902094573432839266973141770776228441","21369192716847303539884760721634488437281038174077452778660156574534300930940"],["10767500316691064788576755266026120156166701064027730866501399626963529035083","13374833887680082267536697341958108737244659331940935306552729677070417362744"],["17618734255033379818751898968384001082705637356036362367455710855244684585221","13067127929220635661898781860203068344424538632685853002674144243464142158509"],["7390368036098792939846679396930093740299556191927148287311998413962736268331","20711397292174035896970128311440466816676674911053965280845350419901067211912"],["17913441352601305198707776841866403077379433341855634689957416063494025867943","10564630738079493856272863301820710751479962999120712565398373208117670361246"],["7784221422610599850758803516690219006783831482831780010286872821990272793252","2543989957452023838905333500613940346820298910982913796876671314196461905172"],["27425211627956989149102914728837899367891491558295847878837495477335547687237","19630304030979341996054943057256602700834352423762393329070277176873631204543"],["17351608971316750626143709405246295985946464484703858714447375217389462751356","25388066328362902599260149941229748754197096491359746042522592497944533177457"],["20924222716471810778198162685020396368523639397298795168320835825655307125923","9296269372370097466464554470194044265844806835811329883954589359634266607595"],["12294771413994994654217010582849756508792678941109342077375439779479623803634","2992403366092672485092457952237294687415379673838580330170027932280101112909"],["18613791145094791556250853509375808563454630587917190038267579449952451302936","13473141043416351315456460834830367271366356334684269457840238240160706562951"],["7167238129842582614248917461852688005438791683327695682407239845268773373027","28650018439984502153275688300899956270294634277285306773230675880769391521534"],["8341590478182782931820951567370262696536090572010053478708582605507373543845","7947159929525045210381249230796108265452372585057930384194115534156440310786"],["2767593784743768285183761995710436842212856036535866145936499535334863215859","5934080765596337105222260730371697895155518570419469410472149799224578171706"],["5324680988404059867067786203737998628733642324569014628989306510181587952558","16291446642233543280174639692350340181591673218469163385983388879036111574173"],["25829633860647599074603925331268692328927596335024118486510462977933105362546","13351023483852454629721868220767889572396230900711394660722941363979196194502"],["17496231064160356849205069090761692807702273547839495231322635729416136892776","13752453146993551314449210008260544481817957318683154839902108643076928620932"],["9080780386757938972352304059788556414783794915541379246462096379844428605515","19178656342413573065411293610868629765993318188736247973324988816903333867542"],["17752637119144842947894876373496134959705583609382450576721856546035347972754","16315935162978010029841059180201154654494689928262941500407487668110972133796"],["7796812910391824528749356771579066850051964903379157605917596088940683081811","21052479567677880977769716909901610059438038336783271527013469186939610698133"],["28548236080039716650512468322300529356031610597067785617368344281728634180427","9264734193401894597827151590519101645351110146749377536704513582494316128491"],["11574697318658674234398710458466819821020891147348728260853166637642428806415","11251869157306413795404059190832693499259649900663598058588079749232924554234"],["9142580238542238735086660538913492414645982468830292391348320505866063076206","17664155929885403568338698878323449732324016304570392428721725895547816345319"],["19338164728333697904782834507960818710991497466295104831034932648756677315527","23244639960893848244069744995291691445850767544958144198521116151533695616565"],["25159857054049582041593110911395292230006946457085985158329557570015761308816","12371621696745715810326771005709488965036738069688721086464445869884256957982"],["16673054964695595939094523743488982035241587127054748612685925244612658953280","10920024298993093196694429723235237085991563596515789115603013754019069343584"],["7959750844553008617464056326730219739842833591979626193778551711018193569104","12367060991798481572930843081736302396085182443875129475109328275715879626849"],["12069908909883689427761850482210590376826484472379656964979565361891870206047","3298405993119283172239985286969379044032696509858583873350771417971447262546"],["11191660856634041116431565355092121873329221131939795412941484922360500281282","16690531580387645468352874785326368818300868578823201835501736845512760726231"],["23203753152922534736220156525449622595097861771404874944025244786059481171367","28944675977576771292956147365740273516141568358111157536132694847068103775423"],["24518245362878315415801316144558909913926696901549846487457555325320900182500","10316183268431936150639950765370386065260462429934061009618119126769065262341"],["5103671877530283591823509813454646058867777440580679209960472052048708267843","9642836692097446094376986757127307069425272879723961046360693944506462879471"],["26219454099133715913504482528844326493125140756771947783675417043399431563548","26441813460369100570060832603358326771460200802345705963567535394380269755028"],["6811492131822380937190767427696992183580484067916200077985046379460727853652","21457804082040375252279964112223584933070346255565611427068388447532647681986"],["17043774512056803857913612228752421473840141764228470087684656390285562545217","12127759478288698004279683193942494551778032103064223620432739792104188428429"],["20910641523575584900930103759328859235134644319627821662359357904943956032598","22189162142750292751379258826741830894694431425470591700023196589847046061458"],["11913673263203776516370282266272021531628329042808228926353403814457819022943","12887233437816837963719193489125841748568978473196268229478795427388820520026"],["16648406093190228505275836074287178355881738907140338801114596704591355041641","6582889566117477637776809166625766436151703640409454341160885118823002241431"],["28872214384157888873043146374432168206867262156749817287813592860535191903299","8144325463943794126889417768368734262883360049423289626013554042285367025439"],["27065945841523989168792505568988975304686238448541031603862857899100670843541","21556606158948655937232051804246338080387827801026856431434239601710471895890"],["9122466052777495058310262348717810452282120895314823226096164136030673091787","15268156233986199151092227253668714828536649152470535977234110030391405251351"],["26392285313563771358032770140205300818091681876854853702466828635194469242318","8939600689863021229804842880782957912487415889390360813504195990758765577937"],["16519514833718047448759619172405774292567166205613914790743819368863862797363","19102532080624218417401144118061850425148929374451731166548135973214620881266"],["10215120341425106477727247924701090893044798425886017425609717278468590838330","22961259563721662496601076232463278425747284565656101074106845054711755662899"],["1147081932209738607606733884646741904222363325545993148170318774843836718981","3359796165942805872409809263105976872537333691540275908665536825980515173054"],["4596184755320385912547895849173341927337649484030776347722100775405855913852","10793311994361514451035748724865933979237297551936388036311332020566527266401"],["16380733826270195543649442631806790319065697173946027734880249873654774489297","16424113863757348915054745130728022900024657611844829106304963108848561555644"],["28557663152022636298048566532558541710747148723851100397328860097440283197751","12424259280516764264752039915494059328942623667105899329069927811746542326845"],["1608953364885379164568236116274987890457595627109370347779926853713504427988","17726785695119683304933543274340249311658218691108514518167230602788713063056"],["8929004448065511675889083454139231047657594568109415517228332242637711245309","24283052094760142098528339582666157172779697268323022670766068641460403611154"],["5289804272322470971165814337630867890166121641658386719746830307787668390324","21853195573479352076155086128635492624531090013440077441257739187802423062032"],["26076422477169216656855680479301605077540391038772926093924214607240673510103","1753119472608511019296684414987005716023112126434727673727379997111099504717"],["24807467286081200739510050705369606912254733099040206288287770870848137290561","6357775562707957224941022396633372255143981816720615138463216680661817118741"],["2439832950788033088025133804487119083272065579298798259642041406711035611261","2883732310441564554139075768522534792369726132656106903096571786110963297129"],["5916815920091574400357986583351850822013323896202560069976839305760246490561","13525162632184703598192720515137129029996830204540812470368434048429866069472"],["8002564250200023018357357515339257327596204089545035381523565400469201202864","22011454076497298172414029721823234366213345242468822956552230012361513340903"],["6020187995478888575274638230113777396818624114870037176415506428057419049720","23206356807652111110613871202316572309946697630331332362690397595692655782158"],["4507171372314705882913640633201473316562070154012869056011660114258392874396","3011459445889250357422106790204282785943264097765154817237746653849788357107"],["20966598663771697037073086676811033942599457422867397524376854210369765960017","7003296341969202716090669466524086928559053221003955339519651728968377865700"],["6398556765294711542234558227654582440442980314383501530727457123542938395440","7405264002326694535037592825278409017876069662897403629156118148737975639092"],["9053241759492469145083341120940681240855369886741211693030629493693895286638","20780699318780806894377523829530339384507804601148107274301534873811785406246"],["9355807736659522762441209905230071068819469972173132091671487669308479198677","25313773025072944375838639331841161380727368923251012475516212045165567495886"],["197607560222355927985291331772408222378689556191949361546082289180420408901","21125490205374316763525478607411335446035629545128615628738914126868547318002"],["1588944999516417312971861158693317732897223746051590331178572050057941189264","28333016585513537218298859256960559568395513487336854720374245588083403623508"],["12007509453374379835573324862566098782961343732913594914553777779624360085012","11957870748404988253336733827565311334633028976871039179601808837159449900282"],["6704845739168245040443453005310727457146257928019113094489076987590444016800","16695612713424745797728586888964931316590602877760102716615031479100467253336"],["1064649241408171603512257021791513609113988546689380953437497398278697336508","24941950423488211757753302323853890220441717905649556906389589945097814346142"],["27730396696060510791363245272147983983872431564229592930205396261078912568082","15277494890693584770649079725338405723305737596069128189491558505296108352414"],["8141247338340499810525240094044423173753072438686519570366071202968877630499","13968882368039625809491281667973785784661090667381741024885957946532608692386"],["14420976807225996927919424471704419709678465816628463153991497509761616650671","17586072523839948226978647228251962810201865989941195544470898479072471054437"],["136998345307142779257868801362278432859209692586626818707496716434956188919","8612331387873440663789311736500855347802268712701602008942776766721943527681"],["26289479956905808916496008310013086569912542185898821474594313539224644852974","8661387615488349686726252484662380527212913202087646601182550040497220147399"],["908128717576556380189809215111305062456892858321537772864017005634359328233","20565065886428381442879786609942445667903504142441954992016406918899221252865"],["28451961958806377021007842458001070403360912815190267204869831158402307765685","11981446974097104943071058273694510478241897372288653304810090903474825200762"],["5555015916961514005774066382930846545161561939403383193928967473094064287672","6383546904233745296307842715267480315179523262529753940814185949874086780476"],["12171991130422114047704086851121195103325569254591943604318596009587707089417","10262487932194877009787739065353022813438496332558307090218243726096180009538"],["2488102513090786652525137393307495944623350976563664865514953587119090620495","13073093152103606922640795168725319377720643607616878375505838260211907935776"],["12957365785071468958682023918251370353978081549929834383029865534042192418848","24091422769283089395875692596347492237597352394372919310190743639967118150556"],["221502022966352540493560099056449748900577148056474627413839511788243888852","231565139627933942941727558332410634873706957288988497294821526306115966968"],["13412952276206728084061192520618699636899194182495773505365089297038371125993","13645455479337662494340405957281794559389871737717820989592883873003780399718"],["23952327903283605492583012170325560309661810695281005319956956173998857531469","25738679843595972887239584374798949475705478438417602522327053850632485072439"],["13710110098312146286115318465233882212537739762540470873717463268555090769143","22669432069764808021514186501416632331673331289669308183816222720477908300822"],["8923047189054615071523930081893971231799393404351671081355770076393302945291","27955231192530249736280513696729345009717639690004767941813046928617825560651"],["11572768568591565302430042913988755859339779783641003511181626244331276646965","27306859279386180972019508658188250159207879055666395394414551233270396596506"],["19046549342338038166042635063747319603518608650203969692290513332582894957843","22113115532652652073553447385922059914868544384342848596378648697629697783852"],["20773193159933004572427247688629636719065229730017856529483028480436255335495","15533947055020366221311921212165793816765608203577155075900501657658967932919"],["15668349356098276213242366090045892605708166272566555810845337845794571485361","21540124547965853805729803017242278979666862852321577606331190825959008296659"],["14185883018241321029544056392532760996443273618964054057502222905236564850201","3883639239317858859148122481051254588740792973347677801859781758395833871885"],["13118038608076618951984577497871149907554117714868498826010370810866643483290","21790653347319000235547189840869274791717343969739698253239391653140845938164"],["25752692934238604139319877950911304760682521515857276549456269001203821650576","610999202873493145660732637330734799342084553334500055591556616528462468871"],["2166044458340601590992042971738455781469170064694265323191951840650712135017","22949567274925674659880959814849446226685900658958497053243003513901049412632"],["4539612695496256600009949815550782596127285332140992679958548326866924132797","9000974160241582439240635855623175414515783234388642052439774033644719641862"],["16452694169874823951936011513023194157620654127006328050000811916433239282340","6497590171373416895227226689928806436229340882087350818613730573683169236325"],["22294212823767722120656077343006376807609941839527379446978628375076554539032","27632693638780257424863929161457606241779949543439509552188235601276469068198"],["3879734243922529598949982574826145992691187882851600482582473031677244307047","21744921209442677620553559379679809236347993175424959472392090585467524102645"],["28770100021779626090561298916692552238591661015529372477609654088429474379747","26456746320582323552840523345899812065577410320671152502064231452370021531757"],["3709353155888177940048335162600669682001290816874402008243789309128330416037","14387494281289709504021610153162073784704446834168716829604577591688212532518"],["28155850181685030414986530431939300840234821836192657086850947795622773472623","19630744859971034285509131212907979069340163217270963625727563209314306822790"],["15438896929070632917908329123353325598763660149123824290595136316034390915731","12594024786617993797482969323397867791943534330401444261156865120058319049421"],["21992245185998100095751641479973913877423501484286073530165619940515416888056","16207383569007776326382180946336885484364729248754552065987395281606753700389"],["10718486504255530869883537710247119438265760614544038938601347242593857251635","12194681140217437428594503239171577249791316961986949890009933793513852663204"],["5895417934995502775733957471518915582398569112214322078309333790924709359049","18876087468839747101639686949888556042133067626753644304522535346819270581739"],["12347584998183055405472410636610735833768302503711979743418758577377484792065","16181196792879737181633763863820901525315271563390975851359336414665912402261"],["3162942154312250515107424185462011466721310666367598568073111447593719653714","21588528621731723006891260116630153115194079693594837499658001024545897239240"],["8713074950363144429717869263295149624180320454324995968101273668570820479501","28626462245677976609437679804752712386676134027568562241536522726847160090501"],["26950618571942450925825143789168342489375740421369700586746294493459885635136","2612400269153736028427082782055752881169183606632285736886728330809930194315"],["13504560918826211004065460809349801660073418873569565752708016996516282728823","20633635531826111143373278289443893305679022972063567536342167762112802771923"],["15468617847085402257172326756869788202074353721862407594147882216769159284101","21596940089496991450424306482816525135516613854415536949083971622007449186709"],["4353917927116909817646471456374430977293833728107908133934998737167178971045","24752523369582516832168454282210596288111295753196472182508637241647669930222"],["17845811942688859196261999088538965729833989140550169289059694571994409790464","24811995579639097246834912548949104297247998158266906551603708081393908344682"],["7186203807590046054838051332333759835179369788034263709616001860884356077333","20150720771487166855944108125977388113826275931117248557069960106754088476392"],["5273626849128077152171204735058854857164611603053810315500646669143926904057","23696130440897732771753670837568042006546018364753538056051351243571605768429"],["16451081074245223758921642769612646267260782275871875594548252699457869906550","24222341382967179304450879749483920149282948787669104583219127353061167746429"],["3818617940239022771181131182568816634573324257322835058942178350190317252399","14334098528216328336570186819766694448753983850521011235646327695648691583063"],["23480267005558081536687917453638663942997645450855342219180302826307755264995","7847035055943155961737474512033777042422281319198844229747419618682798093946"],["2382527673215816210565186010091275150375694986746384443364288414285045069565","20305032315553885677887527313624805166900737710486676959263020029953988462016"],["1025899426180931126722702333389022287029690422728616440783865467065808927793","12138404191206182556968349117349239262936357944486366420164645326106370216034"],["9957650171407589783880166023667005839275743791538235747536032824945712032638","11414563859104142952466394096524883830914284736231490827222529005519818928849"],["3296671479717268710206740030206586605680676118209095405317359924885269620035","1548685880050123121995386866305786914986713370519725912847113953386818117451"],["26157045296048642246022982409003942307405685606668802709095722694034689018206","6520721135726066670097168204905346759047050018258511887878539437219253143212"],["6035782261397797957684941915368616655237871354943908810402442139273251459959","19236785367766540372456762774742136006976989067834181369109895721841850892084"],["8174825494223430473943260089287786795654491706438229736672553186816968954528","22818682471083451891371494620170359554420218645538102668159112761614123349528"],["28821674968818631687526202839079506049956037031824905263257287693852822139136","19373767698640873746537535083157120537351391111646405746165159107905800892493"],["13227253793532721588009120454380659237087920451278296783754460320911012508747","17254046161846429948626494820719855170037893855641994039266776853998587170306"],["25043182437510248355960584142504798648057342929542669740396505497893742666769","357526212519139642199295679787294153932081243093046283861321788919672958722"],["8365767436584426498036336457606821632431697099605494204260503852279877306879","18551859428416062285155269492745536115049706985833803116043808530375933359440"],["766746957438883083250434186315352199746506387027540059439165371364380394844","15576309338546597787427324999985876483518067546347424041976662666363006848614"],["17111202590094585865063398267278432609469015944762072016984162305839088686024","1809793218361351579348564676631976556454567271204271430970560042035141714254"],["21877341814166441823374084268766337650220628466187760796699663828458917557977","16309930959981376558722616056133888873558993540453703662123167152291816827567"],["9984773280343840752248427749080273634919001970111317271517954114201825701403","25086648044153584612748204576319380539571444309320395804088121418755652411216"],["7477312393788916788195636923179754178512532722997642312874426428965595439683","903577544522248281716791187911650295921005112949982191242735278445673713320"],["22994637625424691186553844808849603774532135660921881968767156637109851653819","19946411657032290237152915154664784689379685372705752755909755239432363341927"],["22944588801187791935105166109813893474737757708448267087623202169623003264526","6650803110832350649780894328249293553352608271614337165241286688953150206914"],["15103982045596885278461310943239834062562277466377074061097580011333649959738","1726591186064555370890400563972296925003765868041983501395343961338747722338"],["3586677393832086235719996634158385847897625312625200446263736984653142103905","14321835200328759922147840361633130910366726710963863561245594651777245545618"],["9142920709652812523492271676744983349854442373286935976956670832643901903446","16289031008223083981333276795498149434308892671931150144017125955417860429112"],["2804593689860016649670263580320928018513571715268420602423129704249083313069","1307716058108792713110973259646097384737021419578708306246338994574425418716"],["8733672310689970039212921120618547255166574817311170214970388726043568817741","60231561126388081418940256629624380212542165064004635880667753304475219761"],["7877440896011681018516531357291926954753502350969887301547853600648369543250","2108163816360641342781592498032441531094685822446920382923505937058987975751"],["19671237668260981407914830334011568780855718039558806662414714160517772387371","10148769733373681855065567081657218446498299598510271193094382468625177708481"],["18531974376655033276561959354947859074595783967244483594726445871796854425836","10775739248886759739864526234097439744201261801511605239526871572099166522044"],["11407742913671246419284807532182674677294413688609616090032745805421005490148","20997384301634663200923181720169173910133277029246862506674335843707861731901"],["20742398924349893529504189643332686298337992394490170305864382769909843001863","2851574575857021817163496593270987403992534854796423107174978544306510779384"],["27183015365998879727637434988894900041221515731394496451312656090996739642484","4019533005595756117436554764503106015718225367113702199880635374057785135694"],["9924068492644316511742721614741449297851834182456250621570192438208180978336","19006002679999179750307097010735167587361170678255457667147030183290566035656"],["12613132541352874419828352668410060979821854071385222243754477837816781676236","16851908633894699014575250388853637272970323908058560087341884539269245643539"],["7084688910157013177179409759530187761279263451694967580541310943103737663161","19431993935135164421922932020598768315961895455806702680828110985617364988616"],["21733157953129566311020599048021116259132436914343655817114014893841466653309","16527436443453227774924016173940689890482869389321951719634435838833184406825"],["25630969798495391959485510680000104649707688620274766271084412806276252603163","6462341137927784381953036085321105897255403949219212550784941278678000386163"],["20229410308555616298467966149554394737590003808877335765882726653840477674602","5809031074135630074508019881633219769157383184766576126048851846485083808687"],["16416725329607053767037500739258859611914237973356333595004730587640555846839","16895583372622979181751986754985669205107114726439347677226576097015872668772"],["21161535078916017846940563984209207564452219521433109357797215176633258657514","15122647218148806672983891561019432905350762117622380300727706824918704140644"],["18707154895636880495490928692499568698830707036972988403906860776799700833717","21760000195278501633798437129004200061848838450425152350687521654499047612849"],["10919514309780682528149319766049158671530937920279073817758338669544594779720","19404071228175213756756915880334563776094004563771827049336968193042182319037"],["11013885709957491230136991960858086739323991557973783563550196082312491770441","8037256393316949288702022300346281583646833977612118147127565352083751828268"],["13017407786519201480029165595535279826809860455481064582686548165410105782970","6730516537744552941158218441875403959670880670772494117839671130658425059025"],["6289193026980238580706913845987260966185782924632297333266429178929161975503","9106639758989429448208634161198179813452920488355583154427185279605363510480"],["25504278054420893396436993171915514883343762610312568701441108666032758297057","2355187523223837200767809405606165742442886828544541258091113748268133550066"],["24859759404171170573527354613165819975577752059806341780236675303341133758576","15280983322589767323510034349200905821148382154345827214220569565916113301851"],["12752104164355484361238743502541295318552716584158077971356063653705126631154","28331082382903741082589877077306405501563957488577532150738824766821082834945"],["14126327070724770766539808461210825999715725678915689350860234707897113370938","17812876366689383005331033152484505446415583951094928163683334397073708623221"],["7063871246651866250344979844613274372729190039319257643157097258588047854051","13392316607463284432578345684253513381713925999677291202627824649240021528985"],["23587326595463237606586426608298928836811184054868121181597326321106663921121","17908439046645906548291178480265585067987507418703661315290422536619657488479"],["11194373531274049202512550274369625438793463623801548140154820329700954535856","20670746532455288416439371679899805686023245324637326735105395026516497084538"],["23605057141845232190543429727041036904800266654648781830996995029317252134876","28357855296426613249407403228092174011897604255051553786273943732214630726414"],["12788751774560272156789210170339685138424903278937985219483198060429833793626","21889173594854508830281003650731588876604793101238526079343014647364329264805"],["7519609153864347917785569558668979194531068315193311980288764192850447259439","22796690967212678761741350186662569380513065442306097464679537221891476168587"],["26082232105831853638312336004305928965767766061574108845721941073008542928411","2456486717148497243482579043929771491714104013369959545577048812648634814950"],["764871296738078129906843581096090917686854102802211826896921737140851274317","2514871658969751600566726417120977241109055800142350049540868235096064767834"],["18130294173416159225002852824500191288854746040590321887250341266353609098862","1975779062213147440384696309735080432432012868177238896008654957896016556711"],["6322526181578693619210507260483555348433504193246316549300048790013331551280","16158372171802984802031204420214027526048870320781033404946699167571638949934"],["17779466473799564452419277164708525749649646166719354064092458403302653301608","27689441313041184932832287021198199032915980981538397441385533010275386012672"],["5760367066489036937316662426172059743845201479063954400732068527565212828821","14115885572144372021521485063995859923147689234864979083941210144015653921273"],["3763040185295531123641817066674025248501495399858713230770466747756013454323","27185793339043335850670658813078348534906334270932672004529855539902743760644"],["5371498450783598981580234561667732897540775085438685903550020197064282912941","1218897651047026166358271616378199297689774980282905387802920736269939033324"],["6517945506298400697001498301595314002737703804218296820031116610480571340169","16745691371503205682324710123336703207395491568133769312496596380164218407229"],["12800182816611858945072458143182187956415744430927625618114265327832061779722","16309609798383730275461053751406310852002446099743163699489281038043596458347"],["23825346458582225255085979931102946679973637733103112959099013055038072099062","16102838125315007417293306114837462372382799343294887595638898003648698219647"],["22748687708173418289551640270321305169627872458120006332666616724121032724774","10225113286914434680240081214657474393186505641968746631707185656122309499296"],["17153378195410502328018136709832666075275097439624905346190336630149608751818","27902022584654156601873837004623734967221980959935912569639953415656748555009"],["12456838773971328059182000862253905912964919409786054677343291678065229685967","22726088210041404069662301170136332928094225629717356432878942536266656170892"],["11049337423291310072510945297425067379021479797616128543309850422054569526262","17263189648472687830038314733655325581711253887715176475176384734682706225768"],["21262394160243733119888440647489489185676409475114392550620951549019155829580","18384316546580117711056650561165128038788544404685046376815128044934644313364"],["11081591730146625863161180993964155481383257945816632812233989245110899719067","17280560049840428841237262172925468229259109150081670858608674556180271869078"],["2172505112636501122513003762317124577872805036938874892153090177847694683239","1479149482802333753269828298840115761747122227359357836573810343397241248496"],["2500478371750547520815633327979451295033232079767432774009510719795810517191","7392103632001079787463146816311972967830726602087469505048905251798411523665"],["1944649932349824414316722371237435625721904693565454275570150599146371181866","27132361460996464522774612490200040334287005627034343636909716631813276862615"],["17210210491859249200071456897623688267834881127642573974939320438720468600084","20288652526030958907308994994755214041087631292618786933269954647919234193196"],["26011984059971704730749058800468630629780006050427115049004709588362818446748","7981778065685912705169908435638018269597247305077573357215698136564174351582"],["3730978816996833922273182022327398128811561029614296284954873574655345164914","18572830892772186514639156269127212550733286874628179530321648078316849805710"],["19778219670601238419881942462392616483278032663076134928353721123781039980091","24080150233931000211265201871839339909294752249100289546243477635661486048368"],["17688571439708289271544193293676239623826940661303507154981505789163365163597","22279875340352585407854368961707222068260802264964546468538842754962325365593"],["6749154337472326987793645095475954358533043820972921618014263056593409918084","1362357613950537409438736868965480565520270900357907788448864309615384005151"],["8682682303276269905242360688350130024972197860140950447212476731785328317902","20433197958890688689315589244734092799237164983154821100796893071727081544842"],["21510823324999948474242911519818129071492012482094069081248669728180737715148","1671825797882051593013204463824789764197015681937251833170910389162291993765"],["21067455453915604316745827529614161507940825914853997052782951281360709651976","24032207356737331085081142759512358789559654046862303797795685332144683491033"],["11682436353267633216910437571815082716579485320091566719358487838681609323518","18271430318955895071307010772097392755868053366599787333032199126332507559486"],["6018144211834669018806105008373121486966569083327766554954189551492281513187","5691878993063795036913119618895670570200388999358784614904404142761008674838"],["25807227114670301991496481799628738985928873650373879118336175267996776881636","23159968981533659603352563998340215967182840976973774188488179127206451446285"],["27417203381168575421278687709577317301841259937188283431881363413662019384203","18399440621876783191094691384395609808705216840718845311210865188197258396089"],["12401336314385253341735526479142875757040804462041373365643204045793945823756","20313984119876477417858291483449981581407600981303114875797352650727197007560"],["17986784895253500312667390334294407285842970771757821416299495780281323892360","25639699487629662972571548285629770633478507023490174491214566770815058540640"],["3249929197469168772840453790965564058678352099170764460353719851741271811950","14248469266041602156638447843293061485596463374899580468636945038233386307418"],["12001608511335309983120049841432171357848922044597106586452962906700079628643","2722093366363972896021897840890114316275059922047715344647894284397586156446"],["11702252048897218843169422509448384234026220531367190039995186587979286050389","22090058202986242817809605164406366162252853348680065402449901698192150979677"],["304685821650987970976193744776799855726825847170167690835665345440050367357","1493392147087026842207718079887205006800795945742016977697792266309564967067"],["5926341047151382962841319905957691655074185883826660032681270524695989758181","3350602714525891902465063960619976414454584738417032037950495804992612462343"],["16517172092453481059699287191189572240436827059570366892460580723589223172435","16431742491268374115444646452300157935801102370772306219086738575653987230421"],["4724894836456188834669036434410326467340749842885774282898393764899021973308","27284597224511678618967933169103505680322204772515564535442979936991145491597"],["8771591333649838224497328268777549434553390871471026893349891610078670118465","14483149692713476161341210266562891556614897308704770809593002798273898700014"],["18472459649509914409515012146949250218229451152444078766532396154128036461735","12284363964127454160824821813352134750459600750076098379827496419984174084618"],["15781607961429719015401885959763135387619544079619766122044784932813623927246","20563932464995302183488305264958319198023791020585076736598306173506251743417"],["26893589529827967362433296130357169265241834300760738545984673527698107988661","12510560358724697568847270842496053700508396067889921447165365764666372905821"],["14507913839014470060069417731045002575936095217903255829166731057205674793555","25849494550589473517559813525412521593700728012715433537444128745750444455364"],["5087343499381684753935035207868541787069973574215625060768726613163457735954","18408884703417757933185968190176641216241058611398312356789535680957323354147"],["20239051197230377363900949204224418824743458726938002147101357134255538882167","15485710979620179931001004409136016160722115861637183379369304595669527096698"],["2069334902461676037349040853895051890591286785903669702745800924791388001814","9234642428057078870338938262670053954408448270614424379614596709173457380160"],["4719729745851727896511970265750886446501743814452532137812591730372685014872","25321575593484091117694563744984507555537555801048902251044102924103788142672"],["10858868682698640390761982500743044875313906194779745560818059317773601612779","575298280554098892316155862984343880048209990019970140859893440104853890009"],["2793307459387631459713489664878668423777020898244626557870549938138186257361","4870026222537249298883976803245129229543542080325357022327723037225081555752"],["17349405653679707274262868296096291718081591239272861890512044456199315964438","6182247632135271258725713536031065846266267555681095621799296478511583876732"],["103171536743591084712921411320318880423017156785411615054969504060235071001","17649779852082091981172985106662167411445120426389890969875799770134800204859"],["12805608143193093756487059160894073338248680501650351256123885912292522304376","18196958867817422028479241117857704539159165466828689195011974313489473756403"],["28239003759552441325662106838802774955092653406835645555309484463274654020984","18550872457732649108537146037918127998904234154559090721865035924306844238277"],["26535274441222147639738207504885612781564352366328132715181665283641660839626","2076818753275839185281379410999232440238457791574508432463967496028659878762"],["6054949031978264315679795380937768429333269613098237394515502591530694332619","23335667697281455967379377433879872715782403437407515698374065174174385910666"],["21445105162084918433635993788856177135070892168034640609889514478979089945763","18665485471729222077627729937919837830779981333814006162832304723950238228215"],["14573804455173693734280971760395832428198004311847880581974992163509497223386","18627216461740620643209015474361517583214694374650892129427660544178504446019"],["5940486169864844993341704558221105493393838920331995928747411974296290655030","21399713343747824230273325475222372492553497561948215623877990159447217670748"],["12968958914195179370473676815647277030906928074357139355324628350780191703694","7482880119372798407744182444721368215458115599274132294424460816538150891076"],["3587057814367851399268620921362160194902527125642663578557837297023196498330","2504618386873322924810843529957827231846533209829477492507849626708874221669"],["26464894367099314581220885513074253259704812224010999440242531772357604176544","11578211405058828020549584792473382339760462645565980526098350619210807878767"],["16167928590365533934908692987562071711795725542063303347029105085340408064374","2458646061721981136349304225519476015723500113927795354436092434308206389974"],["11641199758367731737232149545292191055509604994088257773060836021851648122195","18546848570185715530978979101480844277608508717163388814578849425023598602089"],["114208614908130473804029294232356801911463762422692041254111194854141910039","5370482627450338203066158795537465596181703936782567033493417341908973966872"],["6233728449923814539489873193975423940411344617958755762351328708924670208887","3985715764485147273736840337479596062965347012471196530155954928454550864408"],["17526220189419738922422922106502703406149033617182729401135107074261257759072","17506467162336512656419203529098635905699347463693727297261900079824654156171"],["1124274683624798784857030346349161733915008891990355946151077635308770310628","4953036221584223775138945683698306285753750441147460318140548014175477897638"],["12882720413820272633156494999699092819775967059524304850336167088015458669736","28367072935296176956091774771533652785081989509555181816379133952316999936477"],["4274180131053838607072393498975998760518390782869869257963884251279786404975","1310658913590655767552891252095721412068276169297306943034031178672698341220"],["25638290826704497667393128519827713677116560797278652959058034151764148874146","14751146610106513421324583282955910935191564031934935520414860203174998841371"],["6311700839609653929845567425471224440054676624815788271009671947691956203020","16014873259973124009864349855146099251875106300058721854627059090379818040789"],["2845347937801862861825481910990545170944907701086959662474612534004556785674","15690743767990211542358181542030564744865651467771616696012969102124465010083"],["14618237966632945017992620908601970218077539912629154384678288311384070788567","19057535025881501370422750547096000769146796101055242785114842225243229278735"],["11956816466048819261091573318055383117076671511924906608815251726090087231313","26368974482866445742329941879347676152137630600957769128419380595656935867391"],["19332852954091032375781499495689841995486759857406523651622615709649746299503","8794995373478042538932412229815329681496145845369746007647464939184910265659"],["17609364226366766287080002789645190728244246903551220040982491103811997496244","2284715473359502671477273723729814597384073004805341350060217754550950513232"],["27574301564948774885296944324274906307199310843789059410282407385372317266645","13205796920179532136183059790861232032327542214670592846113791299590271026241"],["2940737169377360599954145914756441450375646716242754544215909956424321334714","11012309840910066462697033805052755431591217016386731027325714065183557846853"],["2154167016966462583635705966220202937048842863464021659793783468109859275687","2592835285117259703656644363902662086453464557499090078214592890983585184029"],["120055561907253939061939022516234424296355169500565113430317052005302587992","26536321126280614434980038901635875928613929575674571627967256047499923296436"],["7085805177790731610760348730226746171030889103421641845572915983669178703501","10461362101029655561989153932117159206974542417981544464446469185017518360375"],["8230931175839133788684534637312333050753588146995684869808920025877197303234","3550097824452895104568727879179021830547168542000076453666508949203393086849"],["8441988028427039108134238988836057566635712112713371768432274619547716679996","21033636015222717480960664173492294362654895681342377432377970203540194568852"],["28486666637411482939371015022855927370719531782605064142175725912578464435672","2061858421096920785983657598782475448445831129509533006119439043572819363533"],["18344765442512235709285646050395706405586560527085170544994344484017895361311","13749152602128754609436694285694828899312460307575177197747968150415285194179"],["21033969733499091861239716356528562492150251940978237775617973959833957377956","16566720516431390739817645249057941192193412001521238260224485379128082234788"],["21541653090204188715827764513039914540378217815944698510192722793674915509791","21375667294347829053351995894877363463860703860611025184620158297714168532136"],["14536767062822540901863089309749272565100194049457262616067897047478066381274","13396678952298913724028033285827765585826255099145255772370393507704707373089"],["21739265925913794259672577425866178113705216432691306677120402719620803731741","15277718709603415878658143844356507351581102767840176369919114446040574257812"],["16395353679766690707771312376838510267996976480427474663686930469707942199633","22461450525109301750239002691163575657958489180460745296322448839295461997419"],["3826757807480723743778071960572737535228279703085181444149040973066125269902","28660653182343844049629009958047130818961805419294516420350797187219275522320"],["27545644153458076473556662702393208699009577180617171503169861010626500672893","3870712568620808667200592932096169242100840071806295572162292072155240817148"],["3369459895784442833560174047784687082839691171989224607621498628318174147879","11804118882928751164791691613851121181508143050500773646053612227745381966452"],["597047991918622595071089314030167526637456284451149326876348323802427098863","25927320308469016865090521919990934767851835173243881319462299519906895617443"],["656484480036123369560695294914993816543806915965886556596227626833505950054","10904985218674050778959994318866292826300298107678207159914943507208515006913"],["25669244140003740343485504697416521300514324538797882555080247186424502786252","8231347611602406836543561207763497362423374798073342442929036391367389729362"],["16138368094969918303195503659201729479835658645629444209728361375543334834458","1364271638446646883378187465089028986824445116748334757676978149760529130141"],["25084856068211476124993084172537941240716863420257172489205994757028611360928","24604051265294261641638398588423193824111288720046867666366177530956548380431"],["15389846759272780938795620157516493183178390851622343548015399123297598949205","2168680882230793445561100729496464130633423186436037385436357511713064354674"],["25840466520630586421278766971067103364964298610798496719183947002248980949850","24971330796419432297329981404112154399031085520258004040416976833310449070545"],["17096320832008001745303293040889835373467355873739229210625563526197348419401","18114049656124072246512946416500469381886091753582835967326062962367169804399"],["27066545931829239261592722903264305519153430725013668300047434498166457027920","23890160247813092157638771589162707826812135230781224165025458917889324160806"],["12848100049541350745609617664542209050574915688298587050132320236230812701372","16702703642589589029275562077330336194177100508170164999229267225024196315322"],["15903361961371056045028689489165390245239986731406312056241135555173075200642","506209000762100275654806159765982727046605877504751162329109132062256263372"],["20444428834328011640949481978897460363411249646729384145019416704535098073666","15836527074150222428026108237500811028293136295990218268283012464498613752068"],["4091617199017017841492309348195557236136860862968966727748332957902654367152","1782986515031199438831725019282540078165707593901038680735878079817166695668"],["12178380603604026041596969554172995242227245094043662682671870726248483555289","14814445340496705213431520035178844816508297323760147822891205231361939310590"],["16193857731385753442172222599508116452680604422018561301735813806197098355942","3271441446919514246165725546334112593784496396774369241933952189257631414531"],["22366686217352899730136260971901442546485221637609747686044468719390670971640","23730687985275158661455119473699989497868994794035455846887626954601630474898"],["17493984199521298553574768182627842783281830398810646813983759608989011300035","8928157919206322640590853071967234334865788471480416673209088220365647249834"],["4519732714955155628411089038949806037305557381436695174955100335349688980991","11134730509365449896440552851536639687999675463972937225435138150310830435645"],["6169159853100770493552895853728302298060179922879067307788085797532651386196","26810879381484728270687043836906626371205277105457337137764012957516667409192"],["24714380890543613613985607970147556026925267510989171034134882525533868861253","6938566608452172092750568664555624296141509043856030643831333108984126636709"],["18832732250521878944864057121170764012233858582527344825885316534396512224259","20319411006935988087023404749051837722829413761996907931226059229839590115902"],["17982362254383701895627094152985355938064811315705725044931520735840566400258","10454481697612238160097542777895829612870248406923672407935918487194194009947"],["6281440050014755205930700871907983393605673716569164394718623074855205893354","23308661683905321707518987574746187523356166171119157571728760199221474633975"],["13388194058697767937273195421558394938063043250199800161358746628520893830827","4607856631282275640170279584436572777238199778694879594706842737828130549180"],["28516689625444578324824374392239013884970559978942753156453303526888226406036","11226042641000006429296112602655348420910499745098485184000128586160526866197"],["27922961270914582846764592708334405956676619672040146336434020612743534474324","2398645744165897587218366433452272408764180611602186723666956706757246079339"],["786349463479808412369675217171705246629639921690027878810181352398941324497","28250125246973694467920605556540115023275048064110094163138321603233353601070"],["4166149767272326438782803553109147888429912678330111784821860561929114828564","4276241969291074574847939473432234761732823635125180323174176715417623092162"],["2469020116109718502766894709949263882185284349657326772141892800221963380211","22354168171196690090963767770000712403333391634520555329772652857383097603119"],["28292320389715180614483984544843765811935975585100997542333322424483446175896","17424936474534115481532692783389267976928836128821320834840657914098812602839"],["22079215879906020160336733916178629447852561115634601457427718858641904000499","8368884323567146946025501214640637289164145003783006888337456878655483757698"],["5754366127261659010860934201449267778736813108402791426620192104812207490605","28930449993877019361804569141799908561638164629154184556421270436490751713368"],["22248475688786388612297487200541944071534077523672656251455033646576218581901","11586678434114924703577115152599801766899371182251130630536988060848071838571"],["3624264822261175179072682068765151785624864290066150775237796729435928850841","8979694423489486351699826850072735364409612583731545205915263080591137126703"],["10331833162356702687246679741454291082338535576405982306302304292328967397475","73982933891012176078049866732009611153932980227027251028546551801187491665"],["20616238177884389823800689341227110751320630475420986767967221257879545704267","21474317044398632644405408387236330742584789881805626774738845815634676458401"],["26010955389743875465745026740136458239849107515438743585990938620762408905708","2867717982060817663331096534737936570562952787137451439662539055320355185821"],["4787551348327146023553944839039885384370797607763348780290860938573757035778","18195714669190151509106621515248332510200983592195991851702004812911538342474"],["21431051383437813202637068241777801295747847990996192420563161201549293395102","2329904399129178172171837631609017136731960540185161406600670181303616031889"],["4620578838926527828682976107800767063860482037156862488706525958113735432095","8823757478357068725636932964100514422399917358201151142652290742685544504573"],["10691268192136652012671982994300128942059396675933618858286996405769113797695","1543112540002403807816380598934461228569494578278533451127930084855104242541"],["4696203253977951537313419845209148082622026594373799088350626947785060699801","26943298825261432450416252533058994795656643900789282210967982171713075999184"],["12960230408264286638690020515248442828359207450597025777993121783373713399737","6751091496565598831537947720571940164723960497191147898317237343730781412775"],["27028548039171038831435038141304026500879879474420685339977255479771531255801","18305358325491514428061254010200622658832771718093961204086881689760728562719"],["12987942233429151033289586912574906641701729717679554181668443783519555357643","12786809977198782818742645280681609469142936501150887893163183952606854765053"],["19261859179476482445354022050633041591187431151534615209835492955436121312208","1612585715056310273599448163903306392169621504171284444014301276740514640041"],["18798903551903572128197229335155808038023902257205308314289276387621685968856","24598563010622752774516801065817058087429698381589129456038072830201297779330"],["11704920106203387454758359081695474988200880149414029138617164354769524249945","20633632785031641306996290272250133811633057756167154380872147814081458147366"],["12554280807423867844767264757880920603067826370206912771858261940842159919499","16278261867362755088578270007868877553298349110157849826817806800595877742947"],["14160223528561521840354768244022744835130666433856162973232100917948732097775","10503551354091995991330759679219370259085915924349929638259070480861921836669"],["560977994042762651300151392617035899624946786699319460333980634779224993970","12050334064026278086904094487037959331514852858828866217793649099708451198677"],["11698959387998255573098983401206085666094700945069717720381965489063768440996","19416423875601865580402438633606489349410255595789788559080688322898685706357"],["1861550427111616945686886464991742606702834284093797553925885017369624242137","24625869653799205486722211323102012622585302446676558257080633713437402695029"],["1575006373473660562480745695814276143502210569773190521706919876293323871519","25932451321047078074269347158210105080157599115383029901831798412169426129152"],["3197986569522635151558893501597412729393321864014329998776866029351275972355","22611069545378141831889731133810708057152243573225970545079209201449845692104"],["5888939040487401204435271273560545090104135321142449806282110731327991414937","11090860935501214743525802772662333555417828073056765432921423670678780125274"],["11816131669176430166274240452238424734698495212886382328096192217459420962105","26593866466744553415709375907101467489334287858902083376256279418044642787474"],["3513788668747203288486812542312314746729267231320860539799725248935640183415","1817381610484535918589053805124036566427960435697366818951811350627677705696"],["20809523025001734893312097960370749448850663741846732829371044562394626395195","2929995914173174215540915452738594486232724556148606175727700066436293503815"],["7983728570206302497541881992725342490407988767163317272579961290763226432241","28753522146117235195489330988965705411298776598603707153680292215988988384500"],["6908174843065485204147520103932228159669735191765982035104541154447577624330","20059326039786606928691213578907200471818448236313768367790689440503188832442"],["17024262744261598819841130694239550447993337424161762580601395812479599768307","7482939132787768279729942577777187554584030389935261325160924967777994527772"],["24839912396820535580907434465389350240143309517806108635422317124912092035706","670382734734873370774411408169925015566370172640260105941495122330239013959"],["15818955178027924511762104353360123087616645658227643153716003185624682769206","5676332173525622111865083044566419518414887625913224431974356412371295973180"],["22169503896762114139535910714580451251640695045939467070841277157148982262927","4764568714482549020808645732030759714513797569426822434536144510851774745006"],["1348010460058289724947323575884675031063801191919129189907302076442377040468","24488102390477471420632707010780684429006982955166953739338181122775360690261"],["13259743557680844018669496637241245125342054997422680375372397616889337733858","19641371349593841135470020613346806665894437126658901712776295282455544964999"],["13687011927728067504082766153988246765897910836356575847224790440649122444704","13444563581853750991369794161022113061938077218332297454369978963283778667505"],["21543965406332743730667070121505551449582964379759170361468637258505671978826","10108697389497459508363668931829417900269719293384693340959237457148466693143"],["27144366392072076293764550369362793239559988342264224170812102955981171120177","157114724014023320721866480064656163251362916924557315175992401323725176727"],["8064352312336950288746718916203245060118507043228903523719600753928170019089","14105502487579137089430355440884787307124274440514465175506969752877802213341"],["4972092595715833379302138862850510098680258298270598881194825768080407029748","845293392318735448009811386398111325680860220933199859390058694145938264950"],["19818862507590841608492799870295859271335279118025370184698768045730614936521","2345489274160997118739736464214393336553170901797117035517183771328825458490"],["7037805055481905316951519946481276674934569064593112917290122566912301366242","17079484759019149955802004141693001761780592798280534115619510104006169048538"],["20085696382382003897925737602987699483466781947086188099376215337869313510825","22788001007938221952720891485529840842923021157202108261562198658228570352852"],["179810877874672974716649148703129325355480959178017225067759171210031652746","22466384040447900236983461775934265119492353651306563987622395087496368363848"],["11821256802903672241173275439542161938811688778481344580606065402321919652047","26874099590668694596947437545822968637534241370106195946617158752285620777623"],["13674201494396539842728148397505819974164444358359285556976684470883398049892","5412579920061080569472300869988949593117600508892733807113941792929269717386"],["21864872468902111227290179013886377805976435051523587134733554759394413251240","24791650609971746813077940590891460957499073916935892197801737409071192017516"],["4167239210903304785732446222890020867552425354329127440775390676758611427306","8442606569495902711492148525036272081018321972641911886855058231484109376639"],["14421588364059098159925026149746688838965013299044189502752646799009972559609","18869473555788059278804586811184201179515892064087754817128073076876979826567"],["26429947321834494285691742255930322957940412145989420731183714073493136694727","4539206936597180592872853517077824017473018563436499053541422094664915924758"],["11922105141294597109338693973930421957286555348961071998569522403149385058332","11170505110021752730527052539612510931505455332700479364651705633142659191789"],["20034855385469744860704434871465072848190324829918766106452516146282086355698","22109336842468384527485456641207032071120843105216290391560916148030260613026"],["6987311018631488127994775494392930166993185523247013142899097434016455335247","4829835633070229239942453670526848126825928799150573063642669672570289040303"],["26261922754707934450469268621227944830053613346126312652809654220163999598678","4797062048383873154738590481176214123830013884017110382225212128895992417198"],["8190824514900294985620059211332667061776142824941594769641372891795574103504","14270597777612425755604798473823020060473043266863204174974070530313100836251"],["9202909472678937926567687033675789896133647780125811299159036140894402476383","1273613109430221412071700516991067807803103651926415741013252498929004820076"],["17439662152456922767477895780840647543673363135576197898821114426199701066937","2478908052724970961593986317881831338880489427304165397873819707295545061709"],["19351473205378126265745805265218959501533526010880602612089223081863734474569","26628296805681661681889863293890870607039269407305147858324405085232496520298"],["4327739719715402244544514237766151709595365376914576123961597286290953230747","4837426508281378561812629111519924359017773537862235868638078384731303930590"],["20090736550814526313398217270413313151613320908162561999629287880638604534308","21930740219709243928088280439326250385604869907167560534704158472161058576031"],["6767798449253472837941470216703100487666321668102734937611658573964654875047","4429927367529270886420080745120126763780060748770585740756724906846909614665"],["10937288328275752049793788168559201881736679640145159756657924304979532629345","23307554460447438820923978912535073014661207750088636927541474602254084660480"],["9190800152148711037514344135702366505553911392654403565864144412275835738107","28146351464226711542808596352963819021304039788665141868034732307115277489902"],["22232311516298327759182737508922728699065067914879151988647001906242189754010","5808313143050579976015665180753357276377030893377520952349844350029693883182"],["14942639196922147352336128139517430285717456956285934655280404594643497371953","5156289384278622040542280551067668756636709976990848911944510834075192290367"],["26554734739834288673274903949329178786626555413698655993252012255422019531374","12752561706132673917297703547209183293368011388726692018867394084186555109872"],["12104710009278273500822350394272571124972937740205315344250816188129307386221","48734370620183351647089725115000059635963905202059642767914183064132874446"],["25863065559690018444679774907595058409345235168148799308479237059280275575347","18227162457992241343504386288124351760916099084060865732857723339377751909324"],["6347903283074642444925903131444703584940776528945142567988936196725154845686","24761581245689130545071496016321547726379448068595577076794574368799974776424"],["2985616831968111156563509496257262274180723453627085148520149211857606844704","12865847925884416015023600443081653004100097648127243408343103257695249064336"],["27257129212932249871244125766878593140969989981370723058681792425679133868872","7599286294239424928905654762414764515195384659775653163646686005332711370004"],["7489776521376959305628518407678117744248215586229669450202806822699152069839","19928515341880187431536982912783859972641891111753773270112245334939357332031"],["27847201147757854326651355330444571434739624241923920784517855939724540773317","6357339814634880784512930917392527699062003597588655574541164954050390340887"],["15372976742568159850100923330642166133556830066716452085062319789752843494871","17609501842176618718672446753689703164553733641310948532330878673245254908990"],["8608414547811397640980264673827069254954363548037101700375479198300367334673","9755766970616225844755911832451513956173063853013339075640537313298212546856"],["14727403847556811295837545665461999621149040028353369308963491630778204660122","9241792595927733817592607384581700594607025112681117247575686682802737517113"],["19337306246072282602316233083427072926326363538122097595794990639628811276393","3017884112685319953831819650842454696635437624346511854154205532876459277298"],["3840456141394541826683236577475696491027872386425625246869045101111081085726","18919027075213264648374822497980399336653541032217385619015266789006528995678"],["21013322756865665059677534091001068790707038488175990803959549222542617562568","19785639406693988581461438972454831314141613330981555339710015294283873544372"],["9121907139013819024834168533032577383959865948384740794360562398253014198335","26322411084712289914005485337081292281733705664834676615065747582679814793785"],["5375177050717618665890268546573732195750764474405059803633150603826745105543","18972087540601261016362658706096948770118374060179261183161292207865292896005"],["7857343699400681000111632378675002481743290506995052350289261485720815048198","23327933639514567901564497542515719345484163755014935127105808136106672626420"],["17762918943841130827333086725241368068244349186399994736262274539539299950639","23797165265479615738089972094043390116264778241849909486589067391361887610609"],["4572430800409324467935412164612754862406936112181166203538940219668940223351","24876545586222585489236115275848954866109231967789405614515103638296320357267"],["438842103425925384436908420788592460282661219187368988109156709068165033420","24675812140984214086826653531577868075104265736003648775675521140447607138560"],["15487109574751268058906105601480604239404534306203725174293760928524640813765","27800200256002918029739064650322300410570035184948799997132347829671241878266"],["26103840799030976934121686706674536078287627950343139910310205019010130618275","11801887321508944088922507642933732923069153572160963379489992619336502043036"],["25807737881990799679208656074715103672625577121049258702319554322042563130139","28010161253394282583689957534492195751235889925465107869620521087006552238286"],["10184865450911167512793427391443606906100427056101994140621599413281280620920","198358633981381415030839734172676374494537135911207357227429669451566787215"],["16136824516361717739150984576030777509160220236426620377108436215317782094927","11222061681791564029336085129130985929882966649943076284180072528713125445023"],["23460420855120720808791817043762002236352030015927642673343457243776445838707","18051350444121500420305943735675907692366986284544412310369121088397836750393"],["24231625322135901929205264240897687167240066748766494886170095847433051309055","21384524272002729667356039792370826188038697059832464629608132902757080928745"],["18334037387739189878929857261545636813205398671764076009880179633473939695166","8842000974495999049377023173985409612425530837292832833512728773395346083080"],["22026291869013610587113075062315603405400709153394655847803662865478393211873","14486260109296827529071546227404592502243464222511919050117971020850722126848"],["19588385938479082105288089393994000871190121801523098203701120321921589312123","26382168842266169395234467011232367019255351268184424801497561331507404867238"],["15083600145172072186131027494944796517435043763183674825390238557667674581092","10731147085694298705251506059927655565610954509756813188762311389610355198108"],["15352854943229474639853954490757687831062152302040039131552521739788478648907","20484547501121377008421458244037910775896668133085643522756950729865886682543"],["19085204187462881573513485634423063028740430884764712579065279438219157980230","14395870910194014687741014748361635039374396422061164196848010681017708282580"],["22302478804902790461996241654689406655466346285229896981908390388638935593927","24635095372975928782259300723267922667863333553223416724476140938550081134736"],["15365129434837024719290086256024602634635541826090875108791179094750057771779","6165891452075009613586908563076323210980070414743079769685417388190624515083"],["21177007533409427539068122846242380895756914482208525079594154533100333924926","15602886426337623189584094386222046044503464799031803003661738518230856201900"],["187194058406260314798693637648890043192699753462837948080572053535314868792","10529195578988146094341227754240075330210768930551374768975395227681886235449"],["20184010610713558953994786654437343423896793784256624096362854776608399042688","26114010424986056125965335728644288756400143257594210210269909975824748749567"],["12484154440060843873052420660444754010551597380033319243634518328703174527617","8730833196141946642784093246002323902981210734352318634780714943714409980379"],["3410285402691409231033381572662292062200392770040575754844216331368718510094","988395598576175460298350593395778868508535079800866386516825567697174742719"],["23715960355045929129049800127371619202632591712204999727113307900114179322490","16958891576163837156355286767413806895136298051015165111774806783351613962406"],["25828135532056730206519221838500492768763644488151554243528916664477900011177","14059683196306537207230475041198574715663682584770457857020802105944656081942"],["13308897786652585621990292725357051799138139063290368615390779408354369589978","14266911464097495222329770288178640654800170266970915314967723283103994290985"],["11337645694697644899635191344494118042220189560484554264391638299081624446451","9543886250445554265923629154010358183541444036390996696126718172976832427658"],["12807507153768206075525915592838624127340364754402504291146310852051887686090","13129250303418515885088843287822828857732045779351801086266188480910680447857"],["19287407077114129210827947426167650173679230478857265069817886293276009805466","24453845383700487518415074777466849303252282310024809473821518112372968562044"],["24333742397416566803567533736321629034684205629759122949245203145214757128664","26135274055934976497688094098740941153740611392466624471989021464463612518714"],["5742668347298261491777777689444372019809188425061652897965900556007475202759","8291637216323409665647382686160627201544185277632268582581195129947960966332"],["9880544352920542958013416597363275524276665779733921929347541186206162748763","21602565825736398652381987735123928060628044892273872457906273023385263093194"],["24052032350653328880032208813484960935936353164331500074213042359245292258709","21030338666810351038543322010009023429493825212103138503276452505535438428121"],["13501154635305109686168683344066509922167940053946586902136207195532843926431","23509855571377680513898145302485936908276315317246490090972852175246185209502"],["18824841432114015442645963848799434205217980344313343967597296329800861247688","24072278688292132622067610275507977838666731951556973300539056545581681659761"],["25620154822510458126326520541344633345304215001760961533971870140991729682525","27407748831814968278993998914862685724977642949272469774451075133879709379572"],["24934969651517763443329445470727223703541585462682300124761601104429889212024","25725500676301276234677631112389075261347881087346200570162303225381657540685"],["21205718236608434671717952591443880835446509866817342583451938989349887992393","13382119809640364445802111367849293941231264622942196028607279407391597692875"],["21423008901704608887474624267424433399811407540820358019127077310237445972816","4560231120311492424335417289051803956943148461528438452359600515319500066782"],["3722357439102136967063300323400351006055657566727559401295543190909048881466","24177720810137387620579636135649350773335438559407939604024726058907366766066"],["5823537298987276175228391460885753000737563720780787770433314105385695991197","8918441216838688196997214930676680790385573875772916339433711641087229262768"],["16582865307365161117758892500681411135467894106841673151763231249721653744743","12925226106146026700068490833961010736562147000176880857258764279630350385643"],["11961623783055280689620289924353742970564285412747297339901454383076277571527","7058119612370217314987218454249668898478644845580034019260532174139180658374"],["14203278063781276025051799726602409883475151178637995970094566169711346894792","22441351964450505659329926623496190906890971315994300825353038954559207814568"],["3956354403164659816661336489857194422916112006801670294125642132722861864633","5136006516920386378887635676740062217631049961673858732373333096285491129476"],["24322751353493451987833590649142339456404602013796284057961420780275076149174","15872988228534049132454204079739705428318710927466563097453877816207790149079"],["757093450826280974463522969253594834410896215865127466001040678048690393332","4576088594926028927852825034208805924683275015524004195549531757707668865789"],["12176190325220881946417615624567233811626048906832311006645878116163452500129","12031055697290422986641930451695372422486806293836297528520190328353043523267"],["4575373284942586094766059716838888923372472377418355254780855671315821596684","18090712362400104277757022568507588011310679845633583773690158771514365587147"],["9172467809338990894322617488583573790044789564480734304765221193027641794499","7428444305066582378356432427259343179196873774188170179599597874065620316711"],["6922379177804863210176619540898091486159771392611670706426584056474653851400","12848407740575245863575245411416331456339428733301707024786548383076966873495"],["11825306260551650641383180940471887301323460474915309012641691669438935813395","7097968393319505873844713917216113755749823914086628503387104860012443969643"],["12852991199576851236513316709981861933614321343061953234498182235742585920853","19731918832997147478172036200239005799321591478216248306318022591899376407721"],["13996958909858207862273951665193816181037339222313997268803314039395553912797","6160178783527425610418060667670666393043426730806136849521022994266445550097"],["8056885289118982754581628525416024365655771782774295824884309853312236392378","10481228223073840010368507489850013034997816016499370988428004105664327320873"],["16861410430951833681092705217824569859202003112918995764656530209518601059058","22744855269692075759550896905968173005347460229956756273358282012119699730490"],["19230827994581341711540597831763825804673433542842930605716547671938403289666","13475272239604160894691339242974882165507771864647340760314261425199883604646"],["19964078714229707277373990682433201917936707675884707980413428243609403360521","28709082108102517264910322358224116045308203019650824628664021974048602993089"],["20921662316863966951173980526509067495657424929833338501869386304257694022687","1870556351438893469456868149130909397184437706800632425611326205551801087488"],["25266039527960367798736016805251834038980948398361401124630964103775283888818","24523399976837122840939598856981320293114037019215762906222278349844012336989"],["25549014624971506247343517062422726580725378733016547206215895572109590665421","17023921259264215243523302184591976408714832709397266636240124248006089075010"],["21742015958951606646687960800722276417412085674027507569616731838273472247367","10421988888674341582171044117337689357287340141811395706345056744114016143788"],["27438951349438065666685081789186873406167293149193397999702543309072547463002","5458204714271883807851856739629106789559545039904615581696600866342034431775"],["11095237035091147493923286991085077451745531252613487846839536127025202840628","18646042239405301518841235539601649715825280768255486016393201731010692253156"],["25349674988048605872930849428948067893947015296497754526419834621807135679028","12653784329504810841066285256357728892482181070090493580333086986504262527760"],["24096557999559466421202964756242219172595345560137678980856692881989392915449","14149172257918647736584696647301411360915083072074731957238318173854597761389"],["28523248864708053673760973195979371126408895604477022550210473078329330022853","23658824069373905529606144860756156981095106139868351557091490892442948223301"],["10686493475651324498756604757069585688646067754224186743532788667985245644501","723875896306259378677444107152059529110318854140648932162976573438999483422"],["16488041692680672192891866326262526213658316745046747160066284591250969068867","22523546570435067113886866225302918307396262839732127061947538013734180161485"],["24473161045532798100911489463969352649469247016146578016635521916493515835461","15659141482806461251167681851450495005564369621193318537238970049777299717905"],["26672502028813472077295812107683536316466944253807291969574028224056896319989","9974834771347410631719418793810265652230836567357924200151841513610917254426"],["24442364197502892525864127276753769054591102831370797291380764076739709739290","12763394794367052815711674320311432350056260183352355447577734011464785776656"],["28254313668040109688092707347758336488164730195517709064445224798958184042010","20341040969342326570414328913311648497464727210544020041999712820273710169742"],["13460898854862049319627702129510460918702400826784788372849710592222073222014","3380598586984983727047099921470961304419121471739232510379057734534277686588"],["24541112707461324558481746882951578337207321149789191031245058920549708315441","23358966422670492050972331840205409474834109121167328165893807092745832220342"],["23003689995114289192280919543510345280087756931267434005120703850572205175045","28857897107292238004001265085162083631623298530256992766514092133259774135081"],["2630587654132494097493882834662853587164125538575405885757887817089638304826","2440433069890866114793975218169958554775986851402188842182238809617333541608"],["22464520727473834612876465891429723990242542534980050821086048554717081728483","21580230744533392549609667619414747999372963968619960001651744969450949377297"],["26476412901876497716930831646122589710889217938288556005245091205369516832049","9308884691456957297249185762963462706980554034888518975465996890225801519481"],["12055980028529892601984674016918778048806708450497455112068051089850575558172","6080601228003758843565907788094939384068051960910581478491808214604063896466"],["18860677295718603494346307131288945257734109441174935095393592989188119291072","28832684902005528245617772083776627398813045947124774351141306469070680925396"],["27380988850382210368743078230990775392612139586959631892397207105524450576603","215859732826789737880376979190001850158082843511199344875688259733023830603"],["15605667288283126110684160314424609840229757959963500581607811915022976074168","13200450008551004870070465577108246326079613026214362230106635574996297084794"],["26216849657629431995479426350113208228179303389406038042199999655361699290145","16947161046241918451797896546107312315814972255047213267482900661518457019558"],["24246820767859820237532258408925400375469209694933845124311396933251664315037","10888591914206331701375117655250111152767466382567516997131024714739687669385"],["21624293479184045126386048746897582842666614184820942573017191977986897751895","855348911898651284060904816449983083899147891076436199404232132158235014071"],["28060645003428501685824662092752624186179009423195906609193699599427679507165","18355934550006064918870623795318563570621790837140291157325322655059266987092"],["14229712666724001854685302072377868242375196244797794636844488307428582534592","15909866110187733809341044397525344669154670047349439762990084873672792780749"],["27188054901740044005617437089433709617234599788124790430864560637180678834626","6825462953476184013918429252136333902164940790537149076577095349644771356140"],["4538847293490475920969338226571428071519845393980260058539915652942679734479","10058920978123583885716408386098710246782734926858096582834473743981306746809"],["10954635877441872061675755125023167127995431297010795443437536144301802443948","11775284551610044013397107510655263518869841621271293115929122277131364420240"],["2173466110339474475369918349764933767484521658841513983334569913582873484774","27124975059574607355799711640304434916013850841654984632026491265530868854439"],["18173009195312999670089184097520048150685135720070594624842840165314429461345","24171067563927007651987112368305750145678734246009507581960251547341631917778"],["27955260095732153417249351775977695385254260851739550276111999465650427421207","11388764509557014195047132545079656129495618737286153910521400333035283155522"],["11128281794860237222351916676366240642135777700260294051590963101940671855545","16624225851387006128013320562117858766821546287473858273198343593705913866319"],["17667832506027455827912255767506786823384362805578259887061665742494669690324","20220117764830680784665619394713124623893156624872233456701079856622330190081"],["19473843967926468140454075065077194340409496122077512363063035447897315253819","17522324340056351052025618082832119355684811540925397054578642379273053961171"],["6117010514028640898084268994610622081303887661201651086525831023859843501390","2731854666683959193342480576915486044755944526401815592589689206077356748211"],["23149410999757814213043505470577633499889860413644150019199251751306745176427","22477480763175286792781892763976110178046144214128486715671040647418802617928"],["19760294111024907361897210077878090737457273406440423319030779789670502786161","2886198604830239616758676615583502465325480954319510212473006148259216281537"],["24480764201769286092674560450492917093748724648714464494115066324681879600387","823889432512850324298026456994090777489469176262157835958730536986082780840"],["15920201446945031413253585394774259059849994566738115944621310397701132161509","11923463897151135344469583046771623312842089249735653520249101919868281146437"],["1808442965594665619293338887519604955554050043934491604039903008770603856952","2709353294726230875284233426945971947613799246149086531996770797682879129726"],["4000490992155373630963605213088552137973503680908818657084132201143917461207","1110677452889485525994121391550683729599825946699813393902366604735461877626"],["23605514605592985627983147895508915005140044630247188230785726474554200052163","3829648452858852157902035717038626082477577644418777779767652704926817301726"],["14426546275306478699504135311214946906482786494742946281426880321792630380736","13894671538268505743470364076392625054319040378168247708323913723268681401805"],["27479751257143873873875357911104097458584362691454693244828513239145886636294","18268173062761475381763710231197472496631311425215959623423316501386451388078"],["22562709981856094793448825462370728463265036924598356437217832273231057662362","27169219689961891858121769661783873238053858707189875995602964493472586425099"],["16877016745944312367633692548368023412218532486722356866599323050474916684937","20207047970204562749597327969272440285088103523817974719310604971779891620597"],["19550591900208807725129799616182230289305513657017244106829249626667108173649","28028235481594494817087710619386311966765537420313884727826475485212712808252"],["19628078827780501559008787919993941005845449083029765062662883144394444290973","12588827238855983736622144542650409213568322680816067262314629686791376606464"],["12969572359817260581243906730247646189059481580050337140007476464491210648143","9294156393919751866607776572471113586816779647923125390151877180621841664666"],["17413205599176700600463111659419720073097404473420752852017729011903174775479","11815081258905008847367501156175530272490339406513096372938803290823705732530"],["4869842264819708395680322597486417026430948302693002549302731728803286266759","1997197232619310523012207041419383746823803296914531983355419814526703640527"],["7835009278878058758226085630539324316873724038380685389777781863045781754031","11442273849451772527806097462361451207358136521277878617387489672846813568549"],["5037666312850920288999899432592304800376603437578267310215960270652379211401","7664114172015896229949321022239822611086958289564525183564233955608336550904"],["27927229712272867342929057986769114941416922863386994021213794634578358016112","3890898185744841950749846130690184404226212578977562116462685289998192548832"],["5204247667912882038015329060847554308758958552936405008848594402437522042804","13169998857896125010803286776039431574398099721576764885999299291026151904460"],["5420474443912046439633920184649243965078457050616407235248642239258968947717","14438763030349796181760307782693179753142372032311852590054946392634014799016"],["13133109607286569464220826314829357246206892577639839555989207274300840759976","18205775870785930949581483354132764840172109359923439894052234609186045554009"],["10771608612140328599305109925742504178715698625410005642312538772705542976437","10086084544121164172933488620816403172619607098631422116145925498372020304720"],["12908934724438478686404152915210161913774974340705844042515619099942382391879","4025018371081703971388711879454729953922882753527470178770512936144399203088"],["14759106418226666503076914441940714699425196796528706913652112575397370719352","759111512884552330235885424945997766684721895846415423664948830832505229565"],["26491670003829343359039684816270122613357784915612507756063294065129024584558","18001315292110001186225914230153450217424767669929584484528613997406310671054"],["8459806924443732259471711031665965333973469349743707503358625061068737601830","12487151180222881101014364102697079004973733399163302332391126205031850051063"],["15083116939925404404958585938916907799403725423491976415372915692143463241235","120860050017632026102213809679007491247366205598958792605033070056773839244"],["24597686466687097141754012567053529363637083116103687965210139364533523897295","15421618543053137241353244877712515867497666783472968809600612314237913548837"],["7013701313429190648108692718145596230590758371702688077810228336118721214540","24636372607229539061772303666083191702117245646846032344611255689287410791424"],["6822962513199574855052602901828078804181035150424013003344052567280654553075","3156976208534004755428093071006753734866451020492495388969105788507084643876"],["20035919875279499782253322394780939925158442694421295746824471696030935041504","10715629177697629204546761377789114411900929957401324123018122321503413664726"],["11122404958521498961348444072483857001713163477387080545937740113361841910705","27945437694512428962361051549505875756088938211308562686760043711025832555535"],["14375596131905027738767084186958077047082724944121454605236911981523520202033","14027343109190601779840353508888376410634374961835215670939536735979042378747"],["15845081471243816169092514927439375882693994002389831437350250117170274793539","14070770107986231333203608437468666379498697814753732527069965261512762172769"],["6839853814192506706939385870745420735289078721955849830922838938895156513511","9363398225202510784605349114220462436790949401071015779023385731683838133296"],["21085993550410682404620836247167567203892759130106552120842386117663278111823","26060409079935381047264642568901284563190193748233300071537656705649076660013"],["18927346376478915262252024980396863558106158075895820258297103650611615850519","6140577805855846662668936309534597311411891270676477294302509221690476639112"],["11665618555504487141463428047582115725055727387306457263219184816359116180935","19347055463442280924129145036764290223210947059619472243929360563785726105058"],["25768370236010875940522660808280507660348608945171103258863155620069367354434","25318833969287018549497999101387772519570751501564968214407217123808702994681"],["19066372969960608190080988510423577738168786956652454628736855132023094000544","3948317598776822421492738200590208189618775138532654831982891936315905395820"],["4449040124828992243322893755181848662299719961378602996859733222192244625685","21916225161332732710463777878951481953909360449083963645891273526012655665066"],["19802560585861665968775316236664337858258929140229978115382853857909133434446","10073971679315701605189674973999291249350712498412713153720587693508440360628"],["23050296505259597067851084452419368154773140665650334420620963506435326559820","14341621151383342294105833390865269349389076465643081769127257538821240619717"],["4850924111166661387996966721641559842500480228190336183537003433154199550768","8842093459433730687204944453358971646703219902836817810998473837027998513707"],["26063495914252044478196955402875023496462892549494448047247711340623395660130","13230511681030380171654307644895672975483460702626093122218931542257325139219"],["7309128280215873863389922020996394296577819760265857229120518080496857428713","669963852948115931109972196365480344314713005353007898289207247062700299560"],["14501732968871435042721459566259041844900800256865316551157789828892435347957","28312234221441689653691275091854192654176191342785260420484661884036203088590"],["10581903772898167224790610246667214227051000474181556636630658360241307632541","6992755591987548095624839843465099655128906239963761638577710551453070555782"],["28742052201811992548293333310776389300263855522833602118302720650973605173468","19824664946440059214989432858552935720020799412997328719795445922823078807541"],["27373761686406189279873388773209284376960325015596767778205631963909165899147","16964192912622832952001512834944438404484799509056611468678014574597504747857"],["21052946961323588418502835840855874625793887193925348890347684559547192728399","6471510877303279132144039543023001521790344569608616670652024787062289482611"],["1579475830168640832394474468522395125490073056838402540761363894715029960149","13637108134346646538026784030572359390439468008234527811332886631651759692528"],["5176771898567390812848827744999158359610922469468696145885714389134300447382","22291528043145675775881499923253992156078887113471253488792714901870777903679"],["27496512377661631188546028332181446993064699986158441935436880106413465350038","12924995171700541581542091412139870886059642737860114609510927747447652598867"],["13150939816294287575869343853983554833884303331977480185897040882927306652955","5870025330682021700034793867536711616094828618939606227990735785856188534364"],["1155970233634140726169704920001697554555188002265669897212584593180120984589","23827333578588414677207123760039372071957905942487962554670958828866188677859"],["13881579368818486017921762723582654660811207306103309880158897170642034509977","16095245846969956250457884435767334518322613242073434281736952348056010144723"],["13679786204684054066241339202756944856757223462359561264011738629406757223960","4172212588214081903303196797925119324399404616357492669761446308995827617902"],["7278889251790427714793309233870319608458059545761896363882554064626341610968","1872663945917952356545864686868872650133095949258044136441097821911462047456"],["13557290579562946270164785024824360354184197404941108377983246233836340054626","25186273448731836985379917766899057839725733857877216916663376315156857047824"],["12089001627139201836144125446390831373694177379105692823388546876843375066010","1948750228798227795698459996397530401232497824852102601558670479523871066825"],["16901076004908347077640424869644109605962716443708367571733846826297307786643","19117823170063107330354920415253970944748401219803116753844936261846347585976"],["15363180204063777988524943410624411054486461615068945795570339176340278133776","6602364462147637695380102665033032601422567385001046168863744678061346961688"],["15954543001895280091253498045214698801728912672014424573912976220529479073972","619518153982372475136320490539092847677506225322640383235786964606242232594"],["27226856295956640808875475758248098216102286345888132396949951499793621827938","10087892651639857798577742282153073834400528362382710807210810246425347829801"],["11212150329263387848006691777657828471909588905739976748196179438513157844057","23830576805598341059422350285134914637113931314897212308307117108184578856806"],["10856161792943007098245202433091262929003891683450520312698504028925911740123","4885876952256425210243781079008386176752111677484904552684214606784433156951"],["20444667092534155995748158042945855791873972099937278404407624283329243791828","20011796799933710676334227188954829740976173685063288870281980815292122899531"],["25473905048040508139727619434019275213514445210534367726576177761520298698502","5507383618103571473975087949812379042994671728390876057859771540482681315481"],["23176999148506027003325299809286461686524268171910715740648178788799386065142","27724114536165525492340739312387021875449371749815258608446969670970550537726"],["632916953257488213884301823984041499178024412876601843053260682410841992004","2473025322629028123281770258662824253936726787401526931552660892891847774269"],["4927622994243763877647204638335133228979974645845791525111154716972659644560","21396474543318869428077966556016756758260191558215527978574187975271709681830"],["6680279231946964271437163292735812810879845427119808106904517244515478438464","26443982019517251716610887186868139656637982759191856704866974504297432955143"],["3787646267032773024312329696225408201718534363068867746222049501834954529602","26330940847498498020472296743809115593316314011480346032087079806459737820938"],["13213814648068167191263548972809282003057508720246968581184584971734866350981","11692788438753210991618397200877333006376766144150779057906114170501914316911"],["15130107300536916197490746178989424724071302684788366256103798446265107536092","11055927029595109353246837363493654748012787284093211669064066689311454914910"],["9034210275724943362756953317290383282226572401857610172056288545402506796913","9784954141619411588088653749517308890636770375563224330610070750456755916020"],["6823655820489924659790957345254221487454882984960736039850481465049630617526","8049842622999132017103525662888766542615267349298611552201113567363735321845"],["17384729706425391006835234739258934944157585476566624247147651278679199186124","19023940203359812376166411647691704215211578970428731031414558963948802630764"],["24724197791271563550875639606123693712056738184720676048418603502556858007047","8010829961245597487604891636365796294404591540362793717696653569019864438359"],["22444391678899738085641699714354343193770368185499543539031680497252428997277","14537718328399317557465555984716641743396575775399580255609361856476240752674"],["12144390776517904935190233959334210826551418209924831347469719562418867063833","24711356731700417252904333725532782345500742170494407771628031004042705130227"],["20619411709791734940228622580009695639509315733351300653922576228826604233537","6295035038039302043355251039515973884241598608741030946824735757563663150331"],["4203562154499948804137982400591953687121301482900588134834038284507957728682","17128900532822991308888372743824824659574946337793319911595709112829705188355"],["24807227314501491143095532412283794549164721766508588430266625651318696840279","23580301729089652821696898966981385722201146357010028417511895214845589045341"],["18792447773966064500982510934642134695080339028212309511934507193896757386308","5927647156292949802272756256748498202422989656315113681870166958802846720874"],["3775238073789368132631637035995393068626057590488436193243917163643828559009","7915386288991124708905742509831436201146926156717998884450110472384212773812"],["9316965703647729393178663717261221025722166336136696845697625238578224020205","1819583606891831652173749324163546807638032207028178154845750681912023582549"],["16742280423219468475399267501021650624238545757972121444806668279779476156378","4089630668739789215994587224463164255354624012525316397308077059085125561091"],["15967725961879323386933114391519723786164359385397447795061085316610099190242","1837340032864212442554267438859749716419112762807468377984814278167007432499"],["5566858404351060797730164066936677742301190900498949843323147547298544275560","11727863799209345714176880364193841830925863770326807720149192132668395571304"],["15219165950269156601468151174980358651987072770112199386474196304251965242322","25288023043409177444958893228656203505277015402561311264483598377529167446156"],["27255473025720886522963890010842762777408782754797727056438296535133685535966","2029002779901519466915671420096650645572904244211726384046014923579890372478"],["20247033241046056588107454126281106408623831670662961902294318144422983195455","6688249181747873671335904240505581118976647076825359871320715593160199340543"],["3262644914828744433212622437187320380573800532816925134920115024581302793807","21019499707821566527658622866374618889617356268863884429123174362070955937474"],["6489987517467501449833427213957351555209809373822511968897326365805841276287","23744900730859119103717984591853219591173561733764704295602189017206708069797"],["4810356621620714898708854331772911742554253965552546818589755991077567257599","3893787517252998955944531485049491797072381235000701870779963963633157831450"],["21306557605008479734266751648799986805854060282547771993791587830509623776688","21814119368635629214328761724867782989007186874763036755908634406652014335471"],["7196376376923557207173263057696043936216707653393038172245981360376426361544","19465364849040471357772692413962966340535037896551921894993101337557429383730"],["14460628606309363373763548099929125014752833836381720007606984373110462719091","12972359906487829988530426868597547002921286155194392091252801334195143977337"],["21447854028993592983535321456738461287355778636733817470115700815250092286992","24151955179158940443069532721341521540910546760120545595627388478132404037368"],["19859138586006719753232161960240403640309753626684296253004947745715124761746","8311627653901342817522542683358367276936567294747659984447179863283960233583"],["28365436793097445125550282842473171639839020437251414179720061123493985287293","16493302828840897247495649901218295737019534576632821064640875776332682522375"],["10787411498517549885934105471291262868869634253449580287419258169223643698065","2245243020069693724306744456622501265255938470569924184037412477328823110815"],["3014609128413183659829495765565559136803603418854070621395543062950859445050","6857397205645307057882971349325635754923570760159196358320287345552624110325"],["23270038597562867690811621592072093622838545082301554547802135097004216653811","19380554456933181316391427402841769957627800995832472841916023868758139186046"],["1018402452669143041621085332536571300983753152485056703351970180531936406229","11263092863453611415573653359230550530671003067529824094116362989036949752244"],["1724060047109587517937127677085581134065280271382464307779790161674817950040","18274694351453234724298968680581678275993724258776564705084593335189720548217"],["1529624699051492545983631092519448055318187677742327019105282579993957298371","22676716887340116592202876846351552672357848850909660264970064635221027602098"],["12250636551788215689721121762890054183711887734986989491865677713160587298216","9888058182903610956604943914979912991949786538163548360906076169460810150601"],["24852132194195702199434237319462384465745386526582576062124350502032020875801","22427856400975037368290668893484987855847520263159129955676115872064628277767"],["18542096167081367337783868344358522721869240334503567430231556622812605934389","16248008547331614173528756595745707224844403221157118542916380299464411997163"],["22960103836123718485909091127851333119193067277100081707429177913225602323095","22325522673114418332808926144903343304983755808590225668626649639081583592158"],["3669097134928833294960017620375786506035818169580894295512110987496901250605","13327846766214189582205804525378815101040007767434913019222333735530132321518"],["118976155902586162353139069312128109972518542532495174599792110393383643673","18860980158581664947144632860893148155426542113476058688083131054464892034422"],["19831546920952673839826983143776033657968944443878836516869394000176432242602","7539335484893457891085807000290039568820570552828196736819001740257886737434"],["7747155963090593329241833199905916459385343307688028569508795083941596201939","24950902835756141073673605456291146739537214601580276425367109634550612456602"],["3990144615418107989017613295674205921155732510052302971553127604531372697930","2253043112582393473263831954349866124801822950151732430158976526151568302640"],["23597969133254192821192013324574625635680527835319060178216952756154505870312","12746109952674166912731888697760562129655654687842332425983669344168691129002"],["12892551152241481723296203994153926850708210705568605713315170370691736445541","28129511026186590885296792981347373739385952339869155342494361126724422692227"],["13278917747019852508377659677505737488496385552593940773659501531081359091057","20007773595756088766038366490592909855863026754302170999614329096655001678354"],["21357999118692582957954522705923227456817080882180856081799419740005640435073","6272020509400699638118068483717651390285252021738121206023787716997063635761"],["14245124849206750455419416211499276095780374222727261361088132741873847342752","26989674382157722080974009609424510560817443225756944451130106852998512173412"],["14349109582372445614657107641176991635050318205621108910550181586742140528636","10734485708700827236107428560595477037257728367368262755286191191917542588885"],["10516991283082427171199002611937123647743229708058462152281366952536148770537","22526301061351954754854496044052241369347109200240356738954751599205496002773"],["19827900690626844827936197799064630093304252313890545282406468486283099622738","16556409464761700213692668886882069256844676040834875028620430485811868834504"],["14074479718184988371549474226669954670552863548858554010270087596918772517795","26588563229523846091981520391510009650480348226048870640145561357821527620578"],["12728099077908658278887291539411220555484912270406918369405433867108597889611","15152045948404359282380946076932602032520665127265954156732293327535376193723"],["2917741365404706681481825153321665246612179609929915000500232451878587588774","9807575300632942394297641037091962167412784452516193901396573093966271293381"],["15255259486562214816228401006749922259084365060848501117351416348787052801416","8332929840492726467886453560573731868168552092350243831169092810959463459935"],["5264869830102149358916488478715916605990170992996165663274017045076044134979","15460204810878602109329045122958191231856387306668216337158628544438968306402"],["27822753788370076744096947296705989118750074938204659624058508458125756759031","4998448280659615450005988689711675767931664296439590248971079132360164082040"],["8552602023573901439087963268533201281714874344617997029698426966643316836511","322250520937014201656423404440924619624140939849130907988441517970072527336"],["27960076119222063523398394368049806151618842444483049625616987869239429911684","27732979431981764333397254106098626213462666738482263313789121837447791156963"],["1509324365094598556779605484275107324755845754334022060432751083241187934866","11696868574178203130731969517290045962336520702317548728711073641042495742781"],["26585823447605261425899711245160987557231892948030112120570405443029871258635","9325954905462753053321395830141548460952610411404431482038794866155262145959"],["1234322441426617983676424532277799368565545725333341466666034207385845502872","14817991756898325217236183344514022583905479954903319846933108105192757579296"],["12991870896604308188732603227186760888470965643236710959813630391461618704795","14093655676489862853977757743757319984739847615659344382798521850313367719555"],["15582373510743666015402172789368152914875040209707057993812276535166769274122","28095323319501056458413028464202745302957725409727349893998952533775805265831"],["24402885591686648937691036503952432725414000583231719947942639314497252905396","1725757047204345871797567876824602517501381299476252981127313561564474798046"],["10993017091861125460352837213286449627462430403826026504406821069016064248778","18794226814490577083089703962172787077218009287401221947885041823303349552822"],["4447690256847126257231832603892048857785911247551486549352345830114723714682","6223766649481273899985974747587307053976886312583351396444388315301576574089"],["3445994675013652017180363373294393229358108585137926568178116320066497606600","208031595599767217550539998026238913037522651427058719914294104593064939199"],["10840970518441194290343953125451878823566128866276488399670647713186902790033","11378538047476344125119891663780309031625738040400561464584449370153183329371"],["23849640348722484435833284981313573284017130797959619715585775571332540018877","19371119923304581852757867699308414254432176770365333330186065766533150892023"],["28873802243057971400277273443423100152944452508313319938197185687816264158959","22860404325691701622571811049309998126611716146400968592583800080302163678726"],["11996734314951869088249718168457570132793028725452303714494850024154009030153","7461047048257238329674628848500912536735527945586836878404018812303834642283"],["8839827969695415612687546546811813834249357343084159178253660816621476239020","14076469255319960629890849331678842419549339544880540806429488494136463806773"],["16573633469847742516924090198606861662638129971681887955106468625033485517573","27537007686711661071082478588979614926272926919103745354196889038871820614312"],["4469220405581843841792648966103003502829116518343557972675191015241415828773","15580789279145489861251445727853393486226642774664140784719515108963756317740"],["15908981377655297551148209003585293957264900252800838195265272537052761935197","6408047058341416289596350528166753400679449002858557685294389983553645293218"],["13616115480875577281869602508983317403455475857164653397510734980344297819186","11328777587974818085114990348574797318746389615112398682178403349614395058158"],["6591273294053017929636594387451311015611979747397683709765096599367632941973","1623972768892766731132548592470691665145289713910117729609927161338109113361"],["5914735366242609541180501334496599668319695786322621624382845644864413358773","17692372470348586520844330496309631018251234628984772805417690581213476424932"],["13973710104348530750385203272773201968329586764438611680379068483712580137418","5963375515535761761085814810417994640100635958280653757752832921972462873303"],["20189150551011538158617513101670330193381953876989276447643396081182900227232","10752692553592889417464505845348376189208569374883160429049163797529020829337"],["2232431939268414016590961633671272187670160711125028965102013019558749061469","9649622533935112611010041268899356954307825605287473425168411585317156310039"],["28136814290306302333112412296656278066587083553485965414260494120116176582473","28034650764027208330431690555307237926339055476454610981669256788718562406584"],["23476641556230165029278957290960829358407581127363541775210146675479346583033","4611968052146940758741875022810171041081388424757422426210560193262673229487"],["9444458770327503400658393471053607959299998650112983198887394371430340452298","11962879729295684645090955250744500009736993917016838966339935200368284052711"],["23355136587447257412735938029614123760722762291525336561464804848435366807216","4026000676962335297995588336336500691716652409792772153791815600978258951537"],["22158692987884879361381618544526809356053364631572364662859203159518126346228","28229567730037302749744547357001872277918278784908075700193331566045562955659"],["18085057460361151711861044272799216205917286487326617397245803165367654215183","21683055455626085403049982986261170060383927029969541160381656759954310713800"],["16917238992299295645886874931934141713805218417474956691053803934340643905763","11014828809482639893625300415495870715641440802367888775954333177243119748526"],["23043942045230156591862674375754352932981597251852468259014911276352866995320","11851424840901376038007083617498370425896097508634756955045197337142691376468"],["2581507269863349950028923511146669472654600929116659432684356659673545819331","3807633865828672687414420440432007471593285516454531297093961579737992940965"],["26653041163689862244934757435652817775317207984913301435809178074445076590382","26872911338817004999642366678880297498444980068601862619932185008570053607683"],["15005375051330515698304029058977538257750822559074784362340316403929852368961","10413382106407457509412166251362695290402576774543357811977378993211019917698"],["9927468227302238139829333696618797969489220397551994814169691225613260538597","5759653755124555632008156780081965106997969661205013777812499653547514800538"],["4280685514388102331979633166812227529860994388093556197595916035446916375167","2081049059445569065955477771672241640448825609424442639187032200582825027982"],["26648582844711311245826306068652588906489262893713297809326589171108894461789","7276374488694784759005301747802314236747712450606855523053839558773645058215"],["14064456099028311713985260437815314602080298324191759433884632402241719297035","28391087602423152299317868549500591368775057500002633589783603602070855394571"],["10626012867788329513985192180402448418036098469918243301806179020972171466352","7319814746363753452284734061129849571170582908090425280604067240389692860257"],["16468663667960782331988724295840762007683408240642637118754361013585180245507","18542730401096011624135297775007159759807739874168258309215195462386093740552"],["26244318944683536122801070564224883334725895929034533085550436150916376182839","20089867503265592298477342134519996046577432306932477529713095899923674275475"],["24420250091162876197002834838423190923153347396009887279857161335435405259966","25185474662649245385630067861861443207192137465947619561756839151085182142620"],["23721399410988088555541476147354219489204559163256549612030416585596596552074","27679996317513609414331078290038403211211371688217332319860628100887445503861"],["2790626279788114894621081283015337215279952359682469464394093889765942966153","3055853314723953652032570543775714078156164858633509813336345386612837149859"],["23049752795725457889673737589694169275682647964073265831938486359773237020401","26072444248947172130446357558427481071864316259979804853682441114377578155954"],["14085332861040337847418634053507337630003459247149975570191691142251437016462","15538153364740651862074771559790983831665142532871752289389517537439698506574"],["7567062494887068505791463957573036703859386654235479174814315725355858922814","2670069788898197100948368985544035662601072461066371804372612190141445224764"],["1566774376329084683580604706054926184106340181936748994033819095613430227545","17121104232302067699554920635525731045272839073639073479121359269510375525832"],["22284486703076686277241035707302052993487805391141865162184588204851900113206","6417083949782892230964398623196359165928764719998604861893629637978543373156"],["20485833662548308952902281371961906210731532946961879715922068347023443713743","6649706283405277245225507817098292185084202163060861756354545269066137014458"],["15498290375500407301818013955433403428310961069057647924477048624322412231388","20950647016623362518354411618285662593302525392624418201914939929066911288831"],["12996069114249404600535331186864798775216408109147063708098362562350278701706","6872707817540179862441618672738408667147115923816664274550108497247808207885"],["6571701403971254446745154702448729806368293072405981890044250850775543607252","27795391897154656384983179046271017218931063122652673294300175856175619438413"],["13741613611179206012366811547557239010868683571394614264292832863500990484126","10709233318516320467545121662510775583954606686864022960213078030059480203926"],["27503250032632922428467348229526275492741620048505308321378951980313649310372","24837070589653476380247050809898092024271505105918747372703746767642185418233"],["6077654429943152617460673268164723031711789661983295659361073257463513238390","15467063899257031176773904127078267500216292719428247346632408842120014802351"],["28607798543862756779745176292735430729344199079525855757513219812938016666556","9253202203399854072001078773103254451603726360166135748218290345250437137314"],["10708628555413449228370759155964559523420831184100808872138418466884917295949","11907272058796767777848443326245596019494270885006177181152515148354456543485"],["28903030701785563255066688907587396648281549310921970220486118116596113199824","3035034996795557674441329434494024918546166133232973401068951531776060027015"],["23955305369867333016625242219430700279602383131077242358780210645825305039197","13887385975400622307437377845330998601506262535660787971442323749005752220909"],["24971606676949528378947060329346182596355262420203786324873557865438245141306","18721565075316189881209934871686482910074020571329422309616829182044906439764"],["1451794481499755074594355929203425156091005748542282000079786867549885951576","24853858633709027965720710211750824231282364338298384575658655966009839284796"],["11164300013904738857800585361212406631040866051708482350728909548416273121237","5707553327309914228815263738579980927091612285052132476118694483101194631804"],["6516489142767512886793610006914019164739819300220078322849648277581118716067","477158448325254898543867394833173153531296154888939516888429228297157788980"],["19573410913376052480187228000420762583407701806451506601374761423953372244971","25157674010465561558347925666293543463878471417408555065308299441415451235849"],["26081505919242085611379502307761113291756033913806550697770300841706961768483","21422135996050642620046752381977089675737179230267785486600486053720838204287"],["12167781282103279279950326282435223193780195238265967512102049046401950300282","8505624789474127203104965289673585386918790528118859074117209860521809642345"],["3311986437121370881275646192731769216435413752387246285495644586318398019380","12117026967130647951054763641740302140624814780555817207953530473744319329861"],["26787861348535302314535974737575989355163125103504423631362025012664286871125","11064866827821272191020231707163471349749336977389583192595816306340469091640"],["28716051973075288460309156478656915744973824344090311150651706552167062019193","15861109016469543827601200181441346944670098418412601275934619962211327930738"],["18534635663871840377977008186524118644004985369677158432245271151079467567417","457235415028968487245594917034869182499602294233493823748822335188137700986"],["5528018180218682011655604091313935807488338627954264978085980906167713042875","1814899603304223883114382678819975632345366190532578182026607331933726505147"],["14976421459999721737875910699929085563900923109813017883163945612830639910853","21080633840613379957319312401167527878522764038305002033093649047024060256106"],["24163246343321825993331860525110333067905546882373420355392687452191397621465","15623448052081036026465844227997928413938148852293910281081920819648494639101"],["20598710236630335690387370848049180936771406713188560505157349912449040364335","23290656605955189669596471169079112271036698410033148679742552263400785984452"],["1696065602508585582575011622589469996260674848147263769688474736007251630499","21438084276020378071848339340414179089502477917817453697990218896252213454772"],["18034509088573353507952431960881413100912718522695987004627304263239779987218","27671795058457783675102470639701085832693353515361246332625644763106865163282"],["8508171698807406391717239423860791863150671628008061503147151867869949960295","8216488840458345193133229796659224183575378831628494349835908807532683694876"],["16890341531659620770838453827240349856656209593910718194457522999831733089814","11553688698903151680205754562076760323077612193595547163031167464681426618706"],["1088223989781137059523467931217635170152431898001431712017594198358502683769","4141928153157288483745777208992501465905033266758628008774339292347934665212"],["24009481858525284498428148754890141650055634923766358540096128283187652178733","9705193042499489959291173639747644602083070153345757292379459847114415821080"],["24760209336404019654248123778055293491987861159955650413136103688878493449335","13764421793579734180862826387718547552207529335431461126917086056813905486046"],["6824783044387305900977750910054225391567776550019123398679810407610644271112","21848822136618835372670482198629925665259748301514923972677136059862764593115"],["28858566795834550176465612019044192865646440947548682755342981032696085667726","2496906999288470161913338521785945511707005842894296576134059577168007527432"],["2443928057849697511179935871455594405949304018363775134271275728346455915322","26280379421685229786307623798506801700801675148984072475936844290148122727626"],["26102419442561546506864196285043077309156090450235843349279365792423087591200","4199173769331325936353937799674445945303122464926623085018543377839466231307"],["17280746368297555430760581101779423688438857100982546292119295288618130716234","17508181444632481203164461336277878447931328647305166161339550374379428681823"],["18171550126546668801525794854384402943747013580618294412954973237382024548218","26041982574202361838948868755748022754647548301925086958023751277085399558942"],["17915100486916641414541391198071794828765665390278113781320826748388448843798","12639257981950107176748828124159544923586199706069080595326321178160072538600"],["2380182540009533168838138267447922406716627801514779458518897682384448012181","15900485671186334623424913157504885046228812583152719500260793152603047576377"],["5821801918504885281081004995864133853611933890994167955523520335952904600157","9684012697483929019990110224764485354734013839473886613501527274339848438979"],["26294637953534225998602193162361108039417773888627322676616734677717061961267","24946731060107771860420989687541125191539161400874891289449999547015678106392"],["7619566046337341062112861933122398026385977860642907031981509347436327267139","9984581747277852214028533640547727867425813300517593605697241791676239212903"],["22559195723831643549083125858726072773144604863686959556932566483496417373312","21980327240806616765890141149954673787306987907910707671991529976441309921354"],["16865725565133677287694008636891643874047767689448508455009924439152464390793","6269537603631079416379920596564880926082623354491162183664018522585551323060"],["15924867228648418941776204925460899307164556661628031486981013222714437247868","20470951985295410218155822467981481680729501356618691930222643550156081281299"],["6899542496923494897347199717734324569886206140862052298531667133760305023117","22251358318616126263788799636512376182819349508572233521906577764037325795735"],["18866052265821152514849966536410305620181929042976741578734165132935711873388","6408527114887926092049868947913375239804567022248617934482641569558598862293"],["8599718744331928428137844742430387996398101132082064048523270654210799523122","10379606380613430317999356231224595144126757683894177036684239696283234758243"],["13134591307674888856885454773805857939428764944846853350476308203214377692416","16575570902370689108475489439132891037494026861638037718183201714700521923955"],["15554673988347546398318367967891618105181837337853246801508112589037316500989","18515068840313532708335313691703312370773767171089711447959337602989467678054"],["8116560448059958959109197649620557422062682679519980397727368777207126838213","5897508462474115645354304730878495827781349454167355067350315641397634109302"],["3752964069643372524505864529357811871409636104845426680256259076067942435643","21593371250384215511211293508750859472879891080419750933052431259387663584813"],["28860781844451299436352683918398139980299274370933148006771323104808758907172","10119816122254016684609571995404404105557620932807733192250517088474248354147"],["16459415572669475470737317086695827726420150221689623495758477746119514508702","16816615993795921051157087682013615003049335117361824175174355153796252691013"],["12252042757340467249857412767903164238218789244010274286623450551390601059159","3730037112667154418416674675569004617823286128892879180214124435418166191586"],["12148874234356604066655251091080489021730336272019694216058532352342511162833","13342981198273452885432853503691343380743577719422355915639545471463064715482"],["20562677731804572494541998323299995910038251587520716687777523541069166325680","6185390213339591612946571591437546511312158323557975632270478088154243277891"],["10084938902978209392276174448816224135948313377847901564934761771788378763883","9313532075963070712312089548275830648635744774285235773431999557873908321645"],["15640870608270604899248798424764752694936727256946992754901345714492450644693","28916438723118887033454510811126534997711166249896811321647028863506729375285"],["15238155173269831983960973996366727223887680459773486539654209029535230664675","17196262374259652023673965935157708534954850834567094260746879887662380117824"],["6977283642642344202890032057525456198205787152853319248740073340919530225381","17587355667645931219279842666702489737871822811595355005775001017666524300050"],["531114923902301015214407989350750316971697835200111167942020681458486912474","21546071496059378861759745027096683944582515941897162765453599516984130803954"],["26355613314260133589793210609125746244258420040916474671445585245968532796075","12868079521987749623265281364658111869774594352944851499433751232596209929741"],["22330381817423360260994737653705612235504463285296460013053140252587642775971","7923516737959045532771203101856614298622954502642595493971712184933829498863"],["20875428581389072424533786832282847082920531383690308955385538510599462255778","2298325589855505473926058896745992011982992575677763223310683772487935714873"],["14201109357187039090561585454777743337816465872448956075435382594470834611595","28587020029715603562128972446768920518106449051125388421093918745902954280260"],["14864575944228482078653262970334673847862573204600231346841087621281361138322","4764344698628827132093884725842620108502541175790449880020191701061361560931"],["24599740979162064078175452595277585735552019935307459126234442655127097190854","28582847212034503571710711720443237313897438050952656145839499355716130455661"],["26364643903100607043121834230693684307365345109886843683127007090708607040282","12721966223898595578078505293153548589421044547385233330464888140393531983310"],["26724904335383068308703741290319949076347310863598855638321155713520749892107","17733438885936453012948515756594360844090367624639006010299080159993866607194"],["5159095687025807544291790087997904004688597168975596260965056927537141206966","22773191220196717552347229554904857993481175923259288916380255511776910518766"],["18002896672748883065236304059457869347888819248197409399504020851318956129488","2326669863868429143187316438822224601441906771016256476306450289463791629469"],["22336684220785741271601859446913005428837558974131134005895893351874794592347","6166529824956044765964862060914497326938637743413276819487262236337753283552"],["22413080095311303893327178943113344081489756884134111690825558948308320110471","13207752246508252140613454959633752900744559341068510896728574347436662889104"],["26514569759985547133261511919149021591066085388509476430957748592533182182266","17586632284563295040095490827115222029722812011646498198418314389954183879266"],["26291425867332894947789839544008826055765336862946750342972081896474393616729","22298528958841328747597269555868174752893154155867052139230446022598088476471"],["18715857279804963048251066653247382265487569867962210288080415199483656861119","26672801767285426936551080031442208260905232560678419757026288719165125690206"],["13525744571051300232512612697250074598608871789844036447408656523169460084298","24177481589326740341631946145223515412297888034017773456357969112324225826525"],["2498246612937581890857253622603628149583003227853319231581371693109153911779","11340961775026528444174419485598114175008323659897021833143726019166243169099"],["10831792775871645607048157406767884044063356944723129830882306867556821596230","19665025626721048169540656198742588412686943661022944555031898426467884892797"],["20349411986450275515313685606769911996692668362218765108347697129631032429583","25692961184670338129237058630221108114043689388518764666608056705469076474499"],["25042314118787648855619764506047825808638541412511602700974043325823379832003","26364530715697538740391840218636886829263240424594359666557989242130659096566"],["12646281199977668995280856943275942966515762583747721873336151016683283762431","17692197537924920697985495911722930594127143641546884597510157312438831504974"],["414316680787853131338997210873122957039738371525406778092990729710166927233","26422816559722503151377118150595619209377323041603265682487954673595254152484"],["5837097688891590925495439250377195394485154502685022340682677472472593590283","9557733383745737780387607492297765292085774577657707066249280458583591675192"],["7126458545260696861946791392688308737229227916084313630444072899052519886426","20239191132711164632397833835574607294690820123556161854648973271370016432907"],["7641052603481813962962206896898374398227005586129706755436234414390993071640","2759197647214113445879308070075398923125033785226666321502078483899905530416"],["25679922947496572510160891050337380688114534596841430853373244334364682069987","4485711041589434590460006458679308298497190269263758503823543407382136235502"],["24084833704421670212607140071756231889589307934961047090989762301511788866277","21822292873835249415672941390212626754615162289815401801991457922323547173104"],["18629505350768625390528857086083785187631475769253320237774910124782588012026","25718093553628759322810918879201115632658398976852462201445244974256052635587"],["18417412941150124923934886466276040367186890537746856664079232168510353437837","14865382072017329356656100532032882269177106474835762257599305200470748813383"],["9918356641938156610074633611006128172184450265114680178647988397484093384836","9408519977087015362743494484587941356076678234737371054854364738560312656706"],["3814378151226661203176860970583212339530707717062146411130507553584330443941","13531652684526933906204107814580813128771623296569300011599764910169469942284"],["14804084584868037588172386392731612250204112712607078216796080529310658001731","2918620491266688809178617577014896147215937329779031183936516551332746040694"],["19357871688770525763686887924915712324756103825274154578004920606549553895735","15961559174752081548609396296577540599685765594532874564998178353504112362064"],["13583408804841023246675773429439096899317311184567777938900208042896850360759","5850601238997726269680515121854470180588045687105761168811137175937035782333"],["12122167907338688245081502734950848650569484388694754007551301455933005095070","24028029618731873850821660802878761610062780480310351577492829688629724461980"],["12381762426171963776472948370792660039022019362594868588098860628380524363443","22032030473300777320542694050017170956619877874467286561722717528658632197106"],["17426025530046314475430476434665862431477051383536969245677309596138984231929","21975399223298452722220882703900772458629495613357439189386052407090362107524"],["23907813732311838751624012343747499862402453519165670265823028633817802440136","24382199325444241901790892580100181441182515090356715925928783087394142255153"],["18054697129748640093473739656769261214623942306376134301285376360424481079102","14663004297889849996860928306830478832658978504253495905045092278337831143453"],["5002219016694497948120020091138308001146189325913091807141244091772031798402","25805678462240924959856732613733346009518402636007945357411837895452731689413"],["19613646988996286980191830017157850772075122106208970954799087013791288463704","2875558118804366597444677930343595087611183973424239874441657902006275811621"],["17787826173589860976700999528296722649489413710579599641559857077303214932002","8694965447925070270612367246606020212439244772247623410947615489585860416881"],["2100628708753941325349580595301564548762293820767761511971693416134037215275","6483744349380234188327937597475948565294275319785602450279709417496110905584"],["16710019225296206756899432121860084115270790669989245451165849275701933564178","26369220983944350737175809491291873743005412622664605736789468036938721584345"],["6120583262824453924009931508424663148574546210799468937684219761026930983697","23714274756274308888194035860807552020093580389517444030406284690329680639547"],["10190066331482468289283238926846641751530202387701703780921852438603180824735","5833102249070253563033063586183801424236463862296406999384020745523492546699"],["10956957012030806869346601366794860367478916139563159447574033959750489604821","16498547529094061149265003452758335337074273592676036888582201074101783165127"],["20672010860274387617556884334584608033002684412311474690898924040993815396327","24244639528121952239762602336249770964840878841815687727775643436657323730545"],["14499310137649251796375642744739739526475501335062272289407149750021982400001","26744606785305371969044841307900402252559209575112664302917658381457952652269"],["15332501880324978509606705125016806568631364409921606861399233647131516980390","6597639543014332483516942636191781121497572755963686506653665618537839480777"],["21705565557352262292499171544643327148988242928576449968484746376417248942355","9101024928429509454514082914258633401279294355371053155943348914454005857759"],["9505953446722863972326839596019107113153057039663179321091511551553763241791","8740564024872896137598572600798872160750652026370331759506014419655053114645"],["7402534322888554028364671789486327301568323540874873351746002341294692313628","2248971753323909377979737489642785196570824117073577674188991502985607347024"],["22867218315614197294914832825546934067982029620608792958517068550455316380923","21769491710475791456218458497074130071100729564379057059890881820555472958933"],["26740514083378822281041807597704410844475941322966159232073575331675278361318","13216966648424560365822789381163991241723358154997415974779229431061356232674"],["4705783549918573545482142822909975644913811236742708032000081468428489807388","18042351446340036215948715251847569021314400685888409931419322171646704496384"],["13221584628486976166402779815090751091210948027849731040381324368739487852226","23594270708217356441572881298852014915321206146205561226730005649766125677690"],["22776994327746023198356226667628889904974343852504020806997895494114683143277","12422816992323084071731598086320365200043010691602012363480534402070971010063"],["23887899313443767544737804568968590440564568448426377985500281437991288415529","17312544037977534693639280451067014048801736107884066813317317286631153545947"],["11434972590191279885489563005128195698753909879758176338344918302544610787623","6650493766428268873536795591849586721120394543925366291619115945818813180456"],["19388809008032549405188210102354445579069946569665813503038232727735987287543","8821125249113852187344326281757474284390350057431070217092221296251935640377"],["23033517470964245385225466674476301895890124917197793375148057112071313124310","7572249401202451569751396394849937180381312297664573050354277611567515178599"],["11560347725566855739438701452649181222319602189566627761179703604287151583115","15502357320692579951099044382114335610234468702899126587162449128039429768808"],["7440311643045055771992088404723388607953576680323800131644353608566657702701","6000154839593912615244094246356862984787003791409433753135122585836882459214"],["13030721567284019296251799414177396318793347065762928094381745906220082053226","285842357339894406210012651898036724667395316876573145046312150845266858171"],["14986312360470891859359286470463630524110063761613652884294470070150024466174","25327473329117196471441613002049380453872673381445490682646183983343399571805"],["6532003535127513015026429506652557221338559126074924472605212392391891976877","2039248966289764086315690349720677992452327696396438457810485174229881101992"],["13067877525050346048989870447899701325158717111162568653465024148837698111854","8794186735565576830334970007010645905824228945502518942324850435586315519123"],["6241398655475396757570491525806397321668082023043992127332241907037659266635","19560580533649121472895208913388509736861970051105990650894361100268743948367"],["10729771711967012619930440129365740030869580627450794084778828202361985553611","11077693011390937268666599700741551284857478177386549582743059420985012050126"],["8918897718085991337639165714977533058190470277922907432769033537563151761005","24805896391582283287527252297405576943447392564774337480230336679507682357982"],["28835793659735184621282681413513311734999805867795501506035955696076923246369","20145535932947607025495724540675007874665665188540199140986570856884927529267"],["10652261955504431856102672331067147225646473187893360027194811473200977551596","4254803054844391159029524313629669520199121175636176943559347744742262407423"],["5239125069195543455484050404505724999420269486622987490692271303147803493454","26973648011749997135568233592147720360180970804978690787060666578613214702154"],["1043369281384910773886412161097797886608038321705109782537940922695106916225","1326500124564945946789119868277625265532004092525397879322996720904846504245"],["11698458566909248495361699591875404936425540592743390493894515747093114876090","17022075271488872894286522107332595675820366895703341827968785012512316101046"],["22501190305166634688091657317206829051694520169381111449540797541379220488751","18399469616309499915243831859142780122115336581621896533715997175396916905330"],["15597923791539641428614437851852234780398064241918579096495233018393343710799","20248949296338505872079408373606042085675865863510269072022714388994967905149"],["7376004005999735203472189639863252303550250508341412442065923163545873401287","12628154940726933621916697250706778087767425228604224636424597375905391889220"],["17776800760132330105917892294671219554747387375497439065857161682499173503413","19292885094535138311319744109352674747494324222694551492529350329396852305566"],["3374206573420582797819884179456272213378034875909013323942767048676043577863","5545156949777206839140165792950447424062932607548026701915363709927178688380"],["19145037009070790583242836072082039433452744281539876602746070495629649421235","9410717068245357568902246644633599807449428604061051489712544569091373109152"],["25158294987119379517218837930090378037353618381615726742092619683035126032804","12309060340601482630500691338015202513081816474038549733136931061426409039842"],["10627438604004632186223614588562402906602130033896212807797437286348415183622","22620549765940794776993977727603454549586731573352333692556570975114341469210"],["22853110745680613446154125134631968276949158495370350712268817529300757404711","17731562235471897768798446074660937713924699263915077749102619639197059289135"],["26520017584670120376133081577085244108558806955145138307150492360163445784328","18560327811014089217510012436694396249505826421880175791762663152158836790127"],["25172150691781437900514488899510188959699413792893516896439289814878941038575","20957997944213791264401566148161673136718641143811611553331602324680634275215"],["5475822398907136259349122125924397589160235549435414939074353475546599373687","17723064425194270884870340288553678934846170750670087150867066736538765541621"],["9986590129022162644661580192732375657163685821372798846392781929555530459212","6901950288058046249394743895862790116458860999755749041880458299636726959459"],["11965228372634181090636185345052199991958162761531230408148193588409432906749","16931027731135510437400398265252311930102387297229693498961679102800491559756"],["24057394551887490245073369334554040825405327059782958242874272440609374081013","9898389500852435836409634572007814548247879286463831647330808115669675586625"],["3712138716227484079954376414423951994461612408185559283081957144403965734462","18215218194455019527973584621266720823615309400398647906389552022858335106461"],["4817475806551280380644376485455873358105211879784116506441507152041807138294","17533818646876523404595284661351696168522653248072228034782568585622697493011"],["25747388980281288758282101408398773816235211399051814555635185815832069381085","9916050665536325131954071928797544860090953252699005723274089095022924380210"],["27008102547382964504087456030029155431839188632152912039370922756256522522437","26719892744807074831880211080403862976075157954656828136077160581851432169535"],["14309226372152035073512782036687085808628745245378325844622867588455486933518","20977156883475774456407468775643976000635226212490507395631274665060180966537"],["13155554693998829540226636013200088873933448849289355992212341159016269953517","11494822088364278272808731745219039875315643816121525095839143004299689877875"],["1032170234941679720726450042647129882849926285691732046148983044339218527430","10263386268316514115782569437005873600619014240847891550197322721241083507742"],["13370214912816904894635497286771579931070967681462602951442250300328862569778","14239932096025281957333557076956191448626873326802769577915981950093964067332"],["23613408492157918777900737919280253489879224281831544552934943286876548718201","7575075467422997601220978268847789373098078609806659082292444998132864236426"],["2156194436804010359163263238139048889537792106126195384703468511167464260798","15785307735215668756976796281381242954087308891003596299100337137775528929661"],["10192708875304193288374398714286977750056567244306419439035509713881575192483","8473896714020185175496802506930430898830382757629901196699440173864677999812"],["13323694966688140071442607114110367258700818001002688796920437074616233793375","16093133866384491970253163936444060294292016034740763964690944562407814903440"],["18182040034825318834124786654931188572559925992679213292090605090527137968763","15500863191422294561130044279469143733281931129264043224149021097742352320004"],["24911773040322504983810418829005273400811792169577327123790577791276832252178","12596981331367635883297114113034657562244872091125785284799024813844896267956"],["8040244838421184344345784331445910897733036704768671914890903472306582934590","26649378953020502107480637239230667104184853184403469599970600839838451329887"],["6742936485625279113174886345628063867697839755941348788737960608635066580899","9110717854223162439008255106260391686748907772164140003390707782994415363457"],["6010077757033859293184686246085444898073417643374267215864963799802547291288","4983658174498502295960865274817397764540870440490505779584378263308921932780"],["25212417058642359027520354910039871038198912064287969191836029313691069775753","16845357871717732236287999341704404369536879411427252054469249905021266648663"],["608671296521633437161777363234804340253495909851184421044235521458260481287","28818493202389336793949328983799418823237037566100006045906272849795910979043"],["19925332212323755798911815913277212064806623017520145542982195723702034342843","11622208154959989186553225722891950396594141591659543657209836027752533148538"],["5369949949433596279231390497496584203438375569049691317473002416937214447557","14847597540453114344724517568926602430211160644713877504180148278236758834925"],["17766508872680875432089153422061537948806919684918041576279429635570614246643","13475406815225597661001210713730554954867505912000945049818889026224259769292"],["162074086593731314685289333296884537371869526184899015941851315515776585189","18066208992029185415503179359149800036391987045261100858492821346903568748901"],["27760024128472456830231315670697600813755169062613780846085448496241372880343","7882218154889420100611147941520913675325059662114613799162240302640522512217"],["11022362931751676551806055816239045124606740565500479517338970966411750016990","11176610731713480397556391956314400695120561592359534707417341910705771912434"],["9338652337003337124362338730293521067597441473416162220825326194992612457279","13576669202077807120630884413372722836452513105802601064116934023103561086324"],["12968435777549410686496181827444322738291741258710954942679421352741258804820","9419473608334989257930927813889132820089032741933505740985357164726008865581"],["8422097221083643038746922057764349761927641527125875981363128160930747077113","20846964442148128416500824155986022400417808858526143232819097947073833111958"],["4365044086362724917744149908930151607295916778260568481947415120037722441062","5131757518946967832186375508035837518486882647225259156825854300635222631950"],["21156224929356252736702977067411688863753007629998139581598666521939382937946","2867939443180249759105633047299689426310312667330816314820031827015983607421"],["9423049508526122900520974250420570337323867449535203291578515896594992988252","27676926857111908747109214855918254265373683041794900536247197969692305134514"],["11158344587349348770866554469679602681077230302322447804801126125182429632486","26641255191017223328079666041985098671663110451491025964554682903572602003265"],["13148580885383582828772249230168719063238973107597905193206835549591115257401","6390625854781717481597638474139027005876521716982723922308101932208611250456"],["21827921061632693783068019046224462659595273802751942218297715595503705957652","9912812199040873230107832606827393360816426032568148829933655680158032238882"],["26590610677599451017198128600033107394488710087952661960640738101973535137948","12836087963992838607853247922401043172610395641817941291412987642979978834258"],["20959036597230588195753526344404756306782534368376770535845165392661068577684","21259357505496386700147681622010378959903553951247321739430074705193198108811"],["5564607502501026741642828799266633317228292755305867503387745739051380934317","25907685809206564230993892329135323135039587119728738883176845925240729600527"],["6848983354584116340087624497111934464815664518571057777123489578149708321303","1781332165811315135040184324850713422484246814842891009642291977175663657163"],["23517907699605349512230088551463616419373737001497295503319396911563926590623","15790637000470653047676824382844719960670555043343729993022406934960980423463"],["7392321008929204527010702990567764498099000559795869537012290646637558861832","7698528446756080020856661732215683998958760187887023618704279191329288761678"],["25881881529171090039018405332654149461490528543090644493424034497196344717515","7241897103393729166853003939584516521913987705597723322003126142182267677"],["23627541895550271189893967270734371644239688006877700206544636944518154964122","8360121120944853641162325964966225775131858342674012788544034863976767391291"],["23237297300118336738463697668176463899416002096961986405183913598093947387605","5430713387670208207695476359306812946262483948925936818740974316332893950506"],["27465220710362804209832941980182606636883925525212352139344650015332171724573","27088794963427400104807896038823688988525116369065581964924343604442980187737"],["28126588953356561733834780486309461409136049396228217808692472644697895410816","19361578249451923644249607471016228430611252731589310299643299759435762070033"],["25484844706941969557251726723394260910815336687782774321975511285468777054823","2427971583942665715813445262678505110093088781060796070866231867904137660159"],["9437009975095012016607109057523340804952589404916317486628974928606668240764","19143529819496208332575371317775110846834440533883704035781415201846736575828"],["4794979285585110090482835407599094137372488735331994310702679897516481558242","16291981417640071082449289530987609437162169222005006790979745985721131649960"],["25734809367453053433781549870805379393970569906891496397687561867246712039567","22743156207987711318337744139237189721823877525075373238638581871360106758094"],["2751528504739853599410711122675709901561297490333154326042362812529173221896","17017058272543348432684807983870908531585680086125007672036511520549032319152"],["25115527066089443153669495571375858419833541677074095408684791195289808156584","28558095966465005028057733234616162540711335459190805833803142844267913193054"],["8509035031209277868339405973833385692413539699488722627102518016659593753737","21198053459634890326596525037248307156675786112115089134754873412784183135556"],["7422903748644618136159568875559787326124569074590689917399161340470962816024","25846282890214946326987370610908944116399894223574533624370264051442930771656"],["5571311840488783223388447863922741668656702506727866476695111546228892249936","13257416688648641926955157762894599215289248202898247879554100272002791029936"],["2284942110562010697953342058478753781343597204432277235431511282682246070873","11311101922153231496303745655049493256436735264742959266051152807472319783509"],["13691067039911732990123993162563036263988365827659571133966453018491422342251","3013403830505603853075303217542863394251331131012793796123252793418824634796"],["4269038494481380069227139209953764848693425464972029529998919002511486171333","27535202942970896527758232204368559071351364216744142384420047820764047722011"],["16111439995493028057063552558181090263684799819322570771171185916782319873666","20426285403648498471257379968175768211421560577705943981809706180821666028535"],["8311157951007332543814543703169377324119895320984472969476293614805147291050","28087727419208273790295772486028234655930886828467334441067394371366214413305"],["11901204688931307181916811449335619964712290869309813148605038294883329975067","16095851617691210815756213047671827053003281014424198671937765145485611907834"],["3265572669109848357011524960652932966855372909611376586279267227407337686487","24845971257737641908179411315274262296708255299797053304360602074065073091861"],["9750827393987783484119097452276566930734164639558961079764265201566831867384","24193441836100863780884933057858507709612254894371578932955717849231558103287"],["25194937593814019747230389265702133264562279473505211933406959817658498887130","1945450800702960310378111661576605948569265170528945859440295531830366421504"],["14165807054622372722667905863875419940325117742043760322946738981002001573536","5344067563577039263652514972065639891336695644101337396529739543980670144849"],["27247380582749221621513996442952095425360357130159474235731498605607361938510","19729766744347284237741742649268178502415103688597162790098805238618097595106"],["28479555464723214475900825988355846025559208727130930250063389170042378106761","16359478898476360531621810201544722809088973191379695380230976204884126029330"],["9415056753657480628025333728517216767902876026468623623495490110586013706825","10583730846515091264421262104967930369418924764378899337796279611428694172411"],["22470888641825354315006956222144695820105580166420301573223386859773357185440","7024190917766370014207324889925472714946448636208887892005328848373299440983"],["22438865598747098263277686798177491023342524240675688194881134649840652833825","12878381541316392866668733320117471894839464590578717129991721364203384678378"],["1061844995427230343060930823642916685622037904124511619944773349592399003129","24969105339378519246078913195803738751553068717217141910931472575603860797682"],["9283534145887613485519464419112847416785325860398455439016569614217459389909","26899119938097772172405424332665484597577406461690806834259879446675194719070"],["354070036591693488160135113455080079552025813660642240019298865732552038210","392935849165125540976055294011150861798177663223163062122934103739727019003"],["24251614865049863722040880747473701592017652426198347946410876908475649351620","19368510754214810962150285692370614963178684499915511438381826480070695698048"],["1290685337613865062211687957603802886590986644387666023107214511716450021698","7010242277083285118522378249330182317851897688635932385992247649447659554368"],["28260430989528620666855139119963226896666229765232136465204532230749579394049","28583863200822384887190165474503914982679041756898657030526340616615608285621"],["9904226333769759664221878708002472516034483950083661735348318923926546534363","15916577003137729792765979038695883402688955313895893414184971461702606461433"],["21134580341236316117230788193730001812042936106081212025009450798676802381658","1260836619306177987126289943476429155255001480522099266373836769346355199522"],["14132195356225546544358251742253873317165975502127789650249063864649314086035","17863769809427881867152906887608297079096169091143228353773062107944318562878"],["2951993271694722416536076863872752413383726772123313628262656697482775000129","25674403009810736118196146391649552827863890747199541049978400357368261697911"],["24801170208373842185298205007478309008217762007922936006555634407604424389968","18549144209192369209948803819528557287800411079998044731266205950640180591907"],["24380458973843241482560160309158897776361944765816515318445914750988253080698","15884191937290618563429384623240513201945636314179002343322107242760664354086"],["4242221827096674633955325318849483278733642845106042122125907321313122706421","15745141237198707119581351941664852875905177925383723092028373632931956786115"],["18541005448342806755773071027442749406131985207845110375233974845078587590378","3518296507156685381365792185631963742098611430865921517922939651507186282546"],["25601095969376175185244674248793342171109377929057456535717478224234662659517","7101248418093354270947996415300253817035405172544025175939094483998697693900"],["26505589300944297846846812923975420027494373768546985181264500349026038714054","18175013504610549381902272794423981113689496672236104020006194653211295463287"],["3753109427860890809095106644483477956652677419733376259562715650560305918031","6349128409672810834049062349640522382602316550400862663885859933015675928538"],["28353784100097270654576017130853044446927601674361227914513542026788358564122","24193752556138995287332975858435747379432496946387945464438661020683272624736"],["26328956996711106541922089600816658517757099355416284679843517460135183873831","22100563847877360218546852163759776344754324674017882365495012815943902082312"],["9937152235587577113605227380849765374705977456849400394214393337500783834888","10496306058931749475664785065670548416611538624044929292561744489313437444723"],["25827162280639340697099860870837777633441318951482863962602720481812365616487","16559914994550866167369989388339688887531427963622751691522832582337697027263"],["14810399555919225773238433737220171843548739922333403773239349073597203140560","9221777245172970564235065768018401597688002226631573133036046888383570075182"],["7071412609656287371113312132970227215517555984915859778749846189596359910352","18884444254045473637915783670677942643488291030254722533949390776600945560232"],["27542849319657687221931070752485781334937045042446550667814029115082808456670","12637578797915980931663857004331494927409275694807967219847377203457883452321"],["23917848418729051877887337616676142156987881940548846505037074365978164024662","22178588139934096132732135389928457236965365693673818345878548384924315473196"],["23655723003422052454188628990015701243646851395750006528105120227284649219758","5829246241455684513277667760943190000537486059446104239523656073666892175618"],["4794274094528033061449076774635688084012444537830051409142660222641001319168","11280223574603417611066757349208115263988151421992185184783286298051365423849"],["2918685168491871985106709364754195189768938527737474130211792463951079136657","19317558973114528406668371577204603585435358531098432927050046369117476114385"],["989671160501170639335184336525841642793640360645731283737677105026306841230","25073097928723086233975554294570109227036880348015454740757377120598516945036"],["7382072609896357993020458051876883824388913110080329123840675631125302820512","27353187724641630135789207697072027412738190504445219404133559869865534057770"],["7183878211723442803569288279915242144383520562982401016151246535793863392264","28159925153818047826858474649536949908928702115548356261217733642713459243744"],["28828194835585566599920796147769178863909637392966203408109399548560489690666","7380778624299794962737296482204939175285669456606757296501926213737670762656"],["26276609853908199067114685272407267531295670717957710369629759285884652530521","20190320417733433593635094846161714322467713024189433322102978430132446476359"],["10768516345756528845635768146615827894095172597878370692723262022209613402546","8994070451059036004686116896318869180784079796846485754876084384773031170400"],["13369938362576788976541286812974599475638905123913882394602765103139674918757","6388993195714843084717572644420488547930108845533719933929026491217714605282"],["25830180541425668180427577265889033587537860709345247242848199295075955267716","25803560384880388236398061271226385242484111184325566121580633784320082257145"],["5881993621854028353352551056619585624997960297032849130329484432673712398301","12794893064125490557011284731109592267239978262103100963323971149847806617385"],["20821580186375380913154206011252721675206535878113166146222074958152632206722","5765934217844182531826906821830549807377407374763334978189122396931723941620"],["18871722021345132275521804553957498504953865181519546285228278160626549248885","2523701068461822225724520752562858501671611811017309846972216753711773651765"],["11939403260527526201252347040114073754824725701372468140056198266575085554557","8896548552055544957492741711658588255289732400144693943466407325702376992598"],["21040533605482254604241427113979286076795181405273419081554059556913025059968","652326937387283433531656781127789834293297485178879131360088901022200100707"],["14329644082143203239070305984229985660936393203162140709052987302639755996214","1157156373661601336695226382501061003455438880415071181968805610019099503899"],["24967596699741042203885743013765829838627698711370286952132247402899044354155","8637815986432981830334200013154263162785062579022890218658595929207878434966"],["21606937040709618225151991151246883154341102239442629576331944641193696726435","13332375345855088718890913233960182474949462040879232438314224870236093690215"],["20945422745255513805556994197962734638633723328734051036296640852898008555283","18283568560698856040989875631537644079458623673730697931916846149895175701530"],["19173921714022509142091059670736766506237313644586379491878665049015491504259","19670429178941968452812359793973388556966024149321645982004987842657874658440"],["20046268265983878851230094333757463944548673902611959076538719095559551999417","26160252540791004855411027744187446062759557161261946359147984010088135335419"],["16012420202046004727280208575796881412494817365155910330917744447867021855687","17608293040707648083160559830872545826704110164347873904554956250277374180525"],["10245665270043545615218461683220864550031840609722649768495261024361554928626","10345047562457916344999908740319864828697450946507043338183968613131669318433"],["14761394842426708552092356334764751938994441755559233934354803834610268390799","18848913166341641086153338880892007289271722664243867390094663038451276290309"],["6122891959985048913649150596624724026009009931640891160960204255441357813195","12048264751283355124455922406353519253649089975837774768176768849037513237521"],["13542971672215213225890667174857691985902696198454818204168706800688521791724","21447272251636663518711621547832829373224715027229533494617801658023546608890"],["11225254037870083622528559682356859823817883275704980601754715581337060323344","11185290722825552400638195032075588505036130436127262459556984716262553702059"],["23872180137064192266019835156834317348235073056723561559264364287581496550287","7407389261878642193890197273431922508612561590682780173585944253122076057033"],["26778859409706227492314112480367270672395668837689343195801512885636407781329","21702154703401250640934267788771916613625574675022226488975380681935243723125"],["19067143327011949526391471548208000064227831341939053839845376580535825336347","20436720556221030744867536359190411801569301343273785633415229037578856425536"],["27946701153696401739759974274893856381721288388615274272564028752842298517137","21612483230910225087553515874905114828533228820563235858091908714253071550609"],["17020398291635924104820948554112997835232014842652998512518127416570708285902","24360638006296028596959676432666672679609649792422313957072487193659896476851"],["6827005857966932980338762945067589465248963667409219147879000736363796568122","12949166420157953032211569049392249167660907994091686946382259151050144137912"],["4160298792827310950817970660433738156452691986694370873331149089610220745806","35395228721940645979749860153820046905754493973271666355113094825523033418"],["21158664822726385753041066974687973915081033219426611329839157722912452898989","28132676747259431221183039352830243285026550932671064785817944414968485685287"],["3115422506795577860903999953729804044409442277737334941456490873110740855907","18879521023963249594291075025604241821053590980505173014866938586687962871742"],["26435831964944015713305578271310736860564449403279357722441916267313652256456","1852811744336163564273121911783355182595422823808651770185491344289592264229"],["2574407230881232022966797430365397424412055029236905815735671022048342238232","15364636244471880425092768797878324272687651946128199040110156383050924571372"],["11043351472881634742163343632322694997926199863021728791060428732292991356401","1432210386878748033732719294649322621568931311034287324780042105943531567659"],["26501610961653676343382832286022160661981204047933671205517952125422648245136","978696567364970288776248465266122655143564968830980053971925010071587473949"],["7290757950445973171629131489051017385752147596015073125228220703245282732622","1535615424202865561344925733150542952598318333032726275120298253393991684530"],["1701017902741378547825529304458716471573407442517407819922022972526422471645","14646068650540976713630686837457883418606819837128957058825536209262803058682"],["9192717424689759355580955249235386938222915648143445725713591409016557485265","24044989674054952419242154450868575518597355575834501835957697014248350250982"],["2639707326286433395773905552599806064557704589019024015304289365253144266455","13925969605199158930303791622792389891338244081359145008181242256043587438275"],["21746579657750672803863506846220297353025192599435451144877954098672951877181","15666935067135124077303344793846291163514373940109344487568053021865741629040"],["27403398820931793800554012065658935064522118525277440209947358799419401678595","5558942350872779970366634279128398715481801189868071832390872864738988062432"],["3187759672622405949263438310326466972856736190836710814657795383458382495943","526395807427290876477806399201732926043516315674796188110618170190656375965"],["5906515582596012645666523417359699963239262805252600616687443736378306576214","17331481830021241552399159452847012263453864269084933290963728582611449849135"],["12426245680956209244802971367958402434768909368981262690650428936498825601313","7651979818175401881199063966089276918563189693846767558482983619607135542708"],["18765235136263331844888023456391302809614466933958218677750048606499589165465","24738761534923600539499841990616481237469878973467231036354243869637364934206"],["24636894002268479661817509521252698564965039158406641919536276074658646433761","24543835472471013131571868973021778843627527020323418368424063056290806481994"],["20989983127002716778741967624354477736568749331731193974158848278518018952638","18326815446506274200006207548230954218688905439175458801634152263382020521336"],["23633067165473097828122582984941534925070643390262192221869773531082095349063","24230457143973854367609646218135952263420503504459149137946658077141813141031"],["9427321329874553895977899960846887137842088834279181633372631590686128236087","23180646552919510449923647836993556386648897220809330254447555439226243168429"],["6638150866706740233207245426327710824226801656295678759601385043904219088211","8012873918250541279547155835628721371848404921340080595665550904541562177628"],["27380571641131036772499518933262084781801861571423854204015279333399179362082","2520861423200786336066076404867072519215047813000221500282200878410809047096"],["22938349456812602662901234075405304061078824037335134188319704631431935177622","22675530909632681801538567193815329816956140211453866122390283043503642676675"],["16747473988813251831209176952881604283430958397134267283034015275192399273745","27060381973422598386202523095337980725168239822186459135874864950725447239741"],["3597340291705034648096249506509950996341975751693907996202443864409760921897","14620196569340775468154445237902657737442825917064395892544393917323773772001"],["19878988319499347841332733090268952610707182944599053229299064930059297077365","9507145794441519196842793566900307267061795789477143095975937606285391837597"],["10567133704982872573827771000067717670614827921667867926125249670037355406041","3736319659884616429234221993375949485479491105756700482887294652709607592138"],["13599406819402401081677647441516327605558527804199014172188836371182594998669","26695225516455845103895299505195154072708927058462781256584475042560837164111"],["20473529131508248785247540893631673235063473933606486982893617902592362662077","15592276789862601954750592867999331612766997954471312655980479677467638449928"],["20651361532197428345019887760799312053057581592604866986386225625526233185735","9201018036667680513551797415553640068185369514200569604355602943118624299844"],["25056541411974189163974118433167860359709283800201994705561769723126615980248","16505437590868423927671130712848740360362082279824182861943790383833777543622"],["24648880918426782004848276848903072609776079360511430157545821668682856082219","22467960487217648655005592712757400220894096715943831286266915314661311068301"],["1681602282212815431172534753308287882187043303072306034750272043102968153614","8320131494582606256635836849181878263283066834524887167661104806652412137613"],["17108245760039308512438888360948698153171953282242253632545966969791800831841","6914618513983078669124825030778126507196411308833713393758553879737710697528"],["25539557346757569003095695526328989072271975975015386909831382607878463056135","21956667748848056072568323071744187159825048948664072550535244799127778123476"],["17249954342438638042477800629099362335548042755924283179224228126437404273859","3759771374177578773478047865616533902318238403130919854703624581131837928081"],["13616335635773400628501188882365323772816382224867164697737114849482603369065","10123355956282594359589459254848511817374148040863029684175239204542702335279"],["5247664372890724913863367914917394344867872882321409035957608891895332586437","5519752748798643876835537185874353712896341451938297582332992303573754907034"],["13405966122576515008043240050511560079170836244624396837571298651993361367932","19018401760053452444614900940686103830608596805849307475778986933728993101815"],["2620690299792472230455526049756445072433747434719637874684183975707584261679","8768049917060523777251131294800673976131030433254256129968186259617693970719"],["6202021610614234699920181208010682190017806058333201493652130555118365683884","16053793007987858806698502447630653963275611415071429248462316239146921234949"],["23416079694518641605978776650669052425112345136845253008781237794457123896120","10028071561723621150207051186166866789087249341389695125504412396981219627812"],["16709761924651400814496031822974099716048776129075402028990681408968914761370","5595140178523742772875253107334974300962869678895061826766397269719594195611"],["17200414092506604696645734957142503395117113754391844305546055877258669671338","25466259080715237265908417327672527912568304327095230567363748998986724333931"],["2844520709709240644800491029917696215331076513385251434637997412779789747104","13486495384042124722138823563138724645140014698000220461897142983055523855892"],["23503495220099707195264996235565895437052183094612573691560398590116221167390","2338443834102794929959320437025182131821502096549685181801645537483441389732"],["5646977694235978290653637075634597506754130347310361821434668117752309651077","6098461434554255536209148644452964580354639917792595008833787285500953881136"],["15570601035915991319126235840273867580085971785509051464029046703736604958539","9504495385519849461956304317990549794348959770544413029662724320658292371732"],["26452815452761276170699833429882068607378569811617301018263229035862686155349","3618643219506822440057351017259269694596126616140989800156609368341891981597"],["233560621674360773953701364850276166813536934927273805689494144581787913082","14353465771572890985925829194247861915258787801772437480653113674572670663784"],["689547390791143030954173091520842009479758140214477477637691319341064148199","12647965109524114849839151478842257105565377298965920493306764384410449042815"],["1311857525486132452384050227557921220262790699227326003387259641607844330153","10421125399895263916329988298997335259268969461003273071061703473531591830881"],["26915401169372057468068261953298229729044409344996753132477579683683629065346","19126318876105157010626074573566218482043260351629251011976258930376558440465"],["19429746098111642166952379310754454857185215642084899742073609657258389849501","24157918377121493991029279043326855175523447590754063916380633425964327986813"],["15413754694021579116010296392067098363243955795179171740108525832246685498730","14464323040237884821612983227645953439371467363273767222959354284423905186674"],["11559563030320240694363547470895480627525055720784768854920240189265628602682","3763993815462840005316483437109508327859154186557241587918740048911975424201"],["19217270685706799438612577817460590001381101758535182635081576919197404425590","18450478716641923972838447773963691654840162895709328102360787168115368704855"],["12577702351054041010961572864540276297518561045771447909851561052596634057882","26040293030382118771592365111541091024000652833427714082190744772351002361356"],["26042463630390119367382863711324940299698175737818107106321438992428956607437","5341314438770522034568604443214647643228200267744022383722919039947647519853"],["24502295006269880339225703169626458602477324627634795188369116326738079681722","4092635506352796696762857359731990164357240770860612061592498480144144589866"],["27700964047404259702669660012934156253091302450668829771032587362001674872570","1987208368304568802333160710078690095733038992384881861551290903010366780386"],["18265715888605515173102197587221628378682425981475198563584557886932100433065","5136925751052093409462278368674373823618089139218238644867082770009638638911"],["27532728780286241669832733234689176366569289846619965894193213097375590998425","28816289848016805113638160445202346666042903208171282488832854118780226063273"],["15651664408128203174009849909814174837775869779813717189855545827219408445737","2827838932070340700063864301024044356118602589197222489528616042122840366228"],["3977304583802391545466564773490813961861839505170041266496470834273799573931","14498611540812164122658111438184211013958654299856519120232704413947232301463"],["15495862621232405949575230957455514401887942421213624532346863825448254091824","6834209466138408880315888195227865380763906897168122106044516923098747674248"],["27608420095189876040991140516744414013756201632857454588138983313704187275081","5981155265336751389042717616210799398201984084468810246572026970201920051501"],["19873176386758173425827599550806154232641389981194788548198023710969029273786","21721360399226540091854706219963468140490412536569302563015244243736591555453"],["3874665581221934492035406313502139071878001872284523742481980461461250585511","19307818833511406562910134733456595956340898952938664166215808596038353237561"],["24906387458123757109391171868387127571298096876144217327755423693546957530886","13230691787497478625259779746173760277341774812318171424612423686583109929449"],["16531231117153893661203595214032447328825316411231850109101417509349405400943","12127607944986133522736402151461440284171909932987189339743796008927523060654"],["9761149819393852751518861952799878528465399788475522633165833857063060312728","5279745548067616530854180163786467031509005217015053460018895172022290755005"],["5895755731835105419080490954072103735372863768584330790602689429015128804064","11106966700472026826662784914635431108323918481194979635529477051119459863889"],["158928322939215714366312437137698610684186926804568319375017394779960443494","12903801414585981545893601222449085205237162533540483464440467960366427560389"],["22262523773308419941035646037611347478604291157050301599050520350815223320186","28074421521074328162449095397900357624501732330230364372688503591136980513550"],["3032306250245822313952461093493502192822359365589443164866662341007961257028","12894601948378918398355818083261215050616534069220147462918942607046395692015"],["196362832467223533179569478433433179633227446155862609640827387172651569247","17670142181563554315916200349735205681029762724100623605809198500358966606697"],["13862067447050251074208291698208980482739964404848588924896946959552465599992","3551424019447334758929635050599468553758939587486465251821867255850808070631"],["17596215599382075936085552712757734346180860110388067030856387861885124310202","20511054066772891223053666948946726662997613129078935591187677822462047060457"],["78546082801917353827705013769669349270027117191840114167490877323215453911","17320973366778494413581990940278681721627644097739332941203685696352373102410"],["17752060641907631834062271743907418430808870774899616890272805911830133983360","26999090303712273278363615628156622309641603546428149513839426868320937772408"],["19903719982026386680676231983257904021180167172894542510789120337577315943054","9619640991165580789375469023510130233259750661303059556525248182944559968089"],["19752775740441584492582949994259621553436849333100813521756042420220443768288","26400348605123745468795133799935908620654399293177874588938392590182630547650"],["7759101870305711985595788269509455062222764850687142307305723944706085889128","23133021001596216666790710157214179922081793901569504204334605145797349965982"],["11270001199352029953430487080479651863329047643603420214819640618694966472320","23597195351322317954720077028992462757489365729751717233294193868660262877217"],["6297617369567888472613350496593336919067787289375725016219633463821755625364","5788660659097255327561613705530294872252508978411817516189387916735252823177"],["12986299015220165458724536214096441065555286850839608078225159977886453801934","17226651835045700198721152974241977021471752340045130684679261611445953897497"],["26927238874328162133770849735679803796009749052070849893058551606261589788201","19524780214494660182544792906924814390300442940380585856167082591507957132862"],["11556529864276772301456804763463448089581308639037835288565261479433001438510","20989931921201725722499546528199248910228946982503559224148386596915984362799"],["9234925617086382936386370070437964889746267175913534304041769683235970449408","4607727079375780852224215313566925087755872043819584497407834521934044547918"],["6445699443531916976218649077742528609910708790052796870923407276052196927010","24239366092896387515440058690101342552006270466913825007525409140064357893264"],["13571197021658765963626849958680295585014929984796426172301776984189711551296","23269148662042683782513826348722891563689815842385989116919121348976215602022"],["10115117716663451381485732004210777274216694298979605560260624001731149117603","16271435531177224217174362225013670865025414059769286250509329026399332117967"],["10362056979477832498196843518417260819060281449599187504262771560215823484691","2011668024714654468224646844996490451258903107109413228126258010059805131259"],["27879813987653495591998210458911966246336007391495363652599785593131856635437","17972206385431455204767682205949857068114600852523135843814238111215005118302"],["8973139442852228143308068722351192651447504267925917016848019150848997172396","13243340574217228162398574935767232998986175444881905063900090767320639701002"],["26175258460254019690302517772554620909771100582460525592547413883004346791597","12032667252764601209395701319442698114896302006179198486620748659131309712004"],["28625100298934869304298398740486084716586766845518838986919287142812865932360","7313400793622951363662380847595881282278620807619349139994925621697180486832"],["3492614087764113873302576207298900999232162245621836067054475259968317457821","26368479357290971218005274556200282195946716719032586761808328571189226610543"],["18077968169475238196987190592820557885794117210492603188850375812863100419204","26709308098930743853118314634846322944582506787690959268987505983305289797470"],["3576113069298333394541716797976741835138786370755011135665815309136505767853","1125347803928349977324233497339339452902998435679814576147517094823397369362"],["23654608972067906993888201611426261348593558032292972008673049738614367399403","17195948264105639203023243061914841617722442908882619336414025837166075544000"],["14955571095047449734620541796444899796732880691781109378110502659507815385181","22309199500200919165741267397274625611619123138209930462727073841541763217268"],["2905858571638682312786152428599857949395685535321454344138676892307560204962","7538244628992058361767774109079826819321087926407407271703962280958844010721"],["11844006679760558084829916558449643257267776842427836007912116288199423777471","12870629996811809714879409464108721781455016109224795997761717231226414170747"],["27991461314044680534465671875929938092627166668327204476041589302617025955810","22713557022049493011667957048683407118055215255267696557958647619136043022720"],["19014693604272759204932374293989603033837031365381630426644987912430312431201","27985105497026469685591828079727901382494325663278283047404489958954163427078"],["5763662904798283378053028851930821146444953150928205829340158324129750754565","11065463215080137488905766564098145801064591020591594226581107296136197517233"],["22376291452549180766416232738043541929887953987860503195944244341547021003611","27925180216588569627756329882053522439699394109263020745884116637118924148534"],["771305139041325337907732611108773570269325832285386807138057633377646989823","23742651113043799308548719164024127705021767127571560226106361159477527718640"],["7068904494776587933144205666672784475118162815714634731703818411245760369526","9113095502758536411292636678521726181793127768010061139688215343948535243582"],["13982313374897631535726990658325823174403775118483133863532143717022452976237","16357616215150871035562414763430879393227274634477287816656005370449204679233"],["18892756730679356144318076810502494821772382787269847317185350430330712397689","24886532047959121920228692045325138028145676508942564515876337752663305356496"],["16604866311129374411952994841566216517663365357891579899037088764031326873389","5436288089950520660384125271692846835744339530419408639219173898593581769021"],["8013258203727724697980033196827815253226547416799314421193928462516416344615","12627208660770976736145900506559101354959449442406471869176450944417449587631"],["14247498486625003222841224490346593124699872532280637795395164995811181837719","12039522582046484447047567083822787020156092751586384871054952969447552098653"],["19701139064556505308422581131274150367975326011304955466273582077169283878065","20045637873843138476165982616002824938444333663738016578373087028388944978379"],["6654602617911325867637453680238357998003205560825932543466265078859643387501","2623019506209284354323770270091245985823722514531230421209076368464639998087"],["24161244334309295601385592839627326165488696708035209928013405686177771359819","20415149540567521251727458817388814019971606306183178175486367269415826629043"],["8642629962510804444872815167063183847352153097779099266864167047094077538309","13588861628389751986406346144021904416639916906343758687987937168957570532321"],["28065111194095122577391331933361569568716993032078597252457058866488080372861","16385917325102975635371531272989169586966471261130934538727345002240697018348"],["11698963875763979520075094003157184455711208531486548847133560942690187398338","18150598715299218554378508650029980755158499654531789345491785381389167802396"],["9535412479059105904990970979413620546975049634017094865893963366293617950974","28934726835752290999961698556682612058968735315734297582763539524647380899494"],["16607848313754533479673810446783446150852797760572678374904925016853080590919","7287345067744455531087648038006167503066324268147604712180301772310881338593"],["16407984495714449242683816027978576804643078514678610912905975356929700406622","16349621058548242547052620514896859940560365068156837013557633813077771043746"],["19361054886293213224113512664337342432236751985327685906415815678904995419123","21224001066129842362539212649487328071793158484256817375536025862137644921648"],["8965044066584463260838175962595350622868353215794470490386311636684290456603","26747712389772983915226580044194194229032560278059685150594824795944892658393"],["5162883694997664997576310985118250401659609740831775481195391047661170204691","3831155701551337781536057556898685390106522377264965109500493681004830785611"],["16942876621899955850806137653763745150430935524222799006172541360942349960215","4559075866844350431785304068194220443697492281603958105044012014083646238000"],["18227581483284513316790033286956842561398051311117416719416408608307621127589","22817183604242794361140238119926220170390150776934986453042406791420201893149"],["26749191946197971307265562347068131966681618677376363801117600051989147085281","17520690439044474550092330995665133130202679744991538983260234974612837735227"],["16725546823932943981533366771453577680409917276023247061614608862577971548782","6167581393275631221948760995733227630195533940147992348651659685775170252459"],["11270378150113324254286522307532423078257992714300070048126685197634365331297","6555322813344184540393889998098782164978007104374563534786049121452405382594"],["4557391012408010870803665930422779874134876949382524235711152902487196066547","25541346657001325400117864975822813258737602319860529891811122642941272501594"],["27077300009825926295818134671710426433698097121557226804286074270403121166711","12813823668000336505656327849382083904300617338547514744344913720118336602838"],["10184103919289079260297388303344768003707294793979425957698974701810377969953","10800629824649654708270863785612690976616859570076975097485906866910005953171"],["2258135868077325494361734782821085004475047298497599850905228212219766087001","6052888146025055725886930282308640153560403622192287032445973114950300583500"],["25484398929325334261051862540616736794239077821311022391854580200000557635249","13688374894910297421148305384401834208630474901818285194436866135207062529980"],["19630906027858155281157653726898449088051367968047073387575067196479912148991","4127938926769977273909377660153539627860416328512108058631870592095071544551"],["8186447098697166072646248676018640712221198256693158467494721091115184597737","18612066671572167274540511147026526161471348524157656367617204840350124026151"],["9425648933213150473207511125679650744092093834229195908715032181126946385199","1558696403615645148004572551402492862132505994180930921823553035097066738244"],["13898281466557123159600384329102287472568881349226926535533915420409289367972","10838004318472951961462159777533999155095086762440768002685904431899344236133"],["14318662464960180724162210181717947864469343672864670957719287449831153802164","25709797323380432082856178164749215627348564605697543491572726198550407084232"],["9870242163627915854121593570083623806754974939223353314963333987932541653336","4940332593320876705600785353669793764067273679017546237712289495781336915016"],["851129666717244440111892611596423841760626565106485312476529368611206152024","6040047544827071150546575694146832499586749517789455302588159065198006174717"],["19558389335483726841765131178367101701204520265509537737188811531483260882442","7743900055123345644687827902668472820523910832093140419156856770915044304006"],["14411425122591151675734040810769541824420824665053767313800861048843532775856","9267383151207269846975738296271747031071836363082425863362459845559286712570"],["24681069290698623560455021477213549960954668533055839343263109770429407339879","846310308197185548605227265035734343225264133701198367764534877289970656026"],["19702605074710052878052851651773367687201889509336343457968903299449002404454","18658776094060056915226453127130236780621719632032597654519519487428541344633"],["13906452102111219914886068441633730246411016260779920369902921632524416091004","297815406375222251117678649608899142509959722069401232480541276383889236883"],["17446646949575237703152856039531535237548437068042653179557468602348301730608","28714107615766822734678359725968593210485605355022088092954775830769936854873"],["14932411345632172161850366946329277145846526798420844904590753347762174838605","12625406726976502858003759221178126577097960204633783568578882537831571101259"],["28571688718010588984930472785143714080250761347776223400932499074774316255032","13405031216210892043074309614208668005897926085443368999058296690594105677705"],["11133749689962960267936710022749475055189931018008852684364298335130877832912","16485362383073513807752052361558561300739973722155259216575425958523173295154"],["17043210374642124279851588587555817653958965981935776350137389592822666815508","11152426597803018688785547367476980705295611036136064159134255850207473018042"],["3123944178597566402140862383816539720107749831786419727839862239363619876010","12745365683681452847579625123801208636121334388313397877351611693715834061338"],["10078667236804148010172425000828859236710923798322170349387834556894292618391","146300786083371221384538116809733300716948732591011158012293758734935072553"],["5374966599634652294219675809442236618741065322120371782290624886055413803793","24724927820741471944410489499347363017072608665037891126751452564540576888088"],["10736681988769439865634023539408485879038584783529027871525807586337493294377","15148439841758198128361803639367257661543858967340208362979227353675288342079"],["1750848814104337320573870671813897134587730127391632704587612406449059911603","695640871679150043637374128725584663441701754926931673966043769206317761971"],["19141717398487065907033105709167380426336119721795455045199683972733339560895","16430946231465748911850597486700643048126435412420200912645814053936471654727"],["8094220080009791898277732634934007868451242902499922985281018372628056123630","1911424556838565583832083486699695588047017457491023732925100478481900485307"],["2681204699581365935639435128877718847788002297932431476595151490511727087695","23323781512397760070439414659055415064189512681587562964080439098717248941097"],["9699083752436435346845672170435176097034164617755983482203298831357728407043","27408806173383147566922881972464200801131643126731344867324287161586881268757"],["1609205602560597419292529704132369508988422878262206806450319964221007963954","28228495664057935512557060586106494593103946851096692759116693234847786764184"],["12759009144845905050130783049294273477605320166839918977780710994496528976618","17013761848308350903835029148270679800573076139854681202106815863118092211734"],["1115976619492078839194010671281401797387637223210535241575245706902595434522","24872509515408886267222481635314270043202846066458563067235823164501628081175"],["7371075301071362889395478908227250605786723256331325766097011805953020321074","19127944596954131240657293713429117562329961313177891131199867826900402653174"],["26916096699898874075302506832671987655977851076006754507971673240406112042653","17000827243942264763971137558362567116419895006806193348000615989597097780905"],["4127398660396280242865053001125294757805219537372553630546041686062362982952","19289058332826888134817550468799688875481479631350626247102433698712031304054"],["26037236600720203335708841591278226592986485489802897905668864417182845315498","26270631109248060256291104144717420402719891022293675390969771528539632503919"],["17587640326070026235512092284069046405367868012379334355415701030624194032400","5003797688414399129634834033077835805396630601762937085058656155182835990776"],["9577659796276495070349522173220660470366257525189370004425024582735169241291","3634025434060320004804337436615600831328273862368585942431587188644840951251"],["10692736276463567765398028130337585140672402153234686371924603392859528306292","28243104092831397817630734467148831875245835033861152928569962117936406399861"],["14567056912589063589562524483219179578322013200043745116743980769403809704398","2710896730332772527388264095731316190986991825323897445192972802998877966033"],["23565838444993669675429620643615012194348705443883883191521466502424537521358","26424543896457971646164037992100935500240381793052158995598174371716867414690"],["4582042883527776339863320992536052103469234909823119673605410647666236961818","7067863349515055569857459461977673382016334389565553759699828024155179050912"],["17107066774977980654886217646015526749316757837246320503379485469432757089721","1115921502668351146104500136003075152302926570392183780559034392558689675543"],["26189114859287150656554596468938211396558921547995154173165075859649842728769","15136692810023401424207801391377788294793296878515545561404853202663681522531"],["28619738185433988659853990736918736832629179344496938251890139064589097341382","8818184452355176843421260439647630293079337075211392211313347102739149496163"],["23783697515279922608629068429553690832986224900948387283750708763560248802615","23468380890834299489754212548596524369799500176338130256955255116118252230564"],["8462392054566420609835222671475281376761657198772366934995483515238806462427","13608160657338391034365221407969230477344494849675102485152473622525293009259"],["4401739824616843512732209522546363578319327315659374340450291207698083454689","11225053700298298116179652705730333975866205561813243684004874911493030021192"],["7987829892103751602553177828887734560168317052379872654754967354485845063665","16913756669088864002667338385935757874050505442481665177986348118574198019030"],["13211530598725253929448792508067596423430049379077326787787955413399760163570","10514072985805593549536677202263092181672199607698661281702601572686131899812"],["22935527924689664275921820092515930371685571652459824482199979250001994664397","11479080286222292270481626256431810493951889336166936274330708006297424195826"],["17909355318351121480771673407790054321209686755220565919322091097037089971092","4420761763478764931157164272124659948480483596317189320738507333877960184421"],["14643932074391366845216796678084267303290891573001142022146175693602975148584","18588125030976897168013214906233538731705570910169931571357822195276477047483"],["5879959129086555845782067110217551192764878928953583993670152772739253139506","25791660455630186160358642118920015194259123005183381834676767588066091727457"],["23967894909531142058291217340469218135800695189176933542717555128657052882752","16764996426887362512321259557589009258118928680379428020176425986377809661458"],["28174628419050702243830863245660442656607221580012409645070658567967170812458","22175654556361553024856504638312299520601034317786884928238081504242859792514"],["22131065341808942553388041616212264873263936006468394196654807595103600314460","9360660563544690717207631078662217274170819722514662700080398154334875826446"],["12481483214471116465535242375689021035728623153389516946556899205133382786603","24874616384095932321631789910186102987756357442831085346750075084539373357252"],["24828854087635828446975056857006247228206230112668579801473649336131269722126","28449283197041212073875884819507677153963432419936521622829338450856276897868"],["5226278050950346507820672969399949963761343239959419914711631142413334548427","6183981530094778136939268292734059400977609319032259215846830672452488393322"],["4538342891108044646811604633261196434378166482040048979954710593385833101754","1725163144262448145399053247464304826049096438096106414992025798931852156797"],["28837530510137646654331990117394820511058425452485193933990136147231680434665","6682101585807276778790686877401188457147537993326110753982632428402455236253"],["532180006700130609265954826441674479128009040143824263409407443087869216831","1606305041520795827461924040152757986275331067149434181084079512369694515154"],["21278035860802468464103646279378217344298813040773424018668139239225160017916","3793803313737113814661563057036077450906262116532734325908393265547937743851"],["9262553881471942673749212401854172926500414749688426641368277226780369272550","22104877096381997234533110519048481731309403336821000382173283411033383712777"],["19987581000132082048954356524993836352448336318071124013524928735438298844506","9154230813591785645283104119992817989520436753871411978040816240026649624885"],["12208611779332591055424495158067080519218620968374733849048576866801733135076","12232442615377614479377812851683979058802167501284704389360228477182705824960"],["28854740611991418513792340230430900387996919132892353763488021655925272202454","10850402962514662527580603759479783673109308617290100876787737349904656476127"],["16869005493955771525698827863866389924967627440211500985219316137952671035154","5060934015880012064161401984481851975451975335620240103927092668522287287640"],["1555206331160014901651856822565734597106853616008387940080756445611931337636","25462385617789617968721384639730284116124270434083883361163270094636725162439"],["26330624255203355805593904893433457656245220935876386114234593140367088575067","416389793118223372766587628748354461685898076585456055870630785196954769401"],["1546086421638025981747918710156431702755011609335489157928273427214755712974","17141432154834806312179382939714458740164455562432351186593995455022780870888"],["4059389886235752293160064089330458065433702920428676948634984476776613556093","23262595531990347614126000004666940706236745374458605114777030414600170583301"],["21450669765925187083810077699490150030407851739330379303653889888742994239423","541538534347427820853388893437141037880799023807558422450349256679322725523"],["15291088502392277837072004631276336838361532705178147419123083247532660869712","12118205920767346412639243805587625034231105948063031076316235944425806143610"],["21038985662500570008545779513161354554297381328179510899929749063324156328157","20294336548807685642896728531454208820151928069210746671956149457993100572314"],["16170381798761907825663289549998660459589836206798285506838868952614326072738","4626972314847616710986055885876777614655493752159952028091871992047043223994"],["8885528622891348745660101384974475991230878694258902872588809937033735981515","21228545831719190224491848236946402898587910999612155589977829630244740675449"],["25670699525716256015580806353855475067464129916737096257531705453427140562851","16856927006439830207523072663676226326093364790070719487050026076194043130077"],["27791719608011250880562667518187099834161273540805157245225002888769044151589","2754400650503251309067770348976895114501783318607471557878056492625408027962"],["15900215336918330977971172771529084736539925301107205580223763136602937525673","23843459072928574091306122625780248355507538929844262259742546604775445651249"],["24158868609813478116442695409610083324176357705795761564981416850228645180962","13399427240251157610160675737000468719693126173864065070174314537193070076556"],["20488205167643015404972359904638703189760752374062827659096572628402382865273","6780078048251829579344005280454681117281612145873476402906214611739412907181"],["10135685051323012589361675457653563554977920824075778308395690885288008589041","519168532893961552810937156244918563604471601326693060640285266337473925153"],["12912002224657454353061284836573642099921988866749608680581916826392072215360","25199895132698205958107853308587302842482723001739445846659118000151098003499"],["25404279479748101527481762659292446008496550936515450869122918159048370589686","2148225292330390317708901189872864167034565616409545695895578795332757543264"],["15375245601322563376981888426568134259496381880878746173684932408730079873630","752338172731079465908469861120331095208818495203287781843700397356180430306"],["8706587790136533992663370833398215345484302333694084913489237759532389304849","9983391842737365890204258657568371478431415305513011261584703617085710117138"],["17798738419353174868077451854494342227375057612781299773554080755115176397454","11155931639390129414361861602888261759569110391160180293165876036905329839828"],["9900506193333417730273784272831400359967804353756579747382228582274218059045","25247409637830439909217991093528193862555735358259494944939256161312267759804"],["19866323878737079498770458325360864778109073374653159446993245183708528352439","8593573408017062996195259300948881500143516394923054098774167652048526991159"],["1828947298491504406923882682765697626245377295038384773274371917245810082115","18157671869775569896809754474275589173872571658471543397431388931605610048946"],["17232643789286214024846091342867015323630495001175880603267977238196502972032","1155600642175196339945301285619854029130835247171799778451987965273681379889"],["2589000648934782000716731771407603898755446727567425940175161750780827706010","3482067157294355182438905801966937882641601149591785628612711883076056000380"],["20450508162582902416578426168265658711132041162194715217274895234840022802683","3406186517292083069840875297470637995424312382320253130975410537156810073033"],["10998322623881228858110779393256876494430198058453485662621177288421668225804","15566719099611007624135788214839931435610943502973965288219761259976086657146"],["6996011287934052955703693586758624648726779353275772247511579361352352353824","6390436767312324464682372760777232686889507307878300268361992623412315863830"],["18195091547972762327722055729611818760994630932574287467186208829987710496291","15971204796349010976025236610339643213233887576112096279778199304978100232703"],["5855377692637675126663721708908496530627527473200647511530698142311065275339","23134855396593678757167362422867750408182437408609665405754478031124767175457"],["18862807197889749734777180735654073223986740231037292286779626773433526655204","25722536764064681766113598634640300678308122411974736718682217909114544334343"],["3455520630902663764693102981365571338981788976135191439139088909127472550763","9065074688544757757918355419417350752237865522132793627511560608402026362324"],["28037542387790096913393506429357514262064061448442782848205910671918905275711","25777914015295701523438628614793796138524441280744874122751965539808284887899"],["520444214119302296898568234645387138142929876028336728104770088772867166418","25452104821285589099112120956329079502638534817456673945600055706218211485480"],["15006169312547994316021597376645497222203663400774915124465051577862941203317","8910344824151702580744496198888320283938069662950563716729207519578891555493"],["20068324340204126040050866977452886490963122394140695404379899406261364165558","2615670323827365293293057843279830076794403353803621595333871661571140774230"],["24927633016504792550477087911376338152372309482363965948828269447696737885917","10351814929447490944858562333951711854895306793650601220293930086892504925459"],["597028667079463643494149834822155457764479212668856084640273843526145855388","21884585187260941998020791068661083709795353762728155136968645157013432303434"],["3183386488809497478970049026929836067375196209316006516207341762542952468528","24310811341166188361591381176854233360597482194532777684201269462379561280768"],["28755165182892452589433830933101139426669474879279466072699858910695371310032","4387494246870300717572613424456888622022014386003542911718796173989960040460"],["2439399834946169183869655777385972140204693524902567048050603147895364904076","14319717777765669498554154822546892014103954823084228261526999939399034327534"],["18951532911381378985228305493960693853175146804266261780941755484831814157317","24836027640486604857479786669734129311666914972490207898685915434464771770233"],["14370570906057320813361417630200091283164226444036953435136243142806903528893","2002547543486204914679582988864767810624748255217722720020994747170374187156"],["25719557907904176680820069879761985254088734812864977130848198858916274160086","8503799904767951850994719949821610927348039956347255044060821894124620995375"],["16017453063455239493883182694342816662148338924393499115541065609758902378360","27842052712782808686532157308599444065745055409939753250458315563168024565204"],["5117728447190508641458402217533224510770116975375943299916812402318025871196","13198267998532029836049667450571780082037627141735598933132772336336534226346"],["4021261140276368333324457488680505586762770649956535342288384523525252984526","21226542567585183542452516556579540595336539277477054057914723383221176466834"],["5915008100332356547791389840817916413979261948976613794287718207038921649920","23927655347100263314627934670046037833674683868773972954701853194838495179189"],["17322891613195863751520524392936128785056164524739686320810607240851514965109","5614415175041367172090516906354469575291610156777710537088122778297758737326"],["10733772212008121663804699443722151681451333652992150309491684474622832502178","9666639524667250680977257879158294837380840029794711734086867545435345086262"],["9484006090257362139215067830430829747397734848291631221568045521974896580059","22102977260050460741386538557846381989308382270682905055764109391288945178823"],["19536685755355540378992196111544831106628838046359137069591837202253564996685","27403521769858505756903018813629044815772030745717892357226773432279533666726"],["26611932277047194540194223090864347979027730540423167671685034546849997503118","15428938845271496557433184953098526109458039795764748391038946826281723026024"],["17526244447025846535450496324065175692921800325167096291862705293077543419394","27725243278662117092048593947119401822598567468329126404773485152677494909207"],["20553894676317681928328142613303562113431194740563291032190385726069320346491","14914970057003923239062351936013081071078040845242875299575106786463804437462"],["15181802082749743275489496909470503123499335827323365686361985358958804553940","1001927333388258249688966642928641708001480359608977214501800809494706781856"],["15048989656109407008087535614557288241251293022559456418641665055596378886011","6572495370407087508057158374743175459373126338415387675462298926025933725643"],["8661957669643884109332577073993563484513755634680687253192742571329230913208","2523238563933642378195838545533950345289390816019920699470571960076994290627"],["15419935226777658205638097762451488961022594627841419924138335717496509703265","11841574572054528561536650513201310555618057440598679948146354288775725147967"],["3060797911450352260339845468402251292281669300849343752835428375215004309206","19531385876041035127845423337247487286452314078609402938881656677688432373144"],["28681640454260950266089646184973383858379578245124096759013115348060290818374","24574872750855103823042121115011837413567701874422938167424187162631736426840"],["5862709471109328314237577934609343199753061772116044023902467102280105908321","17733529981762687897314339844374550763716327283896342978446813265689003411588"],["16466604352724561573491626676115811167690148018364180884613869639558702858800","19313379255024570993525870037940016801026902968823202264780528725663732849175"],["10776034342650674687065359224648871886299846943686624546116989622493865486686","22978545487075547716092048562439100889345045513631798190786214703690628293749"],["9715737998930323273926109064191406529281830106100083195298606464025788916526","8491332817898293238490758517927764604369674877798336649553794311098248527472"],["14582665716846000178002336515183884844279247685945802712650479149744468778371","11973602826964448262168866966277759828574977879118153138037551959509281793685"],["5058121711717475233453299979125916272802903795254649088739459859302991584051","19405720032284099830114954443544183838596180869327102713767478761859302420598"],["9206595874008342697907586499796664018602220638465243647336053155657588048546","22687762465760434929986520856205829451368917095758032799987706771058459781928"],["2206423201496027158943977727516492431670496930934220521868625731249859118397","6737041396473352872190188717429170692145870592097036235356813604907594701207"],["12931370061745373193875136206839505785247165714213827279163237965365154847153","4809056607558226639421482726248226073736482643994177481498719791128383560304"],["11426326161589230866035189484075079738192936472920885162919330737860977067626","4210756834380487148602164126865578917292261686041629991334894036732247500238"],["6976508581344684773845883777081902158149939876733065645130653400496645934540","28032693029365560780366487929205678922789034878463387531511150869750614283531"],["18057342217484430622167519665614026406735142004523406505269534680283451856214","21673626640116817601417956923350954082094763782432895849945998855237705306388"],["20430288326353058703633236997230604431126501469836331026442760197670787574452","14739526366626118614285139170425460292682748121455492247990599643515227775661"],["1477274513093020190377948460265532051055360719763818082108523704023737554865","21480547308869884597951451530914306520361643675147162220446262542428671249087"],["5020658543501667951195912911420792527051935613218512395347507525799489019188","24855819823973314566114180170056522758227058006359777423099294954749698853175"],["9424957986749744583199332783917244398272102317685764895977095805516547753544","19145779447401138767986682995819470830100328669599941585768021769087924540509"],["5123946845866725747547785414995531923062948352483364109280286564388737871526","6963445444578307447965859783042773884366637778008412551861407004052749584167"],["13480657971890299855856890940730516375220750090431438787273847562092386453787","26285266992431090360724612791667452696649114239152121386106024543252698306307"],["24896447930966644348578929243451488939583911594306612239876035817528672894588","24756050486123175263763115354795876274404587904296811946252524367707441039074"],["18266498008464945616879015553439495540031654017392174932263935766146157328444","8626677056821932726327834789372821295708613643255221317665361636866567175153"],["9952569420590640574943734053966702228118594037468188091296717078569296541731","26108331127903016193432007448978791557350473812848543341217096030405472368589"],["18194028519773252351116190784656974041429506296159184283597125423211104377029","8364033793310131866143194881448478996661498866539672355139853244894766875929"],["26750392783040544406222232764717259339484808747313418794627785959716577213978","16363696060792624468028774558320736872210031530586720321723986727703896320671"],["3904594045561994829452547140181374113938165045120875065002696441550546735921","25305875159521718261761522979371338617815164216433302043053299501407059021868"],["22243051435455699406235074281933498316179117437370905886488302657144312922642","20041724968157741517889384515422065181777578766988097065734477386768128372228"],["14706730670657859671301942647209832126993150820274278855259152502015726412374","14281501949577885473800847202199274557394492176524946380155907213400731400688"],["20671819138604112556134185390180772843146397800799135521436852096390650512562","16907015939610301439423110210214801209851136161897153674562108703201684640187"],["22811799353285254316163843575603111804161307344782992285804474101212747828231","4306250968847785920728041926534739856013676485501198431012135387770265350074"],["12042274197265275636664783595772132388763351437930037954791692822862539313801","23106564916446578348598683361680473673938630095410761765520197951712993384167"],["561938388528514674930020518716605874167317356781958261550988295698849533043","3085942694816678562494627167356753579359871257363455333314112035963202707272"],["4998850434307578054428761180868896501043975298526946959073488051169598673617","15540264060716473214807198712377370634442340233134530439583331914247330594983"],["15747637158769157332425922128305001578655645491670891780979062895348195865087","17700320741773881937959765629773863706650289250732048535246813179855497106750"],["25431127687324366727001890320945836645422859641693679888426177886603283174333","28176880205325282468469351367226415399734060871540538810174476233672492844215"],["18544745265823880888463495352114723461554883040104510561887428009357418575256","20179486472398374016620307191330051586037068220654694015143887247297712426839"],["22306367200982074944619762353630601769634179171792397839766970734507243402289","5341945317703151385893301156724252624427780810564461218908369948399144584952"],["24443407127231316947765981687365516418848133547520968874448056149264967042726","16569312426488018860881752540477552872932114112019344556996479589363559089598"],["27607066218853629849096930772312456791838832382002508029008326068382412899189","27030015888874842608622428168913402746734673239235199948902833609047669660525"],["199982760560411811911832714205643925010603089004396582333912454897162632100","20317020060875031840821612539617472993046326730292430693829152402140457549655"],["15859600284895819675008697237248740407028336642833695316751292434472906971649","19849218984660728086515459271844686374834196875854957644705424568015754040940"],["5795265295850484234137241326400653756390355175701868726872161619688229073079","26280831605276510125553907081270069620049035615348936093873924233949121298704"],["5369278845815951615284188396598235331249054306410148798927941988740667991100","17608258584557883342553198790528271305118379187410102515144997127641354217967"],["16597809962001822465076540655763308387602367120861037717727007917455075585419","5584028726373160114157102149448446283450924083083191524685250375038014205011"],["5022551947938904470288257138326604918391632176830207664964068297480348811854","28029718052494165587571935370740335859252983373580840136750073428162159407773"],["14413900343608671343986730371843658696115821220050018868111514360305869217990","5896156819961312685795381070119546958017859794480640006272883690022763073608"],["91924106625570820920015420645676705530837065786125211655274309101337404207","18209717395018095602065476521676327242148546692331308920516302067329268202343"],["10984113804444848148132053139479281092277668929274257569660753814402822934569","5179465324724146261949953992625471261378388981877139443124030781315439012103"],["22293038714979628848369060004726044237941790372637261202657072816493790895763","27897830096614166380621383708279858325655060469755989247226309806226898129855"],["4251715378125630751369551795556280408212458881433161928487920687086376590609","2462349284574572819374669162920622188685965371294457097147873497662207215081"],["25018924815200468208698141978099775420757046696621944982232207627036820034854","12621345595852450166526461651196548151883423913803665806052455399336848144958"],["23687939099417475220004475969483880790131492227878204833363318595266278991927","7968805602640562394826143541784476246691977594219408835848765607636103258058"],["26142975551106942054741533865477431706636401918920012864369261023408024357297","61561718893848321049659896771685504492645664721889207419818397109891483515"],["28877923534712491474541161730402979357574166329326379888034865029274080494458","3688552216270473616830515597809571767337560350992684785249930175749367259619"],["8942810363448121042658721335527948258310482254426951244062812087852433798312","16830944038694244497828698441449646860158242283111536229732736586954156463964"],["17142404059829568863254498171963890809256688671770396896932985643464498481303","8544276309820428377818132275848801609074882224512805841125819044177226567011"],["21954572092768004754144261547951603296188711440056510713846151913182645442888","3464309308621806575834397653063079217018324835511827437408330684857461470402"],["27424756240302006415798562548163203813509839618193181575840339388768639605008","28452466302132459613615070064768442651441709495512152041996464726038324408276"],["2579561361575227480932466583045549396665671523133140588872127547942102310694","16676068200029863736114059385750671912373468990869987189834106216866312975050"],["23488619870893842845990231002445426692306626232946820480735880052280814944765","23840249532227086985952590192338740667943002337921117073930786108180007031071"],["11333166242935221371749273895502464609406101006262375430896875370642798804786","20433575935565447675634691228046215862588620947270301849305487900294373935617"],["17061413639741405982156374359600035447734711037228899626908444150033626755157","19209882417710027134069446873945857085843524104017863925526342149748745348264"],["8894202863632619537281402736844295050053631400007361409311294968888455611690","14052626795476646878993513706505826042304774779154144550753345617271784854725"],["17682759586001113768773737252186015410405492464853621242221023585556845454309","17735342087420072438853100329029603237315770106373089572464029159678103867730"],["10011945294007625844833726965949703038996411033597602974510592737101600059038","5553429124836765097746251159045112984731599813307199184786698389102348750388"],["17164377558756346021894111945901195031005119130869619227600819774188998177789","5934395352553962817228482285560962068836603815766516718058526920881131940416"],["19590206288917117351394421120301898311568276088559616671538529646430566516901","14631856583938512272259332434874051777398188520965584215523443514423143461368"],["18809673594687999640490563355071683714860090167391266258885951964506006356514","4458282593972049054717689168961015699604318948228194438060501548149847611957"],["592267272785580933310481342834256183553516691901610495436834066543582764002","5825193422504164897825574228081720223564034102025539783669334804106166986307"],["24296577387170616162859064784315873926055982089895037803314070199607897038597","10624310157386502112868189367340881381039115360019166779684758986946222199844"],["3228392301636491794026374684804886069443001261544306686483965830844878989037","28701690212453341847160317468436672163707010061395657866575456755517294346252"],["13505951302635431823103466388595273730146108059859929661720377309682467552759","26560189223622664233875393974604641670755307493764624006577201353820794499076"],["8433541500150393504530224230027028614177292695259062310380290624082823407919","21534884966152843134262643207190782899383681197957859077793995792616158513617"],["14910953733516028990956732442415380204840087276172050671238026803531651642835","4783335549679316076516934644296306262448432624882212389146797212453012656533"],["18387272069556756443207182772733392967340419900151288624115367453528406509521","20843350145254213023626283788570788104051324718732274803793930215127918216809"],["17599758661142994739481982159251099945636307135636430349539623579273884320454","182950905432892629139080436044730271742251887966141325214226884220906113037"],["3463441547643475374848494355109212321973798886865311386431627792835712949001","24813199651257428285956095573711699207761586270881690506096259592357166241024"],["14453912654982262230962182403554093269194325536200055634737833350197947350480","11002345441274058588929399338979600103048229185101388034805440447348440155880"],["17035102578149744307838840799624272582671385961972001353513528287230644688371","12763560721965570953637715232301307867064859110996053466908888211940859029836"],["8615154365661299058457177519390686009437108139246381605892997264663602871232","20435252785197430024053556790527533735423149344730940647550102740911556462540"],["16240091150602233049352072323347307983177781232388777508382985616719330186537","21103267147151241266045561119461619693547629606916987609929550746972131686992"],["13541796873870342014600881933392845981918267120779449425217495976936170702184","10619125600703128073769876407152753696827818783179935665434398511902652109072"],["5598123362403098066864668614340734683873333263305603165208253152860241442765","14237660070968524524616035755547441746343404075892104253213181832117984746870"],["2262161688953822262152619166880158300435999307072263830755916758248507996332","5202049257968404069629468333585041360983539780067558616767230276914703737366"],["23967333355576567477028422679368223384190634080965354716003430315480835135911","2228050130158643479761086407638767248598658674940180103155285423331354036980"],["4445270455845758462801994859237183556307165901136143931739445500594280643868","3087152971622366222205929785300341586079818292201905734401654459583709359307"],["11170231896931438405489444153401225611229443021601777002512155609800440097562","25681726361393993574611753729790678622252698872694976698310027324198750992997"],["6370103634085370005522632925265599082972433753457300821449304915470453006804","16528286945535609673681569362308369283353295288446489594128962672693611939554"],["870919117592215916912199459355232322129916207153373858930364501307583677742","22577643986706320411906074982919980328408666115767376963282594848951691243745"],["19330452273207742570159431536335307528738486359288578674374735490334665315903","21736784035152807104610773310744972235504993060461091495011564108414737180218"],["10426730429194179350711309065186432586672401307773813990264082051655987542108","2238347770727187006724294484167181080814058072388262868639085588331694313947"],["14144075205048134453536180736370193130331314008490705741137682924384474118457","2774605383888046721330785918316499797911267736487123573389665648041782854498"],["2434548839841093937199636738439419035055021564145146363596779678000693253144","7640643172237291540376180143829812905287304995267461877071749685493408742981"],["26037886862906005740783173200086212434646872645863086302167241763124520382777","5831027895604724441710314926214299016619687639089091149897575312121798268424"],["7552359060091739640642161456530044794723966021158860603150630724108381284370","4801794594823105727841078768361911983560427089367398450187584152866660822193"],["4860646346445737007889107241407702743621993260082334044997209518296984452708","539259119476535587379499205165920023102101526490423557013971514008608041417"],["13165200973068781879878753948742899414424984453487804318931158789761656480618","639099707870854399883779618008483558647967077638984735228945488422799580831"],["3426218907134225811893971377389701576103596170951222452667657946749278110769","14812462416900121373016141551332162427965029878615596352513415020819288640822"],["23485030831760991765598871437247078174241916103591505908820571460910632954168","13241754262081163131777383925490666047437494563533892774291193290293450092715"],["14427330343053666638908419432071839529897875146361605338732030824655042946310","21849590736205954657739766112359038024411402246283147937234529410821021077932"],["3208745556075297309888844461087872237223019824209151883496132780170288895970","3301983024666867499901093413156068783669338016001660769726561727039893135333"],["21721087077044782086499082708215225152012486409387916412849084887714287984834","6833481530066686368986992202669711520071233121210805234419047975449101544810"],["18005673821557902537581185639744389816689105441593720151602413754073733538269","2020648104910696310169765433680936256727903719138572569360098471353079056373"],["23484156312444808376399467909981563341446481548139208710827512875060174386708","24106809563019585586331201461110706547318992578617916245824940899855598277778"],["23995972396888344826927661999096328578809837439452801277092911071127819928445","14057720708301046977435151583115151321481286614222364229714609798312137176443"],["10039898918390345791449291566240414449483671548980475832090087652604158727125","17846108710653102548940299643533371827229654748551737040855068414024765272387"],["28498943232761501953871665676205965558022495809033771758118463299591285341539","13082837253699071348027712269805783621819714153823132314280146954830726921586"],["17842979179367070650968900651464707881174185607379641694737754317214732052240","23296325729778760339995683477321578706394437902568459440895089840082961860443"],["15825257085755065922656249235915210499383879219795526199132844314071032413127","9201682597336667925649999852403752057438095180365497351644494506903167576200"],["23366160313696175519044172918321133032966423912067539151203024597177254238859","24392902075890032746867040893857100478744345075463304528258458874266256777710"],["26820903736865802766806212303286455213116324101438533299466752817342539729339","23428955836596154241928494493782697333633314215074547481359288759697816162415"],["7605419577247757236174279703930783571855646347689821055919507032652379925223","39986595444316722701336225989480341374052308925817297371132642789339404013"],["21306327100879299095840412070688406986536087379380310144107164019462434621030","22505216468967038548424918379737894532354096818907362686857019408026005977106"],["27735928958442821023222380173929669390074161491039877760665688731286136693712","24546646593921560312261521796318878883504841198943990337014169500993777093033"],["957675795861813899425417802862385609164742188679331340216835350706026130963","20442934424736220512978818023921081855257163029753551864362775448021080750509"],["9181309394301047742817215404362962045841251804345194426536619869253048729584","11928342689194622524522369529953243092286078075291307343155019600256598142588"],["14502721285656843593746297829241759261512912351912515455548392850243577289914","10027592492169352059486472985349880566311333909672392408673762259675466268371"],["5377671201119234950612536475055887751341391616517629001361211902996989768592","1745671992140943276810887793855302779103943519666745546155206751061166949564"],["12575996275512966164688546113782226300632733395342661180324448204121287146024","5612012958499885616371887904309136907247095298214611440228991017516418335176"],["3440778421485483276971127618271504364251867470350085601488443019092972634798","7218905227437569385724466792784254985723203119724902645925061601507141367767"],["2721450053852487399584664027567538052693872181900007975330964990997701562109","656958815447376357105382974005567151077775537467662747784653639855274191811"],["15115417988134736477983129026332023598505018174129225132865631937759703145249","11566812375012003392996867638931767470689375294093964622091113857039509441509"],["21924812341657755525743258870082315847830250791647686311641479733097991090984","8685018974877129403204119108852742606956190553635846956848602813000854086219"],["10540460673106613491398631873990015489670755620956726431545433787576552895911","15262498096245232015050766366820138508245458235399087683044293502040948516348"],["3721907419527285348595492509462054085696548985126045523046886420038885086204","13240699380368014163225705723070244503699916683380219637204406075873152952594"],["14244670567363028571108838878866518798170082233720479223700712655556575948480","1934533253545859597174938459104373190795321150394660137436163233818377392323"],["15822281461786097930996698025104124604125206573322974200792096653370528828489","2227096461514561622509126490381215297753313071215566224835320706760969179248"],["3988496155121450536153692810419393219384169081768248221673968791828163607850","14399586925053806511573911273506485870573599277163417622454453796819007927540"],["25152563614670608273062930943317493568576708681806576652992836786794358162144","8592606629899908934014593810490931562382316692325532451594838393540423124854"],["13904996823344415866608763117205188083801213553243494215507126193492524293101","8570250568482328705779247138752617125290216025736136443093214523225789811284"],["20749999928651067860976083150844458232775121993481283835526427756272730547540","25991257081670305801885580757525601455842523970569127062690381449183534831878"],["5849887963885809298514208414188232988457927804746632904005438976398014693533","4151466572424495681272556362632252246382627772152346318989890404355701401386"],["16989835326260801714580680436684130906661885992697643867164029177046501494809","18361851661340439791746847974208487030890728349769225494968962008833845814342"],["13107776665473251155473360676889049123327607832070383950778700566355696243080","2502514085957951172321411861750328415984897391202645706637627858628123340196"],["26332400039752788836716134859999101488671356750708628392217580994552570255749","3983816433494860732402822582459629578826493776165010101936867166296830896044"],["21652618628078670056043529607142137254894214697903984697436642303934945365900","5636782562940926682059035989757405417556058913981877512915462078685870210117"],["2302073838259905011967459700879706489795128670115208626130302934984075708578","3180888233631880088967681485111544000115110052801474829438162912562351506332"],["16981874449177602015436387457577046678010575725196584331955120774673796527427","2395934120233174993414573693980039519763775186127627525106804799447137210796"],["11635981316008245996785843777869950258663285617693013545684259091436880170826","7698341179384519202533586581312519356867807234894042181438496817372054732092"],["11753898312380990352984065022017627226297102352263301094888552925106758501219","1400966226875015855886218541718714004177132123777270814085001838986276267506"],["2775938274831715800334850500662354664368595893195329611515610852224601961885","23067683189453374004776187064544793305077167034280660085141286315013805908093"],["15483352912518549441120825820037582268323709471702128408279656536830205328659","24151676568914973270780886022066502807066927106289450565929698117608004444042"],["1168816157736036870024607002143261373031041804627848643161910516424402007888","14575875645942499939783173687001953702861287214825355764693473793086204093129"],["1908141421461188239517427903428048212938011605056778804543104245006679725075","7896311441151445877611457568353745787307417115520323030918011774615233530450"],["24641116282374988505674081992320346549392159997590441295766114420416833647029","7576854843078753827435280237908237742836917451594354690712675707414404172119"],["6491928651633862600024410559669045616268920520375218905866460269853676167577","3548400656060760769254085853753306066033359206126953341051567734674685491190"],["12095765648492446395531563427307199590981220293343802305089776673101018050512","14287989229727472917053505723097463698055183518353124868682869544323208512198"],["28174964292561291931680620956098240336854750744859141694528549799004130432841","6670622547420937530258698986245498969746354037353249664945906085520025317091"],["14137311174937312633312936594159187498635259493809155218340272580029121701980","5780128298551101198513146416155475951447763593035487412093687746517439032"],["7342142228869375302827959164202845429323429197079330900244744638085939501482","10746663162793197485065455625272758346304009501372185717804175111800066489088"],["1620159664668661054662285429841248762505457994865323702057351459999605771517","5565955884325705293363794109054181573291113511360019168466081799945571949016"],["6099361101189899572627087130989543275055395663384271406002396818621135119088","4518209471565125794978168900242663306141201960118634597511264803963584712828"],["15677279212348269871659899847953438648211553908823053748727517207129615448511","5585732385696155296796088829744476618483143758863662966226954733112234095272"],["17593777182116504693014928339662819570380110177639659934525987435582105469756","9751855670698095842491652863400502601995363641934477170599464128891434048294"],["6690292799092357932135369963985671536116674409391712940325634566459159526958","10203043702194698112293263287799356085892548321441583405824985551055684930482"],["13425538445777760736663391763092269468739798941024137930362226522530534027407","12112451916953576845823507110124264481757378734833857571807586877214613840326"],["28709972590788055783124421167636567669788669243296623753496885432445261557890","23833007876323007266761216182884369525367125957096555153278979497368076475845"],["20207559468229430740782616900299940976426738361546534402833253816119816735813","20910700266031859989351512718207051884133600489689833728874600121225585173777"],["14807614158249449360089673121426561955989784866859917781736155521052025048530","4819373411461966715299080549790721477428622583668765420879524429856004954464"],["147505959520379421490363630153294591935197526353673496897292042599324555300","288428896006499397927559692218128968106922365781315942171428581540876375891"],["9781986752824925082341871006052562626128956908864187884834804810458162124376","24856550452222902042975172701025184115476605493822680568625221953930641132163"],["27645580431221386014876781383119671229738249473491910202804037601903037196820","4888561369911825667575040516898667083727288526670421846974023625687196281911"],["23169675395889839055499400181639287062880270012326496622607757011013759164947","11996138991113438380185612820169027128021562387890736360016067793940892733483"],["25755442320287217532335481897373183868700616492666829264144235259433851292708","4765421315463274784270760606982420459252889318659930572933919396805919766824"],["14365025131088648987747347268925060582354756989673775354797752345049361222716","17329850332501355696005403899165762867639721031881672462300732936404220425272"],["23975448820867930528401957752851756741875860490056196178316410614088126496409","13260252113311248704779622877376784606133464066127538257696271166869153195029"],["19539183809708200232012153861149300522523114809674708414530169773491939012512","18859568223356500006337207081020374877364225720120494826956977152163520229071"],["28315371615877559557436157734966109709971907859561176635473162812749268183902","9596249622125701166022863222452417399646372913038535390695557574581673557122"],["25614497429282124050259848215831051468632765822113176162988285925298426800820","26219861602828372052181026258770628012467401701254375192244637912545516772722"],["8054962563872866732019943660188209880700550395809116743070640863136605324540","3629888771800633504073926879518450812167838591121655417565916485577737614720"],["21353773623429261333994984053324195077379255745007779259100661503830749129235","5350627227632972423229912595455923420704096702070470758709702880948669163441"],["8711052853713317500312980012150705185241591581238746923776093977171853457443","2875767965861482782120758839118238432248111865351775233507672050646438791183"],["25231824084804702398084929707010326765442934850946138590453872729470356738740","16129700074055699008739051039455387541398264520301660851779042454630982839217"],["13071048600988205105795050018123282398401509514961428501636378102517554974663","18666011341160075426189325000231414681159230452123718340574124637428946565382"],["25246271471027794146520899073165255088920203968594896773634796357695362907515","28007156336420576885203443596465605469893778823479118616494410430889102095064"],["19792800929764522027350355466517802941160323177937848979131627345618121323007","19282381322805195427172516768047668765775537363939628821664318583675862461712"],["4807161864917434895864505753043814265833229168258097163770219133777870366164","18209609491525917012246489887761030837694170375647347676081028243952382359267"],["4876249755763085247531326453547303782363328078238344410883117005150780467752","4553666095384011018230301235421902248810139393350754040384949674816963235530"],["11587379258097862330035837079366305504047076426711013778499517413650020579921","28107352426986962558469196560824244873567628384019468625545789286746221663657"],["9433582387077481253871345802220228906792678402344078721587102685805531981659","25965239649842959822682348643599928312575613875213566118327684163835121033083"],["24748514945257968540464139666664634523847012670449268444638309648595004242161","4508536036647199041646597473882610573069571773617767473601115889158698167168"],["17333547583484936813907261469543335207205362744078503533905115726380004102864","6589201892647377208073674521616177354994522465179222124686684926451685036284"],["8649813330797712832940784348884695602349940796822808166059097139816588283920","12005415181063318680808614127072717709651282261739164591757878731414261516019"],["2349807094913670734468081036597994229988508022709671111846242165932946816064","11929238958085529327317459140752930596068866280767532603408124112191879672285"],["21149273842112567069493872297959159223339968204390789524576122361095234438249","3265082625300916994427262074570972017504601899823472240145988532788734844724"],["16834676819188919374147433737698018018737718401894612446804372795910493195155","3063838176906385056062944648906259733905302164860423954012103400606352553152"],["23829943095437541161175651006900161339332004171910574812622422958197949755716","14531554347479349142244059635091559999821566304571753608241159988734808231127"],["642733100401865498786585799533694274235379420508162030042680253535531761081","25333713946105854872300628584151374757420024211491382926804404133467403952603"],["10769813480518843985306197987773879506362190941484610218596135294103514488335","7346612684843482793473743745831098083617648321341937209546299907897997902549"],["5052610982325366232230592208891139096428629197521787678076247306526657815453","10282160249892572235306450207959617476619717974655969188996369811034101199586"],["24781447312760168504962473981927631281696168708587884119098438426058494619153","10605267777196483935111874032593414219463656851693026174575309368726235448483"],["16214502082924872707730082377912050308665206850257031423798768286603941884297","12331232634688734837698188633445318203904606548853468121394782196082030734999"],["7856145654928342482940209920705980008480017868434576030752405588155533633114","15326164614187840877845207082558607260534274049125414591601557015727992330148"],["16059994032928289928017996600327103494514963892359606671138559132549017334830","19066371699881267524190758798095929198394757174124174574493235072574920551455"],["12627516855886790202135516468485721589769453534663298951934908444381936838396","9115757444853583152609197700376120787726211867767525332742342940569209469772"],["12762637003487509638973721762620739387074163615690299774684117240212580375468","3236964984989939917636513778688040733061818726977886217877303362157437720879"],["7666670181960422994881836762873472145050694717916484794997414408535788631418","22247280695479707292941967934461778605760687636150192986649206338687027483949"],["26524448082780290407234827944683681942509554280533873461496997431166810760550","11638128003852984160902527045586487556137458929113220817976388582773834694427"],["25768919092143677524685355539400525110214086513520049411765549769509168131994","5066717405036768117573949857424345062145781066059136150130942872170498863883"],["2568804503480147684148243152384708547621946056867774459612596709686794543882","1534631424851502344356142386571142545886064187360627316491685508955261051633"],["24936702258574374690217479479699341475888105700056777895874761345944040404654","7509792356365748813416057230505993459879840712541338076962440296276548782933"],["14728060570101620910239404571325754613439203143866251325786745566643889246822","19312648284160259151970920838540184783284966223141970009046302119198338364539"],["2787643826479560238384680161716128129053780778679268267082361641145517247372","7489930580668443107544650493176795810831089118765122342697049971094802588608"],["21149604218643075505683102199628841973858877482234472038960197409640571622960","386778824798532403733337803097350353645264687461944130772034233748203436508"],["19480192527473296114406128701129630817061663504420924816545618847326621540752","28498308907700898857290960437637423727970083794867156979021062883733279265993"],["23286121899548034213651937255492851927158740874681099025211137567603881382088","19002664952000576243644040775375727714955347295409929963145375539620803722998"],["7210042996210888370631386963862977953646778849268188828026276260693626460912","21601074184014794748688156111968430501418244613134054968126733674192501952253"],["12071409866697204042709871666545099811993049215066529228799393113516195474630","11155231538915888043127649405063836228510746202673220701833469304216291364580"],["504603540615465351667575855868301554518025841028569603600358040204402647248","7955923864282340695859376216467005146126190595993045484584266785329729303816"],["22609884707975414443603527134052165119730636022160063928919758341543423612703","4473223628728768129741608332034056236230974970445513111529659402234860582403"],["20472724690660435625392406409298657146146711115266945031078529935960660945448","6657834017357526552410005667219392551924773960061522472047854946961971553271"],["4797658116659311982310578294992226975356406355518212288094296085753512046076","13117709603473354224463942559060835652632640869235017949123793323641486410615"],["12109168345378343598297914764887522291130031074725451469636406074625731472357","8429077464523303311979099034526889403679957280373003994836711183126915123522"],["20391296324319987204057812386789708214094208332374843667602622044581314246477","14515805495841470423120336893570489751453536103501828261396222185371302172205"],["950636976060857344425221229794941490753468733150604287217040141092316719210","20028802151221076684624100368104175547165949963875711752154344877213026398505"],["27667438131604394190710711275130339693523621149381546883550696698632045973522","15492268788215748444916473117849565963400270080621615750242042232978105495855"],["11229224090909548214174096470223711028770755195827150641238220691435738299819","6372371549226229790140003708608036509021440168412465700954397725302151427087"],["17390006574723232040773011053832473557673006876140561602629076054366887392560","521643585700244644545902008376983098961390685988052491028773487728280950283"],["18708721071035789161194209124177836707139872856885974657368413336572763617900","17055399444570432735456215011297857962807774272200302138544686891759522636429"],["27379214010438356360709307061796620009111683810750113892964910133626106057849","6105573380445298370925481038623976378298960644853198609322078661402149824370"],["5107661096266730904332083091458395892079259792650283218705476012386189410201","4879212935500030783336213623525516597730201318641057091741360263134131039793"],["19875824204700858426114372980783430810045265764691529694091948298856508704623","7236661132575548719285584946779109509730930444116804563793754297206905522049"],["2469030790336299073888926555978840111815174766722482443708077198757817700330","11728063646676351158627414252936570763386617980300515268778709495245413725363"],["11346196792734016489333253846989189783243987037989942580461108266267840638090","12406811062434687178630471227195605738724013500237581417519116652875470555117"],["9709529469743123011285948447808744276849949531113892955917386701038893718126","2472922112972249285274234601369019985664381906168116908937200854260201024082"],["14241581221052368986047036260299976352768977299205781426681261931040612581986","26215794074699807956573887253127571983318827422515548043071582989740054415763"],["17708176821917587940654429473565866749530095177506793865756221128139929386985","4818327477320115865382526793750901714258784845745017910294176960918032162807"],["12628254534715495295977662780850639993530985078698081033717844403225489714569","18146429896647926801535929503197101872367754896092723351148426788619783328343"],["9735927126997097078623825218684971657209756440358037202654602873829885357655","27491117765466936611099298783988827774842596352145086647113063257310162051291"],["277670756667645302204970040416728218055407468764039475659735422987104615637","20454361962431616459056386122757834123381813431520934511571422503046531050952"],["16458801198103121648856304958287028792046337881402051334330114821848396742198","3004514127001346168983903000360607559702902290165773442319942403518574963381"],["1303484561272030268104255972522592550741610976949757392480021758009862912416","11557856265585924809807385699390761294576800959346100619785996205166990457759"],["14123938745550901226227835792308055876915165039469206477204784899686962635700","28811243991637567494559406114991628413795538983145530990623022706417191574356"],["24656254041044031903056659119653598353635034305420218575374720261143947988837","4618013481971257020579934103062160639565412764452713562179462894256314985789"],["9872165671719433770583403018865963025459051838295964577754206056051378341659","2795663500928213434635383064309756587578952130960580539489269385788396426552"],["23929682036602972089126885115048728021016618461969634613839908866009361532644","14675940198993103849481618033259885066037925332362766393555103232763528694385"],["10527809027831616232549688128928424540804878528925375171036215211588469221330","17813113893267597711629586436408754920205518442335104502697157241005186988791"],["14978474147313471417904822070045940773697857216442186064026008691222490591862","2593769307656131313264461656528893927604968381648882655188265298070211066424"],["11555819516399705665529989097682465290559681766781544105920546372766184456049","3808365335989696866817981212736728586088622365808621390861712236389130465806"],["22443925438582772740901716521303818912795344166261907851448317593076259378127","7759545889736855202396178155142552641663840197820447683480151316319414992922"],["10055031169293718231991443282283539849300325234502423533289166113293670008319","25904704933626728100845984234087337853204747826807241798998211116246850414201"],["19516184845245633664871407864713269836368530109648735324903330001128508646148","11190567145678113654627096397155225126485665469167045177333804924192625401412"],["4473041708923857463025295665946317780371245830919242489852057979656073778656","10492933656883602743882763494124778201250582808886455433834279912941712189942"],["10591346058234189579309903891415394926744539586517130228533080310538622612631","9451173191569694033921079652118750519025927751842512573018076117681440269785"],["158386931184221032339479228320117724013648679590042240867053673290414208323","18651495120296047562809770804813244066540603421755789903646650361065487352691"],["1071987947584350900376299287213271540829730727931676865367989724094408369820","22580631411041502776314945094755889886440902754969716460697386825136689367746"],["27977068648284825735086963906911896880612966749857937578856459162546252659130","9418151982653231798195068421726426299732542067884919300039923798901222730860"],["1003033727773461474969657649476139178048560520096419267862269968926502085737","5725361367834566697395550209403062322734143537530120818216272352016240873929"],["7486354564828346148382828622573195152144435360708013231836811370969232057369","26427822172350605855895593521469093482079737463415035085836917575469286902211"],["25798094923460748457572861294446249387158393480293293752671309582503423020695","3145695831667679045508609062637702403580192369905529591779111527983708562796"],["27927964730366407876492615889699511197851671209958623138466811508389274727599","4651121871316163859786605675891708022668476737716360244980848981666094081299"],["14217157687399108337576789430287135898470148294051850379702487296896169069726","12133305793656627668914555591883034809759547415824829267747008671460436955281"],["23882628299826046734447485730446044403242370254004629905932922124575706566365","3785409568942264872610183912756176119774674511899485349330497356378395054581"],["15920066817555235336117203119372902776060312097002106163015713886454983772554","7540035022037563095525731586548180375705332705775844296502520611025449516775"],["11732708767826010723856619096410275688596460228784559002206141981501353336699","2798470274836457381470614090199621252470933126653636581450639135413826724831"],["5811053628502573183843598294117193125805570255620111337951713164154242556077","5420026865084876935157928584249686009933647099816021335755184121811824515715"],["12979847949362487327296359386566411678943739212343649755110923404804845536691","27164819861742480208144804676977171328478268382138793133004507123276437462368"],["22970718750716061467542589968540593047753617568721607747347229729010974673024","28439254808478044243176837275275945592606716962265408053612870526864174676737"],["4810019008925326920794894614559780511653419603987850816848356015804906860563","16075611416682833955814438111651905824782046965594205818951540358021910048013"],["18807753725736108652308827832099007805562636527034799588324844106168222789899","18638908302892123739632012014614249026710014437935006450736634149887059760376"],["11328723581703096698367235576095629138957093761085955513504586529344342159043","13670727350384791814560701116988167035581284101721568491794297098582545961320"],["11482349870054429866560254029431252491979966006189240865998311848330023939147","22244085287503297940020313677149005763546759151308647839098015747896792621212"],["23159123067774113095073035794087114063591135720176987930496354528566367774877","16578489824688248962860687653119079891925122477594493211798175840735097126557"],["16832518907851309403868408694093027414266380153192574155924443743684360369822","3010128995052738736408500015580672806715534482695761419559271901349676400106"],["7226446956907383045384252806690523488084266765894299607557121746163296525388","7015169879942897917228470515902083007105385179512693883627052352441426351417"],["15292017367844918274086261683275825374381144494870550426879271959676965313053","15565035059099574877081635934938328667024071599260934996714100603510591857034"],["27596259799014114201640632656068275026520704239898217339423862320693092268679","16565703889394144788511119516386896953118770161880212276976871232849358977691"],["6184050120574429839658422891002308251754478280582922997199230602654494076638","4913483850787994380849663539418019660273395991011750425421608220743232539520"],["25223905079264021711387960020326551076908361602724032572717888434885513961689","18444344983778208789701150358973829834594986401026223189599095836914012673807"],["25273813732406367537920502665958962046648944435997475343425687618515718752944","18044634849781787743345683232168617602450839078405681884462032036795718255748"],["17779090540914687626301877992695244785380467460999596804146815253365753470752","27289629347857450177518125451288466902608941889488673381841743939850853340259"],["20692810957120506958637589090850180694381511915327528342973943697250561924088","9446314804579377111009339239521331554957660237343063392224927120468369762569"],["2669022676997403018412284521066269480294226926504035663320602814475712093498","19594330576136489496583076538342469122081542342781439788026798479210767186794"],["5471738098519487136801449406769837279700502770910780870585386052444480296260","13804527190403621766258611592166405809616648342920065579861426850650391572285"],["26052319256887728777685674230674055743259124690102069869033707198043247916951","21501591997276216838918908740219250788659393836883689593652232959594614838927"],["18376089301119540717325318773853257374705307929902331139016570091682924538478","23273422017170717051743311851279413467038966524726947785288683159447151382178"],["18434359051741822889810216199432277883493323532782724279734217430991499709903","13515808977505809119192839447362416387362173265722143945849328419635261800541"],["13858967481009283812401305905296404608935642502299295741937381190228740678920","15257567784911811373184984258451210781490225513584700911510794553423658744334"],["20586867729193078780766578876050343276496503456233683127782195737591734475665","1814123370166685594560833082298394116113259106899627553813850673967776775440"],["14120488634776681803047468691204389858203859501505275086560790543346150274793","21640628761742811393036945863587934922799874615118618078963350578207358204651"],["962229469919651390502081555317359468190869526365191358991656509689645347848","4820162551533703229887834520041462873888971017132715996170958659836307177081"],["15963417139791366424138037322614894958138210777471536187810594865064968442153","503253825454753621120107931887754034293999627272938856057541588234043214928"],["2208826162986001401918971929825141424096054112237287221375537626746082883445","21889775826232215206505658954981233206831678610687848398017504362135307939104"],["27944221036749274881826911946235048105605210235526087387402754288337152211432","19381826987651105947050312081830353284639800509924316756709697080630319948259"],["15345738907507937377048220019332611046207592734446250437035523914374801980223","12880277429483474722999512452361452521556541561420632990415855164114792242950"],["3564315288508022423096199007156576268997510909060110749457356128062559346901","25907966620240410278495029026509142452873239252023654504903093083403999300471"],["28302062236024793036208529425801280179359448343287133278445969316222615784392","22703504136394868137599164305315281167602138782896540224671259417895721536825"],["19651710069789729522970213166000548455491091313252218659421044837953401034742","24758252317097764640647478705235274443837620703216831496413525615963791088331"],["9008540448608300365514471968940551995680849946797864184649789778439108728190","2525565606178426438644299557177049816990843295647277249564522165337981346204"],["28088520403284944317450259192616788312663886408227453806477573837991520775035","17617909110124477547848660488425333512374254081543194706649494450906307388422"],["6407865276848668573339761124941325782504734635371055650840196041135338505684","24867741036382950841608432347097928364682584363762373232278797542177277062220"],["26722804057834174287552195312700437104073791428513548193904792376005184717440","27578978846203680500864364208093827772032594370515741927648918797177478058221"],["12081677372904933843079002531952176895068963507340884356109776452984974554775","28234166999379912603272671856558595470486362393936667253544718542811964004269"],["6066728973569029309530506915671487926309050785267850283671082806294212276748","861705180999271911662086562373615937112032687617524622044410094367805550261"],["12686979823307523063835239934750791194478738965193855674403809117980169819364","3948934458583829985870089734381122370083554705783504247158373405816369861534"],["13950717797687597251248207871660701015173087712804280999461105663806808880865","25148971351385748396606675096684213217367083170963792554398565917922514808790"],["18743643502779950793633145390097875043603878677705534913175556554128881024846","7983201030883808159990198053965927539296437443688042646752445911668886749307"],["22238798710263179469810358769855057952819468591407478568498293312694460470035","1852762549270796351916033500053550586000303921319151469030305315375925338736"],["19331487959998912840096716267940071292097141999636511219051002650321406552607","10190302351939909821004428662595986189289152923672644850048909602548237593014"],["11099561640001239548990688167746010774048030736977654342809545025253282752007","28470302273459740183462292024701979966174025067930080714795049035045356366344"],["3124097954564491065193598334572844574637032259256111290615114498877487201100","8246494858941809613396586247230267812140938643820496876874958064534885152406"],["18493142868036583313167155691006374591388805169278535513974192333645114183831","7646348557987084332042807830871665523216771112434564153175962942119356809429"],["12953545975189203538051482699223210362704232026056774390515566402505613180512","11430657001723620741790042374658801099827264075203564407562153468863703979264"],["26239452228713794526870137216681050929428838636120133918469679923723274545599","16443899124492761769159907695628088648305208505173732088169527869271555622114"],["11095152017367410252739178252945250775879453424172129226199318199539025411690","10868587251469410888487289160786653687304066816495512285924329713400855065944"],["8354606302585765258557515256260529818262689876841974504719678994093727067737","18913440408995631367667469684797724707274358863438535955807282284366103932030"],["6352647860339877411109513593852131659751451438599102800461538982016987292504","1067096876731344765246484099720896840567831812023274421540655226584084892144"],["22759354598003958730406621266397083329838859777153275739845161039020506202216","6858112478340717638915005800887619698504124339533949620142998196547927323426"],["4258411300459395692797953338982317880966771935260859191418118291646948690422","28035329995384631748913134708605333349421600834249002202054087219940388742440"],["6651049752706391372346816073478955209543638502663094815749385828398119249457","10652294863350134409402831680602675670765579924613777859192466446803065273533"],["7347474701135453292414234184795241221028566166839413080086535334804512989836","7597381538930424946106159391149776718003406734921065483228570205267206392259"],["23592518080020949174692982027090395178792002600640209904283143780063202090220","18727418132566781360747299243808909591862681116783602445270767043553958429838"],["28696405617888448777223787291966734264441515421875411730335149851463936036642","462741493408197702819700189635570394411230831218894405039445300681250087335"],["15292888584398805920249621598814359180537076553681392981434467074579535142665","15636437901209574266370965825697779208023850431131952382452782529018481934933"],["6075829759518204176159911713024975130276524191115817517426245738154728833149","25145778834029131400763245534327810065772425064185182077522847451345338857213"],["13944407800904572860674893812698228511563198287284729328484130646192905127085","23679980632836715144084538314932305240576858250331684709177382935942176407296"],["24670175471906082263430301614288703868998367155782693331060707308552499171473","10105403806048280562730883917084372702119135007054292651685570773827885289472"],["3676769945278181311081845752217892651819045214955431314912630631373199020577","15995292210601534637755749733506680994092388301110416289159330704584759647378"],["19057262349712083152382962656482993880424927241120058632074804056144948306182","7576773955234388978021286903156445019003353408461481429284987087129026025371"],["27682846939363473642316909332097072597493058036362084827786647792049572800432","9329173267711842575676608754516946307215203236053743617212238008579328633129"],["28393342941847472597305258046305246489354335926401527747660306287957921128044","8020036458754572872849585009428206195274234452429018711236103779136584034739"],["26206580501352920505944281510960100132068398873471034955660361423810436808909","19173234299655624078155428308137709447604216923299588815434386495068581970676"],["4301039149199186032363421011820438718318496799818573662419290892775165216443","16426441729868414253972316058622287936332414438934803061665452178250474055483"],["7036825132686783599809811150438089265267358346094257564942450281014003884106","10391517719199173512878914629363707398399118349667443850586245704267749402652"],["13766672734304070054594831197045718013364961519290093286937712690784566563794","15912471788319330126000931745736578000202334800771401166523180994693445712161"],["12479881087335660625588819485941114926656773476637291520193069476236669447227","28730175948176249281937529278610836337510212225596350738826416283197739695055"],["8650505937547948398758576833405460988468000293001159212426127581799732527933","21297152664860705372297404767077370220280033008703972084041987020867055203739"],["2151397880870713885678576916192320455911124890318462436596565901112859405875","5329097409090897644187253780246381564127352338543689336274885451918814732993"],["26492837233253032312203116486283002457354513077420925584954821095036632978807","8127803159483033229581330092320334397722370278023085547235776355030293198670"],["4938366976750667897259547387224918669338294932988394856462556175533594018387","26287245983792910532631990586096393418168523664412789203798796995733941827105"],["486193436728285923943138915290922460908714478546878842710395525656564623715","10710234912608894545990682528168255403184753029271488805040617440180048201156"],["22142496269722291216328669463878471194124602120354883769348936694761779707998","16877619121003964858729721789909562071938829480761318366646086125183407584040"],["14021111116869306694997965582788909921388950718464330825600386018606251367843","15069234611855725698503370959437081119382774557056374424320428497804796221001"],["21877089794805909123229840774799626838354250442499829827717642991886009254134","24862394622760180049143554705994563096651924915001663124959618834147454613985"],["15355223027658919015876489783652737825931922826947797962198726145839073912843","6368095092606731375669249177731883702259857004324493196922308285617811335483"],["15694994958201245723883225639759344296391238194909764171570670779731784841777","7873653292236744433960249557272966781583595122662313059272003126313324265061"],["7326207089249248763868322305782794622475484411177146893985571994217239070268","6939263819087054083994591661919014785398446383036145819280572302490932317163"],["7959269760118198439596336016239787579253999933644255377143506774631534276821","1409932280980889821933766789731225485167242327377094927675511346007591609189"],["26463565469601281926805532565616587237092573974768893417142995722786786905877","20170747372041728963197156393260474228748913778614535819991621462776109251769"],["17850943972206189628837249070477077871376938616324291458394638645691265448709","27525440279154276371976560051005609124800678822901973568876279480363204375121"],["7276138077632616647412867591404500655763053482758710441866678143168396579971","6230877413927284795935829296404361160314968297962949779895140146925326610401"],["21860194802818454715231650369951748969090615647609444557871419264294942695410","15578897222861900449778262088290669896000107131287243072910329749654279040816"],["4355320420354997536230105312541900703524569837216691230849095442191747938243","8765114214248242370044385498294023680057874862443384624721429274739174763896"],["4192932694898373025361234470228443082541369537527109878027008354005159117526","28340567501126721589119841430616782673793561104544295166871175927716426529032"],["27455607740346454553841963159564870874582108997105543352465808286326489052836","8601970661625201552167958967437670091069085882651169894900658097055168483521"],["22659637886847497294982453111102970563834455596504097174173240530448643321350","8212360422167345468549450499878753848392366677075800199060863016615430130720"],["4518117497482556964786614742207722118964831881733742753114847504423774797350","25289787428791337341858372638330303449453098750799825490061775522095369694378"],["11880231156617938046765578568361952142664321582622790801993842579934127020165","17470144597413242636761919445403170277966966921047690244032286791321427226649"],["9899715970734856177643790571540163198863695103196123251362943158762525223660","12247669704139109185727262234429458445267661698056192891989260586853687324939"],["16114164669299601093623151983392557636244479349296164544426496462577360010581","24109098104563996857252630604568610758117706504275750882981563894464817973312"],["15521040226164230768405138274329234042264954943381256952569738543397338457110","21389232723986444352384581122547088213260691113302129389677277441421211961479"],["709805811753954535003493323807873632808063384283861109341296063855350959195","12505439196597925234396780124068252052851621695950916587687452361446415445958"],["10323242549937915445568592452160833416913686687805961861058468037258869197669","3605783578814137375690867749051678725877609229648723510173933434266920989070"],["1922796419543493495244700153501507453093796677646377145586240323108685026066","2862916088313600628351071556540500096659493151964555531582134543978500815274"],["26593517408710657118983469765149454819825722954156882265414962694684951993029","16485012288969084203504239733868377986046880947581182092918909950342964875963"],["24202102469459366962948097952573208363886918835334876305354950938565379645699","22789766970428628035052734648234027138252001304488128551539053950396179792978"],["3766528174617559200022449819914667717676076863961674590884116158826392731363","21494165385918085958904238006213547342588544632224328353817153039358985758051"],["1220006063908708317024570437250018489715785932083539355334847756765196001613","23625520573088932888407210659057065396672723756694096521878405881348749516826"],["25011124969062428805285129513723441422268802139539281635433257683557393920287","548140948433611375975873550819792362640962820053451308142500494709024458237"],["3214541225978977804911399516408299068714277310402954566579232619243980550058","13576689378585930803194861794081806667603298952711746449189197326433361458066"],["1417376560048080813575006087370986301663697897434550195713831703777973180516","5852883820876645162465568166802355491506066176278862300616757681332180205835"],["18875381767429223606089138680605044025864975825857491397560524802349349204734","7453832786633434204761191232482431950067445622424318905198382920028066103216"],["4605809004560585446204421966468161322322128151354630051270928074579492358351","12069705651980157990626791609868462274046854993581234976722769500768794292014"],["27867097859693692121414898897521464286191965406185231280078695115326901817967","21769868750689916802487872012930083908518403628862700912295964990533235361138"],["3369307878862414095279646768356603019598072753473091748664561373814390933647","3035390368782163232083543074938674717576866360939941146623459575061896337172"],["4689184104577700357578658414675029685542114763257091254805773247744772850606","9638658593206291774892226120837490711850173983579300092753140284275379204162"],["27819148308952279044957049121955868971265612664492056416719705848417810209194","27226565517475815026279125016060639137661247799923694013109724555363554270007"],["3559686240969585045494259268711907807856112251052500366546277119836769665846","16804877726369738245293232093317632648814634715314613417460945821656880742407"],["3596920469560581541221210194060880434396453437296963767448756636132969834684","28717350699242654719687043955864303489455176623013565511147842628043614819558"],["20173284495989092956544530428163230871805635224937322253764441061901629913432","24856720477173696670086517354985128630459873780035264394821623626876015478615"],["6506074107443789865741389034401397596897020970689515117759121195271097541569","1028221833884970216981264006820641615764892460650329569645889136198455649321"],["24608270529518011792237553407060934361570099970904396279389022435372923842631","8069899954985542055130486871060601343422863541917188758049972536752072135455"],["12361185927264199636398176064506987390795888269080710412075422170167227550024","24969151756654376011909422776716990510879306044786364006040627447708492335946"],["13088669990001539279673957978564244002647443704471332014165141910503237566475","1934099490733997101183011230146863000486789587698263843302870542499713518634"],["8876109484485034748568302488712512022616106131486872801434862533632939722641","11243240371591957698243342835656922180025449086002675556957484941505818067815"],["16460754164285266442898451170409430046425575454093095752837187374901503970005","20319732785328494169440697130103085538053255602204278333654194946633547011472"],["20677089525687333732692371103779492616211136380792237099355109739727198039734","25783526035205873496372042875224446036715433074994309115286056960009620610220"],["26735996813099979133826461980097356931795711940233663646286376819003468765484","9686835105692440190290972643361872393393455193575707069895507431147615827906"],["16438588889838035282309696939869038677080786972732863022694262908697959828923","21407994286629892612646347045863109179249526007448065565174402225090353349965"],["16437320615244534618491708840658405967605484032504591600299841649707782833922","1037072476541444550757667083635719955415270903505071428898478752109350118121"],["12919930175877404984314070753072425612485254337819231027178787791557650000663","15809410205971369063457276957674610365006141645351011485559890787022219979180"],["8799646528255997005352155545743734159642849711291044721495608367933753036361","5220855966819321744696599739623187219892383501923472287536983294253229988159"],["5807944290451820370098447534771581671675311239491772780391738129647676858708","1754697998498944622241712864372110917347611952111711642839083104994339662166"],["1075923094475551508689131911936943091159813694496707427353577054984234092702","12391608469762930722539580080846105518508222211407310299202702299992699013341"],["1266722745689404234100917036258255690303336026775485859143146244411925426175","19072840607758726936683653244160148516305396721582084361819332941934935812118"],["12959160898522153340210911392577664565669807449195474057942300046278207483056","14076892456742409314820002049851163441302105630703308320149187902110557205736"],["20264681401042368951260098819447399522437307998370407512399310107081122677290","21290407810215337801244478109245915881759258863173425878837450927155022653784"],["16262593717159887526717514333795193994771246004213755219846957649635538068821","27069960097965449149889237916659719606677714533547667288834801319059972644507"],["12112608745988288132170361216515811358874011914879333816621649681986839226096","17312770298368912946204343251092547677650151073113105720488972710999554292007"],["17914219275446604548316844346970035228735061664099552450745395909366401909481","17131132617324259919077868869130708397974105585786394488442025317187115633734"],["19825511178334090511535399130748498384127674733545937148620383524942364818589","24316480800230120927508489503696909398011455421809803681058780584232250041209"],["6645305785255440153282002331918438560672103069581004830226425392061638391944","28434059755327119154354027160319887417950643083736949937196556028740907424556"],["17615661622032408462845229798969139170231967249273494402279366710447553083547","1146817207575385149605679193469658259101451666415453907385940471903530052604"],["5010185975890716398427880714627043677408688026179217032425816736152894305004","19138616468985927824772486420849542825800855016521885996666130717578390423500"],["24576501189104123716930358966270129070745014106394490103318399739011433757620","10052995338574966525831999893349705871491189895620146955729099281841120184346"],["842825773506076790281403144471423968650688937975404537431932636190805048606","13492427471781952046473309734243708321243217491811602374712427216582777821962"],["2105669340173651766719784768399002938525421660071239098605549397956022835146","18679247652117141999643050871174128878776419814174916969963686047571013622138"],["5836846014401973845274484488965573258282520754475615189835950701503084001513","5439359169366303328545748261581433899516501425242624518714023034829331096032"],["21052941641202752096785015453789652476710288944069897592674804429991610065830","20329004839021471503323024556726108675335349616474830862361935397872430860002"],["14988290652930448768728458655543241948174338343595954778684493873508748691610","21858288856122684821008920630925460193898556407183057028110033958259799291517"],["20591350689957462757476718017800929506189990054775881164372114123284330644121","788397754554298812055474197075867182599558215743763910348816821268386345118"],["17374120439429932157960433545023300155213951177442942598741740640410354326680","15485191656599154680729793336795847463168353374156578695537635678957483302662"],["26860388508371126272700100903713845763877677961845278988174420181257559529175","19077682454007192798327302984863639441898281963138884677232310273371677982192"],["16086121828286260528510118129659586352911323206529842387290867285282818110628","19121625826413959845311470583910417438764693577728857195324951789952019352074"],["19080316425027767084213127459708985182957773233439814262008671956234689783372","9927265366002899471611938746234346151801550769457125354852622776179427079026"],["4736346688090425721028580458824251895514705402312987552810092545893207438084","5764849180667998291678429055021560222698505244650551951777254602975932384172"],["2270718018621830615233738751347934884384782639419975509668380822393784602523","17771964797793641645688282633095764002386012370412485780769999611872320659146"],["20728394326929784408199924198546713226673952405472885386872230391762956598906","16447761108792002115083456835042328976911852271331989156453303204584069443591"],["24154367476085558434566009433603020872631397997392368854722892340108122954754","14617175371444879685194043585997862624533849885328508338141383198059970970736"],["10706171674709376334303762089816516300734214998785951494747402543975837612519","20042954404963456885189802187577972866621418602103242975103357063304373716636"],["6900630971758249697857336591980686799400623073140344844884912809945666382693","21941365218764050885731537046630286497246857590799337353838583687548050516789"],["26673028448482800346993241531688960679729202737724506120035244664593700984093","19079653018371367093254067241872023587695317360166793518781474252737444621396"],["18662177858860226064659440751946614197508464598572497439989133685321005954958","25653635727603888841670086721683412794899704464656109004047494057509201887970"],["6353444171957155445225343584226655377758336395437007702816052513345103619743","18187611907509939008067282176374236259748908128612643591692188330096844473294"],["16401529617098541314719984074590281128588525527512433941370438026081454262426","23529407248143705509766051429027897414188860251530599259820312101819401799821"],["16965043476711224148352396198662612590994585876179077910130041961762016837402","14085593001568045988660603956332229464539156333803334493138954416083685543944"],["28540910463689074649311896230136533682655376155219101587702989917886857513788","25412665158014559506115202554396298879488767508548197543270700765531217550969"],["18849938390613443443451814784602458416748917850805578216831515338535133573738","17923422290479540216203175484821121983233417799359682077862793958344386772510"],["14379856169112771447435555253612143918178659109622454068676184526851445765116","28790826153974806625880082958217226600631851896945644148340311181319815656115"],["25266944537378623551283130705006001910286603217532108649295171907375344564041","9134026209481917266723370388238686199560903732775601423820794516656186721572"],["6186766681431696719573730103002010009759172379784453924492051688164220187325","5743897945586820767389656593765335955843045816883779160028627480594988932665"],["13052052552714652051724316724508072818998535880223379814108393667726674105406","26405585421718021433813092086762341099276161094896701786946456970049154670240"],["28209053346350427422286047193034651391034227335902909966969596712191291829473","1068217780885321641178086176774673204489580657693015825992715938643840347328"],["13310249986122029207238319950403517554390029590892571413388335044649503890320","24543893867247848081298569430132516714302643336345273948083237553926245881757"],["21891477987425915409628942211424115908526649303366463249906902437649551841052","21423990131967348438705059148347297953035559438720586284745524076614511072308"],["19352142832333166127897235354331580911307702314713800073384039074986308961033","8863880962379541246458174774130190043982006408715923507171386870082300230186"],["13869561059724974272907798766324776516625405761532048574028077807857078413460","10708096050861615333409042204292118990047048022309994053002873005096156867947"],["22447796382602467007978476834899408444097579957818901567901218060427479992081","3923589410934993988470866762890311608621518740829284785010716767527643844330"],["22083478943974806184463051823196751358749193055780229557107435089824678547841","1447373654085981426676453199955057624259503488805012858592439410775970504001"],["24201048316124516160486155200256220955985052486795590817298468012614309893099","4770603628343325344328737620837067262414263839423470411281313698349421596188"],["28500751989537676149711354203987060202715839857054734803247065167250130750047","13292263630154527744060355646842964147200651263665813454156309832106685218601"],["23437094978538009103577167451589946185299546424934681938886592228056936231884","9321839810645181621173358706438488688919535342841095973889527112068800450411"],["15684732518356546616339060675619083580356858034402082369472188482400223656563","10636231268744218165901963725685022083451569064289015401239378883149633862605"],["12669122991495220246237995815869688048405798265010641496337663984247159748942","9957224524930824001991891408433264818830953227150099700703764179614677798773"],["22215249971805046287924085680153242831602780871124907078777094870430398338725","6508273547322228657286606277695415686070974456530721257878134025184108874141"],["12465979520491776565243066902444684036048789527442861174831806871428913517411","26586253194150169628786355385048570536792879460938125303286870319955448277641"],["4880056176563385848206490635400914810906132594017082396298188084534066204624","17806358923054580805793851844377538386621447710952737843451872780276917785075"],["876292815480742426589895349903844266249566111272045455530797832236297533454","2486802203316947421637197521435422084439860121196293133948425190817343034733"],["3142170251957936150768771230890774015402866719494273472484367598226104553470","6689256527582864285618632562430591516661393975508051920955564625287869842510"],["20218407660098701739592127597529847159408459929100622714222889456236296616015","20791645104477055806906800064445050576975886444036133687683657192873911050269"],["13322237149043770312719494252255223137031267860785148598896240747689159919301","24206572256706112940278842968052866425568308101662893697312909685474698111956"],["17192238859234318677011930248929564966225842518519594552685414585481340366950","25260415785870151130145018910471523552824948920879505465754659328031426046353"],["5526602451614236429106036513981331309303338979107505003478875962913645801830","14270950476302579429426570698097803919595459639819128860547986636377466213523"],["14061179368029894628753629554452049271425318640533615847868983381053981238877","19261840963031063066245979294942020940467653111375943448614271375691184702767"],["3996781829757964838723681892716512089120006897180076273163482089199009480019","17978847423872567137954418574737845713395459339135750852287309392982374268002"],["4123668152485136945759656466439959190006090753181914944862809219323675862561","24709915626789853542571695936181938037445240219907204091382398283322559515963"],["7240228200112780102461886787762131344866067435371291340597023739134207740137","51497751823732158464191177255603827422292093472280030292111919706958516286"],["24933873591008738274337695825572822382246110507262874561367300689017735755623","8920707446415369690211761760815500738179656113190422990410592133736544079298"],["616986406431213231073116684980646845646727155540603498846609884098979543059","15410320427804772687201405606022533091485381843238175859844300790944823199493"],["19927731477560389712666189206659795788876363683598982349817556291796887026970","3604181145660146643071236773294236262472700845934604315556342316442013173667"],["16795317723615440561354661887447339189623961877223796830108687080638779066568","18193076142758362848674147211024762058466038806981680640224006940939884092349"],["9735782275116815215815021430026860113678944240166731888183020168316820507052","17459907419883942512054414002577933469590734736229674417669181290311618427024"],["27446743741448222326751691993097816665973214631266999703884098451240718474050","9797541390167997962717033750843292461553078468077858815020641335957079528451"],["16553581149454565355762361346575014625977390928753130963894905304216394624305","12578040834614095231517873596980931340169844948772940598445417940095261969542"],["26791021028151335485456534005096136784758427117698226840351237133742685662939","20202301130103533689847897537356774461162406158885093948315873553364886315687"],["2902731734153391655270947164728096836677515338630251646379690418564850993636","10449076792483868547727665393343480715825964648130142867359835750313613011981"],["13393295063366851552555915349338917253104270484211028026451479775709043275821","1072561611375667272811338360160284805885651614210792833717746416316805434804"],["15014034818256438028392861665797682866940743728917177197133544697611362782598","16138013672003473071512550488180336743999199499266740325931759290334959941813"],["397617625247499797934649298096718810259220004210274547023024786883312122661","21095124700817968929626016530978332329380416317004758439399492355062964535651"],["11460415475585902345342313537148605574613127801203071506780957103463166144115","23951858445648788682290639235957398156944759720338464467415909668675720743252"],["12731239917145205235253608673833796538158352249444739548246855268683942178462","7504488091550903523760748875828398431404064310191953135251173890764842403216"],["22763139246652344198070338030353528498904566295405178105524912113261107821407","26374547578242036783120623793445281567486467752719702110789569639025715051901"],["18708346683525553114562411119937850835884284121672720761357165268422101735907","4723419120778451282455415170335133551695874984065613042747922468970597392740"],["13767072773608162338790002528779824821147524993697680160428720164048707495782","1926191185861439398933340294437983953086666526195260915317170642445368585400"],["14401117623018863599786922998219107574468363983666042880879870846224049105046","26257369264514163145226777569534057713904739680245123433027121658194782234533"],["27630336442895917019577919605827046845695748942461277829055770172278160555179","7735016408687205375685401271191219133834081643345263339373296880487256959543"],["22462728055765542517290232312138928765583437072240986586637573491316530396018","1197430267740254568286475295076276214040967483907182076531042192254018728352"],["16124302046597134015862755724481757659618673872336098781947746661667421486112","11604437706721502042889964512085726336858593121215950869641528700820884659554"],["21000557766149711622748535432129004355196850742710270378415665280457117642160","4694689490183035891451126824533991577884512854307304889949257874507381047506"],["25890941195950194021043982385849498834640433032992648617741244092257303892179","7318549269687303452563736048762157457644890148382770297292100004558253793298"],["6487484679764429534670751627577506417289591255847980596551106781101646024240","19162592523852505344721031938655022380646161635359928868231608071944169784161"],["14798821103061556459078896668286232268871683043300846786235654008466171998067","5909596756956048680240942137805091146428890666777291223201438578454676933225"],["28448888777514440596769990555908037572863024230525362585019133465048452087776","26539569521847942229202855167416426239924861797018568820511358568398127842010"],["11021198530977404902315282661997895494155985918573200648008073666335086598593","12231723532506147606956244506781189158223295369724123259006399532946714627601"],["980173345619035017568843181715300655495374828378773305060434050729320836827","10223818613891341259836760888435101321158625422615952331018407360754548801951"],["15947689426648552855459262832163693774243573307480207994229704021838640502048","12515967566888020068470567171997040328076551237525990239088836118687087289441"],["20359235651824270836038134711205032563497109404369899472550401562066802396846","13228982096501153172063594937568820716053206039752643712176698286795491713736"],["11700906736462204017511332031320367128945881001401932860224873622087848791431","17168048666852913375944947326521607083165195954306682628897653601396127442523"],["947258655442754821419190015305199375726758703898110062108088206455390523528","8344402901662316750874503251274425897960171120363578501993240109061512660340"],["14230793455410381450452460830905202963006313255614355020859377433286039720967","1081711659614474233094024221639639221127623678458808845977190325967372734870"],["27660002784166287236643629511514819414372305063616542155555020541294012887406","6467721880697084902614165800857168263813128046567497502642931175376896523648"],["3594073793623427343211435837851296603327496926542762149892924003719900183768","26483670463729501889887143501255683032744874077124620786999969557655845461100"],["19548676765132020354115284208349134016834489053556076490235688381286792071187","8807370915899889564452633535212313446967012168751849768699106703839516268827"],["15161611493537089821755164174100192676097198328339971772861675907436793760961","2559210159221641217801787376948592731557181632630670150192946968400522406803"],["10875728228870856684215420468363090662729714588788420560776371782771282447759","10936647217497792869195073856168189729358708341479054383141891505102299776008"],["22802775368184196048487150916921630934419679839936236957008690780949974473551","22241807650529544028899253473606219921167578635955204146981803138738841830174"],["23551341527344999219684189682529556281009275766079522478590599233744787724606","20392672083926523511388904313312269830664272258713019040399693111139082295754"],["20639610232180817727055098430202820859891267892877326051297273053609697348934","25093142112526423953682812837401246443435793145445757081101353392240542524173"],["8791079500640425128052985261872039241126383865607033754791953985901333058438","21872961761950370155586483649466205711923068215644304182141544156090919007275"],["18672735010369293008920649566414150171457988007230032298049854005810645790661","15450895316901227804460877524780612512305768350606098202025884357243266781217"],["20845946714026403784028525030643660910768115634925477802435769844228921578852","14413365340907230443947408973323495783271092308433312612397781570699285653"],["5956363932560524896648632979030257283491218414700337192764566525528912644949","18417591229225694196147969842479718583707911127804798662363626398259482846699"],["23660777454875539692246198232729750923481539908543195779298883345228681478950","10898441852395812369828067931298993310651035507611942667876898610594999518561"],["16651358374966437295610980323482428425916806695849123656604116343902235644069","13396377461216089011038710901084260413266667257122384658995267391024768633378"],["23463204456486330538697238636551048665658893779022253303127664900033343683916","17287216689201350118487745165170926707057029704198346769135942302417698878281"],["12132051630252110638703097845595364041788574960677209130047982653289422290435","7532903205106948857801184721393626378992542805733753142369454676316430324653"],["923284199888774164335231645948641973705885192449867778073322073046235341224","20577592606879938950602919678805201249927201185646307863593685976038056300694"],["23163056406894688809786595758269998096223573823388037455143416825860235775914","27264919260685169237560949518594776009440167754677671698429253072900991508969"],["3144073290825571515157841934683662329939230162955738751754668151847300531412","4974152283239220012312392499934827772112883985151850430477478241816048607133"],["14602576866653926841579787580896737125686829653922567904840500025728540399274","28366956684121880555159052518970013131353486022112126995602427819524493246317"],["13600485307475940280770798439748435443182579393135620834707647533524372845578","3244075056011524891259263357509666238570281039535349486412367045195168301"],["18876094878089122987160006574250315928969654123670219280808174359077030325969","4629751328086350616308128135341213748566097553035447676406462518938113142090"],["25454765305514287646471046249810456342718290565380223730547077965788510158864","22682021968422077564100980608514792687080521765557534351395100443531487978336"],["26925540172151999941488520580199037399391718251838968911881814542494017354675","4293518330907998286098271570673711581206313983552160894429612770622332795125"],["14871044202573194594311861217967412703496349540238747628497854149631320906025","20712959455478589158052371574117038504199626589014028253497868782458443641359"],["24351121128932204014206045922903131747280198051842276616385821798017770308408","2047403120224434348367880742532335669120804649372717150962907995600205480032"],["18298160460049341678017048667060613766578024546398767722484761392560895731973","25513287091867756957133327357280480505980516093614645135383773453200014160340"],["6706007775687162460674042785854589060418015782829143394021940398639779726430","2147530559021964373868626994574582216627253130274654983821182033545210664341"],["26190065661845582038191936631043070380175563515908204398662415427526486931496","2499832524705022628009995715153514405146553517157733123943716995731778194113"],["19700286620479796874484658772785582749367305998178283607608611775396094928919","2773963205458371250348953067260977180577984988178133990316991741506512502985"],["7073385531227534234365508029634808277684644421700481146050051854736665917594","927967592200716811485380546375823210855571233012041275885598364915257186644"],["22884478064648203133478299148977736611227135226455779492442658642066817407926","18941173164104725802585991051045193448738573548285890452583812461331535296476"],["6711507200399152821084474496554329780409215284247823442372626273968971311021","14220761418238988228961125033373457790966624648483389850454054941986729406526"],["22411555869588390344487331533710264428404772493183796073234726757986324961875","5656126743230318542521922911837928275295498330300490092957028936295148028417"],["19996704653322250566869531473537587243247746608161977840777377174686176649219","12066028391387006308253396064837291746375929082273976560785111151613661109885"],["23056154116308971661078421542514774310269302176735751683358098091894868802765","480074536231081257419075454379295635012728210663274710223362921293476484203"],["14926023865867517210608275586088189046122093404450558124381867242544386792917","13726057556109668255836085669903766139281829105118982000432213100723278182398"],["121309910134534224703025161191045009750609833285470685796737482639936962087","2455918006347134225410960544363472688452581892410848858771774873566749168966"],["1812215279941468294971994952140314373526050395068631596337493356195181381977","25494023986325918823995957747711901996814688363939521849580889299307991419440"],["2254454249498304096254526611432850161711094278306136210930519684018367509197","23399948688634547188441708067381879492702543336554770419474292607942492788768"],["27033924052797272862795928112298495642656144780944450948922663651101370372526","15981248680450284448958166545560257341471964879230045971340741681665142355909"],["12974916916230665426873339351761027089031522667272926658310140593050072951883","23222335489248793545243694805656580402558465565034285721044508256031624353735"],["9292195869469109164361267202586796327204831815267424570531528918583337980041","2473855578128801665305897047918672151590753936832470714804920483493185448039"],["28167525680951660070270188207826066331915608831458238084608748296162734466986","13083756079741929923736531505997735738121663053204285411387829921583345494165"],["10399355927278437670748451021876170191326540245205568184397263459943386729582","19175542369846475250536823263225661603965375145812278101889256625792519523026"],["28083924551525799089102358948932108283880716443286693440052029151841967235815","25568369101992274855847601700634646811646623067248322972975972670612379827816"],["15069336362298000371066258953039070490101597339978624375890886284552195643046","3575574102883882762745126063163317471248780105631395596797350095923368124490"],["28261719609009927688217774453164628938061257812038554721357308180248049909781","24653159619498722848590756969880939084888311509596186854324746008797257289661"],["2950603176437381532795997951838840515255070377630976482758813508613950590242","11077475552690474953052370951170787891836271399501007318423801937121747425604"],["2008003686567900373378745573313017221327521265024476167842935083965195754486","9614102442369415343256971935598482903030277069362184117016616633432606315165"],["27505259396951220080419684093012933122271234332221815219623340767572411623357","3214734641637603204225808648398385169915664607446600169078688839496406385381"],["20984701442212187285713439390116299402427156643108939507270138997277448755471","21933391405957992874565649349839407131459188033992805279751639881725901046930"],["19343523186516823591014867372692037321775122655369507215721554760982459295961","3581210450934345167890712698526650307441693489260231711527526060575962484745"],["14407816749637307474647994193297239447421268617727131482513786055911388961731","8925365828646216149556254357471419539566054185242102063970121318033244839496"],["14460070311849741468199674614068652539522102620364113333064570548139171574763","13743510683063522663949965342729887520549189962407753359913576232331334045078"],["14763389979781078342021330434607569808319489528934145564713447954683450761504","26889613755708567624343649593995766503635964729889967570043767556349751225276"],["17010875972874902353194077406677667799996246317368614786006338248157726979924","5654829654466588198707366557831301551186037468181084855666881637579224018070"],["13447827471918398963358019254009343193470527916530733475242354786446411640988","17874961180364059491749529548465059418311609160471804627324404355974132765139"],["12718832808313793170820663532421482838020712107390476404983599560602762170808","22735876119485384400824660372945020827565356101311232417375782304430933700445"],["25919437423734422728882058296257063461872269727553289078112783648892206979100","757577596706639477754822507880726347167117812538174071498229956352566347754"],["7846053158710455008174891584520197542845724440881893095389182756769851295213","22714058989506601581054024734562886791795897264640312620654184709710444999529"],["4850731219598175068588214806141820547478005336251489555221652896209004541407","26811359221645627028995682528139498761017683049757393708611998273081655732134"],["3808733559616444080405717352526196564209961957293900990428952551644759689626","23637899892090964132419885241206196624281253687656274873675720574127771242128"],["8018295362896720387202500269854467718142495833292184210139112172199122635781","6973105557764598456164518187763331884292671782028941960508277137040341842303"],["10972696076240413420951436495384879902315326074195838943144718858923441970117","12106754674375789776382311197498734944282263401213118864055087026769961531319"],["3293161910843153895565900291779698004650335736437221465387100882399278127427","17736714207519978072176996626644354212827858041045791645104682612276907268544"],["23493781901068263854737579695098375584605783827617317678922549226096968041827","17082219097457641621449438561350490419359703404557258724433443645151961991664"],["19645257640749364391117303104559641542750098387061579954193501460633140798085","26473905209183986313023594645292833384018825081692121819795555741770118653140"],["18007420093599167386303256103261123447758421292848720154529793220142996972","20026854497729232850352247481315615621572931779801914944019486868715856767034"],["10707226566755915601015161853197409080424022904785446740186399944265362623126","656818329892227303068624888973752540098287421800707082767224698452924273315"],["2426444425605610004466691934010130893036615632119906950037536971325025890349","21500347434378978926695923000940618663942936682895990064620415792812632231990"],["21074847145534957176066112726133322549158217600722938967216368183075689912184","12440413028424141922518167912499942034030713353713688080622244606316118070082"],["28609439665711977646584824947903013629651252123419648163732943689674442137341","19437600909745744498290653213617018397622785704234148998652107103025916133351"],["8661927843110564608282239114814238234714598157567805825997116047702500056566","27627470621616480949299795437664747650729419718754099229070399512059130774958"],["22980803005492984440343324461662746281293929730202124206622887709144024612121","17698773184925083343868522790234580607637527824166056151410125625593128011246"],["9661825202596353746501513592696946343878098969913823256476464956750927326039","10020300766024728692523702569688058747491676086300538198234061794808540938407"],["19312273358078925992915626249222012348096983783916061262315749578574838823759","10069197128320531489496092108587975902650837563520013832495873882876257267242"],["17866762373966103944178057671353250822891343173765612424885957355697584164935","7243176939110580223281506875635958608177444365850916095723677392937467530022"],["22016766660249167249481241744427849732155595710364410342745125119683271097704","5780698198026892272899543345633318593323396095362253773999059064318973006709"],["19396381574424274401688181791156449702632657127506011566152975017684715799328","7158460156444945505793806910086099967195167655452029384292123425538196732819"],["13888004500568688940721274618511950986207978758494021406840495290887724940814","27960264893465684682691691533049570657376093784612816104032594999120552277532"],["18266738770556517488180940307984431488182220491071473412068695553383535737729","23501971947213616887085830377228398462028533354371544074782124510307842058059"],["22928634309024149497344468850734955374260780685626322096076052149006554521511","13950904028809217024164591035091377182726736706157529865825601082398041684969"],["10093394459518098351789050267302334470951168676836361351772442511684668884053","10293395817469520007219003429230182382319039359397758666748747988124660256743"],["13965554755081084891522165810060844725918161826999093238642240314414296021874","9150152797448301947806538382535862065381566155707710246231486750693155294306"],["26471171531795953856414834413094929396575599665066916837926018084379833074238","5465933638038406483438339435814068442104834214546805489211561311557345143349"],["7730534332256019795508838412339999251978299513465958426734916022288262128520","17215275936468879756019520903045165020413047823249160234195649101602528835094"],["15202002244909818740141001640682474018793383481568128946144788365630665002624","11970373052817772638041062672519971859697901813609317182926655305962931731150"],["5656791436288324265147821170479612208942954394959492307582036389005609382098","22047809929003895305946726842262332323816904194211581601462741495523393499783"],["15758053844074987360593226901875155026621744862150744776854484555909677590097","6231811002618063666480586760025732877688829270617375136338905314511081610027"],["17869962522731491022020026776955787349743716620635144531578531901699735628943","20154589728966909689289063965988817042860297276955405338100474669610329535346"],["22163028679194359667144500474966815890517222556601337562911254427209208617741","15603900981040726290668146820674642624227859795777953092156809864432917320677"],["13935270209541062517671470295457362145909745563431353426742323353404867910083","1487950257126933842393332015749736688859882272487525915377852491216869679068"],["26860938405566727208587797648301443248897015526110442454932882551341483593629","21314086506639297012585755365100665178889760330866582600530687153402486486854"],["26525377182747119565317973194939998510672612393217674914614100630750050997121","9553265536393128583057098912684147849449514313428463092639299432448078179948"],["5836667896426911200889948181780001396402504403856055601840354865907560909263","10199574648652251910683804526232277397644764937490666416738985525201793338525"],["22337180066399467512622295084176030948047949784998920310753055954364542273845","10425571789960559603437883740561889263522257121731014107310922116178314884647"],["23801578076484402908890363372432201703306780843667380892451045185271202466905","15048279562770889115671912206462083821796936603180118077949803370175930772222"],["14425129195816380003557207615141998279031500067222540448379025108428691478407","3917647385854228519223057715816168157442169337638390950206247769060065386577"],["2673059409904859146270894724066555654041892659894589780681293511580339298175","11702100481166338529093820503284240312628438907678627985220226558323899534172"],["28373659026404111477627247318891529079676532100888630328274902165276686167135","11211695328681806136803004321740643247955840979048339545046797105890354759033"],["7638030313841965573563936980843302721610819187630495367335466034869446161114","24307559429616737426927819235297632691556046510634234683020397529036945727332"],["4024828614775319611280467447086288960038126190545408916050950325432986377292","1527738364369730862909031468474876596844082623873264652226828329619858169919"],["847530656620724224435058117557646825857707302585331064722043734645040889414","17277275286923504752126231172239210162006657154225967028092346459571967207118"],["18505556267206834727478459908691089968026361411804926855038301349582753186843","18398910989002996555510290137241171599655721678546795692283546404687330321981"],["4287174434791769659213692053773801995748857157937860573760200531629679318078","28377678012109990950901394016851120523071349229769723639215612069902417599408"],["7121052427069552066704087390309515594795408424936809532757387448368831417847","20777043051902489546487985111445202166181662260134321893857162325471190870216"],["16247575214422915536258444824908229847085772788586410874366102648664560482337","11836505866132742974797351426386415088183586027008339120045291222570047343459"],["6352629628763180747138690691112827226933040591454983275390487832457834253666","13728782710099597300747768311392392961239303202564698061957949824034547007766"],["19583578046284155798966164282512324781700281105217699213160536137942157176961","18296766361470648534772488984639059785056393245964494122384597686595040881880"],["16080954610583411325459322362447264125807145370457322730337599739217869855021","855662055071357055195449504432672533292688807121658316531412474654282429663"],["21507964175201835271018282715474151624160540984365676779867993759098283569149","28109698371389592730964035357737895827243321782632998034481057044995790346426"],["8388106458451251440799032118755173804690137482064911379410856695786490060557","11260752333638363364538623586320199113787937358233670643249239691956655535668"],["26638982014600489168368591977964622926946214269502722991150839830514731784957","17552193355305214228567942888631957670974749399193928703313910383889355655017"],["16931832698684267447641817108489575548478029599538280434663659850893385477616","23091396117998743070449892442550348779286137713394880704464594028454009523709"],["21329598918922831778545921877883803020696533237727861942069225082881181942858","25378153802244129967612958511173934615637891203422963101412425178453581772188"],["243759713150081610049745095809204472617321048591945314418019895543802514619","19797772902023884420467408626584701695000223217409976830388254531482222612895"],["822834823717199616035098638787312884819139619061580787399118590469101533553","14058659179883113050728393286796983099101993405768990585584565514685950264871"],["21993090281108554482899288384311384249976524508544835058522895685331572128357","14573304592969550404269308034731026810285729851554277655990451517314403745132"],["21435477325148213780059459716811425113795457697244039800939407508694353892138","7530855381027710943486456158292741184337737845271501939677886468650596144152"],["16885327016101486308968556379160188204704367526410390348628806220057895904401","4458619469402791103582124222772786134281137755206046949304952975162964832092"],["5258347663665609144065104822504266773643016284693050529715978138570046490835","16033629379488617634010322925686888523995743575002612371176680039929145662102"],["22996590925590503257148979688668890620174495686468623475118329186675504566659","6574650321836597975534841873676291684771056887242282373837998061934970747282"],["23249934704302500082039765222418214915713158370555247326086945315237639040257","28387868432599149029989487069321675671406202933077528750145112077500442673538"],["12580551765136091595577499628451176705723338518043771616330635049583188729568","6521542147262335824231359864733057435904815765199176466240933693659010165030"],["8952341152412835474077695512661862497533716007183059034841904151321870755361","26261744686975167860803254196058368985493334249302088101460641455645357921772"],["27138102650934476943458798875797849228776422197138779485890282950844271801442","9750981176588712304154858785649780135877903820368349201076490048214305990106"],["6706949976167974145898523277235078852889013263404026961522901395957319384547","16173584063748570922025893803852242152272101562231861772667054614692972837502"],["21026752500625160853042650297009370851443589872552332428526405003547191819254","12147655242292766765897453395498402150362388351383764858343983849598283686297"],["7606239797276343100126834253726174941645033940527500821458666383782062693386","23736247291579460501117699866201784876975341812078879869744270145747442403074"],["28253405999708729673643286953757160656390357421196871573188347044648601155490","7914459389773709187290655515090103113004582557843735933075334557259973041013"],["19838057851435624437474185553681754741668152558691048390824582378127282689661","18324170232332033341311852800004341441588021830327149050188527906839316868215"],["25757601139043787801992482762568968327549681762718814615409866082009304161603","27257213726645981235096909803457944384073371614219231109441567896467153590332"],["22394446292110982730468199884158494310843945313725489601059951404490179445537","14994090245366301671568739314220350777071565564063787859211337334011276925526"],["17965932650055217894558020507213443940993877842511934368585741891188398536266","22318674151881519116805176440242914322162942808380443186576738912517280993196"],["16796562762116251299904920321052167102866685302093852902783738557434575143061","24430985690909942868796191836549286329711380148294694835960782949365164890262"],["26847295331189608159845211962363127332552809252208664568536241055594013566386","24898844073967046126452428676557761066902765316242741878885767628932194255665"],["18529395785594089144057700568620269828458179096881136962842836036674505776074","14934547976797465843678187846600622908254443381097852770425451427349536094794"],["17354701852032797497501567156604210826595460549448074028086469962809833428135","18244251417125001190733468993906471244902580145763694169356260303172929418469"],["22213961814176961391859890337662598781956443317854976881915439707817801298923","6148008982860564354747961884578425469502924493528425896684281842325676257108"],["24311027578517040877492573869947951409902090557314672684709738497541867350464","24732380109229213122002063203962495902237598366501227993959444091722197897447"],["20918574406655993838450959806059316858956742009085836562870083073459376703857","5232299087585144650003569148500067441529542028257954257448130291075301898782"],["26085188591244323199051980951626471059051270199503374888251996261749712863168","3417103042261689477970549873402448548225925847497835445935236195427389424824"],["5604721330120844946064397000528102346681185383603771613462034336226252677029","9828484369814693562789185227518618558323285854268960763545729779439419326854"],["23945285595760570133676080671097640863441082063227100419645333978996345306827","22986673078349135750845877752813476086219537258751323402784464734658242011781"],["13899549502744992579143197600333217336726773960051823148554295739033564478066","1036896253031107611284119549812761746490465862118067721712616591487598162555"],["4584511625211898975843506687980262251487511757828808866190879575868880384588","15816060468226930387017127889194604206818684529011889393163984124661909646043"],["6182827634833152550881006162390504046735986070232597691074441247722670850985","10657887653922392917881498203335613778690906230144463396998129645533313891304"],["9976751702890037874900666822766056972844263934487122518811726335926334931575","10955424108145965835538556284134180919630181519079736094681697346383223796854"],["6997169959452741022398948037731516399574880434509511518555977770850549888136","15076930041310195012195299707736190238059791613597034112841793799729623860842"],["8270752240662323235505421003397794744896997686355824942735629044791262734763","17946340046500480040228060875588168514341537368256155715838961166788821921449"],["10849643909065234872752732181924050063432361973457247372414680204490024873303","15411787171882564683033820758368773990075440906045065107662967303181683668465"],["11209064417858379490259694355956977305187551534883608876501501754122367801803","22479936431825793732178021072002620700640685008185270824136330937229350674071"],["24789353761204627019614518762311944774630241754281161941026715678663821160135","12996212176527849162033307265231326227922445050236410959227228814825500108729"],["2383713581208060206749343685411395718761428006723033843626037078356659609072","23754221822731691725773505333587909391240480628508289130720666102786695392212"],["27207577126690308445359333488401720495808126920824771534984288734548595332662","18694941086930119335182948678453193255990077125924002298447459318509192689409"],["28574855905206435602029173520400515397452850769829435781060034015953232296413","16720595088047342417722554459302353031029790427225620889346742952632727396480"],["5824718820614682828143543430676164568234787312147281008164257777974914009208","8901967364571609011821965287500708657043307070090996269567770927118192897805"],["6362863818024461485288435242008041600816716528500324868895934744502062053094","2066553392098777754579861666506490955430726221908082033352029649361510225649"],["15161552060123117038275440187525294373670564410253813054094693149112842524518","15167156597532119560628718511263305461039159407515122692193973659568572476328"],["20418965253192189624391981858586716137096500364353956164168437045931985167838","26608487314534890084645216588320974909909522993859490434807344010906810173257"],["10442955162731887603326183375744924160653870760937962884822198489904191566222","25381122910294949060057548563198419355327883390109979212274874333797809160524"],["2113780893892019342470150468152685994330844262847906844053324593222869018904","1903839289783535605317980411257966782975910783928151739520188390399104457209"],["2188416513862864133391274002315887648943969995172273061502417452504523850315","1607039657297683737572336812172003839692255718089203449771958483364660951693"],["24142173613422174352598846970188858426065534428201403707419752142256971128301","12132302212103082173886496038713183290015966451921569209640867743917913566389"],["10094237986074148978668395059094857019191725673233817208257185965210070335570","265929113032416521605299027898557463973401915731543744477228084810437404839"],["26359523909881424536704974031731771936526545316573779606094752629023457756568","24688995175621520042846712207379653042437520745054013577844393086950184198116"],["16185584854448747263554705286072024179379413261755929893961129314338824505179","17792906095221308772930060360680014348944749866009425419157364164734655733841"],["10825182527777019853402668506252687152920342802364033789428556232029836034531","4853240441099658709548767803224829633634593289730327031160636321359602860840"],["16873894839547035498893015952481663545588399759215235199851803877265040550351","8717433004339703616705981553613697984840833524979727499660091311452297247305"],["25726926791133318491026706098096352102666756491354359024168396974954482589802","2798896816229860187854110443555877593236685261573489108152542171535125302037"],["12162767651035535738967525226125975907323794177110552938366132592042878255479","19945821163565053949658035722263409487971711201477542926363716623625981342215"],["17406111254187355823625970618074075308121575627565217909644181681535269218484","18677100472917459078455342168986911502155595914941371578509473236349598829045"],["9714261804091555654497083873179715026651080515539821459444543265928795102984","20141710197145661373653378582010687552556461908042932911584848489732842714299"],["11146097177990905593637282432932924441425532135632466252162561700304271137598","7390489066462992998166860952634136000562811382270755896194660278988257298621"],["6198245193928050862168819056921222518317829613501951852169834921387655065702","26967305328423512164343919466407501572545203554996718462675394457883838561450"],["8795708871862230863089203895479199864100379013368826988210682387071170138781","15485338549537241950818155170468088649294045541424611960770849676713390697641"],["3794485404804718198001413504623438235087015596660901580077783389289717920996","21079223341745899191709827247820684140447852242202312352583168784190137186060"],["6227821998473848955600540741021504560774151187201239163692847608665596545153","6658313446081739158380351931727615320716670398598938127176079418066107991041"],["5649469805197084110969783985664391266666936930679523942330006280445977661257","13004048878436578597723030993451026072636753762803815114553275842866470034189"],["6351382634814403326317639338492709918878076540111336367747298068137823129566","19960805879767941959271667287464169776988517494367828387048863949971725214554"],["26285855768865718362530236935513490409887297301250555072521330117680572952546","25147506178732123633719615896651253933765648661823838137966660901454574691114"],["5616696810420910620516071266378611629857948472489180049075115098182883609797","27792887922363598595898184335165220311509280789555416092294286047752150989085"],["6246884320230065573969418664404790516111118096333435057570021569292575797932","25481789731472982134126489802782937443506673419757456821212844876030672069248"],["27311547373264018234300272260305997075122575848274384962803143010147261663706","14318074202690280600257332662508489573139698794095667712493491649933690092346"],["3293072782259344115984819957522454242588552929910102054097958019522060698726","21038498862797830222389663058269128263191298278045151381523318735514263129287"],["715604531710687499675175386466236397984996599206392889614734711119406586726","16038258801701197116915586334562385231302987630608524222586737499752934085704"],["27193188089357832773288731283911212407136325938604029968471392141797190880617","23528152054444279578667637857907704652869494572879512066718509915406085013699"],["22332078001661988762564654891835018968030744514339734845772845759377854096559","26087642732228501906620940269411717484209654082193320380349790356262772706548"],["1312210281715716035789150279775956105927814242372820340955939395603232491023","5500829496758397840581946521842833567517990050151269005823423183969178522697"],["18933576486351237710516792923124337724488387398772286837730936213781122487726","25592018435489914107005718450557779383231155143819677705487650380296461869062"],["1596647865056491468254105787586663711897923348731537357926210594634542567241","19048666937714090570244713614809031371124101613545353536742558373704497822971"],["20079237890586793496881600328614720800990238662962478468042710928206383271331","11673432391488497738626991219589555948366984360971403652917380328746486036133"],["262227543848663868150616664628906221618753195322115008782341271893721919032","21366758268938212889882948572047831222194484834948868527989293744074061808399"],["11550773759054980130962603931402540486233873405769825914651436796939235079154","3482931515304839667100889252296782637436201906143657053734114687794301793293"],["6676609004150688452668284714167849300361629305567814364478530219387757684757","15079638615654981478066922031434576428661297306947008128421779450665841376405"],["26297265542460573832098657855165505130610796839110921592739026163154599142113","26560713976616447583997374338628807351159551540926570795683099543477658281823"],["8854018353994273497502372484022681513005665576512040756451247008693826805420","18068751422158880152950906907981110577174941819991320301924248865966938609932"],["19468012251819036610249801410963116419239079362643859766766825456942375304304","22902466711353820916899473338105326487330429416684858873824737133270171404642"],["25632189660122998897369681044242431560782661830880280862740974101317515358950","10322871498626128021024265519411966956746748868678622003660054549430637460908"],["8440950898905299276300807636725910320373171903492269981301357345552358013890","18729813265105324535898504253796227221373004480469959236295447468759221174114"],["26532524967460620457640008304867617551888280973441878730586541572613896560817","28215529598650961196614719859235233215814442829753456655927420642715311447793"],["12865841198195213593906578921318178372993537971406855389628661063928591180171","7644691911508595312972211410140661954809853382080225064831876422015839443209"],["6856870183642956171376304056149525379329120309923364848000554516736015901975","20520462843332234942525120018813275256268983873025695933883416148577965506774"],["13019125768882604394536282945051952471875244257217242580470009480017750010316","18604163676926353745900323201352305834274601034020593885787069944456511618944"],["8204640894353676891585954787420582587677248783408131202183810174061788573089","14272985670411212890777302923881992711528861998968691711852755771292836443532"],["27494506425953318884074222418006830159115040096090661392510610022772078803806","25119083488395285617564952562486390482554865030121892056061302754205557475233"],["8424931197051086000528929561922044240615977981395570887207927567904798105940","17441551665439007924402735827111647151426223412339115994953669638319988505892"],["9426988631851148245527174686500006715744281889322881324292903027371753763767","1492233396769777313634819160676626927346541845400211828248912597381516837309"],["2559692151865663578162746117563393140903102225861380905255779019655515897749","4171490445142299183061199142290407914954460362797047025366034797165465948313"],["14818267022962853600979875266864815550171743756953489222148426421340237192372","28340991724846082394787839916533135554235596443183487101486873917608973092426"],["13642387384480300280294171366520373061289669387233594101527359121323316690055","24631676579395909196503862715415589005371793604362207738449137788697397462760"],["21307321167934717738182876199558865066111001192333644434821122520575374829653","2460164687689745557223848267814151056402473583380279033865172106307386237405"],["24682938254024928826471660831939077291754869334246456701826473026479361864017","27201172540780741704070007676683736192432364013391196022015762610742651773077"],["17801036953616900146807008853396017599007280846866722331165566285306383219418","7504998714367122303435205247587522061814648983868444653420802438501155041723"],["3042497992273864874601900064736292282481062405010103716383961167941935043030","11457248593552581425787028302699266650471517578225622090036379783083260077071"],["23049839548515257431022178619067418547840351207896226048727644416993926248826","14250150799928474349002703602623423040238993654852287216002922545191762534795"],["10287685680212026907341844576352224345135749100261466807723980971330313933528","24763545327566645096311546403676631768965914252138343403034863424207963950838"],["2511917941304620742825762852610669290494184750602642552104279238431811223218","8618034614954668543839336642359534915784185536289419865125217564606816506545"],["16387720584566437255039497566129261546517261751703237318371096177057068491299","9366921463364548962941885457315702386024992986028808391497198916033277308774"],["25883302694257341588385542811397237229012604255239589587305830258336190147525","21636332644789022940775837468947509639809866176923740929443869473125349107561"],["12016442707749599608892794941971190176247590334915867443936617434385192116621","10314095137855589292005367339166453194865129573695953960854672171812032147449"],["22687770655473187123212848862623844037195378894001542658240029545032716612366","17850939709480972344639241070090546500231681898318725557992762034269871936892"],["5537772063026890503944615715623802969414427166032320119880066028415333668863","13033048067070133318855062034651213646079600989548607530227574653724950258193"],["2703512098290821004795384296942618512596881915219193913532142523388388263648","4359007150558046598842220339856769703547021219191648111706142110332000797925"],["20122895796054322408367520389865207559999221185517588927976869218196415682318","4050791826687905584399658966882178476501183696821766434780947729606504230234"],["1363857387111921010154136532358409268282019033200941268087919264051704637912","4149623173458619716632258031619238053186278708398632170695137995469017912597"],["8615062331236402555901798183961837530778588214939067271785356210947791098215","23009357087412274550783617811553254106792713958711435693167810314147041638244"],["8060155845880700675102678101030625287352063115450376491778456281922104765773","23113511767162119491877357699519128335310409243089672209376230335216599810674"],["17803082524298804693504118280071309238668873513217879676566399459857975411265","19033819152219411730041054484153871126021589557712270587348780824349406691084"],["5798788445075599362912832669505817668348610254375931118002810119086855537246","5467736303366130633778127812135244962680098268793869912702019538515658067528"],["1041561442599883872204097274863349303391805290491017457193902479858214022271","19153162998276217573553245635493792126866964547613425733912172224977806890204"],["24648143050364607508166187273581985904626486178123868730226685763424183434703","8521156098791542954536004169821590333218984334699591152469294927482433106423"],["9770110808769348275881815147340500500411669075883885509924933424436237775491","24474293022589973222197265313742268765178914693828084261408399743831076929648"],["25136371761729111081702461855103375563026725192666230683367122559048219547021","20060877659745789692048811311287365964479834316137083383337777406837675013621"],["22410787706936630588289204753706739708135703373696337272990568004801090511400","7246414763826187577450180685600201292914109160810269320936527480043487763227"],["15186229863039695416879958567562166215910520231713373908683918854107768078225","541175539670933720613672062322816600552212087641115528163112400103204738167"],["7427435155799318407349723166957151439513031069258363192260833293969195752778","4106652677676311042953363827155138870162448817552259307555023823326906607908"],["15136341027449713735227365165477583053927197646918141640209784885472385860878","17270036602291594587124213531810333487528716211109347317095914371600752754164"],["10143010091877071578397097201036590271770667120362169526819663588401118975092","15932578685046026705319464482648623374802294297608086603898275920505862199687"],["13537911180058978173193688271947345006067006476504060078812700582796640925101","19343622879118518558186845391419014173843831152708145756572850078735368520112"],["5954486667172530496336073036474609216333770068502510345621077066479259792851","3845475349080406136489597874361248282588371004632854456554511009578062231105"],["364580736109924523336902908167671898259032373118212485008357139727365770385","2980877717740052203142717669495110855471186881008132645707657064046390174934"],["16014237747561690178109219843696866176528146296966637515876482103754729588622","15841655624990487957734774412484910779370515843092492195618203251901162662138"],["15232534268946259677872027898016846131055355125271484239625259071965485875753","19880081412194851837344275455867842996825164845921729734774756265872446668290"],["21932901729280994426699315911307103217741076999980352695660119728275412173397","27180066882779155912456390000550336363214998007244125375045716237875625632733"],["19474173775578651128844438731379836835348071662348075196866721294017617011861","23469421949117302368283158002646300772291639812982316559076936923163104271024"],["23860270692029026003233907018289000601795699556901313574397738310706387630853","5176767876295017971076380099881053920879385119995728694072244207348058244423"],["13924859947859429043046266349437574186184033603022271788100826569775569292136","17563619399611273071897164754946942624579832484701219015733614140627205067004"],["11209136042058922932935570385591663221907345554623983097308718587383632762748","21757674352514969431470955053279906691630912956740822457757615166967632038791"],["24129934395218794352620408994652055812437685833786100467275788636587952569779","21337304670096184790935481800220039631812778193860817667085159100723808154844"],["7644265541260890821877673902556744045881819727975968061717485366956156070135","17055567052630031804890553005713307424134242983994310318651467928726411585712"],["18374668132678887326583117895378400309638756373502419439805848097315597941256","4741476095250100495612001271824441382961857840995154487216988818530701994668"],["11504606070624871355894092612483826713881197501510741854231960999165560202545","5374254820584147467590455310846433385867087524481975094343945996738233241157"],["10760217567234313004430730590285415156998736977262164591998577599497659004542","20931252586183740101095997166287536293771488899344072345091646382530184566029"],["21011937344957224771565750620983237705681145017183457814484369853751952233934","20767110723947815911028094783485853740022589325923656166488378409982518842187"],["11606174138629789175539534013292763528126095435076243915392799296979357021009","18346109111080984444920951295229945745890023282979688774364585963559179600160"],["1489694893780676006505186511715995200441971847797383873171422649596493045782","25822596513954960935839029527495872382292086748509754140124193249063154288323"],["3847620919140936305761260962792070786423068588690897154425840722064477623083","27347927595507711610518975425102331260738673186541305246351976877665323594510"],["25688671663022583386267071492672898060676619976014281074846309056403743681701","9689096885718438106515807903576640966894161653181235906623000027551841749823"],["4467982317696649567418398915707183013054001159384915502620935183273619820014","10537902884618744125998309883313852883618459274181129322612527710930604665150"],["20486298168901214565252234709049013868689842541131518554089261530482879610527","21912176288366160714986742296181805416568731194237380207152117793788844118699"],["23572426935534937539386968815781070251763208586255797426770490276218783387247","22953871432932360757723598355338481996393122648867132241600921285702355591172"],["24694058933440752372115847613032449321257245221520868530511838026446661795017","20358922414718516600471851431512860497864620132500592982589567750700567719895"],["15233313424257075291732027986807437982918887281173526471719208303836456687668","7365887555313391042675029341070347294089914158393761164372155784238941160182"],["18275922380196710761468375307991023552121597773792300175403740756150159781946","8339634369658526246409194919599887956437152734623845573772654865288654509766"],["9294936167037540555694512875242720663879959150300433229789613308305782527104","13375795499388082994408216152914746919957184021038348025418529038536637401019"],["22665821452953047249214252615790093105226713590927708304497988424029855601822","15821438748356584252450276089032389835977425957392182504451587593178639958803"],["25596723809117783455432185858113943966672149478807231755947887246693826670204","728617318366008270513778751520059187817532024812887111360684071650431193309"],["15444280115780320163128079741677494801008579951518053701415967265761305348105","16067510155463921257180177805957063342784527429920106234593691599915533970673"],["2221823147340066345167198704168337539667428797378460955812949571550517043025","24432533286930209000060142300826300162020975089574381947588412859945120948060"],["2288353576550790037281239072992958998332177410690231326564727382579047678374","10318422702885014929786842985594673150935370121737818799597219961003784688355"],["8353842646724460417619885854345972171861306927571038309978280810844660587017","17278199539737739060566556768034381835632030381393598855402416290729111266979"],["14104785286945289480964859009675783320516903642934205209392252247682342045777","20124488090010498750003125331113493502959597508182160461516713244869774311451"],["15986507145241281093280664657785478496806660369403087128296937510840679571947","6573826801274754070322824684115506234480723240669577900007780029977791240978"],["26465383558630843101912821273695524607896640485171191492988616150173597710776","18116183257058256022202224606966056268627063088790597063998374206895014171891"],["26028442794354295558616672586111109913897679787324735771189148795928292326476","11008969967535726377890217819052801385797868635947086799101353490700900867599"],["13484893064862056856381012767519424085290133243397807443613177938462958910071","19438357902063460911153256261216036874774040930600492470304325025663880572614"],["5272879139258816418688949096385068472521597123945461408684158778138653819332","7436752615403275139692191403656469766341481206249751080516012297328283387340"],["17631607305454525721631799125429822669523130831269703429556237109372414873698","24808128460469034366759030630656651272804271159851316353833180842535819357940"],["12772364821241254970879713683869859641749960275871393488672578182810670109425","3295147047994066249085324183339946145397548446574512694984194807931797243012"],["25030932132808740063283149842496875734671442492626272463604548198259902174336","25102128367342545939016720322419220490412551573669544582230565899569501277628"],["4702668623147685888251476195372196320240237589627658968347062524986784632322","28217073411044197837805954522798300790840412814679172621819892358338192429782"],["22496184832704910957395188775544989005853437365696611325174969759467703784772","24279343831085146165063509512041202645701700675385833807968910699589176096365"],["94723492904452789118983845630782307699704393994305300958519883182035920136","24194437000676205618790406835641149052970818355545055094354300264561481063702"],["16680218548595072464923035587235512839927686541692276655535584966834583758809","15753006551487785158700320355975362966008187681336071750414922541231022876831"],["24099007072730730535440283237625986240158117692079284321838786796780644649019","9971034481864504946288749299187984394516369557224949311381539941931358322240"],["2890267098871931284098220780264962893813449770053117471365772107559605204061","5206454901035592497069971890348949566236710215473362360827882433311909402687"],["1699039597450107662285562384061869033630545940712645873063388889099520331823","24328199393507977145706784384619531521127753698407776973752468287661257222144"],["25495414481366342253274004876940972899860773631730304941376758343467292589618","20870555562003205468233563242380408639918216324455064565904907215772545638542"],["28816313528565271947507144984191590929259664942814005787906507737140294869983","14281099478700041989970769219338026857866173204920700272534848983116888595999"],["28247934097404252120881363111959458442098239065201773425912270030869034479136","14769829338387597642161612837732079068367738084201540021964651033433042865814"],["24158253128903863756393536280630489501550973933031152755325994098958555194366","6491566483101938556981454456438541791247090404827233649797031990614866372972"],["12805674417403083396362271080956243045461601155829303779599597503809192875363","22695595728362064073511078563015749670151155593221133627161254111546473396991"],["14446080861227685190889831707678803327373158808918772016411947955223673978358","22298044271060011408916699130826540594455280614382650855254122141950603043181"],["779726582157180049519323593621116671144135411909969549003265531157318780681","17162608256883348460793682795428896248001526256610940517921113345538689762955"],["17303535196404666908981606892091139857313524424417796004940107193894332330056","26493748065146934556416653655917580944358094449120149443969220190890843337601"],["3062895344921385218773348479093664155592215321837726164441804705893849018525","4749003873675838241384032444927631271921773176171472041582435493882167050424"],["16234774392047096293500847154327349260051783061121175502708089894681884939110","10065460022529336491293521185612114412905358811264656348539603160637977897680"],["13350025408839830459460229774981023196929617146980454588945430860171013518826","170619372391229400674170077032655003023012810569082222264065258013397912866"],["11420096820461004777748021463621479869381934626842358943594193781579433189242","18441289711925999452937369655022576382844615039363578668598574929561668766816"],["15683468658301679859726375800692622529603178010546573610907042279170689176237","24103487591595392905909178531437413030400060729933704512614823016901431627906"],["20448625389767296613424286419996000295328702286978717154568902682359536596715","6403436152706718190449653558378561383473718124902772722492216673420808121917"],["27629549970123526263571551828858927996766967636079858487013305585807999960195","11388500889852519743885112383276622612627330798647043158146703326416721331429"],["11102965810100971692277596255002019069844995760353128513667603139781540782800","7988761841592958941510183443398063568489667066529189549349404127192842947383"],["22862736258597409357839615435880102652237136850154128159846856283356179213050","28431718175041031763441182965526031064723768048460566027434262836727007504509"],["6654509945653201812483724026972719219054137593781897114350375815530241089468","27002135148152973787363570361462365307008143406783913725456951007999144090172"],["4479192620515765019838080269877671393764643666088669095545439284973329241847","21878161976260086514523041229990987289980169397821426009052009988050355072516"],["28667594135072949309135784525137896888275300420876426219692107441098224751783","12066595970521927287559460662704619666727286876776391418906479176109412947884"],["11296980862786127936433223206295492573337997340843950918524673601257723205677","7200975772631522806914197006872631113531490745336003957891549182558583369461"],["23085098705840878766820775725684554892577824130940327694590357702291319769388","3649165935675972643128674972906310901161041767160343214774503618726594937910"],["11657783851897733238711799660400668184733241720306644539900679699404890978923","10531326617904384912101428101200370817134166769967095007989406231126996672022"],["3544013692394467746368502014408388199724655727910086658794069406030983698272","27784174037935306448556733230979429806270759295520262081610883223229422179063"],["25303613419499388043479441626024166746187270427128109243326253849341103888727","24326426751521518632257415479611560353892251910299542641626929928115182876297"],["7058498153164151217637790906980087727042112576849922576527245674596598062895","25142759597581924125054749902371481639037520704174561128558190835480154939321"],["3424453302272538629311703690204059467322368184363029074285477522024076174544","23527817269400245724760006225552269627202453966645637736016864135083176296555"],["15194041223665750663172607822832491983977999372537539237837392219377230958030","6663397577473960102824133198118570175621466039785950189510752267021534604527"],["17075002843706502374114944857549763647890911190711663053542310436595684234189","15086508012034632468518516900055869388714595000824184728227201183797934762644"],["14790069562133293336593648230627496302396199721906738084590257076092559686789","22449393040934309832629439603496415503704558441825770304380982740123012056266"],["19088162569179436314882008091929520045514229656822299024484181240129797846852","13699692882412027696210219811038199004429459448474662482349648311296470574407"],["25895338182942408342973494885183753168425227042412590375078777771167452460667","15307750944449345846504807345033615351475732862502878130187026762015243907956"],["13929766327661956872442782506404173070616161381294744923291706213124432359371","10130751084954630035918225526000385426880040084727822064319530883849832428084"],["5458676989756581684904792029187946694699902628523116214620231944948755507775","7485640562259547055888049616761412261810613293424062588443083841696381509993"],["9187633637990197006730680111419510936590587605224641303426624389756172942070","23932511858997070957622389056768093386741074499757232272995433908377739654263"],["27384515301705321660093827177126959755574864350340388222286294854224120818191","13056479016161113870552228344971857466423989609869564157489153406271090240574"],["14226717898118760236434978029848142076319651404669593289464643882695669988580","2186647125611932150932275734380672523946605025203055730665014212076950675090"],["2973936610627699761304992004572986544146113107162235864854465217433112082860","11401832964203821758746191350601964506753895426055197566451308118050106535320"],["13781674076168003159110116188687051714508231400447550603044120673552023068456","23061792061079754028929532523311598526612536159611595299919319865712738679019"],["2791719577314469832962196563275360706621929614875753519257247946612974015482","26445858722411474915699807725426132616074834601947799951180876323409945771933"],["18453839722242232556955864489000500558115316278207800232822521937228241787635","22530292801271399106477196413032773159058102404544167940663013925580632705394"],["13873761549922995769327888551488357347923099831595285629395646653243558854733","23775723568710084358247448376370608796742118383828445896440336214771756686645"],["9210098407311988950051874948318520672080012502516863506407601178858065732121","25856214010376052179338457998449282300539721021752307383623671716418376152369"],["17855002252812987699144293761561844074665170937272537405248311497946893831406","16912922539329975966437181098308036277311837047257165820455591257360666323616"],["3892136109384343071383829996736560482046887674156618637784314821053899515224","26751082791193183565676291993637110357828676590623871079339804382350663881380"],["3372186112569979527841416983216678325140791682368279090173403627677387901863","5065465045207982792412025132519837106319977159157120588238099873262502288723"],["20768015484058712616004043564649181482517336393135800990934842150256578384337","6447437433986042181015194486611927859955161365608377184625071240614018446474"],["1551721270044190466332322882500376745136326832427647604982324837362194435205","5818474908373623601108842784655835128910337494660337837413365323276196087174"],["1960633380292227321167612381306051707490341394878216619469494613467929004489","20374306774885142162464673113225200276655190013274230672134772649609988623720"],["7637360527134129834299078480014343045153202184915881839580199590348728912417","20962461391962090733805261645407849267820554832270417919157720068117498231106"],["1502903033855990425387539409590994547523712233109292656439389561279416438211","17243178168683426233551962788410827506153098784542490085198409577757673160448"],["27646104878940806630012413295290391920631499237363029116012167737200799575690","7868693229394491265817356945157815561127823663314490240920350064009339067180"],["20497718486304763609387785365479330006724619123854129992288964856266767584814","10830701017188909730866332967215423897386984680715320883544513385835372227248"],["21171008073048623479617507036196882630577972295904545175054855541627787737584","16511316637813186240013358303224968267988028004097445850814543646412441960039"],["9326070473306230673735008856715120887225085086682580498854731378845841975709","5817508826177028547861753534931863867843129962800397418447776918433363881153"],["4378204054263311259585576991694478984920667929206371224792798269075068685842","2556905321126202429532021339805628518899210922211028750518211639984617889505"],["24209175439168475762725439961130845417372713950352535626421159919822506521795","18415870846986308508784223056571022773968224250995023343263683762399116296801"],["14241245777812062497082934091104030702960474004425010386716690767045792268139","26950458386413205910590725680181237020932970982717794713073048866008170263929"],["13375541214656850068032914935336071786246584809201807246497491113737948334847","9914389312281439940727647761964191339984437384007689262752555931933001098309"],["13181239504469333331307405825253077113393930505959683850717756890545266151564","19161118411296366605084839285953282674644967178970273510598229985210498100325"],["13336751221431765307442830357172491710560079335849710881410402047088573907169","10470916164350041479558158529857769809051098178641299774931611696293153005554"],["25014359257977757620098539515384877069334319499672286087488592890553886317310","24361350927649800126991195917153676819785043734256874830402050173152039802999"],["4220630769052872867223722637286269287891985069609241603337281678576738786149","4224369699549400100059856693038723281914871353170253519355699284621027484512"],["4596172188601089696267160039428147597894396935102100956267822138991433427685","10379647568258077690641861871552012477985212634566174241488121560495067689071"],["18902877846440501569576909785167196013423378965224311316468480877454575513115","1036385874365516254561306398081221407421403041853378333710021301166608938306"],["12655315944568882522627825033646302296528984837159068443460330994356666646656","10919610514481297581619494384695169919017332756505534220432789854924315285162"],["17556122830487863877143506715308488679423756625401572619035348189897309111198","4583843765780071537051878922675373254509342036725849722741520739087560570107"],["22896795675010266541073057701324867853858439983356224046068165778227117347538","24968875405837823793187904032238334013886017638474287897045217153793397998552"],["9683217537261777142818847069180797367459769926089464689613485179139863386422","25691627815038338837183175047586905903805237951370849796349188069041449191164"],["28236542098062709919289456608996284136388495252659354160532395251994858938353","22695592773641731827238176520427024738371462587881989161371175355222030702062"],["2299234554939286239465163504575259232637480038418218793429179490336660941818","19679389379437500624593589579789211046595704664986332921671949774532144763710"],["23400650186144414404359400489891037606271292705684550893822968894998035397955","15427936494879799535374141007009092057400095263470444949709644952477779971617"],["11770291893593003065681787308763356345676526498142479949551103322521437521491","28406780402158019062209136742680132667202981073672278690680120818229536987469"],["3437156062921705604167886222527513953501286125202515384634846589391941383508","5799521042568023988679762934109380387721867475821774809080850533709603340344"],["21287216362144306217596004205189155091077474351984869789411550104318745833009","15693923698542908828130190015350270977243834148351803699495888791065452457677"],["8232505444692231208329506476453012434539181914300061905037371708626252927023","17569984203057798133080513306955509778418965865494157540421758509433377450426"],["4168319912924295544644646422734475671236341163715459054185536951717661456680","6438874526492324175099673334594412905795598540952247512983470583752998291585"],["26350075591171599098880462373562958666217399516575451268454059268290120509444","21966352883239600757581626094949006342231438885690368500505844842494771702415"],["2189600215477816815670086994325524647334112400763742953734596112278426525695","20847657960252230907188132322364577599023695413320199284082770968485295440025"],["16365415410910614067500913242230291166743687226583219229734305209814218898831","22267330814517438726498967345753220699879475255280936909692547560633754165298"],["7239724397274846540935088629523905308296349092507000271116391946369303367645","17238828533544315807334632825184934364522902952184707955414231805762281304380"],["28545953555837076705591562313894902220965818355557652617643801946773056062631","19102467585849462812684163284210790637145442157577883449654024561943462086589"],["24539806892611473668376489363803847014965514174843376040076390040853993120347","8274511053891472425628161740323367947362084909817104961607213354958979702098"],["21900511220474274733097085792276709839566779679670024640186258295747061815433","7784292228537803122818098350276045390072776335116514122107901078008216614377"],["21188956037893762583231804726138084469438615695386260266550192336887228531038","17709022126319499952451459129908874764121667325169345127099660557646443450414"],["20809946959774687124970335375201081273688251867407366536046373771092687251714","20840400503270844930365431270080959119388433908652524505808057418041504785293"],["7397815045916863941749811616140226684605659689744311002230661203655572734878","12153189833369997186613389029436345404332938546389696329288040521417772582488"],["2340210869159416441438508433012613057577715157245441821016985939322269698450","20370407760871519096488226325741712280632361890113116857853992986313651644059"],["22418706357079586795060739363032678371938849516487909930508984538016406464427","20650319776903509956439279665853910123260397223055193823936811371848157051715"],["28590410707804148029018997316849316381708889657762370237105295310314438222402","9071450893203790596682849379832554284077754435487708699570113980036807746988"],["15918050879430697411401985280254260167699700861978888670574210471571546932510","11123438947005570928465466804094975915833633359240566846631536735522583632132"],["13453192384931641937132285468492753255674085143402117939199475883940947283921","5063427493570774321545032814357756374881015038079931506847143266990905589424"],["512348016435506800130774680717210221416845076343901614759508873571120029537","9515172289030177993615556692665674536941724016024846150214389839122287553972"],["3553512347511086751131478582348905075296806782393232617016113436804479028745","25545254868410677893038426196205508967975689338019649117554868545030239032894"],["18709019488452414328362141321799070895624751803197517385527923850051391632566","8175563497188319811631439387691048275232133733146151038504522608322976431879"],["13476096038663445566885985196918692119134503665244964084586715558556769938724","2244094316202633217419838586904000829830804147788592800240842100814156206145"],["9511185038368695673241172870058707134917983471159897940927880855940540204111","10314655906195419340884061966838042833935986934426343331453199406569397800589"],["28366523581105992790428733779523740038942617396265637112361246364181434950532","28041626948937111106610777224101594249091714777400836664854415157573336978648"],["26971561876891193683732246671508910068929607453295595378502265040580197429525","18648318528020464773628402188278026927746135637335802845749404653325704099127"],["24826561480233364838788922010502909434436827183095362127986387451400903625942","1964988593551804701397334481864209084181034865118161063984696548848572382509"],["17154722343523463384967577470303403055998282336903371827994407595575561057701","24420365064593352361889232268839796269561213538357231204607822754042144871376"],["28654762464333057500272189010249102967088484663078309284118815735163650143628","19274460417734207268110028403319309189059784079043074663112859198937117455688"],["7310073534109446405364729131399409368189607118477478293002608439815241041598","24158714773482337881462373815986829034191171721406703237558412788714195303531"],["21453029933685623917038702553051492053439782647032889876597716697334416754891","13913972873553573928693548174264330695757463758041586189441760557086212350313"],["9713598463890811998469501930488761070481189558623943304444576963092332575259","26262550809114996342731541914918670108262833538670390200096863313316951788924"],["5065432887651893403241723634315293954902767608817659804803827626975430135819","22829666620312895122793728402018165712737820950032659254928820100941395152261"],["16419279568763750399974316612499900137392289146241647298758667541340508970345","26198450471965699941988415989690887594088939212208944727549413328890826348534"],["11160534400064368788537136111066472520674523491387850566449551463263225588806","8835812447625023970330611799971709061604260715536605403767836496670903191171"],["4814967944970208963802058320475399171157757686298937383826044866695208798586","25178249967446380086130259598455542387469538439028259018443062536693390183477"],["23621899340941763665634358049034674921507279981398554919263422081940600726647","20530276335097220521872873179330525042201181968463906988671346621287277971580"],["23892086389262476672510531691841404106537809104648774322164683805529279859663","23160041815542425291557339936717381249211117083173840521983966804040061552546"],["9469471155422986559793965062410974424705026258313869226427329453172960147981","6493739421528633439859501215053097386061162554689418146632716241739989566353"],["17180649915742697146548652857934440040721708068709733701503440893500913129858","721885312357452158736276731326541290926797836126640629440431966846618425746"],["13420229764309854318982928467195520017178888362897681302520149446948049853340","15278554082798600527417424262720766685305019045680800660505148445144541347849"],["13283822681083782629824012187295299105758076647204288748442825398698495057763","26917036030213927785948867755016505207291636903052822843655343230886034118866"],["26437205671893729881488245329570016711262991440276322788978428084377715342845","6483077920321016262318276376479561193964358930191358835557060758120442550328"],["9027793714963405790349211733875013674049039685046329926628534930265297464368","8726395427847915926398719556765850809618343712034470610389771582730486156611"],["20043767867410260285178712799975918954010123782298351181568645544135626099458","4733692512059402797844572742005754274269959687077961429743044097686328557436"],["28603282225496251381531750275744310453825201842708798769152517987521001781658","7574497346199178515484365216091094537222021870268672884973834653378173036938"],["18864446626422217344597138966883229188960004515397129234330827208628435429141","7194634121936592738872651469143658480036498100578689554068499277157541473204"],["20048129429415118069132017559888875793327620010028719825195795770577617142635","9425979416337867076586005716548926761597649288084721111860847806706452277724"],["21761306685435463435139623114214674652537424993775960292658722313542430688178","199268465316984862077942146513381712401674721391855621908876891481543378123"],["1841234618944330904262394853861014138690096081297136671580067595994815463732","27076440032662998165323845939593284328848160318171117372293557946867054826585"],["8528824811269457502737858199068541723898811116743132486783110969005864046303","14423895507273435510440135836484996718453760298087704331550319339561025593790"],["970804282327391038957658842239517804174705384662121742029736669169888453983","2442804138212995947217905026941338399383732728156251037272479508884137896134"],["6198835192023868036026116195776297766053755527476598042559857733332109643379","18167100457559463539950791116560485540136273494623510505536448777980771535760"],["6590816162385133861508595283367596004395638968199087319233067905764369958791","6936280659770800235536470874710783220762948861882798889046071565460672539888"],["21763043613286316071187534782059181248039414860106180593758034217753058308110","26734487204763882254198117614862024426120600607529809372714813985440971915321"],["21532624923284159176094549159768225761994776910637862894533944665422360488958","27408209987436584872722701844160281827505697429277386413486343394813229616270"],["21835124214000636853511103534816229771441699765403670749052409832511041216300","25362982323137737011727211784581432208348082640038996964490314733465836017031"],["25742352322207384938522199924502963710585652922668965610878747045410490393903","10856213969446209341706958004364056315241850424710524595172083110360561611924"],["18018218486830512206644619436469277984595009565095949433113145472735803400307","14260398594842191217090150546511550607620879084099659237459649455004933501971"],["9324688629966687127862888351717507828712574125117591351769922554061288617325","2733195712196642240893365484189371982212050741744716210367695288094094751414"],["15005925148977877584430804133082063773254334316628079348967730702926321042864","23150995171984437689634632454964876264712709492323449667144045860014654856606"],["13009603867122879143331165585720099568690799014919113644297927867881092688998","19649715839514741779869901164957830345219601244880839856589738038048982282009"],["6311164247362907124835551354012376850990010554061481798777709582032222528032","9104073698677244492066838270246916546792041878380880081607616892700457603092"],["23774537360313398847131151635467884307283489773514558517292770332410097337780","5034034009961417462463034323120802890250264600702811087452329896652720760005"],["18054760744540534245801073217352331252758875159575419614227996652802642903748","13677858819209540206086014629083605044023030545546230563929905054311785251749"],["615834107556879787263191508070767145639435735085647192100532887797972764442","24739973872424578374166513733296804241885779836327837960398406694107756116244"],["22452962285121809833006821577457631231892565004943588227724731932539269342300","1759600922875137723079312856707792333765849496873030628708250969331254408002"],["25729433076740555264999289726644834031095153797508579976779987176803620004330","8500405111648622384850199635898703935010917137660122056434923399661904063316"],["18375880804792847089970103693045374050129861316832325457994266116710889396633","23719705575097730905870448171410145484218340501373412148672318392657876141824"],["12374707760004637155991403170713884579904972609611044873627699695439568332800","2635631877794608663325833286329757858443908709958632749143188947421380040127"],["25550395474204633947916462394363934476364664517713486802213944610313104219373","19319034717487189495240674663474844200759255048299921075336433150700398651966"],["6151262883732537507310158747011024299462606768084517147258049577105090942227","13970183895331330410301525389999280254857393831946503085099304195253459006294"],["4081136981716282084091528401158328454827139265470067747525001870911190777492","16300914666960975233826119510056731149129531827897891575396355347864055786113"],["10797392768420783862025894534372938166084409425510346777150245648179217158913","641296354421018557391894570575203352485409217866877965069725954728282047005"],["4247223098174481982883795319565830086552593741613288266995015574854260951480","23992729160101331457109268215230724594832570266345673846878685526207348482373"],["4082224858124347656238254420314869930887419696567796553388144100587851708686","20670090162395214500361626292033816134301608250243518152838601792378910331434"],["1322968451121324896517196283974191250915540722945172099060995846559017186905","1303163792307970740565946686633317057981156999500133073239012667699737476664"],["8409194764817065791536667375502175121218150328500700006802663315389679891061","8151130882692047476475295210919255245738207900341820408518171180810430430949"],["2080268213692739263013054891065661339505349738690417791161054710265979991213","16444389708357858444660523687421558370129567630724937208161720205396907279747"],["4653786398399134790216577758338479835987928860292056423224038118885886428716","8587191971322735854603439477391971313994560155427440848034200487087713921120"],["19057917043346453903578735627628329095525340284757973649385662380107253301925","18467036323371186118843901648650335762311765574515223804747548169319213902017"],["16219752305151099110226642714008096139938451536162991480846841647688745035653","22758344161165649547279162745273317099927963457744227747555910047430761993964"],["18087820356917214381386570556776155643313927662498350793079328433323545570713","10733988678732652256668491657295294399802123968794216462993972970428122651164"],["1406099032450534234483865912390601059759870607093387386149404708593301307593","8864015721544763757918998541270001079338036648938916539085152133995754836191"],["12337188539252467060251430874106549793047987268089906015777163113518205425734","26441821949073099973179732873022397326007696668443324440296012456237354879760"],["8852156642886139363416669924417451281668847252797055917389479898361954378134","3980464584024529081308771454155097360450442668962008629528980746464894754680"],["15696526737542576840983856785801090968564301533455508889275208623236524107581","27082246882361913574686235032082846877230479130865118818726290250446033768894"],["13455450277926747991007904988090415094497373946732349613927206896880845777090","18849103689328355590849556421843440541648117838829285101933282396637263417628"],["6837118529535863283997132343336321690284855326371152061612465547506061410255","7181877304991298292975435484485773029155739911465944704782466741351685119517"],["3818700669419544031284639216381650401177019327233089168734473228135766582076","108086998643988565686340951945525761655009534792184886906041171610409443960"],["20625963808664379555282640665718864073767092832573326874498747454352897322163","15161583740434617288884915553057795695530805699123799306160715264194819570435"],["9283303776364415519756392968815525202865312179389666103732722545825848861676","22430331506870139091683832055203204588998518104146516605179567325343847038786"],["26504723820422283101747388657297467859671561291615470959133646519678097705012","4052010820410466040143226274483093185350545566190472710214799240531158492407"],["23906630781944603641733762447692622768280235442261945904835189599989989979203","7389585920872215422388698756500124377610750751196982492284697349385036138389"],["7368537884177679195856353840014856373777130547201391768660129522215436504497","3069640464415893720264488187837292914926385237775621802779858455764371196079"],["3494038867365188145240293832014348209350498319678370500347097748322887019848","28929744573468978713215881930939139756030639036484979099464670390656549441144"],["10877207298786032191439951296622366543147533944136572433155816580932367930973","22090006223370687135181031894422596853480725278521778134278749583934578701492"],["10972399795079493968805337665305147010722611821803175889609543604693954632351","149760677465645330434633768878735333510631493471686263201320961311866404903"],["15854413784773629166997382249436334690947200690623411027847302387906650177857","2282268221498461882902319135131431291237241613945200580771951273755465278514"],["25979560640880203380573043550164673019470720898002152846696731540525044365443","20098896662946413389536085502732146262492638740478592622972064690251244675059"],["13080856035691035901068564091124708030137960370535051167852054072410059642023","7965192513405602187462507963840685064952144564200771715562483423314618942175"],["10936096767636257974426057234911420177974359052166336549479102875277559698056","1173404963086393049260383577945229690020934733556721667323024597232037711852"],["20839346281625230442977014977149361374335434588661437898218705179617372529341","24939675767241184634225081593312236794954010532340683900118771978665929586714"],["17492422680785737668672924134291872615207951576167721790131182910624353908076","13895808321563445785224256574252917967264483439568126113476451973165251873997"],["28932829357789217406207977235643466924316229721378542469032749256941963943170","2399571429158051387813271219058417980806319276681254143275661414746274249126"],["4900002889732529113124335225748475564659672653163099259939172099250186716844","5229767970402922322092864392508051173652166840540967638897692315630805924922"],["22064088257553956999026766462223796216077455165672545526907126150310429324290","8106609816055076615692855068606915853429295242043005107369454121362927833749"],["949514537061519477848618769681808276829071811900364304156487545609928341288","26494041287014551605684504320277968793429213814818739355959515593287616460695"],["13239123495751502489430610583694368974091267897343484082449409848310897187505","17454370245954831821964210921879584733908754927845684097153121480517134026092"],["23664943087250490278616324597394323967356121819770596415054899931095642376032","13266568757947947808159598572661299079642888977363092324346873507991499180616"],["2826315044548247374423435876774143939433944327067626960196539012376255828724","7135104250740354630590629908939126833456898463928481959114957130548818936924"],["28660967833550160458012019463204585571406753363507381694737972836833829067290","14429521485103063979068207056983145662416610611978074498096656941291652963704"],["5109763557683673342643315820591917029422618268915196161700925432936682429927","27017303296904294873145075727044519025375335632047243484640289697322114694828"],["17856298124721392978038728934633730517526921947601040909033129496401147333946","22706741324950830829456421483429439847145200879017220335676257053657153293656"],["10758989804160185795228460444352597680019956634908256113330465817329917517586","11854599523343831430111301889600076825770938206757530845508936698614075253385"],["24670969840454955502531477195052585721168977458203449864671733805472596995908","4970710808075806062231547936893662391737568148240548193737769517158260778378"],["20162965899650513263545401671490701656699567726813677703330910487796848774476","27980029278197773850477897168498917351219254386215106077515280923857689841713"],["7435037210401018935971016548171304054805598084727780893062713238063168353325","11388712741403964299860275093665753563592020338994268465287425201805890629410"],["24176448252603053944005859366449559055858638472211934744075013125981428209800","22088766522339791476762147064491160666790740863389472475096205930972362624239"],["20693675254147703539805530498724755813084577293408682718926338421694127764614","20542368441871122038271017385429489706633110752806446809458189682584081026534"],["20032204478002774614811274639577426985545829156752887530108461124326218759806","18535113998021499408325608718983262726475511418273539257707932108541259375820"],["25234131620348317745940868329881401968108909955921900940435916260621903480155","20049960823958344567230295758050422800810473097020738871287925557033765535471"],["11334931987224747731707585789349763381518331645057058654510758690937459307350","9367812818593131393284392045567945050030662685848456546170508444048600267243"],["11424164752863911595204119820984581162470186747683746695616421479894098878991","1251681321046058723104175368626256281253876589667539455915587786257250475353"],["8394749492978400511058400006695591752145809424096806407885587767398449073881","19260001466814902774891249378785244473910331440820998061127446518878037957810"],["10335287975674472421415292411180518077655493158068853259120672321500799502325","1962929613034186523396081299385781135085012105562271837369039377165529875892"],["27753416076448013099581250003893928727996966339062067474938785183250885676525","15075667209090168906250505038161422790653139666866860874273079784554603252083"],["17728210892962764405310766238360076874133560070076147791938063977851410972405","20003963285468152326117349883577584850560482120083986713745548858452606956960"],["18676449040739591332433047701550723879701986590850573890691862862555236889901","1198003174566811152274937037660810109250477804357461365929228825931720572858"],["23237733425357180705103417649609139101097460635176103897994839684287206940371","28832329953500476391442963029059940357440658980002214608391649438106776247610"],["23013392472070687427434510045487681418330208191816286794380990111362871117208","27684762999662381917706353781028695614048198693928897459130257251859301802064"],["17943105962374145473196874602542002884618865333139283039627267165092803161639","327957910297600866201573715207850035366989111601873819845573521298785576840"],["9561800513153832958072073195333045257795795529052392966889230165996174302529","22733537994293778869976884177424634853435478337259585989193891699463337057933"],["7515859505340728146500309349034897746855825999643787868444711794083175135814","24710911220544885578117530035567291183674514861478942226102446479742566831166"],["23227108279250290095988308446069751322642999414582886536586855615421054025586","15715917645391658108827764786118549872601797551964437318472686045744202661827"],["8483272367326643202435647421620192455761823686719197615064046322037804745032","3206708402829912455910144058996018685850303767676714633656455832298496864649"],["9628645895056667977753535975861881564437092704123923565957111979464976318175","2138076662595992931022608989407892871797832228114372166486408081420793316754"],["7497979331511050908077609003040960140133642709988995278820140880084006392655","28022502452701672802562463406794719662570549405493957400337195120026675778166"],["12986261964367393159046365337686219031990038290994354323851672485634932283879","13263032657507254777530227804807050012937454582938499011107197414214865489069"],["5405065782144471474549112106408222528015483995963781306807477812259946414197","23451017836170001275072108464877634553762270688230387434233323301997490685346"],["14381599712016454641572364662642220742162782408040376708268916881407051448564","16520852364607310788443211288327344471381470711448102404455189787504229613542"],["8886964973166988809234674601830382955580707308212810666508334547879811215466","11641053996167287343801166999682522662574163006350060451913700123922660511022"],["20600970207316390720924841674786073889088254250726695719407614825130453349813","18882960765322035614694250153866318504682477726516305756382636030777712491874"],["14901259083036855738472305667124969144571002379468812023107614414497043577727","3634607674904484976231390558004247914425816280680349216490542642338680234318"],["3389870210186776037326845970454158303024472466908548262527983770084565815851","5526178620280568293307137765808262888123651492491947715300556267013542116326"],["27752711246036147456783770946600864246032740694129594972654744605633141740550","6881904027982472530454991665408541043541810800093608430544088214724245205593"],["14330734867907719787915171616082149092378238950465835853346732576142917203064","24148176156406127937023611352271977210935288168936753476841163640199698847055"],["22392747220757043114370716724165014289909240539563481251104272247481839985389","24275162391377764388403393125684793267951211089227070638429284319979253601963"],["973359509974532303286400400417983989915361764912006007035392611870708554479","11945420216052803446675494111384833020841852249902704430251728672252455807297"],["20293686865675196553120684643007265078231009937070301714219934140547139233255","27146756144348908314553763843314735893504856612388232021957063109205684230946"],["10246977083562322873090227660691395874069230822265191138548020764830480766159","5414913001563942948267808159278863587691140429836413754949209276306478895492"],["13798376893861680101215506292248362273577668734673024057976551673013609527927","1035141321582050169504267699540383261668329263743019315467948261803053884559"],["26113077684633416555586025934904264311663970352173809519074814883888479220874","1391367926961491810076631920014195300912818262938715390815746648202271101659"],["28731387621500349049016714120281067448692629176479583962475690478583788553235","7730749774452883291309011689851681279048915654211112932989546166844829979427"],["512002790199458801646204708161727605328011241548968506677250813748442326372","16372860446421590676511797038765738968172652596075912251842895288425277704084"],["17153906787851385790888446033069869866259852638770386908644979772553090505162","1415868022990500308121107179926333324287172728235522154283235329017336276213"],["22154650410917349507855974944947335266047887799439366972292905565084149559704","3478752683499740513241729354640333491798086690701262314022662661513074069426"],["18222868498904956293938220821738115239860841275474633113277463591065847043797","18354875748644683732407747990963498444758939645613773461299121920122802656617"],["22035768412570743504171731332579693176428776561741770134854362575496759215232","25767901596840930111150349622638943600763505677219961521969616656850244315473"],["12797356810594041874215143541534530040431751301560653461847569518365427602767","15963676133618014288239286345221068264324234057444934413101452123803233287685"],["27586411354576415537231642174710798926100262075761579407538830683075948106945","22205879320197547925103422211987139581723474110933110813138825783340388813136"],["27336277694014058610002355984314274292556586962458631400202602355066015516541","12863532686139044510791900432722494096448015128585185756382850717392329591361"],["2539113114295762166325453259666299699066985471764650867268688587558732084292","5258953300746218140008852976617644506031082208769114673564734207868815894249"],["17345057628141148349351995459327039697452453438206428950698362708746300311643","6467510952166526805063073836651158420885476645956913366621593603080331494417"],["10412740451862022527620937766704244114435018157288516474017405235555268202483","1584158940780510641738015421316474267696400771917684372142323373231233550550"],["7278593706933395626856033532628367329979983640461580031958529905478373764960","16594971304781384354261429522072214874118144723644950745086534379587957088189"],["53234081392970210596396648931695857965713752267158405339477534230137805478","28908197968920977853455008463797445671246680630657878311907733136375316390149"],["19106845814876692492926280130736906825401358280437103040954324720707421264220","21131456868634098666972334475875834790270871431614129726025683196563607187024"],["5409405847098711985588692859774348925365213059356082905669072512589722701329","16094093965796054272977488647029706334222625299091533711799854810721382839056"],["17329359036904204010179129352633062664810618070837887598784505272303906872158","18927066791838206292315643960810852291060341749709187700136553585858241343749"],["19584667194139265896247919208406539843057931413924507399695104714982515559522","16212638725552122633290060955815491262940860267987037674825832829184139378310"],["19148152109660573614167703048146856146245691548527458024011160891053099718409","17947197161223446964119911725365741651998112820503474058199782001346026729882"],["15130990045307025567629257549603724415539361745465043279683646142658221498352","91712379807785066974000003170520932001095453511935472736294098867317624167"],["21958265125219029082682661551448034421836051503640503046033657569644441093549","10919649689049557441314302275810662428525050613155705674039293863762790011596"],["25310214727876965121235093579947410837294832084784989034231207053292078391280","6616211057080623075365715916542112689650163140844681650034515790064637562469"],["20852400659651263740647930445916372770175150000334067046879152310852013491164","11561929346601816516468445157243461359459052802309348300977600802955526520532"],["17149924699488084556115532060356234946094231799665606201063234929661933057405","5007286495883952414867192148687360228672477732461515688240238677392466284338"],["8650846272245415603137775649317733896029624429499404197639852039632824282444","3555993104766000686807160538633812905064632007407089579762059616382389217625"],["10190048046024836744623099290773174071116061905871965286346480385985505235727","23029492267655902363576601587491809069497663420054763451809995863509107039050"],["3997635167959028592556294632033370499929047726832369941501686053132551649251","760420397654259840819674303629165592999319497348259737552581177742132307847"],["20720707322597015073056265293285964631005085087216677729631498975437042532296","22501977928261407771506320181049017287368307047581804610487194268510409715682"],["24369043962604188650921254110600249952326456846208172950196279054068143433602","8963538844841034888244780157009895783069756168170114479585890877635296846003"],["27419008477402009419098778088824581861194568785355271686483308813707797589577","8244598177323520157933046177087890049707399141446110130897987522056967822820"],["28472061243085551132119649405955265621583701993070925133518858307127972681327","27050123577603123724132341137511682293704260584877364330721341593693087087550"],["22802754677001948525390635743107990436220838285805305049029682036208443784227","20527733092916811415881882774179469063256351376347750926003891346398827299600"],["22972165150043298669591441077379754912636067484951717159758202467556229231963","19829177061223935102406946774000963796295963095473239259796249707552000888435"],["1441306873505359647441704227645435592564045448509593988096207984136677210749","26065347760591843656030930984516009819278153032052663905818156576715315826849"],["8288491852852736765709619425630068814575957943111385061470923996191590098377","19785042403798354725359979343639561940149676247001741450681866127243289817183"],["183738817257307747660838018573345212574427729497140535002084968980979667746","17237824663074307655700883222612969517162644335555065739753450399048372614101"],["2972892745830586582501864407598951356260456789357246016030020985448160865633","28597379261141810629963504790945411554994008125564954192014622388141543293322"],["6473416983069402677303811984900733869317199249279568999016104183329551067140","22440085671245051942795261321759621176219212252910076702177367715218054648329"],["885504951788181953471832760665624399328172862136900657112889558553447599562","14868805548591991187047121555849379536278401501846715339399376093583535628909"],["19436022645633659109112953857463399968784497913008977606555115879972282757374","19297086264605752308831031397676754576413020412610419314999218517952205308902"],["16858400396262042729275468717780585757501106895013330789156120734239363297668","28148153388034111919764034220097615031603088106896145531965802790763711893970"],["11814080223342988210905303109255214305448027389713262428407128544763987639566","20669263689528572213378688433193041799846912711616770412425043088737451477027"],["2960509892254547233293715940997295156610028461129466098719636285782297912160","11590596543034734662418489413984330639878136315390915979208890631195202450912"],["5703383383731434406982988449933742258575337744196232007315984117567994709797","16493890767760407440229420933970589500280056966227160370658523113820247631685"],["26593005473315990483263336951828211006251135844768162384852171109346375049434","23648562212859940012811373811291972948884670628475379462852785871731110910026"],["9160445682246319094650948218244161561532459662302680054385401526300198682242","9488910503730476013824423525780370124712831104578995839011323837941375182492"],["5849284547563554616132502585124346532777891018834360695238884987118427707840","10846516919934637773970390367805808366997688933638083401341715064329690307727"],["20484596511298214067894654715608820641176750304726351696563519333487051089338","16998906001016963638291561155780377602154017942424969777773605949888882566111"],["4260424183488283133315603430418594451110196987829922186389855495640695095190","20234846322515173712446799303240863009003304887167305452345535965650842356099"],["7374022513217309554888494631415486367772259644308262276976466284507144377835","22976012692373528581043772954395886911127535908897650504788760342676346058181"],["14217744931558707511059286567319008986429867854162717888248174131885345518318","21287513377915485791268841610941229389682785613389916188074435465708401869975"],["5290883886886748632255222199101301079454635729920427515843088260136878685420","22357759709938672746389273489922901154645104725080042416077409265553388189164"],["369586064910104438731027881880624843937669288566919366303493463773521851104","14531453186281745690506542259375643466957282209421864251028945481162014441523"],["7355694479050762860364209514561899035525578534208489766098964228873253969232","12029248483844437565851572030071640286430541093571464945298199039639794768059"],["3647988999480649736667355371986494353494617599386431879652836721097614454066","15620485824484070767016633204231534287860108939387839696750873876794758179455"],["4909627757593515844309197939213599323101791974415500460006946213864176742695","4985205934193707454604809720589116256011630868123742095829836398834787894365"],["6577968413804995900066920426433608577979342784979301928732043253100442058797","2233863933929798527541035414350497442116913015225264081728057752968182165579"],["10547034596394031620054029655672057920708764783459412007876524911509973716786","21571485765909069787149549537673036605399359219059736917781183508452606505276"],["25339439742315041591968956325203124817644403112017475889262005989374722831271","15016921808917721371541654688836004974938121967022569386103890726229275613830"],["6863712780238125326164949204082933151675354543742237029441893690709951720719","6418787392578282311550161616829191976431617392321010731742287048746250286642"],["6241506307213107506857587578779765935795163991417411431604431813976782667078","13388858098924348279534438765159197103316625836916588149839298853216893849569"],["3701625228988039720264624880447743993438619666058019084338160381923386627657","11138237429504262994641970490601610654031943765591461592174147818162744557131"],["12558164023950816347505975927809538080927186338519258929358634688430950326753","15143366278531967545311454135402917423356905145953642138303713848685595157609"],["28812209962084441027863705650942101564525159877916328221710224932328412252611","1356184273571823254815571072625084897282765954593595648426281614255788884144"],["17620891473767268320254920416763752511251854272952349168415408427048811411081","21908770801259158596699695643854450341784793186934535338342883143251054331835"],["25544792861040364400172044120962148729009274881785407422756497526880907345190","10508103224869456226941324365914381763172249339856441151222872787849617633627"],["10723584703887639666731768504258389306691354610440803899236431819274821026430","20278503520501901888754164258860273603435570158156444734748221377020677563461"],["24200240077591868410413836046250141680329221327389374237941027115862526319537","18061985579342286820751474098061591522848698383466870565412538156205783003168"],["11490235042996938049801249353017201106959202093184292527136740985473638623184","25414874452808171239235531767412790979073909576841745268237946049206881104058"],["19542687484582521169338721751364568561337842500590240041212950174398557058721","15671411371886133358922525224896174181665988609278201693767639043565888418554"],["28097401174042842898426745710927572696615193040009946036217105922248985686129","13263494429886363713211895344976944087054228203365005524853074921298285976348"],["28114574537854749111868355930507927987331215981753244155718455552863250955271","6150581444263194230138204323639230071574295374694729721877897003731250253052"],["6763593929702713009372940392856518300794189300569984213921369167379643042402","21413608628465274618904589892681073739651385539527124582136670152807009695766"],["9909220756146273842291090130888142994651481300077083383077304747159571093067","19473007467152153089542799419971294383970033917367704312181929321503745030436"],["17100756485651643499656296403404469571881522204636478318316896333160715265282","9994781948668827791617573448997307907500730969941125231828628981207067602263"],["19829394770607708319703657471752052479367664334076845681205622244182361051174","8382353270100930434095396084046581457615353504597632375307660769954090313150"],["27101296526249836760261311606937184663351802787044973647744078428226201871541","25780957759445676116152532472428646793819429962865862114158679473547559892572"],["5809722830533545205841988161591571866093486752140121177648793642149453943362","28194578631651149748702115958945958826343112220399037035363042260431919434693"],["12528862182504721376577191668875137709991136486298585113081856845161227601709","8003224463277498207956894779246314278204539304385791733450920975022723673924"],["1974598397449266008143248568889537924090165867725326382662736708602821296100","6348787108404020737917025977990087228594245715120189733596913489910156652409"],["7485787066731026678963861696074044829118049910563875526910427851613233550937","13104268731604955950441246270248155430035315213685474845535630553927912481593"],["9796547937621821101154780084260919632370813444116497861812158544523673182256","10420538931368086010230652208113827356737688250651601983422415890003432153233"],["22561215169828264394871949471478611179825506390159263404396807025492265144064","1074566244537686598370822198123039211931674910577652830711278564113701545535"],["17469680896055091955145831371491418721298029054816720424878745284763876343104","9765175317982509442243361085287844298925162059020274982300004101904799236583"],["26471978315662525017505197751094606953136612738703429452121379448441122542272","2436884161638524483669114741154017246396099362323688239088575097997698157322"],["16058085669465025836307211909304589876161911532409144584747907122579971073872","4186467086912588060404394126931567790563930839342068168864159786004777194969"],["11326649672361004895286990533950831627332100541624974156775916739578789611758","8654087441670560506466952923422336173247914947164049531315159634571982199831"],["24330184272053425910204928690786335240421020907510838412604950528817500665034","15703866993741871912130988061230218750676017905722917065532458428658473830710"],["25778369875631866779448511175595897533828692875416508978896683907661005985063","23780975359022800666409939674394767387296897967938177324196552518689495759159"],["23778491146100784242709734672922139667454412804627151323399332560534976375260","14661883896514945754474399959480781838009320472935844148715762709687898952828"],["8593804657326739583339119797323032463423455226541676597482288209314564262313","13310675641694899603011092849594213825009839597200710899821084308470162538940"],["10600294606314239707441394083413456370023732916999535601741410934268944878964","15610996928443201518139356271254517323779328460106602434752767124895410698269"],["24329815748283273210770906642808509763177060923833495014376926571839537636908","3274833900087859560630779949346236088502823791256729500399558202561244360305"],["8532786493262359171539277559116170033498275828015446329850951885015243969228","2482817645084638532320185824326831338467265526247326249682255313938813798752"],["20572140668417440685386967270587393692741511668076810945053218111050871223559","7315186790441946904603666957088102264964963879341885610931969238025964560839"],["2446140663133297895766834243965608630647665219365001850759340228457594826510","17944829703723910635089480395838366638972485977611137302136726258694756258416"],["12926188167004051744167410439328068527458392273528154479568952943685108064296","3593522747527726462247694798665179705086047108140620572587296164081620874607"],["17723899290898158145315620586734072636603007057125298460868383377683005747747","1303791009649756019808151373491797522442912277466146751556540346307165702922"],["17664181595437404899008623135645364231806709584955976213021444668845513118744","7404452596423177483756301401784332757397037237005585362507860371919244579080"],["22707173421951064226112719058516347616855674544526110403701243065136299210761","5393307417067925619694551359640332877013205336877952506958017327050932048222"],["25939877311900683225907255230162895523184495349693730091669204030200326280936","14601467681281196340652599331476503655074272667148326992814554363741556441930"],["21457457768019932720579899910722886909867273271813939636339558850384435326140","1410186842446502197188073102902359826067832742810051031413722896892614662511"],["13529441849754064669528415305575638726305604243101356421329302372078781941118","27659240344542656121780457013653465597102725872437513480916041010340925539376"],["4552878895767301035030067961672549322907683368699439084106467070218564902671","25140826450619125068613396773042412786848955808952740177522015684687909269319"],["2513245135569636913349141741492094756935748750727203191327725128680648335224","3190806338461227867631229610864528342588618355513588542973143328180645812051"],["19482270024241048819179667403455899212085065957614274998333549697769027928754","1883313233904198849089803092088761620014390569326996740821643563879139790481"],["23695590954955971791898242884894044109468821906788758082666720445073056823538","22577534684395767856602256278004314501061113083059258189450746411532116260133"],["15126194280889188110865541095687034056396289904411657542358274631669373030204","20746149737080088324533711400450450618443248524870348869159971843367434616665"],["2101265977672478661179799426224209161598514638441109043938027200913907017914","8499787318170899481722842170444546458165429149329074286983216797193229502148"],["25649581016186081382631614131559884539759340615117922259341134393472215163696","18769539496473256651077343009461803359168447448220042539716485598413185146375"],["12565322536698349836170154794887941996083981128950651387539762818307541339674","19951701435270044368912396647704652450266523823779979546572922856269295531059"],["17429115881380221090756176002071847444186524923565354685061139239402446310794","24918662741889485708435069066548397886674316772677360553218462926181465262163"],["3814979457646088557774327545181343730148050745978566641417094868211934472323","17212875707465455570587077976616450159005391555166738376974056068028190727850"],["2596718600434756640225846502039999613037914273663115608831346381634119518968","14990939127319932269596856145567633555933580720879246756454120162113475283402"],["21522273819511520449658254377660088163786616853222284406120734127465194716298","21512497551562198598275592485772513786361486575185141821322722586717708423710"],["20043183876143973292333295502988869339471910791683183541152948792970788134255","16471329486219274545701671961098590489118116390051346150967426507270132778236"],["18841923076185894589932041484155787592804956989991806024486983824503095357553","10840350991757084939985961461064209868209614641765927430282921511829478900979"],["25236487009345153085815287916874138631340545729624249170823135757572905815646","8846897278727940960304717629940809160614194878185407171370804622798458459616"],["21513226908727682804119688726621440424468687804425724410884365102681418765851","899460912462595739549749521830007512671730182185802318675064751445434861191"],["11770979215925898890787377135515432062667174090894232196441279997327839241753","27349254837143493173555861598263176697175315319081740894880859056418585548359"],["8012068880475053173066193380292656305945346550457649600423377691412200219503","22630470073628089981377771563059845650514557331337801232729719995309624821810"],["28185263978314050849559168971278932805612880166643946566105180153923086699449","1914881191521920415483220185818256349228467557515772007661878355947117927026"],["6416091019329350010835308201941737393283341429506738542341316147593561887209","7392149028354739732723853278658349642787928171895646464730805300477524990331"],["921559999809484891946410583999448640322286292828178100818457577196605650020","23776238345783838536576172185596969668301747168723031680903937937382493557234"],["13210452899837077391505020718313794692127964966911600901999163281928938147302","23925619950368332757340250633109531600731097213636375957905577203969646441372"],["24269938673066286756923844284707314077247351319608895484969286576903560012197","13570857985784333616305822710468295017061370844948078080927332751660843732535"],["2906417351294732056256550503380026660101896022564973710233820126160009725977","26058540243638141866429041201651609039773859718599581687725273706189094748477"],["15880171061074349839941708831766442772943873813470710763020569108501850357945","3665912996177519822914184061132652787330604712359537687092083887441064732491"],["14667486054014738752725517186479703558817678808935287136852646150464708897860","9811223196140866393366487463045666936707975325405683998329896952161980192613"],["12991036647177504173509587395669187571858647973557321424206147256757522283634","3169407845775098317893211416090626320168115008997610903410831646997925796822"],["3338819604723258132309787582290616698488146445463924300770214888195305151289","24583554709792929744264232622232221778968922704947769167272913524421012351599"],["15203497604419477406093979890996167857299606538288356032306490017361198659708","22235439642633574028200071939166069375030744520704941140843466353606629488218"],["8641862502935852836044539495018235520691034950181672199547222533495716503144","4768675186819582229434321111756747667561065708053548368363252000715728006511"],["13540417230708672256781505810010242844204400562443011791010765554379415858675","2413212707136401339558636793041139560066893399684127890607599546199487168662"],["4967130556009736855896124578479066028511653256642916986458537566862753459814","25691864707103491046005600119192362106210242059573342313345794800908171931696"],["20873188131905446900492703616625885054433388850525813538006554432995221986322","26665617810873331737224145611858305067766946848121243898611400585315031383297"],["18347780772321617336144347254877713571376943992843676450489536877255875268055","13853167018048272196615530094360618946433253191000081062947763101294051924306"],["759810041344125470753399787570493536147647371961651077577287032251254089486","1784048457693333681198559104675269992603051303118276137907966410418228997182"],["4825234269972043862136596101277570135973898692067993563307818648432721952862","17474038866399404265875560687435542645181003618258520054028304880796915419298"],["11216243447607906581051082973202349222152556061613962427484683532366052228517","27667368262781842976157263540566372527342753212994159691523204434207565535023"],["14767434035421119721426652789691740845370280238249729299977762205824047176471","19893993665948591756980312019406878184192073006655999011748124210159337343668"],["26206762052597971767484430715702731297921561936562301602574365057872800175539","719440945414935188296262130339315273252822796608935506169252889985840081014"],["19268109847180775565272122958681546685460200688230721215859973130117563207226","19096085385329883344989391833760778386222600723554016561439576895224487469419"],["3265982842075816862051914349935363411987045392961902036037378013582477635427","22131365591508060957996867733218457591507689606378825629207703713557859882019"],["12182694431350096129536470241645161842956470130720735562109039129738064501440","15018794818544925246799832737507101445687718431285640375843302736508417280215"],["14025421087173495055624245520522388486963822932889280287477639361054295903558","22194482661669454623460470819751383014825329207071144061788925509689199702890"],["3917829771777201095292512239597394164213486776548044670687275584740083928492","760028095310283380926071639359761597987345012658727871600650846755823768295"],["6682394049170167205343178531088041520734186847394158064509223674494317740786","2289228510223604867689671222112793556659883108145176278422964774978172160057"],["14362707204055775969319049712296647000317050934424157846323655945478389862841","10197399165967159966847475887889003200448230639149897542328737950517558150945"],["2594955463472157598758410027143897552466103287972599219158520474255545424515","27587355531531076805855078978036456747341580610610418259360463738866102834525"],["23141185617280224330599975856908139522585464339483440177555183325702362165126","2944420090642711082362258202260415038204845656663096620224601493395161184767"],["1034014799082351319227200676196317236794530490495127067153295385745135521495","12411343836235351183650495230195751604600306909066795031367256878099262812576"],["7199300637312968844791726915137167726174170132830188191493391240803293761212","1289223510319259240926928837109183070128108693246489713948241035439260281420"],["6972215431922217851966969109673122564224517526093265980039703817932224827949","177958025842277500170969593588789385081866378942812517547732609848058845892"],["18322072330720362342206657280174106648560865341099345093142951393671958384725","9964169680423709612214001905661479335171006398216714251400615620611329934197"],["14755113333790905652319573556438268386611902249023290726896418553247707151008","1157714564485615368989441528603305465733266428079264630360749366544112038584"],["21030874912227904937301739837923684872650613585949484928228969332126042062692","17915757806603074075877250623567255102028980430205345220391749550470210728843"],["7399711643065185594268270241928245881643717640011990004270776012561628168742","24017848286814769172258298863823567286764930655485121308487429645738478255015"],["6868540269219662992222170361717838671507014052292928880631652253648812797298","8657016695695086333426331247765432996938576308340621021501851949680922392445"],["23390834753005401619002349661680810748995699298336972879813655606451718886418","28271668103312765650497077174036642206540542481789555209287328278388672843196"],["11513226615854785219589674142371720338809249016250397384050937131996157237012","19448647512497567628893173688508419192651626429847650396564621136141738631602"],["7072597477331674558180985142515565182273522843508607089293264641351960619179","15649179397371578656570368878996738011251811097926591556892038999948033657296"],["7502956071678413261932065910933677994577249961589376981503378584947988595182","18086751880377895611223882992307277236186230782343978142959966981690941843112"],["24363811383480286198968359392720815623182173950553618467313391769714663702448","24176235158457889720795364974986776127929983838617087569351546180092098334067"],["14268830919244988283703394739656890365427979642984179752662408438656137575335","22357753705946652025355391576159500609409699999572135921940968456694257661787"],["16707016160198145225342738183224634828950508883003138840057836218428636242217","28746565989364175541629066688374360814820559387836982312186378357225162584024"],["2226520123267650556831669432504613225546219941254031542752616590393549589347","18860056188813799499711215012250101798974446075159961575209935580515247797820"],["20106570035416348364099123673863401059733371745415943327742793180689951617038","13280691595053069281267826497536509916518814182070617779172567767947953367165"],["11993476118468605178634851613320593261638536432866868816661496538093937995492","10880665421781610077373160400486294753914715120881896575810480636632030278112"],["2265207240628555814822555452543150561080830719317726474901576412582208465425","4232400804284784479959250585833239042225753874876871822450270333600998075226"],["24995840261282849585484937664830268577862559301128488567917528993079545516926","8356999343579656848787571748969927460901258322065829913989080798083468185934"],["19335232230623300867340010389452062800373067777646809549971223572628532007286","26849171275640086501141791466369521842951193382473111711276641119765912398241"],["4268868265263165732482910342133647143677578618279131936473509578074810515744","17006631117955705159841386253668084559713359864375568020433095170061727173064"],["24507114209689615696644980456491118148991757149492085224117798627760575504279","24751592922457092455405031200816631065978188026369984060732670905135159526797"],["12943209960094865534652121262641259334271034752141495966264217489012132157267","27355293938419759173582816721882687629594182666997609688711613836234878954663"],["24885000947161966635675850888603425198670821111023466993864671586428856479164","3182292535157048957936246669484919789150659973891321449734427068182388327085"],["5395845109855556065432357363873074127508161792467877650476312785875939796459","1666410061438868883479158532779222545042801988764226767315649966565903512562"],["10826119965617025514906812914310092358923416541182704727756052424101427673062","10044697620843288435322275916484880894633110973147472942490821593698196382788"],["4941948098728257218734709549604505482491979418996449209160965151353680328413","25653730269094060186595801839751391093150313060056774179621395947812060055870"],["9758973077958488143771320202280110000200651101618721163478228049275388882290","24131349718638382585864138130534320577194437473599761378555481583421720026567"],["623794523292285011672576053449804985487556740407777175678751695231800483596","1421756307920677408967816117299446415321044603651431521851717703862464245693"],["112969227036025221940608000066685345700752012278660609558174070491711482942","13977050248177272175725881823129009993748504098628198854370023428895273718990"],["16198758213255373271542461622428563010423642327928935447653094986620982625270","1927630942769630089441609339371975501007293051907011565476569337281014273269"],["7943851294892112776289861293890379438798626535511111540847605126782583815662","13954920805912176806565596452363396946238058566893289888328074265870041216827"],["11387542359781436136962515693667082275370176279942010471818800470537504475993","24267078894785723944999014393357448813817504271737170180288737707649970770365"],["19872151709001816096290910798750275186228578591239087425179321538131179806669","13728164082232159076681209446540838373601018975820545087346849037697555721679"],["17002331966024559170055808943816619880862704180920330952094386384184581262034","23743758540727539820424216011048775065688391881194069205764743189275888748830"],["28149733974204316692204550127851451011166702252234542871356712095339741551701","24251882115886897298206540439495959394711920983419430036313866887540874350549"],["20644973395224357843936899487997652751379031056908437942084869964456323967297","12552754931767674744356792966151960971494777574776221892320678967366466232656"],["20658006261119962229282483243499727634216209192185065385639479821749344541730","13675760911871194364401942355707757619079811842300400491950592569145463225154"],["23654010854241708109119987331627852969015046571496737186634000926346157704142","6741197655339401470651168626321998071045523892015787897804731365943247603378"],["2625633771366024936683548941248957210026993610935763661343224608233662136520","26679667661985778150892462133251730203434869417604004928165810505227033621073"],["7101559611409528867847665230100220336313505883614501928295118474088494615061","9261528291815962683541713290404177727569969665674008962497961711543105440503"],["21312916956995539426158846489337615687467677389773462938552913641313506467154","14650540250457600268256156882081075123647046678190115477660043413503616226837"],["9672491736655556453235935438918930763032220587749054515880429525214536714719","24609140552795284812761337458735054386287337027491108717775821426067542736509"],["7106336082186889951997840441199367519867957351102495095784939053890834050034","4018441829351785483632488913241081934736873409244249616357319189299012550303"],["7643883551564811096472398609941232839341061483535777297569982734829340124920","9871602416401626366266288512238947327429646528057751523427077555409150328680"],["21728461706849940779537634903354438561818437220652777572030360679838365261326","18452823593642716196251462281565641006590430003473575238182905299868314746837"],["4236718443333913678474928900448150241979906459935096090713140357720774714906","10359930990523676682482195057478176918372186795840151644169074440825443198703"],["11719090837869755971439257983062285297130678547961239621211617492420704297574","1193354327170270653851159299637895554994358543131769772124090880253957989110"],["19928605233240848429965809094251245119756443011162980804436506852691633951796","7637781255325864524584420151840819332716296553487921630828740434390372430242"],["24971277155418132165785345202066911414891646846050713094995425603626683248071","26084956845810900667393082777980316732916633966267134294681239703086696525830"],["12357026630483923096058466775861028430075917646074728771411514949999289005042","11431138435479669963666049146400550624915270394426160677098386972846643562111"],["22750276952556226101615944018777084560971683926302785951721418514578681716948","13482779470675791796496117802807525202063736799846041035622975463573437779725"],["14382523098085822188753335311364015807511982043884489468767095032168261596507","23591903007965165411176472390480323632521959746257756142582689176448029870427"],["21725868503918720046262811187544047438938081495726287491328933573565420477899","8808396517386217112783697502658746021997670801456719584089245512381257695195"],["14071153901951279521882361882787023018916433756350420881760270442132018182617","14629408400647948234563114668893585814038387407863344196402259050328577810686"],["24435552495993461393170989003633405501233881301137462028958514111544834663165","3153803472370260014896420004693112331367696393508722901567305757329498514618"],["5522638656915582676795135794118533985689501513385149800388451944178261302569","9213929969653595021053790605832489374564252648375874374995129124896974181961"],["22498757027177856760932779802475389505077379150860697345678656223979820434714","20689883577792703991958740826567182009392338930795354594389317420168097533853"],["318151910464526603988600001876366103986775078858675018209154825777025590505","10696103784072962273490170794627685722009487073208032201623417627993933886479"],["16698937608426747839398061219633201850768874447995871571075592071520079411362","13604359273615660667198540730288637991839156770600357877853744175798856604817"],["3492893685445545186700132971580387620186507927331331548442624120975911819868","14549789671395980298837220726559688756864095229876903031575210217329935749807"],["15870258928631698686615703526399454381695663641668346231833307068030240508726","8848995078502283723558067495400302231861479437018565315841624950573740322741"],["7114210840308828851265489664564230296531927117750988719587459480561792212056","1143108295884323947110056946515238051204206362154035049739278558746704843222"],["14719402493855003604943090537450660514161828999060373970606038865325432548653","28029830456652781510420422847836541554859484693924155981165275850549179784588"],["2610211981641538915949634576491638944267893608286683768954182164744044418633","15298117292429528389095733132733994478265149478698629369194634879036421206109"],["1207359312293013339715559647529002653594563066329064833657457535798471849493","24147988573093555613448540479482573803112572307413150144530441765160161903360"],["17663076856463674361168727547545005519479095464853228524438307161547960146844","6034802608834313626967306626053595886355407259360498320908315381613707370933"],["27258871693619605800594519477587429757278582180140944628551467882742787516223","11053904727316509813488196188664875915398733396300566098483856400173339355136"],["26469166222867519885911244287356731567590180006722134516809522866279694166371","9705184552544957921426958328566978189533839420603089244077565529629319516824"],["13393893088286252353764903901727247161672283070219807619201163986151019527251","3310987292331214396826595327506726288027207870898488406676896454326794142385"],["6055648966225226139930638879321432262862472413471086763723230381289029655880","2616795901194142134205946035423971399668391230025874524487090583466954033686"],["91718496467759332337817260055404433659531551097734967782536542596289146313","6973260472667693741954721747853828174994373621771378541137499785982971886038"],["28937825305379614664213893453439060654573102580991039184740424850585040816339","16477206862814325643303712742358612464234794751456241292485710727569586622719"],["7828552343377946600432951928343568316922843030679459602766005132843734581199","23383223994841179768544996420796486857071182028043787622889876952816744379725"],["19465854158407644429291230495487112142528359343443803226247085916870483114621","17884255230929678750123624555012749110075437612060313119255381266521885052697"],["12059488857402137508274020001849103606525731422412705870346336921098236097952","15898664168572960469810039153209855484905039034511397608077312517808782344231"],["25802593084898566144522034111192580468994619450968471723946513495483034734042","18407225075730897744089936609997321270260368068385142854309668204045408549761"],["24328366065738358930980733796904597533623996383086512259093635455306012699267","4285144337108955362465907090732910378090319931570101318147173723975282722077"],["10896513645478632539297773983687630660744767735051878980133834412688986381055","401070456421761299783779200189550187897053280017735035867881290682892019502"],["8495605416137366600682520429831446345198114119635872274659717292724891898806","5218777818978614765013733361654901392880197821005567676890928624161935745482"],["22181994473999976511269908583927299978381056566715364369958682609632769604376","26330491572231303652872341436372409942303452915489573112270676948940095223847"],["18763323803094971436500965094801068360441867856467436428592241808140234662099","1415754229958773184915860960519755848670018538157898454953157447199835219406"],["8366922450999694612595635476547040562412562018412634619568912617337494467480","19810526080913528079306288400464486733525077870752501389105761963448638475321"],["6328900410587639880113583609490946842108687534372287252551343231596038119991","15514107278022369520191956114374121440552499455724685587479987011952892069621"],["21042595125689990419018720976360513989734318322575435360031475591158212757124","13040172965362787776921300990845709925011940237876042085721073568922383472026"],["12574373009086354273415219408406769673971920383199747881693821068170215634225","26329147601030116385125626243788706575056542238864436416442184609023249498560"],["22755198887008089834903745794274364856023530411806484284406275501118413921699","20152907592366494944619115895048231676876704691186409672379943216781410672767"],["9424555839531075705985858253544490701213185180876060347165002986472130776511","15174787932936092651959316991257308948843840302795037092671110991286441885953"],["17000442010485913949039652670758563029802051832667813891437524314707163153931","20179763246375021656799835967910344480544844629667731770894251578440156708958"],["2004355645373914378794976745341867870409315429444016759257156511096631973661","7119937824518936365531870707867150765964092194379030997124473343900018780512"],["13672524693968208439696122633211167905745536635161358291733455142233432962455","7875020512478415227565333372047063913377367284595383858536968376792736581416"],["12302568916854472212066711461070904422377220598039608642915063071886279160255","5619647205877839087895741871350858479825034792421843460753843455401966464355"],["4141257261004973246535057353190758295274298366312242158645618587227117350700","2202706354933450801758597085401253113221824213091999326767631902185417702883"],["5626699556270234309456006703419162150714366590936579052202228181292962612794","27043096930246927010797400223889747760210577310491563993371895204913868025693"],["28754316677287245894982818076796319433554093826157863033713427002389419021907","14519110490837758269372355995079644258283677976134670104378481974309082484041"],["21377077467080622788546215589518606561564986399456286135822224179493465414835","19173878428209859723705891182154279217019581948621569059635359429315990805024"],["25954190667159151673982158607621917137999665773766391742539719941393162841165","28060376796539584466080250277532408487877013615537184837518757969161269487159"],["13524720401781155652965697231787282901189071279664679181787107372239651133255","25764219785511148441122650934714576684490014070193327268229934139155818367653"],["11353817801663918080270209522074600488084563948570124072029289202257153982371","20728620459770147305194815523923886681661538511098253003261739070562103069185"],["6966897848879958104555637673599494656806803612552951234003860895063055736191","9863026267027312189495995056791482733139991114423747671646690595244760665505"],["9902376859625249253705615545362006003822705076933336374339434793666243234820","17584959974051947241464721746015578644974311901255988512140989462365836462977"],["26903906087955180959729363985484103548436341957400013102189426334567357917591","22688302611701921523911621573598688236169686898642174087784268980913475700034"],["15427013300483259925204545524083877348857015917073905701876472913864347907647","788138786646292422792768547968003629904977638146890513729026537332775670689"],["5113897147081800363600987889950407016867627532335956709797551946393764742750","3811474283249052089124576209725874976410023084229660245536945001005158818383"],["25173659908377525770937105656213703949719335357283529264930992113240829021838","14134755193137885833865070386376416873342929350848141353342732329343484926471"],["6974642463803978450444025855210771205849243923753860009763042429647477781877","3146608328802344030607417492344381433220197868890549210643393336899801706689"],["2539346550164734008206969972899528701925812052276939500953202090113165608754","1132634770474393584495246720566090994812855363723459234771055275324527989568"],["17314467886157738124417903819224138742088003754745945262479580994875365437064","25676657169875527144350670222888945264544397172690921834251139488627596394587"],["20011752382535186158136702378234685399753987679195771765113600522943212139428","13836845363024710795014812136398936759204138483031183805249604743501009302981"],["13256865446939062740601142001397389014825999112559010408106991263275411639704","22785582107593953363819025433098489772368223548704666239448539263507724211414"],["12210730674437494867374880665989618486963941633844407600624281427182502072168","13554503583237302003579177313339044749094812136687516669533722563784108876502"],["425433095528467451702501156720588073647512745477603135748684168362403191196","10197591893500299142660318175424608541719851113075815873660586070658921807976"],["17279186413263814067807754954100064106923390663060776077644978955151253640822","20288671637958244153800389367375815545717101602072656427648026320557729526847"],["15616123003611303755750595888593993896698630147356016595802157657218411296404","10357064613813939766231821304659944790340039486770844376070793770842176018085"],["17593914600732033513479705416237586353728018813587779255791226261065936037793","12697389058992563816425785923687569859038667897266092617360994969719269058679"],["22316248540768840885040345643691109606367929174351007274028345223565446341638","5940361486369020013077994937962439752951125985747877074921459141218120842955"],["7221643126477123769232921028293034879933950866133228434603575304746458595328","3761522671668567786366169258948623570597971103829393713376117838702640542036"],["16562142692468669975842018099433457826370327770554600950070975179386301285586","1444114947932628492896123636577325548115542273371820604402080310107978961534"],["24522099863408645864016801719915996076733421346203978166589463954394857635760","24324860391506627130640464260680274522583560902004740713565175732468893683207"],["5250816002695750711205512191160505241524262201516323477314545023205436966091","15450391664622250010863640218988310489762875919335862473755488980302707588271"],["21117847960406780836017139136327830030656611503473515416906853855395297207493","13812486611702373873695294370248600474811506122293104788303030167281931217576"],["25121815231386187362801593820811336588741921069437979291695654457744853750033","10072118641470949734501979560416265331798449844885098236840501445722111230869"],["19913643377348483909543420293176415826209051530333242699415674588986175273019","5159187121400974214301175439722762356566812449261108889427815115570575724066"],["1871742389723155853300163659509397881876829403779047030567558872756632056464","7906040639095441996601905870618804877088368453826852593921592317227508742626"],["5277093011766513386001708556205155457282816769041371878213457271049702529253","22888121871687501544914426793266355387904374244138600540478855861865143544277"],["2479262020246110828382039514977312442496416000865132544434385299904259089982","508607975184776453637308412216021815485064052567512765025476175594559402320"],["4441779741137188809878222292400782722084816057260207664729691541231481612358","14208854133084493599782118040042385079405971353028515143877641670352031870714"],["1337645386625270696393264223182874179090204547388405468330519668176914216045","23170338310601403327389806194930382829876183648389910523972108472488173248579"],["964824465729758004915769875061278380539686020256915585511288256247442728967","15207744025348353150233970685698075864867605256656481174683088560299654440814"],["23048018920391079975617753749491032436260133360874813864749657604022937714441","16898414293057196290175448469208687973401356984867489322617141198188546351747"],["28888291522955187134098666126555229978940451678685810512744102470118429916825","12100318438288618875160120843998892227161775811086232449616680221844042583395"],["2052411477776272038626891964967359912767209212379104710930536324567800973460","9186097562955793136053043072608707006563617135910032410435984812375725396582"],["4474190118420676752706928826891219642694477238610992373922892938406363320897","22876172475281043265482073247017820960934279958968256649285421184601728146943"],["14684666967607360651059661203358450506398548246863465550079827452266448118836","15171482210799374405921027631911977273636536642180567565907690734250453427187"],["8403786516585361041777621443326039840981516914826607922104101260506761446654","26703689612953567004082355934515281758241445296153475376089369474974587178110"],["6514003819467574171148620081090834013694008977833005726268644597598114484948","8073179965024427078446472839616603294671453304602801164137317780706375490661"],["20281449451773400244712609008920853699105881281258886913882205191327425703078","19901781335666171079749237488275492427116300456350900136155180693129031141266"],["4520722177290583904752104870104055324707584756088063361814024215224163086687","13070765056635417361718063181536416460593317670309908914196734538182735680251"],["20715246033438884906629312948010342811392966726192432919340480837055166863357","7900105700477559421855677792462065203250707238636828917253353064344732959547"],["10233718924475861119192968159063313861538906197456131377503796442336274416332","22498752474469424275945952896081437940690722658743257312992760139984498961089"],["16755879246193243006009035993157636540051982826389174546668230738585674820602","14342909835647750529868118740642537798749786568436202660186259679225540264467"],["18141910894091195512117806740975066007097551999097127347001056061655678499619","22732406490621230493211998380999434579932333901559373900061279909762870245913"],["1362411666660168121113714270007592666818000829013702879153869912400470600237","5976087601163830600571250954312985157006205386757348534344369720150822947533"],["23663172466302672799481696723737968935424382078979828675360062479828458777647","5309614778992247055466528176629748722455022758762205324688585500076870359882"],["17466646059120678926502442546473586799941835776439935249483214521369985079336","17324781859827778343996555680440667452125280662845050420975240124375973397384"],["6340930086544849496724892498704385665859943111429781104362789402173727324928","5661257545204252330601890814193324048923258830931877158671221597678112584608"],["20688939535485957634737148329827527068832437438599913671579952569946484587410","2010876790574240577842358398110583078181883306530742257194996457784405526416"],["24444413917761973349617916272834731415976242552681069856270078331155645777194","3112451863598761718095836440205216265364404711700199717428185880516322267201"],["26497753506090280363240697486812067965810241640557707835510193929023016433598","6369220862354245708697003142504194669964987218486674074122528799965959108641"],["17962904997149891097122470354183032479732830223121929298629468507975747081503","782289596694654815036599470030433634818246466135216344320196504123459306130"],["287514307463661931068157768462591770250306685082624664992723771149880066292","15045465908940754891636098897272744080170024251787447586181887325015727996522"],["6631595006228261242296507396270650973439564978171351121679657777368814601597","866864985555239188431799169175335083210447764356210296686645518785658626205"],["22358737593934018092414480493787700385351414391372806707557422302877062533125","10289036045751101518810379131663992020375461849144890238966107669221398589055"],["23340397999575455162948710070170042519159757334223923255423078450117297852894","3064714150840746343146171479477422249828333635905656756562746117877610118864"],["22100141316930463211303333908068673872937381317661764242205217527333411930298","15037251647978075580375691552426551521911676275865479468983905854779993265450"],["26186136622713123041826015319121351336909292519959662272709843647025608856948","10665834022543574276985603080593460336182035752929506553972589387764656916534"],["28445241337541228954149321179738566013683032518427175512054642937306842238088","158464739734967126399229834664622774941624295318095779026274817888080085980"],["3927621910328165287741887039662395640342124370987359387092253576327510741859","25110495318040126424906782167864414011527106326020110335718404538899215244747"],["7906702023915500608048773146155375645719924779206276020970974232973276645392","25883983669095864626299346920404123915420495373471014305825980415925210931116"],["13868687144808488544804256263320705535111799466167804438782229306584518458656","21052730786609928947552002201196351107439936099611965352900929959082144245020"],["24431534934628705198937473101016678015513408482108885475153206001389903072621","21644141531222492658009209093617231861566478357121445604963237968986789257283"],["12936227671841674884895155487014273061812376196088549635922229398117384301518","22096961299511953764338536127085349542121071477517362874187608343013027645736"],["18950826852226619112630771075184978022485094139526193715462533408090668434797","8699711069453863397320322599083980632137617541351812213196902936206709665754"],["20240819622063422324664811488474879506946794150912887857997541440133630201999","16206429113713502292314389334993670267444669390517724384055566803164333115863"],["28398739906064079627613011684941986449590948164851428753746892854714711283865","22032304079483620791613166991094463622137621861238235397334699818652496440225"],["4248801229623202853540830334968907546044826210789414839120103727715129240090","23100875108845413200874037579009594579882741555249458756817444355303378638943"],["3092605749052711263238497692087529565396845418024054309277808786730582696980","19033496301491536072139472650198544245408919434873417812705099695050004338309"],["2430862529469606763370069275668943398226334161164415599659260882864385123342","5406586935652441744571304631796468606929895310006557741002705001615007984997"],["7766728569235992987958164600633554621536387746854874559273275361661331440933","8984030147481947583033086196929024672570507445613791755176569568953800726125"],["2675519712863858096163540036768500807750682529384819946513930477505863995155","18839796359758319394314135644379411153012596284079740564865505852746878729400"],["1568570134139979678035461017849630079115889546534240993572870338415843475321","11218056315356859688538576702734565262832857671929338809589122199997071666479"],["23075051663308745041805150506523842460103518077346139517230005429074420204774","4182535994579680778055577395901047508104285787676422827256382840905582921302"],["1495647864997752280455267434404390878251351403356678901989124547676121757385","9096247400184436426796117112746088655424094159033937732474662141165859109443"],["24174938092999843106430629580617466439542578588367333714161182602072421335995","9790430262943094784758948463769734237457215693187071176436984895217913920023"],["28918001480132552870225020897330283850371362052755891676002794492878267404761","22258565902730666754975606978519818023452345780411268438362449982607430727476"],["15562273374393171245182946950012427261467534612591465619651471438492601287328","17048073608960102090893034950107491425143972040180860499055145900386950787456"],["23338777647626016033742826648892296962447396151954788014106232087261345868454","24824402121913849322670182384568488679746011746460883992329411613452392825340"],["20059303194649576992985862117655805484030901868576994034638588775220052883225","27282983269814828743303843121260753753855903689102544733243937187814317185128"],["23807098758136792947801477738292160837377222126683976034872056926088825172858","19912266709849786253882337076077839359099531587681192578790000491310040858713"],["9367777477544283933730214456560566561869350532767315401852216857226536447337","23694990518833265545258909854363149673885783632225473267759769184089841499298"],["20126158388097999706608694491909363854273308761219356136120766868974145703449","28051205448992131425618723583730885572334414700818678554522559191257357338616"],["4306062364260914160839487048612191908162244592553955863520149628493996026774","5652194518265514723363277875759159944815399184094647221515871426626817713243"],["13116619495693900332866536144050051341218298245729155797799953031722444999715","3671606713218127727286252530347992044857507433533681995094579447580004018364"],["12169798165781283472867135841711734860304193114202904947452453854210798283641","10318569514166900470435599781095871014581004075834348886349501853414187089491"],["12680273860376746105555000367359221634033041534876686973600764827071822283081","15573037157898808336730573357364533402376399111160428472311744711930955277532"],["15421403610593971508656519344798667334535904079738088998490812177501918754625","24485060877129544512181300614074500315765422668049758181042168078224167227250"],["13286334919625665643353113719684930128618435210807266947493884443345815541398","7693740675552092954191613663896283758394913889602011440449881756691071561125"],["23096253445738094436984184033345306343540778305902148059143791940421508511389","25275728307413386592850677261131288797950379282826902800258486519945067102228"],["2920960495836974951849502816565929756962890484318278524862459969730120175868","19421521889605470214941283411076153159561520146402012705884927814184439514206"],["15382801871717697019426984436092443998917708354706781086485194066201039722829","27380325436648824800814698493702923298194709444657501412192566645876413747007"],["17141753774195755669193329627315625812231740642375666638127670152107975080346","11127859560036831585911076680941937954461015654753514294642690600068113850121"],["19937204483075277850966881696925042728884820130674655425307943779091283894593","24113641460134453538721222045797745981515366765781682131800686020212744803426"],["21123111262676439467769523775556768836571483726561470597287812403591754826504","13810295052299605254480377649199845089448857660462410579089176637134223442107"],["19589687329383860372566475378823354174729363051925913412855940830485378144932","23535973514493675521641737191248798777579093348671915224296171943269470043379"],["16346314249724961801073259353439729246022820337207200595830137599785188862369","24296752352346738835512218996352756861623267323924536712859433280616494200144"],["9881060499102123392414818166180841423226096494542180295787236207996292295146","16594042375810096049706788172946157703556201130522713400316284320775823491796"],["9424500557662085294883334340853261402065894501187229227024354122090705827704","13822661362809046773694566539781849747913090496181266306292736729861760939464"],["6135227159272054167253983894025043906979006514749191971266879412659353952075","244383691861407422582454292931499990022959236568360359513313043372980541648"],["20408501863810724227234301237751233707852223540160232290267429725546422337567","27138591832705568509860502319353564868926531363719077702894424617028835613069"],["4696099389057146303109143756641031973922490233053124556169808163494212085422","25084661124597689784307253648807225697816533190430464554595450787266056612821"],["20998963227231592210946532839197120765368059226525389770568559963254404915949","3528161558890596646325643303011461787977078899162450220761662369408059149623"],["25159978948308660219812516678787083924901309473437255890626721681375711024407","15178919033507923855616722719634842677343505092905005765603856722578755575702"],["7371629452180674495477211094505591437730477580849645243708116110467033542282","16706743015254479323956690350027336177491178315338815887549784130665672223778"],["5513001498634664799488580983157106097770422400265955262299579850371875503786","9518231778577358274478619441748834713420401404521517734513693388056019169971"],["11570067985581279241848721552625186985722815993839608514412862072556046130180","1221389670411165605673651219025722219659570263117903863997917353332812661293"],["6384482396613583892193703267663497525713305818407414248935942245674800601168","17277018468845375824501289523076136294242344934698320078756324029842456877558"],["21008663234650320110430972669254238007055365783285053830306097649970863704547","7357639208057183153806089109907400655953682580154470044179550612552843349708"],["19761627575587968529913457935279478006301693871589720810853381794450164741394","885537826438981161988627179441193169037425301177915787072544744708534522748"],["22004803363371685243027695598416019472353532018054225493939541081397512491205","15982907354342537715532046857914524844238113573706194829916817341849411239574"],["8708510144093621732857304028725932572140927701990820921973276263545277759021","24559940660391550373223702946233334509713734095146540706100311365474066539070"],["10512138253060978844347424109696390356891803683627780844856891307007390579112","17503030286309731198747211530362116205845543486117996794747391539949699294132"],["12837721855845581601360849415812300238262307068926608883599450032451851181711","23130576622075495032002428421277805818684503344612457101243171598546177015689"],["5287493971828227597903656785875228851359378566769054319131743863862616686516","10494410384051883259833535350404158697719777922871706168346629612166345821921"],["3919667434368499541259358976964918077329432573083424056699981942721616164950","8489969221079057706418825300889696271739685710035177771203924396956176819730"],["12692601496813776113822221008313243533804936292988602627775237875394167719111","3880346530000021479334992787840650365084818718434652510149570450239942822533"],["18020853606800717285338432923818217401733941368010640861778887343038423256855","27088396743361209589595388660936199811614087675110546929027223996850857566239"],["17574335830023211425192478877755623259732939977699890353229759290764902124605","3431414460519186564311927405948131546581295722994102813829191131316783694650"],["27671781401841494442481413438142602098676110167804115144429042397866027662109","26060547728420488984578390362402741126405814169685841645484241160959168679072"],["27315416979838215667163938827162597350029088192128343593655778888006020617884","16057806655433374079917942126223024057175145450044131615312902650153021924581"],["8764979730806767094094800539158085324393398247646735541288353745838437339776","7342058389299443950058214403475507652681413660919227083370410235344637775680"],["11738779583933918335238563048358560264455296257621123535236404919613263668325","277099828801007580925249966695487145471284383180483795593628182854356215044"],["14573276814374361747610348916484432202282763777231482692771093567103187779014","8547134587260670537304443583406663429704178344695810028385337503450466898179"],["27559064135423083203978451449421278978990719572847215598632871331898115901093","21713520181983794994499256486790293748593423438769765953737733521542882539628"],["19528184424791516429742116385649932212014063421565402160077023179450479964165","4771531259837543090355192540060418053349496754734531641695706977295759523012"],["14576506490505251353097706842782437077742639485557225323963557025376389777986","7441323834333833537554556148802049744643173933645317164558601836857074648690"],["23522714290537946501715808812270658089001125808345095133928981981574741439909","23698527870087633862349204334817532394327642198142875741975024413867935287920"],["3924508458220881264996598286853040023209319924577999358060730293591158014755","7145551232215830611927747543221554835225956962745196933757296137886881878926"],["4640677846857082918501700984569205377906070244270346232172305161189522217556","15022977012448299594316351238050525153983584776621970652263592234647189853576"],["19642714449591878227147615040843596365123111736368453950480538889569759367217","9761193391615470273007246271757923165583118100490301911222817515789540641530"],["22955854858128749746585614791922901913918314979129365583793233045317600943221","22262904606748676207205542612720592786416656916468925621711658437035277353989"],["12711087942956222109886505600528165957015052210265993406623996202292182546368","18520965424432468883963917570117232736706451538913159410893657802704919709183"],["14943888610931244635034726610869041343557851150933989853558414276241706699928","2044598421138071258895016087103465878790762368589600055344808219510189859224"],["14779809668616606578113132905191040291789749936199020605801747334202086053915","8829753726608076915589527609559073403609547793459192670857075494490330152842"],["28322501475781879693879247456178977009833587457501168216819739379609776275260","12572585174291843397952859682532288278323560646187766879139468226209018345984"],["2267115800380167145006004902172220286829184630110278382049352694824356303707","21582020527728730585449975987664884535699632167223839803450391446642022193523"],["17018893721183617436859459834351283827998642186219128078484573019960365465555","28555821512720556980487886513045833722795828401052516845413058074238395131808"],["15716444315500813274469877712615630988975702845486889954254419232687184844592","2802520004210237107787691885615945136168730240694240014108405671647628890095"],["37363441086588848108851029929595219343181080238767397911242298601734947272","15450964545326047372441462052100924869423158177621983902375300881231148156828"],["1247493116453168667782419081065400505209392836272309624440658256826091158612","27859035004624076858873550334088619988107176864932707983172404593009333916080"],["5710191731774001373733034259103719930996456893844714286164031287063426318064","6709959343176009508910833315447152749699594498661147205971471166539914568887"],["16722779227849674046747741929485762512455727855083328312719803065301252211208","4833809632208784485193280523387228567975366048974163283517474770138187099997"],["28270835071997211034913959037033583834900128303804858966621522428566248027438","7339894689054625946018568228183995864897729255955636634762145945861286745262"],["13389134062893765875682962957997147121054435865128148024305799639541650954236","7625965479979471093549721129395333485940574653419985248736416784552226270542"],["21844956842972863048942708479541632010722435058595860550489007369644141645907","12731743653731482668864870364509340353633376395534731055409807919186006533402"],["26325367735081633450478673816352897769818351253975352290630966305488419316790","17447448947624752178297702105291776227476688898480249143617190411523288165820"],["7156994796705911989573113597783584923095646644790989553348276867562192584444","19927886779313696949480726590795705564302003084105987913033609494278880761293"],["24651814963128213799051404622051618949620313250738334046180958142634025082760","739867367518321111170597681036171173308562707994105953303122491900775206999"],["27780889948074696437235902377055744350777317509708053152101357874897859715210","25849876641454596517046230187401770859798243636178124404700229047058074577919"],["26084984885743898035464468974078588350236006532906924776101590686813119542129","27182891465275148066208236881855196691958290032246361262361587340054175591091"],["25712652504450099916785558229147688911129574831267081014130723668289911152603","25359942768914175209382264079459644379554846322023441831227852756934348741463"],["27487179605353276358673666579157741690058468072161031548461340297639653599997","9271490627624226616248975389610064345361753469426281013915600381796176719342"],["10466529418099652439722389729796655838128771602053061864105537723934940427863","18469626735374681594241509863625092598646234709207479783384588566846710375613"],["15366382866755983085357428102981418364373955276537514890415804614315547913919","24695545411258109733726637688776126938543998670973084594101091550005928725247"],["21036478038610406055167892356838511436333080265170053034971077147363051568483","11574596898828287574208591815793783597216697366007464837667728571003332678750"],["9154606324306795781879057189009050855480294454385494376203482609129389436184","21578493054850820548350420988195161240815201882789837850916235231041750979434"],["7741319558026330995928745127590154074808252773726188970139533798990840931419","21526537229174234100380984312406150559692937256734364163239274754911533450027"],["8783865393758452107958571799460841272219112925988578203306480582121716843997","515227858698900854152327178851420571886397721445175259895961774138876637350"],["12773597033170416369571937945555362324801319729211799371097397747250701497723","10213740956189141930314740119555243227166109852485078907770120930092104252743"],["13082356003482304172522086521363321918306400839893425864449286235289345278962","22194593966207385643615707576625585166891183160999931292163141752083714251881"],["28175445077687587613253134089113805274173600281022708969406249328978144360892","11004295307867494520130216022197204304594500886420596072989861770039226720012"],["13305077419431751339126385997533833978705049309862469305265563292548336858674","3827595984156001991579282709105611555236254553876868267120222544194842185309"],["17825302165575749953539813944683561475935514791616868080478912124300912203861","2307104265154609023656790775049664208849749225589460862296572026791588766730"],["19157996636914263435554587288635381758595276341222159025072240691217453667928","1218055094351614554221505005514666043189645022424875652762473281063959153906"],["27209773036870781408549417473925361982330208705566699419603143867398947840110","17655100237809775076429843187794461583363208821848391070866557064502463997822"],["20492268693070063353732545257363827207613563261969230122019786284910546957789","4722758827166633726341999212386115660788320046251850891075646656900326384251"],["27941043473616754084297305765376057463232390869916691597770089952191058443533","9005204651037192562427772334169793790774245296286889758083686367692565741581"],["21007736301929797800352378388095811199656533574320782187239919056498273996399","11813828920069968514022820488393027757091688788395472022999470911049584652835"],["19946604780090778868067934077200643800613272705285564265158321897609376393451","23374401509715880734775539415599150944038289818352289976806327331937876911395"],["16638625040886131489108055029671077921268422556138132195689849036354503648238","23137093804831529547818214136515313381634150974534181643631732947380962040085"],["13827906591644322233618635989475803818688174639913732563757679583678659188426","6402219888042900674168518882365927244141821941027174849405552998223702780951"],["9262923750806083906777628333734041037996674060814489911532395498694832683143","23460508299364510189440715463716674922110770502616364049043920873657672933442"],["12413210256544237081358269603980597193119136709743497375875986246519711350149","8785208024276057295275542220439176943035808443546825351351846529296100370690"],["19380233265917744637656397860571877689897382039863909236348482957964805216645","12818231005853335053563719993911118280298822539511267211603510856289778591835"],["8811686601953886023231024834503156173537235752871457521574185813589882323028","2270387206353290964974639184342227020112865660325753392639457939171414312781"],["21533710356144331036691309159377620504736055680237938353230950633934849132710","24871607349496463424960043368631567064912749932482094537088349746841321475784"],["11211830214619279188675636039334714022537548900560046211416262560293939296802","5933029060927392716520611489369738135398579464800393513309589781211959221324"],["14686003122417637464554819555704599563269576364816318576439138556473182026734","12688631606890945086528739483464655460653928200150933832622993394307101657504"],["18533520027273010879755535290896019883167176650890466827553898117286300503467","3092978409501636672473236268598925781104198713895673791367763655533670732419"],["28498048103384121764082125026902396534030488808704368253888976051737616550320","16265290115268833462143893081471794961522088849582830805215245693921859735971"],["15655578122137852762556615397822952260228773668607428658182938312891794151246","26450633967591992801023723910396189051406489520432239373924775826472270143871"],["25309966216832045518071516969027072228821310944342957819359263563837391743735","20906823119524261058958813078775893892767887765359966813356490886471816619994"],["19376566994099008837625619089754182051398359886833018772048664945621953509559","21211412308315133535006380786571300866651711733331972319550901411231442310629"],["7218866790124822564481083857468071134438168196975436049291510169841562647765","25314876615454728116885307782662060150725262081042539247446812977909899702665"],["188836981596996748723916411454528217080517507967529336271128019657283682616","13823157820855367816280306310170916740527822997557144268957845169519721085282"],["14479086371442288288026452778009903254870245183584123333030439373895791236436","27932851846162744703803730013198180266472324279729989795323486193032160503278"],["24691528697507516826379356671419066955779692902327390127259189838325731164155","25259456098832102778023254287736414459372087980748050051413777617684720159040"],["688419271381514735333108554752428009210124844714518263704989458555949242018","20213138158871599836068774841001855890109590029409434390572487648588105508930"],["14479031935230666626200352522728649702100506326941719731036155852635269893948","8347594034792566805019513257723129146385607387861573521415038843505249153785"],["23757614754968866667349922469606723130430331115158566906930025676886140719452","12577578223070656373557307086326096291655615945806439281336909882143153495123"],["12729736971056868802766115228005535495744844404890866309337671833172878098530","1628305987499198607638603740841469373539305008620285550528143038468304107920"],["13455517106714824871069309585644734365315455473052258363272558232730038189310","11247454246674055445361482167234919060936118433432323571908235560385774354535"],["6491369538488644926932623818898045948211284580291595730984383988358141672737","19211344880852503550629839903682361233693066972702203565527636278783458886690"],["26369011135122972293830058347343001556391120537267685204722839476359930021392","8273909343757541956175968803292286718435621609769069916110500319706943322257"],["9664531966861118100275293004517845710866696560602515840525499546073094595696","2562939763092487860445350916931655955523510418372271379861511348435760123412"],["24988829005725122996211523767172602810850387025795165519380296932696159353007","21953086875702610075967687984943300000721148570227789243610632863070376062658"],["22977473181524204934241662123573651576306913285485209395363059632131087517787","24731156608211953217518043865092914558854998460901639320467828854605654343645"],["25971579082657992404320669426230650635164767372437208387857537707067750161233","19494304484544235762987610614144812595633788047639007110259798143155502777741"],["23945764089741405225399264999402066940685871101181072166095099432316176210529","12845278048495606580750327159738977772398695909276384146737573330051167796106"],["17167678435596366917317973265808422324677653804908638462959609254733222158661","23004919849431808479483050487655704325932934366365083657635655777988404330103"],["28003674135178426965439535299361245022537380843533224794723260412668673123300","441347991144424646867262643632356721793645896396778994629792762575116999526"],["6612624824453751062140535669888231880631849196376311916374313609412881134748","26885038367900141496914764714508596076987089499094233695540887889806354740530"],["16454378169958722049829716854533368926650728790559092385061507321366062483314","155615251258439185032798488617581412173654510232128182935624747320669278946"],["28617759544312717813917216558879515046631875092059199711297284173499824102067","19701845790928441749133014097113059938975055354082420737374208108442762041026"],["26315859462697657421609156924603450911084430251183920757621449053385538895247","740976355338030473541650575667471306970026186438184816652677820336139321760"],["16597102358401730483722769794527488051747572594180055606826494160148351864955","28880828628277040924934258423940678796441128421482867260534659654216610681722"],["24782524219493161277603871277553120724614269400959806109332931968714546341917","17308346850970634802968642202996155690539405839202385865440241368801637238625"],["19101391109000587408217843324215191244101684300430560458847529999960448920249","25026133359089096023857501823154451676498589715360495500329007226291378388937"],["23832203561185014423920021579522858215029124306718603638873562779814608547010","12904751267581873526020807550689869880587901393659456046081606873455268064809"],["16226665811230888008291311823194647838466614606485099642195667864975195606764","2786316966165119915798249369220818521466403617509087453037827655416897026908"],["9675906599901358054474587638442963486159898870531808955805004691055208112638","16799496680098334791447136768869628380552880232992571377418530924400116213580"],["12328650345803650149251795466833732721959494255669057479455826040726688980573","25949116649992483333678337049377487837295625649441025918963480696108026927507"],["27409214115985081696741966977440845057474464049588734655360700389433968343643","10829637211995220402605397430963014693104823116457110934541577830389977938818"],["20367485068299735682183458402327600229201728034987921924200809061605163397053","8560281422270317258115012229429455518262658029878142946554442152508645259150"],["8650152081841993163782791802682495517476048273249775099596580355730047114540","22755389680792443515746019626081903893497507776400100077096367204783684838849"],["12305440441792513924090894569173452335761958392918525776955221636392696829862","20388589314080911386760174760931225051674515240938942594156948856930664215827"],["7709576986677452747590624534697219829605156276841432070621281438530807749510","26271242028298255010120030479033310057012159974313997120528348832583605394228"],["25457375485657541248293207942768271061458574325420798385534382983198886068785","7695254815219114543636373546712732561036521021847320671416602050703761261363"],["23814082010945889655285363281070837328258798112427522294679651117932236709840","15675031810249202517702709021339043855644714198337968557078395641939856952025"],["7106457057866263679274645001345068981170930968593409408482427400159289524899","20514851881091571256536950059084549629171666016402705955949085257585736380369"],["6708002976329909976305467696877782718394085740691930238317371827208824505984","9534167299780687526860379588278625957549897726912197590738181220539692873004"],["3294414211391780507578813520356889455417554876208285184098501115840703091292","23414843783803017527980890471010506422522194484631779243343910614014698725206"],["24034054619163482222601537873065410112663820345643728567160181094089601846902","238529142799797720939871696148944759619247388743742913311430974714329965644"],["24232438380895157245414997515709006257075072185972820373149195291097056128138","3177597815903446826001376529026238707526372983903945215678995221825757984824"],["24082203849292970747146571688824312486732000580044180660148066846935908491291","21978922889984555778831724600776268209531657865475436200813765632889295886299"],["21115047083630290169916686719554381548110539916022887325687675443613295115733","10198161590070543071462769342896178407252432631477995728769790071817777146648"],["19371374745743812305269864922491685237116920206619238367203371040264279246130","12624610495942444515214449934181001974275001592401494045378253691075199087865"],["4572411974233364709220911818133628110512404011415254639729391051465650977025","5951178041254180567868357893860903674132034731540204704088992273356435353917"],["15764736187988554666662798629207360651284662813957747277132442399640611995203","9226612600505225783490990689005865375795510854681789415185272276370947662755"],["8337186757569852162540472332545728006942994885784225208804448757941564195908","25224431276346206888071807728821396700904534821269207678508497835466167428040"],["28194783086073862903524886345584912130223432383080091663020832063690859750825","1125208244563818170425016444932883782305030298426680720795113127821909324787"],["14093027461949565759018735484201757519371803797919605165416053012961925933114","19266509360503201388982052593069496133609564068976808871941614241448110349997"],["3358911566710176983045538724976307499048843154635979302719697459776052920617","12866363357740776077345531198002909322476098355382739837603972858624344119892"],["10432938615030264871770960558152077980965643444588019637956216809231942856975","3398025888757023436029518954909432353507488250649469580589889844781983997631"],["22235315508580564699856098446315511135516020084935898632555131243710159991105","20396229043948448940059519379353727692452474584858166192661939658875356523734"],["19378305743787143161675883877952732832467233366163574622376727035885915648308","8602574309026812668925072780506551413576187929731520575109654769559139651268"],["7047501906416089886317599333919296309526967113701532908538068864234916429597","15272638217475988521848238456982713422446327580828258708408773951784668219549"],["27995465254973966870984586312021831583312010068549687044291704883499818705256","9001370285322274960522488517374734827711616675827186573286940242162418615003"],["23625855737392281453145232957453432219217082410612321329343568641876682380982","10126715140282230912128465889011427164375155922319608676263821375949636773357"],["16362279156484961809864480657317148655845952051095086477261595317761416788737","10784687369601197705157859913716455687842637461768380670949868253907079129223"],["10028947148298056674618979522538519767137204031230218964607318886461133729084","24561594289950124245380037375043593967334041929298490973883244211489073971098"],["4753781174770049929722005555533195299352454941668679324135610278224866171370","16654608254084708959874456805836455788099684763943186576977148058112749138665"],["20554997595700238581463625617114924211234110719885968947092005988615820550515","19223499877080092088905585035694308370462185891234693715822587659846925947202"],["17230701242253894430969825134689463062960478367995386969679967899622212084168","486206946073197279514137944311352238089673859650258316242830644425762580560"],["23590163700178661567649591957355911630221420322116762488672300041801536677644","22749368140342241798410115909832510517342637410890214357855257596026287935643"],["3720473252318059544275031651345297825466869956000171113634735587394568883388","16885660156724380893801979695408801705304936754354846521723365078798823454810"],["86672473335411263650093561301281264189543504408671697230889118920730058577","15922288377507334146970784987206634834883208694532867069468335248059758380650"],["24634225708312736758444770493178385898459291594049038090206045956221644622362","3490362694691208733065461668037194924517920483083256784000367721708395126203"],["25740578707795257863031093954153605136754320317856526471752235046637087754734","18464405209826362523526087085374761467611940363452838659708733490773451598766"],["25006460727785057912526420439331063920022545005241563829735289742870534592805","14162371576759514510043971633571584084569923800609271893776103896467507227329"],["21628939207218107456430608385962076540985671028903713357968850140652410675616","21699071059363701394338106379631272312664765399506356945887008992143515918671"],["2728648272719259989470569207084845068898722090398600653681980435388771232048","27858375867570751237196334491347466351885249983875691060870550819782834403862"],["19763526363391931498940540436959421682965604751628433673062979396541148212647","27457749056822119601330597410338949106355899690906153848971229624089007848547"],["4375773255017227978234612824233161438468270280851862687292565634422420955448","18707615673605875617454473698721573403302691902972145808810480578452433791752"],["3221592776591969887651328328130243075842679718616494901766967423102767964625","8987982616649784237474473283757562410616618969416216846683383077557963555317"],["2090231493007560518719888045199566688672566965521448701761725859357678648578","19396137635572801233570771605077445720305801514184320584726712924983253247193"],["10294975328570518862805655723848520726905603919679345469558007352422776075761","22229235306397865127023885313817244813090974916329126489943106717339811369265"],["12463477425527691840584045838563694083498894981222108930839954851443412877395","18492377194411615096543034335148713537842908745498329492688525291112758017785"],["16853991779354665334888022394125859720365085892464617646539551311376682129261","2015662928642029533781727972355601401714695905932587656948872783548705858272"],["22571313999196116147442880507476677058995103261448757785724980059665568769709","19416574093851794993881733584557547748749135700807978514949030213223993529245"],["19890254783577482922076887416029430518740043935624811906560796913960717055527","21104579170686811484054230669288688482108121538147199947713930607429590616561"],["6476491492264918219043037105936678013323469410782979257155597073431150164904","11244201839269584429816897749996094803091230176514312569224863370983671502345"],["18898222457572005625844168156086986345083499944892663592975149332786277344980","10566393046099237563206598690594650859977693002012705974718412305748004583471"],["25548717110471766836901049319756930680306949134704690380048240854361757429095","23820380041311074333962709437145590616796294930953025029180560008669005823180"],["18332354221361944567603508592365089305118613134691965922181400852905897733676","27562302060868460040685566489727332823996871989532186724262928128799360964243"],["21481847742089092721576590045878336368689596021421584157039956227541869694364","20726384247923925273071836464450107348935551979067961362591471903787635174134"],["27397700032366506087975497459759182895388802868531952201290753492250587469127","22154533679833496236966743545340786456613441815556742226703157061013435691489"],["5008550304781844652677660998289030896764472432145970411307925949912835465752","12925013612654035220550064955415813139205079607600852752169910994561454657818"],["8886207539913597993268218919003478729918793010701424895447587968803682398912","1696703836162735630501850055750317341646708407433951414395455180171724722729"],["20686524326986679961649692632990158420331338756640839128100255250633067121624","7407246507558211255702254247163891387564094952632162071991707837321784190211"],["25670185864637213343712267269425457520476213403706606423042202815651805417501","21047431419588677080607282180441403925669259205192024159305171109208240235722"],["4832531838556419053101339466457748456269076050182899988567302915626728872197","22776907670424719267971833695523772533021448884982350080217503984534462384232"],["3543006723769653950409164736559990584565486182173199395149542353034531470530","24870760316666200926850976495819185444823384114686409635922738147317893979397"],["17063318755967693604307397861450992271881668418463053102272781375302511611788","10428308841492470499737450652631561094962325007501229393631048134096379484623"],["2798493182440517007798989626609965674641685876995341856132472296628780362996","16316259902959849669763946076239208016598586507949652745044023038507365261563"],["15417464588370539393229756715560323301732152503955758213574099600664180137927","23336629152834226279533674423776363732529632113545397061992721079633874755992"],["28712669713476841749849714921390037362538082112246888575490250527979729834067","2868523631407428440136282424010701145250581675337159758205431058460494962218"],["1319787091870896566321361679319402943472315489193301262581521145848725379408","21470678545396205789767043622566768943963267936089315593363178967332575619984"],["11832378697952940615615377796555859803729550688418612184505038146387308073060","28259680150563414837690711376634844840108332588021266894561576806814652489959"],["28140650839311992014372853313240298611008912828993236363077348940827359939145","21517810977397728364444769793121506854740059907398401446106243606670060304316"],["19308509870817795986692986482260512347710867993167960835545324461447776776868","5031778944190993002055603935939185054355673757572680469295746011738536993165"],["6988284510720389832798013774016339919024676295508905967775103255631607080071","11348023112280603439815789108698440914997516004958191718314480530760928075081"],["5647324192229957208576348464826374325686196253174500246015689319303945333203","27904969323713509048969086189489410649382242907928170030827491492748057650864"],["8472043281057364235849018458279550186550993923788539220518393765787186137066","5333357564126901570726007699175158186965265367529150028323989357010384062841"],["7746945222837844094070665854186820190308514608445030249077473839362044863980","25814476682589667708212358957137556172841013951796613510390137076251151673785"],["10791338353640799382971652864760126258136547694977660884291705074963479662408","9446749783833536177505694739003958747136106408189740273470499031311383516181"],["6722930734068833322187433459863586230772173516416902302355063745574051199183","27683008138820132083976072719437344343881896558125750588191058353550506851529"],["13584555573088839114019498937523049753705995668820659546323494230697400197025","15284801473300276452516494856414684804591740339376137567820306810894347235144"],["16557698169342427589586383720786030792641145451743332121465877638861390961785","8332957575864182829240608706449968953818827956327372532076519057395889402345"],["13690360585038564231705749081465648321718406240266642310687971085561687774385","22146431352964886613241825130856550197312587352912410072340540355662888220355"],["17238880562967319745489050215512273276912747816513317885630203496639049679657","8240765806014131204247180903214324806614265726879184514465443792223033025456"],["4455750345384961807442830468245852105789475436252189024747858918664682169324","6635572310795397482708028690954159706868043261478636590997228365847355127190"],["19982277659854448800106670652818733515456931643320095042321811346010214566542","2932241544373559980985938467276830467463485920601774698376644192503025633764"],["4047380023060578959459261312443319088552282618960056955471753407105603290729","6688398098672299735650554303848771819000487775777308453184740759092153150886"],["17901637334784792548877770644659996492007509511730694902281670767853169713140","15661210116425856335935543822875957833557469641932123009482229686588297661362"],["4331419839276959389630605185009666796110889144608500046343656981266086008259","14825113972541550573097630283291895541715380826597205555292452970636969554675"],["21681590923745245874813754141770796564138957575647548722600814660722565942212","6558591405897636190940362075816675409698613886931422312744890822978940387005"],["22431858144646159930604505520450943718598646583218524509883325380643108905409","2747354097815790466322288809961277195209722124932526108570257724346563182920"],["12697642680718118386252051166299854391319100476312530559270022618384252658773","2896935596525025017269825840146011620606215277954347418883278979778067585951"],["22022909479944500551865921959306363903503957358312331446173594434168695035155","12452273033491935183834269086411040381024270220430426371644300590464426458643"],["14493036163157242802216080924063948908201118991082284183521121937816876701849","12680053485886747895049537168129709329197707571550572803324261411336147120250"],["28458672888647361005985072809358934384370634118860460711538434846220159381089","28450159089290568122648258026552779195599911786005672866719679826010387858617"],["7992627542754659135156635124486683367390675537566112572534917966796609358334","14255609788839242109880539176664576658633959669308491276384955009168300392573"],["4269440189928569208607018924621849490637061329259188404567328060094782053402","21043555439086677961864965490201084758575474803730753603204696082977386289196"],["25881619653951239857765459747014293320636463038828073428200036696579377222114","2163388822837478482018348692105763821069153161358510312004289719253367281734"],["5869157457599959963964367954745249666063818819415232258728249336877497144154","10912949485174432518357312370069173841409386389522642232189316876446905056889"],["8820418032158483374305686262764297452051143322414130134227347368514614007536","25901684674643560472302403421130299587183858363923072256660604286269340867383"],["21486333561027379758856811499827280385927540073553373381504614115936381688813","6944583121826425724682585909356655532350446875942368191141964530955606461423"],["14545735263529953745733742104378492161486329154867248550917548347921325843102","19911890492107518505695115283756365571839505743237479921135298376809093098810"],["12153005513625822874643347556442345491839848645933926374805382761428575904797","13314179830317791765220285771083510109992939097646276512893871774407720025786"],["25048789821964572390277025055491957612012620707112161639547753808804678514727","5646784848992368305263206430644969870581471727401622419101341606684072550140"],["18393155264486485215657200290281470391713246677232018279227236491313009997994","9687025818770464566109696350085295701673296091335508055952536343223310181050"],["17929953198557862562202680241366418159844369361971687418973669270491852311855","16200461110159293199623351443491548382360270083333660952040366458615041510857"],["11703303206319282485119294515066023379223103357876834219003992893498817241364","16191135649668132025511011767430661817337250949902653028789624509197872051616"],["25157293495357252475869009639816999818420246391147297316603326140058421543256","11110397085191910453268321921661930586650462320525081939382257630778400582880"],["8188384684165256212454892939915431319493387827288641673577680713159878969100","6443203614095654900141527660221101172275408367400473769569066832988723482309"],["15607570625988392987652785194941402563567125903547971698921438827530655590142","24473007421603265431508384606689646696689073587176370898717048766772033027948"],["4462688913479803017786019451613325671336870140866100928373910129988832482674","28611326707806966369151870917370801179596868146619885986256652375345677221751"],["20043220374849661938447114631053840297107321348302583175326027072716535348416","27595162425680675635834669657037682298221476057925061459205993705549014094739"],["9721850537958916952929106764221545507526213754296845391402435007933167299750","8088532548771268332937760581408382933581771578911549402319808026126718857489"],["13890587717311516662750608693352195323156459800648785802619605232130579689486","10245403019086620714929088072177623019174039327212790579861407935082265025025"],["17390072812906805622943471765733878109528022699855740852652010957057476461306","983208149616125239864798220345143850129169051101767320340455488596547187362"],["4640228398130908242733133265849855531496733309282149792260258222326840535063","26939877681091245829974630609951574306419327159609680229331670679000629164947"],["20414567703558026972746972160847458756609493681832115392192442789268739738694","12958866080282489403097899919381045585088416465877847438975648410968130330124"],["15842494271230874235217127483472591486275259288971330528175482608262428050701","11617684354617123062617587270674155885955794208053751563723184054053722321706"],["12466913141677072315493616014441113708894844987242000751189000828467256110739","536176236291729244998134013747081220729539775177884998224711234414389084226"],["1618331519829289820721471674631636702980477010817643929820367910496991950008","11687176690884231450661038152954581962109153219403665950420767613089067403178"],["3842721332261717443618617434982283793626816073748573086454364156586652608994","18588350005747284331663408722208426760300423859200717648878709670311761966825"],["9378207549295647022985742287545222870091651128080047383067686201968673821637","17478357018267748328818267756740437322493084238125985924293762499863024589977"],["27826999136650717924274502160690202316389614580719788053239722723236234302309","9065024850022098850555831782786483961036354724056445019548034234231052819867"],["7232246592392871265239420102728219351388627481299991125258027473641676376650","12945900519021540428896552403876994187889043152239288142284096652606808951707"],["2440940872203433309079755261927451367334415482262686164190647339642141576974","9609293731677119374189717160305353051206701249960846124108674723168594914598"],["8423770358911182675306001462296670847917219211438791854765593340819653857160","26666481714087471646895294129152906824043360920422623063719329835653071924860"],["325971027001932959011023684843567772360165648899225098010580316921651062859","5123673512806811778433339298920378669517970547648778094195596453814700168381"],["21496618065638404880016710113383759395032885826959791782040545014698041343833","3565053524085904755179737997869802736305665511479201340695045514756293712660"],["11839049378539556474728637450089613301284549258964924104075185432646204956547","8584847334323959054675412345948933052267528864590569921827679054004119035787"],["16246857361624916783285556606625761605836830814391586138661574324187378082678","6758363702635210681146086234393128566620424255338598361767553521089440529576"],["1724175295370740495185753372447892439426550844938906335733469017259679627030","10333088331090465471064500530865189048996016994011844965446387736066843240343"],["21111223861678578595328497574570622922625599574104748208997673105027173940164","17602677257645809096384294899990533537164456273860505502825981207424816325549"],["955613022134112789199410508195056552031002902404990063012898858736665105826","24828771472380589242510945318037019084150860540446181969853100035706322824900"],["20988181785271819199686020173324216255979362776493229697097275229289252078896","27213267716836155903029769937376036948181672885829165389969860345025449976860"],["17401975351142258215431441971560938019302396979775394230290071306348028957420","25937444878773296549195846151586780391625200323989730597774583009561580978830"],["20103683882375029121928808535858772052358613610151192521529455512341499376112","25331406048431217726896786519748448234421173022293361512709408075335067551422"],["20157512428740645790763665661985847669287138811239220125778390471267088115278","25202283567079760574123705873816851027292163781945392847550860043046318902239"],["6005435851940297259521065839294135651576796036412786724582463945721411406541","6129200617463759762528133712945501944040083598449362603345219442812998008919"],["13135982150045828275867672777114028254702038349015694067060322638340172536957","23085669503610947178758672736419525438940214697232316904441244041211117107589"],["9561056705291011204313516817993808864826896957292008331685741737348792626952","10215291468170043182396459108949422707302925754368166379151185840770552438720"],["3542955851344687765687720584288289990046932769389304379522597086289001889149","12116839447049787551149707989295147548252221763994540742176657943573601509710"],["5155310549897834764892485244978846788233135551564918462579142309633587817469","7287742378441967525104368829809745843085669915568330721259952523287179914831"],["12412296751312371127878427665841741553710837084397017652633338411525621468027","4398117319752111791143845923865184309762695579071188127685946348763942001372"],["14466752619947153554164761291331146495363450730407277963808753912334873792499","13405492401046242666197164734593695636901127754299902746166199821534848019568"],["23709323276822314196531294476794694561799614656200869014285672576887281400705","26459081700937133178826174286482745355071659847511034693642055525241636110771"],["19717847155821894673452651333596643673501966387050164170911352865238251922470","10139914293786006746198393557420110477359654587798944955291252746410009857954"],["21978959221202292650164150140334575216685449819464630273056824171009370058742","7423818259273441023677913623948946577582137155464506251098912638996713840056"],["16544689728010002608523044712358980170778454610250441952321609122733271655461","12318861290096967472549430057320629138067313103128095755322911166392387094380"],["7255724933285978274350574622278994154821262654045090552487003322832343308371","19963175765196704699100059011837537397315740203278706800666107285070286228298"],["17624514780132680097401665956385100210663426715561878807824654142819219896089","4577096596862594926750246305532681979642107316577065356746955092048133497857"],["5860259040368780094672250312868492215916081256131722295131829531977621174811","6384154026012927834569967530122459378269484378758881036916225730897336356772"],["27610039658470301496716059805412901294887457871956219406506749575691220109197","27678486216665180169451287436587518762696810231165870546102393256710261319341"],["28641960084095193383702846415265620657027248134109140594074933821735788667164","26139099064288839292846994798074582018817463944996923015333810896625785692516"],["12782823794526225388788360418722974174951652162081827798490185267996496051330","24379334688559971915556788537776608242563508526968817426506135097925669094939"],["1252685273014035376461666978208982401030625465903601808677155680268621620276","5435342624720905771776040585879934563113730591811918949315380981518757411418"],["13411441915353099969276330800466839586108316362053027088335696575059524967969","23203156888408819335020886479582399895152525835437071446654154399570135261231"],["18024488678118679900852921246026520218340463239918401653409747216479665084827","18201188047169546595939872572222076557342160072098600865028052959694866830385"],["27574790150568603147798745434731513967475976856721292637916604746634410953102","24669955204149256221280120269790312188468869251770267682479801751709690446820"],["476680543698135031725869139004544218360197261545580646569588692357287133977","3149423181732563639070175997030513334526089799117478778900255779398644789677"],["14780623168373446145350779122955843255561582803544222395341964451667242080961","7596336829904446092830051853013771954564876956948696178853169976309972426510"],["17581103074841815543309167351305452793642733896532166869197446390135346224517","22902413665171965714507456382413525135392628225374961912727068137761573267962"],["20543507893599902452691989996465047094947553465471457856269601499266076798359","22111863148459440305829939142887125457679236035405915558978592180819607837749"],["11651842440142817564952390295887479513821510286883441219779307948354382051114","15254202148182038430780617000803359985593201747046688231850801643839864598049"],["312000061645673153804754376209688507564807241744390465989985178569787700080","14582346773271543313892943118994228928236307986184951615761472958311189793624"],["12047542162103036298696106702148105812540036257362724966189046770982371088305","16056938465949812835094147807276856045637187432454485158853999632020412921211"],["28240271653131512691925178909442789150297133969021294062762956473937556743239","13305498738035778666846843043993264090341310832621349376555809151385183548289"],["23807085857319532421891704857189635165798706946809204859575958903366712582269","22090792137714673377307616145942658956516476118623936200162405106136250356556"],["18977584282832421561154403231586657700985762680853227947003717969751946575270","17844729330292237346985071494210772551504266488956244791063465040235642804858"],["24882848629962021954739180537020169071580778126197596688633288995550106302241","26702803286074675559473606058549079160118283417824328701701198259023230005641"],["23343762502153868502739701994039380016917130684174395957243066337200756357270","28595718937081368234128706873186688182137312510580266432609467721999223793678"],["21841194816262919004322500989773833279002516593599123467509383291212646008493","3938682267578929864377536868381868828298604530870203950560547086022941368013"],["3501296602617675397439357824960610390693365177025392125050101301866863380474","24120927021799846932572549208598472603845285448860910608208349104142560276448"],["11093887527873520978595138248346653534915452165819938135223524373309988600716","16190681847701238177525443185841527161760701785549933447162596470780105477212"],["16988331495795066983903416628437769487226721975194396232909837772951737067183","18106630434857573584658306302971307497222921959698839567041661209048911635028"],["11419695036725805208530188251978665289408926388498871627090802978057418673769","24303699147070113829889358006425292236585074054154830951650080711473066607046"],["3167386732512348532367281261319119813727676227077697321977863205993262816693","866313032588616759216529126296779849188112207458925354266900734252252160408"],["4885776940001547944340594646516635123511911170736992999969660660071274876836","23710803325169938798289861396217693602555156778241332933960753517214371876008"],["15509773854658789849920460109056745360738031398473528431723662558282767285226","23342069878957157304682390545630196963780061339844412755125622386295106700111"],["31972770951766872977090975336045121457737868085127665487842467868032530678","18143357775290967559909841340489125986091691751440838148491687009797140755263"],["6578871939001447324544185949530328529036086960202832409910289466407356909858","10940843316683680092126973483464338876684682618807598485991732380964578098208"],["13369877714839208842565457176367076897981842441873206166726058592730661275484","15614190261942974892044089626189785883890761515657604022182099305196558415034"],["21696944088164521602520367345712691702287332761005771700248410723075158239987","4350288301671297370636290528644880867080999451315744525199968530516906357073"],["7747074751788819015404713203731014746258325083234539860396024412938397254838","25795948814183441685595338053526462528755778327640560441528228074367245558434"],["6482076320219696764970103931401762125709257338672964164074870789741402137124","13116928989310961618353353566313020041494227814886527462946775338268428021806"],["22036832020159587492869715304912809294267356700749886035280481020783301181489","4649962045777741258183270749948603443963485915193361819389266403646944462425"],["1348455594463073335953697716645432103392655990234656307602768369073796116129","25727290489969245506420279174006373384338334899085712194582201726721243106744"],["2205720420004108260815794710570728023742195039353668850904378785974841390399","19400216318181569006319707269763659278500280446325021701333070318910052262101"],["21229831415651639872036337123680214528619156898934610610477439296891824776276","3453177990837208236509477324050733586705920112032681970254951418496372193955"],["18469978364373910902798667555988564438829193096989730419802067207739502704532","5130388228309840067557501467924153422545124756997535954829685025454330710329"],["21839506892268269304447625757694940160936085820245812543640595146578099947565","24095136606404534334557436001317404069877644568935458386763565624572216389810"],["27806771734858036503206452079052657360740118084149060919893204086090436014253","18912796578723574892100227709405343896361282794812451077231855788490612099899"],["24337274457966833064513518545759064756698990760735951460975179691138140382244","22825770035021846012036978101762619146686577039644613206553186868456401020115"],["23459523705410204840554495960028739551472840499647143748676152312955807491703","5928160854102365917815246676766157865560803077851853385315058203650975735005"],["6624950634056107803979083654449328314782844853595050562594026528836847373914","28661727868429207657309033410970109320746363688912708194309407642000309373453"],["18208818984302844247969080669471976062351966798882714775355375609517144427894","4845318688667666630398106978145035426686504783715317905429420639235036612035"],["1902386046207638330642818247630709476818003628042407433454673831548579215122","19712999664681619054006667408579132498705601074452353117194690646439896847424"],["14367075182793267777580460146605486766526241110944695338696364072641109756194","12153406240853553853016808314338596640637964021699046979791158365826889855280"],["1421301761958918510313716097830000461392916647686493284898916244977571417526","28232415612579992708471778546986550828648888300551408849717446954854178551586"],["16499091630810675106951293892137432368869244319020568467024919684667868256923","20972532953168399776991453690730797408534406492002932765049442081069325848343"],["18320505902819716999384432151614559532601657996660059110566234824641942820284","25730871262065136480958043453287488142299407506270721428352979703362283757843"],["10145685265916477827283136813907716646132350127323587641948389910821753650321","25172823687173900301125377773259024027299021206483740996027552369455941525469"],["16718779069647132127641064471596586303878955860139181814828368634040058601162","2274924309477680156915762367587214280798906538601012151230782551094284766501"],["6224208503666594341035715294429462050192117072928732941365085011836701810760","2308835552191926207899986104313086538644719112045820804943739704447248735827"],["26188243099106128057252532408344367858995038332374624776302437170253234767345","11506782548306866596696005165313393550846530784977553507801925019055617472715"],["4903974386500938075340448640075451113874416901175097075367023912762888655887","1011184289082136420440918552225874829136299847372893672368828724199333780624"],["701544410998905179684827641306686889224633645060077449227671085157778005462","14627528633730047023067750890550310823808054584917495549799754696453573871309"],["9500226530606022335692695526275447909226647650302675505757171572763149464885","11633763855749649740153836900830446030542568227336572838433442959596124520996"],["16462161804403835593425162585852756933758224947897351473031833199395630581688","4265469111486239235980093653718398807824541543302134774769019379425632900555"],["26733469265952706292985645017534522903899257282036911790241313293928201397053","1971952472428336586257423991279070845541688814336773885754242928602436180137"],["479371901636175756352460360119558584093808938026489245738144784261505729702","16160987598240253443023770350560731862540920596543993925617218017238506976212"],["9889194079737944269635193701557164812821034040075907692274826845941912342549","5769825314945442731895197533734896854406583352776090811354867035535587578551"],["21965443930147893380571550808089061214806846107090243269142302657814472927358","4003822491129467565543536026319187540475460757998146904522147720986645539575"],["23044802304717703874302333824192969680490986037461512862719850311013965206323","6756804779472543015123862277637604134911014262503990397610076488393686671817"],["13529321348010133141871391518215700520436567529243711643762750766682548969297","14247036977730531602917114718785642543013215691089398384665850992846378779555"],["19001856332532304569355249760867095239590583205373825433154548271371576849808","15349015663483843838696428381001136709859298907055257440214898705064254013411"],["20672295782625266892929778886459454905568546726997244246566150852367666698018","28197863288724606607291826579702099986694084709378912527951972882852398432010"],["10354694392818995565054121897508989446289974175770695344363091076422615715381","10363143552066718568848941670752860180538089086515545815768754331353610837121"],["8553110862449461061982678415265724377845062386071951253313132798392679548884","27764329333185702440871934633977572280403294095588647767904225341474417189005"],["27750470813494074017553354335515271097070898466777867486302377785718126329395","21557555190657067296380568748307913024403360021881278877215532003221210544706"],["2955911063616715816953989547826840121285591819161085752494571892895633625358","7798657999729252382529805477386225602773139687998257271504555367688338800417"],["9595883876256324545517267517138439652017093084031822962667741291996757860654","1622515042239424753377098453801223402798253536377407589309785469254456538397"],["7012633378262063994443590772104274150386763952761357329903673190194713242614","17639714018128381838934214733700277934472458987963858470555635537948826503104"],["23127945323945220927375456956445924681311376497069241633910549361678498498110","2170428401285279371308844575585264091812191581392487396760479644119837855681"],["15075150211981573084281259227933684039236574156825298378210075538214556344131","15579866725954701211116040925760911161815724854894704304354043707582994942439"],["26635306336404131762805847175774552722955399181684524194090962198886674879281","18688879141653115628466075942646723429396915550939412393029267577130404721440"],["14695837034595237141642806803166958375530140763571417149120688124303585503555","7456031309451156180297536119790424321187845746801436447261939366444130918821"],["10634139555604002757088103028627319689541149087671374609988463464871428778714","2945943859706818937116103677456313392323151870048407622076805121735874490639"],["8606025277805740644083736060173495614504499008776125348637611535833903228777","22329893347769873389356903729888951926437367121264183923613367305525250103535"],["5154034611421843747398194730517373625574545284521939655372673469363879053442","28581000795714625636450542436053308302613600698229306566153998301403896857222"],["2096901318459583141080067651868538316711978108797196605501553816848669761609","18038696899614982914291948378017840719765360605191907460023670685781769802248"],["15622942782788737071410928017783400683352328818320532302605365849704702426527","1208550647812233741165381625007210431833503597979075555538980757058076961086"],["13726645339908931573839821847358363473795580423791322630044469679204608665582","11218161956770398498034562288741074348557541669949651670119148146344238484195"],["26411377917954826734985013291040936642354010269588279396851547533496226983061","24389954456040714077734043672831460170418450100358560260213574512675249730730"],["9357702509477495009812035937503081479313545103576315762100785299906572097577","24891924544868634574650153878307200772143841968334057148327663058200148043080"],["20694651057155095828074753476751144043184910100843601323059273566007778261495","9239658729204034174293261501356805143794575542699724935052244809583601257397"],["22339700379280154179304344420561177663227333580384388053808248673148960665893","17700126028596077156275593147005552283896463968624508735705667787142326106793"],["17110390862597095516503453804341596722973764194774251095982601928169743447808","1872455431991446457449708134043652688606452454142632820541374248415251656570"],["20942787973065401084724154044742869414212892892979369896421172193709456717505","27381864395664948798149164877502879273799383026331827720872244200415373153433"],["28846929488219393797198602199767492704479614989543874731903968506998481635183","28320799707497542479548453831458354383888255566180848773471830762808263342583"],["15310531609908014411124856155673073968007006842697989071333145244854064745765","18925638777513204734747664872104021923603524433103519184181628840151122768575"],["7609306042337847143194368818764946503862343756633357141803460437426487078651","18818905402126503737799328962275928093162396703260290414095105514787423835599"],["16620453520037257829676110714391787416552548844771972967794599877456080914413","17231727551388152050600268987234625649743687362293823172858134182953370707691"],["10319625958570647328069933300291111030151850291015662012554335584600842011326","3902193344362730811412822275375814491311483902545216740922566954586918152355"],["19010125062769349443654984960444914948201762947020919041259369955053086287529","9122238648026817730704534555906086371094437670265382030545839089639180927205"],["10093157153097704244860642764068538907736008586423749039510592594188389081107","8541175654074848232119023032438451761289500904339804410467110310328595937599"],["7011938395455479466328136355375968997137383990430939299463169460204499246459","8903019060738321784185474854201279182321700789929264312384659418713809796872"],["20946363387780858939198470095350801917636419121906697292578140489860601952727","9272428353911970795012315486806808653091994232640853069297477618783747677494"],["9221293281377507764327354339364997549366831637473857658610508546533614214869","2523233708437367988707896143626543352595449299087161489449807430633570516127"],["75299314985105015096726639533218935399226869629316959314436792928749543321","25299896821262752714920316300686909909173641482507563801354515225710285539274"],["21024911677590344773335474101762084567971264530000230984234613937618278098016","15150908599180307013404900542251420216585306164709752974631371987908929177641"],["4128557866154130299329654767107214205371455238162371031995055905446772515000","9149894851505063782752341743457174639131650870553273369889474488063046743403"],["15527107965087335203759305229812022954118415777317775143896189475325538505236","17371216184428505355606104957504684058395691977429579140251246005883409580432"],["26047244247403738415584648298315064004084071193146754238138928583730864725982","5001908792394911644198598998191141842859165435092267552208556365847104075813"],["12346535853897371248151311803286514963843100840892007066937602701739457611525","27027380146152886677183598548381978910087888370436518009140641604713017166477"],["16272795280083553796028338449729851375974023283382182669845023403322216179230","14799825007945054127535540326353928091856364859810783511569919644890809076425"],["9491567801386497106596255647611242170798032873866277422450672822553692722514","1343471595865915157784307058269313448464188852726840295834163614148626173577"],["20091426325204135087116666439504721628277379065557019286326324521229939033024","13732414089512142674479409832249426049792922336572035581851162512501644512639"],["24063725967357589522857539530871046420837283373726193464559568604440986927530","28521962266000979359590430119900917708207838228818756433227830741739906492914"],["1266314819496254439027371008664893808566765204461381750696690844341115434841","9544072177923664100063181165734627277850167568591171980399223672246103054934"],["28833281768605529769009267792528694462506497396667279389775859880654338349503","14014196378061550649589056656912683436408473536538026336923267302442532552637"],["12616558825698649555452075313728402202738616026768493446614812573334607340544","18632262687570430426468931061871785188629861748792575813984021677625055802098"],["15127502028724649636768323744488294604982382204655080776417920255735634323403","6376454667245262156606410592111147186069108740588865641213497346797229873096"],["2677816581073073051735576910255873683576382822038890491264262669823257085989","26180758509339500640740091174352325993092912679863560989551912041427796310793"],["17922629026364459534546007472310129182219975702650184511517882952329287766420","297484312219937210583483882781825049463778440249459625171361323645543539141"],["5193483816688453521420620113821682890879135263830521397915588120186658952681","23678187901680369300741268057075009207315002849211501180592475272881161137499"],["6714438629340138742770733465950635926816700194755988919774039772537029198432","26879196351446814902611315147108887858790999369355769835838938712223312654549"],["16076856621197809637163696605209629553777351088505664939883076951792267666904","19151191519458456709740894895595289497334205892282747806362400562690091173276"],["21731421790101825474020464309369690174486538305876202551677527617870750315965","2601212853985735234954084087651779571396145820310180623108300767953396169316"],["9433019539548358301154112230180533100859698155257030052005108036516278839573","25492950524922628962514931746255724136361791552096780347329289504890206885054"],["4484220448384246076377933726619662825285367248518410093539006805435796271327","9921546785814331875290235112380297505770491940311438081982190506212786445895"],["15877263804431156004806020568101652051667669961192640137067409297286012060081","14089669684554498946548297071892176654264909577288953006570005385555072169045"],["2674657451498867432379208608661069838880579643640255549970157942842114745776","20678148622869903623092105279346872335539669708576891489028619023247693271525"],["6991824774839036766029610214035192258050366388325806778381546253385335417805","4347832797193991828719400086157169975708072979590718715605327285799290185526"],["27785479183995470382580247127326007419136050926589628884419926338920743275211","27242793155355632499351353608329610361540700969856539192572464245774641547355"],["14114528072341854110909205420602793562753176392902874909947299571439741945868","9938398349269180979502710364339153540458551823303643623784523456963591645683"],["9350906461753083833319597428139444351066905103779098264816415062458405688255","11325663798099507774926190325758244901805689036116638170149929831976501092160"],["8227398793837711522264411350507697177251799785084051398522652869597048581456","14552476021743177023231019966799644549947674146642430141640512906632325655922"],["23007367641696269843245976556593574014293645557928044774134443993798170954651","23097865251724606317659092240628333597390152664912964265324532438655777509425"],["13166881016745633187623801133325025237808102924199028221652537093966181678645","20310573959942761286831437006946271119889391037731973901312685847834209065276"],["5834248765782631788606356716546550622375255615826665143036735533889129440876","7247928344982416442486130905384591585668841478555364438951528486236020870731"],["7873108015367958342725843398474356369625715712065293624391076441716088279192","6041554785867511922892699355775539335408518533287356388434558833788427548972"],["25100894792144344010085181302574198029943005739259394569010333392434952547857","20230135455976959892880344141235513579473837500884960016568017417395618157067"],["22182672784953989233383291853550208948357182201762593286633531087062670068674","14682407361140050831744379285153590935199672034161119295979544430738142013693"],["20193435834375797615122069853704795476337836076142236989133711469434986755651","9045646825850731374479236158033543252867357060125329754398974025606365055237"],["11248642325284766808288718255084382658037758077339550645847381757347051842808","10439840179202745856639485397866275281745554774925917118497138246942639484815"],["27371660118795457278842487254040761173655366017247137983017127487129622835195","24881438544354950467957608803393715665718717422564254910096335893633042536786"],["648062429289605822131199257540535241997116816141744494851928185904053755907","22641951245620090059595935514210905638511642985834310007243894352723097004153"],["6671464898271061009169934180870299236697829019487672415685256161982287808327","26235308258817872721493505051235944898302312493620461487436512384742382573925"],["9215616082610611670502187302518616378507356938976465369989372377112823334883","17617683451431659951889672014107730704681299798014853452282359330660890610612"],["24289427590069797694578856206151273855918588086839418950962542086767483466984","1634547584555251140212246373161954708099866391524199776134391353201506547781"],["3662769680976642033685650706912688988167915935190128093353960472934126857804","18363193111734564028388836430658210931219645839246278329944857959100853150688"],["1610008378982030152431232715601030303558853291519993570159362192078302705460","10157333167293427722453676641419026790263505685559458859082460602712983771707"],["20960808757492143745509555865205928879369531737921186352370183352929540450623","6183854078198488052063407153609702576666149465547103686117374021166450740196"],["22325584526387521567438287168795159958177880075797311080236518367500949930279","15535191465852874242002409243265302177018191096813407952632083906491136034050"],["18342014661537804099485843228559026853026190408279352688847159171775637933488","5147493895202020287458325616803087681388089823640204909647766156949883011313"],["12576733196821847145805655622531678441956815087710132683270588966834830534755","2483626357622930371261238889947761650921193352545875471030626762639408238145"],["19002476040855145444672968921344553320502442107728332885016423557875867894775","1814348084837160293360307514065989910186432316977495793977869521974371348582"],["24339919542251781732805786951369102886203376058344716316261777652252206484213","12128451307107573253564193108285127208525746640737278984336766918559119680717"],["8721067515818352788030850305720871667129348245476629604088163607127061431920","19274398015072718586695927292412207298633143731824695541597474734649966836980"],["18670092263887498579827374622106367564918388811357887838718036563170804612708","9509282608195772620195104856452056472502730378889644203547505239255810120184"],["4387424929542505983798734392004223717617803994247607730018120767677358609663","14802793600513266239864356520077986993692235625552802936031108714963782857249"],["18441868523354401047585770556991071083094544141997126204364533297468947229466","16689262510654259009587344074089394772840512057250140241224105517504026928703"],["27402385631384504115331459794644339648649307023007369321196512497242298577639","28384049161669188983864255689138329312801486140084666260446558929176117851132"],["8829562152415775051935741867625819264052954910118302220641499254513299773253","3730940584172709407682636823088979747541203693467619199180055243770416188837"],["17827851960243334034515516105339823421796344194218487125652251192147188453626","13126255890446336983782638933689088110042479029163841662930724835050514207420"],["5027355674723606813401961137898278776063253866733121572266104793576203033874","12227001308905319518378067217553940500781323156923292383581091232001775044981"],["4574898655618345823740115105167712230808614842145133864473646886157508720442","18224032765663988198078406743657033741719248395391956184231331407406058842446"],["5435261231340342575785437032837133462200832641147494143894757359993867628929","14591352309594582300755674325260523121790195065684283934747584549929041248139"],["10185880278263102503124249273315538379460906219776803950803220883431537019250","6271639122530854162209009817340962479082243024838195615221360441224348175001"],["2301567636745462033318381236432881336698498146526731109150870327687697891174","18883460685443560729015721823179635592339409372153072654830718877092857435751"],["7706760022555328820928770257642100226749295630218366254903337654852889199902","11953397873873454560660440035863749862399207921732786492187500387547392416527"],["11722897254017095616464479638429253252380144000983772524769263761096822974963","1300068860107008210038455282105021361494315029968500173897682859923700721852"],["22168630538631030040335075118689097598124904387642727166199710733857335203053","11678172158564070538207942574144335420038585626477231392772721921319889129229"],["23138946339596318574458088101680121964085633310287113694460137957964815345399","16843806667856726846137256123061676354054917175750815707144951282590935896679"],["26114358741898793203503987380771031016568638348053037070833623093492897061238","25456773029688452973739124834302336735016779304675134895097164662438496291771"],["3273891600910717009298792270726415349473811864672983432596977300687471284405","21794040022480128666698656191338983300654834298786810895529749318895247255193"],["21022788653427846522110615992405543329168040868382143366656765038614802298692","3768142887938250536846709253325857727591749622869663030267784064542938702063"],["23719046739323755199033338526150321172822403120463596869407237878254745976134","14838645378297232304897515198990684317697811157325028003337416741654111137745"],["13896622172058597974028710026038577697648274741713398133008968593935359069973","24898858199575911959892448012851422895836990311972797280533046838736484805600"],["13556369567981129837114879939564435186255094006379477958357372352980491139209","26121467358901280387555684372873486899637647504142981171330316657994368970470"],["17330795867811687542470420516153409236495096265023348492325735660676980270893","4927777735077927483816571523527720358415373436824189930187529032052695082819"],["15383670747478838808657715719886825255079377118312954629180218408270125075885","14758977887981596296074338826516902583087109950567956103658242978950524671887"],["15554695801313801755701070898000828091114477853901551097906811347702802454853","4480479087131195633117760115808354777454697559828063555438896064107948384855"],["10131142523681837735691194806412788525711546911915362117705033462108168310885","24730776325115943870010263709471936494612089879125724439102401705602993404793"],["13942937760864309151492627072220705084394761376357828777182556131698832295306","3340062880104509325984022218870067983166717903662028563671835883900698062269"],["21511261899957580692918125100817093785273180204060514824851661737950247808990","26001013138659374869741275351868013074522530007749887661674795241365425191156"],["4487271450009025169439296040035767184083881589618164858466464792531814552979","21417263488030978018083988528088356271838073755265283809065033592061080042771"],["7324690428907093061880057037635040867407674995525480879127806064673657212293","18705805633411117987032761722624288567609111521127589950834211465060378157718"],["24143575797307810162195156180491701243941273696347640070894885617084529916276","12271030282667694768879380871677202042044556008032839557855010134021481464974"],["5690761655883228477157092474830735633130359828530494182543616880315151943066","21498034852037511365595503391454362819173919010815982740119726705962064057863"],["25271094622239455074679271854747102172223831769611200651136843145073703936084","719490581126606764127820202315555592499506910826170053668692118667956695057"],["5025776540893218050755433740888043618554097955276660366560903691950124593047","10896339904750995889383892122156002018036972318342068639187933465156173195579"],["6010794995466554907864636320844152924797864426638153867226672120342974895496","25833985136352615032052437279098696229860464398630697840905247933757762545336"],["4508589334942723908007907682667413973771880967250458532162606060176738870275","11464836502774820388732988546390112556059329896302724785224724392880193369021"],["26994928048530215224564878446522744222407309431227452547062613786757264718948","18384372466353783172729744704364707991994191542524096638154934020669260897170"],["12031336104602128835552565821392197183134614449976870085941643487484613394713","24070706850015514717250687276709302789186045224983384125924832385724274987640"],["5885639787127815998876629872056747363212988965137578817936384632495224726913","18517941437971608994808714902081358673383027963128502149559608904598856848891"],["16182670701375230751048638779139441810024814191283798470447540576694544677521","5825546930894827976330999113600667404337324738091416183692533702398385837677"],["14440228364873416559142398271225720076896630086814205111321904805045368011698","18442883377725594571611215654087825482537689427988608136901777984787449653111"],["10295976427062695470801135598321069074617561135487774724177235665656480890789","1493109080128914101430358056592526631877509241804077376967115312210941063558"],["11843816426198997157804430439604561929263210829414918447178471498022627324533","8886949409233957618016177738217114158119021237636273277132354795683578184160"],["27127531224933984359683876970565172284097791937692742768139771975411010101374","14400209240020860405719499709909622200981730397250263508549792665098463570542"],["657822946845602726804730160604704256506985634920310669585589491651664341935","12759392401295728228571143058536976549012985189594590123598231559110253820367"],["18072066963354146492368026929374523229821303751494121517915630686151460140282","5973786548630681502727446639351001806262043183359761409509406370718059571470"],["21066083643373341532437871251150654451106781783782957163669662838747038055979","2835358255449930715493026438597658705709313997720579566761854440195393877722"],["23464097858062921856656815040772201828945747810258798964823001899246681915594","11964193280900578328050469383098711130442443894767339421070675377387788386872"],["12765991216776421232517510126150950587226954962111927603853586601177248198111","521180615494429614685893970279665103352873572783835959063901351954282317969"],["24270568174543272755084603203035385780542868278279349145367400027992995255963","14173669903136084914947595329530887480494853937597481177810008494625700170020"],["24287885363662704695588346017069587065856401912445258632785123525317061056491","21746096052966615224384386691361436095364250533680467673984349381361401404038"],["27973533128555465904305259203721368176304200662600534453329201003966475221456","3269678640220133930254315102670441496025431845653110486569245077749931519950"],["28702697685339214070812728072754432152885223189290957582406695992240986053108","3605294354966439792141859640703540174432667768461415255963352904214679760601"],["11854699133443970278122925365218269545025601895977573460365610463986299746509","14025921644224602031841664309212342015899027485976709332692906511290241097107"],["7155136130407757116268398149618058130190719507255463471809985948706486100041","6879936985409018218663534516969113223373221323641035535812711101773575269399"],["22744369855701394555519296515900309109998484840910436067797144440120528791831","15156852334913022648384906758736216034267027874388220350339712997460861559240"],["14779557809768317407453675359772599688284073601665273945272333143911756032749","14198451334678540390363806828743320220609176759760421410609912146787307555794"],["5082663535329921834352599712770154779132318821733191013808934677030823825397","9213659809640813073922196386018591179898496896109203571360270075592087266653"],["2540139368522156164518255811119061236893146591147093628838188009614442130811","4501560941321627845750725506417731703623659565601291470922387065923801398256"],["26175001168415629216931647472715889827243391142745182515124729605137399902894","553259871521317431868505983153856954118368495134349392644811793825733487224"],["25353361770485119498816606256723928458922525361128308002091973423132444671367","12009577382556482593206418119240866594885340816900710609608137421518276397955"],["26976032142540318264616432924532184705427457799253864795014244570959736117450","10826244694049914658855449888147197379902953500791149670612656986557988117730"],["15516555833597011609552824149967549329330459731610432464437115618854870661010","6610624255839721862503535877933047805467791535614963418141073931165075490046"],["11319253411946521967265942224492852576697048608564708536107646738470920320132","20018952818209652924252547640173966121283096591872600181174942821316126602168"],["21534612768789092859125110036860197051930619655611100246482336754964260483449","12778528287601510564924576180645255004114118376873207134305566047758326041787"],["23743924810524507628533736299592347803084318438908700534779902710098940816892","24239903587384490671994564119968944437784270846253239796977296535946420154277"],["14711118918901991872371983225438377762275954488634350174368476445103334192446","11560208158112502539682205966501858136221813890514957235792371371399399136731"],["3130267908637281008468691596100557733947574327313950879874812200540966555179","8632015669055347649899520269134649304642430609137168182051185822261501813905"],["8913076851264932741518372781765028177811480945705155172137988845213728341903","26753180762186481212099788830452585087546262818615752715622028420386646131504"],["1678036519714553030176043326346932758072257872939114270194123866802833679490","22888157832189310179871129089108620142755539604695080685702079289970744389094"],["22818175625860518127987368537502818677900158206234051495851133554776062009556","10752882967930315528491219837250018901120019283701833587528343039305179053718"],["23470760346373725230796551429357897575653360177097995187200539692366540531","20736556317506918134362791019573566687164977812624560860778596381008621808438"],["4163579699871828240051498323591980844824631322577843929106605314748526749675","17895740798873889245686879601908946650260394902479543993636283522766413365689"],["8775781145015874902593201508498257229106496646991614121818386280767496354566","11089986994562762167934967259789591670674911323674794759588223526108161410900"],["5281888089331018797224920822986022040008718542625192814831391392551606961937","23495353023562741117318093957945919526495007178643551260698176378973180911093"],["14578979018674865561179579901570786847493069133451357873098480129767041200728","26126666995003922697175628059728138575751370943184969135210613700907208371668"],["17591902182522401381039556663368976439974310055107008637908299415450407016497","19769486265665685956738212450868554175567819969041143026858930633346588254889"],["22943864670916549963157149002214483096042911538497076551333819906676908294396","22970389773426053607527279169557122950641473931482395328426267499822188070998"],["27539426623551859919600585586108452769916220126434230559319984543392052706354","16609281450754677169380932027682666934151133096764724932466152157095510179615"],["26544835084157682317328330230122733434011897203506046686129954863773335543203","8290294312481678267947116377438156971152292037088584706296285787788312949494"],["12000973318616729165246612820400634491916877287564285252887450532050573637315","9282428214170830845783803599083237942432042729491799847337304780503048819231"],["16042589274952265943386704871413053024570020501905232407708588258654676731707","26306908648770150237094948758923797865382136857858197647598055094815043398260"],["20317183031190511597825550927703649200383833384621180311934513910143932066362","5836154679760907124920585503812485670409339398262818563845215768943699885211"],["16014726260266918179500237725427880312341801413788815794396483929526448685850","19528385769786741139743194248791149494232609106804529788170668442831432137324"],["6762771505192893848826706052082323055019215453002494747877184453784041910965","23468511941192419837805585386334622890240091025196219746050720668839447669738"],["22211683297856396824050646566314044264696633378138786983202500611669748158366","10672346143548873122651596990283075260999092815248990695477684843707345636047"],["9851920045940978637954513477682726194494474274437765468059270388900783225983","16794071272037512596487272492696231360446664985535453660802161946016621840789"],["21627280661983997142366189140405741721719320142250276331735472523330741283","890607772409720892246797838924156308707535837168668536360985791171299123300"],["5439004025980814808830722730471357442739472222919418166028937398644722244189","6072596942214896948195557561068108457641112625226652350578993362140911784589"],["20339924123113834420256672219780051761376271901198521808725188112004538404764","6694329336050271603002075721043850598369771992565351497028920633965737479698"],["26492198329560191207201766077385568946072186120321167700968510679754635118124","26971122604324117497606525117245212165495955790960815640619354230261913857901"],["16695385837860722076311884491800718806298895120626375975460138398440248914542","1130692638632620819289984696617477906485079573623490308306862576048574479765"],["2070485681758056693212370700770916254252940965973412964440925212174973504500","13907340572839222683923978309587313400680198914539582044571921059338578257020"],["17006123077137425007538306342676215006956295432254789453019606552841023835558","25222474708602765752332171282517198403005085024256977401635651548399077097294"],["3013319590189339805356806121714015401843568918756436785044126053880741024754","24457758294300406723190432943177195403193083277337785442065349675164459965496"],["13032871907779422080409733291236806356796488928630348917444944497765258268772","24989430605205663369824947739445983027369337717478123627661261912131594938066"],["574516521528713251052136036390936007655316980085144580295710330076330924231","20202538712439235189589494884444748729727708702393644721921652938842449311538"],["16237819241833072260578614185959308488249276665578854638707730127957636077709","23941762979669934570890930635439645855958640245798939272771976991871958223948"],["27625956745253586224837546825418980976333044196088785290248605835883051220120","14557152121140074508335851633957396862398171864415580450691525714448160206844"],["10929592539625448789853894830400612817936383229101642537252215981245596721269","11655813089309746141271579458130126413579260992250900777549644141028935414412"],["433117399264568228625632749264913553561814883381588848822841822078841533731","17079972102995816412708661138488846486998693136321749329197580918268887113927"],["19182586402100736886528063004856570662206364939953306972493739851865260887318","23560766279734519779727000094928925644144414598049822267217803274050285074106"],["6389010981616006885168042583807033676219658195055069618556523086474029668938","24700211023836765096458910853965616851870488128440822328668120857338768237566"],["15165823617793961659588523103143964728808545873718722175605206896661082328157","4646417169623304037522101616331422593514744314484731528725578870863895293051"],["10994991539574276016470565843572641159029932594131342720388515859928080202016","15600386157405684519932089849824300838261278105677371686314684312111090187693"],["27667756901033641915365312960466640883473528934334794061408825889595089899089","5530072109195783574142756575138231947230308628667360286828889405903104320087"],["20250873081379615314736545307458577316709975323847450378423238402070064309093","3811705626105895356612034104276879985852526694998865793065592836655748427442"],["12423292914767072949364343029392790401972709804484401512813812420502283728802","22039613442499768526649299023285467138089764605079711142716551531247634653338"],["164694346847197034112678274192141187136612973622788226767323107083024228550","16575726240263331328961525546525482635802016236253222464401877495233077108319"],["1499419608985248621238992378947063162652999491977427062992918163143515387759","8069345240009512459840498823228704619546215877286356284253307842494990081612"],["7835144354514713748152083072171990884260459629236843771150744382845633997987","25255805348812094476671179185167617685461994702173499546652868719006762079168"],["1237090267945998979676234974160014135112084000020792755318716883465561566122","3215910954667829866833385852441468552047614146263152249414978073394644737666"],["11558286890867611646245579595738220560954528864908998850690047258563800939335","1730025178293118403046899141318616189442486187980350165321389906580340920667"],["18537753939534503375694014342712776881049138790726170921901972984678875541122","4053222737867342237732013140254320784721605843154463766137736065512781421790"],["24969540983019427829716160211896023747118622074447845191745366365379266678893","6710512361114547975235048546595165292648226479171149817290018828516672649725"],["3692686702222732203786474118806225845565567385017813671047888470003069967753","17177273687760138685064076589335204502047738678115615106424470580234854880449"],["11103667955074493612434403549974532995798169800567923869619169228227516492985","17484328513203379456905869352668300528960885372245992948498926332641861020712"],["18339181572596684824233887723454408024297288844307254549208011025689875274149","17732255517304673409835649108071181682579802826114440749268844458493967663642"],["13823529768554690566921642377402471454496688380863448098745440664253023837630","14434466173184866612300185257032778580357689752066158211217029278909376906950"],["16609696814199257739328238366577928375592160568126632402613679417294888798245","13669262233491615206998267478117813135328544220882564719511577991211684990381"],["7180315956021936214432641351651612756884480345729519496125281104576776087841","24564173795590822825131782944953877194721013079180131066877687654899280847086"],["15016399679683135399117521807873088189255352626755725812631955076260251074921","25200986763863403545304458559937274384992445624283496126076279778299139501937"],["6501670550370169014031711930955438736927411385704812561887478320433434470224","10375721065260863498393514627680061607650585109052594244456018664716488129054"],["11333760295884327309288864936684892413565737390849320199003367403042653887745","5860683779588204785117620486341671349350781995074949164035198883844384477403"],["7576168732244837361898535496376993880919033222558939005877113297816429095021","5571928376232861246836730318613127908340997148498045213966482569470150702486"],["19929927120369474861407759526208182342997632802419053648554172894984391111038","24634492440329530102191903052775324553934991047347638478861792376001026781202"],["12534357827325861511793164475759103502531087871627970973347961238545812229959","22462820834011794027079193546671060739041690201464505522474905129206320848037"],["25158675579102700656390189111272783548613184302916224124413059956380484755384","16787404655476669294818271778679298690232180087333909594100750998246417695962"],["23054119983528794089203201629661055317691367589452920608307376343433701983966","26815673886796671267433832075984040322744087131936727014833785704967224778606"],["15171736094247747501106257448648689707473527555476067432518911474278607296343","17673658394665516195646191111906348033027894289074068242911190784538546170242"],["25129013918700567454765853480093809445589751456707474101878697790365904715228","21273591964705179331177454945277097666825195262845307616083483093326327797250"],["18815556994985518388746218768764872262921300907702887784817101033286543822941","28423896164010548603130919313291570125489768734815315080906130270163304652580"],["18645336248362970211016646886678283629330468329172161922753907589930075784129","17785384417935501237696837785338590686353304422163817056620815281522147295833"],["7480596872782314652670738294329654979756207454447897557971474748644799036567","23848595963398789792542857377648918518100311892758606274417511609981926478063"],["18649249755549898978866165511352191157495350485730361477115100840778730142016","20405193304518908502924049324031624189482321035413756436259173044320836581187"],["27902548072205603523800606096809056330894271291896001520992265260226312601082","7068939768985164817638921628280865186352566900157843391945009142184745285107"],["8355082744871769657455351278519889203960018458150413863050703499596030832999","28513173195363563281877516573994323011861205397823411353890184730257794190329"],["9184597030224297861408698939139220790153701510793434784125117385644225407592","28732681672013090172235956795292049054843447329541604977197021241127449464141"],["19830637525448382128270436490003610517372990097311143889395784841335058551208","28494726265916848492623186883474563067130303816720978885821156173799987519375"],["17680958714581289585637155987558552230610398267235588581761021437079112791000","7254761461918918064926410065205427834766242947173237502099449035149016144773"],["559062846986804029654831645006733610033622251295005752663628197689662509410","25057176033194751204586832239747397769525886880893071612740970344499266448088"],["10671913832904284230381106263895181210791825334407474255311661701149020123239","4110374948308684410544737267116401187785694688233180481418820504077440673141"],["271601242068362980714842445180253975288347039997868435042876922188086199925","28516844437550081258344788445143018293383995123713593712174760855589312237148"],["22589639993599392832293131845800274491548763396366964736492745152680647653316","17346644535145177311613268676213818539983237925486216592731084481248305021908"],["16450836144116851677227027480219985272376299507978441895539823910861227494559","526411407204796167230866955934821410438431214573645654853009479486971471321"],["25493027982175130146856911255962281701922660976136876144920784682407779291306","19973764656018049299297972440111217205060884957178274513805960707210976089039"],["12701762098679423523646686723662571728952263702814719504530617668666496825175","6096514854811814204947377801978015947693834110232655037603372240562915870878"],["23763032901945843243700481216486907467497464322816902610036070384247616767753","21482265469417314145398109319326508348806919870705078994847284977153462137273"],["23499783098390642586904868930699386204939598228781448541648739073414312527527","13936786770587142899919083156795171600292304474107890154850017166147694666607"],["18300808802287119557937039838674313603446228449093460990565492214814010856587","7495267309425021731583317857682815065915976340111140146784819605518172970431"],["7126291847972427140332797002997726264945566896385141405320017851252847728899","485971588388344341966247764086069089401501552905017919504193227916632432933"],["21132693032513589142963274888169093380935783359090518806563867943790270224244","6969654539877131640823481622445584645525556090067086234998348330917459916022"],["12190937316812083687333933344302146236175637667322719932140133753618792760886","10698257930128117037570550771494579507362442198290945335105225861097184575971"],["27540631618507222377542200319133954626668380303114617611578155456381072437979","20758409828573556291276515875368618693012657994939527657101985040540184281362"],["5477900384191132684090142497284856999206654556130263014802287273147095973800","16888163998440124682521952535166913670409554230387069611108211791938927004015"],["20475273189035580606364187210520849587404258112757739810413081952564933453661","13213145111122372055456295204893432948745857270102907315587472671369016077818"],["22850055992336597059411891960817264350364772889185067228521555036637237165503","26965244817173743545922466757091794959224347818383994385113498670859664041687"],["9441400415043317712141688999247439316630547967082508065010564860992107010146","14900759463022030998496054575549550949685281977016314621097506637954129807902"],["13427524075799154346612664826513064024763435428665940966420943215197944651928","12708093640997733024744271998016730777294547080845783317846534532548564765747"],["25053794798036081731665501104019680774122454498192450113541878297964340664571","21221448400886955255277988642356178893964458654826573976521749879554748405234"],["19073593325176651931914822209863558229501963730992696706751614161431620014429","23919138394879451405742556332803740539349197559296076908030931689679466126366"],["24097980620225617050364101917757223532777861347413318877003072787055862691770","4647340001688151590556898978417758337891767242133914461904351027188601890923"],["9354022106417084965946051793484947330802852510116215140041636760486085337047","14160979142738402249789677749799477292970890699358505867135778146332362997677"],["27458286779413771042141300650049367139221813392302597328384669807247984819553","2067475964334298397169248201766777640668794547198043287858450213520841403130"],["3099999263083709044463437921287555876413234922872028143830345635202945293779","23545985039053253718359592451698236570475436938502752763137479086914911187913"],["21584732696437524488277870330546843120278620856531833537874739764910122214822","9831975210225026226922197795469554184866873444475599320942308082076882323169"],["21581511232471194128016554870014184951277952735019039761833565507606153977147","23380316317100501169256019305104471370978914198764966885678319303755517886435"],["28392488653039571367582579237887637662091790027730276190019366582918518965104","9010525981076511152024921090869561832246611869445819577412056152902326271947"],["2127189896975020093086956668200721843400413299712622492866472625887945073644","1368845955309074675868826351371374492858636525860248601227312148917216115165"],["15031103115807414426306200866132188663029662606860749160292404398226975334642","15161212077819554902796750506590526762125993283857105030700766206868644862714"],["27344890783473096968518272227270446643255245557385248164568083081886311951027","18036907581353374395519192105228446479611417160979348656725874464821333242867"],["456976726271933205961296390825507579527046143969186339707194224032222135791","21435795405780450393246170792818784560359162042744439060755051912225127191878"],["14654213764513500911205617720018432097219789808747748713351401773795248547279","22899499002669999470054156306625770223820027319166275317798913126386024209764"],["28491701716125374439917980025387991870141036999740492082911616710514821406864","1210646772651291897628302476198678046313317596855425461200310987824330631881"],["28384040927245646012459396804444046946072478076156016125073776290185909158334","19489741550958049139544923544656599527993254880371698258412806802285745600990"],["25741015740035947273082184892866744230674322333019925449011242025613717149449","27330237212529320300835641167418758661640149116538122496054388697045662752843"],["13745514889443215710039770281323085538460948504207437526003472145550275046427","8420771051505600330175689970518875942619375071431728734613157152592611341126"],["9317865150446260862468569866316843718947829638551971892266486613190819725274","8846798450395981897092631903665934574907234034356121049848841849419459050664"],["12455764808397477043287796382407548057416289487482892115829876308290509209032","11684047163998231417624307066923072268479221164289093548180703544443916237212"],["8200704378132143916695447928876912069957826725535056323897871298558754172475","4030508131667801329661264306101744890942917067693742149885041031876271749326"],["25926878067498184334830417745364296457555760191526837691379967256371928444556","13684323206241090998581701429880913881506165360615335383909049249812655637303"],["10175088588422479002051106686191930378813745586303192991964687195239399649117","17335877242751147017237693799648276608563766797880606037090700879463865744119"],["12239031262180545735168982384883059727890946947213823908969301107907459532378","17042448532125373529633081765271304589562718175490823902943195648099596921681"],["28306940888346146078180610866355096878776349827511389382574218872153870037321","3102797525261855484383794279226549497743459129324899755738940081399946747825"],["16555721803920269954057444182360011895233681603293444106493423698234439673234","10551049311607848146617992861743825518099504820030058175617153826658889605098"],["6231800109917672713343582780144852776098501013520604400688306622483278076634","621415192072061679281514841621883649183568486378150065736398501593489827080"],["18315242498744895900252852674240475505769373004306409961765620602031185079541","28512935515106114545524002198226129218704246956772894617319905669856962006173"],["16009788381667624306755414979619121085339163169613400386792834489151658085090","9735375371887375362834581478046699218094319220535484886306496339815923792975"],["19930636562045186443067056375535311724429815359291026927065016056636852689546","10532523236001850775528224909957491190206567047155268056175979952023109904806"],["5824454457519793244605404803242825068854428152030447960254454335606635777110","1791751500561782210355058255742294158681400419825504766467523887685502523820"],["15498437739735134801946687956258779851608953411016549901951102547322585368676","15566989157978670310256054500790678015613995719903701149700355622153571383166"],["28149999549869845959790722026008618703756320390071274848220483018564303258395","5055638808431457783473050187613200680296624606344340570382194708969845888961"],["10012604885581772206722728583004249165343983704071343525501135280146793710119","16177274276540278620353258545069329513159876394743962000190075793899481704773"],["28911494623838381036153102686991662393057422481761953421493731418198197931103","19472351784239229251896512288350520268961793998167116833772264601458459996090"],["605518030431826386828764479248596308483942745303275032918076580758424874456","10481463550126430008013563082276214045341575522351230020247173221149305622698"],["49270588012818740861019274986266817399143993351909861544838705436318850120","2736859690156740209342934913448802204126644199968777733952813566000699092289"],["5927013714096549635918733761318517612932458721721296315808586427409920493039","23323808340905832627780155060010953359178058132956700336763547208524661315913"],["3025130044305536763403654727908604115512393619412445622785692282052542959537","1766614485108560487011667898851819769442033480058655555830150847455180002597"],["2635420080291810035398258041273576740341508368595365787224961628235607853116","27756798571896758404122192822491378361246258000906323123782144552979212165174"],["777154827425293775856122899001960201007211070544476688760813355979741197","18042954943837428255312186225881088729387803762841204861152651423202217929054"],["14603207292867959271104621721957996927035124622592976092579189283604653007601","20225825713424409141421526593136070558550858106987814258227934278955520013542"],["18862225899602947327662171567567376854775453320160021043266513128620434086901","24735374951758022462607979379078166821393285834430237310928118277132568318906"],["19695652204307849557585332956403271057220174027123322811117262327465940060089","18633876095447573773126700363830017103081346243948162784052602660331434066803"],["833955926380463073469702549182428044228768087903668151629810303906264105548","10400081833436911127317749308658162296650611622783706982356890924566988340523"],["17446148184087735734025830863572659068775969398810518005694208639960947969620","22584850995019393747965475469467003712221484706294230132922420890322996977263"],["25335454335540041488551940495402207490873679480915575219891561422004859142624","5776245822462190195993586221074603400706840823283401614915196117484435127450"],["6682649901507550566239657503106328196773967835302863700999805368372953329940","11857498630028969066720116580759636322636659509258942227933324122729946452708"],["1673946159826801447969091960040496373755641910652659610881416588446448818313","25483373170475638911744771350266213437155205796611903875137598916499929672142"],["28361921987966831193628659285619556580305885891882052131257286052078272078019","24954282990175510348501528737190029507528329483820602860116498028273476798262"],["13823855893422505259565839342297195977337825522849813134509863012462672331843","17685316224420838506476818616626255537024055266708934181780684084991960855773"],["13620780978592754724380405312501121969616641867053702718225997756211700162429","11344652203840159282438756114639886821909842006358401180167625037542820902052"],["8363325511017566812450747628642515894260598242682804131408711490030943869515","354531469173809243552513801571192766780672172521687514371593919183876748108"],["22727350867533240786879660110737924081784446330975903812965068010465027449131","2298669729472591723373434354882062269363234875863481655112736472812519702179"],["7507627464611572992518056466591730629313448805937481127344903406737807503506","25875014907226409958889088654852113986419297722157788659340829425525239781851"],["28635329933306539071297188511033876868546520543955514611412037307577904479537","18651151703538648581556743691938339174513827751718349534382451080829379460090"],["12014093965288934781980779001774313254091161390068346262728976828847642787235","3269679361154816280238564567139840049329884457402903250769341170194879353723"],["14437647545765533367965030682932018996894253854416434166701657592855250794288","8020351064651573495617996474474862006835149426037269707351628990557628255914"],["5753334138104151244684379492652058893456142759910412124898616046937666452919","967583541681708955568679299657448795244821331486532245587368230329691934761"],["10669135259853975933690170856745719145877559538670961908921782766129108913822","25929407725324964358522621352017178747193405920309686972551330675201174972834"],["3091598672775121505674332561090928648970995058345026395518598783662413197442","14467680223294879406057481207582721467014364841820792247959416827734816608623"],["17423746845077588805651602000664593455013122752311701402439524079015564126326","14095091818483780215376889302271447787331779186641412196985605290236830800223"],["9441657579852042311236591728435880673911493800081272270732928973192319577218","11116189510841102658287626910161087131165771484713038768873097628068642167674"],["26382305727650797647957777448752107566372609854666288870399439560263046721877","1117405524952946993822032793922307043916074645945469740045319988107142005324"],["27669554599586911383468050351692975365540134421219510897995953871644748141976","10096107909561032725021453185776733451618255992760698245287568977241599163138"],["18821851986819889877448941253589216455794336784869982061025550892769776293587","20448454966321214321610833808951528163621969945022460492362439128025756553733"],["10760089342830591112142998702081457480695870156828658736560389788343999597462","20152961093117530957639670191396098309815713351274263513273338471963456402722"],["14840240755394385640799320470792943967466879564206099175075586497922508367400","22115551589708379303841350640413041589293052981272260419496211798284347546321"],["15001959153069919236633731861890086964878746386400839869199562200005662253266","15399431539559939253986587801240303877353967714353806400221093073171553470967"],["11374026574863225184194157591411840718605606811148557552616448179707559998280","4514389821638422803236763306902809412021861307104126720764770537955527811585"],["13914634960236925843051004324080803588958945672224777472814654150119382247451","22196500463589372411192577956978662575791925895370731612618917416508041125900"],["17125256086197178378140069029847720263829459110926047713930181793387795199428","13253743316917553536993215238171265523484774304375908256263322871415148314411"],["22088506227234628592255101298693398237139801813021595051361888546228004965454","22159446232871313663177393663219773844718248530778640742799829834720969311555"],["21835669663466470118622060566619456991362312106053560176755043077770003853853","548028355613531217277068148452247496501518972117759372777391699111279364528"],["12689416874678782249498294480817882990293116074699498763807406013875510904255","28820453818477390330721819558152702291878648393746242047535693634224402555303"],["21985143217628721262348627907757781372974390236110178127828476070016196972766","23293714581277618626142018780813684283371382678624380933138079748204195258716"],["152104142542559187982663740856611048960599560324834354843018140989539421203","21272116892056255078261194809182927295661333284914878738696990377731026589165"],["11379803437889354352539176234479529117694876356968046426424722485241791632895","14507343247163831166218286519912060455022342346363361741863415466095602210665"],["17667614923193490833073709248423129831566127933718864346851158204859588524988","21612250785130282978646510469904197443941681858002197864002801172092436752059"],["15439972419635093357108121544522721570254176514818786044645722949591782246693","26481895949240863871181203541212796677943553352147620150668336113648545040830"],["1180263083512565436691590922830464704509658654296329164823812678817900130809","27810145395396727683148039435456052494467324486413084612293445387524769132231"],["28616306969208929966403573939270941791363048794199477621217339047999419855004","4896002416116888270913071731601221341780453939001299295140930667041372847084"],["12620980479436125626470239181980938701000023658126311890741056274322736992977","26285544414321193815630988759568432960719040768193585117570925012684418880542"],["13431612202560256379854730744163840627232605211833971074748440139773487239921","22472114124357576735035874565394156397952633199904684028712340917243982758483"],["14315742707324774381392003199965338585305029478227646651287296062929187779407","20044837309984512568931986453355018137812516206631952044923213797378262966893"],["28048904275947625814168094688015874226370884169820270886487406613497669330781","13026958924512640134133042837995091044169953963144348998218372999671728315238"],["20933676909982091913119903594611846389167151246518749105128683751428795531308","14349994902370026906168620082415533160795642913255309635111840413315485302584"],["25375237870845127773066944735711945630961398828151927906741753601005445596701","9355661540491482185221104299975955716824302428133875569493799646335183432426"],["19730453597838195393020816760079728565188640867559025805464414891528420690668","25166005493757401239662190384948038396277900507580986077295357588508708298954"],["7078220827309938501213104573689292580934956014671478498922023207164434975452","3478778076567963338395869763004937919519157569385478748084394119349495542141"],["14233566445546829198917620097631294106669141679737159182873372356126341553680","10074623885121810500568673268479922248834747585238902192793928982270048519752"],["17885848609360262041719228106706743298589307457876610521244995867623076677630","28404178407314117328414802687960145041350088011592423053361822396387369313420"],["28617243083656904190678395232665837041790838967834274887459948767100675603391","16165106135187248720971376644225411095249392012055638939657331677075511515469"],["13461145136253568065310166080801039698052170607076799312372050363898585025501","16086658996777532491001176139002227213059994409324751352186499436065607316802"],["1143033775827183283701927762852769968603255550819512241474314169692469614194","18793938242776494350170487275403903727953241413690961823155168815184567297209"],["22780545071058156843940746157379205510771734547345051414301200577637110650222","27770753174234380054615411819487184318287261027080270951883476324636581746490"],["4683756719359103269379486867502403952503445113354595269176363203525255958500","11627587179724880477463579843877297410941638853227470978613382072840724119003"],["5073090850384872848295876772059487758589302137755588159589998761879336432795","24906909214029977662363609831581883877984073742273213815070143339658574317287"],["7382866372417853373363061134337080374204913979780012163113835438454831193452","17633112295078494882447882419769354320344972834194436168067145417557202486922"],["15903862996649987716925875644236504457080640711607358605176303912733107180485","12840134563295783217650199925192230462593582011983823998339377340181757676148"],["26558544095340935281519543442261453855493143200113064257669181006059251050499","1923716336442482267923690325524544687326994403667187206704195784278315498461"],["25919045636468410298223556980877650291169012016680770266795329814867779180549","16234169831780856500488028112310205269378353902128860816309387073767024748264"],["26187433766324019950750451903516439998654911357858340935806121307739258677625","12960774209931912298221199445233953917173960044505062673649554899730271275804"],["8919632016596102897265153156925445379761022650921399046695296408423453051672","6850206782930342126714978755175318963675351004056749106028153425719555237868"],["21174792398694161998837317944035848872326506884756712230962146062074500225","590416092711215639808096766345325098557948756630111784676766322108288919979"],["25942962769619605311712424472511093940655173605589163386168161336660764643248","6087481141313019691501945807012504371763936187719487178233864399485798162876"],["21172679437003712596704295206550554784381395212518981923210706784727574998191","28009066478441935107807525725958366201831406259227648830645544175416105976935"],["8705571221800753497152918099735594066444554245358591388149101880203293936499","714842934189039168922714599319858200548451994138121578840932170697392512970"],["9351683506592722403121807824896250577740158200741265415192343761677847042969","9060035004075354410919749340776569264310897637975575280141551916163100969666"],["14304044946789179999813676921437561349762046214269105984303511714292013618964","15944765833662478203992243469255454940140128205473110346417806275714568963650"],["9482750838976972222947128101004198969210613853448787169258958526729585324652","10842243470589686235354832404784391058471018696408162644928540852434934226858"],["22678779596010268907643347579270169902141666264399468474306686009615029537140","19038025183371256321772017520263383202923837190517875261599699019060387477531"],["27556556769451398114089095651759778877518821556349048586694143209071263734330","25128985767521977088664892925401290543568569289146748331447379944380884521201"],["25486405408349372144534856437365118169422231595501851589322355998728772561162","8870561019204319162198001399754055379741072600921945618802028815539634564797"],["13872914060173858464219738709183881522659250937619919374295599969771619175115","3199149302018140217210375663847837683440706230125736910163921796331069076746"],["2366416827942881265724964351177931881632246974512118808937252857876840876847","24662046182928258289041706664863578392385700494881632792143197718865730784863"],["17831879891401852891937673039584002429030681781666587802138246268929627457230","15092567531281171346729651984031367595011334580339796241129890110651293677818"],["21928985535360451895637987545167594077177320323436406225762722479559994653508","13926709786797342373212327656029425091783260089464387007189118825268788231295"],["1074753197506263641159676829016658196633252461056989965553828410394725975170","8080855246079081363725031642999454101808141545286890858865684534274993306506"],["7195642914384557625818976316699372266650892073199311448308413144474143168101","1304063105296993231795870722081796196904001835971619513903260883813514420720"],["17836572397973442621732813235226745276110097802005299141720874450751033403389","20261892068537360146234377583493024304733272703272560946414166968569932487318"],["16383557380416620028589471221878284195274945781997410832125979205600427675946","26041937943214258636036217391672001723626370205528777896131261435473577298007"],["28132643378456733673214058563538465521702985514903546753756572389161012513688","18388520221155981144471400289335509263132313837105369420983149376897639635093"],["11220650467044873513346312459771959166577009239061020348903446459705137190248","6927719117136641842667815800642267895707831268556734197819543600440383192621"],["10093146829458179179232183501453135143809338882749375042907100850368378502110","16949167851715521412826682092482067381745927047843043524696926564346156564121"],["19788699262767672403409092855208389971870100304854506551351413679632168689525","12956738533869964139170146750468332440110521255514757041828179133450884029422"],["23789377230984871019400937904257995446537250706722911732376473097364718831733","24708647014773309299342438794754110684875196136500267954348392625039860691479"],["20091521642317086986871279437330137936518988410673970083657465584718743960132","4102347436101284784587678377832166505517096716374266132840485908933877079925"],["15509736295045533410823875289092996892755348871856169878456687459819915533068","1652515883531952191410135537401727434724401637390469591619647365386330510285"],["17631687882288063196611854072381156661649572486327767112736510002586337474649","18405547325878574378571641447173849392316891049077287118543249076302522080578"],["23134102441017098226804079044416015120354785739619271365849274700022378816761","11379224301968263287621482258106036901180117433315194035755067265831587138578"],["16750217296348842527650264713138043321093330826541525125220646384268645455761","19863852739565934691670235113171896037653294947906493249638782514318775565895"],["2087730326259208280514424701694473118373274674399166882683237168041789555873","6960960700633285929363490822320086171503427388036823753338789733952554202259"],["15773969954307831532050956459692265738315868762075863724112097007118918319567","17513378140215074887818585079506555233107154458181930857910490320746676984798"],["5314347383868077744588814409796379440956547543408421335894046173503816915183","24793352064799619102264145868656256362134993125811740752540454336136825045486"],["7205468721813040337259422259930151046130002238240561089191895542993124773983","11656305089013015291936821394541288580971886065985850355845957262663069504574"],["21961584906082640801325003252708725909374624277286121456728511571118459319202","10439748292812842370684861247607668909931184288614951776590306005282207883449"],["4202803544929355946566860914204174988819613095576745357548619762768049970343","8634579211062471285469963191904600837423500373995103082451999919563944706087"],["4852662935585302548321572380406170492908095977459511783084031958584558153479","10832637304683698437681891169997909756250520666751995072581059096449022527151"],["4449903875436205331523357943111701761935267738872077419600143413333303550428","11463432555688058761093243621229804349425275995362269702316518693327383285504"],["8937726028830003912011624103089034375999239814662852848689458357057318380588","17732294235737350696286858577530699189351346589056483605121179489754867542334"],["13961509911355703749741977678370087384375209793300702106931182317008286694815","16464155461112325360420969119570505979051078271494539808594335822931764830313"],["20176434955935883030306332383709173240469023520266204124822050686633470704642","19824239965801499047286389059530926401059380272631027732402099193506338098855"],["7261504615399788082725825966968689204369097129295668731494055803034353501802","9583850811933561155654639317903343050854978739073583143871580918603186231784"],["16815302339768427301604216809282277751133635129955053136444912543593446766888","23243702688369883785226149509799429506739267199980963794622537359370333364967"],["8391148354775897544682101424182574276412176761247863797515726047626388567076","23214941227065214636554787246779523328318163944289241391031825559150964036924"],["916578966466119307379661276966765162221778979889057355028588624000460741370","25609792724936461130210673247602320661857932288842028586964608576167472248980"],["17764306336682535916483435693727819159381515507839124640415863391309843586015","487853392176712970269683419679557624918756284610312645756145564805583022938"],["22157498461280857163027978850516257186766631396902295335973488878006704087125","16191639835510316004210698328774573140763317219752990121971559302360143503016"],["11419641870171722568947630987646452983634745669825940145125133074837463678904","3245610577417294605503011670186760097619076184481583894369888337409175681173"],["14264576364532139430866549630891057827108829567316889097150341814189858549700","21540493308878049212512867224092384649960757267253890098995145089314527131727"],["19171959782556003110707646034388120837708573412640579530287805099810750183537","24579261459503303683799732234806416409470668905692649554643734180907250385448"],["26114818453661382911743393582169524942435721147888036620173266389857586282411","18520797744684600342612904257159154763811462361712002625959720525490845028656"],["27800781786794228483135853753781171954655921824115890919234204476436922343596","23004502592513394430154970270602746951819412887048076216415098623769882538407"],["28140469681378134777278388287151530291391095471085678401892600024149319323062","24273462917983934079193820754757512538592375750147829207583669947309189804276"],["4068047617529391824316085007929157616283894862649004453362794716569010936776","28319734395534019558521632447555080677947322657841598380378793549083595024900"],["22225901599844783838334026416221900803775162140936870924107588409753418530831","18323737083571085058871996494382547169046266470891679681108197264239214259580"],["5356171403296568849801430867119154070762696676434223956508738718227771910389","4853420965946938332622135494660070834447177874139861191410858005289149657532"],["11556813093150933999477522389611765378870514306235544672037168886190363306681","14639321706778981951222650028420802017115069955939476923115127995379582847193"],["11603145309554433930460866573127455138792587073122834552750855453459560660006","8373248345316024129829713686831774818555854087710910292637551150313156351227"],["27606023238779680084108019206855927406968397205897888103771894602641966136169","5592392919853033880781886069529436191603870804461798276669601954202653663886"],["19123412349844722514837885862402990163809354251600285704877179394949855728503","3342011228041319741113777699606421796293396070727489133307682739044219594642"],["17267219759959112324258691726093548616325040990207988840828971414596836886153","23460720223146165654390805203067465219619068301699657359533290600886586508926"],["24314441604930450464417462304266043506867122273989238484808226380554353628421","21515044065420876169450916189344149447766380016762283538438246974552584055150"],["16877331102459057299219090570267390245953927090514673800674171147359858926000","24224668167011119482669803804962702498962730420571736839242649043269026206507"],["3236409101704239960356236481668801523632760379107267768008813169557838489206","26922198755374788305076000123241306111161168562745245262755256653377848179122"],["28506276398758763422957286931645774448938456617072514634725677932203054883672","23215833258215167116108999681861891079298431339567182660862022483374700379775"],["18254762509203083558517014636413821269151464879339126285676887044994102181299","12024696260640489680553622121869991021708398033928236009006149666061493876199"],["17693517853575894222003607664664840199346756441039974857547130802025182855067","21008478071758206758061709878202604269211251338906444798406409781572477131003"],["9555115693767477320284201212676064495257965334318575037849900062777286007495","23838269533890779631189803807103328867017941857031891360581477249652700921399"],["26630905272160274213407060898256553122530487333457100885971844371582327729013","18320993859928082259941495101153593685706623425950378530532920220769457598514"],["1449116074487578164611853758384098874276440484362319019041138680844752470263","25697822821118397937341360386804241302783511464780522047268649886836936724630"],["174107556359371888987571545897376209259221487766650154335046297117252744179","5490448673183126223066284216699093193357144800809519265983474473086038944343"],["27260188277873270117903733921525885082457423920270120930099615021652055708029","17560214014550788933430407863571652943005259287181165114746426652142372151236"],["28843484777512878435871707002658486768970639247266326827461364449326621087241","933729846677960191896485821362469984063873922404709644504424776293324651724"],["3528201516848601016056438483352893372246403956100325385250840022384919527809","1375363387230995060562213703555108038362400195743953761999822782832530783093"],["20615137430334267678027633316449306473504134889482946937702644654732416408239","15313475088922232143316044524771532021137929954317198792126319379333998344136"],["4853314851124825054425244035160646523400667789902966400423569698469706582713","1353351761898253940997016208825315165819566022079665048345260177077807276464"],["18711167311694409402112986042533250528804068588592389844404452798496231225761","10163931106817556886186236265496393034186024534641409408692112700197546443542"],["5155519487385196836540330476509099096794871602110675790751470092690667210523","9211782644133725437671006397631177896982509645055436293112424948171766816555"],["5874403432421665953371956698208906467350209265223159031260875322176231129855","23974012616804621077356627568114668847864251693663183035978324831989489171676"],["8907655250353416451435632225680880974617920964545799673780132320659228836886","24410296899427823394763418997303287943447953497768197116401418965427534443288"],["13423079620806136216716445848028839596960983612942716812665740698540408428441","2345215941588339682299528402834167060130139313746378806376760491172698327667"],["22994689053790605196203722721792639308068189867243439081123543986495033397006","5475148338650850469856610633991917879189713086880028478312502593255843286813"],["12076232925070064154617222120245054977767343068486308454042097073684046956243","9249763595097377034616301728521672878472031941098782312619432236452179566892"],["13371878660983240576050812549116725416492504842172537254697077514604892318816","19654988250912899809547350633076878735179192950458823431629380826857765375837"],["21198354970688931294292155779474649698465575376440511912674360965307384420156","18785795131473257021880599636660534343089731388744413353840058644856401358853"],["25359594837671015638370886848917033246471882853550950517447581619792781083341","22086673512496028088206591375849155059919596860179774651173707620032226487055"],["7084170920373725397136952016396158552904576712406363729034179055238079049462","9558537270263953756262113737459187102330897717362339209185290893312215317278"],["25794510710802664966281820938691798838618617445956387353420206563641257070462","26895794804319716625325777392009919258480509248785660339447527448389225946188"],["7140194718090450001526904356172149173591264967436158408994924024115888524109","8046650896041618796261824133310673408360594049077089214567009377677936302177"],["7520741125241510749857161908369759023761347223208300649544782438602808740753","14700013988263418970488859893715237455647506935240743927426234303681219189808"],["15079341313979079295445399497768939286632679050208669735987961076533410155832","18857355008801183990504337523215435239118520752456666442024957677773085859552"],["27074549117174346803756594463391992585595335926168448097839566409327864280677","3029010231618693697123007360065969626091524973994902844052131883311402255454"],["2805232341342903846755379428173008219374359957070589396804781296794238939910","6389174288315287211127683064088684100130402435009600750735339713417283193474"],["24650579825110597758201656105135665776743327770284007234321290259981010152766","19518351384603958271657380389407104680110757232981387515233972466360069583696"],["20879857371117823360422023397705384761881723137792632587169255998446971690503","3503446394967174873070063183225463345111142346130071717485067736265393612506"],["14385744959117348535037244852073075238691029431918695794404199243268547411134","60984639123825079380145546642342217811431491601420314443622022824226045800"],["808635185864564772679299421968699972968970370543191707143888058885907052743","24351042369690433227705486135621704944446235242034387039885419717230286951169"],["15716169078799384406692579402229417271720168196023683331736432345891673729087","14557972908830476466091947345103741631493239772707627625288921321175789806808"],["18125034362655856291520355533437528857491568517905792611025168998851829510911","12939089159097917798396597829049595193376083049916766516770202695997181299566"],["2406676299546354346997454269261446907989534491430064267830454883086401753967","19904977414765649878971014631567282863281966847282658230991623058782968435707"],["27418816949133155982898213075483758518850753878119893195342413133159678047824","19304656546371134905509018981240192053511199346761684468867999051961095789392"],["24798867082635104174916346123772089583639523275525472236724194200729267331135","26798524576299503690158750059088167473165804845121599531567680211212498101146"],["8255299890808738548771334802749880035761519185168750542203356449602640774428","2253256947419420923529505092739723203251716341060714792074398124622685124095"],["11450141874509445703127207761487958001506641848265636873268098815021180726652","13147641412963547930448627789344549299648424869804936989099966361963013387251"],["23502815067906972185005316305403506376009351643715577543399385078266792946884","21333001015431330854948753570718176971484176683360396223261540358220085534578"],["13328538253438408780949011835312833260771767311022787012301273056671519987527","15973501785695055988533625415799648787373242788970555063057891398259187793082"],["15350370148220311655932768531757039811726038463643465436682871609973002411004","26668375732343149384430752378485292615211877854635187899818442273762291591851"],["19524604370799976479277384835439788552022223685328109226014234994180129306179","25087759045166408686030356000792801506743920170147142560538267625004171903885"],["21962818178661853130956434867176086444071481593146216404515077587209094779325","15585829598745991642936635734526105624504315867222123103323045948340674931009"],["640527540144345278669629601002214760040403440713248032433345066130964280928","23181813596579930657274440697289961788611630526164921311979597646789095577973"],["11738773081765642067423690703587586572368221299503237061020480884507530018834","22688258586996488161193875462437194093320043132592738830946390161368326771289"],["13861698905607949184504354285134546759525423595422681571622167093520562669141","4158133733992724236600171765350456017529534520247976424452758939948970698551"],["15545931417672605933204007002762580273568342156740861198574015683328756201055","8786620966465301021169847016433657444046139937251586804489469399691580425416"],["9039224193235518413385607263728245727707528574633304950937352029083421307541","1655329049972082770776428896242215867632932585993165701339665717555895869693"],["25392364363927913841540444391706492004416988056277973624314548346543394711832","13731296108142889612929250840164759513542163396647490674507654861338418511892"],["14685275288664618834096059030877873469935568535337784398749451571382077251423","22499092948340186641658331676700694871529619788508814618477448364607725584248"],["14655248204638679611895500086624741647243795566356956132889737974234007718909","25932490629372963805070928451841821908505074987608020718019680180589864580301"],["20036382400435340102580403529801231309899749464074328405187986321172944610025","23987515565461877937760766872103788949422841494569930445763770874354183322109"],["5673858219688516292613390258375947230761241077956483387843128520668982017997","8935237679600068208970057581057092716255420518773518941182229208056238989720"],["3968963723700464585797545870497110066211098263787398583490226538564577870435","7614171828572484111342682235644746013209715482085307332069897884030860502062"],["5064130383530190398340054926670125822250370556479004492380929558656942523574","8348993427602184694557496928459755419335816594219529839269898819716524978268"],["28195517042297369295670421501374725954349608640162130064308409576847512769167","873607729099598040059529596297131036639125039360973386643177779879415013954"],["14630717419980816004581536772881349445274862859840890822486837116774433532540","18950575023375407142885361953916490533147850668183936695641380253534184706943"],["7932508500796910181941449760105976974282082489191407663974975819640598083890","23082780408944345926693634825442037134336654964394382665745083234923630003559"],["4599917243941480649975221956680051659646008515930498281627512407530284042272","14676562406420530264065698775366501393125247218626660138128268516833934360285"],["18424856697959724022687403741856191755310211058576120138081350157956946407382","20042892103045763857869912845213864743958722160628078195912302034244862085945"],["8016196569373258324468326962644097647846008902265007117013383881284326265977","4899232379164502544633906878950064205429316720104310253094707492479525575383"],["10163431223454987221987422064409217706706840483204241331424637069280189139690","26413796743176388054139853199505600238305753433808916260013210319588676155453"],["18112855068170410481066225491871551798531590470210161220506826730163597355093","27568259441220641880710261732927458517062211893500008938808609032108584691957"],["27948057792930156710609832583336899796371679964571840742561157607133723697820","15345235893211761712654383666267445684583719843296101226445652810479649392715"],["2169036652142043325109861949887724230572677921495936010343124429977077061734","3352137492297389626212984138054586137571854811645105316472562473735554866705"],["2678520049512880309042785309042011226742074734233614150383159278804890126527","5481287749359984066364460564944849952130404178024410641860289901324667801656"],["19779230970583077657888339460882175947314001720628440148191031113024121308923","9434734437551684902784789259809989651989416527229154535490781461636364207272"],["24492234491692961378264435790003875509310963043686940343593879688196326961294","9109669468940078512452278142830361369411929552587275831463941613673697141935"],["10179304943654221268604679648218569900970977358870470965104634115340641420970","12164447833901328571147609115918904127716771481512736197452430584138080262145"],["3518653603782162555241807638238219845929051652844743289788238756018673402920","14566086518671900240787154748515328380384319183359196516290824200880580722762"],["23116390353859209715842150018466926996049507159071949976866667088220094233481","19732712249258398695232653781119530782449118752821274577584726365296849667592"],["5902409934291500256419843424433745816983660992779856577627514451855409482128","6424491818417027484841979056092113778889370704556516292854495935201914553060"],["11992073849055394269860842682240660607950775356236278667469353651027133281041","13287980402640050233264750055783962676301104129849740127712396612343630522392"],["8749859904622072305590560841509439853903816399939544814769564365248436852702","8850890653434246513753307844472021659768368049169804250979411972968605744095"],["12502685275299603733047093475358245266978472229076099305497396504227109547498","576631894126519589658468433050821592479793868001364536533909054404457120497"],["13508859316490388736463235007940177165196563922798793696036309692668641479668","9225332706411703836501619780904287965360721534870347581939414938214069098622"],["15544350432678405925997930457392139788191149327864949100808552058473729598620","16401139022453399017253881057921364627464277150374975247551156285870977974531"],["20866390031164925466156099917806320545513398594767999433820603805813215733458","7061456898259897489720993213450090003254803011711596687664189214458758894924"],["25097622044651803883629300890968806778646658832190503604988281554850490904779","11844258765385444550283929004059549740007959795841954098146836306082555446700"],["17633112572645485762267983858571716342536171582485313407285637228847995012250","6182406443627037116444310611055624635651069063504097250979519713689527355163"],["24223006782504051439962410743797481536802307104745779514739396310124035509277","27013863361098083839671930710079297957565334580993632966961000513901989517206"],["16822643957836740971114446425974268561303936580716977074086802229190665521156","7216264428475296112329489936681782802451030054475858975014711143413290741261"],["13621334035244529350051031341868079127014330408340077954739426870233449572237","14626245747173030672454089717234314334413029017982105886496674479345291305373"],["15625203129831409086357339339513997590945211440987591484877709735481421750041","5627697918106984441672377583371343965077926058890093575916776542049690024701"],["16138140443588267460012529780252080958988687967531390025677789492865039563396","16648383722130788516639271082420936993567400986066250503707021071681370446445"],["14927062898763964555891868872202905020984596038501465733435818899090290667106","10141540277756848484251883183156760698058727044380195767813500304054353395551"],["9799999778602780559222254841210594351386906273578632703977580558946294264199","28184684524344222251016692476724040952941102494626157332026594599670531407371"],["5610495815125682812483212400440269981338170107927521299365357694888365645750","18138964271006164206711760720652227311993690159590857349493209805587227147460"],["2669117656331746764714887913563509525104118893130048013159963508421728795010","18176325584039922162359840995400039403350670001766892809141555475952579411743"],["8429397361256968001995186809103662065574061370831378840071809610456864595719","21528696360355640813957759063541880052087851784777117247244598364748307844930"],["8424069026023349523251529235072677443077865548630259182813088408737516031512","8658317587858977658864701664793967972990364234376802323971062662531533903076"],["214462187704884555362295679768539111895122058693711586599816559266332891599","24556556638470278702602584237963039292014401015251572072554649156902280508868"],["5661885561032740039225670909813240790246513798048525773339726308376161445145","9576992810409764484202172885623549781934936111668957893144686318340127653483"],["17591674726328147477696965485236164999078945221965482208648318060094504543627","19780975110066618832388025943537613828664614018590927623968499440374926860984"],["7637980442655156969712366927595481140631479799267878556232200137477926723408","20298821158837591265105287199500730884265805597623334974310525061381223784597"],["15804239652292369955574860788994965793644939723459766349743954709694585185924","11894273225965329308803272301208851170247132072626192924950929795261850505516"],["1786696665701483387601545883766811534105436227076498167352640823925287828394","24356008522998061226524896994869691240037555082291325266177761072582043933271"],["22135507392224094516909903715334544853006194151474588321713833902141250521532","19950414150156418001697126772076302034763019402583703245784980261456038329594"],["11372506137389907635344020747188245690796494651791017767269899494133198560124","20934669893584422440443089933626209702859824080469508111188437010949558432220"],["7503112111433805677831898987610833118349367699272718868875600640747029197263","21592531575458084849523334692505690006491863635948693097053202404651195957720"],["23548326293362253259283726545196446250807941298405655985595419582220981919834","13338018900928549649162746399535540734964692311716995615283565633086624120415"],["6507318003357020893459446518322300029146202164698064715922706460574779104135","11689494980863372942631498996831430755567492420783645245627830002032916282566"],["9718158150021160708181547227579724751721134713279429923819946741990652418032","11356660295579675094724291356504143524909689731240224980197348042827041386509"],["26507802978019096130956714931060674518152432566036325181307433864891215562469","26512353725199840958701495689534055851046984779768589644674058827302255294311"],["573724118733909501648712896859494040310167300886192480735256950676107453527","70338765152469612627423834850708770435185937900222444816243483885105463504"],["20440829505977892336177447144711238941234938730975347494264203110875441503910","1744340210615590735690472012224946536810287540415842630367234469467955613346"],["14826475083519775239258565149842784450479156429876757428448658038685842011485","3790801401943450686921217339745946011760479660828412636942463801102543145383"],["15046612257778586078660003959182422080577020385448438495619129609960112945535","23452195748453941637385613711333768655079479107680304298858107711209566539225"],["6664809357255072691262287323384273135888141642356124342218060160667721373452","7978834516296030848757654917276320681679132660496734931821728907338517815279"],["15823791289324076959357062565243502956972905862120960519404139015470352214633","10756832847339925660702474655586828970877372161008202219450161928070848652289"],["223049091669466600094024511621140518852900720041209407256423750604582688623","11400322729605314638310933248377249633641340356955807040502382352219994252858"],["19311388157799686124042612479482624576237767799862599795666140915608094108241","3610606973313679450936376982303881400819770615914585427554740408072702919504"],["12214193625971950412399636796719540921126125216427638320544864850919274797381","6285391885504752418491506266741961548014171306800532406859579517594358077569"],["8969845168203200689543103643056803323746142529185924762474130143655185507423","5695681188069260839698302282075927726595762085270758329542453879295380858212"],["626075752503857759156776672425193039267909221851150354038513042985979739807","27967523523701605210451289432894475419349120014697964892470125546488603230590"],["11112754710937191702522804913184251224901053123535680938870350552902078125005","11907652027380565637831676255418588309789065699198527341039358255793778801750"],["21464759625094406569129237163627390499304555883728114422318002035856092364655","22179601341112278017077121665264569740984033898619150483004052483696421677795"],["24236321166514615984829861522757362281015553198190250418776084344819553696234","25790223332385134814381948784688512333834154592755913705140046046843178774601"],["2483275412253040093739081713765504358162159183175307196119799455100166889934","2666973359864287511934541870325386214404373733139021162043567612148797590879"],["10455736136471520060658550554132030199036176503695727200643540762692130614945","2495146547691734220039537306053050272904912017133984012724560684919126424835"],["19830663089523232327919705213842841726995522426572022366896150925489315796277","16562445421780062459653491195980015888504366224003042562044627219317689303154"],["24438333825808494253173015958694667111326966293089554937960027810442812032347","25400183488426235294850641973773639232119189662528860214803878764229532701364"],["3779235482338992330939383987474821710399456407683963946892777655911550572822","14481124602491718369452407314313456458792947641304923428436118639988414214217"],["7156656634770348366388393948176846316816533706156741099667345133081130787826","27208226613211009856449965535981994126085018698714922812381173876246696153782"],["11253306167428966440184054190888129087669833184973509675499624826599700826867","25271131713001137247059525353494881527362443286802582972053358480358821934550"],["3795686588017808991055633658432539322821065990588524698598772781251341165500","18099284505060443412459894548960492929847342299104462569526739516004082108541"],["20791014750192677034364642540622651464358263794173489726614479275074074209604","28580089038797005735837327158951822865142543985516210095720309107181038268734"],["5733154967786882697607109310842612983096109974350347952744216372059713912652","28697223676954669907415481991292468454393227639805694307528261118569353129844"],["9977016515981311422480796757421665989060277359391164480252315701124358344142","5193104877482350482858915938200547938501640780486807912770427925086313820510"],["4590991559423295531122983263235121490470923719144647718974025224117718027066","22040703376950809179320755440081072348952314180450834598953167438611904906291"],["2530726831821925391897018089431969505140265828204899350673958594084892716192","9938388315025237126192526311265945232050395598296986103637841498846222795774"],["4770733521658593055762253664411554911979196415624302056226379746786212027766","19534750096301838503148990357901927178205172199708010887606746752632858466689"],["1031233659746172292654425476619074870364267582180257856266594572549028548601","6687849556300639158693710711554499408046426577525023598960908832377217875963"],["1706271461948740079252637880625804106668030235727972429823168987012935435449","19050146682719856605723518029179456307114203334324026941598787197600223237972"],["6334552154204940494284703376972922863310580543437627270367517444381268628323","3124763024536046962414259813471395011616366544575844799276718637834437833173"],["27885050495447589919552759313014578951893146912318317199671014917254451703326","15304338728994193368573803250320227910510464270147854750142445312792611440294"],["13009782647024249945729123367613485144968746369164627560802221842001071078706","21980746453714102798085568636697154662731732824486041492237064019378123576386"],["17833047208083898945481808670785219494810279675365071166511435291208912360531","16948808504407336389139119158367098440016527891932156330517447544526433274004"],["18952712679774607374290748858667845523980404428363676621994185936170065463468","26328900488988073635888976194807002248580631702392641416088550430768042291881"],["11499108208805065492706589797276527447696199814346862184153907183618865464887","9690583712607645161907719838500533063731151861422220952741575411756265509424"],["23245547619906282998262770387005561259880310455953580245744081336558958774860","16305707405119328787268556791845144430741805056112580344492577407292745068263"],["22209466924878297705867592303836070847582419468941365606657616865113478912347","25773171229244010534210802207695344525006686765920640885460274050277556547059"],["23580479288781372620153500223446957351843723124702101915972877807191904438901","21994822051957640108365663884842689942847118239685061373864579772444053091264"],["15964237571198204469967833188218194439859147255577594581021736486598668717655","22639917771223402358697225260378165723266271924431785405715477501292548485970"],["19772225119205738371430103383790858859265822772953129496869227389868738812406","1590026361779917773195671425667492615293908854078177455112436275061974512536"],["7086212061588194620822093099244427887664126013335396539230334858162505322423","10618011897127317229062147424315536272766961247599865525819566648440814647071"],["25344750658227491314659234580182479245232635809747506893848513652590408442106","5257126978479252292217659726205780885721294085579661213411805712975881772393"],["11797066798587720256119766021978152234212090768969417635790259991760559345716","16382764573967133136866690751245506505331772341045515407289396702832380909206"],["17907469324265292482438879634049979245516292756539167954603252684917154508528","7021467497009404853189126169338230594911131119097834416896299974289514317013"],["7990566532208073578478528917104111979833594161466681871879578822573919869031","12819543503210920141321199707173174973565013010400810806028996384388641402291"],["14023026183224919417886347778166538015127144032763022057393655804568171360121","19241229648480082043955286110913991427306706150617370155202249970918023252485"],["26115506218969303620803121042119937052576468573996261359157575114432439873771","10051091803064739612014923633092704111371711636181317850583744923663624421897"],["17570426546402196907795072162421951935495000209596882969296718889633785337265","11371962362534500895878999524332411380321600145727994589495396252866261812964"],["5397967200402894999382780344500495045850802521531472989290228817790652771783","19230499435141093421413042746677140776630631664034221261877338779972108076549"],["10007835378995490980263106414099813921125403668633287804222299775588899020682","24982245505650065320774556187309512254645776079359579956283618192873097954849"],["18659127491373433004214536506865897497162955760341440793799420652562427645864","26339009044044981526212322644607367880968142977956856797079837902603185485386"],["24136493447068069513656729391887653411191553710132032419375403262933858369850","9029733077577909054409472195145222608570741914390563107235309775246767838015"],["18230937714801302796526389314883106097218721661137916612293968446610551271152","6309211830021001304876516909270462292789923701987541684635063021699755310112"],["19510520893544714474899314523619290577979128869011007425916081166959807487779","22628836417507282657103550774681947726716771573511188490430494067117230870807"],["13444469348635413324460852556705374097826059661886530023915650584976858652202","10561968816145806582175719461225051570149052205017920180124372236031225787135"],["13622775760012088309833063163761985962520972359371600438433265667107093845750","16665015539306597981355558047332392481555445402987533700198722836738279886442"],["24799691708802021084726430716208788647550382713436164061096838693778997970420","7767625919120712775779049505342342961712047910537257181176387516688050244509"],["8629823398644880102939586839355941427584718299108183451354073266071918047740","10819521671285225325125847658049984836962875609990744383537641072053609166512"],["17452195772430932922561823845547984074433721702620598953434722802543648677297","8813260571934982097887943066972646169237608412944894601679492391573731785429"],["21334130846933676675902142245949763896544913212545719843518899265741102127806","23439531343413106557975337402187969082348398861034205412640626389994376261621"],["22125190927509381915458925285882694791010463498395231218425265606878729728995","9691203124633990941190559088117748474018992314105763548327686347372280235403"],["6031231511851476723981388977910892303312880168386808619882769097320296026536","9988536886883798360291293311470972776544053622113437097648791494785292933401"],["8608567372447009084206054146316204219409242139754951018476049033140918413131","10514366732217560533380371982727891587619586497264479205967717671106738868512"],["25318979152585875803413426215988507043279355947794397818616206268481802680372","4122749955007763578644224873892531556895542730182450208938699579434380501240"],["6336048298600963868438352404542243614340621384763910086487964349383434715329","26557166380747741183679591904577479287129246505529950378105430257321657389601"],["1458209084697434419108150048747554170913458550212431932158039481724935097379","10815397761806634427421102113910559795566163584601842079239002986139848687165"],["11353603424485787242749510963192132497727639348968020712926587433548116529454","5028594286070161108772834323813745142085347778587242331943033298122781249727"],["21429149769173963463136929604671677704557163819364186565249909167211722654649","2192249203835080392940892555516204502698919060602256855722321709894553362753"],["1503203475945211634824040634558177396797210320930359172529419987320082734376","16636206594929904506289819185444155047660894348001337771992388081166266053493"],["3078899552861312189905867235852429284150555223657801006909275073903422714368","25519273247848685596011359348111876668294649790874289453805437327136703397717"],["9744783209643673899750967058797139232696127604174993028343486442615038099871","10882720804690876029524987478747017889548605746037819564032363813241290547640"],["28491698559633443547384492871375723444790431580353945126912107705628750478722","24117118168195114484375988083428361020850313493843703728967339278326591904758"],["10228696891213722835177324060594245861351263677547004662777693872118031580883","19052049540504350335408388152352722421789463099930696361436873344804488067158"],["26715793334202264842260829970608064819142823901387695411157116939504972462904","235716787549974642854642535442253634108186840291247229309386588395412109022"],["17255534855410907761319155014372319996188104746958932428023547556253826518625","26303865509126484116781860273647296438771552096878238998509770544639096585809"],["20944391560036354213661169630336717293456587283134680818686143635095035653886","14294260055904390266949122621187454909420539447083590378694341794016090357278"],["22763006905534158800108663062055678973029606013221583960396875869127111075467","28224357506208076454540130398417553959348898595606639687559492197931216548743"],["4087410059054712428550935115641352247613153924734263641249393192602758138053","17485577835868177347197555151904412502334031964574465829446437984545543557146"],["6673952269538669955690208830102989418755635725502588470515326217689815265176","21921569339683744758235988752323304719256046579097617036822833804759004628518"],["5081173109389023715036480500325042514198112574115421132805508273906060174017","19666736749678199420637576770381524199810112008894731044789002645635891660152"],["26384021489948663923920240708301792536957228271999951749192772191117542182111","18502199562991863353266069651361139173521582626275832919263278678934887184708"],["17924829283895873307641223086960042816031999928282240542257817059669126453819","19461233173524656618422139002879653042375558195369577704092286754080895670466"],["4733312912970372511887236780524053618539441857909202141598828487423520856117","8030932630915786730342688205504523023718260869784915967717887825878197647437"],["1364358500177027407620646723736815029232965509927077163542599905317580491298","19111552241665721128113646651304177300318151651895525578804832564870297739766"],["20431640102407944040508345440509021374074227817463148327234623056711267234719","20421519972577070060714767154958360645242786113140557313503842927695463320194"],["18678264515765051924949204876975466395103388639403619820555214967327021218860","80230430465693002680850940053479568948358113266426630129989272262212844722"],["25614775222070675928237235822210780239244741528721516292445774295478148556554","13807029303652372203446926469233695509022175399230284882059959125161878365369"],["16855434736529457604283521875803240882413551114938845355134199539476698527429","20300163074805349806480856912251629446182744081867175113316002522771595551306"],["25948509263368230353768364416273428856790794237063120741759054115277210605255","24974151900843333647698806169254586464685662448829659399719986310312379773306"],["8710807012341964774321109435631919127658075287092759008178997090928940008191","17738373614487813534218686286589079399503269277014798744299926600990727577634"],["17352339954552929979427765805640665907087407639587288723801121744328407659148","751064024710858675557367267761975911460361198284411682214305936342400672242"],["8797193985727971270618612782096266490584161393360714803092510580665492354099","15050370476630103576585532530100044498241491810470071521306833537619802152106"],["302010863050713620820905016163578861341165186886905505273499510402648967650","24403573467052798861962391606660139513439743669050405104040256485243376277708"],["24217613175507018533827241527148125166062324466676116103073112028072466042268","24981490082640687853273975385184553883348754891834243472397160952665816253475"],["14895972712850844924140127862606193907949430802849708602648413584365194688557","20761537264472767393654942240591292215687892613702216217276163482188285839981"],["12948009459735989327830492194375728677555413884035905507655394566107720147047","22125508691326373314490546074747647506786207826655388763859529297124541106433"],["2648045389445598674665309570390328927522055928133846714307590850688169007730","22929587831539504130497365885013340979565940124303890973011715786897179261592"],["796235394108638885220108893887725939973567981894077925911088335603013663723","7808897790683911679579792577235404123010681368355202623244212975896418623444"],["25596132959101339281692696100920863258576461633410078810163537649573102153791","2219365691867328806583207454935313842698244794149729282689500612977825301046"],["4943348514919452579359813060406423656915535064237031927572695933815958721050","23911206130897060846258151002526685839398740878426976573828823168851246175123"],["412758022939728140856091234159317839006976465885736419574758142571238706607","5315139557621556989689804646298415230928876423091261282179132910873660303131"],["10897440296720400135569210153514574171493617180784503788956359322571077616609","20639647617099058191561280690509761519226470449335469009797199581217661879304"],["7156275381166029360814842549018406694546594289272318219073696926796684011956","10850309837410499653597110815812666043776822077020497888575396447294607334963"],["21572519902512656269949768781203759281937427150917418926862925783454928673259","1967153472689657856073572443411431023695994356137511210679508054457676630042"],["426468680712262811612808389814764558500492309646415445467096187551359412235","19498531520243050012290405173386352833599014146354877053371336187802489102589"],["14855906447703442542255804874034565501611481772324349026210513814316642663802","22046978338115591960999043004462207583250168775886740200070806327799723758361"],["25726669018945630914508530908283816233834166912331573844248364776118262559482","10613418218941881941305889040352863740191826101324401415535184998696581447928"],["20618252482213053426261891429602218412013252040011814635538093016361636799547","26033717443940262730660802079139592016642517204405894823143066208014838538612"],["3182216561847801048425048679758328758250179824251924377919627237920405009418","13822215397411047082257968547415319943016228970972045050733039300125294141524"],["12447173508179944881602833311989713745330004582730820116765162968601228714657","20278592515749884075850455544161998576336435798399753086554233228237978638017"],["20716504934589541203954778197218744756740740962936025598755864056390562855856","19042315024062100097217483886688462192522096708301355459688523383822643680821"],["19415182836198146042373733362262937087351243217883395090235704279165077643068","16349599151413176928585681872235480507123839667511476452172930991327764919078"],["21810090765960602822148647252278801893902615790603283464181746216505459643901","8093756519100909625667093512817221773058269588289312508015632663904367404436"],["28740448962242826785493372715184175111649945036992645962828971254789748900935","7224762547161731412423623436794980053819551214380130220653037807879137343835"],["11906865541717007699241598719583104230004637798148575258819915936566457680933","23012230700054339897819256892357389670369674537259812967118091669289365188985"],["18469655030618945944661293559538819250210552837355651693907547758350789094194","23584041205186684673891422272858451259449997184751646177891235757067079420575"],["22564755873246631396855100080567608976768883921684471118471266415957994045505","13040447572209040771702218793523984291140805279865818084868605365825472818938"],["22563212500842976278245765944922349784815949403524497497226849434773815850165","24185800745197302487467650612577013195361097084495123857434569148044898450126"],["27680374018311523704810637812794179164790187156539718934666338734543889476408","26973854821492673048518277965000005268454560262341051913621052713883451250150"],["17401697886580273431144779234409229948919231288400830011575228231740754052810","10588832661733285006435401318735325575995613541662369108808390002743599477474"],["27854232866209978021886083352844850759632011887314844940770211480937835049479","27118746617632174591780193624783117245580842572154550988917685162724751718676"],["24420255175964195779946577306669967317866996724659773919968077525831885173721","1691274024194741724913156202496738411596710877266316980680176528573265719962"],["16358378982642096393427183995990746517241175005049903077823354018855460178970","21390449443363477612312983983306847213070564698655867297289804131284246343433"],["2050963523998597972998265278570146363410042493368498498754441583383616611156","14710900697465848708856343011710334088787807689545412258393804197701413300061"],["6445650817666126487657579605821332483122044224598384604385421656723027349438","25243004446967125959713239339753050412241420955017161247523244812348978573933"],["10914849278385487917281372330250400268548483267107473568180165336937433279323","1634924399751375706530813863171083280406128600720249007369815002005800756114"],["3940939827927233901997593931703022953395797096016751154818687255782487872291","10222903596868387676247000883308468845748640686703741042521006789395554969576"],["12659174514769113969537215502549829063103959906983756860381555464261503172850","6203741546747933987095128753977522064159200890932078942152579565445307850216"],["15159464154050573755175592039735594955750823681275244279348550232418239217688","3382615051358152967826016994220409293950030101597577948385486069302480109551"],["2032741062304651691982251686752625433966885706358648099524717195947226664289","20798249268092235610420622879150774611286726950637684012940836963808372526833"],["16065053524657239757317016157049220188428650935561330270643732671554400629654","23950540849135906507039850234110285392555493613672857817078123162393538118884"],["17441964447582133834318060970224312191636567643856729809605919287362951592266","2267270941919482322803500843716363182159659074188457466667779123844722224840"],["5959486920982259563025239395396235398881124898894679735181016505357090660827","5028148912997714492919318591580159657446733269882270853050545302019950015637"],["18538743026717202996713462859007129246218474891915690650027917593345735428991","19978883304389278343913304873301613947943433235129101365131124987535109687131"],["21483733620224057736981920321326109504962470290222693238867835360198980392142","19544315259832275255876553453867556275619567047917353293825181182481042965329"],["22445372220531009648682312320383534005731877593361002850080203131021418540193","18559057679618684159841840306602981456182813535275468396853047442883998259977"],["957907648354899997246969167718302621399077940400965280883298144162141965834","17576411823508525489560010728484035832019630492603568017892402913180614943917"],["28783537090481734554583752451621172599560599947260297834836772115885801617381","7890818543716638357943538303874053152930033872844015816029388068200629786344"],["11005722745006400653821456417677627422408558248127403930070860363911958536254","17465300115827955400671794578630537388694912723249059893793517532480508656127"],["6272793725876499230787705302641988667301952454097405338958065356098787172127","24044333414915281758852688367770018079730647808600615408111783981955530472911"],["20026502727843935353342696696514788412160834088193793132228673877440101569525","1903967331829223146309686021084230784522630474947531185581628482967839090277"],["754340521248143896670360759245381764510707322050730230201600075571295214501","22455539126618788642062815865317952777864807884657684524874074948113956345544"],["23002283667978077597438824329580382012862942729143749271436913152854594052715","17078241312175746180189644218694708505220728687741584413356227949912787180141"],["20427175301584298941769677117032866551707857378184671429093820870069074192571","423386093011820150459116078565844008290595756002809346395174531219868049715"],["12963773794763475248220631619415936529739962616511007055923318906162731624431","25852505238660296057760501929026618790039551193297382470668154462973786175565"],["1562194631274659025477173467133374229861445050281621730646033055017035841410","3943865016865639034991715543317736807530037271855331836000284362946398632765"],["23954972718643909433287560267124132149152953285574162561407369421815781061565","248878674571446973689492257374316451213069316603997474885418437135582431001"],["19041622277570221475847511216155821666447711308476185924165877792958220951816","7699429292018692407941795304840329439805972485369401669209431855714804238419"],["10137363172655061411474397063105752887595436061931583254408912537178002339917","24664646993745644323879816419972223721359877307541674520908628899485313430128"],["8159066086025813627846257711734558751952704664456189077139567032591230008846","9767148536420764659706237429077687508084391227404475488134753689199259245181"],["22335095359052319597556087609323510602475595963844049256269147593405606007285","5095156244690151971365767148538679848808772816067828869848565432714898754325"],["16743407894436751671183369183449757176405357086388431230979531897244989014767","22297055642817810562577891592274443268321733884621429724938318942003327762197"],["24612311219446376996742535667229136712076151619093296533882071058163119622410","10061908949901208349046685700935726727027712701423580763105478252335759031595"],["24079167702887241703503990504054217805081498667046930437138961390841069678836","22067593349454381329909306044015967220286224139932868742803705959028712694283"],["25115358020905163549508567249918768331573327153720176943612370056002509383100","8400006034376868351530697152941954132213222721889290843536130527049708420807"],["26269380553306698655454625405049946873161404764923592718746765008937815373334","27374831404806094659489297972322069424254438194370858520308629507137642456583"],["21485744319582396329814851776824451902082993193004980590336171216432949171741","385109308024083674915981010415872291738946695830254727712733921916229849537"],["11537162769131432185720241245227048746640130762583329482820894623738568924136","16881321461719498689728837584782206551983754440817731760033008038809487242869"],["14284897386472816191713032989982801272701062195513223376343812977875411842917","17936731528557383252957017215813013309695545767143996542407525509792088268736"],["25196582152070664209479697757490545339755019902132504226351137554336332915847","4814851670786378295776842330178736100495586296336976363240299422191197411720"],["25776603339930007134079187380663839240563195189817333322209678283117781288292","5710192734632077238398595250631282001454096392938957781639004668948899169139"],["24596626883498467023568918165311060468243397386871500915513882394735810516088","17854298747471873332976393057906220160526830020271144895802972033211570164790"],["22273740614051340936511653135528123704983033331879292932874812133199027798711","9054645054743372112423416909532755168971248542882073419337241488111490220705"],["20138888885438609998814917395409557749066588169509693922551845662749437486882","25526753942795643218778523332340904276081937068559285113740353020879032193087"],["28611000559468031790978798818825777619197577567037767623117597363381207414986","18533225137221151060741408861868162447899376152923678324414970440503630734610"],["10384076587909892773394547223741488373372128236918787815161230600103875570917","15756670945757466947492580179153601693200719503915089244791875263984232179673"],["18882741726282995432493529495839726252010992899555562565554819459722555752613","16878735194060907471302440635949955393416507495355971560296291460230701711605"],["19858742807825439247834131617465255537544775305107127081019100571047480451015","27475770983753143374732719507763350762802081966014762252490403820433499189423"],["4426423471909552922586758117328202933755796496246679876344935751150732640126","26192000463327094054164691427910770168694245156494607460294645553401430579477"],["25747928677935094019069336798132387434767511496747944778482049652834447910852","10706826836281328631806052369392860037126169959604208680781471518485724079933"],["10145416663346753845606901890712657559477389668160451706317455904173679521253","13753796975366776079024057459575883069594945748731275229067567405063152701193"],["17186093968012021561412634219988663440870574513047505529982559816200095910627","3643419363015432032594940924293997551053057052630174534766819557815064941574"],["14363636732095050064238754501992287710616631031688618146514728127352793055039","10897246964326017419087160152930226996821133010488405730467610742067075263764"],["11603041817453137448323530197636276594562216718881662100194419302989926302252","9668739107749078915028293230626195354590291643461013658524956866534730302800"],["27711101438076034262653789579742995124151133146248374000493795964917328043558","13353767448751248435476907720685096082728346666513223305385240513415149327515"],["27449912537005060387509952605951860003722341911149316047431227202672524652592","25287928694140244704534593695663425255937868700566180583273059809024075450501"],["1483138957684832436210231648327666529317287246685557944343189446295737774932","6152684169582606904610365345334803175745775732068090151699515431724103205208"],["25368301016295937439255209711551037623955448021757698596437634426383618959070","10651745852445963637503039924715649571668352309245494650764123513567288201748"],["3716501134732463859565300237395012701179414488418663765997047105900274930927","14424708012526486844006036082782632555523985034022566499391146350215683983364"],["21517648399146988931695541113060340705645189982281033861153732262827589002369","19674503187244415214497618920995795764056315365121745412799551746860384809344"],["11457946315348517529693081517923916543895301750019789209323050919454175129923","15009831540755088019357281082779461094875759172703686706919202216412063992771"],["6966709586843167276955062121155711874806521526465568731906913464926870300856","7399016947294343787242066520839984136833505739078449265457475962389164383544"],["26491628475498632906264078749384695910943830562204118944497730776113639429441","901709448125819690391115169045073592335975057238668030671063502314382323438"],["27572445330914758485632242674661851143550291391831702867470579252108165065849","15659178596062134341778020610697147840117722732590265488417862452580413123732"],["3516467525483424141927277532808859844367110938616795890902971409613834480954","6720563962151973216283351981805171586322866596893618010354613560657018126120"],["9634810554059771064280112042103160596615725977825097763707219070846844489693","19937498067947868561589702064056518348232818726474446847717716798075823083679"],["28698224170924250549600797756640823883912706995636256903417705954386359026425","4150702048576221832338394444047990137278570368725668724782889850709152992873"],["3059067789251487975557008492698829622771867632360679654151017124146161762644","24189691155284201508077614673541680628751397284492120770480046426425061273818"],["41414458847267466136638635522447127692031382390894000897199093936088984022","14975190538206907790804798099486697450105454670735336711530448073560235029418"],["16162648566470827755504616545359560796420080309095290396871202021658085724040","26344985965801741755715293530487306456349144452925315994007054041267838507739"],["19876862987807145788947987860986142035653561857970364873885071671710605673315","27032903764628793077964940957382492588839343045675421927172824464145783546328"],["23986373377377611856297367476161267777952792807506981474451827775480562053387","3690997263048443202747854585067886073120683488476051060430420800974185227243"],["27976171227304327618157935551826449869747792314508934780288017181744694308463","1880207632913575844635374699939087300159898933446233937631283596542017511517"],["3307011065032287647438496984919844644123815011898044289705191556392012276962","26954068116080186393782963321783239099170887095195638620443520158376227473875"],["18422867742079678063024932448820067211168165144328822462005021642733373070090","24417117272023889575537580442280857084940544179122291301246602011358179904167"],["3928265413909135883281806970872867191051329490636180613876700049830051561826","13020238162953585583981311369823941966411773013579497897797195241788898442063"],["17637722372019672045638563735562785958836240243055405730628819473961066796903","24645541583068871855944764296459153079611237622761099927272181067895474477839"],["6469141227056717865778313841773865902273011645434263922295084529729959487526","22778808331199395330888040808217152994983104143408548545014714059511470360485"],["1166387345418120799787987209204921981643902379212927850841514312387128945350","25291830428088329811894117386670594962202619318619877389207010043590226690494"],["2946780181183419071334897520148307201583010723697489136365161369289624847401","2946541030724358204545392604191389413136318240179451492152484245217730091480"],["9758539144070271463325696859743526356915858556369287064212290998812842721889","2000233221875116922901095075982859924468188744924462699379207898783510021977"],["1711762813399327501494120550614172158086314750786085056699850285561865964055","10802818019453283707602188395320617861870600398950497723445111299758893020980"],["10236877250552973514985257746340267689600946995159746072346310350155729011121","1015723613971130281048546908122799399594753796878539507347195838077932874939"],["13306099538927368740788972873527135848433023276033632573571097921093389945443","16064982227767804792910566579165740866175117861787346112227147592643841400065"],["5486912073483857237672336750067360364793502909954773790390525146674741429024","18154243197934062151045332963113586262732509407265552067994296454891311073669"],["2996328447539961969958714801590161883759907730330742063636678651263289747894","23285004531873496527784716814185219791152885263467007495160553635808517143724"],["24066917853643801001695004393589860762373018493953255294544919452791181040322","9427572279040398373446182056603173337264231745760332773482521577952418761321"],["26234337353076293644882412272617668368658864537623685851437661594360984916926","1045241920983199685332081253513294971781973867788835301766174413890282829992"],["4540596121706731487979585543717829927558601200386742209209598773247184681961","25190594118275468073510662054552882962846959885838225527998758232978838672762"],["26032663382163280726219588789896651944078653360433100135484465636095631390799","16537195015662786230334126383948141948133941588437148311079569960599388863711"],["6248916045014883654229477851033225282289367437957080124423223877167641764523","27956830217545754175240734616977716544231889012347782233413151246847394987853"],["21997912039034920989401069965015084532803608719249766857674545855065531993238","4592557460338019825714938119271205118309035278074797176840922335791215609763"],["7595862071612565902188176216472140957837342260982359527803467656404673321285","25108196139077059056793920914859849708870411233082369172507135967025450334885"],["4714659080781425023249162774672557056383810061669125284375554250512000999303","26866974623373789498187001766675911070772307463952140354678471449485263789322"],["17409049175447482384398032806480659857226958874180608277002846298641634762106","25645317010561458088842191969156753443563275613050705525009678472414400975436"],["3516270089783644130792097138894889126599488623350685085093553695408667988715","21173495916411745545140476462677203332011742304009650411086559568665745640423"],["13747088882833423682211491593054804161433633423853588549110159468135068887541","20218677135035321902174011972330321414064220025445169586420320240951361617991"],["12693890693255980345359389908798450015406135973497840719076608643294594135886","8591665357000938583181757252821545894920972446024718141223504849496252506311"],["441321139150899060195576071269276202666608716409905185389413860935104551134","18588205924125328257029613418680487635347019921371608406090570404070259474211"],["5946232668798782745599542341228115417348163909614605418191654554720420151760","8948633223276267536992279097341918030923944413725425995467459560939010241520"],["4191305895426616412201871582179042781628931609121224088629373433390802421191","20440210847625898396163122524030907912317914115483654655810565391167070959825"],["20275665725951591373786851339282590680076918142332358746533219645451806982262","18542345408230686537154318875043576965368883893538217694661951091138750950767"],["27570732002779169956816299588226747372287214502430385511152347826416151973724","10019823862342260133996766030675166424263769988409545416856735859161540120224"],["22189245029771927557566552587856531807944136468079087479071423190202232132304","16775362488503883971421237967198292344896999028318908956833824040913539009971"],["1045341017669288907295213601603571238969581798956221088897670651687727909251","16293736929001109412003049744165625181399041969575562960694852026372498015664"],["5930369116581974085402752347423522913425661622496691498880333451989727126026","20945088368628066078978913002762829821719945078605895313224103204241946873446"],["18256907476448516089501279171692314067712816741534993751646269408863818878698","13538282382746094728855554175735902253718606337982355066551623204586310895664"],["14543281748415112390126473294002979703435434192291036297816899055347291747041","27906702528515216396941036944345379946687516933685933609569933919732794269997"],["22502196595140919892334497706432587083213385495692438732940660911126484658612","23364801591750030587031410254026701574811185367457964434831385336725236702858"],["25617167831138378195100883816373175420143717525349214579701197477919889397087","16182195572019608091035948389512690015107692003683072762709063072448357291137"],["14053922368823847473896697606118473823592284350469614125060792680749522171459","13696155525121843419672883829196125635276967354291131416258333644436542361900"],["1514489198434555854148020172822362947750209557900771405752833293541054189994","27726580761952727427416643430942247344837605439999683008666078663936245995209"],["23168287316103219448233670709287062450669746634691559147369051605629902960644","17065198656665317288310282151194991908670548968124395256654652574172900977652"],["28116513667868000768562408055880803054382282829112761782064299116257284593720","3565147925279492945970843883175657233539819330033669821041040187954186582575"],["6447683223415641976911534605401325379635431120776875624275992643336120774693","1809240543269061548503625606796137318274196092395523824486487503554748022050"],["12608919215924766199559032169975834879308094185626234088087719797478177270257","22160594682580741820602705565039964499615143702112780577522569251880786991952"],["8756565466875962963053043854203113354042868233371525608963304262774197004821","24586712760399475015785362501508005498998020579644901489418762429346028389531"],["1624089765451609499559309767816973966346831725385677145571545671822857977633","10487991634894360574756239717717544316607592639079888717392534360183296127260"],["25111990463209616911179388649820667505202202758483187550413648238437721741851","15424116654197466819176191597635570730576690568718846175648023210608336431677"],["7337895754329072715169736704308518386991619537383496241723117878606328850724","19586094679596944973387994987821107837401358530428630764068621595520676186033"],["7185510186985600276486970037518091610566298145041037343440680780821487532641","12577250872540254072283690683076979374063551382289879274528735007758759396206"],["7736816637986624418845663072213964133906012863354850858299337039013565003322","13575911770161699408242412955364571063842537859678498677274577515478304952412"],["19882497206868276129337544561715670390834650855028517669875821190320639606083","16087299243857810228640055872996809887857569836759835969596768624936844882966"],["22006887472592696893845062697368297878328647125188645906861623980890115454890","7393784663099968152837193826302854042996624049051694636161182333183731131319"],["26034417941146249830331963131016224629656130088520974710734064430748065629635","20074413198699761683602343519082407319246611677436329461203135490490192089133"],["10345343791503109454034155310392423062577253941427304802085358838258406353134","20692894974015601923821743227316828856455597454609915175978129903712636953198"],["6190674093117568384100568284967230692728901050089454155690114232088575914869","24369096232993081425933564445776367067794115303146681496248878304702420645510"],["27693399943582028848590390085743476470188739136295734598664202200025291068921","12757588458519074677285380816681588825182103879352004557582489635007783248713"],["27785213442348502035399691371253180404493395159377832028275211556142678789906","11989655080391302999724921024703497384854462006893226499167601312583335557574"],["16644807827804241071605057210653379932670516798930572816849403911781186150701","24929642642609643236502620837805684442605890904682196705975850569574997238067"],["12716151477448703760748709209384290063018128950520286829684923609578687842540","11987614494250435579773006371414173376874416856320577493526751731150181442174"],["7935571479932217207951178966143480460861180076484054069902070248284808884977","9657184595559652451635392617694235521878487344249789681562528475161837756412"],["2629817416955664990870548506643413439098318562010772113701240601563444274597","6511134384135703443260990562104102550855394762935286655460350986958873307596"],["978081472443006664682360300687235837278773071241372278844537439633565228833","13709715025346876327554991233433632913850816844619540995269818108658941505121"],["13930932417228465409140523923455385561062024195737338561338405446642732978213","25751546733165810464646089015149281476710169347145840611921022975834747388580"],["10342182665446811519471471663925921277248161552896515653255416531831018566511","13219503350841957430038134535594626898432193773123676950977355903070258686726"],["25215836714272704170789736110445887220065049352752944350668486509364413654863","10654055561579188724768218618679478926598731419914622551390971849088939846779"],["9435012876683213138804754893249074536028002463131116316230772981971728321843","18973448640797061989044972499011397604720837713082653733610173948470216711938"],["11160761238239376987368469422397361040112283713028938794081524932711432522652","21216534647515279218230069488395663172314217401494295089810905325938094557315"],["15234289435515610544472792078267472024297129656450906878649808419420265273334","13296356216538270046944692609090122193005251219999180555175654247183432547435"],["21737481385239819782078490431843097219678494855300270810441110135013775643820","10617684768380078368206948167759173370488608173505176160169566388668095732114"],["17531127780197778872709043053694815325972928736108904976082822659245651915624","1934419610137074413368147642834582227740052470530133390237071752426593255331"],["2250563566345758428205170282505977544146027105507031167426730796303932287915","25871580951993875582401143325934512091811526383948964710834124323460095114332"],["10150209896908249395344192736972820890367888830169009328071737971090534708535","22331374823260971612334743862568753616114951068124532633581941427659857116644"],["11743500527517163644807462927490375180427780095326191256013890192737180019994","17399907005040724542192173689242332402710036966414952491113570149007223598299"],["15300291586016877018958406559268929732788345404435379315690940801834349995817","24433724223778967459087689355164798306088426327486311807489480043743777835099"],["2323182220460212201456296884441458986049269327776240570766966577504587571610","5805818722218503320375813865348980283242216091528933062351079785124793735174"],["4220706043531717455718219039117376523204507624535349694871451032863028770595","18763341399781405825050479575264672258276144447327641806782370259781846779056"],["20641692839981017706495021935848923078543659813969648454322937326389742410098","22215390159661834930747062666774386803023551273576383404739381973002069989687"],["27113764712223109614119344956427851088025129361160142106588676075916166386527","12588245367528758163512359813628014177435779797861537922998406196753001089097"],["15408852416706629977915621237615539553431285065968660459177436476954747074215","5264190617601158471830234714217819133103871024970098161966415116973113235626"],["17946246976345195554405503287979896007220439027825942707982997801960819824580","15636054207553013019967572326701656715411316632557470500261288486965196512879"],["6088385540685720148335708484948405627808530574046816727047686213820162926366","26352915269927997161400574524796916913991509772407952157356187924839708462865"],["25754997937022555800575905613401986450607492385075506967244899578015204334708","3976646726336369093960996405443851424058222590152039635684975833998454028137"],["21667571283521964997511666656981870092261816288083783443932974927513757050336","10655382630812739285063063204095570552570355009925623336179804963904197267967"],["11781924397830344650844902581729563810619295291891724194960961426352853715639","1262697401660466367103245658560561063760277720039649124905068113993963549230"],["4238524241449780955484126480656363967031046500970374089821039015800877655138","17984618974766581242297867819710269104329186530391993451904072572908617929245"],["787270734230094508124780987431661242825229766116944843197740015187260273752","25693628727754034919689984267252314729859703874579548191422780534873446349687"],["1183056630255246326455492415354532430284109604377368226500719674126545694604","11576743872741540307632389416281957966981287004681187543721229646759255600812"],["15927823350387344848905632711250126416030293535030703578378699546200800559476","12292201869081386561512607331117772075641624065417140241124529413124295237775"],["4638443957312455551606896623133854457706066541416787836499183822197005196921","11997306740020669033383842821694828001823579768960438499925577679702055480999"],["18711137923716276519955362129737544526218616142752618633914516987632344395929","6860388387182532613356733358728505153587734480865694654889290366010425048177"],["18026929561620813372226184756330034469012237449034757707253695423967798487296","18930785385735249798758380673330073672154385317845365890305780178115805758383"],["15805832007983298801713944796327021780804338556483435871609726549929948523882","15477680998423190766726319720371270661702663203942235972883542704693714809120"],["22961520561224340359229537959896389041551662784945854822685895974210426341591","3073521433356673625467012442773925756938353381525819040844338993151691018150"],["1218958449090389300230905869768722900273256509552025261957457899434377661313","9189972216941751230565112832330315157018145298473141436089318259745372751412"],["20010483198520855667753788272722388413362001265665798844481452378329469240595","9815215490590359349370779723093642185795329007804959325316394054783344914893"],["6865717423162634261770005861004638966892208893086632640697383795815056609622","4644208296803979697612548232898897356605629647052404073689452318003980828708"],["28871089349112609929713497219703617966392907032280577864977630495768785683675","20187501500639458678921430378848679416327407485996411053943841357729428143763"],["26466558370214259532971525457552334746886918584307450182212992993171891397845","11287165409314222915472274016953857858681745767419142378176005899591029993100"],["886835543136253399505173681719107562469924721795663742089552529163703363276","112192630572483761130249194923476771088504244199953573225009287402505131388"],["6631974203505846997470198195313972285527135913166076744425048889650097833972","13460496448727203689211222237514241485356941304683998160299202799863652130873"],["24620763400686593834826268492122019925983336627656591528241731728970575419421","16516985351548870069352237099547863854847434690027601737692551510820362788350"],["14062062288750866050418212860257635613275077570672207309494050453150027854009","5489880428350909876464770171482492405597645574054001766140567918647196223954"],["13621092949190628768532195095590196038694848450210460183820607875058065075473","11988145732156335337895597098355660054106785734287011727095891100607339968737"],["27526140906757728647016305951670760475144768199316894645618644489547171082675","10570119335041740178254311988172430868763476850993551866191077651141932883860"],["17896575409555661680536208785966660273711362647162535897133475995907042324257","12275249019636704615414077658210425579256925142027149779125189916042741588017"],["15063477543855893858881094768792456837853245653590229136925252142957121671767","1432941671574573411972726007378944481088777807782461719335263952953927118196"],["19968320713227891034858193254356279836214988110450763612190015334352749724285","22233328829087293371783494927264489494100412722949694136812580513710087020728"],["14941018543003822240939425455467909373288166065767296899196854644924260331511","20976582271500992335231866889085396294348776078406666964742508850754791987489"],["1338757916126891766669906259807996550576497274024124255500424682186956667168","19293523965715377000375271424194357574562735599748626079823699359214954578387"],["11305174766898475855068603274280017608786603568462138547810595209563452360416","3307280891511155568095799172028043096335134103732480669928193987614530259931"],["25619791416160494672338341665882270586979737574353683537879624741777573024539","18369795684119705188371541179542421937906732811120272972441961549939209871129"],["12539348457405501535149503515800874009872656914892243024632816516961845719673","25271400013652928537165127991011630419935719315923603552084923425237546048444"],["18389416301965780574879943666653863861493243849606306776111334525073679145057","7026097653189432720765482680053156717564308489603545272157071063158330141568"],["10038344450854693857844443626023683543256098289976845731793417313015137502803","19569715787330003704296906031282576083260670658389639950926647981671640894460"],["28325520559644863153548688731573674079461245739865504599570964722406013994259","7182759525453284532432382301419023023296543391225930274326722809585431212376"],["16395286336776398920340953020601578564589168748868011528937224225419387163191","15183150321694924228076945502900198744108018291449001803101434256004033638822"],["23820178061429053119563477670263115905227721683125631925594330916536451513265","5932498142427601342410187287020640110340025746354191756590781331204538966216"],["10194971663546236917547387960745943980118731424075090275246184853596713030518","7681472372298212239569488586330519308688115886332854555214912397136189908481"],["10086092837700819526845123514486668179793634509461086129253770702083936893147","1124740295268641981318498218703817988760446794352163731496350293785143377536"],["812102004440793193497009291014879733195379950931926445947678200304947675027","3142920114640356279362728149879277671647445112132236186367418191405445676429"],["13287397680392446129617017651224200695673578949451433332747412795605933042985","2836261036362621719990244672388028356846341814795139258073078132803488944170"],["7202709762587974825021798569412212487959220608633599141869384869318556043271","27010620916709861948200074000997205149856278684883098175387652550564539473057"],["18349207777218379240598282203935124240996188402060942581416074712275805709394","3091026668502511759316094957689420671979671637906275129454912894925021205879"],["10638416843753481542033420001363798450927071628372420752828130460975865650918","18992182854702790120846039628351720596131469332466895844733724895577002530992"],["23485454700942261876829303914956933616791374975351769348543617280986051531105","27428616833399659378764051723365912111836312893344260267112683808437730854089"],["8839173906953945424591170793415261072513803522306814795229365456295492903942","14853977910259620067174646321697391289065997879482225763477013503536549805957"],["7864644644721098321532434294166637745926959752539267284971693053735873657514","15433322624633527743321894797416071644615150878690137240366614889898846350751"],["1627889099445525700246507732735001938055217826671561562487341412659163049911","14471402641543834892455608417090049341856576109755004813176911448341835248752"],["5009513048799704830177124965522651366648008841651140763702899597539253248771","23569305764126636404415066998504986245608359846921451310091060004402576440635"],["27380793061904530694188545520874848886214605690843885543010558343501894938783","3897222444518275375482822688023361818206222514871919007863448111733980758344"],["18079253467119127250322543443456237259243311011055746072735170758205131664076","22311115338950078038435149571641073873155693288235132657363873117263234460558"],["11692544231579591648922191883193677821069756393191411116923570602063894957648","16859444818441955413770034845157203247211519758794031695704678259841092728591"],["14524309078148153924381823272346506294618145789318496996975454416276032334966","1730501118447308303408521112196149329022397132878627550431298722432808850642"],["27194311959303609587723783358330937178586477894337393376326043082445542211365","19884514185022117373705440461943786957741351758554909000990237885596659102056"],["22362613848027328156692511144069613961119922242833133421432903254243392240790","26978918067858179372949536786495679850702449767927125566433270850463105892917"],["19547235723097239895694686653181974061956461186603531985235442504696716106231","7380976718115973990062373551878812843631355149829514666849856499634502293943"],["11241873280565558351279715815128399529455671134356697125357975263715849739621","22958710805230733875854708306915182679093343119547598821782872461516350017928"],["14049231030594528121312705081710744125282788001173479781269597455799029360949","4725580304020935245301768513068950333048364791942632542017360206673470844789"],["8005106818525022370099355592730320922462562261849626041635069330297924334843","19508381192650136382486906140223365702110316827840475012305765338101972742025"],["20261428800322482434422700068274578287063582626366421541666580310550789342403","9288030253697639687228451360818425618942067450550361502428377467977434672751"],["16201534690986219211661472334277682668102244394533588557312586838853391230178","2091151252149323722012520728573945080335645439003240394070991100027963933522"],["28668449738466381096475426212622476300363084060466014291961271331531888083814","25749937916405488519930003409914640644041081689877079061307746686980298231876"],["16183604149956943399986316224052678946909061071018595333912646644622471425096","1515134663108424908002015491915074194722561520134853395224749046108846305882"],["13245711103610453740103295323979184018989173195982918491072518988250704102528","22635589257322004684351495575196428143582278841855601203852216593914363428115"],["23818008731337068623532701357876770335961408665026520266884361254492931639533","15620553903064367296579332073816701501701484132258612659402586325146123716242"],["24165449537559684833425262679713750830869119117049751520723650122212920961793","26071897792576268205936909337390911335530545274280704578384516384756673682832"],["5415923593498534398361405058070072627785584867657655872238472983075255738001","20805869314135929613341800099282804804246391465255408919882964047222547733431"],["27190194439071012865562513570267701676185266581159433811822320790490273469229","1494992695185797088135980835998941331990208045052515670859666244306062371781"],["22848638447185572535176399484227815276287443330011259401769586123605505161086","4762632694721489954530243504896707432997251793504845072904235007569491818740"],["4624279827165104243513027060258444605067318590481343374071629187512150953029","13392622821988846248239205293562160909480642373858432341080612862308003464311"],["3544599920534925209557631961733877895958925405142609696297467542668861494133","20101144220508912238343797708368662386611440532591158520697122232275132524847"],["495245990122158416913405301718138857286166191633183093346051090526596366524","256313437694478042654325127911273479537247348659372108066580871021884984025"],["21479445654941690170967551329130834394037802426491104979069196009290341973499","26427548820658363950256240163672037832185647819983662203140190654814281050517"],["630458637404186471781567284824690064567652235813322457452420200765114350672","20316222507552038625907393563638627334940134097372114199632699140298789407331"],["16914422696228796189201701284570849281644418726615415116281701194058979639585","19198568088702490662720016893629215075192509206852442611995003781974653879952"],["8839336656248403243746100702685786090217555285697262900192681439607995896484","14493127017733496366849432043761049848924393939561641391171368249310453404448"],["10193857039401808935161519892506771004660331369670075518229228025620717856783","22469144133659736692432936085679847164236445551624765302001891123469176184263"],["21663616231848650516959225554778836487607178152694830440304414352788428118485","1466181080926831750563743701062227188795751331093208821629415362749174200224"],["3358871926997654731185445928065252472551866604008397774885491837239003277878","11012729010089463890113895793266583925278519226827185505782865051094625478854"],["2932552307837256043399117547138078034929679564178810928438042418201059299999","12991132029731409527924815673059251869220601792289758370432527196346234627477"],["16773500811235534899642752203920211549791723305298820249561548703551986554619","6724953862050764176665671440827687715375854246252840218178081950968799601103"],["28235787197562358652795569012137558038663935648520117403090765245011563218629","12772437500312309832781630552843853601489012761154805779249420930381824713333"],["8939802733262620504503528298838137796265218084275703022844721529920010770233","1844670985759310623397971517413722652114946779815863898841119442972100945450"],["2673314945863498787535786568891852285202458310973739712398817927119295615172","12166833032536686151288524976964966942086726875390329050124243440848604184433"],["11489961964415571111177252389062091889945796069030716032593307521017207378294","27891042070261299678786336842800020856973887705498161294663220918869077766258"],["2027585919634969634595661360091995373467746288986858835349200246727370138312","11056012384937369136642328174563901661125958831969838748585881771499944883327"],["21382175639672935909686261108347287571690160573988742457371925733314192319601","10205930499290582635847214804885691925193538101007692025783199593971273535649"],["5087969909268280544208656715201904870527102620411833679866745680470694953028","13629991557118675460805384832987664395160091676595895686584654742086102516430"],["22984239498050353399666487495426188329550481342543131080168797026836774199587","17343923723959848626376264584479315698129001716349129805393953998960042960893"],["5579452606531710377419850685159072095254742700477196188578062592683083872406","11622374392143398298986293981842436131990423909278365662551583755541825839856"],["19654242703639593900755924769437650724378520573188008910774710174395673371028","12575382125429556149505018696706332089703244402013401328219596003287216664684"],["3096766544100357195618200482276994735449471892735686855411745850508374991855","15299201073815849630369700214098250246113307514848313734585137983400162169842"],["23369953643874245267913892865837234104717391220854879197912878788434266547842","2589291188515395389379033801010165746753428962328126496866289782346712504102"],["26139515969215033934291687308268411455154041734341786054441032542688941290823","20245306947757066631496563821369460916609127193536689545916302266912456136801"],["3776758796929719995671691245663666330324598078950057188281004552682153768545","13905576029068909406249151946759097396149149688959626019589271233327150309299"],["4242829988428412283475647128454470982610218109780833441275981522198588788009","5916634332726544850766370459761172489485057908916027095941782536521176841741"],["8633065606521123208986022639466988709567734121820527526374626599791848229744","11757748943299453869620004058837565241766990683779473268113452854574420163391"],["5396328937306538530706668830136696841882955430247669089538235149101637361109","13252619561142766888071268372207506440315242130126497576673167247518524928729"],["10690663152667401113818534921771137977346574174880702692882634786102916285436","16952802956140443701742061039615328550749891118335909312217394802347737589450"],["8421051055376536195056234961700456418009006430076054358835908193373874354445","10393329051197444830737566366850950488791120465985682497897954078502993783484"],["8976214124779070863140169210842419070112966853701223958201876918413532181643","12839714504203937940302332671902799252253683837787937051143528859130873678663"],["18660795071844398163703799777362102988484998333536703360117016024387875574307","16315207838084496246115785217085932818986669567075455255712324099995669229807"],["28216855332677799897821997169836243632825721799555550142286014783346148760562","21554258866823361019536431891730763340566483779874322887740227851400175452754"],["8012513572705572896874550964910370742089317799222552060369259909421309832505","27646767067069397960549236192762001043796980511697701136829939419041991232882"],["18175088085339088767891213512856570193250144637473108492029678592102050044845","8933606467476396250267442852398685620638942398835216779726838673937408414890"],["2014564708664047093092679977430306566051010527575696307801225691040234155265","11941837029700112011129670217032923129145188162988249786764569513888015694655"],["4249385692127787400683620275845798734155668680177049644253003530865182986465","14958274028208825290313602738267390435708836894185514907686102538840351479689"],["14676265835730632302103866325573083334766319118409859583671694817734354910892","5644515987595703887040757927332455879317281943984879671965429227479261566857"],["6067610092784841585805942064212060919577637184302488845028029753112740427967","15718757558502435271891361707052823690118324833616361752749614985401087199048"],["8360096433726816637495356555815289685700876544575034906301903190591588014904","25553801164547920539689764773615726381688546619042092302056043696875987825300"],["6392184276702906383351489342544270865454818440720495510515980491317301858998","9682952926192168283931162011341478818907992099433264288725334570019931994993"],["21839224407305587158460696624866039502371512764403550831869835266656683024574","4572922109328027672583116701143469333194764124387897307849288963455589114337"],["22605481158700918263127085154267905559066657593912887716520112524434619532639","18433129035548327565586630584200526083063136800502874634909021258205402865469"],["22470012578105294656048323607362957172103583844921652607141248091089453323171","14057453912414463222908860529906090358143483824687320960223867250722441868158"],["12284091007292176982479572614718396036764738926656405384769123455137985823494","19732840537962445792361419276937348990434065109907955564273252551863907426030"],["16153445161571287690233313942843436189268287550624292449361549354494301766719","27223059906126320558481943792296298059948813317612700648973015655184919193381"],["12472684344505064152653841744983289086148907761963310564847081024774500862810","11792030026794162829766705225595037066770938644156037555606679583855117453910"],["21873164469821883709940129374984054966817669986809163541256306193168984174211","8599207030153056570219050893140164793445850450145474747211335586443778433451"],["23260765216725041627388554128925672659661764846230807191700699434462539710438","10955266022633817793923407910678127997142215419004699596534503915314006890789"],["9832270124573426518891515087332642908723198527916319829280879265395148274276","27066820126988382741337483003778679015301892772148869026790100627963013505533"],["2544378461564689062698414239993297928303008592479628994914042400548458934982","8137344295284912570824843192404860923448154275601768135652483157952516450442"],["18939742878599550827625242980928283346327593661325254715304724385095263093815","25585060630516177975156058365244717281826336685283165489478164156392326015299"],["8774092427531058609732063638934485140815658641825415025270767865796195506849","12175285521261939311698920337249361424201295842905458666663570315411288646979"],["27007712573011890387990571886245954652824343974436439170955919485236621423080","2704744496159307768665058759493971191732163276955094491236753395984284987981"],["261994064420967265131883653951760483150314167553769162168687513316641622845","26517509248068897250094997059031000164462926563288207128901689924926573743681"],["12208444808160598963797025476417758113900470172981652411490718125790691234052","16833803561291522520459121017385066427964699874382871073013204190637344455390"],["12848791575710072821540477998979724040109262529401854947807528698664147592938","9725093288059902151774048960341909167969758734095444053554633820129607814647"],["23500345225457120411611536509648545482741926512085295593765750192260974238401","4078340699757263134509973577095242296545062429813263012080607314391989445072"],["15891805690637202658137717843638663834652745376916956327988530906336904364165","18661566676147492189021215353761680743253836460278291800223003827069653138352"],["6832128617854508377909976341759199787755186697828925270585488247341553688442","8413136063379510507485970228223603358462388030986905875959341664911001925286"],["6310050101211609348191121277008042529606581927400601050630103536091457699212","2737198422542609988436754643154993208090338929694895558740807831185261143498"],["22122447482725947928031583746078659076621339668330135015365413087348051273936","28030532730613549254313805962685952120831411741553828173724411434573092022257"],["5877562628481292835988296354084040240497486524985695427550223375139868823969","18437854116762839522482326838421488909550058077948176089010594684185542336268"],["26189043876247579672659890969266765798359248795030644522806716283994024255567","13505095716641570274877256530544648266952137741876429047972117091904592145919"],["19707730488687750678122340676678777296888211298080190177202705627687419940983","16083646524274866044027085778150642210287506619283811095926949589896730931662"],["12388116333792241503083845008654637953027372312321925386603550065599324515826","20291907155943231748276293439573457335716292997361276184861095593128815837267"],["6520494737082517071994911456001754731197005645459623909842705687471981253228","14709384731877292339520122950219688364382648650803563707886649533093118568809"],["14276126094239098206113377718811606341608255823203493988877562747499180742375","13727693401685732992848050663984724515948639609754739330059621944485059501420"],["15724436102627277611752373069596072890933680103801356490607727085457793844387","19270826974884519624119083979023500874470170763384091109756812063991388195758"],["2573550434601477947716263958987221646369292810744126534812995905689718470318","1203156503988716664097362689350822733383365658078509701603435276552100118572"],["22345999980283896845096746402246715132806459568014534328157271276322452465234","26157295821926099380687350584142171379482191394960179970101918506685282736931"],["2813857891492497197528387788398391034779151245109224432697805464711736103967","18150704268396193366974547572008209950931603007756534353523083709842057117508"],["1868098290012344267835095651428032091077895908260610824653145980520394255571","14961363177982491213606465841708512958949896838947069536632249758636792870883"],["10636459493355695402500126441245769670742867021566412144309950713112660390213","8838184625420122818295489443348707842279004342258522841790540545764877979517"],["20826008778886123686862310362306320984782204774167238755998798699404350524181","23306745971039378339416363626164313752669588793283214168329750180510546443307"],["11887158181904392887134723173591475550552338162337613163522698115578149868533","19188536091687420512328687879763507146130406002977344508688352291040074708710"],["1806219376320665530268957108316018154005163656205675978990050638227231452404","17735687197253723041889510942078347234102438355942813409512730741158485247194"],["26730468393388723699818352450401684249045204377673451022614580466106091230255","5283695961712067093401923893321747319921609975601904006119250999043894710772"],["8732122335455782543407027344202481674110208065074936056925611922610537048519","28079959548141848797147490608438644085786074841869673744660859338720751934773"],["25554474656367372910291578536964551542764101961790783562391425622029136870365","23699439038760856001605573036862016178592584427486433585030186439477288644397"],["5102789038309728301639052190756279963857229206011298758076629532232588950882","13867875713243311755573067896661452399002469904257462121974719015117945808865"],["24435739320318492530658644398364486986503493620258305996517872075560552391120","8757163270875624872063437880803138230932418654955735183828593316022041196787"],["4605281935144408849598588193502127219799824253787222381339077294574378113511","11471698103286240984736352879083914899550460182154516558053495956063764538502"],["9916074973372601055312666233547697185738198797178100355615072623578366283120","4125076291813781574760415001343986125653860584635388285349646679033339508676"],["18266059247767667927622764122476460649684040457999026248063797057069906605234","20816979431807065093001202026362995972929526562410020155507785449023029348096"],["894899338082873097630093922612107421821811822478434563932578095750485433309","9871087967920195648833512352969811889343825198855484820005666976805812010397"],["12077753657068568659239082596045028555629616584062550708960087892233229869955","7416462426354668568631679485860631961765984288512390816349875738383693324498"],["17706095333740995473975626611853809828962024873257271379472493891817663534818","21241247706114568655095765082447473611938208752223396036803463337440659071009"],["1878949442208924942382063323550961675237708692955098660123630884792779832720","27510133073300600021103924042525144237642189675037578024883845763592091374692"],["25877513954536203858970045554089949449746068172886111173934193625911844339807","21144440112374446422610519686997107953026782190965984865855415282974209319593"],["7243691683867653074302883741270504229587732568835458752588768068497314225591","6846423806905728924180917009029767045389894971669700793676553192078984695463"],["11502035702989656452485083477804945929109551827700488192638431246156545693931","4579464654975749678782595683082657521060396234950572164900714755616620956740"],["23751162944154562661780741502290281915509773715393033863042024065413254595044","11095954649256191509397413457002709224908389863661368642139928550633214290442"],["12765516474479688812777255443616032962760702512878262582990629763051784836043","368114483641520624834625044664790673907349886558626336288998821903521554597"],["15432988769217730074449916898694301290806517588157608500810349690391921571058","7423921909710146397481966212125566693218191290690649117873594042191393914258"],["17930898953499193173824455972446556587838370445266058149438157580318298134395","13622852801067388085598487465590956379875458531294922074099622198579234938474"],["5948135461962126908776377123122278114907889392564913724674075351694121838462","7854925039025421235198693087477772993780421543268897072602399021809428217024"],["12032157100256712110237526620246448281448837206328508739145159466740240382028","21508702470394971720769837654574411076395813098795213257001524756938452195027"],["12313864965065670791486461273064658020837102099846921582901864844105939565199","5722130921630418037550211267154371576057096799685473385509694376680034914603"],["15245348063973641819284197577376826320530671020431075657260187616000387521665","25032401010332391648810361748764261795994509077292178294766316007994818636293"],["7700519624985356781488271978131602782841160447928997368323244709620331292293","15937358893744061593512297623933504190662444962808003216019129642585768307522"],["17711825516139277675632928466076476684026538359697481512026735809610622869675","9557473863577876613724974705440303286895101965195122287183989993677341702731"],["12253897038652951960297508781341407871187356266501641115799378272491817537892","16086551180150541989571871604002910912223603980891802066072004264452351870461"],["26960919031341350328040156749809367726952713967620498404451276587636334797336","19352616092742026416479506901302019282012735217486646825726395596812979611654"],["23445825761291519251519706129364349942393766373500621648593146643965359846482","20268928461174209654192677676219130533152806035907969293173441117098400045889"],["19105811222527045441674712910578910304800290425757301031502608039221891166805","11357860809246237290999522589924809452997076369682398166696033891054040976155"],["25320165463292161313019594192146358946486120205802663270770509870353278443946","7683413510733636551155945406552812085273484488599436609945280665354995650747"],["5622919933963332137284486130983581951212486239170493274998244587168611062010","15991402274157959608437972969433598499651181355342647081902108587812800942695"],["24619451988170312031189071547913374499717101840353908337452772727415893478043","4722941555309257244356640371495406560398085928902053714910243760052227076192"],["28522144352472943992960223049726736451075164999505979409796604226460627264813","25979800644742732015510157980305368879146725213835440262992708425160712423489"],["8009617284441011362833501634639823610993295723745999745853172255035181994658","2713295863913961872944407836117571432695447969683331829428169659651405001317"],["12647894879553468802856074347775230469280031377450725304999357065818889684008","16056174935633074136449590881100150332896299554829718178893586244313106727956"],["7135288496459953626753056954936646128676405009027824865160328209395629326583","2135236215211189659686772490158839923230689217229492683335853547607961707931"],["15148729731452265811534202697289768513847161918739478318733297456544408375143","17084985342692404332039572985773255342086608756754716954905502617414641285790"],["20552284410105419385461368487054932055910060467340899891495584596913311935698","6926381121985175465233864040451756945536900420650424106534365242763720365911"],["28334309702783436510791808645590463333989700366926188534216243858581387372686","5023380171880973328275173084356906993668232621227074419129144446022499363328"],["12129832783849745544871192233966595735875472204184240552519783636710223116914","8142238788887584534465523264956879757457613409876599657013974472259797942883"],["8766939526295762929551537294098654197631185866915535823528770657191083546116","16963113457875649876726027307755283386314226877709833379937891750025498023003"],["17907220406558611337609610796471079088371611803929153916137835980205627437093","8292674261161587699675327472231647241942682312454979589223712179524259045155"],["2998456238685834677115888911569272949758949351092321039608165956445797209326","24621544241396759236601707402865934268409181741681387932645436692990491406283"],["4918382244817098154528263088842743650269257829743906917714152194844161726757","25770568086009535452363186382278161361707437163137745802962943701370917370037"],["26926931918286200017802894804889127264016238451425288788630800212002178727004","21997840544651626014947237980567944253034342140220361799156258259914619029966"],["20821180761583326899570779255088296845920081474724263105075472876223586747597","5481299828250690720847092155696776645334062998656918848879938407140332494212"],["2078642318608423852624212783944050699272890842512338588893387456065627777541","14710113714861973834318657491989093567647778905560942594742450279239057531230"],["5762940200211923476639672319432174203125519171447205370067348130856625570470","8320809404838935417867132600709048444151387101299012429546295092688622599838"],["26247250914404972075158451259202552589905811229015174978802263317683955931704","14309245063212138019643292543623886906409181425875795849017915883117205942670"],["7729523935356165281641281504082312776924297360474550395241853819724464137816","24988857230049770519267101147050196377406344134419303473947177236277880442643"],["26735244287699313298460734673621530340918550693221151283752294323525315536921","18678530221870912666926977302175281843967558542288682357992437403162228877446"],["2312064191509173649975275635012092413521332494587082510069486988213791610115","9727859934238062021579918875630080943853218913809222963482158589474461160803"],["9617312334858628048195713734655118641461855740073712886603499446952554149631","21769176101134289896343768383607321792666801582547244333732068556118642547272"],["570107707434974573138393541900513772525552833666855844002303403181779130497","6843361663450658621876960109950361983730865971026685501947392391187716394366"],["19324858619284489971303658092597800080737827673748695105079625024318288704400","19696146421273110984671390478691658649846337684501349398429563065989111410224"],["26458762798061328309519500296551336241022450365724051280168872169640228627457","26378258975536368833226004104054916075429203651370819665967875849665816284178"],["26459438233398179114637266170906856756431584469896100730566923604924562423480","28578755286931221371907916408881171945279359881243658331989060259349912133034"],["1603919781802707676171266545061651772176593001344115426484280342557860437833","5010366326851283906122927727851108096815090972836855199117237703221289800222"],["16360261775280102733211753582271453814658096409758055998715157578036761202172","12651611235301366117092460169254509845218585772121681313909785639011072268738"],["25067550409766600867225552542899449607217351031565159436911749107704854573228","27706317863851612648820110031684566157395290106420976414683801201419878251035"],["17188236648156821231860483221527432252841460776137720859854890283231193712242","11485164263000060416100371962311857187936943971588113112242131327345171943867"],["27021756637960885851764291303457441971178745916987858724064829625692023156053","13082314677664014531098495057571060720002868985825447479393668208515980712716"],["14614872332740379902908281956778307369339793013739612546887741110960620851795","28322603121630374649294431356435775502239824578683111501984342840833897607325"],["13770715384375122538387741422198639384424980625840598389602912176604103050187","28465976338610246504214421526528783851322165940296584675852044587689926185763"],["24860989111076739590367071181985838632362220300113640298407826830173350030767","20832943777734062317143519548657880357404737898693597284127335436785936618603"],["16810609154060310198905287280790999171457134165676102171640081608293103090496","1315113560099252524314850857704417855124436748279361222125150058627116258717"],["1502742179811870556357899633958990422812300784564509592423364755762109841805","1621226293485356130884375788873152903907033941039015906613145937169119337252"],["15315593122828569482003858297756208239974165047201376528096469622648554128722","5964642343199420686690730442156504942885049949828767570571369312259924697750"],["751440051612298844347686654840911085497083608509875361143319479933746801838","20676692681619005096100082638511525097830376629579617857463928104811165679029"],["15883216108590610663545280337189870388278756177283408648175636841635201910523","26770511418970670456290010456658646861848346951649462061419532178184946509903"],["26959110428804024868891721428125751192701904332046233845215362771017489629914","27472279144619611980539546743595606459993924358539415381619391148211552265146"],["12772738867486520581355930562903198332575696701436538872964167899115323460790","18528515919784935314640396492916383514341153748169957444280805329842889014321"],["3963039548567119615586331745784752426776305578053210528738384294033124594316","19415288849472179690441324606327074414289344872648306087786010339401615898641"],["23075279663219052588248039457327105794716835797110799983910877190578553109496","28363103080355344187633827265964152094222601285000578965235192728306117218470"],["3324057744982521796536980103062501095918544352624660591468709764715750271430","1590439443143143790910955904538551617323004442398760472087898958975313082388"],["12490127830344665987403449277521889272690790341695522856835281397373887703737","23307318111328863510810625081342669588664644631296253561504457912256796847337"],["26221913380612890718969194473505946511411308205881366677427527062013554800327","21313046680897146993081913326065090536464367855351566357111969462621854523343"],["21040863604760771331066149554404143151080301972233763756694723611878890144160","8885384857724596174233556804193811849866178490858058813989168528017850426060"],["28635756200899735402692805310841255775104172885933791714104724672379251182020","13456029696932108988551429945462689435153690557236013012075711389218024010265"],["5053364954461138040601152070892406102795766511707501480996494563584002614174","4410537442135025310791677996596841732345507186000805530517261222057216216332"],["19788789306220758905897131646949287302625799800521485491334348407497684152836","14261840355442518100104031997151795664032258896042578557305332283803287299576"],["18197143387392454880694315310272388474458305996402470196683731857047933805984","13433500442909693284607371228082327480005919823267049575529710745777535383645"],["12885488922622259115905546941413028936780744755509758534738869757915101057174","25917653508231493629088769871079371166278663390865552171005579522602735299482"],["26272620081821529645922927936308739229063145903240202404894119025725817614417","15175049737033546606595601869865619553126217285221357317131195198918272735998"],["8040874021123872712760726737515281551872025632229669483615239859894728403750","15161028653073946277609145122903549928531896097598494475149840156555628770518"],["16375350770502893984265914689247756146422882825793093639251306128797281283555","22008604244520170801214377373173432325121846683053686311290632885848994674479"],["7562448060693979227946775717336982105107537062679349670382911336872481427890","25146251905791910814418055751939473724155279753988420367730501256945441025523"],["5982712144571218656744651757136395647690428717109925757782450742467581085861","26222699176966154977693279660256694260564357869606354718415780594454480891535"],["24091914241930347823925847126798172217173658867963948811902189471052616063748","171877360038782499268989576389539953105169944328199572413425718798344023413"],["22229528761927706840036829846432217462844446210880133969196573104994762781194","2400254521121739114968748517632348162490744370791867000568576644127193382149"],["25762469443609669759671204259103556477531822805772226715622567963750076862259","15216744767727375793921986821623392938588931344140010985418732759733277005288"],["25895877998204244351934188697415849899602411444963979919462423759562827798017","8746303174392850521629320642951428935626073024189860281106795112870519188633"],["9014487751244900288785689459902810197188550462714512202475680715469554968142","23115656536091306623722693641513483129613938075679338826976001061615584824743"],["5382560918504655424715545487639134179369285404890913398354506172058155946446","23231933151472908859669752187702268361963658284375016669060461175406558124575"],["27783207258783908337754522699156420381473747570887704776841521334136308575083","2973332652690512566991098999671372570614077467246268895833551517444490292118"],["7262870753491764860802168462240600691337327268556243333437516791708289441677","13713841877775006248415306761441527236795814893922092771316566597638486250630"],["23099545690881763962685248022021999457038197954681005587592076416353022375735","24129342233184929174850932012818809313388924602028641535221730038637484946544"],["11495921198752993469092586718623477681339304029252555750536676523118364992307","15075236845178454890086183723222273638134541023911217139117526614136221372260"],["19159082075088767831398873126080099824754367753648667228708602429324860021646","11984281503179412320596407225573797085581337118598000947690222620039637435489"],["28593904727395435455828484276107463704928249257173329267994013083401333114667","24556936964917249926388134233613015329973841778938270694759901333071503947050"],["5765278039172502942281526795346614318508493917316063517429219008612753651629","22479407629487283630787055768881281617201512135889128860305914122176706146481"],["23966685481842841793614443613157544996167730907811012121423363598185456288083","11345227220333131159542305930500306410962898237571593871228340902839170788360"],["13648929372562996006658981491475548487151400601888478028643514143901244511704","15877159619811116630514628128076772822666333822927091094625684556778543589294"],["23077902070695300428960784666463763145943614458036608220809318979155895449274","18748560990859258399095382389485821609022569459550079468994827683049849920691"],["7448556538271195270705956554932913500124799935689168424485449140444448458032","18065162587547706644961874855509003735458356463257996465897141918648779884865"],["6715746303873002893688648467903531428299512772235676897064260194244427568483","23114169905094198205155345799638394877591297320164750469430146600818510982611"],["9968383987095822130592010636578045927077558185178570490185936551457504351322","23391177527727519152225291484687784385587355904041962265560137793365137344930"],["22235128805357470123287673428660866815431453520058230507888247343953401117359","2261352437108262061970349413452149227694694654057317071390456935344244390057"],["3583735285486717820880316964587515126679627771245083389339214373509395585628","11070749379248815911649826384062071030845379436739951073539072034557374023417"],["2209379181353228547085103185574708784276078953682831021033407581818116913760","7188806640471713236813696194206813332085996792787658871816820567103660954517"],["5889978585718761891784702954848614388337112383183206209194056040345455445889","19163835679468552281976910635216919664515817121599939041741978512083248387553"],["26862333288173405655083823008664573888229142972897267509727404381820643878730","6275411587089622957840883028189163979417108109413288153603984803270398084524"],["18654766302934692981184155192951360232899122155398130208798071288957968987198","8060786938652155216695084888820532713080460112240762884914388218943490545852"],["16583950027745654698417236921030177036553404160587250620989094924507396669972","25571969758506330096803078451904559522314163108835602601179345592209504659624"],["6946851036434343442796350061629577296764154964499932844807257812815711258813","23478107303872864483121455528791223987202359373717513769267505714385925096264"],["16371638833591469251713338151753982339920131542442043824853101411825517426665","25433297383367875923055837302609695423796793899175264581296804266999256111149"],["17954641020949738783898372491689274842574527405838793458931542284346216692684","26069020358337554247047613623761304071360592023683413434381785226649980131430"],["10407435236479377384797515285399179525388051795283294952042011692340367070288","13143265020589648826364121316100956786570095893832346313047411568212059953278"],["10774490587551227818701555170836929547241572533485319511827222144812728823266","7927060426372870304284995163386504870504872445070007902527947493658018016650"],["24421340641337577384515962606797689169043749813354546988152215012522396839408","18551354103756014583293499464593968901656121206150436922028522506974270953416"],["13251888731988792596635184499161131075757303558226610655260347840803740098511","10583509733245676773486353369273396673461655150096707463811981446682857915227"],["11063021391193329253559071415964037316326880721611530266057249389880671654868","19289465599001625239683103951408317311449250267739931614116384902679069504143"],["18735178522103555778387027037683320227878844827155760682039951561114913641749","20486689709493105728445687442145613314605200570314176959896031677334484760654"],["26556817289964981311629878215180956674616877212943429998827456304965885737392","16585406725678549044300775027521734174915634115588607123020864924675503785050"],["23599548877202710955429637410318327658365333895657069932955490554785258273788","23958728744393838842128614408944611237295438231313350358786254454880132897741"],["8053315029222940497863163684474579241277919957567621516396529480372026125634","941807624666174985752001929774066044190763538398061329624985386381059372431"],["10208688683957675313706429895320367626841689931478213413123653435986126094038","4478844112467625868578373242476547253108371569873202354302456488698188712649"],["21791366353998173474261670703975804297154871585196958906771664407399562024712","11609703910623717182396951764331105826986210714473261901306869351489575840883"],["8398210149351595188501863475940971942589785233430418360618348927316176647089","4021657934713294341784326167292610061123969343334843563495161430161621242258"],["12718456947461708996553611211416504714126084685033290164174535584112765699818","8062661052286856277180553648995108625815899267803665326392953651365753504646"],["13010319932453356130032837459041260727212020307381884049653534275001449621800","16458028295490371659287269652796942916843278813156472153510528096553203511639"],["7539779896700118752944465736580670286585921497689683366021772163376017666987","20482201812787549595887497112904345112381762603518163816447985497932427181720"],["23295080144696634147766401363230421245037965041602897293023122720383632372187","21496296411360956832348425664450454524138263816822734960294253080722058835008"],["8145464465813935550507872229630904801703603341995248667634105358121304301097","26467319287426186149208493469018047620985822256491786512943902743437205148093"],["19644783331865300830712993856395191028200635186216182376544754304990430831260","19517639845166317085305433874727023723772194964245122989062202935939660298250"],["13371965031791050244402192312594271133326916311989338612054685851350718872218","292329657706429774345441146002553568470644709752231544055696713652606293116"],["9236357659138479204521895269125213274257487150232288247436002814462441099153","11520752006622832544155188633451041606287349232639252143244500982862267406584"],["4562575936902906604269011570003542634267960857204728654467240651539412287257","17941718163851925388408765659565848315085181510162177039101287870514653953913"],["2970217678593704356109834874347881324813827753668097327836352124053164358080","11452883560953821810554969250181216378257520988077144363359340089204361637295"],["15663715573826038720444958868874932882478282276496589190595439032548323931808","28865638062216317270525491464917572452904649502590144783978516373727798791209"],["7289267522972280744245655049414876550973653588029763686436949735579064059763","22935474456426972952132773505750731628840311538714393416674236696775081939596"],["13438141268425977633686128659038549471163741951526309455209249259400177975342","8413338738192506399313173881452182070912775234493069502419598315994465443156"],["20240579873636338543679921487885410629317369555378368244028706403929726440720","10201432066832699430432012506803653285040886271224115084269203431823197938305"],["13464993960995784909872794145635154664582367508355626111239059866647936313104","25153686211108081043105428716623359449152982993169907547854424529298657005872"],["24470074232992969925986411788801642984685563188226694883052933448920661720275","11423735011006376151703402048860630194142170321460100904955403298493820466381"],["16867037146839627273869681193792500668117715873274753318238274704042467446523","2892423377053531645580816081205460757645538583176507064185738416681743790870"],["27924668454184595855752701722266612328588918830908615045376127516944353047533","27989843509713457399252287225525981554460608311780114581710300703060432851444"],["8908753028917006615192533412905181362524986729036082662226857726641162929958","25418181053589403779795349562053389941252746759819061594991393043572926027578"],["17483752924624961222499850595467799044112797243833226170518810828094264638280","17654852199241194524066581264713900651386436466837439496382065283773759106073"],["21990567339508978196860536156883240913335492963758815713978662249050265239679","27317582280293702202111146829684468448545002971081272394172238322669261899612"],["3202450726990456953483729205848000590555966070813074263378194727734431847331","12362732182920256518416254069807003929513458985184688816568296729650891395842"],["26281955385785006321003574476529986880975908564691431193466030111294663952240","20858377879121558220436706549541110017298046164453520212344357631373523339616"],["8976003912194839523563587876592900940113366020201280133388406866479640613639","25533542146521017098589521119945133227845806532609257194292392904759150073638"],["13161925803901334779399611814011763158384769194562915421808117309589604550326","21868158314143692143210058435111963471739069998941262817770739062002901183606"],["25859819459453762323818839915663332379581681201162562394294827910146572020770","2236561279219945134036425130238841085790743038523573893279647849722983758225"],["14780223888666565412658051686348410084794773357193162199483294923843486751213","1213332467934607025384206964674435134900153101247628134957410022968453877892"],["25028020633119846413929730105172478283837975957027769995715743821579010180712","16835434129274141062941533460362330639445054307817366350468691493489000548094"],["3156546715757367084097973740392893927834762887890826629942941763194742137952","12842540656311469856506134672845941455739504251641332743421506941307082295120"],["7578111593497294078663907264983555776044885434387690905560941924690084526852","25315716590238774622058450145496114149036269881493148715862419559917475652127"],["2775819152882522243334375646288357426094524986476245837661803215525956330084","10655357536402750427335622811794612973700545612327768321500790419816757172768"],["25185967642591333224276143532281289772199158004260417694756615537248833620555","16897217547581734695070652526732097557390103898727333114630965678859328525850"],["26227246908393583938323430573937187445903613582071663573728843755947704456483","7691925012061211068603154614241148317432470352695994234128765066579607863665"],["24359793567232654562747824863786277293676846543945896470197612947074242668277","25981094102616358677044794350864066569627003945295364244937800750951055826527"],["17069521667084241327706159529540218850092464789218916851581736030325252516449","8640563329352760132176302067436168292113948486533654549522506407381152593335"],["13490172542045098931746426149498278593586805342204878155766640136020162563486","28673622023371619875700497255795475396104071366070901487699251124388773449404"],["13398345230153364510649381020409360408189757443362590957513307417604144964626","21592800586136669579182365912165743536940000484486310840568116257283834346440"],["25087405563226219245506529564985957730454783598952256263491296723028269726784","3887857550621332875339769183852999928142234446617737675531663695787925249603"],["19745082926074117032173703843297168726438350961214800115753744981008253473160","18009688947844736597118993168133563529021283288894808201501886141253453083175"],["16643512865987090702493898093252191872287035913896591721976450245787202128264","15334427773358864687333689349088513261667600553839707092026758332619864787427"],["26571400448625079925101136008764774103903893088457958303201683608785006050739","12545442572520257645213535649141608331614011130800241492350648209889888095826"],["1361161629854958383518875507070717727136039250048656742974220584796287632295","24129921217486501171463297925683713116768018254334164734433659554692873885734"],["19321908835947841101159153450917729517998576523603131324534029830828257697577","7752497167480169203971316075713821283386634409356852680030017503823559136042"],["7513441889253592968342113273443272803707339859280115256657527352613282743812","25480276798095576220055015848168095532131102383963375110180012355290844858661"],["18066723023176104029950785831929108708192060331133501968249681326269672909428","13406547563295124952210440597362432333679920284819402005262558239565302517935"],["8925428353355019553286710542832964153519021959739891913172986686923005714224","25570441693951930761629946633284166152633244141771446614911086740268282058133"],["9824637040627767796683371782402226896353871470866799397060434611966249228344","3418852293984735425598292117526069905022542659528078959557880717567241385020"],["9971063634820078570561873982612852214064319016791151819966653945409517818019","11301441901568409446630351873033804007776460051491313518869053269733810216390"],["20997867953495534739158058557968327265473212537076175664705787359041574145335","8758280968378669077406765114044256077633598865544196126587998946170122799980"],["11487849020053134670671195658436526705736669551156724359157281095686350315485","13032534686097598340403949834614690716262028529562356588275120667244551787598"],["10101246866161947625099926608825506184587873430532796120384321950369086008156","22468810214672585950515654558234386369795232171226848279557362326710681681498"],["12287456334826656816446032089940827367093347596957665896364452368762946603348","16148134214138301182662623558249983941729825069036267475597288271758615558135"],["15815658961388369360987663026815245077112844106303678693539987374035345761382","4952637421177148985854401512110149592023283762791260272087398582970025961435"],["6666825798013511072898082077986339704662623068635498124001906996306330218784","16776563502470120887235631891322445834960219520000096862533919823757812503000"],["24083892592862775984305104266854195488681468987948967558608926415571703299087","25447796347960922357173054796931447979150698845113767693402055475554376736176"],["5588141258482561562130027619570103495842009975516595849609705636213945571554","9184661718296155766724091694381384032210551827671939811254641542603185127576"],["19395376238505848477391096333353732023135266453204808559483225854506808868194","13619021910277382549995617279096315454651126655936580067483816096524138473611"],["15387789554078055295485274053087313740513450449725883535567447637225398426507","11199674801688899266617844334000875487167470478266728259964283923721129457684"],["20475779032025599057475988499420500760301946819886802225425784754555610162141","5722529762420989458655139349533994917974328600748446979250964036484169097890"],["4880405995421736858717648054798869608773749787732000384852454905026541427731","18730035680918557145351519713341296469651830255646256857901835156988115318592"],["3710616155414011948168115244651109182692949594421525250445197277475181123847","17116491424453455990090415769484420385546857181626651605572180288288453464884"],["6427299697952000720564481168378615879227794405572051181814676472783762660057","11394224770397108814288076076713616341782611134180291398884459710945098690158"],["16463448017609409233104893443358674783766935876060514160522071262539383368029","21353088759977545987366729058684150969466497226066768277210610530038345133569"],["27031246419077613275939289229975628129939561974909333458910740866457169230000","17092944172352406620480007410905874877915187805462361379537372632246530230371"],["21320303295098575323968504477877919499084643278937898165125948378466316095074","5679093696169902092588965552592390458740383448920869867691084867469591910446"],["17343308204168637836374787281349108254692067905959146189372710068255750350716","16759538146307049051822990615757492331589037942088985931481572753173351618165"],["28412142868556271780639003722035331879222427472176549423532648534487245636822","10190209742155856261871360763130479786565245869579981846943446538209436284065"],["10849500656224209569930181794364251934663612964297797480688644433056874613856","28583308534486198482022217307840808498240835531423899052535794403643053054483"],["16010323076685321260729160597287132111014949934862339148963907330272487638544","17671063534451306449172374745156692356881323846585482311855356339970264613063"],["23187176985843339406203945852617303995791000026671456351553802543237897199426","18253430815228578195736877803824744043464447440563286976049407087613159678910"],["17015656582665138445607864227048485426805633977667688415936323750797022661331","21188432158843290494667887049193525856631507322002418446620775746724787021678"],["22225499285082033694075673160880602044962121344201792569365055162755997764999","3329905083385244525999751651061045759725092877377599029699458458432190208340"],["2649639090365353968698391782930904187746002873814093002204812295114952664238","11772311526995402872525833749994614232785839883972568061467080998911689301802"],["4839365837226372350720098140928371725787880462650046602985281020955579231603","28741418107482319302116766254765396794875721585755748902970327490296644612229"],["27654375496585871489421860747396101818414967757771299497729023469888229164818","10067136521772297970782479856136315007248538124840661359734271069103918613274"],["18852246135680148491860617324096174752157456506107786427177472363049149889231","14122529071950960466539287474797489609402488070764006463371200801732597360500"],["537189034324001275362999234123744377330790809078529057929920526997726795953","28866237401274463928558892670584537423375978099218367637290564374887544046907"],["1551482600463151553199490284061874852223350449413499584021651883206411201317","8913810670920586630229216194125068468141401725760783591384663831579237448870"],["19990218207819244378011050996865332295572512756352153218589805635837476348425","19173074513520461645122830798530840104306610266666294212213286770733554112834"],["12331149734527940716254374006176419003564151259401548618928527334555642202072","24640000138363331601215115399871067726260255204602720244186510391709409859106"],["8984691636667277710058007608772337351047302089061082888183993762782769559239","28843964734709444962554618606062600567127666021477272041258289367215988291747"],["27159583263229614414273206003616214766863422326194064070075076670572169384961","20697988203434235008896755768663388480372030794891558315549572732893930020666"],["10324322267782536195239882937180301344445826060914721819404377166404539445481","24206619329705285533635757737849066038954089681463246030558007432614741571941"],["24808461231406850039086699134972032919405459336183907645933974503754294782399","11241122707306631131566058097146461798254732909284528886916881530930418936683"],["1862263143491639228636910362929000742534316866992369345775480990971854355300","23741217151348751172643413128087311001929935587960806746912394343313078526397"],["11528486146460167846962726710493228272276541733647972603157008636421116375932","10458628847473838737135714734075810309985684468868073847371210646179642417913"],["1471733692307354990527835889510592206637249664589723482323787727735961925012","7810775230606183447289605021545579158475448497780770392234751819363249879169"],["2402217041031829152493893323595268960644380150610317393851892644526312126246","19142037076015765819954599607978528933264245146801528579948626673687029763815"],["1007933742485810882920372683722155114378532904467294450897654365150636268169","2611256952185962723907569041468187686649000167366976226199465775495036087760"],["23221575869116442900155676992591093920468292059196463060125342501885236760549","28810016445758192090591256177342821778413900057209065422479695944195448968576"],["7911551031609848898084960727693466249524758755420062934931190538975666408541","27811652684031865183837278581795424483954336126840778632438540759578735681119"],["15885869671374299793864447888812370654213664009325018419622910644364049990140","17721312692711700842518268412353297416992463384632201452764738228836154146291"],["7676551457037203832908041074593797812973305322747143869304409291468530725891","13609662074123302232740951197334144487150647334369421751065889547574800751413"],["25261890260735008370783776838857145030097373463683977589842384886509220320039","24065178941774012791608694791226130607019754149267632104282683751982782751071"],["17048763987979012640354750664673340159324488687710342001024408686724842490787","10744265329639470632405141800487593287682708416631080763777460702971989054528"],["10365951377754290897001299254430547125592904836683835023729303511057154077679","5753859072341772707931791759163560257549430650022140810700117484862796537775"],["11397684944526143580491813875923230838138129061469993927854931357201415377037","9915792712146244015974080913920841880734556273550480202987141660346126538314"],["14391932649025993627396541597649765821947710529697646977092567231729293512525","2386893248467081738073288765898890645263344425363574139435724613255116062623"],["23139163281384712661721084883675654147782640562110621586539588489730393039252","6045779139518114917686939937600279854904623698115380464012727197042275674364"],["16245832314951485731268840595619501411037010165223492006501760422291426239722","10078565748682282606131980597457131718189844453563287505397679766539637285396"],["20805515226252330377391008631050230119154207963276229444753885018627226426929","19495588783265264396177982098526254540611712154956964774667297885292402905265"],["10456340622601235601104342575393265007752123620946882068241202611491269009863","1252827518949237369102284982660323289932525669980626442168257947870452627611"],["4365858158056541880677567472191538957739324685643807238072688206311169787178","3009255626909989625909800922034555661804122147233969221954053708096550015826"],["12452875963220585300174038105684054853653309648911445992014711716797863123028","23286786833946989558527529241414153381343972546296832680540612002700882765528"],["16456792893778830438389888746848274835586747875991411885838159508448081373996","1592264690410646002292447473430429473478382920847699473295522797229691923223"],["10488791980521260466678762056363780952129231926545308816629287448923015950792","22683490243171015311740627087041754620712794821264716291156209751568579428993"],["27174043244543415996886418931137917448732936668759144865144840063644508824643","1339947295327230150586788067467518708361847205686100881840272050673013878813"],["16364388255010079951584960460961507551926990523306874232305136275749364275405","2648218967774308442958003054111155679818446276381813704215663835421976531914"],["3458628595197799613816184395309676406212334726648738124225338083335245991135","11528200047697134861951512769448744012242144697361585376084164382482383262038"],["6923609283843949719510150524147911400695224278367376793630941193389980406298","3555268536541390496229892785282069133176970134530422948241358823597966353317"],["7535168603282993519734509036065991149246903599285374176380583305234807310413","28058867090362303785092560131470789265281382411598986707592371332891729717698"],["27555870299439938879735346405554038894226124980598739009388243512992563185075","28420912752878011134073622791258588508519925908002630395326613219150836369484"],["11757171728316661816795175609015952128471526939005181725885666629973907435765","22979618564264637121806165399458209862141659539291580691687953277410804268304"],["10460240067607008023293376800342313014156365379794063719574184195164429912962","14697756438260843186111412374335611418796812453516705028844010146382789306809"],["4469927604484609522120647267772279383833962623492654801073482536752553610901","15634298453231432101969731005139590083104476286392639056747907879068985362338"],["1332901661359696039059772917488488246771427325179827832156711312133408882056","2397110738104703293736166175604296840892495186623587885442358967257433847846"],["24789276132795418680248877583714776314093394809438893955753457129575166580593","25256455650293978742428128205779466474770138129683063819689335201982305702528"],["3140604403888230709210541222844349458898151691431938684328131593062953618397","16074523768519135843418103226171868642977212762633859283310301316350765139784"],["21456552286403802378540327217408587572505124996480329397302096206762656509612","351534364070906636405786841235514425704129531474112933361297401358136083637"],["13744026047506228991365720889043705253614967987721326559502713954865025467591","6105942748282626968815995693580278162533118125046677607717150416211029059553"],["27789743655520293448128941184813422376278194738330275585342068446581731715167","20350824822106086834698764127941021158606102502449247994046409662028257420664"],["27416801496845544963387272915959506073480740819665397705211559860502766838043","11164876179288893940612899222351799461296335146012825961104840056403686658233"],["12620442583752567977665363123953885639476253134645629704300628438861421465285","11545881192123819570567885592272607724682596055967129616423630741913115100429"],["8424601491914357230147552368010017994246683066611246779063784844470561525970","27154698257664045194178792615333703660553343920264654017201194617542142291756"],["10460397468533198254013611055154593981419501712151190068146394388814880447772","21559072364505861529318557594048686984512706313155052676549388420075383365935"],["2701308681962986482807795732216472487525340247541779849078535646737978811017","3043611085411289091598825889809624813624303829911314182348797101473565361643"],["9188054417960613169220790814734460962514400169474383654143780011723764200734","11752735828099943483931799930614638721757863015028839815655369261940247410290"],["882851191584050583688946884419657382707521672559337338575276375217755691608","14908532603659714530246007295298259762264509070815617273210511956532639497369"],["5933399536857367620076620677220102998522768009381355805441596270846035254991","23672896558190422648764331660504488980758648990151919027084432627678262932133"],["1997668392560109076536588026596089838997243019451984291192308807106768910558","22644228126707652939121795844885136357997887669545364390904732020325002500543"],["27363547081660526889920305106887467970169474615030084590014825915906419149312","28595434219448032035578583733216340593592020698391109576121605630507494418115"],["24972705917618227814360887127809390853327531326196441532997256137524563337508","15761770119866485672843204232495290824702690236645024987212327597522838558329"],["11027588441073666049739741199741925534897084568347813197541766126506332968726","9672016097037364432350101395961197717380316241353779161737665768325621229525"],["18082438562658421150705720648571016378770064519860508930030500392992550148129","1022398087215002617651975880708944674362045258280006029336431160712061104026"],["11450192245922295670758263559423733030180213225902649100551543042741407889208","24896031151186284973401428700147416818850481574134691283274953000860287970106"],["22619085821724294116781210907729122895658645603394920261005078571083844103319","24113340100659736503554977602386689977529723644128591985365294128056012995965"],["16139559698339112258358981221954930598456099975443351944841696316103771555223","11356448947537528450694437362869367051352072690236666907867812933211831011468"],["7919931460924507655276786742977009137419147185021761907071579590388302981591","3910426319475743307227232453770487783994600661822330784696414495208268017812"],["12462086122678922437325763000678070060933331071622085911046355597091463754407","22428474337098533683952071305316493582590841020432491094511295547686087464546"],["8956180808781886929899227097348360628675150001174133248327300575211808710583","10826052848668258467773738697991164170776073686592743048222229868085611961860"],["19891712621667984769492324946972630403041272481511229894655776151307460336440","8506033128229199199134660584853113551771322539669146972365391847262836253106"],["2068203102751124485889608625092318938281235916168827707577730602352104269238","13744887420886290064256979368259709818912789167986509333789672395617673145601"],["3889331998304862683455726942589695748927665536392696533122237519249858149430","22826513341514097248781711883190843340036273804217004344000309732871751968722"],["25107664590355799944123417708334146512324797795164878074372796686084409071984","19629291695701522320854838080477663896707510401607194254377799746968168462664"],["15484361178790375098873576629484286093476543468560470892591432309286803147978","11390164211518121618909901188928209647487613197000917866038922698455377391996"],["668480014374423528971389838988419297023137130217548979650447071914033351648","304188237443525363182595132091843886137957960964326226660662273688731391890"],["10271241377219919015942890488515255316655830300503914801239241372618284539936","27532854307345483254556754159269127790680957316288480826754414268457523054161"],["10663548224548540645589311906787932214009166579246761418058200615108714227537","20850079720753392457777350132509647554936353351014147734191001678097186152137"],["22580695464538213003859394851119341308043508380267498907775723335758656748178","499075591591895278350714606676592548500016710078407745567031336531260995569"],["5743295452777945623923476608534043854423314094416955720509413770122416815450","9162130491133979816569597343708495618824284435012124687619773348669806477135"],["22530504159351856062339434837527287827516674617829210402231825017893096604516","20560156433334224591231454676539600366277369614057858014999683721203883573777"],["14117099795010924371543421302748134537340337519674925140711506052153971418974","20041082552110459259373317692171287900989788012298679375946114608363690106474"],["14320516301709281533179799965957056147162369460125281357377489067979638016689","21024540102336854766700904670439174820688087022270237781622558548271694287559"],["23136284752011781115643434436801915031921971988168078697024976601995186402848","8880259125825028882751383551255125980659214660633445987511722975086551612784"],["4200575652784359176885264845847009306912525798476952610828278314350335534171","28004048341980829881569549905542042834516286489509800412022708454168096066522"],["15263252243537698090150084894882275729560800987400847780637298380164375277484","6608298614406814925944981303822684112290657836255202194341690086934722120224"],["14749601577675216763251041209181105365709327871469455088452760504082384092561","7818855425679352286035620184226415650796830842828694988432140664870998763361"],["2096143475359159556961094161974271538786950818245312956249314757898740482474","10902183113960012500127751172448729032600805113002299357762458069136573028880"],["1836839240963794456243207883803488402899898845728753865922349643300788054762","3504748401693672139412852813202629647394297701180491941442025474331944772708"],["4413208582510680743442806820051680230304318667223047072752693756038134688994","28098186953447493345016158019670999794627166800787227350256207204618847876056"],["28235518559001899913517852853865121333415755672474666602385706839973215499609","10968133567518608949403960117113578541541057860446393834594506759346990089389"],["23250957997732850073349001912519302360349120982772637570488297379928957546469","472993848920081685321381197173956726607353587069518172073602626210357197394"],["2171153535938948792639020471157293538820425215614725323191712824211888513126","1112527922446782212673697463458924853518877347798143980770574571129001585925"],["7702036139379778879213577039049226337811344457690039939995469806936518862350","20892044339282537306313273543742618131124351790147609565225250495853320108680"],["27162717040929633107356897847793308549582448415732186606654173056394402094109","21491282975985432340050302143804260683715883515725820844778382179765511952799"],["1234693335334032909199162477760278966189895819959917141832121912698595828875","28038974648566113110173671240964240210058107686668305011492734244735209974102"],["6025178942685514947767940357037125250656063177980851264986912763899277375403","24253304157710811026281193145499514043293945382417040570849290974194293894682"],["8745330447384403036234074821840326794678028451633977207397634735249536434656","3356227934515661897222788686187195178005117631353568251113703489082894629334"],["1874054647567025348649181844922949284627234823127351726070290501627413473843","18026579141843437294719372658335773057879424837019638065184815032064914788621"],["24091306692310770143771134634588071179228862230184328831394333017863992079491","12997098596844542701129161112659161622881516961900351506307728510128686058870"],["26236865894122046087343910618544614547058623012402839384275511980704089585569","13725790748832043536614944446614671056357090171569972602481422331449753685565"],["10995855755024894219740256085464458066751932421890744943061263332742919516399","17232346908872380953076481190486590287621526800460174465911439795576226888168"],["19628729897229572997242498779499657117626762494387031188938368859169735608394","20701487352064758273309213106415720211057539953252062784313356842882574466010"],["8662447602196552179091902487273714662954128071530315670695130513191795293897","23449621484862461445231148993959867293759979867062292895470873424617554606184"],["2043056776527506198804177388627191499617958014705894275943344530275169661181","11522291372978675305565796413896937017445671509090041636217256807445915185328"],["22601155043564935141773472751060028339227808025609706916891816066495361339591","1396713594922080027048768249680270782657102207418466169397458659076115126077"],["23978664130110790175521877449154609603611953647424985461377186720515806165136","24828756423580000599215817762105383380573855878749073374744077807275324126908"],["109038530093147729695056712928256630782646190061064546300298188987022750507","11806293097743965819576610565669051594278346923760617022587948582186845337364"],["4294510820271151824414108191354881839106487188579579827644596963952075170720","8507267229519924678398418998439628062710710431275263388111379616276984521473"],["306811473109903791264395062071139289243223264938441727674657875136453273939","22634268589060724521233455206891242372639168775613874913995477141829069050904"],["2942539851040272476872391527031760080130647724174028831426784972570142450025","12365888932153573804725419432813516451545867907439695643881158919954137179364"],["9019845865356516649305140060482839048627464450527339950752317255226477715245","22570490520213036621443704113936787139076337128155939026351363140630754388546"],["23961121310430151795749775241369391682406939465227197014096441510532969047120","6475481881653587369987494537372374533449387844839353825272984082573268648054"],["3700040508392057633135201557286031970499399273616354872243166995834104523347","8770296149075652082572783517263933691412347123804921274071378563993071474016"],["1856423384381156441170329511593231196768233307702879531301108584457592995846","15121908792421710327616028715136055234277249729970369212717132048609469011635"],["22721272996671602491281146027906573768884606451004337086266031577469732831140","1513803830668831183387048864680862778007640799073159488814285470841749491474"],["20197943660875072945693377272932267265436391821462541305044822397178526493314","5653359922555520893482325817101660307362040172881402493596294808983747173482"],["25127874856451769005678765047787230472931199376313009553899836898088139154514","16056833413681246802931675583087661824760524675589427176629031105104643101104"],["17796871431994101084738761305420732459229560521241772752200020829052521262027","24053184926698822637848206326642104129702304643964265522688006865073954121954"],["22660390714820714964785876766226465344316001043804813079728644050162563336398","55389007008191809950464037514156551466512391462008101076114978681761793189"],["20378577847529698560804110734455121213689772180843141358036879761162479289443","14692706682133796413345930193337698955058694360134220216320225764231885750932"],["988494432951064462377324506044172973926866771450486903703968485588373112381","6378912173601034483615285903774026043665305460737240925441606923862043088328"],["11541120693912397379777256309334862883711368139647480836882657334495453076142","17208753495534481863455432820683256904685707952686006184541885506136231964217"],["14434224747832407019551932942436890090359800899110123856634428085984894944329","7471301307739991313714954249675812825641190558952425701450749739553896240581"],["16510286305348827132903589254271893637929922205927014781011677290343890873111","16503928795117976716993558523515336428847321521165019085271313878874078924009"],["17790278495702493142409819373588979517024976456709551281175286279558312987872","14152403186083528123478827846695019848944575943057092576864515547317043179541"],["25904823551889801702876460526322602637099871241392234353244253809612135256727","28543396307445402086095417045305345309488986395964797045230488029154351976389"],["27283793570343498247623843366540747253436233913881899802830017100657233123832","21488543642974144349196643327038935547247661009725474544801159898925478647661"],["7613188679935282043962409061442242538651645808182303016460119422430075734311","28238175749497929784663273129798561542866594421884250721253665311039575123217"],["10851660628950696365945685221205163280134973720783774032053924961105359435717","28922662347118782604986663808442886392603985662441042336687986662018488978151"],["7352124209740373180819311619333333361838762114596803027809620706791643662780","5041439340831253157972254807319860793949871327550222610797140203946110190925"],["2289934944394563720749549139222699576263536610561228037083509165976562571107","13175726567781930450491142324137845002322852326764979810928746418732335955559"],["12369212485783875537833818933119794978667810750996198102463259522737211205753","26571308098719223707294883200553927563162388995463182139496314016922842522340"],["16124199063701734758329023761143913741447121797279506707695681221374183051888","27074649205865013948550202709064645095270716374777947895334654208127727734189"],["21780475700635258831910732131357091675897094556454741197182580519359326449759","3679805957789834587519343662432310522476065762742842806701469867463491374195"],["27985124380582284898125931427961786943055172406393063164205209548781219367693","12294064931041772938981255419149151770946100077961959180382282154740627090052"],["13141402041507381272279551022105834478773116126947876217786103972698054555954","746157304342138899978153247432907602221985082662329736670103685370031342316"],["27428581516413854857670373018224985977821645152608002270520677208384579275748","21195615903442311847412935314556869731262124177662527124011219284920076509330"],["8477424805048219289043421352107716058055882017479451081678190222862799696825","18901036015974786260552336227720063142395670731958986711207222455607250349799"],["7338074082968144407122940912706765588733225441960704988362337317979542008892","24150731500517504253616243194058412048862934983087065713170225454995198198607"],["6084614558781333063745775663381420000998401671705205874589329802811529567368","16614581159067925145571898021853938664467570657279379219801997772005995448792"],["17848156575363347253966069229416171469008875950395180505455187574552451628982","16962550365653277399460864197295690972046722588483648953810260397700451151228"],["5772761902990043786028413777395327794552438747684611103345986571900386020192","6677781196020429121727048980740406658311835695867668681713076936190587672899"],["21121338041916752476525900869981460414901271683930848724263100834970187019783","10256459996628763742630448467447352064734753091978555282732597860649206980150"],["27342540990174023692831823271391891930697173904000076066881266601617614831067","20315030897844689035459356101146383513615015068710840778900610695622885634415"],["10111520746787520591145850989818217383858832632456290617448469924282472264399","19490488589542888986025799854880120471798344690528016431051183272148462475570"],["27814966488867067874607001598048319851331571386698824372146095133136273483838","1983681514771026568836746304527489078917977192877521748350563832652148873115"],["17498256102126414491977738468054448842589289570645779040000913971815315433412","17300226616400986561689515257077973021276672073186282517118913496052373935342"],["25723393587883785855793352911304786601245708469964628639963497973747073348785","16233984456055147415763106647802629726126387717806764190845571999552964907881"],["6096765361629796961183717626129649682028211405850787054327821849137061003141","20242911432805941821824886423757224407491943343901138073850427655817514076021"],["855613506135398718041862538042977973877176350823760016980333903102055682186","15970607549981549887653633471277560882429835517867596311028347676211655456287"],["18928537894328990238175842579158170732542952647198447195120043489881930378657","12812929570927225187358517554909400599015055004894481045237163322909632342683"],["12265421535243325377029374031638101266226798413030369260316098124156995869127","22638645385508857521616660148994537520202061810569837129757339040954143259674"],["23876417051140240067640811472238360356742103606118957588720052394730872372810","23689275125498841148575655842624172704993473817261747320730560105365630668053"],["8745745941236035214068787935390820809301958271506819565731071404696924770799","924195586079969910379788376897478348945488030888797145380412484420885392880"],["20089660518402932086315318877139643797011466500401513144812198658857836028147","22447460168342101905194852108145589659725492980317028225562209017138636921479"],["8887830785604798947726308492760742756021811564677435105179079414113905865801","7328644700223353622962683567040745068456585141795226612374696133607816460666"],["20835329133234414380094793808330554870986414060006433815968387820872844344358","8992853215956409254139564001584925780688599903453964513946057078544432576136"],["28794741740683008258003198591834385006944827268405986696210337228314870895617","8850186340282353565286037992734564178215218607283820887849332601202572299849"],["27290801854049661348540344849435814611924927768050272824440705510294672605337","6109957741504656077424133792361168549849554219794442431454258893486455455704"],["19282923201809708729007273811132536394190742904763192164735607518837104475860","24500761426929417581850299024168008193650284157710302118223756558057092449455"],["26417392260319161271411679096751987123248191077347673346275357611868618729473","720899809869832679713226132922941136975069831296914105325546917444310473221"],["4037508562624409980717912509179395226089166526389945813293515772764460893988","6863307307337335743148130247462936025482922062120127674338354492339534169810"],["3826884709643175634446176826839156534419793250639088450834999384484443062879","4016591373855655519806040799642497861457843094654313423481061911372425345670"],["2538802613748493607919794703494944769094897105579577971109046892620459709463","18269293749346766608593887391660486807915242566267346610906619124926462271199"],["13497982156343577269373997460627287564030275796312349175963624745150162504948","25591626925239939036495623885532916012721224321692793836097545550386445041247"],["569945477293965192185091955790639315153682108170262302332021232122381241422","23332706015117438741930504278446803821980042547798173970770184632017569996465"],["22561176592885531401115178262767330795739288029092407934571005184478333506803","9766996713222329747559410925166484263182933254237401447995447302178433383273"],["7895678068851791340059658882556297490436415559011988229258220959243382137278","22331275974984411461728485608469150155255468408946646231770969423933136149196"],["11951817286524981310192460984355474425511575918644777373398260429670342714698","15487876709634627250876414039073544217459919924463554229016431637025015411065"],["20650175261965360968307606173671979683730299410831540466576127366831070053515","27369791909113493785136396869007256135022275755637040440475915704867819407814"],["19410913281861098714698387197314366940459272569631423741467979553442889137730","3705294361917042100217411342786714083840993365714383320030771497435190692705"],["2789946133122899174431431139478746061319255634917164584792549004512927729357","17928242501872568747371709165875320325158344410428155004148221604218914182771"],["18767846470244920686742275846660684764354743374943243714873761093815417789025","3380121728164268615592411400293781680268999170421263143542216263429784727267"],["2110859408108265582363016220743995899220084336923897358764607694657251619680","28060371276821509232449041720030044523098769196252022533187140563373154363567"],["25020712943067117498518834871495718275241829690530690843720760025509945559612","8364696472135748084451974369858713168469064697944454001401491336103795501083"],["25833056295412387178052453223065296575190345730669490673012576031163061558066","12102334845102379702861265114039605172512266543998294077717240699746594163672"],["15980720399786275606108958914522859249011904261659613718669579123337720608493","19972850730660767129415611015981568462424807825935593447091425274335588394351"],["20093794036929691605654997284381446923223742717379003573067710796532345523364","8199468555439378086104965721029839232607321639507837896089276840621144420797"],["15934961219040551533630238629187745114438783635560009734105963547451913696297","11111312775985698947102389898283499110071877886421554028184426198358209457689"],["108153780309126590302702666597264413455092502075852040123080258693764108395","15056021541436931287681784593066168110889786852726596469655853299846712344369"],["11749104969692772692947748836021366468798603248828736337261541638184081097287","16250190563437544483003560527294709017876455240502275653399647930760538968109"],["12688867669239902279908523008615424199735915152780413542015400407331762011100","18158800370543170582807986577981820833408834314687965760023094136876891173282"],["26281660142232391152665767740526873336528877541157382259308973767283532580117","21229708129565053514785533305375718829873225863104660115033031862688675634172"],["18478588536439882004466446171292913439046236898318603049941431285212504815437","17209786072478556877948420606899978641038920402176333032070342356274327919694"],["2358614994296675249434491660361567895043414984407723899417522424822431177787","15248168715381530681482922237593379593567385015736721818102927454976054648893"],["456941838291273535087157882566243586449294108634080416365299115581335457818","11278981976226217730672472921973078358209283582780516905096002008234329135387"],["11443668964680055008276266096635615124580709259053713611500355627888376457087","27746572283334007456710542746107129259422391915123590369897870534343957896394"],["5987066182846082194570626254271974998396333407877362582164226206545896411292","21751067069013147712771370881934793817239350050924686765777141605290533373391"],["14074334909361808549294324136671606677480854510303224997683278679310027442695","15884368503534871686015132331787418522010246772459486897909507636625527000063"],["7086495340365700505426372844725524774556599093123468456922423555076149397853","28484629714869474976285981299609682058498976138659663289618603807580906552665"],["5968723281457934597280189310003996054958774676334069802527322426956583118464","13099422664001335156277148621101068126862112322620880357318841910474683679843"],["2627034015211306402754083625917576464491881612113578678697757908899536233643","6250714204807323136711809549745996074727163135845017846950413528923478817876"],["11185364307851325188494576896215651870659963442703238086711159047107385579400","14098622685543718256534474457705371942114407380248933193271593207687482050667"],["5729779743790102743196073018867134485551275286863834624298464803312366529525","17698202867995424891594040821913518407376657348452775379740235143252622119496"],["26539755902922605027078853754364864774292787685729113908961813807921139306989","15316554438204945147090791782865961960443943344465256986646805023483419081323"],["28657058093498865988442902573693465517082244084614624482581101136794450939803","19765735291722143328911160007543933948825518886072420394609247258635470176935"],["8993134016371260112443843654948677252607319053240647435386940690667436864045","22905718431413921932054005127910814541684868483142652570942399457486822789794"],["19543385001154938277010437323651266015491919818280091872761641564466845246847","25387775392856631955500329462314528595282537064350468597034612321227000297137"],["22488088777934068911313568715624544208694804951855384356452923914984966415114","12687175932713076204033584635975191082463485183757963250804218270176800857456"],["9967531095217253211153048338814757775229324304891851584453819623547136031019","25860945614691134763740506647531688457493972641594972497497024865649621636235"],["23639935668801658860326068577500439864615337313904564017404995685117347374877","15472208951914509548699394242933019236456149535372701041667352440427524284955"],["10503875918027040885602244844403101253602307523155958705427413472430141068562","8857451606839613384822547454215941347872390284773640490668696891178774325642"],["27811073664663510312375393494738513997880139674051920840101486057894850342231","28663802668934058017369399760644016801904798083871845022372036978428608442411"],["2899454726516229334174178360465792554073632504236060318185572184552159303235","4293785844271995536959247640549666029138445344910922299874662029072763831124"],["1872658306186344503865833639103504768174927911034344368518298717274637567778","3985076423255380780191416797952513788403281456203470440461221171601484078216"],["28235732871169426635214378667814516845534043174776536080869854925027181990270","12256874257530317760643116931691521909622750804349182512078759154331108963117"],["17594582610275994442574845429870094183142192478343167041120783980361473507729","13819836099055810166054397030488967606240027021123315290112308066701096022796"],["13233298298207287423137355473482348360414523288221210788825283204439859667128","8454579061936609094089410078934938163549415239809348225648848187797609418896"],["24957129881448115437235885851088020323056260558776260907505038743402842906037","24939207003346975883114089637722030820758123111444329796707331091772869115308"],["13419734386397693649568763704846296632616448515245157742158128357462229499314","12578617805577941377080721086821613498393083114552640263904091689296281378224"],["23286541605923746843013703930113323941103658595432073840275721801572904373610","16641894049186545545210254731147711691818260305195700428750959394609582074742"],["13102207281298439961113060848707694791937518427487273003010045692135464836493","18313672350318209916018157800693553984031022696299780116483067956140168580491"],["10534371920320867374440382931562695829246953508146723487991739675563142476545","3175394636998828412839862874110410953168321859280612656371475189490404547507"],["28871715101029920546313091775045386689394873082463532024742351681225003866022","3987009380380089085297328443718254705121170593251381910234281544487369342194"],["19447641961073578438881045151068931947702555369748709562361879295981305230756","11568445210091166451750016781922424270865957088021195548460617159665141131634"],["818743287208893340241497720524113986267008473275062373574960737431481856022","4535661344379585752091843539120754167940931247006211941037612831896749515692"],["25297062503358565230849884070753365289955299548845174849336232172684178616839","7989187800770319819077410930475765376299320483143909188909011131701804611164"],["7866875684665916214475129740517337098181962766910656125540882996227697086449","15955582733257584160980570520062239513351674839384018674495748800726509661408"],["7404392199209101912959295460710367704281777750245498537185688802269993085182","4759239425096316930819290964411479123112147194002626413958282388415967875126"],["16857212344738091039646248259763626654903187609864751582499740037572294291810","4179483618844813427868846109985823788280839176818782424700467137057041321629"],["9981699661507971737088922525754093483565648130042636943880133221875250392177","15782207084929250926371668287757016975089352729474120889799682569564151365378"],["20483994859094910830443932571651573432564265321473527642671682312558215425878","7368864946477439294726636666968406137445018977000216481692423078228386596513"],["21391047126542966479394557794004132489760950438862574754380059829369587443770","28732849141719625343162448944780915603566357589094211573157311432235194604556"],["9324886129916536391965666875569913758278522250813648424836200181346465137948","10237519008162140628729946094389332813656250823970044757403208116055921180012"],["5859725716904578950123650267270280366093594639818424862273727348198662894624","21635984214284493388265155595984146507165289714237021899185376235085535712261"],["17080834241293411149188534212617367886937049610525735834824491720454523358197","7945272745400523218839101271622194958682960016109798838838787284159086926915"],["15410744274048657670071038221754254748391375136705443026546414064195334957423","17148788054421771658255439254673082472917033966948885172449455704545407911846"],["22156389554179016956819267993699191984729828324240613836917076064748215917877","7844946233052255907637841718585270682716036633178186536530622378019041874832"],["6636809281005462341100391724033501800511621641513030367729978924026472275469","14556406841673717274045175613751467151574923494078263421138337538647438812542"],["12517314713259534790170889555729119797859743654010924854441397320566901368435","16918280208836575568974302569330646657659734163402203112628811350475138942003"],["3688574586673693505629423373249168643709637347278240804411044444934241584301","27661189510907389716563438834321625661421063201286052894073859934472524004080"],["10453989042860282207833140326808902922414840475266727523624770338915604903705","20386748177919573177208683486014944781237959403080593217871771990199089402216"],["22945332296902706346270649853697078383808824234945936099129712697351391995479","6732135656533882189343452087186288717175811988375019418171642932434709657600"],["16039532537029753317427531896221699176050512372454866781487261775950503050672","5298344880727311483810548846394949183978433890247680452199872907332205312081"],["5906836482583960612280954152529819474378242012974136583771286072620647502492","20190857054724188583905765439686186607825912495358367507816389067682329663115"],["4520144145948848847441931341671676081552371247096308614129135165466922260596","148513374432118379943011914258226635609033560912874841802628901436780943429"],["16300147832016196294444200101880308058758243303071940874132154378516960413507","23529770699211003953767057923173750124897948746238988786366892475002201087596"],["200806356083606391390633219450053635431898687976006251167937353059850320668","21250217283902973000272932050125746122930598549450849271460595923542043860482"],["18490936349806453984046943350139860210868662090891697194246953323939042743135","7645998129563296326873765487239333295160533074588556676376980757304664454402"],["25279370814059823317799237594761461958196270978439716052399828145990472391573","7632966702536336680796528087977616367683292675237527281979322343615580620838"],["26931940275840984254901467636410964399395333833780121045262608974295286104426","1316776356255318401106649567675978286373356995629386128654844087273800497097"],["22294954570468636459842726189150409350144983296008350507916437537758146549254","18996565592649592578685515114790114049420933935974028655816807814118307612827"],["15253176710186172325694527563058987612344958337602859516213270147093812901678","26689323983045018584491018203846751423284293558927270354394446971711161872491"],["27455099937874288317514838531956086559778596469234233484208815847718699149682","14915600526944848346002041269025338871869330057966445803400747656164208300324"],["20966757188651115006772842749157994059025850978218946155075437270754534409026","25861712448090043418076671902355768824147410107289233584050544869571342409416"],["24411446124436678860561584422047591488103671358388169130151913446663064481472","25602379441732683058788474249290040376623665438176176089850115308631123172471"],["28470514128992222321768169268217458358699074113192600653617091623834768452867","10158322842106902792235257925528408769908147594290664316684014297305763561889"],["18609280944487164585002774561639730957742834530643295457438775663933427341621","3445843514726165324683354286204274768556106788438448750992156827329126520017"],["23832055532675402907804969270582810521404555048010892045639732191443265475302","3583070853335696471702702388887609407780250931569309464480498374676751563419"],["3485804262833492082295551859187119824700632160978409266823859758279956870381","10182913419657789939811101444475708579945533932621343849543884092497739773844"],["22437208959251776695190918949211643780289833966699993822443526973106204843082","8491965902812090921809961814959635700823413869832318505114628601116014199586"],["15099342884973519247765150756739327844831543934294083882656202106182667394488","17138072662970974035301277721688033932507636462544574376199114675728948443534"],["15613085087417454129669433561324227933720527092154198675865353098448239291268","27968244444176111357021723418417448027337995934078591097454805428955421707210"],["15666111534323886626758623601232378618508817206729098259848562430844390827319","10034744670352547277173960231238561890871502924662904551729389228096860535206"],["14700460878208144339141473923557989323593670454180385416547717451755814505913","1608504158126119250240641057835761996557881577562889046388598100752464862486"],["15619504273162153970287754776155060432255052994390341650476381101069709409319","3756259521929676832428135089566886218879682263173941950734598826293456745946"],["24020386894161806316144498773843189781536298265975162307301846108208669983836","4202871971880025104126285432800919307157744893424240144933750414188077588975"],["187817613298236260091645096156773436351551540904650300928181851678474026076","22904992817333481206145202688134188027510334206895746274342076565252711999586"],["8604431954875555395838854271432180483940615309779280706182502800189189980911","12979645322280056005521980212388328265296765333852203182178239869111604736555"],["9954258243508349483299665916232768395110061837293158681175802125048606988429","23227377048817165475887444735820086878817218325648953704559644913586989574651"],["15312798513803741922212154898908444232973922682639728861551634708611916801264","27436607054191578347971114954874587023876398463337522686838965078003662260151"],["8251795482720455131591783911450660575578727820352169825149942874623541535499","215789883545218798129984922672012407837853024876470506087026993340817401062"],["13894467772903707473149462424203637893445975508692258443389281253399401729920","7144486217941960842168478032058228584437693526255956521565408177096396632292"],["7282027353502798814763339526309410315300386103744087703355106039906929012937","1639388070014639539413418764342072592069212593615120679437257732440430358099"],["21635835547672191103686455251923149265753688832876296582330203181803651129405","10217624819573687047587744079107373913766746138617551612097773940283995049293"],["3135718140273909085973801951306504790979070295282680781720403967405112298803","11115603811604658846082342864307131745069794112204171895683773713799779606929"],["4016255784512995756256615382825537518480277002769290014838284452377374165129","5899220782935875828349566962279129606659671981978912861603550072261047263603"],["12881227655205872881139851902864488258684986593531961067401945110929416231818","1477450848886405656441961057875437264317202792347823147824055580521165779782"],["23800302816659293325223342151200261211043012150935642153877287045296847352587","5959032251036973382839418025744419794500182611078423847098272244087504165054"],["26053594443687281142229250425575807336905871340615528795667368160235041821929","9905842599963324134861292722077994535907982468626414669664940260398230633212"],["15209556958325008244333433552272949499679553660489095416547716793073463065099","6012095410296097623658903475726364531199291610923345787831560835295086313515"],["28814873268514240192418795474142061577512830818928618485906593227358399351827","2602800792902565377957198292443925211847159376272000549854031360225115909554"],["6841848649800512755407923880499130698443905766282021213979005935904589248971","7127806359221879740635491194274946250627531534313758272841376498168001973209"],["18090748385150423465446895018880783663743883965041584229477294636616317739819","16608774821578151083145439008209922232669556516179007181574462441686406332276"],["4772655955535084412127082986764127752147532505806181565048610679022711794281","5035896482932606221208681624586298226837867981906965607152771517428195994488"],["8809261636092987285973255060532374150204424288934920990383237042390124767468","21137219290761053951528850047297826214702305697778789751170094687643806814530"],["13333073338649230624724469606131880532523824369333125863519291383170961589742","27387466426177777738757128855416535260263295701315383171157992478050610272888"],["24626090052230076921606996820863558637816379948025414295420728974368814713569","3614597068446227443624544492605460913309858051948788162102641167151733349705"],["7473276855067654783891829332645106269300217889181358764806624184970089453184","6743916596173968292173978839535208170099360283683450566156758674033182791864"],["8573241378086750417227467640139147213319255313661591644860526302430313736680","11398728614597797976390448647610774156888698706775624073963381107080715959463"],["4535867677512958900855147069845581571722094913207756356025659604917960040075","6162655167582465640620105775107299237394170915175342502783067853933403761531"],["24537194102623913732109056039757916998072370532332574685466494972591395087502","21915556400795331206491459418815740132616474452406396835432854964267746816126"],["769972024591844842215249569042372649540584474665441845006628682267400947483","16838577143267878011794135305034512007365224859001758133177276417684687969877"],["6362423974520235425161653433998764978650498706166701227007526767853841178038","8597735449733580889805409621669555835375478587096542162414592722167584385214"],["7020742093551660924405416595788152435232016449978095695359257224565250582469","18122720124581465829069020143263083099402722861962583739795904280564721038751"],["14693952723904707082529626017450446529894969322524796616526162350574380881342","18208160377760031172335350580518078789565123978046518168719116924909861713189"],["8783717251325999162161792898888886805815525737541990233065347292102949459959","14807710965753311696613678857844571267706640244876615078070336574532841248120"],["11662510882706175367289223301491750719955444467867855116199658795643897679156","6088094552636547224526058002792081409363460576216692247598594877433843832202"],["15769906909986758058213035263227479756129128964572499880218859071297134644996","12408519969317873249006278018005018182958731549399596689951972028952737080308"],["10423624476565005329926959147704290352945913930995454945177578210193828250495","10166753615448447406629905508053070995469831647186675635772327515853447157089"],["13287097602385635798021971711559569094172061192793130406578329925759546262021","12862709918740648034736298666316058389000491064294728523858746562281840968420"],["18142511400291991513540010718451113408217734348803674114346971256788136620479","26714373298048898922592221324848218010836919693234518147367365827365065784460"],["24559409232727099164228989170226360241788652663633478295880970255905172068581","3884643890075138182103244688041980450946662376007719669855250599868447020720"],["19961656950006727354784976438226578727489146489650131418314256056144362413789","10782390698015735601542553643546891731038058847499657083160041953023581140853"],["24066544990491219934651696962447624580243315094469698051251606980842715804227","17792545610043976711832794318973456170609645969381737110693371540180507797476"],["24731915638270076747304147113103237910794733856576857357724941625409345442218","20961839746627494353056747078447901127354866325093198549948559348824463720811"],["22873067819437227321220616408344208344148737667791750268014273044553070800606","24266246970237310270845660275697939722072733964609540169430628572323750760229"],["20157649696027404699719672743799882922967377163770105353251945306210918717381","16914036596209543390051973982771495531989817029905035328387113988131326352417"],["18019749228496667206090150687073532799270798489469616588857581334042045088711","18562611419116361688342270044651661075124032913142191250784888077090055376938"],["22241485427760267995740185482984072032496447324688515998929011260350466336139","18789588426888879860869377408733970217121065927859276744779637721800907204222"],["25419974203681872073136509006052512490933204012244485120267775318153396238995","4064528780496457006570499972999347286983242273217578835407520372730471361405"],["13377440255303125479979502963386952808842589237329436670376149844742479361877","24968557336815120075488218077523728538969668662316896624135988919746413553346"],["11681043875902634274895247378433019128043677912940921541000628837338463434592","19984086712411510924726539580143146334420411772692476143081992687586154699765"],["23485706409260418362551029214483023773608542857058215939367747802181341198335","23203264097608321967196724835764388622432907204957504981329287216714201292477"],["19274868910941459042281905778456136984031148299804205972533939562889530423892","26039884547762467698241511527004301990364610500549073271374672486343369529283"],["24716591724458119821683864588086875640950166506860109644821983132816826361188","19733967446599464669565158072458515152543773396570290264185576680768942484476"],["27413038299547375702473595359483087602180703227572053136500728072345272433431","24405482141251178539000596268269153505106628763124179846623259343147491900052"],["6984446320798733607378185452446575699906396601014238374159910911875796620761","11119194767264970336347671562096075674310519242395762318113983925825529779722"],["2187405580721814917897087579978484781583583246188005972397124792949740068519","13668057842792484318094142363767380165543549101222362580684631809479259489772"],["13523731832660875262351241778526049306915645294786725187081534278413391176341","26303081105958079098746954585768758991465425674988772151137551743983392592361"],["11508149550298215504225728795886714629709075590040409861471171448248642453006","24844659853214799565436446976010205725757048254331583211399939388345602945639"],["7065260693190884200410847948939885875371301057216594679815458083379529159814","5634964687964321796738018448421059350092001255104851412892522163087056208017"],["22745871246762865645385610181205701447332684221529130543471473160934744048514","24160333534481083441413119620856217392509885411036837693198406719742259763580"],["13863677032652598581702381270436886866693344243114601976257149390583495996561","6189609940865675171857337429841922273774678822059918994595612056532188102885"],["3169768950192631894930264463368286314224210963897486310358422949501118711400","21269317711598693162457529676986544989152587761236891017427685867502168220766"],["24692317312084495550286881420607712120266923192953705348717338722529173940259","21242314840963654189558199103685769283239876528620917096990691195370093493368"],["8258500650764126296633666237504051109226759115555197575232295206502821209761","15995403745312883779377613813320853451434091376835803444481618762373367784798"],["3679991222955684040900343494648992273336505454680391969553527631718849303142","14867627680316651312957326258233573676915593335936845769062908259570572387231"],["498738850656675029034985453387117868011624795621932620970958524420877991566","7658670985583860474841429336772591259253815913384673504411885080422293344476"],["9446224455667464347059414918376689746775772076288346253210448503784903978285","23476488051239489993978727679407477560112947156742060940119770025525116942733"],["5088494511914604566023240323452697745365368618590521896143097177059710651426","10977888650826380353508787662104096574668599055990934796669935556912316511221"],["14816252591257501229650329140887823657351278949529162537013160446815868232483","25683335281805023681606735171420366241409047580465414323652565038460186476406"],["8032990937788955808000722188912928692783460486084489899964232744461352014166","9199179395987397551034465897123967705135371365483766885099917359277154210960"],["21872095733403184734522631960382393594552882249101436640932192645720834636716","27807492617986689285443028266998559423698567437845793948357094345150799405851"],["17505972606911885298573309675075533378268952979756919241419821582455659464758","27861429929403292024331190498554147878418224522780579752414227022718440893372"],["6561138072103348938607931845235470663936895518838791799380532517436176048714","7408568592009790002248429561829599647801432587055584429594019739287345104853"],["7535400973782694842601217511242023731773921519998457210897104037847052652118","19071328612472328180377227914347940044269617473387170799740921824576041193289"],["13724574622788337804092872829501131812191828368901055877862176990599940244018","22047312233384371435543349913890791635299469925126670665117682097501688273697"],["3269044675787124434421714645646910959492319861996810685062673854279266067782","4555028911044772895996717327130995211864927574118763382244992483523479770727"],["11530340304227165145442235820880346979660162331167829702117156132039970596542","10987150465787613201687326790754426759881139821330435760571219998396813962343"],["21958708844545850617672785815990827310353264709743046203100418806712824813214","18741567067009046893603810567818249007033511911080498466447298022335048530717"],["3888151009405344023855083017215048230024450689368007910672760758905318234852","10829002333144044824365882736019666502265261996241501443033670270900315864210"],["3050439595117408446016741038907815772176984197565792789218418381317353743179","18056677950872575125726821485274885182799699466073785596753170140540298981923"],["2332496823628996327952561984367759334468056348050593297775241011061644265145","19918100281621923417148368841771152841364674674564530985661934014264418545699"],["27354569865222347880566790028723699334201826251771948660801352064369367381572","4784177885449807918656979829348405611157994768277387996221489558217778208664"],["25100000177497735734241645899505125140678001775086629810403520679412710185262","12677935218964129083966130283817213737801314912134028811121105048801849910201"],["6821463017390017324994273199431572373261007989531017997284865529372239379943","18816566655547025466028649461516553576590628239818987516606681802764789349148"],["18304272546354744680292547187886308623927634424196225173293185697609908899610","25647008051086889690764617716102798148911445805858318033021583564403138436376"],["12651044559244203305498812764017765827679776978773223149481648695325400112225","20969136104398282450700852647915571587799162384903041256923709172741030038092"],["9058275401521934627684498219533036247383091821536728570492740187941689589012","3955883428872658622463108938229491174865993038888355987325028016487913654988"],["24333733413569020853190181844574090281461754094939945401685216315782045861973","14450710905405423395533110503785964596187103289206032093513399788693381933858"],["11666426333498553511934378995972563092760317764930586343272496131814654188163","20644549140287820428910179058035003109192995356206381712454733132296625451457"],["24558904728522552358657459742605898164128704529818496249710708814978854944323","11226280923454136324549922858454024159897871701976122689771763485590470732283"],["16886615218958146939690462929676760087690795261858218181918235234323491664915","27032425537758311840676927904899961021852324841537696262972919356588515250090"],["1175344616217713374196979371800849075708373226361796757560934884063965862632","19227059677842585901690617600445232928274224790185302689052731687832327510328"],["5244611427640606512807985858432830216660576574616977337707916054092547903553","20118281906966372344583993291833244898240930726816100576832766989269404409468"],["1494678699159515220433562901716801875130799840398730403378589501959878698778","4025361627863697600073203330873787661711981353267479865769377748859583899323"],["18452071579955439925510737811317898831629902855994113527347696509880337581542","13495709987453660904646102077181024996471222215215549248465317800144278947663"],["23925832174270037527498496918339552681001076186158537398989567540625477032683","4119761364032663399106136432743836017563040218151313822879291216189325143768"],["9421486816507815450783161382334080515498751750160613770279197630439018226910","19541486653121807889263528351774832953487473328585813364892949435708776787064"],["5276981713159323738671479737487211508237775011308781902339820146436913807864","9182777925734259559385461685641410367960984002114160952989012130571515916500"],["18378407199368461941611612648070652549190574026776786504412922834510864954506","21147903922614214310046341461799312928990494624898826964290335269554934373481"],["22885437373958282965189564490038850496738460910928272024147841370452066424883","5088460406832500673456440764382761143574823216157472419587007958816716336697"],["7276537506365322702456259197990262642606205549131353468457044001054603857818","19162927700699686286572802485587097818230977624792891918570921428191651209415"],["28595549543853430227660784353404622151522232695910223639327251490725791721276","14623716180576379969527579251850645273619145280456874514584349363839141757065"],["8049455780889877631859451035522490881748791801301420804676437417205925611310","16004449975928321228645520781301314093327495581900095070076603682898309391880"],["18137769856878159405279321269219595687095199613043487546032019961007945195661","20349974526988663003981745711711090829545819775050961549171339969908950423383"],["16602431692500298120144277250573603106409579376414657426219227031668139678354","23851738665767858711877315454384270184224396265910679324037104410462199580272"],["14265205184058261580594446014563151647666829769670980176927381615145196932442","16121875785852596684662071112372495985039731437016541628715185447928960252862"],["21750933934689044070614061527069518721566244632766079956028329960358086093258","24213890157455385761215192272674857438950066508010407541036837618531231714249"],["765223977401957218800821037154205192049252574208986319968948418622867645757","2919934600772176266232767953655153523521678800928389358346913320331561274113"],["19782600136861421410221351907877316613416931911776885155073201850874147353359","14081606545759238608704293592952561636798564366569979326643491403453375231390"],["6672884055307465751125876405713182986806331897025436541842458904691956687790","20436571403747582778611011569065674929947872462288389635901796105946888053143"],["16756344189078235850595377535356119320150033501657404791531125935770614707869","22712608736324222263694927117140898476387332341415845323921714342757879010985"],["23260415922177333915647057457813734339528533107592723814291034617294500333012","26308535042309646429469421768870356546326899979494726627743574174878472312366"],["20234927532007353969879491592127904481892636411498223043922580839631655631399","14982433925980536908588503936223831149712251417263020551961687535340535371584"],["10970868457227848449582623053969754725338545763162740855522259859692857434429","3396703916695341869299398658112260932735239847938366807463742581951428460099"],["16710749641907817439304082247017735997587057818735346705110005280351609341120","1075508042485107384519466242438739317665788851908753373197420818415388518205"],["23913852707175753893981109472218295067249516723013407748551573979299426798190","7438893084837318027995379510461625469665922352751073180276305010760997341268"],["24874399701663580767189085890759228468476054690509433813625327726178058599316","26866363237934868888177464983962487536206108576176437598118960604569545252470"],["15792630448106182129311290627791825150045999909439893174597317786753770695128","14569640085088550689582527467752393684096878260752947725008422390398797041873"],["13065746233042535003366182602932563629958439629476735635674491311623235634592","8756669122275647214725367048175364793083574881664056854113908723899534357179"],["5741295959578846379742606092836266112044458228062581989439194293034563717843","264568640579782943940476878423138293660609490401619593851509378483152800734"],["13211359946686038802394180272593332080649150275655072955550064283319309335736","19561500407979546062131312722344632100574813980518032578675988737977661308748"],["2305859585731467049038756638937952400550204173421780327095694869237974896185","26466018667070692652101148232834827463881747568716466844837527892437921651579"],["27535077847874715952374646375547124088607824245028393014393746451371930886039","22791290879317287944591879784581483396684517382644147177156065032715934895515"],["16715314017198165285514049902804240203816890845818464469996938216011933503010","24741135241339341728316389264890308016435033902898498570915931405398768518183"],["20764208436052652754050459309001800390798650344564056203193429685135879104567","3652194910170260934200665556487969298456448907897932860772624200250521794976"],["27207676055418071682055645671075499184342458064757612332628265318555130937846","28609613148781289555924007932303612004463872384580606835700722312475977193350"],["16060818021998113902510956498433781552777147817798137270764373717995354029966","10829667193321934169617202980494319596149097981395807234769457035458268307601"],["3207460982308514445592456740298441831674771335445335171178231513840457045999","26023010190334650670102240572927657278170724311209053951998197512813284002869"],["9497815275828832019981463271128287822694816537184723024282841259883509456161","27849659148544966484066573179135815906340860134719001496515843489544960618403"],["24435271286797139712468337663970160635414297758036982579540427069875405339858","11618103402231645142533425961347123874384691936718853141228796517247839488206"],["11104245185482290001474712320427446863229189319049107123956618571219771050610","23510668329819742588008089598428043669587071785857247750766768988440959895566"],["3366161879801608106230530477324440913195166547708561408530421614586587073580","6865772394079146071796421746328109027000853184959896557338259905950113826108"],["19583064141197324659674766069502249495588224196249724642495207042050038984033","24614885143495013808416204439923812446484764806490927372882206022176168693010"],["28178025706188583586066794078998890704918820349893731243790500080385430150060","17418615170413961407481024133524136740735435506890772609903184853926612761213"],["19850538385712347428596132026074295539805560540400476912784216424763865075901","22182581795158497930095404565215908914385698441914948383781678368954229909092"],["19798820543955526726127035538965936037956230223382970809042350603875806221819","3763327143694022415064958490995336569127914971270211100307806117641187938273"],["7570978545660636663396294626507527491045891659796695208641514350336645245329","3038476827725040311024370603540018687793445119388221629209186076212462233075"],["20185141505471609191466625256390700819788149865376115636997074126878581097119","4645850451542527737934226441072855373673979035186722085889181059909562535258"],["6515833491060328044044557639681283754430298182722357364861291534970284767273","24699897902629036341104770839118604795093121462565728912720748408204191951975"],["23663633510928486714185043471428814753199964176417633505526889458334987298229","15092631733359562191405820744094308099264173535389281921769171808544060149765"],["17999483838020501846874776986479533916813376708298906532184783756327829787364","1582956896153539110531178180611782200496163510143789812600760802431146773740"],["24343768754891283901819619452371187769002773283754693393976711743952633230613","18991644181414013334378268404013647646726024857672298472341445373323080922769"],["1825775918398863760671296393088712632668002009710613820848071814482100270816","18437790236030093304932649083557042038377110624098875176033518960632280814062"],["7614600344088933818569589238630461127370760265645063627434072705776976225816","16900959167345967601592355029763290437883608906780943269758139425836500527089"],["8600822535763546616897636576130104892248643542105557422385758652935877281692","10232325384248918325618878306482699149812142911854881606636465354983458075038"],["24462333284754408631582898262274114146713625686132629966872829053103848121257","20834775083123225553560044485215642149507741917854998749591233325362154730620"],["14308066472920470363893191535563036030056907643959975606391211342492702245226","25530640071203505902838598569351710361780759181766121626911335892856404235340"],["23426873698443366224924373144863773252390087673102374298369475307709357574579","23399266694144011420284692424867209502415508372686016018451368173030451678883"],["7844667577035788330089542626927398463060779314457109940865863454184048998804","24219287113606717534546212357330340901274903981702747345961277523872118344576"],["14160192787497342405794780947225223992369338217292148274319901836650972334184","17215199054838259529571627628056199472973746774918258440462592556935307417605"],["23774744456328943821978043095314275255173584553349168141331303616993228672603","21649644780119379850808829753478908304079653996317939357330389185291522680567"],["3997987093535025856862029256671879728878581232752672395730504388588469844817","23414589917402352642268097451289441328965579586630568073476173673785891967931"],["17723775251043177681796343136411639352629412626600999893077572410337148837336","8134825097020003264030250442309937142135071852465120598676299421653221514392"],["682944637543283316295255801638556301326557540970065148119790887186852433570","20372598959289599234449177567422811054513534785944554533459847888512831225403"],["20645090758177577013573629001976708825459930178483083766230252469007672146199","12249367886078004617434589520088990937563251607831105707118044173424660135981"],["13467173069573433107569603699583019727533800475740971022248012183930209951672","26835432235972247934991264767693854509571598785204001455744700753905932357121"],["12004508033796729374451222964005344502473456423271390703726605977087481261874","22306032684457145024006052066332754548145320665539283931114718574279489577524"],["3785372485489901330601114248951842511268204009053798713248439184374960674090","22419876617028612444643284125453046444285099638081783509898514070804809326336"],["21545452319244032859757013185056869069551571520833593183296838388186626465440","13056814499205328630938278530460878434244274788786025755567158076536614746871"],["3555445067576816489028929716812461998124994728100953019171228243357026175390","6146432270552877112083109948243859495215621154136355511141299345659084533936"],["22968735265679871194074621108532977438386225986913928930595060422829288847381","16204163746061285322340731818791776292785561051541287436879895110541245259669"],["10522748841343812501939612606381924245775141160206907158235889507705282414745","14583767596962788086888071942652013694730385425767137123227056885061717834657"],["19903539978193340398056524359868134697712676132934115668894719271978349299003","16928166640554423760422465934292294739991697910638176740626156718813541405121"],["6869715670671777954874384053497604675476596236415746946651995779558675501872","17340635334725588928895673876499733946558416611128100409237182030762087198134"],["2558116394742704433686927206565277464178340593048798689174050575495504030534","1758918460245170046432945223359922295720558224786037239912365139849374996594"],["7587982241908345491353989681938040492381574014727038011203408415069600968160","6290364371528806243177552065670970029654632696069801386715324238056227349111"],["26855905293663095609156892020637063879771948953466738680819027138344286174120","27977060064836654071976905886335708849095899914560666790604905349792492628426"],["26423495049417696486644770073616325420368146091093272188015697341003059247037","25093405136896111398861527972776178654941374411265821394464026689438403388554"],["18805254175167311683807526500882142163654125008252506098263519116710043908526","12175426026398344316104565129156418304941065372659225331557527280952609525256"],["7249767704124264356491543456825551213784864833261889397813399791752335603411","4539895626254614461208372917052387385797975586449413811788306094281462591527"],["2012226255909630801845503368304406629945235428014917646738509262319527102681","21851314154805044323233283108625801563648684036641274529149954256673589177015"],["4535361519522943886899713139588650986074336095676346886445743887855553004730","28430590515977376738538041392898513513779492317474898717225277026925862119307"],["4148838190735817676785263315099235027118571987216503399870906985893687786956","28259342138906394169981545793185390733176380572557668468562488871835094235280"],["27882356570767477042487700025439569190630308390700810930668241817578908197827","19551379224023562799097467628024834526691482920259687996789147930511932280609"],["26149434515407974794231413258012312924035089532429301028806574442185812051110","2984027899307523932835827231390583275767826368079650643167394789702481612939"],["21782584717627788394920202213130829121673998801481709364514451057267100287251","8776179520672626919780641803231019747914884394864725911015636352954461386530"],["25856284295459533695400698145820378591958855670091032817715561618616243068823","14385707176471035766121794505914806787516214518670313050278988423385165133729"],["23563709403024262507041644781105621450997713718490806377956149229934834751764","19712515549872751600193405908867447303779333168230218842782384563209318119194"],["13497485252535956906825335030269065435854931220842055707318997123762387552272","10453992033912309204882221718375552348005771332145984551770512700409508383936"],["21089095039098754075133308250505017946032684860035842412941581160542304091697","25307101508245267469593636817248888679002269439753016853603572033921066435183"],["14428887547605163893953136578546464817050817025102977185519569858903843961821","23530967785828429068577718479971826644362203691709238249616114771159606557820"],["6521421581363728714186250103729875584531233411712685280564661629873465116394","781876233393200760696678182847632641082662902362275749909729974057627052562"],["13174032623907544984369261710079524362199773878185009880847978346775243188408","16193168658728305482798332022371457255574858412000780554208926680565742056163"],["514260550048307547266522054190155275287136366499294229170245385363588529282","1947740305961063947952439375777015632906023660933823635029225618080263758424"],["1478408278435588232426057972081170257650734841629298496186289974253641962446","26754331014913616488141462352363208375657701353320193854867342569090021052609"],["22379048506924212992657159156325896580349199232294713070218749259836147809329","25050113069110945844867559506635796610989381297857179340386576785085065167096"],["28363668053671104299657490017445739598541227909118582560360834341053835596212","28280616578599079005199899703616616471101840869198286261414875328395042583402"],["25155327286930011647221341305196567137495813846879541574121650871657600879086","26379915894340746038200830882868621925526233839319059114072464812175124849125"],["28363465049031099966419370809848051631688468465590895284717789084881402009267","2953059012336622284791842845673657686898413132493910150538884427182888504868"],["23021770940326564186415288422443510601107824333072060025668394726452915443963","24726417965096741509143257919534601852059471610420322698167471019305583207567"],["11448322125708449219903279085510777355893215851160488243859794130758752881258","24115383642228305068866325335147327856533405682873125186648120189504691545490"],["22549661099995306477465881311257824019121397789408056196863277034424981847715","2265581728397361996266214910201275660365665630255877790388097724233247888692"],["26738804814898918738182230130408803523346503659148697216220321968698080435066","11363715624353305777967408824657228344933634564691130625407109909627555965860"],["26759833064904755816898685661701624009657184362602502198492838592456234113660","11337147835122288769140615134524702231133222699910562256961574958262762877588"],["26478352634740107356236880403068803719359586018933597478391408658502784319114","20640857640381047667398626513291764664808133668262214252315803296028772805114"],["9636531225567791265032910882620897790259769693923308732090181502386455336118","27445695511225046958877649972538847168822695900840892171229441748201837589901"],["17702776413227312326289015354432555239195501163847837406763829309404603388579","15447766874224074051489221095748742609291684023732415842657567351196797883489"],["20183291132880720017877660393343273478238184326474139121180978800467963214214","14527934563713836276593479079947168937067902171721674267926101385221831657738"],["16898443609984946664107490689913682054566420681997651851575470612788722720064","18244799930340047588519085864918198270074414121105915690873572822513549139353"],["301529654456350918203057689895294948586360907918156653548428461477141868322","23381144081487174767084982857242896544965409916778194851304425942192879666541"],["8889827085932248141821355771724022893283476401439072771785409647744561551329","21923380412270916638278970597469915308258178983171841523066957356191171346396"],["2054315446274293775062354687775815696030125298734400421024629233314787465339","5834075032515089100511436178929934115704483719818192863172225280828984120022"],["6298823966483871868413084879135639106263832947860831906425371553272103151299","12638317238887618692821232378516753997058320900484844633163097008236902378986"],["24593008953218784424487581493949295874571737582876930969528538175150050282946","25818496452944154223383316742730972494795183959565314365788497351738365361989"],["12376984915457574104896044729226519101459437036427966817616311034100800772474","11340237828015614617736685696371823997867766050319936441775504721139121325392"],["13034458458150043819568621387010203111365370570628948737154136641383387442379","5070271244070547561103338867707301771353953340717294400754745185339896264576"],["11925741328828062169612923656034771820061054294182499777773371686779559951388","13774530667313510520427913526508789806160613355570124609929376043405110211113"],["16069487011027176040961379711692827058893009117778691969883699954959124224990","19622431763516913882790049689964996824948424561353628941564224793544706206466"],["4009195669513407808979012320253018411518932509929585720879105443801941393796","21260132630372731846446900799993947800444746066259759733366010921799003492051"],["22815438555794393526713790803571317062509044987517434993689056775624229738977","28537169730530439537893075425221588556311560376782747662440782992799504575183"],["13997096443588217316455354143978268639085995188235620140070721095265867908163","7574079334224120465049278423342128532757587523445629205304715245115509813655"],["16491817983253312710236034242020016253876596896954443304356431378265987538501","26912957703168872651523641658614141654398948118114151304037328521245358330898"],["14350946850543446825126501000487233873104380583658983631982769643001296693770","16801875908898972349677937364884745666109298616426678004280122892899775454355"],["28341530071915940715426863990762765895700127674338256449037366935005864532362","27557250153447692777393195143091623458926017788343716025968079867021076399556"],["3951974568578446822423399006644202736414963375175890879795373010445658328562","14742352433795666272144787029789053820372884640249621002785036156499566621447"],["13633745961195649621712772413342920265213606267962700755775020302432301664415","19250155942412967568669620781380779693517568178776784829705230963047138277173"],["9387056621866032624177141617762018621062560800361072364433392875079175979812","5641973995375651933690081004976700229202587599410389988593383291219311282985"],["18497256193592923393040574015875534860852050451405583309838766317378182763828","3469883172811757582137751584416680441530236495467653158306746841049771756319"],["27260665670657174130813091860365334824191159538243075769081708673728175216555","19139601233967003743561319187862291953792546472635511464708668834936070528059"],["13417104378350877778972690607902824305730535618403222067187943060197086315894","6353093606462973450646307516974430001818159659371207820270747594893344638397"],["7440242899911741986498540972828874089746907024493961298097862869307075566062","21803108399664276380230690476384473190874520675149455125428537184506665761477"],["186170154891599404283573864469870069750806293443917301366392749515618643495","7920108777864824694674402427627479072960659702129552622227994744405341116759"],["14388533524853723983260146303183113298903631329987532443675891913665911066706","5765444237994234725982295312447610384858664166840125879383189323530226328963"],["6678028143983567492648168952721484450661660417307399959808987801165291533200","5544207423765170166152243274559482402548975223897354241892362665888324187553"],["5399890136390227866149364009286759817953148716410110256474119509546344856091","21993863423754211785574315672693945779348033364188620711057388480792956318726"],["3346882720004510036173494271209118568815678168149974865173540846567846627967","19191013869387688259761569175098923516943638628085299462135198996682033872732"],["7137901939467832682841453113175005106309808818126070059867373129844595138992","26221190487011302793734746792771331522906325048123052601748437751922806033369"],["28522182119388059046450468846016898713017310719013928660603873881505535125733","15417792317706327158155438577818239834881398572701239199109013585628003730495"],["4942203151845827024327028442366381330531417917871573105793354788987394651801","26667939984758571702803795369600051341819713301850854570300072493139976638205"],["22611898207301893426833923097599622907100957087945956397520580297224590638909","21401333374311912060047322502121538010680441715787718927834635386665084272485"],["16783002835360837566670545629665073426034831811008206081247987873678455417064","24354662986347018355215496750610507376873712749931230620602550719060055654162"],["22477295514024040505936761896869107432374614088883429749820644665424360119858","27753091670413284715017318046663112752134038368392326226722410277489026690195"],["20118263629427585233148524942139952093908047567484274182649794940458183356076","4423874038232289740163875490869753293784130551299474006943756034298403884855"],["28578000546833402157680248349887549726390180835426837488884512618825759771587","14972529172788136603328308747736250992514841040409226351088420237885772342839"],["438540883251233766554904638978269107441276086472869027457263273193953738385","3513452737269759215242368892628438123569044049082443149575489897170949345608"],["7998994764552241546911089579405905807572534202367105199926319534034696826280","27838429905178221423397552943998328677324755819591556988323378610255547938537"],["14051294366236462643254000529279949241046527913899393600962326815394353557843","14532776341512768686205657016517127079471693121760471060746254705840082517963"],["26607287065095469707869973583149048884712854511755613418337352176546182613810","24068637275800322861587832403783169783620869249306146227833467187355446747987"],["6657551263024746631693316897999369526462028048683860071956613437588636180187","18763622858993116622532820902131020929868232238839035813776511252089430135577"],["23928833743791821548897452033998923298007008265465134213294907674725286741619","23982124255945868069804032329999086004953597714400088961591732587542540034575"],["16098691715184199547363475045139391555663269077662832166650705869487176994574","6372409416869199346987248320499576232062975118475940223408287203267213923636"],["20020495904242864489578947479050770087419944234087928178011245519504111639296","24528539338723312974997141151997741300288443392650290120141913018795862480388"],["8299653836678329063094614408730845038920309604490019413825387036767725560821","2589845497419674187166731884267548016991989103585999988666503559244798794665"],["6592583749262560187447541350525296306899490653035046506910816584090244551214","8000635815169143001819475134892301995072279381935336405524847421600199382306"],["2449704260659221391600138282924445042954783513897327812100022111725351107292","2563437594673268556863172105987565053883826613774914148047176140462030258556"],["9180753409032046118129659364410822607822152434540188744610796147348404490655","6952265454938837321971566605287137698426198015736198839114504018348216018072"],["20258361768153272876140804122013411254795838245850137659239090706246017963650","22145158944133482418562718751761406225134630533556216705501947335441721579281"],["16295972923669104912652874672192052370460285190343288260909398430835008870826","5683103297787008519481341074501103644690056127295488049389000142337695878510"],["11849153396759159635923751865073748224853611488829476738970596535844550897671","19209371003254138821797431070787554310447576062360556651089038271005478720556"],["11766722651815974324873202175899081783791403260320489199490688261085298360107","24842938062023161660564224267600654900505871049738934952278542729329346344446"],["18343072398497758674055815295543566140915506730028588823652415994277281081592","22649104154047163181040318896698778577929296724533587918427609404836086618773"],["822187535753118259549050810704631967604034486241378628529344977894295239951","6267765516070658920663085789219642854769150249661760599203838952025360079745"],["9041152704675432898203935693112329047027880327228275227492053557896378588087","15205482405828374528544181060849798954380002273181265059146136846245708940907"],["13701221064574561324528839142193893620322736534387291577901790999997264052826","104002529411657980152871999831045516547541900809467781060322126625198377247"],["9907567728765021456476691031055038277048634995123849684716040724651182834559","15432577782900464427130666281318190961969942945731399392831155956461390063018"],["17687914714796755932308101302318930457745258652078616619416845896775437355053","14959727294592123658923353147055332690176847810223905200287710653084903347255"],["13425154830503956648006837995788025611422873349964808823749999877130591182760","5559389032253570771228278111247615736702968363802729854019199633468788506685"],["11547625204164153094166227289971068110933527660150753050552083377328085563744","1133820149203193090661736499649279292561278022300308588858029446514420210707"],["9630613642179109557724645397785229028364473038307082378853726051241037777941","19158838702250729855299181806932187901218484337360666360658119844391131642999"],["20772685746425423537456477436288963312493239423058064232085847576231215364097","27207824982098686231620170175186908478318685298814734069098869730776351382403"],["11890506932152009698157448493138928842481738919966020971144310679757081687344","13528352696144049805182206764454756872479306298647990114609303495618241438443"],["13918108007311648494816892473388653265978301083997085209223232776453093209135","1891742787183802602846742452648874384788772885287384189447208558602118250725"],["5977930672452748284551025853463606474831004131860372223299825347874612296787","23945363995163921842668526694057971816483896645569816583716259641227174806561"],["8790404578542208456799150796238885183994710071701603467715446170305134539434","4528955402779516107205212527555737309660998691704437316594758458536646345321"],["20097937323978826524291979243862051014400000091793704079574028673504336684069","2859541170673432303182327969572891234837449462142149444431391548724033984646"],["25854477286613881010858759472848526102618342615936279304558622521681817949831","14157353233917822170437181229418665209088429203858346175562677212435563277453"],["13084018951329990356147769943550938890810431094983251522062790987808963364889","14553647446395072373917369414339005885120607636754324101303480458242523106566"],["19897169160117920619304664465078042968303339932737616990368550709873501977272","17436304393300022884491299818930716124631353812034620136739419341515644836578"],["19142285612717346267946528974493364534640737204712439068829031511519677532333","12315666028423629061963970428083649381570904019163638431145816154074756561805"],["20520715852437854944398845773200560152882615180469767052086626736181927705421","20509869707456141116474219182523189485513193288221980146580426325689010937293"],["9734501747508282102408034728147115904618125523662056913398073489996224012381","3912072044954775641024996097883471292505167396945432508380945399710286417887"],["14470675431372584821959279244427396759194886104162293216912111087574117831611","24569683524362139459265952080159434535349872001980249062598335196580436003394"],["26438227284841965246371663135713941607766459629933886437435070179605087458488","26188529727986485319789181141358525353885344414672141871224800744754502170066"],["26969434037515419990923620683875659266322123526408293873081804408670607145920","12409052775703421529046117995910333598759929508803925196380765479136545805059"],["20897611363636918161568691452423226682200577533105279891364300869325503819264","19992388716205047645062275200371812400196911471424457154840728387802345866807"],["13736279555936152277041204348452626756803332812509431174472903881748217271960","27197031635810882955124341992601984331040817699257389850403282037566628154475"],["1938817096806395503177643046438900196158422174487616799701458371122133084081","5427104523514035134900421466019184005691371261584100199893666619317586949740"],["1327356745948228293935463143038036966374156412564633167170230299890167912771","19290831951698412033002317528644684393423980810309466710780811432350284311462"],["9291322095588751017229033552165905585593619006066826673074827220234798748773","24812742697801912450011715875061730940703103825822607455521770704779877570725"],["826367552426462539472783093310560944231016450493654775553332452811460194862","21098804691950429183829423801974516801577043594559168021832637397828805219953"],["425209925736094923078505894135839307774709009821613999059861453142056122601","7583202747417555555343663249420822500810217864981418275476801920169101492533"],["11369772258216046542502003148500609160282381855393383700000168170452026951190","25608116346318233140777894869721251410779644541639114813747719255332915892288"],["750269663940598033521796937698454201669402504505123907096762504115277726325","8916029385286581325647799960963178127395933092964163106305710570797797951332"],["12369704851720560599910707340401594600572419804835152123892109776980587191864","13775090510138802099610214213724337960893136996382363319240707593632747289312"],["5316691579735676340843558865289076818753806772725200259253486884683085984266","25583360811737091536344615466009320771306385773136299908388710873154348929300"],["5038475437150962893006711766368582064441424733648552652110245458521932800867","28791439567055055547625913007856454657886619561626180883971505666353479373040"],["27021682461998148870906111305231043766433807308415602756375887503980123983237","16061901126152607578360043183898660146894394409365268332984623871220985034187"],["11116836426748875245309688786063644808301194881985639976822324681277816836550","28051825222826076231275153606909556656525791693448225310448158262528348227874"],["1417297777559576736108136535463720324073338539639493446114660600928150930938","16641567320393121452940126863776374823078593288569691665461457384380788662928"],["18693801691616393073367113120773390087199471789858380852510467765289572470231","4472410598427212467876315700335774536443857170121972767721061480142766321380"],["3135811714405720550827763240597850415421321704049996354741144556617417057905","6270020463133172842855215974839334966570303244167479238243470584295017514827"],["327277183836376687274755967269203088818793727072535401378238429251082555825","22242956760021860917644015609004348576334828264134781540105695712079669687030"],["25783741244642381808263683791026479922809250365318140763953033715907638839300","19192532183606611805658623144198316473905996145116708610431091596566452558936"],["28083137878677912848319308261731573470516811274915573039969243537862629836875","13920025381764876499288506356064765163417206368343963554676838483868361097454"],["9296197016913048603127257567325091293240071619583777002560782126886477239591","15433096663375315254955324262884134229620455141306170373798600075547586129841"],["23720287998289186061166920378561240757198643139562127675080779819727867724926","24641465885541665463682773891836962927152805930456607492624011201272894620710"],["12165061115023093374843672970243703396402683297637846881628144084967523386802","22307036505981128379756806457085498521280820287319016427220877578091871951275"],["22207142073032453007581125088481037635298647766429827700364464210520484667855","12282420285593087727306706738292971686883843135950527935842181565559320320039"],["18265974683444128090551052110205995579255596752856363788878583299866785880360","646374490916853627557290632898229530756127939539108323163475625263865043171"],["11376345668836882824197380572437461272271283333087853696178238636448325816444","24487802058375031885468070954042014017167321454653947779200730208434392157655"],["5865723912567686319490132590173982768865852983168098764223571918411625161778","25632138614144847315807344545498457095964058939484357087080189438420085464456"],["7567913304653636956872343427605330425287345923461371617419199404900271410187","5237544055819939691831241471272194748630919040254168625184025837551293173877"],["9220676598340575509933927176306121124677801185027022931126890940734282703562","27235921404724979225721328426623094653283067339774676697639430369944579114897"],["11549903331708261465948235902003111611385102943014055388836481638256196340507","26183386178955001335799699472896994711634979263950266885744113601388584373234"],["221577872473667572833187334360995078204526942788653549202566114302418711443","3249883265015600550170749896708595594365666538926763465100339999978998568356"],["12591070942191633152808221213382743621126325436949120408422054687395903428120","693370609045670481873948671312364783223121363536240069760698488554890999888"],["19549460858151072438015425991819441841950809960190366301559523390981599484155","17849330448637999072206440561987042880562749388242895326485006571228512153549"],["27306283062191132162698169652435499247104386520778698594146910954196875795428","18657372750388946357265319872572249367050771188340455720795613649140538577476"],["24963516901529865298878569853261893081575044636315243780566193456803681689302","25570797588807930959146510536507650872682638997840221901777290126761527032072"],["5705665124182014364289686966500787644578810809481129130848662812220784197970","21841565399098533472681478882976681203321867837661273608933447386023876199585"],["24650178412623531036906219814104544041282759220955895673173735711983285263793","788717487662765146641759652428964781709185507760798602889187627635839075485"],["17784949548755139736980946952192703463249858857322727668592329038376034144050","12761358819230229499746423296905020768629299996235107511957182535682011983437"],["16571716847618448471987261251809627609411398944378934546454372257153536830533","10289166521309772475126978003788626138890553495346080743033580230166887256456"],["14722918246109541478760579492370596877650482091441874397008771272610015060580","2515058619638756027165367366526825385316073193155048410092907698346220326685"],["6617195250173682383407111638239451743695341466317373225445713209513255242886","2561810963319891634683940571046912980665368205056315372495604677247635036035"],["21277434872506056026276656630841523712471074233652120495723877186670715335522","15133394523976012688829807541723857513021941448326284177869625264824877068187"],["21050222036790094506203248976854597110901871307766135954149601269699786746469","13329008033826043745877384741217104908556923403225936377345495751475307116243"],["6034248791714467004371115424689722209840256216240458952327627091858936753590","9031518793577376847581266520346328322825610855262675140710347041354158322163"],["19876252621935473021124073699926198546233296182169568488034342219462778590647","22480918387385399056907251217336743542151857841549550613051083104539974724929"],["13625432914834064034473950650932657186252159374489553094625011435313723356087","22687083471641603842422431973713066936272097910677961610859840125450283817405"],["12146621775662675747278643704280471190361939452753578264187855675330735448060","7853700176072673200952806377175549653606240773958389578604560899267097473597"],["11588439839843443150701515286119989653959830719328976401521647430114664897238","17394775765841808037926009579855531810668091165729166005889747759057701762038"],["4747717681031421670146246020260986933558517148606730022276269153398364432457","4330685245227043346075547722728128811462080708521317762083398102158691989928"],["21744567449494262894020851653980695462447536281153266516835210954852891709930","1602456400767865452340883862909984033793876011876702509532687387610218648781"],["17925161370855024532006974262711035734197632250120736631778859474898820161677","25590079376150826845493045445813568350615436624886504290011682713964735891255"],["27001120945381893440689425923331350695655941220212367654312801156261096653679","14822805073224095876923292842447224666920069778218909138989192366258527577357"],["16469720220481028732717149251797857008435386773147402248751969850763228686405","11728403044508421102638190990736504593065190607952658144075919784735937983516"],["4530932061339763471249523864593865582237551151089430001229689496169930274767","22343803536648549634840652025753610877498000391829167017261595585883268172637"],["14079316483555951435770032387386559758946828053341812322798313958367325589952","16607423174635016044705092639313457617873949532373906930383599898009362128141"],["24020738241319673709364751034559467165664176674085523929360769628263203383478","28074805861907991685030545868105606758328788061860143465173051669738083731853"],["15901812355396540186652200262595054851219717429966692811813227059391367351829","18767487350759943852889739371703722796938470903449154225543782026063811483138"],["21140245016088855970777408554243626318803005965982424845465007894755953388972","15224254495944516387369274139186048593372736685083958036249741564218238556671"],["1054710585054286357059720061673832433867830290116538313666590528355226101782","8379075459918003729059682301908343068392644051515311554977438833376242325114"],["19929110644882646412254710198327631222225940991126580532925053036685468749578","20938386030896926185230802980111829831842607866804870149997730394349782581530"],["3492387781319002467446946692742966445735918987938328907487355708684150388008","25036576341450097072851076948452046171837791733366098752159788404161426274495"],["4952772304573110103073598963559266632732532725413906630426953269394665228561","4657639622952923191181252785574321875959921800406577986082119051340640230881"],["12152791301514818975242896215533980970082807544846314048639889136209215077854","20395971347598233132587762653893414343841106845734292363338772510415170656786"],["24492262285237799157901227253000396285551061067036476604124849452650162262562","18693958520971734175361024029696915240588747176461553226242272996799148840450"],["1048891586845086227825632568055878016085118504563371704225556908194692728866","12355774689962916310550877075989178171729251407617834487933477205665870297650"],["10559897041183443816747753503567741485994557996386467348195493750156176758956","4189697275133224292903779886012947456901566983174649628929501708762059573676"],["3579561673315753078129750742295610056225925804149975287927759092833621017","26167407665305526966642768693478497047455312641978483189452098519678613341826"],["16158855353278740555876866414433685696177617147613162365333916584770612970247","13532783382482291183389478545215616426812692383285596833141805579470912722621"],["9969255909189969012714467135968392471114131823305127516115732648465700152159","6826037500721325710215053854151488493887176330104744303204774613432121583197"],["24290386376496757919240520187885336731170366341575277468344467382773115375859","10701367018710876531047168447764614261098529321880819819898393344238256135495"],["7117034796677316959192869825567274893970401958111066870351442100395351539236","21658362006148445946560376888112781147831478981941200867566787307562519899071"],["8976062715623232915911619029423587811700602110832988468439131723473055265676","11061324480382459813433602661090721915856722320129351676818509252334365824398"],["8243661059521515636575349160342736088036747418308120071373374516430119765301","25114541482081897029376331334126770816707542236390116765545498310823392647587"],["28126568884346681494983061798948368996832772603607664585751813438306952233526","15855880678774396466109398043560703972664078447046513017578209259946659343375"],["10534971370906461837447448362375511197247884633717688552913619924222248220596","19251455304435115385025529051991369308119725131416405752290248800336410083475"],["28624711491825654914735878898436563315673918611644555847246334371149782632996","22311686969845892549969778088406623485843970296699356342052307218500586190677"],["14130666661549168207380372378472093606286399204726669247434468222649458740742","12777241706381394629461788451272300178691321263468386323201189285709222496834"],["19022949812603935798494672807016875203682086858329066952910290112808012875153","24288216298677305056362868419755926214086288875988036183435013669316617863381"],["11131193080712475914816844078278084924374233755005976233943926122866628170865","1385905144376118577168070210845110776422820592073310732985711777233265612715"],["8022319247042750222152383867323914851738846461550685781276187514368937762519","23234579514363383898270255690021891611387282539083379079903146150537295472239"],["17626672266584331887254461678126890205861453074321668009964469536354460825785","6769000096791618939732134676258545039775221332803067248436594326952104834609"],["959417983949024001310043719413264797644551007532509610136749342484434724643","23607053074683811871161565036791613043767407951020543129098043755632111597633"],["22428250617920415613953052813299289331670629116588008353858454567068001641942","22138524594199525470301517578730033311466637975469874590406738835165886968500"],["11848624745088622123388266987411001852852748810997955962558556066309334901641","5595364565843408211556976390491317551457905840931707603193868936560580923654"],["21260903789790674392653898537211473889737373889697882884239283810573387169710","28840613290674521424430735603976847581648328682871444062618636720569402815206"],["22966278529117779273380011801900949575993598379622128862663146018349816317787","17515387831164217440961337402544550895270590701621712147336235975480330554750"],["25517063554400475192262554944074274809551932071335222275377457792468318718753","18750190904043640864280884246608205902806651544172352791519036605980241500935"],["3321504692630820994156415361651604381566072422290052672648643822008176647188","978354267654958020751256218227586279166487145248683862998867317631742829170"],["9989143516553947446491115344345457434193890491764480483004036807757173614535","25649555163543524193905816708516614045836197155532720423709086945579896660103"],["24101707316304712577940601062519935542589977202153877093773341443583447156791","22949321812281272030561651096078134440284801911796014897222971545873552853702"],["21633421685752623706863912638785304359265748249462169943311750542954405029556","14799656539353084218525612121966473128817869498189392767754616465936864738936"],["7835128281937081160270680336461570103366060700394792699741552904435646887373","19396364932184609280234610238379299668307046116968383516612667229149034898580"],["22986483992183892092269565381106223357865695655683930740493180304850020366813","27065478312784790682240688311070158729937128228673731779431649282323957786202"],["10387754596857836286037697491027159821310874973384879396574357980398205204432","14546799140050981573481601279135799607142205340550964564852005341982951277394"],["3368604123842973365697884061272876018552474644632710025386134230236116665651","2829032665072505669787427810091216897319088785101585999577031990096035877380"],["10055692238389347836594710229223538277640158865347147250007586411949932274942","20858835888719768109490692466344782239085345060878831951678924229940249082972"],["17954839919185453699996725577847474028205459286956650798270947735526839717487","14947388069615947784009897138662586997341937756313870196126212365676627529413"],["20130468709225709322311867817825832128763670210446275700876429139526151437545","19335738234407717338814690980316296343788175078532011427479256981725868406972"],["22255736928703275779927408994985622485969970209274470842361128343856711900114","24348710944206088574037254180877170368565487995970893896270538997561646162769"],["19442846021750801942421612866266989684639900804352934485623383493056223805974","21784175705443920477610376469359692787280864017197023878995437129196198854884"],["5532911458099057979736368617631641187109248033492541913028988416714669903976","20577321983796188606650894787201506232430397070317829729397414856388582091281"],["21848572841759483421178328956174841066287026637865618625734571933147689891672","336997351444165569763223550353287044852358461139362994933425777027448785431"],["27300147524688736895232364012667016456726257716909316187374607880162065737918","14714799627172986412004043950158111239399726836135929250987466577252294493264"],["14110279816781875227535274379181986501383504946409892626342277393215738070182","21646412123479934369965032407693247905687498267818751628520300933102557134657"],["14389289015671985491544060528453666553006932160018731900008591545761716983382","9591620086546411195985462174954294769502611949412550325303036131339810253242"],["18471615572321668123032612940600339766301346749679136189787553666049979500425","26489826439794246527541912219860244886324522638569566262895897510166159915905"],["17196770668626313271653206484173571053944249736016885984780819841694869769229","13049440970434653825647704100578205828318419191338226443075263568277918101318"],["21629493763542576632424741217086726184303592477024901611689222491270887418056","5287221315901913509337652752838329651257439079915345932718511120894337464400"],["22500437861594853100685968804180021239913581705004842057140006685238787200028","25205033792410862976137125941715686630713399275902737012557002951327465123749"],["22162222989395361729319385029135920294470257348014143830995648771638401881301","8872308565362190901364888832769357741369618922131938050538957672831912841041"],["21514953359765320013050600343132779847957719532454895914006840257628186749389","23894877107625765642218722115886652687031281784322717628831598662812990660437"],["14170817139566778211890391973062763483433693427587446085551701440620261829011","817345970076995499224499089130512290540763905051817341519068585259743424393"],["26800473492835975792009835532553685307219654972384770188581422034398933920901","2182565699421662067759120743992296323332653920956710609979491329918249362767"],["26476625369650723075686965950520618313913009920766656778913514154511685920232","17580552985177003878686137959176444921718233160191537488441811108704554658608"],["11206900028675615860531445588030501878371086260978384893355015944214941032657","7074397792794321218810677726632352269820598299327234257253770183816695625785"],["6903739838675632650018315551331626340205353007565614880917300749871326645472","25125651525614351406869617455024812158830257845474381761965367799163190854287"],["12838151744854528439506991040103257411396879356007239552759724547390749358091","3855616558954740509621617517183752975396163067579200227568016505255065036363"],["10796074841674497139417795567222381581577023703482393008152567635105981796759","483403313136750349075056509976158141119288680818003749454321846068770331898"],["18172775388771111388515691677422953516874326696967681774697818016105945717548","5781360889669813514846913008030932498776832855287845560488648209698043414845"],["1843183199807418391168606522463939143515738521958404250996285053427093530708","12097734702918636486376179105115473979151208453114446275757830783560829826463"],["25878294283051189912463901077963426282782710680390780947704397884670460908501","338480409185283414704146563097565195216388684915629775262962708435120979243"],["3984722929222016163879320640289883583615289399826078597186125299584635031721","26762357321340720530230237603508507262561603102141530788786236540304615494232"],["19797593833131248797681806978443000183226444481810007449418573091818003416244","19556710673665157632416686441929576633467835042327097775772107880809672624844"],["3502214841570407835056427106873891936347374320856629241758506830518373691868","21473559864860622110299878077351405167055668652968255511277665964351433536281"],["18988401529760510060699105417032805784362698706637830644963815241204833434020","7360225649886812079735900851841376359333465569070112273495134159242113458267"],["17925451171149052585497713297112280370628618179329760600467041505402242694404","12265971923693331891126454197920261644903035159910427051513915163935474694062"],["9499936948307322062250237285099155744668319337900611963895394386187765742413","24185486563909084654445126922417775108363099400128547582579314568139251892027"],["13752915901753673762709878840938126917858238637005723655609389278151916089477","4263156049035436521581427844739459977348906232307953245429854052113934974653"],["1919450369881107553585142971133874534471125562981756478276376433251057593831","23801746531420458418442146503208834341767197335963579887866906235353513858596"],["3084906979822633480729741772500712996060449227184557650342698168278624241026","7490732496126751143765495168082456614600598039316209954851974918926560842014"],["22866345585989342415978997107790388949469565515322198303672409309528539053524","6670685154040505192424725099620521045456697902443283501563279998445622548158"],["3695996566484110398417057434179394986562033821166252633544172515633450953446","3084097760327741217827925325258153550157353456878933681967684560510334254033"],["11521617240935814179360572784562375967175127490975424930101477091817730162878","23076798085951888785840251638115563754658137718504444545539451671141383190309"],["14476106375445366251021693286442883372114260212441856327836834617790716307989","22897814544911596959431190880633222141758539676951886531216759934823540895075"],["23179738136025340552261191904818208223730094189316692193456697518736645435406","8893487390763612275405678496356037742177746919310896706858643938254525151438"],["12649034577137351594962062839046664158950676192630125729606831917765440498770","8509793009751134081027760975561685819544493850766218176558671923518821403299"],["28929085742982260613080176398737154635268912059289918899390558139545166801877","15314274697676564227714075584746970350646519640269350116937724141846108967166"],["22470904689578958149638360661545072082484894391419038696136865121458401003356","19734866121225590082992864542072086228420885573797154845338954133124046721512"],["7299566887485514188130727820270628410832482466923907635544122868233725521084","5616679931034325468023215965328109752454142262172364971506596224347736151761"],["25793544132336455804564525743332929407225575057369129926131602447777370056278","20788922563262672397263384272181926062428182484068090402936267905201150258161"],["8826218868948088806924750489229044483229525449392133450457721671222463474433","23090404785977445960163231584244213301860111693885180029184433908684857609644"],["26841164455354077518838320553208035794181942146509322282930189164895737880067","1247983969266599269003512203391976120374480961825183570222544544749156261721"],["23375594641914397352803569762952448640608804331662659263923196304664560048743","17730050738651185326739543574683318707051340429120074556580829603742344920573"],["6482077269391882900229663907555949946284028110966569560046505661870165554965","5631482001757799166181351870264178759561926175604276216377655817049553481232"],["26266989037694182946855718143586726982914329816461436662128955408021334434016","6370154357492145777992971388459311356961159378480196908616568244359616993341"],["17253353084984234755704558956065401128862646731544219522512600758445280944466","25493102840073465231904489353667296390302052780298651616138336293092790196132"],["17967973728266065179870387760713300019352380325413613938718042564524363332125","20089512441319304565690081034084786943061036173817176462585328561421772554424"],["14361017626285681932702952459555976093279388781500584881336164505393943986100","4333381130498107706761985168792597625538213187579612717582941824875245542727"],["21839646113711138712959016123897190567312474859519671853919934408465208634767","17917117235534986531392317791409080280512754269130998496085648801758911658059"],["23236931676898980250464941601354237830701893165227983566380684269384989853188","22041541020507109551523168746399909568777117771377227270700348265074437502525"],["15985744992856730997368662108107984017530558678766033883020898597780447749627","20482348110656848526225606719112880496627225569802507369406854262862538049486"],["5544657154329347780139009731775894751486825421983271758898364451349122282667","3346534704060484662272399485650748373798394792920487306218207337925802561102"],["15572703295974988271816548543881008594638677889693663663178199304708976194245","27482970528050031978971097111547984799877675908244191689693480491209291527616"],["26372538481935046334023290511600575126668006608130981269829132701855086986238","22205374449252424129090957950016950687994655756007364825739696318082291518160"],["23498672536635081014942591475047260547581189499680488779204259651428739205646","8168137344545656822141242562218672862465279114761813993422182440669132874969"],["22412965574377292318083773615157528453275220120096746253951981026901133214167","26853689290714333096047062380158772882645769956966833138278265689912355303330"],["23524268662268749482267168534271292638017276002120183155155140179985012687669","6001683321289936491384476280332406021873750179046726938613408858661591059596"],["11752245959962677592763744865323084118707506874002992894980180811447930298995","5629264605456143318936027930641029385225775737706456686828331050265806991472"],["28145825749726389698862612043589361440678201713508991498776786859450092087311","22783074721136402195646519902542228289184389282105106210958953896574117407150"],["28653831757878315790186444733075504470628026174623822400977799938720437293370","13942592243658089203592783492687678728046020722544920719126024382758671210433"],["6782076571413005648949670024819654550481686294094289949772391066319011995092","15655888577083390263903763169226999452933285253215232201108277354162483130646"],["4977591407894026995491435076917495603603885868341697907563948165673546030257","792230207247086775104810233376631170543707911110876254222060638778418842316"],["22310518852023618139002765570182073732035110162602481729696743469524164094812","9641909536281357287611142003840761923471619381420793095786154792029854457615"],["15657573052539519284458717365705099915207820321549330928913077506589707926285","15924141304153528323869056508133736138800829158264073563719377030501234144129"],["14148592315807018140078686789180456351826309641350908420236010979458991525411","27086211193412998009868570786844526241257866841117423637577867324180855880189"],["26560739510063671983473075314219315103693279862010513108180120157834615883839","6702162558699900530123682971534330003493505928013484516387190756241826928624"],["20455486827185169153983284827373028905381665023651962420505846011565798302033","13445797553950160067411509322542533386136559574504927225639934961474468174668"],["24672785517432395644929467777190156820138858971495386558250198078095490295240","20044561585861103524560707212296618792583630957155385260051327441529430150466"],["19592223694005803083114617851103328156801100811412874724778229637747650857765","1900611987080733000534753789203546494586936650230972540554866322883449968932"],["228245546764209988620394934699003168162931126602925982833671047201242243823","25698187000146500981983778998320453453649892121443579165540238278398315310747"],["6821701646480520019998733578716541162588195467418757188197162501572633361978","28673534175235460122789141872428130327486615866724338026499118105319452078515"],["18240339260244389219707665258140935617101152117631700779504862299974181003213","3628747819428661485653454341724105852775197785345860749830062692865704184556"],["20063083077698988043414989863887465349983211537186896764099565165617005870098","10611709598620545650074767221348328361502475038450823927621857115736717339229"],["23256963193310630135518392542904349244086325533255553765676966166327695482472","23944388283469078286480020693734882039998481294577884271380270087653435080327"],["10368952595113074762417240867699698912868277422833267178423933146172163482763","8218258237918351578771469101539532839744349469731224390189133383744670643399"],["11821542077006244862949912740678611580045010006485565103636988529445615028670","20507841008915673140263106903617693201379141203181952380367015123373706322746"],["911498083121962731334915853208549971385153398508022679548225671780072694970","27604440948425599311920176892972604425971000256617251054621874415192118513449"],["12861380059541111721841352240725781508464719890556728163959115898675557355218","23383703034062519849739522759436441989287075480324815262792093244100965989949"],["20603097237096891805190665126568576084312597746354856965607573131522170170494","14681199159395035028451170904069055707991365613889170016040942262413201954295"],["10135560326571783671552460068415515569082357234464691122742352498292085482375","24783535608823257227125960167804408439087268502461692023294078221272905098312"],["4737427101827862747895847251825064239144489886301002874363700053605126015509","3750357942605948524327027309302891875895414754866504023138415946138769844650"],["1923238130913096196028817443925148105042704976637042682770267715904094447178","9350657787271123254672416268630090006519999744341067183992586383427034312869"],["13863376970208334254160164065709452095044342624969863033057683967558825820821","21668937228673620898084669371727652643852601278859637407658903341681582692935"],["26218520248197325419221882808596115043794502200164598441784811124413950657062","16330380713915265203017229480331924766948935709647951382792088389899491327234"],["3916460340270183542924269450173788944833671835084887766880899483142883776572","736793193884495408341013455356553477929985993165148992468004548063113479536"],["8516952048400027889629729736021961033754028307757698870032162819958935221055","22365430956979807361058978525487671197567700228751968278315652008085683640578"],["4136931638763127208743114133586570903025037750808613805034801815391687119406","27044191089798805207913664940525200738467046983171206075104034989269148368116"],["7897680888061037879753667681501722680277770731478107172283702286296507660968","17651208539153225589878892004331620030633521679093994374698672868988567335298"],["8051676472838562069144313144796470786425767344902941203334011895767595205109","15422450398718914972434843735456345397139997053789688230322307495686892708901"],["10942301577952248476878239736817231976310023333681839885199131388049705661528","18743494629159841922419100688282292870228937629274850026837518345868222072240"],["21615670529161797839198015995200546763767102273975933791947205476638805909667","12591964978766700300197704326041135414618940169476896025781415491716501473196"],["23229291381499753814055385165751828426317236028239473173727750292599715138964","27126943743327626055513228574432904855019629200024689005033376252053652848297"],["19446730098185989500035669393478434076087213351628169268210603832245598410460","20542552850518552485985982144677790966344984238133374192201311273970426751983"],["4310265661318556533175143411920617960884718309923708996188868486731285961843","18627748140595459840360594694165848409488221087459692426460662299878221645825"],["22980819436009739205872996205133471728685886135185866163973035288863122016134","5308204381590449493672008100725901309596150235757339466967722251910488923386"],["17546948921402972971882202329767830738055984783873583420667892896422395620370","27844138586412109785231749726762218958346190921509816339454576759976397987753"],["10452510058073010132677642913298137221090882397239577403493561258746181377755","8295767501109046737855035320805928053079269728060239827826839314081440256071"],["18651823112342507878328012274912016729760008838028434928820191656602679543992","11338562124472694509202310150162513062585035387004144998494617155100635260526"],["3114739328246507492548653744162168318148004327425272238869494457338409598354","20589731732689160760922934629978754236532565410135212910080618029508441897074"],["7784887539802049376577028682465632511768326397472602484957019874043372694865","10410247063691238687973613350349512127601883374604524552923328525508927800700"],["21960907027749020437092688960174286035628780818719326603037596592106056714120","2138459539576240434988816323910579869417236688388695008743196524215352818954"],["16332489361548093481475994419436275317849100109866868931673156166649479704914","12810672434638655239552543171659139135692793016411050217573904680313500552471"],["7688334973824957837760764435927835666078545529852279233748055214499641340062","7388104979163579887098730972793088115622978034100852583254876526556888277921"],["25710731986602634952081293151387162047530117824832755206593075781709456615219","6173592676171130759866114334318297389606925011809384727864326878585702045816"],["22125277212052195272694778177745381334414563393611743859655017552050262934114","9402154704844821579266014684265623362201134338378642282151417649044155620914"],["25456258343215453192178902896170291846056731276154717312424049030360250495298","12963269164508091595600964996315218029935315439136131205628337773951292908406"],["22247574728427522859792482915086626728114241867856830800126004060255175965435","282758817573013878575561877405597627371672208460787093221536877345407864737"],["22815341511815367811599474305521539024699491799252176128705877038222222551358","28529795549730761772129712556247192892280129120642277068746240973254078750749"],["20451293919449185743661955818707519663979349807036008190057444518640749479282","22464629305386083280757240730412329789757902909108847502666355170797317008350"],["4621980035090867370642475248923927700474305883681099251122098697661096891530","15984864487840201093976965549589984001322545350747755936350353502877710390919"],["5574908842708574224545346373841780668763817636805367609218492950417967292469","18455874344563386084595734184094635490878560391714340660023298205547016300046"],["15799454131099742383971592604918391063244837956493309430764912949316267097486","1773302331899214980810619125429040737260788267934743852061640833678708699336"],["5916751619887785425554241697341407657398485887217087666733183191337847638462","26364477123919924753807763161999199302863395896951541008666065035649957981218"],["16447888219490757022645485022184116293335746652659241341684131856141734230785","25997561742744938898514735320428756582128053628969099319862477052739497526480"],["324463902585562529436161956606210466887295542102602598666890434692176326486","24298805970850886026609167699399963953432786087375286811395646363846279270119"],["16272006792749111132946460281918334854155718804605958650716404241301003636546","1597159192617834337038479713741748206952197807964585932462238453827220327154"],["23213008211446905612776097315612089717389689898373398741106518064483683465017","20047577715447865176398526484268617105348599037566900675368911974176660872200"],["9233344289078638092475144033816343094591087610761333634958175495548226957906","15569440045282637794091980451516323989933472192131189021281282428667188237392"],["23152978883339685546224079893513066381322032005403702933507067968736622890335","20502189177769296238395273105865931837105504266615919891957240396593303770282"],["26635793193132639645805007981899166441758197767943515124002442060470975771054","19662839127500830371686198408317913988662806106321250713135777661479223416125"],["20596607961803182370085680988409905343545620782909058451349677826807229672622","27534987401160054579204904036475645752853441995076657278496921482680753039060"],["25733054820748941330850749481860271348421619636971687957591992801396570106904","11530971547121313598354739739991073915959713265484395281188437529478950900744"],["10766449301366430653719633202122741641113361147402418792358241209683224530131","13766721719062364952006866847854572438514937412645300811891820547033926247599"],["24624532510362391806388347152319522807960960385989781003445787375531896662572","18243442567446192819265689254804353063296673254621005404993681631724153324448"],["2746752701611452698390903727422153142049072816337148234268715293531316148866","28156190210478737946861060401715929248594361627356177952993550673016529121631"],["16011829599040986904582903038879718931392212940315884352955062030254081918046","17803880085323221199356862160775198569724333017722925604403274955053217811331"],["6476038341229810682330192314072490679623508652399330625430453792999090709345","17784983411253385885737236462918688903035395487877864037694316324941823698667"],["24340603746842233216379711666808944806243507589780290890067004543160782028515","23904943944041403845159969905585545134853206899953825499689176276766421657537"],["26406654594390184119995332149773672902545192725192335751966530971231044263791","13452384007311071788827668617202171412401183195721902452132113099791019177803"],["14516068461241393754607015971524633224520867013631749989309056926398608018330","1693099694669259444717989744167499639295404408627586557786603027327518003000"],["28313072092948252543474348089310008837230439505619268228977638803058487818934","19765765249558784410985312661877639223449451555695924490029619198033986474832"],["6810414041935709003903521812987815342507900747275702757306757434030874015166","2852509332956229393231473294405920352688193987455430615720611288731816602296"],["15602199129994122549300498619951946926954887631379919070257388607686169801757","25336652164118635042984345937717761969215617722800273134353564773004813438580"],["10345037067610288911467301872220456377727481160804519545720142583287835571720","5697211362266772629187739992457241204504659724356665544203048955492406898703"],["1361183274378721152837473882740676559323837743230034495238303987622223881608","28172746326804294501193125463595326404345702838340733818524479277718760987896"],["6946964722741410385401325629148360546992117575394395982537568127937910496266","10187881675232714770220403276307267674164587012491326766953871779280867271430"],["20538614551238567005175432136193762920738500580582290042177002344684737392710","15140554471970798291977181220239874107149526605739245487340702692785344773275"],["3646929281517268761709957349738408734636654335821270914879542381338672325278","23794269095346219184867575632850794006326097545556486952623852602833823695174"],["22691387127169119757621256464494399516329442208111193690722724701894073842974","18657005881628486128296812144605498213929522239620627689175909473008538789512"],["23544269833427986744892178628400233687964737888634351005339911280069403257632","10002068954029472963046760490097616764729582900809677149477061508614250619294"],["10216429809666602051353349467026179073301733508340645553388878389502910264898","24353316082815166937619409565431633419928542708280103676654730514923890582347"],["17468345453842980162134389716964235509363682628939021587136307383575886120003","1305766783908088450640227877466955691292817686466352863109120315780020333811"],["17312993358386476344904053459965867603037005839215473405020281099423669152145","28684949519335799359776329114353286331075519604934196161368611755935501473168"],["25916660134925272193992727831861186702090734508209478904641801358725589920471","25760521924248725805324922712850968835076385515942269162566600213711789432399"],["174334147893354197119273710233412361306295487134331119070249925934545479657","17044444173529630059427700229104984543606487475461627262965510124275822318674"],["11127054953504191873398411224102316323739567909765491317484011262145973713514","28418641264438263663111847503591117390334752619022838983984880346864871426646"],["23281492163504734660557697758471324809944405571059058597309863139018279914441","28572546671803932408202079491331991541205152036926117185274635712067371162721"],["1607073431587850998251428540557123361220673974534993775233671187950055215513","6169089492619894952711114402899678687208912900438859283933029819094438493999"],["3019486037840964274618475425042696555118454644933107022174029251374994445502","5112647789998411409826091891962363411305571335028276121359228695418717403739"],["17015904016469253370714386364526569924940849718307805684989207721476256256000","7277714160414660284035720181168034232806831076945307766756455380257994663868"],["28882075347176478853771430712495571051501651403422908048614420596351616223278","7065016802756559439831929082966701354183257998586800765739923424408911876560"],["7436204947198811219512049665099688566077243990216473924058087652940791308803","3496940044484016165504244257378278702804521523514202613218933805162114878119"],["28483013405953443661535995540774876241173372792728520497946093937960379210496","7232907342699163205352394720465247710545310643453127872365284515102037107853"],["3736245970928958887783677726739796917431472853374934069113534560846631620522","1237075055838393589220088405996248260160095025015566790364447974917954695181"],["18905263858501721451033938435990583374388496025556416274361350517075196410789","1341680510582703070612478762124360765611793357628360393009463572895606071964"],["24657492358187882902357790136489413977741621285636373178632641223142440825952","13622041864152545987474196268944792387124467319751062500986973527785861844341"],["8572649597057691389705345457737786592427314656275787284209125545307536882866","8003776447692576615113613282266125858286521412655743208919684194705552594661"],["6005352765005844409076369872900567683173349350961186925116971648880675370556","1694020881581797761669656880828617749668727930144415648467150705661757423754"],["6619336515394247646034227683628780804831811674287524099982835409969301720332","26060002894862248476511103935263273528006086435205740481477540283734635053319"],["21685746835823152160501505397710091706650862724918081534037552513158324706475","1880962548989034724051471555761375004492518932982909833342492424181734372318"],["18736534829597566955216489605217306281734156094223340886654982004839669012023","11700327295507014510653961852284099652555986195588769231729018429653509765495"],["28206443274773467889707000883714102308802309397723473838570145398570325880168","4950263633740882347023252436513782962221045799666816687200119723085846921063"],["13208025332790101837392409807192655837184266616507113730818930696237816982282","8693743859913989172889324788015879817989046811266522094981772408158397191734"],["17040380369541453268792836139072763527942837949992698130562751323851344015712","18836755984338939775042088837460544997099150168420843825971971402867500381981"],["9229562901567724225698144767946928203549253916392577643386414429027848704752","7131956155567884048384443014251022943910425377278576226916597558105193387373"],["12488373427540314877914881669411304741345923908768580713640746004612335216072","14144451167516082852535459699542971693497579756112250120549663683164577569070"],["5670174269892252630744810537114980679065084030876422110919353895246878566622","8527759916559155747773283847546491202579179908328954639163127031807816032067"],["4525182028323921592765487287900789992335341418899667251409474665805871284843","12664190616730365052177582508509299051629570742884563271565645579566632449361"],["21902011914499281391852992148242129720136359756232087734242949570571425929969","24974992524276630530339386176008679820618082202016594912249323787995416883278"],["16250131685948424862002756638028571932375306162824756458718073467658302492490","12012703908967491733655277113668605642028158632780895387715866885574023900129"],["3938604694423202528796692390429683731005122521870997681161870609079500564071","20876492042642514583423622313671088224454006009441268441324916920240434112497"],["9036442645116436076371918853874747609452375051527035118538787255656659178265","11156499596629332233767223606107839530486144999754232243987201545439592956754"],["22210696802861603202527435793357004464884728095073427550983164437522661618334","2086141382692059291276625431434000711248670508063377644064508224314760781843"],["21707765187727105928877631476037883782040022359878928590177879120496154332067","14459780794218183207484519039826632174998957462197082826039747340747893587215"],["8803985897842493960968790251744093194849126534204919173861712467608247893617","16350695958517767678865345675527151289364358213956551847157257394749612052254"],["12772881819544641104412521106895456666603821970669941268929080809287621029313","26562544012471467046228030121574790931698702127539729980754909046362886110831"],["20954520076816351607054858701993005484505900574707595911201086883393348497664","707292076268588535236511669627437293791121066422885922801174460610383454621"],["25576503519212056455460084430456105060587226685554486139319535673325126501427","12910236474904372433960754273534885508359259496894364702772467159124402633388"],["16441969998153618321065192233738753473368672571017796114198871288214623149621","6981320087237088031243598350233290373072143917609312149937372190095204544189"],["4830355008972105788343555264365952836694883367477700831443644365313978753462","8683376343449520365252636911662001082973891228009081153343261092407713080195"],["24832053157830927393487492411965053374930065797825791686610032352041418870585","4928628889199624628511663943055317058711707503025200314154070144693175740233"],["11089062205134882294905870722069503818416761760208196195642241970082644111639","4807918479177961974624345354265021061950313371931274445623442177323937572206"],["11658431723975799262443612202029648655486368623987844564646300624710965314066","3745008067731232695998965020785676808214687598668432261996375201071803525726"],["16424252948181056035893993532069476803678453467057542720498232269076022624619","18314790209555433707659316504378097561291943343713971856794193137027365670865"],["23072027637411668600251521155944990100780618051149583950549822596618735195380","2836328227932466507739924715712697623231731465525532662924592535090881821723"],["415050681510845019054371891672502132672296083527418786926956083110454733971","15147135639856273129215597079355383717443725264471324828115550828689706991036"],["4691625614015006863169403856889819674180524115809336635209526800896642553146","2187849700925213240217870807453441914312986231367186886150393592032680688848"],["716886185269943144714586486666122637209027978265644948114381010565869332913","2649624225008072638144174353970240715532974646944352118590909819800803801448"],["26420694245062520563414150260546222377438266590222406579302400566646249109858","11794248615733863955861033340580845628852445872897224277540619261719720242847"],["16753429399823450976738321180205891577569276278484711583573204529696389144437","14255669326015653201739804618756627180424799806025367475051699776468318638284"],["728252998537666149648000726425902059745160498192124987822724407794071321842","2497328235074115169475431083464816385350788975682957113686666378322097279700"],["28365405587797305075502211998878496289063810236499672225484791907463235140052","3267675801484742216985916853166680300387908609088529630551935216811814807379"],["13367296792165696006327388489083918503524718358834009422645162417267966601146","18294533316367717415322656330874011231691006933408707481030258782823332957666"],["3231048060944410235116111399933417549473214094578866094238326537412076809904","19609474112424477415096222608265255578870006354028683049161288722046194856923"],["4221060370193565588322317125770454021324445685534283120157005689683619563144","21170287018242637237558369064566654517289652244783217794131288900957438629810"],["27884043488634258602997515499689620436742399901861127017807058712529915512442","2240019850530354825567088078488581186270374916377474859361739533158095418524"],["20638867345041251813526246612651696505523960676080748134329179362304021361526","527414499585292353760094559838532667329716023380194566193074677745903220663"],["15999575377817742370414578461671543558301296683516242536284678046974704743850","15769375094758071278213535418241468540074331216546422295126737083203835321286"],["28689819960566083653799181291157621392756780063540356413376340422484744391106","15845951063416302795848609431774592768021236005067347447483481910731296777849"],["16350070829588573334614543120416539542158779066793067040027149075415848103954","744319892980577148670498417568568358445222976893660174667638249620593936800"],["19675782335381115430166731072937827524272411285795380003666992465125690285059","8272469955412029853862563081396180031608536405888636906308885107114783765406"],["11535327670374690451137980262476092973593585614862419291209201779864527615336","3301328634193239185107552780679290469754694174412132882141848903746752588151"],["26179464280649110620715928516957340875867357948110957814851574117835481125141","26146938929939168380593860522236536379471610055195640966164201440396478079462"],["1179493248486801745853187305930185264041481893594505792481925560231857483619","2537017847577177737465872394560989971412477773511069435890523292907364010552"],["15780491385457433973224409446337458971396948987912851204098344418025827695436","18681572591196940698821043446321399832688434378701258684999641402828465991263"],["28499503075666912521347389134412708845676164477305266484039263223008549094933","27041995465268725075391907288275154297061502224128060547632839004253855167294"],["12616586219937350499473783822000339774102484637885908168935791754421128710080","20641740704028499118973678837304166358890234134913476726143587540542297525690"],["4291164999736560576630301768693026742565329202584678274446939494448528785966","18402429893063728267252182484131590251097387449182118705833011148811186683448"],["22776781503856071047646844527455165431067200951094852630071511668153707718814","12527022823083674663810757931422881123937142166098232163399928354267396852811"],["10846991822695775588283390644525709186043589130156005659514204672241928380423","18871361219615283934366726754333901471124772595332983061313994008106251004786"],["9942036809482244451214646228250538053468638871100551801853297270837747081012","12024758246097280610752732774068820948272503169930287531578299913661042065034"],["21493301842997693448384642321465221238449233343021185899674508397255106082813","6805909241653555693750677922376100173025809739748165794279223453817517738448"],["23119007742130994480672092578875185567334729595988106738129791505802344712318","22427984196589550515876442193698399207462818444583565984853139953044277857965"],["2229524911057573369523446012740110220665188144419812626764323390230307165191","23495485320776244847314140043627254665634557221429973274750315687362236783203"],["24989803517458520184469385826467005356444600464716475551498599629263771614742","15083480199550063941927388119053022845913599567541870438923191569849868638817"],["179591033166941256911094173898026397714768742931552910620854379071319613588","26733088087834526465799401747131139675765628756097714565552203415948810841231"],["23643941268089343399385149779653573208910912273569825102441090412562991641779","6390218992197454382231335950489615210100047922752135529341542414055157984708"],["18995384191173650732252418862331013455259612414185044694782642637640710970978","3334659950394894506006987690419732608377461687532822067513628274449900050165"],["1943735370197067512620154431103280290898199429682734632730890132748542015775","375799574421949282486663767373828822250554325819421259926896328937461386887"],["18363416057365683436964560508579653494434905854340050006992090570560714355441","28832270378405998974623264950605731436668063057492709086261463035122845256854"],["27116685537544520154376056631229011940355725258096849123073499494774559258721","2149166220771753036656824061354886496820981366706431669718780622572411432122"],["14803242132730150074767394178818147527816274286135310736287775200853820443941","4716960188135160850170987113055871853091079640794150685914886951904956342184"],["27719149351371989553495874973154436232982139136507292635922629662139495216536","9940288058150061263432249849696646186473399725733266406214691801682296881481"],["27531318636197613686401718797308600321867151359654053179272100302848652801597","2378263460397818360948633985946533422114679699980425379176002130369425979896"],["13711922999651415564867129380360743650875041630006815880822693081606754640330","12465502979362680312088225150323151645987813033371596971687756399158669822683"],["4916068920743951049617221287349825317081392898170334169801688434385729311190","11606779983107471062566718060417053387258136187142857705478987518470821294740"],["21883314529913551040372386376280954757208069344716809055207569735738439108180","19296878364294231437113653846387807763493331478173063254290047637085624090459"],["25400154024297184904504280654712998206368850486572782957475752541214332272126","5512787966486689927928428041728642208589019739534742976914295500200666338523"],["21229094537218634303409262217458880456636434020046446645297143461562931250529","15141543482920914665724044980376977595661193522943803306535698274342250423698"],["11443258751655585767544739887746919313162871562444634639676652062664987784831","22867988951245944750905671858770515039260493504026281423513553147590195771019"],["13304189458785986392969465899226590902860502805979140792182350703568992260157","8486551017744571578077331824060226657928480985455995154832327970816706101911"],["12022544271193673218204706027438187489377943024936817615322522181568888307561","8887510129916885716347095483852186654760234246514425794306369681916067827934"],["19645990434220886718990630336937429041857759896123062495913608893010904425681","6595179482506869392698489558751263042358953998178582053502877248564109727143"],["8942525480022609033398216195230264240921429288438101491883002064260632125662","18059360968311074819925147361865177069051915495965806235420950507370772709348"],["26519402361683226711294788695905444433434282645160789742600075873935227127926","6017070371548223246623764384833329705561699852145947711094959779106257199966"],["13919552970688230527755416063830580141015909229827128367965325463194967626265","22828614988876268901216974300029498434003686259023115176586310030676760726253"],["626096664139627035279552303243534546087405471980624780942789071760340738733","5366851040163497442630123944336853566831609489666215937663706617850483412144"],["15748135842432381032114985473104670871459779302592642927831708799125709598568","20304149926330989346986214040130808188956228935464051376559020115597346399668"],["13537376023319819872973359194501494216041370632740928964125913667489588177555","6427558693567497717890340446996787523211217358555906709115951756720131687297"],["28232203369028393653322092762764402321928890277247464464793617740234961118362","13036175761084032531618437804176567330151081592103927096246792678904337627154"],["10356273795166892650121218173128692074367250259182768465347808489278695437177","4137129831082497550557867180417376733159144913747308724049808912773103800343"],["1103583612861655400940607540830099438754750598919806126619547172509046736553","18256548681486203482882719875154118319185790785209034353196809921137969509049"],["2408949884127992951401132926530507221578348538570052597504350681093140882329","22514307781013050705131046108057478291352281375145233739384811927404154795860"],["15667954298966600606767976708617228696312234839139335688595359184156136470094","27290874216183912055855857585078783767088475821179074921115698713873080342745"],["15703664448613822690165068493330592853635850510055220192843460883086532824177","5463868707558484168216955637007730832613695087816537445165508796430970950072"],["13967496461247649937343610901524450527580382114795358545117421113915686338030","3832337885746032741639205900218243164569591255719823426414378161315595604732"],["9288044304448618806761316009360299410338981328168039180997291630674207226829","18241548961123838581137687541086717734593633741890256666468544300908889618477"],["7192247475160735510581708030083803576617238811111686103234422344349122501392","9214359625961063189273551121462670057308412271726699411106719438246153275161"],["5922347048879033919595835743324260675820261229936458573627476101226128534007","7280946469808290957479809669806864201824952204438948547173311100923150485476"],["6714631863532015187446466237115325530942578257346809567462817319921346464223","12388232356457010851765355368770156109548649797811667784002602289456327971484"],["2005432937462035369865377863904706639290451283473289262347458964658265969776","15667210093307438710649233374288940236926806922274749031751850082126910878952"],["4987801736223597801885825441692559046962466677250100963176066800548706698153","2969488136609419306880014946933707182148985634975288732046939591975535226252"],["15969273165606766564968716677237862723632963660575985786765629268212716829020","13750617348974837933983038695878826649741265052790464248109778910389074988878"],["15218445450181817787264450779888763940901157317679748975651081003111078481177","11151460533296239947386177530169224452627703639388009031253486194404073507173"],["14001729990000532013085140820664150626417975829596519922624969225872251032721","21069096624997079817861574417058463299202219396926039441353596460209694062686"],["272620801341542573605053254943873956160753644834508447324264100883745697334","2382201671695589791166177682532182325292093914888431193931413420169256096293"],["3493654053410679922964937123895500190799164833605744079112278206264726353595","27027878457245647924355835760181824702025888460694874176508905832627544508172"],["9425650917201045167528976882592547468334871807173637023740233989495540516223","22552698711035967299150726442057360482410955256115449204761636447737325172649"],["22244604221660197464518286045972620666096282459781541156055518961552497141587","4496020130837779015934809238028524778786258813361338381445996267228091496061"],["19257012405796461267755029579562152866315559073715559458608069236969968033340","25917398643787630677216833483850834632250304190829458076107494039985502050911"],["13543097973296521630512645955304372705303031909789101694824217670970903045982","13506598831210673850808349362593953410813838524294885601990675631631061589769"],["6043744435021292321417658035988894871599174642292189817193877123951647206159","5572782062932149312050304205832330489451358701515071913252397451456319380200"],["20442185971635245693860711786807840937281930273727769259205732292388151735486","20131014792869993124881311230715102455713862199087374089140098184838088260578"],["15932621051750923589071454366228354284890163018892057913217450297910588048168","10654884441075117361969011157530366017038718452679075818920994096322412016184"],["3632325057355835756832908251447255550676437010562353272518072470072893893028","8261516565192704228566239043675293391443668945424936597312270619844181055831"],["14161295102801267660924234925344270950821191633856355976230028551405221918628","27167943915290129737326867058300072872914797188396619773073143848336073621712"],["22210507071939669868022850585294482447423040716587314489212439529249551734359","25955647349363510381630063913466976988978191470623289807110342537505064739063"],["16150080703442304285773003301457156926955667915219710144734058326334951243387","4177671783820578981978139315259123867221633040853553671147625451453762142358"],["9024125565943748798787793040741182011066795369993226641655968776830825425373","23546666404921396091606463667443561345032116875254014382229728177400614709189"],["11867147039698646062631134343355534685099628743050084933458960677820904608972","8332261638424238217067033020936603346006810224763484285317469287223255890642"],["10995476037801606827937387937357662056184107507550034523123956687743385944791","18149376643628566324134486949560355631570939756302465971950591517992832747546"],["1173096141640264836608352243240810087926783569788002574462456940884547778056","4841985069515615985140456864443027102890191980626861779798867007840561756834"],["580612720281801979301491597841520705514253998597369098298792780628675567091","12551366811509625931529911008583351341946640221331186643061332883185452874510"],["540472728295496898621638613057307641923670695291530768219189588382653857283","17549934523187082493092356534380165505470271160777456129091777773100331336581"],["417491264540499559607433621536384627214786726864995142146702040332333727345","27533133933972871012835740830472157745704286219820952673880388594898356722114"],["3569073235991802919132783633294142873907671787898025483922318355675136217378","19055041328355275338114742987457855094347715965946390722348294042589604948381"],["18014575443500351916457122929537986918082475582541722013667157319144432875783","14163911801006611813330128822609167978462071906025529734922324159119689232958"],["22358452524947774315825618061249277565078821402163414649438700155157713083795","17063583219680447565453960766316193911861504319368208767438665767717565234962"],["24034982436499758255492071855483902942544740555893585440189986853669548456555","23968823187153250526573451155951172081771033925851072528222954855408411283354"],["16949644793494803012322910790330684697271206506425895422922710095501134170439","7871745663890653877942011920897168942591617796674617741275623510239958696786"],["7472432024173136309442264563889005468593779802484099550572520278011965975825","5070764043581626140788638645144739017022694452623228025175522727474957623842"],["7937200280992237638029071176039314462477410440519953812294971755935933355860","8375479940341581579665374917034104526137023433522135209302916807412349107054"],["14480304199163399625044353953470009109767027085932669634350419225365772913494","20764297236843766851070569490535840845206918759067101009882467561996713842204"],["15136161459520088817036725494581732739210080852231017746120160212973565228796","25034850492853838185287728728454486054590367972956232500789150578420617846039"],["9514210043606672910545524758315192729269821110757209023342668270976474374338","17574607041696255551577188780628986877629947625420574728523604841946888104238"],["16589381160324962037108702684726065696265737117601564632746671243265602139932","6540376010854211179003653688733587268299740975936641611343324865339673203922"],["6872739412238216054142018378888303684349016673806097548608791550602148913093","12987912445426605749304759888558184851120797183693280468278343340354643945448"],["9350136877143180992627579208719052577322453711379100906126558023368362373425","21579275207859029512002918715362208490610471885241640389739347119888896938885"],["2717529682871333835052874550885902281996369214596001495641019625347760620082","24721025830690222272211281683194058417145266091096777467296936335755569841464"],["15242108244480385807835558378769740837986546390374809557090476971950557863848","18493452577889718128524146807330228741652388072875435812219467330345496871852"],["17251432513243379910014659634154241069599762938610171458022748272461826129429","20014505902163871391073856452264592225182722345198155454570633427244586090881"],["4920269497458266952754830787061334633682409855715945643574844501979451527710","634643235174261908568115230977348716604210715121537159107871832345701949507"],["26186791688428984436540489804729358287193820537484524134807443207719910382696","23773266421635096843936911583495134527089426190989665466934008563010759671185"],["16478205707815441734023102568149605244427813182437778813655938133846777031510","8017366605887206718684004664789673837773861614556184132419291229686224652710"],["16426734491118285999052783712582576642408882317088412343478111657733206916246","14139132643443679949370545976424935907995704932504464537337306296212140195102"],["7695455358030345189795096108708461085466948041049767551219129267756101556131","8406112865153620809198638950737043057684340011010899488952421429505808728044"],["5099528921939628201668955897947494234803435796034913045233993978858486609028","22380533419128952535930978763381546659100605861783554261539841945976695391308"],["7362183470180386597492588047248066845919046013730424184076902626510209012654","22961059564381601565438645766290330894404798676633026496154077383544075725986"],["6356568692538509388707018931614064834822339933120175330858175851151499293073","25488229572986017461726118186995086724047623141816760296033414509668227932507"],["28856099180601349723134156749749215217092717771461794218602464634932497505789","367344139202064813996064246165149844863346050688552464500671136201986611238"],["12110317265488052550306755365947869011944791053159703680265262039998174704741","3504723114379534982938655726129825563772288936455217443844606883010680380416"],["17668838493743206341313303865350955707087730599321280006397336020095580850376","767450313896677841318448244723333835829484450016667822646516253818578219094"],["17309476917973766272377988253287327523217522091222383520614957609906173618006","24379242859383824397490446237735856076682791319518639424822001734550801218526"],["21369724091697800996679736635962949291556805761002750400302895766840345652481","24807212907436647811837460152089146663065598783351324498915094517986554036103"],["11929494338905032019228587896888068198691152570570056427298107996002776934548","13391626306835118141593199115728959706996241494754223517084999114265996788487"],["18249945914972089190132218402652053413456189236483265425289019252061118711806","4565068920493827264042402234411251869739346731447935045570879675358986202132"],["26722813936330629686882933226612509493986912607480962197400720733784928177486","10147631248229752870346151299912620745458925310339933267878657147026165138015"],["13226521954136206590690887528514694426253872653215202182971757355344003827144","11967852213318798273397656202772761170919773009141094531546765629749834738455"],["14348130649336335339746829662564116243638501427988651626982154455458704377848","17161765845673411012941954415541300719477652789526306577701565216924685746769"],["27149082535174840262938111413787483155408570846981457384181342341685339587457","14557321609818614574244018945992788610571290711848663165885875822925634090229"],["4103232531271660521149930256551317483954703433670487008680613860069732970515","26123693931796372901172123941054322356853088947491078447812100319520119854523"],["19061637458808894167015434293150427023171996340081214044536038353839902427708","14532521530190336224637842441347920269183839429937586245215340093696522739849"],["27533763277869253476835780214823268390152073213486754133850808376310891113030","7837802806779938429627112053249584290400782788621717464016854399666069546698"],["24990918045483535159350918629484141101708426327249284410185528858490708906004","18913792956739804411072204536578992705737686593876233705552889951289712744585"],["15305196026860949417721931246433173159672517329461549961304124352965393134200","25459703924027651143644284612966717333711078290653241813373276784015295805104"],["22215483833434472977716172290984123697300724827238058121164021534305710785134","12250048864108878419832732313767095341462022647125301653353553053416055725025"],["5486535174198107965012995119720452863880390825020420292603220292013502020460","22079150782769728384874985175743614411767479505474956660055258879232293838138"],["9568962047763988344877012584500147905724421890279023304710357870052278218246","3327721197080926192826015819372850750119838628589653383513141119591234388719"],["28452776701357830621034193567436437924738176304362744090880146292234309723211","9684581733032980150928141982778591045059898576665764450083442788604896071004"],["21006595441065125893512079426261367570465966170884800396744169086261813267794","23151024375545074917314647685621662118988046352931779435059979269298349318854"],["11103748675085381106955441359615666411353200187160538166899774812817163702432","20975458366660865691600471286670276672187853136490759143899272119145735801607"],["3838458832853034039214659601900825298977147867050350586622507759457804453453","20909997174460832148220934836826803452030333350774887217660395679286370287805"],["15907755005589787897513399764562834019866461287408923291552781804139280241291","21435657154710903845800168382817483542542268940737448095585909581306742484965"],["3775128177664260142424711059849548696608172612230225115113784109717977675125","22965583320573268146081290986238253216892352581222140460669184019986025047919"],["8463405108236060458234949885836669409158914016633212882986313881841160409650","20659205752991936575657524119738728730608769745072466797272145407186896488555"],["20665820282651781268527672023911418403026044790807268271293518930444577020573","12388760336037808972764804788618397267879478478525628642931351151311460569954"],["16753874078958584545668065569599890841251946871466272359115985238059785062530","8851562082631774830167650914160899864277672681269795074734051156928005983822"],["9956831156887492234573802095306885974831375860854613711507542869210663680666","27750367363069656344962578979409035887564432812008023002885058235375333455380"],["3129609315411299503581492064189969197415352095694110833517788719099538671736","21315697689240296213210667282069145022330611744404643994692794283101048341889"],["4576004494306898913336528986480732219305643912553846529968100043920130769022","1809429558477064823543319904136595274099896875526996426441454029046109479105"],["16961350444442564526570754989112522498501915609920498584586754258735000919902","994038520218461693597127822219824815775092698724367177887036952689922477753"],["16667516895317199739326483518312172211112909106782228610473540664943887243031","7339058716313346341419976067224865231560726815296510035157345400911729095345"],["23674179567076403919126419072110478711593497810610622497641720510890188948515","4598630866038003131170308933077188285317197216676381133760687829040451456200"],["5559688184070927471836562346198503634007697784004448666071347983079307756455","17075372204316323306004410556015367324642391328560045307230915112671455787164"],["22996365259447664256050209973024657735266133892167200029822820748011711543531","11651304847836131070431969927872491874853950877746890570044200417224850307536"],["5369225785064559497854233027055802881896876098450628829180822055728273727467","27802771251949149230690524797876283460664784557050989958716962001087141312715"],["24081681496846744824082589888408876231374529906465503623043255847620187381787","10145287585154235368335269512982166241329440570093079001005918660729478894976"],["14289594767246532563587114889755226841107575997024251246697924752998247875111","20716660208597003589468860627245991307000076343473855138490503396389656608223"],["782191573704592965085769692606202596985851507377327324121719623367079467929","8420953781071885330362572260543583670829600677476285840561016764191032476643"],["15392015888307315486161405327171784807213563297059634952063034825703307204681","20534651571303166199017839183029703447853990612192784032132805444275522854412"],["6276362139724581411227739168682830428413350729609086058550704230497817447593","17133950682346795367329734186375247000177744263298119062522919244576569343259"],["14050239061795990036147425413889407681126594502595819055725493760990251248821","16399556864593813191514395493400184965493615440093684911855398911011299059505"],["27158140783613987369760822325130806748790155155368465648895999641563269251161","2543887938143060535076918133725626595261736314446160047965049705507154044070"],["11719851999795983661793564293258858851994354110726757595421326056925725000564","24192394992597364495083341983381597466024340731062304040341302862866701726644"],["4254100825396398409895765790822764103567091698388137649552153067646032365368","16240982786035591377150041300529780743059215601555358903168943204097973378107"],["14858802174876039725501549357158148518971177375988892880819649647570163983930","3688704008649684082031786794371591469314888179115474595985126023470380225234"],["11949856749112026427916005305951685005759132227563478586162155312685550385418","15921896801302880828777839512202321752563656190512901358369331082531940677104"],["10908582551027753454039022045453763868796410434786151551942818550815441701135","12486209605794340781237125842844471293519297514053328672960459614940850538776"],["6753274202789649890261218251926234334418756573963555071816721655305657470855","22876023102590930149260186456239510612725162808548024430218744258707265694033"],["6302160400698213859780391750191033462944323781919428000705411839417559950089","14210489520038693771274389699994882507551358267025149627363222496578098325701"],["6710187008220121667722657368579868338013396375489880401536408811783774254678","28554736509586915441649096458506186098606172120415867756061334230475730093344"],["2501040834605486373613429530409102530659785795044647069881712434853267968240","16809506150484173496182780330695473482126292161581015132824925462344193251579"],["17903028068702357276214582428325517261880827262468428136178978670256502977561","21779668139725226348681577893905949028559842239426608740233788716644318581243"],["16609885138779773893637766776596931134842710088792012241146061017569508678926","28152171592156130054707800894483760266934405600115179951680372822394724795552"],["4597622025328575749527670160622895039394474851313537792728612182293840836021","9419820029484643150223709123423541377545131868437111539444944407379801370716"],["14026487490032296596007776261355216856013714671707173126365904469635726500349","2217688630458170354386653193888159315702958276390982705590048028262188739714"],["24857470689835377308344201212037536305917355765064112337562987482512917204476","4698254158900209830019746638231779930152529276188514829533834039460236410905"],["24414395116528119578691954355332069395517911560074075745641977622461721358908","25329632839438708916634389486588586432573368260321035998044617805829054567557"],["21216791214967439340794432477523165422067375154075319025045323810824978821154","4469350158852233471692681805692530870156871746243097348200254420893042102157"],["3632002571257190110084495651462951062485383901601474631670282290725977857865","2816025907132114942649298831555225579961326037160289474763113464342653585362"],["5370434036662694413113073887916123225076046542675496313965739596226461011398","12500400921372908009607923527784007493223130677791315763143196464463153493448"],["4951117706002357905509211821028898592645969894635731730765999126743070464916","16711379351161336938301911167172408605455679388881425837073444159741745029846"],["23133669995125616464787846971645487007057030762875904217146374223679002644654","19945147631265240631221409271091292121465397617147420702553749662007750760271"],["24542663258602207417038722138629822970191896168578122757732767407608792570463","12470114155796233068498060092250890990256639098781459700962129002462145458333"],["7391667295622979726244643923890495992378893309013000011261020165919744080845","191125043032070102900941658007664286510945142202406432863043522683184205550"],["16146428929806940513778289186408139697624981223844722475272977241447533132225","2549587556064686670767555759584857077763685711491091147876862776023315016740"],["21414398354229858675658647798890976697496379276742293463498503115988810629259","5729509710120269059069716969386128612306426758423452198674329788096984443490"],["2620998781480337852312741127754072853481778321290491076591073924592787469148","4694458306097413347565156810018385268348239414387431892067902430184739267774"],["10876237513122345962380060351886779903948064665434437343574775689323998267031","10850862789548867628916669936707915554213324440187529182494425322549484188146"],["27008995932626050249312208877809558648082690914071631236712793932878846546647","25350978266283143820905470022935734348713873026023751723918191686361976189411"],["22604959927521742642319473228918926037172396939622305053334152067724262274869","24097285410593213472700185519316860558249499652647721165934897683073997459566"],["21748561605617040093111331992693146837459403938190299869119454948590997154789","8412447666860751691054111228229431290729035860964152605900681273874303930877"],["24667476135965169866125825718284209535258487897411979747485987344944059111453","9323959488606986221601293224532598470481552517714277176257760641136893571957"],["5016319911183222543987278761544979331191096839534494223299405359921795982822","2629314929290869106485960855371603555851446654463657600791013235551488727798"],["14495821287294831612998597892346621375209413937701841817339573951317703301454","11279732280401147307632161100532901841475554209182905939292941627072011853608"],["24132902967917094804376674023360445058151074392420966286271324235345533071743","10119050112479549405174279085954508848028785907801952463786356743936861324477"],["10024203995005307548332025050019337377885043281900468447668216441248582903992","13165881015803324206655043078212632771381365322169045027336655492037988690147"],["24656488207572252948739168804937770735737258673457250472019998563579396784887","17052061673168601426905811787011790112843973318660822783330548528505176240601"],["14218717793961544402794625593414270057066837981700466650889850128618639222610","8395868151687379926176153373137936612068271040502574694250738442955606987196"],["21587678891675213996314566067335405516426880007183257088101222010045567969315","17185326510510654760362581890824318552579488251005874781165808764036097936526"],["28340782515072298385545293103813883335039847105569002475427125316702891763510","28139795458188158844537445541211001267262823813692355579842151274808155283989"],["3375914594881779297694632717595639059845662328856759880980863100303313735738","11445103148080752513498582956895585702281563213434245851662544818290825995461"],["20603952319205456869730954689855611399703687545403397782427790256987519021313","2005153989149223690045072573076355590426424332310010442380099998921548906070"],["8870427640400728430095095064483780841326893855214677504386386677929410267613","10697098172660807738268713596266286085702511679851757521778771872690439512629"],["15007127292457626160163479495477741833315414701770001429192124045944793518790","1418828185997835076019588717702883744382227687666165816924968008877176996139"],["5201892785305392944388270110762905027091050266326557914203876995795443215840","24073474433698380845393786637166197892801043204899626074346128517922861238087"],["24439372142196828585399126728480295736479364872898492696252890371096170675335","89844626346240216230080065799091711221996369336015317921036892350001407241"],["21054295996415967034077617952146750456481386535594612522587965840072022049846","16723867949943896749833682886847792263443523203852967337444770546025435547581"],["19964452469938293724930917023509869346592830439728235624061815711742093466587","24925861440353536950093097073023221625870305655341220411741769498795398207110"],["3839403714810083968641942094739862643363304946860647315114458481419138732466","17715859771792290088757459118815705541567228418435690830766634320952579218121"],["5300386966625464415597385565583805085839311916679422091707447002277338790167","11377341575979271039506702504088047093418019112531112182493946845661297041744"],["15379935154460440454545611842844555264618204853376776770569017115647922403739","10747646887946140126425172446409896698319675888363492553854954522951752730728"],["7095894965863716714078151942195216019342700334478763133283968038499359020263","13479845691883022979891971989019111896270339620009372928435367657040102778686"],["8559863970095720745578021873508653201588294560183162828237262838611764417438","8063484220041369597345516869527761921639000388809336225191251877998317144557"],["68242704567275610636258188755860069060408591582338732309532580675154633410","6057170905686954800526912364193484341049451406618503196777755330284630059647"],["6142627160123165176915479866958158107900543519339459096737138036100075079124","1222271714926087420976729178523875833102451137936977309618720502966652618655"],["6573920516473340639262071608490834733341278476527167727385894092776320907699","9315799791916897246203692980959504024297804543317778715568791279739633119716"],["15411975907060785138279625329989381543139102474177986938965360685359249153922","10797034887030688183707083932490741307107638155992467074533945946721202423151"],["5219642648708641183852860085142959392271651421396091586284945771232630887787","21173383936264146936885968814490870765314847819678744323484250250110477515281"],["22050933738421104072968567463170693090293213828211409424095873723541874933587","8967873354876464106966408863251805961896576050803355057326435160400756731822"],["26108721225611226817843867856447035167038765392521416649356790674499345342753","14593815002439822631207140171104933377592343140147175291004474095647271387439"],["24320183232693228006550908674417797360941816608835798563895258176789437142646","14999933005187066921936079692560408441546623641979186393179637972357278911529"],["5839074469314009178121419520555187022142820062256288209908562135996345192272","21236117502617083177633018188659955411727735629238105731433538079786395616120"],["10062694860527697771404661978618408992940760434856422227288192926638644706789","11992370793449247141331988936281039955464503537975496396842383403593545451980"],["18738840421875955633225569797573490569753822628942624185775799045641460321177","10891924398735985812310664156055769580718130063350985089453340671047078052530"],["11342458509850869511150393581530525459067672683571889160696729705291364843286","17465986771498589197071066736711455874517222824790389483297824763090268511051"],["21827364889173764881070580604671284985049982930714591854646466014615492185979","2141840728938707040993170225040308221805053033404528371767689453809794671254"],["18392737981901116294864196331657567249506235549230308928494850863332134186032","24871167944902037174052447588247101724469995038586374655252487028039369377991"],["26494001594267000290547296934581781938503374486934809932912936968672606713617","9483243594295827935509784358068430002351901448648857645112504350924758971002"],["3312599091616316034415139694753932258593582229773381020755088334452152720202","14960057096637644954334787125337998576061092554644555240168291037026738301261"],["25023003579987463619511998930450135091039508296683059931080224000222085341106","19573224520164763794831397636692868366989178050989017979523719402662838568933"],["28493910292687160008272911693253099561174162128342571726860689152197631720287","12445092758123209594421728458760029981986956981777805662927917905730556597635"],["13720235867786232595706928449426857071618174234209816053469851164514130610502","8759661474487225442300256070358647749386747108689999282756057661756854192501"],["12687450414538354911993925212367419894424698964327948516502103004450572938836","12649321032236819041964860609087102869551947227246577811823993557070671034566"],["21660953518431863824526116047469452173919169227269692324904072537006827363312","16480826348604930661561253983249440455717667038350527541835662506920066883517"],["5362839734008124929876120159723296244261963728413877102793471788565651193892","17658775282046459252908374277906091647482004891378633152144958850268499888448"],["11439243403654018056429373814447838117277730332143461692657727260340251257229","22217467009446843208600038580996097800754561808399931019996516367506615052134"],["10009103106398777325570888241678728584196200642460752296843386243161105493764","22162482823751565980496784756461580321901139169593644769127780238758724679225"],["23118447996786698065538536646089838607859263326258102976255047037554319689335","17689328967351501887025007331745444875164390595618958270501093703487204685652"],["25138053260592685486975247125521339618417055612656558881552289137876509810047","6127969770951011330433014276213963935077878959969950868110091077180724370621"],["6581936459210435776635117366573331287694514229899310664670603269099043835825","8735351601274711243018719172855064724997980603029623409823672541974878445067"],["4122432510891770178423826567176751726459579435089774603924396696483497153392","851494775726371352661747316684805047693889351009967588525711423253379403888"],["9040899117948287936831936707701158923130380417569659665366474226387315033560","28400629067130854900435962273368061466840979392325918653785506744907947730445"],["4605773522875149811654556848358848513637320463196592347608487307381666995473","21076264746128449387647126366201018919342616740906298308446118036114668314284"],["21276330934508570051839906933766184084041655899597762898935754148644989426296","18094158466123671579663438928087816304887018313756751886738228299194291792746"],["24100378173757438145427936579905752921290600518162096767542139636218911338245","8511324505422699216674820570214287746611930392480755059084868203344704456277"],["4501910724782004913367571248528058236730168802708280698330178618194812423214","27644612222390892407419192818044295225789238331074369542296798073654342499294"],["21919573057784841043088652653285553037315166036853666908451942191031489082826","1488672152782179510640029256712309031712602803766832603160375689932328419114"],["21359962893914755817550784018590151754434615983481824220825431383043815469645","9839455005579542757123621115536109180624256739934556426683169560408352716768"],["8863864994294520999733972561995629658376652745825136517156933112762281882564","21575611980296984338910536493016206870361196008263407262950710808474680630703"],["26811299836995830502248295687503835900085979165779358700391370515945564675415","28845394565490471898394372550173903771655558788546563932369153462514242888955"],["21523817167616400080960658832293812995157754764417033882142996570729094023432","26178505087621230407446643861414214241736796532725275863271552775347933110009"],["5580057108831476891363937352937410154397432928332367065445981471696284988276","28191528134991923685026143260448923189896077517861506777477482081663813766593"],["874437649670028042887482389081480447148095275895181243476229297256756084481","6058094300409875210702761734762305663033235357612767508862170922558518850270"],["15176303834296883210551741582018296946408570555029058356109263246402898226803","8467659419427701066227273910004436848925954011709587077083553372194987456659"],["27017556238319395074852030733837608865846259141765252001844064678884085860486","3975724383556210554416655919711675968250575770794184548533769502807712451761"],["25133394878588464392290806295106389918730968939707505066388081726836864722658","24103689379685011200063349623172819012587263571327811047642418525941402255096"],["21153850756684876614237890585989200367551603181218131202049489351951675885164","26524107734950923751340883073266786826223608231837446711852678231325844274889"],["25017383390725017834372224187520471572630714219796088594445475716090316861161","26074046550439030967727699772754276015223396219073818792047990526545296289383"],["25648996304928543762718485500268469396578799246816334154955341209574283169133","16751032296687742461622078170590820034948131655557109302871734437566762686788"],["18560720977377197308861403081503257851997099839775689218285568509153368676014","6867783799457029162080499261957858442761461442684029643495919665651419468611"],["18007188045820653529436109600683657412208162602334224916002256759103893265751","28415693477142709056840298479023060567495672949660838256199067494837300738401"],["23728745437146903928053968440347151918069359607770574692447148778612457958654","17038054270585285552614190287278166314217691233673155859332160725243388335109"],["7306740534398199537784017839545644593440007071317467735883701460899572882501","451498730819079369125136939748010877890355622092047704240277862167370501798"],["21329736340548139080943844639165430874338847874892776106696926276377436207611","22140779109045584617571886787820296561065063622863535177711765532528216022226"],["17390283797800767658559210042910484658542903901777814609467268577154263055657","2351707416836788750149827091434048790661855486053010601229398762312816453706"],["10412356707516129207636154940280719127034368128432633634489751698936751648959","244494415507195676146742449478959462223715390997435767837739556087217215116"],["27260950259085923827623779675200490515408729019732355423915413693619374440271","25298271525088718496941506676853731639175540820549466435508476493351489443017"],["3133233303518443657340210650420629334563571045534628514924269173058196571232","16408444844677103917881138830247902937488118610239267611209083400503782888987"],["17686317848492508590296524755732278405321233952208244821828712919942539566300","20760125207325913043097394459158893856605841886623977047700346437449854202637"],["17315152317833143816681044864001438095381629199962337169028163593233350742631","17995300074859962657056538443133852499455057744621674972391477905291930323685"],["18887635936290151226263918459654604685320745690478005787519391179975365776706","19464156320809227952249287583748829667773331818974911254976728527726466304329"],["6857076834896520371866859544917986159391965390005570816426776379400413332088","4955277720319756845831453251764825223047054250728044245467245851826155884630"],["2864545635724275585705687690220241256650914789034385975123129385616246344901","11466953185906935225063340026519155603093408604565926828527667762173491224863"],["10675098230147305983567638345573165493307954787694220005333698845022162227333","10496573779677556623628552400781896987165036610359758861737518930741507225660"],["15423722297136141559433552535103562605104024507727662557145837653059235278492","21354219746890000623430608141631972602320967956356224934159189944520800257661"],["26018157548346926846546107445184838514308687836364131693029821207611609534229","17961308296637913333041857365556953811733970354927511811999449555394880698013"],["1963329431000805461451754792772892690236592526153282943862626428102275696300","7079346910603557896953131037261230499982706064790435730432291524269754902083"],["3167304646362571229143510166775548619982509694428592522072915548008754520902","17817510234828254076767913547733253865983806961680291362843424709153704143193"],["10695238281054727390350603026669147868368388476046512052669896459804347912461","4086302325751594221042908019318321833332889104914894703707831984905731439779"],["10399296792016682696157821153046629469656924237041145615991793613539184359691","28635378316974335303412221366509243984474732647802045448672118306487875501125"],["3159235642354948792842687831554026581777638371248042771222214374275669871555","501695148622199753436195325493426326263891099028040456064965451389020975331"],["13118011784213372687223852771754040521363627757956221213081522167622238309900","3523759767895275356070423662122356498519192941418068525433179683504052299650"],["6740960713566970309340496750142581605049041838284576826840743012327713513402","15738986400309564429926945091190094010047932264203254505347241195224525257396"],["4569935916871399420882184550770155096381085174836168299400063080805222745981","26924302143132682934262075508947560245314379709968757485204583073738988221469"],["27727859928519509471153566881942506674552782661552775158594277000060328383166","27854067180254568333588191925193521639912363211159481397743262529733386130431"],["22356118495032557608211517457203153203415334175467699365031521271730169132099","7678661896501893657284662102867997824853961055019985197213545822893269473299"],["11907226253685683547418202172390650228045392467161883212951493663057871191271","1581862051921149007308258014389252410555650440745942893741969735075250841614"],["11223984914464956541120620034601499156004032798626913664170514612930583725889","14038093433165774264628912624341586717474101845868387204362261191238882323540"],["17788520402805674293252020668908583709218621110089916955838287192832458907715","27288183726944060420752355195797395389600907692397896997922175571362716887741"],["5965587075851015889891925110852512879177933354884206360325650259484240275750","11237219971031552958091640213935155279766016834957041482046594540562275483919"],["24889376274755186845773498073089289290082812952684098222808828259966300895510","19926598859624173652299716385736045766008320912281429174015245423499940265678"],["14822260544470985748061842102811781333368420530225645102391077772813910931137","18554119140652704978777247356697328929419425813345692733794427103419070727947"],["22277301649766294734062156646253811960623430481143227906128210546706303655868","22404733825754582059784065109400769097572366550648516418712860439642481870498"],["2117386691896184643853363405625797949703433848491404057301309448331048225982","4816399858192478592033035781284820066876224966134009943946232880541389615888"],["19882273939944322279067450685930688279668383690807177583256180160283422204238","19691661553783041571459756509433973381677307863196052315755183471254857282616"],["15155991338273961704550088572647767514774308968397893236641581088040929372613","26235788081780222696655376898025039960250483583786941197771188244464899951240"],["12838148778522479909164742151316360539579365408823812576344454380351635638978","12262971773812530085843533703975212951297625673509844248842430117689509917080"],["8897045409035419132031685953323120322249703390604339182687789218493540502006","17657612940611416036836656635562935456545691014771121047028658798741329278844"],["15064039398041912002207540916557962606915300376729062378377611156613356501037","18111812024000830740652605742552466531962987400320152298289113851233707843300"],["1347975950596563563679423191133239805369707378758394530268504383662977667251","22496304272973879383705668489593911802153203617537692829116310812705420860738"],["17913224127755291784902194812346444064697426475167335104333756709252203154286","18608363766332717452736783500127585861502376644707333959372619541607825386093"],["24081635419743810777739680943468508354118613374416782546794198200004578519702","9130708992131714649558260349341440209521680049667012267380893561254714984030"],["1404263555809801402231110622027128600382695422684070472025601733534175960000","14455544287477026672212283148532938719525130256855682852094187491860866149847"],["16980034581567181480021986889991716242462234380335622047539844360520678234471","20585681509010156220814350821326584486487850822733708188367915258189178875578"],["28259840537938114008007213165296606261641388614460033951061963513404523544432","7050963024407065527693007280291403347301778161452017948918933778614851527337"],["15523270506240452183873568029217765590650909677303605636635134550918868630951","9234934906056509748008647276545337064608888840253233987779391983380269610678"],["20727639536404610235432865790055960306163883958095890896932675042469267020112","14207872541688334197562281395428120108736399018102852256548271647540001272276"],["23540349360230665821889504134678217942507014497506489571368772913688837347117","23566578422233174321384946295354822984804745781507957452365974003925490662176"],["23390778797769348463742564126447855494558726504040067078764895568009977165193","25355597930433908698317076396735133266442674014828069345285299532947603210766"],["5005546247813452696852481411824882538284019497773800401785826541068593029288","14114880782633545419753548936418583874492235350273839432116718109522099784594"],["19363427652377758614100673631995252276283750875671133144832997882093165193928","25059195428961686923282124765313032760291333415610828850694085904228531954284"],["1566404027485055338401860067369794736222927816619385398050679378417064634725","9464292447350857123448124710807226460882145942434314482854000095325370296007"],["1496839238486405209489099788026938942147255121092660365191822178887663276889","14252543908797133585100617119789952400951435716465905127295311624831050120223"],["1586085548984222533255709780651003454928736675891555785530616485819073617673","4823204074779769109865035298121930323330889271596054522811003387857751281093"],["10200112149640100319316774559039168574858008418502289829386307523225340646041","3002073176716106416689722722230908106081279077860859227426273633901708923999"],["12190433470466168274207122896029793671560994308770524201693246768351689896399","13405629892644376258767729995838796852467327440530744108772218007259312855154"],["3662703336378331070434413956070458305209186322519216763853034135648071575488","26469222507327038588859157081561077937193876208929866824909706230107002277730"],["6296155219829176305739850575624402648742545093697739580916133381848073360002","13617720217731724407552057172211498689478964692541025890355251983405150163128"],["16384377579349982457414309961901591045593755757144248007137497745972546541324","20566896078333714561464114355566724915455995480040812344054184389309393769595"],["7222644464362833030356361394537415771947132492596363208976519258007183065130","23645312385936409511207444208614922334810287897875057051372592779363429439771"],["21254500298332388739611278436689924112306735610967312055469254027221080637029","23499440752127287079948372424365422844025876997835855739276240924501673229650"],["2980715637471790824806613051988371694766901805583004344510785568992507367785","19833191166093730835494032895318319387174134462730179287983234553081594782215"],["21996836037434662710922577107770186120128547735368084516412622328621195282724","1387146409548552072307209734884686902719330377860611169131947834338235523104"],["17358209489147559762789204035036874579901480717204217955003291977759218350746","2056893750417704685982024769512061438794936015537956890350776762364598034575"],["26817123022687608413900349361747651901130905804249278213896205085686336587317","5310563469864457564462780990553026480023204286006622275615787761337777214481"],["17268048165797524389242203026337467104551408753355349155123664134719317508660","5305614362009446043619363496608681771894283027412316680001885211657217864954"],["25186395591721553021929575538680303715577077243051803847475779316720183877384","22784650327230487748327438626472553144709728165708278402913716163406279622218"],["22400087870560099570492049321374616312287522985865032173866109471068943508835","15886056093326261664485997443979518745866780564755285760941664722587093576847"],["3954290671983952840711680606679065411999825582614859701999517732685259468127","27999464813827449468743358140406598722155699587192890180628340378894561194181"],["13538848521731131262428405465693618938275161632141710102370021611144570648711","2210206816361368036328885495825658487415524330475719462422068108834461363085"],["12906933511890124031155607391527751472409472792071987868128036716617368436183","20910590242633599140453393396309201049311178239594356628052881262478705695398"],["21396758041939348733959874524922177570564730163596076009968114349757887589697","4835003931748483123297574527186970148589448517794748569659508794217306453413"],["7310821419613376927420295463363682870428377616259266257415984417866010191638","14490807580122941862320617494215076534493788436443992762642072210499515630097"],["16915339072748007220741559775086789072875711158313747493242502336351277744563","5189851715233815326539159618847187546049579378337029176805715516166317492363"],["17339788316388985629592774704801860980015642703424315738212328178062249667595","7153629159404527790923254049383706697840301052574870484858378124645243577146"],["1533353578250451614238197851710848822726185969321156822350187728843795435124","12158723930379599138689688881914845080722717753408285489178180400320359672590"],["8596584090501009439712554367219762909795574111459177751113278046088906144100","25112809604679961921886644931011433461131082528591711305057666494647341189032"],["26169952002151209545130780217791101660208270865716194587433408117861146495532","6527290967098694959561370705309107610193982151698457494362405339624716879007"],["27309297817926240965882518659472453023044223313149864016462169768736351456205","13597767792557496547814196649985015456478716444991311921767617932674438398691"],["7338318301268746876720860758320182837964774741811321203149731342302863913274","1874957006988865538426044321409675470620125811120892423314948582319426001413"],["13493037194426358922365672751303156024663700423444651298435417190607026548209","20596307264459421443679044043588390143129515245641872941904789041098206830584"],["19905961693112355860175014472009322707885109633917411724612303695388310387105","25269952407180752766976950353184870836253293542951348353077637537032650739385"],["9478706868090441466549552623593651646172785065497976818095981764839193595892","414312901811893119877019929081218544319016668195600096046026132584893134336"],["22344209736500858293577824507832723719249965865015269941762129637776798611956","1160488634489475520824947619210354767903464664832927040239320722851975992658"],["11919772760571794411482735475364320783060706231324290618462897428583159059827","7264823143906640943873642235254839951929213473712662876309568375114448933494"],["27584930829744519315488784929555159907793965938987168466594216588668821158129","14168429844637537166104802061902742513566366422383308344748982843646613041342"],["26776573906267115007997659161447677970487262452718183639619253453263330747119","27656742232836985853085173135209426355833935742230807945541943468514390096480"],["22170662659689927516927149031972702952479845868178302620787981789779466984491","1450400726073888316502331883179855088633426747067911176880374102289731600864"],["1156462372578095976918751241530910902078944870642230373010122390575969081081","26455923144886100667380781581741733418291415363496619093763910406103289086485"],["8432119232479130766314905356210628443783758431417957545791635480309898011844","26931097107051962070541845078660501758765976954560340743979095646327949226482"],["16346631431873927940433900499368809177812604423275440387833643358192081095887","22902389480466592640216276090842847466148218611102789411261834162496607017184"],["21858567105275423226965438919371728407697342271722293994260160637750612784961","7068906775108746563327236021794268145027277247687240061971406687915338141317"],["24767474711293279955082348509379380852087512765368649123789052046350653306424","28029227539218555136731976750275172156635184806345796094187901162587427133215"],["7672673889666244512414352767144194309559229086829421264858450859077777015190","7100981014415270083219573119897863254956838400909231526414702372931790999061"],["5113285722283168654095099834309719089767013313861415040475719391975386942555","26394943312373923250924240229781983043076582307743485233483020158379950465565"],["11487658552492771791221410742005456780073457876512527035143112635864164621787","25132684751594510903096900960144391468330290384544765047015121667669189932235"],["3644822249234800093831006821396761607207801964914103178761501438693387545878","996278781376072961243922431357704188308886474590145807469902593509597724533"],["4584295409311630036402661145187333052591429776355418474784086745158212492443","14450790641975822315476833637458367803951125043102602557497656364513647142038"],["3119275743407306260102997149428310739123769492600714197823943314841655423802","26610036829159373863152680603421839326032704508952529709456429339171035432623"],["5875551640602379000364879830216874049095659287608281310228588627404321373024","9906639455432466270603394903273617810912860887315727300553869078059827546805"],["10248894048020472865445151197493817942927015593075068748226780675270964130779","25919779716375343405776263723654419027955480077575049894739407613566458085448"],["24125338959594092936145147816772280165332213815133020577416795542799831954029","1592203205472957695365522296289984063571407668099068941828883403618606676632"],["1876750112620664966047306542480224092943213513706108969512064500921132196125","5954432115429639359957543989846553836517510482794781752790080365224468387465"],["23122528636740372242830402872276321026251545140338947153439039443496932171578","5381890925181680554393189716549691498210536552550061541404868556444159324640"],["1614523151014589554955136765658610946582052672128104889716933709189326609119","19712471919474582318005339791801687489499279057199224375731480268359299881721"],["9390791796733048291783768492364137900298775363366835944126166666465886306657","25506074293035194250953292111056078248207131424928037326071216198801829019336"],["22649932525620111415659940587720848784356098876711753636238545711964428252355","8268539878903297120647487491035993050915676420239576759154102947897262750567"],["9949686123614897350815128254047863735170792223894134888597229865722785791502","5910424148669791155170077066473595124242291736845806844130690584117939312617"],["12705674988865246738727947582579441246545693580502651939784021225860971797632","23549860584382928967136691915228615733815850176280590598567993209116573961634"],["2463593851453384520157857176685384418903066576548270141517710725292567098192","23929884537145732445008742276669581168171007176060759881111801261078862031550"],["13689876987323946711764867474787055382520136392204952484162135223725416379704","2518296261873709231679561683641564076490087741964276573694077805148234079974"],["2952398216440524317412127827774467461612817377218762748846443719480337108129","8764552285826620805425127992552144278107345705140299870414747996480632756296"],["11414480766147599437770359295236360213894625101882360744006178636765581569685","7735801622655116186188031747061151206224382158466009843299702979835388503740"],["13018891676526088238362579681718607595440266758052428998965898937080384811493","5982459493680916638932833649966995636069689562067352567671285877527490541516"],["13508084833859804971771962737616761078841331961208668364865565232320284338638","21077295718771603507592984951193463453731079074629534663637988583139040531046"],["26186385559063541422596298577601152293026203004532929880094511624410351487192","4595762418181848545475175253879219419897154327221786295394485677836886876567"],["4687100978708476376932001219070287518409850491992774986518397290294254526864","608167635353472501904580436810152277932685251389333548747295696801512945375"],["13497402101847965709378733734208872385414313553367860952373267496474030122139","22651166949798799931725630409063363768842863264315723142651584557057311718885"],["5519345613544156003889131345797306016437669069847652811861074558883755185649","5347962594103297236056655247296017272177596786809856820739429331971283343939"],["19523415816841243003836556616526663004921250567397006248452555707547323787737","26330872531251519521773313813246013946415632136681114142152327987815702699092"],["24837961821562659738615801548954005172951565428214755453701372495337455718252","28197084562672766436319497701542934270046643958832721587010899073992667731793"],["13370392576292694603743951006115594196956157347275236392257593911820312351330","10424610243455723671550953013935075798212166484608144985708996210233849680627"],["10401836243010411299787629601137442680990336788191915963868944812900217089586","19698602333637406455293962297655371733072768784721951468601230277054690085693"],["15212877954527178873787443503351436336505222477271497702039900752862456849366","227403307857090511449991017746705648877739359070827309126095502446072397385"],["5418217764756879185549259343193976436722333524828057799324199497505826874405","21846311452293441043105884002675870231807433079117023078868781341902907887406"],["18291566910334964532790932928387771685855181702363036038671426907489004454940","5136044240154485655196184767319845893752251979737310461248020786927043469674"],["8873475008939029173667748131859250409237036996549324874598439049856383463010","11968518408244809434670963166533396916005068817873763700110707243715811834845"],["19986546521016048202131554037566955504730333402633727471996251271654450361215","17951333330765771148857309479269685941967190232796340139904910627479574682869"],["5399293393101747457441275354482881098983236921953625899912121477177677161092","15951081018861757451359279392132917784481324650055616498808263524804609482419"],["9906577029036257029485085458323674861214150910109434562333818671689926892392","13567228981256163824388731760366451302407694326954734116750168396955772262583"],["21818409660753545200217046569988200043238626755716073396558210432419358871305","21489663501148373951025825260628623427982231190753335882274841692854180516791"],["9618477936497881302500153888808936473799592642069075365101101063940184508916","24617873827512558765749712067383877869479282763780362161785056281432165910400"],["11315191768147899073857127952741272183921886903527105650963469151677665111876","26464896145940938287601103087356252344882768032130826740197698049621733504901"],["135617296045252088433520217890019563448860831179394571248468729952550546239","9783665394289804416042218410550778747140870252248420372408750468545882292112"],["7516345452495628320930606628937960097178476469529070062137329795363160394877","11622285754062992661617129921719206798774796300242729418267170479104578112764"],["8966687254628931997497347908295974535947002395944956084928257162898741555541","28481103721592742909504919337699022125244562174826945565894718740197265170594"],["25465043275742910231057102790977316217205295767486080713095482536847697477970","27412040490355069382851899823053171341456350397961467900476839624114780841249"],["595981677554333961345774581832790128968728255042201478045368270530485062349","355703290993068606558321201927755630886999065981308606201673504927560981713"],["25027368102412076193994832407438944588318856210692335813162934704210754796155","3302152672274118561266290030163331962665875720527116569588316318460743911424"],["2742888925956837223146291763572020354582304664555416163659150889357322402590","28078317596934357091859167216493521700382236054744518080319101562235719053368"],["26125322345802621359070846647902858066602127992874579495298838353061757478299","15392938425310083534535049068525862742369150473194580287209749558655120444611"],["10805589052281945722438963392042375549001169607014956355263597528714572040716","16000299930958955780775054636052415530406209855381686390107043005681115058909"],["16753399867585218254189592361467403791929178892479790643157791262419248592212","6103640888535626756045632349977291618646255145542705246170435188857025155011"],["14624563420268325578616682600587262233897262226347195682545228307250722048253","18108885988199801699009784940720174450101970420346772370054924572820168399573"],["16640206170990842473428539165252464913462209638016358007030677428966998191854","5137040517177733630391436565072074672166904396580953496076202730128060579232"],["9542746997236037601799894401348409067434353821819361241464713016410413128350","12908440749539780873172116057570419514878363592627670135531977709892856326679"],["21552341148823845348479309677866609670479829848820632444058501601135428858873","10887220263555509986922416341346325735764133507895654334469865512499703756940"],["24218766990737654203629219505882782394303325257365714529602679877697752437684","2451820418972455214992308189089941127874414093928952700833119196912652968552"],["22831094592384986190444343822531775528839299893732668816692106194829081392301","20728846732276180894876147840154818991215717842950138326091033112627413798211"],["7091493688393890564152210608250707637389109592971816662126059148411531894209","5997653595415447867308450554335586091360786130017080816426327021645149029546"],["4558622540812085177439965020722486130746584630997223437052267407256246543547","19315124816429527971748079573941766502321323155201466077252237970839984597839"],["20205819382797669012056956963218215848015331306858935014524406504186576071560","9074786975806870138948231576544368195141179366729747554884361939390634153018"],["26433983148195322197368676427229706484428943726699125235485950193333010319711","27740953121265353635026859922179892057757916782699797608800808337542595978039"],["4483322759553629229282947159543666273418295912824266498194432312238557397966","23826976363619330374028213956501393505758016641947101328967498077804405536263"],["24950814769802424253883127676730081684689314979955774263281764348161412682050","24376276467226643001092101032748838736862783433075433407641743153400542613917"],["10179775604212822183393998491801965512307949193216325644017104635446873056542","15011390455078975771599455517529663622830450971296604814212261552583116022761"],["8071791587032967741199743133762817243882657029890951793591819448492443868653","15031464160919167243062799006514288851233015629372649684793020464648260688379"],["5234693525666772015066968954298424281262813914294265942654790768272230923727","18175799987420583117040028837065402574228628569838544692317812047349738242773"],["15586193364352222801029040200873130481868802796621322575030103334311418730243","1250968653739490810890121134097593655071644247722770289369815529600412010163"],["1980924630495506459495053976682691446948171177324131327564683017196360038309","26778686352226016627264684871905432811607942606365288004165195200966393707717"],["10686711343356272332133765644984279530792278326553901079021146889975942431731","3309741107180300722212703631634363873653251578623828973687760913044508591600"],["6206414526324125973820292376106282619808523844998864241000455126311174505562","25026277101136202433275341636423836818659221811699517409044467569669253389791"],["7760826117435359544899260084173547100287302529191947134633471021857675848769","27059840969827741535315142227692766868505234628812079453194662627689662768596"],["7936080534070293135134069223997797332654529141928093364025631524877940562283","2437650530369585179852742172158285336797356089553002642445031944246087430653"],["10073101542600066858599044766114425532524517007592470095923416245504065726094","15448547516555002172408624338216796614569228307134820523588228904352835951044"],["9056796102083952766204111081930429744848624780865641092563923386152801087454","3051614733880849384527484110936532199109651753000027579347018088445503740551"],["21522773063229005507913720321253710054965202915125390842861216550874990445255","14633192601858884951436765190155534442526436318198641839928083826779106555676"],["8511595078771719178061684956524223006340343147180718618239205885835000789831","28429898077413381820577004736654763380092941103878441031778307150379305420446"],["24624514147826154343366826084795575156772759278873482720753036046763784823550","11416346865144972735741615189232590170599366806729865913235007454776655682922"],["1711548188820624663114605708652956973288954245796741929923550671978987554126","25591655192236529342919129364095367763462182698849614004229312481106080149371"],["18109467163841066125516092248005093865573804112223258256876426626418695084405","10435622316320141864201019866584930425133981229113579683646827300910345340191"],["7202476190598699905203150535459114219182011095919434473364471277405395469193","20945313990574819746055215230823453310619587826003504841562957231417932696673"],["24497658723666142625739831104654011940926976072117235994950333048687094067659","10670569466673733192845458681716156297707745049706743288866127651815825504423"],["25315762137794768199655267309367461076387113409478731715317256463428217416490","21613112634645496583827154974261054475972410079904865593566766971390276931305"],["26743963061380457169345539472791360495380851641377262732907003092333951149402","26934524901861363516663389163527782732605015569590330322100435766292974054176"],["25286969057831364726924167048503430263697724980598250092936289609982735651241","5995396713744494252674709883872509805338566231120424290622050776639398171504"],["27358211619380425252386689972912110925045086491445054641594564223795142790055","13324140016769260610353693815120174541416038989905079192414780163611407908062"],["765950269979705985146416503529556010014652381313776380307235713068850398138","3508878200900142216474237286342155842328100503316731614384221842031650254634"],["6983054319225425722498828739939590964199819196068752393750439846055993969272","24266731092050349335379026243346208465740162768522849870338418378028740820689"],["2440852565618430043098366417240270130128581465510011741370306157478801450236","19589492996420871001754149557686404465228392482502339319120480706726549592271"],["3912005193044439589027940104967821201104008071949141020211406426302543438530","5301561320144837398306455200016424359130407565166100039698271742079401224321"],["12661025808607444137999527388819627852051816052736638804270943769903238949125","17120781521010512424039695474282968280466393361840213248093363887992879547574"],["6392286683320836443600647429340233883897905385882368894367799187554433980419","10967484128840044450029874390573891953352847753329917623092844878986831182685"],["8614466006847549967802463668828919953543464868980187306453487748847295865960","5414683062748051762446102097121113220945775459918130503599027510336517885777"],["4258263009290144639885941501091529334999176550034373149812834767061162537063","7134066489463146053691826379717457508800373938892802531764988885579561761976"],["25186386228695228414913788818499661178668799575618457187542234913454448521584","11832594570960979269245007813231989403680419032589457273623773276674504518320"],["18426916955712250286689296589846571192036767199562711908293839268591617386679","1625052867879332153896878595592775018254611824738312941336707447751898205442"],["8579745083318975272839126740025026547401153269827535442373578217560294867984","13848895686194709283466633657169968563907058152057337561971123252686105878065"],["442416101517488933084429708742311076101442389502181720075554625239727000743","14057155746551950950174394678924004302665877548359583977040893957590662605069"],["16517322002714216242084185621540085774052438666346335940818324795037753393024","3499040828275602968096577866956872189143569823851882252037541727145717866930"],["26121558717281019912335896931990664557958013121863781062145072482168339460907","21469430080959969880460216660759743410294816579280957353380166184012071136903"],["26857978728444129041894391737897723134995120682888271081598301411807002369901","5090213756067441291024146347088943050688270481162957337322491734802305155910"],["1988242960447781789838074449240421390612947560031230192964777795380814188632","20997761724618699498728543403007783024401167124505002424894629064050043206984"],["4711185536024158966961260414376124928493153796353250983122794015656097796398","1662334335581378605065795824754400131525760695675041144165912275060589065216"],["24030531016614936089012327784420967185595604299983010911039824277326748045400","21631855753356631130154360679556677150082798921550129026107279701156494327130"],["23358512205395322607863702717749974002247489698382229289192415996536152721890","20873642047095115491279856284770521342686345720476776798501291811144952447804"],["26189707407391089328436557538415633088826306611290963778950513756263727934323","25051062675966271533279143025038064978705332106099111251659881105844004503878"],["12442583875382903141999943641312334122812852435610478807429758004531742995414","1187449279798263492679190002757952668914860675589778298568942962126519782080"],["15103101723289713505357944964890123142254055633694128810121905797103743684838","946474770156923893519044682445528926634669797925704826083547708754091330226"],["20035587214128312639034875061893756442265166347741262101919187032765578494013","10264769271650270976724504877087977082344498006865743515037003379671894751073"],["17099424712614529412323592807440776886286282051912486453227345723997253484026","6227718596202366216493334427580163326365477775584123714927612269095763281158"],["9589055111285074233053884693810941776801593291874152085361581127419404726474","26866058935094482971680285445099573351686039888165362132039803919747965902800"],["12567689798027568254454732174241994307833041061526789116654603268582087234127","12885593934203283870317464881651347993327512030097937306683428220367143387711"],["28866276181696724834395919314082077493357371218897756340688929402900921946700","8746358439715280639229151953968681139878827553266399837163724200029850378517"],["17992378624008954524222249110303764546614751679082820085612005322823404698209","21486682019162776427148127254481812526259413051761911890020573761998082516813"],["21353049391215213173997797499968832198338660755816893505469141632413121564142","26498464713862065196508748774007216103544232530547743729768373011131796186915"],["9986541390597607821443848926365765836951810566504101796486716049858624177233","24505462367805480099514173003281365498058005153344576287804427580781778085394"],["14113980849734949776400507646809214873515878903580202993063422013616358550493","2209516425190497028412004473843553325807349455127696517533168037991792884613"],["18654635481876896287611854152098341842224997676947783117801352802980058885079","20931056601218385574212213724846109606866425297601551193844434046770011912393"],["20137634506016736320185732133455568155479772415485637610762809209827142738891","22050464546612156366037554959154317104610825285773032170780527542107978549841"],["7026346791635016346464963080985603958138131754720126948694750179840404333269","28646927615031871996222937508214456735718396766943155820688822704272626102192"],["2586141817741538129282235675110772079270257905035453941007488842932936096409","18051805500768938351927587286570561975098648021672982513048007415071408143642"],["7900518283217090442087636708840859068502798096212936280909668884216343920304","17781125115071252285756112556071171628021512774840204257467693735288691047985"],["680519672689718442999573083050319050378192828208031959025171917002937319577","2204907490765856868283701673479730913256379464842754747493527093357618610453"],["1637547424680125696097824314842198475601837553647617941479206238146071041454","7649573503012061132015677414364849960347879989657635235262600131792465891913"],["2337310408188993565883983519756793034732684820991606317815087577345871925463","878062105209832419701846941247351409836899967182210640855629632911864020612"],["11004135738778626596169359269792629429839705659022857816884534573926528436067","23972972848330173554165250258589951246031826236213533327762877197452617033472"],["14412731958322974435934746389397523685601064813810104305276987259214115585245","27716007020340585403117007765163136352958729298373118109315140671564205340136"],["17860590978944266608804539408658139314109280777046640240407446335925292852882","6660504622764163633393596613265720958276406589311924064395610537848733268644"],["23124237837032151966315419795938610980838862497721212437970424260766713591753","3095499013779060374068731058551583916575490886711624186456863014354892666774"],["9735918578659560589850049676208466259175813835969652327355173075929978787793","23255818362761847431465395300748718649338124665241632608782929065999129447683"],["15544513998590132023437442610605668371060136921807709273720652085693907943527","25615231598901439690902390566129883707676961659257490083396600539647606069201"],["24090603700497937938933734570875094377787271380256060969578542154288462954742","1700946898888153650752583772081938842150571027451430867650425812461863549287"],["28516074931923546024823057011347671835944993464831956271789237388551048760591","23163688165697946102665804452226564941001333657532516747019471948479502594338"],["9277803738984687621788733232536927806465109222549849363234597247349790774908","9717109110598590149279218247705038321807779119708795846641946106422964002813"],["14648294952855000295901937597962524469385718732283615311880049853639681126865","21313061816350728987571406674629722864079821219761145601731792229699720714192"],["15708947082690744796363685661650216523754612816502374989654425680205930577106","5510792083907148417942000759996749521425646854538278149332795841124705452302"],["9453521834165642728676113232486997999114535826326102415080417097595252495905","13230336859865076892055980001613400057457196736689903491894877283911964941688"],["27423136477400000531219868140831365737913751756099083413717972597754330626666","27626450705110471301023436470517862678698539687047057198205805443312457397666"],["19602870524414149148843501213164644540284652863811750760848942943372643260007","18296795311358951539745517525791545496342157344487917684922531482605631497924"],["20815857844951494600000388264314987819621991669557344137536611199327900801331","20502445501062179163999784576798756713054536104689538665435173530928753498703"],["7418629167762893353609799318544600572550788462322404932867574123431006602098","5390496893894389158210063229527608431551664566199995249801714801543712509023"],["22576078081202529339867118242098718091441793232882053610949756533402684565230","24975326488679176784686191059561428892488198690284505367171723269947749171795"],["4422122467017416562401038220373085959719460433845788272653155565968551206669","25786196993156553336293957575745771790733529138515934917290348519704534178064"],["5829461803385340746255801928351536265463527297647841865361266675559367686513","28837828670006883416806890104776226473544605372471422975695946278971754823334"],["10062957665252006190492294033487907143430480032124608765407400301220654251850","328246670271941227482998185048580556539650460762966924175219536285814534831"],["24599171563204483458098553189450360363838498178395308040571849149556629252229","14297008356061412231882300316878721625714704551104041526535082691204379586579"],["8307845258310219420341902389438258039327025528843345738029585247975494670124","20911060475928718284998763090745302548287105341401106184599259370159412637302"],["469170674528923532184962884790423880988206230930595506251060281918191459611","3149254931752100874028587776879925641868295609756984675611014124283444882284"],["23959452459858843420834850215184322332471243855756547243768383971804291935857","14377547482846875016270357555597361880570830418159347613030582520504682791935"],["9034455186058489222336655642265149523775694499604266279914774305911921460871","13915936580286723145252452052632332547491190179065216565616248776701290794734"],["18292880153786525262061879852170266998277821890591358757743683664983228185623","7620936617225298540917667412736130701335644935392742673919132381041901404726"],["1769675166112826691623737280910553933936611948827008221673193294887534362163","3198620446691812033333561235840171328483449017015264400167296032762315807552"],["20027208183405712932986219244113957229586313617729677594046552885438399030657","14360743767918447061516397074065028465118484020593621109228131543162214171677"],["1632719513078854521449958310905065879140919116342261270017576645898098286425","811634263019422115336176984684975770889245795948446928859121025567408244239"],["14416363820475974365141006727836657823375034589401375719677478083593621145910","6599454821672686635586052919598777098331301626119574157070215741777381285826"],["22779961680531285939689687886537962035932734543492320826948630889276348226633","16461700795795195183386165949239644664164270114797751622563829898216005614776"],["23821304317917012684516808144637831728361718605829423815008668516490349615691","21502013600594963395902783053208991483956436518383977074526269531652968980617"],["23123272383950053441937254834424078195155861375960524210356747640889375226356","7457578567721900203945078757779228996612477861788046886247526233483161454182"],["16058859129449650760233839514087540785558063618501567428977634336896511430971","3016836687292362810662856651698952369738536058540016464736441084668636475157"],["20569946056670891388865187706275073398219067098827558229341799516178707784798","3773985075894091445854686382818016319854108148865681750824877640735037380187"],["4974252187117012019512362737836872133483455863443626565915256277130805074373","3179890317438731870694703929526637251057960807718213736600263455535468095151"],["14691942210787668422809746768655043622597064720427676458977504753741451386615","18774240699116648893766948379896287288619192827897932185608287865129217228631"],["27458482307608415533007611945075208132744536340100448052777162517000926540013","1759346473311613972089126748603424757402678865773104294211331470266444359511"],["8699401339645962604667274289750750254514295386567951173994143306123460595194","26001411797849939034868336992461198320136008301510641702769755350494268335054"],["8910551375897408721432073702926587445643652991610313706565205465422068574389","13456145375442708315615573854547744771617095294245433092829969209800079164386"],["11343542046421658749226552199001480709922176605502814372293999235158567320523","3351022246288943669831304268224198165603157629551931135182210203438065801213"],["11131474022338238704138215415440701075090968752203328228944112273060419354046","3393152942325424052225824199852456807280324194403593567105405492952800241749"],["7055701386274144766549677376136461177330257660075265738354801700375238272042","8469458346081089154167611679893910155786588912509055253654884415944130629514"],["13906475591398083335163862076299871579812973900744798524690890494029400226648","1303464568414963323378984550397680314770709473810580830454876985005391529481"],["11182217885042326237332643170299967452031282095293435275652424845940753699502","6313521552441327566428030854468127081665314361091805816871228456897564974335"],["18805858444010630336078146827993897029335930372850409778786643300370393229586","28159933666704856500622181824946580629987621200678205814775642311801954247708"],["26776582593435286383895878780773146356686090989935090949627963135657441649842","22923891291752073094400345054418095233274762725767004150905582125412721454782"],["5208369206616092576955534142485887727225862626761815801223516431756157131201","26092873659722029543258745163132857573362228323159328633772216507772113460574"],["14517011773575095248429449473776722371493218612973970075149105906182071184724","23723061387710798377989509787994145489933775308735156426595594694638379551527"],["8700826579403539295828232118575794739775691295612434869140223872931252585633","12523420168245845476084309749195584213368887803190884570189038318111375665308"],["13324327027699939786734145386890755283463265053899855129661095748762002927478","27786584777356480032719593755873521370045125959536629583253056419597728024569"],["17284873063446214462681196897831098747477135262543468376928224896802703071895","5883162291979313223124620941980732530743219297854577728002279198984993072038"],["371207860018893090248925224693080272333488716996097221505894192794760617728","19043596662985898520175752388343502690803685097466607026151624257017557633983"],["4284719750023366893518449341469109330999698697927353863159264497178697079328","5119696220517928948373482263209963598302691953139973641579973214749664710504"],["11708333259939606572240153374278793887077585410440930910288818912638000887001","23443873168956419814872139177506524499551859281257601832293225655123853626952"],["19307634658812260474778721536661302732184689726895288418333583712104962104187","5086478111043029766223088370012625664963720786992500454147220305226568945080"],["27510232184662992673426008080096577037464112608166845442799581777314004034470","14107645844909193430605881949639690804433174510625562160218356110923629331708"],["17812849440308031619404109704363006170880282970494074887192069984208770550503","27045098351387594837801411978459519292241007278149844791659016021883310537776"],["12413300707336670222185864649451258459563286216912287583494241992648478852728","12295316995651185997600455106046814026604188258196988700807128001951705851589"],["6335961936306711557677335950552497670248459354826649974316645303120190087308","8798976778851485759792012425165197951286855048287366244630673619304791406566"],["28341471569534271187072318014128002769625521324545717901618166749974516618725","14695148573334223081479312615682019022525790438880945584299277030423669229199"],["7582263412208794844538370307766365322710197815021110631735293350465668568499","26544093586037719275640838448974143887099440613393116060654616713072148783920"],["24811310450281744718463980093813062828016011114121732233927697610519001294635","746682913545674151412849207552448513258432514119631591862618245281778766233"],["21317984680922876130826380036356197268091523180218158351510248421352202579971","27798127362411793051696118316830009293504347910256187989783055229940310250396"],["11731681292779751917789157318605471346065433266759829636682745996777503072500","26452105354923730980939800122075282344152621583686508436385929270795328456742"],["24573050106036452532717639793175500611647946784203979211054122605891958652250","13087146329920875209604872521624716617345518106861035218540153863101173569752"],["3610040424580868180226982357901728603605092137260799969284920910524284494976","3435416798897456752012834527607578218515010162832929987655276632632677511799"],["7608439182340566922796545052399987434438358463066648879898344737433985496523","27110200589682154492599267909450329794850918807771271698294706674393460590089"],["3191532886207688992747889945964188088569132355318413433217613863663464802033","8129158078916964237528513297176009606734704226240624569246963322446929014756"],["3894737784577663599432795227558890315512758887810549793429627946018999359487","17075025062026368346109715486582837632372740750806009460680162814544018032622"],["28343610609687575763116678510639789309556031831154672433990733035261538147977","11695748303438382125857972267990417800410722582330594584998933015282901305316"],["23485290612779357998848123260261772251008251141406696181412215804629125276309","3480063333604589062888619076737777578922442622359520032508349351272069256756"],["12647130529146824697502398285975101664324112771589209558912341436739449672063","257671927795650569422380169878493165165158905449482863687790965967954824016"],["16757547038425681276104446603642197643585257464865639461176208433618947824663","1984128672934170526123958168278936050239541363299971577425681345248416670393"],["10406827269174025429743160994665112813584518762550889299635793716621822379090","5979842104573063990262385377438894703871820619265791705894621979938885964836"],["22958873955421142951211052988986215548208798250402708267465314770854164071043","22668707742225120644615110379144298506974391415333021730648097653167379582402"],["8854789181662558285782405571737062056810019211681972204650241415310733067507","3102260890301994111644310283643349368141097552506653088784726527440286425233"],["20672235651816507417575176208580891716190792324190972492272079895856157074868","3554238775319213691727165310257990519575920379578756848946872730478329333573"],["26255203958531559058668054131853986900556971047748367696641473531388232859151","13404417320930870636291792178164282782997359387268571659103153569687682851676"],["13617025884649834295910434490699079944313699768215373934672380674200303164009","22154636265652165324012919187217431561617073013938583346144821158549606220982"],["18432375055830969815549821851070284852373304010034119066009173221371443685958","3831967334948464859498943383599358497189252687247668327770604829634795630238"],["6921024495845530663374051765052801629322864536881927316727825337852828075131","8699601660969648023526627270919742994935853601110070346106131196838281599394"],["12186529558688524434368133636787881578939155224484976988094816022237073803739","10760708513661136802578926348195653692004894965288481203175295260164524360147"],["28260270362196476533241925692342354690106918873866678717668751609988324529899","9775228212862380428652017635129066306436393195395195498343229739058097232229"],["11990893178039177244057390443239119654252947977507256593365458741367184370442","657797480566593594963077669881307501319065866248194674467273070347537721507"],["4512056281023450861866425449099304679550195397452428917013911340604252183614","2719459911371182483784452286689224352021733802955495082802783440416970464042"],["650811972596088221924485597013721345712918700588044282211916586870454546122","22508748577650146594406113593673613947924654820804469912985813301542338663212"],["13952860276148002993932454318364915192763043674845800962942750745020401911296","6905464913310694340669391189294163775239469986974447134844898823967905501372"],["19882005863915793736604776446059281250184819801793386711765950934495143096261","28243478728965156066670981442416260872782164386955610569674635568166901047751"],["20845454635128584041482031142357188620811097087270031286706181088712079173017","19466771625566637517086679326464305615886163055246452427897181083991088175770"],["13302548876707723283022197058479244805888105405399672172330932468102929643782","18806175619722454728858054354181923332088964788007560269091373936182584455053"],["3306514796729006072378351184002662953755311203022705529596899435767072619806","14649716057196988179923921972963318878865240174911222490396901854202810174512"],["141886036414200278577673775643666830203726803321748599485197469272134517825","19584671774531022115874360613835506891073814723533052607043290527040793632763"],["14458246637255350907696520562827966560326004417663305694254401981448899976931","12315979229961920483902596991046598914963633856328035635921618792152023480382"],["10770313299026356896226024140312108676276331645754547111452812639562606419759","12042463174043251082345298648057458212954197535938110730886812582499948864407"],["21927663833844714131850975001161439796737280848856932304755228091098407089014","8321659706556079405177087852308747286456255595521784098944308658539300617659"],["23156075448463198160267535160222134132021131383629335717273310038071447443780","28138968758914882275599335710113293186442771099738728153874538727451958561096"],["23804248540995796629225959161574387224957420816052730483555421398269545336662","5377598162704062326920046687653900540457666061531590133023439817894955281357"],["25858547187072380622791262842100249005888781148813423160471172174795750789963","23730434341846462915211084051034203460560610873343391111373056263218792102557"],["12191238318939553980695847777491059668873578855058326415326255985063658978606","9291073137534023632616374180792101666320919035324807101460537464629350372122"],["20503103589784582177283083790548952603410374201073520643403031962198578606115","13572143732615292453065541441847955598876980187637118386427292352893171708642"],["13956731485725458886748937675998304439080815593091910276434254915844178261222","7826668037799658874269290302291080873386096820266245700767757839242907416088"],["15311372445385828081190547524037637551366260631823776042306167296997181287354","14071968823668914045671269893520277008308889106897832795645424608967401802307"],["4998542441654186426095509772133575141288227285446084549009135962801149083840","23637158535624320291694886124726857756179757825306030406827038167912731513904"],["10104941470571973446271920079769834492855929373177681009352963052904283550779","20880958104246234299720103218471866258902219560411338674649404136501354240290"],["25124206864720968000162179187915384442453801031620550421896673627289436469622","7307784872565742142531599039035940583557394555540590131673363058264555596962"],["17536929444262594394529679757811111018618412920324707331969095248820428080950","27392163202605366096466035027304721481801457486216182295206776200478052061287"],["5800235123510295155777561739381542405133170982396554419615876800049734982887","12413591549216399190928035381871828072894289014364331153272710708191350739244"],["24065637834061978852778924359837598081942267407624327776545676846015111072613","5835108629949615181802910556605870779774276351668246279090264844701114656789"],["17061534843237071214883040152684816198377074722989103581145664005904610608560","16517858176817368172299910593157542760598288906829190144917751803949044042899"],["21698085886629040298112321564676533848230430880606744195697925720368043434398","15878928590573054175705084062957313245104742415783514640217509954330129234038"],["16129803423142571148842728310497900499548605585069761721189155886328251843070","27102163699125795803191917447488817479350672339625982848604739407585911922695"],["26723801381382047322164121094764620919405893572494659720334525916801997946578","12219853267453065169603463399993593605565828170290571030075071814606890873985"],["1588168089360058818852130540640371660913759951676150170747398028634091874088","28467215010756228108065748104088564463199645932897879890946505946471779374962"],["17246224911455775509140722262344477126396904929662746567548140708804895722502","23458049159362716174101595483921451982659135624152599879574547231767116685503"],["17305687237256411061953629279545751383916290879322233544841887865797266259718","787377055039877786845662894276595339359834449041089857571609873746327566628"],["11706589830041537047510069513778776847539061738315372668293377432442345610827","370840862192543438463972878982990727080522908621037602142959441336809618832"],["19083832971940832411882681590825283556670333486567670046870713275688328919678","10444332534016327938346406417849769308114222515787548902653879337337384965221"],["206325299413936065161723500324200692204441883221288217666213033441126210203","25719724161783984485988340946037798663491005470575958354974736584483318605990"],["19019964433117577238362489326900980666412361169778269646264335002343718533808","13094286451140101806101853902865968648493895729668105151734619256768100312118"],["10560998345876811732813390865102231262096751261129617731068784693455391581939","18690066050855883679325343227136300145976668690852195095407145257820065260415"],["24297411276094564872918039129494120937512956295567615463800996879481938193867","6598324426045213417192103888344349998616217043403975811213896624343731014122"],["19368455689915373129145582778048500356353578929787397943134998100318051031434","15539286737846995608713642132424881261517248486884923942291555166188004903724"],["9164580889188992165807295169092022976830261115540991556146257955717323827335","16688555409665214021730125450077866163617206388143488759287986793450862449056"],["25824257247680884438412274313463601672254880285890709373916861581648280902492","26292775631297965883542170236686801330239985390487399700784670292161722545479"],["27498324552521617036603555991825242496851455832997819610216435598606386730683","19449796850143462966483508102335782297460114461248901256692618987248640185326"],["16883683079544542541983341117338792689612976321572840869887071130767501393761","12715064048229274036583621736931247197619309128592855949532256440699259357346"],["27619486460767941747691897648928282306110489374970319080015274719851169300050","25096496457087585298077841507226384720274745795523467541163292019165920959903"],["15499891583053325235911055928687064979289863915205372063419143631860296075780","13249960449872288446960939749878079318908324879895853327489616088943266281513"],["14341850888573414582175025139277327140909815129833693181725981696922285596594","13714953527035696934253361516693613644413077552045792279941791858898193395606"],["26388155182122409374571437860057292329027305033162516960870638065366479320788","1674969156135271777796081478159302657421386979771831159050244248559194549566"],["21000071636072122486746361861035076693623583450317401414548447563957512242234","7914087625951336152547069211857938726163425550701189182985399049838435186823"],["12124444683295012863057209307768289546480483910619119649926875656000964011273","22579036668019342331059723407693864756548591891852060040564935991406441516242"],["709620405983498759832073647877244196683080410466279629987378974586169971816","9230859854601881127388662399590520670785773895263256769273745351130022492584"],["10781645271331974301103181497685759749621355006849622657993226813211206030923","18522839602171183741218517177412621354561380329537999509292214449701973867129"],["19118868189852870106949280755795028983033053348494318120120656021669279277636","20248004990572336834097509885473039605032004039775852337222088660298556117115"],["201665997009032827062417775251724881778882896013783044348940959306158934013","19615474310248944641506500459151371542841794009757716454593366807216439356215"],["25072309996036464963419281180281362536977782052515070569095676943524852077591","6741285889587981475911902589535068006830375282313276457369630470616680090443"],["23760140347033191809404855817791636294756584594553003430264980538114620649611","6593984097207464311572622946392153222490660101195795348071698682607321756767"],["13915266532517806898415167049827200735837045945902513682450736358715846535408","4313161234102385044486212333734198557651599365634993754978340749919034432336"],["13702329367250316895124798010448450983584860788074696015832485354299639069589","28400516527926494161162151563414010364076912999229152783635152101804728128968"],["6817202522519186756791831257265785291632972194692963801046403612178016353642","26196946080009977005020223310841250525172063929684984957342341609051298824551"],["12883854598687622299761636625655005552376517475896993730054891960210897157036","26848143476024378745346791220754024485524520637257246862152123732121999002164"],["14365911405291038101288752689183537112281055620831622583274595289487083052418","22563444507960486465515860027510109501270933544009903180573528151692732475464"],["3807448810095390679024222240486329553848638775911659208295696518297753688198","11737468138112024518504185719862989953253543881623051686342587266591131622157"],["14668750402630555909788868595145942752615884746943022281532493762634756538985","6248437832264790665366839381705309849633947113715648763326334944509772740085"],["7129381013165993491920733074444214284531549806446932566987654832114899126111","7742393178737653730404708947811830575130330508772075150646952297198914099012"],["13216982968021822606366799296336399806027667359585819801395568871921947477703","10901340698972361836064509039777592336336862277522072233012710169175951289755"],["14255955255022605875818143142843932683508952731229677401726564913948555441389","14075559349578312082951808155797564072619854332287349509687024706334150343420"],["14510316137168343957429844180231647488097166077668576550219017370203518536709","26422116772515627998326821791190986936790884500401859163896450381322572543097"],["19671825555888513744827591749784300544653704936420842797079364755263860575398","25934220643169641622749618328717767726301425306122653470931766034952374320427"],["2495526562387862183699782036394895508961577014171873935621947244662040274601","14956913800733291285253678921673697263757976250479813282896683572786167374554"],["20817850489123600945414813741925443891220690303664093667676988507161344980783","4061425134284132137801945934031718314474158566418876679276860744297108617353"],["25037140025718545292644314243530998655409172033087822003424170261863533563684","9457251308547093496750100698486054382815037195282070993160257947328457969966"],["8269518656996085515448154397134732514953714825972728943459790287684987416127","16680817388185335639928530315831319834027454784639300798044166862965957173186"],["12190334496256147194437960581017496630976917724586355288539079823273166504083","18058048327033842430058649680620644845857246540404900610597227821708153427413"],["1459150915149668022437730107240853095482622993231622304456761101461967317147","23311716887175176381582996807971265307450124486347070950307733050878733209647"],["1919956012111371909507629869722470716324948077101641598711449939937922089826","9010839997322525064219734939484993615936059715143364886499129707941561372937"],["938178289219485818504287603096847759599991024912077752051313068505350618209","26075059939047040064050917999031853998726149483514064562577343787925148553592"],["24200730216752537583390560906087815840343096734049570442523067710262067023469","20693548941378125666852995322252061713089283519081748961158269345896563010202"],["27089031177452681129038943431571440439333542491270712830412717814228405009125","2570968514377761309159871307565729867071587544960415081859557117496516588859"],["13339748372590247201184824274506084193123393525330534784432040865391598762053","11962291802917558904490541995844719506255578743790846550434446637234035706453"],["5621760480593938864078327340675698328263194552279551496996850379969546239503","3433024068482116075632775036759734421848312109030868369573777088428583751216"],["7769722838995580198951414193448133036504507387339512268332605520442646439103","10132048189181194826391248562980539421387200927463407028189025956903294481692"],["8444991878209805746844235378055433372474422337150305165186525959793528704173","2507349479952714896098067327581658746116715096005440562890549183660850637703"],["3640560083890206452663591146404935214273055530574894651051464027412130263873","6082423530917969789136077235274514315099353342928580592212590012464920343365"],["25669288408854030729739812950432042114184777950655891978985100073828912437138","27397294719255015429934794594408542938018720767081205363666750877338933655057"],["6084409266388351378568776073956388252879257312941212905194261450432135742116","1195836764078268330837406896520107041003276436932336417617351058615311181467"],["11143015683574699374913021342755872480196900322566354703811428984754130561168","5469820318299274876531362703579291527107696301536950923933274391006197072944"],["7653383039243785063657244494389810953416336583429509070341886690455023555185","11566966361095082128628926720096390759599971798866555991438160480617217404503"],["27943846117627084569512994142130068370817247495749139269957649681351660621241","12053560800923294943253859273920951931387742075638625177888423757528963791480"],["26903685411592409382443371937648367750239681425084464362576186455291885007635","8255409540959822399924242509904234710098414312093174065055345907281697962736"],["25395486488548539879118981380289255036650818964268127701865484814022273526844","45966499485118670756847926540788743850606058579965548371525416674505557010"],["17177520399114662895076337623264386123297072237437571254085323722917137490402","25492961221778337825737776499367561329581235369952648287297713364541584518198"],["19830081384776628299406440737220317748221418447943786880567750575028339713729","25932871960303786167588318581573193028338890744681196093827377366799878908299"],["9048556954136019807363856347883502714736314943599708775660563769790667150384","28369112370096323789310347208466778517045985760574257062514332862953223431881"],["27143169540911136692857461395075472435506325139778531485522020628024691004394","3341333194217236641050452851056394164484725795482656373392145909949842453229"],["28915657349397725667312378824170400080829504945805276147418682409619540506066","15197671489640053060591801764275408664130910902988896618298668944751936053374"],["27699552890635513444826345051328355803482676047310651471109746553761789986723","21464792454782279301191417948461851027513001172321690622210732638207666166353"],["2879316609787766533823430108543428328305658585463809756515491921113464646978","24243942046620480109536619785058099866010257630023791954345691846845379741540"],["27513330437832879290884424822297619957016020483520610967617148360722214811858","6551974569707994963668272954178004846633663792443028532152617445704062258918"],["7742811222435767223061231325931502899459557119366862958081428558307499101305","17922458683577769472515388779323692737268804438020121575858631954974451306849"],["21655216833019145318535492204564972906494629645543484941783691624398548394016","12353774846487234380671696755895717769262503486346234373480207389703034415926"],["9039361295452037853710274371792509233639001460708065343051489283403555541610","17710645203260747215512843383539309046610760740605794513166625747076480227378"],["23591556259680702453893765084732219504708762488430421704949063045107062903858","17917501916344138124819246622827574950531070922925030850621696980165729360755"],["12545049378623313726359652572598746787151385583841757436440607306741877313435","9354025258553676296410040859155558286954115185723513359935189057703391177105"],["6109921809970350544031953601847671287218456430879915728085095231698336887774","13602401702628452330034224165593189402254601034840227336788400645038998866998"],["12304964451359404905350256455220514966392304118980697785424651357336609649085","6257385668265897475546673743477597993600695361993416333008325714479599008084"],["10723085772567906626198323319334699293088363853686662604507135804983398539243","11390989986421279752582952437630668257227297978056030505896670064062393885596"],["13242477944426407652098566103398804016557168851123032277310969951462264660057","9660769903872779753794367644612841595128992765810477590645965256692371352582"],["399232500657005105708966100678694276033345618285313426746429067916594737545","19430345238159050732878057595913177058738385139208752868139431636389047513069"],["16764358555844293502559582721560386289650738935211730531861088955137756975049","27752483952086419406649664877909422554186357988916034822656487123176207184003"],["9547359475826492119464014030103526373243858723132532657137761261526035135227","23720870242780711465164548701785025172164869732092253864249206935800441395556"],["917734226883180028621934276678892571839452438420439059285553004755257644087","24589164256383726571144736293368493281666279536331990824052039042829351283809"],["22557064665100549579580734720874127633725852146244255626036328211150643526599","27237697769134692620360888442760407546951208109248925305403653979224235197705"],["10597161071991797506800576315100496617773150813543500072429993431427029034334","27508578237073125950412856432832756790861612265475977201179569525613060535977"],["808613420204395075729303294717651633969663477164126939774164314616547919999","28037808379938151770094559967298823187323393493968331685734927141299366484248"],["19145133015469172281550827307573965089661679022677240244059550514300371737634","18255780809722796552329838936137645064401453601003992349348053013901873984374"],["13304696894778034150149436730466611748386445068439494095508885798962380132342","916403317041482537457409982032332138782374550320795625120772028437313811536"],["20524905409127157849801122050235823874242688285012681985722920264908283920592","18300703748594322516511333010399457312590554060223822397542204298810218638907"],["28082573039249819046273993746748841528369243379726135607569422558997327042172","8504839185847626958050084590692723394976713376760104716977439695403943020501"],["28571102185331624222942055333118361618688929631659071779799740914126839701490","981883844955448321496513274773876446933403021860695428388116459362007638673"],["23195536741171295643590352586002348528756444188819195240003033526319934987375","17470813400649652907188000635943933360699741642749892041131890224406255097974"],["19920320387696241194354331703138765581286313787229437112633586064212320627196","22080183163879272653735728053741726478269280695580412390057050593294352804240"],["1915190422782041093687793724474587996058455576416717512918772999489556857980","13486513166988172640726323008926968519423285027582444721330557380620184923337"],["1515257936786026782699175151286635032873025696946089564008140812510441714624","2903894524760603216793354176609000933549659759597278413338425583962103181862"],["20539170393775195829758977814725706963095931268587602667057361351287676358853","25060365898350526862314030528239381812956961632015115084005391501006337533646"],["7804846082525023347879985240930140680790054777220326215822995772899049253802","21622032016749709440138611817302869464556004796148071223893505476696498889655"],["6408975607280066167084151687760936769816890589069506907729099036601481988579","8292071565801374579937449920827784410308613436139619413041745480119711677222"],["21082065837356635034605657347830109011825639802664018249743332388709691349254","4069767804682416830173420278583906281005862108213044408524446171560864642985"],["10773357441795173475566455837744137344383865976679838849079032743967865429346","21003700270868337066170198206807574984737937390066883418257119864953568223945"],["505285007604073703906563790609629447028769852723935027309680753813272657021","17649143671322341989328778082229876227580307052991160454927151690189358069614"],["1206753862110618377337247857912380920523277528193492834997753828315074702198","23669561100038210596978516674110092049851723747803311653114629839234433180660"],["8609929999882750071421583393116675380129353689294050216911690574002726080464","18897852170311601104603177532124325712760447479802746987865160142307884185977"],["21040007146474960132884131122779639291898828601018368631185433726321004260240","6733512276302318198949559786486480893031521133349457969893512287960674218804"],["12750054583564753998042749505599887586550229934124841611075887692493389902756","13137192289906413871010281170248868331779277514319899206099445613750642847310"],["17084448479737124968663817667202808632056950411152662235969410683981786315667","17690946763046863798862583154169139760376869486320568994614562206808678590830"],["19811281627076766090534069406518840997910448219818939472212581505011754854914","4936995785226785779511272291837210018051138004918772908278521260983846653177"],["25976584947156390913008170955720728061480177575291760533821378085799059822872","10942973908278453400647738863276953915038663585918203488387641397685546840745"],["13597837351472421453790951800633609893238136012550813122063904957320745676996","13619940869125724078864044015452007031668950489351640300901426667048348301054"],["25016410440607867123174703382525500976450654506259858559595593153923540915215","7398136812493492164037005134242299210641752084891381355556455667645576476659"],["18363450950350495150402888224833626545920594535780956404695037250074598091868","19518928548445054861650099945047609300603783186041850363211021234082983438274"],["23487680397355100385216024245370467148033881305797550039464436704713520507365","12465394737543865907056652140798605213635273165360066756140055399794247340122"],["6669083981469356183620380059881209531612970199584847378987676143988901635189","6526708324954520090387877819988379544182458347536163933117755389791932713504"],["17634978791518688822348590435361284183686325178878358010504167976947408456352","17334191105842412110784755285313227003582095695410569627749133952600073075690"],["25316892886758000697341868384797589425150041451497166347656390339617611540129","5426620343623387116221999887771999068784166842048850553112499371250267208409"],["3518245342975548186270282161709528303833316961022092063648808639733780234284","11809607022770624278409845211468108553384031899425162395126857829328028977812"],["16386048404707544064815653014728949951926113425339708235123828885762652851606","15056617276905953735515305211509116892328797349241318836936231496031703907692"],["8700652378999236904995642150641844662380283993145483681778966703827616866375","21422611098162369253732312821198968137952395752719704034240470988405204360274"],["18306139008762009107050274764169517939928003591214422411742541586925948623724","11654986847625309324473739081509434320893104044611754862785244961345890220544"],["4175032874462527013039611286445701803533990034488942468787416088805091273893","13809774766714137402718105674673733888460584560183127478569319205907899570190"],["18248915791523006920058739775885215285160813567956636724185201561145600785575","11756917967832713383270522087055954599845953332831431051029668002797712143539"],["9130301902500863461449040194658965738360191678212933752196158970320843108602","19359072975220560462119675424274394116175545191547851913330098971576262979357"],["9882034420927353042548937920776061741493233801281311036596208657532177421602","28349056788975144011926324676969778110927258983702586782502975952279745772239"],["9766918462637784033005542785516723558358237967519489030066632271798886154232","14859822551248236753833270226270816162170020969865060307912874170459339827315"],["19035976693232465078327258483494728739609586862826357731960351446586955827549","28150768655801209912334810303347294745720468603855581351099157193628108950023"],["24876843828629622191454703938763196335046283390936112456924234473826833412093","9695635746400333122053094294727291422468460510211846262199979411973670829437"],["28106693872512604245560284658498564102406776896474988238736680730981030932910","16040795902536236364056551773111974127789413119636759883189943878069800611491"],["16999602199690657489842751203017844379451862393193421353685629387984894308849","16970194035885679975113452755578923075646900176251049317904091617258706201941"],["18274322021567941357418483902265343558601657576815362950302872311631381861589","17257896570149342952088954676743881712417423009592821724112574485669424548404"],["24630361494523227833717198538032336804974092749840876800716961039373485329872","27979531575706626895709253636848200876082350405359630148252871504791987315668"],["23442520512302157037185960843139960618436659159550390144785414943444828248128","17432769760446676203527770752170508912230821783008795251639047013273743930147"],["20953667986699115588913954447515195179699310654229817165516041465314077871978","8146857854320150230675756836338625831241111081566314421146600389880988637850"],["25159615930195205536556041471621486594474658853128043595250810597948545701368","19031890672553299093594466061474246193269731831017629765462254072342575053714"],["7805305772003882276664499827402005610161633969066556610573816184701902894488","13285992067297024792040804698934674906091110014468914533035013678377682474508"],["26190141461824680237433490025302648037456704103301138318453891294776305873068","16617573879732881180574018850819456828674446095690983271277265619726502795924"],["15738030606559384050234318834204232503863279933490060723627183573099949345313","21250606727745716343069861379485037056608446212240394089500262903403896918865"],["20236512078614701241945891071189324693603671927008797381165977078282952250468","12056136453797815743924063508385100522417092197922338618445779666223285145219"],["17969692438729098156798612484950895685341545517587152440320391404107992959001","2627888899887831270883234869967532291290097530024146618157897703171001599715"],["6979616636492476221919890406877396504327997793935132309054682656382036590874","27974414213107379961038796676900988953133697537979230415290539608127807080830"],["20178841485934534991251499702591721507614851653424458873198997436186764030338","15954960685554862327106972151644833585754318196351536992039080578177284168707"],["1097749962598310222111246618106026929857810155803822949815843874526042345368","8977419073363092066556759980086314249225013573816460762522199290354799690853"],["8040743824618605865584792953781743116631846461359676343959016733720953058963","14463936883509331717687947350470347187280152275785113368502649405507583340597"],["11437903271696822833527761334664375320170749701055542275485255428596239521365","2831769956861133064161999390470964001266033283506403948384785831327676604576"],["25079650800592577349610721334732227382483559136033983576623889259010830351737","20667481700780739563776200500130612617119509953066207158717302329097936004858"],["26163546201417473919873574947957825538713056542106514452124986062834716304609","27020330123329607894249147353274495753237325834805157878445881398998039464860"],["23992208848154245620199295194569417076954802898970358459563602425607433089672","3130916041125213980993693998665454735792517545931575516209738043649441840686"],["18822321747131686488099383235022624263148015347560149050603003083615016165776","528598370628691252094665880171719702575583500906583605499799411933985145986"],["9034089019678061558236358651152797010459741322801145905792921367768064009542","19789991165758107346477213375241595685038289223754224778317183054402395601447"],["21369226315655199172853315214586070901424087387659615498053775770494549095373","16841692631019199769432947255078170680097706582902283715742802813083840253811"],["4650363511526858294517704384816957561167400297498086042640423718044513450962","25302792459815474091596361538962320634730316123091062844119277855356216786849"],["25518543862351764917403559821299604823795472267877861843385557422984552544003","14310175622571847581903710200228881203485709664516819407544427339837623001557"],["24482074026336196766168406086288122585671585112778663997025454842181858381169","6981964994911114483518890327310468626817844583931754108015977089038649845990"],["4803416518076797215526621078461597937892013972296738902637845956316257687143","21021563590675092099913711240568670102998926534140138730874515214560624075444"],["23156885729073344594784450522040857095081686560421278491327359842249948050219","12334725844170363836733974293392706385084212418126532546984231757274759830845"],["27355312077912542042132583121709733372093664297356713911501214039284507336719","26057604180775491103370948485032294393564265946449937325243952427491266221733"],["23035765198581139568073220141014899332377484622708472394311287062868707407767","10214228517844517473134626313396079311089929429561012738091780182123452320807"],["6252296205107594636412404594117084464998363378261688320600132941004094082729","13280045793708710248403845173686133556553351963534733963670653766821013405501"],["25003819661783046174624669207821312464458377913282831189378021748211065131466","4118589699170217991747756541300857462257373032722377984012204185993833668509"],["23179247924573787079814998708746369609697559045169680834534772505014071519590","16247567296975935631705808009714109169118560033107399964139567671129724305885"],["27706724238885628441275745225732785823815384348024724219725819608590782863776","5386041293118119064275403383632454625632878882087966036732862981546095309416"],["8977259746133555101249629839185659024113592543991979061504852280514251666976","27227528980781974262268154051172553543107413507590584566537709842230609385236"],["13046379629414627254740978363458488563086510207308111289197280755919205832652","5384389734083997804808898030069924425483859641265448380990815228997545082695"],["8099368712241153218156906304916751893574565486779920924391164625765066742179","16280839112837208651868600675337267568454757626987487879933258948577888782636"],["10069329890685802235692005856711075163425611178324103805498256748412342691805","18481651622836776834781829114917769984441604399141315199183274805857313296796"],["3976834688020692754192266331673582561395579053979741312304048659913626556780","19965989133223823933990133438429508766999368340132385421663350546075463371042"],["22857957959094709117517140203857179570379098294510378123113485732310837450207","14902165555990880790787303786736982162154171905474899165307108777447153226526"],["21088708794886808119477103362625331065456881966032364829821761596514800439068","14486490955004172155471917512510017254634470756152950580539207404532894882080"],["26525815468335132936086826947358209104195055374191360729127266395255434811483","14901670785847478078736975713961489149776166424842173444206929095702420918532"],["19447061873566317762317011927443379678958381604985375106080143101432929610106","13676334756871895713911208537137335737870831962056280525824528205324652276341"],["23520979848644942221918746623904330505639173428479511871013746885228286106540","14448722112519070662151995792516049791472462042571157874010377906499867598848"],["5272593108554272769278575091364778598317611880004989975943601165598711236656","16460296988931885557524448508316499290416254585245888995538119867031280423165"],["21116819331156248254036980631506777711779582789215807050434073946226649002713","25859731165701164891012954593712673204546470205783443172882013534921967106887"],["14587595693666970093036575331366168795477488934903622256816754995245340388997","26420073761547524510189891389960470618503400396652107954996462546527590236739"],["14110113637950202384243011719121167168893262057290825317252957244256842247747","15447008972163634181853968015740718641184700315695043381301977342745913150995"],["11297191084660183653648111679716166294060266639471974756120676622911025693219","28473089123268686447362834690278092447728509452754610108512092761803109041422"],["15999581711062243126988080877306421267448771577605497162295426905039248579012","7551128401412504359354497776182777873790923307177619545413838036268151596276"],["24389999643357341994653878939790920882840034316813882861589558435527553944350","26206181560857588736089739292255023815634736951430809037710069803104805509013"],["10619022242882972819846874257138369939482656132786653973162171374196029096723","22814368885694035756689286890561829951381880808481374215104415716015872936647"],["19586331064205716278796225217171699684928781011723373732425667684575542734006","5227114562458637170813849003279796718508059584695642152518464614448455604323"],["9621919360156725107056881990409546486758668114412897413052684032534665597637","15989369814708092073139419844054954762677863102513640782539972309392561163882"],["17274317709844885260735530576570081866227931035992141128806056404148090706540","960467931005292247491653539871333462311109018985570132627338418768607968535"],["25932862251183378966899713951816793601641166891906644989387590005789425327627","21087425025186248534293622375546390871415491140840091421245885766383548995126"],["6013132088564422927454851001631479342905418044191217640912536978946008684554","3702979205355770047323896900817520445960882914804013956165283417551794304200"],["2889220773743568408201718788814286608707016444914369743712229088572691590276","21798877376687779788224443342334386057335234565920684509762830024145182521772"],["403925257275376376952884909183633063540603450890873996119486369566268451442","21717932855840734260129018624914361880880622385633278527206032446938987493214"],["24266235598124657026761132685087937281100257651804369395726139320879437011583","1918579088502800651382080628817421027269228274901248531590610401186422152271"],["1804436680219097094423584873583535107802610247903418886464308245306963110031","5849600310444433740677148700419079812051147064340900561721144254330266569274"],["21195148154049103856911961364850311706045594156445807949528190757278548439893","9541392616814518252288113395977068480354075680416448115303142108740316915093"],["20231321150217914687142113520682260189193194702111955358061714250085932367077","16090432361347922723502602744620858201293497454692275818633601793032717349109"],["11505467895505975583494696041453828431656360115543752476962388962204540848391","12539954870097252745710514367325421923207060660942386075169739199955702213468"],["9342884525490398978367536749310480551722901913264127053399760164942897732265","1805026599766120077888597873375642982076088651760380615004244251888559104142"],["4995646725557184397961520229824076441754305464244418138235483435165015433415","14404530658073108674595190642729583485684461669201970375706489062785662472620"],["5691427331625007673317195214377165137520428642612021591379602938964518300838","18480574065921046918571869142071737393802596228118928011881725549795641739944"],["13193875727491889474240978302703204708812282935109378933418692847087055826537","14285760088897635777520012407095437806046428388401026967052646654731052304302"],["15088457253702788235453467375679701630358295848738965421842457447149243686246","8969038982823910227755696266723990552248132142406021314040422927403790726944"],["3412310593948033288498130602461552242888506208530495773766717911518201475546","6610858077377031674511847320421458059995486351132056430114211583104871618978"],["12765437585823081241199469210549726969414925310229853055039663682916069586380","13304350317481125711159437415981887938124507755449718146856956302578593071033"],["8383374130626191894757916510570211419835260165936283201579360074428816135057","23185829733053945949507146313349390179591365070470165277753995677172968685929"],["13041909762706286890545500904370044666573243487760513213529876229670825207830","9771219020994071924652799371333548263517651521167279453205059315598185529514"],["4657467618635733332997170429343287723595898475474339089691616789581404005218","17043778684894522129845947859733457400376456581282741715094221279607984927828"],["4995296716404474688369692123635989918228045384418734667533167785425573782694","15359088883301875532080197288562714785893819922463394547212269776118486853557"],["17666029316960361280408755353165555342645232203101540106463339827017336618039","18768283510549865616962377993326214443260490946205181331323626717720190066224"],["9139525822848453295078555975075590196728636967623884805691043765182838764184","10416225005330906531916458957808216830541994332856054988484859246567555141220"],["20511027897000537233923006421262543939542883231923740143990859671686623591874","24145120793145535883401831452155407420143428726996351816704319518940663989462"],["22557136951064781690847762661605649694811759616484622877626490040759165397990","15789394393290700351032126001338988506673400036385132843810912633964697696878"],["16741781550634130258381561881163422372530961973198290796221619301170269925192","16013165153110208804030065453920811137677319421562307662066056595566267747586"],["26388724085552195838123730755110604700751542432449626194998990595629879575908","16940465879780433612550192740133364829263721184599363165338225919652263070541"],["10873569435826547921966853244522853177446117393710095881718905531009532239049","6298305918266405018861948409687570750777711006021970533567307459110844621720"],["27669024425106500642541947444033378399451945619723150771238830785033776634212","9764028344176457099019982163105396553858250624710402806317235738387739178812"],["18441434670433364992195315625251901496770934984745651022667530074123766561819","7307652322470731437594379681024476646555588965735577899682443296759283079048"],["8762525913708058570852585913505537147076835099930390327121330910017570949162","5983423553931434773838722581158012115557603706865586408395494138038746928947"],["28476926849696296252296215177314225533397888924418712358742465139729220569873","22490195399297985942140628247220906451870539304823622982823676170314842599138"],["14844930223895245070677470075156221301556920861054076192678436944703194288536","22168271228811351098523743046998667778132037417259696995488192363665255659617"],["11834060926705968475507473582628653656980683954395983721749335387452881557287","22883297888547361326369969065090248637318731954775474703329255064559887955001"],["27904000967326210193987366681698455175174152239264111100404943470788333749571","17075181449093678156800620914877499322996336744181869884594896709149169780894"],["21047632206999251230856725156771138051397419442614658374931656570016558796945","15849709592832759736480986084564107679621482033725032893808240525197068455137"],["28032347908892994194331136829536277535779368355606860700818946028422030181667","12048260506916293944007015526715542217466654572252570309729117045170178206744"],["5783612642429294704034978516331436753867380812041198617562625712753724667119","8109417061645595648478712615605289657339583118338237479792634024151753606856"],["15093783139223943982609332950563170451986122187126960253090498705206317097193","24018817477400051992635081093495517319487005592152789999915122503881950219266"],["18126136006595549997414928865644734124007887015217768340731518780873521205326","13948700643744504967425321825652440371138238762824552381933737318957981730241"],["18225901232273707252628078151709893603475149525009365865450305330784821532922","27829192375398323051847393390095159865310765507998621440012624408035481878579"],["23384676925728326048015838557019473583653474535429110955809901683773564662242","18869002068088261682662663523978511468064068714309517435293495973458407310778"],["24338734630166918988622529589056694206287772554258705913922278683732904865741","8698038452926869230977056390515482109286319358597236775814189279181586400755"],["19911370106584490098659132609739899183038476032753742702057947989161814793857","10889037611778447665527728918142411524362325195277827442433227479395477317128"],["22107880576503553788441532758800629922595511836215313409980832883090610740249","17422380911754198364053091652589005704510523417340037474762416831073184876479"],["12762840229113558726000936419638794600738087369429742568856477423423104210410","14369082141024644445105373352005752961947762138902654450538151475482366145412"],["8321180933442144137347531204967706807500467117766394653795846230154345664002","6054889534866134567890312353159858467428691998737226426859857581728722811310"],["3441549041392406559673106322972839131367319954850272586891500510465695961945","15273971416390814692720175740880152437839157915523609614631968573562985384449"],["15158297361147746575670979343130015582334574553228201789394893232733636809917","11855285600374757549358923328722122862233014594294433405687932595239882012361"],["2118759244158265497118092319856260366077175718326554172724873569075282361810","22220150036195420311030601909008298403378640054657599266116573654499970440993"],["3781782375279249840515916736550139579527132913518315876639306902368229601731","18104642764584398614547488205849280135726713477139912935225249397256879988601"],["4751645724559272784705192742871122535920157997773664824412349081361545756311","15468571518868247909976769368832732025692971078045252001748994116739693956596"],["28873504394079810229453259572565969803648398269737874097653874769940551412649","22084576517601930176163713025277416468134638762887134920743597634908476312323"],["10549377912534919464540579294137605211117021428675299709023577592526885565055","18460652096945796141649266211301774526182532003597671161510758662156361627682"],["21811502952221088313320641235315152136403056890077284299596071954946453986613","23005623010356730991376214159804950887590089552438623114393843870764940432892"],["25347934764175154572417701954657313716146460003850938754336225070457219327389","8674400262636596942324416963867698351710720730346480914337924213146279135292"],["4105724418123620435941978348839908535935430969550117493035856674879358686612","8347651005349976275917004230583058582520937611234421687325996582897848230862"],["14728841269951085882515831556611028040859257368152882892363452855120206628658","5315267906666647305447026043806346862364265477929878176407066105209998372724"],["28331436194207705931102526615868667195737097650833360255799153504599788280100","21487386317101818967064890329140527662316983870056129625917151603315956001519"],["1776661741305150494411270457142882121513472409307347776277988232987827042615","5476019359621857884295048464483767594119093255252004869534281776090533486898"],["3186493317418329881230952446879384261560418717711425576888482513598664078608","9568072000316350166309232788572115808616647679156081796131169403376483315779"],["5775095767468158990621581270829005956703474682404896870146121294375265494692","28702246816733888228786843308636733505765101738680583539560501626906688389328"],["2283659878969963650410503170035136480686061780764648472118157295675292062303","28823833881766798937330717072021252327416155601249598525273934243992254033225"],["14998177110223748036004018945397330747535997379343215406377656663434452886766","9540179727926513727263316947227844709030179650076768766785352066528747555788"],["25481214943689817890774638035910689623096433118348731218220182559798986328091","5113977736901204586830533134679384550654054506496652922359720233390464843762"],["26989892391773179506311994289471056451170289003626010167600601164560298575746","14934541623566725122986108371376791258823331131823470648720687644598562415206"],["9855136918443087990902607836980486120877335416666911673922541122710237952787","11563412239365944986001319444513976993522216464358112360248886826601754224233"],["15143042599616340255390072068965885874496285043824467179639478071840853104802","25580089933472462980138792393873867373965816749154827238100986481147156153559"],["3997390917035990758912942263469884968059991309418035538286753918300391796259","13596733943591443136009252707699888163170744406504502298562360432009388003624"],["5119352780618247252166099878604700931122772763471056339943294302412281877598","6793720814612797918818867820762259589725341074490055296186315710239086301158"],["23680912586881135459853467188646891168634760040340773543580651297101384709722","26379234164272872870584323207424587266002118412601497387428474588029383429604"],["556704226537695318781026910560881634883993245698001719077760414019135099021","10926628744030955910542792500523854448370411555406776665174817903185238837026"],["25686985848625656588182567036419228574506356560819530916406402385307187658093","28325098018131696071390213216902587072722914395323190251840348002368949082257"],["20019069006305148083670836801210908616634293158731528011435240692729656866057","746306452657218573789919413247562274348844863824903708692121797865139325632"],["18828089002655285430307535322925098109927867653106322281009755551321819151487","17776723615613032281968373355120120003112212853364683730492552155986352666659"],["8156898495179782516632438209854111491524425277523451031014982959029307301128","8147515401472659007841384580700877371543948117556288362643245642965891425492"],["10312797535863672128965640398985679502966466871953710288204110944163018376326","9508535920280239601634612810019791754585818303958763821727456591168443784831"],["28627799503949519927561026568388239636946470540547480660271758543781767847778","28315010351915310806298011901531263386026181123710279406038066397343090316619"],["19888947691611649135835753391670113741770794112049561440877706412726670340849","22134076885946431360356314229624035022194572639474901801059043507648757399949"],["14835469802635627634305920515024674521021506072687196321328811631435909714795","20880742753591976996073897804867000383166113291094543012811150749678767331555"],["27226073932757974986402206030813877081634435155751640712676842297594401939066","5382990689724812110691263717195874304537529205943590294153405204617883344596"],["12679856553006703072742416330942870888699462025950571600681499644789332257800","24952102075656710946891190299542987613597740129045285298943691676455988620592"],["10286152055856840340703037399518062218899234342504148932099587727205698454441","3540274109187698394830193153759228358201869622964558269870932510936433652694"],["26628174821754520841536796168756762166153427240644619054688270127520123543303","19966652590089412486483767948498858901139745996013023112635205456600000042311"],["10033876721736165347278692634821283103036095404124011294102947283590368542424","15292265052200619581857231652861988343280634763987297683939191936590815595356"],["25809920289824379069011181438913544074183201846174722373581406517362670590027","25878008093869726635011478073833702762866398860543897796741127795271228916915"],["97236514824061374638906523134815730555872257367467990121140104823085472472","26693015513774266988177641876015914408659042139731260305774391466158912423717"],["10106983759666513912475766644454612085269384782090748395065913931358437648093","24498117722737589379075019859331277609116225192407630477966398022875416224480"],["15494670129596413853684189553299758802495846027778154190652877734349334574945","4237509792060468739954370835315280068843417876519656385953097862362253060411"],["10287599818195973668603681562193847730173369945909347723680328742295902138330","15673946989553063436375858275988293510207774230347417156373470557968940999145"],["27191544901405693556124305203090853005605318642288071140109852381277361579931","8416704800825066808323548896600295144162691736133065367050323322080776132935"],["14638607154304299860348020911831153846995778408593549114490257300721316843633","20268751124501301181858886093098891975824952031901530079663480438583284588598"],["1581216471980176112983051666286009102909589837928599895401978612550822024853","1449763931589248904249104083184252081335926606224593768500906119772829493067"],["598596489224156485031510608947126157172969268093289307853776927516740804181","4707108282122395114484953021553907290044788185448326619804491723502650031953"],["22394238277664305491143258693494847506896131058502862400919721768618816349895","486200283773421784019655166114281652402483038335848397615482287039181494793"],["12501462556400600250640131605448918151599161377139410046407213106409390217246","26144613602496184716997327766555150535550316091543079942862335827134684621001"],["26957575509170884583993987982765267806142927951243908237973647546558819743696","26432427597158042237822732596648847313889127791433788436650292002481917471629"],["1127773256797764128304616895190041240246485887829372938279412076037665444634","20026369337085236957442963046483790640000537656101011213999264571238221298351"],["5770114243342013371843572202189299521488719326450719540877655817368981255185","6038743269952786117646015804206431415218723562124695035633933525447387280395"],["10566267818199591015388321641736913439647214575187593084240610438541416705964","4264525536730667991743061287234932439100126417561065657945107711361137657453"],["2878082087021089622247571399976393466147770251605875600839161466671732243572","1075067383030024964525255231872038857166192155424181196711640582528195431174"],["8204229066017868966964830047947236918472021480444794440266905146574564940600","9216991718599046449641098516964283294966322337452821849391705826325988217476"],["6936770557263309970409748717864146136293010483926204883288659499480335683621","5294963376976288786433693060978238926332417872950746201619944526976290665803"],["9010182143713275569628515906897962263899350241239865730237860856444863966681","7090990935602059408530153936036783132402525890413146123807536540239803248442"],["14146129872975287532866800268633064460898643568295469714413210473354085717725","18793226026439150215749723176960112307541750204072981380211874817172608177307"],["25918221589126632839955401983939507281689441572685508279308789919739934843165","19197912110840835448968131912469190392074757469431346041311377946792523749912"],["6585982193849690995486088949589351676816117568407312180279885658267674741469","18512090424463413600710904993845909273643344663716942554277015531232594709289"],["11522736426712429282029497373321117327228549269344516688375002506858981467978","26192447606697990116479851541495334742154301340026853084469806847642584887505"],["8717728693815540180141555360744370846792592659878488986307072242174084177995","21541844490799374089587643522693998396125825527334121900677697437920896912144"],["10632371754418774732590887065329311020228948816929799402539327722498080697359","13672960047937742088968896464116784349896193090401748696443372265731431104984"],["3951461344057557488389429257956441561073010287706125453941563660740962057363","11358314995635319939600166110031508569509272615032137767480832857151576686752"],["21213877056892619381035901463045506762095590122972428079377017852818617828772","18069684685791194239274009894492677413735316549909241605740549530290197929948"],["4651342153696808034101787799275757148758146934719578222460481988093724244070","16717770893694720536308412405285739293530273845332560788796765570110211303298"],["10213843136198145919015038309544063906278842441290062478604813965375854483803","9216159222358785263909250030336031173432732248857018121659925322450763075594"],["17598431485685424845423062751519307365647018202980832144953287579337198828857","12883456266577380296633609591169200067611630073519924898951359654386851322398"],["9895944049017786678599104595028136501507261167279959810681779812004034439654","28580748488591809655075725852902597701609823518185461028411612947705851723677"],["16091986248725605707112165885382762453496146968412786052474556432297124037627","1378844877595689987319892911525668940621796687443193831133313414582194165211"],["21355034219012154876168471109585024851934700999144936541109045710068930412930","2001156818033383968193048685508216613446057993206312367873126914804332094007"],["27768878236852309679090918434067240176139266095867375129109344522482068854792","26302072139890717873463840074542124556315579351417696894457408848208225466767"],["19303610768460561433609700871221818062341924185867544801568419633036512135606","14934411910233753573959697430414041400212529976856063849566091509856318457495"],["10191871051390308969442978268458146748625772616235337414113263466637581830525","9932430899533507811594194153326624868646937787066031832725972591499918518555"],["1434484470777224954431065413883492949383921991552909297830432321558569494726","13502379979482492419970071680305990028016577184494060521537014999615951915700"],["27394011575182444199925181258350290529581910323264564036446789923008348937881","13494561504916120569789554390067483965133137030605372168566041753172738483738"],["2879124172949527125925191621043196367281868339007165088032404912832691059234","15593139957487404949796487202242032139841158721117443978952599641121331193477"],["15340499474280415301504420790113426376843193895920740486143872795565274616357","17021279363206797620911718717646999174277668946840416493893352520111304105334"],["16430189456243829493561969377758047140557136296714743999276821748721057223682","28093295077993352850976195145102109562253778810408663316384639685287110750886"],["8100732800998068162746291016578242086093763706647291687404380224956477899861","14844451000132244942123446242647001936651990366052749602483610793800375710195"],["1377913646342842527784767022746009928441371709686667043317996462081412945264","27425511505801212643641266250644253548662115610531004017870104321203670798566"],["6876138898480134597994373177651069501644204756373901444759513915858937802553","307854396098791555436842426766209833129846325969260680881555870435835253724"],["11381575032352774230396485100518542166421945583948042038207726697648464794209","8176762617377867915461195497175227801161950799529216486229123862991160551637"],["3198877561637475525226644897871873291055373745895521880212460183682478787269","4346835846299040110535141782604174965599912680947625577031930818999436013081"],["27932386783695148546134710280050811305827088947872421164187732096507796276172","8691456197547762410243219692601734353220069335331247619670796794344134709343"],["9318150564394177300910626460056444971272814953457195259359151286643605560006","10718434320871746165602720748047902368538291790019943560225620006430581987740"],["2162002161050867539280977661500890134710998913304025495117774811555318917898","25980466151252860225575822592725010133613308957131197147781857841667228402384"],["9323368304176382522214043118769844501905022453735220941404523691896253527711","8217237488988385970857537970661467350504178286716535222159352225742905722112"],["25366629546065817275770412447973714374529366871850077161267168322254212399337","25602198460514453016453077611576204852105264713542384783307281489900119187516"],["1732750180973994322041450435317577466965037933790318929927680139191513494587","7942743857011640038685082099296791539802551767937643866657407315412108195387"],["16379972918229592754942525380690051805964986149356306815042426086082630999768","3038575772143159157380330059127580127415044793059289277945207765743717218140"],["28635153725436037746025690224737897235508830483729634470518219834445801830043","343675244150972311224365534113667966427413369200078084206779373400403814875"],["22437140001084857552259010212088181637225550745978169119550536550283228765014","25434799047372982453775103536431264099093178076048656837347701317236176562890"],["25326712415774999961768606387592580377892549303625660700211894515430372250140","22608595107369179342460797680131818072236312341683815079129762295449246620863"],["26084165751798186532466847573981787357702819894522531572664370641253591493836","20169044651621665139160082509910093964672852773947979242171651302467266442056"],["1296980698707426725636982161499087293904328386177133011174311829085821209842","24616700778442508615881105161704180085988757498682939299013954596101513240257"],["4689095243001013958011852502782812605760612584380550631856715648013490498061","8282486327710448975207402991266241634895161239643980796090097728991879281631"],["12057082400925789293857981223023921892675207581175063864029122224726039720164","17882531271226594847597590405710150225349636335226538342058880589094247569897"],["16865507029081858909153826022911859195456262459390413666664096170708396101818","27225797386381049665383920314620241196672820526143467788189122092641880351464"],["28367062016494882663310245811624729909043091143002679876520849719732087280219","10697315523578334170712430079005780923459813456010670445186431418837439612341"],["4831884406215460382468084287529799791897376957572416215800987035303295916243","12892779013300237609308110883024680423494456458035792395823537434881140581645"],["11741694379322904620637109518615015009294459751828468545510390245800804752541","25475896087213350065888612507606188798248029600877025306066307039205913758427"],["28632184389176213891265308220565123117418651131753260218614678645754415238190","22185400351886653800340526922722053852251318142006831771305776441312682001710"],["15923459583773973937555710927690571250282732658969973822528914026088911367303","2986127372126006510180815117920596532617684877784857158292777423012024468450"],["28336323788595114774604588756108800592356889754228636997403148173132439427294","11144440770379394828232653405143551616325581420415403143266031124159939378406"],["26908985355011017998422751743096592487126299071818476646120432172963140390145","17078914967138585568699180326916324264285724935297153545768581041107437291302"],["14445568860663778026589044470773189118650523015166268413779355145511174808939","24830243399592176579983213669497931770558902415561554455488891160044713785942"],["21282039066582888416480650301199598859053870918427491936585418530435544590344","24481867544468582654922633082537191572216746775785053500188920863009053272534"],["13605765354620082704078578573821757117365042494697758967786788956487068596617","9906083016615257004010375534794090982921795451883320971562618518602017411376"],["4924082821896658207432655258543263552967183452864276497528771658870236833940","22783847299967643999202129222727009825338152663292701185233387002556610063713"],["16702915875690607381150493809959963677488608342064352907044471512630719789496","8601666416773399663429909440928175339997391130491463686231328407107661322460"],["25555564136543899418413750084265034605086489649157354521899299732811370820847","17791025787879982204587111549267164134575822614485120804645674913993839026669"],["11599753358415277030111384914926557508657581414197713672730001109880193683398","9741623125398169888798931561906360507513870842610389975338936179578650965707"],["11088562778873693851326407268644728519871375166316892999369021341230155026162","22647943419329617542130225371746231356692751108163592052532716266725966261443"],["8825399855307400179133510592400345487398519540969003302941961193770803026135","22850981760420623333715996261750687915875444809887684300305877064492748809210"],["1532455726131425346947465199316604664251508939124047485777653879449041931731","10980511734354868307912483106116095658001927448067122271662785926657547707792"],["17110611456921533052837847721717805547840989372028818696415478709584578054979","7272560541465123332419976758418052028827134391389469636624159198446059681908"],["22511835818532147755373723725795470307270066269077738053206098166053027337822","18594397066325581391911435647079355702929783290872403843238759632290688945245"],["3922494646600401425962060865767175547074603882610499033701838006359333795495","13431670486068933539671409755568106560353205416022589851926186185722903741183"],["23775743425943699152575665398980561564442910841846615650546120770052891440082","21147609582626371086025222113351239973596525964626333080363904377966922600104"],["21544429186491266205285241222271020376524059360435968789168765441229395689390","7115383005377661420271416647991324547154932872100996574222085739034990872319"],["7526356054206245521603754970161411553411642919519142768596176237140153914627","17622440090829577685826629697800876467940901977057483102197393738670378876557"],["26394321239384373262725620206119521673013540442553516979209896310906539579658","25443373731001245342554867703296362415366464483601457104586150190258670364821"],["11860913881500897561138249543462429217973075114764711684580999151559053324661","731859050431255729113944386347159179075286335503276457593172709749598222082"],["8703728875605283563927937523147238102893473941343057607274813096424741999186","16530195468599565623436230478471923097797692142839493206224272925813441605926"],["12459980212995249195975000819185199067610471218450134964531102706717192013580","142120346327650535220453657236293084694335972707671360728412405414910029791"],["2750657524258845641735998984959526229336824877235219523672429042565549990118","12935822125774551063205720463392485866901020696850838654143223252970447230741"],["23644339189969909476854886580000522740134326684816356812068278287946385614214","879378288437525700509742903178338489597749076307580944405032255768276575964"],["12187552499081196732883933551570559751538774083826003066698692814176553963905","16554378451181833966152734691281739621584459194928414130543353496850475977942"],["25975964942527736154743570989515507781464980895776408709733540916398551958002","22610405471613779481571210366275179285673370472920916427220279517714146088954"],["18249328678654649581604527877213247462124351870962622224233942139227555051784","11228614937497139800844256150479361593607943327547131987005100705201503645474"],["22876292659399396190820122805627347488340802141983061002601975643415445277149","18033400363571236456028809280177443009192546077999851623289546230025559868590"],["24167961465723986900388566719813473114867683971158863664172292560065236057725","8529681074748018482274930137679409306051768249512409674403321919055284113038"],["15944886081496522478874387615222379955911831616123740233653633920926115393070","16278882642507591780798680312248379963886970461714555876932089603918291009451"],["1161461606443620121849963878906289684656386423188112189051281248033932363149","27756146335527389947272401116131001587926788411150204443930231913428795640974"],["16771436772115852247122737830683151950779070511069511421498307496617216871984","14583861670212827189074710076986982176795083764655779807872214405872125400407"],["15025584762092189549426019097293406117756296158221609866478434415031367544397","21248819562331038989698617412918079525230636114902866069823768833128103688469"],["25206517992736742557051663040618907464810030676762480384047773319134663305648","8287066846079508661189072203773453904318997683873092549135636906724394198052"],["8315831240118843006912963675941581295566503711685499888980838767686555204947","27274943386079444514627590616579133391143055983596683229029052329278598779077"],["15853102876277859221522324190177836141369128410907712255374608169410500423067","8318493014528137913698987096316155285080312737827157405559075128201672813510"],["6993482889315120775116010724070807211674494845742399678249546579292863374881","6886618600113294809794492166413779408261076950523795662842659885297657501368"],["7692275814765511446810585969880202089043441460831440259239493482540498379069","10748194201593671245958394219324493380975808128250581922057413198764612959757"],["28170598193657932218229819121054340651288408786965121018489198499396457682367","15456600412683563405355992281926374041031853099624670444907687032714960149537"],["22758369958322408524622528671848379358419739666008579323931372257541156670233","25496863857860136251909144345509471549519156392607585999362980420155742608534"],["22511035711038142238590296092372183812045777784762978085551462742027542669953","18658478210413751666226576790935937035425081054506276947380113108808484292631"],["3001378595823317026456513538031690356746268693762952588380199128040031608667","21281915550527749858447825063110282289582343578938844822444410298220717664049"],["24244341370951568637484737153829181743316149576924207322895436132586022086041","7466860256871701681655355424041644862549753160079506571251832443573774676007"],["1777919594348335665169590949090769136442778938130287546310308871817390233647","3633526914959424789007956138096614818889395799265522787843666392390310929131"],["3308654623584482569719096359295189912311557832022924105646027602480569424709","27852005863416653033701205670295771603153194777843832732996329771163645366669"],["1371840068977791423318886054226030633915297114580853061704086033570829388702","11302675023776371470347999376471291283635476194124459491697264926869689274351"],["24149783965408951446959316166483379846421470782014666630538846291398599875300","24527340914938110957156286209545533729667963289241047561402162843305315893698"],["22559871924906827981389804755520435648021113628090321129441841993265877894828","23079966932715339002396837531388728667875612889194528805199209034210510083576"],["17610055014672712652144559366645805407599068688320529341992756380642265518236","27677755219742105439329068766803813270939886252724185532349261741343673843759"],["20772668292828282860508956895507292782462524782382085311890621064487481130601","9636005135957705071074886626631442627518497152279162228522749302749864784152"],["20908462868795695403126816494815646359185161643720794191044447391105719456797","8833994044709044421164144408557267183074815487364596901835975264492429634138"],["8585076937074449716707247411540392701454319676340967320178844389900220654211","7638123220178415649159710509844150572048215033037167618519897589896126001359"],["5378672576925723957454677485773962327323944133410438272433065703798196759557","24802964058344816530868626889510969489790227265058330460703365622209459238363"],["5276894300434978294031372447125036888652758394907515858287249156357021671935","9104238095138444067188617335136867188907640546007221277614199130000358978508"],["9114360011871237240055781949581274390207336974329392794682360947813925237285","6193476603052249741608952860299418972337412169227498479725941965503715644545"],["14149795962930208121266734714331348656579598859585631797734674404531522037329","19425642873184583303775424443096657568826868414100336751607694478639035643517"],["14134190719341974713230788392003512451336743471631338032164248712691322564741","2291467497173729094655566877385781346806568985959616616407283939352947258776"],["995013990984205776223475808347108083917899033796873404891452793208340736164","18327065493267868999926322276137471916775162768650166996247870329918447218325"],["22263000156046696696309867067861823012422089121112864330927575987728275384766","8730384393747805722679801944927822310301492006551323227870292664346451178559"],["2273577642369015919852412740878701115548807748058170464094611726907405936274","21808830994335733069834585892040967686211199309975949016904328044182824840433"],["28585567454790914418854033180319020284936305530503373032572540866633819388486","2256346735847620339193624821491727328192212331399411650230668010497602961512"],["11273041546053368000348498921049698569533367433172574993929813526535298284411","20558223582757822974505080499930752474382068648908352406818714061047058790989"],["9375659042278437787463054959773990719958372419831514304895233813924784353649","9167591757839681225922766465727099502432806973400702944541741722086242239167"],["18284928881368358371341412351473417577599078546701842286845630897959387639410","9717961138277617623127721784219733889959646885171184083310316652674936468095"],["2135695251640168726309560003715855766742100356054489591672818199095156788338","25398732041381086392228596113572772118018173691717233782905207361617978181524"],["28703178812626905392037340521345506769911320102700761690803703055228601037324","28423035289145094943314154599664423223670645305800976866797612646796867747184"],["17501479510673856526804045681272861534395578499110018237777421907586659720690","26541175264121245021941847404996269566119989844756668088510175143071891732517"],["20066732424958303152707453823020706953412385254977509281048182799370006145310","27632213305331835957909739661619398921722947679794417848056457642559801599767"],["18988452014274073722034197479818133953577420735563498651575555427080946687116","20548543342647638799162788573030067496454057415060779460216844983953959144813"],["26511411268426476411688479971889791079317100073091027501673887802555003455655","28259704750181508005630328453018558622004792657493001022463291059522211472426"],["2396251433957045316404476630118465943166896844348884514104080161984572863995","17142827438530381268246286187135035884102534936087830641423625159469116482900"],["21648447518024596135130310961833317606174000125184893628648187869585991080406","27232855775163439589358060692778975871679737350883546388056504811761820399405"],["9013077247726539159979653395949834520680472503715509646045304141292176088915","25154411996458342255607691812141897205427117747510646639071492627913284905471"],["14914732777340870910452866878467102477147405580014481938831145758183769753500","22465282955559165267719616789196725268023093750584838098857275890985029620808"],["17189858436346990537033860584899784908847405412248081846512455382188342369889","15652768881496482234388225714258455669470030372916928582013686024634201067975"],["17020811754882317455732121340110481457646592622775717672973606079485471117150","25419307704848969142304318057145256934260160225813130528507664384743451863908"],["2257515058140710738243671273376962982456685172970010705418606638785553021117","2809345036621760269943736897212780945521237459906912374896829272526475195919"],["26250415341027804464309193680736024550293453734827550257125643074481988737644","18621616533021915205317337818790713354720291052987955723560817106012105606239"],["60031011053878140079152324878818323416049430928443437680334668282037958940","24855170425597966342790280429644755768476990431859298423868681414647727309208"],["14436263123685385694355170467398749498980275452435835720700715270647733065829","21357476367392060797146921121550728232499806171013508412617163768336824453165"],["27320810203209535528582238737122817720804547703174991042607023848520432417740","7897905051066260890785078700744676920299116057189527144179088312914857697842"],["22915475366148320109680591095477127186962699769297971858434664094074255790974","27743791580376780026432585031814065011708308379040685927869816651234822505717"],["24567408981303820053591691561952672443566490078689541126441868067957916157417","15694851791947886938751888564333730981507944178340690072147802160682486231163"],["1130903588401658220825886430124918820614168650881768382989459905809728556201","4776118255031535719559167278942588907699186371452453050144032007707611008856"],["16087352326281443084541050594924312360862468972885565523150633984599223516550","9842154794691965629065279594923211457210782026156165140652660111962882795576"],["4108344180975613620710103414855699923255559936938729707193985357045704513696","9755888216983239691972330603891986111421230158308715881749743057978854946385"],["6328002262217973774399793794203133950032951190953043297258021042482353568184","10295701794196992633544607688746193218583153061402014280988062688812119841330"],["17941694878306037997023489392938242264974032445893354073021634374784550604020","15066596865698299662316441721760514367083436210327648913518297530683995164550"],["20137654736093603734897715327069785145437032467151312527759881893119465368234","21484674558138324250398033977050950763216232917967593964328148812747663981135"],["15611402221334125968910354916641683118730821720649267788552980959781631550546","887914197072066132660541707768323978965595754732363237582929608891248080529"],["27843580892150155624670608044090881187680091916060939867208225324438171085451","10536980871286901526878230184394474811495792243642251228565174183718129894041"],["6851397937250615564175792873689106955850331170919297160766083262283848196386","5215747696270668418419000462528131393578014029208996471613475469393705432533"],["17123657477109599171583367002406537609977468913996849598555237289133311988961","20632013030233919768287666759499113983970727185770514268829197338101204594133"],["22079682688374372906294075813139116857112217494998951582040424453682962565897","9609469392365572515431584431218948514219445079212382695703059518046243044784"],["7631211506649552582686980562807170111674392131783586723725774739177588553015","16800421639517509169778822282383708873086311944193547665226543295863512625698"],["2604096527186786871755453623556812367411002089455499729681010443655141155906","24755763212261262293131568778194996771348859977367148230409082862854022926602"],["23727255156804348458455740454388964274890530386451197528966015980881029035299","25301676095022317742899931198162121982089351598455395836351284821261747091795"],["23805941102100475580057321321620176359985161692637954324556972386278585324837","25478889995312617782448929798296657678986181136773881889075668539878155558800"],["23627802103331927637147398523213786272805934628771965017647937206423261542654","7939518223040169633356775900315431402253145992850116027564638200416969479047"],["345588494448570852160736868403135784280335202842787565177061423073757735127","25521018945882688557020612777829485058179923649409757928726240568250448391747"],["9254308193268061828913867866806089341960257321817716237734658194412257006755","7706972092793079772819699663255286761525512978719086744538906018795402994229"],["10273667695744117793337527235572578879648510302914639956484092992178245620420","10004938546587026422195296871171511047608276508088516935390273857486274744471"],["19040749153724423266404715991896668930147703489206786775835002205069232269219","11432722613467194683675409209581693420149767512530740038530050839232239042058"],["11762542087701747340570898735112954023220790104561851252805572394447522606265","7809322156799599591549456782476913371442119141467601389977098868213681821858"],["13913190657469257024492665212738250593239884990601716804855594318214806916853","6963402111417813207845933884192470296270959418785477261609293960216943993503"],["28167830325782887099653502071694628689892509196307855081487303930884615888574","8036332107088264463011869064438318929338492919462421743708077193528433886430"],["23925511651831637003303060832754252232024086471342211787806620758977375486338","24503506033296717686849929601802811528429403233518992047321520090343386957481"],["15425667128873915282535351178236596230799933487663439196122034162567283794352","15410958023840984025305533140010500877837080718457781126648058368369360480510"],["3034014059788904582396138295769880606437551196872686326765019604176735156338","17180724196139041489921434116650341868360187716031006835101565269619423555195"],["3513704778907154444342940114119795021835351662961476816872476135301256850665","12616378062567052911414163918956445738317490628412202057591406525451861970542"],["3586374589845623173646215857013873313294625520468979397457022317413239722581","9974814596046887199772149297556460222548337454378505638342214187606605787017"],["3927126764373748778599935370703176813085021089226168066465208823561963264146","12797323910491980487349826420093580393396656719217177614490069543148910660227"],["26194936218679430926499026926228718937926836784365036770937427574436613039440","12440423926186169634750518794125251676946845525364048527400287271487111381087"],["23787394093049434587977562911894970708272400870518759187408431986108716183950","24178553592687152338554001606709230059440175802073083373511481580381372462963"],["17072694589377970096150657040084831648505225627896611163462360770931500692547","25073807475064385966804100700527050776477918288339769310062588090676454922840"],["610386823465789253215751092313328569453025418393836631978212063649278580143","23868869180217955420841693391808073732549150511899532744253660394164281372625"],["11266308536898340726321604628363745891215417750579358104688417247253711295352","3764400331216983400297569099555450617211760173172810173636941942690442108934"],["23863181452459943308964383836280072553659861082442492882075749368651685296557","7254828900265159070790442349845687786159134019460238770732050986665197483897"],["28126713212609530615255841293905681885723221951343023087085670117322506827742","2208807630787321498779803526989529340907005292043542145831564862148867670392"],["1141840147395196440340142281123720694413742895469445162814311696675752758854","19878025718139159536736717595146647421655461789604955536842949728354667662576"],["13409176774599035493356282202566389641038291149767689015563120178595797916082","21024802414996999870479224025559448577987902232580837800638808346819411897142"],["7433694938755105448623152603348931072699165673503449167279923727776972177772","23203618960286753388429055698089117690227166527199906420727716036794254408778"],["7937207061771725466555237563252895810683123394026479531226089219422560805359","10668189851401160321566593474332683781669166008180760461558017098452791371776"],["1942950413180501188684662978030495932796627164854860444321899223964143500804","10698766584469628336031835491870500127785335372506484829706765790355772390387"],["7346826516904852385755706029728709348827423301650954429680468741556327184679","2630038140176458862700711391693139943558751772415682636363805945848343669503"],["18870017273087682594464367112738953373818998710859877043171188300880507693452","21349534819396086905100533330992391438321446445324420985652867417273656355462"],["21077707327394444853259099385158440428272912004402974202034817181319167581355","16006948636508621950914003572813506379297110648440317952187560819137653951034"],["5181248235952751382166816923104806694829573693142387556460143620482175724818","15803756436304260581406034890320536033280655390983515769327270151520669270793"],["4155263031048579529971560270793277663272485540749906579731901137224347781882","5610607082282229096146027235895878232521941436147844629014360108069031340800"],["5994968709926939762161108365378034772123735383960368711350154272633356805235","10522537537659857420782931988874303778626433333838688880527990419815045821012"],["7179297626415641182827948013202678564616817235290621375619839762704002339444","20406447891073324193773262708087648133596881366859375930449602576455413589086"],["28539282127367728630291872937754730174558371377464123898589285761976312417862","4062540306883563161696827621955095648389060616408851642987695034068754531076"],["9558748330855876338737779818175393387468347482395234284751219929792063016481","10618774434788965847235296153125774291232699080568882898795399657735094243157"],["14082634255701755771995899079244815935685758455901208343322124376852501516677","25125945301346587641921085735072327461329967086717457958829651428676419265447"],["4018769969887156366699178306562716934660177661494063150888401065703721896375","17786028540136186468287402530868054164711910745378334097477097262346658730371"],["5151079054887446463371815910074223380155545816678191972812922743835021768924","14422746121799964665333625962846925497214045851149530838945402216177905925418"],["18359465493107506711722114496202318815791165659238554592975548504920353723326","14124761764984859386375490888045181688272540902547123195839557467775023252329"],["21427599493615403142833050213100666196616831862745213363442446846929715125054","17866906581184581044271798434520941887647875059093543096845142938457882280298"],["11409200133560288179355200070619562060285144123526979246265101222032031661344","6808839386158002634035615358052899999843989402508369233283116981752197095304"],["18788311486690024565269739322409082623665444745759403530643030969906984377955","26521694048106548260343066205260760140736578174786018699982454890084284255500"],["1056630784897111714465941122309918747446800302608154426103401435222309339001","25624302549949401935219313911427952504413735832744117583597370010277601814300"],["15075884533170444438286631839031213827056915819053623680746051161757025101661","19939537103453964662977296188801395553049602580762436422412765106692203869636"],["26011636497627068645004808059423740878428126368742885967479201339145395013049","13504942123830468389732308944094521624857275954652434281514429911551941047721"],["12089186524001858314784498209269408495772024503677685917134117290011330858714","5811416130954207983858244111211693869798576863279471630545825431526206073834"],["7147138427656540343478491451103287292049771657750554011118254595019036197769","4845927283867667701860672873228996547922637923926533274494071753319065628497"],["26821896527077622539393349180331736985380803678666018028127214926044679235721","11274000984998905148360243988055475507744897598267022426006020367322831445479"],["12502620931328351560795496337601256751751665316800528782148632164847994013301","21127089825139537708329719374402210421480293860238404709318701313647975396392"],["4906322380288541222803673986191154815637270753668160853299330084383797138292","21939259603304980194478291183619316807330690284871073147242586094355401839374"],["16415532175416693961215520731696613199997683535866999230480745065665899616374","27759852271948020260758836020926594264123639286440620759025186546369131982961"],["15446967286214708936302778980262297239146194179384704073269774737531639910671","9142212826965659966352684573525249451378401631108268023793568185719164486411"],["23516690116128292796158253511766078265957033575545174942558411428634295486260","6837882572204029125662534406195465975194255281953726905216582785169000370463"],["14230188040527995257518436735697699723466840405849339751008646256342723485536","21331560584333488340677835182252645409248846281019506273555952411426976437744"],["5156343062168711354594679849919149614246043809048957423769324078822603937076","4235721180950935800110779766455032207188711456916189016165320586411583676298"],["18299775089702035223902637325230588960305995309728846695602224955423345538194","9584617267046948466830939831480728485447263781859368020942094821702985208735"],["4205796705260854295398013211536046087790003151216626511316781138960016334618","7876079699018493164996068988928935790634446016902862981948166741056579437749"],["21463527202437736903982054703824357042990434332914514788022621361928382214902","8378758488611863577920837777215443580470514699579780642787386591692734844396"],["5491362423995859433387203269766160917840934656292249446658320627416959289920","12590915402427536894139622926831807239928210815479774445531192529797537399143"],["22575821715407874108806865096161254521728808192937679387108347771028820395373","15511498340493872202387963100645462713691172372681426381168978514859421316023"],["666220061029244008545782768423000825008707535305061876334467125542877957235","15169353055104911980779762658051465163853331857390749760276560503670299948821"],["12706258972754959327103546637491192363593782971386354422920912935586908278470","21818358616588558688354558754586290742923281935834208486465680525245271055393"],["328864663686671879800780702188241680161408601161533392245211434776039331985","19717092895452842003567158090697935522396709805914474817042878722440733130250"],["16279933758473569419277699034984917388315024902482716193377559589930750318964","11501715303607480758257881715239990704434923828205018127515543201066455841731"],["4017267514113565553228727107797553795275820954465834337035152271327218541155","20998542044630484735619882183960260197753117868326969090666194670573671866619"],["1393835122212053295915304665512377935721618159484986013825987818426919209017","23364473507738475311007534989049086763286978569049973400268624563036683429479"],["27342251588698721247461054550092862988826170456677333131782752646830816055778","8007144717285169538192408803682064504371042538987986775516776318593110195194"],["16763121715942069273513526209789227685249526003657881397055790275372788765303","12682087367162019657888288246665446922245060321062362113033936390019495615184"],["26325697984722827625288747191625526038108290056283904146459137179050351996978","2998500900063253797773523972761363932090950096688209527277255728014453326727"],["2365755784980671821966738200918437313216169246696871426286987604038268417414","23751462166550195055551642909243971924265294125418255340032520901636489789979"],["10782167799441254434733374237313909071696906263304687442439098373677211959309","22168413468204723717309432753514297869795347609428426236186912662855129315534"],["14369904591941398776521270672954519128059665795703543206458179315730095385907","17614043410512102127311174370312664712005421153569656728051915101943986467609"],["22220710208867180844616134701216913076305500475506810107265415277116671796165","22138400015412856705134442539784323826215425584964653441813123993803603640243"],["1701420990850030127165065261675371535672218822664790845706665024043876113958","12292385132585922814256829325366016086883300547043250379330137730188397581787"],["27535544313936414404712043184324033275377018570554400330696364975718543784565","19182741336431576281175102023070654323887560412702774029299693786961334648624"],["15486352962319917048753698844864864133991670266474001887408953308341204117859","28310932179073843117288461930933138554322504428605936042835142247870033589652"],["14893905160092641432431256183238078658034400592173119828083075640736675533292","762295741986674901410530361912419989695775334146200401246269515214975549397"],["10005595683474643676534237716588898905466011601546807310935430776433530717699","9183901980399591099241450791550550263564485499008960216088296586652320901393"],["14132578823477029046787330106694261390523431367151978245003235664050464401653","12568260561649144680946358175632876183658180625124314273423433608784096453303"],["27635753857229109735441448446846026071247753040840846400127173362085944648776","5995662763550306634097935950732966980929688316297867333779196789862572514423"],["13085826468338950343091198723756866271238791066342346365898576740485165690540","5841332733425564648803906373698078102652256066697263355543570695996234305781"],["5501180974323902817832592359665665016025139174874431043677518853968093405059","16454667014476075022851412705425733908391128603688903947530190572302101716273"],["5622190836097928533132207899356555701154755704184135594233958864888883877534","735243930653656851156925860277399896288030872036088582909280263357623725417"],["18228791240588880626597875660345523325207729451235504721778385588633707327489","780708425948622145866974176928215953640991751281990930121180350319785650468"],["8604536276529126110007801868646377408157822465136550232752772716503579052099","27694459773127326125519803960218914037368104363183721827986582954433447421274"],["970223686675449370555611166681509436253300759196171370944820207291623780484","809692792216342876866702622139406610605870627266865773912691150109868742903"],["19947160544756799997465823504483023730744129912669405183640882302415476228797","11837977875676773677546240513730768840370806389932435538128660382276277880444"],["18034988700118214361549400713422960516915081262031337851803091957905190615491","23783219025270339375016765446599548128600351964930605311682282194415683638955"],["5335772687939439599439404429684842063161346956988874518323438039015069557039","13423651616770375125145846279744816398590298377119469701447482210952175884747"],["28893650662271010322818928392840822335423077301853294543914852916567493103134","9293183326675170918783225240915740683512813821130056792150289259706174020076"],["27137693919349415466382996101676149255637375145188239808592919025389261822353","13553552161028190405709361860340798150787150849741626925973826121068616665882"],["19372096580356384954260507099782652408379567687010508988790008115390321066320","24178918928676822746059537214319295260909452914329364213873756976760472018184"],["6658986254235255830718028484376455379137627342880768768685959915423926861149","28719445206529940437601147026778417639264434059540001937813988176857476161909"],["16266026056650935307260311369582605345450965551016436298483271023019689957276","3212895960078150208969287063622033744122922557837432797897495743586016052444"],["19098180168422563775471343520486699747775529809310964387223055222902634667350","9485985696962178076332051276482980434333653834719393635352058893163426055948"],["24599782469253048137348332867635080163751957594172482317463004000717239570961","25728710371793326237600398777692059967614000631836846296601418939135620871853"],["12052869667459845200981168200557502397202601829557143951393050830250735901840","23124772789230846267230361165542603335762222388895492117467169006335471128294"],["28568586432904190634456490749669388631977708530144024421588287251852820005796","22712953892591659566986502900343521900038826483761789991242785605241861558823"],["26840819579473880697887027349861221120037888350935194015290923156080031033562","6856234868194312743866041002568989591764441556633351728178427756899477660096"],["7093901021315998959962885412564912811630947917298472491497227561234295714006","23403277260214707503717914611976759844013832565964163810988506786533016724483"],["1224472360996852133447522859246735364716139563109915000486852544299891937783","20730971359052653306901273472099054075743419343637974040922063316570423974251"],["2487325860650732491307151081767771777445169568450537032237059839601353481423","9843410924186599611468152163359230570937428588220246098346095410125642079370"],["25344075855017345274998920061762201271817950028409278546579566839069426024365","11330845691806863854355334603903709287034736926912907970099289417208787045017"],["509655675488069399923658299218682287541577528558434798468484085384568250980","17629346687085720120504136607408295872421480156287839080120248830442861273357"],["1171733949521304094566296494347776724204487005476828252324914197788230959095","13171160862869743505460599859247327466869895764640130914437441670181997824206"],["4509229862079497130315889322117266874901884347077774278432442035584405312858","846617612166060688237966107093362247362332292642529739656492964117344002933"],["4774160337361639544936939049642781741257161376822156991615704566929925029583","13855896560851498059188030300094001273430316264110935858553763626604691106112"],["26507580627227501986109915933337126982619656974942649516466334596135711140609","397771371103735720919892128219408125500772333593684342741725195147357896571"],["3192137365944745120054834561402484193556363686132687585426070348104885004306","25815820263611973515388972743347805365255075925764861102087400034514162493342"],["13160194190847526814053506545486087734885146448637371868034890206128253760884","25934195490386660502865226134243680894636245296216681765361582709555752997383"],["24021371888647546397767085502396402036740860489697141654650644405723436891147","4216687422847656619870449247481399402762268714619809913087137143536173225211"],["11909496630808513384679542759274678179879522745083658956794570875560143706093","7239145316877369014552200400053024535906203938456213674747440152519507045915"],["26934907251650865025184893115659747184701438803602896015641479400693240015180","20240445982837083587250674201803538992714408512789510076674561541195923891617"],["16980732747491116645490691448152258165170775348342841960230796027289191410962","6310397130464766823150404576058535545891145232606010155837955067847230012783"],["21883541072660976558024544378843432276358482700562719059951630614280275776722","5331130454904262476123234190571354032702538505483370869339889463958957363757"],["18899985214620423337473264299490706069523148176507828315482464608654330272750","17677690519287156754740837818406907168409709237642335003874368256114702488532"],["5895839108735630533818933308958344520809614829331024335057248598496555596670","11532694969729581957441560424060200698507385763324644739960535690162916560226"],["9794010468997293372890122199655193821132819198303516488527132630191402295503","13119669303690180087085710228477959169025878158376752153656913968810032222064"],["24256052112419943144581743509669962420108839796249389131325646588603828273127","13134476710365253588978451532365416223958443378393093519596986631337390905193"],["8492646205159257028316436283651938943211986456020925097804584747082574876177","27211455233285701106136159144304574155257909678894460898124374609812295721201"],["2171791621881273656539499017729772588385787148483200195471916708339107912840","28867185560854502362354173967893574891570005536421080585606882336693286921355"],["9577490861769260285913358500635069904044280544394988540900246005512168875590","3036252159933910943949923461656958418181913609472461227085274743937633630841"],["7173969725072586342125763501356017035499549401458490859414879175804052098923","15262254795119289071651416509611343715160705977173804965780271561646915792041"],["12428248053645851538179955894443082851313067100163708908874615661412335725521","18773357570579277556605871993554398428643972726029275078591972814192222755146"],["4546536634185679414390344225810089979803722070969602538241999795517634462570","8077759310581518020280121186806766891246574466680963968967257919880055319071"],["23758763883999288240321092946183102750410230555733369367127791703593959844098","10810828696936108554910646138086829419663828138236134106683847683002983779975"],["15590115561346747135055061537129432164631391365088526696885279719582438706656","6550961525814273482953684389057290897796992393626368793411028668578030643501"],["11883899195708643245039509115628642460871209910717393497336067142324994740542","22879887808723865541960908540708224419646546039554794458441570095013418542983"],["17721670317387111011989078321785998801708848648031550708037217000541681429394","2768897149562093496587122852485487791026899188750517022109932525689637010324"],["7298545291893353285601644874386730981030984550524451920216457392098450096056","25344611570361316449140280238779175812190720575058296473550528417669532373756"],["4393966943071906867907364347494988670647370693859095626508129353609847757586","12451467681931407551281512611026991629397696436828426435166604443931842081893"],["6059596704212007476066110516457753464284768920699002861552520276542263602107","12797897110508217569754756492800183058167585747765155498996354494098037445338"],["7134089638135404458757036981617845621449251809145536719893407820882926507688","9457592991597713892527301960569950559725022450180073259052676865480290073925"],["5079151430179185492629742971536950417319850314035577567592516070464173512541","9903890231965561205072232958536979695777492719591923756530752214972655565358"],["16140134694182819948339534930172093284030831107432940896294064488790805536341","6994326220708225569201946217739183011203905532301017243357081390145581581253"],["8234483706451854936151400250471078703615264930159400279024881921532727497038","12707004920870305378414337504936568251277980876082253727760763541600154728430"],["27032771932376665968392056462425047211424532899496038346195793928623524106912","16108961481669953591793046949613846631394547510339482814527952881867280555925"],["18909475651297699741270653107476823659496274861565748731619571622733507792822","2447945237054275999021670228747582144882481749916310323391170002709978439935"],["28288495574476261182246211190477053403147614745223890298824841946670497858009","535989796009160817007025721122011919668721665814972365957570237318845773396"],["15705207307643242722030562805710850151532608825624302336539100757822475608377","22156500836498576417260646541508675676116080400222505443206818336262579150579"],["28786999406770233234963120996268615881721436960252717080987682147104105548360","14611895961863014403206956295426161376527809436727344931409971894287534625521"],["3836598205488621334371260249499699565864866911872228098546541884928229705584","13612293392934582940255644465584070388972891509787221407160506838325831831125"],["25324822752943936863731362516200059358679218548702643156252864703948943476759","28343858353851084331882378573951331312367207194739242580074874619920008549213"],["21287117893961759019423849233363474122529041419244425567442500218458988110822","19211711848507943429308045058417477250077390980006341348570437404146041335989"],["10114681562077245322132219251529103245348346704674996597968379572335954965682","11626044941468119833536654955848883490460343970162508566722591728844620737883"],["20653505892629279912695775695645247885018430373618552421573585379737190335312","9359364312933374788141168499052788206150807984560765562219216274766181185378"],["28708264531611745308929488842710200246803887810869372392803724716433478634440","15274028804705279102953473067374736890044349238412407602425066945841491448284"],["17801828180700974058309156755118736610529101611401559475898199441745734843978","1723994323384022983631441048768856297781978120205350599337809001697258794383"],["4668975504203604184231048597868283123251067769122214434315463303778776225204","25027441302866873001694019568592864069613757308101849578530823461278126240867"],["2530747900691735882806002448943059822685330565371358210742650664230886113067","7377647086874727884490999110967572193255246948003247443783084461856442879203"],["20692848222138127992095922457836219480716862354054538549876684237787562005481","1159614069030651944456689628436500859343300137630634667924018359435843956886"],["24245865726173075693355164317442660925784428158397543255617041457609384995355","22651754396364823813012325428404257413727039903123145999542741326461357432277"],["13946589420567039118888031052902010035948599068375028511577150566553736808069","1215477074481765925489721718903278471068792014837508597907846336807639685489"],["24151289587801117638536787227488477760342972184882783165043447620724087963820","17675563658468143744653384102325783426961091696047864774461244278662617355213"],["12094048263450234170167462327295454224587288367747924586704349584606665968357","27127295663168408563454810073673951743339349973702213290348419823222566876911"],["23137041804759917517757440757688701616555255075584000040431693668155040889501","14598486782386666642691418451022127929722450781007713564468096247065339440064"],["1704589165958242080700391693849769329504957307427361818786736395847445152545","19517387246271290639672008733792796734312435169655231668932792719398400742744"],["19457707929877400141287363644112818031203774452435834309890434277330918490537","9312147011656329553224981689858043017097748522383136915816097257663953229021"],["9161517136921564744349795439896523848834516563024048411920931952011172489104","19664602143128169005836076167320249703696568981756143570207616817883322164832"],["6752816969991445596616397005862161491004852348569228985974696079163845547549","24719198361620778152981126484053548755235295484515991181921988020527572512923"],["25787105353983836180474619080647849543360351368059060685328527914658552902160","5802813790883507212061214330699153522600590663168877280509223427243817066508"],["15124826347798667456951519271330104358562439270736017799961945242531606806568","26390276894145810596011042457448275485672942228564873882389508649906447210767"],["28525132740416979882010098464715089581218259014421645826642531594238902238860","28202472662880991250099666830587416989096727727794774666019492836611460982428"],["1218484854416993982202144783451307401681271117538923969590368176460299159345","21227126791205961493129373475318724215883093274264423079750309053019518706615"],["12347800603060818265110307838730541354022510480779355081222306812332582059937","22714295832132089193570477882684899145704746107522622041526343887826373720127"],["25273392476652281047139241669824846727741413921578314311846480926473650591827","2352453467156909387760211439587755342187579029057091062309435110346555423047"],["27974732744919235611276910242950360454169355951750841487032674519885304240080","20143872462130276608458140537170800398745205178422259691363428184752135702269"],["6600445256732910684354118649874618057059079636151605313044009383294984333927","12361683748249853994227662248487818814039855963266225577954895349752804401038"],["7917902850436000661499858784826354032842836524696967104983975863925557747365","17760414136987981674726919079979788488715220704485159253098280019827947322125"],["3336498814941038741531067495483283449204922931975236457670457156330807273913","5904777579436007336609617496027586948736193238833255996512902659230970438727"],["13586441208020562535900114282515152646674465041773900704375156207931539387068","26452927787303396074104446583707218366618504360816223133983483336621428271288"],["21006644889576119816309968417817156915616545229857971026873061612928537533829","19282685812243233425514794464422815924871901384910285451673296513288912869738"],["3384354371495936071396517111429953972596912019292026243434433360356088420978","10842891730740020986192798101200322965208450419314039957689039209526952239709"],["25828990958965787358518943945791484924228313644740657725683485419903520033430","27529937549321306478082201251334816198530496679467770636190417350926099515872"],["3742741625395781168946923868586130293978770752110249375580445809910447200688","1107324403403429707807999655896092780766662297459983247180038658086317588605"],["9469376048424018163579887200863117508276506183227929734442717139751116539424","6609351557432527651990743307951815736997070582165310589576153834543823431151"],["9281288738432297540042975240030597310506569225012635610519895341419415038144","14509336126136151159555341602030175100184155630531061002109512407984471268931"],["25031643049471014407021035720219349000811043845338768616601211217859687192981","22878768761604732891146083277824060739176525277501001496258273221738859444859"],["21344834474493090809798346452940898056120173082160992132341976002518390398223","27648960786425240851948679586583591524589096088210402130609824320375933997203"],["7890523363553477440261254749358035229226881322619676721991484939539538728482","24240601964085654494581919380226141998922113975606092235519434834455149471894"],["23811534307284007542430104774610147380229391786333392552891721113892207390090","3944691114702484630656937620895016397195160795589700387470568724600444296002"],["12965983862091348079392535332005776729457675895386932457129968761833746742315","8199277168911843916697967320426708243284142870629645913275483080316525725553"],["16417079635979250262248252206294302824060232125917499213051533481757339365725","6767686121869387305101188570725307727251402961902576613510932681059722822035"],["1183719465945298254021857841934072746599710518133590564903010351060963442488","16470155219175060434288158102770678236119508089581371856276865634132157800085"],["21988940973809719863610772364042340653536457305283941882631845287764265743785","7174622364339171574940702353507205424599146817189046901134955386406030934343"],["27782361120491784266186540563253341928368404210537470294706120044909822006109","16696173420675790329504802553914768547090575844426719545976447697815791139846"],["4755518052116996847310560655199682928024610283587866513284760660155878521483","8482442530271753026112588292298562709420928322468908769935223830422527294238"],["1724987951007067441362052505229397826757842043781693751278041732861421913163","10168689378081998650791861397087796246364694762895115617829102580455639591368"],["9747903232610853635983655320945961850946434550730145838563628440586113717990","935196044793317436079951530868390991581262148433068170289126744767098485845"],["1651943845555712352239793004593618560389278791628636418641953816826162022074","5722042773878142719223586716617971482547346962265219423873656502298303884834"],["15676632851642171293663157930296609168523392531094081708293662762959544108294","28146619007695857832253856654469466300731922155189739265550119586265023176220"],["10839726321693317168630105442265251269872115086971642948473896468008021096345","2918832537392392252430471884835761767518347087143719242656252073156992998898"],["9528268365637059649118777127187862905061232031835338568455895808412378427625","18086151448948960613797212326063037141583383598274000908015669635289979466694"],["8050872608637346191811557679196732861674899077514699672602477653811930882404","22189360000293484163441735846309963604286793251679231445064175955843880617309"],["22019207527784075544857208868802497472094167142108773776739770365342588149064","18924345503624901205030827902266114378378984817232692700021223302023294252603"],["8009437808576223886520596655056007920738487258084214642207141739232664185962","17457268055700829035392411274919264690490356207351203190124549134664257902495"],["1122842165165486006854168613367952265690236885348687384559516835989809684125","11468316673400089930925259786406367574493395277723257598571250295132512103316"],["5699429660567897023610793569490034980653930387828238008748733099435859565732","28869376684124729066632772050304013509886659300528876438271418665123645428310"],["11441862467434191809506391990276997462310673979162330514455557213276710264593","28061723157702157154122498596701762334733400600575847442744737334560638331244"],["5619694571872589371532533572792787290629803110393649072628504850919740261798","26082594682552891854059838855003753823629133440316709355706371723716360938877"],["24972682867731804506465035823252721815474633043689289022350796338980068528762","1749765035715057061582328640457798058119047738015367936688768931332083875302"],["5792440928377858376659721933393947438213663550001547226344364440223635753888","10437199924736403763571445516192990411076877702924527956306832702685632022254"],["6790043418042611430267681154293407638717545446214816475070062513538785366058","7377152410152376536384993707278478356462688372056528803845068976468915187600"],["16390385733782776142807111123134884605151284275265663515596763205694847784586","4093762763530427565513577626476646847887949793819424245950460668970032713861"],["2823974568173771816387694104224733418831581698245078312431509358624004869709","18332272516093957649363872724760003186137734205246942755255940401477987236354"],["4682714438662955202576447713173136143082262412917701143769787795408406828465","17500094501607210336513238750277216991914794874146918122039501194292066254795"],["1260235442015870349655596132373946575358036565471677921334974454959391033328","12124140605828268306656995619953029360520006860849322906274251322012770800324"],["23210297141425144446079808219158872747553438427918066400158259424657767097032","2704885300658165908796553630268057024537647902867499116951691103257224449115"],["20358072395363383928272432931043335126422371264836066418025392807350505349592","27755393162165078562212113712126899321814878646593241198103182960745166040026"],["13877179870507017660828572463390891449238128480885624867905632597654550338500","12702440018679496223630576634381223575085501637613592064679133496007105546914"],["4702068651990799823339946305070992757629823038774932526041081980359747876748","5978504294483026701040354935940504242954777009373861520397088140509149085578"],["15275041057930414078377712523366052226163535932357535180457507353433457293009","5498753600406265597830038444461111629355338245496263216728646626676854476424"],["4971036747039660592336878794080946253257986952469947263987100662682674939315","2346016452122077124095896777928792251049555586310307938065607774509302698863"],["18768877911882328993963262397274839774932691199548806620527544734588052933510","23741614048008217852056172347890119417906407796420907975379884758210516336845"],["18789252845181400964561215301193222584765513296843863431763846541146776211747","20954223999333899598934864193490872436128919082785260446723677306977927022500"],["24628879574820800772470585705577093574235755140865695065114228502781144824400","261301097028934493065776219723945237186619873640509130360208717268014107050"],["26106396010663604107468851945256202739110733146034209619927431117313845104567","12031421746820477113237354997850503069089047350925690634546392091240235417543"],["20617890941521918475962960713971779056972010792106289741000300666613626597551","15981689740211407553074164129150064357394960371030768679374791065112480122784"],["9580868172039889043781992099760257122113201962028599271886083484488416657126","1909716112665094241757361300388081552002439973106279251779087701444231470075"],["7854203825123950445319816794289611449060365670509976990941057098576750060900","15675072360594541759858687741542219941610234977463192845936867618609944662436"],["26995175630868546161306548047148539942510116663039578517367406617488710790973","870324823882774504522970283458053378826867685238561277304093923452508553020"],["15655166563809195471255338761567957299404015603071343646214674307888798593934","27490067849097979961930694621135655844970554357167632665679477758855839043072"],["22992681713977558723824014601508221639161112944355586970353861242740427838111","2078403988667541683569370918788434433630368350287740988574127781056244266276"],["7135376646020557935369690577265844259821543452305679035484464601395192297210","27997310321798919593350658713404980605979173896057555878632249859071499455833"],["11134730523115505699677396918362556829167079692179760006118337741811992193940","11241299639241220310479382010136118296595929517756617425835911976945798133471"],["22776792442077976978775680434714150155684128066183830387995779296849629073273","26015902772291730735958146967545912909783566410892430699747490356166238731269"],["11597948656908122703218339978126690452699818253573700034511494898895600861754","4478957425996915883217225656160963178675609519664193375386535047184269722542"],["28891556930988033854880497222242788667170897443840406865503276781846823119227","21415064432269703440219135496093588048115472062973896857492751677360097897861"],["11127911666917026669607003779926077455552114761538530794822381249986412405510","7799985870612625078375111017141857406026655290374539795301435586618035652653"],["4013153711134484434286466581460816439070628703836642170988039496184564349335","1595410258193939922058710275902964294397415518256676530206198652735168078713"],["21197376288612454255127266442683124355541330345798947994217925291177353044535","4418642203631186054767966573093324806616050900427532665958917229445998876034"],["12610066853989468801404637660714501039773088416076422772259562990311082415812","10087371854221141309605858688330805257877041573394064548819901685994996905591"],["13940843545945607250749784959810985577672031619415866290405539996003044043089","4362797258867224310013402200401914839582358935700430598716762428180258222306"],["4562820984253216017510991913698903495168929107782561310875808633791318071302","17142915434295018532000811814276899254606728012764563655969183755564749837708"],["21695969059687288356629096862417024255223342502864292640198994312341595410115","7568362129579299788042687759131181112192667985839752342509405295275736757269"],["21792683094195206288709923347866927975199774029962304890563522874534822936023","23957069231383154489347872568356432394236196113726736284624394146570055107857"],["21261812403268210063019000176413037499742788910759890895008574482645728418511","13549694669564376434696595829447172559735502034395054446964270984402382308035"],["11696661455612412461414530330001951323776482254272244754222280333075667967115","18022079682822457663315636569007175205074611906228939084314299634117357292704"],["3848738897412400099483913412669884575081549366580863773502044004035659839017","27472881331381259824664418430855630326330505770140590708060896319028602975674"],["8773672280572822880926177196467371678220399662403547098810279101834450805685","28118953513977353748925947211872382151464799952320242010436142678301540637073"],["24682645323553454010382047254509223433085029274463908908327962686156505934553","28693595107575717314591875447897522796440100500837134345622795577533081166840"],["4349845344304439399100260986018408264249588430470869069217759137032995887178","12992272795571583658081669044488613582003169488993191696604621507142797018552"],["27827475141419883549900429845579639343058501522487229957448659700043099632503","1429621031930844100023646866525599399471581641140548843426310322459468789406"],["27698533094021054256883460462779721742217722792064674273983669365681431451183","17087391869564050981350807392133142196519101538137403397750021954298245341155"],["5495128310842376704144686508545836450955687749135543301371776047949933029815","3943409368715082726887009466559984263753502278385597560128113701934202647825"],["28334703563516262527830757008889435292481057321334886663768365165516789983495","13604169727681332916765419573967481626959210704444554236822562899117215001"],["15877978005692473081160370451413483682668451993423678516425095328161719629135","5670572218314965609369746282033494963847440293784699938357070320620094553236"],["23532332667350851223644375569403127180049658035329612617917477517484123960338","12233252448871846819411777626655235869514825904330590985921862676114453627588"],["3123515790829325696499502702679536206102290807822884254004203061299754282955","511251363154123397193733625592005592098512667128630608551000845145905089852"],["14411803632068261217554000328942337884340358223090298265243834599757589649865","4552960619196794251025166836653056248754269656193503302299561047827563213751"],["26200554127310157546814439062212362321790857297856734877390523198760522201403","1431457238986851246072898870094288410122505687162102040576400168217198153597"],["19100630412259364945071586197514365804644638218322245076307123686709395911896","14794444571152339341740436989859497330528533196171922733029215051411268660141"],["1958877207353290224865995815248680911717787595705744098439553938012404311428","27200100625863703856683790320987060635667949944060187943573288023641362571739"],["11488341594386512122880855102585014411544738720573021995736293308427628631388","2212660854270407989909117686558494788157546977164527808746331248388866894084"],["24208861781548241436815721253407281423155389024152781461456994460846086638082","24708769324551945282714712989283594981008145163910167698798625302311649526884"],["7237952864896395937402061522568099603284322139583350028191366084119804047448","4615538178902077251523802329149234315829369891530670800651035562257702878851"],["2538107871652911552228419936850249710923703439593704351332679436726116036104","25665523709242509603809180723688294392232377668809046150756410446804655278296"],["3163863671968470062599885180291778515063173845879838657515733661764212412230","10924104504687177083842333028740244828691917304511436238896067572375034660982"],["19946448507557217827644740997095083510543451106318232598067802977416694944017","2651728650351436101652966467079882762997050435605834217779413250282545663490"],["797312538680619069274627260670893253117550180797225515666074296286386214596","4312684983067053139690782297461975538224281769447661336827398130105886630379"],["26380759340620616051087016262668997015457634293613693221556944285768514798000","7541907414968653649122446698809023153585515846386604604591276357899513894757"],["12903765485835772918148898955676820689534884510230336686423953493862858284170","13626971521472896647956976080460941061234367940041763152891254568774379337905"],["24329022964848209543581244253601076856063623279405444312141975100783140369149","25776245609550739162535427087351571025931408123790103433663983658338895727573"],["10419872240550524778409866125682842371131571252810578328322342771518647815158","765682776423501099582119533584548756088735149896577125429708668519540820046"],["22793066645677366337787918863841249764807691459369229695854066519225716345604","11792263280492984395193433153561857734774219923577463677857733233368844902777"],["416285948254988610995730828240763196595304509150266279939655948316950167647","6724783036592875160433275363693336786113126154911803524936209841593933762969"],["12757624763211719137146705233354296287013019445060823490496444834668287848623","13965854846650564885805073194706554826900060493324071766987511285560995666686"],["881879160815233950234889451207295757713831560384423589161081980442628690740","2291251800878071073255812880606351022065297329624938610227216665310268279789"],["28899769015181181200707064154881217693594803493930094608581654944713257028600","25221242516689800999606253492289557415891161547734727375783396013377602963444"],["7143282902829890003276425149780084267910592687374175447001343329209994958385","19598577392481598881653105586684765291039395283909939052085379517467177720615"],["17914681244922340360132079533581198789729262944730414050254841573735781524676","18197069900216490386017819166955677991160341651730624305137476491040742836708"],["14368819236495186631025415752503569868184053634547330965634145538247346445530","22480590268609648542083694839312423009694081506261619108388878218282462834885"],["2887510567551625461096229987995733137373385527043378230915360625526799870689","28721159620517333252900686015474414881110002956522181244982707310922998686216"],["21323685693219724020412091871964327637230489621273834982646101357956762449484","2549716251742505145632766157942911455254510212112054630010229932554039641327"],["16438921188021345814853064824500311666700952882712109927030397299250148456118","20270490925438019133430442802839353282361569414592806360967554079238106161021"],["26513522747352317327342493500174806785057390506723374677917916338172353047091","20007779846798851283787681386221189518856789750208547805968477171571101902279"],["17913028541245763974219217347244240823935289244128767596873361586829285751997","17817150213162585885231584991043281557964397090155152408486959797658476082385"],["6878362583202195380697592787223247545886173859738367619220881239176767110289","22763187196518124455365841289090722320117314037363248548884911564803987893270"],["11241083744656091540479651168206967471338762893067394004265602105280966457122","6201789439922696584233933336184254086350443692644361512298274923022372658871"],["17507444536057832079444095434261780245863415246963017309601795129849437259904","8182203787925938747664922452928381751077995770280382074149154011800756309465"],["27204346085435244597774140436194917131547019308608102590778738039588501272813","10118246061058197881321781847817574892485668257402400411196862901462890746372"],["22816421563392182939273000163933658428075470482331956322130557175053277041438","25999900972724408687070298869186628082448951888145302772393107292422944727916"],["15497553018116350505936517143328723858599163513532661805530743265263318145267","28554236840921555378179072883219075751392847438415841371872549796377758718603"],["10459815142862562411835807439834549169044500654585710527443148931149391788073","4395775107795365960257742564886005389431743695837026468955320478145991789089"],["26641659884520032639590212075818323913300389684632024429999438570110719799895","28671384588902224427603884901432381290241433797650657722654930690019303629699"],["23790117713870048402980706257833715082471329514280787606505688052652328295920","20501315617329390443251670061028328730290359946925767949791807016138874913082"],["3079157952579529147281688527160903332637318557910026845304979234344322480876","2176208256701107931859784308006161771518529059143247568880527535281663710457"],["14989148822806128578692435033928928170652820948320969166567201815703474378187","10048591043444713099974034937803661567117474334414029133884337369643041621948"],["11147488517774968603372610191820121785603152123725104189055465091795809685948","11429827487510705148270528577041721014209494664871654479066075879180276253099"],["22228400676282491534848741497694656827856440046106621683410038878490444218915","2544760673027503620548178097984129980953132664310442579884064077465545320745"],["2438802820215231761233621256594186654412777097871806644446614088898334047427","9992495661735931082993410648870297827354074448719885310222630731315800961641"],["27545408864346272076016502511425986538115600747218958305643213346615719748261","21406248493049436909254276550790776629972542785370956809823421368705958025066"],["19604076490898641502562519065478849597228215568675899578498762677176877156300","19461462967954752508213294208409567825067127908545811494189736690466545510659"],["7395961093096407783051298521616247059188620343832857195696587365067340572006","14329780102185353294886860220058852379509393545424516389560889029114468108851"],["1224651833076895805380648192080179829391243697550295895331487853702099202541","4005230506373365017990214771838139846999258426359165318579574583189234446108"],["21487278015780833095387558834748230789332769805492208909436142980985748719648","26044119782456439401344192875595553892946208807044094997867958533489977042256"],["10546014573446368345206214213541878386473715924184318742820304297162531162683","7816787723197483436472586733157425250586085461523247379876547169968537277337"],["7292137836349142752656278379689510342026855880879223450636874754743952247856","16260457697864375613556439733570981303111065923238197325903225857384830197089"],["8799452151068346035086152676044316090952778974113351878285295432783644450354","4574026722088806327938741031344760350534191851622463826663350536477488227132"],["15826179927326106995011598003297876697277038020523739603714350359476651392775","28242578098942485708627452780984428029066959863795234620778608177087602322343"],["10804277834769304225653852107441169269061122577131961774520846021749514372197","14914940557400115327202146621608984389422417302730775008358606005281527677498"],["20825358784602144130210817710875921016566149579508236113140929253979842122349","23632315829373186678224654179103683504727925117893639584727146718733927860756"],["23959291995875200519777435181118620885651768116381741912086034220142653396910","11745197091189985255625194520636533066889516519259839784999125373867445441144"],["19467032400249778020987362760537585794904963807045275883457136438289601356426","11701194136513464204254761029410594988694811489968198670268796016326639641217"],["9462283895436652466682073009647470460991037241171495024753418052522851344206","16113867319948915136370254355106929973487657206440344627047320322179094200098"],["19514504884619610087943161729332263656072902956512088958047344889110196255907","3297958650167855147478995095244973647741859535894738875672908993944818368852"],["19522400408652553797817018441267695335329904819813076553210832900960403467988","17123259813737707011361427424856176319260275516457222715763046462715057055465"],["15538595616054647758791035066804619722700274275242998655833944265926885748138","20711716895269547777018271865143040088167997764427721733742086286854284480878"],["9330201670470816750619885264757597659110057382967463156187919221447095798229","321808458565604252763805029870053118481975267360502210152970787673860940985"],["12628556951291376748078950146109070926170419109865859471818236054941897307434","16859291445484233000722087177203676326306371889789252194875992800032282898464"],["23238496288368882967844601412929576706030001504244245257787324858358856609444","17456011617868224231531738005011456430807251706183758242673439463936451555202"],["24553837870407967401542697322463481467433101079070017256256785006386911540893","24364399483973993285256064634322335054445370272560803629893026775187294809252"],["13622719001538573041716091882991764910111378786825949006362681808292773015366","6678169945230322052191275930932358165048529461861637163219698553033063072614"],["2577263119469811876499435731204086908162437735950133856599820336745403036630","17734522865186736975734404144622446017604063152398869221257163350423463073483"],["13092314584437495998383717881315565856652528896673232333868021025928510080405","16687369129929045763316883165099419246126051555777686800997691489733889907265"],["15738063442706028267297484234133838348456308874922634385500216373575966025195","18848851382926215619923510995199620638931656421859476851148514309903168039150"],["11946244453161631176572629751239779918638666156529066393209778369481792462062","19898103546381215302676481180794036467194568101796174338758286913764527603118"],["10113228862482388195829723439572516829108549297778205117939161370892255197697","5256001356393611048722557435462706588441987781275381181004170071128046027853"],["23490444426269401263490630046118172242797826979457228403249691166060220400524","7169017133912660770185857855529637128063333563147016678684868084981659241891"],["26500159601905149818037524117170403938033901473997892817239392973808629965270","26577307424633408982280323182622799894453706460996036889179926999586620273180"],["16969637023773105146644106532798045885823504275378694938002351608636185930678","2696730800101502212124850161430470753996242286548781151223956750218577120707"],["23064475446285324031874666532444708305934847664197471005798048114110900349318","16468912753842016436995515475945649513528048186736402858674231973997888153585"],["11298137160407616303083899454369712543961904186905157478005385946344367460607","25720706438284942308284049247317246553940838220455328337492635274341875206782"],["10153672621229727360390720939550447559111259484776848754710871235757970179890","703657270324538936705682665913602322023622586798049190983006359711495096353"],["24854015529621207244573321833681023549339520879578984312171610897095387480741","26855430953953942374938490696392502807666239634935129185795248743661213149028"],["19110553850435035855914836994170867837288123313799280821682207769541418588113","534522109299256368739072062239371524009537595645380074597929543230256739606"],["12264235267143750481177826756942334759612127299352898011611568213823068066894","3576830194582515003074298905659845933850231459900305736303999647702656764408"],["1382740883414182484708290703914809090659714638052256882158556416552802994120","16199241254553950505766377138624047868953036088490237654390236340278523911856"],["27878437955566135443486779224103719997439323192555403493944171689573500713993","10609844596067090012098122019214979357954708945056771037093544080390118837898"],["16054410534077226025881725122814250269383675667983025016428587925288968247402","24895212764139129922481862173445877807683709802914263853344415331119136997512"],["4103578228792682103908208217612242705852231542773871890053453694281037489407","14658072866705592592134830146566141462825927464690312218195951916156613283844"],["13444873659238036685260663528152438610944531619961686865151478690881152001739","26387796178446590339622154472384655158174615112926914137060707051338260036265"],["10116166775632716339541010655603127121470576056940432293868947579864555730041","12184960013396850565301346880182193372408151348891459577868613983349405599881"],["2751251689043481731918458267544374334794030551619991415398095922840383871731","1044865090423374762161066557315879329316228544126696421735986749455783928912"],["10753042868340399596368184667233096455246964883524674430705623595786585440225","9552612764885430694325318598402579389570847132677563767428429910122060644226"],["9645248954394656331425916997769465027931246779632681867743602339219642002037","17632594254597446782905936671040435983967942548202543223177118130320208596865"],["20712282710550963349937732171113325889843978564464488033401490433694414162530","15898438830159849821763993688430208265955196277931837868630655100236713613759"],["6079320730081469744905094288873589095436478293348730802239760020405887914027","1430345240820100712826616904144361755788561920132033568121635137074003562148"],["15037123303609052213915890985407961266982564294385950053349003086623699925003","21434995626457258057484094210505204707758447879173463584788843641697640289196"],["1995873736187482148478472931894830927838324129319107768387576518127577051918","3218726400419595325026997860592748964150005206482769255851752895677403310559"],["2890474973931155456251072372294633074596179886809369657927195862113285737724","25987769459008213825941354753301709085876436949597282722081999320467201259489"],["18882748043422122613272965626717922589176063759246361302054507784095162680510","11040149144459089827208986583176651803772441717814922950245286692519114924748"],["22856496314311433687517856561282994681937365363028747606869320577964224033712","7656920124092600971626729097787349023421517778177495135514889029650692367512"],["8941270495606814104797649237903790007959289359125219874151924490626844572280","645788317749022831450400878370820514808213149718492587449703134015093156851"],["5138619095987239916065058822808677802026697123992241777659494500859449351693","357175945192177630092523268350144672155170934851988792100166642326823246993"],["16999727092601580830860429048007726831648724312437547793781696416952539732406","6160491380929196660948447190308421650057885287334377663051128531451666563601"],["12942532831135880641789200343375491100408681014078278895201363576698726254497","1633026336833958803289058310761852776136221171870713534609038810808528992809"],["11535704417737461457706437778673277565785908520528398153433752701764398593668","4205133554076681785514600730512644397663066233364215449852351373231711928101"],["910338559851002309192790229566153182529092465801009033797783436077038404125","13126485080135099998562322599622633277470573599411932802714520887340905674596"],["20825693692469116913742469542125734888533383545092612778312697390437214785579","5664913337582403814797437896177885680177903333049359389501502074755512185752"],["6933850013211377125259495941953381263668625800734881252573254919606085376147","23190035550364966162165168011409448813784352380094682829437874942897765181556"],["3644336026774859344219212864527805417572432762961601196127547765016520247893","26784466662799849821786158859390604037392355799119068371450736424206402118274"],["2581142717484937529474050982278156537023123900797745111750412702458631369173","22634971267850504602984944449522840842002519818977956310638702147962696065660"],["13405829293872010411598860964511564963777808365745050036248014855731259837762","23341987518595524882365012476561379919873056816671744273670956754988216530570"],["27513816709570806166721334112006308389428278571325788139002773229203331903437","27964880000269553138604637353104920665007529065110004201054069480996022417251"],["24588920575212340450322808117650394693934202303779984532569367505494083334501","6404977542537987404489179964849833429367235600896721699060404274306011950976"],["1933333218801424991688674145526457992709967415196340229094944545752562483715","22661009269008452530457714891142867246640461650099864211054751136384828503071"],["10171640988276504508452148124218023417868200777169540616424362375264168102973","6006759952665919361346373235809104646495687293538191864535928145992473667141"],["8790589045237429585991093852470635242793230690792817843364354644645413668588","5411752109236607137844141887605590842629438510409575897589225801680015826836"],["20766321242927989220253222048636284505890152729760816904990371319600730275886","13653123650899592138894998898068685846395205190559193248809667316948803816911"],["3037891318271677084008628406824347669928646523274221281736060971368242747025","11408811110689077245375703430978475702829882147400502287628295586154220166870"],["20061656296083415392071899189701106575826348192201911893837836643974242645191","25023559323973275867155627629866754527897034362813615742470764226657974970101"],["25148491518418170646777428622746394522545694005390042642684581763343591326599","11184027082773903056435060292153612783906010616523061230355217488281045663399"],["5863011861618782209371508732875582133664705228111771246918199360700638677594","16489858402566459916155864188690374988598352623471547419359985586061334764661"],["4289802376924941243373237285538916660183873893433253585931412108988715816400","19142654877716760703661601545154752662641152920412270215254415130179233622305"],["25476829044008912538103681799834021726124821083024371399365164592692517321863","25214624619923184411450292686292712935626633170045568056857776481318503035305"],["23900342485105419933360460738517298949964166301816521280186466492059018007212","11021546867332302950041224071202873361590647573582935312588069991632769750386"],["4634765900894383404248919103823535497404075668380246880045747246372305032059","10754828492284192804211005075146128496007873282790818756710515407550023055119"],["18496272372940172423408016898199501771412193945078630601796348851543603781871","17476726291700754034214795305274913096357271186214041489985163422174447954176"],["26071357517016656435867519330338222606614727739851397543845008138975815427341","2928317495480966280021063780784299553861788540501714352628464286745151204061"],["19356030476541451426933559802237973646488679412297621970303091662242979746862","9851461848172795657171524055704775927858083379595101023186860510019665086539"],["16448336138477141467628230781186288552010413540790556424589341361240770145049","3722680489831958404122207696275911225940364884744867911120765024758002590909"],["11913656887423580700455802798072174553901984696675440706979794967586296886222","14279059855052755536131393630083391487180191157550883674395575559976966012357"],["6288080709155377987565169717054724996487200214481335474393165880955188875414","15315991616197490571709480212765172072651605731274704519068757334264234014875"],["6060869958495967837932404320968323038468357578302521796014749004605757722260","18544559345762985740088837553571677589754192864425002001703429579804718073965"],["11120060534084237500854662377901245542444689282286391089501798405802662904089","27815128982485376218716145643336171346378375293068836323222684962887198682241"],["21660821990012964784830656877478137678015186007765043355048175583724495528179","16860764591303663840676763445780759085698253499171179133408184036173682777245"],["9413154793449086169501203424834452724253380648661309596825666634657279505473","10946561341305964808172521546433689649170551913158409598616747144616856211806"],["22107898249340372422875223542485513248921937465732166362012542399762802118852","1845668106811319055605815001498033583076054210669910325095057286824049014269"],["10579602533779378672099543373812924380750906924909748469228780278734123347490","20931714272370572204414037152274825059424704787840716024040338552201299706775"],["11253612960106050255144026730694694780035160867557950498107233428702829457400","16071440823324865466813906730990000872870005789841696730553460670557330458373"],["23553998295688136102516595754758753731646962263106641678190867477605394949329","5547391988549745567729292428896569584034703764020952307799494919722798131631"],["9082894002237351886845656072160366513793960136685887627297926476800510251925","16326271215568486397141591593174829967283837328973384364472692942991963649201"],["3571801723036086360786738707890139722541007664138668693794119732948998911135","16737046234886607436235577620626712447788606202280696577018315238304298295537"],["14860069063715777746762485038943454118330703214377359354917004256864561965127","2169068268173323817290939772098864774382558923652831075105827646631524003354"],["9270961615029818367650313750016086001032499935340808029832009327938436733460","21785176818883221410767836043618593722985529288072823213360274670816857435861"],["24875033644432432008084034192554472004472718238312990178097311532376991554336","608274135696348533510195053097705100794167802494825888008909359088491146994"],["27039293331651922161012622167803243339315419894226015725169219817336224366728","4874339539241664499710598500375534217760142321831600110316523265016808527208"],["13341686064486956129743808111873721718400740400001218375031101855534539256557","9308886200792881236684059862467632670935344547325176016327000241937314239692"],["201685633836915350952988240164263834661672629459701864132382011078873521691","17168438245458510746843655548519911559565779514772179114262105270893628677593"],["7646600982751815204827542202599094052615900288179197781702154425068511871041","25716573320374004443826906135433691130761119613487440857976381807280984398404"],["26855831802123290259937356631744043693053694207900941697512332260498924654162","3233973665770726608136091571354294238688425225735768707462840280640598843390"],["9327784891184609397251121310146503481048360316114268519755681144034382961699","24084202723735221196235814711119206638817921679942552903996384484728741867302"],["19125066420004254333312175606331403121378969537395500974082025570693373673193","6323464129242373181407065369354832776709195573618517309009554621866061558361"],["17322670757439046984586009260379073559294671852173748715628118479831881964480","1698052349989035036729855083846442217137631158135934010119015021057843421152"],["15832558203876430625289395464240524649129315212717079361370430889049750534187","15061451341734645511633581993344977706644388408636783896907417576320372945051"],["27061187687169512914694361898258844266226095912953344763563928150999786403659","14422062854594723043713446027216267343918787659424490270797370396191931819088"],["17244998524779235346516447833152896783084804867993754812880821131978786327062","9000541018972966471694370315571144764004250035495962783906439706057585530383"],["27562702080900824045335920733789972896472975210823122771890783112930668097572","1140340826607708785484427533940067379147992565071394757149992199793558340228"],["21538803042705222251135601861035687615676314610910353694113031670892732786852","879762914414040263465584020745244323959168672720219284606588866200038664753"],["5277110453643397776527975489350441012943516337175412482688154957203634799835","7812750895332002979150042134786087650197447005615416441459633324778420661621"],["28395422491587708597897139737545247507474028242724713911012298449668109077680","2380429703140037204588861298747977428433249093085150055883413444720265930955"],["12199358471007782051725338542279198487497240827772543099470099367076463375518","15595885839233184878758453855078105047629155398489174205037366965144979040504"],["28719048549372731467161403052094824881911771983028577784263585354433092316976","19974059994029407244577673514723500241542399094492480923966111689688506099564"],["23059800052275623271017916724589400083877210518495528321089256855153141839464","24881356829248692683469642241597992636655530830125299922035223602026210201531"],["24539494208868122854195134199487883222520236810790235362363855678706769214642","14192028206184361701800793343751052949226602084027469363115868193565389134561"],["27465150619320921432210582195459246282295237815107485040299238815837249231492","18650498690489238946283643198223759071524311117988314039045168459842828706969"],["17947491379055525887913430517010126001134811426335156111781241074455214970866","12801944227583978656901765893095933799383580401770990900514438880485027263406"],["22827899418986829834005169297952105518061451708334899968342893537247704922055","3796163210794048113961772596082995966462617343857275670544126695526313236869"],["23068887530105930589118494044013620512192826190117156562757960619432123519579","19878917342370767873895975758618471794376715545936948620404536469500051468534"],["25529113117357789553115524945296737182996780984644863938969764092574957873791","11223949757911059515339547003710867882812177836879994333459160170443992319188"],["22370448905830032944938798654092149313985996464243854611899673790744986509328","11447219740360614180899409133987547851195465845480090723131117258648668849798"],["25853431106277386355858590929561890304001287231903292496195679103702478593641","14600263659319385480157228305831573331354884157191298427089303034887450278384"],["25797581928758598013568897286186401145376396815596721359433651096506170767235","3789326969332492911564530853814782909714951051928953756622511570675413811801"],["1236247039391352611790568845195632777011135943497128731587877820125491224750","9902480986144502885447568486325691172732380050421200228062664226233716249505"],["24466823471834488168215102384719692658640690796295131270644340398786901342892","27139499478819097609575320699664216996713438905825964671885842142959736920090"],["9379027275979759747169115092994529137945298173588245662336909270102936046007","11319515972698345068165481988449098751777283938045953681561935307614699238327"],["2979712533290164788509048218516632785579323647242415612540297774447884229109","18605690203804033329302583920703954140082610075686455267148894320045492264767"],["28772028069587951868705288650264292846448218678994761530335611325198133785479","6950245826325717992440273778237697260676804301657285246330992530219643436642"],["3436490126740993475783311513011700186913032828413442800587616103897595319975","382150495875023342885292813637741502266822823292856964213004813294674841665"],["25826546632884293358517580710389881884212507969837476324943004745619595208598","19394816526707234328339776558201465447378014422459049905310814339850512162422"],["27457982862552928385076296141087822143234579286097727769977265776194627850169","169483521297966833826572695228082633473800363716591280702170939855776563116"],["6109449854127568150096087113175971682955473674650319675336769992156939701888","6311803080306749456357834229848969515827897263928118716489504336923951103607"],["9177283850782702187401674821506519643267562129405645946122327350003506164147","24489392368951186706907950499338247931833027512537449126626132599217415171797"],["3382438327971721597476784381058914129370553449140900805959830942506891593200","24963215043488917572837136777296831573207685078216791888368538710629634032435"],["16921884005230888737924836391920484980994087132644037523313986057556156768530","17080472308004583643317728735472860322411341468347591202444906006902402772011"],["14793514797051654605886280495788255701473353611173611989112261657531011249997","1449191668539595302303041410850413381474425255092840764321413964652367048631"],["18342811198478714592284544466844349098371001945849156722929467448402012977319","9731758309877360486485721303131101029385817978513533113171305840764189724334"],["23143643627457228797794521657331561092162480396478389621606623096370222968228","5637082795398125724981315894547921791146110467804598610793931095139674758435"],["15888924053128440717968234516719562568985779437940220537211760823721127602413","26463631974252009702295111702916349746828415013650552769920968108629413841474"],["7576298570072594326672377638108329830015141067852595101604142160137135003877","20718991406122033730404416039374964936448126570887756603282090786989982088414"],["13048502864121701302405852813835645432997017629251274448074635583872895298304","11235704112837045516356080891632465728756843401142377294860845923630135283390"],["19539993904958447020580676962080311740891383777985360920550392858619615143633","25622644252238532687483050805325551191142149180151029974523230729232901735778"],["17290749213710859200151049020993598423650288578221401140329884188829872125140","27868252172130578188675286784400014471813840403853330910088001847921967883458"],["24202620543244857129985474147339419300013966989556761768932260031669467078317","20430600884195446772419164439963645800830013840200862453783821433500067341236"],["13909334516822853145440857681286650121319891990614273232725303898723291323168","5179191614181235021279095999980750588543429630706293657431064500791546174895"],["19450974243834416587239778331075571092517660353998585647389914358673934691774","23063356864131421686456488188368692592458076305415652979874936390163514558015"],["8576686660080690713365855258621225688589600682193183097383011415137854412183","3009828029077093425583350947644007123419227478182714753119324134463433658123"],["7476293548645287838206507627588566452740598012640530197958183866527926580938","12907807469392082069655716619156269935864388538258112422537728308817623146809"],["7654145672580456363338906296287974226027435724479630432089131888769100154682","13350042074870130482233530645889354349414841330386926675669688310864460895986"],["22107400590377292905932208506092993598851766400160492840373859902366830695842","9594345946966343816775646711643069963716948865958588311265308972483623921742"],["24757920868417155378568414879975754072556850312328480330380294775948936121641","13823568558234780643818596102366209747806056433838635674607907978795418712553"],["28024598259701304245138268879722678729057365407211441575309535284275341881656","17980948223186895824354729280141222739204170830980156171778972771285445082529"],["15769794898126044062519487468450236002749423339390510244108367567744751508755","15911389929202814722869499102939496996275134434072177797040744028087113019548"],["1621466920548744788934398449800315451956180260365066661707892267532452473549","17335431954160390237114069782418335169195847926236897678092658070062922696266"],["3200561750801389827602063861929121936472423822249017998408285428517660715635","20127503491730737246497387993798547866505806635323887651882352599291843880455"],["25113065034779422899773478843097523981236397423658102386946989291299343450527","22337737053162534871179253552099429249103469315871318963700523737245756043286"],["11815560896059878876805157556028375552981689744321272226721023990040719984325","5549221354877188294056300528006621037423654903977720608345944451848755501921"],["2290745132605464507133664939773781086300867232896586202901046063473428541258","15182517274503081048581520434943637068635593185536539186501192219944758623481"],["12850004805636613394522360838283498951487105492361577885746995687601113716535","16660471665744966215603040464521857470742259695972537385143026652052755190028"],["24671868335746562015185868843353856557891783164924319492740114223599921422719","20340965371709412072072035376025864717785655402905078510774063993335486807232"],["28246913118585789338304643489984071014323505585999020569713163164741167386723","16038719063649759741513006624240637183018378587217190111011566685994801631006"],["20249420539750503223928258035549659434850183128674759109640800675006771099903","13560147644556809766449844870331638266144324375287103760751939540822228378655"],["13032226095766875414215426486148428581767004729241908464278548667616593202137","4887128276389432246667963313845927947381264622237125666144123222076911499485"],["7658520052576056987040959909614766962678683752683525838334016495966619931651","22047234048843347058837413144578968778041012971943367595455126216136991513265"],["13223374204576810027348245193477005650585566109372138487540019581076802576232","2187147688410737460162192841801158463424448913650149267270737039490877958969"],["21959209658502332021973402858045917081496653735931148949515126016335557883747","4171109817769416665736559612393131009774299756442795760376607944411699122789"],["11845589953427263276807307066136388171405406713367133886943295090896782765060","364488162949594183870105555192709076367166799637537098976372646486767383438"],["12468861402831279421861795207475776925082445200182577088114617009106483926212","28293389183294620673361384604100968470060218861926572793311975500798211048836"],["5984472168669377576331045724869560927863338193349397115142867853572066479850","12237308610186391107019201420421635961685635528935589804170399560822505942358"],["4157773900194957402567764751231508628252418429678021934590352251242354990087","16977708093639614130204307586623386697961506758612127305282479472772398360975"],["11427012300282827423479666214170988777135192666645928498688030296101052444461","2269283377719324660026966309509298183959791567800907201010129448940052632782"],["3399457508627567738956565310178252944327527928902304883009935782932271331260","9837561297233289317949742303488809532903913245414951600343562762126392740453"],["21026455943937372451256329564522087611232188530915048369201461075211596804044","6959545105801638169892693121158388916271365837545827607273558588671159731968"],["23419534756991320201425891227586316758523188191049178242871681881632006512554","19132852233935007390309638991829216648505281356754430907155269690040773751000"],["1553980573915198109744524658945673252019164885086650656208679446520675059611","14737540425122201823368294744892536333331346607765356305427221544372015385192"],["19562332252048487066527538342898982028490534841954284007010118279499022340819","2189108317911923114280599649937202975715503337482957184000628301245786683472"],["22794405986250763200342779083963727870945084702579274899922013697284323371957","13195928634709205988712086422055486596222902368472173970388988741804337626427"],["14017147557318728004719330663854757859248649682662331507170851188880347528687","15008655706762066933107326908607002041893661976347564348762225834828275529714"],["3017878799789722155081896289465063812819746163219302238038925553962898452360","22649199536465329858576529941176373809515984350855260354394382138984375519898"],["23078090176593255935219461493414469495595917957790217230442267152165069797954","22891605021496421824418798087293767074420362461397681649518065029803838237806"],["6963745773171776460506212160751862449425309909859277742224960057693041199293","11759458800584133855193908781572819811935774837697413795013977490804630294813"],["13609634261146986906548335867203413549071082258525085237250331778347808063135","28562558491121502959658507439284770355843448509161960431673512946535477489646"],["13047876009247655929326920922454526951004134325453349442158149388492735121752","8373854653021697820073902680244421973553619587200726125554167147361548323551"],["25721528121634978573135236284306716701076346434974861120221851291798607828695","2182224036512475128349271504232065600750258010623954548643773191754562993013"],["7123316212476154020308145276401441423851232592831265323031555752126834451798","10354654981940992435793392233456511119332407647679991267648115569712384285753"],["20170464769735460276684292826873053808738091789176386366260056671511992607704","11611397272989337027106687066786488454922216280979045967740044267720001098703"],["25094161692023175323704727142092936097021869361288750078709456075360343851978","23100683954196126381538487385046974148584882464494623254508792115352645932982"],["23031342659566122378783529414960219276318873658996716046299137006735836777775","20118693092544219917233783232498834631845540628889170107559290986697415101556"],["25056294490463148438001517516188780749234872287340432412949485651973073860230","6879808589519772918210748777447817208355413894519438162707261881853507912304"],["3675643288850867214579452666797692718969743067648405778917776205218583556520","12658396739787176689992951791630656111771357780266611592678957686336304067985"],["24085581167055971474381080277503546933731647168748431911884086951548133826030","17368732377536070483177298910785736828327062109972491618263013150760712469318"],["21584761202295176001421823275315298661276882192523577353917534643375192106827","18713667409610217266579286861855912596250052599178016585554687985314649662222"],["3644939744028645364054929288341833093614406524820773603765651695742421925457","21086682725663567885609419875267648703275469372226052841867715206827898390450"],["5033950514881993846201409725255775536112233218039595590678519120655012429043","23332500041244433946935762700515987997186658103841271576125306333936813345814"],["15095301563722890341753502089192972424957652782958399311746710799691581207071","26821495982836805987344995969587935074022488926637979793443022197577433367664"],["23300752048312320190471515158836878783003262596616914968444804642681487077092","26922046237104116565946305950457198554158595652669719292337966352962862132884"],["12492123717125901960412795834700894463079220182473817378788750731795925378819","1859119447695037472934741064215722831131149813094761354819228836441493324035"],["8457265963495879802829817819449454376601010056104375380026677230747857012010","12213080122393640133403855206727102863518489640557029335506210328486456670555"],["23455907777521923130723098038747183353704243083688125404208878780206843453137","3537471808934626630977057755648182612880704575842638172534725462001367177886"],["4976828017009226448098083935699553631468291247896055658435595704835082840177","2799196514303308156969687195609469845625971198746398030984686378994997318904"],["20411796306645555583102228153220065580267832480761696828570373638364041511589","15652311400896036018780261791774477958317883741212553219823348407611986308567"],["19344819644548871587318093513708245757699631781027397383763869106395168124520","27663893180735708302567212616615325416195552937567357154211130836438342781423"],["13623138122098950332965476969193167240499196284686237533990294026700312115883","7083013669467003985527888319881064665164508617411102105625478260545488658727"],["13756061735625717578855371379988450468146420989244861984004093287123981492256","1725068226457200009465622608018906765001366696898988349843996512676965706089"],["23284553332778994601644303767412662247448921855669574475495000110607242736305","14570494759153282119664407023356801728106429602370683520615804227297061075888"],["25640555927035499135685927735147183079113563427074752595242729876139185986791","24508364722216740380656902085310507408186538152344305824173875677643715751909"],["19540871411793218945037408771769468547173019067170499178721827937380004397302","1700550290469924996784393325797307322904669575800499980077731269503039038463"],["25960673312893474701280570162885891304736481653247397100019086548378052797933","26809355757366810440901876858916423171913334876425257738369438265024786866724"],["18719825193755219089484776618882313570821696542587663412665262495923549974337","14028229440499706907998780271248922124300543424124551390387774325150075762254"],["19179783879730443925586713957542363423638031475011138097786082394141628000695","11854041328904406553926112737140364531178613186721981534968248193747993261571"],["9335552305603319616738606581693524452113942031413686825913855381436631705180","11936529048016290602941200683135365181525250702099926351572464150485563236070"],["7474988539304320483864352140383080992562267122541896035739163882956937877166","18831903444019784115218858943184016766738637550581930713566508240069587854118"],["20600852334643183475576364563839363989164258512867493965957340770096342713737","24734006532749130186149766272129711263308048467597880620248070375200603100843"],["9347310703259321058971093170145509273412555784707074019672368668003246673312","16386936215111056948373372283538444586377677863483868496314889391880410895890"],["12856856582243880332009628272573131798092609228988075977159853890255038020305","10574546809868548848325712697943454282017674002556626246737902299701714943811"],["6644902226772347250575578146198969754967350661117260220532387114486503009022","3797180210865014040891319405497709562559895323768786737478669413847070767554"],["3415014093663747870618343032601601018946106619056917516215798879517393452447","11291669371633882417856305780978532513998689880488920967907528973347910042818"],["7707699657364652581434179234618762359046388415158686212632911981806734607376","3067845910534849223055995096014292692924363353531511122218767305097583538982"],["24203874766577261669516071490753671144481156773692373490404137010253281803698","22018242488967027725751534850041344912344031881942639035375940312697946255382"],["2274549567108153046771817911312022515205155057739902908960938742543552723199","26176628447670269455822264456494533206995065931590506825775169186349704219658"],["24105851279380935187055493157428064449392402579645773783689786243947694172209","22550625010569732393427463936103067267958336406606006155690841730558647151678"],["2051887346751653763547481331434712122370139952980403455688977392601234080959","13329519055748364213865019554382569275935296651490391218760689600716114821477"],["14242262538955607801464321480464251831088594332589793536499890680861651389760","23587818140796938418408015488544569742621484677999820878002462044853279584985"],["2942767798649452008596788330397463774399061777800080226483284892245530799688","24800171581446719480211359233026495135645525269463758540131319748045323003068"],["28012569230938423135042403805212786971094790270449166774293275449642019268234","27202062173117704733675613137635247112558901840581916733123617860985599024623"],["7190838005003089675033714526260314744061894446300998099054998715633328281718","14156026188033428645247669376535885902188520835519989903459924136950215269483"],["23649739710151179457279918408710164910327424254299842991595610854502476749760","16510657746180580348041335250444618187130081984933378244268814900466193605154"],["13220798408599954599512742224739105738880762975323323756956717604866984903409","11084230361736184920563961558938388861612204584572865329960786776141686160991"],["27310439712633608434708789650337896581320063948230324648395405624770700435717","17798156159944451112360713698375646761709180925098796031928037815868732175220"],["15343185331900963834241761670793652646751833801987350139371938945600574198800","7735895315415269697138434561143743890891638070459621569784875283570344872641"],["19243632865871332707818535363962303585407732130510038702345712654138952459095","1702114227460964769833507563689358528079430663788685978441625322496858622472"],["233093994677789421236147327146218144847400115488940773075925787776192918963","6740278794007324477425927631897213562114450449315774813767519517690377242659"],["27991535590956030715307929548186553682009038861045231656208321612333963653305","1280863844061744879135677017349369208713447600912920123752870516188274175315"],["22003563334790566022031856349132447617587003309866537551056522282990535125760","28099094462740609561293746266046679297463602525499262127881437525754264675799"],["2739032369555084523802639107299612112010733157702447190714781520913841358191","9621342251525472090948034122358923147440816591839038751210469511694754910449"],["18221006654005733647677481406160095060484913194809890596107231425854927739456","26369947298854724855107344559476993416077191614075152658584030693344239787479"],["8531827410642096310968735209623898571840822100551710227003792165825990558664","5596307280706840276864201189643737562529188321867437882105991841040620409085"],["10314099791737749821799249353970085838397277136635890444336500208503613480058","28213554331969857369173769850247440229981831598444480568362804576133555715011"],["3662478773397502607886104206130115949885578414592798341376261240502917243337","21031974129282529885167391366730919572551352996263236087567826834544088634947"],["15843213214682547861769198150705585505059166081674620157938633146413189115922","8428106909757961738544928981114855994808200173641643961998279888726629153918"],["1488346739929986896900736519935929356805291912541029980350311727949762523483","26452105195533748294938511647251355721737901091281714901296789670655459720370"],["24903773295787240014303631500624881090022527817201422515396237382295925880180","6365527140462184781475119047897676812497887423975443871657530750446642739268"],["21816172583599929949104330127294698660512760080251010743829427031356079582023","8516081145690102190492506833201874978622903620848000292690427252252214779507"],["2057007921499203410495740964417566414451252175586776031861788303189868717783","20630153899254899821642586607906098938076383560840162316026705722738698468521"],["25222895315169925440061371435280961178727062848184129691112515188818605202021","3854730429714057417353904985382894681723917575779326617429857539354845028641"],["15685627874210435134396897941752518677568145581933790129936356895148155243612","16561058623816628029898097759566916009832670470622184427045590212391680747068"],["13157715195198039752965442566909368806659131413429096464484596834944883056351","22448628798004019048552380004103890296445035135143808133674211153554800171203"],["2523238142653766538682197082867019876801498564300038836760093465609755474181","3919583308927235134735261468482323823187279245642616374196496276794904769241"],["14329721472799454315627791215677040650873298526621269984865785828510385792453","20664844275871988850814117030939708497456119632188101513825721228820635710899"],["15921968327577221884040589206065527164546342858442645570357376289970152401921","6316646150689460009111271306115318710652983603437528101620551202797122126745"],["27036527767091180712228948927632728940008418816541172924207388305394535577982","19445623343039335534078846734403393555520819362953133150097594173389574830209"],["24408849800324034027784660358925271410051451611138047132835438006633178462927","2121335741169083227659029595936920395309319008560307711320517591598501243028"],["6728218071928287977067623799072183209347977447369249438843192778798163296879","7168666801953966311589848651693818953360688709708578045854226845281400380685"],["5428667283326536734523308604937939391596310755980741123265973972421732534088","26692239316593819038367527562091805376198686788086637474122368033127184951197"],["3418883188841636142642710338334650009519672217961645899031035810852498294343","28469945465653160212149292496792852903514620789311105509800327192224069767689"],["19732777606601278185808339815944004680774138796462797088717624581749322509127","13442699668724577769840187582103599480392613259769027404409508306918251982278"],["25419986098089393764244354663306591091634526747404220174976449917369840741792","2070756646449325204052853579142407889889573894269620746820124914659579943620"],["24176913370694778680465103756001749464833687724295232512241141159080012661247","15924923278851134120528346526076882656185217379882097634143271358591181580228"],["27980343162936885462475454617827051785725811512111597554299593907173983801420","21034669156823409112467938113925138044772099982169350962681764512826298047863"],["6293655175434970837351138212626799854193079217714162573025707076108763590295","21402516739567435120769935693577080217075030650430015203668199632098222197939"],["6257414765981280304819887560978252395912732093484590167754081869253612110835","2616194745910246626032974656495925131362573002448029082965483210974146019964"],["11151640072546773736809774362186089766108880244344084820008563961764856049508","25545591393214717426977769602264258244338365782038845473214384570565492299241"],["11637583949757133257722240193509565313500417845705934868051061737167437343597","2407997253588940987823200287075343745253788619225224044274725900474982483290"],["4771456945100866000541463280533051587506432520280824573533907027892197919914","11928865866193299680702291032332102140081863123602366409640441511160071479649"],["23474452545448830151651373873874282084309265148773559996709603916114693254842","22845566301703956506350821508179570931054662229666462262817753744315588035430"],["19946707354659084001091980528430468451553416931690663765123870272088032041817","20769454909564826875435179625774869946672108288002197417525982421453290746357"],["2613290486609061991517293559151697268987224549202392276966458338629222523115","3859662577612592589728145906378373540727775786847248280058589200721686479147"],["10734409536537499776114815697745351436604305249213627560318759958891096747317","3297424305510465426961203176610666402418759065788911559678134255438261298671"],["5096668174299237404431132203095897049055737269763861794284069747759281575626","13255982052996193243427789354414872222166670360921677314570588685858541285124"],["7166492061581318116946358168593389238941310542930634961484226144771671505594","12406447707295899659794930323579185159322752055754046226953775850033168501538"],["14910116518443898795478006436877430826285215392107926333369403605850458173672","3084799160053056293834325744536586899732589345872655051022033152185207172446"],["10447005085531916485730612869938536551799426331470590557349284146174350433631","1783226634635617939245031674034273934743183039372825165475247802793727595265"],["6136953868150226102266673720527747405969539432836173144868967317021217003280","963583604279133449659804635587234314403858775852234442811801674852826409655"],["10012505524940134556216646861952786020625089590430213281140645931330756728561","8400874032449567795907137316768959799897536086566635740094223856161521867056"],["7704010387002462723177107427969187225643517602841982570404085585420297644299","23910998544783484287795605241773073988131261276546894580724249558630620874385"],["17348843960577629976074147529284788829848097834069458967907333082994880245827","4887102103530299085135892422326267425857006344578244026773956198265865049468"],["15112588909712070992616066565427928644493910241696588898056155532061751278553","10484613326432419082067330060795190514000327173058671891167299292367483003149"],["28043815311424901957441941228984429876459958948640634721828263119812225150941","16732133164797191335117869846763777352466480069856145563070955543763149828706"],["18055939944564250521497175751030464639876942522950896363065633050115519840398","9063853968340696441578352649739102688193105955725282777195642491254531667665"],["6179819474626584171501425009524701858879226710695001253974172675276720477439","17160363030976038230223418253732962066785324189941473306165503299340277536060"],["14750415973046195466633463786402608669794685997681520766973376628797606647387","7307849915794912882379994351007059268378189393883668110869579158630474427905"],["8698335864820660063525990788383638268712297297681809587893208405159039316525","6013025930557580102914663873588642693086321621291191240200110751667463813294"],["15737884955491811685967048079985517783710247070309407795032979633998913890256","26086658380811428779892076851475922259517442791497810228776619195890019955458"],["24547360700372462121659639209480491400968046186727713294613639075160941167650","28334015789053039143467099879775917119573295574574997758090052923577011348853"],["12448015692843597223515077600357798842416217055584319194239316764125559063427","2101605298132755211922395386633220205309710333505104591958051265125660094696"],["10777150922907353251123041412533412030650803403964273248538788924498377747503","15050086084703902978465135228773912989346220186254379761007417099442189826487"],["9937682750695135885579281766400149022955211057699499636708451647561440964300","17957061025441720595750980895631163996542214044789023981608439425492431973859"],["27301811027503364322773564825869712752137235385105560637298540160071223497003","6788045639832953802320485230461050152552858867375274824850578224677293155615"],["17563035280117154820016154051923747789226694475800330760503841374509548343219","14775201610124298051002552562466364966622233343930352868037209120922964039767"],["28853236472423231550814323975846593265655127409473338167438894605152862584303","27800844714011598339340831118769724874534258060183809790496185341308134287829"],["8192974776152169510574975964303643438205851297896610860267332401697758948255","13202571041856947109129946011424476273463205150560497724013593253458076241993"],["6421962187402890920488678252677569411072831400994315050112705517302953232491","15664317764100972527213316729913227352752012647814403390346478778147685717702"],["2677669128160710933758819297747846372464977272464356276962403225766558783307","7162943472569753922261332061453238537982748573332360426659522993770311442858"],["26751899795164026463485739132337160457775524102123112033844677557263629688788","8516347261473352966266701274975968543692322485223389428647807258118382114918"],["21749118458608014622360236227970823311287945470797064626132128932890164211030","7868410895000498805146375682082859661486860163136079974641865184550496107665"],["6698443470276411822330191224709564056085268321826821092065048901670736428414","27666115977284375734209929465128865613747237814538571494006111867264450347796"],["8219910303318390151221249939684849809791627010748962534834370752056398901669","6996339721856548191012986738238751021675716797914667453573066476179059455406"],["25577503479599258491240965132888608092565739527736497564230013464340156670432","7716620451552280423657994667219024879832591085374012588264902209267846811345"],["17039371773785213632663738923451374930144989071958565747457947756985349851542","27025195254045418382794974017275400814097365460411722241024275934223730038369"],["9251159047026528960029149685729147703191042213283652521238278085962144712879","7361549403929651953991245007163567490598086887275859967464488927341740666340"],["18390590073777639400005926055988307227530817547128705748118108756023711764665","26443394150502476667890009383327137410386282625955163263675448913208379549333"],["27034967694399030556141711156476334347062313636443997643265117077420686265978","6671623658857027012933245360197196587208992446964892195764201953825530314217"],["5111877331308914569260595183367601422312065879155443396014569389108792188895","23236326553897622378349946925561895037325826091015048229649760782850496570583"],["28296858314247237969281187719052238911951268199241002574408100228207483333369","12454303675354130310298019501924132695103415221363217594497569855781412275835"],["12786060896680747435971640279158060311818584481959898133087564346086224468641","2786556677560444273989742055143354227122529713794590842244019228556594613485"],["28665618635170017672975039055601404619768112943363419368388943456803324082430","22901459357305847177866258736450128491145926337571765757743309143435544552697"],["24525599119856398338504793907949038438742408581087955228831903438209834694629","12525310682799622094412032366761370305952420011844112458399147406317348593682"],["12828408282943362501745278935974066257661349308307235286040788910160127503258","5634575290508896092215256430961094643684981279799408732976449216558936129553"],["15559566172186319622150001890402251164793188105446267622452188680485020885895","1068543625763804413843276781276464299093175959497688202619682709866699811890"],["20004165874250596950955215809026697229957659896624187620602019223751832558400","12523659449531468088955816474041980050172474845521488851071105462394807574524"],["17127601550578412357799908446387810447526592581366031632221880377297152858050","2919131194635486598673666224216162056426442904641889547581812637592236385923"],["17631773790073699945995736686604112344668821029151307555007579589816153640079","6717060899770314518043517728141656860949310168152266234962097086831379733477"],["23845747792101981763625148294093211291406008383879319892321907559499468803297","20081064209697825064704843497867145676531976411964442600201363349503743179326"],["17858945755775540610575581318102012065354069086362251599946651982476396056988","317612070849012370712844317098386129474929450049799515007638877448797886032"],["11259511888749024923802438122790293577697690461950703447974698229733560626919","27396781414323985617730890630581539308582530158705522648038245520354809478686"],["1971242882233356995487733198047157012036182318315388189848709518613867047400","16350179188674484549014685286874324340154798233905317860082494806544225237374"],["9077796535422188544952853504630295064683181564467887461564264209481810344863","24655917139343141285599637417350141884275518802739597729784021365411855480925"],["17971237860339634746853213991328900144721445256219727963050685550574844434846","27886354230527091775356689361671369948738779203994051103602326203916409593812"],["6465225121990433202612634662864431257560615439928061071342002312377184534202","5530112728415140011827703098450495574040297702700637783109243231135468232421"],["23091893652391268334869271432423653218749911436001283402672565925130570121388","26589553868967025936464932484904043269482317512768026922877081992558089341391"],["8427004924517158454118628849503234965101802379152243965928563336900024404757","4369999975675996701664468403664614333724695061541041863927050508896870635508"],["9182388583640366284855227241844554569553962146304510966148037779816723977598","11308614625449519402308067862241137571886659055763806116852180982490659007973"],["13679318230507620728969030948258173317639773728394067655758977711669640144183","28326148581077450587951350136526225609954112167781802486417153843661227614875"],["25219958297934792656698559509132068900301693259535229931992298238595301384308","27528356594664099155787698288805029380851323697372615340143879135744070981212"],["13209066167669065810235462920940071367650769887141389403476167072124308025227","15861127094993375842518623917960415933092112724114501463401990513951775244850"],["24023292132161391227311910481533569614059609089193574357380340746014970747072","4881807401193417136294386232305289751702625171806584418863907812504464538392"],["9490885856996137458765314715541779098783480225374732738626942120643309309730","14460244898247757581577326081754515517271852898126862753816177158123111037141"],["7711725934286705630236500480129844646803587553237830413961198992602717771886","7722999849626131122602528997344274781643567383398176407503569476986911361303"],["9839292330715091468751385053838333755699811205446586146614983531097276045218","3136221140393928364376147601484540749134749385184001044433121955477982394656"],["19976104639201723413197285099745397215674304405253347871371413123948995556674","2790835075791259933628879732832690814245810163894017749398014153378202522782"],["11556172087657555247311875629594780451472132711819532184213760750469286508619","4027014217621229029253044130499585166843726204700619573762558508050280787942"],["13774310783216269739827949628140510539791726957742137399347129661080856646426","23881853395761404920638814374670988392429580986185307934073978741642151749538"],["16757340068894214942600669575474837620631979874663535060652042879881554677256","7728025047885804290597185339117550470661783617505869911666642712509504526557"],["14268628634480569607429125116880198513320491445436418404988486944374682685916","221009302255840014893737789288896147394026988379159535121648895052133408529"],["3154879824098194124218938250573251803603932888532391997829057632887774813232","9846864866656533769020420330695128590941096585899127058905550055832631255572"],["1175003205675285692150609210769600899573092570238043124997629201326429060947","7078746553178441608236403665884579198742431007747692425842238354491944769632"],["15233978487760310370466727161143754431736233157882309925077131501211115224470","22980668477517244751206808894000741902802814616722508302460148600461035077271"],["12152727044946692706333926389321566013986141328419587171749735854641146836278","12545447040869568487249218927216607331329324570687615450200358369665449152029"],["24876902830981508777881641782135995806349353179865246712144883173597097356836","15018406419975501978050028918027941644158099916248288219953201188222259154615"],["24590226222416736318992914618507401321572317597953430009208396135224664370431","2763546065179195203728595665371573929216545707365018800781977278879036807811"],["16946120124150484369771998766193670185050316438098629621112105550653864657196","13593543081760457915887984164727335956890727450067337841901289687634289546058"],["18204120748282950104927653659168090157042480974969730345208845289080060386259","1390110386923719207761378644275121582745403996418392736045429215758029952946"],["23213594135020912744200535331310652089266363240388295383082118104381479126474","21514076919748893546299626789655729964118398968530285176627576875443699824703"],["6841645634757236409410377406062580277145907283941422971264231070155112986188","9159130005496684995356840658747951536992534961239908461254433706569445594976"],["4820287031343421896613371455441977198616354990491579440866377064813085170724","15119629049557056280224928685436872903279229771890636351920648587051949075021"],["19257268559726128451200120213748350506760483798478073428337560970225480158985","19943616067408604926940546154523121925566184954756588158159531980618919890978"],["6267340933569939395472611668798292000285219335866309422786556796500420487885","700078491592712308804284427069200183042699516161585314093573805576519052399"],["10990502097603345434779655475290745915456785674546930223973618527641969673885","28410226884066416737032722494219736054681085041821063735210670224375196481067"],["25157059929288299728033168530069878154914017053133709421904782452591963395130","1744028664682202969505758555828992339524190522073311210337610645523947567614"],["3325043177124303381858785952229330860613842282835209111736994785528373637192","3056035841420775117109786630099221369044112368384771197878068360369469996366"],["16983291689082979757647705906789167162669935052449377835992999005076594006486","1180448613051274280540033507659208050775758161116657005372516979582720712459"],["8963733809400637400584308472930873241289688651273432944972619172880896270829","9429280686618113786965961178287690100170108761231473940448555682454620261940"],["22362680297042922839432836666031669039170903294644885495814685044745914469902","23446649405617653503647417149109442451757631417315390922848548449915445579271"],["24956820499773183731358983587571906073094477212404123131350678419581678169455","3931463477977778397490934588984394796447763284932860370561221637905967911822"],["5255722687798019729447264087581685672242234320939742950411733984049794374863","3557515899432641525412163382673240604142968425099077431500027006267186613954"],["23944941310618987330135958627855001317984807925825201625388338608533401763391","19443283835790033060726164596821924244013578771561779440164038640766226441451"],["190708280304703577940870112940757894546177867816953448023228613666731148161","7497039453116302468973215213041459959698501809470730153399440748359707736892"],["24562586616656800861377883102329421834971292522373759731618242114394833192469","21248791689408284946033117546171310538545401997679164518002366404806903337800"],["25506007862242538813549561328914633745518097382766024614369578578549503281071","19670035052436657517745562890064326979554804178184615736070686898027749210621"],["24555010057819860017831714412309318078244331644798878924083189096825072690723","26939165913301132053289973520232541697050054200301041482827015805273315341233"],["7762632546618727828015319765373407454210872019781671267531606385010609249743","1317472759924639268845603239573184237023850631925220287365026708172197454574"],["22142071601695327269352198707504832116847232728676455926930408238340332715830","8806298598380044350624230789582780532524594069804850544880063846068415585951"],["174806491003509135856205613894743873272203816980294938880129247728912158965","24355999007190048277408534646158318295902158713607529733179680364319847909131"],["2997267502736749200024997505722837333393116139906481798585747652799441806255","13332951364566211847954923377319788510876735609308802598903557123441007988306"],["2701816282923472181452786586314090260185106376799745946954889003159452199954","20619508489611122589218324487391762360457248632954512954882062729628975607012"],["15125085152435350829956519725897527400119711012048230474843426514008474379131","18906136103965959233591215400480062785111176263924302103312252069667904866217"],["22317616231021889068450436011823415635339034721059549544859123006592516807789","20838412223658258913159736681933245083507230962951265249215765156194117654189"],["8853266201923054388382310572817321107020852330765065817757219722921955067157","608217957156825903146370338189770057825074386209036053689756548773419102521"],["10335744348280526543258152802513579254897273965323007233325630595058894070592","22529686028017052985410993390226726742321277814120251387740125020930277568813"],["13923044713045655116028396784966428979247602172434623392142910988114604553341","12516445578816210327799222026045015871999860425170245343602906606004170825823"],["15122429673613186468384557153059979889603186486119513463315317337754015263330","22795930734481274734428255215456901410400491881423407691263983846117251891650"],["28877963625711529528763890782547737153206298857249635936362287840869413113219","12866040894459443461044508334465368604375934742840676535472464388754457404886"],["12728148219108988789971360576955532446972056634139202512631877020468226026753","27510948206655473482179911515070495499386033973749109412136466117627742238851"],["18027589057680122013330823814252844044137819354570486564057261075451053218215","23883938297323579328099148425637896951443767735766214553976946833818242392895"],["20451748059031802973315794148966626981125474578025814026532905894541875443720","286486270997702011424720816341102057346971510310574127499478828985101403632"],["11055094999943075012328136385092806966007350500137378579486632888331938961301","20026534343475741058496554323733481736461320355530035788276940245451713173718"],["22235604149067724251008078121652925337750069752710384846447544794984276672355","27767414839496587250004557714193101837426963495894360767466456890334289666987"],["3867024706134174740534894474206504637746349711323356366123347139833420990854","9851341862147046232970454830993828367934741917227711665610342375237235914349"],["25841728412471132727893255432458905546875492192004886765691560812122169208205","25077457218135363496583881758821898491981778299843886463582127731872739735516"],["12689436647047499539823810905766850865661003117321204303070388342115010763524","6839129026292522562087602933377101258576233256549391895428646180855730393624"],["13620240492590312612436629843134676959356706444927558253763860227856227385704","12673930737731964898037302007680402161560297867669763457179255192706983842610"],["12405537542584650819865441716637175753302701540463133101375802941540249020618","8938315971747494498473507037933344574896803715876001085287521512415941412074"],["11184242914671860683355081555243388773977940109835778698731456039821136461065","9485819535019169363108081535343839727450375903580677017863892454326273501852"],["8131965777519919970070749321200867541682627605000510224757717181016746834","21174431439856804761497302745149448046331859639160816848337589080735030991757"],["16599535230859636791781457283537203342668730305618215634289525892126431820256","21285884346805564413731580664950237006131870415996279424116451175235438622590"],["19683853126600754069209827667144809231869904602072607100588523714536113094865","26177658344215013685145653943649283043866883820235232873534390768759041501366"],["24292721342494588631591467476675044987694579013039737626614633126865405702805","13065896754168436523102762368850923375154920083167028056314273956543418031489"],["7885729460500371442974395759334963538035430518019308512477242685182741993196","28717833634188772117853419683016870284019737219241039783341919234044010343537"],["5371411210089172061134053605159602704174769307097030971054266512555717860490","24360857739264948032002331502415149682294815978206453651252854161222067875058"],["16379290372143760957341305811140942817225077989848278308389168490194822513735","5397314550298112293133247407046278223672648242671093473473808477583051430652"],["19219136663627966844453695962836189839507044650834610453270622135874454210720","26793297432769426437560232157884261835619097956573622470489234628916952341212"],["1260391945342968887332772000202437950351636545986371364866488556637087594717","405532600952177773929089620147912785599146227970712149490772037602608514566"],["5819988653952549000068456315924882561113286316004594583244778678364992884492","11569890802108291752184475102816780870247487639507179232574648991914304994406"],["7677413072826218774148169499867934600427041105090223589085339079269685888488","28547227785566071134658959549025912827540131329966746186139312054147663966875"],["16563935379863364655714341675311604563539081577621043369731959795601222258164","28530124536983309435052555513721096993426448584277911078752742426677951172189"],["4358836684131917790072613283641869805016478657136424084739926460150913308605","9524325632727625303672276392468936636001718067587265416487727276082059859480"],["21835431829110378457137251278588849682479312965787389035737172511095514259545","27224460765905180566945210117119165067226629520781669888726550943464532478853"],["5635538475839147626395182568055127442479903295855650248866650990161011296863","3603428507438665563146162894302845383238939559410469290193156792590967996752"],["26914759915571877192319653490357886891635669972855236552131004224848745237018","1970092168584128470817749595012222833285732090501028660084985670073291330428"],["6620711838400694686259154514858667218137443005671264156695244169369686599959","19793608139782954200201735425051031735884790253845179929320455658618475319228"],["28867644337704883236114532143818224181395963585692788464132242483495539294420","27179862702910955796016100048880038725906427826857242542543601169623299300673"],["18554394466024489314995529457247865368460454226895373791301608533132244174213","19194521771325829298437410422219285360535445616381274721306234336997072395382"],["15931225083463070568514280580460504679571556896977595329597927914793737953933","25285175287313353374853595765746427568620659014967032625278935023123623557572"],["11937753130634841835393474104108874388980410760463548899202248110196787780572","7426465754227045084493740524816508597303409341546992938818693337908300064655"],["7169747061389349226775483790961391254089354734610803139505460714211216439033","685279192578932192448241830649441118597284180730527093926996591153566948198"],["13489830987099982518013750404733171310049454739256050284809893734627643748228","15692838139180767811241473049787319363242792542166955697170848016074182498229"],["22155122938093361095059856302833108444346396125581260856056963592268033801116","6419010213206850544517494855976450743323339660318266486335469039193588618477"],["1418249433155250154038596644668501319623527490365650735498600433836320446685","38236251478440155159160346617200961299821619895879522021638159332338495409"],["20342199223281797231346733684080672773535264860146021650165768160404096763392","15023692618267874047674981249833611175049766026633492408243236543381882874916"],["14465218288866269686185655618886113166061768204114388742996727128410761581280","5015057942115912317315372187899692775833677336455354880726820711055469647241"],["23310652514250359193661969261622068027079305586750074338200056689993972763370","10612745900932183917473482778410735434870440845859800246715233077722967030161"],["21479849133431349056101945104710717808942761597355483062388382303612476533552","10453499251096803624054866325445831673449592411966826238078337466368608511769"],["6020106013007806714657848159874665307743563279745637554523018344615058158257","21683071985361608246259606253321850816211912323083074599844091147070746560540"],["12941836731968699752986027977348895682204297604849172267873955130585434634012","3920473914227805844061864054015524828644841202305914324965429677679866258223"],["9056988075632368441022874311367640841069093088062095487653013403407909520477","4237866177969827183516992416534992078122379055696521031397114283824298937880"],["25422927939474337644304940390457584588920450182646651750960676172183124224004","7647119269394203769680240231752865697508104165568668376878686920295889324842"],["11206573937619046853071430380808948929525969562220026470353098183983811454139","8933361112827579980385223353734847411352951598805090634226675995315775402224"],["1269377120663074861651631529667612323995691146445958238635794739491198700510","7005587325189425141500702690101448322393404965044554225072088085368228856683"],["17312489777698865785494378090971363238232602146240718627240591115815012625984","22178751843749798597453203395771783593404275074134561396449942848882463653640"],["14259011893303287129499931372530701714718939651146144846972707661291120436165","27102234729019606375540962640345424617520137160292810660405852946624387047901"],["860125042081469627527025937065432291310282945132686079906342858933354377032","8041425187483495845271514257454877063695042137720982380992795217082674432193"],["28514773312282940557450977966973543869515207464885343398765164671035991843607","15916812264143414711609207207359779331429792619058614239715012444949925213720"],["12734232007851377092815408248861573437833591311112888850418266405365939935357","9173613716404925866951487249871202693565646719531513853072743265282144760422"],["26242048866267799514584714008571792694213955536724633445657775010071772276910","21098998619017801591161167675426265135162140518575496242041238117723272169608"],["5510539959573582897496635528285517475588931610642151171735395377297598187429","21935711622101753680294652871726868605745913270328209534813380570618322993149"],["11260677084419166400279575186739305600840337564042454861747859134570176021508","16674572822169670241909519121788673440110182700821198619253699347964304533454"],["2655456724199640734680485462466643148584778782297470643537371115576733707628","24760087123616647412824514965935971106120636083770673888535378747685245425370"],["27952725899745060040649449019004692762205522138034338889901606488015081078234","20045284379966654666642393533732508388134583175815081687010668529817471816192"],["28582295133590809640511783612640423450909440014672609998585606675220432457641","5004687900945393764662541031850375263381472078526760594367410391828103497835"],["8746562849229799083081199833225422137165988436538155541535204222885841239439","9772199594311698839865736223413437878959685167689773798202268742613704687217"],["8954939484064271047562362503827607135655337025568860359652705027729524013644","7702796559391589193084359066443374008122421769950716701909071176909611339929"],["8164515415671688218060648629054656847285650064967853746444658264724868511753","14304049107165176947439172419720316234887321201430246911991064821421192106686"],["19642197667520169306773799012009654272252907817788615400937901165996689237684","5610073355661837707254659998305531108936647450164724140560025423116584264321"],["25640412764368214973771865005098597503869010239748782879779316107735034420661","2680734975025540664391213904534320114694773929393838506645684431389968121124"],["22648574593893108405200670309493027225532944945891787930686284076815684970827","14956793788654932698360682226320554988990969255943331439769535919438846309912"],["27851922083742721466731476430496341796553815386744148373354789172955088954278","27626974952019065585707811885963995371915178564273538838314011067457786502411"],["25124810993677968777879711624794524958200631906320946100194533201570424141557","17464537227511158575578226820507458790111521095468486669545173652499810892675"],["1181411550872630339601993594848650630468965839823324607037789773049984949192","17394794671395381985857493545767520584578254243562062550991607559641359716720"],["18906899498662996201344069612280809160430391446290642825690343831805408172176","13914575988329826016339375309014759484425133859503654239518387509100141716150"],["28162136377932672641198399528577917661368443549795920792081017024687737104146","12088533022911074427072073355571288666852092739170290407342889442475417573933"],["3157292111892798572163025789829263047223512649862488604589524755904552600455","10645093350445094819525449020751376657403223802387780700176532773677427667294"],["27535047495264932486754690136806705599254232964940340557788520665027029529513","7537415005410508961412840479537299318956228379419292017262165491659777802159"],["28918678273217581054226207012503511239788426066190067844942146869789185821759","7310171092207920324667083266499182583067301286693324932152094557206679570932"],["23027148522387339094931384365764653766907642217552474328373485089436818013538","25531616722162448188184002123030786939967590716224235554549650077318872162305"],["4646431187967241444877881572483982539654613157736380630726882721847448566281","22480371673425106969783370883866008385547586246635480459399222372498356916719"],["22631801500208469500631663739679991876724511086243113706795363290800755893712","21681375416162123824485761572067306530750822096996196916809520414212433358111"],["10886906690734724192367358378124104953103931060850158331954931060969272256944","3627312758885928232146174463584948026336915682889607207908276337784737732019"],["9789941821634435585961371952825472031303538579956861763728585085438282302181","10395360161966534173035326756838770165678552284101823963099188920163016858569"],["14124973549230635374792692591505060313062079938992604694285883530405130635132","26764832268106433438853610360695280601156841609153214092127795962192644594391"],["17236967015689202344218379899431740130072608005448606903414206564414934011832","17080631800289160858806424691124436740631859911574919524463656875121507232283"],["13589278025841807991665639545227141584821759798983987129039866530089469300841","3267311520636420985871692257490972532879204650063355126376078958283392730362"],["26401303863907887984361468607979610349186179360566198521761112157830886369423","27776280331649381388168987375607764346470765216867292587961731365499145515027"],["18065725763300063442640455658945204990259215792394272238280986230213684482660","27718477408943728078440291389930465575267089096628656571437010424077552405526"],["666702681905574063351719260406797224772153798421359385695576622511671772632","25901861194633680051732340566363932921848618540866407094265765399276181623581"],["26392667279224780110974200916402914877970926736408895586016518298151187825705","18917655641912488971489838535899226684926592458042554474011186067435562629249"],["14151610335239506963542346208973218825779384808696646797217928623023529849117","27115318510167967054611036181403194522100310826827025746371429130597528171356"],["28272899785646586670786058567809597680950799305158545713295336743329449118972","12806711195367139863645017653307365917649273141009274204614060267075041895071"],["2871667364673670123764409497071946518395478629241354289191807424825364828968","4275125391775371157518610668530974701367208033426208307797002069097038704948"],["10409231415861513434979118007003360068024818810281164234846059918398504584342","1001252278257528327916955926487455245409111951294945320647711548199028450575"],["1076096821325617996369518241593749761972530094282929065966838766726237485842","26731296553867800837578901999344677551953393388704208136320911192205401387156"],["11717202971921991127715769218460169587221353044664869321418545035404533048101","23688160170614948919988226357920417702108114437298037853018260494139444668691"],["8386421985137294317027634684586617203292254224664932177950879154623459531398","19943132877756849408943579928911695675811014453275836700530439769173424244722"],["26401005362138264167566727174429362503319685374751860482172089477858380365229","4086381695695410455721759379258344189698020156140644904410948842665983056798"],["9481615940022274773095357277006924661067150106079366359194248679159346160797","7637314055621162219042604929856551535089049013099563795961088416262425863461"],["25414241109510339475987846673220128556491268065398240301371375348017798585970","28362522251762093078211225887494706025540903069340316641422615651616320912397"],["19219038446733737575593827349446792610531533390520050944691480004103133864658","28744086619439283907923756222339675331581216902762247580495476808371795300410"],["20425580850562527664589674671438773650713200742470272442868925060432758073611","12415607414205788810070887153816023731753556714820903001281493003751026560355"],["8034521585416032943859910883951491114406471697515013679507545362940949717873","10349731990387835509529962527519680009277963998465163209868938450781889076977"],["19176282630045489198833706554666851435067990193524730580144390081219600107078","17436289343055833567256547975051045177748871359765683517906391965076276543200"],["15970107659055627326930693658546678234631339671106394008049140363075539247764","15027881024363311179210249882816836515627109526721126916915510906100164232710"],["21701741513249114348850785412865256160841819050316753913806289520244917206580","9485022364024010188788243219332254973063184553446003066608060539247153681973"],["6281948322214334056811539223966987149199332281878846517152439118831255066899","15560274591276548936341882753295309033935304633501932886199799789371092072685"],["27978697511899220643550225262437840900358060591890247096029050417513120408523","28828068955986428372752326483647330470232111020473015267330754948533138829249"],["23985485086640769044113710171979629969872194686075180238575307954817488058595","13291359562514535831543436449997851355523173002976539687039670442129049635360"],["26009089863643264419079545854899241887146419788043854961100521478373769283877","14738066186334381787683989431142564767273787222418364646890302237158642730098"],["19012436984200253137764842875063586965319988053856066252691789784489419170698","10596058790572931913172354315571380458438432144206383718035531840244609747616"],["6780817891324488680860072912145845412982059783960044983349551496969510774103","12772037825552842432339540936019269046863903502778862849702418614428910832664"],["12525169959713242099880335640857919291540787547241448620536922707308299295467","1866460528978257096781293021254405004668145440928270910361884226283893347496"],["11610477147559664520916445764381543634842540901844057991342750941652982888391","14814095559080773011623243922642702241554265916211088560353742222851119824748"],["20401401499091229254439369822401878546836358439844614631742952556375992282874","22716102515995369751574133765750129123226445236156326164338668342605879028222"],["7014013491074218732643653920475186357098206608064387941894138314533957074081","22046571490040033328191512386167842488982611878824938676508659707596302253966"],["12893844741536937297103032955746805583715768335649119319472285946709105079017","2547540931907546907846111900291974314675775776486779276264087086219108926292"],["1180901111942146209651446236224698635209302477861105799015617054061687309074","13236714268106482532855940693994438608177955606576428385947185268758249695763"],["6710917861361249910786217573451135868621705243932786825731659933614761784541","22880864411787245224100282527667890184621606500026238575540290794558487302193"],["12546029074752095389344732478167369886736372794052119538908408899275094820948","20831237986123510602049845782894387349295166495483446192816379286517749288001"],["7446708462880981832385353512911356271579476712495920619455232416156693064472","26233784155378541648223443872552061419683826895031415001849068081879990295090"],["16255446973068209862612667886105192958746345630001914297101998535235613978140","17801682127272370256227502664286670050333674002479848370821194069825505416612"],["3954249871273633075501198225682260535523400953940097540633300526789008278452","1740495812699007594400075801641744577512166035148350795884741273018279770497"],["7891647511522226080854280239236248520347060861315994568099170342425128575725","9090440750611409685104833792608274065784991030877645552437482036602668299565"],["14716373492975183969556752588523461265282250814846473333047241247734673767731","4573812704598094707621922880459301081100388569886343700376696172817497710622"],["9813954261549433050348783741450592578964420664901301867808004181115565780343","20686529364040688462673911592543596100786196331844506842616588334145922477283"],["21479840552051382206309441682025138384469635250326781936529187802649890407544","5093920262772592872938244808937283290936969117813606174032640553121692468882"],["27526705373751466966706905768983234441786876685219577052035220269324340321979","7700143017369364290008136231921371832260034360585369778059645674799069111264"],["8957750568677293496518044432225151898411765323489257070709419195485348680813","13923600054495274429632438549698952474607712164287820922224714811981860618351"],["13852310831080565917770028405979842877763870318450949980373763113946754260640","24213644378164948658785646096586810657354209201741140247616383688786247177820"],["6414513697720795082933018148659958979941132727235215538519397469562531823311","25211624246583110779315262658272962485453975833663546629794691976903785703981"],["12930140882414406390997166517053178555287140452423909216487098049035010535775","14260238335420264117997451964180560119746444643492759920503980240661104800884"],["629154488953256813652620975160562821523339896823137210454384814428639076047","17845174411677147374858896551646778964460470384483999401107081562501827920810"],["9549889078065019945262947294520583116015236148796895243374106216002438917361","19890903640500111677844744916682363544498375758664173202296058770356403385670"],["26560852237606607008096615776917627230115251482456936601278614727879540960689","4220173473129288210077377612179294956005581051275722334716594104142135073690"],["2481127647480907591248955598159595481736749946445014714969508822695687853901","19179457818021963558633554232323887895083867112783811110641911975207507494310"],["27052178293772691796380361839975106425814973534816720029052786665112365274762","28925723938333963569440619927288523678121758941187381753208730759996437405996"],["7510049332547178245902230145269170263088486154538541584086079387614946299569","3400900786915764913038260519053439233315009757233963843530423680596893049337"],["28364329045116586685321848125216248898808390443998271433005265886223632431769","7913286728449928358759772601346638726146754095743834260921674356297535940662"],["13678123573930811944142630672377422197216243402358188642438007271070925248447","305744090910682197620087053249953184296077768098220321714305972704506226020"],["6975928419585944973090292801444262816282788553451497050226028230838751179176","16241340329326727386873907940614654801390236470695737693991868172693834644124"],["12323991803289993533802895124865701578308892954815656107016822703623351583891","11346687931724227521628348396907249620710886389087155201880050294212379731174"],["14425762878341972115881167915553391841391659949813672127920177379664308068464","18156056514753061323073130535794676255581599224430173371299154932248678842128"],["20893092776056240152570044864222608073429197339207870871926976967840077044218","6580495451309736047822320389711754349223144664058473343225442595101356817415"],["1062344466144794080082322713789422294206336785387817667092853235337347959753","12735259863352000190447654452521666850735533127452115946745576523115742491971"],["18172861957607397484965325563403431622726499845702348120895334327355823391627","3714896447063789698260593548954354693243968011487771660886427784952624264392"],["10911011018461601436100499769240931621404835386136055736784371512379545447516","6704718076469092205642246508034329915694187133658250494097287586214686339402"],["28495408774338729683390366322119277128879711935989782425349249819937430376076","11850005413432520129774314966213736298301662720329268780251569827487503902212"],["6905876931953268058839532862558860946159042109185664457059857997435335751293","15745610280932291390007321674948346397752719621375883419763382434465994815367"],["3718503898361742029623494433115573145848979430679282142888054844508087722536","6200714447561397379388574364664662657189549456034630443074860348193159346344"],["6074068427087531133982840530099405142292327107154932011666095966759080567008","23144940461551015037396681461767094526915773421099251615173784011116368350241"],["3714091620418785881237844317909536819799026330027777738247620499574630843394","1767375094006630357459023902098342686050760489009443861889968847808815830358"],["14232014080987017389173975540846843755107264093284668465990322936020365695678","23898929761516155482589059282402425284653614424333701658717256849157656995415"],["27023003389569619284961135332567043869235857342593820106053604653452289483209","14200141503172464589181279786064209356076715948244450317454210402883554928442"],["27554127103411066729521215347995221690412376102391475677336204547441170853094","8488098808428926996450231724777069634304365250911162184946701107624072550436"],["23091898823990524879888440566202810108115437861305150245294460585040704699976","22855841643475202333753126390261306541645632347853171960702335676204453639033"],["26581982081214874786306835033082292721036025289399656896389713254345672733664","26711485122015712527652098261381217295809596301879775914803211609325632436968"],["16958469433083246783090304871552477415540235628462046634118290411574955265331","20176372626176857320426673881306434409576586599179816682282460722898429671535"],["3977522171701563683843138950822460495507507851968399510923737706274894729589","16477365218700550266869979046774214130453150572227993858344528168820837204923"],["21421301265436033416084646024348672875985664821303787183584220200531428784914","22343310014890885343154421550752202569144360483638078524114052299827317280350"],["11361001523388899030013339067646794326988019510438515193789064995895695413458","28735386836969713226170604128644084295830472318492640460227649878484963257966"],["12136379185537869949290056050478160880995997121477888479194888518555049482934","14326996270788005216696916063909836774521976879418342822260470625744037925023"],["7407046430712145781096050071841389089680909390980267168593358148515827975948","25075330671278314577882209314660008451717525834511499056220072451660292245031"],["1279757204456457080532880276699244725516480050684073680693299576145326391610","2261845967437667205668464176080902807015316045106889005033942536252927254128"],["15476104144141026653652481310989026612765610060713326797930323783812103230446","25060444668051660077149036407725216852630169300699335000669096705662446063086"],["23664250110027800630584959777859213222252810713120710222891037596586915232454","15775108444837781707358780797036986518466421366006382574170628885863161372889"],["19239586552548046882538459234264162871940684647064927058741818086735849272385","14658513860693337266926118192164766738087910108075432590277747824163016896201"],["26763562672853377394039983220987569571050578075550031569118738249829972530001","19794220024708077752628572900805122686494927222524238804130206220262839981818"],["13958282824740026988235000495981104969611859141928527085641517059960887676759","15183252468768214033191002383116284614493854807475709724396194701353584301176"],["19385585465103429874595476758244079092218994002750625616201750134176022729901","19308998142705556610244125930756846877803657869572816704443115322893903657750"],["5952530421618859842007592396900930921001391616062367114226188788893704742878","28866228052098306684522609142287461460648672719974713029359071427806906101358"],["19089978097216525974583369101777775166364672979666604906001832818760197819264","14852695124601703302239900301792794981440268288788486426245168108522705779330"],["16886521195229817163179720984576330026490875988843622316762145148128849504874","1899396856014605713229904008152958923125741462008503525526696772369472029831"],["26115624546326117068030996694006026986961134163375793641325419260465926006669","27932820587904363716689702468896637240544593039449640346241066401677537838019"],["27424129416695348902977121099743455082055672531898602113949162419080824854388","20925383655752762787796397715591913165417159134920406132266651818503820975100"],["1539062142821358050235174788485604918511912941280451516068655193193223359695","2597713523499098900409573387882189589835647388913603876098340034844530691499"],["16506758648529601758389009037250198577808536762772655931170292338768376998282","5330826318821166284095990405844201565918788495799882910561099917679243977400"],["23066497810230700617089732800500327318785001316683107107283077211979330212692","2938541203581586232611787078006906352577372102158066340407996863747807314258"],["26946719649795793401394028485004070498246850589116354422023919118859390769540","15665981115132451968663569722015615201599741250472960783337789328719042597937"],["1852469354856363174631569110906831105390923559774758282939608564306775349291","8988054072830469355039022809540308838649627449403767975408598785956037543585"],["27767515978684430029831371971050372146334483580011647486324806913820749455839","19186387311875156101599704635345241249780604215510043041886085649843780193396"],["24207678267751662705309701704212967060040895696535906380841020843042439036082","2879675075089737693772988790703952872185547956331681987955838676025383970364"],["28227968897464293226151933269460633175865282146052444404178258907500997607939","492697972388964598012934877420899651218642700845170239794736297880906639515"],["1992941649661550580761978492758519029279826794774151769203226035850482663856","6983155150648400130685775036245613173961813760582280385914137898371502808628"],["10658257661476444544896545425792754201176653191304535010603317924899914984123","16309723647706099865305554666603879897851553662717988938674119031382654566828"],["19731423386140037164504924143943308173846604851695737572147681737218327112966","16005129380353057950059122732033836827329750353018851069842018708414841117936"],["12821329201584535316288165815875938634700435132772741213236234617287988293847","10173748246724712799741395312847677871063689026376392598934212690740313537337"],["25974824796967249809032882432697337673517620222466568639820201025590728159478","17067332098848269904707443717891095574140835077814740666028797165204313316344"],["12534333883198064937091601628311591245614622449413753744066033515985522875344","19906941044383641392300029908705581211511190303471846512352779467795094472274"],["15482394221130853504575113064926735682605527691455028885187557394039056502469","18653618431581363968676666124554838730400082164923673215048997954817569012796"],["9131812615140342632871505721764130430211799313369198705568238492124141730951","22217612168286479312834733248947804908261000206255005705450859563242189173591"],["17810691090659862363508664175836478507340867018185649487745423297883732189326","16547967921160035653068852822896149430625379896083964145828056812872388971595"],["9991750826229762736239439936658261909269967709374628952905191910631492197762","6044504403275838233595211703506187108770666779947900842740394521973135853575"],["2367622576440642473710864092767193784094053521475120186489339835780770079037","14629339827010637795390307482473199832704205132946295467762793545022903735900"],["25373676512885242955918736713018073390178193076078245333340248076252156053564","21301783454360565332107366056503111988407063251131121101193564999320527185015"],["25169078018246937862083752184802705208547556835940825527118678719606608320645","8850224054705051037188378438768873499483992132488504888800322935677265320052"],["26756721817688950401924845147842721112071431942475982869544314552305291861983","13499813920549264467023659096106905238964317523649533556642365090037372961751"],["11276029164823091063226404812233549682440546554988479063586496560153912175752","25676453368029204385930821094725635215003855270684557555636756842134882118533"],["16142944037893316203047411924088575104741419164344708809227647350592732121702","14205495918297639571086782808072464806122503538817161344827121085566555997130"],["9330790672834444449536018109956986567909632235252762692248612642095051951975","8196452997892213378219239692820622457552392156926918598867259169435348891322"],["14047511963449565157550782810599252861734205439356411113778895419447638337050","15286697709602996493138518833590712929766903172884824792992980821399794108521"],["9494739040826029975495013979929979937769531108532217172168786592424318716753","21124345631946126310722337256782796489667491004867391932512694814947079572798"],["21826553068525522268795371322994211216186637131339551230087778201568199030698","9274241083991399369245804286971446228126823641001272906982647637004370609183"],["23545868711692865288366590861788023915568711813030409311912518300622652721924","9674548712864482799849144542632357091005149311083280466550722652957461458715"],["16243142985998109265740032883259388406010527637493945772930241260537869232445","14331625318943217256117299533543283820462661778142026555563567616508231321593"],["13180693880339728062362682424454829410808398286202001358445089331259323342189","16070408820091722065175185666278132584622198705126392050033575994655708459039"],["16991128301740271145682793569762025422127849523602747351381299893405617233152","20853494419481039197934834226434216599892313481488031713210357731585437435207"],["11144225753548773924893496654591735144413662082863877022134443721563567251889","17015339808238922240689401973309828252676167228855786407536016688109063107370"],["11122939802507867939809180100322108403980385686002809907716677533423665096739","19280256030165532581120415016796304811684900401993225061990709565607732428196"],["18741304703747738500483134908643292877393923516340219225721239857366442448546","21142618843433216565479350747202719667456215266086686774055674462066096905987"],["16935597355532848048148836296888820978587155399796998652798735612462703847159","26010496503672509717058395920147347103044072726867235418691088816303817125852"],["2949231491968107217728437329445201634225750124346419021125997956619552908929","13615027724885064185368224052114334121249591094267870846842383664507665689179"],["8059364752231779636127503251820448503833645155791116588589020566083210474952","8645000869427417413823810897725761467849247784334805811202759151253634262732"],["559252394707246206679784612004266685053616712868386262736782751224802120454","23729054488970951114124931236203107664480063086787031105181195830701359014311"],["1040978816971251682081537772270898770744018439187597080964946330543329646884","14395047653572750957754703142311250720225990920002645406453848350162178532330"],["5926906589611447109085206415734703292715032180575869356921421793684757934281","21733035889770148472762728861981076027852754740132126628894474128549453869412"],["14677226182933276975149486612275274891279330645117464424093734432761765847267","14988907591421307285302346334956911265087610318762610889623443689318643623041"],["24608816152371196051569672154222004181199256720165924367068925071049154465282","21088808816021454497360221345702389991787700722911814088559686349633411493319"],["19239511129644848137389022615851360302765533443684521930968412214591858608711","26177051360658940459321962767086091241334993210838049258690343281773870410075"],["21758305351536416360379683820546213124042118471374022761597180996271017567207","12917028564987084775776457422939582179947521654152423336775753636084770612088"],["25181104084892454695866742142653196886849459717052566222183040156265450566395","21769101186602128636810117187368869455346364635352737326706457052270746491571"],["16198109884771346538021691735349302811749436910201319707588610416496640428726","10737477821788165950835938407039163652215500886099937330176667398719533494001"],["27342798058305265018139768100952029523695767073838867668710103182531675478292","17507818199506756095308682448196824175463482284801571151178786250577370644745"],["13647348657171807562520026400353569362395572484462980544013471484481797335863","17824433095604816491645936990782353568889885214894066743630635880063904406317"],["11586838812712656622347878000234765241011486262957153506577590831378120998964","154411971638521433119974790031778267017259291012971608458514181264757234459"],["5829703539980684163178169358401565826422208032110597248189463975340411393337","24349104618487480349442670269389438968872001898754897678686436082984561198331"],["26030694606569196531455227604055697491537936618525958586844132385394456826785","9092916628333406782284929305346892768209296083272186894282959572393170939866"],["26327575069481843609991929241556126875791854258884641889331881973200155867544","11612980034624602782802737227641047176635846906507578105820862540850366782977"],["14625525630199485332641520223034225492289711762147091562976960708777613435465","23876815914857686326202201925561187669601559071746976493316094079427028689982"],["19883097359985214068499261459167987931293326617456475377343398647673052029027","19566750768128777435471852132076902921842503998074946012364954363843137636738"],["20261719763737651987974205828324211382272503655962499074453146894434961744852","8466679949788443247240579306017801774601476420310465647853494349853616762549"],["25518559023062388088845782203734352085711247330418383114259570842659999165334","3503923113880187040406425096975253999977928864750292992833070960382721790930"],["25171203253000772691625627456826824040540625002249786590343033580567796644257","25862047308790730048639970331213012044083664137023763233754293158098745293953"],["12615289699091505195331949472571956891160877903570763724505850751698922726485","6000558699200622937832834365833624596402458637271057292505839464166305081057"],["8079852131252449994480711636319809705328606381339875734750835637051447488016","21383077213905104835543408247844362191019715694123308395075984542510502319593"],["2030793384309574485323530836531556721869661220240299256154175710382817274790","6894728450042349075715405294959858289249587931627220070145394154359856284663"],["25149693321651649172275242316955841106702261587868885328622033068531948271677","22209458972254648419885904660300483646785066972251930332923497846250127457261"],["25983750726007533277537906162871855768902724287118587220166961746682875124763","12593707111892753125921356131112569061799938294011949648528540196178414816620"],["14775314609850039679029794030868276625621589639369744173897094907499783284052","19838771508076217123577351224914088243733777338750083359812985224054012044153"],["10614128850210125339319353888463838731074983794005271208689826000159255713242","22898712805538835116497547746179082750088401627773369953090706275481084471393"],["25095300810161271654291530517504267200365522638252597903709119164759703512034","2601652776170807140927846784191941817143000039170214388900740277129268620362"],["10487218733945085223288593880718521269487619439097928970991191920628528981651","22705832765675488391075262022025460174192390651545302661200161619253610767112"],["12666889552352033998465959262278917538021432421496007444418709113378159972063","724620146324991492850970570341820987927983020584974479439275773206682918867"],["16039303545532495431475621080567677223925981177730818886565032900407333342469","11246748690349511255822726286992193909055208493652702252891986639869133376227"],["13979772715562019200398062679940240874678756041779443083242808045471666621658","4100140924306095049900763666028734368341858927517828728794073385746575646642"],["26970900318959980695833413254494818447006693112065477448918043084220718892072","350361784817497639277995358192849656286154870725325776549160274886592624245"],["2424246310127071311748870491717112581798315487585862327372583590587597080479","22688899236156534487017096573256080858709183960118917374911585348281734396587"],["10484348276914975950869267162721019379079985909539532852971390714462125890175","7296238379048228291962215813161480969073655139164317658261333801632048279491"],["25487402634413212524096453621776687295968052478413030137014107676386412359920","1960412495627081564182401051394346090092809496701092880333529598409218090364"],["25875254208420416598004464172870534221642465523673766886638185165420077663781","17785978347945247220208005339396155997630709570845155538148552583694078109123"],["28658374554713197115994478432702709430364397925221531013047764139359499005712","12091240493216167455584372207811008783182335275004985041110917809443354296516"],["7182097141141004846873482418549516287910085187848606843601589748070047507437","16569038456619316925263895644439824675787533298736873324936461684762343328976"],["17888612771064060478674785297387014133185307199501669879537244775476602802692","20171907750718990337076028800368641821118872385296000439810189464113081127210"],["10251340805503981963038870878799641908697431723375666995916860515849940800892","7027451339943167837801938179136776722467652725729531042897250022264576143960"],["22998310079485530042131010828101604443326327009316764431010655881527493648972","3488101662976427655366690074246452145478947045034792203855826739578231436657"],["9351393105267871490855044416630390515224676558180289675778912396055079723082","19736565243667946236911216380363028095844013195326163296028950703343321225595"],["7505830304576653392841997498463408166580377480930987321343545940822976614433","25971884063184454260465872671762726172664847113037377722617914551643834048355"],["22646216919816680414929960257072933286912063055907405819254600050400141455282","10320760723715031223591856998942370039562108322056120021329515047811184007418"],["5413142018091340907921771891845175773443216685414225559254538935494260981677","27116931543990113078319817168342880168020724832858299678386530376007076436648"],["8960559966170561402727107195071928710508135286194482070673240736953136506069","4130964423373873432197884721823704769029012232298142316597352208549108241758"],["26442952357828144996550799926487548730986109296438835223122223393982572944123","816776898026261771899180494612987447229431154658375315192763704641244166294"],["24362771467939944019542638362937672500572182297654943588025153442256750666350","15567377817477818361578004730288033586239516262855047391745922812050272129187"],["21314354658353969873399487478998455826060604982743041753477901346447925559732","8351084634250602995863344329487540256566469313378769287578337641762903960772"],["3488847580209778833683405284895720377050975632763514318695454238680260680319","2969411649429861679645716335563290409810200156380885291260511343994970192396"],["25520305024094139319585931630225036555317912027954534036574590319206405156207","4226119063180015468809207640373243691528790063112410352556280937150710429749"],["10273559904766220372474228971852217159174243517366011643545207210528342664169","750136919240385758157472494541384914207076451701102581203402922432633815070"],["904010345861565670075243166159999174310867287411411544951138435109217480283","28201567071123719930220013093433165819464230132742451134504135414799761227795"],["15515322616666941363145695888084049444927103479557191136055026641440520050362","2725760520966972642496112351158314121663084520213878429609348741865734766730"],["21487860326462172177292310059261886553689683044952105372124295313402253135250","22517006188380121831421243949439560348981333276254291035335240960428396844569"],["8497941888125217033269255093391474586877708998135224373666063020380990504181","24886843060822578364890413754704723572166111804492413424372999631748331531172"],["7967246605746144653171990666593813539811233819169497536174108401543508366086","3396877506643939107508256748712033297226437153682101743879773677992533377980"],["2129418290453947444601714540617356099973881424114411279019846296561818253152","24268692352494058353833163291926014030566294864887397785079730451999868840299"],["14128323928762141210064694888548258401771887007173228094303327432813776054655","23294221225857151104083812290988229314729329958991935437681832970103123592187"],["25542328760474263660191218123474019960452435756860842661105714356209092153639","7101790613242544225549053805250504516273207984618839894802993088285689673387"],["7980000317603555728562069181058583561943186781337922180740128915113841407889","10950384646710309683297980606475856656307770998819237905442009423863260779938"],["20259337799481597326892030145808485353368267645050989396501261153174140378811","16679274958843489224833008949029236032530723673915844543550793611951167804070"],["2921865908634604223745783470210623907748170716456042667640455210615983462028","6861616397843849226934252970493705188626815545425569811146420945602969115217"],["19936112676075254792082973287439394675525044642860819536414143351432154822266","17794487246097582214168447824706230178955221072052045907878041940318209414221"],["13167432755767017516367663061602908014136236072572320932057778748829417754948","21432659209267361374797943011041230085633110953112151880217582115148889453881"],["25442525059310691650558232856747696256158118250008788137045985685854292944902","4125988482110920594755655768205181909172317596711169967789405976556687946565"],["25878767607344294009224566752374811583395977113629105798149888822994011959428","229026868731463812903131397760812123701485671400554893563366095331376269015"],["16849268869069639879587049461968891089996441888229476613333103052298835509598","10901887523360977968796188455739565083300861014457106352751511162523419782099"],["4011429007357625276983210761962960142472373830589362543656819630363729438463","21566195221238589424068765884768129446445558586566555689680135087528728622507"],["808136020193233494794411629541548161838154118593577284480964787899501576080","21029761133201757180509116935264759778970196460999046981998849027717421336801"],["22446566401093667580945457081757634368195271721117352706534335729647824548202","117489576453009755026431234944180293325127788112817575180565972292050589663"],["4434931767702400157426932708132847508933025046070832170185426023828258727659","12758191242801616913339098083636377683362159701350226786261424635305405909442"],["19805835994778575494531831927515287445630335630757018325119501296931144519011","10598965897870940038915671879492387230896841410120327929200633183472565910745"],["11828840240893376821563928850663807186958458094502199012353487849870657930630","24769806532750360866204820328160899925590835222043272699677827100051014475312"],["4925404312765011777673947115451769398338134877987425807475589018028699851740","14469848110278232448285900838697265776664509866205358758964402138863575828686"],["11930223458772009676897910182221793614852740425743592756796087875249519619243","643052636411871764938198446673062962730864146544542101800513456142819154193"],["22901437003403668777955920006402289992062938099463371808781983718289575368234","16525606364072699154455146627678658005105764677803051517961388820977737862638"],["23269103319062975517217946465622428318444182427613210409758489729412496978372","70288840902223143574165284662880166051905087453024498589025049375907360991"],["14874176029850692502145985802838498139131257650517415562048271808706480197539","24095254714519123751842889950253539449921366341058002297332565394725084606091"],["5023547361214548042876969675264441180650469189455689592285664493036477969395","1913569156261233724475303138074573622233133541466211492919983041749032595226"],["9463160365450436612624113284595252356564617094747752130367443013343733393182","5288825766236025498776391152359496802229027371321574099679362489810277539517"],["25402095468142603547362451568511154705805088182005768692588370262488088126904","15843461426779302981611462917549050041558196068014941279071871791112554670505"],["18859833821305885543209352377619672252265941597726392382689106732510065510139","11625400642184979505426547236116599199890380902334813599616999917838451772603"],["13688139589235249115477302077444132128407861089888664638589890647720674888169","4666543564523003035405431559822635367347035543530347016337163568542917323635"],["7512731173825136057350943749789085456362385141760668801495417679224473457405","3543825097578742500745650581491017750716385108529236404635616175673574441926"],["25909987896538284874159589825901520977506636694127312451276114648107066238639","20174064902091760402145127354374815474809025594364338257217898095217404214127"],["1518035379484977463234881860201667774280985150360446722296645611187116701410","8493846990582808305909904448483145418724483390938316085463933935179742303802"],["24456856112885124632940052612455048452509461328941769203349604839988345147884","26288328459193796131041630896554574412100066362012483543104828377547414323694"],["17746469898682060079947314530966677860416548035967579982465591095062494910258","18544503599991989621146903209464537455919760604096925397201876185230182799371"],["13142307839494770068057963252203940580514875048434164409139371806205957633975","5295901206085404752561749860733044139243622209586838121709828229442104441105"],["14270925341321347728960002934831089020134559220504957859298697030149721930939","14353153306008633360227053048268048595857601775883321236788106317620330579866"],["22899432484773857981655220177108292182494062069152456918140371577731906206426","236029376765911715393224625446406044973484579313451238609674429581501398176"],["8821720933843675727206089271012277896721554124117030184670625375371168823327","18538335306760013708257045389369708854858997720443342562008747700816368561773"],["26960725996924211747211029976847751159758931771865050851557352753783497912748","12685311395997732462198058901604674769541653996100190316127171959081038649619"],["28319811356689596744844678482883887351349808696694164603864919075840453862167","2778484516629523156396524522615822518453792967507303776985796013419528597817"],["6472674892149681831838355250353568232055513301125371292845490066954307450574","26204310425530143800797528111177808332622266343779270963144094556404801945735"],["23721663834428971053200541803306382359007063204797432138503495842387223950959","12383568567016225052875725813383484991804375778958402974310217852401474309915"],["343691389254396708579582773260282232617326797913657048537732534046462519106","22100114362950701278076566619976975437011453597322006270195492508289995554734"],["5170130247521162885244977224351176729539903303779431720186349772203318565569","23299196425514693285158823676037957319493399613643541462226553110369301911418"],["17201818874389926058891945449763004960479581871235957681237447384967960163249","2563301279294104668231073098015532656728906333315915874749345421201646201437"],["22397023275145719902720406074389666541577692643874276245677646757309219777853","22982907539164266043388729873101199052109754549512510628980628390033384019215"],["26010019803673590292928257033958564696176321659153669798731852593302393976966","21719329846527654077001288891981437094182868519728271794397489504798341433884"],["4528803486799590982370283745656051486444977204791144285654746038447039582950","404257716656703532200408645118846916416880792131336772047303522995772735307"],["6730438392331186854264900393176560346471340723567915604226356025021860408817","10387837469908087984946857554305158729299065884279405980834074033089217682411"],["8029301037848301101642824983252142390556103761773617550670333104151905819615","7803117803677725576738064255541090452489887342659353827338072283082244352589"],["18567525371406637958921262133737820126230460860169437208763178730520211565136","18757935141947950985819152418367814241308131544800195611031133475545614864739"],["19908141432142326478053064632409251942353161691724025573913827510919466070720","11262237819291732695069866852929475469943161490736243625220512971448807082315"],["14667765514600227440942931011696818076813868934426824800943315378112944731607","10323073450533325584790638328340027198881655082430184899162679084329474617144"],["23005698998193837327340568957035928907419173000212706836366575826997375411941","9967104206963865593730756554443685796988685150873231860336721760713037851492"],["592002802432662709018539397293413682382414477578781698720987034893706767602","24894594749915938357030666837483488953126854069469235053357386327882608372650"],["10759162112129018599330947932458750220489603876993351579619071543690741818753","27306589790012230081409786355783678832232874206876384687106508160935321398051"],["6029250701408685174007657725864507249095327189516503811399992205985020043428","19017576869879325593998364907288788708176003066061005063622202997364775553158"],["12882642151146519195293956527894758956103245728533129732263419655352658104332","53388504500222477708154147054247728277605626675718623065746434291082077509"],["24158754573011809733806713877049695718943447416249730608842776055327118259065","23378122608569806966804732603118049247226069476606473711872304889210496704618"],["10052252217209271283566398918975337698144365461116348716011964692437213792172","11346632013488285643560424358152918936443497649364944638446955405224946632935"],["4299716217170373603247913517726338966483174249515247095512479044466916318585","20768227276438267175797707676387563242884434437629169290452676736139486186393"],["28438621520655872639465097405248669439905376864511547218531550236519337961495","12441531293268720494194940798653420845918116588450888546302426316249205040858"],["17822350466731727811661297657668355406273807827661493162905298212917611700704","11488074076396393299513794363165006455080734847339531248416466421966163604992"],["3634406302556652412807033838771171232902678702622095123592431576668006715212","24140101611143149308891109345429343216192331963147363085971395659233133067759"],["3725440062440722897635371359407832089908559720060603454976454282505908711801","16140750592365571012966586175254601409858687737635574048100627872476619949156"],["26493318999669172057492449289347975874671989847125801351280913988243981590847","12410334607611597081993124997525940619022438429595978127707176065231704339979"],["17689009872949577668367189601240897355524446326003300692232609779599236774080","12876553885758414474844495138067216046482412529071994374048919610216444534503"],["21822649449815834312602386489538803597101302520888388542523772170960647937304","23501047772086557502549613479545090618821907862496622797018042696908675475218"],["12983806917190940614839351829240541098828519624884261674086920988050914565723","28048524204675643629952603228165061088323359778323988408634454725583271166834"],["18350299790476860238768998315411761977542639604686655008117462159608865906229","4653835677434898487469835812495824327182894932698847489117303227830720725557"],["10731041716657383669563321370817766843162989670016920281527922616076591362236","22919633061183070788526795239070486645968564303848698533253259400375150972932"],["23892545448098064952082320753800690340286908047074427149534237730177751307692","10414010489553281535861033304508612345371011502673579503486880878019800269990"],["16434866414814255441029524699947393320159438677310153928423258274710023930790","9944456975473412953100339265873773504184561761318399385488106398357913958768"],["7881920068417708471503885672869501851139511312140764262609611248072030610270","14306735031558604514672618312320073237437889811113231177510771707128061442051"],["21567709087565223130417382489851874333483452233298177192194582617369540901890","25471935744090090324372115436194825481721402610572883366779653915916791190551"],["27757435348178458281219675314179997944226965460037604828038336626550973226111","20355606675213636147361926803399492693634461868720634387632647979817524713018"],["25038076147979005857352986330910717571664885886988732273514416536019353238516","15608106746397920521566531621238681514202696796883751308457339057139200903293"],["22908524617747793247451002749114693134072286859650041515708452248187417926393","980409428882995265175128321912708656716966811047358026600996377451778293694"],["5095134264187148521582952372577616448221909145923527054194588222142761366086","16694654822322423509735444429042217326205730646294344786770114513492591778894"],["28838817589378897721456301685701155187505758648875457024827243514647520542141","18921088816466548350907761297629925453843862799624768893990113999466918533652"],["25233221945596378803971800495809070594931867063958336225625213273698966535380","13654249046692995899659391044806275569925279572995352552109270823125263023261"],["11873295408526814136671337115466321786496312195012613754010399433264603410471","9789341183417854607133659489677322676971418307183583925770005540149404835974"],["569693533119033029097292043375568827577311071018932417167240167491237973531","12137056263925979126461789934519667390969471373081254718325701485523582933197"],["20010864998314511334949129321662504349625639644502251556995396447252922598773","15234141060878443739189092765367526894970581301441257249099954822548057287218"],["7443875366119656807057904419300221523466652125445796161998584614954089858205","20286716069032967616341071938864832113890514322425691496739037994870023235275"],["1341071661972763134349346052348600735981592915560594008549621746995406465974","3644762281405238509606889781469566895391334394558255768665612629689734802280"],["1483741172174586047297645020514446344609165000876063221162807596713653547566","19958014114973739870060658916880334943362068964358048712931281350106744189900"],["7956136067726725198471779444833931794097589469796204315765381965572850324604","99691136884227927008432240901311346024291213668206039695435404634001214877"],["6249082824174115848076895093084848576398808253867770056360355313085444850442","2380098375762155685799751130218374509799453904901513364993068520073244104615"],["761524171822823504201833053938832608508643815464875067126825147035982628211","7617917372636051787593530189264621241970838329896597305115683232544902845233"],["19331684273376556340034139495457389263206963758060548120445943501572492602274","15471408399624358094669339091576277722593027410232316406703550424078824961214"],["291351319333925689247450108886353584178350877396711653930630382956796370848","6807433777135730701743429167139239742535734984109096162905713964791689284772"],["28895429779662603580493336833153728153488945433252038531337930565323261056435","3496378808843387106704798274050507938485140912071052928157090025799912583984"],["14073411396247496050650285157358963515593916072522200756488719997032200233873","43582113456188665007663203649264986413069601327728035606378804537520806723"],["24466275351171223972741971223301758276205988333043816459461274832950789935127","11347737025305941899535561375562481829164964917262989654776509585194854482993"],["7948505192633542391969387460502275170235481297508866435611976693488651524713","22356608939727307564316078702915568694896931221270047782365303045720720241456"],["26260235515604693877355908684332213721669857709199008437306975954905734590675","18532823475195624374176704908566459508863610285466058739170062030433637300242"],["8836824638742296411594348733983805250840212724626237972504923510239069502904","8881807548914347679709943010104516725646812132714079449779847698118346705343"],["26446816486222178116068802249809368976506986130361841327612372357228240521543","16469824494796648113755991046352824664492339385760631318001234576945272185817"],["23914919926247750401917850307101941938295936745957353004147374496303151802445","23764313763226891241268629966226857811462042738261256480747759148125024155519"],["9611081737583466291051457199245558420237287330061978561932129494013806179583","19805994529433933484433774775358435777802584970113942557411777594327243861093"],["665971869636231653414941399902741377561745598748135967626866876341175744853","21493348206404490323168199396972541678540447879970972251193448338058356216843"],["28577110954634581574098922753265447058754868109037419667518113167396971902365","11116758076849376176655113278175055813991951066491977479036270278747513595510"],["11974147703416620170407199805972165864850764282397450120701905080737108429917","14553788338779203976293379850182043240708270398729286783259423756756884202518"],["16975626250165426305644855344406004175509598355595449917573866434978180338107","22729096019549279503455889736221185572474971038862004362362024617901735267571"],["21210368451571214121548896991077631453439126774989451015885427701261617568345","10466873988443969933721607444097594588915862675629583434282305425967108832418"],["17023148602961132541944628252518191385428249870440637368704907763487643080779","13145491414850564251035387310199859315679088796067836229048229501391599114943"],["19729955788055000452531830255046160082467191875230386140844419603414397258917","8550320838030032199416046745163588733523216759507397979380230513170173699859"],["22645216277579663572595130230761325747219802621593378338133772610006284304856","27485029945989196918402092523394095079007293924413072706627107156132589111665"],["11179770062564320163704611879323538267437863323528458070929078358473445597603","16066212322375764256291510311998994300827675096750205679794807093074292117347"],["28839719720825568099325502424969142372825626472907616417493317837939113645362","8817352206967932222795278234041241802560781679801493976518267335550729960707"],["12096442654127463798950440684183872973706316400196066509143110395456744340805","8660456621374025484619457308282925155767044779790403677104300191034311346235"],["2921347141789310830621812440712258055952526844753887001946672334039108866823","8018422700512894647238038739752005067680917978478503819341901567438472980524"],["16343684910810227329937962526992756099750850457638111865452787154713105431444","17794693168189816522438913232276721402735049335370303889156046853994407164951"],["4605458334934563318841123028408243583244895074458603577642387188611888988134","19479273497172572816438208850376713022259455106534292822330112710807523451892"],["22935567334731837997930028418102030833219459782193423403110277514321224489496","5712971055054160355351462627775937387973217426868035270733429269909882631196"],["15007397072127230748387606886051801604327148719752302488189596394594446136297","26804335272601007055469840878554088280964530822817586989392372068865755046102"],["27443885424825571807148719491397925004060296240827846973094184412653929562945","26942998814995480871148373400004749147440474470653697787717170852256429582442"],["12480326944057514890389447081708074846497165713826168044179073566673237892021","17242298687894112827742748835001000994973319363672375716393689492038265072576"],["3763690132985697328570421810814961424723552880229653032327268968219089642187","2928847701554738477914615612392547153126490239767958833767473443154138275417"],["11109459449340592651708220955649488231386823089990029049333966220560084790134","7400105409871728087278987530569660381263086887070259433322156371577806849986"],["6785238133540728052614915003334521910999235542003886891583615641797770456587","2777203473649934433818489354561386229951955544879227652595251263775862197738"],["13319711218571075915255197688218448890428674231607551633234774084428803988088","6307237442984200810533598990896298750425870551828260598658647497626981389900"],["2908971314038249029700079582493823533079144788180951216607364380031781709789","27805485493258001753464623261364945739872636984846807960500524289364080996527"],["26098435505313023738997501247434050671527181530125835824164654924232199566721","10743360443865335833255274130826093488003957381722914331417644844279204863340"],["17482831502613123094300674569693892077403038099739186239186103621206677709636","14312079799858431969757856136241755845704592451824413231203753679437637251602"],["23994943094563051861324044156721998436683344733928948123896935674336660335396","4116467082053890878041767368805217765722161320288488696626410633981756649017"],["9897489692032715495185298848077049355786871433066096362881559414471001161862","12233391481310551127299026128627168641693315564875714807883419423766933016678"],["5037876736408986000204850977853924078040506021581227531604476803156995203850","14122280701193177850045329727138046878326685047959156993396246643751252455772"],["23142040307098466574354402562015909212452597848824607118603604184607887690371","6486919825057855780857730948947565151829721015932286058689600099964939130385"],["13335716437288295602934577120093127738782423403860968418290097571857992930029","22736901090926296621867090369550038476683906841201274939813266935648111882405"],["14053134572921286013848530792389445129986948157310670069570535018263694288499","4273907896847981222221288842704349369559011682107760589215775092004853457758"],["6802317163733494011177578580998047237133537725147707391976205176327334962583","1460404239131577984778292221061760835201413894280787220395171545000955806724"],["18307643338568993245952459001004628910401435381014369603197979659545222323595","6014737114943164274792982754743933372117022625820808867713766846814355383088"],["596147061055118820859208387143774273950813735267648589112333024389035093906","5690015979763633117486185910400569561092979020914309228747054169402728079064"],["21192602852389771422055526602244490782691368616735639339310737319027329303783","26436204590101150897775301571706610940449446432626824870405852148581735245072"],["25115852142862875440001270649015099480753715493184749322908313945618156090910","7700602290617273283076002651229165407688661716829115430649958748661393309152"],["12927220143554847674798620244808147686346361601375563179410714026544515217783","2665116928891289067537668809737904995515284109652924522963118223139684838425"],["977218353050502855054343338339887273015914433581154727612400155702034935091","1908286967720022885590073090891934363185112093268253458530356234053459211522"],["22604301867161879058266471284496041073493634909484598495188686888350401563223","12922522840525713985231898323488351379004238541534454194066942692675637040608"],["7105186601045923779294485634625224329977871555457654203074319066134606430010","25250652762687703113078920479176299251828707609221195528211365810590848175151"],["25523754367625639230723308019491399741276291171308667041934149633634382058536","27502588311709724868340289222541408621680978689869303563016217322319944942627"],["18436419446466666524175540261020087787861214947099198180839268961177618580654","12592599222247194334165813065494538770481605722363476424772366189759816119300"],["15248347359295939973567176796399470904634191285064021329647477974798604215182","4460440810111627853904779856325877349198707919223633875605024830045877123106"],["23995363852633291171069845072899606089355845895400827116157970162110427038363","4030326413338953452929212385763706321782974874562463980014674747172096451825"],["4251033051426501027221530962356829350932371887107897452428254018991435173290","12284981772435899704398726244399590081748792696394310691232546191821009086622"],["11830787171805076732799778933566372514044307769702423720268894987509825534698","16391160608654341066895386564245249439932316810052267275454874259209313821706"],["7352748302199825046498931954358112594084196363207127522462619372349267440711","19365603794309069605189711991708196709627508587399425079377938809984058846071"],["25558847807608014173072467207864819176433743059482107158085495282071002450006","9531245726342499373976548918095151801001020300728152163290895414045278203155"],["17625258996787112438948802321769063340326317856438152481804252134361796060043","2807882604619397871918485133367386379096820016337676073910278923976154743321"],["2999485139022621049682623270164147391697947472514029774861845533468431272250","23526605239731749970889366213981192582638949248070234105506530399695355259996"],["23108530182819404362636861741355129420501668577260072106644008296169848508040","13205988809517492272896734333905781904747264449987377566121010424134635200356"],["27405261308337200905544575855114695292975497841706415819906449360398429722408","12221369614637586669296091214023781430791830383694930773371587632458758022626"],["7748720722099758965084940462784332176139721358473974465963990681854008028941","10625351878278723426881347049307599625940085023305877001458733534364581854257"],["16229165586226292369139518975439664005444638138499905078876121971916801050783","25778449701231945287653066348533166971218927666223986506310103237682478794299"],["890409026469096662456305036975357333024957692821355818597762816022842724143","26907409249472283950873191887504546929382557298139721042979247665098876141820"],["20706916372546692067976191137335232153528812102978622011711056868350827413168","27652356677560842174137685624918190222602230574970189831004350707822561265234"],["10282319624019766187425466661700255619686489135228112628294794570359442211738","22882634509823989343378771012783931390550425948159017720289715856668635148690"],["16263362674423993428440143625092139780648860711703615913612419782613523925608","21543153670753340419290246593151405039857865283070039791456285462818095012800"],["2947173827321688080965110335370407291115047790662791265569721966634793767642","12318190777595321616623652771302349711069434564065842915680644522981157916962"],["8382122498918402829493724713799968993120767382224169676130647099530993879802","7819694886090046724010622845334956862441117599835948378365774328613168073482"],["341082086570631002180342342451146849514231618951790295094740067207486712757","2955836640391089050024591448123349802262654607007568090350327919038328832587"],["7376092830941085621649321871715988106934119174572629756665018361368649317422","14244114185242678520194143318756404045326669642970566504662197670542766751919"],["18163630009653806339868813357530833397789725426994973172906896062836308126586","15927805131914060295321993300606618469716959899741960928973006289177094952474"],["18726648013733160380889099179413556813258327434733604030980557117759897528813","27557288446095688372719969218017320923329682498430670054155471625355400276101"],["19740150364588768614104644051548636521562742563153212317400855017779832560459","5318497746259775803559954478120261826659790424343246792621918037383514325724"],["4426847270808459941068426395266999747221907206332768585908492170350718249793","15367578473009453459060395362769976177443050077237716936521302969483887584077"],["5887826153211159635442337461052763919380026608045559346264319951135946098916","10925471890883168174127472089162834799468909514606226180745089798100253981835"],["24299764679360077444722815086325933784022516755854806847316474324417812723342","13386774166192234709958877615925751075963391368985078713266030624959301051927"],["21708282518676433447339095975109489980390394611317553399791886660846544671329","2899419247550035565048239569294999514095603005446026884224124599712572593797"],["3160402557308983379426380897550874449135687307441744293743579075640671758713","20172044372271909797873539463257891262730480131220378813257535074987958273573"],["1411625526892477195748767956352411398025249084786544923479156153254791106859","17235743391268277002036416669241671714461663876375153866562008231031075005344"],["5214147651870556876836476225313166935443497037350428715194977251214018195953","5459536147442817571813487581492205331480885152149254746469798058937695161880"],["18346191691526016663751189133034274604164392908493436481625971114470473196811","14956406729025403431067220234596823978390025408796306543460394089293074873852"],["24903939683641696267693990211702885027440760920864586314533015913967066719669","19455093311639947247692559501938393798559484739325469630476614857236722775382"],["10349785583562222620160316337107688599704679950437911911174491693496943519760","20110184337771965933313303878494062387069167005472895356515528679353852999041"],["3159857780929744059064755442134620015587879507863049278322668822960188216341","12794381725549725882105312824387491581787761759803820907041044573973253487967"],["21987404645809074492784380631606445774244725438391521254011097412477368862499","12642852238580324847202795557216773810923790141867242804124647783470161109086"],["28873886045627071745319604072287331429557638052849372183293974436941247259581","4046885132318080696059274098675750192752736900864416587799212981404970162375"],["3168061161092300785429410497459749718420609960326511507985466207869749515748","13604884454706462071045257887690253112387458987691815315229508342239926282819"],["10551692349684505351491090805039949552378738997544669296495198255244161236463","11356654387874858263387246860225025555168679258962086421039183776411672781829"],["27651599967324253890943356620343850547369294210160337359732891855002846279380","21188925497992631490797311675020693107990833774890028406400426831697209426950"],["3278403878778415830280921604930685802559088445051596956465280179931477069035","3400311768966654755416555571373387749415091407420768694689899423991799175755"],["1850843821179825720815734802091845812979080079000259459403525537761886277131","24570374237670810548996279207837004802789437289426333723386383690399925583314"],["25298010164762415688679562177786566321406911932096939976266044659668413572080","22460150372009770072942487842501910977385760485397766326344739950540635976581"],["9034276030757463340094288295277445207285641556971127194709348168537831822893","10761814457845898886642950098623862346203732399773935995239532175842933179341"],["3754956172882921637074047940734542870088640885451398096962516941547669061038","12266511461562535734911605850921635118803797836176024923080228408499367951459"],["26692181252314152668357926599149248675565833360055724933580102213283246706678","13828920352275174975925037282574113613810587304718874485557433277537684991344"],["11937034404430782232453538774305406537113480912513699231407728969742952370147","28178195081716158274397844466582127365451004792555058033817155221346889157666"],["25438065222099965463385588210873598253522217895017386324701379665802292533384","25415106158863555364500878648402977418652918295551718124121412464653887436497"],["13305643143928732529109855471930130176935649725296889890088676568149245711271","16028052091353062116105368796155164894044261700365425739763480900698047641979"],["7645855932732882855493718577063570915610070028684549645939361105641515359020","1280219946818325592165042851467175665365025539895973131278449766048210315362"],["5179524307759747682878335758334687552194730245092173991354358405030815110164","27216586449862452284360289706411530760776560039325164651986072345941219144308"],["18802931451832107912387456460147340758717467817514999394265615737412607822207","13436332490599275343303771154558982603632524869942699372588431107570092515408"],["1560501440535793666059996524293946709969880755220974654168782963806409047413","11115115642573822208393474246166491133736975670047096889467655308609743009427"],["13317045163297673431827552230679843947433334929461046518317885737005499488900","26870231166814799386732870289559873901392298836596350750743921536868396751351"],["8107896564453192125536774689332693375056364006734060144650672847145158698396","22675386396380952608575821407132705888583838774819229959867921370840506424860"],["4133420062126204784530529643645042710770790064788111154724764306624083291885","12176516952045487914119468275840682571129326699547206289430222364600032338556"],["17251449227646494243993067270960480599251526223372730399237213794789571735633","13519870879623439344280771152095657520683577315335654842736396240468605008274"],["8034772666089195614825621018211771964864453538515877320433385783665882980368","5777930549432917091579983655716144435208405832129425896494583605399145194654"],["18737002311911208453161716302407038461585729510615911885423682025424332242167","22445590599005468925684716466290840294411690129316824800419696722792561010959"],["874842367205652615868878503005831035239662913407934021495112507813158783894","3445084837085405598100251788228863290749682960153237499294635058987601555630"],["9344238554897200530440333926768259935675422551562279731649599065307115316328","15229176793937085836816020589434497317466975341551153024179901679080766334473"],["23151768050963624234173409476662181076834692799909998102963429633614417120570","24106052971854242666141296853555858243525701513389103095275966109110330482529"],["15216580047977854058803423749081365594034963128219021175185459210349171276547","11640294196013245625562469868795842342224583994424461720095685126055164848342"],["9184298708070334534960484636858996446373262197756522124804341873686534953756","22160823858140535473344394164485466413892908599408306515383548994896932096872"],["9812973451260379275992543217095185093098890505765625474490540022615404485076","14698546409289024870480205733115811002467495468707940867754527531335215992423"],["24123667545572699556159055054607342530864658210307875823423390679884175984684","10609235860005971204799771449644071602247971031757888684827961683565461317025"],["3801083518749363531566906325580187312090073165374333384889143043739756888863","14466054252457845452960142546382297730673866614377098887975765438876605163300"],["3481876652613481995669671634996625557234123699184329872035504120398790466207","6568697124908425666978193772375992423855427873364920480700287267109509323528"],["21358499513375825265896740662360376787975036337946391681284409734482844823555","16444774700473670860320173837382499474194733045436272914023143829998921292475"],["12681641904112511148311534521112905696120200411222457835742015356899513847062","1782276016535700245429730503217925365301759752144596582894190568117967405373"],["5392948738452777211562563550207889178038630420119211722468203807808511075433","3369747492134474291494272268141155427192975217634564941442095541808880926083"],["15471821052506485765676204119240598446777126831391819490876139487020589289085","8371851943488273370504377433790422918146979146046538087765448415195784344916"],["22588594786746972135098339148482133953595130916210911043656109720160262689703","22103573181288421380810667886880738999900195948445088698449700245882925083309"],["26787505342931577262980863657766509083109928437657047962468434529364667945650","10885383937903833114732636870504969662630067417287060838522931366604460461300"],["19470063330795451691588463094175441650560352919389206811259054542771041095038","16370552467362049917943124312192219576954098598185803881041531223886046014090"],["9739425736797249967969537340528010838244929324538756837582402626324001476111","10419390161053585559373401158648040426029530256171202484377918103353495892777"],["23257498322583830287678618228146342699426438444983863027003810384713549647131","1024462719835742093513556339617069159821627109555856684612564779753886414343"],["28780645470968896440118521602455124878983720187308550961802914203039402641857","15236208155298237814505791520527387245023369486133108014403437436747865397968"],["17329149901751389379196891758416066721916920980701592383543573650231766190035","2910853097657658802736318807203301027546491378609540558255903987917774319530"],["6871007389714911441327134610514687990049700450346037562595165023260932398820","5278069998723544819081052582861510129661645463683085322794508100013694683667"],["13756420326186343714100225807948577081604914587410291978112612349520495610335","25413806441151589991437346400232454833880459881099668748738362133932837237529"],["16932537315860333872280893231423285104908664695846620534502839439516660490759","4906705060673073181017939554553835399095749820447948373848134870248712497755"],["13898766096559917133412160644108841928995152420878307217702874458849744577747","10564285996541386350556814275341612125963796787794515138760269788059027437692"],["9671292111218451695584484123178437408007745269205334046421650650009865558726","18374311403997209251731655749237701783086399707054448878873618703212211272737"],["20440358896861048977998007339201310150439099828350473463075871204239350206044","19590287801593016995917584857210296873401185375889859983820547485076905000140"],["26389855807642035314819035636469386745330641014176058196599060903226354379134","28241817041931060726980090499339611062047760268200049660685935907288415226999"],["3141419434095161759565804802332856133087540819470988212928180145900122351076","20949081688217947870378969455324662034971770627111901498274090554154405359967"],["6755089693309921511137489644405117305229630575290566042880525318753860374464","28057986503910273351589333414312979634247217460850040456407993955508777611454"],["25319105579379927449783833352990336411183452010174619611265343267578409735956","26522125238763924260082777053434082980346712866390855483281576715178569619560"],["7850800611351928460655419887652619896666654168561756399678554128656388232334","2322392455654537245916167646876123966155188094736677514988435167964846065809"],["16192931043864316172721987454936806309561576776784639948073821880483422040851","24663402701791068429075192158560251451796174773116717627079861983808072592041"],["23005841659477817258107905306669849410780792171919495079925853255284909290436","24350025894101800961903683702731304257723055872048972803278625015128816686749"],["5337723214925264709701109832698304733680320801011990999693831796356066686678","3772206472018248795327821302682941621840944043117009731023561225584009770000"],["6932944868647094751570032843316424652492249508416322270004677870496793275919","8671478144531086665306973235409984515931652177554730075723546112496770971025"],["27288549941848969181573078185093675096338939127652123395614065598933112723019","896667980969257188608872920402033114145056791985272335664721182145669884657"],["5449307013033769835005130846113848193562638016417024195994907167999265829612","20788262900590995078280588971317710118919711323828084279591584193354514357197"],["9600783967288481209801377042913890753773115045938017988360883219966169578518","4599905476509723725009956028542179901702569043495804792623875046040214326469"],["15727139356568702959098347248457989346849989856914452810557981214318849495994","17510495372811766579565459197361191676562002633435719314057243725039174339181"],["6756847695247872715240714306067869370088236136441283802081655418662036686946","18635031737677237816124922274425220750107690456630874459747969682179149434453"],["27999163465514343577012280324832907405974196092029352012087351277966233962772","18526795128703808243934053084801769141603536489573863603850407493428257468008"],["7636230199223248665940729200918165517185937880012247581497978109629322259611","9581413688914516898010781186754258286453470221030996561430405474146224022437"],["5825431647903380729303252046341973412449874423515788723298818697110115117113","11222615692928095603509513074730142103937343193228637586177513950509276613662"],["28875370897315684441370011507699539568680561744205476646531047661983855005913","3814351075359243302014921091972228664299030787422066729850438639134610043194"],["20948807740328776635660274595365106685107822699042817281800374873036538056583","9688906151242071022029507999111826647649088159175765540505468051186074257487"],["15146328134436648711448564675702368447764538895350164646546574818450018962620","23817280635197275876260956614566273078343542824900231298287273286007249070527"],["15960092790987375901191667352461289442731910729324681278753093701900130482676","26687043852614572077984106801440248041190296676673162142591660259682173778068"],["28070552101039402793593427100600106378335663182356076125534050679972594900243","20761116511120201930828072920962266878232526792773213751646380402118622613209"],["22858830720066561067715304471088436956931500298754114583297261386186344224607","26954098172216605505978653447617973094807128971481335950863553755123696465577"],["10688491551487287485565628281338179545470887462011172008694221858011833874402","729268025350031527469274545412236181391437914419938488353824746344579165738"],["6859931979419117934823238744288848334315954537625521392121569018527978227525","7362496298709183155260640594065282363622619449149859355170648715721541152135"],["17730151002390651367907676831687607714689785853482223291078033947447771749449","888167777816399267827039994674026287171411971312680429989742670271470373789"],["22253967641269866156382962602927729434813283501888877657398391487087294657561","9247609717932926568865368300162918332354172483829410472053913608176437735440"],["25206657110446996038384707904461732518442344947115621165960139902509593281967","17860841331345938516176960729174962444443444261518265810487076060986301400962"],["13692391449407531111048164579111303876463966833236616933121665556209145879116","11559892593552533320526259289616727589694693082646392977024225136935795787068"],["12786376119964947910763232320413719994872980116706558403876493855144444195755","9133453262140896260469244863826934223128633264509737566935385858486578450870"],["14425458235604743865835697117265701651823059927875311890221538890394077955910","2441451838381535201843068891098464794809125595243528269980328277121890692201"],["28145750018661005166080798100960311600028659825886555394254661359678764239842","6311346327780045977819397807916909497010261422014746167381663008292924442538"],["18208203400150181961955098953219026377320168502224681303104169865003587553223","12451444732583931701864910352064727510557369135530841269259233246012778166005"],["8883319250947170060832290277328657205681155681991128222068295647006888751499","15876361189102846713517585240878813041548081032527540833158655534310419376354"],["2632660889183796068128423598940749140386692459087072211368838049573039493199","3500728284292787427846728601280849635244609003459222442626090054617505692763"],["5426926411670388659369181841278621859959598614719551161473456401169101030639","7318076291360123683167851635391420836330860371149973552841269051698908279830"],["13113512771319373212185181332574278500245830546185677097865163807869393497101","4420355420987277786860072440000823069753408368531940937009248664802595946012"],["8721070008920232712824179623732561351606810332162910386796514784718427196421","8108981014569286493944244561846101222285907179108027972811854975848296862140"],["18556345562590970477032445710544953288963825765766863359941059312637052676739","15801655400224476768686242664272468619579934626126982704694732892335595157310"],["11811872308298711818078819334350223766382031540646149564591061306850187597555","28921047094745562488915080000602136061384311034014436113012068936041722815226"],["24714374109519658904649235802363949942264674106725143066242612246065305203937","12868534213414972739627202397987057169969424154478755633486363733392267435521"],["6943770735614789098859018280749368396871197754456613164418633717837859282650","10303811767359973134430493266670792391058902073724417264104837157644749363497"],["21911635492993842309871910947705268232827762798063570280535212107341623258501","23353748123566237765318179798972245318021426767012935055124604142109985324667"],["1983611372536886286876222673493488252641215909170348147512187185887866777466","10043346579379185939825365400820918417418879893235246870941032099972815487707"],["24442822379649494081590627675072742081775075695594296225810526594903489619274","24845931671097920156156536443616178332013339041369797390183150494565054422186"],["23882828015680512345284121635500800080529019673993722050480180610385843139186","24739682971347972738510696688356360735384826620592060677089818722773896812023"],["15088462725661256411300632162330207166957408204538029963864206897264648166494","8970933113686366451739254579790158249267563423092525366487023890235141009076"],["20044851111853867974380029813604100393284813088621305202631463491212399360270","551824758126204590817884774768656317232178795979753340789072825860587273631"],["4903602325159865443694827779747753305811697191018561551276554618864680591489","7123900983245396846706155034384913544777746119174505822696078698936555833214"],["5890085363022973045117855232783066166848745347136116101543570066324260591530","18758654431991559393600233652732827378557287258172462156326340576432013431510"],["5456882617076284686823384843692278816646810872521536728647134130209135040202","15318413081865200140835032699992996989706675790515437292561381139296161761963"],["10817454596374081280461090972898913581212476576979505491626795241323363776734","12062680563126898939553030259679199882735902397394233998693053217418273693467"],["14277110187630617723192600851984253692484160721963319886287846665910711945148","14629936394626323371380972754984946032301286771884954413406903724632299164612"],["14186765305779068680480323405214529066909665369516084776541753272143818106768","24210232141735880518194034687452836082113230374463119563100643908735594736438"],["23461691546934302245063525210621645812680097461079957592742445005985753263148","27296637770226893831399779298750959341841942677075075002316592648034356731343"],["28493528317034673649168184040941199447091880305715249328293844874872044972837","18986947895406242834127025002910795843769810502063816104866833372968685068766"],["18129217871567386423281182259025276827447139498351855613196632190349805087843","8144775361167051647919216325473495728926787012531549594542377800832732283747"],["24560807882062196256357972897937181541412871001777865457187257713653213222000","24471739310802752737796246704886180454115201936548185995135329356341971216733"],["23383259377451434753816386009610259134832127803098545765965872900451512060912","12041795817649003643035968320335902596425587275725043936652102443198265113223"],["9183023397841932113481569787999265038667678313884706858622936493291391240262","20190750923534460448690544855931781776235336249182341124250165208645514170678"],["14469116296326675974471706529761312906927610535019070672831671499146920474314","11682968772453215016521587356039522065720074740524619084628358034056956110766"],["28386480096653021649368920495332202016931066407228710115559437499537712703579","11328579088965427297586169620727698951799337862515817523111442274204390897148"],["16370816724976489674640976867955093211516021685671731794039765215985141407464","21284389411031498263146881826394887071485315849842238818059287570938232955621"],["22520155836141729515107531226420325685028929227691035558055180582052198877823","5088442167248061755247612874644113922379405409392214310620356631749292066460"],["16060830788640679802326691310242532334522927275430003646493296396286292087950","21846740464447029735146315713175004733227365450649049651894241652649955801821"],["3531211382172339840872464838548466411013621502729413120347596928213250870250","5565473198100187896687204572837042600152691618773306952828845325144380057048"],["6487502624789427391255646194308069439199802375436040743887488862823927744282","12230882653695643670217597127901628032553898267470064491344492741684468822627"],["15510047748968279728321094720660242602447012572650984110281018665203591809224","26691939436215248914404566503254495210054164621553186652440261306835033857943"],["1726757155355551898717290966585083432708128726680416722054275343299271779522","2679870795330247184194596941776143703074642825094700279275002891481458665709"],["5746527085850165917890980463580205398302853678010783049820830348467519510695","22113454667090599921269208957040891705313324321575307174049863717088180139065"],["2032927721256848916391067397639050542424784344978108377684889993229232928700","11305912548723283242684903772666368411746848771196903682538460840598149172954"],["3249392252775524471243705536971099730412091669002104572126956195459939426127","3588114272562653482751973626010487784541529134056295327530468012126466396650"],["19215308838314430386754324118348269304001485606301282078304545526375645613097","6776640737936482207012938499821148569211918350320816812822843164892485552249"],["6066042067633021338410656276562341446806769462018751595640219486995886945479","14034857858068386153395058778756451048356542342361002148167712516465646971761"],["24274566384473445242778110461048129746654381588598053066958214909164841717018","3789913514180278830848923167693757010551941711619977105917665420607708265440"],["24857996300331300703523943064856541870185491898579346356664662826276234078640","28432231184066411313999369007312506998274457985892055168528735334567999843841"],["22373705016055724959826998346768307767113398378289771399550191139109543084761","27132819996163767437853614125173299994434590092009678999043313159053415189606"],["8993613416651051231085621686443734347737438076828884310171817200357119490365","2924296720264716574625460719128915767610704538041756605959513820137749798389"],["21887534265655741444121920121433817218682390203234897613095263908224350617115","21119781169944839076002575860645325104831781535285348963672038655623940118209"],["16174133413865192964128881963674393954972912548543290019861646812861256360633","3335540258478710890735454541521470190017135525757817186351470801095751245193"],["28834564287262684946464880510042196825846218232043816578202222805168882020022","24136875303967001251243722923661949154892343358061444276063604170346363332677"],["22962479402724330222508677093558102194199474816844605194412633175906667284753","23534451043826437240124176930298213967129421485668092669014094918195925390012"],["8502017747390913633525878013187621238633789413105932956300875543284269677818","15714669487437912684392770810740040264229536389545741175534957924198178196675"],["20098818066839112968343449799701017877626120901395088807909893234211469747059","18713129177694947217892199259137195916292329453555077575183500902677517821228"],["24960696570845108596219321287346948674265383906422342706427481399223049166900","13556273376618594934288779588110287097429568151537820851717337804363530292674"],["4914395312185451108454716846432863306442442515892165061953959070236415542429","11117568783115694910511160694643431463734240109183091814551868700925763416399"],["14811595380237780312914176796444474457018457251960948040214000568284139923863","28455261412563665848646014680570699675312054852791903760607917460495597254300"],["2449396433990146677390078135046886205837618715062462733126374338818918130431","16341852081440145665094951604839310284973921527761894840515535168736942910748"],["25969972078630550447935244295209681759027858516122800480930372438473359662739","21133820497123627356251241395945945945621500498539551547319992553762067686766"],["3538330178088201576843785433437692478894041330936416320460636315883072742148","13676107944726358052322996413359166041499287894392314034935391362654943359599"],["19265406952453620254993266817088456256916182125242122753887893694288393448950","17504931349662271157669474664865912657355304124159860764817506429562260225922"],["9069219061008730492736231851671310791044623887075002068223297828659835242291","28588584551425321393483896017751726479158515807035667214920612628914586630196"],["4413072404695970137622292349352270391244531042065063272392161064944224479657","19643029018199849134041079758184919810350226793587217341801882540410338943503"],["25196969082324671394046871455644981997990155131315648267234275229933127267644","16887249602777460244189136234780503235326772450444555014672868038904137969312"],["6714342113664051581585730199076855841423037487905282211633022636888009931585","288248281648412017881080627598794580474025243283822104191167649368793561812"],["19152063245515636518975195623124305561202859973283239875854236168868608625820","18187639835384675214743165862789282240577726047789801594851434911277078830809"],["26223115998516295744311263964083190366959023023369475992968812237866843468171","28119127535067080949895181021877113858636446030312731443086371872262281249871"],["28907350878197088302921753639053789048987786488897650893656211410914047092424","22963122179224978743675703190134500654804338853538753766652774455058827641074"],["20340557892968870771256294542111221847209321092133510309627444809842638950050","7242653372014468206756557402595514278485663463918991899817729297546648269651"],["5807754041205387775006653162788902012945243039857206369394273317139130346131","14333261357800704039854393084053993311449496657341306356316862354312852929123"],["21941662579296798574524157511107996072226481311355747910274797132608948352031","22651817915938332351909721581838594096892837733368144812753016499593610971213"],["22455430461018115730383103195840288443619041144303857741877874644438135360544","1245205069252172875404818230667476710467142350526681102991997313833379664262"],["19784419859358540604367850826604148496374112567019146229554106510647053802109","24141037136545619099986398948972441326607244277196174629880379279184343816391"],["3748890643878355538407442703690180775785168607117824135264559558809694948714","15588393745527836301921724631669077365470539861744107529048781993731086268450"],["10414967832583462582624052373052383187700184516705490417067216705922492949262","28333512843372196306893301852012310252036619928724972666704834311358742175872"],["13655164680505218038455069313256542813575322363923737591324784276055065104362","12444834161007672037511973306310913973499018870465424604482497334075283354970"],["1372604199471029998879981165560461313547443997707094768427474080416231519618","26542579835231838027409122894303100481806529766514442018929153015323338261249"],["19807728895182197743214618944718698256577691689324122439510533688915310730434","4759521841067340070860835554656198398995710268866806895811982146294149915356"],["18268476562423333905474991300786157048752692082338910688241951065802576059405","15856429368066167132002427238198582786965430412580275246650056309653883093393"],["3184416323025631171916935770255374582700473748762301981125324311252521260096","14040410787110283498338601456109166289976416375484375924284600469995257511118"],["2190539912595989652186205374019537777939793885965476519091193094162992793926","7947418472305338246249931101632297120225591691431837392854464124650990373416"],["12275478370611180395215531154188855325771877365484003301227317832171826125983","17117554308659490244430988173816147995078230422266508276981272900787427309007"],["18268712103309029065649220244590699025217099525509789909730406239082299236472","20960164616957466686279692916317362703608033536900989986638732116098327004840"],["28160832941194489586238888547480128289113864814474558771065952592161025252416","13566320915634715050822044128306921169255547366109893438395382860140330199327"],["2091219569632843790896353221266388892932629786661703443318990307243100334019","28886364581967451490775188452294438501024980175078976805499704542456025913902"],["2715457008567620973003510689831209557589120460710610116662394153720415436125","1341160229340926947321882980466579457996257895572685684989053382984019616598"],["14444504444213339847674272225083205725546453530954601487360617255866008588010","12679514356838610998515482454200750207210931763179103269710055217948415279293"],["19682905380122144129198734196676892872384397093108002853005734512227555486944","8800253517182215650989100451897576408559415232958252420126719803999241542634"],["17029614275371311629970506013495977300078843908301058762758049733734541061929","1338052289547940097887955411285064448895270783593751150954829580318711640572"],["20034735912732262611710872976010378995397343583919784590938710991246195986819","27718508972259641708841894607908706474991805954397566455038495128288206965624"],["17523887956329175344219791671419589700686186280116079717608161392961674543701","26820466466489161675882330435809385595205956404019975898803244446127154886276"],["13116834444459177434823325789042955291349601798544049171274818970842786548574","9435041759298168396711768565964498856104858226059470263294935825534802240029"],["14104439345018985272255412205574054099565546013282260898327953391445180686184","22072780027885178978095504754389647074343417702428927199804353156853219569036"],["27583171402479502253740532336899365673772895827242085516560072468316741752513","26443729158835336447716517018764543083402297241605023501863169209215645145316"],["21841845826260441426463158584367075229602068345042889627784812299232620318270","22686087306344616598224669634907563528846013706717911961545661708106571226908"],["16349964599131126763904457522917298951786912115706862206688165378118559375455","18032782389772393291692086209119348173578202528188856116483933568694705887577"],["19783829689707702421751489282128028183765058930902929357112654122614209840859","8758595204733480226061931224216993431962400303981796767466557773020575552426"],["15099514360249291062679406642102467823362496890289175307967122485532089056532","8807209662099607577230330275684738834686190204546063649676167867614343128172"],["1796241649444550152155356414021065152773849774940412861108407380355125637853","6629774834876463573621196689664109842220303402919878810969625823342828013382"],["19128638636211772080513865171292119605036991587716017989228724124258529224550","3653981093448134949247270406041173074004913106995150849205446864271989945738"],["7654203947876548484338619925734953074642731059168231803035171424261828084000","9238966768041518548737286173083082216812871165391680565468335782217512686404"],["15441607874941728950627280411236360105251978613031847035849273949928148160411","27816123802700247303278752529491098277135717627746429838360028160519780967124"],["14929539010073630438208103763111275963755020097960895723751076927610030108988","211711353244267418166762501008634800096119151301296750592296379616683008003"],["8672049980477439547998170545213849811700717831713160948147396709365119028717","2427395571613248259899342253764057562993327754849608333201559999093596076458"],["1991503859689138953508849068952771190980799288568519186044378236487120455740","15655590977309296470523248637684682278684150447709539323910565864060963543321"],["24823078545864744200682899760950035196154315927363487974299123010940940496161","336887116609096242933886858186924196816313677106273290697791976898261899777"],["3897380668649553427565810137958769643152858957152281327237839816670107924979","10437068550046500080497729607302293033115800028862905714718158417335749271891"],["25065403535315095109337619381374812700664117599552868161316648164756042183659","11542830093044029137436919016095258312345834002490185585708644615574635951613"],["24288351878671437975303015853882320869892056949589731740608671545963680455921","6094854122730110426480499766119601559298867714283510116573700420577383771975"],["22143446245291378644035729137650447567790600341322913345107585710124507927338","474305096455068487150177369677497559103399936217469538080510335726987735764"],["12800008424432720409825135952138412742910695130182897720248864545470880624541","13415212197901405163472848997561026618009966535736364743444027789347766963748"],["14776823690518713871852083309520757894862814864473048911768311089480952311830","14556229857177387921163706544513920295996165516099386114796038983509004403461"],["422249112034449389367336731524857334029417918512907548107138456465535115421","22577356703868621979137417506684804922130163033646028370344660298131632301969"],["14965980355370919529939787025930695451730666018407171267543112278984095742065","12214861808040161128660228074173900143869161104566013683098848132870319166322"],["14195847285625436554952690712357716607138878894487063315737499152030032824046","8175030850705318204809402440889352408534733381838670891599120657046163347180"],["16871216542840248904237742630101782705387498401711377154732656399311687218422","12848321563543811485646376907183818030007745558060312311777322733224717316859"],["4354250068604387165104121665953872679255033517798030322858993828317941298707","4905215774823020187229846900675211549659665597781150829080619813926246659626"],["20698386247416014469422339153453357877874164481278007731544192593970332888491","28608674482735554257446436285474094935647472376559366631856540916377438817511"],["2934224389411466796700758427486401464898527190565507196058416877936707046994","25341670544396345228540245619526885142344847517022022973850480625396868377195"],["20686582734199541110577790371392315164609883124121694630601204469551385391342","25631109824851817305736260766581197702365149326430451601708188492814990512342"],["8718464585991717090226899730342131545375853503220528354008511552920243810648","1272629854949461595299280728957726767233665357720224641281237711525408538122"],["10368762398529230215712145060396101354837710583221006930394028723764666530550","23114524753818577387524698076020016399179431499135116670381719781386608751295"],["18221858725652000608954967962297450236365571674764476710288544319724061580438","8209521890275033749508487392742164140408128734572628166181416687339617542705"],["22380608742162228943368958579178518535798082226031221898939562767087787706579","3479777248930301675494606791633602702339625530377783128508386272986798985322"],["1128755062762326030440833884333947689604282268024416126983543761232886740720","13457936281284331877287197767300957547810158744520278763631527860459782889823"],["16730095339608596591246318070598179484129560671031911939552087069206249755895","14819930775452611839185220705562110602607668376421104554077234803169305534417"],["15292024961032420056746344364337211468214161145403528293751057083588842353027","18187321027057350325018076877814125147374830682672341063677651752653213849916"],["11757472128397220653980475373927794450682523616171763093378049842245174797949","25873085271993848110126839204945934901542773667763911428295779033233880616820"],["23715907255308025596465198202691925381252980739818711205201305544150772354503","3760335478685946497872026063809948315975434458887341472003788753805131925109"],["16208474734183176510571423572739448153734142898280824815828406683702956348449","9189375853585569166708731523718806407031149185159751318866195557507879240804"],["16882728007061255001328698462706310890188566607186938265163641798445922606588","22563015087650478905713039368341491916260881814769609776352600180862326640613"],["19090785905913923679469304649428377563500897961172909308510540425306711337111","12836578530251765376644259220893555244064258332174235075810210171681180575714"],["25767796852260562895101214751277515428412160346185672668325923707475916394794","22014760266177696186099209051822843085309643087294417986996064333854884197121"],["26054809196556811000463548750225173579977940198681970173584895470271277416619","13257310480351795723297208120170516559762344928102398960365869883994506515465"],["14246446952280700762337935924567308134843219839243678830065084318529719196120","16837864353080211790687153675036304095694732715477690328355288849496611096853"],["13802783193297715518405079555317232271390319395097492398114782408675142001285","16272879510201669432668749432267291225084180589559275775521139242744508076719"],["5467729593945402748518500132887631298471854318060388659677760237912493927158","14377349353757920781142691371184071007573084145543682240435374249017973437347"],["3392563452891170904067784269052468453464844106907438578335498357737906026834","10265810870749248194976545497628566016185175946288386145804982271409444847638"],["663003744296835559979531613287988299295216832785280848494966293002138385692","9172853846889524746046385924969289723517647836713013518267290918345250287120"],["18155393256689309573233285425375624035286157821219257435927944143358876904623","12397105884987774558192424059157931894308793809880628143353878106454672972510"],["3586196340804676414610259625732806752678858156867371345309576476652998305054","16628411154418006442110196561277417859560264288616546735139394837535239240599"],["4200471374770982157550613106893829077424465191649499127213798040514944671758","13604523514344724502719526107786966431280544547421727426347756137812990517750"],["24352479544627748244129351119518700671617872322455999776060653142684885652113","7938309582492911580886809827467384313084793934360404849175473404749655484104"],["17708321712876846378585812643887459706638493234339126234068803049774622515118","24453319494037060492223167729393227898690069191518398637430213203358008263395"],["17558221128838164002245141076818198020710927738111642116341640355521841824649","25540008150271881142085743546163528529303850962951652119021025470886301758497"],["13004229625664076718940212437680853818809266743424536568342800910875020856868","20129211632213239829264546378509284127535433413076590145870438679809702340181"],["27383880909523637704344230282761738754346107512597721771266135934095420893472","11353266968026970384708436256331042218475635745430515052014112660316104117978"],["15733894128931088985230109268246852760588357665133498781560675311462609686184","14763899576725365753130982733989744896218224384157518322242745829133577191032"],["25772504517005333922668589758447801867882198248047990529805506329662905798498","19963579187783300076936241295167785840253675080680377278176281291964166333462"],["21945704480071777869725076428124127779304230309854470739346728230377504062311","19478544589556478097471892929435508427422675815821286346095728676118248642865"],["13433421286751614409104483997058517411098663518208018547865220291598174889823","25935638831038043732711933209468805955572295188920701234088625106371715880299"],["487956974160331272190176040045317867901041154027110827745888212434689754744","3194952880636658011517276496509776206384279712029498343252832960944587512193"],["23608323289640218705618402526790110054391692780057415942383292151307766318641","2656680009018464832955467196092002523091907428487289881337177420317607123720"],["16846505036192915988645993868439921084377290911569932000130678714335134873072","10375008556254658008304216634968447410562870393635549909052628889538584708890"],["7015976320725342021497490017602917103110763088623972178631518237961425049384","12119519287703520247614234743132089582476364706602018804933372558548166597543"],["28363395047043800227506393528660155086276168973739255562158007919065820830452","1674616571656249673315683526063175780087346811873626613414170631564695182672"],["4108393236980536026297149765790270556175617305872029735109099692439481859846","20188852368501776794411184156674899022274607697133910388747516358409876074255"],["18422815547482807640245171989959832410839302551099729165728546787702250124476","19616914387843589339591520405315130348604234240012091771534899684379936539132"],["8399260923461408480465819482649593140920590566209515735910982247567578778497","2978400930824709010612904900351235603005937887983262435157294873311419343253"],["3455894835559200088546884335594277553512135496279506226568638155995456034473","14660419228531387438466452170232947073783870733032030329430877352578426828753"],["22614412898520776119237662479874733655097949890671206682760048030977971492044","28377167498243133372866945270649739041208412269701224485689282227511660829285"],["5793014558026409261862149347733983777177420829401999858152850371656017334079","23838733531153557903571575650419595485788917639518203440996280763264361927708"],["10605030661633087815296424528165223495146213860279656049290026993027477933282","2098003800020630432213548025916837762711158270764720735000872400591885805175"],["10274511262906529231148207696541765640465193461729571398266126162948335503443","25985042344110058135043169164499646817727388671784964842126853018617241679246"],["20940601756963161285280056328233070391321528302456156893473334294817108508818","22754366260227820126294998459548934881951641037091860915943737229521331095282"],["8923912059038707435949395528016735676655614890113134039279974162515702123445","23909653831277619140554759073488469956178146251188192631502752780179970557276"],["17590639432008859337201295771828593958006016235996579595559439777843397259774","18109707059099269357563231264699773436932808479261252325858918198473138800680"],["4594036296980395854575681563989330916795331099529371334512678148147861911946","10758558797633944493345409669550592349237678779133829497549578631662251745019"],["23940615416836819378316596579146632279141767773609257200855357396761928946819","3861736540698254864275049724958125924728422645352325012384421344102891989039"],["19338267165507014375611976201707149376814903302614513919227378121656373883661","2840468920465468425686709233854935929608449537728316911541480896967901837693"],["9604651911686744691828637798228303554046119198132631529320162832428266236176","13505851021709683698681493006605307566042778890250485837884798131991354125693"],["17715685483271233654211889492631002609248637124620666908542077484465225151160","23898918080706708882147640425956218802895584905674278365067262111265268455752"],["16746927421524327524486388282427057732676926645692405643626700758262649006505","22450446276210954760159681363282127916904509530577426176221755057083652728475"],["23781342652141090991438652450493741893056463120306181019764893859068220274653","23896306739460575731082062084601682637778581526200891289081971810661028137969"],["22345721854401616262583463028584160669655244269258966963334435740371790819739","25126812309202516304824974568704157466713112937707549651489647588755064213521"],["26807237509347394021148429043117217427228741377177308776676613485215668444455","23336530982091589026036645669659201577751079012513075015613261791742322301661"],["5914449986269679563796578383347483186754031715477152476100594103825490975466","28137195877081735183080542196208396510524507938341334181200598156917599311987"],["2470133812223224805364041401093488578439848984929627494036176429245400037457","12467327803439494476796823826441442996591631977516464706311384971760768432968"],["22021568080143802982722472772789369298840221860583774423641260902412318912625","10352235434946576721221388945092676945043661214446565825328175376484756633668"],["11312218955840787663204476188217274716358751984126106033092694418035293686848","1725126198185116273542170240556236714976076726411929495093420394817720979014"],["24407739636833999511590824597535692744845527476447399938272102745055167799563","8192188450944823274827470664905753853494625951779798029079346903069756836053"],["11997301477186974249526773177542013443969683880105186182062188765210993701164","21762803912507462368987808083737116092977228575643838852120145775069029629595"],["1278681058342249982418505479693018241275994504796318480202146239636809066618","13820875253033896384436889396844510376386282893437324127488629939733561028124"],["2799333658938009857610394526999738593724841415124483053983277713792311043390","8237963113917362986578755941839094737598975148987806522181548352560839956776"],["13898174979302218587434397083657219862380639155922207923057488969422455120911","22506490235462420307299723483828323337447900680616211661975337428131827284195"],["18303917102521171458461843238660435196218220410058696989951192945924597428361","24643181975565351823725598318783749781371787615175879626669203808500961275126"],["26993314146621764208744997656934364346024062491200004218637990018846987158865","28813946395843361855371037302153344017662219062717088309709577005946978436495"],["23667477891759442349059120451734098787776561415792230092666737334741717593863","18387561758076097436836214202273609355251745337357299823698992731562230657200"],["20380763059161695332350993678556941097561558168811594108435475894385538801698","6785730231931814490119119603448425429812215358803907120215687297579548437253"],["19246126605512946272115699155592365593992211749573076742968284558923173622975","3079470603901045468560120668870425809004101684091723047171131212026850649332"],["4450364236151939899949895516624650446318135282009249031926930604658497073690","17324149656757912066159188956548610170748331774354117765275596118697964758157"],["3961692367083370565987247137057183012107068711218523788130148726940870534670","11212256848776001286214043622035810868250710768570587592199899175521893814495"],["20652117528169150224974660121688681726647199616962355974942523547118486834722","4885785246746275865429836495277362616151932097805327172927699670833139771153"],["23693653094067162959679710652823331082807732104194678846039386503469796988312","768996364396530001099953085468888474535401599071497628479034935510340374073"],["22067932107838291939012027652818553394911013763568094961770359470407921906896","27558655962692743938353509823709215670014709602454502263813760076609162674647"],["8875090895098544320955558092324344761874525465877721857698751389922286667832","2457957158833962911207592607142318260958179852970099978902559892778045664856"],["26000968348009283302470275005321082703033441604849911307203154425164342179623","21880696205129048161320157053779042776977755811771800752880923453589211378512"],["21440821265142137014150153059755683189631305283832544095416832245251057012979","14476534505587774770667649058306782927396277118851427835678669013690039978474"],["2309861016809312529681513050758506156918981326104117606526018978509270602908","26381746311924825701625971612323134627861225680670491297660494073876938799695"],["16923821943378995857269592483565665894179126475087944465486818740242261900760","20970392337754645814868672499824964547845884436484339986342996462135280073422"],["1312314292789711374187636056418229358875146674528887380367912320129956626496","25784910445655792749685266820568788795985924320290174788824222608287345034051"],["25218721730750553655665412360601031207741249103126124107911421576408608753649","14034785002810465934431416028944827821220423435137468459706406775428572342222"],["23728950252747038446947390784933534678200067098642560403051336440524132769403","7065468220341941786996962069282547555961756890587370028157836760388601277130"],["23788244972238442313120746618562236059781457946900842630466776090708065281010","18774691063742042916955652522539665925873196349423788324167443905416433292155"],["8526303303034534557988061609030761957530657546170089877084009990794360176728","5079063348937664158012827382187336462109646650876885852744738939828553817889"],["25273687261800957650072659963858891364375722022758119943394340421101688237247","4656042653191643562278359474855688781730540374921243336935008117391733242501"],["17286417891569231405841504136803004988211959723805485353814911467098868960320","5309441671350494961695645396524102880571997433173975549358384106160596673540"],["1049055761632906138857216314599286627863059790714707590974979463256283109828","5103142066957258031892948291753158477334334635912441385415156578836074160402"],["19537992826746043666996082738589862376194031415688994323798591021871826052251","27857179504337633513437500603281974606237256369378421706816926853944236271303"],["22700475701289913070820527880921442105191217209249636683346480497751080767529","3589507353263700456901378440893492627171648826009337472806020725566984948866"],["17709374918256597047710730556360311836091442455536539000880004872584223442848","16692398590667913049274896654254287308470962701932403038620120532496788726493"],["6002376484804896331426193442207336527485035860247948788363807257768939946688","8990547284727810598902530933045817570372563422757882914338112285897087257794"],["22265376974572647245613424887664799816245636604623576993740602731735732789389","27196119537889984013628425306461798169150931335634189996580746123162563429354"],["27648905133232637129972137695847856760920989675412113418750255732038298574210","24199633782955290948315669610038157248268299445104858283539738210429141170782"],["5163056932007141575655227010552219438701890633526144921325436232536674245988","28004511980341161643416786257342894144045039429298992851034933689809384382854"],["11292601979244481014742729396640967040493070991216788771520370520950800550902","8786131841166845866465705377771478088955590287281220480666758941395486617876"],["8125801269043410623419630399830302729324514759408012262501971005669336036489","23847174965523273921490504059545133528859653642566727612827381802335868818480"],["5498341293388397082865179850717771534950321718243356649532754679724448541192","26931347633411577017663544378456595567924484724118632493816182754280189328528"],["26079880321664804046334824425030346554697794806310861265795652633669974176287","26631445079244989028075856231433338205054270201946603239259450696235138705310"],["4519818012982414935308859058572368390764709928083342826538273768276437883905","26402903695006514995204048010012663013556096676058850267233678804644706045992"],["11033100940457080231762748038829878280123630822672518350441746108865848662157","3497313676648177543483200273261083575592848387551916699269961169154177037011"],["5090914746456180642009157001796952442250132395137925734916057698904828413648","23361049558615838655913352279621745562168497493626073254450307640906905546128"],["10304360700095308043672648148043661162783287516497530840295562730636453303393","18046521324714071570565798687572734179223679284446223715038182570905944770224"],["13381330942790862776242833758546577677799021830938009213167617589955996535889","22486734159178867588239834144086386768128056010527423025129950457771033817686"],["28261989385588794941732952396601462496336040711783985163480048829233885295689","5179218085383678977206788411857627056979394273667492316795063173824789824658"],["27489491961112021207273889682265409091700640869962671007275461892984127263332","20697685061384636693111521960797499481283651177555817266177414259253062758876"],["4076392016778746348956582173594916684060346974422144315145160758414511912984","3296102427747204425004710147541544758141412496190203572547114876096442817520"],["9634936894764786978571909240986842183798209542807759940046191820301027569589","22477610386268483213618081403429421300674021313251139783070851239144965584886"],["11256606336860455735868447415040615814998647888008966946666499960257581797419","20224976442375789723233521289820775929984791043894064941735759886175445966602"],["5271837192433409663977359542120716349115767155761763890086170846305869763518","16389981175214102174509789010378001893910926974994128597763014883979865708773"],["13418632188248227507789526329431575428819398848582243854745487938523382669751","12931189126658095077775930367537839320598633736575967019264967945812235233778"],["27006817433806701268974623007994042907393316576286334882019287677783636227496","24523197228374981067255426967821441816722757011557326083326253918309760630875"],["2690052458502870330646480326296942504262475708619457682587223403731608610053","21444374136097538295206384762422996922957525579922763408477813920011694526761"],["24080509849516523053199197151416210691147965310402298919691210097679481673471","28232789878138097464690465492326334170102094216654180565474871039824524702021"],["6245345672085745248480863472160827665436521830394538091634050203236472531293","21585181031817301816023307975468088833047061467331751774884694943676197483282"],["3323246002795171200228753513631313350074273773046395261763752295478440359223","10406286319832316935137827205280847408750123447879967243261667884766880188461"],["28403276894460258135188426593734494631288336676486829452457999108057585175081","24796537079186987653930267951395178951155998806594881559644736389322156760412"],["1472405703953818596166407299559004742922598158960665650601328458049156459969","5988889649668784294694036960931050156416454533240846476274020497235129609910"],["17470835862145280234206886870988205239374475215039274599463921445094102616767","15037443866450715744857646101143732427633038466477464374291315380769940475719"],["11889582207702273541412384648773810666509949016337903624476586478509420470088","21135731296511396634371487335183464461579786756581864414031912255243917826284"],["19141353331600078901900699434694322081356920079447498996412488780427927725429","10729430561978579833642043301769769615842412646547585130488973572086973161831"],["13254294050898596109826784492429342516275183158793816755657144007812228819088","17301370720413624809859055283871289565397541170415916897585032114420760935720"],["27590072784774605526542110681334758657391278822705455180798734890321350866743","8818267027530165881320533283135885453054737664842410999037778817022245576773"],["1979171421945190997808145520830235802295006942052504414833219449378410556931","21375844000422909201488693527812410948409553537771850119504210840727343770803"],["1298226518311659858471419527925347259004610202004348183898343647726735950248","15414383631638368955377041355702094896136569753472105176570737656001780531347"],["11137580115945923035869323043279131091353140132469556017042547148197465966927","6509697469041126999637450871931949788118390448175749652985959633052642594921"],["8611419517030467730687679237163222280615570459231388594599526028782577641504","20754600317301283188035347815966386791399372550127601562672819098051000186404"],["28148013809778327604202192558191865081212994848691065936272780250893502449988","24246488963231527551704601819194784982304310484031851124029027374546322763083"],["19004949403704230852137466771958832520520222924263367920707460096490241712338","28217705436770402273273336702527570598203963989779912433418268878499870125014"],["12512194607702836100900793179947520921101329345670089794899207570231939927425","20582060887242173318785432304176584508218775149295768570334176550557801104338"],["15459166687856957614317666153835384642254904916664026832684058882388649738847","6319102800058610449040648821373275763002395591403664889582649970476512134157"],["4042618570586935600232784571715969605863095065904305549917638456101960268039","20710799806076886513776407018655986757952026193773524372465428690076196516909"],["22267890716626738477023950080695861155944151315000572795122453398936169448284","12426237745571003025866022900493578585908798401356420333462163474418283143317"],["27051665534037752476764425679499834974503812085795564027775616965895904655115","3874347477533659439300892649805774264080125553104822506337104960320389745214"],["16938704878871906582645977219383438945507099957140011139300642696449248035436","2042639159119664676947843958741941560249935577969840945054574780309062122051"],["28755644312781142136683852209979190125271634432606093847644411069023167551896","12049561114935690129118219695952234695921125798002620198020443218271804911414"],["26632108096287152589085272992185994199659220758137579988194067611364677333236","7377660951096384818855439537813272301733744203487445892837094842567598908619"],["17434808672682001330087952671225857981431617941201766541488422407387340541331","22591284026214590934806633665951411459330553636664131401506659624625776310782"],["16928987808967629350516894929825013011949064014895838404761598066106025720538","2811181531359095104030972272101233186097218548566263037220811184016448917212"],["24505247253361977151612956394134103579501304755558954804385433014331397137810","3204104788202428103751195935257900615271826739930932698133617056050224944130"],["20003088818462397663224500514172367761177436672603684655462371765979883312746","17465367308255287352265664106115214699651581149955205431555892278129891088996"],["2459486605410217818819573054100013799349849325181445225920085180429989046820","22084101670346523654688748956629461886030275951038492734205155869338947032137"],["17358879387023258077050119643274526617216013226610940810017999980124737045228","9705067439390819376920316079333699404443481007286017400702082641810785179351"],["12369355884112348156149754832579107466061069990016479135994660543142326015140","2596966451608898062807978521140065637570350730817061429333779247188962549531"],["2464985426975959356034735190747408786664200046234071508001464720877218100946","28411298938269336141048012351807529029246364215352605487203448705822937187945"],["15513363501599396688316598083335770335156682377376849376482661947566304033850","22532572327242264837800695138165152210391621168268434567329966364873682144497"],["2486477637625656995104918489862017532519908059992540605958618157569536458943","17615654502816828911618389158021137401612480857890487959454366774349583840642"],["3314492279578256518462762077757355962014003590330698509354362307078660569498","8712797370738548508092478453041401939225915478729136543915151011045655933501"],["5149870661099790870517233954447797479052538188991451029419610863363206911733","3945619862872033866884705390845641334268195011377100761046718769704562571772"],["22203268626411048257104866911567847810260882215334048799903857756210868802294","24784937242667224193230490689250742648392790983064602550597888989529639116777"],["25739130714956876957074802437600171113669868996423798778672554935460748506388","8349105708370599019134578565789292253680524122519601580921572943035330068671"],["2484157489548110249984661685389775217699213318500625073802967461348609883038","2870347221711614663702242179081888069198298333252252272283026561155350355026"],["13780652874922497955569310813717643488967692738225560782827254636027877115088","8024646057982024717167919545038255145950518554997020943841904561696738849828"],["19227366626412133829760581091486830959510868064951118307895908392342470221405","26199947096723588942446707316004257636367460912677578265625295294668426966045"],["21048386682162187493891458539758131169388525437091247774965620550751282672823","27099627029980458748544175767494993247156259880898460339506181984838416258730"],["13587963833399869336322275876329644472362583289388078354040019423698849769792","7715187203579431125947366983443439838822813619535960566176341629245434531545"],["19431522896603244688402695003718785766550323401901397697580449917051335294889","20225207895798133912649685421228730466205759674519240897667496019713350798936"],["3208141164168101806392445543016286616328335581287302124569011484636087862369","10431732640154213444157489228142653077349359508450924034978266165974279452259"],["18636297080253732162694846221259768134936169485791988241893996074289846832253","2822921850247963776834754734037060072071091202568017668785462115005926900890"],["10749694628889491279716607574262193179886310838554201420677144800361582235718","20518390455739305437424963131974511822762441402632716009533447451052047106082"],["13135453747349902435979832470106408778787314169522331645819342578622245009200","9166811165759440522412996888880614806841784169500681712071391359079391518058"],["14581237396854444143590434921710122050212723885163333914093341168511783339549","12780439813540676827750867184547480146748738150079596116298923559317040958847"],["21118184232954707207925190855641345471418035889665650836435337542850285282741","4492599424113740714399928415980337997135576898119778688567406644566663891504"],["27596727004757269203829333466037197889209430809331748783135018789432567233496","17970798420549670617771861338002637806347513746706830550644730957964933932898"],["10812207545100907997983207102446910060096386863072956354825813765038564880507","27535957526945257523121235057733455472415475174211420889158733964307497250057"],["24297443683625087298398394880543986251613970925061385666556128406611761259078","2392001678978521598051529687984724252079147716566885681388798165016479419578"],["1331416151313812610474110136757001748093273308201322790814909822990123934678","16947078695055080680082148016331623078900080259599665281666332776538187567783"],["7690123177907591350468488919662742242570070809701535015672436521935639865288","8708147973105801906770632771196719324096141448427639373516322386583584631277"],["13982561527860449880807812379886491354673830900663143476364238567054188427219","26231220219793573035318622529301457055246459748181007779281093139324303907808"],["17250108188878236004429114872483869851781697115505844749650707679201037347472","14192119436979096772980383138763015234150444343675967412234550397347698108041"],["11660422489801431945547166713544206634471838739268164691955920414622545146521","26566995158956576526414133456983479687328629779619186364596506233753584663720"],["11183618538815314650552860686474165744470296554069153042161418124940338786623","22341087802328426143190473613677342625704713284348190324612865535947432441071"],["16120336351543978325123478332796158726284353047271969712660194725292260210711","25259950034926039219257332752974869561826981684967260171746214086873750687625"],["12599636028308052823352444940290683232268804319627657987060651885170582408539","23110588809973214853205007341365623841145823629648871763886390965303865504048"],["7843193515819008940140320043009200061278727788498783318922546033846964931413","6545684321680770484300486119979138977377332484533720670206906833183358773800"],["2911568326219828597438325810139115228131673784225999701347487944155692808891","18428145362716590337805439397440172926984319219078789741596326440861443339810"],["18369525288312819343625903910673398046388950403446581542877020336051929082464","8792198664814222162398489416518449482695116061087397790496386263730377743701"],["1775863565037390867984081722959290961894858137207368259627432737989130471369","27471084521582943180160103628838869064747756474354128526288179746700619996374"],["24988481146954396351055326301512113336070677225136227257035135251512650415300","23102963257730004966027976115169112557733377426847393690711576342972533807152"],["2324247235595268635152744636034533245823447351384393264726077722143856392217","27020238520081366491307175579262837197992617410577717058029098130719790464834"],["1412401860339789926608904696880874728867160160678140533369102391678540687502","11016985666385674723124739005644831112716876350917243689109530188734256395290"],["28335004177389907690612799878392155839883967570962595862973402562951472835242","25836053549080223271306757136681781009198252747150506769175472570860837897883"],["12708052175816687659735769019312555254001597883717183936455034973797626442246","27437698597563093663945296796648638716532807284487328643558749319426130790204"],["12015259324262610027094366578704108142875611620561292816471070666920297119791","3945159861777373878152208112419566133835517680639687571710491911758556228941"],["3210566109762896135814171274883448647864479449907241583864288104113244252754","11584272831972456674603902376278279755932510919652968109074244056450322957169"],["15311483816396601567761268770018896338608102975487529918386212075812429667970","16961393987747060650897813730273615761711387175576598652427202274685675581992"],["3078017817885651473917529474668674378035280417114333692419418559836702512618","2150147037000684577125529952233060829077861903416057852534471815827384926111"],["22061859643877234858505861243265387111114698019266806182740756005859359687915","4728296527305591246394495516638494559370973996968323830154032109208157408489"],["27174469020691252575895864214680686561930135803239522665545407202638540795929","8536469057902918744842825280665019218867499026220693679069510014966695378163"],["25039903852490298707912356345819490073124875343651599018661608080121775845085","25420664891341511100108042757668487921309763425045619658042127655092214507712"],["17823248947386773484773653311142990265566231781625667489210370875981030570964","1862254305023803141488394601461939099552594571393637097452593143591126121660"],["7400248074066674208954288543884151408313265827946952696358120774570990157019","25028725106833811000456948593876482500737803747642481081926556854013958221974"],["11535518668304618211281442172899898928572905206391786910769680479717790605891","16795155233991191766641519054111523993135948602054584990187482959795849747572"],["27876915623154484252392452701261575599576036803643971163675025516370342186895","11009436352428158617648925932936334954478592130132599976989189594637407141706"],["6401751468852151923751450491489671203998459396278465609485693983023026835830","3183269221033062478645825031616051760633792162881166212301519193652300497068"],["21114771207357446799206896018011562218978906355293929589878450425932714187908","5998078321135568866012202545440321929290478361018755196990926732954448663793"],["3784232613046788186201780379883195879625995446550995273309663381245793557041","5203506362748738384951693363506023402691384578267587357615260547801550556851"],["5027590547516916200057001888995147418169273850481342430017865180502527199866","14006329467059459438562878350538408879374083378010925061235956306515748851125"],["17666188641410070318551898552385331082675710213622079132783657871812430513886","9161435841342053219617463095760112556099271643483451123529173358264060991510"],["21717032191909585805113096190489744609275472054222864950937999572559780169050","20306216490055381965685366559834200421294487483520293284046712197141454566970"],["1409602586607427722489625773226494910476456357579074504528775598907087311558","27047098228597745503858791808940830103920231405020802138622327387659364079414"],["26679830771588505764485054920381417849554426895813027257056166461664089921903","24525550459155508350825038223591641213480707381137873598091870057281867857710"],["14524770602877228595315116495477060253826123527643025920764907535806930409138","7686037231977342817458833812066481993389892535724498670239876638170980544752"],["2927397885781320091781859715496153520645723805653451612917832277238667655084","10097720215097454885269712666008228096625918418066106531653566628289712235109"],["6559467345705180271376836311285668705381837420001534183546650082588502010618","26711694863643634539929031626139116865893718159457132720007788266381732854918"],["2600824028503434062078337830124044330347179916798605633836345621582628565044","17309864762163539995615928944325366454596915096172516303166586881352978755310"],["11213522452457100251097621552962861973726578845297861080768922508012953341632","2018959963952215605127896112364944716743398363624214064972780725337575950569"],["23415130283504810400822579986305495642341899691035199091464964509192289202172","27886134715122508345077684294943085291630361388022677500608671586111759437528"],["14623360753076407053205418670486657122450764761549913777592576415815213961230","7318703804557677197658326212008818864045656228248749998737083194620859769648"],["13967515164685831229821176584178665144502272853306657929934829043774736313581","11837788318172449161108618505801621635139990748329868059902982427714930742400"],["675279952390111476363546633302920639572961013582109224242944434159750069376","28027523123368679807474765287006370489604424310853608590390752195799648328228"],["28030933578804772725716522467686079841417399257164683183301774497070618742706","7292568674252432194294164740696419825892151382072984342754643472536915671059"],["12684159266362316513235990646471507510191406329281901119274676722900097169040","3319622232705859553819628611934083533795039265185660089909120004930182326866"],["8537874836111941400078964991692453129654862056333932552816604298699637442505","23594220362491699705515988290504003929455452813898576533898122436014439161676"],["10735014755760046278982557689568054063995151334510990687550623650221810440496","24457293311030127612979446204360245820518410456978060735611098650713255494348"],["19779080974834894755630104212853551071078025537395991288261005861823619921430","12112332325076520560743624076537400110712658447142113405719377907209548870358"],["16602868310979895397031601895906598460806062259204649122565992813840318810142","2633933172795417884772807609944810914475535005234143187086696096486409391693"],["22222613086691554260611688933977148195065450853889387134618408610418611327162","11955173251015404406292604708816503082164053269819790979348188334283856795054"],["12044228022069781762384607880418141591572008236262921378539880073926034578025","7675765922955283948089880421962626466201946030961813136178085861624795196769"],["22594724974987510133059625761022087339697822978518694101656029884880337537700","9654079451875924912673313375939118244154883891018195201120075051014967446610"],["1150643442902905242321565979364243107958208729084265709989544940067580361205","25496481441869853252746107240949020457333127117909349598753910977192150731734"],["14421394021552727739052200910445333273349464430661923353011062002228031288115","27098977965852033589672806978503918906319166841424862985091643629939444998436"],["20901750716456248679995111087357225906605384678358718977482436716320322649226","26896875729331950677696612746314199646866512246782086326593076304971064058524"],["27566409302433188077818563416968812535370819771772998091170138173007992485556","8705993026804324552202278812826070561863030641895475213952708060450790431873"],["14999244426324019186551575014807150692038517402282292009205059615062038769289","27612705766547302504338913032071728631443560791188643217445480947176121645190"],["22355774603624771516139749935314622187736879772491441177732352686731606624397","9290669322939201599409577692164925435068981118102936260027507157063352640507"],["20696113654443417142141232611645633435461913036172450972222961405905177503076","9078219473497324340909270335404395281905013529616125277079384246307730400750"],["15989805484060661051459960839133620507381093525182764619675805444003268784964","28050831066757820511955557677527251903653516708341331014810050003284732729357"],["1194204638366843431178588910130214860341306505579214975810826176243577698161","20315697560045592989229590372477411082777694867061593229609704763423104132426"],["23595076302619280555244086450125957895604701889115857139879393896154224258038","12525551433145712730779278083878681896187577560171003674595782855753032749048"],["13550387881044315707704756509260670945751314749674854559759176360788097169974","28026515050890325065647967336700324322169041280998017316087647982801112611440"],["22053026572986942492331574786297515891805723946774153206790516024900321796155","15256812453500106604282726308664421808378106105307920715316066512239950209482"],["7407110649247481238625753792252840467972187574367198205582875907225537871875","238996642446205726144524292602676297611309906141611098350191771219598970787"],["19495113198623907752517063876622710300192932801870180077042699359025685717914","18508622270645471601037620589540208619590184055404310399612263725736967456543"],["11677743492459086379306716487282628614363925446883692493165283971669490282724","18084141091797318468715060335163087777010236306125098485085273083833963420509"],["22448002887484658193063308479051906636066100162289481038193674756677294959072","16704556760718453500828391399127374903053175054536404496415077034952616854999"],["20854583121904362040137772926329873711090378761929154977107998746853233397753","5456680376884324141299054687364616107471828999004411121590418163497609931069"],["28079215311766562489106204413551388532227851938573378967790935464572555535524","7012686907155507630987975275012578619950075153335370783370936053164683625150"],["21815576290728719523099104983972713703907292548345280737612291747312458687485","22487686522310763110734203586149543941305942360979018045598116406477076772111"],["15771927597179163455665388336039410615143859286056372883708372155127344816041","2275641907046126650642933170779447381425707836642651220631655699638105532454"],["26866156481368896621298298881127298996946177738009869711527542559144202772353","21686320828787459512637980391853433555383731787906194145814836304196787854204"],["22893001346346735963040787086617303525489121801107467833719193812312038157900","8164430074764900781570737146932860272531742922986344429475420150887300988691"],["24110933149176047632366791037708897739836060041732493731825455627593797839318","24322459356228730261779154308415185092826037933787881279199370875112686014371"],["16192899421393143515525698312699761284030825578102558211735946635560991083313","18318615697547337175128954291428186126044986088205756402685172404860215000387"],["16288609566360931818554212725304025300263463915128713173239889829543761258493","17256392564178516557332822718632869398207791255638425174536804760242571287021"],["28322275802933778293916471688155617493541848878629524328064692995778574583882","5326426937218299773087615862371097010451098006922920715115429116145148118905"],["12955654003923268645066877108139563810046209996406126816643031360157578381734","26868399691632289585270767094497476064511493251256869540093112821164546094941"],["21719962225390876634909590412652350896297371532545612333200391851295384500835","23055350777446729391015841266045293499004302096108117802507703263330289709293"],["25397236589910060091568794580068964325640605697912631860832671499593832886327","25638579456716619997131509789673975091622970621612084659666030348051064075858"],["27540085178402907893706222276962660861035766219414824951956235583614860337072","28527059066804911561780753124716919899451840563927670787878424523454593648721"],["6507337017411652865085273056561829380561140947867916632630534810224321012494","10832894512117711161285150093310673477012774671922153385287580112570419221156"],["26496465833926112569152754152023418346370904253718771916735255043225456421609","24239177296396473127298010934890950852418489868703949415803315260435114197200"],["26999448876933866363559245792422009115270060601592609098307131545078186224717","4473446865446222948046138445576474425305187853589574104974811461551837644049"],["26613110203384484697001974592809818583748009034782190442500347101747579203070","26721560834058642532112697648477031415115775845943009331339288838504312467889"],["27075524072600099955041422557957240736250916002431973522444821528756784693439","23610851087518256681070053406829051496879993175512417857549023636817035774854"],["9058132728314386418465473304185847133496355795948875112198847188618132083750","22670693811678121681402667476773984332196164630966679975777940851491296811655"],["17845077387647296127472914672423222637901712238002069966736393623844602819795","16016397867012054169408137297480445047782179559389001090105763934182639602751"],["6417897742202228270271445603553286817046350475963128360808635446639466762250","16560837295928465617996772248976646880951902890197102783834805199058477665361"],["10295256009406437067943708811203206235944197275503331565014652042919218961065","16620370393945597720484999718471237398614736229464690097177160547896032996709"],["27945272827602670924750737376700641646382541126244214088279751562317010877124","8688695169106498651104025050054052871200234211591668928353356598139758994061"],["26034322178802606661465384307727628510101865762698688162566043088986876128312","5149025649611943903708830153708375914893014551239359312350593665069837357003"],["26983425901513282716821557344702178014442057781603297237292683799716457381657","8884945179603512683148935198543366458538976508206466915537558414215119450725"],["6289901277651270438718361696376953917251451141752446005778684892910778305684","21748632451819764291982648273258903138772788826208768746892605796652215998332"],["26853902030640683506611393496446269225191170896471370813051108033004834261652","28695157799109171067747178597697940898917568202227767220622104638061669995414"],["16795622189541865930595251210086440982637345049845501762865924792713096718656","15268237157743297574719477110633700346262059246937228258098925517371891138412"],["1972992952771607562207213794985192220173222612252013971206378678801352260024","2670510657280280561415225747602422682962074346980785101383871962664280214304"],["5916553618709859591649140178590624474422539950586192909255563118553561169120","11564061867453727689480657641437734818634681240201449779042939604160884261590"],["10916723613012424745793912244690236053503670949394069651278076715704222488745","18404081848041844102043921352136707763196621582807879485588803881776653186461"],["26804082695304797773178944375860324310588460832212876713826194302044756815453","25918837188034422236699715888704495597386481729771973079705415197351409926347"],["28639290760266641151398032886630956987882656228982638545369504079222292517304","744978938013937858587898787352535276650723675864435751398299063740316429683"],["13474005897433253459757789705355954441593575664625773852375806136292819151625","474259767303243596875475195080558736405311712835364443537183425305281551496"],["20922871112038786423648198594819924834623411765455278433985447748462673882766","21223831273790446540375125793517848787841071640268833260785960452843919063656"],["10719420535454046435954285783269636116339788037070601703428623141037757362996","13452901412106675128304272991559608404029344116120516658780058990826968550854"],["10261714896444563362323630712771077361188895933802628331372945474418569052339","14828294754441866178762326193650838075627627844236565606869616758883447804561"],["22166277762697709561420780414892544851655869243945232436103645580177545233018","19968456436734609023215005732382977467993153593975774072971866971278011612631"],["20490598817677490834363070995423227485630592435471674735253387752693502665129","5341661910756264808577092272967129814295879305049587151465271612587129234044"],["9613168778868645870649447422044421339010858139997936746204736577740895233059","26768411412276641248074412658956511892975579760021477724899110947733150383207"],["27272881188484728813985558927303848456426672300607508944864753046819070604166","9807529519811645440644625420485669059420626804419330942769935262434428020044"],["11796379787769322172587581876792268626963908802876941812614463451887333720762","15602962852601505427735678304015829496111265132764122540307406852455671346790"],["20654077624380281386327880362017739939678942429374485222521386562557114632407","19169148850155334661030330947081999489061885467933224352128729882460012933303"],["26086032335490868345000171061093961558132939901283211307538555730547406221787","22614792979526378686993804962537460725901818891459274642690911750355665052015"],["27515418915447564597138034660821605029784985557081338699986952127797963136040","12035628556077675347164772035603622761998499924407813008427697720130305366767"],["19773265949353383770656195348122816906053715898646577250610836532148098672148","9145265243650688397996651884221023526694227031373368598599899917257598073987"],["7523059426078774105809138996755950067416560010973390278161766161659498296079","20479386649924600462990296578106209998258114410423680103191262772240015309289"],["9060971327601156628429575273457381901464373829269381546034227085833106670327","24182713162673657015526411137300463678607941001120380351818073810064766671241"],["5349393321964923292796907057873665721611610308988028219868185329939738249559","12394828623010885922045751628443508081052553176634904666406903146844626297519"],["17964141056070379588153937940513552729982713996469905516675250038949628743824","7716872910665572073788501383132893224868112840595384171525451708563104034980"],["9966088026176398741027347097365018518747983751720880776044094476065533430963","26454934314530797432355128849193646237309233096233380171859149911681272207593"],["10267110918228903391202117214692736662039134547194267223541037443488344650861","18336975667055067138202721657746705204989482856936662547340362938297794687835"],["5440029259669039654993083702655088969698023687376849712777288629523864568645","20891635301224997869454726746693596901249087467213394679848260510653907883910"],["26646133130732923747943079023199477148558948361173697995479702031839527544056","4383142378973930981323862119107577478008343697132943800490002470250227830901"],["19679342538750755812403285290912620008884085462709936527060673279164679322213","3223219742035100489097623531412970505803103750391065149874809152902961283752"],["800863875945117640524999837767399645652575210798418993256691139279988039540","1524570625502592951310604670519722124004241897818602202487304500513404172313"],["5394951963203855853242043781889930588078013204092464959142764402504150356348","2915159394767372949798334142713373361993337441403693750997382387538998911726"],["3020658489114970202005504887015007257261793770630832389253994244566673617648","697504195977566642268451474552701393325392392068341746403187627690123281441"],["2725101363510784723620905772801794934829280130832689536158189381710489627508","13591231060399145056466387618751732982374741879710301971745614369480099489529"],["25051785943441406156086856738557302181244286170599846836765677584849980999082","5355833736056420129641604927300644469266464472182267685700660130445424487981"],["17012504975400506789963786749625863595385021976266081874402622813965524255173","13328096933770609665363880305307813964539268626710739599861447173788009327349"],["11694983700224006641560420077415220586498448244398366118915476247817849827287","9951883742027966911390467346617884197220260549232009336329684897551138848155"],["18740072805308042663603702512226945023498449784601780806888537558992870620902","6329350206061662964430273633128933283737018777484286735599039071703029097437"],["9918140398159649967812383700590757977125473029556507339369457772137573393979","4177109236376677465350555301915211668648681110679451894996880683763594268843"],["14615054958407648916937828980936375914574038742529480254378249953122787778610","6727888808444801344691526386889711169869838754657080331079093507469583407658"],["3891103252347511963356355194729715835084050211202405398679636979267793664029","14772210988051931533832141686086774254002553144243381102643350622378128607984"],["26924321779070808488466909132426047435801049912127455532572602116583185495962","26147374414065362633883589929312670215162000749135454906632419950162439028466"],["23738885031776215665427554999044068730980921128497627389667908265926417293772","19091881457017876008393428057828419180623445236757577026370388346435479404993"],["5342775478242335048544016845463841708564134867278942062392396440067164513130","3591432820591648669384329636240941833004773406206689267774896492684093231511"],["21090877679052875642626810615130002055287046947810570723191710045423498115405","17811925035957157511542625141202866193882192950658580906167518847061864819565"],["12726166870379943220642309024083161570808677092251439004009282341226506780316","23958984454226527025683659388443738873443940745940571951200119445953910200926"],["6215396836133055083823528494968519892599781893327785777166341081447128594190","3967516226991899948801612969105834515228216036718657849038419346378448595181"],["245557008574704053288062710165088936611923560377842974664680759216552923026","26751643511905280241213680068987982580190723674176276470408352817963624692497"],["17413751766879414570777048236481866294902620687849459552121014225973673325250","9949683792548892628300800139669644422701664807176369924801193667714274262017"],["903959921093637870481444088315782115438508886277537457212083302046879972338","18642858731958227537871344000741547768963395895834035166942356022330492826585"],["12402688889229801189280157698943768303867663348447997646051693942061715450026","27662818192005733920968194778439066053991003443207993093147736106891445479040"],["296144084919841728705604802347688198197026461813512184249351672611263723708","18749213268415334840502627272319860489493956914223706104110708274175497314734"],["8875104811637214775571886675359999025923549691118472284749908774708232700576","19259203650776050920730214205276283925352521295229619234013522680962646743228"],["27278926118681211148249209736668841523811749300757857803706802040134041795486","9119869033509610597428380375573733842881423084188111833895385230811360520789"],["6921082772416105472729638098901020158981761647308852838751430270391525052835","9903236080736743788845602754900018545218888943719846534852609736870285003857"],["3292460911501660647555870938966539162391413220511897251746247557540090491209","6783306955763104299049674192209430083294857309575709794584508835928191838509"],["19564191815338728539365083860222649720037756251393443453181082456269431277586","1229637061906991163113833356369604791427703553469525313667999190135287405155"],["10478372973099679416167574876466281800999178728961964353602341120601465845937","23131722957613761661062726722471138125676993653009501547449200534720557062418"],["10492155802759158251162851180365607171879351518068943918886713449867211836603","24564501947491706895865955079341629847758117249019885644841845963848727859294"],["10791683037926619658512025183916966973543846215196124123814258951415330655119","15177098771306392544239144307773806691598371934142631560981334032783527023565"],["7034543328827129714700614603858002434903762740694322488066154783630443125246","15154660137709195174584792260438591378125484458638897755254216316452627291080"],["6837053374268141846334734783491866177489353087204927159022204503391912149903","4831915978950703483005205608590806150982004677161451308941131545814296761327"],["8363475403522224857123127585936157173999706199174593560138390983044885002692","18299809343188927684275731877796537485151411988692550973850515213037187258059"],["8218716635106121916281278925457239753099570461931795417361541823094965696415","629258932087937576418383937976256385448437427550731892779005626391298188639"],["25537531760168253554216090353234208104121652726967223876589598919300223446339","4425936613147072826144255573620087924614854298205183551217092275840821419310"],["16869638291072314082117616147552444513192217279520102495104548130818607984343","25062301480162333447926969221694536634455861369653841529366820490197312987086"],["4698670962283218071300837507999723488474806224437144974638549634253549325160","18566108717325908966453296452177383584573558256729342003289269390061574277758"],["27699654008191412008285316312335116226486692709237789059284043315227214016537","8486641540878899591219540342402399822890623322130196311280438448181100882237"],["19019318832576809229404781067281706828811013886766016121114036325630981164637","38272052428636777764092976850864812373777986924967132320727254601630813281"],["9265888065014356235974375226050991764467832275555161578559349058176212442911","25826596237471602222952831996941933023600403392892626367842583800015399443269"],["6933133285417546201150750736219835664165422476124541201473963743495975415395","1268363821824446204421582397844290638414495686653656937970183238568943562596"],["19936279999273554360611313696686220779487370612482111565028140223306823876068","6138258961337543822760534007718317989106850705750649923637502816730910324904"],["22363396069410231238921308012870953065956312924660897075003384112403843196889","28657389999170974671305473038524090813616010738258152573532121970784598422388"],["19859396813929346194789721853729876447827033704449206030463751902693460017998","2886539844343763850008149318657482071678319999179296016618219576250299335985"],["14047453242630549322052750332140199387468159012550464669227382650151370163132","6416016879524802022063608500812259731360034735628477132252132322939304934121"],["27135905045369775302483006318871007914993824343638656335700918123182330570332","25728830882877081919112004423503667325118518945145158737428790467960662019758"],["13442816608909880900949006811897916069856381421146390302042667153101771983732","11649330591903344798493188521485824936366019651347313830933906151512568822303"],["7027906892796137520279003170395628973091941248612182272600251795944953061730","15259155869486929494489532550659791630905556328556071367179856882799599021810"],["24362238638916612965606862314511890826681288252458157060845828530127863062798","20906850828345195748231987769349514686039713885008474130702996359927128239849"],["22806910114809783611500616629053183766168567256482408962191738686876741023469","6523103968819076087391365945037899666764788104675128638134295493931298259376"],["20631781626639951925035527007544484008140112750810477907457656863960808109010","27859855901748644066050356321577415565972884835808612973558643488264040413958"],["10765500210013261646541220586120083071842786405366880617398381197262669570906","26421174285409066181005725184067013761403035493159589302401202093688907741636"],["12425426267944945559639250510523200635312016417645806248962682773224703194631","28882762794109919165925532183741999427562658016892105846085787546321599540025"],["3857543129653455148576364473933672613688813637958679584306609210007163619758","9570451256480744369919559014329152480706978525059481402636526959125985053129"],["808663842525424911890383738926142906367193230593151053947458245357624367497","3146071207153981788481568077940901716814859475309544609288030080437148974420"],["15133935798026300193806144973362403685049214734342050284445399356810934521920","15754430788769376721805980728208185058990188660109812757604685399136354541617"],["26099852005262393042762858351762525220763710223659890430332857549841533884896","10227921066609412577067983153699430466421204429316788429641246430856425383279"],["2871198619759112874845416147822082076263869861085543808539710380814501979531","7056903339317797699178889025996464448600762274122218357096487770215491963974"],["17904581756877620388814758005777014092349616970245966073831759684802842320050","23787511702576255710462605359257089117850865910544695176246319550565109592001"],["6826451369799546388399976211552632321528164982203713660725315769299542532888","5162135293952076103181621001626960213699496129543132125037816355446247216507"],["27962455948028988960041585263517592856541071599551424326082067238958402125860","22972625869118393511237012782491464400174631455249960989539348002065704665760"],["5385251093881178105202867019931235638028172704667795020875623981202212043911","26432751484976157873001622688334036534094529458215898287422873005047402474212"],["16502104656861808269475191051330292322437181911295466332120037425669508026796","20263935399445403689293786968100148525704764902675289404289252308144622897577"],["20434865369269816913550747135865671516647668900191957197445157856093616618554","2984200517022378850681825144091459342068459963598628762653466328330307526187"],["16028270942813827643320356388235565369886492396319123885566488015658523304163","8250009159872041437011701163255585238977423312349667815273444116420862382628"],["19747416509497620361525800539334912311557882043170435069156548658472149772160","1323321482577514457150747996166104148460537486887126610082320127942718816505"],["13383919871288738736588786847631312651406361312295331917041738766177615895946","6385566554467957783336621933414210194353114128955946474693417465739971396371"],["17937925116001293271685679996001951746305367882806989023885893489716896080454","816695140466213341757078025368685977860289940991277411884632577612132638396"],["13802527511163929403833001187799656661191885953494742532459787708882512941305","14578929794847841845615540191191621791515926665778722893824316995554529312393"],["15739168750113344492371754301560885514476087832010577038822176892190895162665","8207331705303646902172137448342139287325369047943707946994021151899191470192"],["23934430078432920852184127423574634607180062665698635181494900479643687196943","1345677244100706133022633477652495237214365069906906386893908186328551774453"],["2768231165052263009864052243342204674096510642696913355273106964892276956745","5659228510301828993534566789444216050457392924264657058814851353705537808931"],["23307657150063072830248590532888526870192511698674995934926039383917812085705","2148651592758375319208148841933935000438131474855887333797028840594724995870"],["26963908453974342419692044911570099076162399030338932635986720038515624922063","6056927062629778086615064013610446156911218653985730678278055169541295662110"],["19472257365976327767799379570881982532847906307845807176462552168424480746600","11092338670716245554067764453668278156344311661938635942586115560431084712762"],["4164007099098738940936274813293805645500789056197054139692297308338133009497","18224551342968117698479043101653984700467849903768866258956087998553045530920"],["28368902176799289239347322952056536764251108534644910567626605249199854763927","12355325943990844719956799536010789933617042042819836413084522492788769312679"],["8588970684558016006160746107690352973832881634905809867337035662790400160791","3130841706062202763699483931143128989287577232956150395859577346357103456314"],["12922215407161626394643329962476931699695844548157781316774374168589323111975","13559571077355881228315323460872696690834747505808775148815297613638170197368"],["25063067326626695368925006763294008772223612162032688276003363771944655720715","11526165402473013817108898873782456813443665523861319272595301325516652208808"],["2624763287729551328326746534358120246052867161727815091307778422899326893853","17906391537735148484431708276800442261247067426743627378371804164318829588936"],["12039864872531785495944821679168346235057438373018069075269117156655574875910","13005434588345068152018818213974216226547835650417528883602549518432199796487"],["10722075826804864252098323083237661451699402286240224766094183214678378107662","8828295361925822533194455856880844325718416038407917776401922736904223300327"],["19165775486676857164241067703382269056490514075564231707178392002456306424669","24344976544860488322877356937789275232025881538013946685273154957958968526921"],["28441266745688981433168063766382244114878268934113957011890093299990560832327","21565597643896498966671003551627984736704623031996516582026888873658803139333"],["15674435458134500171981045411151518062087382448371458978849027101713638962307","6522715549465245708981191405828138818264245717718151409641766680251418099927"],["22658246282331742899738584247917748020318515137992728659608582575009645337816","25635885644546978157548752775320676983448961699018675672142888086340840377379"],["27987918822678341584593724594063318876508245484952165159532972280743190941118","7599247185629619417397746248657548063581793061936859179231326286455388821180"],["23350335987083006816631931158008232319327865096417611015265725845659605180030","16772368464727136289956230171734438918856336825833301552796732647539915187181"],["9787614874546591641081683051655681336341956517725076938587996337846032345007","15173288529692162798657803055722378806280188002726892936749499084605887731785"],["23936578025861995325695285343334968756622094125022511129162200543287965901589","7382781513807003532571780657048428280378792428220423860896095267570036984032"],["13422444641876387138495098100477536280844609934776491524730818174663246885360","15583013676822476859796745841901516073986784589086127265320989760225225865351"],["8731534377958288967666285493747745832706244826903457253314404591923654928919","18991978051119593131718244685839301524302011821920717331345806619493994858132"],["6299404215492731452748683124440305483364686434678908474964822985011574828104","8028368614685812326471133401357183787265335400743275165875453763745422053521"],["14155593828123880228891462084750893820182869355937818736380664142418728821137","15475841969457547365087543297611302865919636907038999105121948811400776947027"],["28589065808394426382899462089250947082300252282529104035440655297711998208586","25848341791567774070918161817553191756950603488312714549264173811931617350640"],["11821234598692530300863394514148471217739038467404908446511155990059740422797","28062882576547412558643017619372528994117507019998609481013671714387177243033"],["4075566796113090269288018212942430526008056922185126864511808912721259428813","24280093572751114171802171806206055463089421740361833245629126523828981820644"],["27762410827434538395965802199466404032037027593719613107102694199526157925489","1054161891035029158371549510854122054518040837699654133171021702581346593249"],["19762724789799283183867600186647439183177189148040620052240129799107519878171","3742912807493531297699870929143537974415444932105936828637081438948207472650"],["17610387684587902186516364154072937494406025573752387297951667829173461895975","2883488768924532365849876605399566539448332046303014274465743621600902293574"],["20331042330367128278671851330817350242791524136605953022466174619722792481733","4833930710832299408022109527309856828158114201503269300121181832273877700384"],["10508595824266212987843557715056372098990862429293280981639052622223601210225","5730758807168628455724809218940708680176548091597796641601441357677219154161"],["19807515342495614900428736211255954244958985339362357803504998068044156169490","21891588512564416902294206937038158976546295885506992181546729583082950453726"],["26649290785984794668341722488333432137814499639256994911291230727504539535465","18718388049721561850061170224687445795421839258302138963664525566090943057295"],["23161363572984312607265251269704497219149004961955926572447364907908820406426","26046586570835155271649284682398588358231715847702016745020155054023856851850"],["6215384463654082627508619376781068279766292906453766299126987732694917059818","16222352285029202987360836132446815592769107184339314048516424600721421836235"],["12134488028833317800651225612642031073778898350190307511525826071703629631556","6777153557894765768401404621781553533356528282582381151749686706348502420523"],["10955532109104732513617233412075248120767298881108531619835076327882169730750","12187300434364529429994201064449891401596053861721372302140736784426956887355"],["27813659832898555381605103650684208965745766408379170734857607614169277170578","13224057045047841506384747962746148495221838144993934298915789362793905248523"],["699593786296360340855831264268054463283375146496914307788400518226228497351","5929441144781954114943890047389680800795045044985652581607188768961934572655"],["22726003950620932373135407567917493926760162759240564492530402320567050730875","10049442307447123997917683596211997319060940489880591904638304286198293399928"],["7117985991540915913355317734051693094754240168773920304792064787675458023322","14184524723811951293614823111270863798091939594402217451990440983610216897559"],["15064661563233394861508711529246077975994226074161716703497105621367950701450","2325530745481734997865636563823026993910303902607266536249093504816363718233"],["18394189136680668124623988856797472635926942563542416862328035049726458419229","23559840722592564664875113328302587366174316530842338649499882567818329013784"],["1811697668967046438959494652133485374183072959318622748758943815203632372562","14084881690173306593929886443148057844139567648876890359036057292432877553665"],["25488121550980943077763340401848641658846179232425525792448991813626394911279","16072656832297702852070855564586737737513129575813946350865094023961295290815"],["26690787749840439637403993448903016736684168381835420681371070884601051945857","5770246938254226478518381520588246952180621080048536589130942850475480702779"],["28184538944304825821670171248292200805224202301461270392463830843787876693171","25435187122882553402305861636818757813177632272245810640298563372174895876543"],["3920636280922456821592845183223708095729569857718186768740412024061666217439","17836896062389819679417098498683380916379274745088885936637366708519131926262"],["23321574064303678053490233993314486618968940438971964831781513084489526792070","28271469939888999660719857667291938428478162957728590156179753168859107920083"],["19998119204577960537296974419539347991202617295815258786653960556968490168884","2754781557488446250206700990068297850050646107596950968833088642170296564398"],["24360419251333346700365649296005903650719368869134310763874679804416000069581","22663291759740900587262194597906186408294809834097930827025458719760658564812"],["19709080021297469461958193811758343377377900148750430590285206237531503123153","6608603060088471044633319593623143370024045293553856270777758558342150852696"],["12733827717720977164106862663749120734522381461977811466510489428989974046047","5405511188593459472443960667282034796958483140113193180026386990040871946902"],["962227146949402037985661505081243485697479774735290121949219479606658647055","27553022673913264790158448646086275239537478643327720725593500582276795042852"],["13096622430948165017563846478789904809823312680417204880608855852863556785184","17512100572573685480095118890739130924555766674515928202975835193834308135927"],["27283547666494262061213122178990747817086175873967220168926176539787207757775","2267129594357356066485019147224403983681845494312347005323358212320139544215"],["14968235567012798876083833891482309608381445161466215905560225814779845348876","6761636846110524654886031300939813851097951844058955162324028166288685008464"],["27421986107872196998841778583874352018375314367340473762298065276920410323496","24103015504319526406371724953390280390837706036617460283826729764940289228736"],["11397080446542767651528660385286396688402865431931882080822521029787875209470","10431698200552641058377938667426197266322543708976553415237220546194348756298"],["8039699715433430157732756498683116369254406801057346701631502715878888120304","23941228441282772849530435097301796684868598552681108394121160354447876960515"],["19834145612823905729276201483049300057940438855415071208990038819982948445089","26399192335985956936672285363311836846300911234551329025987401787947448852913"],["28130573674812547484121335415655639074136218622811565259297324473183706374775","3266270402821776104380183806355143302785181958844451379186063964606825497445"],["21393898784119286321291546572379494217100874707284635591977533935619287015557","25682209431880139291424996504033013630725462437015706736647306913856329465915"],["1135741124035173380405670232455755552324494168591315137180551023454976707585","17212771431570817147558751096732754594821725015061164847304564583774743838283"],["24637272498637051184026561201364809475126275745956135113924482181104258849272","16285266146233981375324198914716870713208110038268891618150376678752613122477"],["2506588707018168310418247779813540003914150942191568768787484494865306976999","20420464315168507021329155416166331822415202133805705168043659662326689059287"],["10630787456523418939158436811134601105327479491816696182517400847386610626744","17420366448706963228983666248806284167713173701594893209389746886500021821649"],["1043679759059947532133270957319559971849972463107814122915740226909243781329","23943776722619076581157360857324844035089810269480170428038179689688267630393"],["20663339227246667708216395033433559757334726535760143960508502402432564677929","15635676364805219643846521890425961072702194077411394062234782035609873448420"],["14767947563207472574828025974838862725494811400967326369816230232310257590074","28197860061513237382027255432756348672041891950089480841249296314512626063586"],["20657628215233664804369776128465631259666347731063396276299621571363797861748","22937066678954522131759957767635954382712346209983054445142498635389972510146"],["9056483862580250673005932574609481343322951637962720143141215529910101097667","18929151830350344244497505833643838316487206273184429825351160907629115997763"],["14925210157107757846998602338467214169311948338172462498940440336631996551005","11771075023214955268469114993261849232329141412029803723056273643075644543609"],["2639033670434538467275805749875900663062925350667698327173607544930433210239","3770690231599775757286468729692786333334401777996379377170867157037144979760"],["10021348370362275801982934513073663256026352525624782593957272854543175240844","21923675444203396841031701758294808864982208770357626201534489796764361272739"],["21368117891060283761544261056193040926406105119537276793718577694003398392494","1929290169481105349922382892921586592027917489606289623084150159010071888862"],["23900933211460740121358383054730194216394293947583926596380353578391449856975","879475435227169331107311601818242251500863837754515858758692178123834274822"],["25579814280313536175285532161033785157104903881457128442585223593022949235679","28163365401054962512652199346355576564933307525514660847282463650333444471145"],["14510574414530193705132077159040692855156579477744516504724330607512506257787","17351537527289050114029903454669338741150524868817052709111140913002836392089"],["2109586418187125385392847123314412233268272609952797924413718128582314771968","16956900746300095186905397903776633173078281936458268906121189619221294640601"],["11398671162651830289658023075106166613006165968514216550477220341497255846734","24533192679380534561399871475236995987694956962031609506708941967538519129847"],["27518240700736007207097229774874978079311115925218747998515347129498435657477","4359533214785237868116444743580189313961343328133767901798943981480810707198"],["27474547762310766361417680119576982584204559731603309553698405155402356359794","20248477142070635891513958578213394821880386747690471991306276045090851431180"],["17355260884200719068588484610264627687805567060495178844211167299884727206496","1969965121543224260598436864693649277561877829698291257255573608703456880178"],["22228143111970372965880944093008638317001352740880865687514223491566138810296","17084325770024112694578336392768527633127570041967748865051152007597306832647"],["27580141862784547010051774333842170524270449391099581677399131718387802312869","25120601615978688839486633046692246679405582475117310131270786914494395515797"],["24288611083035786597867965730551308368923945808735052061832699778619198309669","4530055878325399896852374557674974627949910240829584640567843309315717000328"],["26344252203968389752825024285500985042759053105920427482421552904966843010532","20138802343477273517793346273047969290635086801306890239760390358923819214646"],["17479415932252422059917957703522628982802534722780952731242319507405549219157","13484588980355064056557866910854589339142259529322128916228839687665577344774"],["25074214932230881965078147520604616941989488929399593767067572285328688181003","5828309501589583931967724391888484830721863858231781726320161969977476401785"],["10784349576190276904096186469358840586156343421399283073447400890508282634159","4453134331135310545209976775253111545605271641860469780250077809985656650033"],["23611844401747069144673406456043219245101117873226041587215745287977760573906","1622005511083558012360202928867462965980096587150880370452314885656736929535"],["28570984685848292994272982104888370912881427629769089295920964577624625935162","18526702074771188039267880858960235538174921053091155755925860888260677868186"],["27754787779607083030256207248932618114665247628020943509019041364631299029876","8260954576000628442778026919967833764569348201429655867971623987678528941984"],["16541256041839095887920884999434407458100697612787031859044492299166682583352","28120310656451408541809439081614400173120371307545788985470847998349235978818"],["16212199342081572354687218053534343159959616831578521855646154190177639655080","26467760586095556353457474996674889110883751416892289567129765448972381112814"],["24073217462183544784650342387621103152857847803637935236777960817431893077863","27698898135644368693279755233474007229266419376045466716296674005486658557758"],["13759329178436325047506124190709725056806471136862673504173614725368055730123","379248097694004338844730379488722411575236302303828751602742709451261311253"],["20410716762319313427639652852003594625199944083970870495095207469857042497595","13462816359791336089148212500607348615163821783845949487697251825598997738745"],["28237604105881459713371237606930397448238466685210819941128632992810767398557","7984860445602370356182727742754294563137021649756844984010441052692705483178"],["1908136054715411527290475240837026111122595013290242501874655812081294596882","17333360652283754767522412538797695284147661289162603623957150653637371293459"],["2870136968297989249257790534195433019889373333308834768676762496264264565593","5650423165348288652313091928352905303018267046375586783082871043425981501147"],["9693022693955011881856423032463145614913694881045276024274386161202372816037","11800083074881948653065221258335769525891783534115560838786872598434664458588"],["8366564413070823751146507591282316140111716235110375664987575470585106331140","10616983147190120599282452684677818756053788114296135695121325186617648906732"],["1818702184730299580123706284371049592744872516944001302149065479333038870175","24954735294958194638015466450309684941605865851821400000408025750920093279068"],["18794302146664372164583882274407291491332233174221385684674636364669428899493","27003837656675031967765242758632593136521479459685005147982346792961109521968"],["26518944986335504760135240892480199590110011113135824387519157459024957452303","7498674581220939081278586404834042547687493229240758613713276796713890256186"],["28462173294611616121323163826092176701599487962906098426774739658155154976369","18383734060796824263621878251213640291476743340728834014328140184804791626267"],["26591145497933672479909299567088521375392818376574950424142254687254013389354","5344611903040312093493308434898086229760175312912634819776233381611022708178"],["27854885367417056296686514898169401228269562980004810936250193221904739624793","891346168544419977335848666218525593704776384001109974056251209721734428157"],["21654299076768248755466833705512569261249592899983603443496785469857198538145","10979859516520305696344005948078599478770794250200178595171356945959718191196"],["12550259676123823491753916971216956059028262001027841191617141115690493747435","12838906515695174929852453020660391517722226578602875952699470907364784634024"],["13735163227964413207228526044229979021799660805602377529732870159810582725954","17759840174874670135768325611885181447809325789588408613134248688287496017875"],["16807449015520182831232664237247564235325688574506004650961055642067082231884","368740123178361946262004004692813068785505155887254019126911985731442991424"],["19893099303771103595685354800493912596212072278663019636665183086189555850020","2464999692297972592352095007972640131126627572915154383289215668136015709830"],["11953741673065155407857446550294252620422500047383516886859572075303842684051","26464529821716385104902622252955027970564749922572791330085854254081859676928"],["5817017734480620404536136989707596795594053648070190767754893620030257513406","26000670892175250018645270087678979349555067933729527310963177228064546135522"],["13424699354716697733102391040021347219836837877610924415942171998448709866021","11189771473042848351614496481405874466949776978106426893936360660279683765135"],["3094875523076846756575681355055927956794046996172438469944123588537492879438","14491299367944471129711828442202849253101609305644860358104523015264108397400"],["22843088825089710519677150656790221469591658842270595895353954191242426517908","26780749776279322940244863371701918864042165493345735272226091312188782822168"],["16444468667853077196085640206738926339131182365397562546803305501097780306471","22311981735906205644902678370194940910857392523828682520946791860673486431763"],["17515640785387322593419402754160157177267355735186324774293691094342359229876","5466985295097568125951421544128040813010543981466769739048268956890533820318"],["24856799141142065350767373594753709828352287443811037566136267066601879830784","24434747277810628079310092520834659970226619796704427326368700881948283539108"],["5466529012437842166202149670256996875714813800377221919703250780888133258807","19736659538912014844727334922760257793113765134776489861266229905884552228423"],["7730329076166322406044271930569388543648309809998551019538982440471797102128","20301503717835383962889901373522972751108711147728592323076014566906535452204"],["5489598070883360858616908545164344805209138109038223906858434676205317845028","19101229213675144621064861483396701507086037778984300464568875137932935959567"],["13087217787368608768874848206565784518035244889015323380468485660098171161508","2132919358379754993731307467349673022250003267563827613626027929630602210593"],["7411598089203935143791181861394923722375390079500520040864848493013575826913","13227148315189440976881387093592770781682750652806171354136366878368394958935"],["11353766998335694826378069617608391937701905156256036723399890589688643439114","20748650779668302872631788023727067380798494025815910561029289950040062835543"],["11213647352930470583189475377324705493228897149990782158339922777485403193347","9886768873719278095267188849203615980800356994037117340666824469725046707045"],["12498020805980779508756632595289519004358293391830825739431904218525426725885","7936151718013858278188124636622003789320742007474568087637141739394698728383"],["4590911701643388834942581270883182453062217165582313409002499061376367107877","147591475290767161557874408172851148171805951192511690939188420534880815761"],["7683465055825705782019877817145254277543186932936142637095032953734234371657","2908800858686953783098193963385310037818136193701058093054090097311920142989"],["10213508421971539323931930032630476585546135939429250061011047260751306435190","23465555245122143283278957429132630972823978443612077803013895513331050929107"],["27744272443674047066700185054685858221802358128799339657108284833189712151960","20638669972125833711870127949080419403614506755012785608735087441353152096097"],["27509595332796993238232280821955986449922146398084664832820167879366894314560","11206894029183352288220192360782296814057632757289089033198520144868167449910"],["14964363552941529107501633369002469894089384900154029108451168642928994937622","18582725419640546286675640403646144740203253153635821471964032454249661608315"],["15781462584975753191231475504774003614127365751458661293081846404275363585753","6769162723076924785813750016054095339606222118497661245999532115529887838605"],["3527494653363508236011853183707253951934263132657798601433363494581117358911","21454894300290125879260741600398409238690728357234423063881082640019111258262"],["17268117261570494644980420133043915797572319340018656495033305819737324333300","14152662983226841582220694372504977511650972205729645366917942880234271756595"],["12045574045449117421269706531739353983608796222557273712951051899371129831897","1568928585933987860670064121854639847842186401833732068398370984089797587680"],["25334498110112840808883944628933441620097064060757439832173949033453461926977","3986902597562174501377679297826977781744542686156160825674765773958282028728"],["5382705091642823476307538607721064070076767165873252313480447742803392337","4470899974984502688770782146140311402185717425159654297180854254729199208280"],["12737733311688662217542656480988539280661484829627938105584490719055470775069","10533334729040770624647755091278233031816624883414044179742226115310877249761"],["16913229926547556728652340920304327655394346423016615846493232756425080478452","21423358957359767409021170145120681467013244823214191579165621436281853185355"],["12537926307862304421015520324099092216661423241069297503855051648010083391457","16128913210833184743310827751490687763766837681060027835080694370657200907979"],["4423728076198041767758938740804667837086782371612151842053180550741007886826","19550143890454168315314497796302905634449854771780254392033859160192777636578"],["3353580481115154937396768867212539142524973911848357900942979914329272831840","10269357721636473722674137267807731939997677562068781598870908645118911904451"],["7903375364720064529262278185003737023416385675965117191210926687035112575367","4725295530552250010180287893231896418767982202811511492009652513989684519332"],["12531018177179138386544461711075982322707969413371721288623018621512826365273","26930187407196166342686601826600637087223828536145147748959049107985316654297"],["26119127473087091223396594394051061041936729860928216540261958211763008239737","22469550672699027839516417038030604920071768815536913633156253943781107498675"],["6472333158027295577770862932588451523631294023081405134226127695930779047337","1905227717775476467142961064623307486266791811294387863520264081013022017567"],["3063252794245448642772404832601029072083466234320058566089908838792620200008","20177294023717316823716616750005303665638324462065682195300356866983191420203"],["4477748214458552536000643125601065101987976781896195230185399316519568019648","2417125009280291168389646635948453019208163917596539306902702698800777875986"],["11352579117568983172601260836023415674906380351699319760675648139699634873028","8536956143645203129265176379824271039426815248292165613847382531470494646389"],["7713114293460780842685819114940875337226448697571845133652191739844840043861","20889606308834119028071212092566604026544954873918194848637919968973577070657"],["19849850210426722768753564041610920847682734753923034572756115365553680727730","24608931028260650787252045546906137248195202578429377136715580708652157534009"],["23326135972793050777445714712939323919222544382273652025211917097456273556935","15601070670294017793430110128393652061169700042736891542563632977484450508895"],["9992300288488412229305922545399369632466345406029860952387733097755205530780","7475907609398773962297259113783113522037621846020082463639381642782953245818"],["3700561286443471719822419623751432512978798811131552573086240762380994276826","25571654335511252850225452003190976752329969451352228546355338788173195070361"],["24446807652095848767520554446068976313082163080164521089673520972400943866114","19340458229635707550788476323828385411943586352383555921304785959849885428992"],["6065069337766932422985599633456582213132501322130146421107376274246550051386","8952743362632225620528666557597681805822530505038724465492138148913954048649"],["22846568459977443920841797748604269538304142019480244990520180354276472232359","25238865555013920585804429192590261953518303154406786783440297781860450040260"],["15456892533208287884832289152121471632511809459580081015498045929284116784490","27803222384269065962247831775539211298972967160712987426361862624836425416405"],["10051096382104714845540555135324905280129173566491906314920748513018618446556","5730999167425038200748744628577608135901877081046195980355009699754670315902"],["3032474700373782720325056764125686788471920748645829998625078854084961081625","19727627784352840949647469819125340458833835924647048237416630735173932593578"],["11563940364876372231256838023090369996258445884275361621097427883650995772386","26468343673069073543597107046732090389866741813910856118629535648947970629942"],["15951673431599481648151488627154502417262968606143928902074525970637139841892","25853228467832806466713606741082781812440765109814406388880284431316759445284"],["9863622114541738267852445232201207345710858188148905191802314607591531255283","23612046882238223175717505688956654472372532221373801753425562762857657575742"],["17594920143099622254303925420493974062887938483556514364496077491261124209649","24725823681631015391787095431659113164879423103989441395734792031608621609772"],["21593815548668148707347843348773203701339030753205973467335482170150398779835","199804670686434239338403714969843264165198765730651057032524302093131707257"],["2602639393387059421647559235945304918057810325497215388412727397685009245879","17237820421539491230265643616875125264880690486961431147637266214746348668175"],["14190374782680293259182457746876409195258222498316742092986253285211915001810","27549544751058018858011355795326669631748485056053313610431423759273465003831"],["4200360874565343975490143448760548921331483065956627057535541632110001895088","9590025098165929575337396591562713741338960958024936122073012371791405730296"],["2423875715187008008937397070912288079659853037993529705238190882829600449285","2295795954995752986814374916188132307231333055791656464764583010099954978593"],["2961816721005824526436112644322645855577696593399673006360117846783367403215","5579168947637675805686119188038033264717941976435350111923889736882799007718"],["4402680325409484644470485429239830750397509384639678207209208435700505005319","13806870602804433356607853264078307435680105411961002408445239901271334823908"],["1391284153065639188157753312038449734169155171677818450616698223334149530617","16073148676651268272731706815521246282066670529369475794210813426044463413046"],["2457734952075386857211917368975638454964098930630383696756023312584859955155","28814669704901346346980038262036226266162323865097415343237978938747177910358"],["17038194604918460431942092971523664001630318578922219868480589986783053844905","17052400538579474222620993253202371154496559833955485739951259045194608742664"],["5950690722664992714902651628681714018775693637050255950879925077490258768882","23639465564254495253035511664668645378448676697463930164157697614499203214404"],["10154500264046804053043388713178199391388704357045428256223496044783509605504","14246470831153026125024490353916136428657611964516135460839692174957234718832"],["376649635395203276380768700973941284274389038183561877651219299348320050310","267944567939308746562646403912255371299252240190712660097909642815912218513"],["7567259251556378583908282915642249667571820374473563818596967318930217812997","3521169067142318203048127963545503373549307361017064328576360475656159424838"],["16410270493862972246217570204090232178486066967384071817844593208582407917484","14237221299490057050946465501186101445356195250081790253055546436542179993950"],["5017303395669661050432748840015444552811613492802249112811075747898961855609","24953442872929215205440307687164689646834276624305346139529681868963667040743"],["13049722116919929699819320334864974234303922926944906626662842688294693715553","767904112659454536770007616549584323721744533996379806279312521105091221671"],["10262748179702110915506212546141297937022865422608382331506982844166124370890","14140689601850932624422183250230490150692287067291337076563057238241709744041"],["11656900162724499301580715166859247225759422436356051806142668335562018979140","20448680259466249528953828381756285987442405559710181376896857215449196689375"],["11638146781999276487647536032393002232418497322428875768682881711116902781355","28423650243468892820922951010542191557007596826862611992106597511164839775310"],["23184368814888915324651092733544046547944246558649126156668693142200570430006","20662624973828010499375528345248382629573593167601570565964567143158250347670"],["28923014519330985920589822527782759660453436402400814418324381139560711951568","10043007546619294409294218710364505332159199029050328237081872106448289287589"],["14284679205140382476003172534356953969382653714534796096841595421358744197043","21582691002572685389117382346124925379268973501362876959470177624970551336516"],["21002657025422400865439468259917159343386783758967287664971668958871623292704","19634919540455114981883456526105204958661354966882688821227260579413167419317"],["24318718708342414823962154188017324554764339702290755928600305931838378890052","18393665975999428999241104940843712719987982652964891233416067225507015148974"],["25230413568174866359781470736025391271855771719576194048585544003704620564466","21932240190978454171525288078049448115630794746355162361448637012260808264569"],["14247009101683633704372008562802436276665765461122256959464909779685538713096","25714595479277183821997013726518349598502250654629052501095314859216282212786"],["22805429569992409060038299527257613731411812840929668434236737147494127336053","17142901343778430274494690796028627261678531969526449755198047263240932273817"],["12143537092777399196048975995716805834570269129742435779244079795723618504251","17375874545990022475093328496999699261735467479308199170416300305309964442247"],["18338811436459539655493378500853625887253570433975271231478364989311031481062","14381629931453941810471192327539307199577671760251549031308865262978496571155"],["24730657749074814986122900022402797291781176336863184406100840608846827952432","7888478538895569898986716208695204894310195786850640422150611258828518945248"],["22594035453032582075973157104096042123899796761764151877553908973780220455484","5250591768505278879251029099255008403151483341370982811844331515005907014618"],["3662556631387258936896137013325002802692743553030182246213837290827959288032","8286899894427525426911286471330785010465980719323309052009614000132581197079"],["25537287393066805283732463131281805308124390725374090106542294039029504308990","2911919661441678276137371979418218525666487990867837873835914167616839335634"],["21851881289307597935885120711076601969529941608188804400646194425346461850590","28931910080194033658578264856924174827946484557105679522021075368348662578627"],["12224240068268979778959903546981785094479090663667535561249477949792158760298","28916911969641109672929638056538312159240737107397496396164364029047825972247"],["18724663041338732657733649667932992275920392259069193249101515811521867675407","13348582248376758168436907983500434878041205691395323728416829156861820713657"],["7307717695936903119582384756918246499999409688923793601212988957081387658647","11347993115348931726506365817988979017883594191635272330812388547377827597148"],["19089708099121336582500709241299661114102556738329243855169123079453363804452","8971817502175486197323922935592187387759595223386666906990849307282648999029"],["1067164395812447379919636552461073772233826695095385537175454496008676305519","18128628751431898519782074254165391597570848651719592780910489376342723936657"],["28913886528614201395126004556755208079760850085805750321798962179998379521491","12475684719682009518521791303988539995534766252128003708256181031533550049899"],["23277830721020638572213452327738586328354150251261619683498482833090983924993","9163481404277268364649968563767545139214706722039807492755481322004924169131"],["11598722903872136846284527739352876029623242461023769995087152017928467604545","28097766391234106190076092297301918421077527774557938281162181075323080702683"],["27485756661368793524269475657308574729308464797839997581372751820590965576153","20733356706392842137429687635767434356087471144118051378436106986375549175498"],["23941338116476192903477275101110452901500490235453992368324536329115127269874","4979700904069887938291422512296258179264840109708721569979432758827994594075"],["20354706966455762264391097244316593213221403918423230349042716316507527653024","3762487775150629852295090564406601798391596056021139243559628753513716104521"],["19816025466050840199884368091563296904938540150481355739562931905563814562751","26013432877827805999374706671113510604144365915150261318696236164177049831920"],["19125986816267497854610933278927725140802212889471981030995585409660055444207","20415356836941211504018161524865258735473126067197289024792771474320992351994"],["511892486609879558826099017749777923925514344653053009507694044683132999161","16507898183395344825636112331903451593838228576953833977257960756208532848012"],["5491676152090972500187598376781416485636514989478376188513836750847382481580","25050498771027440084390471503535106285146123053634733691356215285092900844265"],["23259898988180108044246815016661567805839535657202376328475801883563423883134","6493457381305128654314069079058793283551387943686829606508321416129386229251"],["28841222862217491925643980263517879011635532045437240929092127159622871211378","22352060968446516897585676233290792391192134564516045956262191457288377764633"],["20621273099055903832717218687000006714607458528609453138553439525920394251834","1501474122316902435464527561012010794150981366694058533502598092709734267312"],["5346337704917277274480354977820378008824901626487299370463877986098058876411","1360411305965858444745160622342966569754554444794339037900804513406261074600"],["9047270496315031147703408621307319819727374604893938012293791012834373554221","28569504569021677303147477884161686560795680202048072646236799310123237060155"],["28000818991431853320026009344519740964285320877775659585137785868622076533999","6151606861450181518248117598327212609507548079982698542359646970916259546176"],["22607536150977370415955966390435061829740447115028154169114904013254967919743","4452135460777701563787391467466333646183711356693830915186736400706052254686"],["4946363256892337632462930495731556509487098237188604115198337620522254625214","22484394927968048987515004877619241152791633557590552606292169372447148817654"],["12589549651961607531744332794522222132350742535400578181313303253292098624956","13294272723375523955564878935117991924746307896358839508934461396182380053060"],["10833188996727653322838603623774058806891056499797451459841420614918542953157","1622460502608298747625599074746411842242183988515314410627061874616762378249"],["7251929089412507028367111836416699434632737580691555022209110001849173132765","2944524891885480036777300386008317562395696957571655028419386983680576131791"],["1526284630598737084316563109802641451885270969885220787578409417077503809774","2145228295759768805990184045362447433219475780538529499623100684415924079362"],["5068139199284488584831992933091247303492498004645483368626100463288728939772","3849720549889452047311036179181081790609161548516552405481975133696312199721"],["20701698431415514468625407490386534701213478667860942694881451737955885646180","20015928420139128056101983142397131817567088194985771237534486431360150086120"],["10325086840746367581804512517167876423979860116265748496075989624053640343802","13266164306236154363891677180280743912939149727208735351805905482907500339325"],["477970447746463796551976399204638721041818032747891763867221430417915502028","24417597472058100382607022696217178809865582393194600893548552970841003223042"],["14281525976832426346497156835207086290057659990146684472495799072320108206024","11789017674352646974328789927241632300916055335150546854768345985757174217588"],["28839653048068801637941791768775846349618837020352451476068646992584342296062","16414951267528764377850617494472752144773495965619602482157806482255282703362"],["7977620330136938471384400339821738824497045514730212498701070388877439530499","15125826012210927352042526228943937307873889167588030731731126235244088797554"],["25639231975633379920830789181986991557355411619146303505760358356002294786001","27814916158021725986097457143280117965686181181041131736977416667208072028919"],["20669254120193125380885328767581420195645336902368320595171675763357775559172","15709072940516428815501785111248473035121139329284726236363264927002854651192"],["17791791898970773735696659161518007684649679982498671162728820371935512619938","13213404607264177467947397610008460381653869101193900108790855765749987530749"],["22056996339807678132604828226751616920456032424115613787642192817629712193597","5123769280393808294154509951601471393835649852285819770297086654097187622185"],["3667427128853659389622796698427864456844361952428102548116316094438720913768","17917148945941985344458817954722491949286169311671284863723243494546557343163"],["5099176771155456350706875834763619018701054071215196598180710043496152968237","5052656730319573369869638816385159458456147728901509945903565518671941680461"],["25662612886070873826177980251277121632764748772037672298473581797200594606926","14277672292306301556376730630437349678596452295347850949528065037920322083613"],["8154130934791596118406924528813585590102616901679049993423967771133060804627","12517319499869021549983262238265036934541523043882389323624029834222678808488"],["19134030927815955226293365478935284519815713554351874571149993667346456661079","9691916980659024609312136770838812241642049850246232194778086708259461092488"],["6594096838209951396154812405222720474817451743819574815795870773241993470714","25429243913893624796297631806814866278826451642784841911781584046332455439566"],["23495622692449800125425373850474632480011490499637829286616436868402425304770","12721497208401106740367811023021439994415602887149355863522722561998068335111"],["15828209931705113934792042825680406193751755828163220440404063208100310396608","26566584588369128635682918279210870377446443252393163735700992726100109427853"],["24699688433762649350495094721256395765962972580097842070121633121307794191568","18845149236615049109188046909529244943334341906083098225669972063132257388334"],["1988516900399807593141208550601907102598742737622765700163603630751387411731","14444161905609526128537623100762640774856179577128624147615063774922350464612"],["11005685213869617756483982299883589902517596760806703412405303499365751864512","27307867618604501761314626255838903732763716094936694546435439925640233369703"],["2483433156805146336853912796294124525711280187628559098913794033221242056100","18791741317644398129786346409457182569110792953191769157811130921020372221402"],["23169024079896097037099017540714000893345729136186632129644291721531110588476","24868384088684081821430461751051327363036012359686161579766369132106464559668"],["23818000825896430132274001096478098067624341492555105179286928920414464334403","3202704307983925163101219015916899345564300931188478068811397057253691629198"],["14587701631738586922441432263533643287359903445244708849795184286169731346423","15786702486411539585074090075358303165782508098981408583696119938164984941582"],["647974862013125967147460329449866715497476203509675200187292324821563776028","14846053237283159176116124802436918045682442308973720013197054770373383972624"],["25001956496148282508699876959296159608245719871635687991474139899404790083499","28565679834034026685496258768537618168922039805792754765193314284899313089374"],["5105010815371178679558705803087368008968661740938289627248494916225926286831","9084746491871455071772646975997497771968531135319866532312942307266089880261"],["11778885088100444870800648478790344853571072323930802434370968277684759480685","23060692875589423490154698013163256611118615820142332611882238055021480993419"],["2727678064791083547590614380047779647448021713904481042019387037742984612912","27331848394002950822713649768714977031435523053261332637167416733641680108117"],["12321775382689671926176776160167421212209948779021440822849803550686488053523","14619654095658616153712506844024967222198950541382598762557174288457366179427"],["22544423608465324850421202868815263584671970904829515641990161785633788989414","3111696670578709831789634751059547245863186794644060558713241777879505704807"],["22884163285679751922677020978417953983721405770322330444324111614443148116244","3687909611631874827609459968570109882982549045831671948407206857817426195505"],["25548741249764357366375759477811463432754682270771631716333400929164095738514","7793699044880357670474963527699654350331151675580209023259101598126465228948"],["19155681072052778773774660334326220471606031575780495458197966091581708216422","21218023726526644557917456292257129699007858580526975509419659584354738388703"],["19530827269004255742203427770741333205360891119985075170553972519051023714814","8869645238558690242563190067079604964281288085429300343363494113253875981983"],["3121620638818615356817003654934153306574159796209532213501399867469477993422","14249729720241451061910147886677271070855711002893851784856466549340060102601"],["3146800116871565816918584604743998695110679435694544929470156968087302347221","16020932756004550707824596655189260966921418752799078727594300839783542102416"],["8324317722668718768653684698482224274254312434038706369080712332398422767688","20105329779690619074567030635564377903376992600318547312922268957006079375797"],["23200449594372935953388437228267227585350913875168447680449762083258614459446","17699991445571090580906842040670368042343992005844547027713235705432959557712"],["7098621360283632201746722011844903843939752447260046786209812944202811195164","25501890231694032635776702647923903543873510974112508264773971262329657794047"],["4231618366817663789793059656840613090156924556858137874959009560392623823457","1396746446799537302195697239513924280172595943036297203353226206537581544433"],["21054441322447945375948016915810387620258875817803746494994132597660956379578","19455816193235363493398968294817877142123330125458457319310449983658431347350"],["18676002451917419570177968535951504569721157369875815059561466241335186060755","23698012440052911816365177305999210463885221298946801978189907725731569538616"],["5952636011325067085154738128787959690276547821546753807050879424757957257156","13163582332763939266814008742122959226421932609274505101341063566007275889647"],["25521160981149368393883172850522876947078094499226844293245040013553697202746","2537418850852890252914317501993453115836493301212348506504637130198435477567"],["19145256600427029206523767510280902921843250864752508785415766681311799394055","1724591472496405911128659453871883933344744583996891681434475027907885072994"],["2641739757609451646794950900879898492010215013569548763305213594590691061508","17638818549368603163331152066867003804664064785553827360916575633730163746663"],["12732876470659868989825063909047629321221670391227251946720495318877889513369","13580247318290512638636769397928156449288355915867874434779973401275097647508"],["4489691464759381375717588004006627511642845372783752463808949016077062829700","163966404004238393257202447627945168727949277729248337096382651052989243181"],["7735024517460203828896515823860730457213747121334942321548540147464533279969","5539472451198379982512575567530393843286188864973903407070157584703449618192"],["12513699374898811684339627046925266398498949831952501854244237757265187656185","2892737864445635591279217889897858979234860445550625534085682493541969857081"],["21576620507380981222590796546768490862622663211027370258646572016918083868115","25162914007746142436487572198420449865481766651016057335179415411937398856761"],["12492312913556072539236077213781415200736883560527036931280607970550517186550","21882276041550606179906774933495861838069346372404602478105183896885826996585"],["4932269741466957614165078476899265298770371961757457366458545524568304184813","10459170796960004720456932900723668483885105849648293949732210844399957222947"],["14925501971478220584986637020332440868900640823616336152309066487523815112873","16091722476027243522123462311065124078387928711108065577096563434434008097107"],["13647003227267418283749806110777322913344382679543002223880630180015323881743","23597382749040885714864697894130399929988974259322781504948344151475943247140"],["20250430007940622335209712544196641001614300554264393547220951896527283931450","14944264079339631053096735399558224488493942390526910506544001717512599504015"],["28705151938148574594590232611244723710445609535442744123764443681996652653892","27922273928562215650970753097830281969285000490101349156112224393274904940151"],["22297249954240123464307825176620498419465496336029687397622380141619355130394","13261532175480464529176436307941076687555715309061721853178505422644757522050"],["13482589389736813487676571189784453746549289558621452826529134327952205990354","3637153455008876791155710829481910466372643164197426661896357777640764324666"],["447055987794184466331502906936841089987079041953638530479406390239172610729","14581838204319478170094468023091518197283090355320966673919853559738883388512"],["25646048512810422920050139556251286287258842996875280347476251872859009146588","25878635359068057867423648708227761330767666641300555981936600121037201726697"],["21288557782334999319281410662663942139430583529928397200172292042106476233493","18989346246665106526648419982336566805183988345566516397594666914461440240041"],["23940259425869152047255690039359653306101957769143279892122709179463436274179","15019983778246947243878152598142411753508856998185223487795228271135729865197"],["16488961585497725263211838979583292475298219341190495388024273497254762385418","11971178439092431800594093576480684755713673865817351255454464260960028904147"],["7115250476005988956896589021140380651264862896537936475039313449198071209105","12415619138683091119430005112874409623103585701861435548666698189710801045630"],["8520183328854749597294265637542214865422496661335680041561550395805025754632","15255975744985664981706500507270509674129882710221743705575112807955801074931"],["25011341699957139530389441287792779195237912670382699052941689141610460587838","12074746959567069817085278727582568164081474464330591204200856066310572340215"],["14210344885219749491630719451769592729798345801451617690963087891542657793246","14671306450397874739630743964312285083695561393273070799455458511038345978519"],["14444000083453306638687629525579321232004898318573551541630486263398269396330","592119240300003444199797033211041789519421888098543653843942840696950083131"],["10288721838049358173195889658219418041126927946697909940180705071096544604506","26789371357000871800725323819819124141492078043142111235228148897669303027965"],["24474075821903694847540023213026326295081334701322003804530797132939473855714","18979023402012381404742537199492105129720297550011082581684252017219780624011"],["8249286414385901757056592207507142122959985563423547704908175967467126168900","20826059306899624939405941564254409896306034793644329131591085160173697990770"],["14224192746798323799974558135525694888806374506510857845689798137741483921401","9761554838939910523365558239655611104788644968868517783208894175789723302132"],["5916610142604282020342914999189820582736219784629785185907902920093602028398","17130093223499618343980142481054406188822720945223147262941627094641064194483"],["3406746831844692537206857399194920629889923196959409495181119372835965959273","11243493539509650594483270939509843030974416440149217643005372319041629134103"],["25774749799504675759521695715500676492735985036183861653472527808367146154492","18511751528909280050309194971907541334710620799226535662367699603618454427260"],["11448799926603068336695285310839799286553617045005170908303553736501181669428","19072559681895330832115821134561277222516916984932979664875314028007063748435"],["4153886573257992384619529384067471571180038395037593822047856126966994050512","18932350183384208790641562081364184513187872946086928846953883252721447415548"],["8007068181122405642587184515533396625652601753263622416867677073757600856796","14731282596570316597737402289167694059709390606409649914073005829503514171609"],["13439396857791353766298918302870536045233315468554014322747665369758379444482","19997210342846609171786687787799015334277516489526285337103278100054145256752"],["7882969897661952748815392692307313576411379008182569138057041973707054091689","2800854275159810657303866557700787609688733044233842372281281953454437485371"],["17332268938208573228066375524904207007596829085042993594202661611659810908766","14499273136065052871139941613926113200348592462366465863729539408177568693596"],["21788918059889454495694314112482271180208796835914832126907009328832822820021","9477238641778037949447432236750190960881885953853834457386364739165390170049"],["2291591362809586102043491294772555281443297841209424094715240479653803509777","5059232195579403182891851694423087678201317038641468293147136531041458128244"],["26279392208133876139896790350409767413650031965550182752561849300778546503378","19177225660620224092093694664083295301109491093774171801849716730643221911318"],["7389341414719751491760821236199161353557621837385298185531441150210260223614","16345627639309813365490354655719920135980171183121550784052088013629559455572"],["1164638051117952821976471367961412415279598031454976345844790018509232834117","7045452575449195680035116167414071254715313636064814756126073235476921625902"],["17893630073460488915497099507713500674117961761513917557690805011003379139870","5559885372932901083007113826205929942458837804231584240887736366148981413664"],["8869753276929960150262434079756986942060303642090379151169659362591133975286","10828126877361928283690232344674461001636603224064632156816335679753046551784"],["6508160212554232141173089319302533753174411467551458074694262696106094575557","14964332271401597889290948458525187088488495733684306936111243766679054581437"],["20943955470288692784085727744031395845996935545985671939489886784399472796858","3055512252482651033495213550003932795949536846929081978952089731289590829060"],["2660078531787628208297911262683139557343335787824540843949823798354472624101","21077954056997573231708139993028613617133442259161764070504744174460424585122"],["12554158975887258640870205738227142350935184892139263364818279630429502885650","25437760953437315574002922890970244004533464255979506832158560783356030236880"],["3162118786494165329348587600479792005519221610743785579702737551865388980492","8766851476943070337019645218256269057855619762844804728132073778601717256491"],["19791467760551887831730772497345132214344797965837584131881422246967763302795","17213703802735262999830535997733278902638211708841280577995352562465383438915"],["16933281625111413661839622247336507929042095277596477857212803525106073541357","20686643030418599550678085194170592258020263703589151249027262746775867376371"],["207463148582830803172286316167193610209140614418576613556946373921822200018","2482159740670737617360960155142336733763653109734434309015003032314686723278"],["7607397568226090443711709541637890197979147832648661315124279328383689420108","13181367359308678641161623197234925264476935276421636014573845450823720241065"],["5863007322898944120356662458996141588369073525938492136258797040149627836848","4989535021157294465859975706721130412464981948951441453840024149316146206026"],["2957564881046470170515295707161519502730732738452560005074959047088922509313","20700860061661088250125257699272406649988727992434186246646692513586234349294"],["6649773292171557990204468972958906747173398121151362818281221502919835614086","14019591595491525201937630184756669346648046874884365935735694466489101464434"],["14585402144913883476903911015102268510291766563799744424910262709574304095660","12193200449050641810001804865109368416584887444494038888633032386783886533489"],["11211009720820244492237309385546602067264832803162966720525374212867141396810","14149424800544764240704279053874646914835121844528987777924973719809794945971"],["20433325446821338123928418084758065223869503862695673331251446648593602141665","6502361940235485246662578576841297395858426161994010297961203245089074369685"],["2806315241188815567835451266769764066358464078843691947336479134075866117831","11372340318485723053871409147783852566335181941892939814371213054209406374914"],["18670701143006307399988610793350162482855380223044341391928997764390792922002","25001979505975434339853136761975136245668830251340912051129136323477268530872"],["9758581600815251398420268586281842097966247601883740837713581645649801207820","8923541807842556041900982461370542320092738753703447146550291482727498748183"],["21041111386047880169021236360819164430577564689577075134132109324965755722917","16372045329080308233766451872179652078537338309439252809504184447130509858153"],["11980284720535002721080218897183976987602888075787177608613831580706286739448","18414520791713645599187854165460605642389627222621143763041343120115701502186"],["17680846820880782603189271602453844129958304498941957381358265298524019351637","24794088217636833752770931497184888967201184619972226420637763607224832822867"],["14569374808235735204366255831977982125865984491596281819596554145304497384897","25838865083220187865984949169570600574077012526303626430190763216977937534903"],["12594316938261287807204867583596481099610010409641658363183990574751534434373","25052849779578250775217050076163232298813703804877638217137668920966729100761"],["21585848466699874810388797549598708815786704396739198412150114975765861688057","6786481423748284995174221096481017719791336571951162779678429063838801169794"],["7711382873526742122752981515093933232996818686714694822872696595288175232912","11742989201538861715048560129264569584626607181502241821284503629947591050156"],["7510247955664222814271094598691835323919440557314614853531849471748550280562","5913842692275299076752376206299461960283583993720180294565170732362817252156"],["5630199739657139956714215729503253219233693198017536240343998272748761957896","19745867217234564959622505772305733930790610840731753253853745340089098652387"],["504189729866278610681063376728667578715502700192923232109863576136036631333","17654751416647460339437123166822846580944158162393880988836885104624346288389"],["4570242576450549814556926369053770041036262349624711619920519468987024696324","28517576374611291353342968902597716309904664420626184371836215212364620712297"],["12489236062026305694677419495085846751749988480559660791522446054429669264792","5103234852312272175766285825467604096752899881823205425688730038925752189702"],["13206097741010088320845338844805292530346180544894571763364127971955990180860","28335927186491701861161198606773347503335270412889043315220133971771344432678"],["9461331746848840129652727199173212859636499798605524095233607944748820669661","966209418642391543171805566213024372693688778762151454476935120865941210551"],["12306113943882792272425265964283410361620413679185407151821795783802940095032","27774502561229061047211329996864200268243104318700454201378868790747065655166"],["25141270691826171896893898306401596039956231090074418600169527555385037141558","6432653776799022343186724028471359269096319682987482769089249089070698374958"],["20855920736364380706091123375808916584414659702302382033653811676579813037398","22647829147840470160782392986892877432904115504142011861102813798494324768151"],["13370988829105389386460300471795297534216735467861951604911574438061095031226","13762190414984635625217514168505666493786049426980722540992699139387753483682"],["7301335393455285924642383687933727795128974410524004168713931205506674882485","3302718317355952486375439222144630581549650434629279393299227169912845944390"],["12265271506685338962523206537818061883230092287643890367171998646498888499646","22001914781861817449750686471248478765145335506380249815846563356985070812506"],["18237639565180355016412431250639461837576425727429159292926439620421346190354","13425470867324751454191650511422429159461859829278577857112098400850978685323"],["27467356792255099828042577055599431489210623257517077385583308305016361612806","27434807010398632165086023187106709530709430163730815424121966552276060369412"],["26108670231301954581563651694001857180670999986970753121033097103778383660313","25463996571174755783224229548790807321217280949446115216924315143155573731778"],["8570228084869668123125255681791533739969846890476429828816226169444170874662","22381339919566545492172648776898340416890310766960377361642248920964789721240"],["22554316893580706689626435176738287064835382242240531972888360346673985951968","3440679948541452785349680438407724401171610683784369071039909365337477479962"],["8122909698372819993440857312360054411871122905259364698129562546807618850349","9499593617406592708441351694373736725119631006400726563734670791124414499695"],["19576978267436729476206407194576166098374397150839854696668318072865103440117","24545168341757845973659927769591231622387966913326388625438590493747987002082"],["11539660160814442384931831787145777102182580330231572827449195729613503048291","17088206306081432932666718439439940070527511625645604270758330977561236977848"],["27605174595158729651104135333590126352153917488167224183801095021137495778597","28050643913687444110549229025767649327718158534979807448226723704565746857641"],["27887143993795011388291951511104560083680950209980203580767554326894001596903","2864323068414458606864123833847534817316195062611122719718986638864640995940"],["12241784414759649395924719854410273150828440766577788093682960991126418350957","16601821527896113846942765995063484036231032299972089849532192211732078202640"],["14432106027801259288723337170838581785411356425067402363246233347902877770604","17757819340903888190443653886036236907696720247843833270641154178637445371832"],["28892177879245172785881930860044741211884253302306662092046388377893325538594","16848304165776446133040704650670764203823705248251977978779116370711287712822"],["16957118570980090430659362766612393166302868459759261393228325338582723165819","17577014147188446455566329707747008359018431257620733039329642016416090021170"],["3988466832961498270829585354525309794323807504844590696397773116457720695317","1850326475440619191504237572553902727396730510838189830737308504222537258432"],["10839144329296973225883938308573209334724189404413998682417871797669333403195","10191473040071165884396042966581426404601367351017956666162125961652350979043"],["22460922665400083212155553206088486847315476657748766742402111726383943853852","12157879324053177419737472910907336637222348583462278188049638600932308405202"],["22928376064901022924645669938713858456298636315270200888500144444165927300746","5684375693514972140254093909080449195373937844068335064423160556703230286647"],["9789380973357089709908183602964101591673989568579879757278076366044033775685","27548772836167385779163552932353202593657784068376795038028573518212365212164"],["19496309956484118803266553692132330223166589494531904057475405537007865763252","13935148491760827691757597909739977026667451082739516321627822167199685490810"],["20335605780282530852151302564408217700380534519144427468859492232816576183168","9555122846511543046026252910392504345310722614467886860978055644735398297445"],["16016610551187699046497960616309361610942432903206698181756938886250237022041","12895637102184443369288361793860737608340897266463934382977705593901671161823"],["11566109157084947499075319117103930574448011073750980413811090622259214384024","26352989385175560165288465437419302880885966059342119178523637982884425309196"],["25637098129820091722406683751534166242554377141682272485531793807628302401828","11137878464905662760144615156186044090146381249165475366817857770474429090433"],["6499446215937561236682341967584633560758132949798264147161855214596089013851","5455116106896594777265480924304202928198495181447601616306878552596568944997"],["20444792162741198759837893494658557799844574478117427059307494244926281562439","16764047087298208526229310537833182894015512972813550377688700617400037412552"],["24440472495137198589195086824366879284145362658339930879216211670250755399505","18623271700057816900580597826604496162541340811306735034006097476945006232764"],["23563873193667419338734619228434445449262793544567173511738288347815012444420","798033800465800462837454179850950617851958819165356588910008436222976199237"],["24015081667864936572983841210758354789026136050384839044990159608874551792762","25370467074588628882778733164979120861784703239150253871189320625386721935328"],["25454632037143830559853347240465669333639235451376713390820678120175301426099","12636938917692859840166730026698338356538548028505226029146053295210450865985"],["4727199823034745012001549500513101967877101395494679012293830301105570243476","21271491725524151005361194446611124537022831650741688714995917604102406241213"],["716951271063299061646792453083643742890387478460078364910350144122878960154","20074580057784892246125830577187282099871462261428822664132393023329634572933"],["715622716887275715875295025222841925238011595864621671437153247776083370986","21585637450988338271663804917524830894608699961060108736044303801739657562645"],["22866191972958467112499382293689141909169600278420148189088743385070659085550","12565468454903543525348890298760876667330465111899330263507687018293149561200"],["4392864586111108615365882878815911873609242256745859931325477469943175301257","6991839250975024988703785271544871667969857165069615439847176550710837501637"],["16893907683199505574649750798515641133274695694123126986015777523770307066639","15563428999238336097481313095877715704912376225088230749341846193850366666094"],["13047514449286091470405225979421286716706641759589029784900144453297841984605","15579160145576231310087557181024903418662904394557440347016340182919558302236"],["4316068594074104853038590141746429477188724826199403379398222233908800705767","14391986219958091373982073850832387594011715269103545966264762549705112888366"],["4375564739092562515988542072037602534066281353691359432947041577340385243588","7872008225259069266284857604516685629216229787746322384492556493581750836200"],["12694922728634510518947034402440313842773891184497496073291229144683803639087","21313951718704942314624436822020425778949203203260170867088360364353584158152"],["12957805165276586693116977983670219384208543359763383046555648592312148145862","4184566885765408200009994662901571859783890853204645546690587284449543332007"],["18315467047775538566295971389282455324074278684695545803185277740142216694926","26495880223156841348343170791415661881366062342459190588871820516448965317208"],["4366198152421677303394982371577245312126050804639422663683825011720403489029","4413018743791262435348731856576768846811675441106150554761554480007849120183"],["26644242395500877761465275325798213543029190185068539024908837729011396122400","5217249463577609966863832511103164410398956290264845212923974089352899621094"],["5582287519938466554361173979379139496159996948992162308846871937313412426613","10468612243109934416075789367226958800528606269282832088340519859204887013140"],["25577709562943693435772990230690832305934892094659368861067350453138351072375","2739625587441295250994118617506382594926600817407854620005385568181032374008"],["1525203805095285280184282495671996327414022790021009480362054867750097771394","7334055602321436651268730019994848147649273047023356014307382970605881755419"],["11039705687480459086066823847856555043333291192146327479200584722796796201433","13259771641827246053358150246182918014676673544751857447004102362647425064138"],["25802391123787304236466477038611359542859539772899996836741118001736024587942","12276397960417677474862212965936074054112564351079789193644280900802582138448"],["7181659429499794536936137832808814770543187500039300154209492829469608725836","7290362002890808479551063879071488136081758545537423873828182725461166175333"],["4495838644679268377139824302048402216231032474456262622922918282988349639939","12317742195809493366962754613156526668588473911523464152673156425810913918633"],["8682483450494306952528214346581339587832926631919081249549127859877661878940","27919666544212083028186947903638525509021988841798641447032371376274034629941"],["9320553344901696720035837492703816848907769321282451259832578020333933097457","22485956324515900374001551454029735535382128916486900612748781233758331677993"],["18123375555506420324553535148112067716636721510464460457777786526967828507702","9432568698977209867113880360155878734497629582601684025602453692469363832947"],["13765040004034621201164534506553032535898803945319419160206669723327834276739","18422072591608435791746405815450539425352141711624283964317105968295600986069"],["3901641668703816490286737173351342433888239560446430488171122341239682143332","3507387308765177665159792705754615266876083851052993254045122989029371280134"],["17224396188321410376714876487358155239529955376031828911702510845968826545590","16508672605678555935089412031352071283997555209648348591188131998465221072055"],["4481941698829190581076947408654098761092563896969853902774728787889952071587","15636445682053809058618443776960704813776968016745588065001471246849559809888"],["22851757223305704922095721032737983464858075739896966619283773318992531532611","26542003687111759278645315894099712459621725963692624083683265231084496657019"],["26375470821885639913534693313661415418170546598118416197156161671818434025387","20155126827598507506572332273538803634696244180598797614445475288537035468976"],["16540523403064980622413230839304406433327604723491328665345478111511921882378","25352136935904421578625936217888435945730589914469952981726839638086799316271"],["27213181692927032723410936043511774923994376940232555737394106100233865583744","11493035431802507352878831277927301905657467764358978064834945136212854971620"],["17083792191411788600738018083176767408709089914954770983234252685499195275275","2027751531366771158961864376342548502948921149444358647323591557896176926855"],["21707480694552310529272820541391482365398909614924334155973274183632426256055","23241659618211184958466665732084248222520735289602367135832088868438740692337"],["26257808110505643677405353051465047355636146918141472496405132376525818808324","8489717012328174824479312036701652386689763760703540452244407472352917007847"],["22588269984937696760498430221159428043969452766000262632533527321262348492821","6411975536595673958632414124316271949505800623255592285551303349553202543640"],["20070266522874327784986325148861304537136368731881315827962075812844447766451","7661618286563861561386808014927425535399930563288868105952937001314790824547"],["19258298640481313820147228401391380276275076095920842493599729190459155919678","23471977956274918522947379080125064653715860411552851715071863998560608349231"],["1998767148980055481984071088239624766951366475303296885227501862230331138352","25890896079394208973812672152999629950391186559015921522179656899385664418204"],["15354244924553292268130055487806339412145180582567375833534276830692913277858","15419761109817738907474889916463592762771909721133870122978827372120716623763"],["24515227909414381814498101733319092181426850356106509656629115924747703384830","16340751942710869666051064831491336503906054037112342902665575281008562088112"],["15307695056682756851693026931334553881660118366880444304449681577530905628336","26029680412507791993411481853995799558001857604880756301195772453793182743969"],["6139065276501424301750611332097114575451069689346570005490607173109236752175","8562078363570802510054372564250084217189382723936048282862363631377834154362"],["4173313735246836397714345533742377279183869582335600800167270178917564535153","19131201570441597869165886702297036849939284643354125938246099266144046390862"],["7585737640915754059432181410250321892968390671389127670364154341232668799301","23450838458875910308895931738683002235380530693840791472903416959227756582118"],["18796247702091691454704494042737820943713396489681502569054224305044328871721","2081403659157942458337352275305699761059865005002765849518721622404345559485"],["23104362883892710656950142115686025630311626047234109377239688132428779522131","8435729250614433653713651375748320522005292594998266402124623218966977042343"],["19346018293050825666078006722296944669402201153272085834975330672359549862505","15104186579594489420783015611965259700160202868804716375650302814151182218771"],["20175259948870602263893118004517689428506859214995829403995219675177054233525","17254344227642519278568184880781996162955790278220394662284645983832632796987"],["6110330464368397215772218790683078024888380544077197292186354158760380654461","11479949563267804461880422302107045747864894658818303200098893969434656391852"],["17405702246445138064515001234810115428506719285791205768302583693504244923901","17537669022767310489073737174359148833150465045039412346622524105762619834292"],["14174334916961663669366551548446807863178335787579266842152354532397477373096","9610561678703982339808166678798354039161407198537718362519669257861708355953"],["9815284085910108342176503376369940196136393363261559309840625280984916670940","11769730523298091006252699960574372497879659521499896299590837924896737879606"],["4818745885299339809172855110076592280820558141780412445794657352949479846953","19293412819703466513004699673044921132547785137339020161432196055410609830434"],["735084751659050995997008377997511578338717470790793516921877870826072742510","17356065522609917857560600382112003130782151052781825651437837246793642792053"],["23428519397639627865612613060168090630599562240739475996116548240929981343251","16700748639407837563883069577891352763637345410857265224768307261385482372183"],["2936987758431596336273225715182626899539080753726790830562193401082696790103","24219157902985682807575759313062548845541403807678645726332384423304354145797"],["12760879232952228161058287483984325736685485532740231856584763972384155780579","12825346634160839064802309740669418188121470915436298492751383937987258494906"],["2729375822385716509858037309064349966468618362385722621850820884770438271740","18625494001066955046227159608817569468578660664482596430856630221777263978516"],["9256366102645592863240000747154620621006608627910593885355564912054510124757","2925546024190231216888388943032211881092275273918469573899966234976292568975"],["26793308183083959979779995260310120848916008978622472879685081797329161275577","25694385477540813252392965523378759379860418512187336544462445107189265556632"],["25643762433061797043661218505029142314979963257222373699415195847711323091203","23927134647702643126480599986902867303668194013161086878448807340234551100203"],["16430530161801253831688941681339261587347238712540304351535393627363463716980","13910901528986366808794007924200863093618577534693564326264250266891921315864"],["17534010289277681934464273985810174086384906808369281154593373853971657501203","1181827300885701629524658292189984075661671879798996917851015611765934286101"],["1938888465774597007033128782684911598029353381443283992149790574617879265298","18201571853254715380570035979139427260400711541277162699484589124548489724942"],["13646234690673698173053183909905382954037932981627883449945359850626775412503","1146822447702899298176823838242964308591363484130286543806586490876500756804"],["23364678020650930375663954369510794662163543453773852063027120706437481003491","8551674243164052788395829168548052748536564250304285914379603435095542386302"],["16792880208036807870664012388558748902049969414266698851657473158699979023135","28373199839871241616233388702405375185220509902741180677403810088562103876285"],["15416598039516337868177361457887210926280966139044275660073289235152284784998","10131243433312497940908152222487497042173031238954527976524192915755877965508"],["617622510619237112580974539936059305740908519625610719903409281139879700549","18587148523820476580485458675346467499780211672541179572391981235504344960152"],["24580223651526313625929154456250838887152197404726327332224606710076077382570","457020017459821956245301084385716020398834422638414964853474730196413660538"],["15565627179586645945845922307657563830777040955362156627048256329553140961547","251513238980486074657733542816904446025954064952205156516208754743155659564"],["6833555769169258012291966398897942689867297688377849394426395329905084422120","6715268780775229610174674700629062995132457291721754735582263078764156628342"],["20003162002644168818776433909070978670060375779964936855318714112593021418291","5699767635126992586797923272024188786444408728857236505256717446435791072214"],["13011335432972028738485023817693839260994288631298756220711528811518878597066","9315774676001902198238570010442375029886894970868531075222207564136131371600"],["18618120281763142948730676476559042928647504850594326791975870858592267877059","21601268270328177484779805534350829619558310223408850859053666367983568692343"],["10578776683511890481411085116543023514998334220061684956336634890718729499863","15984401800634114686303857983411769499497252252487687935083476030483996926462"],["2756010613622247414407575481382669288747330389981081434373619989161354003095","16272623514646643132431005712391651684227244847324448740465715354210585867798"],["12052023956326372787788090703979650031089816533907512386384857000590169775773","2376553865056353172926616591254346567243777066024499073685261029327831751191"],["13110188727279175099261944897385737267046239422446497713565817654614274887729","7492566272170959093490113884196424972297651432155654326162383349156034108203"],["1734660531224333384682075181137839528764100904327603106008762749225821172369","13961784817926809347795306653942934238453469615186443788581657369089294532176"],["6934225660117272187791007933102853447617865814890261833544304984947756950036","23111393081788864601047019312767896842089902906328233290754415585815002403730"],["17151299367529656498055986982640786935743576502689316523437934536909949882218","20470680638273186948188139891664130590018143296161369416379993186278637378120"],["17097168355618821868776566604659184929944898161366561116370989859614218676654","6879358277192293093148286271844940950135021694908186114970523473927990689625"],["4656743061089601896392645813483930293681430940452496360170652681124603712700","1390919245327264035247709720955209932282537469891611971884369186938827866231"],["7483899655002040042400692314024994727359772337587001308908383014009940282413","6949918628456699990888244432367525342508696320243175072392158059450970362841"],["25612675209653088644703954676871215823530045057580707005178339759833529847391","19009916368351333895835394297937803358889705612516885351186204146175288212743"],["13050589123938591852838678418119285088336314313063829440559897961155228810808","23889107103128305294599153220725982349933141527071062634315572822902098632375"],["27199148760327384174394491458253871289589142220956693946401041718022785394977","10388550101426438932217316928699367966430692984369291434491677918874835945288"],["14645168923647103601220614494454801426947188457220561647080417433201441939403","13191619496299807767049031970505139476876670499655493209910377649226471461025"],["15162338274601995531530043553950887750607223279917907623927755101100638792436","18251989469560432833575135293815734642002420572699635654294920273601324497898"],["5605144301868784956898106717004237040773442152551774874453558430331348969070","5738375527305165467957760526245584779456492626338827569338331071642019329871"],["28912403977136304013057366949371234963155017782635306700026623458495242427101","20948296545172462411436194767640727332110868785118304990699154316994668725166"],["15400948899610858103873760972460586706586589848395614773571301772128670463203","18429490553503434046501140757229306507523514004876658804200148715668495731680"],["19646828606173543090536878951631421489474883606491202145317976217914711896542","3651449905157862930131348026638933424172014837457040416596881951802982939306"],["23599663490299967192344436804526340569400460504726958923628858417934888327661","20462709952820799174434664164907132631379519928252732731787216966696692677502"],["7079473750979950274350175248525613903855959065515890239120552112669588242218","22868987035345838996074259923335505727044120923905749628621159354268849408691"],["25124164297615672955837607103957219774696622701777972641596276272939615068516","12304989960715212323699883433800263764709313250169874130787659193603786897450"],["27224553494512269031478805821528515053143599494276687533085969659343965817908","8295794301749025540111797461748537404245673402994962078195226515742991166467"],["24770921895570633985899511540146430036681545846937484094801029719859182422381","10925117413613353832370995474304340790627347753874237224017607149177892953338"],["22696983574038782960513943729328179802489092340158546066487822730637971348894","9697160876560952072112663173255208905165120379975733344500956439224027173780"],["15098436498874221233807412505280716344392535718885781860231244077544153468886","27601893531730819255249556237319476098473975422798153067812541418245968655860"],["13406758563954039601781141635448574536955699332995687783649453186189868145433","26989412783480765375663222814347564170375146113804288494601948864743415070903"],["7248706888350693198479204141964623317060439104461788251427530635979091246740","25755281923794059082827638065594369406962296318742199455735611777523793911556"],["4047129280737064051141868777390997652977027691123766178802921655681168888114","15820877229563695587989926998622267421194422127079943506142877232057705888455"],["15467359463318117576774088643791671453963339440618750258324296051859749712399","16239353381958282120441266973696115738223192068868863322623269457813066417471"],["52532145931326931805163102984648600556827889274326172710475388704207397129","12923721937991011324713923459125061656461711008315527543534736814555040200167"],["2388912125394252648410885807257314722840235752539726038510261235643225656797","17650253750804625847329125835511617340189202987380025118595914273150276800230"],["27143452535968734340642896308789635739561527385713877426431286869021927115262","16456237193972630596501889665658877283055799251326121204270368697481346435617"],["22514244285552175980090953332061034460026985887962409336821366912487220569298","25575399062142180829952320706428074184588837741106923927255236941774260484714"],["24910641777071384867642488120953539781219638638523470344276053436192768645054","13195346730399288943279828150148266453713926851053953484065239896522185540964"],["487815464107072565662910354436904750475342552293844940743554497308279145650","13503950154776935574195499298575401100653080651155351086749496870198920987374"],["26653960987816465837537330045305479272083739809204702988766668935213035542428","6760113886310917980273830783183179452850598952865649269639638018205263513009"],["19016509643426680216347090442537800565052225900954125925082130657768804455191","23958439631146342470886641938195628949290883588655226042071674807925612871000"],["14715842178635111458019576553949374997836413638752251549445897037772682412162","271792080437735777346255436229897712618748525585745746747529870075895258106"],["3698320130329357620497544605538378853712422040965484278983584850396192456745","26423229444862201289180885848522691458705837083909566755765075439632806696014"],["16599240803129060634289094915270652017727327257375837908834880516426994818401","18191113994647236608076616181787427473178131681609948340041984029978830665271"],["8531105942185421514569346884929161782105087742103915620189774178705720555653","1233791610928490422191955292661917239943906572505685349283850904909115873448"],["23648728210413545597677330777213099189096398326168468341560923098370014773383","10360659054593639854640348649190776359092369826060142802795578695495352548615"],["7653505530536170896759763813343373504227770282912091757886129361536237493057","9913252567455988340609555177632191365032826517076838107683121321883726757159"],["23838454426444692656720850952127605966054400550616668655828908484703213207581","22582683130344390615535252342972103640387937500242055219185057697675015074165"],["24667760057755025472898027498445868139840875855161047999659422509106056348420","18000764530099392925517873900887203220134262588875606553663462701390931354729"],["2347395368641303571026769771458991062778875958955240481023129304280963985211","919591302725939511475898091590638407437592036630235987751730446266497271163"],["6669019761854590263754714429878787896772355906777693397077444708230280363031","18326563255473270824470930999749966714365786789418945806347598927727798308720"],["4431612144547337653682807879049444402513020560071000436026248440240208115100","10877021090011931047422249671680073256034748699374242509611667106587845456367"],["8923738136997409577396706382507534160418168131336620146570298951621329732742","19982615806272838184123977338860843553826473351635661746518314077118979901265"],["28231784334326864360177820035068283202011261850615382448156119858483227545897","1325343338625198339932264287685311008534461130695082447046801529511189113415"],["26050408039935210141649727207915090566699714966465407291876674909888948826624","26596001955786816257966661771966362125565515993534818110301391966687320169526"],["6926437948003910493783100618355060492919947143266662917847120561078079351018","4110301143442153180460198043503562590633043983152882936399448935057464675537"],["26980347648032457703839986854439594771857291126091650758158913666803560719739","10161768315176512595706507559836852571800866606661973782659992557314329262662"],["27510638783009239381252212561914492631577686505004446085446784337753781848639","15810285608757826468663937939790343523955564086798898723633725581607358138022"],["2854314034055557873061739801402309081015251257515924111179724362646972022058","18894909513614443848107819542730323478578755625759397122387337027211023066356"],["17514087216725905168207300067523550546049277943897047410717262635497067331894","2743384337803867559931679356944294746376585925500387742060308272828106047552"],["23542637307538405572727409159969438704062883349003616251843381729186169303194","5228014843577641827140612417741253922878286686969200298363752640321080893752"],["22198607303812545978413224250687285286067028192015956719805813089104926158785","22159244954235271478894152084962707068330500101074223703347587590563762699531"],["18797309552562722569933467592086209048661539558517032752801713245230446870616","17699730654886665435832412818650030423242764682083401038377847506255279699140"],["15041813693910945804385895549100735008084908459613082423141716983216846295121","7150073320340191370716931610206885964894780646580833106712749198065474813873"],["25685285403430275980073836744557081800577422256386535665522697493979976913841","5183818614454677188570406362473647160228262593402565377570918915830067752417"],["17018661658248109058201109360765511596804832289328048448070934778721705374204","19946386125729245618197620164949180434531179159726292394663709307220922962987"],["24778109762234643100442899030663321062897040762311026996736019875075405684522","13764838740026310573027644522355762349737071191632005783908101506736772190017"],["18587206248670699862179199122093725156795478176940337111111787773768479979133","3362930422647948774135749432533377499820654243624568781646694866298581881046"],["3256468894716895752824926375107670834924212167131610180800037520821914335954","2038057169566124451046082484831921436595015786940486739889923858380810954305"],["4539109985108091935657950770675911195682964458130214114320278457672107378029","18670503678566848760154587715183803804609163663689220087398036776681375611647"],["20894426001882907613154979926389487255379285050250754354187542602562999475491","1638199087529265704339608006452843863525284815479975459745098774631082507687"],["11187861932786712386935452426632795611660865891531179273232615131330462342580","6073263293846602500009580758108954895252417279616466758534441804983033506545"],["12024835115087773251558906491220003425684276962926794559142622433343849614620","15178767664009079384788339735894053422202645024387838529224419752010473040843"],["17882670367788995887333242163898828028061023059064206431775330909818395852901","22098644076553987060968502024712939592589683449787923318377989851575147061438"],["616251085948322922482680517974099442400738346461382370192607731025109176185","27899885532688289097784547654783313287131161456896778592779792335300765260804"],["21138454216332567774096849968805256780573855043836811555492494472289143817315","23741312110516255264114010382303852692197983690556511611181786355354770838979"],["24972412526419260694437381299761396360039476826858579470800932772879212026015","4696307947536144688774683304398339686285176111547211856070307154285473212683"],["10471908714142068537906129144705576548255803788545535427533984166882212255300","17285293937973865529750529115213568355926672607313611381274937473440935567691"],["27095536184589829540018725098191048107164136439411766539805310528631317788754","2252660614651919185211662319504409249210343445538031577448246333568032222746"],["17558169158835691588503170438400249881147965042781572054865855727260931134836","24196297827675124794303624293278391744093938542148211504122220434977659104841"],["6539161878689617113463572634080040162314729797510376322577308816028204712654","8078937353298060766480247609186693423668992407337483372916066494182405411962"],["28070681462197929120195134098968620404280524937713931874929363293505108824864","4987852178099831228870667279331130121128478067336709552908178438368136037741"],["19037388098097411965328794130004680151686244887122981213483452367044876531780","27939268308485037359308256903123719686757207997420982375777233650898953034198"],["22962092029526784584162155282544069300004570908438732423898448744040481231716","20736987083897626919089614850506098180049372335595237806575770561325600351558"],["20717195603951350751653077473953510292727264163725592723398833877959006675150","16708671364816491889879292231542747758885255719595289221307731289564361841934"],["16829956695742223762713010934520586104234660669282014567816967453077499470934","24375915868508605492185695241077284993425911600313097058685808953267987368121"],["533384532439967128666928222771797557114698375161337917664116484789658617682","20767656511087549707442894329185376483556908694715891663783696040607971747611"],["25540685923292529457566245144720066937083843401348025667454373792272242631132","20019064510071602327271631248140115950966583303303565280366602587849288598615"],["2119982017208310449980360818749101229268711316712243339684950041341297358225","12013500886413611682663426257204060887032150723250753955251897150694457786645"],["22095855184014515453423032314355032925093676672106351208628197938591210707086","550634933891279361179194172549910314108365546187939213641247811360479262170"],["9751107591715516898324308360460366370606813096450314037513576884137419716947","255976773830932847321668291447670814234432722306928407216533441638823304251"],["24008527437749894198102054848383909858249017415840361916108423837636367191747","14261988735880992107660188805820335735287563935626462647321474332482141728748"],["27918616670128757310792251502739435133216851801204238298984817787021409009366","22121552714155249939691085006155304904360469136034523991753554418289673931940"],["21104538254492980095421559298696620720565681383631399843985231232251055556154","8194455705731516666481259150226554772249590827181738875498717126191702687379"],["7656386448829997180813053872329162049373043670660820673804311590547464320357","8362883697890700324419787968669342523885741095574241545311891498230415976797"],["25650906704064077705628583354111651584761079864982160990403388128120301199353","28794834021570413080839556089396089510848965229475608914640149489167040166953"],["9399972052032753645943164777912202025375085468793645265407632946940250858974","9556737698598715270454124903633769231530828099485866181040915164710773412339"],["20752234346920867633298711496633084425893604857381416430567198924675950577003","7516144980772602722042698633055912928493787629299031568913066747641708245305"],["18641267789610090813238124733647657297394447381229148577665599208252802246600","6665350179304392422273092204629156241690204885638069537166719801492580466114"],["8842091333962209601730983405360359580018674594704051686654066525225288899652","4484508843325257672866961929193750989355286771175537828893719044524942766242"],["24927231522739846789150150685155677054395728566086134340918720508716556946667","20006270313406441274723114945794753940992146182453113287179722811401913921138"],["15923691826409670523905455621521546417420695206595772705173285843786270380893","15960508819828072306490525223915552062481971477077732907013915804720625164276"],["27394191195028589039635423234167523421853742599623525818875704440444958387917","21570909393695800345343935349457714121460699205421536937096128368319481988404"],["22418752400287573966480728735338391516827426913110370572907510670454014538838","23123456706996491577190545610928725131365005559998994227867201571029582150674"],["4774556679295167168143001722725352948929469193930869835945574811228785148030","25529873695670238815552383406296203189732529615007393552758792210905386923364"],["6524984171642290868713477776497984777486168584200195739825800110975089299515","6129612267699795323499976026653797535850818704409825645612800836529469851533"],["1484277061162111521748100728281878924540352156933775559653894340096479781760","1551455891386057075391358590857460460109484427290797876669476266645467567508"],["21831948132861308465041380224209470630199836510869075153183356669099600787278","20134107256490567917006594189926843137497416893814806953975529210722198493248"],["10233434324632489392616590607696625598419173186121735267065835598943416532518","18380212286823807551650597414444429191512475807980333582001320040691317355142"],["14326391105796551587647609974109845452562907960257529757379515249257589087788","9351244823589477131006481955935904535416576811402640802969045807670380865644"],["23548489250772069323233552612480159414126167769982122617928702411293239620504","2879108831661315000448963334837535768654011166552273761470304773664130038997"],["869447859013906900001646112960284244639863829917412310362216718247756568953","1141930058081174212040532624372906270959949298576770789080601982124496097014"],["28264419675776409038587974443673581273055267165215877020988804410861169983688","26654357516335633207002896296645143433051094753819810553277401882580607269563"],["21606091975439576227873716339937331762780566216152686163274370864651108632896","28822069304962535988602025495079927960065690223178248506317820451288137504462"],["2633365958783454754682534860689872652232524714089182016454978011123946977669","28630284191034768402038675441834091241187695937012125232926241288737537439463"],["4431430966386108859144193460053968718448057668302701088004006523258534669648","7913039137221861014366197206753396735523265032289972229762261340310727322829"],["9455529029012422982704238550436910525488521895194374798135161142644114227012","26440192259358666738361239207699640438760963687041746424252665487731379921529"],["23030272212350949776580180296665855454049908766881914245512961188979955005266","12907926989310025299482403616703976491993928316407752780708968986980049770945"],["4638155714533602911633577358628829521277396210229707121237923389282542251269","27900500679816567394284474097136869533159032308641784038428518310225319178284"],["21365919518845234631638504079234732184891694803146421413938414357902054977648","23284602728868255055647511159350671150381301912244731178873480198808217867080"],["10408890936044516295172800004482757942661929911465496617697679855861418940569","8186942075272519487223158359059718704662334087509003484718049904101111410347"],["9083454384546292374177314499438775193669555254294397340434626277450341087325","7574239619284554017439229468223545795009805521098340216460281907181171494128"],["21749519080421594043277759603175625974972165689507987446326895161724863282370","25665876523304782884009969094935709123944724912412521859705105466286225734911"],["10383541300123955967605466903356110085972973108054257968135705493727758267266","1904846075115794942191060581047023791625976414223627973533841399397336123044"],["14742609369454031587041956774151888228075925047518127628119178714117042505964","15475206490702433467244377496470474268511375812477817111678536137257651602905"],["12469710682799769651340307645988074733835518329797878948370560980404617004992","15203100807913383333640280781361057825411764083006021067458161975316142953623"],["5268130015468366305598765966917014765904516056070925780604948430075416289651","7139126733617237549447209585953214822180220469963721742782552661970621737064"],["11325647643729183320227182627768812180215823538154308010277727506140985692393","16204095194584614194497042400213825496491228851690844702158641959558418451353"],["5320784740309953021821874795612543939920549699711670933564710301780181542126","3115789967192108136440217969941142346138938356824829937314581185994197230625"],["23622098199437939698301314446995210846423915458390704565771504049024530172895","14081313418317007314668944037409520134938949873400992348575609101024337316242"],["27737947029502856233901801034140031792548305124861528884360557304644682034917","28073438344348465491563579618413345457638754968954964951374181742051189884281"],["26384395398923958924420390900228662141747899431768952494876295337343404640736","23381716473140592787501245622355267965924819493708137523655347821062034155782"],["6428073551729312992583569570960663835858108559340207877375243722495802040218","14044963394890083025719886524240902282054801367345730618730634391652658994548"],["27494027464699962314583831744891912858727852173583695004017200276583343361268","11564880128452772796784552934042813635306824868351709850166913454514076014657"],["984860570506765610590117752170688085011522908252886039511250584823502021954","5885576878865756461885480773193146164543163857735068492356757059044106411600"],["2253745178324404039083346173490044875384773658624300384648373765320789949186","15310297469211989828727163136802558818672627927958529484230858905751020645562"],["16979804852011439968100515873475019433054627278264328283818674784775336410739","28477125147311643753377452019159764956435507343420323745337669123851666144071"],["26916646385241160659052157069620599018771314284094666565533510099640898302787","338413442630297916475842742986717316780545367574762578359914096474983323871"],["6122906443105588305936225699482093938242827194488011525763894190556059409504","7567305216341669852954196462691222365832425206765817517755437589768893342573"],["24327487105968436068444811125653578273815840698689114656570925526741788994067","19075555781749232092616926851189257472465966345109902233867749577900148232721"],["662987608368818459549758529362859971581140951969430772322205661128118004169","3707222095389142416769567082197734267322848633141404323965402809789756785128"],["27983283182924391382916798433969407883074123335229829933896476376372320592055","21288851375062260808442673341606283889717258092340153551351765821215152501948"],["18140029521850436036284937280437822301232991584854721517193527228835995867194","14409702800700903405219030292657634837852734998171516767483545953110961767349"],["27384541890484909032995522854030434502293946201271876100974223052472103238440","26490437855107183843607153155418082960605288684249273344809750057338121581045"],["3796950302848020618417730019256177188328803578989834573998044149152836181962","23866962452375084819492591092003711574745425280314567806899464992715505874742"],["12795472737638611452216407150684426727408991094190048205413190254014135140259","15343056691839852066302078000620107936892546720421421028835872115890157332143"],["18199881636288934065587753186326440083935960183178855417675301497904069323706","26325178821865169922146992253488405504754964767578042769625313222107370220199"],["19764988584740747014333771277889350841095035665493711079016256578909344255789","2525967740288291187325810554848684461113946059453560361069708717265511767383"],["24369789004087024178813568201431792080513901265265992581025326375380766251101","11578655777942858677152269816442746418901642394341260595660737930971116942257"],["16606652501085894151348047521460967748272109890098630818195891478112016053544","7923926775159666421301094223230049463870838066602262249708077169771602347070"],["16388545721686708503864067160118924725766529788918305924516688587972617237666","14716374901836033429353836247202345870449408819213926554566902852473761748539"],["3321009647170214764725901984970718437659838165427767807026679127733591818924","8130536505838917908538503898949658177288333204938373270478122083419463964117"],["25888405356892567871435350753478138737664690440318630632096173651870113724374","9501882075734469247527757999515891818866725222143650207598633534110098898743"],["5608445833286496699544096541419964722539645737427457008475202224787282351139","15028900531549099680448863965599873151696569321188397110626476840569177734889"],["2421807896141615213320981974769169039290886609633750721771408847234395529135","24650264759646067755057069368645526925023619087362807287345033101778294735615"],["13042916012549643890095881253643811169006673635676639009582398062768644446534","8725159612082853432253157536188779596640687886794950935745717615734983211259"],["19400552642154608158531577791946728735389009891452443050456727322646162642710","23440840177306850156324045224239395057597813798964559483824465212307559377843"],["16567684064000005923464937264323124465355021942315979493488074819942344703263","7669889822263639335277044408556754286549197934110302507825444021902993787242"],["25706633527916558727941262623145668440596977596107279066160285425262130527005","11310343887599876602836565947771463661905992796548821739365887643002850273433"],["1192143529108846713441190425518859303194925417818973369289478941180511480976","10610940188161427075740230893931706124926487450887318054814683956551328769880"],["4896879705165795999251848682935979203342201905649060834316467100303461414807","28319296515098059623773801513737600783641169765633620641683299534759573732292"],["26656799603017431142281954839316872457036042028701325364810654111777503285167","21137830927559945474751853463181158753512993596373543030979440741912868805184"],["7515736445276778701701303154317761309520461094672971434053538295306171522803","12118929015468006492429342526184658094797270423515961161704986560412784001222"],["26854213943098736706178253234400920587911373768790490766082894554245397728980","13459939072408734643468283680344881671433201521743595201038317639711867595963"],["25671107144939618969207547346531845172575619677354401609087117663815139172441","6274436909957657535407024741416620853823382404684931693612372624939417884851"],["26134793040220879739328232131666479207504977488484705389190351743219018001906","20032683552536026344410728666117230084065195659740913422101682312379121861082"],["3326375967354704419030633589794772397477041002544369265923422505181293692754","2896732636417598204672627150671824219206724269252150572945611324580312220127"],["4750744129627065907884630756698279440459184966103806101807537712801258219946","27748952791408035142669306340388121500248207306320232797064602872512210812152"],["24029218481480241862680404662841863758442186428347322864221562576038540560984","27061107438189789768193816959183977942022304236008824264336168278769456053318"],["22876662835839431813890660876730506135626317460939824782989521708978590306028","12307970334367017632815428204565738583615786211100813682463331724606762155302"],["3704279304134904180698781814198744886867909899290091805859061910444300389275","23860809927727812365331524219073431598094734914761299292107378491497621862092"],["15471741817956402322931739497606429067741309963130596064069969740451112868514","6960807026083799812409121997976119869232976840555586150067883465821505065770"],["26716207006432739359462972332339727747085553423474413182887314477914214027849","17646613120262395792446358611809853308979113750358310837546292766814444738907"],["5179152470876042857925681307170452989595135664292533223384869564848610771634","13219376371006963315580447727223471892146452145386113124163230803510601890620"],["15413114555832721461172243809930873316436370541040392393446574677668248820639","11664625212489468677315788381991455162064757060695244685437305036467807831228"],["28138415288816578689194903332354278795209731843502759572690611768558706851794","24113249957026742248581267656997821189255937827663484099823219460038018157455"],["5444983084720048525772294352932420893098231722441390498662679865676127017064","20374389501921063415300666410588728385398899605895290995261228860009566174033"],["28835615481695626772909339527069369868718955450253092040819669237850945396945","26915859706858231066789416065738827158161355042164356743111994302009099217312"],["22518178447019769668979547647435493446573339363648360358284366236968106540450","25819381733875332570729545459077608737789023554032640065371070578396557987935"],["1722542545841568105316557922394335942822422617237409138050154459340606026481","10600181410719173669228676383600597225213101437839299320900187362982811433927"],["13893901372616116317996173568085035906289738105538684781409280327774970932828","13032821448817784749363723495420540112960263531045082100018575408398930552926"],["19003015830368472656106945239180425725357350230585631190701020111542776355055","226180742217241068256907198332832902318924201320692485962260255065402453023"],["25663073696271091994643185077028274622233342942969673295521317210708752377527","12592320522876878289118225014308201548904181143728465887251172798954288366365"],["1512650896025427742851487297775763851777691579105928426104329979656899373339","22310462233525663501332671222731732076808959035516246447523559387876491077903"],["3672327683253870721253863688165967747801166426954330529192673599475910601923","1850862167348081656306945285116787376072949774824697786935633204427883846267"],["19116486572159945258443271510623213842202998985992032180159772974072051554253","376461204576133182341567008779479337740632730326782003448644266973129127948"],["22104003554479860227261353320396453689408384509411132083383972669203692190262","8479267958307567917914143441206381136854883513255197678419934810202798188241"],["19802920355513749502179350035777433706477382817643836214963355681294210468615","24174284421485880683484140609501161740140592424159550961819766236651918909302"],["3370172454294661097604928409896736751813793853394914742733778550386903577496","9971680843384276565779691642597638524751566938069773172784004970949801387590"],["24844485995157713495067728165773400405274262919171845709892828974772011110821","17528131445465304242381239931054097305210563192875780731276225998012101145210"],["23097751798608399767983095029320980454117144333080738313471474179250301598276","3885823850021483045800339523685387285974153440644501560401099390313757655718"],["14891413113185076335622817458858280368512527054636333590083679851595949512400","14133138553591394020198947540519168885764563188749555740220323345256635242149"],["11787534571601631472936617107156364876194905619583495907426330612813311926006","19505527187727632890475638590203416580491106970279077834122005486814442589618"],["5331067588721705160452646710293783714831707521366730072532851210253218154590","18078187655515872156270898251721631957021437175347976353820692971986660885134"],["18882190265004871251783088779349128423810060969449168130203858086191303727836","25156155206459692408840687725990450153375864901651074777483335782707014348277"],["24757120978133955976906289420217522839893795282872259055008826460286995717672","20044243512562776209072378325280393632851547732475742572953452158719180729735"],["27745940535978007211600404117452973829815917187873526773705927594310172777110","25443979264332171499236991146994287106624509260301640143690401711767702074953"],["5911696026260693729942759171859143653224735646261439816018200806817589758245","18076081825360041460684530096897117220926717295862066514941940358354538742234"],["13773973853934205043324889151877705987779749537933361156578650997261237679620","9572245303179359162946245599737739322523968116453374419229662258674560320119"],["919588241483715094424490167353064469233215126359937660003986098350785922369","19679142926420832254051198721304918396253887061262124898240448528878508112405"],["24506616547008474046123674511138875022076823796648510157231639027388813237512","4643301286756932667939892679512422162376323233925889357284155883244468744"],["7276657603263702863980070764980216105467237856738078842107637219535111689656","23341709050117893501529329446625266426030678088956104111490343030931288088639"],["6171428701965039971994846314964723485797046470489169008899751955604693115285","539056428017167197179444474788606440157105069126301392101268354390649158762"],["10581046291486743357560677278513886843122977788744670218866373430909646488654","5408069230749064567755860818975416098812634390309776505260642366461436018920"],["26979776434704738197370419816192720183897910974857599074483622542475361795176","12473096621756339022462848055114023605059868298742509419579214878291993217755"],["12116577649608403300563488120587982571703134174635018302798303480054530061299","3756011213259559766378123652027934785989123034062789371032073115349703585722"],["25782807885592338790286698635642651289301531480031525278021034650937014134565","28652325819795540050248432250895965695769035328311884398362644090368026616272"],["9944069696644796890213989165411418823723505250042429332092492010579022605596","22490428332802795892224120803797043895952428947328474162905552545165067684758"],["15858769360903863761674959068529296584175782819481608564227299859597997788864","19975859880960458302008400161754573331588582019782985521193174612525736783307"],["5363340162403266326621461891885867972061098515763254614507613438403032907453","25190891850828429221329464410640319890854252750796210419249283758102849155804"],["5671046871721204248728270665836789836512168244066830694612579485645329631892","13698454031536636814211210967248529469135285158177575754825450236762756013178"],["20239178183991983680655875969550018808337666518717084079866526466023511579025","15250316433564184040167933171755992344241578288810275978290160994373679562624"],["34430873492472642854210591946742129957364408163448998250460996313921476941","16940577863942942415274188039408067301396566817353631234526129104314159281754"],["2376994826234560698061982564993633630017528318092673520669938946219952616616","19194372443848186499804880357460076070092232056579145626080697969968378406393"],["20846213030889556308746810755814099427327037516200524670748330813693196196177","16952135470620140900770172936100068155320052415181604308848645696667274969340"],["9640498979752952135235094016415801430815461998272024962189863400629568951937","17671882757513116573231615545510476258921738796713140727600289051730988732080"],["5280032678264995812712181466380807880056034145612146331907333480933729465211","26448681084502248031000615545889366951724105372793504457719941085410186438849"],["22487446195274057931808902952724001802012014305609362302294937415384273630933","4968070097662521638926867996026816261151688410492907127375821412137984601128"],["18307537744687659993759040005648616967887139199883795236564211606475940459492","8197631769227083661108460753311800506591090017143561548031033796092060968294"],["623960625771359009567316578656167979596519282115057098979177152375456294554","13565722018169500824783504213167881082140289713568565147440569692452527283516"],["8752969552944181979362585982644189571244791664732797539780325759369504082966","16371668834936958618941055421244505158987531968935390806881449283120771475255"],["5527026168032069532844939730686048307210668083263712424107052103584867377014","14630142444897305081442512889031774766201345104607224350994537937631591722772"],["15515203358465096728071972475239844726734034985238110435985602836480378004526","7123965589230855047735480547550334397218363791879968306574698343503443993089"],["2944532433207895436948806451857125114085917024598130005454629900006620333887","8581837115983437361667008142942855103584477826190728241194982954462416891237"],["4596509397631955446470765103659637628766801636876369576650914763892132548917","28629263295057972614388658980795682682783702886861610999142435747204788227888"],["21042010159000018087448853072324176325207354891527906377188917383164684794739","12254294008286093222067206476877606410221285364633103806158015083997452179868"],["18098570814959271441767533258706515129378977958600297736215222669078100445479","1643610079939664957624330337335762851610541945415817612055063169715764897116"],["7780946431605543054907466044361713918517485945043917783780943407435236201267","1814200849661332338341432206610475200026082908370527391089461210306860339842"],["4580982297358226059681591636598874204753942271875909895220679931980045499176","28130381678871541967497686644506223236906783613540249598318795776800207284937"],["21456278498539533329632445233568625399082529530318562884137729628288320242550","26814725123694537392994149611658168966185926780971007565923353388760250165892"],["19531424180035449024794987824208550005659970915369755302426091672056101742282","17025660491785961104264256523985302167796864417491160146704615150787798682206"],["21697467978206927375559589511864881586326958384405224521344261984312227969474","22365867109880842467877009065020698749619907702615368988073309026349868139022"],["511754615697070611672563801044095532413532262783237330676855752205608743086","15090656635705504940016448451256477830968953995514976749785430161160020360421"],["19359982576323117929229263328423550083848689851990837415798400171083788435813","10992922320914552464126823110580942807767213912319859391654109163305650336113"],["19138655111895178380291668508863930518883580576488723846299058531502996278639","25378380903251064650584774580282287467689357572659930393570047047041002654434"],["17330384527476877817842602651430519111538514528891827275007150681237025680663","26493658240015778308638917377847592540204639081990143167301816076849922635398"],["28105700040769054646278809674227653596520819289691427655132801779822131538867","9563293341891661221472959540829107073736353722844226313251428810194682459991"],["25086625495660881919010034751665372857809628792871141138328507324998783779693","25565681786815121454717344435664106487648493711467956326032944046416347445367"],["10173303821620716355566751317851084651615913491733539270850256219563852522908","28515352497552595889298768876311980543162241967293605917809511887226063928186"],["759473470044802275760750325275250994120901742134013340610641555571572850244","22129926084678088915051804442340017190342760072152938995489521369069751914326"],["13915062124032543593337712223363505925161398727573821901662562476291149350928","5031665813159300487217766534538156872515238685324917211035257169575130513910"],["7312928727115975566243207740756615681262941281185289697410692023906616070610","9263965172789677937377038415814658665632374349502412122724052271616051836706"],["25083525992243859670250654774485113250103422764835870950202270780452171680488","22129305913942688842984604437354143603343292243425982735649195913357851078666"],["7492245942967428284214508145386968784760433379541553660596540882667516111421","18122394534146839998876475920299489661451377215132753828320567268489664369494"],["10798574168370447478735270111210981829733425962188227212448948759375207844607","28001775340666906726343286661365498656302365172209633929968604764724392802322"],["6318892151368611648805468947078365486168088918225154572033061705182780491484","11218755611749677816983913200588010046932114547380168231409551595529174079601"],["18954568508816344903682319329907512512506765901969085943906989448639621010385","23969442674127438489955668720268752966539813258202567753479741674146955685611"],["7148703691143988094232513380274839645315968251948177918518935322688195629411","24559723330961010384741032516768029797153209715254386429749778019975210714347"],["14598882874033010692435183396704943174516299076037532845598406481843973861851","17578441749537611388569681408201845462947251875150246971063680317287572770551"],["11138572564804408093439169064179767115918757663739074381920476989589113740660","27776774417987224849033714478726568246287927334025744695988357042238087020049"],["9500711258284563340762011721763969816806363392603246195828450732520402223898","4484708652036529687575100924861242436053975123680183150188201877732972249352"],["5356731723183775507367304816077249720270798954184857487704733275300698897486","6440292618198105803788570885558100423549335412530790796477625386105244121314"],["16772220127261157826794787194419369440576317823644993979839148026958463196500","21643804270501664610157265953612921655779266900019746598396606414088154084126"],["13897682399860711093151020340740484321382577817397140117980226333435051713151","24019761393187031838185279378469573478115163553833958677297610785597823807984"],["14360211392952385356724041556995440974488090436077653730278575794019161541432","12920368536187484309031841317382101440706032380138656689771019933560671310511"],["4832664630457829463480338851442456453926087878025242961001708930686023194094","15255462578773982598934906832513072059478619076415537887045572501646057400821"],["5485179514878498875351495449842797909080412905875818271332710427571434439797","17044104472064050599553349823942726009229457378004486352335748346200124990215"],["5890427019793741334263988770462989343742050672517806721044899672599386659346","751070246375781006396125873409577580736229870876009168230435711500532325829"],["20266994745229572753171036047696428567383989676898891960013133719771956615443","2407220088687846166120161979335105831505160524423058138232772533667056960150"],["21826661588105371550544479408803065662992241635030645453929897340805169489853","16534871778018568718039343272724902107656553585694321486748908057358817675865"],["9558267966730223726558684760559646054798037760124880933964031985359574515902","20274900156872635349191445121485870983962487675331285437373378446641056193911"],["1717833900975646182522181100165021541230655159877064244732052146337744944432","10750873361834889309751570452010255646610811172938975659313165426803053652727"],["7600848044639193061315525274569744744234421097712948230283267584627192432896","20655506410878509200087725964646411574270856252375277855320202500615134355737"],["28689584924127538844656995166621957761781992720169794302545999586323817112438","14527726727354728553332561264641326116840018420102190589178204780436257634699"],["13214003008563135987853105645697378746479195629881607291883713061439478786567","24206563147328212575270114648009807967346246259378037588731504400534572572444"],["27074079567124295863717072743675060004635259096816068526208355386583208377547","21484671664656915743028877017715081809430766284698905811240943467130324343895"],["25107558754165334680371464556449281267084793955087831599593575585818308484406","25826358031758640265181264835491988559875064446438649839138666104759478658157"],["2848877119643275783710564925235396659540122686433186339976038870570035241463","10832749170693049521194583004273530211685144965053555655872897354000618011551"],["8158814278614516473597821474678669650953072011475745100160937370084347123344","5279926442690624800208368141044085162676303578399321136451472466855011580777"],["1964002928490556352916182678665048498372456890153505154991447100470222691734","25709810145874886682465975786998407086476180821872746777095905312999312280012"],["14433007542446608519161628490474710457479128563662061061794119534319473958243","3355727908789160077337654138721582949623359707820168657433772644467361631610"],["25999091634180159135638323187603134875668855424258255632848793008077316158385","1887617576050636599973011488384220637272130369378133979690598786803464620473"],["24620242283408927957599457258821231328463150947128628960754241232655297838017","9932456017022148062049580788988560474908380272508069206270437631216116631455"],["17842858241596908169043335132723525474421857301453335165518051514206538965784","26913412607290044428189046860638837330122689189423491890971358486690171459427"],["10129882093625875529863457657702717801363064569782585902923136584468059951500","16874849218543683085294605042364484477736243766757504826341703400089742038160"],["11224597127911558219872344986854432027372809076833875268366761600124273721071","7581482371132158282050657276096731501333500470021669147730512168600781743202"],["25677895692376755559139751730635061858846095087444538812009530387353839541747","10468657603660321870159286750533267800583877759407434917939736721332090251371"],["2380315514970668996814147444084136133240522675951286964451516819240295231229","5174910423047954199352532381036429803932557311843027637824602202827956812723"],["3773133253728726771522631889502014379563447347137115809074087328281660546902","7320358386249467509432455508180626407476669358519076874926724066840884610130"],["3041626259773252990896065216084986128054213145676419886348395561596339562298","11253682758118104251555013857398608239257829976339594378463610577613439301029"],["22779803858076378936034691364279539271696749654838476514905371496270264042230","25761971344786009028693980046941243235866379312511119250399206864449223087160"],["18643784619538266298988994928908320070710435582671911045532345140144639910684","10726648722103540399219474986711762740479323382408864769311936858964100033352"],["14239581261863569512692867613464086271639746813770558197232099836254992417364","1304661177828612526786629088173393200107277174818853926498897430374410851418"],["6388942804950596499788321947763849524556950720922716543523959977501069261899","19209157489855444432745899813060149628145076364429443871638448248132046557209"],["12441956201300473987909123116941921449342385495801402224624010117941812371663","24667062912325970018868440140314382719158300713896799925387805108778855071432"],["6445029364282285089650862758381099029398676382160091333924958177907905354384","23529366089051098647153979623106476833814910834843580833658136212020886962549"],["1021582718424913322885013108654312707666297811065800324944747625997863787114","5825502861289736465328535226717410176014996326261776147901048505586019657868"],["1989480391904258302474269497844327615087016417956649473037849274834056918851","11581511159252384945406534234856016155010045800712084268699633851545426703042"],["4400251938628389671806375915091821313179050635009374978686793432217276739261","19970590127685441088128912084081857212557458827466312820731256907618214955927"],["15511253402287867038637329931236521279982575160955922379059175821348733569090","11200386305756345195130080829174133203391964352564163249375017756975823104246"],["5202252838952158567124917903421036869338594601285809661086851745166701010293","7631604492547724532217929883108017801257077828849040290207592455781139553412"],["28295499425814800954974915961176461857415752219800561703087925692804019403015","9898790501198797266582501054539577772756798905594719443611376110270981390136"],["13492627139189878355203278780013847889729699640059144880596650676811522553036","362084202697832422856111480962480517078272720074002887125129970494477539966"],["23918072770576686867808657225040582792377320357773086221865023187909242771335","26887373762193806863981274310292161616550663752430634076157754094667902174671"],["516161860867642968995687829506305988396005218741897298122970858674872519406","2444342846591971230232187007996625704208530121714480569737152824175931742190"],["18172391875486301476951472309307355110994952470248771049860801382456738711530","24417929938001553512971297787633778531472517330091509972464148869278335555797"],["19616003386318296694381736131998200333485648378301593257694230863646626156164","13891504173814899717898420873120021223585890734640336376275805144641049226000"],["1163987223106266465198223700814850315484201373470202400832058552540432437449","7618380787354339975033574832216875368195355155510371106921733883778883348436"],["6643372468243471664899420907177242045206176606458119179197703951894585674172","2982215343534335874194258912977200117953665042280954976384061622233419136818"],["6759598394750110940979442798155824604732495370387026397265201677046676744131","18486209917670720479335279864349385683200853663880685726604883626131921021057"],["18644056274471109115099442928360543834751262318649634196540906938038873105951","8250621481646777675731176118111788895460200531214182392014486781562940906498"],["13984433772432757813251716160797239945028688430414681460280132489738272357426","20664168755324140744286921760176320980766945762991878681822886507312748607522"],["26437752269068435842976120508026416868427000484774594737276152875907068954743","13206857725513833025579585563707956476645245353313170826378945421702137125362"],["27158129936006731113226525883943889491802094414165791076870392075760426418567","15489206260862520303738418360728205243867217435444372186072856541502513001881"],["19475198125155064765101258535500622677503771709997134867177332170328710493323","24152265271518507704507744760063395666459333376794850498152879974040194800277"],["5003903404304839821321988334539697995365904879577846750626314366382501368491","3678651564860941638050167368265607597785088168354234609095252887257764534992"],["3635081339129270461882788536164176020225292024883729710376635094852478830941","12816656748708560833038262611994276186647534781173815132068622556342324734552"],["23931912391030590414130729450333490454546131160682672148316558257898013590794","12554054424674005618158130070775968114170272593360650064914808424229855929779"],["3505665324473567626220881023141415524175058289238670747011703037674344376701","3595706315862380805458672861641520195763973469057081008697442490810173133403"],["14224456859084567256787758208502095353685301206303122435720782125736062957888","4417043113325356427353018955535266162239816362460421946760398471418250939147"],["14327943609668239295335358085585570884163387260181906937951741639232307972483","6037563565299203029903097040624798515197413609307791858413387717481888222859"],["14939676858993381455113003295246628575679654111046965503803761067988572596243","8628914108801029500788447935031472114764021115163710181410926780347736043058"],["26772149365323377716119476402953493550750495018775148879177774389598281095181","23764859453089889966193174837967202964935013549336980962914710676633357894634"],["23390795067517724776143783448321477701815994556799708066749050710718769338976","27093932059546918388652100463702679842749858995911310366018604303319162887012"],["13408476574140115620381656065265131577089368496552697670730888422915037379982","6507172277594940986253736040379218729977847393304808371914319517986852368776"],["24104352881766598987011237000768272692457851141611277010079865827345475499635","4896545245126549760998019863354247210961279708921969157549997269035322181256"],["5955552965902618680175370803944675522913964475769413025013813889617834589132","1150002094826828299930782240868951089918117741397479164600629549338405736469"],["7135747615939478999932709691368722196109530377925847200631092113820688755614","16951211516577557411666229116748057053755715047341306460900135872834589282595"],["22066173503690622343170506688950241092971798287840809865995000030089264762061","1992866665209557171164443064385804848193744428567815034475703880726798333087"],["5797290255861905048826345943742113942594428479258600244682400233152559993598","28772097440783251697897111408699330532768518395300985056544702893420899601743"],["19747761478128377469688341468271563765518203414661056795498912411279169688571","9097259138674685890620542050271391815245590466798472177761962968136887834441"],["19382433527725915857405296617358512277511260349937925765671574681829200225359","15919733351492109906260753243591088450481050540027225065946468153511101649957"],["16711612179136995132933824374868577216742317258223155616772243334936715662334","26918749222801973349967045557173785686923716199578914327820382566650890642701"],["8162820072290262912032821286014116152275058126923521670598369232249870384574","16217348314378127646297746073443179045395116184859844758631102551066277110240"],["13623256237203465612645041694379154916659791406920828537116951561728901761635","10147441507767008886383128717481949589658618614187852013614889746322364268812"],["20847980590192203251182217844752306187022976905900257249688399596036257883713","5997793999905883592121962665886109690043769794641652136009440187856985952896"],["24112677116899323195759597937275046005864725126836655474421354692543372126326","28260618147142129751593256484227134048169375028331537129837938195707758647439"],["18142822136108614525503540471087814081015633492918935946795201205785093505106","24342054812175985509902008669318332509692327210304275098336113891818188301581"],["9847088905481092986406604551199459148243890129015756585937520561996477784674","5806421980640757325382619542545001756951714808622450574601836612619810481674"],["15599700192557965922923862203515523564157615663699368001835626223847286017450","17354064519780771619206482464496927022493385562111185702790516360207185752675"],["2658892396610476286558739121881933707456961562625078181898495019217422272034","19642699806026605051345703810924778125705154554781669262982594672064277731226"],["17856413425309922350393364187265876873199585475456149203828789405626127025663","26188590659448595099522938994737093962651939801701138475097872042750368967421"],["1522820709903059216582824589300217820810045920857210241631427877461707676643","10225832014683116493271615507828088968107223110395924154554872127299385210988"],["27060745253652803602170407627485631774448208267669415529939831787519147590219","23237546476470737972260835506714776819159745649294546100809414728914985979477"],["4459385399095508087672849533033816778202426379600641764016025398750801915433","10588423225422953968174246148681950023390404849818330043131317633994790158492"],["15332413476799645641855819468871330048421525800529023390963722801899495578030","17506977172650398450163648041284848869911024803102915640258155691877064932930"],["18448580288384336650755193894602968413803051609411841246534236661635054151472","10270641199253901716479523604810762671210128016262936095871303987732949924383"],["5041698259563273065471894346394567018387105936871183052861982273060886149709","25702649469853005855658689474504234253387273115639087867370336633425153087900"],["12592072165507116845466921333574313968067594554394677871797190779363580845023","10258723294910939312748581714483351999736094896119992854305539200590150292645"],["14806459242964399023539065345698537744518908847911454832117382080732184802298","25149682040333103147121430594804555798203344024559021695022323966297228491424"],["19556767669923047387406358880292504415794085966215499882206646659272542713677","18451852039267078469354737991658189795461513755370236443238199352356566654378"],["24859337207622030412028719677489052068966168145398949009772879998913751938566","12523268927535699286216686503527171147826479160777765946183557503409508177408"],["3616281279955014877964667052413342180642316495098226816040487691953416699917","13138910236073213341813682357860554347359651119733041106937697126525640186341"],["6434778137232738033709995399359661404213175636596111410247243171643247769907","17575286678261076565391747338426744550594048542857326644107301346969686392101"],["23913028151074690644639700692446661723637735143889112029703670845607186027153","11182504350610219346905850798985912994945546357113930218646732650184108967823"],["18649808563602812555205339450284333499435521370179620219709195111998328818187","7800341117529519334260607842943569571173377457893615935393627061389589063847"],["6952649266002647983685002258982375882190188447826372314627886054880918803326","23229599532451006848671052624078506874528266816640560442159497563409931366598"],["240916564155012368292282552553214892900952761321444717183387673246415798896","28348619352924810822154223740070776226825013719023622228982727350307552088637"],["19003830008602576063519043630578909650517098463728036987120507108361717968570","13006692631547069434423755862733015711200772899589442935128190357158521323606"],["21830775878808866145120281883304694826461043649482198820485802903799758989267","5248793089749073284342045974440746105797303275577554444015442063584532348669"],["11996447030967416477963710022548821792639271383356068492090162654356315026959","25609418982449907484383750275075254394401924789534827306687028063213216914524"],["27140088071108573129846132773080387954988820084335489844106912498566170631119","1966994786765142705217046331235695630604841727762212549286821990221712154137"],["16474981373376997729192421333616893962218254407097735313249933542074507948728","5533247108175966606704907843767863199955804204599651129128887234503862042068"],["13166668121718785269173025138886691254089183733358507658350140001466376490537","28908486012923680154597967179320608060917183334760362969934900221892946782656"],["3248292150468930741521377775038893408405083636896984713757624773884104847973","18646289281249912919354315978685961137722203818773913239638278851598977869865"],["2422724212530324257114730035766321832116993995400963218973370484030309705573","17622148678568907292383231219435822185466385956240742770781605742903994491960"],["8895730830599003807252856228530421519912527227442019270732331488192687849083","12225461938643136948739597851875101425314989709494950623427351670261205054357"],["26079861319754519096630986299092436663674619271592306544754195417266931900862","20986085187257355250318817716764915842407867664456377985309607804999056577666"],["26015604960108748639907094558426949934200824909244852580511179938840502417733","12844966493660179776991578864182232760338772400398469753898990531997639980865"],["1221895304674689133580681980970336078645529692501365259175667975496584457376","10339847031948717686875500292961408031904376800851818046752182904080035051410"],["22277257700725123980203699175162588918922858964592645975161047690029886141114","14690086785062757628050280063611797646527990401370069697074238336659813428774"],["9951933267863924277476435518538530557652557929721840514891671443179658462051","9307815612643353322769401438717903922059512651414762585795581889226096583646"],["5794212758984998495991429128802602997393501826132224345742088266005345368122","11619637680422483404348711983599485185756373649269295583466374314814299602628"],["405486753954119550264926181852427684428514722157548679157404905968317583534","95204254399501340655399495791965492340232255060328192335061469459234078209"],["25503285033682826291043453995215935718921557699944583741677761521501644408606","2742783889862271477468583965525995359817356025344990644946703656758026167210"],["13478010176821349159968102180916420912636651375365050921233891343116977182674","18952527435869231043479625595849709318647160691006418142715459327254536338706"],["11064647656996879034084110242649783326212228332501217086381426863028048918919","25130523583895443102949198728974961903055930258609781226244697244440186345981"],["21108989110276129682958291912989854060101216842521043069196728856936222292565","2203067443916316474291589179882545563451806213196958555778785605453323152648"],["13367122970104479993161610986169082764935950526620845741838578416924826522150","14463124620394630530679652294483520753846436114221130365512145478714011703164"],["23334467675678949396816340909196317098077018509804737804316190571611269981955","19662091534257781692768645287912262571931072791874525618503455668277332305466"],["26304153406916707022295742941483843798194628199119065375910742785198864263954","20127275926248815299183409339312287334160845336443949461693576626012849032840"],["27737764507780311572954263916565607699791180739112762399432263457100362685097","28253265009676331705097037507685067374552045367911720641716413986494337018775"],["21864725455816743151044946632040770583681925416601267154566812941949876342966","3330852988664271595323715097909359051496210892061352803880189437915436021760"],["1028259605989162856923813975013241695421495017421326521791692498713360514010","16524901805601976437579194715662067005667545318052922233315922423648403157039"],["15605719562251601613743318999667735092990666989839246427228387105597851305697","6008205047318888154251127574343455667816618808119740757538317894648997304528"],["12748467142751200838156349661259632804631681444859834518647345088834902446096","28830550646495955219896261062439278729113857887786295396632829252740748120148"],["6987380502098781634103737829714051980555722894092418003132428686102712447838","18357295343680332437598032192588924494030474182543539225968885607364345712727"],["14450055509775313568507055932766490400300232139678291049641051233466138789083","14364690094945584245287803009296458634100915375442087462576410980638634148764"],["13758398931099444854457797754673693667187212315899386748896192185813078715684","20629588218531146385012445249328690059881444143706927632708951972823577404332"],["842493455885723572574018384780180750221178738654186311713039660527418209952","14397003069859957052382274576028673986229122209576079696289580791246726107930"],["25453269698658548670489137747035643582814675206102399214002144314010469391439","6591292745245508524067829514278966107996876981218119341742700343219622364193"],["18864976277237961465616561950399846861288302059481405161036265801011682258721","17488548173872159356644854134124387938383324580077778558223011287169377417130"],["21307122698430352090370355205605975149137094896973642727385507310036726204434","26314806422072067560924663275651096545064243443487600377403145480262790359671"],["6724490901743838807273512841921395189419629733926827993506063077722536415856","1017550930388556162917524143541120036468999097377663383507584294747526946583"],["11925289399051475702543873498751657310455349248662599148371054411759730110666","10083511394679286683684530806706767061044222235404274069350313505477500526473"],["13449392011684471605591486352694178417565603561624808617259550645692712861798","10929763348285767686948223694189770586892193010040814412641388325104649558843"],["4212499966258052216075499540390848372153231108433385898332488008836352760859","18951441065567377529531060233439631949443912284668611388851292605249090531762"],["5736974586443399009391936030036926561339786219524316811118069494442054167960","11512782497941175318678381466980930390090133072227662086368130883181991155404"],["7183665685838580909412133089264664807303053556671683681268760807541540916648","10397428463068326224650057411832980051906105144076901083836530328298073608714"],["7497924114101522464708523161603023931720617667281417299020970290490303011298","19195503444321472853446069099730970517227514801983234736986196262320991100192"],["5415036644664585388272978340873308448041516899164415925571185849779460145427","19310861071804097423886594032312902990568280587977855703726836770058351059155"],["5812947511400718524793491849115034306257010511921056675778853538859442760272","2943616446075144640064849326031645144803242977485661519395962948604807131004"],["14713246748228963230351902597991448450120125985708079940994963742338779668289","24837967158107619346068604554140631214124101785895979464739187126558927471282"],["9041533201312150436253157287534914689996790628654958248018150867841953432877","4013715063756099407487597833162536745251679169382949259944878557775508830259"],["24993372046887254032775640115263861669091334552693014416091770671554670172841","2231845186760431508393918280252083628917677850659248506680071419556079928512"],["18450708963788837298946632075895790360032465355916631705720719774683644144283","23508113277128915999174902529275868993800868934232291538115802862030970728434"],["10258915049151515532419171729577500370731027476894925290081831346925418041063","13661882763320522146134425493656796658052900789157315717736168968365882461625"],["17483786065351183094941718043481186456792088207356764546827497857396577088789","16286361329719618798187793454821000069954489091408332133677567375060086520502"],["990128354966249809528542046168921954538278410718690962724271392336441975754","1447545086221333661116832847333577774905400654137924586257604814505606669304"],["6460348939029557226073581643036719131013567175935030028933875718023488065828","19417621175433643494184097356610883932137296080173112604807589274876684451648"],["25563652778067068711408100172133260907915609149156180297138447488553325113793","599154438236844893366033185981856369505952517264571233197565983481379048207"],["17544640576247068013351479027642143066804143991555305361615159122238971934600","17147632451587439353476994092476973448206572198292123007528468897922093116922"],["19210148204773672495731553750541310783191058618401901238972053320213862660554","5993527636431118467355924015685560950043729861343273680526532457895383705848"],["14397230222802677602016156535486119949775834841875668181655209889891092184747","20572305156081280141582785504670846839664798274029816911252563558704294892404"],["17474787590987879139462122675143331689938147484676480609514187111262751372360","24027558972503365398555183821275801834129572554358230605107736505192153112920"],["18535730432894936830337015938301347377292008747737225448306972338957802271171","18782476796176208555590528672620444721871202208061147506914637844232213430279"],["14659259912573117263559612600181827262336851976813191640454940647052240428830","24969403585857776756076536103060023832759345297137687449273782729884249440553"],["6822322743784620170567942243173671752256859125507322478047541648966354659830","9651090623641305831227849254109504547150961802300318210502578502709041421373"],["1518589256430692426235538731968534025328393601381871313685341689024087187706","3549534726989183823545407743158736195095819734987472444998679084376896222511"],["2489070989910202172007575778593779749505455046081162293996229711431884951489","17608330475166297119218480206740606365650053640812270376262373761958889516489"],["5813643765842975592385922559628976462425836812694593137128980883559634271820","19444238778056354361500799433821853837859127677426937878791108598423327838419"],["2577058700714735819009506516654579939201005742476604559784714354184453261645","11760511238018383364479511725960364125192616056049738953282668802741652750765"],["10583463198269915072363550806992960655072840238877155336633082418780365521238","15451892045943295317821853247065849381145394828699676665677743222757279756006"],["7639459922634424601222522557677598480198675643806517979417925255113608384992","6417150868137930981810519804900887124896832177659950542024825784156071979850"],["24383814065318396105059522056112990271806062856957098446185785670478950834682","15877975091645666925815823187389248328649429785747076733122247103294593820484"],["8711753141283441802535458911524085741345824011029681131214391566956275075464","25759944019217997244522127819757306291241688006041722417092047659974104489502"],["22138137254520355808206132907497028163736506923419476259762086703121642041321","15735419283740445894760253950937245699613135847742805217777852868955178965139"],["8359267853549461595044205259358312723165948738598337911773279468547849678957","9636323350760793850982800550016375467599347420295911347174717232296891723170"],["2070951843885137581733523059810800503034875869866113234192752980458482400281","2829909247411746873060152339763890505756119049747972377195347871704857019793"],["11842956069988574051926406919331864671979007901083116772780082476306889335573","21914544314522537641065384321841913621305103785885959666923946561130120037528"],["13261900301219512887263887038748723655010294223021433443137792661989894010217","6953937330389900421919703911303390862891571638236330336917060538036887862909"],["2482704739402260086714766490244516652323871109223216111789985871816868799395","21414501484163468674099095941972996339094464781004292935749325448107492006585"],["22037752593974370628368061059965195587345841849471075662210290002730138264186","27292059503177047502868893804066413424278055029963089970032896690269967769336"],["26891675656787634377190622114082726154561700544853590917712830639268943678679","9722655104178395034470867630448188688051892671340790866919393274489009443589"],["3712727283984558894321466590459684557955206720807507554897803507812912116841","3135733982811671052816822512955381989588081095983780291095624325534304360848"],["501117344240315514142788523297800860578213087133813335522727338807396868701","6554745108403464322941612558437606597611058523523804363195173349060549788335"],["5642458304470252563648599165749895094685199273491824954506395881210130543918","16762524792563129872320250595311369806001051781510999157421156217611245594340"],["22157210444275788262994932371566886075750933869407702265187503777134254193786","5861784087487078553583001464833940606944974583211545894846592756912782288515"],["5824205006944715614091016186309157046297364055098399443277690830445306876557","17206137155302516657266715705469524250939453451872810302479147718458764759077"],["21091538582394529541104174379326246693139298032376800849430152779321351186129","16310936317433505957924945948153984265173185379313020070075048470991354699452"],["21427290635463404920857741824069395415783539776814378413948966687126762746042","8557415851211859466898388729651389398084082384408263275909970075216861600704"],["11041407975833153863845345793848424355933194952621836883314666230092113461417","14093096278916760352464911607154035750988293827408994388313672257876504237074"],["26770616818789143654472583862654700948500832196804613985267010841480440899536","4164036401048026127188590959325296362182022874968592000773555896865727464410"],["28480781618155753049095504024176582896121050342439259443035920738624764477800","9502943097996388900071127509582220946791676296664148093267124736335339523225"],["28664416291071214275134715345457436858643672699582548686929472913428168316986","10906935703670376783055411084107986241618427118076193924101390698793734382948"],["25480312208620487303043359131930660581454808444871904300047180295334521508271","2267642475931695096908131551741052248788409846156281236664894134553624274574"],["22203224313347407680730319020925288502832269214211537901413811350388832214782","15265144546107726288658180550635147746626285910294840803191387015468673101681"],["25565881585102909552768606500876651470374726680491358917905590711954813563004","23560779957232129264432318447517859557281535241107820985679745239515580304857"],["23202571765304780440952877103851761032257842497214107909528913079390943960272","26529678954592150067150278808963916229780785938219689691129475378784877969891"],["4853750624545732980424792864585617860308642823685274417007341773133046151422","3162939515085988752696179344392836187645834688408750624858902278135357685529"],["26359897952541713633887238698849767069833880555688008867697330783023801167154","27670110595050708889293637786282585975751413123414551815391438839404603798063"],["19090167803112747660081433616777434106527320619696442051923599229603388523909","21324815888537549146977816210171725093896900338394442852300682458650616734113"],["15694778276217224520219344921888073627434749001013500507429474668515012116136","12543070750692385643898839787565596595137446052921392768466740429219006977405"],["4863789496744630922784748386583651702148823761218736473908664986193181172053","21462117345807843809173153292170916077151033399046429185341625840931294079048"],["22384513723467195108627065884269691715830822957767759106943341620008123011328","20164429415179805043704103477871580582136187290957779707429295234870486119"],["19504880437197236283670303484095727136739931647519957281218838091965895398371","4998510736441020868610250038336406213248384725280271784861142190902849677687"],["9779428081259506898101892493635800839926831997250688306954076646393103293057","27050070588412661323822227696817771239226387704119237253773768012381255506317"],["18416610552960263048113550684134297500423934369581386174205706419082171929635","7129367031234985869230124866750133125873411121793980677588451467990313221902"],["8680229897774443371089672190466254517076320562274649900036081579045863075836","28502430897939497147099321489554356717941506605195882490313623295894400595999"],["5546086815104404308629189479371871491463719060407430358770498327674209448181","10504873010179584213468417144358590189555283197774869312974493714454550220318"],["10578861160439360374331497711150076191502695061950958881169086143613180278158","10338607855069003578523758116991460422583839803688280631247040673394775246125"],["22920344529110724816678980440719777778925978322231806522031671669578652864233","2369510622926331510159500075796127215665532763851755410668006319747134593127"],["10317284221296808225532193851472202702086072832671786926293442023312929783329","14882208395831044474590016224720151066902461757304421957026048399309135388395"],["22032763928605796504649266777999350288943186678692955458140598798549732554306","17154705527289153106804497451456511507675276783276700481307880541599653239901"],["19124115915528805864514835979038232776550392948404342711559601791412933586527","26228927922578370979368396450989817254893267703626575646654740573530673663487"],["21850856953299791749682807481848003594885067498000048953047247941881072316831","10830075133238154486346050915617578799610135816293556295252102505459308845539"],["28088170647159091328099771843329014493373113871223859044947219362985653284164","15737596509942056874850403623396142053838376349413244806201387817306441747902"],["7073773822660097213389294894445445768685743276008900754643689033428069061785","12399969467476172932357309721787667648937004613628546952516209506576607529303"],["15864546942053065960955281679614093715744363183875884373354473462803927078743","19958643962028314831164990068371012710442907091244234465549103801299189235897"],["18565400340644561463377057861455806068286180936238905444067863258732029579962","19618706191279386399429280708614961728039166918301301426430464477582638690255"],["23580260029158536869503465629223107026471413267948967575662303070009842735774","7617801005754731937911290951716134994216610116433869976483958039041264851942"],["17180423359245682988495418398994435643912466536345794843439643517995504275974","944666035406147774600599454662176734130420037448791174980735647325448929515"],["20263200765529711622520727564857097922993481349585751384824978655605812641233","23531457394656141568459739314037918032502088092933059120002478771382266746766"],["11014032835327090171178190777537021635635789582791067350811163874233683617228","19939341160541058498791288083658838970256036535515220767979473814896334091280"],["8862551988791567370863761424129002099504493249551843296390135247385119813560","17727818388180124468198687558235769814242397747595074012282046629800272271701"],["17889281851604670256948613211441941249979669106427406435706273598586389426672","9052499405804565334398612325220490061760492076953864040028048483682043782360"],["11615330987790909010753278089432096970787105381679516690478428070804915686202","27498072286524814437523803720228114415771363914538518390832353369128310730376"],["11827661702760859102676558801543584726365330912979831637918718165210793815422","28438188509149036413018144337454719563961310460074258245148377807298460082480"],["13772730429512008655217301606152017958908811413286777859264693361720758535437","15462372270799821659763779248521969137613163183361178662659935137720734302350"],["22693963746683623520341097773824210248336052724449976759890688609452450983705","26242939595882959590064271677953512572406034389726337178550339216767688930927"],["15596074614219089464250586023195605060449512155383191933509171813187326818929","15492631547590664453669792046886865598033204901826446004450864468023725079256"],["418739624498838919483120133146813665277165192276016027428981274027902506683","2137578115370357779510369262973117136533676915480471905334709728855327248553"],["15128146178294751246426304907471947029174743957393594142365303934316159742610","27308534419175965941959697526360286888575523953255520479313766094711114520288"],["25086871925783068561208733165302370879549026802612435188096128805275727745244","17298184652998619163114460219449881728610946819164680673407518306108750767691"],["17878825603628715470637309735430615381934565188957329143532463391510341901071","3267917290923023494364127776261067564359299416968143665954582469627320424100"],["5250706898373170185587835945074963473685434495124981480789025050236129420635","4613291027140625120398773619560570467719237448794433267069051270672638130210"],["382945737283083263332323385540658170285664602244628182640897029387457142990","28078442158263940048532175779162048868490730162620917143223966234335082668453"],["28082393243246354271317084204000496614830953808742127175111407254849628063187","23006343791813476722075162774571669854967768835300363511988538290791892746870"],["2185967776901041846410091607370806652009846935993675355233541083741138790327","17568929380773181104374304568470324221630043351207917517068321235538338698797"],["2891905981513504205994450715830543303332979284296753649924417838184596903412","5233457532916891645718016854726942087171064749620626354041912753524228983444"],["14124797860324807381135740450610958102057851434054624664227398045731533930666","26581814638980634769685280548356163303766758925296438298623736264983386345569"],["28601015108283806829252579247942333310786648697288573052923328318875930896652","3867053895653602322185514831521777283093327914635097720489303304646924463733"],["27884876852684057348071135558955207645773900829027527421283190145042120515422","8141902823814356620799945734772146340204127612697786858759653542448687808122"],["9055865785704175132783927628757765334762171673431440810684265121381446205401","14126167372200396260999094404374172278052560644517955367070304789608427092602"],["26829309880242547661996715411618539878719715393680342880046371395275423051244","11519724310998878512810250805398083410887491432621470681627178034528893462952"],["5397149154502025262567455417946318528782768632712619229727445678526400490915","21174138991124724608601072256892590463591678104526311265890619097056175273735"],["7357889620973839721244730347891916858074256059531233821949374745134242624182","7858344108469264465866746256764178782820101348612872108419128135489315906370"],["21466806776661977018846898641592745472488407685925076954929795514105319674988","12424330602906551225363852802958825101301999789959970562670263881415563293307"],["24705140875827259189490408275424852957306432132545774191283625456304544709249","24094634082331616467867026847744344008962419228004301039749467751721049660910"],["11874085340739325707070792769794784242923284865188466829307043683544812615027","26002516062891919439112898161712196812140836157403997055519180162695428463360"],["9636951600104584191864133546692857323824239455475934715245597002817928399837","21683384129026206197752003883717878021524597417414253869166702863621925044653"],["19162419321233785925238223815284528327859608551549981739063034557363489271588","12591390714996692108234426294082534614033083824383709956279448682530055872961"],["392635996613430054448641955281462621941788794545734931763970569113354668899","28024416360922385679972220792551764411971755847016353667244363712228062369117"],["8721093200130766493980611750352414886456559698422160410117766828397473430423","2218014225651148669305692798986721377462108895375636532699002663990382157435"],["12341689599815865656112697109042159233710219203587378421317937497819814951837","14878695369754250885083360385980979895200022998495012574850585515507287592596"],["10252006232362199592180751936941688136194268132092925403163504610828915372766","22226282104551421859952864066969828058687772641911542534182084469749933234107"],["9998093578074022238189934202321739418279955937398783886329516192970963194317","4651653025919785390270750514039039837912284882047001967696588456981992694944"],["13365814022654190954264567664800262469730758061765134792417044025855810344417","400636556314737593349466415164586131810684101189361229489589473802002919321"],["20536897607928151689722355970406438093844894827987013165171686264150077214959","864234977095305222833212317706285569768668055516622973989341321693140511543"],["10471178809507200410705806819796327770540010704780379665892820973581312733646","9658532987590853072380285486798526168170166356410645734440210217865944186932"],["7527602659550780305850966929001888477062629546048737239020680204864392032244","22310512682450031258661866307736462588005068269536591141848618907872029130362"],["13838016351454769816965952364641654182310455629367638416845222791600878752790","1464952252437299582702402045356801601343859474171319143283316299810348196373"],["18091331399711061335455148757571573867407015667449378016442390141114642714535","26756408420637661476866838703415127936387528124859417543223432964248452819669"],["11375798093269972512159058301013484459758790573915673031031378038721455400591","7145017301463833147521231462265667525711298799293923416279204320166109332957"],["23928488215565644132127141744926065410875531865179936366623325015092226559585","4446938667848398505831532556026140648022143619610552081360934170629911369214"],["1012015833993664894001976879490548829135994057822551712144606604835771317509","17891184813003906098224227709789916915097991328783262147573412312402410230522"],["22118880260285460841082426575774297680409486868126733612251535792307170060159","8629447995123917430310018176706999116172049524995238574103409914980397775199"],["10404719533397538230790703580639540475600339145465827714089641672302114185310","27977697675409165086778310345114783391229193781634870761035933048044015221814"],["9438186924170122995413998071916444213415875877649372357299539064531387149487","8508011372003924219579790811642874843894342715284860320488888696423496119739"],["5379990411199977651501683124225281100732729392183883744529296794148575585895","7612056501011136482614030204679729009266500728541355862787800253082642118766"],["26950499291434811954686890861006658039913752528583573197995401468787298783289","8160501871778281342262110985063161567976393020580159885635121029883262021742"],["15508686620017729256503736745405221297812204255359822250349548063852342702766","2135986202379408882805661839454783445682917481133210974520498754196923252147"],["15368872861301146485218172129658769446922476678162388461269367387972390015554","25856296744970909269945916943006954554249816110946849764361864573159459000469"],["1830043412140351144045146574146028588311554219944871415915856539508230097192","26553322446171879674110655990633643934596423609025721054823253920112697270004"],["5432240601312764376377400479463513943832404651380241662803485669370184563166","806079883926151704625487811885825573222275959259362597273621367599446087107"],["19691666325680652650680777975963097232154117073299164693617010379065445632619","9732285820384290539975938890243489391407175764835174755399848156016413591787"],["13554455178001696480088024220630337971301018254156771332599926683134868824353","17297349122879618522306988551806961986854770011145792761936210579443713373546"],["3118861670370403934074215349609931263028384676653469876191843605344383007123","11416397790768447306762388665436374037495140635910944982050438808894691622534"],["22593162508331699051160882963316012012746077049691152630369140856049084329821","18789083735670859402149094924460352907143226916721150697073034778015468727047"],["25898143088841562323317641797973089200005650159222757501246789719343751360180","20888333881776912061220974677655553674037881393995863081638128564175519527900"],["14280625169246542891321948603496309493974601540823722724078572634180284033439","25058873877982755974738296301378516650225741296343508699466700859329948422821"],["22411712073925556114872355960610606417615423665829647640743789385324332489318","10973089873772824715909227123019628641733373343550375493191181120740154623313"],["27667121239605007170069621523831166386936132620896608318865139773992868718530","8066566636535435108684779943806870001946233576309164826213676463151461509043"],["4343697933371912287721468668277488999972085993816897573691771056568118904014","3292156329138904128477394035976871458601548744496459550299425131469283838789"],["25955773668948788760280344669736515634020830920764914962967099687578638326229","12147530964922921310347920008479762734465930242098963177171216217061124921575"],["21279850941459806384776632937133493499926905156656457828305184538464102018269","23764332366885735092966442870198840094622411341504365608823318942065046044687"],["19102797920247722539335662467764043406924771350492409103922663683232234047278","12894248737763023610858399682979049242995666837227508248872555691743361791246"],["27619606584008233687180494214552259615057058109743892811091655418627419222510","16151633086699768998042469615991229739306162243807777419191437061646198983453"],["26089898658713196229943321812389888732231236543885273486264186742604716272949","1131896008311984813869510528827507091223487333878457808918673440555736429593"],["744502996808589464907385916637489207198489410870635479540632586862049296120","11477788752717096416550609921687746004241397067286000894259727507902456887392"],["15875205923823131081638744177760209720365010204706317017617037989080432946177","22826506088284303157841503130562263573448263366207793594420225854236771482852"],["15199340605308066797265524744421252235095119260139532339341970994571953657883","8540542146020511237093256196485587194266305030157813425318873639204273591470"],["1225587070048324129264687841265841029016053015064280973011603088506147521359","9424224214407672336811519536835851079355422291714486547339897690290217798842"],["1494133321375586684107117263721891696289781477920748610001224061679045529463","27010938881557508566889936348550587113568680196451794047072092350736787027296"],["2554765178665029599815197104733272481439381496457294778036219760126542235245","24651139783495094986170867498628359508443925353416787275674517558697061343071"],["12897106410834721903757177126363228427080110234758101986103382981568088676505","18736742657619538251584795302637449093396896716479231594780707767641590166532"],["28083288046986979070800685795362382972922843775021895748672465193619069083226","510932866155551565457661034893709298558653363686219732915677263194835488576"],["21007914807786715015828135276690274829911669167474138721572888000581681059987","10489048797079698790779059854498306006945964161222670178855477334916754589407"],["24454699104689050034574346393528151457240197028257408097585695275434718919213","1464613420358172016562509481571150939373804267273626929524341098702761679004"],["778727712644477708094541470972738784126318523153741738701148632211641683162","10433915933851548696898935428398901214292445758034488616915897411583524582751"],["795719020139616348604576215835664882113879844808631482662035409822246835967","20727988981453060123807238837559343301611759724932529782747479574073553127985"],["23150863514577283689642714664689554541466253842982592478469195591712628223736","12182828591627065972321403939828879825233618886569808649179043306238252892837"],["26792378734434901521103341437748912911917335070879700188972186453135267913368","21496239615475491858906210549105411002271869345518358121428797091312245283478"],["9324233513618116991098406215772845597093733136096833870416451718041670855843","10118514391807874626484295282314269562061413784802316776030260993849141655173"],["25127922513436705952916311440440260423127141626094565397650466880174889222886","13647800253384799453897135105373371062943468644974733288879611817203292218810"],["22558842585381707222356244155303612097844218528031490513121967384632175604103","27466704189738072999869447632966194387861375154894199810046759154924021311151"],["23015553728506536490135811207897914217674150197647500042049533537795393301896","20277080595378641737297380687869709440224821912587386835319127038398726234354"],["24513117739256489318439356205892040673663020816668234137140418424901090552073","24689555301482745283856798799172580193456889754819302593199785918741762898542"],["18875657265646626268281628256095972495467839740397032888437977857328336919254","22738466527251541717776090976836600284977612243422977488769270513864915635615"],["7504015413596047676580612880135689088720669368934757452100719624149721470655","2210560372207445361982882317990795170454531798742290972069423552451260143454"],["5849043143835474819871918015240666031083941898449425866157745485306267136379","7103361122387433153664717881494579365142480334317067476357800123803460895972"],["28660858535683028899974073603007263110793859690923026575573071955241675499458","6785441923132821973862647081127372572253796273241110145729981329111083912913"],["28118228839209989743976585401657650544196346956491768326799894051792507408972","1474841889449136247215385605146210975499971005811428385867322374540236649090"],["14671701390943988251198916943573945241472955915915033613053080799610321926101","23586504077667471883301337853924078633103182414471708413349726119242995239870"],["20083796845615376624405064585480036713398000787694058841946523407764339712652","7994325480781533095340404719388737793565256092982301335612693344013043382627"],["8856734912844337147099899347235519701998768419770033903184816664176368537551","2385597093255550022562896355747579032152993882336171764958849378297105430362"],["3570996802063183149180797126708588287911473218834606435065528437238544933161","16818426320123659146945179060285718881644049314104869439982649079346790045715"],["1706665857817080994805004961979725183621508198010958906938456141077517214089","26946941543798730662546843195696748288824033265862109047452876631839594107770"],["5430290980810954549045195860329311666646176270990003200291586395571235223019","7342211565859107370622784453853834108662573034720768743670558585936003115330"],["21957214587216403456452741353464667708376176289314518036890474742928393029817","11803721252672543528458434448832796247749031351856364460185683757691661294817"],["10840110701531805434653886405416150256062059379009246936486491600002122584444","1274517806359340175770987757319285794147035102513960572750079881584622755050"],["967530764231956908434506432755969463103146272829449585459929639292801961439","12689761224383838290632533025237978469498038086423877996029610920183331368672"],["8336866450728956858567790093474978697155003907816039328570334217611861921849","22240508424624348961670903017658247127008861368977070094019774726682813456497"],["18850131512177445984388482548397163866551792197300904430464389558011788364239","12768758338535237937042979320621171116650071035376187319411626843140222762683"],["16287683308125861981316416400041201531183534515551674125171840766684826614632","20324217867877772389957955359251170416944663046002410543323123280135441345148"],["19013974164802171724450204903438720451453974859143788163241759444147027706510","8293815212965220013658205496478315140019541036310358387653064036868891203668"],["17936176464098963747837653652315339624993107524860124834409457586734275184972","11298308345536827801153226709381566029755219687419396052832172981858255630410"],["20780076503604011428461176273272228119392205179515116629897601641351287141327","5922385050058306614871966444833545707596121734545600699423108406672025855379"],["17078624989245247511411045976487358785773415840785540053053925097087762151279","26565162168836838437313457063547483036019375616251048295973832710290251081874"],["16894879398147951872475448758593875197867048732430906930160817854218521987739","4889635545804622540428365713702149258469334948324778377431961030549826885189"],["1537710076526768502985404732423266076213260186779768922476452148840533069138","21422405500138772274534534072685578852887498378341465893144073162261686816909"],["14516235777062784364860195511291637330474343577622869329368316266377999406340","11881129864917444250776080251573927495449885021632973767729770742120310007742"],["22993869443617086763180438960289898927074193820372414559366063449266516016381","15644151187160611887247797064220395126945652103894272085030122811447804256528"],["28022833541932813102760134017587933784793797051331333393529986780843317103154","53013133109758439413612172588110835641114504592073878285335440646699685310"],["18665639804543793229867282481608963065527681681820709799334585110653327929234","20067046724365808318089611850998450719855618589715335235046031670988172087654"],["13696848699572995415486392607134860079325410479598811236654067318752720331960","1118063505270034117611335460235524441885238637618531927905768236300708014691"],["5109067298485329949142718879603595004234511132885369025448275337824476788064","28633283846199405417984048789534476321966402007272898733526710508056857141575"],["12896337769321424451117636101129658146710719265553201970743956765331571934947","9345524701966658086973193339951150946561652164762995832336176543198970783753"],["5202274634537908859241127080411836184247295294716323735717097602193868534598","9029573812709358137289341961231290293178041034278837499125785599471902962329"],["21137501582128451843769143625111841284765864814730979202555156368464051543406","12038225929388452517606055425894606950942560952841638079934573027856255602548"],["22129623707636473839937688576810369731645839766545756060934166688695957987001","16620488372844235703099492188384542712033472497758314774536355315346648704720"],["28000268563273336280193128325113551173539662215797927508600008075338237943871","7494443543645583076360481532836400688539182924887650514716885889398824810132"],["10712826584816251278558435492376591017632898868595510252464228426654871421799","13608401008590607232001070762463786229607938147004555534528085941676943480232"],["24138996236008293988770919958547256625215004602621482477344375050244965227973","10536854128189855118042959070047611935008161841149298777727693985047952248814"],["15199496470575525380560540305956697160531712353427799596372609061347534793623","28704222952900265412658049996386147168917452208052484660889466158506473545232"],["27070531805391550446591566520746105003061332414019580990921777289240957064313","23142514209478443486074264327970132935285475850492275723395688359545182752542"],["9591838913511045484166028674237425662627076033990235767048777423275534229668","6550142702767674961498377037511978680600937799068389386578307552182618144547"],["4047747825461137121405702854155119892851677651490223240232631553769633679824","14423958890134873780675165717567651427060699499698533168407114036404996363314"],["21312001152050696905601573531130010269823935978679150193839996531168787760133","26292049594560581380656296533085761230478923246746763054027033190666074667006"],["7256813818224433977346213930487804594775762048221829700302834262970426379857","136539410701545272790491640616772946377531636971854804661930391905206417192"],["19215864946148618770488902563327194124406340857501199095380428132143550347704","18558232483095630011459694863577041048824333564497653278653182437152313759574"],["3509285332111330238283984166108445472361100128078468422395456653286859885374","27726855404492078817388344451291636776897037740035506881771959871818768066739"],["9421494583215256105863899428353329060358570461610803520154603441594501186569","3819950674946172692027502232258773789805611851640369671829963323464623166303"],["7786002337964942886025497557068397986507629647597446767263162491963026228966","15647471609091892316482506170889396531890640085816973923046142398667447747935"],["2220292298378701476572388639386410007032489868961765231003392805889172612342","20230052442084827682415608404439194993474046774303255743230624638319323373079"],["22865111112697612922605324825220441941195391108916875385673271506878155680600","24965095120802913613306597383065753492097759329241766839283624708785686764052"],["23187200332126878531270302844450947836056344097704298935427306737940666241704","15427848822188877275435467938647541250751821596999080759432798746126014536037"],["4450067927386217264124772670445310837998297101812203239524725839462323951881","1999370800210527798237436581132606924003423953883796206268111307324684146848"],["3276077276083683912824093944661690210331886060462456732680518245866216182636","16385874458175713173530622410167172162502958779616175171694883995538821578242"],["5541891034147158832518439184273404872214437800148376477965634168670643505561","13406110795953013894003758345223818662914334206248414797891634086370288496002"],["25991778354717284658158861783288122638922921875032905109405148649501794658425","25767782598985177091796582797220049791886815988176459253499354455095825821813"],["26687251540847681078415240937121383846955542287914414214794630912142631969387","9633312711990494983297461771973736281509401574116006237108409857076647009297"],["7535175459913470302899422558453684859317944323641835536061085957575892772038","7063582464441526171825492906733648757588605241219800441019343126304989908700"],["3204400890616767920666324817998325542247285921481519922764324994616316449797","8252849221041216623227613113819752963006332409439163703958334473888268460968"],["6771819582626503450470509432270214119633046120308703433248877671944363796190","28811763009251262904307895028527084860264292038316033475331137547335949294939"],["8229741797090428006866272430723815278611960328162766859662616422758318682347","3879369132331490205987767121791242739000056378954926451807653835425864958543"],["25863047737964227074325426025218360010557264125359159059147992213621723506229","21851440384331984799518330504131423991953791358053620139466764767471635646107"],["19718172794111582877471097863773768063061899982837160361216504149674156506343","7671155940391896469059480101311030982463757020924137531136952974159784778660"],["3074124723587164131028169950724922307432641562555939977761515859612072391112","23289600626277188882745278693797832847724104018317773012018801371828095732885"],["14070102608510294419602974952404434885463979309151951611540192529716850770532","26231251325493037828697222136302253206004345638229559123279151875450255243632"],["5207192390852546283746124265462195912732504862177172401042149025233446408487","28007142018138835189148920068233116248778779235974130725607717681053170109898"],["18381417691904380091603983383119951301942341961306150212044816289968318564550","3243313846660207230057124901355179918695899133917630233430386586490582184706"],["27830659796292895335366555390569937948763022704216805262938264072884670629415","4062745209456572122991960932127971905567660425840936223442228376954841977841"],["1952197586924175571908252522633662475087610750149100404005216008961193870629","14794865322437433134857470465262912152460243885459415112529368058695177065500"],["2750075755433779122489059679499694856165703741032911637472958682650062356614","352752988561040369233021745959404587198492732746382216243236459858315832475"],["610773110916886444444541486629811409021700463665521876558665894098206618225","5520765592473010152075368171965183820477243769823904100660780483801452244185"],["3912619636402023202697489280430236581824834795340940388853839045417608911986","20508608110966758474088358328242964866145074653985149136829348464125636732660"],["10060703510927252366790449498227688394941739408275580501752345969715401764006","4994696531943261098668946709357196543885534781740430334449200148163846478935"],["8746701513522268701761557309732012379033843934526662136393608402830197876422","11364223670886322795684535738441153845645441142075994162716696274337329898506"],["19556817416060368773868640040229005404905683301728996241294135585602572070812","6930682799701706606395572624636067754777245080259801142534125727866022543184"],["13229868374094205698394473286975655565153894554824008783808743485181820267909","840996331121383059319330095545653995952834781714395276182315982931390686936"],["24126129461547452725300248489367026701540454975961483343715510774208444688883","7153746239919408483266169869332769836076491941623537570978717209990492539384"],["12537962410801801549155499057393156348373467851956517384351556508951384699910","28535920440327501092564540112050138972200884929106052341749007976693264764329"],["12591951582369102452737858905448611851583269506729985521999324254877338347190","28047868499706216204264195591670697672839753008770922072986756236998906983863"],["25274288753294636071910573310751100180204782705474346192383309736036965287841","19272419807389924244884222681839198305086535475628687117862287857893480202538"],["10458818078236675322620406274171910890710038086183702716064376080207628717237","9001022885540776898386034573990319043483713250933248334741470205770497901504"],["26350718048691160240793015191115416997843018713933228336293480607279991866760","28258073382766336150347497862816982285542666019532645925579258373951299048154"],["11197601713801790815253600303250441385206006466068601274567223202196922858962","26006162577658166711811276721854948414943708928727540538922752908188632884432"],["25988748557028398863511086253033221013384265339171170019338944525781996024007","22476686796722563626694731125676573216654040244283130335923344980625766605697"],["5208474390847801742641503180359452948856310567331228456544495992626435070582","19819594938515173729679474810688982309231344506735607467064419810930362243059"],["2274933329185793753833573315370475633451951879893863342004194833686560363310","18798844172314526495909674296492491431704229366393645973168625311504609405883"],["28203762932977836988492117768793944232127280363332124230601759509452648429614","9036349065222267512668240938349878373596213594248978154996305249473331918172"],["25525078199906900810078625330829460359548659793833748683576680898944071360281","23583520254060317467750326574403659747073378165422628505929939640603206272265"],["25396670341511039706425830517895688111435485248254163722639749490482632892354","28904541030124466903053207667985674817592243209169142161971416899783767619994"],["11842212657812182097626016517174467719667944984088160724229482363643116090890","974302316812024321953273197839587415556714590373292137033629882618643174079"],["27074732921649992772397562701833549746561780230526334164103189189912866816817","2308707006002909132899362064352785013866174882636186696491226038129251684506"],["12727305449499209904514977713599025327156693324619032827217788059646703641915","23302577848934657374104479453547852020947962595414076433221416215018857004398"],["10155359225838150256198408780746335323187511118799169049018278358766568557901","18678397488540882435530993657528295512194420589697912141343489361395798628868"],["6631473541279796845168337423076092078443623606212250465364316657619745388993","1436087913433857652096112111573224893462146379321140272933097214568596713199"],["23527097511714330772634241792501658955955633555473402020152065236468718718351","11693076930034946093757324890828893672945048183814925623923856821622024947357"],["18345971871256384014510868633869623209297984497977227509200190335901923497271","14256521018743883388780103713116852921549832591680554155687060402851182056912"],["13956527622503391257094747099529582842943277231204116764924306062579433804056","28794747023853926831496500960804404473251779376704518091263399205350329549556"],["13449298223125936442068213452500845243389481289809671158666418098951233122991","28237245635182804236164680447131190180449269186892655558174910250146648755002"],["25551077283539401331951993959387209361960978213208161430475746796915865945216","27051218482445224188381772121244861866670984648736446448358514751250288157492"],["3566951884334682350832978138254279596634211968969448960806492348254087816464","2171538244176221101823577455669149629919488236743064476044980130291371470014"],["7924267623281626192006069296536862996644818930398822955878222201887122191755","5622604150620508138196156940212320992024880828817256712682679404409788827422"],["6119346912058468268751519410347666166693547645177222999143422980676280195993","12143013509192157690750038976003002052498908110555559758944666286589902642574"],["22394530664362378012455827788236356139657165065693778503638455745517779378686","12371887948200363410107914665163021383269664721719324536960811251463022605749"],["18835661861976988290480041735636051291587380585971380248126462867848826134171","3016046314830852972863505771424993266944339017986650473121539492490398022111"],["10885490013252589672927989525485250689789280427859437799169528281492323122603","552253751489413385420811929803230353225203401489836500482638860286844890136"],["21633874853177572703712226825333538652239086328370583165210229529207895340660","14788556662110676712159942153479065550231885258341408172411742169491174745320"],["28622641521731971001513416246293645413997962867052972203986424801679768848872","22110376917859409806468052533295814794444652984432487449640449317536779655759"],["1844643610363408034086940204947626746041454938364808786359839325917976092554","2268146182750680819103263916505162720656642630107865373618469369592815465844"],["18499492233187410273289563493395847887164314621266728186525747015263889887213","14654725676754534471047198251605585964045763212218617915242320377504854492811"],["23570094341988177129917381029811872347678602158856632213498312227334197974512","204846735777055438746060794569399468698146500710479155530766623368786603032"],["9106574643214935943934562463463415660897312029431835734231263917503492088220","10363173548684843541159085505544728313272911785853673968229256041307989135184"],["19709381253243922048772363035609124053142975888902331560401341391436202173946","1102314415523432272761658735870492118893842682169194456934975178046400420745"],["12329566270976383307404622444478589884683261704240000172927552956129770502151","5330268266428717650765702563272213956112452216929380220546336355042422835151"],["15605378722451791788418306274358181548597732158669178672567970870434173635522","9870572676802189162854117898888958177816461607548201585424910775494091408472"],["22285477605113439344784235618606029376009970821762658144624607116372464905793","11428267829193063916203737434552187972019684136745068949627901708110443051199"],["18542628528710542570796971044703569706211333150038472278990549241128597710366","6231676968749505954945738147204796163551128193479097150103261046411674702744"],["26177775824158167010826790399776334765836228876509703628586558287324851320080","672464878566972488905715515667158887869426506668957489029909186570608696362"],["17940806564922728544022066472274176699973320528532694911625692683574324570815","4509871925313788972274731477433795026566613109843612720478471882498662591605"],["14477942787706333700028997163604731955418221351610030964569041419692375006592","18604614570714188231285526330589133562622949050615554931605685671341151720695"],["25569234133530336284367433108668991922090016673452933431703452245094716247332","8962874594327258500188682117864283117797169845504913048148909301634642909722"],["22829216225729237273410492924427306755547414182663048707855761203088079496217","28219238064661110271494516487733345191471992235725778904092064848086227850094"],["17335591227095886200444103964443684615255754261739799407761545076329877987265","20686821586563809681042261796353248970374155107493981721714320343654431448842"],["12421789833912648023836195435726998274744234484126131184879493662394973672112","15869037705861813614099618712994515955314388971989788164130304579650626156347"],["26989570004811084795994967964201554811495433294539346494294439820274611836683","22236586681930332660126302237978189466595730528122633795376307065168412682556"],["1507126371656318754027313270647767207474776320302295306878260796706877796245","24717967175454348969400788885552526195767370501987052389889879726589670261582"],["4727149401839837721244078361489116254856713815272030094100474867487329563903","8184906729810111542917964641338713218963285855326478352690118101005360401687"],["25354873747025504684890637166121622736366604296139985252432813937124938294090","26415240033147510991257362754318895742832336415864250832755572021639754207205"],["17346417616818940681337631273106044533829962606879887211750644651478986398556","23318209437694112348297252854232439237556540482039079574024941820665799224082"],["17265366245228802369551979359667546943720768952872054243588845296432819332567","28348535022968494240825181780900300008642153525569874961859452053664603207413"],["13152302791994385782719220651049899247638956526454756278489532491042824197719","719044310741238661070216755342455208550365491555219019653128762806862967280"],["19722455113993796940254154878107600624806589510054890832957855949624708501576","7508567852945073729926815161234036906600239855974981290113625780273837697360"],["3596535488619350471278391748973819749223056089907845747978860183370336369474","17886312406387630326396139345224474383591391000069544857153023070236927153194"],["13062013217512928978979272244660542497972193448083725260624044230785794683974","17323120746178235101206083179840945915481701808351359360863348890275073411392"],["21875547427609852072771469478652213565903065006769573623200416135818931283589","16761732627377980201979654583423365306422998100713749091602047601386757842762"],["21037701431988399041532771254028285248808220949833157862505538966753686656815","20591498280122192683568212312344502714793356478323954264996710672509148833119"],["22700932546692103627787608309171664554829034214352704710572524271513912001416","26305667987213737748206389172889344274752586111743847441892672938143746204727"],["13071770328598574050612360716565701526219188453126213428415885070182894125109","15684892063192257240057248121402011082150766752054403363841967614032903709547"],["11864412066955811001971109488542185364127806657190157603404534383231823563453","23485646374566705156160151379746975593581683034355940999180187141634531251440"],["12961050392855290609805463123677180699514756956734713111017358454293882219205","11304815456072254876408448528230451915127667524923370862088053941926831221443"],["4841337759882685475340562226553011197092434532855393668833211773607919909186","10968864702042747448170431303871757256257916139189117199449503694818530144524"],["13539943366505630617124771211290080313697698480708192784968002142761530707964","25246105225898760327946969362106758149957200447886973369868439165078364211280"],["9243004965201745193244617101718753953879594766599047588173353061204200851726","9063486003433413980067576349779009566745789691463285210049228381889054303026"],["18731237170605482191641053572931602607997490363001673521259495119757135575360","21885114884716759035114092323093977333260272042423893894089861518809260582780"],["8587140067015992180411244549181883134607662091488793970275228226758579706971","14672571087036867561393822906071906350681074159075857238692849646973702973617"],["13827417377312545312710660993932902036465563384249859316583211644716020544734","23878178794965069158241149118854646305246890822393510924966631053597423535781"],["4168828460855863464319592137050950965513313212934399350154995904818953349119","14928234695074362905631526470950086531123759336818888012451917678390733943819"],["13784653005236034202228020062103124015346913172270456056458139523313533541829","6506293397301029843589628168609856012350483515555960527154377785301399672879"],["15309874920916873027466154107614163162003560978590494282504307784085802794087","17166122228527010634070607992692373000026565397820886623499488832429242261227"],["22366156915037631059269666908679163477576965617626318488266155423975118184093","21872056418285141788361834204074385448369577113135867349194955513615829652565"],["13250485840935169304091221653524084329458806887261315240101215008287096134447","6598568176186812034006257169851329018509226070019254291664179646347816148537"],["7965118617651920913282910775486835440758514591198232007102239481940667653632","512420841426117559356800008124562050284258654938526650959965065875396885481"],["9810356472379899635947203854753706571363315892800959111261913361101008803513","22041378987759409847275141218078379326580111696071047681851406283728605415603"],["27892566275107483925026082011553302389571677046613494841306302441235402641739","5008232751005143640218650137056097217588820919804106504713283992202663065645"],["10909444275170294899412783946694566505159142781720031419684651936607920237989","164071843919927468502963403016525945563060094584230481011714363425200901628"],["24626010366716999725283352748655293781062588769306802795713529373431466305498","10716034018195709986031400249806948820536384509103104955515982150629727108812"],["13161761642972822270426822306339884464602383761495646889662196178567508022462","25738909245612196587486989438180332811524101312377978509745102233540584502761"],["16934627144822642196847923800682694264539885747527374573559325058887171826294","9428698349574809789690252363540448825715107125096199154077991735910673747657"],["21123413542739893648340906936313541992313071367022344309398330604253821404332","7847785171076744708607204931580154225001187217476604708316135428021539652151"],["10426113619183736435326962044268967022171706701752109661649416210152502718320","10840899126224846533639958715761152401349202271767767357802893858832194716052"],["20287534655937196066743528656095043739942373780158835020741093819142333623296","1879609624984273171618628564976733052748990512899789977321502493195536081271"],["20672671982098113020133213278840619698301531865501961506387890302874019782062","10971272759923830695018934204000710769884371677132073593515875318428016260908"],["14940246089712963767827966058183240969033909342912533485643187070297520011227","21876221504765132762718707397880738949560907998284844708602187068300606434458"],["4338455004737633102708022255755253915888859917939619124346980401226531447698","224301206993715646294812826483066878256884390902822181287738646571689848680"],["3167129367602048979815511541143623574458989551548059774974336488455655258245","27974571551880341470603196536213838661928173442559314686064593044583785184135"],["15928556622209183781726337293361338850659801803833335189780615977734728305683","21074528299248894046501353858804617239845060294656675641879160105312053330713"],["521074544124199036292677950274250281398395104971585907057967336154618881367","776971183270984786614741692588965687191649796382773851437587480717445676028"],["4535836571664287064050804803566592147356999897711405657650515159283068048119","8794183049198745361983858219439485019178539400139432414350794041040627411250"],["23408701640007244869268406178893378760719291543202629060664020184539901000577","24624814377138088457909355330041666733187936007111058826109625460765636587761"],["9946105302070023262997669968017976474718959734140739093705198173581793587758","20496690817094619272401078050546659126595164119050162791318557457101912495449"],["10229192957415393775589534049457704018707209863790934502673689595416108120427","21302378749275554012222210501956074436905709500369729312596837334756897426621"],["23702742145755338683249517995149101121480670169648789266816250994610908055759","26011489350186992770257249373817477153507985152888152509884083803605024924231"],["14427254969804161095009055742980875547662410364494512649964416347862806906419","27268105035251058519273832623147677219500799255547759820038948129008001903068"],["2042986131329238883940223298017060090667348464606880598919562618874883154054","18817085168551598111666305562063950542396705874549056421588534702547175552047"],["28868087288435324734918751826334358752832760408430167744721331108387284675917","867646023893888211209435858617063249054240421445285137956334196367215202560"],["7560468439200766463868833214974383792564903327986060900359885774839210757743","2130414864428778060580920449127475564601757606970270981219600569464461242063"],["9314557684016143051144398297386131540842227026706501621941968174675742480730","23685740523859468525080271914346643291518971410157919314664866828777718181208"],["18899732538332864686633026004679284600112411474435669252791468510529523417572","9761983695641862599664359155087908866160212509435805788435841034694950564449"],["12546641583948069167110054041258479970499556565645927714310313277983760916252","4160605839307545966936004581440167571216651107848803936286224724561650019339"],["20059639587068538725167661951350670471702946358094696910089647698547694092","11885273921804226955101316244034646015056326090402080731923106336971869730713"],["23511045179311632768147029601512345201418181050619521928626534660407280549801","8382985973963225493271142063258316410350928739678174119173936953145627175473"],["13675535230542922573330820870270066008214353578391740032253588459085397800685","27305798465375818415218771006220795083162310503692120128432277899209318309585"],["21625519793767304953265799537502109968972870906799719302131800334925380368835","12350916661132374802121860295490229192536894594027929741211791926273919190185"],["23719554895357384907863165172466086111813746823957654305944128628328111380772","19476463112591051130539300894236057510957962365579724521582785198093507733254"],["8112864669741525854622320490528682993950859508427967663196832746872351933814","27941187216743353858829693277340382012884823829544253277304041754290083931192"],["14149752150538343623760688370923801920526724138734266546471311610921631291993","9532814182868362633482602267785853232303702539376868070410395808860813171147"],["5860831535493966006280493374798116459503705285811697987214861698858564443696","7212321304081374541265420836475058746575372883289622676314209180414901029371"],["13817291799080109841258051719050084296839171027349816271890857101387978630598","3480187933348676526662236272418203550021925531400228288375572242620230246585"],["5274373498301868338162826308716804427408930542698030621511633826544416719908","10768155206081419306752166647936132015918898546110356321572822186887830260830"],["3326955453747458253933902886561041210312628777706455819209444795665049421244","6377088666859239644499574931431467113091935702633757406040270756618720355751"],["16379193136027741618339578434958763469805749275721677189415935728384372425079","17248057544266576469612720890681494944430529857096387598607565981395635957422"],["2236161476466257236932090855155905641053080117844430648154917388595735436469","2443974980371639947776339937535564886128688348334559639902605924257838084766"],["14204221673922616427781211041973350323125803738993807781529172790631600780452","24590792465109056838034011525350581107604160535309089385042233738174330103640"],["26393813275544206337351835508544235010459819489305425637605400585296069291177","23696160538123630736722539536061288428079751671090518495295322850258412468571"],["6231533115586654641256934869452847307007858930180525117462298407666727152011","7736044502586982815637776029442599928003548462656635350467445577188368681585"],["22252484012566060668857050894535889848046894162239075853488737559803831487332","26923174006309804809646033373776357501320893026622427180126470169621659937002"],["21773379328299722306131248479922002814873556304805116943476585596006578100464","14830548935845959062140637101925774573428498562806149704581574994092771375256"],["23394616440542397588884762497737141332175611336616348448664823753552043083403","10160936817365276536790067228359905434428489759561119686133379279987070801302"],["6889288656104305609187609723137714581617405469421418540987181891838412059981","2302230302319376565791200106534456407402522651961553507083159002536829524888"],["24837531632227458203992310842862309568930113023166270893876964916384013256017","3800975193766876650309467234210243279166292227819816007535905104412257898321"],["16796875086566009861229337407340353431253499685549733168982713875893197451491","13321800941248045854137920906751424354774892742036082451921522158356637473846"],["17295533255985648801336846462122841938880559676354231077571863848324405435399","8296791681095479226613852957245550035495863368681386748162503972269686549849"],["23724612198561941202140630655348447727960847261207025116617954872384285678961","14742788722735739969486598129868399791923235535213620235817460629096522846527"],["9694920441901166066901676530765893117180748435720755245274329299712521148820","8665470795534712920848248121462689215126448714519217360625828642761528538899"],["21226618554430833180205467463726223374742600019494275538713135125539605015982","2205406629867727020122410433272393104676425228955142726315039596911733927073"],["12650841981051972641974106468698854361852014352174294766739135256087848680256","8573366000626321897893960651775046289705115517250103140729458107582275575821"],["8698722511571369417197467300728529989851894146044891103676134157430366064538","698085895460531304627776825813829061779574087932807696082407975509411658903"],["8297186307190028352348810058710905620326895201339500661231972587695171443000","15160628700514407697488754839661941505796127842201446435214379188672113468717"],["3816136791016964192584929789037228687337430978029845248754598712158046368819","21562050566948806905533388369219728186119542742756051724518301340653469014263"],["17776773887244841606130714087922137060767567584671016564677198566698665518315","18384136474977939629972828703487670716333343517642915913459681969635574832653"],["13559223939822368668751558713814514251756594760689840670990106422768912853776","6785266566403222339893883710665205355913799472631754989979903992296470841737"],["16826597547735789162102894889150446844823307686078955894678082940158102060139","4987829911738079692904154578347415433501084898518716902627309142507648305770"],["14596224845802698888745291559432055842814175904522060463162261231526291923167","21894584883868231586075626521301908972685704423218361529096514403627412997510"],["949086486896961734405174267729231643442851316846207338148068988240066612992","15460194532826493691683676383697940762435964901618911964993391380218297747459"],["17125138349091000529470320800018780209353116847282801358466733741925667661739","12796794072391466565909368887751706995444613955453816787905800936985761228022"],["4814942641077706388615066161072130173752804818589316459586665124285772496955","17074263950760126215256196818962433718575031144846796208423989477460031558751"],["23883497139809014861801123314940885162462638707627644161415098138026828393004","22882681317603708705183866679461730304075225845225521392203848438108008788655"],["20539268527272450756359978257827367363664999952348516047802949075728792572243","19727260444182637760190108813609500483980746611879858841387846308018672833691"],["2802180712689799486647588464334814740739077857254584311770812465544796462020","15586578198384577507359808322886045230036014187118639808575596541808385050349"],["20001716026012035032258455268389794700647108462328059143383819012809992892588","12717648378231305717234890926296820943301212300360771011122504093990406387343"],["14501991331514285541999805709565941411742066892199144262429098538590969038508","3251465172640549078100042327140745650853937720427925469952278967087638725896"],["13490376749202746755572590591136699935012082659304572556334054439987029262449","26231105164999467393907652264986900107096061694061499518699114739636604671693"],["26279156626562077812459936122884822490024319572964990561442875531937260594010","17936386417776350201546703106422145788032550594508021328721734050504383628919"],["7539207188554515931605552207099803649482422270690233481868390220600783760110","17508844792097176085465326301431024071613581500504401104120354399530656153105"],["24969301129644741080935729982503623579827898602832017720658960606550746526729","9915996537150364520147296936843246488228870103105474626955810871768331413806"],["26080682610996063886264605287911020616850390139209040375941360574540292886905","25338791189616346285804595091882156868257983776581651342145502327862399350594"],["17709565356282554793974686758626417951351653733829367486640412512302009647701","15042029112828127618652446415152550180835102652686976368276937682218730855680"],["6583227498828409956630474749087418476400067238023112250121101754028219644293","21924851291907552870475771294131361445787693969888136754999057199785417397173"],["11997051865592308162457346728391370920693690028002897467072479351467647033418","5711301474690100828469592897645354006974997733799690303402897717306849763215"],["24519149070892473234000937912831535593731253669589284541560615835945824536547","24161470560444196175641702304076458341886984435953440511559677275368726600403"],["17377001795474410333043528992640765679889368330637301293440939162445398381671","9744530819265993887806554101639785260698892210375891047134293465830780519912"],["6552502005792163956505606946624611446020170574731511975886841982533425628345","7398818368863424593845879256208326712333332317620360581277179147094380457022"],["2649496211053030257326280758431539049028315480503362943678071291975015210811","25982785750333259629224171130657154449249545531366721018803291345684779041297"],["12374708692825509674905917407436033368817963538079377851679726747521095864930","8711820318355029831040006994197547298570797606416865220359734697788290052643"],["18898666497303060148158766264438284201942465969260050002014837519689817808709","14639788939311974753693220793555134359201428710698772697648585125489916411621"],["928158345137977350039071404241991701813659978137601601727500653544613967103","7197703612631603566186842853905933405668242201674355270330501497175102276780"],["17291071707154268299943367552459017687175083620264630092828714335059935191848","5044432529960215931318923377382160364169940752219975193673066748806989368531"],["12648084163130224197214482971851908315513896429251113943597599157328311549990","1525959582555378331523814454738039933089738886279862955684363467954331911283"],["25819476700055827076543830251592680421009533826029983635282481588382087946958","21340825634362931175562325241833535525477098783473740055318961934480400458284"],["25483192530474855450051683185414490671030747214721306128252364825020748033457","6007071295367915451039584975761775568742963748785265919107717696095239510821"],["9820989651880533153294122832931981468279226286206043334263643325469820371294","14505869361351184377962055390659964467837391707338443281109929603121794667638"],["21982156334836848842844497950465346516985753938791387712651868057128521533753","20273842556201998054477694808633974959280784954950070529944050622386175693628"],["3047616178301829672880685364971096655499680715542943333850810203144398962440","19317767584140116070354047630351996132059597018757916537931681633032002199698"],["24747627608256874600817585889507680343037559267124274644972765838364420131876","28181743768694610492410523270860073952713371375630366981960304174918844023383"],["14011423589736877619174197435760030607110315846590701314416458533268632695476","23997600930533307368844215464999791182663022951204073701927738225481938139910"],["15059072781379989030843250591102935749811124354763491660077077633743605567985","845715317411176912342523845967612425118370407377373223789740197930715881"],["18206893013280698515312023008301323457611529885364245466023206916761314126843","20699540628614858001470740656655838161590553146330845722822976724822897802670"],["21545957231230853589904445099778392585332452305620001179895124597614366103497","8958560369082392068206317077811954763171721638855523700997277012309868309922"],["22083744876624012030264384152353526586801710420678782680141619006994947374355","26718281347772600333228403546864737105999744430589294935598234445155498191557"],["25470299433554440577090728672226131611211873167043442481895997447128478743467","15420235508460796287045159175294372609059176877021011655748007549821403153943"],["19014501388918531466719935773730375766371507568030365432401948063650446447807","2733326398535742313203431462124552108113291790755043805238840946761781379495"],["19598034603888312331747235754832111510848902907602222546334478551422731948438","16629108841380360416229160644687643450465158749985346378527988658383413444243"],["25314720359384853118246148451020834901813515929395874675724656906244825117918","4282523904088810947912626550637722371269683304037493446986506683319672058315"],["9015738868787652291163466907852729314724975883267504821399257743126356026110","20074525397004835272420829533963076698469216127288819632419134262848909898425"],["19739145079076802142478874567955305214946230398871211321452228242629559918348","7842853579758636935564248181330311386361280277509231042621935722910541822811"],["14557170923381077733872720024730700591056629677449784561358120733899845208392","2191078587950835608932713427937393328531470123051690778812023730915564832857"],["27247921105505719627444455120563845280400166193075384268784737269718658058255","23000254391086076842772205838983327471332943554538263900819767945828584794874"],["11820249082217048252967634327529137882546496605910974667397226502736506185259","12006003012413972972044617955493151315818395233949918446190179215563644925917"],["16266584502889980741972459335735559106244274175113085416110749720456542228209","16980748504228545547597646539755903800096733477989305229679283504834856271758"],["22280865816247968867868979096418339245421708475934435101850101849722411466607","173490621000547005855919353792050054620227522466391081883671910356133380781"],["18108105148039328621374447638797959230440992367643051095719553888345886803663","1327751092662238516538448131885014317330119951007504469955306155007260163332"],["1031529088705972487833451108921866838092008669163185791727268888157158899561","16179882916551119111738963216651838655496259999988719617767639450900926573628"],["9401224703244836606980276702038794102433038348060484400334713151382513678947","2248447865544805866330358954789559102447850417746135780900128971654839610060"],["9604019910174280898435630316685724212194047809615466733523052582382446156758","13997407611506603885168392240136623237824646301746208874593618254116422961695"],["8445746326824471139705420516399467841778901721922583966759431339739945205550","17604562583448083383682334809695433817592828326740303396709328928063262269215"],["24903278956661425764936635012334760352209010196601211081313092245397643141318","10480974519483197312590453837281066945873456063191564870942627422232969533954"],["9375952174694771429749525767959601998492534556699186583786666508087568131124","17817049300534263733425838191327286831359272035012167774861261299934211714876"],["9679765915110243090898131926922127995207283701045261577178205938086893243828","9073886371974721643113801639518408654857151547793955089222516386348085439478"],["12116998075227716535753736465197958061243287282880334328880348839427290669171","23432054997584508877744377175225196131490796064501487876432913901360741109347"],["21629820659873919909261611430739088749190913065367058284288151396300756608750","25208284911228119220315139209805415207698737028728882453836736433316883138032"],["17694620650239201836581637867378582284510655432801878797482267835247306129751","13920922229610473464502502624558506361275879137800042322820682362413201564944"],["6542872795869765228507437373342354487433503388139233361708013023667716983915","15951739152200542669105730734349875323950047721970534931680354369074649686605"],["13011955290112149910188063953194044198764460378679587667972162832581808464278","7037243072483893245091522475235693098495947834012252376569382686485002627708"],["26426155840380504952951262541159854981518952428884128281554330266082930466319","7676050704508184636785238509799101111382396080394586355957097410258635701409"],["19500420190823283768162380734207988804716196690660270457093634085489133542010","867226781432197524869214782776099797899280407647953735087765022824381454843"],["16685518524858600284323037371360118849240426595701196083838679407239850554071","636974211244742827430030101647212442909094884251539671139980675796076868780"],["195720128590133250359330167082134739853161862795542944234051286994380587954","15100113662897991650916787060646270591278151982473437585353443002627445923760"],["8626289008720772944079774105415995720904261837412273403294332517127397289932","18279877151881586224934586216074676158460342553150261441441365786632815083419"],["12878252175988452289354862420556331904761686814062938481241184488416861665573","24513184593129195835398397749822218361081285744359432186857604261530694554951"],["20090976271755551969940325966620260613704661261661209042617598458504120513266","27488713791299617671226114469447414890751287612564380556207889375611741540009"],["2778186971630888445912090794369483293609712074563587273336030722789680861244","5039625432635372616280644738008040130347896879241381736960151804480346235940"],["4289611302204698950294516397662064418311617744198214004494354259672438082152","13550927755211663858944715594880997167726799726999369373653622182465000142555"],["20644464947000140721361506119612095807949803438058320714790930650899583930342","2117895261987285283626010714846514285890464158695391437764734959228571556092"],["13822317234364731044357748884322402370216355723840401526886597024418228517810","15135991706821384905667427134354271394314084730708453280897221391871009178554"],["15328690747508750407896371026575177061153522929452494925888585054274019180879","15260480054729843072464705382105051148774998323057560980966844523835657415188"],["28299829192916065837016259925678920350614461131932344200775598974102036047884","28252099388453749307558866946188347031919719469749690163753044403166010159467"],["11699237008744870174579990977908121531644143911567924047893261276246898044486","11759806438959422276043913780900678413299177155287789500084912725435366580194"],["14203234131495527508202135249884877851488014887816646648237516980150610820231","9028429859343459024032641199979786590826516575023171852165262435406518911456"],["22271025660891868622833971454718228236047686278720114500103803310299345327823","17308280203970574341224251492869268881319410377268448488717007647999240383752"],["1261817306093433881560035776959593307190158701414617224116963403754274062833","25759002716630055340885086539900781530558887748516423722574657154353219204233"],["2238113343423688452079534352595065508895477857201939550168726473350325262887","28403384896770611731283052297748547089810446722217521176408634444126389309336"],["8142674143153534616672180396700007013414610721738771331037032245501151844028","16485387481087940526697094965566544874423118795579295684590191912699579423592"],["24629581014016144531646054956482042457154021823561081283443204874690644408492","7431504267511380506143507275034453016638366238902906218640859799063469982269"],["20656084810102660756363917401789061619760429553753204996182842985048021442801","25481914784214074062281846771017891559878382837231576416790454311860477344619"],["16410706418046760776007713978381276806345111835403632853689422856909065151744","14718234417385321668105006476907205132582956403723242284121144647178206039476"],["25419486317845712391979469153971312160744111297402763753942054625369674049752","3176859467872459155209041796651989230208359579968070959482744922240853678814"],["20928872114305664778091589179832897396942319406817466748500418853404391841742","16654799095370574241976663466669691344291032803964696418332683839533423074982"],["10050840779844439159925998396796379389522519031945471850215600785475970677619","23809071842368068810452150901501780074555770996068309554549241056269572953331"],["3519908034991550633110501929969137981340832309667559523257461348066011907463","27777444648496644813955406758622999296322505668445978665729409943820300667383"],["14735074264036478591773061378184969106572833829994227785235608044866151840905","2884179474841566939710245321974209314422926401791559935470943258293066178478"],["11245178073989776391162804605766529142606581723088856208302520243809449695652","6915643441883684528778296538654242210624117835883755063677043193855686635535"],["1733083285869063720509300700180349751934920774424875367361812002261069445538","20578385663254749239614723401853271322157776440420616129600210877360292811900"],["27633510403343405017371514149374601274840184876690280638379924960534750306961","21131667216399173082893468228622729760546010125094422419335684805994207516735"],["10093298238558905131271650848202188080750314541128745021325995215220557734586","14716785868491066515889229415951258647200292944986792209882189123805080942040"],["15774366531972576136731134014043961773154168171877068255002027903768501527174","23169798080053282291252653297525258231278845525308309844597619622267496058347"],["17041923908613003994411667302734993571776387176419653538021399613774346686587","1811550542530573746899561961543423792850666852647844120515651702614512959970"],["5135822451100711604675088314305757411743324313898176632469558208088854575157","2057102846674417126552210437037920899465014354495144543681021613613741299340"],["19594192808955999756939337037799920285617012626583162374005870956690261966448","14613839636426626406825793392738773822305668546201743444167223378629080437500"],["26104665422544941724492942827191519662807176043621255543057542671298657948997","12188525724498475048607639261339191618454611092361762569362658207605189184485"],["22276034866999204960399150212568062172127106883210896078315788207475704157518","10527224212904824217540318212084336540888725156821075731978385190525543463443"],["19910740309073935859752929815501972560089434586098954217803906405272318397621","22425801266273806381261636273637956977454431458141183650337433514885452004942"],["1221829285011846748107338211235061179524390563324666802916922178471902879267","15994480454525923150072722119838516789162044195702287553824120038114761051507"],["4482675485306021166306914528697832765530458659279755811533530832583640671928","9849120738453027587176724771046628705156995245080307784670225146199588439365"],["1459769884754479611385830441564943978152072244154343828845394692499370162820","9448288120648441816442522662718774121805292508324992367610902704471775179745"],["11521999347772205804861554279029508824709571935093798468425234490656617680034","22789018927743108067516764994192950313464759618222702974240226857762020278592"],["27030597027950509513079311275878416109977731376184172206948937491887759619090","26997837096193567082549844320350649657829724456131304118481306623305954022124"],["10273840428613183898663024387838263863530210736848051096288288853777263415119","9268849716156761071123333817567812377588042936780526018100825457176300742658"],["8997656132514091028778002336732339727322757867910279347965337678575194907040","27119980560367756614838084622057230449633828866377812774942327654278201120129"],["13537755955526924624278988924242545683901828628268550434453424026102591311128","23946396949093029926081331097493735632777900207237832462268166890688102298648"],["23374590314754806841667942739495656037795715509637296936618437114659539133812","23385041421562715461596330512569313240724762428848641033342392161682427764890"],["3885667547963020821854236810466364962383340701881204481554542601233343877766","12994055771017526453502392114895716134644920893988845065016902844877046789670"],["6302099363266977277969459108707647056565028209473157245364650676909296939581","19518031283872160607241153146784766886112746002972885802235334088692783914189"],["6962723694226749815522150184641408810917976285929609120495898075319175618951","24849530039236660977436960602365542209226930696890009618345634838955212297558"],["8541405105457390229194295321152858940359571274465372458068244342325423456413","25800193909801671385077586139442071717794727149430719533369290639838618249851"],["25493002587972416161694131739853901919114517530768545774444049382135343412232","7974632290425253050926777489695650606788555227086364170817688825246124972862"],["11255880344830128388234770491025113515694232927175212183086592153237185640855","3735131441532095287466234825431051830054859290520452941400464024670197577869"],["20625864028975264188177566288050927540256208741494968316379211291248585333953","24550592739304804383632098382758750849363544449800361858290038275834712259420"],["4090397962996238262325662722400195171439904082966107034241211922822781126137","1175535639612181722345767643329995197600435648929367679306171359061496478376"],["21500353705943796640591368464813023578005056863397134322785712757688677124588","1268036082900555538863287588142020904934490641323919717731638900041483246124"],["28744775061444693861252292822546896504484468402073791579376620405305543331993","1586917474915992931334162893246425529162936975693462730845622215657519990644"],["3347621762227272642907950217806866709985762363294223365913923544571875204895","12263640203903014608448777624625138059788349362822029561675349506670499428197"],["25664015202765039090683503036570278119677795588527338370225876814311122246052","21965591491342591783782638537288653651417999578387288423633324199313251531604"],["14522434877262598952055175532172693384993163021669157076806981360534825557961","23186348985686629539053812614061819099762217743299266863349185783304375996394"],["2538836625604129554614442516572088633888184912130828617494792988354519161454","17881320692641324617092944346461929843404247543801612372085988294777089179307"],["7891012519068418834720997580797739231262679690745490251556116767405256760904","28355653982597927038922951339212946890844266869027078419293648278539521172586"],["20216039188544589612644754897969944718682089731429315579264586788575963610992","1627505588525253562093171582619091266175284607712677508764841318319958477401"],["14192134728601721560964656719992753450214429057224274779074732325019715232848","15915060103475072068329990591623879918030192614813113304693582609127424107861"],["1179779144854537676308274609937617658430539163077374373300827484437278141591","17781480054405022365373119753180684568249681752537567335581413486018475311977"],["26445767164107109482947853152162809378287435188799008346628815585001276957495","17258753556989238241803456957429764884557818083321860974332042429544993115816"],["14408306666001414156160826495617518631758350222189788616192996757655677124250","877116515714341665712455041412408584327310271062821081597370145339531502585"],["12336687008276048010662462489206352320723072561865878660873252912870258088767","14470463346641898307516750101160336776770795094625892324989163977978014293863"],["16584415290341793783020633462216190563500238475526755225103696694614140581385","15460508648778005260141411505701235315133231242990101446619400216417416458226"],["17016964772646155770621716230433168263514943142941184676066653206881880040004","1030089775038183047324376511248803009842082202510788326354318128903245569879"],["5960717292558785364236195361162710948959211205503611331729448859781809895700","1459727480064467195174360800858174605909135553889027840812986469496289951802"],["6611185409140876411549774240147728589830280604883485000583577140762556550403","22015090659033497206257481785837625098814927548915354088688810341000679570372"],["7206994973220184657208044925950678231412477753283615973038706962955131150563","25137666169049821263452374083709033333541434502296107317597313768070337147795"],["17717057688599967597943558184902889242779144883465361464966176253363836939363","26310340915715251140303546439504082053031935571788738072321325185545274261022"],["8316600843547508484132041174452224562329535730474006527754005111827039285173","21402777787380892110599759516176418477459629147736905220554267108186275464402"],["1885285977315853695150442470549250784669917541979367886917133756638691039000","8801672832568591664704317222032359290046224685274639963258818442480515335236"],["17785706040323093203219931371489445133921968838059720845134828979166174234214","23467635723483543806972113401891745823512136583311082838087130087027924700716"],["3657730009257521459411842576561224838968393689043547809055238979382146519348","7064137931031416269026401903943925516485505115544233198461399280809546522581"],["5196130753254190881670033577501095136949348277868208542378927615517759662328","9917928769219739738661125880179609397874263929411513884003700043893061294885"],["24328387592151122202003890971708910758765833466015358865757443018984740938015","1612249084258964288291481213679035025444646010214606505195365637110726240673"],["25851997962700398328096823988897354813071244385425775402298328252552180353133","7051367977033271561835565434577330617189705437731149094975952842145192138742"],["3650139786017918377353323627358933636827566035142931509199847760258888894429","23169982086475046480477031473206631897066874464760610168065623073556764791771"],["14235535493384334440863626867498063924771810655715320847363419792259792636755","27464574511538582107594353018251496333591034941623515066206322520212208060627"],["283988025695919382197259820341381281563702108158599151465010034403163009841","3360556079279612167544367942911095093726365923113000129551862926766713593374"],["10822830908162979754870506714082085375383421110740859359465972863350267548780","21641433156769441269135691604845939223531777882098604378245297732432077929218"],["17108063466862162514548324599623028971808232309366463750899581124757786922501","13928619787646065937393076909905893566717949562853245714669247062731723261774"],["9573181072986613141404953641454554732653477403274499889175511909365847334738","6126179053618737201713576919733684878139185950141570457616259407410425932838"],["24838167869383525959894116925230149696616256163038644275955861103640844281441","875352600603213513590015150755234345545724874038040848920249119977271244623"],["6269577105184166766164034406427925175955757441262878049154921291106353154298","9600633029817009109402295563685548885739344311195887708944340530281964220759"],["19170469011253493061124177657667547169296693226544050845559673924452934628022","20553278215091100197709307999418668104708188532143921432401118179918490667974"],["6460348573689955128390880321737174825923964001161089597558212878595048728328","21820469425241404877129105421846258789503713944975364062841950450870092630522"],["28690119089405828757547538360231259330722780450730721596556905644010165399113","16032493050729037251896657185025552203180990487689062510284868683058693747047"],["15029946703352034394964038536874330725298814378622357515134069216956142572437","13512155172207656706597182786922390238413077659761237331580877847822750638588"],["25151974526971780060108325373758315949353108663147976067787805159518883038389","13516590531949805743277223337468664736747566309691633018066302694830884024075"],["26101624160048354486743759675766971283988184112423707723272992617251306002954","4867675141166423850616059180764450142983062377762922013634054598068713670904"],["28121075937640208297618133975328218355190307257489462321566532981734092106575","10785891533904187391105064115262288453561706491160038940003996427094129222588"],["14218475427162883015899128526322223094883619861313629279386860972637395623300","1730933847263625062140497918091229216868853714406252236029465238362619214550"],["12238584221709914785440273959209402495015977053789380437370216039388306622839","3509165423787886204866624802314108477821361609813367763677898227166943303842"],["4094141282110706029002811246378826105786731451765593670268790235503552207134","4415144195536775110175858464966125181609073457649922382228885936212253639636"],["3184708929334529592357920975885197230072679403151983216751852958356396398937","27284776223269961823546875418126021971172667718025433677751293678578615665597"],["8982944742866250548244760900331578098418648490549154593019832755766729028509","9043281218695655802983991810347977798392766418565703804086240398711211363148"],["4675578904301427445433229254859233509864304915032348835639373024621428290944","19603245225460019598040697836712116798546842456126911801065348422799687700503"],["19657436075074185265899340407106538175141619314877026406753435438225381320863","1766552556875525993023998917740026225872609194211503693561443886663018323910"],["11005290366760817467810654443819758012367638245198467442254697394935787200986","11609330611187573825313530165295008891424912337698428653918066317134752540187"],["11169779982160123401012229742665249922532079483545063658893658576304442869888","16997978175426886894346470280152759623524089335012092801537294555154763970433"],["22164790960330252807950555037478731402540091974166696606005998623127550615787","22585176171590507548598651417957774089748026482311817783317045457841544629604"],["15957559464519213292754411620952301431713742546509925497429777774181509921506","22975249250409797263932719897624455807754970105454072905469662830127088742265"],["12387451941210814865676132165366414855909747330671875304409584357246913615122","12279045794349516635132324861336445371872722761441252683283645326602969998528"],["17256760764654041677635625169403233730024584001647026077730608477704996567725","16564097241418963742523970930495099856364895908939556639170960538498428451382"],["12567153670456077009225430238334814016975316272598853190903892858861128902003","21888881144264421728367328598569057156695041821017802484224393252946629101891"],["17285977785308917392834160136564817993108118181617614713547741941732193725200","19311704301852745125180097159067432761649493118272845397097587894180676903144"],["13330785541446382366145641682862879867704161027292626283776930060567666752757","2674200605233379045366118294856005220108430067054055777782385049494090830636"],["2001590562543734702773264937802779385864496439348698510852196108236629556186","2870527645516702228101211940335109761916795613542555308032372374612274283674"],["2846881273080332293247850496837365580268497535014640398950379684979713759559","4771985021715812947612332948913398874610358836248363072738293714561714932227"],["6733240288528576944131534621514344753586370744612971760270532042802700881976","17551797144964246020812863274997288660285964787522026500862218599347110277889"],["3884326145324384762468168917458381648155905399969667481997714293923376179871","15189506678826569939987388524034850956058856442180719538951925990927261216673"],["3241451045308396756952866395555487488828130835874781255950471741064690117514","27505540480544243291480991407571778025319102584929212524685964651462276718325"],["3078642399740562753375170668271229730109572233231365196968678398273767874239","7087814544918910964032497541376902113695247953228247286681700708981112157841"],["14213554308860667745305159463067004413836105579334301376424247726990588452111","18621941959699523488980221263491112583493488632075477513733121315358254441346"],["19331483645405109812969806566971661730136457469782159068136247150659310731600","28502066397595051085950363256945864961240227396970248063040278354148918374497"],["19450659293221410625082474031345698244295030288372065951358687815622694211343","22696788658040374696518688585832963789081298079718586933646679602341999396119"],["811124806864273840045809991519096550336394006823584219729750014708891163224","27683340099159531722930002172412271346008240863485171173531791441218403094737"],["7446256670474592323479089473404516033856789175003286945438124982599492224761","24213500053673463997249699737347696757899279495579600224215369523127971103049"],["17327084221295205196713307992825164442262292895912055061012386353558607514553","21560683119138631814463690504176171548664000994707409525756991098484952566682"],["26958934824814611270598759159593182860759594537623085341576386421649580619433","22796717115008668509926420896346868386102726194952177563872981853111155140845"],["28355757764190671515715104615117484002249141695508633142132797735695923345402","20385216589971548868152505770194550723820386610956858128352685701532394675597"],["18727674064579838076814495603233277763815942712561753744603564640662531200490","406278116133781452455953876956841581593049462521288428243336593601119081329"],["22790532329910455221718134037749089703680810355564471895769966509409503854868","13921886230890198012542894467518261342011599498033606766531904464537830527968"],["12108521200856835915000661881071955609221297212404080966761126897730627301633","4789791071826883407333224266674767014644282110739617833910655565276069349664"],["7161741108330424504915287194231340017947527925780093695462265444259516177881","15557366655509989718951472824748113978073678123709455411889978385382708217793"],["10602780307899520818296656608075339295885805459967404477675605056613473925055","16331539195051579161993964480336297395214656834231990574099603434229830125454"],["28666639864500154263304239255585535210119704446199153366474628395741058235323","9503007457218567423273635478556779610012228850712251844732102410062224806353"],["3814944503770966173123179180094017642770625560847829751685459702420090838042","5051378809445166991335910484190177523514860167746859393878865048482357185548"],["15078654667363653560084249824399569012183015844351782413240635530414263701566","22923564331770143290894882932834475845742350143001956395365031622331398745442"],["19388580338772368086810121794646089555772379942138344531382696599763908353023","14901776557291885703772096874027524172403383846831664241759529690386656485346"],["26644971109964958480040971361016909682736791797823207955493747297074789182296","20686802560165479251936027690992969434295395076666298129315045950399514374565"],["21490233256942282300222824262234690980634292934937665060761166767200638909593","8784999998479449347495555591177679896977601614487909916918111673797117588550"],["16616533281221786865387004780905884581545873641109457832220499382858214699976","17885672343860178653536744652025268622930374203599055169975473186102820966806"],["2510319990684475935178966999632656754172979270080424927352247967109063377599","5260737886345866098419231528549960573183742455833528313107127282392396386201"],["21427222967946513973542795630980957848786747756470665045651581772032618904187","7867770295386524396101739532359005427313250637452111064273413745283711469546"],["4118159828942566824715121902997583014821954732300971314640403239144104667854","22960894723202037513040393056629095970469970103520705282647431507571929377024"],["6992075137353371093086160534691883984865003513049224895692674598206194915664","12217797966051519752254102230918332070412229315946824056259724258698559568772"],["18846749218364389015953519227685041413171069304804094658734712304858423035123","17076520610738851102138436572585800603250945489609851757997275081109285266790"],["18301645987657527119261468157986121465658638672788447666171484126108381236673","13801289690106674155958487130256804338278591454038192076194524228639801285352"],["25187008357764930649756615935123959288928028650962515865913794446495512135909","18114835120748166553608331459014074620102302833239253335873306446365045493415"],["4058791193291476562016277239783768182201124477720391623118780436979088136541","9295972079402767006634872109045684522405923921331393898018955896017297754243"],["25945860919669639077204961045547004364512916388656951377660590929656001467707","4803738135794376756158069981471720603021518807798005821717020969682857353483"],["25437938224363170181994350308341541004383713152713148061685829534423212151977","14090385638349347063779858340308616335176293591373896370222629403764819941706"],["13799901160190828445031520953995337405214984746252050741216617499461929085604","2142089138383897139427156860021580555964260104252413479347078850195223508358"],["12073638178233200223345985133905748248614074219897032197668477058670260722693","18617615319366597800666370966977096665900281716984518304460461507987902605935"],["14673636141789540960607324340673540179703815187668071713726303430152770482839","18700664224683276857098963270056048594344666199586716515545573146054264537082"],["4194011535036620899600864339626440191041818703220160495326552693954597246232","23237185435013495045856157985659379562314516898789871926191225888820920508869"],["5352951125465396958589739546469876529090189099316539971713215096071828705540","12941790004471997876463440093314887250039031749744023469828926565571564916316"],["28803632261428192061855011611067509756087149879161777431108316324600709117586","14393763968544773924165288654842019008950273276494280551513864317008879670168"],["11306140739738069233088674100316289961307597582317496436082356324604596027603","25813470008909626481761286844035762254665992131004699647581536768315327222442"],["25790537980089529213239411406765698575606470908932749672744380224113802743403","10654543709154761652572562430166451850567718628412824629000294033561862756079"],["26049886065036382224960671870835375121981894200884240770089345887928506170372","16135065889634228305267871833854705026877992621167513333701619584423231682802"],["5095419542613637173629590282563710533435629982157645651092501900540769225316","27013185766090105880111396664179836024575773018806341345286916791396554994141"],["15448107267802431054007238132500960002114893178082920271158416426867241212014","10114508901482211961783756878668301168630300796976306441880689476112896707345"],["16658185042559891197362346494562102553647364928866680700260171370197442156790","13845442140445349021911894838503861795742309611378355972569909006752271959848"],["21539539297085614819281711557359761809977803993252821333643574012561470390481","17548805595826758484167910006205106223781784199685256524879740204647016320572"],["12329324926173376970450917858639656367171807959658739662630446524880437434693","20919571488448551290239586679233539889527424836396980568324034080539643345500"],["18270152229380222353494388225996866683809639477641494531627905129989442548573","14012306701662358400078263199129454037814473956393090762864435573517741586012"],["26111587906806986889525588684425343127068400050832378156666981913383098114164","3275738686072193989791744455698786672486901809653010554093536995641678392591"],["16684860375806494790138500778887327726815650079113136522446473117034041498700","2427992097656291414021337334477855804739775265545728337077771033203047500313"],["27197324109194544811228866871343962885424320673332476098120658672741770280033","19134790651643302906316982943173381864591514214957366255848142701706101025172"],["9905630890972208735309707371339391493917413117296462039071836910450545161282","4948873976771657303308575768069357713714847494681532984060787867513216601332"],["11165593376967047516755169774632790924524619605002162453960249352889750676415","26432288908524208737341839258606820311396207370127768101498236297146671819803"],["20814435110288403400875063014431645526966241691289536325691087170991909453189","1657416207600149568815701704376934564790932177193813827237455968505162701114"],["25940742919427169758864926317224579937192655650212870680673081816960482314157","264125675703598570334834439729982182974270582552271717289174668877240300581"],["15910880796805411225331893738514090092089478222754327783698110562977566928493","28822743260623364539507137741478250500217106081230985846444551260317833596310"],["463492300956920382348633654397156428484348561864547440293470135367793833740","27263489764833788343595547234313999369793624917942864416337282869571147937320"],["10773244618723444516796254254599215916335422710249362858467848332837935008240","14388716538638616993457017115028242895176058176733053642539535434898246725286"],["4394389802652391070794800266962617170120273810136675302177797424496734766089","13668146528291881594337421267294958958368729656543768562990645024588089629270"],["21281037006183932777123360436934843490041591003389798553135063673605036328373","24837041068408770180073625753528313052788793903808090168644575995934153126907"],["27078497778187163738266130005273301981892307302648459171889072542981221264328","6703805815159372319014663626050696903022929672189280580373088812849426999462"],["261080794385577327761161527677783837507172808807420390994603549843211052861","2511134590141095349023804788089489455688580378298296954322541646491199692315"],["24540070883633497169801638570146107521987305678977161039766994507549005555381","5706146373789036509549442403011072355979694992805207312846614259392625024741"],["16976538949221574015864122397139357706468479305797100735374760219205597693087","28508840184716871332258438193551679037462466236765594433178759868533982522642"],["28944880258478099056741958969028993804010363343313060053946655611544177641340","22710961656200498060138463261650268681689826923878822801997526858337033747917"],["27282602207458289465287311022081927648202697703587722777393472902735662740264","2529178355175268261618211132802676268441356630627009050399945945716892043607"],["6253025517894423721487696093611747198233326749681696887987382451408340021053","3361992552504280551032027832957849797952080130723123168300137004897135287081"],["2675737467098887330134152283650288253679249934568700367716412941123956677964","4707049950447342394902301298934445425126467884191379001134446895974320366391"],["19139785057158806913064488680276108551601529806484164784252995678071975630686","6053755886427058009547444807013964362507323640172099685191221006834330431980"],["15255314986922701635841405030342378916574494763257396990027359578704215733243","6060454047967624726377216243886469025322559304332284700040645882963039476520"],["2431987262822071129814033742497031233523734035896132594743218539740585963366","20281624980341381944190204884744814383725362555181323171303080432158160294158"],["17605613743625004551291468376443784064411654831311915555586483463589760289304","1396129624879733730701583062312908000886810073820767754779400600827822985503"],["24550276920328416358217140158168234436573640442113193149846285977878530020491","14590941207256441705846006850319087573590245928063685121028568793350516264833"],["14534453467588443994770497384344604837582952258017500549695686379730337063660","13633476524682173392208807274222500859087126061850914253761657804702426066628"],["4417169188538086878270049070165494688889000017290058703737243178239302973525","19866401496359621399854777566717423066316505141111343592403652994992136080817"],["17935431144282360847313237673874308275089526697346913429539595004615441528460","22331934234209023568459665814122245142939286029638070781809215576163711784036"],["13388462609224442731105392190914052070199585118855591553247322784362620607169","8048877964939614118010508094242322624787725591585935394490105582811561436882"],["8074918214150873127417724397317115878149907771881178771795864873914864709039","4804114559873770355572162894343241456647777379340222593780762019438243605117"],["12140977332568863372108782612329994633611334745804527866097968392372023683604","17938327506615069871213958718284052627484288945485295758914383693586477494777"],["22532886763464398024646843307877038521609244021214900224876301907702969544776","9981988467547652993483052484628113357357046292382660491987936038077577661185"],["10244098054645047922504444932898823240310502305469921570617358416398251461798","22483534338355535063583177545088369270062694610826056667456143318338104362664"],["25171589493245368541454220636553236748228957243696483406740336390155409170831","15155436818185396621775211470782988889717530615265467710339739369389654687260"],["10040202481915932223389185616077449307529277137871621430195239578230922889730","25945487604314777486131744103900384688995356079478158173625058871767394425660"],["1805250694520467185948201290920903655830466346726240259463715561047602698275","6502664619414149838313920201661472715673832503360491253234541423478367715642"],["12899120556350267108127375278900006965111171856481861459053185381364811627429","4836935398604821456282226870816979271356269319153202749907329997239480940781"],["28717809591619328664865912464428492557977508710055473652489675243015619168270","20526543342475839566737848048753055887722911629667991281555909198712983067088"],["12120214741198006534826553853164777742993159282575892489129006921942494232494","12681273270341873283575320601125442194633081259727078306230154061321938278844"],["10146670292071393530464776490653928013076938686789270584792363302748060279231","9594668039757027266997295394873532283643480635209985349438584748311649076547"],["12676247579416583260032331602329100604004170136989085069383021959321009677309","25290874789705470150856969312881557940416364483913618896148334491678905928755"],["11431593087562135656606724908080194252033783616223776953353581202330080162691","27459754666064330726730205564689523615557439425925606998528596888087630809420"],["5655047712884723507021299085757258453858510907835485424131891145368926024980","16237229792488054860011717270002958062131634096528460288929343334039237157268"],["6798700271902250375160064526631423116064432185734465759242686512866034787615","85858448496598528970995697719598234981415930479353623825110087714966972768"],["22765637503562367906697181086977129303641725601270275921952108751103484476873","1991877007416910118767998583124154827009092166524201971828069638575525307445"],["11919979881011584655632140018057362578912055534856254567277340805992500235708","4670651826847887001813453956876707040539361903368519826920194806655978602085"],["9652290523706733474129332816936875099721683032496950484727745806625746931069","16864895862565058733492243027368645882559086586524853161248870237563211754640"],["10978036809598890000153670984550212155784248842967150750258647614071460740682","27389360634235247429213472728099143503595388562473264964766490628458083274589"],["1680276060865310850638158750819166494983653971740375656929116015555909147940","924102813691476388926969150884086030963679974254339058529138068191820858696"],["27599174041476844142684429098484202517968859474439606429288630601942592010150","26352341180612774504846665165491838423006110092696594173124890659905312744793"],["19087795244707879086958204765514490178931833287128910161829006180266674583124","495712415929949463347731745177851065310857393730493310588067353797546618627"],["8714629068190477464453370521364183564129276941077387107007848185460517582545","11797472257588425917925062349426546118003929253158854049693384103134316101854"],["4813282706483232899366283644016367089054514175796288127061669696520112106776","25752399444799357943689849627761886262194950305115004812354780135784684206754"],["20463226873656419676683801553583651547225780311534758147192587145440946651293","27887816492404856220430880401953958627614913274485344000503444052971606631926"],["7376950553396751372172530335252566987671844021239765122064585390759270035551","6509340964349038505932428814377454995682174442500747160480509928262345891195"],["18802579378656459458169488699495292527870337620128277765069747422230867654539","7229618174918089985461619612763116426093242533076896916030265018554811193995"],["21369572865707238319248258932295571416921053423966116144169632978095872382970","7051075702910634337496561293813417988932811459470844284333043550484534342420"],["7317415904464145140813388115495078985016557469755010551763247109261109159595","16761339364578128657450004710387044950162892761441772547408545311111543574912"],["22966176479559800828686322280628522838010885184005643964622892548894676474760","10477611600930836623020380787677943448565195414067889573314752601306724272887"],["10187525556287054953195809270819883884767445404690666614866477082475578126279","14217143725369284307977499090525229289731711839728199188927494417563268645036"],["18034779902945390012923633171662867621978704061107171446889723047570481212053","12581947123874181094179794778717961868185760063335006547610389200908504358958"],["24907607221895581035177829402026176216954892963993395824785740019264059617497","19085533425654340071012304713739464680618779910179009777739612512143936228748"],["26540740080488921816998710911381149408073051330587489522896117159015392584312","3737188986306888801771210697915764957826202593544450908036689629667086691952"],["17088026958854586581923673384803743390863833956367921150653337326766476250037","9046407770793180034286053574019810148283296814989550217520442602442534083002"],["16742561175515017672291707250367526473701488680304884737624063854241816567858","2190428490750404583631094471035573408942865482294143437546014515333778042415"],["27925389054733552032535449652990590132402916049074463311502520813984443443364","3988585060021374020586477433969954718761650090605485134020429095312388878417"],["18598948025625403014213940748938463229722168301555032845938512217192378471219","11106345376816511871870856912665168010891629019520881817138456716357975072074"],["19861689861644788924065944054611836907981324801244052055818322303363069743009","13139567455379946548518850628598709495684888627142874026734361726459260536746"],["16163876488853249057853912952733890726096076469579830651993453710296507907207","15905938251719665764423339551358642805329403131367691314572480354728562319926"],["15215886930025333745126033436109500859480312048196582160844805420425264771609","1034355805838916866582258957911370100972072238825976163631634759787807170698"],["21138467102800450047102323377551173352588460943737861719233283533659279960527","18511042020809702700617717515067043547406333002335762897010865252250784763746"],["19350152922998453449128851199554804858338036926536379455345340554115902937608","23716252450109210755111455967690593620444130946714588183862533963132264151842"],["18700994776925004414031314698534130180704055990098697406809525233264490801973","13966752624312871118786089874523640188294198994482500353419333395430602579556"],["9226370797683618762670964423171279366415243213355743853396068760983374616495","10710650277500596941461300624343325133473165309613673554435049470852963152319"],["28306188088590985334851480965807342243579305028580167733479719213907981434616","12523635344536849991739782002164528426590135584345242553093421299842511013"],["19082794010298631079789516700280066643322422268933579052420873410322618549454","19022170126200569028909904208535612558817321137294782413469174036599089663434"],["23258958817828124745828669565754420861529710992622539102008314726982767080861","21858306762497259885395295257382893411264590973396070578933255113291948300480"],["17392641707134998492987643948807925194409512960650990060815977592998091867970","6948231836644334159521507511631383556775426636963489363563818194430837192559"],["26396721990029030978488221737386655240746652330757788251421019926330061590471","11778879469346067882878750370162125307675394966332559800281824201463661431284"],["3860377342740472992987715363724402806439727431169609895839376750423942351934","5152177486257130089012603460676294967852798872858594554970949957465152075721"],["3580997136027562165650281902329232047161825573876671943127629443772360345776","20365871189539915091958643726697030400756094581291124229857829907588158076797"],["16962660710151318033965799949190059650107101748693834360564086073512291259874","100766824924994596250446046518961070180055377634811255603508629165543327825"],["10031023987848704125601275913693041928737954444290365246198477862785375083120","28500748415173296173985941872641692749549123963565496650251202886143723430128"],["3195827562959996418363211869876629115417712969491237913230998590657099364578","26354260873447576675112678544229426774788507265125894403875804671861580818515"],["2342852739818051139435047702931144085216752184638766138815647288636999117337","8180277783201966132018335080402672933949977803483624426170365845806539039011"],["28539333725782979168453189150833722930281885780631369647198016959502255116359","20567045214972070990626780626353524653084037396725004030531346321203380402077"],["14532281416335328992103236647486116418909026901743007309549740688276346654985","23292664338638490467512413264507517809418220851916603939357575697389580677404"],["1613538488501284988233106124193429692893015428191441688404983772002680806692","19432267111960670625023425912812512221224507920360445056939502696443201132664"],["7444457988025837733184330052546202910665428023373965494420947257831982788343","5777671153972649730539589440374409200385846199386294015917725594298043362129"],["6846745555841892999177211366689949790064821358432620540896037949299560161032","16122865362456120587796426099555245183826453285241187344795881840326749484393"],["15431201470108146333592063359179444497386567762725739494275221710339031384530","19514546536053365278343759319868214672676035617629443604266739989256024932700"],["18647833298996102550737010364139443976098685872075998253574915888486522872563","25003001446312802041348009826880686230633185949424373015431866343131993474583"],["3809543883469253385436897519535103414492249159119862108742233320704878278084","15983200141689940756481614037345632136922209615923933508796210439956121183881"],["11435637937951893521112105302192467953067285099766149257908249017735549893078","16419172733814356561847648368062788841154030342641039117788594220173836632878"],["2349072417337768348216857640324358190705786104204051708576114131376339494995","7010221648427964936158283493864461291278461565041707743190017571909143309665"],["4776664592575327860699237026548516001146315028479925713236044550534435298160","14927917822935588974267911188334075699147622743228867236576577550263960150323"],["21669263717099009453198199257840269664967789836191835895433555746178430350521","19604509892385545361630655350370644122398209278863074090080850776133412851949"],["10136309058506797089999431372479070973773988461731626304086583060798450426899","2542337857378678246961792777632368273223294808189487580443712035664534648700"],["9106652371776156178622861252700145509266194357942259633470764050483054457258","8400120068669383645526120141911792671457931594435110353931916133913652625546"],["11974460145652311955460601951754350853630040556330884891170595380556365957987","12500010651135358814515289132450098357891239691585764626754965476859034798207"],["7449448891363586315629049675261157160585750504941858099036956364736839288422","21892104206417892926519531677758396829598494833953815388086444379163644582104"],["20949864047294700806174208273449931198653222896916857924550634173577047807851","24910037590735342651195722593112174870197239540746436415147571169075653472891"],["9231468140143077150464689619752385155599431187120360416179371410171526771171","7947566282121580541110559003716538056250021243899596018364951978633417061080"],["6071855100762746740506978287087232441320978265268869731241170690577176657590","18486883419268168902267080544376182340318864851905664639132737035040524474232"],["24386130251513868044329481680732165886880338178053959966237569566685978860402","16052520858057207573882476400797302798119244267933362456890521531178449732540"],["26110265985573648135313171138353248919729488305865241046230167715343333363000","25713493750153605311727206943647410494218177406443755401133449649277016418896"],["24132163566787414393296404888491553168263727176067363707709174622261275639172","2482139525355885373685999936102303027698445134558536256341044670098136091015"],["866366921540533341165785171710843974349518371479536871189904758067070374907","1842895849375069156586874188191948977186859589834402500211401496055612799408"],["9417096054457926069305128628115707566277392566795907175282611157663432103718","24833595850241880465392664579912712056659272853373095054933479368992228894624"],["11657329994450737369006506951216424183616668413397507451566922457511464863907","20853171252404185275646811129840537155116939063115986572629667785085784064347"],["23706549583072056107360203226217258595030623263290360550473585282327753281494","383625241395877294166564659432761344793115504040714767615032013010134344020"],["27123995960335220484414956322461907252383284050406125003015961465140702292720","23998632092347948449213412391073902083660763669074723758718267874123250352860"],["24852772139340837268097336034239318077602131951386950890462805630176124459404","19554174608689142280908077690174636393384159509617789814407399821964915442601"],["1411126923499673137470248934080961723765998770080820254191816440530817684398","1805023123287379645630302067881053071942819117391414961300328945943263615474"],["19704840323589395898154093465288476194415614313401153839363279691438998828978","6279660323082309279753152977794481917815856638085048337975915175987947216296"],["22413510347810508128343625396096791051229479516790215700566014520765917948001","5073791893970701672702083258158747423374212824460906050748537207280808620724"],["14506414134070518223620362556564552290673142562610618009561123182020379885156","15206346603861852638421873529407201624106639201404846999869086319524397430435"],["13328260968270480995468675444885279091218596915303476306201598112593472666635","6236420409664222641012853995231879326695262129922109872127464429588000980340"],["25061677586907007226473837034243136073671881834328675528743574588555722336252","4217773461606544839133702559577727371488043214943598262671877783338928355570"],["6313011115533899496156948795373636711525407508676932848526875534762926601878","20826093038062582387248201029932600140834522248273218516993784436608179459498"],["4278820182548298098728272018306613149292070103980810111535297593521932466749","926375993742290966813687392374879929985486730474740843224888049821256743182"],["24907897881378737994285297843678737444620595398580168366588561762275288015745","8398592431325468343526159500092266632489798380978455820746271514406307914428"],["27688195060741885047753347713859750293508034679665355667486023347143568395931","17910168072046754239469186677962789681188694032072345858136954172048946609134"],["11081176941127573632792996090972494069870817516956043914092870678956325302048","4369146928097715387360103170335448321332765217551734787466489248808853727267"],["5160180743210764406142769831791885411385064124657725331668257263189096763272","4412153879745676483102258483879908329040128146744849107531268143103351179038"],["7857349249211539740223320166145215285399903069128187974442496089159079791721","6725756905601165360643028676743925364269127550507173834958847183190758858725"],["4403767980422001308027428813221253966091146936521139063354930141288903192492","18330506492494905574486300890778438337662360090174386663117422609028004869855"],["13509452177617073085484187421976741216078780201385645435689526838994766351146","2705246731835099083701365612710300214836442728398382871079085392092370184306"],["10588709459881817117940039341398209823196621227485185027829918390262156002181","15761362551861833657646975739680173790870505541714200020528576606881579606474"],["23357774844028512793351677562884589208814552232035957482500141643654281794660","25856152469190434912310157134743259624030408399816530871757155394048276904329"],["7413855154190443916552142448353747187629006846707769972014211469240288566320","16261801010915915231825607979113286333806748767786785709066088315146801346388"],["19388829715598539754418783279803523761052619011916936711326572779752381371262","12272682995335410403840213833760032237268455665120583944359239131100654030252"],["189892763678009583219198168929452929631096079707723554685224978447591043009","22431395277703141470701336284566080459155014508270234158862202040063554197781"],["10825173917877245035517139224029147097937259402855846138916144895912659111332","22673264490283844260479003099915905741411347709328565309092474653020866429418"],["17956081232435763668879098686411601991049429682615929750869201484591335295505","15124225774342860996119374386756511154903798238047919571943725003187541537428"],["25673672373311244828383715235895887993287362265026167125948785659002759585593","8002935247410565996298470572005334078731180006225086085530092456117397665770"],["769370790065833484697894134685787755227282738538978429360146900276880557147","3896432390521618779193199548064233799764345187534548782833697322913635430816"],["8279837748292841558917602228081295459477211954804860471246655419709295943100","20919405030915772911110558663038409239315049876688976046000944211516898662480"],["7819394392376257400867416745381675191722569802777005073067429393494099937412","1321243635148598154053262653857371828249205561787237335451366028345530008619"],["24651719662306577563845812198118975049839020206483322218614824649674217503093","16041423287084086517811728010215586808249620139175240810988668089832882991704"],["19342336640142679291914846346125793432592527166869778792504949439984516153521","23977058565941122875276906527287258650760001292749260000938332841368955636528"],["10246114910224814211719915216291870029652360882627345410695442394708383978468","16631808661697522463405605460588211899724633302998606113541914083097268872359"],["21466444207221254151099884508738927688071654402008305200581000168548248898208","9727614425119346617405091162218287105807790679514722223466897918954468080050"],["11689518407656018712130093019527272847601763109573132105520358021268948927684","5374138894684053913473842444028943493796940605762695025700380019440382025738"],["23435951927327935801600555773631790852911432414280412139311549091808373805543","1322213705249565341450749329191794758800709903687695174755985864394289549038"],["18324261593929618205688885040218509693098774931582582287859838716610889281543","12548952058016175415876278407567176391018125373025902141434266754148488369435"],["19957536364811144992623784751555953656760518783837146888055401363656585440544","14220325002536516766504943942702963515626871325970612840770962499638596207250"],["122869611677052537285992186285238903916914590298176413874663407425605575509","3165631770938484971873696284445075120402100236034969183716498268075404647968"],["21919473337068607273991532727134304023854721688492201885070380909334647787372","7288483299011532115832331001474647963888566344818905256687845450844566493704"],["9711253734954407458181768630784923328569877856186062029194644029615043117126","27399691550954404147628702566900010930792440890187355944533570749571176376661"],["954041194432109811610133414627070597369712415005530885315910368297390141027","11379964139407958115429810693145041833248139630707390192821992899261261877098"],["9348515685356821321210928392960642859879402323489879927662735001467358018139","3427788692423041012455570438863192505229756376785485269201716502625404998985"],["28397990166256714348593847815806448995914139959805387400291122550795716490122","10657154606672200608090409152545923243623245660017616364788057431751215637886"],["5839195926753107896618002331614593733592004788878103382638442660818353380006","7899117998601273159312727284912273263820439123045134128127680443653071554078"],["22526147441857795253946896492146801341713049537160266541978165426709241972588","20535527838129942881578781665669879989855276557285644353814120868174999386993"],["386439586760670580321772310921919072409833333522623246592465442601147307989","1649077613506598336017547108462371819727936545688931228502184364372802021924"],["27292297276849330547274061627438617576713039858096065262403738014338222668139","11986322434513811558700075910356655329147718696619246580961310453140520297748"],["22266227540009700846146925604392729000880453209654143958233758941551551607803","15918363122240302470165990069524049553992935702932524588263832251783613134370"],["6071334543888353473526064609637912110630894535017551615805055149484936214425","2709053888309138175490827138587753999224649352966153895553747769505856528090"],["15487528486122242485967271408583190787997246611467404948743897772476911106968","26494868690860799040254905588123439217567268383236118739761497154427303906537"],["24621415023659110914578097256678097060253653366554099407800742899748663781578","6426208703219147858777721200910413790441098722513110133349607874084006575848"],["19047180721946336727982911112741401470094982360808562335141408139478734798399","4663147868797689221194062309435763759921822837976073520347022940603726118118"],["4768615923381328054337674612899885641714800260582851334339494684715711226887","3751916815372761733317600034232998607276131925330571389777439496414865899059"],["3463694057935994820970689690159788821798632432478451559003136369974604525471","3700887523764330398673830371676609943655492742652941840363899106403834337757"],["21578540681891364197521183275783021872782263073986817255878519492121131109820","26994532857845124632047095731261389204655004872449414980664279744985214423552"],["18694047811565447279551738837698116585000885685829638930152961784938554219372","26284806790088207883162195574013247770009371845516549011080767056822452321695"],["4401283585523424335314323024527487164094091475688708078187127947220789172923","3872674796619880544220486062274476093116033699221247555898959802552024870513"],["13870665473021588469621951553329718182348551104970601076779284454041581112207","26571354681025612095535448214031541852257284988158046180654973539331988929019"],["9883131643974041879545883975701796629103658926730899490243228381811838075963","12435420490572635118325074369542635278731139229493038326483575719944365648259"],["870253804052808749363757603263924247142302755268968328686037169666795577422","12718058330753093272159816518797153335997122661086218309266864695870748105488"],["22275431708681930076375105628922316516473812199289515619019336873378750841334","16238509473718439162401596677417390128359543798082302155540808461518762407993"],["12296137170255629504499962815279405593939626711281861705274856083739516963339","21967095926145290902494863788583385163087141273450532594040648119929258856054"],["7382402676457187933309758019951142748459159410215684585630109154107124871005","12051304163395010691594713497133476994986282559242019100071257618983113904055"],["7254980579932243062042068550712823715316566102992379435646397654809519846996","15758218955841830449165261256649816132494915580126336394848895784880770522817"],["16209179110585875301616042860162242985022751220365083925329649714863346353737","12845939304301354401416021506250624317513780731719043107286649244591950631322"],["23646693517344257611908227156010430539442332901712029265455985454384218997836","4719897786456172207891844755374263444617052341096920922731785516379668944330"],["19627727312123163423286782864479130712513751093462839646367322599908760318402","7095899915349842028989158408523178688149441907270962756403433483661265323967"],["12845631156252855512389047102382072669899492533814568739941330785987759598337","7863529987932200669999082251274502367067348943699825365858351670531016371724"],["25940709286429618969489100432951984225599092576792507648817574731286278260565","3539535340699188561653551727124266460312729753209036348032278298622254121350"],["1537493956861145362337950683744324297496345010079112143698968440018717598241","24362964473644153049369239673355349567500869213430785972515991026566123376648"],["22003887756381957457457924363837470854101658681421313313478979764398900591437","8482784249292534779092685161816505926995463700895259285340142977840725108195"],["5353630235222027473542818823810859150469880641921217212714783210224329694449","22411014318262825897946411239619601746539336016866367770563627026391681834165"],["24816367146415175420413756672078920849539312873028710817232895935749803494048","11133692115797191721395997254813078858773665223231410391547984659891914794777"],["11357237036931954508734904920747841198648532519271308667630837360581732725923","17249472589718956045709141817629761796178261617588211976558661565253987725635"],["20729818327555589297521166092187220998312438865853230240227788844125165940334","22763879600098125722122579943235454821328176682391554031111549804300009919757"],["19300892513017993832658629677443171277655332710858941902298484786748056959509","17023252306597060458603583162836180206610439546460462417990217060427119868049"],["357398890250597760489008695204489158618982883697505522788143115717498220506","8791959007496866325117166046411933561321040692003894555532337276411580865942"],["19497357170425407522306073369001773001449793381311884450764564859347607131574","25690043961897102589170990130752455877725895198732821959680058205086046796363"],["11759386435455166136280817041662316696883999871999598011478210756368756620353","4013639583377843457845282288110488135938200265737746938866020499093467976745"],["13357990892591173109216237618886419440943600518629775380547640595183464208175","21331377431235992193938372708562046280989866597862911928435344739782795986759"],["28799319768747081727505135702228240991100972712841563335209154796918658667003","3918243823741418608275460447509841551253225713483409116414927572069747969867"],["8488779471001693031210338040147469975348785025102202266890136474953762612523","5250480996654687534606434879390274282914843394840699681590473959539840225465"],["7703203880516880691921632575557291068236580471211171971555636135775307719134","25041773940106368902817046984918996368810938685959849597201005282589815963818"],["6340378243542987053825338635215836215547599540361795139177102249574571011479","18012342939925422170241260922613883279188792247113694412061492178030137821485"],["12659763320260450015211117026259913242215748680147742798156733264644120103208","6870564584997064392117206933356957983727446700452243329120459046924039758223"],["20278669143106377701959159525348951626464026479434523998296011402266655987433","4933364075031821499305958988675338805409817473435106932863440302618004759441"],["19392974641674712158529256675868741370069332671252552860769555995104198902308","8034787971858390430180496709394843765434853125032810107066403076792975411754"],["1740777150107223430787226518055618449713355882589662472909975888588463189737","9284589841174603594493775773492017432948039842947811876988512961591873595277"],["28935742474916708100782340138930061692120973386085270790141258436614888566934","8001723262666786066973018081657703161607960714292223804834133551592006476874"],["19732026202202826791282352784896775506133349960706723429723364360403020361462","24501291733363983303031920500630382093458813563609239939887660580733782676792"],["26409978060737434321165728850842430604705633326481803733239865264112084374669","7130773096378637434037429210206270309075955705223334062759043513991394015265"],["425025182329774981115899982629957354280462328155972242605343599317627524173","15607358398509946326964648291240160897114133333803893971878048748419976749252"],["26316371654722082566220012662605931375470313489236981338908534467751034126707","2988759724898337380334124765662741508675821964482290251957812787135500269697"],["13313927288050190125859732090042056699721834291308027194941235665607794853765","2622025836421558984364375981613868414787985644599662032300609179036777471384"],["15850363537139042893259519481383070748771745002996596695729000092908992193866","11396881941945903983816546756626299791447920037729490093705471575770979677689"],["14668801208669045681470477607178186843422501814153542827607288245646587560197","21807603795000494064577357482389200908327300271576121217031896443885063804995"],["15814477041972780362017713440446056589568887302130590352730911032086974971090","8327765937545177292275865657344365340060698203583363150366282348296665031864"],["10908036663909104154470015692398629091538342389332785508920249139206864209348","16124569259969219439437983083243709637292775280794646113832578988577482731077"],["3803828951297685957668315789625395718103077794451797821444190136921561680916","19514863327662215411605849514750006896963943467088588431030881330576508819065"],["27509409981923746042760003490311158156464209708705778489932323210031295420260","14997834075874102818980327782352579233793405702664300435921981611140458780154"],["8185260651887427270789300718173412658024256694118763059848537987122840427712","10965644943518554795281187486261438753217818942806012782853864245873497714612"],["20778012287003153227895018971867522947912473247963177860813108409676674083964","20625511097588583949143669719791328483736727817473967117872887861000828426980"],["10998965975846086173588492961596347835085306614552739297902059185855627643804","20968804669219911202347937192121774936379841581649499263075768183570005471545"],["12375104054421107439917155368009105828530389487548074001371231796016384795387","27990104474592763838949964806282198120789378494953502023836818222216211825175"],["20022650123145842983629536403942346711083349595210910617406343262852840534625","19447652159595648694195779779309622550229001459843313084711023754729082824116"],["10980884799061776561957422302860314484499222605564564859647558221092474927115","13717930122950351560981359058886495283266160381707611528299229888056829500561"],["1053268086497226135392450917377963916850939300244860290335261222948330524654","631243550108189204574547269379993504676957377369088942765483945552508402242"],["3298911895892776885452147788039099570093928452379924536946520974640642554615","17096020336193496497688175863746504438567537106973853479510092143765973160978"],["5781420510894798907539799565247362323255652234116658210431342415768948963896","25075746028125928895293725103459652826296603720653969696822836212561232761105"],["16910647036628787937639410419921208568502435167589760267045766319321686496019","4398420809304170882175034856625205290425062283682080805171450132272653202840"],["9848056525947231033352944398420794878856344949883368026727399300732188364175","21797506114353571387135946030942216660178829134306328189005809949678090522540"],["2603794242753096284627785327141365369315607564302005306232790027831043472497","11028607288250126875497637221576778467696966989496370888316427951798740002818"],["5092840555126127082242594511699691664630604687192317412235163953993252768374","147951214433788707440864222105403104672020966751802457167655689848009706041"],["12651877756461210994326628127904708761421987838146666596939227693925331840855","24549035169356724541716280971639790756933896940307898481552787133734481943050"],["9588261006707447349456292794933069138301880248568364634307851702415363770074","26931575120090391899511616571490462676706049190967402560791318857699318095305"],["2823619383516432254512529705859610279267600824016137563624849400173266084265","19931729381149389736317026177200441268090259317211704106323637838809067489048"],["8379773414867639568928088285982163226175324655748128262858651820442470229919","4627999955576424975283470666529900029845174950843815482460137837108370903606"],["26444516561432232526148160444102566387763072170839611274176970659670477647529","9731844953179271676207298773091887898451414483557336454724126293632441454134"],["7898181239680946749375032943888120569689156635659912724196549074906104247598","19089090667614280368273200032229124121727698575793751688846887419884042158495"],["4118600721984278788881496691678461628452044297779107351320414416076510271382","8923915365193636066040404407820554124721380902890483829048962099813384457765"],["13070084947626161825731154211391769088873773283164123207801750128772381153204","7262699780259468531546791860711221325333446094655343561951234966303936285577"],["4036288486307152911512927416006182006421714921093181420019623380182404587553","24172126543881398375581766152025687884599077162435592674817270539270837485586"],["16999173853229356967475646441016348016063258098549422845839185303234034625885","4889836440862708725580784662043538335721378367527253416590567632015769211696"],["10051318350797673692615554081724678148726158573476200318121061101304551539108","6005584564748332853166602672534503313342903633799329981170502043083288276664"],["19939953408884330097599941168640184312263747667237827385966923115751105398778","23151627891109825071450767502963748797101176430725708144633246494225838728222"],["28397186146301234203934896306321992751848774393770896638743425693432408188809","24520293439780358430506202162526547731680336226862087353634701245713417237213"],["12743788452674700135097264067437263868153003473483423650357964772158415689847","24658658959883524592291383661782042407447578198782144636827157478173803263070"],["12780057708032392252799914185260927788629546018643263918255507163919996143529","3754414280250286370530579306469754588800616977793413985252366976550258086976"],["17079977004482536089219265283874154616212721223320913925382206074492763491061","1501308464120314024430972159969928017907361816782308548557643374328529603177"],["13719315399819999980142949248167930617173196218262102616237465758798798141834","10294038970609568255029436185434062078377736570392523899772545687060240713638"],["21048561523867676457156968379186850989277724385947991261728863818165304804888","11940193632218981406689993879810945337924618322324750960646660966874553144389"],["19727704336620605772586908606223304852700406216873942736884663142607685242675","15325239902932751135362817506749104391425668083880384196350033723396580289078"],["3888502914193537397291023821733266179199312466040304530085492515816370342608","3676945066487273049593525779245436812445934792858414799301622669329819761883"],["18645293438270727812961398530811837720136873162252849049695735476799691987481","10819599100001633205662734504454713671629235044218874912819971797166881302198"],["15206692976555911349445056871251663506183180780482254451280457369453257666523","22803176674908916363853735605413960121744083692756733552201142606960634669289"],["22077456647138733005960048903465379677611865480461687284811791514806387965272","18972854672206440906764701716601630384069319375325252479574623435150983107846"],["24321448179989506435630876896734302936007603666546314344523442608774325335229","2146239611734810078341829403033723995774830876699496495205608549635783510835"],["2787812719124390621459316032310239110275804806307722974468640021761657980","13922530709251571775553116651828168029962628858004903803524583122409714798600"],["15455562727972155333729324211566083860083444849144549864217628974730155563096","1955118804727281536680912758333338741238255105266924096935026695625936716439"],["3026058699155861904020634047009358385582369167856492345708401655951327958649","20751045666960566605865727506951810218542073160636569837456564085286390160718"],["13564835231371704636926030337653971542148405211739879644111655972758113367800","9343134546681826102488588841330835012350240939689983253875598096085529770684"],["27212491059606463793360454583713086311959417854951879945001291953140790814666","18558387149112865542410277730533754816126955484118323956194143792190157298317"],["19571401928450860442574872472738153562554564476125119422405522560079520477206","20004345262766049287617736789230346010798809885051940024691930564441545792391"],["10906372608321450848900993246028747925968391646280417838367671190659233615416","11402730854902321713223430175696047004352418395391513599943383515170678157589"],["18520616871517761652692686173386116785276967597239755702423603831328014506116","15854712973250352369131818671338143696037871579251454558712707302126060292779"],["27478068885302555656625853255734726433928812870068774193048839650109395715779","26685148691466594516632017202538190476215607077170876736482523270924686699867"],["25858415111629019652953344180833192112400977772506380289350996250548733528748","4412636252855271862236646172213655338197910434115616393037319644678154377066"],["12537816963647275672025745172057265384833743863279062558585079242877927036652","9509357728210968606144138681156272629166335036060974039811642356668711126306"],["25329799859329901856643075877498813696521236496784280245877816161090383149633","6647794048284053665797555164692842349433162882479894599133116640381670504788"],["13534173571262893997246933297048633445761301331863812977404126126915025928463","24066900584967574298399142497028517548897190190047073457691476017466611812483"],["10969913422594250000075956505546222329145600188127129509601962804126140802397","16618345715599907734049624208970187891925985126148878197715831430079191908855"],["12411818815182860980744977186720090757125183403298346611224459880765403142337","12784114295221481242014202422230443835467959423322560009731627180679123540031"],["26880787064178021448411800625597602087741284208318666120337733036609586266135","22854966088357170035368639610775974638175442221282781690672642514615015585256"],["18606284258642880863916704222174348465514575574150554996232299524730868137109","4032675725275946445933347147080849234466530829668548511648100684373860676770"],["101006643895046220639926758763519840402717235342729070997934989512924891877","23048149556653456296890198241863785211870507083944111708201509209846486636210"],["16898075525881175940089909638817082619245608228558091264516906392591310867921","23347297076208905484375346989436299605421086690757995468613271283869529591151"],["10357162173840496087775696471278122457882065801751397494986031878479529574801","9814329557851244723982582373694716949697934669798886134862690933343985654018"],["8978476922459681750029303492358834626008429578786864076239853839220097163672","5046212720155241438733921031605191321711443988061260676091855207448021551237"],["4494392248571035364050082466167104635440546946556956170604789572669250041056","18412991563102855592288417533279439294530842762371847423877821531962137698274"],["6206638960716353350268857662563591822985417581286670505040753660208026401804","19856196563072493777383370755604687742898427764633934184070734319182219069477"],["588557661667342275222098207788767467217912107034908606642994142452437932041","9162038646229511460148690012001439995049861848773467342466130088464998547355"],["23563106424900684165187829458050646793544115966037940704084328296340043242310","11905175707889612589720023034869346198438478623618881863523276145177731918834"],["24246882313387134151485557092660923322195025245680335227716550454688880996228","19416968639178815115049905455145831423149508551117122278619559565613603235888"],["17689701394230182380166488639558100250411128663193920925722810401520065565016","17380284619528753003706584655942591989019049287531895781936506228201525527412"],["8910886420166648743376081108357793690694077089791773725499915687234776561947","20185981837569206801415730902545870156842590591111394060458502744841836027886"],["12681989498797011479149474518520260062743152666251348129093213948104412815417","3302859121954134910275356856708952741073317255464498016476131689650656638974"],["18969488353191683939341801402668652106453589289024328390345481469289794440896","7232788430527694553289499885730199054277961566949289659296128519624647519713"],["1151997367167755418483233152259425670361593954243663965477307489256357800906","14997334728393468761333970981801999044210306567415146301135523516883151516429"],["19371687873939930877567792709659324289085323346482444270956265663883381391216","2805191183791173374840113293165592514135770390453230265505018889671731210511"],["3856007040282453236980525036194075555528674940896766160543551157253286798552","12819022183467943452952213301379918577676670201662947833768062395236555312129"],["14016241471848956622542576850462307057589446628885686322990061580955013739510","19335006822172896708553394930345268455216183006457417579054301900596622775184"],["28427696197374071064021232335797744510085240875936385771058046886580596809020","26720903363604664019782819538634306576254225030779251771118937486734347183591"],["9753552356244995282026287734068372585869097925433882450927727926637691837501","26631323823341693770333802973801695778138334179520371717505760012357365912693"],["18095411347910758793292518064573628651323113607625951668911186235399232647718","8518331361443423260727524089471240264866228404704013588417187591411195331134"],["7441349823791655624645526893981302871820291143057444344888228778388294007009","14627667987948170481810054628384573103457200670609886320475850590080628504373"],["3299273438171214284144444460462211234183234618200690642927997538572996992668","21641792015336029462706331724981360385634986344425503641031509949832312397935"],["28495743275032619091637723772602209342536817216485864986613749082316391333381","2282293752671619302359413103005726450548657463665373732271851853850451960516"],["16096174298181727859959757205143479583414917184114145641645464450788189176425","23571659375072741188345498362540075620947677308598154716854412512484915277109"],["13134014710369681514814793887160110938799028338109791276779256588214354930424","9422000469544976377607156080942985423465162675832794598240048595814203022044"],["21212448372714056974364828675818493675278590909795653097168418688568294097654","9715211760100503726230335729944026935459846716885369560182200366495793081531"],["12809740633893486888840102862008841105192588179197433941178640471111940216736","1132403316461545512570836911297334796547190536146023446391726115698908168335"],["12106380128386881430580379520344802212700744404130456016502957728219131032655","21509712395996305153420876265175432201760542991671843589408294034195431411018"],["8886557997318816919640206910132208902346933879657984794162343683344774740015","11081921824929736419404094289289045747466609759904813788355116197694306676477"],["2354344846637862479529651612163267562376723867913514176984506767848777383492","21084540929136362823126272637973764144469736207813921429564127401437959769776"],["23343883237373601497162068644328177824334282567145593543225912780295379085049","4583773543086710077777382794657934220192738699046934938708263537992933874607"],["8160245954632215414866208012999256655115328303196677526718585420679206241875","27887531112902574665881723756551110810394953147993135149124652494631160707784"],["883574919457386283924497863110771232273630997152041337535865979750158310624","27976663741027847787149314896193101609906614324532261996116382202660631220844"],["4485667065198574845334323721657620524286365221662495849380582351383145612875","27562820355682233090573752572560573281632019010630902870820040848043340109613"],["23698656448954763725596263425274408151940201530344885514714505505949813838923","19414251030044924159685754690545772094078399867900355418935625200919266528763"],["10289669048475179577277833378130753674145475216673557052409735898347277077454","25938494650835013371215630187935105661612763769154749320017270355402176915166"],["11350356390995934208532615412369609563776147924551869542394304807640641762534","7718658515228334115038143595541355964801938377305500425410350937697334874412"],["1929629477347195991691054428349041611255239308696167211312189803173480909815","4870522874092789629696359966023702287960992054127773531240970118239784672185"],["3650144862981718117393093742093642623793053354417848451569182392960931113296","9635013217879476214793642143294767858778507763759654227876878216392719261154"],["3088718768223073511390199296055140839723864994847875544973685896652122028256","15215777017675138250243509786460936602631879428981531077461301771038989141730"],["14930212456311855764966492853432672937755019504126479343089175577246675685026","27394020591895669701668458138362946995082887470475775942365405985631029770113"],["14383207763924700180853936148759321455354374666234645851568336367630904697890","8807939594706093833464140861486266839951334140042452967215280264437869050868"],["1283077996210327828576588061717941036368226742773812452227030184740049861847","9388984143500568717752998593458670843649749399825019005838361580512822267428"],["5945895490429889867970913368385713860411832727261569669783043344016568677328","4147757813533059350154051840788241490239590518988192523964897654962144883640"],["26782412556840049682544808487604986116280000373011965142701179272920137183598","861816323943120082489382698068271548613448033952385749576488376442084173350"],["19201892096219057669164067129882190166667601052484038997253172956399735503080","28829567187954429871475029221935546629532803194305507309286630653456530703936"],["15786614079779960436393163535469330110651551513575324201601785924196059818135","9345314312587810635871472388406222801177677689071407983138564537287277043599"],["578585460504893706080620866355765597445553083398942300363535361932146442336","16465838079967036585144141837796910902405842923787531460682048624404008686574"],["23816912882693873247402923499383910818086740452862892032382016044713586815525","20168358604660367251083973871942972594556056880791747191974854266597783968448"],["906387063883357430440682998504629587305476842021335882864530022540294532562","13991164911787321072357860435837993472235914790104011403781922819445218409171"],["9227272532271831514414850109980840883328623132326726119949267508054778626567","21104156263347909500434635119923413406921837422724527219131180045413004301910"],["22189197108279197048802664767118295837193819985148212229176692937769420813007","20582337555317201746958823098287417048420358507108193537177515190008293175482"],["10255319960778198395498524080603057303856411732335940153534133234147165107219","2956452909933587238982639225145939411827194933772176335916652957652114598820"],["25571687180758933696703243961389042456775197967813387526421853693771902926799","23236356170094720560866717539505610133658212011942660547032040882897868890123"],["12212941253388407954227623808790545555629949252944892907889809220442484609024","9389680087679730039708826292249383621931503195370507453360157403079184154483"],["324970659378088961633360185088322524271227118725411533996059215468218187105","22823286192419763040349612059127999691494895714034147241186698709766232932918"],["14418320937717874248989002717541297410803510334350928709739789882221506364587","7542697928698823107718669858790939344972091604030067202930673657926909894477"],["2390967394278146354224974029267051955208385269390799869042795296553644255593","28761494251877890725855610762981539183483684550850731099336764287317697868620"],["24352027173049566717025507774432730273865670474799092248480211229837765360000","24413863749774448605881262864235693706475240183624687073098369088145683604398"],["20636846464003334628520047263891240781293852776574468003392174920789048382115","21987760192710469251421406380348693620253975661509770254425779651704884919416"],["9103228255351956200369664610145212784959947430737239841123043210558327623384","8821472174503725712929935018792517927786602803805702075236241906682138561804"],["19039654020660183178704770507959181791288885554165380616889095760295238741541","16431540379263069477458222265387554798214707669771556451064183415852826547946"],["21785245750013041495818782386935240978196602411486358220467163815227194011332","20374278141571088172794406134835591690733513472177571145379903053935690163082"],["9644357238946015356424999014409891552584624851176815736992944574721925945943","13251645498849373269747934615200416615669481337657614799634375761696177730034"],["25897614831025128750030750121209550072478338705972695005999359691618056491953","12720771145629624563281689182219982675115376250164368846251686487578308797803"],["12376623924015510358806177869538619495484493281740024218771045109412833911195","11394678211849280717830535527822951710241692146919815861029851062639165338445"],["9097239529269250408107189827848691709900283410831076960173619648307015901236","21508241266818182175258676362509333951089020374728749073137617255307068436931"],["23026263441583832025317817344015223632861922477696351628194464220959749064612","5271869417738256437106634120617214968448801251512005185561856072898004285891"],["1092800265325525068113019194312165259582061333898433730022863343148644256525","26108206968799955411289979187403446246640277732148829641188489462261156062108"],["21418331142336281896468756209680647322825626859619751812828991462619710632217","66580877791185446719571959386548195097151202360391085950890721101452724119"],["8353209174749753978215374448607262887261891712825081804049974720376834734421","22505842884165199670184022988087996167406109277269783287342018775026212099603"],["12275741831939141493693850427595964939784941482588911424369500890767407174716","25521104217012614925149287677380308524566588463975611094556604752148673831180"],["20702487882224063492844314021110885642571024073560756765960162662959351602470","10277232431543302512491597423634180908522092045416079954767907153181014881642"],["24859983870716627447473009299359276686898568752663834034758406924465660700821","1988122984724240962702136533290126067718589375464056185948032537037240459406"],["15844247976579360217066967966918381922781380820358515540431714109225356458764","16906224049546119801318761484301235953192935349397395269141204927615422304117"],["2972907282605143312516430103636230984319277005232657168410148656390941538975","9568249231106162648110036106003520916179916802996969260023174762764587940444"],["2835883237723539748346103369799318090018722796770301778307026941808754062556","12997416885546707593819090383485611968041171319124879035179658897853140093978"],["10095360967053873086476043517356916434035574441275200165750989854995355645338","11813552195773936997780659409337793703876945120381493583475423926996046747292"],["22758647122630554294283796722930139860912493683592003059693911601152072216391","1104853245489430091578069153169245743781998148773473925437261208725152340429"],["22187739728550324380311549091153710434875922979929017595671265801510271905766","25801024889139692875636675658149334713742170040769603357627800738886264546094"],["15390062116472527456354967394422702954966874591108989206980609615298087478360","11125879438911234025983241749469941907523464730150803228948634418217162042279"],["12565008016656862587325440707483883944522106103117912496293864747797725517105","18973580581677247924339822756064620775824599226839816772706968290847166308521"],["6513747066238966086939080833635108105964153017335461164326678573040550872912","3049324323301892013324177785008851883442220445710076137142490033944079850299"],["14453171590981440751058395926845409629543547647977064334699001203460401422352","1273742399078900081007984753328366168066791240818510096744361679839567218695"],["11105483443490869142967934200828063390591073414329927820477611755911983183797","28858972922363917276419234217643146683650254759140536915037093684471518061903"],["12725452320031855650693287443933026840452192402061811922375800970797367390636","845953627226386368629587949831051821277009743065521465939647508161756450629"],["26541350733842782676079540511231874498790253170442343479486677808563498951477","13946751938075113951269866788602057357480142260493375853667389667340178150426"],["13204353926424310682407011010767826878781350987875370851111133857160678288622","23711550009674685522060620793205430256824793913513674267053160575549065168026"],["6412800064378215268562034630005148575375559308165077759097369395294360669262","7363394050188718802937590739276115129834426093253162045221575433818718353522"],["12350871410940922500793307729857691930676055071369061747175534600238822626892","11850117993252221775525772249567536226009057675502224252257190345716917757780"],["19353552353294581187034046194815920358830794072216103578215743511985188837867","17019981293689229637501367798948620984832337249652068810880966636308129330459"],["1047971228565164855586753648361692926035249995392065844055349728770021575714","28352998942987991725796088977445078453154852284390490087894050534886990978529"],["24179651308215112068596545335747199149566929251812901807319428014404778953674","19692287121363200083969292896904393966308074200169416899412439348523070397727"],["2854890816347159424789716893796647753500772442113161399396631586135854486983","18922189445295051278343000222180342308964931808147976858508788072512842774913"],["14066621548927192571309634607281212970493999769317127380748699001809222379783","21790391121441341961335004479215290473175735496472663835699995469290754133574"],["13795703939859963046204345145263521351560407525976947975523299478223953299461","16627797968124024481207031002880701899500006189176182434601781787591796455527"],["21576958441251454954298181277842542938546362559676776106857276620167584706466","22890636244605811162262897484131974553070660540478747208865712528305838691797"],["11505665480680619816896579493393752487995842576408460653293872718489742710870","6569845615889813182840087678326785503691824423319618887969901288933037155277"],["22345429919280713440837852472612960124719703417360105723961989898177971882025","6165430490913109942747155607939373174915003705787298250638681795738527953532"],["6814491218896977439973240569083329859924290095109323772397884617047500423045","12040946723877362336895387797616417732719862360010558503245685882835175517993"],["2298899664273645794257371923960057440826902466944947903353010572671033702683","4787926498157804758294141688483107339456708906032697861199237774080914003373"],["9512278453014069448003658135013995985133047654560062561554107110766146853064","28223357289892964967172465091491122808063409368924913011794458006470171677486"],["17810850280866566533117665538839914711795106025621938547963478567989076815106","8042943125953321441697923489247585257579952332862481451234881102187577085889"],["6874375587683545536696465041244365490634744057869941151294623164995272824463","22923797504931798478302683382143583934670643137878209068058034167392838753676"],["20353296690108817878144791806202030199959849956735360547557800618237509776588","11563949261731491596455318451598784663547236805721681840207386286135351615191"],["18070980385887569053278048171486000751184136236297478664601365859032924754470","2345731999865874956507333513903498481516784695075941951111811499013815069289"],["26024670691661518728592423840580751287858235361957999975197332664663839822934","18155391999251512231018274364783098107360512220614996357731101395933646020498"],["21641538940409719545810355523878390749749217458591402912186030698553627009621","1850060598221777534681537153609518364751847463747044023429400224960686670088"],["24188949878792393317027013958062026549010311986800177490304320888894450297548","7028010227051018098854352964925363470969933183477674558070565066064597451870"],["16716399228119476785886201035899258875390321283392237498314361677298379796927","4083058387315457044004262543899638785099002986909318171782162163649218927142"],["6120396011626457905112226403955721628915374990464338126074791917975614301072","24438621699203604106794038325182509540739469855248387679681939551859374102141"],["27442487174085813204442535940146894300822791849523706375111140514528872641204","26418676022631160192191038220309763492490252522077914547952402520236490129350"],["8839172446977795309199612799056108854066155888982016887357188746509964098426","23262788383204345662454472026868236484522997433352521620934626433693712802730"],["23061325192666064983222539719285685236819406715987543821030865040754146828450","19974589858073182394363991344658619673209415967676676343196418134709798902105"],["7102510214382343597336497012397529250344339213094433918120946980541707843702","27318606974272933965711651636022416824104779411951630391259741895925251705379"],["8077234493792288217118011064411399458090758141687342130926770791112369668884","21832728507648947840592998260617543195850717337266592990986155991277081011336"],["25174177342916831943383181363479407168945443080981475509357239530070007600400","13496987574182413442327490806250173868770044974091049255577478933401062867334"],["8228179989385814597980600262613243345548916766189636177067863126300892813782","20443096637162794931671751252777042981247490027360124322684659224527890090546"],["11734669223793633781861030357886972847182815503049835342729358887274796164824","23538116149688491377742057444611586629780810648056658255836162604396946171675"],["12200477495030549729161625556661148681816791993108154883596136326145366508544","1352268290105361597436596077200065813230248780353359641124222272092435760988"],["2389955523505733419395275080753160833746556231392617439775607065119935345619","15756460853128550254772891310165689470816702155138122983037215392905853742892"],["9323734672174612382641621516837460471408115255756236955564597555495238925971","10171201840036970598341797754948381030684464708220357439592652649275730860108"],["11156214244613341924333117618431645982721705190941069288164431178976928176274","11930246050493953116529575429102847669152758972382616095799741618573902437283"],["20363277167375314171947059838278618915728242585069846272184392923249288550074","2937971428047383327574833321204804771647503726087599202467427423295536938921"],["6822825723656016125807892669896304149728888890682616453229541949611179953879","3574520592148574893927169330069931148185067097136311144101910804898657363673"],["24039666455472090967400697757364301985476635674740530596000462206967016401233","1649624834460076807738085493463659465875429272241398257890860002216704118026"],["19260307838624162664608653178848257336281600728513334611641828967580926444983","2259690991227959227348571694175660269828719245198084552779910187855382882508"],["22257519608850580537444890651314951714241289645889721901559224492897713795736","16589634467967435172340210151319217450250464561146401617230557082681654730406"],["1387665112370156366195004287883018423497388368968239480037572744625130287982","4506265652121945258644709469463058905603931724289415838060706868431877061156"],["24751602820603512856191135820889342769565194251737602264637193135952917678638","28136912774325351854596689094657181642148857839304354018194270529427015470001"],["21799359417946906484410618424018036468092984148620985700319709071130486229900","23821398771193062680514276288797702510564629084793825408748930576067522377606"],["11354628346047089413457697038793684833227901180194968449284685140319375757861","20394342142488560573032738595841120989946840998737823293629871939136681081810"],["25821090616490119784120593461375856025765667989447167802280295156060087985814","4179712419331366563347609324203830215407411232351676365702490389856272840068"],["23421928263072872613030058306455437836867906795356975703544189410447641220679","26445552570824061390939600952881917154804404404292748909126863429176303044026"],["28075389174168841993347596775560835924690140166502499447785847043505300356072","12418486632141251299646164959915184291144732486319863077146866985415345054022"],["13900689973155517138746832892797093880557755068127020060592334102635559057490","10526287537194070599645090737890897285227826754790878143347957039811520872357"],["25429666622811354856174168795261216557526351122660575053196855673578062162799","8599930766091422202956562236718426767604081135280306148504429069335972178401"],["19352184127598652763670900478724821009854291471695729068464419042808785641480","19422822572969216657319915298092450697482951127250726793569943488238092440453"],["17974690549308028735599436450292930485221049480420021125977755647347181569122","13120054057009410602452462649471132220227994957938379373122442493127439275197"],["12443766012614824011913838678502440520214752079960422179066536887944835265250","14593237444807967073744191678163029311531206116441260899168832854019229270464"],["23647856788111604101312404028763335617973236250274123867575772839582207339782","23051888337299874596679883832926985540748705450170675418059248068877575886951"],["215008048048847362379457323986331017414675297809791968804371617535709626737","11585338831938932073146658330251492752720233473049034184631306724821569688904"],["15031193679996102277680337309981104843316994325419555011223585268886594644525","5507929085223801016667164683799714015871330835555737901306672567409990655751"],["25179153297495910083935389975057553171529057456431108900376315050746380989826","18888097361300387913702551194763678373841499971386996269441232282174558180454"],["13880501706259689748627348070488496295645139669859854139983808928542209444299","2190449731025429511753004580163063728286193504355285509544231400592378641848"],["15589636371458590355095611479406660946016375712152773418228300142232152962848","16388033662309691186169395246050023385637647313072455899964780642411561874604"],["26129739517581083044641936708496214959210931087516888858286497107045105498941","2535935225200286883081502951592018487755977655889544250121419820128313523966"],["12772687947933956729344546652370973758277250829449225687390854621285919865009","8869259854949687369396882959627686192979050440205949958522000133231101028956"],["6885342104746652446891832676589791291424068644767424182272217026790235764241","2970510224341400774743774865479578590285735787747604802023842309445488046484"],["19954254580111364512531514896417954945631284015537346586640716271525807617165","22842060584250832895378506538563222360018217589136146333067623395626989348797"],["15992216473362612627156877103571110125317912242940860665795165212085762162448","20606531844953407137441997378317827038747147917519529964592498324728852612077"],["20736970050270229240029367978823379274923895743534003441146234960336976424252","3460470352985593671983409870441362171176095533335298879752489541827112365344"],["23669936541056525295712435935384426292157805494376376799518283790704265334766","28042718319460840632826608737144710670891895528066437715730145102498998327832"],["6729760995635747118722701247943682153094449859389881303516932156022305612135","1721687033770267260166470085311293664351170089392941774017599075901313578147"],["18739872808949754129996465063890533387660906505744883705315458252056975286441","25436886758385727047508963758642445560906858066368085218009000746131505480754"],["7439726802311085422119286664672070837122698950959991349330825884665577508321","13515331756751297556447553015273423171328288859752698869483138455019683997957"],["8377572604945084624138533655319198073467261918284786425934406530520146362909","10829872968340599704720567698138814192002427318902034361763521092499716565149"],["25158718610623502855880413077882089899520902106070338214365905042388999621640","23801120543274951105982665782375190966704269717594192093417103042231419119512"],["17249615666477477789674732977446348555561900545476579523755935628180844096916","203953440206128923724351546454219656203576061948731993620451490496737088845"],["21874675668116751694705127018823260175552037079529176012182477558339834241882","3068719081200417362813234910394703088490512608541166571419230084575707952194"],["23389300938838587296220616545234529964261545615830881979512339769204197433223","15860432655589938975752761439413276058869027574715538270654056393394158780393"],["7696407292313507887878498903696627447412203516275394135862405639192527066104","9383777517076671101258676827932817088168705826730103318196139330586214667604"],["4556215385753421196712769401527414856945838754642595003295164412200701119087","22045285792702622569395162398573143506907167381284820352179505650764158373638"],["13127597209724140900411785965464442139323330188300286438089938516096593577921","21171413772148148956540407383881566525879667088197027913914816646342587699885"],["28319437422974906473821826175872945833188201604465852483968891343487411544199","12192997028502188748970062173509893816635483033621415712664050221347543094133"],["8458553375874175247016185212343345042672812892166134383356847001916821113869","2211688632782553003649313013294929008937436237427873967902098968826476861726"],["26713733776703151567162046417841599695274659818161384570508279987374088036391","4681716181715187213093036196415239698642070452973139610163761014197040038064"],["20029643261414995198858224485374431109202511321181526837978311697355556840042","5614058512284811110726878881796568536181964914260677480766087721254754644031"],["19150850444095256263607011273573627138095793157716086955132667542752126801435","22147951751797615552087160609023697913599251535331016895043684284365933717084"],["3437655838128329197290466344882340339461674535822200205447937768225598874139","27223494916768597954450527095386674802075883898340912076107319908602765550"],["22855806945913418109224916232579219682427667091468160728748428765622899651286","21516887406802833324140889271715091027201677438742944693296339931952566006413"],["4665993655701133832647721409447689290578496403607844240739887234489353030612","7902556529321006186664369865542533422837145977752098639401604309422792977140"],["28036236208749964517108595039105294840162143991893119479830448024086533358750","11057667308307265216110145497488941727374716343109524882984530428946782649850"],["13386712321611189253298652992797254955163184429470588745838144081507223264368","28857991492417810496028548233877056096249485892839354489514890615638764120679"],["6608821902609982631519158497713315368444880658916271353113586242682419751419","1850541052951355155782737140591159216006752210097009072955997504508046626215"],["8168803432644309835592955169389239346879549653150153834392823300425474550106","14573195240685527032857181242856022128155147791448572641108586118179922000591"],["9279190597544065462482747609823408663618895309458729853298190681973667230565","15896987525581144823907090084987678782210607061410940491528721625945899162426"],["6728879475861231342170308046497333196260247683879728515542196845080628146732","7199399588402826566212102301334395878841550617194598848221211144737557925462"],["9580498613950916067470564785774272781730605142404067002994391090794110749269","6332745005787065786288220102489308923532465858305297169637003601319487349324"],["397729890750278015633241042422988727755102781715817705471991026151290092098","10954096253034485446641231315375932566717305605464174600044078431379238977092"],["9114673868624223825837739652337731760924750482777503617132949809804418698673","16002116604489969961007598217565072614470438467038838284440636829410673035809"],["6437723360724335887154019871397743464396641978457125283747711995580582340988","16574449095575094281309482081424439427351328420218736701933302197030982145097"],["7467888833702386378572621083467993395138262684327747582190811629796887415519","12165414896011854298714909177265290933336188243802912137877270540647767987927"],["11524972404641829554149990099602342251844928233502704301371617272955315935652","27191156705802523937211616389369285263237821812591166918726912032999367172534"],["13007372612432801838670742711391224999962152870435295389827805479222684626700","15361996432731307334513073118793978734617011159338208266156253529424818140557"],["12913306275982063577416022357413140536563697878047312710694167934847409186228","16126105624086222679237835186145673841367176004245637505403539213647322482703"],["2020777409704181232909727950459599659450380722801664911416156992488004538399","9149574712808297866942683177394799800610271777268644474550925675401557800270"],["22792074876733632070818803644708879129972778552371592040638253711069557855014","3537433980377554985120177170968659576535457605148682839836357979146705350134"],["10289734304139959090972632013359092056384342522030047249257547216005645073384","8639227406825402045216708311779990155567094405092182258197305451699087621027"],["16755556361272735139208866205853860962118702283806328024304161834494281281463","22861330442732632890921897453444261910549943870400906062148417636205213891436"],["10800714787400586860690221663112874799526645419856200225867665446666907277385","1053055831563980901294303565950005678213496613339354237889002409767159069660"],["12344814493998479080262624873466825988795760521540920245847614113632221727331","8454666407677471745240730050839155296763347844935794070362789508950636541553"],["4968297664193178801774816864107080807071541419286360577518415675137484040699","20225450967601452093889820799014186909019765869446072547737313450572360713425"],["25808854925779489060594614489616643002143207478738372674428001194865426235149","10953356608499983370020716065391436333354073549581563179876204488366258581604"],["13847582627871656633203715043533859069977993807113211671272712666479980860835","27778562183466239183473253774006857549179132085620828090655043019643856679374"],["13332863517465119286688573661342104096594451909923594304809833264481367423263","892986638523188318774679678122382031071744465835798012957241164449460803343"],["20466174403536666763458405681553498093694823074479748866675977883721693104256","3544867984750887433438065515160824112759977632125340282493888194331313258553"],["24732080685920669637224573623797861639345230366612140706728075976325646181457","10021459359453073915128453487526153826996016740540001143168250037721518020355"],["8255948448074106528181889243935366413131213576417579099249188650519330213632","28209073118597039373146175692554541431746367097558414797179160509753976167123"],["9686320912782818806285475898323572789229767291096609176252211257615562157828","5294823474498203815696088197504949838903724013396348387194490285731087047699"],["20054150003134377615520140996862752522343424163479069462271245315216658240222","25681318049310820998836598435739367391264128164885605923749178446353384523764"],["26684362460076349244178829902849267132189377248236127380150130040078268752971","13181848590686033542273956712492219307081372014115251845527015578338044795416"],["24243964365948936034854432990739976645901364587088691568516001251575790869100","12387055227260847194116444888749725486793633367421231744135594579164903415424"],["8921758516846746656699584559975314080243418974752525123752888299463604013721","14230895900988216036582437157829186458450476801182301039064805679349166731982"],["11758291589546142217948905836784220313351549393605367179693045521349269852787","3573810961472109892871502869623277011403976149130687587379451674285273226887"],["20172666284053509484583610475714750880114174661079696223315830326572931137166","19199092029576430908581341953568116022271395786351366356710760835469340465121"],["8214366304506701247321518714073345754732923059204941789207887219795350466504","23786843210810359556103220119407764777654453290599797694784279526709357200157"],["17593146596239655360420343080314896118679450244975619463999156864073338627606","5796400101802468408782652549414232885169530391634989593815243149644630294011"],["12855807821312234220474766456839055027263228681730957907978628165768886045945","6908321064364609965900945966446818188191958860827822471716188791384816915047"],["15249061350174962532526580902752934880081498907405411172329407761746293225771","26547531475044691999837337148690887228325747834516187363977535013194665337963"],["27288659629426313976632300942949001642093228896343756973965964473350741119553","11513454864219837946764548158365445038488840379490266466108120408870521850404"],["17523435636304549331040691333723132124737809149866987562809613204456425249488","23438997971414806132475461324029753881352088736707687769602370644953292080564"],["20253954005573787358668865775502873792032278923159673016311395997689179838283","6180677304029706254029964527856304306414275277297608518820759649397930757567"],["27828130847845625304027247315988806016857604153573276997435355274295637781441","27003649585757978021691769561750545108935288353914666861569934153711159759574"],["11592003797128788074256238505407576073058024540001480756818984670801771423660","28473110027215944866165787698254048739686847292746385537866752357425712237786"],["13462628479859916173568141178149376155347611362718387876773405994753870629478","15272515496307549142068487245458376307347447133559560093168006377324587320963"],["10130690521334739218643448844767976510123473537134990706002289859908838941341","27622709969191305952881112072975202146351210899226181992326486981768782321488"],["6202283758203278433237569367459266542851879758977070896435541040172105071488","4075826887356419386485811317282884031512528497076439031155124911072466734132"],["24025744010401099487651142554999696957204872938278389732152675431933380526993","419069071071624268683380526423274485116967019561356865158196497522160768530"],["28665032778360183692585878292746422571582414419872161521643082342302293549987","3606453247403723214172717456962705845179744505932086346395847908678142949313"],["18726241752850881623209115811315826228236789662073770057961579938371532241342","19775391736551758865065470458928277575256705276690404448562659011695456380726"],["8781007618394280150469874281021507693917211177865501399424868952778695040652","24266366065578034609273986617391931278819538060765744135579134134979095796249"],["11759250897815291354246783695444554850038859151513040165368857814291290059895","27501512655891478637325087479708462123791120132167449455252797575356794173514"],["2416876106394858693505627264459084199221639636404526766889788391831862527551","20905852829699418804629251035094489568681602194327549468719539553634938181964"],["9798946794850669841311447132548602063648650424887419684001552467255487677154","1700448413893835176905677664805728135183118056572729558717638008207651961530"],["8665889263685105331869095646229133342644901205504771600849028221147560820934","4260036362746496129412494030639045372606222503929883603148367572777666299816"],["11944436483401755850680761484549050232652578322778330814691649602088903846733","23958505433694479287750105171861658760028876402595020053502608136001307948393"],["822206425333981696117425480775843451419939024225173072699441687235785255339","12926127796986983227164705231719424732452196722144686354759049911467801052900"],["5203564352133211848711789817394738806872306326344984697121423172339175963571","22536128273653572641943874208333150949631644440368780417600986491313774090268"],["28013274950632504272600015843362050562844761757856158784846048912974897323022","21748964207363700728492437132311346541114402387813875047442799881148927635005"],["635629717359553575778882037867796998155549222412766141358737053570635870797","14096564206243688519860968148590610469023964638946907887392082221277243884406"],["28852744879020048920348679208494812837411658697796935744248981081872510488008","9145155143478126889874734277858608293323385252529234011447801876604297661161"],["28263838773595201516149876401565216572718102493207809882358421163741163761318","20938802548300397569300663342170843720590073029403679467583204902097209985438"],["347044158123961027401683196377559154298928027905556712644382007827328069002","4895569993569674220653862282801397278834830356781091284123650742491653528655"],["14778237809716835100846252937952957481095267345122069048415367817576742449353","22351267657799658015212198636525700396164502747684463307852499555620622318721"],["16048322078997020166461446723211650433560611413275216684592847804386491624027","1137630687063543261773021813029709562337631840088125319342466994375460216990"],["3838947463661450269645592050426693995311684385289920288614641593323347684129","4302855891921940053949186169516809058629877972361711395748689685270440971188"],["17280824604958623675778425728273165551925609481398644971095769356719839865195","19838452403880248309396647991528708457129753832379797598004445636890627026548"],["1734034390024301384191670889075336059005831364560653366746569320685745425863","1882931564820480718190471946612142340420992007610360773348194143572609457775"],["3367208555899500640778141107075788992867061831082791003904738476148947899260","4868793531073453400586968444009027524131492467053725266550821057314617215964"],["1201167050426888836159160489281130381288380797815147504011655960781090036565","3900895516639666195777879205302095978083137351199677247813087285443488627054"],["9213387116150939861860568018867606537154974157051990281965067120393407720948","15039713269259830343922976034287222745076354216319998527710246821142970764480"],["17295225085129019109547712569874516871641619790464947840381505043648929765194","6677350038016126978760349714115870440716504724780566456705560808674772250045"],["7331190827034525462275966976387845647068273761077330200335548369558191420756","18532633642920296344284159588339630019977367992823220119444643351706218182448"],["8520315520747623454896179356265264304668506722724527956852400854751788592008","10777824498424890451474617739956256155096704173328440914041561165767735938567"],["21691121322987523776688763622105506500026338854405394930414413375530508349909","20595438834493327744844828693867099330542297316023319533386114277745581928308"],["6190426934728022197424477141203655617335098397987982490797759198282338766037","2746025167170928570784938393309879455427101285781946612617820155434212885704"],["6727890343652680320854366342144397548451346787646492583148540232658916509321","20282637633031403791527362728665907640041103058182835021753785141505537978855"],["16418086051862001808670578804402332026016755313400575409815630635131005740340","18434085163306878844371663635638437226321092723000133563436625287753092541443"],["387827959359437791344398250734116577542863131130199898652563030598717804419","10001607024346907077111954618131750211333320976487819187022152877244733040918"],["6689687590164106603713159000614152799939221948015890360711140183126654360925","26005419119355636501755095575183183184159980464750576355129912770679128542696"],["25211523020348117056009946441934775166173615818852535274366901719192109034222","19791279079812188240301245623234770719647593641709608441336626678024076047115"],["12369206289738282770340570414331915119131041976152075558687372548195247917970","16577486890109896232380793210370423299581700142155251977029327548268162376621"],["24306436002339188262195492836368301186196130407266492258029764157398620302346","23790811669955279111299433708647189701623412988199981125048399181994694317826"],["9374650617290880075306634733968189821024160435233199095569665168592935803773","14631152015599442452100569017980366833796389038837646058279838640465237566897"],["28816774797953734505756770989709507302631753410380783970803387125027248778876","3753222926812635422738147002257745482463318753521036662515550578209119211156"],["25985714658418505904414532174200752589096681667900703869082565259498831732042","3324182876707544467895544736528178948936474980828316892481432050955160952243"],["7775303404711606610974361874057324093666251398391141161948419666114701791857","7494172754391401087205872603332981561815945503220295158124853786356680860831"],["9009669323754581900085089160157934452017096783360919136753524276096874368876","643294500045935348731703419771884686873449898332392716617937394809850518864"],["3134765110299295963301659611417427088591107371949926799280907137066186583837","4736094646738517339636009244960771681023749467418310733475858523424196060584"],["9186954904464446971718314581612476311677711168346607271721978522248745395789","12776684020472506986412292644940180438642448839476694453816117508013434757037"],["10717684924449541767461147914533382723959746545747972426887521199100923392815","9184029787681973202202063414002413140429276114381310274464810183090838796444"],["4833473725683469747935190954933307639417397837681553098238965203967760775582","13873137459592051761695399257303364558225767498972957244267484470045911632413"],["26494568344448306929241570085857843238867867326962037000418194471628685792600","1004389487850429853081051282852333154493898486260512931256048097005980825966"],["8924521610325352303336147820839899933002519173068350334131529535853354125264","25902260459989366196752977746632912929907550425608363576076736797378062092108"],["20864431022626794487933474182480423989356463754855584092231795241185942021034","26508756078017738736407457311175619663819909981556551385901619406134804515506"],["26463196709489794440124910248805876571081806253610525042383904445346934118223","4235202917286176436324342916331977477795159997996273130391284471603435551628"],["16630766269323449646240393387327075514859459811622577283548198449086353845381","26739830887739230313635449265152618106841182409035202391846499564934144878669"],["9341025925625766649883906291800401977875181866535215264497124242248706243470","12598520266225786880287512286875499941449886764220331618434613256700600781946"],["278376051010515270107399688097683566363387475996578774780680819991814227054","23118315468644981151120099920868687344603864184897562860468892251495143013385"],["13204358859248809357713469514335228960841612236129823617574645476944048607363","11109787362522773086649444344514630945776230315281761537119598936832809647675"],["22223918154186628594335510013083085015593491381677992389798284577492447350045","5296348139704614777021928897854435654309690548522660177874581645513047532721"],["9431208319009864068799372124898530755464569229576119117802940320405773560070","27379605072776206068568221175078812336407281107039451395890724133000527556669"],["12899834627299135855933917184990656022320394731091827303276927718794408828783","23200235440213784406828464454217739196415878102095943119793333120526961899933"],["27732586535041725074143859105769216724315487349065552911040029682072505983903","9182673220581385945005164297131466998139486019973008528951100806357535343623"],["3762997624832003695802108319618242912351378152797514822562579026777720075440","26680707611512352815965303180135824377432439518498552514505947279333968598848"],["75317894414649875271543747225624229582468816153831174081631084182072933307","5817768443526052306504895263478160292929142903995480463809943050020955874390"],["2203754366020519596427817874334870424272282513123860393795429391101446093476","24018869211663498707219631940210574080505534703722757752006587705874244368664"],["1906853230342596585089669840726262449846411497197943076684679082471902992342","10779511295786266092184784793684513641502046257128537374748042766971523805895"],["4374538155693900325065302178662672613883968236072530238884491808606684038166","13172406128300310027390145939012815487768681333629716011533674912650175983138"],["161631348818338982983398919893752319666458213529451972914927117706581248381","25790222232975978186416242986358725236916509658549511649807727753165755208017"],["9802490816418547498139136448628423507276986878599721148260113414698958711545","17086865298369143894358244735122273262521278964832543406626513210301963773807"],["13391226067601060064453776795726559466117285404331411179192910689047988276538","2867444151312326799468502585987281699917645199225687331910969594373446774944"],["19981178617166931306474774785682350547142477216882012492671334970190378983188","27596837433863423345951640044821776204309374584445955467610663197903723364616"],["18447990574270987479633334134307446815779068473410443934115209193945685338057","12056533420112923794707974663225190422155140120866533718204118006942450820177"],["7710425509750236521719181819915696375539731223902647778634822287949621881326","22489891676549988891562908259336031019882164676687782929191938345728542470303"],["1081343777677701755279271299467847507130262235949110085679715711672520067906","7876997951792092721734803439069380613693035588495094752800526445260479235609"],["13416671806056328968009080788201478932411561320185881752503589375122550376423","6374009295404602107303751122353539187000408209815832418745704606284263213920"],["10159275782737120575272737310450556123169050706058693875956643720766548508350","9876499281279783106901216265601588190274099567680983054260694650095461783213"],["15414456495826063102459244789343100021520578707504548851079443868090282237887","19249008288269798672948453840503959446358976066325630174350486147105676145123"],["14569103578343170206517582759171458532533631746387515681547349487458151193798","18677268240711995200646877645421165454358987392399017030872782633612260949867"],["14127797325705148100551241326375807919655554816366477181839084505198267451467","28285702330244820656767471308694904996509446635597708118331170842052909348889"],["1241212395088241207846436637484568026554307574557399614620624849155288110877","16505719029815707798901741796360143555215214626338128917446044840104297763678"],["8580812805607122555904715527797126593661936900482243656001989372633233074134","26374292533828247914658567070002461293728182823781921393709462938529950324625"],["26763752116819026039053501514221841142584855964711577328181515190553329209650","24259823739127591718329447105716805555145099146285667749203098284626662770994"],["23345983961568521478009061185335325508800485532051122913694837716368399763425","12911205794062704665299512863844902212104671468842387205761967887253336105034"],["15314288293514880908108771447658180197701835308955195861904312370233561888374","130773521605879125854806564196565251471215926791461535576148700284368643248"],["23336283325386069065450496999966968829065686043871803532012695236112680162156","4388563916702812071951837209402787103226666160756482070657860288282444438245"],["18135739518462554893417183702408250252340710380301253365284951837621069379279","11516096901261190583447534096998439239243606325720498876424831845838100952500"],["14688446105594570843787887500327799673318925013154358476543549302901089100872","6903674746324766305812765831908479231273863483134036321023690151778926395038"],["1749990766192983479173132996591219875421228117115902047861270348075426226096","4328006842062621266896963933679128824578565795830350213215284501056776192715"],["21180603451662267976423494173004992537649451409064202256092305562175670977237","1907546524618460816279328903407627238994674320163691582433622914948641050789"],["2620637415337317263117095168733218519545994361812837114473133415433651770419","5829987698298699696331351326227329082908658619293548561549711755976320181021"],["21098821487054071263816610032422822561241090132938313469159327840378791524971","13992509224021552164043330453515610795699122559528501021232027214852512459645"],["10296919312745861956012177517827133795685069462355941876507348136898095241791","13331390914974924368119777556613371887728515648280444430415761730501251171901"],["9096272139588336892994328239220941853786260977132335244650533218308524978288","1856151325576558077584524455841334778652623225472019956623974690536950426931"],["12107195226178310139571757932912022124813581609469000479557037953493386586132","2077839027495824874297290895315073061492581020381790381391261765885786094283"],["8211031927262179937393791437858221087026157090795067740707266079824719681470","27162032446961649056026170223650517331148680062000940917162553922072443766813"],["23628791647027998940421389174853891527679659397558992691206199380415085355577","14223749742652567719396474892982552194164567383760201447308868547294600933528"],["3767267950551580639940411624935369501019908485875372642479650466818323708841","24446554551673377677245179400258053947390607041900090645738233911699890077294"],["4131692145975776738310274340735300447140424099364542471235187711595264103716","13655086406769863024734610195282903614613967371407730291051448911987217101681"],["14401773065257892150575579408199686748734787254736694971329950954329187619231","20017810487402849676005624552169970139333463177190957650022991886949036094058"],["3465852917276142978346854680679462236760734531906865029165169738336251196157","990391115041170120184088894533310833949702290550470478472280721775375351929"],["17408832412699064086654355719455289375862830368389791777859388998285157850095","7074429453257617534555166696519817373958304168860314440102496344238622191295"],["11924257417781604136860490366533878284618880700288079728824262989463383443811","15458534898609374703323665371603332572190602375300148370889199819244050211604"],["17588918085119728248348525588005741253807803306689259369600086512175368356337","15699967834473538364723003176154377992342290704280987173357269368083041314725"],["18439272109459117505641212778440117826575131974051167964909470332506165908436","20222434284958060147494094934155565888095899917817534825534181325271369857789"],["1110916505479444488297579281515738552723887803478667655629542855238992448083","3140176258225377080472500911065689626169260147995687085060435488243896683509"],["21534667827962587021301961876276330441940465803486850525604381618519159024279","5266895226026619882161109997348865246037331678718412578418280752962930333708"],["24039621736014192732434190892518062690355767013148771047915911522797387148384","27888352532470195813427707541958483690835922709612868425000866842767033435240"],["22969000168567548648318054826461309857043899961893695738845496055075667317891","11114777677245246918359222482025829472199092811316754612093091550714666372907"],["6545909482117554521675078544987394169976218068068679198874722710670100970585","12690399153715652893549938982602680079350641693469049664754614423336107208165"],["24431666317076937626311169905964178387448751624658655733038228719757572155334","5168813372930100964013968512963956168418118095863806024668120594131512564471"],["26679862130760209268857176258760250924302043715114357942236378003096341601093","4687512181974614209716031733143061844500207564710187129168032434889472706139"],["3488763775932440208339576571060205056347816606824516972687434453533465643257","26149378373835214342984596386765553820792402520928196454330822650147702545776"],["27210356170718464506127462669932278767821813640350905094897982007361617231569","11075311203665578885885684447814052485738292379755565703501912144475389672060"],["25474211211426151941296267227126720449385577964654083987797480257678916040575","6880759677742651696037895608234235941391344234410172293260653961727284087569"],["16862766484274523668757466518423624935400558628443532766818932530504404193441","8912717469457372078694771456559991556401536115495124167849070020972547949044"],["11137274440205022095458003824273099397635031036797496265340204074454807858261","24418588212309400446766361456850060545188673320024954506558404441271689068245"],["8773324606997937970116685763305852165041364065544140981102104121990036659664","15060228495463761099926370153815186654388360225812427361475407027571543227038"],["4962310900224208020523345718028136296094757111279648619601263779773680505125","4513077259134512889006088394923866164999108817007757944745548944113894042560"],["2394818395809215267369278049056499426410838140984490456998043770620305471191","15873444570164409672933404598567403743716313262751476172818286198975338375657"],["26047481531389728290062209667392596306573075791710941761738646237459295961951","28130177635413274864453896456287374921953461243054782955729791020450092569447"],["25602031768710205294187808170277890409664024737700098737374714747068688132882","11692791640262763815278676234445541422597484085275040290682862044280413965693"],["4897747485628383429996647174631333268543872247012305365968528969648862143336","23504368005632161493679598491230083251548022064812430519945155732217656110618"],["11013890042450497420510793200903587238824212262865086572878516107911894044346","9521026177636520834150754755131399894423333668687720277291724546644375015978"],["14875952873877296529754485570715170126960311283036376182717123349675267629109","17403672282044247233830512910735568047356893748075534471542787709684925630875"],["5044734226867636528605382535372889339917991775512863648537724886344479671725","25779928504297055240831566148555766781735137660909587671962401201051035644205"],["8527416262213468808741920886929022363623687763597341713376276284607085664416","12736744825177403100183573406108148796073942782916147401994581031300555697588"],["1861169341847526254650857608455220675361815528396516628131754021634647870641","18551258463149700266942160722911460399767725645316330032019691664889553100176"],["13833451244956186620003966685373655980116720715798932936481853678513089715141","27259118952794586674834845161942577551220998329919500240270381484004904889902"],["21797922006535487597760394769756622874320609117490900240107911831934523492715","6757639631583274308706351093574234555218879252371863411487924095221715180606"],["14665643499698824542960081603032862932513648150662143404952664010406748765459","17081570953382027245258014844995898997658811759477300485252348823369622140535"],["1224003730220185784970401526565392052163101941045563697750515353452966437823","14186006239987713753226914931438744264711336958798348704783762671898465781764"],["4085927473425962013233978262942743938072785966280800022163179144527893974995","4700089864678413406971488260826779400229846042873673350792304446897797166828"],["9746942801899586900944657867223018951491145256308037260526415445504085915977","10500867162522963450003740831829819795449292089475671849875439284931522033968"],["13910442043279589154570248380477062301358158542132298980489963618524857785738","17096395680617748298786202963771363880976100643978831181982060766495080846177"],["11729395169897443721696370428624866679509588827711261965201631136190525053726","27994494152084718931623620481323796570014651718752898870663773019047986756925"],["22118146672337571067164276170602242172704395494762908413629967238040664930084","16660740092400401191442374378575432967588221401149499512800295309169925867907"],["15620784076915844968579646121143438469673728640759498578567367867855529076434","27455367144780348749874001030851701361580589639311050462986114536743368453831"],["13759414113322193065475034510155348583858554321361648093839423310035532835625","11089603227958083804654788222890948034397859103118139277461133711390793870473"],["16700763784672059379485811157214414156545663572839436791384202088089227547113","3695677097627039680614437558699088161346603721464795905561420743763873250190"],["11903716121917980902058251853040761703146744220894337750817388784266602184366","17902715417115799729534067845418031581542539301411681805861375444154426295356"],["12136228064416412851022561586111543362307585105007910002109855616146585762544","17917231040361243267268951381950693274472076423214163952269917923009734755778"],["20868486231058478540740375348226392181989588525573928423169595116142352134041","6379807133485598512852806100586746373965500970883777744437852093322916325156"],["3886153843227549343408316876726520549509142360558776736581718929231156326120","1823546354489164847756412720702293101582479994850450091170239413105826928214"],["15410776730108432586352703879275528739795444542417189781629700830581515990132","16426188871794714867862749459959625951399602592630039299849583520136807121859"],["12868457251417166177918320651712244746401414654010307859799591455641319749499","20058819734035600548425347515680970035734690279677851044318635599760782760672"],["8618836894688274258310598258124444649205368609688798237348382249752653657282","16361764207785546212395933668270571773575330626756125317456061977813449310460"],["16980534935926596837376732619696312508608078192098748054879908911191833869904","16596764766845909488881298128132395109221703320668165059835660246565321753709"],["13307781790124019656281833522322140952421676075728840864106691559298452140424","18269591693635413992680946739633952502387755652214327486357008394400741725389"],["19855960478145340380919533670528602096857133297806253942633551312759871503077","21004970403889243868566032175125236406261931321248649145269627275389710986782"],["21665964283704035723076491905627809385317673373218582231622865047755285858727","22697343497410292996979883483409434227359182504619812390739182725671956181828"],["4275867275316304248566011114828466191662039700319888244570808697096902634781","13120469445348123585334005838769209041992255481464489041349621436519807127988"],["9359404591208445559653931371699314444144816237496242872802496977748907387748","28869201498935663399472271670550189882579564806274823821710016619573350449053"],["15819696888689259541661557764048230191335144405930666549589339390434719879674","15675706838210710201143956174173974166150773424769436737637905630965461730155"],["6063147872251567306437825659945905982177931181790526770683274813741179456320","17500671343453564393225162222071298229016582269741871596813223724655658718077"],["16962980674410756022225688176192030339582451464353564712510980020395369552841","22128437879609532965301855442947687745647497152132871138025279436015885701413"],["106752195915415069894965955030133774456397919804933109177425345161285531710","15730232943968159976777188379259665037906442480387521543330492303424886182958"],["13823758019769518817941283878399158985320096063022452479881614794396576534982","17989734223405266588408709469982121105702073225073092896024281301060372613862"],["11775987576515968897186052651747471368543191399759198271948089965486759757322","7068809844727606067440778220112604386984120171783634789083417578821490042950"],["10740663810074163530210694212171311679255538911051361992537173455221944025208","17174110433973131172141476899241653941967802555258186402755644134419059232486"],["8702281800918352056390360250587995028419163869600350878700563109998528497977","4641495195781337312984546373136285787879432982957542490737578141773975371082"],["18563669648050164916139941450409309357487117869977679770112476954497979901752","12186150100340730439240813850703911580711536249296086062718476582051434824525"],["26869243259800343678538669446794708378765187954593046177744273474189548620436","10620107777598372569392884199882275233104093750378787490214118322414855050421"],["6231782241338749152525909844493153667539293545508335672363609790270905360394","2673538787440923493503243568045312035618279425883286230608076509892555900811"],["23132506113702281669529832713538008696973020995356064396452093016278961550587","827027245870911777509316849558755722268175589281388525441910108623939650724"],["1465883274135356831254697243657041776041188004205206396553285875029772628261","15143847299199135995912594437358294013825527572510088809532683140333120294297"],["515815272098808868313289723037930834184311544525509206038006443904048707221","8754202003478169377427155918680393453947056606878428127545807942674664377226"],["15072576411306373555217497744104871201654440565381193952106827692266618265284","22420032370336250604174239290848187039593244112485659862774520422880835192479"],["9590271394107116146209592925753243378479519269681701158142724614032839680066","15771248695156522183001517074489437429511662714371834875237147433836951414623"],["14651486460087808826853817463151464679638094756650587721657744415282566018224","9248914298384236034985747626895665355387861648155604249059323512370624213914"],["8037740320172419674714535091295964390033998881397440395300488387483578798282","24766804264253754582903497912173674012509023039508220594794844461315245533617"],["17564399979369725844977015946558993738853804961858816598404422789626315441574","7456547558451978890015614179347959270914726811492297094604667420528527866739"],["15556632210504184257542122668940629115297055365430657591209521735825065958019","7812891025983543174006330121753528241215997924771096964556589264743149482035"],["20720572506787618778826332761448330898530625892967033413271028880531243258782","2186503335080893658769205243290860015369344974509700302136444659949351485572"],["7646738814580389111244906379841486703920826700361399298677460960561603794115","10394171938866177059618851060230090156499667828046907599456735997724616937348"],["15174869292057427362026012707204695071105261825133492885766380504079766487049","7067567987761164681260716498579998512130108304799533980529108020915313960900"],["4563870119537439217415840290426136278658049600378441376367289492325442414400","17852271568287108357341909803940078985692607563441342441862701856086896432533"],["6622011699122754157511921561691381460059991488442775640339117365637056674224","7038322183905566279167695426075524762279336655421618725451804096662650089579"],["13409418240922222677321106086447397776285021256265367262381565769625881156179","450825861170845767942222675987010761278525883901510352569704886718066236961"],["12335335219650495026773576450881309888836922322022898054837369376104256137748","17527011750250170754458315402487345700715733014795033904005488770430337584795"],["5303388865031054668410908741758974668466912982802208541098854198760279077022","6911663063885333975842117139860949285566332897302402940337196418973522657434"],["19206699966988342275320855803815580399067656614651784111190646059613563707293","25977628510908633657936131356786321691770276310275090850362936188294692545601"],["13823806014440264172154052156865570650533361218902058846405833146805632158631","23515971267327309441459847022058186014007290564647623592393589652238088706117"],["22218648704000954027919842160201801381884529586467198334713417096948691238216","7696608786521212818965332670643755034847995364675414492709572103210881657488"],["22859421027144094812757987265127547435212094135925936635225223990303020505962","162526994659287691994982168852280193555254399173662582620015948710232480555"],["27041670923005133464104305601696187064242626280020269221106725459364237196064","17645984388715071005167357258431278256985035797751491735186479136757879828895"],["16735420251851513115518887445157334958899063001043532391789141792337818327017","12569363255289842675941904393832104528295990095374734238781715226406149271457"],["11141580603291426930926299165698637334524913487250415344166666326995466233861","5789427775797486528721133364954425667274174458398223907849689646701604853587"],["15267352819216381962209446975534904825753093144602829949054853103175352744881","13670063355918009229163699380954084073518257237313532725083436564739270220627"],["17402232990176742281496934971114892532847603275972426122817391075268390032219","28709467612538954512375930813478082358277166744740222013907755112760828941326"],["1250199946608582342171675692500447489914515972484931228081716956803612046876","8939774336989762922166891881346191178741196470128310174896218853363349630473"],["16249754382083546470038956574405910813299024487794139075212581083572800602169","26683670054619330347703886834198613898253839447964659883647250686858846139063"],["21613731244236941367998441290017520098630680209252781146550339687675107803822","21645331116251791103327842449398582091737663771295376947192093144499270882950"],["9586737092566860625928991303929618847423198343493164769471102971338565031161","16877450969442054786467943580435812162933376131212229369330298942156519094750"],["12377707174950866974486594032859563751569376408271098246279890739286291331841","14045090657899471501847792639668929456188791551301085967015404002797715439917"],["9297382467474244220455290237073598519836684817310577206774556772028858096400","20283784602924038065276576958982928333415977494747709113438472893452163039753"],["27465564179520378415198500198922611582777632288604378025986150749263402101471","20864562931083634667430736642189951237354181702453762185129993843310997454393"],["14430830730639889827300447370246833214707353731016597617332209982670724628379","20995116280772820267803163776952185886943694668820737867296930374338435394097"],["19215807494228410140616742493644616299074889457191532941930091337636163116610","15561111359603014161719347714735357128603000991476838592323572104482815757723"],["5538793839989685840186912905510434296830195079210280446803769719714476370051","14864894482924912771512792370736398199792497856131399226085881466421199964270"],["21342826487532747488139758734885088367953525462843966509990019011307795314258","1224463927784338288755260667742907236405920612284951377838257054581362710933"],["15271193706275012431924313621424029302018944031596627065213068935837804128877","22339738298132158260373285552969580955987917207572390940314537086671737276385"],["28446691334601463604645529256560653632436731418905840066718428334794458595546","14309821933686599329816241978500356851784619820734856691889260774684128521306"],["20647701952446476202964077555795488392505008365675867244482130150885206265050","18549893310547054843278941470628200127442683323988261879393977446922978038436"],["13232592092870575280577593174353029971480852688955739556557749985610744527141","13801824992336216052248341006656588981682376776554858449496022174561325601174"],["18625327825116243227972836540387770374329320671978817016292926758023056571979","1396789428368488861020005458439373842915580025085671671614382121074822869386"],["24594148397231349231612787040230030616278034407166025876006075564799571674031","21283777051653108237905713388139753992335858528439698886267247061187756762727"],["9637940992752273848568409810795041632805185202382678379733710016873996617045","24665105682267116087011582582187611598136411678591309172821962659596379740930"],["27449870229869831177220205245787381633777549099306744782153908978156323663165","26352223347648881986966788561886790535289174948637004184590815100393644026696"],["24153523294735788010675959366881859218393344767473745695169639664564856890367","9118951762552075821523978616001601112479642704283503132028764445493615995192"],["8883235925156333176526478421722320337392581878431116264297369939118059450101","14308832406945870157586169935115803789507423385712708075004972834077835539853"],["570174836836215700136213511059271456799581883662991858851434564391890298271","9065753554488019080394160341569387464972623029963617138404512206529632785487"],["24035576753895399586480149806725030144296969971994223726879969612555212602106","14451354516791265048721667159541146154765894465415280514108590291940133644438"],["26885663840513691998411250545846472396904565765219214137716396019857844765318","26861839439441947124250113716413799756823697348382487392834584237177144240001"],["4620659082110872360663923491231330304265832931907527580424597685340841688748","1381567270143048978812100169457085011869436660874549972771630750887833956359"],["24015300697955723951699785005371604411973683246479375477740350675917428727225","10462651499496865901011021314937573367265767353815322722164964899428484126294"],["758665431935058947107403369977980025911503174531264066794216034069584014401","4680400062435289941802036942321618068581554757614193006529882187275176212581"],["19949936738268860062098499127532616577961915826621194695824090002721378052802","17322579323417980664920519725223981503420181581882076597204783011088050913313"],["1532993666372977932005399975567032828556079885058794876003355780085987736917","12148827563785706835892149434351684950049337666750815199202316063781049746523"],["5140831276123050075979333567094713952882835868587258417345865683162837431147","27161752037779525149791750845160684160867490939826092407200419982876963549704"],["17375731130702655822368053918547489119496003452557545696861192999824111707079","28124373072347167376308248370926853078823584543271454646070022963719231239239"],["6366912396435149901105581272771829969977054929750448484739270203686253841439","17703054831803519123958224427364112738023660445255335837045290388528629169446"],["16177221349939541958168942130579956742215703131335796440285709721847486060075","24667990740021780656909299238667823084058597081724453435255434917964530064833"],["8171777212067755318109522171019385597665186864154186938635856258862011841875","3069683963164631622419440586233155575975209403965757518346652127188380856005"],["17176625642054682609635333572167183675468326175537549997052929797687684488697","15972078555926114227089816090415711513513640348798033405996305518826745235741"],["14354919943621667377931161076323651299606803986970003357085671166383756791647","2215459992846593568455436537408584348634963721291850881878444186259603160254"],["23655971000801575095867543569448323992458701643784030263154553970425446125954","23927493837437223718966876386367407767504543919420656130968052956526854912604"],["1317122103329289144914329403394731140529841219833083877713659758188862120205","10969229077952434352121686090412093122150138673811377472136349596285043635590"],["25526429835274404464413814678701423398772171134071730600256986263304788917685","4383584304630397246700281834133000254352627203547805237460914708391400587239"],["28476856493667284774157823219375246105740223704757453049922472927259474454225","3088081228167661654743989020627254885370066181460471275038856665782809461657"],["12556852978806105582213965973865397594397317517681017614128933756172990760616","27770687911194598387532629095289759938426767859647454596684276439328825540295"],["8101250128042568405027089344049026785226419165865112929638068981370383402523","20362451561643890075362469645312794530759345308891719781773052494315769943405"],["14080056375137595157793890298332793233813961437795034698625755091811004219852","13223457863486544838155588069329926517675786038221348387834670641679424558810"],["18837444466558248348076426395650269423987986741941116072111400596455816061714","27285451317477819769469090920362268806880963870155435992868329601285609002571"],["23514896139011090119291931683204482453227507249225189960555955027228083487829","1096138076561419066964534103575624214300296318494083841120473927881901844311"],["12616349277550459396971531297593170254693642880765804106664572997976262361056","26318538463896821274115134718460983887386239699783256816813299489201280784575"],["16923833275466108481335562441493951879463449338335563889844201264542909424458","12005289187452780494261999507651440218702508480229534563326145139925330252125"],["2694609927551579571653438458571132381156826843903900386121489234271076708331","2575647157232324775344206175021202252987763506077415192729604151223814045045"],["9262857347700571762082961205909426144318802152847436235616479851600080240550","3862817242930825930748261943318861336802780092892597010580012212722260897727"],["5523621863022742544185239557862862225467390914789706059803729640982843220634","1585387389688611945071152152215575525555922963270007918982111723180949391068"],["22098393878256872307729417683785491576634152671887706276760858924365425219458","1767184636040380911274950142164585250808513129323438160421676785902769747046"],["6249747177690635066642411363740365558592206752838207399381501166772964664906","27389159557211762898807816237691994061052979422912462586783933243298978952693"],["12749686323164638721911389580039836257343142106886150620142731973301450828257","11794449154461504429512777183373090208153161917893696948501470025805370796404"],["22708252378985003089084009209816949565151204911234121600400382686726443023284","23141927838276543203218525862579311336260682546714489829109361231481043939683"],["27013685206106056245137262285722145140875936840829204520060885805436923362187","9679483919083238044062020734215792338354227383440140322105879136734487741866"],["5969816938786141162151340168392811337635587290284697106458016092961334491259","1163359629650811972187458836988417444508314430984279906273738122165481396282"],["12848320926870132189223374387082680372603007635918086247670205446171373186531","27194592397506301082726101736673181631773819099565518827825571787976996154563"],["24455469845856763674274922455235753221557480473324885158792134494589027239580","16570661884053243827091758532678673473750925904233888834683489315757371347853"],["28797311695938767280750626999779888678582172361969693870079996002988965283556","24092618938611462101634964226144479144290363129336888975987373538199457604131"],["24556718109848274634873859062530136181979508923088631224335167951411128311933","22117600746901490861708326097427386607845988415338977832486448677636439666696"],["22943337668903774690293748912079560338287148763190894119046289111720506991052","26311678702681775227020643897730867892757788662078978818168200971378731287033"],["19230599710706395251371850373251468309333800321072784516362612186631057030537","27494026791462925184313501567823067504626294232417234687531379015938421680397"],["4908957449451480174310409984359004953337959865211407678664876903904931722189","20436599633792756818843676240420037217735807633046470074776579269776539184850"],["22074436415244032352601692031373573478028312565333558329528039339211082992483","28532147296159022825402283509068680457221302858799680642742637453647423616649"],["7320652010937306672101544069084020349115488039165319959378245942284667545662","16778571040837229611079471170908406141253748258666127681304444024314879320995"],["5775040308261336120229368589308699906281795684192919770307836625285456620207","1142122305917558105105974919060032583319509609519727647874421986450896043048"],["7863242752274844662306067971165553039424517422239538029815963391136436157255","12840278568290794478101148016579263015137866774026767660525526199505707908748"],["11863486949108712823705670504799605793034683780112458727549945216314121405462","7708637944371591797891111918081570330173447143459530722436013084623798672792"],["15387079568724257751938028551891794781813860613316257989832343981965031919340","18190587724077540246801146324232374373019144544034536956675773548696540374484"],["23014129004939720342202264946786203699149453475898934889714510122114172589651","4120659354853765436802856320715236248731016196729797005075282941703956686802"],["27529166692848897594907751013224192007671979130977793815244137509547810435688","22372343079620132530200858494572621824449710021385815136064703966763010028564"],["25761100093329760600530554977331621080372211807407328459458697955338422375156","27626434550931259741092613993270437011165921699719742650669978842311402044554"],["3188396994780588864200899829805777437824244173546483776980756892717830555183","15206941220499432566072562181236678233134533952086526090179181369811668242660"],["10470995881858829315470848500860875071476240249115866330235771301328562045715","10294782096043181709552275055548653112514230032865837064688064605223455257566"],["8455169097548042187066114617443044251692370539303685158467935774095312124838","21540287850385696074412648534011253104313859512296448696802225498416677881375"],["21675728817259709882954701762525605389043883220682477566254889906781019185278","23034778288015871262426922276309615007570386107379672196688161121232793154142"],["20348156025602555034709315491901847657991360756018340471581116347437921870173","11074165625926387168480419025047407393194089627195088005576670842954444724514"],["569223401982692376162627258708937373462435307901526260994331629181406746034","6127843832672987539160229246315163346414140629720133434856232681926287273884"],["14447157759633987211244270075023845980580388279320506843090835172183649676889","14111526665967758377009651351964686897171474336036620939431879509753840932966"],["1694153191855687592487464291057784133986837555444281479267911810123552007093","16167454648379879090619736173255436088936267124454428662431475971551564853697"],["19913095033155072259861610283702947428244823419284600656533296720093492323781","26215536797598109632552717844663960332099029390179811556693897183411831503189"],["17844230459654555458660443722347311188265546482568722585150306275786946999627","20630519690815469690287194704841628324573648454233863752042309611141156764604"],["25907551995002682054373526080353844650863632206531357266954205297251153721199","82142250630476123179711602754882021246011361260822010368423095054523982977"],["25338489909926767908537815548402096797104834253571061411892785504960218208415","25271364937580730477846181590766864996715206724729915105987196044137055276606"],["2164141481965140439653058806575260146020441679159742373839382674457108997591","19834266497535233244334795220518356419073500239190652260540155821716884314619"],["19924601625985995609345592979590577746900879767056057711766695348549582110383","1704478945331509206324520543560597449995554949515248724504076689033500915749"],["10684812262170548901759089232078764994106347946133274073366432524434740667362","26501240658099481664623947474582941061935558899894077436320439748267807196304"],["12746583073963971712184460488143160693834024980773031612178613091010933200240","10233994430400323431489113837979889600416645261920953699015079653623401787301"],["27914821803898938173648267551795452245636465995563242986891827620400488984530","19670271019265317266791617656461263086198087728303866835425539077974186960972"],["11944856398127293151213909644881049162243665244214672260745272961957340421601","11344154439923525025677593230173958096226420204048233317058982323174563530795"],["24967932000088670604061613621442401556708950985482682988693872714295440104816","11883927807263410673758192471324308095483871510856969602814675220776021193962"],["20885104010682825374323241581046722570634948736213540248595541936726906380688","14813519587705080523492618912978067678001385957477013446332470374576382119109"],["12213750520819553661813391134971831787521497277169064533467252829722361723642","19477025188951881546505880617638895509335272844240228192502215223455708118040"],["17114928757823518392304208995040636455523789341196237123326111076408144646587","10580232364691818664156453736936028665714840795565300576451062508925015046860"],["25508926512655906185349546614287216516078964628617635798826860109890003453032","21041248691989342550664612704466518189970872449869049509164652314842714394086"],["25067883126816871278776590994078637258074101975017174516227888335142661992199","17172236300324114242022050209806302768267679765730012228017835080690400461359"],["19874544680392021827989513906537794281908401430513149131689934369788894126472","15571921260194895455171583116633873559494515406936117416933318830718867408051"],["11944828641936242005444649768476676316666045767071450986834280741612483546202","10759143401424855917313670967768721484281850043934956044977297147702140010864"],["22063368179976392704803170951196017226163990997054902288751551334842109177640","27326747537307737546403398798111701696757975820980680686529059155254474456375"],["12854034580125535891139284985871151597704966643743853954068912917951503788201","16341045395113055636828250925893926637481967388960647480251545341483094967618"],["4488562499085411644145632783792938444216508623144807642113877723826442159180","27095589485791786531587398044139458949078027460145118219810617706270273672902"],["15205723207765399335837262507937758079503756185504882354656289721000806558341","7858283955889511865105545787417170222686114142574462052145049746361075652159"],["12515868689652970886012138760768747322146141616168676403586003532347535790476","6415891143270703978368313190305174804746741234525809230682613425628622906843"],["19527453847291985835562213159755006265032963886919191427551902700519170973736","25702012730557967268916694120614169173448419820093250056741561536446780868235"],["23688619621537621612732727403434454510692938759196525145697906598643762371196","14997743931386827918081907116604110561020523830733343901854541796578103256482"],["22545252852440132987897115155856639590909225111571910379952877565543385823102","25285843701081664308682726567359538245400223410454750966817985105530170411478"],["14007099524653183322283862431779174069288761190049180962005714045567830368924","12252381053084596090273342596433055673746558357997865426306825531113047921639"],["19242639845349203793048278043077603397225564322005569816746820363487743080283","3922367932456819588261759058682189594074463419379025108061077831001711085292"],["19959993559944141035153430442671448366414271267565095473297888897474309758257","6836197494205794378589709869417619728679688439265582614735103860976730554845"],["14655179368680999889915005660847805545127546303094461399952763090562400678882","2446495011843378984664891623428044100528791522009043356880110357434301080841"],["6398936742100482629139263684001478647775695019676839748762979662230286245352","28456968752963388186250046781399969293493005953504702833330287119497950667748"],["6605493707157909347520654807008165292126919673535852167627928903090442106730","8475560397306253425704767153990487359615004514875513882016099181072961279644"],["8202475498219114569897153364220659819831172910603563327946567080038482293491","22716137403714062958944157922956057622186281171721197437383410632488125951491"],["9805578783885950802932078321378370255536227215090263569705139658754584652807","17627599076479112576182410300002258398232254557075229425680883459585300431609"],["15702137901002362371119374262992018751112519752049976299780229972850423694517","8971893429683822187006603939938080878002924038541204709814995570933208956767"],["2947622944152300062240001390804319765313177822012342286055742366888609496659","13270973325373075539711283638480249537934931522326635305887125029562520191908"],["19755488212487539584212483537095932814695494384991463175353114136390002777950","21081955375721245744547018362329539013520285906216094983295098825393996422030"],["13420223743459505478728150010146008317711917925393014747167564098018217406132","16299526410020943468537165731306332707929456187617093563202930572157498107092"],["7017386950307360989145873831520970394838593722828241510682168120519045520663","11944528381111687728023724658135193735979756635144456032543193771731651124708"],["16773178221839233030041814140809971856630786934247074545962914962866292822348","9741856654783986662819717341947480906114501006041796561189498288570026561761"],["25377809020675188670872816605617147871360320945051987697712036415502363530864","10985153274810427097711413708042872663293561626890803425394471548534442924249"],["2743242695066541849674169501319742082957726502263819295722537378394662025342","2627253814906777779630236046187153226091511208910483988170873849590232529992"],["19277194556575679684259018118389499412888775910374863994823703483892115616342","11471800109582010657595024077046190399776602899523273826079490884114243689723"],["2287987838274383495736109752307935583727104123296486205333218702488360484534","16076131924538610356647730741457173753675627789512330376143831208147702877084"],["21463106000168000385883591610988256439258922737190627978488116330323088827615","25674847475736043197282577316838295609257112486118889584964290818772681734856"],["24844537833110985010064862394856358874559230371323049653525236426725738378306","3102817635664483652699176248471396995048610369779995814995989582605370407118"],["12004691366950960685350703723818861681103952964095166815978846512095609638799","12574816982668845835408831080706341784034230925333214456806445636523995065208"],["28370757797757694702791632620163842788645396504035585160690624968541688928658","7863547556099881684740164940210275382042400342581943091387440473460184801627"],["22909539723730939882919383925855381287968850960119476262794572091676276732137","21588024266423970593271664031781307967089146730904470741827142357700493077503"],["23569120909666871477409857928326236910797911018139418474367852096108108649946","23527628091651609514969114137242012981318816648004035401191818929346493431955"],["14226427772212987730329534876543358110135832454304147642633919770453588728412","27107446602642097861434457424183219046199190281023540347031339764627393217233"],["21368207056018743362518683886783709456173787757940172522576758420253923637418","11801683286357086817674065430013109954588928323874350878379820446470280670947"],["24345392386751311562331445420376552417085830843814336307844686897541794812315","26385002427549114701150488270175646175365965464955202325095972873017330860185"],["27607172475668937141116341248630525937628182306887477921022019946665439391505","9499141379196505089123520414887924257567796047438012847387329706348148986914"],["2813984532323521718195394067169687988123122075745825886106401810483260942848","3337021835176180519904806261937655016741967172663034460125311127556714084386"],["14628392602094308207917675849729553887817638338114307004782035920300457441715","12519099978840857688518153800700001742962144693562337317266682310608339216318"],["15098285283827227028132183302352129232788472103827027803939770413559951381312","13119878609354583800570814331862374657893538627180014998675815498753998660380"],["12968731418417286553043545601898659909939240253335714522698419805927950844490","21477325101529243610867196291811119528235576157287862210593896562681769736683"],["3525943241824124172131497159326776926726515463405944498849603443222189583686","27772108312079970650250515964319145149465549947083170010668658086593400483184"],["4234230177835302495939291759799015086545048616716501797485258593095754905301","5023373880283754760506887547476782533578668078821859013756433819019197297376"],["21814077441503015170895677271461098336527328819092086654726946299334304087784","27385577951293920999383401114340526318570733515050340282984950673849562403274"],["3619659830982925785505118178197200866406915042494708352980222634525553382267","8510870218433073331410761725532377820665923800087741892394660715544339888500"],["23392495321185816482334000994214114143533449051285498431884127767301058077543","24737055033624521020122915506418872469349837408430792612853927034705212235307"],["18195134010469103078391130042854953300591733421834952152422572220844825665473","8902101077133193205128447256981766237804922419348365703188088621724995579932"],["18634139523617070995492785119493420204345983529998566304273415476430161427220","27309651686740000114387650639601667726602172889459706556680745828971367269720"],["17255355831948898920861652782752092135027353897180832295364490853014970531152","23064850126435661458379995877000341373967016270475990078337283232882813100225"],["21109957463086484686246612343934321759291311217426711428054412173305547418416","7575919465877154797648993214852038974597089012172617377470213103803645930830"],["7880381462345872829582157634834454866272087126527103217264978238436482837315","20775250996334295504398881222089945899149508948240007031891388843792681928902"],["11284009890740873349047153234784019289530571499016332146249568209368033103191","20827256822616394501020122853882616945364849869856022200325514462596368903676"],["26508784139530191705667383978778972649544833902800978619018459246346050482956","3423105998754418859435440223458989452908993574386334700932142999090276403816"],["9992089534316115632651463028086633707132867618429983846502949528987055327024","22454103881938100953468984459909837446844634933893255284812585454583435758940"],["17230945228107563338035262800280260426451609205710302916813058423462500323709","27745468658698516899700261270712606570124008219659979233544970558493683292476"],["18656135251522185717905008070682294708235316084518895625298149905913876926649","14548616090871786729656974837959016401050312036319122204982757453647409425987"],["9031582016502072680471543360131619939191145013559156178426282072097706751678","9808104748660850720015828233462963102221378367601020104225152575037668129505"],["26068472662727124782733960198599272695449667465980829598769447655865382931608","24534960623915510917104146040107427765907759394133553729708304334303109714245"],["13799303987501322745234183369099511263038848935483583901109479458262677524615","2322687202444165846184020932401146235730143776137184112318596927815433491107"],["13833501953038418302437911388841676106800724725875778962079893683421169423789","22765842047047749525073229699809433175596234523177916182315616935978579599457"],["16723323643914042482138025255898492402808079133208120776784195218710761030863","18881027879724400781806870035256274409202528611847287096238234846359547853415"],["22606917491751021676178245419898364483192911437563185219080551514116910747507","12090251882596353826098377778006990444313713430334699227762481157338557674453"],["22512254166947684570533678231820993032981530805421194131878073609293497445966","23149494251365346005691981022866716153937348039703625310896142433709449212962"],["17880824961855109954896595338092646158659290059639109126229070425470838062512","10164848672945449033149851934727717638078483128729638117709824380427852648303"],["19050757141644738513864537685651024599078942321519624175514040244046264036119","16352167926979684204519997136274788474957232645538471003504484401283280227683"],["9789611384264310493065186853697210110592305305010168380411378442409683145143","18166145377010016009177182086304112805642394002758768054114741834880911462933"],["17320913891548945329557990609931247267489135874438797842925980922401639772795","28315329389045047888894433838300801959443421446794008498624646560196835126129"],["15691741419602670922337232472890674706381503531976673346802209595188219551066","9137950272713143768673877931992928421208491786049792974901457863472489820878"],["3759819080667419740997669747799686590933281202780014921817474960008914194538","1320748688174489658386105405572243524648773593835137304297422175929654754140"],["6253389396152905310065363700353642172065158004029965423343818115666013909903","5569637291292737388239036432319311369055773914063634150404107572840238423675"],["22434267269045367117252218969617730450813077102774628109834501488097081598298","8085202387553808547949436483434869880795610075818089027032526565931535006563"],["6638529885157667909934124179085889833654302453718652768831463398775071672219","23280834354877428158538099526220941218371769447206728608861670966173536270146"],["1826189640447664836469933400898553331052438828117305437505139404570064820928","26327862653101406100025346031597520252591441855105817314746227887473798162975"],["28028304718065556689911256166338149184602131787151772485983033384687895372118","20453205569262155293549119063016459406606746570042632497536625687452865056192"],["24531498640298369053724639390108564201738336195537959813079687031974836450649","6274874045314881184058729530049618384761490446138481441275236666551008697175"],["6515667611347419783130323648683254735013263522758999037547532039281815707819","23533674327217224410329083333191944898309912892937106854162765460453356121223"],["1839086637117047078957812494556883414254322044747500653093723709168402601359","20514950954660396305833711199909607092819543183901604231658555048145396207298"],["26354410336919783092186135867954264933472200499561858125546563897603075732759","21161057481736523742834601069758084797525924069651349560312589186951563838974"],["10579622731602647987316906413140046323198800465740439629358213388562360804191","86664658657756985767657144723003551450709197804103714192166925433877842323"],["19566946846923153250990103964632970389344408645086590864771219093841518334069","28531335620101692148774823882225721444607290331129712439914786643393097919045"],["16564353264658299166183024838804861080113040562132730339317050625566034554350","1785770280492057708869237002967339396259359991583596651933895981256942292893"],["19747111737962125196586828369276162237425325164144600176966317573193866295391","12839155722653254550618726243101600571655455719232665105869684120332570133680"],["3906016774631118912967599857857252908994804079643731393997015547664711190415","5634705423947344926700273550455747405176684421012282643618970130585163328629"],["25515536521929926072840096158499049559502338784304067766889754907633718874946","16838431732073384087125612960331105547503633068720381217912093129105638742988"],["4658482679138902302420861088220746614594228944861003461876388187631464455906","22731333299067411101732312898668100319606144686832103040605520565935183341412"],["19500687165839663199076934386372170122551518110551466375151150475742296194233","1576416279210759858687067610207026426060543335990696943970221745510248861881"],["12928790287666613811251589218437833754334554769403481747343490298301407608132","21111533729012916934760636819627640757510852051545963626605645187259773769901"],["1338007958984315208047590934065302178186634238191225942488081888809498295841","16584202196095902339472580653378440488009552000745780309405196224873027525489"],["26463594416081855911023999172016143954573559425997254518572492958993211558442","27432091672125909234761684585758585259400994479025083485234144949205262420349"],["9260051762144382888082817564911044048087859916667398121188627942856021997234","24032313320856389346585779045081556933190092066192795820586857321988169596882"],["23491114809085891659421212654531225367864090124832954567340110427771937403942","3518851459579257686674262916813221690583651083011567998296091238762385873523"],["27400727611770574415467648833704619035827409686347661637417062243529798164211","13299233688520571436089469233011481612904894062783894793981160234655565834575"],["14896678006040373126977274575818946907885236220854777889014466860808856278601","4409044274852378615390904412144107044973667089470457111405748617854861510903"],["9421705910740693794069427102894615497923524699132665547412179885403797396753","14593914174315953254824567794007906688150647581549746011675047703094533468871"],["28475652191427710512802445600861846919781571600855439451069129274744229402612","1687696828823906657664709067462103801708239899066845240451514121389206523167"],["24221873569073984874162438000985450664724428284429310815497214674682922922394","1039713009322335184612512777316654551218880659467385651585065949023719358487"],["9764919261894587399679899902743155237735415715641843294923898022825694125941","4161809351651608766342655982640324916974363094221573277280771479675284491817"],["4804465719318702852667822201425986702524735813174498971530380074033461289240","20036338367305447580049670521011591786251589553844835939590727805819224331461"],["5154585102785792812362750416727149710628424551633224343028372700533537127874","16037539766961927474556679744026034175904399948564953659482725593609367144988"],["18953058483351176477732345912238178828486072374996584542715635249316613716015","24791009626530108429440965123242542378016623387801313314324447087571926737703"],["19236276439641488619090873050613905524001971825374435263799804721488780147603","18418211014579479386701955454705019241988174346571529953673120646678954256030"],["23566772485906920753880008440088559058162774983917217735099517319048919552935","19833750109975010264564540856187490425460219133199399660947879325090741732136"],["3891918693914129757492407426546479922816484141339470584781431353547331855380","26847571378239215539212288597761264836777623952970544911246420280286787424137"],["21204303585119639173223089348068514601434131642096413327831552642284559380980","11310694759606633334801617759693684527272698148814712340461684569222990365591"],["7390786367309309160880322568399244897654630496816120483399104075397519957994","24745247178146984440166240526521819260302112000990798978722788380907982218641"],["2821099843271129137184820700568141461528629671497983658970820296763368558032","17784493130548032531169168969274111803481612843784726372288043515105195225936"],["8571243599585950539535238885139238517924886486359703168980456707167899689062","13593069523873933590454039179161489926718935176639773713229871462310168855462"],["19241755296081566222133352252198634101886103816493040696544229606030010415091","24066841222420667252633446546598737598684941895583937515271727743683095716436"],["22468505371969948122939368099469398566150560290537302015576719677780455723375","1035738207727031745415169226845465851576040621982656260649864369403358800890"],["1782661408480747761239108363936561817852284793861483027278930031220856016830","22418194747111450522510338265749534149722741171874112863740767816329797984022"],["22057443462477487690265437910169290050061438551271917300028494180570664753404","7664040890722044241317575503778601889079050722258335396590785329689866616156"],["286007163054889345043803662098587299993569508091959566743331699208628764305","13172329640609243606401238188533335801978458093893658510808728820318000676600"],["17570913545613272385231389263789787491610492653058684273163482937390585682423","11900334538722027491154521994224822375415524362914021053289268121484681683077"],["17000100192420894646465617338422157864787461716219335903986976436277826764581","23169318153481412463681611435331968851153829592669649028936614609573749705714"],["4563502258525089612163989154358729279101093398716140037374607329151581541042","12779545123691196565677994784357858383822850099861333124035320729322665072633"],["8485755706345780895311185894517712934092871691280537302898005733194844388889","16364811252580179143940849882604716468370482579694708708528064544471207788981"],["6842504479924357170295010686804812376002578358640051904763745597378404139629","17443342074328793441417639723893149581089457642005326040857691280076196927135"],["28353828093192928723899718668762632981415376331029456551195886175400484641209","2985281469198257388221779117729790812064298065455588013579009705283369839184"],["16994260856575863188357860351237760580315439046271119679972130891482611385846","24276965502706629646964311387476329635727731713900152168033453013707810298080"],["26007716049403337927239277085047444177947952322776734593229688000311882643623","16786668080656411961228860090691310411129206085277898794737608322902003583653"],["27296246053849445213669114513180570070987041606948141352321833900129710669299","18871618182746485880976749451841320544896950383234424277677837273987326019505"],["17985468763428728054760934086697199140166173448226790236240414615221406154887","4132801345170248045273182878973810852221616185404105545924080553056653054817"],["13978768663569632956969890565466716236435820761553909424833297593645166721560","24991260561014774414119960818467713362123308099777982917034524732228046009662"],["11467624877265149306447839387032542513874589281031927754312877397894527905391","11746248672601936649537658489775570645974772673539542326710405501796921213371"],["19738542863747376658831103191515454204368837031606621877273890804633129037305","3250343846629883771686536893605344105332694199308169451717587639014726224458"],["18235494996968711613940629750585040422281453403101980509939260173824702334001","14823826448416080525523327545306045789656815348881650692112871777323370704554"],["12239434102772260538255441298381331531612281842797467708791750946430736386214","24156553968118379234583796410954012297266107438562273809461047004463315095024"],["9742378934260159240432934212805367990078980278007160091563434162243427234359","26657996209376003610667968232764441774828749734433791732982323578178611171641"],["19996344491753188169481250333819969568957340022784668589922475197829512686613","11564718768585403567809681116121361494557086810793945156368539708944872839066"],["28717714860987260525705924569837598613980999956010434738915678374175451271052","21310608712748349523857050158992519392344343818024333921475961287274002802545"],["26661331198388858298262092568638029699618687024598801529141327651330640995990","19237647580600539365311928132052865888635367299756395336257567781193678764327"],["3404630899012763548554259010822647837230298414624059770915248265717270964104","23072221400930974188422793454240899814959567006123182586921706610527740501675"],["19017764329072274449086698751619246654886957264701980264419718984473382337547","8669783631226068924036225013796781758340275999217178322241133467337051823688"],["12685870553086797383922290634257595517550410088628093056235128132514866708210","8164994495160569675549804474320149901818734165889179964315392187059906473302"],["15905216000757643729537855018254688637772736445233791816289077879823157291152","11459604352263848512534102907266042857230223479778068936154068298277128655142"],["20110329990930635594802398089374792353554629696462689557898125259243784497898","632115792011811807718977961259853939333148908894592405287881042880896895929"],["9219084655403321886997714875391622927534188636000782856845040109934498916916","10164613701453254041599293428504810951376349830341841819664564015918946295729"],["2903337999425772384985121747409085555113451824735453170125507347330810376307","3727837702862854744049013907305724760331970141052367976686254668003468354620"],["15356838113064723663252381446897538054850849608581874476575385000079125750331","14875876206350217442631831002664384738229323097375257021750466018923382994136"],["10950011007873104740079996702717064347634561619884975624127512963137246263517","12050457145754120356715615386933573536440673806418061194582438849971609878397"],["7346973479138225629226924471399414597053263249288301559719220139579338896683","15090885582770127279539561777262952668864349291492019711488240755711032670850"],["26344252359275464085572009176941270060700981292287673356210270149082471566652","12238528469509077578887787442542189567268583464472898760187029678973877441935"],["27117977056412561724650503035171584595665749665138568021645488400012797725093","24036509412719554179927239976893059705556567423186185229887535793005315306166"],["11405791584309811271459362246692145248063371610683923738484513753485047069673","24844650005294842054900070948254790173511874037541790296872720647153214478489"],["20414592980585598271665129263680163410361786583487828197357623169962803379223","22400794276467126457662148186204462628500372133070612872765530953756292178381"],["15089837801167618267392172203144245978422041420009276027982115642448108561704","20951449820712060716354030398944809673685573953406161346808186488157388931301"],["19799871581448302274726535532659651151194325778794465465145444689638980341183","21079691371727447666644789450496755223263671847419624722252680445639259802752"],["12358121216086598927533460380118710954466585037360925910523134070448979731955","27736169262616362551339989940475259697103054651870172972767233930667094869180"],["21786354960820510274229721646462420515653209622176653986030038916952370681380","25214747170598300551618035146467912828604103893682657614249242007433863359804"],["23105756393938495906576925393507578864858810979720030508765437280095203554788","17928380654561747119157766829413228683723614294604699679653014712050222180068"],["15477557148427163351605715438016478920887160359241379881887890680207998043622","19705271120227575581002409001160979723065043158411443629200974304653454275590"],["11045757911732903393185838548985610232349034295473601694208647587037564026974","20805767339921297621010481201937502263208467611716913060929501974021132240760"],["28662142679698895019502190120033373636212215203387769476003036599519434929355","16928993858987805900257426221040231813150101628854273841178147249665683214996"],["23751831539855237375143721877079732154893880149572701314858824202817467496676","8135731086803727388203384173567863700220565240380134975226281127098362304053"],["20835466366609596008802438844158758428356527693537598637615343874145852576841","4473902829164597052913924425867448452206360419031047720944662630819675732650"],["1177809380347372703775798839826125267943187827509816192882441416784743373089","6620312258345624564216610371669209929265370367083694767249618507189135108402"],["17853044132440848413466141738378535072759300238270519959640619230103524682826","26856015923430138943201115115374498121386920900264514593323710163750706353621"],["27529260073593526184002467092561004629308056481790411177789242264675530340260","25997339034952804733914524481749703772141414805835969693367658371205710794112"],["6915796005530139796179040729745510720295242780687532083692952239546311520386","9957134137462339324571795481222839354915780477806378926658790756986529323165"],["17546816710954667380874909248954503738989174523376075440401119454319482281504","68210116878482793841991998137729789658122495850218157556453116952124010865"],["18818931751934645489902580014672698474683788648161215816670748860026137726610","3869720827711745206064337570259821513397990490809141202923114991305058925134"],["22705425874402013302161787887507844735827831073392603969918417032500962298852","19113038466356135749475292732068920785715335523460589261021602803559908986136"],["9309365458011991156384078856014003010741153242495222380747109101532920123862","25078967896707703186286654020214770435500695257818351046106210357336636807796"],["13291388040678734858027552993775876135266781899911115240005195244512564361708","20683890281045951514314632162032829538688322864613008657283976252586880240055"],["6630261500454147742596573588934428780233835353435223102390612196390553758212","15308410803124277123004680718321034224239414090400169019085133226453722986758"],["26401135447392542237415187244458491607796403539938306604553552416887543786683","11051141697700257643484747076747301874240685709117616328594885573186321955427"],["19480489295025104121170930560357866711119672335793214122296208668427749002209","11912627547177026713227479632580874761852414973776504366148356845990465922250"],["22546520629230472608954769961995676515330640182354892056163624459849387635141","7431184334472779972386703291268135890422105420737168902238919234013492554562"],["14048947954397301438417133647800507824115481100212894906736140636677602232277","15220936312314291948415423692662657623040996742063217597932921859743284410331"],["5769638688153069314439833987302821887138922228810107509463257632904818407020","26358419460691112151941441326954047970210628441876627796203226447888488850268"],["10185193811576234669702963906759991576828679012121705187958995597298146204758","18922223637576854375521211909792312453372405360485200220924104748944643649316"],["532307815655509574550705918410299657501479348254744706348917639392791932130","26472574986502462572016184465831090613725255125573231710941113092727495711350"],["25053598416394256020114380746013344808077364523332888125670129274125044105638","20053257647118479830104408908714516941479000179796877537160061268953749307135"],["28944990896694236694169710876405095532593189043704907482182918922890130890137","27909576554728395464815554755374328192600441285644568661988531074038666330580"],["406818901274726626525934088087545267122741083753465091169762362691659521630","9844690512603305821536015414010197467576024040137488419834544844943483927077"],["20739161132224256991741747875830916896837479817329389362440007834112864861890","9898038008048548645880563536129235879032558393272083057872581818679317555719"],["8330435551366554922318267392309044413719762942088240211795469486600304869436","11278176410900649517432331856125281893009511465607063958468993146095758075433"],["18681760557878706014942313994039940038885281028155914539127897506655044247289","21199644470515993053383048452712888377949041795230073983568814083063516649658"],["4786052533339216442588075770003971078391281928443140404593686791157299209683","10789351022096474855009588559446475454302381156249084505837623695412408390306"],["22326171266674556769916988642984206967039064504196315856075016144568230831213","11799152358881113961223718677921756266290090259202306814049726470806788707906"],["9512921719706901186626355986053257605588590761520638158344368335411725413972","11659337046560558288483991462429811230152587652168679630572084087894169182372"],["7170653032871452640175238655670128936010817976957442354247938191965752068403","18842249929427408501795866108244419741385167212753168814550583109690872044286"],["28749078719765054719583780040084142547474588174172010146265376902721227459135","17529958803411967891906260190089616224517322186772029244611502321998996896363"],["11127663356467385993662398930589335562413639211715728215088104439650990497922","13886954685976338566099869892424784175049740319574723456906323393602195393408"],["26377112326399149771161955339657600759428107813415467357101072537890040792505","12457465280483023844152018423719370067413286630610009434676982456215729826059"],["27814016630537446696089918485024395187283082337944114729237366484715335124904","21823632959087203071470748643046566340734570791178230841295641489692873375832"],["13446935485107191176566733463830914853059081598073017033111854267597675348477","12674624669190414679378813922685898920906335540058939283874457556606080681185"],["24620988937137514141502646697330876680414893909401420376947864987217969263360","23375482739308463079143095788939786847709966301457459102787454422104204460637"],["27316938070794659138773729006230929639434823780398610887590957157265267266400","24268255284855720829771570974729299306372269813107692915257102327201017511601"],["26561063262331935442214285893220196219960947177263537454908908072792911944385","20011433569083771987716521972903506238000036285643110592733292885400894207099"],["8371464025615156516469049506737190744325212669415026866717377828947804102571","307260274052117799215671580108661412791992649759857491157767548867104944225"],["24148262012989555940665147927540552951254614719230277855530502367596735109048","26812596147163177620664064247007553807775717431645921605472064011369198925241"],["9644240326824010449889503499844808399114548222242634075431901513222133994748","26751489947786965777271870370279373431789105076596464570493766218672355034720"],["23185149396092300384957097712155849821796116594483052108376485549751543888521","24121352138257790770312163621230658019027986036214304421057723758157449960435"],["23730336417039733438008344163384797651496400703821579146875490303397471070657","8062052771602067803641351787723075467840545991326751884635304662609210324408"],["7359589526722449461438130374989624737606741236557374725517539084857269256346","14525214638483039729540955708495196276920414445623138228227735305166069946148"],["18530799485096263572954846929795147580173016906557592368393443744129765851273","27296981171794202192120553081544031035481319033854375851097689400793785683914"],["5023708225478897329255555399964534847805571125358902868121010943843612654995","13826114303908485269547140569976187676864059635651279562330100493399917937907"],["3793791861090878770050808744252755243962880961918536562339442706818903427769","5025350364394813323577211994786503150439763020068140990345600530268317762768"],["5540081377512299925789471941485890767486975208107601563828542737875305195820","23820621781298578879981240699349706053778943295936075207665719810360809330703"],["4595901669933213007946056597569984102189088648756339085854221566648789248367","9120100163633945492425617728865702558849051131179379948247620543806020314037"],["17094370999523939207360580507335592029116695628298371870489697386543656399051","13998252854417431853822638777638155761455236155230807134249029631044435581602"],["8664205696362128258577994172370950234740055355069937771226963912768345369704","21956138194612444001847669013016522433235219269758084652221954999395161898834"],["27808310983843318564292153658464383478047561908432698608934522108608829092278","7335696490249680814174096757889097902064318660588572342616258451850645826374"],["16057831234214614361260719774659249776123611936064269720463386144422348500003","4727940913926014845234000835134679000164451644096929904701294392421234325496"],["5417525018309029708380568039949120340429232148889443897203556345924546850387","1687932362952241228285845358126329292718826878699681316456255035710257610161"],["28737891924734775163097335873266907604720898026049631727819188798102738824101","27434754395833721638818744258157880322915215859077539819196399349666436075773"],["4450450627440361490825271870093576452008543735505668852273640462953752703711","12259490795597948842713564360160628421312041083130434859160224365404564821785"],["17884466012228727197477705302650430653837108365330135481032765610758958857108","11440591442058600547611935302411343433986007780528225681229145368010715075014"],["21820377059225496585952099391734812641134214016859118752411407754414606637846","11934819025492906369843107629833977854477230647633946408180981596444095528748"],["6704181824212313111423515700492403237259666725472018207454524547330420354561","26184407600886581246447594695819444044057493988584567323921862363550290113675"],["20929513819456358858279228984821018569534511625256317792404786546635142588252","20843373223615234845690277630867320024462887546075170613595591837135524870034"],["10839343000644283711615143134879988940329188729947698913920050589704205081089","45916279173123305911750252095786879793254563345752297188831879405474509117"],["20612993127326334744826881766289177121794111799645379688813398690750099120191","27069453757202420460374171794213151569005407070320740747900987124844053022340"],["2495612013671239493301844715016566314615087582382221646314084423645053396333","1687337526072744172195655697130087044488905684607262178619824210863478599637"],["12358587594436983753644045446216918288049018296953382119867961774269089013146","18997248680280154476858798182864277544848005710606106123897303832400739842115"],["25616233904109064793398259229339319893681387610570921871578947236948679649683","821621112704908375309521855899779272984135514629968028109619602025040218220"],["14955247475054674406224793125532401483957780635798249472404141978928381231250","9601970766377933525320540772632417641559633790509087680066738284580229830919"],["6401680392145474110716149853238454614973394315391229455722974113535774694529","17641074200777753985323827991162582969089552817228759051496003372529670923236"],["908875361590812354795763270160541672612107138148972174096786343749407612796","1519550959151537191530093962755492315185568221950482162945705226352821014571"],["19074678458349039880134328612882900325612580757721348080734869965983887905839","5802037934173962436702179840812603539533214294223924125716606452255414075795"],["14872369990753359051954775247706372450197754894621337935150805380769880919728","590824212758497063821213652105082730586473075470325048942923774108962863142"],["20602868957073694748644119163976017444226111315485268129793224854582436097857","17806037758790857091956019725326362681592116452802014938805785780214452980920"],["14076945476193337780013188258795263690096858674448540696349876747803934867436","21680578191533298988327184462389026975811597684787724262891350097712613375125"],["239636629983792811415393231425847728923536975970591069456128856158635901829","20199780164590809808284467461609171963532450062481984050899015592428810858934"],["17254199494458492062851083797468605951368262438044942303565246048427887025602","14010827581725722441933116819947218412047638141051799709859333763581292906927"],["17122053138319311660036170318246794715506334711778271733595549842945404885488","4333734922450817526350481662872364273007118391693769091654629082026774822391"],["13792557685355844997858137127106195484099772120943609958870000048564550642297","23048493557578755519404277556933136528105626860922729689348362475800476638236"],["8650702250052138951107706947123765650480676624252195108543086014724319695148","7565819336685348118308551200002300836926868416143922658525267520952652038855"],["23851274855249830574570718167219794312157907671993007944742297524697824331822","17668732059997909466413205259799395778540255340161069644617169556979618102986"],["7308984865659955566112927843840165702916247977730750611477041866784286264206","19904541836964875038107686828477122951155356609760811427761760244948229476457"],["873366495532431203336515103201963771806310355086337881864038800459584934471","13425249152676324963405394442069591184205208575896673657182874686377332836408"],["9730135131542919255666040774580167258648101797201416622538060621514173945583","10076336531197637417770173307184712886718086989649200299861661290151599900725"],["23611225443166016272008763274353544969803411648984752342562325095413385341039","6872609871708566803306591053771628859431371525277172947627966476150174126377"],["18498544751219668759711328065282600515439401487536121235862712019494604291524","3408973474733868122311093761726165740258538288756890323950118124949693112352"],["25590092059662449269485720055571289066718921099535237539084304976593741259099","14905844005324656309833527478335663558931753376852095971780719512616125584163"],["20196342299049927995554442597510472873433195696998324616337207845408783072327","12219678517054312851804315038281720812700624742452752257452434087921912366655"],["21555707188251025169280174938282722737862438388596982530079234060251621690982","5674597225914792869569241552183805754205320447202659811558208144569851114488"],["2932625278700218132473105443256794741107318442979707816921057088231943695485","14911708401990053153403450132225509866877695987544233586586315838488033773131"],["18306550440275844418833106099907826661594693946430721974135354068074196403060","22249769199544329432707345904883060120480925911682246401170116843589818853622"],["18765008472343725269073904487958964731800226018751599686927902000415243586858","3693525717493156314798050821276534749990713135535488790926633238274687277434"],["17418198082508054502733416466025570414006181655058300124792414398711991721648","25671024345094757232355258960967265813111594064345963278966374033941238973117"],["16043016848899610717709284374692808438388353115832549194602109401552497201281","2383139866237370380012305955742061083325191393510840486275136757909749425893"],["6248199453466100854188568959997226094185893017903676694376426669761101023438","20013745366353663386415674999591062272521491622168983839895086161584610401397"],["20655941278197202442932781836020984519735659192927596158014568462469893042146","3362071453987243933117603496991192886281494804354702159960374334539884126899"],["22883759762092164909764742125898759379507058470224896741461479315984075247621","24216222830169962486238956156845614575381390159890168300393278282990063780547"],["24837985520327873894823461617402210810466214490600504517336209953169059495768","921246389207538665405667427550661458931303406914501231692083576993831633830"],["11241991046562445913960522775874009284698679491569038655263645267121647829060","9895425527068283988646300282923105066407574714668829062271259125571465474132"],["21560464562251409231395715408957638829849777513200961590388085116150781912762","24149876393076002006813151537552925512647644805932355499585325910342939683874"],["3885977696672346337710507192238802344874198954868777070118265181631007440491","17578964793172216739270732475480788499306861990086146576428150370322131643424"],["23404628571599633917770590065101219976510181574690951657105880189521659855940","25953308976847003766756032508167381364083369415533357232014930964104517638265"],["25007006397806163210732102729871541854783105149661878331216797165406717618080","17035229681695971656436860874146557874261260082524096131403569056038240881983"],["6718693363364098439671615420002590222339880344404892233891464398856407424285","22839134353309424545259094439835672954686842104020554267827997662618334858198"],["13226886348308483945340593421767799095027822134214598013197809429949130406845","25758079424530520189440081574855572561842191901067013139644413034580259980627"],["27588694126871272419246979299991855145226630089550940730006164098945643431514","6457603186302187020445147061248884527453070913707355454406090651001341793855"],["15083201784135175188822681208028747891722905400394782176479198771200218960363","15518172524732402779901369369252081017077378705831705230358804113151024824736"],["28918678980566599527944894689838962926601243747199843045634588358158659180382","5519408368027111170878824636646118725421818624658309511977841303619737906163"],["12565425981189324655135845552049249013028359939888400329499160839117837607686","15333540835076371240262442886877019237751331285528356305666636310501217998372"],["16113862303311561697601869324805965386941620287675101405723344213642744411524","8743085763243483365753428535152112263534332350325377969424993822666442806860"],["4280489785026725606516065733251161519938643952599302229116483129668050568516","19972687753283703636667501755169597759452303804822980139570883274816469439136"],["15367950264033094543283751083335936133560154707862564430209856149032119888815","7651038921159941601823190416334061251384462010208030085529152669610919678051"],["6980460713734167583388023493612614351282874259505936674852805553252632238145","24953608463770420260809929929515846834324859082963843204766967144172806786431"],["26471948885752585775202382230337747423628007864579226117918951652620141678073","5679859306481236146551692249380694995283746421366264809055567677065214558157"],["10968978687697716687387758749446403238179033544081357188957378839627788395776","21038903404544938581948362121245984942725306435700324606245010326054727249608"],["297577974437662185773929083666126053200021744090184111603390711020420799743","9671527330954073248117394917898925811867522746432618025472242808306423284466"],["28397546615495575435882501581139257699295095742116336851518679885358931840541","6004789353739684076553847997193919774391467273260617212053104843385904839384"],["1216079305039318187314781869253386051938416282843491361924667910837961396686","21246649481099704675297320565399383345175088669536414480250582738466974809652"],["1074703012070260675274740455911123073955422581581410816104359620289144517704","17334626509936882746756513973969107699333502183723209690010242523507119165929"],["1007539787924695270039360558267934557784740246172282944908443191239204454821","25448471924582708833715683272519860023842936883359672340027715334643853284443"],["12482773726281911441045316875402543858391926958912866139725181812579480966657","9823687678571474265146219235732294160831318094997506091213421696853265361658"],["18555755730982927865545467737361040758382777129903287413631254187966237351147","25880341728518250589756627879280241908578953242849485360764932397559379048476"],["17223132453510513761139151976449556511799310569049386603860556803330544127398","18125434931178341901667474149240807693775477516072104008574945215474178981736"],["28861015663129921013424547464399421988424040904727451743453554945004863838388","21008307208508444178829548887612040845822120708415696887337431669462541735321"],["10498930606197304679031245054504315370496083656367595511584270477549974109710","2224462216659485414153127314108286739503096893067496811151542603864089057630"],["1675395827189470723605264489132463267112593259048438027710788169069947434386","15725826958863239017107739627821432935328763888995775803023168400349240779281"],["15026642018849277372458482351251051837709045789124997051195693840967238865205","21509033832695727468958595152286310223259017883426630261742287203343441138611"],["24516633769780328418644533329739324526266544586199638012438161547427285521052","15573405224047294706549468853175081587739086558285187558623883496317236826015"],["4836041370751067637748334459470814061143334537073865376353852706205910917015","16655144672629443975968087273409117712710218606926543356025165906470722857058"],["5172614606863052758619830486361963785786544613716382630614678670402562216277","992973959347955419117306329209755529017032942368038717532473940168219828184"],["18486320974314958745090567844297924973685512892620290713951924266382956472423","1366756981367225591716051136269888079545176932095023296677578880742228408615"],["4510007417466513090710056616541745747150047814947119678890937078312358673745","21361549994921993861122172576427962773442243532812713679817028422502781244122"],["17743484991412660994631286804303952722328084578002354607510599945553622260640","2551764738757167754079238794286151901782368892849346675621275911402928917253"],["8588422711448675059766042263760285058668910976585950454815532812062248017854","13645419321108313542209923510358156223547998691226583048751629549865852661099"],["6926854160096703355317035081144356742074590217617753463364003867253237765720","5748919116921025145481277646890701407611449274911286476369269053070433500483"],["5059972595313528299165963316820968364242941203945711153232247152301923799251","23030839706840678965689824742829273714839494167387713122690926566754345950066"],["20688703774582737090533741872253686078642780743635040224216828929872230891248","12598080738754327325971654437619461566996124541479240545240520092389517886345"],["16598984811279219983105673537012490936420938977591566793090590975392510863758","28434147572333898843648616622101210607066665977136970362494597213806683328569"],["6499953268707488379372488178647952351547101511684822239671408320053395325493","1117731514938356395576161726100715094611983844482684334010843102774329272655"],["12209071583254672277148925951269864949469419856727658866230627130394972156781","20328737097235796451365597064954490869606998142569591568761547027328145643037"],["7217139226606477696923400742369035205601919996798659667208573543598994953405","13784324177907398981350734312632592805671080011836091581778107032450800412556"],["12881354277725581879113292027099186335588158338198031287413114967038066647180","12464571181888972568576424072995224716623944487556313807069926857044660192099"],["24472503287117865588026730739281722883124116928771363664671041317396034216728","20227232032254915363209148507659668576711424393977846256965598167150421204213"],["8161412744177417272025003720631902263838683897722837425399154442429611590435","16827716559717616296730724107455203597809323024236155138797958897081057663839"],["23378972296376289669184327263105792776707404000232476712183268431388596926092","13093917502054119884288119554484458596776634985972924253422674962035790817414"],["27448184439581120763831829854293153619936536889916639804923848540508447917298","2688745805920493061750212936999915286193621677198413493351100600358158533181"],["23076311499270419257674558642248244582305574815824275173801177880299221308818","26178170136218576931475495832577707080072819415460981985815810052231851165111"],["17952655697088791206173631034513512396381209408437753200155254881839742798785","9670705657837779525349541499338948108481499287846132267639481016799173141184"],["28187908701367239897210358401875993641481637924661468476934444194473614257239","8172071055196067996313623876543218065842571891370900958363923103311548960733"],["24355765543492767002810750540278210201188643596200780063373708701887756435097","13774300354980625460691883243053798468882412588064021817571885863846981288427"],["2563487501993925903467059202016672182697692234243732209717853925036371655405","8283725413956684458486504516429512415785369570796417295258974591677177712567"],["14790099675464221886845973405033423754555019252088015112495181902753715053379","19476817963145085219266044726057103814353587690554593679116363737995034318522"],["25760087415508240195145622359133069459424897883360646016344096105257479624017","27606881636231719982720862058125299297398508610493410130220687336998182462117"],["2907179499755220734886095207330912165155236935938826316275325482916176412","19914512943252770231514851034953632190141730592526136930826912756126954884819"],["10493285367305765899139252474619587311510800311742213210636663637977188066213","4385572549616229008394228482842255607139141657620975894525567248644225303501"],["4361083094288833876047586095230076520016371639200772113137920548253769902524","15013671084228744250910599181069365846256049303205901527718051054811050757997"],["17618096479290441957278739970347897642829457712744733056158697956862657173163","18772211552261669091033032718244721638297760430473120465464521015340608928548"],["11949823430061798554065486514791912419711496423982403904686291981370048862817","12433832133218188838807842324286858318289475550729453460213602894419589228959"],["4249605773242284712573808264292844692930932271395439768323817028267779029352","12143355280615126347307679354907578157758822946724940999096046468782716312451"],["7436966349329151232948388320392563675564620899047453698988071757446513525242","13454772051655788715665351423475512950544651575197267313284103070360981159014"],["22108263167245062477928549150890347599374860527731455024501457619608343574255","18954649825243268499033542947252543893315283367611003438371492060807477169056"],["5783042625637380035688346354466371097294312024368635962641096973963998938478","14925619953563008380938311502483348277185496270351673227653476981913013273519"],["14908892664047247383645096983223674691884894767973379580188962598432387273657","81957408594487532772509291398106660053366614228518022283590182862083614370"],["5093625195372020778579216530467385340376477215717412677435336475733583053658","14101532327007969280228387339708921467207010700451852581281138728146921960427"],["26546266580996193411937056809856799124388422315361476021803321466034015684995","2406819849781754358562333972309197778221765203141460171244290954455987022677"],["19767850181630280079837888539546203621603044101368445755346149489074781186321","13504638120833740314362125748657252536503655871609527728245951318784143477383"],["22997288885028639938730785658564987971551160204487524592829178748279280525082","504509587032714814129252217554630398641432353175828050353158898432260802497"],["17901318671196372228651910008283582290031709280106759781225600995596131843584","23539224422265478740133032907600645944453748728783519361424792079104227517930"],["3052409758774186141281680877927177926689885486848685105994525875639002932564","14446484373228722078316910091537097841473860818323241302847691655881036528551"],["28245587139206634054735663153075547784279136835129700354004741117539822419006","5639760081231285499067870116294216427679356721914317859640534580697142428305"],["3064722192183667011032797722342346321490834950506060210255989387905019647095","8579309381117656420379097654056007272060201709075402500670589022426456369171"],["9746976640666187229369779999854167351625198133339362005202450526922455155446","4161243125438939689693307668059460736117227486117834240070726599176194393600"],["8131329800875605928143240465106267974602154158165423872954143558021590763164","4011941827518820728160126707592275767496317241675340985912334769288051003911"],["7813639404387788643737477108405331617672627137880905304455612347759812857993","25105039082847069101102159486162506349248849870016391146459590022163765590361"],["27280880129640572550961946246396112312341701486443764521785891929996327471343","15470997433799289552681410239651305121727415793354041980462799868950273741747"],["21033602761819323074342275199118399189889606870584103851560509749924821521519","26937440451471381929996642464364285342920495385450729310626816052082024832304"],["8721424970504240120308445572249788720480730335975424694254128517982348931943","25789168280169932217688696510441088874837667402506668994330358371256378688156"],["5975261660991649938150863376391178303678016790798916173689890615028339801361","16162036751712884564092005325680575421217225519103605054303062950008957257397"],["7200947321544709150688778588436964309442549217941616472024683723144111805850","14067206223366850567852008411655118584559317002359941396069712149145938781300"],["14286256323458535501318828432642628261770936909679474735661514787007581126175","27608950207887775946653169658193343311710041233095531166057645732542774806218"],["28050576026399098753624453681524007552579549940517416252614025915226738295249","26948094739582620505684245885993656504983023867350702838983123250228730866456"],["26616165874087597166879204316233873776152534835951036182233692256360816728871","28597824794904571854247960465843362036659052638150118832120331745355450526774"],["24757368237528131460428867324282376458743374042508318886401437978424033707285","5035210121721596168302806655582584863053885340342600824865732916669364190396"],["5832057241909443561517740456318075957382055477310247139499398902338322501172","8990615452369870698033353673024537938988052159108013227689296320963093579041"],["25907471729984040467037494463975806125916445636977373936879912307039075493960","13598572561635053854483073932074060771210121485676683353769414172749601808685"],["14039884676802127921716497963261465568438961718322996866274757438570008350978","15071641979256740710198232569476045139478864447794082313107839939296110019060"],["7047127992949813213703216463096303194436556893197068434630215655397177943631","13056628245387007653939092643145205674241166588421162356102505002871692410135"],["22273798311148963597236762761412571336214213575048518306377201033735829572058","16391060618172436977374276486081955612013678140588957193311848135607626654767"],["26620650034777013429622295655319729360324195646927010743525558486617256808857","24277522960449776511200737080597432066087588846868908497288613538566906501555"],["3239950170917702280780045090312228220581025916050189985332103596812555301571","1314789762185239585076375693911626767829081701761338916262481900643181363009"],["28396029816365952589320845131282226079038487956520046631959300657611992159802","23714659595778851467594960962243501990485330052180798215551210455515902526819"],["15986189944400762226302997397043222629210574313361796587582836176601182012564","27613535784476829237101935583828259514274210743714903910808250965000778267249"],["15194414458989793126373197645979270440137508005074485532664597961543977071118","15234876648514990872632798053464535724933538396688480213731739376936478589395"],["15593380341376694690911986668156742177411956296697289577793328455926651258823","25137935453704141147779743419749279189734204336848434694425735803451102407854"],["21841969112097932362434803258710891262919899532741699510435181479236955185531","25099413304560017542691138087529902030451571866065371497343730871370830424311"],["9411625782740972424564523448181833285396982553409421551849477008026133101204","11236290710015375090603779528144886326909777881842194994913079480532608443603"],["9011068734731218865051000365126989831831541326567141840131277544037901219952","24991958938334578683150610813787836480147262971457670471413487283511550522883"],["14295058505470616284041211945136531153387014975601320940962584798635314603059","6687109873331107124959221591709923644592326881099299296603342420663513729791"],["18816962766345524078874813654545187732387256018648672529389605483979438817645","4477285962625849001718254593471086842999944003838083459366107892113809149398"],["5811715772807627925195444724867526481407879407235102415729635908636919273232","2218284960289144006695867699784726055563206241971746093891848006008119851306"],["8989018319875751879566358136780666876237224696358560520100611184994182269932","23290474558375020074595614494811412124638327792307359872003476791521446683053"],["26789277487007762868299455288365517665186890191824568332451878131758068480780","13792748879759349692956431137466403669229450126722723104666141185758600906677"],["19396909149923550023784953590182366987324885394876699739056489125235255618835","7185447480962844901616591473520421068410665460351909398200822704438987236077"],["8216203596130585308605163455266352734969836998092966440889445077467152578506","11816274882493576962178938401767110193709521528828137296397950310405397350959"],["22873025041770056054163441284256591252762281224345884596990890340337538046114","21837442265217199513240171469048672497110792384058083733759103633914180976979"],["21570856582965813061146717988298896369577930473014480544039525279054183322826","7259675694467207098814939616009709222369970273595150690405315636186688623743"],["18561341728742638908776398067628310186103007026746927411173089014991707945844","2861700725599059148951281098958487631512793602106277143684373188865863361300"],["1407981925138401554700475475255367053908013204515238060119177441047677687118","28661557040378299463121289828889001927270592940348517758956900672078397237859"],["4947931234340551753548675890759617554597384069814897759626332140237553755093","4889716117413556327377500892500395782903291489198161795586505604738235820661"],["11099388603523515073997164644805760922522616333564084879125558955317172530106","14177433134669094261372281118788975180550640500143702485860548087111045542717"],["12695627572845722637893438749037066385150181563266480220398079242877805536232","10378748649590615175907812945723330367546986692157337062619376821074521484355"],["13023151608474126148864775517088470577334362909015917543915760385800672066308","1620564833125087168206000298437236045597908055334276705112423696638598735196"],["2052216882415717277781935813946659525175719320471407920338401569404396622917","24314104001494354359826299459704372502981754040502109594739820243144621449795"],["5305617273376761645662075042084559101803663363645234562944100724869864005731","2839427564227521683704000551878769013211519140224799260865507081672991524051"],["16642584678587767216384903921034631910729684553274043437534445765174347663902","10249428281341136148792898586151822967392623068247361897380606536502441693534"],["26622065505833217395045258122528094962138261182547592900735466973429069644674","10336887035886549030932422330331839386313102038602095304475006312879139239964"],["704959740584557804993792649627516728272119563476308992984142980167682161124","10434682775882178346706012735601045984088615203811251889420878825255229098219"],["24896393870491274860801486359655372695137419920689210903949129005655340599081","19994233411341015678321133322801702941781779557470073515121016140508742965354"],["12993042758477617935537063239178148881885063844476612626337913752553842880437","21853819182202087894214450413211199939827896105747441554285936219936866129439"],["11758459376310778039724278997110551162043914464746347151228932108173717755193","12240826973455419111280047473284491670395788865057951130277538312076424966847"],["13752546358807528068952343020312218457945721573535917033989274037641710920887","14778643599815659056317233726117683448940110873706689300080588827657391484085"],["28252788559473366055460597511791494372185637731853286611531941568763038267425","5087183239340388248270069531254807724824097213152686184219901098519997377624"],["25292251604018425617183114599505021262866389154342277227522350584962003022954","12787648378177107040595365384939667533231422951067892105343221461277474010467"],["22010314206244425890052342989743181837926057472437486257951473668713997698854","3448699412311335665915111696121087179121241070049980281651325295519440525098"],["8967092444317163614527760600839866775061227440512650732269587086642262827047","8002557329098941917697003776869136605202839868454098318278663062051719378314"],["26632531648766628011394898172295537992504783570707022951222582645018915246623","18912695215072137985452537963769070077659960039303284207455216064521338250424"],["7701239918184751215159658535800276207240543321158581607430600862846876129255","17141728504157519419622171846784270774761282759137052243197972152842757564238"],["16616720213060447895740843471070899115892542709303625814733224353045609659160","9464941758137672142514249824341098613407595075366880687668794502238818783445"],["26688697783050614897272931864673409675760976516722724466933702368814686077456","15931673895694379646645422327198902615240678067551951615813972904927602943136"],["28645882592968053631070281081238191190809438174376594955498846200578398092577","3224675814286116160899731702807339070742266773036405924840127291347249767207"],["7376230176924254069550009548771636462457379597302951544569423723772056309237","3999730395807095928449806983730398427805273246841623422596803235748270330917"],["6180318562544604098660800721410000233916418440122178094697540892428920975670","10453310002303419358992674091858491607265698157688971826316001495342113469675"],["15593360784526562002773469439814849400168671636207333708348224039061963758103","3958192337101807584614977499518615553595459776871103529645998937309715740186"],["6375613219463930538152070218726248162005802772943852595931668321980703832872","20174319486470649070907769422500298315630787067564817730469644406639703297785"],["25955274496557110438108595641740001421923183656535024648486896177715125605277","24779657704480771425470836979523051429979708576139871262164907055307387290391"],["11206642918894349732166516372690283980287836258329276554344471098384027909370","26313612029300347906378481540553704672148984010394971485616071478480102046598"],["11434356709982536394791918512774171941440867695433007553094950791875423518892","20418065323949400570241980012958953405577554929209503267639251420241815701989"],["8370693655028530474642209347936643407771914800840282592917323268693854099558","16252530557587879440908410322307564933358541111665893541910884284822571442038"],["26026264733065762184604533722844416150416331994131638070751073500828256755648","16864337888857649922136020608533757717930817088351631451359631602250192985244"],["8950235285289963422036818228513017182630459772218822870567220769276916923600","21875734758435490215262697757781491741548657020260682952096561085952681017560"],["27214235122201749778453100461363200318480665364698046864665554675166608213796","23620466170570062723615239325871715578340409172716948945174110652489236206062"],["13968068134643503316768975879738127473140032611308330755873570022825971584292","3388176510841092073650193189232200677159223135902942452586832533352295109502"],["9558361076739966164555308984083401925957331424104260041494627982949569862282","20052200652554195272751709053504417239321294470627167572500825540071047175946"],["15699758753017938922332514165362324871598640131303772453467823547814221601679","13017909309960230668522575506186944521621106275987093362509411083544477818927"],["6547763807218494663240118749485132511238971346799297046039556532894342886224","12393031164805311363347796913294138517522752200528150590363644952511372029560"],["9395042567026883939414427985152764607894050838057979281457451874228850921044","18767778275112700942554000760402273971253218039832680079369407086690543732908"],["13748080505377206088072494984828667927184526416079872750578613687319019270347","18231387966337600458166187816974388006585422573249984644650527126910800591362"],["22142644451516362473966820862078202527196115898214912265642436634351329797962","14896217758696698795667683600849773051337443282660232995520102111500510455226"],["25518382676905289350043192297008136657061156988071033936731934015104490487707","510999838861069011720474726588090648618089468716002425641255065933629258012"],["12605342687805280676717240381315534407714341536464997422677166929333698359506","23384981718754799141875203342703469575393543403727068342477284164313019998355"],["21960699534235356072056161375581541425571930637592447236910432719683675459610","4288137167468341796061809993873268006388054200946391859868423433205140190391"],["3315449501176308629806492720531186259193180905539147173523652128405482235281","5489857734978129528430366275507414851179546668582567748539719855867854732680"],["24965738139213221973272322802143348426334364936922935600926674411683948126236","1594295848602106557238017745106801488052901282492687075538408349436442824097"],["7645596522981802927161079785539923322100267535050471798733564558946514183065","22682508079735232654504683723160986281779358245962150518729213343154066401205"],["1523335066161897902177006860026374082116936333497463448935725710409760206101","23116430304265041215212782848471059607714293701694123307963277864690842716321"],["28167683008130633922523206491757549030816272058124495278085313350005875282413","22612006700277313138260802390526323440560453394813936542120077703277115258809"],["7617668801940802332946134698481990381938043971257677923130658059452874629830","401948112403062710294959882624414911922576052613769256759616859808119381514"],["23002711571491653918255249889104853239544870593396969090423488855696868834017","11121990654240931422085173362061589647481113699981682181863082034544093600205"],["28501445053403414522095128866005372689806661174040652324971904927780049348980","12739735445438876028407789044314448174891350733254817008785678480665082436366"],["12739307372386964617914270676603638814249406647405506049632549835169362759244","25890455053184889488730723849771053560132571203888903301868234798918486090163"],["26661807669141667618174241508995391618934192806104586648391338815839414028754","1959090579712488004868287485573160119004806962347714271734867081384177323462"],["12585821849001401127042219542090596484094998917705349799535986637095598075855","27705558692823459984004543983167375555231692743779046141176291764653475241221"],["18309985787642492480987004581167665667130856658272087477644054923369192880202","8282949521028290324605534900972764926290728529684796044796005878061693327648"],["21873984779721425162698290794086554302274128265794914064037741893364102951790","9143670330810981138748845866935724868955562915045312366164445084182744496007"],["8829907228726524798537182361381855967041021001778652214997349104588949785288","12876232551849499783733739188179700343917451592012922913856844056201633939737"],["28230236488174018821273479245309676093729591872670315030371268011838142370434","22912499285271296856890633948789933495074858764551587592374785610824895466656"],["27973313572212573456371779391195748036134740971396564127208445638296429526987","6332372218468358863350364632450152036664014784974488382427846070795412715496"],["28836532328993902671978870809612094727621305403109893926423799355373493135516","22401803125030575689238958964534975078826311442713860000043796217045785115772"],["11690342619708351970497669028377413249779807495280957310825892505065106555260","26368370852423619272934288755375587099557354192439715766494635460429982582121"],["5532109904970424467095028775946480191526068543915767294302123976396468304354","25488651604254954592821496551983040260168465158557351717922455720437876439867"],["25213935821687541855850092600255591420582550049888464276759366542376728616412","6668874229151751641656710228649635048701498526727317600989615371858101537852"],["19961048206156548694263157292461281125377707532230005728392275460349243305121","19541244031688908477978279980252207094640187885532133160125975658025634958913"],["8534342067820869279315708854872982423239190533434677352979257584323787277565","4777322705713637937061519528507882299123992373106362936385077174084809009336"],["26968359480770827007771447659533488918137993762821126842525940056585160094883","16543977263827735283194451107315476329771862602031151138906220960542767015926"],["17107631618409092255758227687393666935393592937691126802863127415838219233356","28742720114818062622535458614834730477187496570207961648066795829523868844668"],["20529309611954020846395098081477248456997834404792713875304863711917808971779","6621061287954455697147106010440514515957388174999466729897225007556609938233"],["40437479145810242173032202240584359449377900819503290564679015597808226706","8208427956454905774101863583043598421611035283218722952289222011578896025734"],["24287318077204107931308745242733752767853371317510595117714161097071196226925","3743047586944349981388827469229539934998671717084765244483853705709919122580"],["4143872191315024889985892063376965910961212390592041658177403171249296276245","2121754479324085491719826272124285425377105067245755728388209166767318983292"],["13627091737876997162220972636713714751322801207624190757071017451000474323302","11689174108492165833599545598503420399635973552772227695884466268186378879076"],["16893049914458017098224040088036541044926127776166391123153017309060745518438","26727056780086379758738007492062635103944922775777243843325464777635541804303"],["21807796438661727036712855337473858342390522691481366332175787701193682689008","15364088909842329087651824531745680639193182513848972915746654524619767732867"],["26171433673411146675682461615737230138325110754511651105058083618741993548124","19148268927131551124218010646892960689669575948329999909756283758960275691659"],["15557632485907533507020567414424896102931809070149229342879658822381547748155","20074301419633251829105314587753541197601527331365144292709652019615348873939"],["11431452504366624206892611476510115459743390590787439165306792549089365409449","19827179990716011816194608869986348898310160236124575765101963635167546806322"],["10277281721269874181028431940788261528169469618247972421508757788610586133079","810028407030791686575670349634881992076750717920450603071243785424145826232"],["13230974324319838191731839029277397444577068032564490315387675818443505115236","23780067344126086020547992103618489785790609913703681817415237575925264874094"],["16342738156496264488873654133790851874516616714418828674062222821070406988773","22690533773391995620994109986004450955938599226825461479293510738499128628059"],["6210707626847517556753471196556156136301524021299312261013200856653156547620","3821868210577204856550967682014276096379444539509338690137911192225200084370"],["16509328065587071624030845728123323380018297716959487354278293662673863859712","18011481475066981430118675513167084547311861037473787561216767451681829380673"],["8857765316128930562209599809911635032853389699554429274860052469433167265540","3269776380370623045570052418707265370527265937278355603575769629697414530382"],["6055026547642726743902271503024819366865719217006599958458511712322044073421","112933001170407500216437442289685242958808676704176107979294315403436666947"],["11351367273782864458996354584465116311323506916942045335963125462496468268626","10997428098111013815215144420129866954706960754969550647105293374645273145404"],["18600939998316459923931882193235710935784468195373242836915931764007674380409","3136769898918577658890268694674792721956109914405879078925236263335199289223"],["6917498036585931289097089862020270009688673259497512868327016286663462008725","22210194378030895959645526288096162207623648232096975076873159786107820640618"],["26035782186970821607042813420766189547564465176695775167355110232368585668773","5053376145842983695045457838364136011047291459548803601799938476812477821533"],["6203917947759308774449856498932549270792232025351069686974831395041105534648","17505160343198027852694050752711536457919535882858075843184930647226255968092"],["27500003385457644970613311610642378020509942943606223752955706168097060442871","15021953506602116453595051582991073161046053118679580584393420433984232041062"],["19957551144356507012273604677417994967081774552762627059760144476501041822862","3504841211591540251643738284817560299234550739687366003138234219315147722877"],["3535920379329614183524061274918177206643837853740455869162240648018820484670","11649907203448597298546309001789517553889652367135983237541528900357862339550"],["26852893717971319954659273363127957543528885009222840814255825625523673502463","112673198679712242306360528128807476829120624019142881497636159024374342838"],["10184405438271195032375421313949161427929735608165926517406138193478015074812","16994309752791502962817957920651047302728708526813631049278824475212270186437"],["8441855044960487789892402978306551736278060575333405861390699623323921161794","15207281104445981818251727335176612534685590015977759497314658928730487519009"],["18620415535407590455503997995479123006660125158764928422785151469735388622163","17780868287203142259963137052196757805726564062426773745519899312514965007942"],["9199184845378912030462308343955592776173214583682033004749569387515875642065","19758902017115926877970912241031742448037086880398990492541024901508961073691"],["25855133495374189322217980178269548889645694998862108838078805278013587472039","4612315587558028601248994242757673855136037725936169326249638671828773384293"],["5625850579238142792661863643528186018671730768208522198225035431800988902666","17521048063938334362389104275105901769773707503922042841150744361093920991745"],["9115792053475005986273142658643174300286217582029757659064704263559238161313","13774761760525313291391961402583938315362573797823997735560337931245598957970"],["23731490722351395421529762983667658887891715296107544484548476939142535321068","8443472955248753435662122731860230644240807730470430821221610540022550543297"],["13715957510274159758325676109515447080987831233459730660973461749011217457878","5905465996856840709990943612639352538279980242415959542102304008146375531235"],["6283136596709470288248710519554353745680539925538156085643827712840171590665","12171931019721187304980961948876105861039845911592744508265203658526734754018"],["16179147237943183881532268651490918366636737988196815648087479895250546151474","16079182985002621970565911277074989787643908219377588376948471329985159343434"],["695868838015100383770164685050878419909997963329401690322944714799227541422","21119051224269803965784513156903588303202728391937436907221110070703043121821"],["28135624983214762135394002067856027024099953380307842678639118872016486495071","12359959565552323121601449052384089287405996721120377000643113241560353736160"],["1749741351973061812630163507743671243254046902420655607495617785210922150435","7059949033834634358948725893573781318935679169002187472929712384449823186548"],["3950090580199908818007290558555999512095096087764856879042130134645099498281","20081693060608919308636641334567355827201579888201969521265412355787946182863"],["2779824139087587967454420125203517106938869632345950730894200039978873486920","9575179744506700979962811669590802828436042646949839077542902994342409381556"],["10487443037689711160103109266639334573297556022401577847475546383966382416788","4885236159435602426524627454584916251756350109770521888024357237448829999788"],["7876416355937893464919456247651084601076446458853452179745123343678269389237","15775175248405664705348565048317833959840738206511111335766384006059751402267"],["25655309024264926453234478634605662153607334606660479522381991342761436150390","264942444430730285665479132911623383210737837002529558340009910848763044069"],["11546775237430660166793237234487876309779151084396833204204922857297210202294","16732144730766809019815990263491596917361918194960079645370636638316009919578"],["17770168935381711784976738179880957225109207775516109837435598845061877194202","1906430454532673642963904148050714450878197324316159488285233396543236664470"],["8652606511384952505643637259728126261469797642241424577047102771373009392327","25685377233858597999662879212248572696051867848216083887261555048337186226064"],["22883265739122216906909338582105584461605863010637881273181773418654813465146","12656269089013467919490406013833842958498318279719583683733438447441252020785"],["7811857073950822310036023976496194506548966314236207727659707124954861032121","1672578144945379455939794186274360062446979647990898988026046629939664073594"],["674726041150499791876010534992396593121635287755469078363420772674304683377","21984696578105539371854396749519177254834984932278277117216607390609311490625"],["22765055689350739996180427357282009278541337468363969781162363770053116363451","21653518985505137754662407724906223898125121865199677303499665580462112655278"],["7292701216567501906791066616144842578626053485113203059896769329806951045262","15903125116080596026626956172111100397004625428608681075003226716136285492826"],["6750508103033435984823701609391692394084210617078867673500909492115233560351","16686144242490148519782084404168501079673922596724215290263204186967161539169"],["26129929886913436847139499444361605558926236463715695781573537995815874491437","16177083241203198561257197618251875453517327657264384619479947393296022202461"],["15691937452964259139114187209970553551222716713330764704599021337817192825778","17987765183193977856065889627058379801394827347725308842676744503301010231446"],["18809273838309812194642238376052453899798183995811766491673592774606111684679","3820948069530949279048913333567000455507574612197406763508958417948726228212"],["9231352932196137464826990511721412708602014819076317653706336820846778521055","7720416065546153974495110816500256736323760398892734446238080564174764741020"],["17526046468412435482960441550135880305121084988044624155836949704748052565416","20059839044254371430438777252805860126093605453516428691735355031463053879747"],["22202506448499148365564915281380363673579763287161225824926094570172875036052","17478943521793798181763215525918549375712906631547954783724343053734237634321"],["8669880566182576157614543952378750984008427879164470671493540333973084242033","17358574278458103983301466028373126188439257413318496634133997568799666821916"],["2453398753457282941057162422728808203940910172574545833579979576161793163794","16668492959727649127236772938776537989929269037929988168784383830096401774433"],["9225108089444442192852724959641406089701040988401025408230800800011118467973","24831359835973317297204125286004057501733339547623747340491520334657757660487"],["13545984748194142919149238359023180458667877711709743131402036669882749270412","17733393798575197890669499541320797509838775848290524066341206336342555718243"],["28037183738669804497684878717998870451068451170650562339045949779669839755060","26017772424279383031499987930818446737331196240171496502020533457228515979590"],["4132810180174966935562197218420851996283989155676992668224385743655346806303","21992459057890959968640435565458646301503991033749742238826978944788119413383"],["15837572642017508566123616977577556558949921674059588039322218560590586453486","10084625378650036451293315694563746416489271442761867685746944381837853306327"],["22134462399500132005643015273238370041259249307350439718894512357770159463638","507268447505407296975456732517905511607541742372437102961582936763864441581"],["18008886429363879388373063377389882233284438123001343831100584939974746177400","27156664413982105153296773589610115262496183171496453210304869046387168056554"],["10133607331103824173337061525870719913931356862092129654100666345052938154643","14959837072740427777443775292966679638946853882026429705146268991207063818410"],["15028291031490352435987047708577076759804084544624528651624202631333762940479","26594414471911386153952648966957715922608330539101290766030566696899329572620"],["2407416836624288825456356982622767908020332024363360827002267384732872429741","16224483137231468295356722865375674661782929720007023273290724956659395171304"],["6504280282156541605539707985084133152153390389815182177008559470332481945675","22794624831146417057556495281580867216046851281024355453120058536417375060065"],["16033744975853843550991516791448687362426100105446210400311333321959038812301","20322534946252678269290433374050167103993847325751640550296901320119966038350"],["8493019423683489410059380996192881257039477903867652829396805931141991920820","8283250020060945159219106145467137077280218339670318280395960497230214794901"],["13023183719759905312340174334272119787635897249313668131325747800186393466572","17223567060242823216440267203143796355453257882341221423260915404901162405634"],["13029417569118455131076053302313396082708158327099466460211214484696733132668","5272522320313759480477470118829878440956978176923498430549022869684826818890"],["20065834450123965686823571839339539675494076207443863158437811818030970903944","18022269832245043347390240450222383380385155937272451039278254286407849840461"],["27653009390713825940707188098757079804721443325187817445843915407159526699783","5585634884516353129805298209547775431369770877520114447567558277540357147098"],["10787800265726173802520531030809115188317866140732545500391126996329678246549","8395166406557502371672778639942632479299545305954946116289178122700197353811"],["24077577758480507166542026639613333859755331172587795849606811660059564239191","18711360002872028415508419467797399440592091391851191812601319927992255674071"],["24137267882053666654248002472340543867485592794827449527629146758531663016317","20112392541151450794864708230966448864466915000289845420026764078828213884093"],["26677076407576736166986021241355441793252062836471090905124740478364426746434","25521697901838532676315260233586339830321372054975864059083283481549714970005"],["10679019370593641012653690524172768939876417735617532515489593004071508040052","27505873156802921371140353522455097404641587422262980935144813260278529589295"],["13315625164729890102560416941772547250701468531455774041121236385533954863974","9536044121083344903352893540939733890670722660978402585530710624417019783278"],["21173284420849759159735220949995613859342212384611858936998842012425188223662","8327662531930466316146199867266924267346547072139250703456461612949982980784"],["26712152971245683130892039588857385654732389063882600930925601054744824282730","22360800249610376675267750199569725979493747305676688576006777019688724063549"],["25960055627494011075822410522961083911146299699309360011870543276826666393167","13083330825434145357120790720710295094517267922383560033513456939643609137425"],["8635338623982746874689275553965022775595721299058565712651087256536103927127","18996444372305443420822071393522272114346407100694108037367120944245115644635"],["13390278594040270248633613572238965652860893734397314896863816681314260991592","20366219208983762439701465250947878260132702221773557027318211227353966906100"],["6427864621056292913876669598234824146567473946164662144761693377966563591025","1399089226833958526994016018352064886823405342050221661917561426322973486830"],["4293074108880329908315147096920294848603031101860351643376472654997469451767","7224927233994974689614866813971131043329189376342471431484194993975958499359"],["19387529128985928670813277017981627515369465725469428578565131958256110998174","22045908573505914008401817199906334845192919469594927957240524895021343903125"],["12449436818293519146831469223414680555330614808961747657317611512262266909708","20507546993189215307072696755151302665674196126835009769943144845615246288879"],["24958826470823251941084732360322205070749764720722458986905581259323476898173","14912926230440528490778443810817487293978252664122064811137081602640122077983"],["19929550122039652539421881764536318628874997363076213431642361327941241572800","12579643087707040700870935865145705080554359569978606250636139743844469717094"],["20207856094403151858695991595584359831398138635520455737951928966339318737696","22261932389923918660915988804195134552654978335054290991605231284865791968165"],["7680738774148748970970455460365659058401626225297815846994215340497588909700","15064778269640451093223319681030002526795892013042940013786719643717641541109"],["17278773069445409722211706067575235782173660040244454461304726358618761947401","11690588398531620710375094247961098671999746678887122862475122609501535559573"],["2690474936286869453027357573304916147371269870013989184071251183270030890719","203595455947426728474552990348058435776948164448177191383399472455494340792"],["17850528311849062661269695916318872640915030428548609088866028436187674919843","12575463692393782617175372947934147738549757917183136280264484216855356529718"],["14990921351182311999179656831525500715778123807868886114071262934699372991489","16460383111078872947959779612404480810130439485951031688617992480208961665843"],["25803008279366133255517564946715590989257427489956404366598948625688030804505","5363913262595914772611774238021217358869252887639770626638012383824657956220"],["21329297364017851797399392485089175045065421630892717569846557111209576540891","11549310953184659761989458587875762968938482495003489366044836450022690900871"],["26357158636356579712191602075982670880028563829161783863356149861145429594981","22446038917736300833210563195041453553097985564725825196419907761270507347834"],["26312114245021495890691739779381993447836629589988938746937763947774221291006","3999346960528060921534939607049771099579118639155024919153897113297656508551"],["13327774371434999984189336653416615075585141939037561160464545254992966845402","23480969058944311850205977858204118602213155729594064492460601544934417753517"],["16662392068966323042624727210083839444777285704614139200991424095185148105191","2227217151967213835852754728010553679329090434639291706878624225028248726689"],["15115910537574214465973887705843726452308017883284764083953938459458773067433","4623007234842342347785308645541962148603581896995179665052792402820625935464"],["13046476805774449629618240557926615743694412271732308063259205764352067292526","18128542814002182753261802622725311621625056442943320873730669452540001322716"],["203270480607686588632500884735819037236622345344311376050536124619777279645","7844105482672677919165514617221936154246699031390999142975160377392744083153"],["24202764713664957306854518349603160014925928391122166303186192428100210333099","11861917610168048553387903796475810938685128759342863488561046114970597869962"],["11374318092294048582899323416468355585537502896857406042315581824209037617743","21635373667052602354609800456639391262801692086072641049076759093036134834827"],["7555118253910435035120197877539719381903957632795676461911677777410456019031","11015959286734329563030658722851958285912611707539505866405783931928343653467"],["16887899468569539877904108330452122387360380627110662953020481505383472885759","25305199559000672610093287605986220852032263298245746373331824713233807036020"],["17064366550802305880891898444000409165228322589228749554567928852557202764873","7718694642109682755810272432907368026630622560069655885452497217435365936537"],["10806306044982368413473101935441714080822450449228806893844088667546346005980","308584305743369530698820203799552679140692499382401829213812516198320560028"],["20352440237024255911869272903355412279170401436332317556681638999582346239509","7822169765714344067497154807174069954516556212580914867008148555540718388724"],["2970604600197582318944270626585249179399846262426085790039776567811518696355","7206821889168356637419216251213857054295546812709924805658580739623567867242"],["207449433991992893997940406412817722107738239769460274426051899143810851996","25697154812817192719146209622949198992087696827659221338226479100832288738604"],["4665561182283195640475806795750955209916841593472910054939344552451464822245","16420933996010231098508152098400072351131404463195665185598927720253818116648"],["4862305992979628959472593514448590012268618342814657450118385364529974310985","18280523029013817016979833646111315883155786543735250919396106478209871843903"],["5383836009107252031849076031506180212115291759622850129471436468907588506217","14669956647290115235102304705243574904154268481146859137666310748442670245061"],["24373668583408636982637085685444210728855626189198670829211763070627274879678","10312554880257916197960853438359944266462344067244781294068501724673753772518"],["26884941761408350898089023513392443160784085356105273767477040424121433118041","15446982470631771624086077092023071926933947184244890114242305330024832502321"],["7564906167882101085611225596805274060903216165043367351626416103030075450768","18629280877680249998111867054398958611865271332477685964427491502847569558178"],["26126944186607377406149529848362642809996365506413062670364427059224351387987","23938045859127532193421963563605800247235049479183616306294982170774005570722"],["25779336010667707308833961574832667653163938008393986942918170114087058183802","10252541432998010621604747282169680552400916434138144814690305182037025057731"],["11294920256971352709880633382777222164443488211422262069278692359616041166922","11787533501386810703387405593752500184540729699915508019190013634090882211834"],["15912133322009675880664955379674872057527909471242846974721256581532243405289","10309240505999505133413461973572937924485210401820677359920497169510666340956"],["22361297252851100445656610536389608588021892425883068292444032131009892784978","23703124557638346051966212721497886183016876199023565638819353567607561998425"],["24356767394959147377236154277703571493564526851703284254646704834907365780236","10400883536756859888310593535156740198828854810281829270623331656049536412473"],["11630408336274280260450467377853635433518895807579652347938723075565795837831","24986215445558589358232209818286251021361928209397088178658859533830941489796"],["6642591370232217367726708252967595646262555319966079320351464849534315516387","24497615452073068650970744155862484635431260883442815107218719917842207534530"],["2778630119265571614811789816801525478381184217810320454141069418529954009120","17863029493857065102240642898178925010047141773063870530538573057133374301618"],["11433374823996149531427499686916773042744746613928113849653985139324198762080","6651077821244806375113738150124386922140054306257018185336694175810740994689"],["14615526646057503913570652562007490154712960487425451652653602916149502878118","3981932290782433577303834335081746837656157640221093345140275787991810954648"],["989932286264353636433077612809449414646530757148822925142384493349877136970","2793591064255192262367433209197844835037860234266183957032221965737782721762"],["20495653706916030675283600115139728915314009753337881095585074944437640471677","27863980131934130868368328010840231489702759068172750559743092605758537735415"],["22985038842683129775698272414893870860447437221099007035751084132428308695386","21733546767587437151377956390901003626943527255999786935534313559629503592543"],["15054792421055274638888916955500984981992178170472725722667264310290402390317","10373685609925516987190673984442731081388197074513368052597889053388062682040"],["11552383900938585334622877348111111927046449296781058767673618658895319414597","10408539411489125048092233378286599754884587773564259664828398775164060011600"],["729194497038247357236555250738767484424931470857379057268779033213647659990","933313141627564909234039821172398648224140355144042354342557081874894222921"],["10450732713767232748501055927231857550311861938654012996501567741306710065187","3531937966112662632841249861984557358397973973868709329572171330675699299846"],["8467160018827120843426850154064034725701699194857206674079472979625235865463","9435809011113475998028640608675657800789150479628818965186132419714439360870"],["157886658223681936488672459033932870113669042292214543615103228138115652207","23437133901718303807411946221345561717157023319187334929179291095525899251168"],["21833825929022326844917196977941840638475539925909238493054645179613585088923","13529655911176789694955548236335656435239158015656894732612756283201500543623"],["16267770999314088328987247134399556977502304483650706278167104996826092487223","4756208770818772540438922368852052772214664574429441169039152923859941136363"],["12232267637434630860878665317920434188751662568195058954929177199325855642346","9497798307726326111457478548746671953848188319205648941222550276665357657602"],["9527957587597549030793518774121142492718699063280931077724038914520753596673","23228393160140739074482683460751795294620577985038113540833754666022654776273"],["20439873947080686095938335964415054572833442199498822918511133689760865657993","25615332839285235710218771974942670565670515304288780089261633498589455240027"],["19608437182048529734416543482226465289200879020099875182262380610422942143312","19432113343768583539900681976809936303757814825246055978698193119021746350278"],["25690547245599386558657195265189315201862385680650949728693327240426043335872","4401734415603811504953586156114266785109349402671855109464343487959110055521"],["2230966713244840747874272490812545623133083232130514828455201456778221948585","25215864896994026028904522801279046998027195794645514478308892579007809272086"],["14558034183389201463432104827395423907769735125421673797763207847268350641399","4017418203910379919821786084159095537998779314017427584839877727818190819295"],["19769338669025200569078968061817341157145724508701241104526019110168808367008","9025837937068945403699346111176983897244102129536167973515967526961358959485"],["22671557776566251233287909599678555968143159419721411539861626765210685701883","21249380637731550565686014842908388578098717293749298230560480131990200251268"],["14041197972381878326793719773480648493664624958490428709936423767792331138524","27434717969038149908739431742434918344121875802748358557341008040739137073235"],["717806701117236577902374696651281558018429601606134783157180774933805366579","20479470479581419046251574807425607166511491337379818304285731056876356188525"],["8281939389031218317537812623025289566815593527705269461063679030192154863321","19292297523791766162263801827082126329716408267836543240857288418346842100630"],["20698664534133314859564784161996298147930052469220560994302296083900612613752","25626561902727098946027328104817756204820838584056099630696416056637626130373"],["17591395139525268676551665214828460332512853771124490437417275294638129764818","16661804640619267503491545451003094439352593013695314829184370286426631518354"],["22216113871609033490053685151735760693757772397595326384803733437836852155870","17232843036293218064917874503316416948369575113310967303472621681152971794044"],["21002980618286814541118342649157252090992951076115858834640976071291130457492","16468913591784469499528421914244148258006579953281034421191877390866859952798"],["22357913796927576999865101331266386259944791006249340544279741604901715098530","16870260943275452374447556112196955768628947360266532718074773042727037892116"],["21817910393386652658836282584420609539278520962844326709571331196196683058151","11749226158350649252641853821971957779782212793582292247231028968716272381109"],["18856444079556659639794142276627294299732706438492825819650995953705486353435","27114874796180010964479244920175834826988271036793152014635355421538488071995"],["18621266004767152678929012890326360948810104775491016928926769161159882148444","24042254116454672758550258513434260719768912448962424131888504164228501319271"],["4647383968156203874495280721156182201460569521974520950891262824930513251490","2390301265516447929353656949363976707875016866057239608615866722149336689111"],["16341513569430962140692823240512298457689039726947693462260529741035629317758","15975534016104429413403545882852594923873336082991281753140318510484841628441"],["21071778201054061733458411037636477842634453738426926458057730007384778656151","24908013502403466332729626499231488063461537538839833032511206603391291084180"],["12140553066635145314735696885780915403796708034126704839885063544086493801053","2212190074329485875145066624105078183512174379624206409451116401156752150278"],["17455619219797813290958215109993971387440836237896935258052162155511026767966","5073100010499086741576858435929433870996609257468398085536920396469152009514"],["11119078888129772685326717842571745410678282017246505270745420342326293459874","4374996727388143546124990879029825634073192824286181864588631994070250287246"],["529538680116340637810204800108757772953005520553198297336588843771337962119","10232707940947639108509497950385754434294556320030219127724530030050061424095"],["6569109271470426449550271323616116288866336656902671107918373453635601064676","12638341462352788198699804612840993175582885623764317851303293134624115518873"],["15800434915102202789033765875782429940802807950290150327782832569291567836592","28266024878296222966430515510663608244515328337670210191454884551194335536673"],["6328348515497879011255164475624519279344734750320469670795826136989540709743","10305576298778950309542256986593665448215380669005595174937987638390715873249"],["10915200839576716122582458367204198144303420886246189405308247643263318031470","11562601764937512229695894665344175347681930840200045236407518824860371339136"],["15369926968876335490642244549977003908260627032695103811950288774183341008766","24500124204691627179826956779545672472412063729214859756943043421338327838596"],["13108494516872908103342748996669313906223257067918346382854476402348291632887","9787708396579732190781577230795640497269382588791269594146082171685470538188"],["21032873323837850148909961501294678594598375846082045926844387800131151898641","26756422607579282323198680227840067566451340094140503419495307936540727380559"],["1912131186464720208755824087489345842940058224824877557543662759363887324617","26895661870319267570221425109872960463962282481362845045095150175437525482549"],["21345789880997653108490630568880477824794164427658670676956607966430408313056","17377802464120976481919916398717166322336473713829233759352985959570202756943"],["22002064778765666391943529258200324955084141830975977387098640903695582965276","19564770052682503816571884831192933495570501261064353914412153148349000558736"],["22238034678425701153183406044702330006392682586206552204538058670001807406105","23019526775459618383927391411110204561887250081343845884093408309939149183748"],["9180073643716498518089108899992109215135113623217468628657695814982301535173","18923348620612570166893380364189067295969017969264900490234086645920071830362"],["2912005997949413040862253429926551844280666542953200982415517978404187461454","13792501681514147807127129899360737739213021578485853112659034782988479264659"],["28560868527201278711486825975192907785332509015346024210306300326934857650968","24428575567974163671154512879469037252256420633067449313184592425200601216865"],["18697780085090410179636044311687172047486656867213643628323999814656475990816","9185128164958504280998943074865614752562589832200789178672287645348552234331"],["18048044657066837211359163433578640585048965294317029542094486859084014905542","26510729418409088838604449454291470842846513333888738343931095905825337379654"],["24006088622343153979248384635835173989857287067284801525163859042371975628996","21973514163947928597816467161721165621435580186743430403327121110620518187412"],["26247159942823352486157209822682438993978245075493402365402113108502802176387","8192289141224357443419628345753688927230599163943756942334900812755232494558"],["21271504369352075170505120267479783283451123723265137698783140958183492594941","18077203366294842945736678120187044128195094120439991093401911950282085566611"],["12065222831680097337209567262983994726419219849619851149239342862315093698068","18282334119098100496273310778492193312740070057353942851635069680112831221687"],["19705566127331692502738761466968321484361625683235607122461488088289045414507","18432042384223821248722028065537477113901190488549508593202274537755100806194"],["20247831618400115440324184326822516858869865717266934588569815019426250517003","11803649103493896289052772657388823709588909371963353297869219109238709465943"],["23479297622035755804889519219626000318172535425737727939490729536469233874565","16584416816049303345245120434161669177636431661454546028303017367211814901295"],["21447353229713065154246455423237421069209689323079704132310857201838166213273","2968705842982396482776227432768510884213783604162535454647112547091673510887"],["20483911966141936308742343272613189353030577481858490146733382400695654195171","13712011818217779635732894681873146025417448360371829338762391175499816866196"],["1483685698957459222452969982371003990070932039508798154661304469361768449872","14482838015118163965872573438579097140256879036110135051208087614871614470880"],["26605361953734689722372846147390403098439582980957212864857216285995765247940","15280877968024799348564283685947773424281378972610397936613018405844155881654"],["18342461140442463052499001034148959652042593699062407726184042065748850371879","21365399038573932220771788975781366889092759503417396640643664650838360345044"],["19945282835361711611105658847494773304048506146985201229495522696669463065867","5225112032180006663487093122440852655892423070359332647036397113632022075013"],["25986381113369531646600915682944860709333275363949921346042208649307019076296","7682586115185665781325967534311124593295141197967930493448426356463580245275"],["13808181350095892715960928338740488778425170168970474663545458796234311987610","2182737078838050941624680286204325440167624529058998655348320849287425595086"],["2536264655999542430728749006615019858148298808462620016281827947488190211699","1431308679903733371604662068600937469171054904136673755474365774608267871300"],["9376409764630448444992103444338329030073426607935122040907670416708439142243","322463465192300873027921518673288232381455218262359910720277065149288652338"],["12966599576977778163339277053339893285976776292245103829874097255451327742213","10381958309198301282425091280363683270989979592907930932029246335271765399684"],["19337645998646564972856168710120259448263208477846065140498124530929360571638","14336341011804675366122146623835209164154028869907441401448207763612775830260"],["28586320977488914570545498210978034522021554664890363972053959738623123104652","5997106144251924236559409287406407074128035952836458844733076213485501365747"],["11138734020236379795651280906356794929329708406244644324679340807288379531070","10584395845860494709612521368402789762225770389760579019945519617819445962471"],["20994826887504236754330445057327068703208636817642050346152571068660574189146","23172227251780054035555776674089285645039985295778142139696581562164465144374"],["2459215168948720521137552832712575238531029626823158217040736034020281173828","20840531396848522406820577584638001556280247603640518643474209264470147350081"],["8878011553652064196179131729452253357568445298472038559595874156356080048561","14105569194337001906833933584852217432709312631536725711588778658584831878518"],["23190207150939527358607930339248632653002391530125717343916961577978773132670","7931296858059367294738011619720145869456763444780416575368254527858311288314"],["435520845158934112786638526986150802202499458608280714250686739386820501575","9691434430527288496318124332834892799218830662204811718951181610314666641141"],["12982616433849806810144178012188385779980365017047373558483889241410581498616","28064609094732123691928529854143779778800231813389380759677422586881892403493"],["13484126181858345658702206600532692963672521145975751225509282138456903386943","11304171151201516207832343344691802263226625381572051128441110543810739409056"],["9278216624703651350821470345603737581814025073931295548282770373712480503438","4738221055409947032076204565189427154219349929846587660422868766624077507605"],["24860506486316278879703135332820473053701001316021010348871015358208071615801","1493519290305348306492786839806275040751372753204896180234821334759557826691"],["16628161495282844596569145039702290193693499491073086393979221028579771188015","2433409586914060326503167630874098164564764698936347775004778325784614531072"],["9065943122843619716960447212400645756934566680392224355254674801669884124036","5945366813195640024533505393554088271482200753271954890942510902657998717158"],["22821355343425229688251299573017399089737809182893189061415248292810487061378","13439014186242070219535509096448846570460808587543374119391993463680437777831"],["402597553296800557250850066682617291601112524799822616673292584935227039092","9794782257965518028177785242158215764984819525269773653401778110498053739721"],["16918073223039339746146694362891657755918835927840786092475069853777158263590","4781546184279285084262824980400236690688174846394334360807396924723240266680"],["22020209661528509488761732905019340628339780163254476903786623763633963209368","5896416471618303052245127798271691909930327381806809537812831863652419756051"],["16237339573226699873787663341528862067558123959565924425175433652223038961151","26517919019683322629305875561805227131852036467881580677357598961165484101986"],["1432542008406146092016657912661350515008456842134749587439465412827935588702","18799478304149169386322549065210767361144797173245681663851305434379434812069"],["25452425754388413855416931515338034382545686303549389516455819441116286584352","4630785676743404615326637560484813123099063240160055845657926425798311135300"],["25103509739316462664795432036771739617209232637833813165479626358081344463075","3179201952855673741596516447584647899908793492772530552713130719103385528778"],["12139015125478649246267346494054023452766270810770607416584460423701894581344","5144532638300910657433953183377810625862191418885359691768791971426458798537"],["15241455390590434445300558644229940079356015906909818813491418968541312729313","20313639534144337942502118576492027881106694586222635559317933501214700011065"],["19580666350159484007372542204386027758269229127028744246946982572575763444371","20255738209409629124020051394215154140676615587967351813287870274393118776931"],["12004972802272346192898959821815341682103375359087294209198429165527353799465","12929040419816219274547302833005787303519006899243601871306867204797549348738"],["21296393733631425887467096969244598576178877458816421022107746963562312130156","10538201935155521368383382075477711096567560030440692568846123184634955109190"],["12093187770168310369274912340736566831167373610037334215050796708702941097646","22787360811557509590741403325722303041273903923322610667214049628261024156652"],["19248919093138157883370878561421188764176601342125058912789028484177159562120","18424921432295263068276845337523282664878962269809803868223447999709854620544"],["11087735569481789849280944351590217672060043571799126791734917037282047283922","13330545335906612720612659454030602373863282006015692402927687344327479849734"],["8360485862372889572079145375073953776866204086229211155539192908577597092154","15788107442047300156179336915294184323405708773654638546966658326184472350192"],["11382635504180578722973275741949336758453742447359195548018470452740660374275","8583024881226219859756711134942173666785280533609356019055611785541628070658"],["26123873716445409113456154745286896456663733959833237403254361860875201509058","6626767574808231536019795122639701645385242354462551862347689377898208915006"],["25439753765287321033184533677424079477931320145952850798657011874994432788843","19008340962544419516224690723237290200736281646131324102875520331652737563496"],["13698858068900345019720714333629407301485549320590823847878813474808650411591","26624049422092391257826146964988401448923746682050908060651569677355356377045"],["9510104975603212174731341960540703500130494902755448401847504256812958942596","7398827846833215016460311918048997077130618211932405375537246260509416483318"],["2455865456717295894607548576802063474815801781071802041473479792522792875171","8991024608889939742063010238664679013917455123673163602644141475397916676530"],["27440851117407129975947590450584112686564381641753818897321676406396312113667","9509260189957865246211282568715725451860224176058089094202879180568754661417"],["3392035727531552255912438628089605152267504084895682069080638940577859224375","21415562839853577501840387881918370819019683882337010465761616519898036252147"],["10438234216130373504441523032082982396391036985169121280932095507272133137175","20411086145312288455757960896104478371950736622053115335480072223122758177818"],["15226028163991504261935085942918592896381716909836138865747126914435581180054","24755243097532292089386906031605189144380635241487817643187100735273007387776"],["1283560148390126445101381836746181733738918428706211479515412107588290740779","19511385841112611546426646036414386951067423029779078166558496201075158935954"],["5224742293654465358269521295094086004520981692272286418366520545362641579136","26479728800609650837579544769414105208501914811134318055049186144621402383615"],["14779932044377213608089242181504413096946494361733922036287125393328179395213","17336433704638374666685487373077771675880770958440086632186122155492690735363"],["15007946273952718427806121024517146409206950194065880947309934403808550815045","2485830077210653331776738955385885685370549341946102555261237475472481510210"],["3381359726935891032923701251814596073187924034334450730959662124430197618143","8090207777585726679053187445319600047039178978321518217366546398725703191525"],["24866539075684957988389670913808405112035187649999727057462400399161970147648","1853296884962749129137088884832874586092635819574911120768704966687198470647"],["489086755366740215403995680829217120348438204800883432044334545695786449072","20356611697158798145583958479252440724090647513462533580792038037431459599335"],["1293301032642168732136697671529251181756116238079835606934435353063079183770","490884448933231261319886285847136259792905146460882985494974228772444308636"],["27618811343488791328532110992868308479905028116081500708463309242911654556144","14304608932692199898506990558739561847435401280959216633245869018157681191970"],["14661225555959231948426497147152482991804118326881638880604541894751423667602","27427726082400431384046542372219756833221299705862987930431711560270074470040"],["21590659396119568195491707932520339634952118073808424365644687050534910582917","13907298270499807121596468038492577934167949086704244151521643701698318339479"],["21628505762046691622387768852459211012468470655127092355226067482818196923454","5468839241064303126114645438316255940155119835305766915868064615552855085114"],["9702419572389090073969449595102533978792641348748383290159676224383660266434","9867214547204985685219210371124451808282165220872888158518995403984920499472"],["2473013608939256062370984564716939614291973242227010840170871178330344894141","23296403407501349512241372628852507216911961623784253696459551176282400553436"],["13775324705885762728573779355076301260342098032466266000551456778072641814963","6261838471203278060833779664036805118486245810530854357751141385412848973045"],["23050125452649831098945617102562903756511877698976412510599887953786389063805","4048652293417855792060529621398945828783450209984885645099049581952753066782"],["10883434590168649355901847553390288729197087276890232951479196407866793155196","7239428228454963388932627121747492718366335065354184499666082952342976647052"],["15809532806201121546873564009398574654333376936724902660776676504760659455580","28796208307423981893351983574540837499942672494452305525901973169701135950541"],["14358264403787513989592592994102956198430452903780455131439190936338562090667","18400028824269792525728511078278203110021938410659654914569612255005239909964"],["377556524837595947259387646978712335890972545296278981564342057429564631149","12906591645439756611373859884158423369261531826583538920274427290997649682884"],["26817786103436187508260473249005674073736408796582337451445477851268100349229","13888750294312816420234256889193750409118530826254554173999956963788457049390"],["15722280942890054618368959365830031013140776126608288629618175056620196619250","14562688160756689508364709411158039687532606542405444193229536028078831223366"],["28089019406559729867394152104441163396684120320709222764763188398596399562937","3191959215698361071561432506532230029191722175169284574278642885468116587886"],["3157203890962202631422323272743517292335823575038473425529172763993350575841","21861633463921074952363225327892684454030526597121778931671524899300348440088"],["11269619512247277529448716223847993109989830107570539308803186768154101886722","26286670933644478996269714173653664211184094234674776141370863467831450389750"],["23225819408619644342594051667452960794091994535388578099781283079737285800853","19343583740799406945890530343324243921794916576701453129906764376232077088318"],["12485665933890091572501487696723053013617488100648830103949524507169331072459","22060183870070884257765961336712775523788996897545441014780916862742070562825"],["14908521145562838820099904677867035573955101039789353732862986046022823548195","6579888576019362807847196267108768417459518340899834331445576481304360223123"],["591349177117942851274437178929316916430107084717281155812578921043053764108","24873273355444581534195431443990445434130141915698369434078864146346613562726"],["5398031120166292135411416994817670792305186706051953164778291032446291680261","18096210299986455758181959366324721872006691574777254874627727780812133795217"],["18026239566699744104275250744148280285217730093523624288592302140462948236497","1923856896892639042920271696395774954080797932041247038808935589588821169128"],["23844354509589711853800884787668843681397773559054416515697926244552285059692","9932982262274530458769976551118741831245433730470020586317914479403488951585"],["21666852246286032513765748954407373073536533458864013049703765998097033294228","24789643621174778714588115272214152524821808597126662936995760778646032913115"],["25807040545220734202364063694025587000293825664833919901237190905021375193707","8556393484779538080232584993778798252703322172298047666549487417430046979332"],["6825337516680537465657706446087991236232264760819443250355076023440742160785","11338615050249645811085249069437586989020306080106915468314715348036740556003"],["22813012169123776142197390303399662264829548855228265359806600443874949469514","18179999199198292551978425085756580592531124424568531454815157197165357054711"],["18395663312915492712684501022920655329265558259996599147025380080429476206520","21766234748610975855296354546569309520084494739280377912419534337384475556996"],["24323202411301661258599100096035805894740558155732688965373976132027382258119","21276406457307313036690984908321848032816738086402796738294430644997798663206"],["16390287312763690043031013803709736194348822104193887725070899379593491561127","25143429683923946356568223356477805144934141928695588178024177854960438202231"],["25467704642463694943940987747255793612148835202972793287394730264013082907687","16470147250702422550376219705083044947824503380769086468294541122040312924469"],["19245118036044640850913258479529890377718090509960019094996234726205964144488","2783352905438129154079595247062863151845189379650083123576240560719436156744"],["28591544423677859505587755706530407289095270856469811610117397771692475900921","8440682956487096234510112308898253088321138099231132554839209185531500945997"],["21738167450135853350807065176177682492634073682859809931305410488280344458502","24410818566635964404193548795675274650697156880046853733249187496563296105672"],["2886221250706735591716558502091645828439870240360620704997064614510204755653","3817005869772651148416936910262008550138358200214230342434995056563314653244"],["23263037111287004361478932717374454997673808467587552416087994746736075430879","9743026473436666168220339425648190207522153647495725468252889908117213094349"],["17661618845687616417517718421852880010353764395361555784140346886070697269288","21234640772764166935993149568029945893923028801210756738862078913942349169314"],["24602776921503951831867177084436208657334863968583028746543247962986229109001","22364733965670560217690786563175471786916799373868049126924650561355175508615"],["15098642622027370525539825754983489851996607536603048835361865998032878291475","21509634809874745594154926840239952543737745292308710749889144335034403610346"],["25499366936714500183719313489536750329477677240453843163514751799623498758300","21044087586580674428447490209747296959853943681334960358528788540679998457940"],["12623033523600737552984797509733993773766129038597664094765741635523644226039","24394490984558049684566095580698126622719429709027802014755909685770552344904"],["9639091175838245579198533060967149684692291898031841364947897186302211588818","6919473291079026071091021982961808951820224948954400763123485157827368345315"],["2053806575023684100709763653880080144805407210847397231543477489681180026513","9565473761080599273647191215779352156583887288126892068853394565703035659065"],["11516481343070787564898509633597358131109494357749471686428527604804243520786","1924322070980631928884610395285625879405521703346064272557470800159237402076"],["11949298629465187745606742939827990794803910728315730654229470422239030484334","3824262732409963706296882744305807727044400561032167830871549833873350331366"],["848577417744011490963713622598810641120287702570461175080970677400402058116","22516521207573026277139406485685360244326304431106022819218165187644765746041"],["22632649414335385168970438863028045313623617622054247546060065885282718941405","28053937674017981950101113832330126839467286746172495387513346698030459022261"],["11962327540452985370007514511217613502787549514045215686360696478017475480538","8958583276428812688094777978175301338786534617950764054453230840298770421527"],["21134924482386038212366734270392865514865053675881400438049891997528471418806","15054074995059194888221032088335946955033485004591742168571738546556553746556"],["10151598665979056834137370538166645688471682123291422542850563071462969422559","8608629112556184251019030655383393525984096595581820034180534905077475972483"],["10512122827279301752817532168325863243815680633796208962003766192352895986414","16828519203540098242453412320249446827945273899638764800422197019517551916931"],["20534808223487286190151389500590804867180283387271662358093344507487724059121","17710227942102136386285495189258686468352937184361518804118641848697781530392"],["20450692873859759111374983687742043428425204613393504321725400465398164712741","12484156687303497495811721301910778818102197387483661760515838224363680666674"],["21311440958850791910096613036727896653330382093028657851787951371402716876912","11530519692468484852932137095972805622007330104307880696132222804711087516454"],["19748026573759529014376246175804305272119084255291482091916595704401928645750","1319390526988590287844162989229410765379422071587256351852049950910296641499"],["2046504449664125357403524568120582881279731285156836250710272265899969422530","4520756247206257513272633169050587085343236344840134475804515121340510260983"],["21634899452582413015784942358875680952470021964152690912277086220252008006913","1490685751423264538483975311597049749324952542359025462820278814645713639173"],["1089877666016436883817167505783396301443322871750745161783371030832511977357","19761186602432594121530151192551357058173627478367876361839860596270316716077"],["3708778730164472068469655826278184661704737377336251255517028756413472928265","22675086735933396218258430059982055240862072741284664730951563459349831945495"],["23469723073189128742955400456430870310424531308386932896798061917875868088865","11586829566502154629246328584920803921145228562407411380262053157993704705179"],["26605072047052736719812228182590703423040357647681505049163641524335612323721","19305532351914340168843581599593312981756212584380188739133683052021577894369"],["20234201439299491826523259432788180825419824884715707987381140954596687064934","224529482030570506312447622568604097932212826371834473381588087417056983932"],["14476787606217622444336609168229603112994295999302440199392558459917113525572","4032679990871774807075661996959642548559463228265598384708920715537681669799"],["19590272656428636020611499672473784211017455749768874681418896156929558538420","13331793404183060659066911872822374927856577386195750822020082682232425329780"],["9052003401417011781335178897546037993827894710965490626302929549899334607974","451552810982341828053532464656221493912246813256693570737443863994898143489"],["3131642172879642013267832978703413830533029718167131385510462952760394841994","28549784750494663772101886397160673036772927038189705622844671906633970975419"],["3771553765839353747080988528400164123903887169958477131500770398991921316833","8941484932587021199377354301432255714992274413992791859281454512876754592097"],["27047274561943579734883531722119303469045053977179130363297245119751902525168","11832642244658055777175919468230021971554317062605886772492192501178557258743"],["25001385065217403716076334257882286292378758266880772853992059267797669054530","14314939956990012702509770189834194092688433328127363674304548039197213298663"],["6964209748218976729263548139203138945075269985627691851289659173134246366011","23327870588207140035881948045438087164506090561134626269440436965797160342786"],["16842012098137397364329301348405455272873760781709915424546454672154692020441","278936131237323580692405570007398478888195166760204379313150968046363281223"],["23344339653912711343230470988579193166684755227314077445018045655815602105750","5514441628414798124595832298221325063259671789017674720196778481955191164445"],["28214510136896950498712415406372929905965614643654203067645623906915708309346","27308156739686791102442349108114678753254239501147831904335891571384631447684"],["10959797049917202065128089469630704765619916924570523695734924109884964817096","8299118975298122615978619246730277030988768903292754890736908474779026148754"],["7097151798656219323964872597325160273413796961863994429875345246271274217994","18304404042266984975739437673880463334908214318047381041249901670112202411724"],["5003078918538033798363881419886085967609051240661681369480400622325039866063","1285944847001550841549480483664899235544707266247001103068809729282940952840"],["16138322118201050332222674778175351189937859266227169224910852820572648311589","13906590245323203669706531176252687715416834799869749459712816444892545215092"],["21429857054826753777071904102573006546276957605082898999393248567383415460547","11284620806747170653840616503825382674212735423796255232637271844968713729403"],["26675498163847861674175385547486602218443172228020291333804357382796748217294","849459809305078774903609108098878253462890008354950077351106234400806173121"],["6360023447699185202327866790196931848027064414260090264481019390708237924448","9215089450936363749926926207597487969877556585359370226353691151336607478540"],["19611362967926539478608863573417907222412859959692978294282252966255493072977","20858356680642277732491612579560566848721505465966136597103626296139191108221"],["3296651427065142282194921099834766347449937660918291661490392369666448197408","21363193227949127626931195665888399251943888529475782775578623074718404416366"],["19696010413750697608333828724582388505765878113634178715818425738656965800854","22356183171374719377412716256804681604891466257127685796198436135280338356418"],["13340458442196369215903264639431595520995529695346392441591853368398749704736","17753904597190990610316027702422590743333486529338428742640634746931491701600"],["16868692445919660381451647439162266778169016542977100459472472691646327297752","15877580975430547893541467684917070045153739039535397624172806657842002634667"],["18372500937926765272396148060984845025597817589801250739221104634524095285118","22941225828908269935505543649830288555129036525386090082594291278775058673815"],["5426279407809781583915540832187599235469111623965369806249234819803773571092","25051352756932243676762849481533317479965506715502415358206815452706739768023"],["27239740802303232834262558386972485886828141808217123769237137381305944920421","9288636896228994323412019528835990598203166257891978135303394430604834801180"],["846800356613962046745973940389226546737626074732036129310160019822757916913","18878448561445002390596406907916254479768132783933552540968827048187026231401"],["8617410802117393864781753860242330694836158269971341046423322308151151681080","10248571958271846573534881268949176194702379178193319945052721717723555363007"],["11446437055900826237750049684677287214818244445282394931446649404844792681606","25793917392774764868184840356933418856104043137265216901690195944466123501045"],["928309079412285026390768117978439817793668296335518922078742160327863763011","22911671124467874039921580004335305308062808865744213434775951716276530304014"],["12250957332477369574217819944949937005396240083452319431987212466964276319799","15261962540820212524294378213412758047029599151921270245518775099389066584952"],["27080521167228241831412383322739404276310110750256716353315781276507696535695","2632736640721950996142060077919920343490916656848344178574427471392460090076"],["6393268488630740362314374322240649417537881839618698849761421059316996700828","18194253412982062280320482797329757079377547012067528806894706213735521992294"],["28226234467781905836964997043698149460315900049791815358276082602321010630229","3797575928620590120964213459202525346652822154181974440335105506074157840621"],["24150916708573878036355429141203749385375362194182995360491871573946326550350","23978949470150739156419874902434233132302117429063907714349133030061746112497"],["23253579584311603849727479868811295688590673970498143145649044097892313552532","1603087133567372854186212888231135252517231302948426622586622426439406239810"],["3798921310066209995112220650810436200296868866123281637396133041919426933660","8403736633595087899784458288506032639115024056135998646180561660333431372205"],["25913010476442394056207803907488851292851532353628339312857656796491252213567","25657335854656051901784928287483146765848519340608983099348933617693436841167"],["13962905910467545702428473963019189027229286573383612571816792687467047204668","5245183727822426887264313195049115854210291802813580907103064501228894185366"],["15297573884525632382960282447076980055172414180832537411219977150792360948782","13659035082843531679115025560514887527179381179239075366827471012188405362578"],["16530504422135619440060125165181402016835169772374957652122648628535295262196","4015347360282217198353257090089431586341871321896880072302233121519467564119"],["21705599208089175113886527715332443273737235375647174374754959731026600549893","19785810547455132368547362462379180336416231544728617363764448387343085769555"],["16183501559318242727728312100664445880625150332423354330117316543203473345572","26452888285426035852809286297815592785730502947856851345850682958679106322561"],["2487076092028827593586202000405760678347669740285271677079080096270112889735","25885543394344935855821500567995377985948639247020106001340206816944928802750"],["795387894056004452308422982576238455258027239628051236525386400212570557600","2305773570558970574628396640102863750431075781928222750459115125646895517448"],["4637753749017241274513589229116206955668781277223849510263871791593559757742","22030868273180258536764801802798960981003454586572838108361255639251819131721"],["6002780988218153178915888851634500048144181744492661443296965572677962094238","3069149740692977579130296675453154567702337840126076746776217974991073950069"],["24562682381607466741671268747942392311361259542536094914049651663769104766274","8841446387393713890115068033219211933443725603012855770946271602053564439919"],["8083336544046599550702188730077198176031384698899165885235738566293827501305","24918520466950357364727374835533696469632904943205977875023598593667999122220"],["16066292496859874025324490451779705884140557661717426215571520954116467933608","5085179942392379538310576714568132851039713431250729942341935272970951701043"],["17323785913980789650706426277499437633660957871399913074993923202828808894269","13273616037097835714804929685362578464850319978191495013522437962788289718875"],["10938564216358708867385441091790516191846850520706714462931033642695156014901","22400707278089827127150272133373615990670120809177710338159051126957144797252"],["21076363277045893452242309008363697637173976316113457254757874977383909379414","27869971942056990318226091025638918653806857997181988370344313124187474127875"],["3116682090800491269563252212050336984344210106651320723477306383075438071648","9593327068520346951681229458974327588769294543759166986887141641941139463894"],["8178848170442059347917826842525335086267310164695094522595660460610135231980","23063163984188286651404941972444120807378577699609128440964483278922149356576"],["24015495724037952878621520211603025042522691242926500157688590151206007802288","273640534651514433217866455615022415132335615692137057697628584562891773486"],["2114961146376739094388295890321565516521715785649286826804714387100087707302","10963065978130127321324356616122016005610109440655925913245270660763776782520"],["4140819844467088889030469383822508510233059915724922085107480020952896079845","28221131017787587433649717252146296172117971173604304846073727699566469603416"],["20156909736728089997507939421838831134958623783433644990774359837003429158508","3321623480898348301749010008975628073307585660176572711522213063527507910780"],["16276187777705914028224528894436544873788050886337598652567753897653469162208","2488860445437282357599343257351436223736081189458570012542573125240354535985"],["25877838741040336638524119732464696990003915756284772898216947303393245045089","17802711908823677454437910816280353879104879824008094767800140538921642585985"],["17393051672707544617089657351648949130516186463269033295292299628242079615940","13914354075296055775619263015803602320518109636288345492819090163689498125751"],["6718954712636762365723255490933421730057554780955887085723462104119779955405","1612476747769004392751311541206663735721751806293020975960835372188176498497"],["14335143777380369051138060003110360344337814848980653058085855238854941772457","20803685803551359263836260425648322463129391525689172834545818752006620402559"],["18118620258028839024536690838277433842843452675315670726185446582558933326399","13158840826785318051917585910175504542896261490701609147156431626989972151405"],["9397663152921499436828694489696608921582222089680525770337853674584584419369","3469290387006458889121550997789774177171873268237598346305699107598509552944"],["18976196732802326381457038337641414754896093419005239785473949723178015822806","16440157028771650845145399684717856878211565712586959226944105895177846809090"],["1686409275926378073695522999975512179186764906223292740130456341685794551957","25647988623805933563143777018924727747747656214962851909368508682017515836630"],["8336138471551616265525565337350216514769216967109684196050795447160904446610","27970158249250602166170177335079120825683979247355929513017124997319101607790"],["24451634025488709074104814320587731054721124723460255234721015879664036050522","5859897361988273472805254442350664129991817555290891165839386706237971343732"],["3788529496121711299558213966681246061299568361267515962976814241757347431579","12326123917257577810714596884637724450304840299292024865260890105032685436613"],["25694616655598502280466759915094343419121533450185891389582125038094030180964","18073874196025611455153123904937124388014155590174436569455026159440081622882"],["22317816239795876774824591849792938494226639978019291939158194134505802353569","12391425176584117982532761009810875030925608059866835030536740874681510999499"],["19046407738872063904254778405980977543163962430006976625658551364417371544161","6151442316442873991819243729967404088348948058788128359043758087339206019162"],["11558175484710737058367826395390501619109276995464074311799854574777887518308","2063114728208301125387374070587062708894596523915710054042150241514400310078"],["1675190133343181357356309112621866292148348942428653611252222382806135753950","9966214683282691574689911924198597298013370488465315205892116200352332160279"],["21917114851690486601934722818013517639087655457892074825922904582061533008733","18216644177779914602488579645394139290978432409489311210928354698913006714545"],["1729071567375781371158377158771730994507492127419310800071057919916451344122","27803915210155158616045292177396576642450672679791963728798319605412186455311"],["15335741845298628819599544971436186232650811676335379667476799581476558537275","2795239586067469341828930404537321791661040039612474485356465654704365833577"],["454310663195278866610706043687097253372767213354047419539944844184793068181","10122915094443888401826947008182655920325390207390145182527389373039416163100"],["21820797535965161403305524663421811497742574981756123590625134342018208817343","23992088364476294823849866839777047965065548955884085155158720995622215219248"],["22163554216402577832409065187347567025719902922841955307995988674173405117528","16255496119583583533751816897946437067613025038747399844964251020293194743338"],["8157078594728678403175747309938198246822750028306882171152249056931347269917","6046522194497366132489096053514286726897932754080859739536292605602360151439"],["4701334059962546862827714848891365734984958398970267266388380367958344399482","19920901565446370693984622417096820892555767859351858428931882026867557073017"],["10626456013449441666062698071751902273511396075003500418035509469139636085250","7381337907087872584415384530819706135461308753197620555990404533925127770486"],["11811979224773700349976572878261197369414809758204838039380000042309653327205","8787970986363095188978704603441122528072077654400183578568315333658666464236"],["18389295495799146752873406914371877817968347924474324891402004191210522677594","23700047782119744844486172796402484313409018160358929754128083586296388251617"],["21384952798673871776326101721329504787295089446002006474703784840228123618296","17767697177224097157855622812274062962597291949844808772879267587112741112208"],["13262800825449942047864979919511382470115701754005846932397736147443024964479","4461272326996942745210148722318114885797041577895699259113203893302507241599"],["27144893340469608935217798292888861316380858585328447896814055212448225699986","13133774571209835654847459732534092421495609120005176864521724943444448598323"],["28733122589232921610060442395402042327095987326450068587707147506776548478961","24148365856895262060889338248094500294243466464939150183163666849736406240941"],["2067136846618738628943203815805203208873881128580309626214721841547414872055","12367102069121450945430008307919214948893584479084848447619891930355282150680"],["8030338276903831548538807790968635157724308454701541254887366176762343580192","16706862258701017483211644977967650328502111446764647101070015825233809221258"],["18000394921864776020961746333158239165435765185720802795054631222314109108994","12940947730921354631856460176057044081352976193167227975728153035971178762115"],["3351596603618430420250249943370344726163605688994983404466540667123213782004","10707924363494737806160569382238849193733144759469433678728027613475160673264"],["12082183855564639950197643226768950209163142360756069875943947929269249693476","26355761294225917786815522333628274159229383573802529938453923926420302297787"],["20654875701155316767583026476321419056255342388402113152246890213532810958786","8814791707408885127327961184575185697526323809054077747975219981435756398319"],["19725376641893804134089430319574868723023651709561603824019646799887594756177","13698432424789557883365133105486290662291156881655540005012186345577257865700"],["27901840727018944814711331220492776307318032997457124110987563867022357639978","27442117500598215859293433165839823924966024122261726728138614449388976395944"],["448491308686634418629956699374400393591560906321114283824266832477487786109","27235825939208940651740768348229404225451046552404072236853959404570263793490"],["14452342799221061029351914656868407794201188790570716384676355278582447103016","26915896497869797816173448814241147962003203169841570822759011701263915466441"],["14974189261586797307139108176920755750688359930704258463892960502715122073390","17694874343701703646727789845353088550453298556008936210473614629361560765799"],["24347449832635581651673380371043312650536534888427280866731453255941585166547","6515932139107897299505705601123417652642869662115782993996754476499127194711"],["12546014358653020658584675792468917198329296229885206787506653470592586873215","1732281746170103288357040305328623368469637352854549096247241135276802646641"],["27878486574491378560760951547888828501106354931795712880107651186821192599611","19113611529936483584826796777150945822581595646142519428600622662898629138431"],["384176036998444582010983142790368088691050707001646034976600335196274322263","23531090332890412959162468257296940908664076520398598783118259550785966604624"],["11851226850140904331438816845412288336420839841041385322132424591548556784222","6511627440779382171911574858271693719553562834748529514896251532364313978462"],["12130022429573813362245767937168414348626646132111428162802580810706863411290","1322124675177173422999785552140197381543146084291801923572655132276931595897"],["18846862397940043104321820814961313971016265887365359964457988632824211777701","28641092412840584986257563569422966550340288862406895833731189060240436877082"],["3870850565244938800950239092934544840845848468617549757964058272135688284404","738973326069544156753072590170410231519979211831357102910654518031462974759"],["11617377767206157865478017925448378915918601819294573774982333659974338317944","28212219367052745609700504701791910206556988033687074671432577915021155869664"],["21747673336552911920170111919862080820570870114362818627749764296483961649649","12237512073688652642736708239618216748751197608403140705760501148143247784565"],["10515902345321090296964894764623460902842977119582972608587383483035389972917","13076480231300927586179263855847032707208406447143611841649880654720639325344"],["8282980569922400189487409278439735541195522507389781020134191644366020863050","10332645342726433259209668200501871656302767569734428010147065361564697483689"],["8275860117232442557988381448978402841241102411122353231639937677667515379114","10957116757435729586785956890257934738900873909369051443648551030824654022136"],["26680962398766995346654949845517670447070994234511151970756301228126574997376","2062713626926739578802096499468615017584830672911166215254041653026572888359"],["4832502002796618816239751904968856530890641640713498388783786889303681705822","19357426024692511319227022908602194566418011915202330026709648637369099687448"],["23461251710165927915211041054630911166766873755510354059672895685385824180231","23956986214441494825883807598247633891209480246379407054950307813510473029372"],["4172965144943923526854419123786600699493812777735499199034120464611322067546","11371530245443763246658005244773222657607719848465701559446341617147997771694"],["14339995744466340135949290213485925786138505238480298373439838328521405526717","28149797903207689475194852626242564386635487747101214998462968172966113035010"],["16339774461534786790535377281443391665719510829869810620320262750847197128608","3905563117791356739326362395866118621070418120041436170935596264759085206605"],["16952512386501461057184058919990854276536166086196072154894486826808505134178","16308717451185013133043288182709535414686132032974800473966494588347507996041"],["21097576209000329101450406592202464987452837572462902973443456141771566246476","7635411104349243919641999031773547757066075280651729301539264520794838885905"],["19582614691124515889680085846374177743696796759589600101943935036221660952341","4322939867681996861286034862573835952555675782283245558356070618467892915054"],["56023712496429731209278386042644787539994906028830826470885161094251170501","3645305569432279170662986803720038916528317979129690160053191562778554272132"],["20672948057995651555734536319309955830876600406291201171306549516121566450055","9984560470896190180659002478566928708064354576804288371191739504712454971228"],["824539320672235422350564668543295614215222562615485918626400943036684270804","17676149158393738115819020017044195315416707462136662601285367922253206372695"],["7990109886565952064217594651705076278555720970490393483249491639807811102004","14976959505399425346475878107071560612452896714963213418836565109575055582331"],["23312490721653774098974412643938096149914246384673309960378225193240218852350","21137420701275596552184689321248237206988329944972352623220907027874576425192"],["866731067742751904886747043348678539955398702612834920538803888375430643461","25867515855767925504858857654992963721270496946245276525452772944731957604380"],["3330869211689424247272796412305134452256342659057350062759211241238752433518","4262031144909933928298751242679969898317501000454160284278430564034901644329"],["11628924695002111801007045341347550687758265128087097989850090616008433201265","27868762681498456448455848272521998130505557042213310732281296063842013944954"],["18331723803595744536981325759593948742883375873637876597210002212353514878980","250323086578349071684489524053982444626104076358954999034616310023296101134"],["16982209802262057154589100766262841838188594245033694100996123562528578011725","19701398880249854360781974849335624072381801538291098467113679940616152526575"],["6368387468273101448668902190303508758807543854585228633635622858159004592108","27931729121740568313104096427158202213976399496949232882243811868950935635366"],["26644045342641835302148524894571879760862331015744690657165286768671164991229","2021755328834060689154807236167685595250249678088870251113753142109929714005"],["28445324868666928697813479705685495171948476115285308062582459420404322252461","19704975745105780323810517369709999339061129337923205669198606744717590268983"],["28159647381202474455774249353214639702675891031298542813286461982049967766084","9855404939247761718044416853639992693554370177782252629438153913862012689511"],["14510397494305188106518370403786436602867722845866064332584024406833423653138","17076815986192052258455507696471214754721969079660230362995890452137148763524"],["25810616991317215834888242750998566252916178659299499204800496807554650006105","22858386277887458293092425651568696356405751861767587894434534611234418467495"],["16051542961475702182628731705422641675943143433760918870775726211145623919159","11765666885247368021223135987106575170843941445412604975261585043753210586486"],["10605366808702002988916056617507486433000634752928114223549339316819192496045","11205100969581620093329739575644787928984467031437257233198527803797930754957"],["26648870961944528487942857596445063877287092733385690949347613418574343148918","11552632381854202013024499110742341381345395689393800939597783931924430159533"],["4403571144278103903548861237802701790136883779245891808961268891212478406443","7161154117788847775054940878396233026099709221758506660958807844404360764740"],["3304221541987011031891277558460773474675077337487815976608439839121374265390","16506201280513495652203802217850370275468246635992380005138444268652023456846"],["2686177178745443943788249656089842451132148438155761278872158959854148303879","27560203960399097113995395443484822636905167185403357462449125538723266082787"],["1138485894740683645116837685847206950335893973698216253579521341416221206630","26345237124358525525288212534200055211025873543520377412958661965664128393240"],["22274044311294991289326263523492565838126752568706990982694330914835088932029","21703654916307681469857972774145514089485850376187288425468661966879290733563"],["13485236533520503444222235865884496151560831549246213344064783181320698067662","16664084269702637426755354529219520831436323752991145536385687334555254884199"],["4082123719664658841938538463283683474067021600903131119947464526068189071330","13816063938202820270541590899923249130377097128327446982918934834959514362058"],["12572095773093168999257770594333458796288154539149579478518687835855246003012","18712305787707340209862445118863118585116195264898129833247259166400915345079"],["13594483158509081707972177099095365248403838283306655251636586828955639171465","450662992606757229588062441643268772364711186851205897695258580112572232337"],["17092172116814026799254793782617650007673291669888093083470188322174911681270","24451849671658476315760378861020299048062806146317853172114168514447698817232"],["19863720950185211341932069858224009161724725892826740979792829580156203244446","15695257366264729904792257458393180495362944261891812595980830137479962648195"],["7365354062677732969929214499499623576939634686471473030225086561115658620690","26602423451437278583336368097925107419727898798011527036826341957511789968954"],["7906478342391937474400172988613584094569085369271046680046727727961080448565","6041679659121601135785768650593734046388097604226433178474135791197924517583"],["10390104067439184083230896318945859519622871700660293544285923201920993145740","11034681691675009036562756506332406136202319626096852668341949885621688393634"],["27157362674092223107617194642110923350166697585389954321767757945746571226466","3084119721602708112240128366465566627291082673354478533763180095070581871328"],["7838579290766627934091990725971047727223478867859086696055880217959811795945","23901473911468633044034778042306482979647431203751632238985649788071972228713"],["16409549369112837950067035757717853297276123793612243852851641205500024844881","20776067284458114627064649977710532723312675094523340581443335876171081247602"],["26234921353664967454893830285319221539916751993738497047431570198852369956966","8668353988592279989682113614370925451359639163041685720735116488626405545744"],["994785805754799089115814763746075517498959310783720714792528227327406809891","6565011044585518859086215974293750991513594820232758145230000691741187953515"],["1742195549536320838099956067602144627910753628364589208541805011694052333517","1113065842549686165596030214366363208132892690484728067442536935875191048670"],["21897339869739389156598939795093147133696736915302980309096822821496851274730","5160925264593775693054800319193823872587202123940865040346691497321067181232"],["7227042783409932144066643347800256404669480682199947836724504387686606877390","10054574631240921707132804963961959668618047701922271020936905108151968603209"],["1387580701895020732518888993952969707062581182284155448263520676792111864979","27489370280397942605215375810071649238239689562638608900399278439709011217130"],["19917887332716212712791476217053030435289034996030233896023759914475388384374","9439415608160803857885249035168176797095152174457672585989787581207679547956"],["25763176058110143945905917991318405616196224270192638779732455642268468872191","12958079917448356320594047228091650691837931690529969808920993309328720106865"],["4268232023462152039852474821705743286054725245937905571412620718197301190133","12894670096152942940659061324658456865423796513492024814873393263190075508560"],["20119638999811763975651590974248024355790452474885803235562001801909391433059","8974610210979633941221196810713825327836881810843696228561452461248333224334"],["16128696080786457804800093668921185188129097892994729456817412128191255471918","9714949484106597373855269487996074770124073209070449376638670019130148664931"],["2829178840191301132737007177797026605684532577121744993720404876050010285396","5195672529948097955935725099270637276843657409825339574696014941418003013394"],["9759096764470317714946710792798033200429661108515626341010074450227756446263","10909884651529663587439755820136052724535339409332039332376617325221484620530"],["13688203454263420652217948943288528178305643283052434890390992665407109406919","13247899390688608730035938025611778810495335495257684099182279798122595243345"],["2422159886850342997020077706893908330530141809789874810277273805488182599114","21969166302104053531539230041853171238302940444531663775065228203153988057999"],["21389218083544064942358716165895434203713490437813250664951400149987165094678","6612432028600593261643613978155829840513123579473898151986777214985850670381"],["10896284129992168544652087634775144254601748025558658220857526203447960802957","22869192716222349983074150176665939823799092260577192376543453931114914130458"],["16687534904541008340180425866950117444808096865599248274003687395524971799174","12638857919118275474698483886402833379853193183509030222872720301322247513544"],["25350388092928196067057601006774991571536733169931225554359550148780084175761","1567193923002354016383317584088049856079846186139492501886595179457998377235"],["28112583307650925318419940478988865624038492725194446924014329857946040999998","15167409705377035368236948402443472812418280291383629834087492177502527326729"],["6030410910725513947499605096727772265209062445132216895567566071502803626388","4683234962153461207228318626743509966483374851395248224017530702573845433199"],["2068930264471826327359246593638632704042178585562215621000305126283643905307","22032084928629451472731446143816316744088686711789996864283706967661755658018"],["6443719002627217163646070772977989852823756198845227075420300131751514892289","9824204007045303288038693299361969118397290357891386478260620956461085882623"],["13327016974990913246632758194995963982230815747541622821865895923148825729111","11855061253465146787086371622982326596657364915204267456059186742848974501417"],["17431448666856262837122683198538796790702172887539165760502923995653364903885","25254944284532549824200249901343891744617302897645908520971346397545081689676"],["16751657866126149781246716896767018710984472324597347539869631386267247376264","7319656474095837689971201258833685005561939292483185232182937329854701280537"],["3715798996150374504318785074480050917355735968096831191934333177462196311332","28066922552534428627772549220724657334120742607202327479513101149060099165491"],["19098121321211495403921707689806187191781767003784457282245379160318259271350","11582842514693582082629624032717063546050907725001996670887479522231503105762"],["20636371162822788478438319173029648721359413344438733862484508647470307785103","3669717766570199892542309936139676393664768285754111684883329803603694140617"],["18484203235227047963366309296439309134210259009774374999668316360051826104519","17212416758739810788331107309528049234350019877925943272879304096077356780384"],["3130786268682334517469747160515313324647946948150711926752677637744881283389","26406589969957297188778685917036125127120007418560704532995760089555306421300"],["6192386845959851629928312500583283321164409916672015556759097341510275951042","15353294765287138944407851543297813501428930993314318295691011971663408216607"],["1584948755465837615462200221060779601377977717979643039194090558026336533351","6572976991268004863958770363113415311228557761190590875104754241247209731673"],["23664959448927760963372942752108664975887748115092683439637262374572564280097","22845594113926922167452583531185177911680452337272057302363325185620472308619"],["12925369180937612626072801357192805509488192696144008960581570516817428917022","28300955338096626444953701268183608607419445988591471148170675105838754011591"],["11437231408828139403438050434524838016127346586296196225195914416366800236121","7353576973035591993663457422924896350257265449694528026324978795403145538601"],["20300460137721309585470557147560874631130191159106097175056440897709259674937","16684503081760585744336005015179953949575436346986235583863482849106694045726"],["28628019678842102126135877462128352972562599252813085988348030265142848983321","17480742490769873323767085724608208306450491309985224863270049322389906406011"],["28550322758272878761233418949099220516566643195442672405889014813433318197852","20425649821763151294129870360942051692699764261553722814266071516127974952825"],["21837226464416568847775973000229328379109947320277214451430831886804020429140","4225816933401736707157145633594607197971520465697303499270197430638294095959"],["1239640326038857092395564763096668630432016415204697619267362679489487726274","17003661331969527111928612742058399502790903251715930252407566240458859021574"],["19022767820977829823111652886126265849341101248600246871382029409876952007445","8917439695795876133071921218107001939215978649259700008460929879575667773816"],["8341187434149015634906991145728795678122661063034324230760793088056367157324","10574440617193965569726203628864527771355705947316626242996505954591229250028"],["20512024812493202935230296339036598719800579954051716148258389567025307716142","9142277713244642492324676949538090239266665476976129575111037390134069207072"],["27078451363462368355448946895890632840457802640253022519199242436621129906973","9157527717464272743787699055531393366712253848868172372054868039997543048772"],["22972398776185923747186395519207373956982691012793692411126903532842926377898","25818956832701197731078082868413352643263062123728285827572791541835261639810"],["19428843992003650959696217477901065920285905968282601115572524086440409984833","4379722165076969064270166855983021854263865579024886267141483181325927464890"],["7517109081611173875563508802476370336656612899051857691690164524289444774093","12073518974703874327024491176280329124849085646856994463127846758748997002317"],["28155293841825917691748558925649549844685958195922279982602700693751952314470","27410240321659569087597506459434899071095076768148401731848425882593995588029"],["8462602686524277433521619399277972810010647711159093952056955763633040200512","10994166634660247129620024243953489282000503094629801835943822477373149968634"],["28126742731639100365133792886295788928031088936070035820086281120340398718323","26725703678200772753482965270453191941034135498490938057822258175230331958334"],["20486039599076926954317416954704162173179820909900673461147049335241871157110","27178753951614470078294372949505937294344838777671193993416802071166919195475"],["6532690256081809985872282688280723242448647905532794994241601011832399514955","18127450864044551758539847271546919087999371789281202983627963125831151617167"],["15256249675835423039274801849880899476046765174302066817667172914832187033773","22308462465787219405742702543048924501422658874900860982236171271085923243058"],["27292634812930322289003528960245044130751710588229516056007155890853804896953","14463076954184854874148151691306979196031074968741504163264996041754037185916"],["9735373218656728736142715051236404046339917795300532382549788557293112911124","6039193970529244701783309395196982371767635684793896268057793030396858269600"],["699512360764367438222099395442933837115531548899460743420305050580711046581","28732702848640725016022153830958867514049813878612397513972821339762159866515"],["10271557347782479811150695730424455639535341365056029546878759387682793015953","3186701011084095994387579393556123742224653386075706456382378988742838954297"],["1988549320054466589018834534010569037018195879734490941387875839786812052747","4024178706833834709533088206787965458732866754793966537489598602238138577979"],["2704867381483787641045927285094482972444484117340067206424959322065346205259","19007833780789210320128007340800809387072100547930879005803039103860666268682"],["18698356202973477770299737979566017660939448519031804591487895797333345211812","24252023716167572074780977180519636457706941752965518062789942971923108880685"],["23268955237805787734804000663505943651809113780046800286020083198563220499587","25632448874830957063259314798272122115995472586933172858955722828094025965800"],["13519895042542259983168675972156431074251100879724190009910068508451911349566","11942084758512032420422378305798415217469450775551896605835353320581113761594"],["27816436830444976096942231875721386862429673939709406360336222896420560436155","4927139287701512169343925457073183222235090510205998794597222532943561697569"],["12511817466145186223638167417465374334258659738421856053787480571449432281328","1475716368927815518955247229333290412858975831644555753162210887530283558206"],["21473290009723820343753490699365305779357062527381170259219652422191793381186","24889352679740311884206478540616031926268865770223241840356377772217619911309"],["22691771252038524674561175790478812214441508340464397056651806606223700000264","28927754057952875609114555503036019495934504242995680391676318204391763267491"],["27627477874310040757559469616229782458786695939290921760978621434204087139290","27960784972631080282251451223311258435484669254835774733569905436250968826035"],["13787734969849468789710373583186240305373100593076841755287503192053810437495","5620241706748878132994379762280027192283924639523571542161606876857164255349"],["23930058711430675450840516503896766897292448943427137699394734134820096894855","24016852936538356960003568329467366262324555749485539054969167902717240048706"],["3906243973113448953173156738010794684109037155049951173622742164659532197647","14912868880547625451984527104926859059134029665050256216981666942147862037910"],["7540787274329059578179503773311065629681290697694348838775124116150641045335","27560591885096219273868462895704486382925559913003851889949052029326531925919"],["12044896667577902542834342281704903500387964251498490015719837164517160138338","6607229775741806028978803675371262455752074651284420757243355262260093391858"],["9888355496259505286689519748277515976435585811800470118701855087252614131207","5733383783313367460232462094367535339800901874462302399473255649760561525436"],["9125386249820942164519189337675872325890136092423728977145636756724655297234","16017806585026471870133599136305769054458738347475648074417874029031161911556"],["9254078945155155270690998171183782466403170065305473005797946878475820055444","12316508566685367635875045448304350746832554894374024494427835047622851549002"],["10488323029048539711837895378748739519712055426759476696476546506452550315643","28095036428072232060824279030662530824393487044950012959239565561401061485738"],["1502059114923829485818417901775046754230554405151989915623731072382385911659","21299027002681456051592245840760170757901887742634854232458624721506298118813"],["11158727269456526518985897359432382075973603857696830049355543950260551476731","25410753958230385589380259115432525534787220872639798660210147236575590482450"],["1563076889818867792029104877627079954954625702247862562735028664482322101246","27922339845005658334198400533812260767239546604570071516300382993745127444312"],["15545543846491110860927087307524635713506780719586173088162680321261652418793","22560342647072042505156757017157986256435218521972049955072693692140799114469"],["26499895661873791241031492604996214861571743572489024766594990209747004851007","1283194749808435800705690209553724660163587918365890671049364158562983744669"],["479279705092437219415250096210163129288795365446753493590455018368477939423","15831641882587356458928621815826196134275883854009133060147572938440234004632"],["15474652298613285489261547708677528800494369662660961012597761128177889006834","2529652217829195386922086333346205191317242194164384411600803959640372396213"],["16239037514763862207982944067103999248167377455600080007131400468830999288105","12965098135580136579708202111705271633468001937415556481050879747182320946156"],["27641847883322124782294723893957331579731659884932577783565940826805579223198","21585213980262176367691425646649093205414342374633881757920231781535283631808"],["23234210232250445969909642662251784597813342125707763725836831032917835381701","26860109328060547151526161355160525760471312703005578597217434387017602391042"],["3346706955754556156601330976081144395242339073768616327681089099534184546574","27010509521095645949327053823970629532748527663210879413518215560636054478942"],["12576463190420234060659009702640964494418480486363041337539846687963052002892","15182526995532956398990274111509863304010540011599065225943048840812011241325"],["28539208630034139573529569187570160570260102107032211010732298841442949283291","11274816589455358939527397734797564531812056644536928124226848001337027264258"],["2651282096595711544395052509387682592564049778221663547251083930511706974254","15503268392535941867072367193009286057571912980354631816173616848740977365743"],["7966770295650632980846111016449437301551403437072930945832035158366612267194","10916202657332580725605020861400685868574194544021940377753982162797849531271"],["17427456013798008356963146149942316717599128578395773493565250027646440916953","4721984990793712863081665626591926182682345926113215658452983227869032376307"],["22549692332566910672489941302993270305657480919608773986888273801008806640000","19938761176326547431521150558975779281822879438299866070033470062186494664844"],["19656620875619611244225963279238953829286879318267151521776530431144031445710","3126318131932951818773818713607701928845430593174033155483378252269304121719"],["9459302777415403819392637136055154607522193122040991161754460077153706303156","13472391380097572046517716512479903875227977265998226784340194360844404081904"],["24902236402442902501187077897996749087462679583645519789612238197679870119372","4655982865820494296332544610853848075581601459096049526184945931416977553988"],["22786800044429591753058049290964327919981703884591602640132011008195287661446","22118693095286700392151674960871273286816887767734140149361165307439391106579"],["27695316343842628585535887078830475676555093718298952793441859119474915249084","4050465160830068460563313246639882280284083748147861577491372033937213145325"],["24178954654941754850378904301930710442366031095849914159821753793340723690371","25903746577831036859110679659045462185316414212156261262901394482027671993997"],["2723109626533800050794601876327450132108932821031775516801537151791296896746","16369915362399681650551419410795801008443208220247925260500272672999014700918"],["18771706871638723166207373331877837170368132187909503172056094777287983689128","13308578775148416109910417610632823806052226094057075944297117021291686399455"],["18371943666131500180175359071938252235420856795438427861614681780051512750399","8447467695465556518429904015802240921015949688701437488415253390124919916015"],["14370867322860910843440858095757604007216023577918733223076066125517817138902","4212949023479794862920547639714290601793151524462254659444297845601993286203"],["2245190492749691336862515889928011261756034462243613132553624025371241355968","18829641700075966643265855975159362338876844148834687286131665499707659549278"],["13862948185818504692284476211092908260742117322074226557413177771560626917407","28698587874872361483466332066980475554511371268158092284602045343215505569230"],["73595807682547294149017821299624429796882342357346737540442141936921169971","6622273045727029978256728796714798817134340147420810197578960645925927973917"],["13164023060226292566315061036002339454483465146437744962498983301736838432464","3956575982368031998925598358622445620884696853789831803219119741948818613295"],["6129606662806128768262802123880262730355441695189844701184272867977808775420","1139446142205236957863999002742661125552212690303073519098353096554657256047"],["19229872497839916793541882116164005896601212050627918189339972733509454776181","16030062004517198886747211808960074689358407420754962602905035618977894855064"],["14508597844794726340513841104915440532489429497410904889706343356916373900438","1159551114005723738146433576844258984513773728852110908370749141662874639554"],["25989943128933233102153403742728407234658891053955436263338834813389064381348","21034958404294547534963478538369341913231853721806591735656731703787313624075"],["23788427799573863338961639888611369044981294517660452739534653384309835843329","696249363783389763387957737099643240828666419284415386764465933384325203665"],["7656557865740387405046594399303157076698840374081485572741686155098441201341","5023722744179633094127913292486970599208391610732595217663681210840089781837"],["25754551098862810181082137667607995883199116748354669076831740334344840983610","10774236615590238719772157097691324222067603238025424602178383727061723663936"],["18733071588746934555633253978531716174964576400904249952547759252115232474687","7812287559980020144106392773608280782376275780611343976492539298559764539885"],["4614955399089675480821437927496725184942877053092464433105282434712992876783","17632025591594021084675854882778477460430850327339603958221612995639152404942"],["1061553848867238843991945343118626737570106420497891578010338023194906418331","23746508037136154092441932604352865518665204607051158534889788889739250261846"],["4076188102696261510085092895229767710736280997497252509771416474210602210189","15742183099598128180743733731295911685084502351511027408671946743680283065446"],["28176337720631319284644932147625507600226960546941746790161846396650421053707","6507198469532400600209788190115616173642648977800187338258957044609111847115"],["7938640680078583587114604227949104935768266371443402501786354838905981842000","14985926946115664438087522824397387636355009416292418858922537895821374235657"],["2907235451280859556221251597169589138597543370611723296844287591123814806124","25381611433858516545193991952842125800793046020941500917918886592274963543687"],["852718536174117550639774643154773304979671527082560419871109950825934973587","27618937504453907765237355592585545212121256106531057959427727582287388688769"],["4324162704184032126155679020280445259883796060779129354141558482036936589425","16313177207858959605428822154729680298899927448785919292419670044542126092117"],["14722348808782739422815284507071173726786510319271567364945246575262003755186","24504740761953343252366538652115222529227137063157616319881882331188263838200"],["24481382861775568556122631264608134252643839358814837237500255573695339764571","17754527856194208531984301997199308744329917507081283750922550561103514778444"],["11831199067394221457445349976688279083058791495718987976953936273941420417728","10857912208059240955881292974181243530406692934784040196256427975779679359763"],["6092354060955616662548518101501669598391465948020825525120012528360153604327","3699719809845389111385699197881652732845843370271847108616136138674520098278"],["8252679686940165806127486012385806378943676423470230731531111795217147316476","15557605795149354563226522257690862717265190299096000701967502839925059043720"],["17778690617830552014110415218114225942508404170017332011630380846907817686174","14837164292781850398628275918791290110896241394075481760222756507202361773637"],["22105285047381757979641785921984208392455773304178617867764643672627525813127","25000288682250023419809856395967148439064525934017275979865989645166619229852"],["1220401420115937471841513932719297383305901648534191487093924465192397358320","7821249920823165026563904064118701993164161200887975319071771786756411428089"],["13368039347580981699549810083755672086949751795573738684277535066387719580817","26092457519353405976949438583899021132192198742245788540403598484855049981174"],["27785414456842187012121574014841016571806991821415634853726004991634915770736","13614023415943747543582601418922251060364776074351176490074765603513812226403"],["22559338992840249880937708843328554436263240183319257707753871449585410659741","19821360879832914335171026932985203097452190403093637348718996614008294010652"],["26490977452919679466675844449659636661483508668139872874648161651679242519584","4236550287395448236922830214300713488278790048563535538322097254362416076239"],["28443909662306888733924944760079708635838985644838590637297414134342833968082","12875351372598830889005894231954029398333475996300826945696061014196560544619"],["12169471098921513851804919904328621761583463807725583181392252568729146078646","7054573077159284038460399511732935122444856076251487525005505866515379533066"],["2233104602406074917686920794425289008982764147621518396075780221750003570659","21886049733422456199528997132627527452688033320678814473013464121700716241661"],["12613553786853943021397263089070447131101640235527332877679956015630495994525","8212602774309207311358809379019822846641338040560071110318020730482931738724"],["12965129785319308331040531335764422892672883645816826525404188864403190300292","4905962102001499132899536527654586421169217428326809233682908936588096195480"],["8922885456056450585448289434350153896483751599233073836678937770672798595530","20564552209262680515176386308671234041278021189167653128627814477087426090013"],["19592773452837182875896689472045422543145692027642624770923788836004376341236","2586199105165657439076359534767803947442468866726916346201368004136542463745"],["16707691639645996335822876075644005410776731023493659879606367890611600983793","21109934741925131389146322988001676105893353404646222719411301990618051090003"],["23450223326245538821410572522678983325295634120593406085750498592121257099339","24979387539702362814203077151259182794307643291957835533976774137602822256445"],["17209646387788208729723080813678811244963321630735567917689986048779078245549","14970757593684372444272820945863293902873703406345999215495284232366668570625"],["10669812246750374818033331514819602272290260162158510486064239476222390425174","7593478152089339583170890609974049082173003291765419802058641352218163520580"],["10658240440957256172554809131412075673771697220158139243529871944838295775057","20876248330488912248997465732421270925984825287958313682003850485288545930085"],["18932266132763263871307150479132013531449853514970320658786503279430787520675","4599003444060200154195298124990936807844589511265626669901792690084455372493"],["22387015608709579489206677866729355524751198211066672571692831768570408626755","16049141580854138358606785992715199750950222027344180496404469571483852804713"],["6430369339029344938024847726817298091978204509913021743231829254530114156865","19432075352624021671050342920913828448580764874096926069553151383691878967756"],["20903489733848805723303247250139489066703832158466044911011915872968662775565","18149302643761908029123014628950771905181818268991158429983195514599254266114"],["7835150785632793451377228021675687654157578006420084172905610580604261675477","7799486299816632364352414519716534457935780718084858521407035820501381108274"],["4873074610966961761440129847615807439289528359163060494306018168973969286542","16556601598544800124991409576985627636812998636886545292261221770222812656525"],["12301554334994734224049548455360711166255980600847464163194471493163524475940","11431864257433509490424521193177040369679564317349314786450745620212151884204"],["24337169073335668424473967790986805255344401189883943405037484326273390530710","18549437424835512780176268006839375502212680751588033616134801303388196356134"],["14357370602659332005081357452353995925132609184759665596103217694499913215338","24200876121240720448107271007595856112757741596419048378775004601561094794195"],["5893896375127277915003450269002652773722901695588871898552686596825213242598","2884349952055939095795095138472115918427834775005809394020347823100295602167"],["18939778723735122020547898319484295746539789521356269572046272876620471043520","14312488363234514808132710181993550855828182045705236122033975207126501296983"],["20993263578135616521941153875647352988609738831124974884168875748615913113872","21472671847999877450642825238472109290377874093223784310800653093725867920407"],["16594117293485840864070299173796011751094366274809603086196304842058246202229","13242830676897216229911832292058096017633234957914299875181419391530907668735"],["388047090417874512065702881449612394392545453749539934930265979683608245575","13122088181491157894108304353820294157389666231480497812425600780240975846612"],["215389723600976171467234833675606269086240350399564728073703999931772645314","18833161006048544021404298131861961361847718436958002795698677945211110699148"],["24810454177435814448537010858993795803794562343924671869777927289253831747288","21822265112168351011645187234554187893252856935945748327685064561557316216954"],["17368027990417351957636111658548378615930212585057069759065788235042352486672","9506044868724512503559110044692471792170385188209698137315331562985548757164"],["28212345996587440776341312235409864601286494964598359989283323801733572848147","27005803804218989241171534946560055388027525898152038726637404949916149805350"],["20355070185889133022337725472352639503061656744837209172284346486126696969949","16334658708438146232715085717934129741647264731350111012217815078050941274973"],["24973275779653169140528393467938282122954124469400080934240670783483515019217","1180701956105269081053106499306146478039232199371925836028107847683828399473"],["4757304357587038249039949562486639240964610686269107946398467366843267971036","20673484664174073496947118668390885916044130766982171511786767673825956344184"],["14749296178964258820743406423197474749471081669918403771064643342209020394185","24318268168108934911263442779156814340797271133684159082909897932813188719259"],["17505500322073854170183532083517111462357694200926203201003306405383212707241","14532516436823696498413167079780795574324008346359383363693236394300128494184"],["4493439416363878691176114516810808290025097648349918353124506285935129360566","17592840379758671786251296131301972131305635786376485432951568074499854477819"],["18641567343832851369918616197253483471354420900436069624563100567211041848429","11529792979597850249199271039146683168910616594422020023967218529068306685825"],["5517431201458094363374150921471014660028134023877180163898981721111362994190","22940736003124243623460081603912292381607513760186886433925519113285074904598"],["22224389539987627666376618264306029852025114891522756463174387623285623214759","24938114806829576891232747968680673623249508084030403675693510539665842927851"],["5027350876784346479679477451081376052114449765405384720442767862186900450427","2429070744672390068997138936320379571748703613445006881865671722060617271739"],["14638741841371358128360170562115509208504281510315495235297737027034681914649","25628034472601819349060739698062967678268758194552244127541950722083439027974"],["27959810912308978221154132739870172753976167879887076338409717020569471129301","22574069383098375680336315023518945106434080272893859090864829820607330370868"],["16399381608492167619451471054453850763874487525878958239399050469808063722944","3357325287531251187811038370018093711498640399639086383188805359238373069823"],["5585521266215031933117533912721975660029280323189007317746927741004406018666","8340405700135085079350143878881253321513870801045355094299130090892517590637"],["24418866166745183185887622485454048456564998906065684601911659524514997050215","22783717854281969373823838386218927737133786537317426032115958629509237349626"],["23429675625544930543860083954779835174356233826325701267228965782586254425626","21149190611935904285571935785077399033520517055007620847352178428086834153386"],["24792316491871713322002261013298924311874719317403778776664479597390349528988","13398473676033901368606927432205445934921627701036291108535854818238978685608"],["24161140887334270506631912081157408417700368390640772173104709429645235546107","13260567489728170950058445861294028080102537394525557840990400600457515435857"],["18225948616647412448924417103087904303785316312689201906546648115132222396356","24710844204699875569894753589569408193604122594595121990565697895183532836308"],["20333792408172238783681562134023271845250975245379662058123959160739087778550","13306975550052676493645467614777090647844639220489799013026913134177050269557"],["18031548383872697891885491233710493995265455300616555289268744363419470735007","19810041935701195456726370859005974021974782172869145699123154892739522690505"],["11806332489908677961185565193637883325562614674000750660507674711324769204320","16067999904827003275831396718597989433890672981586073269160177824383062141636"],["9562364347958369401711540351732047753674417521787549648463265366349319531084","20891408364433140229295062789869388914386791447371014416399838828643342712100"],["13314133354856027014798377802052794068445009482129835960835329235836015707903","22173148113621630549171873330731251121514875902061464301271544817580422113070"],["12198062731784106378299395278190900755191528562159054363646523825845533532706","2614668449550607694298705933056008349367976616474312037414398635404375199345"],["11621371344502128182238609524902351258773073340224609212962742520072250157288","11926968540829208465125488433302306893827917271887829134262756208641864480705"],["23255042876844721037045525434868921275457478722183657367836774230743087260347","25389175812231734141269515363354167952832079579323582425207834930139985914786"],["4718865356943468795579846140645315659248786713401216903209973032837314738415","24787692090887232791680794727415408725490800932562068226464253818264128965552"],["18966349961215438208120913840796677200066974213441859653917882962322830531808","9471101899786468531850015446610241187990277125810412220853895225092246191774"],["27434711450576290057307276692525109819474179566082116004580755947527475173943","27181908281799242328358592651388645369063669261276360871431063890307657732191"],["15416314302645146616096392365649124181434207037237058713452969529734221268340","1168696298832942355224646764888133995409803161915809100850893195272074058262"],["6461760779773937705333152132468123300601602217026941763852486272422833668005","18812106148379903831944479655756872146837602909401928468259465715658079639312"],["27518078197338491676459596085793219002557076094836084670459786108559367280741","23948486786681945159616911305055251793834818290148556746354315161554856855302"],["15537844914127829825564974374112858101364958265129220699773339848750051388424","17726464299747465807211930479272482925100147379632720526923214466005796312750"],["27904076979318815222276707391854157495463367701647891839068471517952946108464","27553292727744150594108993441938662039972273129039532084217856740920832383659"],["6244311534870800836985322051027926282008816649424031154786365754773527020617","20925884330825091597686446924257094830050287435135983774668542969227425768076"],["17079736867201740168349402455347298326051195362026439670210145567937025014787","23370990745474778086332135752187169632051978240800776393260561826861421648136"],["27659797250298343982793846952024987917352088934366856568229735589593409108867","20647280571194105799283084786835270733488795825248625267122503807810538101486"],["8553795186298648708102515750936917313437754457654401916676607708168114429239","28480315228962396605600672322373405373726680894713008446158360926160306955078"],["27220017669143411045910598468181617155203660366289626563240223525590383423635","22207573016077048044214404266743391409335959726826384760365769190312833735827"],["16853502600721347931620652967845480166448284710263041383011160766965475882704","19831613515973479042877599246329854363183020010671880203657885943491212191795"],["3900676476331996200679072494824671083815980781084884837367268069503521002331","14684927824992679771967282441718630727725046486527575064324847417849197778615"],["21862782670033260723569378747075942106403875123006195274113311891805850726738","5517908021297577439400282298727225156224910152585321489441225122258647397286"],["14540019777527354066578721217694814410625740028346700354874561392227000646868","2919439326796469517273806422256902560476417648735383465153281202085824197445"],["16562900785137037012325598863085832722822557084945759493043589676336263527374","5963257287421127076639448287880496108885962639679480559422697833252817992818"],["1662709865060731308726785003722072301770161551691571087042096725968722435779","17898821344431714757740649338666396597623553726490366724186749563098927360820"],["27475439346006479138365524190101950091828145738368740292129276276931304643937","18464470915612493484755815910928149695169375776524716914660971452284432493982"],["11347999481345721940313346937812984968247413948313636682060993997615884009714","16022345505800268825085496585008026576549047548403160812634016215870382277452"],["4396222195552268390312338357994986717497337215952294448859210881706145473461","1407115742195564323029586354586831004181642398161224989607062871958631846388"],["767630000873432745587499720947524981049830601100155928146442785342987731065","22553344729996502937657582091876274841171594019414544913607710947054816069223"],["2247288082005807351387836989247724298742127494752758937085295807769750092294","919780939763552046701744828035397612224093131512568364591231492052789470414"],["3398595263004676344326566959637461626909327729945930261063544883613689092606","24315186464758877961900420442813632446931500972374359741033056061848004612817"],["26122545530593651944230025196958204624761386892209900119802366177872232373346","947913935093014391223081833111214547115889550698343946226785240792808066007"],["4776356974043949692719590982599754676088672851121325603946335779740072995664","5450038835560297024773625829159390476752963853228303361755537180040101575186"],["16189309700668810008227975015468231179590387654849677268872363750427973771020","6590842479850248786236490431396254244459373794409445744528214512869774179165"],["5821008836108197525497889143717927441076627502289313439541128405881319402414","5214507279423012033000559544248946338666324833695318503769840130911846545925"],["5731745845203839099280453493142516013214377296264303286780110045453547605561","15276495186970921428990721723175675391893838464342801792093135798045423322644"],["2637142977427722198339490252346229838431197686418802437612581707684220710826","28288056656451708348490216367799201115829400696008019613776999479188081989764"],["25899828803138014713732994592003706439584612449388128705573600478590613145113","13754461808469967359448794446390033029979512098032443290297331920968985283285"],["27023814885125214942115774582615135143394779409845263498726468943851739320927","15732644377966934022699720037369281766135949371384217399568027701949153490940"],["19973803534550516995486359498447731888024825024551527613805324033964318941204","12189138732046809045220088751028500038514765837351577551326263219105265977026"],["27808427314675937528095609908588799892708279885097934678928336751856997968875","5177454956616756488501417199531764629751167382772528163224879047768388131549"],["19500747935500931280219522183512485405710725378235039174210839275543892664173","10494285120444375764976413598445992390208318870043690064611109865804105341783"],["7020190862581291049520455977259683125393733787342777836756737356050712856380","17655934700205130508532343144934918433440079801801647051125176504275918040351"],["16305596951315735185352720762452368693293324871337024141455212255551093040764","19422313955826305323075032434808028862927495662076667431605842055841318703280"],["18894058953935035231184318422043254696435278078037736196665824621648677487733","9396285327703613130321225662124081479955913121294093296380690960018213172242"],["20778662576181115391546751991131261686581964362007901894716292867044368121345","3323731021552021345532403782020667291965558046836622957664704312503381541967"],["13907142442861463879614691953285778546483042452788918128031926828379529946257","2471293020810983253749099626656870051454247339136141503095663891766198601652"],["7000352216828444027734221914944936519231407262616479957161985642327346282339","22295000773916501151023886698832169372834447478856972660189866942118105961196"],["2699654420022602936085026347064398899915949663952054843489508284012342178344","17565219416865334607935566432275541288917388498937635657795477173985455161396"],["16802142135363970940004043492860917637037305133108087997168210957164614055534","13894036215359399081284626671829112720971455891335167045868922395064978477258"],["10707218327157775189014804674664117519582581435755944878756206122145193714063","13115266914164778403321511524280758125529429515664015171260479431408608489487"],["22426975460081511201967110261982843861506100191425355844601473442449659159849","17433751667204226160493160149771459609743421852820073645175918908541248724812"],["17808719587959607185690013030818238107306959657274875185688522394499536091326","14877463888993070597686559488751712103958577596185403591041934179346714539634"],["26608701405472476873733675639176213182879789575892632696729529441724935390696","817484435815292543735445842315611751380809503202238816166416527489262373015"],["8250830715410347313574466987375674018503625851360880123545501502743422411990","12952786178816005009590835082621573334508971348553562011678339778195762422758"],["23283105143491491533913441902872017334003223839292376842546023561183872478902","13607977282085831632332858791820288901667927326495235957239373510523687969727"],["5816894731776318109533595846499579741313790106496892696695711661817509485479","4313585981339847520139446849610996680126096529818937943938419616918521978617"],["25116537354035913983962629331113495829532062243266807938319158949706255018488","14094832027605307764503150064673546328184596453438934705054533047785897380525"],["27230208847611935940867184906621525340025988163678322104779784291947628632456","7644966114111447448284961644491142635763920913613527111296488838287741445048"],["1745406455274135041711099290118478411295058967968311167467516154740667382133","3377883629802066617456339202974356522522373998654955138841015218593575882892"],["12925865037915984156383046423434151508682054288194652371126027762237015396790","604962300586425674578371480439420249806194092415301256005384192737324869908"],["8352658282992459737001357960125935171931642178166735276266833648033793749997","7382174714579099145143985223478923061950184720000051716280443330560244574767"],["4938376860992456426194791445866082002127428069440635199505564171015197239815","5143954882466992926445926388092195242797843515731418824719702184173851212161"],["24273723603452964181386452485090316737338376004672718476408398083842602345973","11672941887789187343390680027362691369785916743370377749779306503113405870791"],["20211352102900418262294789733190274854946667322944423774592112202854840536995","194506886460624146134511567123198027618146956307611840454190186312806609608"],["15631379794927690153070875569475958947256306604042852612026526533932732946666","25779800609890651932274885977081872684689396528129672664088599800296664318000"],["20828812669381954233075307737450819196282780310572241871392664101614117302189","4690383122271536476768973081777108580773933315681664146653816118373612575472"],["15202056506672968584250675425250276703175198907277691513346003655123196627869","17724379968284180144086085667865714423785423024089234977498925961346057041773"],["13381151663527096832085315771308511284457688621602286170670449889519094715988","16870822280274250030203126752886608446344344592223297775222849268437211474066"],["19170784209016290068064242436354117697036992346324339859660732267549883611024","28909189776451444428375568966019467692769573898719506001520229979185028924415"],["14631736855525014209167642560694471923840931554449484331968545700094219466161","4768046601652039868756499812337082720182915608417387534514450737712069465105"],["20690105560703458955317190605289471453952954662811389391654742316763220911656","6459479548619591312718247843956653124090220258828694332783435908795642706272"],["4023935618544695989295583847425139166972105457411675920954943524283913650732","4446989169297965837901009160772704530284947609296836622095137962868196355340"],["4099352806552239697538437051315363671532673711600992430057168755982853441493","2841786813387886687711224262696783026543987886970526100017739117602448449690"],["6616754963442630971180169190546724048398591379871843796879502192498603291997","19480236020054197711075321014855093150083902770317069795833319516867989782460"],["4414293287392062925825165674850243176558890771465741943370340666774531471144","24339532427620991424992419023798231077005740695091667175050211712320749246066"],["27501434349954063041322967128451840100749276769303624224796774707801929563693","27070937508538677362762433189954033448797144080171576358143054581032851596337"],["8169065535941285097515995734304783143039671965002546634735665907058837217539","28467878407310272446418474037999783126497541373582490845510442975406564908984"],["17332575957375535477834528136660806679186304472172394432791107724437033385426","11124032296784960119615026046907026849418047299236982521316483944610683400623"],["12580096947143777840038544890694819987071104202980204220808229100040969243359","5019247536745911941954890063913239303424256624495891727385479119888810292593"],["12883735850802436715482338957225689642179038399131079759001838887183874523555","8056327459362553752338000244933083004652133010464014493762676744306580830736"],["19191289540653566704819518333122348835900159650392639296984955718737486476670","19808250244377065530130890768900406587236135421294434460656889790595887722245"],["11872964433004358509717874328827701368398836773423673882275358999544033852507","14299735491174205635389443549352252591341249989057525338762178393747656787695"],["6682035912376061240756696460163025425852453841324189645414053269536986561472","23547281675366847239563115254848420764767631338065837717129286974328734248599"],["24560518527680890469178890721810864086778835155210888908619281745876066349241","16782471986745784981544098894143989321036370784472933517080207042459365682301"],["15326505583363842446153404075915829392458877411438595220954646333697755695612","11838593302209411533487668967476701619765851036717815637064672605970477815665"],["10677765627529893684986464664885973226192125755436794701330120836358816625779","21842867437885906673146181797231191987112654076773272171157988632566673186769"],["3671585735633461459775067044276080360933141811027853800920538367365910270607","15087484995314614766135583262983057239088255048665744006074632652259161576272"],["19860381184166387141243136024674287853400281743350954954432353216987100640756","12416648229682112481122500150933148811149766924703437658320341662190910920265"],["25399340293386385868161621933955540356240785045176365767643666059907641686670","8399899040119344236650747096789812661085264988736119268003722956445933987979"],["21796409184841049912139905279686702852534356025658929394163352836069422836293","19156605718216898793994811901029886808693098869975447030465254795061702545838"],["11786498932379504090817026495470957886072795570672826607393977050521856425547","8114001311499817899111492088890213247460586725656743694859219698752587193116"],["3655221160953099798021007404550089489983063700917594476873477624028550547525","23247928356834039298841721017557359740625582751978111362274514953515873907116"],["16233548841188313132966761168808420384991618650776853907725779703436769893142","20908424872804166906555282271028510941016954861034144919270598535514586646579"],["18551220015014425120812527576379638306327592940905475991248831273870408474492","21402721693285815284081860995250426816380207427899649203993227658070818668181"],["19723098577610128371568088589376548928199698855485268258093832274382060004508","23232274337506935084973376818725088429291593362462172345800216501173593492737"],["12004638679391308903401353023239470040214108477349399786993715801140952403183","15318629428883773026765035373408955175724551434698475746277773820359540373724"],["20426203297899658527345822179686700004212730286735251261620452112292817160591","11733466397118362530791356547825102302833753248795527435757203124845886989088"],["18701318470794101063413646038497563157551059055599197924171247780364616157233","4669889925082623743547258300309229051095407858374436329595522776761563064908"],["674493143347702810415047801528702239344419776951267054838530532946745242094","15155477591889313418436822773712699574967783353902825475734662493035987905527"],["2489166055458960530601407326835209626196159537044799159991454889261966985247","19550330534154101461337843379378555327166148565393936476554081716591347047967"],["7186879338195710143933497287511782670007143262520660769869032181562682684752","21491752695179573875870308038958854645211497475409524119653364329772072616181"],["20153133934879912739327659192236767751546035118984154456187260026512447974669","27442533260978933275900918915766998465958905412564011349527340661732094002426"],["21126714227936328011154245518483898002914716258587099431268619899465666958372","16637010926635335871542216957966580134113205663472807822221452078407428065013"],["463031384406850157380239392037366197096301078322155733340980558345295497499","8611450724974339051840674524264635344310148499181184667097244857258927896733"],["22694879712193603896108224562090225198402420001431733911369708082347103627850","18282129533619288993195733653658614714164436596872325656054986032536468035926"],["28222254478745766749736324458411014199809767506040743700453915318945457674369","14008514530637871585911242971269947830724720279599934781117274547964629658562"],["9770234090717253779223861883763869420081078403240194609328989998082308470234","22298534902759929964912475634173468791945533138118369500478010486763098890290"],["10023476900952699164182159736720337112647021518118192652584843137738830566449","16040365042932371979257186115884448845605913294075135199897263979859938609809"],["784901583767746063410207783014480020048685204905828897085890347815433953577","17558186693713582430206132304735997989401055424495215695666355290861634945921"],["18933476548298308389139159224245107537889573518181048102773313183877740958467","16866753112633789176132176015911729588016121466159614471469697407349421218813"],["205628937933407282237485666222803561513513931126980788501040009865276971959","15672815887727888705261100499514776974325161652796455669690889892987770810501"],["2558500853509380067127183635222700656766216643369304259899593158547486851765","1704667444339217454334587303044791452619681127822894493605027470039602172452"],["4354420070028483489859426803101364771196078615678802208803133736021524377312","27751184098449913870932227966780677519179814957151205888215192249749590769066"],["11463358027853518878689276211607515411243034746998393579973278485218868059090","27561509219482748324845848199377439397104940502996710443540905885172488454036"],["12348725323535281758940282272287267353329701241304352289321455145487145742420","14654167800981040239129652092371078306692416267689076161749679228616896035787"],["11060094221232037717874155880783413381281071522099044393816608982686142178858","22403906341693647561125230900631513634733909229585304597489139598720830757474"],["14383600054637675205517798440780862940010673802742728051353298404630403304232","15911394466615410560097265823120108296269604833788057418684000042563128703648"],["26829305806128129764127725849852702798385955439987422771117604314097434318404","99922536290681367332601770504899937525791759430239912962255171141486338911"],["27346375738878617865796354382106623884411220553285717773380583080880461724123","182477205861960751719009872117668876180273978449733649843706636297909182546"],["13749596769795882067823077550739706572572788720429456616700031110119428552150","9270194317767500456823295630362082353158192189544057096038121900332927787705"],["24801696929720302593895949431140717464212092033937210156355266162075317020983","14621839778548656304849596877294210248628889878653345213373496940909337554355"],["26901141119478890295300516760848799562834281643223552291546086571691925071342","6190145497851689514430661155294171602120123640678422593572398261266772315961"],["6499401278645816026929443562679938624891953085603899498648219692291048169893","5644215112002227982702547768636388137771037586374759752651491925800574333415"],["3959734382199054996929776232963343196623730949882203549934042095327866233533","2472857914024879318673544782245363927318958094413062028999495214046918600584"],["25335695939980386377811441045640108615175228270129377942421034775488902959177","18791137421569253951245720378183339350301381991320897460452573033369599879726"],["24429062782158930666085716941017210700887073401042560353048017978937555799706","17048212016214449958348582899889400293892069737460500509260941894572594202292"],["8087791567089439387665879862165201944256246032222478506763528612634205979123","24920866115529972080305684562898192815833106325811835789437773525656703190833"],["1946378561395364120491955821414652710320814615692010327934223973349128358775","9834835581764870001578471511297515590593847949043220536635043881700718950170"],["10033576259414078146788211441778464271409721617932269346288740802386439261437","2039352186193234902515936978614833137811362012898641034183191111083176496123"],["10903733302043488233623470407318780085312209071188335051940109002159010239919","11827421462037588531497329327803623374520994967485564009609153707856731307961"],["23987358420903333567165691409708508096078897940813731549446285570073837245865","6685751184422083646513573923304835221212194797814535962891002843822575425494"],["3556171354025687027641178870966786952177317316231813160339467805009153285758","21548588650036346578533050308341148321701834287861152594425648566011153640668"],["20559256171582288200532309834075650739647174199644086471426315535125217001378","14873011956568073814872894150370066361143792455895339172288451324434423770771"],["22479237042123205319467227407959053636964287256323697621210385850256130202117","21976171587952621790784380598547705720398610243656370990775299369632690549445"],["1121279804251698069386101509962926328400555295745640521694236773543203587599","18211752235714272159092009978499984093961339369005461460197039269040653684152"],["18534767012393516751679244412333685349212460158987116410671594542900223067242","4142766753254186262931384524137459454059200214856520587597744403528904716889"],["24112214081232914302947895582646424485554110606425026769865619309903461178391","13262424775247854631951683502793873664879645552859298462600560052608879454422"],["11035681531959832432887106001588287490295965967250933818675356125501396366095","2370726490896766783121642231468306754630491479881254013934526801856362152892"],["6200812628658007554682480461184676963638897633785971287213376520561673344594","21470253896576614386303923258136667967494439777865146363384232685120895377578"],["24794325877419124190992048022917513631703205791219783066040685883625327567275","16816481634051375816337410894469292493627613900836297020028407402899176510718"],["999553221836257280883503378449159915899669645944379025063535283246853758959","21869843279311757053894517062102659324595482946318358216979220316357749669584"],["12510402927260631589354303267689592365318529060036173025606288319867125258538","22532298594509083989886220209385215890515918900717884004080973498317342779338"],["24937162054198166166675015384462621787950778393751608578583414323995271831805","6145784234796340277511586420684143548214416049458750418623946437578891342563"],["18500722637913362892112751430330640478928596158386634032144696801694115203065","17896814959637294476066510769123182410717429544633404134466958024459118057003"],["24056944838103797259892981557242485411471986983968384147854085079462293111230","9273426818646319331553238839344951774038399172041237676390097408778427546877"],["23521074314316867485973238214893638451188420652678119600698069560386407052185","10068174329307481363751031896605949804900782490206336478896654296345424766776"],["28338488386942056810967264646155317762981048817884362733233667272458374642991","9953713551893413730330823837875513159336240293768860371141421654734439701072"],["4288377820993965175416760746165175442746682370641512724492510050380874559734","8491201625636271621652960357454582743282352302911182700402573917296504727643"],["6495264241590669650002009948141863718657548915701617931122194089422813873739","5400800511679075898160049993000132602541405100978156433161737485361407554158"],["10236536072351840795551166779171475736403965112122989254833789660223643012929","9815197333167443131426670667372664891661037660024753474204826128849870911619"],["22238791999739897837677202849685167598037261432589078953290029219556236721824","7113956471384339644462362097748549107378402039998024702153398841461973879051"],["1041174673038580929001157569039014548082365840440994060792804632193891063789","18727070370273185091889957695321926821604284178543259081746400018202553547946"],["7988584923468117578571114015339409043776057889555193540900697368510514545063","14070126674568392766402595308365592009229224224353610683760068667902153842052"],["3085017542062696192423944803656144507181595898589821220104870725750439244988","12394955471847456024680747932474607777408103503882929849615280352402142901403"],["9576160637823123681905803106708839227397214027352127499305282425647509652562","7780386201636375606678019190221548689583342685540441834105276196882609707187"],["16741796818720260912756626320141760121166662982016131962834889022434424315589","9341069560377896113117664092041401540421007716035646986514927034673054443691"],["15639732894045745186637697068490737487958659271927218731580880948123323461377","23655756744020285489325305247244230760371417235318307345377899523128782926177"],["27103835314261062951042212408017772744496910431959547975049209373329145539185","6667039393893347767784957791593414839158535898761490918481802842821142599822"],["23631352254688308027995977322991005924697970971807567534547062192287080095748","17588078582750730969281124672136357880931690143493346944324173665813859180943"],["17885687363294865108196470583915400250687903797383179721849469372288174194574","25542479181896388752148842649469850094445067176990979510183976916074514372385"],["19242458862965274714646107011454508150970289227066341163676481277157106985881","2464185033555497846112119847460004707704571665998142293307590677600531792683"],["13127948604404020507098287533712442950964976676253888056586470079701179929760","22177936224032975112935788825996906392311906325021805426473324254470034349887"],["7825942796940117367776966552779656358171306206637007152360875358608851210415","6470594255093524865957917338386206013830799134314258025520340828043856766278"],["13784704262466925892006488304772491933747192218840125617028694781838290013150","26160207017568138423975771713824408473929714419895259557889300115408277618904"],["7249531179578092321182554081163097795877376324066269138457990041978754688475","14560239939832547957326949468960520846924656967474862482872662069761465235939"],["5998983779018090665676898562656394333869608706216564870936473118980046239589","28012998636061697986464236292221929081311169466772019619713718934789664534160"],["539535054554068470712500099322010852105650800003422034488661325766903190156","20424593442184524060192649486484331258992658722881867659740083986368973828139"],["21710075306092911549049653582603045765868825656797006294032018607980186396872","27518626710359175021617178546228711041295325273905030617650510517616910723765"],["1138518363635331022441869891240324403030402063489992515620645181698428743205","4638708057750640251507719635700315917150461313642904036600153902329980649252"],["16996807830223963264337202927255910119811709880083679007503182450420227085716","6352809136173923205205578807069383267164456290480235035962975384922907479339"],["13865471173572650901631551353489517371602700401301695703405178067399981919509","21756389664528354519738802371458756131870810301243322558461450625838063742613"],["22268176626635643108088963398098983662268126674594253774138267276154473159097","17635055708258543412225336785307014680907124228682056629446418742119889850483"],["14195349882184869472770341133077818682053431060119504268252123561501987392342","2183800288109500501011198856765091706058727302309553259734259819779192741557"],["18549044907196993933180009994746841162738866628046053606972478898422963121946","13822241973999480882921051267228713997519516534257480013360161950891056678562"],["6564026030083719301605019422867733459964037468535139101340361661201454782639","21801762321408983014397483317692315524124494426991160763600858333471270157477"],["22320440348523330614366501804946675350888671322188912477822888914676985279746","3713906800972787147962980119919814239424222983824248565195403126629385592322"],["6303009767701587601308899154440755892455643932731946007944629681612241991135","23144669171094737880322669033121423809971824962949276640228714034872707374577"],["25955489779654869146295514205165673907605248293602102952391894813026652875214","15901529859774216859302397166271794902076682867799542361940531200619194343581"],["12093964160687715544433967941240777991031100515701339084716343349147019449726","9453948321132678896902752570671033668013636272514315098919084228534871149709"],["5738273769644224209703401610066168294705961213356004329803569387913145404755","20410143301411181932321915980403579766695735987077875605086982508115962005553"],["27036430267254071769018069097427434923883889870359756476500476240738162002287","14833652174878800533156084070704340330946130383400030152691217667283973526031"],["21955245268352897473700267413655485874793671082456091873833894288634349568412","10567196893780108791475643103788824365375416818218965482226022839937085213454"],["4064757445042717860241587995591154162862562906535990610851769558402657628852","24317111875668377931356998732072756917836895795042084688734602056348897225961"],["17649631239322540992046178585094509696882966732941632860630780055454254880036","11155088841742815829056212680170152719242460439813814276765579952310370510061"],["27294204943347018275646697823613935016013155339191039959902132455592246709207","13327737478409909236402356008283427450038999729656509704870733250481805758939"],["19316579291164440585261270506691648568552537959961238363814301619034313486193","3984043010563626342323908471911433247577837891588236050962015124373529549550"],["19342591890921241383180389060552677067879797403112337304657896267496036213448","19669120499046857767518684530603632255736996750564834194830254923487843563945"],["5078632735281941865249465691658585626724507619438834365454424788000445233681","26875225392058268946620691528919190247015393136695469879290153312545369090434"],["4612313431560677849740772450028059105603609457436361367227531149263814162359","8820755014728701731269664322400129937254465084400927361443187368596677526721"],["14805529180444805914727805370139216372129394339283087964671018964899228121766","24863667468478445185109053655661886447359212958446150262820346187029597829640"],["2293519044032732900132157492846739258837224833518765857168661476809199107387","4330026605313725061658678294416224413349629584720788529059234459060124479038"],["7267658463345119734880737567577252680464701239378499460587523598658239251060","5207563550103407274315633577506524712410272276205060645578994680706052553157"],["25177420519937374736365504270384608611233690462553416952514998481404110192814","4035448859632754503702603682940076872740874178471218610542120248138253036207"],["3457893403779938689428986537986003835713748802603391768289940086168164516239","28895251980339145634152945870482434754477276411215892527593381224088189686664"],["2309375243498004273152665826791868280135705977141732621342240086840640931653","11852385227866123693148370029114277784442514011399351031143862147464051507138"],["21068960819681265477111297851912893852003511300318118763174383767441038838483","22006270065792479718334394590902442100094270504843601369690783577445668986901"],["19795617877746624570221874047351969262052533901748510877799752791146673103984","17867924899030462348751689103616086517922886941464663243781882085746919552599"],["10627382455767619981007879010956451453148308466176993565446608262113961428881","21071701280217638089091130410263135784333639117764280734099960230934695501948"],["24064947337265307645289868181912376845873129648015033125019560697510507723912","6058324164100198129816282076215003975664288911230825141727650163881338050680"],["22000851381808487613440579842217176592332529384269253211519254425873902086121","14266830330794953421162365091854457835543091162450431979713799562147774653884"],["24187668261035642468705758192523229723076804581524935278127983437301749112315","11100945385187652508880386894463836814212460394336547595244625333292185212587"],["18598690950009606566181269230024744911556840127623613279572355517407085148783","10489860360736673306728037460222749428481297148446538287804586045192349687056"],["12341291624371906279666211108509896309671833470047345112157985598192178460141","21268365336383817615131669419205090080373902729751623966610909921360387443066"],["26399665244044009324753108710554379792762052838535971668141350648716634582237","28066970106500394008647853940645895347012718041863679514171677477476340988139"],["12431872860882897512216401204813677733047894185983770721714982603799776797808","24661386882973871621788311712476310541021048379800964329062748974691731144887"],["11882661488958080068645482516778679544596737600997125384489630291834838232454","8860214993626019109817461456258575395701728532422017844061928452031378942224"],["25172524457168926119507721130470422404859683968053962918115600650563595790004","5965942250811899771729929911429594179052056700358014237207833649961806433137"],["10562040316879020456875073163773159529972708650940406217993647220684744780915","9279153351830805088198781048021455319814481151530926276649912513842364426230"],["7057969892222062953678260344924754950752820852290685671719166060130900917350","19536885620710551385207988577127935499495810222722034713373330274483540328783"],["21096437813130692058177177486804413118544816935995451121560893848700828302991","19157188370552777366009354476467659097327127435486456640844737922753777853667"],["3996320860034746355814511624930839230989371496408392797475437949441313796375","26886868765060016337555935273073648756742154415195309082817637794552851984571"],["7665756775191414766236307918372319501613332818178280350174075635324932384818","12793776915390757900490983093045106827879157865467708531216340847662458043714"],["15469696763920028007901328486842479395729261954828172721125922805894217530607","20326217443292485896957373933950210750105546313747350658829932902974216823858"],["6571683408050638886186368385579780968048700019005284633285561691621468669546","9764459541827367794052627662442670169410251071588451711619011702331696104624"],["26157831559883467527923228751786461299989932946426526777489906842749929875846","25900244934299881235945109156359356981499909779966931700606631506322005142672"],["17297821406987673742443789150285330294602914527356921276907425782073768054703","16739340097030608576755211884373851273742190147941021776062058841388137663776"],["7213978195532815240468226367677394210876661387296263138557242908940280926527","4305031471388234229991034358254720570356037910596434176478557383368154938443"],["25813670481068273680690989930289521293181273051963372031977208758479611300251","19367351000105896416335461262007486370045286498059453245775554713488090670395"],["20551157786570677109946253116106445805533225114791468964516169728565557650860","11591102893845166975926417715579133077762941189337253058932881747057931396589"],["1820330861880266727971573219445625885983449060106274108381259548425936782355","15591406924452694491867041842808736231497501696531443789125917397119626245775"],["2702090810647845334223407197476976576496297994591773595154019282152419411836","4222712244324907233800320808792943478177794410449326343040026147017607808441"],["1430059376601137812462177563729874292820847278920495603542297284581878261129","1107045626877741517884375396339699802746836013030189038527749763696753850699"],["22124989049247565285796153797176814457533000021014184017821764847182963951143","13676137829542211574294026750750234635364954439141288206511059627508396520474"],["16791444144405228600915117952424454823171194586739377603822917526296088786484","1888237723602993467814832333731015171990362240830921889319759811519686015069"],["14579249031171856179787140804211505802566005799799601361795039066238110079546","15857637223468724371960489372987238239536311583025228637860582529316775278505"],["13869545101229156972343769515432400430790742084900115278061413092961306798310","2891324231413872688304032983912171672045480394326598174713296934301108407998"],["27827854644464035574984940235844056438512526124419401207364879391351065684948","4008609227507827344817027442008539489318490796236111886165003538959194931434"],["12225588205935958816990573324378702152138619017160561490160625499533193218261","13038307458005744514260020509475213447532200845293984593553717111748432028526"],["20973678472943474565508027546469885437755122061136152237649255949086574124591","14536659689065694537247573572232843765078086085728368158522069460178824219343"],["23103340289278213546891072382956283824680241148036551009496228502362509166091","26845942504964055782883651797999471093809900166672993705673877032083653635602"],["13839362494201101653932981253485711177006896093540651611477396229623775842518","23757299824102570796585691143785584976623534024670142727210191976547677384414"],["14300434003724402422325046675570944793028875693680597803644009626395211831546","15792069678646963148230420842228184658780028173986228658053292560157339479130"],["3232731594893803002884427148750105021862852726769674919091852097426037913495","8283622828416969265669216007354543364513840236719195477754241882920717740321"],["18175209588164058851799072894514531830648563364181676200439483810242892930800","8066402887331240596418802898575681912217209091828198685645859234416458300767"],["8684687244170769702380979832539773034795074645623813041516117838962191784491","23943924787695971570383449261488589168752865685027210627312146191812173163369"],["19056807051417891839247144971996704410193524170917943962186166103623523678152","13536443235073891582022898482883385165160160785561051835150079186861245436964"],["4614028063648933277390183078745040792330221410718056718556109839444220832742","21341230552024415421271643580446929469170547521511739989074497111703402965364"],["28270394949188438804759761330389099121291948180074139228425428517030492905624","5433813544365633390383136200030380085262081884320419908604385921296660619437"],["5744838341612620956033155800493851892057660066021341048494482687400307239421","16968733233151591967861252215806560706028510787931389317091329276296700269652"],["6286683295839197841175791984592250092995439046017989870962854761989947301158","11723910676113644148679821255732395082949207033725807530610338622667491804916"],["16620824829806397462217240650945023587511057062150195689448077433786958856140","5788645120360594011522976760211184108758052303055767668738211148962021417493"],["10275701790051598230718125834014038698214756486313049831386979977350474516776","20941022112558244925956989261384491275975247149795477242173605199370308543575"],["21051034068661090844303734041023741896563393254339785479738812026082043427372","6230440035183630819930302248135880248154645502413095580041995775118331298877"],["13806148665245563247303327901434936483657479751050228892793424436388234678400","21055152084760547683001873403849965038822130674394074449319929084685514071076"],["14550580319048558282232978395674162058810184645024369545007616770321527946602","21198710751335364998293696112891099065053416255478269002282159038227183971589"],["7041969411206230372648697659216911913627636162047255474211634364941441696355","14467644874338545066734493719216618789103882890936298246515344100993620304800"],["19928320135278416144227532383422339771652013057180399883090617329900883103197","494899120179693240061501439344964958437709149227797821376344870678156444203"],["28153553772773279164943098103553099265026209673521206034176379281231790673667","5827026454522098090890063279479003085006498308271557609689093436614334502983"],["18930493268084772029641050823858658259277787962543029333794382756249238876034","18749253305977279541273577618701544109878521395447540298263329981559013884989"],["22801181294016688853293602361025829237568402822427531567122581110611524622555","10308884422013733535458044676706287944326861003429335254836220384212875612596"],["20655552730858268444976005701584063700728977146725684502114367490853549869385","1381912205874090326255716680159213006626620309750157034083797612233941974575"],["13085029812118237648380567556398904180373122672325571559238714486260365081927","21569136873781169382031238395229040489457775530270663113324489220775617847484"],["16498408430372090755194714244146961633857331701627439270613233736603062593068","12704923423068385403775606237816341712413385596591762341917788489613806697864"],["4891410310141606125545481337955592407854830549463014734618299089862697535320","14634909691849882251912313479807596057152811137195779940848306108956330184198"],["25446749415723664346464004806574563125610250338015947691753173619463256542070","8944786351354833339146683089982729277798854557534114325165825245095978413111"],["2193948469725148399415618600009919372824371564407539036932429803874814340388","12263830601443672638237977714368547592898187504435435014105203254326824575596"],["24127742408280533020393825090302637258778469186484906650315404197201561005918","2004278214141303954192562304179216770812207950189363245227684761876672492525"],["20711279447049667162149510160577097309688729801766752064240460866338085850873","4512769460080375332532095957372673134128344176795238299871886392146226603916"],["27907898561430127598025792646592576056975085772218196694239515267966099852008","9128170870412202882369257807832885117348702841708570503885460813556206917375"],["26473066388276430473275559834336805192581821239610541904926334169652772559687","16754752511099655310931464782476756919382019381929460007698998288728549041368"],["28395545718461884310683063986016374220077533277226909854864089405271133960143","21307351358161454378121838456520541532027879116160448484339682212519255887135"],["13625870894927503091275304878563736605258199934948709587720502419041856619002","14397803745435813827211231424763807450192952254344472945657207128831878851685"],["13212324976943275874298604519886930201436942086461879811074980141585737486844","26047850204920044103727128948000832354381481427247342870390280380355887811878"],["4370359607172084904248635903666190295646551986893927743877711152448632340129","1654853430581724856463380736193356022617840826936957240649948516268402775478"],["20237663827638427277294923433131963297184040746828972297422516916550319126151","14419170080430463896433734191355562575236972829785413838607248140529156770017"],["14361374413156367035103947368011258894379351016604648003148784293188326730368","9402792174058117239640332879662808852099484409775648362064774492139601050571"],["11588897885895124710420804303886045790326792870921014637342641782278615283783","12061898326481885639751782557575067876233199298357255172899763016826608117830"],["16217669577674839912972218344454398096526818138956256827674956526299182232581","7033437693911175845869687827768785742739012771695476936921372120180522288090"],["22520036008590236979734908452447316971335227911728794789227570130643515403314","9869163577857016611724540662349826121766064281766285745500425891884148825513"],["15896024921000319505373042939285150161544083675956759849298585618286236076565","23798928416774042763614487343697861753786762456480152854788927363473481213643"],["4029548073948935963208642033757725504381901548245177268167407423903188032498","6786460581847895303963314729973484276110920544539209789328348839176759861417"],["19678377716035858313844601268402723961937294740926282564553678472944963782113","16108959041378996524050670191001529140960765142531092835883032368079285363552"],["21792463861675127545312639310571640341483632464400161501323781377482621991318","28503520988207973399546159702725599057154089887102441026560518398560353852455"],["2181458644504218564050231414518862450374196115547546147247264225639559305290","1997333318451689252981041003544064006307992903898750536895464187545130986072"],["20562875545303511068915392349476308884344173324460292314944914389548310572834","24268932717877308294439687968518467348016888893654813588607449332488547848698"],["19276682707136540645737005311734284738377517079404586474109986633819696848394","15000612450941291839778871107315375408746803505949794695714567857122214246596"],["3471316496726443668577012499585777315842305982423617414383804731530247246588","1616223174749679841817878473401165903469332574386828215225841054931995969870"],["22052945042643795490996100843108665489980043202762391959346814770323852673434","4133259204150703686134145107610962409942078120887387447839961234462806335670"],["16492830974631157328711613943270023839181418694341396105717112955939194940852","6567189125566390465432115107350259928885682351590924808733743173912374740427"],["17624493893091234554822998471642534308797900891787411901800117522203677649135","6370937601081778491844722023920909099718526288893492404018748050632886945994"],["17440812976993416940169807758712669699130042849446649180168929011726044727585","24872840520163202250555413052655641092638669870441580923093610005224741124686"],["8828875094905872189870157276265239879129748743949998637042220772545621362177","27002790451595504988279712469161928729089829353608994128329256059785604669586"],["9288290549980941052266073595111600086022824276128293734592646564183244898814","2998383793724408285918380227078163548851339953967293479342442578209195548752"],["25937801095334614838323118458736896588857838480078954711257423313275353387586","6028724370170383101107281672170979810878287285311105082487951527341548482099"],["14482967128305061828766959466488071077443583183629167403354507147069394026556","25703477958294076739119281554463966051722526619679610501591831374008858347945"],["18668402058748873445776069928646218169676581212180157748495012697651316890581","7997268150002464570583425821468613200685239523135589224624468314626466916839"],["4171176600926813388502572111708666582548270603071284750734351930264308843000","6857541048927810255276934730231176586548326487543245075291967011709154401607"],["6671569760703163101842919998284072396617589255146564266394857750624124407021","12669537985710271577319978223962017467204150172625229546628515685221319082448"],["13006041822931442487307272410522663019381595086711919059890010141466781605962","11889934081529657062821137493048537466740450866107811571535559308522486361782"],["6015218674033439216703000402512512707114715760387806917059954078926430385076","22752458684995226917783586987517664740915068179593310927397571384830023904300"],["12881086284833826825240112776581180226785882441487869827474111315819747631605","4056664862208854137757018484700255457671859887338729879976341292072071672411"],["9281939285131636226196911198245779086707175350148740241851718200852143468232","26198556563355439761820394013601884784591628591661467814771841597896684008698"],["22806151796924340652232327031458201994751422116620067219426213444969512189179","19725573752285558439335514010488529527745851530556250224971281768018873379825"],["22648871093084763295652108692569745258553613726089839820556670637605448705578","24251007840179686041948480169955596880166214671993453009106520911015825270094"],["18491517879189149653096940668587934693139630895152765354914248766770056331072","13518438856211622637658369698684864770673095183045653202382321992959706381028"],["8675354843106367652721787425852701710110567216233016970014452549871225044316","10316270286624185679160053823405939584250721043748912960850297035940440419677"],["14142486311188932630556053699683458810157333683774333771144009344317505475282","3156738041059840958725394409153455749296401206134663363007814891595440329041"],["20041562179118790676515594111219565975664462399675874475762326040475499034372","24202656180737082289165520423432228907283818435553223269473891363760897513309"],["22550445918366913079144801810602123845918362243518375451448898329580304104446","13275730563514798502294523747822829663885021375608143925215213805954128780813"],["27675710846820957427107723888373535613443629405975442165836826389787981854631","27574367307201346139697280188021844093502426385809444477380471293053269262891"],["10523870684812214765650700582942037900949556795856564664953578548904046553816","19431249954158096182316201005803028992892774017644453169598992744481423750013"],["21270855808918567385068750030636716129459836280564834255966971334432130454954","10016071636231476173211392220912649988616861714710780726998461380412759700911"],["18937832582590966182355317752713446483962376760251931876513597847737324623202","27641967747049895187920735113790021662756012090279064898268888540965324977109"],["13880364893542862477237709108916258066191525669838408017193626486543019277307","13674011480093828991376077094182003746447575409945043145140677004684381116852"],["13231533459794208870213119320916299025977204626904167040112095970616396929687","9933178190386978426031564335729541326433114329847602227925930971817894000254"],["25717632052933303162081940478021498963508351097033403043181060107171688167291","6964584128712279024442586749078322840925168019492328698508550828583169319085"],["24752126774687304272840781791532524872611700460220222922524145802243564803293","226390681210373017786594033682594071495412015074614609017049494114710128737"],["4198003650855333911633614599710412022573042942049605889823491217466426211273","15023800080066101190577841987511251005909372333754745612150299536138585643383"],["1541856745975254909891477485659448664109984200128271576677355157692904323342","25641468205803270664737656182544828221297690486156971383246709778878386196323"],["25331525826933674087879405910058735251481542470180957305758289235500585999879","7423672398361585575963159699872418475101488659825018791718902480912717654701"],["13030066341520593945252340752195898139681513889277703193067919508444617738784","22943070548747671868131926190202004650756239103549945623470832916626618036855"],["1779266331256640433367432943774350090633558083532431880400974305721802178185","26691422744104294305566083189479594608564829885220042821619352246086661309891"],["5624300121231795814987047661887704682584855539944261870749400014670059576097","3391482008720412385387446803696848620167691111379488179609553228112535101780"],["26135561623597356072623390802199916274204111598215829999108455288332779993705","26485801356932477295115267871749528547220438229552310361351782006779018037528"],["3323063657875883240710395160154851936058617547242336213744992146821473215593","22934358616284526297510241156330593160969055424708915196590236148673349899764"],["13803202859308365425338915429827348137843023976873497194282086246964158301226","1332788772445746858027774937231767578707432188443271163638260240145963759216"],["17492441185061475072458351485707969332534701345711161923471689894489806719637","16386876735085709898407971020782028962432198115423221816700008576997142141444"],["12394325434794199960742433102661482441188146484489596533915767002775748927710","22022083172942294510683496221868411721439265723003987679638970814382988877710"],["5056212902329197448882419837943257204896544406428704135745304273926301450266","15536014835879217187225708763435330071228285972159030080782178790172398195639"],["12998208171640224278575564024545010927570380000300552056394487781667237515639","26335039012604679632874554770352316474969384253487084249091998396282689132776"],["19045530053749944466734711675524188884506913934169082395227862651958695039293","24836020013068247546819522790477363058742627299335335038076161894584862907890"],["18338221328837449435264278464886504685828365718037458119242362948258483818522","9699622066390599020875143220970616299607626273465349858260320887935177292771"],["25144284063638227796777181511894279587525298410379998611754564534736807734006","17277212773295491675137937944854913690311333275601020556704868498818763552553"],["20077796539880851134867682914270926465176432409867272253155473630146613511746","23744874316721943906426066331430741987093104788546629026622515554854059376228"],["25097989805199664214509396261056918646349417428571021593952150113074378873035","3501787204552333288402920841620548625805888733089693742613989016488496179821"],["13147559651741541002659904260333831209771703534559569968468649335042439087991","26296519570129816232184577542915904379356722745783090448583311908354913593245"],["27758944681690271386934659419653540269828425725086393842100918399486222982522","14533997186559329002619661675595614187571282202254496205319543010694500013057"],["26860389515260623365868688124433500370554941242978686928961837837548962379127","9918297975139364742521445684676584054671689354675873096394291075672791879970"],["27402470080257667697072781279115113761080117000577355757523792221343669294167","26678838984430708833656910493455418339634409871506021467457799321951888811467"],["11008045635006070827933197659890948909627362791236209888155607729892207997802","18755610773312860917769015582746174535769147182800777959107066998425309208513"],["2888847577133224940449364039867792187045905273591913428390806009485543288468","4111263191041695972849719899310983863626812089142677548462649572721587751663"],["4312647748706424716249587172860750227151733211880483149206823567208972582824","4618989552731953951961873424847075612811986991497365014762486924654224714776"],["7396647399828748035783309152482242810513993547606859011264076305093730981299","20229850693940378736431988358965495458406549583426133320164566284237650271781"],["21711408619993111754263743084493083006517837041136049675358360261504218322591","3463572184018419733235254393885969711685251578013035019300952848191554821914"],["20563939218712305791690670152759944766648643188019458628608343744925400732992","11377856833856324218253909042953195573935831605800160338028235390142833781924"],["7216944805477269244740582855629401129124626846820571149642971936268684205454","23955554170950261757115773722431878266770000450080270720822613447030347254688"],["28744007091602916023393550517393035611544399861073827085986265899312119018956","10379166729311988972017296156903131614231053681363797048348063181057936121764"],["1045668584628914512160537788681646911207282114158140913913084571398122991104","26165780819123819533952097497782732535682573491629910887382053935635083799549"],["25130079657064491219775589162499932416264361080249260041082658085899905234856","9718834292920301350907757634023990477460416784466387531373324958026041002994"],["12340555743296363731401395491823985486071233374136166302341991772656837477463","2803297110111734620244083548735774485195954513221907914380816269418271524142"],["18022012327511940002358749498273532488443217337361228219533396522614127144346","12261400865050233472158245466926031824230675929510148711316313539789470218174"],["10685768829713290513763235615818320650205555176845836709551781697497990358020","28162081955827132499021916140783305504245308187495537231934378456592456322161"],["7368369738899798459167064155004216383208839721810747299192441836277254570904","28672820621348956439935222993084897788241050928454386451972904701468785246739"],["27307636088728526607749586640086226397305184490394411396579324653634706586426","7604998247497454529490773175219284488662303962398706325356631296148359200272"],["6183055668887814533461824148373222133518690797919482261784969347116368262313","25146776379178266992300787462125393238024190534698798986436640557630962454940"],["18311357249252372976199058595052851670857679729470176369372624191318161031781","6654004134273972049282804343602811104608803037327499061720461026149848539675"],["28459606214927553588191876881228081024315920135555031430150614179257708883248","11423935616391542383659050671711579414493255329462712399989914906131408831411"],["5171833324797863933019314396375446984349983242802731818817903021423078691258","24708043764591766192138327050751988090579620478417111882287113374009749008118"],["1613873323935037130874660843157850699508030183948371271339488328794312999949","8481298318688376282595344378219926663388664621189141164199657084792008967003"],["24172902080504541111193473819008379910171470299770462964878633641506688704075","24546521843950004458913147228101228754608538200801977546271377989600577401912"],["23299814088626086731692675767992372092893159119989869039655254273224979900411","2982274059021243875496678977813648885635157132305032767520621307045262029064"],["26528924628531480402401823749764430007219875311766951558667578756782384708834","15303287390200952563408705288477017237728091739995985864316061602423085897688"],["11882067891917620338557091278042838068461031548355215757940905438351699350487","1239525938628392862327936940187050749263381955789117648878928396140276316825"],["16703367685862919846164818282915588417798143665440646072177598709863925545120","12530132261167793575732879881867389801310470234185408745378894241306630245155"],["18354038955047183419764080487814379010273082141788233441450704070572262522975","21645310717784005225536083404061792622680399054708721966716269881725608284360"],["15780313932401305918968428647061427634342118305731768697009695892290956514082","15759885934601124046005250140369698864606222623548542219281149241915367162045"],["18028946937747132028983707956793760501925654261782285997026307699964112789368","10311179267116057768292241324563297056979636148272202896091653063653163314622"],["7070600976683734026780496152031335971807965343866842326672424157933463229333","22904245972417906765759790350995953416888978931988665496197419479291340103366"],["21300096526225740488632261831742153889340262465125896839096962052286663564814","13674487086572998599073461651017255783229670322967474917401842816070546883549"],["12840634456576923701593353930881290961122613052700924083404389959750655316965","26389099420205356235893552215654060326714687607730015642206237704236147816540"],["20969398098706135352112830974945453543797617962666426222665061995846382840576","7401154302467885692164977811721367862296631808110418541720648820845964200674"],["11831966455580756539339658034945180968655403767195357590980083949088264365483","5702955877596980251405603017710816581321104823257907608537227089871841987947"],["6759664939102112303827590401974759829449421702611418790938155877570612738140","20334065498055005284708328650980630897340493133963524970463742984176751799878"],["25654705247585494127628994349878405670811751617862334462168375153902008725196","3938456085420165612294832175778386611013485578527219640570229625421536121402"],["1379379690223956160721765378869872734036806354926662263926615408281213804209","8025587639202595221878370212783109401772122444134785923155141594489584318493"],["16466217614553010876845226015454100762023265623633869874297013425469293173038","8246498435054577606597192569040467369579096580986371419495078814752037931266"],["12481831696175944356077368801582236250743972289519608131312681258397011001328","26202352414697296340508904343195075983841121865729714214859711969967441754157"],["2933571054612954565501388019621883013826240549375273514599709011257429588501","12084779265125420302039819185379447893839783502698854288138992486512374695744"],["23456606785192978637425094604588217711049689848220128454971756423080867472558","9058930549056763922257954713400543244374020119207979250626090720485358753640"],["16578428844570929741421685104421980540486793282553577441345582906258372657145","23797189495653403670626658392876765929404999011699133111533354952586217120366"],["7316971631230699188076440293929762254553676496832243729114598818375367909089","8310057504273736785701531406645981265279281830112042818318765222304099219870"],["12275786052766903733916654996013726379869306601436666742011938216617851788873","24124665660768051763734640557393540694890106477008532315394917779758182846399"],["20516028278131552696039148184375551788500978359020129787233935525782383357313","3881256877070989914376360240985743914648002834910642320268841955035400646451"],["22999024747379199888431007688941448052870787594645837794677732381905008905857","22748374464971443176695541951553949932642878559028809491283252402640253468968"],["23298626296485724647692760911860511851591789243299181494705900150147173850273","5823485046374005115116887027257056519091777889176630686561061042662425979013"],["23389018391202565988622358760189909575149508039226213735944152663763176955538","19500124727897949932521419222502221850740785237543624950756214432887528202439"],["17170526417959666190098502180177284624306226396084653440380552330909335699410","24683489683740869734960606040843436708853682269311337581247777799880546042847"],["26274894764345356689354177325093384271418926183562447925283084775088547471690","9754581403195926899876421706002219122602675940461841855333040176220518867628"],["25414947145098412909724006658671732580630137709358373912665696253357374036575","133784497397811610031623045845315590242636964637863591927796468573463397094"],["9118480745722342677536252897163691031934132611184186539891111485131382628882","6869604193225477352209194333495750827685010855012439133891775768093967331364"],["28292634180510436812915138039999757145117522235449569705297831236305335872824","28572387345903806011182313704874853865326091821659106863548067414859717352367"],["18822819515676705429614652336604612537923949205482031790697631993690741463402","22792443767137962805914209653697785097051807380508481842213994576336564804329"],["7727208641922191171953135501660698513043892384522504472800718588822296824610","1201537549551578106356947408393773081221204891015515307673903578381677041394"],["23288624062500303164551820300145124829320134263465421963411745654846172732184","5928209835933437682065607005308228253498598452380977742592571447146862072972"],["22596153866502946172778754145726909138412863694738306071673190324356447909769","15545261530670982884239361658269126410138881691798192731072081575887593889176"],["21881245628377489368483244761796475693560755964579660687431645888344352341614","8321139675740965257359873205134675360856547440097282135541071766062657935188"],["23257385026894912781375704318121850136806242700488749751941828285661760327176","2600118958303059272773587127408615607697396907668158595088672385832392412534"],["16740133178383967701519483855736589806707026732995288586518397993812786396401","5733228329366137144073888637663646224425532987457480767855397353987536594398"],["23949217161723846873967572553901627935749755863925397688843793546317811732856","17352764514911784840865633567579864784931751003820907609292714838109527568928"],["7083044092377504752527846954160743415809464967757636756924982287017382857263","4509988883900013566452777479143521281901953860046720254204262915855486714191"],["23817369981598862241233180025666628447614845571935387420203024570310687775388","16602211059411461427245714883582387741378232618853158177488973325692908861443"],["20880697122970782725291430086085918266136589108200304780169694903143422338538","26736235312817841573954385636770320852850508296775570237320255377783018468906"],["254535323685023406016190570452204547546545545266643849799345054056426380245","8029515951499751614388212406184121053639319443822751421741001747667253056597"],["2148129993482963017752279885505792474215161494347747515067943677978741424579","7044308594683440096474249759422202125799153385586179117805306394532255289797"],["9617791666436806333560690206551074616565066037662899929824607172873788280492","14895055052102247449613239391361636353364937155781214041233373032809358416684"],["13816493309350861261440285782520014792841032975371562474705716086803943046014","13161364503485478584748972061309874362021021713152163451401472127022346024765"],["18854677950723644045254997385988029262368225633768755070135782395261491622867","6464387497832689973118081001397736755804352602214727782427236439499404924171"],["6109326203460408763452947184819691304938152297724049381637729054184330386733","19574346318864838195623513540766373763931674834885777814647123444603005742650"],["5119704432887112666469843728029893195763277211188042778371209383653571208002","6714916452544175914893043437571668977573169576235356877100634607682460619280"],["12884027560919432031271152338174863070132275270804250370463725592100193022180","11979579728016291904364858997386523235725940939014705420462083347528229846317"],["18198543195101077750851183585562710206897817810900135353311751117401216812733","15630243368885446761961343104934041449628295230320999684869659164085170704845"],["171644261860240308562054291661298263768010800601484898899900104538331795022","17161306352421242323151482740066294762436327495633959630124932691163949143841"],["27309798159713040379814870758094060145537941591202956267685567329970758441120","5635844317228710316643444869177687996317161557816799288867078142979365913269"],["25015459055245495743861613308864240466347902396983577550683353418076418215465","942096643800667840194231887444990043154446876737248081614603719207768140502"],["13867112725019898705428776055577704856506387421782938123726376449784328556169","25723350693159114514584524108467827754292602042781118171283350941035475267848"],["8031237833588042022223619030129128256024677525007722173273775683293289538786","28854774220605363016192734762094653293603874736868166362406738211284006891808"],["9568180246812543842126480646685200499996374930062493924019806508719218282867","5701034097480247626210050832546496632330883449883931984580081148934637605490"],["5398246425600088034056061500104101773216213771670825740836186026034121670466","7626023439209276908632767830250166920316115642362895055966286417640912520168"],["18698131776298368033173834304201863058352291943125732476778988132154782756469","17696880799109758499270887719066413021176487474027156731564457959054175870371"],["26842147157343243390980806429871642425376202172685071164008540465290053504703","2350127166463951502091970449218161444188949475140048180039981633997691324564"],["16329240883781058499679524008011251049360739847438485906069707533489889421656","7064747531902853039430906868849504010977605551897449513326236142181478803113"],["16404330678436439253109514032704969218856026161039531078998373733383360240658","12908764592704960329004786998509617198018577375726008731063316021484715937668"],["7122212409459849244758896667352718683165253961769961433480999608502921250146","25357557093408112919412417650875921558511898853146283213512922754014447560652"],["22773128256384900290008523814468273070507975265145315950612327919636396968519","17479066324437487169233357417558503578941030608014283718326130955960967486800"],["2383210527072384718180942053216567977000142776788076042923718144748150273776","13729168591991399563555054168756381382129290549565499524181450116907576330025"],["18314997442488691757940626781445981601108381967869112554961973062554471837894","20972014356556111547098223527035767475958265344666869891707481935059381199946"],["7686840070291940675634179807203454917414861980527379866504858795067358963793","26189572659708932424199103077987623631286067500243806045267748510453138531215"],["5327758313412382610007527869873602667854349805001292897836028743386342503114","18745933263256277280811546774925810250321138249231946305251513596007276282573"],["12587244034087352076139474768204362799941112212880613860336238348574979969576","16933941833903695042847602397552805366037977527651373486883032824378274034703"],["24809636815438131241460801895035912755709531483184275716600629896257418274539","14207370275456355795241399552270080187809339363110926954648216145907117719292"],["21918149087670664045622604076921901735809594559155084915556066241107229302749","27910556267156129337584564704523850949964047367771427207465015364071047206738"],["15940122801622478180540377684597068421520603142280905509828017517571049489484","25172952350905903989652288104203515423166364677284407343951551604493608418618"],["23932942291149389351612618131315730746659345118871334057768982673857535220630","19804954709274285898134267116329200043972132572227105676903820430139081916104"],["937178196841919424322472506401629628465632399007802441709333871439258462318","18304477675760161866817122955203181368245596777653369564505260696395668368816"],["11466133531390587986918205210930988999300945273230957323124366081343554418535","20871249555713088016741305526414044196237749854833246077399555516297643648417"],["22070121334272203930539797862952401882300119424637714041303158225493654252187","1003090353294160474357962210802601680475119193962982607618649533477416448206"],["14490754894066237113461923998017263879917472990981378176936178310319288182608","20653698532229874795415691379760232298747987213698864559948044160712362472398"],["18392617908196332887009136643587211640671925553175379936199571408469527439269","12746091837655378820838153751883308647308167149765944086518411939522535290601"],["13872477944245542955158106538732955291510579691439897566290793888424819333507","27454579605276964171385413001289128394405405844119793437352696207863928249435"],["11014801024048401434891200889690893332038177908996225927463140675506281689509","18549529478560487525393907943546218444322741894358523120419571751816345425248"],["16860873256924298386646156024805313850949042049022147899356315834959600879915","12607029705361079528711787247698208895655521565047791596592373940285015154446"],["10125882553026574337260144101861647688444437296919946228036319102575652476796","20173879810774748586409053049927279126287856169292605339785682717957182059046"],["5284109534701641804486723932058909806180389024641288556346525978189439838729","22385970087017072931646133759376571931476195414421610277133955047374035145465"],["20993642975788690870724542333024581819978781373538797603286363453312499826266","14012312368024866469949187289951455767004988325459483589132358436618152527775"],["15435816453194581432611729016605458665705671403037717735583416104387638902167","26448008948858749673365758934543729694244151813887184934199582794713803294202"],["19610738546825006433540875495230951446661475287037090540882547106846434574749","26127941967020207555347930788859256362482877699021969695078105110744030590584"],["22774406148850882226527419513590851852170068068088338720887600176886842734664","24968949089643252712643723925674787112127609985424323487527331258427823691909"],["7545902643886497253721736236224757344567317232337032282308055040495725753071","4292224041355603839648140564534800594662624194129477571594113963944493732929"],["23688239033423831281444586663313486832271394680428870576479878681117704192131","5067133515669626250279821800255978857924768185016339707510884121496073183429"],["27168042505597376248083006663898955942397865048672787397377608787232339750580","419010971916351607521756450328491984738343344911834357181340218315984199136"],["1984964494489338691013645298280689207879581928047512422874326618346979609910","11606545366492271447317137012928458508647704617051306619915296294497210704807"],["5972595742528435753644089806868156202178642439449310096891735915916548588272","17924531851831690407906790733359926331332583393958638548955911512089899908215"],["25395297590799491057969642735849957606214057777481077030155320800634925004271","11811105080424113731305025298310207130229718022262818482433413341653931971821"],["20416592361362197304886706184038507299784299774247152285836867522984881102470","20838310043536790149465744157465030661941348703138309662405027085010328557032"],["6097420775464185048771565621970001240820888966259314323684694331454532782423","26817253903427524062396971464340225162133852117439744303852070218062677937146"],["22036116268455359978398047410437879383865364039365332400025482107850292572032","18013689316370744200387312844398072571534855359534814586976957460929422701924"],["11627566396308636407169000788096632165608151183106115485212679460669845123898","27704369678175208844364763388280722151455916244622247717368032640798633151857"],["178442770673242637531518863239535538992611140478195329801998394123742520589","21766113373781197801305362424075800001207737771130905085394008332113225190294"],["14638454094962511521914094807364816340368771202422589806008569257345073753943","5019171831951128668439116297255510794490670573558547641097836121103745227968"],["26945463647524942541411687606538647601054393247151033699212473301695341518797","4375552446800468275615724167217140212176766834336828491512050964675525217852"],["14279861274637930148080252814993287285957926311120474544629990388947284092530","12689970525525357517253154579101727508048528907659933142080360389016965258054"],["10805651348201731941631477963566362906872698600995165673550704595503794386014","4203093994671231548232977465702330914291047398053790247005883128483119689880"],["28117031466804496748840406157904662110406161076536938423776613593460078842801","20732521630532186889427830388895020919024894376621166501336857803609418167003"],["22739889138051909134703283022921980853684982475695824638480651098579801174410","24330405484789427805547225648504180281288457357286767966670506694440835882441"],["914218889246699451016748905997614101130991325579279307034926628156401378340","1528079814454252650828542366815123951209884343567748515064520198157237050697"],["12304339952060789741555611303167387224327477441533768241951394764509950004593","501178616909439245074586124383974930767177449927546405966263211261126493438"],["1600497371628677979748381056073199163798481253037641844252669610406072153138","13750195352088513266883577121723773971304814913585543101857930379371864296645"],["9156512067053615380517920818993517293083059959658728108001210426149772375640","17688973288060897423677642411547041800644912628553526006209585825002963896915"],["27206176854440142832413453830038790923317547986238858305143258479823635923795","12089653648116128994504989803179417565984269580652784711320859152483682307931"],["23879300809985837508981429547629134288266697525919278282560041102786214460902","24404945422771985153009169529094004163583850861088476371419741703487864528793"],["4747296457749640287049730375181158421633536017387464535193139464797906556617","10053712479691346369517231205406007382200635211924904592064889610825329571457"],["6887536895955047157960244007445801465378915226559768050033647259920259239248","9350553733291757011197942168833448456852035146907815609274667571257894218613"],["15035215006939749477453738956531757293221813512368559409248982374719421019769","17690121217204553246762429403144736346744969460653837228996492916706919857384"],["8547627795922109028808535874518701270756080944816056054397258379642803480955","24300796290107760702631518254172295768966801971515807248916595598366285909714"],["7808624539030968082024986767150492004401955449702058201965170970278230866423","27720173565169069265323525338890969823986214608641760219684286174098128085317"],["1523664441218698475549568163488222197005733310407296451792325417701002474003","3110794932060759135016933038187234103377098863359686222386660315367244535547"],["19939604106084066707529006706611878054872364929509095167247124456249702091430","19360846211885675953015764727837244376665102994383841040671051906725159588032"],["19268028356029729791494316489361776280040061506064573481117882260701040158496","23344871286145184945396415044036629826949000442694278758129727784607121251531"],["26604922743150847299037967420930654237662727128796418143278701022851097193861","343950748073568816816190621515988930690984801135525857668759497734812001315"],["786382809485307679922633410121302435725588838048250234325593211124926711005","5768137149358426605025258756036984855483300752790426332424122223214048695672"],["13050623533330813236129771567836808488040674049635666806412068972210639747069","4397119349833530115783298735354633432056547799768376817564239674647347697685"],["17956476368454917015002573181338254490268646897154708571169672599080684252358","1869180118451277043701356703804940423388710392440181302594480149857593443570"],["23740195370941684385194966148269151559704990555604513939301865148329788334543","24159829440935535320058294963029142768452972898365875119022858430403498751460"],["23124797545869402874269027247344109687837739864770080406323098809501928904117","14460208125669504382563903817242048319575123160338974086819201107054413797711"],["27564865739877128714375998712790753323760926298365970178175786239385033538431","15731609841044302702732253494164237152710115856220250777190877084322192319535"],["1012098587084136597747326018985862120148392206773657493784551409382146660894","10184449254833918554984113114561986234551775517518806967191979334228375801988"],["13733080680002104613478909925301362506110747821566260198370651391423622008758","18046352596237182642524602636381419541831390767663278653907081108909985361410"],["21005629720853036237757251951872377643888375984530964162185739218077630388270","20339178230317610935384530297723706470159608978898032256905587243331035302821"],["4670539168132796761903005391711793103332489719011286154308578254676533560698","22277082098470909634373709167724233011521843726992996006205934507734057018626"],["8977111861373000762868659935199412715785060105200119922827056739140738526667","22951190974249635484467365914708850054859690617386901506552072719016557085156"],["3911028735680912093456565767705608769010500477771838247369556883207431062892","6585066208364042419208568610597148643994656065473320099583903165444974747077"],["23958263348148324446647782389812818051571052610346417622503564486242219919493","7950748443997922540550268724539624545058199041339476902237299713320028945917"],["9223897693583843408281796361902010825874687179475834844607128402758250158013","5814285653689936128909816662972414145959160413541352557692826389785062022116"],["10133696455846415448953086448772553992105835759767727104022589931089208311379","2287887346872031725820945151022938468188720382812576101566521524293516977783"],["17734087410913382924655970009947802387758356078912571403327903095952197131864","7672600546985050501720418241070739204984657264596862424015776742306474272450"],["23487076218639514790845631822761400686593780957099287992154695820423413627985","1221631599773434913932378636629578050487074897398024870362710627939934883281"],["21640313651239623723806904529324102337269611289661125510056354257542613353205","19492702050778154467953021041399120565777035156764127882505577828714729137632"],["14452529700937343492569531832584174769878273436891187734327930666044575317383","22758297603726668540218027428058733921758206131347241202395396856869390307103"],["8586865208796059825192656341979179972268045835109375542257143647630947375582","739635032108361300334723319208222602635670275737776173340476510491363574143"],["5441842441001572474786290380804202407485093480035865840499434690699748559567","13315579153438512267508685949721695136224439626734883822364983151639195380920"],["5497870422242986910610950854210437221628394409454214189064592981711508988821","4178185238835680625749822452342922242587113707228400532426635341823296898700"],["12791082686110375629440620354293822478363752508442242431341688512575540306157","2890882163910215117522359126245398402097179055999938560529788828670546391527"],["3033419281530715926355222130740101212937619405632926507103321990660169145684","9804159873081415418220295873817444190360189141003547328023550995126097481946"],["14993744893279375577756969521787055392138891168714230630956533392420317341588","97469742507131474243934067163833521373589315655804476288230504676617162544"],["21146235208212836107878780697244097165070732654182200799559226317545195162044","6390395436705910716134353690283964489076853154194887784127826443743623867883"],["27247460408174674472929822627780816727917046830151789621787199364523632201466","2609463540222326853751397776743627450186598061436585731690698234966609590951"],["18481171230557768537462314428595106991421656565521675477261056795294529059072","3581082766200855438455101758290888000932346734007747761552606196270155178102"],["10775228900357686499148729683576798015228606564241995624583651756619805754986","1489866640047385891582031383423138998252695874930302541444056507084169231076"],["2585979259973300242955583135137884756711240769420911858631399256990334328717","11685473449014278878457852821929044402987221913825427256293299215352137967405"],["11054841121079275899883398360581370526737125734306867136528137888833965217445","19511273754323026711845134603972255270087821677185202851739299421788954660271"],["19255265611315000611861375819820355236280658724666740886013492532519576082926","21624672486016365909115156261695837431646858993454921645075503742205431418652"],["25188847463243779324829203261707063588924743413315160867457310249773748843245","27789437548733747565390360775156592232896707145750025919821209991053018850513"],["6069927792586416146827010413830742001529301843759848275187520716028468946388","6053802427277133320469956843612326238245239071973044165743336715646306286159"],["25117055615858373130926642764162997844615616266404398062788916427892508577742","11070029031974732604123006555172979838269631059121600879059697178119642322404"],["3428950517375711244895099405345337655906739657691001866463661165448024474530","2102897227492259891293439560863477798497600687642363197547917269027988488813"],["23670320846508000683753071782589592914336119110123974416205787436859111985120","27412501035485938469960374362172297803165002113565574594718544514058328769881"],["2614714030276926575754674188180856023471954294477813516417161536038967640303","18099414069091096636034029556242126115282891246743837575569466781016341240110"],["17830486152380528940235380750838086755745365579901461508328704206169720541767","7176232061002603703734178425618869352309272161993099557836263693942279611006"],["11049830229100052508613682024783773163008313899181544560158666957626247789328","10565385061298176795078373042652637940195568055494602731716573822968314785046"],["23857530439372173433852867701254331194288302305721742635713240614388063348644","14936664687805908931231350407408674985030667351906175793240733295145221764940"],["26882105834949759452025688476972926963809275769348761974983041506102579377432","9641436761926167906907470275719895073134488308131236516372009883447619638396"],["26402874376308775531928610722096042250431815910954141375690589844357899705073","3894429474915014849115785558447644769484992150831854924701431525813274207724"],["14443566701896079385752539748189763527296160824485818655560027483402296351151","5465844492369850207919942798113941360676770956622484414297179059282658993499"],["24896807225767586408046548292692485455770810100837841225998734741317700830414","16078038684501454552799106593925618161696708456643877506968971165657943718304"],["15048213426695271611650036950723191766955257878391213947376102885353733433947","5812215935553435849326258929123394511664113959705182594243352458590630408405"],["20962651537140280952330025579709646605390493989507252050320646628230703247411","12732134556364974776868825224451131979864055911612390286622733960690072842072"],["9581207343225426597043173389705559761637825239778043718882349044704333930346","6739490250208954124520827567366612909093390998690647553084522647899645473547"],["8837916536270623257615730083802242781240544093712925404862843288848867552278","28573170759664825794755225205083442445101457647571516277907056578828423390440"],["9627318356872590779596743313994744051080666597207995688693620929058231713383","7324088904130711821268349550361555456060394833500798362856236204131749939410"],["15415176427462653168776281559774048404975919786701752389146510458771356222280","44639845584086256342059586426467649688897312371701767595616113230272883844"],["5408586385967422636838534955135522542161812060143458703802034188849773179728","25644772991116701984193405868123326304593347954768727329991264107331132396131"],["21662620653541244300919457409269879243809042647524556714403247266854207148225","10710238923065606658310215218015037315577420305633652925901697610447586630312"],["19766803568273697517270199634662757017971287114467734440040794749859753511162","4569391826724596223442051599614450018483760680087457487983567634582702509919"],["17371532359976114727673799514149193518635538960035490077864010153308590558574","3907770059414480234925792540754330713540036312725967608135961960854464108832"],["20050370746976241374822875513405933236642170189161714266204581974896112422398","719006065138002213066151783661798559134973789852990991757209060991051801481"],["17424110823566123296328192686895151595668419894660211789848195662854458297616","12266381942621005703401989093442704745874937942810327584754510234412909879940"],["28545296048804796368706794751502880942657413420490890567215628898513591470759","1314776671091250949038335803792294964300035277304255362857985416223094740402"],["14315192867487741677437946885008259153000525827423896649667758405504664909898","26261250817789834332051336724097564370718767660782440188938083566350942504712"],["13015320124016495837352199786912514259284194987449672399635021458195598750023","19415528126501643993333664207934587196846366653388698039225394004237491046974"],["7908896143943223047014376990368512239619985648381437450385542588565556031340","5310662984260435353770065341456056735145084951186776201397765291590571180305"],["10324410960528251734769830207405167600897266316361947052762123964063991243478","19392115156011816524688652024245375095802157967205166304036932052915767982327"],["2857713532120010409823610381936147881759712897325070252050652542575008442016","27056053467963914304801921321625533825372945108510480332253532583304806994124"],["11410172842304664641838986845672721003133709098715038338429545684675953652640","21670742778160655012304389215600394336382203329645741772251109040348064057006"],["7412818165714914735189866490597057276196145113004797569481306795721656751738","12233503657749068825341167121580580025756597124324748123320005985017130771359"],["23235872718953202801146375995777527657425022706034651188245057795189111191076","22868950246426211115950175756689984633573815265539153787493737389170405480205"],["1978198901594207501536422922252502131530280977296502455828101069500067689593","22047867818487481019780370930262225032434813074384093182657260613866403752962"],["13856354348830704872206781496306710056459101740795751876409001139405501134973","1267919249633223185612226543266731047177072150708832617700412575509816092026"],["23176386106082501479422359639752536387912708945884563486370786823948088414830","28212531027896602859846388508005554110384550302957758022016398363014131846235"],["27375299658974824627077856193785537839815162478691521675475271606456771903518","25556664544899032857176276471180553280338252447643380714724401136611254518773"],["11292975582144660970692349004130924561107986303664628149790372996812282101638","28206499583038539394806091496426566870900486815939166159694436924003701670781"],["1555392252163442428745307569985268260271705543502224743656177627671845639581","22028985019189158370703763109408285987598516409750749738180309886366094196807"],["310239621269591997390590403398838800341368690158986865249307487530290686053","12874751833388114140454866121825434931152009148572236872568074473071932979486"],["18605400018523387999775267815600418678059100059031270089592732754746249174952","15412196460330369948960756183368886019601344903534626669948825829842636472248"],["19069946355912102929344226386104875421418430874620492240553652056530232716843","27212541339130321472656265898818353131282557179540975851705204734259965803240"],["17031781505235498447518695546945069262621160743174149487073194574654324980933","2484576168864991969948336481602496815012792667966591675886137313036627171742"],["3712120088941520270932214567126917900646130096925173697015546151431956332526","8733981122410930321054423411875778850793792651526664062684730712064913962014"],["15591920782633092274374236498081498674076228527583742743273201574702268849845","23677256465494346490309442510175202482023665623479901207886984785823300549119"],["25734580236108292864324462906689911268710231945505587950853416060365274896906","16369503889224862567736271883474922657546058674374131409917365152872426244545"],["2576692040563196240991492043279141067408410468914506743366971319008020181031","26685643516776402479355171225491111749956858236870466555444822423295415341621"],["18414646406175151252525469021385634855753272832288019055408036490024302303665","17735680892065874286902177519860862097322567201613296149427487662234064885630"],["27596900823033767407311788118163108337765570115820721067158151823528583477843","18623995679923785207430959573150128233275336726229415051154794142218618614289"],["8673854511127495035359819034186766050609454406129649407806674629076837020724","17543189848665418048592406315047217370684860636999813804526996548046006932493"],["10767255941266582930702925479731513025372901591524147578522279445444193970775","19066704648563529593426583436990835785422171550185228607058573914131530299451"],["24975576006933291323735012180222239231363502800060707168426013193213857783615","7497507915161686440158816793998787526827235406031743776745148823424245527349"],["21701275955407426662795714456898916376321004236946612373831952608563972359517","21897814035427338307375003167727535380674490364847754984692453267420553046444"],["11963694259807844523275363832839168593155024025254956032092403600877128013313","26344147504938169787847294385547342502902140703943687897221696352023666074507"],["3332500906059564402521206447544267596355312172095687125778641148320050752891","15364200910408055879623226828951180833190633998006496824603190295865865592273"],["6555275869606873465521548936920505527920950937788734673819998732645539614544","27651774860503432271761272320702975991421877601977306847136441406543031362244"],["1286786876263373047120824015246501543986933627914945133031674621047007003260","2821474979194128606298209325682711003018919822307618538564427344587206114477"],["27840357841433590260247573070940318552332165682228731800372946283059054139542","6298716831422534080238537995269857598921262618518838683801754216697303313758"],["2410828529169067699529972497071077504069575853625421928957219244102980679252","22518728678908286533002262025797007534996118137974235335715796729185867732255"],["22530640585706059592518492621459150734278037311675963080401769864985460369470","8674347175528227929149586488611139560023726237885941772749461486369190829023"],["7879713971198077048121353435411971302628286058280865872262640766271520915079","8826775157369728862476366393172423323938049412373072887823861573899274873882"],["19904278399320485099782519513247084058829689731600340150068636975280648670441","28657417078039282058780370597091340563255613096728593279502264512568298054414"],["28877144480040832720426494573283608294798555504232441587371396138922603570442","26197160052653216921782903713750977319669054966039098620806446099686188559800"],["17587879343788071756061721326954353596912346578645346651778214075290034867780","19261618741654939364683611119359162536510989341369094013627492358087793314773"],["9356754643045237782927861097303384714081695596191271414032402111514060276986","16240615038211287638598964638285308479012712360254031177422789330197505985000"],["24888140005356717652549209551595779268820961682719822845928981531096925193091","23502691218108804696406794347718345258054711259536748871071288600427222589782"],["28848195711041659034154843862457994583353405889152360511505081962614193752052","28021701888250142466204907279490477129043838159473588044936928180487214674628"],["13134061670391127454536207886337664380219791209234512831750984037592763810597","14727906020492569570476651484533334902228960065784120658571793517717464238687"],["23975062397589013422143323190543397313414175756069290523127017675237292331351","18683791907856955376138645081865154623247567603640764845596626229538181023089"],["4731729733356780782603511039151679932582093960680415689593663062418307066911","23023608852726995681550365460649838417960242041049230331861865171919246402455"],["3696242554821065739832399179907905850844661149725936372694130447530284835404","6659782685041414901860487617923748165899216929709148313012117915587745112572"],["26852165904888046764004847580696506914260985792044610220806854583696562708416","17823435006518866466017226833751972221990675769804255933309132367476457679532"],["23627737965341070423971408899914985597895293353475044042691924567296257001131","1362411491101386249910496073609439094738794666980247560869067843518518920307"],["3685315281391352373555849844485212236552303087790717326516809890764951990378","10144584810948295838531889655651834109430495973009801608591002726945101070227"],["19074508643641463662348007603046907483564676252634018904988285054932361612185","25266745859148054673719936378081699642744635790598077861475725951533997752684"],["23670499754199949698035123651244792039861311765929818350855137145242522539933","6408007176909088836803596200890340733780170875346002663261959690193905268444"],["8018986739640523645932582105249192369830482886800682873605802769428571860546","26524545364701066102495551650663410771583856421185549510927866492530308601786"],["13290591296719103019212521175501862525935423760398105580612876840775204871504","12286501446290095479678192677872341937008235740412190508194112593614759466962"],["24895420228038222285425566350543447204641638216170727737918342425773214152396","9210445758375219809778693350410229584875423599511474031865662697520136401858"],["10881948063772511766471734706634352644379762361846164162284802260214848489460","19102956236948629793687624593817100791640527482254853932754664464955574603241"],["5409549321146062421301338332982618327127130715302642044826643481045281818083","27074676837834954939410287305712973431707879710324666628246928364512346709600"],["11083880088850247586282177870958357953958332734467803499557914828283223747646","6073365897392196197025068202588029799323619363721622560020054091841215740426"],["6020509474546542748152457676159294022240672051022902278164560356021137732152","16146106983267932871909368519447163623217722836151291587054920665341951207462"],["16299645026366495655116017410696361510761920263312342090354006696219659384214","10506681490213109642613700087557369841286850523538186031571030333676217408448"],["23413222240350964942227479440813186356022622226398181118031168755241600000802","6144656808720747201756225968745675732444023866064679514312430637953026937619"],["25527964144285879877608024572614556116070512914108897741073221680772325807241","6760808037039253900171629971106991404400809114635189576192847806486884419416"],["23628309748113318185714183670308943368860492267905578720751712721344591513118","20083032615072375050607234565669689385147002379026856537244041962969152817697"],["16497396819455803896532839531118315007179508231323575212241835553797391575710","9478151264077067959838693524247964322189373554573314209764509215596470803109"],["3146031039864278861135481741742842325046591354308153920870824686489209771043","19324533912962085703167322518460530712853937035688919497979970206489234798962"],["26059812700918640010230225554926408938075326611889731691757863816068154439428","2568587036253336250449451568278684425177344477596389473772835270564617064825"],["25286555214538480022715510317951839717700863409958232909573406067993307240849","15583876972770637727776188874397067268749432585300193304712833957888064991524"],["28449167583051810929053488425066683319922369557991223953891792606295290932561","11372434825887640745850424096532777991167831389807211451610074208353453633193"],["10094675214422455822056864738942514722389623246892444173979422477593533844975","18576524912374174268042881249777273456919523404760134043391140551625863898081"],["26951349526358929777007750245184523290695640478370256450620044588333373300945","10816600278087431360958851739999814613224597057070781479409445070514472513728"],["28366341211016304076378199995467558025615467053923690578087381798777262487459","28851124650997802094494624469494234022858528613399292568981758903905645498550"],["6344947726054038554637284276791726382261512490191535234776902428656817046754","7932956139765988042062354166452933415768653388362015455624489817519255368941"],["17163789423823638886650440024174225498454755263129783166503279287816070811156","9617235504497029536560519288753873672365242847968564602088499574872990054002"],["7645283087938554343845861298194683988658108398448744341881642811130420791185","17789972905047108269594835260006602362319632987018857510124252505176423300333"],["22617992316165026692174711742346888119162157417323595807620846262343256278916","17719120974574579947787884393991781167696803715191647534672000470810824784829"],["14570218155349942026317650642431570294617437434773650577366110673931574912502","21304942042323018224691842789571507599346027131513993296936098542080922885741"],["23494600557101615560983077204198912173822065376766875838760412539330197618196","22037762143164744701126738859054686418992177822293592114767123274769650225769"],["4893284306660197925960062701064471706921514766049051133864456434986325685988","9826552854702160030412223579315168179618700543671425305569106520169525496330"],["15017076249564856908921672623032724318119263336871110053127455634677804237321","25728382950523753345091212181868542412247626240099722148267057214707318143057"],["3302214410185389883385651161620608621882325075754308901735525830713851835988","2882831830901588490180040190854172380840494389840953790095239368446743972433"],["25305282230790583550955370481644419931183186652522701371665540807014193488668","15040573734901849840488858077453815569946888666276143083463832077083713103819"],["17604605636599840194117828541521574856340464925513373772234242016478655186161","6861371376237337302449630959797257954495772312189397525882045692964217848006"],["27969416202464268155738157757231287633116156315562661699713918566876812286745","13031962207820112109133657643062335717591122364560469474805607285302172381146"],["15061173869271729280259130589839166390896559712415132502144251225179784730215","16641551296581726509432195120509773668103227772655807274803135913525546328845"],["22954662716697547487037098068762396356897162997496625627206539966699462911291","2149741342359313909502477547645806268531476249644391524756886782447403109124"],["24047673905653483305104503837644659306447282856949722217818219110990863976312","26104869029010695365350285557701299399083074101993985434630373545173438552577"],["2321081380320542517066672531346098712636323474224411281354918795718013673918","6197628320071625206991243811361692553230680260082953163906635282414952321957"],["26973129634248985801435889479911665705640645102571344277753940518564346774895","24953850893147411971183213383606535770033874864636981442832800611482744376631"],["21932923705467686274522149430405928899905098008606333014224460633298755860702","22466629490281539187658842534956974382355795423394086717431414498093064280925"],["898948061512932638906646031056359807674184818262204449237238406381820521622","13821687894612233199587142779697625990452026861012181314613723087844583808560"],["13538027298531818331893934472155173468965639544284921880669517840624478115480","4109710340194159017219352904776175516481624817672505320216126813037707212845"],["22970609393441226384091374597854719667429287282700566261658146557399373627658","1223489863804236961425113610772798377476749271860834408081402851955465695003"],["10150244109439009959345477194899641444567720347313203431964360364925354106724","19964981763887203508288295530945776846906603972107543856714129595647182512166"],["28195065431574728775927568223800651315962554386791894270588318439705495705220","24915042244254293077747137828180193555606388936156585757057837302684391144920"],["3408185431826470593431263170449765147727584142289931319698168386943431648504","7295242071231841982722687757448649919752050192306354094437300084555944262713"],["6995114405629139281177599076282358576174489732447031776206568732261686160548","8608647774427332003970677124618405245497051729247654624850248035181918511792"],["22953493514161590312446340751815988965375030280286584512513782149837046872432","17620108870443342264551226211373616216326007612328160223221523721237169535970"],["5860435929295137332362440380158997945274351939023722348641939879314746520237","21693523530330632790812473428702611250534005712664706473467682947646719600321"],["10154143696842290489935690451808243900298453919809086771842405082028544388676","14933810267721395208831852894788180234219152087065095017547637270717782676516"],["27756652397268804020354230483443134673291201420672101960590663030926445294027","22047307088007647084528874622282867655018622506364899848882968844951829592235"],["230610709327713127548258711041743260237980987598935287850511764130511327863","1501467881396322300927440747464095107906350422136028225235759265979147351227"],["14561051550676158754107364039552444929583232605971237053552449980455083948672","17733738714332016997358664832770371509957550909995376484464935652620835121227"],["10373193342991523652431141010806860342325123519149803765701390895872461442922","15899407652505958694358202470330193206888844987900185130387241033404947389955"],["8658172287825834210950686789158825999348492943407219009650101742733089089789","25142765288055247236484850322127566253281731683777499832745206732034608515967"],["11031666533160460408540048631695370760980796942344261725367126474205993866741","28583406656508074758675775646537433800157928166211876312915229822464644070694"],["5681356549963988951009345252275088397835274565279111476981052048454499320439","236426101941400803004229334367587470710062450372653055368490564239837263412"],["27781600422225845839283562353016338665971427999868143849976295601106820156722","11704875392977738145904951923872017429636931628901094265324346094863670744829"],["14007393683114033358232040480049210673651093438060914741074102894039183020470","27605685403543498488130102225059186430452091303613212326604446087929537913380"],["12892339155165799680093778150596109272211822325236205908434634130212795844898","15943881416378338809980432456356936528435345343370873656614754197746564346059"],["14760700434043118548382482371133348471658733366690933754431598889560738382901","5678002426682123844759839401529526805699745721071473385238493823790454907903"],["10133359457527110216121439223825947865241654062682105141399515141899266013507","12718341728570918630961536568103177133866589619889402801298828333115810627591"],["14805897113712572440767901873192256200887593911864807793278700785922449913862","28748732972892003624843179543439248138337229994659850414343734750091569645537"],["12646057512514775190986644265972071683666183207746820299928009725049209122802","3691770257663215722866143726258946404670208256576477950579766112626316664547"],["22349340356323669589479633708698974279410976662126763140419419268143999524288","18824049951682476408282987296539578749743642996392423570659820555573447554807"],["16020244405455499262195879754333023671257891644192041849967909074014329986378","4953948372564655347538023176172565409864121510205604386399823363782603369051"],["28128773718985819296757537312952380612829970527263280782921667740205931927234","1749585611234138749652515742796136321410672922857422851503644700688582869376"],["8853749747142189250116869593245675601453479087386433589987312796771698928001","7077966850857796009517188225509385588009277693758310497035583098698288965292"],["2087725313301964081448682536572736405765783776377253483622599967402011616162","19593838339609566404303929570432418611358129610253155725666614309006654866634"],["8542427298670830137728091020230816827942034571628560145324978610638533035913","2551061323124659065196587987692851499371730439820955299770700011164883698182"],["1970651846327980057492100111926269627971226459112953316189340870869124767760","24598065351232024905442060413718729860711817832836077301867406152639949512640"],["28012093272797362238553334533765164428338088420401201400626703783613675233690","16718659848561973258356847701975446868906220715758815814683773217584166578737"],["2660156316853087833423192271916929548019436804673935654982908864834998462122","3928346661997632520260223269505422695219589628788779873381080942094456509660"],["8648332753878388810200520359077086159004748763872973524023640901978554175521","7330927421490575940099407161623076391270574063915478291308655239093120260648"],["26564396437439824884374564960920192297865407161503947877015703807124177022319","13179056997420490301640072496526721878380886794937183826827936186374250770145"],["20531371979686290622754665199755830523729510357017042193543155176678691872778","333943122246593831001333703603718228644672097483328422928032649230410393042"],["9471559536557914632356314564056033172336424169239536207960279792069775041036","16881276925645840290487079432046826058788513922255037463547093424668771985905"],["588518678005212344505792549558450657730738428915778866361672366104713844231","26030346820512179022930147425507518551890267657548941454547247569368655782470"],["6800301728875165012879770252126040186067767921380457512679033545524365466961","18342972420159712933318837201998395652787948438554317806364255885063719528086"],["572289822388531592548592409538962174311633547659076849203484698269955998058","4258366772924352313528708297470527794924900967861739000465400537820883359321"],["21650857977123970281275633492453790451855931519771731363310097313018767764536","11709018762146356198326024949172580986834704341608231513204260498796373203618"],["20836544913611581024644471809055268849266610859446957770617892471322766027318","4060847682048946055977999168614504212067183398534828129268350857604866115572"],["18252091751051201700240378359190411562793608065970138185656116826873275329362","22498217379246945909742052801885049232926135810765171333943360549084862709328"],["24969430942362415871136227241144004769617983746126976026896101055496819714114","25020067822099440228323499876945578055929333016949243396691053147923137046776"],["26130860482813278335996240936408004203818311929793493573271947214108227628267","2079166746473925215104112019704145604358469231586046607969635988872987784572"],["6419390853987874572466413598548840207920295432733558087055343572834068414238","13701292079644629333178782429267743037453661086511616322259692394898831727321"],["22994137070138592132389623253376993744295086969677629106334363704693697865232","7295128954446082021815724852076404442704455237505510054644160870849232748470"],["21247678313095571245731306434004927070088789310545502972850019180051017634785","22536946450667072431778832058447337577517911924404282687172268817899361977233"],["26676265515360973190318019222286947686179503508117524553236490290899295257735","10434581487819403451493005284014447648510880621724907356152560191751724896593"],["17093027208778002474957046936765071832440940464084371594358920091646623654296","25824610859646678422580039184869775123449471408584203140057007745965741429628"],["1237307934146098652027870373036582173865870602139730155401769132683635196934","26825048823777533593969936051689715536570989051668763827981633726136860654827"],["9589167259523616743709823633556240778632021774985861836747578378647123376494","5958402355281814382302961082890072165359591804683186188414088964789916754110"],["28435061326306993974363256521383222242609656185935149336951224096601853997710","11946048618872070577857316975678380725200887933362801998762468989004251815526"],["15489649255606786466061161320683125444111447644387669235493230452179343497843","26678481222521424954653886230010010013706515836376120922576414910122144705309"],["19329051136868288020352537208056577762408389665902639223355425887864243694841","4468790710055117160346504208427711715332423888387935370539509666713912478413"],["26933862089337629172590289713077785567363266903890626723289043003002531847728","17014732428679896899036330803704907994486548240178444753024053523409062246947"],["17647760511886182784961747160587828435107781484121606011455060586034785510025","26189798282740556078571908442907851607822881584762622432504244285413041120763"],["19045150117546305743242470907817628192762959199127145325014736263325658718988","8994295271253999056129717218613308705057130140751883816338986644500826371242"],["13851841720304814872861142551580593197300680351683590313403273038821354199458","27848798902206065448461868926669979747447570916312797397953534102916046993250"],["23043312969617463989948678965327819467554886717186374726041102374692649975955","22152969632271672817105519981298994534251552749533145973361669966430685436007"],["11829260490295577161598062602537061964367288705194244928569340583182376971036","26201447831790098525173126853181936360319252786633602451362227162022769626696"],["27404616785776010747282006057418081866826457089970406678381534581352840043981","27722359737771710183916763887624183470744972576374097123365469484257818375635"],["22706916817107414129750445297182683318116050641776062421457450905224662359469","26604893488192824365988716483895705403446812279616811349273671237545985684235"],["13928823629440218212248070936491924718262771720962027156004854356994152533372","4661471090808090867112475091175867135427852205178822725015472413389517796649"],["26219625054102882124934391812454784892773099541578942003840660667557690353831","28211914228277259206415732688952104639103840573730004256347750773253375134740"],["19677016594858738706374893189262726362825512486851043388036543397542445581545","13764542940220224493975720194169537912864721516128896053146526838297203375624"],["15586517160776899762768104402644377768466647412854305241601461158437562105915","20695328102146643701476755790322634076794871053771156340649631023657787159118"],["8439979102792243543449892403085071280081375717018798768142482695550392261230","23394116224555768754435766273971377466038646977081679944217187859487168303567"],["24419161662542394853689710841242284033768050771298257168614021337250056843215","10417588575708822452956467102389706303099682399221381571429322399334940121616"],["25659157381305121832108407860146035527387793340265805740910551928434199245289","22683845315676753968197835840957364686487542429168602230099991017631899151954"],["6644637166340939577027386694837422437272659087919262058815249265361633673682","26311268335726922779287928301645374217152166697648585039509300643006769889132"],["22120784409956879965080304541951179024823595619463630640496637838542867121908","4969670798708662470440038198330321576966719399227022233897486026627067763410"],["12766325331973478412823031042251444525894046325542429218315423592287544910685","22313651714197121740810781833162889818665864338983332944809923816206638948479"],["2613062740804567669109923433352534344765998884208921753030690291884765815594","5507495938636697977856540291237636762812448155071620059265207784865622622952"],["12644213098002958949504654308243526417426588653423372889758607655003540822003","3517876182002862677034923918290553579691205471580177387760639857897498548067"],["7071890760094813684362600231790006112552831383520754966421446482126742708112","5909902258827056187159177343419790404951911599107652428277894601199155800715"],["10903254382492636765254821126632148323021666035563890081387860936005286812529","12527582585725937156211435767858884090820454172349004187136974297536838846438"],["12228977407384145821959332745340030436699219189836060594604859890702037363205","6766276566921648299563607942959599896690780213515499505497002031609489202757"],["3513403834005785444841518332570065433369908581237545643311830245067539572350","27714460914561402392606018831974472793521640537203177113266447164339196873576"],["21820096129124072597424495509662485497788412831675550436047048845699328234789","26494247323017106222790272297681955689187445353509332137563589580439051257990"],["12570036981501554755225418322659024071538296042986848326686739387883209069047","20746906241086346314928903246513612116836087688798327585940722069515872869904"],["21973809947363012751818189941713420115685941514700192888694254584989676611250","23094802216252105005814047490313277136594465960430071716531947631223445174270"],["26160431319088737124298659804536864624198932537660077328760979041424895596420","3973430216035040185279986042147572929712258204438541232779867467737113031955"],["11132988597237822263813965939271730041842018667295057283037054750889983896149","18252898450112784583172016085450350993775927528102429911221641305407271700065"],["23850968912739030834750212507385121345412463722575418690063886403028887430385","17643043320706000022642440173380826159645065975078745263884682344255816459028"],["11268814860985273682928704293041463755411539630538575196165592896594223027488","6171949792291217543155659475373972437359671152363386212392205747290348469356"],["23648479755108931978136360784377083075862162968314044687256682166073024584243","5673930629238431326267373673748349704767507057729444329780226640679222748534"],["25767546100971593936134233469382550138527162443189588415707697879858312242653","17545061043527813180268533216300160211679440951438330443860881810816107007159"],["24751706715468454268072623176885896976488619794394486453388291187916218697581","24288025502202133276150570092059402026376886454954896534108689845999769508148"],["13267877794914512966497208873170376366396987985575269380876329431419375119175","3625942515799889857898311496302208640650057346335997483662646602712591936433"],["6860743825716441859449543550546062399464405671367993322558664465200097701736","8691013063124978980059736101138390428201186323881003241912556879521534212351"],["16792309470464653348996026054583121039639704727433841316880684897239509948984","4857322521821159074154120616025137193161190072517557413603032832003217987955"],["7066689117803509464988547798417124486078239086902395469546373833034071702224","23077240752032093155488180827906485445844546780315820941822781485135471502931"],["18932534773326750434792644987588211919889873350852367466910407410849235669060","10541409357602570532691942160471983882503727154586309722262572360452817715167"],["21628140288234052308510103035658550372692115381239005148772015964396746164461","6460067820375552433195628945259977560210061018859326571325138895759142824286"],["761400544905904127441894442339850417250448738374907330841754702834700539170","19483754474434004206993427238237129789926405652895045055741126131159210149848"],["22485241739137534881974598006687503796873465258188453728915425070700736797164","12384162426690051883944599850103831533661244313899777478315458987011927270759"],["13350925875035576288612994365837205841471203525538661093096695771323386861583","25409599488797596715269664113145300845067743126290573312731276495534917163739"],["17974144045457760629195122513376644034622275282650584242911086294497016941130","3973408423687638204940520163183681256898762224443370633775051195637167351364"],["20831656805105724106961336178719734318715300998627901368960044329344421638528","5356533907410699229646261548321047416493622843497105936019385777933022386651"],["6851726087000409683215943719759610740630013928491229034865789179573634259116","25818644302416552868329888823881864340231897957968416614350576714392250880963"],["26023589018009986532228650012528251791243140528641755462386498924363503015337","23391048569852615288717709647046589712537487580550281433726945267212412244224"],["10132233909275345052657495068802136585403250765370075124067806972644289801754","605260853951518223435325173685405651368778401199316476448099563919048155125"],["17638121231296922796923777339621120670495895500579815502488548856117335701945","1406057609637893427976366986953026057095314940229834195477130156605133315910"],["3132185185400742972849346536038114242910980364306890014865760706837572362151","15868626039943392692487109453575230747205151958712431271352323654842534979791"],["3123873713817628265602393269320922377514795745001030867873379833224733775847","14487894011532806265099112966186910454883244718940216708871634416460374306738"],["14145083951911231121208920785446852040202029538232207308579806200439235112258","10247602695860256584926168316436808429814629531858154453139073187456138369710"],["4463525287969003604597707674572112198068806816117572133162833316173447870662","11407092683204733741317614088481006977498373076042321079667270412311631063039"],["28712314775980371691769743462974338562027815447788984597636258206786920735849","18949848234520110269565792588610748265854489432021128592897787768454817762194"],["5963671165342640002671229933786913833408880121737935604874817027617672561804","14457933942313625455344724800986051142752041478323041255047994584973896648557"],["20960859851311133103670176254895479299883014385918671535189996291738652914151","557404676775049645109852363112242494589967384941513308979249696530024926967"],["23694236685409713532017402485120652404421990815022698352603648979668482792518","10328694913053623277165030316712212039913818931748388211299151253565226326042"],["7973866748538726438452937224380447347796338658932958741976266460892420398335","4690059000245981441160239843723472438254216192769026219095943677633938885163"],["5361681552129238636508296649324519638787139564191334288142752696023868828515","5039060139054725512950411756081794120008893111107117142472173020526940315997"],["944462301907440308500380107457212120488799758376177647708101702577900603324","17312279120637746335520276570948084624171092564817168913156115685181165580614"],["25231976517131030874722998298963621110220577310417634462930427169112937041065","20624798535962166961487173870811535249808443412209395867254264889749618367964"],["1604892781798597630460515381441722493660385534129877884069941966945429603394","26453673784778207012214311552088301476887039613935638705864280336009437699924"],["7615553189244753418710699018248464373652482894376338398481382989958483413917","1417568947712699181148006344945267474727139048747897823698568380847691644095"],["25292737792546550658929985318490978899294805365237920122482553067256797873375","6327530770122585842525858176514317332138113779597605831815773423867656148554"],["19729367175851422302124347185781634198084584644974435836537097952952931871358","11424560636914610205535002231852094497798380631988890465871575238215725073757"],["25001594695689860036130312327706457124972708241820960050287420914077647996801","9387408594090884074363727669022995476373614263312795890147993047561872672134"],["6606089477258740462770358122417755779613977868597484195322714983685446155060","10289520563869207919719168843390266771641721459163868691960562229916799218758"],["22816040047028610776825032192410269083387327517454779895254936990781100606636","23731519427981418513313261281203584823921230331663050833306682433769851993824"],["28028661299768861117620608940895162055551568143937177915257358649383135401842","5517694904380889937329128394220021958053671953434093620467848075778942956512"],["6897481102498305237729674090584379428282943274474640707312415935231876878843","13822364803619033729824851645673014737351415785358315589616115313712408186868"],["2080315055313319611669646408379362748557347527181785843730617310958577418702","21478240703048455137928425743167948174373106423092859828263761002817286986762"],["810487007566512165626703087982506104615084857875543040160920253564012830901","13205125857285424023823510377497650878039744818344475350268143801533656262554"],["14123241328604664258177723954069467836519894073270830826282975607377674268040","18655675734903601582164938327374524949234937071268063461926039876520561051444"],["8298144063111812250686018344773251475172078091727240217958660254601716912740","16358833721736260696282616276733605434088750454945840585632909269668889523626"],["3708757773764313710799674155762375968520735515532214481929076750150017042894","23281124396639820650973715796456234981933829234108639687983294339911975619005"],["1356873428000317707258091891233583965491616793407938345085902428722266168734","6163423632601426063603890124491516573844483382481545278821874338701441583579"],["17067313259887839862839893035692673561215586699824335802212390920836942524022","16849871145901331179056958840437655656000518143252962908668414369557042939986"],["1761139662351206763076692868141088467453161930722763173297804107393618661721","18748888129821836162152597927826308581764303747322312637962463100965656022333"],["10715347200914683353792454232917767737570707863535494627373022219946590454608","26581372410284451751286763276848495732813035963127988497825159598136695793007"],["24974823517534207536686694507971955485200571641896802850511018964608492766796","24731417512243014173159013855230952046677475855468831200807772226571280148318"],["7079458916786662062918176047977959565447150972808483690106978804800717669910","109430682340735588724247597154942610955308963752796803765478161975325491675"],["12257043893639658022865278323743135761071885679810594308906154223126995543489","15259270760421087029268386231986972395246635799028640770581632169867398033732"],["25209470901732552498298395445450669971147449361291720115112940638799856003153","8318346537958968682922910506629103678966157171484599946145281079442268107952"],["18134236953588422005928921689499966064238009766099069873276331348758631582646","14640212564043808507753491850412661079872898044846221633879329998179460677166"],["11168946847170946945812288440549222845049516268802507393979891010559715900299","20118161655841476366623543693466326733778182577970157978545946789539171406883"],["10917926679785434070130773223249074856157197297046561933231550744060660728880","24268444311824491008160286625850231889836259462986433826326795908213997637976"],["7562852170833758069005292726973402024050491070276409617349994061340301426307","14717020460727776797769289464033523088386257307777263859229854725303287752583"],["14695348122237083238812672556107063562112035153016064511352557828740524335296","44486732574310362077407066513706277497028970134731303935966115717655035305"],["22456118184606956491652415539268820078571224684456071023112697710619313393991","22273498322817972792277006691956978090619354329223734661007468454924749929019"],["11775960098673343892640377378834230955042021477190089110129928939440051389297","25780333573144902116268234112351721040685102087751933118890688334391461824519"],["8735528247482913860231407444546817684401279856666787970297239108344827709929","8286573047696588083348357225256227654526527343190196979828718410657609749615"],["18986604869500185446445575990640206216757518026666246861190269484262827205973","3049111345323284977007651912957020735693541816340068568251686607658951630970"],["10359246944923911259141968019844561273633706372264781204053813101636242803336","12758770895313334284130515869677998676013991575686743200176507690575386238282"],["23270499535241932486743108421810442501712985214012818728190682866012761579473","17421888907128060397175485243882738845549813958434329647671806089964780088298"],["9102413075204627998737299196805206093192441305914895168947287328963752016798","3288308292060723222438376829375926431905345005584665041467912420537037407373"],["7466633010518489165312454215440473157873707314096669082106583577976747331745","19942342238367697952457045260411962997123218944541319080376464213029290737816"],["2567333328863280584306132760064516310925198999150062213280180809937649054608","28181508380166437199859810431093393071468537560204312429736226991466468890761"],["25743710656023265176468181756065397686508389583014196446157661242240549487894","28172530567030270839140660544346159687189820313098277887842825892933389570644"],["28601431266450445809936843413572100190995869049145295648594620069493167439889","3599242971682888902774274886249854210480687969860329707179714159015267688829"],["22919459841904935174169057696213982699035268830579112132480884633425762412370","14924950728859128375104626467583090282636988863992533007815706247455737787913"],["26768238619574940617550090871953232843414912510492614932241912444070170076584","2814793677747678243930638425584618336078619597222259298208546994882747817200"],["1859702322249506307866449292669091748331881425844719196086652075966544342311","26637115273464937955178137339341937001654306458555348319186607489009676862642"],["20211310524326974757065557856091330665201178599246550068191147009551581363902","22827535560556297065064970287944957161298783931042171668978296437230399179418"],["4532157783974561404212022404906345259561230309001538616959947619697537373206","21265764509581030393277130163296570321359186178668773925299589747188487909275"],["1178453544052498823089981463940094775895573396159381260876750123067163152397","24022099974201940833506600578999748857576487100304929643270049444207743236380"],["22004985680988338966261660608052156731520223304489619842391863105963994300698","18607923268898224450040122380966399698459909740689117345339878716770984465259"],["11125742287176927893423874543295302494391972486951453517553190611004903779184","13159713887232932954865778009816942519311524445719792519952081853447473455972"],["14809746416619902258768501401466556901730102394476956019496806588593368509671","28791829107413852081646359028917770756710882782253298237433677188755101171782"],["23601459864741508350112392637077367952808113654902019615787223291511072286529","7001476391332670950218385551955195892864902295709791142815966080793012131344"],["1044347173606423891924042622255233902103682350392741205962691752396303892324","16345698250245451177049492302742481412940674922848629968854358079560582236129"],["6847220910375354050053753201525382908719539538591352426717478154120457369669","14821015000220175928959069712189438263357214112370823607492575049189477736562"],["21976136682388632874376134293901627217491315294230422793827734953372704146238","9736988712614242872528709548062881180195595175095477695941400124158350995882"],["4450271011210391072747419466715149572039275551420853171135397325474798581846","16659468268506705220779944697084761070823406513986443049639933685606940054141"],["15319432473766611481642750707540171494396377423710472232950242701816891084327","1984503735994658258189032832316488191663811398193372664966943736710583482053"],["13008866978626880970777163143166868541443500093983613952707603330512230406349","27259366708091181476508880303537720934609713998615905047388536112815468889403"],["11734903810266746326774275855782904853690801706248541269736308509970497619818","27710529571014026685526395304675781218971748655531565424604537651756042550017"],["25385939443115024207431074083278270174387966439498711077657738530903203479061","11056519252970487056900265103300873792573127709967782003022752562148774398882"],["17520085664265556183012002828783480743438036020416235094311904365808065975103","13404108584993925030981220982898016052275146660444870686781787473361224836570"],["14802385870734247121505210687275390918039930818265037028097422676016979884167","22856369710902720454971150730883874663197796106525627229647834012620653359960"],["3123060615968829348491913672167219403256691304076842600251795386021847168181","14447337962809098047233399760668649083507557356187524454470194132285563239592"],["1906794965830432926418681386816414259510437817949059134586495989295596952563","304721088375468797460143732045446789225880500864695568409619055011575631324"],["3279273349946387005573566545019774301871589242695867847154611444414446021893","27465213105520966158878584511288863369349863209767995860776296128570660364818"],["16593769840607715312482746576130984421344907844944326680825025089357572144049","13152821749204636329652978514094562617270206495963951144810824524961244573706"],["6600584503585074358259060684537258271948080321538789835170176768001532294859","22683422420180991148307950171816802732857104127888381906653105275855141012450"],["23131008717944326843073330586573398432322975936970045459589923789179014101192","8459854831795117065784056548351347712144373357742208059310181351511309854648"],["23524413205397447792479307401726193663949522211639133946175108253962777510880","1552125840110337298195639904557837905052167890659188395790164608691695444725"],["6350542362268127163432302958955745985027152537241397516645616649203534031339","17391378721645201991169630852551896773393940533850325475499496050728989596925"],["645043999474089723487659069925911609404283758872114088925478551539795699800","11177564586432957363684277960748714535994632211243402197077772273092149512787"],["12525118141310502649835123572602458521399415507346006136204171290897797124324","24272073860543538307131450433758813877408768595777143611314042159484873929699"],["25998705561075329043157918586533030981316362992179794656616101929875605489229","9196536845880892179360634469573532508734829797981840313554800965177519058251"],["20168785158548389100896448971928962624855521848388220199470262121727173761714","21481997317698435440554654493309330024078170782637466102813223414723471728157"],["8625824637358664004018840865207727865615632018923717176353737668998957608675","27809108830822734489437090483385038752940321477129058782604573265180198407108"],["14073350645535732960916059780732047678286617407133868930460358420993462832314","25287615060928046370903893315603669623672047757363517683008205546939713669820"],["1746549870245707884154104469139043031147789032681077795111135861846973903851","15338607169853241716274263995405570497592438796335989050993700491152710160646"],["24882031592544048938448630219681894016235738624308962513744028975927013626512","17811178774665163247119566839310398435331691430414244543478777616052678306447"],["1400529206335351524745481529817194367206698065004943137378815186630315253187","17860010190916411094193390826422115346547029120099401309485947558339470834213"],["18460201349947238274191966649007018706902346039641912503370796629738675114948","26687233861198371740707076099031894059034455892839065178436975831782668146227"],["13128977177022440587745349533930068858687550184882166204242158783815520522473","21815450024729213221735690203197408054807755918824008642139487068404827974958"],["22326277836696893587580261205883612586254692205552687745642617672568352603309","5582660359791014596615827284200486408942375308319045660310137768201454236180"],["3085694341873590847822795822189410570910713207741864212712269045721301102767","24650532269647280961569303857373222798444572857470670267656226449033183626287"],["9795031168530325171615803174559185672078116369611064589985880059514091817794","11332054375304377770787259593422202970156112712978324316696968118624612526727"],["27137091736370249307176424665897305055030453026793895918006589154917225256817","1051883191001977432595938498807073106670650710445976969768997392059350641819"],["794188046015251954843832584055229593387847707197029114575525004078576405344","16459813039448311801809828644261584084138860437917776528218935836977332781041"],["9261198235337307239723538967124293088305212284241993994098078171766516715321","1679458416228901806479501550496078001579697495415736394033574119988663996622"],["25523080406719499794775180692714401558945982446910596245424840059640635384279","4503517327984140150692997042006880127143162010181202087107131328308106296751"],["25061784585140515415178025101693869482973602363652777637184785007996280151917","5401555051224632979716983925012625135187260859011690417070041285351173279960"],["12352138372681244529905831913792119499837701076915888223533646703404637601991","6773045986480655806010207302513753016548939675089177732851721515236838582104"],["27041648990525899597330292300492188536782848582610148988708392274239613072275","13577019348147811823597171537306968343079597895625030618481763716238645194356"],["447966103223039001511472225977169001856278463764643745485898032088826184715","8512745840547605275571193279403860074818719436787903029816980450314563139575"],["17294657364603655765877798365392544227023986720973620857269184985848043253749","22055880382224720407678913767427730497738207012357093463411961279605746907727"],["23956037740177454597941046946695692302616850556775651036388435629949805729745","5622199729051806742579341303425692012946437883052369570277470861228430906225"],["10246331278647820246847804456045094857826944526520467832807624610800840202287","11220361183840949081508959604497616632981309820934555733017503213914567485565"],["28870370422449363471998246938262712414324699671065494467290499782911176864366","6737452028668580543729961439212990872424724845452225262694252073675155774426"],["1440415526800109277643339378285445141516777506814404515099771808608102214143","4949086639760789241711354293635122162300943813675851194524857107867478519894"],["15066424552412426837904894401261952419557633631594029315879078092789199321535","17532008609944120303301087801106860148404936600863501813063887354919818854585"],["13520223064073872671439615968897212033672718684304194305557564529948161371057","27299392244084938322890531316030662760588158652803048929262748506571393199924"],["28903647186888362826274746688066088055857013057129009003630053264445508038074","7636885560417534421223418387880517574731122419269808743857672094377808026013"],["11769372540596097108341332313890049898866419269193175937916789847212276605985","22168881765361463092372362865807443565597552752114923281292512279129475204225"],["28102894025827113788833019676027421566624180555661413523100886915819779701426","28536745683489012621538871829090582339780577434243197971909590016228497090775"],["24985013135217720733459314077058613452485839426645611454582401483663075013194","12519396503922533910056918317801296878331143443329272133015396241735274198168"],["27011918809645517905474554387455782685911773895883248649764482184627823387776","10494022690752638243609187790147585452928405797865139268485884430707020792365"],["25506429461455934444846320357193598321119036315160775960504914563620180616841","18375031129237945272304631345293161979199157537910565660977310175718533856875"],["373278322454140699427485381578163915460137668459071693608038389437154533621","4593291669142504626213542859440498128710255015197888758793784114120925548308"],["413283606353619110930589918958961779426105978622327579431752268379612442173","23849590830586343640137134609794898817373518563385111196787069966091486965021"],["11691055613564858204149439541580531182666011888684283968807364371780692160622","10905387214685377084217615154416046005201991045886237768874574641369444314573"],["21054432282871135417800934820513701510215230036824770346152318550086496376728","6957105171502752641188505261697151692455479705216869258583711671214082796664"],["26874760663542888890454125418859224677953159359628158897930539941389097909254","28921073148848803043257115023020071375405226355301489751754394510624832523192"],["23094875577301721771500084342773738662792121631980701961631974087569567417197","2606588319972507373763196195006983946207644030189177661842533900724632100882"],["28354945975361188190676264387253386727801122328157846493071669944010059164042","27471112744726692254339642613557027455500794420509884903574778216620296956102"],["28304490889246595908970677599967253732704794432945912317866838960696932640982","16729228504616559698605742268008829960023171374123398173114797086661035722494"],["10122241346250405074358186827034782178099038574082774370703939498497105854268","6668551847178023119077649680059393517212838473259771989779792160690865995835"],["732156555569026318493429341313791849428598958982020098292177627797111145740","1715124657911735446291434363991125298107956473976662021788980258097752120032"],["23438034563875601748021880204909713221458668643635439673086472475324993019982","25251457116690200865759275518374821769253347727891718681489252120807639603031"],["3933749166103442145261714472831101395190651506704317058977738870236794363843","7576503364361897524920539224397274865320000169548731694112191952005079943707"],["20308829083407028683035627861902507482369811266742208807316968463584736840674","23832228489144342166315220465574429961208961336054744602267804866527613683214"],["26813349141830664319161260465886001685593007262515974657541935741164237642254","1701163356975807928850057714574713114080347023912111057452769764774955689316"],["16753725676449996680003171065462611949187380820462391185782370465112170156801","5511818587355972437544917533110270749512463046942567200048518302725623389868"],["26113599344087613532879275477477538000549550783699883335612519288478427744233","8768171393963979723844312535102170351048865485717088717311013646015242942021"],["22680985109613343345125958645442206644023890926571517896155006137845346525319","14087698713457237161835096939465130707749901179087214572722713602421201105268"],["15456678890591810240296779169135976989222016282562593620619910549893575025879","14723926639233935840725667490811414255020267833760307466085527074146418379157"],["13324354222210299691461425168726177271815544960842500176822122354507634926710","7135549843145606841331957547753959996741134800084141330252361351828021346485"],["1906124667688298582559929482341014809965615498832333469920442355031392022676","8661130992817195128880275358594687992535777665070714838140120692094536561010"],["22637012131649865823652904605741324359688114783404367198098434936186366428728","16564529214258709965447195228767700876707460263351601059311153245500561134850"],["14793458488094341303617557041477169904808922935293948414383342807820026954730","9074777281359389803826814086735529954175305920860053011910252050347573383113"],["4911186651728510179950327562612165972959777637549505169956190594863863855626","746817336772502620198074301015229071107108601708374308578722220814624103550"],["24900443283837557624827369534206577073082373096364525454366036234794265961823","12549495362936306961120666196196245994138234502129676099651550846187093919202"],["26416554281514183507055433695026937835089124832468099922545413138116392765129","27175483899342328630439775585412472988983315077645143348863629925344540270382"],["16554310709243311667579072163117919123690263098471315429246491966967833682091","26385143567584396155931523714598001462081313723025642980148446410004697076592"],["18612628620237640048948409285007738418119697171811659630420804612575720153062","8540127489386710093164173921044467117258796512791592226512352945202523613548"],["9333246804107670139907622023109683247880648796492022589921376758214255989203","2869470751925814071882879274332369910242712193800096241258682593741525091302"],["21308428131710483101755889872104339626586027268248472323041814068332609133974","17452560485288177959777087921940037195091390839233010571768156002838852655887"],["2791757943183922564427272402868800250932985859257961917139207534456396923164","20452803563146530818926493475070964337014317192623376585548963113156077209791"],["23509391960798218675187996969501795016188717020245822447761173081998820474671","472157050627953121869377693605643441541512430803759071124753612525366584163"],["10305405105428454517082458839654426289467433030459602518891136466570766395462","11829357972771413596279114933706484493686818565829750609721576602858120737998"],["4230354630622307733532207589596920919010575686899508630098345948541258234471","17023033357259876986856140566858702440636129281042020461516017544821028296472"],["26239413539643674073439621263211630749361826004265896895182833783252230614117","7335200321773635895224504593008357413210398407329476936801834944908664085226"],["227869681161269079536257131707902679038590556916883082644103868801994138313","7785236137010054243155932070487672422364786583752378175117178612692754946520"],["14270537868363234713886261597124403674779420338635412224175945662382639678304","15395327099175749784488484763233510528758026077896630296758451190923089376607"],["25080666141052312001331307443390701114358482073564859720100655816728874961188","17446094620114966696702898117724871117387748897789440124770371044969547975394"],["18619338102220442502177889877551355900985147356294298059266822213471530128420","7580876172672586269539958492810784998206235768891586099281897343320362218142"],["25230972933785306699274332219801710183265614212871520149840433287967689220242","6281743045253265269569658953547231027871121305675064364692814293126690505463"],["8416564482976446352497502654694112448964564852601160667432388447156795105103","21029606611470165271016949812198708540322781518451694733326800332798403694196"],["6979214636363963200306766331178349291663867985430129125605068579726021700674","13736252808161034061112561377793444396893493464034225925569509327234226948685"],["7211836789328257792503949861394013082647401119059644610273235732459920680116","24340329224665742396264384562511877513677554403112407450480241128239487143875"],["5002967256415076859460702290282362482157399622597874448246096528701590285979","16513075601946067979547172804781036736986735088570464675234098387492125401805"],["2298604081617366981676697339510202969636333722565012499790728541161841597590","5049786199913224665888934191901998310019625844766058490758012655237828878364"],["8663308002533102255947138718758701856638715035314992128672393043541429363017","13782020179964009185392837161929811925151503784018267283276318075465865850394"],["20909283016583235444335193896038497078313816059800711041061527786052591923176","20910926246298094729771214598684846882144643023806012935623871738614291257199"],["20033269467701054568973285613501653169696656250587589401515059481547701747699","1504350645194765456818542246426318848211876157472045321066055392479712615449"],["5937216052144742484103894742318033788313318551069384251281892679148400932432","25103313932040172231223953796586746902014231214133933575769340860481682827280"],["17359756555977949570989265843607434482594963339235403249142858620440646180638","13075108784559412554674514847358840965895391567147147614239253081620945576005"],["24135025732453942136957474596023405257754235840320087008952515699262639715206","11803962029990703636295351097925217930516390952539470556060185055679330613941"],["11345320819838271601179794334616158730799659780750028035240218385641358792751","4745741040725632417157100353895707349573831779212317275080583467543331533970"],["6609211473520202961490291804789973336135869091306138648376738972204648541424","20570765700051645690258188066871292687544643782988519105275536125693829154364"],["21982467447623410088830908418598911857894694112911677122252720054735162071796","9764415886807778506832784276897869389832326388703928190881303937066573487710"],["8921772661227532815364592168139186453479581782806300425800622575622467059147","2256712016177339703364011675721413302020186279593333587920557173517989052689"],["5036422441887265555736048472312243023799097328031728132129371882794428115201","24061274044124241210548792420066697634595680190790003911119043678679608984030"],["14558990618402428690649980325715357661808644338276244363960363665764224276007","1587118307844438788107062906426195952066721277294875560194864903374420643417"],["4810616592010556152361296402330210542942963300975409081597838940659722655328","15390916592897738525799024079779617159935217340353234948995375747063703100768"],["4583258828457445193616647420417357381486202557705515814047401100160483258873","8495953494568213974915944414033057584763426868599646895609601503152216969501"],["5589269259785650676323142213226627052890263184823013025394988293663646423147","4863891531637995878962196804877374185890221114203810598782666311459066652649"],["6605567057142647334827469771562749581942952175548816530456141206469038349337","8984066124177887853132136996870686920697071862842849975204243794599335028927"],["21142297028873234983350665651388115999993590221157454054562728759554638447505","28381670154841500086635920447248529183960506389624994987571696207317509190961"],["23560021424250932453997049937626203612427751554162761736448459365927621692165","1779322565891091094569678673323651076059171068545227450421587147633890407183"],["23684313454928214123545501800597252110649323726948038104266589511233419951097","4959487694870078073291243736414856294721975413979661492087147604920524149161"],["11224764356662449751378304939615493138822020864159636127199850813613640795222","431812625464947217728413925144016856808327144476583803912259093791076605724"],["11847765282275849657900007550615919651968234861656190255708225953372225941771","14362634748704587783178210679347910894131959493979396534456475254302633419793"],["26016357398906026050337639907690949870075517492727023630371269297655005196878","16304853528526750096653040054502287338099574119928939043359852005692288990519"],["3643714558277785982440178756335178559091210161312153578758584074164978354168","20495316499735294393906572219809259771377400880308317670332645903370819998945"],["21237793331793589113130926579397355947924332269902796933949883160011165370206","1496160760773635308863370441262292445805496107692717605098977008998867802135"],["22069946985105336389372290963387119343056917712155612867191011591772271710329","13525560191362358870122503428885039216992051810786785223872203007560060649238"],["9229619343226211180903532812345856300129736018612192119785544283875344694705","20486859539685529787466622084259550160717673514346769341485113735108235642725"],["18911337294112057644576410541247731008778232799741449295413314786179151299027","27542817161108705764894272206237904268117322526620877824634614638207724127694"],["22828746339160611467812953228941732213886106435451656652855747612164404526707","28588043707421135792621958692502851540502918677802291159780971075732409353298"],["23478727273540425868294101626301024230940867658984997507775266212255881076294","8927711307830026016899237946011368695869295950306670695221089954791329315043"],["9328740702192504776339624241381342949415813117000198101557467263069174194877","2303426143717496498315083511366026371803774138225520883085170093844299716801"],["11229057664486068423963534940284087504152233687167036976132624072445513982284","15318352972061402150145993194255432720338623095104284141113213029208359483822"],["9728773426008957957048245962020189880397983709006968896031884943541011194112","6624828641970067567629500726317301132478891936040914892155557506572438216436"],["19221759417090343859339533602601668499073321680781975745052314215286933207529","10468140095516532042374865189286569383019687055970588239519344242007676531862"],["19476968958978294516987684268826581948177956381247620963202237914325308278084","5758694457772319217623929913880300443462528096601836908517423914199866391895"],["7578543760845390637494713832812772759584061935769036579619216431758357489685","26324719238171427057553261539784176767751082882693104623837780689476178197359"],["9400396301459677524035868199990526359592161523834862858269250877338770877358","4832012139273892249094218103075085055627149148730390317367878227339798350783"],["8352647642438642897422200619129337465818241150616311639019556158274865086947","11172419893465536869867523546084778102786282901995945820137637561508271965389"],["2910782244750120621411042068827071238769371023125299532529439570586157602494","13064774962750775415487456653187960028232018875960877253471624357960140069789"],["10951659273406760405981669389118926856295406392608209286532592174042538426993","14493837357920190644730541599384779827336746184625112019288020774514280415808"],["18470578057409367863671783235140147419712163436257746627448046634761256684711","10854054533782681570412629384375586824341608683165221410283907373407621560006"],["3894044913978490266646181283083721399816941238537883826769475530094423180800","26717835099474192545421320044559961466839689041591619757487665093831537973436"],["24773965138515374226390703939839411154954396966740598040350529606850474163041","10853193754661442339323020878966195200275344560676940702480999029467374458000"],["11492511464184990350823289589701019288828281777326223989694819793062265035723","18745652827911442151229023818821365411002852302209663742982946234836146428476"],["2212394660420653650294281859079533767244748677350376618248355838343081873947","2468505775846312303402370603127762844719964987836104329335031419490678233701"],["6780214397564441883500434514651919699350700948640412001760745293922109887860","24630021022351612367665480064227076200072963363862476138120442799260122358204"],["23733182290384273804446370218069451102856569098885746065308882984543243017136","4497889239543838362047798567831744491447175395872770389788888324115889894150"],["16819014874503659354846030645444982764577305114531461874711325183179019458080","4021367354193924173620001999293302054576164109932386151444494345687953111578"],["28607414864480250176595268572136216190995987844257397632861201676507361509641","21892699102218454452788486042762150738453725641042493794302420239477939734477"],["17992646318454879030189588349952985963531071963786734940941723283592102861673","15428950559378275079412761633642825995045512122647706472836196947892287867006"],["24627068535186981961643859388156597539180698811404588641867016526835049771117","13248343038374914355926691242257340930264261378841558829621861352484119751736"],["26005137101112810575106189815774436895416975620638003637816774469918240252347","9303100499448533088195661537111089755523109186356012569933541129121888503472"],["21861115637628450645111459945279341809396621273395116561125986394601900778961","16584481288879388872167461447046166635572560091300762549129578661706967699997"],["16639655853797379842422101070305638170511950683528033564058656102851483721553","1872795379422512255687993501867422585072956224323104593479631109601639979495"],["9238239663472628427988766024634120138371089786792073629197159662418367719233","13653353801905375340839329371853097436392805904027064054548511157587375157142"],["23215745713369789231872305273147011727433940822315482398276913245386018376876","1151646523649866511448037120286376720627510646032925105170644749994497202679"],["28370249709916046872775479217689033707281104845336328658158284265981515897171","18743265396245783614324613082278929291596897440595643456543191481367208530167"],["16787966276244442499302722471264402643301820489080275206984052424793684820737","7852161573936821621238935456669923094226807268637273417684448023864806545696"],["27050424996910931013011838761601808987418497709325234996548873868584046539395","9490717872674022127387218797920631245671215411961149550135708037202182614565"],["3370552648610259787801084979013399487667332202021909148798147644352105165320","23626048223478766428297319846376647444262672617937311197649090545637423228064"],["23651757324324487625471278304244342704398360307930665122175827755611813650889","14552081898664632423374397518209873970075633839840501535716767993790073206369"],["18569070695965288617784018142559574417873698697185928154119018363169829703067","22752928716304999098479874096801632578457058933271787764833416516221236204753"],["4852184835708993438051880374317350064638496690999246897878044864332845131669","28415464814617282278252913828909752592158328669919636879557167944388413498086"],["5925745348172911677385663428357852200139206564488457662202407422231309751729","4105799442680356190714507713885138794321305106356686122925844554880688474589"],["24339663289844010322890176535836134348848465484883599860166715288790108169618","27029922860943452215613186237527748917301260956680093555052540324117168449207"],["19921225151136762233495014945630238095697215728951496368634566359637842009495","7004817486877658699190098099901888258385675881897532259538469164780032745550"],["7873633862174645257966865314137933638780470449190530242770504302075952996169","20072206984946902758059466440296568370736120249381306888027011571813306416524"],["3418223832019048122996000254485381409605464686232110349521776496590334142794","12798351385027206018698290672198824097212804106950181206169529829608040883035"],["19398105157818509457260891082535138851060475336236224064697544088644679417902","14595057046535611396095179355297946143073422406980740617765667109605947126443"],["28116761242016893623207557718900552592913139928972606940080382564507234017787","10978381282479188094434328307837621816510262983405065023040773243674928880232"],["26450815447760137423805153209851588285927547700490474618635314387704690148789","4045120304630768655736882126365800012238658947817728307191907788116279270641"],["8941450379634392163440090936534202234809048839339124874416471780516822764362","19513331269620643441751165319350602037041535470542759164184691224875371565467"],["3428046515867906421793172171647465828898469215982723642927084419529398973543","21731375617110653920875313453109073955680278212755393008797295305666620168522"],["11307637658982971792365671863048176972960554499470531074206326156546969489374","13045294083403600079873475180150029607267838784523683275663643513816391641990"],["15289006345290860191431037717829821778778520579851277288543187359012624203140","16520017214654037626488129645957060723508851624964304778515313553208031053718"],["14569778547718404403911040400200686529881206833419705454122091864200299398818","27155465071006308335610921331568323367788081196342066676008451492724014955575"],["27270791504297145327729982667288264863714821130258014300212118440964185151547","28139347404032045162619471167555447165924429363261100902566735994169456879221"],["23804975012372922928824252591602223035303129269060498307433414475771989225328","2563186269095729025643177406115531673000150731481298432818888349900464580892"],["28426151176731150590765470178137596824250182100853989138467861774977446266952","7287320414109059460471940991530900202540259655316439153391520588414577540196"],["15995616004437447945028234586539265776994574103994509380141071998404130369935","3635242031386589700425915907116506830322763908655609532355315889854367815836"],["8064312682259236875802283647319506661364518102058701588344841231091587326557","7306044598529779634985899262177434628427362810231611204533073393201612646086"],["16245500355858429928450244673970811117112985233181848616547622274487688578194","26062367526674420749267002174859344455994807731392029811429641207828387350001"],["27552576760742837310434779815884147802117488392158723467620435746452169878261","11688508617781897583330704205286338954967146351642006987165214716140088222031"],["9230057801473961976879228448843818032613441463524140159825296925864103513499","27559963695257120450391811154218627411693937664755134715601976011420007632818"],["19323013806603555234705866284824620556512337909457873683578738645434936982756","21064572662237757419550967152866598928520227891989129847300394115776971280754"],["18639182695625538861897234048459826573161670671437707791075299933398212064353","2358243067167901107049603125904792177206286885049316945676654519102573572501"],["11619306698865375444334724217625830621372885278944973285487264700425146746058","26968190824021341208688046556670784699767701876512904942380002782471050808248"],["8219583679672583419316779911459580871080467628445369801150411945814824361199","20733584161030608217111973534912224654763202094653414654291352072431478037662"],["24881671680362963471091016816212331765889299945387443320637091262545030484237","17210396617412719962554791213564489131710889098999857023196771877980600375819"],["20292263053798866530084135036560936673697747190157444574660861264458249323316","8894107188509646880044978559746339236116511839503161385397611977826790661654"],["26522611048579812405561515649769216570196137770024471257139958787341426509188","11724728381354055851248978246504508899672447934825569685520362617187323811652"],["3509066851575829222252866805533471201932947886043055720271455494189191089115","7620235118369788459220518771184068767031821138005205365119866143222690793517"],["27589976900002954085496482992097040683509831033781344901321741278926403285869","13511037119916013238419834970590620992499263345411613211282164600928110795011"],["17134547234585432688028387767263707013018841806312092248316877080591378358635","20041137760718547865372115133900374090424908618013286756373211613332806218709"],["20817626042643335305641080867813191327483169343272823351924622714448442760821","2827045580059589862451495749050045965677780643340891354064820202373291987079"],["1254849144690929935399347221594066837247870486168094666990202672096253978156","13299620520225398725880557769074352038335013945378896228821936823031977102076"],["2871670324804989269982707813783072037537068760391730452102934705115322521816","28425143635599336680066598682599126064957974467307514302058988013245028008711"],["26013807718339391318453518636730948055992463639541244884571901759809959904298","13105087843294378012801767098656355211289320757299074586225456232276490841563"],["6889624827509626459653993069267068128253332796672480395593289320376213634799","15317291925994082011638256190932142961525223266046551779878450587060441679010"],["9630746978280084137297748043639232323519865553138621372467790623010335404068","21083400095021182481007594572718160905878455284197470562461342260683857680862"],["9230544407912051771180719621127541657733907341657095892528063794111331043510","7002657338010775764940185746751325104769349496760788812933941504881726728446"],["5026248164326333794496743411297987446424754513721815691456687623080351113111","11583978567464110490472219311558782209815368502551282589683458592107946427249"],["27842176644575115368168409202299066833912080482657262727833545999412002460163","2159932324953356739861725315634386673825223029522398150484226280966716682842"],["20602921530718840853944408974659445056147569183081178552906462485235778379803","18700498906240774668313542949533319605567160589141706005575932014874451074427"],["12402389312943713748651988724901445159455638297697630705929651943875381633445","18278216535225123762706060563379195864116475959185964602621601325087062437689"],["24969952419891957252245336549681184209612061547275649355019824179594867239549","12153889693545553235199843524645750733123003637366738748716812436631988921453"],["5713010237116302810401108727200568314075655825180305915505294413284274991211","1945738146766473758961857700666708735531854145764445105140613455157369611366"],["11808108816096548985232462253546041809583243077862539932469846077872092323733","16167001179524970338019636366661047807443809316698179354744482835088118517884"],["22099426812656094030752536409220163697809431079328378411755525095622110860796","1424048536616100612863407665681924755408783295400575874920989097924099888825"],["9102944770970736811685000120653835136412231874778850886907847339358019472510","18100875448543260720664662215896248420603640167575710260374037904920305371628"],["16727419373485420875644476599181508482266646880025261802689514320859185952004","7385931041461623472763067732109695636006071621784169620578470905147056236048"],["10176607680053062971841327409203724693089092678952417393515675403678751106282","12216883594303685516115275952151415668051505922442751475322747261857441697125"],["27901892400318425744642251857606977469696972063547433976615880048140246474181","3456909597736378124672494158649069839030857962058722288409829087273816672917"],["12350734647660763123878860254297434173323438462114988088960219041630084310331","6080738176629955305559325348317979002996008577843129930700954625947197218853"],["4240228827125824522655148645118997621016428710732552510637556129692364267716","19566983701217642364095572998367748808431478539255157832824014654477268316039"],["2787158013580370980908767022187473164257473499427090478524207648053835828865","1010085181442809893813867445253118028132026101174377720301277257854945010672"],["19940894418457319214883952726725006343575784007964817671647501165768538810510","18948326943846727969961232813692448553183199007164176554018566204536813085270"],["16506410213554611697468356931003973113453716425319124057572744689213715688136","16921659733358787751757612734602461813816410762715031134902369431557106170711"],["3133392427802979025378494236000713914576889517308052046665820142825946896408","27653807130782602664290835884094578712297341548001840072446997504136991963338"],["15519752665811441156678116691938278563879989462882742426020270878674125458878","20493339155887945896923173811661333485272608970596336233804502908771180438347"],["12278633255358754720657095579719069363838788799023148395341325768832985333617","21256156372613174159671478032266862440273375655682230767923855390735522301927"],["24413514630911502615997085682392005086539271253161291314197884431263826518536","12238570228697534401499890929299608716031887934661374557707283929331463916765"],["1063597156297592130236147146689993972852512578478503101872656734030971326885","20334367531998449820727611427576828598015532207673223901629961830397875049772"],["25052037799834943137128557326362023713570714819066538929363034085168878292253","11556713300435088216512630110561389061982453191476184599637940923351350158265"],["17936513005651200026275737526499333467916241827568433280986710623493139583572","2578493778406394509524496082126702864585166130253694627455938902400110701223"],["25891644673262513415025682448088739226936109382428904694395736573384819740366","22883674455962406757478544335386578140717961610096483482679245237890687572210"],["2015937830923863878086895779783532497289936869751636434194980708573874468954","15307878354547174500057639029369610171558181482050504793862379777237769995747"],["2802154820896449995216570114151745457854863249460051171005256604479712784794","10984901457261696619233497546208382441298456898745361018521177027511309670508"],["11357177463278166164062477699173554545882419773936040178863185306114080048478","4838390927457371476197920388122324466589086030359669589463036089955174184764"],["18293763100429039972029569101244276693245084661832190624725912552005516140862","24683806808902949740262978286494793609290465818931825448038301602521511346023"],["5109586033893326102162288413557628898546029930500728836443729022596460621054","8779539699493916116817743850447082418353831960595764766155030046677412263066"],["11456874601580211833516534747242958287013158610660712328235523304623848330495","8898199625300332204551141461015262421947240427885562425588364790350435370875"],["23665654796819472179728646194271924604198982631433635837437422025246121189212","3727067587370061906680931292601680797251018224704562877569453142402781314732"],["26402332905017115112849132026991852697159074006451585412530839796345008409272","21109419201495220675793893494390953708136596058972014036995920121775727679653"],["10845021104999055498376964970969619033379634584277569571582522439633031032836","23255911404189359977195538275172153162623984091348068919191134505029708085951"],["9298294022903073910441629751132903085459558843423352230209995160593348640145","3100122716984123605656613420760127259182900320049306914546137737118228057882"],["18617074845840766673090624213395361408824115422197823296234086743606424684578","23021911858174468054490990305137462390486752211116498029912642008008087015213"],["4322286429002806659871717238102385477609210425111053785328023891794954952621","17949721063482188834082385233396316757421963165640042208237844885438658210290"],["17552796277564437956520730082410372691582774987019967943956637522337491236263","21753037471202278239475284793411298817849812562695415800540331018714062042962"],["9357214760614363482728741362263404574852528213678410686285574947877446199856","9149070290754326025001184824374273509952503442760521473502078134276203454833"],["22332296398668665527102220241718282545021355214021248471967371721880584960594","4185612462765303017176908134152654832584026644664304444966269558733974193933"],["9984870499341448945686065835874493689126724061436843640137004978865181823203","21877076388339443643427212485669515760254624383904254965980081273104268491878"],["11473155060137981671964107612618039984364573892555333331102059084549534849119","12191412035202449734895413172832475796055504095990089831289040866104437104788"],["7930650355776069133042913010581843696360758720736690658883695749938619506653","13838312160873904955301839456478155368129920889856804409977669347377692370959"],["24538421990549210647581340571669306709662344237113862558884894369523526808977","10641463998574083087554599669909538163538905684711659537351059567808720782023"],["28872068236577554214840214566675383175079023854134412013850214263053432120341","16952309810426036042107416278108482029423388288007730931590158219418752070469"],["26789211253408412208351851734189478494391154452756157408175208088451195793337","25190082558985992843450321601144206131041208110941876718464442684581075139494"],["19533193682385987016682650455076360309684190286104084324654835083424840578607","25556401769211227862622920486774131827392462732836068752345891890570113397825"],["16468183330912077687909213087043301292541014679231382010335467677957368974186","23810894130305187325767950039232246967235192430500175816059876591582385203914"],["25793280153984063601215684002383806077014807182886988772544991282068366134643","15885496767822087449358847019038978800098768136607039612167875414916196242668"],["12845080082673461678817718282674920655619430577011909399722279869823013129340","23062898308645772597359577074671779097439374636127847448827653975046052354517"],["14776545670585802179986655678175712002924872282778065133537191359889850929993","4167241546389008235612556833288069517226026208866114173152027064566385351842"],["18862760750458851525623962880011343131024777285096004530168424296553665967852","5592653355244824106460937396874779758270153435001475105375803574094517722942"],["27243973925446894034478678174199623750425340126557856715930727718099302702442","24066805670625853979946795250300246822832716115256571657459437115285822994400"],["18546473975277515615623839747047501098289308227695601238894766983726078001436","27569174560473842702397416517440717784555359912775078548885038741049651598472"],["4001057942902007516457939847747523566369536016631291420926553685531047097660","5508825414014791862801748451318905659946464488342340278752216154707121753650"],["27291518811530024920352978457049391372433950553123359477556540443807517765205","18872256681795415327771670087081532468490205077758878948436098981099942619996"],["19778822282854686855876396511541303003457737777582947046652410018847005405179","19693230914814148543552685465511864873265488527566576397428922338747659353377"],["11600934163102572378607467247596278521300848967572772720542532789756273178414","16172229712428395688070667327555097477580811225470755991831033873670900812860"],["25233576870994158815795139117391665245716697541942677863485580250850786457546","3364662929681402233764574101086438922475153095954574239614008215985393052272"],["2674786659479393583718832188574951494486042167360014669230022373417687706047","6743440627528829218896377997361081385050007761249091831662200594587526379538"],["3238538375000607261671797659386658363184093955622354909585180520053794769994","17993643314614112467021280811341452400066563700874326834547809097871806375706"],["7953324195716721684405772069294125268917823367648805495494692576861081282356","28380071519795752351961819837636592825535030704472117656912027666257549006929"],["28522757152453277774046065113085103745475643109261323963975151904647368251493","26593231576413421199470352838987132122294422634645642035071583930634935676942"],["10452722821589318263623230691440859456320577121470831424335797846122345595237","19566104320265001280433732751912230913022858369330553857759471054689149310361"],["16447646004727518119043442529884639180811794557214013722602033046271760529071","6437976192346332979155558729117343556047303682906447262666047119970526375548"],["16290907973873924382757763608592402757495188714387379523206036861387183582466","14706635142129437714074876866921943224696419955651725428121813791591888414640"],["20180252717258274862344792725456231662504347036587232158206676657564948223273","11262048033733076212261126092364956362751249878983069140076910049524105794295"],["23650377652751192073908773910129009887849052771609542625294300924246828452427","20038081148510079507270084699585184898605080011154713529970803287392934752584"],["27658406775091820871425532116140116458825238770120601095133169778995300780336","25194934569287949397845995198853004807426270872931389985528356593724152834549"],["3747390925023101782650585451218081367074522301169666937917061065862913835277","20935819993106477893369322489148362552116237708809699667030156060861256987814"],["10315224650926012852677725634196551443519481222467147674269770702273391003921","23628837560043445729259357911150729571935667208211291556568530845666801272980"],["12672475238162034110294548503793970688325495663885319879017120828542190382933","12002689991024967890016593373645932639278768450008053264886219941597557305012"],["28785642452550334077112866227664697864593144713524005551020253809297805466309","15130987395505914768861823320393682034599307943880431412424768741901118052667"],["16827856200683018256614792736107577793378819180561330478635436969054219028262","20105165297003506789843330137257530205483023654539831009076535222044086900505"],["23967075051503648414366907779697550272051150374495469996948311204845944139662","26186574084837204103262053931979391074791391072941610361978540899744502315636"],["18323834333542945831309376604767522612173550918390126523370926182513503672247","16389817840944639738717155527944876559779697706974761270999216544748880206418"],["9109424010049237916191817181744887971232211771689064248998049630650450070993","26973665220404416767195124222322099460680036813239223495514585197995629913872"],["9124992233505722293211199226191684529368898226487567177318590505642215347631","20034721703463696321305213632222469560324660294447170716612595427888550489598"],["22217585983503985756231886380667624849218517593117032182762835788953496579797","7195926194172964760045893566056740247665896714016835964389373108396360980609"],["13553149610838983925704884755896238429767784626128809772422680044306985009691","11454689614383983343292439660314371368460133420972283491660261923036808486507"],["9346519126560340028913617276350331213588894571783295216800226639018441537617","14244180406595810964917791730795275762575312815347672524458559997029367963814"],["8698223045291263358964801190965968908131134626570564483925019458296478431860","22505597536544736540251142638899011002831975963995366011120202619334441169086"],["8922175092532446349274761124012737761245484401655695542136057232711008954561","25090227367572754301912620982405227714276398501134299267294199747404293739282"],["27017426818518056269735427724643520759432093284585791422443606471125872904237","9416621684557722517296411904816557556494731057861419545503899094547055624334"],["17125670204904663752509788909083756761216703736879513201927996557690573035094","18752498350780514745689980505931173611833934847848723235069405500196860619716"],["4103182584721115112754700390834024781717592161846799977864916126832412167019","9912904247672760887197939736801941612291640246871199140629440881950346941498"],["7971172188913567427640364153002018820046439958037444061849893414259793297413","5839307845844649811794912218354312166264113114852899060227062571869774584674"],["12617470891833796259507653020886394687493591735220410833736016292196764656433","18447169785905545404245784072017547450061972238925706874031577929389740112663"],["18195264450568368693424042980071503636473881332033546489821783354973552917338","22694528917476623250327413798253273177110975714523828346849557631929751894495"],["15449455931182231964450847377259890170546346795431505441835432445270658287101","2339434221642844688005134557511748678216680150327614420647229605325792075847"],["21430285796712959904501934877176621143592169851562725187041782952584837387289","9415168199015741690279515106319103166343898363084092665245872166441153593044"],["8199712179574850822733048084524803154614308210676330998063836889086672574654","19352555379378816067629798834991229070386316561221499266526792805468509904393"],["13336380404122615299432686589467748516802953271302145806853653211261076264535","10118713885003109688123382442406016916458291817740353572598522920183207043192"],["10831500047519854997876030349935315760230720964792763479355268056244877736125","19685808525509603019366222429534433811209418174919431020874698871848479222989"],["22780038201417201006703375463715903096472445883376014046623720089190667576141","19746732671596113050095071218086270774116591874030365598649473168283765127319"],["25862433318093378348861601521481304128385507647646634297378347042788793397256","18717738318394167574999614105407365080322379551806987560443187006796218953655"],["24409135915934137458024009400156083370728446968417781451623624286325081127426","8864108705912452674719943990842502128817481502209758926130841407754379781111"],["19193770146592901707302679408689957706782058774086560905194613160271687890936","12029863452425163037016431061387807475653950784351570119057861588107907431397"],["1771520952802957288123149479159005250584522400349189941782411137960572883561","22213830471836606243381016673194620656066307542208739080140004951780856952552"],["21481907027578704414033966451971087371415539411088823196309771434609997320930","14981505804040559114862583750271984545653601300059464841733813350856308316689"],["7374562412997788094185498104148927603113123454280738156318086935030319628787","19596796365393524684450629324122160550153099682421159234873256879420762468617"],["10522958597564151640133587921427410047272273803612552201466953541099224848531","20803278629553300846859765551254456073281416267812377907233375728055086586087"],["2552080636562393622353497175415470559201795913444602733291255873335644169176","1047955101645274388290134232610893901502841072648759893905381269384130235142"],["25970156811370183767317434337324050739360817547586438470572014083352337191909","17024945792194729186412929246612060692531048467755855524045669799458187584230"],["18891575993525863292104372856379908298402267612384579771848155126464843644026","9538909274937635302589820901095156183972644223205672248767686323837860974859"],["19172939494293397899663223583632018765575229256612178477907359770466693432456","26801836019252185387462815708406645504913263782824012869761109023433809861231"],["23802042811146205822583227044258619138442753012495930636354255795104028873625","10615929027868218058208573457959635454703054508352322414841947644784147278242"],["7714576408177249536935217878578125876497799715046146729127919740743517869910","3158016744946948595743226290411046144968288309405549096213072455684156148909"],["24124838075172752781964483677238837908756728195757670591173545590288387307117","15925357788488024161090812096723372362910488930704807042927273256276489664604"],["21684835317080410268656450997631431730649851507139526060677225385518669135007","778388486041603953493657689018344941412205207502008395136597971036439944469"],["7740368395692393901018047286475555867244081073466905176127901411091696405199","15697517992365750404114743150249853977120518911991175902271269170798727245380"],["19803945641702962862596161445654742636158562069748529860296371934036521117438","25468046940148512272451122526227038500122083592682195288430937314338201641011"],["346018477567098975814374621098660494286708650583999539429656706183756202565","20317513120763895592709449124877547055447933538092725987842499430422388995491"],["14178673801447889169394089131764629790149637577296380933302559232569250920579","26530588427807708515231373252003564023373404712869007658111835695235812505497"],["744538501205873227992854696649231979661320235028346623678747025575712655892","6463802282845948024521678194286632389713254134781001058593396383462235278388"],["25509508955190940446669365596752780265430986663253435392887155809685631525519","3791530988751267447803966825654866650178947380114071376452921546394505845316"],["14085659396618725779609285715448207025963575407138466741569401330490331340039","23780739351681501249691583100349543615030719838699876171828750995364244529625"],["26596159129627240828115549149168542864796701355086371249559162034922911871955","3253504682528405692404784229653217185414879080408276124505284287776605755442"],["14715835332591680299329163496056657174841582593296429137365408057890732365857","20021772848751129425888712206513655483823868290415012031634984209661309974064"],["15705743986177598163435848910015983458987078727467101845210579129566942361944","28495120074701282825701248216121421716203555364350518253773105845415240444126"],["22863436723293222253500010605822206342763011993486909846355147896725949849723","18674154407288354621987812717983827665013515758902455371076158692939125296876"],["255957474831067110611506626529327803607663275641600428772824424530022633462","12355257448590755936900041742350993311040395528154939933819828278534884631839"],["25210339900400583126297274637745060182816803114957806372403524133439599794804","6266969575593855422207507410773765679095899139441565813373104443777759109924"],["28900400008873153259168658491349844722533663601487331562356050796864305649713","19912235950915801135115082872992276121130084157116239028821728161014029865651"],["1680512125173113812632306542009375563847277778487827539603802261745980822530","3681536944068262557100554169544037053567551157392605667547219717588542696813"],["20619718672618820098495584432303294003891961899739178678883964179494881325665","20670429495858069121243991230979772772956049596864377296821801673794879000641"],["2062646872450762644977198630789070544498126482020142138377528826066081177944","11069519821660734671016439572425013005207715380280625018705684610122926752024"],["3527056629032872660878333895836982102995346980974057199203872696905551905391","3717305594609371804432935087010176047242333742038235396203479403703303962"],["23780314736250442945036400891068223470358107450310820517999207287672623398848","7608334042692105176110953737372078607254251798933041410168303448691402228897"],["24879456096993991778251599882139344648314023061312830596504731369117970516390","19036106776039382373810158992563547187661255886157617679683486352031590923352"],["13251390577137979730923871678327751025840499244281771516380306963475707937070","22337397177009441308257277367865882259861065765061122557793259823737836156854"],["11577668220101070339679191876683588744596489580466866347594169048250091791123","10650892514218382214037013299908887719825276095241377102747833131583209194631"],["23090865588290719836241418570186868451727627949192126893575186893954537097364","28605464533687159135367485514526917510301729335375434554271926276223317760589"],["27200732481130558795652333983726127446468435687198709796066055302585472534878","28004896875732726638959235144998526315990470088327344510343471442166860775751"],["14602918510008058692226883071925465857930277110079769564545711630367330873668","3187030874035909653860475612934881273151383401195180940755621095099635708026"],["5842681311472750881140276117815904781583413803512050204443760827599423507218","26108495179653309368726091545208299758985538245230212598342235086591181059218"],["9293859310941622658731338448404209165514580751638407844208923372096225966817","430172878532525727285627084751428687856684836672030702104770122766477568577"],["4595878724738052257995401765755580917853652696030060785742559881279285955072","9837990521777957341064225020755669038715771069808409303343045004062852627595"],["27195867519128345725452408698080347484462963971046095818785105203379281487812","3532132307412240271382530402679610613065521995227861443603033911472023857769"],["5157319401222098010028442844253101760502051066742609226053266101790279381809","27721994374397835660972074534143657358338876506892810560374703273009015828294"],["7612176386404710835054846187041309670524245161603358324689253878128579438428","8373203328231237865320515853507293900849948197331256207546092448259054234125"],["22553522009254108026021514774981378220768906920610784887205197590832156760200","16336960179124203339627137595345514111316548463106406565537676494686923736095"],["10328832256068342643102646106459869941681835059942788086189530967450452382266","22481720120579674851156393782500388176856992554560614951091620258503234785544"],["24097290600356813002833198437730432562365185426774264742014718169580821988157","21692967587851654373171740102649147970343604256541112254161566491084905381856"],["11803263402167331978674615192914277824976136502939631966639034514262677680398","20598709983401498300659605681094193088296204322094601800460015001080517671405"],["16233436396353790796040053183511642129153548658103140482558514787760015236613","20066977190778952524373835394252298412360372601159926201076909256346092464116"],["18427836198007851024607376085297199696715115117867047393505671221129375665352","6009787280611316447309039040592453596617023238393728234250826604791412829169"],["11382858474859743561431945778826707385046956755861908564703085564221812151993","10749310749950619341412350171121970664230469975290644626121143522394870226741"],["25616938684500113691436240873939895362481510792422342634999369755748548101671","24672268044104995273806927755346077680893186221536073612125258252720782979468"],["22067621533601330880373985310928507489935375392749187221934433382403471344068","11020346471136291556428304280093925081738234199658299523496799131306596552718"],["12208671355297549565121793419747625923742171912596151655190776587498512724434","4632761770945409828240947899124136645677412820770864086166659767517183621527"],["10802014607371480533294840703617780700872439588841518025828340592687989046968","16559938206802190654386259670692314836495269233326122708191746196471318611555"],["3369997866758519544064110899278264748769227433574216997655832766149453289476","18519820462817839842370967652331489589434367062953705509976899033867201389381"],["5520492740749004708504356923546307673352903311375344251266151401747759424280","14324755396143265555316655218176032593510538667034127584702634806052261799707"],["2125558260533684081216822638663480261770117469105892817335464721004257122209","26117052175589942614332468018062781767602523737558661282883529656260174256597"],["19764144485244684888649024076961733716276329474201060872960116193658421561588","4895886645315494950615227191858900859298712360305173539445102332692323800938"],["11138214783835534104859449178123401099621319052452958949026975477070130294882","28210120990838751452075047653305949119688962740391963264160129084813567034023"],["24578591854929893852015120287015946367437372231165004032691949096998886754052","24907475879671262278378586100613621136030357777713927464448168375945769216628"],["18258731734443827769271429489596728215988979877504063907539624936254773530741","22444950527743477612155983820194348371805495373624650123140680378201834506906"],["15035792987822864593100673629023171678812157800286342275881604510046159896904","2515778052139269207984713831950369729324731635106394199481110582819696299530"],["18232461672245367640201928208949720803075958653359220450469574944796619748532","7207695815108668353484167616689727897224401022491562721982357721229190834550"],["20484713865354399056030608125347917370552881957947241472444815000882614726414","27151392930480138561765550920013201152077000895838269992038612349863873707168"],["1836656365222451251849165284673340086509111623645887023581195740980867542230","18964022898023919288553606451555505819530151804971912919326386224160865389568"],["3143031590906196227797170253533267507902196220695016652863635373755882434108","11760625864113941085564786633708547999749958879916475336566382440710897975661"],["20214540082554419690357972684635408636355835145424391250685702205836268173669","21696296438171344889692722460289212966206019952405514324092316652640164429103"],["26543750698832774800204436456206102513699986593832088949568080938023571770820","25425205833553428996481089372342871078350537585335268723298785657244874695965"],["10551754220620321776899922921868733370729912031035410731622884696586244496946","23168136843055794911006719786301092001464949119618042069567190020222846691020"],["13552680555372477859040363638072273121594264793766223582618051328361016002897","2734237942435722950569496779319050243343997939000117915810706616098820292854"],["17610115456809845195690369851440051254086590722649114107157906696607998393422","21160576781127369555025933403755313167768371313486298320808192716023828284636"],["12735296679711385166828063916973384763078626342973784807904144104553476904412","6478217364667479672661847827041780624175584700566061488959597211799148125438"],["9934790097563691994124444250244041999315169059332161594839270225855463705524","17046010045925351176899447851046669795363504772573344193340141459856901558478"],["26098789212704843053856817698725807944021074203640053659691410098138065567862","13995096892811660518065931110400895706942388357475925046362350471573628600361"],["28073802036890226704339649318077042280131989336414857454589154952673503342599","6700257555744714893219025488122581228846936761935190665604377086388283134011"],["10126233025051102091247428867411230852520335217790686120057264883977389496716","1759786381022185194067387140783010936363966918490930470403698444071379030446"],["19100456388694429737399709662372389310008365445191428669469008200992473189884","10605017718287992356442231778828374542808182221853627349667642468572764750240"],["18367414685264364612675484405930398050690515764589033169394288864618213248392","6929704163583268589002809693057105478064016299961588556787805617963825375290"],["16144813747239551078191867333624878489137216872308549769940912279208580853382","17216237855117207555126939031370034011884688198104321306586146783627301601227"],["2456478023928062456953936726732144142570766034765860252921078321339173289594","17828919733025112827638002247719846744101449886787396929136569865806992383185"],["1747721187982064197369313360526239356348523056232375772087171848751464141371","17434982450106746409410747695177257422158124528230627008587029171476444643441"],["22797028639474423533135210782133851597950179687391910628924236055977577731735","9255900421052814430738007771077607713675164948591807551593975883091829079273"],["23419949830010770341185566468877984406274996201571252411204684901295721524634","24885192474548447149295155293667524467497402815955394678948731190697617108223"],["23824809482537904203478550591354374848322499094988671281008140727442646634166","10679121914928930007414335225459434441090535894301643994245204354417476951102"],["5775516115758726566699456856466868675594187307371980224909128961534909267352","28058541538755073910717531979391401440704846982197882186881233374306689417871"],["25067033528336711461037463641101173562292293003399914449550897702164822091593","20990290304852210047442130493655354444204665079188980688139140387196964045598"],["4372818885255781441754048022892885213441165660216427589158396970180647910970","12521187003339431933249185297075121150537253948629107356491513923316613587803"],["4001234525703161820463795853490068399965288637349494038891437617327399699746","19068000379185622197943213007481323116951459951889007296966408681685651425386"],["3810243622040689387565837698556254457880585102871264853055634443880816987917","19605545845622646580795634235222588486237730205869895659065441204788023042908"],["17045848297932714321512433352354665969045470923841367646294977872087404078762","9206164042569733714388775376245346031409656268375846069609056219818338979938"],["28877440915705178421330041796557813261830689290390291070233540619202190125341","24411042031917190901997053704532062967754825537393508443992870672891649906547"],["16576427430215475607633460661196066641165108931058842908741145756493481633123","8078905187444033032748832211940538399255368285231201923803141892075325326574"],["9655442319586952099264415762541189617358418786224400840748473232157324909635","22704345449316152142755728227649321405589795215810383362009031103996666065957"],["4050141158842498772416120717894166268797563505506681330502248927078444491831","24323265886494984161082596922517582014528761308401547687591451175602211530510"],["9521010136916170341083283066815016632295494034145813269289226372086363890067","26726894461260341697588681903929985506400357392358439651321711738338498191309"],["12207747161136324203246404936024281741123635137066517258527314331609227869366","1264425896016315608900210741280251010593842904045517071604535111004043363411"],["6979905813905847702084917650318245495032923976678016449149421573508068615571","17199578617115350135422504503735894262824016945099627236333509184903560493203"],["11130031655113622907619456213674404580663868363543703567573334675447084958345","759292587570717940159498639461580193803192017286833786357556241852904853395"],["16141816720308770656466591794962309884076179540297578899701360415080945444750","14043970112984908669891408853919963535390416226947717181311649034634894352821"],["15687628376959583037424502142649310907411357463192946026907879977803769052076","14050608116213282317678062068155073231607880230921097473956593173827811554947"],["14381580989814625085567959355607873162928811246743051655615261049205717367907","27324634321276693275357459469897781547407286225973860693871618373951123685203"],["18628884541001371839416134099537731920994385073554346226927934454840756862702","24678537289740621738883444082547923686883697944688196232457290860308933078843"],["28883881814003186655456304596027245245163978312751376084251370013052866050860","7449098108010112933684807136752132541416014314958742796090155723769997841511"],["4703027800312810223699927559537150472387162191319599500314480492957279980263","17920692432102865355815137375134627942551704561880027611262795973542277943604"],["2634442760247925876579403509152859433145668001622399884792671252344345026166","28868560731815066529227401125661326136633909229844518194612633255090727072687"],["24613488016745203479263520235025786821623998426576264899749947264438957237098","14490680447661947955063219191562258214594672131514344325618398845104304220392"],["5315043054320195939034695798861238890070036809804294550102833473595458628790","27289920823173791520805263564482081577158422948109496054380191391389976673628"],["18139747387663810417087277159310741909584682989155745490525143558256118677694","18042938321388065921996438063214382302208891002306321069218573352614011658834"],["19097042327089922803893058393600551398088177245986336785723674033755261412216","4091971289856714820962529573279285144503790074015907033916453021750761096968"],["12193418763656932924758431815540945853633482712581369018995201556220244802820","21870470411454255427215793529333542734399627008141992392070009877147755318452"],["8659200665427660383907657235518596000594803477323886605252055842806882263411","16208376730869651547633986730266158887217887685433897543695411725968063515123"],["3900158883649793046183044279117573948604777975083485831730796600907226668418","9394392385038527537581376786138915209579906984445746573362434537926288588063"],["6795418649193349770546107604304358210559314419671513412062960432614938916368","20985582696875558579140523736783286709168787196243363572955750179888521207972"],["23191835968654367631791038163102013804105947660793728746196932887751136982296","6493543314070645020994550830564229855085981879891366702142974977711290056354"],["23050414054873360602469211484639196038840901239485627176099951322413231290898","2776286485400210281650971698516351921443662138302044012835663368541455463743"],["5872435254943022800655939250438283131823261321410882516481151410916693255274","15740600710236767773675842736905166124834852100679539179049219813779577968928"],["22823309433574149322101627838020159795589004482603228659624061623516574298339","2919290416202757232265085992646526257511870095047432131882773806330194096263"],["4613800195001502695118662933517616995680595349609699071802216621017103560120","15892098063727079187918145727285576611626833178136117181011376690541662002064"],["24630788888619477148347731958943351209080793603518667136382543307493718592476","17175705850748274312528870296444110283732287805933790343292015848410432937941"],["21383627965691501992162617010097133112309310734770820967161036948670248052686","9658031425388189968585947048063910861011006025288357611954493561161794891382"],["8202489171710534290263009504258255266122970271928666550800657477850133872310","6055234126337687668497221689752337781630631662979894226715454763320123623763"],["13311310811050010128172173957188572770744301550644915038763127056683125138563","15110128691507809309942834816093161580168434486736381230142415847550773306627"],["24719112315863507091055320632035715301786453732634884672152712791940271094270","26184473055170375208690243548905834384305453317792483233851619540812639908564"],["7850466934429823316089795168484858116712784833191396607435560222236947927129","28102649840820172331399423447254525165856285597243291151969750174167818707462"],["15667523665272890923134041889164017399184258656546038614433057439594513052533","26074759067801755155341600616800928914033515142528622262272581818375157585758"],["22694141334136190072223027944718118562179498622190620602557109282061234431263","10022545519979279788293945256111337814630517209510047693418963860634276429277"],["22438809612291390300809385295556950495417238284088942431021979888986726246829","4426990544020457003911793237518499517761606651202219614231379582638799003802"],["22596514293461368585591656368046465423418504088289233090070083908774769745448","22685989872177352570514330004956947995097744776820912908684049355792421045582"],["954735515697443067751228114918378365441531935107197823145316096713109869980","18251186916878298105727546955089072872822020621219967852603500771252034560765"],["9388673036062913383685757692642713329316896913755454174887771369143523275015","15280906088286654221715058322733102141163448481402295748800763369298144668489"],["1465148433429319377806110229717267456888687032161115736706049622068488693961","12598368194137414347480872948300548929208126706409941238291286815393231391337"],["24718427282308266248037812732710832832068281571942944051165081558608695988081","17670892147739182619900008579926260366921714778574520310075258017544540186102"],["11187849333995923513810680571787214285127785316499517050509950220616962256156","20779073277174327587207957419837699012558089632766758081984594363449236887024"],["23099278050146159301558157786809311287055615905080355981481013667799205780479","12037672358394838540271013364813493756786077972384982688258335214467855790755"],["7061116465120401034531011514098373038228192612353532456605062501625196902799","28616319374469067257439057255260766836039544731834565995043689184863150866625"],["4643502169248170827514513223690124666562074714283911419428578646513906394903","13221531637884438298918315262703377080621539023952971035597914053159086299394"],["20377940440093108049405858763099023916309271473769391413238013147254315052175","7535763288350370512042578612229162888017489493837605236493676111845899244334"],["19117618850137534678109195767941093165181465769783200201603102108326579616884","10274201152153271334394180894463105269714820096363264398830885204035427962856"],["4588265699973087644148404442997620572953133210442425556984366736821563459985","26505681363042309399320669150463452332856548389385111230811106414604001021423"],["19008169470618475818994560335839453437873954640238640578812004964121728742237","5305599139965714044549794609383575932162761743018866434769039980077263342335"],["3318414214844842398013919915342764310700626976567935190790524304095265727827","20696077001371799765483654009345134755208309325859785256776881199989677524852"],["1876090978790074255478513342320955619009826975079226243076661008656941124254","21931589519512862953971000144433475427656022905458371044114134864557857653386"],["7050204388391159051894556148716568690962060636513824742981907056150270445683","6783963441430839360930707005391343420928666665734024549372194670382464691770"],["14152667474767969082324956791392947709833658243299167489969423736984703911801","15175615600402413259394459115071233354724487773747824393655041120416741220552"],["14589242886981488198803196232355617759739386485693605318683206606443264199483","10540633148899803545624003534808824163488585349771474381831398066863481654061"],["4934736210446786182194521126282825780362799654475893832132209540689187023026","17880430302880607246606455372886547880997809730884460774849757216356877068348"],["27404741685467237511696478664343426252966669622549804618784812664739051636030","11164777815517286249266468192559065923817957867054588054402828509498645099330"],["10141239654698791302732895484092114642199926722364901623898062260672379529202","15829210482087452894638059058154244936329723723891926578063651511436765848538"],["8672893737024350984838318456378551518371801907122668876901443376935352440168","1771748468891509394504159002461332469108882018325403221263365737397832339113"],["13128715642844395563427661137602304686858496698179554185041126699635343351008","5140204790082573090314621315706624856153718506891331507546317618790241694881"],["23950108162713065690904623960709447700763759078126510810814414502497165785149","27357018956148426090404410630294102400618252625807691581412470898947550056755"],["4522208455575547398803735304963268166046839783205399159209114858048776308742","21915075444354580532611374005096608505367839356472989690092475146166602389218"],["5625633773545759322303865083117983796894450216812701758193593906420373899286","3873116827008366935434642401337039055495575725903030545177279948540921210934"],["2899070301614798105773582147211971622798977168801480279343586120944426872152","10138249288176722852595970362624048082473128917745663973611895482365437046876"],["4163305828807003120613312075105534017188360927277475475404792723429973193383","28461085883504401345146628589487207663373413411194171721834081901458650136201"],["2743359589745584330043147291436726100355443325338019342393295219896874658059","14187004007213847168275291091226600419002583075812412329289335928842263790793"],["28594602576114378982194698857542399333673349432846531400092484008330209298571","9610404771120064315604895102861665672956008346428678006527201905126282896961"],["6418289876976502929485560520707587738719785624465288192093350327324475547685","12879674211596803336755722648230103745634082078968204197406299985855708152333"],["23820226267395307415180328042639966603834450571071634666235319587023871694512","24002008612440418287744409247534435373364508010450349170613699031162305895183"],["10939184724214023353516721557176313598598314475418564240672342823533806409896","1221367323638997665789349772680655626060278425264061172024968913386518582859"],["18806151292719885321425285846755920189438339119011300219796104186049248136395","25402559122792650645443232475420936283795110008559799031729127946282041094519"],["8007452402700364327442869517290925672473842536084419541906805116484031607127","2369820374919808050606340443169147533403435430976833173374278668610828463940"],["8394528824025164969886549705715287661399169105466223637215045492210252470179","18704311873311980231708315946232244499990053803605681312628303780518764440884"],["24912722568212897416630082060564129591604556888161649034914101349756515359981","11556221303906753018570742336022001457389976023428094321358830057194243317937"],["817470165101395689788921742320893807581947488825218436869089496599114391441","12687446137906095829030885190093989026352071047783224812656292216754901005260"],["21197309254230342417372517276623307391089084972659934951674113810668302209309","27332844011341719079145393652598712391727496851533699054664495668204212315793"],["9684195409448970608420357787368300007709874719803653945804317833639628752881","9508185120411089964073003906999368407272473597952353361324098135432669156937"],["7445459329163336339458839633930900642659109634042085709529387006333808457083","4351035323182180860988372707664316496620503907544298578448831883311198885454"],["3608686573430322630894825058634827998884844196139063524694309826542579116321","8143126534246503031208356225852017777473240168387869291481859390076574751575"],["21921442942603113639640229221934454618216118612646370077849546292707105635920","6739371936548093656004595227915743330790309994931807139944771652229191746159"],["28696249894808560849428688262406464528705599772539933116637510605506662745558","17547716089668857354991726603875805609192294888768334391424782697542804245271"],["14729019047787447411642560902717361913670801581465669084647136899808529462674","11866167950126123703027563497760046609511002607675684833998826986276462235984"],["23380756253895141590960653323717578357173144842102266788869861465036745360415","9722859214633375690891277236982597492997838211677450395635693861340158463620"],["617155660323284664922067154948228758615132418868942387033192240197078832091","2859583195332928543633982012680306606680035351598746147837307478752620788165"],["20123225637371513608726018083918801962529836161824358769052523247277642034976","18781188578838196689739528461072821891764456658095362459818761912174085861150"],["8204709568127828437298404553058440008097649804826797351555227617155726701439","28513441614377071716677180303528727598276971300921984110597358812496007075889"],["3168364155008197838169805515650695606746198062369248860674662032629115897212","102561099481919267291852042852102775243110334305576648214611398627865131811"],["15752676822444451305793906574724674221672256596102886527057097157081792382466","2250670601284144075275478040123834505356943485866577458131632464147040035194"],["8914762940831500496359427960723461418323540254589321962144182527171675273109","7466571156043173446533226098518500162427366653126101371650698211504306207609"],["7215771666271250091187173832068150341140838086575738124212599409759242780498","4624696074981210052403439678294405300418960905755153229591866982112315552480"],["26306933666901625786248727678598100122492524286836444381816890315874492441242","21264085583545596342227641554489371834618792640671754992605695326503409387596"],["3879363576720740120120629291385676157938423461562106007104257378106796339819","4644795529524267341677415618422359608530719366861961713758247805379972037032"],["8198229273980803771749673205312355827402799764804132826373308269306714405178","15688099249904105674399633690738221248272038505864383360141497747869467665992"],["1832874718242738562875095281918217291109234240401731327657243962770464956398","2443660166652600433658944653277362759822911623942006644900395757788926328363"],["13493553053815125224592846753514306912701914867784241479890597145820861679248","7761821679627409065997194985634955513492802472149763060953133755422020332583"],["3865954463564476896972227160158525898832772093420560190145759936959388660911","2074610883352471469218475119304056140724477437963272275408975692501183852461"],["23931354872023620423889232350463780529037175393345997009811259172419567229104","9932817869090016436865052945000340679549799130919332902150228786107582971237"],["7695835567695362413861691900427809229425706649867118920936963548801005884530","24801306262645054266437633017630784133384793928549678265595967474810899952576"],["2673554987287635746225070288742629379821127634386412485149577539841976656356","20621930319714785760709147936033614773550570016026771993169693505524862840163"],["4224510214528192935736723035095647820630254491003894442446569134986510051417","19611440500941577096528791564550589212656407889594203150628412419060461072682"],["27040133375811356003440258527252829294577125011447269576034147664798105407841","20626777806119929425025817582813354174309840868624400946118754477731948875287"],["13235367597628826599378558088000692309418945492189441129022575169907439144375","6324905368065451411397050489410415621535248839278888586867464755395706351021"],["13679749223911596734529298936544152655463337516333606242391222050430648714743","28196078015505071268061050713786918107099396128690731026371090454331194255774"],["13171499295096694548551181052907170636978680681728881178418723204902099097416","16061943245325122784341438147472010102516193186184070542015708885249406575252"],["10891765961573189058881849311588532658885053946137223907150771702972434113819","21370887966971530851689131934293277645020907267666135817380368361367852426227"],["23809631557632161314158112865919181455907863129946397310552911154972557728772","1084166266976027886034512871488230673346617966189345385033944147435282979907"],["6433254619893669421186514691255837545627354225050786202576691783234106716698","5772395498241558435031369131265972174766515052484177495977772801478705168951"],["20173478629451351710653240746045014824068866505035020296780385057396467075829","16231723482858168590493167186882594041632255023529580732258778608853430350947"],["8099608909152947891112036598423743170954933438707057433732286594364921767713","13110223856950725613029208159943272502928817962320700578116071545946381888566"],["8117981373042195376468172181720431255473522814654316826138388776692190616213","2548399535816089728107275876281457591308936837198376104748516583300780814413"],["264809977316118963068911654042997403039104863635521575850175096349395943905","28725635365008360871548531350577496658454539025394331703511284427699763611057"],["14836170327326344483495645186560237573807964224520625282220630476234187263664","11286529765780437928332680626323686557256229862089973182290137489940141717844"],["21677693652963709856809817523406289708356814628199149362091796320823306558410","23169513160058220754069709919851069522456098457896585883296460530489448818505"],["14075698828551743148539463059489724887034224944560243880906808735442316033824","13835509424188618919243077547905145816977389461986762913261274339337643626542"],["13762670391373071827993456126618600657869563802272418965534929455638398139891","4551694166881138606746064575140928579647496508388551163463272041890268741925"],["22632043563609095554932104390443566678819900177019489678198528685976251019714","14039247289345666393605407827790898640020464299314929230560502139670021958611"],["4536983578811556154849539155393307603888598557029200507326709832769352164069","12073759769403124966271587608427480659376406623097087119553092917266425793754"],["14545580865205756253508595870016838410052373964994540459174749738717741154848","20401457241174936497151180439346480799547959073606989672238204782327571731590"],["13271726870410083225499824705606717792204761019532254204307188411320422902077","28839983811802485850110699320458053854184050131451871431120377901265466990811"],["7701927847345729410575527736681138797209950866258976390258425966433276781754","24118210775816245847225541244987015347942854460371148301142568822030591341382"],["15863439791109897579336315139101591221249755364022281119773080414259915259251","3573649057168578568136991152270437101804621236542876686401835189475158022518"],["24083298519067216795735128006942536201054647942568015216672819236937859693005","25857072141979485553809577223484728374985543603315635554254232679177536392998"],["5983482594585669183385764760298831087144735201313380776450520675225834474372","23125556464010729604228700586652793490925179601652970678118149940065163083594"],["656096695591707227935353906610890121861175465159716890116096107630739061162","3166640743698271899127459429199619173174068999462860244457959159404417945223"],["5272628127328875057029757923794673722798920860985394802168658431307801223702","3540794347366684571243594594412481512185732954724607805584488083524342117866"],["7110056813152181076103785032206428514757661947885511477908066261861571727097","17240502210748762513369336281880157091019236984197317192400177335021714427778"],["7726832948787198751629044340852749395499701387993016949726550076191398796963","20689152350515985861099289792272134469066157651596248776479749301807305906658"],["22066544999424587246106836064465398632619569068613410126049995291728798189799","16510040191919303206452829712423966879376251141234947914498602633343438003723"],["26540130119912608994677619141125504050470256320156988927783117476635589070706","20172458714342597885814975896424295877053980408200795188911307919961617489804"],["5838243445131362266451047399113149025638651053821255810816621704126878254320","23286001484278207543298786936923693297597739772563398649919054048496373377759"],["10453541375048078518828818171625032524551318780547276159772771879615630590365","20440065869297872544749378692963370092361743755327932535743113553124035657931"],["18276167153738991755065735018705173058826208096232363517981824604829061803704","9778024101311247085475701678412583550456252266146205169872024538102656716934"],["15152604083439701423473723311099729757074011271479417608649568263375303228648","11623999886558167245032152594262757798582210505275899800134104125122246840735"],["4683549302124232405936236302367403526313853584696390046097545007410038397391","12176640141510759361081290711556049901575997355354283347333000692369734593767"],["6469578877682162593308877206745905726246086662699824912390735955640395808515","1502362379772845554291076316389070912668634928403643258704307325016863838883"],["19506350144678380491554091418353302284856114095591564044645708328431297094589","11205091326666454479279832112223810425609481581210500447891005171564854181021"],["16210471860662318276034548495187815681100936041821830888750958505345781113285","15958544579915191650698664338558235958352640292738339332854232916150754221770"],["3389697246267842844264549572829941538414823845741509591752821358431753873692","23986266925306524356745890698223625704737579327827267256771703002554582652566"],["28209190734978950511860460789419324770556863711842335509097809088806533960804","24475898338098899454579457962050434429375590514521881833734074068858093202717"],["689234291646620896514445564431816416930457797069310268644502920821357310077","24407061140584406920438602729448791447099706446446941004341950819157469012188"],["5733544080935831973118033523802308750803141692322028822376797530422975772236","3376196029390144427294648231219152932011909036864097541137236772300553057438"],["11566660914310826969745005485989338166846581976987307349192487717089235268318","303302194197931508211293231862248634951588892518840751081002595681789881667"],["8595854452401974491097586784786648843191325570183156822053253724517514482799","21594785671806512160232784805623952574845293437283868580622942380005092400314"],["15120250979519754948496579386187014077653663124168739262941411559390325114438","6656087850177645290213125564652997112099467907897253941098990605109212804063"],["14216030372645183385105092460931370503404385980665572929833607540255755824106","19757708269508122895007651928059239345092756320856756498827320984852653239796"],["9469781680095407920924718066392479063169037660770574898897487239372642879501","21873980262432630041113079028646312851845341845974053268871563096072418789596"],["5723312505612824343943409700608832760882778856448113686924798675350250374071","25828117775717255795865856586600267893003550756781619708353572772467667831951"],["13002163861986968714159447288611964982176614494991958889316790425031097867988","23803832231086612248041328401256296872772905886380699186488114873555539673142"],["26611469706945023551150249090542087712591224561064232371521394018913331842865","8952739666613958636686067306298992763104810772351762943229414456375328427326"],["1302601845800913355221317788478062408383276191313122266599681468219163359470","12520832422797016044487876893601701197474112075983749344286480022362468789792"],["4722419430008882377703048618566194036688616229363862904830565295530848097400","28621450731234786035893850243625077238630261121088250256267258794145509557002"],["17251542210971373049019924228079804525296601006225709247330857615011703588843","822578615329665884242224594157540018112161693173213545633144572293173685543"],["9726666423151659532190403976281281034988305571343889341638479141036051325266","203520295393977047609645919143923447201968576563600368213556723890459898761"],["11720273299516876310838605377285215342543854778257487758588636694822203874472","6497924328736126490877153204432100059986300292891746836516194646447107088413"],["5560015073749483793878472048225063339935892525243392965791357650552114944561","18770988228600931133054317922294352142790043531858942326749065061409333902250"],["15282653606036571209650679768215048493689129027494428568706533621960694018694","12351380807393758433766658166038052825801694683027182436956006920210307982924"],["9476072069116735515524419687671577701379010515762942716474523152084367791751","6933762391260448862984618880693171662779151788898804999656731609599491224299"],["16359152775672877006468387562861946449237440266648897382583415842891785322443","5013053545942702775068300436058954971858583958368112186129297756658251980291"],["6481547996131742506072552057711955033472567802334377179158281123168954197653","8827727858545219282011725682550039037332070922039680959306084263079682841764"],["21542229578284921348808251285291994447824629548224621812834428901950826395915","17352238624185749326032092433395288157402381892658055022118750644945953010983"],["17690707936425024908391946264589070501730022879507748233889622185546109584516","19444227373946762927751900333929872208347895490193555454363628992822975975278"],["8226903332380055445214815666840508311892009496654419510020765314826399135046","10599153251878778382715243197778305473440952868906548214112439115351087459412"],["14970528462384066571172511609560573206277672434640857032685366281144219025178","28316038056158312344236773698616873558672466421774691154373717832725949343939"],["26527384634265458329948862472831635553098799524018338541626706110971655413723","26385307403365486877235483332960122704579815955751915319209397138904694318515"],["8068816818847983123967803924393767004168544239417494033685391019985882470367","11971411821054599137611234206394739716560134259116255268853773633674919534763"],["24930312675636971837821800815987472578858298174088850617134224421241164301145","15205141107622877743321107128785007713886802174390651575188070979195889838030"],["9693389014175809105303170027632397268976444724034923201982867600999272149061","20655497261774872627269962749136817921803781023383632356163591691261329026148"],["14551303873008645253724113668128946576489663010935251278849699407492188917426","1301944652790553270723000845999450594623279474704726043085189707471449080355"],["6191717505078410737866654804007036385798044872232996724694398679833840606199","8258718351067431230603884025994569746281401561798122467800358560304555653562"],["26870517529833342580182997146531999222648465427605735549945814179791475170195","7034299609541489676108847455156565003753565347289758216530085848007031082245"],["6774558205423240963417307678739548933466815517486174697799322676366442145243","20770583814993709777924954757690222783464309641502429491300767433459496670023"],["12090209006653480533761291586398924824382074995254094569375573795313928461360","523589891492444335475352369198946716000753938884976331250282937016251889211"],["21778250349330232450672782081403850600566240950527563659603011347644625182847","4738642309159092978207021064112255674692469704346893377875319328025010503784"],["18728911523270802809706378347480936102027774980930631385930370345831386708155","18049632294863987755950357547759736082247658360746711116557426499682413455518"],["25473438651254297803303045937743114506019583898941583407699457870757494868756","24138308545948179039967856162068776741779274395833173414523590364207316893710"],["26328819098540524529257419075313817571890648528017141047710358198873586076598","25609315651167699534376435804245097833750035440042495884814376782717890023736"],["11638097143426589081189574308544092678241088911469947619184293986227896117192","13246758959997731845122914344333816634920118152822483784712938079771681951234"],["9153005297595149732364957802866583003710462357119522018995934847508693189977","22554557588253341876931491744400742510457887908744007757080981325799856409991"],["21745055794095978116551552080541572100817629503569043043653818429703692218529","26578886967539482930613427854582255083373955336462119072606882573705512508198"],["17871413890740211750600374481353592556870134295504258957412887369174544916148","19562104740450909712537883730523955956293231667848050657644499962289395428320"],["10461948372673894001330826626158196635880041099830508615192178932567387328581","22753205702719114413236780495975181432835358867207386208583027148154536635123"],["19030981613116827088883773411459261712874261747578479448582493486858008273910","7915372997392975172941224730215862731390134932611583203461580957944332732326"],["24978975092927625311588724160726214049704409085215359963145631270230490678917","371671398950045801177395211714881793633890860235447034060265934510710404243"],["26819405177877916146719856540963061887430458449420656789441977614329979125390","131025039616785422174868272629035500368943097195685315856750294131817023814"],["16533562814711406267666031259272239762556619469403773373201547161663473929897","18720840508422436961668460967095969719218639159323051669225120421559602924689"],["12358696992616873767343357909600317954891874463565528310211856204241940977687","9125958391291018082656919023336326583872849447282986965022717630231818220929"],["25665825385066744977959211161356038529414619973782543326614466305132106815543","18687718991615159637063659351899594672708073338685263634274293408582643720631"],["10841305181020418695529536763756611010206675675992935631579067969226750013289","20289711011061921699050751718119094798102621058356881544293207743084380229373"],["9514563330966666733645384044064872587524612040795248815288721729568698917097","10723880537352879501179477548473070282789163389694091397685616011789151032291"],["28531839505982185446242806777991483145146010063926805325778989260279567271454","3358999057047177541440027785540099102456089432791628838796157639090835417105"],["14565321093351637179884037591644927875403101165437331786875917087782227927092","24580947535595713657152951244288069661148144680258090571189842551963081197745"],["24621116836574723595944750295660868186108070537627434075411155907989214050225","8167882075294048762919885321994258787803494111495471114631266033392726631148"],["21053360730969190568956752415679088108583903313375328730571005628438604970616","26099636327158716674105350563383611657320038173561637319964165829087856015978"],["7824221129208237080601462056028892130370336366159628277337806457265718702574","6492315239726728841144693451409035329968017448745480655334817250687686597008"],["21840759281542346146260683491148612445623456164500208687978174416556042392340","27844516646213726312893822814477787966765745706885869251810826376757308946442"],["9281646866729664681603315680371487237805986126215781096598474428995545396259","18443739629131341594166241563736956729581448713611781364859915222794661777354"],["4379669613278163059995634645355667782261064997253766228734339746579652912313","9643747321141598534406993253065605114172122171350945728272808249328914356844"],["10428108678192879751987395858350329702989741070592078347431383186487466682227","9513128856458792384516593640533942159913662318734141713692714967147078098787"],["3470384956258628468669943721600090191327013486857020919050670128873105480644","12411754326296581450424166957837203634831634013362627023771538968509816417694"],["21248093020517549340493834452285120692924394598438427175693725938488447821588","1019783171621929150263454884813128614170234709573082328321325058847658236216"],["28361520766934335194323716499011536715884292733291985552326529579094525635412","24160068959692533442538977852034559609131493565104501056704929638093346210782"],["14998819247627354239840063377567488769880259837025263333591512735099102670280","22487894863593276893091691789164844120197728864655106848057751988065163797474"],["348927119548514730238819419412999316081709495524995194856220310985775510595","13954922565512263176610682330866975189596933964885072573647580149388749438175"],["19094038280113356031511039620935828519116715695056470758908016023693565084569","15417739655276746712554221931789514507618891957969682128107462660272630748460"],["1974905105632899533105539387251291823543633724654079295343281852857528329226","25085489672884788384938685471828728765851250065683890167872902277736367086040"],["23133212619658514595832198246636974974104781657560370648238429303982922555603","999340185615418176123058805523961344262820297356152929624739806773395966304"],["27854222393832847303737441444884242015909834581624075718963716282515788655123","3189029318859059222526167622264221492250215662310711872960379329181769974605"],["9859369643822409111708648137735593432134997834519719059465626405586530673763","4230851324385912685082394550384356059101309106849075978007811721581660781017"],["8924731668635811286895984659087489401441419886636498759160039767397387911015","5117857702739706149840540572233266328940212198212954153674697049565657374571"],["13374642328390503560367731607286530356862281169569465086000255609319762735364","19803981061737497373241934527419954878963417429702100468920996575559738121044"],["502180669313580346884955463051466121844717683435009149170672697633497571427","25607856520202968060192133942479044440154867309683154408132497369025118022225"],["15474828063170113386989145114154063444502089168706124855300347861986520318508","20376987696584468897146262054891809902159528579814583952448206772032672249515"],["3855762548122329285873154870387894947732806858269054814957123981708855127111","19919146117908429171668433079728336381729393079274655649153024980620964190567"],["6121742926283759728240003860063121826838280575744023921884866774179687911844","28568626138833924053218498081884685474311362908129035884622549126662928022050"],["18003330690085758011771832127331164106792656583754649073880193654616917326252","12605644646575903916433630248847306795216660805494536616920462084859908606710"],["27910839180621912536155259008097802495089727214825732280410348450578334810465","11794886579174810974348048231977003129995117276460267760361076987617229375902"],["12504928093189264052946668804879073518421586910710925384804236965205689626007","15141745619279082015823837545501037771471355911459400074863751597785287462704"],["1817335611575330456776184452032823145137596515389111164456542877191702256131","15884163817829718999072034394795669820847718438731228269200544264903552824674"],["7731085241845446290152756201891586577519305804748685797107427626562786052439","5269125390102971883954858516287198366177540990853719176213647458472498865177"],["13396929004186184038476213805887697058773999256513470577958428115293972420767","9198413566400990986434088835286637949000507160574727407960985362462255017695"],["25338418037190454159065061316971709645571073463367525246834405248881850861150","126031889590775166401837379927251491056719734303795074991173538440714561278"],["20651618394874482769017683830389270906884978600890232960504945545976133745047","28370219074485890009493398393423459712304387812369259783245705848839536402888"],["17984336888934826486958539378812087815420809584374988708828270587274915998800","933881297313319601942934981434868666779466172068584405783300358121048863079"],["5295515231849727947886746457349777003387313688885833614152893682536870115533","11670128595794721581377347643932380021152452251773032931317099763567107464059"],["14709241608932449504198705944338548010606920875118815350246197684336591254861","11587045016655679054648436788464917662162124043528339792169008564915998734033"],["24389561652327030046767553703532910636880278658376051621264801157125544791192","26995244514720079547476453193625483807707806769645218655588881970950594338520"],["20815242228821813314728400212527949083250502518086062282529231846177790271885","3562486472589183153948760412676791697027630416500896388948682208058017450894"],["26244796382889289495927502146859104261211973995753397027538240642513252699306","15793632228994917728561045673114416475079142718293303372887886879506887171459"],["2960853844452264401138528208907682487656911248213244415730653058500203280186","27076571691014963852999374112799174703901500917559171524289999514505354470492"],["2941212156226188200581306058263965630915606417445752395969186819077877962240","17606275666398596988817862558931663986687614257834965892447142745791914941843"],["12739305668879892956114835520164119791273122722175703957690199821613552390253","19724624944485748351589035811670976403332144327603979943344010941411365859391"],["20982035557934654818386270927762673337726973132149626898504511747845345381931","4873122820420178036007765677219942554043525625236151464576456413951440619819"],["13761489856197594972696411991093850240953700053414738702437052671236925446484","19665854925172432782446592250468484248364514471621045624468394784137133878480"],["21359952718400267575710816752991527745170547828856866236776687811390137406409","28034715854875361420786426786073087320491542807673990159122507690985186609720"],["25495396435142802230016133709892073552710368916284908062246530893752586747311","23667586635827158833411174379553139498674125382178689927746741948748253991879"],["16721994235028338195403961021208171557715694956579995431524351018392158033547","26520618551086447162943220514823617572826734707601082358124923956395554832463"],["16624137862389858703529042445819087267527227489819606217781903359524587740754","20297119701549678780383042237785880166785469164136046173707373515924016294363"],["19450005261509242292692351464895814727395832383934600811371988378442328713438","4837280854964937762817381335987742674878118333537599384560941162246619929451"],["6486582240543425210134726171390161806379439943239873675808736106592822061333","2183983515516858264047296596081173885122466555583909976239372212147679093811"],["1866375000216759802430492963634399627725793274384996260214346447234296403470","6524275366632445608717993388023457804091946553298822666619191313814692745664"],["9136873230017791570664212488301684006273810217264803295141868488915938526249","5763079505263174911009706735517601638923034597919825434995021285223322536189"],["22482514665751968698135917468402014602784632306599888391364016638098105087908","6225890596478390293878986255278289067425486324192633927985828231276966531926"],["3896072195433635179817483736923674133518552792965264608632297550641844071302","13443223365291458523569496401543617481167702935132654083665922120171717343569"],["6644078739910325208351404892330244253839597459485153105822785992110678327783","4721638577633106910230414569155137413229491310915395838422476316019594933100"],["848353825227532783148690404192199423601817568505852464034853502504687646125","8766869827927562869985608562003251576494685639358578293671821472972950160480"],["4300159434624974295830631212122113553225680216539366630203846035285488020088","12922905024862583658359111078063422674550318620680639092977306500453241390738"],["27160595046307238279911618622907646114852045141361413950743453192634974256120","5604510378918504645691127882458016095537158157211739506799508303957457378565"],["765091748357118612667006471257915683807287071755990190468631378393957169982","2900419190673491589416777433959643621334675138273566698458860933953736383976"],["24130823742319439385272326653201379434200973437451456321019711309705161248038","23844428588064602120515150866168681155653878302507819219057387627375433593812"],["12949935665397678331412195142535571610896719733479745161864915498438056258165","28373893985089318747266461277066139467740160485735847175119890804848955751245"],["21044112161881114694503296409547895677263908166205683501991706486589691430386","24083839046756105897650987851899200321285264260696944702752951927508707210111"],["22907024336739085380707298971555176678979119768746205659974565102824088809761","7134809261822369022792108814728784248832336083557270535467717743312305404975"],["2026406802573673340356652251859657478233864658448194814521801660846794276531","10465331997948967244613060948104024919466383454314721041341615809552957595893"],["26989919983584233369926456503227235585672095506922687276105241981004860643943","19242227733106287757045019694434059888293585536261670686411676768706205289387"],["19045030487201642338898570857320575076334869163087466631795330518677187530405","13037777891540425122350160412475540513456319391576754824918932668732823915749"],["12808687121823779556028102927645584957965909528507068433259463249370854238701","11245593759566689563957403286891581284110454701687928882508376719215076942207"],["1320356878591175382455005760873179243605644589214408472010466332480810545762","2463187071497729524608447764008585123330619620015704197892766273790562818244"],["22381278384441499770412584019076566029738642847753986485641650683561512667904","28251450298581275265771631938361362705881922946702943658196515935799648893276"],["8305625201446701967255221308948185749252189842423433496881763395897860490558","3706344282364117249455006755563416287056443179884943130851611905574119782371"],["107543339254876401247650717252204476453190390534732862847534924678299357119","9890462368784059947382236090068277242267022830258906713852151842960953474452"],["4406016658905215492493944955898151415778321974998560742338732839618895693024","19664915157954407138751808137162744723600064382739637439705895927459635357859"],["19156600420127038456380141118829814547569361609036211821180792194136469418799","25699197450643979216136982654801203581682062410167558971395364805772603723688"],["14817279065248619686478192485355501305360270923137638158482776840421765956370","22162680103106100969737767905684063369880594439794861647489434259095963204942"],["16281277318694792553084526412186702936486813609130582164227578735691939968775","8262690427551980316569005671506094021988454505159731443598296966466085885712"],["18128351313180171265365276590077579336628653057368765394887394519520118876158","13492529342650879126198113065030539890026785483543806551735304527759712456434"],["3259291863500470495260442337624594982696846155460549030923085169225277138664","16849562852935965320429562083677884972861531529485242648381808818331511871232"],["11873212461072119608945193446952456097063180360355203894356160307436134836684","14881637825287350529520076023191558980717364161461874559145510634464051940773"],["21460705664419427727356595681810401924013132010152462813136296080176405108678","8840106104438436483526451000809083913423880477668231818512451237728282525330"],["1783858592358310948234121491956542105696691681308472804923166463873654432635","14653913452921657414172383112797757062894635128932401950083273126975354360319"],["18241672229615096270229757225631058868200970774335323174024703936125871792067","25591240680559561317464632416755466179028343711129705516003218004790504361810"],["10866166898623418711670533980149181717932226719877634869349123021810418836065","5140943906303666767879608572411827823798997960066231957356464038675875378421"],["7916527021148006341243329857131223999838552553557567302298613054917798417693","28883484848123883963567725637890725422636382757822231375803221543463788855597"],["14372423157340305691858316915159638730807867506867214589006338877190572867335","2223998147487602707058983676009968074238928602965425530074442114616280654814"],["11931719677105152959402635884238859044782975669157216885400730778539979086778","1823430356794618040435299738922678610649012077708046992022146315311791152293"],["18151827399249018300259947358983117314944478641757690807395584265534846652504","4704067181726209622012159684144520443873285305685369830042251828622842047933"],["12336810184634601586045024332944042893030550874251326467362218364185576653222","17232013749975830495024614026998812323342085473004776947871854455898430795403"],["1900278659432078448818109345596369276925449882648534435033250304087953983435","15255419923779967201683518347276068823732141842563209617311527764977920747118"],["24364745516636659149522734043278022002784149437425156612564521836266937188083","10643628133633388736205041670000383035759905502965260345784320937105241150660"],["19250793202826037524924266560795423393867645448017763779634198806483715897699","7314529022770865732102689983414192647388091460960324659273031397825988317438"],["25918407169325223147851178124607217932002138958991919920828352665180257583456","26102296966273415456903174672017218891918188318573403912516546525977146496502"],["6935228708639479407685707094668866190250672733522413947240168848915646013001","16141027008557654799908113968364104423126708843663620956981590156309703420811"],["16957201424569162971581142453744297342891031200691562136613077872910213064823","18384468473885221036627195377372833550827975400952238916766553149459316311535"],["11379838763297142827059065875669051057816684704538873951750151989548179897404","24898392457821173543787312219328725017428671423978663725872398211830246815241"],["3612901148717206376359667414135258193235836015043876612994126884471708686137","19745477215016237278988226461119250346632291533670800192596748709618226652049"],["8935452733263348159852734684187131466623604821220678101725616736058672840748","28441291960529647469301894033815003936382437727126588709065130228177297106144"],["9413248071553778420356079190353723227771480097003192790313412180471559571725","5627301881734076801292778320236989408196066036712405823289524080827165516646"],["10484392180658342387882638119223791427596901304095528891408500663539335333024","8099592942690287474815908016382832947554902019934214947892684191363697321243"],["25309734080630850431944644855752852352222577953328443253331746627788176735663","23988365744966533780078337367632582931106242269523424165938063144420065823670"],["4103123849227730226506905769045025070110106895326686274083094619575984061946","24918321231192743072366487570672836568301532560197659949254781568564711946546"],["5339735052513097396917102668541171248700371474555274838363889183686297804930","24096971196808378022997059464766351563677640593456229599169324224295205534651"],["19701833689284822440311319443736258256301959670136888394167210500918226263514","22661542323907196605429857052755718530969392039713132506687690803696100623020"],["9915689311477593388549347444745964256313547491706902132829933804192967487730","9511046547601584538313953816332003119983914317400104779694596167569181463382"],["1868958623382981823868951591450418891724339587245123357205516500807518850397","27508453042754016982821949224683809386984814933258588342526806997412096651703"],["5728767473889899013970098261388582307726459368873618581589971171816606034462","22044983154358602665073942166509012492426544998194151167743626907932706598509"],["4321636352847981189400582014220250109658772567069950054669914403873960293792","13700932994095017873171339651605179434286642010283983380930276634164899327149"],["27283412529488708066896609605156468248014817669112102084772460920628129966961","11800503448022996255485313278770987712453582214629281939002776060033326082053"],["20941911258537336957562368427374685911507886168101356155635349731550439039217","11614284165972259626735087675498483829209673738911435683813597123033233967972"],["1636742763729876145999997488162765195332588968845139459933033208537483322360","13930894147505671976376784481093453090387666198910685888541824159594871129614"],["7244660234996418370088612811764188336079756232416395627052090134029626108341","4760584815121447542447770454434061842452711818905043300769003060865363263894"],["17138867390772859032923580378517111695212462024368420173133306267823427910566","25003767433302940105190191313643004911217775095861997750770157231823611471908"],["25990956186927438018069696126171920202859631014487573325064845863063864349964","11984755390430927219583362632500702538785200979974025843974569648184864745796"],["3387339375078409128388641594566518421040661066234229541994356909766018966215","10264475962858639499911991058904538544511951774272915825054169282182271682614"],["16546398120640903441047040965318366622036376312045161631276131582429386456020","12765664735573880173053186565791464642221132083287309044470540573330635353936"],["8139431148197384974410052804916098242614434430401786539366913938815128017219","181586924851799303552251484180877599376413460251345170549998427766508133292"],["17454260142992806864155837105070925519892292328938166667640682795363524227653","22258192677273688900339416266726580160107586241540236252301457756117066969725"],["20077102377607725861287865457103443260037494960483322148706580000060901018554","8803967668975486735624018885802745794825942352925096917276989171803919619176"],["14657178105397731224663680944782424561851631065325908850479997181330962123242","23471129838833353539090849895791276241768143688575421035821658191989010902683"],["23797873260322358941338520661381890684902063097909364535376573568142392021505","11572086355551064611059503235794834957530922522589747796762662665625357770534"],["9961055171165216748977162491508251389487601373580467928114791865380905364873","17164591963333484116732165220318531874308171548391769910924114083505800012282"],["1328544281703920066783515884760022881456030707514039935078845402076101617283","7246945616746049664417331725751241139873739584008502976917793026957874873992"],["10413959658928414902434004668129566972078816763821714958625868937469065482628","2784370054576316256522941397362507531656056498686096067124836437838882445549"],["8516529051914104972775341979139299301472223702300255135068119778726809272143","7048774415966106088980041007542458373493995626409662845990515902219498934300"],["25613773594443667652684186901107907834934801261447335093741837605728054181702","9066497624227598853943877460836684989480826900613001481039580529198390184714"],["27543678660231885163740748229261533083813827417311355323729063521030278839755","12246881739510898374547008452568828050927467829512495184392859444656354029104"],["6280711726042753957301808929761888823600053390664333896985564827682854864474","12153866945977843865938402970533506976626580610348983631772761855887206982974"],["16199972307090057353086328768518162686139262451786239547970467594215972935274","9564150728041922594755293710875784505161389830333960949468583651665585139761"],["14898070444226549592839161998116094159825828460745870463501378967078482033693","25095985225212110038605376053293441761872047728620328132374349328574915007550"],["2352545060382197092801778606221222437678008810890648666803152615416760416086","1991273654771264496538335291102414913298632370063122325254498748379786127676"],["911262762204139736963179171868946850261489289441421948367425046176339751822","20016113951242781058896999531006190670762628739803080014584404266492387923258"],["2458633694989226965080978693681096658349490311374748692753151815305085527055","11412798735939953642577582478151204316037947505635090480144801995842404101099"],["27913317012913797708268513850541163414394743620923871884594590554884891273107","17853826301501581605161342439128086710183475954652280418913432985588657667644"],["2471298743355047931740383851746542857475589660968372984514190206697053993341","27970151089365436355015664450990467891610568229478256338470490136972759693546"],["27025150307742200674810172049696431299544087442590646484778564435508858916666","12567861725273772865959274338296943634263643439423516809145373110018038319241"],["3052634680937188316977616658277001248434338774549425045681265682395994083329","11207139244765276615961682691118983582045790162554138420295009369700194189588"],["680916351020457296357596846093627047170722252275252909417874574667895456938","19587657357792377675191490445035195209312889638118047794295413342727981145527"],["28931458063233967357514515739567398349220458979712875687052991724629337774967","16441667112739038789762694336581122320122208719547148076469224120754122997570"],["19092825934292530753540226172789669060899950519181422374832471789504739969066","12340352187149340347935889153359067988257355201445092350078222607931250022210"],["2231399825177069067102528176245764942988320311820719554709782537189949553742","20267978958503109273880145677993843504288561794674399088338305988929131227476"],["19203822408515536458274949358102102610578180290370250749321993820945340213184","28140239131787492566126874861203287468279722127000277756077620957480181712661"],["5238659374174368220388770323972306842431311858777225922997424193627445571785","27248962496830072857105203517815635175326972088049061301210152418849823383870"],["16686655367950737149066040008970034879146852931998465976756847295793218850860","15903438770858671132717594248662119139058893054019948757184748385922983658235"],["3909791234233482534070688716038395392708385011601126210638105525348861868158","15514158363186616232527309449422163780913031187581770566244097215669162611252"],["11394627809888783972866316003011403003658399665239535611042220771359386948546","1636639456759518437674665672787519799795274085385040095043837736118426072783"],["27040193487598390628335649262919482575180566830607570694958594408027087616260","8920769021722052405364870905799863505241517921255938868080760846928603911949"],["11560816461468403745469584702482238295177302638451171194462851060516016007297","24586372403818603559768289691436886599382425901223417104131392264610585120611"],["27230516903318461585221476183329453782557832757250347161671221374118318196946","24720589269988026118591347086304603464337951991237888369933121011527297602315"],["11905491995359285106118907418675378928804646155424000588777313381642769017279","27686833008585631693682695641071496953102585957202492212724127280032551588383"],["22384595886677540724269084285444905614824082737810839497636995750140382836738","27369852386485676887646963765751417744038629748411962088745678297636462577489"],["19225323908733047437198275168326969098143404274980820517240088536733315241408","7009093360817321795000281785911456157135547946250891272211923653221084187199"],["12373096376971582678002116915173871593205810344322721196351735320211005306689","6619795944149342519089113572252837182176593346555238206411406977034604738135"],["26040457752420663626961578881452261823267250130398085671660126297491082792626","28074873534537931920233495034906092533797675102103857536111857904352669735085"],["20718611551336046977067574945939807136269808199184985242500352159335664876872","10275858102643018440462457373262565661877500918467742340000019823631011595335"],["17240137055354180020555118530119678525227167610612669043238479614639300865456","20189940989579943531338429831971175183438779983748799551355199095373747927351"],["22805993880778936502526320207951104866364107523389202354385596464727679028144","20505551358947554785762688812238227473518630913169927785050802824058354386996"],["11588672420436700748054267282313455058640115158805783461532269948467301624307","24246081754421611551696179335675863814806731244798015090675205806862009084226"],["28167165009460429919804847159621991714707180171296712167915033199829030347147","23934517425585363851125826268242783284456587261128306811887705349921991475369"],["27183546446079427459047967896548017214041754406418670400073484812129149242473","883363151503102786794425746271463929725195622279731023772743829237488708701"],["11455960226891546239966687452169254166843483326707991034020176893872962452390","14529113708842623549266706028493311758301985286747277565512188007203956687781"],["19804739950331078865329478863105894700153536798731491355937616070479644226665","24934567371704372381858876824664470858021044861099172146294482573692563315804"],["24251345892701877218430262547824616285095895162687791048587891159444718232820","6652662394585510457617075781253626671428135426763688779007235870490179690360"],["26072019971125292130380295069780334261780304680485292737047005523426835480412","23301382596781662122751949780760984370641788935700403238013611454228931141711"],["18235728244120440392217819467000864383186546860855671467438191238497331154104","2722459348574104226600608116280367613943617755591908091022835907292418192220"],["17795524022767720053711049946903488844363786079166203733721190585660685747948","25464145780174408683554040837947531058530590482156553534347040988531038584895"],["24583280319046890442443569993318366414618642042906531111851322416099762461781","3030419928448051082330407337956690339332811520801693439635146506709639491915"],["28868495295102380100804902586034307349736525313585103017709965042916559654719","17525171768832840372304572174149060517685492674709721110310916539993466015609"],["11303732685614575770754321950950251882996848034635329330336391247299055536655","6408886839790218187063676189996948715248606054661008622186777357151573482239"],["16862972786867215062718036687534344057910829309171378082199250081013067576236","17616011715997423356486218987256517552189755573282385730278276427036563558708"],["15551219955814506516838491130501323006619883739026204170666136943887921384954","2293306014316851395151687808611703083200880936841105358202424609481155301162"],["15097074611954847593762290190323532254433607448050105578822067201396439688818","20464237051046615763439584359711481178776434145116115495702456796034185043090"],["423866442466740941773826152395979356713171485485117447543793126164277385675","4127853240524608716091506898050567085813762939558499851147591532901468357118"],["22627794593762484977770124575762505495876003426057930754091799298166100473606","23467202922793497378053956054431516918025750019191523285392884379903988688805"],["20957014349046944954031024286341596911984162507482112434353283244964777468562","2775070907690471629075357152550803113698670766507540326778804872306330133976"],["26347483022581675879303200782474243529222516219500194324086567953502137537387","9492464463551105086313278008103853455279221775772637056968371463139305682046"],["17955117316130808092776444422150809555258407867475133961540498194503694492733","7949794948430676194983687556205470026746621349949008454656050330325436028030"],["24258915035653626000670742650377196703580728887066882266425258917447312635208","25435805708086434347761299956036653452577107901867976032036344286295298119166"],["921726379198532359390836559859474930358272894261509727435999295983267993801","15082126026283097025385929043290516595111976481326986109613405176947792745881"],["6622153991835011987892223222174462937230309087495449280408777680315831083811","1538294323543145331264952507536780444435625082657946501899328954968930030359"],["4105073654606510192298142240803889787342332911161390709971748641464137411483","27093057094008665307189021094691903303321659974801690814320072301297610727618"],["25262439592172385803792597460976690746894734218740590047170209712130085654589","20500544301774190391457615596867920034282393171898083011579335310497755972476"],["20770547919575586126504662022227534690811790189754419301259622893738398860951","15698707858761346996274862892467148524906933650517693294606588466343363598303"],["22928180557027140853225943858573284718674649734483627420715832401431755623897","8476022819169980188336940725565035944679866062980360997746614004095684093785"],["18019187220986363319268138775069892492253710356745162561009214237954102941564","6803281507812352004054137428865807275401720551097726888064474111776112535989"],["5058224599882435982883912633230158930405758466463502063347935575770229841178","17886758839811902501362291443966705013324088965868835439774869184053990710972"],["5526027331744573224892947637959498604212780024272525088144517258697244017466","23654778394234535728581660831214821184794346020820065639575278132665037308745"],["1436343112127572356708491278590843209919832519552515903431711740483379468471","16397984066856584306632202812033175491177107860553199772801043735803472240872"],["24370660268217888740160551508425021552492068192561605920798453649348853569997","20448163180024751222593882765276372429447733757938466611507054307598714791527"],["21002946710698522762682585204568131093487440382516338272630900234635985910885","18703493449609443755076616273061794265824871194649023751382715692522667315292"],["1823021471366830138485036336641442644252472665843410298370361820414406394649","28684037615789569412142081005356911427216766018550510517844989621086515527428"],["26828419945261735661817058796806044433418793675181350588385554157091945555895","22629096335898960113596218298617937305734216331206108061987800969624244606014"],["21728104624842452599844317807785335144742679153027968227505094824305861526401","18087233211258412360005314980912589435676761056255925179550862436904247880524"],["22289113679123079769963551678179045229150000395874922943464568923088331559588","20339992675529031403150345154630999670414101582162771906363163734886799264344"],["7411910991678492825773990721077029101139873684913500095928910927696494059763","17782336738579127217942777962667712169552564620065056924008374849811796826786"],["7316034191134723666672595158883309496680436276985976950198843795901409115780","22538163057408840651274227905291523255267021241012784399650588344768498296514"],["26403652743636778454615827512891322721042107202381749806693822796320537115645","2378528263534651841189004521740021856960151906832431360928169344514647144952"],["10390039025973057722923158538865919652684760271294010231862542750229997813932","6504636969873740463304933351333679921725910609345352532861558650660975345870"],["10291840199499997430451569635707378271461636236705709966642537805166809370417","2247950168562410415874092226325470312125702604746512868780193219786120945951"],["17096404697844622212864101254475732076071467718309262814373820115833170731566","24699155428667889595155693484651428588139098317796865575442601662788886606897"],["18143203781721860910310002519625545280735562029231455176465080249664836845931","5482561223795698266633725661655544497064018903846440716741067381217301892448"],["11582573669320692950567424391643248011324783206930750353698332640950614074328","22800445886536390613766996771188088411742868221803694970857580552475541361623"],["4254121074801763484263567362688205163024505703638769425472375641656479404735","28563390548671606264618065929473765828176769264072557853043061561768297598407"],["12558107394421383315869086825939888091264932197787011880210143276231137720592","15535849435298007944620469298629230192032132425966878113393099330609430507132"],["21669360841167043839113359728580135885621834239535866031752230643411504169811","2709426115430037529350961540205968978280916092196824351598793743815554284478"],["3475783744570009615952104343968633790365191190661101434827483487198210004665","17700274912621933690252335883681307541833577767501966114941426187506829235672"],["18660759180110789360029756257511246601642431730640305849853456329145243381193","1657354557661039985748403714738086382537546731881064776920183697129104624145"],["13441392996847812117300999138163499065469785124070473652447419965167440682293","28401494886551682189694999034146864666042529872476855666656191622401887755639"],["4817908755284957851102225209679986834091441118219757874866135208999442696538","3905852353814688896586042991660227663793379625427153230756186887987808001434"],["12850291129910318222149112052306281181596860007169868808157555812980526369847","26321666304555859189763639327002685641145228400034943135535625259658837502081"],["24493657919861800461971968106903114607709517984963035618410694385728937233721","9965674822184573687184212565174174582176659905076080088014660200947270969994"],["4905448623394060222255870188979816290898616873650045963522159331160746210176","22742237330297371267680032873585830022545497574381080400704208010446980440413"],["28195323674784184046531114063243955021473860454486445576249852647199771840392","17891470317971377596971486595016417340041533951472749700297232864760336635346"],["4743909333617412650521803906275439113475617906347892841984514459891289427712","15293417899013581139784504107250749822458860022996360432496734829510497392261"],["11998126373058934138030569617327366391068787085023337181951265536412865302669","24611171996867088727408714485148475659505825566810668426128478193076884290336"],["11989035984201353616006038656234576391742559591891252260363698102134439639578","28673884838365131984680240526098629453394200711398407692329487514898356750115"],["21146056843749457450650037108659493287676369387369513057604227712060065978687","5712658335195538093544098681535806485184959863783407822804157026932587220916"],["8649210540706815466141043975770533204955682399567583246446253576675520118194","21622097100126864452801269954188396702428366615889570265582605711257093423781"],["18737919415492019006690822956349111927327405855637119737358897162172113058844","16871089039145334638600344972864147792185742891204476394632141948250785218291"],["5397493268967292668848505601295524669480724771607569729858761993126486227919","23192508685570318657843894948953407105932289919073157358106563355093184301982"],["25541609179452393205818917644438631514409386042225498495788050568323323709255","22647130926257183263377733077488920008178154539821988286584119945971107887377"],["14039557871008531604175823999557324546928406820688233964779760025254410282530","12747285857076346725454861469322137618016578334538385987251812260177052470667"],["26982678799508308745485806015580276438221335933493924655126750534788347015161","3313792655346550428410779987449277038561432592450506819154625118438475371901"],["11767550875938147738963006575037494753265849398271407463025762127895306748314","21708308771590752546311822572999034842365866269670573541466129413501057650020"],["22399947909204609297836275833601632691956735351211156374924848066102249843444","513588127337924590060280678488639415507044319962469911557650452132430053969"],["16906114874609823352053941531880276808296713572492272819121510672549670615390","21057103982194778737333291851053283574975039813977105571058556472921956105458"],["21996625776766834724621248858596180321846239708413371472892660007603941737172","2975208301541534528970268770652538727273940901202577168162562211001820615321"],["22321046997932373585632588328201705740412359745628994421669219763909300103385","7723218767643327723502475224981213255866929374689593357256987277039502921906"],["1031824317931459929724316779312234171530688683900506866028266618614297912054","27338959788368892364192258677637993481507686778695567261573024229026583574346"],["6155394091494227500371423918636463933688720059014741273011220803517905090199","22190100751364845496604304206853763223426155280836829457187964527694763557832"],["12525289713123322900201195141123693680827670577830288595140260434795332781828","10696192717765987900303499827844401861600655125982268159415821838549087836395"],["27427194239064153018728357201184499978980174602462366833002936076367537980408","19699004389753530383654436286089184450088758279131314058448150569442947620977"],["9479662598372307273899009453470536010210789710069195622962815279900393667775","12463076103143508486268872517803508653582461543377090350495213766407280402164"],["4625110147728345081989005325609137446691734915204160467197296015289208838716","5212850796098582943463196371115459217986353493939853282778881001350502270363"],["665065220167265836268258095694658721449620366449909686342683337107369414218","13597645345683974935582527710538073558457323227692906977797309106244008522750"],["7316873475691921238985604363403950517821354701481918164350418184158018377442","4591889654186711890925756473489951818278295281576618991654397293143483749214"],["20543486413827210830521593151207486960284663807140123909677063050820683486754","28230086851376709290717147607527061186560135027191814761365774451280354164160"],["22370697954029828426319328496855970813197728639830537381861954451461476100343","23482104267919765420921817002471219449110695112296811598984533054199418794907"],["15583695974376198426176095107936756191102055031128649025480975572160428160425","21303935814099696305875543848286410860866518902473982176115282890369671562141"],["5571546662522942621418989360330520675394563893241733403060941972252183974958","26063966155875201718446429991640318269794777630244408595970933406646820985755"],["19548965018290304431509854187342034003483227840265791309919629943101803643918","26546283237530274486835763631332915373254143508916868477165668608366257156824"],["21944070660201136267242489368717406830740652198910741075953244684139537771385","12648443026129184248896418260971376706826301807098312964792466887853517765492"],["5303419518341534110475213465110431679778293347684465936390768425510760366970","7233545135824201118541037511678016312465617521327265014884778759235724703938"],["3710246105554629059450251474140124249609819673083533114636174637776191167663","11080036015167133500581664291027516900375711668242322943748843599613312401757"],["19704414964387627381267060616630653845622496981337009301779702186639121439204","15494195896417460341044623878342397362004072031471001452628512315022700734440"],["23605880275627614301519222220337678639678409820833051543123822149559708540669","2621723694675449987560704402508955832268257307935627520888054343108983959222"],["1866350265650190904849135098702508618672212609271840700107750790626193347140","11446250822791505022933708580091839325016173587610636984788340282719666272319"],["23118405357562274033013331658606957339254881271442556757879057768793358575440","191329865792896565641424365547257727725766257115783296785025796362711838810"],["5558088086311892157541432204006889460351435318224429285051884432647062143344","23373990808213503220217711811440823884720374951831097922264822210066636084412"],["27519252684230009324486362847502939266768200301450745940657214151743504735397","24816693772575467309601545055653692157802840670651810202544186751735184376577"],["21511330151900367233474791176515503146679438849254288188930917121425539876119","21417202612369636799435896455847388598756608588682070163594219428665117848585"],["15927747515308997879955393782918882614175851928909413621656419145850300127974","4934257309228397026789392757809869530820006636574767890167660478101251681185"],["20873276764737379748068403419696137173668093491871696011697833936726320214983","8383669049695748654982490269547128716658930949924558047927951476601340731142"],["18918189787853679636375539939853251079596110228624632424065197984024089653154","13595355943177889477302659851494012776480989827271573224228641001883257966819"],["27877814956043157264730285313415100738860863255782867333380709020309394863899","9796987930026281375623565385927886277517672276489432506083749433222257198980"],["20849398396799797276651679773280887144707142178917317211261128602064169622623","22187329872009002648101336592981233438690273232715986199154160996986808306167"],["10105919515610869454187491866897568878271291088568578478297715041086630778834","11063776626374179904784097626016189869976641298984070921419233851681540132793"],["5693000188667759236358946677924048668234042684862631726904515949904759351117","19792117065450464128923133604143495568171615211339355711427670085540271208667"],["4361661087680290461611297137620422246919826242283413607742969761063139149544","4328489421661048689465931558124451435806618473671760462797017567867282757481"],["1911787691790754766724739459051975351674938637414534179332794337946619904070","24826352934236125257174235053693201838654777868015406284979495986790846283006"],["18232584300663593794357421199464012090489466390447950756391046714094681505098","24113173610434225392679113887015396194466794605012255523492544870678216897473"],["22023729862349894604875589609146100093672156423253334250668020631958825443276","24561035512629838731203138382261433737679118453374106019087738500096021437774"],["2044882164632408683630431248572624367992483359703101365166975816473547510522","24521985603813629766644319802143535909523227019013124903915729010649593734375"],["12543565890230775945565983268339389245512385734302374831200397041588724416113","2402236440432042184614670304533589714695682362940742183967348546338414426036"],["12008156354893530805836955437647490218232504777340232449792518712541535777122","22062580017570486212526419428694256717780341428324382877411485812526059914596"],["25800448460189103098121382973638975906625640276943555682160516039017447933600","6008883387672085633415244225455689697374006290718552035818767099292474729869"],["14989414578320555712122488400604049820818031090924157174588578501712230291973","24456665550184550763814278219657482668653286920395596511692917235263177936537"],["25246440623042546108276935493195863962864259560009344331991952797603410998773","28067521921635383588776745120467628627123539662884213940713298832585865726449"],["2929034161537961508173498979941124602318044522629088109806730869339134999155","5677031132815145270710026793182193287344984777913995845194820704506360084957"],["23739410821828533743482119510927084294237376952895412130987796075041639169526","11211125429978050741399334799158090511414914583927464553990351522357711210550"],["17113759115051987991537592072464855935318954357409713092240225086346980954479","11931118452540570145252731907548164959199773186548063596231192080678935788028"],["26210013823009676730431078636553065140296250076011201822234576906597998374953","1912646486374929544957082782510878192168545136055485061040882421580121940003"],["17254826431434789005989370031221091108447077628896257427764758277288139927545","17463387441502842411663144951446361651423384923385831333882648153623281406519"],["20533347274420829456993493428130520533154130872351180823828974305816895468473","24906109535143939801017562492219637922820222465850548732149636137626284128150"],["16010951355309758329641525793209548832596645156439726808447435185295751012621","21675677167140586036078952255088374141370460256209863685271353168800665697543"],["989412609199808626662083071187841118005587835006507571921805335060529021511","1444590474212038877845050662360709697175692887964891156442841985052217367257"],["13984516354000158796025900884995466688766240457781815817977460344349446406220","28839328521829138545399876471585044226116249535843366912851543049168948135272"],["13443711873026010031445942269380953393234916200950914340611707922616387382180","23057997144298012383665089540789395168454515021640921390372024253872138039399"],["10962885173083042826428078424542655718270508733905661804461364815763585892302","14830313880035350523912387843691839257598737951478600388972839688006836558906"],["4390671821830684372775029446395418983557815186510268902774272973292515939273","18688747034459332271616794760004524052912772833353900872449678265974956767817"],["22051036305071902373854509554062826931034427088410638744441352033164326459798","25066844561098707117295413143847818568658241414114334528649197798498897298391"],["11540872515804958255703468367823593798885751135601251771355854873507900962772","4797114003542186497980527198461775455777428053851772452119886759587246234702"],["17445600288992010022013816273405031351171472815733617791937814073667562579113","19298583236060417862911272715135175814460278508958401119659147799615465362274"],["25904338300930422180213993317919253706427511880743166140237264273752673292131","11049517985587983877712450768133864183491120848032328453675946924983891867048"],["6683115001580750751117885423497913588216997329338899525332248117331316735604","13749825089664928372935701334914817536662404273509782884102008512424511183862"],["12848489856758476770232003709136250122069165652432809711557519164385499546532","16197977237225524620672363018142462576104765466271230156511632730592943630751"],["14869465091021810817615189903478980579576740257227862348695555300152247211765","15577542230322280051816267763363051028762474570292112917793049805643996849683"],["19680965538342798718798678664188844503545678837570642295278804283632256683845","2945459335561999853494878009731687086988647554154581964362616109126453288621"],["15493633465554262630485847403530839213296439708969791256746329378612018795555","7401981498573983384010169954688078476535959246203510122826249189695240286967"],["21343440874112366162612758194744453482525388959950002281105889491018492312631","9889873236003788919450174688707882047300869794603242120749837804758929755407"],["19112898514386033087361382975664128098904465672069034898999357099606012520607","2623508575331642148734601230725771099707179677848253428826650474994792986822"],["26843459056367084237982914164920479270190176794054744819414593650408809814901","12548716347922361299716285226596503190695020315699173223567667868333593742792"],["22697665006118296450610026818788469606441415737855797711252470372741921346306","15659526496374956379127135053998087297761082702537041598536481553690410002507"],["8432818024298738892825594464902204750728191898635292168050024170865737304673","25376668936443012619818750346127830815214384683483748648469300504531925658389"],["22611812574718910328821245046434178588437133632219953111205592930013725909357","6212603107106555337916674401747349185470759573418137376326239967179416492098"],["15203947634262683640215880254098263011638518583603317455589521108076693225267","16782217256523375857510098702194041510654713767345423324973990321568505158900"],["4790435154160338450203655651213920914864159506845941891038262533360336312598","10927957005695686160010953089968041462316271234824029227164390688205590029722"],["27990380872696815865746502827828550794153458712841261822247362612919098887329","10292477733958955868449764857681371017359418390106079786599507512115397252688"],["5338591149862434213816484779632794832477868421199128812821849919454448129393","14316319407618756372892960063782850556484595548099352607834804954878766665333"],["24168627708870148617948520511066535561413507791198000468055106765641197975798","27603838525853780119577094698946585081888793371670424147780503179282943633091"],["5239181552682226232571346668292121810470852379125930731539452514916429116407","9457791126856464136679204398529559830264413496051069655650567627692513663765"],["9313977407814935537123418313647846392173032742948490050739077270061352528832","25023245420144157718026627373101388170901854332174606978677825086245219090717"],["10677597393499111712205390216760504001897643720031523823487939197111616459084","3570399022292492081974430820003880647013446656483004082052933350961841183351"],["7259804523339983283805251993916692455543386475544759650404214900810570075394","28132309462909996254859589272338851362132766121854518508740312797419017894249"],["25269368162675269796702684030798357287837447496480609780401407864381855237040","24299373521120404553334904736599181149257301583866537675599019361150426855753"],["16211156782062230002211775103791002430662173824340703093640591334390508819796","978480267977224306278468645350582500608422316266905190018034442171417040106"],["16170508313524288846638620785568206240772719002470840608992728707498682605366","11536424119146378783888278038046187761305630281227282391850341686204236102362"],["13447645226715138419167247532013965951244595674853955884832989874316387879539","9405428020034460643222620139050656193023025549693945684842281636572124933793"],["1837196738306088075556320203120337841483173062333442107391219669420089241439","10488917083394341329539713497954116705807002875552601509894566654454576988880"],["16663126860473416320725635656486919552091530966564651709346627224091775353177","10527139313370542024217398253432212528994551952622855844977503383403623006447"],["26335773099135623201441249102372159093307836722752517862061205256397035159675","16968667795878157301687025653565812921101068072654413708086557958293496563814"],["764084908275805488067650469024984390505715840181124299828129429915824977258","1399224062261343844915518129107147137512530576595582513494992489054998368555"],["18638761412054385776155374681754622205564143580127687319951337217562753896954","9916785834034312848722227544376109921440819868349408766376189978899895216692"],["25086969776845560610253402549003162656591105628504519437821459174763316965381","9008150126099303329243119401420074173821423050181718238601988550967393252665"],["13006068501619751898713287458627747573172325845990677433659634045579624303200","13788784850515418043875962346051210706687586690407728063448372552455765628240"],["11619547381686924631639349364981390311592195866900577963870034698214911680315","13435017167336770641323999113209753741570578412940856646472627615848863385819"],["28053316535212356619086383878844482371305078121232957252809871586752377010697","20968509058053848026360909035043291201796819492226538621577911476806779637035"],["25102024010896902377207171682291065549270192313640705779970685787806326658804","16222026510631185101854972624716946236000506747586961361455918766588326690085"],["17745419167883845239067289068098921426133489979603601735347354041492875788062","10276542751362219358338522806946656032799836599671032896152497471087610115819"],["21875958775750750781491766595986826607267795456838637746170527157280572006433","24685158771207532264716452971984984228599394625416154140391287170196453662870"],["5639298806763464811770021827799300067711442279225030757856095796786453671088","3329647864468385861988480742076445107094599900528679781190347143041236746223"],["3670957527282390972771445577245440369063024977630577900635842095164061129160","27299889105548299905682822824275486134673465417176097584839334309225364080423"],["637587658087667415043372342662883489597523449814299610245079967525505325425","12483272785559935445811527435161138696084384175197062055655968347875847807798"],["15134767647935922932858950466722013286804105774453765419375584815687790633966","21412772239065282084752001392875853453987324558127605383147210452642837474575"],["5144987791374217235300411792093179121480301759490432216934439605606183319937","5252751747926155281330209806840768798976962016701326709919854156858499478542"],["2750352946725574944542500826474266158904485853655510825713080811630091035308","10767390528942881751934522773180073850924496496565527823108622220921535501211"],["3205771394516932234538261853676861740396012392850117567058798015195902760040","21146148935718210276961518681346495772977052096184318417262936775160000564886"],["18844044909152767017463931523680605444776899005725086289992449910272690685813","25150465704036237798472607447196966170053917342083071747103986978071089946834"],["16585793910228218173261797758775436623536725476264065945940670001025755827116","6762864845780150270100889709321561892963332634251195726697076648819835985631"],["4044537706937154266097495496037374797186948725552243994288887533222346051604","10603102446252640482563120882050692416805158943209492969280569540220128239456"],["13352046440465923399240108441664633437196843801970935498272887456802024117954","2400685906661155382311262269764309489635047016909376465840148199221958536059"],["14011178348672046890725335708418989806171302534936453317483321942614224073340","16142393300572752062996989574730212073167465252224823373536973495222238885179"],["24442210723829533765757623518519728178436727245146691602667041747344821037937","6872665193248030758582373405810690787078859573748109058552566877492340363600"],["16109756806736407685084468145136051655980210304760749252331593299309662426525","16277305170030281478735583174181636890280582981289309450870156772666019579398"],["12764603359102034286978773122259780713032098747534650864799910216513449871447","10422241596502712212680057355617230588409459821917839899596152070584098643697"],["9309056530091066276663505805447596701659706932349862168148585759814893427854","1803221674596287485412769003391482827475943018212559964117132412717533829588"],["24875119703039564438609042340658584926023141629081085519341543785048611346182","16862780170200726523117408883178455892584236001291707378845340637872916472710"],["1819714212328933936158520338385514402094814116443512148646907364430741541087","27298569538270418433237174043251229012923801567580085296663526209816795024606"],["8529504564625026968782095350671734182240729771213348139811044112369621786334","17001127778220583452031277412666882960732900683220840158191434054902387244730"],["3459615588989992994356779244630878246738412047053597565857644106117697980857","2747381235608342125050308492770884635299509713792176266682451742783315807736"],["23628126117893083672782443581537011356969686270418497890406409579688645025305","91438278861607575424496325015085689359932960410258189132512087613921028928"],["18511732041583820628385350314812864357330529730013061678201194058481793009388","22448409205062544426510226743621503021964942905764964006408021893131374504750"],["8768914716121050377310577141049231422988872495554177063761231742717278727969","14096823833913591177958639010533065168923740737340247727267702147248692179596"],["17217572527165706911893352573344767572943214496668298740588876078584948625351","808207252914582590357401764634077710459376011909362382599623449948895112178"],["6244515863638215220008350664197339861430488130720822533447303401720233736407","12457247320806732086525781680366999697093946028169787259112981698993932537769"],["13546771930780413274788154804817949247928754486412182918285298911080072522681","25962287606130950805279124511341068621047976134948769585574208839601096303081"],["13103387310902452227662411624422812657034711324931735850831040625916101373276","932791952789531438083889352760671167211226456237889291047908579590847452943"],["6680989771472773356082494311856858731787149977555479975354481892968466673818","16254844402536364132113718979895571830457601373622836899181310672316675716677"],["22527011260488006788019338421761436002597785580476740285165278865094102466498","22706063617352818348417352281295561013574933563425620394997331780739754466465"],["18921448859490294579069044406195263593511662571705306471695083231253363357627","3454816640441009180872272500831520430567430473904224741604901264629218954722"],["21205257080601203557983093050315777048218657533389703047571037614259014591430","8326679190107158270322583105341666215369789292823925830011051842239214371116"],["27139040527088236357225422392117337267153319120524290953217076645485063360063","3070828654819958706889164815660777853450270878353356026568145003768439080826"],["14435516085023652423219963526258588538505760337000512707083924297841347947495","27762857100702753606599575346972251157108422134635434264020439664705945577047"],["14825409718415558199108034046950094412899234862489986428072556549019555390310","14622204383462676279909583743692138870327841343051844416251173714142264508504"],["4890005266196948865748790543730708861392390475513937911962234496275649274197","2767252571118683481709988014380413437046629876064345806553021326032355996859"],["18109812333536412679335594703486121972423471620780039237022288254883163225990","24816461827824090795896439463551492410254038265858895567629769543258740871264"],["5939682300196935447068529540420660949228579181077064363829463971221739101786","22297160579609153305202822953062266946971985061415278296574547630237293119750"],["24146168563373958179934948864135285693934646118269168522120496796094272155161","25634325154105521381831931135836310641477427410487413994835429830201407298958"],["16365741261122125780846754732980511658543285235187960401701124039577030393143","25001875086334491908905267299207110328925433503875862085704882142350858264623"],["20402386898340662544773884543325592324425894941297967054341522878836790251508","15829851380709190847276410246486690205862041698844657852218435319253130471488"],["6088453628086389707390970043865112026803228955648463700981184808027965272522","6760311348956120836043358648030935337574679206492112495906212089217984580513"],["14026992378307237085962291135816697868569349697711360296339156180962076748569","7499689916421242870893462106141860313564313282014325336835309791549262373052"],["5426123364100558295378351014581234862517953182696732536673428899662243143403","19262398221974858126471841599716495426620229309911222423452961427542446850298"],["18538325346660878688623120873034233524313209851686866128705230366468023247633","28694130903927356574249527812772175790446973544410164582191112902525751027310"],["25948767481599626673894189251185642514496486184514764833674184840218576639354","21474087266884389883417541764998135461014670359104264591523015820293036246497"],["15315811839639657518474846467381314781033160023472158871778737303414094657887","9147070932338044603895683901947257421262944575536533609228028500333435602164"],["7608780200181235676414519663647820742525861484402341880236690729963674288888","17648845115068370140428809972353242988219135005707441055456876533730446504464"],["20913117953116174900455010239386013860347003994444966853211640102589341324406","18691221353058198791024616672153327160511637118648298965041674146483855177441"],["3273047039563710287201996338275218364519210797998545400449096954210366441515","26106333979287085384257267972922469391466786395099504783796865338743993323829"],["15203543055652418400209826733742143857502415469097078689006028531772636951514","17215722307201462396562644875859330987436646252248143237436172704931727239850"],["7315799079396645366562817816868945393676898863341808510637051852579570135445","6050214209377840654602030603412979599652741679190352013714264843853391419767"],["7395135301102852021724932147193993001804978959926907756760193534552000376802","11275624251380978696427948997379343768867060619165980642192788966038145964310"],["25937569701970960117533998309588929574742799638913925637492758650093010583009","4880483725650126368601564872197731690859662414654484942596725369742787985831"],["2232076344349191643501102150461052217209441258450037089918038940982814615299","20180642010933471308014494751385958838206810715098779644067526597619397975118"],["2964094039323229871858639436217958420050341261255977234798664941444776552104","28371217939519931845711851695207642114658828125988165861967917688065632450981"],["27992501771656039274050381922176065516872617280986481121469374634937176003877","7976230814544364643337975740002111487995482312793598989532045845930735429507"],["9365258523931234205014831664219252341095591498615025381185308567099449757244","26458014719646531656621035040653617120310715030983488426894140224764206685404"],["3563464982226974812566124340951847299780499632429973111460304634959370330807","27716696502130456522436593466257195492205541479563323746017869980098414532369"],["22956516974783970471300933997226396880191990538182706706110474202108245443054","8511021398945890625106137374406345511769726588349094471614520920703508753826"],["14721962704162002688848981980378561730731917261602923599088094431635992409128","167851713688887348587986497215085013078956228807070010673514102058950439630"],["14468287642079771588756849122360871513100810772669314527911157044881272913143","6850831344523952250230862284471068255736988455441114464580499654997758332372"],["14121997476839054656172918019005828806110157437367487351871782790216212953413","10793080069805157897251301787131656925963152158197005806497957898687669740585"],["1999242849786198140725206685284119949882142899475178531290823430144536996568","5997112732919114771627206163434289861617561462890960584572835790196452059180"],["5931705146192478351269120624314831060888526087765286343131931817960923206869","1151184870752910796970913739089083189232440595469740381979847252795683774959"],["22048781642265029852199283447279735801640265052197446700640458085093564168136","27937895777522459051385967944459440279258438533127040763995198717359499286592"],["3785370311274753439794704338964123113308520259681551568299945028451095478364","9103207249605905508232451622609364237098844318872831840988631656032635412272"],["27357454200382281738887693738648227106433966848347822955912829324467710349835","24730815398043888327090442372699320904490560480753457960262943989608908558006"],["25061213397916769951419147876861520492075173210256866889206363252024466758913","18148513760439806482913552389257267905296509592944854695712824174766785761703"],["9572478170723384610008281659399363885623205260229335143389781443665810142129","14500672370431827638297555393755188316284878630197174281416570147220612750638"],["10538658286698978257710105363387214847245879490819622459405497269191036408644","16202206329563900357035332395325795834321693855070418054237334413927893391638"],["10946258034915847990098223023516196653024979100321186654068378250799985767689","25751781969750714963407030896144844166232229759889820847442138966715188099292"],["7705532830614298566933031968128856539379362647211227245738052915476205902972","26580339104132476530561219701939543366838378077764679649224722786123324738449"],["22171016950028794493685758492558901903978384526710415434954018931730434463508","11148669029438327693084838923935031769348816146791274207698664591131065715671"],["4610164308689711859504103917933679241422268562856699065611602140538643005672","25009970766443060984683865813848351310233470001781079078503480027259365869712"],["23966870758695781583772308515731912766858774534761440247206960292619420020881","15259064433902909573264846780640694655346596813563403193044626797251298811351"],["7047986573626690015748408481698441653088942594588742398114897119003221145734","8759553235525650147440619477415559508819180660975706161688595483278252182378"],["6743532503110393196133186075739937199412186373822074009526306127020386334060","20085022425955163465561898187756964954773429760282657408769729306814775100949"],["2610329936517073951500624448492344342145261940392399836517574159748569927015","17430410103273002050611521307696808535947658945052953738292700373750427841594"],["21789163234018733750838817490560459319792468545194292224246439205032817123491","15694888098708730933044153181724822970891700534483102049667931308155629450145"],["22263936802035668650359030098333749417996454369634129850845249600963170793034","6193891050618669003188122204646344071695292896575947719918679573816486367968"],["24011801026899622952054870930457469623505214683361371009745369679686382964088","1169527921636275860137439131117892447133382462441887276690002119541236191269"],["25288901968137650353749267019484598564087098845584881656122280770047656178330","18785479369484197921017430973762647499354384465570554594557260353946192019846"],["14785167218691038941907568314054054432550973389251963481495203721967005547760","28443648407438172745165025697034504885304391706516021655845169430785050266453"],["25462489720219624801310632867566502062799168462571327182062799932370647547927","3748367970959449811700447390186046017195578201413006730321067636213961188489"],["28322027202987103023456076429564003543015258203275927412631801542276318355376","19433300621684882577710724239319888945682518431026261440128390435013856712509"],["6909551800373330030307408016154157102672110586870444196069295009971273815810","6467510064834757765824536560980073530366149753125911583903852803753154271605"],["16268513316265315936568063621321703059348142252300042409445757659656338126195","8906372977556234202491667984874962374720942060435718416140820642890433055940"],["10041047965133026836588476795620308901534511143783586811649208542306339298273","11894111555660449475577072851183953325849588609807738862665290079527294862205"],["7796826280858064691141089714357847353571340887530588135641755349229664016042","14104815988170950198473404695568618385567208231538536045207898423379907239277"],["27776634088397357688873034509121383312719839803285778692734715900680552146328","2428264062197053716542967923076116823962631186324571091711800933497727431013"],["11359339026043334533148288952556637837009241745039754801935943385552824308011","17856204689239106931572593884416218471460109873938404457688792254049256630321"],["4930527517158699161852897582605659268345251262616407762932137204924159606840","17481348946495543060940428873194779495607517454604739205556150952816441703403"],["24318855778867537942928400117021344455659817002688938336339228622213061231654","23026367114238078972203310615089480571940937260838327288338556719173502628177"],["9731935540933766407004735993345455725086233623556422521873374370638847682098","26604346025432935168345664701366419840614232470804475822751804363347422696868"],["14415019682942997334877139506842909458427256065339714765254471631134197942177","7025005484945013707231399199429360799407250927550149985327940573562250867897"],["3957219478224801201401757293941164299773550019187727829079779434647053316061","19887242544376437488501362835153590860168081406394604406847678959401453433795"],["13672760420408068349932294151940618549084765409094516370322835659060772535954","20666955563135600409440246260117186812067450282211289814263241329695489970494"],["24686302181174489409365928800437191464159425006797228206188374615637953926922","14759918773869926982214936012197354315892181261730426233196941849492036546568"],["23146158469838252259069024670271049600567930296324549947699525719679210341585","16489724011323833975028504627370608359386883681021440422004650561193908414017"],["26231617948953167720885002433145077261291439563506946504765365445823622676571","9533853646024660596077945061389647284374663654712076267207777911216340067676"],["13796568215965150157663743277924639958569068574014455050236018137642420209365","4125855363794907879517425119252873181930234786837443188233559035953237983242"],["8336420659334643796247899862811581274198741518404123943858581882688518099349","12460071129537603376920456859902835463114032729301992263259953900473703057451"],["9061957442799903795497034875081325357774991846540885834512540035703335490294","4099900453413236548894845840491907446021699608812397081190443373233921139737"],["4335792452479856515671068411357540074541676820303845265605626152787705130158","19027992626558507325371748484042153196691833560675704262151701413353561171552"],["3205368712169569264452365638313190735594972291527445482221476555803144623011","9349933196273817870515803487052502304793568435338315565677353593575127237716"],["6887375399791373148684826966035909228665282685312895240106694614844238273124","5144562825964748882711065100626582397740405305107472786790117800314025359419"],["23267892008879040897518882144727274145066386324011394481405494443379921620750","5209211559845172486419471601985552778709861932554648064345832364278739698956"],["24723188112932606956430915133702816373269724515475635246967816962743233440605","13171956972027431420608694686077446402147561133200744427558894231043578508112"],["7153451401788629781968788016680586374726060132765833375441980828053998981762","8683513236506039204939383882635555572998141129177321809498898500979672146127"],["8326555365031317690190784039833645871843530789273171173705067575735219736481","3879148138572106825341913428761183466275578083101943238360981520395233995050"],["12302128942259551576308353697159019296543581414904643338100449892622312479946","22294889102109592184023682549364260692305565538908450101313504327949428054178"],["25040320951787208009285256633450224233479156397082003690230283257290096347272","2922887654013312614045214266890692178239114098093042323018298891409656540364"],["8071702175982012608286628799789296869956561656223405973044374851846521930815","3327927081324169744350974967523041151680494105009185573044967893899845359610"],["13639504252547663954131090643338507361049889404678238846963445159283670919747","2646029570097241266757701226619729410952438939506229799982123350412399093370"],["7810787329866457522829539343284502650331336734084988645765675668567788918670","3603700425807187315841733737882074509941663124289389008535380616489047837836"],["14330672569608226890840923592014561970224333017731343334227247792728384563171","20370163357916673410643202128475480131417503222470938548902147589342222750417"],["12659882705671694622642982831086335387016453507490597583087741796052053406490","13183216682654076256664087556196718255960306481425750485540956777505305668215"],["25849658734309456305701418323717249189397623888524922523095177826147332961728","20018279965691171154625501311464413204064135576822828905854476581890336643042"],["13215343434124904681823278154029999684465646998536141216877695523636268423461","13132541632490504255111522584595922256249994251448822488490709663839519184284"],["14129892986501369349504814003683254309066758281091954059924685189366445325301","11295336174858617262087819533282609703321612417295723995972968669220569497984"],["26425538503374390901816174047097552948888900038079552285817989714838564969190","15551277388452401347994309928748818977768498491478785674150097992654110494527"],["11073814454133496077910961301337658677583021162185092630992585299352579598542","9407414924220806394803205085802365934409946952038140985923412545355921572666"],["18543307212633191885997327360536760368039150298480721241836851804756385400263","23944494952191260802821987075320250960225796816541538161136224533720762975870"],["26404872644936470078226429711032658280476394993673909915714669777494189438785","2937493624399926199965486332404164436968499343575170964184126103681334481944"],["16668747150937001983878806549550396411601091725351603191508441995665194391825","20119299078224981356727946557242005046036023825920369486139317270226997328587"],["17355086450489859943842717036332519646494582144979033758208388807173639752406","6173139358643543928413989193118647386501745486681313332310921054391519150875"],["27029263512756387779859581136535278881806729177442712960647228043057731046472","3878624051485901503456721797281771959618066182466453298451531001874185198238"],["16828944791941846694347171860151173933777012413427807818128139702712168861639","7700540035689470870440989538941509548933416900707503903344395979770612360356"],["18169415824524873744308725028088466758654773398806294675016025736438443803291","18357731027627466395123579666712638682330977161538261248492036064171513508475"],["22620068950227172614053386452222283820369075421578116812548989645152359198042","4952587706227954945423947103474540885352781702487260153738075575695733265390"],["270543650890963976998736712086565130728036155928720990116054511533343674333","2438223753092035868933458390139164387460867608640709234396588525982127384630"],["7708998449899882887019279878613602019908742343615375995478108190181909374236","22972289686132120513987882750434678670553550344395858662835484030323659872811"],["26674999400005011738576056888337162950087763694347257970457940953664556306667","19540161981894973602052745572026346743472762929852025803726666166338082182999"],["10334311063704033149800651618201505882909460720501585666344284903672774201579","7626265990675988095433716884351146442800141460747772960587356066970111348035"],["16494526707690496394600241180647019226864887084283185982420592069767957087555","20719787868625830087484260502197288093981297708326161617892241564412869016989"],["24036969656591076991973544026248358532630117146593627975229983046044236816685","16912593524286507625519130442986356077729579729272905628767165463541717888363"],["16955218290324872859385974225022910028123363121420152873002141992381643549461","13209802992576688211886200570864987239886451012214587589826287811718606009853"],["8388020867253505469741426873396345912644410210372366641237182620136293536078","21996528348958982678777571513822632708527440954301238792633027514716537676198"],["21939270773708890457891135816431246705531048275394449592907112110214341181092","18155088917192668693748374857220301656433824453293851999228326752453863571304"],["2827130904373344756792876447694329910137919272510340302423933081885042800380","4766115975211592960233584230585800431081058515316720579920846312562835711996"],["24548654748750754499655749219886827319445083066853402178998363802285641282926","3257066854046067369002119580267262616595389107998329556543669191211818610605"],["22281495152666347381312914268611723725579572734126637485280997660936140847058","9045019451146553830295024836759018758153079965589925655064403024423045279004"],["2773819214453972673797465438171769566443384731679073259273808064091760690890","26275074062770532445947858825348426357838253763300474426914003753502310733907"],["17749888776975415882751146699283053193723845099993249188381941367515702857472","3558602713266398256315152764672200607412791831131419697604949056305070853796"],["12601667192605982915294882686372974988934211413409776641636297311232229985476","7303310032237598040391675567871252081841784065930809150886710062125828257386"],["17735066695063575691441056465228608231456061473367501775984121225651156877496","20368775628593753752437267665219094664271381348503769062650695097782832617435"],["379410555471423573518365449848938122679377847882019989574699212530618810575","26325111407187212477220702575771078395161215049545089037220700867365150154054"],["26668420240903913921801508764935933625928725570142426300248238217589098316650","17060536807200769196137974492393623063155634279987840324049371644456351932461"],["21547860472714098700384120459312192310691328744616348341076986399996924142954","9504081164898053878616697480251463692036667920359430114344952297518727492993"],["22294609041870447580830649523633048144470736531859419295864035595255428925027","17041675750817557810309347162752519515294295853537973795158535642132414123477"],["8513508626729203725391558160518828273811119388377745356353627960443795265793","24952742975585350484616854069054103670047832623666135124554465873405275798674"],["14448104290689651355633584731040937191649854606268448015821613135234130072417","2991823482394629829082657070199764105432529991360961975887680440537425889715"],["12522354782320690056532257081558695374015791326013576371617538872857524995781","10913326740309968862933115383518086534300165197180568076503531577387932879707"],["5765826786914394152423465105550384844903009720956465814126151935306893193611","12881714315979658435589034583439575192786579070897894733378673558331874239618"],["20450354291768120837400000565272932255451967293832045597918697459182254677552","14067613201228006716750460437931430947972791850079049086001967049699668703122"],["5483602397269968929665151234238923284636421609422307600607164115830894174531","23007038064352087166897256897482736977016898631708559074802173582834876034076"],["5967241143761850514851660920058456116183132169110192178110266262926114115691","17243027994582662839328960966040318174610043114748318236188349129344043555962"],["5047471907470949148587101295726499006277615444582601195082773869243391530317","25433829459517720960107000473623002001026279418451414633369974338455682284702"],["10446160306934196727726432227854559827490208571263391198318866394675823234240","16350287140199802295435940682571286043933764928602567946918409786719659465173"],["11556968781287135343098063482745622668284844017029634065668846737047402470316","7030203861386860721401460036681123897842472681677410415831150967224306216031"],["22536881127167415548179594676477597881764845490437225910241951451861376641658","21287752741058366123253586419788108670968279040007576030323555806129532307537"],["431259953696116756741428325573906101014691941457745680701205914429901216446","15995897614403086621415846078794381887979725978312710126836461023715262519205"],["10807344495352027423525490389880772962412548639354576712987740659656003862821","2325654968879028843429315679917556077213286811368336659851335522660830173902"],["6440306448265821838852092958271734624772040310010363064567774137942567559449","10104071198905563327345449024564281857231077458351938317048979996556232720677"],["21602223496778415861172794324826183473845567103320406737025862712124694047895","15403223834483181110732996873106685035378321554624425809433854861589324535021"],["15276661264448731218924146786213790629409102158061699070672481526629549306499","18246355255620532018486078918875710779971646496450193442067281031408195376582"],["216176977186252665586803721125542331220081237565033455618206211438746373830","1481789095723262900357652451139055754136759433559000520565860700517568240360"],["26220865456740154870267462717834175295819012322352158396413566409993154635482","17611509731820942488543885907717097091086436735398932754844934175915146298783"],["1150001120885311626005194297952308841461203994744446755984677381908427540531","22158653723507250285053421264941759987561935033439457528602701761632441806034"],["6446577714223853066931438797237533100785561968525482563749542670852195261886","6330203921408474930968882137655708002867965875333402044698163907492614921276"],["25281293816077087751982652706781449125099460022997923526681755749606023616138","24173072931985366716113279090384704035260083650538655182542556318227983611115"],["28282960807148989637439427304515538513435052166546236701726481661436629738680","8973677287540320222997487657960176630093839161416220358635343261098345850421"],["8781650096176230954437707014220456533219473078713605150652239216007809135455","26098844179476189851500908983886248628703403561926959485856500018425266361456"],["4769169903814924291972808767134693053507534129938817636883432811208012056019","10467721417539047494728218940103819505204501429359125431394415823970858177738"],["17197871985290173085113861394756298314810416471413048928975790070445579313529","28704509268651080769004087095045946206281126411864865470265987680141984189354"],["26239010918969472260612127813808143900397512538127038581689381764082855298752","12194941367684054648368843645600661613584915916350934249459526734083136323446"],["22547170938232550439584989128350671015147233091871049544753589318438862612145","5079997041579148949402200980762736786169100362369356058295096280347383053866"],["9492651962460201698849060380430977168405909801751523730343118078992957785943","7267614598523803668338383809305636051955519996770137013891234203033586055325"],["11327398575701051056760469750336129027556983614975462687142126496144578300452","20729780738566607227434748868572779151934076952419573205787974659509355578006"],["904753226324323181302007839198264902552467413033525251547704373410854907178","10397880355273993066256096760877743092774915590544916431947989445837139787214"],["16290910662791181274582642884730187343407964062795257582859612184785002802243","22552494545408241774366501175052214236889711797104417393501640228997084474303"],["24553673706425314143638911228092631280690708618964024356977850165140323189182","5383684811521126250563239106333714854429786169706619331492117295883543101021"],["4255919094332235040395839248853556163674255235752900186660510776195670701994","11923419228681789580405880213386456269675682540701980935074045501993802098489"],["9093087118393216558207001362157851479283559293527926587128781789068663079788","18637897451531476460966506899776506112793452144272672684600169290789716106660"],["1833333183049437937297264002247674707045431468939755913344229599608565271416","1938581138159160336254066505006559617885724771777958128332677243526250799572"],["17663285786139862594399620646531738582797857229367610448773863611280681824684","5112912196592840788968672911170898066648514683424404938530055362333686211244"],["3162705632417617295017983403521950729244581849702922954884048689985169522801","5539838579411629634770055337804810557775231356707764247058534321208153915527"],["17200964924872434002520897036227989704546785785336837829614662145533520573757","25400605670709595951887784628818748816348722980255027841439227419308179429025"],["7085990981600672372314209634361523590484276271910040242816835672200267986580","24381744549514052054749329378355202882607892373224323530328269886244346076412"],["9130197379803190854136831490102100373876583678174531488869602243734973116400","14524185293154995669727809766498229435976494577787261116087522221581965638042"],["23348057553452479355036892436748644161316182539554661884385033865352041287345","15327845322834095430746359054195723999915315288857644037462135819608773125798"],["28372186178823264695055254644183238728174611788394424645831246927392103266313","17510604450892981362037056175117193661459320357613698362031339144275585388842"],["8817701504543211431336981207257240690489158456316797739124511987471634872656","6456671294511135929701017201710877487309510506684612822169642262463370775305"],["6227312683710948351016646824166464093055170528830911642826776248181494239982","14835478596395243099649080856077776342962884559506309601730273233345194162834"],["3763310777091318988774136176756492448300415628098603550274696935209157514392","26948265186549110589044193692853041770933679708435505457038173996471912465413"],["10393123468103319572227387562076117838108579342066627412437893085640428499998","26569298447041892642780585594990174650214372753292532293447417386945230973404"],["7285141053345000277746778464746420265831405167881847686669761169402275156071","20583513101101261095832809562545931292523817242297145376156347608172561146551"],["6702824536472111960384128813616939178778682760289738802012584146645322781341","10337297826726748038886632406682581673612180998795111942275839502868700977245"],["2265584151557811513518581202328473243777120346536244865660269609261605786841","9646605579926345614086493416309917346666060927456433058708419229517521964918"],["22886143890106972334370892216443491166005271677267940119912497108610309081295","20522417318158651844306768650741458233615730535656637237904839608864654980167"],["17132199169883814781781065627988887205487934733781683533503103719335847276149","28519672393353361156610286555347244375084210979604396795394119146863011889046"],["1655595762832279501422424929543272514669144188144816592158311391472015275706","7773212307048221556333150161118757418505979396841342446497347914536730963977"],["28002736582402751208585012880081800703858328697845705444069914441489175788310","492405321348053521152716060302391074272219779240274017591211934270622583244"],["5897557925072336085638779350369097450568102750409320011244086567360713395235","11496330272688907929358034911300918396578287708335932902767406485136843538455"],["19703354506824093173491825614747303425371900596419574078397932813077462837807","10701011764209754471537590859128192433122364760389835343028378539772171565395"],["22340610606740724292309192301250273784853534642131967215083209012668765371398","6815562886576870294671092367185116485988433588989104299119234380735719302534"],["1451601722526383831962020206336413088895715630912794909689272688066987565757","5070419134340902470902929172295813600652285234590141684758631225428085019113"],["21688804509973587731813521993832510683527838269755980162248950965923234791905","5101516104184855933093051450807708341482483369929955173691701090714445092319"],["13687728742402408901341459014208577662279960179466719117951147929037558018253","10168342092808701216941423969164742814854722862841654958331911022095015228703"],["371876297311530098467205104302438517309099480983489645017194112155327004515","22460193311221419352159693162121907623704499669793665550506429145229560563549"],["14434243250029193516669223911591501608461037989296547257888125447372802793521","8531378955330903126930687851578862578329535076924421943343880338190984962390"],["7818416100180433911702862671293042154499205388982636986442352924913689842157","14338070967932961495603518734656128998720432068067557791450798207340819832619"],["22611332856894363651576211080976045030728527938257880961315757518040779122019","11640971765434936151219416961624705950008063720968021969281438533792713367144"],["9309320043283806674875618260744270808643196272105211341088721954289305084954","10610686790149819087302373137136715735912374472649065811482475530264512203254"],["9421169935365067317256194785067671748228009040213323523953897627589511706948","10974043541194977857766847819865749304994826610461441341335476657545283821758"],["19566189179368611581971803806594037701780811931732498941431086382144384701427","13635750032377602579587131346509634619477137821197725324195694456418555585819"],["11632801644599618154579992636126320110673691452605842434950294867585946529531","4295489618258050810739884807878864314539013550248866011600228829171683217845"],["8233519966179618991311650647412551194593896363368145992903866900389420117857","25505384673748188805765860981980817013326909739653602199339798819564139207517"],["23596921692945050162330224272299970908365862988302472043347463703273361050568","606208948662873896557102238739871219118406009084780452963756913773249888096"],["13501204098418624393276500931206871130120764066985856799547542983581801102599","2845363786044398421972379760138230441515009710527972441093039040963689314788"],["2295708852037134133835863894851743981211896432055823367677006486666989377725","17230483376807969339970928284713216244866406695405863681218168737155970700455"],["26481097225671494368752937068106781802197221080879013545272059346178717049765","23270115435557306850618928407730439702317117120207170894571792100638554971219"],["22868006171693960536990262040055446127732013451689335496173731132380792413976","20783082551737516700084327788669694128443187029526903344945404003143854498580"],["12269653287290681325360788097922654314232526704667348627322894490345478552124","5363010491465645644874843741865131115329624612205720229506132512375047037085"],["15833015104999493480896626236305874605375412279957243889148174689706879388565","15620749273604847316536931144072135951958248293442395429778398082527634781400"],["1189675810441982980414345489451415856840165973871753103780145430410561607241","13240422969262627107834206597357766323935811702903978793709351502372163643418"],["9431097012752215730894194769516413586644196741727033803928686192805361062031","23523400516264414984204669370695788510977627255981906850209212150948926579295"],["21355225594370210732998658461262748565888566339754321612512350977992733807476","19419473696615700416589907387123464646945507424594507893629417160035924860885"],["10031522768751917879113477069652634862976869285738097857771226356759794125501","3607659208285400864242727024660147907914166775579654869579854682600901061221"],["2924168186824811354916574955651611993982781582965983839366296945243837495264","27711771320242440624161952473163203581383248058588948397062324789546311563302"],["7995860161941989644948175710743838271297794179847422973325932764637965529040","20772080133410802328353876101207786119004834646540569463247619820687578610099"],["28782834618636996477813596593050581034975531721756234669506234214447487867595","5857283431260507356892474636425435531241833535955653832695100617835083958776"],["26360185005948457165431195782247543529316552988248963180880554852832173123996","15079021176588505410353197397147607586778660886034996153768521543612593629836"],["25353991633258037411069502101116851783185941381412480015050657606575652175898","8219751000544146077383303241558235973254522442570205886109438730554636039476"],["24865069807621216510783993602363288441546163092650565257334470139761059979646","8309209999914084303498485367174820068317334739189238329528432575205669931637"],["28584803160151355205459744963896493497397040855136895587117641405935222458238","17890906362144833836735254975145585854072432875584937418764519226329333696008"],["27058814427813223607608708651645763346099099726207715363966616156788610872123","10256477675076526745881889635741425145694871844328042556907258378364260972563"],["1432156174556257601088907904268717943068500478287385945496212262438080583048","26618433025506152435600964565079293774979517443089177135884753066127078330701"],["14163010347591815761797865981221108188433210006868575437147506266280125089025","14549749658110555087881249990389731243407914119294644994607500447673738514049"],["5868282015607427880295529763706540775963232696002249930765267666075537233703","25578034038782746598319650470707669367271535131729243804036087225288958339358"],["18943786595431276106968049268984624371594830977430379228472781873042116701547","13775667817419114380428287844185612521192092459968206560311711920250719044327"],["11140890107016271466181725663249729203260873368222882937646673963242545138383","8043003031670739627491921142240540409748548085033084740756750703829325231715"],["28154928318899430415110061234712958876751520571988564075915188611651286283021","996473221751193162787343381710746702397526880390534734894860184064461321557"],["9805923036161474753517225821798235360087455933860153219953741755594633932612","23457730103798680288323350748948721827300858219517834635531149157190098697697"],["23139152385142245730313180240608589284431151638048175877195631102668840608003","14250256059068615606694932601582797420390387084172502516479741692996464335580"],["775663119212613768282839777192340111481443259172606180919664477264673433700","4330618462183602238556922498413912583104846167439674640168863649782372107389"],["18560375832757819330137230061523296512955871572979130031531733667592895196567","24633459624097416865476714664393311053038346945010311742593740050662745768"],["11573095938598764346975665270842906905253727850644288521090574090158626597281","24151791615981358984421994113790287906381596773679106987448131793126837571973"],["21178012253281154557580963302270212433858300091774370008144673284144450786481","4271381031868974398125510639727510680802559569802892219998901154258932124094"],["28286164959092453824663168912481417655683532307208504258604403855028193265106","20903520876572438065677131367599364046083017572450493795363525325574396775114"],["3410468826790317130217852482885430883311243268937585925940266912107977350130","4606402288807694189583330378604337792319316373865964233958868204582698820448"],["28530280375256350264687085744465077700604290720535090225538450958277651171573","6861428107584855772440926890929992710307821347882136588606805461802959156869"],["3175623602081559545757626476901279509899238902657633349368371751860661090151","3912315299233266178044638083335948873210915819214634993351565279457755233754"],["15846559372175324456098656575180363829458185699656167640026142545255062367909","25752927479276612497044527179762855834326989493001001922374306789128980663319"],["27963375305184923331244863761296529782341501663477312865558216056485621121197","21058098011775327568718177636376815558862681330108190353500249403227486210693"],["28285487290635024141676526014833013526393251981097348206324994512601096947776","26514004301238993532506277536159666586657791440359892220461801746480279022505"],["21684589321796699060102302892711617815093368406538959111345399790302517536015","26131562398407330341809050208078175049033638602795151056182214485372000931567"],["27889864105302762507179617493191485783379640445151955285217166352870549862100","23701798259563159138119096563313425418304412450170685438464736615458825492354"],["20217487811721122427822797272045855612641748927065562663323560479607270463196","18802390522445333717619857532638143552326626676467873445882632808739624058104"],["14592501728570319658635152103446315118666361091733086961321004869977188502232","2739786294018345313422846699234251965185940356699390739280569747449585803758"],["25178159540813292418353019774575396290183261511556311393497108180483685396951","21473227600051016673479037385001211190206346772791154491846206294117936130189"],["677933595545537458741789668639550336469568827292877199014809067657053306620","8309489926932720368034056004274814704068120345408554594675538895279990466621"],["26933647376969994435592812675205397036084644367970742224975567837838620433997","16054478009559108360322864818835024213331006694950770737274676810515821135345"],["5507187803924662785640740734875947724234335451427469366295762616210161342684","28649455718656276709960229430582143628002203025097418981943264635345283158710"],["25970391567795279039187249503759213444894979599835067741801149086823906372164","27616572441105369277062855160739148857641478077071593809580027792743804979880"],["24996320685181202603911405689237051063944541895153467914331865499464042319752","14293442646967979160728595214895480032736030698005604375784985692280343358104"],["22538313058174819918594505356791602626667879246400691367607472320243207759504","22133160785590773103882563349570733132435646183452784933915682608737047298637"],["16105044007262764880810993782257237186088239464999689720104961879252258042097","6208945720989032852277513623754632946590598083783353248995764193803659987609"],["19992860513101822877866839356149589226586449669655292270807762396130749642522","21509040857425325621276820804057442937675081129245000255826938306299604026649"],["28169008592993652445213995643211943050991666953279912310008703945206121979355","4965665470846290833302447775497548874153336149069749404036576585835167943218"],["1812181838385334938871604374227036570445813738669194260964515116188913028827","6383254137787173810169576695097747916289678345330138035927742290779872251617"],["16825777209736116188374146075266461586823310677574844793948007073064963427168","13436344829986102796614045075982478046030913034423919788100785007087107774915"],["24200239367242250604132070928168323946901755961800336110933781570519547800359","17504621201415046540473217998324269068534271543245759272312319534130588596305"],["1753295858954436251862283274335461854416461833229326891561429624713154004493","1261300648966527539853416662983533739890621030837068715036176791172005823130"],["5743799504395953252451411444070165399826260003750319254416513269309440086052","15629246003230294691453710812675263994093217354695739909632288275531272603938"],["1772513429819796776413196795613166725772568365192961377496480023282532676743","10356576569916581677061040256269227535345446816533634783107530845273943449633"],["17938526442885639688825265682855381669260927170896934066034673099703363960831","28515696268242927574583742943296119623737291060860159279533300979496561579207"],["1558523146673753544665589798748101851260266123717089572485572069775502380741","20159275885545084799204023018651595961390843170385620518479610955818074424368"],["21586417862360406802169830359141290008699817216468485144506142187061773844993","10489628193239908530894687228226121297077565218531622022782351026683197354309"],["22853466210138915437144133711658463552254699708005592624530097360146109793172","7087934687043780678123691872024595787226410129743074231891631294317256216923"],["12751559010576293359608909308533503466281618070387581291339162482464915878334","16107693370628749660061503615402178492860532403056570925248118063897263123150"],["7374153370903663387946271191788333940859832177780526389419561022446433133294","21004681601391452471600450015897490552106255288643031832209181014175704064963"],["26084947680050793496010616764074115135312292104581595861303291541345969813466","8045588007384742159293516407030159071368183647484378172242991644889458609460"],["19682068189490938455746559239533606022267530245644284880228770201201019408533","27607997194335203124422613865186370434808321625819772473989850237541110686194"],["23915984112905539118580951606942794831195472279230372012393360786534285764623","20934533691414963320319132953313643130674866655655147613422572004166726449757"],["19002686589244900909036347272415022846314993639471706968743652855933808760766","13180327553022802040473754287499649836819647240401439051963338053111430928300"],["25424232776384455320692320094414944689696221939077531302961104960601100611969","6017770155953688388099435155352454369364669707390543308677633429392099521199"],["8137072187253336222523055520745351959730518864371660089927746760851709171710","15678820833990801942130582404130315058178876984722890660159863190493073904047"],["19903271154984493424820054020214236484557649103170855690124203185153912934017","24212987629031914556049845709682226970732300444813641778753105615535291096130"],["11939818927054326093061522894481874232390127032025164433593807304187676292779","4385515788978951613690551527277315400252398749675634892253156546476956769756"],["533567517012891576922361886489749505589948852626860350181082755450764513432","28036732763870228282299083457916552657799770888542708668553759551707602871706"],["27290002924382148231754124040548885807427580893888251158032070788134962839111","26077027323834499308877937527116816351020392090662210276974843458185686522064"],["7901064148751229249247529410759202745682465214932853144979618049006591909437","8829263000648220702768190375926641131784267407795132108044586631073071327941"],["4170077454085487478431298707899266899712917713393484002518942371199523083792","9852608916670705940854789710702535101077460721193293369822414135970250473694"],["11665815253522958649405811023966214229901054201303288632056450185128101098547","21669892614580659817549238019440982074097633892702281374211317890656853738237"],["24881759807630459625932834021172339880818734832757627223430363695833245392958","24746903271216244118198093908155845755107708740264883667054820510542932923437"],["16511852108817753873263071283604493056493708456904683983284240667302160596089","21814845900340480736704608550356565380769226552135616506584248962744470904526"],["8627593156988408389512434350576793313041348774122280773245027480393493285097","28832217861029799934573167219233345030344806910304070160382426793021974024667"],["25416225803668690310638968486823741304214768638101526059572797847113506660253","881392080853978830470917957333463393915431246735321165702196579486829272660"],["4853903118251114921196356468571283773508595952763070087446879625267572566226","20721524974968879257385250805849822964242119727354080359697054907445303821580"],["16159242082267846205129842766990320074535750966499320885751054938636548205120","1722411308557192470514279943754029013135173517487816844191372104426356639890"],["1392687684970593241210525206996352018357757091910014943146531867878155139264","7898356239895736461922761612528388796646062175998475775786259893725200199259"],["25985981761296504457061194683785404056661903475527527634684320245994727477196","3261019864980457675900796290747031884130393669590489494756294617650491824878"],["17633798334372398868690722836404910314441049633224280533401453048357021680056","2924814773954047138691162537057866258485761024378903278435229129688440243537"],["8075919689633135003335110309512300788978539245636950574722048222401025005735","14537860591801545182855314270242126971627456594261799063129540259044131237926"],["5303657257374887719506764272072834707733945113787848222019966140950345274928","10553481681489290245630526344097575315023794868871643823561687263812933326022"],["8115210088325238539673802847766832970527518790866444450176215943584476736019","22957743120353163846859764901149026154746399556022630481414128319872295381307"],["18748127826092222308157728848590234846510493570100704549922197863954401247320","1240336120445005093542041624774493593187410562042598388131256139663167118482"],["24039015678514791498086866610072731220864982815350753536954222766776834620145","1012301573643002789415883376269672117129418118225279678377476849105225715257"],["27279268457031854382929618673222912070092147043734686321067996106375348791159","12352896459340967071794222239910858037220806671739909707235333264869708381353"],["26505666741431703528081104020417899712230178461533499688865403382354266630550","25216778958663850645009706379731081779833037717139591126769271383352234454308"],["19346629944597340205526851549472537841821246119922434179557784787815018229515","842775334085860765998933273483728988258340155108973110079751675385665502553"],["16167314697735135115116255226570824552565672543592481272947190439303591527490","25299607669773601302676163534179868551086035567180707271412296152764892821245"],["22230737959505266049032912614237471903260470553000991683986412496376009041838","8197980310985528858348772107397231396655063533988770444102437808773971383692"],["16932144511492008756618389536280744619879112873578547879262760961282907714889","18676973646281432903511837395770061615952174562607708749929298060502959475960"],["21306661845549982726443909175610354164604517345147916634307925623518045469864","19793581362207990225825190828724047928540242133829103697463095687517835655215"],["12791679736927444266826625693462229506230941361630664207605742168014820821610","15607633493883804766206881421210623504649908378463102321412143188034749340657"],["19824814932544653016651507208475430022802179937581600706597322070214551753738","16267193459897232513367985969010204521633447683595463593750821601717675681128"],["2798337336711794589683056630567351245511046189401657666191907985725238513791","6236784637732795483296198678392579913662307665872151047828951538863189115783"],["8384636693233559299009711467865504215889434140264305997793893366408435781313","8853235889257983767002350409025072370981271949151107189693335429502849355901"],["3717133638933759868278846747893146235655488528601195410253489268170554320229","20769523373829636190025667853456263865329210253904087986156379926586447051053"],["23667466673730375480160394186219348721517819321568373389066310493290462665000","18491701183301409849465672459912054083497478345691264675626628859864578659094"],["5405988046319290814773035660431263901000044819308443523003020415163234741055","20018619829512926773329162051302177498091014945597270533381240741098337463411"],["21405134125309954624374012434632557208002899636147813855619323349223615778935","18825805215766988209738893439200598273536678052619945651492190127846461522620"],["11594900388515833310440893344830618478219538897819050453476140521296166813558","21465186883814700982677657949602695434288465591676919219680387960945818692490"],["2350784082950877082876041694218971245977289927378643852849305382954573013765","28019373226725303361910348245793235742905609304121970749260619281228920894098"],["14773666757549662162255888105425416039177949992446216781438817583655467856580","28237677372797043944054917258448034246155271222651650410989874448989151207907"],["5329641983225774895945875144827181085830251611766597890743256049019118178849","5393506538507418836491676427794110809112283634287069115391203982346850295927"],["14430473752494598728894390246825092249429187209670392691465359685094278350540","28346060137552336060955082252818803581721027991296857362051856511309926058619"],["1683846861588422976536846444034417793534095252426244886575501444136994080475","16542287810178751221277502728560207315351893952845765200605809891057487941684"],["26428499492187126356063273987592014533090897781553505565652911698107033886209","17621761665060910802141900501248019548029225996680719340977613350786798691182"],["4446711436176942563599920012350367835203818280100345508906567402074756754911","11825077228759649653862229640867184737485097404009678693401299148302545613133"],["16759805940225991065410609562614639901109179650838664328773412436010287123215","3216029554753977106445377882492172732832303299693035624752074778370164606338"],["23837467686325243952875553093553604485274988077684608339657575460352017389766","25280706310096899750438359353079182251162478028873231845569775672601959893877"],["19619879287885644807037392730849694737843992366194752168086473119906489910967","9190900156612265210883281879107455754094303748584950314633602468459582180731"],["3055030632361602766071581928706435538497081096860442862012150698350851026906","1613985383905445953789432362186117478102834546987967698795235604527428977964"],["6045387913496077903274217452829487931846123620521254107048685426005617104542","5850525459847372233949567197912181511419264241191940606393752461970503093880"],["16293201170087731643633694863991813221778557589179932730170235536730115073063","13813292560227335830627314154030084685386418292830561854410150732677695782271"],["2435718264474687387536053004208517390760580534984241237587646207334176628889","19763777186895740854655637408861867521428423664896454211260304880609678979473"],["4699652358403516955280392521457865444898371401481976915666849319880804072515","4184956014222781622260780801659632301138025875969642023232237181219211876449"],["21260565636486371753394842352076279573303454324375889173269626068835794468792","26157650346015993200422202876360917392921541317676549227084360796600069584413"],["5480663983593243438948818180187722984249996891161567966172383000876872407764","23568050721157606297394489090269100349705076579744650795492472774849377398627"],["20054772539601538137866277371883001250172368287958403939904421880100493097249","17073935916901647575345485681454896051911356547953705167347894201430830292278"],["9562677255249142582168833326739152681538006310983146279884558015389926021401","25259280664750430699918641115914903243673551891260026829680106963382175402106"],["23656243874585120166036612981719115268108826731060373950314450665151069897788","18085325593547974379579525071067919740381285570990672101654293108915811923898"],["26438205432599925324353916010944064020024289518944739934309712344776150825773","27639452868098232599245039069061980100119728122634257162584650000723980394765"],["19492953960002222667562737049740675188920131159155000521657426798244942482205","11009297151384139441307228007435948675457334710992104805984034579761954541647"],["28644218922909250443499950643118270150218960996524558467704691182555518236602","9445897722592424180020497713139935808481488460777114793343626944678580903771"],["22479881144126412743334125378092772930329628612970029034427858547857064617490","14674881298130670257329728860167992190023051932882751752462479747502786479151"],["19044184467258956907518805322932662819292633200118747324860356905623972520679","28277915223552750712221953414431903285864110814633860297327057706617850800056"],["11544886236475283851681595409483572395114072715379087468423335563072225289028","12897091197960420466558073798024942053458387915503277854239922620940101606845"],["12790866469587128733567383582825599422941666750661161902049722376733196543258","11171656233154147897285627649869035230227919105776042414977853671201282823318"],["7354361613889380695746272648944342613171659712281237468276689540386755410706","3555890932030401052834437117071280525772867733021593549877730659813618287704"],["23528932312737933519998069406031144903273516379203846287913992759432266637690","25276566877858374405109621313657617380602289183019001195763115233375496004027"],["25763305235556154233612629198375506441603455422805239970729441744293889115076","9786041008920849156882544999759938449177785842121870173576562743876980544456"],["5722377139969968027169728404950490186385741109077030006871386094632643168179","16093593590439966080805202739632580827501043686397907734241055582071225859193"],["16941992624703511336379824051150194265805594120846456156045666752358452614108","22379962624296972472944557686818249035297293771871198148358168803047248825540"],["25530483554092408757827019704579919547866098987628010503253983810043204547112","27199770202391368649463669982461363508798729850896227357849864497576426206913"],["22884103194252502390185625775255941361763893771152571636490483674315566873720","3713838374243304566964112630302880443535335984621991112455057770992835207825"],["6361411531710121489560872206682666454640134856474543602742768494181683079806","12588290865979084448191925433025917817974736346399415022545123457436105201013"],["25865584805643779851587371403024498651048978104155242294027379484295434281824","26603793688241025160031703584895308674297530788681602780405333833219515751518"],["25413805457188995110723000300518161216991905590679711993061425172699053112755","16322369343032859678352376188130050554912403012480365567938671694788248453045"],["17530159260879814974292047549248344797341704128894543251998283782808517030501","26057974877068682687152376578617751460411980583827193646019671723722418986689"],["2020614021709317569590997518981256208952861006706948221499404273951583358244","21592240800745719942128264469671912042388476411584693924803028949302928975196"],["9927049913857273719051216645777700048053255334843176741290987889084130182797","3852171868367773694225670911208711147574227087123592944765536834955768309788"],["170709793371419026231029500975319184429883787489993856062643427347276364681","24554056021241162936656099344904937449972208616789984931944811653112099597778"],["12941565212927638849029248090982676386469154938590198302838861882065355707425","13138618940407162222825416803204640543569621006807810573724038129294942682379"],["12420564950803950136959479453443120317428829407156348252362273026883976631643","15822666416145653227284718375289609277188980951606957071200824560008203672092"],["25414946497836079895886829184562010502150082385196591951295669157017551544745","7365912541849849485178175166352841348415643042136017785336603382652595620396"],["26154002810294567867421694846299283979102139745505643538117198454175896001163","11438334476816256490087809472418921155423993520440981341000319566064507582242"],["12414724114207456323959003932208267242437695670265790268373801663944529634889","9040682795685572469164732764094222204130931292444127549940029234858762398647"],["21389868535764769316093406377383401433423291383596861002765394791550685812964","5426660438551092420630767197541729389446286076164499058408781097307765062575"],["14539653851295358931634096268190848070375678905943685626017638369706433605235","16668116793394951493452817025243265757951080235013482221681235004932578459247"],["6647895137547776893081295773186629966141686618318546180135985133855313402789","9082758979222586413399425400251551740056342866348862042487675247693413251906"],["4652460843953160889506542908083913310495001136625234788697518423127673664433","27367911488848887395841439051399899715645711601845441630677355069865307441296"],["10975538551824958417788337828919712709763523336939033759766321738113609460277","2292022746598494349247199588791272769955649107327156653776401210529776133168"],["18164880604141643447218891466941814992449238739556031491410537157223833108551","7570798883915153975849656784554852188134701182786989615697167765911631745202"],["13860662091239231445428753413918919530740926821961627649669281223539306058774","9461036859241006855848007601888155470705674554878695722081109032856079600586"],["20630778889971675683351010941948360202903562481861508678530148341994263371960","10146019969163632689239265995391519010461941809418314945727126949140889752274"],["22208350623447808036478691064989748218140183635887992562702526539723944418558","1500390045326213327022049351705402381778528486777107489846752212403729178776"],["22835963561428310690008355216450222457616360057661342154017413013294070055784","27696637751891430067770167474237699373149399975893262840299473152640168057562"],["7957436135561832970382652650478731472284123058250728699219372254138887475829","12228383507598440643895086215363320974416761786391120593810084181813909678338"],["5522325660511573557094789191340175303382188989905680399043219726692296585715","13422827893358499777861903099470186142703839235025596475744061252305603957180"],["27456142195693433383098924416149652962367774375303563181493070605062839200329","25067675602280398647335498575903539497185435642925940726776238190665976279896"],["13835796513002331529739753068191153798802320192194103366446284317591112999264","22255820537503986195260717341321468205666491898704893770775062077075936503778"],["13119470337041592326190967100250849796914702710672660436666922086295959936025","18011037573481023432007230641440850175452978427404938344602417256458526255908"],["5055990720695458883950442758941372968063287686225004165959167439156889942135","3080869535851965062183485862392498769597621379277841531781258905389095323400"],["18377419700693604584865086833875267599697809605175166123187999035028556467300","3244538988910903243906983748579215278027823968322744178648321020509705182047"],["26277555853581568887648063449394228362111888777061040420143026520059324971849","5576987889797446743189056049915703628967926973845979217569194281226041506487"],["10354462233745615899700247562903885003072154964676800888916333549016617946699","12260810407973569848681652363524426280919942809560581425489990102750417284033"],["18673138003120244190008830242793444327163993316173992601439662767006276824916","6617147340120081302590975082284630346229198312232834040407970227096704285908"],["539981616733185349171701090368419362154662854005493775683637851629584674047","23051636603596252872468383554175285115201620089959345904896141303663815176200"],["8885722902012316878799736806743875419474203224588421754256728023646070858569","26098195651370391322121334018010632319725961546109200720516605445268498221498"],["12614089910458173170203285621812022187921057426860340145082576162485642154507","16476641105857874011081788281534627975775954399134829508525851279939256740915"],["24246993821888327306549644037276571645840450209093067682019337658088887832492","21395934488098305834409240972275443443682883635307018214790331309077580427032"],["21561791825417209741151994886861778511909891324337076663240705563648006509893","1735385568138700292528205650773659019579874147718514304859109847398367983701"],["24013992942678591775938935204924196287236874990709042515110685084268234325032","23948273559413310008546712963817167954652248119725717022754828432608676933400"],["19182295821382957802981181725228789606252596674051372972573520326066362078847","26299219418384851938327687123920524624498711344575487968528935938898450117679"],["20519451063562701549601884829597922692535230422763202575856935573357151918881","6581940538912009812355461946932875998154568207880402086926653777256807200486"],["5704211907609170148932076380620999268970299140810429629844195540734885961496","19274395009926408471342677175807137145412448668723634701749668394624756678441"],["19720437332923273680254330108922357788423398425864462183634432065545655530473","18420117337986425374685172743107909442735348226386255835597962048219986578038"],["25706038217442687857346550044397275179118105525595734840082212263112379976978","28380098935134840025966248411252799286413122174822679459909211651717879856615"],["9627883189161675018174461693314956188520668570045930877430338140480815058158","8143174141672905272718183049467838856120594365234421559782932239174976142308"],["4217541852817072619620124899314031115797582946212678132292829597399022962701","28716083743051441494144840479403878212361238931732051720365837454058150788696"],["15853278010260400085051710984491908273698219293996209348092777545958654035677","1818927394438742488398525389287739476060366652516329097229600757289691410543"],["15544863661574980913960288699581673576278537524806842964856857416702098966618","12644632680983173074082075926964780160901573120616590149591097914573202731450"],["21291048597117819004578714258480687760820131305181008298683591037039375938294","7460833984992514625814284816779741429649492152327138826344681869652202236120"],["5568546794790460377975136806805450805436733911564047723687774250116732767347","27572076615864679050897242502252935889266570012853362705151372177528046689952"],["19364100924760626779029015545626503050535457422011926966470214734217656804437","19199222500208413007596460322332716586943895030521587963522524324639073643031"],["3633027151827264913623436880415054793497790191135017310260286153365051362863","748836975235225698882998400380102530768107884828858442217549801926608795657"],["14776648985982485465081497303544661447916357844697687512356647189737915193763","20580062630420103691138743896850393239987283181690787984138546087374145070008"],["7507298552521494661697521887707901459693609267704608479653064813809644539954","28100987976560274966666535106882992649101405450250464132800430483717118811014"],["11789119749286267573578181062089298782674938506608036303228975806864901082918","19156142488704440656947131800425322135718494763058049745960519692176526726295"],["8736406166769757575804865228144399460482310015521882353979092582379212842950","15153206645141572913819195603210465197614356854887740206379598071274974588288"],["13230501956708932069318508985138547357331569892152589235839830443431568571971","19863694783048047233442275230471859402062517917224551638202678636552044302626"],["24823092452550202625237069819640105844759045285415668368580483044654158578686","21692985754631011261126681648231247574990864149621528062813684348816554667257"],["24733554064793449864623176978419490820238763995930430817368423691043967168729","18886495191953605449304639964644350670326763044115642070968892667461656913302"],["6609517868076000869425323701986621138487955401185130640321764128958660624424","10155588573864728118897548108478210778729868220145391668944533396016128993258"],["3860030145950563874677994532187992450752191840815063896445520440123916408293","18041089212066650222664420478439188885103208113179607262304241973081315803874"],["16153565014867195625615969088522191027113293599339978030309274604473879462640","26957235669273319474690016446304024411157021871523982015632020560562585026707"],["766705622728115214018846579191322512272948899937817293186938453926032421929","26340016274171829068599289692073411644144004766296717187498083890943285857323"],["12042440103590376555114795496610046415176220728336521623267537819549634283869","14771022204734462138415573495321523075289421978097796959279969107290836859123"],["13038031897123312496405587471452799014035024839254438349410229470220483152875","23277517568959661283432766333182343407845385655833576890276079286161604251739"],["10439138569406409894981965312745032362147593413019723058474424252702179588378","6066877822224784289939300931579003596209752424855533140216172891871222273501"],["12107076342272465280567146955863169089585640184635762897112783201670920460508","13742597439741497677709877813665442371939595951057669429092136594449977065817"],["16519200258629986198817103144173197779055776361385821624627612802854948178119","3955618506244346598551053758146938099950813472324726961873916736618332617474"],["2789445190238104308977824128458070051781010179771344211987949240448777273021","21611975088398607018441661140168464882865066501372995884701126321269629856410"],["25828553359605877228232727304023971600499176652860441431589123885557735148311","18991897876863990054031308447074668623066571055420581711546651405626598231996"],["18014680163512266533449049720742518483603440293870505829789849099301815191174","11013740924392501471492644449448871191691687990863416409136114316734295258789"],["13692915323940519537129267953634958770346741747728650714258312041015289999426","4675471501199286499376498788770811322611719178952945974177717729255639105957"],["6070356922473507125375260613677925818302460743227185885805238961478814665066","23832183395237170308601286292475200987742569440901018040959432716957204399309"],["27450117938484828998855821970551556883609983413850086881372403128437077856616","5398192883336422101646236446190525465700489657647160844496112254608706153429"],["8586649318844535642404962661630356820519892814250292945250820192663054663056","11765046936132066500078566736871149698516608132731849045959347468950186384187"],["22477719251319372488372716196536680004519589843286577883855210009399129014397","9723144247119659910044749381254608484342890872980664570868433401827069948574"],["22456954550913937819288084389040463278079600365933322665025497769781271896684","342825183911415398879799133119829018602782638878807036071297184373919904068"],["12435180784546928786798412240429083702122652327739999936154482494987503555793","13117696961339950144351093557136957852088496408614923492530663479599913293295"],["27546188588915677345638521843747739133279047108677638064374091640341151539436","5214528785810277992275863175194690472267646189368328806678025275109781754037"],["6557208742589551904759573932849167796302213347086933528280649490415542992728","17240148379018970233789975114744877591098450570225915875328789374267434613618"],["20109537613199370722308898825355329674555302685294407791472274708881087824283","24230448907162664376361781031303098573650672410855044065422439346603963311598"],["6195732765139585127482869307710281676552982163908387497799267634348956284272","23520138365267583084418754882067344866671652122612525239229654927752816285228"],["11790118414185766175327914100321112613149169111346853219939483418410716222579","27552678020305719845021443980538209910618266203127058158694055724994266086577"],["23934368741150221001560387069963525701982837036771340992698829543911812967198","4394574358020806503691632808791609525562864323012504504608219087397791101411"],["2449948510421388006394479915890208962008046756893749450252746276477712641258","927658457738208346518606442746543316794120978623783405924764603558170084543"],["4946279144523646750979722353007164860698029324202344451866680199686672690420","1591756913466489933845967972619497642005238179799142206402030557511558209688"],["17479417810066112801194766603773511611974106038181746538807012657552383008060","12187225668824686812250841132520724825970906102732416745530078881813518130117"],["24251291326103442771051756374268368145987043929759264648539973214961540506652","2862808845029409847155466814432043559537160909594386769885590880173856889176"],["167575833997738985614734594657980251897661126727927710122019505193189504955","14896516613296836779999397675881439683117353287729386853574968495383441519101"],["26548631361016307056277028257151637097418562571244826100794314702115546058943","17602577993746789444250709562134581855983236658129198681573538540016933805421"],["8815051513819588240464482006024980052555904496143962863503103606246110752737","20483509211287735471877633266227533594696309000136779697401965980563575251541"],["15211518692913524768404693402499051852916098522177261200179267034476611013897","28590159329883313488608204500692192933441542816374957579316760619965821757774"],["1447858721064868100727434231310225458193844100821607969562708488757327123656","16372595737546553180312823827269920069360866975120669274521306101560350166398"],["20696015639563579628461744900211018079775759443368546666650764382304614825767","3744330537593853543083967052837243914713816367202712863680990988484497143858"],["27053647938791436070911832801475037850887183147861974731476299958286007159589","15394082640169541210536173558612645767966226789853392723220491628219212212607"],["16783180230443512408271743491652757014074527864335629624860325143123139134464","6659115263720155112170845604751393980734156031701829425737709695077375607979"],["12817866899674331221551600184932266982916681455683764367421522969279692207481","1166031529029974004590804686407160264943333749414538602178079579775158752070"],["10183568579369382314089316078608729627814083443556176838914892374130140743548","26271956359627676718416161939595663241170984468399268193270432569460569536388"],["19919424642362390522703869252645260756002690948052079124484364592187579779995","17988940632393123045884588907562809352858291524474299110461981241885779450698"],["1706448012752203641038595038977227394573658753563457659426115580260619483903","25083107757778624300845872180865083016180368058236256225347979831126334755250"],["10895623497846924691310302311186736866195383113893967231159042509825538903129","15450055914138028657833329730653557243344469512001231285270451509947015649982"],["17405128806068478654582691846406597097556930686289978181021981718337484220422","5207541725487254721078191846142113039840742263499102027464383067945790817483"],["4704936326286759219544454155675920190172426516356008299740349407061684062566","5478609573151498144745704072817588439797852707785089794444104868573175903333"],["17778754342314645476425836707424732338687624808463300880941729203759270546650","3625289388278077710968355222153345735581116570472849461423799417115673220404"],["20267922795629355005530989121290766375872810265581905902925936367484112439112","479773840189241971256594407617182721652334251373422281303902431960822837400"],["4707085568966475943314941492124793671708271901651861701907837333362932232424","2695172852401988829649992834600688158829422189478481019942343514112890865708"],["16230727315844436195593102319946671955558165296250415118433361255045661778381","9101117838692868176379909680146239329782416813037815095509915181140482896557"],["17559909932062535215889070545547095792483590776469676073212891984494334124904","19706867895126456412102878902451207503062646425949951576620504333976865449161"],["24640526388626194108139469343902900523307552596825094462161290154931374822237","627219082329738215753413372193906704238059918651753215180595526016962250918"],["26498986444287773622441820617653134691621896900045808144998813656024334457400","22130053011658337189211072852703753864746114023785600787007876695088524229899"],["4463033525031396357534449959436874156073928174640038385771698607347565452436","8911255094253056313240556605173238344239038466529692472225895970731387865453"],["3987993487755960509964721581779876692493996657619439335976787909706339681571","7785346856602974565039736412490233167319416177869240609762125674024639715237"],["17230452876767743133775203447837934571773437115631678983525402497614778004245","16987725058068888379067781153099132651853554280084553353940160385906353956034"],["18057374994147761043342408420352918103125012180877558331846633770351556316200","8429156996173188363692181523412548304185614824407579150056288323360831252442"],["21498533332884718545901017484035297866001504242695431845072238656051218130012","9227244321003678295995482814526773139791028235549816990802439524175332010665"],["10915215515034835187874904593275365354339125158918419401091751350748804065785","9811815599913555318889444203179582909474963329775348453919333528684224562099"],["19816186481263973717853631296966208149174290562961584611447671944604983304578","14759105009453186805531228320112842216283637861778146930045158850752287126443"],["20857417847076574094227889237731170381311420939459383953472740601341947291836","7980230075882571662563241327527913371314101933621999777192519672627612630929"],["6536481918865338679494466413479950646396332955072945732911352990147526707167","16295227006312733130832696392894250926688159231378045719074655867940975063008"],["4865152929671094187196175860648548719432240103857274396711794119759473267036","13284303264818588359531329924028164197353581838640373961150726007236871647215"],["14230304580948785339408243928142228361524961958398387563740368500691813861791","12593128050085612465760889137132834700511779306866181675729733901161195821259"],["16653474265577221896170580807493518919782307960169593529296120318697207526016","27844513259588171034847832846630078612988680202107391789610237482670276839659"],["815357647506567686195048517873568960502405753783179577299800045886733623824","5164946502003465804449299249921364059759462219899070918377991995886490971292"],["5093737987092471784533958282974504244191469242375087511549123932015064336645","15214004672823057020496880768671434093207029783426818412822412739773996156765"],["6315094769787359084026134287684356467659237079228094781196531491991176494538","3320063445935645466989183564485340175340524619842454279608802161793360038807"],["11042504622427517118122921042909632696788723175068793669089313348972776590156","23532063120317711035984590226463531205022172310241487478139011973677417635571"],["1005427409584056299228916163878588089503547443902590126947639404552142284025","16523641854415955604693926932180136280455529413539408367706020390862330643313"],["14341611997108243757167699345338540742936780525260056635661530284854312225773","1518232857343596947644867819579176641881724374191263711214179241937786805195"],["6678485003476308454183677145785896104787211781378281262931632726865037622437","13584776721687301272856249232143352635195481622597530266337444038592920489573"],["20236224529902298898895178626457597152516520193807774067796529923119336342930","15799360232944456030785440491222761308341449468980327458291549922931203482212"],["22281792909600917580472293196988364687172924825989472779881684130369702645750","22101940356003746172797939166665998418609889732932305319584466436275756679023"],["9525393421324923930210894571327888195186824127483868762105137861550475931804","18083023623611096355255384936615377662041118587038496874884397757110192622391"],["15248608488258733807778735572647749286835960354163142810703684781426745826337","9184591913918223706411654334408035551025714299597489035370140197259576781"],["778445109385701242171453689247212225586349791155877823106539778049732319191","20283377264056040230221964780560249785807169728484776170620148951912975334819"],["861843823115985339501331396051692695893499731418426217578312230405612286804","10145316360343426612240444872901029818742076352172723719261075265941983661240"],["2410799428026789652264638959145515914318628624064624351626607972575067888262","28805486905023435248948988231305353059454841077986769569815438927494203117419"],["1335344004559280041352553361466190735974624910235162995911282762272850900374","7487341732645292588069675352701542149738482707081779805918864292874660013527"],["7376211112757938664411760609999420291324011066103553266171671963063074214132","504485620842957860604912043677288292303029984384919650503529339040674221682"],["18506024885370748179756073912818513044053166149187667676736288682467602229825","28046394990114917529364994252257144893429206124759561455324134899882792974263"],["454392855134040020369527835412546800465514545489392073026429428934032079506","14538633861090861737500819565330766268635427889191514745211332902935697228944"],["5189463970711997979806288321885783072621705657869469534061043888310795507060","4402794096524855341653667513308224318694755495620778175040852663755472928340"],["28537343936114103065784349071915196696162206264586542093277488099530080600909","20882462275153124150500805287042583563524726718371887310315583219141288548692"],["25495436216774712278225059576585704746129760261070843507374735047406167097869","17046175302262807297805212358388968935905039675815195636409505485829288997243"],["26453759691554336662321043382607680074878884012063015043691171012584765885580","4827937625441564062819985959528151306002908356997597130143058863199495738255"],["540329891031496959501860566048141430488141841806041446378248108335714579735","6761598224795884615082600066874715457791985754170860372463037526733765347226"],["21848044475574287832536258202240299839213580378288666108556590800047632856725","7048286440908375339684714467020524138144600562777845091766799419640626219713"],["16436587336867601249074656884043571464634539877525589606538878585054282123922","5053200225012863377090922591602794601883117314509117301327206529158235884809"],["2358194928143409648850347945732948245480232036275211709646090557569706918837","24178605003813546227087072777983638656779910815734424226154529520386551798382"],["26095476882648037561672986436014534785177930094302062775413726122878658681647","25787141251586082771135290446341929327083301721814964429608010744551868134821"],["27700011758693959889223601982612834870426636457550349112168739275516115192401","20017362394319803670031182806328681310613686506091112327611571417450390411270"],["6291341579764366691382432875557511375670321703246153068892091211557165040719","7467418877157375935392211574363348217348263891070565401883864746813951110702"],["2940618627441894652619155634927548577020288882028417466620779099169885343049","20610691588955414722597502340591375449949369377129556389825423692722803556670"],["13385737706810306027936704872635053027868031265104928265199607175058126406762","16084617537971609428355373127637691451441535194358838555384280953328618278606"],["12810199845828937770655434389937243060618104459019282054681980356881993278363","14107004343103161192988620059801924964319775414560458919922482463575627343109"],["20530091845134199391195535292560909821184099727123176777836908235535753361438","4309463259625992674840197729749980342585943725657794505311379439648703773888"],["8782876938968253012200141189464182112937717565024557200278733609492768238530","2361154008177130487173383103963606329237755606763909171730008508438454289579"],["4040687494992586970418150712262139399868997027637508242257347377004527296488","19196572024962282891339690378655632088174773310552896257177040934979865611616"],["28463566287840149435453540595055645270217331540036340827896092962068662910048","6709437827976713322293363570258306914264225752240441957120753907642501026562"],["17798746933745696456829232214546325634308125459587586766130588299309214756581","8443797173789107222417351764175446320231758114384268953890378693634885347016"],["4598169763815996630730421248436335442977823975054120452874620681470511587010","22887264059215114988588096569348659940543885577270634826418985795635397646723"],["20863953368202766550409683458447635554764820587577391784560320855987940540860","27447915828592168373896505821593147284725242585100517172599108959183277820716"],["9718073894515502420903775898821441197145731931581905678168601455122662499969","3617196894834891297645814395616765229140464186833398213161140643574694304257"],["8436633887387617556802243108478066380390065176090905218469612555657717046422","21574150391804548387713100354438042543276070362262811421769500939705604822682"],["16251127576733149503609490248243324637656773959169019143745162160485087643838","21417087254569480368337876728744391904128382322553268326059751526920364010364"],["17191098324159585995016482136733316449368259405760577878961250370470055405171","2576053845787777241817082296825744898711583352884198432374748856646245536915"],["20665045619200154076629571581381300905455167580552874617924302642843982556115","9818672029412625917699601003787548897526215822184093561218390171443688387547"],["17183947269361237858116013982403481540780711573786659765895891898760058817836","26203613952844804329699453753015379551149243254630586755440143175236689686855"],["12141200110447624724080032632826903974206648172597165542801144597436255106689","6152330950066927397105231160678462337614919570772465552085737615861123968819"],["15056780168681555174196540773423780624184463127910796395463452460561333504077","16878768289800561732197241403197442039715157587904411356109632011049782293460"],["13501655983164996833535043936136197714335401573870901409068424997433411439526","25243646087153492609267994525475741527191896725741600282038398995368705694702"],["15674937988608140269292456558529550407220724838727717015719789188237386662797","17154934071504492841180212397625322189012732745308998905336650246948349662352"],["14361189354356308113533252018012816407940113822325471128004692281799399088466","4579443062764314760999865861090360221313081142073000687912364513189746434598"],["26491854673144179017530154255346386297733673117605472674350302213111231678924","21316798214924904807192439674030726087841263451687172372383332772106182871795"],["13299792379227299932182547192220049180177033353284924952449889346931359310924","25659315122299706606318199384173001691223986261722234237053800577588217783588"],["20495480476666290101593045616225625754451404353985723100322445189975968635293","2991372007192588764155416879472310808786722922518267694572542257659609683612"],["1980600152094825667286731604279211929033634712989878047833054269044757213203","18816090830788923276998132143986182500805385748112247317839015393992390840051"],["24556960305263185250734912646033734034416795643905906186251872724911296011944","10977069717746883870573594311784224171906029813306063305473527816115498080988"],["4392462501225632295859911744580416170776360998958579656685457930051939514999","14706182107219270057552457793845367845698990911709226844498074692172763172044"],["3831341199583496930904995774678564551108281282427913144196682854300251987929","5392430628640296379899401763566879700758700190939947731781533544654672440849"],["5704839583550194439682507427160768534962559498002532456565528519926165560723","18421189211700896198498112795249134965169171282670636356663679839615528165639"],["7323216583711988918306351439750836914256001701166717937269678175131528479930","3689677608380726769903199374990846070943135980352799328763807906456803984184"],["13498386704450512404242773800927882247031544857401793326706008574363962224616","15908862389158305699016361686848434236245084252792523650776258440644331575685"],["957712986213981390145724797937872182442191242008911819539469808657276536750","27454034913383624979928369289209157318778210227169809030639543321165408992191"],["17624757344422406519583556449388420080599974531529197041751398736212608220971","22824745330171625217152044686489109035520748226141499158812366242892708979998"],["24793123957391684073499310236649417637585149508893449439670425444508401334802","28194118322893192172041521615756094027801352596437440081957105876590681552211"],["4961822896302943275725814050937550264549360074781064058572546762989159173932","17113902714363811339349936161789707007324772072364703690034581197612058834694"],["2104837953792055012986875855218811286357423164850969332876514779840894568275","17470693789151838507189453604625593771567003228002426310952618860432941367779"],["12793932936661459272731303817734590315167310876902812897874980273442184724189","27388486628924932061210947010337063220561504908868586380385392651718105881681"],["10515276216992394269054539434206201667691095248493889658770576153551330326986","19517957539079426804233909766607317665871608928027465377795528471165021563219"],["13278106006996473245705714299247673322202111814925118245797067563089153092427","27294856875735811613373755534490526567961905248160328460705583298194384758328"],["14467866976495762061251181513349971853818582959932720021182507293799998348271","27959202932933448929883020902735751023177109384069026161871589782743440895715"],["8323102608507660850008005121498113812881618520342136252318935371336841647508","11662759940984824696997499099101234111370803779840701673347549056693677877046"],["14882275631518097078206105414687654957318596318896338143150791246174125111732","19577443191682959812044764559996397216086276574209473120039816604462506889360"],["15170010270772104666537184740659246374823782708140984161140358961994425114900","18271542100906935203038224968513798386724178237013620180690176188060309121782"],["13893694486150203512038312091650427855655868316274511735053920734055635286692","18614591192867671336281197739800672272021347646324563935102079164737854273731"],["7210529746856808338336634040044296783042849812122168046913131169474816995057","23930739894476995837824110512818300917069864208623576272438711967276229350474"],["25096714866217157350409476988525597072038248515703922472923814195218147094612","23236541290742605463063004074574525733535983891234887520781559312416119607129"],["27196964273290566721014534811045574053075034744817278163666347062980421064474","795507569796193466655376321937361602556719160365148297653641166641078576462"],["18511566619868996171106491187223196792225642025661200979006630391329288900314","5093666231376998246492857087274636974420325301090985862582343042568291017673"],["11229131192273148226602674811560581230683664566165870129656944757369387045665","6204030221878671173853537808705913870146380528600527259702699226493863716748"],["10140955468394573427873229701823993191825548936362620928066176907006883203441","24997993267812988062635269999512964586006805281690700646947554360978849410693"],["15492326143274595459685301080058951460864594792573892338004242443611183907528","17126327064329537523719959538451514228720155326045135600727577903066708400177"],["4593863200953141318016824932037547176019364763296208085750744098814629611528","20350045328465383477034552782019397789395126391146682837082705059632767103630"],["8727971134166154004334072107979423916120316236730768306898660398673316941514","17394034655658088171116926985974055757262199412280173583194223857490900139585"],["26724173234000423739101691190612822388026350177272974836524112205196750279417","13464787542829878168506440156178629118895845716901527159664102968325405329261"],["13075494322372610857506167689267568735233450295512880479080916647573154263063","9908580279878374639612168444932130892843769561610832955036365912700950135247"],["11665303631917731850710861453526436559896181140601501467222390570338000092345","4404835547483018613833403207165084272828530149687565866808996671767059218358"],["26662981422789190427773543310739272282213575457298344699651618903036646540822","28215757125366224424595810841510492307104761565386468134253003038591978376061"],["9521917218464733673032787548211323976978466276943404970128700564708164968033","11696816645397049451470825387626905973289528821935345838693652421409241435136"],["3284317117553468643403143117014322304890409014697910696720232681845574893416","26583169709114970004245570925304743805828691073924193219112172622353585026300"],["15451236373318369338900469821008411976167746599259715587373000824611091713451","13949362854149015138241340683779066135064251314351061417231071952363929169713"],["6612189838477638441768394464017004079601822312320871046886835086127735371630","12015784085165421555868203139757475031414053712988371912853394620418037576201"],["15523045098036880492504808675933282530949230235879127097059172986223759225464","14358990975588515853614258921279619778206828394729964885428695112270963070876"],["5581075076763299873295290540828658523606959319426649271825213526183880998244","24812272900311613967700060993174714514771535369451545074546848222800219846247"],["6522722560945233265014683717856308059543900400683461513007752147492629493379","1595725325730172499552838349907419534746877623640092607262754158574755645841"],["26143262540333321312194704598049582180283291716305675454173782776451331853644","28224776898331183198718724488328445112888186885030690993752317521094576684415"],["8237150338857251670292753233881428133471462150554528712954717473507406134118","27899258715041710646484799733619978678182982411882689055392450216150884146094"],["18971672618043649675987396870727869856648875387199683677555927757459683892383","3014092531559841192108534613841115993921829967301495312646909343671820092220"],["13630575935967120538887462577276777252226910321292359211477993875715999340240","17076370479404867175566019962591547707350135152561162604036252394398028806150"],["18888177323831793286336371832252032656425938178576512529459621020539629413180","12140080129024003503952200715310978612366727484245069818326089621866073837028"],["10593211821236917541657373442631384793633747461958260635332615164333376965469","13846868191468300764797827280513725445714282708319842135403490549719295650098"],["22304466025220787321628249117258737115721605998422199965016102543742269899118","8319320352899537486219638274909196650532556953038357471683941026535052236800"],["6193942977733648377507471867905286438175384150129449238883200260239846828070","23370840139411984069323474579361177981069350632314721221143015195924552786711"],["15887736964631817713898758074334169533103029362916403542092481292140106025916","17188691262600746930026356129206979078620564711486561413981630205638416938887"],["8340733305085515751294758275791243472420516446789181179422460431759191266787","24395354469155587398395470251015408984250251945801200260084567287906234813244"],["16693823467271168651154299355768667179967441820485859583346604065646828702755","15984729564652764275949465385641251254978999869471875597341329499260424937496"],["3166432048525339687836410189383326397244922624893751317403131248467797282606","11448544012051902350674992001033128999845489029189502252965070988759061718834"],["24236029271676218758412405164869759965501273846080168302581990390996826142552","14511305100971870576441379544818592011456324333114738523246220334770240587016"],["17621620110206531039548250014218681101606912146124113677752779761656733083757","7284245923673637784898065458754155230345023644289830591576406870364083039852"],["9193176161569835416054592425754568918032300466745447891793104875185075864647","25385962895315125378051433534141651411682279562687518562284133389251848427892"],["3266383964815567689735420390340817184824318353372344808101090022362626528723","26980855062799529353712199201572936724633731156131128570449926244173898869853"],["948729433332283233168409085396790059576389682542370543466528585106780690229","3345569442273826353783193384085808473987314397229675671149273105482639089953"],["22166558365136441881354074397185050766316675879894668171299448821880086831713","18415056696570931786186274862549546936455536618754271411992653651334189897402"],["26405658532713175775230541181320818254056570614460089448696200704310723723958","7874203663067492380159426842851606313764489475313019430706833313364558260370"],["19864310267266241841125614913152434996331171445134249155829623177477957617795","994198467493487976261138228757323245128450054087156970059481293871855545567"],["15649735183140531218260927850782815413668023083565202965225409927077620208002","16763316450686893320145685616368309308466942250261459456242236570278359927685"],["3526316569842235448039838411348899864317556439534605961127573203020723861264","1887796382362805301341953851420994870320569960509094787716744298570073214534"],["10302166765211218392928021906775806505309062381212714212161395165633985790289","17206850938791434722826176250880418482607568967869802514316201715038795133851"],["24578815753025063932441798676474193416896801531787404057885423540119392998159","15345217826770096700057416629054190964022265230203521265184756822058893091452"],["11474038475876241235293755293262215331654109949108630289257742927514032096424","3111635739271781999339302412421816850178205721720789584836330574697225507691"],["8368682390013587829022639412527683441618030567040631774838675082511797254555","11842587096628555532255749590753278451852242315828751705006952364667042429953"],["22548280955512919619275881493567752887870420380025832488711199038580957452355","4837702554168771327359211663859693522878913658694022810288041479234175203653"],["25344901468229888580696322591531129174302640936930296608649319731533949111661","21408168913853505558031459184158512239476081500562150305996232859941593585732"],["11730010151170612625548471646093814866240376271086946626636599967841176464688","15199648329793608739229436941828885272087617271332951042042292798400395109505"],["26721618153624287338145885518417580791035042605236737047860479222921976946408","12020479153161482666107220117153310261479844534777896823899063997974765046658"],["8964387020574224882198879230644991348756271790390536608622872383521577120824","441018922914122238473647433739366041318886397305480690529545686537959201735"],["13777022079280593514561255523990925859793541246316027238219744611112183920946","21969554496270652903956330699164675889420752178797449472942672812834292135439"],["22466466593474983408766592597054892623891106636415103723730810247711403379625","4055517652618212997616273953258500689072035166926541593608148401402144448638"],["6566057845742326410508622907342685403736057773178629466452626727916676461908","18441320071132235774046652818450553412035049419383789269639427370582201838170"],["17983056309130575712512355705402281555433000568588888413016272659160237942367","10927894326076781529629698872964359080336759630135777859367360272978709028318"],["8891025840158854667924074200679669714585172069566499026111988203763979824680","27358277220985888020288354723670276152772482998670449753839054540433627206100"],["1737525096824869355730749437055232129926821602929050430575088454745543784798","5480896905608827689561464064975842379694772797331201521132878190822572495725"],["10738758472551291755843183031702179487107043496632139011884441947199526737984","28032706772556745470477401871204130723678318139398887781510596632180541524265"],["7927785600212001107129609798066327824787478265435539062255475235776126529341","3692350861577079089034167470830480247277959298254232902833727158211733035252"],["10929394854282682424196975884809975129708017034312657150385270521127740085703","973615443005008221294255781396214228307540654137995494611212888471722706135"],["24075454869524533033365341503651085993776120019768516371712651005460254769381","28694246413994692229149228921635200257442889054849524081621119272247297115120"],["1855333193541993865564004811627640240229435570692942474597640729482612974686","7405144949704311053922532184083946413167897630290985804609576350939791338748"],["18441680399062440494700865260440396457534554755795303214988134943458102970144","21855046256017120187459581397459421309286274127594462209461938914903840084417"],["13842278670540701569419060509814989549112333039328937238404410741959526378220","8213486793565565315933838387248677810625684623564302685981489454547965605233"],["70671327594262245676653859066709772746479732734414205642878759597803206942","11306900041826198083751489226451191261122497818327473494872020300408564822512"],["23450526324440966034918881085569619294848512464042971804881804257320471040620","15920984582354111178992592772924706407001739531243185752777557097842979056413"],["22374103923766991115666221917511599796656394794023997793295604737706067720364","15836258754873406622816967494650034630973325107579906292865542519859085806725"],["21363571275383553815236988378516831247153855363167550062321327864818929259469","5759944756242925150228827550947152840648769927391871509669691239005430919002"],["26978577997369963362300013249059817813260587830291390975210223365518921508651","25159317237565554514780805464217868327807978188531385084172290258015650838007"],["14566287438424179017188921090835391185624685914082824777202412900189482608939","2638914825488145721389446230922600946977285271195666374523787468633732430409"],["26414030797392399214350106045026805240472464499236760119338934453048594981430","3393023034792432772750727010572101677637502356050594036388746378840196999405"],["2137041799056734322953802061834809585224263691688252446882987648273539971694","24898868304591203513212603908794208677540360906027300183449225747495556814858"],["20608411884492416069284766658927014884200890992146602062938924767784631310648","22585418844258127142647858687451232538410559880561830098267287135241033627096"],["2895404430164987211335445748649919934285676414372381738085981791680678927020","20648912471369362139651818364665247391470960905575213036442283322656849141332"],["26319985263055027721791826109360337604920042507448210344884211724978231118286","23369997166610249859654043721425377723869378601188251701244575003576100092432"],["21325768670613637851963718817060085377246032722433889183652004320128091698957","18477239291303726051588536834551348167107161826452411929192767034053476440609"],["11231044878888122399336944927666681524725214887780216114134103228871889944222","18581409944293573748781762075300800775158074052122578058576964343783799917116"],["26844629017481046947748973400629043170137978043741658933781022504394925274798","1850046737724424968727697596237108100879090935596442542575422134930484980847"],["10285527968261450747363361151190001292142201416044903687829556064862135917982","12037343934659544416812522877730198820740699091383882614086717610080510904705"],["5346052304457344866818524422049689081094600356608922120730180003715063572545","27730186385418631822368864564507828050035346476793877420867045276190163363673"],["8173538575353335556522743561082732420645033491053233883204506195347319156521","5757088718287765760420634078621100403019880951817519143436702998166738927563"],["1835299874220144807242454089243052969870549212811386303367039763950479425471","2708202290249211312358443182941895321225899218305927150947319395591567921405"],["20937869777099222685323700506839803148778035934539593259909893174655795602339","26644680637907618577130611560333126750978534418982592703987110320509895230686"],["17920242448464028258502073868789211831043666477491135197169235699780900189966","19113233165181419362797565782777634814052017499710113290290158732090043060136"],["5712679025476909136149909530697934509488631319675786395085739349722534617510","6612900391079260793673030741822883672853613547217473059174338314834611883895"],["21951687890284893636322363935691953439492414877205564421051547159281438169034","7593823877182770665003788427993919274864800751803998710304963102767751319670"],["3070803897082174072808713063111539027415131241531667118269709159440848225484","4441267935793793859036493688481432244689706846368256412060042172418943483481"],["3426308687048340749978425871005629941965754898939196463640937248732805490587","7020750260329096521584372910783518271342376004208609179595475119432135533578"],["8715501833159384241336088558680881553263870642797219347966353822091084971958","7508253467347238127258071643050260293673268887682055626889148644545751323201"],["27038324130567219484480603310467452487442358748382433652538569592863168655709","1559595368578111490844019281322098342168089000132342240988469387805745514161"],["19924777868513866511572461651609546256529855193691821125577355570106121414433","26946406733939869152016588668503444129984891353178701490192995439986382637880"],["440878840765802383688826089547522362199099428116400537793163515748562213725","24760262714691417399424343402746337886615404224119708647518788958666126762973"],["11631744427966839439003108444017478699291216447079411111689793241830706874830","4898863768761897905586665839436273006323356635628851877707124223467546819839"],["244415068826512986457253392889443875417933308314689929512900902434045384650","3006404419554796865269255042877766149839390641010235216849985473150823555458"],["11897719334604084838612515013623400253550636389631458791665499844376512476408","8623181163526368828103140136917027320512226943078073582471973404226478185339"],["22855548608014896739139400599932157932891881499595511514062727156714205603520","3764837720003994072287798996302405000796855300271296674330719086938761105413"],["7342754531104733894192932501127705950108402354722183389630811733544032242974","25068762706452780232151646781676288701516340686315969673495984240090309867922"],["23428425134607947646586674373081678904795373487163278058008476754157593713556","21740955663994480325598274871517208130501511354179016509918407561743837664864"],["20456329460017893047025854238828702186179726578144932309485358153170622029434","26690405047467764357960152099799669733977511905897388071251518064973406304597"],["21758112214348883749158648623896994858936192290388141142092206290978529363311","14167903509444621390035600939574857166307286269426952435951773783067790462122"],["12295200564001611356866664061574479627247144582117666648278661766071771680881","17873843299353559869550202050382443101217607544273433728340674242318687710520"],["24473123692169123764442470415402106500820496714519779069332280214638915662479","8594276662427194837469851990774025240306543733684898016057218734363523847530"],["4414159925818645374116521816219189484051640689474447028428003941193886708921","26920089823893618184712432901252339259230910672109554950123464318129654759913"],["15975090313540519162371419317187464495126237308697277330593431135844799817645","21790710285557723593958227100679514480220619860651980138391101986499606752297"],["11514771156923007815602052633701143506243056073181536740117629007555266543398","28162196601942948029048348120654540052943719086164344757437539027718248097432"],["23708545755172829165825369438290545823191260055494733630641160604923227321252","27828647552326496236677188355480851580616441641697671848916327035324453077188"],["8297368691215685637668705004986302416318241947975037973262929523533269966598","25596092789950075997439545116093610323261993962073785308249910275916210765800"],["28410535889928610970154381835707591852957923528036767871598519392401882143538","4320429871776067925096300763774615154212767946456362690301830843054575160616"],["345247717061591511709912740918835424670016049044461761968903263674155829849","16151750198427213533429265248562583208488034964993208255942672848783514056985"],["18213180139921211103135463167422583796177116811860653064715754589179956063661","21243671173089249395629743131338438666986367289837216806984520529936730673755"],["2248951620579134407295905179154944296506920901515049326236940729132601251762","20500134539298052128004935846907532993988644921388025025898567526721329656492"],["27179955663760863475041215010152191100945414314637334203689319166254372089436","27835476559672027650743479004401384971321388920508205492502785459844130967328"],["10258951186451620532559115403310506855629475002741086231043460435295560302222","28866386909899743340586488330835474524957180123767241093404841529252781075180"],["20966414204100224479595185693000710876344335739619851719262365010689215349384","13918464382284698551578352958059533726947719163077046469095870987797494385479"],["11319924741488064410303306483173594085152295723036650915106203243720626211302","9912335877294687141409098501575396083799338884907980962628776190366634428787"],["24938659273962119464458059336882641434949379052927739339239218935361286879113","25013653020043142661913085913754898888183605845175829736080434648548266958868"],["28359535014965678600385600158197997107464327696279798990129177151961872542467","14980564508142204489455136672559022373733307094492358200623433275969194801846"],["12023062192070458101725745629560633994485932680261245873855004335040044773849","20078961643772061344892725780885196915462775295788309764327537611351175620716"],["9621034047093240471524952356031216137251469932031623012425314978671106580476","3771066996908082936530028369912416809128972956062274844145270184202718050724"],["25262312708489901822834297193479877704429662242749450947387304950148907157439","8227019225737401740035615413640992745643856638734014256731845947507615275811"],["1736924103945500901326572524830994618229413827409116435384517241024661199460","3578855870268607913038793907994577816348622719110888055496676404825946228661"],["20358816602652336435285600433491056304594754835626276448416238333872643013071","26124849639734341987378802130048164476572824209475056664227918802293237473583"],["18958895564593205269006839098013274244043476818011880138242976243637347867721","18465774736528055342135891394769898443363398670149029335628116728384766720877"],["14253167090961154894669673384343003132533042845081947014771220063071010791017","28916153410593144606429071441471860702122658045908575695008250429294442492172"],["23337139090920889932852557941646024939658343803461672139623653232806133036139","7783540156329298146152970619820121301099636580283655510042890943896096627677"],["28441639236323816345610053929182818870266187711806497812805919862159886321363","4796375951940903157431531581397251753878742289721215800376093939979471087110"],["28264896086614323494370968000588013236007370044485789932089359715550754006049","21285259929143958090031565923878578097327659787834463048867732924396812603060"],["9878191141254835655744332316256663634046752305977074915768307087784575649894","5250658856128720721841265792823304731911293183603018086429048674390072215815"],["19004202186625928872291891981136557444310270873520972745082880443229507226993","16937682698158242019537140473596696943582458255392119848701056568111700807141"],["332975372949405075171681541400580839862664437961403559177803657590130164607","22517013098488582893791576496765969161687844969411738618301062609236737461573"],["7354128585434316707269828648399178514833021482311057109591018216316352088470","9548677402375610692894741903909038597536483633119599872731668183428923164559"],["746738500884489243244863036784853579387462244341161132792753818482390411514","11932558566565625483952097175673274265916825198779485898022005159258492179625"],["26135190954349211680906905572550140673763257410522175566446881835497660574563","16811805139443652125787122205423308694363807671522187579697885194038899285347"],["10223676236766071357586867461703742261347025065186830973463560063960977300096","6065750371879285626342053179733819993511548008753353802176522065547627041661"],["26961344895859848590749281628506277939246081010742390142826704753026726830973","13345854350680057710324862251958066579164224633835684130386951526733353860738"],["19058936050739014524986259627353511647271415739720294652421794017193668731748","5362856806639192858113093021194956077036715683670865033775698005479553206516"],["16284164015442540082543968789353568424408571639396898207623916363362149308752","12972557427436708702925621168892922012954777069493842617232886894098494091448"],["9712533446058477579065842251115130622103807258474320693192138355602675577328","24281749504637342295618026515790213970633300473800183577816252875919817880510"],["22741699611085425203229575043243463851107945777521789896161142927304301501585","17360595775652847242249874091259701388767852950449417454900021214103911730427"],["26887096289114623470653514461141871753149656396505149290429828707598489189348","2196381423808997076823156798637785247329522593808727236768034785032293632873"],["24818505903900886540026962940827817124860587025755724061800509554425846496525","20971871722790686129398279992492061247505273909510536809709666267710496817615"],["7216105675145340791987293502670625868480086898922869021271412200583306589423","14579122756039301912935809487659059037438810167215101073834691532877662858173"],["3636449947607727672221669722835197517701308660519871550119540151448703373402","25336169908009350191127517740022713909122788019971989419611744969278620660723"],["14874467165412051957032428858667164008253713340401232209750199459089598053359","9668151640492808353431780112205001517599149045637560257902279468953033529348"],["14354330239338754185366803990013129420143993789970545313919350511657766572978","1561675108410632162376604653829658459881797576088111333742721465973412346649"],["24924870721147711708710800754985972538687716861024980246749961485361561071245","27399738080938254972253386553486872043508338310387452547074038918428356612353"],["18762206940215925484249334630476345731810254401410280077964053968776774846478","13845399655320029226924498772180792979564409276950733934647405325834930979858"],["17155859434662761499409881469560374957364145964460590132484860322812204051873","16996763194753408628755649989407908176137935171655916091865564797133565773865"],["969596939436200705652869364001376636909349174274646556488956853294285266157","14124260893980761492436970020550954265015884045794940869278797174171967935742"],["27849469551649964760283533152146601347285300871677695843704101770911755990714","11448790198590311295872866883162828910675782910730459963676594745364776102730"],["28412582038125717010775320769831915292584249826920075971567997628962379269748","1681311836141017148312369230432792284514815535243778370341319288162460854469"],["26606526892846845181649038864633586938462278982624400591745096056911171363712","2539145640878367638020920149174219249211692354126194766356505708835018419606"],["1461002872075912825522023256851826634697291035373654204685246946669774128276","8212028993861696567122659259619655773312778035000102673593110872870514152563"],["6965847413777223808016749017216424203403092972088078670491410803891793270302","24117709353302865678932900143208568696219627572269528830480881137851905693338"],["25159467635694861198986001414743028230328551555527935201492348996745637635190","5006997576431003371409350595829430143961902568711224684552783304150349492155"],["25756964616142421138934057320709029849054449103583437068962175379779655318570","14902631301283021984613544257606359863640814895912723282269819421148330057981"],["527612867857996510392386201891981714126285294334346816840757977766805739534","10752106846045543126347367801136509506970859910055406481475206244719053706955"],["848335403256143468596735531619862926429497174173051427297951658557423723986","1080189537776449196912797263498248386438090654317583234382873011174785097355"],["4950062876759265290869954156530355716988432830055217755919067708455800636517","28491946410341177497789370090295276976644801352041658067747998169223324843962"],["22632186495436299424830062247198209556662260720397139435359986382398017428298","9161560946289295047864465016985545467305375468721925441419818047337621435645"],["3982760621564379095531781402663038764938577707673227842396984056928316510850","13214689833043744181404506443569211374071485104644824853949421384827960145203"],["8457174291257594633065466938001417485925696031009119036398604384328277500914","5856466609775676819575994188111758654097055139425369487841050749035842097672"],["28858382343838148120799246240427595680538215871727561547230666672109520443131","22087854830079384084068671634236516694199912598927069707103814752074343069254"],["21362652681400371214057604220543761399026990272815938942863229318862148212139","235281849551464391754390685057732894557477208207730916228171318918371333070"],["7436660743090962036144279343660238508298733406329411657408269049790324900383","16300059889607063694007415472083788140936982444438149169488545054472080051941"],["11179107257778615800549890652583297724050324560161475085784961029604072291184","7384950522634869936328102974650853176718299752130656196293544694842145876209"],["27995865170542568956285956277541044283101225997384287052986393472579094729793","55668176001516221263602428449179695168111548301262114203621747441765621196"],["9676627960341423574621363882253085928704032176080286804698527883026917442364","15323553550724355607778008364730661914009949864788631019776401901511722617620"],["23653594097583403469430350488574235582391680920523979486398724137376967136078","26836277867869921021136108731839183229204256838613674125484420256205262947664"],["5977438214271214517628433547108181060558708345197786239542323153801481694002","26902989509288711008232342868025542550594780347026104554979615277515829130326"],["25233639313764392195118615822671697369017818485509875291186879830629154781927","24188508910803610073833089771846785078584322963132517783938920508624661478756"],["24168093936429107517232607002900083630943273159166162137029116952973721119297","6565345236178512516618356136605422962857566308288380837202190126686668496586"],["24670751101214196141428219807675023549139533521044051403084988430272412077070","27312143920720799629845124497804059918483355238276571070616537017572367398563"],["24663152191633657455334652236923193855962502817285987761474166463360302352726","4269161845485800368967544061580651073342992144201568349984514445422741096537"],["17186777128977735183319955739758666462638777686223198332264929386189980870209","14393672525011747385079509644810405017406201946331797559928467962468505042050"],["28593312510264442125708168259919255195899582646814608118996876206449238628811","24613832315472952744603702507981114324432232655958653125880051396591981397030"],["1772220361092844719185006228747692736840673340035885693357505837722571092116","7814176938299922812481878457473021386001262720585394241152949890452563103522"],["25239285094939760592711603713864396958227477910078686987315094215294691567407","5515090616066742975269236503793195582891599471720182222773175899937723140501"],["4583241216585059399161008122880753767283695485997581766008502333511211579813","12823271573812856057148181838855285618025379558059208477732240020734560443964"],["28796519747669767492097955350076171431162893692786012265170139098086492464249","14035769199090180612740359723834538431535384156312625309385782237065095768652"],["12320911804291920402538618517667354887705862711421362946341954125357303898308","2121486430413531488359672658286948385394746538255868305464094656737074079199"],["12661383499367014743692888526761522230916087414713451517151453341305654220267","10804524087570141937699376052997863821414796200970232989594406476327006339839"],["16923759918522531803326623854922213566742694523116371428652633771020888999981","469074341000931641628303383056879111456761609344730656852076064759182192955"],["5690649201389286606772404400283264380703027833177125663312026192700486611649","1880971895686327706085736639586810050462662912902579822436445138069598681276"],["22375426137525072809285660685948179268224882100319091637254026690524985801339","22981619834721609978505526416185799676368315498808116026109761839056279503988"],["9516786803450236489567107534049640641650675776249620760515616417890097433252","4760924682772669050720799787785761119997119127819546549951682196189304821673"],["375740885577721148145521895979150732494479350685482188135273124711837774430","4158958768989025769135551577396348264602817647615239753934290803114498641696"],["26963495154258433178018547172728403668759869595335436446401409853326530030561","16955680242731631367591221983564136007657083794582329918958281884485150272556"],["11048638010196888760056223200854047193151940001968837010268700877017980580917","27490007099267623824205827167607576335338939623567472966618013398427003668607"],["21100511179542550595486424010260356304662940207219807822630546540054193763768","4437781679824439986625231261186939727550857329854237612044184978107446502953"],["5325802767901956277370185602699372409461170342025239486586895513218358983157","27064617410093745861500767507098831622593747426348131147603264312281748904822"],["24896044619522836413237676041473920104939143223614698735962555601459286877260","2305802142370330768154090708373263250280550773564831806992476617172670481075"],["19693496319950487109342452315422265599572418943116810459866196141077577882257","1793373052633829778257870558949740086386398447222101968207861237964763086915"],["12338808210652919749043181201852385885102557954845991554029212712395633925584","5684049414300272892509704810152412623617294790999803900807949789358058088843"],["21915414443177514949063837542820793737906318783611381733148787973045604363245","21469238753236617853160216657634509141354220399784907060191568770865504351922"],["18993188545638493354156727170701532193196037176858682464202509395630847641068","27243503099233947112141269183461693965723271445252011419576580015482403879618"],["7643347143516318765057932897007628777228173986183803718776958401897526081521","11753151397589225137185846374768191102052240017868358088852342201484850233054"],["27706697820026193839795861041694214970692398453540454052650392709949169752664","11767320938341798352497326274686972991653934077451040910322781247419291193184"],["10113036226077851796178687891916939573431223198017596248606046710883740777991","2571380811678717526431316071293281817240245892201989169950956471864132036463"],["22815349172922670393540599729229841024896951956886461774597427206533187087893","16960310951517367196268615529667358935383972530908249918415374023000062523836"],["1880965597827725630577324985331911467114774212548953074382160854109463405528","4096327360317334110504563858469095676027819619688811456186075024111492249912"],["25361786101787213649243429032589672364903427673348586096199236965205037220778","14797871093202122698851445573261698817841191353184516201630727594011941330327"],["12949890187420715835788589951956007604457005101571156738016669593622625038407","21269497145832209921715387801756311831168072895234250261559049688608440494921"],["14534900679506932547511610547614442231587889958458752158705055802028906659971","17584167390877216832727019873847408113033474290646807369955088859183069447174"],["7683751046227400473973898181618298334347477510127394294218290334186140349359","26884386563334693513406372396310693261109851319496082422381948126976027463867"],["18676374726428641176437027336993442293376144152340081372249591269888641132751","11917381842306254528788173983990351365751554124871044898902156562402099984629"],["2559427968636774126491337270470929396539606652479609724403007211190672179717","14615456896829563964895721544078217251764612692650191360272426497476999265343"],["13537053105149555169545854248700599717354081409248182898383464884337314109243","23286430215014213493608386237247119235669638127155795595259958790299250752274"],["7542232751461534931568280567315581813364038239674535711839528170894467306709","10073327813794088109196339461503965907634965150245204732449354056237220677911"],["16375895407046704926501987437589410853943232463434454936763033465070960590534","21728075768108211900747297545790986970844652203587391719878731078513511472094"],["1140425175327688034228068263623843383499072458798008638649381870550034224775","17874613607150426912580645319516312811149465232838015901944085311280444981430"],["24587356995252842478406636359746999328808118279519501236372543026218703991402","13080647576764115703121630606336962729979912808915042564456181807555197201211"],["15995017486822630927803462071023115419924589491532958044157204818026161708077","16163208069585115651165070681429168951498585072869368073498941032584326222781"],["28515813507841440691352383887065272106313443421469979718636106272062878690382","4251498279823452723839396138119922615920941516993326624331738192712654275842"],["23209033690188830272077597547065633234125342284293021588028058750554581063298","870570275840874013012749206086273295938462556227195726250060541089571045089"],["11002431303466789577107866252423888880657313337300249911353558748314519543710","6866666254166763197169686451750291933347602164248820475450453239254431761862"],["14485241453436445099727442957105141277076197385961532192989774308476525872043","24667744248956402837714700963120978483970706522080006881880021187951778730095"],["22905373552396032351110429067529771735081684359451042800674984605167429098477","13050577262957060000091798461648419163815683900776817471031698354882466566572"],["3843072201816828800927234549377961779350407231896678178881083363159692761238","132695693235039713567302601735737503727617126705278325016296619700291362067"],["8980768534811178533871845913314400504179169366378081318313209080065721760091","19692063123286091298433421139635243619320744363070614520450235925815394639616"],["15298414169308683022955568419133978624432996772949767283749453105187629602346","12126512096651613546700237534101192778323395852728449407133077504053387500153"],["8151093905660529378074560794046189785210150499939913673494497736737891535542","22832740038729341483913124035229414945195000078493187584242335253270389762460"],["17454884119730429795515354282886721603573154719124466521188225753950932920448","3571837447260197712002252839085098517819581051195777196419419231539562961091"],["5958648535521619745598082791399767596854035304417053590390196999724638470194","284117235535434696488427548650006183088026162491752784614050237805869948689"],["1050375469930472498358791203587707444294578376571513517851000584120266682585","2004401878155228344260667477860622858485911473934247562965636616248836632596"],["28250758187950380345730465370023100719225710303833034968595602045307323411663","2747884931541303086006399237782793608458328531049650612938568765556682315846"],["17460131751709305393956921745645700129970742898797572802053270172624770652806","14166335368143256260713580474197035417453969266806702509779295372973146601403"],["21487764075017532309358491950202288733275423430410323669556247754722426393133","27503683974280371725148181514388928221894805957173502322686521137402831650050"],["2771669210722077067284409481735441347291614133352547929416046548581318770706","28926933916296889154769994134930401153809471526014022495459614509979040488303"],["3934217455648062017488430502705213323704732589026103809048387938778663525837","27558500488649797974063527185907037481063181059905581437189661244845784005408"],["13529669591270773395044683470981119906477807123718720600155422114483484089839","3554457264256856752661741884725548696341674493893581484969413204952452602854"],["4450289245994703211761853483956019880768363500483691060854305806307367231568","28814563322882677326147842965688786595838153102084003466434898480836624622296"],["4606847450274516867873868358120668962957198025610467961272369407659141661962","5296505588203486270211495621401406385308720262410540634791860939893682607705"],["19498365602547645324281087073828349793537614936260092907476741435146564501159","15327356800699150935425952862230187063694087532361081069636081707862311831780"],["12854048300386384227556910978931521947228640693101236618648354965940787175950","12493669587399666299683357719546761049165809267842964161970890886978925371135"],["5110679123550239074637757063029959328096746086553030260321052221257809747649","19734355693868378057467475555932002742192168053633357868451625821369496590993"],["16331312429385409902624140391697831702533202923069052567845359476400631293151","27743044782956825862916084325064816818167303210316212849705438625328587892512"],["15783007255617147885558408473049200142686138730347512746943159436231121956059","24128023772740949703430719485459374812507876803679176407907850917147489219027"],["27793331163483390133296036486793645256331127752988670323810048352399394632518","26043188049954627200617440139788188226863254085229103773923752772249500237532"],["2951466659001779776262529401912048171765475807004585125235171192624694100058","13201139822365959080307731507444983701524154359392362692756747710774435950196"],["21157155400464911405026733377825951714707644897996716113309848025588996583570","8689207107365558516580666871938413080546549036055827356739049444325568398982"],["17143575825978013947010988981482487184320343667937503274635711245476605570834","16858738605743964345447318336744823269667961611575732432492756033587016284659"],["15657826937040168830970769491512660364961976954538299295363351903358000804317","26720619516323469865017979876449284276154048334260691969462463728926720762293"],["15655657311948475165902016192384609249742679042479757705941328748237557348245","27912152951493906003068968468065943902611080889136306433918405322608019077094"],["21443389148503732187604412376511567165475031883049612866008006168093786832786","21424340399696918583663620319138185747049034549368894083916448108100251374455"],["15829739936202915080819921286211339592249536002454726143074869730211020574539","1244797410851277429167085056204782757162599279918470219463677498757722106009"],["20343482883543311542637651653559633297191980047853363166866278481880250196217","19795768605893916890373254158321849488466453003784558848612371700483286290963"],["4908923574920068852323602777656537496134092593902786839840754027584181761592","21409566431916249012519995218420982452384770512927633052166782518180814567947"],["11920847977315612654231673356535640309147423235753166385085001036715938939945","22400674664978218505263349802606613502152295616961490783624323943761630300749"],["16499782936357117703294561006102861336729316843873436889819003911434079249606","26853487840895187376395274044268117699516172317862758870580015027877426947512"],["26451335375321515036546758756593613240127343124547096338643205753503642708624","15282065047481652177514943928140118111723209459537338342031481298460983431574"],["3261277987978627675594723163626454783855010006607159763600704230376283614021","28271511028596315616544643284860779080579688491889315212414999654411838588502"],["28933705679950788339034440562802677233176320847714197815333715196653076028805","17754621636347859744712874850306522549656365277491106351694284941886722552315"],["25932185700713934439349301010529527683359860435177499433830702664748694481615","24366054217463386498019567475763780059555253252253658233094583391933977226531"],["11398009897173690201568985743184925688268680453528329511960659792203776371492","5864119115697495774896709857102087638893240239539671787840365503383044674120"],["7249775954433064355869167916090174120540162600639346061916454990638257687858","24559194895649390297697425091601246915694076027667225122597205747184084360267"],["25667007167651767073810089042300519978792293103016108321403282317470948209878","19409760034038024121983893891072232192649322221975381980064597721646472979184"],["1980724847300159932245213069027392378026393943603682116120654422602427728423","22487644368334452206943519915103063708478415914400260612355521785215204102600"],["8889480042270392533797318469224538190440591640825323604689916896955956244245","749500544834828854520023908534299915416700828755812402164626232800806796908"],["9278378140404179488859721980610217795782283962748713414775755091507818018499","5811873066110901285860958912903982780943140498898571582171362364201406269592"],["16177863618634411081821548158540947086215211721094092030371189092730851734859","27850209888589009524743490955021537869030232548797484316218934468942568763403"],["19257931760905323124791524751626000332188488122521776831562697735411173157975","612353088390640915873931152091780286751972376546193690213964491058922949036"],["23955058237705975793440074699605090756112925945283390224395663587038823804838","28845449879207759258441810526476500277488577916805087040358452857145345236617"],["25259953590341904239552630523408109703312826082612710970790241548020581610302","20427455866390185822312884650198248749117613571349499333704483484827282217240"],["17088617296807575879829957017898808529720934818660185419927950190186774802039","14246872627368101220664550492471829777637570546644115893388711472875811196309"],["18534194275147822633013025937111403617751209894701706258646120629236893525107","5967153417690747733163571577523314614231147612769493107349397097260826173301"],["15501665863574735721505031561371822081173260356291500795150042015259272012339","2072244186646182440098298008740071816454391790110539503119103008735726849862"],["20822402728762112730929520320006912130662761581595449510414078272344549284064","22509604800642834771527515632994685677372090901594015963286417259082643582628"],["13677515851728584052484836986435198968229863395720509003239683552702488436610","27092777367359667002457525238275784818997660759312054246400946785754703303934"],["20024941294518145175553510072675808890009394984507893173068781038156846553024","4748402586071880864417007987983088154010331625388258292940628341439947746310"],["6102982278528779220659886703241967206367739357999761846502286875554611938077","12777271222367701802431438181947732521691602360573596172855939292424192546810"],["13122858849319559951959866699148969049024943860861107024799672710611134245925","24509526086620842078207186588977188604885864226726350236194534722104067347506"],["19804017556856531252347616353790354411699180735105697342620436895244201256241","21556946504880424526231761052893354962125717809292408686251038077137673054463"],["17174548100802574227792436298848062723248064783449184426996055322533244948393","7507459589095906800628255866573830913565359141317166326035331056818157762641"],["21778587878543390407277750864962488812942149031311094163510290176302199880014","16246130481878538741322083934580342660596472420327644679821353541962623142473"],["141057090158786693222324951707178699386890826569968945355539109654236388070","18294296316853628585402881562078473424095440012427929458468360962831001127958"],["4727829404486834530253662195966508221503213738054518928678321739949494393522","16443587851590829905299137542917130928739879943915793936034002152478867887981"],["15017457987619981966014312510988555091683784294508035844985572496906480289845","3045467862876401737007529800235816533304254540310665376466461688199023056821"],["22593023628841516150032385289807235657080595106197167624213785583200318124347","13638884848571839265465787474447277944807857440899671711015657684611772692142"],["24453837350067885859549465697223184589185161439468890661094276418500117434476","22654037778410227499253204424760296562207735082977456581214149144916473863864"],["21419327922730720059650389554939784787927132364019348985553213794139648696794","19718648610195617024736279247844266989106153167551349475784020555770750416265"],["11550243633268093872978441456480315431888815731745121722631616142192670253497","26754556963668248399527412892712265787557773027729908980125104605925452378205"],["3210202099994498451747211861833192314388214489884798148904083770577444209658","19963503813512851198937535875542185598791551357604843472099622925968806624420"],["10639860191953231992169060961031126571320647712942847839456449957502996890098","5342583288650659057537188819115658419271981925524387295859389844467433864795"],["17265897859588324115533624354876463926423817257874127682504224731998244282660","21698824346927523821500339242032447993034738005088482634562943146060295396766"],["4025380927573012234391109948882817648886651865809057110863140642797607781860","321925174899705789908905201271983363245043846959631015927810978803754339653"],["17263043366260790418485111021675927916610775593973883714606038857824454693808","7898026089091957963073962700561817608231024481055879991750656252531232715907"],["27486116864773310417947669827044511593837147065212131054051791479572310848773","5054323119411188898066361663106023663388447594776381258374618349526146220726"],["992922525932682953155469159276963911707043447581821409007435189689635529673","6372922678773334709524414195978404689137386441591918750471737883965967767528"],["24172276951884115897326963488236406533303321936758355084380984502916762984302","19728279342550598758192845216614661074013230442852306432700797219661103080094"],["20463714564741039333434068722882782074609397714753150550580490058502793042493","24372613244187284421291259135871254633638438963301385264165833087200244824198"],["6449142352900370755133229772400447630700399882449338912797402854867532187709","15970149304873824177332501881874432899588148655270617839092418418474156584228"],["8180695487704366303212492031802487753719442617730175589939835594854310397511","24831864005591136246223938447807912289024373663917954151135143501426378391787"],["15426552396570799376790696716222007542895684206463585103806323252496632252381","20088676138319289266906041831804914887513558342798110921045512190031605821664"],["22193686484583827668249632014487365563252322391276345258764669796004142308614","23383938657953141381306327792538584721264714682640591807547916435108855779114"],["9083205425415086592567979212215144623196928416568742776640991420349587465571","9595501161351080615861318110131801840227500209344627502062185540240789335040"],["12505133655871134391138906430814275927400372214493641128072723002566953687767","19199724783691661843246365604120171529065602551760605841656508389946116680489"],["28748301507135897419724887866843036712765531668995131768215460868434886627789","874860797219779360284151237069402220415239415571746399731163810250540713186"],["10213864071333695625828357221622945708143268556299559051628151858575134794431","5424559948189725784633821320649271334415278429484619321970095183231098517842"],["4446345666029762834893000348173507068511676580063660165148561712043280660006","11848258880511592920443283539353921388908571559967211574383901204148124983923"],["17827554494547719176598292097124925260056426880824561633510293867054729241004","9453206117768344374661481519920178253909047098423669668415921110201993142397"],["27268439407343242340329429751384503490095699894622723061139236968223798023953","12463752965222299546274376865294763715343703900351216426548119679273630751866"],["10502307074860198086139058657135943321440031264331046255997952455531165744488","22989608296494978849919956517170593577618471223560330077868419927138157453402"],["3748608615360352757263358204362279654102181927434968038368707268471363039960","26996856285375434455954017018550405394211429504527422079588684791876988560925"],["20973551867945543382110440842264612069580392682906053732283473394266994954877","21646446120400843872944387229920607949456209875699513977671690384065800657345"],["14621544648088085919187703349942511625447028414054730407102248509715983150381","17837885006053535531770893258257382224217880274763224911434421894901961086488"],["26621929295616761713478219541767523010216418360934239775148740394373732021321","17993193216320281558151798863390722497334082428421596308816898427403682624730"],["4563108792169082907473869420243296985291036661421140452956040483776163726121","4288691620444278111210766745183813295348208384425713187478017615411516335691"],["189360232741102553202840807558243568405161145357058582569133076136160612411","508299072023292794443832653021464949641109090738281791789094956154309631451"],["28625620460477257610537696387825246986545949722383345695898602279716848348503","2377331532883220711477578042297261028673272016080610012786666494955443498979"],["22235708686549287876111769029881120735756670954907443398505011691619082516659","6241488799047264535596118182494975305731744762018327118602059654028305212854"],["26550726699649235404011869817935096798970209107600938837502107212948024941274","7592860804741374612196992194397398440204282009678459763695343251853593362129"],["6082016688364508276491239517086812602667830060629775570603965790954531358146","27710586691067189802880059546352791273309601413808389149267788492723151127642"],["5382787527105582327507086045465879635503779663725028248810252891632764787621","3814577180293875270170560774722846400916387483059753301637007806278281984472"],["26163487000912324009272687325113461570841949935498551531608285474738464963506","19009264907771502042425693207986185600830310718106370985770827673684526057821"],["23177216274994189045942773143425106415899365978951273397814016862687162693196","2593907121223819626388675620499480843355840094871175054380619696730071853319"],["18133935048864143300740581334743547189631625707400396172638366747449179496838","10575549529572381544143829219359445257807352301844163085807683833911089711259"],["13689601967213833287208078985586749534086218166704854924756765326743193930319","3052888563298261326693531181080039758370898922387294850500008247401912136404"],["13845063205741998314907537138912857108826491820916104602695196825112237736582","939037985393670832222737008734633190340087415525595851339576040002072056408"],["20617109955013270729506527855444852098132878439174658795147160600391825872073","6739593636682257965745127571188260622618280774824296557413947030173207546306"],["23071040998586334669104261541193963026015063245406474223091000468563362265202","21616656515705043931835008918445650406637015295707223985022862523376370683768"],["28487360384194231181653485989010707060826330055352730231600729482164108741775","21581492802683057203428253902041221388050476790056102929440824230474268175674"],["19940382873201045473454063426999343044876851276277546396771136422551813704589","7038650318089492963227810759460317548534195988953203487246685886990007032501"],["4244093447620568219962070524370193058088551652259966388311925104437227993915","12089692533899731814935676449107765712485229930631982429018121729343371971838"],["19278485195773461400997888278967879828533576163207641769580461574360730476524","12551986234057201751886861619291096532638147721615831666077747343216486549112"],["28200166579548561439045428464483302779938442888460548560055826295249278444187","4735363522295552752121184413236849726827908079459601660996744253289740979689"],["15137120746391856402914301790522869324283555919264476099173892613946872663154","26836923853647111325043958886103850602411663525372184768174456510292491820388"],["7330516476730098598469884773657386001678504133369768899174683216333475187469","3776281304554633564045688809905241903839262455537968944091503510911803932466"],["23347491208573467995794352593194879194766183943612976533062808294978716817833","11397829900596983057495701487913996070813749886704565395407566917870584326933"],["5729734551582334737131938240299872244825851093769274561399974543192468260931","12393265575545359109671802900835504950408795971056332651917306299828437420055"],["13830664470916796638686234909191739084573118018990571022229698665275245643706","15689960910574324837052861984224721891314258958653211310030176455980943412657"],["9697969838736861399538946847443583802704654378978897219483665385475924991868","7109532213812368043898788440696081795341271011938617069297935183483140936725"],["23085692775286877408802539076671747005603316385397794828026888096810620216262","10670849509475627210689287417502689668506356224649433589088613984587216179327"],["15318758224346773998646862141818984784990381177149412933184994297859887366909","27727479748480477840144196773472485514574669433973813634876662034827249405355"],["18412870323301186140536457390395161821019148619938893569011439184242050568431","19145010272474204901729765939070132009239164052505839945748562148967993628099"],["2447741131737936701353920392040267882651639212330691866550505940606424832466","10607606757046841137731227224331134011650906202541078336553593649175549582614"],["4007667133756674758381867088974255548974010440645178759115879982381772501610","4635758376665454121450389490590014543412404333408368520949100781915711759972"],["6453475725413004381668501902455417114375205688827733226986361083891334503343","8698062334606408319064832016133154448687754589193868757926437500476235039932"],["6477417677637886584739112295540713498142114072097764127901863877828625723943","15819692166216238634321729576382190793530400498840009194346136662181905145001"],["14363058002308757015712272303582108256971309147272139376108182767392281731642","17815991780976382308689592288850268469622377564905547806102498395379260533568"],["3941369063107021879184730579440103796381880098077388018994110827168589446123","11812027260711971521194461384313027522813468460803087152152226284796629486928"],["25647280524540381910798109316295679772115473125290820584470422325943377555674","21215096310679577373579878169531384664288566991223445742062617822462378512727"],["1264336446927078047127496938383427903334059967388656272135757040591759465934","1018434253537962692416278887824288983451374820201491053164368733874818410480"],["24950352652121882789080540348594120102613350314016456183047697256222728980008","4436613328397422518418896589483709060586923424645405335074873933875374098112"],["19794656887330636464831755198750553780864910987022869813176472949314472839311","21659998234395838138246618721949460658608779110117450956968874169988134976297"],["16740247605286663909320627942634934258390147164850798179996843575396338306872","10473003613957106375081661363398665827256609866140975389074143508060174026930"],["21843713737535807953771063748417563283772534187726021388499023112393913971065","25847083700734958750518028872946131480222910009559863550504694563272387824392"],["28700421886152547122797527158602720218570698089216022364452797891772212644197","14532552157708151448727612171822620829450872438574075849532863957163757579250"],["24529782362822133488842180523272709360276067021217849862193455018538388345298","13802678862620618075108748679145631432062793091077847467319003166909310601385"],["12702839723756177684055232850114232495620754392933612951945563970006970419363","18577795103199828778503476691309873667004112890350238783401833331485916598479"],["7950798013211575946508608319069011194735070033401736136055901008968500295324","2048361154699567345853550168993684342768347735266890325166125710888053796106"],["19377051683099060715507735134297928682283159952048478007039817480897335775950","12073085909277678828287142992303616637103161628650570479434544827752322356930"],["23620202195704930717960410652121074786070777195784213697350908735376352584753","4917277480969760613979457837953676525790442828093160262809594273188958500982"],["20234035759796618398043853594617428952025891976516631933165233088776467435608","6119118313492912712755940993827954068778899171951741208759009497798188771860"],["21372956705619442589686787404335270904498174088872708220211357179021201127087","13713402398011937505363163396995757916755656418650445445226999569598750169629"],["28420921608163232315648662742258272821507537836901778066205501834494824406735","8418699141923759393975136239087773664014806941791105627219630460769857371790"],["956982393962244156007881225679988754158910245181265033454986274621467265358","3562267162174752317428823759343551337750829698582063358995315054330105556041"],["24706617367868012855450736135819222919636304328734726209145141790028718423554","15622952267329644528159515312337279839840628604734267695472281042038738962489"],["3417908217445758026693593713227835929823875224000189333265636639083369441957","19293022073259625012187438514023191335312992993597630311570740263826597540977"],["3500137289574276805002749854502381609528982057320198220119473931810852642155","12181369128429159111490879044917902903388925449701276413423253739766222889316"],["24061229791331514149783898555591003894766147763097261434779002925155514078014","5421503948940121564400890132892891247100622458001103682712782189558810613706"],["12497153981043090452494217214438223266993697061909790616955121391013900848129","4348602157637475964639649109563341752133000752091976783916792675116798399044"],["8321035511886261015092179617428885065800804077823770094437681837080306872201","11765673948482682887843287043090802930130912967875820916758469226858943696033"],["23472542460111652858970355553928792126865572257931763038787851587721593221227","10793128299681806560817738718278602906490399622374781948146628155746468287366"],["23086549309062802949509186833977994934541029613329223070641781145489685992115","23235327478845447916956256676940192901196375591066383788196189234507865798755"],["25987575277492410825490546297799654888836806191237306484442951710437764289732","8441579749419392091387056660050583254012678064058251536236021370302955015798"],["28443003508496739893138919327093798102197222100338988557222264826098356010071","27227938198354773339763656074466733393412251375261629673269894705478859762849"],["18060224619404281098441762242260964933282871664702405299788731368624887081352","7669486220147542644494190471627709326607371212726484411972489724161759378400"],["18187680319979226121728119419448332534117325691004796232655548580246411477913","14308440483094066219179694943824149600294377665274506144386072831357447359395"],["2746029364540894451626563631035094385798028758746256154035204576996636998210","18573049445929811664634540046358525971473602248381310060364297363477673494314"],["9175191138113350396799494305151215134792363598126306251950713194565165122424","27189025787922042526722158026696115601703885717757851591774086971442353803537"],["10455918603374509010505107757750878169786676353634995768406483702276574056668","24909698802366151472595025343575371850481720345945198870159422939079121494989"],["9913211995145533506223793667322754989056115782870305139610552286846991769754","1274180755032232805396684025184041426336307538789433697108029072476766664886"],["27467011271119520031224609278508295016526021665425704670713443838255430454606","10978529030542728638217736378951653763398957872264662878924112494226382352600"],["8548550922944736495911961508192364919481454472590171650761221993412501360604","13644319363745122157307840681897307669926213441871081555722534292364186304973"],["13258824752084161748820348286179763035106479386202488751012807641546126782896","12029242979354302518370916190614692712881286539833524671146350717639954569596"],["11665686658119462086502636731721277149631966534481163488767493632731142967151","12728938670938913948661654518750672122482541747722139135530366367118005801197"],["26110311178397800739120529616007810060619786521806323488319239907253537050448","18190509287123446972649966258172100145530209895881663420815553146161293097444"],["9778771152527402266164007464616977728093624936943168559473278622475592296572","16451747213047702805354559504398510536630032284471740882851605852926287131916"],["21599988722103910595154573282854869564280860759347818190811629122511538612461","27963572421443612277452174028737952971721835994663477413488419145755560858022"],["8358600109394565426215573437101654250082316854088683823258029204865712421251","24800813899287376384357696864033211150608132250872838781447143611714921956795"],["27580632251618822996971516297683235011997498979442696383535899645648361800176","497238922519673767987855071733795694624602638056005941560112526922640348167"],["20776127157712977292658900627718961672655343646140216119590573130149032071048","19590244448907180941571114789453851861315074150005625474433499442480914912449"],["12465129660859062477944775548487717389947712059324771739747497032599486624399","1414792926378970205954897328783944143586397489768555811681025613839407011713"],["1395847158800562681847670367108819351733413233751365847487104786908034791010","27967123183788196428986772726388645109026130855000561035609880010110920371280"],["3461410746045745937703690673798869944134364803693015858651614320203422919172","20740095208933241696720799551051245547748965870333586246801707306287958872014"],["1333268991514947707986058415472079819602732269407109245813609054746070279781","4970310086745619560922116594227637290765346882134709687679595939971109651240"],["21510072534315315291187778786617657185569390208311334757740857413483380678511","13403815999346416391042920808103951760898037961768918225356132547752833248110"],["12092885972304255629125792952172729647929899052575450054281020072318622864048","10488979947097323261052628755743671106552248110502747348143235525740088526915"],["10402166857357084629953211878913208956257714373306266746512504465427128679206","3735375415465042733946687418369493685928971936203073905185295139739178663423"],["6579821433352448834681352699414035764040858145827350686481042171905902741671","1922165095889238597588587187930231722567173233030680671476964962835530787706"],["23985967153113439994809004370185970686896695942630793451828507337417540257299","24630171988698013501472898810858155189611875100540558692680370206898729725802"],["15101124860175165251160387441415996448546844105557880194164246429644325841833","26399276951224428636123638579260565538077321117928542717412568604693287026263"],["6242570347839600334915415953491957502601253944452332737508083050448960524160","7464600565291597102538743216991773191963468963903332454517040004170893360676"],["13553612599011119433272471145898245833436948627372298502821212716671946534764","12898759473637361698400675718020805728762701400073177521205886537674391008764"],["22424177965240885521419209510540510227380324191232480635998152652783988360888","18439264122053665873387605348774698878130326574724009446801028605667642360575"],["410666342715254582776031679264721074398412089043633082977344324411380564334","24168277347220428374589726608101349957845772721673693735357151224250640803496"],["22854393996608790641492552107823735010630476685561262217546869748639260145112","10212009378639832523333989215713822773066403721818446899148550000277147817434"],["982423833007843393627031321216366906290554277893881604052599212966335317474","5887564666395221579037501570534855677625783275118030793360125424035664982519"],["17978861799369810527471230264167640229423366748340278634416423611525435752052","10182088801392602397221449758896208076345789043070283275906050854682291050460"],["24857794285612566088034882181746889944484792132055735705460205959143479207750","20960983714827812381742087770784632401182667733632584677402885871946991175284"],["23271972504485138364546929594368071823151207260175325333863730628403779034026","25306098252327006249500981665281708710489286372599093530438447747544043273436"],["25854166367580305768105916498946504170122437773892515788105834849001756757587","19026062385424552692193774260727351795082035308921652501458238955842543683970"],["10247589323754568512925696067178500909983832014022298166603695368101017485848","10703041942571980829263494175288784386981658175975684993737229882293161686234"],["11596737867664849351201116720711102262499235260732428701593700419570664186303","7568327770394501024694345098313780312206858668354388023588328969158561709977"],["16387177762386463950742257864529775027076947430928327588165900566655817514782","597467650977984904012600950779942148086938768460446658205837587934038567021"],["21112112506994006686252993218536522311147011476572173135019186573845610810788","2130811929988956334855772967905723225494808540587111857659503241192946713387"],["12711556089782979976906766141879827151231991748477167714692292597187650308246","4041492740524320891554276985175943154779936019157451493808595455873004814025"],["22008560047906308727319314170432505644970843212547902780485469584835742539885","26711045345272301934537824801361245706790476042722465211805544407877756285548"],["16298646373696498630665159030258490023523017547518006691155445744814091736804","8787125660194952645112454685826961338464303863116473376489645514170827856901"],["11284156945001903418456287429584274830890732509726161656146261746309910669162","7668907024087611955348916915861062747104016650000467618190107717884027300511"],["20546442970597226242154565011111375115261448557572425517106672342612546515248","21726988156035683615120670395493236844710553351208910731107192000958930784644"],["12713236804220005402466614880027400490234364195667092058033150017519179762979","1236270426492082088021578769152392204518058395733899169785641263163267032317"],["24868641977281861586643247324167462119805441634476671331875773353085123364473","12082777852759779028711285896645817598530454956721009887795348640672092539482"],["8404027740577658918234083070715151470982100159002940418839177336333737441077","18332833519684602672806934164717777749529412636318902260306830078628891925009"],["13270659079387635028591535528138448616805468743766715726695660634781701408042","2822734512298387365450546322278139763578759287603230824867583549842517870228"],["1695229170449379078191947964386728101530382939561469365619538832713705307367","11913422379148033529732804857549747774904911724255277048481392407228371418049"],["28763941727951739196506251290135853970524970035632699588556468116932799629526","19737893834534669374801206723072528769299316140826758337096377697756141435188"],["13858201221447150314872171389255768323967532766461599201117133475917711953375","6169221120460023639144790415086376133410352309677335626482863964633565509384"],["11886021119109935543603529595764754657452846120800726164026662332859234340926","5281116850921199042967127726388882626060331538990711718121256234429830712230"],["17461258267135388703814604629345820269979817809459607275531404362768001923070","5891650138058595698247592821996830881365457059929814178306570835194691048194"],["22957132542615117967681096722824028074406832341494461570267141624567093424023","4481426796121153476332389377711643481881374373015263338484104236612486866130"],["7125753576284768130597720539180441635404915260210417447979422517319672851080","6418783983286936656476118095021212244782355389396039591144932117101343362759"],["8024597624834028356614330600520621162513630814371976959709999197312864746703","2239761069910060110324503747068351388918365388666922450668835596134570439159"],["22446093221928416218475791328508345680499060349757161757000056390112286873810","23405287116241073760789356726900784319370438700294470256571795887145841634862"],["17038259132203843868299511778735137694160114216898750387497697053163297124182","6781401299696461243690006431665884947531200899892403364724348400875272780274"],["11920412233004570592575508361518163138647863796449669676060511131452341697340","8829727293165008609794240811949129464030275521776086026066065507383524967609"],["6808595203997196841098274511458582135755899142434881202379133157720700157029","13924359474505710059116554699656773406771143456480252043926601973554763261869"],["2408337735891696315979782459100896271928714789628592569884891290313275116625","23283902733136741116890869845680103303109770274723475236789706784921455609705"],["8701455931041697851413973735266051432619980149049774949909340246223882260816","11159255972882371560443964706693641622243419984181684945521484538793578436675"],["11140930903376598778510479340147637945347335242412835013165035534783371166301","10190454043431006983072382485976393733740709673045686773501365770555215120383"],["4624289458352639071523547214247180851368590326891000246330062699940472279397","1156434798843008799167086438162200049826664655511255302773761622696466726261"],["25485686375064779238782035279328744739584325122023574331680205597957916088989","10655372742979090917951137574117075360783573262540093267826906256835778557628"],["27405200929911057711180070937269560458221959677682816113383180890633554313735","22139673432915067927645094866544684876619574480707249486266574458654153960787"],["7888817108833381294123059967404438518947317311412770263385375585550270024230","3489187457984542316655959471232068604138424836828784232234978196333990286522"],["23623983480905793148623089250328994424715586541041397446493051266427895699450","24150088014180353306462973698224288827945838006786971186574847375688973560827"],["16866184765953040895097115429180988379223778783660921058306196840748403163508","17140350178504099648632094120132362019476778937219421915310521224379654596491"],["2943460438146611045917794474663381232171023195501223424513084877516180037706","16690313921190620226974527405207423634880296198091325426848985181747283642046"],["10530108748030843063318970776425597408507063426359331087393502680306883973828","348075754085188271222139184969146554910905483265331913943924391410815063960"],["27157039022622105335810021416068921456074724148170572163754952141715956401967","24391909113045547499395284163792242008486940816699397148478391420806401799967"],["26684697960375432410000164568136871226506848374286895654497011682843586383656","4474834033227677871101251783869849971091526433296441514066186638632932210460"],["15792975085857175318788476603020070985276933303974635600160591735314252530949","20897438147937093915659739856628286428391848585089554226984559272785456887161"],["10517534446353641192224889997474401591901050005656677867019227347075525544794","18707913239818747404586609442933929621108809863710855976577022780374694057325"],["24070743506180364101514238688842281646904674558887987204853745359258117025627","6732181907575079662641457066855024191908914688520525391829655462685119737415"],["4906914546065283839437690767069309125861078887645653951616383985647918347153","1807047755220006170311981815020544946644115448459320800983657851398013528486"],["4502682603168164001498315387984565775760054647329973444326716951717346364132","8045281384691312271275477236960333908539564100663896723745480155172756523803"],["26079005849586527380599914456852395747177467541115125764079089474716115034250","25872446065802560211800822882461351641307396008443908177983446816561730056572"],["4189896501994129980877040773464948595825585076228629296580657414974546113248","27902204948233714026259208159887594769754653945159065591352019079357865046823"],["12506391867143507165515733408639594298025485950264013896401901396380930289938","23519455055424054910343041652485906823208136075643084198210960100418217723030"],["25255062119564384678459359549490261515977897940170948889535018717799678140586","27988880784842886746813826752399340400318069337748134546874480999128148979582"],["25545634412671266352006315474771699418582038398286035905303049553028458420970","20279913279484375055611195248583804851748883788249784733023224066004344533855"],["11508050169453996111070366197498026875003415645895907907146326253188449066896","2619620288044006614655560839899015780235421021495111004533095983951349334376"],["23137197004055306910877446719188800677159803715380846951095505269029475659122","16522275313616793020666280205070006197097596793368553544571748485454159310878"],["21182326355244298140217668850323470757365344102045277944888546292781811421807","3479293146391795269717986017821141495514870662336061552431480065847562657681"],["16433297067891462030853411566864400419558273653034480774456315789831160766334","7996903273059767363823253025415678901980033769689759320958987471663876327332"],["5538177730456485363906654910626290222868611901790033012815910318101387226263","25674707452548337452432669880871285448751941637711707925973827791480710578632"],["23875265304785805046534813047070038189470563565051277563958495909968820990083","6424693588326229396476866007409838321381508937725504713453827804376371853856"],["3687593460298995670980078707418750557223883064157665965636049384656765400966","3010657834212725166452248044158316545468062858921476700877312069676624990513"],["17522491007574747599466360041011099392024365412121488100922916945017413691107","20355482668020438474204914098800091348995065396762203825948601365595357545602"],["27395031067808970284106716844985498558001842907371578503503382286990396206246","17410549943514701583155149522848460063382364514093996883897036393181297166024"],["2308544639739984663056158118289337662770892004390379954898042413977655337765","17443716883200779564050398561074467314062768729995457129498615375196762634883"],["4593515936060792812908364778790722790602539836918488012058466035160420151494","9654178170644591413179658546088162030592679201286510548011391669880367353773"],["4656235493838843790256758065592461983832358310622059689077366012771916026809","26019551485085235326745202064743163994830254953483261794077308406383844948692"],["3576244236451754752698435675760062573166785951193131855314846379736802846317","25078992444500483263464858942272506843674656728720858608468516755127019940033"],["27660697422058882697469549695757187697747844351420725833988596211590564559205","25701609094255361252252106092167549146200062234697894710429833992297138931733"],["4160018981348797502541344826989695147259792271814270389765707749599333724228","15422783177108218769079916057323518537600273033902699810243987425162052251023"],["11395267009283812832524973366995401347032755375953312133416878332973136852394","11423649730451590681899439900767381622706398493929857816432580000438763487844"],["3568077217439542182367761459877168257127053300696154354771612218569296237179","20175760708085018366626537582792956408635499712790626396156773957167575989750"],["18773725032965792221922400220035763417031704503528466969403749232629121583340","21160847998334077223138814469457841856334125271452089883379636438479203926794"],["882206415972181946836363496830836499011271745146263925434367414336324310922","9321323317786146529454153700415835399299819049040634103739017561810939986316"],["26223999360749664219928035404102522042046153867431148147399739958333407671912","936884653310804720668978966861947618795985237806870349543439975749816427559"],["15914317300707601921902675582137281048864278883560580347038933312358112839826","23641137606868151876280080246899176994115151677010742205116481452055670192851"],["23042905411714619296493305691635385596341243981809959036490533675474696597587","25711358446709151741308990114174661627970174994350533449490849737281267870729"],["21449051400522697259951493241165098814728599600526125010559999559658678728666","18285358686779260042926816017562798517852428591652352842769442516726316675359"],["26318756594302154612524722139355249157102979731342758545362380151601423320408","1513211671607866586773417603288849884638222572196721396830731930784206236529"],["21449009070317533008524150990234448288752360078720428006762915431482987720427","8779560651195640807761020395060777086678237695406558522311122754183151207380"],["20216363065911594380817519313673688959861895326354503648141721421974392877257","4970593578241958815392976447165774543956406042142921023130160752553625956954"],["25556862068979182958113386892203831243055089333216306154213459235647137856995","12063569201802654864432045803000415524032914219981973977729930935422922603893"],["2090646116278646506821450745225790096597889381179609109616187543646934303066","627693825204147890242661989107763675193172244157052892298642702510881983300"],["24795654758957327399878366293122254973285416972664181197696874408721997993980","2231141375653806711313012331536284142721870581856795342510860511877054732385"],["27712968615805433437642658643821910611985355763821349216193534158843963405964","22462596854954643023611432579732384519217715803808813849147220893911539135914"],["24316885205165971382515335093469084917197692143654291296489837951141653909442","3817720852653807018988252348588585131146262272134066478642066553659115615505"],["6912697242497545285937840056164306371649382591396777937315257855042741277251","4138457115945599007728037723353504295472860931548900482190506676207338695409"],["5672970414791809515829000572371636739626024122326477807663289557132929116387","26612724971492129590501044500838539472823106711449348757754638261406168557442"],["19894510699213133531391272546324811601858614808876072076151876305597920870833","21067257797387212629556399316913602332658625991616485903826900250930173266447"],["6168423003591409240472069544336144215336948039411847501805790150339129781083","4532008719061530371032823661808587065230906671650038777523574700534996722199"],["15083088229448244211613968781881198228591743197290119377059469923167661442919","15477267595842836997073812046761764679942883599563136029000455090949604313771"],["11239447640499444356873598988976503922466317513276162697930392593785737030025","24572994841684732210736311225008743637885065957367456765191048882562529405445"],["17507361653032809261900233344996972277441834548546129488811175771180947629417","28504822314020122057145219940655463673094470556019676923839619864655520485421"],["6553347944860245490270179033640961026586257457803157802941527814176622639828","6738433707172599829903127855644392161395071922669285753240889934058053300047"],["17558963971890182248753759078485301078497682617031681062705952335938613594902","4338521718696580520209345785190826232654433925985877617827905814427709881468"],["13514171475677926622027393146286511472399368983101595754655118565271820842002","9289055655100919181714580191000560029317925967811986776999285442643530497426"],["15825920046546968080698349048125436168124708562020706318889700322585824277094","8032211897591417758217911832088748302896809862942121366154947742191427458903"],["8795935169872548359285596843537124736229202475826125561210413194365712122270","17473686698245980228002191572778956042861454518786917954366037375221703905471"],["10578774167145438822662574014463564318483681855466622965664023392384743341611","3639502909132924807205231181223315523216162017546533017163597883039406809777"],["18006857393924583156665926063290404277539346701889990390276575774030001656627","6871382950385761167862238015940305359893665346229062586039641285777306658262"],["18275319502336347780797541104143509150576963562815110986144543591106009875374","26844599147384083699279210903687070408437321748698667925772006514338998519710"],["16937316987362861827222296503878502471152570098069442880781588211994546837738","3754684781984855781896384853981543533767686163650879831544898103598671865856"],["11639355757984133829681516132378297142449904508789606904731927821002668018684","9495729633648420259351417624636624658953731237474139002394996209357095679375"],["22952375969132797055568926563338743833597366585775754777691657372807746687515","20053071329675122702107713382309493481877600273631451142855376037778614768025"],["28579073071308093741546016863837261663847608889704497974114065712572017571288","18407371761167360540612803815277094704676443316357284587598235610369023452740"],["14013232172916982487915236035142405281477701832209678149149477118033897981997","5295750829593891340064684075831801569247512147064398087233495639604249650210"],["8351220863207763646847676609912543205499885213481637978451969850409193598367","19668057488631457282061329924357857731250808151603761938690880258074793091063"],["25998623559851247433353356501718835101468474460860144014354983026470555787806","3175205890182765269346903768003339104615394251251391090716711442459389032647"],["27200714139407872578429164694962634032158874114482636686157499392415938179140","28316992451225659733710712982974964920745406549991053042299641089532868123827"],["1824090750751961583230990268984804565495503863813903254615968936368889517743","18234159044270617117325919997370014125297691224628809520296286310532593471693"],["1185970781876270116282898572202020238380123034552131659254621861790020422230","17915078931745227170949349180726374065040906070205906596486651486596798013607"],["582355304579717848896748827612741601914639875142588362677304496936633923130","26500039470797497849753217736898319118645917905297163800741230041559750699496"],["22030942623247102864640795859518145162764412676658751169664685689126073537756","23611765602402102835272166596949771956781811957431629960675621681845146536471"],["24568855122304808895739037565190633690843696357382751624474066176332196590336","19205158966380962655098498000963312219611023851852887089412965393556615450860"],["17355353564187683384793679529242900919622712398022029545357156977553407687598","5097588378411644612816143287741117334908144233490624404942609256211170278743"],["22568182260051213913143763333228873787731755902254828983951007394810862120933","3731845039539761547062662957260208144158647764732564703188729203921383111060"],["7447890475234268582081349800988479903147898363803046064671085000579967187147","8233461322072343841785390039736689090532311275572696954675782396946233535550"],["3227977683418482378880102187129301301943100401214395236530188915290837460824","26027868212409647507824400090674647888524291015417365016320711871001328439955"],["6380531017245526609782667587006418530746539184625131326234657541128105067405","6446933188153609642833721739151806114114558134269934262705026198596110235202"],["21768864438438676224651683333116980810771701939992602920948304400719873282609","22156319003845800589776551651701738270245655214556270476870197610942595144787"],["19925575977912986377316334515582497682318623066377802046008403529866490698205","24519628031944016931952031263873587586977832107778968171687388815876111753819"],["18982121810368881548300546940011906221468954244047680008425634096667851948541","3337054000233365552220300309285347698031251467702808097197740475101512448853"],["11540322027972578193557692789126425611673456017186915153102333501505650732114","1897431691995250286374637981245030663521979453058689692571608862443318440023"],["20886732028375931969218576372138226013381818162352098694886012908668613276994","11510845077548292403357501552692401409669871911441641285556884359461882955384"],["17107108593112384560145240641874199944184281330499182280030009016269384358545","21323537262598590340857963049722755768635246019538051015217420500874233552703"],["4636680538535779572945570707772219522590682186362859182281743427913663675279","9446361023404374277646317353833306118412615191067246002434058412393152341098"],["6476485461906972307568512677958384926331768853074416655310248636332622468502","15745899701395428328372893269839715579168215064252805967903378117162467074203"],["9129220162261843953894942134174371095334796665207573990115893673713006473796","28446160296878164765622308154613308934483238977439934928288705448524738600194"],["6903703056888587738574872037252389769893127330015809068433631351602754820196","26897098576492005332451335411830871777261695505031670344845169339878334532843"],["3775539280786133032256971028225762222910106632608852127687515316101234584285","5115639026843818069282712137403799637543060252461500898527649948349842063408"],["7110344575298124152433960050755804369349853081225609360683590238439704623950","27233606891219896955839600600683518479275574914777643171179810996064544153346"],["510279358826031399968751455537192251917293016403697903009916398809225121054","11449340636718681629193451633387099483216360038484680783389799475912885648805"],["15716304981173369885405694972951236818885751762670861916042770312527986405029","10020473443631673387956361040286358919115830496847211343875633634087957892329"],["16409376237275883990864651956514234023475687645041201167398757677305990829191","3158422409380577196541375260424739609183519387763136973728176065609262719078"],["18201139195632000429262228431015336376605041149198768146223350714537516381637","25292399331174231377514099754200630486332422996947540398574388570293804646473"],["22223233090529789005944687451560297781091654638241795402857904629282360402521","20902864687655395897825679282308221981505876747019632669094372563903003028563"],["2959540586441906206349419455286229394503023580356425738084421926238211624182","17092202651469476882269253930065723112788662747013380684300154250600788768448"],["18202180038168400668210462494487806213518300643271229024729393114177620084014","12975535365858241592306050842192622924830744482558912438642446343462254533750"],["20334693419580967025104984132495934735374144642232495250079977122493604200554","10645774105828824436552722706826856935835373461563676898353287284804623634644"],["20882531941182839609906437374868753775773262540427402011983151668813508074142","6668934840571717629354759903800698035664437036878422332550296832923212910005"],["16845790472467567091171725420425742716313860468126893961821933867434489187559","9003896556966291722278468984079393237182096625719546510373202152453676525302"],["4749886987928585013528911904089095909891362807046635318493454532708878409927","13673595087527152768518468586646785409202009196432040432488933939080434432443"],["24474670902862353782093917405897709908392817478369665819426121356690913486117","17732274347744163024157798143689954547198458924561650818023783137216173018921"],["22890722180297200793591938970353086075186624488620940261327999998644947831201","22501158137237155843166760875655272164868032131042141644723035828432233950746"],["9684092357088904386046769237842525964590128304931806320123167667681377087329","10895172815978396229552120939643456281839294460408187949287367811445255410392"],["15119486330976872448520876226762103767075845136777489760307034001659766571752","200436414769758696865227602500863787705377448598275515293778934024998309971"],["25987820795259823461719995517922767163499338120108817821305515517483271728065","23789017043738454126301764903895442740112504190087056455482488695285390312740"],["1004820274923863001755579861303779660282921549555641426131180130696956714895","7752657735590775141113761572052674804365549971357959820198401288231051695617"],["3142364519117952024697820665901147291576603977797590166794780615872750129566","27912402922313217549703773716525500301718481046784214847817603053294855707240"],["11845007961739909106030419871300798125442038808013532770308880303184632138795","13288472240031263750777332927076370990487654785944050760158777309261262858263"],["23000047098083163455534077350976313905923312234052580923893601599669780222350","26237517736859996700604884592547561081435055647453254877275405636948507240851"],["724575412393340024521369768225717123658023809843442289029942865935605649944","6146820156720599017971628889248878064975979326754583163513061776438154743465"],["17931868721143301703963867560123616099632842383242522920186755803016523670407","5381326306925841312242745714035421479379607611319112774448322906340376614666"],["6653411294869939698061207213047718176129743239329377102206658128965953750806","2695915475628799403381150731352992137353301842552157267679547406670117757489"],["4540867604729289879458899114034029223650219429889416732253226935477203806217","7078280817629871093390303036201976784066407477104675771582448888425130592847"],["11385138144638556227995370773034568630035180405689308446486138741209398025457","13577737274624169901543268844321267794229656565358424303620022948252838001646"],["22110565778697834094808249136931931235814097238123980494582687777376291460207","28387862828006123019172412486085884793829279104804606301553272576924438287177"],["8289337932069468564819987001061661177804024056633434564557658874579722414073","24248835110028912716236803794651582529363824900973554645657705330226322835364"],["1798591003542682555903982773983020437799247948990134296030592807084845997243","15651882750638361231733675107838226413907118191296342962274745712605618380048"],["13180253524619267637093818854648995559032835281689634881363034981324964117185","21126736398418955716069140800389403437602850377380857171412089712995867127482"],["18777085163524735650336104537794813087777408305240649408904385496735287150047","17311078462194298238331824094924848930034260596302190044960897148520805722257"],["12443835267856344270401790851374408503277448022774589359140636829100224079624","10487839396865424993316216386412441629914774360282641753182450572558353782144"],["25187057658298218266616206682861317956279212695739759138771092485443915162257","20244286947029958026843810294041193547475422846901899810831830326447546557875"],["12105474644380339599570359693240351970861475116893292930216079937121840980945","14824051791393686251453477801902262278958678691802848208030383242158396561932"],["23631593001968425700349330176092141632615915725533700324528295943462225391661","11680451633411068859336665908965278440681657887619489287373387065124330562674"],["18494716470486028327819028436995308027935272530787922415502969233301672521507","3827465509703415861919377495814368299848313656980909120417289357148578737341"],["20173041034996374735892006635434381034774028854993790573798913970356219736765","5032886865538032193556753052103341601738737555893298825001158781345534692004"],["17626874324605175806114429243017762960708987991064993509132358500413156565646","14075250540970386253666436325463353674948312241047263481637747295058852475229"],["27914429113523541990232299787683546134230737467791777899955898862197832437844","5404319347343952121761520810757701138801138228985756947314302863114784465965"],["8002767676445592535998656807008243000155199489959401241854209137855024293700","93654537589652956804106619031926289400814019700510191781011343527570696790"],["18295242067835893735038047882961426446302148296478813641262147362996166934043","3863893647740059728572668411355544447671626238941091901532392178784183945442"],["3483238065427905258043382506789210433939447377373155978506557077946052696568","20599361657002232661665612103753154256262402254213607756805035611146525526371"],["18409663992945073743614009919526661882238734773821142016384942978866559122138","22648095287756228502453256902577783114610273748117262732447576083958636655069"],["12368987773105815030918184068633185775567091045371665543277098178217454711741","14136936502711527554825242022951445898554517486563435042687961233179115729252"],["1995949968279986548591903901653883296546169786220279586219792364064302098010","6537552830536260668265369002668645328548101121617299130612387913333983807869"],["17560389440164292799455629241383544262992478235431785124619539890002180372143","14850596404818792161749574951237743798196620481375152928122844530773884560866"],["22018467324997334901559671958552114314987728495047936060123921290704168924119","9932185720098598524020961433542053995398555811253400764362599276291667172809"],["6655855288318603310623266782970237141485431898795549374222966607899684634369","20943693408335824524197111058315913280674020372584435034066984562579748324436"],["15405059529284834609566438660777990716680256420703398240739364709910451812005","25561450542365474089901266659257397062055358617169759771974818033166737384367"],["14504947740649483293894751871071637624843648616775307960916026404777449876221","5002269994172127356597198272610817845390677004804459850789614014045481188534"],["4107876676578271292073084387431076191519169469643455659903740015719015897002","21221536310492073187447551737232525438279643074133625033190044295646120373032"],["26344850917555592938565571418556159018398609316183780904014683466011434642673","10199659205833490746691688906874788149715398147263666572054007306982747432826"],["13290473071786769189047624425728064965240771369277586500639094430988478862750","25238986247484815343435962383022691177435007485620120177965260843662617191004"],["9513634737411192972100364337658535396048574386861234862877381425598755685011","17144996565171279953757077901218981542165004400200690018780990662089219698756"],["26118738870882728555317401018047546603699201832248454356379016558027282139047","8170545351256226421829954775007218303297149651344306433055475729193654605842"],["8791055072601922180402980819420936384202580643540288608642303114991965268037","21919137737250673002554628838872358341241254477865981857915557753129814154519"],["17728541555435009965481394047094391584661396860257574503361488590274445795439","16270547111358377788902743150492055109624356682864025605738036795676403265967"],["13429552122690735926307971764963028907169352491048294365358071686480051162407","24314030868345869420674574943741243193566868514994997169392076244448195489137"],["5791856905282370617436527300846027371613440923710830234128991926799702636170","28246169007252701047149711194803769288072174480423935757063335274934908990606"],["12377871386687026935835638004770844188124411752419571072548396512172620264580","23627054748215082293977821541549428890381930234015579877244300621650799967020"],["22069086137332612949757216725996261938098085126869840274829027952085231542416","12245548991573246987856983396915828493840658148423384559330957895467582357569"],["16945738634509384805923335144018798644652214787549054599782135605167227360100","2691112724232935393455363591907805471778531512477488199359903228903703740645"],["22914452255208009934882779019368588524562281256582225814185513670680091127798","7734869706425667894855887667999173409592460670056163124274474374146070274290"],["1160116105504171857978013704314644403478242645702810621036118546137478804513","7229901712304202241893714820799897455228284199815472669475959147642590489016"],["17109585869899710591477848956324695229272402668651299740253137019968628965719","7477328193432527862829383275258370900661648171637836598701930164559545984931"],["16529955102065487874982487457201348423593892208686501877686895395234912752007","11180789118828920218246428609213320635452283299365566126986620488384676086409"],["28702221709058826652134049483337247162592809136768697363537916342445239097862","18483477882972991963799959641185968975442141737795254021109082533664963736509"],["15578410915660942766451666261268689347791842377098805534045936732340461415845","10814714061818172139780205057401405506774838051126388199967627500059714172826"],["6299379367900473623337791005999503934405092222751628097903165704329184378148","22083414664836103661876498556639389392364079720964692961422644892833591265387"],["6446494419242364364924376328840335055951923803207997464954323920895433627350","19387756292483799126771377632736808253644995618436029647684457580680158834375"],["10066507245757145337624485027453964448462774580088954489291626300415509390444","7815553596840389399012446057169193180366842398651059457159172324736038246787"],["23621559167701434824068396710227742514728896503262448501733279359776064210465","16997238418894438728403262073547151650960478809221544899053747347585229957075"],["7992261698079835808512717083182969525110632153372487315405692424363042831213","3561405309447218708096272248081066031953811138704584290444305359521727337943"],["20112353303902955485138309451873963592156761313182846680190803393143599134573","21754892715846857159088215810331369305380156048371252403972685112627714378579"],["21033015434274593861725845991307688000316458883262072951332103665703576716277","20817113096437920752406588406461158174807226764624826792421179600472899717358"],["20972601962482328481747792403890702503316604055066282370157644252221402219261","26139463395498536946686970281526850340231805370342369047158450957195546489864"],["16910381454045991089518470336602625368326152233458631812868613768482807008056","24014503159048495445439240855652122939603976184638894550772328875419537847335"],["12434680420964937222694204434534598427248677166285184900783056993769137600326","3583240050989394351197856702879378723738814603686092679147457407502525112502"],["3456043863518364085839476206216636962788769151956372506748662000148194465825","23251162797718107294146322372365052825349779130611028297173552300364252160722"],["6147181300305182774416953305711475856765054378037793704020631292875334977752","27983833202932098364208196443478250770329581574226430203534980936330472113659"],["14681172508551117372032473727963141156979483073528790674305888217308399762840","19471454688587373013342308973228570982758229919976429859285682975694510332912"],["9727608811187101266461383932351206697849577069517147433807460863696196492814","23329792096650974500502265134447279900186167055077075306546121737451033292782"],["10792124479615106895801511267326950864148529308834168970471029976591437493990","28220960114888234910172033797339237532984262461139989060720532449022850238659"],["27071971302956313256360237317052840161558656155280475497523380947797262856079","8406230653556167440275718030766009022489771098610341716949874750155265395895"],["25903080512552674077956416597963112512371107469499182344429769244842567258317","17608655533470917610621303815208899610287507603226789841721422472874610631206"],["12076027066876783294490126025108597202482673278378356779723552450343660858234","1523219873645803643561003369854566356763106598133815048314049606344517533748"],["23755296431456664055922426534717171473849246204214391648385524925767583436927","16450256176561108673657044955373582249525767202327165527172778839505833146978"],["1431845439558994344178270484284240832543354375759354506973092599137434073879","27301168709189084205892268173370164408185300821645154365200972573454974595196"],["5312845761120160425898800695623521346275003677767493872003779598067394800872","20602416865803831065984492882790129861880375952196079974059145772768646063391"],["12597601970464120258437612361435027687633533452468381986369949232674553210635","24220265625126876566551965912682286865293345214134919974880691641377340144087"],["19469943231464839245773543511874895397629815271060209341954912129842544217172","15245967795648976242885215040622263820167613318693190890125644617468663346924"],["22598388987497148320173886575358881337177283749455509262667075787855208920467","3739848920043125382865066131198536400145627921754514659678185286344521673956"],["3927497729431022553273474929594810261818683861754265951061476726029878650224","10929877579454283044267039305200535808132616586178948540613141756901376389953"],["8537833758731236025107530795706616917296911313908514584353681402231273645783","9046386860877260768526026793616551138025218966774259970069441294590793497192"],["1120098790911758781047629297584507383406917398403206297725995282443469043571","5818950984998054315502405876548818030229582401654261301671704434089654383651"],["16900039865590157996539695576384280952978625650000888423931413525696429462274","24936325164862788212421189060943172889471830948292264452860655310082761316607"],["26595907535482981837937563385485078414921766358979888909747228588540969106671","25691700454556960494012693043159176886973811971162181761298344567418615090066"],["5146102336777480684965820340182652212873588092135948965251212505361021495600","22920004679453034494557610373676124766531257282683861066415625002615738898923"],["4297684567482443277147255235084089518452785969821653693517969712113641451260","4981296516179859939493659880767811151216607450389682395469561246058652755971"],["10380434717119483475464489093242970143653884979638043589748745639893377094311","21304830830874260800232292969069753652416892761228479502170870378394458869554"],["7065547245435251678506915936904211872630598987121035330669548807391634940094","6839511699880901752023209774619994647625079262619538537137303367544295539572"],["9965303050274064615507080993644615909983609694210598788199322139980840863141","3267619815067213288953041099738449503636520783491988100172056814645597490827"],["8433417845410078517453891413932864010364965504037021950156385791598561812971","21373641139574882761051718073364842405078643264218091681666388908613919093340"],["4807853132541440930156961026368226547211949037266115868051411550358567647006","22724528318571258385136211872089108035899569568227578982170242850199533050503"],["14144266904294228936578203951507738405952983430154998658838521708282106369116","24534948465178199779944646422761454734485406619604513049341739823406747372069"],["13898668439751822762916085577494841729964683125969255242921007033899248272695","7742656464662120357200107278779247366665578437544005581243174649517125863082"],["8942445282207966930961644296246697470858721712020279491692185199309354202485","4322118569287920001463428105278348114830114407901152569182553664516111767496"],["8097437921133703987924062448793227598905165575592818499796712754729586043284","22250164196437387516958695346157309077332265453358830768781518090872600876775"],["17843134481058893268994109177593350515060395767353774869321864846263068510367","513269925003851535578112626013420562756105970627546831780437125636333750135"],["543806652694462842775930308226830549035000467381535837137363046698331386039","28278878166569893222590618523505982381606303159466707646138271635614812122859"],["16641282142072012215083996192666584123376674971026837411027688874541369496392","3676775055801739272546934181564748150128760420024916236625857737888934532418"],["518141379074345391014322244932206099830440887545291030818909414442670507451","13964440151075582955423749133665278491683767437318638863614491869632672270106"],["27369557512076044309025966680039176279606067695949303721888506793297018411106","829782987976252107087537853154181686859300598847802871216085132096558657215"],["27500083731181610669614783954443833554186450822665724167543100239397456944673","437810300577425011720848274006621968096107432605309596529979541963300092708"],["19797735623728855234485586561432340953481361562569577133825577826418399610193","7989096040489111447913505265617968253193854133565444957287285646933253344041"],["15670374032661760647243752341903338766507843690383182350653623523987926526812","9976202832237641314642805368178208765680455959001895474157310809539172812807"],["22881790837107156200142491983880788515026148850603403116333485828097524813352","10221614357624574619858609496152600167027273217558428579698607062809964077617"],["18931414839565808571921076166970431542621891174583081426140736283155054983111","3167250652605485751338762963084904471996589199802804101633315452152742781336"],["1057992474712783989715791064263990750890185869654138793021972565635799397811","22934473487274521882569827995478320288158498307070643492008029388074409371536"],["1436694133067301956015942960520572716199385469069113619719779516865558680382","4103009285001302866738218293743875546698533251205828991323598182373351559233"],["15252736782003221290442531024789385927583839567259147725364128170451404725592","23808764303138880723398726241327961961281009717210240490447867176739156854951"],["653523056067406553835738428956172986099913162536263366505579188632914113714","23608293637080302476172727365317066218750270087449076566192627941809653909875"],["8734759145378860116441927557634158955046727648892071822891117476538089440934","25955580687678935526370783622390852748676649207981042790255807186043337041798"],["27730461013879378636174414130932393023845890180346863859623872819470605820315","6382798096579016394803836270725235324612438870360058600886988774957033440000"],["17458054407658856102586559252796944137632278667381363207464959048917038364278","24860692594373706655471031289548488125410570016335876779789209851274534971325"],["3397350790031364725007368142398325614577371134450058018871701532903188562791","7077083287411826040377926109439268975711483415416515626539486122898769715581"],["22338378284856898715959761643528152940004813275141360994568930034197762222172","19741004082436997875177591421118795464662393988080895635841821588926175230032"],["17031684872980937910746411693024063188391696753222472252102680426545857457514","27909151730313071325758475036187820970816070894761725578272313830129227508238"],["10179452502906469738916656770932698335348978751684428284172956810355343589294","2434914119701079884495301551885113421289380506611290733738882958753625737551"],["6848198060067541888127521994083814955498732828123310503739110816684039732404","2495800107889279343167277149733590953784975158189763501363450753275438625005"],["13789796954938481095046354703641866793239333745034069286624899906318277422444","24357606275475856528276561083197065452223740593080083719797638520410092535461"],["25445697841209226195424306481286822748344469715743513604106589619418507370290","20229010128545616626040566534631714667649260311888288569882358061703873478137"],["3725974320793874239227354914498253986913375330153948726155045188480800962809","23887026881766721020718135707214929674552811391319234270529907999797707652272"],["16176834397359153616954513482778996639140145946060439571607625871437405398575","2994797444815755497900198369956431322701302338276238384436198400305844820259"],["19659827566521639397079684294762220365303665461066204259519895758247596078730","13906638707299757752011336142982069720570854932639970885321842776986442106057"],["14466914022665564663998401210449985352776702610939791757925849816473537144256","13625437459343643121616098494153127265664538111482304586421344561475484535909"],["14056440331229076207364431755148933946494410391631338053483015095416778686562","14128360815145501686341115113710684986529344219945771156728045629055852901871"],["5289274190670450441112711778019936098815502342122712468133231883703821157036","2459729217524352593899492225934746561793830813340255624040649854146653877755"],["17257124926039753358930533019315464563993029081995018540696853025061400816906","6909444347474677578159893002878552374340330796186945516067088318545106921792"],["26519504564360552679603039565945226851086432462905700859255961492544628111725","15303355478185218863512478711656064532599029193722903421466084103985747794547"],["5377954451243825122254099347755493130531487746606960422623094436335742454358","25070895817024153525959891712337646067984010568705424871875105274605256752081"],["4156349702395951415467074562020658308823889139704663392929309862493601279089","5405839740732910083544553066411145656789366289585891218337946712770470248712"],["15798611029043369969548214077114012579044068851979929327540520217246691289465","9896923458297496033241650419694144565895828108523529541036140733225831980021"],["16550232941881504878475855811043101486199492079355477962620044127425924476851","23349462197138245263913785833610221200400659027918037567537124981907828719181"],["20808703596777609821348331818788738984559182974893417496809187726257766494464","6538609770009946983645331838419583747537644852608930883945714446157664588575"],["7241633419380969319012767059797574230810197978786326062893516521267088245101","8770279312093099230726547586365762250754814752543195278068943402396855847094"],["18796966245085296031003058636699688559460312943049500855311653624026484842630","10227059455173774117656573890005446356932327217317243990114585364038032415810"],["18677685750523422599364419599585442823299640989896214392040963310057882067461","26439490049594371539888182667271428976723016946596174489540940582687616157709"],["26420464322108475946421788130055208063144698821043263761417795147291253586827","19805397016252535664953773823116513933591468857785498080760279725579340242914"],["4180221282244462037324645145477841486839304148002221880264861286066309187602","8266074350193433356431368311024958537404027705200615111472689876168796417551"],["15200799150036196294979186891163004263370615720806596969849103169097996655892","16148281994356808507369116283564444657670199829396130720264469403938358236447"],["13780992186562060141479270648077269857585923345051805144959919055010493766993","21471512504221807769055660017058606617251697851804256858523667154941369104496"],["12223974544727388098565427010705149026944266643391018893632171938313978725695","17839238712877548452774785256740323015451587858823965974341234850701774915994"],["21994429225817699018481002526585412716538931240711576867562575883139113939907","22426194978451178638881747485870333907162636010491019058486198220551160255196"],["16797079045614889385999248958600065417374503280699584411751598936527845354094","19119026765750884370138106876989094944365223029256475124829065417571218735037"],["8914881745143259071850949684120638972070994380157764968940749127107374808727","8550582617624443088401083878871243141373319988317522944299355604708716598636"],["27632698516283365992709222195228216564618108976358619233751207271827389193216","7763888760402711530492896025204734720820387311944317922677955273547992093792"],["7111165544870212852003429978257721969414087821755141042454085495496713557721","4230659468343261625716698263944929473785668628778006148545553441224944585945"],["20128631836721502755060242523542803052842864537048096036706530132168269859314","23363545988254374530551219102377418903049571642689314822543143325385364724648"],["719344848078511158495316814619145557324330402819570026377507823012212635580","6271849562612260308627072637500302684675116119117747704784493644463867465588"],["19247416093147807848964920238061640589714477493874831371065193510029010812351","21047880660146157472965018270794898731501005714266965172520197045842266696816"],["5538701221268058304687524421721386968090912415762001507252305439200191852506","18688151371939086407479772213218848416572765568142874678245383002149191948657"],["22824295204271198790858367540382074122842567138359230529226761314037070741172","26655528315370864877130620668665180545836543453104564478860831755723946161131"],["22763370247939420159441230487796428459898637407517790883589773598774200689749","22258337634895225066143329543732623095724040189973668540626447113522834914347"],["72344472532091944244088675142852820180563711163840525650345056768622354971","19158136580767957687312471469267874721023382417448873437806535150483564574070"],["10540924191936783589299395192754892813307675581926062864731512444582712506753","28591004829117908129956446377655399902050668503046507085967165562103075315190"],["6384271583780449007261111996407397728775302778522111141465124767777329922054","18165667733853864728326242469283798459368851872666119130038481579375460167733"],["8805938789174093867110001539588372844445606252846477617515080727833643803815","15204974503163534525623453801302591414044854686672973917915803862199869296224"],["16006566895123009765949167628465291930634175651999125403874729361414889796376","12090770298475725310795518350629671902338733576253107718037634927293557392261"],["21152087319769435702856686185049320916299139478549393095800272215212218418926","8698618374621375215116173076141024858269207651100217067014454416121648295365"],["2604398397271716749237172871439000497738176359603807134608993279625287431300","25495764690270192685333298352011132060895852632537337041436395346484508967666"],["18066435582496513023378909882459297050031111375615627339971666331780364015919","8311926887799698322727482664260435342741004016080904368250886773094464933504"],["5568267771532950713615825290052649366488198954562664666715267000222882991517","19770761598388232322438776414006092723465529646622327144798092790865466543256"],["2312812385911701305228598606214106209258066731370129072950491693751982690168","28836658099100959874567359213013491682799478966665237735004375862321720260470"],["9311704001917533576424158821411137124851547678450433043795172246123509513078","1726381014206207630162087100580258033817138896410863214432933795410716962386"],["2632904026270258984510824422536492630420132787940137106260718065708231776318","7286383123226236777188482585412264644199723109562664122484263639277537101825"],["14330048934306989601582343710432784722349512805564275954770178166096451052930","10973318317061157626851858162197225718737383588653456593858375977842243701368"],["23698276579733374636910861842567810839901842534915875070557220378395729894155","19029297071395819048927887748315368511695230378229587181869691359557592654151"],["10620476205703606233465345893706938374916921781077161925412816947660820389184","18752168664153400771455519061635767895680479506505957765192417612163333313896"],["6882807274172728983619852162064023401370899789019283263813619962572265271136","13165018553738471057123158310093694320443650762309695835467422090346274446845"],["13442294716235882281821191749544503247342958581831899320910292145307024281349","3961958754444111601633296173767500083901108757461961301965228545233263269155"],["16489863243592217519241156395665419579081045411609761733410870808687304606893","16461942192901323911842546040960473809102748737797980881030299503069381358471"],["12340735347794623705525553367349439564783366838676038654716923365138452003230","18682968793109001273670355427780734576843949790575584143004969351825521167253"],["9997994019321485465078788454955406740103223059763029624145393529147985652674","6684619329160150950425851974000782564530470453671068251669560034710180008882"],["26412093924188022966280969937706901702420203693755135956001792426375564710333","10555840142778526132457508607255936108513485221546278416469302958835153826126"],["1141184827353982580864021450460025483323295302841810677534114687027609101257","16946121626409374082896136830071077225138487185336574051269227761434893175603"],["28098020319984487632491831477001627664896772007529509477675863755644223476021","12882817483281662963996712369164695898549645478596251028181289345784596990919"],["22303526378140439591749923762476958016877301838701729236386249938958401795449","828453421423088232821407940880683359063281762192656476472597854546104618654"],["12529336047481932577609192350158201063579224376655527702026022794991778100947","4179833336007023766240497972981820638698057084413519504019821670019018005781"],["19608743164138791699421971136550735286397822969425096352445624636564157214153","8668243981803308589388955573148730706227323899255130004694711876522805605917"],["11440105131208396848644499271547273555632596394095438635037886277316952610300","9834927497840133520779613645964000768171462102078640964614690028295020274159"],["11349254475772919856425915592968126719547263815502349806448740107173393851908","14614764772509396668742075668460291024678136697857417288188777263925000074834"],["25700573823516437346984062423125903907551927282815558948807137699393606424932","14703521646492211015256640983910388202973303971436817043903970390641577520850"],["13997237748730743210436356497985233084628988692018446664348856283975021608502","23235724691349093827652498446455602674808317844186594817130752201377313601395"],["5905914031783711241323683092177023211030826296373007733582581373141945902381","12458173403186717247626878555508327604046385536907603320285721246627829416195"],["13707095781117102311686888639153040443653664091441284256294929107223092679001","3004049271143842184481554879495854996842917558787724517789118210762867664327"],["27158810320701413458192509196334391086902155922943032701559369586931473036335","15887206288407878754767705879537864102016174618121623496428933765074002888794"],["822702261537289896315592531395772697375305116231199436728284928033805978403","12518427819674323130527638811212236391305052949400544178891691018101927472194"],["1468509332284110163391212341568550450491730681606306984868544498524996353579","7844065537809402360085245227474347088123842929075664296529879386567192262327"],["1041690732596102854400243679690941717967524012387582943832843981847622482479","12915089624439427896316469801031797757270060193553594015704083580166820024083"],["13988174703225251501899776941206393381519007271864048795929821134904676171841","22955568283794857664403307881448288482599248389329749775317097127660788785399"],["19275309377993979565070036765394032254248411748468235480108258651945864062509","5559383262613316473643601752912207451642558225272887610230250220677657317129"],["9718538770335545607476725536435130641265423664100246462748812803436926270798","15074272671923924381454205627451921186480594308624451133673907828311645703252"],["19546531698038807402083670775651524235861254007478915706902109219514348629396","24270717323359785701843826321226778037386651059900359236843815733648320295093"],["3100773827247820833569663947476650390449797512788138754983676988537044522195","6249700360248532955836200708302479057757105069351435128945208318167397143420"],["11054621166285118575829281245783417655782081177351919072569641160815316689402","2973296822355249701114119998659301389439266172094925752898945713061674266795"],["5332118540003853855794312712592042489573448287228998709796596028197572336699","24134078502269775218985447742136129493518022453440015887239285922988355235434"],["280991878057798404950723556267701249174518572121397168872067886445919962892","27259696236537721553100554874226953464112498852367444284501932836931100172689"],["12538387128546137284136215260162305108544454446579154630817507458121929368517","6921144806637781307146388476159268238130620299484465560283170452688226832685"],["11110467467058183054664551387641664539045480674629152389981035955477895687044","18043089809238570623013139910753905588805141409406200439616078845689173785256"],["14914608508788971576358231007873815775135249715041150116847142165129511612101","27084142325299596123941517841440888932716029626982967061748446296665435101350"],["12832675256084624003311402002066722738715740403879127332971944770401367120101","21649177256467246861031276503820681007960260745977358958901028564618868134371"],["15158220887068456526445110964998041238513732753516629506306600057587563942600","16004249725760279953069823341369020045552843134755719794623877637624484884653"],["20129612223102625801718955653850247338808560529134107138305885554378547897721","4979331111780437172549252679471739473059085967757378004729917384217526359879"],["24997532379133092988097981402505498546333608955313615452108893574542085787450","17655483159803086759813948040583783575835713719945011712576167068465351249330"],["27133974866459851895058374543170661885590157013439863789551965317853274418073","22726989175504133795378254703841709114043414183509975868755170618319654534045"],["4506364529619838002638281505832657886044423594242028360116697097998276368555","7715825794960056280276691269278173528265364873961531362404361464327853998988"],["7387534980705822028225869831048184402406351008112227626356845538219936150092","14512231314819938631292769072554981455635621998558105176422547118815009679942"],["3983390341674660511547619280411415430500670872315697810468999187066356867826","23064713457949464042876784026427431999936293692660401150256557336479408414162"],["11498497693848914608086062338044439089916731605372960578862942808508035859433","21291091920588044704456818061646319459312022588084453408595658670040268195340"],["1947004943783580219373166372628746696548997915805706250020306852663526726115","22235678156425334245970935022693499313157345282838047796355068640564734625282"],["11642636087037197472264979906016865137800790317185068731483265050540096002774","11826355399149410999487649325926022118504170500523860687694359712162935868573"],["15379145140884770020368854375817295869350249878364900861373685284309724932006","21683023080288006255863709640807702100156067259057041633442457602340744604121"],["10667504725080262731063814444760694129073468768515073643536449199661358526740","13221181487481755371081901965255582459389040000357371806572625266212216563826"],["9171143209321635481656453850179285502535694747391384765081672825230533862488","25188971870195712061366217723344831290333551062125579036787943934289402072444"],["15537830983380104515347529743335238955383282249455271412105511603845764056442","22140981052129920155728514903968539682657843150391592846358130712951419857425"],["7289394452076496355322876687451752096059805029249885899183253127191179962335","14245319368038373779641876952392730762865418105690547237792991347923901112154"],["21998347708294883960778207816238278386841973919367417297991182842144434242165","10833064112701076079493203660509247152121072676764302170136160146066645234905"],["27539205592685438412032007325760939844723366698993079503864425320978099713104","21680413556808025823130519061210394538099839179582306142758858162126269175949"],["24823354645125869145830665459090677770485999580799991732225217947206171601832","15002668637290006152559889299994563835344579463416908126555029238590115642808"],["25009817919556274432464282428794443910745661047732819628925603655693836339846","2528358746534113112480214771064220996776345212033293410210081567536049023776"],["27542587870081944433051786227915773462873001895823532037816216003099593413631","7243759065856300635197589483410764251701475663960270244401871911082703458743"],["28138682908259318889066296314191382388005601992075414537189385986694773845916","8291724000580696357000629475512880921120229492522839265167044824769281448880"],["10376644281172532072119769477790746021757492373472676634426431903653045553857","28204866127113836522615669654636850290566113093924741886464517476360436343313"],["2197935149271711930008947375015397203700471620169402849253088799509464313111","14184104735440664529696163280536625880400147013883396376543233910716682023989"],["1330175717505944831964905777799167775870483765705467102758770124322783587504","24573768912192933710557467863460227732377991669752752463858173715163144974285"],["9871692766711835804603051848883470553763714813870035444122890064656848832075","974656650529624243830285850470738965802913798196211659712465133640805469045"],["28120462053002124989363719051489072701562869292554973628641938307086670669863","7056146730745939618980357179888744539478483613962360772909296448084822030124"],["7603195622306624465593330614493562877740599083298043203372675779262818174330","1406970558247978697148418210331404054521490121116669431300671563055849804093"],["28558702205832585281918847516394741521125385998192827672481588043844253818183","18726462374333629619579018308017756657116720223583668363475322789180808616733"],["1317910383009929050841479607034683390400033959324051610547530139461758440996","18059280403175477140614345633865025095693457758005642928815117141958385832850"],["14582471847920654397259872094329211089580561238655215387444097186151382771428","17556348752560883273682754215042639991957316612085261017641771369209999419199"],["21139301715016111395813990562019409616651343172070119112393120235942808936099","23493534104304559277967460174846180809040935823620147775619560844144646843117"],["12895268795236191030545688945172417916414893779382538541612952005914611320385","8629275943938087186959766489624312061598758284598754237601407141064885080086"],["2958801249623454433903649596777362643561574042401969335216656030207264532858","28632707536141256143062800141152873605149082109776620835052567874885151216818"],["24317370165896552290923573472356596636778451332289397434495074755750654640545","6025876380132221227562910524898156280606075801731143726475247301600272935609"],["10374360335039104053244362951604541056243863708474622279172777366033706449903","2790616810236730867848032723709623683590758170750430120453995880929039697762"],["12670272138445279203085144641220715066584361814534038926870322367788607793696","24396368122291621855869419419089029515005953893374492958905188637702203210767"],["687730585987203570396812052653264537182761562114637505858677025796718818792","13365750127510294914909078593181975849720003628721336769027760570625777710668"],["6327965280009919800462972223675114495560701142597221394378720474161348277534","26574458373989690014608712191931455476371745091005610380137507780053655427440"],["17852406250901284293760641918051863366130626552072240569269852074108628652002","2685504082108189113348884077012466758465447459165093239069503745618663703214"],["5942433253970514016808917259473844597273984844750365480378911956580291779082","28558561420896600007396947561591199611614760604672823324800810464336706655665"],["26559496576616625845142860916684977985881757363331804933861965330789396844190","23997956340782274766655708986736299602531841081087090565268442823193799502230"],["8171080836942079593788176428006637455047997655977072203387996680345685012327","23002322668786605242843740704448584678869311704148124178196095956509160159635"],["21306827295429014632431472651786836637822944961296218446197224627681458366585","19144039915880781888870138747941186195487073206325474766413849181653947651635"],["6777393338190132374851694709472870119069614537137273449677452808922629252201","9770429218778259520027289207144956073238514134058695070202529686517746856087"],["4983840616042605772684058228505914041689500310169974804396185993846995006684","27653895872224201377548183616758601834049308049742788615532775501715585866738"],["27006309622838558058277246637242507867765792723486960589975041424969159175749","19957120245581331022146143458505510878323524627027614855774704889221250113754"],["17503051593108324901344258376710493477447264519729792261608593580794741135765","28456418646854863687379135414129820799478193153606994031887192706478143484866"],["6579894011383104716422894964788505959085316908657323259268723288397745772529","18969070159099305767719201779638217651014789601353516365725438841688859123129"],["26904318289288516473809166210305797377512477103190960089007524893114671158499","15609921967543053688854538818678483531466455208296778599481930514555977824602"],["3505716594944002517100110889000320905999390332100066653615983595144644270042","24785867044159877452757635257969778762804757118915601893318345936556666374763"],["16898675414857486419997130630515784050445549730000107353602518272235995607859","802695486169364312024216359243262067249338845450113996310348721232450619650"],["18877128446528582615818933578699164687127318139830064211470352081324230644222","509251135234542144968780463349634284984744338856475455980286689417860331603"],["1803713465595144864727524592571183149512384679793917704495087133774506490719","21257490806182450668874452094262502356151679382650604023245826683847449768052"],["22610948523349918485651309406855610607154284607108265437262043802344589646054","15249247818340233753874227583507705434167871135196446052800169812086689574865"],["21329336561999538879159788483677189816220879672389811716449238332621522616281","21596411642074989407372688680714046382466646812743450157789922070884566937740"],["7269456831501933640314949373964127983477512307248573301274960331023351331343","8622004030135971400336296687531094000622688999855429294782808066250046285691"],["19497798564764042199412110899322940699975094647806892291804101987758285445453","20240595273016044199494707280803217958457540110270655233969821719735852438854"],["24838258717264656683071646176164957153697003984959306644325568040554694898594","15115209568510182418191398325203636846429296768347109652366794322746193063543"],["5531666900226296523256811863108450812047352026436112495262978847743212950903","16045587172437297521161763112403959334616754533379269138275926815587760696812"],["19123136012732609412015446461107426016769290361743615374069689131103165439418","6311072829081313987081592959280071287968168579265234936705446329670337322062"],["2388398108165847324370589168405932005474758876606438769318694169562048366451","13681165944552135762979816857557468873615786910191345632001400089002919437051"],["20336934094644883961505695203665241048394100807835699402084688058443204530616","625889956004272317329439827944192901352167437257613881838859911267335736658"],["27550358796788502782590437472100244352684592808693759933973810913610262888197","7966967103031817679280826901024219389669998408362630711231042594035729393221"],["20932160710723840475167308120230136655530543458568530294396230681696357474487","22931277987495267889149216344550383628078268437895082242815681105105481600441"],["17287756691569603748903259144896743224631302595457703518255415844570596229114","21713977842328924851007278727349641260702917903388129846098173516253397269115"],["6744382136365736401809329409903733357196817626524323947957081010492598249261","18308760262594565679668354738327171683230788684310082827073309582186108896439"],["5248022642759055317492799920744766404146856102195444777600285203612555411361","10245074983331815319470792938728175817056462058658036551338690364555845709489"],["8494458624607630832549083235993426085854459156041046983981144073897776118732","24547122492711736262325691030529687569783643741962780140716869416847961712954"],["11814105675555895492751419209079725414540497963425224352949876410131369568796","16622190450546187568830946629406888007039244121930848141849186028934668855820"],["4460963713445891270891852191387405891779242707246890288989730367116451072462","15452664004879936162423439864680664957155107027336700065724735444009657393414"],["10976428667027479383288440320792961378222726542110884465356886671200785503981","25351768261703047073890330851154014336877177969679572684766804782552704634849"],["5048568328539991943607078976012131651683957448860273079932834245745205831327","22279665096512416864816355564638887399372148198562202239384305125168883908560"],["12151853370518746078816231833949241863019815553908215929425548558362801606730","6670498537129634211438350076254227055930840212819295839882930907660725918512"],["13191795086290220622369858396509780185407246031613958418827462314755794117298","24689352139776006787786027108579244034438428629015676442748165862623319388527"],["12451731943469856757670619264673323869092586519411777938788328286591755780229","515955849553208225146760253084992269663168064309100947151631084456615073164"],["1255931831766139524791757969123680707107840712522585911653881824892246805970","6909175259752455107298409078985825778834983813058373878085610090997736406641"],["22284560425503609581090861468310400755535732962346587341515686702494023287474","18070966603386429240576319563660353247413501270771134946210159276430357320090"],["1362239609151743752801505641920849298309150368579354185236569453303639046670","5547058253645587208672158788084578218893752377933722537237292716534602999662"],["14407753647755102600659087550938895494784776800354515111400849255819976472130","19740211779811594868895895055671272047228038969318032749438704976550415303210"],["7053818090937933375468273120295464618917816201465289407386243997481790788552","19265517434243197116658238420462559193659472202755761621185361098279149296654"],["12078327204534744274004533514945386046064909283292223129013927630867157051532","9891674872281154889134831104705132769529772979040493389590097694210585401443"],["13152511410339979293399093332420336700443347430142724580988277802055432338691","17541262437597503614117472292396780044267804024919677660683242912891405135378"],["12157716974096339410845635486321360450437812947995962558321738221812357609906","2026428713109356350402558490108284689128152735858249266780550434959103182341"],["11008361443341842480700202257298603457343442659863783746871826043041039101938","24535285470322663173057467657151371866724266665603533273932784831519749056199"],["20372478230038684090892844677946882561275551215875335471870955146421692740968","21997158885856056033337847178471162716821361426791902923244277796105971717047"],["5380682013195424011488154091117328965066807329056338110905524051181625380327","19957446690165902519023658927242919497197161021457323105228882219803945398752"],["18101017888525794016005539673429017775326297226191082373903785863072424417424","4902853954070193169279994464421123589048733380754389469046796896177283229576"],["12217633768789198101506596703753577117179066685277283260040635385069976067488","21737580562892336668760623767394042783397426011439729359220745562416520879710"],["7456995338153151544193632659909575169617196901748489406586223803517688742039","1089669748082825730735374687342332905024302888827343982226757590619174311806"],["25290964367829938210973438251401671984970506018608985940730712192739111690586","24124247053740370620898509137103566372332839788743125341018274404762844943856"],["21571316406927025526475436286823407982390753242222097276683929834588755030935","22464879371263216876389178471524296067183005130924059388824025379095398190494"],["13371571810244060919612289545183794237545742434484253001951096151445593029720","5733862645043037066634796726842074725658736256109216359983108654824205680039"],["15933760778229742374399545692182520128756834446558861280961782894533223153993","14951104170542499136342603784090634717212705866222561761102080050627801739962"],["11435074018087678069749189711598246465641141725922840075516023612683421909055","21006538799668776331333435065783399507321564009211367560395811198130245242096"],["3197394299293909085812533504311620679960057706115840671698098050028643531338","13628638587851895057515403347379410238082942759402805569805277484972959827327"],["28903172151667739293438574922451134143621610354772313763195070958926533902577","17569857586886053023781793136114472962770382210229102407220574368475810976981"],["12740890238322626632166242687344063990079087880917776164069353307872043810977","27358800343947339521061660365487964752948339424053357351025955312211978836476"],["21578367093572110827019532752975881229685709485410735691402771401169473073399","15414970499519259406963258072398531010298384592989272181900884197545591304179"],["25934874987224556900536080470867793714417852256588967715540210051995155700187","22614341344972912787045218097931351970940403187645069759229491748134540681544"],["5072461177653414788643050777676335001899350855294149210040836028119072715929","12030549222177732975185203712695092809271459795458032263534574215717271082194"],["18479992787258376526660087506127823810476292625254222963038825066754219720829","23785551564068202524919526527531371197576979700046814001372413977498254633347"],["3114444714918750082655541823635556281906101789644772109125495824168035501509","13777175741302929319863691052504491209768847455310689404006213341125298708164"],["16422786435468075002667015273844477320112041635548089503403239261808478685228","23226694141844277525266278174815897010969866075044978220044371629199077283849"],["1428370911955699347806086896920559048504388003129934085149448133438932243999","1179130991134768723742850907931582814792963828646366360153846901882863773664"],["5729301302611679619376344514459772770528345630411370454939731869323419322532","12760467632533041484273200461946100100585634601140098681168898813732429202036"],["4577476952852513821213260953362935905488358532152762513670818219102133059934","14313917291252142253839340279762623158282817141601228906633580958018535365106"],["9927257161411659121312348326441434871674691168585180599252536334812998339969","19062976665942958706813156437267268823324031601000175764855664097449895952909"],["8376285220027421884188429696807637598887014715206772054208075086623092283284","24757706857091753613120274304769109012716911930194051365062993302165324156480"],["17175309326732967499169617987079211860782474658817392210534660023908018980435","14067835527812454335993591091523135765497567627691089163284900674293369154943"],["5562470949618926134029908813731055907064270761262011020558608891633635362631","21621228644304298148373965709148930502859303897951711625507201536042894140504"],["17789687358664241443217303269512576186628700474694429837801328400120124019828","13710963544411451548941044583895727171966191842719121276645139247100283653038"],["15822022153737562948518843558317889287320847636534679320131067733695413255657","7362716993445602329762640950721865984328390292385301324330334888251120706406"],["21720042830412630234789822473225743769988543156334857318905133212884021999074","11125922938098324724346641957920911114788256646463468831511086228282999503157"],["20923016536507018405245359000553926462345312496152928310582934157388116847828","22021879068976058605922720314767880101361834231309405008905138255766223530600"],["24599111230985217169737639385803248318904781220973941725903555644974997105052","2016421071363968293533835583414782337201587025164004316494606380432788753075"],["25648030917049575195911793627411734544713478059792081980374184491007439947995","22695973360304890579486115051492550358645355547568400854681962197387974340430"],["3647325069235298681381093490141813430535775012391034130877386761446054030321","24596623741503874732278078787308655166724599215323870197378921771275009616501"],["28485225491821229323575784518602564793543303212071878552793291432875302751486","10237411036771002916048557152381213519894156619610253131181618574782506039890"],["12604117129651689007457003395597421783462756580987700960041508403917334739159","17329070306143113726356596039502219907999218858938533144583533447536996212783"],["56744513273326571627834740528440534947677345180003451998947561732267190469","12405347796280919350995190715935648145571585289136354330521657088741620113493"],["12782599527760144410438638092574057498127309021418704897472728206372120861081","25219282076395304366614121928069578425034786412805897126075308445172104201523"],["20875018356451742742545196983697492026820714445028924389080419395727406765211","4343054071993531129059807722042494864577797584304569576041675849629978136180"],["964414887941093772340557597525287950531471878654457611322837116267357724630","6398776393768932867696924439669980210858464661344482476136926700949068500605"],["21258755062983920256544817166056112783048035131078925583619394161021276601093","5280533665551374263613907806520605136041393852704325671456220742907887935090"],["15739752525381086510643477435967910841830412959404601230452987530123140928900","21461282116158261791212582767219232818157438020958232946311874404473230789779"],["12863411322534096734966872089747052198654187977518448685550113563326696609062","21569837354107718383699100811806122614805129980818018836000386974720293653454"],["27440783824240153165143542599483594947102091975284428298280749274944066813839","10545298986145206912738775464728289165044345554242332408084597446821416336401"],["9422443724075123510664950635389595139917282171434617563745477921574908428356","1758318738638141933079375575496989494694651293503877066224163696158402960802"],["27660095908112306628512396385749658615708394692490236335719932729351489876229","13711449493292448871194321606548598726858377285406626014287070835794751367202"],["27204939341606114984087792107039497092882880851740903607531478259350162144736","4530254395123991324352358683707331281260212430460469370814679646016913009485"],["20076086041472107697438312501736947554107325487465914820937864528452776885042","4135695579454074286920637986601045774304721687494684720160922563063785900390"],["12442311735179151758379649540182213920247051739696230530051949192764923784626","15092525250195859169676944259468806470744462973796117945982034313323176018372"],["1168465667897762718643991085173127486136816507693478025660075869278993915219","28437629589131601392649724634279733566986181581271836486113150575249077324854"],["14124102367100728732432192519906200341781812212880284413513114329815197170915","1131765242998359944760179675314570945555516494519802473399197113160916160348"],["26132488376407866535666112134764895040796561082939108002554213804341020553249","11113636955160322600139472019997341970510001879299068702655193489969612778444"],["4378055613646335356158527116188500047908093044130147664217927950801680703305","10406748579090199315430505154457519401995354539744533530044740623073795139156"],["2953349946005608449861300366072805436507821693107484532039493170178691018188","696711437295316821506433246384722818077912738660107323651752886326162217780"],["22250373353257347765366336717426959810076205767510346164556754768357219340134","25433693252212822414155903425175471372210249778727924427969613525275312892027"],["26627676180095448933479371415042821954875809703596756581661833906888203978749","28673949932160955118899152881573139617817373534905496238920691886035027157157"],["22052798990317498192433095840140263336579210493156094573499573681596984564166","10919487148047762509029211926002888263165645950819139114880668694434351176014"],["4722733520843654826909587913097749230893665639533417442237934579035696814423","17004681270415147941508563057289375021569953209702218247193948247693634315589"],["22907605888881718059792221365101247269592759064591917477650570966702222738348","21050165085225263383830709043768849012812578858885779739492985502077050407874"],["8741642305891293209733025126390428465949271766716601829216753912781840438898","12200200688560164272214891376239960608459626973432340655533087538465796366530"],["22778158080316222182790678447101285534623091051274250920598547720339601365067","22013270004182384000463177100623141506870673933122864459436044316111342822070"],["20641114289027012414067504710725069748202407006816839219412704472512647410031","8910800786958461106588202119972489311813914040386873231608561536380935819436"],["2605090424862103666682410982022359089090102926731669234490163004118875410325","1022199916684181507665644632204404049631522348362500469588782613501239296164"],["15776608924309241075108368445211852130646894885054940475482962678439429890101","20154090366347945463318636199730078748239994540692724914683763832208879625024"],["5191762519697664349712046818124087685297699131991344517098856297622387015309","13666983089511009293408813782765379632032368580281776504822550418138937960958"],["15811755774547088567343039787215643733566239383157327902933149780914826672654","28632300162825028791817605297024650671027506512444051607531552983211941535225"],["5288338167161027437103190636282706280903455108347415461449605602337719527007","26332845671694678380866405030131079639262061933022491563203527394116451949982"],["21778045209578816315374251314084843006949498627305029038909296073444130648090","21309300867239219376820953337818867541055802200109263465461508488808039924349"],["9850829976783939459324620534890403820786696024583965022131093766663609510053","18292116581268403326284358321324296904384242602096498677848054285861359696866"],["22037623196528712827079594837975798288515041934040413261384463239977155052152","23413165336257131643125221156980686259704398183422139037910183753117631717037"],["14897664333174881037217078503892871403380906034995254926036417127192630480093","3872541861351901586841707956984181727769914569366979644594481418689491827135"],["28038449369734955297012154142741248478960469641520409593075749909344436044184","27842060237817240791401696287454707057363307358681107854846997095546469461676"],["748908654665181568139324503898584113872752980476775504280004951962574853312","7083098641151505563356680466059988547727898566084829424553570809778190919274"],["24755191295443905707508166744801809156488909124648751593041964466701628196602","24960533165373446037995356940642660780714667498129339408625246621875889580995"],["7040789537519178476676376909124254202242431067012518165343261371755876391604","26494505736522263320517637296896087091861059686708427522824640412177397047039"],["14004760736592051371039296764670447109235191531701272149071243654538372378278","7767563026344611710680569102296326380796374713836845717813140514992074190670"],["24692381648982721434858566942620142215419297632614456919160526966786090973426","17755439493286650969779291715106976269647341702686030170690040601260701735733"],["21531950988965625148948755259918505862722269725180429371651133919880788628244","17554969054527616457585505555256871175150788121866793988424255054222917137930"],["11594741931524357778327625475940708962185192173248436391821861349406398976830","14651180918988558723238958258240674829227718335896364610946262900767587454298"],["17114785412150279694930049774100125645190831658904004062258658402904648032679","13625467219166218738422556628783082673084439858870710181680540197035151577770"],["5336407378674840394981026226919826079384049807936959278744606034983011189860","1447231076253486854312743354700436694924491069633157460258660862549045061849"],["7832716123713780996723850312865221021242454350161924796368425864906122031669","24313369930081930677962893953182816017765854658744743939803451478517693980959"],["12945562755526763891030959125010165240154169770562906939479044299274301599501","27473366685787860215646256842894598896744695534220200307690065406438111104844"],["11406256994894108788266118251772270427027007178910416201708087798440787919832","24051784178357632376544582755523195200355278803061055772965438951880112462831"],["1123494858194288024353777859664498784642156294722769694032402304295218016176","2002023448974695807204294021970252691425389735138007110695921071625167326961"],["7008738275082130209105130962256956912688873316325940268663388300892065580709","6424794793424512144997626042211470899542964081354006654618516356147233806152"],["4345714408610579038972480689950089365073797326543003054743207915112071644834","6795611453438411350812799896192230132239303833623534207249339856292218154537"],["4332842436998997754620597758170793976921750663037161450409146514431344090142","1239256569649928024950259710049077411484525240450067063684454254038905217016"],["22920148455497384957304213130285912522816460852766959773587245972763868483398","8487371887387870629065067218102520134546025432845226117726359999153039190980"],["6198764831884501185238017461440479478563534988109646693091203139322417454832","10666755953077120883864837582155674947913946555474660266469968128156104370789"],["7070208154916269340759745141516670035221999858159457379862225412847848502019","24627791180502813788616465575781685504759057156038806099014348238203995228216"],["24056939644951515671895935412619252296579621332550422639147000869644882691205","17488327960513402504842980302689762403910750210994305589233429510183466519762"],["27740780586348332203221027029775943340535100510102733098500856447530190975857","6886980518319220019534660656744202540496882531709750709375908935287172021918"],["22996887863363815455079303863978484234006742904865699768891798776913033998418","726271716045878138101595120838440592438646293703533558935119981336164892912"],["11539325990902240208584813514986805616851927744069765340703804552888055196040","27864148643809892217747496550164475932717934087170744454914368414989013041038"],["25988886554730294944301707321201569621549753430116577711865631742506667698847","12064340645617646602798023788117111218038899990667285291822449570855341891105"],["13498124923581122503596940883260341445810277294076418661125956161783948948892","20071554731484958223375241991850362550043409747278762213557628371244381165721"],["1015888523082068922033936037305744546482588130482987049701242924757230851474","20791228929412206740730199102043075638388501916520888330328906255872614186487"],["467937446385559756235787098209661803642527500489531531970429881861044761082","26803670101529983577352946423092806610735406219128432632550484098546949730557"],["19543841348417185673341775424460026040503150667526739496341285624970524330509","5555976069523966295213398586890579371277871934459679618264768967159953241449"],["13142753346196119647914807123125473346311247442089534768914225492344294307691","16874950593021709372695122033503072471724706532025602674227561589353135559248"],["10760832682000430462369001629022219172821679738221613006564664022492677831769","22542433456891073156026564242049257087456507646495290509992672956662113961581"],["6051852980063359990314759275641229948500614615375904997083074782611622681283","13812276491263222412065155413115305657104057783242609562157413720775769895631"],["2747489076936776007648232718344696524686140223622121389132905702654650921087","23586144649283070744922230101875322760859683983677054506575787517550561832220"],["17087510531845249390921561883307284206522387753982337138132510082778398132931","18363285012760034585211963769205359344993370714243132927679290320786679618022"],["6205282626706851357610087532823637259614230512264841888411316386979788563483","388705984353191111949077683282965951993888242652381707485771613557932109405"],["23533711334462613716939609700400668329425113507603635570318444236170169915684","20564177713001756652457832195074558453290829973550021909320369546642067528436"],["12798071000972703651715374011076294010146765584473245117014561904202708622559","25695890180471132947982034413909040273056436626456778841824864371535865157654"],["20917222975428105136697203306148016691924827460395928749041351239444698000889","20936441209382765653248897038004709537630732538211550376320053789571064679279"],["13599517930632572561578229408030796477000724241385037925327904082887223581722","9182197171879277483264808745342974924095544411640020787085214524619063956932"],["25302872960162738958992166623892157936948871809989563836022352615274866695451","7422171499694917113332737701964087303801054170994758064222663405525412183518"],["17326919635292348559564932110104140803077171765005111111077571896710791076127","27244088810433781940964755229444573991853266681956728513373202325703347574170"],["19638240625454120931206982458299319583652647917252700280485749742339935825388","17857063783567186136799201428212467965517573202088239307446897650727506636624"],["1635435589419261754945455612777508961916128145467203812875618937216746103862","9212811531627835423492832418467124190043719486247883335848820523944246840546"],["20868456761548714730014148423360215279330676750899763875333437809140460796389","2470690550872355883870361730491215013184154020264075053085872421134851113291"],["8940352883196456786199486824693509241346901511281990180087964365270261803445","17001830856567596973528129980387490412897754788252173967456098186511607244116"],["1657980767159680346950523515042852960727153451337165938157838748178111534035","25873598451250373965787198909137794568478192341725962859480941202278025687293"],["11221552616049153723224585218640274272778798073321197025809457317741325142313","18528302279961270595681338581566798786323615795473458166309311546120294832153"],["3149454345559233017989337044097589521401315736559011629525279503039575687909","11761548995436798467452924269843985629814125912692000508405235706082738388029"],["6697255362129019461573902668609350378269835640377271624979165132797446155530","5139239982633517246180777810982805938770786657196102322493431478624719717522"],["14245807384143011231718416789010653911250105445914915788010267253185465430133","12141486182316759040283285897088489798258434701116251530076666895824317621826"],["1070931377887357411401116896003536578896857713850141633681637143123627443594","28860525007604135457514249840617839950964272282761473499707227254894226481362"],["21126890887150277980151078017552934750154261651509443808134371484759714643541","3818822198257198448896612038961133374178379497370571666992073147031675163523"],["13803233795460753339953251099165887707601646097628594200530473490837641639147","28408680662350034629510273337384408954304852995259919884004646382293564958280"],["19056426529157055737040670481187894781003574704269568380121924588176447456339","26876894167396389488364242755993757050130179422491910378933507791594954354411"],["22405802951150592996515521551755620871730673425905500384084478485281893376662","15378299222489668338961989812456146738971885508048200597845729913700192546631"],["23479447269851406736956684775456733725178388432531158284848408420966406700924","7888723633380101422644670814617126887344049295318350104548555885749765854675"],["12559591192314411117027892161916136761974690768675714728520175908717581207952","18551275778911860189492637534214928095886269695544387255416622827481901263513"],["3189414139808061925937874909051112390195526459156766607596980020935841651497","21138790897491345657223767952334756900748351574658866590245901158377151349318"],["17091203246851358416173483316451402351304185855498307834346796504318506565221","20481840800668018102704130100855163624800772793648997976545055298727298186644"],["21196634510942247339769966141525786016427969555887878715542905620819401126403","28189864659239529288648510675948935550326357400128308799519508202898733680408"],["19704338619914810287107918877252861482555836644226221293432565403937210348683","18918760375491661028727935771499320183717617158279395077595165898955131869379"],["26505050413263655678060229643034557773831113093745643448526923530749403643261","1896648316368197185860634906057661693059349231569302766815308051668356560111"],["24882493135744528824400666958400712038427496873271610066444454899988504650643","17148301672871680764094229963002941690331030390438399764634850465314846213234"],["21559693199932436224507281572010840873448212774643972506693793073703080911622","5746512429246783531998823995794599846458315065330605483577962629971943356348"],["12115719045643454455303019036411974831613782901029759666873826503794845005275","5157418298248520227548975284083727288052310973225786931408673329420148674069"],["15091025709609047006623097074225406587693110222464045566868155779077234436347","22462839172603154217153704736641447612030887725176570886452058598748621705420"],["25645557623188908055669016063855573929695709521870151939145744146858796143285","16407234825194388660129910065280956058545981870428547199505767395188442324640"],["11054033990757520719792853123726633768883021307503311615575074790770087083088","23223771599771705301300255814165543946967238099125759704169895760642996600960"],["26030900347646019152019703255536374659234930886193709872033602594545617520077","8299850876902998074917481061510912583283073705639893505178027546668623977746"],["19877472889009822226245769422525127936636070621279816318030495080672579418135","19889445747766636744040307563636088337822887306665508969920602439881474467580"],["21263255165307610184454276106413746548727333029073436034507557107245799854330","25739997523012929398017415851496206275031985789061364949957568258286505361977"],["26355126134086195720319792868206781138981505020750527157152667074496710995916","12303393434778964841709703323537525800337133444542259558715742707676858369020"],["27265963563380996893321094377195974853264369374577393854958891852770892625067","22032326451423793898939700924425333689661758063854342213855661372614616446074"],["10656431187862550039045951609812488178246169476134517974713601260141113366235","4445944055685026959008298578965408969592521244909210700724200734414832663713"],["28442344663058476199677473341331245304818966159749702192810071345543727963969","801209094029102573083160198613083103940157168186166652110984144751268151908"],["2221400310415200413500010707074294005926055820356474918163019231211049035266","17372406693348681816872986961566104665884038215314290168899650247122823457775"],["1660191038854912177044708736572397279950805890469261883270776273660753427563","26905001227296813595291100034109141910138216167790270495184796042575237479737"],["5246668631948744669086858969728143154322390794786571728794175868045544436879","28875183712033881364471349137299456818386556948787768281458616245564704791245"],["8213080525969874476864520354020768390746162834285145351347346379973241237490","19542856830766219617333688490518387028629722271362600721561396661849680204718"],["1385988051959494662964858176056203990330942166532286285935948395634084367338","28569118951035007869836752228676098691299249372296707254939679274088610777773"],["24591161770518635394919114861706158799328459289851166317699768736951510899591","13683416008879027458549046409083715886324849251309142155186849719552193717188"],["4841231636980274969861075290674838804835919536899001925140997540913606888064","9206345119484237128804768659101614984557075384127049770471466754793765555917"],["18234774224676694505319405220868086433136519231840015972726974011995223550671","13446537593035842637177599833818016990734044162082691481995626239817054349612"],["5238865861310719135307011256914854785295438194639045196150164878568846865780","22533721619530430941060310451433622517157049645775383491302998573473333101284"],["8193206185705164891565097158068118598968750335673408772812496270411127814620","18495027800540900088273486916130947899473017673527348975924935066900511039489"],["10122923752344934688117797833682298906873553953370579878125822723922320317136","8408909895589626542034042176880615894025673779154614100905939299894151679712"],["5111109980212744851384591394775632837355215196954825729699555358158969673624","24791333166899128365705398319419999537978146166925728801508985573048265097747"],["10383511091564792832571177752991989888086624300121155578874697690071506261976","6520006780176174699336722454360846406204992336090471862132201369455938401125"],["26977101497100886570810392545132246854666631363543819711575641138289564728138","23329170643220050176905675685989916238760531141735675800884692296999098609115"],["28297927796284279960593648532773380758556436560499416766491279502935596856050","14753821639129296809927309530350532107644761766767035521513993428370375340111"],["3709234204845488540385922020352432903135732684899986752827723816443514247341","22170498637772620549615387203504031005401844191092309243686047288529059390878"],["23630479940049259269600762172208648307449455604779116943667876285486348093796","19813972194139610934882909053346687238170110551618611967120447430044479697061"],["6852406000239637046544429107029721083395473164457785882195066992944859338373","2720495437954663492745119508710464769805923424955506152749732596178060998870"],["26645101666368018196935525658044021892133434442780332653781949886060674169805","4597213376763002684676092197018054436256611562078338482176662304572653997472"],["20553862703521222748083120827786351005707125363346388504746318701329408374916","8927326020278059843534163364747321512563613374798928424793525136483389226207"],["18221050956894743755646777310095503564400664770538601671163920164454663910976","25621933917316103063313091909224516399811625042980433004479603587137510480406"],["21659835419623597691982393462273399799561080962957954779960786393423678006716","719271663834373250156908421810566973096164365711976479203954601596194073203"],["14794421782429289615390887431926767903659773616741738813141050114996873798355","19244572286858938318963014082552308484008452689887901051689001754723980863904"],["17542790917505401585162058669532041283871611926253115308817955069270308659874","21085570046217002362275529971289589060393734334819766425059086104095198231923"],["11718905714191562834326774181194890921813782317134017773464591064957081789326","11435105841122715721341392267429792607939904394791376079673348198521384879304"],["13574269249057902388402003867532349990714886721088668749917189089312602544850","4119926892816363996659622317637977345182203626352162819020531946523482818674"],["9402970474685555304390172244423998862529898979386405556071514429830261534601","11370103758532766059906371725760165002373979591562490542896754367802994586468"],["16776913677896772234583397377650914961503223574145787839608553911460759447393","8745268465526389830948490467890946906026530263096862422696313278359772732012"],["1822494346406741655379621075669972576188884234251734713238692306000881833464","10276456147832013507866510297534889356889621127332298703955311792382421330249"],["5707655173714806789853870244918157064830808169493301904027016104082097321091","893317436019366107145490786106966422784316327467805477636393384225819195245"],["8326634103212615749548930682739221043831335161838798774190186274286043594653","27048735672652296510237926061890573161362291620179322764667623039786884529306"],["4277835361937465328673699211234873283586344605521303283671775258440455353415","12705959017354496292068513785147268983447814957129364286823262454412965732371"],["16624171522191691603710722514959155925703268166894976224488216259401538418255","28290360443905475871076160310116968943956973621311436495556251993234391235969"],["17075413162057373359502380458118251190694939068609561904169462639508159513192","13937445651456614820653741454662486210641042646171773162285193618186901635394"],["549698778171340646359417748932118806491158679223101349835679705216384741871","24592880959679676595395616813560317793741865416271875042038583746104038005799"],["3005988108474335042096496948785698830884872777539338871772270155935495938516","11010653658839569556876872256611888287400407318088721894468773407805837458021"],["16511877823882135143297120512474789969467723582465418411747846024581641770972","2298228362677340397130748509672894230442895667692429780111609103601129008527"],["17461043520040634748758550965338399598765733081261233759457916003771885546471","18432626332808851102119222892945016265182008282051709000433536907095912805059"],["5890011129660528814259998125036079757373311920274627347215328264819739330013","13273741774540507600824967683053960306447242031033134104642342652176698973035"],["27269121077491842889829127860684052500522815919088312329474142595478150263002","23887255767363114861501906450612136710684875986686408755001640575318537062583"],["10834292029196835109338727911994807023995602947653522623789193134759228229172","2132873565309761768383206320624558117424984437680336522983276189869495077956"],["27572563847732392434211051755242807492973558469150902180032978766658706633195","12861574001570801308997498278164534447835142705689907600553117632534251768461"],["25732675461521165941164505767149919466534986677437153918893583200516407660715","19378927134973200862637971514315912573406424336912032766945427428024463516136"],["13914868873555277448526295385631573015321839237158914722513936205923750152945","17140491649416149758967944082182283399303808058891790281663000539054597266477"],["19518414273378187107477388228727596845692666179874622977736169406044068374056","12499374524488956333211640249970105478276389730318098777188251207997132645902"],["27761426113332234482559344611018902152803595686932575359930419150462249876134","17625398360992927327975776020073606167115226763039373912595659054837091337176"],["1852304732727282503178076239665897908306090540139905611685793152012654099293","9480183991963053487649884680875058318104529674875745814520709021008413106126"],["1286877501393761887193275299167970251581545860027366712849101740102598759419","5528171790863520865189378893795730915614759331846858606800567599374643141228"],["17432536483242309626177106640679157173395471866242948723771696781456153461811","22501487287811399417148080075718496310090731834866289808380218395383606771740"],["1400631195852977144069941046743559092928224989988729135019519327109497388554","574110068616511355600319410156809204976716622935417408607253329496594003927"],["3994942485407655126762809848721887270471478775144929141927753230956028481303","13102095439964363241270604895153564292155198419155646665755448799547492084274"],["14386423687221950251053636492805944296233464515062262714323443248958748845848","5358760028161490910517434486738170409235413622395707292898209280829595579086"],["4282716920872256308903044669097793021654541981778448156701835400591834040428","17889925576673173728380901307624069265631006142148445855935045746239702235713"],["11923768287932817394230963686123342982323170305142355450046527423740740613653","2115612741461348652904526485291750441004584643135337390680405973196046816208"],["24776069472981975100268984368153979051144677014365787738188834444694438407187","26897744975452051921350292734696390672350679326188918637598335911579328666047"],["8596560150757672047944140769765571997057928998092159903467028443905872491934","7829093412471768940239722803784349304789053643795784203490386591982495456998"],["13959705891660082183779708723165708599267273514047865576944584806171502537002","15619615063000524284056625130833012321244961478639862694938164796777012114750"],["18031891160707622026644409718837683312316174040343154362804708715500331236181","2192024511887478493747513527406601595086464505446285479409059544414842888088"],["28585311747091813868605348343701386871323536559018232333009581862245694430565","4077561039181868122986267819128084311042299009683880272820238041009784169155"],["26685088542071232395783420842455522260196546653280336909594315817195527851254","15998922894367079775487436655392814784227035466884346108666283914013665759015"],["14268021473102403097649178087882768404958681097652520012370594424010604823547","988883517332903576553613415353588344655038648941001777336264393257154783180"],["22697976508228952421310884497857891309561216066855525304893750142700779764418","562554092184235116221159783984923070317311330787594032921895207283862066068"],["1626557802353956626036371480252190110673591395674467458800793386242774491887","20294877803738214253760056918238203523552424245719904041331038307371943881384"],["8064129692990507152324376913213487287764577847197749990332321514953530724806","13087423055809759556794358405342301521050768279714657439526569931797811402563"],["24314125552453760103912626009408616180254397321958519253797753050198786040585","27818595622565148343449840067738557540778240107466921503495242786959241029851"],["11958517625418103049421471108552606239619244679578078574345331608347041728","9077456625752722814071118517535680317173300318360949657535003184421916338652"],["17110230782785574037055601702105074712664308199372845566164109012677023547173","25182495161887296371560434426708363132608594356058056575823728838684522085694"],["5933726859537754677845625169515732307072874672101087285431377529341248875577","18331841414225753442852284028632997308312636541769403073453457206687341190297"],["7546757544011118458550630516335749763530540424745123051611296522179711817855","2973971811584948087147233328140922782227669510248633590405625399163949225165"],["16405619328607617033231706546928433630155783018693221299073037692285850046892","14315879847158631151442709613985529476579075848442921295848186133865188920741"],["25917707372079459319729018669088040861167321094455027304858157582112790074506","8976491676042617955874050774873869916626304103339158136491511620086313661804"],["2323936231376399156537934588483605653794542706795133735633453644077115640772","6558909376018115715154198481360887699380228382280500424313804181343132392208"],["20772415487335048664850603282259697384131742906490878079292978378282252448644","21949366041276274165851862641699105512885081654138208091302769997874080215409"],["8704025268872787514482712741110338002623212783281269096281135628675022089987","19420449930949609456091929870685118619568778228105574767922120639850120616910"],["10631405829117786852106994498112299699205636972427583368034016729391613800039","19646474691783498461915100442018794850028891617393346023807353030536122712934"],["28551385484632849509426443103691147923008892775367141794061474361342765281565","4584905424674832791954731628599941214105893917797767622806511663606344528788"],["12637796586948585231850963147541434835684905546889849478586916646095203316113","25827399305502881337695444168284054546855164329362756222083219549040276943518"],["2724861924165158363963636187732177421270229567049233612916201048167238798528","27451917404952034111370639594290995472708062002373914002663556753799932516139"],["24725119782883077333316471687514964061652866673560403914127619591867884880238","14413253451290823021725437069109825853738708023701160155541275579004068708856"],["17886143910489083726968249757987632193479971607551037622376811180267090334611","10546705499305655876573820189778496889788704641860559985115947495042432363863"],["22278571295213419659916154442569275276609831600711191580183337554474869248100","20506112241226049015513197427453581755204077583811305922498193530837169604894"],["6248106405471912936768640843784595741435736349551874037782529794871562887744","24995064696155066444954571404054864393494322769340269622550746874651549697901"],["3525902566556747991661412597096674571477964083279377562825927469060810401896","17515133671523982775428070134599716835621183453333615835226404093928785079090"],["8526535989940711377114480281702001087205677857034662114812977413153981572562","4243271564551325595359933229744121071598706498295197848075602860549070299541"],["1292255738865647920206306692192036503061061480781008807332989800888487434566","19000918001829029593073746255381770448373817085026069617320775224342917852877"],["24780786013809428335076527061524941876768730654373888914506999666759731808790","24869985116890156327531313678246274660006814312741990644354910776091069030074"],["1733389225506308008608105654516430068326112641216880108873638360203388564745","3196127031288878750575878955700499048037716376759303441931777640453671949278"],["17291722806773677230246692799116892559527703319616760612482584048875800806521","28613135303661123771420563993233706994234862545391484585586566068600120279685"],["25907461159522469542406688354726653926208169245182359036163567253139967015511","4965824893613553873171348310628121732312339879772296503959891992933639196246"],["16619444662377804133325071183142038540361403156403783456500941197091169347652","21943642567938881926667667779845992872628466729649820138376714520619821908176"],["15493563979319071569123846610380620607631668945630948336284015912884659045983","4170105587658221715762618890336354342524909700890959632500669650246470032164"],["14930953129066826285043098766691272880159186540119040656621811599773597455313","20478290099727367705673146644634948122325412705029308919675757828962375257805"],["11553198778150117511719355068819738633318389353051329075895361224058695689976","17363735968776060234318572186911044462431323909902452673544431215242151554470"],["10275838836677178786930586809842956653223683419543709011655996184527017846326","20580287289557350113039869986377928302624751048174347638112104843126022901589"],["11559219425197535004633089158137409683143453165921896818133077454896758192651","4416486040610672134309954191502459268626578623425256922662676819107380859967"],["12395367439050281043131429038601741895156299268010436695947009649863642122422","12431734257686215263747104613220789162089678682249755862640601716759643701967"],["5911145769547848882402551685496185529144821905246555721533241171623272043794","22262434002177456304846729599001189364647994910422553077585109602304624123372"],["6608574763559149293638268469094446332520850229970991580555785300391801136930","3190023866002608447442539595992809929950453905360473621495685622026451872594"],["988014416888466396701999362270475349829795123251973965728788883860536265879","26361047152213282906884184508216846044455660898639300756385623476632227497435"],["3731282678115532575636165947900095450966761650144548924704481300704867834858","12309201654787941174532573073734512355824696993466899237141129497835271386623"],["17363055128574117893431652245089966007875878673560424052649116489929009648349","18205617718957815139547302217576684601388316854439889067513786469016413072630"],["13660927960756691969259149430552710612231954550347657552981712686695296407352","6373164442097089368397777117396158381865425639005585607624797183979873896925"],["20437860718665131529881890196970354631094204357237314329549994303474055067556","21512325929744110725536555410582465620082220628307497586780035453505639952482"],["16302806960003925269445172914215078939457685490006990805237678174098418959311","21737130678437761802689088603950177769410121107719206262372028900427086900239"],["21070200922428663245653900742861673445273208834811031555039971850754188890644","20261074427906881320960172014257905035158344669098054952688388151090287939290"],["24725983211163524480392489188354112510632360933752139195081527678722727559889","6652040105325459205068527283242270505857436051849036349390147654600950669862"],["1843725514484899601596629074269414796313447107615525800001411434758159218253","21524004762194694135761480935031864252139600194775126395292242075710717046568"],["12585056207428234507498930590357582690327669951914370921891050158154883643118","6411298531796161550025082122826256839274582268843447852893004202659846054688"],["27700483665879295492895218160581387308822081388190907515685373283510893788468","27638747093821816801856616903083534433159646204882064000294850922236990436002"],["26426640757580321447117647173002500331672535935353141826561055788448910617693","17098308778120508656902909998872381553435585666363399723788962121143898245058"],["10768057589011855104256270951826631127065044773315481084792977905711226953202","16448608586192256152746669231068786088399383877685715089221659994183462737089"],["6320864333187448707951213599892935049171077212304484508436162931058224169617","27594000803035232912096179452758412444313050475548275929501807629830288477603"],["6445772966596922109010030962949005086069329983537697418572946282542079933949","7503519473650747060958432570659072176989173654757011338333530972669318742729"],["12884689802522572849289081344450925968969424408759210044520983347034043828322","2612923175060181298465889223124407438966966860936911294645845757411144691053"],["28338214429470333616811308644250223472984974879353978494594422853284389960217","13394485136823655156245345326713922055482001405785377907211651594745211686287"],["16133376142351462131982461023272372126635013469332014475456601831282763518291","21045044312095693116590282316802791001720671692052282301574329345242563717122"],["3917087277796076069726046613828631599110024260399847191072989817155048325539","6924365240487219799802087804307634884937489635252501795489895036573026108201"],["3696396916512191654237607811812634414406621754120860093082074961550658859406","17850265435131122691747028168743946635116920743816740512990371480668240533959"],["20849795075573200280518828394557287874648183185353125251619557266144547055724","22142989626752837494813366778344468017773621765139054194653867958240312480334"],["23323090323371495473229752546450120517529374459878325466729288724714704506964","3163961791331326981322966767818378936090918541696322073754715517234835904074"],["19360705421495216727504624026987439985964609221099540255135788440447948591033","7590190837141130502807537999355123052762854187369869313848582737653193349673"],["10094448523076888266953769365572721096905950491448301345622419639510101339681","20018755689074291805133810464337714777376425074696595828269107513126262547928"],["22519005331501742140004961389195734100203227566795499165899976164988869077890","10150858015322268777426398997116123636696048993588905281548773139488046142652"],["11797029244770691169585261102870894454573790695709376837616704303785001324884","1918272125453091595822060161151609622302707044406335644241495337442013017768"],["11500062787370184641917818665790256293660853786631945806799099026418668180727","21769761317847688093322783172764528780309963983160132008587861697458235244239"],["22761843226981845361935453236925180863480944829711122430560898291115162013019","16440753830737932360024060734700349010213396712838581073688027908885157510726"],["19961609701133697379815121908946042816586638241479148140145988147862409312897","17702558493108782559951438642240481233991396212077785933286323484697624390809"],["4787760786347870770520759101159783608899976315204202177884591621584615483870","9653553520903165517829012049960873993391710925473691952636382665718395675009"],["25338656883726361504013791417157084020849934498347347700906686763784475284050","22862887210054472883416518525056659303316209325792928911862376678956142481730"],["16142693140871355829774525952017478380199472035672426548800884040674028262028","3644350561748239702513388888845684915169849198177625514719114968408518377816"],["14651277799725688671830510331443986193607281364774930565876278504265959685948","24360597633262188840076274250637881805810635826361482534405027707680964970438"],["12258956468266002541731787932555766805883640204847287468133409078094152970502","7550859858968856990216414184527902577730895975016357645025931009067261361575"],["9621425268530772812392899337945823707124484030798720630652639797723809819559","16593572010809552789694662663264754074654369398347573216143633405542117566796"],["27050888013981305889068581687272777812338512411927742243655725524263059598197","7716276892471591643003852866408334203226789096788351968225800561003866849491"],["15218257397753656783948351771152012492139166711441576605681062217952202287649","21635885325168320464851229631206808886097596493083526603103280234561834716772"],["20710194663976522408997941062356280179773884146105917981125061141484064337905","2819671065463242055705110713635704504813251027085859844311726788518329439352"],["24227763189528035029891441724723699641207472557021550982523755340596105436553","5348672075677984399300873339342828034986087810228624982526796246213419076415"],["28686461603733835643888471148064166496476614354719253885153722313953147542066","23620842397012204798377810811629110954663228953838853203151497008342728770258"],["15887152271456365105109422272302938535990836836685476638051143343061437592034","21870543877230626261864491562076520450401509297899288623319797212447126963828"],["25058474184975914065016876744093963285346265175146552181249366792247628565165","17303432594660083052212884816286457085073321339011382278559784375264631022586"],["4381658501629960770683093530901477983157830813949091767358042330904905146074","11862434645339927143412942317593291016213137022225316395571562670081561252906"],["7464679603514239207777114772049150500805896188842360366112212905442946682158","3855352915391902450728204921706490912277804067825452620094630084036436179431"],["25012230498401116772933413380978636504443637986258996554229523918165850576229","22117953890924900483772611190473783658907128240580435530605033956636941641879"],["19312445909435546627895391942152251629960248558242964525902679717156943061986","433552255604450152935124821069828105280987778610780083806332114912423618257"],["13268786459324002606640409827449913222613082300799808708536982266944606660437","8123980208348937617484835182285388490713786895793395287356024897359387352625"],["28626149690670641119308206603123774472530125833498265983759827104410256329458","4206122169611227260748424134448477485286016175369738416762200426303626757466"],["1842101392077432111961130281858148466540281686670387098711189001137112164891","18447882321199822596762519504188968519604154724476270002018203026835942955084"],["3829603697697584479138163927946261196374704180294585166195160454499123802382","11057245912158641554967222281590819865846804509629964414394161746724283542526"],["24172713000707417806493592005072053150169565698141822187167632224215442234874","13137865627363749412952625386945672458121682185691338252248623918466832140667"],["10872958783810839495502757240553398998105824007119413854220473251349098888610","3358327531391230537765607781742916792310749844537214426764551992021374921626"],["14231311353587183167466512778103584681554823159118730915893266209872739379288","21611722521320603698363084581221038501870554459419784106732306461098299783971"],["20321553779146044871736981043216825405650708703179715933045457635750418886885","20474475133083462872375979512936181583664908006131607691316793349502699041337"],["19474909855991713361759509438895434470507355139496704592072327722909215157446","28311271375699324994819795314138021935907920172585535377486556201465669310939"],["25807226669578610510468657675013500323540542528797689682061879170534655949581","26008745402806044375337638063477334414393352721612656042687574393774807851188"],["268946969677672703737781616114937739504560585379262795322396140392626770508","10817222275299214575846272655434931409833428861988543953824179414181638230882"],["10623142323788312614839792369616986820818970991536919201771645689285060881672","13476230757182422146583805326809744945083984414888899256008218539726883968261"],["13347839678479144580506362306974816641057969999947536467873361451710103225689","10305492803168031133380068649185630536621276067076151526429323389703547734279"],["16877170543449935617842306306172537567718991797012884561963611708946484220900","22537111933555417193810582831317804988268019603022122826134110473158368790306"],["3126918966806568765936930083807945873019958811056524457051438840909102675807","4200248473780924973948731491133995294506479368928429623336530943361675004098"],["6513975674683129712566811341213947786223197139993153116941917154420258637102","24602788153384974227225475800748749054729058384811156540394560943735572210953"],["7370311939255234566396902790422763776207746414824294989169017439229219850043","19094475920257520571235795614039166882270104583998806496086412413212656284392"],["1370167600645461561556020278706565439798050990222304399243178380209642640744","5772206287316573112830341856168578477357300530719901770898844801813393644041"],["24544778496766493366554263331701099452830078613646916764560929506799764017922","28002875241128981055767643549678346134268335645068837483833396898089979288240"],["14645250846859104101759381939472696538114586739774837685258032436647168475494","18382493306483870699260071137025123345413029376341803602025936116252534937584"],["21883811868993004960999525379570590660599083201775244773697809544945901974778","18930869181521302230501204469759889894959911466628363279847362864748994673634"],["11903915593619813471061293634684086060773266347716296112845072202789224806946","25643227773618731408283063669177200658332996652659830088919471625727220171600"],["10330987266668617821330589874392242414338665544861810280268517853772254276248","10300496846918236648895515239731357621899111440294092990605912634923759939058"],["21421103758434521682407477577087576382652408366378366373433286032083458851566","15499032769321740291671421680432988696091740057926988078157950807037512995875"],["1256755420409857820908093996688774810517109260232676615228653356541521868234","17425969836087462092905736778176861787651425385927294541148853521578912630300"],["2150378718552891270824262469263997594621209206458284016627486101899931019562","22578768351221538432541795373795120242072860540138593300491882322304501498938"],["11484046831907575210623348404176758988354444936243560306258676418975841381210","17186832187749292154031061684055121808857040005815648845157120675123995470204"],["680980992106189810939560330568978694437270598219641998331043275337751093935","20541985566397379483313341766278167297549899367997846513281498390258950458498"],["11207088018040275095849813602953065954585805112060089786343652962286334163711","28051523288323818557988364082296604448650747643363584889106993861106047528894"],["1442858644084699157961440471612043345167391728416037274727191184662722269527","1170560832606447002987905634314172721379808773718841365958077765476537401758"],["27385933677507228931525880441529948608712006496749199336493042510441512856054","4626010543296311353135361320460615602289200709562235229878703447964176051765"],["22258251245827713228977877786544899351150970341328580602625555833113219479172","28478505168228578682622230457848700216242010474831388642836266931159678952980"],["27925208493066804249024333659004833606994538794568531770282796571765749424070","12583370009559640161740819561259904558479774328517845212106458271523086432766"],["2379911991175192645241060562568956425064231550706722912774320347442682767394","13956064824416223954020407206293308846155664307930641431065609735502772690338"],["10672799535296535166178451034839422357440962043151317221720563997953836389011","6496996200560764483150672144678463722024099268243791226708063501742075440022"],["19865172202474278423368036385329234725510052549137702509499969220302067354493","277121544983125322840116915847510898480748138632966500577206153878541267405"],["19034987282627699761985737966336404665036917953477027300698872944280759137618","1719434092839355047747911053740578195547506578065213097830545786254246379238"],["18153350497202737592282868181117275483442783735362190322165949813312304546718","123655536318198082126895160396857621681394111636659255355669335329090604979"],["22724808148635960764010878604061551824377880014737990195696806581402291887731","21286757349884067101876547457443419254061352423713642014176580007183394099074"],["16344924283756572455371672286377487709615610894911074686131246981034848207261","4673905348148986632103361335258910421060003374882009856173420683216596206219"],["13786364881715158120845193462207219298901203441565889152692308732572107091759","19362779156376622892353134685961900929435450032547484747792329518446415374202"],["11149304087556829023095594426593542209337199982024773026531941235208095795832","12227648158228556995831166567397285177058554275205995987439539334855899543059"],["23003479124493628805604555553593112048086247121314859248277616878460083127666","1133712749584883532026410303623988409100987545751741572321894948516692902225"],["7202014265842562297043476801667179373168842003857702074893574886023001353070","3958121774983658900678535190657411896680108668718999284296383252321592883599"],["9531681696768219228227963124307768838351570258028583897058071845819885307587","17243212215009139724884214984477495118118285309693417169628354909670607975594"],["7536191663619827013132590470132743764839459033116544194778746857266048278287","7376981811007282112574220018705120240159001532432203193116882801584951351337"],["1278160934606600320254059169261475189849924772836873712329865304059499092487","13078911451142483239683462983065182501513261652310756038807960875741123721800"],["23279308271482007847816201315047235961565632818618551838871298069642825352477","16391262937274823272983724698552881485780406554346591863390276774248408579445"],["951165431550781435079818965841693808868817067953691657048119159774683205448","27172008785724703444263877473808049588605982905269806327760615390220191160335"],["7260935688463545217247691498196879987186265614741888798893221167905709317556","28831834477968305113274856750140150225349836883369781759663365035350765087036"],["22488663077469072250588883686040295353237440578840191804601960980628560873697","14161034443507532048336957142533799768045207488416575745918332913275537387907"],["5544858993293184019358048623005042790117157063823283113692370613228570846592","316980259700084702786820315260155696718972863375112614538831936514523543155"],["4122004031114698664012009222039315617286136235088957225815564225199166834066","6779735822583682236009675079595011013695289264565992186051451084392230454855"],["26218293543437908345565035266162487954654091821234216549937612023865908146444","5751118697790720696283500973075480671341574692942008951133734970461462959841"],["4641584667810651874345787035564957353862759643230393376692482409850707824668","2662042205337598795050345704754343227860240862567811318810774996921019272131"],["19049532421292745620979368987856543039805689095033198749903627477594890200368","2881323255758421238686731023899757768234810651813424365986616097257070565197"],["8549041206184380540144094377971678350348110561498824283374787264223695206518","27602362507254404776435465578161712106853562391664163656411470499503645521997"],["10149120726596114725552807546474739420673653929044295753239371639074360575589","28095245561200419472002728899197802086343987814162702148070849144448075088397"],["2916867048093782050835521727150199003979006688104077022878566634312448598872","2443162708027983889138647333107759095799798814219962172491629290854109801541"],["2781056658819078344178767954170390489242219691071744817219545696139549009632","10581074452455998199219599710219944433763657785350949102330521070071986059020"],["23992108181237836608968814517543886979557447681183121081957230003570512757459","20617249811363605822478230297543115608443492983050762287964642074161924164828"],["1137557359151259689240618963057995052984494282569860238484813373099362631404","2615808217755475891912660361987317031007624567180237784960723689312579318302"],["1112570116388735938438726536734880055657740014893439776875706340790725701178","16580996724139539806633746412682732140487168985020443559825990063101148783761"],["16786654979213946333330675345068982852027736262783767492603029474907452977422","14020304813888555370856768678295754054952291063619389422507528403512298324938"],["790898006558952922205371769284792620089661622997182622793137277592958006460","12824451103655960442391728830668124437101908186171707274386871956542812212345"],["4370295022807222882084437610376272623550127245424500751383520412695011371975","1494434109343795284669774933079430544325419684560848614126216274034043581601"],["3216458598094952040531930198641924865287593798829750312261927272099692517928","9974998949217396078603225898832986234643299951080119945140369028159273828397"],["6351753179172485624101083803228863723737875090361248517521282486631942683702","1292473191143675590867871063374215804766730918052033994663368780242639645040"],["24727651457487148975958289223491536933580862860067916310203509906902317946481","21175942356442426023105669635849707177920327063809494421885912741142453033471"],["12828620360257026371024503722450921037889626940766646574515275605745836733472","20061487722632905590528544287484712180852912405311282609710746049104465079389"],["9760595815415756721466248467171904802629856246720180164112340152213916723881","5363310813758857375220415122750546744596150270619691954145598685900292336826"],["4283283632897526065984561995265560889688964612797010141950116847018714887036","25166077629080444756706228404943863097965010746592057721025434868289559452592"],["15368199962218980981399895062325832553887244110404121023409906716973330314579","3931165599650427158440487214378793110691903472004028058212957899354219809780"],["3943262439087095374777771695443988702525800536380179645600451378794258058333","20666242324840668469052634253256048102732089649472315189825137384616670390758"],["18021865620642294437757192240047055175785182638450943970619373501306156538852","12515427429472924733281212739689233757102749232467403535579837951173027592296"],["27283767009688734491181811485167421500213559328650094872699005569577816449270","141933303408720937069052271185313477978416228959995039130793990579671241208"],["2795320686526530418701588971815203279537609780215366649399576489193643158195","26006662765299781210779637289107082925546479034315166539937867576457014777141"],["17233201733840337607406179037343620392672029854641922219459581929003518180389","22662272013486058347820455604420665953070160223743249860803967814678071567134"],["12569834679629517262752718601781575509453202570122172942174146048993018721975","21643676202582435284323794197423798026598388501265435848627141968736518164021"],["711637111653383177063038390862850233860266795336148354095992534697733772615","25319021956879428251010049930155374744099989273149380118955050747757041135769"],["11727747129383767272254977899853575164102210883746354579855284796920459640079","15321669243680502726278189886011035246380139224786987304777016292245806692711"],["25206033127146664315878442691991571906283825670140925851308979578771550830537","56581599551337777673402897552161988457961859333449993709152602075044421189"],["604695913496419672491342851860371079657777389653184188489182809792698119410","27152612322247224625978254821047143049346704790797656832946523725798729617711"],["25224462974699916210865612039937515660212376913251580809716534351055402492827","199994235147493998578294430150993540849183769193054425476238376058246972220"],["9869018360447162848758624366781406854704017428512970235049713008063154903844","16622000369565557843724343997776090083496057908656198776844561966137158686605"],["19559677584014801942407025117102392917360754946822526623776641047927903987712","11540707084317695343120344158575960108197141347130013169377280339667140075166"],["14084460029182695810303601656814887011882333436605847564276999771114867593014","134647148504310038251828032751781555997503974145818091499122849104631821741"],["1765632666239927638503743133262813399268984455170880862317403156854741778866","25321363263607767817548318021344994582088877583576580404263807529967141089271"],["9797477362000031820339711354347590670497882177360584089554864884476596521137","5855915890514834097143307072399194909959899476485449508212152409762382340420"],["13441580204724129784557254078658649339345265173783886310510186571637031950691","21353717007490193107175824235586222547967199517390091286200820464216589701169"],["81737866577045547265653980970679972599743555855607139053640795537778183846","21651370470655985046870337566262879258738284177642613440815073222265759701463"],["24039254666910430629138600431215354237885659134719407392464942609629312891571","19119568397852313542035895463944590131927741035219596577048163749310961504629"],["14718966988263996500963791613975281430543005844761069571975689895914044480960","6448641312916171075126405774436480051237255844655203223980714382653580677208"],["21456075007728143763771003007444857159019554851791958742157545793667726379278","20486421024812873369312419072062994880359977739498074341862365794401604200473"],["158115618745475495903159835264886080410985135323078473177557099765965875297","19093428623868150681275427512729057509673807726212402448572513506153669956097"],["26295709359967087961587814200253553741470100167490356142660742534938445473962","13612670424368099450674176929948521199191210086513352158215770361044802523707"],["25960199308411357642221376219676709369848620388198775624148635248650289639174","19154880254626181678480543614897963600585343305238908095681455617485628941893"],["22237204430533636518995642469488591175901181795683615450443069814328300422764","13452226043504695117010856099123905591859529651166071609334298270080301959693"],["24021030309155169642475313019535669681913385278839465295903059832269537265239","24242782658609537519883087646277570874096275101867010206341130831597825374361"],["10214768954493647180262866789444015211651726851572729334330862787889964750208","17859058428317019780787838641532154967963263427575428238330659436426416275061"],["12526971018756866570513148906599757581629198431033230366805154186853296014632","4343998137425011584083216064099738328515310698652024175120355305192097837556"],["14366411826352103919356736905906119795139771092238696099590704217027456926537","20193597501449693344892957657312800076557978031568587978585688921257810377429"],["5727737550867617634668965042014641360883691081137251422383775464563618026791","20981904197009836759986874895354745058986629734315072502047359914788690565043"],["26128058199823893840573991669785312554971854468123934670612635368451022178676","8898229145959683674556778109100154903545787066417372849139453403633628261764"],["16489860191373135605465134308467634726304540515125783075271270467341276969186","7332782993104818148364784179893137185828149427957913817941009889634558267077"],["15920176280814645217306218265297195228538869217007199400463281545623393908247","14423784544283376712089694191270248852698689196747409884309553706192015034019"],["24359311953308214360730472242838699731620326139438986640430977310700712388769","13600505275186571026145230345501959978832820367760879365630696744229178729717"],["11661056113729342834119609794331033701681585684026302827733751755917189912530","9825439769961860077072004794892595115230557011516777824534829600091814989961"],["23222819899371004297267577697352820978075650650631557090906897360868657674514","16175810157493884518451416863618508902410983390579236941078035828594314116893"],["8066442694996171366574315445577378910719758167993400873556405458375971269129","22424725970001864355243628357697806049974885543081089895419050760580743974620"],["24523025523349423313538756202962942320556203163810743121201736445506123110362","28089762715978476013397388886578401967345721432043968169200181158820011129084"],["11810604328682845363797301162875895875365273262343117072361166641359902200312","2285274744296151120279485043667368458832712278836434338571369884316721826736"],["12473701781054405440663755750039835054103673323228120467331051134393658129778","18461527383241588712333696888505684351334907681856231358908682461417278407148"],["16486080630449578299460646260194637748116470527030923779937047506368399224840","19317638016185250351568459778543552988786750316453550020248430652102684023422"],["23998648987417415492687830034263502208914270507892841495672054832648175103810","21202395846874426822881129508978888540409044837230500555718136910388637668007"],["18433039933277908726842751149840468572970344879850775068721359459541745438200","10085211680044034509906265691800669667964548048894166965328922300649874657634"],["22463892330348640407781422565969307919269516410329388647330939649328986057293","13775732366189146903565397661640320547390436390911188384402330559091321214468"],["22042187297363349139556011740562967848933032304211488951020826780413973273095","18961372274401367694084678375643166687396702634386243376865146397011458163271"],["20996330538206581690559628771991907287646599387197387557093775872668735968446","23904865466771656193144335098873435427094343436220764708407790204133989142212"],["28547057685771648362613706550759393889221504640777466649374651926598711144956","12687243181365404253907191438975966330390113612116243060541098840952059310500"],["7714156260648421216513978811125860850898559107165578036391901134089612858637","23347868594763337465435252612261914700505136210977747286172362488237752261008"],["22291929515388063665339806629809626452192261466045719599778427845617035235446","21664702238772041166146829797842846519805835202432073188276136540119602060415"],["19528152835258030248032150945182411466621323961067593539087669641848928401794","26946051197054065503557456270646823219165325012425187006430326988034646251031"],["4531728647781520915315957933118446776891215082554617722181546029144191094226","4797268335212721073555704049506574418018568479670056613054722051444489245024"],["4996300766889949608728084462292845359859914977856146752763976754623619333300","14744419335090528764465428802296412699360454386321024152306148753903000618311"],["17347272094593785188526373059384501502487146617470003866052103136316980338054","16796193055764374586254672679834924148208002343965848160539578150037202639463"],["7665547688219444367842363444692318310828692630527062534015862600800677455344","1346696340379017364720009675061338852569297782243129131196967306915615447462"],["27734367973558034614223350034494346924744893588299802797678817577531000945582","28930761185905691387810770547526023316427383788222463751372496502710622012443"],["27073818214065358694031222838987064561048165160449199175961664460512424029119","11176817421866470277186093110877032345695309850440017855888709830099590190428"],["1067925899758281452754827976977426544071511641220832381850956254382795652006","2745108795196929343629829692041863781562852735672977152688840772453625278370"],["6277054213697488032321600419690758214133220417064566809611683090472257169462","23460820676822088489053954635656691027380968069691772761533141286540230231324"],["16941909191410963389396048926875054598306692427940846913718695493914665196701","1207856414251225989119485901102473345590958339499753893014312616495513781954"],["14161993741171108569790234262219050842870280993857701278125356797398608934768","28759802762852997082638713729254022240041605127222608724637728518805314017108"],["1940971258391564595387693321356394667072478962030055867551403302112904283561","4372039683640613218597963688298475630449158660499606495871919027082360027466"],["788083171995320238263965125563064858699419597572061302560236407130092179403","12949240236564090394128829803824108954923025767671332743754464235584144747212"],["15914317114959782574503271677466104565886369348743467700627326092080004450523","10559160166167897084514836156268616920231555719861945929925886232237616602748"],["1817299194418764639149616023993740572219202928362754015940542912691921998509","27302795020859519638724208953536963162037516391818765638390291922261089691831"],["2521404296870299006865923299564527840784306985772867437411280018744101224670","22739478796417271480397542235779111649949944017606773077827223310020365593474"],["6267681760436599923017017220358027789661111724380784963264169031982734401530","24269731949038784455384781106048640896572741901863250951465710418013751159406"],["17312629158799516076984063917048487383802033809401534284186731486180955753558","3709020450998385251760446254934687312732167786576076608073356514151185642230"],["23957315311528591422492390441497289439250043496355486097401043915702533584933","8791799158798907254899633603396394518370811961231225657660333584600878764695"],["19823776400246015685083608926103316085215082517968055715877839437967257153385","17111355743736956233090974096334825707006315950039681501529883699685012740141"],["22320521351208898492225316715022774144180376359716227300468859790887923522409","8032246244447766326292366278622257713242952824188919361402347480101614792800"],["15355525487530834255470491871970926926135050072947328893119946654477939387260","6273474936911580358774547759153645619002198092131973506808141282471041577741"],["1522322808047705201224089902607853050178444018768666455921812500601343915541","18537066946279505645657884382188712864556601893655059940672819287560773725155"],["19393527282010302582102320297087363957644232796891219263955001015785123794112","11463506500637384174951327632321073637175425621161644814174913525309841229971"],["28482076899194020677426258872757920994048198934569710774294274031100165684563","12089105795512444401698208634201236521491068539452915149592567367469883941456"],["28132183810686683648974418957049630860228932397678941369649847401746996496347","19254756703560917591150120427022000732203335052152347436647011735366304577794"],["23891397308246723417582305160828204984400028498337151292712202087686596792227","8110589591495985418562988007433870662632277916911648541079819865378843518324"],["8296257878717425583889019838603920717413896710414805325322892403087976015544","10788642579893358928225343827628036673724463311680530259845391862206053362349"],["19692422001568034693389072428531492372120019188795994607766662869209675031659","16751043579082876414196418584837740786090610861315263738052814306304436107864"],["20658225790629452649683001553315353729749111486388629556699606046106650731195","27613767129915488214533209069794544486615678280730117488687531257659478108973"],["2049166166131094946090223255288442754680940135084709526310630394155916984213","15873152392738297703166775881542761776767368259658067489423026864939953464100"],["17390658974365522036762100345444047385009095126263142578469276440667683524746","14129319298416323671599540611722922977047395587679619957945812230645894647497"],["13051206217509921931390821872704616230868648769654249435384457641416290564879","19464404746983934664018032769034427229860828950124128490563908111925662056830"],["18520080380604101471914005570824196729919071219852135113342948917267660659355","23842622669367292280190100322240197368524099352384571891571495147461363927639"],["8632088764353833469730276938138252979954324799789323143717896394820876373146","24366353690875454402529148895553501285510731229955153847372290625062942614544"],["15370425023529741734402886298544934513421847211305802403962547446759079429914","16942432062860076579862747955474375518872801854052988126813094962207040125799"],["20471901296022680515821137451933383623313120388009919855856167242659427306161","6394517313097979279048657961725240729500744583765321144510277048951299802252"],["25078034096490486996849702593669517134653999767680988279754501804895828860849","9449933451658016412830131800588457777774455076489527692130181210032225970525"],["1118372541624282341340246441836741341250744148886629100272593582027662421362","438476970706431861014066957678734513772724501140558479394164684890182330064"],["2436222081154263005032696903930767724084127558342211262505340061638733138573","13568232860617585969055707712443858756761363143641811164799171273509459915619"],["9548318710125930498743378138532467197840239961408369849750189923139961209358","12503508538261830449398738887521864123766864524503025092821410010117211081289"],["25576177723302826127411966335469994896204897599882016275400612507279331892615","2825911143392235080170445887330592891163918423611785401662024299596469316950"],["13077636682495820515439263173878782365395127157847405385743643112122147673009","23368090158850790846261532785433274284954358860170040899914704703805750944443"],["13695161004483996300418090990117864526723955235401697682691061328945759655588","14880257650841555268883114382762565668652654509327815896454967818451856532031"],["10201703043834302142095065917562439858351326106371468773527163293661511797873","11950022832885873593151886647478872855154671464463013379751504689394406522562"],["14859286181225828756854379148725449840806133965874824361503315431274514087323","13345479171582691814012909234280033802739546433125651093783945709453301928713"],["5912112732686824821650322760936976209970101809096787917608523704156331274915","277622841067098379848708538437217194130293639522406572812269223339069096452"],["25123360998686580501676833878753171108041842033879795050296851582252488001530","373127889538269242066873849512249174972341891835157161640912435062050964497"],["8948001029829687366900888827510626159200824603092443589582993200829418437860","1624621856192407793215967916864786305720969733846892826468173048264519157211"],["22322016600388664026060439992298310838586237400170480968350894987998396522434","11239692696492272478577205103107934023371619577125722456080231550889030883389"],["7512289791781479972717543611832018015082060380743949098014880004434217143672","4882474563063212585635655193264834050440075967643608725459517926664261012865"],["2005669667726882256179047202074476732910423449153335445151155931252932532844","9315272450974189473869429367924497219731366659088088855935084993939382832708"],["20546086457418792373059497380161551258184242655155901707957085739990117919396","7898984267760150557746897476754272971016008222062269974324088471563581458037"],["13358124092891148507990005141029343950610353345302153951134889873351034959609","12048668376204763999296427877580773782162010237523067587598324564500946909831"],["23405549831367762454376250801284647051245598976355292903087532546518853030066","24472896181982115171256482772264489001463371974336818030903400100344081381516"],["7090793752357831574874477536661903339825980763185758720065349240055241666681","23676102648513984853800772001764927783919672599528852963676770495381699666005"],["5414606129197977228069214714959008076303541946204756403045791260979359389183","17413034379673148053424640717190051082767920687999570360593260083163077248663"],["27374947660130859666083993277497330705205675498831869896143057644625460456405","25651193354349873476884759701489383435147848184546049909227345361534994162011"],["8137919596668891594950299059721524248007121776360536470921860688810251849833","28223471322830362899092147600423374435669409085957574525164602951705637821236"],["15822133224317317711516125971777546703789025621130757130955276332472384548734","2559507215751925240228393108514537581087481067608190180428466954577259450922"],["13060351353987253048063876417939981412015650774551321327756496643435162187212","942552105458999508249943808042681119272447395392158275541384271454807910023"],["9761750881442315223858452999568975140629083115330563863373135025555353534907","10399225342290695047831173246866170734209299386855285548900968854201388737851"],["7112730992944223410902414012472333280950620643724445227294831279636336178533","10988363179001881773589223274318717726085226431550339582744920995500255246511"],["6438519049569263446085697723550999165986492546834277581320408074400118299174","22112755618455046572047086361011691807679758587088877666090637178987324911967"],["9992121067653320542959462720446827643736838564823152457467068332642951590293","1655386658918558239094930298257880926251685885364791853857263843615080518100"],["9177115116837068182359525544485687286647518118832042558429921650552871411615","3435004101910533191559247136638929775843972116992904427475370163521011283042"],["10300897453946431986496772221209342472403776704803714525501738892522368330974","24499188409350850002734332496730242265386769878130679734902498437957843465188"],["28492732759316118808147596797004579362401590479613923390252179654424888266179","24080081284293163886917616260037683628128388773896337346828613579831654311127"],["2830398642001640076147633471277312834388741801324499129240643484789191994420","20401343699187793659710218327827122301671464589220537099584904539485998919203"],["15876178185028141890188617400716805442314817297207229926050624544814692518521","8604437287967711564684114141794107348108980560364416326293027285062189839678"],["13346404896550630239668661729124084010808617892141826825527292402906157009408","28242194643401905578176912331131264014809206080082019493598072053856895426509"],["19805567699056194271961814276237660701278115238918911836837229975180385758666","15480581161460416252203764977013229276401037848179366510908600259911210926887"],["21210536907081646559944413702304100670564311038976153946621210825289286053052","15991122450373488266838361613388806991069644380413442140342896098394907770531"],["24266072529707330671551395206156443536019559720647643207543482028106038261463","9699245442996023384623561777640164802576863691454228890992837456214648144530"],["21732672714236197574685286111849949757514489203225505219319272017401325552724","10976034154775081348416653589586296410804348309828577407971902353143059488583"],["23759762722227873647154186977972966606100674781605872832038326284623724414874","9627714292960380567627388449471340662699535794747808942835660012460150733521"],["19604643329555391919698437777865386327769914227094069862317137653622116470961","16523978426686064479802051530239319308111428496020536109927171096972095084197"],["20472508041646905473286050166950605760258219693788605084181688574841362754634","26759345603075357887372160799174084910801649806797442005161429813550878383125"],["26748051482836195773956989800607565195020037339097298157575562502855243987433","20792985785373981354886771070277218049546947126282323860576225160420258658324"],["22122333203204415884751304505924382650592803971508419697835227954615587761407","22459107669604342107449024909535967882466446066736104882292614658332422476001"],["11454723650891115497489180203210039166851081692398313229866634562458520233605","36399720700804751586708626974434027777787253603219351860978627939486287930"],["17732835235589930174786758529147448213511422435355871727116224417851304057994","19880625992553909946633159129405245479113060130487216290833157846993768201491"],["26262912038738424634305011726290358628059291981279758847708428973354675081237","645265751137027568829470124998262537824072911170321174470711857944983223861"],["20123323509382917338316791368639697997309744861615489424080029486863279668293","20916497868769801038927062908765449125648136204415578725486325892208206766487"],["16265694052689436621553442038885025738978695797149881845824174862945247154132","18517599044937374655750481021487504374784943298691578563457186145573328516717"],["18998885814605277135492017363707943656075912333798374234255932537030534484043","14539201419607977096814606353570208224520119847871379292236817073696992527505"],["10681005602414742238180548947520434294621543458211115194689797715273450463326","7195772707153263730239090793104589549025666983176194332881640800566049559516"],["21900622545413440412705653962797863215206346582940566537436360908445290030549","5271110720002191600913957467152085144622816473587828456382471513239348061926"],["26963965750854631336489925813614141371737674939276320464642896202758327184637","256108410752849996602126992993673445053810974327845895312578442407162140303"],["12871938309639910137180345613608539633800899493546199384543631203521119775296","11714289019017557451567025206994320716340915568066791683017231201897732487809"],["23915864681646561614348262143225009155213175308520052727919873184840391089866","1048943567434726025695920136146867309617228727797011792639451983695975025313"],["22976464122028185340766772656481186338983176906995456125045435949495448315396","25712192522215321151051703258634737599354534221804041779355745825684887964946"],["2218893464686685356577886535685527293307550873677920922497335536842505491043","27933643479305327739944554138682784811801258344288363644468956071083752134372"],["23103641667812009512332151970834153830650479947705024678300401110397014993811","13754570791885601975897114740594316560382696115084207606448519302450048056549"],["17931186636338625932829600337570455595961041971718605932288042825415921548700","271161853354465245382947673846964007937947402246488950824866186543691948109"],["7049026180696433167592870372963370957260262020832481932730270077004365083176","18956634204243183940351498001828606220966917710942018639014571606665578488084"],["9667805487734054717797338837400204866278160898722427408433292829339875856729","4699742567923027907479876409936074614709871874345489754231660197716963281162"],["20575440697452095496772269314746953258945688504987132868365946965807161088257","709026718155196165345617315360290086598562249242084877731623670013512801206"],["15970812636604672757180369121811082525136805010933491560052303421218113070516","11014719338046572097389396606989169112707296198736493618951754080407107842100"],["22928409310757387409302129669133438863251022691794606445405973563944582382071","14719161248648760153867627608874988615458205966812494594321889012455111469855"],["13071777711478094861405342345734807967398127067916548608018272670272066815402","7756511040686837707649351623284572159658906801206035226506823733106601710748"],["5989528476049028205080819424021742855708130464664731711585991118134757330526","14155965651254702506331714648276298559028044682999769849897167211893859816887"],["28588988009831713109693491556916877438395823834318254538345345542151344597008","27115562858923450097682316809983116979451696665545603651972520895480703104842"],["3751238665393129720160343173008921084965593120450555889659765024191930547537","1406229951519938942474957333673971163431962198431471384616415931810521204981"],["3667058816508723684192807267812515575095222836331267162737975758832296754534","8530971971357543823835999597827516649391758023867499054724137660932728097391"],["4598686948546352829954267007608943665269750846381497249748971448726643507260","17091176943418758509071828858630954176819743480905382423220882422428572168236"],["6518024952031424250301140229450964235859134335843359460761413419538216303288","28907455690832775059606725922278611884468327512455505008538437910997969879868"],["15976769357616667027260909073400229829370002125981762570870755566769682671200","19705186247650427367840219429543758223573072771204593058608577554362070430110"],["24420097686462004749103904116716423075794315793761994859410998573705261856972","27916313373995470047277840509791848857796652990114819727887480601445564439921"],["19932073473772285469645643120660357123913523083736241443032261433925970904251","3319571572527997451727884765111582351107214027709381090923000474076253525271"],["11452648891009478191914066563424730984464062368062812762071285755213785940729","10048951484250227457654672540290305927048601728762101323447629197133002957247"],["6584480696268503106679106373040144071253821973234544096038140834280075566349","7060692163568781347680570133933102155253049642543483130177338225369752812772"],["27181933321801236488443807329202875118237975505216343825447535329074923751960","5358162097671261346899783434796810364618408560868184664918532732895842124419"],["5305030556188354713111258695317756367433354938514954624483257163322185047750","17225894664733781468121837474691979592249683413181876310917430604525979983642"],["26028218128344652241521412924501615530753105897192431862840516667297159916164","20792735011454362702621935889592026038942714925440025393864533551749707951667"],["5428357538847177185185716419814862831130553625023022723793113565357350121772","18790285884705184324083608462965829506061468997793189522767060526215742836590"],["6320850989660706382366928423121539704377958958219537155501657220133144332510","28774755402851806262445887496918990984274128287966628735312207971084765441821"],["1115530360939340708611407303847270561748134546719041959803474704968646129180","14069007816937007825644968887733800652035317542047480613725409974030797470920"],["23181386222445162818702872791874754726737893602394626821106575331985972578558","12734560870710842426493102203123483089570286163856755591571711638561209907122"],["11990321515715956169397219626186632998019776867729804386143816909251149622876","5693086490954100785498212806453612839642862324250790345173548194627810432584"],["14098224241803341437357032521972264363967558337332406715946548109593292939046","13513757558898970807013950497381051941319794603120867367277991245513778167308"],["28721927958114530428810531765859950180721351005794750569599184151933553160033","23651325263120523448495615577772840853446598765554608384234731423238691093844"],["12698160877506894812870249175741573297454939966656537030253127379464948274249","6228436416043752970294693325045084305005914023997145300874602133137245305502"],["11823069117741678089169959248623812552904341612544274376835088216884985167354","25796308842838236830924888371677788872102034347183282328986334157377131688254"],["9665812755440277854361090936624174091404072817135627880107079504939694368424","17512668815778503133008995434029983047469140992239714965191092246162987136418"],["25106665432892431823473383239590919733382127893625486555878001042192299065118","24776575141012862420682018051459185226129918844278532542443450052759755708267"],["12297262674657335792855830145192477829740294620578208571349179160560271484800","24786350798532298510092949874013326198898277105434431920917485749190483843005"],["20619805654892314214864268582481168381097563417486586438394822057175054116296","22119210866682517053493324978227582517571128749163261524466634508977532869955"],["2518629451772915401518332117747136158583610504239855956837097522979857279364","10819379996216630695193133311767888020486682335537662330466719970150739988114"],["2857286452320205041648728702948347471338655860396239345309534751437237197199","24398700644705146529604657101225081455261077242541002132511634822643396780882"],["18554413729973365652598475456954791703929074991151493291015998945660818373549","11926906221574026895474992013627805950338694525644162081450009860823124171455"],["20776222659019467580679749418105928594094664726338880608073417019188113678653","7937528013653235017213990948544421830888448891674896606016127494913360577570"],["3057828329903050387641154048852029789488647330751276670637639267771933206491","20915232492063833754839051355206401195671277412199423072875938490896169979906"],["16632003796025556830647521176696085690459184510902882494824502050450082915937","27966351713973255894078717403908492483786476441333747595267499004290913373132"],["26014153293463812125324345825597364297736285322637892449750842612341570960555","28495230509874981276094084028399654508830807006260328483447117297182586939461"],["17356417582080421994846097215620402230802768678256528380931449843269354036141","21076290368814247376689703278133655175963945909404661345830832629766203520354"],["15330665139407095166538279255207413182670715089847059960107266392493719415101","9051056537854292603720444666865675142063038874425305748210938502507959363613"],["18810472641775201001582025766935258963968135779157745486368953177307328460830","315163371933482958771710629851507397631695081349902210121222396681880319002"],["24092640414443353953974069602066619174151640801745918496749392863434350356365","15495803379051760117611606952425791947482854026725312242110947390756645807406"],["4695722284509880668704586438339278607123651630216605670465898174992227516420","21955949845153581448754553370777228240951699741975447523503557755152494017727"],["14544335826485388220425027849991208929525282890801410062600969668734934262874","25704296995139492892720433584362746594127183765096077353571237289360329686637"],["5590431589015494380974982089631993388261329214107563386295400204172270442251","2825004924901671075407051789898661110647698459848424631396989272094996881190"],["24348956116364185260045935767422656019917362790334171377199560586823534582308","6753680404301814761836089843867137197140625961986948869978695605873208485666"],["6151517500011382028518586835105613846424253820576289794502086997111396947386","22654199904977884962012093006868281962006008034628181680569165244602178816777"],["12363631811140996446050772190932951994459154350681182119625882557875293674683","20121452890588318281657364828165556544962352196153724210767001149011288468421"],["2493732856907624420902988930987012954916690612925363731115348249632434963919","25166279203926881703038713305167673639796818432712057635756780835506388099374"],["19300199784967976219217220025509550791262837422541499899002612967976540917438","28677103370183753352446984226438757232341027981201165034416893430564687575274"],["20396136278273223518628831909863041594496293794651676318467899213653945671753","13633713603000662122496189795312561129743128799304273021543427213404745993813"],["13960612709102257809435983554387032830152044775960907875070270666975738778115","28829652493909008054912826866645241139505317399791348390081511947485455487131"],["19233240824013867382176610904029693360110209083134457111790420853214126236825","25147528708405721323069357639582310346450016088548470992355074330878912733799"],["27109595174580580613812871589988674986604385903895332243915954733299141581448","20371094834636897517065189113041817019921004454627761309756396740379235488957"],["21554016070011178035268924652030102809396961747732333884664991121935816094452","14087017938145174330964067071103203999274754269920424833346502946880715075488"],["1505266505735653873966578606947397907191369106751078949606977624591449226849","27355607185256993876472455547143336036079331918727475796123233685350165624466"],["17217157607185554531961173849867996540622342883188772335435786590416005583829","26362434143456184729020523415719798588282981216334885270999156739567401051244"],["5490661334913447513846411924296815678399121802664163081499009736300126071523","28197989433403553035388306364876408953478840535474545985954644596206836968143"],["20023107323884779761874494262181329259704629844971559899639005822881919539810","3014150188851970223871599918107532197751726858710999379030365233609763074552"],["2002056817652728260259156745905267604661712048265426188723052520562139084519","11167691952006871214812810450478089017866903935029788492606313994802144924495"],["12998432142508928450072699992654653976482553911594392394983873628572448646524","14324367185495160680476168007036178947045965410959459430715645396815760674761"],["12918623668351632388093033169837955093561994479461173351762648539728933188844","1233305650378448396595002004820014890041941776357963704590724959391503429889"],["7989980929002516188892967322846324622791471034750469184823383474740393156058","17870675193243418825265071739799629538891450253770467991533820941075502109508"],["18053620142274801491699511954395576102078210833415982067057149447965277886958","20983966084577553335857055158666858881628290030660966215873626974900319811221"],["9021894738102735181598998110925615869834596477441921404160669357670644292214","25257710052980261984425350071163283388809070235125238239660875051717380973558"],["16548415785177909041538623568661667080645162433705104798570760855453931722196","25363153967586202336365018326000675156302665731321289180877543395644543998192"],["8927344169060383803130568617049336519859972351566239863958170415046936345273","3699337305747308402195098108343286334992497162138721345110914321042734854845"],["205652367359318316550594857695863723674320321759372680173051750530742676854","5906411236338374492947185782865639641306426610901451299533608463837660236983"],["11359002361671922031507232335745892987386224191631544413508375071169288316844","2879041302127789547707275357038842252072109432584091239454534247342614761103"],["18027684428364122384702066515472850262376933549467856368570157491234085216966","1494118715708387373055218909745581068725454621638413732829017700706379355116"],["27210498278882379950935378791725470996343280823349860500850005752816903447849","23167654872472847006577075519318870155577004639197812079889772667166496290065"],["7235075992706353677853945365165000184316551947636689961395763166740046321753","26662679971487684731299936425426311730647392897936750432190052318536448598104"],["20847609106980380680080846495563282485176987820072395152020952056602137282236","20630126251817224460563483764406007781387283063062242298818333845174170124578"],["329209823722656425039960791194253383328544418240576427016845789938289972402","7973024566554602084168369179421403226392741352478457935086681162306362952049"],["14986197824237588002987837597678946807830499037933007640613053409440816282740","9095203508294810494339772715943254257378088447244256322034554671658657946645"],["25925884547913462004551733163646670678762210398565443490628419464153422117048","22420049511574268844494208616953069399239423359780639869007888969544165193912"],["629560431715703987489866683384124033610692374018189340430102346548223365548","20090387939960773839544825603658518895386419297088433770928167621815560830145"],["23872356730622595452748901267321523254514509472573380325117234254582032745336","11064128373885140851286196117103082929985369391530372985443035069687933971643"],["9555193094092262555320880978016171161622319995704400784525658798317609858838","22212186994218399906357450833042585910762402839602785015635100897377308669819"],["12281821392764720233593845166062019919161979707547763186161822461573281016539","24408656904284060618621023307631234190624861575128141686053908248905069976427"],["23172108898177044500793487241031303543401137495568386679094770912948403403862","12755918940789356664503685036354188714915458367988972932307544107593966243250"],["24835510518563149340958975680779909788456369566499726503757610770124931042878","23728799863448310664633669652141450052901075626876521798721624064642033137618"],["12043497379140217560358679547250061845545912949152585387174966344935589508721","1976688003856178841226566533648982506110432795409651887961879405110549166516"],["7615416071599064321928415965370339068137782351552765407506559857379025087534","27745393349735367249040164381226516812876567925605663867560214717963055656185"],["12916726292577973666148047125165325893615933159830422249678378001189391856491","5640846607913771893409771218822683424656357592797652819982595517101852202080"],["10845043079610628901236135356452718455142336619233170490455152188241958972692","5292133556672428595790653458340542638017309129262171136174474392390857546165"],["22463826994918785568971750250206952277758708255937499823597040796994462491660","23987585813164944903387194281007927798002499432100754730299594830697261719277"],["17974932235101123059382631598903108443739803994922434650953779749975544289587","7485881606488926531069051425761755330060033302399949058654121647943064262157"],["20173253265657664757933307484418367216614990461851742719953459492845507816545","24456718307491634780127328599946517450635312890392100325439646116049288884929"],["13314498811291147157102746637696221808356419961787830517373672357837153932896","1496916730067739172805866005886489341305392657761595661883513892065295019093"],["27833915364192927767591945889225929145953937517285147910623454072489578814444","17157665235912101370280908122637497306712247662321927802303813898371962181963"],["3229428454311795974947581329082394793322513450266734726952173670628086779024","441894213020340546357592147136229493070846854317634759568039439204448977583"],["23575772685781411163180774894328397400154660231845120644037686382256571814287","17495627493817841197977622585265379872909387006419758087961700176434507475811"],["14387871164233705026678137767523876696649027194462145324980851513158467108798","18383593935032298020388523248883382126597311164925770419625579265063783334590"],["708662348453384963397799248080861791429233896661858269969439143321048807481","23623400571168993047577201635734939201400233055773682430539935098206493192425"],["2273525417739378982247519981731649999407107516393976059722229464490935070501","26395737575615307641364048784872346748836352413620506746302225086237284395935"],["28337424834931997212732654263662434909000558025226660222564477990148186388506","18420175806946708755647979934127236908337260094311715390590330477382007283132"],["21252506584940709046013753528563844295264433109867950013328474113783807062806","17725443382187826894647242285803460330389427520867118234587356367499030067870"],["8258155742302661381245915383227363696793637134367733879161066116026738274684","25992914998733026787547651430532732030482529092336754274738977792410763236013"],["18603958201735867909633137803346231231512503496325851411406312140481494118473","28631147179681007781237564677859990188700449165436144090448449211605035012475"],["2790863524250442811202145720485346059267235439901118638993015641335521485745","22355954998059501207420741445573819306910537442912440430171939547453571620823"],["25050523432943105947401701944742406035817787966473469558657938927545864395566","83102336591858676997826538145415345107075397594292337517317987081163376600"],["3902533946064624851844267028935424713161446791320065576872998273489078199380","9278147465868126336173883352225235311640702986720794752772296898006304855799"],["22197164541182181312397642336324711802377966749426586527234607092437880959171","12977294833208881312320674386495102458593834195315630264870447515598781348108"],["18584943396821277996163770774565326468496323502096655840349725103249655962417","2950867722191305576266024362187063704532655696648288702847619167241566118066"],["975166184418425711001623057833413997601237203333219244878364174205981952406","7299931875829006689124042871799882243345656020152294238182679153321148706521"],["24543623496413174513378534250156904423494938649898604230646654731066358653126","9308208841804164142226916281737105373258960391494654465154974243175485386600"],["1493345000526846514092584342364488256829172442076382036389681060213115900545","12872399017136962984823308202104619770534239915537708461777143528578452461953"],["9748058851003770699137982941558883709682116511310365352836233846001009358606","26972084746067621345224231200582769245538001515727223701565664883893105169809"],["26561220495675838989472113567144873046836870450509839283915202599642762396602","4669794308874169753838062041112013836113802944065504910714397693453409476990"],["25714561755766468764086634362431190528427021412160953847566850508617362951788","25424210197532248494417685469797457138821512729327096728904919903794791797010"],["10782425012267495957452432156274970119344367997527926768591250748191246002810","7458729220134874078228532346103450319101807783908634286214882229786798320105"],["23265346804718461320208942672416078381678096200313855595623645781012840962983","14274224061357057397031115368461284081325396728549121889415623093369377465888"],["1897142401080287578759227336188020135191429122040764392483831665538408352248","25580276816910877006174684817538995436006973624249778632400796548501692944930"],["20240063283162016574670348678805331839250987079476427198341608690585293687078","12719102499958537614363417537043832186534966725109703209349197566406866661010"],["16154469738953922269560601182237861879998590658242188606705709415583611162266","22007219471163457008379115225046081489066408601191492642548989580305394833683"],["9235374590911067857219294423075484281217542329259504156999039566066498982816","8664812128884655522568589661357883580243808190416602963325871995390096691525"],["12560289455103102824034325735899171704448089533971543763110380210443066390026","24633683613315252457586112388301489487655645842423451568888792996834845400254"],["15928683139553311611703155897258276552106918989728135717466058880910589229765","20570145234766136798250008501050937053385845076939503516362799589372092643879"],["10900649003249184983908025723676606926708198917948780811534978533515046311514","23478695821137552048981085192117831478570609712351874701342128056127926774915"],["20976777879230258461141650677458423042597737596138509047568534063277983852278","11353949208671820212997001402287589268354297271732940924763382636575855708152"],["21006447104456310242474963466915595887835076190184435819558691449935797481350","13344730506280250846335723163037256410864951628312621835220627182657948685893"],["311133896947427200072197506703919965697457818350030756807431574741920445566","3782457930385131690895088191023350945658841703324654066376891157297106950555"],["9331289116831579289336420062081555173133230739951198167068534293458523296537","14883640619093013804302861388896977019168621842151999915827427759711036417828"],["6694876693045601453220039705878393530650972905528947083378634033051089238352","24773291290946537610896007775606954439091317192487204384068338204871727142005"],["8809309168069931617185345716604249327916553511541063561754115107594299109167","993102730453041037941876619283094419916976353888776352192543080771838004057"],["60288025757019530684571425639843357443407439683582002155537373667441721127","15528818806183698670953179882045080921045476758050669039258191170332363308784"],["26166864582438918900417278660619979395847018316617212326166902150786701547538","26882497494890601295708303056083111707524261265600630244783290062252583669909"],["4391645082897574756851276443239554006697897195155144246036783912865062398312","1139881819118359850567867580982934554704589951282949200066114378441072944930"],["7036508792439907158436031224674418030030907047171356001266470730388825480295","18351770970085120839053481223208979532139013254472893209334294990951179562472"],["25175798760237437580667182242600190495960649755520076392404617174444854526375","21092203493872227460959020584343033284438869510344327629232244106688487150885"],["22948830952591300451968977138567813233043827501953367420409606643800358631009","10545516967860827687399253857335325692018823482653728760491144857020561033890"],["1637902970707708954091649380109188474843174050618484252084989098134359045895","14473418707630599286058507006603309624440468512383447991368239970548893723430"],["9372130285012340914860206582261543151101508898387719588027182585580838633686","10822875852867020987694673629226871585661625199832822127216706118490125005194"],["24565439706176278014753295304067898390177398586210834093475745004788911594514","15560683298247897117188880963345204536561314946556729542339115833793161696321"],["23009825822367074989248700175114761185661545811526294371554548651636724517690","23847310835146961801662493477701177514876223489679629869167602830459174230798"],["3810390987522822452797920198510800714245593818802295321410486631961899595335","12618982473842435314663277798721339810825861200986102025564884890446405538400"],["6518334666493655168182523637657817007665928701654111372332866982001776678449","1221994802795491760343273553190865208555297634579003365964402336973124845747"],["24362106440467105974432538775238765918838616017263011870195975187412781109892","8809882074974741058216055709351792844735302670021865344110880334263303903476"],["8543434594789472986646120921970045559574307211732394398618961648556321587403","28226776591456866819231117097359074303037726534552191046200482579254564447241"],["8616384046915383347208899626022676093014478062961870165947590449441380413792","8836991669352474646545162411501447066149807402175794781609679685428963219025"],["15539927188930410324997674105666994452426981677026351201959573438725073758807","18801410646351953782472766665422763043865683883048835990639239230253675703149"],["17213939420560751259735710054480907471862358082478922526064834944346123658891","24229773334740850705407785125027770416467558716382318157321315376672251925694"],["20952642068790060829218003182658403869939371878413325228089731704027406355406","19683941580403703997282375185765451957386773567843130698083482122856505051282"],["21850837973437501048961799633187770520121164495283905930244011549610090548159","17521552085281047116847928848925648294254748625787141549686079266096817727164"],["8293521634976190858199526266789014161614311265268445985797408385318458976303","12467591479460692309718397103993303123089532400641412980910275875228845860590"],["23684289841793870944720694784994993195497680614932115987373247531061917357089","6381396284263262084739153284847692558722989495919404560525066088592229538824"],["23972564661192744906058927870201278847667107867676386629678146763820038636640","27320123660659687698809299259980577161697578758211036514743855879037889369178"],["3785569733398645408994900536463481846497876844771370081652636431071757162315","22479500330063659696821080005028591938414854122101771663629184572799802471939"],["22695630984098011926411427095332459139846706804466947516478865446398523696109","8706924489424012045780672141157458408010756397012193068263819539571621700027"],["23476663250533669996750725710193866373674993591110254354278697697658401268061","269947158037507596420899901427628973106350536954712813183928827625968072217"],["9022502141629009766428927251507707296941707505813346014518687014010536092921","787311305103404583205629469790624192968126937071721842091766015565047895839"],["12327185571961128124877282984886461859060598433457519228815043985697807103024","14351407432711243921281936292114199715260929647490042164548358547118827519600"],["25264032507877560292589836646686578051859897886971472446929325082092780954493","4418089003128687130626544840042733610798133956836947184303815840463852211215"],["15475539612676294515613170037398805257941962724692869377404137746611466027206","12418835303794862538823008473329302225126191045766429670787218815373724470211"],["3699852073078146685637351713388415453790815372116521689286531877922150648964","10796125506170924375174168289779049261055425865546004845299250797504826791634"],["25260998677183813822482028580898140681055151053091430954086548525887772239652","13947627185624962456976565079705532388363770122120395889554245034385320457142"],["678654033948274503133511779285065546220055745903462277228103541603350052259","17114497707263865508316238396694701352941808677845854425211760686691905432878"],["28159357728804842551669870138810088938844612679896704383762457415882465399238","14583064968756677226183873426054972829954798221184483715515689783895407991792"],["12948499302151528334456899397695267090797170587265632186087831065430144151749","14370316092878074286577308562997177817189868444051147118940322919985606320534"],["8850830414069535261123061369862016519260696376503723339643749537774233542145","16694768546167458239693589496398112218904771548597699288797360909406876106222"],["9624331376223155407603852054485523595921829212234362252307288340041428579260","28368953980153582433018511163839777303183070828095942358422690423518027693733"],["12093830578752998065315923220866755629924544358402315829039690393550854102084","910246439781024406843042105725105627594510666301816396570432698544682792982"],["18015367061095973034067008631514034420850257618930649794885698592275452210569","19194073305717936712045876858423950889570994805137840056579060357020121159198"],["20684275980344317830907022175779815274036523399461847393842084919098915776476","23950585155780549393997576716974942794582298237085639315481742564313022465956"],["11430101738531614796982599495245519920502167662610135484872225772056581027162","21310592832122512996369111225556264477436773500957403227203478746517077457665"],["23391563127875691829454942206624203303529073903221547407976964902299759121397","10545700788204110665339326940973801681437591924900211152705323933549539143186"],["732808016198479151366029785233491079589113833209740483120975073877741349280","13463715924505775765558157945659396800985868516518652180606067425164360575873"],["12930922039344128856124793032769423818852662502654615926464779294006015762168","10843859355030357251540882971592884838224206369488162828707767216246690333678"],["16714797087394259742731565171424835992976875073288201732377301332465075461957","21561587142664413235828862097762959045529506641440137059663083758128576356299"],["8835792486357841382005035421813517433908928741720730783928284633419464966268","13821856463382315330965339792057472222018950776571837043089710978206416542186"],["4484056497605713299452097435357165343276876206782216993528288479485606966835","21334258418085116389503273015012767463520333854170159901453501418979156548028"],["1051966369267843770429070838845529627971981789100102946756787132147178516152","24366197790732445273757000385494408664710369180313696943016108294574779118197"],["12875029784749048315022872522908459006373642085823470238259323099596174888057","5915563209064713508185870675849935086920995946285145501885833305345193200085"],["3182645424895367720320220053193792701245863298421476141188532402016506439997","11023704385800692402848902320307104123333163837298930900466234417056943232506"],["25620219256440726073350997448812725829567030309594532160666485836124495777491","9866247524748008029252959508969741643158819501190446399481927159787539365931"],["25736047556174623425159281605667065928438357713586953085238845053939461389675","28815861548043337060440600242475442621608951240033567130511757473038141602942"],["8499370984044837463779608215522420249096601974965251139006832694143093035440","349704819650155515643484693297909653175606405134091951237228928432384798598"],["1104974138287324553888280448085994485616858618020181856075371960633080960866","12510582434082784657352184520949278681109842207296270265585961905928876215651"],["19286989339146583623663005363623278336909421452844713513601543844065521765826","6397837513169645412876483130192803117099326794281830216101257923594448647582"],["11307073004992512482478971334401312836014349345406767405511345459707232587014","9280097432365138274335254101373440602354131638710927925079457773397694064825"],["2027357866217129215068367027147696561244809890061883581783338553903529019894","27449691326134815650998303768440022929524938865530211963994905007084253624740"],["118926895705571588247852069900032682104265241749181938991255489933435403748","13375702244298541317296411460103202216333849025058215868562772200744815078814"],["4434546209643094609167651053783273278191881819138319280603816032675525984360","28282658899390286230189462560186566084205720734394592704677585670553464708729"],["16791103597619442711650356234238546389617539720329482468833356241021819911268","7252266099866208855066803037535703598600239824663995944839887005985361522677"],["2531604140008828993181288351377689574764023272680311914369848799519706071234","25514315730182560377289656084916505892788570727529703671741079037252138373036"],["27624026575663412930201781915847664539397259106175200062932714753873121576760","25172419806799183438154920085491966425644103790413315430774617211056338275801"],["19084963920668658413910050685154537830150794934819070141974259317290866410551","18677823456892367000488761186263103099394610175807476718761657949554302185666"],["27545707734156305605641392587510127241063583761656837954716700074736355810845","1501835264702724838739909769425919779445214658457388937509578044499553239579"],["5358254905713966433407623329772579281822312339224604587046381692075052152276","26844369153657765694633015869047657665881259488877823102428603373116521741080"],["1282416625193212365782270518973621643048273471563837951828603997545729488986","15526900713053710554362144506129818374080172620603281814799349742377642923883"],["6438992759330799413102601288417733666351502664109987103382410585261961834813","21719294689061565970259885752575342449131116231686878528644913223075845592987"],["7110629628522149134959364663921681315596213771884390278675029105490676860245","24040298133825301253100180077717280593716834845424439906723249809275193166925"],["4553518779407679314902898788211523397549040782266893783997351460924143672967","13980920046662748883021521989944405977406265818208197432322328872191247949904"],["14636982815853262906263257753140538793232801064669050059817683126154336234808","22683444246086576597179174764873457509622294703867204002136681988968743749632"],["7858136469377358783132961069555953796546400293074008507330466899342440736295","10877943620639285291279736505506211315703883356460562186458370944318730668286"],["11535367210687851203067614057147852775147403597086795196257379257242189572613","24729340445944780740863137447865589253662849255455574771725919455073140090766"],["9191187375322200020024386526255130435707324000606731105458724365220549402145","11028499969284294105255260747739958710206015356111273695413080359260882499718"],["26920009164332813537665913480006131699985059134872449177142969604135806458879","26601119163210181223289328521048796319580149738747402651688505833607318067428"],["3052241935564033287317790579981173622243256483528558044558548457169151540544","6196617339040253090895421598795286887509953457699808415084352145233641056019"],["20474327381148152696479537064113067500642837043137961373954520277592126262491","14114705952536553342156790339045997741899777546177443711399682504786130744696"],["16257064771867133390628548689522466602659545314132673097576569854606744636713","14260630075539583058049490760648963766949253551132591082866617240357725301625"],["8135606765803055265132166571596295015422287648026521274861309783281448984106","15271649739950483294270419140428876596944042827396214424607604673287540848289"],["7715914651939332660948116767434267842996369068138749711106895535934222475082","16376296003144377194378951176054340797848259706504465736602232290673720997163"],["7834200483693218215320442485751714931120821648604812723618491733314132569803","13191359757396129673032788717648243008964623733223799266047878258358798832317"],["3057726605894343280613433845573143332396468139146708320454468821895709708283","20101856110569293764434907652384628477589379554371353670639442338831535924805"],["28637655032420579916239435976660231476181115703097325893497513384409639743673","12982262630680802313827403467445315238796396195655320909436108317719782083715"],["15612197836801458821884836167591240357141025497820798816822656930608644026038","28781721149501706641876265513699909804683049523024782499143922336206368110663"],["23038141061507697720141253028118361029477469020195748476973970293767807919378","23410027833923704111600887924405071357888856132464372279507827416517285060452"],["20718545133385307084048436511697809135359961813976600545340167998353798501375","27320039029787983879789872342556138962704663974219519458049155245353450251016"],["21987136130811747334532671387977822797564231984017098276404480110410835484072","10991089986622139037800850407157557433094190236342367514256138786884040349092"],["13023733151163997908629478434499448384928316141068678434900277760882712446421","8124884777087810058673859951186271790380523550955672512172588534857236641062"],["21200958497562806626169958919100069483775135801659721459384134529334041429768","9018919120256595611057105338833449816636310379892169558236336340645829377493"],["4154922640229645296379864766702666468531918528151911268047737141422100513077","3945391559677513577584862629256561053188638613551081320323591553922892126105"],["9476903101316775684642951129716198225800625838536877663167246922877182528164","2299961777171185753048799941747864638133290046928715356690608105842471589129"],["27062561790481915450671858517529866787728601217065005815390286262585873199260","2268242942403092230603402253681801313923657259352919887371699003017083223215"],["4750915201309217349188371613021123449163815378638569173375336747375372134419","764055526699320327750443279772439539083442381319306541305305328678654121454"],["19690438003890148536352179131709848478429128436771855877250873333690305862994","6134170121510171548078268896402822253431020305043384068503703782639138298609"],["21416773745269359828414728549173515369037496561862493684848459809086068956617","20688589163842049848131734052342875106012051342717260105747314636575680749295"],["7286541732854801654004947591967142896813662706637659507227000681173438290165","11091895922864679469163145328078463617269379168164761863598850694033080525585"],["5296194857920189515541862086038747622542203922552909407766459237730456830513","22658861035806859561225933849698765978375062099643165078037287571188010196546"],["24900914499231969692926855395948593221287853922336087940565429575573610102514","18580848724577726725932868825822143175374533394632239264370636671707836912282"],["6765711071692133193691222674307977123439547060790952997211377395786693410642","18984402919381485638159060411939524480446529482219165964814937359764417533792"],["6784637031924235059473617844488399634075848292548086603644153774962470038380","12057693058758949400189346232366357187567852391416182256563464489689076948682"],["6534140217357285322487074400715780315238341199282462734738505445874974383716","8490667425374210985393728732400796732768231468121578626757300119970907993557"],["17194518630029428215704605563031358136003837401548135348256247738009075119404","16018789976551372857933842291836027425845903928151533390264575919328964979160"],["27352331306259005992851860649758215520365698281533119246693473042626002717669","7054352690016210512773394549485732033589625569182861568674459138235822099156"],["4557122089598100401872480485385790462460550381651300395784149138849685989473","27862740475745099391699760694191896188578215422618755282574417628434102338680"],["11379947297501624056782707982987413140779811299230963556696249304175368445210","6712480617921534212844071479849089788101440264492065778119461306529416520688"],["20483352023478361174501824641634846150726396169589762383999957622389915883313","7983433262772660339886752933118487588730193004781228954424541099488346034614"],["14638919816254403340400683787772865403762592990606350940466326119269898997039","21935683707498314393487845850282593743100459592793265225461323101331339667849"],["220209208297301391139320304189751256401698607265738650918771197096589802195","20983303397918196610665691680172325254150297682186621475325966109655921282441"],["26399222250401811519836436034629506313730797681969591598769833881316807386188","17583970681549528919828812596030782176063272486019660982097452752457763715876"],["23631976120960453588130498265892030653212283032391101942613110357604985217199","9679832363344155227114929105398667000726663555819953426522361997875739851123"],["20822698713834174718371648666838333102390875710053062787497946574095297827687","15044284624869834110102316013163268638254285544305271104553056054268458185694"],["27404101833560427974921014875397660088746051138963311147642846158663049115097","3635578474505435925153854177340163352002907468188895956842077439369656552581"],["19285875096298717479799960337642320896046231076797114343706388552019018871156","4576936129058516287235283958066950101605419645629927048440793135870352020971"],["1189226058577469787582042353565420511704836416410484645047024977515086019291","25668084261712299184907926890179737847618503671463624575963147458452653073388"],["20040480162590254807798038032184746146000502809185267355344006552629570353080","15033289818368997615478378874900032403407280072617745770244289230201509460161"],["5143549490224792422336110009844348583848578200397268976840288256199254753317","16681484257299205986976156998591126918672557799797892138583202850065745889959"],["776638873710644816278836433302755443137556582316882490424534711405567819077","860355619193194963552166049209038410569385586923662726679981679628928522556"],["6932677647787828938861066774388856417547244907834660572098501180911854867924","25838459082030888002715875995869000844121598172607598427606942290008248725618"],["16442822445503878446380427156996725138996824813841270513130272031563279610619","11396665368984550676263654431986140307331653060617649999781800484434564365577"],["880805544982309700939154927371474517029656074438370137509781217194287374461","13007500816423069892180054334641038591253484903879512237409327504123179835185"],["27716998013937864263898661115936226017615539555651542940390429239238404679232","8041960290789708117281670744506494253001368235827240975514591335869869232482"],["6693690714817061249665362589418405713641580048286804855970716424781827236726","5955777542555529462557617531130061658012150326967049817719370631775913755347"],["805355082356027021369075984230375010149205936117960738112515250579214553392","10135626961345348716241968356920148724036646399917697898127219973762476125938"],["1398641898470281770147902787206287552776560906539097535456818206355769673189","26146577748986262596308992403594697444247930247164252552265089338834320994579"],["20103799648213708664328683274051911596197910774086830695363544828925251992724","13454197621654988907052543115646159728473311860770105464388905420466995906770"],["2645030726465939591935970340186514868442138313088989984421476441368051683065","458001068260923530274155624302541205169207279980642105002859828938555918804"],["20061718973373983695091167831296562642998656649371928754744640267692012494812","22892463672071950095582121459609046944534255418554186952337529338887375298392"],["25643919557334168267376272478578019058746271031292697665057366644159644784335","14894019348161297261187834047204642121663063542440586673128074157046740886060"],["23102345608403089763462706386349591023732120765117631512949221691982431745507","15930421149478438907451870502704207822450770736956422383283649380300009818746"],["25843743236605400896392992692197222893172470948734627451400779668770716697383","22265632664025810409873324627538466703530409364586977806741238085356797456174"],["17004246629900371869893396786596652202763984786373911049811818883759448927405","25280603236224798673028763747737503114839922562468021197495575030034450767933"],["2230239844551841278778141830302150708554298700442279031677776741960226862156","8363662511771374538886539434813276851493016390299008866224083923077455073048"],["3818976860340268615264376606656109066318818669471096312939411269463112354753","18783826363481595920931155806063968194061925635995691326448979683859155336867"],["3432643662108832979965316465465976161862792937316449182764091784259175466293","3787048085244750868622299906285288026407859865098970200713760941751997866424"],["22539433735374423252145359350542918968804860809461998747318284116095077162247","28118339726652445802279691617342416930798325882160641325266149088391975563064"],["13261513592734643295237336676570847724127226417100615005825029241508955002486","27349524238634790516721861874694906564940209217990372074673879515216949759660"],["6797759055939027394783410835793574401392411810276676513797884833684632659197","11137660694157469885478300803921018335920937746849208640080679348270573729182"],["25115909116736859409614868811395171152681038526650335780229428820974562439426","24179223372648708946975666180956776608813564589757552140957282765792132832112"],["1284362623445976285314457381080586484789529614839697425894648387870226557070","8360127244141404413088224204317275442203998027685646438647816219424266032054"],["6690159917381115282068788241341713143997726047560528402207501278517756823135","21014473432201008059722979287894954962364317505470079117739519993229113936728"],["121178150462133226329944700889590707254762950666084152726335725966839444483","8042276603734607155869394699883070893880581589200979597030600086942746113038"],["7685421403277857942556239783731476601817994455713991248459560021815059466452","21999840562008041963834347161957962822854287459846828440571348945242115806462"],["7415817179664057462495214928640917523320790947959115967632420043062145854403","23960705639930333180935849302978882692989487192242170601538360725928316774492"],["28064040127504391441093921661526980949693535537029098793373600027436386545497","9071584671975154635408506638813007416391444530015756940133073202685768614542"],["26996849917009021671663254093151991879615690998208163762972033619406990952","677630449978157619788039168764616204767555477076996593947704391963335140472"],["6270534732070426406242689156520183128572159943681654184957750987839684536632","9168290907095933802027725743073059354296424005579236907243101500969731117962"],["22338280643174032434926367740170403016510281143740632628056724510622178644598","15266915936805094586981689000317068090681765094247521083611724227791921689385"],["11232791536535958685943447576506154345082735129035657468945636317414229184074","18393748746562819248323868473374669090361269782208489246747252965636948966692"],["173551381624688693708412401484366724141105174924410677193451827052518231038","8981997963940286679581185217176942262396972568152621552205087425123844992063"],["14924378576631762866374936960233900375390346333551090256228604175447561070801","15173522555345845825539635528916432213149382977429897790484664704892286004009"],["18851858755846158079666261952221889535357289838625189750364960148255442395211","12899341172443661002338140454512348312714601236313483722373274216791357421335"],["6972782131995710000402683876568623553185631513351792802105335308087916242446","5461594497087966899629059224383178493067661148899997888010153875114593818915"],["3084552111749966470752126360823674069616119623124785820503518982489775102065","6595375845434970518607012225867149732356717300391553114013715015972131291742"],["27131071820699677062973591404770011791289661564375587950060154076102665557065","25733107221361068678034135071394907514005215645339957720319024884462446611198"],["7866227340264802092693966274798222541165810777353642452849414551413097085859","12337351129835429934083377346747365772562675655218650245607553773961959990935"],["8002812703621112431569781375277765950923701493054023487094787404327669711497","5569251846515082826923981708849913738903503249055530385902094981240950335997"],["23635469919420229906692303944507260357919024914953666707418781304443444396786","23098029926261097137861676054376848112777173759305503625380079536199216206955"],["21884549123332645794216726411945087571871479175786316064715187558610974729129","12131026087032906169528726972718616879346431506594224536944879620630411398810"],["22856239235532769132915958753382748730202587004330029157926423929936797456110","19247648034305928127788861478180860693424824201566306470924671587440903451584"],["25303278302608657976448171137834787470980667078245093995235010035828575772307","8096685045726273706112448056658649577690432484392064446500048652372437040560"],["26950593952294303020482491953463041166515174112091934971748886156093448558740","2019548894808548957313844853256664952923047756256936454221099059113727500419"],["22310597607349484905299204501141479112080299513347315080356703734730293919981","27840537475670402175676118713066999384845312400806755463704191401298087419075"],["22519648218050573544041351598642384287949862573382130053016809946090327789201","24892293507945783459731296433890698958415840406978339304327860512266552412161"],["7080680977987076056669794122555832207118348573165310379653733459255918521495","26861488167015308494082725208162427408143315015479824491521284397908388248757"],["18456877742602058185296120648216345260717407655476314973670449522819605067081","24632473849235132408104207319055323954013333225653144267054392454668996429799"],["19671650188983906026673328537151896623014460508050925620342081099010696182486","8973325468294023114086095897769513892854875344788274141457557492894660906017"],["14540307442581129659679595144669819751213323948340084404070228819123065882102","14083777659301081157776265662447519366299656421859781613090244369600757294761"],["277559013112203470260475214361892795459464554383308529276647379381112574539","18824983857291414633421381891880400749099695026697833845120145866774651983781"],["24735571791886623957311714069397747906726764845905957108515589324523057091702","28404688847182599434170714548852778289564727200895319843324573475890607893397"],["16012955288969427841920447931514488645596310621499028048803235973919801958203","12304386163781687229962969942880849622478574582060640272167526908655068220079"],["13612356698882481090227973924314391556511794637364884862327499961345558040458","18198230638302623461898599405683760686086155050455004849924374126220450919144"],["4880181479236620529805561783478724299466481786856531376001993605421772991691","13836848710374134401341143460577166416379043962113936742372911315537550451688"],["26127427324568698357830493535655258427272289036981381719137077244345076615168","2697833998540977689033661355043222696031611706077349473393604102208105404823"],["13632241962662157103956427843664237114892022102247462525536472324921905089266","18007569462297210847699683157578164472856199632649398971314444212277156443435"],["3708492199379197129572448294090407547984053403464449820175116696887193404624","13712880778369713770434031419235231402182393279950619178046619878125464225634"],["4240723417305095568129847932327763403806025121739246743186265406521291377273","8122061885243264842212574861551076938160712753158686692346322608451828370698"],["19454492599031707684371448060793618041598474697868900231563528219862094340020","3859800609869587389102932697562640559158248899026861368829450964487961635963"],["9151687001457212564804122108699086873609243436767875623980184439902530203097","15470880806191423993292751424799039634005277899146631193805021744512028774574"],["10219301885055412355094161092099815493407994971529135672371185968154740850614","10983787432313690175916170356541926268654229831273464971748408198587344804235"],["14994839290777705971434010903445300649606112347768725601210755645001277554651","22425387921116147406921049355982366865758127655808451290329699767595625096067"],["842104419841018195868761817930946160393330518351196852607314267901473660194","25042494142889608828386167632327865851706491979421694115922217588440123266759"],["12446232201741828026145025470205121715398127491381828280451799300014213610902","22702838210347706269714714053296388417104881142987697861877221900152433608360"],["6800336193491441029038906310935269364596859128826189134336042924480096014728","19256170604042994695824179609204144717777980852579753532092143576454517669031"],["18188467408653690850413455738900915353244447823095108313943541383627264621495","15265217698491181726811346631520743583661968762151369808245742264998405448542"],["18106835642757774456894144841097041813378386875974667044462589149139622005340","3523171055798865913076070659443132272689735950844427231613125107612734915113"],["7703454469617554219238879282992035633599937089864417282163654735520937492332","13343300835399485849026285696828068004700851568026623731620445894783987720931"],["27598901097163370109019160835622015835395482103063681732612577184692057822691","21624545379170270723477239340839737003077911424452191274597074242758933280806"],["20862560331720906967160136658411792132509794856348504966365006064288609706639","24783323187315909403460699220846312352593507835295308758916708402250080253905"],["20809644266102673600433074959351806245943534232143496582596461018968889024318","6013457147759579616001489313483404899019559952470892390959142063500330484411"],["18384349405041465014758878169564867887512074400510823740063409286712957451888","8157551227652989586453599750476899226772248814204481664128206589480185148244"],["7035803761002283178747209356785757471935177944817509409269544236228208442796","27782438574168881156008484426426798883826792619139439285671620737739222024753"],["5338406197840505469262621759819821749657261267746029193679071660275149874963","6736240130786931229257902938471042325856241288278715875812381514749117759273"],["28347870313519552974009388540080596295138963894156261771695088807284819682636","3351636896478255231425218063075051586054023703444424883115463353531258522746"],["23101159641909322000036814520379983287494031412033892672899113547805666897971","22814453851356145327182221547737893924226655589181085146357586504046418871793"],["18137652902713634970766988884218745383210692403809345576734343712697533172033","6122444852467802731050584313278515203978965914888058941698201603981008755705"],["1549991154273075280652970965541464298259893317738123061413303073008545353763","2356150957537846504855660874520961514439764441732557637299404084345142282528"],["28853850577874231048204653586361746873503790254541601115668240963944723202444","26869867557601102912349132412018653105652032377600456800659513617372061577457"],["7274236733288952027175779988869608718522868116160473540844936539873216139125","28760762844863822844885667053064032095907836666773878365545383555436186756632"],["24046132206718540481198138920453335722753907522735369601423584252392385117128","6372944763158876580480857494940257818052848745876507485469674787422100401598"],["23684440371112230615160364616969552083424857503942041929638436039687083976426","5609311082672972843877160257521998465541054811351485515548494933788023797345"],["8183904734476712036406262812072336891896755417277262668467718492301844168180","12161806344800838106156502580167217649399700036938873968492549221958097363108"],["23464510604632514093286369164083812038932190570862348086629052497025702157770","18879630069720537270372827490106093160315650083587381737270180382106846389209"],["5877349263529392705603637826544914327571790372960926445213951444393821761573","3485717668833562466480579940511300403052504615649201807370912522192473199132"],["1435618664087473957239117260519406473114165809241122958337641990546565295967","4319617172279370769004513489170153195169914595606683781417529952747992418"],["14241115569728754148673449220795511335788630366416840137900160501490404444185","18905956129537773743890246053645984223625464436503714638450214317427383133060"],["16414975072652817238088283757822153972945850799216313679123587329634515624878","2649937608223420399106345990174283449275623869880432421205737585717723886482"],["1521008104187789227158916957934004153176870554933641099843373910909925335748","15894123764741978062549458140681704394209190789495527660435288732420885992924"],["21500865629515743638464942871198902489986215388173550126047090250816314118357","22992418072207263948575181741232327232675475488803184659143717425420273079263"],["1191044275604782107575665422501170486900316912874402915445842613178303332882","20881494254208019513189469962098949384306234499285645070798170151516814139929"],["13781353713966255583778184453643752200627427335143031576264668125655698198086","25210618447273213070743438567672976294122285861545888788778250630654410800793"],["11060693673814154695204974458332076865156358322461327464004551779451276694104","10523679234899798504305754987182269809175529861783530441605778561951837258736"],["4680607847441960762686667700064793325430199957566249434599534087816650030328","27115208026508343091557350358608174598991021339566237110258971060264947388846"],["24260358903338001523935052719123774939554922943425494308713013762611412750916","12108899857043034602892380940551424164659449406737780491343904530902109003881"],["8506993234294248928563596441185377706272078732239899722387467103618633261504","12697448749050015994170722572198928055239983076951968443246742486180448319958"],["25445004016595048337008521338380639639174767028091372012430142437410653234235","2235876173370676709396914047058153769011216641672292059623927138016915676626"],["5161099022613192995039887266645512747393114216930326142987366952256607252791","2335700810714873453234524986165053429744189601236591018787306335304790243690"],["16949433002590489746950236659864870874616010257323471787596149076732398801460","27517658300293801555943398946646639175833221906765094841669690437581874856673"],["19610699173451673873626062797728443515078400718658050976239532591819610496381","17472308936910197964046106465572005828339056313118727218745494525489162756319"],["8575937191494174561965617720583606632094243702807776747243757112472657139804","13156157077900172277738027137527171906009791915359001537989819045477510853382"],["599716948347582580556104998357819501747498757479464440610516026933027953853","8197479457479984102389539400805757275158581239240869056810120525596255149163"],["948103898215991960051145508889799870123356251924143062123078249419717422367","27443899400262229342658424101305900204766936243029992546918279982218792474311"],["20354280600565966914975418862958223297436255208336566308371483098149075881414","18303382038634401158202503722129063941332913205503933282135957062016140432689"],["1481129620404581364900219001678612770977121733432735769878949359969922839048","17407195684814967107063259010589431056183508334004819755150788139159713686593"],["8374893029884798137700714974151580107877544427070613459620369984714695198762","4274468696243497865597647990701125944647114768925617589812032523951507829425"],["23148074725579986268068846993433033610682282106033185135472140382799531532684","1557856928059952032146629775012876325755026927112035308716173925736441777883"],["25255953188627672433030596111546622675360860833203694991292463383135829514476","25363099877485344356183672419720468627341471275880663398920158395433091740904"],["1228177468988065678362472414758869484983165032448954861940190825189269104821","23663126304175399825131689471391645255679005962116589312851833089065492072116"],["6925329008652886897447738323255749576404067651031813657991637963683544356835","10137438148635042502494116122174097340272380441169338475187256543810175080803"],["8119894947345961127773398508669955226110807971322633989640657125030278571994","1970074046488681163229554458449442616750100181557341398626118977372246928630"],["6094450378256339937620477490491592903770138371921511814502651640133950002058","14851347309885437143526592171511360274382627254803851472873331826307265936106"],["10935833101500550220368454407753765358046874082483618379657487965984510588766","289093817867564119486241597607406941492700987207767167437434983175644209491"],["10522879816623486513568023008478057187557953344500009271857522278399833081726","27887491226547057471124979953755217892199519397860639066984929373157226431778"],["7079137484808918070337121684678051264531321483118603117607902295897328641167","19097088034027674617538716324306885614495258669609627574113643433788100492133"],["8336846722867969664554187468183462389993102044048278536440983001178656000237","20219968759834155701319218640983928917590858829632942340820100167462839141471"],["12154446256079997592805938762846754228288715046057725476576934822902383468275","14728292198530165381361667088495290430594316894653410662457716846386984797433"],["27643626500837415210611998013895514627936486643951883318350081862700053507838","12511196042933414579458446066017643439462217138074824932572462021007887925264"],["20141329836658884018921617922270993015915363690288428332418095939382324929005","9019318836013483789844461513211443962193321881255888483374280044118055204160"],["9653182643993267530698110913716340414974588685050250612752020733786832064159","3090266208516994126007474938237708148106500528196649214780173996826910682181"],["15099569848239477994683949684091005492743706285212575602431102981206042136142","9416945204316487425856658526343780449209177916337995995783389337552601962115"],["2636215951288785900757429863023673481948479411901524883831319416298108032543","10170352645785150553801219497676511891082221325040361424477205082102791198430"],["10320803589817051261780711229314639819925645025586362278485800778849984528618","16076201000911266493539938783615961676231093276837432655953152644770499141961"],["91999289592146911630430355955794543109310180932759694070260405689360157409","4957039768406079555401069306082599807545662612485808015684379691616448437478"],["26141274689690000175420880895037614226511096707207412161023902514379150658016","2135522965565783724832112729237343136342405802601304519310934560041213327975"],["5546396360797800188140688296424017435514384500535472122489953714808602029786","12314826678335619236344651339097841881729324729331765203843710183159729890317"],["11887612664919190379485341521300180433988412955648292931476945491838062006127","21661335868555815578360761360976320270390436647820493914330400021814517867790"],["16998160640679070094487485888436642574044953752240745795491155194388928724555","16518548828837324192838515221651021203733570590350026994961641384961913670148"],["7778705385837644799398374117436828586844151331525460934096885891736918931724","10200054313042012544178516680631427509439047554424658410372464348065901827044"],["6981502261681208080281545839535466622443290830929264988202181109621836570390","4262616994510898230497976837897084964762882872793641731842568349805978066400"],["4397659853351270640199357854388123910331397312394038282847843855366452208240","12879313123673566351702075742885541860629291366856528308768778459777390773298"],["3206690417799836012416623357150438098186712801790093520400062032774275243685","800654133828167934100811389433882132586331237638612237406055509273428415187"],["2349819295957308780154822802331266236803605822025171778424521779611324135839","19690669298441820915517288785964288296831320877899763384060228515175718917705"],["15839656525733887487357300766472903799950576614066774498473096222566854715977","4771794975982767257882362118409281743193339104922911840328551060062490160047"],["25817643116604447972084636614209345443434652882437902613179542925556987333121","27353219287520627020327786221395532528743021781614997330494473773704451399951"],["26092439509334496467792019707509250572829213623558897480186286215872048130384","7807578735547228223405707052487724891707948990716291713368695634188611685161"],["27504284288042349025181201434766257464184162095592577497903736578838594418830","22909871679350426243045352700670176805664415005690919015785768416882353640812"],["6592281047063756580419064942265580173669347324194806016154726348073230780222","18646982589789089473478393484093662790012936920476482832230873360176369202362"],["12869195885703109589736287393902894810407804702146716313426805755048443271154","14886576828002602582092385926829026856337593547152537998052249893056703210136"],["16260778087687351723287576330887901645308937587526409486190614439659950972370","19849020052807077185945192159453810818589125437310220563917872636271435276"],["20615130353919938712151401002725729413493615681911043642008495873626763434383","15924634091362884709391370091328550778550339051657126447841329675990476746970"],["10184052509207551800741100724419033039597550273725440415934909712955780696064","16934427302576237243255498244660681312132756648289751616467977874399301822783"],["24702894820126981661342125760964199347170732667963984055564148355135256047418","20495350245389684080987695908948925122240017744730925057464818733577200528270"],["11043585390978703019382291002666462327761411495896829805112438431336991972371","28913351029214972040823002497105455794770624873587296922675840456036136179456"],["4377086888845513619392475579323526486889058529325829928233334068026664273269","18168712825206108700719208592020371732311304237667659828049835888264403178736"],["23766936880061130915504586038837074135179439969081313828618756679569162210233","22455920157284825311516806471902301478851324408888486521182398321588922516629"],["4684127799352252533920890665627943099616639771922053471116973116448085187777","21391478291848994362770938503761110327718841995478022726535723912287782476878"],["14967714657321859609639617861668356882671438060772183358886262606833887936369","17742155805814374003751415563053727627155179172509173125295917611001934871491"],["16540683125492295411724433919650861402461306962985910347964345170212820720006","28249858864756623692779982165795190430503564184514775465896503825283612911146"],["22412536364544720963844658245446005169252142311662731971111217328224030302124","13881161108465666416113267283422046086476015063713791072915604261845333142953"],["23914626364722176945160322930938848412269193806092400643430903710183062421250","14894297007003969314309960382253735942314487251596928040321606439766100602611"],["23329840724994204872309437523466626719904104765853052936691147130341751482499","10751457425377395511409886216636053397440701761381638119700746361939694622919"],["9507421439072899155723196472511110551972550500643574493932978589872080965854","27164678379313387837105481052359837523702403092834571707374160446522524078245"],["8434495217228741124527474994650929881334534651044323064686334176799857734644","1483240339947971948753673466117440495565193707845126266102003838407677010805"],["22901177481823772309521176318289049439413085122512144133909078571315853573948","20013783314536011525125187217179090883426277582586013294385729445653005369119"],["2417808335510542156955362322858635722260155955250308829506841192818911137004","9907356925825881899686614174021158038693389587969490851578993908271434767327"],["23641378823445108548969492290617052231553086937823935223718146307731072895185","11238559085066524523242396377875247865484485333974350890040817815461638349991"],["25439535825179485773870034684952689724067414530172838504010063010488956344660","16788610536779356139937626903866299964624332212050649435945746401814164895191"],["7101556194279577172933249606496620423533339135929944832512214565652319373192","10767601810972565050774398405381025595237142145596164615186520359998928361835"],["8045963285972009486910500753821036971328606897551026809694091703357487998866","13593664351211554480945637917653464689492480347664596005380837828040862951883"],["4680582556630733915388450820307442564032436344345530894391586793726865254443","7158358420826830467011033943420619179739479062755640057545053384414423143123"],["4913509670401257322060001526393002390509721434901544882875297748805354821541","18972479337752781148432452288462595546367745508335419381832926995916500416783"],["19803148804535549806877136302950508375235039112507449777464764935492510271181","25135819111601700405455109589744900308009847421403094903326663870209509774511"],["18765919164305157970592337413703429174611019387001291827564659929454225056956","11844236212022899696011673444624543458201517794363698046753887910152854037171"],["12391692150715363422575374853244752519349379525120753886462157592667788305285","15249096666161232091725751045313106128355401732399701257015471093476219428695"],["8261827638327259655091621583214698630701595379680518829829525734152433338398","17738649429060462797428530597338341535853161168789122031980535228864628539586"],["322389813758521224520946309240743202047962923646448513107419165454286612584","16683941398681311154364461797486146117465958498360634761207003184439028980593"],["25405966413022935998181069907363314091969847559008756983408207987941468534885","16015853179632045948509353073323157278667089426774958104614891156760940857466"],["21834832213362813337817114729199037483463560956901878870886254613702520256668","289107786411262608609135462169656077852805327277600112951832627258766670179"],["14646957215365045480202226064872512989466037736973324693387137732073239198190","17107952765318265488597487924805625188475504729591616860304757843850832700339"],["24475614029782296433679012588371051675416401171183559083383532540023980528600","14028347766009877732110946678340402244265232197199139781556683709158842933636"],["3953383896989994569094484342165161188200456470321758078599274851970885753817","15941115961202226434087988444792152186046146222340083468911525641659706831781"],["10876999176910468139070636845032854066074648285812753113891247094274212076956","6112527120896322036050758862923332014640939678186734564174609778866262709546"],["12093937135663653045743207711468162861429268202842001333480679132589258230156","23478166297358527237865192024718772509527171533607796261805919746134579422940"],["8634606544589430806551028021487822560234398258586012798206208058025198347226","8106619870290849344454166656726074891540610470543635075985086509902144845712"],["24347992353989213623842554669929900357312998140393905067789961670440726997623","10233358433788119869313917904906529677980851129964535666033958263394698159505"],["25226124042400432773892161400989671596831730685164102027928272371620460892672","13658030003059012204525063141829986081850993548582852742831042703424451598261"],["23152636974395735667042521420776039360060690878707429960762449931369354578705","11903521078347986095907748549865001761413599929423493146276502783296897945567"],["19189729237365160947414784593995182952689402131751182191917934118829034297179","20373874145490813016076082109380225662242826869737729948780012590970471854999"],["1902175798118039509890701356935969493039910753978572094430109866376549389636","25652215437088287876180532573033863010354472797929620006639950688688883623745"],["8298227203020747843662972368214739382493376689523689581944981843518870093861","6471018747204514759440655720342131124722712120002237556415720196553811586079"],["24169325757293224023673851131609222442017863283026342875160880621304353502307","15704518218125915722538653409124255079277132241025151012684016633934993452450"],["20472073648537605661376019993306243873215596791344430833312517488379015443444","4543559148188428281182437484969638514583356080688846983799946026489278063708"],["252737269535477271460043294663475562927567287343192690542930013430143051985","26090255158156086156000118157223730517184427658589265058804809849737788381195"],["7005966908491978009864692131062115660906882837767397577920465822679830096117","8952751530610880993345867111064780428058566629928430006831840034403900515704"],["2749040474648435326013483154609993197965028203599741514243182912890931909994","6287745589609487817507263366781964130035981759318856850733349112477680213124"],["1566621295814673333709328092884461946512033754079366959756614679482025217865","378203248518389892850794625036085381538779037635830996266218576260736813597"],["5072457026327226756227980806630407726689610303834115249680434850471374690203","21428530070042356672084593285448927141934230866511253438686757887546717115150"],["23926340415434997087043262172184131999053510314742884328022958313186168162811","22681230193579244903363745793139300452877259310206878027559098368651301565994"],["7734866895719655811152331314387415624641537376825710227964886028408921960407","11342519229060705720433232641264402829504103851203660819338259266362628827540"],["7764117506707251574154531281923429422073240901410170527552940391927028146238","13478405153920520949694206325775591859601275720666435172806828640960214873462"],["6925089577416920357436413456572909369271671836999913176251674690998053965377","18017824280729422189435519429030874793037158704475391744872056099212333285274"],["15473899921078733749844560679739862679193725566979071823252739350006859018997","4769807816399271063949228173997716253894186040615123127887276682579053526515"],["23014937105890824793467995067413549270835740528339570113657525615085670495452","13297389817111188060306404042946424488595650989861726178768041044026262595959"],["27104981401953390178949128651934441130899701689104523461213350805972879403589","15304512054596760238288396325899511199667973050201252986430548329498076157960"],["22662722841224313555991584021839378144251487136703996163429200358269088133932","8374799801827760795463370552294668191075186654588692218033101038291045630129"],["9246397266217138707781923553449517862085130371343986648909916036280273515232","11675851994478617327437835840892590932816212153842316788972075159104584187397"],["22454830605818912213233128769467911478850364076903912454249053112057659086248","25515919453814482693248079280981634329045657258060971189394471576080890187081"],["22414692455667678145805246499594115456577051775646149782322314317260060357540","2660444234679348806145668537344937016424066069447136287848525598138324561681"],["18187190865015793122931888957135649851048352904010917437950377294270840891368","23724742934892125321491932782077453846739120680725518809937022388639488950283"],["8305625354548583499121777762813497770680544734973049654125638815398306551871","16881956940889532576141406173087079928451282888985944020617947439742750384898"],["12521002743814226402554789211805869178708625057699218802710803037395368451094","7462703569471061806306606941853012118447812187006176865727072337998161415994"],["27269757013516750461701428987362948846685512654888499594824117254714609919313","25791825629909356372915273975251918084664989728125470053537836783535816330067"],["25248482259755964631287507406746341076646751113211615466029930140647610550764","19482965187671947036315666175303182564312648898387794435696781351521903944301"],["2832030492078027976307884608740396318704764883226782044218225077780130184088","12345154820994059536076396759841690849939996651972997394359403762596548733231"],["24353790120422214574731622537444397921076199299933869762084103419340265639683","11998056237676543120032267989939440138438270318734765045944399353363976267318"],["19549944243167664937466146600816225746247012880776449475952918019781102148207","19794685613386287887370553130309184177006775764882612568717907715689863910804"],["21081927935744516052839566128140254566581853803314797504875193655005548316380","15632091901943295008097706897657150255582193760671815484673608706086964007269"],["9525749214050354185325357420701793342622372693536499862829323711330051375986","1916818850878239492647675771924328925688208138915949534485068442545921254650"],["15377384078654731737088431355875652569952027066747143573402123103859288043230","27938285316456582571246668529152839336205247078997882932667904516811099139216"],["57194237765449672955296683734363565032250516426124299780904076352826396189","7400953635627774634918731348755868840938298044528129648700189285333717536236"],["28271159696593212934591708725742716177488713867410657734178424943070159648524","18751397914174398583811448899709922149647916511296316611672737474238312979819"],["1437251769047046251739129471928166504178246843439503469245015296163542768837","25195455442349870900064372832082525139098903266052584216659098677937924591329"],["19585451579622317899096818825845103900032759393790521596604158153794648729425","15972697877434904325619102144654168559948262880161541897475859192457268985226"],["18434803213928669735206216134036848564374876404440987195823113372359978810544","13570857881861090008161966502123128432338571430804906395544993995563692346259"],["23523797843999983245820192680409400314048082152498459701815157828831881168653","27232713378346995611457133835087389527067525426845676789822857457219860825732"],["27122839590353959394337784058422633527277564430430060034372064163233053151334","11510901081394326571530939211565709597898412021389736609600281277651728677709"],["10543076986149251882233153543494652180198328590760596270447727763847120279761","10215628323550576875346781954561401915082314945841050558112607193730816967734"],["18129998539613822228269676664478328951790727570482137822650642857454422221880","26263828924203337611822614605190849400123915274252221540450822433329877485575"],["986311464341882664750059204599717889610671532832987863482446453591656972578","4355834705814946011247018995076004788238672348916013849969677010803743323398"],["25529393869637846734424893214447263232652485896231211076138951583175924631861","25831420727478580606678540751764226812406310284822036760662285505484019218969"],["21660864529211309006319279020708302536922335213989960204011821884106512406001","12721443112988444661758370334003396109652450154744226854913308640370516493418"],["3707994932351098770170431864711624741725101524305454310535556111665532387552","17643117789026130378295864759380453691591958043854732982182871849555168338129"],["6884255507105917207554874638215165778444595916695992864551533070200080011100","22139328184001552082878864797112121520887130175992727880453902996044861549926"],["20905926192472709380669480746992333460641593044767374875024427797997703705166","6150920404595140536233581467797595217190425955591843408835082280062082521156"],["27560406329599298580265520098692172734050364456301355477573182122908933934919","193112131138622385437594442431926198754473673482787113811400528247781251214"],["4303197954844329873994545206465278240942677150025875439846400502910937706765","15286897193772656588626879927471961097216807940634708304568539355249849674467"],["18621893079127197541696142679938031721705205213663317811595454703501164537408","10843601062310226112333980705353114682062846648603287136914321815428880977256"],["17233344340124074684817729214366596876114455025459344689886567786996797171527","8270184581246779712975916131357526201312166763827387309904830170335899137556"],["26243692846329017107572250580823597643235716419173483991973773136201344622135","17129192752607962208532504426819634865555100271499326801159882022836793648549"],["10474769883081843488435025638830818714662268641353091448528141541839000902068","22711938659268889699816575975388477612828468601809657475950856215519807851537"],["24658011831356970489758102056137884570827896763653321225301963842068748826496","7134446273180555298451688771529588010175272509832380716523735716839846383624"],["18890545619113450714312853265986019062333455902529668674317690726204368445790","12230655292418702150668109171439405521570168678161177642993224828892578125368"],["27669843903758576913023795596845578419741784136592004622847138505981435027398","5482930019145408848896569559286307717239944138041141520866292870380729530649"],["15412062253053244761746396332908575214402286537079328550366627777186357287952","26999979202378577705052157553022533513245716962614085915355303332987422681497"],["7698386833535343652662989768625235533103282123792892263490221960318547476280","5157456338619367368910668028312373272880764343719346556552700688911683823141"],["19870139314667996608495513991196808163543288512580048387390665987909179871777","19246133024030532654151978335099849810454024161169147488467738280853104836078"],["24851415833904725227712076665498873869721920327573905149304777193845451746340","16329010508834201753147923456655262198124500650919459730233733717177591564194"],["14949913055561871141194609827568018771405196811175425467923028888816753899902","10433662703717301486282671466645599803587867531101442307263296827456290932937"],["5349107407558221609122312829009486121750249562944881115348688512196651800103","4747541625171330003698645744266193380579299175878131954809131873185594763617"],["16054462336636555459309420974186078142014723144674188945705726189600318381457","15674632496765229672247669081783466426750107354578301743512707825820183747517"],["18073343431304937203595229231450751219327676843482166303071894637286945627110","15480254526029371981987401752440573049966916060175729701218910163928263096442"],["22304581047766518549687648964635360261727745327089626348712065861994815918751","4029770891268386813739859664435445565350959300269467050616910082492230769111"],["12272541329488543723183944870217154852132750580470249578990778226020282507259","25635735037791685320320233899098041591929571362664274905997002685847398039273"],["2260702393994846454657029372348609818738329549677096692470988662421667547563","6193823366093974588784527821211064041339997523380682045623506134795273719549"],["1110250336842675587672918982625416530504078860966183028788001974379731539079","6277838536969966485046008185082418315592236885738130017455153998848770276260"],["26212170616679508880052106925227004860327716785677540494570023111862769702683","11293685177158112174895463933163379262391066038422549768279311343653536228277"],["4530304584188497997558883322115356194925068683639773221492720926269802053044","24768457018652541011868156220364254919369718212297664669507149921236608865454"],["15384310824172705049483757700300588330471820733840114557011057798173102592277","5057493744421678224183505398563518373578249804544447488808812097850882821829"],["3421924321819654116007442903251374269835083858562158404659350456278687914147","15972015412541679089176553891395095426598546204846644491320650773655598324308"],["5766185784884824821444115667222196382855803715511947889373558026050063886331","5699248771650616768816510029420824707212724892998722394376628420539306185216"],["24873099300545846674104099356344489971597217921872600121072850401543333944887","22929178026115140405570496290261037486068483385318260785968924814826759303528"],["16554707975529537203749167574829929643708083455435664753336148072788015022942","26853055163612306273938340352858336273681704640143888327510603048293413347538"],["4241065239564620640129115395366320373323415865454143208362742249722765213254","12137555210991714785998582514163430915932955501797602053132071487449906987426"],["13696399375513030088457322705155735985231945532506229679198000946968693698650","888235388466653556470779036015964573992463501227390244036946297807562076086"],["21571193634031605104544555261040566838684728120048173405016566254199203302320","5278989535724875509541957953376193428285373476255467603819334278415035456929"],["18164556315760357046699437618843422933524133901437447570817740524716442854571","6820946445896367953470004705676805946850706491672542188955289274455250576125"],["8514602021152824395655569378220480952068951831671980497060922083071365501817","8805411941266069347471153776783433012590627679545345298587432773084745213128"],["11611939242791200077904059969722549343168771989008975935805157036352241214501","10379309320393074450633489785606119316722722028083590677767059104694213216826"],["26726019659028259809060092543122703063619006916706416094441778571175872452152","26122511193222936767536881935632216258374608984866793359850001429540270089401"],["22099669269857879553179204042834450414742082232985629293127367659247970543059","1819333678615232051585471032524777877077377942635493813802767135898315700192"],["602059073345017075032118311004688224372805211396757310518102646707480018122","6887951120853800365678690509244781692212321718173095542127818386521359476612"],["9481384692240980047164120310625515437646344261883701803835725441963111502639","14185665831929628172539183023540041952053838707639634260393576972634579145935"],["6523082691478459358703758822118887817394959851333348376542554685369672769771","6630216366014127673386460744543683612161316378457330765950420236704714971258"],["3270610177793367138803742171995919547775178164118632320303780927436063999842","3707885672372289207438681689240763208128745527452502829215117389667603257579"],["5058595264397044342380942740922829473874998982017415346365828795123902638985","28147323620951169136733486966735317581451872748928429803957368899138107153873"],["11779873620830563270615051952367581279647200481238100041874164432982219013284","26758272013705709373520297055567720591373047095711674376519954521461492491904"],["28059650350841918514791795986838170735601243876962015093672092653237800427786","1609752144566596073784437064709831414772118047763995387846160753396668669394"],["21850437263311334324838108376698464680254122389736830054942433976795149759231","28092742074986590134716350210738808799697269823709952168027774301941626468721"],["3282334563743168876228612884317994906955244742713743968254686138236938726950","10252311840501267536567931747643275985256911601367911360342130160159098957497"],["9396046136029277858852991373702685601622428497098818059711967328326538759535","14419211141593784117987309210121826353765673029031840116778305433470695871309"],["11535461181879317028608440015741208996053145649928271796556382397637576051940","24893991241842757771085545683960952925937407270897597302394685620811861044845"],["28895343579716082889788160046031332915578368003217875674402679884738843637763","10505478110359846678314698918983327844305119973405098012410341837758568608238"],["21144617299240207464485718723579796925312480131710849846214737395968536487389","13899998215838000889030392219912926604353740923400678067312755866126264386819"],["131546266085761680435067734828427825463345935654185860200146951531905160734","5051255000021175790609010608850573463403930656651568836430866205376001871762"],["11288080642148214000894238553340568705357633915085358471289610503911336864887","23301202037297260174072469800468277494956367299978719743675130565461252070990"],["11060979029438702003271004004869076518152457071310576374152866391410384604090","19263944764442270895026075974261679867349720619818524099555408844267410362319"],["22172482365701393326872072141311568870748287307264596825495532069199739722050","21408443243164533678956626004537647295723356780087908702487112980545731618014"],["9789428184319490330293333978251098801882475059450401838123146252725477516646","15866823915538902056701020968294098092745960166562182218606124085696507387769"],["19286298248129301491205311686471958807990668605354653284752486273201439499918","14951426660344775058430522002824773506903407978284919275854446910976087483682"],["8721775132610597414670966578192574898558867220188919509139694555865831741746","15439634598752114933106472347517251666893508269004601428382436640884200417270"],["2198831779617614981557624683276936927900900257443029308146091728677705972892","21388510329550129283142085000018219891356766639545757693242879339093253734319"],["15366817609705758958462742846682808620218766452572196134929845025847838262582","9650364699087930978133273143708192960193579910149622675849505100951721290760"],["26885271239308109797023075286564237561539333874318641258756200768000504304123","16061141575103985392200074059533897520885422629096161970458398084034141427618"],["12892627224227897798453795968207121249565709964950970135560842114418549966401","8801201435224238278203981412383230403132458264018271107698456852623757408445"],["22831297774829450462888838168345885660839776359082201173666008655770453605830","14870003151717353848232611856910684610469319916947118290568440356347410575657"],["10336625773020606627347800935683489496511921872037047801612474713129887953268","23903597168159433258565901946211452164802423960943773714609038138555525702044"],["25592291485558622021154560012937171749698743425574151723672134028845607186537","18102222821482157173687325075035665647406685769848044325683236059305689418059"],["18873294737549048241457831959435568423178520837183277732232652628291447737791","19603429790462267776881245821827509119640416774609008758690579574686676338374"],["27619484111182229419298098889344023468583943416109376541828392649718288577334","3891189129456307647059792672378423611513507926477648250463199119802540608536"],["2977024872338062606548241338845555967829050607810109174998876687087441693547","16010267858729251990121734208353958253341040260726443640125620881341133025541"],["17470566408310848664066156277589725244848884528927743514384610386722773247862","14003532144169520531320251917521141565424615355977219856650760080639478879452"],["14278569146694091670476485482050317609046317168527299694425460820942442472203","25515286243588112468018851089031796372867881271507293166823225035450585145788"],["2911861496888942887719142316691942327208908147846992387702172117300845301585","10039577023369554606167097826809791191815796385542795416456755277421505143569"],["22217316804807994981073881091915863072032999370009236811774587421700430973283","1334066459990514521874308271747161864772188399782684282464563697280338767398"],["12435704465851044612556101514345033891660500481373874514169402848963050847529","14676794599106509943706343495698469358580633676228355122778477324413190135371"],["24866864360591933174858470127830213580613098947495963835368101778123154117713","27781916022103373822857593907402658284597880288748942577856873972878334902567"],["17720569326425384077658165484298778901718209516852862734942515307391968600726","9117926631677681186314117721527655402897035242071962747099902611343497978981"],["8627250199816055618441875162101362178171685856117484057738832884659407287110","23417599065279395496469950688389111482087915429241082599055358924265400034170"],["23402590410703879334124197151057435190689161218248784246448636659081913595991","4403345724309707545596727750873441415210906841319101728653977069078391599682"],["27657096311852274042458672888234701174261939261335559856414451938029604333042","10111701833889912019191933224487487683103271674361262789560351784407619360740"],["21537034904447819850867153548097006198831945029446438493148236890247579025598","23540588434195665386068739898668107420745693267800890282637785608039799279784"],["8561616126882977287865191288226832900327591729973792343341138113193849904572","22781563346565958101464224037208133565750537417852040745329854764448990705379"],["12950118475273219550545111211450357665620967525398176701231038307653565369267","20423424669506692221726015722305928470121423341229416061534320131198401269664"],["930010875234993828868129993653663399288102072139011887903861716102824690218","7254957034298387602268339075237364423777782304587577943402283918666541273915"],["25095977882027321558317270230403083891923808917322555570751542787550309269026","21639481452216500251185195600711460991112451973865513970477077034866079496836"],["17507817727103001190868286069973016950279516948609545498457711749403569096587","10998934400633684492285362184934265711885749691287354006763493550011470677614"],["21803227553157052507179846814392380507594121275525086386865765104283694334341","10104954340648016193513040057452270581006788016075689712386893737648965489963"],["15451855886886767034863978698190274782543418195050533674327339964290394116240","3104402153486152433123105428287764389700871009315109067692549630951065535436"],["2944704877953811595461699766594848690683720967455963029851342074732808654390","19113880037107882957180052659232648948203611361169308370157995272022344332283"],["24015371349488681650530582895265975199861705879118847265987386376340971286368","24803957461754986459166478484125227971232035391107576908666203418118471453532"],["24546383217617398100764882186712051717843188173927600698277666204255728032617","26639445193248749484925304312809269475614382799880189708271091416484256648851"],["19901643604874447866093736865629928573020319463816637221640078436235095681366","25849582057072043760469048090990839124673887272375622008774230195359343662516"],["12169589200886229801590348105077576093662076776949818821267871495833766811122","27793894224005070329520434474708942770575815945712582982934244929995834163134"],["23966276226010946068251815720728282969568410779884376509309964008450978486883","17045041755219544081560088105166032374674996921233788049955368907875969096059"],["3332765639050700055173521089669516163067167560745349380946885749355586496448","11750328024357324918304923820672039778640981668562943306247600795322115296842"],["12313808166147106711094496260165782916046749954072104049150785897270297088835","25397673126672254464667202955087946966512476614953034478025206247320813540047"],["26488088714155636582573806900172816797279973562654325257587620457244095847747","9734641011249907970122617936746803470231763489115681585942582278450919609246"],["13853812500884938924929526951713105858401325021522670926469535076327152630221","2585977988006418159411029321847875169476849198445473080149855407039789027765"],["19023585623274011000056430453395152197378181927706827353872258314951337370481","15969852132304286065940453028005314306803250755271616225134497131749625863704"],["11855508985971169407141739191689941758348579071936963257257982957535439508690","28787188174246074070647775985998076522966898707543749611192491188459206100118"],["7183605479117293245855491561131284847976100713885979725964051266638543694216","10974419063890678222401750545129565865578443504056351301025862871026227156140"],["1298496669607149695200206504971594234042114498001292986659860373532040330119","17053301563971062255092949098121294786214181462392024785384595458135102422454"],["12475263579261982805237619072070119282598282459715504928528645372831188289316","11792617111698283160740836914023215680812726686065889467752008607368723221391"],["20415823169408049970107612862005456609464827993626293481237982526674527531704","28420085179674336764166717123172114590939838665102919972737080405889047979421"],["24692053781791808336173737173494743521400633788355059052743618600287910515223","12790847508331143452736819891263131564073068430316896145254998256851487899057"],["12667165204958442857253249162712658887583556250804865479969927355556328886428","7603284941907433594363621045091703101285698070220847212467527433710807550668"],["24360939549940062571999957503314270319770442170953711152386814200659772889749","5166423136541542069734570706249051694313904787110987145016441836076584364345"],["10941724425741939751392462101322750836251178559187188187637124468057299350344","930488027818660239996552985555255511566174196848306786205596255098507854224"],["8692842701140725982972764008144664692048399713941571012703203147269668999109","23308785833893060898729212651138988631356795199024244110839832516881852594908"],["8441795251598842454293726454362198086012913196326799080605092545878089062994","23302828915075106189489528406122679107034946601761463495509852969940356594094"],["26953316169548535417064922629312707508635361946663109988777400859607696668720","6849699866400808068866370814330984322083671044459152388302787109278944304009"],["12005689277704873306689959631437813960660430307437123715985008860995699818926","6508056241669509528198600058121849534615535565765507599795391339620311065701"],["27660754989453815284781230952801038300333591971241248430565968177287098603397","23974294452220559614133809858568889468171636465045221974452188956111503974823"],["18643742262951995353578644284193479487564232383022647408720639021598416863461","17802424949784522157046296697339831949721112240868725650248500500791584454315"],["3899216584900341712525959895593115853303951066758675717144363206982026325570","6199276163693003424321180116989846114627826947042177049217460524522682964370"],["10900663584656267312580505088919643476214395800521545684715632630405303372734","4990364015099762783892928351067425867419342475851457999612417265242475814793"],["28141677289805322411876897837810734200689336387879508487340859217775286550621","8662090914927369527315739852569737539579276912127324603036543315950367837005"],["560258726084627683554389114974920092076563023302065867834694635576379078134","2915853289054123878734826490145552070099817758188080478773994181601855300606"],["26840156660636409455779381825476984749166987212973132916455428153639638823958","2959977050062993523306887781716133856014026429738466636825703313041014529151"],["8026541331994910380724152713585353619596861117400481461548921096468723318818","23677732230808501996508158770421759930744687085150022879006509323465222484208"],["15588394463185832743113748372160242914150069791978857562710720710567050931624","18936968533923694233833344025506878220662064146303185557833503063343976166742"],["2978199524641576474485696712148632764899057944686186889976655971885271699707","858769950706576092198895275105615467972284878301375781786770315183507713782"],["23580938228140730720718485794591649929697310176127491233967311853284655125083","8786427210256867958407478529147589583207509984519842834823054781380068160136"],["10505629107915411667336302053929185813321883245441726409889445594971071644384","10219924397900292582140823269154916846319483165428536674069942009228746203653"],["12402306028946531045193342540041045149527003986603721601848649755006425682472","22311443047956435855652185713717689437906653507066207038635313069371450396434"],["24229980957894912065955259627365396803908473170432060006334631703237234408862","7979181965659951914001453932546195654546526690498773912389095506891136711528"],["3513496626644495508025334601287902972322138555920790832746449013840884082469","25520794619806020355885744016367717807101000109647821485135982923813505934995"],["25325930143364118694886494589539124062710305230743612680815191146210506220706","23831209472031147058046212967515313492665712994992834059664394662193107694973"],["4230518951071882232365053559963388751786880554404317677903439157430191761080","23347944476598848034758375212637340655502029602762455458282541590806560050422"],["7248911536182451469640746159330926509779100023428604149204371985134438786030","15231293307219714086652629378414995281349374315011906001847995393707113758947"],["6654816034945214766279469764813765877731955942633568991986638887089311215301","28022714730273996302553738886963281766204559277300696947026386620079484661115"],["22897622414907483452897163403214467372906998938992462513006155931434438730800","4669678708047668678933122716490144284405655013235485054602751767529192874718"],["6537991318198636984959505487871550261475600326800236411180803048033393109232","7903283626452712307672643977325761124695827872859307299996714060153775060011"],["26199863406791328783264250568835813098405354369231019142327717015718243682667","10622635225581608192284559921008030045610545814221430348976821614278807239584"],["1628051895373855516449402956216794920746657629171166066509271683184333785056","24565735423398650806192491018137737674598892922719633510135288905811050880583"],["6181966262278682808398310939766377949360273299759657054217007724623450701519","22758531424734023354461464177645722929115073801038570564469968805736664861990"],["7976194052895542927581892921692902048652563032980748782987801878578225557674","20746898375959784733250308649984852303301678779079072951519183534386080855009"],["11840478419423851379269556065999006995185432335416196030977410208977484729766","11451544325804752134296482853974292147479505745029747989495603503893458536560"],["145548568094144443306699727235026030958966474403849158327796712655778592169","10745960910204893478255086213316598879942169778398138542354230403186838296850"],["2287375660631661871990283524469094459145648234082381064598107090095473247218","12203617721682188410101263815690314069378148270103178479532586825977134339001"],["2266809016538297110923152074243002535129069267705446719829748819788485182050","19877455997620200574517302358903500522099968292923477995812652219413481613202"],["26201011348191632972714095316874472795992775662695616036275902747368204438350","1853378620894777551416499529864650431046376607087471954705336490248404653893"],["14100891044519278255687296820621850550783926880384397669310529007447211013061","11941456943896874401390890236296831063667509386779226181751066498034719961825"],["21743755520112415023510658636644487815281902614491455384920894298407230496422","1118239522850407897796477667040723925982423025079553406470929799730813426403"],["23798235377445031819848449130412456503373145255990850364564944868429921050931","26834509824722777508124933232519334177570657006714257453096293076419388062277"],["3442695275516660056013790191822224647063838769202012830638515518528297307144","25498861832779515558503356330609503560159190777238873241703450809004803804030"],["21370493640122911323734611271596217186007743592883540368252551780429896305291","28411699357181335701030957076139459281902666298723345201298207006490234682685"],["3737296390842120046510584938817946255291556877449094616348095823427500515349","25935458074189305881477554890574073684913354148814491631909978930526518903628"],["1031309451594813292473484355993218302572327919494143164229404738015088638504","26511391929064284578198017299377588677883667830610325769985658841904527583340"],["4906322433383051114756762745967788739004715325971118159529293811306141172149","792566491631894478651792213854387484988852605975208771518553690155551325784"],["2917090327434955988926396496702978736519553157403683287294494685709130407790","13338524481611624909670503251748879225936523973185229333200592603741569942454"],["22830016957180354256583523242766684290951139648529327084405260427053539150695","18977020316804140463139114390095986477010620941419395797824807710689606677812"],["1772646523015819954145856335356388826323477295314543392193913268688551426539","12526464791161906064959396690861522636557789311933858271545663549257594400442"],["5054059283144148860819436549382608005245833594827396757854126091236744080264","12147810648565456663214725828359494065219128315529695045872262910553962285991"],["22401946957322808745457535662222112826414429344921437362766159459995207704250","7011362983163117897117227453681550280054703432421119815550456275800638926947"],["26456913837821725505643098977467645356464969383505334356640634154552703976915","21719496550241933778500689443963775589596324434494356255096434323659187143286"],["14335956516798417949803583768187607822545136270544610269067697826503012548968","7241297938848979596459252784847400710409248300355159819444178947386404530483"],["10202267017801522663447096264947047865540292671889271177544068053076838217533","23805638711867697050577365572842321327954644414828665254161580665061503713379"],["19789889893070679585818830626390518557824634558958984477192717125207464186945","21631127419846927029041433269849849896902859152616755789734669544350683858823"],["25916203806799170516477186554134939381155555625145220834266312182689804515860","23604638964488183300350014153445721047535706730933911174953521227275122862567"],["21965489705571021722078047654656451513096581861707021829313678014911177906953","28910345059422555154009312495737750772681285873508012859996365616094091551007"],["18715844793362600976399962438954289545587901650045973568209447394552543204076","10537882639466318910296201365825790269167050366337366236194802570171908964071"],["11241918172370628694901928829558494613404401580444504382818910654182655038453","14716567273878674374998161268274745279221672835867734842693461470483099803884"],["11358210904507659477889839150419823966057186703618770487575500378741519671515","27524353869957950229472857686129178503591133217960538664224702569785263518392"],["18816865966857169684339365583693968127698728423748382203706799244924123741542","8626395227408334605832842827200533678473706837801861424575395606790890735812"],["22264322600874523371804955581158682526978137785459364815615274818597423319140","17857030171876417959145812928749339786567970710983557946585933272281781059768"],["15782802258492796973880454208247407058912314311274284437547314373704744997624","27751208594594238757719128567946311771624586858517518459617100230365180812045"],["13637594905319102573023026208894529664430740453327778024430733788575434284951","406338077813336061272343383206599625095539368102735460903390685318004355901"],["1887153179570709416596293562903752335608970371109244954993089303437990850399","20067362918553504117860746632433966261150728611325666643242666746531295884345"],["20127612324723510660807276797509661035819107399545808982069936876765391059731","7995302694002314645744219145268488502541573687212136234394300297977108513588"],["2126258257966572783860125068092835193664642063870651804542195832408725153667","14531425699463931902573570301077201246896044124682416924606187569359453551023"],["6575444977524509022654860894163117308118935358625962382552257812305605595186","13430715812476913682244906769117225440961620330253844672695691440523039224880"],["10040692925569051707080912085867350137823195521043549820382397825627538811819","1888232830489661430797614141983920706228292460531204033193866146424307935262"],["5244675693866374129483519342528936194534032671424056124398015983924777795445","20603356420235616116002515409093246913440133019097026166482080647194387851213"],["9929423397093620516283481020772711244053563424327143775828257667328089814404","19717116203165036808811035895790727076982640305561327754977924196617495527613"],["8730215906562439226693267992431378050230206024926434915687656086014026716802","15141601005534570626577661071109866397960900975533141696692956308258927314291"],["9611036910798975832628083070812547415745168373864064703330890922505772923589","26800914619447641272488356336140942886766691821021621230901544795109473323543"],["9911766872250344118104057582388648028668526386458500663505177959767608829778","8262370110358255880779427029292954491854189506385966164879353800847855050039"],["8449200753068103078176318799282379584260140576073729537543585920520596180657","27274070491272601234404009825189945580916123626347807616797642282729150196991"],["21582714509154947487815267387164241433660488364463213421917826485522100983325","20352148415816223862075975620080951306114216866098134235142967962321236435382"],["27018354471611963177634905846353419776672686199695903319131451225154129407423","4634698568897425608806160038164446538268067538088970885212340619732164799300"],["28272873176336955262777543735147569783933675384888635715444557022063304132340","28247105747504657966037831737641645987303959366273312567117479101489423952105"],["9710111418358532122808060608350221406535989182817532068674039597514649373224","6341757881365323638962511630701496981552909531105061463917745729178389917347"],["693138723277535994377128535108364561843334383460794577879827811002539537058","5144036087903512674033638822124249384346845799459419414236336935705344985792"],["12800755021516784288839499456630866791044254062725411628485243939581043438702","22551313070715240125264883000127115167632997750257118714081828385753830738426"],["17665852407988786413817916932530768101743335108909528625403789486160098429718","1057231545354923479613026558062302708527375874434967229091625794544920074918"],["19753842944726197789708391713838150068893310589436020752665508919227386058443","4541182363381271942250837649960306905903792818217417606807428882373873649011"],["24609411361357333486644365288653220093273789404997237081222255291889699108465","19176622280567760347550227803923197359410495840556537678313483108036368594116"],["8458741826748885499253962693955234172077980192006918026209343206852645476185","2998862009561249011548343860967868661382589357522105619247966330348895575120"],["14994773139344993878561053572108632083586001515673594865724852631887329083290","26144877462722616591557847606859322520349525740398489531183630283947610493058"],["15574195659376182130243485381575346513368436145553494586796367068117492196016","21447113501341902733386905204942874838089810979617918633753142627211335329910"],["2736468150476400472037470449375693450501597104991656408765134097928310989209","9204521768981216998098561380998407156369390812802046117137289326846315695193"],["14855446550815336866867786046788537847699507802929802137679835861705821419380","25378367337211619870200757380551115683721712294892558465221453605890983625289"],["1717525493182995089943335934657449632372106030415340532155218362253715329341","2983837796223181806192993692929859901149536679551082519176456343580318642321"],["10268800059812922193502583506463144785170078433116617041894977136860599861041","11550391362541439002300814933990970517646746546380104366275427539889052441841"],["7243558602173006948717510012249590609602866818669704497964772856221369131860","16147827159749570981963801097551381366148606188336469738126734214808928177249"],["26452989975320975953347243484646395232419171841608133969022636117825940653828","2963685262139324965018206459339728518826120186501852805743169574409537677590"],["6669867470570426972774619727131798144198970042067270242466609353164456928021","27504846756097432503944861752140418803791780882578307733118498194266975413789"],["13606907294937354934068205600188431468198096219933259524189129833473405294156","20633211561874633208181812176002342426644292837628713479516707016515175586589"],["18684486057967487116135344064542641651300056108307172813592773884739200698127","19170611006201083378226848912594535671806241901472337797958470498423007202014"],["24930484491122594457317668865286513424155653261706277842794640558290462178336","18040622733918157167199618476912029508300149527287300234380666235677192737903"],["19586673666517783320758928750402825108833910918842624034224584639061628178241","27830774167794337789027541844054711068079072492055201330727361064072101328488"],["23779617372987493124724885329092951052223774811351674607284572556404114796780","23009467072137880667262803694933787694739489604222454964653716026239363481222"],["892215098813143598104593809758517083235590778442146060339239108319328432288","15677697885412011557086810013157761631551952521790238565909744476393943360746"],["17576960297616387539074406229456081308853671227848395875411917070532127258539","25366900299627252886343928609437424882599047923400543101008416328514723255917"],["15962598383347360426990491991485046884814836591373395715379490233524082833608","1115675214019242812303253089326210423511479117044156471611081406369342831289"],["18170728499427536432454687426410320985207077577766647969960845316996167152576","24177862936277071209616117354046826598326876665862202623866442036822686857191"],["18748004182737321507770167235414858775904122642641481155606162961110004296367","859472150191174251900950248737431746734186022985042808532597059734167639553"],["23993173410047257729119291323462587772243262348702109127838260188719037366672","15112773321967909883962200325645721046243429486919838783426918865967262579555"],["1475633400120838010969392144170960688150233617091247610787031731017824145907","12766884159539825749829207106864206542447169511254749350507281519391548668070"],["21835762073696507591903267784867210587187227968758217066803939348382014432322","7542044053613579740164244532077694746204179286262390204015189933493031877733"],["3675756192684574109629653175157568304317577948719650587731738895183222369566","28630041855255569657066762340597508681874011633872578956151555930131057967419"],["19776009462027071793033732053598348227705479459111046939445755128749893334673","20983887940768819407084596256372571208003199442902529875211748669088866227084"],["3339291644170331825595595955740774604739234645261595765889302596071067180213","17725689700077731637449319540192620471891897932578419523079153936057630915067"],["21073691278620983993413515178369144470276990378789570944859764190225575392905","23529489201951979373533509955789281031632521313060717471213293639090837779407"],["13025086423091114451621908613306554010240962159571137724214545550998645858755","19935083198310898334269159504948367103853495670118817797263816209771700696728"],["26493035701878923556481333908215757876593337864724723420428315271393633651870","11759532949456566383715006274161432999116547944737414978760314445154981650645"],["28116961850046018029968226933678517346451041404976434570697285113036563926947","9432667793059531719039897807108562792893044313752715646453228916037665127795"],["22574124226198942442251963404061597104756381386884884583355872410088380657108","19729922757250605394314450051282118015307772364848211456425438966668947233091"],["5868293673511322281357245506116721596732679500241778722312212643448605737427","26815025841938465766650397690605359020725011821741131447559616497731584523152"],["17699436446575059964247100333854305521701611325788358873178629495481320496393","4532278954917324790415475703384473576660938367421606587401276669770647955817"],["24462872659411839822425072361012600599799712185774172015148403697786384684799","26161761719904720357169399130807485269556478471048027146638374050929349385908"],["20281111726500383686072484924438013705579094425408536683183202183406259710980","16360359919388416608371985502460221824477908707230746685839226019611527565086"],["28821652722391391033401925665302141288874348098177000882775499855428731620138","10225728588507298095195123376378738911120662312940099672226444869666667596758"],["1179950419869502952529735430739369757555481078834373344832391932077123246032","13184228058265180953495378081339667410690933765889212569204540447629562089750"],["20563020481738993954406345822877845272064765775075059163502408486149490695863","1909888896497383682518327889281316576103129258878954693735099977579962240051"],["21018732706260762367329595143002054499492813498310343756821070823680480865124","21056000416075389356393174878801113762752506993655085604769763354356014603330"],["308721993633193211454225341079353363993252682587780201641233651103991931544","22708124946428111779702955663364934343328006949560173990221052396811453146320"],["21887421278745891538219235725557133957061531910132259924789932518844327550176","6353192315720368844430232530138952372155229222225783230431111218018759266153"],["1960736568513779421670631549462741534153163086925642925286304881145682645960","22680805943537141001486979668896892983630182916938414085276794627039495066418"],["9110417169362723012717982435917032768711054589028557187048435796943095938373","22084631059035336204788683125319275926441064259602249123782329251526646399630"],["19946406431749219851557197661961690370731131842926312786018989522247844869428","19019675921383797892483054893589510300211537266896112568355346510871345380684"],["13761757442157975751656548512770219387512169453333981071069121048531708366696","16175951169375067021620621430423596925617442172427560112263484016938281731349"],["12244410429132253366690766271014625610711879974447905334262866699962731404547","24228067277140529850838238158300226247886718201605383050344120996909136907301"],["12393141459306065295987490673333009063081035543185355146756619255651836380754","17670630938041552393311904130560672833620778597118055593133108780812119611815"],["7792845466583561201361812673865138423713269942405951144178069201067327689336","20036151202811671400224694321682431144896493666292014765841638644969749092888"],["2185329641477950376974659547596424511566396601313880588178713314619061430114","15199214760410748837704987031525283061042151249253341151078701503468522046155"],["9456531526320260565140615053367701663913151666278012063301652844948063146897","28244605804460230402739509811369218736459496384460923375432521372217733483966"],["28905356854795056760894180260869895497052695580313662653111397603141142728145","1698419326102786842639700810166335446662466863332070952777843612598966617238"],["21213708474024385703118352206139973621405395870771454833991061732191563853416","1681887741555962080429107760742193147803796130165672110187476647083000314740"],["11323311376537991281616124047923634429983495121856303199555877937481618040064","26882696103752642915932219506429989085519737880099570852060163251594116775484"],["20627493185552030172113395057064745467820660303289419471900232771707132690396","15962525364103408229244218290712456182044110160610990279742855678986048804149"],["15958422795087534769133177434774614604003520044277503148919635136624324785507","2901113385882171441698379184291602678765889682205812179195494894484646580328"],["23369919764944920393005302602579412827553508990387335757970147903786565790497","11709967258121634671187819288908601573585553122209419295304550925547249788598"],["851337581923051927484307513764634358133071375893968447233581846137243093749","26889567043520005736074549215742930421474445674644142539434171524295709053966"],["15605770081363503932932631981724810508410917691712151422546537349114556055217","3701468879211730049250262226844691312607848816588535865596885706910632659597"],["5606439550503125243320843830136133858918165338056315898988333638926223912472","28023413767317148772414760063711085023215652230094524129906404798432560995315"],["16072422592777478539719137225188097447949718729958259053156147081648960804195","2967237655919486071155348856249589487081561467607514952220146513147423030548"],["8978102011951619694374889132794117905066499292879815633824743977036289965463","26751595768890401164856107973741812168352534483908867960973941265610847503331"],["25958114570699549850725105574803413655817398447511967194721763230826417254087","27194689774726315569252522004229778538904669039064416369883149531715812092937"],["5059564498135037924947766617247973480047418769994238434895865039336395488470","27687014498107554489466670018919804103809582733649689584401143335190360287912"],["22762473849311625398522343937131995411282269087704705859137173425498460507672","17234376494996224235952667390796074763030520499545272952613064752201780311268"],["4250112782123768141066125139608684913055253957365932678262486330838302300290","9735578048023028805780973475730570222114290711811424916132852368366452673010"],["19138774342928043394579420121385420700824499937231757347609158025614731294522","8528441812905589344097798635903562660836448280590265964941498212479345646669"],["8347151635268502914954683659300218783266497982124180819722714755598783483670","2150211787989367763679051788479014537535528629589778886684365969314038339"],["17423567618798225461364257300208771084677538218742547008638828971713222937577","22141827819479311543497767110933248978720332733685511463097501173837630380701"],["10782744680249621593395889619180821991919872409191800914695096948462412164535","27637229125789958115991895272913713016045330102451838941271536223116287273858"],["8011972808956166341767183366509553811057595647074724208164903615747083918881","16403361143409390438491878433222817339990905788193491437613791349934296906119"],["2698863708204297409094153766887853564591842766497312754199380917583351594386","28817357636468365364268613485074460661145643224019592797459328361865204679744"],["17558043085180874123567977988849244176779243105976158538135820224347152681618","23220240554787582007901287228976143790278123768013029554126228587381691297317"],["17038136498372993654517943429043879660674506414769629171092451377448866492800","3589609559914988158010386615312250636702511487683518791034185676381928609709"],["3850833004732643344613033156562994725891199214569496540522789022592331640731","15722842521193780284123871750847143908878483622415252400420032938770874274553"],["3843829373569062761360386211597819537653944580228395893371404349860581586811","2168267205539237904558234152463627417190007732894926883328765856024071349900"],["10705584114845296764939744782355959447721993456600883440220428261341947113172","12152983506248446200604251772855235641902009460520393868910844530837089043094"],["1191936173509959764680918544842690905880868067026356774032787939254886462920","9170193038154643779481774853915777410415779007384800959376302648292026917958"],["12263464214147167231432280339058583327392010066956334142262470362556355623932","7574846666094082623336741140170104756820117317004637365585807285585356392494"],["18301271307002340519298995156540756558698696042033503497951827443131513711127","12105448236978733043105532993317472173625625248405032008219890979947538151351"],["16228321058626871372994588694479250430910262387850995098486983667367658569807","22905998422276882324040657595011853986234169974115280125833913590711219605818"],["3242359774768479256503043162238057860511709815350865130051921484605434872132","12660793127323936454771159956439009095407672085069522009477202742610009599760"],["6996242377986538990991605629489337616065989957468792532992530291551984642390","22696706079573758279825852470470172012376698095806904035720576094032034246501"],["6743240431048179735217847210626619739552856402860598802586516842186309320618","1752307131030086950568689582201080290587809602808734661392823361763940545271"],["11522899786754442627665782480004556434700932338405406172356457633510500107285","14108586263773505932047505117957372641431788773105124539952231366873157598961"],["16263540855596770911600500146314094613100179743003958653741499142119805744495","9806930563473885084507461713578678927949348033856547110055765040484045597254"],["26705489666688283119925286490436073088092690542831382397654773375386736131291","8628796279422669856066940813195895569212705107916135407288543700829779992693"],["889719978056215431351346514590066742921480394872149862254848517481572689187","12158519015044903905905041735810427131650049255105260650133602919262199556223"],["572102294787728464774321495572215180257239416734252052156315333993116875220","17817559354178803741933682339171311123908661321365981200040948257454647643007"],["12829363618963975008879451989510393693303173379664385687023392609873826127269","5671722177098389814648354186103579842382137599623403396833331485434565445659"],["5806950818689667993162439816556919590396647150879038815971183192122217122414","13716351319048439665128087637349738860708519780048080244875201667253685356678"],["19517365788147994064369909156877184808887346560353857506514258178961788156559","12509616620139888931819078181918216121852500432503083138838283276721395271100"],["23314404119549879191826186880643409160542915114127781746411463126215514966228","4251259841967340571757389355564822019548964106220960915770949192784183998981"],["8472999054978764019677362831693979588593540042285473280884872441318466765755","13201806607668058229207781285099598871454237215480189293605734556753825520133"],["23262617215366437285404503003931014334037745249908408300460600378469995085476","12553464361042406878146001790728494253305202453572571686161701616471188148337"],["6424757285557245784370207750305076816811510951142547757096012936069252247552","8747981755485864645736419453245797255588904817837890808011381815115362153018"],["8673042097569521404203676248506967341601425438913592911933831987682462592549","14316118368764982327329215914198412868938127097928245807874222924092805890514"],["1753824159123452525287328785381192685190374277673754883719476557555004168655","20451418306086340537267993967822110188393695730008685652424176136480888429685"],["16632732158086435239448089444393211789813771429161883297207884842638640698027","19379898520596629774213403767839450900047354694155106318024998763309401550487"],["26079881216087199353227763928212185583858298316036168003460332045767425264208","11760299129451544502458601968231850879007191725376656175385229316819270526937"],["22971598935240933234876559679147399149717449999391446489170376052080147630092","14320729225835663810036743837730108322744903468369002803196754328358465660136"],["27201552786085086161471633443973857196591692036339039618722300547045552160428","16917926913976065824424865188737972692281391357186247730478983257422513272548"],["5205207541222909435550314320379557971582488689148096474175469776031321994055","22546523155490619683103441263607027119864304552088823153875130152473564576475"],["25755166514624199732461388061359965712060817626969579247635559676554785719981","8808775408364921529968382785010143229565651617124217804443043739314074663121"],["28206437638502197848742747382954099421069503015451888874761449338534843617038","27704393592647432943223800969424150044915517869628195862505283472786743539142"],["7261647085316344932730661682521879809456619161801239896706325138495405104516","13428975841647611854762776297015255275254404907292815175926187195962012696424"],["16037415284349005471891735857869285913562209248900671943923015846964122876803","5918133233631498938096644169230571411412103873480417961397261207690387386742"],["11802706107671983222513078118411238082420023812956628844717173343174335512650","20848209406196988991220440270830422948948082100671284819092649048894979566867"],["14767224231990058540302519365140206811204054284155228780452083075987493131963","7984407938193581577763788506396146003057148979478276126703242096960893032767"],["27155590093069260649131672034500018952954021867091676448203190437592458058337","17284447380677197762871771202516957427059073549493096857532169015181751041135"],["13177350767119318917818128863921335533816555690531217481762241949557355613798","27641279363370329802171700895101941648809113804897875338624220927756757067468"],["1201050510377161398232867544327255741910670578328735478559123541894731089999","11423652039859036453718022906348433608164380480114632973097481353075114571962"],["3027698311929592213630422340368925866045658776520139004749534848128899035444","9557685997295766597896449182653352464205362361863842108569827209097551218816"],["1242135003869353108348019083394433479994593628993823833509306932640470141133","27983442061745147814111338151529299841500354487143433304882600940255961559921"],["3107557070550582703285483333023097288229258817373611591454220792638689053859","7033887640897388737320142196564375798644183496025486787852603665852874833918"],["5505144626020584322075098365942530022784182958234257057564134764689969254706","18551503805817843472912826919872327081920874361025439817985308294528794523656"],["23260691331423045007989326041635490359517939349771738684558538486681963441014","7855018232625220370372732320024547660670484277249829352202855964808298995150"],["24567886191091808240880091479828617470086563046876553129011636240572105174838","4768937120038828459954102752888632391351642951734373631877189467282211490367"],["2447674494404812061973408493362339069715443666196459223868259785328151667177","19341750983203317801538385638295410468244920812420544396862758567999113374773"],["8553933149212813185571706232369958404123724142419758854894752669057725172592","15802717932421489139097495975574978330876087214056397203840671798305011367676"],["19910393068206255571970274635848756796852872736012372184498120163635576769634","10054677764395389572845475657931170822632719646989802753510770159932938042989"],["1029229317253698430280400470511213251681741329933597112831503811285459127491","6026847741174627195569103471631142144324436875973804532773065067838477138560"],["1860226586224726484929483639180182679595846427890788903035779500043175103227","3107011502246306267189150186232500819030102797610807761136555473089740052271"],["8881170688958035066131740927499861304748348871872524195797976385553178908096","14269912257451659965962092822008471111359604159563088545990088763741787922256"],["8210526073967707348490204128620787578552070817737505286154345241345145015094","14428380908372812218052143537010014970431828311794658179700838206457146262436"],["19084454343181056221935250854613700641373057833035995441836767531127597527297","27261612117223887964334461943126289470922855474840463160333381513159296230966"],["5059676582864552238492173270065507260472676404641331203902444466688133617255","26873347264459261302474101529424628882700750399949063768752112162434112164393"],["25701137608846268658458188013544757928919405483682904781646458632570944141950","4942533567157426381924934071145299543322762015151574919219742163448077423348"],["17113648346968038370117296230357111821249725535916185264341221181897015843747","27022361842093265987827297859430948874168949365283302473995787823559746488151"],["369213529854433416891354427910247590324732288066925039884439940187627060329","12066590191835767491993044223768572524465496129670227557778526828812535478932"],["4235131093826011737153871838497955589461677901089658610749096822996037083926","10928207620445136539957510124747194319524312020573481902152905460804789080928"],["2410749000797506565102337836006142990699042991351993891534710783475325933132","13557967293710779919691021264260202193530970520136491176101456394170459305179"],["5867843140778193233683290996540615883380425411286628357104150704704383366274","679778779590090961323321383456805158064942583720243510354571542147362761214"],["14118107382115571337297073753609474523275016059919990146988499873217729037457","28864673827645613268596917238268793450258283589392779779573334563982626774941"],["16289963300562816987729645603127634707063362667500779332204227858291937643562","8154356768482072327702976293144416059729194478182743035827703524479617226135"],["15829769969298750684680966634807792585130085599196280057061661403349074112225","19850327367980187071070096754718156138790930547910347825123999479593854007649"],["3350958075468765974666133027995970361550506333724413395921210240175679787005","7308970539304178862051911016803261425037743783171591921030790567563070222328"],["1005791476546599830156155541629073692908114549200006429169632181573005289494","19165596339930029749890907357063513614949558403607520626952414989522490771531"],["12645998884759670891578024042424695511012196560307377135475527751267419942268","722756277457002301308233176058272502824440198557231682535582936299610802984"],["23649834285428739502862945162835130049906847838690043477440307582141960681463","26515163091111841507933266940343849165676204620584007568006103498144446514242"],["6778405034803031257068728476437311789520514618868258358453401108083393772386","135128712836654780783435514403516932759574950989483404767681670433947068945"],["2143516200853143470788199779331498801711432337828700112876364201562706918327","27885971291311258441181903851472438843833154711515208771242752640426875514947"],["20776657328875686781324556245547940214159386862485108785769507208992348366814","10141819293104944120961132992758917756290792964456606034893701223010849363977"],["4548776968089279539340711484950822801532295785596036002461478170688466974422","17490336651246536682187714662554743423486790910509094170065680041370666680622"],["5321144300818308366713410492961615054818890388732367408359317748323740265114","14467315831490855660538329110595627838657183026463840548735817780063112182122"],["10980605729176419366839373847635089980270367399435968055912116152908120360133","28567894031969723786158163674912061123620354733834761412573457210671316394032"],["26738300461448149018674588433216702283665650742830302782974783101297669447012","10922564272762186104999715694741296004325376822469867186986216421444215911735"],["9396207348278275328945896877385626217380247270543398292129473025716404949868","2032387497006199764838481488753377008977418012280612689945036306904614679599"],["17281210773168213570319972186987748237851331418040246175468555332054331735814","4364405522388116962111329326454970558824098543222963318311707776626046266388"],["6623033377440774878641507118357789117766052271320161048952092587786797401365","14393782383071406620948924895240968140777526935925602146111225775480041386483"],["17722647896566289237126457907478875770678245313128048055772253757601661760617","25344423434972908952226493612737810481802993410837592019157341696799157240807"],["20710316368646947797233814745201104021293167158522471877007343287388363551166","12016010209072395796430802067340764815444183534327044193724116417701103638492"],["28860866488239149367805903106054577277769309077021555348879112307647734607005","15799953316434519866094326349092336761613170277625546586977046200529967946309"],["13837442296794255840820989887995254072525526878315154202954500580075352519920","28827024205176284771428434573915706580303552571256465318102273408898493209819"],["23566791872827058430524094917311247660312323410286966827709618593496496560075","14656953785078900993658872195246802249127735000518852179862982245308969493051"],["4460586032096075580454826596558800221778443493190150327190143209160035847050","2635163531781474468981868166015202189010319019692909351616023119082122904536"],["3115924961776409834383227623512142502835724693638226641456170809839497978304","1165535079756672141092989715816769733638504506053991424029602826573161061800"],["22647577841937713801651316723910138760129006599070544849634664347591978221330","10090994202110217358556840865169997080611451475746688127688037592229070732979"],["12316101714706920812680003430006529413800800271994224232451704061921731025305","14723479459106658074283523457587670192332899931786351965194651367732931173315"],["22406742376610584150406231580962437086772966387579767256864829777242085615688","6313190945928473208138164065985181871515033303281850893812339846871261689095"],["19513856754064585190627242838629866211562411647875276435895700397497257255055","8476907010398762358247749491227302768571698077969254814545769328513180968304"],["20690669822621856131989753700404456079182174204774212606449349472247552825008","25467111726736467661935402753374572282672781785962572603667892530750258495044"],["16899141472159155753138632601190224977302981498911873818915169548248712708360","22634743870647182711240118036627050854447273245701626224125646059054966404652"],["14226634287879473988564077071356797385823635925796809055635531258788025476073","18185761081251714513116866585233787309490984921844893148538981072799742892157"],["642540661414287221553949661941470044463137474795899077368141831540797425824","6224186320048713935501501260164242766156646375658965976245651411930946135920"],["28147298985158772512477228653963002972654457524325192058856905010683544377326","28358592955079562035887001632224852745978649935901304281128989429632245930900"],["18826044652692806868962628699233804688580650109877328023994762283695654890155","22764352017924826955301360334054513444476578073920514187117858234070278597884"],["5300623081145906899245757520748844614607115047466078274308661414233701239087","14761472819632815565640239279143754382061384042357903945697852825948157273915"],["20827688121029964847154961075155364774301238031154202643339207997946172088893","22891012970067706844460609974642325665561152605664286046985121516339313359942"],["2339110612654388676621993294649389258832399880575745285482172024284871122054","1348456835928593231738663865110775733447485809780413069738775898444953688033"],["28817029165593653872230019398914505477207709593144945408922621650363384234375","18320277205002229498572105550743837576840730929923862250111773362583091456448"],["7345964169685123268216350737676552664232554917029059082178317342504716980852","27196554714659801267421150817017071725274206964691483153298759307062195329145"],["13142928567826131388421269361377737623387644547594132112421088130891025973131","26953591402690919484283720115653614430789169389700579076233585819407382905069"],["24526566515281882969846704468071090333872939138266513780439322074377771690355","20396156096754207503272368104545219939649748513461123586314060421791681335862"],["25823428534067840514305951638157816879621934425455319630772937588276750314010","16902309414779331006281303436558579544234790674192889539114368952260045783659"],["7425318280166749408661520940455166219463847030725066476095507389103291697287","23019756026330436851471693853329531032381535910056114342727572546207409445377"],["12865884905863715804497487838746576407627111876152265865309268327714264822733","11616907606739398021023574574834720398447078497693743155839921925832893098023"],["23554472770702759783828114167197724618859354319942219913425193635284654305336","28665603058845962914338513259198346708933841699193483589669808362474830973445"],["19254442254911230628892681645572334770955824308446166403431655334213644571484","23872838094909681759723758109489098784161849228104601182317087425123179991568"],["855492837393601989610625346115178939105274576138689836414767049034734757777","3950452012208803253464606585661424382951878064221486256801134311954878397263"],["5161770239035420886434527719606043583135110124458501651366876582028824800453","13180500628941083215482986263682355671580569587865503507824511354153745016404"],["27293591902715114446908690137156553936784024759826317662492379462126963655275","2553598165035320687738382768580492195150517578085085224371866281531945629218"],["11731835620165335390421228936265216912269578080639693960754016476261328631581","16841379613896459390658089819766745113305165139562859566274156443889751022398"],["20133265597549254666827646477582741253933488255415064643298119065183207721921","16377471604574871778123162064168021721647689444111370550967360571405993811531"],["27998558305047439863746235806149199435205393629313333204401056108251517759980","17341562128212078008670556730264123882133485237574454167949322428709035978884"],["7968484470146805961931886487346789684737760005641186098044201705400286505662","10348244139808019360977954925707110390233802337537546976234674538028100206525"],["1430412279961057184960985178734936643393136432248930371654992417849650639785","12979322712142720433619573343572888474720424245095025844553782668637363448231"],["5217792938183017343943505230206724347328223328496442410594763404319731586414","25535814968612729395317302438959310152670301597359533066020116052470218810028"],["11742300472938625242757130299537438819265201853036703424877169774795952801809","14307698029784634984078883027096364372278050447713766244967488829843175019874"],["19886393131010064305438222985741230506778496731909595477570344585044377566121","8817428439672728284311497188153423496068742053772649376826373783009288694098"],["8267487727373174130857452310592269737537307704308580345253202381938881088775","10945448846307779189548838628476942864813745567532487372063075918949283313583"],["14207251433213854691692651251938493977550339737895173634422407704146790156665","9419020253207224570186612002367993802660137702886408333667468017052453164200"],["5148780401028572383896735761259476751387065610756493002461677866553075692685","1454834007978960792290721165691722804926719446028606198559897045222681088516"],["27035904826703253416979594533296477737157569320094706113034960098575775672738","28657881414852626981097896257836954025562076925960587320804457616796996687952"],["8725900020817452812127356771082610538952903121927888833077873912276788433062","18600280096323603184509920844683513473215099368036495192136026874977474879343"],["26230173755076998221038819799658231858870705030535163223138269879447602977619","5674060953154236676082984869084991275666716665876464639314624600675980766018"],["6411783066488015846822843746260797125529101550593717615291345714020439525703","9363139778947768233946925163613299680492948219123963751687053563805551973593"],["27384805422446267030473256531147917490434108464502656396606674204122550160407","3932629445098772644668571287722196406766177479583425670077191572883922768302"],["24785878126835449263548234310116519446583501285927540379498060770137707192976","24612763805048275391597095679479949491667252122594950471179690994778488092800"],["6670849483348885811775093826811693537800763139729886073383560490565974741163","1084273547176775034737036492487042882361039958930643650473161064249476756068"],["10712651771335539527003559182430572415143330221589634335768527207433512552459","12109705609482637328972943727842225313328204430809195162358708953399130228309"],["4754250880272421509989617945353650383389023061922884044477038595619677791021","21102828095959978838256210736125795587189786819000024286893309671290808011095"],["15990363142207335287345138875371835384979239784967216459260936043271548804184","7131814781775185050643639983064587205652800405405474582541138413263174517953"],["22712131200636873789523404560031416550055597465789875126429450318281063926444","25654671497370325638625730259718617900104719730612408334751233690886117384451"],["10521501116771318278034514337782850664461700314552803712236941920895024485230","20827954244631657624452556572657407047578127949600723400241737196198935774496"],["10964999660149011107611256644450531596280577738229566611435080548137892700211","9032470202972600001986366816496955839360682334034560047055017855464462068193"],["17517680089815491761676531453519487386371781521095664253586646211431235316816","8615674589772475387163137034934213374304452304543865558826467106566058133382"],["5115976935749700025701965810493457160561005103489349679973183853127003754063","20722763007067288188011056601298863845934813071637849478619319308449090419016"],["8381256391161010295795685372505600579497471036066813779111862524481780936718","19760713675201631388652630058379527593743770157372694668822667080399219481537"],["22908958902352479248949071775929740931033704268211601451912080772793976845622","15457710251815494342755647794102481380714233739317602145710536280511371537805"],["6056920964007211705272598436965333081665227207392025281948372664818418366417","7511550875968969579792825791268854968555617467024181169411094339847384575660"],["3606962879403763087627935639590532105899547288818149810861932968735151005266","14703112821582438866310804346174172664001856881704582901545517229026079514976"],["14808021375640170682644844438492657337848063821762914114972747670667201743822","3861579238981061299615923518313224512956317233838868572469947585135493334214"],["12242660166651162428071215258153003535860766386451973168674231660265139959363","9034302651476541692935388796453861845126760315745633135882007574432356634277"],["25405405233778856625958879786585331158681789753843198376534403732102878118737","6741934735286470650703521450033931287837170003072828692606846820507394330468"],["16533046856005249149867573329633376628674685102904446574082996222511990944702","28276391739982190701979720490428496021264758885199969325884223112690692568357"],["27901329975277571953676557544153374956744654819266081758985106464679450143519","12693437921755006128970392244801040047608900940410172642359736221696262277097"],["26096369656040294355558540873938456187976991367245094843117105160436108138500","6501289353084946685549774832805705241439971218204460105810547345203384939805"],["17922754994902841059149738424225153308175527990255637852008388296056008035331","6244400560118414232056643332912496768419347542694827672278574709747421783219"],["22553937585670152163712230474567630726063269268407927093905267685765072001746","24214120937066379458035460396939273634577450126554707946966366228963675710190"],["20061929492486574687564993478234603965658142045403383591580300846766046941434","12124732515557155548601507623311942764904341567785834281384476808867518074603"],["18808572286091208415534413532405432378977341712983489701079223687001067226819","9784885149571774098924920915422173090932309936708699009520772571935248845042"],["16642421101360386978877373057871556927321287629051195734230109552099402585449","27916446102444685949753267830257348167183683479266320075052560543663071040672"],["24367093816364364156604957684897021260563475859524192096566670794509744981702","20646154727249512048810247364880704997197266087352875894007591324447554713336"],["15097442874897884818600883419076705794873394453311927254196924938042445070683","21380440583050806457345941408862713985787330185268182520471011790295456266153"],["26111580871572072632933832715436164881199353805327536528306969780476981996098","27810630060827062465652154705825698184441332966415856455614817144500088672125"],["10367166811887759835565911258722543397540355147998156297631591801804973306148","2234732775017906691284084974496509223996406043102322263247398990593098385987"],["9668842958274659063220441416154315687883752603448905270437494151793308985778","15759977212758702421387375974780504998387821530697406522673647400314513624857"],["15435671225569097409618685904934985339201317383168589889901392267682295989527","6450403269625961495670685694550959694404347979595856085489897633194537825597"],["19947749290231559897835685988580659805158627955476168614421870736925359535866","16216073524601369907995276415149210131790812615218228504006145169537607713212"],["10224636930165909266230139515946890602975591253900542770965906904973986483945","12344250513086572568004668410820306362051075991943556283404437789623115853643"],["13905327936306601908406776704740823112279048358373514786933549876899911121208","23147452129759443790457860465504614368833296247041441019375897741132018921473"],["1630611690578268674248930310740723109989607321951356952296481575148100397864","23974682836691939910666232632544504849908134339960033597947735250979461757358"],["1152175542832579023866558117787530229216980147911629139880077206926475740653","13683007226368468000338081543871427575235812026202804803342913331940381321568"],["3300984340653407619844447132524032794129003447432467975563758893513702150813","27962305475729176671449466412676563562189695152735406726305359047805402786001"],["12837545881956846251599705161216472282542752987472096255167581724580794999604","10799185486033593136458053847845365676682469119659351501199839883053605911331"],["4547023784521356852469775563922309137412674140008215726584265615335080215068","19001192380092546111580370776299308794085232090151553295159640729824500682172"],["3149818734505459591189920269533657762248811254164552233723794438815522626265","27913508148513449527801517875559439237979460575867206676117298792258038953456"],["27602764263939854354365149328038802167696309203083867728596717225857478962153","18856643877014808249106053446997388112562284499556140111886822789311519913328"],["3598554356528698820089234929279265628717396216358574167584698636229150405803","7919222372345215307373764789427216044436820997566560908817141633575264014503"],["15104943435045749700096903359277221709851580854225140934587664607295799607751","7402967789379382329387617285284864549447252239878044509641835568643285307215"],["15988085439575849692184886924091176873399284347305535415327828899514174240869","26458916337075739170732368345864221337603328312019421736668467608463614964788"],["18963747034259318366933652043631349497412760413455512069809387636060997394755","14252087877781482638329827206035484367407233834164529757914248811794849765966"],["13760414376324353087996541073475663937823134914730877845496967153417692754627","9333193678707755850996310759998392969013788435310830459197419522637036706046"],["22374808209299598952305713943185759301492538517182078248260172246940519688524","21161185687955332476636545370974106927975210378231860959894876935716425303046"],["24226380712638762498517217759102468845826888073686235507238057834639050485552","20108321193658634011555800032446788600110024316760445540666260998215904944825"],["797291938582631142370999374119975845119360895067896419750319462108797389267","20366258690227908282174491792054789849112302562245833971479051004279446396005"],["26058931062158323844170874152913184486657841134101321415506506308050479935850","23315565290127792248188880143717195348444262261357273490833430484821451012773"],["9488888545053200807959246652219116025441512809931647068160790665460415330235","18105322249498867548932480069814328612206125244430042800847462869839164514228"],["18213445931871888982167569154403068278832843324449922846618529472716244168867","13668027506190225511322086532654922642925328084439712920948528366722626398661"],["2160063439879725192716255451185612912732738078019342558739399240496411566260","26038133812385034613442482477993744302278514588975385419165194360693585527041"],["11564380494444875192434318986226987248396913547356622197044935280689723405105","10288604409128816364768744006216103872279802687091165911436083287511504067613"],["5071488964202723236512595769252949665464774078134318200296525175261231331424","6536154912656625204186024513777416675590831044087851385405097686853628317684"],["2536019890446427799311864583205401597088912935366035134297117200946966566529","23535456062070860551164731853536627565374290774202385685213253226755293648706"],["21099279238790323164124428038101631639295050113530894777646989948051692502570","12870563861113661846689921605733131618129847503951862847619440177997096770651"],["3898114137382538441149872980429152690652767566391301171364549660076015436742","16108075842028969272363864088298395180768153919616775998933347939226561464274"],["7219732658249107196813247720611052094791382268674028532508654835254140081245","22822499177438175604077253434430980693721533383240411163261003059261482232873"],["17444510199651455551557571011910145321063572796619620492145231395855653706123","5088599238711810664064324770573342580797024548236308871508720941104285105016"],["11266911316267825955276069726436948420687405935898011809378979843667884969637","912246892272818840094208539109526021141439784597342124333031779978988398566"],["28733142761565959858304430300157487889997942394258611897388329963233772047578","25567532900921454251328015566897482105704702678597579641266634972060257862118"],["20842234342316970356369935618255004423904251368777792716149453605725700693377","25788832277257237251549156980478396299995655077781656301128953124482403938432"],["1203121928519952185457549491507883222622978041328214682935928842137822236194","12816504781890599568942113263480699077120440530996871354777254479017647539105"],["14419802562164500158027524194074509365638979126972888759298403784185958882404","5302178015982991808849083816651928387008595374319244257872070998494661684479"],["28320955545155596710426813616402069332688586066871488168805926481959489668455","12615440750624191170594679894513297050749538091927831298516803245919328345934"],["27922704560359722045721063980637499262921855967285806701522540344338669684412","17285817478726764141805776935053579643344662974996447009458045588245338892060"],["18439799421457701338901737149095631722111655183579050021607689301607600671898","9747322031029273164027373788443640284539565507616188847129357982452485006630"],["2745948377285988808836761159635575846555757318479050772125578295629694302479","4312175676920106149314227964802015799653933931888921569460466108274310825323"],["9578282538323729374673626441647848989481432104559327766294391146183313426630","8617150006471803393211744481849464310743486570390405823192274154510446460882"],["8000798715166064219444107119745613329542722380592022101867325002653443682248","24389696760102794420436461526770721479144281965641715080724998434194708072892"],["16479310349915395236973006037080229730935201205085812755947716163594504356466","14491148813569385578506291861327655049587652693816240719305774376410898178700"],["26158890476178087530343343380449291187773697195955224414590321227549866571246","27218831513085789403584169075395512228036504772388596604564930442235817388568"],["19553504403508700228320919903365478989349891772110317203598817512792053291298","628661859662366710084525449135981370659004753751686357490594628157313885342"],["14638568952640005220258104071884584628745489149568126776801177652055191080482","1873060672448369321686626507648472527753245418250285517011597597977772129955"],["872223372261099924120644666053461280208594911646959593294199084930040692613","24234755918054577688619514928242436270828990719431941622394936832301717194842"],["15880955330577969003982951169243809656677890963228146906334474549031256704809","25197761934023356062902853860487566900274586733704803839540131836832141528301"],["9361987873906282508072424111257960746487589113318725407590113748271753589194","23830823069010971847893322798439471826122061886862396843212489206894901970251"],["7079201647340318295790882390901761717354762549912900883243285452803214567404","10342313462162980862776321490172874215207680705302039047495091395213337250309"],["9935999578164100039977452316828843560732163662581141546555302761574466409304","6298110717623403631945578442951902813355778967657496583853625971533406237823"],["22645676404151946768425620327982792879492232795422251252656563011180095008410","9531764764431106233015063636913606474844618926628511858971187974607380929704"],["22044523954802562929421141841168443358337900161966262859447122164375403765853","5556642456416956805928655648170171643466017916879232947999940397202286163898"],["26179438456301020181171860586760654795854743419602310837087346175676389777374","12841499590036649643089277932330086176085384396320600159807149799010760642876"],["638531428838107973764072016431920677385569495320261624046862577332133339492","1135506093385866905049612335432409465719771763620694122515719296325676056496"],["11649674786180712016076301807279242748425422131569231942906416306345614769474","9052232209071355937409082407397738192879731989983323159224011528575983263738"],["18483553289906636436257163746787645499165805373969577822962450203227802774357","11337506874601606366629437096157670065870437973925849306553356387348846872249"],["23576664939187000514813171432451728464743015801239981857855220594644734919397","5451829462594478826472440329957410312545975469521048058743881673376119449392"],["21411597603053792329813332010844854077679389183232536776584615777052347830133","13183335552740095296473570552435926416375084329132471303267597523340922650859"],["13539874273777686488831598296318419050689685662193096188738249572439663351811","25322550807333138468585268176625007078583786895207518722678562597349508046591"],["5346795671721562076632567723157986430087024452212720640703751806115083760198","2685285065187076200887233046738760794770860277066099976459600729365217807492"],["12782244127710431053966299596023041069032803494668856170198075893616512993764","20614290820766510517514502197655461248198914489552033835288274081350962204965"],["27157167696419622435042515542058856252479153683018263983369654754178393888644","13891017379567577027219447138491322480000362675610850097471961078708581109458"],["20036587898761872216516494784857960028790640961214612396785934196270782230261","21991001763046764886085189437479986417080387859199768048922612030615321459832"],["5910341342852466269967073359504589295127221854661491965633185556258830376083","26716007534065175918540132338218557986303006190701072550115008211646016165939"],["20890488833976674134394642624681585961647446298912975324519585669972602064254","28001972947806841308161029328182864724048533262247968445919262630110460679310"],["3648804777932834508223577564378944499574468432314873748672848380941740367206","17632648057662658246758997036408165843481229633968600231527889515661952882296"],["3208398417379709357088614022256286083121414086766662666167146708262768045133","23840849645552699666330815761608907073825129874524013264070599541166083006873"],["13996422809959264095672433940881177843139033670628284797900424090470598680616","16079814963578753588112143411889263269384135521979904786377589641861461880652"],["25372101474333930783766231291788443719131446789162567891779780234641693932380","4336599840931807158938819014442624858066961925764948755794198316932748777604"],["8663552486904846943181909772670501141270853775290417512450608949593087102191","2635184694605744116802967848201406375928655072705100228634940064343309866226"],["323458582376624914235247789418243369392902195527248162863862648088297317546","5244209481960362910128572400399054901459225716695923938872204197555246638383"],["7610536033526428689355856860003440468618921808761081176788547349608900555207","4599472946122532822450570137773151762363179093231516508074637332034564705673"],["3449205510815202180725161192286190087461845534931332968663286220047309348452","18294385122742995289886130004712991753193619279739568555970183543094790855837"],["26610043958978523137317374888106526906188440544299777558533428637169546014751","27370269721285410400185215747020418091205472322518952452051410100747838753157"],["20885633136604939494422113938754963757431763320263517397849449095776649498970","12341627099993224014888380329290041764676978516693319646119907589276026754264"],["14865424967399993993279192725814266995226187755791201063822788936153040277198","20781372184370933202221793757991353810290175646360308734577529218038034037434"],["19378314412295864173350633499513088506549895650276712731482234786172088001888","19245917978373063703632835125278192852536947384033065668202445275562770136666"],["28742507597670506632843004122008068785617081943508004527714824872637449207800","21220312082173848468764707167182105130693234297933982418563134499208144149089"],["22675462433001116065308857510901614153764094183469339407269558673918940750679","12584429200164881520675880569741285305345139532342840502269496582745496448594"],["736918609722076610504975920047666083136924132843798018257202037668285027303","13197093879240367588584339347362667049961232159815995715836387162299255157664"],["5111054508534107658684722076942256765157762249847515426869853235018979729555","13221030047828206309356855575365180672633498372892775354228903106079253503308"],["23432695122739648482864479612476942768321147007009640602668706792301686233387","17009473084267721143889646937488914256214511570396960052968728314671762203941"],["8308866207670081147889371644084532777809558921863846867207361832510070074164","28750613221749403250144695302904106702703467018803092896382975716915224253044"],["623055862788838925262906475648801354265852472686348850812756614995471526766","10107410685872584274271960591863671979188761957026736849808950409319876415607"],["6289947317259845389796861434373381341258362091705087549129385201073644347264","12383597554635528184826368084650721226959604450583910575754217161498607429980"],["22832385637855292351583804189879382173109726564623378164660802863833382652892","5397193192047646782382260317128982571170787090769232907528936249032235057791"],["9004526718730334666045040040585881895784623336697828662129766768628849341826","25270906167294833985998444305045745404713163291941124741884795829019371612742"],["6211397737080290086218104027038204902748317063795389542983512323019432763698","13166497435624904238056834315915242670759998633396147529042576014899145369412"],["14567905628880270665960227047288092793117764878132537456497838700297482356730","11318213545823037777597880894375217339041072189110709658308334960322211112910"],["6227802102248260248586917481161381489881494984232632344033310943382296212466","12554505150794530906899646383709991500038105040473752548709966928188571339310"],["1079662133970937676948083417007351199644163290024886066616568008067951136816","16131527499912717269108086197115989984924675147211725086461997402196428760816"],["25105035965534312522418651389132789525849645892479004783107365342201030208524","8218837852364940053221511216117457125451795523885278163251550666306275651893"],["20357706992298569260540579963695475857272312553303877676310318507580381988737","23848889930311391031813218104756523483587774058871039775310883358562090913468"],["16392054177449390940788727533993997593177995309633145603563241949263364984649","27685322147371565436944577203495075224555824587787481398855979873790699280800"],["4312166434401202143383353431057889442589053499220626918130698794383622151053","557909155723291077464750715955342093528504624585034691127117300236292577989"],["13915981546003248932904099293660640371482385469067762976025992744415791094720","709023969912498350181118740288507082270485908460837125051502641148042864412"],["8522160584530916612607903444689799322368845869416737108775464976195348656742","8799571098590355986033442035174719151082917877778790725626727960726362845604"],["5865366743112591135087925203859143621702004889953393011636917636483947165290","24931858137160907927300303276514514284415780548828497509538521502879269663379"],["16213673208668961348887930114333729470170471974304206322763110856190048175003","26938172099930883721168006554555317747150232915151141728363846370996532783812"],["11774884862764824256929592194488372738564680233277117458242059932184870996969","8161680054142280295193916814979418432418432100820905879145564912503632762238"],["18404702660151216544470990318234561218715114815394534355657821900265797431324","13204300450504377238511135739181051863395741847837253188341688679159832991813"],["13316188116993046361894942617081452746994351764740223300092657465797733638663","9477912256926915964196726916045999107383070901957236474378324791354105093941"],["4877837756793647628170766404566418639194381667805659174138280762849706011704","20595628118531017821087285444536329071583286176817725894725032499395467387371"],["16801036891199464851296107570303946829413337929072348720456777353905122993923","18281346475075825983260220177487231544764441677423326259707881274943159978156"],["11518076943802943101769257754095932089881543804999470057137250888427182922513","11857869122152936702957326787587573767960440754368000475312107061377892680046"],["25206874137404592080575116247717437924690065400192916227806920308885281485897","15996766031773849081576131531099081360535693641918645412327263053838705641367"],["2774431509920620821359918884508975192376829148254597793459526305124670938325","3317431392767396842336391995490834609851672807966369109647635943021666244978"],["10914675342565679116553362890963130735429721886468795245260423912353016725125","11717618264926959149235023629593650344084235538134807620790895379619174123871"],["20432106764448189937011055107648773299259460221044269758212996359566482606686","27816906681636163264104256453971822736657029544839389174387943431711754464664"],["20751864826251166935431035754113356394861391208862809909058285851980197450136","4737673336758955518744752111431890896993366635629969397041469063918471853666"],["16545157850493577946618071334313905584546465329867658285060503458852053477920","16167434440849873758159760295117430294535952165010123397388318212878114576865"],["23451644339269033553076833410032508947222493493415993126621605145226806977584","28460451454436961191513869340003949302797061363737091312514303939924237848318"],["8314947744257918710524314738741351345490003419542019245244829471527935061358","28084138144731073086526946885352522672757529092518337061202761869232177267767"],["6827423503410950035241866305463324851801754845872651524384955776316595985261","18437806611589003319542691163012493050804504404096284840500640122937932407691"],["24387903379678720095532124997406501575876957162859330142955921040975984743445","2921085512418435051540223923384290703753455703495597019845340727817128491030"],["4540162410376385735234687331858469201821706262459569216569365258910243923991","3313518388607866360226585575599332378432758823129395070784005659663288134069"],["25668177147374321258440127105093686436202811859115162229805703404495027034433","12237923180399811659037102567238680396285291865137483971505132857319952556776"],["6442980049432411765620900627501647987748914733416517524883233916190770355362","26049288016863005083601734642109810803121415083856197303497300986770905357089"],["16157258303645978011316390426083515352549671210139314210416871700392448378496","16477607168663571721170064392356522484632950462227097670846085605124680767622"],["3066089531647840634752972747702898928028851552474444383810898871559442875440","11613663011943546956308727784565933041440729426303757310455429557769879925086"],["10304103963454595718235347546558903467184793391665522405648644215748831899950","20302327027217263351646707970602585005825764362239280429607572377759409156813"],["4155233157754798808760639552648667641688570289445659349371674058722297360965","10715562126585651666080323782499659955646470375333646703031964256811741873628"],["11173102459722411607012799405342261606355940196837811866709243415258197519747","15654036487373148750875725209448816616252243286408808975511043104895200583904"],["24385694640351045410541511299757965261245669480668489975311925608584377087296","21511692661261120609673712521965844105416410459653862822573200984121118081148"],["19930401505983131917971025582550465592431575099617022882496240142313728673168","25500294655619736709759897511576391004270090019992364635716261389410231896444"],["10619049189686182005784185474263882033548960390347063766921950369457432362901","19954744666710129904080279537673251624260330391516613697941811775102181875981"],["28503186324124406812451323664114080905996634278552592072155526078520223002447","9202110178795282740532030089713204846182514303994349039807794772793205377250"],["7057076655029195801650406997349502073323842154533930257457244612148037636424","6429739274601436186359468590122644625954758840113859264008394319133303970405"],["21814357366373291782555620594245627568188220403467251076884354833220978527285","8063431849276913678504246078042772878059062811473582225573887492948286255115"],["1034052201533363894402927350330469773130569208021896898135397671797554931968","22166024275958371667766638904966611786213796205453512623513023618906930634725"],["21277836543878490170065885182233809650069012560257160687025757523909672155050","14917706256568327931347480547355324113538197979330607037012423413091511632281"],["11493587973136317305030584840196568786559684535957124202627369641476615466022","9651962204847356232900349245879604421229287933456426624842906301887653546755"],["9007356992300905762281434173914411855331222183245258757633182682704627836904","19747258712047455774928820521088341787047540686819702703969821374727799751691"],["25227846097364714254094539523342633299126727663971049412741050987732965836603","11742433750463004407784824405976766116542745524648438993099926133678874456416"],["2324140044116629135002409790381878532440068698678018922245017339996044167105","5194497007304127732129850795401447280142129756593653661565237579919306786180"],["23640688061477810555053529571058769921225925187166503753959343167475040813139","14849337852690204204286751240946884645251517989545756262414286644786374558287"],["28385857023958071086072350301428088306790706325328176040192261743377166642933","6413354381851592639109838454449259205680541764226211519605754514075536245952"],["8857597213986284881937975796588470896483587680380838950760021282365985566915","28624206155667880865864809148860420623165659890352534806396729460318668061586"],["23627881451579452961207933183678292455508861355075904101628313483060229805939","10741306062071207559174719624181749844348726908924396418089398431981444386887"],["13591309134392781150432604238566920962181994274889988301649206194047460877391","13903551222486101953097796794105432171960353225094266013647572560787291207578"],["2495143287743746867084222987872846434589374721563847434996109272492220799958","5057901829224777519210709653135508443709282626660744461877295808354359661232"],["22322544675043078602992870347912829309281611394079717091071989550838604466682","10974986734058038711132104935587502555291180630743177892323696708512022324609"],["16762041059520111519910457416187867356132844326437004513216688186900976296593","27533392633502846137900052236183390858391988003664287155213311152376022012050"],["28020744883724444454527201259656928222629531153970729404512026141601853488570","20267666455815647366339575801801162680311825748117298680971800863029857030733"],["7624380341109634232288260465736802046460256226157252152043400711689302488559","14029320561068978819155096164111336334533687556311590296930283541762271040315"],["18134456346298682945353480291132949770977341552062499304002469770213327743465","21872220837131104031513266963456718174307726022599810060941661158048027487773"],["18295644913935355493408970793137479525790596480657032364373360843129344080424","7817142416465105295444099440809390698679164650595497206022210225253332659422"],["761843238729420242582155471963031514324105113910760270674096546832255184259","1564513316358213463596273967914241572085780840979488355707965315149732367219"],["653374537453584806499743071283322481475596601082761874073292372003266390834","16268213850287076472856753274037187855695941482174719507997030133479206631873"],["20963008141497898724324804646409349189133529746987522405334544581441575420446","19107544265471080478135726315113052250926759141713542292647034229193302813809"],["18830998770251600169773435078330685605064520477609677250517386363154206385787","5626208034669436434632550694919368649498244826404475531268369679131118735671"],["15070813801963033917675437620337789844177875766923648399098477469949987768641","5184890735476625330353581247636151498146568967665122282799671630705350428308"],["10647999382914389678942788032297512949069339868138515114255747286540213628834","20422602579949485385417606016898232701386509312690759127337450405970766840922"],["26221419834934670622405606328648071787565024500032724195975169794460066872040","3633134261342949523103256674640413657284557641542352136808548027185651522511"],["849562613931522853566377999200662949718819620489808721481497366243475974841","238895774916354234988618204715556969558952140401022353504948052983745243502"],["25306393385781665872444164431531332876401918977218629518588538222814206033859","26557363870130462569222999183576253158361811130966543170917559056748807679875"],["28573246454923376865445830140099859379061918979728929152182759289838253554724","6697355561609049952862897106698182682886110591144490773966813789705520480634"],["21449429564868633458278192241875061957634968779903867914756217175186390015526","1833788113888597305862436355640626494656094540779443467606205143995306081746"],["26488880995935684071147242125479483854990778073634580209005632336853533526250","22764476266975038100881190392330344499886601812470310651921065176152063900604"],["15116481923834675117369215560004465870243445392034762513947963569518840990880","3238335758639957835866258119618089131630145586949009973316949653091882526253"],["24280695944014561219068552193210076382455510799951854786316256186826346794758","22054129620715721790983058617599045939833034111126022365235051068000093188311"],["13941057040498936405280410221609133458352331303856462657218601598817722621754","12152375620449220544594222307658629386801239331516555259889548169164261010958"],["1618212645791256954663589144703518446061697159266908206622284770674880868996","5185089541657335045471639855348602084998056351747788558141293596999298214068"],["2647203221759780554816004388332718694931899464343383893519792716523995603643","20873168754715851677354955513240814946996475646005416458147390832431604894370"],["26839640259414101740637149865974384035142073808200784775754438852744871473219","12410027067459873048281732327739508576571895033602327898866177140593739115872"],["15801321160052789043897912799994040310142099745370847435572618188074168402500","14686699950578535927262635722535668892149802081428667829838505623860138783654"],["27414672229134638604250754885161828832792732706686753903246734158212631206518","5786259981092817838596333208861790854292425374161594615836481070400334764950"],["3003937433730141674252804351093132009446792242954781601385403851029284046523","12135873420843977461269737629951665359260019670987564665396645183123907886738"],["15371058370852628687236388719366632463705556323634681414159481493696642348513","97579327256688268922152670580235056743817780585091265851072717288327373776"],["22842478451378187111470383011378204775388231684089394646911487060592933680962","5779251486140183941321723263915974690115153657482431390248570739785927710135"],["11359910671063037275090260378628704136615613175025451096914338694440282632981","4215655335892894708045066010786040835790790536343418104383241919073523603532"],["16346426578191733791968943234708458594616259018582310080161998373215024070256","3756330304113881743506254816966360749085155609198718317284605412672400812812"],["7991866579872836155321600774029132306467192002566215231690315065199167423073","7490405224205075097902957542575950778207751463777616863856163459712218656154"],["10238583390258196198341347401223634542682854726368060098011052819743376175415","22139050625869046153692369657320534652739700694112657627024025058142617592583"],["21980926358342886120661069629233625066690441510865980685771953134748917192007","5953269511081979360824678568482791395596755374425287452998600502213250611065"],["7738617052201373112672724992006960246522083061875280374044124973997037457495","18118852418321941546309434517436076285851694641701341283688523061044392808829"],["19400859703116651975984655661356485217026560293259509287751804377131667425176","6931154763219125723625724853589742209583229718789876996531491543667323718416"],["11230773607347710219862504789140384475643524909198079400349762600286229379622","18876427541995600989978435292801306742057079143023938570853398915499223534744"],["25999392801527740950910148603323670465898117691993739835236510143271982651128","25362362810772575243781036054188659095294557450363769115411356159038870103119"],["26171641461685113295560030330981733344742093278102924183040421033892037772585","9035225445092497383572043075792705539336178557376353091128651500336567868768"],["9812467091065753476622074629303200928588396737828747479311422076071896766174","26888406222626551060176016566785878979717119061646998684847081906722592797066"],["10686378309649243104543860991055526078466506372315973605137680318802289534879","9256452294102603172892442602785073062420394580821454331360630446899335250100"],["15759917422033433426789334309159470801325951486532695914001749861460660343456","13288626296280112235489081283330930023559209169097412768609200995729367674035"],["22578994853497157087423665896549044375589656653277590413035550347675319866146","17196013166823592419142417800184847963441399368405227094118215277732576959061"],["14199027717676276652567574938284479754176744672660967722518670378592311428784","24985635112853092130158214364086219287072268898083451634435846854335346324549"],["22431601467773253878285047013498130885987878960254374728292018588361295711557","1579726445967437777498176596871348415267489864498872233399434474481128029906"],["5161925495779723351391164601779106353568458815293654828967478614761155426405","27155891645564358213204849541863227649293673359378704823879853358136042750852"],["16690752481984005614017918393555751840543969419990537376109530972897197978951","9716214749285320297539760846761840037183457309206243964713708744434709610837"],["20072335421422364858116663847818576144565159707617094089618751981618624653816","13624734147556400744140262757488701618514432706474344077836049627504154746991"],["3964138901737548692483701012703368065638751378093154804682772210792090053490","18059431599997677382501371779732701875262188341910955209422046366785916709908"],["10037861583623796765419439324190415145139943399297406409159635945802589413139","19836289867393621893995241492240607408565039246187767373439755972797356016786"],["23248067196915032864860755703545343664689220150309952131170696095560323672470","7675170949278763299690326303245989623918112979035871835855869550036832162866"],["9500744456638823283436773771558540864627039235708280282089896806846805021362","20061918445006562634562716933204236196767746033658945141338208403051923904530"],["2316455908577601813787047952398993679104376446122698251347353043383752801780","4860049533845367977033873253373432265816138984051649372546088025526040701900"],["14976260423833865675946736183675490920950165431715594909245546986021808732860","26055344576043713586203962278552425812933687678383009822914625598894724810254"],["18772861627900577397815586681935585119526241969316020130714627217456345419849","15267452001844303115748038335075351664050053572150993276050387733573529687438"],["6455645831902375494738485335013472784267738730085039006247829081882414790645","24439692718479918697454566127315364545600815700904441281625716868047097664852"],["27292256932278293727714236271655948113211643178645929864691860977307289001574","25640193558165338452103240894717996731572827642353035944938235708533824306143"],["18074813152139146496735086332907771574908059622659628963462688339636309561021","9835979807633087253199143728605324888742562077651917906251716968308911678082"],["9568278290322288744713162512662312495375893232490805439545659317424844367038","9652802570243162058613529594009508577573332144370479317545776558097162596717"],["28831952210049902664544207059575201943135148838358971879742221976547768695736","3756956564821654578902807261949716505565278931535666809099109389695287121666"],["11397088474386804036839764162328207747226713225069320134298142180611015638214","27881680913137382907628967068571798279394546211939512977557179209168085181830"],["3124850996503803017300977531319150794699800461280987052727280272730336891160","7369110144219012718871536757890518146018070818316985259069309898441389674515"],["11392273165486166624444201508898176810545851827347540709108034743750304158884","24427813099842097120505341345918011149579440678063102173598300078874705809536"],["2496150537346761312247296112089313988385112577825467132283873544901959986456","3551559966797532389549176072920098345862903650732663428195801075671686965321"],["8883305277172591618855426765772749507149890060175831498124322286181474635642","4257406022524080777514385699995620044018877850611036557590236554051862779451"],["8935039462743291595097794057017190979495619493333522228457882447576662695728","10467779506224160624317471210940697157913255126106325874599650632567529931179"],["14987815576495880446220501556439869446795304406539050544236272811540566447859","12992189020155204870594213069787248042821521168846029635485669378588128824655"],["16003105948215063926710832648550884663102953264406466308518874999202495675517","12860412894331067376658219131622306093007841090917395639362985622016438206766"],["22575872521131069352588839477434114873040604065183385142536759945481831138659","22988735045613797627592875871465695415253243052589293672002690565726813023928"],["6385591891722032855013349994038825527414358234696421761379228889920266478406","16537642630885907642796668168660911442634384066008500972887481376726508634216"],["20182567599469622718588284375986899551878877883655086748817441067503820498362","3070161105997152029097675196896850385857716679881330965036162114760922895914"],["24490668104972632963251952060573152814831132977850071401398833912855802703213","12498079751093795654222850286100632487724412981574872244020151965709103847273"],["2898195590527421706972662386100307357459616839799719737113792071417696658192","20176737792953242979663808767506570096097724039270389221466915040301848626381"],["21208868255999767955705365261341278396319533451273674485994412119637181178834","22755728126457508472470223133976200939950777254481746272497831374782559205644"],["20010973004763623841762587644667515063724561636459800491784751324238150353394","20028149679207482672684012930524890802041161881346568036954948661559607057754"],["14592066268733283873214457853390957986745260196614464317976494548063870624669","9302225128327107123190996318893124002868763158079239005869853778301129738463"],["12426381125725487223066039335884740830167695216042646521233004959006193479643","2129304366899512998739572901090097147952546463686347734236600557124283863894"],["14289397368589226537608110114588462723369479246217798095408396430905642765143","11886745072082492860387953209007929987723668289481325384698534795362783548589"],["2483132106764113566755935992285622604962997171255927961903798559844861501682","1004431895278140792736189639266113512035150079613071791826988454329872164678"],["1860899235285350997776614845559505221500153750138074634892017831003205919138","8136735654481836523071516150241649675487377799668165684950099681592480512643"],["21527151407355968028199984223835350489873837524056922682618912551224353991657","4771733125687328813707411144719516458532198771333655571273147191612729182979"],["911094738672302083304772749751871146214209089196829375340300732257701072490","15496870363147164640819258193416739672481548730613399838172415165061479701435"],["18900404990092440147022815044722648334831610321331177276302925266365007303052","5941975346054676496576783018865335543309539012612442668257699573811277391912"],["18047284569706618040672216266471340189774801285462427229558381650834098180860","7527010789384698704932428790024495500339679723713248831576819999445616441543"],["12620927693682468357095332926412571626648200646862732483399196409354344630464","27799335044593481378592700536196795424266988905407102061447261842175504688401"],["26898569310113331131709775024189108547481001234647813544250637516313648589751","4275860686585988369926458270830676417109684481536622384451566464891902423432"],["4479361299216783383924672814533786125953084603847794766149276509442450399022","3470635571090344038353025819979468021692868226329055891469266398407784691827"],["19310390077369447751887033306040317031387411896014525062404047837106998412209","10300035212600231762589147879625363455486923706460619593628588991438620846446"],["17952408549516790628235484311988318229441419993241139447859606028206577617347","26677273833570584181060519537538654854099109474339860341380834339684966100108"],["23331382879381465027763468078300091105576986032990527306154731298356497794315","12337834311116138968010873196070638883896904622343617199407757152601197774408"],["4465360608002760931132808671515696778254602494568407615798887714486485934843","17681434962846315049115477940963925946893450451170533754619695436829518371095"],["3374951667547862453432961871390744780290662397871020628896282542207128173522","2009075199720670185854681777158331968645649552562418275837533463610392695837"],["26535704137918265157797800081421226899182247871182403833582306932857841068778","21463565685387292109258746983536791199859120404173885163054574141920216398655"],["27823533033501713746084003219098406696838864032475848893034982504438515267201","22081655686569715339715910660506660338150316823892079101644450799172747180940"],["2586774890032012052124212499532492898548826172613418288945083927925078090578","17122913446057454600611862122335899536445929862822670357331791072846454051612"],["12014920519445512922991080783782489804212757194722126866238676160400358293376","15382635192626646518559310337001758162521037083191009619348032834500168668027"],["7017910569918710530806092660232300230381281154236151057463982455396800459347","8316517166404908245732042787648733596716347422046399030740384193154667207986"],["9044689209581693214920995810292072329545829079892629835896397878543759696664","2768194960702195612372568809061190777087420039911140448490844904433640289452"],["16205413771677920893585870323489069017736711897567775639073202812324798350626","8692817874904343656486857352515764736333131022249312513103941337596251062608"],["9247738544271745821323785373950470204274229448262256751745808472435426024124","1222097583137261944784851875267355209298548599510856269543955217127225216174"],["27916817409893493044145073111084514964446015191856659895602974594066640291257","23047841786795163319379295290376584185855597352232665720966090227567068469506"],["9310450772314271308823493205657793608588630332750099354408428463128908815913","19661325428878222953226735829061939887544235163221399773777471519874296644794"],["9145323900990219563708172537843088804124315195923769280917009667420557654701","6733417244377297736501442679128549113282591417232439124324192956868158646346"],["24409279970211629418148229119278048729358202919802605015601827111379251774720","766266114873673955082655831663077265442611101867368037471805786171481903"],["7797999636310263865179155449726659985497920313085728476776497205296640199438","324627922247589875597256403415830248978255019556363944166825050460243335359"],["5787724595852200524089131136754054818173378959460269643961548627664131196706","7181085777173744822548072502810035919845234329660036751648642988581918693249"],["3518925528020524268310077518293366467600293014364205154800586785434788284830","26612160954032749201643086436153360165496633126478912310836891798191983717350"],["28892363658963059089072938189845929681178973918966155168449547598435357235752","12670174902264962554931088230095004300102638317489225621518555016648416485222"],["6003553669158864639277086321860384113491589934068269973192991687396145521438","24565812586755897025492366672633644555040977241936225904094130564543835725693"],["10144101171124204032826496718271174684361939194774418334683866431275544168047","27203573897780581206141775797873544001252141301862886853219768482412669424501"],["8239966698056019221703287680661937936137364617491291441999640939060533406210","14440273213446598600364629569569284872463412173650308121666648566291631935155"],["4059674397523392374539787190386744386492391099386074430575580441779960084296","27857513706912501971216166362597221505639119786536047835500957481470646874839"],["28753311258646169560752185345448659046380330112584995678596329048315979952112","19285001697859879059246288206096874237124532376104712232582268815309126867465"],["2915667107850174246683160599146039236075326178539279505699541555454856009528","26149702646880471366161873752813010762836488079237719430468590186375320578120"],["18998666097273054593841425432828113321669293010843418729496951471598142220288","21383236477373198866556100471342756060217059794370221145616923964435808631905"],["5038416398072219679958432395239461581658462203527921317500020019650314109754","21103122692310864738546660243081824167419390045361577711286873224765156836719"],["1934488832665892661045637174760201015801511973381668005608027803307961042481","22812439721512590779617652439709293650772057083914021322208981011817211342816"],["1480165359633425575854655855905540275499464928786387803748714763774876166291","5297311653997782860750746646182437925169197421047422306308255117676754458044"],["3824144305898426341823059191408470903857049074549242279199973469213807567559","20783913409283495805736705841976680867897380108752361894636007578260851807812"],["54785265136168276993891436476923591845736789488071328243181538668813547220","12579027095516048053016968675205450027551594226744917021903787166844243239004"],["13539184796753634070670555403504809664979159699900328910451791797096713305438","12608016190816455356727563923378465084677749861227763520169218066946045840499"],["2096277933387917565174436514739389135527779218401961667305688365962206281451","15781967807276599754440966344958541042508503816146725912342965241033897404388"],["28133547451667754069216814561293258760467616204640601320162510502615305353352","28762375693750177310634007700673057189129862868321388813465767521990405872088"],["8174859524772657892796197770299530588276503176360291245719554552291973254065","21621316057527876302029578985817806155845773466997599827606880648232357027408"],["22787452642417187370925078281724271016077184667776930058682509680152014904414","25071168943898536128189066315840483322174404323596277003480404013337235488828"],["22749537169505821166829873198847674463972690454679177534509894834468284572754","14391617298499222227483867842019147314501654109677354697135797049973856205437"],["5713942445688170194259052139633768635926225686435434196180324937592412336395","4985344963052777207479476419312934017406353696814564327186463699401540296745"],["3889400175684183840910145706871013307461333692083549513201434391085283069680","5170553529439112369558079265209019237038055857722054715709148644448797283380"],["21871929952706308175224584790367673535851124311412012906601257299953156799722","7749130804849051432872099868991611272033035032939122019786452929446392648447"],["3169719900899106452779605500785699727879740625192991874070904740413370978577","12393618971104584548110400288261665046774423539977423347029396803231883814704"],["2902257199154841701606435133005298791252517291842204516129421987679477273282","16810490099370728863337636966878047634672376666919049444688650660677127700469"],["6147277691029658049276710832067702051067833900084369770053135581583398661054","21396985402509300182028367312970783724176712902630885602772398110395276892785"],["26428901548768650048986914515592210324459933136863109231368413249230906796881","26137117365934899866341744115135848281978603874968557881185340962823451734730"],["4576916254891976739029158936196902085493272083441589328523850126931232978263","8962306306932550353348394616524652372258991712410153849083326945322681742243"],["17140772839272701138216444573720523755369047334693060787676943375768828242340","28557010236114298085406502589412794877389297228469871409724391786295910502594"],["3406490753764602069833468833590570722978029035265367067764468191679550473014","4083647812421150769156551872287639792694980969410553384149158403297194055996"],["10020160477803324201576011958999671246975464009068160595335007572593583163127","7326630424097252066979347274260561652972254302476186497954505034653848178341"],["20090378767352766966889560124952961455233881753818687596803237664143861832172","12126248717672679420286586633397656545449245572100312027956770045380312703613"],["13127444961043802088289738514395001960674200170676691790540236915329774350396","13077485045801738380396838793796461566120510617822336219912373949162971735693"],["5378266128172218028224379352489099997881612101735693596525114003849036328036","23975350423560103660637592557688172745612558198607203503646687377483370637891"],["9168516673115649273586229815170578120945396447640291595413241697772956425736","12106322445109849546274747848213227897284333707255139226336267812150172107251"],["7739121577724265602316673992647606325128253314195767614151953737178366839605","26751824146760356041699572921498769842414258227617650437054024847585124224232"],["5238511755740495892348735693831839905414317217224739419464587736049616050245","28042337997029038447615319636607315687922408275016026283653680062414938907037"],["26370118305981782010724243853762357507042717638745063877642097442615811270117","24668642304799126250655130605562309031921489911993977653405893343729807200557"],["20730261546197670587811208916643853862316806437075775515267836891014761733023","11922474006625534739932955639442251672652829862109601860778558606379566374685"],["16464355222154538800279116750520511119136910873382943742236751427361352667797","2832321902206863577199615602891564445044962880884107257481625798322056219163"],["18741367700403257652815053620060102396948892556692769474164176570310843918142","22016352025995831231283727697336688685814467855035290322389143546139917817807"],["14715208591220871167689141927405488550245214066662219627752918617169772285866","3031940079494657534130714033448148157490179042622101019078155624874969589466"],["1926077709349511987082196403362779026249926175059412785075998100738671239007","26016431502780032294717376358758199502868534991091797377215768910218092947645"],["7210206728231123634475376425574199392895670582822281168201727585907852021061","21954520438165982845629282341248213534925732658874026268028768911498108600243"],["5732476249493653418843016860272567655310716374969946999222952650547989264687","27189735521837966724190735741917011591943809263910010471988493681526190361918"],["16363487295526719328181344281471667495103822505890349902433977659700926850566","22558940426299837929780644277483321504116566368830669005283446651876865967067"],["3093699058836484550646564256594497384354586463312426401992055355796649003651","11472030045454981995474503300634082362916197713570419735378627267057101094776"],["15611283846068023580013859323537073965254803325203384946662803452830851582771","16509973174329257166320689839861986798075318223415363711005551296318496264372"],["28695267572151467553843960021864830279528135459931617019621563582538105001292","3207938025766241837226408050557962833490404603437755780081390591057364440708"],["12770051343677650063709749158456094621278437737301062865840393838958558185842","21567332081044114734120808017707586179439533925227021895748929351297838251054"],["24277913560176484510963777333870049023605559834231026226754681931139412723448","14400353160340948951972255337694790448102849311580915282389849467836601043215"],["23888619968625302756510352946435551838345103298940956246311497343178087675259","973096807378507352929195446517577146831178579688940461066261399159391964438"],["22942849788310141521037088689401137317614912977630463354868411290398421283250","27108334573381108554740621890416793408497993456396881439652879234488982949076"],["10854883849623374709786350514278781124769047416191103779802056493625635891832","21016820518885655946680357052876573868066672693610781968811406667184395898896"],["24513494122084949533842591339810640132784622028577917887136123859699106349854","23380171958623141744652795002389288738023328701187633676976063893098968316262"],["25752043788290883748213321604371336501813767641645041006708996362898498077587","8970737559631253439765459010079086538845671347018993462377871300932190678958"],["24471847610743025712028250602578938399906937434016934020354471844991372705740","2665908492053981652466060824556013372695037565929072885956659776234069516320"],["27252643825300946540917696389619667664797666890675232841775623077439275105795","13728696733248873153980714453229753508262258008806886923146346459931670075165"],["4696046684232252050272284047126642003079978137084034313895487228696734670180","17105962168765977495260060214481608741475883834909830264057231742134607210576"],["8625366852258315290527940067871083502875199519035712068972094110751541917826","9572282841439323079346928465744239729511994774927573050393991561766689268212"],["27640142744551715935051665482857159722546880603422394136202550442938860297992","14662703813762310309901668630895147785325175371392360620893028878435957005065"],["20203030338742901598001595694175569187121448020237918461487278289067396235086","10805867601544337515415860021012252495650313378192200314447776069047708428161"],["14967981340445151625838830732691758384847342250980737831144173901986539037858","14475876439142738622059781513025850386058540480945690606759058629430847120998"],["6440774500635595063063580098493412282830176626382493826335258423020662443888","7406128876309504190031376904472601147719103507467651732046784083596971266918"],["4684068683852421292973467966929705517073270781140281353805246653110926725123","6012828064715285336574596150845270095448588600721591384575809823966134480344"],["23313474734973692392076119306942626067280443085973359469559482932396791637248","25022883097610084234602675197548694653224064443935590250029697220127355262932"],["10055931104221777637275575257573465971990578589446739275309376665428772950199","28733276749475782608161237320983364346054051616579129535454615058117976429263"],["5764839076591719485595224217180630108630170051307837974411242004779740125134","23728372113312235389260889526208743935435998133948108862125015955213020214371"],["13480184236277415556815931923749057367701362765978575663574326007800200897636","26074090729862996511732423682365158324172638693472206730445404204291526708081"],["10719500701159599692754673678283873629152714067492323980020648169874601848171","6236238529202211175906326207109016182677978958055701282701980690882842158842"],["2595941737894021113952862679509242732657616731485460770963480821202171068765","10798217664129953003377147756228721135998192277651316134312249446796665234219"],["8384933317400034498262238111901281167431355997456637045818106651244009328071","23871352117819545792162768550320247943676050795019468697701514498833819604061"],["1745122076313046777584252271218157180118773842995435858574880693500566222345","24321146717069199664559384665234534177050981656138741890894407859532950076449"],["21949095350362677807903746719888014301525327574489476161935861803919236830313","17219883607662785517939602514460649193580953625685540593737609364205084351246"],["18769189405523229614861176649447713344373966812620041947737193291409566377129","24220308357260674313328784862442650815708029990946256971716483375286585540008"],["24785228363809659518063299044887068183349999475994059016791417169666611123302","8999994813334001023634155572704414726079473439530102245820697247566331240813"],["18433740578818731590520651499481105581699698882397283464567838954357217587328","9337748357735802091632862771429706401681282862964096300383492166407272996831"],["23083950876737364854802265085658573231734450179744481439958444426738485220351","18938812379779369046632285385572525367195726907265464789413479155961009565987"],["11849486509653550255828890982154731172834934177362817673063713364303332907867","21352265332277772727566291640975354372936169590544708960810128573288720576009"],["15745081411910455393409000235925498315803722692039373644590323549297454865484","165638786941691093908965591181511798356868491097081898872388005851085726386"],["12991888511718738339598212304257610275918832864785224047855888705093223157304","15757025227181655031950766306892985826257326524381810081358231331212976724343"],["21292532970794606359030083573694899588446278465548575596812741870775730820208","23763559056331669105755071307971053481702228238987940698840177037919717047057"],["2123358623888801960683143616165267020481224812562060749669664876265433310783","18396548924650959849502969880299709910925402165813821546606685344270731133048"],["10425007967427924527881515914404693040079753386515955202409704343649033706649","17931300521386070799537011075695659223161353812542356155095255548202992136032"],["22117278485543936218898601768026084635507206848443975634651379688225755412542","824871348622267226140760525892981142364715980778962053173114651229104404637"],["1329522129534475727682327917320016051185915396327225561583297472718623322975","3216930422821480318862712940289063076463568699826340895262001735029447805637"],["6080760552196650736648983101608852629522052388585477727434126829191104389800","5089776825784537255653461411362227749180425319628753895722307252291760151246"],["10587395173533685450676154642457919027169630833688318940467518276211759426361","21460748994056097279754376040338350791834931308912670471528224643322956347197"],["28908676544381150197964656573408228894564127731697922550418806677487785772146","17324212375090992355996043824776308687989822292350785235859671234065853930853"],["17100992880851968772234014378141641127191169204343864552860525071117682246342","19138411616615300585793068718468956789811118305654169674101008976515108195107"],["18686675482282368302932324460330384798241650616404200538772277703515290377408","19489771251523119164713189744814346320513262158436746622031863363999164291713"],["525733175904765693668618883820213292952701468493074860005136004526881263698","3431736975556621441824643997178104962384628397967587961101434397980793866456"],["11410113000914254586282120847907004570868076261397579187617825015273571962709","27466890179745344397277147581104438748357982817067556249749673510460082244127"],["2432102980148170542737217785021436615538235715267562456086915012696606660856","28218799533202581541417647725457286686421506651779276806506291971906957037958"],["1001422440644464863342164617459646933799676775584970690164755009672596905804","349566693888089185909081409666124625299984359421293437133046473472995384785"],["16627570419661201956520377611340383558244077807359824413123108226795683828250","2303804361349107341965172892390341284088073002766733381604763803008986265832"],["28153829719485122850329231416638852035815123132999130942266069116667107228760","22206249228232952375013850288312999481168762434414378456117301424899934223954"],["23515393512119882735060374805179532173304074161126098867574005296327745337494","22042396865116710050553652650547648900851053202447986661820304864108019052517"],["6059296582369644990305604109324011419694233693894825321739444719847654892662","18245775200844361937384604528958953189842372066829972155980144811489887355696"],["13106991682356642597108147064787321595235210246677656396603438563151009023405","19496210334138629692844304963679337437053934299410300632871877514272465746133"],["12839530616630129271625941521362374753708295115481422465741855182895348381404","27877938723469540101791398035700505607164853617319075444603802519950102633922"],["4986369340903662455223424529417995182458333097505208849075417209104229952931","28141982459379792385972733270969308053296198149658663717050985296886493087653"],["618871413124952598181882354178393234220380449002083819945290853421368507477","26682258890944974265095523997816729339564342895865825086237287439618098310187"],["7232492615364104924197720260626968095991861929377830103153490266243322633751","25340841840893330975556281107428215508779676290202679541874221340032412099468"],["1520494013733710662820933010923357205607862883666591685027305938249842220243","7586776407361709094535141479428950075774102506235558106960231782565159641486"],["7261518271132389203377431429784854787320246643058506742065634161368429526892","22396352604679192254547374018017653883355581332892633129491230677432883530070"],["7163633359275714451362301563790376853016288967207521239485111663045280198083","27166138952680993535141749483823959495431686942964597086132859514322930666184"],["1442526710664413229362486732558702314361275140724071985640091118848471916137","9962171965737771763334021035677718991566166421318785855324590700499488801560"],["2975051192543639824477973806316562716062463600811547605129225001177121993177","6436238103021459741961465015306763290031221802340571749720198460125803754464"],["9246754322645293365989649360326594085115314729117590144717366772441203194296","4753783570535348152351208980434309066166129240321633544676879700122105981310"],["6430541995440034208345568987309082104214433711644156576919569003018116680974","26676638105289802083384360328158471377757267179577165759740613598419831986703"],["3293171000235507135085072423505837341132404512148278299926199787034487981169","25701064838231736209362238351759467574139001241750398172212496463837223788633"],["22509331301571783431159410789361127059913008179055639612155818189494308810265","28851689530732606901201846056319919349203205002686167403670567424823880311223"],["11766967533635659542213817264798810174966625476550606408769604051239361046864","15323477322799546499368122697178882262965376376646486283975381192172651859983"],["19496691382347316715812496028551756021311609935822546886063393854161145858972","6621240120739706983912448895671058543182553946316321501140334890295360615099"],["8270769115813046109643892632634319459708853409470920886534090161319093931412","7091766810678512453634910210833463004828905752236892172425734648498620111251"],["22163875594093087421794186114803097923597855435836391942764527104849809920990","23373118686267158009048204252516760414559321871168156736631188820667191786432"],["9696279829496130871931581784927806670983340866482275167804633509756203531962","7133942622191930240717117741541352070490046078127570606520278313445031885965"],["20244224239678712322430286282464945303485369226192360263905973880652490448046","21447343480040824935619262457068641458323088601775677098551923479087725323371"],["8436499606871825299512084321877005606293395643304849855132578293407934729908","3063128457838199172903097478864990805034583629521969760709567242906469669370"],["2531029683831610005778649173490197637906024099721456772540604826219837843870","7936679746900583416513303359166765208858542503622254690525361806000202209244"],["17380851553196436507502121670782241797441192639725245357239648912072241810956","5906666454224186993887863268976212248724896458108820795016713641465529640776"],["13327439289817458002651722238220524353771199497809820151557679539684595274921","23885242667335471981812438872102514487307553709906762216563799133879279637094"],["8453377259784770437348967490568123808390161725846725203824934222225817170961","27547202726182376484241294049949599902870088032657394068661996379431475862344"],["27962590038252773114523596804732280118314038936741801309767730266948732846910","10655251581591063380399623141665116186476314639066910778904674061117360177437"],["15580254088385970568606213080609639341115873915960789450832974623432152424322","24934694450229887934276509572280748676310736824721720259453327968270231263025"],["2068114373346428314177493859364367920201874650059900542461838411890656566258","664958508467185739194459025255105208755170693824975537133927990462119703917"],["6056193956938484702478754000682191571368293911063386536687177371155451168170","1177934927774718727386092321221338205709770097262843482806428422302734100903"],["24513041274582985156459182379286754645808353422820963407703303763629074937371","26281179118247274305530753068347680072789752004468158111814022323836889975642"],["22612110463276445961304739077858720244916547058580089563000274181493604924811","10586357482273840018187122981837641020445514145273800344391984965154651156444"],["18741920928168726518706465177476854382468625992396255600204748435912436259044","15271248584271151625987569716605896654747200816402293324636426813530715507667"],["16369445679834451427355708374338979199002681396579179789914128813515750810092","23614565221000818325960771178799609243057625207165317998503048148539537145756"],["9035987698965876622314330353853367897749908100794687643718581624561552124785","5914400954834466238355033632414284859421269026293112979318057353622235891497"],["22292380073858867475306873495905280809570656038280257762744572807089811549112","7880223180057629258620814315182854801908823749596535111223138571572679963912"],["6620865102490598103951822647768872439994922275647148126310202710670679053163","9981857622217989991192168958593609174535528974797906289205553489692808493483"],["1722006110429686024845207903571360919098146463148877742478534037099154665267","10072367015870365506659652860061192549661173251048252868268077327070039658419"],["8737506976843942371079439496204206014035795915005568865759436051543237933736","365185816463660507180115750235283723289780162408500009083213119167417102759"],["24089231198347565964041544794325889230186249564464335220968366539331803169422","11515488334800561725246100711985033643942615325679360734846517932808911701589"],["11953057328702817365532288201496682021228928125358775294072668948950329277084","6147467002028108892830734267585570362617456626836731228871610543327432301440"],["27237582208875095790329311008901884012764796679991539224545238128135683361313","22091574011270101153833686429957204324497390521314420105586113845921721211867"],["22691280956396447305229137634355813182895803519260918212547028511517632531973","10203983681559787760052704538473576048289931125497999001591734523945213192498"],["23782074106199124625172720467988466719801878735101203605066827812890647718577","11893216340133617894401760973359334738496047834425537934292516605939563994206"],["21511973631255831974018698989952125793213763864883639889160015877834027258800","5868449417181753495029432692155787556154263331282215955869016426631471256200"],["9077430854591564505866023682633337746992404737866784484045490128118834917660","26466383312801761647446137801035086149114241396043501771682812941142976438155"],["20452433856619173197226013978989924316532404916133374059206226694097119326586","28149104271273785192120220379745301041959786299727383476263960935828789981013"],["17348893634699525257399347923579748188719943920710324735664009593418827420348","22221135692824916380325045689796956009717620859362432031366672603911492146984"],["7402823067610912649576841670198768545467193222395784792988330648027951926048","16896445528810435440850375056089330726393450918823093848484055151628300492741"],["16034769025439449565663357159460462985089831284660404951797792938241575828366","27190111488469650917129257820576810436782033672238097759808876888847375541867"],["25348539150019438825160556912487889335295143449730593263803535992994567954145","7336156388882997541287025177259230186630512882661228777557120310099319747101"],["27943989202516435230989556800123754984489791713692924934557381407259455723827","11760345952840978560213809259049633787709981355143466708449313061807184043367"],["8137118381432744624676102512878059473819987000287268958102886583103957629188","15398869078272764311750321296680887468422986528691162923230473136292943876670"],["19369849647028724973485812382342213553304918851452336087552064568938246411313","17252517678338950099721442209418855049920745657843815077777428021048588486924"],["10281562970780201192015286400864085152338487962833744950196761062874101087206","4818036185727877190307922802563044524301482795683792271250106901207408099926"],["27110427368938327272971709472952236206516778720417702441796015436552343145948","2785222898258402499231201499612074845070771796537670314854616193203946195631"],["18480339235792314997106948493924763119229653803409447663555578318073464112584","18842152620730694893671828186734314584277878343732968756824427385648406031247"],["23938830855623782582617559778577906301308498202325603873509648802811426815690","21733948852691517765457898442280542143558568120852961370260960879183579283734"],["7591270315534477365903646349398537316406589949544436038221280754251405161754","3097861100392705087930403294186439646556686831641649299112911525788400569299"],["5062697548472937670642336638369225530548084563094982716467480237456202298041","24774697610819858832632891785982368911027532400766616227010220035538480879224"],["14745525599356637129544329572617641645590941056341403945400010704978230559229","26645119234438661440494986148605539773920339015362929145118670319934407536943"],["3619666728231459469983095404177882570438707548355294916850299105467693362801","19701420196259906046305628136607892216418680331587113211454862554576976966914"],["10854001598441175439565109888568058541399961577136288241865536618688102761592","27490829617102763726855128054573232486300158873751511754426710081223554779786"],["26990609917548158114585981880104575842089670250216499869567919996394397476394","27332774537880110397340173629558420115887142496961736184910180346176143008520"],["19788789046474861116940974993298375241636725036630905873538535081683504115679","21762187517761099376781993153739566805188200464575164290471583391073381556724"],["18537217182674011570908917899150410877141727979046982548317969232794309466666","11288727215948121598122876203069593774996029195691202813771456911177678389903"],["2825052348814605825693984287925320184630268985407694217679364787341862634963","25502162208960309180705251002836794952429243309818408956647870848282994641583"],["19392216686232059523008277213309103679182477636301716976969472599444576074677","28682419501886314302893020496753338683745778647524271653813268723299964965023"],["13386665656537554003015249754134319967184457210474434241603866729680993121414","14410644090094118523590845984911725580327090510127637169459560051183098809856"],["17711298392253595078620851004155193077076531069581256337720702270489076948318","14626740958829134597977456308713555021482207199686588781202883971406249596744"],["22059322547773840409774059645126188698810313905859559914611005504840455837171","27176335548765680337341604062303105321092392427961592537705748201266748454341"],["11051988862081851103801504836768352648350264053791211327398060061175123619873","22743407789185301067199982489880301992488408799621327851192476406788537704870"],["7716454959850018204930156070325285301353288488618349370134822879628074656071","6462592036059308407260092041492664671856657338014219164484742772580437356118"],["10576249600898995175977112528959279421638364605439761852534208758853616570554","26119846194727925267632948959812063954477453197225369592709027922348497014672"],["17358367452850477217695647197940337010785913556902807988720559461604706330714","9184661268244720341187016138843833305889391179512906750122442854148599145847"],["23523890016122984150022984864844470718111204458025953835811607188916593600282","19523336135973237978250216691523712406851244682939992609258682815490363234720"],["21653977579320605579886442097063435049086164583492135442275029844951553069632","19342556473426738766183593354013625455803288004107694211764614081889557495023"],["13946770158481369875436814755991636431157395611521332498860892902312680319394","25013301324480999311315141572104411542071582341840376193687798362828019897798"],["18491185902089659686970977239755554922445027611287697664620281134090676590709","25011577131544385517785778774739349659621228883752565395102397589496772291778"],["10991746695190944881985817874258457377416931287715894466947864702903595665214","21250120921110516777720893586186470916131600425311980657230083223484292198259"],["12024119419233168906401553264700732682391409988753432367982281776279821056157","14633808026588195419931418455847244741486428202177646074687158286347078008112"],["9563392196651704268865507056123298695346339005259330952817620602115592393248","7540367187852200934223900905141158945842959946284713772196340356697350183778"],["885642780436295238583476191726071024913330767653295520228123530353485671829","9175194630608074896532789474701319158899434809699687631092422471708678565641"],["19924789357978920212521758091192706407314954009504926038138673580729036442979","22772684725092270027652372014491773051374860461733303069632949082466771428049"],["3722086475979004974537778232593384672735163777532981553711463712673126486962","26115277648145506822104974631883218088968835856094499926389135349200567452250"],["1033527242358045606151813652696606380639463179763171527640129914839976940475","1064097011123651893187279384063618666655749964433921203312380871110204706395"],["8655041023228334097209843181688128120193026184592995301155441223108954160341","27106958402865810123691423993457607346938906417630332008861422123109918864451"],["9922953076998861172331183121552371660645008657833731595235946784557173134624","12186092115297543779481645786909084788467201166037741723648522754531024305536"],["22266974381985455775105559401062956666340953996048498425989740315335824512238","7538677926283766418213131714733826246196139427872542678454725827764268831821"],["6147111719208353920412196238129560665929051727398169860085419201618970780095","9368737852838847355904651322045183795634970958326296990892497107961075344438"],["21617002727050958930025883872792652045435363028673626368597282799807299887759","25285294554426153515207019135885168184878112029533251510276942765121885294002"],["1777133609012334387409775574348556213703270306625451671719731910255944595473","16437345301648232694658830301896120373556701871508329544710474670416139614993"],["24664891716187379516371578512943086971838119908299572482741801660390871146390","15325113311178461875097118309170461763520236308706306998648279460486004470205"],["16635185459380298843167249763492087764784002290609191930142424866266304035234","444244660937837562755591344845032550834495307957666062201225208671293062206"],["13685198546119569031417406063107761388396949235526337475059706302104921684556","26704999782326441761403862936144408524421234095706130866022360238749556773421"],["919898133210193887778091676708033522520663309730166850041491122152913531094","17069342990102206962146301281674781425010394355183895826362912670187548755785"],["19686381159581502987205566298248374088925159961453458261229044655273605617550","22873739851261113139940809427411022348538085562465068409245587026480711264443"],["8292921757504099117990313765896289767899311751432253021103466735553258464146","539569874603770485433316167029650458337471915297838770734525354427519965588"],["10808439445046304375793970312285489014376985150153491212409162962503664561187","10553919290676448135592416008923443015192122055628701629412652100256388615365"],["12811478369250997061522867462572800457240988723667201506820449133105145141786","28815719769455000348636741423378081755880940786435579270497625183240627391928"],["17670620423207235323301492191565226787108148293643081776755054289213391729274","15358459899654149163498522494967782600675571993826866074002174501551819100136"],["1525770477522457514287526816163866019981014507492256900448255885135836702591","710129664819057928448146426656535004249902223933304318125937206011773819069"],["18698130254191122174200608328299100199317280142777870047113464801675092733539","13046405311710950224294225293257701639427047117680278087485608286280705932857"],["1357806116155475436480608724086699010709452925880157991087038984734836599218","11923172997986666603457657869529917183542909213670150861339683276847161524139"],["1848041013911298465180815320098692883034322076843783749129383989394963023445","6247752422661038496123825268612453445431131104543980709500414914737695045524"],["23411304619319396149524183977364427986106742192367738016376396535018538296262","14134354258953142641267644787721697864025457372558117516518469487763030182796"],["1381434723710293803267777254201125988181626337792941683341911813240158328984","3329603862134940949938239731136236481635167255256770557884375281885748696737"],["7821008172934653836058452936016492035150918005199654909401935591772063848125","6767545714403085464604102860782784665638836520493697403241873395581037100094"],["22757424652808900163503167567162457089846676054821441551645118923836334660618","1251351293323430779146306948849991238031874572308791420226263616112887214279"],["6263086866097443692396483411162299480176050248018354832621649808735452376551","21492797788472649181619383738580000278622143281903187069956237872641084971082"],["25170974459929256065842753418164000892783147623335261961580386149457202847750","636551370110796859209673589710135695371163709354017588538914602041348113257"],["4213703593537914996295261410163579187907010726303701713774718573741700860105","15413678700569783487244578810040563804076182069041881270937594517930282708845"],["5497808548475022374966408661053518379158104103740504181697583374170631270550","2261583134009847789988011914807088519944871023430332235404785465120152953652"],["14284872729113855498029468772610040759630916621182770519519671269474320012176","17560852810199722694477445448404701040334188251746805557992458975971340769724"],["12732238208994974793381285698526812509600692156772339510612648295016889836456","12721897049517841611745377001026220745682558628245804132882119084636796383739"],["4594472868842879012935571700938739255367559385945771174580040650900051802548","7713138882849374927182163676690408817110420418824263350142385367036850106091"],["20646056550481261214760171066849338348980354245445956841279253751769911574226","17155567059297835868231722482356095960181385284136486319967727848783513392381"],["18865649773821794454802787395580383061108184042489469815680876585637817859535","1716644233748673264533034462943777745767496342022201422232561998836243349481"],["11296339677188156265121846536063552677070619864890603276616299695067162866116","12388368088114406165043591173689203124808420293711146515311223978217557619139"],["1285517341602158725583743801490004742274746698894959336865381135510943011444","6733690305730961155255909229622014296886675336946022488133874167140243311505"],["4598793141129899172394504384643663638865812556081796288802004596797832729918","25430595160214495382001217975624185500044553731213678759981061840978044629836"],["504990418607614272918134637564521529719256112929137407688736627818521970394","3714024768301799772637561981107264089676829092588080852480449259998413619025"],["3296753411223326283408810893014806753845612708054156478328709010355707520350","7581932784135650599609118343906673653291249924686900407749192903437461709524"],["20649802131358568727537357621721866777710460264135741774424595417866778973786","26839768970771483303044403142844244122010673876117023287076227721077557422002"],["13176349569694927446442267973456172247999324335522970737757713575270814615660","2083307934237704873620311957552933890726007786368848713157580384661292042181"],["24481134966161001458109930068789958444661262749538453883630928177982380903964","3035672307131433435070935642090356637041310868451961283079605650951851500118"],["3010563000672114088645188775773286188806186311800563497334765138929544356226","12752029024070876101176117427991042656852203367197714196077348246768102007953"],["27394231417583229388760544134818375288743777425030696187301627223794745908796","11230908514974295012688531128818514545082834327811968378072753405619649842442"],["18000092832841081683085995676965358363258627999464577246745642732519264691760","7795767495084106749945496548366521901927908591269207263698160898325560992618"],["1016018492539996464020069794221175428710274793780785384722955478627065842645","27804399029163277993486235932459420854204572748429533064856379147953332965123"],["20938729546680601060197562771864728190449290339113188603164831142710812750103","19305392727480656868729631405138679067618418469386578498660776613316819277439"],["17717858555588913538920172040746230040741844965402421209397187056532874297926","22882401084015065534334591844712199923234887940796341794136342711476582524061"],["27204168725118186340461645820753018251526398651329028665786618386476359661023","12073721054777855812631044926766474772842704476070081680421568784601412614495"],["17043842250542715023828943432781344949746435672180161914490448833847855920786","27271809387414981418681640842942704253850646827049891620780431056162825877568"],["9226734762690480702906292218300370136931262339267192653451802806920794118168","27671110012025174739896458816768081691839195706235588922794202284723631774117"],["11458051910305608909708021195569663026901768025805592586672025500033661058958","10251480900785959007808316190331914286976007166811292988177417229134310589578"],["25513947787673784465395643642572580056604676216706978413262846010713584854819","6905243825624895938765187841593122149880031352804366831417105887462880388613"],["10345230046756002616654175737760659297181387812695754145106462358856977616067","11973831900533914184873138491888758193478327504067212813924668665751444742662"],["22802953784041354671604398317317414774024520585558329702310193979474487837064","22965585238223889951219285992453591349121214118075023965392884612564912226419"],["21391507390777567471165685837903071860134479065538814406051294211133438562155","15319958179739053111887844809102699378346781306958015804923187854126459005355"],["8465628753379875783939181860740163416268969197020420267963399131305496141833","21731210862128479368778738080700694289151262257455717776038613521023107600848"],["25336042284998925886399861688477327159542125281017938325411715401506666531457","27616051498435365560743663811574172327555448713950922202988195250175422365030"],["8652103219836679551730364687893565399695747241582414247560249947621236783215","15463781455517411889283487484201847035625745453754502248259055550607401985041"],["3854281700523701164783130381223970299366141348977025244474921014229739145492","25068701091710834526987357987089290260985005823844313599974516732409984121957"],["2587765383757018606362614728050878904688528680034559137941190998445476004505","6682674731827508959033742819600231549018718061133283098500935065142991816426"],["8666923432257716776837268779559158570821463551997087448702784484418914095370","2380543915453829133298181571768691270435153898968776363607764240334457900718"],["16392012699092743430941767793543953518516367381786168516321279485445971067757","15439390308700348478050638241996122950185348496180301484197995660633511587775"],["3119259102090941430584236839683219541026626934446947987150987368414426440349","27030548456447719356817321505896888801487319542462094658034300257984351631763"],["26748849753880271763585283710602741357173862105305125041642959325871780327868","28475090608156154321721085881102144500598337389366502564778670127870355317990"],["16315623112521693147729121992652170288397602009232625154574638174120502174663","4669493710666880769184556289178866353600115039185763360240163198412356316046"],["16675007755257825075570233825764158319895931939002975206142917400134510990619","24894758785234277998932973464338585590692199187024499410916895528528922039707"],["723419615876912356226702009718986625747786687546657686009126526932696564021","13456684620873010187736946615113183810162564112265962935953763134654876810164"],["19617876638385460754729611258541026758339911349599492804882627739184124543045","25152410600383523726628940144758463793451950880253400420146229115908885727644"],["23354829145611859411197877188081482694344433103053960211388558173317151613018","21548230913045863108134725004052754332917485038881731384442683697705818639203"],["13842042390487951066138753947383791115749683149429844878350931650197784346724","19465208962978927298698308941328219113160298984330826209453104569922893475321"],["12626766258005860619709354886643333946874314967984290133603168491806504132233","26368690560805607963966544429614986044483772807703931796482470772917623270575"],["16675782927828032908661930002971744834490171418241421520935836455867923663866","6827306019124540995700839869585555751224016369297945579975902806030574200655"],["7323555844468833446909559121645368388421869117441117595885946705788621103367","1288250717762248602926172294698369762215107726661811162042493388750667821595"],["13579734441763952296460876196065478843292299732343285379377720535287283386608","2660159601873983235604033497504248862489625559431808428263124759016949308711"],["26921720652430787657484779141723594064760977305049631883310377791841940382748","14422122233659441421613107532097751783092237004283367419608312329933117850222"],["14038172891663815029429098937119151002595337433632930882669908071195834573862","11541359629026437971432925242751200400485795304401411818561569280205841874524"],["3443841424017623800462778802580286725304242564263190854139014772454013753058","19918400288200333170857867477348276412035397188105331111787007022339910533825"],["19441003921090600780501528489299149238173696513536989342470121371551120707508","21602173580369344787932043825836797266976204352296240541866945573644004174005"],["19464485683090040799264972775676433712019902773914274812523944719475374810171","28136685564336609776262099260403753379576529867818119874563587035176505619405"],["1360096737418937110514275157121576562319144323210150551772291605772797225160","23553695343394362131077309221530802481919010076954732566705417534333469493583"],["151129011653272579570390654894755820631804892741549698712452037479143022053","23849055788956494261696161323456371317657997031022591568074166550470521524445"],["27871006922160350347615939302189408644223339059218186500903389756916283082596","27968229951415975668446506600058164688011835235847400984936674906964949049872"],["14826419492632613732641050968479611270509125184278422908360377649347948206720","26255710664822745299259091693363697812920373983556146488851446392452814776545"],["7472542560494170566254616566398646380102514599811890979279945551393733242159","14548632901530131076394917650626928341289847965935660242685755595754479575152"],["260208155395375374810753954552878084165746998887666301533517614786015212315","2092513132179491629809945850724757923049938287984655657167768067245960527136"],["9760644711715570386680841716460128265001119473122545845143013078739921845502","22992807407083985352517782974363158213652612277037871530374683081480775963345"],["11438610138862263085444802354955518808007664436849831923401348420485636333495","5506635874232245338580536387997210127402123287392594582855921558912184202099"],["2524555729169723920605838836111282307047524771406472087263901760408889116327","7722306709409039986411847575484237101367340349127614342802487569868643030574"],["6682083095159548514336474688794284932756204649871327153289690852050521563228","24817147698958236427776450391913937989670500949339509513440570155069651264"],["20601595544668175920250210903642509242753533358754451059332711037786210892089","9958631059662894676216169362235786344927513764214294369876582470643663783785"],["14524724619389309647919851912319152148035966854360126106265809979916589981509","12023855043333176349207682001290457454710924075419186828730998773396538642333"],["6444378425190654473738641524250366452029605627007354679792911042349092241206","11754075406354027396503304318324141215160771295889460715420653305451118741090"],["5751736119188137205363675667000023173436182724654855477245969720687440274332","5025813991182544883620066115251218164392792008948132031806791813091153609289"],["27084637237539261139805405107245826003034141550140258665685378764670519356488","7774501562388376186096881906979331774044951306187027675085383233958901401990"],["13193171254435500419968128631888436552180155566287043474979102588561743545294","9480891684521584770363960646753618570555643105697532415843829083362583729803"],["13778160863502201595299149061387618551894114327589005196058197644101734284795","754438327654713419631609925529746025296508447296066456186361038556006993053"],["13109795415869342602593644191303732017330801513779128123941147069497739353032","25873951934576705612367014847534069180515888389546338710852953901414805807815"],["24221491886417722124557649469389725564251171566946764608286353914460281041056","5287550060351624898113626609747886148418212184818077349191479150161753267609"],["21240468973870907900351579561332123871509021849259008239158469437769550729770","24524908919496925033963955349094709219353816440312756953783632905671928595302"],["3510899370142872573160396536146449046324690128794463285978701272759938180849","3056745798782771523879224586715095848655770376344614238944988501713026078696"],["18568604996570423190565490484744043245910958509278267493361710256660754804274","7319147774150122332961496534374260182168672215130016514448125850720351157799"],["23241741717092160976705152351063002886535365446064688819108724596751199181690","2252826764588840108139189569566737140156736336769382622849786294334215396051"],["20767852644666808046147107109505985911677238740170689530417608718574593799752","19922524430243252773062559470235541927610405481545301126640419514712599286565"],["13184093663992691944617807747780335075824559155876998658654385228219071432735","10953685016613914735914152127351817964140443799708054969140866452012529164041"],["20824497198749013290690423820325183300086768213246034138201209395703202232631","1862758633760175825370151726026597055523748607435740945275988413667656396752"],["13425798391398922771859242699428766442696282599249306098458125011782964681753","28718105119105986443540563995789978456391187291656315339973859519161656484903"],["19972402983613188101554657580978631867466826295660399614789279937802260331084","25651213837611180805676295859803784669729619774364441410972291911700892393400"],["27575788311783569063019079528119264743229479009427814557513987103031744287700","7460739960320290675959590184552948130068396645154471298315543038374574895916"],["3526196588092430344556928329342125138389052530613569025246456804070238279201","9235941952592876253812738538437291956248621691309931263695271916030826736272"],["18221841370130430236764886094726102406915210417228654998183804816374252921358","23335822297647258857364017466552752187579682065241866967940562276957660383395"],["9707517444313233564289884468344524881913260709245330085247137956209032685973","9389052982300631058997583471915511216892530334947913924802045929110986371399"],["13514293895389182834046441219301477153256776036197487146026999803796497282312","28324408543036511479471028171290728299054097506667874237187495754839433845389"],["5077138510130346975767472162477260125325705901755567986154742889710686192351","9604166824765305399220385556899594763937361013067342797486090190391099509169"],["7487964036306769690217166749101868154606246137903173565493892699877290808122","20248231604623461351351335294203717588202298984828843771880791886426336692767"],["20323993464569561713422152374569159320368198338594565544550164276040872311335","28289418644441441062846594628807960704555982759686293614693529351684434293143"],["8822648184957123116715170135596817382428253992325055691886717981976577031105","25848403703023291496453949176476754349876208459020665005143780511242257925989"],["19859454785087277875840734519852014466991899471895976720273370198990174238840","5453490138966241464719424052820894767936674899528778655133066404650652483687"],["2716860706904032597075525654146453938261531741848036423861286008129154510354","2428665079426751383677056223032928914204444011931345234296653505346764684457"],["26178955494286072653495038264330359482066797912813198274566142106517985711885","15899313611152724264763891427560998436579420506242158801313657621063666246137"],["23613864502002016958972179061921175664732911480162816084780878008892865605467","23551712626712368856472886862205662989908895254770108872411265228170486509493"],["14234062043884465231614838363931710567210465604320320386595035007752727046337","19345919376919564987465815596502192456575609161875837981570104577685266749398"],["26066684968014039340726315073440689093663095231200521005310596901598079185268","17080636573944302915078487201086285050911509195765832438172643179561469747868"],["27757342720269500655516546459374179770971632566915553336834206265403465146373","15644246850537429388792321761889920099185256978938728639443534845042457162766"],["15082726155841565794469695509967306013797531256802638311549737948112997693198","23055015492233390603464921693777710707932256081808809331247030656774315919272"],["23924770479114771980717818306107940101457674469572050297830127349881520968572","8227716482337729249937393606575349747421196090653377086549442188073811688659"],["13168895269949890377414969358455966260579919215801901808235891061470494963490","25005136372213995882226724070312420792283127864049795726588978301326678428199"],["25694926911723498386855777115362233389224073433474855940625897162472221444635","5669088627980809115330584976359457239830393506693149140809529528923516947366"],["3165473006108830852942336397663094344813040434013519849667225317975548427411","3673728874954891916988984853197643548140395444867513615771963308149708679423"],["16973860381149948506102457682649527187748852485391836235077397748646073784312","9929933304290002747394436441653523442689475553029051496471706660227216962512"],["19684729470120923495521119747125470293430881910928135156785158324523539101095","3730154535190181640786228127976762225249923772960810459466130805502621129266"],["24394052740475126114210967472864131129639590177283394417391145420596921811045","19319950593948844711553569517686937288932570418189661774111803935035565306343"],["7652713120667135148994115122027968487839614748334323783342030941112518788294","3339025064379433017185129969391148909527025981581444871170879155792952661534"],["28866722077229914410604129102386097130928879899829961480112190295779832976230","25177189391737730939635326432520065609048614561908157546276174807254226570236"],["8505323279970576656436161828943060443801269272584956330616384440805599473925","9397516187926689924931534937147966886110962091881348471730111394939444806542"],["26817816965735729097785001777589729113463084106405006939435758757915140294016","15783418777156580192053851009413305908697384110168357605150757654408369197502"],["3900811166991309155395396951565674954595587538282330977157853462666857638661","18731547713623677727741748163443573358776017883071879137131402682203637403816"],["9117272282153153363890777087214062721032222089651698537825016731955367693861","24724456377949943794752277864261767845250990843442726308303220615739279446270"],["3069185667011071587272476138005360466689933279777249463843162553273673462786","3403145796661889459742722105894052573769339612568754845985552952092363568485"],["27864045157167548503709816477699066868246952176634543295836493578029939956065","7286571618224071423757374413145832745751930022842409071771082774154114630386"],["6950903710072934961285249151636574771775974294467649604862994065484196252861","17351030251060900994290580050413086756395882132759581681812678707661203816442"],["15256313738258741616787974527390873287483364237772897597896403379260504946347","511589258589836601074511998280921926420667785020289564148841506598835699004"],["12290949238542772543283481769182992870668398472598673261869315943993837500577","12567499111833346593026947026286178344413943832322225649178820348195651164526"],["21231421640585037422947485310339132881259184323730664061930173229038544305002","14429406080668073123430282379005396077599861381964228143985937612290792372475"],["9485921741888463656178874013969143109427321761720118679619092695156975558593","22044864183026507179707440280824418182332818775829352974018910372003485488398"],["23877046649207768220964515611828420829854737999094005322623794876009955208322","1605213608681828740738108024351778667041080173506199058141918697697551939665"],["15641712324036771169925809017322400414744848734767970090527518103025755312354","23126783941120064627303522191186680198147119208546835712403975458671274450382"],["28789254427726433579477179560933276961319788822043631096424709224299282161429","26891095789030065746362303814343186666272479276284968186139128852308403272705"],["247844140500755256855007126590951478273694988050797415176290160271147466058","18679467594170767841064850463625993977309963817857641966270214239426439410920"],["8155576299768880976957791361612154047032573472231212405456073400481603545935","17798818027627251460947974350459229608278817456561564019118533463271500845446"],["7832299358927414307200997774411180961975769406456780439205448000193290685370","3350130770677124279257026949127071393304735566312511839721869388815679733182"],["8443215465490112168383124721126008412411349219431933669179978833065898907506","23532781574162602121151059238802786467897427929121956290890845295387060297908"],["19494007823903205772854845658481182777395248765388682090050798645986402422408","20254716004766107507381186217577286921911678753815398054612563379495967198754"],["15585660816507708939231149534762112122456293963818305648851340574213082438376","79904769920049018004635281228691431609446693165085799560215405686025852464"],["24794830210038549701323509346373443726556504391532875784021823065618730569906","24910731671790973686691634160004338464539878655778500827209618624822685016736"],["26478141722656044437218539486201390119731129388348679289990680059023804923827","7525210058747743914513767525283669907484899984023184564849715955882771515382"],["27733930558045978996135114798287470069167384355254931414115696866961896024873","15859527997756582810781782796062986473620400367236288407313051245533770259537"],["11911789199401447950112745288079533388698453355556326574481942474876944794541","14559084960758599956004871837510507663286617142550136683031611414415430814191"],["11738927321450915476589958956091419365727014735671560112612233678846146287402","4442405057619399667403433207968575615323294470316100279327472530123228222277"],["3664606168352519292852975548361406966569778925214259626906991078773476069689","24854666897040573637889959707545957072058812438499183772968650556475311911909"],["21974272562035423006051968672622066455762205123509709529578403372706517627221","23501668422372888843802866103557963412292138988420474390915809928331660428915"],["9879398389025856472467482707850532179508906965923391939236628949403264962137","13606789608277322669317235274994356852778137082161025073973384169949102208047"],["11359600632210181216968567926631801324889329010323310837750317307580459802595","24533418818673234079896960837499405036800792960868218439516191354529880463128"],["10886664929274899726369641451655526889272300510383881371284729158035133116271","13947770495776219805745444362071823533829064487656644353619926330501340830741"],["4337717878432052474175815867669720721266684987454050502564958825554162587209","7235687945590675859242697781259859749126772094569574380273213040314830867950"],["26439080845479609440586684328802415372858495951243383697983997413659349853105","20975780345129880975994459280649811028694018131897424399857224225007696535610"],["10982983334413967039448603118371557877889528337851008403790459355001535272409","2845700697185550600193447540951043157122803025702501351862379234327145129664"],["6452707309016483488874072447410571204976107674428890084224362941721258664167","13424981469456749978165547747343256206557281143949633300871872084282891347426"],["1934545737600716624607394059952489611312892534155918801277097259811854060520","28538914835829774777306972541729618889264802125124115455606914943904919687031"],["4342811653145874920980502967561052529759492848048666198645099630283892704024","18648678128514099464161241083291717251791045659952267834465998841885018260452"],["10665827244397789364256265936320156035305117852436542929555272531979050922027","5676709244049555741684927599785964070070921326908169555359980645186250407195"],["5329746265736594398069177687751054871414570607102391862002650575565959936918","3308904103071719629212593473844068397172024168718375135850379685604312470330"],["9005561570073767771121125632261451451827950234454653810482487465256153857890","9169981058188804150092965284518454491911125080201691120418871815587044914411"],["14435083708385785127818347152460590356700111691206042310994153269407446083598","28829808238355528218271799866559916183438194175589095632030525371527244552107"],["3266961381789205871087694928798220760010697901393286436936727946668376097981","24310418478319422979351836818092125956923847906926064355860597920718077716443"],["28885236712881487809581174542786500602148625616413850322259449442682899808378","7390792399197344381148477882848918932474335062718221043618868399571237835617"],["11974174486187161821214148280131158632034610044693763207296174963401137935360","3458860817805977354126093927863093413044955140151745021526340459279809499562"],["26632176638337049682747780791032451846337285712270466479695967931350417098606","16258205122592478024360594560926098640921678214542136028014327534811118439905"],["14629941607910540375196363696775682703572690760685353841405752519045250542758","24314851523970073955712520084737904153317769105855148178019648753931830583528"],["14721496139076122162392400833649781009341172070995493237946235688019197228932","6906328861733077161576345744774993385188352464610807911209321838081888416369"],["12609512746797606293915898106839650771043968966898715746695763464085823276316","8449740932139548707245283433358388328034868496114778441716399404271298205831"],["26707298049601833306388353694442305850764943986036078535428671297318885900092","1574307803292136993227957356974641446218402491457564853164654442661565071419"],["9257746303325496411400622501627150201157421076876557802872353485628791668107","8169628233009957992295929465294010524309289240796242321454077034982127310131"],["26664830276429937837246431718746815173587279165345003866940776281266790620937","20775254240918614188727638314544866366246700952552925706969878417326740336467"],["19190348351486095970035500080822137745154190110413113658898643788497822179161","19927719657326152520313547901561336109869279106248970206915775097487723405517"],["19144230141006657063543238785620373643899706506594321135019330794089207436373","21683435016060498156259727394123252354939418102491833052147002217737664009920"],["21383975429400029348592719864236220889930921723554910966832633506625996069959","7312248987180902890167757556224409406087408989417649599655761055104656874271"],["24502965868779928328385949451342759160946770400534339198560633071773729738456","10701016710542963709503683078259241884077134708111092145942306378336008442678"],["4630412943823259886787985142186539853291150483784646188155067540839784118431","15174164144552880918948856092026846854253168091042382362075555016577720820860"],["12654718382462089587720145021002591442596394917640778392168579593573175593783","28699896011118750253775399481193846662233825503546611818921958464747980867889"],["19206573463290647569705686393959438653475515765139758560042166788168893818562","27576186066535271521953028904613721482635383170982556099979326265258481183098"],["28103940508096545269382734291313096277867430037936438963230824319878732610487","15103668680714189359744062212175790175973968460214358819959462826708392982786"],["11381686774394564594267442359007876763206809170741337608068654504149150575710","2065351894507330096380636818109336364444956939348876883369806028846554860093"],["13683413220376496415415481249940018196987481940810663672525086949696906021021","24786037417997358507235247985968594897993899828049885240133617178964509472076"],["10479382300668157844918778670498482144107031224394061731874947005231849652653","16138235825572433442990873048351257477340395763447344085570268200831359948965"],["19147042529168960515410973319640188043773888926713010927002828343946159822909","18018248744896049862502900919695576230634850939172190459859587938689509390260"],["25407877274756929332340279825397274795405194322088131391297757764836627756881","22034960408290457502861505120545149607570333426450532203976727377137540131110"],["2126279389168618841212392289238539533721798014100139888781292997808119449238","9437398311978286830049586760125880971844896796363654813667276116850857938856"],["6940420540140065615234472840754750484369021762384815326991323700681790536699","25188062831642240571079094151362922544095576290191825107570999135906340406435"],["28866230686666041035507859828927078835898132922520635410149903111973067051934","22253817181387856227687808924506260195789683632611324681121736556346935957685"],["26090358806040284282214964168615381170939032427080919187993972819179343924982","14179454345764889869781150597823018155260665172119582772153014049715721669116"],["16290114600052033828071097990589818103563087519712726751021646662254451003","13577224053221580247403128520055399925541065744135910592840761142571276916600"],["7034687443554614980431236169948184139569214869237857811911472115682396730164","1891984412589390353051187781976057390886243566849104463996987232981602682943"],["9993522127368568043664551209085838111659835627047801030178379749257590590005","27661911332005077626673584490543021231940018287460194727091461958440653641398"],["9330216933362180737876679038992427470535805449236835859960836026668198669882","6463459239174085591480764668305536372759250363579429525486671657612154644371"],["18467400162241408713148477870649075069781816308169436165015406671718858355022","5867044309321304594005116259518509418059095317596422166803366361332531078917"],["16292921043601543340256441805486838138495154725754725504934857186215356934223","11341202476907205199120878239995547338175123865994987573483095824218376490778"],["6785705227746781939464114531146466196662766735574785545355179087626703082456","8965778657508740723672044220048100839440927834308775502534308243509584579314"],["19654247952038009138091612920842058534533052896071791878648434907952397401958","16097516225877422192829996991682054739211694257392902708495602251069488632483"],["15519619021840474498856822366397185223556517310899275176072181191667036442440","3514066997263300150233014923252224895494729277799567602052029824354024117368"],["22043952413753861681038729216667317253251036483287026848790269262347419317474","3136315379283546422167766238526852295250159031385539053652883506000566878413"],["22232172919828074352770347888716928274433110686914082660435536625659626137024","21699494230836416077498278331365751477864484344816029927135546322346509343567"],["172462150340086549202174135307530351299557722781120141189303749919283274818","17491698646306825696629547625263507181568513248601666355796042081050110659448"],["17734540074511854625905691487643731313616056586407290462263197911463476605712","630577830373964718580859259870786791555143223261928067726436711855200721591"],["7083772350418963384050964024784140223058224136269321873668059224973660564132","13215223928660116706149163421147685917310760858218958025987850435688017583709"],["22080389286729783811901218412085850054315751182610131295166023719668293797061","23228125326814052545124432226809559258978198284205482969615913753162362294809"],["13225602883147298125245592949781706101180928046787121340488149582279671843329","26688395644768355862771693189865685996707450076424727675720718320992513050475"],["11102978056620442825502458067178401313054739461957707022120516956706042043720","11698449102272499019608386634318436078518883622928958797465127165519759211240"],["21962617579500507260513915898332653273058785229091271158959040985678179043165","6490867985998593602131931127183095515080282088990243222233975685402614157414"],["2489104456869099388361784779968169411851889077773403124520455457806322552760","13850007448252605390513964031600683717777381983490745993696977274580738376820"],["9721893441005140489854572984549988847228770159072721234615261803917160124359","21547000303894955253024797823247754401381359843222220400211954851001927892449"],["17230113211243390140685054788546442277036400804527394361691083824444293217175","14074957648937902820644811278853168704061586804806972083440975744004170793729"],["28859121240230031738868180540729207440970508533005276934014864808100966231476","7410448514368812667049882052049679887154501455823233893849333744340916587144"],["2747454623726474148672598552365553547371004114957850337425052052283294920076","22043670385808897198180400503920594042790847743466758394438639807900667189535"],["21161121813144873048555804664800662871797406794525983224524657125699829042749","16796925866478720731231786417271455432662095731343131749824203650215975278323"],["24393861382425882818312138371646619666123709750246541131412597182289635289537","5037278859493220011140572935702445084949481812686211067933418660223882919306"],["11820710643495203488878501250186377192640467263829825395422199050651001474400","25142999449014430613842220757016398284204639019175252759930971433517802557923"],["28488048802661835709955232439569664373426944940464871703165349018433181205143","19536007124696090603018456862165611085657226702333844381094064061497022446634"],["26929924825132729906923680255250579616145403891302815494611159045910228061752","20950482388927446522579670172431816534795111222642234139757704092404970321718"],["1485956442116723974629671156850447641831028953833311762452255641696083128230","3033245314774513275124407883828375445489085382519592571078677967645636338714"],["9457893745607390366460225245847401456593209358977473693527082903257055367382","24286480766358020593709209427981221618960463801181559391450135240831083345516"],["17640435051247388790057668538842960815308124145289247007086966322843617364332","9625960508285781697605515852039078637629335388897336217676706138339425119429"],["11214401219421838900220214698964963307518458029325627294562903371180433329480","16101994607865716137280937206581827540325754937294748641904056504303445572291"],["3286455539322949826802851041486206654354912533561716731903985012368624480773","10154220132034233500125502737225741355335547862741493806122100945475109174194"],["11156167081545485001565155065784532896626358413440010441437944480618904515538","6022977782251205028623178709920729444355774874466152794032569880730500285377"],["5910269142915987274452858149221840337632697271119344590819690761514453274923","24329926028796442673441141874872504531060292582366497983061903167024109185906"],["28441362611386508703356795105347743053109937851297248302666201575675396666459","11822018985509838995129929849111342979417935894370043048401804139885011545395"],["6418133928980916232915970663165147106599515631449548527193641576816721356020","14905178998210897477370135328491682366633013831207088902224966572525589617820"],["2799144950758593456175574334608344377452499083758225907991139208974729696227","17199238459874200579551381905070043091865687607448611999083241494922061824805"],["25767927469222704234293464321488247256958002933628156468133811342479238494962","14200377429038922309643005288246212245163928910284491123721569329148180753232"],["9221204557904957389061494666384809106939897635965804220285750691440535975119","18069797053035498444805113604363920876883056256071012838802888881376828487930"],["14513624624965195154787370691433649303530436000643229793149682793115282654434","23387534173746449591761219930542524732712440198713542343754542582485017660929"],["13288399631624977276139288035897946614476207480549733881730101421618994323263","15378781979389268378444861494837981561310213411385084508291682400169854305274"],["26077197438377428464666507179210765621389492031412317903887422507580917616057","28621650121816159174589633709549878900568334155120460279478467646389148217266"],["24785510557102599016483935623872811081490759408965373979043947299398084641473","3387958249202352317925360009943049544451996263082050491059139998050526419366"],["16553902347241218896441625972355418501670987605565946661181676249843064671241","9423853400242144064131837440410208795191779783603745092930054618237058567016"],["16506542035363582857520068082544097064507308130879225908552064766559388182416","2599209166442703550742382965733558498995199392016207635126933722066895357999"],["12535785469089199353413613726874265776988207364789273789922428286840827627224","19101131434806956560150060702842184319891368302497875831862737385061248888240"],["19760221637047256551019226176904611628985914403954558029705512800682475127848","951074811625590866657053370718967566804920495216568727745568465072103019593"],["7595288444031817998825855221307548185844092986505788467533923464868785847032","25613099096917103337520732516142640412198484057002818848997276936913312219417"],["13527447518588332591283049341741824809111514372150133034722366432028687148006","10080124225852760022331268037422943788992967511043402948288653604158267106465"],["352659196086965153436398405470134171713203713167629533266772920687897374937","16611073953037577691270618416364202521152455736400978959768000664938840002374"],["24002156768580830702988053366456961325035776010980531531906090030638699004992","25857306677162745260064563395381804279007031100381660398493687745847190156510"],["15553482374161036343048544814675144011198988541067311723167260101999952784461","24237551660539810608992705821587390018572003416368877114461769711882034450498"],["10676155110589018976981639448550151188416548781617757293217502561365152326963","11900669451666050482424485415612090141642755850531590300375825506253792873946"],["23329882677379686378376839630386415398742344455427666746268733121167343679085","28860278617396226222732438312053656947591241760221770094088566658306475881427"],["14681928655678027392776349691603991956238315282981456747718647939364352007176","10201959487739951409517150739494675119368427246013944480751081328060609331531"],["12239859148756817146233109025499724776986378513710304672080702521916272943689","1641699765894110167592179728552206455842110414958550580434761758384251203526"],["12778841131049194978426181403956190985181100647360636983355871175509398998705","20124692352075774561647603579225908714417623941252618962947155432631918707025"],["23651026690326991900878962316763604440971947084248892333080092905910283593828","25704252715890471322876899053659983062200544440232797326416533562406858389670"],["1004675881895149302519443346203496359600895739049128818861990022176962172241","13887466841088434564383633554614722814548809072220737491391830312456807633180"],["12349788110712496261340629116426032211944133183168206706642665601557020402792","8263947813219588213659463400268901628031699451363758452598798670754699080345"],["21499658838117572825219034813033643523618720682284708827123307952493088738431","7909079656414625836628738047898110624569495510437078123325749509949181901333"],["23291355641018358750133362272570464955433834791476981000495627314130431602895","4582494264344046934722119139112871445383805482105812147474892254615565439301"],["15979169885038272112699773793688680950284822505648988002188260096598379237410","20899854257467277839995436897179070195860837540865418624222112276709468607276"],["4704274367873451481496517058275018372699875477299371288704418520505965694429","25969281437256422827665504291717083992220076341139884466779258585090316402411"],["8504745516730879233683551838275237891168994576168121208411409570183748810542","24266189309832042734207064806848244738948251361718543417122482648094370295897"],["14748773578049379380639339241878103289517508831457527124043757505460796054492","18079810484501070572618704196714548459546643632955914405627282354873126838359"],["16868142605090368035850116554264822090545103242959263739915208697476140316158","4766207042785256980827190613906499040164218769193907255765290064475740345509"],["28866158635387121962062311151007062536753809694063368754787464979093242140833","10245046598606371089469144537914182139522692618826100486078300729011473482821"],["11832855696333280082733837843934563385242948622874850635513249615712265000277","3461584088579251821321825703307015897482888048869906680549956623020571579713"],["11838066700719114328036607939587501259756400016654192370079578448245650365154","12390883562083566884942212174848114294857565058280126901159048754779597540957"],["8929537079671910703110242263446918087812244774845282973833511382211835271601","28903882278780870326154362285410439983503521800299243854495615308465569640236"],["12674998891204443527223399349934678764219637140322424721887431563281618254528","2459912582950214313013168057298757560596793121122454077479263601022293052835"],["19400829004512032796980044453643238455982058131101246094804390043447429709493","1660331480429653072778530056353313108530092981450014420110353174426530747359"],["2337212610098729896278916289910107807020677069878099977472529022540035390772","24828885470186100872360821935100173538445055763097683521499472688873137050687"],["8542184753440799786799426472023838182026872772667319686238097635867023499367","28634344683278913102491193651021726845158924283687383073429669900940656452055"],["256975488836229474080925103213372098028387387237329137950821229707879171321","25083440819854948656691724980213979711015518896097186230419097227234576022473"],["9043267899051997025939967004044118100889404799419248206898319955576597005228","925854723740823996872646127444880814201047313260126284826979837748664594600"],["18361240826886829818578301196120634640345426239523493199830013426723389272053","24965790440432632632529439797484568850871397536845656512697358119619930776097"],["3246035823806303404205982003223677239893469464130606378191605120070804614378","9108051148075956447204983848174542728324730576131790121258616438500136753313"],["7569319084293455244190624931316200745031403679052941426754833126579164685674","14494046493289125465915028559570130322866819309064996114851051210022288924531"],["23740847149014470089420334641821658590717225569437397930582847207526486668799","27512109425139754863991885011408537487334095373336460349863217486577130384548"],["10226574842170626882830802661692806445281046046530883531320539371889119935854","8770763200508065006928570985437241726760643138704853667838186734966463607332"],["20752066891559795851712290223414499956685186887094955411128229286395074531916","12975487928251606050309419863204215543410691922065277815909912862962524118059"],["12699915103847569723312419815657439040293554279000234315348683427509540623221","17250922204974639526361922967580955784345251788941391380980096137514982876102"],["2600774203419353964806865045822266685872850277036690149528246587106347071867","7212894841196291472463972744902957672377807911936598054362242637172903651191"],["28632410665383230581547688445461380512464771847338491502615740351102255663798","20402220804578297182370338153964536096774723472578165048680874963817430858175"],["14105260955786758885476364646392916103519495641041324599321438243717678103199","19238990961012771276044785591116554185212510594183141609297249186617402300105"],["16624583895244655462981776173852792323006508117799817185550561647742973484565","16028006286852077694940091832186508293069601440614166656137941130046498949437"],["25907791509394770798445499918620553821858972093476413051079354757022833986368","1261129669506231261988913605725760521581300619062346670008309131503002637478"],["14392657199982847599728537257737939473662495831085461746004018410534623103079","2679203269726284047944093893676299742861528948639943211083502377372398128376"],["4360724920494317385665521130339008115284338796281082658831499209389162755778","8178132402747763106959464149032222185088805490969629176305347611355764348379"],["15752076979271766570571665065682294882058916353162821073143062488540402337060","19143377142178022875028289484169235753339363669594507553855294021282996088170"],["14762745673709696168407136186268788071704908913622959166290942899592076402181","9904848545298091246540251130082394756103179272679849540900749726642383626790"],["1882104901885038157220884881580256739147783734760667027627864681771862947709","6851088206825824482145266675351594138662371541665168102081802315137017096169"],["22756942834000455611837312600367355655921029231896852887801800198088251287925","4539590383250412006183211388189144373798288926912325275897348387750437057186"],["12138909705387115893454912089845781206965546519959333927431454980636136122599","18349659296617544592235284489336175932512144967231818579854275899316196681509"],["18204631730426798202731331569109131483589577738041080266416661248831757390227","28718107107346654126030938306829535858031366335336870336415917068580021253964"],["10221174425381971210244296665835879496961731368484466801806724539243855502469","6998287741739936312118387749832634597454178330792120011843333494665936178625"],["22491023287404387140610459077434034528139253756780148880409016573443941720299","21434664704170355646454663082445770911639168574077805995722131787614752533464"],["1564153459861981375785711277829657526331914579176439926949455390185834031856","3122238286273317177579312789947646915350237464771013947125351561408707705523"],["17513626253904866998288659321693290518728418014132458025794402184562374941625","22872348463883242431898821623991158913533174300887258582503864628452982586758"],["7302180892953231290142572699894413558552853791967548892508070140911891430803","12719837120704399879543214647874513253533581571551213600754650844027706800426"],["28756005414086809052073970438263903570641766224263309777766229681217914791970","27399850908980653361700233671281325546723860845084951439660075008421439597618"],["14445405131624216558680679975647289535935774423166783191797767433823030734774","2149859538078645741604797184351601630512547560690426239392205203353718731841"],["22101695137387350714181744179615368415072500898772474470342325263745304637052","6484337024584374622980250510270635428220413775023909590959482110494485636400"],["20187783056949596964888685966419682940688194216218091339983914561722765866675","21386035551447211314189091534468360810523181354308531163244030976095254591351"],["14789752695512374842115788674540112216251117391630166131726394940471487930450","23402543905652327532573562697402916623356493799691376563175627163764559055787"],["9470035766041905103298186860529421543358070741961734565959337819234193023696","10727467526232989662120753944032139347544352199663405780676900685357095015367"],["11910034489618249761571984029053718214315987106244241829133449441077317218538","26837159224963455904214321991412952837581893176360285417345565685329652279072"],["28735993814041551073178302977952654149879721825616774034134293148721752580714","6191882306156510442287864516466021176297453860345300481309802514490648813906"],["20229852478136043883556718421304024442952480320540109087904815090351356506255","8032201064277898740866768440366381170391449377642953916741629005372913140902"],["14614660352276876327489524019279834481409643006785601201524652971517872477252","27801355017543840905127384028981099065119644670454635921036068886190763064786"],["24462593257196001568553921919707178899474267329292519206686490110181675275068","6461142037748623945898126953602124315248433698568442462476138270005426448837"],["17817224766405008295815151460557938772972231587495621994077461254613592445222","26514156245234554828321239081419782954610817883179480669403104030026299257529"],["17507440110726536766897055344366408016860333525819220935622426742261815463152","16919063863179296040444921894191006272805944666458629420262333534587773208897"],["17714309889276893288718135340429791186784875017513068642290761785178369163726","14615411154589891908265801774614588234070531042230026434558484958965186395678"],["11561984688463326695555710757341321869224570105439956260838116366642858285962","9574628839104377637665371656654117308424323872985959924615435600720356505788"],["28348890390106810913584020457143159936727648356677175810924677258705547230694","6844332374104998743630320660594256262627021243827433153469322918441051699060"],["26189219320869665381457097814254613825719655344874002106241425832734457125100","21191900968150605393477407116915383067162437221449352340845088695408180271177"],["2917242162547850437021266461095865738449765461822958236556369388591873194798","20309520544627573725004773896485751474365828435420828336882496502857490467164"],["19748751612478877112233343456850158393578741860937649788463155382091023025043","15301790450392260472213510666396737883593823522651868828388151713920124103413"],["4964387774744980322402605620397443349113246071806124103510919078514968767755","5057782922776476601413286695544347894717211583506943527482881322758315620658"],["18357967084283080035624784648139862236905047894324813697671850749808259964647","21443403637628160284839984011807480949181219935916284925048015765942321092047"],["7468288292352268060521657892511354888522963130578322910403237935621597073651","27975885324269021044081958224529757707017697552563687932643524543560460933327"],["10850993269664306626842113908495172298615367443273170702289115432939874304550","20358297163073397739307051727975109613794115891801429150975306889064199416700"],["8998862775920921718690120170084084240391853524646806587763623415782299941828","23900567092759652366760491428930211105478062345512666613525651367069531090391"],["13634457382792804168767681822876272437407384313633972961929500954183674181148","28714310373541916693802259561034698607257130198275847746605493467966510150024"],["1171925376098925072584148741938534149195162927522307470097599799872660916942","23409922697050914366591034942997431020971532618393124607713091223989019462675"],["24132722055966528848644219805411121865404359425467348279007876217979601202044","7951791906201361190670954343935878108345037467502056117278086976123655233667"],["2420923462727584862034855127817354565649741189954829196325641193817214213270","19141667102307278421261590168429391722845266939085996887172385270147480850909"],["24670735089656036805714603628087421641292209039579143002319945509539394800592","17327425400906509837096896127460461697503554021453935957922658176647904062709"],["1051395254378404766396394038933574622288997625081390620992731071390023298851","9363908422352206647049597417270692568066097115988563293154258067185022089713"],["27910601776262963429425129011494281309839168207159777777118087382578371031969","19673836997089540974865944461678235830399888600413808713340191770855801042093"],["2750907877342295355553777826728145003664406732100855770771906263008949849942","24080868280929876055694406328033272200531392057107262301877497914189263494381"],["13361399308849116178165908936402232135971358592924325832844515294001653251445","656221305124976787915139899155107510561677480464934522123503646612667864711"],["8982604869171817792300237190271382334060916126519632359042849197269727733288","28292268934406091853803404856968355930787434664357898041225974200633660961110"],["11601650799343264847304561342962581425834202971352996593215213024885302847591","19034698640259799037373835296068686742397848371396351199130493707262497155837"],["17286848996847425803210189125497370009229890727505138149586364802389496633015","20561401079900072735577376892857235897562644376282280441871989558224849518926"],["25275065077643688911005820558115999504762702718088414444995646180010593529731","5675613147657160897624806447332113179380407018932173873144036843510507760627"],["8698094399330133811307495957229706972759746579405474482001545153344917256656","24881222052382157689220115120901717187011068103871573261426482288572117629526"],["5132910924568577587736004350744772773270858258207494056846975983215570791113","25141013425814355993396331501972185520561114484205229503548654139928527748108"],["28311384364954846350008307618078016227381735836593237753191282719441775257035","7266533870607224276363004816342228851643751800664938062155367160597255387107"],["7918268865204637233574398093954871713578873362692392996023757299118952931088","2938742878466982121304469309206959127612249994060241197778067689517713698531"],["20878503211105017363680769865053465375229387128240882379203801915437693061563","16178716454774041564443556042220634212050387202850110116240816318146592101000"],["21592674451501755687400718630924523555842005811836438765310366344481644707450","9366930122101397728559063605874707096687113528542335866696282445019277091784"],["15718239751694427019540398363044236481850710733377541817047413081174565840129","24461548687048568569323434839068782776869381557839253583128512786503597279572"],["4127558393616659210922390069153470085833501241643464020658432282346396328648","8179918320484821454157039530761428358445346320674878261130889019414323303148"],["16289737659291502462338394546442701381647444071079691664121034182857429689624","15822236747349243812992051281670329866826000387187560043032758268225288219885"],["11838186601162479809610675794502007224880223246906660138034622666049528499510","27278570028639777693365144230302309723006505818657260192947953914897133466885"],["10093099824810941169583964327278203057761784189413652852068256921794342178395","13426023346600438213330838081885906203221156379298625854000200687365183275597"],["18127600401739074136327313689338523447858589491176951978155919917531349027236","6367555187437612459117409249245294595342849003788621737464813302312004645886"],["15212426565880824161020301240339370985336678861291938699590353378026641379938","18738349509080709086636258665838410912096710593211367218588343096401328492112"],["2412046835192339421806784600465935704841172163293647444629718918841936820869","27701954662776873581962635866461647326247315072465594602104751211074666231857"],["6149594201370632449795818507851559560275059052111316221097763936415590554927","22075559938378004261245461600572838075256221966268713725028533849247064254675"],["5548530639753698409186955983072036711200407563911664566396154211167581076006","4774231600915581046226940145676239917224806252227725790587569008477970538419"],["10600753115539740614478853195864612607337457125459666059864157882259880955600","26066517731523188758401098774207789897481556032112407579996952602306493230861"],["8267971918162560858015054095022014276823815537562675951574130866053046424868","373204550051949954332272348429347753942235796190061643534431744245868606571"],["10686358594241913454023628735246074380323566180955030912129795069263994543547","13341176915626786315949400052827598494339470734356225360183726658690604566605"],["20986360359753247133627171318392744722026420155984790766414052472249382827525","10803959499505336111747056297287280522485704415227353322813622611057253400524"],["7822509544637778218232281178149497327665745887571275068884863913223550299150","10170256122050186941714615979702532522182287543963366094253993504102768053314"],["295864946459388237550360840858444761153338804138362303524697589170878934085","21191014623214895578453331133488477560598836693392681058472655882906776867335"],["5429879082615792399714568264181908123733555208598837247846200219516081947489","22482106334541374333382333781614337425525840746582818520259134630334864907348"],["11257156615686637641649330588747984183150319250209789271791186556241185264452","24280788472373864626604645714069573047016792345154343510271824739892736194593"],["1024534301162349216211769562410595308138866464157170110248317012759604462840","4330720466046063100023709232243160259068967590854774659523007293853671737735"],["7128921633272023528333869856011034320694962370662401895486987852624569660337","16413526459924076042826220366790411143524512375770688750527567413325594219473"],["22687595137162088557686857459516797177468128062479746953447451029791413643313","19272129488166835706650794551281166702598266649056391025809112283640354154901"],["13850852576252005890958279935868960772170542401705477394865580866636589496","13044162638162740109297349516668047164717215861266279941452836220329544261784"],["366348813907556967982168124495106926615045857888863861850078166455197486577","8579340300935964267119184006988680380763574253306760141516488251076256135676"],["13740848932626411807166273228428046195312597689310449223707032622285979015764","11646224591907573664762225115490849010763073286768054182781483567521375701468"],["19723483283233213247085948318577507496109111199153899352400389229580895280530","7684262745729887311799348540879504437622979438053222140725265709981688600941"],["25720278252661085370474800896440492990200698319622918522850907690389931587553","10136761901992905284570646344430787642968337048403230184137054356713052140633"],["6416747869152612654326025515325873019509887441764305150640720790334122261084","24532204723629170410416568006337776730332776101113689769382189758107426072264"],["15983688522274375912568767083721156480595537518138964374900822593750956451717","26908496150300872137787040548305333377108665240602909120069730536386969342592"],["10600431312386915730681608925364145646486771078793620758575600487240587502364","25066841998023765399757479283372078504879401684695701126332439379016197825326"],["2291908037808793446567248670141645537397403718897354318197187609246244143079","25585998722298568152011259417460420642367611211400364043497185569306975435089"],["21534206578915088817872227040224201771907875494924385294504545383695937775522","6633801306151333253740199441112603208221882990332899073680518394112106028928"],["3514288996603509043290246739414845452983702425551907361465330434253707784576","23029121296004526818831368545779670859771999122881020830793898916105993450664"],["9894257405320630192472953685744531964434685045385728173626470787751908845280","10002299551267817246874088351778646735090471110194319174510829092404443744455"],["16528892457477640766820466317030877370787174165475189369310886945578616376420","23374030680793350131628297814251516382573418974021160958082728039094540459747"],["14385233234080758837348861689160211007626334295934952306584498648902269458712","3139401503888989424969024872201769001605335076509351677847040289960654768008"],["23193096322291517376989293621612064358434030452357942995386450004954942315524","2273666667547744708774244935816312117683981141473695792488418406567031044320"],["12151499195494057706313832072603678065198654208292091599283674203661499343429","17504985324913562387050987388369014792088163452354922618861068839361631408188"],["5696885599390568344869965440837700841479735504604550507796314460527247956808","25975822116783436213306979512626534183735512211066675614397303888722880685710"],["20985877602683151676358392387225615984891033841757422473868642756498889904720","7280068538716223729881115318581432690661186874243601059806429616334092091777"],["1207385110644445664649037375921443720723043287207454661265515793355045092742","24869913096100448319650686292642333142091934927845052608592499360623528750043"],["19884059111631639957507048588220919350494612356985124344040469763572076112423","20833103407345890634430496353947261475662120378515585114466950640782876051681"],["28558214723068364345988087442126199678965862781525072074112545957548961070630","15915476420822258122332930815837871576848275792263042504573753914149322131408"],["20748931868098387527127399381083832060700849487965506777222115142481209360467","10800378569556048695513737514847605289589387350357186108703942997964911933932"],["11807527367448847280826668017298879618402219261625968896295473010529990032092","26873609937798727872446243312364910775883450392072673515752790215719543996731"],["21815089887661378621935642264744417517364774094051565199799976585954527823955","5419283973830463420690144100512911358755891503818634226394487140629040653552"],["27214036342986975014498466766510846102374325278082001418373329586776638197301","15420411775289160629187002685848392382666702395614217228513983936322008330943"],["18016920090054415273553315631336588419373310558497737236026079870181927990194","11560557368082647260500251377488086407738803461499951806064878627994892329484"],["86175844739245654635222903787855304357529038799063409604819232927522604350","9164979071632436932231670340324268184717204378598238163170928019653336948491"],["14525321544275216414208049853211459529492237728493321531420868592312083666671","3325046955775862636266619941539745275779925348238280065015253083216470390390"],["6564443732376231711087919903641738771800876743496435966528048015163486778693","19836650822556187904637055637382072261378097450734173572128774925475328953373"],["23797014185079182317182494945283924270353908026980917363884423133613828978688","28193402479124227426237047702308543629265263354497417495878275408173774949591"],["15786446677028177384940462390808982909027393540077811320323793540666906770809","19611634675966467942570659427441850825046455104253282201494949275292595843469"],["28862547510248788523828277186255618830851697917646580090894479911062549872334","22459100320772245060541949201990731954362652795926104406197320462398868952448"],["20653258307606328217078612904347316102378366050468785804614909174184129410869","22181321530650612709038452472057129655615682754112669798111842942740053786277"],["15310491619389939474007462728082681913103198186681931644605744066217653647053","2968122954405153218159967750281780237301949730099094359379133265706399933623"],["6163665719874885841887908671894362030020730485542850523663477274770783140044","9078967894676224337498887021390460317993772947278347936159159556031116031141"],["25265508398141028413711986753619341792551652211722831101792324179299143906197","1218307009841016758955302757743028521045964227082520285618456513857233409007"],["12398596615691829279469561924372906903756455951877684453793153656083314190501","5701896162187452193509863091824130654939070345002402509678503189376935461132"],["1540704692690665268661949171958413013631563968744256297508705098795071528793","10399845405023733683578817100929279218429348150418276936576049008073122274156"],["25543016474364393593763047997664185340186097353748506015139363435451627594116","9494066444977392181532932564603017407509132465341847085606470734786312191718"],["7030242880407772763764004454367903372496076771170702276913203733275296064049","22826233840716677145428402714032122575519984044579409299082720290400913688734"],["15294265695960187966564465102038258871381232696332909238602697059101762324789","28794051933126872871211729477081535780991027935729521609278919892403303390567"],["21795773157877437146203342221757319158217441651320713005523906826385315821876","19731499322253994891384811653499577418153999451775197921209343780040760109187"],["24868774100178866423193840314016393567022155808948380522823777176020319890332","16679035025002011380643912312200967338814228038785734581736809163020254762911"],["16875476055200551724359438420640194267857362017570146736909465031085666161758","24448603928652462411794945610956571826698685033535395903607732183104087219492"],["8226197059929803394857242839431160200304058610222473830646414204406624871200","21505616636755315274260982774139087087188075039206222788378045425076009161093"],["746198205638916647080489407560348133668365216319094567705816370738685333076","24629930634394018999614436387496445950021357760130640926406339558878500486894"],["21635516346400072890295564651150646122220556085309200949199139284121300261406","23307393222931505977076291712026086111264414617863076212486395731974476944542"],["28454112015632781377345650767819910823667729059144409440296532807793554375523","20468861619509931626989907245522994247668518918050283448555911557070990470865"],["24491105157117779476529209104308217274343319914183468248020990497265838321883","8164578304968547902386965503070672551724622909313259305482379382111920884250"],["11824729020526122786355077215677026577047077348470140268071326852849637789854","300722438797990320482256833920660065357205798994212229651451092185830088103"],["13867292046210110134398287093583985301737063978392305858751870862395436869095","14955671019707945151151167627665125232808842041882984083107161527544781920433"],["3696992844452050193781703869130037569867048146798369348742582339420143195515","18955452711014198674753105990043028128833300327399286510030442080808132058168"],["18468811347949214218972746685991271006935104943390532865853575842965703436765","9846151876544846169890286962363936580808623591250755216554263504722528956325"],["27691965162265199669848031981895751289477020376618005785869481833673706643393","8020556535246279704459263747057450869839030905759803465551632060882555396363"],["15510268830542144828683358726111426624346629086682471613678476206995366635450","23312345291589962938127324267112358799151111900443873368216593980644128049407"],["17562102797600108438940445978554420064948307483686757199692122327151731813209","9327138954811194754865814413631159208448332186083943109477474244619189807349"],["18503397054619952839498505931912019314492308363285964849240230328564633748572","27622187318105332744126403302420764912805908320616219160977125785042414667422"],["21587257906656347068100152567353315309169719441086907863045954969454123565105","21302757677675143282864673394375671590776085812029747224144408773520408990113"],["16206155446965745099396817438865594863049523945999045133947202046924640703013","22633697858311427661141998537575692899622695053371266370394576280875215965388"],["28663413364845715491966062811464046826150814404589348851348078682851338505038","2396864280969333284612768497424529317399248044533429036678566167610309151991"],["22447550380469557010170055915635115471015195877508567532647236830051504947238","28411172174328796089660957343902335086628296087403572001806964411803841174736"],["5579203170020524797921551151007508992335346966627916696532147783363910773323","23491936889610979535621377465801651966052796806481476863950382533700726906981"],["7785686345445900210916604559656070837770650430112654727128877458148433398044","5430797350340614126514823426017553768269312105091436167080686803787236075596"],["25118758818271992355625250651842407755272812671649060080473449866304184693695","4432450098239070432681848442730671208756517507642472944004567854867874601910"],["8098360327915444761568227427841865268709611627249148316397635138518482798933","27195536498382274726944113947001837602632032988456538906313108959988290536917"],["246391455388784577509045880342773754980379140149140014006684054568552193279","7926855254602206526030592700908519404249614964776908067720967596474206987807"],["19737699282662538768731192367792433829943321192995946544184437831238611265310","25337731559538197241955170884639964690158804896817825429087746337804682360077"],["2999668064065923102999326173275744006064099726749931879265080969415582945359","27103034939509339475128035608245543071467816163248399002748607403732726443396"],["26748519981993240967506931698412392403845680049322915819423127794389815624432","10339295274623817522893358839808867449620541259371996332846698270942232443213"],["4888835242818510474238079260085375688801310129972362956975338300319285791211","21495680965612033124279347392091851280747456566095641524604454518067603391916"],["6339929155309566615684784180775927980588205507288954284115521827980539919721","1336980806474936436565136561764096324942791827937944780193142890693727685813"],["12389874436615561070864565686484268569201253212649017989149576661332475550984","24912260974851010484733175047507401866871867001171941415487187098965658185340"],["1892279071312811685433364810923738318947153222362088172496818200628298867748","24125092332900865220026854715170724106978554358436119705102678586656909019114"],["4745398679031945935560418046711541160632136775335539602501540435701039232873","3805297387645928503283731104776889958179075943611811491544107840704672762512"],["6437675005179794363083592904190466903580797932115423159542726050515528952523","17095902681622021111650568000960772238929996548375008460007277263778549643785"],["24120524913394548465752629257108218621676092946142306198056084927389605094122","12593877427767783662058193010166497034057319601857339122681976337975456322283"],["24967585640566698549083610495074474128592359451379126832229908144787536255992","16386282027105582610319863095015396084461448086087522993398770065373109586626"],["26410431917438000492733037208189815056510495266326966420735821750268001765074","28673506019564856747654770686131477047833186826013235395750375003968358922490"],["13601428632159589626029424610220217984231872513669560887323084812416964286305","13234299325520799214195403659890959464842480023183894823820910472087072226638"],["23928942110037954981680926329327167526834206801973039925142415287252279088343","4886671015504449715495360487257682207852778657515642593413412137951469849917"],["3496959235047909172141902862922320837498348688937129139093928375222316964910","26817925200682396887713189756658543602931834237278479209616481538106118509523"],["14831738922309166070454927119603612325336236625847233520990102107505039254915","14267370977920609530799543164395400268097346783239020970264796786808935950062"],["17899841810099866801849558228722945172870033508261732268408118165901994356491","20984196059561336951140387794762256515683684588813906236922278196902423800479"],["21958889497687070033567268107493023710681185369994388392405909709234843842032","774044985004106707817533093991129394751209020405688694534521707184129399351"],["21876008662242078823261061142100486757077239705660297566309988982783587788687","2560481047747871997000318046789743346730771128477428552312265875149990202359"],["13821628110868024832649597174920076151434498065952776192502658947207850749704","364540318612073988914339243928769117130747782902954275451933180648289174102"],["11887955189884729407150815384055174106332465252058014328148668184997648142948","26760400412965366033837660906170625040190687585804410172622360421444203003688"],["7711494485684781913571604353323908114998268297259713969680917559949228293728","3367758609046338373690233001032700803622689175518012244828060599970340164469"],["23380501395227689256620060115747216160209380293820478988154259533057307254363","15213169095840045138007320891114012979610863836749875461586973980692169803993"],["7342304256777780721287934990904487171948407197321971249452280978807696742185","23839949121239948833212451256251092740574096016771097787290139519542571064818"],["8818893301738055974471236828079177055062098491864842721873664657694297592583","17336201527631541367450167394545425260749295303139052038166262393765455069479"],["18952901275194119410075201043178171570858736453452506626732932928949992676108","23452785183318775462823411797830319316994064717714370824786426738423225671018"],["15573031661261132195104029098312941911174238975032128913454555909886217703850","18278660636348486608644085997828268206156862846003144447626210701892995091241"],["5110168574155700525107182589069884174529605753674702191283428271739181704229","21591844146320577725233813952364041220731774519314988852897493680611311907794"],["25860904619179085992514083154766841359530921121347561754676003911353824708792","13726915973541821778574743714109640465384469353323122086229532797945580596752"],["6452010951389212617585451568718921906938361559500051112610924119941191683493","3563989001904301506254244440001017606020506191201414967850496549241731526064"],["8521870849927569637811424618148152100687836438991830540433821862539348567383","18859590515716112844021448873172581374821131265259480333076233138287248933685"],["24427825346971060200873968722919355868449219816186645289974884558793614844910","11992482996831558122443401766812094230473062852259452261379610429318535887788"],["15544781278509207879192663370417867477387595085064665164707914719422161818729","9908296264168736900073031206896750755989869803132239404190003439959373495201"],["9971082494070391745733948161622465332439834096532034611158556833581567893830","21275473442070788540148198369427473720103667387739970826583214081523883085724"],["8697194679787677434244846019270567967738319183556319077741589767455028958092","8923287860198011062168971352517726866692693330036633925913966224932574046606"],["6714414173739723719132757476780875358455575251867278092370557124881693672246","3844239048251135950489349466491325415863556897175088825911375853546578084251"],["2337844497218387967226694997241395889289786725298801676164109008951955396537","11851587068133473612061156866356923271257506782603441678676939434141649644510"],["662406261431465884911332286095174572236225515312259870525217369254245892554","12913578513895463578056376053179031712008188253220518226658197143032516877137"],["5180343082638290959125031599399272564130930411793437051349891501060090034232","23249826841812130175248503101778700512330079600570143135413242921415757480366"],["12432214924396279183649153945162085089509233369277781344380924517517851692524","964806193714779074480643888049916410672674886780549416444261744008852063481"],["19550500839590951298320234671872125354523675446768643944984560332183522166309","13607178282109149750729442287704312792835414047503542130667250640345504604234"],["16503468432250018052972827995009709415669037638866634640039106131732640178683","26110947956402003992185036559939420260889099522224505633314410292443413361021"],["251687799679892587897516674459741838761447793120786854121056539185135424102","9365955161641910865871419397362143650683672523637001483332500637336056816372"],["1085159332365981471450966363642018601328379076953503733515854384230250157067","28625429163197640670980206763380298106753498059514866745406049466163955191749"],["2114755495012275233591228032577074138649075479094896382148254588532584881635","15468537726065768069158229394962152378266716604935927789743831034916139560703"],["18563298476808137302629683166468218312852138450432583648807951751845317049538","14584961114400664398017718756782059643987921488021886139789010357661386130572"],["5196800239290876451332654372943565258286788696107095242827053563635197777129","8097085387207843467976737073434044319969021074526593015821750762972476624144"],["693216183762466417754640177637712541709402469423966688563217222559541908602","8564534741712861651166327452299656490495215540941284748663171542758705017304"],["27922548774772950340195727413479858194995393116849564124050339600065848963700","5523748752120004606537979787817626275710388229999558156932413387369693974972"],["11217981543688806416185103234294977494373696307794766279497089489009586656119","23255380549277178841744695609608660834871317297810646650338061721643927020987"],["10489974284143723210285771673017908180516536219992968848387715503598953890460","27291286847711094122105741185722595212307695306118474232731125718904002735531"],["12758896959020379815497906633982445415791685960088490763048149398265357567555","21169808923805609320231853748046590169310023690083029580532273287838839473640"],["26081836366357167458217186406748835024973632336604359662841993093287120165345","23904942038431175251847534469327622476479746615310730037345795683092484383784"],["27015528822570704628841758100192078908456585509531033535035867672800478104372","13737469478702289999979438535205683470289998054244495681144536559901553246885"],["27605653157528716098717564718217397728439842270976852619981904722369809901117","28682430408239029119272340848369381872297913789768959775775327054047587286696"],["26984724816786099003601792122897512400604225412182789914552686412779165798853","9481757193941600919410194206657662298098310114430075336546059596283655996214"],["19607509787824431237680200310387274097379011363808537439688078762588654334477","7872712734663501442704358368122581234860737542620447868922903316372844579011"],["12626837298208706145712788748031199181651696640875518642596614645062639942995","28932782176528283898764908920135006565454877167315713688698564406724778859284"],["23111758355046655336318724406581311632365540150044176129707372498053253286207","7620027322424534134129913074152586300525187198420929533564371653141160326995"],["25887560285170350851121147029814034734169366477647079828985689880805315466877","15458869971684157472586036218847117151063958313452174514868343737018454267644"],["28826413659855894086257918433404666186604101470771812042581041419320497404232","21885612227405594749664321976106603308895300672531888007947767553457385263525"],["22775852015784038854396427652942679671560929848702804142731538143040118384791","7690210808591159721071512311076032653033160363552118745657602149647203072217"],["11963488194403874322749747590149333113356242659707303797002758789729537713486","4902355261355351706169520824451525120327055165556618318379191255396675840036"],["22628734709961709052907975207499736684024447277393753464960181311459623552960","10050974637351670323771358383961750139860088150018775289625008590121396409207"],["6294454740103253764573898299121369832778115539851390354782804558179218052330","13477406287539189129401223563990560041693951281047914564968096581328246499020"],["2145042556010634098711030681331359988238906384499454390612946111738360677765","13470326833662826791918615486164458499538756484177887571794517602221829264682"],["25903210022631576568678215627775813409454044501647114322432001261934279045678","18128134101543603829934269977352344980325143280978562861523993492992400620323"],["9450371629681013248970658255310370292760682980594708005949936779542669669044","17289597599122070560274122325221196419931255621050283842016401247265184689392"],["8942140229340006330063299884955826923119683731537015717317279047950470667708","8443784045270718748190686227788650147211318212826701385147325131961627271772"],["2769039114607891073965051916959362011178687537991849269644042646204743238889","11055406768836514341700215256468748873507031527536783536322051066422371703712"],["35706366454089464038636316418062713654587443577926638481391271862951107754","22834862816180947987527998577129422116265828677931663806953501949388140808524"],["6280232299239038479872844362324908826307020711792091242480283480352145487240","388824905359231709567380741499016903884715263709439813982811589111096923998"],["20177820907038098431344976206480952671097343312867622852019549561071329488725","27016009718092543849663461572181587322075037384055054000754049181301515760876"],["2102875766701399511595077994051773816571232330549403483931763185888619966098","10325087735360614522867946355158898063172268012825875587595512140585493268926"],["14043345172361614194834714916892344708109077048330468115582132097573044241354","722873588263784752272999762739771439159412439706773311406608027007073075322"],["23201199359617090771702840208260520651481114074780462139281648025246406991806","23580803732236317305092684647352150825974375709255957411795701222916726038498"],["28290172765415592369404924923829601720704775805395115965478161002123477458187","14953551422351395974217715070198772817124923832802237477854817113121565216609"],["21200266243537416105130415096043037676401565239122932072856300833786090141912","20064308519174168668006945780335845574233316169348316863002499167320597018960"],["4452299594504739481546187795935996321038815011626633024118072584957830517267","11381048224861846383675741992330280863002749902097811414183547724144605029737"],["5464184279412035789281800231953492980777918632685881451651003782023213893450","9251371964843414727625831143831605766244385389932222244593991801026127478373"],["5367863664602325945890545970609778759999962288602199035329162955975426927684","14502231860370033204910369283448385998970842006136873456235556169801843801672"],["25208613456981123773204789542371984952498131528776305368310818051447166032535","4628282747911818043331523084953388391226153024686008447641112186208965578950"],["13756168637710173664634870372272221399395530783827178758271974214826977364876","2456107200402106160669137362037547047562853399652725022926074556335447859595"],["16922321473886681107500604411424257433836365589638814489141320223737994316069","16424846688012069745191906687148151691663392186434863848126448728444659543827"],["13438323969530693322398797441120248077990510728267729353615154194870258175734","9372986135687897112131727225477937586987230870438494489233714311569357874334"],["4851765346774425575628533022806392600160594254577137909571534917015817720957","27491276982149127077628542776541147277703277811466980091029598786809728975854"],["3118443382090881686641067998485095132512270569178618105949148018680780774780","19368438490009307317192979135492001304290853005582339335582850743476828109689"],["8621636365825057972262901966956070860840957394314950596526100625059824733152","21026148887956959336211227120566012310446499996111221102421341774693804051577"],["16517900044872348528214127468092130466401005993253057248114344323477148910278","3336282256730688464694418222253072808163260233285787963228191563448699604967"],["5424416823195512606177633422626494912460350819837451284575812887002371443114","19088702760497839461109183370026886014675101546929682415306339768405480286302"],["4779717220937244795312904653193779811652978111113579887532584631165297997916","16258598054401926669584416067136656368922416748327937702966928355912526011246"],["11934722893143279078048134833316163436645118605604286525247994407060589978046","24559248810935149871799931751545965141315998234177903020017929716900029894625"],["23197378298785708050696128387572979634945452392004302111400781969422723922813","21619319867303138873481478273251440770189512202623284217694167363692216802853"],["167341301450956254284875098789880967365635210465879629333267158798800569607","23146989844018184926433407861305697109014478692487957148743099511772412942597"],["24339732818838318211554827034830491031366590041129828375492257506136766123023","8279095429083787546437967042874607382659347371532253048526755410437259611202"],["10037017701252355993175383672814243256949746452011166982404284495429874923692","2897502318294454944115066521120635491496272604298407719854404572656974036706"],["810254073158383891187002912702930065111104551315518336429950513592904942451","5148208172731931354044266869512515927325446350478058158073285553389858558871"],["679248422102422246216603192082526892572175529024681903287114848040069769945","15302884927476651620169635855841356217065909462454356129164683431998039168073"],["27635189200162576433261153896950441909315935245720371048264707913202549894866","5095700889772693135124951402575242217155351716657169633291547205160154768224"],["16318267787217949435764801828127476815769787025979906897882966528613267786380","19049096825379199836490634073330964348135395370952167632074308704223285334307"],["24095218606921762240713820702303410422133379862986923337836071144586702759294","27253448420616666654239935413393434422130052284762834396672221298510157362363"],["15207031474224052967438660778303497306901275154458656975610300657892205209793","28152183251155074678545360290977097849822571075398160228954848582400248145262"],["2944230119227904516589753784386171277846693992818521681262445995790362721651","22917641700784373165823859214664512024163176929896778942410146261860734164253"],["1781841038408619177405077815553168904973390391901098736489165382457331286017","7502687081521736035013143134816507260959860566012138771434122550476514886244"],["11492867518382940138851494836582391620450933075858244482974969491636779638916","12628115548902495773570343753272222765889818552536226082107383749951485644727"],["24807168738200375995356863100307228328418264455687251370293198612088070090517","10163911778390238931345651981708114757621606182889470143098692048422467392285"],["13371578189123847297672731076712627053378297996402361466548139742592038466417","25230236893845958347183397595812894000051156921330074895305743123325210750636"],["1226344527443735323229821484090427180469456167311452984858953602067006629150","25509889333245244795646853667151278744023477356786280964793497391220651754218"],["25143139109031850199190119406662349763318929632628185319717093873345450291759","23016933624397812128135945944094743252745202479245734680897216648154700611097"],["21687308401465091403112872559170908338090237320723138087691519558702112514324","1345153426863125350681305302417503252427021843027283334931305147833914644193"],["21024189756530244429298457568769417309806918641134202888630841668850235239534","12626439273497232482228036355298149339630816654182690080660116795530202165315"],["1317587243576917954702645284544407027287160755533354018705187913440606911826","14947193301777431542684716456427515276291405445583281481112275204992727344552"],["781520428655906362747367993568752206455904139599091633333777781379777089666","23658306174429177179075796592875165196103646866465915575512092601417428929727"],["16901307552555828707572834471410871613153384818740534592390102715238845072327","23032567738106025912669315954805861306264461263305506352950603661398234186001"],["13644440206984181342534693982015515124212175242005849265274014190716799502111","3742252963034086787775989866747060406213800275117819751982943547082141412583"],["15664705818760073903740631783696258878907515065252685931489022302293511946729","2624892917126826443488204340357306886003331818876201056261235282123956529150"],["415081856199024456551135263032775209369258897712971440672198698605941069289","19023274285264556599519148780738510425414607606829846469094523006394068943338"],["4451593998270275787277969380404639529045261694109297432057351239816131459506","23583225456438443689748724897801199274587904294463639341570550113674929201737"],["16102523895964705563568360003753960251652069910258821353555559012342919474817","18688136791525592145772586429976425953941942172211299968438508238215887098932"],["15037251698200873983087702922865140981691230385449822276970996946265304726508","28859955074970754885938279456419275660760779453709137205116539310750808440435"],["3247603947773009739793778418419670347989889533073144742695930152261153968221","25337405070537348366128848510813001896963461038467485036590363849141576792300"],["7489157247078285547055735927868423936868235059142189707811951194206418164929","1642931614526920487192743069780838411081856337169784609798828866304205682019"],["24743548871358128070755922222861795591319916400829730060169574035470343760550","26677722958403229721935698731844939406645603474198046754816122573037154426880"],["25583142909184710064434670868594363882997030750924962986665058547215299952820","11418360425022998112450746947905081345884719166216809615639506127218607954440"],["9514554989041305859127604901192858990799346086665225719690995465211432760433","10596942534596262727652236827077924418549776984212883313118040045557438670167"],["22342057956159834257429647576499714755292286218040152586465413335789809571730","7079563274334372651768649546626889783531406986909353228482018199757126212064"],["26120275841619098523295389011044988480348749262674830511742878456701777526152","16180222848832217150725905234478474767776901498547985458143352729582166080402"],["21215696205045931447602136557554462115531709916029651135696035243405196124173","3389620764898816931913165392802612233959678710951203947693899406790338301668"],["2051010563256625607706354678324831973938994047266714327866157896442975094575","27487178894663412868098427423106522129173621431473876287081103488414388896595"],["11493144083350533090609448623954682488705831609102772675527496807696094474226","6297313271327325787396541586922902978048000364836108326156400155761664156619"],["16935534480787745418930572327334218071735279080454451652370056796579867718133","11039286467604521312220907277210399094610738307946443946860537480792942856658"],["4433566189871999290377858448409012140191230095528237940368099498925933452722","14291012453731458549276209516889101807684095766216662070865699130217980404899"],["12952024487692939231263545568082346923998579708651812173130826349779527424886","28579731753485256776503392644463723533720482846248135397048841620859308668832"],["22725708216420118576517893914401223719343629643652166639733310501172160653087","8797771213239633781157595879575398151697464389960687299017241131131038981137"],["10762694727506357269665739942340464955204791157745203817683869799034054044049","13367302537848794937475948595817194594871968198188992159243563734502278444790"],["13948126913744250467488029223596482021452359629964453133617716293045925015534","12023763941736237183254237381717128021208199975362740435192620338685102828006"],["26397474858324130696087240156568128477805344037822681950790975430668726158530","1408781964510972686346530517943573788453531726917058846143715729749996886680"],["24517381402562198899297039216573648306654413540004655525221529917997628471940","9087339726989251688913796357149072146166264027271704069271603874345668511074"],["21079706291165886300347371845573985820979681633833457269022783472148200617049","11081400344383414299564168089625074255026999628740292520673294937964058683125"],["16259130301086163481177288533017248728022744838735610150913565128862333629258","14333942308371696707718929711621512249277686570852012197286572008815636648825"],["26515142846291905578447848214418938720066048468835879917113835459448643340394","3590785664993158747563119388389596279030678928688851395730460809376669110426"],["10050937887185435826942869085495564359629744200975362594695502083088060709026","7669216706089316622180273041010536836791419699170641590001346592580004523979"],["28745330299982688224154808446089025676306296587190646143326728507127357074521","20779639881777844333040104617214215711832771785263230629258292804982527710284"],["25130967643326513115825768636646609128772170501846520303383141394372746678852","18829532266846430685295977208187437399807202576460004109469128216393081286222"],["3118558466105381208488274653560360504993612668210060825153435775631046588314","20084619192870082181537959561038508171371932208601903701646041667201777751382"],["3546108154229962490277279694327720371064085071206161113023793331019971060495","2876301730467815630388009972067937479635575817794803893414041738580641322729"],["27494875405400029057724651385883112558380860096498302584245016776565500241297","25135683157336068329866378424149308106236784826971994153109380262953769363785"],["21443432298798705096997976461598792250286732249243518773689849675877809506936","22919702749082325051586020841978634494932955690693423840708512264871427037657"],["26789044347070925742172012338054802841012861559959797009335266068854564438607","2660742914214891707061700649206423473481271180296410508578045938753487019433"],["26055297421153119486687791746940220848979171125801648747603178435982664758729","13597662974739153300670390361873209057138926987906866224208543226872072496921"],["2084673873250414957718006354406191611707148293255764952206723003763374637526","23704724204296568612074876426818012242571497324736490212619820194441048182442"],["18609540695934463831952007708159624859144437076179545694842675305692999858235","12686347481050172400047777405878116305803232800325225572814121773885995553518"],["18202900328426878568126801931765437511047271671472833840218687925361514543657","24688649791580147889717477591130581014846850103622887629815234609472219132848"],["4051194493520236419137477975088626351533552677306178639392466220386006487094","22191789392141862203258938522146251769791164729957626857374059118821527530129"],["9555877080158212314404075856252166943106156667074831581666448878691131602627","17127658430611243360437296867342528522339481493345363850019585451342504123632"],["9226886988452279022387632704568651348484655181596310598662856513560588020240","20404538548239273916628962568330914744027679839782414752805254185206162006314"],["22085447184444587700365663170876874995433734666333332688793606840744713403862","11542826916183888982622949962903531027754788750112126779060141384396138195183"],["807518545320007917006063959809983223293450532638550235355273922072060891358","4743535311386764619295646053780887817065587722803061836609639722914030416395"],["27925728693992159240161761881116065747982504227702105670883727479812177922507","784936530252328007191249567340802356025394470265094250393340307248784380488"],["7588464789765122774383576874477039793218791546103699988318737963192422964729","10188090431685538695219683998018209618780885049751578752723730525076001663022"],["14767684768653709487660441642286189451873060335129403263829610632676317190751","19101589182801429124404326347222834783745738948018007037286434456061633757221"],["4257898433039365067766951504839690050659333974543056448862124227810533948750","12325567413958542240894372041397546138950833281983839064280087293937244889603"],["26791809055683941986209035662923492972835302247842447136612399352325022004607","19922249335954814527222806969417299414052158919700858080979459350911981466114"],["27649733725641028928454113591974015810369474231102107294190512794078250343506","19760946284436521081899708483361004507413309977869415630651046910652947917528"],["2486652015431470524757661085760754082140628310287192169810134438542183854368","8070217455616693397495872417681249316269508204414344112889786474248694859605"],["23250742650536046916942001883230831907489269216787193545827445263308658666106","25843484381647571597029288562818870789874837104170986198115267983812031965040"],["8286993304831945567688569715743676734224764782793368554897109033829014105101","1308480222727582370804273699793977648690573020376994712974018054475312444095"],["12267592449047997258197715209195485036006563395885766951911661559869929471683","28591133634284365497289228411557005506802493815215851392390013711045470355392"],["11621658045786850004326393289779013405802873097090081129087491765059378413517","1104665771726424424298974423577212104703751196798834548800301770421624193594"],["19206270198035099340124828801102028926516201551407377665400895149603031704855","3767210601009349581576240945036233742819590288187160025722575864548276799130"],["3611636881257464197345861535586187287119507417887708214159582923916871510511","16681576689282735535274662262862124069811455502881830821244107926130986176603"],["13211707135937643896744843716415471113110731565263101041531138237579800482415","14654514258532513590057726731299606156791724588102988727401923269029251180140"],["11079710339394790521178847498859627372503869620616138777420521857532145562316","8925030811607710994979272205522003394572122277888627210358957867672596622215"],["24389770816713710877558816329518830618224424685665170398310339197442238857132","6693110968378333484549966487333735584257316895253962707181936686551453117244"],["25508439855450628086844450270483258331947504784854286077185184768729454955457","11378941236247539083758767476170953984435687541640442166387147498949277335709"],["13027198190341192297872213025726262760038445300035978633240172064622562551992","3507247422960436561964151635748447503435137759732452016823301697318346447159"],["1843977160461273048917818518630074372042136021707701502192688482781322925175","14841218148228268520849960950958171509512349971267660994728976533269406064814"],["14421852322669347026408268757067748819799159220474418009828749993500481917728","11647186367927088123298799031675859783400061857587940602778692576161782916072"],["993761356975994464403426298668033947682739314527353108062820787319207630412","27043138217724560901092599462019785471709549488690256952353002640787126836668"],["24193616961940471907046041367078221874750491131804064709285634878944197262950","13456670589817168994574209922825055209604074123572123654669797296518470407510"],["20479422167351869754038730323263494823726839497651541059749027763125386710743","2939294439952158580867046803359008372642911671223326415251658510883420833954"],["13927986257947221859845911165251734375727784200735368851108048936858083083255","12983002993450918245976149680628841802427922566951141188995714747557264868198"],["7923895663704717121925585875693067272330439942185084409068530225691007158635","20020161793312589030031104772501779906637553401269490234547169103211759263949"],["17037036418604042081595562437794693475531127777924521144482641073711202093264","18640350641348830435109417440970218045785806992402171135670928864260647164789"],["25164761125846503488004280974426132014948843736134332213286301089018270570119","2151913240702924135936675968125520807768860136529601610428301598023369504511"],["24002292200915834045656651856920648108289636796412899441638968754056560278970","6066279775051965888399045582313726468429614038168837052988113391061499147413"],["10193159038805951106886445452870566456273241875627037784463198873144943656521","24546063572568818362160134218671942196958680931332446374320527403683492675868"],["14602428561523887478466176749147722079764704127551510407667862493019977626716","24166654518738444588653742822668169383370423711369691667820096315759557754194"],["11749768193146638167898273458742352998506252862903896139655799252239499786247","1427075222400581215539443383899592617061854868823985669370484846249036814748"],["4741962196203324991092958911129021730526938094335343284117686197863422742093","27676588747190031120068063249291294704903820245664664964613558910268717330738"],["15479197439064608806229897778536744132508415220843180543986285252681896122656","1770562899572976267861317373754679018491017543815370509316275807456118779676"],["17238982999855418051768626999261207400965927943170072332480155439659129640148","12579418327754766636345984876304383927354654055676823126367396371337377196561"],["26485294498906587691703952904755311567143073088676139839867982944971854321685","1709852554142164008640430369938223955967441377644710043767249652626851010023"],["16123191503266124740298313666638000328268915492539375672255684517430239872218","14564539582359425996010875857267454420168343977992033239576724450448160374488"],["6600763706205282997959376665577174139527409964814136865899267569834231642346","28586259159122944034117475727842141933619902200223691804231703152013217319033"],["22679515476470031716974079569921962285316840301806771089405336013958770407136","27481337672504858085066840390696447103455180588308171790906387838251995017845"],["7354871910020711850764026670791907089187356217509900969991426234682660628127","20141221853338664871319407687135550762848303273780630829048176150055121502076"],["24011557497101858178629446896405014185656088579092588864553533223291294927563","2431142951705698930430468416044853223062790706192310947235662301620952876390"],["15686316660811363603910474717258594971004288084392870402328114818867963598604","28377422710895033268850286960174280956903136344559786975146531063698626977945"],["14488276902121625971133888059786297113341188972136540775318087373508543975505","9905534783078713139689873182434737673359855614222245829247485730578627578429"],["28845258853776629158536977332429395911616162858653578170305668887361020463701","13215251745452379702838519562739586601750626280092281361834373992197486825004"],["1984156661054731503883810092062945494437042727475800201006913661645412656042","7694322574734136070739922333221204739695861542406075659782190731656128810442"],["21381724432208864571972531154999443221456598103385727589430923060363427623957","22087124442272187442779195206492093610836373462147344293637129960607523382912"],["11029987645986760399068668050576287084790362546250245216166245074585582934145","2844899231399331122030294649608696888675706423379966268411517979729064260635"],["14289843267220692684319729179156060131371947713476053325960571491569852297642","12500788095431239928578248782842640945888416146603520600848497359868984586026"],["15554861868112286993000896018253840134788365144187100704111499175704902319388","24792577952822046350649475622153724576384922133745963551790358724048905019834"],["27024744898269050758182682489730480574026165924955487617925514883081697431163","2752078165078905346835404099405433419282013584081031508773969975756043699773"],["7378045962688672058354070109250807520040279645867601384858833429397813382437","23639921053935603249344788831632411136667655962407546507043012457949786017560"],["25910215708363445049971857813723127114593031648140415371333432103064412269346","21360902958150302142225076009722749049194874013018366077143055892972506968405"],["121262362238013769810135809015358091208899785874275222768502731412521701568","27794023918706176428065603048751209132134288875339197059370169416998831106003"],["13704454462978922215745362258933832433056861987360280134327265070423040688511","25290393941098248283918117914133855058940463879378346694356257190807337033806"],["25465009145541181168289465790845210913044691614720146834465197383139469467671","10534857363277831724043980198195245013255351403091144664807742437940653221422"],["24658116583632771382666976396283211049890641724177791613594463172622031506508","8405561758839226229045832015701996819732351790438306546426753890755379651424"],["7804954211647201328354499533002223810492445912423599389022082416154731239158","23019245768105414693664791321073409441074767606156448660980847404737489988814"],["2592667840223221616891938260986129248773696848184479630703954360080484795396","1853927096911318165929306154126063912242979418062189717086619618555476601053"],["11525382213917445847879407543072460064900968269656787924155207361443245756248","22777764259967734655338989043493065574141502030319976175022753348637971990495"],["3164075975380096638302986876595852303314063010012202067243199681207909961951","27224382205876828133436039777268908178506540609402149831026421745965433306518"],["8953452329439358938360618576823383187503316476647776728566286613720803034658","8181422941831980310021987360319488217931115802173068034267783899912453206071"],["24597986709515231402571451031795782439260993566060482525306982965011947247857","5463841061831073869453471614299863071986107031717818056435409299406847495498"],["12991638785268512738594740947078529309243201422055790995640792139623807873923","26562937700603572583607838116331801495710102294842102707978583530625490117503"],["24032196246632691986166562856605484630841929874033762742485785329339899255340","8837690193812767487510383210620781615596938590438302489803577306579865868349"],["25302977315379494979192488570327998766088573006409830194721915316010122126863","2535537475560971127833884904780598563304454488507185905687506420784165419546"],["16803045575218058820212896206145936343040953415127541551326583120592379781296","9646672779318022967866019291014550518605544228196986560673523245061656935078"],["17447255529544658652705857763208255831538555068040914424945473127390214488087","28089061850609959463221104851715708991328509817966223539822918878107576933709"],["15030769803717354844818433272964912375073310622963482455478664754009082227821","16903589836372795387937670724062919446945116732731012445748802063371452658384"],["6355937468074133756928423656994130085593229672843196905188334729729252610018","23369124223030792516384367230126041632786733230154841619871850266532370961938"],["11320760248227813177350250356294019300620815254217766281646060518440752466165","13881804620241069098988085271488247780473508683973221717452148754343796783147"],["20187657146318185259226465188089108933670519536713302852412558502247972673081","28762923156966823453747897549696391145331113838808086868761441976055314309147"],["13321209547566809785654702753430114677921618473127772855376985133904386809020","28811005045943024128305437200926773620986389279850650607260984641180752721096"],["5934131973614627906703010182737360661917513965912154009736852874947612862717","13381876409699152281072151882485108301362955916994235613306543613050660952814"],["6214938451126236587080026241356407051859968411756454386203078704161493762307","324932502316632354264635125768037156640140261306776837587724286412125859515"],["7499127896028195983097274835629632662995261138959412263916700347634189365975","27862524670371494636283441330215988033194673426065361768893313502185037266021"],["10889103454095599134275225899560113870036104293722811865589046474669738336459","19288610345345841855412682743840576797911235916837652465245443233814877182508"],["28339150079178630401523875836611174244846228641870396270413824259847109468626","8465121249630248047047961401768647463799979645391665812442658578774872998909"],["18276404380059258596824977717461684313312544020320932153384258568566227802127","10283148535449600741468882666275510047476389381221954786261587922411723212391"],["20603249725072507971592070280208190205309807355391295661405019758544979843870","365742830370321869318078091096048112500155234924007223777503913415990908997"],["27651201796424337776148776093445014325876191955812067302284809853369947769631","28478369146045931210877443929414451941864069707036338860705631720350397647679"],["25405242676207008939812233661408565250501339031791012750160695184761904340586","6120529348762608032140153537452758904915167312165028269893339950471581122379"],["7719271982424148860293741548650633613266211371974053021268466181043949940077","24486821877573417129541965754136312228531972813144562603096618866173102835284"],["24099910994368298236117923011733956957066483635850449926726723757177724643811","18233561661869172010312574940174542160255135975057004530264160185046262794249"],["8556079408580235511801572022809079849757977665455622076826199112572979805473","1555109484583614572151215684275820964441500744225017917434858310725436719217"],["8982279835841555401318259212284946935089140075036985250378087355745012636848","9502629953553857291302721494807549117532245208287326448239818637926244205771"],["20004328853357446514599334062288326103518391350943487206198647147135621869250","24884952600660697954704737813237771726245594082970600172357911368966455468079"],["17922767775001990164793446937558473796188923518635081841846236855527913144786","26841725329923565010364348391276934878046139341917871879353499232568072381325"],["18539958996386809502984204579604293583172127946510127771316522054159150933622","7195690031477870349516320225438921020830348239422179788434884061476261370755"],["16793856850191156145950920640816751027746466302557399442040104414813960579677","1568098989001131570732744079384068469309059854287496225578932572259556478098"],["14564584798759282126362949182675431519526026361427009967230935559050882061746","16582493398573876489327082209320161170546151658527418586095467909302101453279"],["16856177443510966206076514409750429206448134587448638146002723323535807334892","17918168410815162089082104058827910757842291965379927721259504611809011911158"],["7542094352880223637865767450496851198806769693435629344021309635421109899182","6557633955654830090784912650131006046794105575214796167050911352572811110592"],["17061420045039678922111953427022854909478321238357230624358553327556858504226","26472748745278595827677812366766302947258169784294187180825646074607481845573"],["68777947676273918912398162954419970919155781279039298850156458026661393042","12197660150806012595786451807889068802472128986577630335665603492496247903236"],["16891575037409244659166483888282375432697791338232176263554237083137020272994","25248557309475042247122110368285296112433240622806575085438580661809106521807"],["18774661372590511364709765600803373265708618884409963822506211035027129686156","6310283834217897189093996757645966575623455301089079200038017764769745590205"],["10485185372703885953206060191376908856683671648798914836273949037996725756794","297759781310165045455098145522435215097704629780607152604222684881407923898"],["400368078931177133693180219238617203146296258248698772273688241992411139529","25435784833512346488190936490406582385104010668659165232988159707782242605420"],["24473727281326497636306759547785564905839906658117488540777834162348948259081","4143583450170712885826481863612046084917212564107811060124759906391343879770"],["8325885072897829598537814305755410699540338396185636020159978372799710534976","12220706234256780543513342972918826937697923243506003677556554858602609373190"],["22846322439732369357236793981492493241070847589843575200511730269369806593781","18333876988809397613684263697950778375621989363092632976639219840703112076674"],["9012534629392577078062836259287452480734196897019552062356635629756764693290","19240625862318412794915159114476034360122883994118563492642202977480211207517"],["2001951555462774202927504378880297234545640097526003680818977567117018028081","1387522783347161042665655007735860449997075527686225974953606452808349728058"],["16801496337605357766653164944237974511380895143227973647694115476030327681169","24888870863012512118496261683771596458817237451672475842744791510709887521596"],["19746816342343359578807788289038182118211880386539128595005686370195837686146","19071305966613616544793110120163850932765363190931974985472624448754036164787"],["4456472933051096482753201926689365964032212918329018821863995800677662082949","11559403552883568245815250528877701552052555423376135244364530862206248720427"],["6113114606705728291736175225460742749255989017839286598234446363102033749677","17368781149776841113310552901189431876574057443836009348188387264815096008681"],["12202070951470532296788685203477680608043043330076702896185817661009885313898","24878027035165692046169910216596222929620498657529061830789620599674559631810"],["17369646060959809825244119199929673652975766984411776468078981575736217944039","18700323286252917467666078036646665902041914331120013431179323260231388266791"],["11865601103065521494441594065195616135172497476841040870163767361508635876867","15504742039219412680043138444057025907137539051207250784420880754747135032015"],["24953950743448259254538167821524110156979593208313679950896014400861250500768","563250797548514661183620552667100823050332948056167543143206074307326605667"],["24723821764241864242197226184168173518528495073023737526317007157851942761405","20366765708791312807120000565577198055293709443420884548917944927549951172869"],["10836536613498408011142355497962046997075353442673109181004225982285540232888","14767056071825040856624319831001882872399265273330969457603318732008973499594"],["26039666828836022672950484918777068180252537551426604183957248117744198841062","20410626696961362451298392879859258266970334205557123147123483832490097411457"],["7701682081458893558181449664615161332709204828365841944934624943826959880192","2662306303042317392461195682391927708142012564497058840876733061456331289568"],["8058780353254272693921603119782586040374955277763529427096936529883651780391","16363761537282880402701677841277932117791920504421937896221300674315624385163"],["11358412348598847593724934479605003409602102206859904609833789333597854459346","27714325598113736748291738406023116337466402806506121543192110551160244077905"],["22607782012684294761936805120509810530979918540276304642388503298686624517101","25043264750554466958063774078988082772017251758275792632255669175736392456380"],["14709967974341767444283709027629421550034505057420175973783366094709893329518","27107725214953450095642963236832321685264315188532759932352496826326364064168"],["7988474154603211237811900962489515692307580644955126399143813724559421855090","18754089203103902028699720846204484852960561110541571718993525935389191270936"],["20441440702574626826655393085030437945450489637417955357323480179002101144688","21881404116032026459832963003623067019412053616110357778569978792319902827907"],["121670705408238770751570466016936987962069681263462031566595471145070019661","27373516237782657209810026986732488888737564097590326957820626228377538588834"],["14467445405342582304436459901134386131172171630535725162518905296781667481581","27996681971316414117917221656565242955050364249145924333604208402935195356641"],["2191629284184046337884089554331858501943026694418945917927926639359086911269","17716081516307561932652003988351132150004687356164613212538633650922142993517"],["12150062686672978817732207092707413376495799202541701448754662889388623765511","22937664892475880328984494735368584354183080489195798326052283389861347049865"],["25073002686273414442023110508664329600566973176590978778769252808090310646885","25492688636212148478414347321716440152912168117510481310465778291381176082585"],["14387853143658401693728007554409740403238325973814772151370853551297571688754","20789494742563050041004294437593073172577440366431379995747504421780452788979"],["18307269420975089930226503531243639192311779242959165935506882953704488159137","20128716602984461937222263211626366890295305728785563590288930823665331968883"],["11813245875630952354625583395220246341475459608803633948873710956382474415191","21607337325639821725890746824307051149129555351758249747164513184078182373219"],["10969753012012137094046604200504044176783497845166011648173474016954843195377","23281318840762128954072267727392007884513134706779548073202395277068068995372"],["7545140886433549850478523705326845603794077369592627864906582312897158420982","21427494763148233541052852582673784782358076291957956188248280210914177379643"],["1123883153724697676092762959341984651798852193403331774100285572690706865863","5393783366075025348872660846676417431574950075144858358023389150726847633219"],["15583252838085859771169069365394425577259715546452732504136333820071157533908","6351235178850624674314391017286438105628869674691922532444559527909551849927"],["16890802438529382282367550962860526499078195494882326813273183240037135680562","21724499044110701827939554510462657069113028827272942779156808728578877337871"],["2753700688970717218025922236139981877304619122860345296081385351922674094631","21405012903164187837313022612031561094985188353556541245552264820640036360202"],["27937516901171795431746641050136123122612995175927486525880877871408597314314","18766214469412365638788818212725012738640588473453591676332892964564252365849"],["13895616204677337539914238259143706654852958937365752686705639015992007462260","15275931924733645558814184162378246685165223475550622836354297570938158085322"],["3469689171828002519855241656384689641920504881735954522449083129755227653293","16219839236424961457953127899932509301631662144955469862928747102475207084873"],["11283550749785874201322380089056638549006919503107177225076451427335243370519","6808206992548530144191478315222445766677979468003830570193800246891813980571"],["26888081025309511503024950464306863488683218577286473510757250522885274247643","8833302117142070979742641560648337643803854708038388660864722427051600425372"],["5046013336291587256918681823989921047814144311939902991221339784165279356852","20679339971906420092874419682187626859422633558337459334377187833280144926325"],["11182471122499016914732025894814413790167251379891741561304927624968372671594","22221701599006396924206019021978499244406378422986399565312578719061559339446"],["246020108071547378570116850996953892312681310153498961250556357263150396238","15171972947662775958831688942393226246141808517551852898575714325000506312945"],["7357113558821871803401221550483712679243946254434621849068349670843047278865","11302914852228021007431411649876356138539322896330224209714435641402307034613"],["9423465278428878731128540103035448440144913553670236225847807671486576664575","23130116517555619804213966903431641155579999709160569879493261261966134317246"],["18449727400102247431919669292424834370009037996011199361012825394032674357051","16276550513809676658230267279233111693994715672133627742568370628444757418598"],["2470359174721596367576932160516053261676099922341454281441694419518766445744","15716496836364064448712589385596901803553348808467776274719112923396962463097"],["20866016536653099687746374662936305244594481791145640495985781287124537485336","5233147108586227105238647015737878266819288400783110490110855820724957387020"],["14923677334941137447996202981079638995089979714560429515244819003776011677157","28711203679008471003348003802927991339835868563980498793898142007696555041965"],["25574567902420975089952854226221420013042613458875480809241431451312308945649","13466142042328605416595446957040923440598942462737656460432153900734379280885"],["24564452109112807971114880337656362192290463358288567379998933818159510419979","21309103015031081946769337899509849895062559994798002110459120252616653861894"],["19795692623384326639075823169869459259259745404821599233485703027007042606923","15751418642783174809738756396161903579488993392958924969233816539810169640579"],["23021906258363446214586427076436871845773919349214058308582040805245521665898","1345397877638318505940254183777390803649110256598356254941041160719551284168"],["6096028530642139599642366986313916253013818970885929134438349597873136643003","24024970144954245056905352041332645015367224245932260686605012046027232588516"],["10868068551127016214228832886150645713010076893287323882617242930479546706818","27899833467925357365482779700638717666401044910041772839953181216760111743411"],["16340415219584866513049761953233350201791330342923575488597022646455512773429","13457609050163579106324313315198510073982570064110341571554626598673654796949"],["12887468388803267689303100626786749326920351257444393004916203076432964080589","28551216309256498283170764559407129986706954229966522311517023002388141612883"],["18868978101032863853695994589831317864427635883147297589156494045919948290719","17864990037114381962128893561111618239148588544204918135783120473531045775298"],["14959612586194291820821063255946989367551091803188945015888135603543717260037","28543041435699308627502414816311362074126468174258171541701953989726972179689"],["14362088289414752174408178296511424705288060412946371879094655882839913654702","13030881795749452917709182572014045141495303408372439456885996164349689502417"],["7575379613927616531929104266166500442923762663622881137564126728319697651128","16247413908831192584625671125981745359083844940919035044976796713101484234156"],["24928587576746723147145421340507108694295292133739842455035106767663184226858","28147860972682932671192665324201279240013185205515073720937238282681450665471"],["14923566934222967838954364426408065527607129273767896014233402684006760801244","4584495525584673059188243703763360666051919394334460114738370620634448899515"],["17029327862501759950128900950830143151765355232665522051652756907917945417295","24811862675214870170642691632918166807317638115202953409079387345173808505279"],["16899969481880874754909240827320686936005479239186656960705961158066605069134","10734050076542288094779221390442374618793090096688913818900640537006794890805"],["7243254923444402983219224217072824179782686524576281237984944273576193197457","5615831872234502981255825334597770884916809222295972831968326929214032051891"],["28516511246862606001342368062893014864133180485058804045994651294781223476870","8409380819234112393438666009595556261552929899185760336163697591986701357949"],["14307860603847522669050041839626511303813994266961087719252288504191481822017","25177818857546944400689085472043472349823743036614928596885433041866585179866"],["23529679532699609434309359616564441489462024812436749648075093662096282289841","17844537690132945321956000358059945353086660816952023512428844323982202173752"],["26292831971458795532344671902795881437563177198468030461020577104197229519924","11774435681838449339643367862039630597677023798615614773056279683202432054411"],["5767203742444231972615114244893383593917127388623881726896122615411245558709","24482620282177561624971517064379281638965801130354353204788735952503110266899"],["17538358457876554861949145083947419529913065123112982564449674168782955564207","16659345738750400118049030923538816075191418601986915257136967052149031555614"],["4514543800964211501064655096071617085964080999360076127813080919782620049505","27784681232962465154488560135330093310150359079638873668532392365526417468502"],["20953132105592771492692481952280291581234839169481876859582477661707123527487","27850884069791332573681939808409962114115158000978311848738983531862949617994"],["27025979375564283576204392848572011155152008889403868355681210699484069263873","14809632767352811339316746525506306932956971706473755466888169682689238856590"],["4633763461811990340204900481940715000754181912320143165704498470191738380790","17034298144372132766625690496043702571006669899229968060514177358909235130893"],["7345800460696489127043941740965676914636236155473865054746904888361376313984","22095989828878605239009879918958775023479770037345521275132070709854281756008"],["3378173336156477191149928569510571935653865917251169532379330325298239444925","19416928418908984412313539136491603387524642996009204480070187223067791149723"],["17096813905148060378090452749769458814942531298157343942568532445782092930617","21351564007737583531877134465239154749129351092484068665442898679047031947347"],["24360237064874709009427163880541795172532159845301081137016313701421543609107","4987917070682783400680238938939755005528191317363550772962873968524239316785"],["21624608950706899612455347138184731570365070521153447218386183473344017958458","16917513373218810279902555564971683030108595986579124290884340868205037023113"],["20125974618919013243116707686235178004598347804020679499210352966731709964403","11884649714626190283846348934124440712757515281940523484126510121054762658271"],["12308338746196923958935892774225441655335217167909631927525855974245709273045","23686008855898929723207282046079583021818382992245434111315820467575366464309"],["22441278662711706090512075882810454054792059996584214536581587118890805820389","9765039965014225591478272993661360220383412222551436176922508743423294690284"],["16513263543198013765286324499229287947566140821821929006412763455489268713007","19533577092352249092194846941205974729061307526501716325773729775087248623857"],["22303381693466333478810660473559286171669246118723946514625990200941471055722","362590963039984734384169104138005502161897137103667906732486756558655619760"],["7216404445460953129104978895200793514514174898701877784205797391414554969291","8526941790310813584815122632040081324466100717067291698212319067331601763677"],["10788383093950808933198923620311928182244545286715056978876839023356181233796","3462707555853105182415737199646993162186149578785238437598229724092110606448"],["17696359297504878193631114660737887724493022197292520642532922125833968201318","14346997012639668598843798732683769384214837701058035017667643540677579430630"],["23033932322212143191681031408440984148943874991237436832403892175461669623058","5669727827198958098802037978118144664370868441995861811443736152356604150585"],["28061379179930020896806564569225061951570895118917657432174672281912714000309","24139518685922724374050277094689384557811274485337569006515107654021231191614"],["9630527073938705522975349460136196681345126262275719098330899060899139936447","14596198048071427844569056508865772012494180158839870312920939683939124530001"],["13377741656272491031065532996339909482295256104429328943769633027734016496009","6284659592522855967332555305932721979488548118666951533203339550077499905755"],["953718414274381586498499756372943454021194520055620812432094053111990188838","1673349417496199057992839835048702135714517491566511952866682407896126236606"],["11489570413443590254431818616552691369508333649754250700004381720062200141284","27934619343062270869553465903393813802212001821129154983324661101240763976043"],["3456581208867204340261121524034112703828096418666993874214431525680880782855","2069054545145364963885751893982652274883704472398781785221791401506200962068"],["7524715911515809175090589348919749720076470119923834186813234013403277813981","16768548498269590454769890091951938445083398539660687780835447477992955886639"],["12205239692264610279485817024784053762817509314733916311859290596487848077570","317902223352136077198818666459702389578006665899962985510948199771872136535"],["12418658091149360280788049055870626515955154457017193252885875375531364945998","16057430614759544364214874466128662963008500632000221850793981612232832535012"],["21891029581542216863672523134931840481326952017380266294417926830045097654531","26468259159937194742825448263307579493136133867177285456999813766714251780573"],["12156519345583009113812323828169308119489888580851550433393329655607229192242","24933042517896869581787568781486182843771283323621369084516723867723678333539"],["15529847215272403512918892877026410815827143002990639740619174243185421656928","13876864117722634990885742657941949063812632022228539322116891601169085470334"],["18323639446930173793386086290093125551544944174888264454686660888622545003029","13200023222367884452753289753998624590696622270113764702018260187870003892524"],["16653899258593005585773982515378841200357978681015632591802546868896362633093","10693466813774009387384218088211815900370042495424325787966512535558606332093"],["17536969722413808502353655484771711517101759946574145561417697134769208383356","25219003453902584890829398680691633957145495563688117958710189783824897043583"],["20235303259501523799851987135615274258631771179131321570614278685909194553122","17434511647517193672129768518290657821948552478451535778443492024663235647976"],["7245043118956878274727110383362998240404668995593930142499414848055095800114","11771944676077551998376156377528614023166927412250772313082208781438385940122"],["20061885366581109163290599029807128971808688513844830519176019957872981632891","20437442107533826639190013020604253493085005461260043701745698557973828506487"],["8711028800939616706346997748585548098096449065729527681832771159530072980059","603166751717659455972541399555251723548328224259550079028422223109740610813"],["10685970786187449151573736794125627711842930862095997693222921829278873995933","26887222035779680639072626545360635460436115846237994364444390708432996557802"],["4136753634155321585053712529677917898102559931010741192619794409551040874798","21278167912655167411416056372278635489635946091570741389298329521972831531023"],["501573131701132528662919488807718828630710798524535250027211491533634957656","9913488477193987560397597746852088124384361745864032405187330871907885242584"],["17273703883569184738328238818301028578805367027146110744463508466227957500667","5148051485844510557006601639233151719030502508040245327818859505361323505239"],["22817329294899846887145061969730679799262620682154612517506789521669422168032","16281628166431134996087522801907883954008288859525558642342806421270934329478"],["14030739882527628222813050095609667465469286421783127003956888934319855861560","21819867116931915556561027073223514237440452225691850546356427727864585693187"],["17573230397644731568020354932571703882444794713392960816678525854980268559463","14613454979349118928140909900424077755537554882744932562963709879454855283402"],["1161591181797003972647375702872771694454805463408806392323169906210655567203","4338001242724008306537382811453855046386797933742681578087260780555941832061"],["16029276076219220289575040684040309636817128508387052004990852260571187683509","24967137986342475822475030432806741892304381398949253360157726745256288490892"],["4271064304479867568356854501053278949290832745907626842602294583249009865976","564696365700938135788312661215873089451284349827817613202515266147575124244"],["24957362596957660573402495435408058813291409911948253210080574566538698919796","27371059456748052804207602888542286695677155902793336335093770284121989371504"],["3402000496430414147590174868236590306300442396866342904164828855480369261224","8003722991404976075883589612039988466455120384338308363133469760279501435827"],["28493325584363201833821722325120507039426211337785127777869078588438655665559","19208627096138215147665662014730889048483787286722335643489758567345361343441"],["15436895455132766398329344328469827885894956236449344796345049397036133354081","26555349212249476012503235308075241951468153254911714743063644226803029933838"],["5262508898837830202354646790728651666924100439045523079907823265088842833534","22955208658947792276221480131739378130520097899290324966306605311860437784191"],["20828641321629268487807558484114139325147359256240869629982220923388430295238","27893662025029525829977905138707014980508450239580781236318220134616345560248"],["11524120227503580569758102370604415490196497968265579380141521871452846809982","14938208105759039902009359107133288971206390927688647284485801435771711574474"],["19086350576745414046270499368061679354719887300418247984247426935129428159080","15929770597139419650632788024110580823597307494023866717551889429776137451258"],["12314917727788167627562582064423181191643005309462735415725338598364404716559","368574882331213936451364224665732327045140000296521284357903924862412237126"],["21678231258453793936272489248932188731830779008544201820106612446400634568928","5398926898176345915393096432667539133673502525985608584913608183278763172335"],["14455831733196724676508891732912507769933450127075309742814937609231775193180","5766793633638092614147744306756699171076668572887156761140941774591168230596"],["7668858507513650949754573853839680395825746742001176223399798197028709211761","20994495154582915354063349529789466272302674372066626413531911110424728574875"],["25364281133008577686267018763483078319156358436914227882645727850648565025143","19765804451551409427940374188234271118395561061998649980101475547845506811417"],["22771059958836389142713245045074952132508587364041747158970752665462810397812","13820801294899657012159162458921272166589482259517695542279761612310387828896"],["27443502421061626981552169529814408069858798580172993686364863711018580014194","21059323710063660579740835579883453333616750670927000606963662773753943821343"],["7220244474491649515696596728764246545794099572662915603967359525490510471543","20521271446433267945337963148592297307537538407477369653968818553020098551308"],["21785838432027856891766760307537823984565909673050409385606380424243176952859","28215536344596740243594489743188433551657024587522454488101485624161978733527"],["20654725495079926488547231980565174807321500816431601506965162406669646724621","24466010085491035274537645237854932469002523889115004061734093685753229454155"],["286233621962677114696093084199663945424938096679899784491863041093528261275","2847306186387280417036484373638629787647299981552790062453218692234402704637"],["399757407934453945711792534446765617372105525384790718651060395191673001214","13948065497896767832597854749149434729661938751080418658565169295694180004690"],["20992793219155629528233657451935703426004723372888630919368298226210027538917","20111530252739161351694913194708946926767854382261946250085493674074633427202"],["24309103819722242261519604771580479395287494345648001087741585535901515540571","14999938157901229843836960567128844887117313770517158262701289035014176979660"],["28296477000913757643180357191959279159923810969089637403900943250288827980324","18368443689906134431470810681298372271119989160822182304542364527012772607730"],["23556190656756543705074123214343909122449840407609404937718437665086035227038","27383803720937823467989913518032752557154751040952171120631321894090719802383"],["8122588798044440468525425131055606308989159116183424478512497940331695451738","23834340481129574166522647497244687487127539611596584201272212725054031914016"],["6546764017866108303519379057711438114442663171861141131595505577127179272011","5851444138230212039177951394353117251628221509877395627403480421716054252657"],["26901191712027585855725743114354497978458607074529749443884537774822160328388","22719615307838805277658795089845634375586463475638270339619772971039173083970"],["10102644739488784465104424160552203960252448828184610761978760637005154037505","11687019960458125298314914760526835202154654176696319017872166549159866836962"],["267474985527497594603923149338309206866685348673406785097628575093780469299","7806319101855921476538470878335952053167606960881259297391639666599472239298"],["25181658222269505378560711717113244373849924164568068920385801083788615605381","21172588932651628390820663171372775395172801532135608805099209558563792653339"],["27877307667956797314231885555255024570281587188252642688676088986056121616012","275707860634243533492270361018884725154314899518113675482882270337442100902"],["896019005955304934440060030700498124414806521057701215254166033743869873613","8368372321866563228212773110257951424248695919696777984840082182154381423726"],["25856857749969112000030813706712120312765967286276609889652009514747657525429","7404749384450215379610893689556336354587623139535199998719493460503406295054"],["25911088329823512915208059192813399583563694007492419143826618091155853323139","13633809477759289117151986993165706236001056889405427627788824203187337577441"],["3212264673395816416990836965615435428742816241716587825151205282792375117763","17565969286005501208341194860566872762353086239094455463250348292033608356037"],["20099591934571184835687402557094742091778505274218393435430277144020918244807","25704036120054276900163418615173149845283985708221137728318593544967873881057"],["23932670972497327208567836245356268686493015794570442859068617244369768515631","15490420618432669857971190776369999332087181016419827711255095827497389837330"],["26048230226048299194296903125534310000145607895809609596471519665212750245215","23098142451011887856808415926530246081159256327820966861750576199770656868474"],["23750021060790360625572109386225136367852133169820211889407940056472013737471","5252268127175480567299656688990281785383816134267656952202647115777568497113"],["12294635577106556561990695816774226297125943143143271636548111175855314984425","17002796986078623124428910027945904205088997650411490094306312688997561757763"],["11855109615064158931441333875866289442313115175714200147385200278424743626914","15013924503370743135462014727638463310354837391723419692233171890033367515990"],["14188789603517614233895297538242345953976402038155912182288618314111318797926","17701744491150094088293558569589364607292028091500863374895253246322644048829"],["22373995222575424675579586285772395615550655836868104761875461023560858471131","12017430030357401903050241633454999420531475273643443379421851086860847461623"],["15014648096210149477810048532820817528603941542487821060942958720951166016715","14556417922212439983927629395627466192582455431146666646194791692538767119624"],["8422417606379138442376163900386126070662308009003869390103473962480060462467","20499805465886085979613295381332303583212088165252776939050499659760502812717"],["3073889263179001548157442203017150723386105797433771517189180301799174073102","26193060286928000287475586067228619480723700127249999380000046387630955414928"],["2342658754897894909650159541091522202511662515552709904801901679795759469645","17478898532564892752641739291562795472373117733910945818670369942882346054732"],["10307723329101703580010645678026384383036016333879003328199162523102255242362","5125333909912175110656904425334089032153142981792307632761200126459313895241"],["8244258271550251413618131151468813987970654598249744469548727370611052898809","4050999414524418701427291653048602231828508799584770959448753637717036898548"],["22625261625907675157829408075377915242894701815242734057405678659987878657798","27647378808457071319508461791427936824248611052363026698128897272233494452344"],["18196763615580945655511632563629088714520915815386823738214761577621938995406","22900792578447549948782560661055279214614096745282265669298108646991520066650"],["23943091001000503129508914771170585053559594279477090097828950338197592888764","25601644846828655207855593059377387422245431466843762163686092152135363242664"],["16954107955506459080432335307764654501355845824403563932383819125289039098154","9450442492858584767334130481572709712524369277918847986537129981512371794953"],["23821393094964410334416203646423063294042386548012906662254499618630876830288","22444662730799648581675865733329810708412736223281114607633056278163089034585"],["12656399407878988366304888383079254861487561490375650842047360456721749957982","11336054593682672697552944984986412637310076649240751070497306283892063298973"],["20332570887207765629147183281996747472045699372688408342622397247632781363361","6583480197709974101413922021027388230481496592556681335224053212597676088913"],["6106694404688352183764057673573275302414542599199734165236893709098493040688","7442391396730402309967773920434196372690091623508479927645870421818469432476"],["26066751434636246656925665451483977574435245028383229828217307972045635886188","2873653316704186814101914518264048798507293995966849785917805678511768212033"],["323253258054036818881593761638569021386534458589524863457310865783768657204","27064587802428058494721289538861776160520698359524045514492259331018149118922"],["16151443812018677625518662481385689023056692408229288935714565981978398096874","18210855863476031738451633297185929528601786524195367754491222265237053313128"],["4479743943312088713064879007257357073327422548625637912482438359953492917369","92581686380279023744432105979181375034803207305360491728623945200383720045"],["8292161583865933041908425981587987890625659073118085701720751362680384456503","15637775167616943730565516021878150956909164827370130006971130326762002577658"],["13923035552728425405948254953923768590970253136840412607043629687353111749488","25241803635149146674334698452016276752238132389706773723657398653664582790782"],["8000516913604779618224457349137817946933152756895451850969527832256604486785","13276135531562187282212202507581339129735900962689901905216006164399958705411"],["11072181899901983528836979359427146910367201686834781044246856816615880358703","3117983879119038926318470885937486240295468766674780847901739570752014981990"],["13489512916968383062694057291180170674478166232483257653109494720003950912846","3316274165294291530412469366511995120405278254513945039445372543521574487582"],["25835742118654504064624121493928954313823150854671668091477923697340458942346","20530619414394833860101851927155440120100764537371001763949454047227255560551"],["16991211133528516023355109385728007081759809980584673026510088991660360729236","5191077605486732502184707369006353318700257385304685008101251793799247422786"],["21267529280923855448621148576069604134111436486369682679155086879004378531708","17092915224316195228292712375651335177510986588880938845440933969103426173220"],["916145961371587762050305654660065106203873428096952638089640878640183048072","13562274231067472168599724225306967973019512446972241267727678479365436034158"],["10128915059442870057839455672129712216193262491517431798677280213595021942192","21108408123968870450960460273463212267861029228553508058395325109841070081914"],["6660859624950068067233661026894944401156454547839624186553928184313450876211","13941496541265244388870255547616550485144124411722973153677334504014999238973"],["22880783846595027543235795031788471873648069811585170214956925808711003539741","18244044215489220511196315508296181794315263639459239876289755261490633953168"],["1162971131480466477242740546128376989509327335812302144501021267354941135604","10342431212565721608110983740741935242637692249832210801322222008599636613737"],["12028125862410440226650626974767301367901574964040373928731261837192873621649","8785638150093166964098943014042852533712195070951614947363691148449531299161"],["27102692970234543771259363464045589643771873444502033546102424720402452548807","4073143714943699752797675018676474756202605528278925837102578849899516221263"],["4389204094039023676928792549263769131162312834573282990700621336237168054684","13044667262330668269089803821877750489864144510434699110129946587898465966588"],["7882943981941762283774416083573144160853180013021562786292412315935280619151","3061478771777178707906764281943553418835057995501469200091657943912814283152"],["28587555862408736548476067599718997522390706650757263041322070118652621205860","26311364437836136510080152472516259658822808343004192849749557799578028726725"],["13132704088880323059640156748435275371342559396629512667466132161918906515976","5546345178072282784627091118582876181394269968345749118861901325258818826111"],["23569469077721969687067801392546152724603774199643312105535480168944843531349","1884659249988374515585754362522313714642186783512191416797871702006849452292"],["16400004935869008747020417207051054404495739543835057007159512223884157577928","18221579591927964529750305603871817551760019034860894750435164824153637263976"],["11532080366148093471104309551090588655184400809574779618978291555986350935876","14126139094850050298747788975619607808582557649931003746236602142589157787792"],["14341457047206291027611864409277549201658044711351581595756266446116913943662","430578393135642632752073191699199970905162451215963249341541813581760620097"],["16321794997790513984721814635307778160490009515062388177487237381618813767318","17968300362900209497199809915643302217452544375715734802438559817224524879448"],["10064917213084292871248626072224340585749366802069340200170662951193098128156","21976449919738925154640410175643442178260834907586871454986231878180212707887"],["1074746071954812694593918062140077770803315468743852566456048087285697220954","21131514449392575357492272599918790570925032427678685507101892748896085433242"],["26627829153763511968125936171475836655594773177363492198566286812715583828282","21357017871681151708914803543523445537128183059953421012610470473896943401334"],["10277762003321902824098251560532675259192233591942472127492840820457964174368","9365051080985978880131077213082206061387595255899661860497207556533725126608"],["11907672531743480865761910453719064728585490385209367201000329381398875359156","6947383423430276009244958217910554866957305573271931575282959525675361758495"],["5222068295055918227961700707782882538421404714412026434041709633664254337439","17839839475750146234952830215935558116247235745277470491275489252827176750177"],["26785828712370525447413367809780856490410852130114537210657071632850593846736","470198958982495079193065657895752082277551745134531708359429362519669266795"],["27944298939972032894488363981248136049166215674541070135432634341414823365733","9628936368629429725225756155020114468529848013337033314472872595315127393053"],["28654913645224879770885883094255019225952487085523607184692921787223123968825","11721333301904437662124209899096616210372624883201032922172229857711240153810"],["24645724976825434170651648700133938707583956093050376149645459390769189150341","523591119504576095553400478940080462688044703067041762964012888523913215869"],["23244301025283358860607687662857078841291033089258046905678762478536065468473","1215407880518697514691232690266873413848604233133599213953528526602112502206"],["28162973700859694067598349450355300771672439651831706428062191942293304019066","5305937729401645602911534704210118969434281034523003456052670212282737312105"],["22120379939238412289989771195780205168629290438355427269057315030918459676056","24159229595371395273996577228843632209713056344983655495668589715652180789964"],["21947475852681994368534117815707007517668784770684944332429972410354627817275","5732481587398438757498220188015882294706310707013484120683140978831924856862"],["16115408526427464765750655983554184453562615668976565731250998177395589804899","21972915560556032474164469672840185997633482566869701032446310754971778397683"],["1280543115425034487551299695173021927887970245618155046784459039941346000093","3091424330753081696751319750048325483290155236947878724411312713787086894225"],["8037396452132519770461439837194819456069140195058221929410055946964702646724","8677066060449731566415305711460495374972340929594448040162777912495061564207"],["24522227133581378373731169830081577190277889273016409549189441838902228949049","20192699893915582801383470863278443299870922993411086074541345313315028937003"],["12169795487139549070179006851710624400280857932636730563186432625381505604146","22875931671026418144440245568308734944570623720333588409267010364216153488065"],["18462637523754043255526682225996060433780266426973674064259821347254480621265","6770581150443224746166256526838669932998558249426130293994730822043288749637"],["13114714248678849909575472180963579430272054585554904763047611091907198689715","17854300889252135920786896906918616545881268783783683845277601634792719756758"],["7018860727133281185276173430196684532626616903885557721404741021728392578329","1781352327301401009458780824807871831146095480093581991294964229721942092919"],["21345582994455772353901988459033512141160201764878268457245769362462610767747","6195650297481919201819429669547179854995611052763699845563514335327134518324"],["15302314480220713980235720547238173184942184182359546891675089713765369617130","5967205683685981264522558529919198384128459938432684899804565279103924435315"],["5777338408758596791426846131617097892801887313999090871167970639595040154562","14695706463782058229950877636175117540940395739167685817676006686517704448009"],["23076270345217262869965143462194611912984426063622045792033169145695950077944","18874388442429299367741333200250182260095466803145351080239471341022757009997"],["5685403180327485682383346052556970644671871050444155335271806226390700448637","17519719475086186489187458126299539832590766232098403278780371938019604530722"],["2792668025047790954616715386895290395300753747777528667306089377224984091936","26617485177654170499968507755923511248476381522285893185493888449580818576241"],["3301092903528290570272774095970061323126970182512381862361738163260281506797","16820621455938325786412922515624355767464731691414843913251890802594022519532"],["16979464620234599232448984882895115338804397442486297951227789788094683877615","6775737794659617477370135055249590440564419224584488843144276244018614186878"],["24363412556240710905431823866438047749569597384066598041929228920694729112069","11570025649208728979893696768826380706285646846576695730021621186408888486448"],["1471291371715536870912534747401218342109907907130029137055172430867820946527","12907381240929981797827268656009865705495581643678202728916249195400831594860"],["28183657883842213543690519113413873683302961422803084075781985736267699801844","10007657687918916430384225355186587716657570919716967289548564120815521453158"],["16406873280315524087025567850013309859882765707734822864488790326031206198552","20923586786529818426915921884711109306782766376433755015385278650669780768411"],["11157185331456655797050779127913285880414253787562786206301129344855494817482","2572286820105102470374126354709703800882099561140688302004975016647339184578"],["3713864687782152161510116838896548352123630504228116868135229792733747105279","4323866557100183735960601113275877372656257924257065539380381614929714136115"],["10172503058473181973145790962431575708855709133610837569464162407012402338451","25879670213993970611277869052446900095486118935513432480298078782693040663147"],["2610073759846816187961554178570708677136327357485889111827681032076631449945","3702616537965021539966876433343198713927092033050717838216559214333965689680"],["5798952508151892357679892940611300644272308878906617245838247051556208818638","856345886651788611360075307664852354185717679286426447218777345933544550139"],["7950307854881360517730189134362404100915253699299785098953203020216930177519","9356164383595564807215960875889857732861640225046017988112780586138953387986"],["19161406566640945345948587871792090622455411124939642811159848751930348169855","18653248266264107786485749215265822726631201406297993502617947262128768410247"],["28320629579146642715028848013095253812944950777804136866508547900324599660269","9810342005204230862611211368193426858564123636380007287778197799711744600472"],["12136888407891680601425993989628112160239543099303795373464468556236585716419","23659086572801179844151278939432577881408659462566077496414467661135880484507"],["24535340380673860676624217197677736820715260060084110805333008584403665067519","9502166488029378143132897153789907307098088905250489730485702459910524990526"],["2527339629775084365993762117411230199721470185294960460672103901781525031702","22823593085418934889475887530779667992612569513676209559386667190387492298340"],["23692411570587625024807252592545351134045429917662913412465933591108222006326","19020363555968595770493961447008658351933055017481269317930073859261187228624"],["7169213373458607838955319125772960777696571699323328941797434119855402838132","2288407080938693932173187538141805002149331297614982876163480018301568687293"],["15799609460334145309475627746576676742565575570977760118596378608903598653078","22166741248586890563006737714542137728363164603299245529673615343584778213738"],["17775220794184460829569596400207316216966406270408855204562229748477324991910","10166495248480637981657382350574887614728926060142973066027472612437478520596"],["28209859033198628976484661003332953609691890112774739640664399079007237689337","18404660608147625279265572701070469429274642580396706874227722818669594195299"],["24538986178368889635461192785966622366583512719251894070110677973219452962991","14775945674447990644136901142727538472944490302967512426488424618397501598810"],["28266536826365986285245211590410893518026726616944116245679159799592612947580","20467794380417121188123549104570613803979538753131457483405428546212836062230"],["19485806310465092421058052904378972099338807004789084055877727169002738950785","28764716838861834487882513282330399740133451097635515912642909581448492606057"],["8765928432544991062116367702457044510028390201607978860955429426653912720750","14814241561393771072706172174646182845173810773151715754237639957345699205805"],["16489465447748154892356395468695691309955342650739836923897772917233082266306","12183293178159770441969043874246357497597640224706746874761076401994896976035"],["3746889398757307354711145741783102290307882656929769999699925605780816712609","19750856248415190168096934294743000588201258601509044195579861988434510542876"],["10311860541681754282517371845006005444622318946811747945170704795668173894769","25506265076232879224858594910766574254460568753979940858189145539450619440179"],["15630084601434351751772334938545220187577700318106053223523170440924695931643","3445646740568223322302729343410909422301305446055192946009952393187902483023"],["1329983532109732231978375660415826938983571774889774499422813358309150583140","9738162279086408860896175648805965074212712044641313791546226212065014028532"],["3097492609417999085859555657169915560260127556074433820867632214695238490627","27005301590732331103068670368854167773954156583948208703901808604246429551587"],["20654215597033458474298048287626215613797527450313888188628091463527805972930","5770556131125652404100374215066516783109317902260844462603208816340188410300"],["10732850620174005527140685825271025073045629752372043339789290816296953402357","1409786871080710322208664284007333388037373196243014940896045152375687904974"],["22049162476927280079345363211096105794665413709458309817993624265290536261191","13970861061851926448686409043779039753721122968725580976657178182806656137030"],["15422855130491861187209444497874733417772864416532298934846996722113953208921","14917459379321643308230223561556986990692710467147118899812573827834227572386"],["19190834740164417159020508893537770122525195026919024178986074322993520993979","13195434681767900518398148784179194002729136655406990732581839650394805593763"],["2423417407019956988494049898379197205146231855335430476404208714875813407759","17814793350569425559925744019917249450479599075371256899812934066407419186010"],["20243553282341632166153579490366203391863553561904110576855300547371489883209","12756351702052184060842854375309848857086924522887388081783893265832138879704"],["1797756851468404600066498803981945187770359487156843568512913764422618141688","9334095010206593584118968566740208170121888774278052356378885593317600242471"],["20957595587784373901206191028324125338515930742029926715394650902184115687694","26734460874921705844399708912349348262649836453115514310541225938651009436659"],["17345267382216613436783517887318394956335856578903509049208386017945665528613","28248095510301938739515035965255318176105209755309392502147128192157027694969"],["26732163678525255184939619426782773121324358453881283123577859302465713069032","691362108821639896043007935034490052546388351764093023492781131530121337514"],["7936917658391295383925064123499551420929362317674959656838915232697985624222","956603615179647299291783279776313735129062668549185251692859795117511967577"],["20602867706811421148678761399794990786635494488226530759875417613759208354211","3198420690207428935767208122027630852338183315577313769067624440764754530610"],["17557856687841150637965551861364204711036566969276530346524221352519342353579","24070774852715023322247097355731817255460295376916953983568995831214322317853"],["2964222234017435588817084450163547855952467491402049364527416438359345299669","14665307252062417772387090164971430351416503102173926538747130421151490127280"],["13952879708790095418769920310074584617810348589641043696463835768639815249872","7738132099834656306469480660679695151560764265209858024557272802334234642865"],["14838756791699894264592058203000268147893430250687506212310588402332655971032","27516954651529564564679596487572851094767337139291635233245215266645721849822"],["515836251814474135622095793509213808828886887010555924819695231113271433629","14959503230829913002518261068175670623554575709213378234123400695253765741437"],["14011263169711112228552247563227911785977182482021695835195598156804392144361","27321318987377708429246130040504936708994728218931490336253509086996050448729"],["5224036651515020041071602500167298626019790534961986038976829982485451508776","6899259209178648514603940948431667259624703650026874466666200041076065845981"],["10854207904255566549256825073833738952290164031399953533958571256336371119247","8202277946373726987856637237209656399047593126426889061085201667769359077810"],["11610688122493618344128452889919559429194008921400297848922753842540749484302","19552093980711588916457544648810544371067295363995954112192073148798586110219"],["10912201248222192025773027477258418786769911990240740475346089038465808606646","14291443731826660637236951747029454600439517598076483105567723101473159425288"],["15882337563333389182073073922585127492050342278774946386411243336957378134630","23593321905869955450034307969375072344603989449245471506302632789506580953564"],["7333104406060581484860135142865289068695352636912119494686173658371588404085","12189744019479189893833200846059068196722656612838547582487695638270356981963"],["27092031119328450649735194074216930692267204068406544452747223109806908812274","2016648622276431228276653975127663335399732051228058300745448229907918670630"],["10298755126621009185066033416731658008093185063381365780672734476897498240912","19129295570817275402616718470098734637531408741813303016676324907805307446425"],["13432582500790452037736464240116568715887083205377067022274248277383316657308","6527147337006976901886235800432291284042193817010742908261853923224722874129"],["12722598106850540220892564630973581055939369444396360326910897851725125909964","2100566034191448659491711191277066883585062384697344777311339940669028475536"],["20888315702194770313266040594269869427877891723322557536548270484691382508680","27837927338895990427725080750224775106183541294663695103641482685192673222207"],["7796410228893066772931766542781483956008070567524559230321847297232064841708","11740177648166409195882436137597869073179127210784542270049139515405006504826"],["8992127544203110187118851640708761342439921874751403455143392280701585237707","3105975215550488232904482611650402094729984710844389899084552324992789227400"],["23709707729844090946051582056255967744965188760524864885559860615191833761436","12798410973275060249165720663394872540533454117598615044521936842613982203580"],["18259711337147235704298082305420062877234384857868329382668659471859122649953","14140635542123796189009544902000774266615680664549530513765828060419346946654"],["12152385139272281890363004274868634328112694237673945864454486558994327319612","28925518708263840422102553783625926897416896604102479811654957555066576595124"],["14671039682714902056713557304675151584719007250044732305585096045179058628637","7673146452928064140731819259438796101931737646779831236306199666167459305438"],["21746784713769161926226695761096147438340660475215527129996480003428223648422","6019154886722759060948406186775515662639293673598331306298430448590395277696"],["11626919169535526013366291343056897111197288898644329192326146524118565918217","14920630658357870925205016395740304542736149546366220842381973699142330263289"],["12645948405429205723066644567935183697350423984338549220574395028739258526001","10636063285302564174342437390277627291072598790396992187953166877927004826624"],["20593834619469860295013606288788343555599958270394275205809765366763461914910","24900815471151095675324823442341274337056360406447833224146901306539066062664"],["1982676336803236780304077397698330044974198146383515893167969965768555259348","21472709365576410928614068389427553876992841411669605330137357498739050177603"],["28206243416452571085956724536349142097262467980690874614277750563802540255299","25987528068456174137221597279590225849020005112794447722487989341781136523586"],["12623054906054715513830421327824616977984154091495199488173363124852204239942","12797833612004856651922424558504956745066249315315454613547127405568129132652"],["4176112976024240071164170534568759607634061641564703022271490377939937301697","16076313173691973453250543898361969313329967903525905398247552093624461063404"],["17751605118288020806094614941430311302155947986902094254325138668362357141317","10156406894125365545813221782009293305467355039289312899951197915269498417577"],["5836005833630708537645654261188602556623570474568229338859829193162136563813","18835493815182111633294834019112895004700663102149806397235465203199533053263"],["16125963732217592492787400590538788397586538976876182105440795369493958668202","6671175919117209919728019207048545519906636584844160924457112426953190059770"],["23472462065181103217392822425840137344156085971510900680041111542502332892702","4952793850142811079680575512454950567364743202958788113474035054321894808670"],["11448161216323689546891762032012978440551484345789899819689734294987826567901","7073971660204080311242111024546693001093642790937870079771402803371467882968"],["7899341930486833340743099687539915568241830578768116180323487838795564501300","9955854265240955976599624793198088200115021690439310602787611947436478090610"],["25992006256295532189182938536711503831697145426893582637094365767948462171964","8383110064963626554922344102077767349836312679167116637533984428130544870727"],["24229034921931724387777113048964740551222049710399161775549728393654316964626","23790521399747679422990688391121960463181953345284764589948367980126461937880"],["5604644350423412849776306147761812048407718083923111306591417274146741672245","11209468271144644605907496624616248126198162521406511312532677679209786939349"],["2485176053150567759527653792867552165197091119576021748253981222966298342493","9639424481709291300288923535441528820745082824711105073314266992515652479778"],["6824873791854231332882211757541659586521886570478200055870661787128249063994","24350065791719520678317353414398192837016104234630018043487837930382083848806"],["17579964930909842022726998161342920943691695530362296202540098793081805671932","3376146110599494941785613345526821558475704716791366949153653066747277221399"],["17604807761025658694181822926988965951021565985583286468264135771657031240294","16626911962790005223000982225760381534551830906320342358974794787157556814900"],["8567286250323981293525642914846745713949475557650253612418106048755525918110","25050797159356525261952381900365604505537334132674934177002471524532699775461"],["27393398444537195392583243524343745520019145560465805586612625769391772206237","1682100082951630304782436094182748334061261363163949401791901989234203540273"],["21403022616687976315535429876217165670488630536746973654935475879339066290537","19887178498355469901998967724629830414121231347583415138301992905964197513800"],["21548701302860243659052880430769473201561081510824385615934798703377335017309","4513515298423505917123111712266897901341338194267514430673266267231375031081"],["14389275567104109874173568522402631581282765292395598892670973027706923572926","2219621646299693650016386499080525549439919469783545117229619523414775153699"],["9321118757777996470706350521164285209998572956522634226219522479556375236743","19775453353569751690489113792625083755404688626466974727452912086790745167355"],["6046569666372355469743649789827908931129548466927843560184084722692679711439","21387545173674996211836992655626383174577364703559083903662271028454034756410"],["15236503276745209573812951582417320160466361304713683952252798927213968230901","28578625010238931628182182241283084667241618484163615277919906514516932073212"],["13479213031393818119126509149893455521711039529012244310769780666730688436216","7688572523769789793700258546804709930276649909719247924914360845050108703207"],["8434501991518489837154744766943446372119380622397791775041015933673582403759","19478231972205561651843746427824905117448863362688434350751611523892763683254"],["2240001853983804586753623487784691015259502128958692711988997287360924380523","2486869460314179866363214018579614091211486469230654347125036873454606325460"],["25183246817259487484623430798002800891070767590520662681096240977806936699909","21456696446264482333718919608616510008387529931589878947945837175057112403225"],["14926920197106831835152987387711855516750641385263234149356674162214216378373","1963332823505936441155577512063824327690937298570947838950735163557667726587"],["17429575928482936866859977998840486254295459574415337220292247828332545432601","10572113401707696868229082345115571887656363835474485409730180971373036225195"],["10889735893493282081338221057899027321103180470068080101619653512184919083374","11375124936002623197801628039753827247530860910251499226186330941600996985070"],["12012184847393398408026757410792232971023099510729512420401904405610955848296","19786840613774541014429405773140379471069489200897474397107716122072228424650"],["20108898965612192578081092093877016424584409850898358293726894362871481727088","14626293098280423195155922143350325300268478484002665745726548868257666133603"],["23190988664149338890445409732399552789181264183242708682904619658012558422281","15855278986108813439561029774246706269537396254177486703543515723235402325954"],["24554591469405386503025336379114177053959322026976105511244543013640049167448","16660552542659280883357679547037925819123335209837344056822483754641627987274"],["2690936668182818086862665119332749045165512498513789291699909165350370143496","14843307901877410925121732618478723472391948703426724143425713684998740434597"],["21291122129426076085341023613741237690218637312615770553741397258745275284843","15235294008900958871357553866839767416198191434276248679230785114969705629146"],["23577634276117089112475309446877030711735986342573071110859937733829966435874","22274094633557563821366930936684282060347533936407242779589039648667604274726"],["23110606086232798944041076351019528489758247060523925014099016043340762645368","26995398932870465380212564158748224271388810558369886745246771030241945049957"],["15418934204688558227072561930208027337627688866687635612301664559536125987752","4318482533227501305751520654753369186576989864909626327341089580163209825880"],["3282139131993042313822819364690749422056323396731955859143891056854683535000","3126155680536042575258019426862417465159615656046588823030677365529527790997"],["17942718640772962743222564021900299845702274217315652734379126147615297293266","28110534283964727090535933789414102380528919703220876459708191280074837525934"],["10258812329731999822048748363938574250960478060473424863296457884644257989561","16992096657717650213304947978495307353273759771955907755290117993705842232451"],["2528708176188374047683914609605360497518672521900218565008616838179214868344","6730623149697882739825169760183448669672377299982199749514738632688221966456"],["199054639488315766844607437215108209048220266560950247953275585616411500562","26697026704600413865691927043990598215375385337269463157526936431427837961118"],["1594214667622275899456774112446285032235980737247417000718677209712142633004","7651027553672417558436916493084289009721850968779227864717872611826155267369"],["16929039797453322124166461560568714912387400538782596641546585802687251276572","28232246433346237179865300331645841613295045615318128407182493164562806290753"],["26846095520830755908137714049906469264097819375652892745075906857298942876398","17868693282046006080282236216637851367985053008484046434699457769426899496949"],["5975544753797409357387793989271499566034193302455039429901306461030399209882","12230474594039464543614999538137842594273165010252031312697899769705613818074"],["28719409432112551043543969944339698754398507693557827886989388681058536790138","7283121959574763828183244781941074740886480206733414491831756077794205500791"],["2129820917065065486844385798653152683953165948004230702403309691408516904674","4455411493071210897667368726665003615458137454039025434589775618584675366162"],["12010629562542857141460411989744945815545882014093867124466675340303988032763","10323806625824136827374499522403769838323190782394125309603457934588277437049"],["19178145438622898329301552705447211192728930498325789590942799290166114712320","10405641709188704907843683113333149991080277150137003790679494485261621625014"],["10406019015714475031006954474193683846371726196941709691746173592703038018095","17206150118014936553633472710908123843184270748762600938710729383114112110240"],["12259720245470091765866051189129812100785094391361074742505256774344011758515","26730304983829264672308651204311609491524402832995032769153604531774307193046"],["27209006006767765018465021158307274522688354639777741117621486968245545764687","28033739091792744727815854411337814902129167953496773051338231422585349463939"],["16977501479355973018617775857120099998244534630662888762360163874624804458333","6341457793106933577166401120479788752538889549823597088259740322942212478559"],["21859946265050155490376005403918808072993755578802711164665035948265779219830","28661463336401163661221541594874548159603120568947993389456941692558449602730"],["18983399736569355749811046222993763809003704330469100177550689442276496335674","23779801752519337813608613331028240231055615570229162758778537533234586799155"],["1595846178778604594933821265120688958618330534915215111696684352284970871853","24163491290434704329678525327848788931451021223134383079994528079115318476910"],["19630680134186732758293112619443297335563997183199202461090657179764487229162","11445848441533299826731082435366328496352226824723791176168884127314705846814"],["1487435138727944242035155195725054439863257103308742074502174379032758198960","13976706900776923100973656921692225591336381012618733623191545351347344648272"],["20391002807716680744529871608974740716620298788678533630383975669203902158732","23087876939779471353811102291564876504145601743227968769873082962207081680872"],["28084606087418074591982462978633574204129282540281470415844182646400954895735","5291646895994401737991568592951370636974869424296856827965482694664569337190"],["14719178500517666530247494941718397853824439884920387326668530543145690939059","17879305530175869082981059041527881173328145468747086876387576724316794778573"],["2117489865577688029742301408938597634223267136731389466237373858791295497007","10926364236900313602756455553010069984406245494521416281355693642399795374846"],["213349082139705409290732411562644109631446948767953116471275061736679442492","23118986500353237270373787419129542251134223138982514289664339973265248557517"],["28266547697378211181183958127942529735923154820807477266810943557981566501804","257957891512410040884159073819767128091586539893303256126366782038123978380"],["5498713837226839979224569580818449637907443160063560679788757887125381775756","16171587467176740019833521987341881753023589356595017970661340818664907486777"],["25134880828260721245817785678187202278984259850067876204598717132522578910937","17193632537812985607259093615413026039779072022861509701128787745918065455356"],["25344199969111895650303237591603413905266750218223155485778505688687530988141","21220846690151082226014527289654472643098260789163450409119638845630230131604"],["18490209693374938737473236861121302706792641469338925506031381208172321230246","12729032086379494452393172750339819151505286383706716437101380295797548076677"],["19415270873079774771814799040526952784989406112441745260540934278271316081490","21931381166745177257359687189271154854949970110630163677736098266320921330997"],["6387996046233145574469493117435299209064871627349468821515535063222620835789","27339944577726138997200370337655953674723587003782511778970079099118580631314"],["7395915520150417596344840131995894267033084192509791500132607824796790632924","25273456166159787881887142125204235097558668778079064122349656081059098979391"],["9209771334750995029671072218579322122133652264277916704076936095421493608508","20635009583587971039088838031619731003363880109716414493981718331947473863012"],["7272976839844346312477944596056900604397482608878941353524716744761337679962","27796388700974875065023793141124212600887287506646966927780311852242654718180"],["27866576254238040874975982162300712253980909541677745696949583853067849522042","15432827712097574337524565793562764318948493301565667865217488101520449692993"],["2869587871859435024643737443214179323093824480734094826237070972498558733244","2910204856333438604833325023863597423095537249370385026357967619173832310693"],["22511263014027756112230377839211256266633139079124023574075270164154052899431","12549719106080639227017005789479914927175631433840486942041118394780020319755"],["16125919579363381677405244300404475214185492688078147097873198442734702435379","26915020705208563551047504296117596475941348659751973625400745727285707522734"],["22324192225254931556892254798738104921352074364691791311379944293794903338218","23423142757607208855748719386110238657542693859675612677611937790240112674462"],["24523209098884109904905889485754786177165801705022610172872245688637656119197","8898727715109131478359681996502920659665101633119143260750636713432883671050"],["11876047004629529855687799137369616167347527882947816140459445160810889365854","22982672149990156695580677402913879443094910696722896952259234331749039360504"],["2625979437530146627466840281921398387681183851440020820650620174735302248538","13237039207065372502094115423351504101235229785635609133504028249044592606393"],["10125677278562188752091666542432261264984174876953372860303304898266185188160","17455974304998404830697147523897470395706340031444693886862303705702331151724"],["6775738861715237091763959691531239961016216676226907659139904402613385022985","2310385574100630698577028228684635860052050033807925191644569624403922538189"],["5262930945558285503730004338240896959496818569948818905458214550257178036388","17151336988755580770675521719181566602344351391762636670752214260088640793966"],["14625543788741747956511413459881893683264271699898696699193998270732748249612","7413904946718014683142490298195230203418362965191197939447584230767970854703"],["17632881049309981001035493294467408461031464619515532831398567760556919151683","233245031042600845274206676464101776991349196406200676579393696723856046748"],["2559183409308306434991041780905303936331930844852119343990980654116180794833","8936296787194941451432224994710030868572625121892742484484531990151319941064"],["27491843620909040264201515871926906400528948260972050061829784264902825366758","13169602752011070920666185207052961475183958608002543358137708645019654699963"],["21914163602747294713927408179387801865912515935425582119973252120388893563453","20112329959272335324199109936466168088280448489589873304068119806949438757162"],["27678462486204122970177586403765502852447096370784213622140485500262587334421","5945235467949741564561819295232865027045010778848998989223157783825553829867"],["12922948441105729533338725992463849792521462959195699356450077092622633021725","3589475097076757048479153536731973144162813944652644779199586352609004006200"],["20432805199929733087057375667572997510988396331263853047807888671097935083242","9294850049947686875846697379514433565765793010483105095715282190571428100575"],["90997688609117933965198600225367624096579389274385573792562382251073080092","17239816678654495049659547504603857088320392320945232101185022417391786330489"],["28876950453789404144247150907623958332901438722708765665322643300064494915249","453447878996776026536153942514628325013260356069831215697705624681414489825"],["10134677515055467969037814399519185838733775258578753779694643606772177346722","11871219247360253357465248446152794490047965069940946721073173197126623365192"],["908001071773142411577153916835176954422225346835034617525405934173760898792","6494750597653201329043791683967126017237266076783549393878958348926139034810"],["22664281354156020340755697150627180263847863081179789410474238089763487993334","10681126686813028205812352315234844741648393178807406235008569512602509075129"],["1163669314492922562768580062490594833263420933951304796938696245402043807708","14187268491507790776033537108685630302162321669848635161854766073914734122959"],["25245079133206100794194565091862317515448294524712486129278040981585407806063","21571083106394442358890856121918713078268625976212484829656132559211930653513"],["16684130075693600247582457876074043646262204950994510529568607881137560165038","26714502361064863660416481641705539992354180195517301292004974490559641972764"],["10311207363860041028491667569263507263743167761545200354781493737807450737183","13689287716627982065474443590864482162354019558546076752262722524700161635816"],["15990941240508864111205791617000909173541335923117932312955857516251713376245","23603679353984056144193948301634227157123218636659592287526660451242702390140"],["2150719356058906774936706902536796433188301374564905370133961636699989351483","589428493525254111829026909426295064232316320673027910372238156712472030993"],["3990000626047021851728931435122570148155538329163988497690522924888862396522","13613372978847656380083828001136367801898219590553942490833451267514683913081"],["13224243865117996441968974031367904041827608879924369215863611834562295536217","16203403067593207202243223972399194768541115237525676960307837585744351738343"],["7826420987913233479793397562823631438435028873580247275669895296737546028493","1705332439804013231803030795821549293539356473348042043730926367069115636998"],["6150221969874064527084009150242027259530179195762691231073354611415057385284","20196889094189892913204330521688365624892763320806567171249478533729948152914"],["15916852440036002465757054900564091108508903592751803915567204793713688908406","19999591933137637184895464483081294220948310966131365561861598051073497317029"],["20135609899951229665069965514331877401750599450060926304470809973775625012026","27405064750302119106087492893982068259182000969953073418771315058060502903551"],["2567443924764819154388999609438348863523091170440992792749348934494611911220","26038377145768508422557642819484327946445800858138075945329713425027382353379"],["14404723820814368643445963121322119239968191688255828861721737623109134303905","3884970564109351849246206794191183891057329495770726318297857880280496978409"],["23464706719867524016918233974707401197110781792278584196558432395057317609957","26518129870713324004150667423971373255314053874708247527053060804467322052715"],["15069904321556465446145810003572159015617053985383002660777585855462460575461","17380122654717620804438357754241668573826301335559123247064235190035624543330"],["16774502376588844287655037497505141668042593688068392324590330370721047600159","18522925976887080539622643529934528416481130304853153472833798653095449442613"],["1110119760781248958630274224321884544143953996398667233081967730592659630993","22705548367038399055681706710022368877208539912618787644012134289269457385939"],["2078074208405978183000718151443064881568258633667085910605112829101309007661","25662745597621453808400773958490253380876073891783050649241535405947774749723"],["24749696627218246787886219097067814911616441445000463729076251703584988554760","22360962426731168407970919619962890246114070424406932127547661544444009515780"],["2402361114458844482772110061660029211007032914826914166390877321362307743539","47981971126053470127862337024378411254896074687939529021869307900174595537"],["22160776381945541717588599945978712980619750679726290644875904148186182964843","4554949244991291010945328719689924962347785112364164106374899888634035305411"],["26536425363125863466698781037759019746995447802706246432790622416654223466126","13460979214595321865196969857267396882460473152855195373362874287962434106388"],["2653417335128989766894363766281841544104997509639273114745825046731349286592","11829695025597065949725659082503208653675462797570234465074079406396528349480"],["4936708953655637023709034309894855719036105095408405575507057555213074815670","10927651614648610730706595823941732378656302800265325300546050814265308068544"],["9724673259615310267291626713779589533459371373812610447228581676077596727211","5183513177659540124672074152101711312102846089712842595043853895365889131677"],["21886629795715634329100079875790957673965659374805387144444215313381963375497","2280869921595120568737508465023072301978469990358504204375635883589124067057"],["64539243141526288730004124594324479963045081259862879242166075672066263960","26201000585271875815198255229061491086383185217001532003808738049809637697895"],["5235652417775822197410138745719436065499525033701660988984168938761688615528","21082818984651666153343622552383785602387897875678482115939707035875357951686"],["7850534031266379540435796937581284600181712282837064785668373461643761172210","2350289949069849521372144633294990432928694886150373010197342316833566942688"],["3622343960152118041903960607589478959490370416762852823743994753070443911430","17442081744707113085784719479744717139939743649143141220087430051042831520151"],["18425467746491766427096545684154662496593033791105084519483878066790184510618","20962602047615242903765065275294951300717155610925150684691470786170742735572"],["4341674619387826550594366476433137227299548139329075236498574379147313155864","20748015111525788316975797205176346334070771704058687746005627512138778671757"],["21902828274654254812958194944595963034951864810357340418449200921060933716851","1767255467573155347105595396609834135826983567493076036555898019320668598028"],["20330139504187842678624811374961061304799653121362007856892468956005872096938","12781344528434260179626395497618046658926265306769052806675444861038818248666"],["22937018003361356952843902788670739339423709426567247449552617889235376996508","21654096334030967343690390417914684141371601875318637816488312663125723337872"],["17131923279389815595164815095499411473239841735244880339728588837874098178890","23040861691720325504950042555355606134373781061170368501674872046930976501108"],["28897526271343614691256099701199497806924952210436073032210036598334792803086","27326369648635238632956447141913120620420041043865130243175423678824498566073"],["9378135094525766645068949163018921866396382686648103940097911410382258127337","18132679790991204438896810662039379692958335931318519486750241317500682973877"],["18033509692764376350148994655281419529636199002070415026825186625377855967722","27397976079782332141758420816264028799125646660976138054776961255240997142136"],["6120785963853531206699987265859576937977047059185051883842363004863343286337","6203634692191592970018599039084501927284673187450197437772392775008487580363"],["24545218959726779662883871852835330236710416830242716285091716351654594473666","6239496104969525142117073167857392514722139008638859664253175731793959685858"],["11805519847509818165078644712205834501060999143746182609945511515620002584077","11694599472007203983425017787657981697038674749362485684858227250259310611382"],["7092591955673676510038296914789867594141541356415012714141269659380640545810","4123590149986616995694340445183666605869301623308122310730961949630214612128"],["2449779967812019669587171481554242877326427427885412905270714159122238237387","19104641600288535903640422836427411628674956260637998710663953046765527697730"],["20443412800673938382049481185575563552223957950698270475834801542350522912602","15587229131243747877386683701707522614799326769294226989700355442322493064684"],["13425946652542398449042173428152869555509002728062678247625464873567949938457","5599415519404468730804519007951509513222944728400264111351603520479741406472"],["26697510833783259883518336403696344574452079569357521086753609759535035081944","1468580437309918909544959054828870326595438880554500633713256518387089452320"],["10082427797241181353772718139966422878550939246478069720221376641718523904578","17610420965624550014269704672141804937743715772743934519646647291601866840102"],["8510021426937935820215187978240749151012840512364784551849016891998243431812","3420840886082262762294757677030207155264487920330389208258696888220214532844"],["19509145196935865780482236407212216338819830438203530325659901282605444858478","3671247836266434448287670913929709967222610385327510498127301413627252270668"],["8545876287008459310307396958957682355596357176451018271886537958947123651517","28548590587963697943102289903757847268239683667432890317228497613192942168956"],["19109698914892960402874519351538950682925333602332298765943328883675754549856","27400221080399067048454609446689528411542455432350840226633648416648026521442"],["432194810420058350184999552686721499391533339751110988569855998791208547221","5446383897980249914694687443889405436736657185607435452654504562707189650741"],["6969170767935633361233183112021078661822607541340865496093953899167241270351","2327829486060556410469163587193506277818562192864364543914297493484356453519"],["17504816002020809801479960202382390050312145129612265692392382133698786360335","17476288681588458408037552914332360960949215135102895444424576790665029358040"],["18541960116632957467423296078038054793155454613472087248327416726169660169841","6638044676906461604468694695239432949705939227256343574974647361938300847144"],["16223582495719679991348752088120156445079619964925508531750729999030310540928","15723217194862023084688743779813778691797471741736129940305790090572170369364"],["3276708092408078712669462360449252509153370253675329359235537216784284722092","6056436307374439246774542416651177799746536600924683799257294080260036943134"],["16308361754669041052205114727549266141487865155502970474300873344564554781333","5164384991499902323073806496342926529343170657894651362143148197636235676332"],["16276061687848005741680935351872531150022681412708044489666383069267578005398","334859295776842864750300476297509093629004004659811404431100569868626152085"],["14794572993905001931555128884401846882422525736972587771210955000538735117175","12195465581997246214873777023250222103690588222640834770257228505179843421991"],["24424763003895895010972639233360370867334999723615614944584034249072864216104","3893204619858465699688951365172194342996646102134556380361550435727855878597"],["17540727059194935795145940000677538195404238889211562325041567114890169217300","21599044080163966128018044631671940223554213889761464863408317846898744304332"],["19317638413963268928659120410258263897283146259511555825531614947109089752931","26306425634164213777894692391515916024808106124206904894949321233246579828994"],["27545918130800281449936714033758475828077376862308145887500307311139217662176","20533316362707621451064127496260449571302303814901855324226905055119373052781"],["24462925927752102620668961698543382220990761245210166134448516143702674726909","5657382378118531605688866894818517565921982611967116941680648728780978735879"],["2764022634259811782953713668510633601104978459934152704455090019521679492024","18511135219890326812810117325085826271523495102735544314847404925268338725994"],["24373855787255218429359714019020554132532521798656382450343806728412189615831","9458855472211267160831121282769220198542978547475429847441597323618012234917"],["4695706492678582718107140167513332778015293511217786526695366098547883427438","11445508072795879935223610663682813901282242046677267038420725171062742852708"],["15261859050314200201787264395835734066997937584009045826957624348413673733817","13153891765042671445631968410378410831353145409941530429308951142195900481886"],["13212565238024564753029601533693708690361875414631765739642564167012732670777","24779022198107215924138007053911620563779072504940485843986391774861668452980"],["27265892768405477061159190750804922917787462156764177414615041378911821654586","8588047182139650442659040273415182247327312767705699214446968003761181389342"],["21864130237755935802785746161635669293261513791482492518596785442489454305148","10756839274760572675876870594769501741347462528386668679121028306165905770380"],["13853954833941482860652211727312263518069418885599176187810386839681322881635","17205099558222556555289036758969913011344468781251842663502912310051356049800"],["7753311281734009406202911797932999121431332743323351796342458946101945660728","8028295471021265585116619884575955710391403365676948220441387394453220338845"],["7474534380707919960621948360420238002306496122302564412725601822739482741603","8723393922159155069746329065719443629611431954813744217575041402861417517036"],["16662559638509811250439341984607752828310631447293712848154698810242120265296","28304664675075941118018883964027404240392106844668326814146197976254417317332"],["11188110659236293744386771798355715731975011766646688632713913704998375713341","9240550688035564414245932667766665089106117541451894988757810826760706579670"],["8793259010539928154303031903629129769283506120340582563643371004907894565041","15544967436100706323804051645400079678309275767055891314992497650273793482640"],["8515403300761577852869763176438940713076203683850376238718473252991458184418","24816514010304555939759034484199481499596945907682746484530678452294396291083"],["1646856884475495398534684781048134009796148398198480608409489208497073819858","7478341963863427725125173137559548783850158982618190375516969800489659178253"],["21739893333969245927597977875969305578627197886883691434341561095545831691144","4434767100140452759780512688916641529143861146043325869722843524885235534959"],["4006543370595082034465709627652718524008194229055066676969557860688657250523","15529913784551440795640773191374206792368488502558710315468427357390441238339"],["3412702055876574316408457374699628733037730623813499076752854173202717986164","13492711418024346478818147234334713098435882985497533751321610577723427090523"],["16003872730432984091890842336987237621988618472933245663704211814158447870506","6001438639121185095573067046642574732101927973793037522482759070937348696612"],["16946814074062018939896323557441286265982191381728797893806751937860086955308","715270244935320419074503097946818703715311165218941398005432531517098955285"],["21175421717194767184761563991503426684971338328263522334268027785962769490589","8761002291722935327104782018809012605963673396985478391840727358263754191383"],["3606558188778681926552848513802918217933846004834366278228539589207688560583","11822050881756087674253282762626871645153315438005633614474222163917111647571"],["2631198186635935995489232412861980988053394822141084307658483592485107130635","14959932136062757187325885076772911192533620182040796565516649979844793611151"],["884442688640746550919997911616207436434174056393855164410298014306155405600","7452268646350831938562692534464563860467625762509295921053640852338417690416"],["26501403485179627278756842670410313050516218327421142486183344471840707925772","23428753706590019253144729566742521957201317488820141355352694164052534590519"],["9169184276690007080675079616636588651539210218143935500670371363591115222485","18473773415097937217736593755090478276474955117641855212169601219105201760578"],["13517528562005402223941678974182256087988785144950194834768316291217834758997","24992637244956827084407268040606949815947389651745342168418873622579268145599"],["6429142812061225009571674571837834426201840245494103443239005305603760971311","13209230782809233034993326128255354371728585660715747452162084231082037541737"],["19991288226898943434066363283147219943529017834260601783167911450132658966687","1854871675737629857545386416058913401596579268374537375745023307432045178809"],["9423009916606917670353458005780120145645328514606263417489427070356602737320","4126967092520131925642992840792277419679116083979734309469881741256732502514"],["21615277244820213514739549060725288147835285366770853395668760117423887468836","15729874815488574271843438738684706308645757330214692754850833474888070750403"],["14196090158644245816333717216481071433381817842987433168345795871295907558977","11450250680263956639532866040303319298047406886266487003100499811585054561733"],["14715573896822657618572401442042671443097681013374909441717763276498732799506","21192719572758939863908016305784246940397584784416726222563606262918749598331"],["15344097281934118784778982955999171605075560618131351436253217651367715693725","905968881228031464591698015244084404402676892653711731896938097763705486025"],["17890617347587602819530937598648075559714412275510465243483802250749980271760","16326439374817692026442210338891948060828182478018058767128873942300683723304"],["14847103256810079513129444767711505559067130607361716528466223170868044455961","10457653624834578284455099481735687275917450519063841639715692366948278013468"],["26201954261002631561965963068162977945808746481280302594934708281911582406661","6162039019861589752970591348871241481468379802074959775806636293049754900535"],["1306487008810543522032327776058828708033352928765195081452277427840202982725","3328361756348410080313713699279228731373059212832413143863946680315233519318"],["7494433482254355230926020458893617700656416983040469575862530391506009255190","26872224357760024107825547746805191414878959906447896548901928145145085780346"],["23781077968772120283313046463807056155872620366031231735154120977239344166946","12902129053382969722209061547978093728318860330575948217729148506151380160862"],["24522158251683621695039007163220612163525256993936832167608375368393065620674","2002142548936467715690856297566161498958906168903790475548445480291775760126"],["13408050211057862708224333025244222200281220286778180210542885295545801652406","1938944326222043396122991582063957454222962704673848029891584760272868249911"],["13446631651320531431539209723467911658172507127369872258203448818736456384101","3313466681928417571928907381394343315339261621328370776073213555269317797106"],["24445641597596109957094327423369121365907051660279700377343748263364908103441","9420606818259844486053417977051408232498750638420687288823257921412751472452"],["1494440228294537386925646324695422656487415026057788273390572756778841401813","1644880229146237731017397015321032046375528783927181630371675546015164148329"],["12737324863676784608343589766343259756853903579411974744356726759378762176575","11059816689291626804018910911697248384454120874301149823836426422503871155725"],["3374630995062650441446377955492242477560300137281864929691728445523348751163","23810679293795990097279885749790469011714891224479858730141355628711264937654"],["4137161063603557241158888139134381421472296712980634475134616202242886593235","18321217057353910454869373699180939969459449923084365269006928689159286175304"],["22580924377299109936488572385103333848062103690208663321795070926008243854182","25796964256995737945874761370114899591580164330515298679753727020927220358025"],["15253529067098940117528613198115439273748091654351282469159560929221672007905","2436818220592983075050583148976451918358767363406323522857050231980649120245"],["14625915021578702378379186864909719072811421961141629554758901675830793767223","22500219874159900995794972427054736694640322683942536931985091751564101556063"],["26508961121319556334858261374664765002663801595688594460649997412238074525516","4844756581361827335140484617901804955491269727538722073000855296072857617912"],["4179811251551291123371325010088918424185351453604264190305012416788577588606","269038247467235600505753196783483613018880331678324302607955303866134093712"],["25603861099067214959412487096268601759348898405693012495726513758522049452507","21091933519326818535076696039397194796790236401744573936636245032446859960167"],["1559761005169327458534462292153381986195349873988907794318639882060131017438","11134947961656497453136378860506347013591856796515572528926745245710013383307"],["9972756759578293872908475156143822718336231976765055541102336971783541566467","17311946142941270900813042910184887743768991904513492193964628405215210147908"],["17459209240967958928946701362110133755166301825281444714754854372928885400600","26991241542314106510668822298800013000740197800855335430943108652445724142426"],["14502557546777328759096007373888060218685230568856485484731549218446406624533","6930543433688518011455296764661592134460188704577749287917455559259870529971"],["7375669653472260145917104319866229479599073005683495177014265207563323951887","12898327349930167454696319053632538492944203962191724736784131809230161011476"],["5765521335318866923788116641429355748174080816964789385679617202380631503706","16695309873421162003439337373096596127130019009013231011614434429051470337283"],["27760741696582441358896890392314170710964685996908614038117404541418235809038","22275294291166396195673139107685122243679341880158999315189057425504943766541"],["23163958849942117899165220632225793839405955264895189995441879915442536083494","23223129396270998942002077563690398191769433854520730487579191487611645882315"],["26406683595363468441135729654880010718717648352576445367695978750047628316757","2990241671916595661126573155091788933984624074015225735898648571967447187924"],["697156544960656046301274373634076022571205577022341776384656907423743495623","25364353298306842907124144583286559684469896907146589753472719415508237928186"],["2653586308871650203265317266796785336310005403941717176225761348915204132470","11500427091188217498630372556377382905604274844302095416031729157137083930813"],["7542526626244271677379093006808803830367304490612520651885899269920194978506","219148622467424392457639450583496749222202073566725767764797677335233672132"],["14525667841692004592752516233969269684042909946089379636878046106416791772931","6503911451770490951099126704971356282440889033357629799716846171193930740601"],["6645880355059922368227194343296030510253345584111794198303679419707982137346","15871780079820917205895538938487223912479607573420259030877903346546529381643"],["21039031508701535332075797051850654744922009354128203275221775053538287885555","2747684287569742959631062952517323166974845621726486586848904207276892547836"],["2657955910607739447614394129256664011131721992263534281192588524714835272729","28944343156596130862407549848495458326886067498524452859420525480562873861225"],["6429256426853755532769573358796136392949682031401694622062786732182077581050","25011738420643858517794175788944072179636891933098446514685017277222943296293"],["17388921033022860933412470047636452277753535997535167780868393722301539132138","5240419804630176342158391741232790179370441605060916732399375717495549530662"],["24403400825535745046904379384983131407612127600713187681999263302464995585407","16071886808392858688101345559289446061055402483374703852571079246053912796273"],["10943585212136796542372050594931607748246419627568357112984251811192677250915","11702363107782743076898823640221788763552815561678675570844907065798090046104"],["13789723438866078510283088529168806314486928143862844386264623167183099470529","24023138859727247487133359321804064720476337893174684597329521835505031332585"],["18409460258287586849163135442603275006724543381358269312350053835345669598975","4009090421135417376979594417915750538103776312253163815434848984803736216494"],["12254400952749294855753972196622310887916558669450089542936975344169530715404","20107687727156570828846838998835844340100541653471577836550692076406572988585"],["4192137682136867067805131368080655524564739166008875757271161957865757138289","10816452889757978140892489091542323577311023689217505764764050843429996547230"],["13410989541781702653809610609032180166829315245779791072944541153193199453434","20306956720373315845627692588066767733959097457894195581389196499821413226424"],["10453862163059102694212274368954004195723429551693789484478668951261966118390","11073068988162483493205886989760524168032458428618656627031466844889567305258"],["6799059469566956201286284689860350472009922329120337762760623543243346617648","9563686682478542887714556652513125920780372309122255213921464110800906899224"],["673546493235237608572002606960419264978522066872606666491691271906688576638","26733355700558460175704546960281311404847256705533689168635165861906549787068"],["26399995030949418146052799550749770243652236663882675370922819372832052135664","21377428400131166360186173052229721205597021558617343026829627419471828313112"],["10783411665227931198628024426514151614376280958187670559126811930653971267446","8014127133880066978468867752107928371100031863793822020334377141393791104182"],["8172661890700144450339699514604091553547339819343982932362089948801655219901","12732258360429918699492357304912218968842530691449050666160920692386418562797"],["3865562843962143696378458590746946535917742507302719072999658769974500959783","18175340779539659785047019073777558322254957882733583960661958794569226232541"],["5431900940870222536247570950692543876158815827403048772201034733899966247774","26886837934003132683668307861314426698524307364076511356616066714349693040471"],["22373346246133645593598793057593306784502296191260575397797288073272253561549","28346470430321557787505215639307689122150714148475086710195267237282713556602"],["14911923219279850556029395138305297943971724000724884320329159566768428457265","26560320261871947482267003182147303343604535629001029987867032604078666258788"],["2034972004013292837484302608567005964107921109876609742109951478344741265101","18375717553766289482740213402592726508598217906555646141089970666371891096621"],["16956913488219067248670457339744369850009455872217191438409031222625458980182","2620876410190475156521375141686621054460414272506546465952865410772221406901"],["4676721831448286768020101511307110551334343233069208676161367597020191138220","1135316694562280375994216379286781572364107423208414239659161713652233460694"],["23255040343133910055275472874668427037950961179907506329528895029612143987839","21835529496576681273503894817168469977866588655396822619163205310263683305333"],["15049383346145711960505139191357896141252075300097022961311369591197435347162","23958168499936364910107391408640816381422154109576407032954523292373091824636"],["18206630135651492729399132233598065365733485705354228119595387393916065705688","1690829180694761757189029491120127298879485177978422493617197382350571793767"],["2055331668160237163448162597408979556142505334736582288234807189389950756115","3929564896372551782620394280266709579926242285474436343420086336965762208119"],["22070966838554531144154323629141961649384180035189256963364210827753488189857","26739192568457182983910646616802125638565118454671757955497071613635913755337"],["3500349236195315762504231980003128370353954901741670776489107035836480301473","20358843912818449401492224297436810026802735763695284925716656366733789793053"],["6657692198934086932144621740778544487011554452322822806133987853412861272741","12051945434892422227900701459776351397067187598747735645204157735521053889167"],["17899978907476523586937861232477225447321762424401771263149667948983085711989","25019192626941622147348208879319688107707764525962580818826369765861856397481"],["14346055345014620288839947043715972879188866180797840554693963732463020823343","12558204082337927971785477685491059012985792657890699741391892485822166064376"],["19579775335597795086116030829652060305917764226315188977299657547388249635496","9528898942339677509748101395658681224400758486221597535479126081785274043786"],["6165915194656408087652033215174619387519774297715943101168428082006075487693","13290709164194369152174781623464913499448505491449548482431833725016490648247"],["18175077331821147587560599491340008867295240001839587519503179403753756649137","15698291695580550072019971782572297064586930483699058206349410973502044881008"],["18118954893670531248303477801670967196442474063879596204157607875392108321225","27631908522550579068234754803548880962155666746592200336239994022335059497098"],["10942301196477186920337080969445279593671821561282744773098997151105870599996","27629810275650063967760004990990827912419677390922216756576829235359371528324"],["15856966391829375407915624467528171923191272307883629894467989347717360165821","18689735597653539218435594826838511369058372009103603790532034278791538666504"],["21767599270074314178069631517323748358565697177143954748220919848917257072300","17007935555752912766860073047996695201989088205806815027335904836625521062533"],["13381090431914902793811383394097711599165864515680586087350040490001648338902","16045215428343911240295430539508516430715876334051725730739669265889921392882"],["4396854958271981437563824833524777626242073131369426787035037919435642042901","17991272393226115755091009559011602102928138724464617815412291233421017096980"],["15094740000936151613462762808372613999949642771012320098625858945343262920405","16141488245994135607727003328654724928136779503811195143176780952445156324801"],["15661986813186015787239144730811565686176975802352246678989356678504273820093","27710664178897367090734648009797740371104603023954599654853112439911507595375"],["6217541321829943732851105846482907103069743552705073774624810506888314964525","23862503078381107090603684481171381793963951789627091631153726476582964107063"],["10498610064934818252140636225638242536229283498942525701079186353113913097867","2105916443458186701038305305996544969771109405396871103501727301226945105554"],["17961819088224341262008441710771981782749687007223931044992954790349622071531","28001136325150780405387324807563042881598085787655780773808644860105173654087"],["28943994391126571866748917450122515849731019230532770842867147846309341599347","25783433687433834932009316095099636218994903229998547174957460293575248421966"],["3586241027050375303333511725992235721439345974274977750969922291189642877902","17714062193445044568537414886431038861320013267917270056823917415862665576633"],["2869159516221195324262987862723674564213249647300190561114455547667898788511","5969124105666294124382912698826682527387486344261673345001676595396152787508"],["5719921330848388165030464823133575731085636040595757794017987685812002010458","13805088272503610718080132003015548196773795693311845471106512307916495902700"],["19564315235837731024247810959454971676324196683485685482219090282942705359923","6834147967927352633576625270439102734259894387974147589842353111228548898132"],["4861993651485849592795181187032744565725809457866535638123384117485631715469","14143709615808267793487290228040293289996581916409090606148719370282509355465"],["26756189565287052629611143307209793274536030882577046619276360524626011872221","8760517292721109141525203101902126972189981560592728510406134910225869811066"],["8545507543341881035977011042406531964921811484036973236020883893803446939486","11720852945074853203523706907309249367108373667251210968289187385108700690694"],["17879504246181280827239957898943425758810800827878731171333551194052337430801","1701920614464626893842147341308852203891102875226303317334791066688357444110"],["17369714384705401748835903763380157623736868130333275082670710880871122816752","21885713018405775075401373228006652436612392651765242325648395371967236156386"],["5359333511987643669207531296415754628210117439902353367272429047282199811544","11158193855130784792958949593728800429187915054574989271560818724311223820272"],["19742675102417665550049010437241341640702076005772414420295489038164573176580","16102925860000292633146364430562492463029161566495484396477856060111932822246"],["1226388325982901378972973089156773770619281330406726174734994898948589588906","27609731580412395274784987564457909135021220969355296691807095267199622831116"],["4409552785421394179290768279951804486613181016772637583465526952337366876751","28889393530140247505632892601661689330044985697653280439620030722739387091469"],["17872014541884384756219986568959242605901657082996019379911134205944403091282","11525144906097330673461647949667329119536547973948418024152288912762096256160"],["15204592051008251195206912956481578542439151288099911147255804175971045018184","19320934755302837746765584728023531565643660736528174462211234847872058752422"],["9303267623591542186850538568371135061000087873708361764367558926949490820905","10897200914888951040095897172034593023894698146238461365946664447396070130194"],["16485125495771607427138616081403865524495229669403815271760236413151939304251","6360086436180400270476982070261611589348459487202184173253521375463058756775"],["14012689301753742651486840859189500516773142524256951024093498309048402284956","24937946461168339349364414664900724457730877211789981407065354958406822059004"],["10664488502190919650073714415490272723252110564400325316507865584593890355334","12570078405518810151281090321210011098128199939183815079735537001742743762228"],["7810884810518462423092523412627777187239047547604643549509457765260270297822","26638169936486150719396186733775305964861067127663259225786736793199807778988"],["15088457031564324669418985391481932590358565336303694101559639491031388716197","15794036761325317673211771628996313373911847906300760896694033250470183530340"],["10301671875909815800886357353252692609295654290217117943024913739486357314359","4970107412191852570713995804179471530836664976099965064788001272835635385765"],["9289515438026963229565154264495714787522744962186029824612300830452772274195","24287009855126183380007581789673521534970033427410707844645125570020665273963"],["10362910616274848177510253173475316509516449408285198922634832090657459473860","10374331160552600997719589029296674101560189192334202606203349392498908588915"],["10797276718454114066130090453476166907049697422730481116113823683861969015347","28787456685746312081163161397957466713980229129428187323211710153731203976379"],["9102027421432390086070703014287749154001458273334084304057210679202641573628","5471053540205027209829171610005882012777682465930457853248781087925533131065"],["28657451018431744086299255430791882861569196829048323705137626915945463410464","4373896239549992012732747919463912546935130508104664724145221439882620545187"],["4251695621466818184003703244829626157718299282208636190993563944842607222510","8299195174399253313177328782265512476449969109711932890061526136499541126003"],["21198540993544185689445430730500432206880361579117965432892683830674872281688","9694115746452504957278746122431874840344653819593515102176345153889041802068"],["22055840806702580481248074087687718018317893884334779506477994056733947106281","12910281906917117825183150492394433225001039770279915072239447845801457786343"],["26541031481146326603913188298951510258409534782231650196546207167327135690945","27838410973007856391801526901972331622933058925082495842524524034907652808064"],["27310907538204680784345182415218897701487903199717714618860942897958533365850","3519280537307045743102185305276143485676272051999086617656737369179412655252"],["8410183862398213487376706203918114869587548298856342813088939831783285692927","5199750099605839963136892164559273369155557306552140261571128212019058063890"],["19032993132955863686504824439254131708323682494860937769955473513453731326367","6156757766531868763793515762223490585798673249177527664676729799217561751971"],["8779929758925260509276590770448220945534114382695572122596377726052356643688","4974895874042127484668202431954456951938916549930702781814596194766579403204"],["10475446452141711744508007387446718564648574941075713238084486463555941815310","19957061551909297080319030426568866833549605130749540832248885208596911617331"],["9126939314839249521854893361653909109787663510457500712179108764613789741283","19115989170914274670101206137726372919981046727950232828332545681132474463272"],["26107311776161409662853218678948334527253528024734457801132663942380454431108","133675363045802938174747475108137437014953113991410487966730636642175733689"],["22389020259856928377040051550889861745553683434594986021154364262823658253231","13032536299156091060813527607772182975049973329939334041151263110780570699038"],["3312177227670106160330326366806987003898256979494442315812553108489555985399","24153860732978167495813770577133864254191779921504900995165207055910644310408"],["26991523717324983213175682224548243526122890367779182511704705734606510813953","10196326404336190304546666900244028284290339138976674650192253345212520776689"],["23578034342357780460193936413244078323451439824593103549481773725074240583843","18597062409460938337032705926866431334189474529585661828037888622384611353210"],["12465520358630016827676361111649724802704280903631564260043063896814033148881","26120647048984268146386350299801295165676792963413852482984067154815205372275"],["16417688825622424102980876730326886752252574646322869298957096591199512890685","27457597683577799553657659212177361485274174160990546988614831828165059700158"],["5840132675626827189532139538545163658716002445805649261982257146228359338798","21670584273749139157265441497218066911239500840480102404389202042989219824236"],["9335140089458580507301006895948890585294352355271350906706891077986163445152","28426812937534620296328671473886364603003219942759443994535750333837695148207"],["2684134040159801081820211444430671088922214192779716165322417899368056062635","15703525326998306855401353690396289178395254126223775167339623206055528249484"],["16754147759329728739798577216572760900475311841380643074338968340085215787695","5998594694991624815121666665811744943085822297289758161234089976452767171632"],["22983239357364981128820957032449098508514139107502959871762964032987421204967","25626290745064964484178791129684740147435591702565537481530370173096099382659"],["25813743330481843187525804367792763822223778312433652436929822902707555920919","11919232140680093612066977805867775756954127919768033761424539699114558378489"],["28626112528603813261251065299682948428248806659613373294810067672770131477612","13381632418092770264219821254778569771215317509045503701240185377989895881875"],["7980340872857020416501236018439462081261343995221090762304728465622302492000","23459734640971992400418340891956539908835044697609017630284511510152577740499"],["13338743187544227467353424009193154889456589170450164609119027303722751449164","23860071593215486793012477591772181678792097555571809811214954114712102315889"],["18327350274548836639190249056780907646627215507661972082191372732237252466339","26278298916181406504219757918963430900020660993584325489939584553943273411120"],["9894976026429276153593323604267364291868338085964337111530831071616300477028","12424293549292658354152354251278592286312223208599697408443900440147735661799"],["21133010555172658243531207315124835242989339793237887113277417474205269295807","6822870328382044289133035162025363955832337679004176491189705659222596591015"],["17063219795635660191410138466050154741359415318177539380592630088964524638057","7927099757982696541047421614633302912706960909080890700347026944476406763747"],["13112228451322111721157472619796021719055041323464672303001065550613513136653","24849346847131751667693472452770428340179175313169710575622382216808242572851"],["5389040671102434868276676579288243116604289142224256950720119293647311086795","10316366290557645320719095941468928327010810326032285735587127741376031631819"],["14166301765556973730224522761375876179992858492799678974059407993574282396606","3595387877126552570419382553543159945131771536642623459159053130783691507424"],["5145100460197859669250295467774463160283631040626422430635463879473199298439","14090247756179318713518943206965613062851321632050218477996009434147104700289"],["20226979273434220705782191426470259386134062700739176631249094354125077357720","6094064990082990734058722707127867861155014422469549887264903392339962764241"],["4001246698754493345750691988758129610246791528343159911892779198560579792462","15927274038751165610271862729484088351317202445389249058152719947503902247100"],["5338995295780093455184943225356489919780453009309632084215708765965553689635","1961545456311688280294160261252867744500623849197221499782561757974971217012"],["26305177022932410720738296726347872397434258176079336371794115058652158605004","8327615361619751926593826906200478200317905840418461797400930421496893862059"],["4564050559789673799138497353283890128648202088505515150136458667250949708344","20177406423767485286986090550115351615472888848219718270154658193171934512540"],["3659595765165756495855897520764385624267631078694001356435778237210950925807","23180256035767339739986509571713798994710294431350159672738608826690674937724"],["14281788314527028141288299477597032235889708328272036538475092275305015402615","11843657094775522555868093801192469411562604612254592318800175444658575619498"],["5232556551529323294086154025230196912913928309986033621305697462498368018443","15406921957146335448082909163187402929602427793539439381078023330293480863855"],["25492421480911223970003834013589275860614792626270000653230807717267180081278","22282542662717753800619069107428388872407475390790187313676380822671945893202"],["26195189332503422461947409920802528102399181027754677264440109086444757158467","18214077187009600491169032021454985501141706302779370148979161121961308170429"],["28224535307776107345831427980590910276540370035752111123590963968920626259451","2557117215535004447250165721406097697048146081620773509645979238883167731900"],["14227875078551220652815768089555422018940399180666054562950278388512525617726","27635042562135839251904007721786853509104116679076800326301328703048416617790"],["13465390085599269788267259622899874430334633993992311251387316885060927553052","5222553793655230403351010620367256997740241925249635800598020554158614461433"],["5095713238089975554345238908104191788140067841711645462931988633320895664816","9882033543027681272203331004189092454835461319819464348859257621751341449585"],["3813307725383595915299213138058590140837309567876087891866892873709909810705","19081387401642124666223864584107482584367812802819071148954607023222076496256"],["5144924997816187023187576089462845687941063754534095556129146957515057884151","1400789243640774747078186749028307079356273085588008883044982719701350165892"],["12897458103157427650600065120258522744521247667135740169894232591837477294571","21449155731104963234017018901044268343909655377115595605771662980954841606934"],["28149838455012695326182206817659015411970721642949991662466568452980952585289","23627212910298706921176567754192500331484449785747975264792173967732001263418"],["22730643417079436417779896956401037146959244796303768797762577518806132067715","15579723065572243196738948051685727008603904048207592585253868566574702324278"],["13381617050198726033504270256997877806643151286450171226538852804288808289056","19328969130908883177026648179418600706679947205651057368571763000922700357253"],["24565886314441769466572861691780144560828785539229499352376955152225378117728","12386781300221411830351540117144461061926050170828814720771965453336906513635"],["1254881217815529823831985403802161083755842010307228036562479869396203749216","2943947960868198945175853948919531809089443270790953930931435319115805189627"],["16820984186959409716311214605580951453926333636882275409054115680599894699595","19843009372756107982107818397764578962798333138602535844572543217225619102585"],["22962237293040625606792284230849893161355452253765163360415747959105717798887","14157347978006387067107582342184894928407269785809346913113169193936952387920"],["18385523064446429242539429780765176104821301784147306997423273917934473138039","8888918801908506192391334177414458377526861082983280056934613855636394724015"],["22510019048831626283790874337372172247537463281228356230700203002099051514544","11239928491655140183128868836365093849526637078492537901294298385511295082937"],["15312742264205301944339184767833080850831483307860093044961664017119673109486","14117229964677424959085302721902797810900215825690159161067479023210299994773"],["20866876554221806313868086089730333279209693229469450064252233289456444894488","10723221953182444916281054370723696569033848007921880948586649913582121048156"],["17648184277754171247760662781565959262489023487623172311207993917741126147686","4952166652499721753796367512614701762803024846213428458884745170354455914918"],["13030772341720325228726168616258236164027289604015600929219004179658824638549","11716862783004225303683531747108743890908258186003881627908448343508651400407"],["20941159816775413362732733354981042625592047151529516498119549107916462058031","7335259314089284422725122387966393039059803344186715946693856822496041149764"],["23313931720931964140996516464751149070159905450771879931424392417050828431585","15440234178625597337525631300857171372655988548681574575000803985727111837913"],["17292128647453704986202966664137434608431869571520337714479686497918828142631","2634732931659643028722888831611032726953790292735872375618701661667411075105"],["6859484717032904087090770737583200902631091443502438355153339517352241185990","27755615431420730031244373012883577956609365541180305879886514262150808939031"],["16467618876713795750217941970835793235815308658493229526449287923102505487153","9341339948145000803866973341459501301110315980656553099568362742069439909784"],["295149253890765218221660521458858135662882102682165893441001643460616065726","4333694668023326933442194499175409236383829085302695513481569637593338686250"],["13312338865255565129228224107813442321213701627141454757716834259436535279678","17049224414148104455843923589520923968025685849110953457371317491675991802769"],["19819893011818091956963500307004835968526438096905429138894736975504808511543","14720312607133760262530084115277688301890082905519433038596623522994857062557"],["10193986186882636041825743386652153162087104636466021198465274937674369893690","17712870710147597159500428991732086856789045308315188861894925947647215629297"],["17106050111740259547816145307804089433111189247988117418795575290376121922544","3221873096597194610469866106219534631566939685239963192001661367703760636029"],["9458249084810072982131881665260780492798149601224703654998726337891010113279","9736291513964503433997872186289728981711154273073756028710573975820463541789"],["13121379085759593666896468869488883815387597334348886123003297180159733082357","22568837165598353739727282368039171014423691789544214112959024216653055959957"],["17723538173693695309214679001370590581426617941827358543088920102571575095518","17557960282044091920413428750315983475424578204266874225626806067994899495616"],["19823785818518543246089613039804771999935335535609754478441651397968050567850","17245702426446166115495521603478065242813682061716153555604162229081820793060"],["4122933145987308158739294131096494906027625025234822498096015270270450377468","26387102374439686614974514320072975864406588167383280372826903461355116844084"],["4203046780715811913088795446790172611445703897282438057811427124271288024209","22185196773435591325427325331443045003551499579691896842901019288523881535327"],["8290550536746606575126549018279294208662010975440054982886725906091966210245","6708890188099146069804087945379726055401073069671047445926292958637263760133"],["364120561065467689480063672043020564537371864805690750373751514166397984526","19318837040857881800641747068504055175194153477128496739655538598833634167402"],["27138886127864924198940921792170487581713380287855595789553685658417631645630","16513188376410669493909952461953179010472283074544457793134719110045786147415"],["689550635021674395029107407551890151822518331051938129768164645009762551838","26994990903008412100118277626784818924884365047204983459379608686619359815021"],["13613912692865507951872142087623957913767772004513089797687312131952606515475","15381106358939746103867967723372731935432420858164498810649059454578188689078"],["9172722365208667838919697783193901738853714657575217010524966665742045804398","20508722269316171332968032928557169637811196012384697417039534194255770683868"],["15261374049050679923216248711669851641921136853872901035304018682835392481716","15213287697912056187587003910797940269475961507276376810343072358324518190250"],["1005260483175285009434855691140521277633060884308598528738495203113925655879","11860916505805630192224144526090124804962651849710535595079655462412052103813"],["14525136557378676937415903607176025767198001964999498255154221238369990214153","18357615940718492422684488272297366037510120194604206469231106341478522030670"],["25490491085873194242087146978236147436926544381243966449125420305860392698323","25002346091530469065165390816172860559454169544766110797535458783308480877032"],["22852611223696896382183774217797499489162543905561807050257229962098157943091","560377200002483089464662032192148907179868427887914621408154863261472885237"],["17116704665591041249588523486775306412173622191272210318588781561404471862173","23226302384423521090988003233959953332794606627936012075930754026021455124750"],["8863066151744867335607027864214497318189482009068094961966033363242015539116","11262506912573755084158420012222071819654447355223638239656768809155521360881"],["7663743197955693263483693930612351475124078827417676849099063365231706128978","24887363210695913808372678476577455744054697081747177038526203495378926707985"],["21826144472968677283318612269531276337497137819701729084559986008796347218057","9605477809164141188716495041025634046324847359385953004866248330265387664584"],["22167672695395542306457765047742471339390930747894786604530263568570383028101","28530667234254631818078858192259417422734470104989434898450168204625387700110"],["16149315070227969244563432766030069306488640794244026874235869455257109887462","5254954604234098103637253610167879085805538222484133970816213150982658337142"],["16967478953044622668645110364174017592904549020495840708918088125628184841024","15535504423977648780714204679458345144593292830922500990894997468464989624683"],["24728137653804871320369566237331240211173118376572938220421525301998810606401","24654798309158046299302802020604469406183056022643581571529498325612248703840"],["5508572773431251156991573339426161614570656719181272954583846022613949536034","22168746988921684318093853277795112960870359544377438713312774306726422198899"],["22321828882180152211054075637676878641774797313582579625280774678378476343139","17471900412517469997491697918640677619339733901407400078281446756502951621582"],["12719276851426249118762862398245599471987051617030984104435710090473586786019","19113188313300407802351585154098158128401829587271420168595476198775305043121"],["7559911777029167093023600879685270909804134659837418896801914237533070070220","14578399737337567725868915568384042756410889706230575177133000350078847783459"],["23328095663114099232645038208396364600533100466466247326101603354296853376090","13384162437747650438842261937429209963237612052939111889442265811607656478993"],["27096046302013767430221578513327016383689700483260780081109662093618832625184","1677821467941712739928378270773024719297793788316219378162819917108370281541"],["20186766029860427713218688837538367288577393044714775910649653090984914246208","26851044973319363941959502149584500562700819048434418601408847338525040010947"],["10636507357161203276809283064136066083223113683896288276763459511328441234005","1656844876194405602497752248416007352171433573115327726222961030746452649831"],["15030825485677475580442360465568543445209784238708796687918472547124980460683","28368792697331800240288235826054050290196119980451134636986217278019679127845"],["23407496657044100083706544915302471879842441152798656708567277613042317329169","16208778941610828259466936394265191392411441451152989137984297462471951544607"],["2379068622443494046165715474650401581609216904809640446668424455179922797652","9349649655126926896851589127409946191304468000108317388822081974002689120857"],["8099676348008697674120097225978721156072183647501768500407615101035284513976","3744468172111187254907578748182599331509575777143608295423491527698773637976"],["1370641721388833015297103486902488992903979410252875788627489571739225094371","1835567027646005989150647894431717069337331192957396585194613475835344993533"],["191262498841144606025308076951879305521151957927992503128373406239857945896","10410752362219808199915212059527697096654148691396482331513144524837246471098"],["19562484321611239385275699740960679739153759245014870446962239968041688754871","3355840030351451278256244322338486112771758296838234444331371892645800729580"],["10311309653254720577734779172802159350553443493156898725076494348813316953069","4674687168350964860244240219785764121149846391054201671790174373534682755008"],["7104817267456400709812521790854056400353478925507567245611319336502096208365","8687013031211899055022771256370103338927882033229561367488842894418159697765"],["24291225389530536013864466605730875616948064509453160758310327852563632798789","23495879506292219880644388750130152919824659674671270947752108489076602322458"],["11978217971731855379822968838979166571871231627398953997770120551734750107115","3610389600524746282136682332864843120847912976338576368076473746865312228090"],["16723554032979055536643505012157607838118805885784070842324271674646260052581","13842658148962650077450954778586502148685796844733326656334674567024579833008"],["13919865806979669268112412632879514659688140204636851686652562357851642687422","27986971181411218899072363848637289691596940572149665854976017635059086461870"],["27817117773597741664401045080236399954274848604333894440248018506730547142690","15821106468695977183109856015733384780410366871461135195359492070012568788711"],["11304911436932121450411758735532080334282949737616075404058346530709763866149","2692444660203131551742713303569183301851698000911256125524283519363143205172"],["14378229647024996157188402984627818303152437768055524631941705278762477949151","25233612824678053086309541241409228842972631392327585540559356287807529568415"],["26952254759861837277723394778268806031507168651434714714223642132663417816062","4168352594561073891015202163956805318447418260478735104988475547658837982420"],["4823356316599150242958680410440961086651010557467547369465445688141355678059","10021073738756981722065817935031041580049236741819109765882243507341264091198"],["5524128077433668341963165145480860143636805169834030965679959798133119443633","12936337588604361110524218639008365098541982349002685482952033223472610912760"],["24871601812879143518736407794750639244137444667812707737478951396429845979092","17104941275010997669091174729576706818468452952659560905372063629334793386090"],["27629335888679459090076950181730752299904471852031570250040784901405124746891","1546117531572574965730038818190454298242297657366744958283332086715419854509"],["21387806541821462050528902953181580492046638164874448237753663055287768158054","9469383168440628685870816693696383950094919162681847465592864115727355527724"],["28515686336016593445054223113490551068124446677371771466355441844553315360701","11913086754056252477275620777606832649586014789628407187401137264664896638114"],["25066224315869440367481630067288221381868284556598061441519478097958592862943","8416793356580675709171074078902926656481817662125048533594254796321621666018"],["5564712442710375561676128822277123047365088535101236327165481459662302098542","18902436804442736603085078867057015193718396880738923897354680273051101649393"],["17442102064807743352239138161192329894710280046960267989295622998655147036642","22878223234412149612790234103765794444052278062013185148592029924747309444767"],["1536149821530589480139676698497002838865758587917571187187038993274102291998","26292522333213203289989648289620154661229706394626952062848001311840879812694"],["23511616717532815897812870353197404063619290706352678538400232591824959189372","23140552040073228469514880578449547595812138651181368962930796201678265788350"],["20773555064584093572073853270009277357567502066700750622407411657891276396613","19727802806183489023578523275861387037506403711871447902854705413912336917142"],["13722441890375073355227291189336880797239643505334781893374223231674671996967","579020433049351001964090418490752207759224814067651363432344808617779127072"],["12342580866897297758571414826880643719988672158828271292973892629150329403859","929922939873478504005548687056409710765868843069293629403617820139358427037"],["5325248370912167430656232880583602947158672666091172829818391955884744711031","25118467460128494012714851702945633124735122540670197936811558656970661438847"],["27092941912077864070757817037539848425582197303425568832893993859577199007088","6389280834117193689284012180455559691540191501464554762208012187917155503618"],["5719114591189686849813516518571717946424072481605058324343991845788256334532","13660862606050367341801407726601343924158981556205930895065103179425656991766"],["7712076841166432352622027013753393401090442313408722712243768933301072188388","20105791019851980129494515827638728245207724522475527694664738979811784686898"],["7851402609110270688940137868652786616054804553415827003595425780569765174676","5938525732771184780389934576025849950399720409793030329570715285606885431287"],["21012539924120404204480422210744794137417879548610807718084077169289781579986","6456047237526499685149129113922111408316252185258215551549254460841490059541"],["21132916746837733370714548846253515694178569647007667694146702726676219400810","9624154789569212721845047861458908246009338762400194996889239326073863255892"],["410712029112130586937338969311299559546014309210477692532995901545965504983","3028493873090482745527103258263998702736954601317880935318591017515609850411"],["10346757041380806542446129454182072428105449862101600033282874728891479887096","12730067385689267281420272182438156797450699152097963082261851458282753509663"],["5939269129059878268912467988938631666069381080055429211433061869973730499793","622598017958282587232389769032609734267088996786919877764905262177377569385"],["13135365727622360479746740290490341729738997600744898880126356370777614695560","25853456814217755112386523688375626173646822968645930422889342742541134714612"],["28253783530207043114879964453302341100181500983860153888374758064113971851579","15068906888107878888728484139067145327072712162125574564040399904662598403899"],["24689473274006839467707327882724006006013883689907176577185167347949264027207","13274167940960385836703935287234990095974327855998265534654755423072721973212"],["19893923758014673926388757972242399654635593527880083028312583081504447834658","4681937121065479752795074672788017967331468055543635238450432446945737851660"],["17417934010650165321623301742827464302122451615484747784920210625452317345565","3796561497717919824240798541334282850899485618252676508737224065790908529188"],["22050973755581175571078024041026189490949950497312465732887242812196815897723","17687837899410966227478828187811907557597721195401880982383757646904624965284"],["25186502464445909768654875551054401362389374203531186976990301721813305300330","7721084138212767552249420851706385537552594083590600621758524163428416242563"],["14278423500306376796289554001561518222099166100763569160261081066025284568394","2270691649325081206728613771565091565855858348370580728529989346525585328555"],["20996825869945312078348279115948983821321841568518482429122544184628531595278","15303431635171620336119849115304608887179759273460371304492816083393772188379"],["11963520828230426847399858687419130885208410011460174960893476333570715040248","16995975501988299760200370986751118686870738342142440194546560551737836201719"],["10591110024120264474558406593330935332809315476623059905443174951592232029815","10628540890262449393175431829679426167856132771941000213367629761372628253538"],["21354540894318198797040966077533237217896635729735990941427139898736535006732","15674964303032567799948779874920625834466757631951799057220166989742789946706"],["25462540243130143576949776363898981490220966553598876156639855367214881901068","19502619428988140433678634508744045518777231307912722146880945922346325484987"],["27286282725087449474572262068500103452323476538228447213791786240510817974400","622306181429475105779699100317365140278967966743796879440682765976334281613"],["23008272746025207440816510455453562422143709710844982434622781654645709964752","20475616388144170963140096577213424308805892566761850536357479152316644931652"],["12011373164080533370025433546964085627845529582560970667188459868859264352957","2022042966163317180507872771443945066542679172977256916017092069006536621432"],["23313367924949759812964612685747675806822801097440167912959838915861527035874","28369998622037508669340080321334058410280532996682917889973931708096084323467"],["8813580537992918907631273204916817694553384276312767552589915661965183796669","4092440556950901680794406864229011075572876108885366997537209193805065243283"],["1255002665403275946109770419592871881948774798373767519902656666452332916317","9044531391852768981437673052864815267190796442453307229516874061642059178696"],["27224308518403165907693910823037276152729038901099155270640288820486658159400","13550303834188912451723532427852081380114759575492869453611892524207586058494"],["12197170270334484391302191886904514668142753069849116968124078352494314678950","18000111217066385669728583836780045629653274427421230124347131131952137478774"],["26511083293603547908414306531041009585757049344652650179881966440220050508295","25463835257283292679472051875422405131957048451628197235090349351831672297872"],["11089601032663868887213384570636139548512369343844391233875005006902214482586","24491214834573861154098169298147386019474943413570978486748614882383784971239"],["26032102552231202356555534725777137435942282058020613927658612705043697914728","13939068332437976838186584804427537333511574269061087218649222509536815680597"],["12617514251511121053461297359455922252773312688557391663422623987737698581431","9125280383333016389942712208096500037806710141821326508231719366093766504575"],["5368886663549247525601866632003339784389602540414431291988124927282780715086","4523656685910665470848667673428219425399480046856521057088664606652882480354"],["25708491038960335839008329825745818050440998345835764699760499701256657732389","22528694360125166993136292901825756874484264603484143707839582157184512472555"],["1243381428969029549926432500330561635374421933931047856812158816128688098808","16258684793724484843550370694251290063766340958527506134557771103544597514141"],["28749747035668952559247231472029893927909510865103954565301746535322618500836","1139605968731120401046424821239572109127814291655346546716413692380467311142"],["20422223553036386824968996402514309271695338396258312088368963961118732904717","28266627029033482104205761189817261283492384865431173884672273328319023019678"],["28152922478771405832087677428062850216637587949953703878499425844300879985387","27456706405609207081518401222550813148506917074579218592657139074136219846476"],["771673253672355288524027679341042843007866934298728709485145076669686656855","19664230244411718950428091874190641580527810643966896451040061744483351013688"],["15026647728508772884764277109322096135084431150053393099573516506662984417546","2814410246605551060447421123042182439943187780546433823196225479074517866585"],["3655216507123914413026294631555272286862234987384165374841910557601813526261","12502623580687805018114107629307081451318832767417637452035592726318593567034"],["3031229544014910994416081041142254835513295233949636373578166049501899145848","24036233673743121181447911578401051968404648483268634347288706824447236661846"],["2420458962569666739574277927772195126071288536447482268207798432059289500601","16890214234269374686853785640011805764848582739533403852508314315149198655432"],["15355836104040681774347817767893229475296240405484592595960412024470174484195","22433244871895438631784371539104289341037221853354260237549499110244455135249"],["15059732571813675274113996797151096166181247384887350702409302719398409515166","26896432851614199480658503486075384456179015737796471724516411877316306201807"],["25603261463202214236984382788407433419365237838366897074556319205929643722312","285375608184878207685644836786381401471772153649623181036915284624918621065"],["11031723472619595578121345582288455137656245031808784170645523996635904575288","10685952531798804846683313486733168634565595014691662276175924026066383888371"],["24638530693752524352457094313313115600079295701785767356799822052175734866428","24287894903688992056347138914952865959108154970959023169060078248877157373921"],["6603632477415721548999418440354869982503903238037920371850977722429689319415","24419370382483458820135037265677156399663266738151800222883168946227228148146"],["22902028322671556180250883652072188392946621675203035867203366970398613654477","26202877793922960110634548085609701937440761719644417266982518534672994736738"],["5984389923946386919560928308998379188740195942059532392851852248918137196391","7322802154581189956710824708204502152999357030002307510569221771247816054567"],["11816628083603222672722662076135837660318769797761413407832813664562803208125","13451512090988351960222748404323398388873205329557737132180087384292333094092"],["10571659144158322425859763460317889922798708783197141435911292770751437347705","20504004521268770841753843456043789198107310237140173595339004499743961578073"],["3928570956787005515637618326873735294182443458069298597679635542577063406395","16535878509465914858209933301328530546456790579905585848289096789996834049438"],["1108327788466034962738215298601428193401651692609058528606272336086773264398","24777855319392382620940992550574940307507231412035766276618573783124058529240"],["5665025042806999624203240634136751925420409050593165177738594980300902873505","16734578524160220924148551218243553786514796793466765490023159084046128706683"],["7402270121351126760905045720508326006775769523116211005962350623366410590064","12767451517309495624711987547070812346760716950144051616670948406534801736416"],["7795588106803967184222356818426581842055888217682002511792024771394613153715","8246211290554235283616602857697400425159557574203056216819456981743367534446"],["11142613147884728547424089194399662822591767795270138146547897385924794325556","13267625498852311163622319586160590210430963448417169001292698680267906237736"],["6223302334124305029890901444439852924817116330716305537815225390987514701912","9130042318651217846395482141181762001198135147004304031518068549923679042108"],["21757108732980011248378346800821824662168070311605917227207218614603217496840","21387419512082160105939048992751663898289776650773343788365930648619367008159"],["27093333306747236900707161971187908311403440992909928591652001202250798237887","21290112402826961893038355819431246230403136590662623657552741300747442638798"],["22917474434431075637556670574787993194049670750053016232567419628834430298009","22286046156612649876682436349615478935329647175544338978302370439084299558408"],["20328836428766183046911346239298804805082952072213089898961793943466235927197","5232806581242759586517717824512416247735406381820042584595752915026080819374"],["24197313227276385175121692897935057317249946193244071864454838722588863968010","22207478028670917268348994888312981745623585847978785970752691474181358461045"],["26101322733018249920204008875997940818521860571216460376321588936107498615751","14452670933708971097307985820625908263404395766170769768740778556659268451382"],["22301869594453487803560124421449556877261281385290350882024890863075624222022","9861655464621094371675394282782594419371237794720574776394477771735557101267"],["28285934372211012970482304713164469930646263503352943760816768721897559524589","25235135146079286050245401862403924715911792262884730395230494713625257209169"],["2624118653380667118588875965972898434237104053197119651609993552580843430142","2147086393213177005280554036996924184401143915329142481264037057429203851568"],["25641736576622605892139669789372455437426518439704200260716499730220454742766","11660746690454008730863332155234395830951333976571728517781338245300964283393"],["23063136352261595593063549339240480982531375925381108029342092993944582827224","11306107388186886604324761421705337932483563912240470206522338075827491719014"],["19850386638955835324812015559487506224719209876615749014440923858385152718260","14959283992302463823215928673428625231783146006233647691180616062498449233663"],["26954539113542455694672609867482641259624326441976061655937901742504263442282","19338983778688305267028013011758647602706616053219156396528963226374277143444"],["1072953357107318384139685742755218697552951880058636643664197651311117176609","8598769278469140320054915909257268751930951229581713518868142424453317490186"],["24759590880253687136732906531867839039522103550451026919838675168034690536228","23759086161502308158096813959397305657212159478048555646520927404768919375579"],["23014123195679990391975518805170433875485615322493663310597368207004889536771","23671720643202182152723794695659378678033522616436126658206994351948426397186"],["6433494974387574588871293658426803953655338115905298845839181151168446179774","16839168904933466462811158838712927372913245597352265678468671866196237264552"],["21833259761314480786928210101119644384547420655309417994221283513689900252916","25957781089125627874433822526023703064419908072242127323121932741746310010616"],["5567454251832597142643500688273000647594848542674122439442266240292198796072","2209478659578464484394185091342361329959905761921083485276968379177336865075"],["25194691954513338100357835342258570298964935563690844730018594109536085815451","23201635394943422606858524108275646369770897973509447524566308374892649705984"],["5206928614119503453043511142194305333837809563816746513276841102822542218058","19279654385848396031686602895971034342518251272709674287672462473230071662950"],["6931878354726762015470168449799017765585947850472098638350586482737775994912","17593407152078375233477493815006835122173464356010434666407626330398765127360"],["19541531913393252380015120640952577154748751044620014172242709561440426330658","9784016780316929690913327884670014791412188889371835095139075240972899680139"],["24434730699206975654442677727576108739141616490916260350882434435036484216390","19441409821496217690998711561767185374718772235548608123567137370340136778483"],["661825365975108408628427504230632868466729103019875829828355337503972821448","22305794817627735370381840802513578111747988054913092404138501373917247274654"],["13301586306513000569085697419212147811306634020171101050514002334178384594542","22852889483608288149012205298705683254405626369462089696737422908141364669423"],["22168760374825455215496317110560384683201522483890272333687835166544943959695","27282320127131441559501450113930162038993512730881189528934606821616696369861"],["6049760758792608157843107599099626489907394203333831882857034165830309224246","19054336265876178379842952312820290180865613455344856024736173602481088232028"],["16310292764395441681392867685498054373731941916676729145370814897605791891041","25434831248329475317690877636870201609200138933680384496565744159683457092719"],["11100703706332752526410021947731446040772229498167340175716161878620195873873","3722768891172256844583287492628354643686848043096824856589275934506794442178"],["9090196545136644371170497339624627115226207650974728625240135489555757827038","16944496530873897144551397130895225384978134955654729817795180030355412240947"],["3648295940834174847372103827076020222719506337472463179938165847770010611245","22082039788501323902403431950851330474298236312891503880601433496166003964298"],["13224271856892582519982220854186495760713081140721112701200604119075948828382","22381196334378842909674533409092133879768286822230318896359631254686034156979"],["17568153360121939899944297761940648797985138728825411249359496331454852105442","18622288610404985236518402043739468754104848766434300700833098515736766336640"],["6073023789783127151798989581922552446085967694262602628824726543283322638388","22893456632362683046007154900481611819816104536180562394019345863092024878810"],["18974079533699201778116891313920901620750314865980781639785791363480363730073","1068378175729674377710745467848035034776688735115143368704934112077037684804"],["7590981893052268978317179699344416479581202581921613838480090011203599563065","16841690855438017125098173892160639165034670708170659031837753154822180963393"],["17654975862817899995243793086682667352693284851525682900832266584704796620209","14423815728152329199672691378685523866520891332551465099300564007849261859125"],["9620715169717483640606029507364396110755098793076682328534199599998003239339","12978525107090897446097872658007187589262034196409302215584054552449439473746"],["25014454287208686814366073098713016114628168288534439581779723909290229764215","25021657672392084562028105375568709781227410553590469238189500492557508474386"],["3512530894219240288031712713610010681823644988807592992385285755663752032819","28404847815443825862520273597081729551785206886539004098351699607579315166752"],["13074463398778340849009519093161805061970169458081309317353086975879129368067","28036826740581532370757397261798042166092051472454283934485187549478970849538"],["12630681678670143600287465754120519710251942966543918073512830732793422592419","12244526029110122446515041036108898119736495977356872634625860571401123581579"],["21145120396231220560189575741145923536412466058130037874117311278657349092271","24833068822903885653158627738783106331547367575499759279512907541730591862956"],["28614771298220431139597211424650416727895569923864098849625534113831303379374","11406982733868411965187747545689594880120510652821854609945571767808779179011"],["2001272769858735223222523563309951692059380577305108734944623664056865292002","16674322968810673960283894033445021524377540856545995021514346942823829821737"],["3920713913520588119208485544994145153761892266642411263151610928151476743315","27740544495219527890526656541498443769128384995691570160534938342206230571788"],["6235863110210951054109041623119393643681858239545474203236439504101538637972","22788871029445922704229423236558524944296845697373379636773506015909433485904"],["28929756109149025653273379727731631304527616862395506249113101082020925044369","20117327395372745682054182054052418924529379100642431717858145642182052331024"],["10000353802544676687097489031422212899878792571672494093292726664592204940894","21028416303889250306248026183033062423990746054283668292217476621803884932861"],["2609808210214275306966103682365942732365913587961650457208340034411438316135","22673665269215438755483789629114725310299365625843053211393832597816139836080"],["6145037640913807364007777356555151292891562561353482741938819948853185272289","13409577287113174049010470916945267343075963028067320970275450768700535969918"],["8779662113916235800063510934361755555997732797821901354136902891400460301901","28785432030177013793266540749065599617764554489338564184123981883850465414494"],["27966912820973243380381362714087547309556358061802227235027526422631827608101","4533946072388025793174755607096883295848535779049298631880487375841020374864"],["24923077403875389400153390280285729273515321315413549512855965166356341198204","10003909691235875226207252488866680365573884776159399355172434179271307797188"],["4644559170655115111131272331948091202836344260664703227763883648462249394471","11962122144126594514824329654558237933655790510046741238741158090185973463247"],["4362289876677959828600722011920122607552925838090096044203410785628877280400","25060834857509559793828165644834008152461203151917051537542812716661929121324"],["958303977891406142773410311597745254083986214806835502151934239406705789990","19467469329587118416382502114386087775062991294292782138488754868766447392098"],["667898639982514462892455743511476484737661450973342213202863455110915559174","2798850622736597487635205249249783482148542621204502776212560689887164556785"],["19421872822153034413350995435701131588176701065574417208192269705585112141217","25964208211973956705412360869498145760378305344662488858444497348057271383468"],["16846646668408892704760757882725915901431406017928487162542072503592765920908","27975965655642945478439246485032613714416868296099181541003399666330418289272"],["22937299700202232652919988611832162301336752166811723377028249849748286780746","28239938446932129086031914901460238871605600144921526631951899112000005813153"],["16647594367141940158550282289079111390792466925862485363901613196578385723116","13097984354648447362753658385808676770240225962867735618037018225681894471049"],["22398473482685356005026371145718644295975020883914364179011248714554734811559","4126487486339509215840900876157385465675263748380085735742545056737974677153"],["15263104270920455604974395481720909158502153608409940741755394370477364322044","22865293068041230520687521799088666261499170204541631238025116068419409880960"],["19247605730641215220739712458103706861855199502857584230874454692713755470617","17231739585234809126250378965541428776930547797189334682863153436185844437427"],["7132854009146879531870414009135599806774250807429778582363226682154502386504","7832367365424391448530268568560365079936278758398726261556149907588592591049"],["13007729338112385218237217009250144046747169446735299305537171555863231480930","4821219829448635429634073866159631776127880576364779943736135657206086835180"],["3299593911066922491606097348761482892630095787893063983700448727395800111746","21206792577826259662751631402483877648033437744728436339216322994251119269570"],["9261252432082816494949864373641893086408471335007540576722059675394801924028","19485490725746998752606645131898880101290818166197293281673616504444361173017"],["15155862681393836938225828770486131424789641291807242178651738880053790793735","18524325212924027836310849414999802154653348615709403733475575176305281393388"],["21597680447238341234376884478374962428234275448572791184739489296587558595757","12278604234459411071857585375698698124478252741955342440286527904785140103321"],["21726478048038312117396506299424786699137136241064500023612620494875528550196","6111585648760208087614269171598914384048376915462590705750534501618200588603"],["15516950140522297647493014048592374364849326244161267392808406186931457902510","7135242243717917596358886434039893431679847323623840510466263887952347608304"],["4748459558285848953064422481756060757404858385791674088164725318997091378899","616660443799148062218749555833993934026048266591884930178028659160520492461"],["2943613327200338746423173155249736198427281058936119711853718857390806283939","19324690457342952984827376206382959915707420537014658208478141425300224596983"],["4940531876218051117216679021868808234394765229672039235515956739125656733326","317572409996321193897873966431679380606495488951879847454149406196776091929"],["93019231996986195175115446609662210050592661277746126898187024087547333819","12276950740559537138684619778203327738315833731459924812950723750271668690441"],["27058517061209486967737969164372782371016595935778747787274634307079644188926","2835441504456243978181560990777933838170040596934219986224183483137566851907"],["10202966618631722306119419500637386021387236202038908119799022749098591510937","11578748558299834595954672553122017381241821705667162344778843098155795658603"],["4844922667659465082479414059572162390547508044792188438504190689087196433591","7195916464331626390838228726281113333274742865974597896404265289578644779146"],["6902192264677470260169090077055245653010896136979916914126868712019925584380","17799945167950099473235104045954485974288817626349148126354064926372284023796"],["9251905346930700182172898764488403817277136102148814251889061756006875221244","28867862900650544058030041638253915071295687762465992919565410049071599719245"],["28940605455242907170254461695502739361104243691440050087803364900010973061172","13811022848077653625111532806383647103365009859011900346623508142288338493042"],["13055876659361096304871104009998448610685640466699491769739742391321625109841","27741339111382267210774075233145810688123810697751091885645264667077952130317"],["19344195867315122223555109314905689747184649680617102671796786078523795077179","23860918603336608965935856835396346878726755280999042334712357223775684820126"],["10799739087571183539871561162564639899383616194609736638246661502610126103294","6189166646222873068997710319707506461860539485245114976363715166230331464991"],["12827521908206063360082147678903448003091867350410294143178803208795985679133","7464519496060897267492535179499177350498476585075264003920440696405954229229"],["16157847529166929094098543363665173026743889914047758738539755554016841255431","12362571382444673165133276114862333465357325500201127384724006044833309024277"],["13091853608310050611128728958324284661076866920130525904495362448178005807765","794879239023199500596087396974759498823966587863931922152698410133828496993"],["10997182827497483106222424155653641372884150748800913871973748704904014736340","16930251627914978163492759505274779136437036045690183938773035429604597910140"],["11356013991403691341322524632153287667678551635880629876853525370990522244847","10061990172561405803493477749353751850020850518237636755011557835572758013009"],["15933376477082901643697634570580674470324631880576902967671790367982167777654","5317757174896297757100037242148090164421403377933273107759269997092583088402"],["15565283799094904152892009833593230823869227574005046644028678997775371685588","25473265156014586411157372462742647058859181501789864111269066342036943821224"],["2838921063768812635644910791064913642326078282801809585275047225022529101031","5569216622868317175280765800755192488177960978229427186337420620813970512413"],["8513466737633165428503395084594920505312119843495707304945804150279980295126","9217874117594887002941150766048914708394798005470733939652283625511187827707"],["5621108656143233620019281255266949438842950247212054893877675253717829337667","5707023399578429141110536301786063306980423777010048955263171304917556542590"],["27143840736692207521628297885641170802237166861428957430491766790417513121674","7071769923774101449566221891814655208084072687007557549717671805050729785060"],["24750934636166223181489974061102767189244629217019448263442066378757929215880","20790298308176355116351243814534431449424896809863882912686680696663347218624"],["18195602915652712962707880456347682902753253963404702738048544431075708519233","12791472755383124996158497967886333051801288070983743265723014233233439836926"],["16277999650204713550546774835281457657732558269947299307993572014124224597204","10346862921396495763166059681213193147760175238188365280154985957131658483096"],["2547267614347589788563435317227875528395590764198551946265248648163450150999","10528728052939489288472662115980077602624403041445675419811285607877249812363"],["14943336295310246418833297533019946054443697153694399256272988880255519865731","16179195968849048368341332901920464414249054111862497785350024358066514419668"],["18846039785372428046025380136260676015356619238221691859604656363030510205799","23364852370869004839322864873536115990884708049847465188709201989597606937030"],["17179609978985909979532950331235500657269905296660954169116188703066277564646","4049277222454927236125779705071278246803137590026710995258640469731279124222"],["21734172204620962479217751765920856500219790912959889782369098068703960122247","3720182983035483281652376706564622460439217062181003143046661089137507692034"],["28755299714989752199802692374697406395905294751925514309814081749623855613610","4360361164655911615366858852093626475097673256792973015864556894815332312460"],["18283663156338582337587772933367460596193533682113920963180773907773127413394","24024266134272281571331575357657351782214771937816253208009601285435531774411"],["23611603554164688162660238461200862615884979197255031382819048902328052906439","27689821276679118641143673256981839924216902313330047010984962890939477847098"],["9691320182547750396499168431567914575816043062839278995147796022313605211250","22810026145738276741948023603424042910461824334802289213026065167285750801436"],["27479668739506593806791838641158294554623167417009397526100487050508951719117","5504304355588520192527025365456185024255306922996462646251354161691469649065"],["10458680934752090689146078913502936109780624967493019725295295576286168767987","6040214220272454313520882926932407675226956433980217016143472965644820110174"],["5920719565069573493979371842015787219231054440578155790502835781830650020509","17843516833560980576311389713474511329512906118598289265787875099657058976022"],["24898021515329800785837674158743247687951651461491169911622774702098764982920","12999610111516122338373929785339258648435846533120145513330244955210984568774"],["28408198963621699781910813060117853867597057059551399735627815270557110659617","19009367224574620749355150499903861852472239076585172394534057865806465969850"],["539376470940138201750833822883303759801323562965835470943956598858008481522","582631061743342710848666752674574761570569425299600107316176176648576809679"],["4078206805349504881719423907333238426640891700936087433783093157644907671536","5399078862013949035126477732049394462580836394452220054782881539811669310373"],["21935269373683906179591530779837235466685683987985969312302335089821581590452","8067031781353993154733117358746704319095714066206006032742418650431903340243"],["22938659627135043084419202370265659205866093003790793773194015790496745153256","15204923833016870343420703139583701756974016072157106099860219637078231186896"],["11643571800950023456399088165456290536173396802972884599450245299342069339607","10518003366702203278905834653925809393928050862769207856926627595964891200167"],["14559288973172013157817324496371350119166983526142992597453029826762496781942","14493826398836424585267166806228397489371775378577217711757997062749956631711"],["4183749830138371497755739760487617158412982235230962527966328788820108557606","15823326061406623197946554573484388160156191820309228653376425675122407987872"],["21779583261832046679337373310344319963426436627721317207271156462921247822201","21649024005178179787971863282110747028291075335551198042836618649534144883914"],["10261950242629079380233484629600506653933614186912956458285725648608785433492","1563810469347467090861654058653899711757765781058787154883678362338295775903"],["17064789651826809933473960437901262298709457902409990080248861374889615033902","26843919567060227348899985873346199458991658987887852352511406315311131242160"],["10940069783576868893399647539259868287676007354706701081422232773476530724893","5995771032247516765543158799074362690116363175364808288076869139606659408574"],["19244330004929680035206519212627479526558747957761133938657424852132340307056","22173172792554208435947899900839181501977740818339898563090280183193132871229"],["14544335895456103014135835861439072742364988747312814430665089510209396200470","25749906809328032170780620717392111746394732384743867251489652288065463265416"],["19365861398104950915512396864408700461919727319450080928641758941932894874047","27074028734011193158803117521915411770266358415552315387383479922147503024674"],["4869062181043976380704641873260929713514264686739200178988510194904775277064","28789437301214991510143529442020789910591799358958932532060092434876676506070"],["5941753300777797970445807909188727096927915444340194812214030610543205818045","9834268358847320260040877779857792143286904048995191690189840402151447408013"],["21797055239410279004211344314874412744776501717205717970113804425388030648514","24310230483407607778369067238348455519195830538663993834273620450954098932618"],["20635056723730099653112769681784880564146394470471530044553856841649291560404","27799478341643764409680469934052029775518031779060847109126005234812897751162"],["12436209676014335381982451532880716194964903819129002174437579858666772738374","12983541536905580360395938409102300590078628140823398205206987977662967381646"],["25952560203030912929088087728788374197841133201611740318407234279138609882743","19651472616147465833716461235955075028924812733699983610795713760430178840929"],["19704165524943343938125186351293900988384027134970019814894242272354087146150","20400889517872417603482160977233219531746123849944153628740503518703241468847"],["11402990529314672169000464959854601994828937947880151390348532993055352341740","10559046433858519773545742046873628143493542674017328483067907476745571946052"],["1302572545036272334142508082173874971078887406399221397192441111177050859787","27340250977934188728388738987496208367165852582419284066582378409013200991766"],["262409211869420066496596670156286549389372088433239839018692784733108287450","3668538791446107684849202507356633907885167244422690977674335371184143512174"],["20544438921367458264313979900926217274221455529452639945606526116200796060870","1294373818304734553941560873080208526736959360170761579388593069923366851583"],["21107178804601209846355448035535318344002826761211332687667849199364650617559","2261085265998194241003866813704427882324548852491522852115151766717116099174"],["1335836147465945292432289601207675754124201086292304556834906167362913499386","17298978918795603195899053544020510429540225044234416018385850395868062956011"],["24700065607524874688331549988956690036105861760616286940636072938824883130093","23957666181167095996365350479438322537443937741257586184563448403899220899356"],["28751711120200183461742025324155021172129747708288947104067938835446922722225","22174624992871730435298446927780057594102472507049911242078833746519942005419"],["19020048984111558776660833547068137978263595359960895518291567433496433035211","27938730161083511853103070122818058405088538654789514953425435854399898165212"],["23944960625643329836216333428507179650204948499044540081108101920620351623","8677861179699543543206717228943543102648885415230444053110875237939259512346"],["5721698189538654014645401349721641219876750286189341319577338874762635315473","22949618884894266508524454318373098222383549458478388065488246985727733518951"],["16253509956022145071241276544523455964890771942694072031584295143159352318464","27679568789666386642303618910643360756566234520611089573067979690306696187910"],["22242220088280864137362284537635887081387658719240915740822791261033087136311","2101977198193067960788910439898964863599253829125013356354876184228198301120"],["4776386645547402238751258207201355860925105770369399503759339964184452426571","1907795960988514644621751226340852045935658339383369743151216673021782702881"],["27702020217261072562975454940142245767904368913324381365918645348181944109536","19053695493991924210091429717955562523839989647827609957370050487277683035000"],["14911716404940841832929030474535377769513485269493464322367730480493719688093","5218432098741692491561389299199085243591158055769000583377504554245660956158"],["23662863773148297808041352081228485157911311460924754501732650242610226267683","10864414754588617093322905150065625090015963336514445331756441957713305833447"],["3122083282788087156001477887441831083793922266861088953344545749204378895481","13001662531590251381830487331166490360717861757359800773455876708397776039222"],["20199221208692263660481659775054594388187472995389406492253539496545870979773","9859657301887831933459070121729115743553317208030543148371553357913000365577"],["16667081427230155908446557762615287369041199383205227144934478677434883748683","28653044433256446418732433781912555084501816635893075351099735474258135652054"],["20979379019121558377780590809132594092223632553872049966697830497458560530605","17105434019275746239893113887583840075846696997119523081060773512295906525381"],["21389207756624592546444210540808386876383770470585219099986765948006495462289","23313500692417817674024737583554130261437807910103341015675598218540191045198"],["9810895070164764624978606370704403414508171151622946073918145564594703286437","8741955900468755201330814353919988083224203886102904457899722355475836242952"],["5912937295676358287857337624981517502066810253557760176002215935422657134841","9828615335218362162898113977637110298383344522449186000370988862218994845638"],["21727605342355643079182999356259236297851810609072425084911128840517021271147","20256640589484903443227311386883629776351295831004013037367159617574048944746"],["8888234823040315433521590663538609788645695933999893276787470996401769400860","11074774762164365499207274071303289503600301024750797647385184197677333695440"],["8828325489539192359324962966247943457278707646705059640567065749164048121683","4591476983229589518542787701809032020767619520067076472056819418199829239064"],["6274203515806727452638549598978022712607805803227518952775268986470716189271","24986723150761629973443178775747697419144516420595434569184157775644013272975"],["13487967566553024373985324901805283727024355342264921711998445764156942888678","24446637189821251484831734446086934021582172957014556451983121643760487617383"],["23445313800871642991375787751528351214417679314160567331045124458189586621411","793361226477216116072572203281555684659769785560383974270130888239880382318"],["14819238738905172322813561325131634508952451172583061907677021395108224935741","1087323129292305139838349789365216972534775175461047111097372475464838897999"],["15262198298129737884198072641337461652786860797530573446163573746455888827761","10679865477954690454736182101807792443529813852720241386053857777857752851749"],["12526532004431492428002312591491846846709475571153193553769765222280032068492","7538964673224676517448474877374958727390798881291704864045494319588588721137"],["25987194296174191768643584025912700580372608691014175466758901707089557179367","27351679998447908219772851350178520915348998972171182401586417786818892554232"],["17333964990922210519304296622709213437355664572387594770665121054865606647928","18690240324792120220719103554674900752427286455313076688174333930496560295162"],["6968731227064947236384317674823662347121477933798878884463942409143235877011","6167954155254455977283477212661485418892267053811495571334333269731781937127"],["1758770810798848798526544936380053044548519060896530738299623520366735163624","18792524217984717976424437375578797708132197113753425146104336442092982338189"],["25817409543995181504368706037306617858615482261677860213519388592955820044688","26224780343568202867037595935445202460306222949355890774672562614908902830836"],["23702028054193494569541970369413108619854553354832802743408950274353454985741","17729350610374121493421090013459936041303773943746969541850801238000694090487"],["20763439435824355835322604405962697006744590073834393802933665842890157213712","8349760774467708900216218262587914433949405247019390428087265902762727077773"],["25432522024129990403590720258561773973956030015670130773233481066988797021830","7494961381289373481190865605159592428971356950367965895319096182870946202154"],["9929623402645189370247620253962640908490663602640049439320795916791643685318","1789124364782396033428951343655530702661158220018248295687694010353964041213"],["11028581871439962472723497737165600566825890341484404960242372206205798651451","18991927089704563854703507907407398037726448002766623252552677185701261949041"],["21667224398489567106043081545943564138108411993599873495544256865017704518372","7615877726737952541875935058988314924121183532154718932816732576568286478534"],["15855617915717976331284058396744636081088371754768372102907307237944637839613","27275945956010697960350006136316311276295751569866189170771261290893259198039"],["11475873672859377918531756545102036905415774141371028983940570564678649191515","25324846160187653574321787458029477910163296382235553227181305998287486375682"],["20238299686116187178983040406598712630325269284237956906013501150068006902787","22580531814803642861938200809517269980090743784871059316666749358155045308747"],["24950214440490864428868881486203075894844468633178489765715755570916968315552","18507698537898026442184034757255251380478468481062354222892703586643664002710"],["3807644192958507634335858153756525219377732611756428667499456846418582403632","4447450054951284837300327119874409726704863680787022878016166972774046637204"],["14140278010429044318987575157708103702753955601777529568677472396215539787509","27578134214410899138158452407601925794034957126803980718862679439301343889567"],["9378292193236424525090995489969190124482485403042779368815204591320073141127","8714162143639578039440174962022132191123837356755146268739421117510759524128"],["21295666377807359322198041716268466860606833264909149402859198080093508067162","16800102846601581575551606604700093951617475318634935785796824667762968939038"],["19740960908824829286447798606521459344547096647708550027712226490979010363282","2290630888398408194869126782127655115059795756080719420760523635084556198379"],["1977743161247565593162492303377070967158467065999777248472456488794884011867","6895969221141404268744998415929150315111332995806461423500460298779486004329"],["2470073353865086217762651947907910556099649466329159019248737933233265750756","26798168770737261656745276820090634058885086817177948717285259226011575212248"],["5739557792299512484442403813745505319300626485454216561317029935563183655234","15965377404631854586715243318921393658420351381961098520728347388781616755991"],["16963551498484912933842600620338859387409911391538797497363638817012909084353","5228653176524996920727441972485724030483180945899290777540387012325240498383"],["12924144061019646295346070878339675328986920427793523028648150550185865208774","20032858359779709760263422936535225856828813291045927241750592008578199979242"],["4997974746208761719020620591966914985770659636180394159122350061913771889758","25903013540540595093572876913001849407380693999515233497634425246794924965408"],["8447635661918353621025482133703196972744709047666362681248178708613358106370","1316723011852493099262640051146442986384791287156365344590353832225039021966"],["5148010428337577993645525689084435989004355355355333384559392881515686962260","723741825642564175941799675900757341497583565665567037474758825818547610464"],["15893704992408021168201774977701420467059550000684667262458025848689883641112","21071396015915528904602034560332365311117848549098163351636526366379544769087"],["18138120542453380612992086614348275316134230986735116589775490876157567252825","28394529341870361302783609037822159577563994900525139557193230040777581090798"],["8274763675458723511177210672894806972270091084267156191837990800658613895779","7239963318124137135736670012886497508327633212985852143720177073516654977738"],["26837823460839043188129656111824848123428203306076097729721227887265622077366","16477864903020764799933595052282169725490788613002250034972268028930737020794"],["20375849882331028413516162717869183178351777564310764911994254321574135291459","14213367376219731177909786292830173590853373464492618776392547596155123714885"],["3899469876597235359497152086117786577331175271447268765804605295127191756086","16389496099182091271717627922646107206501252001412680147429672357214172921728"],["25746168433576597194828543098093752861579276854008471985270133936885132079197","27692581242403277353431627638820587635771308540066135754733335454085412739996"],["22874400777072957925870066113322020712971363913102723249529020695219551355267","11862926565920281649854331473218635081099840166857889599073738377543788547870"],["20586669234528976783067871134068913601902279027313847844640951503448627339302","3597413887594016696935893003521496442622969110811458257287475237960085549243"],["5233765240331003900970285804709905393602096464610355540164143243807843602415","17311569308345686773845510280584965799972098116224559077691554007834452818696"],["3675802960328353057087157554665596601585925913017462931278803978952029747248","13144541661465977855748969981906666128535885782067273769437852863172958424432"],["10534532714553221697863662189466886754779064366398814853015394145562174566383","2463358235647615490210977083477907079301948365421617696143513963126740856875"],["17766201895179936706057446252784460431507711495458102173427813656138769849020","24304507240071211994787734834973078452204140403451297910771571304272520334590"],["6037388974731388748115318670808168239957959751257657282319639524883583258023","15247417038245252290536834881327402838111961170513632625477172753860806470040"],["9466176578062288590085035929979798069838888597792918499457287051556074247636","19665356426447041245237505898936105394178283636935293769691692587977646463792"],["14268565459102363517028708385061883091619642660269588008926085021404117664140","23326938256336448931108183062885276808780503447295787947090496013365637240791"],["8854466778784614017353485942243213284755237321076065576563729450270214556260","14946199809190668211349852500070695083456791610217266041211196464470939838565"],["8121163566918102107786072465624105160895831974460637645863413254889635590151","26012247203192131190289991561737162462610323843347638681616367897087763457988"],["14118066867738599458950886964997519140938743995371793283777429909458340503955","2692437440377738442154126555462233364494878863604033781982079197710710888446"],["434295066414298634980563480683218011533447282617193704573428199858899120085","26016866337275322404240739207691485942310923467162758873740050131904063138441"],["10701159817842365067058206309131068162808635353057210199225120498340222052109","19985507858142203363527474753556892512769705912911760773651067519744697612482"],["5483592495826333845985794352474045393552360359273346715712984043039597581526","15482178690180842890777002808768946253934807980293891919400206348489653662532"],["24207272092783561153314591061278942553311137579812613397658202586460777225475","18923386365972087535196376744175509084560143291377972504437793294311231535906"],["22679091177166587297702428796076289281164835797941049663936543888348646238016","19879370313264022142089989069227387720283175857440434090431589179506305810859"],["10889309999917336929174228638454895754131399214351638205146882021695341403446","5890307381858561341669388173423226612703184991477883553724001707787015344539"],["4719067647510998631752158694500877075916729153338738171966140173057577268143","10799601796502441850998404622910298688186442409096482992701714493816140447425"],["21119447574614512196452919930283797589411414148314657130668209847450314350566","15769213431389576492515986318309190814047642965186178712831304060000636867315"],["23675524095976770899711475140004904910362534264142684967915721129001701832411","5019441843579768726486178741522358993558104021724610790651679192232770003389"],["4546879763552293486399585725633556722968928658207821225179480193018841712584","3092949945871207773005080673031667458648257605688476701171763255765814075243"],["13096437913549720898007599548219343206810576693194613971328622415190505145510","28098411944387234042472136362156995295788160864472544130177249474408344180775"],["7484526679932764761677012885565978120174150726690533760171221511014427644319","4802999785667054181218586727972372783817341448434147625476838719905217908986"],["16769565761800404119532940665054553341122501926266740680322097273588643227495","25840151424528153778421285400635100771449236220181424073775403965080010945835"],["27179464545357978054821137484687177853050988094433925360820868770311036011818","17965697726209675990445426515135347165833898375234761588737326325061842768027"],["5297946784794175307853470996838600461051910837561438718413363094947812482507","6467491152516228650317227113169903649360088250041414683810175539698219366842"],["2822540615761723135621870168787371620842581323771994641596578604829518250396","5102174866933467820537956836809260571739891114239833408874795472071170410170"],["11291462434261239852090152529959069945324744273039161224889387075758824457817","18203869610080719559856185832845280955626449225952114922785380400508920835861"],["25408247616300634994879891964694300593662148814114885051328498461189581546526","4382145841166574775807994668711393838878975714462934735552769035980082205213"],["10727645790458122940067026171087496501753815593412721820901517328064327008811","13906073894941124048208133742776576047899203337697217191579500889616434379463"],["452069469571271683096548619051429090516724586103727239470943841742758829582","6487433729388013452021768249528480874602868089179492924433142259177610555140"],["19685943363872801417524730155999559420863447660710184855148505924301235493451","10278660681640759730660320603985962885011953864213470984136984807501745372107"],["15829568303168786529975347905631351657626348941770917515798321846208310988814","5193207960109006353723946544560915147728422159692932463964580125229616534308"],["1862531637246405768108499249524679484809271494855283449903741475515703288230","17211786576316308865732722792863781485677435589405254491467109526590425814017"],["11209994150112745429683645296789257336761833059496518842002421694255642796192","17878590496741374978228531610243783456409293363674146295384353701139000865163"],["9550513730231986972775662269093073120224901546206427419783794588539083103957","20140748464978019205038845253970891421297588821962675887971055998932093550722"],["8252706909066090096892527789869306503634743963165062647714763300963490646579","12222346656429128010491691924417192190052686951766338039642482234883438063503"],["5348157366153108122700523894045770137014319839565309024246922822213499895486","23756718131667504868124385072552935573408853649464820875591991602025553885733"],["22606619515858963403513110506160239857301696077326876973550900887884580821550","2137396606396438250732335399595618739755644999228276953866067404228352992351"],["17400339034471041317382141717660505918672416977698021394548998199179994026126","3020677122831797026284644054366671647393102014077459615918505977306033660664"],["11942061468678664820929383593786936860012900592702187163276987626961465322379","1717966595075204543041608339733455632804531519177981984780302265708010623759"],["14569217342655616432971581827834797555092749783720104474977412177574327017373","4723229703026022933228609485649886326935549379106222046415564912501304175249"],["13953293404025379797157872630076439196148196515297481208728405362695892327461","2289631440458098373429598485322032088847808241001656611240599896733947780148"],["7250089213576646641191019864977582576223763614689883908874565829116087506921","18448809670418594146635865311000883943803895811969736140570741037939096129130"],["14971295877660573976987999073341375007840537757103907314719396684321912807890","17550032018922515324120915285594923951416013163418353048795928326456631392678"],["25155131361790108158551321742310949619345739045512562667857867443617492455814","26528563337668248557010885424272850215504652527413217298989359638104593876610"],["23853322610591611423788798522738051118044899425198730517342695181094224598005","19126086285589293751532576193920447524423747495102079289327271473235808039600"],["5874336666013344225878724147219010371739842257480269818288124834467467805541","21798595597919682460734544856774237582998551473896670014835090003975499818444"],["23813254972682748084147097970387155795371379673790612224872717052729632882857","13096221159831089176748454846575570752035130031641175340703808633881121737910"],["19247827946089431513652632544508472701918260209517857744630865035930505092932","16849984429496233587773421734298571164967145422523239139857941845136215452578"],["1718434147578409689990979388039725556194523176306141346297288655941975704544","884120161289068052091672199838127841267167142847595354803155326469290014137"],["12108176960322113879395578629047045991570630317940761387518163727801378943136","28587070234823214997469174060700047584925978083247728540162035680427407597770"],["7507693630723358762558345875130325190637717082402712269378140292013766130676","25332527836976899039737591349083851116120298688631990728851230789828068498575"],["15789061766952297726380194976422300258904667345088842067268161102902022131001","10977376615501721040505913363960723660184475293695408457682914997120943203381"],["22038205015812115333679673634555043235529287042546631598678979607579211873157","15685806350119099932752945958050561470800991850263053988203531963878985981331"],["23422446846939045222365963480581081319194388880648858127887632061683627822832","25119591359740817199025998782997906568943115325301713752015529779628336852107"],["3780605219520578243452773703645611857290668639606282144928610074650701859852","16595225944701583037982701803682941897732570375087919909124085848584238715804"],["28458595699383816427363734351782361104148772739375783565248354515358344216171","13385210895276777597794196579579165370146867853750225726027400482955035792391"],["18419173998902676249002989247447118248187212080637785857107484612220719665210","6203492912773684666554391006038141882684899915619376459738737236984529861387"],["17411574186020815897361529218465014925497639971284994101737138295428701957866","664268480170839710585811400102310940161886944251942662437642582511928075609"],["24765032904114717989142181333590413026942427911719530789351193088864607903772","12058938621092600883975675652712218918061411407421103295381297971471110774897"],["4257574961932147573863813813860958786127441846845906173104805352639777924921","1286545762597120557740589143879628471688611813949106919464421226656085506231"],["22737445467955903853613621337874495319724576924880699428191498885625834073621","5419738260853113558270712882637531347655673055687751509792196518074630998015"],["9030978341328753578688879430061501824796423546128675355775482370531211728653","28871456553373594084563967831163363987999389209817342474334330975370115127198"],["4858913683267306261860097006991926005923714118781543503284636314403877497482","24430763578151043858492089474101641396222068506236601573180616768237352660098"],["7193037257901487513206585745684030546417471392532922071412143577841398040112","13442406598675244062868227348404879436717086086132841908135644287536519614492"],["7934736956599482373380101052188558514098876165366739088437952066090924973095","3758148616268896018320383070849495333037053082481570976465820761016165963853"],["932451305651302199492674632478763164184889076494972923046085562581686580942","7010635599024029924488133730533070830805183015914430111571719576461857117974"],["1633030425779757150034676457149927126146008646409617454665280917811583014210","9526100506853563314767837499944085953295284566954250547240573368339930389440"],["24757783163630410558110274611027937334190510500413090803226131553952536795591","23248197331901233037768833478174680954603740294393343640236893198618033428775"],["19795971881006525638111970555430959939244860887678327410415545420312266389446","28325369100307930293135992914114871047937778400962398224938137409886137843497"],["12502627844486912728468805724605951964754126629994697880823806043381114445204","26388795336461726498030931556155301293428501726920829715323710588935134683488"],["15284471898130224280692905952545245600616974000260748174679127776362464639560","9792715978526375506179010913283524485423057837698975687357090381670498991571"],["9999386838052597034166830790481702979768292264182829396356856204792322036454","22134193211059031429144958463734787669805834894674853482719245973183556252398"],["28468114622523816896925980860314117493339462146514403837403786493272920931241","2830841055676889288977354725549100029296913486770110750174507723867649280662"],["26351676881098408432509868634049734362614512240495676002633566127788270361756","28490660492501616167081509052920694626980688918596290675993381002159028666721"],["21643856824123503484884494227859178042737130397242699661115909997160228003682","19541938042630271009827936114691399108908073492438675569647843070083198262368"],["26711521525268413657687507604593396622488475042948188384006984104770796868945","21756288962158348474029916277800634329513068499596533902966712056009627559550"],["8974732394318333255274118204008451404891194786827359560738127815336058085554","25526882995214453207770950108492614537214681874169989643922570886041493241848"],["10490497795423642789768688532400066819936655336850948265484262140385135305392","18598073169389273971918891611151574218617366998088636480172391488712077857002"],["16606310528307219593268482924286514536423582073778487786216412381032513921171","21734511562474403891700716479172078982560229805692663311418066420800360765914"],["10807166129299406065019460943839246638276001241956388850907074968225559473108","12616408480669671146061357502811589129206775001694484951138640487013468969150"],["4433775443822012024446461864272570537387679680914638944572334098850181666961","3751455410629049511475629056579806842040408784743434135218169349138902710"],["15120962785799259831971274335252576630878197119001509508020811570960588793749","4801683020550618436405351088365941247536578293632417618616937879263390573839"],["780215279727405050157613073664214156917382582086464687832259076150044967999","26056826861069345507708864483998257688752741536937140522380719839040334199584"],["6925606285048266807807759574710581432274193927664380036027698881100149588963","1605928023606165920139160491081864955852838366600548861527624485951967562620"],["10085760760422370177700329717642522490103846302429689821650594578472657385245","942889658809793848942656461220647096856892746092213216127889116777933503728"],["5252253844700515365220694090473229902665863188834043247599256653148880464947","340463779475179463451161747967212137158512315818993418793269043839350009396"],["135788208070658428503548864002174168295651119753296778087731873404765370251","8216237243109238403245392630397855967986030108241722171285069406784004591927"],["8383679121614000271118202183120357461820376795288172271040958883116329816352","28012972292487397873465235757493221367289971437993821951991007624833305133932"],["20153413131182176650477096442038336012867087169266975680989624579215184977137","14705075240998692178387117381332923534520201172767959186115046015701499799172"],["5701578485089222605876357001050717611241591078610067255234475200945640544836","18070351714142690224624219277201827107610822077285580036596396116146300411745"],["28485398008053661498726408140215904933691890138288712443048769649779934157238","26788878768477327615531993587363314283082536630265185386439232146512634477375"],["12890401156344829311085781111784034653864205813647934955425433621262950454740","6018422777794581786734165227035462235801726245957245982113996193406530489571"],["5415133792992665021788515035111181207760127953013972825580387701222060620788","10783749965692587191486291826447903432827455854665828257228233436940164461162"],["13712629261676016438419343080300977147504645635377563594119702428651388941688","23457899020124136810964641819427721300923998900379245129283297479239339978140"],["24077241768769182955343306750597793640276776103276811562673088237199614776434","9617700519852452713857492177219706798678713675934551232109514912865014508924"],["21210595490149860046031109686515830893645694333652555581812076661179865037777","20299989414749759899346338887646791488538845755279032209736572527557316040325"],["20023664237754607063647143289903027678410464360577748681031640043050876288839","4944907751506537061888822886941380940673628608442524519802465429822224123648"],["15114388067450483156050790240735695784415506855710603563020985512080162861736","16340776635363894966737010820518361467844208135520578459661842310138362828397"],["19700774206211870341569505621817215503467550161966263876299703668995218169312","3065237281179546599188735319527669204152360616262494168163990746924199801903"],["9917859894729656797114554920110102628838578635068282313668103040222305917038","28554082653296880434402656057590664322258202565314685923939486317388998263582"],["7134567338031229507785889495928713412228119216452084355059538383911042616996","22398180802174807540219440491565413605874738654749715753608379388240428466647"],["7649690941271154668980069038785312366874241626630343951842782905927314733452","16507353121202739118799390231483504932903697278395769250545275442890088775748"],["10326250116773675135987671268728291746966552079368514068941188129114151096912","4174725210127437704337272336173011781786255282244697210403906007042625023522"],["12231736505365933316472437036804721336832640310602672025091494436835358128803","188027784038180645983090517083741911605483498365372930998252919326850122933"],["27626370899374417081232429002581963792163963603742197353913097106763289514668","14132986856830117353733460915185807990673384442808200119936104146658141313128"],["27677773651218376851022104231518098470386032093408805180699496794648496239212","17396826619627986338477895203378649332156780784255615889255690798656842967812"],["10476251601468344331230716642649137405573681985307109996869893325987274336112","5412341556216520624864521809471433235856114500147956139612483921564378350184"],["20368403218466960955644857290293488856772218963653537113925328429494362771727","26860103604850301059186970306003020400191994628070500759779893432475522231136"],["24499285497726497710046792429743276662231281358004459654960304269786434574300","24073646925851867971614601330330805332038074865030422811708318916502164409354"],["23165431556719316326934155507804713363819882433053454514748600785330627398785","5617890491289857327296559230219099584200447457485512548929176252420228658676"],["9248054237854236018513532458115878224263947279272917515835069798536292803688","6074622617544887230760512836158069819302718001051238563141792298298374069764"],["979612565274994450854949777582579192450125236563386064638807549079666702891","17982377819133488240065926436764254728275019788555218221821711505606178774868"],["25858724475097592463503211837145054768221987786999657646477817054108959860620","723690866750547916128895728035634441592542956727398743214336256390551225922"],["12917934857624111256537296015091120239176773578496555399604044968789858559633","18917618227349300504585721497381833948595565335063730641975427470951378913169"],["22109293755044465182661718536612537748980554478044560185708019767734504594500","11878382132760651175344717372959512554993140129680288999972674380234441557760"],["26565428588407419724686793526990675291943388405482656624102073107189318415905","24117615134191350384668341225049249712672073236704626961421799518159835639776"],["13340230125783139914497577401474581851450603126657179868445272052587982486095","1084457942022386335309120061277951378773166005608829953541714101850209301605"],["27569573639424673288244364951203630257186072977161930819295420367706492332133","20245941634301986601912643298389945558249713325701361691991481988849418014375"],["18911386880160950213207536060992347638101718533426733866895970020014414149172","3455161219128738124426573975898634929459855126573263776319632019171564143960"],["2793395575684146987411557755287636902349293457401818832710637661723310641412","5002027655688949969298567525136214765364451914676313122129795662251942090062"],["26830895639463261556651948181601299249546537268389810136824485616514588267958","26915962508306528955695858499344698252634555528307078923836027068274552758767"],["4193911970536716628854885370743658329677621051211328417016802184855641755287","15668624319693675315794067898828898002218711049950798916765535778928917596617"],["28731361290528363662050780699077646523114662201161129155280374739314226441148","19326716009071277687811305019447206055585464113518970605506243215634161733498"],["14959903122926522410590501949743994754550610889809640810982163596121905918860","9639182724095716664098245544892768584995844043751394745424182982842628837444"],["448468205099159457288464492222058363419953327046042704595024124542373704431","24637685754638845514349131228314911310113879463213674597499258544568037397551"],["10075765398160148241138896131493965971103643400075436310577989132117840860058","22709021916927923748297981404571793818851279307550731627687999151725115761424"],["23926508380575443382123265550356240848597687512116856237968413460624896835905","26973484070397609187491643394797912311435622139724247038613758973512245047908"],["21105627760505223243178640965568729245222578189260050143164944956669072945849","2462339816573196604970791107743279773640623089771586865040196793055937023853"],["18982353189092689805984947849931241109191794645662658993605181075071978319175","28100924453814982878604333596043394955838730045713241814272520639975322617459"],["12267204192942474607296831373658985072148009048048312017538584290425500330855","21596027076708169897504761373516842154247735119664804578406518740019471963187"],["15349014637955596145033119450247828927290478388619256995464789528639423712870","858018035958420122153912902835440699922313334868601531477748283570694457505"],["22269435951769772761517716280021394094672829573551159464475043577529262923707","18625297634795507158002437635361231902861886853854067385278906029775611654993"],["8270707625267381914406107490991056306411618404687603599645846638688026135430","3618178746413975295616321494825991323613864423633460381873348766982613121016"],["17448384023859099645156745650471974458271562471084686037096913480605234035361","8301173253227626866396281856512778728230526783985053032479865766259258456334"],["3664266179865534385250014834942498010050922469552763440539435106878625764601","23074927420790420042152545498935772169131049805311848439696819899716720043116"],["4879950807181126685881304189217309860173159103131180884982148451919768989899","265815322683303784248740842089570270034983796025009724432591448101568287301"],["20895876494299961400004919905531357085224416642437397738605453765152252189110","15564470329047429783181532030121262881163118127886674086924977423124833278139"],["24159558494299553447305865861677391724249815644133506994456151483175073695073","4865007493198925127052377003632238846246209983852477819128705547514797411393"],["1576357257914867019622546108168736982135378319972250116085404128659546738765","8187547499505553062551437001894782076433604309345184853249005070988198236161"],["17930244236089988886435747782844127630255533126115353951466873343691777441203","22080621564342695651600862120209126744043673570269997232443996306850516781378"],["19136725592102357492174113450024377974103049660782282316431362565922600852558","1367384346524715228646596722093372516444864825236647799698585266445573387502"],["15849899256681017903537880267751560456937243067794698692186930379097498438281","1312095104261613831847630666967760205108251131779095207976489789520925843254"],["22086501350010150439423171586919602122580985032460289615750707730698510098725","23461996705379758496794696100885404272818706550840346962233195385940800839324"],["10260840824455981353286379466779708424299978409415617440754324162988336235950","24049719517947463808961472611975322366701756039573352501665443465049051107658"],["9497215083488821704866842135810872795599797098317224303743976315035272048467","14379924982178521462615032349383944907691226358788984428669184062425145580695"],["908688883531932613449309907340879082819443070967293575381870583827286529887","7981684622953304092475438800587140843656906799145195577202819432414947615442"],["21511244435962594919292234423883248592076531575355200503030300136994327868572","25148877792585040605650763765047517135926425248475866618037560786145195097328"],["7121937111259067562157609285412629911245647489732139796576054647522388074612","17446036158594697862559520165532904498941422685724940377910915557505405826340"],["20294863044419050423271168368521082217108102162986741152742484594860335363359","24304944517273918331034069134718794525114748248119189791440939141033587813885"],["25070735205853490388300238674374719358311614198625137854398207237401622068001","3297508653987459756875195215913370341528809177604153370214359470441820463100"],["28325608390556127433320716757114339073615034801459004954035753403641216894400","7692272482774358155065604405163938926390232296630326939863117084679380422040"],["12428097691605991926900618399954735036158573336458073892761279815700678309401","24338912218940397293458450977849184989694512350097693191441642839760762100451"],["15947530791934659981491692081156211910544702243454355824521726142690924779214","15044564801567259392355680873459973152263373151965205111207371854545555744054"],["13859321857163007607361244547246387299193120429148970648542786387934507911052","2929241510731004936581350547625572898137675864050637642395580739305029568733"],["2312494793020341388093705254406309121278888097472168937473651962152999797931","28095627216160281902189194253869583661061701383955034403171795718266227072656"],["19114679674886665442084314612608447764219963705693830728814055634309033967372","1943024326270471291865156983168303564887430422106431518027181199548416578703"],["7738280799104058413794823245218093656329227681407510072723065278985059508332","25110897170253575552446561855438281768050600017733059570437861658008730968011"],["26656732954089242120922731363341620690097384524689423306069671105297040151670","3085324979572815507049448695756305526378484914080017091640980040294915250729"],["4880110187550099554274566818415529429702156842069847626972350038901563417630","21017442608707864666843530279698803750588599541859425450970973910139727942421"],["5225859174975269254981081586426981118600202628891532351099050824337773600655","2610426883398720299930813540654472523898708748838981695696297997372351563237"],["27728295994439560467282971045685661726650528874993184053118750664413067708493","20739301487116638205231597805661162465642436587694080755985534361712366525527"],["28516044457504268585391557253415955298776363118458025742002285993361796315852","27307411358480161128361220867437939159230874752552766199492582556205785335714"],["2545259951812409986895684254106682606260062715876000390615559393341384051574","24540025098893573090873505599921221528493231019654457616539018343028709206770"],["27755726624819018476515647367991660614588723181578759349334290746940762970937","4313369939511510461569681765480741996624579432326033539980510678619043672361"],["25509599681522387667032546365197291695019631225939263065535614931585450521426","6893522979598612858207915663310764161276209897518358271083019821065513699550"],["12287907108425677964049070497474593711082749673749246009523397223069807822421","15059188339932270722982335355058508889842864130578172924711633880228455683016"],["2953810836818143305285410937359171960761455089365518159959298853824897975586","24362042459704021338709151583098343854092767469412040410454679239467039385368"],["8396953660677659437318318985888295949199006326199421878439166905721942621042","22148816397327790178916708987901999637636949740585305665868697567860893290597"],["28815649110195682517047762791554009928207777051591896936955507894137135110968","23456036066812760981901797158112939686981823347953114449144592438689278065659"],["13146023934385117586798004167939200956052912489098015199540228495054589428743","9781272851947136540864373523060731806743295327893674794893753174215796931770"],["28084494883062028349803063868874451468794867732626714751898913467848702459284","12155156903049017128774149824976433893108942052782102676500322171225957356791"],["5923591434986297549592656525281860146892736178429579355567745625395659453451","1480448564009039075768192052455936672010602067353317537159487467731602500704"],["10263430098236956516545447901736729977854499627951594851732391906472070325824","20096717094981838750898395920690075824834456032678857025083434886962801375162"],["2092160787605281517918061207351986799023080134775398605669357723055526391985","9239371709673732943108151318572786446877446185754521050329242652668553029696"],["1916289351930667516050377476363433277832410429856004381365869788663671403496","21063448778634768001217882718427137804314179885403589611696293146466013279067"],["6791517748402908150579740145695369025685477830589298003175041980690762199693","27641429223395139036246408494813274508936348709125119543075258417027616750274"],["15101405348160707660732184270340926193010551878731657822610712008744374805719","25746216553663463021029333868292758546953247229481050671027274829540038596738"],["495464198920819469118532250155945414722771386249723048977599952223787227086","14823839762413171714557098850841107258889919314567159642251809748415982036138"],["14102754942260209207676837864274127667389637272990322357668902866437834996217","25423075057563338224088945619916384910429303576319357334243166941497918017255"],["5584212842587827061001075191743247491023263771569468147494696025258920769278","27067925082637792456874272001496311393055685871716249772843858866463082616321"],["26134971934140453565245149238986691410832122612696234949437200169601056898572","6964751910591708637843593652939979487433791351995321595528952736460484812796"],["27905563911250969411184884562292198723716620311346099537426832228740371191214","21407778654041654878685501763592499907783958174102938832873060980607198400521"],["28945419745337901258124823968620418433439415039119810139558580184796122157289","16436352969965090839096476420899185029626930147178833852758924421089598079782"],["22556726830056719211290605412859229102794175659100080491858283951594829824636","2229329947902201682446012073224177528157835860117749301690081802725439572740"],["25370707211701405134251995629483087798039778016710678742083333232402682115055","9665361598541394970845817186192060993282179252536327678065232542603611139058"],["9932942417240241737418393830331790219985779405714714653186830221268241529443","3365108822139372611261456121171426461279441889027819782383323820184517899109"],["18159231313097166860687040749175273165125369576178686229585187822411182913231","17726265429872863536610039934938543046519870519234088678829780711836582620818"],["10166649280183529061156221060801666182178887844576115594442823278571888061272","2350214353022137544999980929026916391252191898538147906065355247037307527384"],["6657403788102807259135281055910562161153165840753493286983571259840044098235","26224560703984290886116648546441580830944801332326438017377248142524641890973"],["15191219541633766411040310862559763735732730464643005251313747962132006248533","28498236638577301482429259500583626421399747091836148455222695228300544221475"],["10681317834180763718861755238622074886860717288264987901986042306419561407981","18757227379975717468122234092928702995908542025931766343729760924411838216288"],["28524112577074792229420202982511363122422535079702442771876579411732334066656","4462037773523568246251675706758472203267757356653846236496544118589036378675"],["27389454255972684303429424239495100550489745205881449527364664481260328323264","21789878061082098353609601612041869886158137164345542674323824816059696494716"],["574922860650716992339332403300364083320778756181999628830681387828088415455","11770230605343427859189790104540935342498234375279842429641218880473565824692"],["16519592546808601931746967646381434333953378415796324852865722443093202967437","8313814604345705402250951383144291834878867974569840103932494666372498110318"],["4886450084586132151642463249442185073006832516489035965677625309624912810499","11555885537914651007458026886010883593878308600817915257085950394581973008336"],["11497258356680279637572783563207880576745768075087687495325284317106080803431","5145003605014524651549554173602270837745641877883171939256434934748890739542"],["10491900504643464064820845487797525732579619987803754023427913100122511925661","9409074072112262933880855078006805198187021502957935973471357151375102834278"],["5059558547655209465587205786732921264843925271610331646588883412632964845377","21404714257282431884243874633916784278296386794373181879782850714795423469145"],["19101600715329749211643872952875025719869494492323710025291626643950539795941","5878855431385547588970045878988545372974896488008485414791087944990147016554"],["3455801084897927431347274991559485570488821476958247714016344118792400077610","18673640533426276998051853613084124021890552962218712211913105730896488171792"],["8290067193167183636113869490685010403010991161823857641203132626656761257024","24742029739887387306665964994131918263798771117113782124631653723452217789007"],["21843926748889159766232240366078944541219577435542577342501008341020850762363","26165326400135175608307564995641111397085586649099757299044628255246224788152"],["27037949732863676837237555319678653057604747317206766652959634202906723085983","18335804721063518227422221985511862892653695851879581641349300993598404007902"],["12176714411759537507876240023685709748975357504228578441168037795051445705591","9508998550944813362344075435474519844978307652440880776038140367251537771778"],["1951876416204870878642274877387180564490037283869539267794473610432162775561","17784611415559641572075980744141199491117862641558874493776448525721542334560"],["19899025146446487289770420021738487084823631687743365862345116819596193194583","8496169098878509767402398913687311360713447090048117585428634353096050623453"],["11145689374732260261453558384155788613847515225510876740390285216936576522115","8643649037028522994128484207004010245580248403874362650392789558385384370032"],["28143760515640485002410166511824319060922752907545199865654313447318436700303","9298805302180076894434106185490649524788823782514176431283185893067481186733"],["17838908845421660270767305089719871871350153880448824539313555519310065901993","6839648322932522952474454171686664480426158612235952440121619495823558667385"],["19491446120785443163349662095141077145805911279251114735483069624214553097951","21638003286403699985251974121087855117121329578028202026099913098221349152381"],["20755476978286278792737890238439817937048699280565878754274355615120174251434","21405864272907102532907694127112563072434825679877445689984807003796567329210"],["19629633233734270018650066713699161770358872763032115828576704208772499432486","295724566913161437205652813266317723753070938608264924813166852170525701513"],["28409832475416837088918260191493455541355764942788659186926099599261634588138","25558525949003884424923733528678195349182834080022650882791543685055817492210"],["28695708921736397600257312731722023648644843544560882692929301784132142746024","7135205598690028578391279228512213699730017973182823013292792493611220884909"],["19005786803852932567835652498329597952911693347461640551996151832462393482620","11922895572637210810857255165131012273134242745958442045177454845712213822233"],["6775792132938308129180754920065236014658609257075841807190492229632044549415","900677826917439355090489872642612868568700594542769927696391393771754009951"],["19464612771788277216092899550587502663805355280246797499293097397841487470843","25793086933980193155540392593001352229404149107475692017649468208007389132227"],["11812582157724114808072879726491617286997070600390024815076358845057416284098","21215877431879011043044548835741126735494018242285381892741089176778085406120"],["23906084417632239947196260186628660819906580394892860103477097397282353985751","9646439302063445264651117635073067385018911800500663788040307719890528218376"],["3524450253730096520782755008448751787377075541271883308225322297235981574557","12893250129112731343963497731603253296545863998213069501972345072944076279627"],["18383545229855482927320053267527799322862180043284530837265580291606201051792","13531949755859701438286752464846634746517242043633091735810309671385509036358"],["5232854767836407354450220713090412221775576368629803571799433950549216979365","10322575182196984968261195531985913844533746910252487495066264299883167882732"],["22584928196287682266633862795078920132959631725424665235825226338784501362489","16581356007661187714201644359805366573741850721555308087143835824028555331622"],["20648576073982019362138841407588538561156619603298678716537996281250982909330","26200982029823928392921281487597750627377889903388848777450855840739641375946"],["17540842935962182435577969242027536609744796020935324737402335822480065857058","3058063416841082688633798934457090196125440206908638098811946525536780367389"],["17648538156373238993322119352381873837386948477965679023138173564971652536786","20205296400454263254334883335605926377405167526633930491182614088559267050211"],["9399549384481832842484347671980575673927254386201944664519666602540339660505","1279575405734751983289620318959310245845841807760109479618055952160610935702"],["18817349887747659472661035179105102139635293354450160633225817287649212172473","7586790078652010980537373863739088651009300640072016031301574665355763072607"],["13510105787666632508925457345486513182300260575510344037828541406518967038949","15225080929714907518393124688398309258436607180667816791819396800427552840288"],["4482512723586063997089752477173038937853651547033001924314203228852639108685","14084206137674621735459914356258959590647515346806304181531637885331975697093"],["21302843721755255392252589650179010613100317185914737173794879913672516644343","20805504306353186129279988845240035285747123382941014731504146223353795815912"],["9013738471204938128998682291488421487885005199259170946078747485129912429699","20861521990117433994242399819506462207163810573945484699674700317265587359339"],["28007969677427884216074000098490065747249210762477376676992927994929696864937","11790086960118498704884943982047070953909742307895649483891094161098229664093"],["12466186580849311724996968664023708205524351256613055675399462392409612226679","15172788773986294842658749999863619838362900042135497193468571141166244365000"],["8090244401939194198726319758516225935774316579408889820365833391804863178450","18551237283273151332727818561144196599063209350743359735080431910097233017757"],["12026275804750461038332713163473074680955044273447214189339255342502084972979","1612263902737437142910911607302945074692075781684926078712371625894962963201"],["22110103547846108964280209633529451022610073082773125048229723630978889763697","15582009949892523470124901567003134444045463147138209475570833440357659695165"],["27492883766782783648693338707106789678073622745015569993440125978247903083618","11211414128733934655819851853036402469347843276272955685765166312869549224480"],["22693238575757883840124746676756672750760774180218236953135334338040802536893","26650740783440442416149609328356200957030275220691152463350843334745373852538"],["24826869502745145886561768218872119861936111607942483402766245935483363403846","22768125426116775768567434154556954930180837450108396096343254841666463508613"],["11621450001448752171257844614236771035149361155751418567680334808853878734086","786922459355983768387819808581909495593581949127020350039336707957925195793"],["3494102538501978077242692640759860263606448616287758850016581394522510843295","14496176139356722582024467866071762578043550589492679356151239391155033348235"],["19208542362119334667833008673652463535751451515207459094038427490470904372059","23197388653132753250421351968907392001175829874308917223775512238782305723908"],["25950156698123238468178450183953596305198149487694234713841393733612534641699","10644523354494718500334780104536173586975705082466631537981227972591544463344"],["23534003143795928017925377694690474259302685196163344893351508014020019101264","2197814920314577826087396119877539838183106886957888499857472627015311892947"],["8547570275706433657695467154627960359015900504952852813598663044373399663480","13592875151347548802188716005473482953603773183673136092287592442567070987750"],["20822549999788136022033252006604893228435851536067625232102197172015728307456","4976986593098441017567766782767712786720713487206671950963937391024045492383"],["6941734256559011130818160452067534887200528133634694630377934288090112968208","1638847529087275578928026247827302618690314688700295640835789857318304781032"],["21036680974873982578562006055519736972655660050791221763767526279981837708318","18393582029876094463423460822920807375384743417613449771476655643178032432662"],["2390313862583005852138066953569221277719285963601017037108284288752310016175","17715151678727253108791017247090534113926535543165352204320878842067224189898"],["272161845985200238264000786570191772736848038508305065625734733421360726709","24284976082036349078996814107139598424158162788890101877930758377245651770387"],["4865832813277748211972704974981531689618680425457950001032796865152360155704","19287123672578056677626076782656254812395393368206971908164145884790155674363"],["8795865912167375174714896811174944018544800971609287772125863600002923115661","21112383199424729515752615978216703471675583440602351715648832223652039577857"],["28115004267094364185936254492665106088648193537575886655904183053214731326307","1724235617337764302041881276798566659415792924350157852153932119235167126547"],["8043344488546727628544528457486789651427005854443524702781239702715222549061","25651279418561716772779066104888452374526238951441532042034413762175115122608"],["10680665838090949772954642180312766280885037960431608754794912715276278350378","14142024044960704233624301068748288740257714587115585618980170111182896710954"],["28360798732311899064822071576625223530956871072959331178070624120500978471966","17001759663444771904196266396318681719727946376028457654585687282685819697188"],["6634998006100202921144586234154903025142429895699665197390634228720915214465","7458628457281902384574624688406885988787900414850656898832202008824620375722"],["17716305562622548317260409653504763335904775593186146627373407299395091742048","15481872676849892366688387127195096998008042181571946241298015503007752496133"],["13806166960596894915581523691413191575915278409033627255852665082347445190485","1174781987809057402650905510053631227891559357344013535293806635027723498903"],["247582821193577648101642944150314833431962408089391599926485234455996808651","21458709705784045221034548510589938196632434075208746498703824070237505273945"],["4650690262674549812149478638525643457145376991846266326304672775509862982921","12366399950588385466068927653401029374461572241403801368370831449762484267439"],["27505007042180621181338404634023657314866722004716554003263868659638524260468","17579889224387806924583054950589743990554703570238222828481104193541641853358"],["28672475279400266056956270320807632210022241065640346814566330911444899498323","5530786378442418270800394750414557405596250676849837809047149056310086275355"],["26207038840380860052891137573836957334950040283871023857076598072777421295246","17668005747374880333918596483640944245411468969178913805665425733976618133420"],["12796894288644135441484770522286983824497343249408009594648304101562920684673","5670135844122874416290411351601671278996736579960924956007554609245639518679"],["5381668565284252230128054748219004885116375148226318327471857610006330252285","24857606837454526221941629107464341403349281613538502770514227709280209726000"],["2332752564414055609712091548366391675557209820799084736586679586516674838682","7877671168747423689026049972502663508457498363556580416787228495018740932336"],["22532547786072567401783210314770205889673108544798712860808482754840436113012","17611432576702932101550794717271353830965059403028463129295214107894584392239"],["24055018281899579989628147809561033852297919088596359476217430928962719207814","22403333412997635588943686775090567778744918555918123004419613614338758809860"],["28470219491291135633965491245270516083345210424983013518371779066561233898922","5700042815908021870908422407651679724681433743010278789447061877404540893072"],["16420827694886567208996147352507155869022253592112248123098731146488153183187","18924422890934708049607849204159839395003139589054608227859782406160982073971"],["20467064855148129869005997762868692513650941255045339212600053819125416897422","6999025454595347892193477766696126004588561664826110936355928179308983604404"],["13824653674878569335595325107690988970350081340123688147359508102555448345775","16851625848851194679648499254369653679246017613034363314268900557975261390001"],["17533304662674169373168372161656729559812766235783467363192664489691855265378","25561616402082889658227776885574681629095592676419179828837217248112446249628"],["11676875922921013038855420179025144917790478550869744699297104339166622405499","20044645281747030520297843695008283505028137591132519463424162725344024959910"],["12923437972512787682563653686861249232432626767748231183434724464230503684692","916777781392487201583215808449909994455356363842854552922779166592438343497"],["19760250578027167514330152063808929808403878437688900111602991802863919774969","6961604002156259438802283813324574540609692762319063238656346441829489734675"],["15006357991468915458446342963744650136956223366825425369590693536851313757463","21274746191095658736818368696458323397148464970273588286711905933291899624352"],["3744537626022609468388108548455989467802868386452150192827901234505763143488","6538297313048913111291219986985251206739349566076532256226832238947902713124"],["3403984741389531138709335805897206613605510508214362347299871222833896538567","4515679251223173017306752936991562329151926582801338318659098291703194820951"],["3967827642727331495273272033127872031647107635238029532910914650622860797610","14632466064392040441199707863622633836434802011076347862507750595967713476023"],["21706133845768637246227022212029446817422585727362811991152426109306061273740","24934734616914374284881931330234611531926411566053273849117471299621547520713"],["6195972074129420648771552032617333570107147436840557713772229081677760279388","21810283036489989843061386735267929198572457370578346525175916510475935655096"],["253017368316496670643863097882889003820354667923452129696212475353327833136","686677300052701474099128502159838031159617305415024498509584741453549872885"],["27596914266769343979333938823126779427975681445117915524269550003007783642936","22323607982668181747696555578622296470237953948132414829231818072057954743447"],["28454286995123113094530622444066216087639260492882080192186157487153889765190","1046467171224365994187092424412914473664628594044500008123795997693636120125"],["28570557511566434483686498899694124583703629391771275808355492586223251343775","15538232049416050922621366635653408373044845643026875087710952089125261366163"],["8959340376323943586003291009762314349126861175689186001080846021365885335376","6254872658975694805125530879735285288621107225823032084013480532205242675489"],["11709484414357335173985930370783115044364204541514589991850186409435073726314","17575700033735416809813406964380999268818712654218096125643852318496595102406"],["3025010556550018799136557583892107248429582255778903703725510309636573273163","16978389929754548489829093717083491212795758013218627239245572120156152584707"],["26125233466670981519126794900290767326288112471730042270984662963311172830607","16421358305049088749968896385694632244589513639661320046149040476909396405552"],["1912290614486020407234642996166064339465412403619978409401783797157509657034","6841498002133952852705749237110936408004686101425400163084046551110857081710"],["13238028365147017384765046974924991831066779569074255707435600491060282526520","8522718543293308618079774014439373632006438355967368415501174618481107561259"],["12596390866037563507840131731652541413180398616758861856112510977946095854303","18923299775683134868125510769177661622923266783646831141739089592492685161570"],["15703604998036408243621848724572298770687802108124903543968049908653146025618","17014995212414635384042060354986328676398920846089905874371101248782148947093"],["16998780584047000914134365237153187608543579317658543463705076813227956317281","28780331005178810686522208684419974198802624202026880200467453739174097209538"],["4488673974056006657879693530476678826292788050495002678987059027948998226001","26093031240839220835702720751399754470699611990414906352295315875409024327816"],["3058852066109921655656494224804650151526387501506638944746198707381599129023","5569218794264625777788923863534515424402668068960522688978580945504665570518"],["23455669420188383254992022460363445653563315899611611695377649609695748828345","10958972906347959404954228147659456048303748264861255691651022036782142605693"],["2371709685786459500482524786644517025463587545918918952032364954001611863760","25754403425290563389744898713659109816812616596752796856641653703687904322087"],["2417072724628826075727634720653868110632290675888038912742946780366649647601","4659592627640810730936521827281845948448124461002273888948730932841949555961"],["5850617691848289304926091705242297568922918732838400867390997558855905054198","23867449361674677665290206359660869488427039025210206358248143382283041163699"],["9544739078460772791266551132218468774437062744445863487337209740442800003117","9951602510040924843532898988631857280736679593829745231685063714621689286062"],["15701163378013082049323562931491979434888657367058959351775398816158434018352","8586493999143078404551148079480066320441607154132152058505723987123633330777"],["8476580843084368842014866034220458264667823825017751773452386057238261716964","16936917991061473412216238441883534617716042656349632824741374366573259880573"],["10161349205010431521280573328857737630277523796712329885914342538756998452299","12108114310837129371046235704438920135447379703257951982207722797472614466642"],["7097001243363774015266885471884321545501593376707024118938413132227827113113","1491216234152773458012734709458757932553657775281919568378762483960619656916"],["18482755468741565395334572403725887823680943480928777137840508545648518141360","3756353162059033316360811374511579889778203376884263176985092278102538342110"],["9480536563549528609620817700166564358291458292476129049327231252512783848162","27719692775077491230583071135992708281340564582947585856709605082014133601660"],["9711759861848060061243297097207434556340968120964431458509855942270677654669","14683874335114701631632723929200085455815482621130232008939703425831406121847"],["803076396084913168279078704161818389972335429087301404330829105641282223286","17529638945540088718482835629119317701328646269748418923845402026261950257999"],["14933475259234217989537969309245626537559141700188724629547494455371279629897","1539722787654233329568293634342570757248262620824442425942180545941279793918"],["20829125236502053632321952866770173629802520126553049300473747298706354647378","14626480366711453189061511022438878102623321400332660888520073816965260841445"],["17398288994942532983615335028584421899153355101653152468773858863731147064291","15357368420742307194007058530469310569281212703704643915398786947672317225010"],["11262346440480571216350276897901701416532685301048286510685079793798959531258","27629100425226727390912465955678187779638345641630685299990472545785879395587"],["16151193627152545879641192274915042073230492144309819253580376932529066309169","10875143079855039699578961259698485742071715820290145383469817213876001992302"],["24237482869103657792759884674960984186443229107023394934676274340088273518080","3247420675025816295765321860954943749581693845485103730239534011666405076931"],["7068915067159231090077584973526650724917668983118790087065854169040637775104","273905662389111112344393327557525509532570620513672683820836497265398132514"],["25996115037747182413138683501427205821394464933013375329860350270182009496268","8903518683163186829206299804216042311002295248069856208801258636421145002534"],["6370374914642673685992606695502470261395245745102441013536472802391693022542","13035173575398798902652465756332165538221003079313792976648030778807411704406"],["20321285295318665302215207695550666640236025378047372449823537213182527085596","27034056018243459180214336406830713577139671110949250421954661515824151014827"],["12080629823403313774139071230142983298917253545215889147447210640444280050413","2828357340568024110888528923424517572230826030492879225204049720313777789280"],["14800357754064616020654030678334092525833441531795758170138444858130698965376","26461544731031681460311837083930679802884328096458651098238420684326776840460"],["25443404537401376254192276337503692284938839370334199016980661588457777976898","28488640646233784526331053108492828253953434789521006035294282985522725642881"],["11946174627670925907705432636727853628175741009647984315263404242875759997329","264777484167744441179643364875609591515438941738787929386226384636906569244"],["8248233748409028633203871686598008587741824562014965044099836107967137862801","7922866056303233021416804086274342564142372909476279679557693928251095510341"],["21272667401634755593127221738753960352371786693103752842223218044305630640107","27691120634641767444668948011713663054729629086953102164828349819089489680749"],["13161234926732414698158747970595150520222200644086974719585344214348849507690","378432197589135609696861410000393288844999751254895895550345118136829351091"],["3954320895979092295745793956913989512870057945148821368904019000050140295133","24745855280828107548973594371827346416310538948495458409494943383005468879994"],["2012241435875542291282527201735376906029781370782095703690263868290918393436","24353107447428688413887625141683915491539216068837295905680896278093723268926"],["26227095662804113515636788295910349404208574701725382974861949101370884167340","19795590497418304646191052703202792614256570999484468122319515174622618738692"],["4429319780545583900075347368260299748927822547600543281985253754037438349134","3831119260304346390951985056624891779670538130274996351638496112254842109203"],["20587557913192059224234854424718201205168916519797688399260612052612160460518","14705799308117084884430073564749236119267126218669767937664375797654184647370"],["11421042580666822186725108322565544785826465699822110897297348469336753217959","1671322714025401267372532835666346790372533425445077813602839515647542698672"],["11700404308506834207490296486892059429253453192825297189958539191016164366149","17712970195264454997315314009521179951914348793547916991495719490538458532555"],["812950978882236769057070613219671633116322265997503845331565220569235848235","17984700081673965642925650418620758309749677499330739306397995923413619984939"],["28740821137509251740209186822446940124976902683739289324539586872376255779170","28783514016991540287606579203567215898906712651751386599084913371769938182192"],["11868976777528396242897892515609707360759309717363274877710832853769436588879","17944198553608984060625972538699755301249987306032614112302310335235135314958"],["23453607994774349901466085534072150494158013379402128236073913849192794322468","6481857479927929387830662831538456087054658118336521550596874931569357228776"],["25201547933350783430098630964235556065066291974820534954224238124189852725592","25167855288273711408530091875456829042533106746514096000975173672030602765440"],["24668734702817240573483616785525521186846182178633579896067381447454369338281","8576698141008702684399186063628475642624127019587560714526342210781881375073"],["4603031527703049024801008745015457692677991892784137525934982684221540927401","25629935145391577151238673166168289773704910826312358385872976729579875843779"],["18111263791247979753444080808708033828215301595632486362821955800703060606929","17891487829508993603003526367484340991873159061455836130398062862429239442895"],["21215805835697845111098203035325751360967151183705255418991857462658347093199","17038038297721840200346184429192524160652681197346908430227939771987386463487"],["25154523046604599480173050808960246751190213681530348906874001266245192343226","27942046731028522260582684367129947540345935461453798286274827813930819975522"],["14958815070888383666497674840337677255753817692797977783450850851285274349549","12788775547029075078949040995393298033088675181155972476940515295527247135770"],["21337786575922375313647316682516016983381107692030227464054716251420974940494","19058880747120390450117573480752256351823166867297383143720279675775510351051"],["355147009341042949504427923937095281833656785552409501435044738197312061715","27422033164386235140168128476099671074015165107134150097268123240128115106746"],["25550818727520983826423978475882016434017751463824236538137045421932337858238","5104733442201547373771176212375855504938435619731321608921883721074761884990"],["21369990372704270832217419390430318245049691679947475672502021766240917868977","1900999020553449320068018538751148253641698739231369526106316058102596957530"],["16764518039312496598960536112453853121967484493925963326280029593880928202482","302013693085649461895321559567880143396676183365688424515197475170827738135"],["22784443014323446780459542108901494872470416738441777384242882337999958559242","11735788129440197191046514471535452139579418481135884921587572479791534687424"],["27675505577759499265708642761344477497387084824607387337349453005323558144299","28043331549532111077204260987925354652871512376093329655569766562663421048175"],["12344035903983592198169136507201012925186532776546290228388984723032819866416","7074605220527706721082373991268493417714063504504501239652325702717984987565"],["20423411541628012023019437909281410298881127880008487090083159841149560240764","2368098864556018370532766228157063235951297486979711560072950450162950742542"],["10616966537443439382326123623678290063234694567835118159051481702465980782174","9382251279321371009955655126203865196632536499039372651963724730055958701606"],["28912871604325318457840140968967122133618231365120446416180576942376268287010","16609284076424002422271992566979590797889460993916692527378101823780354741827"],["6999566440423109470213604270175680753944808147980580564141471900236495264642","23056131972943779795834549804579790696193017131394551459798471264337725891232"],["27435331224944009024166776637433802234150058394639936474323466797570717442147","22462577511129236730077615863230770477310268823682466214513953720281020519386"],["11487388727461751402396224209969317190139840227273417604382634294730970583482","24401384722710371331090435833470265840834651085058440835568564951326984332998"],["10232050787243969206177122716196586543559936026179846763352529668751404567467","28303299657447874839921433569606786612144041073481636546516813084689063755925"],["4937792506005487953228743513646378234128949946803766682503495596394892810330","23072570266363056950513012590616720142912952205113883172786005583366025618380"],["17736688515362375193299314269245896500781432572085600185152836049339533259574","26786216345928324868639403904804500848817866781660345687959443159840069313521"],["24677797377501156195230465626845662875865109570624767571169245590736857222125","4106767462948028674909684153771073843140712123087276582656115207735257246130"],["24058842717708189170225077659578614952763151627536008572268287267936416462618","12805715507692384286139617129563916436151028289682846001546437237276330139405"],["14405362810869248447113187146047212999822227876258709396418220563683837694425","21096674823690780407164710347095779044310091028778463507500065652732994999982"],["15607166056077209655762640812692852562572997737180740243744542482298499404858","2005549150804048581299432589249663546719771602141427857806038124949157200352"],["21834863110552265101568211836959562441536684590741482902152044073910495855765","28398763277919584258251119876733343733185087481885537325749151587044549409989"],["12673428956859279249770278389601245930473959538949940450810892732466842998989","25196296102647000461870982828954159757638712951369626510862734149064613227096"],["378885014104769436376769851136133617114568648009802331212195826836555852263","16625944635079108311009255927297790300668859969850162276015655939147009903057"],["8358578855176621147766010517470319710135617371185974219566375364484033496543","1488027374476434853086240931722867703706168760650179906194278778595517729604"],["13146021166776971637501735248191803280578672562242103288663978306205953957210","15598864223239591433702324967674921239033488223557829912333758747748529575565"],["10107728029525650565255859838703039268328780421094555632868991512399704926960","24300859286404174424437784902512610003282304620921204683304698220477136889558"],["8238283191380487300110318496524425942304922833225040143040240660315428337575","21018084501227642883845819853876084086297757110801290308285371391836173650650"],["7537228703505189357705702530678222012268565810109935033859785845987345731098","21108125633126341726864435728795050901900750955073958964321566939314201170995"],["19953735592892880652643279928908756397681289459375504216530396943135849954538","19287053611073110320480191762007842570947474444415247469995056674518167025096"],["20438291836926460364439697516829677310151875885062177092404856043547321670685","22281639075537933356227648881919618858125390303109589671659469532755176184647"],["27026851723521492406437452210996705253572700566435286553189928015621896653507","816926442074218792109072080128180463026147271261053837619088031570453426707"],["8924089832122972675639166571135348826035032115315311234145193092243895665816","3979621240259988909358127291953614104059503690237567665496322557388634424797"],["20673300932376620243052277098597088655890288436528645459875961880252263699461","21935077619201730914369287668591240473925986054806714630524539770507480527618"],["13496169732524344947066483329882532660319205843202205169040571909750271907034","16678202192168585212372169793516971412439518085418374645170237291135425486496"],["10585304448791948866464044077427195841102126498387935298934422815515817274970","1927022386478992729195735537191987480463276530182453566470217018131746714019"],["13237145659609874521996145264253307605545269226502146029933720964125170182190","6071606729193165830271313605739466781528955303411401283319165035258617287620"],["13484432839210685500570909078431562182757655687325608460351886341144558011081","23754007809906799879322469494225231583707776841951588192316224037249925799442"],["8254825781238115890514449473853834143482320198727799522898341802853323337199","13305731275769421179666313017434566591049025952667120735799477772238017621900"],["11139597236471072838761713580844172289128612627929810497750193657050225459656","28323323476497487487116602748526907529260317531077352193753464708890024809372"],["20332188687162169952470309496499316133381468659940389903671290844917808673675","9672474824820808102057151205998830001207799998614426311858566940194879892542"],["16141107594361662430941711638755710763031285536411759475888375925914809055251","19118127078895677489256418070953456782479200178255427564020644976065344686948"],["8271677795208756633295588301596957365953458442378515416134266458764056008333","8886918206206607171197966880303143653182380456844275051286825320693031418805"],["26649982915263070134311803352647878248221711537336949478423388369285597084711","129704731888275787752450439203348336023367514055400597747681410937297437485"],["10497631689097850893538415067351169545327299792246537147999442460512829572137","27721547708321499657455177030809103864262033002628571563969887226115095193735"],["12571820787351611099705419770203062594655281119248718176523851878752803799370","4364795367885445925841937370827559719815432526028568931618750289818818311661"],["10246519710560489792631975432185076827581738802040051652089588946713280934059","6384696924929130511571492129942719703389075712272010907994448546469426171978"],["23850406091633681691193494334321776990505976742900783640553010053885527244317","10826444496516239566532165353620395854742020328685764002592917019298831013485"],["12170220203644336785984014467592265500658259282345187204095169956233803730351","26638425387951594866247375682029955839297292792826311080743776888458351995970"],["27221543177693044662463416226320762681981779946756670899902230086478377810339","9146171952025485145857815739120312103421302290945882729783493306339856633268"],["12742277692545485289675592864245963877917769945342961269732665890764509446281","5199682656690276586389004852814607298144226410179206955687462798594486033392"],["14315337732824098756409266879209294532354238197792653119706866204058353365019","296347458674090848366622664715698119813560829155985091396351326425589793987"],["24664327167560120841897496941221165964008939235710856645202896870707142321198","28389293922491424552247755792617602862658408080868574511041735295597629827830"],["15764012774472809883428357063895450151406766654710104830274087590402889526431","27177078173334343714113085847120801022240669402911927911780735197791124233975"],["11682006430152192124007986389827118789790394955371460387094585279843354948896","19569894979137193771810094769680447711987694111920836818732050806647700328429"],["17153687687258122337808419779147152644669184184200682052496190834417885896446","3593056732599681442397841645210521714573756829530113099145592737017705734305"],["2449976827967328978694030907572644565953435785778022595734033959864469213423","7673768566406682731665359461071609040419637067586284512890890476593047673593"],["28716087104531178975159037144652056672356100683320718253502895342873571812619","9295927327692892778847451683043194369840195151807163921642826581546104580357"],["10024894984756387664721194741792375903299672793110375843254607442450778132138","19391845561390386574895764716782562572536546302778982056518792689125370356981"],["14748754248956731269241411165043264462916410821206669211106494289271068400971","850155672123726476087538345105434344747989080721253692312685781609312705260"],["8643024714421546884495638614190077147779309020459511037224819390938163191471","26757508203515564600278089610152587513900217085474029290380183860255938917869"],["45865486632414429940675160519797404552393991756266911681234397498949930504","16840763643026108188953433867622862990052948472441213620780585616688681990347"],["20460425267559656169511106865873634143908786519480520595892667708353140028064","10096752793502690858214160330020511537097771925495751474869198109012194836130"],["15253783846722669991510730777839948378351696177126291176256800766867703387343","16270050502858335690608240644176124924795238609289961810127632918375368144948"],["5470521759216336446551922577254549586733153148942561267798689853840128111128","17422348033104043293404125446191299539398835234544026266185067220334142134273"],["6989999688533425435505871145539534108185061374413255836903449635034075601946","27282403306889776662285239329498744641440450082288342754155275971101097003481"],["8066837656103784775968120535973043157890807461632895702773937099090700441380","19372431902358377355282438242929717063872865785849865293371909510043190772326"],["3850442514428151895862780436290368433814365390851209661659992959224073604629","10394839640088919884404400040189114571439661544763068495222675356898212620830"],["26081942362443338460654523848163992752169993187995274535323552526626289962964","13203393550967817953365613254832104532020844529873183083212332539898803079107"],["17924966181811699192531069543384120945375257673930380179567610158633473482405","22745534041902871895477268774312519801496002338680509820729921453822078606687"],["12572709943632643240537025368699436908107575682356687805633691146433786949278","24471580540831350107497001512955416198429224963193075487221261156273184147631"],["1597042465345199712563218763820205983037378654583153339448411075530680507343","5820162039683879849353061610700815200592479593394569228869451363017419887591"],["16543628669782175737983060757376670404845950339949579218211225702026752350799","3093091304000485197839387137493077643186856610195880717187292013679371867914"],["28660888888179548018977508124602902791777613758106083909161839410750006391270","23971303950896084815829989327544842065268617737778977857736382848053916423841"],["18754708385913139005235052781118992313779831379705096914799943424447575293088","8318537641394081774631889294233346593497697328188359503282699755067128045897"],["3441063035197345646431916533762661531788609671429241076816669316941039465612","25471579115374689082192235259595280469486219059142134315908254496695684646979"],["13002470702168179149694649276682689267024726108010303566045655565331483916854","13609143461782424072531655811888643301237063502016340684624763461836926316805"],["14302312809620687988410319051594390283720435450014358802965068872163243427633","12584515251571303266955231647055084299197007641864411981727777329805462567328"],["15502132910758709277552608834923401243629777304449190822221980038294918415103","115889390278979455131451155431535569255079066550086251505634115049439797043"],["3325592169595901168967937875982955087795112509187073816524355679247379937023","23436462633745478144391792726189378858346025999355133480837036843603906168488"],["11979249135441256370740059829577457348332160433982797097376545532973496281429","1355322210964005639996557692275752352981890553972376997203586027968778126993"],["22303944033358275324293100158332021819547910571679052240625520595274421046706","23249670003228249544237435439462739056577017158803809119199855773993474162317"],["20472155117338638326721695842560188115565529865821509290094759549954900917232","26549660219226740464922888846569393624320199545013155269068630996070594708378"],["27137380133015174197995316111625633729836990519579914097196002449356271728855","25443298927202500762264019869479480830631753504388883825082596969487814925130"],["4220404257211882066856919509858065337968115584773298863369859908423490037563","21267111848763196665821247013840286167845516788208373520605130406373321895914"],["18276948963211418247830987473565799099692669131393468445617251813918591638527","1642197127832496549807173946694578791596884027103591926240229650099309756107"],["26476791391204399723711849363821392371193288463982088666971333859277869000087","2361469933039771581158338586124879759635158435017878049762023762817889051984"],["1163261181113540027502581922101982693872321740946538385195722511340531967263","6342522583678490311760945913451109860003601915566471765541224441632916022356"],["10490637822661459226371999709584747705852244536255128649317946311751879356244","8322023740065135199386321315298898532599081743512292591854380846101202776161"],["22941044585991539687277169028457370102376214716544524982632967827174123765664","23324633427801621689736250269854997449727594289054899966014934778540334534780"],["156943897177038089239687766364871524089093793457975521895170193833334419585","13735473842391714773261581150516213879292667456571402488046292426972610685213"],["27850184114134413373990914337567976569648895794502716864369890264566825939573","16533227494982450417539118824067950225823912410538555963223059131758794460151"],["17416611370694099828112352541588957089289230519264536909700290101425818637415","23327079903028116791107041908247102160405537585198899053473074065716837639228"],["6558352181697129026657364565154775019530808201036426154763063923380575578413","4213822705303883973964224837858173023395633613640327514423499557109919183809"],["17358454525464949474330066712449478253845022275358705020348212749315489201725","20469365240984578739678561266703274361798541683659090268289423762536020974546"],["1832061343649521172717981075412614689351417843815275093233659297159147336272","4414317558015368571822959908566537449483929984928477392100465144817754706006"],["13621442054933922023575918889370556704348423502615011956133738487850780934156","22969487295108147330620405631841005447103233034041427210704279848654472034168"],["21487264031251751942671590909279077137576406757501353340394377212882517423129","17788797222124803165616174252800304508707444050392948637267132556334710691203"],["16674587896432310596693149347521843542217024117513770146772130551189754941795","1174537315423928610213981643861710764052690549818583653814760146055638991088"],["1980362121409033206481314504944998834757755613023360510727907121534321615657","13278561297499562637637404096474932506199372886626929418103868435796881914587"],["3010369546825143132375740163181244225381121077729533875953078920041170786724","4660644943111860806514524159547128936434766895330727142122315324487307070796"],["22569527478037315223516575035264646071213191269851568264971882745077657560175","16058102669209084720701338763435624144981111314574783179960229085700207459239"],["11354374267482122174464859544284523046470019365530731692313316103693554942538","18422813229009321143103840864188257536388463475085746166360960547442234721056"],["10959633056798208461774490954794002578293639476986265703727911624522744667088","25989892564326793963288985324427538418092005919581168821927867211127411826488"],["8066140156560565230415541873732200407703980784885659696696518192887138932432","20224123660127098842844787621726756947270216888437583242871277857611973216958"],["6380956515167007500088364944793386483043947795349858669402579629051285199144","5864198475055172893337036266593015311905015685049065463656085957629345070689"],["24460934825994362186797643895943387392051678636400300689790364782655323554001","15599101875550510198166264032117709177859788276933649057039213071729708234636"],["18595078175600996893424778463363730515080713175909785984330939345620276652779","13740812413052636244790806813628541391189786302666105982045422446394245074780"],["14303407031764381890013834143969729679495222017854514086469175868640010473436","16343409977779279260134317567170148441938821368820928586778684644333619046337"],["4473614869623887480752868706806091612601762761655997920124881535031869406302","19036037200831077273024685218306152611949438965373828351423623350442761220932"],["4836952902350150140850221358970484111865228980711811907236861151273841694031","14612035283365292585155401351579046268035541212476225864984941200256307019244"],["9169210920910766547163792257197175977440115160083319264814151166207205625662","1217535305049348793631847134138432973727948938751107372439626168726200429399"],["13655002816323224254010833470693910727945891878830331747041547743951479857300","17018080750864443203975772444272031988274822688167540264070303165775923403553"],["25204293267417599310081188336147380086274173044548733687924182176185358007380","23393529265043183236141003252583536954304246484015238154956100786647831524441"],["20373849796318898856612463534603221863003884061940773095036033847685448200223","1900773440128919927883290523415583874219945810755114444146812588549260571454"],["14314135664637719689220128771215490849354461028706575330372677871982256320571","18015389014814655450787880980496543255375473927184700001646244158644026749439"],["19018257226152795483340587698114793192610596708308078461376316645401960547864","12146543482732157868037016562740460280177973259016141621991674641164359206234"],["5858965676793126013010829322450588775999989904045530280961621379587402039672","20722712505599854042098280577044657147774866593019340604326953678044155537833"],["17323714379152357157993451963365167474599663106233322810499923312957837625805","20555441731351308539871868178917566469207279787205620541022823650837461573046"],["3704214729141443232690490960575873353151559687829472369080660204515982224132","2721694235888751676914811079384943686092504329214626060901035722045720611605"],["4665105169568720532131341603528340369688756720407774053193573489239494327152","18738127014681066763501144333048898625876678210335244270551654753420677790116"],["9195532127874106928129602341929752300447886549401642768519709589000897384676","1004429571141991893154899038325539893876537019615767477556073356949802612823"],["27056099179573367212107068223478551370925900600904847194993807737770109142292","13175098639921539264545346084067376454570353041033752711111407476987555139634"],["20361863470782683893188480341267390442166102271202816634486543462304070430167","16615967525318882003783429597642543194033290696297634862129354804321645799037"],["27529068792803741448514862583764537183283609664138996551008631120505123882143","18148140067509041739175609141723326546663713296162594648688098729228178656938"],["22345035556652647408972593167978576652831541108460315561398343416179938963298","19679546305097670252738658482044876190880651553535222461774899077388114038217"],["18603032796037390264423630487715282485831034795895011249706619997957855928195","28179091580010049116593829235751469631540544031808063712301664428090515137409"],["1147790228486465812793190246943376251128564300898568077362243236369607277265","17649359516620331171757611929111163292665788600407844859316809946351010441735"],["19189266117049842211010137533206395576896860717491431165713203500005217169580","19191333769286208875424125405785045616599469473371399215889570685567911960927"],["12943579180977275479258103099765957884598985174382521327535436115732419410360","19152953511964523169192805448439224342775334826104741311752131364831255743132"],["14012381746013284392736599571018155317102922969427529785065153827229366898514","25193122372585206946964325057511747713550548974451244890385340530036363527148"],["12461513017860919663506461206269984570094249312960187825066173151402922092485","23839430346975200671991246598521489982842501744390450924679749297694270245793"],["15547279640009514041475121246009627190082826997754795232012543287500176641734","28228276119570741182526056269474196720521976741861637338354806413388824340048"],["20168163423757994566496712249334688059130337676043978980273686261006712117127","9070878947029315390755938895084236988296348463308636201924094348354247582793"],["13256019439914364725962077350444027332971839188508576943532423365899205452548","3152700516040348657375280205646050937141495220165100038651540797731628792253"],["9319545265706419311790152721272785076890549099394104334082798453177616392290","23010673444064174327232736293981557232538582725537404791950444975782353689383"],["407450991279760418071374483632394044562344311314926694369764394783932873984","23154929767195173206319548696745895458019211484402893999164295316191891090476"],["11412767399303003986827226778562217443818998983165179115034098551585001394704","7724216218326594636278324019986016477819224363006150726772181279282451226453"],["1277471773859151342138419875741494884277095087284593155762918550514798552070","16262971022251373132589466212364063752181286868688946889898121043880616726704"],["5009953030556531090908028670576864580288982428160523377701409165039795764050","6606287907310116660994781851892730836158611678349273069844499960530557829232"],["18919039099787496299415726800869863137814820666645179430663730206265647299416","6646405731907890567451431129612728889692258246183964715383436739551248660487"],["16694498957418874014571066340564546978725334690786350857060526011575507860673","6127040720902322690431270897493911495889717313796764606990822180365506381256"],["22451864101522919758636132502490639283801548539904088055651599974215234998316","26811996727215235802662481683634079998963832971081253383854603406973503276568"],["4037547832124118869936695562335153792545702809389067599864750387845667209745","22679055591253442619323358829079279321598937557790295517951685296724230714746"],["1969630457166999881716212772776385891103241543628420370287097866511221539283","1728112587115833927505476381226295646450727034516038771302788595533474027323"],["13790467193156037057854246163787240478199922634949206099579813326818527054388","19747386216605179849882498954083480882451778251752423073446676074256305126598"],["494143174713985341761952785950044258489968467887577104064234757986692247002","20708813137250920154302556016608771506523027712720023507867361827000465281829"],["6609054539920707892577444283344542403813168143663227870543052334005612758761","23241059431323633064474095020981904255079773602369403715121344505504243276241"],["8679310731854948255310363941088104781835185174282464241682773653981755321514","9009138216609972522806931853787166686244825422032784950331395033653179956282"],["14175435949458844274052707322929186487917959462886431458490985050013113878081","386306936398749378927993942896188285524680707016201962330303218965961931859"],["6177223449733238483950913783526982771354223401027509721558751575087287536220","28909086799284659520856995870690488049678039248166111698530150029144365371386"],["8571974425747695328583529630041928214983565598146369371053594288244119647626","4590518896353326110262941586218219271958081032167059185937902915461591139153"],["25118635220902062638898412090110301319788122024593113281127391595323765207012","23831130868691253119339413904407338186493696026506213714561246500001643135006"],["9638974858939248698927616125650653382650646990126702210454077965464386594787","12630096930275881837273334351605676005011500640783668979372396805726049738566"],["119137386710694268340967289711401496047330860882829251658698083170508027845","23435678685904174178071558135840233317816460907600562904473200837812657284277"],["8822452115694501505030961181459485472738719107962170830307691182450943490741","7248559141220451568560429375438237833102258770490982892349588691318003865953"],["9916256231153609780903562866172120718408754849891861832596958321748315278913","437209921924625237442470045348941668508183803925535372000758976657227128300"],["12555435921297474587673658639003373052218053484281653778900843067544090083084","27436900111117406774879340640552038750286681474501312130039545009642347834952"],["19433158695769652250248724616785155374856118373922887655768557399641310722589","28720842968701687132879979909554104756549047919310824186764986876983491716416"],["14571046062562875663516014154634940694678527761133055277170193332665860703532","14887486690325272738198570030338892459034202515542918888530705240158365838186"],["1571497370139064525859427665995951775885310258227745830094530747666177981053","4391887779972775794020894961757843331668132141833760726256953682322614850485"],["16827259710422472934549456231960015996620473181693235899697090984857985833114","14439882309477553795044454887161942896636385649192263582955036837092492495295"],["338890334471373424146686117758185271358830628972068136912944804591144429503","14645319860276274183541710708518788629470779161163101431989964746948504051947"],["8060852761691904085080791402806585029121956143065314685486101918008947983937","14460066069081469805233918240160077943277657918737582249976204383531313515139"],["9476043643036458515657305605177153680194840167378889395906253374510816261197","13254545302954725196999107191384884732994585371359183581672463032420535699666"],["19252764348215368211204525445174550883250672838648316183081433054898425222654","25400494727053605417001569614213245253241078336827985357242753233231551357703"],["11811724890318788091924937804771552836302898829427366947997130737635168543620","18215618781241180603400952193770365209899654893272049792365547704465891864325"],["6481982558189791282248265532431680323337773612045613892216272878719337789776","18772230790405277568125387782572454766140860435992401519153124620651022089101"],["27054434726589904742094419561211427686954535304911861215317761737889175559722","14722450433918653636494805995342683237384543933667611476472159191324640786492"],["20810348645774670151445016583814160230375681350786767984757582418067521418913","4062980171690835726964551166186944459348673849903479659726338518395451737587"],["4144914419846345504098529412775573295076624534043213483224983698420182503407","20702206518584531047989117203787378553729378807263117652850553790100085379445"],["9754814625651229865806640503462995339734756719983090401901922206343088509860","11614646666195182896868893740927428803854319503405291973374678409628417505125"],["2177585681413038858663180828531131047920014391969500790973206180081486713755","24062825094407690187464842089359972126170912380387883901552659948642850156087"],["5899891109045392197646607374397578147970722509025444080837851196637462440141","18690358030127336748730384902170676451775045421554059122639362093047391608120"],["23474105543571850344468854365687796042975979490030950067905935279865049829508","8388163528927588911843688439076188506982295680403182564084509603926054472590"],["7261950595205850555170072973060963627837806802153673681030148491114220098967","24243047670875454846935258028107374127929363473723555218902657724469395705835"],["19543315141647284577008450008826894106057669063669793568929190341511402264822","9870772758081315680181256163873789823751461060411410423464733056621959937299"],["23141799088001529755960403557491887184214165344217743200510661032643300734182","11841311435070373370485483265862965882918663353518520094332780908828267052069"],["26649244509847988559345495183178145533837385876128512092731812930902159321147","4239847410044826017041356141640975803756044498689143378615278243572546932825"],["17874145487874716701423222329864086010700492717713404826050712488204101808556","16243226632406150914507556852785305120102065046530945409777613244404557590866"],["27305130698165129090849522770213344732983892336352325500783730533455529407667","12353038283807144804783716877274908894054683578480749608902583682719851012629"],["7698757783740113335328503820865637634124253731238659583978401578029743646574","104874340545636821762557405401865468570717650410774194288592972896662703736"],["7015124042854984844739759863599046902398135029266181699781697294912836899847","328766758275975146088817773986244452604444891502319364829097917037579434837"],["17132640531612113906615213351748307271622721928346857266653981399805713515353","14824527771174384293720051830845583782789574845468358747097494681661516428250"],["21730425209599241948260435416728687520426206534102647914103464018713923331825","26132627127490233668678711011864936636665518028082521783495227358793869059826"],["10784080020400434908377590044333472459560706913150678793013317341297004199408","28566322599321564033015092170834134807322580058999082839935428588509765435737"],["25039700085746950421346762597048033313878950166359194114201196986776622035535","18937432637317834713494270084046851286984534016852309475604485850053956449018"],["14380628835070277942220800924006480445059491912678192649168643502013044337099","19542012143486691253080643661798316131178905097400629962546287920375916947155"],["5428410605322943967221825981089844987019640032076192480386899105913186463977","28170034432241720261187737198875490551287015589800016667082880932017409773121"],["14280430522072847263274140657345991599513052581952154483199723128381281220984","10072326844510551364177501821893546817063986425657981853812216708311980263427"],["22802829086041937939694915669013413446696004962628928301887243759174078857260","3954736108060055940090310221712270638700145093041662646583557139661844146108"],["1407973645857686589996951733658702434843060345263133297011242443731534232987","13812835999475094708594703495241342371121090646662102664808178142221987238954"],["10019918123880824924807182502032595620368731934159141547816603903756973708006","20903055800588869510012118394937865593769387568406308785858049405814362869897"],["27516042658175563874921454120015104757933956594875446930431979881507294200608","16103696108306403598846617262522389119454713899132481739064989963465213788011"],["11670689977545362230238593947605217688227489649493496364226648806340395630788","17025056589298246005673331562695817210914523184050095939971035635476894899219"],["24141340130117105259147968902989407426536069650547723083106199768955821390893","4815608371693064684166784999369328538981841370763883898060040148780819644184"],["27223360024517129696710113530784659094678118564936064725307475296713226175320","5823396416171842884392528708779720892938462645822714437358639097507205656373"],["6833059688929121612510485068326978372443495303381086635008622715629339957458","17166672866629902062243766797276690335404802318365605526338327206665107519579"],["27794288963716317704865970069804771703060167278955812068999479011008403004870","15617411767865009959419742530002118164558898373227812556770070337638574365477"],["20234118804672000395921850285165476073431897999574108011121848715712957794400","12309920421856074206320792405491604757430739215318774887950027750614080415718"],["824963908628154913596422520969081325388249321014571380323453635401667617068","10362326316922381050762947439669366474401956094525335590668602323135734490748"],["1190545694705260879471254743876311880179990779803901549082940777288316925952","21672680926736471591508749817806098048515272570929396944608765293306044368449"],["8790665077873533755343516628910840202762103018899497390722690380832600706103","20459955794106604701824002908488918471476173449953999685361973463935145557957"],["11082391839316985220195699764491389076651601790569754945314174459551425415462","300593298959257893419017134287023267998363961694974342036383877905393288998"],["27545651755229372129061185835389231573098086629466262045349343685975637780136","12315995353233825430157749823844924871483261462919972180969408989010105466887"],["4235836154502572977260180077474236064864088600158754796912826598069268767372","8427440996383278796796903499784803282614368304259809234296312972189317276672"],["686650078490416868715941607668450160217326688945700957230728834097442603950","23240917913401492886488363350929563843749512140112265914120011782012127542263"],["13724242023034380525149433834278751479356639671327041913197735818186874280874","19584053878962796178336799867582845448453385118598345374958691603660997669789"],["14327582006576128011177427440545174637639843565727077879417952667416639001065","14270094977518179697950184474668026658852496745313251973537989984024911212504"],["21510072535240133484387928784979411288542093687334714301510599686261771171690","3804820664755623025760063664205859310538055470039355347997720443539169102288"],["19236770639838788613057372875280690761883288613744262595505017770564873927620","977489596353525223779241552576405697403912891473671504938291692251672655684"],["7269256884106167796282459725837067183383935000987317624909928825673686155719","17014637847295366623777863135222696149819773647992567893203895078444405473820"],["5326080825578725222461211470648636060021672876511736488063630329600360157690","14513529182124170165381498914342353931631314786798681690036533123577679722791"],["3447196550945842102630323625355386581896113212385795118353520739208648531128","16531867209891586866368396303848889317389631983277381548862188128757962180689"],["17873732912204591131090707706474245068985497297324824023003300138829803263384","1265895794647530157892951963461695442080876075747379381040237810900517480829"],["9690816260091848138997346081636040852016593308239765212480671216249996083175","4651327197919220098677530443213101768900202899280329653898812586536701971599"],["10272921589248133701508692073923264719896964397135032084480826893489369044764","15419619873317782439213909301611320462930931019553039270363130114872750019155"],["6084802486713331698538925729464272752395279183825376045869323691345920964750","27640172381960600847093609363941141345577700145659782371513967291964530843808"],["11746641284030278395264351878807275863068894341365512205789427285666923200082","18581744526879274067405629482881773133029180152734122557125805322452831438655"],["28150330451654825280110069640601328522079346883430509169150587604979573177965","1705180756110424344035416540180212686905190467887717793269229267336920839926"],["15824988263085935762222697747929072411492663617588671603025247466533454371096","6991198574834802011661183019726752012428452403886944487006175375969807919926"],["4137575939508149148503878187737282135819106636802404171012445775206331052662","11942114567138567070217742195535482647770955107422262489521237365520844993880"],["16227925046067984715440364105645449599671495084368749783806977721990255616119","7445086055583061205994000617650416092457994026381938960955960956380832574751"],["7790736113241161520941101345632170360710759453061626756057299246957787988629","25746378426706307158736250173863299392727994505419476561933207423886890763950"],["16113729855603875157209094526009582955305470039215014819255113386890780802623","17825940535144982133421367517905923038882933250744895235999741883699751475116"],["7301184509960186432249950005613919382381618097583806406174430690196335196929","18541121778890151470638957845789001979756074767944945771635972563950060877159"],["2380515333936767336829971428407220767553021234421574040217785644862333199869","6057520890916473312944752661713016662467499682931529730789038165834110573235"],["24532067420635572358802978454719969416182772307617041548781980403282322840112","5490720561912158206872749369787366524062737352920438450648818044330674824510"],["24412747014104923707103303796359854028887520877436417769773160068272411651964","19209823279423016007892622005497981351867550418939311896728101434483290418447"],["825464457342392330072098339254429829561052246707348020967121327507929943501","6236837347677787455792577194579413733503227256192204723014620652823730710762"],["4149251560898165740207843996861780275616327052407772470298729781530352428403","18797835537380870949937480512243189537466003385676592274728364448111290406943"],["11846219229154323270021078184104122966994741712745901636553126121411546106011","19951597552816372152474979965597260999981312888944149122406700359294174169800"],["4878615149474454648162464254372655810185884405085601580036942264404049147038","11819338418485084851748838418977890041586191182804510883032444754726672954475"],["9221263331122699033025532188521846144393799066418543465937106549698473577591","24237932358764386261212612807183818504862036346205114288138015948971696584124"],["11990905599781119658136856232947419377690128639865008957916461828843988036450","22888015894254317144285461523572864146160236343945164792601409095458212495851"],["26055624627944786201051275493040078370085725118604219244740990617188515747383","14367914060424281632083540971144776283295463670232994829378555997124755223907"],["2811239028658030509664406391674151077717573598028076642043118663884965479309","14948401637371680166717457088362827211575737171252017470170630299175933836126"],["7793208251614415224227624659535919528382355516563679189328839162605024397961","1012622241834027203941688871654278077798788090823437859893123910420707171929"],["23523176622570057196381624395901941784201451377069479907841876079766219821455","12306953101934435419286702958841885606451312340463686313110659209688913828291"],["6242693042124698404762686612420886269386857108089365531842009779104923545916","18171370476691321301223127301480566673068168100724033156302657188324831278934"],["5740300051375255985195740863671879559849821428133581400933433725863140507587","9849483361625259247209352943434196062280657650274925540805677378636572916835"],["15223241536237984247399543214187678325914954744662009167167789936576738589890","10130813338593912798072117127492973815929895534412145373363798314109399107372"],["8066947237667519990647202655927167282724805014049740580448516040276521758602","7817171544771340778857482669373230841035782117142616096583640218629792276010"],["16259316697167669943812377839984280856223868679640056897994191211827571423306","3720419622925470175666371043926025877804022720371435781926373280040130899837"],["891271928309532392964254173420766497756060218605978186710540782020465552283","28774276838085940381692100755365250557953901324653060363791648737018418675197"],["8110071028495291789909737814196830370765176129589217409963534323196342285252","27714072271794510799399539175203057442793161149443542825438696229161257963051"],["25818195943067248551225844612402276915138663232683871683330417160209231085451","4798120297470841042028380014856717359725763577451844491379791981619774381766"],["28655304884480468532056990442239575316669440937814461811957439647699658791967","9479281855481603060228361483641874703544355684244889233472150355816262229851"],["6879838969271519042185569502205363513300802090510218147202983029394888230824","9920816100620530803322608464949086644966269970521621316557522292642696267316"],["7667427402864161584769566114306636652395094576697418831305470545100161404081","2587472271664665662572762655920649271904163446174225630171007602689220807155"],["12909311396637420094580210845846463038791690907801824732105330830051089249363","25966193273753734054015431700659462973314954925861281294131667522092419925617"],["6451427510417683378187648249615438986608631063138954386148131487334039570271","5580824684723773916396690413000461433869066125580669512996642902283775639761"],["7054478583841099186776857958857962436492557796329326890213512094969089295436","2601169916668980038882661746022640527513637683761709055558094279567030321309"],["7111483793205112289155909935692915776695670260936307235529939455987285727916","4529641115750728019068444272633356165836899522936952346386338050385399234436"],["24304576176128279481849513797449836279948251158646577822761296545264027581252","14454309686015941200259860826290334677578505697301869674994104984458645842123"],["14190705899374924513488444965062989762308589995726356573176997641438846644451","14536746202978762389072426441738296373966011274268162986845562676417333480979"],["25701268514957214329812434778454422458619617677193300709045360733730341114897","19075499320210441823370575096230183065375830839027225463746725398543128116390"],["1646966600900925934904409832897151631412670870312521001808580746764984698651","21245369238671283433771920013453852665266118213872893749853185620353486870812"],["27275400553332635940782118306807188196316449255722566783251839738250481547421","6236870974094699107895907532798476471277352769748086313383081093001711924523"],["25303435572542257246435359068809410011595525695558679350235387893554682219563","22170705602010786122060974134083774057990855443475002523084226370245460519637"],["11366667720720528896161994711732474250077811577161625111243545300312060965459","16305200928500176151386698321912271034925713097275771762915026079519082920559"],["14184362954252552242548283236615051358546992316117261768173778646073873838210","25221485497806333618995545608982110108208927967119231500198126591254365344111"],["7449921842246775810082843259916268063663637968766553277166013438393488713713","7660527349861897127002888592607055594242216524332217291734481543707550774923"],["13873255872857296148382281278134392065341308741348951869279598083952679326895","445817056347811885203710846994354833541622187433451404557258354791435550798"],["5887917976084519020424297267010342966491017712989709960200152999401489436739","1533218435718199164623220129200373637746686693233317098071995260918807302432"],["26339985482487230208511414843074313245113169125617091786397940209808442965641","4965898500885211455901376661417375736356036991807982591656108650038152173581"],["18804422334751283036729375170368608795825203753077298093327271950632384909033","9151704024687897742583745818706965034049854487235618899045489262328876603786"],["21414018293688094811814072867620251558617938930149635499496898447427972330946","23232063440097246228753767027044674155295594620284802282751007336470269382020"],["21698720640931555524087037364658219748665107935413616371930313264874108637645","1810531878754349832706956033122049136684273585661449867483695018329586137198"],["16838996694311094863233545140715189837069474411628643591076438087855596636428","9381640466994084672632553719023734684892987623539363848441120405744049257541"],["14256767227621126938706344018094699544268304872656682460502513364891060458163","27504148547067712695352483693832550075482623738110457077860353896880377429228"],["4472382995406351165510192515932275560786859509548678662379182227306903493629","1257197026655302100828365676024656008816282202450874233349468492409191072312"],["22055787218253990328543736775837522895062852036793570503775847626120561199113","15671277209274488123122880555192244405942176200699461827443887162106968302808"],["9625127321746563586002231162780550341814324056958069714946627820205398248577","2524844322106751597859666310723035746940991621154450271873507516603597291561"],["17763438742359223267586342200740237003011514817503664469170499226232572208812","22532979428389170318035317413519483698132813269912435653515590467944399745597"],["15211148796407457793267751684279250308484657503887897113517326457559765909974","538166101178287024212636982507994525670908359262500116360308146876549727030"],["24713905919724536432668759582768030728464274850245718099036095301665730431003","22781123007156927720007149015161673646974271697130214821147024807941558043050"],["21601605848831493093569469612360240709335340984572331175389796555646909917901","18745910762713245442391988836654242243386807456201420033213874103317541693135"],["18391131889083369784100407127427262422315625245186708484257281006933525843117","14802789432517711969501682719050559872057165831051412283987390421960444220404"],["8530491009192375157454025846890805858625845999614829025274336042759111931367","19131262291237715504729032318579212667147205697598353038515904486444340170785"],["19596889552982909308918660437170113185254310494104495506753044112517899394012","5479852813150917810379812507812644821918380730717359322489906571333474902922"],["10043439557151926822432512546606348396507513447128001042692718419393357392486","16743270461924075491697765024427929533397448613414355996496079759384695963207"],["28927743627877475938324209603592712766244531851984583928872524220591173974291","26386411581265139454019107910197301182326566553093333241758255742566561253506"],["25618792347652726087896987360255894262703469238699640686735278401410385434683","28299382010899856127716504740982001197114581953360473220463893833553825765987"],["7125778201489160887471239871185130356960750668790884715435553253012528187387","2406533415978357167646201285708323212737120102279821390736585934339528827155"],["6967575164619105863804825952466087586365849268751489454777481426765058292419","24636070796263174288916522169900900623889071776029644911489837456781117676200"],["2051802072734400024990874209775804146787015655457263296487428079727100541513","25078000886919195713391290026499667405023098741896074411227241604019101013474"],["26288163120068873097027422398397010021303412177998205993132963983926449753539","7550854374315233320593180961423563218600411116840097082323055107849461059105"],["5681914745428873184726493475296916394102342316283893236953323330172531842349","4538080453858018786978620124499372809684404856022783945958460517121657691552"],["4251224568174394078518344462402975752189534966419260336819008129283502966515","26512006493923480305886800912163199860621086139102669879756043006007743392271"],["16396917675310364511361999915659969477090463022838005221743524057159318758332","8949600581327028092164267475885125762228401379048298366716067367472219524943"],["5751961274759046656634565530198247975173925545720691324943278199534868042979","22570974603781684113628781668363943188537010665458383316256179939921276950604"],["27387394852655283428503798032260505004322776892904713831420459682666000891559","92186197984430782922469355623496087501802677739486753452449731773467927532"],["476588146284705639314701855985527781136505564607572520170816502163928288013","26631233947431931925036316429246287787943907590622973861959349269107836983157"],["12145919322355141673642241864022035047439955387881341167535700596753932457354","28073084685503417549951239768284864434139572271743550748459086345434214433721"],["16325021863775745268754699533824618475321798776492080513133356080428546269744","7989239881548630255337962575746110999004178680999043328263926647473929305482"],["5210373353221503327335619992821684862907315915358390685978620685852954875025","14581155018274401229425770337549214181796248185843236237208251380117205230554"],["6912656397503264636642218423221131645091691929639181055687022665577173773879","11733042703411020650869312896829904864375871850155116430521612074019795634420"],["10320131271010341475645268781482014323931654564473102642781685548936106880476","25040596559542856642985043473848628775545483656436945293885198389030349643636"],["22362396608439230459792433199620392789189705844666939000954439331007963992302","5309944166227831783551391485521053022724198827638753720809772894504404559663"],["6028449734146156067637867484489402049304161610490998344002427824719497693271","10578590889163661355730542207353214068149282208903695436630098937734585308233"],["22229326265296089581958601472371848044095642542124807778803051002286648712681","4374521557089634997569335250328548371199035875290409448422364969337267583729"],["15916585477492140979451017611708204741035484986394676597624467947691425436336","14251703813808979691230410967493485829276996284495084729780123450755977354736"],["16451667731170866913231678111476468116425064156617797610514532939958878441500","14188394458350104236702956114021888685492902706819981590767579869342037926051"],["22515415606492048337852778631363778707029756518342290665040377197291052378726","3861797337898251772902480980221158954707521607402348142097422177532641999497"],["13284595400068320875691409581971612871135042466213398668158104848394108421088","19604991194827150204303404195076802241304306710913593542188631141632280648427"],["13161108994487120973675681563869327821033087565236714253350859372976528676341","7417370907607532529247182549525764332828194194161448555406835433381796844989"],["26286626605779422277846760814569340637809131661801595482651412479911612377218","14321256225567057279811647331523526750890370695558913295029639666585623850314"],["13990232463800383541111859273495382067493248815660482578049330226317124634026","9265166556585663364157404651557199624768292854558798374593889049762881324917"],["6383281283145583998568129318913041621996488977207822324505544473422373368932","21190123374375720129079158332148944202143986960627161277903176697317438005488"],["20266914099885707724007752273815594342801221012591305673423463132784394821819","14898217658544347052467138421586181206547127980065795564743467927737976162543"],["27728804291093134693203728086833298008830975562091105228427098942149597566783","1775547268323733362839246403817281933969965974129902066514627046050116690508"],["16993860699973543172529872780677398842108567811839362680225636171318043032228","6391551512256278569937044391553478337422250815177992987762695651610420883932"],["17262121321056771612481048928629484675702295662223072622265089636150825657090","24094397050055640777560630115905920470156823048309735793637792076615693475367"],["7155650084698252963734802668874983145753656596224958617829569227143780506550","21345666847891529876677179506128863824266532355269227546853381014243509316527"],["11143718167892359949143031253631870408855668071410377930068617460416987051535","504319529773249952783926440923974888558185838433955313293066790345869510450"],["6105619495899968251436213637335612228137429432393211061329677465109557277300","21902731492477694148477720208636415767243717814762787078173442565360784787998"],["17233767315537945850551755795116073220324341242197067445490918260624919174568","13176260763136845434573970735330906778508597524384260699422495949387825040676"],["24391829256428024750599185782191620008766450829284129241244312211106138473090","21633515254269121200565569774904681156414904907821370659375831839326956265984"],["13754965751719570276774319887240207992743847568779282005956379871113630387530","27246242320729515298245924312972838258618054349154555244549069403115387697650"],["18545486948406007087301704110358218471915860149258248514001430700991590737090","7695486988507890200457746041902634712990010188033477928481071982985382597598"],["27916809466969328333939765413682544919065640688308559226078162277198215925005","27404619405776477680666618251328924001637056995568939511547460834562480141648"],["7124916236020808781218880356532509897032784854255014657965008060457700560175","21671123593492004265309130039288434071681729806543980098379069764046411986034"],["17492976281917047329581450028900268550040523349464332515830823429173388558774","12473711270089158260749988774686240770183313373890305871510502635075387525664"],["3019954969526741219319473540356420649881202958131982706969700805948886448299","16201833138180177152720647170556454354132486996573741848477349131192646115093"],["28169723424546154235303325167109193425597824762528225145458466278648203571882","4383895127738837700309966948334909448064303215783782494400913940171907333188"],["25694951890865123225321503342315668682309558947812614778667384262122375805682","916745382324996079762813803525075110542397060939528706507713123682473118021"],["14310299844589421968425577444419508637236258640927451954860914088356775769706","19420520797763193991954887781525971881479292136315573532329525827878292163844"],["5306803297769026279511682558303432102386364712791917816219478342052331966617","5903070823805143915912284212703858785483021355141748613520109266634586973955"],["13783013172789192655422348756134271116848252479626551169992063381302203024856","24825080938625715484236481316948462283740304757421288329267612883137877494749"],["307508693161116875144232003682289283496649835635542662963896616191118076491","20543558986377318220291046119675608620514215803116965661583185154303020820345"],["8504602322063951272715634750935178018133830184611870997373854641709094122630","25054174124425197750870127232992363166625050436565686235706211636464206376854"],["18027427005789321420459578836859027294910013866248162819146350304155012786205","17971319357835476604428894237296531071073593183907260640369782803787123158298"],["8827143804602964189069667865536649624860706822159435040187595590273293116912","19736585384626518730749166138420222222465738307237387305226810690643860825375"],["7569931572659360143756862297741942661328348033070972349381366777930621392886","3537033863452705029246844910982946061183618747749055288583887658376699559791"],["16736768437692002917011119532577468388323167215301948977489908671818927659103","18404456018838881362949581567853794168681768117459030510825622497921258375102"],["5220747169213263765054974138848853591343392224049651903285289048117509818170","22807321022086107682347241589750698992869528261074130863268005877652459537736"],["7600431215241973199038736298080746322216852275700378882157984912248909688796","13984269522120773127124637985012356209338831206974723319821674698671449366994"],["22692495169870573743001040740389043110985920559322935456637734390633002771222","22652380090475566767962016767489235537040059146581466984325706397051827987920"],["10936395972716276837461746433606095672394574020818039092273266835960238100308","15956120842468579309772348156468627412268513328363348133783348673477840564185"],["19589616021791858464629741428437423711841726096059419180621456522801695011202","6656208616794298771461578019542478684947942498087022428748005351051374386161"],["12251497701251420955245877000893557064648398976176906337643655219493837072666","24074226145291816328432526241021657105530272890682280363711195939912083517220"],["377539251540904970547246976729106628135986188139257905938287790379046554104","26877374875981911446227896570349371623666564374983439455873067680702540913303"],["17632514486063513887655273501477273555180940211331198422945660187417822880590","14819130458795398664783260663002880003516725345342835125620935330610700265898"],["26161532495302931501365913250649214208720360950943380277467697000428567703332","24334197760400976620249270280662679696935941748099472137111447901389961151245"],["24036875398077200665867217928299264561888606357100763398675688387006256527562","228054403646713887628589224003084691652910795918360809738301874942527481306"],["22236338433566758930003851294349827151388503158184299931210629404551787194283","26997080083085244143694685756823615248403695698065526461525767210866218558821"],["9532120061112924324545247914327338576650214587384747679425136696025729398359","26201821031218732385335030375801435203245605084891742014690102115550912558731"],["3583895050855474207092922159256981878538407667534078835855013845333369230357","1372653591057922032823501757847218828786621457363214624744108786711058315722"],["8310770203884010882798430894701962676151337800554057502366576286024196495342","10277577045710372474123495063256469287566887619947076669930387443557235515226"],["22967435972992498374339852493455166784487688847922708173032791553884991941689","26240345254783190408923716076907810545648574388372187547659408186368536839744"],["11556681973274979050872926147629937883494281223309325794142807410504605682679","9675864401047553825602684001817053218261376842637886054331688431927159306805"],["14564672810719474764805888116367505102125903569668412151996733301970905391241","13283347955914868802742825613446405896595370175612362656198457133529256360939"],["11341348146050206673239770736209455651865495073751323066001109574052341891954","14099074586238764350873497803296701490132641500270469941432710642477437101692"],["19127952250317232993772337265876486151849971635817450303655651098293363953951","15810992167212060551156067212453383537474101456002347253756320396399289880797"],["11891302759154365535543118470505570500005071008794298533571201800256838693607","7471949675414027633049636731072592138465211038451777263660155070207727750730"],["10518034664658041605478518271030918928444496161048495716241156563402099488047","8598987654948335601633071644470143640332867781440718384492430761634497448487"],["13429913391939797138977116643970125062104008811454009719410954767210107640676","24302364777671070393167090151361226254289750775347991027948057001755054745266"],["17511685058863094117003752388868254880404469024778379578912478559091593790087","13440541578872199001409774968972909450642798277019935000169233120264210979071"],["10743040490741231637760617626323874362936947199816099680943708191732033047614","3759226640637096134239463867809095573402161385723556538009073041882052281622"],["21805984514854171406766727051406781077875167993982820218562727406194772653094","13894147956274521469109160502196727444438568187461789348454865963033970406465"],["24328813053074019415497741298385112743741106783615480317350423270083792235629","22598805336999769683853713401561993735111013715552114545638124263414244586417"],["4091468704872463818065931376519564759359666768294945283343634829446947659896","25040239432150383127960914676718539964231824376840820045463650341927246369287"],["3024073870506556926264963946922745391308897051107370772444620942328817080863","21030872268680793164611694521886579641723314897953353250188299855916229863724"],["12692962169710676552322527891799762262649151974702250161983496520289139689722","7479849420602672426797874576939260302564971214445474241046602761302192804169"],["18154025594516235556131302225975148517335084821121556869223185249971961207415","7943431877541629884475954653684522248050216404510256877588150402994742090512"],["8063577488754592120349713491790670621594821535110299617820500666101225072568","14360470094483597463813923280494815719772001663377989422519165782353109615844"],["9773158775304023019363613731830683369405082324352258593119460194844182418380","14728835511646687729504196062839862064229814004562906899395505064733571974941"],["16080040107204253178825726394412831378973519190680224976233656494144651800542","1683285264450848618016207545100193638088215233988944934798776168527081236139"],["9751156750727234633960044632945167921691282429841788193505703615552943939339","1572617309121466294429815057259024785268463626381638614208573202036479375590"],["17352395109869999883038530695356491194537456896625395705154247452872388542587","10960625873277939821348334602173981529929880750219023144124743996399242237359"],["23767510832792838515171216424001826520782200833376638721096820043077428108688","10521504260879913937090210925244595838281521394445514877777285071664312015580"],["18877800435301053213678431179792997648382169561616664738256719281389452407388","27401991864355895323260713376679808739697168350319550669507678875472425837840"],["12317167438568898557277301830563970938076351003365446850857839411989298324364","8536704857424962242932127121168971139924987959767886578878558326528293673034"],["22356941189985663482742356317573101075856039568688101294917602157672844405187","26516761483656265014417211994043513263357075702924322508525674466988314529685"],["6772119337587729396951753379407151952807492238372451483632725277146533036381","13923320615972523441758833061612944838012764860666343163400777541431456664231"],["3063328845939736441851958149914748619262425058747717862595244983165688734506","6146994563304071029657551825168823970075136532571107345777322128680935445034"],["14374870101330020934968616598581679140423958487200005913825323620990248949659","13476361127051624473912241623650946658393056217821000658542146830338381579800"],["12308019242175380469528153865937782651919727872991721996078642374170902731093","397129256303962161397404334066063387543194694149617561945126378093386921277"],["23016082143118726916270980465508708496652376040532243899827823661782026040868","21985101420120925069219714330161162149535340197561525735718955106746253445748"],["19353661767771818748989234349011766067733872178741602681934970190955812166448","7152093781837586220666091152832489731278868769850417691914610215847327788815"],["19996159107215646121261974940074744449649417638066254225607234823437784659990","8085947352875693699354852821080868910807420830578473548481592280509660462414"],["12416898523897036414547256495679347221451776605730603920705279079300996976623","70981020904034219550993762210846564757083692810445410591860619503950930362"],["2407868071610237017370311622543267322944737203096195799126927516132714631227","23017734126875460918678663895706558370093015370421027472181513350362397700276"],["13020347076018306809779209745535427269068300063650667551512435004753174146497","24089209930488051212068754518254617370316116987345610077144144710286013288832"],["4427343332427488512946915735512944016945815177093797780827494469270532110530","7985583291888375847797634496341682202150654815742297544372890367549735727381"],["13034465545824433100053169064948522804107296269116760177928222740988882199491","644124665825058961308611989722559837208780598843908400876488125037476310456"],["13039884655844702885253542047760628396989575008638559178847689005065813112347","2839092485536389870024401810047299165020518472161803746465816755234143349997"],["15922010553112865298369773497240449575610196475878807264100896492096503997364","14615848202029636738899548602904667467457382966850408594298850443489806973071"],["13680432312561027471264592870777158142482588802800039222844855169554621398065","23526532531781328430547499562310341918464309597101140555096635731762322411487"],["28718965472331173008428672371114882456018844741439276516823217930948441938649","27468172264972522402937469268342093822843460235783327730955787546586878886655"],["14121977038547668605446657210001054499583319812650978258787638227972779963692","9060975991904768577583829102527432861782027621496641015950525701958766615740"],["11676380994992128963762671225912994254253805287079008657809764210479635406328","13820655245663502913423803013391163341486874040428205463914309986408924419899"],["28676516248538921545058522650906010276587455359026827342685113968826792967291","16235583741100932287142572697703560041322514336118493201984859512285192665335"],["12802429455482926418853624506717651938352927990864462499006336824761044511395","3297749934086241625805502307333872156458755530147166337186438345433182448954"],["25212827223296085994494334382701246166802055004527108233413923271215600565530","24587182878426587268441974170463967399776468795725833698605942618405550584766"],["15633509576679110814852448929329703657534869922703175935877021921089462190817","11386532205539773743222275431275619783826551598885571976298709208921769156085"],["3571578536047704166594855712164324269626724289112210713845455504783092990127","11853368255898347062321023759523927466159141871566238639845500734158614887627"],["23975359157866005565411243279917883498593368217856899029763549088477563956796","2985971132987174496210469082385657828183394893459797511779619635691573658384"],["8902481429305542074126232318893382317414454653991742727767177971464426705732","5432639068970243427824541880069542316402173754269360186249667142580666500886"],["37011383356624888634807609266118209377225320680026896828319281623014044684","16052529604650456483406391485265207677920394744879141075209177835925030469364"],["15087542450656989893484190451330564593646543172366309475599674945269953691706","20568528485814669496712669531773578067195452032770420810882277661009227838930"],["13507654171126645216791266080292937233537149254513841874569189096045740290378","27586840645293247477527188058915653490412123026579596072926384790478556847730"],["4716136494850347117653230561593199107195823876046414285408027981717237070320","26311532987627135088591614573022442402771074805394462651224204111115531722782"],["18843868417248650667437662365199457445348610394253799096045732850079328503420","25072243383984097641600486740995742748113957053127196270185184733508077852643"],["21900125219140986618811487318855913153959712063461760306650441735263613400889","11687884387646336184976360913335705093929698503246019993305932152949878008943"],["10482233286016769271569782943006406244317451442287549407402057145251556004364","26968449105039583168836564938342764778655636129541822253870014389487911227505"],["8726387386549106151386742496637257056365922736509126145001793211244716497581","1645371852587575157905629950522764316709814994818988268720453632103484011240"],["2208660272832260551866187175683791979254289737947740322214355261581804157715","27489458773539005933528152978702301638039584936669036336270554925787179317530"],["17735177095664684167274290703724269281826497211904606829032756709513952847768","14625690355803953294350867567940001337534609683713509256384163535492056851682"],["3144184242043519760538034245248397323258079195201518099589419955407909926362","17740884757486291004937186412498385081649127720403021806773967997092005960465"],["27789972657412803702954254363960954198833158627870317038173437850003702112854","14904217542792893215760480226054738363598552183753241378230649517847968853155"],["17270299719299562282676313582207439201292500961409257720514178902485734371161","14979083210137864325032944384431324540642245287890820818241282228691939346916"],["25571419347577798971354735230336225659791510688164572789695191449753571969042","27393148762427300071647118347401994479814260751483549008073113458317820456580"],["17301025530366283506184984602661653141357108094244292497212151008136945864160","22007816842717553311376092905146961801784235765310399526243290657809294394617"],["20956370773533496767062554531367228948789641485300110333313101455495897910412","11183638606293324650057480001319325034550888712082780242406590298610634687395"],["4516470249397323341015354682439802422240085012115661974208126218204427795839","14267789450807457253728513251341775571070956608718114263496563600915249327698"],["5916375698541052162741043103196532606925979701977761438204951215979320855650","9553859105266630615205243969586518242674865049829138082775811109341814863586"],["18007190861075761618246088417580175596122668383916892776223916002744451216195","20972351964817577588307401459095230120672937349880122655097059392381531950220"],["8301567552030323405133181401276480350662057406722661847782558575509754760431","27180924709313529564544042418208422496245194396475888468458634806736341714087"],["11341986577532300163457983779091259015501756229967232136837719329207837357677","2074233945199567273445271933596640834651808369919824969326604313832901302548"],["23588636375342266106110669720333446631306196316608130226643572652401184488874","13411591253527439274212954490841452866666619705563673443211620330761848599543"],["8755486499561924236647350851240664667314596710671217242974541520404140679551","21992770889120927222683417390302932313068539228934603444531537998476993034374"],["10083929750088200244420298976372550828028485081019987627015551463264057169310","21997453540000466307347532425181341600142489434509929745832264232023234999285"],["1562519414992621768445827051782062831019156150735435630679208453638702878878","20251921546248922418495866974582837798938176221506228083035738695719914913223"],["24183628006887706892370151105687534694421396905904989350271082153459985675988","23886517438857260775772270113782072636011603234458948762054877644533347681795"],["4607107867201842324821532635143181942339674963554226000131565065652748823699","9023542102029376850732225012014035404611460139738835886320800493071713242436"],["15217828440589681774391568730595673217044350091122529470776304438169487290363","8276982167080923771795484591824423117206403122800385530925035946652828471971"],["1572139309640208154676691235385149796335053255554023577076003615240983315684","22795693121681211149912651077719452080760111358667367355129620252371458192985"],["2966135583223886374122215327083738517443262361636234809738382945099651469552","26230446969357642889289224609999998551582292378838051539748091623488714710289"],["7979432615092676220315167388401403091008743405983927441447236680870598965641","27347799845490454893835176148543273499715750972395070636501419325329250340354"],["22478273294827986576779464798031663413942120544465071073966563865147137908865","1079506128763704232206124406662087952175533101193760122848063954360269876830"],["16287591145379982615665492831591824151823703312113818700083677308233252193077","22633845772224026794213717915956594552095329503796543310434573593589349542354"],["20945682288431641385528169847105373323361623309653857057327906781078070746806","9638376417380300550704318243990390718694548651303628449645841267258701271108"],["8979919038731627281756368076441642977797618998626744988422723569965011482334","3827503997362548391357816386526645995841731781776047927964144513974737309576"],["4950910707661859432149754490054161665130151498416243712904127632230741169041","13845447415829451542921496552076008581280726768216731444152881201496559336256"],["23355796337196835310844403015076179355765371642084143270354515386428885668780","26847542460652075427251163822748055459163862551230044107630305777708361141987"],["3720469857213179004151060258691391127663941272899144966055144106819182156197","20970309400768815272585504572859649800380758024911516003100793489497375151866"],["248523736247994418357278824983484434476709552636924240001629840900300548694","23711817112751852628315860453526842177642946434419779451717641896902437214446"],["21389289890875123105761828792031772241745253744690571236286676825308245085120","12835077521039168198510062282633511424994891769425200526379570580692510861670"],["20486669405385143304112786705410040089418823583870610503352185327640627428556","15878859376103233890382522397179748727246533760747099321727278192727582576329"],["17653061372782767277685581949757842781104266537613828015727220389551736382456","6047515576424967681376960072048019433727563466189620466769095540303152110429"],["16888436162253212013759130809214336213177693686738825798738400084938117751121","28061761202960043808870646271252701085705053785138868915607808953082581087160"],["24369860738298078645873305304342839398054580746053410361824994977460262183498","28064842213612995677368010072075425011811214053406424529717193719031239631571"],["21758183182094754538574540903964992551828720713033682223410735862827926271497","24758668736548429914924978325962603958533883965683014894841301656596770391800"],["9013173484908597642621096247961952514480202361226031537343776402240548285361","14896714609477921932320682030042683170803739309800912098880216872368227021868"],["18833414595701921133460281373907418845729880089854322280182856788140771998695","20592211519641202367736015604218538969051316599328762509745321049628556970622"],["3382939985541503761688458714817060369450725041231392634994705971539647453193","25048508615122109770628451769809813467241471442470855011475833615835461533862"],["26130149892551744530638394540761005310671365361218516212002674471626122602563","4078816027977458862424537076615406450907061438591289273838122457408511041976"],["3219673953312320018779496918482819514519222498293412124300057446359979391282","28352802675878802986961718390705015718409255631403103070048843103893195815503"],["2994276699257734491064904353365449694750763087704538942932117633616474883230","4692165851000636913925403248332286116402136751832989385470042707084318231537"],["16997953906304504807558163452444160283451418417721087182345906215936849366870","16829611688151504438329409421093894250089820691038404018939695416479131220763"],["1470191510159401350641516662378469715962497893617788532342456784762891234065","1647117520228177527242917258442325465355294888573314137328857366176563101005"],["18947543832711412129176889803827830576020867896298221612347213098276075426053","6982086121870635560943890477326876696088501344441673585941518250018488789776"],["9334771908516069345206559613573303059374337098885316313518249721682577034490","19138884709161925967026806292083860432763970475475878672807838501079945727760"],["5479985325405738121650046822302405319785105271154221887166392787547590489251","13768776337151654078058767375866204566252825600029732788579457976303576046996"],["12318948006800919864347363776732280734050856288829829642242189926507129123485","6223132510273583578995244581586252865020963992851316035880324334516285480573"],["16992596098837374298835809065906998280283020953118115843205092508194703482633","5522158645594402127982247322030890029458365722321522100724816355103659974537"],["5070391081487903398396322836059120241426765256653448579457830171737184484088","14333860327622592719980648410300715784435300331293866574242488210514418612207"],["12427357247787729351531149926280228832603518339068748770980509772341297461678","14392662768537510222904837660054602261555553642974517239518921961117129707667"],["21273833087170868962166263970550189616857764294546631139467976972217014856475","20326716167800920566271345630886521605371862157398703677667470613626989893380"],["9759955294875860358070789974258512601829214051110925144328954125090444815947","26088090687898115075576649174038863720409212210267061424365123478743414208946"],["27498478719939082935753632043139938892355686525994563383122633910669300661767","7685446587922437387550697882483546561099341168304122786994153636625151337864"],["17947967139176995939389170805803281336451191861500024760696721268891254345242","13070952716006510246892535267308956247041232057537954466513124824300432108747"],["6544768391500706136260434258554036918448564064762736353368602599743473525490","18590228145230392232013112032277988611634829174388101327846327555513307458450"],["24194351006671134128080093960494130171802497373893602223095317769387285114575","4603549193869104009807998024230466330797995592990979479872961426091195680344"],["26989466753692480965275168860832545073208075845423714019959048898329766101570","22858298020291262971764803669363696732506359632822220647118109020240809217269"],["5287060254790770913104756415284976496839010035755097849818168337431428584106","20402349091779341263532432424538659781838299862859943118256946041780299421297"],["19019315073612200272237569442883488646977239091820126271346242230322743325652","5550307443486605633996008307730820261025907518330315781901676577702250734443"],["3605732866356932674111280490877351506713743471295620683553030017176882038106","20340732445287642075332228111705657285884390840746381822024918262930902955512"],["2184999514095743230477884908413112104524361645956988194037998206311348698400","11223945796193486629235233594953184413780290580710774709800823798049369404336"],["28095669391948051676981983140458188143908534552153919820409504266239126274100","19084308311992146757686380737815483094596240816706725534403437962070770323678"],["18339172991358860880931685785959606560029308118540749868696815737858892094297","7892592164367855539882622313763271441874294975099165511616148825364623206294"],["1974896065006427173894294356943517145341886941545068025035397060662491277676","5622717551381819095124404084078202804376371269716912343802848313524741469532"],["1938750589814598669576652427635160824071172334957878322689562237523576016091","12862388470777674331450077154868626936839285036264487839298842426449102282663"],["27812314858450811439266644248250820097006434169949211787962806459476755313564","25422405468087095600215281884745013226034658224793147269723217485553329589337"],["9279946408036518364595942633488922888604055173090485989580867422528730599156","26169840239996852680189931552120519002622630090689087482568189352780423534679"],["13276687419637627293507536267123061412321528463931511559316343865213839020025","9714245304782896444347760298851084996336843117622257501962762423644533404057"],["20070154382796615351777747169393500487274126886703480528453090765278827766414","7592038047619026687279881796067427249709042041493116566468158635361556627796"],["28385365238894551872608828123169979004629711552434641472038338799674013839258","28057201764818549977555208502065623626394911823486925161093176504290508606308"],["10569645199259274969329858236079622981809857527299005974099146825019922512693","2254910517421635715397064805805356276628180422301839731117033200212977021163"],["1454441998733850147212226153029992620196479327114656260164681894897981429033","1615583607792389150897327093635189957548030192790938287565069866986977987423"],["21971459154604136493430475792083465726204861696320985262861992008354941406446","1551176152523395397995904271983445316634770793051166217252592636729467223450"],["4698584054745623142541882063036508956401860569347846090667251498248312965970","5207329027721605397456641308459849726240418718701141821129764900367092221179"],["22254350754951520494412586563380809992966431232118554913732079331422402853678","22993822875984827287928974388031462251297970186677686596366642837542558603703"],["10785904587523109962912880279291950197135464983878335401587804197394735746745","17503473492877314597445205165429145044592920931974992874276778011032468143068"],["9379365071357578829617052894724751668426485412957711503542413298967664712673","17748945593786960149070012463976139523595787447524284505020838164481293204941"],["17698097272002897700330558669464266992904467612391498608513373676878902576839","20386645279348574276425770682417132293571473853553927698575827511295825323724"],["10956806419445721136988040714931301304685850476015479864286442212934287405888","4883463658301373889662315796023507414463234112364274929391877617660566084653"],["21404029397578464307481257465543617085938052492527071642034748796587225506062","23734197325855528671505784963119868726654273359417232941402558940650953813"],["14609116973911204630490502941529812961579341310955016003680011149612056115674","14556692797972256769209342343838633382209195380401040135475557592293076815951"],["4652015334379223271868256771975609544520837226861985122838019943768458797710","24863784006136059554859315596684430091914471894743339398346308353917853937885"],["12020754526393158625525667443555721626855044801473063990224721445738796978743","4194526805382377699285952224804760996607737713798331586034110443260391118645"],["16964405668290125568600277974353019646721285221183864430638823688678997341913","16402112421678646545822384143193123186216488668890430417566518218138161299326"],["27946413331303685772273127639130462799068260025769644044391570458721161556877","5362209037899460753727273442937929817271537436858940589635869716555940410868"],["22481189477629535666012660939392912904570653995732652942515870720141568785381","11030083730830295603678413694702858103461991185249066401798104977331472358774"],["5977503917725232531531684509399668737053533927427241265741779973497884396870","4281688370084785777063865341353251571825610011345111988351050572922983813052"],["11326844897665573528003409128898202664122546501450476286420234314411429070683","12136332212303123792501416805446157992259798204363114981988132397651471325242"],["12626419437382758907477959847997685351235483496521470828078591318255348499617","25096049045741426749547063056609627751467547499853734355526552608720604516618"],["8037348386720303613136073322654255731738713422251580968140923631415018689646","9414227717919790154529880478507047239198409284694663321860414528729292363700"],["1440919702693749685908985714108653028847247305090279603009774314316001723552","20213479388981634321781592766334726369290537176198469823386885161891169416030"],["16944785676465675331791363513548765041117248770235990989910620094083649807353","438192429190908699825326376351722378222782379872764462626259180368708407493"],["1625928892635304118464994135135276541800905241736127444400729163962777113698","17279270572706106645732948182610973443667984411167487892981561622139171862664"],["23243884446113923961757067010483471672849239872893124213442868555732347154379","15899788259570950561867600926496347098600923991960646838458912541055158351494"],["25726986779651968142236377854802994960593457166391651940423718980393827186775","4097337357584959794424174654343724607596938163565524462913261213979768950846"],["23904405983997594137494349646338349908124722188521255979258800340487180123209","795495350911022768068669482418326077921823640558692583696727586403516548472"],["1659628048173589217942896116048326725358931580515918760744856636204263189855","7716143971092684964406770592452288861491733250252158507786669400019414655145"],["5760599753138282617054529930742502549481812573031400386868271712597612148911","27586324993527974708916478976773202062304906564371620522042735892771094491975"],["13491025099387091582747883547755307359677060133744762830330211805887710287654","25829193007735214596998181314540297948373939716578924146295223821558109942468"],["16600977070017727694049039997594510647437544852012478906726381911711534366382","16390409190346633623851317607542032869010961325078156081267130620205616738578"],["27896694234388939439505687527870303872156067127957200042820693163571074940588","23588587718437136072093480280413010503767280712045957394682228305136497422951"],["8471845444271278037636018685718090015196624007849267392570388477876404385440","23355561075038849779218703285413319044951445023855836121157772567754469998773"],["8446776716495931904064784742316797285598222065824058043173306674387334927113","10007254087520036305115623556655201302018689405266766941904103450502562377106"],["20118848526717527790390064512824706004800527526849305381935868965791805004480","6616635194977264801402406155532257780924306475558809820031555084279774809587"],["13274734787827415993756304269228647004807167440990328550651667313301674834924","3910681022929990529167693364063492535370776986714974513519821381697959601543"],["26501215725756404375748824702570346293231387969740091756702950631785238474287","27149266624883217990316607515277284631937588264248747589335158657189378941868"],["27990599517406040489125046926726757720345183659458452414983485597336698536643","11244413483053438562690706870740644260597756912037853864832460904865973680675"],["3503645041065654795726518867243971572996069046130659210002096383961779566744","8323018180625736884824689826194396893915023027957521141725140596675474192088"],["27896525930945883275281802080072580590808206777312803353792536743283110448921","10127963846409956549379638142869129659812866995572720577103393411340085739285"],["10512551972192930404075179637236079914620726263879516826275909637548304158435","10091143585405050129146344620177416107188838998771024948075243388010861680547"],["359326042689792656474272656214598260467487052604286499688971805816214744596","1720740735888654561206856154288350573655511138502794391577074010999095249546"],["8742189349970820070814968214905425068253892651584101913232976532494087015900","13497813256758133161513177162126929254213246245182984610451912860377889648485"],["1230859232294600161333709842858295485055468389505362294181148645613037936746","5672284578313873846086874944459781880825503816769225265883785469365537422754"],["13993137819708055862447705252741799109490114024231097531448030253150682455186","24144917015054678427352536538951146189140482206184166716368476184196481983756"],["25266498223594889580997668504068774977246382565325972871806102982772926600563","8113942871345518948355833917427967057924640281178303720789198484185630017929"],["19645740677489975969671105307133346308406535251760345108037219532320017681976","20456775770140556057552057642973595971359022027737336209809894509524447857518"],["2151772851663767887885313894474011697782873064782988949014487314059106457354","8763014190089695940946090745801911495383102242055274271364889054330847983646"],["14037349704615792099267753948136082896684241428587449070007612870490961494230","16790136098902102039077223856698271397843901965473193577301172401429835085602"],["13924314841339949282460551461198140393813391301820078564942504106764881467191","3389730114788418319400373004578026026529619030944568307958745656481173907326"],["3473061474448543822301875542881853376756849804579165896391036719354832131655","22036071789774388680841522206843018585124812369845128272333521544105283048878"],["3556869735542651868759323268815314436043035316330861757678301701037959458069","18697612808088801116609291130391030099606297377985342695354582810086002148287"],["20927281911350683885329646132004097866524910068126708947444411314692790583163","17497092591382945930913619675891706930004686802140387850543273921804673086962"],["16162507621403051582584041260912965210243405814630797626248949383025486195969","5110135225215920242185018918651423586519411282883548254720362007324368818918"],["18358888907059494020795001380165231754830590235969527375008343441256057070345","22029495127440973747737497268973998735705479172265164367188970180620622224470"],["4634897899629173202754810024633640788234582358768472862091212078635684568316","902028745880910292737812562607522176478996292426580049079324228115348283830"],["13982240592303114329056273590615429837301559238312379509222485011358575386202","6610415077417999624035323315286539427087047807107188426979340694664957877970"],["25250237402664004778374760856849851322131224284305639585032552948339222676341","24519173423497145590372579753850088355541125582085499993603441581920862513830"],["27132927917358759620225376972487576398695489423142295364188041825409775429061","7417161952729204020665732623143282080485704217862856897831608484310455801802"],["27859660963688030578713066877028064191401772627784312947836952132360768479726","7457414701557823940707219497395736079299041345354075864586712491986821506386"],["13227846977287262728382295047202438529419734880672237460987153802340791951876","18155192449100668286660791926852328817127791713724242106195921260234118901908"],["12752600374218541584349968019516296110411561751824722473404487652918893859892","4330694318057839446356113166871854249401965207544974746668290716583375460775"],["18948276068252760992210680051013417024255897255039805307196620127723574712283","21302090601462068998563314704014863014321498630281372605512743071716732250610"],["2093647999208548751090182271159923070884210329314849890273880960142290373331","27920004682926651703974647589731775076101170247813752568680459936938227771366"],["10890722118680231883290732198444372896762034396824775586503586994783699026525","9726051554057805785278003695605772802378231987564334789991020117596266123809"],["12450152009719201582166380789097272026548223880605688159220884882746443680921","18725335911942312890255727361812974079730313332287508071904267804580356977580"],["27062912993078601643773477329798787470239882097619812231865707667278505686551","13360282586485279852741718073334111801214053279284778916534677698751671412249"],["17694203419021113032363602200751616405375358160432858851240074317951165259149","3878420274575393779153223758007702257881544414846369130800251498251977608409"],["12469422342072582430215550388095934787816640010585774634013148174064650632156","20593673169875863449685677743871194162582047738305873889343677485039836890094"],["17788332417238610785965550436109774383111525518185007477834453879439320372128","24231355031946484067305467252840459892451694612636411333701491024807902499954"],["20192003179710974796678322215930950355245505751389721688919671028637428730084","25881206934595161196600028909458474918362546135703697530872712958348032176534"],["2344838372858899329139880501970541515279504326356688698337180047924122352663","3886051107809481896511810230020069469941714617332566626960902997985241461904"],["5408783009366457203113408628918182785063372739011309714934735851567868875791","11201879984923034782287878082713761729711167102162468835968094223432096475186"],["16911145931247846591625891736058739561995976300782282691655118994602782858399","913960970847558558972175497596586481355301893253262923500413920694089602073"],["8945270771693418733846757087470846199957958448339818883284905178167258841775","23821232271687005522656257924764060498753630112107079413608899886635387013345"],["9773891457512807974005183626870678929797947789839076984106039453650232785769","16219676172922421407584519198332094005501653128034879691463422171826777541776"],["23847069114103292346274859541330794213294451752438053852810002630511911551365","20242510101105712827958090505245437705029218612576361452691139257328700576320"],["28253997108117358314472383543618257749336297820437604287739801337146668555945","28785112088061592138225269039902341689572494294179150458846188269049318068513"],["524885675370030100746607138311458170604478867572179430998707798813351408355","1884624582817572909717686844841948678055786313306211779587114734505023573081"],["17953640393774441139087720090152507040680880834935789293756268852147253482494","9952228688331159511990878586834572401226783217798831567450572536468507115457"],["26631117235306905666768280257109654405489225190194344987387496409076979911134","7893311385959149900759604563174135656894312503466537330307270369163360516678"],["2542195405078378512077060839470588504139779018854324126102129800944959024203","28859044492996941665481045926346682700720232144750901363177248059401744387420"],["19249791425221885259545136678744588300097023881882433689151851225531107928918","4231872991418685426569521684683038173228443407148888165814991232715396117855"],["11153177996441763774021002328522145247822176023609902485350124412357124286887","19068960368045446785611576963602013438646723334479439745376842612857536980735"],["10144290506656366592476699458168499627775273440196135694796791441605987992415","14485040289682449411059115060903696747648313843457489032416830542648261689573"],["25104318182529923548204784600252753551707597078927346227720360139890960938929","13594104354087360046327524613081689669616153996917902838013663137876411755816"],["24508889760476782994099171630186475531729838401986126882608911689428152354767","16901497730848785768169352317528061241390327964563709985672346194609009841405"],["3781096300816155723938866360193909822709871704800622164620280789772046494207","14898859616954497009311690329695158643316358002852352011959394740063023495036"],["13415716189604354145850649544419913158599142625364905187241209951729818724448","8504887029796561020525271654958908229045495992206393317551966850454472246339"],["7796039759901617112880883770793380546306495096158129693048497856357105952131","9149528703095861396969344244796382609469371659353244149833491361820608366292"],["4236888209316655240326921698379106359426612399254087918849836064528474248382","14012086587617134194109089590971063172943298531386492145128997604185325024613"],["17634197491508404035015226919364532143821051531846071963238132618083741294615","25899077227424886584592683183967595873735814923089407864563949207150487775677"],["1827071324102419751730552108658315329440870374404621396713470413663800853744","105946766039988317056138354972258258805755521987619532347590404576353387247"],["10736918801359693704745093997277347564191739129577837640219399130423261285456","11814139958060956847848527693771966721741532128214086508743440300035997893572"],["11253813257609423947815658757440411389708850103712860422247495802074460453814","4880605346905862530209786069793421560637897889291167841817086017275499364409"],["1131805458539052006115723035942873586343123583333273394797416682495847539571","28591810796389287447045926065790175959369579992404799953341488963935411854924"],["3975932459704811506374829322859793174430766742515135492878618708869211512327","8284615072408369576380438974724571765440878483179112298995925778932723425789"],["13217127250610228688614224748296536048019709030450626175733844207911581660297","6865988401073653974732146477128434199069716084130488077286571604685999179385"],["27803274290582262718648765940094141532431760079996337530829819868661128146511","22483723215714935815547691366597845387471560741291670302632395920422681625212"],["7541114331162957029335122454206346465766123720371560481680221665031922108373","7539582240790761069171815179217109072921791817782184648668983195742456730709"],["10701623565720552858991745499224646857556212239749610432061431827327284919783","11563121735794388172052809139469685862303128081160891760563649647780435139159"],["23212286295871356874498849631997498500385740751217958989517718386456773242307","8527852472393001415209601526495823379496256623700011282800161162578352877539"],["11701017641089782533525805256730878249030714188178857645536876551607397440627","17516234908044920648155531259928633456705609611087223867983716486641708143900"],["27268109695419924324145086230499710798537781486676691045830638838050175491316","9862753681045766541055053874322723134836445912159707101106466266936284177960"],["25355326576207537976362880986314605660064269896728349828522007984200775436398","10596266096394964843901912921968165077716396567301185134169213277116002899608"],["26577616673986664528773639604544981881053869719496903279814716959099807779511","5988978203745266047316037479511781962538784860217695836344235666353136141804"],["2969063829930565499020734621979785511165308622346010215038561649803394364359","26877155857080460703799421602224105630603037252416119614998259833723900882424"],["444326633380046842034950822705874573353396865194708193534471885058701002871","6839205212829243136435141051562626797526955461304498328488464236801466251217"],["22842763459139150319832871429144163815170155518197299512233002298058531804555","11303935494394454190658889576142399022321066191610510267365505244212814135925"],["25597152140519077814572533185057334532622667683708073580492118545992291165985","5803946174530931199685719130724622788774891553760511840386632595006338641179"],["15419782860184136178105277893849149004109790929181713049487466566789489778198","6425535896187558974328360590686013286260036060376872843399861218887609953167"],["19777057045532141004500669245491639216689382013934033196914348221526828356573","20014720868909088149964444570388909596156301537989884619693724562387948183659"],["27429053074442125736226792342332739827156656090318417398813951187837415507130","7033087076146348732230121509428681392049455329491035108039592672753497471008"],["4758878337325421242402694419728827659977440939828988402077811267004843981126","14165310838086029724724928520498105177552770039054064434567118937085438314179"],["8471900012320818429515669212618214506605142010598153377004282061500126603802","1619770899604065366802965484709602570824270051878750141636120824869134941473"],["8454953901186419338045518250036919529506603525059806583522130583115275790710","14963691705788692209504559550741702152168076119987412665787529808963605724032"],["19554588193274712766245649925482857629356655679100141128102470278322943951238","20495760640069713156317485058338485071962563079975931588394642720655807904314"],["4630980053379777135911369282736033458467515483090502432215809606189773161843","28571872633318974411147595544993674279958757319878033986753708343056784053899"],["21614565311908930954363773074765429845694330292454188366944886859507620174625","7707012773883798969220204947072326162936874062982847705591154951733085292002"],["14375014687768583547159543922397287444448262598602034398111863300306978982743","12603934165992540840471181109743202185052291853941338695335466381229152453700"],["10974936428482203658580507347037634069307216351170655540007612250300691382893","21798107196282839833795391998286244010611979753763304926277865329066411921760"],["21595750845140112970543140063532646840611665988760592903235943642137327040179","2932111280111734548009110463182246921812009136262066190229080015717814977854"],["10834572691254412291256271329988809906700653056884371284323871784115670796513","3636296428070408392345937403000153317756973241948459411369882762336851799772"],["9971428297734597683588541865782234898494534185451773756250017008484355843023","26065610665784766924972755021093015884622918671684689570675293683641717401005"],["22282049835270069197159242020294799373486032698408993876235742315827242711266","17038302576125095802729342248261941715364001830816657826350377985776063119135"],["2295279460808816081516013099333486824233407361320316664570166275937246036778","25472388860418082230530482667933305812781404635037781108956724165709452857587"],["26854396356899012984274228416397714299900826519984419019580323823021541297174","21068292149370647194350656697138792861733242829684486317071740551843250310583"],["18631209955084211577617688046692072589142419744868998701968198610755893991440","27499512234342131071987795486147613606546908587999666096869311711776284086348"],["3411528827378072541362866548689452425936447970572840747776260799225289064057","21361352630726599875814632983107976619237200819902983398831747855042098836050"],["23851854362808787168257592003892998109884711447178245567425967577276773485803","2626158963804902118624916141724826162383019301744340629644455969831217108073"],["10547395061939321935316092254780182024242027904702110801796586545233982292593","23986946877140539869472927573656657344522934845957278796158343466242087657712"],["3265291067609486230677142312240428049955022217474828215582690662226430919509","13298575862935229791485835721206190095135282815010850788692745368834066588488"],["4930538056047235412606058339541080643692974862632389378314840652875283690890","13024665811410852609539376472421326870627510886098322336655680973577588973023"],["6829455888874135991587646956468834229998957479801213677718494512680112406431","8975113015428591936231772686021635711704828770967531328167936854022467291157"],["19689983263884511034540129256631923512076883158809452103639774436831021499730","19189911404668125804357052054825005207591385467335848443140429969114710554821"],["14119299405589603879684314156540489062033591782786108339577788870033970454533","6789081700497184028460010088808168417376955623258718260350466085446591688331"],["6034387735566003596023874419849415818752352814321505449281675720104274978816","24582995193563156488315829755992176509879809725477738019750330583384027176944"],["14378104227806729634356244796682616178951861076601050147208383024856748203031","23849496068163755413859376860479048633961850505711821389906088583373777462110"],["14704326510953413868776105747573313876894585372215063274110164501715131525552","9243003869346006097883131802112022370364377335807111491908252293840428354513"],["24417840633354344390877328333713562197473395023875826751397284301111470301822","26233388447062357323223066328546726149916254486504156545652408762190596722168"],["19160393852678638706629437114744320157206585127911382782990723990565463233722","5879878791324874224314558648653619511722295534210027179989164771532047004770"],["23853196140568594838605081256860041546297848166010827865066955303301614891464","15802012729127156651697466385107946154538874939554461723275799117599028845245"],["14447815344800269070385836288624650793674297457120017165160409069564467847056","14279598301437100067560481760643635179133468036067383499424499420511475940940"],["8666207593250665903316488173007034870737557434907442433472313079489439593930","3768836861015732815375795694276291836018041499293251856024578279259057463443"],["19381749826729366935607348097217353144102673148872838038768748459505841608231","8340096588120936790295908334392121442904314399711087142722944762598412040390"],["10587968493710296453352572526551910184637237388628531615541635654643017397865","18273506813698334295107921709077857585947468557008292061793392105690064524140"],["21532476989634915263631858284578949087100772071201215491997120872411345343354","10429258979719079864113314243185049346083223896042358424164532543034842043811"],["18995734150742030438041601219492779449825344885433927382633351191007076107241","28006844720949814757094382702801902867061048023251378717108969562250056600816"],["6383703319506107745360666182398809816950951449076845408231344168782841441465","6948191789542137198068125358916215452418652361604782091546267900152169078293"],["613695992883591558622327649814616848578997658288399540701000657783615812622","10276135578084213643601623015112175863732550724447259945464098348028944296598"],["22284907092610793426046767703272884967107036160121450740882121843911713293530","16525838861067790594671102771692469051232506697881572078593849543302602893074"],["6664179618293171484795083771101371479002741626605223015093451591758088192100","24643708535601680748051568742667804106357378169295513158783130174572597621790"],["15307898650156693150539665298945936454371171042598942500026931967604379917057","21070270568472735820389209306243065859129744848519179370479728891090308323348"],["18226414660406805757326239364483393933953555168114001209812007429932354289098","21988109321188333843191881134170158171440020934913561154040001213659546965776"],["3849287432810037347667609596036789067252380911618566785102823929724120205631","23636015837592265939038858756035640483750430568996117121298829480231969125275"],["15767400810124305694806548413665088707492249399265036003723434935850644816683","797071400935841954559989512069781907023253282037049869079912773818964254601"],["24030861056711818076159002783342116539250863577235796149786268716538170408377","27754258273012363773465816733342923434956327922556454043413681987734694494452"],["26944716058892528063312926315681472042906985064973509313542627371747010983854","6560157618942883961749029249827549737359593092438003396178578367220743233846"],["10309447397880489706280064778206330532153739276424283761554344221805695218952","17297972670140831442749079058440664017767060230954636189552636053149553482207"],["11953264896817322411619836236708991110252058804991776369208446064538307543518","25020300967257021091888473694103727456153458538841728817271560834900854695262"],["18261792752457795074665676551757060094233060291584155154887273893515228757793","672782234752809677347401436175543057187020703203997142062862755271204586371"],["26418081056967823335018180054491003908405300343474178423875932479219732996715","28598564914953891637132449588462115906705864812870293875419822956002579609986"],["28910528886626909550426235460284143643543696469686693186017317781771832757379","11191538105777312133848820051241456702025191971376089491765735610837055972117"],["28904913547763934464987713383543194853133814059561765322331813461186851977402","22843968094736531402283485260330763474735682285858189799459783968845062898478"],["23142932703029220334985253007022717783982401526539960958482133879651601062044","28574918483335154317914423347543795929648377854980164483303734036202780932772"],["7318399120606209379540527134744479624954808806827806516658841425788697342800","22836080181174171809138485186388254160552045373638057578618784855155215181235"],["18920640128077841768751738261047366672381452751316472565199465697389512930023","11264458221327678782373285590026421733178249601849030292486737632415456872372"],["4368754520887013482731547162974300216597951827418141352747810665879506401984","11617067913472265420515677001732021760850418229303774947377031092872799670485"],["20687474483496665319700745267464095952432566473855797519190237261377429274159","24578171159271639139170290316665774571515497245645390847890639647971567341942"],["24049699899216347945672542459348716580573384376851904404050026601633191272956","28895465271775838420027384165380528728634600505069252800804809816575011354332"],["16647676831122629435229236129859939423778986525891383960251656283897710845730","14340886493850203465653494781197542354595518487410609756235758641635063278888"],["14780229092194057347949767940037396161957455948023863888471695431910165837716","6964104511448980843126786351966453897761062350981227210656219466839053269763"],["17552564767258869719061151569342636482470118407013848896958029516538385418145","24123235773153545595855577441666011147789203825321344035718736580342025641621"],["20704493084522980944890203055687906991412477796162873062264283336121844113972","4838375804585616461842701539509692475709284202015843374120563066493902691859"],["28040946235019782126297150062643543897264722959078938586840252374299784918293","13493379414051381231305849113742499126604757578782167540045426581560654546451"],["4725065554458560365951976619623472723155101038657473024262779919598925412406","15334379664920337458609145429766817776476401916593765319317051822337961685890"],["4049638374490286766135978989177882236454603501705758514405681848260766769233","25143442518709940036790415492692915956179619689073233667044992468618902815381"],["7523730502032580755100867034397971281868966888454964551094597479624197562411","16989070810135632436673142561696376738020514155081627292998547718647611271381"],["15394101865538406576638313937599681525810565535899100991061845357705262838495","18911088530638650063719534034818933187110540858282452119062243767589075285383"],["1854943890475112733382502089153612740864545606210495573232981175147670643642","14483694785826531372558733090144828122906710486340210113174541169070584233529"],["14777019966873946463544823196828143866360294059797502899266538710509889228245","23857981428814780986640298987852490958088210504453862093474958767628508135686"],["25539733967560377007263174161014735565061142686692742388478870794333952360203","17276211893353174730894012926692233515143712535627774769026353294944110856204"],["4483139456055427104415581755080730947190365505026490130630923193364815291213","24655691136515261017424060208977263362275480351771135629441215122723091596766"],["7981265176857054995491430351662357913604343682347886091566308683773925895403","2354065807227231810205892571561733430439461427400251054088003587409111108037"],["13639656642134449254184230426744358309246620024318012714252676090700118315625","8366621492705652998155699197711715719581436579470434478879475635530867415525"],["18581891109429790663292446023654545233233468540171126719781142383325808992574","3589519251844010940998424059315945888404747372706894857617408538138031218055"],["24161400209231726694165550593479444772375210438886484545333034325679084214110","19711699431248502928078642269589510186929838421058083187186124589425713262371"],["2263469137152799730890172442963468286214426372272623873544061940902970566628","15804399438141107937072492197870644754348892552734107902802431938626775780687"],["13098958658883561675894256011175266344599956152057085285306844694693550735450","26482742237371160543481601712846227063885229094605327030244187032728180449113"],["24264878079749557453086810039962919288482335170047983052780206294106862934362","6880729381196494446316989577846839705109158631365597324473337012466191703583"],["11717433039107170006140654728492153394078490819465652708655571871726900917890","26359353989360934488213396230705465390333525243553423161032463588889157840406"],["1919902254997223716849323062430098938046329440160472212125275136205957849330","8714758891275196568735041183055741078798737853411988694398194620944741595323"],["14221585335444916053450749046182939234929779120769276272624529965012089373185","7954808215922752488106128669477478537634524527776173687049209281521503576469"],["15880331294478024233975508203779431841367631837550868246050442689560594083754","19743783259405581288368749898039404454897749791886824916344388700513743114110"],["18951291533241785871717864188509938534932389639784020983149829191438380805408","20581324937008337692415053550350562584892442459724643330361694223466136887732"],["22390978500710421449267405533316796576956331262079058905526779342016890113727","3376054654964189289534377284523408036704917968319310903822907183176439742443"],["17062893829561515482490069477314958994866785985178055746564242919100821569938","2511780474547912259448697391406148721653090899780596296077659177719449987756"],["9740559349030146303384338672144404576056921474301958918255247624148546666378","12743751546484068092366454315649305595872739761740188205220041073993401541739"],["16824922736522130758501346355326124706670593970621220110239470543565168795692","6008981338255032313616892241164479793982881134074128556823330912576748103273"],["12283371501441625363540085971973451513097438498223073548448019743760163867498","19969866109643422554792633143583007067375287001323315602462527736978258249988"],["25329286785040372585631553415433344024636677907568618551820194577474203025224","13654236030704884125144534895737315815302241554228895288753719161864351800783"],["1713934166983092285394341996190913262173516347567394409291593223527729681833","15935432729275789503792069777520304943931463640606277091341979375047466538861"],["14660565300933883369692843404591337840274255083074952279615129851948352491035","24519432365711246182851165458127682925069682512980161065673652187321228431943"],["149741591796166373270484219194588360968647601420541620089026289219208618312","8443750871101950975020155456317103082835186635565173483499608419480593717140"],["883535399280236898380322781876084531820212705278273294986465798824659845256","21452777661655700734837582633164300652921374657989404219420285183288810724979"],["9622687933472162774295634247623711856656248185365883317973752012479197074135","10935649499210939521484396936782807982055109997551599159058539852488850508907"],["11420324955515112750018134599335548238591819763356087253503801023466370024279","25517617584589959794703391494729557888718905986954476536030434355107387912539"],["6050641374178155188092533396703852719927069448630558628455384939493055854555","9387806697374014797534284471193875149788169095179714206694016488328497623499"],["15404362473470944723983725181891996237268002517042351800986070300211632783926","25249361661539980034941785063963596405885167419465939180648043354604555896471"],["26132011031629662688277621350681366864324311147874909474425078070251652943997","15735172363640578780053170146454777186742067280972547119162003790109701296435"],["27108966894491127410474264682941747044661939810950827058957743431134980878112","2851972215729685079784837161635454482151835216585798906690941375859749485102"],["10009810275658358332872738000791604300188693623189292901527132603885431465692","19721477780370189654703622452653223480299687007375349228256563968670520441666"],["27656712094818600614904387233850035069716985930375767539869219365043001450579","24239934095636251701877373751276076470238335996550683522502330384074390205268"],["19946253236059848473518700701821486885669967188120818347188502657092336299317","22672366613520002541557158359320590140672032431512892468207197105273059885553"],["26889740023106023753809529569146515677074553149159472755272773469145873647782","26080764705515479478968529927534643684038114054481304428796542195854901461566"],["27587216769255852991610745447552118562377252140573262178951682791700981587202","15033518085197818118095343569974195234809048723878952705970223678716077015656"],["7837659815986774086665741605637366869597576050487856595327629355458007605079","16053428024182339932068514550903471613012484272647968752261249239583677402965"],["12436579385926894731117183573562590276697493379717379682674429435180413055542","6399194749068274824229563140667755682414435228340831135648365372732225752983"],["19546965966029053588422201800166981727227265385975350969167333030361193607154","14577701051383005186249162329393085758800226388660416984932094200735080255103"],["6247549394256923517331399610218868617358537395522811107304996248426032660562","2892511868050326491105164665049898692889538372824252258082746828113411504758"],["24550659586936011288587385778330442308035494791709387526683222892138722043544","21357207999735132162948251287613578244537533891534673990897293645213639066914"],["12138466110683595024186134490711373180117220073502408790521444498150398844916","8004195311363444896674673450556870455779782203117347266425138560436371224776"],["10450220810650612152261201040132717399711912834563518271243022228087847555500","7662031185513849481142668135230286274676193485745213621411722177542180388209"],["23227029038205217104346605117346592848388664240735843512973105610140822188579","3443853685383365792329264354314999754474373806052446077271006251231544495146"],["4071803971138485457747569889337635433412331649206126879523355155253779278022","4007569850341145165159342464063866367334599652807550186213437922690637984160"],["377714723369438173252771205219046127145495884385780888729609012628799480040","14046460630190275236736497644572062214139881107458135087848057233827639451198"],["15406634101584007088987010317355371717939530338203416612620312566766089854222","19455827345559458708608769325847319863735561583974588919152853398487721088137"],["15277687751223080745609015456216191764958445400788502607620030682819856216342","17449610628392580296442856944571644617066170785665246152669362717650222826730"],["20017967130996530768581521326508889834658782212408511636116395317046290637165","19974292073154746339000670401171890000487322223424845549332668185478882570714"],["16429179075856159364564265936295585378877789196353175937686112882050835649543","16015087378055338755992561138701072121655659071059650296580726668648355962309"],["22609593468150281332688097375245877535292579311194640039186745240571108821686","14222476996499317619358535766399622351277225616582901974712633183637030324937"],["14785540444389687795716937231372149444745527392850716293264773670716207245331","2370494943575899694025977871006289884107894306629088347630836405710829210162"],["25559146281376297034488320510834931921841120010534598447699418188488781247257","14366391161064702734630152183544181057240782268258021697304387493984960286463"],["3451884553349948585481237687735590705418925195419004828630500656286739826963","9207743337228688981757346636785788437699565777844827516887890566949898432389"],["12053441220938662187456832829136484239118588669241212289811631312256993159793","21192298651756920889518325215470483030572121182593735960234181076657005589563"],["19532184052324497701821832304916352746055627445127849496984526507560154370182","1399218330948460656327291833625108599182234149090957806009102286952567268050"],["13421424093703182787732478575965168432982473431049934979179364228571811571485","2168011028673768760259454375207130187046014055775441275140254369844362586306"],["25685844704337001533228237444005301358008633256876066432160163639838114910622","25607182993797118690448542916629176813598257352999322871329351358185125913491"],["13666432458591301381323435059023460124364410520440307463292608784308494762380","6009354254441524188470519355081959162619056954384294366109300334127217813702"],["21477408025099793240821605111718175748309909503618865243891289416576375238932","15502959161227673700225160743001810128676617824097362944641444080509197997523"],["8080192949655642806824648950690662163779396990669867805732307482329272964300","8954355394404886355376988652015207779506446418172122714922583884405979067957"],["17372565880264660406603741023900778654900591614291875537579448935252360703060","12578780153747502789397236839263083557875096007512725688328588014993853681514"],["9045874888721295403816296301070636669475070328332982539165995663295976659536","10530758124880741878425023288302219970529625284048999375310163294678645546566"],["16633014670571002575050626908881822093225378385227325383141271929668388578349","24032367996221720893419423902608848879732950997760735330230836239110632056903"],["2220330609174584335188890095852942570960012526286742193105363305818513932062","21597856068859663833302032621831367863141446599526884702960260356773206024750"],["8132658645659537637431668511503251697382686740118136876742539030913720382724","11785872761886241529612884127060841435410794291131599257753465179902973505434"],["4245053624770620223156059715219584630312468051542772428863334580653439153569","7160211279784920778383749391472702684730160805576087779222609831572142411219"],["27052878263944532686372683518788952520432627240692796701414375003283336793093","4715708972454156782640493599436485730155553231435695357922439357184646345242"],["17476623902444567131631777464732968540953161083809805417185951488702931756698","18302657805524889331775306291122542426873891540020612744043217079739837108617"],["20845347119522444452613257681659979119671392273163054380505003669560706194","3802494630246292991717980783779483724433051326648606411089787232997469477657"],["11568989931777094536685474503125009641022993031973752670509025277668670133255","9179007351826150292812871138516550571025493990551680100711403865173820116610"],["18167557013052682639164732430985711151359299463055483744906744617402435593941","20178279696878141122968809352697795662145140262248550303728828056726299414045"],["2882956334861568068714668738035923310052348223146731394852316559316479448528","10078379641752379770822592945999028601250854439169426038467970872567121305849"],["23149610677582390548644695270664748710454203977913668697313813292211951499046","19719097763948373420978677256776047149416818318786288295646081656028962829369"],["6329986015060624884804146566548673975947307793329113073041411019431863114375","19544297954318763022774387873372921003251690458468116075673239118839664869719"],["25085571644183693137488702685686817970051340144522948873166631319275959587636","3096545371323163638978767194204827698172304207191406045333431366436718298035"],["8773147430723028857027034187062641129856320228123313812212925431511739817744","27549379944193055772770017750928506494893632812984000479667326347480329086061"],["3309916116376337971449644830860266313876506020210034652867624725713963460152","28405104389635329316311148771258620494269296345209726431003540403541259906546"],["18578481762239769433047987603959045400273987367843509797758689010014915276478","8039315065879634598932184657635734214471276101071082703455751035054433402196"],["26219968676244742941184898283832874049267436960766272517137858087670665980099","22818544345765529915035555186330885974614040831709195481807808191861225246958"],["17140931887854927222816710275583444789412626067869823010147048990559113040124","9775592037893326946392336352062266350790783705392226729711665152517360728157"],["14796114162390662694035478573405010614160489080493327526085612916365497676205","18948532251571168511764352159286090904571156754524028283104545182964224524778"],["19075252432295460213430702325556427139820968003785466975610667894758942935973","24281789411406130525692743135162147458945143155001783398650712745017670380249"],["1588600263335452310746632687868310760419216944077475852364240935917535142967","4778731467113583961090031287733030288178859888427220034999375378291384765546"],["20200976054873650382339596347764999333800549019898313520605804183749208740205","7296948932267945225036853641672103549418551001550912801684100322724958280175"],["27589005542094730000833823142568527160580274686450368164589202298121361404008","9678532691136666496354544569600905659529143492734291050182234764166215873063"],["14236674044149764030161068991685621879103756551900781818731548183553489074101","4177960695495289198537041280808095790142118296994363149466086574112946502320"],["28907048713127632859587369455911854967313656814111190699497769927352513907210","9516738634123949583491831731308865473204374117421508586394239626880963105799"],["1869811687664744477402063613814295959216625127388581294326515532321439711284","1149276334906453484601425704288742109303779507952574610883408407941612863591"],["26187556965235815639200023791610949220463390030114171274552311828588593058651","18810877100704129185818690947797926017125015251096646363190835975207179059239"],["19922559424080692670652281603877774865695976001331778279258668267992872041778","23725669364553750417286497603582444416828408675100938502176243744468692388821"],["14866384968844236125902605299467148066861037194822893374219904066067636566186","305412235225094034151588618365655270647424766474751737561387832136962979545"],["26006419800778866048327403735669618804763554068299448995911187291885055435645","9049872554342700160845992338590239864748400973023969220354173731387496907730"],["15601286248128868409971509581371161172417744876364976920243352450475286659569","18903052188627280630677781066359502663360881634733270097803116543366064625667"],["26902670321813324804783780030653081856171476732151840628973128740384946482002","28056194855639856747626565911159624059131251189989452592824770899173161661170"],["1528512518473298326645867604758658089363292962264557537860752739323601829474","2441866382296174376400374644129911541319799547868780365210803003567397987810"],["20228401496928999091018680967874783197745446276004444626320658385179153599060","3789377149298084345388020611996033896966839972647857574837980830122792667602"],["15867829456472245385657293324237719550256143092275232778892324599861920736492","23419091590021821945890733845782020462525965229935750426972253386723822473148"],["25315263734047549816474143679737887835190439564902963231346943346649884048814","23835832527268704382496937786501665820404154862774048686830031388146597665774"],["12060065184760202925548302566638939220573238746267677133463259684437427732399","20530095480218196113382734443922663107424342914662146765389343251712208580736"],["17410958922168626938252991367086015182203062232956680622252231006855637239611","11760915245837355371685839325598534935130483876897120584625938210530614274550"],["5361940370723179268674099974699851028016702359649399265178996734086263690488","27198100100513752172991751350822503053525358727992589960706706129780796540523"],["20752678757590390539901765051403785313747121193700198431067927929861465836895","26803860555703331467609531714288672000450272415418627492359807423403406921608"],["26376920139420357072311563771667251568619501294489465126116945505050610647570","5243540768992634088103142603266237606187474831843544911632537791270260262338"],["16317036696088627562968140214672154268677955558888531239186349864561916773872","19709389117636579839012233865228690584598529413551339966254585978317313218162"],["9106831227272349735182783212455229221719722997706235143719172737697006865361","13831298502516916565738949827860796676671104314408884491545231907636613398255"],["22427423690697180890030981806784918961085357125936022844445632190612149329839","10090868737488267189840069430967859319771913059273815570900795869346910903073"],["138112751535982630438988835038743504066027382213529533323492440510166154046","1061287869344809687636582158942341828279041594251385613998268611420254258633"],["23998290861734686722066966864036155265256382318635097264283528182745204685119","7729194455392231886775109152274865925744567036279191541323724591822125193594"],["24737956419891602218311506265452955215789145932070753537098324190031787044513","4143986130603647468281727987477115178498864583821462149395595063328071441519"],["2347719129113075648241535369881051269363077636350823201583778847763695002440","5517780274637482127794377342132929723126609528577925141611893698291700542866"],["20042873884601095361258590719754028529528280550348521230420875055248036653048","9644734728031203475487274605173898567160389625489172205691902064285312650133"],["6549473218317745364214489611708010910210753220836093534767984723932402326208","23468326509142817624018809032622279064659440464245612577895498486353642553309"],["161313704735269371281134771615749074293911846953013138551859627815879494919","26990094461955020140939595993170172116850898964862671617477808249537017803527"],["17559439013698832163840007756917880311560397598213701393714682034872263077029","27766193891142185696294012237824900007257299148516595098407420553186580241063"],["25640283845454257374670596689472850706968591077535403860914374547268296615037","27011509929536427093754955274021294310610511555099255689032431085333903158448"],["28072830259820197056796986847916301232190425253371833550015810832667181876748","20304595841826695494732702448916148801227987454875307324006259679246827509025"],["23028297576198229679501403189970052318978567305184209784716252562957281028147","4888328776022677460185604086052301343962336367743643210643181826963734162666"],["3106174129456222598009334231399595690279112968720407269771028050503993090364","26504404957767559699785307707619132003984396653048963705252771901803217358702"],["11633687230025494741722762513083472488909389034782468524423609031070602445754","19971979535036792669277259760606229300319077004921508894480677236473803014464"],["13226453918325848726833169340975852065121634212363326880467340786610219914089","1283920677764591588352749869768100836036492575051516653202234343341353846464"],["27977354106844983240594129623161101795554422181218632446307456690307721612098","26015186176016150736192437735185550956613362683691555929471252165164877878328"],["14417919369974607626469613502188714551783420747362238010728298616295722177707","1357591993511522892298453474092047328095408273623839277336465730749152757199"],["15481952606355544677892805801524733629085534229282545778352500094338938852457","14968587969006175680432068129857179060198527475207862457042540619629922394741"],["19359067843496231288027402894945831654347597505121074690263437391510372514932","11394592749845586793765010956923605603238168169472753821294795891237259429533"],["20396698337073871618851085983421864134717449570931702600009697258878189311192","3337198849765693726422748906584282178926525506157627329818526536511751961862"],["5007302964187996384632587117057513113033528449310252388394154758313072931767","24639681470584164498063360777834521089206143618310528480436233428146117616690"],["24059916048109393977450155511373015421747277431171857349804703600202633685428","24758903755072465619020280692170130416101288420404333929356385196081581522009"],["8415980479875498513269270804497000713585311007527971264537291885018871183958","7830601428512040100235761246985844573290414625542765933179751987444432338183"],["12709809823434864936342221393585770998571015849090840996951103438912769306359","23986210571259088512806964910552164872529873990448125084033318067918165049577"],["10309554406439890361602672701392234163513375657780283404750579669147521203583","12774331966867991293302347775428703494106446203340193807322075662224401897478"],["25673068635655820648998256717220525959260640919268081159636408396111442760687","11786217372960587991201548090594777543074413945332561796550480396668797094577"],["28368798448316310995904336944688971679490262218614877550096964680456196681890","27716135255293156678678758478305103786857121654178505099871188857472839020383"],["28921813553909138810581325027985522637901104069207146996619041174868976223304","19800700296946488274081256224953513673449707061357264677741846859218028906442"],["4307229507832004702460140316497079487422611538769009040073676520921632545630","28203638821328046500903278811031137196524100128432990543454471896831697958361"],["17092131879077811907455261945815517687786536994075765477061495344737265846719","14643307472564842604164087565485650788615840978405374677145426570613198927117"],["13607504677993426157746658840044038138687445822333628114818119510767141986337","12687671782562326261896536069955075744049414613641364988762686517580689360069"],["8917364636709960802828167123433632016292361264420599605263842984961488001838","7163678147582977623963496228018520472597325094648079440395610724353277803233"],["5251936683714237426986678615820965734097015361123512080537853418342740273476","19755144463676591440108396776522493585761294058931849951682295694160996565138"],["364264880652298060443614266158224299828497308256367432162021518144689284750","20134566691059784572564073347553181472008363564055781245706964844890634860924"],["10316463954882033662390295396145368940359435548657936602579891435060037921815","22187256185132289753279917176765730363546954577109117757672625296248338361925"],["15373861494469345783523292958282144353439560712852123723437328113646594234039","27861150874908624361203377695019272016850243417024029450645336755804711117621"],["8934486384228219963310188751417310122752875843337088227678775045576717015557","13856953025443825851555814756397858861340866744243381423707708274204229671499"],["18707280706271786130034971353434047612206618890538354799719229906881223965083","2092845693464288017698537469084566829139949130130408279421892121052622788874"],["18850835412544714868379572627749268337792227285511495680166184317860387580257","17725106189017110274475988540278505151503240983152628722007082702148088409091"],["26173501614949496175922597638663885117786900408580731387100084442317040859359","14607823067297834797280056193361195849143018575910692314300909271358105428474"],["14614994562900068112846401448389240305987469908227543969293426818990871048554","442437737137386097322019242961340216814850161194478411613105705995536703956"],["9048087150166541189801248757040987217097764152642896732865741577895158614323","7650296235708076385346365686457034206572338825281768016301379139135422644157"],["15273335189869573750451452710591463699364614900798563127455725635731807470897","3134396762712765885134804791881942954180480589912758158973013058257922694101"],["140885286751416473067403679366816348723062054771327031194415724209460519304","22224547505655582917606534549718078284321953795252987035142271670493889052485"],["14035921837211949715917982205907567473937416046805849559611936976581301632556","10095167323739852245719012314016858425262558225133716622345367914739084187063"],["2453544283795398554467849593554729529138818143844186456938951284164281585049","19745467049726619335376334765428033888382019344379706068360649136554930623215"],["12491571752420447639390581197543175347714319294135615430593643266075984670289","12741727850384957532761707139107741406750836440295945406007259683074929583037"],["25418456534214692323393585005037978192225900378773741721401853319887232156985","3351544152206830983932092763212825510608860407151716073659613097353352294790"],["13685532016688159541125344331531341872299431475491918607358147284639919739310","11328640205904618550790649972529038845278676776460036261259093198609666394518"],["20168051414863694455589524701153577562595137826522032876068122917545552515743","10686755106706632090769217040464884401518775034957920815642438689795425097707"],["462087762901504042600349551275670437769132150137868181299628256285859130727","27119562386365324858883972152706478721040454150011462004028217854636927109874"],["27341713491846341279426477499076160208297024788461859492342486308892434272171","17491656243404049259928094815491002759107302915528716058019266090310471892939"],["17602848391474152746176418726555759366009020484868944439416264810397641687962","3044305785497236440617697996178219363713716736938092649438407855652535817913"],["25370816584712607993112425127136558300397630046735664318396452799471177223420","10260539860289755630690021692536351469589269952007960017441220111485494282953"],["13776751027893470663959133140407098000201584931764119785407884755917488677920","12095531603958211645687503352709815357353625590562860663439283697495548140293"],["13696810172116198158775634099740882137310720539532273645741026616533692167744","5350740854187174015444909013557322782422800066790796500918294379680530984089"],["14312256428883969104726323787457922441619447896317056921467071301017820083227","27698835924211000358337621516464488659915161774889634850442968752081493571035"],["12650802873248092484687554280602123712384636392577911584621349695570787577825","9601246046846917339481174364504600552664950701498816397902636498969299634047"],["466073511590824814763753059697203545466458004027374272101796874711367011842","13413753486464208323168556686461118030386136307300020180190611485111604243815"],["8535126204242768370281588566032672708134688648027873535311833149691480445916","8392684321310356398912576539458754492959804061333042385024397078917604517427"],["28747824904381494487299308116122035998634649257258703053207401524521872214126","11046038795792817011201265935983086013655628689740308069004768414131846033796"],["1620601704410437733037188214407943709908305898837512144954428106224656710592","28604813601328103329837993114566690363539392656864637370188638290847323768859"],["12886409206494016780103336575450252412218698259273381069372306320082798166181","28633426006609904102108917891725919809058447240873866129868527886544273642188"],["7610505073603344562792875974602165269771965762721647862000662325514939679037","22071859229832393211575885893681350918206299826007650190083455453626268755119"],["19266190968844716757299128069077840988712650765603879047754009491551234847351","9488223073114501623729886544963958367766270321915049857324053114753773958273"],["27216059456634688237866657926776372993275217987681161809732243698289561339261","16304930892464285404923086869128941675133664186427828669323386019782166880117"],["14729318837415554133974600192034903651869244192000044400514333468686294137303","14960239695590921873711702031155711906832862786637455334781522844325964986658"],["11259914275216499192735532994761966206530919662767638541322227475681254867008","9993018929438498616977289700249529037996590298012738879537125656969883000553"],["24792163667753448507255002057022893182591180141240539822664403918155187479642","780229946369966688713004245754608343046286652539209783095772803147603649433"],["19619994041975291147946218213011630373726901571649732364524794003093753381386","20291485283903056738375714474893313576802808510665361810838994712164982588593"],["17370288458127723183648241135063078208344597084215408693876474880054807048908","20990090743485378246889980990053697504471006937929076013460214592699359976224"],["11375166612411630761494073367861765953923998298250963794082660936332585134686","24462392652423809256259535663054321982203426920743250238687133271454780154870"],["17974093669752368320179281818723501718175013482277232801196761144491405154377","11793392006809140701394862960025135659999289585411177362270441990642195109513"],["2945057982889182387252694474902057868786789670075907578417414592476544291316","3992437940855928888777321258469551745999809012105855082449145723584750755141"],["22740571158398629330546813088166500613633855528632829184590213587281528430432","13274743216784707628456017709173797857104591634513600523464691918987002344521"],["3547431584314412739027922635055454650549053090818154459006127306469290199687","6461790722728136417718612589665746550761828822130205182673203541909527824774"],["6630251905181229775156913029447474194941050832238733540188372401832984944414","6428495751002667049401146193871136586616891116376887750665389439091422570291"],["17108604486269145171292563469819952876539984826074418908372745584182821310813","11745729612371491621017481598798179283167546126124290354436984832836268976400"],["7807991318871034225197979002359391279152700086502320795150229925202993464339","10266325115084629415886414051882809958393166956362721651178395975155248508735"],["25179468986164895274942649620929334006634330096077778105519925962555832012390","18873867081435865977993682038065360427771969149538851508835794157624436264185"],["9031531895850764101212588919072396385967327029698730805563908372664610778469","19189380825166028067073620050105761895525364136660734824167163836603444039663"],["424917167041566168516081038012097480976077015100040557743568916655468632035","24683443422555512205656340587670267673979243366169115178200740534923658465846"],["5066975047185204719429221606609964622572946327873820500623088450532024819386","19999570010796558066774982205949777895183426177106738685019103226837040305577"],["23354279845734825676773282129212634148037759423612838180275352662422089361472","19391044013560403311602244857321790048160859346628035396809759737944329043625"],["785664118389176220538971208355385247336977381045997867329178198333060548532","1285524854668887343818335948958971222032149226568681742152721179808875062041"],["8931747527062981460467210732982943103801971560838385976553714028244414934","12550686889256941659589379524186898080867850152328913565844290221918700682450"],["8148660939942993480345580456285865344561628821724605151170048269429080768437","23893372648619194974720741116841705941813846421529883212230986272377087746221"],["16806710457553237584751542186183661374884155498917714823513365080755299898798","26232326896743196724976448176515432729035340538223395953475474011018105689140"],["13666929032654259382251445561384889184215731387917798795232017335963231772972","26795066611044718502880578861928056403265905956561330508364771754217195506233"],["1396668698158965893302506409550336202484678267971537089968794710315059837239","21586764060548976396190369065804929468536094266670527748548961001752720862566"],["4478072345989833974865859227878491465841919407509517119338371408881113433286","10856993391760906188653645055981154158927541694755279826267482789773164351081"],["7402316343076169642120594312950665393096252895691058553180191262080112034801","21245439693879561039391429500298727502252595810771416174204726258192885532278"],["19462359004222064229999294144571137601731739039023218587796717469072564308159","3887987884143852704330621625348875084539583872699525553045158972786817502309"],["13988118441314161501296685228213248384924097639568593015553001403318387884158","2726224217351623507076652775223369537950063183077453069700228024455763637692"],["2640677871557029934945471298116520352230069503974007502713124608497106181241","3439925766757757214332934938583800944315437403295861554686048499794998014556"],["24024899761271346221815743286450521707808791633322807470413821597069623271696","17480354173219833917349105562576758496153557811131480303997234141161228241665"],["26639798222455832763278855018799756409360377624376182160437541962526838833278","21038335028782657899275587031987010293096912155761407109127137666040228173412"],["27084319798554887459391338439003014943055320963975199274110838156552954931800","26253163227074064104119485357199358306705613458391295355949743570689957611364"],["8720943775606095858928504690969508957592937901825012445003483577222135050443","23802943007286257382408022901801916845891524244601228786368853834942076751270"],["17253186286881844619133334660077839694298007527214411042887124744487824108447","24333775779959328949582102858980644216674963554946906735995649495523479393175"],["25420761692626907782228345804496609850514576244919962561035101423890970783874","23511612065945714587182654992668891147668645376101688327008411571403096561014"],["15086917208469882420637300861606165047783361276600775664670686733583284357256","23840261530503619480853929260263177517287023533326064919679051492375239598542"],["9658256476221521618182480550113627380077930340226990250198235434186510501043","20311586173309880450751110726805877838847820428734927095663953421882223102958"],["5637890139735281325004057311312102921797287384986345578607514322641144515917","10374969466105590409400827437007252973410843412178070899627386735568313666407"],["13036083676949552418734074842687842082880137460061740536534807680341078310773","27130684080287564133857285628005038360723069277494213643714152005125397191914"],["8669914849804181431106691775094257243189531980774286082603710155323212456804","14320117048123547491762583131911430784772391396950666150752205803227399651506"],["10208171471829507069559259557319014883323497366106495385167066080794581064225","9544535462285770593229480871744804640676309790922129134833906520238178891178"],["6513374336777619105419600476010889769025925650786181156967527338997420996145","3265339562048643987783520016192597515589352878077803665041268878334364280755"],["829192227314671112612263914850549279500574449005639387357537757971706870764","7659194853012227626792687654561526370506669792943252488526512892149867845666"],["14282526377034813944032416068049822002203610569214993612874747443410443821938","18227377706740328370509243894738328967118782906874341626162157573843267439324"],["17869992949141452831412391107582636413941515316560298225185017511648778250123","19587751529741100921256164025384361436626200379129535797962860956644697314371"],["26267040996545215171017759163942892420656494276578028832846703369302738768738","2803714717855044800380952116294174580588151894141904582214291771708576878839"],["9398753966682681141667310910711674757933547993265300852736901258315453234194","23556652152450762342586445778367124763159937767391649438743832296100640514901"],["11506716727760914222023932625790682186205701033910280598701810763423230979881","11058550754929837508318044817648981969513782233870203542692470394421688273530"],["11671590208820982805761292756822710525142437443327463037933777401683386391911","677797984982939454645234285853964077768048558146847678377525223508830977043"],["1202952128877040137840400616059067337182053041888153628075731442714262356972","4961803093359274144917303446485948394163677571361455188837923685674392236207"],["18507778637742742180501140842323392127766805214151482768261832782983208449231","13358998438755721664255678072488495208666487648102734547995476346932436647914"],["17822637006834421843046290633599851992218017843600779465315392225038223705725","13028908080618246707799918276977198957539143239932135753564287823208239501363"],["17326502361086788305915598432356622689761503568312802026605570588785979034334","22033494867142431257282228370107027746379669086658704348445288161355157893539"],["23193384861869754507974072789730527617336192407850388098132388534895482818967","26476187842055949606411142274494721432190796929403742747115235843092372239869"],["4193319925066068282410575888351844908610240697030643613650925767942550562889","16825240988217410323262346008607123750544843411286888119190400067513846394595"],["12032181454278034726964693290157920659060577064178070376434572103656737129136","26990213842115023068635501709306338904549259734755669844246691618741736446311"],["2521058847858337851825034351306659633627842200850973656181924661775148120432","5292883468665270885053643948790519248887138733471380467535181625154103257764"],["6368541945695029592795978287830615077561419456735434682145180508411585942352","14388249709585996082797560321421492680109779228313557609888456517681082395555"],["4875048999421052096612227871134694012773005425042853530234743093244182686836","21504267223293073691905154347585386473226797505236453166621864119411413868006"],["18469046143589171095333810501693423553443838319210513942357264167142778206036","14706969588244667947290506806375913832627051046808787201167343913981514399340"],["8283562299090913861284685333717863024441580625060320538497747877084326007282","27670479241205387928458867514405697863553675961557896478258133779755166777480"],["3829863909689370431379133819328517691427923203959869142334357235148322713671","9311143793356791131963560806402435092075818916328924229775294763854334229833"],["3350016275168620223307425618983509552861596371430639016295303641659244895950","14034888209432381077486065338122818804602701366687286466605163576608599082149"],["8990136540080124901664754794072856046174812769393842056347342312805951890564","9476388206946204677355999033380143214921316679541916189505584073142066782950"],["15344378184860817974899408806607324621164820019075670573989473320372406881181","1840147692775297762888765721155746059310421445384940782690810703344223370835"],["28244346740258172037447585028190275785961729742534282527264273059808438580248","4660331199507801466985607756919500201216261270743268400192144450798156505071"],["13434047539924653336893617263102244178128267219672788184838251890821364771358","1387249026445540062081949845827314572362830599086651010703339610776152806657"],["2305893418651285685561686445136129705584638135964486244653748383932199329857","22460682247573536654157942407203570524346208015084534186053186764073077024800"],["22739033040870818707092863917705030602403626455291809327180537735080193767347","1883178318428996567412429186408193706116771988639191462166419845831159317933"],["26780356886994050742499611381940022615656617995052930318116422734901740206786","3963483382327120479088322827057629441821198501270229890018700278748198261487"],["24225332042038354090901505231413516756484542449903944270931519981335092591477","11774311012555592684888593952388829438785269980116271869430426459531959568037"],["28302857319959350562955294518788235065383839839648346128945707410304378619775","23900217985369611716582815126476030527199313670026994679309281726165519638906"],["4809962646978362490704545021133111773923605140121268075234132186337453060767","15526386017782094089632420267081178486701783873538741090819653759912105779155"],["4298909720935944596226766372686145251343595083404659323724819587690804936783","139780226629921267471541790562395703785279199781496575369144991178662810060"],["22096309483693649919298726246274297218343998379350381962601656051294156462738","24798220672396888343247907383893751098621264850026649184840563048679580566738"],["27950563274091489364147558799179110534618147509732535217485077795485992654789","26762516673089397274513063594513902434511172855807931005110279878826684461489"],["12050403492196608936231213854741133980072588796560126798674050248401345923644","9692020389295805476315561379390942344224865211786503252272478315062371475936"],["16382289129159374793667905091745554562852381963162236899772545083322855323713","25136419600868878399911996851823123334325310246786096099188472633533005567472"],["21865207459041160771375457498851944870404648253899293447058564895356603170399","23235530415934812051389112693416405365416186062708450372237652248668619226285"],["18912922845522388742350027548392915620419799294979422191117063856341236310726","4547563397802593739407118933456179980277877827516227467292727191841806016440"],["4611217895084498203190087995980503603298746731080548826113929783035612503599","22797066117688041104143370615254395449527716008242183836751238332494134995849"],["8516138998000830875028992496089824858752575144409620688272498975355184138228","8259976141617086395460084578189738983754809419807710829704897517437703452518"],["8953354924311675851379361929117672684266355175022148865730808472782547729823","9086042033111665892791818366916870606237340293611454703842203566018101644430"],["5474957952515508618189909427787618243812964553354698760634033716335084486968","28587361195347663591846318875238092239109346017157959405257343154848146904846"],["121840555845160520125292064970321842961678823483765624535997062219589857754","21797546699582976297364758874675409874757262558968092218744428286795920367109"],["12370476359995152293322558903567980569006419621561730147451533826344943372675","510022666271517562248003983442559056900119309959109776367093228830725952472"],["19774781564851227205568387942219822103051572084256054009845221742071582358849","24609703152328927651012088202995600424539316764610496129013510126790133906864"],["12157871420365974470836466320049410210994392910120258586637356710220601461424","24876617074772464503246315817405477318069168257218435488930596080035651959771"],["12110037656398566839271209684559927803452948898904065476985991941779170138936","26424492619650872499560808165769441162231412821814649243416506835842998541489"],["8192708110911281011011073074472964045634998306421296108140181259306629016783","23749848378417782936748248070120971740038640071652680750441528535267149792074"],["12438547445883942871249677746470525887650560113414204482763456256182757645411","26452640082722415361382622387368032307963710030319803760180138085684514203670"],["16603009292308379725953376758074971117106984827801525579385115906195219202000","18717756090331333742681679523690517528243180768521426346868068227840580385400"],["22806106310663246706860633239456635401014171732430373438281027920530536594323","10952320903627464433841588863111632919901539952063060831223959962982696062895"],["6445114921709610797176286798838138009506173962811271188188254985220156591288","17758097957215137324230798774210853867462733596531820393639556678149256771817"],["6115034625375287913696023025853954780155821150339850445813527522280043307956","26837690911046991777651497830847562250895073880989201933717383160513376500985"],["4135308920818218614510046190731129537609745348016868645642167377436247003803","14370525208813532125025971579395319753776607745288253471394194311042130587361"],["8481059183902214283924257828976683487086475414713608937983335823873536126035","6243459700102386353076556140823318620884407527070788303635583370362797621051"],["5055451403704256442433010617164652291223581606906027314219008868445410714993","15002283528264932209865318345539190836224526867663147530571966687600906067865"],["26899737549572601744877326154494751095035445853833586680427117713088390804678","25920750722194814756949699750971665192947024800333669127377842383928274039223"],["18699846196706845165462683554652007411265291015699794599202880240768602559376","22648053703363053239345788399197930166693615248031868129068727091556190699216"],["28581918982547378452316824776461196942549189258328631635330349795534681478415","1144945563276999567970473634292186401508474567803559457682218277671479380449"],["3220176776482977530063331023789425102809531712109052116934974632798714498572","5683303982342025854142624667976450785990673497582720354035100506171174691504"],["5387263208287741330470119508457540822828462504141183503589587853301876981976","26201114360049652968897924376095712834395579658233428467292215005514963413820"],["1585149605225996233177352210552161660248661749831756984070349429138163187776","1056448528820642217363470471403607151952901900230263148190406977416628034555"],["15393714308618149823158433958472036620747381463231224015313169346963480480256","23833644763230524353869085793294075727181235733964822574693273477375040870890"],["26882945827069755742405642205320339078436340622141071135048797451464810865534","1755381834425819279989240363375635974755343041805507016587859755092876509285"],["26781286135281155588444844063611127906992876574998800590398228481429454534205","17991344901309087945721016008782230005222514745435620206800314979076473587881"],["23421210215704887303716209229821152927159298429657810644812297183184427993790","27727130792230017580156257984662673276792095118011215045403418530485490921861"],["26050198713613781962218823090883159973474109821490103026986042070562620903973","5756019910258163703061632870633141590547093853639022193534529410869885040324"],["758000454920391823424983312290925316582075031159471832278576090557444347827","5852184468125670415966392407007214319145055661413717313939307015196559185566"],["24131649542575799770968522826608869764536148710333351158691637478168890509232","10847459969981183313956233987784079398857089337880459558454173071862149237522"],["15297953953570671670024850517426233673053710485940434441913462247200257710383","18757451914579587640026043783434829194040226157270412769755728075917800569574"],["21320113702420992118190092005267625517492364667714460922812787263458445012563","8766186227311804184156520993500744139988093035689512841952573899946477422097"],["3632425539145604519338404869218629424919486184464028677799575923580375826668","14709955186887987052550689279878756432449836382028009799745796756056484468682"],["11507606998395979360117399943411220724583034331287914638608803782628161088331","27202091944172123853680097095203818909314691431163764777670252651481701622837"],["5360253549805633641531598510397185370541382624974799461996051442828676259612","26968233302061057179113079471863521673990055182911537406753293111273834096164"],["16088770949267751746635701067489085603753635956770539450802429521496604488707","16706632416630937152924867998631984419796189061599418470956642728876783909414"],["27377429060921193360557092269590371751783641285314937557836261802921807640857","7409476040668258702595808332318296652702238530266420475097238801716306868549"],["18269593503959540012519949015590774482072958381671257256103729788054887858398","298449201672459980275893544021148670607966753809273816566380874657591100919"],["19310044774887396961578522449554627869125408794939598299503853749236076410594","12099355744522394249276664791302186664164210916352608200032349803383961115915"],["40436381671228374864405153084633995144862890388729407713092252153906781991","2256063183875997648337072151829399634183239169055880674713872790308382169334"],["14846842039223876020233835645698903861169096698539051696530659894928293342708","6879035683524798625006875583235621862369802810164148697304356208716238239466"],["27689465598046051853177734896031365440927192291321231348221106166351967181263","19502138946226356672755609555593577083344977781432545525195803281341720166380"],["28622537288353653889632594458147148378707968508480610825068365339681708951557","28729028138276260236682483320514318537716794290845914644518039499081141047568"],["16249604647036527621697178779008366931631783309579867894814613111140525871113","13224368620796943200690429072028477941357104832517005350830415544799143428012"],["2715902405539465030149574347441079741056247262485373802183073718335398253011","13647218657320645408994447894537475238098150897530247569293794881313686122393"],["3256548163433894378244471030909194985093786960080196812481766691372849002636","1840431973735687775142587010187662371262877855984584757803279868534233083062"],["3268650428985441095278310888146876297399354456012515053623671109299295866543","18585488421766924229427271561460949662135522562681361623426790356302546653573"],["10217306801166888774441424592625151997958211925662427623666977254548591352458","1801154438223466085348098620350998713394216661298860405832125962744893460768"],["22065567665234485179936581747936318682039806574524117682950345844088336582291","25276642782583760908792513814089543982758619902047426127709798394635798828771"],["10663083788773003668431811209975432426984252690671142921178626603154031196408","26198850154482114069081543185274198120295550485027775140502117849188094345650"],["19699274531283570105772895224306749387944810498117463082692585427840258328471","8126052702928473540195618404126840701508300387264349103557026856425365967788"],["10881270704805375048458157404475269901073048061563018763591865057876681420649","4951331829646826260704339077201816096307044212397387833261768699906595863670"],["6940800384882918690505060210728067102520193694362112726159191824644741010191","7711556391784878229085198046748868544727231578459997531765195064188277529035"],["16052932859205598754602458217854083244568986820205519623388328696585889138517","11061200127372930565124143037608697130985355117350589270035895814727162295188"],["19807931105379010992495877984368426692624212373243653928035197039781991614157","8116923405810063875783106294109363085346715634899393658053346921950970488296"],["1863142113374527301083115580105000072936250441484415684285900979230643107297","22275630890965241607882112098224493807284695441035723284235435731005032936380"],["21824245231051200852923763570702691931986026388721180256420237099564622073288","15923879588713456265580958673234399369731016023759344902299262216006060405621"],["9346960606511788857113100371496759943678094309574417638276629920666054795151","7940330538808469122262629904874536043015353033063641601701533775728040008672"],["15662604568221858587712034742276951306018224126831521192806459134078750231301","22406318631338969752248484537314865728469591744398277433419661960700579036770"],["23501539110659659281795298653155790965841927884675809674781850300077425494034","2307478136754864199309724004344070583280074055527941308051889562844801043298"],["152273840707107446721490006356696873255849536051973253565880066866353676765","9598384695644746455202902267603803103271252037380575762124784774757207829731"],["6359911405869211645472783038378186943199124528902663821150381281813938278114","4794907210618964108560888146371071433356741732186488861569725859453540719934"],["17444049035264160410663193575312483463214640352078669396736447791863486188507","13908802942808182123828950046348281244146646382213839348739222594390349447949"],["28833133805318577988344024991422852805396962688004565423113333780805018069228","10998176203219298584494928456230123234151703255309634561009268312431360994888"],["4261365403662428330538867921661057817593092844581519056300737499683422563418","16385528392780124740352105263069472932455857997261403196621150955024702076708"],["14486557381697906486828638948892658474961920256136195537087836396486814787238","20869540164113624346520065757907975852952452432544843064735155873792328975374"],["7002647236847868071242465146262523744754794578115483567355110776034048315295","12996099782415562576452968063503485887932298684442405799829103167064085760241"],["10239252987300522853881710783721419013154503948815385628258966224700255079042","32194480565576044145472129253678760060134596072594733244241422730671289447"],["24634717150179855803137757111978014002386530219675317197461683340855522885783","3852354724730917921514216366687524073605192071163576736055978626249307392768"],["23923450485377309857164987515240575875636245076854453374165114828384258869340","16214044822827518990113140604423537056186385277416475811879602769444735630396"],["26091565207041226909643079545694749694813544738874764637533617408201444180407","23549223374573444541264637878492985678228323652880059194958848417360891203115"],["14182120570535315329757592756723873363045595179767570457080933909840435474070","10660532733217005192505000221937242570529397215139272968468530190576701942629"],["25906210622368424713628543300292901407361177858546629294786497148303522354234","6169994221217582214748867324184599964685031361114342531901202990247034740678"],["17320413734027673950872501705669401326623860974845888457304435041584551187231","9059367029595548235506568501525314348756720675961815040915729091283879667074"],["20539448623735258982329968347742059221949281661795917556610193705837755864481","5204553263654175444413321963499367095967875374815494271478338453505815519940"],["23613378836029961872613159062493039661802698856195172782225961825388422462235","8929995852187542351690249346376461989272188080632187290509666353557674005451"],["2677644945492829255068116588166271045083133786333872291369382697076087601208","13397767716910467695100764658168138969571251061268192193298333129224540565881"],["9778638549901634612837767299061148709934829930776460064436460323217789208353","24576961655550351793441653173674306948490107401552561226878918171004004306661"],["11722517065355529577103971489284492310949842862466512903288066105977962975638","15541772115339864163297696732014184385359648982043547931186601050223440774813"],["19177870476009078886983101881681759294268598424353578173438403875758950884917","18716100355882063775406403018853851020126418539859684196805447756003713354724"],["3925471159942111867139881189475647938858260550703965763335204540471974199579","14710259715768117818612736178587706800967119132073851451894790301189251761145"],["9187618075138490452742764066575985687745808980371981389301859187375595823178","17967749103802709450585275758600265940130598177150502870468376862563380761373"],["13574777137681697984115491640196948234105455240425235093596035010223693215059","20356980909737141770042389374839115548935528294823431455994947747952278037901"],["12473805854824890103062126065532852440650782838371484963283759763643214944507","26191388075472873286383949129635215806289195740384882689275609516331962354637"],["16750868725061253718152102178537227311935874142175916034065149441659516451740","2726079702066371090490336374766220913076963996496149829850247967701697526410"],["13425889765270877483241320437580920767047056684339935901325772294509396272544","17156076700870757293085677534973129101129954506999421198831452142259526937370"],["22742783502761328726135789557356945576800478412529038719729319212572033794502","23101427014185376185265308517972837598664821943472729733937714045232313471902"],["26384981190075957196103551138152700863938426265364785294567157218298455171463","23022482489030152910861802295442389511135639832942320773970604421308194352894"],["17902637727035464717093424532205519399294981591434751641512167567718512981291","12547887296252698062396563245355027614843144056216039630933676941212377092617"],["17656521936954924918621052514901387850371320128657671056523553253891684071408","11328480740483571356624759537286722706439005119307311811694952089848105143592"],["26500925290587541687338012660919134812465635904748062979631612706996695221986","5056460396683181465496237575762590951937396348467751498930151192410069133485"],["28943617689052283398261931640341031499884162954747747267507250887710936766952","20720570456716268053897529248574017611392567430881267955356859047513660523451"],["2058194959121107334074065699478957799647843114680212603298510108570253708529","6901746946928574223403861221920687377115075542103785160616452137359974870160"],["8011912496894167744445132721125169091434125418085977651434896199590808831055","17040844126437134442833473164915683605756845210348577576408634664386788279906"],["7930502994470502755946594445598416633198588924835871398101046842420952382458","18755107621882178479736768636781812758779478540579049237446550813269157688964"],["14634576592869833769240351534412966284592407568697036449032214528597812128926","16023452831293378909987753357384233582281992947483078235408370629110805476158"],["2795839028380187988792945073509743828919412245296925162953253162286708469693","4411063612318849721847237441130314604457074641386864955302724553179352124176"],["994713326106102878187028534492956271513751088316426856821836713018237287769","1230964836629250573760702371980953980073762544193579346917570467264657890836"],["6954534541974409426652678771846965391941515328971913414048240614999939515832","9748796196724408168427438492902239498751487793051155421392083184312423003356"],["3449180922993468857449969280015032704507296676380710708246671584668063170605","12862777035304334988283600399192740248656495676447015355338294562213578847542"],["15423333089396447686835287455470968009564920665057113761816909739686745942803","9884804586360530801386345711215240980303864591933643294793513995244602057387"],["21441963000464951159188348334526514751360156567806548124022176594911879094422","13076495191668442577576214682417302035266574766639744965948834527833520042370"],["26786189353319080303785930710185377628623747994570128170271584466850344764562","19783441963763454320479593500450361075580429952164169437394921126623348879833"],["6215074616677965186565059919877562452581336895471321400840944613615416408321","21214701092662823633327188554156306618192310532898173844223525778482574722037"],["27426962065542646692889891573902026574762218240411167017510076612574667655708","7695474080032162710590367347089789347484916605656697033385445676782200881632"],["25859112623302750774454648627210364215997860588312893389711473059385845547347","2318870968632433658328920239759573104490615109868705074819765920248199510840"],["26355863050074927181216531832118421038730150282103622813649579323527860981290","1061312523536299428624418888809306789480402584971346777833059420257331527902"],["22133258536100050042613135869738159041912637331996916727970882780677562725313","5826691316571405977262184525197003879953189393162411463813782626037984358683"],["5653767802260161544389937803825485090821790149932872325413618543588360764588","21322228794952351505660080566921405717618587685754307270583165507323163396441"],["5768416542591283351468344186460429663666441169152941909033206268648615159975","23130828023231155509626651179112500458537999829756342172897328709292906389365"],["9065494193607659642546044468636512382521395118523031358633293569945512325160","16839417913975556751666679099971493788173112106447511855708299427294521632469"],["26132746965905352389206213375997987094453790902382268569833281044458302623559","7506982362908297254160424275255394190982075925527283733517545793206715619732"],["17794014374332127606769470881053524877418355732872857208150880528804279718656","4063088978422704064084165400128492665128924622909444425907108437324243085453"],["15839886627967809370646055825326157811569837634251016815371174251167898006765","9112881347491433014822440467646816188958644316539091588836334377611140009908"],["24763513964093661253415129074992374714262659327463204067395127455655379248564","12867305742391004010639983216901337160336654778764822011352681493802856135843"],["23115410821578999233638052450662903696903462637794263411764683220090994690555","12225244085949116179931868467328714149601344768860385434533237699866331827360"],["18919148454405433203693219534668436588859883928098352257446247333963659808358","12374095883059925693899798375077538390852022194624982266407895884536031277493"],["23146727753116954361404189879444302679960103832156423390789127753255776892605","6640476876749746035966522928745729891649486822258064865877971940029656353583"],["14416957386687093114327693661323835123027600514038707078481310716628322683254","4113037366394316278997517491364763481383501848079302759203704935784437903042"],["4468883846466268222095157515975737796750215780468568713577165687870449472261","22226473817373461455961382113411602286879734335289180081230833806143443541174"],["13812802779196972401958472337039455948243771153554963102857317488996780867120","13559025285969771014048319176136129298421116678383397523124698236979531444398"],["117936573498872872814412093940986990730240252082755217939741634904094430123","20573140864132643810977279759467963386668158996733875047132586903047543896734"],["4692633030272973975066595905277144557374654656767958475000904521912799081069","28025351788835198114021839076628752609854926961482413159336522731782847337265"],["15622100017601836885919981588998843028660484655860580319250750316742351444625","746863803695008628082412278528635152951395196954718651223999669454180504553"],["14538733063899104649357611424934505352936372737612014782936562205387003715220","15407550080865580388705481616551276490140209617238998430084610148709479407349"],["21940437756834815292917395516301052886659921075775256918838640481008426804356","19648235696867504734246295965086622220056214432358637737225583172612129718138"],["21091164818510286624737111760406178753648805885524420302367612910207121765196","11222651882199383411573499594846950125340291202815029468955331424586027675139"],["18661252745901442288411324941183694563924725875096396388298763771870005568586","15797272763503861364879415224587996147564337780817203772506012225810435423277"],["15601821386999156586556174083417488999582918180585464982963531909078999559453","5759900662975139218814851519326832234735254349856705850727736443761826918133"],["7017226040895000763554399260016413906021706363588785837698993527378751670948","25507228785773277612062214981636875771935154957669823403776568488377626796604"],["4399935230647490201487360499092074965258322537954942250633916166248688667808","14508699497402062187534468731003082742536614061741976254507845351534781698031"],["23245679678051883766660048346993323018450711071052448086879289940907146430340","3110413643510618344292334010423496239957924114645900517459799793358496976545"],["1262604954578693765465992326195569879330010772825935084294982825256585159453","22962694514197051874460209867683069818518896566137716928526619050894450533694"],["16464624267605281794828865129497215361175885629954487288814526251748082069108","2447385608411878467782089054724765105741538423386539047297497306796653072874"],["1260292863365614192955793208501191903713970880629580056690302769593713714825","1591880007378667795161324411486214051580550547357957323323436488177894338378"],["22366547131635230943680747839435301095189445763567388641196716069049657345506","7932836077675524837966449389165924690851487301063142301071056123035706903247"],["16147149217343794175718711111251344289257441904102496261867325863711954203036","2611988827374428476985233699700552649381122661328271679583301001084544513380"],["13996982315493190079950103992166323825396060109785927756701396448332892049881","5213260707521734588043381611760330202459127076471549851242426523546996923760"],["1206317735949519827307178501294619303926119110895685756112542517107767910202","26909469547332165609839587578390827404215575963527477820459989985432875707309"],["17520205168195941006048051281332749136893721070926640024050755575510859051806","17567924248642693316562661642448028187185457617592180726601428571038813381965"],["4542009902850241725390227183972537854656571137474375119932981461440549288029","21061242769203238017020778430225454928816660607110115251276146764071546197846"],["22566863019432162122027044480781208419858316232896671742759200779493229689187","10605841094008968326445718239615332729321846214627838149495769720879408342469"],["1706833087894790522682157717798856805324619614581652354639419150654390556968","21468145384398873700871298725274098578319434873473208091620334890311567284501"],["21604687594287679515032772254795843183206271561794879377906797182239820281410","385067041282362320088642371747762043094750252153079935480864277130213618940"],["140116400569396013107807103157471638269892461414961221460061985428914604699","1931423724879691298454607001542627928653699441745168623195192143748428011014"],["23307532147187184149783297165399369893619704431444971949645521811734597648880","12143327874328489520741779766175141683070503610748473662016756548953129965064"],["4344066574675230625551273764840418577286978284404552187177470989676539379639","5463033584738219788389486501545295036572243304887112166082371822524444565145"],["13623974719859449737200173685331187256308113252276029642282932876108680435910","13463157718609002686929096531366529680717466049105359215199380644824926049970"],["9747824802748922397298084298919165748977646609330996148925661317294232487924","28743971557268611292761982606591702201368590640632770977204357250334403967972"],["26376504315256740664133126893066258705047191356574335146151621127365618664739","4752536141764077481821429713852692269158853096230225572056232306199986137966"],["3336927856218935876279930829691643027535436156771672925690069445521505516324","5135380369705935453905125245540852714976277467393643786542851462230010946066"],["15407495137018891426123679066086873074221993052442483060499496530625235768865","15643893031309808883066855306565087005623968560488347166951393304630963452248"],["26442342340282788201589088056278198464428835090794951023514337981782352750376","19600311419178999225308734894226560846746737085769439359934702753277254011148"],["23719371855927547985453935698849607910714251776264932179274855903095568078076","15929789329695255156308953445904101785798460613862884853823764019161583968887"],["16100682657354289143304755512173364914523717034733778228033666817804479968840","14750471275090196977130296816713710513393151763504947874043407932654483430342"],["10877244143105618497918866188323997021579537396889645366422984103006227018245","9071657765732739444893576283181714013301326132366665009465800158936061789091"],["17032508146202949657561859340577062865009799445039681240868090100796875843202","22731020566120576533210037887660357200965826402205438757264662063370466299211"],["11894730795096867822137092520778504676750829466165475584818539832606657599203","212028605453715867827365420546972987024230001377035174771001817840228069184"],["2183668482130096991613784774115341794680651402818068492661309413141914675694","5864532801004938098561364934266246653291426814920307546320103052791862073570"],["4262439652697310798364542545518028819239408002932497085021735751492208606176","24806444820163243754177812286540834422874469253206690613958351087450092416893"],["25622700068515073340363511199885969739678919803964097910226625722589517357412","25726861265765050304270783009409858286803217058305441106632055961861886917963"],["4001403078134331700445676241663109892781118607025652443211615605517177328591","19209653488650447038039588054435267307256125689774906549995815687413532317681"],["8667907916501425374253224771957500419556982016361978623935718280148947443447","5664865454190862657428683108927262483905356971311604794866010223640140583828"],["21903211443770422517255095087027045149529407454386275229611691741892496061879","10574036381300157667254385549361718316231644682305945985681309368808027315041"],["20830363873170142713809529749534170526482372370016604137854629762087131896739","10694261888140162778327130752629238060679781178774740460118533198254200540609"],["24404885553648370147336284703629070544786070855060097511959845716172462695937","20674000918523732470413158161738244134007862130984785921595756427261220004408"],["19676091088758080229226201984647567027466882900395409634264687890947185430896","27026150310964970364342854861408443445165667170872427356339855140229628980465"],["18036308855738927780158953052819819847055755486864140180357779061522888128209","6333392044463328624190642154487415892975721113413097793194820866001446745835"],["17708186345005952704029900889006425795222058460161932612345767009114193604911","10795680142879570639941163704083661660932805348402426684524144890472660634065"],["9038706462724900018614591074436953751459827278582773612411573576580983765414","16920718427574792717036000688040686413655262826765538259730033040943102022118"],["24696642151554029229425044703943818858867266487532704860149336090179929658167","14507080282427845534047437318141258415004571176418960230849856269192268859284"],["24862094410708476290767353688574628798160779008399087417004536417763154647487","22890315564777236751621154815222675866797650764609323921222629645551718176399"],["24876784697558637234398666135246649613237096985626768689225932337178861428392","15886468435300152411845517583431242818150664784311559791752963978976225842641"],["22045738171783427901801479929390134912308317090971324460542113675532070199716","5507052087708157472003328838437046173808331139423803526589253330493174754032"],["18038477095008702477051610596898259774205965005155889068401456666593107102528","8171505538442607225126260467392243683435934054322297608821233518148526798508"],["8970279422072522008860248449891302866104855682532336338794582821849669398130","420111072787403879389587262654427983819624747264474782483023066282237156774"],["8484767756830364887553788215712635666749281879509672773898490879929495108758","802311142472307794756310915948704148601252191399816412537410623493311156193"],["1008325186069380283912344814260795369628641177859975444157850146252649523348","25923933620563373080155123503776058198854245995171511909718874993811968622892"],["21507089063849827949070115156155573657182658628312857092239222514370297616847","26792667199726069494204711154976903076224401046747421833956993406878341459743"],["28918960812984316598108512205833146563281710483387855328271328663661265284523","18402917931746412663456833287793557142078785594889679974397989236753227295424"],["24300875478961732998957041906559717587501621087763890894497755033119896787530","27724043243805016571030043827548583975682790905699533207761127118194859604093"],["15759289832599140641982052213502108137097506375803155902325701997297333681415","2146085304150868548182450600654266764234914872664021886380115961587758356091"],["2925873301900429286227343350014646917130965693908220149372822495001823578996","12728768756332020943573993166627490032582632765676793572392370485814586859499"],["21441925803219770083792025181602920995455840985146433903896852939451322196897","14848702711834616185810055925531053561976113278260819492902716963320341605406"],["26801770732622094496716742051181081853790012116805486420911834362085409841046","3881696751366251310466225648973450244096562210595754680011900020603601978628"],["16966471426955107619143610349300742944531354493467282426486867512646920053541","26372198825755098188276994893015648993440684850304691317766498485247323012467"],["17489931772229841099078386768227711984516337338043921470402687842535967833314","23020110566806654434937892790606803218877901398098154576180009507186898797725"],["12531518586385981220992758979569546832953259943298996857942307025046964214078","5701232829040935510552343329757798495063531719356259009726050399449962352804"],["6528596521323284110873861389735634943009456739629390724243281320269375197505","11054229677263681851113099071330238432684352686076529657868871230476384893258"],["3945450523652747206983072571676097723640837853062796202715000765990454037443","26607570186929025952258713070695029734664047903527623504213791855742419365398"],["4157181347834188932926259273452391862079942740573757000527696648624449143669","25730774258419506809403925139687983853961736314386467309871245924919548447040"],["20383778055016170640466033870070195085517493427720778704667994745069774771742","4152363381680687399993615423567324488363227307906329573382002995209356658149"],["23439896979960160128128407949227053030280451493109329059680433213840787462957","12027228210379647413094765476254386551868009919938871242977277972725675744815"],["16708141894801115886128278209543090715353470659419688763228765435493943864655","5301551438519427727137205794548170915622808478117782294194846188820408924960"],["13371989840689989442882210224288644209676883395171890957810919023644295364226","5817548486582829841604400077091112388108955759132290034877617100790113665438"],["16297336525542747264842474871824357347922027030155737470428733667852564835133","22398593021293656768753183880157749168829211936769621056199660816732584921444"],["7350691525960667390341453479339765691704826725923633787179175402438553875771","11683114059493462513375821167859341266618177270668423662504515200829385365436"],["6733405579991475539761651052151005334635455655905126677221306295442010860921","17478099034178580767934912835901224062912503184515212082638383705052666923532"],["2144230458518445023521026748614137381487890484605215384582767754330790147803","19984899237013603418454992011334573974802181033289687163094579400006873784675"],["28027017530311294235032003984182261988262564712498855024367067837776044459970","28001195694740984420372110191423924753057611152002547993574063444346113123958"],["27810444861276097349242795718513906437970429841756320099155356442352059796419","17953544989397684825978701422118162414018644805618452500430811434000719692412"],["404603312653776540549798522068387665907535102433205754791085694782565806056","16081451853450526582035710856316085637386205290173419006989693612038599395223"],["15805817399467354858148719118820669356143021125179181754853679368480696817200","28844468884327698355759739995345354070030465537686294042321991181643976599143"],["10843447219364394227439054593193284055774816347694333687800627059486359515809","9889353625963127482507137944997671205090645515462716645792138859735904668626"],["15856797086036599800945050453277721772659182820209598391252624634918625901348","28479394372788910100463680610095885215687320268497123509379658096654054759079"],["26591787876427760188624300262341650448585762123547398912447750376326994307923","12245804523015775383173688896152503542068481788900964468875251022943759575278"],["2904414473832737621071309228934809950406790636855686724680381398048140322461","9568062623000416136896936818276443792209456321677531449130630762865666719983"],["24717273067526790864652789507023806170983990560166360680023647263739039532444","17826192762104279159817017569725072325143585670864652808112400599472472125263"],["17711958715792794364098897755758887820874398210051352452247297409390988553196","5885096209076200892570101835101690427095350189400357634295804162440661344780"],["13269567839169365377904634583322262525026094155175267434629522189406251816148","14578804297983050625502926097394358794271118175814636460522345170283408243788"],["20775431096056561439256020926772004057586776705180030245617559987382696080817","7153050331298310540935966005748179140268112749837598891211465324302408769579"],["13108949113836183837978963297104070356973627540011665156292827841489818378998","13322032433723176185002289791138704306206904539035821698556703085055310227259"],["11605196410317976895258426684775260629824136397345015006894735027543098083632","12884168979153518155347655816037249637983776050870263827782088890915484405395"],["22242809784352225930612535959130304803398732407992327334540219821712538572498","26129084220798805363850628067778381990148285976813495090748450984625718879815"],["24462987460043536705754116071747132302028023541651714942064303438171485207410","1562437041434236747833414475321514359229169611032080091432975754118734817975"],["23180667427671777222931712084606125140841759837167414608577499389764273807484","19831915456519188957326327638779497666471651429090073934175096610481302029570"],["20464713430221617045306781909467902693817326938956537364060396591504321996222","24495163423098953963852924919319006020376428366503464784316185789156967885904"],["8437576966056134898637290522483181455893189654529879211973150088251698819032","10261258391957866825099523077407779356727654439823521039225571978130788110324"],["16719581057303315374856504867504406648806294778885053157124213085074148130237","22078412225840693500573106653951029684935931354001352662641785961113698147965"],["18929043838278311538901279135013670888355334385625705921558483415203802671342","649629624765766244541211759182242298786120880046835535185216286653560376864"],["15199857676673363040400341618484978906924343347402496105985500565388884579978","1836274145839999793578843614034733762387154176799211006632915203571042963652"],["23466829859870731031278457403302999098103464725795792982037058791897996184020","15420781900814686264305246538942124730796402586057281851594260458096205567172"],["20515280528987277132890533657570545015651349394851639222944898006338818046218","1261756898140105744819244045394091135831965723845127230885060781072508385791"],["6689944959994239988199089856474846637291296479115064812410919421622195604625","9163903461085438651435624835108331180651218523524222891996609845380011962444"],["9629191532472848074152677974220847184542412813879782376246189538104372580726","3639975342507232819257670946262864628510140404614086830280276011957480501243"],["12398132295137901892824490847471397632408197352865753232675657967532355595236","21895275981202887856364091777401667532550830088136340435094331592126137811527"],["12658368024475512348058685723594081476136892479200194369804104543357885574739","3350672161661155891773512618128251950661956875073093200233303261176329623466"],["18643694303816475300457677127323695861904920150331911443146937868196021357154","18833816998739611492137581506441921136110221025735791424497769662601397747095"],["28788835760561117051925204114045140932722092391185701241863347595827270199807","8285994305092971540711655750143651254114329525548807440304440119612098621563"],["15870235631140608638928886107933435462752860252055178327519846969118541665971","26717944205653767906465224262165277401362376188944467773060107629202323644370"],["25305169623378060616845012600388614726145942720059517952045901339346704237661","2111520132644588418612757565055521719805678026531653604072258237211612189734"],["19389450777810021623085498228539591607186394901853125880398924517479030360378","4118770719030537435888972716617421403896787720104838007230859385195673851303"],["16327250309573034955165794099883677180871865589022718480258483849764204066911","17482475308973143715163921796279996322023000266888005091325779527324006379824"],["4849356083561364400689248830472414226031031180851911989390413101982812431522","10688475484624765156271527229127604762540006957781987563165989558353511740422"],["26749434395661006238209677641244876734288547482647594585933382640164017128265","8242992484157380330983230570850538697800183748501873167408073405166371824890"],["20147135532714958910793683714261019694816099247315321759668848443902055096092","10727849694057839355534652802455726896283939080342907829064056487398960175390"],["23428052483709466859237502502725091560632505504702959802541723507811451091123","2027038269640308817270081420106956638923952828284235321131706342085413997072"],["18883108007952492419763800844725987852038832773204173942448821317210840765141","20089325269201053146708295644812593612892917793583742148709108779939833168704"],["18975648106775451048235337782281467739081464189841409392014275595354863798298","16681504417241929982830789857235961550768875754766560477819527730458107932291"],["13356228046533319582904211959051154341874971192737060066057221588383367531393","25911474878382076264044983718771391314772363721026590573373477229060477579046"],["23708604296935280351616367144175374633757658743915048096510268768531685505458","11201441967235881657905219846970319650255171938716900667549409990045702495756"],["9252925592815562620309773425856178225649459649935949576115950132907169937264","4921647362182906624941221371050331728690183515035577400601399341647912666071"],["23978185558620523682059373670428984802455794569496710175877032815777497912829","14494923620109314177942344931834203654496224491163988621118159582233192092526"],["28323514279655999338544455243635123266838728902650601170560391290513982214699","17689358089010249965453917541250133501583550549735691016981774602759412815886"],["15235363774842384725344760990274880317871848912248905510587898336794825241286","27943994621735264851939709904972351034831594740377820672990770351248739691805"],["13517476216710063557707634039553325063610460870564166672127840485589641643577","3078303100196677681540927554415323592590778030718708088891107374932817801795"],["28694849786693523102449696673988378654755760409919159471794800288463302183534","16557640884096625083703596482983235567317441789185588241428280683490583952782"],["17358205965244822053231442387760281968979134927031594645502376949142502810923","13528881165897916079306278532008757870254760827456152149234728858484896823417"],["27107789886857125790029762332566355083209439679468380384795477104203732947931","12578664879504532766461577192960084413980583697826012595701745065105958949636"],["2175499556444171450696307709154221628691305320731100289461735597773370808149","16990921685469654659220920217032291022391399602331196348711212444761799246168"],["19404027941874302612661331890357626580365473316678742866220510981192796395888","565413088438601782844768189664707848222464963385277078327501815414125846525"],["11706065993433140652155294317034332161248015246482800002097866046602035604796","16198556331018496833026188406644059026443878956813921089853461891574110891899"],["16486981922500769973254517220727151237251695723504509962713709689977850095415","23158382642976142361422627764034597923510475111932638700315508653331380107229"],["27082742557293335060232786870658459600874205610658599962512187611680267201164","23174252438267158016693257723084438355234471803868434590308954503399483551096"],["8334007259197255299227080877099482484259278470933786683781937383431850012863","26632492456939177419517389699383690362822209675952686861871052369374363094109"],["20725183928514578560138148946502236846276576116565346549499362920074393952817","26953055429575035298661157295018386964481808429974262035330341371831367125739"],["25126987936004618297096161900361315269310417067389461778867119775528574201602","19547282814981361086511929921109212239398051496559662563987220628100599302303"],["26126373282613071107413428260368391923540703419010481888307479444662814387795","1657065319262885170315529251379809601050962221149245145639961581668213061570"],["21900925248215756862954752993839946859447791196848117859781084057455188813409","17870990806126112168598628269151273136464570963307044652106470787491609064593"],["28342532885141821331074871548081078877820999184973279611547584837351675518458","1240466616712206127441490460300035776630115743979075117265030352866730466469"],["15439825934881845920140633076733452325952224219681838233589105168939484100726","2237426305872429242641266744310782906398887494355164391563251022708533463398"],["21503706446951643224068204797695743143602941919862325484619225030911885883476","9835457605571493188533247014956585088048653706305065248598967842492557565878"],["20230650522163476540664294574709579450214785627015470716059252060985190152885","13401876374142391086022349341964204543751158417423858500846694272056324175443"],["3393522811715860562866608747625450967703112391900659287708243771347241111570","21254891891442714207740605065737942092335135660720168025399512737697130325520"],["360860009754261431887980277573770462990639348863118991249260742621918374827","8978272450659783024561387860740173059472663131974917551219906845312877224489"],["15044979470020298772038527239123434562475915146210376548064879110953585637497","26093411937561174090142707929073694379232326052881534425052407006622330846505"],["8213689669729829146005330019793069005899537298061644787452717512199030621569","11357567612687053223322917217769997240698120539970665980737175024071092069159"],["9037089091628966988067262270789598905437539083696599784324839495912980147384","7610536966810844952792852708697729291838444573592659350394479314959332244382"],["1065480434941220968995970264018854412284515939116336090498644474533382415910","17168712185760951249034303404834530159675539924747198557640204400793916200692"],["1028098353584676631825027031271269756762249173420734808715715963208958959842","13435638205200718986685317742123350959199199532897069675141429126721274261836"],["14488700459025801972911712751046375820735593906153589137072524089134487581229","25586551791681588773959498482268342510944634304447028061595851203108851611880"],["9775139590295768715985621658725533935498346517937241126729044036285329961117","28667135286036998213491971723589081198012408895535971830586217627544107607921"],["16144739409402620922622010880974966395720641092082772994126448037685641839247","10459246552819625068578425825376377603182485955799243113814510692194001452680"],["20190378126707314324364620134810329771149010863357299044453070957574004416106","6365755954500508797627516489863840842177764611998422907436658910582142256192"],["21874880198261416490242278293941323728450092654988870619515515528558052871711","4783115765891618538468324943664890830936368555174045916679112592192603208354"],["21148248032419332364846693762744888902526864190920424346220008059402055282361","9779611821520493729688876709255503310743984118638795173343380800496132639352"],["16407968997604477760743101622572463167810389120108554326212545748424551914249","27824117179627400788822008982403201401136743234201654159508948812833004934139"],["17738953648413098788775044433492636199422953883673012894502485058615181131021","15460017488422773374672799574360294209949939893479569260176630275250140266071"],["19077329116947451072733444011758287319574753363895222831367835945408481635326","11354553352746603820767885138697990004063168039437865101283474620426317674536"],["2603175612543054381799351882270659367700359507505826474214293984911794520733","14823094559825961982576202231647913845921723489133999262667550914444639181565"],["5400740525869119935248092864691636431808361971466836281022237432109692337951","11013606467096430269941897128066108759557028840879949992834784516868384728856"],["7816539421863409730287199208369402647224502761138955858839549876759276253983","6128152137438362503908458358953559243227794455523630979719705978819662280365"],["3914447258544318156885035867338810191780679056416475787956697968580004063040","736182954492251290193552629940180115670324398055550951727339233491675795264"],["22495079604614732346849427516635096467027497588168161539304691355666458794655","10865836998635754916774340998523149274162690142311051923052049306493109083844"],["15660542035600559911953126190709623035079941376054209871132319286284018836863","26977774068912075973392346755787888333165181530705911368676869229662410190758"],["23284525093998834460249524295393671498818214052323363673973149517221376670713","13060735837162401743539461290786210886247623292906941464176448542461001132548"],["11909450887310439720087933667219009293250515947333039114396997105291778449501","20433681158614858585400734426400476639123533070861955578911164069563925658761"],["21447851155067235931737857431253208968819208130025793306053425136801621090600","28544405252824768583499965173030288499338665038802489004680732093778554758519"],["963518297707798735549574565745728807644271467615719950165091039225979618862","7976268770640524610791398828623527404644807137815894233267584913779052532261"],["9495393260829005144674146773287134831565973025279977601657185212008709197710","25557819513865205796688157988252118561706246780231256357331302351698434290117"],["3871325038733615147796554864770816437400682166052904995837491579220920837652","4133049886954929682484817863587902315328322110402615085106875188593337752484"],["17319354767063530140111563408116260429749402981019724993461312919108048607878","2348194426898764282744046128959675372193836270092172484877011092901328004440"],["19198356477190695527561629268761374106852165718460725411847477125021323158507","3449041251219996900056271571043829332825803501472209411639542418760766667926"],["24460423723516141815626496519991845566697490038406193816792903427259516405850","16612056834304907947041104621337547955694086190377416512204329345313160803533"],["11929134643669301353256939208521037187406832586933325378783268910574121295773","12307585149492941762087525855292156029332728923577391286228243167219018773293"],["6403141023120317656865745108550289468701716324230693490204074658953922925811","6827444217920504049189401811925475112085403242991150200949338666538269736594"],["25928106827107884920725543484124808443229021796740910548337974056250531128521","1924885611050218825512604353622912562484942411519784205605007296048255039408"],["18778059350807224848903134755270397708708921933849572007078051697633534357926","15494502707899944739033048858828312858491847902679777192151948212152024380239"],["12581364414816776919681240841486453410742764150896813764698812006505713858727","11011205918138331559580384675843011482582113325542358074498724421751644125117"],["23528576435347818877650459501283193350508202813280556834087383322634259185670","4680055246651840572211210621740380857582411761054257126019659454859531491471"],["15182524960248264658493547220679747510780690230003286875158665127277926444500","22898908117147587532701246540021685182356824124125008744626193633508948705452"],["7607042282198152924555335971500489008527777637445429145505466873288022201579","17801453071154915120023767170814829595787233153776481218013847866482968160713"],["4536968055540727241626882787374195379743035099732050055878464889022069645970","17640802657608598173348520963947216449316398647826173924669033011570469984899"],["20388437061799452234989414982015423687075570452917399813494161974996665228784","4628011464690758002097447841324458460876964405246973909986706579705915530578"],["5065189959596103883592767126952501218815457854157899502599613572723300916621","22235718620755762310014893638939680317471232175028655702435979628177467101133"],["18081818684667768953048933222825217610430335614201677013892146684728729142784","1768846351099675709627719337132650220848286827925531277730853469596126934371"],["3313484712474048829483536707741604960950100235565020789230147951348216910200","6515132473925444811022769290356183850021166556325970249794272808973562896484"],["12099335562484221767839015491290758283459180622013358644932854781141469221385","24794558029630767966400082038249166050467284278692172867273027972979614522417"],["22093862940296314532248031778157329915752497860966996315877031053853009719095","7604732316717696487628169092721035760161332643083887021238888039350566673839"],["6489143101663693590198081949841051175528819701590653538261210825118004008930","4057500628760235879309544132639599094042529946113285972345844682220708364911"],["24121049359407161015513757068777701476955426696982876527316922098847993152956","15999748319451753231971640955080068051282899633054609838381002341309123277240"],["26188305699710925016646594340867064102764433981329422570835917297373132092757","14376007228359293146336674093732073543375015449143811673008905632356629791953"],["15551791714276126736023500721868450239105433073646705441626127063922237591490","13982301797748432662988078136170572200016381025381006433834903570119725204838"],["15668743783326321756918320205567206678715368276917645311004491082040670711041","16123698997951712679892883865101225883693771495723277771260403752633747776187"],["7261031669412373697234965663234376179893413893965829022972279076166349061128","16307671464393342885771949704076958002390324435752871914412088716951536157206"],["6816828720437065892836222275560812648012374265913365729827130757968682641263","10464593016299677430918017046250422844779399955277233535410278485318574750554"],["5283250735460722105202855092483055118072899944249006105199534796896684955510","22263964211217427674582479440136112275613043853804402317094565094703431728390"],["2189958649779779801029487955252850502934221802546541129297671961905894306333","3707240875576059979854341578323714421245334346549431153807721801155093179552"],["27552708414416024829062482617692400440309770588131022504989866383555858330221","24229730136613423567543502988892112274836606344058512236493376355304752753990"],["9716754028787839922160157984132021357434165352856733152702041843937736121568","3503837359845229935036412757394229339701639900488346873550379212560643568552"],["20494000579613031100685203558120461399735582739929059043697455008940093702518","17026478016736364147561223171893792766053534197124655926608379385823073011184"],["28609507378796149169684853585523406210013503501295473781189762051532073992377","11672453041330327570513418200039991246439561146281658504878511293865742471727"],["3710073408370975832037241109009220035142785034015245758577155363218571475492","14085753448302980119397466073725028745407525895634169292626403166642220202876"],["21217118534660237029632211398939968177528485470711080908674935656633769107410","26140338273110044762587187739170716691513993131198636633102028809554328042773"],["20507707652611504758026622686623085806212912221883598221717118613844265383355","5937448757603921129372419801813844738288376985411435931100584728307170248343"],["9025433688221488727753509340059364387813378435164761588044117488482423723620","1684108241765911648859184951426873694739176738224877335284702327674388092219"],["9117976312790409754756839124954632972669308712676910610028441305967260888829","5238342037310923926275368322367852821334662031364189267599316236605715353091"],["14007936685692908058654907141003184612766747066933671042293166324251104194969","19705766434144254630829095678873134351152358195987286880228652720087197474221"],["4976351923819945324318736161405329103992893947025028683720587985273736591293","21043210043259397200872662152180901007613610093875567857744030566546206264562"],["18775287279948294570576452768228697066910645503363261977295720055472888847799","3678175661143846894024606789111824184765484577629566706751212264871827093215"],["20383766184214967318238578965323769504253597364551597152441732809944071293172","17984943137608040436796756540740071536026636601773523380130665225125967250400"],["10505950461681461392989114579779942184495514385227578128612895688738555813686","15154136703428655258880679573922931871706365837550792461307270633825210549620"],["5315264350148150642648427373380450161730377521635258050322703735619446659819","12036559267771494974295810694874543815681429001324612205299771568570784175284"],["13008605205080061684964766510535145703788706570635436257659381181115514080304","25336041178962869017652963069045137270009023821046330797019205904916046330131"],["197920663148145461129896674496992957918225451644148781996674174282886252734","8008345797401797890351289424569354009365614409312451119902295083395370109799"],["15968218736528941427799235071611931827042356212256513855487016454029571575720","7760671739235894462757877335849425257154989661264317666024416837700360505207"],["6304233578746235700176582876936009095678496594507310862495526710638400086773","19629653471495114282939815653614257665056507790464932366504696471946455111435"],["18272419621190769962919565492906027100050187093008510517819824998593704554666","24610519984516123494593992425049047733144519349906660039822668145377328903808"],["3724073385416919813114726566994817474040343477763221459645611581799903962564","27437811291569617356162758636367563658673580666578383232773692932968263842210"],["28926993658379803686319221932820607894563135909185216230830005355620671003516","12315451182653419259426223905739179199410469355078517855573572377053753511788"],["24678920108900034374748860440700864236835152964018950580054657963449325452515","23205028018101821643320560591976497720401653060483181380959614821795054790156"],["15948964344512301612189265934876319840506525832144362079326441075164148453737","22072690647490511667740455855760417154291225473883409406944035461124194712067"],["8136517837444457363183698659502072256992382291457484181603667071563974315619","23127484429807124914316834083355138829410973303130226117447461332088349722757"],["6278229793569588488206151418180547227662051049485926769441716690315303024952","10506734304726004632290504325229527057902881260860738235051096604200331235590"],["22146584055151499892829622023052778457186954473751459708991232962144928670417","3070056641569080023166357628156898783306741462152595699992159161655509645336"],["19309604212039798732352961841804917633283646837536205070013922630807869576922","18571556749590853853515062877868484748900716375790880718463525031469452649644"],["14435433406379083976578804160078114624974943770324194734394932547908464964374","1214450521322344078853859974840264043616673921998115581238197839642668495201"],["24271799309911514829969029344209082943162148176170997790354429028412019738417","12533333867690277211474616805815459691676005534991329584328817684148811161031"],["16342557084095992063843145918661198108997504103397090398147321804534176799330","25296824545827954084237164207243560322264674758662064437654282237309739926572"],["23536614182969172895325341817117256578459578847579887289080786769955398583919","19909769785881474513894201194511191497206108744892566721167417523466538870943"],["26850952423288004824980243485246699330374579450469982981752726848484897812802","6473947456369327003637822738720932457605854238818011056477975797046276197520"],["13886228188367261667855806135883209300361242795603512163090196928723838653846","21913717296242420247237788655374102579120139155668254318487314137012833079994"],["14673544083893359095760512640579638356057577129801019743416500572240348466394","6297058572051234544864241485973369018751921952003019541125482149496722109230"],["8688793709585190625900201414762808038308340536557320580739971698243461181302","9441772587936338215644665707050242709723059775353653162389848685780032386698"],["13649489891643457150235401361403863027034212548273475961839928693228436536837","11360935496282746291271362478000000476033060623497605193026249319854290019991"],["3771622657469940300579720157526047879609202972909105504838512692555605446808","13457680238890170302108862714769181696500003971113566846728338199247766848785"],["25110889380215060742757157236634915911340937763318119186331302756594260207698","26420788845994433568168473671484095171658290291996950126596245347444444587816"],["17442112256145388363787815406902196997369372536533927942254105206850665566674","8577784841328721959916665909431997580352907547230257237843877660676756350636"],["14799435715159164836725359639242708653367246953800478744913982386259988170411","22090357696616703956283060326567845196379312735080911029378440210807078741648"],["23533141633843698767778814776755803837195446346724105388686555764235902572247","28250216208749980249559710692782036581872843120805192962643517493554781979039"],["15562786687100318937622193061554423522596668223886032814199186350524695245839","3977636143817472236617230197074859487095433785043740483621651004925099839434"],["26445059817046777669775497170950922471635095011309328028030243347334540512394","8863906905586144270829131477593028109047816401156920195562179676711371069369"],["9250366042070928685156796747644452890115367659514760452053296680168804694862","19621674215252935653044433375576386714284523927957329139524982906128512879349"],["1165537091267665680624224958719636301538767305997357251931443275086192457115","16748936486476019197345363138290677915859267513732520572823257820897162553285"],["5141499621518953920705399480516996193044503281324823106638620635572464736358","2550819739048965982598249087311483199103044867475682162236286419127563683464"],["5115661730901552839802410494060714756418692438860123529315690781747191524313","11165255711345494969177390446483249328161870361293249564597576091305499765832"],["28170317079342617473657000963543045331962916038178649775505942957709778969854","7487516525940078644392283988420854971373728308900642482013557219276011536362"],["26007006116968730223166939629277848044499220493312579564287405538490063521197","22230660985062827783488766959889089491380535426391678926503516266898901300930"],["17538941327204477481946354943114439438687043675512376030221406234732140281650","13440542363018319456383772724140145326170562007320912489601047440944228711903"],["4252397864408167140595632769694798541588355828783311668219103682345375609324","3543661116038974187952836427174057187001136735441544882630874489028793349773"],["18605665947920813676268109513869230243087442999820755227121327343080832780101","10507585973858190762670530021309355862304809569597886151116840142593892746610"],["17037892068485361548993808085039461435471606383544028947403112442881198441335","9887536959923563863307652072745148791658294779554199243611639560001511114687"],["2103564022424952589696074208365000300758398261647584327285338247868679482866","25192492690199071018138859885880859487840755717198452711799673975398388918902"],["7439874540292951229906677362591912952974989323313940207048873577255811461290","25374175028576052981389508826093376162707550570306877186500626307584042546044"],["22009938132753067413481798427201533818094407144900330753536728948994130656498","14130850997589151278821569228945690751979559316572571934963674571634734871187"],["28308896409731724412334909379986319080043054079042496496572638569619798065903","24919123775774887113055096799967855491939544837799768550517107467161578270632"],["21347187907589019243543940510305775967645885013785634801125475940549428030767","4111418696139282541411766718527352270734489908683297023060121376287465730910"],["21919565003608013405136297074228425439306081495878008169739891013977014080486","20340809422571433844451061161221860367496125462052481975327519689884282337499"],["10683468530331737415666775881853395941464728453756720970347352179450109585584","22749262788288954472361518021652891322573467837605988655022459708141690560623"],["11911871635571014338305858840586595875828611589735045753079922936598224408668","20116064054407234886140301708586198423428624777650155726563334677898453980329"],["7019111217388373930582629840850620061299703129976757992581079986590966738446","25255338838417378659592776170601654665976736293997067861741600798883438984815"],["1655082892860932269607562767279928632098691775353289747126839777794900921742","4551890901938497557253737232357252771263285260257016195408634697151609198572"],["25322123937038852754759294423190401702055636063751912338974747557483353320822","16961073876946470772701185834452321255009579427512857298587362529194919443598"],["28910317643738778808693418866806951701224566007392240842001350484022393115080","382966180961207183997022415935310313016751880630137864103645566008172324150"],["28619068995386621214215347138928705016528344971971996102815561035428638539541","11064072650352844012617568704526863170947673823393481847166552419259787338129"],["8667304230025047486127453057950232114672633433336082815050529055397469400266","3649134614288194056920078499953817878413842221315073502869356533271749704886"],["23940527158685748320182749357871156932206145873156955665872381677628011953136","18237088366215985204996046520040163003130418397818687837347522436635088045193"],["10362856368635981135926612447545138467273388658302676227135671415322841475263","26469364065007445909722020236273554450862021588911720173396173842880228809056"],["27280456890825602205361349369809361253605996562972030786318969606617936428579","4272868371638395733981464582532969451372166644676315151599190905073567580335"],["5220728878853651319242968454203953836582623954411374456212140657480348761983","27394428391893633883769473891210424100068895277054705058684685375846675612431"],["2743649596782840771752917460250749879148111648501119649908540637343259500784","538605112761879451228264284857208997082639806875662241763253148404343651354"],["9250516429877965268309695130680172652396925529116029388355373075512141953918","23631575445379877829289362718872030434202246560266741296087759251333402862324"],["12257476649939157865981226067063679774849325738454955830260109008204895578033","12036975988716904529733702647047590204527092066415834673912418532069268283643"],["218543365061525548252174477407325434587746024892744075786422444894451647241","199897777287367839807308166782494558015040118506939601667893497282391613268"],["14575215283766471463016060447701125443340894057970452254135305436524183174666","11619100746098872128053609858008868065398118063254018206144815358349933509277"],["12376808521569703280644424729042446218497706887596215030168893372624043936045","7025040840210108074768766483674509652771735424782207188290275763229247671613"],["24617655921338679998351914051656845403091256963368320656206054295842603367263","9460723678213067907286012318766690843614775380497220311260612674114890719381"],["6894699543929187312652270600628600548067538153887177762051412067774784089760","28322449682220112550056257152360216189829905578128906733118413355898816768245"],["19814744832417730201010156489807295243868367144578112224538791124121727534964","11758389967224079618675745470378348647837902836473533843280256201392176231416"],["15457893758103966022372364591324821043994532369645241586043629303020921772098","28571761796171885435561764529686999539590031490213598164011407051284488550113"],["20887807105676156535188002016088562736621490628891183071551108730009653364194","16225755649521706145371806769721139443555272099322114601147269518381963951315"],["14149494184947229699049319040680852545979120560986058164062674887184331855528","16914453499405253786618824328885254987310044316834546188661982433294505088699"],["18197304554100712623286544676451030997913951103057828715857319157794267397807","6038701872468890578904004482731747162535040872614954088790140815380721899151"],["1869423935704552139556757321273220052226466927248264197147365833072633732899","13921308567322437503027770724710928058781940971539680703644380516033201511358"],["23433002531602572309587004088485389561591318114035807057952942851045261665582","17923257684758375124732392845384181885005368399987085080643334530765466462794"],["24928332045755685424543290177502240611926385882538893054750338350977523569810","27087449214352128149858026478091716618659259346783792374708913342488356250923"],["11303505288871250259647682944391695616873336528084241743650089571767901720907","7651235794066701513388188260460190696764173723353952408220339127635127284689"],["16040163131192341530858274258518561592137487280214753207931737516588724292594","25693134324738452374383593792780177412159688904171109409681141959815760381418"],["27678955317940109576298328679607741660672310385926751254651457211959820038404","308082796636621296626852376624846444283765925250546938733277708492246047281"],["22885779411398618736335562830717585132141379567800958639126555788662786802009","18420939777103559623842087503780674070699382181306775768521052248607687387558"],["6268227988040934807513631766473323261419381110631770148682758877275706075952","13711752552296621014946511595015738711181679511581311417235360814224346708150"],["6997101692418140665812222542331777383464981371749313576887640502138283474332","12905233118258344941851678587782105735586937125947210417212066817073371715093"],["3988655888364618435676820413515597535998484293732934189087025582407960268572","10791212442823940622771442672561914424538443895241081813930630693989048353022"],["4979058133702397196106100834609595216321645026943521835968364970332592347906","24983050153941360193555562827380442585997623023864495144040353178997389769314"],["13285666544415442749929561398237324487159357561066968335850773924904136016040","21431296357728554156221799877230098578430998360441992237678726603962197014077"],["1705842379146958162664486823172990313757175540692903824401846632171335176445","26018764491956557570724126604398334448179517483822870933456930444461217875262"],["3534003399690787135708110232623512480521528439784861704027357312316800094400","557010464181063974518059107609694082313302134567399021099658209431696812606"],["26946933058253470697713822213894156420359448253454672515870861571056088964603","9322254269085669341299277167375776205591980914753722128545202958583541808079"],["20119703836954092394262301484069517002747110666495452516620609303300135564162","5167017872117122968428757160937777744829288468876509965118987522149529465865"],["13309061585282717902148577017792645447509203413362815880655903720540076133283","21816859013248725924602600174137449876456228417087431111190005416611676986165"],["2380368484437227933740071989200153114274459835966927278857401203776117822245","11111755394203112659980565502994837048975781637344918341491055889849136623423"],["1661544894241637846625148705750226484625299863539149290050075966147833024867","23966279305645746733302006546305121203169691556024659323001651077171869185620"],["9334577068624991705872627053916731182688863555998950057705095693449451348039","20749932027154327154164586022444305021921766020590990279550725218964293695226"],["22540175538178307481603486824213132086524975163781963360259701122680932266856","18215003715206258578852810263222353094364018525754268684242297309773085653746"],["13630350423332315421826862483424095441128520969022079628467825771643844266207","10290394113806104091596420383196089466939497252224735993285122876282910233217"],["8805148060127617450681585054037281210184425119902748454783447904957217304197","16793081627616230402977620173283341545331757169318893199833817258338535529845"],["13233347983685462771871604989922761848144925267540214936879390163296871212529","28654841865705265443321908457055699543481866938612991365524414041071628958722"],["26822878529042326372926044129925566366845031367109093391157066593676375109250","9134615203387178488119904365154166266166115631079016606925446984583668222470"],["6642631159441499283546955428774755779026492140367742266061521862823273397528","15350949340185313565928724597986546886514715007530991209057141189581826100640"],["14838353494477601126414317082997946563828137215880855986399040922129054875118","5459071106559453037596626383612580148608695572134054142425569191057750192837"],["20150022993276941423379727163922569377614912044916865730587252827308689052069","14231018747648489474812837185741364080627845231019811149390446155453942551726"],["26836726826537349299717584734631901818521736838189847851372926293662442713063","28634177419526451560302354845591751335043967028760794708040387458835515171040"],["11273499683756263184749919831850170919237192234710006252282615504442318963694","11979455455623831070371105780568149347812792835950515578176261142259579463407"],["8232030599653743533501005373494535407602580017215873009304615541859571327425","23090464533854506462772310017744291863002292579104791849345204740225843628650"],["28701721026690234111552409935931128102026932031723946212047658978917747218664","9879933601018486882961599660976296094140431379711844503954375858150755889567"],["9192409334054605818079376699361728987985245657750215075500571470888536948834","12563256154704017463384910133093672964897457983527270058157147158189725199304"],["17532768392796384652134889725427572429889602931566042804362953758364438357441","2736306305575824346600890312000856046109031647880475474425758457342281234472"],["9896745261228460518130316317701363778208647185486599925534401312896501982493","6702989893855059162408016756244907149423986968172032043579573685497949895496"],["21988152245237678213154977154416285853617049902526011630435169450489548558984","20557610901833644222727121931199111382554098574644210806098195222747575594737"],["26963738583991142374008823045148071326148354828560318578920107041061036899671","22747103625912282240107936266187439846996579532508191623323400473795191508025"],["1569869150099186362928894540132366393638209037260930203257824241524335105344","7265763880493875396695462452146547848750104727031767841452646985710631778193"],["27964913557439110271661215797251404141034227268686835509735174158831516321275","15809187703474560458880722507254939643883720004593676379117745053998538127057"],["13207137208366257566706389294909147956192582773820427472861368820255448757498","11587405026299255264654328575532706128965740595271066823022417355032683540831"],["16233874341347276104328363319955696586221126091618870499102769379693641226107","6961183169665865836850089297037479861817264611521189367175612593792842953043"],["2516364448734138708852016285654208461017152745538242919835853058491527207995","1697737939329766962447426595894463374782395334404664619115664014888683306331"],["9951357210866492572003850474041277588217045505017396994564180627108021431797","28416983865899762306388884245831904100690584040473683419249388717481049505647"],["7199977046192336922220481242258629896206708080476804505661719723748248452425","2801871948577294596372748270853207927384813919715240339123154576730607488898"],["5292688346028955060596857440681552274995616322960038490689214266115820222008","28043822345723297794836085432009354902219803522101248409844833368756483409416"],["13484942565308272587333106320071359069991205511174208573750036021145195703525","9650492871858050656030949192993617301496317820590542370302647977921565671874"],["24006231359862469816517630649044769930936745405725655044044342171902163689779","7798210951347106809646828443733602585610625487293466195351130800846160653110"],["28440197699954426446856262704624746168177825812323229953391594346387902859982","5796886195248127906439440636760846158065518020743411002758111727848209419833"],["22323047101519762987590614061002278500557270135517292107699118949432874260963","15514640648023097084545407065973618690187022000186827685223832618221528678098"],["12761466985450198388812578808994327839695190121801703903135330282354685687151","8814692069809120827052808324093572208822143294522425054487885321116148109973"],["22677877813690690341514854768180119277632715313342704960369927409110536463411","28203019241540448177602392628362587915271949496981877305030351079042100730948"],["17539728855659731994602040451266756121069034814745096780968506506380387899180","5358491711436517989021400814859024874973149132552806164087935140591923817367"],["15423341444282650005901977303722179780057553194787788699889133695480993611608","12532933220445307797163671632710732110528146851307767344597835430713122537511"],["24757208271353542582421624318457942322621465381388898194631214212336640491984","27374535807771214436560607793086984589478240682657665823108896624371566777583"],["12725654265334749862530793945347588200341377425300287558237790981138198250709","27860676011565610124468065404891965009029295491662692552053240058200969165052"],["4456716155900714288339043945363201169090891733873002192890591387851075226454","3200491740974849051139391302111755804547007816870496148610787814726296416497"],["15268862368873464287195769594288855112093317388539615679547328674868843307122","9647015798239734047234376812590183380435549648927583789793674870399355013891"],["21507091984770016424705350540787175598333969699976474874147167436810379355911","15745380954600938709135582325624268690313593668063635322996420672490851844041"],["5703987393386381300306300837680070642138705708735714698826225037440081543013","21631335555994424275347342170916100072105150541932353838061393811569661770695"],["4263474559445750931539915234093565180757712827835135085115323068393519575283","18622611374593802851950776768948899799556018498278533411246476238079445034462"],["14315569283668040519072550366474686389965640072618360989341646071420110416913","10052716007044888115713902882674104716339338271112798638075910717438472629015"],["1176822864881880512356798320215393839410973107788769172343431773078578062077","26109803002501442878980228533660834063157149551471179156042393943043941221779"],["12741464442671812331680562392925838624399254894597726677803887512568509567120","19973154636831018536300809020676288029304586390222383265378927887416037723051"],["679360187733509011636004441652174601756682504449661746197474562140226554315","18352729541548987178084699425830009534436484732849465188702542087311520849557"],["1837874176478646715138017544564293425587932378237826563867280842416898060497","28835497213817080719563987290184375522457573767874175710907054094049198123242"],["9011691273963097733156627181150847559909781727340838614007987563162429290918","6881552124168661078890750351604150664130563763560967475936185298206579241949"],["19730338589030479137987094307144757863149697055645512266332562595502618503255","5077632217652303775945724637647684703564854351998132964164165270541438302681"],["16118619264035097504917998927053199897926750116951944685320313891600982970107","26477856084273940122765376313200677457975270512967502624610109831945265147767"],["9730653040793969255121764081352864327570954649845139860109414571004586103375","6196624089917185120697362622119098672301321821541245540703463278840980510447"],["2830093216054420228298499582782496932440645216330200173583687547122101555254","3079393656397141862241112103764987491228031402195823233347612932972487794537"],["750250376481524121171959852969020260140557828642820525879332676731070865470","19283967909793925262761708962744475747394868199761498835156132767225538193641"],["26438562573174582281397424991404975162243697342708293239682412919472636030580","24602570383607062216107463212298610099893110668542228328027509450588683585360"],["26069344356048010686281464139820544738902115851170551605321340033282187295620","27032127037112214993407522259990512489019330573374331717522478990163698975567"],["22054201081212227524760219601943232881130018607376709541259770774261305275597","1159773585270869391727965299760019719186003403453474461906329258290289235130"],["25023524524347130681004183170331643853445552032425803002372198888996080770640","22467797638440164909495143245980645716494839120505049988126522320661491277124"],["15410588245499244895313324434538588319899868838483373838809126241964115620841","5697532022436660659631765857022593647725456535820141876386344604501426222602"],["3718427669321794281205680718173894143642175779200278508378720401212370420736","26949690752279364507299564595225555479953535298839803899553927841236975684855"],["5436846184240891007949148246970372005868218384070439786654065195789448858899","20067844327179284735375126756527930861449500653340303363836248280465938145817"],["6987965455772072304071254010504992664833566888748604756786581497520248468687","8975965239084952401447576202891908237586834618207706772453411293620484151860"],["27690701918710932636047841257669829169910835082418094309041762410867868033829","8249544935293463793805869733037295128237626589170931878565089961736891251395"],["13716566470084433672025516782048158066453738203943400544643088903892856104647","23565918955897346148398471911350913954418076060385649231227200149820648619502"],["21393598668351122332911903555706670939720357841557120578798646481980830517470","4529213233374726055256170571080982491927785544349896131154220322293897677195"],["23790119523107797724040298198740797166162061508620349917583649375340521313121","12520155406209572547242729345173599456040728624324105436988227822488841403394"],["20652838123310002563223143619021290069398865417651788236052425375324455175914","20532689537435651294894215463007197856940481306488661122529071393027859553833"],["8030160550350010818299695420115045014856441366348634914162265390903279874890","25132133642654402632895278434711191439675477823699656527278318565689142255213"],["24819070401311518990161179576466013822420727146158618009345221890412643835014","18580546094338895274998174345984279783788870316800079798256513028312772625706"],["28824287384295037814889470568741516797245072372560165996070681628517926137204","16535727931712307853690162952562880550214515173265749645834031095290467999906"],["21945295974283467953572139661771358129176374890342547042190394116306670464207","2110747754721396270373907039808657675448010414364857680075910219238164239099"],["1289892524902357022922389816167354896684244785245583090438896067399332030225","28482146287991007224778158363921215695012525460145409541255507348321847852411"],["22802194461478650091016527745039943583155819043748496406792263421102526243697","17725263865006454945523494079309505867037856939281228333689035333193797191184"],["9058850819501993513813937551520172893270091778499993059990587591960895227672","6715633225920729732949604161432005691407421763243585427129459746812182055806"],["13424672982829955737959162089824393594417898834550205430606390980000753587752","18297645072955409142912231247841619998344255294975895158028548224418094643835"],["23903393633580509239512470180413939087016670872327028262626046148364380617060","18628303476011254065815446634775270075946643848752513585044032514724763467397"],["27704444162456175954240308683260355726988158757524133871033415341269399760948","9455420010544352522601118201567040365027362236027741094090004929127244906363"],["8932912873596410871731949417850025982034998696803107535735962762784190529573","27548688801796623016161764687381823057628229395095832651336583658920378036864"],["24917020724952802526275888608971971059480460769325169193635994548259031327194","25336505263281207427290360128725818974599224924734186444978601508397875298183"],["6717486278520673219560289175543317765599328098705210879762954767071996027732","22390258257574618935282077875015453947826872423067572437163985468327287276034"],["7711973513990580335560282803536611392222986253207124654402664306725162704180","20500599710892770477509538209951396603896822004126225683832501226224931065185"],["25103282412960185524513976797191799303420618672411040093720915870425729699464","13410956832127473531907774968960111165730754535418880736147972585669561135520"],["7051719983128823057033305209639215626035324570429288504069545817666635323357","14981349469364921570754878908611353372280733297797511771720039062043425512261"],["5303961411787921554947804395039906272969747405444779897216385352227628106547","2516959863258389533868500673828295026113079791688166280863728533656711232107"],["6426163299389793033996801503914332032720034386312501582494063984062162006600","7143781883978428773648543594874068701455830528060390862951538165526311388772"],["6011545196862482313493047100787391389223253531991164193161659745071857626858","12504329291638673059148946700458636684537117393705165284166605573113708937128"],["2724833895719313191237978482380709708749844623164114798063478874822819681655","13273234610871138812254315993456077371649231718272366634687423316785572102119"],["7030371662327279462360795358729848642960093285987775863288486312658550730734","22168677603303463666723273219023887802253245960486571258531685970960938246283"],["11105245365336160358721308365632328052883378969628210733333115622436198321867","11155739097579899159782970056234025487035161052262324104963316647474366747464"],["11709739119789819634184536188971237256815682193081222472463484583132264450826","12104406325821346716095659077151610427514760390876230057076449589840551729"],["24568634278879271481367219966849288035163105351824184273353399408288676960046","12518293621731196928449675568098424614387639780164137417050760195648470165566"],["10874303866826921140693572521019398108555282586933860791305093033392571353223","9941227735589543313245597444515627202320671983366467301765335441869701489322"],["15167806709265608588030629526366825463122435306111346277851815464186714961823","21113785212234976017907463850282970126400425331127945359692313753236836859021"],["22684417787445092579524307961999725545365022099910941444873581959598021220440","13884950783975419664579255472593368018251799111005619439700777351252631490870"],["17581713886172755088846613486570044697798586238114926877129971729083417503387","9103914545816875053398742757772129391335610572677638339510258746520226346974"],["3616267032526329332505698884960760467973885050601799760162928119572275108300","10204761003396833942193132657594596367205625694973123301128993821454589716491"],["3859960054665991416640488732559284689028541875033186424198093330009236794482","13456036725682661415170976468415689571953717468893198295117148690288478393168"],["199792898638454193376433023848842600040554684410479897130115469538625784408","2607892805821806568952212370548943458241802282366896367376884259287895949844"],["16433181224849913111193379926126259998114668683508011924812280458719956445644","10187381569480023752677050597311730605266267395333421726187913556593056004471"],["26939699320932724133446747604535992462838188925833383756895218905640975723984","4051041529183969876291713501815194730594911920644159409980691594688544006732"],["28515890979564953570685393732058304723919968227000499994250550140637199205816","8466466789554924466829205380984419589902335579304155014197420881251931627315"],["7337936034062855360945222664430263419228942373189503027801875822618610867696","20991406635863138952285348774598103536019176829518907326194149009247710978675"],["25922778635877261680300507457738396981467218500949116528059575971400727684395","4063131902785360306627714585121452800610170175344907064292603756352953164300"],["17907992210207519477781912664863068481334606781471852550308504180203915291330","13944053039236840009159028148909777256294928721825084719482205933008380466244"],["9577166406386311340432933004021376362990350544856243470246382097221804072993","20428169952522753899755416815869432968942062263166382928827371974925651580672"],["10157012058157041993795427745521455776226585261972397922583228673408452734679","15559091352930140721482810044258537650970068253342980361345711457892323666208"],["26720247953512767471388842187540363308964365223968366609854893426332246806412","6653619053592349677507135067267590054271419928471300819347318802306567096802"],["822988150081436370854112494874372387098193348578540791061027100133426974251","15189604652072421067087039863275834550461026928755127199330784416386599372219"],["26949581606994738321978393526135887179492077972132453500852369704601283230449","25693653455096016140484703292332246568047746257375102455399458877186322545941"],["14598362243730162672965705223076508744335039228076090504643810119963317087081","22312754357978282675662744521195086517836311661097514547931665177394629357919"],["1980944883806747771008276071445039716098363773094325611802824740861713791625","223658771244760949453903585734090215797089060920633939744262035134290060309"],["25397228117640805155849840512136352776344675776191828792909225256326402835842","5233940122248357995514481717039989698091040614183255498878788939680033586875"],["14035166500614182474196207180285299370282699199060251922722424405003479919834","10289085729776063605061862672334249574672905042455261052358743571964877690894"],["26516215217096205618814767867538515780258044459567278009940978228872978719819","21119671760319569548370330863518342833077920313007990532787023084346389026912"],["19059073923599358747536405180235110399223501656709766395781741049174802597784","13887317243879988696006060719455797411950645184601305580635765368992861204600"],["28843174400882032633283315475289650095002561899142023736891287831898017720720","9367992059873770835135416209697428209206218834304494266969390985734588314059"],["9625199560153795955616119453084345735524719564972267487242572114293387112179","23749412372582146677894983066168685300592644292454972298102494394385255132843"],["1056335016864420070150122064685251891121236623945101030705265890498229866431","27434610275314335043683644578656217350729239189395020949433887740626077330370"],["27922871692117022554799766898269908696992848223268385397950778003451915147021","24063564948533134022234810891200643921501535873120048113696884595125339703864"],["19407254280118808973546609028445270505598434674568969399204624825673271023744","8254930093187387832596607837257939969857617071603098942789541398791880826841"],["25366079861940973267252007856906648898156440861072864865399434185225997283391","25705181788846076983622755520854112391819099329431138297814033372565317871623"],["21766501034774553270808472765523055166077284718094016994367727353257405062512","12606885330700606861992925754900442576395156287624316175544464870231618162283"],["16339729565607390960672478849933622506434445711770316734924194874368398668259","16842090669599081852414892517801865925652089567743550648333852292252001138475"],["6798880747081657551187846960781427666419694860660867892672472888067362348806","17203044234738712927605058079635034557158748084532834395914092989751319226852"],["9964560022716323745357900134054569088772983530843252950732360617056927560230","23383172708554092097022345308813050961060898665508794968732451286465116779493"],["8071059454934873230364140838176541144174550611110468752890419051301824769167","12197115483039493945801259891256728018033928865777310188908353789411880151315"],["24465822689719720581529362577789312563568757400946350173477934775319998208470","11884419479934798793529778578081803056951337679937635864649949419496736888047"],["15912431558319428624394910245729057157052824613816335330308841049087944136962","1126675833231477074834593284644814998957184600097220535411751498370228319709"],["22610766829698637154697355926783085871480504502001998286218645009975290380140","15567446883172403085762347445545180606738084199775069773522281716124758412555"],["14976288955020532128088537963342233198925191974879572172697449192678289653774","27775434873450529454534765529255343760190810556508513462708642948592093999184"],["16129927078896042856469481975682144136924120260412085160295402729319457393769","5239726217294186655721024876697070320354409295276328902727834295954558815716"],["27109073975864830951668265357885617653381332257274432816006274432093948694309","20891717680300407545898688672798748695575875570576970326208004889888459560446"],["27925158465640172885819898874094901072953553435338485961979559347644587792104","5904770447895852496752836847359418558090358489354565360704006763366072598725"],["3362460213351649631484869098740824195441475821839044298805515868617594786795","24630618781954073665120093836404873215982649999173977338196465166675977245169"],["7656979369357655165437316327281069872074241890645899143541584911441831184134","1858057085605524459439674979788914109240097036361790800772248334021943714988"],["24001235510054966240286672539655167148812387728596764529608369886869343352355","28294448433894339773282783328376948895408238209212615756240419914646129079020"],["3206471131342454809151647124280252438188397635887855126317085309990477828789","16600088805087960461129850774237958045179446074467944532543454007985835301274"],["6008816249748682111508062319675471496381836800721039722716582293917029080271","24159322672139235601079755763445064784727319103074857580029566444151192544334"],["19154207157496577537426313370388324717516807832632670280090634934365187923501","10669043765095136767254173604180198246630513241360208527702161936550673840996"],["5778062082250120757409549006941435955537051251673270570721361194366403473507","6501195887834231472970571326213299105574232813754940614553075506533006285061"],["14793841943150244429037174392803807400823871847142042006696064239216542119928","25230738033340667184801470792152552202552832649542853192977204421814867648952"],["23359819963070282656589334613508323948495930373090521671507451782914946849835","12725644300162507870947777167838956585878035085288338537817599337249346923169"],["24178802459110719415115736923703457032266792293471371525934177420179726529445","26984541287301470498498442309228989438107261640149220675915089536544976171757"],["26268199185688410255240316115029685106815642211442040581766657698187360145124","21415475124938161691913593454002654296665297061118817068548601132726679970975"],["13858352798035939367057487653405643660559693450341159497239800220010881581472","6758451347691829732516533816864207110994030309561522657462551086081572037738"],["6772882465919358896288927360501679375059075775344003600127089256343787391504","19318176797749855071820074020686584196568497020727360859200459203989745442580"],["19165089999278764093592193883489548447129686445453257672274419900660879128805","16224554459288484872195513913227340911963549527903614636994374417276427625813"],["19475839738706440582672061313217625930718837610274358043089157678821513238219","27494936066254244131432939608042868412445501263780714988007320859681961570636"],["19286682030696476007419088512124932610414783934897430947599043211366198635303","5361295094322125221802559142245657540705272080664519444451930966866440828451"],["15681707507228250348507096780437836628590635698357328511162467717247326933063","16887274137640362496427729094329821180692832987999601637423988290748739833177"],["16367022238413729134750325691171589143906897892472770459692063658512551517613","26485037861543965736651305770200641018751120508395550884262114697236779593793"],["26168810391714641194217981121911013132172549114439030317589828496996527990190","24578980253086516264711775039456928793066495698826266587531479767996730329551"],["20063306985638934712799761213080089136505660067915483648122332832766795733522","6169855604410828859726487603634318446154615731356698848484856004130638241355"],["1248776244784819130334741800560333621955115286789306703361459530562964800160","25015150285648973471838354575401490492432096985179735724842624668265222243635"],["26681734096846898921978523000301311057495763902225241774967999371805421118737","11681023830137312280382599055220373455945220707540410608088723317324435024549"],["12575031299930400368186680521907436394209747356042861147002567210451252905353","16461572457581423537355676762266092355953158506462333763353155789181950828581"],["25891916842076471313199685773574387031814678469148306932774551312267996457784","20463954810991671825248979210331396830965151680949526958825121125965510349990"],["24606738645048831541532344272680753621804156749716435577550966633270289100822","9787617292707814321112308981339227876063726783088648437000969013429544799263"],["27456249511784017945959126194965325795829858750521358195520230815746189339895","7281720863294645339660442664570869890388176130610091194485938982435065487397"],["28612407342646808040441765807119752478458954256720625452096939985187917340804","25176781198085950532714230441165351250762846841718412011206607571880852769430"],["650349131139304296164270721781040881419106678881090020298102510611383693762","8699436833431223504550911201639140180332424118677016229868119587844829259919"],["24120051231563565439814619913588606804892220957377535491237018812378864978281","24872161869858465644074678516806199998069640630283090552732479716948329215499"],["3626288949776327863294943212586634809441972726385633384418322153262232891276","13714819839992353488144888891555163608411840383276262742325874465631041968757"],["916149767555546014985771219959742040940513587822248890207732277529414644923","441559365962270907550933465287586478135419338611045282474716931317684713585"],["24290659558918883637973117995854175691712203057516204939034965609199535854288","17451912963681220882454667198409962271988198096274715028304512867788350181600"],["10758593062522185618816329742453741992007772740208594738089702268285020234082","26142189555570025318488863684528442030666425620491515660973589199175042399245"],["20057408988429356775768053396486750980896420380013880160338540860297858377452","173704421478338275909462981779896933884564031043237155731085353323640988340"],["11704276282768301986982809333233887953944387861667548231944544408575182914528","1807282781327804035500060651703682854917220387805583973851383685338082801009"],["2682266912529808796992400717249224135529565716637770573772197983123856098052","24148426735328280230543125339373653480234702631776838169796625229759041545043"],["18948445420804965767340159905317272425627746543293195537655474140506158157331","15673457005869103747622002802768247696014610537737628292476887118103033455906"],["16015405292088081627412717480138667222574756770880280555424804999005334805487","5256570409373848019067153411008895634253495274194793184161749589935747273115"],["26069982637540653728383390460512017704120365786715580003970459150859087786811","26523144835015976392612917236441499041340486850061318307269213351858429110613"],["2799882899111132082995337774289269280154981497419155845142712710616298281673","13247410619196291274182457331707791834217069040699637952690428958676428758272"],["10316131935116515238985261310921731850922391432362586366810080031010391151789","5195477978806947486017758630505232460444405052003032284565411770492552782129"],["8755886318997251001045904485578259800488502947800007294486375953666196370719","6986792572168435937174226227949357848579230584744013782090395044882425179072"],["2085776772278476215250927400906662336471614915699022848423277186884761384581","20753852648727445185147827724728355296313951226303682395372987672327856727605"],["7364648262291483722349987837874476640148502209899783272004317990060285879839","17675965034169262523220958663003542096621013232198560386013740761758661347867"],["5433534841199057775080981128370352321279921731190747540323829436987079672682","3611220289887399071944648096988806365694870821927638748964485323985639182604"],["13498590214486386992568920087308806877401199523854993057362764707427595352436","24096426448219358030601192127525694223319897913603299177563606698205985119340"],["1385318624412717806933023946942535104144438527976628168666274613201347838687","16743137433321816781089893419455433672287233735291651882258260747847643077028"],["7289775000345357506932529383174580677414572795030492247190523380169737502599","21162077062590333955887576138055253353712485971288004518229511952301564400857"],["12466859551697666487197705980254628205686558454354244381320767608715873875781","17468372960417539969687025086381028959732377608047967565617491089992223966292"],["5072865834460812064696331973835097517040362410842400330838571534453134947712","19631883722156317621056508114863792973933754546687213101484615741814142584022"],["9610037017755383797876917444811064307844520808057928935449548323372518494729","1677338975004386415561853451294921709254901860389095658861254165230306144081"],["5941151342204095894447124253204032006564844787476545296570076385224528783250","13465106211860531725813576179021617276816050228316906476094319621002862807234"],["20374531997042174239411805712988653214991292474073804114214698293474467099920","22225888066470157143969960135291465420162716792352699269943144112300413060892"],["6748205344847132934734379739619525622727076034626621350906420914790724559294","8447758277279209143122014893890921440948131573111671177119778443153521084391"],["27936585436191411832585649397274512231765811897432801311963962764050810536143","7681263635537569581797016184870288051164468632677434362364830227533327279613"],["14186600183369290321039787383101116501690048263922907796838993040740206282455","5553384098248276160376169606641935605316704005480253329702788071331150762219"],["6648110970433857180477365358349495660141244173830809731464621925113814131952","7649200475654248892392760200848530424200489203294112255876077418116902546606"],["18622558241103215517888346823746900113943190667270762019309024560188960339793","11672971039107560694636229448663169418117245566495944441820725896987854909334"],["1951405510740332807695282947942522164874071721727257656673125530634215186258","22105844169788297210763311062083049855343855629953521646857486915316904697707"],["12859124285864049839955782131101830388358235859152642911624701464094941161156","3439284468054644834103975857687498787204672873932836283805992219564647128151"],["13917686943569922149833187813902190689288543667948064420524799886575657591143","20294296943888628693058081464254507646588397122848301450241403897829176488451"],["16863430557691802899331232393395609127225029846022282266488275439714583125714","17536173160608024379504854541493656503030181461634866179920685242406651975996"],["28243272445514917323098666710623647858719461070211323541762195486495533854305","1644189924461685212112405725552988933973521597804957652747405630320382822077"],["2461550708208391818440212181592932769637765105593786410264654617222378678518","14085919101314403753321254551539401513777907911295711205122615580174598214449"],["12640656120226626758402057901067446916089268096954511853924379194392828539937","12121451078785048534380598190225749735713766220534278815813774224227165017270"],["2497215318639471193938424886906290396031707152785396941965478431335992071855","6875648730774775917203449802777212608654327874792795511621263719202192755379"],["23497932503078854751513354234453317437039847099559918225272554532500561793030","5713705331856960674850627291742745032868842374355788712404883383349262235048"],["19901765998887235226298423174758805803843907579013626435307006301476357954043","25472556056835760614080164098136370030488125563045073491596806586781610342398"],["6717743551856439505143764103177299176119960951217652728530321920121870444915","560363903431513776219552920812986059067655551324566389977673702212678582008"],["8127590957607403468655073586392255833570639477766255587122896690746582561754","7956540638836275479602008940038916055794708271323672191954793794687744065507"],["14253921617978132736990767660382287098232948623816710722243236464468719151370","2947240268794940371014472070573674604134100165335516442014689585732120902143"],["8806193258700013049105576348814257530752544912576253849527178740982735262101","5650697905501936364840185210947970704920592170647275558641228955673158911309"],["11047253042506514352569467528843790004189835056359940702270074209790321567461","968230725135582148842939739749956483337118353003064745858019530948406185699"],["9695755374534582108156035240586801500857784906373978512896765862386164789798","782945948936362347864243698120502164187625825775888756808686442637719074284"],["17858692441281196590457170815190087287127783082763358515679563030640844034192","13077504724495006529626359140668326842830926923951152488074687225721003524054"],["17685870255938391809673792268669565800139084604787411405020408343604659300057","28671895538896636655365805399043650324989299611710929430124220975912990047655"],["4874606830976713605076474948771398877977954657903891881729484825513943265321","1991559709858179826021328519893780186850373004370427444583133629509344834485"],["22981209093096860557287890222845130208030663229831307470642944962027183582445","22157363386485847481576709642590676491436683993515098605341673701180179425110"],["8242006756690372867256947983612701537996263956134180131821792062378004884947","22049240615361901822083084487461580563487327661771502966563333727293618875086"],["13642451586819979054097491703316428315827039682288538366981334251254972208768","17525428281964891954982243212778036775188923783934333594217306961901971254403"],["25260229591568319046002776660046655000228503856394519311841736638202183362476","21808805066435641606916960007646867209113527250959027470387809258452152460786"],["14027974722347207203139399679216818514274951360596782681779837479114738272599","6671336929519119973909381596610623115599004796108199860107449074340590307933"],["15966069380633286086612586051663706173423001634370132880421065626398101057968","8095612734132720402948174912791837035060371244235939997551331185066096612664"],["26743941342846920068744233409347788494664622426725494270627552824466762164041","17814828945134196107258330245461611376942660319969944738213476178748575350599"],["20013424984095859843778806892223461852899599706679937108323675617760091104957","1013138050086581940884856094343861524006490403598601970669815846500083801110"],["12910022853992474789633384796869605904648479219661753069020051350852557602451","6302589916984054600229698962658706231990058916062226722513924728898364021986"],["495153845916457010325500573370242711695278434556096336065751806807040389519","22417836676677199915713606513805942297799074520916860672331949350773893248240"],["153408112345183889526923881983593939511634178160268384817976635223169236910","27758518057856340025496535255597807958150756423159329525461909850104053217346"],["16720201942188035147839265375523005898978300476942579346555141386758264669531","8693284946713824693232288655250343508296720800182428809422333146617428259772"],["24285652736862037524827116436592215229235262415875131863064022730520078913125","5630545372909284202499172095086653456305193659617425326184036123044572195142"],["26240139773770375780274573585090537760810680017005244876892230458475263001513","5508101229176429146305742599531052486413108720360712853724619083931135647542"],["5105445620884141510072282738927786017292047254079870745822160480611845855396","8302530204426502197691606699511290138850346905747742576277283396553357741707"],["26483299374593326770341925166966934611827581100599245821839658583030226735788","3888727981941636900469677966778190779863488095201519787571152706894325116313"],["9233197103048316229418075643414416563622821281926451340704842875407733072732","5382927078150380906747139964629127849875539045878265591969765551023611788871"],["16397417383916034393380755432717349265054359659628199938048884740025086640119","16965609795728536146744369434377311136754636388665510503344593605391200944693"],["11310298100692669680976526294168920486137869293503996671921098792682284483958","3772823868403693343641513332860004442990878539240567693180795506669592483958"],["744398411700273532589116950541323461096138216067418411588591141023360119377","16088539522486672932950422145317956037674133050311942061904053979377171756794"],["13573741791548096510198610078805466952728276852716624318793247875201219516593","22151089589650347754681435477506733201687886984152165245988444389407413557740"],["15176903994641602087210938462118550993507432833015275374533584222694125591381","283167986941053510330751803243265243919565854670546395726470321689768703221"],["6689349591785492962529963828427523848835947724055428197860977456438582123766","18065598156840191793623186750038735207648943859691710172892127023790822416238"],["23109987567081778194311522202583729169265815802702963487991128004515661987263","15633211391236941844685086431107832704617603698392807069225098057006296917451"],["6272879937118409169616384394366525857171246776946911679325658626662669170995","17330013775233725090154756813131035304122246643884025915087937723966520986799"],["19072333423383601413984354915433659549440992657894050925427434057540034239920","19075085229432167955237788354743484658419702650238254384836414542684199424754"],["15809007237372717395655373525594644560564453637111052250653375401401821304014","12984495597886583222077949270449913759577676638313607449260226565438685442102"],["21154476991521105412164429848925177632086207443149713880827448185619299294217","16192161916228885180499881771851952118105996729121658667490168958724248419843"],["5661153113453344095528046220234396032087329661459213790655450182185052708858","27110107561066232765313471578062031596697204587933239013155053297805996555908"],["19269058420320801749816976304266733622005979951033560777043168634212414504575","8452136390243047819215291513510877118314149296405150685961012370344438206043"],["27806907347152174507568860472710831044068517025668441316440031841313760044295","11110751105116054603022640857219937786307517673364230531032749705953950181738"],["22375480287544199593889711781120682640233096291804688067765547531394477046384","9548107289677034157047175582842989250238717039276567545433726750064843562635"],["14540343459960472588172321665192328344294536225651630766721075317012740222110","1923558291611588122151474459244136359542801216203050691857569450723297258306"],["615079292732548353244835100246783120300922707827434118342395514837252864166","6906135259895465619087324450324091100332527951288744414689074649147013683530"],["9664613193253094140060294278625693417644263859819598312427740685022379425017","28031834555856045536109526758912620166499611757453187128609399477828059226872"],["16586318744010369475428318430811668820577622258304582639513034259905092943275","17226931645388982388225618699376842600864419619780879790612917634373755976444"],["11391479977119946912905487301070100575770427063979831970916290452787115701535","10120931713109309007199788512537630769859555392294683109884453823614917752983"],["16791930593078104507437756208820542776948472997083557441472072164367002569497","27549475471092698592086147620530699307377950931870037750244088177579660622099"],["3639594176740919526270899334270013033089796406720976474532001174976251069708","3546981750195631789912383053170559271229341603733696370012937349887996520941"],["17370938585486866658112280780351032882793890632386201054536100714614707840193","19083886955524061928216167036961265584935834038925885833510082519464588045462"],["7133085738482785632163534051496223791627272357623898201288706298416403072528","11941306395060797531022639820612416062047657717094547857763829563208363564467"],["22294012538668058266218078301849307069326102232536951896154928350932483874656","23881063687957193415797653160756616325417524617742453234541090316714147389295"],["6370215409300396437259932224032397216801036641045203476279931751803517491055","22465453529838336320430939349311612805701566841099947722870785116773291604654"],["27963260734144587256210402288554946760626424439376092511961401032081027204149","5697145649918855639632761722874032228855669456508257528594633866607123394393"],["20960898303811237346339471803455214022936803327916175691340262996074755710650","20738588974608261675438128780669950151674668058606241425974809051287950596606"],["16813575602509142618484313428361051352485094707054372022714547299068212700468","9772615202553738157340199578190867084198571168591538080970281782083776606863"],["2394550250252652087637172666754102236901113715954608923014164426649810591206","27748754201672137653716398684649532345796459918932471991799804820299547770762"],["9342571333157658870867182345064098960545121461873145259487575709376693939786","740747757433152746199579621469287022199768668143666666783559405596985791833"],["10882776334678813469154196699455509640014016929609899338972736389107368262385","9989269390528315249245181815157551639871057000310378999968576193786965434531"],["16577528556926808644842155846439128737940195730380595216998528441080548163806","24613597463947582832244754530609205330145927134328311749622482707754075220034"],["777876946494867946273410354250516773657143467902377644363655372371152760037","13842905858205076892565702057807044629157590804337758845637743466678844694859"],["15650751946045192177882499930532794036146748611379332787724377624228736982274","2879946099914333400040608620294222142278349442862164971582109924740556405476"],["28916200738531302785347128110354614396128606572213724742529905461072335709812","9947616486070664094321796877285087005395339829794505422518178933340261994913"],["2775523339102345222958603139103133928487745570600166434677917001916174477499","11067209251081387449512036524391281349085126595093863564971243846219040772361"],["26641582909827916624841829256677631069852756623489947051275812641211761303042","18772707402653079989283545342132585523735992551001207617197968840292851258728"],["3955160346969016808024552877643982745247909674271027416653963959949773752472","1050279454526796697856930775252687160710806942532838307695184985928614882799"],["9366796310117489205537970856722279861074730332779150526627956690734939851313","22197971821920218807245950598346653911383114808881521434539406925801260776861"],["1662209537255829148901029588872233181558150524755891115192127321395457687091","20445673352201368389060564325994489204141062949872091783956586672904923094869"],["17763685470083406372070540632340206715220826626637932663171980434041474266033","24075425132560821707803685802474278351006721127037435876751880038327299684377"],["3668028079231472814254570952113329639712527707238200781121501688514575811142","18480868710834763402240686155598828546661146914272710395108770838819884484853"],["24740317529592209152343079555675685764912754697501075145967938680439858608691","10675764813580053525182306689915997277404775367610034706514270185504467025453"],["7730703735533897235588236139585748436303880347626691883195174817869540037067","5778965873529755331058018179550200927247435773727024321842694560295747342467"],["11325008784459215072800678579863697547978188511843006298828014727999331931135","21512794765566601176342291463267630293199253628557872414338441265004672234657"],["10082062832822318989782905452383553794151668265788555390718771408899067907553","22310098231381592857100461148541545492856385457612891804987146511117159169608"],["26116125844735276921785843219018191596215203391235879204023743065195236153212","11096314731093677630920640161805985818986089899302743758968137019619026780891"],["21663186962824008256483120077851267517456163235798941954037890052304488803818","2277617811185598274672430512714814079315338159974352948963640106219562072279"],["13520208781166000959067585653857245399984370238072613335896629809893914165850","16867040266470031879860169112681610918438399254924244596474108924366089081542"],["16870460233864757851500710014265166179204176296477956375101900501375071387265","7650775418331099631704576383061602927906451849382986948309706421345435214787"],["9486297349853701490912133510376861338785499217173323028583042111462726432742","1231935617046970609590717782006815929581425207611038294604807416047798704508"],["18464942779570545456590240320886342752871256579132362042870136595500537074896","19617011170558483126056835422995229739649716300757028465831290585190249870541"],["26575872819652897988755199237121955635135245370087698158003679243653353407682","14061249219320782460966372576437265182899461502360661838253522698783839228481"],["10934459720281402748025664742411877772351648310608109955329098814580839911792","1440329305793220661197415000612707012719393596691849069705862941982552945352"],["12755088556377402115865086082750057114671109478824967037286928179543353591825","17926412712692138749799066104302047219716495148597213492109387080651531631186"],["17888786876053180345189049998593383531175558069837992648253012043054768938438","1006893300005076246460239138892623397725460109167976379184402750167137007369"],["6652726975723828627368845929212511353515874930166217853120987859207630028786","13137714963476331395431625835266040567106979383215340395606255152324447762093"],["11748446437513990255978407916708129983145902827913500017342006477491801527738","22184582869241562931088365487440995450663283684548929857683842184362746858360"],["8640488871140287814973716159917429300954225357310338888936664543802400792923","11386402460302580830952834590244764686579820845987375640388764324891510137106"],["728186938639498514392173037375596993202679382063065574268617665461589609862","13578275571910299823696453629373598858675997424092300633486815122290505402822"],["8740319643560146383310053172946946338811164779124967580426238878482779951222","14736413941158698308931877877631448312648992709594576182126065896646300266773"],["1653408125262684701102454348423744245426112001579566850995434623729539478646","13010898152471349487922666311850295710224128295667111960681597225468045890917"],["27526123328717396934027511390227378872040168888244612338938525356449301360040","28129983427621775918618981547292467299733780455671729218568633067019778901074"],["27566250915968321980389769313045921084496282582294366712615611228005831516612","17273091451749748716851767845024842821901154315736171927496270937821545243258"],["24297506960599759073129782271208706615923660481609237102738146152341927827381","23041776300977187810068061823526825233832395373114675183559915687138266143631"],["19280631274197420536565883587967896970098944601924899190997232474452340964739","21750384737083697423294391421300958725715687143982309273185553830402668816154"],["22621453671642028312797542992909168743926597747822769997679881965121031996336","4395337104257481830361535418213462431975966359437601739741345254416779731265"],["13031993891355162958149292296639616571972663486221172062666834319591350086985","13395739897703402356220611039208534506528815182060795623787639029229112143984"],["17598498362773488439537565927977644760456957103117258377438213521875550130152","5774884608483918640459509103630857785870230880265912804390615945193693827235"],["6386342378902337479725278918372523679567767950383098716782535928112551393860","17982184570036152306008009922085418147133700392327213519262186027349304012881"],["423328801210394554761772902909435910027508806031877113607409351485986067073","14539871365335119291592514424112953761236922684779927408214206951832918683450"],["2396481362601574774715592500237763725951882024531431295947950474691621707324","17481239984168194942647160881557377978524803866604653315660621342502535940243"],["13287613403025581410625150209082197690229125259871824874965936669206238302162","20238067518442011307629196477584711590108265148302407220369735060280123656437"],["15940584699897346942694485174522234871734489122034986494578208813969504560574","25693746606449745929096079982840361008078693378385711824950232530377144656149"],["13631910576661295011778380240156468437025286304227674940833369895783839028064","11957393327966297481275799331752203079585000535122340711932380208407467303198"],["8808606817761792483665174764239807840840600276289029832229320855674931235609","14798498239440244262452915072811947347653283675708634713965435780811112833650"],["8140240400210124030018763987561983325516629238267836671935012434650976068483","21809702394951973924504587989092043178508411864312157849809832917989350473801"],["18508365402376601748965325012473456416299697591083237469442505040472793291194","13200264033560218868471492297472437657277731079784158703542682232689655097019"],["6195285045945566207411232864269517158918151969697157999469633228642247779989","21453810135701355065936357994410213185966280718982530809915887108560810820294"],["728135018499445709928431624703656161528950244736712055775147016772391867115","21880455392558946643069035427190457089076704316254053061213046146278210628205"],["27242918918549905650714427878632211356208831165476448742174815943578453074818","15200644237573717144140406355790699208617576576720322123830039716739101708497"],["24661666681769933011986568941599111301259956007401450680423385110266401222558","18811804147096258101950109683046897896609961909438334287103792247638113455170"],["19151200371475303362152375613274072183063654519155058147792793033519250026999","16899477943573452130961567462369685194606937687188910466630079457101096177151"],["3870682036479745286014140826189467955285874829016505835490695507114697683945","20923811544161770648385496415985040290938404483820666602468317112190641994574"],["24655427365128845928486127945158568457142515427851923169684496472026723836832","10889701477181845895310854924764599875528310601063554726600387169004725172325"],["16116011395246645367811530950466244274392137844406835241527086005725482275005","25898001677492555842245154788851406267743415723337341821069056612845625670830"],["12709732209891300735438686843571077882749997727244603096499521247613397004607","19249646770555453643730329617996090914717911782102439159861289558632021009921"],["19027835472593197434725012071640000900565640724232067525962916171803221322815","9167376749813558458148143447208534175300150573827781608200902763853564869419"],["12399407916854004040637985850524896962283328445734350969019410616208570819970","25648609949274916242951970708739079647707383212103941347980714897442172051748"],["11983003048915154829246070193693586102812284531242916235822732036104437978046","15958235528593791680333793084517864339883191103932086157877182622430005533464"],["18536755456058723687730904278534797101317043064802973044316041880242144497515","13908960304803819863396951147751793352962599988708864746122340004875843052582"],["18411860381877836515252115797821131376401632538062725321214673027127646686038","9499343297242044819719044894617978970886874936464702503037348002755405664502"],["16207656922214019889084390026392249567087426087858169741583058077012442836305","22327060473256610884285657977520599252280837410740946736494952891240488342499"],["23285412534281446353558366527245450183602418223019987897813722480046826597056","4774642548692601676752285214367077577741519635877658489147832063963018108318"],["15152519456686843036869868440948951652368102146370545208011913292835167754873","3121167932065704684589425171214819774303364750702299373711442998638180359477"],["24031766091082352487839809217609624437172416700012813226860484051324417998163","26812317323568683907964361275092856381651963538294522454938294224804543969019"],["20259360032174306371577702332337596114604371691531392450952354041490326542235","6322678718620250696828541510551587834555737970356419364022186418628980006095"],["20084644536630924598463774871602706019159773037395054442938330973724566798723","379976113060009694439990866452991038016589059405606246442639622730428313253"],["23710354845944241729219943932716563246212116717583902158580190739877441871339","9792346485469059839530514907614518611269698860422149318899415119785210203089"],["5448054938214031123693565024298262190518654971342176216467645714800808791851","14146720464527815217588480593250983426427002098128018643116251834725337140175"],["8597632982608199870919409880877117011343117567025333961259673699297028374395","20807323537458657107084407254032300021954636791370853911682957964005318962331"],["15504374130224196244495990635741848220372743291775839135342980195887644891911","27473719605661182273252228731545323446672960453301629908075836754486558094054"],["15246651152755302796214460885486685683233675813016928373682726008224833928312","17054959639719721978808188066929631949841933119486589645784668383923177905937"],["22378836072388650926484176525352156053076610687379873740851415401018794073875","14713924200490615412706784832948111600865727282657030424277269335267158735702"],["6503502619335538367649375433995749056177100115550521679932416778869197611169","26942816175734964587935437162362322312161004611592034027161058971407005363889"],["15473930416361364176634533671117425441040531831209171957112827294633976977378","1736488413512853353296034026110077293799893185580470852180186445124482929394"],["28654659145666961371183744335293983004866726077989580062479372152397826842554","23875921038447845449501306596869733815036078034287895009970646855869269039613"],["17992150661535179281077990609544841356449877830607816718373513865026713283998","12830267777924044237471215874151882946590622465852033703859972044153123825555"],["14989864064595711274934336640189714503210071564483623875369703183134767968531","11306845079504754287636315349442641949405848323061271653561425992912041885488"],["919374938105536172896522270032681493503392704981163063380369967547967612720","19815497623759326418911242712433528181405239180024000652204170327917194824758"],["10932671880743027040718807031244346389845859208558609305842032548462434762729","27151544695899375762506817644277071837324548821430766338458318926367680051035"],["23798675276287050066830842896115305525900369056044004604311198368575622937648","8398963410664291135794177392862928206548721986210398404677421333340454581845"],["28438923290884932410885820320441933324566945884317457466233446877516338256327","2918352591442449660539869635321472522619880010096595070318558434230284855948"],["23975315664433399822904078046596190771904062160829115288700936549928313368753","21148822563293212018741873326247469996307503925904713164040909409481231600510"],["11271478545765379059759171594295112805445252852931003605376586272076825154961","9840347493527611464469492011846755176600965116808883079940090881434829160362"],["6805881009554321362095220222861470819597432254518180522218331444801769718589","4189260133223140282938204489784140629118719703861197453411076803308039422368"],["3666849557778043143481224717643820557041998667718638615684573404688833178433","14510571532585008408498828150251906088242783661834830892288579043529608633408"],["22248735620934961936761823760361874113236243663181839850866671288630300496173","24784271510514717624949062639587086485834929074313045884558563686607818187739"],["28289965115114873994632377922903392565627316928437540790124210442002331206826","18671659210222355747125852630990919483790762712301545842777349873068415122566"],["18490360536011619665323818841067497816234497681681467298649779317179835490109","459064053401998127370256575468077814732076499099754670391456016712035929011"],["5973523690724818945685920488148107466931678682215869202600890625449182851684","27759426583120966159236458147379869233747570227187510037407810573874837847402"],["9485081722800083878106294108787402312944499817509856389786446038129881471655","21427074104419270939777647947409400529716348469534220925614773982676659764646"],["10547334701912430361374707594261805851081463279507270048434541432094684872365","8025195259717651109881387122604634144503411876808207043856046509078455101289"],["1835475520283517966897995576190810125395944838334493423403536701011115214355","6757049905365011523814557444065562957776752140116712994742412956274703151590"],["8670233972517654691574642660763618656516572072640321946378799300524831253518","7072455039667014453607646893118326406516601158014945136702581023294255691474"],["18247978462283475613438076282740892690262902168114205613949910535398595871345","19008555532356983557868095098785281970058381273299909640531432840336006178858"],["6603268697873148569094564326274276697069214446308229824801839570469629355268","10404326398804383590495203518818592043224723614803897901282559395149963624434"],["16622215732013430968459376415130627120640912439542854752457436270231914363947","5044729213491413555501605313457432221288182527293506419692823398982305966843"],["2318293502334479340286257039619015326410047429454449720842030065930777340203","26103774351329218739010374697446285044159879776624691564091461295115153298663"],["21371055104784829968037666008774101270009508707428414661994368327435122841446","18918509560566678108844652125525942772624687478099845134861655907499095125313"],["13003292859312743567377264921675201835527443052595122574425928384574475782060","15765408506538059535670880391220250301546811086559261556493373440783889284594"],["23175627225539879788633846418891950850828942433805395175889885768706419217923","2293518252796660021504563603804575508064014478548522907468395455021880554373"],["22648373190657044280938191970141963568551884441278221123311054043545006242643","3378236122598783801657149882284745078477526811617538962311005739598749933290"],["412549137040144773167751219422792370272018557713752204419913226042234940375","22268234251663182540238137601378043661510200081207219843148789431382390576671"],["7264712649585417443725827366759824286963273193531034881215307468118769888104","11455314871866201902312024445059999919997708902478266090386938231049261818164"],["26012105567683843022484360939325370869204471584960096962947493674136816397979","16249122252353045477834116980359722389610095517974041173102668466708295788820"],["16810161122502788859463060830669433742594856888872062881320592506086369505240","8331661270597260602551547481378327255559984293100108097825916120654821017815"],["26660322504011489992988772680707595165918145303065255950982714506901106910191","21980322777480740243283623779183388232641871480207867300836712286191770956062"],["5569366563108058031651186745452495382553499490840553425664297789885979703291","28288065154020462483215590314580445991512316154663979653744873024267346554527"],["27664821588289576470271326243204363940152595454230215193396479867365856165034","26112891208536992671319203850179633456473353517645288530038100760263548606816"],["20399839027177972113852031866210026859435746639804585840909111903958439588757","7571379196747230053506168569048238428987774996411298438464380808303085443954"],["24426726831428100456865459800732057714516628914645813333883459246437564405891","23288949430786303498530873538510847038919121898789669136528309008087118514360"],["27744988376181089390971276366782678729450989457762708704305781102075515504768","16326112578225368847681135897477895266260186170326452784726303362503292255249"],["4360375849145747536076495349961207946657044034776712194014265243578226383668","28379004656158974862304864106316933344176991493702206982727466272304803240284"],["20240520094192414396617267936292185247860268525078415913195701321040627939907","764261402285129737326731325009505946273124295434938133318477559367450194199"],["14109462195263959235241595649457598600636830781125120015272691667927167420918","4724347881098413538921947986552344014974728181875768466803556772445960986311"],["18635656865658128810543959968694101974010219768967694754354877617347602179117","470835573744630526270365647819788822024932118311484234585401252507823782334"],["28939972367151766179912489967041535026975675431799981039844799943411503748848","25490120794250135287488708197305262477836559560452077450758076805398797820388"],["14569742960936799579678244624964364163604616356749378231850491530230180783699","28477545484750470173099822471611080171967200114317326928664598235851647708155"],["13522634918446487844760896874332941559553583381498552283701633510568180304000","20242506089790542219223374178526703822960400651259438687641759356134958002575"],["10221774046183943296925571885879312310059381116444226768331282814615872756639","21559292940944984572151419158098710697166213680695231652657368423799372825293"],["663076592107062410711290945792118807554038861208509668653157912059920391868","24742259985301156959278359717850596460228123940433277698573724001549331912152"],["28100203133128699824593118752180173310159112980552745808422898593720647849359","7428934142553837108871290468239402084423390279982270142647145047417485565392"],["26297997370967952139662871896978576476059652040545395475040845843086630553029","17682765589538072679504717192689550009908441770735872504504902052255250262810"],["12848776516701903048930353574527446639498110371841996893766210911952982616599","8776972707481440458004387579832445948272675389446087457214754053425313303709"],["11397590306705103493813968417555686910773255211649174341643514886201253500941","16351958552678073523207363685011949534233263824898133436244783615932205116771"],["15499717446243799913815867380541526453652281664113049822769776196740864555077","25915526702124987792195356484797829729137418526244186870835895662641137563834"],["4473314470536265392679542246717461782759337126285005069336268276652745113387","66072724768506607963204305882828745227281146081479612725428397335255850879"],["22525207874575763179380355588145259414555908930825661250885892964711916706013","18133363301470921903259695545668539935571058293233735061813601836032454369253"],["266271592230185966744894486957143862766044072510874843243571625416635218933","24448718329682351663995346043438029003129367904619039588148058367588154055012"],["13801260523280579139173435778495065267056571438535667668044767129495406720993","19167684374098389984939738872549452921280037264047435970521030521416198774530"],["24369471525681338903265708436148113582847794818500929325451660974519175763123","10058935580536315393458923714229299726925981923715000859965452654068906305003"],["1472618751505436598976395193700376631405860542048415101526458756111244866517","18578053772331612317130044997096203287630218651940156071328463191551510613953"],["19981253852578271913670858983002101721577774667600852553646960538138503828878","8150910887111951804691146989245522385863942971892612006775796687844957798893"],["24975585835827483891504210378336886228578984292489687268105879733721983137247","8999029525011866265852804187250833171170426547377267487913012183846487312213"],["25607161919355128752781405352696175048643084539828901794162776536286032161065","5686090047387267476124773230823737124718308660458406197599467339554601083266"],["11621708530882342385437069735669751620072176743734712138305330209522305362979","24041826134817647641920232019842354513701386694587358173950087074354703328367"],["3949086566716277834417190318346496689734331878971061414951786061460005407108","26078141324583098061425552529012826707493595484320409743071798163597449885858"],["19531582343657735421540167180409947105087142393259086108711191351137088055475","5236020199838375187303146906485252217831241980544641375887727039173910200245"],["315980096874595750409177314283700127253218763232851657017312576924268567618","14030995722298603703222905201663745696659209053217978043805797956626924310647"],["13066694985416135691731752860840366247095782918897322431834702196320176111688","850496350172947620780271833735274331376361883346844359030538919261222035798"],["11974446393322261703654636725803724052083689642969554452095332976630377795994","19581803001135706792543993073053488503514196094506789739818460611453828504802"],["921384465878312922524898842119607195049229558896507010454773953492614525463","3578176076238892906563483205367996395088865936878032225611623496680204082716"],["12299006204537801889810914165608828777473271640862519395376077456943187372953","17706726674208009750856295677205341075443416485717171056523768144414443106295"],["21113900189693926436100030201428475442848904860888485664073987315854927146284","24333637956726226637858447241269806606602326816612026046405885512825010041327"],["8446061299459574631704554587991502439195174412907380587390984213362544550201","8545403488149245829523135832748829829348681542678480712959148815201491572638"],["9382828737709164910136541083954674596521841497592010094555013477719960963261","22393897912335280772608898560858296956676623780182329016316602709741006475733"],["6010013390784381730054020073935268063870463176283384743298621401034392812837","18475218233996482697900907020367324429040138238240013731922224335742949192294"],["10341416179447893841852856161702300894953407056640384268817962229870613116349","11674494449070777375832865083775291282677232939489724058653474907536621451332"],["9671799134714702163067121672997312481502740830356705394056461416982567483915","4323353822467323388992233891765987361067820278786946875494232868719658399965"],["2862810289408956491674817962055559003999005272586059863040380751622904459589","236937646081939105995717859084708775683786547239289087427298362588039503105"],["28786636277889869483541617839648764502253752121237849590920992495522669576169","22540510967267838387410292870794546463469500253159303421318392171082413153909"],["21895701436024890738032899951746509361918456024148259327304670074531574136360","11468401914490155463114891025866504880006864271000994302976408763118758906066"],["2666325881454032405709901959024334523994322648842604882042844741311968963876","16164401808135673923959134626552163717794592828518849398445113812087108209360"],["25482920628141845391347085046330875201014851168202494320278819205207225633876","24980343072698905583620864656371160919429913841111578767526335649581268505827"],["12253063594746932783653782053800300046826272830938590222440313739823814112720","4061462814873070372153258538265727029569732357349403199018212501037462197844"],["9334488134789870033610060603586205099703065045432142986814144590752520399464","10647698487755166255142670773821729451067209803602406951665827413114222019636"],["7612169661955958630962440868149162022703886716961633193097557853158109383046","16113647987089004231202193012935079823872034071411840150822939524971467126308"],["18067669223644940210252668843702728167887910525146594498712642000462148406357","7882595303303869889941953136921899152173037618677922516993790072490188180116"],["14547657413837786230750059848955580789695400303625169869293525634662838558693","6636906827536450214509239881485867623672245261402329948395902134142209145329"],["5850853016518551716124279674505126944764591970215749234879224639286309918790","14251209968101370573334111177326521290617771679667461572567679928537376715236"],["21069273237265437598705477653155351476318579920465194237886258973893592673337","2575871934439829344027232603703067710097026358380692370663775511646800012793"],["16311457071364651852251450409022573796837067010324603832227046001001814865213","1106589935312929746394061396555568603222938169995730953462247247134867624639"],["7920574823620962820830763899927996429788081352977443527913334873262941071523","7517195719068322063271052843437283369741820241245482977666147507015785715018"],["16484863709072738086943968900416693196155505254381366089997076593732443949629","11166883200831729692420070723184869007109972193115722598089649951457145349688"],["3210648610143524754149616974495123108076795849111121047663852916230082034812","13849150610473071832057207162090182464054957941154536767174172783171221725038"],["17987117902821534024914529913674922845016631264457492149157510226435162440100","19025542587839453316818181740117681376147082771108104538221464481148755569435"],["7881592181367828367547875029074996230734788810784703208867491473355104351002","20034062923833406990627066407511342127213339835471513835768487366301672127060"],["7251431361656341745652585640890059560076875641090967793968552823298825080041","24884192463420302432246917704412242162283061983836120949185743722975325947267"],["26671259804445944612218671553427428244513021514541281016417757199726136266051","10844924311991331944726818729529659571841911225891993257905653152481122225211"],["22231859791098385738612330590570063999624455157809508720757726098847451437725","4922722853542526525526108822622773373077548117808103167433080839166107491774"],["11830407284527891531320458370741648788295847117124913817204248821612135637490","20760339334176283572386379539128610554361953966518092983977127905944393587276"],["24515525760036381894761979598212730983407416667611777416080527110990118291782","5890692881085907086465365475673272565174045882915283728499033126501620509772"],["16059980321659198791518265988289682472608112712514835304670044277789313111149","14376516323343140257741265340311710943645362906017887413801525408187995550334"],["21690153873524244088248699530514557036203568638021099060838736505985293762307","26360011983643330323960628536057340490027255526944243966378093943325916397261"],["28623175911043332321333317429279027508632493965352888121228368510968829900445","15548005243999760402171023579752733540602776126996412191160172301785561263558"],["5074120519286000158622854880958160337213813573824782653501688015654710197788","14405095018070814119105882714084998418622501226769522916092557840519806547566"],["17444591731860497384696406969218511886606857406055217694013406854854652966946","17596527781377673787422862212021352738148506146406212659219308522361736201220"],["18107015182642249084888807352453747524330421784653804595759533484108999278179","5966449786920936915429639169539898790791362957743650885730559531246165171290"],["2488126555368913002342284068174271666701135999811119516886112068820207360448","23435086102817129640752887976769955867653043545981272374005679879143910081606"],["25902966980814445914327741412153231118275410749314404979047086921554621032234","3499158459130896587067168486348991741675112448548779065152773595575609381965"],["3290497908481717289553954362053232972612820645512167018235434458167662330371","26675750692385451574736864441883975428642052050709346788626665978451612961983"],["4165323925139194802130142401460067008233974317740717650827383577438570889808","26249197124182092612190381220401065223882166939408030552155023294266407291918"],["25199551813070205152773711939559224749071547080263751054312949045660454821509","19837079965913530481780206542188755779031108871823245965707906506351643797783"],["26980608582590709691864527377543521016921976991889485078216559222680765451250","22857715565363006208415265985221604081870131603484359361491954549679148255728"],["22414082774476681324762718023658295567664536453735138568403932555801793476183","23228378881556756492443738164217556445475698516768331404126268497675170488260"],["4989735045206375707996436856879813850121819706778393657194275045066163393726","1457789867406523948456023012800630001721026259766781632807351604849896036091"],["4259031743621540925009418781418705512239440041149488357211214504025774951804","21096088900402784734051470545713466682192079405166978962422443036031270326320"],["24089849326871129949620616113580995822819264987667899809056608711472230067927","20064140955041270102583828943867181834989935256034747473645734971016033786647"],["24887377660213919838392029093983135417300462471398229509882086586225100106857","23427768183781799458146107415743284663041107559623382669850761968643137444650"],["22836735168010125852013878917430236348223057272918696884621930440270197274392","38342343921665045253517596680910142989187320710779546623442292380080450352"],["1778512698821072983053376802775352454243775582914914063531647144000487926185","24294204741622856544279637446631198968410600074247758140657937411040907077386"],["12120729008891752977592260378734147281032852133196457763139408068044189950792","18185485808203494165402395573991712047536764444178457898807863696094304165624"],["20410909574267332419629934417973594795891572044861178927470376358470997044425","15424636137540074545762377032873302699891801426478363987566947972490217062429"],["13786324917378216779765753283187714890317286850288100541969896008504095646452","27872895273207462723618460492142261234213670474235335838534885146286396117839"],["27079553057240179037446795538336665882795352769552795450248630452196242222488","26448539754883727210135610118328348678231481754887266796498211220462329687493"],["23936195403193763674567957518064155088451564513477031423670408374804611414790","2570243556909471121209845506800821914537823674323948581344743857084349514787"],["28678766929531578469272334106444806585412615257653750965119331831305907854297","14613413116733781539436610423871353597980756405558775937124018992040189778481"],["1612906385551526251862618372799301595944570372000158134916792535915835511854","21795387119914915748343141105514627331859125218992952748060323766328445053573"],["28753180619811150661165934832558318431590562318175437722105634360860249663452","24600355786415204877636505260788751065522668791478655723196241685371653809792"],["19139758083134277307577126186408000636345477810889053127275260183182530944393","17431447112894692226811518111478255735224779903677204865636757113078179074407"],["21015295550199043386138489097607566831847820694636205411210966988217401749202","27582752974586610040344924327162070929236709111634061595050093533995421061404"],["9013878951351183943990503083514223806037040947271716083677357143383777208159","6381251850072150445285943527548122777263236578260120199783199646838450880564"],["142307886737634253083801058977886983585697846819603740925408023022208340201","14236600150670647740243663714953687281519388732228852889368124362705734606670"],["24769379114780921043525509480571937716248127186031975687469784496158701039418","3451586050759234869127476594694329812994598728607082058731456327381636204161"],["4761866502513947032050810414360564917612860949458135290120045892560751576458","1043831673063920228404990133510744550100399470387338480226788991448295085881"],["202643900722649441515080757232996998027683568629884002164677777837156271098","18433943926788650881880800966035165676171491539282254722192077120564099559637"],["14948942924159187413705165091239130916805291957756578451296187369251860588105","6250352010697926577468029640542190805790936094139075924442135641905442958006"],["19514169201162774158754759310241761759615485132020054008366003226912090045388","5738981096543344766185060701834190396279637235743024888588848046727756876438"],["15248573868768823683708393957618343402307198224663219314408489339479666489670","16337563449879037665039606512860861199933479456945993574551564203472371155792"],["19750149084411256447546424661666038407475062055498030859391406765845709469596","2823109415022445226107255304749527495719275043171657889846637742571216518271"],["13211889948732873708924568421957993332520197668107444335295728847997454866919","10013264087754477043916129863968593743041040965213423230577771810412171815041"],["10251174229396674659573684696226711140103729847127577094954803637367543009097","17721946983770171663549025534602580996095356442114376335633583917915361268988"],["8664757010996288047249956795976258490288118660307471064323079817497543299168","23449316452033293745581386648987900229693142590325385548541226901757881014915"],["15015661545784722060706783041413573805619037659198344661032290115061805205940","3704223935602013468483693108036381621682480818342411846187995842193314952511"],["11847970192345216187298255192190711443386122747129629824138348625863645066500","7404251102521813531969274358284039090449595363046520782555769191459359133572"],["14754649070184009935587932523498882153397698095482145377332009575331198254363","7222505936027616983566452803153238811720829867235186599317326562033880840556"],["7419027378365793605783435075133287553623353880387385249974209081166788208327","4138816578541777673446915925346945514204923529093490695265639067533449766633"],["3275761703293688822088280548979374723210693634281173885527729869190958588196","17350895767634120818156599681480904481516978852373859559310367878003383303472"],["12166676374560406343045292640834174316765038554581980188472197094049863939357","16044666822636173360601220174231143403156526214391528141199648944049022380204"],["3991495039896495862611761321418799559875211649562862542486617908349510163284","4213669821485603947660414432355810286441384028253014463880119874436815295026"],["11992490540685168941552792437636424958284616863363519249565580896956008605876","5271820634904749855914795673057778203683460885537166049923469457786750074672"],["4600134602615803971799027115384530054052794831057149401563468623144531514301","28163744574167527568262081042047018230687408378385883439040351319246910391462"],["9250019038124970061380267830168530689403833767722821194941805915968889555949","4656646218097364811592509703543710028233522060571506689049949508686059024890"],["25071123397933218453261541802950427975187280965713778859571010521999057335540","11617112814584839413786815565125206749354157086609988127463568815947128359049"],["2089274175255056044638312420547236135566536381093015230942095313378070963135","11317147396157982909930358059009623748519706586799941570946733906421584588820"],["14386417446929830819493152331248264843945273630238332505492659490830756241037","1394822679590043401179421490837401559731027566674115605942901195073616772658"],["10659071285584962718262180796909470240456233206299661129183909361653630966783","8210696046150556209168205285329195480310877206291646492333936334688716679363"],["1975946615854363705186769729356861866140954741048921444536669345955987779012","20593207297738385507590724487995217041887570918259228951118287018660079267757"],["28421989045663975693124267250057591880270093232023436082013563509416814234423","9996119688782370626742996084580392855421837570820835335140718508411987345417"],["388874607639855381365391355863918375301741117854085976055190957990948330498","13360638708805302594575105209952230691597748311920849866813346934155755524896"],["19636046215147066938545470181975588117390226589464571023921584004918517864452","19240684607705221458856596963838253135723964451862514952226542627337488221785"],["17361762868276013149641094730271672103831007165577702265139150398941789274814","4119721880941736198171763879396870949370624669668240772789666213406623299698"],["19649934278962436663047228969988299244094218239321142624106017862621158301386","4512838669967832139648095468539975608705339731680230819612392937305371228746"],["13434499573641620544201577925001829035738731769929469431186092877050126207272","7174391728871438121299537799796432793635280774463565253156420920866200177563"],["1578724042640179640419442272096683641768242721575280176967535062304905078454","19413019819497439048578722992061721273255975962850443498806653222439791951476"],["896822748113457798182284541849282205819311154318205293450535381964149653166","20110687222921481826823843067315905465158152185894201846860148295852654353022"],["9818901984633606471697305173296270791920506538823029823902438167208802692288","2711095057555088349839081792573902148954181308690575721450494825970076450234"],["15571725984173450526378434421670455964128823088785967986709718535101279247738","11264522794999628333915294830629911408629852255636820894389324942242578605429"],["1467230443673913986202649294478639345710801614334575715972452087330567055594","21215913207058663147058364197236959768130860688536892001027456985199695196052"],["25639670033228214899027856204820677378033399411738791549086895370522229531362","24685286104057396426152663064271589354556720921251078684381785890580480793915"],["21204935609645303115199583361241037482981587988199122876316809506136894706067","26393773434367101666405721728933553127472298173917327494954720799505593757386"],["23921550786644904681451955141351580662432898593535464088483344021653267818035","16069509382510832716705927484297946063772159907025075717842707928903123304501"],["21593998477805156749903744107031289240343520139483001894284627566729031865486","12832276101272699103512899769058952663862976616558634509314916844790306708082"],["11202350297181237206394839460709845758075496806254439529638038700581998091546","5016597942094740135868602606483594801836489111677562280261712474433240934445"],["16748955620574843881814451116733550312259691752227027632486774040394225442852","14278708257350724157583996899428294964304297577756382057144825204859993364268"],["5847764863636450569124300104086147993694031264104212182450465198708786207972","28834329603943067174153166689558414252168792287581856853450543129352921813780"],["8258982938765100400769225340449755749711487954795308887643239116201923402283","7777071663821557235562214338530162644643011569500894022505727673344362298247"],["28014319924197001232345604161446946346931674246737112636987202735068130431633","11376648236755551932608472609066061467138400758817716408813846179056937504894"],["20155759613059470591891059938219120630420523876304811026080723761901459452740","25139914181220423196164143160675641059144464843919892071042417969500428257131"],["12508594378434319954969386257065564906462989773148206101258288625241177266524","2299137881797095808641061149683582410835070200088091392710624923985777508453"],["19043447472885542537922395573189103860606786842798489700221964354667293808555","7713749386750959897343908620434745121281783501224920251007041888888057330270"],["10936976204058812460432023275204616352754670168185482766430333488201418507290","27008683657516406336561034673150921121458357794090269260626206340935173983946"],["25742621158330733062649132669863741449845012487069836341779930719734187234185","14821381360567740384673743690306472281630237205894540385356520654206092718046"],["17049062168602885915991181176682199595443221639377056213706494140753214566841","21556877968646797622299343263946625637081060924720140622875727462495074742742"],["5165884146453274141122293848710786317023832292947115334793210204242346437519","13486637203649721194119430242050568485079428183619735297563111504934596956321"],["12270661276736650248298761398994246119051623822028966630019953322087205681775","7314392222599379822032953997925257286608601659973792279325236271980396226460"],["26551652456953192618915900679171287639685113101089894522627363828095770005504","2896367923075401021679375317280293570320852760791517861338270642633528395813"],["5785700076615611550671728348928949345325272970130794265593525687955718453598","12822611277688072170458526558422304684893284620825864115360630089218923655716"],["18257519005325790908552332360868354601498253005913318367813523764326301553448","55581049988636056912485256137319393815850707881225761520888148272140321431"],["23914405730197577176327848464901101028645724323477002656689122032031507810928","28581248143471322022623788605563239024719268171772580110364549543156685232031"],["3556613695437351761076854778913578257447757769201238055760810003946534466261","18319697340201302189650195725361751727356332640222965757387011332446803699278"],["2954849454910151504954131691081733754356139650473781091833114066844103097010","13543015057724876247578554646781665433363469029705779715122084627290508038568"],["3782888033904273880451204303645217246231831934885377358230268259496873750881","26187385302725531899373908696805006564504469446603476879180403457730348734667"],["19219800905057140133250096450029667965402521945362214921922101635764077777963","23270738553356415810381736283311090685146706433796315431581551682017435086136"],["26917452380184411084548396532815305273794546541143342095392184986302269403731","19221654022945760008809115402374946775404163472434707041137989868588800755182"],["19302184733777437449491436196548742096319287019787300329883004735408398358068","7098683189337912237354000723206067856043331052860407486228535104359566636194"],["9322972426383173412644373439760794151607163988191566629027745344598875779353","25030383124816583467994302768373228350467429741870156715598938789740598192801"],["10202622227428227991682941183123257143123955574545424447262829910473004162341","19015883991760787050998677309634761475134870415675224194676938440997847239945"],["12708615556956968531232690057652869512658918073996972427051839792272824491222","15054188459105265758142297175083630475885530971370482588988000988425885504175"],["9614329227339131755893382137736100435096411569534140469129927592799584248402","24773526094579680358529995743209358906418629632706202994961604270714693688434"],["15276775262394542279148897742941735515318276408106015648045091091078128714059","16509813207044478265865312739738765179773451998310697979144518796332526972023"],["12256026834423598242073440420439991247713981900465167325585424197536596750540","20356995529356408030089555452744003308226147064383379072669605999462079099952"],["21448751057054450519954786611650674769840732632338367219204642509537040413782","18925096111122902208417554123880091004553750680652161558729659248662379979194"],["19852940862804967188906805469484366306179239685438654697887574706243477083630","699860136013172357212417644882913402589936086340855149714029365462827268074"],["25094304051732983493108162790268110634218370257837961620553571337792638783779","17593746483203815246983602661046587316860427992832613169147501513348021206547"],["3229499982868779756967779447129832442327859067583186288331809209782685567998","17925281935094813925320041859253090572653422459897506388693330167516410303"],["2575660509681954755012825508065768814619793771926182602015802410986695265937","14014430001196685695192177034894507538195185956278168980467981419738181279678"],["9240286634074698132242409799802724025041508866518717947420687860203487906096","26442470081495602146994999214915440659143075858045080870152845296691950895169"],["9593505514034742250648414842366109457484239645701520470933906637088800183518","12641218712562581476903927130681483017631667931092781725960209024200974689843"],["28743012431146929022296312708270298874442617133149896948680691379602529665189","16075928758804905675453940848795588633371329383924318808337597967619505623674"],["2082434987881113793517641877910563591148975842571036849820809340142860729949","3418844782967791141320395507634027816697901951580760425762487122216932479248"],["1398932573298600681502453104922326557383278537672662696664923854260334100440","5048507319345749870060626240150898604676793997295220435386794087867609736853"],["13701967457941681341902403595901398028848053131952815318147014997988343089856","27816042486509933000781865630148800765288698975686759042024037431439737706891"],["2233223050979185468582722850130564435088562665998412701972809715994881702746","2288630756314089590316618305985325056177466280806514509002338980081613267745"],["26487114217424129553083213279007429298519357036297538931949926873754485860733","22433675465392460643409296968557579815020131391462771931178466462187031113095"],["18924051939178748311303308293729977591728884982659229110805573963619168707930","1335464588080466257027775961741094682694332595828504593278094316715463938287"],["26399584775618763639836838866927437087146591397054536140858078799485110189733","2232232795723203488170758611594841987682027734662255632230809316825322630702"],["2829891415499347394042747970391470538832722943073057518752689812927327654215","21770095107635422789180240733087859217113338542505571789703314627628727650847"],["20895692902753667323506532614602338107494887476572269773129760764148555060430","5699953393912300699226253774260049340799280238753328775086130365821493252113"],["7279948012622300490675589009388018216734410024529278948487272738620455449539","12103088413383376146518550682409421138069378987909963546244134617280723453134"],["18261586569248048766137740684343766996373493413723696717804520750722320864090","24091467602694320085282861070590301581921906744664490276902888369254162744284"],["8013689447814263318411930586486741879586676574757438877886633451223327074256","22396720523862212751918100980253557142254257069147926383270426037887062570755"],["4989923627063090963626053465487416271952993749803850363108838291430531017261","27340777590057227218958360935339429914595128770693645377707013135331840849278"],["17183059232302123344419077185552192758936964847452042955044327882107724563463","18345794795187484288108605406609151495295327399408893604600185414687470647969"],["3719805045001813638519527287139244874534041747617735821890920897118512676765","24321557352945929336014536559178728354588789095439382493250666307392478938429"],["16511810920425231705643398628508820577150250777993598651211201032640987492687","20518133729500502247066531094431089863788452814592528093138212097800538487979"],["8723304612423801388052359123005876785953491667975491795666226094225519266513","15488146829907361210615537023493287528764548271981179600907586174984264638911"],["10550283703090949506293071305577920453636927934747534979898451023380852247796","25005953880922202528261042929826323171055795786840283029067417892010166310369"],["1147392590733404776548437024729952219274874211451658640505568530081682980727","25375489055029625694108332451289144060502525185549102087666764607324505274761"],["3318833862082676718514290405603926031526110917823354959950170084642954733216","10599594604339126096983683653078795049389483546800162405470983399953696555460"],["16901850254320339384199155341955768505561392258692941954156519013203971292492","25598645305800596723362837439146918917643884208037887777329556873833984565073"],["25527986965904388848210044602824403591818946350891178375070654628057193100771","3942254018799181524684009126839284030844973418040172983045549665127045946320"],["10240830338854511647751144163108633274837581167409554103231438819169829833955","2467651102082436682350463917017238892371472802973216994501068142096045772309"],["1206033265333897248187300335780851080794598324035622453365347682030675415003","7072144620292638507995797502741516921403630117962011072414193390076581456844"],["27849494950960503183010671802488335571444170112230670860752007740984433933270","25918961183190669904272673289709910104486158210166126619196285950900416216513"],["15045786776814019678877345870445779541250946103899504007114188140466622785704","28287514640072713405643371921426785512074455536390983932682374475088835396494"],["5379993171709830380673819863029302637150444180105525299478353847690832501283","28210777434519676415685009374797226742173119705254542214635224687478593839688"],["1819054534291085037068288058940981254023984445950386060200823813104643848429","18144924754245227475748192665033965415210843356715277273223648025800895569311"],["26683909818381580638203199151174438560855850198770225187866620908078535002043","7602648652702215708079138163603429408491198096155725409777059491993317413239"],["18401706024012362275964003489874124072642591653330981481686906507122858641739","867624260047698509244210143007228888592745091983066933091438396844825467751"],["28372970364171478583025334530712051145303992674259080858220188300931335896730","13849861156282674056857488058519822382018484172786353248665207492823189733007"],["18422704607797289274526943841507658854221663605937660916619711045813469815846","25962677767141180976164337312758967303191434800122282565786278884727149258467"],["11314033772724130715140292620037242920152159577614071200014444852543888234279","17514350712871629724259119921217610361034740865476721022069176369287456269253"],["13732763935927747291454285973222195081829660992949660611780357955217256588488","28045164010105489605524043072963731970154993524894158150364464831405228460205"],["11650395618345565767498680295843406350409560820008522320444627932734219338392","24808589292521382600786269866546167101860720477484366565847691159616195441212"],["12985457484426868522916174442189787075219978861584464303534473266758635591893","20743561825829290335656783874657966710350697268718550163771371432877919227456"],["26124541332847141999749939963043897659360679637136123955146930019228894066234","14187720287112078713831316425374623616662266909139502803545759278515610213956"],["16106309433629111060865401906212424927038651555708111382518374404756567881962","19585670653064174538128410949654024545310088442064078429062257543853462755346"],["27134478764698764165092318267574481435236872431792363262537675583909755322839","19721164121734301942291320635650929979362045976094684875368311507413315791700"],["8772997100260975080770749219262441624702775587106070530757073339766359735726","11075726710507931464792366686427277834019689549615287790645921105728171808191"],["10490988382927966218859546516787293299060876299771851399352423999974347429777","22228714480395755727236119450471544369314915784869704173881923198390212636779"],["3343783123008373493119392787928721790906556906371287077156517985374511198779","16456163685530542156563092358874205391586826854834879630869989956647752237354"],["5243628339840728658879345094953186389775738024721147198210766610090380947196","4959137217196083017495261383463792310387201159337295257207376400424274780389"],["6838395589923372861245236649395397120293580083031371043381664438048471711755","19324670018717655640702356947675173792051163100704111117834167201688211990077"],["14210050001008397963709612944388689903752157083979327135840052098443929133049","2966691595052876905630360129354111192795170938306848546264786045872669058411"],["23368025433138925853606461329070794226104535888081014130400312768707977346034","27344349715034349401873723481586333883141431790306519347442343912279367855150"],["23537486365557944095250597195249416565809291681178473233190644101083959308632","8267734348429898966686804347412056715499070472394338285561128558092719321302"],["20308946692084680017655125548135527101743759438286996328728923617330465253183","19695174036062081521321079196791327453161309243926587515242220350438438256487"],["9629676311862801077014268236594964465452459060089285301175135062221979508107","14814553522644138852587191383672440447110080616522443583189361115220526582614"],["15654609961946650102176051147752672994680676417923150389395312366765433265419","11717371620304128214820753238080001207508455128197516486957127931708124486551"],["25256934197513819874156466458721172243620269357525260529391643272211827480691","18243873384804831885926694575971871620258098059493826675886020992257477319390"],["1161306466271227291095716235209809915044974264093206394737617291682055587791","5830522311035663800778305382494526911607717272040924596581124279701224793841"],["18457765607258589526789608686958921288678561568596959618723983765251402621476","17834921562961839067280732160978400010708342930681898149849566348174844209835"],["24057913588588397140269841821802555040795735761816919830940923871363934428256","755904275663862823080442622272945167036941693649621177417769564017018619499"],["18838965154287352380131209584611695375823253649701562267994982011144509566053","21085972353459893732721338061448896524847894540306440119253916882233238947972"],["627749605257608729115190653804844090491895473900778403387756876405332650782","27183823908793702474393559076432073597128868840927756898263755956897367188281"],["17102070315821803467780162842963879467476321741385794057633977694512586154578","2050269492941921375121789852961169098740422294136034890712376018868292970264"],["10310704995735736880681531784962894749944126658117189791090520788191760124414","2606490551467156695125608010434075622648987610825012897100369046697304130922"],["25586273515765179489467689040457290488234622618687256682580192453617243344328","20130803045204811937951674783676128293525459275556655352734635849648842050687"],["3702175790794788301812575647711937535503973186593848040949654815705287386383","24015842554893487849059292687576109155431313474082542624156150620698997340451"],["28644813398173184176686526375861750861796525497808097986083785061579129648232","15204436818272636821170640945942402967374360728199824362313293285586383616554"],["7940522983768994623276034823230180870182282788815329937348128364953896513352","21180590454941525141240683203531338473118158588699885835178529344954100843973"],["25601871397296646082024962988276634888693240810108243417783675004223687736616","28285207212791595346525074667169468090785826128787985118263742208978107629745"],["10078138006532344807680173842491679383102005811478894082259726954273497635036","1835830578833075894054134590266873216178941445619537365789756739274925085617"],["9678604698451085611861833425258828354921456701201678969221411990793056572861","1468740230359529760391491293196477726299499061584362192826315306840125466686"],["24487727776889711042565708211696970559136400223327063940656351827903873918066","8965073935371592801889748200175259329592258104017719433426596670503042234418"],["3337359139603820550701346336746861492524470162067984873808223935686123167378","20524619875194518683438396777512827737326401832853051204313582278765445733689"],["26652972369671028722102880649120987638148095977890121567459287179490987528393","28332352027592270359801831603594042758210218221862396375807844899986089075831"],["23367507685245134033410745336617155743440158872230879039606607228559689998774","10739460630588234388414847271836795441069812766591941473617366221220592329855"],["6360167070967330288300044610703009620137844188367701586712827198002736466193","24608769970240475567644806114527204461850709700067455205213788442421290500492"],["28771695307907912572716191393771580233727781297421966767515262475389157293012","9208733417255673459901285743308535394202452127923240706813724643681123440425"],["5688753768095785794022979002135473195153205981333782594226309540593313466426","8789394545179426581270888226792464130123897897111459564330243166535898032165"],["2854811365018182441301641036143217874498273280214437113358305043488935032988","25608479872810851396032112756166628226466757965841605418471271119247331346746"],["25856690936893054739431624763764593470152330242696605396303493211839397458976","28421425217498265020387819195694532587248073077734097960967161863245609588345"],["26266591747646785945935438068792856005054587896161671103272468299215435488917","28244663409482529166410826196135180640689990072474360850810617807224842271092"],["28751655652120943503742260404819381471498710619385504360435423477518976756336","10611981701082532318595702514394511696077608641930777394666139386063054773404"],["8515898921318246260704406515793159687991480191292756747135824518977651646530","22037689279007334732957180603988345007979850543372676147523222115598520785324"],["6619215633623425400061693850455069929931109841411445015112543045838472728386","5836739709365988393182457818858886617191013788080404948137500870250086286425"],["14212906066939206926306281510171676042527775098466632936513652472505828998256","12444808088808921461098028210793643468315947079209778943199524600163464672533"],["14517694131070267242935701691655943994877167063334227333765992709362169008327","900797983914233722865731323444259865463601468315885719000719419924209423871"],["19049349577985341639647200565528187402339136048013974760299839610649627130236","19114730090854594488569644173610625605528106845400970176099069323767968617811"],["11853132253110659675317774119536136240329859041517867145739722071861064327629","9065712300057526754924979866331604297578107874533902502200327350220504489495"],["14155982187990332897695930194115913756191580008601578434741429796155661200603","12263346375097936537200369621832203444038103530107803793813856542663095497500"],["26422138328199667394830078904682745903680526752689663706200755074678172863960","9806328815903304113519113157133916678837767446760804311303854024684351760239"],["13380406652356203718366292155022806900073442811203673599076582166737721363023","10765952836485035942830897196937260033346232898192636746667703009600024924331"],["5685257107015750960557806988589695386774059334700302707675590915073058376126","5432232499359843069833996354757030204198980318352126599533867719984579704514"],["27784091453619010738414442697525600022628924081817784785547040240985348441483","22187686326037006923877475198276270778765749799890629997964765765374137541407"],["9670623517592685245388199553873638689443042084391666719149130421885241643830","2275899896608426717657316559245432631201287497552180255137787387330608800610"],["4415518649446627966391118727439518180919986675807825621100899502564159804399","16052353781022545239100313934726980316310560460343543636025720690681737176782"],["26453496758003615843504818493521605637375238137965873235198674118383378793441","18624138227850236641208615798448572370302953176472691969500021389110393700788"],["16705242347699477860169462065054323375237034618083737775500203859633734007902","37786354343344235836769208042539903398940437611936530115559904738605507746"],["14791869811279269981008050879295477565907650301703837274618484976174450843747","12540276447184863642993098525068817786858082092104105241530379839334781921243"],["682281671958191090739766319627491572502996761393107642971757198355595192465","13900521204985745287859835869444970316371604281664107669413265334401939025110"],["3473415013925053082360751391141451503006218819295304749698853790659113352831","1481914255245568789155297160505453877276570676987703435651620526461378526601"],["21980083094028832677656179328522647695313159855337392355432951174926174578210","16518919417087068912018246598086609882993461244129643563397988061204593468362"],["3569495946718272449427242862927286574998569609141071075217110574262641469185","7914401651953417301547462629050909592723288909070310983269965833625187072992"],["21724415106531612743215765281259908998623401824120604159388912567856209113028","25204207204139774750891481150133110875041684582782042953812958809886306406694"],["14475935409561317791536025982291528528916517625497869311510123011031532253135","13631606393070834551741877228534843714670743546445129635491416570070671274385"],["13944947923923677953394287518929789820681543126334788025075409241319670107208","14982297582605393329445420627518863320193911639252714797214727344202570675673"],["13161464412789726806166400651690463326182763283608191710468732270842533081287","2629040967385397716341123762104702872248260283023649110432387038179419143100"],["10450977053658168047338115717975343612012129584835785428883043310408314465747","20491378139983623049120760948501643945072274169791026327892859009980342024337"],["10338857992458795939667055619392559051997798821477016413996381668747547084782","4338332911459452840214530234058727610455264215932930369023210888358564702299"],["21698162971009859286478945773651895531674705443020198425532988721330974912449","17095183515545344525171232915180264717852391244442207812642654352638092177545"],["20082923250158563563011110746653990073840814434889249673605490660079063958119","19073480895186362065920754194467472411181865448020094923764863711475797853554"],["27831064950056078271295780127749382973088213535471883212179941354706580737682","26024600082977588080534173431436947500608652892269336917012347054696241873723"],["18640854745822514633804818336537330187197508459752453765534650368267147918139","25056198744523796909551034598162909719442817233367591294651833297372081624425"],["18200288656503060019340433100416836744459418767180194801253214025437896533061","5925547253222518124950054606752785771686337614993510274977432419274740965782"],["11893021195965487521677139962202008468712217621525051357993854810834866552875","28452069752546576940401627635581147795997089018170295830201407704968131074030"],["15117625895311960596935257958572972498049394311931941648819127328580749452688","3322706910528466740983344922873497998953715782443130646513116661560881105408"],["25591392209077978764230923052081308673161233649700457710370213863999386093132","4197553695301508399430817925080541354459042899490395061659481891050252228410"],["19319744832428876455643585627875662645399850673291893696581738946893054142837","2571355115971186018155553377307619703333965920544589670850410457938024826839"],["12169748277434000674122091134577923780464681089079689758202629808364181011065","1269408438671949203728247885726035258260250253698822158268102601831810725420"],["22229750071093056622378208097724409536784963801888356524275868857726223599305","25276772491373762761610569690984912118170047888733568533362100401071554893746"],["12203305876032369422183805423873462366260422035301142496965322493039845518145","21520441559660876457310371279209958113027865566650315658700022005527729018150"],["11554824161678586486565020903278367072428371241030360733639673024790684445757","7627311042546313185978973341968775501921414355713949371654353377383885006471"],["97447029054317535641760650602234937931974218828435026595825022532626519975","13806357723313054871088363627233943983374223501805183468944244735147405850949"],["26377739569717284378583886190476484672536192185740203686431167002234344738363","28457737201745333441636641785498080236167613448231485822169989309325431499353"],["5859690393102201208763175374719263048915967233380480574982060668528466199692","27700676640519909832006354483454555177214509266264114558937244804682799769219"],["3814385800674330580220086689871538260834300162967632954940224819939029168876","2959584350710054464418410427451787555067991846014001494413917879692192390245"],["7998949549247978230921539170828198671760569995183191609739357287757009886865","2947196564267889688495514437300535514249472390047482028131347989775951960685"],["6971330865566636703550605690959118545624075582187832575459075922935597374636","11020738626411127291194251255480240621574347058522563077407665498175848472415"],["14643658278021170723987998617430149249576347902422011841073931086866640400419","16470163945954954158872264742339788054554415827594460066649601951122663875794"],["26374012307369520040522084625321566649843680200343794530519180849101129110257","18985487416656122513596165114668874337512974208681787911789577090651311432816"],["2479291677764390408989547956529810833581413342987162637969607975571071552820","19738904644203683584944419016815874953500023593773585200510835393206519835798"],["6265084313755864917118935101556524346100981347076998739847973626628351240352","1155559990973050040788121161981835474228515517261339213513565335058151816132"],["14200310925493911045242296005853167067332837298971176100469990820130950373158","16824792819804906810155520776629046650388835107364782245871927187289870498868"],["14206325485554828051795227405659696146271344002562350469131013948346391615785","1654763761197186420930515040312703546895612336916038459777217654786443330402"],["28292044470342937017551764859299756237092793017637010938889316446714401761643","7278867599077437449588720542498207875670006670337743942418085612914087743741"],["14400295803704524107225100901428603848729517367440915710123930322573496460778","10595120329633122548362643837096811924270930692346708562927991499688339231648"],["15870970740867198624495373623588091372273930965597977351222910168960301650214","20021099727270378002809357431538850783876624365461197300685828361058247613985"],["14109908479670474318785415782477547178615078318606817170210019577014115638692","11709884822076843023796305753233334980176679964005744575125863022707082511658"],["7721434659684419263331597539983574285727419673778465109091537676782029798279","26922765969815874410162020700526024502137600068929215524736756189076041954389"],["26282684338876256756373271066272604377384958956451261561212200171614205692283","24091868726692105817518890786170908340288253157657916734901060786857597161668"],["9957401563520747722050142164322427183592978234931878070499253976180060694174","26538887460290440015124999417167931957580876349781978956203639825544432379921"],["26376186185588121309458660735564882012098401970122023054093322586455243379006","2928073496852386262761334589892027324331853860770254671315480895432196354952"],["27584443435346712782936341388999012805204739860652125671836467717409956479699","18374868028460147535322598646420870467053138823119373626830811674312805350760"],["6978184703002639472414170696571463639281571246197844877346411281274941757683","17040998176519622048580268141108696311987828792656490154122531196347564094"],["27565994625759210168847420929776057839893232149874533937442208185566659892384","10032514275725488172913217539523387450875927839512232347389758077282349799457"],["26899381674857135766953503909238577725010693503002991081148240414206601067294","23382890466190845278533911432253865504605958484631941303278379842818089622012"],["11723806938451983315155745306125997055854368376357732331131531138626178435463","9115047439861574238090325355190870856993662273487046220590426435187198312428"],["23681557370989822349016236665426331234493567692572549700969115005525900833894","21818871697461249679791046258404172410879301433219938331185092254395019118364"],["23493794574057846124158819660503603654205417398595699115332302865592021138646","26256338293598037311233984787642236967243409045982309244361908768462830875163"],["26896557365139141579965295898307239936572577510237590681114517340781775201031","6343366331154331968666589738548656439476306275894440294539896725017057041797"],["6241383745804547216471583700381270004714183373307231254884644080677534897601","16995489866060373065547346896357795980064549960113637721531960279622322780928"],["1786104947361582968994847011323871890290311186872822380243015491407240805684","10084018133893251582939661651664550634660632065745485181015545950216966302166"],["16702000122015799662906301198508098336492924526536852190480244997187634989037","14709902111286540029220334079470696497481008053097381511847483534049912968158"],["1048974069573050042560049398457231128441473884447553900744129975600646672507","5461103518102845368821811965159841255122629702591915714828152271866434763892"],["13552276224001091535140940144948662003646679668329444262062125088572312406893","13398680919374001863604985860625281478020023288606745067919193001284534363760"],["22168432964255825652936504583949714646789560045035263618806769218196843025830","15479893617358570359518890685729302889990635773445875156707184037912956209905"],["19911412126537435359625733760060982255866805417850914498762280384726382743765","23370327426548167837853772891929407911070731083171844689086750643526023324330"],["23152453960310703603503806442291743232307555447435479691681229437422518141683","28115646384667472220628331279756151331844616698592787554623052795467811662856"],["21924526144462680227948165459128090416998946446416204204658177668239578393254","9037342912205685452691517374771508433162677870979735527015101743157626076392"],["13231591165793950006444900794650392626596475780868771694706925328309596164125","25438349763678368803640295348645546175712702483986612778720445485603270278608"],["7516198208798864641597972762809465204664928245533364263330728337720558235777","19681517910243518788449027675840997904925143672954458856725161715187851038563"],["15266358841121545294020391807078374477826558615855348152795245816793749138489","3658598576727082110724167710351420625084060640463277373585032783877270750799"],["12648653028559766471654511481259897718753784416019843811728431634516590269237","19382337203115138945768056725676110545190091755739776263231760475012146225826"],["5066272700482188847404861211085358965095873215261601986575398321523671390668","8054161224620530338480615917805178708760342322650146098216943589214604385153"],["25913743947929210161589133942938218267908873617968628154941105262481108389097","9426249943080350798391089127767763397281425713331401956572382460703794081764"],["6415956980864232151725598303617344615375313551937526287809432496269932001692","4943815788335186417657529798203903651861884114492209273732394267438077442095"],["19637124852647308128340099645135452717459954963302736296966893396789118061878","6969829337666406075573634815050188430388531668807612850365724265539570199324"],["24137578108309463130465791621077046906331344179711765788804509349976525619995","6883176961099234462469764223156924639590588794371284529950290435591284756991"],["19820517717069639927222704340129567239907953239834663006708962845548467892033","12787690992991105831841280972820733293322314063050634894506075644191036274736"],["21991812834135363704012260363952419345796736955617056604834070492810935345342","19629046275387853062972050517897384228987576336725543434883823572587323483361"],["2620915395723684066365811042072391901170231862495531906219133267870431345108","15697935529993876384975063009781803456908273477359142266477261413807704067134"],["22415897742513836377440616324351900617950964730277975894574245810246413001714","23627953742595374258697675992953753399576389061790447182004605815177563148293"],["4534943308895339144619322097738359849533730156405679717431406614088555080791","14222438132012679552335621217950767729464861624751650231711514825984888299181"],["21724872463753515719218371880319083923935376391050925459442372774232108281484","20798972638233115970416841803422479451398622002716900213896653823569425644640"],["5484110038635117721513451992330602932975076485187495353814691192846236250404","6519751477846510629228726389955171657541593518907665667778461213006267141859"],["20839612736830970440928837751388532038320879062886008609169723680216833251786","21538981192649496180300006112803415201145362026331370292319899738612698054033"],["24679766508890481249417488754165214985437450403323691938682833566025413985732","19947196579807945328059712543738033791895240648920681242690372021781350286878"],["23512306337320037421969151388727175349809582709237736303096882624483399400879","15193445273836453312192467138981245664050955607439650591005016823579443405110"],["20231294715025536637484623814821592048767405944417369228805121294590236025614","27289850426586960019707916566198186239656429107138971496424108311363036706751"],["24177358547954713970890389449386218097045031724968157966458568433178317762758","28377141479725944309358196980310575818216901631549430443244853630941166277509"],["3926374085303935895929463146727754618053512939147499979324126490101666674932","18974990984838021878775536929663204304757166109271479165496240489636531993025"],["7044864028785938197552128682519475344426962709443366502554360332608627953741","22614403510844859284473740243326257541967109106374560030155719753048295634742"],["18539469817369570050596558296337470185470294425973085140564409123988572564476","12031676985473207177847770158774614269359168270002883431127773865089187985991"],["18057514294682586879797677394115903806814040149924260464851253781834067369089","15646753903841841423659890256992475300658173406563872507097868807202896375307"],["11354296088006340749300787039950428975129315896639222994341300880724795000131","3590370564980577751005430335209407397544403100288084627650506522386527490047"],["1384775858828523020304808975334968997425574216091481182405640432027798404451","11779228923070378513572151737535199586294458539757073495784560307050806742532"],["28110351122316141699697127800986646524675008473252240808975217555358821349756","3422105190899152610632040725752659686113887406460101126498450722887693170567"],["17008195416744236563910675692428280779261634497351522358246658640474593718297","21129083526123143203162054028291050758332110225781866832579905524170753600695"],["13036627563362207116740617048816373535146862017740902821221336688765394727677","16787196130591381378606943140749176379137131256396819914650614772786606199958"],["8647865093755464158828528177073577274942099686442976975889921474062535229733","13439745313106253010350261127456049793592773549234394631208089514000000302967"],["35657752895850752465666517194586805155485594308513900608016130092267236358","18103136623376992285282262917453357175747922016108002825609724218500229341969"],["28348491309984359756178687126152740760108404240132752714980804306001475189456","27499805401313354862971302208484032909968132454148355345418497243875484220397"],["16916209468480200660216009377788565722473059900508258173578111561107431163426","17592917435490159598322222380290086050930849885684359698607680887184041893899"],["27536813117460002988286937452138843829477541823353754981093230326717692080555","17206037914930408161487450353210635071959778169385742066284969492008131319872"],["4168727056943063748809864283317718926037731664389075949958025286419632114382","1061922553175103527014125013093701005097394073014199293822877033229700481279"],["15476076384315306754113230830388230838444112843302444209041358490368051876669","24067239039560471899521585718214606461958022140114618800329472689322610857613"],["25693205415772706104509446722578766023311138868178367519797798868051987605305","6013771421600850046224252820666549855118949126673458477259497540838662429335"],["26513418642247288348647251057938254045747683159704917105198379355004283829989","14674815173619711980323777523748212134628320217372932680390412022085294466190"],["5184458668906248324380530290421988797580988637925243674712423302117472894282","20499435786040627362806998228234692722306477691274010648101603805402229961919"],["12748488244036985952097862465610147940025029130357640611478843564633376599305","16039811147856868499611302731919060372443916630670383808935820675151300088128"],["24045415992510245449539225933944517962632260873650567394773948656008442730049","28340210545968674899281105533154485579221943779588574645551662338070755626276"],["19412445901400356528035479585163364293422658789073626436122779727197887657723","6708922646484080119676019340086035507286504838595982562515605483003398293725"],["20432419032716611019348040311304561729929018615573384029711928147524222340920","8177074313557741999771538019992437361351001885781718648880805878455279325654"],["9957255634604606195074413822685262955134854425505753378872526287657489984821","6203592091277307657323320876241508286342802268300025793518101877715474756038"],["19940282210517030223340770489118924312465218922753592338846914340604909520569","28553719428202587643492520313549940758245088310088654765007406532207884933858"],["3474511307661001589640564301140131254484930028360111464439353630523698254699","24842618400263984995785999239788978985345855558510464912997696778274296974727"],["18443536178675703439856102186008162622306002962213816840610174387004132778384","19239555714909265828466700272365868464042109736295276717503603740050970921820"],["13399336847315061632477933099019099185252569720681142352390181981647801307263","9042893870252234198206905062197186911845629487577335719339462412020166747905"],["19457644270284520729106048347264868474934674719721476956857197403444688116018","19202748828179658409331566107337736236450878246153346020407287444225532071457"],["6030363513299751153779013114864873466725432404810547740394902367638675351875","1967553019874459824811608503067470282883177101234525580212700640457341411985"],["22350092580780048585515938857109907287320037376224847477859005887229746739601","17275728967429266630745987731815049802003140041300422614303524799082571860151"],["6262637821864358729763462600307365102150850906114823739211396079218279841385","24944682049495411689492926189008755361840605396074831668085356274817576700486"],["18634589956180485510822426794334703974111954838810510683065940657663858476853","23130149205761674485051561123492830720336053589410179739753910030055283996414"],["22126292630822651211861453119646752298427804516801504179856325418980251901913","15800937142100177290634894027977301433650959972846867255371539361421041487457"],["16260313881209232139538814950908215404337942149058833148884210261661724021623","17740534863092518906742436265972965994403538208688873351631225723958538416488"],["4530468956044776496943984156890929172614564877394889875542017322791877665434","23067142947382713372651899553923171333461446804825570224167702901789731534920"],["20503922186909071296220663220050759512983151106362197591600869811241639297251","1031833211792163914530573289539067889651020783982295468715099876922559099500"],["22575984148906513301861107352876266510576597851160727277828687788734519771471","11096094584077925236853794844013871258850076500100560134588862348145282159614"],["20649618587584331366102197618379056387665540792882361553609264443241290849008","14082596150835606571724924833774760661854379195252203116475784036332759006732"],["23389511484542774127755290015575475453899204220215362242704052552067634315532","26619214349344393273992123048198067719296107567655861275184044198396635025261"],["18321403161398517012411611947244359567802208631512753196589609953226873242443","25081913668715314610799965063755159478853104713737632008809188166024792864609"],["23646277806111485242405175603760132736599397511921586731263758217261861725771","1265117195954842565102034427033836358819220307834232479545198500036240621294"],["25746219658024820638347986465358404427877284927572523740485293623386830480420","5010771646370470573483696451699281402025894219796093396941460800643241866180"],["11149802434140478096206283409531850376392284126628837095475952830728372673724","14970901975058690360304200620417128931355245214674292536000795109716226093471"],["10219468013857218124079452232389811456866533326365733134262249811251557502261","6167891402326656689634902794185912382782606806891861781057856764111352101973"],["8651002085943483294526873498105995537446855796872111835541446864601125900815","27834092270734377731015719036035107670216132149705419949195997703305476148858"],["7234276378269184643128472720100569898524954538744729049083717277709109842017","23003693793062707985864052009846702769209302018134617328103590691678233844157"],["25862544874397221910306522768200112004511682120033622210646301576168711335281","10636874601576082584676546549071611959803326485534837331171575348184018987884"],["9261273305259927844335342420957851941457491251508934556253346648085001232477","11199509229487785265864844683092491907761961519300558284912854933963942506056"],["12060813911550067197761921830392126119616718242111781275456014753602839357971","5345648225333492559004465313304582873802527090236670984572982814742185535881"],["20798177805506138392822208243025408764420728451827288368727504109770604625058","5841468747810923589725125345908982387017282203958348471288820687622441904849"],["731376521876071658011273268293709220449478199653495625696476303782844444966","20536805504220655217928164524604883859701410603155471776937270130650643319367"],["25919987859313159799448363028792362587682754532564583127851320996215652984616","23352225923860231603327398443360960933861015954141168684116230941228675694903"],["8051583780122663295996331811360969411479269619884890634446051632887356550167","26621273342489089696291313846523968461521581234899020357248901472896346890732"],["16102650474943215787187080881955408437722872482068211624270051509295944235493","189236266710232920425717078737410682043176731405230827486771756319712194011"],["16573360104954172442548491196523951696021204658957071082499734937324405634920","26014516598448585135057259083276510901808724420265755935380145815583451996905"],["3511404374945740375497316711784229722138076819941635481844378933713339023934","15464060403140416282456652728742466921658976185532945792708023623283382509413"],["2977186751731190541070093006568940234132160968957112504972473247613024143480","18323191895619159457678815698951877340994163675572083996195667791132158010144"],["6895144302001798057466280062084168979340764993957315887287406638987671196858","28379271886729712124544312898397444065903010912634152846297147228463444417287"],["4411325272636116503979928474184917940087252359172058408277924598817381172427","20159759027512104047185225509451530366780256062275188918221277947759128316610"],["6485378590861347735552308693740255892560725407775341382975031915942887807816","22311647918751361498541909352436905032660514758677738371421940372235587326782"],["23922240824420191814564929720128534768489077569203316764954141615444280757486","12663880399979379739427941107158609172267099516086247811282676895403851725803"],["10259855422119830146656673390279923980100409991393478578824839796204093824199","6350373615276857745070202390765588884668482992596857047427854765579707427271"],["4258022178723593872306479891758072217822649345027698978191273196683708706375","4785370619627698197464377824271310607104315771901547253381696502362898788254"],["4794090560477702472257298270334016427499480684084863265348108083237257637789","463073002207658397740697195293763999674486471611856327039851745681058037975"],["18870667567584957836942083702802731028282685784072998809387342372964440072438","8639241492132564604385883075384291473478404763773539094993394859660497445456"],["22291566531536753942270192099497230599005066196738961069295791206593896509490","26389364047341761371096579355523637461045956767881916327771462056412282263003"],["21527179469515738226566868992505655204380923413494944083353557648423376034592","15778216642433886173694508884508821646508933417060763149791419344622301064605"],["26249803252085946682249473582367068143395300575232399796339469630628042032811","12688134180156357481034718011377013415030669218881563128909195088331342108964"],["7207734916580393155010270659440127784549142307554422189799405990775426672873","11924959134206056688943994093194529177748170835834413481951843578807655067226"],["61437254890590604798213239095280309831085760666484001969365261776030415464","6215455057435002970465814245542392321132619040954427095299702236704717479697"],["25996498266435176330921257273810102773460148351548246788257462827298716836056","3795282918396901493449473349421616983333445718219151421254949687377892832894"],["554956724446321420276851926186861024890237285292152053666768761013359872163","943724583107823855933965073283943105396228806050857283170074951810469367702"],["13713135046088229730343825056401206622591445916600731437014679770069655484328","16763504436818346451705567267111893222729177414129906302238865468856369761195"],["18048357863762539908849930484662653574803417721858657918226603744605682805235","26934671453768100370761197374492410180751305393875608368927121552240464979374"],["8454891980835232676980028099225872353464567026753051150746787376715591677187","2180682350669990377458564444091983852767485431052565786365473080087067774254"],["935838250833686923295093561615315082249024500843086979184934317470536692018","23637224724185118583586528712677068145516153455679349554430272983003468198243"],["17694294724814756589666366930341179857837304386003351638480704367930652693049","10412829918330168833463697227533144638491897950931090064501590440227193789907"],["8439899458364424919224059700948034883018860149418817400336710399750930100359","1387444077826372060377502265746222400588621537765508411536555476853704352104"],["25453126169227266383370887322536544958550697650509768684001072689681935850634","23383663090627464443438361737453094531330821932660817884598191995019313800651"],["12357828652836169461430059509874928752010308965689512126796596244539300834739","18224356897844089984262864919398205206167115908050230298376942166770826099578"],["6654404468110890339290626899320214375769660001359979380683087918887946024038","8140785519708472368774162008347377903965418069684387946262340392341300559590"],["13661722446662388970764556713588312776283398124648371960616660648599946682682","19105571719609252104148299122444768132650066673517427601001806099119028369079"],["10329304577465383898161899251317090124326146676455519016852671429404573336739","20985121042450528158529446277665626494967711853286425770585129328976694198957"],["18901716732510705509250408465188688720967467413217160407471834357462279359810","21238740981428822383193819437321424743766432458817705695993695933020411180048"],["1468572959821992245238343119647268228318010184721792525519484676575399543260","2820760503925749849229536108428329763840783144289974410320147197829447723612"],["28459389704978563362633937581095998825164377200392089558923580508733046147479","23355589626158814994857730635020396869213046060228956204543049897797831965618"],["22186110385121045755658847102902650965933237835344493543405375019573665219832","3113807210757391156955611691092442926832694101720758042149763202137512167171"],["26935409564990379413796701240693389382790731171067734820191480680234106010747","1328071115836058073613088227326767799740157325285985171693088014860509887131"],["19266516315452367932858361171892038901374795666967732327481654417926618075455","18063619972972233642930333380978632831617951177376086325343728953797394137924"],["17066841315432563181203257203869215890435238294551563576336980253883495727577","20242234546219602080888113712201508915286018492564917944758552909115687767485"],["16506538718317752497107790455108348328084149931879454516066164756680433615771","10442907898904726587256159997054378498711720988372799489029409527511320516812"],["9493731829726713155950722359255553769202717938647099391705140196366681984034","22577986335426893672387761845372486850271708867472573038024500641156878145431"],["18385341919518576934419263889460383861693670779710511143269729423198755541931","13190594389015255529457808758544157161243392269073267512173095522250334296900"],["6524822920005396842773160825845567387353474515673797383149428348540925081161","13832810613114686078795050979700073448119905304886917079758117289403511476776"],["26106857204317891431847706143657917647372472676938489034171321669943963886746","5874273883752118221601778397596033254006150770959581768353586247374180117086"],["10108482195184319500449778331170155124355945161219071427590632444104210116763","26219558388903059583882468609098575735261693204049716247188204548356864537336"],["11833041323961888889843974654926357689551076750486388353854973397880904408994","10739134431332653678748367473875240155563322937827539533081299551736883682736"],["4007587352213211693924736544912076640444756283864355421442215980904189764450","25770042678368047589318680042797819511746225047405322682754270307182911128469"],["24083840996767637828472386669052764640997874076332105600844475612659289692003","7844077996571129357103982703631490182535924531420878582944975304733270757712"],["13638682281350911978037858300760184690119886542665711148285346346436858115540","12543080580702526240543521398416924656801539294503020904362342841751420879579"],["9210895785089482785908778298452319567836928522424068191545765512130028802664","4111866439455883009221319294720317764340375144247089048384483251881076293301"],["21226309103845717031348841897895043827302386737024905476092016295173701016590","2239051389634736798510245834373609076292600784708290735474012173240456222202"],["21060088910099984849657165117867656775143203687614879054254722451043049402923","21933368783999169367408243537284126920665971683654031471601000047693897684846"],["18867897921027777096052370254596162425874421448941238894338508809453055335678","20859282730342411456070244767314941123032647453002102701197098269795502417827"],["13421200430124318217559337219507472128740210503392493730606607826197840627485","12468450770874332610810500910482027345792259873885711692198679925462904720211"],["14637910359953239599148079796264173591138073031871085601105254993572528017474","20146665849416825724311910567103938819034452760235118830712271441917360036551"],["11005763653804731185885498534825467488020277554992558749630011854525964640179","8790974150443504234284690814099596197396606045223938706171395606649676576394"],["19256751235725400584238773214092318071974366246195957735943712870620011861236","12082868466319091547581015917147941625646947191525544620020569119199705730850"],["21568438512687296513991424948684804675061903513908378842138108539411023179050","3930834222590598005800615100077303925095190429019730559402197844162222986888"],["14787276728103383287974430557095231682924102337050496659660949468461157300501","13681568111062308714347449930393188784259279151771546135358498026995538226068"],["5368673951915593646440895763101616197452741586228883617654873694235745060259","18639257105212401309045287030963282931559101221093759661915885065196892678379"],["26256612818015738969614887198530463863305553179918702863505731979149440094719","9410193182683164891401205130370618396473582985565636456655129627695875733029"],["7041637836068812031936785362004033732251576904474360028336962636742721314882","19801824054876195894488564222216244957243267286403247370256750610691334790399"],["14638066111081203785147774983160835623069257808078556522040870153378358459492","19180949231491675618725677459143887697588076282524910749364519394966554754249"],["8687594506347265475662430954390756042913053063722243638813001339810014384678","23555755543246869645848446818120139223236701271159808500601195831792748816142"],["2820098551690273303103790793623153347956623697896784057351248435419010222818","16094053360080953772583946254115192690081887774261935949142145211780139502683"],["18613436594483109294307686870260224232171769559285760868874518032428301900157","27167328802170890384405782716961957283852000383327181511723248784412481099265"],["19816716930949051872270045064091885445902111408289922550903987592707978160208","7082157584042841400125621480055823157566158331672133696993110119794031952194"],["25612192228002058393446802961206149020430010053319387406959551997454214569473","12382127241086858242209554336746351011448402488650925361519385082428604925377"],["26407657942414351587564395520187433455336498807586220663249483554016162807895","2777263703425928411659260927565682120073091586482613510145546693462021480950"],["28179564020328427459281924050309476194765260281490767010470147456821647301704","6574235082314591361371177041619294995979486102944330028231316190328229631925"],["9921147701615329221749010567137412478932675793568244413215208585601492859243","19042573341387928230526989691859746326224260633005100534387484665553585737115"],["16493525634454989485363531701236627792615741137463227685213470504511087306873","13052385945461113313523039160679093540134384126205515537600955991868583630028"],["11084268216806310754580175536854867971781998281260669190876929249374714219913","10308700969259283519191570679537460412983036360974365577245673780080072549817"],["14162676054352356588570413962852638909517941231138293354210744421662930786747","4777787268355089789485903467519663707906625697503014140047204011095808436655"],["25360513006735047550312537505007372223978464203954047007793056695261665185441","625643119847651385071137970195609356023103174582182187644881537903896016341"],["25062327670415089913780833108467058058547862745135366209681365726461859709317","3412069005585453334541536439503672735698063112536809666367732366712338255364"],["9270056305548336986007546016518062630546341071610314101188651387837328123054","25270838774429513017425205340706819064055336724594394330737173503583547028043"],["937177685386608172329067021553347389023772828262138427603237291085522291410","23393062789178283634553956679311146479458243249940517861925094199897941518168"],["17350530166968879414379572668413136582977837641848567934649147085532443814393","1700171450528559977723756244971562392855391856006746365805361794053135981151"],["836263622580954866982621531461295352903341685769783334568222898241755672768","459370563554259654815425327386278137917298370261091494024309418590183688447"],["9927039652762954740216908090204997565364296567097071822548079918993448986928","14426433209797682162912089859829783357329003766580695158156395042959652921722"],["12916222235052298310395841275892509855473848140461356736660336549538390633997","8070162722273422365301927625648345655389698404227184808011824993235625971242"],["2979660898355039536109323593111252835575572992539427795405984628450372085537","5778617339158863308961407177621251729245718179426547737417492459614281234814"],["27744230555469452061867552281373959687653165049592704484737686867433227119741","18886948567802010680622982867502153612086543329623869181617910363764273060555"],["7039435929511061123279536778394539943207577553204873183828921598494333847569","23507114775866064999992306258014231464478456586779897480772535643035471743412"],["13822541980775754706469730168787263018122556713682117574516368602126519178291","5519525653089638439722567230587757230171375574082494230560727252532629001202"],["4401194149150298075378043402704163131708296970790842600854265779612970827476","26779793989738686497128619913315154882224369905142712838700108707456935275391"],["10370604908883021165611292268419949782678553525770285273739093452630549317661","18163353793930054669120361410899259725197351282036880657459939621882290345915"],["25089378920503005774017382345995024702582898165218389861039611399677446116593","25853100264857580706213556354751218808197824348581683755503829502263583058805"],["15342697453629559902288793806054696015366085437494429232994944446440387336684","15685485661193037039461918258297159173835811781903433403366659869591106917841"],["1720154024450864780886734402556159951374404732480350302259715749308542657275","12902434198836144250897113173292439141637223552848326886198920749126673719357"],["27789534678341784019407749653893376630524088869099685972948177155293768316083","22603611062702919037447366987481976612977764865516350465940030680998029732217"],["4230138954250762632971851681469459767281625906500534476376010577909078554454","18918735918325092395774154604418482194291759416455912564616907476532129479576"],["19886708364905844216831870514436661679145255534420886401960388886431650276530","22146012777918874267324041528951272767276803024826326830766880785712955285493"],["3538016726733713997270370936087099698864955777083804155979848188571470729617","11003881459873125323569742226110275491133372660791097871412960882921982207763"],["24662990951567454486884285657908662924970480434287838238216992060419369870453","4539476381121597867129376970192928941063704434613329164161167392542141033454"],["18286172030126410207877467329389366398925379990813526829215901991960288192264","20154802353942418110542916143287614701461752901818544735512121275749342345076"],["2948257932091979525952978334773201157922418463653659534616883375064339995243","16344761111624970464141460707645505139549070841227715674023610621994352747879"],["15208445345007135552294504687059966616536647761672465348656413484243048327786","16050194162985465281975815165053680152826816766774071475716277272208333869593"],["18883192225907045624798402558738215832940184114356773894320173812909856071518","27762215540966699840254105666243928910502535931749652767621259437697914540199"],["20803160723744297298261339798155737719838009906352843325173770304249550246145","11680601769918806000541525505890927336708909333820625114281662672477606894932"],["6468642262647079577793124288253502784230778424696895259900541777086870046463","16273496459622618373867230731998274374992658414726700919439580570293984110491"],["18924081940729414833826196672297356612342993743668359040315441366979154174509","8366400538938986477177800157719488619313629252164931719296639367516598499649"],["10807824737639078961246056659236747028332875138635985641629084781790167553992","593812486854815424005907749287281454782747580982618753774354868242190985455"],["27939158002354811220192367011360826093478218083395996203370901532692562600913","498134980744226256093236382821849968701456515519595338944810365494997973151"],["22482729947428221019493274284369533664394710853340242538685980731892898941937","15535567995016407933191039769422809630281568586805028510395072441399028894348"],["11354430622463322783375953330975074067225587477483543244779174405846342424655","13310565879057931740885570831315468204652952454533859866441072667417806841645"],["11035693664580692238743747244962111910854389401298901057877821812339273609219","6043248993995919523304061431762110553433985574895928226853706124813266148759"],["28511774605655450586249410120012391628469620854441339265721190380138972521039","21070132227132987667366561437776575754410925200955164604835581028706354739232"],["8959561714677711121416129793892196080171389821002829371490819411503070063415","23279212435476607561371145401975010051301878704346609888050355094620889142238"],["9893610553221619254882633195538500460484687436906401430571505323381806128052","1666844216499027655493514140742877863196856582118376451013610630621583284383"],["22380553008450280103492246415250712113296463564419054987661911807624898031874","17975864239940910096509928555002155756308279180233161704559661361901952693515"],["7321473549187746481638067498591857915981900342010730095439703019990017053218","27186097997132920956012870757621322857244203375776427511283271663036894979787"],["2873599734325105023775173466392629729976154277659110146423778598157062585716","1670853266574601372218355896709931071021710199757691997918352098145721752684"],["12458097302647126967805007802890383229417407594454693563092668175243025082922","27740088758036892631015234208585742629509968294389336996137316571135216883227"],["1823862939372766302638894825255958400411157532960113342493142639548904291051","21890811064100464338832862220077518128413275378944592877073585725316982650400"],["13916556988734282953353004454518790888785404161634088876994908995610530067873","6634215900821453457873672743391876341407875120983710071318607879139363164768"],["8765989566612326466130276642028205390712362307637145953733764408095466550848","28810095104280496122441709984569955364052816902626361254464644404050651126554"],["21552032364812671528933024749551953978169703894652694481235281088840236168063","18784048521389828130610047446755168012022108907064574431933695260835696839081"],["2505714455584535006778765827134506997940189579688478137332129942270996306611","3171273245651402386713910990642660241947540786201453978029803900760732692109"],["18412468189633387840861050250010844714427149008591886898861228693461201741517","14134393944296798173902171293160740724744311887954898613084361335517337357670"],["8299882577012240654436374283107971484981414865566901289056568381140136972239","22695496727727558380323693505400115470744494690862928675690618787908886553213"],["17354336668938382373177356615368110507737283402808140663039003699247594987997","3788044252176873001058773176835208914664961453944782947523993233383564453278"],["3099837036719274349494051268825498218372186497660740191672079710121354936256","23107957701309538434830478851201960909574606624168403613738686718680092051567"],["27505869554498946237695931354401198111787252598906667486767941255884566985140","3091172567559660299674627894238557191406525051504579801435802473444322222686"],["23244856060322008614720320800076999066398444476477594162112540707581184444389","28049900078233580831631012870858052501434353890405400234349087262240237844568"],["3584841715731258719385714819883520469631397489494118653223022898058068537427","20778134946755507405042202723197611381674093167944332619917381514782298862187"],["9982999100127818691487719788405819583008730298616244375852880112050919675189","18419208179246626437565688788399565623807505312541456653456625033346556704741"],["11660256161454675579652582955445712173912101106198218934054018882523601895135","12457578729794332215389496623230813642434875959573081141034657572146187293835"],["2822411717719910003878916793418713810647473052291751135336767069997868997678","1837675226734984855023909961998703630414026574584012804105857423742028556870"],["12761308045673999635822771854407461207443302940978589917217759068301004423754","6052230251274941573090243798897847217535120593719423306106790149506786355912"],["11721431718968823627794527817761366531228491397442866492145395885830125783025","23219176781495033246207941576108837016503252960782529435908969707162126844261"],["14748406339745681991625711647311011270666550935460907651553552681337347599266","17202688903255390080360460442164561920469522973724881433081621132480590668411"],["144994418457129253900678181764196738813505245900701747402607358549279259074","2134070806489346307832743370601458192340312379609442507210229781379831714952"],["21655004793312734199872991670967986461534733196708815046609785671068166505907","25237435368866178668804046276668240252509124860326037597213694444169243746061"],["18912561982164879391936981026150403962541851832947552324293483361421525472914","12991066490240047508396069893913132173661266868192474731047981991848816271725"],["2478053640890016490153910893368914915417892281609856426484963140933315779855","2172469979571763620226234283955490861328526446332803417339496228941403016683"],["7994867526256249660021617159155818839024562328997472949481929039899195491533","23321163544951439165041655011894552199714243740370505318702684766394298606559"],["17097487612923637665911831311196427674662271981285924096549890874453912788433","24789446954462442571937809603684552446139366910038921848326947069320158012225"],["26119217949586254248279729980171068675103642375881898022503259900142092556523","5536705694641691984191069801457458943229484559579619284308011878209313996146"],["4407114791354731418304020330961444208318496785364565348539233392112605037627","15112552801639573441193885947997035749922424620822669107351301608768623580419"],["13539744117874348924945664359171699978598067063225455969934847714477729130214","12021629490442803144278575915132630109578745306265933830334058885706271769849"],["4312520269685996149704123292707011540445832430400841332564222004950968658484","14739907229975036670259076821915452749733448359529886925396588688432589346610"],["21110011326399637492576342915177058612240771576010717541137867947272982342684","3115872045960689821846272703246699385485131673779754027247049459926225574815"],["19653320157987299933142172015570417256245212252004232992117185667946903571285","28309579622333623438031617385931686914767620127553418079847735084621930063105"],["13770690202307158649545590268423159745372165530198694793894437154371396540475","15904562781643590636779295895076433138128937657988050937123544861032327788327"],["19716203835736960287746928273416205249079256845479522281027022120798865270349","8776580494868127965790915846827207670749592731080916394840237347065438105163"],["6658461587322774297132690034220160860279009032173894570054020009849042441831","11150215520950031534226275992679056921709574205446190765325394985760012327088"],["28514640580761912843358441682789623928858490330628295337149275595610250168666","27989334950230407363620968498379295572577453884207706595447174373877036409591"],["15850145031636374871875116357036639059009722959156539698200149053574414077602","975607160838999106754106411163372233925612325858614304998065548019071478841"],["5666360634607832836791958854190982560860904907885678848297234406910584550648","810912452251084365592011927791876744360576560642679234264004939975913403326"],["16506227395303925594210170021376745296783254337120477114426127917405023296871","4276023361102118379548787554504830814401685729004841589292363479488890209100"],["23942559482064219258296384786859647916992850883263943430892139001101888134751","11253862276946938195943559327284105251685318955415379097991696880788083086273"],["27247045331072266915705195009935422984718260319958556545390610480647003587641","7398171322182933438718528786049245731501261754465382375026597616957362270018"],["18056218803909736962090808958971507086233971393363587260294606474174789708207","9393881232035818059779187412398654784448501706547255320592164320049814845323"],["8218465910198852178443452591719085743477234759124520155597354664152476471474","1133573112109561894293481723795387511829565568624307636591966650366461732794"],["16434419011815907900598239489485544933903731424011501518375750434490879292077","8190541422960769385968131101187898265301851065248212289065540587335380329677"],["14429595086137455528784972464838791250421674846184627845222960691246307738658","20341515747787737355741010715644346461577903032082447544253061626963511917533"],["26349586926687223459340900973455366744491353444467069535210886381070526678371","135168346159634596574579448026449672281535632473277841913621826923907774182"],["26794542984653762456906118948317589982590132568852535628083870445252575229123","15547991125643561269114036380008132720006796450493524068267706187447273866144"],["16556911981412868160750707088091076395410802823107908927429519721206135538204","18276683877826872998452819035537772504985031187001808771301420740187788292893"],["21416622391241689476934357408251004566974230636895027446116509185097056173643","1243453136030520413949373013968181929683780240061903632822906392213201553280"],["9599107355932626872365058046112943496849723076504497043024592454419457301443","9487786940247825384548468715273716510917259728925693067595117587408506778713"],["23115268684694500130190293050842867836474761324658672653433793608627845142294","10047669717964760369801713782780886610263613074848461435761649609116178525912"],["27212244253378530531516357447165700975986885170704471471405095170741006790496","27055287413388894920169795953966118889931972175694407986576149427852781325638"],["7637413980216518980800329094627764673020120709220339138739531190477409565649","12062602053776693115230468936919139879150792113691654923306342142304666935822"],["21948463514168795077979840911938807283127848097032978979269074298158368638577","22169165838996453009165187994900942767009251848004215826213164681783157740257"],["7106394173195993274130256116717082750446503130222901275292491890549978521022","21086379467249613933328737232291972945112020649849553023137068217309990233188"],["141720753427492607019906272534058811335200958504323373351177780551195145582","27444868555600131560948055916078188668821717460546841536755605467883107413584"],["2617424173423418933674248555013469650890085180404752514866851580433777323143","12740784787869743171110165997455554984288164920836080930328964247725785379791"],["25049289586903462699651567805021641589434629518426199675121167416848162908705","25448759728279562188892800303590072199557195196313250233845559327954338153760"],["2847112876619608644221676161319807773218535137711102392190931220080562771908","6846618876030761469568970601981763404584626727334488041349863424646061589546"],["22520209926018194126732143706783958571522494168825220178456081917637078069363","8600884583843891448843937997965752648251171521476113404059387226473153465777"],["24475771448379811001043748412541038776282907113990197063925444744624271176487","2122169274380381354851409026275066291466578384899458959685233620720141687002"],["24206897482925807316618286059459209053160229605392180992991695956701721617507","24658391896727417390152367789937328836232466391149510096513263909657367894724"],["15838587333213533442054874303563138947377493645901914156674323301365085914486","27296296489973592709981878643597744977166051514027064914329437465869745065518"],["14140068178255905209617701357284276111469168525641839477255130339109071527983","8616491276233795150416515456876776648058820514952315015078130568318886618472"],["22448698559115612012343442647647210950364269197644311860671955840527919253172","5562280967141238073003553432798286962904234442135966413307528391128185922532"],["3630515812543518953818418282193778083352284840772875104231339350713444450580","10742106457613098302366695000801652903386022196079737654546402535229666354525"],["24661499694989627942699116269534589102991581766033040824341178066130236597191","3476266617293357201495639491097741447221993983424360003545512807617092104856"],["15493992665213811594495875784940414635223009804906650390271775652457650047021","4812490074015340692017122387920126083237123077362422084945407139437434336596"],["28465048930908754751819041384221931268560900385676127902156694981450018979783","22208742907595992602943336440015346531203043515340499668978422593646830503994"],["28883732240886047667858641970220494474083571533143725277595104977321063323358","6201990345068362973131881409888961978463825822709844786934445964770829479630"],["9048580014852538066539247064988232992170063363042150223670452286793920969971","10925668397317789648371189171394436086142195409643472744027085061110789158124"],["19563322004432131216392542298200137368104476819476900346237314762967788629190","14265358102292886395646221571329189075647305777539070146130907929628827701987"],["17821880321957666967232931739065028850887427702087523465957639917528263763942","21813071831550548732787491855281693160567809965664043532945482676568478882298"],["4448137779094457330546885145204636490641783099959718044455528762757016530109","10912300605865651627916257661711948991624609451832494941401174004111363638121"],["3982816439565336016187411981310105617363955137531555441107402225011615952940","1785182731212781955706024896983641548816850415076861261243024554208655693559"],["7009308007815936578335866706596597647923005555828972760249174018029091927964","26515585176587456393906813899174893885180006822954958976797655774611158474672"],["23943821716470615692019989758927656257453177020991948583280603431247813666066","7344740480163165122461635247279580208752474642364805701841141484844249552505"],["27375855275089689705598004620253150720550511866639380453925053838285862297700","7937121191141677602543164877408813399760109553427037475722687416781489579675"],["27645120201356433306497490578675519598896655799353313625754354638435572304579","19801814428237229023525639821329845831650588826925733113106714228082345656520"],["24923854028811936510782656265425871080505848566931010445861450286770199653891","2383302809658932352236825831394676594342489800792601530720327222704229441312"],["1073487986531321631045818875585236953328932080377138531945765548425624753379","9426679485161455343681585443439253627565697795711151947649210670890822046241"],["15372339763468345250009919368899237254830557691100323611241776874653025832535","23022182262865223574935410189592746670746776464477395940388341034067517853271"],["7244122785011619958408384483547339960853297082279533356708794890792085402404","3838121407049367638323717631352769490210848338246736168366124714996014807834"],["8932930952599489206756401591158197956664403829207833706685991003365686291052","13368964526065970743874809217409155700277515885823655251608868997801548297589"],["26318511879793345471970280342995233406875872546339032501244816573789795448329","23677791482899341015911715147870660756783123149121706406722671905769108321182"],["20486826466894778548409054397613994769754994404238713662896756997641030654423","14902416435653690793570545259973561211372904777905076957091199032580867217103"],["22406709835705284251099105837249350982640552168056884905256101797183613547064","26415772407341739643007128070019771895769949134907010295696028363183787872529"],["25785756359442361203434778224004359265522598991306570946977436907447725262164","6951587882354391593895838608975559899251042841236310053579918391997042677404"],["9173734255911317883181011793362939980627886085573871082850475030419954061060","7492662315499506004258270539110393816382668162802649726861840988493718740971"],["18435055614396034883383037116163972210707719797464633368630337943625337298178","1812403446137561311639349680603826730455248750380195337817268806101197965673"],["4183259515676994257082539432527111375259425416579165567087174672267131935875","12551337642124782544113892523560979894027824507537206554175184303364781961080"],["11514492710442730557681022085821111556565706370412514596764118297089074196000","11580939593027819072453929488192585628913339473615143117848680959599592874744"],["20221618357371943123228026495651822948056399013333558756208239539083187997594","21078692274679281855293581942850407092953454504449947318052384810352119448971"],["7439865394909293313193432435177103275629902870405250443239931377765762671267","16138809702307566037144392785189733029461001539792607125233464189523355483375"],["23678179458296997005911424099197211763167662271710558459730265259596414260134","23881834590570859141241884772549477255187068787623149375717175358965354200651"],["25584999813599877922654849898550939001818496891514232539690339819130416374214","8334492272227006498650305270330497551829408533930951184268021081628147741557"],["12455720368303460826085031292362906225503640154274678737867612216404670964177","22358335913621949403335311262553695829611363649435347167321596483923897684004"],["22399482118239260997917114596907226505278939647684047346891633135202960124141","20116641245636128470856946457623730396653058312702448660897412128937548565631"],["9859867136977468873565638491993548137627454784137624301940887178993932699045","2706895008685531139355516846237981115777364264755543741866495592344326683321"],["22746505895328433786854384374074024133251367967746851285092196960424056953783","21773811583406904642095922539157494803565825460788446680748806836027839509522"],["6800476000519597748219989819424288492949168054254502228773013428706581453168","7165136825232897609706520915008633961177246185669454232759679078594795731312"],["28199574064192243804508323447651295589155372639202287230758651632945303294100","10683647623607612805908628835898014891014748931247693865886519143423788110"],["7635278406135088274226361979661671671810124101729525704340567617494931876191","20207461461738885520930995440824613400996676956502743258147287223911547471213"],["177067896115145225720764438637189265417000267371730627853935815107148687618","8113633724959821021496693983960330319085130998088488775650279989317431447059"],["10899373147897605676332238292948107157943372830428491332753294597549238508704","24848947327885779951372672233163185504741395733702945522325480486087655856607"],["1547796768269172009524055687307189788767974485326088347930980186207992651211","27384396972738914556529205850509169942536915734125316454879841199514327014776"],["26116402811068955821443936053118104897939809149534485657288542307649899138365","15322167388308797429678874025013375871935543239179768732121313480401384761314"],["17073771989372002400514755138867442287989524024025585841120841102720291822724","27365773523664338379308651594869222952671069088644566723124230940010917867305"],["19093590174033909770425788216048818914437552405159010120512660915824763236191","19562989962215851048257288259406685882157630678419949790535977973201701271271"],["9556391822078215601399142630490377226554006326212348163906498398034317608232","5535832706835618364155655200348404966541460829706853949226786306139210642366"],["11120857348256156003785913920476321040190988492810430524081278921762554302077","24148588743495196038478589798663656993361629633153340217312533472370207788214"],["24724031262392265758485021907906407433986843798801188381751247567655735598748","12558411741849818832857614971812515729695831357194130852660222510837268674615"],["17028608416059613288491123061561664716309193026003342752724863491039640987303","650822711307165598307423721934343612724481785394020792808510462513390714592"],["7538805248618150892388333769437125641593921055613533398412261731898068867012","22216710309303050966620043546865154433944660456776360062083318889653655593774"],["12828664130242141770357246472507837776485170703437091526390181318490574132117","19723814069334231031522540343182411224679576382759067477538791437789298024732"],["17630278951345214732572230066280058446712695577503890915962052980194907617087","6022225224336936588249213527407918718564860776171794102626031258835546555708"],["11359269504963968981200520477581463142587817096773804324575978482455538095084","23734251807591122909091511329934825244824440788399607802023642178564969537322"],["3216843549092112343849622033971076003764908734849229727255667407746375638154","6823569941269181411539289683809145079442349743513716802674288009277882382242"],["420208354418471651248376816139335264344579484860215324941855275451065861532","21371852771059250352545437096926558981839092290908238596765624890393180590073"],["11624903588581319995034299996291609659880910496747639903188705488961975476607","5966135228870171215025437787772805359179602976812641696778304644195469873237"],["9325795753752066014090447792485511570266070915524517884349906759636368549868","13865219888277825027787485929948995881648684709333081535920770875438782959987"],["4881704634425733527929295433902604645559079017439129260834714657054225298498","22999483400724206338112294778870318361189897272746373517270429291115036208184"],["5046630187434673241464380878247611154372534570660574975725752171276008934690","9597798019844344120883874684155879690939971806798128828683346276633555985649"],["12791942851495177829344756290007675493997173932916878608646792621731353255523","10686782063572018259301213057937664779464305736870233010694752534146929116581"],["26067878130471554537276835987566141053811086048129954496637625352588040298086","23287182695848848557819317998204656803498176498138173782609153753252216394200"],["24832304277320858935846414330806586673258897296191184030156617806955831786508","23482524065272484425150391010449005129680406435581317329825175117720899226529"],["19130720138054296769859701438155488230313562216787440154041746197970704091286","7380209707126056515067209730440069671932778771372045439162986472840059456073"],["8093184631082506309710198879892502269717465925488885935236908862146102595067","17590433924425076764433859405611569849001019481267978601753183734696604068372"],["72810280001784869195577307617969720436455177901595236444266681915001799216","595514093814012775022375770626357062924003916235375050704227165330483457331"],["6543667023654634083950222064932166785098404993109908438434026089459458437877","13135113514926751071163693288124398477291146977999963588177769402783874886895"],["2294394266671453547356646030404420360138937874180672946699829613067744462600","27733110266755721533716889752785493962818158617727069468915349934649589127755"],["10088349687096616610202208733646779507528314915745874435523845708143771689897","25368746989911141595502169527971548726638497525670282967248840438885196355078"],["22653403258515576843601729060797668766379123244541350860905621653897337552891","8913267450987115570554801087754730186164893764129561411346435182419547291087"],["2348147768017292541455993501449684178869528957197984025140962445760846533243","13584924832448524583152474961558737745284915460540276872733016580862163130350"],["23130147163764027190934646634748479479378084427827468223461023902968994988621","24262881948460338766248725177364439033135640562939972145041844257619661413280"],["17267890322047383667561856745339537581965239665437892351044295259054410306282","20622945478144645797588190352245286628846872658537185331600001817585823268977"],["17634273015152490175132500051107069375068553994984330430264617109636615397918","17039085984868797254117933937506201347286931227886301642378934698601136808146"],["22037056785508152666778613937523079368025238814483731025065398731985143264802","25093577344815234156889282836261954695489817361419660818663704969125157103"],["4562079348570812087001231056398140130045700997482582146300748309812936668709","9989787178726457364836391114228572583653610957849159577319817288797326310624"],["6543952599683305683738866209426935344792529663769882730681458284863901144284","19095083061316417798051438804479431544953595302732317230806979430328610830263"],["13162040993352366166334736350354804391776762741485760010326176300843043093285","1696812687405149957812240241250944974818133645530847730878802368064708514878"],["6729759030512279051966975556165568155736533447925919538455163295859370806989","16046109418451107143498549879197268053495566540561749790998562833938763811894"],["2248951114127469276920484849611982726268069197182795779062636060642091176752","24429119599853127073198878122889097544460152606153243902006874017114433983940"],["8062646962937724345590508737672710276157238369448004411693794248756354325830","24224639834262758056479160050446769383392450091661457374272191094186429435804"],["4500236255246385565366480179187077187072371732082093138936739529458096789077","5459442822529898291763804156247901495626842045418770228374515748450993640293"],["10969204289338615283944045622441640274624378263715773700023563255638701675834","16181774921976377499029965891435541179147900159159676715138679536186592999150"],["14483496644964776491802368789765805213354466992130594709453248719970573713571","8225280850239806078833322243673850161887744948942533500191828344215509953715"],["4823985257848750241739960527134820218755108175370398892463530921741862209048","18425659578569229233942290900368224725607770551237804007142054157192158887101"],["25809134948959538518653571917250034703857425085509817037269990931009611129711","16279715756906747553156794115741793933233502470607621741834082522337788230388"],["17750694927052867400372617975180073656416933254007125311208058395230560246019","12115114413268885007179427069141160817483539106204179847578976710049118662480"],["17149523642004736993989914062056506719307416439052610885016757514205099932193","27753113135018121480929949567882526535367920703100635790786354473049507631910"],["12476117315482721940394394287977933790424797466377721549396078942332680133987","20381150847621301400517342609642986418917249433338397961234043020345431330827"],["16578056591723786090879105838739245589398964953760919864094850110212875867073","17864322132467334669180913669417975181796032044507905863420374433764292708822"],["12701389674046537577492356567908601277813449652588206366584491771805781485929","15648279572098508735128515870076580140754967567825626650748706911740575585301"],["26116544352832015194917056719879908352809089473627174583668092701788914438089","21672183775394173117299171345694756668034948893331438013255338504012741010283"],["7902108977174806737775459972718570757397017468291599447228331383676402635498","13126275376007130471645730428205411156764573090166188409293791564685778600807"],["7221177015428263885401375770179378101812245546636352688723701447066989503454","23676872222906545482153417415650753921315929605047738668968265974328590328104"],["13918116897820423025896333745743273217567544516795947549606646669294552845460","15825578563893866165319421426833006217516462094941939457503682534669502511428"],["19657040443550959768474170736554773502266898786727923137656170790856210617193","14701774974424030920741781880834798704114570151934361799343166397943022179949"],["23476243378551502787812111018625254030801819575230531393312905962157835622015","11331229707819637881993342986588649282685463249934854418169619946923165687458"],["6034936211617886794700930643300571690575136460803962343685782019719639193846","22943744352985122772292791095659914518553691576868881262034807368418527171868"],["26543822812864912691857434910712678649341465668730287643467410447993870886999","22736358092883384605013473432967654936175298687806217219277832324994408537760"],["10448805375809565054323502780810448326881013051607922254155989388883269593382","13707483818036363682400307608431464017377548840704612886618921207418453895636"],["12719818220934364900445503843212290386352443879869113064118495442322735679374","18536056846968452606777622056343206861685409989907585893491244763681366739150"],["1972879121745868836282490657897561076506967594637139845349967213520745536036","16419222008236054290673595813357193342577704146909088802742786884878100281333"],["12984886502488574375890621812330261463297178970609286015604868080096892068286","28640139622333767685680970582236810882722073262298954298272959462013672097702"],["7719382127868888064997149720897845480589224637552134191632176571141985073138","14883112973687192252048866560221098648831064594118887948907947749874213397790"],["9981229155776279267648271146444635231650281040206024469028383521092584406861","2289363303783213462853063202948060280422415444264593133623337564418822350560"],["25025491621143298472009287461826787401534979624064506249966312012568513196215","4839379927635463798214445450328814950810015885889038895428272032835461218705"],["20388405067121998944538792497663442387190079373956059809884897164744369812815","13413973654305799905303828703247425803483731121008048255006842947094194653905"],["4226958825025593854086151155669959618840910797832028176474839026795743584137","17565206603340034392074883649886374501709633736750370104010716720315869424251"],["25001125803779628350694539252081933989672800743745722476707366540216560140140","20095504864656740828037874633714316708503437772351646832780766160106052390270"],["1139821713872501279915235032711389128063160701609470769310551037469357435608","2538525241055492798626793161533260054012257299326773128014983413942139058048"],["20918986052299703144058185039168806643042491703355650124297822065370280921180","10848171583022627564085588629959798647220742659746599092012135400926087763720"],["22644246050876459743558790188450676066903420565552811445255447205547121733693","7976251406441666175718669733979773674826387132870913288593988431802905094997"],["18552093954572827094455869847514848646193477100258218805153632873719614789148","11060411722179494942799387941484309189578259032004890343944294958640715157288"],["10163141136272056154720124140083695249983887060627562796597404443608420140251","7453608301770186287874211250058226102960362644187133755285520051569997609098"],["13915788045313689708089415968840759284722080684134721254439364423503408819697","19643491764056829614826222019856667332462083744082115087959357879490767509230"],["14652875535447655941168953134525597273415154489430996567925356973810861996643","16964794021990872849281462221262711322754944491283239914888389702960658387331"],["5795416873161212072626473149049401613791355643568507815394616898056149966984","13220168331538535827272223427617618780832438981405482176238224693812847857620"],["5075901754728512999681943843423042141373842918206855084438073126526791224357","2974449174365967988888524763134051391595237198578141908722831603690492279851"],["26176923244042596471429252511184937001325688049552715422773978315132992563692","4258533771142865656657937608151363522191567310801093338092658278371864512467"],["12247387443989967071095434288874296336349666147281601469637566379372679038352","22944725370452774630087659002704110491272016783912804279430191464568488686668"],["13229612846252259112769673246262806994927410347988875011456805192647503824539","1803206249147389498747782807218063983841047499881127093559372164980955379584"],["9609071259579141115156198174547984936534731900733718001117203534102501332394","8585342909425282189284275478928634805785982820069451940794719080631408056955"],["13209046785492690200868350474825887628454550862961644511667073329531784989309","16025665043777585657526643418748828441883848753682505964524255516789882272578"],["1431438097966282279986270876120949833038820617108276552769706289120391917342","10850871709081517714609051858447671072577995808470834330027754217907742347822"],["20560507652538049257727319103218793005212181855023352624984612053623851250660","16836257601583843766733221183595239857926555363764245565465086953824642829673"],["1511537877175540571633493940852994699283806172897902619628353235303747319215","150477050956434577674450900956689315146245025715924929957443641061182321959"],["16787363757655018919695990079219108737125961971348324237257429994880338750989","10276683813032239669767285213125416327442754400423008773499568262162163153704"],["20191993134968822973510020677174649815540214185493388958376585053783441313531","28555151479339866995348983860268124418673437538110772836738451894990500407881"],["12811825825494857751057499759051559185407477176174840775232634515950154430989","14134813295371483289141425849846431649849249561901023378206603235402336697975"],["7977742987767771563103308607633694681502456120516758835411722994709407394637","6853200635409631746156552292865304386937466197058282604235143313370882514852"],["1904663324671302825130740422957729017219242118312851285894444751341053525788","19905082289470101405494739228534878373975253505703632111381347837190916209415"],["2206604360843056655568183711375658324166855775175108019592778044826624152080","4287094181901280797612395544490480894926502391748448733821318001269387494147"],["4682508265197918519856624092209736048287646992293766516488127527884725748081","19850943567348170756603027922113511558098820932108834976300797721426356230205"],["28821146306476083556933065128242485583909431158798384664625891605544074208455","14686100306666125361512031606802191081261306390173952656933511843115207442688"],["2984354499219968110797767919682550810972326035194110704320219483030366584260","6543398440516889275242363226788653681762394527166924591523015252590220707789"],["26357261966157944049580546578776246053862710013603201233141540552007925497705","1651557767625830750570329993268577324000851342151086960735500440527765549195"],["15802237219044669827992068024414736861012940552353852287109853357836878546338","22323726538678439541845509645163333604109765918589488203158636631662400718721"],["19974827653139425191775429210711550047902463848995787313174427466579924187696","13891845233676300793931161957971499308086538932943632027054487165661033079105"],["3605175748952999076682778930622218929722006562330225181278452500024578466080","8871261086821677606293519695542089816464073966447008495371578294383638163549"],["15679432149307515746219609314839928153282666023684646158442581066322261538439","28623531883596492587812029494825662323084458327498702244495435378068683932358"],["8265127721045234375180845509769601675743747261921967055323338552038377382011","15310509746284651562569006244783585370593072592547426537264455987628748509016"],["23410774697749773900124920448132218763722115071707133197767608247968190674093","20715228278135985005321102736824613066773673849816598439249958093529996414598"],["14720464641953002139812634353418080253368391450579213705087468406088186571519","17525553783921142185945388589836455122918962810907516279211352882096085823097"],["28600375196451477450994895602959638831736123682897571131010366154201905551312","42209053936234889715421173107080976443925897353850306531311325541973708534"],["26685655049313400394981747689331568662875399504121415882525613405369634350225","1818725124638578675781215652755821635221932191377584497435339966110984007803"],["1526909000809550831469472143373529593334057328229453599888070427214883704920","1399306040804983064369254880472731075856538699425769351066612299134994846142"],["22669109990397298302703597387422022877579166084680758552216329378626235343931","25920319221000755957417192624823159393695189488532477440263888799752364916242"],["28369988909237905605790586167160046930131331192406206051553589251889142633408","14407628604299945764073004887906250318082172414875584979295536757657181745937"],["25504460974771802558784889548044043240825334142135280796163578733615350512959","11880831660837322656003988585653916557528915202529349935071894628020743856363"],["14919281479996844742115552582753125639271633074289316857155290763528439370397","22760332980901393314045404579506723785529084621548412878019316073942281899111"],["6138225019903147206874776097835275347196678057734548188447449655564264195743","2384097581293268644766070164210644158094398541818785475747162785502107252712"],["20158772200063958690828771841174354003853542835396574636101477690045837465035","11058562166950231690471500091921260298052587859993185565612646626853701844183"],["519616590983237777995106091572053105119943404032446142328420378579763638338","28423077709590206448820154549755222984023083012703236321634605398330247282244"],["3289746725185780248767301747108376684006928278394915310659035410652962219467","24002535130972927959993573517510660432143789000527321011447182685604035718215"],["19360039221366320095474025502503500893343847309027316934249786701263038255222","2383722275483819232694524074550217093294955797611508792790364868491614721531"],["19892230897158070151930454085918420301436091257996507159555208990895379517251","25189657477017576728990849259654618811417247477791922529745963127872668124466"],["23318957291559231034503869181943530720810279517044611556597525772896958828785","7462245423734347932778659850573690323236894163707267055247887217278873910470"],["14512127841297505026663536870695838189414013972570651585064304206833413806511","23373178245236039962865659462872134668028050727164264594005727144668300548868"],["12657281327676722020470612548309812019037687167683179952780736140875414453844","20481424943067024081299725595323812342396650295634808611338319593068095790529"],["5144188261279310765021753654448705249014399019520726985406814635782448594688","25178129526232442605574506744253392089478907014348387642033980509795633068616"],["14678989657166709803198291708888633105048935277754954190093844189363741910658","16421265088255575861391810797282480133162976772354739652378605967795948509558"],["21370671117873741114783298429527515968881858970925532005159287873535751558068","23491859092284709250422675281028224621836070379842017419657453999574766192146"],["7379978852462374751701215474303919682172317324100140000268224537517372016516","2123159712101232521274248555630968493031990280204407673601456998910905320134"],["12468928255244653066568399019391263501278153463400200685633260357121690364927","392264110866242486786641500051824871679271328794680305348357839965159508777"],["23561939169394331310215040820487995909486626761725449545413035753583094752000","11895160171188559986702447859411332450748197908328946426502573023028470179972"],["4048907693474333018057964349456384736275146049557287878658380239972744305195","10760966626939725599108008704765721230797897421928960294421556138793649666651"],["26897165659522085476651790087240654906423358095737361479934743960266951873544","2203887107580162190406521546062238906212733888293554542056880408136934828183"],["23935831085107991628858788358217546328864342498108190299918133117898567678392","18997993199599470733333725883016774611105536187980089743242003809359012921845"],["9555337093717302707957308804110983669773537200494710592887640930410104485798","20446221534143808592889979311617338227759773286370454556190983917815673512348"],["21834536178958884743423306411843636176320135886811228724023250914700070576437","7182875909555982452300373973279273104376910462904989253547070925667663632397"],["28166998263299268608143293620578727479913322784589105437730571908381197568252","6001432576962675771945321481829011495345752289588025853905440869065824676222"],["23027402563075102892226097627553308216043185430289534425722489692973160583517","17859453766374969762006765130971728166991904501550304670858486657102943453065"],["10786580815724444272753580280233358428674370829824407608760590297201572074033","19466137581103552443149797473864650208467967280413648333704742011146473554874"],["25649015665805030269917487819405958744031792906992678352879060875566249866247","10988872207884267390345803624574452129957211778947314118605876830738833369002"],["12633074195137125544498474160589454879474192953386868069313481578832194791701","9128010865302561239612781783007643062969685571927896430711740368512026764452"],["5554000810827256335500333918352554651458293289903310359478618610698624886849","20981329560911262198564930293986561465361271363778990078755004467362217432749"],["27764844294236287374864376380762761165378682089319318003723163677530543112373","17650587725094761519082665515093831898532608754746167324842916141069392434367"],["2833172672159402154274786557786427119487288916097237213349520199194562446744","5527142085972910116247959319844215973677591536322186745816676370790477864907"],["833307582330977361400389189534619422495709275326579546907934701947696389050","24549692790130823428527856998975288290702839722471806428485168023944942188152"],["15833077936297512870656519598861488501162277725399381480391255746980987196917","25787398273667107587552244115314629414899969773411405409365093090140494355750"],["1589787510114331788059625989722013263699047858969926904832370145141874559392","22886117522339405821747160612225486352173010864295260714202810406823043386409"],["19720532038350993076133911049096619524354323381386233608022867280864516095274","1499807081480013842886453738490839674464286595395469253140742700189538695344"],["24060312808228941580740125056284082254251695824555631378604879548410653267600","20742078539692476420942243663931035612252017578837626016823539725310161619783"],["4235346537429463218369726128152416082996972909803034707322192670957611767338","25286989807332762246801143655014859905806243869812431295932769244323351225570"],["5491708236058774571291666469128211278145900401956858102178749094048960128682","6162013128513356218504666176566494023091348738163948478536278025697676442986"],["16245948690532571494898306920148366280676454521259735232638069886172544561049","24816715530751992267948701086690553356030005054077306331058969101732170707640"],["21062009243605649259463963720786182678896983354221681290176360527374826237935","13891234053018505184992381635838606105728372805175366575069664943017387968445"],["3847037517244025948733366858641996023595607955659814598378833119879202699988","8234295418866299116017418933586344458639665555330008710389507978752217784322"],["16389156690831336969943493747626872037248788692891304857778915044564042525220","7657957487741219445520434476413487973152201558221616497550000620750464439335"],["5714225949215745862438798740747351116549605745698328728077759508484881136436","3361862590500215880613522191807304951193794473888883343235306259664023077656"],["12081799430319705498178486373667435829772506028272783839181291973584776626355","1225960033779280306421744673134138964475443714069752253283778653735987029191"],["3548491850195292255956461747825151434016724578083148766939489190673187590538","10761747638185101019749372294319293798227356684670475276224502050794078577683"],["2683910759735525394019176859515925322672849212086125364160023122286588400385","18368386990939239974636933404305856306970070495671717704523205563763732981708"],["19258662195930373384696987489735121806825509624443678129170531771913983806470","16252070719685843285079169375291685444721164184228493544179407224548832583088"],["13502062221474317089022889074462878173544486970266671760877842415038804740194","10705788320333004306015575215048790581231851627176373022368267738770791698338"],["27751598409976751126123624378625800729423413478042573204364949174702263929537","10733355215196225910113955980682346932649871228724283547477148245924574644821"],["16624865728905617001333775348558456519430841566746914941974518534681936719137","17115545738292219334645624967401100612582739525360407976690011120330510531127"],["996248244405634076670463394134590983552089031183433559949160070763594661065","15175574347436912801239233023886921352528825764141252225857553056814510921796"],["25564450227671539256146117857377724207323467791377237887735993469936661683675","16158897747341679615097397684380700633358722972164003222371478274129167388180"],["2673162445219345570006048380700509290301967757182122963904009016055799043427","7283591717970889091650022335430087218729659046415425128102977214050049334457"],["18610038190409665900861254462733646047567821123931933827305600806835887812385","7805071586842226737438537628477234712729392817743935715940213693769649977356"],["18856397953536979882029709458764571102822179408647098580345283138552011521885","13892592302202195961167652273227895455896280733590324604328582269538555425149"],["15448582902539120548228978853637512067549305306351768155768261817997766767200","27552229056177195623874200111678760564350183441687150240318447994877829822563"],["10813031387623394213009181219414928163510046281542033267538023311257143017268","8497895110890717227449202715704641354163009780668705511856439809674501979065"],["7131548678957119745630290270068707839332964315507246337193741473284126099771","20625809583393790984378732974254649299268741798702639578066528321415274018407"],["4773258897640960010297882156639172775660662475611863155838638076836295668618","21560914435326392435103637559795130216453328146937853450584726704291514577387"],["14830094090463530378224096778207146583135198705441653305566421996708340814097","25865267303107641728893048339406374095266512366172693408999355920453771342246"],["16502473731651597608825433048935037734973838321459590432543713261441651381183","15359562551032026676906253304185570964393708329834757070531474634689270053811"],["23139995602722168894588924620658003378629222215866128123725238184463039646003","1544650221501284769117471352151961299268634531177988854434480156319593633140"],["20042270184126880955289495823003242285422700133791768918551207510941872115998","7383421679501211304765587026456534172392491925825636947097530490078612779844"],["1364491880441930337050101840342019347745847025889528803944084115100281871016","21368338640577356925420278010112415879729040084593298936458289036666735620722"],["10383697411935994122505451728441134020644923863921776424699691090189842518065","19809446241138079012883966064117162835908959900777869449297976880537493254365"],["12116843816377504269053506654612551365263737472157596971028258021152936175825","23874428027362226261058486839639361087535278063513078762984072149138655463346"],["20744387371585077754559374057549576713611587940850222241887500937868030212048","14644348738554130003218246734406751624665027071711463454783877126262208864895"],["7992374935442922116960088612336002186930282602985246521492625357200192511042","5112205027102122478051320547502156868512377480815149422873650611662878004780"],["9118366741890746496612751062436236911214472675304888250863872002543546400860","26810167764846308805308860963078102563839376700546623397993087691152476182721"],["16114853477114558346426879294449977085412500069592555682844625176867631992684","11115154420281699472760668088074632691110941089602012587922795788703649426663"],["14896937024322056619412788313941809356059459446291360424510039137314387349936","6359207949051307613173449777480035559421860362811740977719756739125495370633"],["15964369218633136176740360742873537681975504842587688633126801900738615447740","21086182043646610543564019618467515148354173065678328290446302223062849052196"],["22752924331045491407229876001349170258865386333254451065697419061948044406779","14496482851475512144490744904920643043669243382991810403972036102139397869453"],["22860116117300806111857788718453107197641000825506423090074727137777264983037","9418729889291742242242602202688411296086008658690837581989428668517785314066"],["27367125032795054112899145128740337524413610884244410373757932432685245486237","20898402627166390055079114528166213883452257202328165979546523206408841846157"],["18413038949940050166808938652072877974867178588608889863469995821069686623028","8995378703848480197706536130381218503151194112507044210439621514561781762992"],["4435264174839328089626688222237407732810585437498080554737017819090069670728","23033328884336879310209085776605507603568776557650990693490722841549178079273"],["25980157434268604818325903779830886315245383741815567550396942706101108826540","6649453589024267806057593195695924469100397923691408467955498466940383721080"],["163256410744572153633749353524813283597488371459915147223279117229291126169","5684548361741011878665986312829110440371915676160018470902616073543219310260"],["23096616060183224928953255881863335831552613298216895223077496547238048324516","5612417789054876411699975364537195902072061448398198577149180774425816056085"],["23301142933757453756815512083215145945922950019407665364750738724999145735759","5955691357871000706123774934569151295020776324610568585057089346205626025398"],["18876866027562719254098851884167494928798374764311104209300021915555954302440","11402040181284706701392968400352932477714373649873665043462567094095911277667"],["115304337426040082293385928052274110312987910594539105790128102677771998999","8723032759535650669403094788441440427941168307213260879323214343922790383663"],["14495278097457536246012358004087067801566070084280017766367623015519296813241","12849424917664370263987980626076068089353269598351737726895694057576455619183"],["11306024031675991071837204046166967114199073803231264208622671872273073071263","25014987569016057685808002351813368657002014361555477273270718641962724192529"],["18719108040053433529860919649226115325262211967278469235411138465554086718366","12816993751158874802037547293574064066678976753121004818632924810326318862721"],["6580606535074274311849421595376463682539554186357832159460622412240832148444","1994626000271675930088191044381454933443638451002204901218765938733282135073"],["8620346989925505860563987868817026270236683429125734020573887230268309807126","4840832613093865608009937539163660913898660480416137085190994721062341975849"],["2737985918833314177934487085024949393589314921691253586800159361338687675738","27526524606427973687135100338618631130560567611138863718734440599999064772212"],["14592627530298717416323209725868049460253911020998565737450791867025421653641","25731482005136521074059068915587905028249145010011794998694477494373364579781"],["4596920025769954129748118612774530846797311362332260173166508341247044135827","2191206605462113373392429793085054069683208645387949644532677783215937389295"],["19420430894940545863297675353364841562866395027162047344665602816673389719268","16572375250669920543690369724527581129940238404774547087316265049843786847684"],["20540984055638562176628259979214619914205640029432236284849438159073282506228","23763082775809720527153358864305421163504108899901525843505191009422987014900"],["746993237637219221748228570892022498591891791891031695404770307761447890789","21864177919908155971640856922992596196319884569974126172684016985114597089160"],["4878441152187312207558891956036435905013681218936116719714333618566885465421","28475657999643934819621561623785212997874375549348562116562529237137803651613"],["25708200034399379751481186279822302621776669874351242694928771114462295617342","6969237592038499878147496503856896660114258885473315828259514193677992732504"],["13915080726943744696344772147859630905273838319801115503834180657972107055544","18247411845875880618377376346346756986475311786989189690926478016842159583076"],["3272449963568225407297927741230954162283467204209422346620655757276937563458","24297023665716962136030229652387485930241307914533554352683246609599638696860"],["7889776956423035888776641693964335941112896719418798459503387868358250881413","7115012974067576337290177371394066700480808169861543154887990466789854198889"],["2085190069629111861628221817734110311942215389882454893776384747543369896962","17009591565158748921054672400213386190225138978668397697296967671153196715980"],["8228345274563130590400754155828988312503593437870797275221939037460099881673","891907371662468193401187921013474546729614910780203642195476804195927548174"],["22531390227441486860711068798051625052803407699951899520795677603038318412551","2087037554319867567666357727277398603740387100424512556658251356860064074462"],["14271887178132618271483759788628989863932531695163060693121474721124903681038","26767443548142562218102714077100209493430211822127458035307303900565933277798"],["8738352502105581365479623177730806432257350220620239551262197328539112695209","25253744068986644999063021743701591021933451734274833235988166332602436743445"],["18233441697709450399188879104057761942882701478601023502437069315003927123324","7920130412483110462309155254010220239515715977647581316759389702349546515791"],["23177863054582682388834702033156921673710378691636181780109941877111300254502","10381938900043556501131000499320283009281682214331883950347752621945998548570"],["2207852578367507928323815741932802636440058605147482919148521027636839601288","5000164747925707943018434489188446444442612525514647534184311240494302732176"],["7387629521991415176052211800393100114844229742232314124477930584803953035648","23130212364439083504765700443564979659581785659401160090006091738242563680531"],["13562034116648373520620152690243891980718914791485304373839145628297362280519","16771263718539686303708650033133226584122473978272036164812773402294577566828"],["802076130625044295086715909048204697009828370100050244470958356607631588311","11006326971261946459692354836740604697748805931164900535786747206141809580602"],["23192835368071447420799675628042826304578080212695286539204395766499333598334","23320200199384276877717777463371633483814758686158752486613325600391414159188"],["24394813077449145177796759602937787372749057322812681896488861895929079405140","2416317277367742210725972236992098293336320570406640448091747402254399566024"],["10038282174327643557613565767760346602609573951056405452900847865784151853882","1089612692464922778823076064330329862419538053714531132342738380192948799741"],["4621624424929558252273204821679446369792561998527494542173693531199737597223","20881259757967222762522398752338032666141564481735884829199442299620771620848"],["11991916217834279740859325563928560709174413820372257816737842143354093079366","410776187718993700724018405387891019448377954012694683845482685726553767563"],["21519402651247517581836834745354194694277951800091154281277584689767986400518","6046169715916899856856899349544741713209961189115553099271963783556337853017"],["3333536635549540500601345183325231899475349944423483041434362891756922227493","27918801773315426690369020893174537755223349784515959522277048161569139723289"],["5419992614946097298237464566824599640105092521037452263802701771297421931765","10274541259117152002852187667074538080021438365772245049921070799959063775609"],["24843922948235264679568361174460910043452244286794202064086467668973574012647","20902749937825611991312150267151576600622771655012109764931339917952370387419"],["6961827914685323297637467634453929637946563239215546343415574399843249068780","13669375077836754685174910193395154625052167847568583789971962041885562183834"],["24786124627935314520881246223502916868459121051093269655177189217490568449887","9905739266038089095807194134308383351108460584097346396390818444264066692374"],["24860714720293299819304744793395336731423527336865395918645382351264320154955","6905579174213967859301854310801083567940637641835696886514376456717015763185"],["2069945701964605586536012863738491422618315168158479821328419465163635755810","6902009759686260589032874642389544591335347021640627800763994297819012683529"],["6159477940587938433225928225251282788700194740463744101676079535445576267499","13260439695776829920006561458765484679733140223002700722753618799148614565767"],["2045620870218251549384093594664901374692813129342913859754818881569982839892","12140115004956088441603676229291543368812604184493155657647461207806240908866"],["9419171896393261309666566470237372053239406911478245865128556804285513330391","1465837431287337995832310863488961837455865043752466790368739617098424505120"],["28729524404560880900794855649685001595106081515598950035656011002160957506482","15878215399696736064861559606565830049927738211298614187009059224961336275358"],["23045169496467059428111940116055794310830948476689972742089033337559086569087","18260948286022638285346711557902325237240403299711857974108242361607279300357"],["603999671789023130272630006744683867882342280181444789939281578857821041423","19778731739838640431190914854603892820091013150074549049498536257569076700646"],["17479906003513804152724958328200053786793190056625388412047100931307998147509","11960044867125668809913627239535408209091285791336539035071920608056081154573"],["1760117175206710522224384535404901434901134321722378055314253245281739456884","14616236334649886079322899800938022992407246420418924682090844030751856469696"],["28715846620195414966989164105431109565200372315322216603941978250716604294696","19754548663734885092554580896875382471907129806430082463748827419942425710394"],["8138593250891890516841219050728346755393299925152932916356928214885886303700","19411636718519376761592617798980316272311889759496080032014192092557532685979"],["3691594378408312688563804322734678624526650780679524997688458210661478126887","15919155582378509857621605846323117019913249269669720873503736317666854613079"],["18394109827417727338037270033993764562637123761899488197791234966392915276468","13904462748989519976647637774439150147836904559239327491683230226472753719443"],["10221348370342253426802911466685264160795133129560475515817082489903590414638","17619166179703933792338921316737872460463040976491816091509992169054820065711"],["11487217856123094768572822206927367992802256133206446423225041528776770684913","1101125053312283738362294593133846121610556469267277879763001532054325766956"],["9873195321409429802386718691996601253482087364811275539045177916685194306511","28576664656376043465067348021639592954297884219987216965819250033016454005934"],["4479049961750197008089375346878355511436303609626098645820509760665139956370","16599202493394832430571355312622605678947313406944509946383430891222776458868"],["16507430603035077306453142787130084088078394087370109427899113714201838087995","7022170855897616904044708091263542385226056354417698015502027758179041697293"],["10492416240541295566834814037976052989904587295772534153401227210587232786755","9442743321518927164809991544098006673675774156382678597346301112430289321325"],["15287596744492714324767925110258414084984140700871322246886274113103037274888","24674988304822369041431026138198731691210223664632635483571385307431147516017"],["12864192402809453218781161226999858854039110489087911752372701674050685410409","27658008058770638377645861762545304923883922016308793621917228337130418439065"],["7477567608141602579481369064775058415316001976599865262827717362122304671228","11759505289411136494229725280069546326836844552629494554478911121072314500313"],["6560221644299726400769847150831476830857281447528666259960462450187897004725","4327240870513479880906105713885484245297090752162979094244812928603296973563"],["24479005634014379640267509232951931686723309831690570508028305621558491085100","13352136720081911125565636338220655719662261215053786556023403151893865827380"],["27801840751483022207707271925900020652494896627016337211507524535348503592037","4539389618089636391623809059826156732505071093238367618658755587785797480869"],["26548427768130019004301690469920928629494527261798512102568076352043046833124","15128681780891199964057767507302267460131909078078260594009078226386690330227"],["6222527050087492601193648633875536671383369938701537169875376666411764701251","27576308415642955436763303638309000922088971921933396612478571487465781144319"],["15986038668989239292036280920056325548250610938523438483745241808563247563536","9258400239610473637510879520876964183414738029979524194016894221703281818374"],["10466540528004011406713546023438221421732169663727724945318164294547517296916","24880996078346788489470527589947659327494873592629599823498490445435974039476"],["28055465901772404526936843505725645316326242479757016767568051291830073162901","19279717979178786883325107466225978583942816976038307580930048214815868539347"],["15862170075321583975912438124759025233664022090542263139227128002598328834972","10496123308790432741887863595119672262587253602533714825467170414994425830530"],["6522748063934643001421908069183146343081957854378763508446462162899597385751","17076245588655191867032700947625104382609763119980648736575254842333132886319"],["25111251501991947458880230695623683565209745888518793882977157133545643738043","20913343704373335466377091516572962560653705711149847613126506521535116588861"],["17698384715832272637782707814920521509573343414924988185341197178210148301701","28823574248894805664469327635452503951656794828600017112468176689672001581320"],["19304050409159980083715712744805652277378319085868268554395506421666246599896","23985444591613939526120492377991154449236488416527178277894297811461218774581"],["5055570236249726811761202065300486242978372081560404078340546920883684225644","10758132038330045935519423906811157570163887831625076667424747120432862637076"],["20614233627672297932237157403229848668596495478163105274476016140973399892520","28568285429378237483336571674715341057699701210109163125459528739154431192374"],["12862622361907913075662278448034362525766486546507658053081341560496990983900","17052316904495745585844503351570855143419675615435203923247700128406003372432"],["26395468268836016101751440502311736099723514768303112278483732262216434285281","16370913769920065814031797578380184006443689583384477444950269639045635736514"],["12081356335496299018774680468423245797279814545180872104631996196746029867294","22715980323287879133535852023834534005039786081188980630984586517646484287799"],["19831883488873863018646873575639416162030551759008722147963859887162353839253","22969251146510409551280266805705562103741772239722569597140801508505008067779"],["27997544894045109964117983959444337301721589494864733969897447815101480414643","2855528002615810763598384381212153467484290046686179009463219755472055623731"],["5178538456730242952572640832976072588855917695710003797176453454014366243022","18105262552130567672531975630869686815436157356013135634183061996291677707003"],["3507011189501472631537782714908840824860691470297631755772989006197950705128","6370869133777591585914129193191717776756597856782653848244241939970130078283"],["12384888528786942876466531443694307431743133380666402184593116180053075606799","5200299623841538112423899315073249322937630203169199427389362393216380490285"],["3581554461382427665437207746658149828466225323614005326426651422627994997604","8279492210060996402941817854975136002559909353674434135623205148729047049963"],["12427834787707355114462559532216223840276346221152055709360019319301378374680","6340133571783172399786076624986420384660844168166683858266046197199912886063"],["8535439884190491579085854403065351346307383856674432545853864528376305534546","4645576190106525714088004344579573838069324882318776693806910111742002237140"],["14424056183615254302583033129886151863600465643267266819987244376662351846555","3955500217005547640865493470499161432547652769017869134683929851903447086101"],["23956909103459795544427869699999674172174457671866512978918626516289170133953","17344332642793871726259939990908196930668366965764459028434959464008584655174"],["25771006203315322919409708742100771290741589206122031639785527858891387437024","15918019970684879571707985957593216305062321080313853127527560207165453572917"],["10588131060279277129216343715570950372113277907719156157437782708504218885493","9367825523851511637042391561414041392958075625764742160881796029738537005226"],["18529344674570561512433146027367537885346508208982925271772623949350881648712","9743799273341078985600128573182534367654396705900309886626266411772608069048"],["11522616883535993830462257722292239356254831983970411965265421809400679467030","7025130610188234559656365679446029825290527720761334402476588838078221897949"],["28853902272629908692595371416265882126977316735354868519790447313176916368192","15584378969079271390519416802888324565144209696832313063736311878113749187948"],["9071882808718945069147490371652955054807622031981323528602221065325351350800","5326624337082762962923792653273944764371777019144687691656043782612432210523"],["4378319168453857449227266780680205901968936207906521750126142051257000996408","17713514082717572594360875722788187914858332541923867239208043746118730455371"],["23116559984391744417585501094821865101323924391829231637535562332224041915973","22420881857651428654408225455470294685691751044062468837116322740862123101746"],["8426741575364747976646872286814821162002097863991166217539635993999086736284","13433430768410191834329796980400653054904604501301275155184187597837961394075"],["13841149402487776772026097409628913990546789241541580388666032054118939774877","9982808328378450968486729250365970672494629251795473258343831803684279511799"],["19857715378831263510062773128841568424151275837832775878719858627099385168349","17609278406956817763914393620462875605530678576900670510582814780497091141715"],["9778500838484456105609360193860619104960898168752990095817345315381105921367","15582164194475905226551807666194108396826237770480897079986399439096661240657"],["19024504280081108983710560695941343512547530212318180268840565201263250178974","21425525631739894317942812097198369709378313560246489574815173132310598968224"],["21740144217376039662148626829556882254420790820466266011901733397060902869469","14542518308832540109398148426670299589233402641390837090590509216848757869356"],["19036350987599216599928045340639261352919817926957305463281646247126944661473","4029885284259122044933540141813570194561350714291995266937689157526472308567"],["12080478978389517844219033749022972024691779113703505542096551244654857498106","28311674477996249480192835868440115849136429469325017264964949376499668381843"],["25972660180973222476888472992977011937563547393098814494807051709948788020808","1385016100488676682291588606460554974386718805670885427721865392556702473536"],["3356521326873249358151796721053585926154132538475212410924119822129721283367","28361600598851476641807121400363400688545408988565149605610597638853731806281"],["22782079047236908550624336163942680517234342882990533608927522430159575908828","17887383917667749920994361133646452185428795775864546288346259363445094970474"],["14198426872502511236000105144348740895225353720551920570828147458958000818257","3992290879941566597081783143168050853915508272646873070189163438844278813031"],["510587172496882495151133483679547823615055713546058631552836686294598039380","18317655761264255718447647134090151165447050568531650146197817199754547714561"],["26817869559657354108716845080670206842549244452260429493121201247124795708988","19082526925379711379253676093927246541211937682297168303676496715354160327265"],["11653081487249614677607338179974479599993503181834634672141985831588610168372","11061143315635401280370475191063329577693579560963111333410158298908283999292"],["14650102806968489404861000950623228148530169669593527891146520835028997990301","9517454144740666133509308433512407878070958683162828702797874666497305999265"],["28556600320588731763269747089993024340918293055793369433620187260958315544930","27761859989673701893986648209508890471484789978494175001218044224542959337125"],["9722379866719495512147277900996462378448895388371273663520679004460305535506","18717489831845439259013562695937986028564069169384298705907957487821851053726"],["20075467052398446619494095398169853141308652900998547530903363180884804400060","931302667219558274486996567962987364959440110101335216916814733080840315605"],["23427067394907703881009999992976566634002557677248192345317016617595890793737","15148399095106102660635416480351404214436519042040602246401146543485013942255"],["24905622542212716775141897845460337825604319847844771066590046534027168248020","6846810022015596413584979343727066516712794315583218770199416758179270430805"],["4779052403814622326814217005166087011148741620353429348756520254225191209884","24769234264063823540233261371277689916560210956119903448374560023499341065449"],["16120913828419520837527613672347309384561839238628919608445575923219963204823","6854022230108239159696856392812069674469690361626793033324196373128668835468"],["9292190797611095618009536437511869477892374930045062420136216634767140749789","28231717724977929857372721111886206050759751410557087561841930818821873018336"],["5886705218225238297014924336534249387075393910321901630760048765017595028946","28080287612886755836944816603756720666434386773232306273964562974242680551393"],["28733459623632171754677567664736709663824101692853932776951524095740200983345","26628120649052406896926042378658340052857407009051945668257274991950229439235"],["22516004238915352812677562880870248859691873948339162932322489957541868430034","11492670303011674557467062714715466903255508107301819767524795201387358603486"],["27905578244154404324982044644260505616843737387818331864370458863436794452620","25434791654496746912831534207055594523390575903817281395471615040378624275697"],["17705893830911245712568543753045529627936123796374029124682127315420241505025","22039273876266985097224972126288905128486827397670204549076796074515574745871"],["20986062455661675179600991608241838901509842193286363497864560045562254490620","23569682901650430780807377231234680187181727597520534583212311297832397107385"],["12923191663297622588586227363500634907866731182734911505294695734571384830873","20755607489449649484560348873051713372541935758080507056669790544954937039778"],["22476553497947110306131326464165798057068940250069935316528824696043385537488","8571442543745066185259867556464716901174616396715681073788503029775234466210"],["6421301342195917492526554439154352391068017541618025734439261152810962802763","23605818779819509756899392334051134370279713419167678793297682892304749137955"],["7779059875926665502068320231326352150116545209038027716518498616794730290420","26355285207430513633782039260807560780601492394608522297634535185259953505781"],["15655245598702465898867077338178980203735121947738588902931188799844900372458","8847648266782684422501831944450330939985485738799037177662918665767267890935"],["28337582705242093768218252882830788060619231958720527808078018670389559164142","3700869602740986664001349739220133719018479963521018875699635608448075286213"],["18004683547418657609067292264521605557244332527666216797421166197959663966493","21603347314582186458169561498710688002181462274089543013403150591400775148487"],["16115414906378188483032617581169913014836219161328728648268695841291537893745","20375080819581024978800086991967955783444669878665684572654004093446606203175"],["5169652108525561268026043669561109362457207635755698013598741403532950832929","13963748324713831995910290775114702086746905322827415710308959061935209548991"],["11120247031925878443863990098401697247377160636197829837274394908256420336346","20480469191883702340854743937478420943208089694479154232795788534621743194206"],["21670030915542771039107838113368619685096075535730849438408595359943086098900","2666365918650593607507213373319354018784752398350486943314022540598979650112"],["20761508403177745716596012530300717408983263516771961366863417059843616403015","6520706227764065393786362599686369052852167281109675834702778582616060733146"],["4153616351567786133126592510529215292247370760349386279632552525729408519024","12688225706742448504506893076891840169945792913827901478219221328429195104265"],["8313933982467687775975706859974982962832115934169177742444634472301581244032","3988877891134130874075905540930874286089597100023300948554268840299821208504"],["14036152814008948406379470252627837287171338944143495293005485407330054868284","26518466827305481669949801416630975525077323523535655152319365307462589568147"],["5509176582533884887781186961592269777828299243550635908241179512467113251865","14433767889932603268971680248368715236376853710516397251638217138071620952258"],["734780303685331028789060023190368544274287653590281784508257003095596911580","28018297623177581793018809114740139937574585356543090428673009042518138029729"],["23891057316661499761749260604653709640044247104874762736304277618130308921258","1660053642359290017963210376079154230543698696329309204903899760384128195052"],["28644481270389997504972867869043350721011853380343838565582914585522015188107","14578522024193231597799025641519541822595258239944847509171069235048565746725"],["17334082573455606595039086815830381103778649687351002497573984614712851235673","23554847596028923192237137628547715814036943477474535740348735256826615274051"],["17867490199383766118209305276848800115029363345764433458271739740897793796732","8885173399687417373566324038186458576800858642883410236045479346393655539056"],["4838017594415078788455112697556806360037765529477618633105556697387025892385","19359810109849126044998685580632039586625480342460945743180258237360844177646"],["12388394515697248151989174776859624260439924275128757257949090503513911136179","13717717486250452377258313824669300482444877485232089340576039082531005319221"],["27818636152257074874693523632312935948150615211042022297855146925961131389132","2098222540803990794983598647789825731500619186442713886053799832368710308453"],["24234407865664791998463465676763464989313391446806870757193087059871498097793","18591151675407266943955414856683518730853265616777996248348554278386911632633"],["11152966256468998733929609665046560290227169947590809296813153783508375425630","17887890241175835652115710916231316710558225719842625696747193251845647579453"],["16395539715913109405979823166313585410304936814400118954664741172262426586703","21770110873879577514735241601290084457897340265106626388579951207138086109974"],["25799114525373008429384032991552794777866044809483566701821976122128561626031","607011184324790623834893688258645153292214312378213033910423085319665752685"],["1566913119620188125389546180632370521006475746649178557240071146390241274475","25954737247778958255910430273535015370067181786680287548404778734059055462038"],["2642451488850337986255096605586841974429247997727850900700824861517739605113","7807405943144955377868353783085210383669891030337247333993767099539939281577"],["8851322728519193352383409171095427402141354917238534734354131564093335664148","22881943429560079545141832841257111489235544872107252465770737334769880874904"],["12990695402889781729889951597668545349013035858711718900759215259366562308797","5666657143360608932055068903322481213616081248196010971687696244811491527698"],["11685075396607433461726782453481429945672875240760499980966190763718740226474","23980981104544248547462997694892516655898865968810951175971861695717018876397"],["11044637166122857371441658515431102399604096007930826622352378449327319002515","6486252311251940270186277675061573315861355988639412840041459239366963231794"],["27523401612592242218938493670062687360512603014510793861294805208217973443957","22450977547104266321645292368468678000039407384524777752059841187546225531144"],["15429358827842092651702253867980541110660058457442127532646800089254591245801","10278853361824369321241847117580126868354975807545484584756532786389745536367"],["16290084136867411147497692546382285303430870264319771896396683410051681904804","23356301520456437632131237687647374577653334913157027850862984829114706042987"],["1698823548062975202232232076773674617458894169145238562175935900327203219135","8191964638109080108088799217728865054373684294130257565749847691920743312092"],["6763266846359856348564144928026349358288585710678366359418691352014155816416","19144685961446319492506395125494725212747725631986425652108061769413225714751"],["11361574271680054023193038725515529960278494749229850698647703517824855720834","10632412733328328509102620970995909107621062256544637106458017455926644664077"],["877407691054596314772676788873156846314460439074710276135012695631403048194","24862549192065293321155196471816738568238079185457077983666067067039003769218"],["26283896792213537949920972296698483508086924599486448460688234196695414454807","25636137616939046203152166851675354553248798173340187020420666609367013108380"],["9123377646331052420602903574845490817967752953426758128812955450760527950102","661005790344175710275813597606254219669858147409919174827356802702524592425"],["17425282778025150370463917963535983003694494686375173468485802996198536588930","9102284135314260305652061656201276151434125632583615368434766256678187775195"],["19393729281742181532555603187266435978619444811376242181363100751714720697920","15278933801015699761567312226116642687286393532689008939622966095048321674407"],["994185012134660710510879027101595181319917040022271208333334919142489708553","2594290128456347268740042700898156743429130808343040663241008727647749230801"],["27054271842488470308204951177425902354378585626777499688635435616143888615566","13777856401251618729881829018592647607076495689153548956851780861110356627819"],["17309722677979526538564700079627880593331487677313966416478008035632419023477","26460259083484035783579205835891567289061429871233654579578999462515629454704"],["6275290751394219696022950623712237559156693367745527558626121877348735422309","25380687414650113798193549680033491120231485925070199345308944938374175361217"],["7692248000964039437844743682456810752699347594919784186548198754460205615747","14434514330022981402563041115648475645726911539685693718780668378250181971732"],["20855441641829149777265169502444210994373242851466950700742982907496090920983","17639707174605031048846042569388250906233218208633189944221977947897066956843"],["12010373810208337980052852979023768708421224282473314020072849771828012627908","13132949210556943094449966644932313658847680633651445660008298755740147824531"],["22910867254374505961614207502623203785259150989201896538348790724123665139975","16351756215418891330464996495275127798350783457401168026285557931476159378764"],["5993401998749333234847493884525115595774704115841340664167809927585992875722","11438812369264101488081949044906176211151734348688883072745501788866392517228"],["9039241554233803383225854187783076209726632891282201604811469815810338992781","13100915299963164792149708942206135956819457281092461878834086249507039986971"],["17558036615718121232916000851786657776462784987530715005339343962425779906404","18037265550564941435781189795567761281177580625710564979877883339276849757125"],["20964405407176819843204349258807161650711912231266253668490376484932740758494","13943132238273882357001408890641141416336550375584541319947767451558591330991"],["17536298764540116430523032174949255025736382405355956677163151787329256883731","19039475044155444999853558677181908148920548169441361874730856038510830179741"],["3101836405209998789611721771525066316795376360588710494118359890980530148914","4043171284590235232966133135893137338064937228661347503618533511271632453015"],["20511633710221178406714595513744398816859173171846293084728663398969059190652","7900158432453309393962779492340743076383757246943015160247441811251070807281"],["20573449714910283388099652962700732867244301853644451605032455002130489339388","27735205186460987065560995082412560354280299173206671310108183256999540399787"],["20265646695992438062954708037595470142718553714795798800374030052817859773718","11213454002073738938090736317189314924791730690449112557103914499477059831179"],["16771601080051478816642794775344062758982408930573233404695898468342443156606","15683898543925607760644998759723413156978463459655203616677549781484742149926"],["26804604733593724767359946201558603732708845217410820459202533979353762328166","10280665928854204234901110102553134971792629746613482692982905059439467755411"],["23209761198993577030170294597893164052535517185610173036540427440269378712401","1255740274952827016046335743205222536311369930621707321655309464457399732068"],["14698047389597191709524229433407903680999710346112439290112219868015654151621","27781090183024626631997019974597725897893225194318830691847130246559279303727"],["18815324811234885795879526518570083098406187157936071326192927677945584542034","12839601616596286610983120902998594626262454251406182717940664680370792189213"],["11502614231222655873992500437842170780660656512189226970147277084394677500669","2097451848493155411071274347413569558368921804354459748795535687315137204805"],["1318794386946979057358472580764932497138107047149552471009800394040087353117","1088663846251818999016611117440193729051543926996128038755411576985207847970"],["1891358665077549831741202385602741175002200174803832220981019649314119883792","15153952245965481536194526448141045290337396931773445377586793949312700636047"],["1055894354285651216848751883587171125221996008424886032111339950053449597251","21472433752415103799788191979454213372235510887406424244426641106985268119194"],["28251627194266099535459400656450322125491887888702807163146555915952416864985","6529195600205151130548866662889990710757569880409139827301757180846163322167"],["27358786615824202803850497979329090435624756333421705860775528314389891780190","1922257993504614148657644035022667838071115480342643819622426908313413428284"],["19531575393697965068340833417342929768604251172898680645269781268533100331270","24991623292997655286542268319508064838849950994381287293791481193626597524194"],["3867192327035806673301566013944018259363845972504212399141203192715454317215","2245704868279343410464600986033745114608628401877605724272544421894145671186"],["23294040902539112361780225791018547460158762917718535898144947512318586722649","22242838008556695403848595683400261788230440237477752556754677842762885025620"],["25921352679829639464341739347172925906295474740524384431333377296974644917575","663656155609962894592706451201822819636213564443281140587299758941948214863"],["1314740520776817868866068622004248006687777070793401685663017213109519148995","27305724678263609745765287566284313323831942173712583955345656027143803992517"],["3618630556594472643291853362745022294189054180848646569288902062591481737570","4204146767482522723387838552604101839746560254098358274523708847709157352799"],["9539800854845634336103929215978144531265292338452253793941085293046592361764","3871773013249377439348276308657028661992204271788044448918349587975733586081"],["6122420292885161229021190953753992419559144142384694805860483543153936636218","7434232536675739662083474973905192950044648731471772858654078620957889627018"],["19655137979426321176098164418895690379707070674958478423873170764754596275549","25692100340876903893512504717209586053246683565080235223236235218332458214440"],["4499233317909373825539923630194337325539657582694116006118938202976277475503","15149215451841712559203947929370790653901790910203404538173915443164738752265"],["20622142152744733657415637947359720595817347357408042223440797736383411147167","17164037885978814399061100467209965269539846782232785907212693640446396422424"],["2406752663011100935758988909940709202137809990898198510698648880747415765359","9134222419403758522663978882327615512432540760360745926139404657353552906266"],["4591213022529788727139780882844598091515266514724586959301372004032678929986","18248409315817654406464627142458766778206627056166351415655069403148359584967"],["12869649893709650749191822274031061465875950489912332336209906445072819608149","12385873272080470183363078611941934909634647489850349811807326435056143809420"],["24796760250619444035711827505279119585555748532968288818705750423544763904163","6972177506855256161762343977456474571435311873881336409519472067788711309859"],["26961117517783232920653012919460344766243754604270775632715542115697208795687","17850438391280286838590041646058418806772685531826042770064883863771549131548"],["12555188558175725780717005677939331154190594362923361619796067349595671578306","22756879197601971758296193939725311027223918169437478766420458858820379963583"],["2450255893738432603205939807741603580590800800031007123116761720093912317349","11541565662799079581132744658925788713889594283384047143673560743254958849681"],["9517492238713769250595596696910284157650573277517285844288205957795881042213","6850667636001860423318036561955803486365885452643535958312672241362271184331"],["27264256773157986337464974787984099172552801055487390142960079604828643712736","26948426587389103794234303090164769626041619730699240597426068399530042765551"],["17080206612890336378978565296653134409005660587895326799988526718051462931970","24284170557929759369084499960917239014146425830115380121204711508867349399392"],["4856161987516089605531265837385851067362364644431835645819816088688178068887","27425731975373819540873849260049020693548095729563832321145031231419005548605"],["16113784465509254426365745180603551482772349999418712176933697004819151132890","28016696456894923149587137361815856333350003972077489341186732522496891129769"],["7103788722302488893281613792634188011987884227238710155553515048785089325030","16776919233372008179963217817300260834849846743209747827226960790147032420673"],["11816954072244208073610436905356018986035354322466229082885719823559100825407","23446418943304115306278860720300371319752414478785645111061569855585998349112"],["27708285730479955911201610673038765973663518369405692156363161017464438429041","28019903767902260875977009333179519169233966180831545840763583704785549239058"],["22374072944984342414853765897955574695332988888680050321525067109038318977438","20448035323426423392829936240735556031279495478948712448634002891564968683419"],["24636820747482166093089989867925589318991658056648024430287474589366229405966","20595733114269373951782423046782355346834937361253840424075248873454389729546"],["2149073856802873578464482060993449969968584638226907397479235087038657178822","15479976738228588668686004208773980504860038509596203387444121038565549037056"],["18815373697307202814958553614166121346343538224429059707838105821604318945629","24502540989242932348588250352829663475690911713813062018858417822154492639737"],["21414176565507423456443277018411412331470495237559726013744867234052161067052","24676785045805873454242582162427509869498635043011834142032603399950386049741"],["15433244473984286261452879614017171368082472413888193224723360385347055982445","25040730022921118598754118633013684759309311302266558021699615296829408043473"],["7762314264245185136503833435315407880422029910956549384839054680478317479965","26665708741537813399414499120082312094535864459167729218947452824455446530449"],["24193351393982462663789586699740742015843224127842825353248514176169187400538","1841644416134801502402148234553827203672713976798230034795072278595768461186"],["5439220526563537331306642891950397132734255693771254821569176140674340951590","13958912842837907568307691861221787776751746110085963286514325861964069450724"],["19287583306238652137065662879705393953945503000342801774569380287092111279299","7092099817301742580480700056035893006905110358025757903817839052148797813944"],["20828731053717834355995468254158044582525072672181198771810461822100776373195","5335332643808866141881405188754195673558715628309816561042969758818616027065"],["13890216696114311059011612714208734784579538820381130645624204638416225243406","14208596033147034001800315336463654776725289906896447499968957185635237663541"],["24700650327308758663556260764715275004699536569055385712077095504467821874961","23985585149443192380364326067597015005616920465927049272511168764074082413838"],["20039755758554878787667506151681994886445623585807687809723865122008388318816","16093798525508363084010617368454734026111850164591799065912512596958090893525"],["5207897662811192018157817789545481397898287727449308045064221612030303470387","20427978609680387901830420519724531697398470236759115236387073159887479798946"],["28555980127900509602470138450824025359021981776923848479292702439162563325572","7404437984211910788014708783189837398682155393525525680350245946525200388773"],["24656065804347853839147600427497350569936748586646012385430787446528484727556","1941604630148831230125560015449071230048415183092872233542591139263327762405"],["12058071198564365759810744195322060824379641080063212930922292889398888864846","22443895089866866039059364276917940764119479015568895180834151388309093291047"],["9242792264990238133730405626495386210524204691179705006054170928713096171147","83104842847463849789721501899816514747966124257347024240937489861561334556"],["27232619478151865530109790792532090280043483432505201681679239107509705648253","24278173478269371257851861622824715493563378823757500569954557799967087542315"],["6943819147210564366317587181563241612878767831979021223675516024356092350100","5921787885988407519824953679104141755492351954058420454328058286925913874713"],["12991064072228235877001084888001205912942003164300322665060922632461592869387","23634916701525942286778510439857419067794197939148908817112038857532308909949"],["5018339052252392087131785373565120723614351233660536203557926208364453499994","16664231569139626011423921372310348263659820638873514704084754322514434202457"],["9425010027353741581572140243064985184094258921059078916559208222643729411405","12798072627658014509773929474263850389619503156704840675355806966954884242572"],["3416588924075869440298609753721694688337496034134389831667229525884588502908","21221642773297204483292211179367759221785242385885438223966511454402444355438"],["8775814870230807198895984515562991123788963860977570902368292388205755460298","12035219240660724305869123870908473613712894210337202345357422624806731875329"],["10959066641852482823299594742261050183040688323111076888062796817092291404558","21515049269062267195771550946586241342731882316518200334003205621928324723055"],["882560163702064586386513030955436262830155458652478340309810069218046765766","13974316089005104432469391462854926454105676741150483594412787336334915804746"],["7822666018979023740558871169172492233042307715996703653729172279461596058603","21679391478642753408572083776475490576255890293451664027118292418632968601535"],["19950561144986997395950810494698061303866181718083794272201874992090304238454","15644002071998329256713825400710513585385219915504263319161727183551079370317"],["19030630330933659872336016409337020572197541453100070312612478795424305116274","2475335437815945222788740942929538605334311031834015149570181456958340109640"],["23727489784592459201099682292450126505548926816181499131739787444124035457662","15642367832243936103572001805139583529610283835760496222121820606217024566316"],["28075683575406078792915217090705962953501833893394341252990223144466467552312","26049500975977562584453127421795830101080235000605396128320273049947886778796"],["16990714089909288291670026766952748340795157564635464838153319425187632610597","14504149851467889392423035922624341088265740596351342820020752623293590451658"],["12066054736566499933183341740452564803719928953805400562272190001710540014765","14479727187623451777037763615508614658556463003376080887678713760360697562004"],["17901784126843009177418391477110739936368371516891256419567339893846400413486","6053085110597353661354047622828975561876422612247185793400307738147994293660"],["5921367492236712183575237514176778605192934794116558078422420266672120432818","9564961992471759187221797701594040184887533035649071175354688731910284029876"],["1855834278784890788261746417023319718082683266934459474839715998383535133374","17837596151924893805230427996363020959276051353562575910715499146563765221195"],["7688304752187231635415459664396445150428869582962631456402463550492907731615","10374841015124945405168751450878450713737194668487475311899048169110420876280"],["26188143880565588359833646693759428331922492917092098345735042051930131376565","19717247660780205352771836566000887699503805362260410805427544711728545647161"],["22698811203286675658715397130795669611351535902385346398290674512316566929803","1216823829988279215454573786849896993257561769821820680578875500226700961039"],["2788077009440272829303400219924197883006876920967336064453558670417816198296","16912043170561928487136486725327465849682035670116325425439273232436065812343"],["22980263337249170798518815725223324266970767583880367188603150967368228338845","19395193246876343681031677839551375793188911933019760587026536397636844187891"],["26260569895914089055822410913346297211898054894435470421868939950731640689342","22323870076445898875230351319051744403031649849194636315125116392495236691603"],["1565367912500802394525899537078925637830045860434159353700557456921889459928","17821049664705349895787347423896157055028966817153977049207554191974065887298"],["23210736439389133605676478346624472411899730253806257740390168358276968337320","15546012872272128738834062733504754870387147763083145217687970476498116310677"],["27140588716965460450042227815292000272243792650375093009997909658743898073342","1346620938105413524319721111361860742760300570408787475142608906896663224690"],["25569453394396914519265440122891919174956754478989460269820264676463896157914","19663772222866283672720227988424998080809090248308737011304471899888957740089"],["3948973760094429232775570824160500449165552931875674479567937686236802175021","6242247799930362733215493876451344763972306939693754822968167486176694830931"],["14001787568652536170238116000031498497700586563888180773371633348792698607188","3010723173870292637984303875896514339504549233400669368897075909584134640063"],["12795378657365145622001796437598390168557350790050077781878536519929821653823","19842127557089429257797895382508050303265432476177515405656479619065659812632"],["15348223754899780366638486066201234240690059298490267743447028231193238510823","24336958322724660027878074003773741788898754200860885154826060010771609397834"],["17416539978126508698533487837614422880007527112772302931312633278635227900179","5658308963880467674392594861901694272659945000261804355909646318948099419128"],["27730768932701464558851715087329656302083126158865692425711016559592497002498","17808294435178101062043195676512357500896417361874711993983097936757055225415"],["5112424887011862274344535171558960701345642534105270100775826790002568633750","20306527761804629700110465080223946631508742821397709370600158247911140972680"],["20455505808228529595177555233339724376083334135001994398268565683608368307011","6517507613370529250677188298021918854516705636267139211393980887755642407486"],["739630654666440479733651079827091144074913916253436888662386532260046338675","25399406009987939224619628739106852668049062499033564821491142589643306011707"],["10365998221303616426150902256933142012089559291456259894193205164223686483039","17762955261192284849712299422530768145373950432390883311125840444797879768473"],["22823415577624508255867816554992079015860616390257844423290395179101091460581","17545234242123933750452391901598090334883299006214435216236638108536049255205"],["3289673991740865465040867326764805745049822245159937640201479137689972311954","17309660000502885653463204081593399919537412147438794905925067644051576431136"],["22356819478536976617862228596591811821491404959684701468781005280726229791731","26987681958356640993998272733744480485155238070687018472428655287001957126545"],["8918570225190212770216823172577747843194116038426365797231151487514092604849","2979277574105341137065867894140663315124633092135351582481039162668745438475"],["6224929722450385410746083364424121123150475514033301470031850324170563501790","1982365922394446053604207100739665652541868518678918526589756182875354664866"],["2395459097328391205075598380098624462518341447776959958814955160291259728142","22520000765271952556816798763469920386893671677142863648560647923050759859718"],["18499415917936191101907706426183776378498625171632160558722703545293761989241","14903888083380186381913624863661318616181612578088424159585177063281262843683"],["28006426001805147554548094737198801819262443292112507227781285368978586951385","19481937101575028620856244382337343973507664099367550387447119170457619535609"],["28104971019397463633997312647553310224376060313052526233025274780430305679464","4308891150043814088554981298944412813216420488479226691066460802729310712259"],["23290337300976821477870726437862735554308363874445848190725176803900399797934","20146885447661591061248680299818786059547477181204181330461069737110978131494"],["25490919803261986249678519816435666183701464814054039648347805508254927491144","14893913025732015736876500875542455247925187106010777657635662214027285217581"],["28876376106124887803398071395369608494987536859868783714968186818264631207477","9692257618329344248819275130044272105634921825651046911587247683659431352358"],["1924873233704319256075349551702923001213451872575648690635536748529826364435","13520908195361380940333762679760224889168019506834171379173610487495885810576"],["2752017718801061201365994825226664064760725104106091956778418240152656647007","1684044767922483096926032682076498736716215754595696898904693171983377422299"],["14839386648991465743833978337950639527842342415028492646750424974442836888415","7135608781913743315970891160885883626368902648599901591916306847687539446407"],["3664610293278487478183107957225457707289357295099082620105362850929455642410","22516314744897710988014032503463214456300384994794905603954936427140290188250"],["13262002882709549022106631740383117712766235480438499113538544570937004740200","26806547232642528977474555591483370549191829802184426828941479214621958697478"],["28047122512416676210164003992837617281412705367591019558998375252138545441601","17198466737186040147272267667880395759670764316010942953727219914191671331171"],["22077882779781505342329068461038050215311893844748807450183793534232535908234","24990209143418363363850980180546342918618163920833024398154828899038813684654"],["18019701379804137319881322450538210058803943584491351944797870346744312960431","10309853396631618833749412303939730119383083321514316758711298558959224283845"],["11884694640218375445213988254987884808621597530382471854788835064543520604847","4459515199546754419845168038764077656456299351262509125793539067757812440842"],["17824306497681958772288012947511199901505420119016800362080759858150021625672","12569645500701262052133286997689465671782476130474338189429992400710500868685"],["25915885993042338325999185973095645094575079163572263796266169341019813455163","18319849235624455994243500072187045963768421259081907356962926448974664318719"],["5773442902497380959598225413692329126394438787004905110807654872313563428803","8021717905212401568026405429406333051749119618303197337436443142751922733788"],["19664097691427171630222261623508851438684981782317015058080157216852696311907","1911015092796329428152275256966779148942486416503208254766652817523011687487"],["14031205981062653119220364095831875180434198410115659135542670721028324102004","18852993226191709298010106314312572764818284228428261033029000323323743585417"],["26332921676206127877799660765926878540024320304236756996719083789086880124760","7826879564097099466411983225685761170233107349945194958213668249742090684084"],["8550066710601157307766046710438075515201724090704542902340808033727975005281","5258017265121555927011574576924758752293930332709133976028750032379269272636"],["15883554501272005649525282138396085658587387366047957208401962698926153149683","16632953932610180584173543469636425812337227799909989492678003117050678471833"],["27005161547592241146924383017847038498671027971339549138256237420984854898477","28185861063577593133360628748222028450326030909815719623771434582381744796723"],["18231827699767555739498123077000796883604096932677206650070236743061170818527","24407677407099882841334924847705172224289421524110497435000982132741416285221"],["10699939757251906646203644356749102783263783001578876147871043094005058798958","121194363106551719248821778506949130190697818219807468199473087741079276537"],["2000931260876577218394816293567955492256992441204880155876885536998652297602","11936755322780785740458205539970911288258871541796088642196769478041692530156"],["27985165380100005657587306521350709281134151384728768784193550716325630013120","2171530498643323490387889525862990363826293992652237920398348924645790636137"],["16397355597772548863061412661910945422881674497243823314672774149078902856093","28944529774666559728153634482009809405642883693917474492001940547884769567615"],["9190560052408846553510343253026877740945312209753415238199111184126987184781","7984884268431841220007403624128080199842655889562097818266580268453669271107"],["10641922808724405642448519847251403120331408302938794990300357742878475439874","20412439142352983470789658803611442618184407472915042987325246028147829541437"],["2615781307176739215990532066108542834448950523407063353613146885595927062868","1671058485307406154590393427890448273233288118061491120628232402812384405083"],["2994646862343934411590642039318927365846942806715219227034061336787992224439","10857771155362371088141668998896881099529514085895373727928573987314482856748"],["10134439666891405482281612088526202134862315798169824000933085162218719549450","16583682938033261279943047324799904337630811098891523009497206523080196459002"],["11807748058735587970552917840763044451582537863402245566218187742257998256279","6693055697600769741909960515577828864179777551614915231161216524528766595812"],["1709175053901707937437130218784477663639299850466580265348020362944976091230","17044095366579275932252059231333486822862985927263980689616324684463298384755"],["4566062726173887383040662898105544048829450157309078179749187704303583651370","7698279360595061705085216643674314836589225878335084183246814370913893475599"],["27136575682711504799488595812251282078806839293055294437009028677434850184658","16500019726616949234622132097646626568739644258218647476205894201653034953867"],["26345133646210317625704336203617245911734300439618949125461544861779335947834","27639456661123013319100960201900431117675134145832920008476343000111117011430"],["14305246145142793631571840288322978171695145161059419036193672322033621087302","19250619761532087413405333707611731774716495870436541878064275451170966317054"],["28128819803859018381414928871081620758263040270486390360492546462689649773328","13750751218367363795153850499603218789740752503454807614322116259763295776544"],["22286791071974195628587204668546583390301504731745388173736004431678501796058","9543774488013985262975651765980021392387939209868264231842000790268576201085"],["18609263497003834990121943723280419489719201869339370157526038927864381147557","5904368361671748178962449585854409874058972009955509069275400502931538774373"],["27027445587116274786836817968336632801167721542483222390403767171053802250476","19369398380842005189075177221265408770462202521739422293454956046135155264502"],["28337947391369322769127251572382361456361221973819666580377976671933441477517","22419116130327973731915055451760693255890517100195662521844928883730696346801"],["8746321656384527598676498089969962362470338823985626280320254580896005002637","15299735832163644032129896601272355829137841689453581335266986852052996760420"],["25195776736119203537115766388954367725076852926727710054600910865163493932826","24418615008764113989630972504972233176955826899926429361657970091386960046827"],["11616487759486862768830718216642763148462192912954702169966483351070993734905","4397954107888457178898253984060478191027071747962010534243480815378231320599"],["15970727839290313863507867027114098227862726004074227743991613522569249202015","24188174071977651964493428441417203970849768220253578567902833819705759602067"],["21081156438911600180347036423139029675353922995665196076024960477762358000951","16312410660293062235163083702725626268790845018001724296491418893164605364815"],["24871567683636528120712639754634314923098487879382356759303704851565933507926","24762989004891328782648103893960158389224166217106678485733352655990927631144"],["26952959394552743137577795924023998172836286442422877024292190037693314162695","27255878945017159829864569662598801019350348640615836074434864428294668117931"],["4850088787128023319381443377990846334675606577830381609979352292892135777947","8912297440717616742060296240137613315870384901270722055306333935028992283925"],["12110365356245289835738100499045749032922800183676348071692384631897101852492","26127090814785313055681003729397717254013727604597648722365904237489483325215"],["17677102116075033729760679022152317790922373565736667493592269271655630962004","22624882326322940992056193561744368536948823687062998920543728788732667882993"],["1291293366641375276478011711989470995920307862843792515275653870494718760905","6761442518494518781135932865596943995725376800965039795515970794989591029063"],["18363068281182696721656901212007040520972528745757889473263288943032438291203","17890329600382045775634943252097678800616969961641273328353334784239042712519"],["18438970642007152687905116045092289280166951292500306514824529039245050382156","8929594202905255056276325713400686655258320946170803990074833572577954533402"],["18988577738810517730969623635556894648455111854880731770266367845143157859963","5310452736975521280661899994871554639081729291911957831254701996387379347685"],["28786662851324903482198797165793627786261454879201616966349192972529154409904","7846447261937806449379064871009767568331171916999404815645276417460025689085"],["7552466830889306407651711908412092095050261533197891902961924710758273084455","2521950397478211507356618951902654879622537369041811358891033428981734554100"],["24981454078624009669408608633010365320987652090186201252820236896154312310346","8409784752642677416803512081894154726055295374135484850804359981461905066991"],["25460143898602889354461394060243716649401981898750491817785623404124284013683","9199009124246385520748810682357118979649395857183402571608274586758012564159"],["25623173003760879991727522428375002255683031278567267361196740262441497252789","1004169794511506556256757611038713840902303986085716388986706219939719789454"],["7656468124180528562968111873005280536615052253552007317362486999925372550337","6356029885290752001932155555667952185793173408776529919433594749772502089904"],["25145466875409979588123852735520079776228189621060744674831167404333990992681","27380033634441858645425176511976821844275191259104082839297774473549295478677"],["626497012799828907547476920386973136207975111777016909989799196249904838305","12483440881854434786506232984729491617526638786730604606491795774757874159087"],["13550514047613445950701329181150325022585162456775646847623814847650004970632","7660215380217954953165493736107127011939836070280411820047171679762911490497"],["19533804072273917571009005214585168203783648276340468254436688074976516454443","5564048136010023097685646259931174836805064879850763329852934805315838938543"],["15613563986228978749296055856251743753885149012085086540764552023119404562263","23219495537729986883156712751219698864025326206219801744260556934443360450398"],["11397851054297193690913213918695077705859497899815701798508557764588813313407","458155340330606974048267461283883289130906558637931232211133822283606748006"],["23369009759662514582436439308715800602048777316960028166534250780906926893162","18761430304508609393256608412296970429239343470911004940749672187647720816652"],["879952567667245357635246347839748162700054325072196357429150157469537982618","5770198217978369265617875735098415642029683273282982214383251203553592773293"],["7787941571761902531955223860786802551143456357430468027338853051343332383715","11966526300992537996411940972611291196142148744783900302284171681265005153886"],["635136946359282335202753747294068040387853541738888924723996464203477482949","27102553846669137192991945926569550663920186765939236309480012038357555839722"],["21737288906688639738159539536885499356105442261258173274597945132736582871381","18120829794242238375488024766126316980882384910770705950175978632723942427185"],["26975758276808134239523445827408066213920868945555964207313362396350343008302","240012896114240329695389916422999907289407518469453366410219451753837260538"],["11701685831021031037778902287687022357340430769646578665680329745600897733681","24647954203084765849265319334135706839436445080292846786573531334660614217319"],["6477195392928550986948938647862910268964353621293292731532042926434106734418","24549185403057799654977557130681998068231286473925773250504877680349317357146"],["10577336915805640158662790531465034477878194919740054723681407185897234339623","8332724791995146879832940185617822694101769686490949821448579177847539037626"],["17874230202245322813404090510010340756899751700411771562020037586354544043843","4755809162853878832664583205960010496245336462121410817238879595791332150305"],["18514443415640902623680423216769652850918976487610401895586446363456378725709","14048999680839866663188479981790761163741619205882270851929587795102796143688"],["15833603040408565710058241144412363505715362537625502578763702604564805254382","20590351348678745020808126763227472722118082206583063840257298304639212017221"],["8363582101838123693272112168632116412359153494054776793902860338279286347791","23999609423630158581688434982097192838896422069352860977824301621059335640499"],["9319470307301546441648998068222816411195348964773715768706927588742958055140","5689110851592635099850534230270728060710580648151163970098723917090782509046"],["14024216637422791227460165981881887691386774785277013959639225634363007432610","16391817964508552615006403955555935225895810531057673938745150517888654354907"],["25844965428172343676909374854927200592147582889060433846420960962690839616564","17766780224252355491110006915961942266456855755101572050896846809906276069187"],["24179992015568351300696874727439621174137577505676339606497706634761343359753","25040436655455828807668936583523308555641370849682945117681447112323047350388"],["19100249589992173661995477862712827048640966108107763503931220311081680401555","1727860077607497938507632254887667674430142840144752766798296660772538499067"],["3061597776477256574279988499418707317924260685519037410398328078099305011189","22930408327703436923010525915083711886697150638665407548261891243797212709951"],["18247961234708015010795933014067706139331930496370195235555859319980337164950","23598571567172038239635372756913143779079575154027143065893165385768193238542"],["14162923329085843038216712551728644822317173835357169878181977925627202579567","22198767589424165061062674382680745389666324283412017678774384614579070220232"],["21099462464987157538148600599427992964703729979517857615373870738339049440026","213020930451468591507979310952255106072557084775173658867388832953243474109"],["11043247693348725396698973854912571683460199460265837130979568745175791244244","12496769708166410749322160415110631639771760671535770374127673935497266553600"],["7903577132929891332409701932809202795879484670791555192962985492411641337242","23494469203290073808252097181355045321406683935124792981192063573111450534703"],["23795833894144980684896853438040134733472544329676229261899637310780994709149","21484652459126842936881631169609155863490256543629560540706388821156052177332"],["28016044426035770429470106556682391292539813650693430302338082680253272144081","28935784178147022347232172964958348013847618581139344129377879875514043878384"],["13737373406579856125521523866686892895038644023579443159973616770557241764966","7393158675858971771009224042738250681013284085277007040442061666746654350373"],["13619615601662181221298948111867097370657505658645641121987998473483770111976","23024329719433501483917815247908716908347088487874542026675706244535026138705"],["16245571915725434720125448058154677357205018485632561300919464310186291843113","16096644299774929414611731709465091241138585134678513797820802599223057917023"],["9694563485424909768210843952422816392748395998121506113762341938374748086811","25882446472847939554379100728999604435184496887566917018595745606306531739422"],["25208535232154262605794405476714254552873241806902630537706034911425604392946","4874172312228749979086094809935807337417908124089988096969353999445293177425"],["22414763183823597516291680335894179797858018803396786382383018165705431791259","15180525038783943581668665074941312651988528082658745138660191175376354853500"],["28237078771828842342635519452606192870596202729275622972863665614227204464165","21136073752488712975972341838412984294570775894800100245326520978900679384357"],["28873787314849361474069935690143646464328725082349661198026590946585412316424","26894945717778493934343625570529412334694138039544291883677181151180598507405"],["11324633634870706465362726761742721850469562305161120428816932172894277817518","2303940001993490764215741680741008136273312996271007417856357906566739814372"],["24795031373605259840414066049687974931879227974307293001619921685370834416396","8862211654887886074840469040052181520148097483839665051041896884281639720280"],["5542822594912049159670881524921198979773786199966068846796590451040414755415","24491586378062251094936444940153422468527665261950730375960542080467222300190"],["18916015078408522995629798183953563067821581370905987034994316431587542439142","9453286848671726292606937250633558692274042727022277234904010293124511047261"],["14859086576307387797288905008545526566958826669311661729232850598553833645557","17069338519264330678840464354317268551949129689574988178835414092353494167447"],["6231919099183467184048931026807889404944715090947995814322922882019570349236","14536216042415956384952953658757818395260956699926251068489171460073003778220"],["22946538078034631357367670916150982698523709607221492206972103437113481841000","13063973873375891524358445052848210867049279252602698738621405762662997878520"],["11700467802414660706708452825050421480004993669084228840488485160452322387433","23240144361099780680740692127356104812847863603871691209118726636541495089109"],["9956851743364720992027276105817892599221024155783014358961448858447578131063","9732804745762756255466862334973325456688181668385471918500127505879472009581"],["1706949107597610883759631412975083240624966829703502541751101895732705074116","24003449152420895282818171303632324107878358962522064768449505026238593277425"],["20119210211099842685263499607136561274551426981715942949438905955545496788333","15833542426467616848668324408865822946200383188634582674002674512890608450326"],["657178220767069857786166900190625324353584418440958765940949624265045063205","13278462844393197616581326990083960917527517644801141923659901014243758145940"],["22432408111719250565659871917022537264314859536591291584159197180296764348694","6477309926560819384589774179995415402087232948153787754140757117480623540007"],["9913732655724037461773818016698864363936927147112330363988181951513909007334","24109895711792042434506780457730404817969903750094279702336060229019217076927"],["7522298948207459913769475705613086568581163646085997871230773247401549381373","7913402844902945395181109909563050896706879920975647860612413445679841870155"],["20317821099606558674176304357485133264541118538813459264383331291773736833363","5874101604090160341506616268312442656030978912890956977078037567720661623422"],["5949681525045596342019923810622183840629661297298273855994793647843189804495","18480517714619202837893055970380009623607421699233363864626126126067797344230"],["25984392811368111718331623224402597054438175863506373649645649200029932123724","2197445578699041758746551736287563420095692429398206609210062567785270313925"],["544313217184441590850996494939245284199330287539714098245093859065686273587","16664128883267063920969616793464549012254712380288646311183507136609071725488"],["5431695870845423670993835474623195420988430506740054059791075527405825234361","10898973780711003006882119419657743746846023428148718638414353805529185906907"],["19271562192326449448457223291926388581953440743354194666793797351089614115030","19201981065066444964122244725141758528437776133314986552600458128896349509666"],["25424243215658301335670034413209313566148829822977373148943148092596664214986","10024932807220192324956595750592857240906272567974771941149137910886792083250"],["27275986501822265101196808643003690233943821414136543184606719734632059035658","27549931965216126884065417291210594449092872730013786230221380531565727193419"],["3109814392920859175687087663395969263192491821188315267385366263227900225754","23534824033787676324522994778799969289424468003683992118836269361292063969846"],["19745097980334179882656927190894772642434122613315033195957245536490494138795","27222601880107517875111236305820614634495394164165982844845102134592217296191"],["303857117987165456115649608603550518015444018040454555209273927809669689137","25575294247551031974531701870361267567729183692888964213669406159064365105927"],["7054407302274815801027945315054653980423576400402473424329174217062048330898","16394902750946288990048440450743660969616402886084602188917523082445720998941"],["8032208070191785314794736314122794044285638230143511297319198842461031214325","15844618653502333871998445334907666236563985387335643400221212763394238062981"],["13725057367719244415737606943179661228083895933029309168305872053161542603046","15922145839347005014633452605457318926184075679372243517198045307852131259171"],["16564425807715750674097725116332939002804578031727786109014048024778313772038","19151379172774960704111554140080718958375527243023138535792020762391681743993"],["12564661041427980246521178969767958383616559040330465162959746918593053011913","1702208975900848523923560630873981826077182385224845369034424398054890939791"],["27854088857111837188676336134461351043676529478381250973006834370060030445168","17413027726755490899523904358744699783872745741817910152271130274022642896382"],["6243591302217514730749385560032086218629980654085243784243233417961534745386","23331254730332254337380792324195248042596414602077024656516807901602509972300"],["9700452620724835828219235686007023442534193546075517924248266286770182822046","25450508591580484713913798160964680528231293785594490539181848658133285068229"],["5455684591237750862043440516694999981087209022782492309040772972654111588061","6085183797004553920781509581657036031869878334340008658643543835287678559281"],["19163506101048638453512133532868218753244435797248031277645904680242689209571","28162984203798099667034949511751734382737317402329950326296595096545561364694"],["2162378332648585912602026667128806638137038284889003746768783799515458194890","6258775915142907153472344540252828259513858314098793991391895775732740268717"],["9923383160450463764482743728321845426191344909613310010536885761700909791636","26728480514868457517635726715558900292879367237346982129451487286878420124637"],["14691436303205793017683935006391051763772754656878406992333721558038627287321","16962227418137724709423701565191752284709312125569651516309779941834949103090"],["26351461939345855318158132051118520603611022707803762020057205047839539386345","17608518340613296333349993298615819098706625207345156507739464574833643948564"],["18087118266391756319362985326432620206900957878452828676599260857809218287962","24977001484936220372231485253071621301682934149426724419683113744956256377689"],["11265547234772324704032030315278847707721152049809334019015679935022094159681","18296156238897624859138562534982522286238695534863248195462479544418312000321"],["5341115858338858057202796645032594957854801341226626657351740880093612759545","13399257598377513590751676799000071550674915290669873254643899267642415123668"],["25170174539970063222769645786854036332020505622165065066526966840753607748360","5295730797419305965113062002074308067924064009811000915004537845659316638322"],["6410610568261361185036123971961861929671145786743319339677261408873983202038","15264783707171412301776380798843354058459609728151195344760154059053467669710"],["19132178997696344090762718302302402172443309132997246169590451588735042774200","22960084120214563669586583806481937922316768865794355474601622659879115080843"],["24668697981693234616021687465341872069850510128308533057309101169050294700079","23999041538099146766968996524268486134999080747586967294881309728472449956758"],["9475794807647195152446471067708656537602151390379393998571188418478158483226","8009720938283496940634331262339624167350258350245686508771915224774290990663"],["13980872033993556082350625044453964818812739279492086292707057430692463727800","19549072847621895114895358459327883909111952717912301188869000428065318677731"],["14140646152464336920550892454123076293722157076842306516153781324886343061650","18200315294881479163965385572854674289912498958283772926535369175141579748458"],["27882616279947034951946079295577801789707521512649107948917875507179878632935","16621826985718359159415015662887510661065493732650169547922240071076320836766"],["12796534237745309709817266544586548088356284227243146359194737661465909549493","12154131146124376059505456383162664993927055546601511881963033649277877585472"],["2572230855393388137323709192171274785511515964543555825429305456919118544881","22665862543343788386214092180764143002762335928281491514361067521566119195883"],["1363761931443623380823735565933228371913460783404015350938868498246400398503","24987139083617509812483688966167928997556684368545201139349247158503377601831"],["28927643599193724810536352098542722227095885698784958221520352863842471789344","27208245438701874590284931782028928690514694480808951460817637348021087577855"],["28817784621410028707342316644943550156646363134571861212353470407949797521689","22464806263467937837720470147332389747349043139999724792827735761363299499596"],["16584014577558371643200745976276948501842263768845231278979370946149718426925","3829312167769127696229448775666671730196075383389716136153512761178783144156"],["25015447794064820181876112038947525038666983510301824400577720286631762916053","21735347120225153890610690063071152938471448147740239791354079620612622660689"],["26677175555619796036484431978228742291097093333032923582480861527601096030180","26068323732723302558021248143161378036178374418826777077149763219476827626792"],["1834405908876976070930439174231060664279698600790176773034932978632437247924","1163254194103727460253370352224785127732628879909637636066087636676630919989"],["27276246444911650786109357371422911643660656839662782295393794465953957771352","17701388895698039270262977032458641138078922873228229154493926538698895859364"],["1514009810298075335216064446454668398814763561416585860943610002863027219543","6390179219913853930963629774222721718206210738225394886075102824630091123482"],["4578738671647248813803111314935759302035859444361466005915912979748811932904","25495686595396942404403174370047343651584781904875496250342105992822410185303"],["12529711992739167411444059181331306052652494362515307841450821585379004455704","1426759638648860394934271904592716582743480273381145275630578673839840462363"],["1254011989859026336633408291741277841438180363556993540279179288963741257797","17494948624490776713015866639167308720950541361077508299508556470972070017851"],["21664798103587789525804989087122775960059462333765606169788963807007839924394","24228382605168481770950495745945942019775764297540113131217211046559768225833"],["3822880236150413815881762794211936993826577049469255885112596303158892754906","23467821659370763262346363548863812591998362874390224133881733263229459317166"],["6405992832926557639864844218949474358963908292994471938993920714352612370409","12571990571883037643404330905931523105215602380834359424992794857332359172447"],["16162876024789731344877457733669348976179392921735570721341644157493517138825","12096779191300120338242676026322686611107504177177088392620985176759743943268"],["11596737824341804333363350554558735103162235610019236570951179043790544441276","18645701115282289657942835857760898714312683935257824279677025711405551356186"],["7508407525609641341148107401094259980708932949295563780069622386218349473284","2965161545064619958254125874707810980289216441731816484588942318175916607608"],["17343736262508595958493777571519806861483623228859073216332013956222998587931","3869902162377929658305104624800422637239804416684621451150627230606976923224"],["21239372996983570746380831849958810609580522804052174186366902077851231322324","11478354562450338502283985682937057311370418295455735446781340600172897913778"],["14392407018425569758574428800715430444005374711778712164683951637871634845448","2568480412860859148238777344728031533498724374212214755789427180461634798894"],["4299352334756653802473941720981841535465796309846689777028220707207579367853","16814554429859911218050556151487294481567854219346522459078453418059079120590"],["5767207861308332835340644689344679004995733724956362077586217214583912160935","24913567567399341757557663444308003434606558593209020325066036784970071446128"],["9273311503220572001265495068948482446791701197275728491489368158102460046343","27395572189744763226337067632728458542900483769844716586454018019675837008992"],["11874081779177968557596332246646968943943263333329279410861968395252379559801","18700624480959653657314465495088859980731267826969306523860765250298076915914"],["26782365648590910649531663373833793068393787576221705550206310807678521004444","25454345616065067747293565924226346706640292155480331430016665278550922437277"],["18941817988387299469783856137664783765099192601269430845871918160038335033137","23395609346665977136554528502371852970386156123570168050041113224954991192848"],["9996313079658562639166648807450323005540433679983982937929744485556546476937","18699127540505627370023826267710240168416664952097542222592250807933837068424"],["26493612561587102770431900384051830006702030765527918808802733103943233555236","8361109999992243756481606964651638290893179343226956922310453197788938133369"],["27468206117009499059467347186394886556168756700567425680991671168269929770576","10399835360803927419771691574833094726961301369893392724009729243635642297208"],["11932182517866297755526558826616246968279263732058223255266062539592015220880","28006705971480975165402560412548247557737943553343536900426306689268450836801"],["1797888132126109348136477355800458883357829208871001344168421212909900001499","14042615952816424519341782798379014728241536599748081394230806073470774748081"],["28895054758663192525416434676065921308078821558046959593057719810488952964645","9556504702234969720202679447665479065390471953754583251460941716377212089767"],["707867067144433990779012570894134816401281585299351021194736301169500687279","12452382140669166610554786265400465708724753599538498224818202214395449292268"],["17396667415419650894342538993070300541907406414190954143754771895024645614992","13642336923113920793379063291313662059320093673603311055483665934861771445792"],["11292103091007162544206696385855092082355985412824536815144027515792480690587","25293548330030339136423954276366131250266058074140393513451310017546506604130"],["1050377950792301693001414102017144258960955481347543667690263245500356513640","19420452367219736322134338210186417006997626561452731701219880112453713887037"],["21219185036896211013069100394362934306736074769560832429921091594597769419230","22352268094914661380931418314201193336728109227811853469518325467757710247526"],["28794907294833442463378435759817479576702254435587693695164698795261462966203","19829548414965008608207725172286808759888279526378316798144119784104351591720"],["8303173150812279220977813882213715060915020069168836524425452355238817882139","12971335257344197873234964418189968617783471827576506466607817112866086642166"],["28106283623760784795786519150935824045032985785087378662777940819880818912784","11003031390089355353001336722536643953431785466957889282795843233847442890093"],["28689898865687851409184580710998189332343016564710823692707839138121171645797","14144763916428325288789234141405763064229653657957189140420008618989345689953"],["13273531204675972955474158048616975292483561467832540197761394350700217657359","8806159953220444935722300341959614706822741786590392788923426603906636384282"],["21951186309074979825539111261707590698356968218472899647263272054859358954234","28583710360822918349384712995280341802072211298071704438717819624938179014002"],["27708424255333892861130323928300806788198031298164862535890461621409592498275","20870619620749839825892424055140981303406209925564952235623248032656509481054"],["16325247071456489993282248447012951963689062842889319600802797993376984179313","7265110480910833257506650734018952827471101977231815140759183245146493444427"],["9211390779031309376407051002746561892071758605578973544511243856624768085420","13426075324244178107119361396835249156607039421331875735853551746809305779295"],["685326313077152069964098566455875098754264186269799161681109712193040280538","27959881972260454689892159578962258760654475982860514148192324549168057149298"],["1959133210568869111859770688880815678211756464422874854212110481642037477923","15845754514325664215305347848616579420169109633917195917399465691335922995535"],["10650657967010899149080824553164727956276429818975972843302786232148510474252","9462391610420871987557809279623607756076157843935233249433927117847001876802"],["22513580049361772546259723392349808589974561423021287014637107804414976950226","3931169860324503473507460328245047074748685009621640584957623276461490339583"],["20639985152965674090034108623888925585877720768666435866838652599062187451011","20602194996659443478045739316801823683793524305040691762097532206603915198023"],["25070141737937694611469833149203654621985539756659881639170156641843759268093","3364490138508735162578964841371447162477989125265903441205121954028612498906"],["12230027163668799850514202096360408053552672804013153583158378029408667676066","15139447646484188634552590688817997981740198612175569456285372321591323303673"],["18497710038889274525543592680649854374183235752282523387682077680933298521051","10368996401972355954867921490391843010364468308331758693369251641071283656305"],["6824488587954831119937054956424587532363037258175900137230871462744908819809","15559653555003144436966629720097879941230803816013278770989621283934996674106"],["25623394715677598218787007206921955308466105309842636727674374004639509058733","2770726786667314208447015831492741957015332805914350858363529727511568073934"],["2076906433177993552702780230791920877581573658088920001343200095025042474243","22288241480380201317882961279790445165802128133896354434121434971160299796894"],["8625211653630019296630234147849236690169871961423732321287873148598797367953","26339736714928658686736062857365490010301979038875713287272319317107714476876"],["19481059433234974170233230977489043529072243675111257620044070910840540053564","18485856842516146150542358968905183828914046321965307827172478419892838984951"],["23947714629918251050286719137343250148045609909159062287148337755483857632337","18270334040931439995067719073702588547350996997490215363396389689210541853350"],["8026348869231420777792491000320068502577464552134167353523582068580697918490","2426833278900957376947325567758461452870322306026613471128897450450696851949"],["17388323835648366057464014168725066644364864378479508188481362059643041856808","15408628510201291434885818659100302272428864599006639449644908868925872864319"],["21601103770885637903901023722527106725710700032351154386778766442576723512547","27559664460925852286937747756218326675076249542346345815003884489946558839619"],["20878525281011523210116638306199640836474732835265739733322425634767759448316","14246562788769802836221507215179370092444042297375333714462714906893590607789"],["27843639032594491601434905177067913994093438303382363896250703362348771186252","14001499814441761261546056725340434955104166333127143916261508332063520251225"],["14098670482549151579580107472318746508068091642316778573704758134229455684625","3270033806335273130061983951030418367436427816330479530300416972919810907454"],["16928395099816737889904953201999362600611989638944634658069230106986168037420","15043358148758745189070948163028631985485469642911436670265665342168156340816"],["4584333605666624697377510556525553969481255298017086273843925027749735813959","26901019695891876656939202458637460504308168856067635343955151922184791459479"],["18873934195278676354438351307519240204908298022025996578444175259359385865645","5563151726939801753141303904280807646427900937734527781919897559905466514073"],["6177920984607631276128054094383674750959934318523419794755718236236436009395","26676503022348891434592345011917568590593666811977571376468665657649654811327"],["11981317285290300689721303608876108279429126959892817042023959805043921658823","25071484651635461631915524148067262185492932020700141816111596527868181038371"],["13173056481911155098753457476436681944440814183899372548330913427724078882794","27155709822250263929876883806363612143870292228680811172091877043472187467580"],["22016979318750857306178841660706765722046601871774938511420360870093436365404","20918525155297235458040321869890546251077988830234254556285746285788082831520"],["26370466011195584914428753576059691215552497581820663861079920299721064146043","25564577251286324763802080597883667972794770912781217940490037865206774546144"],["5369223759277007533184679020501514728171660986155782533223168320457795092040","27488422694631739810696485629615600705653632376079477839907017734724476650241"],["9914547637914230044377530255799402932444661880323463194402428323295247295180","9374978534441265809964662707133998317713592919852963720063361075462095790479"],["11872493602426981860748148090496149505808786175933506900327227827030373309520","10405547882146397724301136439361384648606760174438391831917288249809237780320"],["16306691583291996313599411199394598344212455297761502866465924568506116737706","4048571884945121724455998581969626062226477563388772318621007306840136245637"],["26074220422645969667034503650556588598641248324532776074486264033746872395019","25117197950354292916462587429521610685963346152681966755530258291894596017901"],["19661256585966732617415717352774323723234868646821955459803258775067809376211","515203288649539214867221514587867473934823672719042451440695595867041157798"],["21433725548241168490171991041770745726781418280776175901277755722206330999805","20648646547883593653192876302748267649432052550446036225612987976142567373241"],["10069730778233684019782585595079624361775252873704794927157001222671898150355","23973920224908641624319039042553067098203909607854359420999968585467131355651"],["21040831374648977898403022063799559181851494699077304900587132108504264518563","998160831928353266354043098187487868033144379002025462795845961466241116974"],["19710453828725216746787083464227096539963689796363830833125457059145207691166","978074147298116344882521600812802894652823473961071575082466531453761903419"],["17288891536701556866407959914532242245439841774576361452731486553757843500151","15878993632467472781726013983618865547760175377593460867066518969098995768095"],["192365174920455106304404910874227866449144048774144034649863617801120091494","19101625010558458282935371366255272345074017542344716802174078602976547724023"],["1889702411346359760866842778960826737659163697128526955797221616341455320990","21039581698396183451977636732336137853841634565417138096095991842178292893272"],["4560178118051665348593643869013262412192713708663183017509226247748770773476","6863960793061111913109277594891798290022730097938862702546699635199633874868"],["7789511474445324086905602989905942192378579667273903249531679415993800119290","2145404978390524117513369257998443980006647584767422409895026637270483139131"],["24396771591063160968917996544155720318788841761443095107637854909470413255273","3935977633975080067097703126912239094699027216438140837265027249243698623209"],["23921469024984053169969087240701496544162103163374168455063198997623742683983","13538106491955169962464894309763519650734727090514481918234876351255271022983"],["9909092627223548693984270528715603207711223158623205060689183732387624162789","10016338246076864552057082886811170283085545757179639186250391187860873616455"],["18259439491820909851852502256151059894339936473382638619994941037641135907372","11042531358707547191714331412855159604839105944104170216979978783565774539126"],["4319486782547743071890459099683182538319312763339329616600900125792721608269","22343823865400312576254987744461312477395279056610421970333769574627305623645"],["12444690156291548772408655366841394070096986930794155151631687639333631993584","19518304907614761601589833401082821126451129979408413404772068293139897563955"],["24410489104212691633112141972440221830976066971706125622976583267092625597809","3256814742772673531970834548777777499639919725258576531647882224232480053766"],["9947205875251136865742529681555122213208127322311573944459710721130905747616","28790383625013966356040128032144115757528315531961564545523336852019029731700"],["12103239570264454486530101598713200743465011337519167007535493889728537257761","15950102211725677106224010058473080067334249466567411628919866804196493047926"],["8152547110789031277521613839949367636373469599349307930036924725657013192094","23135168254527354832043544719491809064968572961864613407229571110093748653423"],["4780283094101196766399079871938713207283760739139333291879957594938942708207","8563833550666205562970831740544231284030390708283047567800100175442656107766"],["12514911751550585180752569995168584213205535008508037517154638671057317006633","4165471025697155922832266167148041343414009980098659654072379870196281563705"],["10292738593694827860609073105559768372129940325942203530658436451894030368988","21338899990345885916639799498138125224412690379362914619060437405600244718886"],["28140981807334347891246658069900815814514018879113566937255525396724094459555","9946471220423992538045665490119752252300586636345282050435621320098885122836"],["10541783755404990325875657793153596612968161366416893442707567160034518088739","16537759992609015266738741727491480727765436655315884058372630879249916906438"],["410033800894022888703736429382983706120358593660801323938748781115803638021","18788653040182388532501993614512604867067803640850745577433446394013644200364"],["11575064359516711440855751334690788751118311811328663621172565959642911819916","16247184769047071930653082375017939428523272171651512092325878358360183486232"],["21546375294571175229130508574221856512972044302885303533154140804083651191702","25285866538016719731400723632764440557229723037864824205493249512069480825784"],["1678140116552941957783178095572963277740661506343070272769743252640740345544","15789634042205085481066024588936717205483178835301831203407614981483798180745"],["11506791696041008151803693346054416595513317988309816624706746975505941782344","19861044975619561146684580548769551020855334549972484334051239055879522308508"],["22625513406935188767129561787755213198115475738798366005696047551442792324380","882187223628978358519706935682777331862136121423385664988910018787301868174"],["4153956374897582879977389015594698200559057316850518375039090993222202297533","23149904070714049736836974333569853241920123764160069713629781659820068729081"],["5261122830478030502284051247640034897193704241160571213949609305627267452281","602862933098147116637430244080176969421202426612778491598860150643775614522"],["18965227147634635491636592525845826753832850945770681710596411890490498124795","23974839666561844350466533312362759098930317609730923088300612463627758438882"],["25470410741790527920083495886064026028985775972948131749543502311535074001576","22747342760732865985407442873583194063882710434202180692160278286824359442648"],["21916944780725776794341521522947731334676728486406122508198611930212060001820","5050355191888984962704078284659941840453525867699384284442594717681839888522"],["18220064504762543333098194357625862054013080875732737161798139631638006826659","3672490494732919828499322668341285223449436869052945131403784420847676262458"],["1526353113783192797197961480696554587877248993800234794703750781822329911432","3288237978837709445914449182906546709048400346951675420995875932003109894538"],["26705565962529101635306037364236407241016717877361983412449918910160229257736","25700254192701401575691927376896220179573650636275501275850922745729479148201"],["12209370924683398348954979317168367178293747716781671161631209732910471320862","15367705503124772090504476625121550286788648354560395997354049629510932248592"],["6833498793938445451462883381094818991335384565511759460260552425375150165648","16665253556997038893152500359088237098784665143020646138195468443560880926081"],["24592986664292515184750128030374628757807441246728325863342624590191875483324","25218816244381427591503470497389295614275337618112329322214879120081732541601"],["24677945244010431124522165158344029738990969033522174630513887366693939552675","5871437839086067473658840884029513714878383594804663650883420735414901440695"],["2498410323182406096664049946792418948084131665698659995237093069627533515467","18205233694480124790433315353803488337071330045363792165748011317061959341364"],["19223053828542995252415296304914849115060944749744223701557034400018756979865","25440474501730462000754764805334509200617074744155253339134586534241011032946"],["4069484110874581295097174596476337321730394313979293543871547579199832324415","7601335145924275731743322360123503138055318475018506026643440417498253544570"],["10817570856692857359998841491954319353830469108924920674016246013427172993473","3371388970571649575025403857667118501060731698366834535259055553634173561950"],["6609893259655786753663633072194888950344614966263758979962831654604635684842","14198693537998226219730691310477914719091284993024137770804725620914667083181"],["6702791274229923656539876468178221671973220864828935593961293707945932825600","10741359764973972893737598775726867324011050239111529389035530671613678264336"],["20740621582739759666270326493846515079598204868313651991207034244615766208408","22749407287920061880872966948602783221725692222797881060537561464856200917724"],["20243400209398049053220592403540261879976536999192877514354030723617281003858","20785076075286569093500235668808450832698365581491202388194229918161638417809"],["2756157267249302657508128665770505399552617188424596539115149646154990563505","15356224488839034776948477390050352104865165266985901656972624156866891514848"],["1120891463401529979529749615579020514699119217148004972026844820113334841721","7004574286006074581206481926666992575840889004805481610393429407789971479418"],["28804257494526675472630997587149953979656239149407712882523435323714085406848","18619218092402786339937854601304407512440473140311347329014077188560135498721"],["7694844359140302391246596295850832119745939772954944528768726010404416448044","4716570470139706860301062666598885074923649533660023819792860858135274512719"],["20207904051047278751795598004978300706514257097417204352483205022358612104094","3432483398830213883768045440376388737825855044810405878839179136711842079296"],["319219178199554839395012938180187205114220907469777923623839182857533108584","2796883811362048671714120834340051448693866416375375114608995764299586396444"],["26939416768857555356006105974450037979579848611032046015063794267409211731895","27173500674829884859468785617409440640334397602208238541309693972849962831878"],["22703857666540344605060407657912423618911412965103075276920417537449517763121","16880724907970668372358157347622182322861350200219242519355760190213017508160"],["17442231799686925281487426093395307088571464328815332621956725054286081908421","27129655734208347563266042124375005774117806063686847235241370238059584146413"],["28229084601477872130088230608902414549507246361886177303665121971811294120270","28607292555003673519445550026420359877994516094140752158750709444715968711347"],["6666096445817077527610128792751791381425849837438660206298614348043776167720","5428989364590719078375251102857269211912706405852360650742757570280269744874"],["3337317261418841518134304334033822161537166838306229498861368533653421787609","19566274370073852484570413889765216195144841120543670099325393999722722838503"],["8361610704354546035842694431854673988750035209504727292294841710592395202817","12583703263452958715887303021310259234755049560132548518462387171001108096788"],["17341458323055146649378603963097143873763191953938818784792047876169438131929","19409110177390429055060563803664002452976129506925402081382691441719216953610"],["23386810171295580121296228478974589121000353002219193972340535459633610916206","27042127965331044664804576815226568762455745154074916171432639214437366433770"],["18654796505150607040581113014421084938401254129333470042628791693491811395200","6520645086084330351470425037325608351311865949907537083728214176287749685022"],["25643481960359454781768274848542448548945214496253469708753707559931545460154","3132323132683618559840870976394802088140373694604654556156956578807408887843"],["7778440501256984285993365366724668320859865407735811641237574368297743735901","22225473374304719728310325052953461338622142149092213965844838839316093146780"],["22155039814562707050209917311847614153008718825214905487662667478232489632272","16311349114869876206743909388713838833769262934390212496237496378208199320504"],["6331503830457192815852775423242909052249785963413701872842526169355180546679","14831093624485988445142398808057128281432581967176364775909383930257783305278"],["591989373587053850783253176674264525012889066069024457729512703201998977064","10508433618960272615390411495074043829660620909542123849995705356736360748779"],["24871397507530079939319228904588270307296566233151814674945337322685949270524","1106225392509442450088929269331011287861833675665154106824021756451279257"],["14745173339783179961456323544320707486304943346302495915521402421119718907494","12521218667485444408340378440005155009438450507185119935727031324935276783579"],["18594438244935796273008276825615630875519963171181623465221345224467632169740","20850941420558094699557480360165035834707899109361911510494157414293436058401"],["13380315463637917367382646694890381007449223332105693794074679537410341309579","10026589223356032068475121000090992859884161378787201530839687705912857439978"],["10242717358648279222752472365316838091818958301408349662642661700135796883888","26620100054223432289896573925463071712581094974849145253104133269355029409969"],["5767224521094923496491981350361883328844537261423487899793686442208763553886","23315318204732150519578773079347390969984190329818167851609655986765783660848"],["16956470333630192859360867102196359720614892485660108878969240468801317360951","16257598530113824880446985651005015057142336172587233711917625247323296327163"],["22712614228784205931451779652176557212602759286505566994847960373004232077164","19779202515029749428626312574156631242005531358930124217301650825478132952392"],["17774150059673076605264422998052529659249245705687215371702815726965149609757","10653798292303200070819735076647571043970835026918923305996870136691709572407"],["18158904437393488648036943118471912926560351220640509876378136898510941297176","5714304821503083858000283885432586571895136815684950673295973447218856193178"],["22579366263193789034117556479514294461756936593888074476319042103000313357172","2877155706184351222374761252310266272529521275547165895670005500381017531638"],["13430058301207445552911689066288336612566512024612866448431330733980619271149","8713817197654138152395628294614230636342520168250966683445326662930669475519"],["13035421136066569162818434915496990227131158542802012881898376461488618114952","8605726097088225468165067044927295150762050893638407778759012750717600142970"],["6944443902283175104671504874525074289310167546978954909237706943576600457921","21035450848205089489326624145468673681751705258249136507836952981552917846607"],["5094181597821037957805206714993995402001094033149391912528793708796876365762","26753727228084719130319776774565815281173784020357690541146337836176299227994"],["7971999934050944083072086016281825543739174458231277681017615730841533300577","13909997359415278650210534155658206354715916713532053063109099024842671278842"],["15428127832210512763438987525986903891899290163860834304395400377868593803319","14042507630682460067959324087884452936147793028015963506774641017274912945968"],["5709652914855522891689345502323048752061842631736908249831496699926751253195","8030805701279188350286975054709785880905286407799926712982202519171900143051"],["2950216874566980356223587295575652321592556668379328346433533360254137404870","915499026454555783470147469587270805496659432671305672443864200100337486504"],["22137892403510369902031537506479605213083239822123054121779350904988021157920","196228197084308940510796449973505101906223241082707250679764415335112524103"],["11027344183489738279351713154828712844761566749712427413064716360182047598647","25701239127400512508786268334521503068139580379702879765808872934779454540491"],["14646162914746437583705768334874068148326052198819199710097717690611753527534","14444563640069777263653351386276875866790891671279423006207521091344196845430"],["26530221884781928311609870825953086321345265182464641961137835376981707467689","28581231689001065490545541822742982266241095948600344851955525125713508190656"],["21395828296153323437738865928979603114521944430128549963890696458355558468106","11967461492116022670675139761966453152279934695926245903363561853217804458916"],["9641283962696130853558869884196612702263921530600369620470480476040999571162","25455109641821567060121777920436947455387221669538832477193159626892587863753"],["3422570274857447405078700232761096139521262692822979833834208675038836610127","17174210059841520292876029582544132877441191011872820791872361213051746606343"],["25106595442988228938884571258145616361630128577400106938098175834869549955088","21595287184698922490062356876888595549857343176994417762208227523764371760505"],["22406395438268502461856093777289816772173698028762961417604505555688850805107","11643870347383826053582433393540081240048488027280734243539878204229095054142"],["19312985039829601846466791499399488379329377634407053407444635571606111400986","9949599928317583393484673656360479737171928009587843450671817020087462701856"],["28103987156412544998325594619618003730959083285476506595895640315569927920376","1746207623292464571925234082208544322081057325647740193977437640380597769349"],["14762831497459766069367719436279490708189079560772976516172660360160784637273","4432782644054103540668848855869934498216161463512065250160797493065659091388"],["17743631707081676813811233235692067275988991995485092674721523277548045118473","18566692274193411455763222881566272187116932759681466579660180933358174752246"],["17130507983864987019048458694233815597703893433110627326848686452993219908511","2383986972647911236488624985316669322230230290085784338911947867671409951586"],["2890566147970013851947582049697289123652417463328071914657594444141376244193","13903784328413669638344648706528015479988906560075264582587936512532951995435"],["21347182265457209232940815912223586604866761282411248296141434427777810365382","4689544009621444671361879477489776108252749455972822984647921534885144403518"],["20000196295997142633673067709886594233178189682850347903735390541674002216494","22300853803744424435816815315090328429512541839290569552541484907615502283380"],["28718224679287781220890802864927779792086586307558010230156451023748398896742","18052271402047748348426305170530451893698569043471827902900837687001214612254"],["28662052521667697987591127927719474457208863101867999620020370452151379184887","24404584852793496546190039854499771033421514550296288569391442503271410154213"],["6349752211138066351674116208164911617459581884258396788216820200009790918282","14118809687809528433272893287803734325754725003086084205075247442425084007440"],["12671913270192702429167287604336565335686477205955360008038123425616412281525","27304699801781786357378793159457822438722203579327656363186920342828495305516"],["20401763737345375410408484695347011895551620926498108811672077547820118895691","3158093919893119583198064308603883496152670106626570274947417585879284722014"],["24184877146458539679269977679689342569559797924304305858965524521300096417144","27347919754052660600709548756672489358363970139202452765044911071315417900781"],["26932146947298992014225398956093558425692685180683542228931686335519576847494","3942155161837350065582950518028542587158336542018977575914350940636571069471"],["391366471284633248377262404958856042474875643690424900094159868423697283764","10460127077615512425021165484665223207036003543887715241087455012237011407654"],["9222525848090364572740098002661701928608386079483613950090659874917487424802","4842657180819427621094443434776619221636610759026509650156524531273765152189"],["11915718523279003094225844915504514065282223176855439568489919284837775180069","11850615707670265428640920199980475226223973638563139767196414619884764945609"],["7028393081116883380149537604536975786002586622390552206181971069404812364996","7272463011416093208926891621726519933821377372179868498257744397842554970358"],["27069653567268868754453142140496863442307364314806625207116867749113657141047","20669853058541456494115387835307648449415520927040297388336480242073156246983"],["25908471282165804160654905230354761437738123189586300944184928235290346483030","3163145605363477067459590420947075199640416471702102376244822756823222445953"],["27764091940539137117291906769558399029636719344980028814459203962479915576839","28383479448415636049718855022737925850640727326702565259528884018250328900650"],["23425761946040844332409509052705921501972976119231354054346543584152172839439","21242098582737886503982687395235136115137197521964022970787093817078083192522"],["3227654989075962313708176003555295982760858265680746332821572664949792115420","10625385768004998565413528863290577729381365348012091352152245442445130909316"],["10396604788255041002597590165212616556502722180874221858996654775632529606609","21222904086742854183120945716321381181073950890387977594812242849123676575704"],["21222167285656234995556556110780845494846087750492441071589143993503445281491","18672778181307840661776594627325659704397294713214208134499481882570838740824"],["3840538595751203360532222123083026796982711121670201267196132522221580326786","8123951646086226669991764936589995822684840417475961048754617192663257818359"],["26241361219728344305291555063429931054394810122676542673806563583039847837097","4266524964826389060243906565657491189637134944500354791364636709982315820121"],["26422845715588073369344909498593569183072082925608173432747760201533375362224","5448124948486830279421590151292433693198645747961036768738207987464801541836"],["25057640726663425631095119390838783665715077274245430170955728972581723053155","24792453547601431324929723482993022023261438387220300072690892152839474430189"],["25093123463649428065876515582085468443408463230919640342040400913238562281876","3504268749866291740292997334920212970977732510690518406691270232428564955332"],["17783826462290379034703364393114355463264785281965625367805634765119528331452","20140181021324306093570450098748807890106516725722982337001242092454730653480"],["8796650152363212738993078720388973590510989085368927850201722982638756130648","28810168593885552869777208909199432735178476183734666066401593655013813259418"],["17087134511308038834771564413864935188970508508520496678633160076294899415937","13711043394328938372527435757820792007608673730902307392527440022050139530434"],["27952603157559050661243350859085345252298652727040135430613011459734150725002","10168810248444051000639662562062193310764064792042712787237107773233673449583"],["15027627881843059375747349063305458765653064279647723988515616442825072454503","10282926760402520122511328760518516571281244864875102298913248033433914236516"],["623751678448006807552165968159904830137737657101784637623803836416775237052","20424056685864645493999738427579354784913770136016214843840299250322779546411"],["25270442367463199426864248297530095407591761783132273808251737127783237652048","15436494308123956157417500711528357574113290263444150248354007507453385409283"],["18168871509861252023010184896307482708321172878420188100347483059153043115898","22159278114153822515098977646048810209416179521665437575411252343564471278571"],["18103039392279290265454713933606818827433540916268770089839702513308844941751","7829119115101154591588663859385953368731557004767326679687103307621861838155"],["9007621359628339831426622566943519854056807917217140607387329591973504436310","14355315484912290078512214419637988789177649844669778639780918227503766505740"],["22439829408315010215482278944158762053102368667471598071603218566483715567598","11625835586936117763417351560975964617249276227248458166600442617616582325961"],["8363569327693523601822578923685578496051140931274284198504230609397707993686","18530475652120005452603392316330484661488831024282269230637616017872236768110"],["7086029342492130953057622245765372289855059541339298937051051142087492616012","5906670545398066381794616433857505458580490900103227780295773173277934952359"],["23049350782869686165544271119651926887397818777578688115544707842062780229102","7688005507417453606290602273395011904810757959312222707024897049118984922413"],["19679923093175408141640833826755695332848797172019417070310850692736142700738","27657518170928045602749314233417622375646563023954194102330641058740271716978"],["2778995451956149167590249639129023110245890571100017837823691955190361648502","13039758732181783625543659629755631813293014507246101467549790118901036279165"],["3203762400433744415370294603205068510230723045464430306950333382535788356268","7289975400955667386257236108227142602397174062910574304202952552561854011431"],["11102687525313828718033856467167196090367175687416308419220754488753884945133","21647310877059939144652937745101738976562177926741729648338800359693771071440"],["16046921323067541693454237015348081219882741387748611318592929190784163762090","10215413257716768766136601385276966673050216591173698323226216697102351267948"],["4367407045854534620452182569468529267339920998321013876130558799496125215099","16832772492183491370915964771762702701505820726369912500911546961846761118875"],["21236770826356296842000861479526370364580647109583554949156408551977357526319","19110967991589055900214267241277897491674018159410742170162343084666737050912"],["3880484981584339156987355495198609969234417435511099889961086749541894907450","10272900810424610277620880242686140205259669474745414911500943750641522944565"],["22359199529955355065133573284455119734374884116479121076335256787908886040625","14093391662214600240122357922933749017862766963768901016439787700743732215821"],["26307943464028876151905995608748351158042852817761409590889897870374342578890","6708716167905586674641123112076651733278481178081921489208456848489247366148"],["7152922641598074843948920484186585908817754041754279447648967111959093809042","9622794066462065899842046084803682263890808692679524067128030039172404653563"],["2417444260292818700819400494208179589825684184721316156687275440221892419689","8123004812583570105348334919549019826149412827808165438704149110304019558016"],["15753437587257680684540282524629772830660475262741898904101169742482524861898","4413598892467413946967350826433398775912670443500958577376451269344502217709"],["26040905441352217912828141020046956934156786510253405109504771932705283863437","5590918440372794416579604183950105229677412142171687100033947969991243786097"],["25287392212734066660442886977025244645254057900138183632267322300523188335863","22346461733913462213929832732090642018305320999166908586406204332339507924874"],["13672013143463774384457030955446179658291530448785379650281072248683039833178","22313637743963010401438366535300578295203051013273812689711522135810624355514"],["23939439184214423714095311390251725043381680916536016369189308142284085172702","11492689446320801485978793341435035362676473821671279231233933856082945339043"],["27861003939633011423194092078630637927563258446627116430978303752525797309232","2681321396088559653411980198024734256871485237717601833679922347194145355985"],["6903546329458540305382872502531997767290196157312425692629785224496871845231","11571402263955562167063404589680993877382398884234083854279922056368726534486"],["19336881051469760615684926799156548679867368095669099656030501591708651698292","11338225125685787212162445122420354545619567655540553920812321528853233866361"],["10486495044058471635863276389280578409553329644743353762090395177503561554774","24842886467691794430489180850417001174029053358410500497746268964684068032442"],["14278102387361437949637385975283038595148003947895116846630405802282254122133","5207903979759440407734707948987362113894257060665932843796219641729131140245"],["20411149586686791488897740805735419211465623999914259482796629851728712545710","19348394107939349208118124583158214801050417381470654006791482524365490580999"],["1651235781858565852565172240942719360991427394833578474600702647240343484976","3859529191330588693956651866269812158760303739829539954585087164760450166396"],["20005748496776430892191042177571022939675450709186907819014320447186391526033","19523116559419817155232071896841954215625971208302222218581429995580483602477"],["21151464805932061035217461540779082968714576349274620426738239942935101519500","5871850646698218315798259309096771224116461532343142555109004924785666049797"],["2663681604151583261776252266607424917181402859385496622037293081432980054673","25898111790380340262413718543335825723691002657132881724374687711813777363442"],["28198170031825724252112559669779099995377405105627235268003305325792284344360","7729020329205745736176778144563436023373625819015297874063567915567587194477"],["1574363415226777821001947218682406197369128057266318968350148197383366043159","667089539980143348436809399317741132445720775787144371021359362130343099885"],["18195421478635018772046522332293856445184344940186885209401230286423775346172","5172395658564954410043235799926511994745503467639056462436977253995795587801"],["27298266930883908062076895192631872014044187578114517467865950196676724178402","3887882542866663721488618000184692764868198078454692135512955843395506299326"],["26756636759976658154090565573134941141255186414168291970823761464495295867026","13729143508068021010836372964159963289411864938898576163278393284590778118706"],["26201191635854849452981551102544027268496548540101339708493410516742161078782","11109465608204575984777922910485381433132746443625629721268142595959461656742"],["15006350298194568829797800224230480480120470281591140151636263045885491950447","11904925303299101139475853550309461006454554284781650125766894635984329432218"],["13262605513474772342875953436749784857756289904248093841109934701247577803687","16313547767266789635458413923973787968147209756397225198478143808584663983379"],["3181572440178815961043363620552639169488178062436122810164238627037519356719","20321977574708162205597435339592675059610378375352173026333747417880181921939"],["13516545812037023818199445718944265942760891168530738491375816622019366640953","24346345211758569670793311611211418410950936103630289778170423446474498387686"],["18312361044718396044244595140126335297135297798224725759462191984004305750168","193664016680691019520673893967824954579858538045295361920038491117286711006"],["28070790897243239834869196229068958031135153944784041800202963119194571347491","20683096560718659707992395916532155044802452772075102667355686115482140982586"],["10286328894511043402881775284448283895438548933902260420319437188924592220636","4346645005250190048841449941365445422497285969553098438163248344124157707409"],["28768791605770756907487897161592313054676507675752729434357105050120223529568","5438801639544738968025253722097020976137453647382660801959586152950718709209"],["22594561423994588338052544614770659049605940677285004730447049268765310594633","6678120706809664382708932869776501005724684718408047502096892896579180914959"],["139495035303803894276972414238730496118517382166455463966793164595188800307","3287409709596910956411264425628377249423895758503271273193779016056380996517"],["11772910036216663198056582633420779312169381330455658324809459426461142838736","23843190154488071027394981445471423891504723073810879718990360600992132636855"],["2480636649535310131983154373348118337355098485372125607420548629634168699447","4028270550551924359881935237818906605468845870271849743710141150821915860671"],["14615728105599298006568248104794422515196498599321910631293478397994841768925","6935147345813198902170645830474421621314541447054298992097882001525480752022"],["20064132067384995648577065568121367639469277252372641402925713304695637075370","9069505886786899054932784913318950355160269161979293039345625087448025540977"],["24836258302072582669721868950026367860556604811810869293611727678090351245788","25025776851749677155086083205720014418029282345407222843896549387647114157895"],["15794299026116524439851814354935865675101419720092102886687084815648873165114","15963741589405978551237489113398009413998929491924469886357682047486314549418"],["17062421565815496069144369538060264199759963215270636934986015723839842068317","1729417177542580872906917593528540926134063565045059155135876868374896331238"],["50836151904913185446710149516290427140240357762634243852853152729772582774","10505092223752955067084951308095581337356542705431291834352696349851877566859"],["13425807045313237381537520435349033954455162729099272575031169459518208446499","17825698059730388992893603687563743157732420101946239650957507714097051472085"],["15609794374263960188748182990152642778473963222254779577901398683106790018677","16721814038066307441097574040613413341770450362475863216322814748882646717969"],["8171280847973766005298932430799272320369021906015744221580767363418129103","4045775065877930182054561829074727717633826613618567956465631809414578526899"],["27043518419618021559483177720883726400395212706407122249341570822662787478570","1292751737492827851122957079293220157400369225900232705221198027577531025595"],["25683388009420902794819028107915212352194042190894084869446976766791055020682","6357452443773489161417820767525655852414700537180827218500185163484846413800"],["9158358265720662372057313030154558403595455138845640157150441100406103484042","7075608164031770446562160028437767142811231054020908086977021741904879807512"],["6824295077742369409956619336171312766364688688316761291801602529472064231651","1730362384832508519495357319266424988280692861049775513275890198084178210060"],["16119826473972104101507632894461892437977522413656928282021377321696500570336","27076988688247811430130320491801044231192833295220944010112889657822559669431"],["14796254644212695804050710814419174446173601859206525590308703884656739384004","2682004610144563966179396718690345707626892678419828519994528075036032909109"],["14730768710232173908820301784715107001580211124296607073893625445971621709574","18986114944623437914002043466616667771822307365280968016820749423974058009757"],["597223595451892421522906278706856387186438510351625057177815307746561282119","19376150054744110765205615496392187210052672470066709453226337650094676915775"],["16819781921626925836545361877692482498920630211082174664324641761531115416131","7123359167308554860810210836723112362031447202122284319485562580979524831616"],["25522467084608862273355580746901835115300674232200457120613099712136324126853","23649668574381434498292458687886540160162137731105768703699733729385945450266"],["13886861548807266647161222783479560575902168361852041431786621108914969497606","1823462550441177742053843344725794645121198944649739873518005324772795547765"],["20828496858573119726629158909651354123160069240865365366199814687293094200049","9099512864390151075451877858629866095388790087103291064152711427707658375318"],["21472053995620607311275912676123469905535332755459319378075199811007414416996","17150428509024682775664406645315345858636174872158588320227360390746958804439"],["4750836228060985773136658506281062668807608602108515537448834041163688116600","64057946636814455156877857218116430894560519564996961982583073396703509243"],["12998164324780052060306851914942527311662045556533762028057384478311623853948","12507750619111454346424086493681486014508156715279717680741843574123920282415"],["12399114223864545503374192853818235592912178225823493033405494353811575237902","5823693975909571313466340241406160104138370877573780293603053920042862010995"],["24429957895177742747404054506557382402882406888422242084743710047074710507551","27500144119406236615848588097368704767172801956230167734317364562298226749032"],["4333111967945844549552607516167792208346280078846796843344598703459153934699","13094138651362753467484935519379135623462912575149411428781336947459724551014"],["10979119126153225608335776314585563430869191495187245543344477562595793751965","26409800465782295907736200289555726734254562813092352914670552079275751860290"],["21596721784275092402954774130559133792604335645599208751124366554890767646182","2753769887560751141363134308279518526728789767046010890443666069836990289858"],["12462844711618576581717376334625694229122603024311734758754146368466466737974","10837956944708931390775465828042182750700418856322895189478182608594870184018"],["7709707133376763595932890450913369718831417677347343009916124826952527721869","20304294396477156191340118311938852781350051677009475143919947813049527569054"],["2756615046551052565347558082861815605245013033818376393046805675087159475625","6396500770536576850242780464540440734726271427032750449117508397277933753052"],["13408498478253954809886083776612910767589715465344993240268261129917855247902","4209833728967925261993379176593615284871722478392574802697390942812716873829"],["7931401304126297997613160905445981935779514940926761884105896169402604218698","6230475107455590588607180486540431102841424670414569505661113784643663920007"],["10973012719730686122931876545812718909854695081036636261902179194746751928252","9096611403040332905576964573512044818696462600562558879284584810805018015150"],["1748133550891684377089552480252706452178032455210074500112052563113050828300","14587258675349366784005349066276463949864847294778060455336594576736010930833"],["2791245146986458856149264462218858977100230226941887545673252269461109852763","21930296341599652352845894913910919883175867877186832048699055333648581152789"],["23689595626103037930433777467014845467948460764227167111557153805852547266731","27153160027531535780665489983111056873646004832283844086555674030288381668668"],["12157953109096089552493873289829773841063439371691272578437169826908661863029","1074175353786517795225270090592812196336988544271008186597881377961469280194"],["20497779700877283126786288371395540051609759179118871374632942748260451351509","22294449198433215829738163374251357757868658667838360642307350497426573623626"],["22839135336939945230705849404636507295970934168975271334072226831589980281591","6811826903127784924462252543031924734450258960163172850454617523460954457537"],["26241256792984970414920278463771269186925605698282222158035301726418338160352","26645728389110220782793569233311243505670175921547177989269855413076910159991"],["24439519003790943614187053326815480853672684392311888977452999360906414933151","3904730297531151385548414597769672135310063682704279087441624686635758056867"],["19026454882628506363837955280153603900897150417665013883871865422559059105779","19424320616556967362964907116570310650712153381146612569424059811649625575351"],["17900533584212546796904543574430579604381072610041777775787356163232992460530","13929385944033238948147602719611569828327806910602200777076555508275689407543"],["18631068587623373486159035144308716054628783721719978156614206714325857049773","3662811850732166263474161489019352451852722831156305274532750490065171588455"],["7230848155800554819303103893063378133451818018801029140172240852791928853240","26661486033102282569112412580857371176195304383977423697266994247375186388139"],["7197739178237421198492233909839599664289151485402780136598686766294247646624","4323856798688393129613240065163624625833622963258403399793020679236528827048"],["25350293710920087782554568065316435677813400399967086634237863736629003940472","12355484047009199175883176977815511519686414679139132010450420319405468186586"],["24380414308945126480617828187511318428525773909781676614336979833321235008334","25369670525905713864344646611640235270975583949072567477456023533304726528815"],["13382857026660530607232576247521275929925970598049472735462997683868055346005","5043799039162288921957810452456715812450325600355772041478508212847768135642"],["5151481457547448131682982074995798421991539740068142109500254133577310564924","20599893907329520575683344950555504273748520035161796232985751854959772588044"],["13143707358697569737646925714367408135559276438222389788023228284237284402602","3430490567495522133233668002519209121540353822253146963944420173817674556779"],["9936334621879031584508857626903458388033728038950127480362543333886863762475","8569870169081896875156749904621029757520575294530840075513198326768756009312"],["28086837793831197548693912517958585127366483026812325663794010867192353667288","9491964294572452877029740217824231233247539807988999624935426104270428157235"],["4301892362381280978063064735322968183285853288098562677733748581890734040321","8474291029563855829303552757927941566342859396395792859172145398212810925814"],["16661196529666415092798775172154434888896038681283555844906756273321855701845","7488476713815528928423813208466048073589304193587346784300041979719329450824"],["21918587591614221800356113586211762230592958138671393906450170689608753023603","8542320653660831155535268202532672551828690330313390763493974524195709927004"],["22983061668409749202419109405482842716509528402707020692424499611028383614545","27004483969219944025175008519747790504460313389716389046545398306013401495987"],["9994316846893009265847686727843077702876447628242319068283861455803968262595","2627995260488231915536023391825928499437785241622000056523484655819360225646"],["24785488756011213798852878599530424334803854798862509021435553176993616163524","13876333207475666259175953315422581350628695536553645520501807949593551340464"],["15167359153221616298202859970658990313327795697571359757930844606251035356103","7204023736430132115035753992412097602475216968594257738889125160562046752912"],["8145410512592863985404921691476378369785709579882232101957506174116416760404","16489423732720290488743848106534183036906946720200839059810321492342576583772"],["23115238149330335464303947052851313601602759206785295945357569929973724384126","18788674213565366592255361448982237614570541212647632911462281669501379195732"],["23164046435263143379228550940476885974462455176789264435855695385761845549065","26834265310503921659484389027655052639784641123769318123992110067919498305942"],["19498074359404851251514177017502270728290717253938482450601717263424897937115","27677249601944057524579983023778990531144637370098545636590703932445576821559"],["5427657740581525801234091952295994450401459426824673425053814867733371312380","12235088304713974147906947602748834370775791151036350215962868393494787928240"],["13156753455295895457517984839920932625572390788146396966517410557841850179201","25259746953422069421483803552520596744990583268400160278584770405659641602682"],["8243681414745098584842177258308897691412853672296541607042388599985719414225","24643145981777197449908393542527602777577364948205777074020385447135114227059"],["2820721149055778202211924524378060993047625490292335836769664459400767866780","22042233390118528659922217854223995323582712635221995168906519783861489087884"],["15087107262596195286314582772127373612742491027544813983961517017238942771566","24370278987151549840424349938626483095561964864861961600585552294670550210803"],["8998263441011942306150397935035240560904456795674888788725162243545030914985","28059482244682379375845743499080017458389774797850126077801749442813439990681"],["11619909054214946816282006622741751496336581114982931202579337710845666378375","11743472359795807149736878204905669488776344437231719585381829233701074014904"],["26104822280981003918793921661883655674404402693295572306405565480936662434351","512486966195722033896297945591345140391091805820048322753251047107237122767"],["20424874526055230006647493308139919368595496606054483562535470039422345595384","1234390275966096897596401305615136253016023432862092039326415318720815029564"],["23118501915129158997547895347576694866059525146039019598105530559187337633161","28160337776400961592477074569728783820950222513514663098243060993837901333136"],["12546431867586705759672483520199647685865476814836484647138283998723769559445","27544001521186129769451807697731037416055756858145530324376194867257374513351"],["20742701662272909216446348473833116692983237340798467604547955424570471489663","15794541561511571176731571142240377357333914792919983253217939284691222815272"],["23177423483327840144880184056818203908903660927909063941448379065113735600385","42164398404716198741485361380985074559225274925480596639981561014970467888"],["15985166563978780459474703976934167908896598506355095206401124492872867156087","13605070739649718455010808750121630266457747133533558674907819778148790962567"],["21069975035257131361122176322531384183826234491718692766343583879055459894511","28384673657111087731154789044233109013879843031895661041903189156753643800720"],["25274447334835504899951329310470235509314373737543785791002469211874232641802","17801853805043081154306778123199790643803965390419375866851390907354747256479"],["2163128162628861780051778751630960623662124373785457236153674005018373181883","2221328199454763550194056935880164149340786098133106067568197408504402009409"],["18169016286515835483088664517709557046620658613881978701113383757826956963957","22442515933446813239239449083775402793859120667024674665631562599387326386881"],["307422296368819402854957020752932384563537918979194175755338619240993453892","21873966037225810876334290683747295989232329817154092756118330292354088822832"],["13673249983277192529161522836701699424220509161487584026175878768987444328893","10372664420989017152195370187382756757285291480883514694992896374714709646225"],["13866185453412827387838111175041484561071679217105578745446093758392062450822","20237134785099339823711581731152000465077959293085203865843436768059723704221"],["11695927277885132536286917746844366051991083163828172788806812538912316285896","7639108878518843388166780166304988670200743619365193678747610203581517258979"],["19701689825277844148985598740514588473775526125828650596273579497333813035657","12334758908204061182863101891878342102028310985238898163571497210045045891961"],["10840927805587933440365671169521788634363883635014942765426405047907976327568","8529521843920611085281520466438161617755771144792312374229541005788061513738"],["3998651080833024952900273162386713295458795036993260144935188689734008612569","28289553853889049106378919384280747967195316617448965909313064160305176560785"],["7289448006776795915340904666914623099702068392375193316150937579650257296357","64733363467451933003743300938628353418451687723714271761386956095575888287"],["20277816864752078064889529786375241563324193581934190282781849497593230700307","15045962000056432517087658403541401218919145775393572135426375368113052661401"],["11141620766005166549744132871018527044331332622155366534269919706618999491554","20960535386111312229282263568566951590061786311605728793914494049474554269909"],["28527082564840128161044607809455470432164671967995590376552005879535836433474","12240583148841320767750981160067263764670385684739850332198170534771319849283"],["6553984276567881368566387282303624169296368406369525400443292219349186403174","20236849845456116156359659543453855730764574133749898789155635823814671228092"],["6662780888148744575182871083861776488263346181015953712511483638932739160722","20615618497140154855797997202945479456001784644499128935813102137078099063035"],["9682596372759275242126837560756628717308065312552693936773744349953775019060","15564474021597360368196045856809619814047422077918646552134330677112429411077"],["19578346398919599588949975646387935850093512023851114486541951238889436667155","4089159081470212121831359452456571531741949967681342866492968845975794679761"],["27087855453503163187377078899209100325000600861512030304231163391485640900837","14426976767889211920317241085130192327923795373816352485850657906049096408777"],["6454914702132935705231421378829356393409431595890993454773389646178229712692","26471232214476183392361415181758042712777475142694334188617434212020285440916"],["12434848561590293478351907831645403976858528351985784945982970347558642518906","26617272212363567668606874943834261152746466953386646029082081063333608759240"],["9967617917119517628044475697089537956667569958142794620632688902998790739301","14002220537596348349948801057179901026427724768762855966568488846250664213967"],["22132066070896289879368894293706317690912955094988338149691920741284870355432","2131446446248162826977955200028281326592674616578374945976402647391288523255"],["22158943815112606845496507005028496077893596841993553414044277938908597129186","9961384120742484151917327901754423851116081836602346032691342600619435627267"],["2001828696280303098416216846224343331229077693783600314593484066783116126132","13435703013773957724181242745767093191087481613505220272724663939885819910058"],["2887644215051879355770712934782051054266596990115377228144407833940890547289","21611310604994427328984895759910712864807622105305078064147295944330201306544"],["21870623565355190864098811068140813967159497902105027553977741402088318677549","21801179059180058526181655870698959699740336892890927573603598613640656934185"],["2120001551343075690451228781071888752172941493784645455484193234059712254280","21064756077872640391739208535280598656225188436094752687329743234178853029404"],["14943859688471890208448001187400508499075472862359196651468876979758941817870","22185377226437125992022370531251055182232615212340115346812885808995162171112"],["13407013584777679035689299651746407648202874795656165066099149856655038913192","26924443536977768688423291798530848060365085911275769177998684291746144417070"],["26312058770597372919618429704013400641853209681103677409957155062606116370716","26143065118022652327296715343508320403445281466472072434949180101994635003791"],["20209082039853311173276762076249589215591153732145979576175838384746057479150","25870468746561825939806106849572962221613757668789175885398984044504996611639"],["24209239538105373819597104479482538341758086508572639820266966766698032127401","25230938321792498987231414222285312730892354892789647042486439458378117477495"],["12107298794016317694783705097438131458988283607337917032379640748858997146525","21694060944480433894740416108804809348636740422443359245497743274863897384222"],["26925376252901738863989352797886636211126832630845883064852686830272826145588","13003205372692437052847799265718262905233724023332399039092194241324366039762"],["20094805413050450049495081167531950321739459296397467826977029325591384315393","63677621603472928317459836551523875070400954986059238673289539837185135044"],["1027985280164246848641032089672849576244482308977100094157285453102438696777","8123816791485945785115283410730590699407624554012368569916849249258040181144"],["20937310394359837104523422892611183006861892941384182873045319879595058421038","20529533636591560454236791256401877615119440341739599802373846316193006814042"],["15322005038467491220516854106474322954035238592626504483292862205655237436629","17753728315117839853345096599740207727952994609383642203884551805256582390353"],["20736386728717598018145584726472140635344196616750523617280531752104547219940","13493043864648854798382265499731675958791042840743804811723137729715978457369"],["8862428063778261568120236051586080427195292105825756690353821305905629788474","13212166653877843246986946653471581615183741185094785479821083947895030045077"],["26551307228209424080314331826028677982443127264544667968902073675960665481145","7170110412941686890327983879451580416644214255817326059155801002401895696008"],["18377708556813785842834559810436853719690504013572306441631145809722901661507","28859641435877558789488374643284510304294858842260334440859313320700641244532"],["22007126813329757618044195481552504732325284132467777752228799530748204900463","21844149755456584668621627851074726095898374915989392582954208816922056571368"],["23954751516494762411799415414708509487203319424600816958939811261503508135256","14231371123570760786182199266765866649814613143369849056174049981174285987753"],["7627665810055066697743221125149113642250501391964113849374900283251546492075","20807087352040166457031362629804871326335949975110228689794899843387132336025"],["21134878609375201702015245076147424585838477273261642201124308270002526025710","11301042851982253793695607864969410913758837109006694118473311109311467981798"],["26752168739082039626007660442864678252699896583183431465625927694231069012718","6756654895907950121383701243373514122873872702207275378595106749305045663007"],["18577467899668468545934972960941485775212475765416614555325661764270014920672","19000138633255211748784022613239196041080374018202229549912295202185749482333"],["26531083445101782094736284444402978647219763776824506234028960074150034809682","11973516251251545631347379916925499586833794946385517720795058972509659533692"],["21800987041857723093996226591054765523933309694650500474810813265705593470462","4669009552919952038764445474761677772537427419047059233581911727888797378319"],["20859651909173780869886838513785510429315344379219200317611876226921305522254","13485512513317143643258402608273847973742187792031402483035584702413453621963"],["21830651928675869397352607220787075568774310858160218249966305294254457932956","22598078188827154308200066871683114820567196640511304003554584381449343730688"],["1400447429770954514892108995912323084194709494927743249589341446356653955913","16928400492855512923429740531978368003746781521771624588166886857566112452741"],["18885832425060345664159840837586075336552061848023137500153384335312677351334","17246340375476179619645435201368016636249409957387219118686536508602657083839"],["11142475799123372465752325978412970350735800693121784147102104391222761171582","10650683232119798735010389409380097580192779818461629069680096597353220670362"],["13911698375842202500261133666466060780920423912335622656417012162668097871501","1415622169688699926945636867146506149703201482507415427975052882908355146996"],["25873317735936745230731773561279252550149887463089924156889770370082229266835","27882291984779157555894641623799094109458397181852812282048313043885586072922"],["14279979428429983913686940509343488577850422529107378217606972556280183321339","17825005963460750473081943788725559061361995383260426260730415626528303819082"],["19261413393189289879335169151558421979040942504659457894388971232055978127694","8333972835825788353460937535670393206325774025082070411431644169575343238886"],["4111196838473481791310874825421104256912531815611480627781845682860394866116","25317650222900177883249743890819374090418070605961996681079196610248841400511"],["15365526328975721514041734169757700613344076780145795102914488493562990077680","20551485773020510971424797003597028066006421614877138650553025715989739533693"],["13072502765460624584569498396518437483048333772676205585933918452770327328281","27705875889715453904342086201365272303007405494095879878587144276042647770784"],["7726854010282896491767306458479845147256847961395699227167627220105766392934","25904734737034201983044199463352021158343060677686102366569619243214770586829"],["26423590576095140254696201880303683559514271295478996598207111687974936551115","8018842566567939144801598161640725921334145351961598541270059082390481876447"],["7980825317958209919431385769065747270741904680391180387831509826678661375537","22821882414729043124366135354422431560795679156621430723572514034315342122153"],["16881698108350888945697513338644913109954704597152110064560648289601665521323","8775432129400287417176741742840171236596697502648693792385408236337758373364"],["5920424094860105915114705020054153461917708990195457221352719155685671969440","14007669686339418808641833516554890665856588489802843182936956119460317621540"],["24265146189589277388823785523378404959661913909413679604596570645241740034206","10454713939733863895448321839040551037154191309341457237606928451439270296688"],["3860986771954153252774761054467835539316973481548077090201972634036420271090","15811321272848296264873241734054031688978314305519792511464373955639856627168"],["8647929690765716896742746587878987006624027207598162554128369723544106856819","10735789174691714162997059846437533310959878296513640189780723235813284839296"],["2611784511443626942709456097700751074824950372845093481666684435084816307141","17809291398625924126300724656924146082003526242924109252916730016652662821090"],["11023881973116749912527139287578011833975090753049600253737571933930699336658","22542438048147767310280815614273920054933190919487455683132651815406640153155"],["20310840525341002582654460521327588844123577890232518074774933837993825354278","9954243385794387141961831272780465092410956767545335215967430886765843625675"],["345257009966734328964076989165841924662432624297210018486877208043120331708","18752856445675761277706064595506452816572593849499562601025307413033885350758"],["6246496036136343148298937163723763797714233102786007969514453616481121907788","26128919977279141529112902871575808174406510816004441254381041074325715707629"],["28194536647896422133238350038191619548044981626392615396103486474200870060119","27960091413888857068501813619881873691794509886611693607804397004269308228044"],["11229081240646242072016466814262974791626267912719862705635306502633640452077","11455542085770913680034704224830319123797129066330037448742483527522102877092"],["9200588023114777946398951581040778719697705573505189228099287717050868070914","4930236162113813003290427504950539736160220621674923975479927137208350544069"],["22475221210938450471437073248523911850412950573879299563527072454200233013249","19442835612492052791525279605595523523332977649857547997419945872419171058803"],["3692539053224766499409730292687044464925278408596532630268522954962277834235","6223072964453236027679151493250173452432796491087263010951631022597312050809"],["18635159717687440627544217027521235136150632906931222249308898735406785773904","27348595270527772170160720205579096364019746157683806816500753253270198594143"],["14220731459424153974329755154500517769029729140968318160727981503068696269194","28198241240108966785849284535510274465989271755876553443342971259604597773238"],["5239922501870182634599388718378866897204929659309354708259831581448969086662","25286197797542705183820547338951734019507146692114558159512054643637076174788"],["1024172978237010787002986740082994643472064587584823345978259114456489720317","10804052409466373651790113168476514752620264336594274780279063550771348309327"],["16928293978472822130529943207399420745593721244475732669317112173740508432782","26808509047382521839613017584805721568850372373905206146268416564699659965686"],["4813389188095382835596091855700909969930370558188148762370984661248016656039","16262121652084177570764210653545748737412131812521408105131476777701443742179"],["16526427940066291104760536808138656236597801815663878803610394565235868879662","13880434921707705139485041117534299285275881357058451571177543922169457831447"],["20500738477081263027360420097883362591727957609514208161229470998825555882809","15847996103676938596787203807909242056878455027478906201800999453274253010156"],["7950678945501062062891875989445440705504223885175698666728413611684567200229","12816330561087722790976286418397357930489143431874945841300300780637773142735"],["23731321261686816258520656422592289029453390571318849239897935926831521617183","4397486374007331601218156326001360228501974845457548120918994025631575219821"],["963996814204280781160269759084412962741610629790312336797468785932957927981","16862590093212441434515804196508088056424952167684297755780970778826754404355"],["21305409770237277902872465471895382854024518649733689362370198071240337859197","17966883509971004820585850145827895555949962589977987292589042716853427527986"],["13067818160906585845930880550911144274439349913232824175510854059193673847791","1668154716457785323802187870789942302525980046545966396361866701660693744089"],["10908712492349443889580401523038755613915546830944680996277801860860912861405","22524512459805416638993295189055167901255812674076172389530773519541701585056"],["8397498443000537921869585364732864143959381847240448357143612753959552587436","14215839229082875547494110056797464865892449497504461321861737392581050244161"],["458493860157521246205270410974102190948295426745511549712188996439342953797","6117498597151631402278038128259378156134759409708318969000248660988800417466"],["24588049720349962339583092329982022556546260632367679560706486039553659533818","8826948831175448362713567793868679381023369671526791558252329665576573945368"],["14855834192937100174284958220211659072146526116973087621267959737591156284406","28307388221942786603678695560448900831874764945512172259081202655833381435308"],["25709436804688827566477205181822041917585250102264051330055686409494014144817","9408591430586327249256322268848464433572148636726451020227031393270872694242"],["20437510031392403057144769730458477895378891268614595263563232907888441942327","20529995202761459653946482403768855875696008636072393351704936215321357182656"],["9091114183368608454093328117371338929450038205878439669035850416732517851617","5166397247185143936829321506974355070978713032345919773114692878954526156816"],["842500690710384328926615428529396464909560874663498707345661768772465033926","15802651651798561541564269757205463538449548749117359486183165337889893258571"],["21290051945476791027419487243605951678093157917279976476550095317494420661164","8009560258037160841876840183951109999748893035415771506209799995041016921897"],["13267180067857211086617341106772484988738674625445351897170281530810829138685","2660650519374326449178640635076920220194742310881640482766468559816650421317"],["2858498479678153487995259761585791283108405773638152170383459378597140341167","26711427280519092203222307246179646001893738237791121103504078333933934645659"],["22239724315029497865828178358266923960132482581760121591703516425495760296514","20145731230217980110543985702109474535328186089229258633220903245141337310300"],["19841775916830351148256932435755524832342652779975914108534944520426515507273","11007650201414047572904287997321867364049898959505117275196355680790783175538"],["20091031777291962391606575271318421615128355684670481568433729428001793370249","2518746893012115471750432651662797548142381168072260156176762459716215634688"],["15244144618800339279121777736547827997169692678383691108326594439148565500333","25201131098733608182665043821772285030981314664400974674423637387485774692724"],["2708760653092646348174933017241099498698449771186318008975064675433011574493","15351121289946812878437877255275230282353575323459784659601952481548410285888"],["12904144674515484216695159957269439020411652360855861405563593469596122485589","20744034464506445096242737707669517139164783529201567103132470207232819108977"],["19884770821439355749475087030860794205094873017823181230993633891521493211752","6209541305564979539848101376433987221953400603689436525260890888968328434449"],["24533096038031311288875907090083968766421392826605374482371727144567688295515","18028137921188556399840817737233025701389346624458401355059884685821411780237"],["21866906738744459759291520176779652401897393103301142244496728612401341786977","17142055496279682211218004271023324174562442884639136862969252364373377305073"],["13594444598107651577768930364767044423482466966810011723612469682184794275353","18874421876561049417539343423575611740509833493610378158344534450726959299154"],["10354979142695982637530708770709751541373720444446805565246071826993501126547","23982458759023243168572645823474930493356928384073641296530825180140137358325"],["17188446320063134271696759008061183015756730789669577160690243971927772772458","27976924046315628464062701721976794296376072345139939691527006760644265305413"],["27283205625865680290709792883266726410781717701137089121023233173173201047921","25224253160476182197676505753704605715916762972216116796064782051960167215967"],["11561418937477165696815510086367520489054622433667069076650032454373098624151","15170061180017727505468749348193266730041488126735367816358309895768361231514"],["26406144411850592512207542479561170897445173409850753464295243565391182507301","7505933851805767777938029662184986750374488268148974143494325577450517294533"],["15974889548221316333672595844533359287905254387528784075610198733067548250754","15200683040220667422254907277683314156867122756552858942374839959059173719201"],["18682801531894991263178825567990654870898387220374364794811096815503599379732","22675652766115833997372717739684145570740032657912902182523807954854535706205"],["3248586271184781610924789071765517784956639599555313489019441736956368622787","19806508810861099636705400749143349951048838645727247432323783859500323034322"],["12747362054677077522250428667014307301642286397910633146737027575171126817698","27686526845335590140994436216307083975422344812835146061976711068148914484988"],["9567351249638967953615645064876463973888850669127920831943721325966607508014","10596675076494589797694490182533696197238500889298901609205619574953099217187"],["26067233678605327063278241699165514878862441611155033411274417935854024131943","25602467225498985567712640075067139719895536270083676268509453756791698486405"],["3092044837437394540147553268203730105629175778586361564363220541703930583568","4477717345210213656920030927027872624784784352813513246995427243690716570709"],["1154118978067645789615461670823973977038199631276107242175700489335747656888","21932977400349458735096430492367729567530186540638726224450654949557827106177"],["2788700189620143876704068964280106483128281859326066917366355721071763901197","18282824639915777000527362360775088212858287846377273919291602280714089986110"],["27267324112966400337497538406551041372994456480848943284075864232209042605287","10652726275906836489628415001359328683566408540407984561719056176126369323419"],["20338176058774886549748918170436878534433271354316454398682479869770060441064","18535234329694962838129798327828030080328621062083932054935703493294109525565"],["5979676520219900389891011211101937757440860149797996859403991210128426699096","8628484470130718129296206562517719436814365491427334871350481453613196961577"],["10023606581834949685006795960525904264467449115387329294801057282177334086584","28692973860509365319453158192116065505038608714268464979381223765489996436906"],["1496773947821796142636647407137154150943717813727826685810199443732180031849","6155933801759206157257664922109094440286720858222317198794039486154805179480"],["9080001391228439900736592546352797444585417531178312627019842590715477058408","22454748336278322609543005142977286402447260380677654759531240260814504273024"],["20115498659176587718849205998118733848324562534730988025271112845833347150682","24386829343835452869541184856684463299797614492638475331769012432313175775228"],["18732005655149802068565656671355649960067887067417988541708852349992893845544","5755420062571395421263815433140067911442088275935032683796979138994102248181"],["7988745404517589956122005710925241946808012766003823102645670418997787073730","23191152561417388385325712965340028044869148162046254456414171207363221971434"],["11346836887599898560733776173700473571440123760469589735103516961218837423489","17892342670871020641440156247623767512188051902979656194033357318589117133853"],["3813815127402773826925249490566932451225158541646947599098231538153112694992","23430124139526751662025831147003221980080475259518550139412475320324370502245"],["6525446208156940904387382750481607262059726123682415652966454160629985893962","13736318816864041458504557084741820015098952492920019906447433349511458376455"],["4513008195772131594060878919052003398917319357680553818243740732195211361093","10011678055354000794232601936153848018624013098563950295395264309724453190537"],["7010304473022644378234210114563410622993021705456644697585854531854588134693","3512682431887282295314047035589783091339022153758379577275644686131745903838"],["2419724588911123828456287074308227506297094187974558186425819243873084075312","25407119770794373825747370627542823937756944428307900058435243879663722336745"],["8498868015666755748231776919843556368134784625341717671533846900044971628295","8758434917004829549564269950449192811441045652584778201561923454319241056489"],["24872052701041839402547043351009194811912240851522053435238927723816815452253","10251800161443995367499142348820863389150365714495670636129520705929504660783"],["12345290827335671246347222082590264102848343968089337934879522572853646625477","23399355996946635238515626476920097377613711605255485843500457247434608814998"],["28235026891173536339606246972589506900770925817456394422987521667509068854293","5495684157161852489983048336795813026582639111611158740606606741660160542285"],["20278485072045309492287011501598400680447787546799953235393582279228876120517","16069186189453440266614191032952707233267128597910864274265383768977192510881"],["11618100969992077803765100064192623630465511634322094149490503592309135881324","10449677825184612370775483734270619719819823050567228489433695315538843458452"],["27860348117276257748933305978445301285421625517372815586258885868105945740226","2245620547999191295849410895984092335477015627279514718888654063276117532817"],["366592019983545249103759004019076948594987939165873318661621100368264263216","10754430872606614370085284897465302967361099433014604011747302496279390262204"],["8552975859918094637238283607431212908251129062495466682917016101222613160397","28259962017716133566414328142231506064406705505989616983528041909274463016060"],["28389793716110716950981911268822781530017026652606279947487022868441262270814","24444377482138232242874200310728148537000057906358522971579017962156096171097"],["5362272200552425434508332371702063097517719009914044979978903880958883111440","4767568142148220176318955752097007460339869008213007534928687676561809530295"],["17779389826660540482016215945760524658640607711910863724108563005770985214014","25789478890096525758871319010649813786975666423975699566880617037661172448763"],["17721090429598239153377967200238095560864568879268688668264381226811784997874","17132042539225542986983531186481302295438996326548256065524101609330288149426"],["14838123872575541495291097541210784079464203021006250875124596957491252395891","14648821780511048944745018477733421248688184377176973555194549919398107340010"],["13879965967208298813921856965492438646829381422810857275631974039188611542970","1081177375859541149260026369133381187269969979891410730645917205924322334722"],["4167720432235339708739186574199346001976280691196369986314750190835773033284","10216251542643864433934573741804537122592584175385723955763691037830629344998"],["3033020889073628566126093212828232194571933154999420015656146615810480412994","28537691619566272875069295540749458147830193317580354246251465926210991678104"],["16031222899801763315096206059720885273798256188751429534881465384944611522898","10698379149661799568809581517992467502362210800683291989894834732294451812765"],["27903521732590590842947288742281221797634533623264118026292113821393632039149","2271248743493515255377156461017854037552293477925971822967209675732466284238"],["6686696117382870834806369014595878902096962763478767605493140449990559501468","3244688721765077668858012231392907745510828893633994736553170800349647685666"],["16609027095242217180832549449790964845721827305148973415972303790422132656541","27151777191003616873213135428968824252037456461000684867412504006523422045735"],["7185074829241575126181615146311123233214199713602782994974646197543013349187","10036348671871326175524341263976773221813085305913827914346927562802968008842"],["22511331245346331250309030067159239362314441498123459590180407462699834351348","1988929687227755976067887133428813233080615730492868718882054109134836965274"],["12183900275964608806872625411012696653057780096775791384773708338906023572074","5519091452338355941680858477761035773698343366383172423276875272989104592225"],["475669826578089064120900086188475152271038080909043040214798940972509795314","12716396971182861167217695018047273325872723333330742351251142703134270586642"],["12659186102194214734109727017062039911191411838031081956569783574086752923613","27156674968984421783163762874013709839205841636284420996415608227328055243562"],["10788272319866367298442278177899258638188949688609391590310088527559799192911","2562118320580007604799276047319521386961204858949110500943959808026879943990"],["15751573521539179797990375038713821922354245825119303794196452657822798399585","2348173031359397879850828597614430078747387700693015504064296783873891200642"],["6188664503087457453649192247762426094352470110132929169418894251846620707666","17759140932354208356217297292772005407785310652860788910838075209003304496307"],["16150111170743112424284969241550107699125768695020596784913847643638284316748","24848285320368533180122012053765601447035531080716935305531961003840725458808"],["15550755691446697363111799572494641335966294917314789386382794655695486925441","13645475468495189646963361015275144276975120889235878235277649048762042361374"],["17621346307980895271239277622774757869815121197771406890661698690900893582261","3568368147950166952952449902254009293051838987971061091627510216171757059662"],["9825546436628353179916844770852568124451918844041504153379382795257514628159","25537523310856439677523531136933492964471869337865355776342118667994672916615"],["19829762813479189018740104150400399140993319323598383848601785681255666358928","6417833572802981392960564366274152097759989743747040260884540732575230404860"],["8304503222658752103631746454642886614649497238455584216180671164189242159552","17199241032114793073285965285050412635625990504072706004526803657553545378258"],["12515923754679953610515685779658613794580186871250169920619972706621375640669","19733337504708729783459088844118643793438405161454368625367969578921263576313"],["27347813642691641514089955918595890680003828068224738075432078653058250820353","13183689333824064182543641088537372319324629755300225107528405941047180944385"],["2210289504763624894829210158304747291194382053429065609437902197773996566170","23955446924462648521708115267894468614013553524165051807407158070642100941139"],["10445061873131314360767503342154819657981708327409712693656725126910692826166","21417953975126870848288417479603560989403051979616847853501996001451080807537"],["4825130166612600698663609144878444405180195493198255866422624571727792077799","22265499674629144255203015503785959702122995729829359024626395799142316529196"],["13893331116144664505687335741769428442545810997434630299601420469449933293437","16831469351738421879867049959019077843803057135860326540608292567648228001295"],["28305592371553581250882503036627463241223433839245523067898825265156864996501","18693979846956112488130856765954760118667132992048859945904052510196016361568"],["1055279662357653838347333847821170341811467438446123730785736439227298389425","7421363097504171356384835347202405547907235137590551062240081677632393369005"],["12548363241690523755759250650752742714026760983789648857406148432677175919315","6597323547196593379852843485144741690985876767078169928541560899501147137592"],["7512088903484526224128251140496948304116896911626305654297077823311614478019","3551834679203489483074376378913154546085222553587713431246507900669908035238"],["6256806391746062217574269249210907290453201287994463287586724944788364179010","24769209897510101046158801243507643797889413191302500325222166517734303942980"],["27738371760758035258183737972298971818633197709487622004281297098600971744416","19466526351802268252431177921995206007199404854711931540073746962413613208912"],["167094642604112701239217092160763701589683544161983577486541698060185968840","8520150536248672604449920784840787032539264828449017823903023218554119053324"],["6218824305226409175717630941815835017160600834193465664917856289751701233351","15249977859862318389100517526630909997110267429335996570222757240819521446863"],["26379900586395527336802001366162026379584084205750777589554496234108579197415","15125630653494680073306881398193679040276771406507613967688502894794773778832"],["10606401693318267467786180243965762440810402080223805672638357713411962362381","14377987277797586279340868358971042986049855345384510601000948679366635044371"],["3474905087003806359769249527911452511127526580319076117311614271316261446409","251616592248948074225344190816129756073436291393832542761493366268404496248"],["20406982161914202610537082664288266636490529808807064110042905997027270173861","18476197988131601598068133574751118863379507797763280617145874454724904591125"],["11169171688620329536672194994569329293240051921736993356606374007442306702595","2082840117691681355981776906603177070692741709400288317993051017409981351247"],["2572793129343465270125160838132264225421861506485176064166014650019215890301","15261650910364079362322726727816785437763576370907114216940511098682645955194"],["9861836106107951314902615374197724257023611404405552762363828659603770210778","15227080059110457153597310548075508493807400418882840500906050759337452810955"],["23669874336406833262170813662699936611364311095583079911500741123843378880232","14335011839659686316150952386283645871143817678212770501095971432045182574105"],["10324149970037210500807874234187830492352107775512052193147715163962107120986","18981442390852607604511440200855384222545573966651481227117272708189975779789"],["5775830692618776628162879142114171168577611083060603069126341454666349824849","24149426564418661295423667297030448640751004808675907735318566913269550209655"],["2146969871478097126888898497605666871185695794174362544975448723371104838637","3729836515144064909659863288195104771466130917813083600280740495242108326788"],["5891622481226925762116245823600958245560387407158548914681306321597526858998","26037588305885154525197261819382577347426586498823788556112295526455448381044"],["24542411083897703771440140123990224448571674895209881471173930770654611125606","27954363539106164155415767575484972200842168117000589621808413847124476638555"],["15058966018444447250853453503146029142378877858867125930469449826875763996978","2778384411435803577321912805208428111150475316343483542863678843156179417500"],["1624339478252138248115975003534216156469383104500020197583788826459631924175","16362761262658251045640750567237560442790536334313475753248019313188062566972"],["26650736535433525275303621631459713179178398659307323222864352751267226075210","14830798230813631229270891424396484174963404158345565296977018172922795609611"],["27319758296492504293319383162782919107283144680634924726275987844518792143622","20326134770501805317077112741978155043781760471922565394901422956550863775458"],["17220776324397228834792075564775730383953752789022428444928762219689435515672","21679375673305085398136463012988979670856125274922494030342968568270438707359"],["3406826033862318980918213346234442035279191236588766333504475980979921554922","6278123619847391091206524302118544799404024905109278290168480682781447994815"],["14648951353566090753814757511662227961548940961180232232535489913011667698874","22484657140004055013574765364687731343731830316403443990195891715744669572490"],["7817955103677176427715683024487605017832751190368656970032180428839405922164","8345727428718017892752622440349905430966987078451302491341715094709581463902"],["7741741541537831732842108196962270593031157698431194468723506099725839297446","23304810446544153862962809214450054733343775015087209676332129664068579767187"],["17784995981338532434588190562295431094006479024905813609577683700410112472867","27613961747010970697001194790803238128587333457632709827553213135020733394994"],["2689652323941265166608761679419027954813013615850928992270090305958185055036","3026532320174699851967783601338234063337152281422518080430292931708376311514"],["10495768166322045268111663291503957831283307954653955730920975225536777073808","11725639389559452399121156929884120790986354973606560425936604434376841460194"],["25102481717901321504988963777989917265837786375338955029805174362110402890123","10392452890375170964134624599492323579300368097406629456484874857075429122507"],["9059468968615527614510448546528384436045105914966071354421784810566839577363","1347115512388515809953832531063815573078844064155511499156504878964736764807"],["21455175881763998440280238436833132858895039361804353874109584298888122558063","11830265030892170087321472358422333080878379660674266824855643458004231163001"],["6214796201235272728604168132628397250737692946540893180089025413198278752412","26614040854722515986723051945134781965674228133132939721388485673434525370163"],["2375004719558045712277502356635104410243900970986020680368881307413957402456","1410222963847970148230153965728916073277300290282107855454974156414498364681"],["15984239036757966176657958412073192708748766710227389659291493759030847678277","17742265357630805679574673257244966798344075087101703982229895020516187343580"],["24276101192610911784684160548750911605281330595621758958523416557004849984838","8061218509118252388646296363717465142703482846556113725000464568979467031765"],["13891361865880005469457104644338777558822086404631965857398371029598493300968","8448374140366122199056659337008969236863915109419642824958354471399421662642"],["26998742449273047639872122121597536179079967662263244919778568756642870238253","8433826805966501468872929875866381913288384045214634128363445073756253394956"],["11781211562528175434844164036464062404802670630686940326233005039116882746860","7076057439482073421974275419591641451790415880387200507068733635652895901209"],["21335617481382841482387235634994952085105155117559443150666738466799992390253","28916024139088347491554070101158512652069118376798908542665630801179722921030"],["21035517687874316385446954140581263104976585626237884631981884203791456301663","24190524917486553098694569215259563547780843760737111066504021033179378466863"],["15447385057941342365433615754415561329304103337164593964284460392752523555231","3511922616908844683889217881310254829903148078599295259100633643047552208309"],["10719462914179738489507739165979514400599381110023441602513697452635993817484","7569509212457246278411368546823534544987421405088737520791034379393501515262"],["28438739284685977243951503371362663358731122017789323003727539462794488987164","18338621085647958534747971279141534507734810459017495670940333596253357317807"],["13574159713134162688674215074396525283453364807030567377220255907392892129576","8714255489282994252130201693156883417896796778408370015287299076087170119488"],["3713987139279228114497884366072684520149071923013504141094190951116255016241","23275709901571937129120151990709222072130437335487396906807352794134505548516"],["4331433200076853578986063851695580042487679198674770363890693197157473739659","9308047232112259193878502836409762437821590385891738375831996695377332193660"],["15160305392851994545847354151998344103761956964861121409690923121655413722355","24331365118334329228595667851863427777712079839838225695143345548724821286325"],["2732538638813909897256914545243046284989287372450046958444559394494679275505","25084495199753734326561195179445801940750341843998143658679229303833612852218"],["5577767070220922376859469822495358574176165366387232438427891487815060584412","10983788393894764455201739378703485351677722695041716506538824184627078813284"],["2204311340637837374210655672989603212091913934449840211832510415154748866148","22130401218926095077540029077677302679273157893243632058520375980211047593909"],["7669704228236278745794385315594263584742528602618496427160710402843687042780","12632365830812143986373711652253078452620619962170253567178421356962206730167"],["9069414726701121966836504303772870713152404526369371672841282932876184089083","13905456147613071613166393078645549890138578113634698758235832451272303753712"],["4136916785232825815825496299971568943810260028709753084346496197014593766938","9894876058060026512596361984519904791164065094808949088435775188557827550367"],["27840409002624646265664491731289663715738419161996471502577491860319682954730","10228080060348023374236865223863220085420095109015617272222757897575352974601"],["13669323277086491663548257954544735942266357848512293057379325409611762231803","21322629505833741126268951126279666464255042225888710817636809505320029315136"],["19766245264179911690483409254356819724154671072646697421315181192021940589571","12650289345030841536252034897087293237219722701997063583226212483365762946665"],["22638617493681430284400792845897814715792125924823768239940345839598093857109","14734103204631786162896288100396994453119614890486616997466929220313844539417"],["25158665887998910964196647121965091065733052291447403297686727102624373934845","18310761073384075874966358658744524321853016433455699984100677723850091885294"],["15100204124108126499726653353470628013429371105802694121900890230140979919223","19105620801931271689536864192159260895833928560656567562937968268529371817535"],["27879370397415074759068944490957427053834168849855249485958155274950976923082","13644221396624839324200323427819310410578672100275215076594121475100344357811"],["24417903341195649496791145476962186361331843308254122049199427399774032762687","19909748319940620538462629796130390407244381012009863763926083208668577192661"],["21385883552847081724464395954584705944714889532147256055595545026423040679485","1118093031621350120696799698727659019804951877460172714571539608280071988292"],["19587413008795556576517506126098295024787271829230592052937907322071760340362","15811249411031988861659932367578846872942908770050684869279583287810943616379"],["21197404387095870633182797556647704040967488872351400790597967255237961843812","13404368667969827575427139872400392920601520163801912709022855779707049846780"],["27292946201658896016021152665311292688247671096678401881537543563782750571130","19377680203693014597753090366973572164945168949604842848122236989352750235304"],["19675866831851799936192626182446808664548510122071349094151170918232500368406","17060243330432855189642304737158616120703598953659717994362267864647327651006"],["24726763005307321369004403521072697245433359254441810246226844262437133861379","16095990244878887239444053332795025801476441019578335341890747425722937775846"],["17611100319415981837416743445940496940086038100712072645471741095600747379684","23492525700230827352595362650544687926024233298869634911408522349276952331233"],["13961990703415035369756046492937035979619714344452547121942307982945208010191","10162247747926350111631540262569526758624088793162445752037766252269843191967"],["13491278573126911007984046810484758558246295002053151490865856994815217760114","14301928709345802899177435790411713204561888903001180531209424141946221792495"],["10654362316668285433143757891263207308113606127234029581893797922683218656376","7187974876123389015157153345888439639737864005983477074497474124431775122706"],["895612988439744868557261112040027617043607270972437685343045274596130751451","7217694323563182776619900368275779533984298249627800377391024295983837888218"],["19569580390048379074832233937176454963537109055874799828410928242307805952697","8327924730538728550079198163994612387345395172540523136944043109515970473772"],["24279337702045522176598988773086152123903988329967387891328766473660194194227","12366769679029698644967502915268042230484858055582166990432128492552103627417"],["3239830188810333272698391342051604656333626917888167087295080803341295984981","5294785375334045497000872241120423514347987821615166310578091275837976633411"],["10523585087812482672902150354728646837056300387450417583412356682334929888343","15532319378847886060961689467813179297433028563615816906686695426924334664099"],["10690071479785695102610881187118333191787598922833523692231480795774435510721","15039723380567822088029151626588993640323195240085644145179893923902685798327"],["18460322939395685473143894887879968473787926042740074530790349498293158515205","20669852590515095297279432338994391492335467360284646539356200957509413820337"],["27951522456723400366524006434014684613888790180143752673671105704469825852771","16093956221585113124894057114081066926074271554669139321378019956907915132755"],["4562820284973714467022315008964332821566970467070765204951672967644767815763","21638258362834493101743850354300328866413486061979853938412474569304121102597"],["20492754969811175452562121152778846160336474508518771631468443027741855220743","5249635838059973230002909815473338524356344658900931409514957355804481676049"],["18898761351225965764954390241941366030757972823925052800076001988465653220245","25090555938288991517669433355516285697213866192579774911026889643375686143301"],["22649151219382248125202982222785207315325671520637936404853962940748145292802","3000579497723579082191874992410770761673255954875480073084241991114386939573"],["17782896118887208674015383648472899816954379380591419847488019390962623649326","28105852322092459871689004804407976801816816515454622002184024596889048461646"],["23051203416640471634312427791423467963199849389217487075598241809484054154281","7192748390726567652994016550546235414222632609167140855625672398077836227197"],["20794558679130744616660377639984116599912745916377611342457907789762000172859","14857304829000047989638239806066196386929832510761542504352369729653793595027"],["22666427699455904551920121634360425361099046164655460398140211973394663819978","13559853380731422399050416989070459200344278847056542438445039911941289952333"],["9303002149927122469439727650543395252436744856043988180633435743270446549831","3305654175080868771362915253217541598239338242229376165184212191065009239629"],["13634354891472319588174486730551053302539265222212500881376577061955110544653","218416937948548402129152702292891917870465764245593880754714103876598012578"],["27249600416773112366671157314838748412769840005976216569214597092729390455514","18248319148517437384567191246136348283385472543756963232347237143770863461937"],["25001612198848526120747408732248936811386180450631886325335649280787517992554","6934849465836444231893561676699283730317833470866691424234084289577009361563"],["25221456129952101242175839345307616628220419218118246366086187833055440231377","17103447154477748196344108107284283260425707956132450744058903609491767895799"],["12643735115548649205577752025400326878004266574982922568999179174563147111447","27744588525090583449674678725537226423058264892885453691878590080942766840622"],["26508970512391983279440793232449516307248070894083321586646433388765595617086","7182265756898391277444242623120306539928212212037094868985407360714819539750"],["25376145944694551103468998281634861112682216104404577474485218821854628689202","16557200005121698861145932183407024659565336313821377130187966840041719101200"],["3610650161214486334116922293143681296150674238117813202468831175559742794343","23842634260751555063490192936874586311139979809189416429840729342435475547134"],["24165209961028297510714384619178686337954300338401162877659335799576865575861","2317512530394602977929238236359624653824137498773307929064092723480361827434"],["27072598190016261452844397265140752355932725826495464720593706820003230491496","17161959407693791791507011661092634787445634882757358278870630768613830645588"],["6897959611482281873103527817082374780245413539032442478017659779305263187205","4748169173656385101396862442208543134459877394556465004378030169441257650275"],["22947464550575807037968544007325170293946531940219551497431376684881713511246","24033868016873640682640475422061698272619954358286756325520186021112633675413"],["12168719837012393572622362246876000938146223746487115814113787271852845702141","9168274364208662091283041447167230721198656089262812167855590281631498105692"],["15963935168424464915589869552177673480235552387089076218873374658013524953510","17169641886583378879377319552304912040151011469812987646031912099328843132250"],["15542018391100405363270606209702224451681317832134655209179200377011022089309","2521892015254709150871428058543426191153705308674445677981525057439305806905"],["6259472690222983326733200654859828756623638426975578477009157334409895867742","17614826717562841297625698528631013276640024066512924253063861081368981900207"],["6221792313176419689154129406862420281741520437859432974699025027960099924948","14774942296034581995765543127403048173401593727713620145054091339255144473748"],["4702800981450218397698464458123336108942124178556882735336759007698726426206","8065471874607351551704456268324562935711355905279743634163009708127927116517"],["24274377546600267347557589100285649543886688392625267116256583993386456741693","24992651598137099531701933023999510013642643500763540999075267122100802668101"],["10589931842699258366272433372993646606072355909579910609048606330654133767818","4731198423321383012341322655424767814515281641262516542081697374924345153915"],["11912217868535961572573664216914199680789944265863245912083130087069577140221","19377182495179567200753104647473474609565014856677966016277977169719224278102"],["10117996446945443784949286165744475418727333941510497841156336797458005792773","8623159313841557963890458580011297086324090311754283609516091914689240083139"],["28677425047843518343826465371882023372878006216363338218455610248139235497733","28943525884731825821458677539411545642653565001015828495428632419410610190318"],["18653161400714616255238223557329255720939317703548378970314251407834043345845","27196071620130635708422928378707351293963874902157900014727056682645127389622"],["4010680972478399207651690086334510226054698779746468872753832899480420726698","9962667633345786737753319794612274270970074784016372530698333305269803296655"],["27125575865937878833303406410826104833947369953781039052931073785699127745015","14070560871469679516436323479770963962279541400523683456508136306510472889079"],["2782943148760095762915628332734922252214540181568321711759195526507667191360","23890231025709713990144882879172253828791582502656671545900524627569375454196"],["21806308058321827833588697393995928733982508738849549219865140684498916482952","6375543085061519436163248284542723313660515859019622338710375031830744483691"],["26622997553431838737537837648722855938551753381709789693812689048925884855916","10116418360906539128178317395355862362220484956797714851231478482784080041176"],["15248950690120213031716659212318688463985012824278836671952746019522745814703","12816966980082784856596594552833362165322093916480768450157469340947946335224"],["9562472061587930305750347117472970921089963870876825900695659374577530497035","15742805001814890363090137034457039581477387394947447900061386632782737730678"],["11066712293673040520485306247598459752564602003256841811915721553547254171149","5840356419763751351394544761674461375687176679074048114340779030240519004982"],["9377836721773337337750140677699997982249368032417948359549150960868532491479","19878731091930290459137339574615582294847590362095989897779673218352610640564"],["16587253302762634532217310142175600579747792572022567595892336350416238380107","12267182371068532096722692324066857077938451094079711435887574561847389336739"],["13238753461197008547991942910685357463764397040044338710924907619018805169967","24310254955965297582947777751013764239553685469380865356412228130003021665579"],["16422137234290992269118795834921363348602538104630860700630283517823165209273","27185881961507303172961130259360139142475619376134249408345689207917979445948"],["2675596020907641897987633831376174579945949857787231145570019895608670696657","17147326463499377448257727134840908078852856408160017528294498397990528338111"],["9870715345580679882779686382311683752422981220899916134364699644925578667721","10176621829778176938511245527756459948785886287906920326279328798110316822104"],["5503211248053033317474650558773700914596476813407076476881683572505811820616","7856777005277226462785848492985193885779716749233346805291527042359878412789"],["19962061617384398102379801368200303401968604866565025906290227379350618375830","13277557850575519383168342490265083182566090075036248963497724139969104840874"],["15292315651675566941443569847745491015360818170777278282346484947132417772867","14224632082076108084671088801436138906851965511562572233412927959963588521672"],["21293458782060739757759800871978956017463446501540302915719502547109693484355","10667609501327555448822745827029536058343319659301649956974722431090838270132"],["22620048447338828548585771414890447519385291423209311541555871306046181736699","8545454358739246991850998728070484869294781376481678884861143311890943309700"],["11323141989018708802061505251384345819849649562589212767210679639172887651602","11444321588055701403535105075767351325609197963157210278410923982057169410767"],["14235974310259352308988125818728337994176451533475968196677791290832309612035","13471657550181881163265139273898014961271026252649810882873056046570147489837"],["15618212396589154613833520016281368001473187085494084351030951956161933056214","1147708049410959942198733810827562878374230724908642017275463080354617744618"],["13503164931584757541599896320792991714386547914541752176836254410507312548435","2857101025938773776060370476641673109991058926143968918162507845295706351848"],["3226671534606171450267530891330572824698239846617434211620397943040474302879","12764336357383413447801806475838034909234142985769180553444959923949428642003"],["8273171723809173059012457823897523306328636615020730484627213161086588035308","18848353321407093169914600117834437087361478692787235805461056503099445955780"],["20957686960566286302756298495968798955612131829451296832116935673159349998229","14609982520003545848659316283570775761115339561876636201104029724717365946030"],["28086572336425640577692148743957089959034510138110052980151590482342771243741","9962208781393481089360325565479573336363411025754041521486188891715824320705"],["1942605504824416956826776878106415692594661578878064849077426149804050739985","17495541239381823008546879473988483744105144790659080416037197071347522959280"],["1262335564392735482138016005794950407529850301813087138974720997458896326098","25773365550956312188020254005972224855715327611345000396857372501533242618179"],["17013927250336176142533833183978849546902358163836832637098090163047692222016","12672032752705244124046815841345359264113220532938635574391452832168876820869"],["2173694593180955814425326480026901643841271179094083910935590208022032494326","28646168326544305747586084901372749146336128762597110720383317494091546835173"],["25482223058962028996264439523050539354735564004018707241174853242851543994038","13063667086344499108622932439226908709661904950683143105711297394194127619165"],["16620104952349096895986378934235499792121105772566054048701828302429820301129","10366007543523863032473253475311976361204733935529594371820677636134411481648"],["13034836824668653832358047787171856535226568969196441167065377845902385568279","21333484346816588951884385267867765726186577168132440407579015118951183396772"],["11137322790597806678072981013346803816960359071333943286934564748781322193533","423613151016510377948215980342061819487341980314236514438407346828429195969"],["6609392964842608998752023710774520033083067006533457684564737753681042311629","8996115159702616121839081963752199718547627697230163665270788685731192541233"],["11469052075684079136548059025652715272939507243656259099399362095429194404046","27236734659816910316753131116709288303485501633479983558457990232315769948392"],["1609091732412670741230273703176046211402547133645704694594470484442786416120","26757038884133874381270736619544695170508873005436146120345487180731319638681"],["4725169728853210282353951797173165489794827769882853401805743251900476655194","16734721460057086072473477833908435109974547440865423712837959715947439097991"],["7801625410198528493858351396827826114455963380951037065958714286838704070073","11422055079417075815132513901001811136555715902849499062163853559831935429141"],["27093050274016233154167109141053663532188363563177462332909232684776282226789","12541127743649350602910524636314811704666823055594910541064838325168302123977"],["17113993321749398745080335677999640786047841880487185466531232425493451139957","16584528912916753805150530342704950457452563887260229447176747138673078036899"],["15178954190415787754762719073314461480415284296181721557455312514778478809914","12299376042837782821996259089778941213382534515565115719904733336566388232983"],["24768674837317312057579470258763987716071037696683620815241280568168751820064","19761580900986238915255787879779749111010211225162849825300412556356521413564"],["2711642488618203398447217490700566186214022758568419884979092212893270106886","22917417129294416315935275068583645872562229809198560698642201700261298641680"],["2634566981260596750859214855929875169444530960858628086590226800432085860108","6429352336889552845149913373296023486497568969479473913153718741850208487696"],["15497812010543743630909736849854304739025579950431785095417648380108219181695","8997250900970482515405403801925300774128505302876297221761076863112007544400"],["26048278418497907005430504594491194844144072589663316151772120683548668594586","22624812569830789126420905177452434970877308080472795132046659069531151458259"],["11620179744662174867117363228291681225898085676350272579091049210497671711689","26924506071615553228655815712306525991760692895059340753477770348898333477397"],["1929826680538323268978388127568084049629944406056818849259427921460233151844","10891000972442260889638149493200818080516938191698728216306541221275971375183"],["26865758164889897622786642642162292868017965502564228818812620986800280670744","6122013890080286254074793464000353237362719560314747245218472768173350894925"],["23180085361288903297703299352457916632701650227416560170480664332721807731749","657042812800669032461496057433942326157298021863359837584702285065339870988"],["21440932294885352184161775366776792980323116863090137118309735857699856488519","14960960719027483239223174028743598955441232975770824453709100116390489098669"],["7990150646856677955521617461732982446783087733152016714969285777616831905399","9155684056699232622467004862375411230598421167678076421806785475701411051941"],["1284186463672366230771845717592142477810352571429720203856427964263380945705","16688112245895050069700792699442362549488990557665439469619788428005641653247"],["26819910573469533304779152762718495838695590270334496293487461626957499703087","20874192251042883397030724161753801086690080068193347287100994173207377033114"],["9911588515521291467112080342607642168644536604743491704095037465877338001525","19613865418981906322096271389697304892623803717633009718664759943534179988585"],["28152547144509443781599277264749207783668976784392430568144966030184988497281","16649318264797154487981921020283735133148932357168415397904589326540401594837"],["12089732102738323485693727655911195559530866694376739546115563902786693465380","18323716340213092353695392097232499266318923334842248277211001890982288690822"],["22736762087381902770639537470667449290128161511812127422686447139850730201592","27043999560843201934460824928449167612914967834011204560180798966732934662677"],["9089565569857889843504544230126946691440753855491441095737183320893794903797","14965777972211365071028877149411617816261059166905703607675930665642728675265"],["5161428438866926669557410732106733248618048881923454208797981986325203661523","9650813934517909721221518439039666030944193815563653234600114271932421973532"],["17764889894358255925792790223131077869069192827332104697924526405135590245803","16945802687566325772585573220211928374426080495802500716467016598034127178753"],["15721618365339046128002154960383104664979333283619508291076113741141339046594","4065993287068533071827218692565728394507553399891564513200581168953717425543"],["16291653415514493063091781354872634224676515051100187835666448151160246017373","22968185985534003000608147617386673031977055543674545676471916786197644326115"],["6550976483011400609088856936936863722669760173573499571546478223095254321496","26602707792624358125999232098349485764389037366221508004380050134410337794606"],["13093644292920050876769737662692110563572630396781051100514452708771006525695","12028372335357248645267009337873526566686489791117295298573232996835603681606"],["10488749244836906191669847184597363735194273485840453871118928871512926117796","10319442582784851505878821298318935374806356150314484935624722864758087961541"],["18977810717827520672227200518264205383839328561280997373143621304629528739722","938071017681668781018229786612340231322197514597742258742101269968312816253"],["26027393869689452221682782785409485522028995491675153598039710159964330097416","16347643202580394589685432825344438961144757263152170437149151077494146051575"],["8439529594976262460880764753237182902577868280565076514216708275456717000388","13039917798767630994713589737797385576826537603280046675916146487586771786671"],["15116788972008274066213490377028402887689045035501120926089080393493179749948","17099922980522738356899997853720819456711248206966135477504832244110109751647"],["5502513025468006580938425068293789399654261814223674010729092667115841019173","305974366937901594913053385281065649616248543588396259815738165729973008702"],["28300785180473977709938946694216681864284530348921295207467324815461694796607","4993184529230108408560352415504200525807029053163369057709632010632752915187"],["16505155315345671968727598419804249069702524024043844853790126369718772559223","28066262499234906741186191130602485070541868087286179370908681422713757693096"],["7742137801622448876870321532041681449277926750167973089148675725159683525534","8137396178935128641530577210355086669740690723654211720606462068805772469736"],["8096982569499263859228694289942498095252622479399942594806629726131018004001","27445124332418712146885093190121642652308930314364920681869184717256572249847"],["22093085193759990485359617104469907197948535646241141428535726961744953081184","18242426444126795002984385025589881661688713715517708669042228423882988924022"],["13012098388184429057192701611524793627367691431313658114899874507718534388272","15423259592641663373544518373552429495179537144268546531694873966638567841231"],["18395639403264945655288879792868861160322378778881901104073618260006060684676","2169081617275645913690187480924693597662965053958600421945979652354805147233"],["25430800643774298152842161335802724398412466561871318219626005579880257739400","4210573049719287566300101895313796940325238931263022029755701168805821560159"],["8102240274946129516364804426605708279955726528616778999529984995198007210997","26735474494785914923118902427712456501752600949943655764790415661315944197110"],["13918182329660769322879484025291227780650808432828128420127370531285075917919","19350479391953983818509941072089198712751712577107546352424590309197378488396"],["26596261671807599876800729393490232172732486286659675884296221117055854837192","6056945932924078047526071950234648781266020527717200639777441858838608753136"],["3736943487528822414953861835392310819297158553895837648486692898967429464805","1209909330882368045163059439360572810332902696809905648393521533585476809033"],["10994269006612341818286601538469018363872711643782989468053921067802416129614","4145724348450056084603154075026548521195754546148043687978508751012718777800"],["12985448222562310560747542119987738843143204308472037615295078816727741755506","16042378773657384914293353335355117677727258814400533429785904510810194376037"],["18275645997509478214790101806824184062783864933244843475896465742171959305043","20626194628215723389215853621237492100085837577334566246700900077173896749569"],["26813689060255495319689831475101180879165046733079550101213593973603864470086","17306740572743969329863147639381152006578032559627167089599439190893896928311"],["577085847348480986786079111874352487621737257607655698779651854503898043419","11115372235038105184060300887631325765977254130183301913846734733002587253415"],["7406090521784468128907928008372428244854595261167520821849298410304448199451","15503083736597179732340835772258140525773718083528922794360881551565183361303"],["4618712403458622007466642190942173516353457847804548777192614993502500560642","22362778226195325971130018047255545234858733222325286170406974034078553786578"],["20093038313139944377232252811485874635952670898514521119463093412321123950119","5017083115656390577127828640341121691644130987788840673013855351572820755739"],["22914792182165548217816470850651690180202129929898759192398397541856792252300","21630734258770748889192924629943105489355108418132845269378987918029056487516"],["4473495548937119123571395596879456205375862228203108555392277423085062051111","23780178231748002996479798180272686552595195795755487642306283054924559095246"],["24349378396218597257345874540444243562625197385614647745144587984692583554299","28206961509539919977954017027940358685473715698100706657417846345137182850583"],["2386946147290729880017864645418062133969340139258169734306305985283131153109","11559426092408646151239328722538987431576672578916139523076752885476096062421"],["21912622138254772274842935475422405682201853160389711160930432760399767626175","19301223771770585841010274971347478348851607868581506259540481389743826821794"],["21766657615235757331658947379697450251945658988465658359539241495566721432155","18085906396930856278142078088767458588887151198840254667778668772103885252731"],["17973474767503691062857688571458885405848859833074183005681344720479214248655","10161550656742312078218804302707019772009734694446348442647689965160935163137"],["15294341327689126316660734323011947155369083743637505095145633187616104523116","24292549240651079460493577492578718020640146217044157921197071793715097017047"],["7159361302402104570058590864233207799149947548656650834998679103125811345542","5952922672832407365198097685018196887925666770570748332645038276178955726172"],["8440417088606287758136259786952808746599762295921132434521814773483172906214","16689151685663518889682995322047861569428509731692790900122406415159527919499"],["7684550065206290490099261666461060867721632526758342736055200496357348402085","3562524853516673609303605775106928899051162690386960187598504270920093641802"],["14294418937394310988904445054015574584765518254263257967847582774288045392979","23960190606424052830517263354275529941182241407562934025493158923267448339899"],["25304341944191026729317211662782009708793945353789508345581835211154345108926","19314582085620156709792512864575928482433737177774857932497988001148090778786"],["17198549676121149863098679489781938038445574292869943950685642799463092622507","9182986941430374452566233903275533540690439285135305009889594912544145799789"],["11029407824726955165872480864236267408686876351085766657915186976213084896445","23748018560865622440266665893535843211192043393585620062052945818120327218561"],["28197622574192150076386912011663703258237281788207729330954570099480770900916","18777193613242346402158301898826067384689963374098180294071078938347818424169"],["18838813670528971769279235244701903355874070208029612617979475054550835171680","8467524331108475730298554611687329747586710034283360746043599115440249193320"],["23124259579193122858002244928008706530873203201189563717581599942853261442433","23134367746500322366942233101727501965117536514028903499121680192323846433480"],["245294044833740688599154395233994971108590484490795511950089801202105635602","16511996185404130125909678484642715516314878755950861338231832102371052357514"],["15428764235988117679065738207881699192635200537304878500939797704898281648985","4096189862559321193032397641957584094822610366618142280223317549747054246528"],["17564714595901693512316804526734222602615698955390058358470095076725826271857","5801551779395818231526262615034597002718547316921676847988338274793401615807"],["2788157255215534135760407566581331749516757304209893232032118615295139828581","25883945406730962169708913763132531633370318823385854908200261346907830561409"],["13272878246194611227161763455971913003507581820264592565191571890154269521749","2837591056161995812802963020538586776690435661765374476161956488754551374765"],["6744742271033604515928406830500382840999615178450345620420940119118320200633","27565741964446230670957084142327374656409251324746692226968677274731301714348"],["6684276740425696580324112366440495586087193309920355083474398667016294237605","6853782607350687029071233512345354458620425627659915937735558420605328190407"],["13933130210225443017463419620512170825960737733084390982834475486155938705356","13991037434243936358686665960280753910596518179692662774876485789780679086811"],["14377313441795661256055186757403962801638523081223880759160428335782359019806","4564141722513482310783542049131372551782931714032448469881163718253514654950"],["14774665679053780849501924122841721329569356584881691502681940622080068781002","20844666301372020357690932479188620319257124942133287337638731393307687213150"],["14133360788083192124086682859402969201727345153486881633544122812746146527260","28515051658390436073696917171500295300773114964239261493301784119150928055400"],["1445906951992302943747517470682743168957178239020438783102530051203993261951","12504524781075626095055739684625039494075295117484025850968437423976935587593"],["20016942127170766904694046050088060901826992297671366784754916035103577876545","714965167536787926291560196794068551439869689728204717551718169722799551427"],["19918961586472483168226311624970389688617847317575203054287138296568973871694","15990061291429166308390106432589725962745451098686303454605061117766035068329"],["28486118302653059698075697579169851715696683052435030429434520040273368747732","12657183095461640066283867098416770148407177755383827314548213148214243052302"],["19641086273315456155512573720973955855962765612617389364797895741451593764637","25701294377614125668446771784089119091459518923962569226207804595737115960350"],["17472790054928101219796498465756274230173254093046330575364243168320048162845","18637944699322269029554516798075328959016954860766435291663418563288334408184"],["17333252871390679548013956031142591618099204456771321849874057470515018303543","10541287658573224693376927264336009525788267226685542476998515993911996440561"],["22449944327407267569441740644279315135626804552664102485626656190288390515062","7068591416418580920056904239173228047434596793277525765765740915894270288866"],["11576641505945343332353142951504936440316561039382441744466759093580445629355","12564387005549687323471127574609807067830250797463390381412524436958869362113"],["961935090810885518612353067913830979869705067791519449900782354985974221098","14699206519968282666280857169097180093044008631061209278026858807867301903888"],["9511114144181190173687151358793325990857874471726231194168469266044512250729","21125633562219537903133850932851284505873358734541521779645067458755971056793"],["4601794112853611420022225023312264647545908479188967696546230554710711448119","19682411147617931138238387373830647156660427372381828529621449674732072730244"],["11535278327815053542964294848641905651490716436958364942655767578170717844024","11515249508866574075851823161265853879068812386414581220628787154929556956196"],["23053744784390571385192806458431338519887452732180893823526976372260382524583","9060244064796555643910104664776797818606683478529227573813922547688949159253"],["16880600603077603267920542905755040592951274988497720141908662367250810124485","12459362251365858922979204261091305127708503610032717611105348769814449565984"],["25781008483466348266805123270449188251118642954628649328950956953693004864895","19241186370645441955175649195300458860037059644437133410611316831670082822065"],["18152774555473694461183370284533200489684118464304545753703467442679448926915","4279309685136999794084772288856261385213410640232513443154866973526797509698"],["10451523045157238302009034796965495338196741798223915030711648363794609028244","25255710440551978974956096098208169304177327356798942642600231456896903821320"],["23131855490597931441361848032786336131277865052193879562236651909393256652560","23484967953732286601496479427683666629787512396638810088130241909406134074364"],["14133310557380711527983666484619687219043556490702609786288229528177475864462","23625434916112532541168542587823897899090555874798626481867044273493597865800"],["7380689900790229235564614398265231954547036519797195727967938896315273159898","3582863172456159889246819806866945195054332076837979540227855550273255765432"],["11847594917259896692936316246694780182773579728197136966823131175240105555752","9148316568580782701035923244733483662120448661605620339590391317500235038979"],["27014169717154851903464217157733089530713985087517560129568734352760424511978","1606750651916253455961905961345094862487264198630998181047509661059286206105"],["26165231740243455339016056469093509000489490710125390484843931173815757090875","1320776598323937160112768501937598315680880811962976953949051644559849165212"],["19593636824368492186981278179894698454681544300676585724967189559163983851402","27102605891625472954118084401965302611342702362694810875319211081158484755726"],["21242166410466581304516147874370275186181985227208963042311900785725910032804","26580980529533424519641458573736193888067369842623963591698930270768923049880"],["3960805791540251726780922119203240211042544534417079646244791875076747600115","2437934503928663722206438080552745497889995589621305135725051559933980488029"],["28560291190421975883234229731273512742041394110743229369907144621240708910574","24151140716854815559508955640575354825484973460277074751187322639559878297507"],["14808499315903628369880636508988215994768926159267130154650839591965051057915","13409414185285172737045363545194218123094456521374516248324282099654908976386"],["2684494464298856334037023250278916635950085025431966450562091206802820583751","6183670751051458673848838081290959873274711930934005157410288194090343023363"],["6394548071648350975773310431980579805434420401367298267952619751075763855996","13083626103945141690020491911916629244535622536898867830416655111515594117024"],["19114527291474252858520335180478274284215321167386532697802762939707467889734","26092835563718456599415418820198695708559012818860115747991872961203847718290"],["12262179567544308584104386215871171470210469313914884771461137761850483298580","2562494328028874373031224989172934628010826915707346340124256044478335420878"],["11910200380710168179068066752644889174165088097718668628603447037586244678978","8709592699886238130162686582923223661642068648278941921395507123070655924171"],["8252509998955422509295028019091700353341829878605217663893131880643751177510","11649880939576945859797082052053680541195147246977768988514307008784473651247"],["9955344286377805973814077568948971052095697511151298535624420815651207549677","18542471292359865910380218495225677097622914543681556799696170106338629182399"],["13749361567894288190247309444345293657798100032623653962393300873155373403924","7543912373057324622507892228044638452743779659303841980883258499027959311764"],["8612837954324359300186215154016210543328141351150134728755381801943570641677","13866375944711127311921646909182455335238579434215792309071723019186817591488"],["2120338197351168896062293197555801599585268483173360264794238552169518152943","12154054251340091183311136984599258565488707641958264613289697804612235313131"],["8529005876830871961324327351848254544010510052544719418511250271233471091301","16670029070579087512639393704533659611094148030508090998367582367613274136176"],["13097395389102548876111622543923115984572819474139114883172475531451787280534","26177461560653469229694612424528137166636208304424886558416047883193709740127"],["22887611295001116428036981652003892277053558190731248614804775617105011029600","17066249015205481086679968646433961934510777802811015181569665475856532473582"],["10090937402036722263600785743411851674969606352325944682476746389962434504907","17323716282869657281336902192665928177744431703083517526671929499351414600736"],["3235317383029194748069207893070852419540697310735664941939111163992239874129","15031287227668611649338698280621668215558638100769801220466683269229270685894"],["21754320559626339298469812948402579155567903039273680229228932281614942261516","21862784394109171497892092214004610261003991858174686927487314766530739705134"],["28712481110487387294751219495202427960543995764577986490396506936072016416571","9021363135375817916450126485408877208410288112839147786044720688319942859555"],["23609368461597514910742649852160389999476424164644734133202031719187744447114","13877685251718765681103433298344274508254270080375135677140962745304614425883"],["16898190510557531740297712786596010895212464242322071418322532805758810128895","23245024104229542993078007317953925890206178362742450372863110516073746828260"],["194718626539833303359915895062496211218836247862725305261227231543907345116","24924616554411139252831693275048157489207698740945934859700088987821185795773"],["1785052249166734186118941794814704145022074648722224540841154578781349558224","9547914971903997928566830667224826043325326853886367899095105360750557795730"],["25429656759869363754930829273326064431835693162183906400076730774550284231607","9513890934173845877252735507440077401904111190180258423365954294124789591599"],["9479361365867203846090030718998040217671970740984924842552406067433335929317","22033318452691914634749913977854315837969025697783628762309244336898991090431"],["13889714134291476291486906404050119284530966649640171494320339768675434307887","1408742859743721034788419755264640125527334612886497908873138571390362281161"],["27094572222520132131109254483401797830318005293439209902952396323324809607793","18694076380445194376471412308158467186535701288451199338728050178460383819437"],["24642645354074298354970221112274123207010513196152368159546909186694411867802","7072433246244208887426681093423389080170945410339835897357733778908636302369"],["13025259808616159717151268231116501261826200832002254705727087794185617790702","28893948920214806981023418738007775872951022595180264499436544814578718166008"],["8004993724049466469793341547164541700693621998399107080197002032142909579540","19380445522211830812339489900049316828225136762990189345164649281762358889379"],["21253676375508932628123754207228059679397256390061261188592815555645098707548","694701076519579776425767407437010035053266054771800688007065389448011324648"],["25039884293849008001113040022583073627925392513950415957935752458648251641010","3021754881307099501345562511214634453305907882142926655585562317320432916829"],["23054899174857637786378030269154568503750943303621143953313857845896330947801","14575340933878008677278704628458554881265569182793780196107429530401649467332"],["15163038853764328125748100081329181179774758351445124058533933055494599054553","21837252810254466163267541228396265934998316215443918674519533699507401067753"],["16113068834502047708776248007982218346065732037915047869448233043818551448138","27710680739556413463434230775275377326809758036507578830373545988220434743596"],["5907743072240897217700365629409027596703527724795223835955104068725245904500","28137912835845791002391767718709150382412301209492803909909476553533235167083"],["20256668656198935936801255810698405582384744032150218067022667148544916496726","9806371366892250305142531801800609891805847952323511578624372627385422294578"],["11682978264296141988403370413640923211294406844551046983900985983899674885791","23439215276058052636803376101844246430845935409012125273491609600318295248059"],["26650275031240878774442965379286738104211291151284936897682851082038250231327","19274477103490222718693729538235977485421557525021406790753792537550555739767"],["9298293354419413027894548993480455364105961256385066951961563681255219332478","12446324027418012449554241584751463175219706629466198181282156749689370736297"],["11694697409197843089732434013003409057218487637408892860872812479728527372386","9804813029824996301162979914876357985654457009753259123596452156193502544114"],["1305077283951395617696106754322042557741237312340489613590600648897847014220","10351565503386775099849014342701822344153747440953315888095433072033354309833"],["26493872418446549524432492867189644712731298841884776388792146539947124837649","27076737681217393224878457537752896734530020518644684846947577965230906005171"],["28606262339852782032192213240920637553345856642096596332222571267372576636692","23046104998600521709837672535219694133293888023991712378325890703463257979920"],["4555624689315042385912528292622573337609168507211668341105850351640923824760","20788719506239333399260523652485840644060917694163613655355792085542793794874"],["997963156513018787872877707969243598751402889709777539046490051622457527741","28770304644509257007888914404167344782554570259400156068211721863119759256626"],["6870608491412214339684584549977613137889973910240158636400410216775764364509","13298097659708687694326708868637229255031440755883974460108510423494015688561"],["25440118289078555036353758487907183078587760423275959773416736655501816334361","26943214077385038999844671473403205723943970391360687710243660451165133235921"],["26075246305360179873897098480078089378522297930196684199616394829535532524934","11178240519753778391783671624031146779563366298841290696668025515359842454607"],["3497357957886792243444393436607688945545773291331090545046258391958506713555","14809737904105436022215480891793299281034414233753755444161752804628232462979"],["6259271047050549344805379352409471200473072928598279522577758686299049782350","24812657557917546083464361898000630879291374485321720161641409142900979111747"],["8300845418425585254313094944976750944390235946554486378527683436526757984802","1811986226141649223317603738559263132480028120074318078552724517947140025232"],["12588906938150092352166380683712522851363529506329612221490701930859114494678","28377331156403846386410204615282811293188520668138095928250002532553875169290"],["21149647579545979072251868033380792109983181137575942796937931769659119686124","17089893171830634053074017291371606142838750290168894904674385579266519263716"],["12001424064602866531403649071765517709968129327795759965582312923225918778699","6976158855720248541979024005776159994927499223055098544522653996870649700142"],["21868151357442311650524400871417223788542351886760358401368745373746485946109","17238826368761439477484868786618664346558166880292852268565433188154800296760"],["6073335554544295175763518120662833739479684394407525386737299614581222154040","21659332770815356274287332722715065048577446368824912191151852571928835405297"],["11957361826027757443957279430389119522392149122815262823019668886794729037203","7828965014981735444263099398010493732046069423590326184249379821369073291575"],["24538191851451238743514240802927585528883504438676905150437025488719243467987","23356128812183233241212813425504268990490084107839666416361186901693814348198"],["5183610877807761647984345735483690890999210844106648137385431327799148777981","4262485471007367446140431659449046318269515978495405236382259570210009921721"],["13087256632502294355840171144031727928472693882681396307554223601680624330790","22144029775609098729250365314545529974043844331844220563590625317267610742753"],["6996024831702836131808538483368821747915635316406546417806838326570828223629","15170923450909106847080839582799104216082589432591820986653425633309735034263"],["7153151626139045648888933461059397928027475924665131457708813658074549533844","23648172363579727707582142101573340834521649562772686558826233512994015330311"],["5130835878772519350713889734282776383734161559814863423957978604807939599534","1375770909486885892929136928392507185459090084308115410873436399468265898496"],["7113287646490482167048095666898421796773367122924031333685823308328383708789","10193651048907707168562271560041137588517934501973673795791618065606523212066"],["15862287563535020087855684895301533889878871216449949239859566262996548727014","20905365729896668068398780830654802911191095579979118582298605645558931810460"],["7359173885869724602851300777622786698559795775108954914026060474183903365736","19655696741005028725754093448287129710526393989271169472770041897231902368210"],["1467462978581059069077337036805073098821406412273742694524478333954225526401","19883366560636200684683743402280512946065836708247427881363495656936048747886"],["5201311807321615426757355650133141963037349879418881893982323788768250506882","18248254167793287835083201362064672080819097068181840206607364964921076822136"],["23569930821999959477865494235256115379765932196591969202216063834539763589606","20134318121326355545040777868072201027775284749219854942361646843298039961268"],["21518740925070843338709702725517036037505354591563537203030271913599425245459","13442549251182485138551181352288134797274146563644623771490274926261963236621"],["5832883186759746850676311106710952871691880332686792535921465708771731083788","18795331631859051765080685741237673121164519645404651614082891752566947169876"],["14095169214242132809421280128403255244985798404180484541878447008598924330500","25683417440698396642107438613991329005547325119617856916574632038373703949851"],["17485593786352317931037277724884697868733487036355972800855249471769824185990","20107047168245295151613518165452481310680327815598619417073215558317387877823"],["5095725419654977169070270877055484876758245766727325543627560392488098338207","6510864049800544700309288401658512508859605551927683788477180700385813777405"],["14979031301303469697802342636035350173214551544914764158831778166002820348613","14576891125503749671125930665666723207080875010700047959605896579291163391013"],["2105727291698437277263056379570205286822785841812936586091245095497115543327","3295729662618694144875502402457819512921950556219998293039779175085077136218"],["13413514959463753090772562624608853448256277565481382231219545924327062794593","4873164350860657619725518106053730604287674132757658568033181338576335208033"],["10810124664838003524504803894981726870636212879743805205169165329908999077000","3745225563816464225523235001042673620777390805324065903022566119828330094514"],["16665906806266997345700934328238133839381224517264355200024509987272900659147","28494167821205502524651451473470796641597085218333778486609515135915694071963"],["21495902993941978197784220492249351009222091533057385331076624311596486114841","26146486626914400029659514344149974151042858543780366178091678373251451863989"],["18238472948925114951938362606905253510553994470041458380775567065074268608963","13723492653002480899299917674922449411766761764165256762044520609109847201944"],["7848107772791540651907929874176950645844646711308316305279785896757608288462","25873972056445394697486759400713076191428561412270913116897988338967853283287"],["9444838275490288561582106433779582918717046951366057242054485703467838297042","28487463033035340163515804915201811695811173207567917769740083784176513645595"],["375579515208554080688268056357472834010438196554866134202293116541341191343","13154708511612700038491507689762131372166522370969588981070499518983654843409"],["11392096517385842303418945783308321160552007839677936678300088165130418445330","25255639731076189184030449295367948009001890827537595403413077673987946026970"],["350574555926055559143429357603244600677535477983478448518366409801664622752","21881939084297275725814425379985622188193388331258887395969654316522166251667"],["2457013889852094092148955749650042447447694975085150171320715038686899811659","2251214365561061079775148229327166540178359594126652917576191289889345637516"],["2541620167089908668335196653191544150892675892402213608767714234315756493411","5309090997724817263165418488490521622487534618871470838674204560737481254123"],["27111122744895324372155361314686839865700246798910154660735200125068443243382","16968685530905857596560063754646893049959696182393653090868030674813275066159"],["1717727808901737805624493901618451871270934787451118774747953745295175905810","28070480248741316082600080010620592645168578625212091862155640026940309651414"],["10651291756345284160847260445370145371842444781065029931484025682987918468372","12648924512919526772591945331386571331907384577410141935300944534770977616552"],["11552959908479907862033511640852821228546163620915383267447393492761620659452","15290400486227129589529172164849161153781974129868954974114966824036160285396"],["27543290196421833702129569678184227432261484588412227666475330183691085021099","26276077084565584125453624383950775677596727272472092161548414032171275976989"],["19357599725908479993506961330834201477944315092315422268846504111733294344063","27248495878017352290329162349904474273070419910822689651793274792051782688747"],["10444186114158304795332974166002705853855407282368865996293802307525900681631","27430766000997313554278619074425476007627832208591231884277078184159344781861"],["26124025927495786327411182283694727439055871698838947645914989081212633414413","25246202663480070101239419372020255617192730125219351406487793338313757724992"],["21458456967025166890749535320514450488515101082919799522954912755105868848838","28883820420009837396396258760323808303761870207541261131263067871138131204143"],["18145756523287327085070907547352780088256264521781162461136024031609415883771","17878618818861393707926261712777702370340220635240943245457217726214665816332"],["13098246668739005294962813407694175325747284997976013450169650798083321459345","7233851150730712943234008173879885601354321022701018614430374385761650176987"],["27878128753102063001275165175713145765275885685651928636794426694336993071598","7204954943982079079267495064076511187889329670983454747055147835169726635916"],["1274778809863927252127337563897588083760698008153175526349236100844030537785","26361403073711757382329609912574774888382966703462462779241633367181150324371"],["27250863118464956013125889313249860857247253180546291124487246512472379294091","14440286930542696992645356843145766750965191792526375611670118683014457061762"],["16910726374996443126062646719861818120564213373543171078891166593508727589210","9820362531077212158070752502555511238911979118884720145718782837806929911498"],["9424096975947981540454586786420229537348995415104456915740929205171875709431","16921211080327380889692374897924910600910827476522290018621792395339332776180"],["25182989534527256246485126142102674939639448904789735381904705888961931002745","20556759404048832082338920235787387001387316033574680962970564839556811927998"],["9255853211576463083119912374617060286784206558739366735112880827110199185443","16417861682114987128891094511972373009354920072527878498553621106463865852116"],["16447124224939720396887777220586878868456072621837341519204720440094398321918","27605023211319239634070136609963836258656545080378989331961803729017576499301"],["3355915598727806823866367823053249125920589543317406211796313460583967113820","25938109551693097620409572115433717722678746792876297717711228501235431809907"],["14979559081191508332446005308615318137464165911449978844833861646252958452668","16039384045079278326761118529647797207299799773945837280133478210380595045183"],["7526223773168341399390194847784317227276193742312578263874427471287893631976","27354770412802009759828576266754862671667818782333503681709136220666693387441"],["26962824671194980417822297587982789189633045178785981395841918163748390125482","11652021426787188347212828144822837970149143313102568181387916209880118537637"],["17954764142465116138709213521763455982844930756153933730454054164993459466322","4573069485214347608555492548854504945185252837699435954886079949650679251351"],["11530145361306879554945566718554952599444142804464753569981736996559383071822","13148068609866236030528699936394528220746803060126338259967086872228445966960"],["17875593135114748039868681923884492813189863565812582198172472639272059282753","10662186991980733171216147147459836544760372446148848714185401482189845878215"],["13353433569138504910758207687194290061283091129079951464285720551498751282776","43818678729147902879198113731377064081417452034210233396425607570629579225"],["18800735773956215311393289155986705056788549744907296307125875139185858911365","17258652586095748107485640329167962336413230270751707910437800552422610271161"],["26469093886684944899277008086741883358581495722013067200921690361633107232044","17240905962747123129898639151794619115745997862383515103090993237789090633780"],["7738802939713576532203389304968980416747897368305875458402333855964144400132","11345976449994673915806323715923818060956016754439795059191496118943877617955"],["9412828360833907026377819920335957217497520193678109922141525273929897848417","14990605754789886816527312012115032118988801870058581910883309199482034332919"],["17639919081568966031403684280380081408164276667941075352309908398739239927794","14050554702612709995025079648116871904373789738527573909778143381957765025712"],["12965546627842961224657500540188268593941098521380333831854894107631339426868","18397261790843744141201794840803572701430912395242645425770741268884311054622"],["16544427072540966710711633537767170176738742231893721846612336930284086300666","10320950853717064419229324117531870273157014505583247109709116476018661105413"],["9797313021294427852802941958397261545453598377949889762720769941389620499517","6704772990627311423699890078429914022954678611283298247995388913676239632931"],["11065910081709593620476752051505145303721884680764467578833596503409764217631","8297094730883714834028772391643930816953103521647147574428450039517654171833"],["8741860841266961274073477546139572919369939473091564348034025038677329093623","12443290098451552705126250547845788554084789316772879038012992252021281386700"],["2981976381354280950017298903318687273061207385092164528771435251687665093204","16102611025008612766368563305788601122717124227169123844647273123398876394176"],["17210989655158336439019977567454045780328528234509216910859895049601551282835","7742462755168565145130100108188669151708688841898245872455351326445480594686"],["6341208336534599981789472213462452535341440606289402124731030891812265028862","16736527823982862591828511172658956095813514782752110088307080815556985966418"],["23581822181346352115233668986162820624431965012403858887698715430975486806671","12056595079430064302419186160151447553709216405565224328850385323106580253699"],["21328509141291305818140651792637950991934377702958197133447877190677722001641","24560380111980408112935874661132113465424802296156871198339907099736191511971"],["7275768436640315355985377049262227193467629347964583002083789932023318284756","1979139698537823696299282563279809678346501204153978513385941474432533570152"],["26104507486471396034888270609817967202828579354363977020994758706249125931866","24091770043384128350325746950531347706114230991332618451004909090028984999494"],["4343011827998978372431801155675684582580528654965139004221331858331321019622","6555662701248860307203623947207019059505128434619612291860023582604171053002"],["9143606271226397892693952498299617962483760269749046829108983025584960351453","1222004369388645926991447284841032729348802783459705988277799975543588354434"],["1105293466209885715516303177575801637144020618332231068788421142539555108870","9373486332600244909135885193619824292063572269103752002649990682044042017647"],["22959366625502040280402531046921509510219617995179016798449026649716104868861","3200694724486491225384900405370704948713175814025601511590814056873371349154"],["26961827542349481226472301931530589384857853137304277934473254283320316919583","5343016929083353948071989359908669239732156554256304381559492791726084708515"],["2577155994558294970997682443359066095288930642563333063058782038903998415529","22079815072672216215392352900944969158667030173852174915202985977877435958037"],["5113083671426621640812933906997554593698379541912008988294349419439353967455","9256404365087318220034664862254583582105524888257625267467153380835959652831"],["11563320482440673636835749733550852759022193631265970700282496560331035254004","12718042141775998488100120433747441471178119023265000336404666686557880458406"],["8719912291510510285802916496501493323037033030691237462181185268565476083609","19569389151152681559159267261487977664019981151660567168844553244804522970257"],["27595017978024154665338528533901350110067802973068490455952764553223261331343","22366066530546196771242785961287933576819088700768221414717388408861121907309"],["676561079853951170256022303428716140549132540400000349293004447892366060191","8076449393827165131502684470729503598455222833039184993896161340447368174562"],["11455298806433230713054368086891924199842346716873190792278468140954236541","20343343789228335907592894420395507814317677804929007108584528938265776496835"],["15522490044902896972767322316385874044571529025904446657528907088290824981180","11853632559396907085516579724629994472068981251244483945735464980358237237764"],["14521414802204955524238056971048217807074131661996717898159583387355449371616","24966506715860294801747756338987465003537015324633260302591047877921501175812"],["25348917384465626958578918189786114265586257295745589690088430324578022443795","12230225301792581352200668172049873148237582829605171904669769810424594631304"],["14088599348989517139749907511039231707188833587623562352378433518143488548067","27634467832016142622632488860411646469497334147772139501271370713649211030969"],["22619870699840343787343541881127123629723551558788188264375236690668761945667","21626633490713843722648781885039138158003344668322850411297810214591562980428"],["26133218186058563266431367558005161590505947884452680105863656626973001314196","28353162721035438919135203736512745119551632457955789753940207989701404958968"],["14757227681530925502574866802792865742337369312071213436230940139692468584981","20744289831799353764304994227794064561471072676995641721143704336809849745659"],["9906729982973413726654096890771911986590485378122722105029971374154223652505","15146115197841789571197038798980225606486705133676099441929761664139500285874"],["23929182788605530463579139010537513151248652367253102265671297132850873913827","19058070537687462110880948742425878570209341351294082220240686397375725206158"],["10692268656115895984462010105253723051868995426744808117870288588129376910708","28835195764538235842015756842962610605338876541979319503550680027873920563246"],["21625160906974662908127291602926932077585095919963820552271804806612470214169","19214406885105370000609026338433069304985087968785489626993590204947949425084"],["28868182178278978705006666596609859839490918151556032397391287259305298598294","23267726103911966878199109365063999916593563845013167474119420556374072456459"],["3950615753728434808343660380500457367577262900142831855127280537791739209750","16862492721960952302034545289447762783777452236394648920933250247258906412326"],["1396274760118000855323115617362234714368889311996003666097762048100138671887","26280673835718017456844245903265385985284468215133343326179724995572817702595"],["2990143568398832722037828541134401799083169426338559956145399184124654854857","18331264108186984551742347182785476154254268207343096964772119712396390737451"],["1085807720023187375175444719028864688861628641153453015493308988190794607150","27537616767320998710273875552524366337785368433666082157377675587880361904815"],["16888480920191476225760718140198980903964129052704277463365498850816817807242","12758677320065996973956775637906486968819861708629349931066722163750233622806"],["12831893558732501254483228925151520723104000557525604176314412875694576672012","7054366677959788632661022566670479600051679326166259455086957071078610793218"],["6848493608652935977150537865877492857922515552561569632599104195160938393512","17540567026519651463330242784748017353643430710223169975671926544245300617679"],["13342842670639924227951792175287793181287031819943614009514942955963317480772","22136574896841125790498968400734885660183068632522346638955545157900602724939"],["9140654297387960746440667896302659682392927491891146961250049828959779096280","345320815073250630485498959795700311305758652054768339910637543024485067105"],["27481281384300037254560596892072080895375873792053256231365382639303986035138","3492830130258278132475665025851975149175508010473665352900842548039283082423"],["9280715531600002059177190099315898240602808333200167016462557743144590053672","3069378851832727208733739754787244347177981039663546723214718183382910225121"],["9307085386085338925760371621776599716556296492476938199982912622354391293627","4700652037344418855916880992973715920674281528635773822423108010121294077630"],["23839232401352018915213585835626987125458854076855655541819710605209115701405","10750496827835859419419689860768304299420422108849530477301053748134460037855"],["10915216498576583393195976300465540885326637305792486190945250599210972307849","16155771741726254303724889909189895924848465565914663163869185948487350407016"],["28154083204647926227660911461572137966380934334529545655996493820620251357865","10610545421241316104725707959380511476189876523987413845972410831595625095343"],["12403284028975124150045991126618065273531752769278087379546218322320151968257","8337548840395524394722612096190214268747119251154003146110982630478118721757"],["27794259369765959107233102741945744794918374357263448017504889619995728271364","9885216415281774602160013652287875595899785236182593175762550671265209364980"],["4032166075555006057242511398267074521904409383024032251767995353138607046588","1746707189804738950556676459502334960223109289624561925963007801312406673370"],["23574835538673497951200478986628347677157532254190066302678947110423522795125","107188820037806411729793558826280672863744939177785220113116537872892611511"],["14083472207336751126486182719140045463291988645042213253957336397995606612352","21897654558090956631612867570878383114136224720451934584177856203952153814592"],["7106395134298320640036102494474354946537172158841510593194225525843073426828","754839349033024883584429507458130930195159397228916915069132984400243129709"],["23024324534348814880867824381142110717346294017015805633003407372270433845757","27381865339249013030210974061126993805925471487613411635112462234642890639632"],["6583477202202372510831696720859595401352338821798746298708801305168582826483","15709088337532239035312845532341450813508268333238493165582202702314318477713"],["18900188379877452823836434909003432066008668150028193047265008819980034287298","25293243641591553796035189480402376812615551662051330877593771750639069815332"],["22745768933115649719904072865785333709159220767637971049864012833785894051355","23868760904627761518153355183210817018236831756278224528613542202799502830293"],["18309017206047578358738009784680345840191486160170233554207360209321598221725","27732903596717527782130908511281592801267302406954175855528234903456205128792"],["19514321456406136471115974876407402213117481254336492445990627031634872042429","14224423476993654109220469190749862804873266949233889374887309198553717960120"],["21027749710711014274239890871980764977701885251222888383774729048748017666469","10072537576463215773687184982594535965884690602456922212185685718150467667414"],["1483513933799648112438799588118031451461122753384229939501232722241566569246","20116330622639668251619684429328043439868297793711621272586788925788477591338"],["19405734597932215219180017955030909442936888936544123834940312876001025460024","20004734345707632316100396670083899870539913466743784493954546294498082383906"],["21813696972180216669460928163668012306943450959808228379878316546909170781193","6467930327472925141414623274635362886806489452372492670693803779370384622601"],["538486652222698383579083415444411638575490352726739154264794309636464230445","3290391312675620241802308963882571391391094069025667423829627964357385977067"],["8231875634078570904036469289594681589447229727801648696478613554242345381959","20946404034269091094567267592837775833207789027553648738677776572652727959384"],["5972532834307308324489877469124359299615712178235447691585821062978888044082","28476663521565053338134911132734686008590764189878697125642001546413582002110"],["10225919477387779954352638980582880318251069569695606779605886573741682749600","17768128368334600307987773794872072769621172411653151180091855928737178561735"],["26585979571919551093496716612017264901741107538900848822094251126609591731584","164925290229049273173612635552439363805526461983079547700058180612575315265"],["8800332358167651376001654436792337166149421381348259797229847630097783813543","14441001224491263884695417967521638607490350039126507143194534205545718539144"],["26379734966874025543725152542546771583471429087484428809179086854179880494623","726933327023263746467469307655119804720906039883871096323913627972852821437"],["23182599489071531911242648701602259766113997826779132046983032682852867353137","13601317967616281034303404532620489464254063128922519903632053360418377378779"],["22981605645250601794000059505837999484415298414791088080782135627824499921128","14631996872627655963915237283031199910645711827558758898245280326473036642658"],["7988289338938220604134840765989336352618307505310097510993386512284098569994","16765794002613828074947365508372230495265910063252208106596781041989818587849"],["23523503338688054286916434013142984918835210319012483745844739670050078405120","6175353514686445191155219553441241894384041120096701589289158093654095388192"],["26986608441417530243364334062139978617789447106103780453002553972179304653034","15073446175114272691617964117372363459907773301293240514760101447585137593353"],["25842731121422493536813840693238665445856542407660895397995282188563267226408","13296222080186683705651565597865737426858074785667441927445388276696557297678"],["24946735735497765658283852634941704548454570346959231025428708817660517664347","26119101690667507136234031138828925196703315796511285140577386944584838065551"],["1421283727805509160437402840551554286441347528183022967028291569973349543654","18791838534650921768760650301127428176114867320235667332713789096501188934465"],["12037050595663160025392460035717100443318668259036995515990594954149590263404","24186093183433125775922398373329956501848700068182395307897392816695401525840"],["11351590546945402844850809589250321613827683535889972984739834048439558402825","23062074598674879342618592097728200576257742785996106116242488416286140043593"],["1737353622007069886671143107082226172790112293035490384804263860531183893316","6646209657141674890040527247304507426527813502686303716080017010624104937342"],["4610408078069578500603087994249431047733468208854691732571743870435570639638","3778167321853049857335023384205810715473736466043108885718305237794845277971"],["20136043755372479003866104023281488949102858077241100640862555239634081374646","20738402925788503067188248247421959893822461837597446720799361850162425309737"],["20865546545106766405543335956109875629397326586128627137709220649808385145312","9553338987728074783928318684873789107390623326318895706896472789860152401149"],["11510522151243414446787852441554731206363314027861654519936993093882357721762","14169006484802338318834699083805496865344141139145004854487798810949529745109"],["5916870016737065259534154415714656005584724306523672855679218186437633379329","21207125530561846785151596824912232001343933966474699908368850777993803732730"],["6205176194514901788286770955243698099145422655582053741656839859718239824191","18182176778287516475442564671836236523360084430138086610584623166337631004989"],["22302652901915276949427868175340000630856222341793701442459754991437057960814","20475252979988637986847342599356229831324653538523576305432869989775250019663"],["28302482413944849946688452634328027088297811939580223905986972240628191973230","4700243589672749524402513431147696742767121623088095865039112678458384838427"],["10523050072069510237031543377013219480072954222687807275558301243487331776673","27894153324235537891771837242088579452642243573634299979185543957468783467680"],["20264108558751095930582725679340740020588299572545748536255018918158262427165","3761991398285930814187019302542461575207787394567410482938973162926116304340"],["7542332629792472959626361457446737904178762135976334218767062165425540398207","21539806602918269592923278677022960553414622114839215238060273305096419994161"],["8690442489556670609104557740538695531838259382412634725915709289478716229204","11848639315866334030829818101429217396844051877307116953578947805840465665569"],["10249101349775345211407551561047566583123378496178087925136617434581801195415","3841613589046749347984804338686744679309139074794241235985718962223711054440"],["12519595686143182683199351598696092631680962134557337274104104706520306290808","17645803054678602854265038008633821921457535232924594402890332579751235014455"],["27701254855966402530792313029949269409294415183180599678300718658851949485346","9422232539363046261623432921811430795395737661705419852522505834048994091240"],["15988766643162138902814955108871585829313710477698918779156316140441987241123","12832147216150281635134333126411412111996377769560565436276777494508442390323"],["5763592290835203225139713615339298197767934234684501556058199686915847571809","28715054907877333306904475032218472426973466958715452669362528848808415458067"],["4770575223792602176856119315231282754470223465952986468870218639907859735811","25495541517229237774949748268434887060856350885378187559986143877928000728352"],["11359110154636630491865929905289990367793948350859800211217143366701867063877","9155497017964800484089160067630201320985581438193255621824326570199254979146"],["10410277660001587584373683432540436310413910331582924039519214506055599976065","25582292407185673127619384974685385868299352586755264337527548584052235620841"],["28080327926043054752211744100977447095553989344611431826664199801249219708755","27805411159479588773165587158750409888238348399492786779415322138885044405959"],["18972458764161357900379390625622136156278634164228491915040481077453746972233","6657600971483609097057060267956830991152677870869210706377452974808930627770"],["5002418128634612880468313896472937177355594413635540214628359779793689815063","23198147945043234727779016039006606740771956447437916992858757364653659458903"],["28747588049937108785889313603858111083780956194932593562588770484588778914888","10303949300714413343025475200846382438591850983443558060750276066992208079629"],["3817694952810942219532541605668520523869154706443883959238754821800072042365","10985713316083093479550469077964955331328533790125444250825686942599556342407"],["15204455651934752514565927642331769431175349610088863744174857171216288611098","19956859015099924575982394041882784239371064324883528188560806727784266501189"],["4053354350175596042917844441953282001853353526489559643588513107927806899502","19461425487368598570932629799460890185181257192930500453971511515291414051964"],["24163077382286298325910945671180622773840868155647583281354495978364963850077","16006692595863323502914419984634628978342397675304121504773554727405049592232"],["12624109530000661454356824175080908897639115194220443181690843316998277815447","1902007054737544517757420559794609072718488025126240415028065028630786754190"],["10852358412482844815059470825130431531379994940584002147615671937633635536955","2329128922287994389446827118576084013806514064483990478835839890745424893202"],["18596390484098245240355065729309774756051225212191027282369101766896450251366","1712427278784325122241675879204790384642628219104025286299984943236402650031"],["3419574524379744225424373828977309610290828993181588642752863928604153647764","26076753301083571030854853255221641660264229340976102269987722869804937220936"],["23003970335792450698588481016595327463120232869203403612771796424594935002495","23973582059973428129716791568871539326195241949492928512170812516688957653793"],["19207528729552061159651376030488327243063257022462253226629867712746895756909","26475623878293563417481209011967951128425003783363664855167854629374562198512"],["15809443029270913299497436755032025022224016427614749796645462772729516789975","11865626219382775228265854929172615673615866868766526230910940669398341748195"],["15099347699383550897211196375956625581497106817173000402484229503399203213409","28199077798876567846033822199671833608664820380140991021472589813253459896309"],["4084265699204668321616608308533641426621704663472302380393449602311817531133","25063667509308189348296494450539585087061963498131037916732963100020149556284"],["6283540993011140921563021394158410297078303209281336669665256141804881704627","22388805982171164723092257147976168883296309143112247225251352831965957289329"],["8061947736886294864554997382934634806765418947278420164862401904065107685501","10139154901166660034486927074071176272955422416488341088277934642237666150066"],["631378260742534134279579920538374058710621196255349550505130457141970289297","2442397421509516993778233009657087650997492176329618227094189072048994302443"],["25737899470523882993959794812097835336997112415511127337046223770069656250026","23449276818015838820172926535253173416855660292693861777545581877611373461129"],["7538265052053017960960735170990147656074050561009969992981202954147049861848","3801092064389965670424575807790328095857950867995327242240309434734933286539"],["16177701519594354624977313715001854436418091190888935493128173106054700933228","6418525370567649837085907676653347777775131869642735529975083336155515586379"],["2118577814262839994911767573795577374285411015756822046908129777249410103632","17337323624108950227003094020407693878580131721257242862899076643822790132959"],["2831692991876830778957045643623868489684201808152050394224880415655183817120","14885039580581765819997088200495661363469442474262606064086178072803020351117"],["10551252426386419237627781868529681373138808474095344672324557700447939935798","22689044698018857836447851364821880148004808521495854222625487983122350064904"],["27319400753251823166751770535194810665957094750406636041246623949630471952175","6121833598182472078474906091065322634208957469951617680703191682192136240169"],["452699647849459220740029370498332460888369245412893527736494868882629709517","16293679665864800293053425703165570473035642444329131500379275396926732753316"],["26909440932428875207359627529146315952272760151750308496289934344627305063819","9934484116541886810836597045160830934638006533088813835638620088059608398432"],["5426749866626464653303432183697203850101385178519938647064308404178681831008","12322837810954594403194353419244112814946835729795134303212067666549992850519"],["17965570492904772597506741285964146128009130941036394460031140601485470903678","7484915018652249109469622756366154122401215395607055729417903527207625970191"],["22654529392569579715470018616701395004030339257227674927854971877365009261637","7942945301404844272396680834664515056106129101205790039497531770956118986853"],["3854475763601152055569638204198603373104909127143010473429161652687188358625","17939780618562871963071982922425224011422863510791330929790256189840359025309"],["23154660384181417737296322438154792422499469791491733356900749785965159440230","3978523996033056278952753558374530088584912656587957527082067930493518557959"],["9845993297071183500407999649229565787595563625843744249398880052399898709122","22218131557390444277710466857547831032691589638344432855971877520962539068517"],["10691467172025926743250575867723493287508461924279845788167535476878359501038","23310640956631424910363210691613016068196263964331287480472999846573370690785"],["23889326817038458755605195812603098442987687003357789811791014296553270322123","28167017789948561154411476136696323971950324407251879612559707574031213066832"],["1728585376822550679569324443808673856289056452367830204033163725762111108322","24262299866167007919275630207419943704043842608891871211988854134757470261336"],["20365839664071088543185183456282519765057830442905082337320882708593212149307","18187013708110957390395947314692806624260537400356812340601678957145467549746"],["14433289340839129008517606254558771895476647367467928411859146151260440890048","12430728963965016295533220019573878257795586749947691506750319399214214866445"],["7319994267749033427617242734042143638296788572132313953142503269744650083323","23209468247945980981344277667635971967835851983992106625779491885283548172259"],["4391432223836867841121670122817267202725915781371363805038887590415315328297","13408723720287562851736415169647734870876658977488074138021925585631809365378"],["1705355262694244649304006755069948789507627473934775651450757082743233994768","18065129167561634908929749050732704242516286164536605411869754156553209579476"],["6636347395462125424104784172529753045432877961605827230493874178713675274103","10212144366424656337668209109276039481295182263481361063288756735951956001969"],["8496038962409727681238663237091500063033631623809612009693995390345249798180","8102602347821112133306626908947791922136770027561895802791054251656119699507"],["20949604187731243956005384418964164771179900930873437133295939622572551723295","886522322687395638913365198520470623566116463815625979772767664509173277392"],["21563046137944614976655073370132208399521250202389563235393328031089361573879","8382904498482824579682985891233984511207109976766527453215420644123290223462"],["18533125137254423499184117612641892219337193086203974053380247868669480430919","24954284019862125681082262296889381486864624977908478045171261319683672988642"],["21389531379247985620530176025793732367624483167417690698509414211609761284899","25043019032533187350003919349202025635819500999802927958011723371609162566051"],["21494800305811671728553292485625353701936609220937655744147721599366777321355","27743870753862535050128074652444339284703688290927970886675717223465845427238"],["10159236482517931735187960468455234062039824949868651589246597871766648676146","10886318418703509680858853548279039850059129513108137512329898197780877834223"],["536465561898200993794803107668588935125244750391860322310273847114670997256","3338218862466399115994566124336782244780951812519806206813610451770895678071"],["16543531985664430724054821063587160529645274058459417903316467133370162937732","15913348328143707295094637727874694239585333931853102997141140680372944621116"],["25902781690634257382843860950997252786410751919117323243855111982486274273419","24714782409367877557518561643801150616646025185306340820906104423004782969279"],["21854705815338692609624924992486799423302850964045506518902955538017655943012","8578171212317529586858849150529729184118491372043118448777026799816170920927"],["20304910832668591052178509914160652300257187760900289038440997487138653908671","14152152838715776864128309014875793392370765117474830994139958940573275555314"],["771182778307895272432626964164400306306021315463050482000502129326640350844","7644374776885968420222731032120966062632017764345674483207396515360859949232"],["16497237846999269318073288850632903302277530073859599437651615599819036358369","5699068515933127949953551994127229689347722416108399569455334312517617939264"],["17438328567373676220860737989704724309084607583311906177485112066714514615515","27961776319758393406875594862680361086011522028943650053735342873345298596097"],["20233349173639879528797859488251558012865796637346387258928725593218167412661","19587691405973264272765470277785836635149580273346603697401748131367740459881"],["27016381528472121269770298826565607321300499877002984997457924217264274521251","13371198577247287397325036893983444175099600278949119959882637699393083039225"],["859983383708271383451346644575331210078495748981436144840913251296069371717","1962665579929561397340868897664671653037279796166154094846683597653237284168"],["17634392324545702075892064250475190142570353432453758845765613182023488057824","8904937007176572439456423623838491443296694323670075592250274684157479871171"],["9220628167348063995150554872921771801347867176004596652113686486153606925186","14480410159317000865929450975208506885315605152669865787444226271157060682703"],["17672101469285884447493415027520569821188653625982093503016867672540374201438","16186267097313518611907483102257485477186763564001057630582474733727460278588"],["6887227862524892957323660885545852568116467012250566651922685203335052261282","806739623712319237544203119494578152983310195298574294483099988602227676809"],["23894041522314136949165207570242650947968182649752852405484572526986733070481","2088181028064937322545393439896301042927340807100678672898875840850091884765"],["7197895201827238214719307588402589711473987727951877545064873049026707174725","22842652379598874992858057313319494700226277728164251887538115784691409882802"],["5957899931484092741958028331966908044610019429671860305294359277487013638536","6312336963728442238100172589113697546467198814096606538747735887722162093318"],["23134633413625256746638753177646657779961207448326053843498452986514830618891","9074206311044047938712830271163333398409936337653215113987847690544572902289"],["19652937879228566975527395293224196103589489150338142791691126680762542077050","11274934894192925004036111446916282062283632859566001493659349434741148825600"],["22322497971626686689167063915378192085230944294339247688760687699103581795691","17220485773802537327476049731237683537254425176897353259548667290964035553056"],["15642691173506315409296105830921763737641267983343410955176554493603031106550","4725300367676219916706873464858644981202686057417485440311705479690262378244"],["3850034658920953687359430680256363136108854654407305984063429656243547699311","7663864360201499833839989751740480966968824011630223002949192489878750003412"],["12279378941335634643098998803834770933427438622292324733864998647887443539927","11498058923606849001048331258529689068810343568108515202268500594618945558742"],["18232234069563856867073430519696667041705777734851606403780396146328918389685","3575045400752473960595931552421683357533433049809722034408465879614529755555"],["10960991897554541731362838344171318821932912029214351102287018805834858016057","3111622780489516612464438596399870036348316120945141578469560497451445478730"],["6477419638335815216529800900170585616477395797724583118546882922688807819821","10704344103490431574940161213019871333992933458956936130587934286169254611408"],["7492844215900524338238574393953395709771202315357532125568831738260413096138","9499958483030668036546643521243881776675597283244123068772770521295691808334"],["25693072018961118087232784863962583760234843181814675362438540945683800672619","5900987668564649401639120320143409511929559893165783657251777949631306026676"],["19570358158695653823261190425246649679702706429206474383457112456490720411932","11584985354788434023936209856098537508303279945919871943924748159599631761878"],["22667307298903018055743008326341550588339626670173907132580033541631614291537","23206010069580336491098378513828079353854927063856329693717915011807838166775"],["16482791873246415005695778488123924882466838558552743971684494504419269934029","22908432821377726993143728604066852026928214929686890614400047463704901557526"],["2180521412528198123734585951581280660313639543125648161004168521176136757726","22717670547625884385446649975462505728169670134386729990153759968222227003839"],["18531427635348437141307943443671393169045977243015305582685429098383877759639","21162947063064310383368349037632666128944879337797066986428220487680629719397"],["14216481697693945420530404160326378397176362156180623023957082594848421110757","12483464155456126641148630700105499193538359155370559149772717980741976432430"],["15970714715363832078926355756801744955282686315902154755244230137201638350572","24097783391930106775103408971123629886115484561219963434295493589407104704221"],["12442178121761207538917896071949744071455931392936983562436641554602250507849","36789475710807549263784411903831980194231084662353914805215143715883308956"],["590151459176688859192408140135229079364225754689796854358267564106578333413","4735400814153324385704238877211116491106539938004309948833529600607719399830"],["1471923375495671102068580196145698443545178042856673093670734041596781390908","7991546636087427492197913386894076456446038658536649640931060938683682689418"],["1893834144547995395563744640524153046041920975351195529212376291432452725222","17161073335062326999846214054534268064151177491779035497741990936758312672480"],["4881823305467358766917188437829162938141995632868485064659219238759022251162","3826396582096543403763674109920428640321087495592998139595115456630535689671"],["8309199523342611647327044904041482037653204271384665146892610471468481010157","16241536880718873557409324117128728130955688177879875277334228145545146689268"],["16760179122818412238588300407208700432623631968888360628261059891853211950492","13159711387287959081179513290713043673874674919271595702726964229160799989236"],["6599509907955132079403690098556464024240498263793816180483276043877836511033","5007918406580237854750113051403134992555973873353571469105116298592180732997"],["17247500216740611014331248626820016877299585795330639539013967461271903905636","18949871979698386798953720428564958193747734660550654478538591300226916623581"],["11042874058205196445369496496028042031236028700759523024050215915974564663306","20574902892565294319037636866853852177931289589433541929502167331191600757316"],["24665079789523608450324045817245794361244053227797853470173171079724772573706","4025572505337154179850222140426989404885769075469204663807154229153924604989"],["852242226782947707869962862030103993216130382417792153178653777832097766099","3322487279806495249349316354111930063950366437216225163490801462868340837626"],["9956330236301330851305270276033153369774744671240286497135248569231741699307","189230265479610392584287854804957294651293340282731669095783636715614972217"],["26585051727510342874470384484259335837468847474905209542521174215000315346488","4286287382435695894978285093088524866084139136031198516290841432530258330402"],["24499624863554694690113457311809971821118114420652854213640222100692586845531","24072860887586405110963630896574577672384399719367550231908261233181165036943"],["12859310738053354038620940948502937109396704874560115361993561548930748464071","12205080793966194587467094706694752243535845859059512117728608580274460255455"],["12638332599962083757434906641330871486138472369404386249924408197296598547653","7591428438683088659977257110306886182554543655026452077465018887933853775663"],["9035203389631881573882329281923320386889472325131647918141119257351311919964","15013189435863381017169027167330126698717529331815359107119857848187854617222"],["21157793442756304688724183885322397356236315524942416786113168198581840708151","11484284794587369088349231940806630679555084338432582233613607767150116570728"],["9403273588998255722166385140250824986448851765535333406000386397045521672204","1931507363254122105588435936546584401303674945872975848867075723213604462356"],["16401712123668422054885340091878649753532682947997994307835276937191041436347","28298070812512220975916810684539359529706930318170072907610136571269192932561"],["7815813044958802655125208504376613241127090762816759584348441895348428150769","8342920601017027473255716439346920622115704381840050861167263828002548988673"],["19958823900194133133389681303903565000396300013653284510200865038362282074303","27727163923691604610605166402905829379091690154202488026117449133745256402753"],["1639367604845070634800816634896125513217568317628078834495386334659667856093","1912168134159625665593375261762154036695903906230447554110787068745134010995"],["4131256073295594457761444524584476603898681263955352102479940051984499968177","3312618058265101939826428704580500040866143955130385861511964047884826501797"],["3622424511005313433423503786043722896180735032091966090185113062778526861834","14609477869158754846538994027968725204507329120742797670042296118078141758866"],["9879150564102010624115956699477926771671177899618288429920189307725331095812","13040136150965062870474766143871529754175619453221951927189205648652252661286"],["10611072928002190921704453254969612143566350144724212359043475050116103188933","21998918678055830280900579786512424846337379739654103760979134728952592881392"],["22948085669600198441192543849580526666736578861794048848525372821161658298449","5414415913698414702532929489346866307921846973085806641989250871843368110837"],["25876974316761298599042402307098123975653307038006487456560043370730136674005","12268291266596137848082981193696396058817957076262470586387210725293361571081"],["19925400319434486230258323870194722329879447892169698330772961956365046701897","12793818925074884150594134196163543404955079208310259563695041596420741319506"],["18453676678094704873802860318189028229078361989655289543869327502040771865914","12772152248817637182015523155882960303996971987335865099744277396604496161889"],["7702257453698613552688437660531519821423066077101202444883818634883683382131","24763695710217545645187147544975279034466204911934001720284641182200560906321"],["11451609055613611362751722794535948903630670678707029488680552482430156070654","7760040333960910745621278252536453258869871397731409278812329588195483022433"],["18424931299188788359967647841567874047912209508118917498133743179978111180481","8750728853531857665836219861509558224528926194781881267333894286553702516493"],["18831400999859849665877196459216907824216088512008379914307559917142300102254","28618417253147264919938482328712912972244233955566418564149121041602930395674"],["6043081491420145511338815199585469297558916567942616980114725589991069809218","22349231476753346947560116173083490769881797482499886166052590305072649140280"],["21160864161102895067008177449251577109259953326537233505611068032650740520035","28869979990581329854019673748997150087074760354372837732281944198609164255262"],["10670168003426707801169042071325271367470889238427561567675623704621952857698","28436794725010181979904654267881649049822716073667779855090185813551123197786"],["622956837911921325016248703875912846268400631540126927384518567380682868100","22336180740374266030701835523188967815286786230303223789055171997872665225374"],["28742274752034242121776956248875464971877547911443238821033885280308789535536","8915535763954264772428685104402955448052055195301416174933205022251721187820"],["28065307986271314682755149371830045014453975726939725335181643746770339493592","22362312652436883241744085476691522942284235366686592113920541390030819922512"],["9458285653870526646319007122284928860096286185258291920254967889259847147896","24235864061838210922577400521383345905750083874012800001008810222528038088243"],["22894606620879921996881607155932629404597118260431313597215047440207070901356","18327615206656441913558157354217332710256498867133358891827044568918728265120"],["27119891002752825666615016957927787754080596376187211104858426146867158813940","19596446741804947040812418022315133192699595452477897012135265153932459193447"],["25567316372422532800669991060061313213864826124322713280620422036099514570560","4054031678628479481113155654500840904729610022977209704138235514321496517697"],["20299239101031176785139856079846665605384853650089702709269165554724197084656","22093284486938089699350812808321115924337279435893467245291646247318074355011"],["27424987508701075869758463037095181836641187930622540885337603042447731735963","13417060563852592324631904317201512312525463793650804887700417429263829498321"],["2848911658081062891657531638586459757669880614342510512109174767571257622269","101617884728652397268673672628031872491585899437657311503765174832964153301"],["365765607672786472603075520766426720706899409578190597844556232201860221990","23695412651737364752117464926832684393462304924057744869818580307466659675234"],["24540641607968124801783913986985113994879075024921009765817816188436188243768","9815148037332374374940197851505717646128766239084680561388831337558953657688"],["24016363962652218868427192093336800152153783093538363492159700518404717245067","16471623349767839848841886251462276163469730661065721024113303188967808130163"],["8516705682804662405741081994593446557502679600527000438719975876242466813167","11755269876301947141648236197539856365603065628442304094074404952199271945894"],["7272977648160649977665994543342537904229955785923498302250711298062901160576","27741661733500327244359654804115580777556698574768622587884764648628941804513"],["23230941478023933434017891728163373570766488466244130631068259981047425663734","10166741218968448588773245315297497073459169824599900757568816040705201803602"],["4016706286797928053417581010435931850870142512605119574520788153734351910024","21250769701111129093123862776292315075798142408014003308120697511565074355833"],["5863932681083024190292661855883449955963670237345678238045275463153689449111","17334064972315515317147740855771367566262994151533143183629415840060927694030"],["1669603948019709317552485817461900986023674563302955854468013390008077142400","15331505877734094618163193653455872683653606650859853003749114336690502793115"],["3705901003362688623685396586011245876643707827460099258131505543424058501327","6461713772678165932767186683439491510515866969626919391575042672250941650270"],["20848346912265433891879823648457159702464152637959110829155331434542729101899","1934275607294282790018843362145693400493299581696205129554232643358448229965"],["21021623019853682498298064750125627623497664162378694022462809767273849148910","13722954652643330626892610760455092946866846927220226194919007389023590626365"],["11425758082231998292803259189981467173560336052806797767265277930328117508382","27539490546785599478786079691919306121287816666592231558222108353214397846228"],["28019010094828662861360902142389473994419759817692675437533831340715526211804","17312640027253715261532463648570366727181634449934020345434127322342473553041"],["24246006881124000850777301828354637979986415983660795892055677447413093563637","25782380252946962543715138260438492799629666671688781953901913168478815369560"],["9506257529907835138902399002988495969787732293497927707425179827031844872260","10819991420862313160398865469770802192504409082899440139460451404581224724120"],["21898141994428848263292997171341970259186205700781866555518747842448820011096","20667519245712395509126662854107451833094424201036306498179910314447200253476"],["5774211537198339964766768499530140664881377414732434718923469035380896284320","15695604310725853116988533871647137510655538360345096872558242467578617447873"],["25453824680127530933538069017652551953063490230139836076360900512419364888818","4099211841030863352998317146881225843283737743532297282240015962907060216799"],["10141568561339506909195574243370713569463709285532106497232528765391685920863","28070228869467657199219713634157903116690037409446237108123448331197397689130"],["6952246418026421400786501770245584421261892122318456947031060558663848507079","1901866854384532059706694007530134370308786478122550351739524350970307474979"],["10529111120417722717296660438465490681458951471845590697419076429009493687879","15847321002190100840390359632214983513034285431274578335582340380467026954668"],["26604986145743290776478019999936140922436216144583585160083930934592468357591","21340108005164453106368390063969010294607926767331210447425186664543365174691"],["3133502036074341210147973103581753387071161074605431078052400323833431530647","24891178042258755623351368586171254151071119472411952181043995653747063987236"],["927230282018600974721074137107601069556241546746677229816208679886283216630","9438739149407045636633812922331260627059992350022358688668661845735771878157"],["9384996572286111265646894422000847871594613194091943557606576077502423930288","24891270808511881437741454635075768599863258802108576870508984440332988474687"],["20344546467948725866083909861047511116463343216137424643619476522657216248843","2216442347868183343191298637431999691475186057989660235705963475678803687062"],["23483362174737316208602487050672019029399869638833332913315251678814887053172","7440887443674039920219668916456615625739327959381103228952405242750445700128"],["1240958643115569988140773382503906812826576898197971792654944303084602782329","329281094081819528551935524136857819118363694405179620485825173171031194654"],["9551865676342507396254452685094455048496620997597065144330941526985873820889","3527611107531567794502157394506735756131114256557158948096361147239452145474"],["13010207652899156380820656289117736814571753124002164443074278995083729637891","23556227899935427493969404050179634377221902980102558911551738507227519676765"],["14788961349799255919926507467192859184017662394797396673465985417925803683680","16887935542071868443984847167014605350215723438047253303785036933540052510611"],["1250726751803262963503758886942207182434071065330990011874227638326504792332","3364250395777153804592169706623759009087303174465937382099127745519201804397"],["11699487465849311693460254370031287395121797371957619638539278449946250484051","1884220384831832363544428811739068014148526315924380459861388430256871022249"],["20886646867952883889624309234790828570305760033518348867384869648764432752861","8028637473276271977733842584820565973359248514764278259503311121931143885368"],["21312489611212027547721252295134339870371737300250801942742792186888634081319","22375408885537002447146615511382871862427278759312230211603593364266056946152"],["26377234634262115255315989921516659093416105496949270772458317736310751276814","15998693873970207972823396147144247986231927673948071312031056116387140963768"],["3597484293209460245876178258598991531235576838835165420480275120766824252644","976690169048287235902916640342496898916711184918735936634733522165892798595"],["5733465039322226358045808365576998770062234839339057635363300586754029461783","7606349458884314922802869891049086261792146535049095079044047736553270793384"],["411516254620302240284518007079278582987927566182742719104318590132481234954","12805182136524074374520680367529445149376970014929747570997451574584505462721"],["15094969979460917707347734923829141423232394884229686883011779134299753173615","28666961424154615183958954790341593084249812625218377242143416511300342744022"],["6466744192636706419108411845280545921448812297806604353738120369139266849961","25748494850816598558165427428433166735567566614433199321190162711557653102543"],["9338778595798059433797348144898994211433057717796915136497949366140741961432","10983389516380268920848970809267990856105979205742337880675360758576951376934"],["13706128054590435929633020982789698710892974332177795257930714871003831631958","5583269940198705553462490046275436863955769709265863954636418419217083474017"],["13600897147702619997938427106732756996728104804087409758391645209466007614370","15632385520298233867288035956686730777147120843816416473066113546335925339259"],["27056035579427761418059320509142526411576311553238795000887467609374819392237","21208664489071615659079457835877369359298661837842195218466574702232778136192"],["10763423151455396385327432606025513441753464472843896355861081538379033293988","8187685396078407412294517442634174296980608818018575565565227892741258512371"],["12219608696876021851431041812614314705367392043825266743582938719542589624552","15278016745652961030776460905979508411563601744507741116809516545249835642138"],["14120076137511106181999321494268602961477175727298482152589032082480159156704","23073286431881924540063735769595785800901605336049984649994054282156729840209"],["21148759568926159793247611504452292639959740851668412571655387810274049362198","22732815296620774729184648318924921591000365668070706135257840212613813965970"],["11183694442653356682976543028770791139593617052990704705701500866883927531594","992292612615975983064338919284127456488134931073952534938785902724181742716"],["1813875053947534972049247115383067609377149635234051249393139283255655188901","7696678494186577619335215883948037262840317162854719339726698674706069893424"],["2263441852263334870095866378516710733192074991604989808187392462976886234575","28716467831159129852630823229973327697054842903682240006734685434600409941054"],["17771438081508288132299112412931033801914783334278239107432027463732640715810","23023466872935346306480435290548473479216025686705618776059013751054778929075"],["6386143496076856909045159532233584711802127729450290843728763461094982354288","18298306054688873427411528087182824297293038227706631588445765102197755132362"],["16450492421360530626567071790992482602527641457813047137352683817866734685141","27153335901836955938560997140872953926983332460492554718514728858536299625272"],["10648076148814888932944271565407999461213827052760725914508445108499166477843","8609936247284911136482382157119338418974116591055077162635924793111969215545"],["21350614622756953194343685702558170458085728474228765466295993007412518647686","14963432908023255500217087739046088680057656997848753203030584799003046354502"],["9164514726737932751565581539306301865501479845233097219549090486802305215431","6453750735131153231001848769676892572117347019956413102348722006620324634346"],["429408301527450219741953070024474428264632037344029148022170639209818560254","10055866333983806806223593445169143289659672018939737193720009410610126132069"],["432077439545640478059330956154887987116317341636685656764720286006639278603","10476300853190020568642516253581057232143022866032152151018293337710732167845"],["5079704264240905078346497688880797047672496206302149398605797475687096320785","11482547239257818351961105768765245200051134132318463916608980403912348634980"],["19954405314219632315046073096397261869090122767461008885762848855236570135723","28034110413106060918559385913850653074901343672008663744081899286121248746772"],["3464048102231643505870035001823889614882652711307475408432334284526999496102","24192902431813535327078288664427024212442316384087926969181303303983250042412"],["28365633130203717941711542425018496742710595228965561514298509370473657216709","26577546622499630971261771068456292065420726128440796164005183494996776401472"],["12843538816592452379494918371152032241101529766471011806977758000643495281190","28241808887869150149018354709980150596414117648191617966506246353295940472843"],["19558057904356521179801964686096570592701899335049835802750913918158924421731","11623174680611910974694771825747209429756703872852169423958951606388600738103"],["14988592174147724678963517365635096277204239453143658908344393706978150963368","3625533308844453040011219192526113700084742521614723849934479318346858740121"],["14563216462932793800021802950571274402508816676005741603781208491892456996685","8981812036361755584405656186584507870783320500364275220550741132509335772699"],["14470100670040689101673583780007794241271889273350706458515600430074261649676","23876851315529095012627365256554594426799578748476170215940195402924423726643"],["27832356535163278134136343247889128196450739311530041730657117436491180262625","28491432955025633180741189364636996385204327466031224487575241503564575480297"],["15240235090983759833571280952415738234638205949971995351285130435166676875299","2324570339308750904303356636434108308414882269884544076597848700450389252787"],["22609439554874681892154237914151143092643153250160231184484796103886605779670","28889021444189457402490219751758640739965586608386015144597493105713477650798"],["16986076000782260609216713168601015961130391325137174429135552995907464291330","7310052981071912348393225559119377404924724061571337922850259254985153375314"],["321204225200759814081538237147781662538403157265883936615866175022124352721","10862556282532540128301787770779774062144244464412227649313389568119496640545"],["19333889242495736625978834163586691074144954587997145871519066072083773229483","25254925615676587751977324064769339902682951486226709896920914996488252740561"],["23590396313916931010731909639391340079750304031790133447012366359212159952904","12110905886776478358128328197634403148104429868306176948376617793961196780691"],["11799685984969065100379048015010361730941333028318554163657463154344511573488","22666015520811004490430264526915076798067892053051454118597105127315771143679"],["16283882492718603809851799068996465225329127625658958096687523253852445072643","6806663182114224979191321242460792264315222675647271728847942557068480644602"],["9591245148236336752952978384804685683391883475406503325280803228181704910652","23900459504368090413673151946005074840415448748146579578485334198006119206741"],["6226094098839839258373648808616661014122126812127834441668525607749049211703","13318360004233389003224088442409092830862862991677156268839318282826343928323"],["26484625413877442487836810212438855076438306616053047228267814819980983491553","6108114465756318671989639728988992006093879974646616827934349083972587189121"],["5031612402061387720089636367591509367206856968606860856120668248990586833053","25024824113080005181519802475300221082310314234305046151191201062219020312420"],["11605792235031115762287645947625066919839400855945589546864046480554072571356","1679907972587448037664426595129297941710713081148357677826481021148368898564"],["28364191022802127381884659717701197394157117081005230448362260060556518550023","6343334837104330743763037596839106900203781057534473563326239542647432366038"],["19229282656182604440776669090905367693309427016203480762818648278385959810385","475413577918254062463880375803195749276780434515782973238708546947738389763"],["3783548389075192581416899495987449487013253911777425927687463919431692037914","22960883678433298984836046968628754307901111327092711669317265370842707250768"],["18703902904639421281491748742061915536826173652742352724123709362268838924495","13574799835103068274522627863597151772025063067994736230668936576284869717748"],["13948923134308255805369009930661756936663105605542198382110834112166461086770","10832814952255083959844190316406132249189648422395708803542080162396786813554"],["4252964621093500912591118709365848268385941883846299904806487348852464075791","21067850620325388939733849441475898431844157924635746035904924541211922815364"],["5136432723675008901778452803297456724160336392451391579725451359777566097425","24711258322287150452542677064793535262771597075929869311656043203684748640286"],["28118286732368994115931162228720905028930558498186731189595093436693631542350","5642759878862511529670762365492009407501498813627292500823844478367611442393"],["28053542855158302271980455798229925149341459296455751779005020960435166452536","12023123639403295775869626305415876705687422889494744488604096190834612969717"],["10796371582961379981617310559207489760628889819924353576274533851994881511396","13181164808918649349407947739618300512558140768088924755334765162186857933312"],["5501743662152794938181403492467349619847727625127741413714188323429409224798","12396219987124819069389114173123222664835479062533390556694052126829176760724"],["28818848577798108837179513263976699480935344360790240114390770622617988537232","23963566664180389393882347737902420913728194234042778680441196090492419875341"],["11779324182296913622880846403313427276233651263006775002693555021828438115859","18195191554234133945762580370946686200345253418389537377874995422025796088936"],["23422029684981207678915919307425488937448231996236682070977818956787806614560","3376532653490057146454226003969765425461802268337138379743452238124141848755"],["13135807389198909671859946479746922318811477544951309424888885554660235809157","23894382587121373070723264805263938091732707503692761249020138168389739666336"],["24851946626583349415892640869003848256902862739730020785135968316123744237232","17712120965406810343897835123097384319412570510444175497077611998556210554358"],["12237900648589864800296954035093774069409188429231317121406819217507676009660","17994391329128914002014039039813328225069302860988555303256205495601318387163"],["22687043832489964484095056213745636732655907519891948270428299666005557876023","9425649137538907057342227885382073157886166611504937071472036608002039411399"],["985272616191888500391281672035382179200070534359308991072067397970368542778","24213658957721390535356375491917798026809652423259492412812476206747057546324"],["26413240506797684264305425635743727396185363565734038127046671961460848328349","11007208804728385118435135335856054081882241804800541083120507061506815549731"],["24400725593663749208737472854922320207102244898095702225563826721859003153004","19237718166728502093786927255475167214966382327406137724678000907740149967321"],["19178308299848437550182574220246502707361358573441173180622374935584711894203","20691976190614813800452781212316312712925301475182671423372800253709303521979"],["7448076001320055157644913736935568597840542308179087837224268838651868869991","1739190709635538015891395079056945723613844451342591707163604625616825425759"],["20347289679506974890583924072866226632355564786984992365076931612456923278908","24601593297092116697829323050412404765883058119738084698904464818833937028163"],["8761498059258111028237539428339202671613756788732946645126262580178507083760","8405626878514639060211219727887844762495541763114992200383748494246094152035"],["1972140629257071529332672848979652162391851018201796621492878223300147879560","19863003180386049561288279012599066415243422118303878008017638710631467913776"],["10570148204425930496350869705800519313959214311819510946458964662084125998721","10698577837807968448408737147345660436230301539318046922710095084127645376945"],["6784979036024851764170850730058204209818880538472798970181144880579702060120","9500411228157046209110567006451443060504758939918232920925702595142310126633"],["26316377229831254899103049056379015265700851689785347585090698797076650821250","23247398381117446687869312506540835384167918493727898333488327258987077822170"],["5860213403900486127412173605382297974548076930776587826409235107970483836456","27111659886344881834853079758704273512309485554229547491461299863786356671491"],["15028418781002408137569393102975922716375049605343405037309552160171943933233","12760365454670074835783356201928233791023178641441814601047701280869280558441"],["11545721417424662092297508609213167501896268309657409064803152248755616431323","22516227309960718999618024486477428402401256984539178581219060859696486864666"],["27861448598439658321262599852791657173656908394097595314597326978066233155255","22184259566705219700681855085078033141102734929955461188813813966252730943070"],["20720048161541192837508740399970334057662752310231076264262647236055254292914","17139280451287860620183791665158517427072378757537965747761241618637335230493"],["3927684967389746215890498136505445221094103233895724217674986384877894753730","2487593446366109732162552289255273012847206014564026020062020819934780733122"],["21782051461311728897886220036962218559552467870532841894277211856873267236322","17334813179057697847641787011291846713550841630143999774362602002379718654490"],["9738020100597668171902331006832024522298421487868730515658090358942965733990","26355393651715241300012963649134168123124773506879905105494652642680714529719"],["14552677819018378845511643500871274089673901679530057688277122667182586987871","15167025047415342518299757986441941068960951083634129819079448571362052973749"],["516647771701242995131863450985654447333558679685800486297610249610013955225","1552010276200713114049506038604550430961076471422863174036755142825557772121"],["20230430215400101325483065681800719743188231911239125980816001879825133280603","21019041031288816687917656084410087676699574855458493226356829566305741500901"],["14983686323008138372324913616599604117769731932433804702363884726939860892001","12257565480767284635317875249386870776742218231624554830793048172667573092429"],["18712909802850712395372515033586767366142481494664599463227848599751134373639","5442481611211671101827029266749466420390246527040092526884655338367414345388"],["4677211342693067200098406739895118497908078387368269694447258512138232561465","26504089513363047869392096621279514810507272521840031396635848324114447922474"],["5766824099282446684942547798541121403240006929272852696679904636045248499289","4654637153572776105852409056547221298887844739854920381721686890231337190436"],["1324799186574183128405636064616038300044089866483055992609343701160906698191","5738816840118646438632291599767888348905076300432353644501954346283007598297"],["15320105911734919775204352253876591242979972173814513058786150370604922423614","526700788953310472560496257130245166819734563358513090032979741718980318341"],["22304674923351704561772592110432563142225761624507006235551909872561714303602","9949100024179323004119559160731920465708616059832383349021762029685037646421"],["22141768873095771671079645541344078106153048654599267742386164278985323714376","19788452490401546480281265743792168714885362667514461025534843812314057924929"],["18415345330679493392106157482828949551772005690121117158394360064785835507006","26143791827365245506506579517059445797534147234187642839278883013061004795455"],["9579327998791158751639418890401207116767932807088518563758328906007093439508","10651443053999807718958236858660426636363022500095328808257458473624246793415"],["11631905796627976844643228913190646171458316315927413204254465068117380713232","28328740668839036831562695679109735742026115878617706118533995399875721808241"],["22161138870483876317943683315338255923362292311357219934342844353999036362992","26303569542430627531498583072671826532502651829164917350890053931157583094152"],["3993202381471924279244843914722069751857447767916116853071526643647811352233","5599182197821982941052258502631684072948218220476628137559896220411300172053"],["1441125796439050326223668899611446194283673379109895426171934253757531040556","15772854513368762924178847716171502997201709532523270514024505289109238101927"],["5631590393576840422036825907824718578966446704910509677214749645745975541060","667008548086830746215288620353652918357154996179189309383863261369100067370"],["5353477073095495390104582025448358403479760141065862829487354445981234846848","27014974223118878912099357701523557727303650390597194673339677509791441581474"],["27727009461817575422374419001812208585034471945443830966417710019384136743330","26426483717426749107774443699547390134951571996457310736964765043057720063078"],["24029691363901792199120796223496386380560063008916740056836912680896993557984","14740660010556515326404489641149362533765793679937420840283566140408074295661"],["6814658287871678492871520402519967533644057914905466263102580722078150026332","698653019027410676445489462172133892849254865779592364210739717434557331516"],["22094882068490523657642455197078096905069379674138853491967503161893291351657","9304994557982258059435299070800943922197127437510139385998942588515528369396"],["1495078355809911540616362863618028947635853877180027432529736515945521816777","24120781739020609765803236050056450884150149486639538001103636485023173682447"],["14833366300123821053784498799011133420108099620269699284495315209801002649499","27433074402619803162980927706769363557665965856209205947152158940706416683240"],["11696084885400614969799204965425691666319892696639544368713669403146555067114","4157682053784940737771275851422905562898015472641383942195811372190631613072"],["20468708667389392929032450516498789714516105884287952510754775604778281337738","23241463150643401008277670807585243975538180013728878404138042953257637474999"],["17875061332870002758440785437482758657065360730211999378103645953463578560039","12838785090931580962046917077138434965896455661371062231158608700685127798180"],["23556529578961670544327051789626906157073564553447549173485728017501466880779","3960468410624077721419061990497967434513707823401938574103925356080547952655"],["7200036161457081622834311285880879714624706179258442655667866265216635007213","22526660148054284632389000696132412037277119151864461365111348219206487490351"],["12098456952761745279244719704923308498100061093011026621311673687412099793761","10532467692963921081762769605953745295622766544559081353886066367797899894723"],["2938543655252593579611997494413234634835431184326016814869820254645056871364","2912827811191287962891624758189605776216782440950111631592999603332213006101"],["1020887026573875805583533125008685592580282664703177157677946556427191367732","23047137953546976874998495949000908285167831647667802857978578725239487077984"],["25018778812635716159565597879355462188014990305747956447292002394763525421486","7643197956479807078152055486197194426333113437072251936257786026413270779987"],["5760333678785685356281245197915408274853339783385790237612435195267316757638","8537476638426955887897752826874560585481666848879761691488696925291836739103"],["4187858825984141977148525022484482435826522437532807551615397414248375988456","8206631307069294434490297483171901118792538946012652296799232849249703057502"],["4768433653244723005717127864186081324541445032193728088146529147129052093470","23160481058386266168394532734137493135767317069945535297456683424473008453734"],["16947971879711532497296040254321861319225377571826149237573634230340171395668","12532470914044617308488834765773301347875798656942475273338961898872753288146"],["15107618250561561367702049894856140379311061434664601911515981320275547785436","6577014665025438492916740408762103301280216919757588499191694745326158952039"],["14077092604032639885880024671796773686260402074140349375359203283147459753368","19127166031944451496721235359405763358018778105298265512288028678474229066536"],["12181405506244169817449005919700096016345688409536143165865578036997706760541","1938702042781291708750930334923954375875612110132978803346723772552704697695"],["2571225716903252778191365161524124991956302445082393655123501636681896875990","6160715652796605463092145264069667041570469652061904775804322648829590165214"],["18054562863572978645160087333538381123039511321198161088686624524018232262580","16793038094053946033612333161090038601006160538189046550127323514316663135737"],["25819464497593498996292559721383516177667119495488324616132333435324019935030","24927102240573257543132707019687077863795109759255619612194947460642505976896"],["23423346558446859762047003503136892039812057490196376996453374218121689481202","10027869073053064581634500880138666583372012366017713652078123994931699036965"],["6702652239695785594974555909052310286142641947416116175159776308351634842252","11868235979394672968135954273762250004155589297189952591171093980059413384267"],["18863537663354476901330628521935017336490547489854759258291771396391328279971","22406254717664938676916623959886690948778992265039696585910698016114877462198"],["11692732213053027033015713066952317666108055657903484987870479809513218410485","2571154007258858344710583035474933782750145566714736297619712733541189852410"],["2802526533954041531312342056957979062258544203176987985682556529464774112479","26044080296084152838189694810732107412768944785971870098578940529443200462892"],["14137290085450765795266057906027552510125942983691478592928827646617286134116","27450280126806334005759899021976347993591955146746307935465496932390580591136"],["24718046023928465704768133970022596213988289041410251027922939358125912218788","10193121465050700824172427679900205517290983857675543489674095059721967898324"],["22475348742978964753068237266381489182361349465617427232688128191230835083245","21994043919773450062101155122279905118526883132880275934747656239051405815336"],["18149404819499662045194821723185686864203552212965506006458019400463452190963","17225493686773953725647229589548378590955377195271203793150386689243856477390"],["6432464068827985290763945998744154847672601522094068103169702693673289129508","12579630169536460309877460035773546686387268894789276930794833914899632686196"],["14946207525913618197983072983295918020220942962714398331391892525606093455740","27684147317546340775188875037959681131131140633246665132687239070952911287534"],["22954476558875917195252794370308572596810615249066215304466759137211281943975","8219427984428559497478372880334224267562945967137132817237747469248587405574"],["20181148442727819885358677708761003814371451701751209129237750234418664737368","13919085917746941014490020394924630507209157006595935396342716940464181941393"],["24702822883678429562666596677687366807983317453641642940603763254138871054456","4972715143819868375651775164751891098862204719747465005203702942818642239414"],["14387795204075404311286969239796912582883900630563742316690813087211650498495","8974740563287688829429662104298063922701969101447537591500275131448672407185"],["2223730233618788211286807365608052888833134793566946332417389065053569620203","22603369232544108387751696392472783373502652753115050638339495296205603793793"],["14434773023769873602276788164840847119117780180077699029373402725985264479093","25239385554654584339392192647791187311370898860568941215031548061992423288260"],["15150019527804964641331064227184609830290034765892306729545785704502798610091","26480637769277960276676812197063029538097284644689605124802616401889944811341"],["7593846902417753583823256415284401287007266202840208253698717273696836188520","14107341493297929231541943196178223589261083122378992931552731830378124156999"],["2779107388299378340659631401486663759719038222736026671724955510554848767520","23869324634680032185490462427712416914903364863621481859958793807761590769672"],["15574533079955945432790338240844710617967424233361332020104530469901476116478","16065745965418403573568943268117481530217301235153512534463100812377367734294"],["313494076738601833749995875116092094808116606187142651163228996022207940096","7179308731685534894474613147160216251056773180206607906367680730404478234489"],["20106279489431189461378830622275354190359397149210971804527464689020694903114","11917539620119140800353068251569553319086377080863365551784385301967282410521"],["28023521369208846745737564620435217472266931525230773088560734322325583487603","28661943468356214577718591502904400805995429149419948662056512666825519652779"],["17047178246792354266105924360697746729245564177430923685876694749147852407801","22138201782265907053381429059729846838048564398907796301452358402012503630248"],["25156970639258094962011334440604884021767486688119520645490663880215439598682","815532610727121853255392520468076174299780359657934075011584601160099898275"],["3664402684076289046954909178897078309855580125531582027165670932287613017659","1156447153780752359746780584428228872531783638174835732505450765644313240332"],["17375775483884285914453457290212948273011650937814605648344503149094100421472","2174308558914933232433074867530032100736143121377272860306881281019829280614"],["16346227362193254533090704677004790955038279543972564377813246213318019014573","14544114924593967576196332968806445200025853437453178843396932167374697157020"],["28901052230425426470865442447751512776104428415730684844875943119869256414741","17735392998992752574573541706556922829919624667789707376084279119057914950926"],["13619723701671058168313587955375845066616082491810185199746167563419713442186","6621585253980616652656516853698769707364839986795523381057733535904065898259"],["383167040807868554005914555589297715532555304524293690564190681776485414607","1334461304844269704348807888247634602827816674902933542401242304652887112935"],["22520955397825436717028931387234319300425691921429492193094428025162312294912","15665150387665859061928353838365931663271642465294104667172546638659596806123"],["8357712266935127991502911875972477247331919135698456633760129058756506811770","26215809339481678156449944451712953004374538951265810026115939756716134907797"],["12145757819581193539900011539910972893060517467207024339694105815278072048122","19613201754327606809687536070571875919535050160100784200771777321333238616659"],["19342823839801666636176294753650814179486943695387805556919785638461957410218","14306656519854335024164697919276471961282375463887325523795500951739365469886"],["11491714699888311537605503641478537221915010908419872443296537456104349899760","16237471773656834525562378544252868864034407568662881843583711590371270280393"],["1781345543390182514625737095195856575210201697703993439612199320117651504581","2634317344158361519725648942701972188734605259164993450857786309339758297522"],["4038674061890118313144944688910367292619709601188149799194791688686219590557","12487847081112536775493817818755663666784620144215683232191723882564078582965"],["25967350638336698205519031325455412595853051220967638001355441124697626284456","7920693607574891851909606437699098604077782169130305541464574987271480556214"],["28079552789166130667150355026143458612926630379125063091870923611672562135958","1962248024616552650918919989808750953566393542648079966668481878002520829784"],["10169746115092987099686950423264705538291004117587965212888153485782522793883","3551194586543920024910610993812211273020418008160201372090777776709986652413"],["25801428288484637545881962458764302637402890640371759885340012145473633609175","6118875127739673281636682928221289435622625524780341872623268617139714362718"],["9200685303581095874990060395058817258123902272898080791976607309083898013390","21994449240330597139773988881464050697583905929562607003328887971000211097342"],["26427807557973388705727376825844963422764702278525206910052761260074929604318","18288115139683007356231865082405263074490982588037253052540448990015757813769"],["6200624993816731111711098564416866397333772535984783699910413798864655340749","15154296898880036531389503660852732438011390017379172637188486404426392841264"],["3441576184357959937261034905789757675480369176189011369118145669884855749139","10944694590936125479278887548768707665007680183909306113220113311313760186297"],["6564705438555857655568968290990299218590436947583138587825225535026314173178","12347670261528044524923355656298731785383191216706510851478489976470175535830"],["10644134897827802466192335439335782218396409148515603165097688508799532909492","9182072795022654022462006915893275150488735079424355277340200836206047922115"],["23005162327797674155246154017745348247668296239493968354776865267845636084058","26305336074937984937256644868137124224661293316195782373190072043142248697250"],["5806646051997564062450383009988291452060558422803407254949446979717673112141","1508596671614438196333901135966306576534843314294694171670075111958101065683"],["28366261740266984228643269412740975974397687500192910246250106025777105194549","24881027970473495704346727091491886279234449065414164102789411001476039654238"],["23365645877808462573898591271086521217717160598042443281102941997563288620709","14025072221288934341593475403499850653841007188609166707878687183126529338039"],["16412021496938977619052472641475667150830561149369201047022382504650961541339","2188083195576685519688011218491948321943872451861845952824007956756481879241"],["13050603219232061620202071832446068682018327761784242051674890311215446430873","6979419320919413178640394944636159535894944000711857425674800655155572045433"],["6324989948650189497314660604340950071955902253141324430545186087359149319315","21318145340586775230293627607306951950155413206146315698332503268284133924741"],["24865793344131686982013706091693937814709788445012211313507836065243081169087","12364380487398898073252319879612561856665944823762934826230623379721048099483"],["17931188495007802388121433800229554744909024955404288184998521868541579759141","4533881109242711988560829719046327626720668880836934115532026263062685979803"],["26027536634132331847189576397964744494816845059950241167968169249423219928403","18849982449900226677645649204276540878359535498359777972100037779708715447247"],["8789538227194677590337096236026623509369188529795796816129435562152978766338","28933704025854406995087728423727056503993511013339040644783465337056650905592"],["9425408540704542805010147150810305112971079137154646259968792864785568304383","20905647569025034790336883293805400501468570755839432959250350689574677780280"],["6480220069913013462195171459295356510193210684084321977523814047123509142898","6928181301532394845045477915877786272878120682212648258442515322630366082982"],["438087450134539021877563803526326802927714356800702763340056051838019092637","21109421445199774864922809488534899666737320457583706433185788185180174668258"],["16847885191418125421744679270829702430408295938716769590165505064664052689205","19805973269016294780494874441476813587774252497017841276719591917464693291015"],["18088163180759404392587172416349049530427764535745293279087340919996520275249","19793866421452678932067972532200365795141867779982028954023885819386321074011"],["5510985007840265996047039103433513981624715429798638007643648406420902494302","7162978510614478214319708277742739236986807944994484622668844987575102056477"],["7749281443107749533673344536217981585385120491688854731971252214117876206267","22619645460450649528587285627626041884688366932725398886353955237763290661234"],["28884824618556898920274567737082650116924102595601743288172355022949474726671","17180325105143476408614998950520865019214282707141082048523150773551697936834"],["22995370332806330324654558201446935979618684622665264082270458242632946827268","24480004580432945339470555765851362604340798434636490399716888198108170724668"],["26237780567734479574557894519350518940626074795256441223255026872958071289952","24294729364603622565810051543900678582707363677476312090943744718538354234903"],["27544064901253047564944351116777866907341188368164504028391520355044943803510","20403011184280324348075115820881671760031651669576927179488642836634561073379"],["19678438520114460677509323978095227628302116705839874323676275848837805270390","26775651364222626710213270449307418603347753718934112191428252303488973409143"],["12881467430431438362674255208941536792406559817722450874261557221207102322715","15151564406057475564273758971136972287212837536705151597310564713239541509927"],["9548097160942131347886205017508278680431033976063974652518113163532750886693","16320922951376556992833423020371028734014715796093641224619763929206447254980"],["22070350612784531003787196846602464072282722929015934355112345801504552805829","5627424402796678036962859607078904842624873272927074283158102927341638493079"],["1064038550207307331272794313297201602299714458988836840509458767212253863013","24381802630873917594579118087363054291308666141834647093808283952023139233567"],["5675915624796021318310638301993511000345251979466993451200167173883052292","19009861778700907142440913704696328403148814895436501601014458779533569350652"],["16613502104558795644531113212673694840783629566600332409097293515533370611637","25069019260946851310636311786141348725773687709289238087303581486807120474813"],["518710805420800165964300783347567777219887566935020382661306094503252437677","28682533364613192903235309447192446152570988530882968068710141253247327034664"],["6272801125987884635344531661045021203590846252707076755430188811127787631821","5005128087805962922593050110701933469816502632820412397339935607623521241971"],["536815743873774772463382506934642989515777185327377106228251740162523840276","27504794451954428155435847347628081787106727026726045210152667381932107771670"],["7925108575961370417152868197381611537291615066598671814113193477845683490996","28279122950881819845125939711410421939929736292619881208667129027999629518547"],["3827567896200010395874633689141033407589004859552455603560937413656201439715","25862408010868757702737920110294074523189733652313881622746719935769390574712"],["28191903695343381632820670214915657933135118980077815083519303951024527940815","24307486426126833027031759145894042254910314473708491170870798270324074574094"],["20548491451429759297565771186945678113040828159421707061768800006963137381058","15248518702904062387972519642690813602830812607898477973318258616843476116077"],["27477537364954876616204580212543708750208099553553948411551817421060022038500","6096230557083306092919459489925842550931907103166632043534942887673697887168"],["9572197226935385563271734922050631514890268816339739754516473273459817043644","12718230646586714312481879620489069539042611970968728928241500666175491288540"],["38639606921059522631021603511314167055844232465899350963235042862448181004","6215279075292091429816479432561773334659526282700019438837424360251408852728"],["1351537459382260205730492221174564554402930725425999115104059055946877992407","8315644543549585974376353260845001797779555235226571836766802456337386482714"],["5359020260108783281850332661191706431242093892581165981594186540055412319594","25317708274742663257603929833419910535256718261697830607940671914574150727189"],["11372085746832706790194585874817239885483585350823664242603693907979710611463","21077994684585431687530173607376279864672864508121369131532757343566951681786"],["25194859045567375133876185694185943526485788111059359886539916572046787517897","18976773431902588600048400047372792926059458255813763444129323192667668819651"],["21557341983671253985337202938326263348540238897048477715687418448462879033207","15611350442737151055999500916931420970157239596876184765520420288680840118398"],["24407117907996962734672451202977831635548938182499256463170195377743175919324","13161914097808200770612785655302123817992689807704156830163544500375004669618"],["16726810591713042598803024146170595905416962982483663841114740118895707519544","11809251689959228204366702319644888848349882602784621595261157232829675714430"],["28208299886699726782979260666265584451767213844617655975638271194834575819134","12338870165286711024412905546812523567963780932564790283088525500198331676602"],["11138205102928257676147743896809341511116027216153438105580616321792273118171","20642311938060782369694864872554412617103290494459243149842016549416180611083"],["21050527298820894264208871772571585650829969670127826599146706055774124066423","7700335750670595991388250706419296767631042762363318304407438216650885859826"],["17735869788175469756444155041035595221977206971334791078563326255811306279819","23932215416638382210275500466748874833995781409131075623005515976178599232481"],["86790933272998925165862688148015400149007751720620258405790909792256162101","27934210763571512339540616135964608527214631930669269262100551327779890018777"],["27008766818668022613680943163568670318885290580666138224666590761663113955691","19873186134224407455821093162915344427111939772532358547673181724269613781768"],["5675216832592043312751617445838417807123481610892652011524673935336003535875","13372193766457371836768281391213744320442867015185038276217429359052472098611"],["20029054355573889070533327482381353165505281281376184439664378334930896636352","1135347170458907815135263973634365447044001010584935907657449375636829202571"],["16520801992140970654951501558306974422272686439840732514731594487571486240878","18786524207005409292479970078048182633561582462105595240748870364195845573562"],["15658436553634283040454257076985980367955224672175365455546580984802521337976","18949812126474340660288944131277050380174332221668258927847209200187727377819"],["76525662626461178754259749283289395002818218240161987753593756162531556502","1825363280988218142490342774168713221479765727642143550589259964187262780915"],["24557929810888227574624931659380592940943761752772372447488984043076097267878","11800100743779731561898352556758893043058372533945736728890530247113966649667"],["11760278004052303166424650646391228466827441914288338172599926957978734206727","1440188693559413082907347476612887240846977372333967110007051438185974727515"],["16433838062991383022349620073722604217809570053533281348869468446749345738458","8069362264215099378851903725953533954946984775121701382217978262989756430470"],["22727247490064508683140823708013996012732906807322216568113358667661799862501","16266484141452703632279004175007904601004956626904300706145270554248753597158"],["15475552249255381131805741913426102265902949042345913665141225520408447044503","20345328644760427622596195746971491805438082853665373944288743609008861396473"],["22744709331383294760266250108861414055491095783061662132935580832333546767442","4708595349385205875248004512705198315528780250692240061626777127691620484456"],["6083736751056556441578831014718012307049232105477690483761423089891571516641","6109444606812539232861042920054606902832017584779595114059890446380810546100"],["106091722942066696338657950230253724328407392797410559859389254190356961478","9576006888301400401808793220456684513195445050898927542183941042774470132809"],["20681969087248922157697373832071506079668206980283937863448360496738069109303","11397692001022013902855754990222876580436363875477914282057222135171205798551"],["24636506925590074138919486967176158541438931591227541546526396197991146863127","13673394711360837745030470504382176728256974688781606338350772397627715194476"],["26547362139087773799089645737951106776903518186359259472384792123456419443274","20391265889528009892133684093923543729450271512674293572421816558193422313787"],["13572242439640540783944847708483354004651847170614700166238171089982782014987","16966240873278270563568127743569060112604479985691490371199586036585260014150"],["1394523155426623716188788385588495580127927166064045908799335716908954195190","16413361108262214594609922428274303963473364341911383765958883439763144640072"],["8111938048455079050695578893388553531709626861611071174587172572568128789550","3408401034994693499399892853460418050096390902153345375810193613337777721256"],["5942192663877066045489104884120240803096378954111088044481941589822249781725","13253102449719853987963805008793474623333239736706229820073672525515245585038"],["26431440665927572133228863493154941789308162453148209939148693339368269816156","27735827742575463630471736485942126058427222130381944155285103136067988370478"],["7873587633819954916372570098003168619971809861132378309462715325135762368973","19246662877741242108479611395596542275169634024429131275362376616397634274632"],["2354727436744815832425242347221985593015311186564367662227548709975199345551","27876840975007214919708045178514704862312644634118233617771776026304020746231"],["24552349874699636558446699085304013941663085016284536327927941289838247338954","8283856719747203673456466648985084764031742807102750567010841887369538090671"],["22945680445821901841947848167595707233447202025091505432745813064812929285517","4393558804303619727348112257486767628813497020715831216582555305439682539945"],["10946538554627204289049161391280118255959452909088274262575798005880450302374","15587679102929013716838981103931227882184657931712593556972857077083228729247"],["9093514926376173216875770378359592773898847252938690245380261214912682819467","809501513815856530591886992045855970536167300943942373017586698311060301325"],["2576872129643154538284480057491129143824183229052356024810258336721750935952","2377146868026576693467278234935710909488050677946332708336851816212730507080"],["22220531824906920755867894020465235685452533622299931956321572784827594848928","488773477708565133207002226286970376668668457676616713217402212993460548419"],["25071871453964913116729329985057834611714051670583809456044029327869881082487","193564062142164083743934282169832024485135690720383253697561009244652848343"],["2459823753902493894352141803519273701759881189355080948317581412827266240821","28027141515352372406236117265327771299464576547776226643623210471889234891349"],["2793877972907653293788102835155643904525151185076776523400091114261977625291","5234170409272064861136606539183256220087302518254775354434359282927972560896"],["8378838196500681209352071423805950849891885670866890720293214590013087628356","21830184923946103324491628901951658475809848317763211285227874791367726480170"],["13073277205300725601743838264277582015400836858756779552005663015351558956334","795461019161875749133992961737585558893558514300894176387178282769081950586"],["15333467632501958780834137556111465278101430156343754798120182425298991933459","13761900508440325694324351598170389021447385544232230804638150808354121259409"],["27301867643152469170542882037209898737883778681162408382982671997238545321488","3290050759079765030963643783147435578974277791544021779920743084957675013291"],["12964108293764005587899936774131653654742289323796374072013825547937429401450","26436391543477292745958048156187128218452545097257924590845818301823733131452"],["22498681378354634154531176973977794996816999260533651645980211795646618470101","11664602980104062559031913702521999309164311784609147638911090166879198536798"],["15263016889350520834778117649714490659907960627982999208746565783393021610362","5548979377344522838675449414698435720458277015402900445049933779472351879925"],["27169178891439096285507074951483593438366231937262719140536858861708926186863","5965824826470724617165377037997521088384176357248397709623609275417472206560"],["24863983451502166835446510397003845858500324858344996396359267912973846934133","18074130381625108821266228683830820557424623511562948839911664821168728726348"],["7868371674908177915672192719784787274847253108822248580292389702727253823178","9829736926680651452110466151140784844422226101472779404256710165811703606430"],["18251975395115921647668472126098802697014310588463345133918321312144677079406","6217300216945224725122064626175362317506024454598730415930107838005164023578"],["10005012673086497802954059687156180701886488394919741542046264919623907467008","16854436204751287275173896773892431142457730897958909728619981143006838835518"],["14744578526306984218003824759997157549523334705101284154589071750192243808479","9652103211410205092607103351576327472048349732332532443177789714436180667023"],["24041590712302513003405452503576315075339183992526545932006150468212767031088","13271651564329417894873273193468049652160903901373936972343540794912950400144"],["3159526797595205398737563366957015888659994595104161603056033524865123976938","23126450221983652243019363305614450655946652138273245808238936170053835121108"],["25018525882898463320959370220567038409246079338050877222521957165316479950397","2542944383834175646261699400429078242696456449794819937000617251978564939100"],["26244580875443332895518958209665622012763144183481253661290357160096050724367","21781848372831513358952670549096313325071021005274939207067334065058620330426"],["9351470892918523546049413602909534735333742292292235342703919876860330447632","18984198694564505030577668740827447736809931591384924408049884624939788517406"],["24554102356378174719609600712659821986116202991841471053339898159947056197204","2675131698665941279167602536933495140918515696544147050339109627303379013409"],["6179858222915182445403999385368460094936602705443184908917607744118493815442","6126880933322633103186373668373621855485730551445035101771518394466738729944"],["20374028338734923220800213453492843430369307674768894430676526690121113846984","15857618937007197117384500791046895156009451099132915631208403694079003920131"],["11561786461445011983090692163139037884318070053476514303985185446511884237779","23014929539466860584960110940466650313436374088326165022558233042115074009948"],["21393213949986440624541470590214428436225228525345658476335816961250102356665","28402188003242862920565867726212009745746852045316027166007352721248730287466"],["13113952454114742430320810005864789549353008473277846966743994275768927977716","16230330790849750137671447963341695642547298970551573236225044241818727518250"],["5042075008479699537251823600128473083602302344218300627159657584865236614526","6095391108833336268395684429113345589137883051378802678436280477395139279067"],["18414265574720746088415667052035508354299979565940894048539230063137133136576","13455449474577623466899873798139486198958211654531285078377272329534735661603"],["8156185131632801573565611269488261101989436506407195004186267605765760553781","19161098991387462536733781883424522730895535942473250990288842413597152088113"],["25056684679622611221007028560580922785601603478816631486820756330155987749057","21667438621204483200764653862771341811722125396981161878410897146510774443030"],["8741732935360325120007107767066242988802732012446910567818042036996502194526","6490350549493433688856765378809962587422065273245583186762851934353114196793"],["28070584578537538618616561661384040970574083498996139719113827238643436060337","17675704614234532392784148055498860466772402479506704903242132314279584484063"],["3916351169035778727564948939578215425188834543438963937674395538588308941223","22354407986705742970567668267082218090820249576712885025512134156189480562414"],["17985516376327816349470651352420986813681899870188927607551041963124234759977","14812867154641847613478988584660817174763836066554552468849710902804217492315"],["12720588020976708093351150326282558876094511089781526474357456543559801264226","25578272883105539540354343888971274090901298322298829193003587014835034281607"],["1236774143616775152638447642357513354639107372758161345546164247536756333566","10213157642556398731519634406835803989186725032833339995939886342643080740700"],["19653931027651172407709907436902423202594921336455094750012039506691164264996","10730821125183102695332377471298500434172191551929359431846959811807920128581"],["27778843828039884768695230595704217374580797505332300073565848217974758248109","7671269204340907319238441115042026112353749636202750591336543098088449961424"],["14522469591762492987371891834806958399396506096147937132349278694645084169751","2777585785769949985703442120495047468609804363711200145066444487282209370471"],["11618927926466449093779479369481271837759258467467398145811445012502721628704","26365920192725118974754017249900720610106357590106931134138013686736231854598"],["18033192760395543585268304296868899733429124534506140328637195364327735322741","4663819606313193160249194834500533062614904132651718951208808702406794491322"],["20503434195330538299220235821640802193965514984549409633858389490339619411536","19683991066630788472807095471373959715784479703173115143376639375240398153496"],["27542591730232094470284915733984455218336031594734732458108650899368610995692","26470645803646850839498151255434442590128726969144063638605470549707315624086"],["498731862649983030655354817180031243241258521604664542102283906286608426535","27663964580334924157251683898740746668977243902586938507706809274711974513181"],["27699168368024060277645182334597868103730201874761293949775899516471924319416","21597632966747232701593859247414739582008127779940673997634636919973254083312"],["2902500452366093056725276668972728708086701184646574422486800274985691783981","7244284885808097480137438726728433150913697745694424517750743901947200943768"],["26234282179052560358333499897017353368827886625419512841207278536664907994659","13636108687875092845435150587519989738588467368811700902346256568918169698853"],["2624137216520617148460184725245950486251309577434548916549760431351867122938","24455364763462097913234161558417547832802092031954540645299897473503582045210"],["8051983945460888385794968039650175599886582555330278707876234154306409630629","9524244322638894018554718386181151506179943694268562483438289979628554098408"],["16792623889873637969801187896762435167447194648722986804205850985142798965794","25551057802715787867110341929367622339583833507927705046584858022141146067717"],["24300909422015115302926311945003882658367551819913985630074255473776385748427","13339468951066473455766942897134521754098213129127393275783766867339644553685"],["1033793858720659140405169080375954932377207506370504895006516291910424051905","15658741166551429437062080625461820226827358971893570647994788754782286040932"],["4086263650697010422678275543014254285574726350905453315087928434315867130031","28785193728943890628243382718801000382632785181421308520446457016462412497599"],["11765495367709509364256136606942052316882923983419611142542988725200221824694","24877183239254714961647676547046235185469583659253350004926480917587990173387"],["23720328567480331644315125314836152081080859918848950867116024443322124165875","17157909528317163566800159262877513334395781883432156722794540686749562703675"],["4783219256511919477285668562287019367518261428155205537074417186784227849875","7380196440717019205390089192901423310175318249152434675148268243222521172048"],["22119275211028909844421691998734194622250183968380362873383099447074991137705","1949981280858940391625058633397989149791669332034706599631853850117095907986"],["15541014842113218969791521604400978658516103244370399809196217229574616145387","3321332219372599898617096745192107361822257920245144958455624400640524255775"],["17097402999070271777766923382948680916729005354778626596553197303021200035684","23406551761540626027800593970581472218474405400584817562967296478728973416569"],["19769958437505584056981835918169259188896848026416005119026388378445344175628","3419813915649259137663968133959222397223568247557587753667276200386800681081"],["28190850478935036882617460099350056554439403873999094503357080620933136078668","15131771343870340865858322751785585835738318170289941126400294552955504959119"],["12278017460422526972727428217604548977469024477411709893812667346798072385164","24389751443108023241330645818099342010161307579667285193947091488290833781836"],["16659567456426041138540046475822035792256600754313285454577395375839336072080","3957085948448932757330939719287587519853718403288321570090764129354107902552"],["13307467659434527150750137002177152172021445072808882923540006183433831350128","311812879145352461903945148520995522920964687782061772717036890163028633665"],["8894752104306946151384150985459140856231422179778203452530821037470534264007","941577013922796705989185537564885665760389481760645258554825663941277002420"],["22852430437007776657572053384530155814685749947371956897578507537548032394976","4224849074511701785514680677134512234843242348628425070114230396020827031721"],["21950475317944719363353499692644578093566633951039159477921759761505212437773","20310044107054678785181994860052347546618326793690724840520630022319844266078"],["3496427246651810223069624337147894824107157057491374313059773236374599686113","10233643494547706291395343398237470898197816755606501195303149845597229292770"],["23841262296948340147748633764595789507302213832811159924245567727528281228017","20393160691381590980659093904249299932484440139711152433965428814790696496884"],["23809248800371951200607202902081027001273303752903269850197012304896573591387","19871855335643862595752821919384256034501239555346357964309228285902705291920"],["28748325090610096400363414178942710274835956121519004177664842714223913644483","27683339612703950514342866092820193233655678969164151511379661816691122088721"],["27152027628554413803622661966349563650521299003520832745789063025478745855516","6477260788310193366011692692131166079320291987889728732243103742244913425554"],["21642633381429371536882744595504010466815747344239575519203597445065283408972","1257184482660542807779355375088782542037975863760129853709624082463570597194"],["24094970253883490203814519738118991392252455309521466650728735478826698086386","3533168328813757449998259807601052471385345472812528281729640624582801043029"],["8916197429710469489843529176124172203873835894576669700388009972004458249866","11147532815215165623275737737424979953037189853508953415583260747698388733691"],["11069671297135045440323585592045122922767721976307974733203777041356291369537","15681204484591664875437504464030411150344152981215920181067113879751438119839"],["8973165411068775494612227132399425731992277609654963969494068842227750663346","25851808910538626168960973601742515479454728551013899803574621807086767046914"],["1421428016829862325253634376796591260206956249907568799339371258104592846177","18347143299427361836386795871711626359982459290689272470767808822330374312942"],["15619985195105692100903500796324061563950824141377198272242567454068386067789","5152991442164731382826046155500352999569107143484003184765350494030656778101"],["14611185873064355519632301505246005519314537948021727565183370129453024827004","27429724122100087436722325572231787456807592368638283751345938005081415257811"],["3308254192429296017261846687547448358970576390679924601936738224717571819725","26292821009538813280108917907248276339355431411524401334898201011529939271099"],["2928352273798895248067534410693265675787192514555702499131246855813992342224","14495014549571195388780491708492652027299853844822909194419873838939417768004"],["10039160721899461528898249602574989279296238593076602733809713105472907907422","6291532245819679966088096434155043161684203190057029893719705058047230123397"],["9353439402529252046962547809220993862869900892359929323460582257503652272092","17959025065579211808485325122024985695630199941189410424122234298725390634829"],["3236646798726790596263064467573918426247386910249872683421545956238441046861","8311237643730013655327084282093386019128922275909287720824449198783653976946"],["281025522170470095268099095394764401084816643575821446820462252245486230649","15341066955328375257566128629394686903278922977617815700193187219733031472842"],["10218536207416578580989177308429378100696864134657750710570011690417555837352","15023313403757516977483718762660413798004795271109475710055988210351816471052"],["13407314461790010948959940194984005132274194067994490868905184945984829918213","9848831014732657687761198064611313683873221431904517294112115520794411730020"],["28470328464526514235019605724732854122552150877237991231399974882793364787862","28264786737054017891445209232947033104076639687290335521436950932852941272094"],["10493437497387428489695960321059234157016621546556666927083836097357524117302","7321951529993811019163967775334884330295417626063686326448298915836173242359"],["7685785987982338206066614403868707175376570106411189860456053216537812371405","5801272613255847462340338431614807870292207687280226194877624786821559700225"],["28304462945756145726424553307035218556348779452138235083541385348902640488386","1993721844318536746309487158707997635631676350001083907873224660439254809532"],["11261871464396321986871084242600424526703505168349085982464325454317732039281","13942905149799014802582692819526476745847569639151205877781833294701279427480"],["9211404447736260191015878304495420281821077629309410884687207722919634555665","7010291491373195023807008940826180938125344382107963418337818637250649331102"],["20613908807258519186449126661133331865943495263240709404645642765976707560642","20378011540128452170876922663096455433479082131120115800430977916841429682997"],["1334866335347236029578917232596982537184524056262926659783409367609901884677","21050614060801892042446722822151061720615932397178257891283628468296912024520"],["20526075475042218639508956909430239045527315296115106789077668848316454425773","1369806016913307745839903176111952335936213763139345341139107276853660225014"],["5586231651240419186750857717205421250391723920964413805169529016280489231681","3624443149940080372499485987866295199955410829518448623029650454983189620738"],["10479197002665896251425706935389739483864659823080781318356163533522192601588","11603596550430020555248777127721929013430637208301423584244418829541982353220"],["19507097370437016662228615430856019869338790627769134102888422574970889040299","1713770994662666394003506937983074667034204953075802963306340719044674999041"],["24752896781008858867154230521015445898030636665482356313337158254967396011266","24823860626726984306116191603716275259772679519871885761535064709250502579886"],["28670649693511841652761024407396764839189668330168213830416983631186658829804","23068223068408080812732475382624131504975513055305757546887227213456332599192"],["6885814459050917785131657339489775814412120521076776610094101807541220290809","26468719733145287272066001614674142482053979929841621133230872171084864843144"],["9907860280263347233845031216684228517772604314312738716016847896395892697630","4852404246801103217049922047937334852951625941185035626320602916475758020450"],["3557544916211204335153847625366396292126124046835600413527611420287012610413","10539903386623777069519678117311620659327997144377143036414692768855955625513"],["4162451274564739499727373869997020112382263403856753061501286992469547309665","5521894693741851419982903452926706927648744531525611045785171322562649631330"],["13258503343802442984046396166010201600339840666460428851172177662201117083522","25092018901779267947406935953965685980066073113378989236763664837223399910197"],["7157053329145381676645812914825722680298871945515672678343560868210070935698","15012074193630810838566919716577088550182287584632447962086669424580244569094"],["27819035780856175127907255772387329717627701960313717361389569043830122351759","28447394030099005999317280518469851058499931101196621626874742555634110579122"],["10343452011267969687427298494335870542003005317110925598798427581948290879927","11856299602465215120864745966441854764696845642880481001013340934992072490054"],["10993050064644008327463082740329286622646807859098764328155740872082260780570","9590209572322931568154811635899644638045105482532766448277768957369368370275"],["7960003474100973031258267495075214948612820652383872995612762594386629241689","15006673416248704798808151651891758588342863879085809543366845923274890603598"],["11783425939349671762059060760095855654388947575686157803600296836293319180788","1191598931625743127238408189427716303580484938588807443140508799311298252032"],["23613148315240909698095484911781490664544660325857537192551422759803518964458","2526184544311246871645009490998092527045393184504391477912413526707759772190"],["21888923992547953730906769544460656073357593198628472000999312996119376723511","25055115646602249439849084793331060906736858662055937505399625022639510826848"],["15046415208788736849607762221261377310988903375511481007028589388800769525222","1273407087750120046370096677580570405536618914676176455831830271902987620269"],["24797750819988769480644153361121045769731174969861221116430681080525211197679","2756175042221902350732837728858850474858234897707951356519922195775263578381"],["13910164622154600710677036661068638715006445573929149117150861256723686019899","12942638094169512575856594121419214558303892672823841776861307200477161211031"],["25882529148823871102746177882904926255152494457831990052219460479521942619760","26584653764847428844521750496705997698106076029542585177327110192452853464504"],["11358273480047972148630029581145804998940575411611160461238439916474195888156","10712883450232646634797259982805801762141188469292437366294361300436842212812"],["16154585791069720519042952711309996933280723290088060714542358964894338306926","22074642532448564703802227076674183323622873382718136516392301097602081558963"],["21154237109765901311305424226846783108754242477269608124155652097466405863403","1310217541629834754875552320563532794609694883702975821869646468350672472915"],["6178531108285203682121029959912008399661366608804916850918901939699826004653","2443697621970672305293035850949674311445321725261877521929332964853521618485"],["19354633580485375299442283651526050898911538922948343030229907959881037606754","832280864042668455332549446308199847320428308500685677154506413146424970799"],["20973050250079492829059698218937932796544993829626084015149091739573391396240","7143052676263396430097614157498964190044269367623912261652356700978085694519"],["8870657989070834445862338331614178340702332273977051675906205735708678013258","4738486830380457729736976419344731487190791507101900284916754712172383441546"],["22239392061053364187389120727200377347341678810617458267068703658848310401670","11733349041700458445970607253728843747036593890289879870018038836136940989805"],["3519445350954671015579784654526844064277276294883580597201180492596756559460","14792464653685289645233104872727067783914971651206468751498080261314688902247"],["13824485790839769642646549526079338042784089190697187056403907761027936514478","7807894075622774538193836702960453056834219648163329079322986131237210694277"],["6603112010562014161367304271044393623621206640500636366381052341055257049102","23694715287642584003861072632027712449456791941097529277899827074916194821568"],["15628986956667493223132497083215568993582011103910033014491233655216787497196","9337336826169211430636392462377611585234910113434032738005634523030833842336"],["18544478261198452236960881489624555821177794962539394016419729453576810972489","20736529794518796688342750204608243730542850745884867444316752591408587786742"],["4347050339359158101122221081161580199592238222454836018610989136173513604735","6481268361421532935087633916457941526108800126763357627354372197873332247529"],["24099228391549346452053985408342251249498429435849273289609836259941008944565","16976884503849074434400452285861478078607052559464463448577066023028345019686"],["1150723884423299856923539339292101525185202213567869759706986157250375760443","26282960198926933031448991916348879803748699604793109754997735649700419845132"],["22603825920122004528963570192261752714752360450126215531713218033004201196517","8920607147434888966572703972569699202079009833018134101605574936392075308182"],["8223228129427457557688422965419880831450401121582965867400905357612790061036","6292894772542868127241756631826718152316599520899644197210196758324613531062"],["19496389982673673190339801329255959967443911499083813746526494512441791812545","18292762026649232731769571729122236940833042758785991252333819161829907735410"],["27864002796851636217762499551910620057302506462106132049720688061695990586504","23282663408764763929224923636566396545092381577973482550410034652586166051388"],["1211558346007488766541265191620694838343416307676668428351886845927896164428","24656206448184042462361471655724980289198756355809275625582551263517736595116"],["14322523812508647752577919269569303173620994180369273692678069262934587802637","17516251617544087821736463022213592015802217189460510343847936485406818979245"],["26759497267116243803849750483535913873916928022811037967520840689164036047495","27359721573136278232748827241050861583136021765840237993651087699495624158250"],["18997033671583776631540393030821210218713089187415428526086028220902900159888","26974319921148558571754918736705082730535504729015338165384158564071094856814"],["6662116997244849449205081603237683651107251320273277501007765355457221016879","7378317920961253467833125390688451298139094534233484498752366420526293811171"],["2436075876465067343871893144177146189922692304105109179021595658904779784176","1433578435057203135093091154398961836032907331918387222194523975438342047748"],["64057680579370394901825658012077096962086416200703890443684877931378912454","6797483367090752334833413676642652465936492053276845758796145573903053690618"],["11997496875517241002654587303360304163676180939667454067950173683144561026801","1679262994661420592132729190322312141794428802062549345397329836128755567753"],["4756336987255046217423941445502776429058124715813163464695640688445546312312","2421158801128764335374664799532198434945632988196076087824080529419693967675"],["22666567017986024729549763524147614153201598915504263720332900300294565791703","24174156804537868563857791164900585528602045089688930344245492543478918895153"],["7329184488533904696641197485005484301698165909411307514852916202079894043211","12688418682071999912861813950350611602899174109388179061620358767040927813521"],["14682851137027101712064995077922672037362600133148982332135870323211315005073","3971484783273979084781255109580734799206718914117999652189811268769997706075"],["18231033095197728716852862471984426142701993302231281186579693691420696461801","26642263753935213828897025956357744520121920246406207617431006701980051783371"],["4058323886468364059136923076626359412356237216567030642430323610845926049005","3754785407658069993300219970805250591991594780104200968312259253093313330237"],["16651724533064391238959809839445070131755120300100607967233979830880418289856","642673088196390967073182155390127574322655595818390626429338432515245608083"],["14121407577599774951178583817634336592674448344066259410615403917469192777341","27368439444314849710620873129174743082815179693769020724231538909761706494127"],["14339156877046733119959203358924644278929949207153506722422587307697733943619","8604313499738333817864680672460464457278721007403767964424440844701472284926"],["12770422547141508619294426812476681594871738271289286029396735783400753558469","1745086545700438757861238958290987369439847871514430126247173653108227076718"],["11441611605031215552342970592881926401719182641321646217402491770906080522110","11588504909889188211817956996988304605260696575544051382437769674889769870599"],["26237726329353254417086021975640025265153982466380665690314514282399911546979","10551653744111245079255435367291696313307313009669724983872775227076269974428"],["24363655168892751165480458918288174318434495831793413419257036599758757252467","14291119220840022094761055732515834285480947082042949612187384761030852098070"],["9344448425429928290967197418405031156940633117571122911016252194439130012542","3197189113504455529539600993383418948029830106781100982936235654546981272174"],["15389110879864274011774202083498985996224075535046584769299805483233425164063","24535165061444262644843300890217780297513721490336635192704763594236646248601"],["588803537185780551172981891944547089418933470789738605127940479007907249535","20391752058311777059937908283428413307153405980749320634548954501976358824121"],["26745485739677736413774838842392628613248036434195420116459551058944475621029","11016137336383083770969533743179932707618512777476742801109641679414202548558"],["20871506811630096715569526424217830047498490066008881175790992769080648541111","16684242286455223580633495431619236582075527232530807406331458819119823914605"],["23372510170074231160815013053526017695345775137661852068278446410213918408379","27325849845194330398790503841090598065957767393107472988289141503566613402477"],["22975177906222078584721766151618656381198334811602169197131576748574804736954","3656560430887920446130602611296187599278295264493333973766598383674149532762"],["27662377003221747691631527703031993648049513324658784970655542089813839586995","27401167451228421870452161893691743209913815466896077297649276164576827850892"],["1959779764387015228088058266164543278075507470362720755238914101997979916630","16955281623728391556880487831454754164552383105445284057604944993797507373472"],["18702241144853466993079177954769751845050635670396472367160854249552723409329","3760551010870730408094537638363290394307712450655645974750313423031090916242"],["11991093946087070101339903304465856158733582246881717980330383069969904083193","7069983061243072380469342354204159350269522304578631900545341690718190206170"],["17476846458397598886361983805252617509934675572275645354426698340323438872952","23587666915969975542091792930107880562137865738654712741590597984605698853854"],["1615961325595556932892333332731841826958423903534599604746386601789072056707","13933425020991851391411885221889410643606862092873353990792228977874891550428"],["12926803260259567764048903955027680815997946242200761962972652875784735639831","2080452012452560363742808668475796440983990953199716124381475504171466445300"],["14122103780405603787901010703400964293242595233004861996041109789710952151591","19169516749354554695873657437793548585531401213122307393584344874380459874015"],["10452515453248264459717620831138335812423960264179446964093811305606451271475","4196592206196472600346075255945255151283893426917750163116201176513521768361"],["22703347464683007518512126098545483329731667985906070460235796114379220560033","25339826292334674958319268995380498409244864211790702632930685677922227898753"],["18980068092868008759677182202871175910082557181987401361249411438693867995802","25816267271408280229093044892872492206949702573079029309762897693038243568169"],["8577286828301073127754285352854780836104038500618812754560998743228713434418","15868676530169036951027623699117405404666462562965115074393162789401441986022"],["15840780296521713664577247805121332828724494131303321532152769102265060204667","23310328015154607147961336071813377452475769636016969130012270993627001707765"],["28177892417618740884984519989060107699883279387316008705784327198977216504","15767811003045265690548772943878108077282490368600498860991076748214642301051"],["16904717951588645404837106224518689266848075175179110631144139334427232341420","9343824382611692953748448384503199212355957507016441621150742643869617345912"],["26183923514099250624357619159743193849793221459147372036752874407905802441410","15869923613979322058759185474755596157797470224936724658125908105094468697125"],["19320063032790653748841583101879307851282538612699592583031449858698474127593","16543597661972209397959876605790354881959519164247764070740163801851294231752"],["11889930995290538566120140463164786466250652107491818982358925838933114551332","4464610200878506973739560373371338963746696600146522127522465132764002119953"],["962252786734917885684559417712262695624935450766837959257322503809150900412","5388578013239662817024659735057609727075002500369096481995820921860041699785"],["4625337892908553568196286368744082387000967401523930809557076030755655484601","1894808550616137119850463836527420257980180932323888860155558930154900167985"],["4515751863934564478723145498058696015485890544808047763376581969649700164392","11244870211330491987812361011891120015073024530053279796057177596311241693511"],["5724329395469072268271435759056704244904606253523740616351648846389756126973","15036494333655066900718857379318793925859736010643016003281723793729355959796"],["23391894411063538751605620857525789647643017876718475622753944953241828823686","24778827466347460316401877278970113125054561090080890674720564230307449506446"],["17164361406228284183650051739749620764989021275180422529231352480600307450046","12739169776979264427048846614854369730146349306344180907611395502558623239440"],["1209310692559356249073800683355517003989429483155492308410722015940239874879","5149122977009538645957338851362502788191417256770655717586682710533346108349"],["16960076468426532578565471921749738828916633898696266118647463331423770666998","20130260152976181095105800964404743310077711638328745127469556347234591981236"],["1111886594096966967679407472214123145480451636877071987103712600460605878628","25779288301875763554938144061154466580209473010648656015946300724412351767433"],["24596056893440593004529427275342703087977911351031156111439607482832895359150","11346113716542890112833223857285164037558092914916053428871054625418404564769"],["8309661652872170075673765877316535737174231428002911064642334484254472553633","4472839403258472699511741944251263487035414697367763479077080028124247184192"],["25583699630351741579409619335765545928619295567014918390955773627977138917475","10419055535318848931139096601077013591544956167113681855175371520043008349173"],["12506736723277428575552944344139795102560798134624386552838396064718910171233","24721122468622152735225729058375836634328765327037976823359563666762330486577"],["13237139713861862746336391888597934164381710313550833992967531868400189873562","25836829473185539880852381960702755930130353518849567772845833533640991156681"],["7696337981804834083313466345524334443856719250278848922542501657114093054796","2776984551064985427570142674403673407450054228482438254130787140966604323766"],["846065886453505485004529899728545257297507881539742604572214431302562944586","13885922974899748501187885228131438749884994060755980590252272848871696527756"],["15658616429407248961933683076135504946087846557545520692033114160264373266421","24570026117056673558340800676544835982986723892832090182897667615872208717802"],["2769736403757826718304349965593417124988657375235539715788718239805235916640","7055946912969039597050033780115973497960093192577412766419964188572053147598"],["17070133940111384366298676251090591661617121869411443635364612479850172028628","25357986102236188030908824759256201187520115048049589082533711888096494198483"],["7552735792179001646846469427153258840704299948716262046206131674085727023525","25716310097768509665630475236461490029876987781050141030569999550490525717445"],["20316117645466783067018627521940913343100950622431784597824350019127897522630","14111229626689235354005887402189407721172471039597651285891891679777599441152"],["24226037901914262494408597893386023457497692136659060516831698184910044403728","17337360468426918429801128424721230491617628242432004297706141539810352677406"],["8037161707128058526002037945839629989108142512442279090861076407092763946022","27726424433727344682070720557888498760864324422839945630981487275146066101332"],["4157467469964794435471303524159079338213134501459313034721359877894426870305","19840722401982712252440407857820687848705526163191384599961934865329758839762"],["7992169087844421683474939094817630884808845734590294904065206675788580219015","17797464426639591290633069295292029340550437449378469966074116694345516085652"],["13540642580001268084482868406607850945101465958686023987256958462035228815524","5615922522952057195223303290217241690360819570973760205046249305286273240232"],["15519407651761814248356738895702766717437809632978597397402752679368386519751","26811551648679071774650054675660137125959402287574133017336397838223354603039"],["2461190238355072596004440075728458760603174107005083988644602549803556912765","27465845326488463173233693514735742320545701274159122195379697925637081310889"],["25680622555474927198746085051811687206825088788425608812198530571968092992010","2018216783207846150095169261859398546330208249721389596697759558203892661557"],["9287551438655095452663007742922707409563289367697572992912496436510055215012","20663846062993789163998755421480243519356780589165661542259787916847521628796"],["11786183149837137726145708590054353685223730073909348386634138243970975852253","18702474397204833788961406303995313557762233621437669243379260870562005689276"],["21895844690184553176455871967524225980664532798607742013467407097735220903186","25174950042653287490199861653653243113714834698613631792291916599447889492939"],["16434252737510502252987772925823022717627282609304830884660388322488307575779","9520411344879760016542742299874554017759969850802097597983435959607390304559"],["28249533126750373390199506977870970280075065783081601772894496093193311289655","23639387642277588572114089833878643333092977384623450829561430809277901427266"],["4975435523143504869896489167108347883145187351166108254040210177474489079989","20756753629814569692431691536585761585328118792547872297077251160140763354608"],["11928306094614991235882359887230643416695733695121558404045965085840829535432","7896502310012359310046251204190766906313879013244529451441363569900714234846"],["13160635709468318452613757854101873488873358079480246271518111920969784074783","28199501189480990728066114572248635231968639659464576971040655455454686101604"],["13533924907227369290358648654149061419710160118558263839519979395485001825702","11393828896568332686184666429658469234494218190056316918830691804658637782718"],["2916644799853912975601525642748712411570615936640247974575589930747350342388","17090088750897511555935517809965120312485132403982193699879684726326556218488"],["18848708860249431922839805767946582154663371016258797080683093406233086014072","5692336398253740286219745903013245212752915361304890738115275395062272489507"],["20470989495615246871949809966036682943755721248626197777946067608318522921659","26790533488470280014167569367101560976487890458373378827554950603942402755406"],["6412519667642854852862854945342936181042878183315809524644628605585962797080","8658448985799188410780091735116837974982795250115891470657795231751687610371"],["22422759531413922131853458410285436614729081570737384815463471217173128720002","15694560136492558260355372927192579998486153483535019027081640146757571476168"],["21293826586416133487361104741361140732206248045168285632382086483350171260869","17906714121745771866386990816535511516723954366125080676713956441840380006513"],["15259611876443048541497134132917335669601520030370355183509350093085283772455","657371746264924198220649866162915463727196980646034836636061481038862191031"],["2399588729209728735817295776500501702051775922107941826973569940677960112485","6049756549297170275832799949337397900384881869293228430780802087870280017576"],["7018670346876337521560543405723711873346106794625337152567270249800588621861","11621922122109391433704239523447978522726910240693148851259907653647173535718"],["22874839743697267780019584133305547103145444092724709805255010209948413803934","21384708889369772588743856706049400761996494549176025495906074140572230840038"],["17163481843625392276801475930372496307322334993102955794654107216868547348511","21833843466552857427852182453587570737210226306741072869202340256874371528079"],["23810522923537415266686709750162877181862533617450620011335045891096491129276","12915599673786434237892982689205646054017839819068329293845529558252438641734"],["4873527660616347630701867689476460449260645462924134426983662836731081429770","10539973525244513435393862205662622676924966159039110370834651309332322515551"],["13638748636359596875471119768259885299797602540517983239926761630391333770634","2367107333373858076198444398882590099394254507435283968095737497922389118610"],["5054154398640554984692100963560936385761795386066903470538156294841289283447","11168952016438677948026436371709971228352871347919596615376345201008753950236"],["28250893396237392565953177450856760233147216110729843925617482544734163609738","2845694218542887723914267228053500651161069652285561746550661991112614118881"],["2163826131683893752267966918089572294583318818512662138266505551223614401907","16856281780717046429145603897723397230656615536243855245717596825739083110996"],["7932344867135792099885749889551806708933946738794633237894254895654855766001","4615152244008518722155526468974401902324891923722006897632555445571290839905"],["8876337510996843736319830858867211017689972185177725731321309033744361857672","13245222551144525716103773962900983180012184753435132478847904741418635828887"],["20777225283790622529391106910883720063294639602110970888062090662019316519193","716578416105578916270565042963725688951784323831745191798686100638700685489"],["21627175054444025284400067217816868389833224670794956286589727553652773363402","3871024474570898992550018842640308459131604305782844712792039273424380794724"],["9122189011549195742042388324518424761273199740155338148863299176683921859578","8153533609615114265182387982334985262944725548793162949228730039161877887358"],["9089709932247996893326644658142476439776920043145289951604573411321929832493","16046961241937137607036168443735290690622826457207447408434590802133118559620"],["7225426525436092572007391390713508209235274705696819790472542532021631104928","3840472845796587384121720536441880679195324354736548756775159183783853964297"],["13987297459932287225585534329404989424225866681151634572490109586103524845135","19192417793889977556702107286317661288846857270123370200582594108638153248326"],["19526993485635437118565402640798578384567214235787054477133942879209115769431","12291405984931955459732544670250276317826146270862972340216038718388389019530"],["25334283097151113618862907566074913063181706257531528175177717772427855904784","2690981713823998983095480563257381048492932878658891457115171072410075688259"],["24669596163542549823403792506177435485939610716525229221836444002546059896657","24516698465353626701858838199375443866071574049544698066081951479811828128588"],["22299430249415514282903150924550084603554079071149850822397065326334911388350","11396331705918354717500129553629777461930511992470494267015083104380233451186"],["14785197843867450499514252478278963485273169084911516826723819803567108995695","12142696318603004519876631276622042649829831974793568291240544372837535308116"],["14858837327365488251730176969315641787192380168292481807980781496577063609060","16945904067529153845107231962638852146497822275402277458455371546592984322866"],["1898030303001231112691711898561425511249026917752144741427022230796799793841","824234295517898917296547429534422612420561435966386278257299113349348006575"],["22193530833687920633287860166219976052213234335444694762447966972685552771800","27542523437852104861466025320476764452406910714863253642381809613679023317307"],["18939722932555888070652008661991766053609807085790204221697620413653632147616","18810925768937352986007920462417764793935958293576018110281309793062606887392"],["13064763723022065167561177376975483441307309250935403053690223842765614492359","13232207388333072024255640518443710633240703363510469915841708910188708511035"],["55577101760849591112731338582295459073220225233153648072927565680203462772","14670731776112336739541084512458074047910840321840196166091279141486793288225"],["22799710193685586455630939251562636062126238057344463887416929021077641913609","11269416439115268102154155279372668508487703545932356154808460681544570735418"],["16211025928940053452574628491849854478224928539183571746471109651653477158618","14113202279436555504769618915858327166696403926952463441702127532602279892422"],["6848467030172518916060912517855916021126712770245760441476900074834341815808","3258166273562581528409448805504309741157807095961668526369326612197501871872"],["5951611370214205593137505172225177984199700108312328881214021360089081385191","19480624181642389772596736841233828230938950304188373282654265143081970134527"],["25372595599588862227652075095689879660014419313116107502698562164228889470162","18188793357699480483668672380223662591564963246421108981889808701363825126321"],["22558563361226584091503157898995574768307312459003324077532423108524379905368","26935513677268448864910790976482289515960821023092778735889710152434483544857"],["24683161906547533710741379895558843538864293461318602298990618389106286987581","28334955092243110592507664343020053772946040821718046223954937212622959482068"],["9909831311423046788029662807785278225084800045606914130439964692139599838201","5763841113205785658565521854433638512071751480475155276422269740016947038897"],["19267945830057918223364550154671271798642336927908787205350455770815471086954","4315083658969039001383957433819358242131463742142661828786846958950655519621"],["15176216574679771633529558454529942738597384758102372171289453481686001637973","26170672675665453965412516295228953096244812114752397929806283623878861743986"],["22244975999915794286290760070093882458204469805342676762066705490329089802594","2754853481742391450687641400986392248175578160369739470983849383743783570875"],["6202458873596040085695921999907373573431198111476036320096620467016787574416","25955973265461880369611289176783161250809253760472922913670847572316002277032"],["28637762687282873295408384021866800483728826931515324809404169978301661785909","15079837543318706840420118790029014282276985093422096704248063502802182650607"],["13972229245781951551655019307288056664885499067493938545919975563318436568966","18270406200179530288306388125267636401131653444714098736059999347655019281630"],["6841512228238350516533501386878521088764353986589815263407554841592677191343","8928906634501833057511944397493831503426693935945951822032275604455892072038"],["9527682055066497862328290274173419885586242641688394772445356833529693744546","12279356719636040685346112204104901617240603567560897306657028165222323013046"],["18009003589461434537467129429709719992120570341839935858895985345061667955131","21486055088594866687934097736222828051861775670968912700624059137169562982268"],["24057349291792078477197660253286654048536411591234657760158057859717806738282","26987379896148822307950190050315823406246940458232276269000593429397892928043"],["17468540452937525390968946014318135935807285017278515050520665707678479713334","2319993925917319192010070380588180310732150242647927729035627213710060478557"],["15740092666622960941543927590236466622999882054212354548878607039727936660932","13058986053100208700254160667413789195730335239031078469084799132642319082932"],["17035392785067331574984988330556680097081059473525771703842240140403595807370","27355383926934733666625397775316527639677187268162786389558772585897203187869"],["22587191084756923014893338445633413456065334513074473523958165028613473320122","25423817897132069785210215754925608845944867518583205969234810278000533034350"],["21297993550980523448482445747917660996042805493949184268977083290778283774161","22248756714987513442857864498430155338694584785615632621467952446377677675951"],["14088126708347489604536081702922381794499391248486389574591661539102559531852","1198472016462238883227637990544694484930723590385022160991020777476573259040"],["1026638585722984910022101676367512613808065984482628854844201232226275444625","17961128514793683017203145496990208205673823301306451386322767050702748013070"],["23510288246541319160342781553163622885271479635763586494539656260303784304644","25337257997344924817862539284813144570489303449863017304078412760025317478559"],["22733306188118771889614190439771010437821433230660083963768994484680815626418","8485857807416142056079889504680346025197229206764208935333801811973415989406"],["9517144774930034107304428772078984510343092739708769413450933175334850837066","13174730402267143136449091084326522340257603719884540164983797859451972659192"],["14923975680102234750977560238280758502576444393681976761474530985395380320511","1487452224314861243043128229277512785921989712606211594123239640716737780454"],["1055285949616373937679423708895915167302598549314418899104355552357516282148","20438273419868562504195059097478623571183368931202175633014636875733273538242"],["13466043691269627695161480720992565444664764096164854376418287787777396086843","5230637999433997199156490089939481490396965408059754516194351951982666802872"],["5228134373174937806811535592035999868569588103516687763765918201231842684047","1263060528467758241232494129431370796115227074204227627357687733400610749263"],["13050888878506777985112264270012129105180662129606826459070875972335329990687","3564386232145742376089590090121638487074405889927627670062967781367825471855"],["8487812085221733480945622400391092984862738928186307864817561634865117181764","10945141445840530404696980113013756297770380201867091735209311030833678397531"],["21050514090033780757851851190629944142966354346984909686513343110355523189799","12793650549093049205807649906164715348861055955817394219048086606741760630742"],["3717398220165617186032440132322908714451132280248171690947761304410647560799","7761748820320358622600868465480931258968503524561790098364026788744055585094"],["24791598147938867911154099885543260720134513921639273620036887855495648039892","6626350029726517275444540741825588749422546728349303405181262359410228175645"],["25111925846477900188480310249359272242142892436939653543258643534465653237013","12749966789271293295751135522412802329545012116730227432366799258636815610575"],["24055244819930636122522302426445864140637156365917014070940305566207226844222","12116217398286146526767518575179139652290292453527208532055042701622555963335"],["24598920703937903963902345698602399750758124806997655742823387346490487433102","20253187732814464247785503280112412530468512677966733273241371690715925914060"],["13004181044738550543401316920217735072618930175618470943747803058880070660227","16415466899630943218920380259828319001083006784302567380852699662921652470608"],["17292552009180262377852599837906113475757391070598860729336481545261091458948","9430542911999291729642554301455608316970322484231176354553826442149265818355"],["7602273934348099474985323263766562095080147454051141648749041643859323819280","15876410502769707703432663079563115274542108069677885077899153468741783783583"],["3236538781634309187826079022592742766288255739595125418054685709517311757019","19860821030662010973010219738539239325953484569141692378072293155495917616337"],["19265006644924829682051898432427158903276425539058553835610816477541484519084","17077111485971580769601379961958380255364714112255220522373875211191532684284"],["12623556825871754852989563607287157780059447830825927614312234675240909469501","11018924969009453895691485614001470374421136463711065905472019950504750338283"],["4204497821032024946927009358703641007355683306566699740242228930427707664453","8886824283813682388150196065475476285612341503793828977653390890366163206932"],["15407962265810402104577859324917779978437711037065358787247029050798353266466","21008055623633435568064779585699121443564180516248630937650974096722929681626"],["812725318758769305290462864623105605048640832598836123485116062054987554254","23346039154583799107675717331726698509077538041247529246585473810937684080933"],["9561551548203621420042017085825157232654321782358410884341826199744405214105","20701387755984876288514595709618015177728935918299288828871892346855142669315"],["7128875145014629369103091733008779100390731626224313354489622968564105103880","15805537563373931532256063387082608894203114731525622279700460122072586270280"],["19024704629459353735943175477307730649017606638334455581651762766441600492038","27589809045982463271774227247708279793111048123153898483711246122419117768653"],["1808311066063613232045560521160129720020401253559937303497730905961966082351","16940165111595300580513624946732998468234963769744620367478631739215348546629"],["1002222741229097228763410423420782490290485965503197848422030461848529274254","7472516671366015345665890899061793414544451061721458336076477113293365446660"],["5406448130590430404543736994732900584626547029415691450505255704486368104919","22171546146000950798843812789334245604702635520125881382657384091420917933876"],["2547850690456771923835010115149443979031186003717118336141235198267784116713","8849418776188350240732871317237602292597924790720767808078698674153642546638"],["8061928627080581192683570674903736378943071245483248934356832357546023275455","5677347959229696484119316037836419490437680285773893441245340131225104471168"],["11653214219630254134323088437995219175992326244824123563221810514373180501823","1331925999794599367423117206860053610514227141455128425309266493475859006571"],["27127131962975950984919659554099347256960183462400512273117568356740149876590","13724773237946509223741940487104868991898458839453779875139245403807387320520"],["26579847857590721299552299607705388838645454813500112008830209376654391286856","12208762835630073792377090209558932738611171846934107631229950600077682650362"],["27082405267771279248511250243761490705533900159100415842630197070752513409499","14494135939371807737369245377685848631664932086736766512374773920032520225197"],["27248709764773566589928196066044255050397540005084871231783736122457531476495","20775389474802526691073210078667477305213895435662832209563129154200492348389"],["22594358335650362611485016474782175493355153435477030729844302125245654587849","942674798752078891164240244957307469425872671504396275685244352826068870092"],["26401263819117905514492330884415869176648578816508131432439830330741341745506","18125897029746143344984722088951012231025690556656362287305522213253898243036"],["3718964196403970687823345969622370335343515599058423915724342824052739384922","16686323450912166232605341276902968962868640727874094302338664518279110865634"],["25468531430045850246335543503609518321375315646543488321921875846343014528400","11828757847325618541864349395396519860576710550633438030694790993468889720630"],["1101685377689144396345026805214174855326230257581711357317773067322716620843","12585473832679450672573738175849631911892378218156753792121409539713895350411"],["25995627555817004709833413909863811156045342532926540188269366727522664858296","25915814610834907713173569870624447838828480587275258655632341074821893903657"],["24675458668932797760435839139903932500429378093990879282376405613558935733876","21134986314320271015463146971843219758713735942691067077709078202264484600114"],["28234253799115488162997775958194772957344914442676547030028035367454968457764","14073611650719192850877434386950736850395429844649078572357152435605503523612"],["342787594538664156170826361289117503572001875175151913933361722592330438082","2888343612800697724176206433733358268895072148233094634292940145410064311058"],["2159638511779264031902960206311528203249971196451685316872943952821208082517","16578546209189712382224855481365807296522817025024180397449881403952964492673"],["3146562323670732151228647578475647896133417425722786730057835986893021160502","6419819123996747835697238259549810685902814495979022047903634007632776537799"],["16320964631987306386749802606242476059276830958018514031421418592598071843606","12948328579782649391803490741787845162356190861463416220749218486992273987888"],["26868699890027365163592768303041671063048410296835706275515298751495165954346","5317345765587251549576177468441017360124515718912249857335305465014745705415"],["3421315471166386177217887131158742049705429586522112484372325064706396687321","16193867036423271801457811296058810802612556843612817262761813915181681674016"],["4263257696480995745308446413313627917840210852386071986508045171862725307850","27005996009053221021306204233800322547506277985176273519432824260119495953187"],["16248237267263055883478766743765239892510475319498070518200968766037100543055","1900222740606608679615405689862033291800793988990382496023076323452084721922"],["7137695125308390390943897467499606807860520800664499194665759839627339972596","3303278809985114999663189143458353614874207263232308447961575902108239130234"],["3733021302664179810575261057976379025390554701399112584420315391856915904922","4366893566582723071497921054219742322579063120934731216447599444146923630539"],["14802201615258061368007502620366180864545376177316130969553027267670644279610","7795146053672754998955401954528194127368051662035788519019881558226556214947"],["26528927228575522143091861047485703556811387538228671709536580327310412788130","26287257653435098317593752059344121602554888792881769662746458654680552889767"],["6402331286481947893824696013558429039382998566666634245096557665235181913577","23167886442378070564752730939380800425238555281823474518989663186714118041373"],["17906625741378910084854146818682860009409608770654715001796490737247136282553","2031563473241384261592316076537995953941258192767688166927327652609578843444"],["933552257572038274514105623247780026413804674949194725292224226661358737750","25641769212533238888885000669143583271948786479953961134773888884338050834096"],["7284894290808556257863680776737351370653869068576086789404586978247129040495","7062462394305191820661468787356498630157487801922867914253745261959236756156"],["25813654589358367024828471323927452400635981545122729443558649117719417896206","21705907112789548381785613530385634179011249402444922878761071871651403428296"],["24236563409081133891142377891786433516013684801100169232713898767492108035716","372419114000835697864997467653150141675985526988588922856206636054604124217"],["11594604727866335819550254266064955916731622894467407805432605919776561657497","505015375489033243077417064570240860558259769821241689669513547217341806914"],["12697448380461863979382031789333382162885801800882685694751353618218357069849","21374755196590690225748324709828244357708125094671496119225464638166381455059"],["8812244982895933471859791354719407694142256152874739582028022553661646657387","17056874453891550171681441477251258732855664698226964025100563398895613119764"],["23281221288401641625091399815436377268383198612882475992526955787125729582034","28204578611375835649575189287459733507921945971187612668325487923282571704228"],["19609852516418977130382111913415281394385222540979013497478582644322934902620","24650282645922552934103178125236445835271732028492229086894531725203683798442"],["26900595595563035031070084663951710838900389579758831398152598478669620336430","24239590857402902556229193215567765193374015351720399792982591878238809183542"],["14827761508556746040254713237784382160056699776916616468567965620785913082003","14473771688037131410901390770541931174437134626378436840702991689551742727677"],["25589414940512112444847752619529864555295443196075498473454916244292228557120","10653311275447488298002909770973460614102594677980773984832813434662461747629"],["12864472235925939458656140705497439258236301019229430843192428901760268693730","25522365254768600313318369160131214706262464899304854823034493483351971540183"],["582123790817483764184251816133855007633885211075973103968745012997895251844","20926092845327192208162204868669132297495154650104024988281579589601282803382"],["26929648426142084026367018597979762480494338092327586655509093198466733362404","15497876799844862126804896998031605957628164698588241661601037429877797993899"],["21549845743138070377905705908603106487442221885645815845717535571112292466548","28772778012555630987367257363326278256735304794245310569277458361760219932553"],["3141625878697475297960400546348179720439393733506650921630889179552340224118","25591199451151013453533101610653711571963281187117178922568841793380341110168"],["1883374254108705028298244203876513355126374878380305681540060114807359164455","2160110978608344521606236946723791449645893239481447204514274444282316011154"],["10996979742779819968779747618632832822830566936619407855063551883142319172794","19827992759469531496248901567613811150531768169790441311486126006638854190300"],["3835120256055718144803602598008756128048921078770558363481309874491190154832","5939627487097117255191689650029761771948928297741534404120340691628331775937"],["5384730681846297499958006912256262055982854553755285444541256950955743991950","23008664930505647351873446540730234386925168842287030754345603774079138048283"],["24460045308849738156822083035759701856941359973723308700020433299454737048188","7835819838056679141706596283171879110873766095048773507209955911577512773229"],["14555104027530618053170778898880595175152202405737399296419578243996655697281","2753934603829974036682046550467087560379987387878361475510650625204078737826"],["8813308858038981125411601344582061325478301271676347935055694689342634131776","17609842670565200727821676262387800841105868373977068753476508930216963913234"],["1339488499959182568183338816571147666621126235915097316002497077289982032958","17169785774942080294012501756690337609485566593165847803449127761097137108604"],["4290277066916320281697471763863842526714627065895249622618969225581988205104","23344854784954094402925423193228190693016717697591263948213529290239847725763"],["10766782024290685443345856976727047450705995414708106293911569341802084769410","22161568607710708140290379712525737567564601496456251178958850033465007588497"],["22474876039027921822458522925017311618750470275453740991450043216916406716652","10569833166678095286198188305016520033061573193470967018003136796801167818302"],["3467081239600519914204004263347959408171192979292286181888405719295871441363","8657150017748368799179885022663152851176463946940898388790835088596148873845"],["24597898591818401560075066277877998744240665954496741967402319724729925595017","12968068500667981525324965534836468667350966582859522440076144944946213808111"],["3543860063856356675283821879605876424233636082323979670797346842482125526588","10980606407811383143095155347455946095604033006069576221821711759672600391339"],["2690039410545971431120018996706982764661380859680464440816524058368956904559","18596231654214426626645424620079793830395285119842390084944355095846863798115"],["812409923538246760660689160816026325206251205917371545301923466155317047947","2978351544429182423083459525771221886777968835660969084532956469763825194864"],["862742532583044645174941209150724829377440735068784287956309822869420434783","26578620998108104463777386100972027474134952674940792254707129330359718406361"],["7964388942250867695456298480394550697856753200381498944249540571806775068035","644460115247042956821393976849910641381675793147306039440086794991166759722"],["486820027417682461973902414792210143083130213691479427319024506075622129774","13723065687525869480548110025039979574130698001759333808965130701855406004367"],["21096959104959348943940391501160308368510150485922230725119267769343414167139","17928638116626292097794997614549282852813544466219664344651196458451229711726"],["6779017807019494894597966262563035448556318831973132308018066570948354991303","3875110981261898032174100940254881767182286322847688617722660428955774939390"],["3679735746498118421931426456144621976000366306287157093121178321319892193792","2411006026833388681449954158301638553902373915786150725094576342325963489026"],["25010199157424413133700313777034252754553802515044358928925760543849455698585","21591175794569218612370170300582451699585636598517209195604330189157133459632"],["4244603365685084526585277156299026782802911515614210710579169776555427639263","8329628178999000849645998313524303903236136196150699983753563949794328003316"],["5273142795886724159582251961781132586171160490109256596125475360642612530650","8850657693556707913928711974390804354192608023993271524244921163065891268039"],["14472819796170323612473743680012522783977766133990930177679061280152696178160","8711735316929271258618617760529121068075391151153762474456504043761820532394"],["2722343382419318608704323176192999596732293001877233079347388324913975006770","2107090796753870507709215543247409910568271340094833173801407048389503804073"],["20134375938483146277909450016910729752851709517762474659615042703400959450877","12566993455142893358643848367269262615922506059295999839198080955060616322130"],["18967336818036478220461301192038900962730886927728121081469507558729412482503","2962651698244709620965918073334617694194865020912696787525529427603590875764"],["3996037162866654148306961480950867323255282331541756763481210770525475119865","7489292350737170960542082489738914516480689514834013028077175210758667492557"],["15665509496221476051731006173140114624141166747262630204446226711855714872064","20694029009360606155662833609374473940396462621140068002758349567401337832379"],["11978622695334382477328601341332307445012192919128583289056965883753014480908","25897631573089978742775221104849620418542278864769630911317013040733163827267"],["27693993129072690979137425707038780050573515296056002101060074304040482051050","17009960939546276860271528262214451101086184581196404077790623612346978377793"],["21305167608506779006740586941108733482416301562545078254703532149250475103876","11079632621291010629479429320621389787489662981893352386588373073254254639978"],["28230667340589659654678131668962123241675346275469087285660429851188059163191","14296094713378537614158293872885617932721422672179044459420661966823574394362"],["20640245463736551837139694504216643871643979374535515502627698307907107623709","18165186215918858313046223882015663634350639918915031969742321661773678226247"],["9186883046256295325247025996370558470627630153203200219784322063738716384447","21926948950379341126791918124416904254109475489714204108386665443633767572854"],["3559439257648497222537068578976080783511316662343823680425293425296282598856","11176176898032974582231984385389413859943821341595253833053114521801098982281"],["16701606569527790159719374875279302253383197349317059031815241893274296368502","3796866151394774043560016405270082081108277029310487152309395959152762394415"],["10924385958287397112339389855406292246510765495253256198215953765624955643588","12487296908968610156415805218115012031926705732367490513772384442109751250121"],["5584938133305286860007590615229810250281054738231700946187444010882836768890","24284009033381611176176422419080961174157944589490153755101676614753987982589"],["20256241281780417862116849213010721586158301951018483614037809827848671919706","18415736508824187717002317688074498791154734121052133867454510184484038522319"],["22659254423889929480416557172463932780521356676167766443031269721524402787777","12730265398891883658992291103356248656690914260006860054489090203314779678232"],["1163792710386859841663728672547275139634756577375503961008383953888539544500","9630459338188758664795468204288603200254989443632344666410927797015978417570"],["6186228193694895035278135881115684884391574960460172778741987912659621510162","19448888921706399753545025464653827815726046678746468450894815910714717861651"],["18427374216503655000799575819904307697844740076520273311594329567877714230303","11317393049630297628642499045461788294695691840456099820972730413303580092707"],["7827686891849166730247586006291544740850184051029060480349636970728779897695","2487143874356440982825809066799828799100572579267323908539145037828405202300"],["27303852031195524255688798598665877717331269483052553851427740982352991825258","23190970599390798712944057856294348409084265649758286410833962056221435065340"],["16654027860168659717948218404241419063636604452955482633909542318348805607614","12496590646609322974744795265415091966664553747539874471167693220172296196561"],["10164360629334894873925106833026866518216155059343070992637226524548188001873","611594945607622357699059679786929983843279011155994985032184015300081092023"],["6302031867251307777546400192868976171290219833791350472589297068440351693138","7720957793492553824612913204138142170305551241571330060204034907261725409706"],["6172936228196639678013444515574324663323670814247189794042749278797170227395","7553227726062318671666542319963608084974255429943548449383276480946694376782"],["13918837734485067605219305699610739741286352420845964287041762259360526386067","479514363170729819906527797026769722684477012318779639815330931683281727216"],["21619779647737034294861328780604006636470598057958154364007745987878920977700","16296415843476662723650408533152938200344967133229165715898613261477419816654"],["27714626005957216698395042608162799352908336490438824742632607015112976062877","11404724960316110948023676013305669307162609190868534947822036757528474166994"],["3090071729588581612445278951277778951911083355786515402214805308053545489807","25582459336952813906858303801978726235473548634702685796837446475887225994629"],["9961246650815217254490201014542489133190221491969099121678811772810829837826","14677489309071258454165498510340882146096477149618308487517054127525959999089"],["19402896357747401622440746847584084254153971992689548097585419827124608677298","4123025670000230653832465696378944447336746166878584837172086875831006939303"],["16791395629463923954783828631412793681495840357760780017726323758312493007079","17480060119341099594135627973778663712835517319090498553066115380958317377217"],["21232784262223386981835268181035335317076847384163356545139517412383411595127","23721313103787087948955140523641343211217107593640104477214758011033396619694"],["18770526189232770819129595428913029663063489505779698268194665868704044826509","1123010785409594585846624897390396405178142726834326465194929606663247109789"],["11280214914789314729566143867561530190534840854004713857986367404564337393635","10792924085441040150652219473375852246558885999333332694013064987944977535673"],["23444385033887405909856066601308724093830350093173584253684159176162628956695","15811640265130119827666675471122137964627195587446378149231271693912560744146"],["20957882712221721835899471556973490596190939990232795712916323206482695366159","11605700800675131268584300387651473641749229258394707329961721374985486694214"],["10421281236651344596773574034200679384136546719443424272991412808132655995224","11933851790047546776252080602698166535197644630323687255597239235099140113832"],["10712982416398068310457489442088343334062198561020993277860612357203370365066","9198369150835047890341721445192877093675098367149644943716369832251931675722"],["7894367486301215650097376703314139956843459392273351189884381775448297935738","11735983796427645128863878683346527864819335729879285746659985003899010441613"],["16413656794413099578555751165829282567069179581851153497495070083692938050648","12176799214473093042651355967436598853961168229822676737626190886087488459824"],["23409466371063126284010773294894033583081841713566409286110000707176639288825","10700703529186618881803327818971283842953777602142287379547914162057562997367"],["25411928281916770579459313138269037806245042492517369686374537803321694041576","11066802521046015222399519266007015980518458368528492444380357633620877879070"],["10490741922618007029995483216378065373056446149279464066925821724157336918533","20298107532550368625655168008886012852767350456334326334186273115201432834144"],["27665681871328322419547029217272315503259931617683700708016643600255159927026","17577265863328528698795589711920021839627805985736067669925788011015389082667"],["28825080667950743736211266520305464744650277511843602779695373963873521145664","2456927715095567225056886892674551061496645649249222769623124952085666932754"],["7751772380849781966680725928465321229983701206593714593880390248644686248544","13876064731934461809745005447506982446727568240141683960044953391984621412606"],["17956366853798152382340765806593403978224196046012053703101620607415025442843","9580894366994390500890914214272187971251766915265231272774477021555315834491"],["20480909321306277558211959290977762019721522236888173547630242392283346011404","23227391649961833514897253169003433218173578173047674969069698749813063703073"],["2756749526941964656428193017321392673020729399609961500753301572942330760139","8385067137245634616954027148756206427852898462686406464894800587712573465426"],["16957070814597670962590364507277440523485853892074985455501986488186380869996","17250643448365312789540844267625652394277695907852227912520279321063341161724"],["4130659678791463797040248845220034834168745466879580427016125739737972607098","13343168763431760146783679755766523977451019390396527246213319181836827041578"],["18386793447787804080170902621128778378631197849917559433849045597920200697813","11559917697136970199889408298932119702478107929043781634864176119927196876182"],["4316639361835117202629286529527999027958506382981448458440968729643999749542","10653118682902301620087460948967838176474962999020396053016246818693167582382"],["6337218197926789833004352584319897788926039609270407002597459532361119816260","24554663014420443345009895271288852362064610452682601929366001268647625152398"],["20865470573765796397970861413175177448993883872183927124491880086186642832076","394341670346162335305687390711508132386585305790049561423249655317966779395"],["24183739496484692393579195926092133659759569988330635747888458978413855960371","16659194479861257450729456489468616014764683848515768625251290622859775032695"],["27959607377057050156792874481402620684957348635057000300888826320949535500943","17823991370394167333036094784426119739072325964451795072079581754917772191087"],["5808912230198552327741190850000524902076932540771583356809227456008455371809","629110596035032585592581459745321225573767769984590296177880346423827019364"],["9481388775396518634455129181055398884175750470547954539145334095790031236155","5357972295429849547575704853967739290434369931021217191246721338246920606617"],["12462800896355170661626826743908846419340640481283284370650348103277780494562","17768762591433273574596904846143971924969457252287432950466247476817558586901"],["16673193247984272601842277704752295129141879003272566203585680772720017731280","8495386541514326169772994974917849454741519423581008787419202515357776420851"],["21464775810662834063456878156308317524029957399074040873051846672504133901508","26394194704230234659697304551194892197198413435075905512751576776082114403486"],["288822284810753185758771232192440485036641595721182556791725083429860735577","2665381593052186863853581471910517577990396069746170375382060662001068021229"],["28129921179441965872499059909193949514315378709431597905550119204646283126172","24236089649509547100354808510985137699743692854314645198697868006367668044902"],["9687839419507900128193727555685092900308557945867114940574092807475190492353","19006992505124623991282984410414926467039859054252973536357256172122438509028"],["3707537091992123945272354442282324465281061780390799835532814332645702578505","15938526155414142014534983173527739091798265632984135210385703325268920901214"],["5796274035882616758537433125147592503126707824839523729139723294581136027128","17323687763134344274256215691382020868774865289555296145913447908174979120821"],["12535718304726645512423794044428040826272176744061559676412512129170275420016","25060963976599024515718154795696583630096788856170168278326230163850018337695"],["21119641888982194999633030932199965875691441098479872623573524766941823192308","10268590009815253480467906669227990000143301180877522984725798936832313459647"],["9223471874189242638637395194704439435100867770192647980222495203654793163378","19139495004543860508718152357747898024387791663290981992366454385620879583997"],["19010302945671000306091519022788948360005754566192263894147218317543281388209","27538547904356535945238720747542660453366125570542556158169403148676660311874"],["6443205800695399970904959537837100912762920994792167065929574761413264704580","7328226152414108910734976022341605820376290226917647123235994218271222715830"],["26905436358557149674871957620523027298278573034567787676420116819516312754999","13370988050623653070905891257077722279494733661198420214617899293960671976914"],["25008116473735578488753873980299635519746392560336001412342568886033402293709","27055915442162643564995590724336168431735679737683826251967787251616678518361"],["22519461689983118942248206238938423827283751467659577557659246433929826107170","9448956836630168068003192807592405217695283903763623492860882614236390967525"],["11238943074399394134582980471064115505775360615400031808037390604613065167992","2369911520483358177599406786190760978070672898722853272547612897864794506195"],["4253042836364629389807102956725126498911441937996428933380388690416445476369","13073293222000168881758510453924355871272053496254592604517708081995762151588"],["22445236319220091478593718992817521666681705441734752371738834549048785670741","6658695403118229470962834123657063821117360660978900693580654398263394061803"],["13624367205596318621990033154881997563861036856069714138244712106516576512172","20620721036575617373260478385787335860226726650566560643121641088500563422998"],["9673068525894034512205587198840119700432956166996023382979901618711295497562","19614079980925474339980349767223050850112796071912481836261287181654096137137"],["16653931668347600176586653605592991656171770466592393895762282979820197126437","23076780158723909204294759268785227893311067376523420858815477751375805206258"],["2510825684442179475052746068015378154920054851569054694039798176438497106561","21074212291000612566139454030225756423206183795942761306741346884843051232046"],["4243604747407955603538197319693015123821863218332692473048575794123929572222","20807118891769696364573126246284574041735208545133106295850280427533426974675"],["11737105815971963418389141125225662340271807853892372738784411332363201389582","24822791808080294869309352078858085415315940304538756451198466589631527793690"],["23893143577969324763652657797105749980730753414274253473881758874324591516027","8760423733645573157500511915070227440862049904326777855111165028757475135130"],["18769948606286278991998082047925653384014126281875722928790462303945690463404","20415689425432289494030233035452373138197910716898159464917401823915762070604"],["3223252223759415135668884352618101166345899457964422183179182903243460536389","6107481551634116097968935977760047135869800068901022246626504963140941436681"],["12978910025245342396684857257113512694348798641875602066439136387167936737573","11496256720127463479912147398787845057784796550936973436072794657950629488653"],["17921528967215050258755298093658609900881313158182922509481653524215283869844","8852914361942117586607469791339786970373552471544856399007468741953095998558"],["19885511482218115227603615694891016150629293281996551236862330119171866540842","17358002856346775680167986713225840817615805294959594433777967814223485891606"],["8149835962958501147344819041184228132558337320445613534405680187587525466709","3115315460380401138312062425443152003582734367030874925271662927648532593878"],["10931276035174921828928350394564461338181726591103747844549420891348155012148","17390579852419769307126060775999402426639038841011225291176207407156576300553"],["25345220200770192896880598798364678378557987040389895427594727890391249588508","2021651896388022452239023078037856965283615681374131831087333357615282055187"],["25852363830975009787282727972589371021878575789789437418274787661156333205132","17013999523671379313720074685757249842357332211429819709670200175111519939171"],["26998912366907077083584672463290289198062935028512314953785766796384263915914","25284855787083114635985913713504047632761577624818807955923650825523009707112"],["11742101766612835274459781653553991648601639843175598616156350265638203902360","4705316281006503975871657051480153592446382203532621168916797811487208334917"],["12884726367111226771860293184728186813293831364265009767719081974011276874483","28645327260211608926594706418024915847486867107294549113957133369193945902260"],["13092498047229309954223513475331855671928619948549978502249449128778164797939","2443589383871819075862317005385833958380889621150258573309560266596452454067"],["21098641432457804772623121317814361656055952577720559247819318411840277485977","1829367347185551423063305489366693169254500875079783553704299730666751160110"],["10787447826082318260840283031502746812760495531251378830850054528690112662585","21577982751205732960378189492560537508363159895628158437677771051573756416113"],["4217345596456526922084578664725993129422232728487500621823698454660133022000","18641459444290472472067439246106394216655441567617280275524490716156724786793"],["19050195887470393571454380601898023138049573242635089114174453313787891329561","23643465804596866096624853149825332717778133533208004310036334722187153053119"],["13664923605304645093093822600508597523697583664039436893699340192724802614205","25210406847806866185574387974792776343527670737991820829517070160463782021285"],["19879600327071237483176035176873097644319953953339682457479129519895439233145","8583717631315364687321496953520518732624266577198756266745546459921866859014"],["25424510530200023933030821912627882947212080910473945805172829496996622608048","20745657593657505534432370014718521019035704659440334191799568181849265633505"],["27701084831600751400510975440143610250157806251167572735210428977120151749128","12993119355138678399475488600114325621704613993537038850139644468219177372134"],["27712122953306591258383114713746957932967235353838310468746640448067032373890","9316469990914126782114784790383380950327501493174330184396364311411300155523"],["28863909130510215535934877516066473897145649769388344985364631842749181497054","12987387743701010422506646341618125417522498592325346083350556242642174566609"],["27445263008186667029417350580670045295018618851327871019025509965902264647691","11639586629244522303097887911537140096364513002661936542592665305075634640401"],["11858951817640596470148091858332751081387742384943718622603956371412589384126","5403098474509317274815550252182074045222729405154518965277605444003961490699"],["5358480502932524293861501973085602094336702086895412102196066350579145532585","11713479734539176804104244654146372962317299629206122556044010448254576124179"],["16240414147862915028868455929727932509434108153183002157367753790710770465955","17614027021874493076847146550596627124218275436789067876866105532350774457800"],["16205079907685278748784557357313689899979101443543119728649304377888932385080","14031331637545768854658812731657711042079920642920745657302684814340465091405"],["12695347358555996430028458524154791938728489023797813402802746210571770403125","19580845643506574267428243064763235802159372730525760931008379259025547272303"],["6175463038432032440760470686375974971461322836630764295278695964928393922840","18929679659321807579690264789428906875039670908746935122702184942089099297578"],["6734713265113935645738368713734561984881749118160365907739901924563741551358","9387649449569058927196658875102755805744887134956485537322166477071341707903"],["18231840517218959069782478087970991948471504487656388209123585648951447538648","6356377175664910312072058711069498653195835191952185969822222687714471226458"],["6407987619549961119714310494787292542283341346205875093189523639904261319125","17234984372783244367682928267277462446436464729422067667622062385888726008051"],["7608423473132990536515478006105870276327561614381284829763076607548739419886","11559259120282354388224076496538300010835127434424325217966555650901832010720"],["17694140703456564421824773446212916251596043278713418692417874876173621629449","4950527164717267298469399497634022354518470292976440245842435148586609668357"],["13981595984439789259710996932918105272893152853442146781085727612284892722126","15216839155268253925366648800063260147035942831341218491304348714971388706192"],["8260491805428886256401206651360169774664485174638943980143110540153295480546","19758748261229646092014412626939630915646009069568972145087341082355321346495"],["20704041023828392340460396535402354191265865848951248196550861336461779668507","12372347376751107468200192853779039056199673344437754895344084268459921890977"],["3213808573155574690119039984100165094855041591056892647988459971981313204334","5803060438658432369811070503666970461163868634111153520713180482947025951398"],["23780413176676263764556239866571108154424931035011626012322108906836514535801","852987955773852893584755310758675546122600254481734789214866046995691763193"],["3501027629747644722538666051771087034602035305215238086924543119899079337230","21729672982723958757364065581704799262014197554123898741584809212915609497166"],["11707420079706061797098361509521346172708341794339401634026081580330067203196","21667858029427649283017988563858295047710325107349627474601660771229237965800"],["10301683506587796944001548581315401971284395522306193144451819786899060349167","10809398624645010779875684632268663181446352902241813349575574882872583883359"],["24186649822785457584525703335186559067689475642755267546942951751351139295678","18593122832613860985033164452481000063505092278753685703560715503236087756579"],["2890034774641844387084601660971626297342590889304520115713703616763680008846","960671904552223161106919609111644587562316391533401802947168242537855370269"],["18726103626109510205368877630426896981870112557911868853249537448901923572058","26249456791221603177013904296177904199286792168957865184005425251546350702297"],["3902765967747584674823813525265794338315373642142556506607798151459298644313","5040343752945655698487202241615456541341948026860571494286754998805111503766"],["23765363199034463150616330991591173683729847978394049189923456737296392446716","19308571727017750533563886087875376867500142334100138090340756983590143525750"],["11988563377675544093163809686629939933797475242298099102917215939442031070533","19135858263033588705473077690583194247369088503056302744046003179539816796842"],["28577718994513349415199709805051159091761452875077478734631307899597703472743","8973570425638936905735489705094494265878747554177651728128542504755709203974"],["26065764813244329132834920868461328987642167511268327172447722065336406371528","1606218385077612931714614235368325342715765186112896954708614590154079059667"],["10201398666252554047943776966562706705911224888929329687335929908066353704995","9903981312052276272164991606021500952275198245910691118582448699623961281404"],["7029279939563201962455981631907613006821999175748594597716774614294044846498","14748598133533169769716404845358183158623868293090686197367590409198641416845"],["16703052771366835240304113489424706653665089174353684313862454970849182982394","1232275571080120761686335868406994059038341724793473780100562211944062860815"],["13940052958780217340290375010980393552910450650014449771260901027637246460720","9659375422643454759952470172251480780036682169061665845010711081829962605695"],["17071530699073614853999556865891208994566144135506292168944956953230505113670","3364264421596044978219518338622819856069029772481603568763166395884158469158"],["8078307769607757263313603785300564734065183435582648933484909024277681628810","8928098885741082239413992190497976315229042875728312643378693958425262761018"],["6437056656783935252609986036711012238024166143125356131387573238843074491096","15736740565046515369280912997950444814550032037233479275267401654555699794713"],["13755527548540266585865900899620664749102016240940666484948781103102225474659","11470204932216382553946590929661666854238632571964580867935780622926411184697"],["11320318650381067179619262478970258484308031320457470340000749826071966769665","16063327050157618312963546152732441231425702402299796023574026216717842216304"],["5129709446953195346517557750569825214421503619660416804716093718767904363348","14559995329435587241815633991026341596262366187336272118778998883422679751522"],["6392425267944047909371897640769874128029771284830672065751268592595402634743","21498288910120035330582634555430890333109283509372092818135334630347278467640"],["15712898739180309350512928072554950555543904161434461125803005299166797487029","25856400733574655743214370595678994793228021652752013317748010025451469267216"],["22170661647015629885306423291057452485224985325589825263672692547744582258398","9670695807651261145935399850882305923552957228360741082842115907497306473614"],["7692763382785972260552962237004712474417406232498282904319601730790758337100","19169722762644591840424353496689136946742474591991867358709644637745396563736"],["14994323682747436808492768474919991033363846763208985640874705450736857271440","22037989425432748607131823022815597710568472598700904706079224815889012858965"],["19292586267617250927686418746107580333546177947500917565215441441067065548481","15983078688354743955522282824196533945021770949797825497718751858181015591035"],["27965148906977357080435266031001771450859268034767338309256169053619732268773","9442693879406300460378341938962028615849540029068306924048349717426825974460"],["13694922144866633019841362363660318332996689274297140182753440041237103017658","10574767580656530462413106949031301889185816614941062206199807120244053314326"],["3763038334657469885051141431388420672939109305670951767533993705372721541273","17148243379358436144715817702112119600301644986730348745578295203462998181784"],["26131963045163574568139159602083065064324298039233497232426122110245285359425","20225534380462443697759773927035862952733212633009698644705731284721174922591"],["16873335305459604611062058250401812634580197091291151093259595052829268495099","1722568356106862142976312238775833184653398635610097210168374966423829375411"],["22320383256724443193728277957292490192161835302585677061894833668134360536167","11891221126677646317580074043098102035653713738280586659565590137394608310139"],["26001250154536546886234594214143100197161455462701869892576993902024575846054","9689763270441430069959913415038516561779860368648271374228345150289545971799"],["4103011959455887747512778743446507348685646163144437075466533839352183583251","20466712420863215261599511410151643713412685958932440125307785170170599842397"],["3667697493097719096253532297560252649035443416374298320059923105714739452075","20891388649129629503788823660302198358503589302015141112774198522052800030487"],["17652664129895977191455670312304753673933153010410074734811604513416946877061","6215947904767877544398820161438002320508071417479211534366789574657000312769"],["602172514983979504369566858149373151690542712252122704784991809246298666713","2092176044712532174990338899506274057386018841863076132612698627906679129007"],["25089417944249909540323727919464882954017392361323025900577643289391847411611","8967133721240860169637374375309434702940360521167176163403653782709752208979"],["27117002314794634417220891308178590955650046524868812617439303658863532579358","23445446675346224756512139479439871440873668532529683820880914322769298272580"],["6110332430428557601196608100821540362776020581243336562783339791195548613278","6493203875674645142555876833467934963158411796676106097978739868527620529690"],["14951474972515609189073675316796969117704144756302167653425073297992056247902","17549778343681285444373542722985850793809213521101196873849384681034742616886"],["15739301269852333599519193383956158153568582255974439073633687972521925538521","13163915721280108255674487401019003434999139487912650714716227656202550035127"],["25404200426898472627777438457113382467649393105466861141370969991800357434355","812011720041113697939290498896537152421209932890301665676876464962836961066"],["17695654493013966121587990828343130991484037584685597021640663811568312441429","1664505351694325320544266966813747201340031928667718628987995672960146658758"],["21847482800780434583485615960081997882859538086354623883278655414583265775872","3120938724170978398077145830903239210085505383983716588192076034778392115848"],["25944119065340781176125870740902027465821450799381852967636134814057497830671","16529280446353532509894516694537197192202322693297818160342667969108909088843"],["3518569251878765696060134381118903988014997648126013641996434431487483518362","1306972480013882129454652178663660228100577839411773157896372204712409222302"],["8042820169368002248248194560492607150058724152034305050505965510443683353449","14424382886339463983624121978620481756736060021073923891754383321765877718328"],["21303254174726175502165832374954481944308819896737541928702238829933432094558","6956626448553301459387029679269302402860602957501994022540941492264354745395"],["1628424651265501478449676330185334851894614390029122910602698607620199583809","20380932669756702367498641985852293501183598147207350871753251609453799889901"],["24103526663642555918006176262238854191881409214242420237300250215904801848507","12585527065420614125109607058277432672386736625467466708765840369897305131039"],["10583593828173713117449342036905250550399384222277178107504944406784842575557","3477423482116507519716041406324638334398586654445782910332806769354013182946"],["8356871971598981710754257269678292322582738743314975365240993842014872484831","27870447568645377508995827574734446563393813914050981933342320188620802686374"],["8176743219977933963920877928544378160861502814625584659175944230655209750531","1808009556245682279013979039033429884827057886344064467186245789222728109386"],["10505853125898060876641738681101970802080152272000389447731478643484498912430","20198880190048533044853382374357621300217504342032373750302911636033190087667"],["11760288723960057469845877103574000677839462897744584516729979189495406656227","13732924806968523628223423674782315522114233670796167169697959906896144040117"],["27772411615658141226322672546640793772356717496301735955295177646258654787505","19416956549902890240629166054756099706160092323746084844293644036846942689405"],["8150382683774593225121524207635620123330265299840095470959397818919114169476","10555442223012364290617060200843216815896905201340034055706508525949483280189"],["18983767281985107609373067707446278072110460928174935712616473023285031002651","7999398838769542486922667821911775552206480651263265168231700155239983751104"],["3511840300306952697474896687028578931920751412407799438530929081540890782617","12848151680562084100443422573379446887047958717545506753312901897274572474471"],["6335197474603044110084532134618908501887863867529713107133164861255955131770","14773711599697125182873431150627570292294080739908895112375637642689410866276"],["2563638507744154996261779560397014358984233513696452284217995930299360849131","21780631773243079565068860843369052891216647709495847984631636756860001692228"],["7068448400408880557434921459746521619158184622623479957893310968717756252595","21649001797440750684509309243055060117246951901877577426908713534893008099154"],["5345083296514424583789490450238277281177210927166079403579077144060072911431","28650107513092000186666720713355207315874705788940900872211830236342938318793"],["1032669020844022575570614976681669731214669910903732757135914715502869338638","10329403510113476335907107239550940301809634819185246629580453517327322601269"],["13438388680551368500928323366298620391667644148191525300987140138282341454595","20588256299542701621427428387059246040846651074381824675964448784980282918657"],["27586442817230494448541872299774665237147220180722553648825334822804264773935","20054468564530771163635377022577905072207079520679805121034337598164161958573"],["16489930495159237948135925183677080682101610948079580786935782416245976942777","2229157399490945582699133903102320169405576715371734535448478568473075476291"],["231359850609963339064018063965717304188735814689468257288832818155241763633","3208471454367999571933543726257125469026855097148414510238046466051088604599"],["10666934608099658899722829702505519291045804452477606000616597547599585915074","12912476051181464101574408654163342771849760872907798546358320016754710065970"],["15147789800210172748597207877466974053591974109791795571912070566768359913461","20337391926301045943649440486109591120420588221339106044296695422663872824405"],["22141897137213164904176609614778330499350389059867076080844189968076580943777","19760833825090740413024816671548283809144081564329619141941474809951453749676"],["9415033349883982978283712928972675312062065035481624640589644370830069200820","20954857873992350903713333519035979433282375124426552543031755324549577268410"],["15503314722440538380318048008237487378787066255115112666207887715000545089357","19460594780290342088005415187398648699393275449318551478103202881811609728443"],["28915380538159872729207656612513575011806175526839661968735695456130382368611","9558918693023261120203888335746419561935103645026089401541313010398401404792"],["23815190335673391097342610513589590903802493882121444892665661909460562024904","14299727465540503664512263717505934935754624616401607201232245867324745873945"],["13806678780299468314289741934142309470975628912362750604117603123909446782420","26277480629593291000293785519976809858168532130616244938660425535576936710185"],["9781786745948904655214153318365692555038271289311919649181546875801620074940","1069067350548182254240548097876176459064615149318343291837690831806444273354"],["9024422925928611822278298268565537482872186354077813497768239473019535150677","23692505342424351228222729241347293389002495908647290122712256624963836966031"],["12846970659251648022861596390463692500227819794436798914838628723064302199657","3148025670281913821566876436694792289556888701077986511326185306969898878632"],["7944300528706547520371172279279084036875044775871761616596157240030793428285","21492775080919960880258293560089018119894315324983792106707993378605269205806"],["11805992742862490684123179656533839476617410811805171985948255010013437502157","24160144242790601562974602564286886947951014992434370960210339889082410785078"],["21218387944815990153084809370630511406606414164852480734082725782908118123268","146848116016864612193368281963684892574116108502156062846092883042000152379"],["20743794787090759611777642957948132820571949919365046419159426667302362151212","26964709414986921854083573521416039988919540946549795339711332798329733203736"],["12692389705771057188310525930465577527630141421512994192152010369557960793774","19605048971760309299564758718728271264141753540689201569292491113771930302564"],["4511925759237359191186322262175493238395650421457994399633263237882649237840","24644945106331099811146804296936922218714946121918249187458912077186023642482"],["25208246916168291681389306226115171002157626308168460645262902021472292694557","24764998804969045887221943913766520767530524547299418240452107593746924306602"],["10816243016540907440113227978757280076059739535330427025362398578360205087662","26747739835691590151237510965595101991440076490328497399167356411189030764282"],["24087343104374360620492042737174476646594485525306671687170832382393312565589","6915200210732115039353692175405990042704234720185346416106784655811591241229"],["22138998318152011437866381188089201652328318414404812046989396767954707436022","12342849984475692896854758534266262855107668051781080029190064011144957459462"],["19239854488610089956897180997172560967679136037440319513632716428867133794440","19595386644706093671394802324131989885471139686710009264375083350867955995843"],["4465713029113999555235425447822652197645021963279826513646376880854657376110","28932239528501201321091515166907388472573840656870358290718315923339135605999"],["23678717071455352347547136331783228279431237162006210815072278654570382873077","25124164022708808322180298494425417366742114738985371707144593184059088675344"],["16840052351829936554601995461725699060738561434651720696720376214174220163159","16969770368467981313726580113942909466755380845729762993179075232287964082622"],["22644196367788144302852447806303014778992321230124454883121490689329352411689","26852926840254693615501516891504985866489051729638540313656160399969954545568"],["10368218492197211125373504422739097703981988180406715098076759321339423263572","14320331015856929847578015949726335746014403075072720067350646988393649464449"],["5885034775387414531895220411650294979692589759956752857730361809935313185499","27508719020502464041564575833221380269748332880652646725566174502105219966868"],["24228183629210859169697425409308414619319548894108510962567869328811907071362","17815676305917663332131164173547940555567474692061005743056782563876034303465"],["23273371952505030269125252213278654980678281870326037405333341501583280589549","15284073447937405793494746279502790300072793141329791592745005255676607171331"],["13227274808000952089642019414611796630001455538021813658537554401109951635357","700396712638611817864821931281030677840213214176067889659088029548044650296"],["17791144685829572933366157952904017545938249272006392682647637689700141129640","12559883292719283284256863711266467030648307040904492571298011457610618673526"],["6167424898672775515379354340241586826894050712185379317414972513170001496880","6990105378110829955504789415204140164977997746757585646121051702941682565166"],["14681019548831622353435085073567491549103725426635559129969621517206976932978","23379886285329090143279924888869359349311703321791646364413686622795643519979"],["10410798830916200489178093300776686046488249068114579430929393083297621132373","199214956082343801234424574813824932384842682707837079602121397477789138532"],["27403606747933857806262508598774489797195712580039888039877372998606952643548","28199491628971998515478915887603004543603145757117437293233099877200242704647"],["26394144620611210065304453339208383644626141122179421474313954528770950251350","13114836274705580955937969272558031498976755854277808236291275928967471772162"],["13825191129371034016902573140430018856226506202640622722600683679733760834438","19370610068377673586503144392769094505224578393713975908690828584676088006"],["2087111870186212557658612269937950652494595583674559416435424539826250412369","24284942623877909899928511105323448475766540487207575695635025473987708183195"],["20602553190860576291836361442291171612518125329100688111773356753580071908547","3650045666836067330097889833936303979275110808109860370316996761116006387088"],["19746734354284830565639254638198204075554463914799313187902166245849112993727","28333108633964320528673291259285135593558996668893888888807958757704314431356"],["3105826475602697024931715584367346862738235789207994469770682188271045759564","12931104073049542829191076705858022025654270407731901401089282286117847682791"],["23831536942192098307465957318788358697523247175132386735031213126676018995291","14140667614258262420082756834757944784346447945483346032201564773853189239687"],["14318798755149338383371946633114294898806173876979326754219690337132587326568","299993572144514371818893923373836903202432643822454999034254597322686532973"],["27671976838004290189312887264533205744259590770994584870273029498737569211755","11514186600428817973605159275051866360824210597531327754224204799745062637655"],["15553037733993548709100165605618999057950269139166337036553130163489791567046","2366390135790800688278337552941912038628744342431037483045439521740222345532"],["6695423283270555971040401502526156117285973402745794236772064494115767694748","9404380883536676954840987700411259275164952818132858808667523649006904924355"],["28577395111935398087707019128415461998192231949774900173469077850392409247490","28301631533234530989920456924260820840422799177750250090721447860127860123680"],["9025974961936364573397426296752868221821961454588301231965390969610136638271","5178181749431624216699711328927477529726609944154848307637651230739535019578"],["16079375513671306403121320491944674577688029269062915073124213977261840193129","5449001484533853211265288665390227886728168702203943125278037711950279686877"],["13607579490064249538840089274984642996063463534322148752417556957195444294704","12910278848494674017027866550345539852192590032639438617990916286490284885576"],["11085349423621434418880676599812506378305834782511277475286229697311738454044","28227459067163363969211242020843559065772537125156274214947047357643350143911"],["9143072955587573322345691391831228877709729877938200784071634859597749377513","7045930261445358885350560717126885637809424983736333455456390333848718339368"],["27865138447405619655923122667739037697228693473343916097447653930481056869741","16499438573811294052394843639915994340940970357255984957443855544607985489616"],["21272715715170274277467802302598516473680278079287737978682579150269083662450","21813042454021722367484660269788353558560963186282220533902876921363883922481"],["11650135843726679607648977183164200371389574525788226560929938910989406264672","10946970827261567540282778801285239427174048617498666769820305976415812124156"],["7474805608967780522082165680808543452716356607219022643332863387501427877846","21563461723550253534521244182351345539245337288811380888928018003424074296912"],["6587043163200019051530186117852460025497580501507655015393497503338071470016","1650046786894331620928214933877851312468513255412842277400317969861528340027"],["9546624601128744817369662671310153596375551816626824645163283055477253936193","20731553855781311270276572262273214077001125037835356469456512603470628097964"],["28129632942100499886167111564680448711778217611355241050705962780455706402743","16889410172327159298505420564780095095482679985819234891693262063845880783559"],["26598240954946346303911740678607589545010886070162795557854090694242683789697","9299697130941131584702837684968597096938573193508284650063170793452508866049"],["17804181266999496401381251992150849336260193527613681058932825346959551087633","13496029020066642682359928478205053624296011353357350142966537319502463657816"],["25816815508423163070715170871024121085161215797341082385993492025489201912371","13623337043126614816139673968090318956840166865717870364245438246188108471897"],["14220488705085243059585440594289861791835448980053498039004970083860980490637","23470479316458730978081669755915685914526468558915392680972952796576920055912"],["19413856088681274895797816764105716837354807138248907990344773828181274195517","9786028883934280821126395959246826088612652256726927631652225967329244177590"],["2254731975887644468656089753584643782640343108388735279831814426559359922154","21825864523336060839037382431769087134222507392180361301806097429752805169844"],["14388851691700773963545179944129402744988426179742847496645701885587454032950","18604865050489105085815839362782696668036254347108265216026221894398275578903"],["28557329636720358529957233166753591523614912838201244849246521124850568129779","21489468230350448694228445901800275378137562969484386239962809597468813041774"],["25685862891848735288472500797665474538487633446098574733733561221138680784769","1994878928483445262029914784653646708498032195295416315717768956857703591975"],["10895583947778343525257937320497677412783922473325995224252010506649788613578","1032550476983510548543179782794753931936287454236311554681772603941137932203"],["18920628621274078731770025581628907428379393485347758810426548924212729846463","13761133827124763557811533265431556886640136221965836390449691773575393912556"],["27187567957531998300764415668373532085076993712740760347728765568852354379110","25821023195243515089205359029212714869458297125328913447649736923703682551293"],["3562086111766225916411574855008965361390753221223578233950319710619062514783","7793775257184926199874526861773761319980102416368354038191117294288662861522"],["17776060025506502179276611530820886117528271312216640532928390090775817741218","1921162769264167240064108840480951016786881049943400228777909931106119212913"],["1011498484334589381845952654068554637020442634691775191966051544690076426873","17261571716410672044653607981642382144604151509304674539696510261849284998827"],["10403192104764829152356772819787159873230640039528070490250697020144991733783","15582772764739975499320784346042817794188792803905173057216102111270788474800"],["12220452793410766144441189666858396210432026297502344839127087125389079078756","20656537970550736275944243905713805259099755378795968193284827487885865609639"],["20153026076904472664615368705372969932940212082902589188301752062034384932965","1061115582235069210069848340569541321555140269238840559881518276555945629495"],["16808808719249892873874443144439537877964205709609576357182537079073973920351","16970459743136287347260807474071518559024524066485453522565508652297579655038"],["23235460390272780241107091039237850187575463567322503614830199436855198210131","10974928939177657880825577775960505118960145688233867551868480570345347574593"],["26514953237402347524894539216595737154978621094523150430808387304113563542876","17678743110096588597877785864532802542087311902032859247811320934233663821370"],["7891923097331039193099643809059131260483587809603152819153465743773406107110","5993317776004203193725995606176275309913740618436179720361712754159089490369"],["3443091472410019419888488945682955872796651402024812036880556734208843083833","20237811570181971550244450823910061604532796008790267167845527654697433705018"],["7666715753219633706699205122937979617424258452065784807917508171415087572139","6754153182296871716063802784141782453336513485822663174395816836125773947686"],["28760421774414307164368236032123947798251688978968305425989774634289252641508","28440252727112109640607220261848033423374571611220544613800704787908462396592"],["2488377115239963713268763372053581054895618243972879713035319422305891723933","28798334029989574556767489945377305581255857102073354616030274727167243939842"],["11378279153652035691540345194582020159428370118574661061174467707378687698366","21713347132288920449176221207597527264435490740271722655648510410638306265949"],["499779842903129024514534530940719646168204832749180616411338829615216886697","3357165384320977783803358022432832933982411065541850150219538622478510634383"],["20363099913528805544039163276699961492574459580550375559540524826856120636063","798723745265826405842541565507621236343083115590244157594654986609407831216"],["13321935510899242715273660801731198009336856708477219883426930671372087011578","25016632507955675476281910567763553608640178653159509581541950433422048893430"],["27751214876388311044058353372612214453135642678081567811743562328332488678969","931267107397405703780172510852465348993192322803301570104740112754047818303"],["16029210447580784701336260980777387050202942714194553487275498262507680283806","13560345068246442578403601880332801866064561869760233437325386972825910293774"],["21564224281226521861716495505553980410377150439599023480088811730443483968753","3048081893646377919902408636704012381685045354715410518178953255576692034369"],["20760282695656216209010900897018356186999471069568530249638552840914370064286","7293300215252584486828527675160718380560909597606473365301393839841965456034"],["15038663965436841740770370480019947582615422681196996526808230030472546908570","7431670808465975178399285040328620975666253757990805871752058269001547377433"],["5966599148916299322831273981156355571437669643955846886114824107090541646181","7242663143782982584086554721314360940512643851917848008297252941237785931756"],["19093121978532951395887626066132195509674468044643263390180041374377652889220","24253834327927036921147216513281220292961244348201932761474657571537888324889"],["28321236299697577997907949445599510426581055386994207517794305145200688081810","24255263676498727274417370659255054446123216849305780397989996592311825033255"],["12287214098977598874249209011061347838095434365652011904625358385844115504088","3061455684308991927906931519777217279631799138353381960584892218363406701347"],["796934131612639481280365555089837638055732902371491777809004223794529781668","18357720783981055247334251558086979717787820788147799035053747195784082429410"],["14940612258317832155927499692022355109214106926465542006215583468388728499513","11605945394718058969868927140248835643914908988968288716202609478260101653046"],["24583847083147168670944475721448930639363107978144212552613324268127784129917","18347280323434493128103547236898721627801755835362207253035058633922270202736"],["2199112576801921973850209238003937756951433591772561124615135602491188411728","15071928214198238252240767134004907371510383214446694334629269878724245829321"],["13435929643183473048887283594212635878742803022225880624615058780601174630699","28464368045929235582771818183756016277068982458955786928403436395629540894488"],["8306472029359688935395756116230813523095706611422589318315703692780474714947","21909203362973848283400055478013291992385461292579642079220316341856945792456"],["17681782232422485977646742464186818029474487883613564613153299150384227195797","520776606613229817811427370024652561964680294846400825853997977617701794507"],["8056095777108640969953060863288087394191026222249472857704798717087534698335","21963464807696508094395738333022874161805631512438160547338992828655362674284"],["1728089298566674664869199957280401675694081781997865246864247318051764450360","1903570210129238301862997966562454142588915844450063169074182840143632517954"],["1862547603814644953308042993637529468907318618016704089337612543867672596918","4755175505726192344116627247225935575334377004224417683058474816752547011072"],["12799236003760602592902309769103525842908027424262101621499647365871976052036","18810254415884319521682502508794907598218118918044591825184329495761199302101"],["3614333025586157063851362960210533089797504526111737363153205131181377693332","9919982543317578117220174142449098768928714419084661444430214021064416881577"],["24596110466699569441599904530188058730704478777033514934073459137550696213064","13210924454465343172187378261261829513267499403264866062993256588590907040606"],["18520818975813151445675167849009309425188809917471122463399234159920149689090","22382372900513898298929985708006672111219561419737493679470824227562999506230"],["15978022955338936235020155196805526055965408723924445832071452134663082742914","12705281891076840472089362836658598801159416251618385393758102725003291631570"],["15490971261242747226410338260298970885793734400184591836510142116085226584649","24968102753115546136919816657094437355762320613223833495792218706849169487082"],["11608599009736393037956660313695668711862527680258251478593895251374214669416","28098074841884556090335740312210445286595259506934993814587055297220461126135"],["12039388674819814874185775752992544040009429252464175443079341127912326054079","22151794943016890390055570709587813761512408678551520859460740112496687389604"],["4883857883281567031679508927929198758003079306170034577645722986411015813973","15850757208869070863257896345305420153229198015698775178667302947323987062277"],["13062067847859922488583497992971622323760144991976508534851221608688575816762","19115784803118611995003656355416970541169873377940892261609976149938315520391"],["5164637610969804472736927569267143967449368224925516176910586399124423840381","4611343897101139989805003735516949774230444346226174996934157548464287573954"],["15979786872835137434981221469597356995852287010582506169716936881280028432617","9750040268907751660214626642231326039075672734261367171583916018402683226409"],["20806162763769852846273232769650687211821008685415464664928949228405877352248","9045417919702734212888110125701090608418881225523397841868185126604414614419"],["20977103416084371854851764618224051217456991722546150090792391995234306739741","21572363103870325125538043334509143438142821093768962446408296363375249284565"],["4891566114511739507750774270523889650891539142240848602032765011276979789352","24378028133536368023512908235996152506361872970294373254392515560623888020551"],["27938734821490535035642220070839282149004986781616149556816933777443788535161","20023747094251882975560451623604251654404715632985500336054839107951617334847"],["13562693361451105618190015060215172076979028831209591845700598467180083769557","5104147177071331867843020706841108285078940186061385404534142326773530699472"],["26859475203383577582984250816364394999341880323320504489624420896923055837667","6962714606101267478902002117587666116613134854665916099569153920651013950153"],["5968758777430477336549348526267542631381599567903830666857024217112539192066","1966458219481657293525220158391469597414101002043950732765664837747431346450"],["12928480685909063568098751573869412939118962864043015997905666086027321501192","16029550940441482284131864482842351012230911325977827702490516205173450907622"],["15022758105554593048502134079843383391102040062132589384290543029514378303988","23051123016796317072295867085785983796446282322428990329661895097489038991831"],["19674510640878457838898288885058249316809801712223803896698550115360327897646","11108008951056685029181566275603915507405004721324339546855655038437300622179"],["9385203442087696110012788696573079160203352635924463639184634961089605764874","18276299985860467322044733815783874460827506255627046732572535718904751661373"],["26222520401706438471817015129819623077328034729020984716195787998123395678161","10227815618196688182009984116053440841847441606908928299961947532798571135689"],["24343368830309540000163250296931573597125362605608985457361156895724965295652","1559474384551955668597215385029468671856837571879835372493320514757881431742"],["5795003971032564359049274653502203198961606744118158506938655070000440535508","14023863081623033934606190550138765313675826300190296619325327484822064654290"],["1888698370714018861812385011497889469135274761311008050081928794916523219","26867418988500380480030853648353100602323157780045109711999552575745494309890"],["17297912583370424401018175812326988009285111456389910919221628670015168031631","11925305600468038804996864120674470210629584945001947735840150265726219142023"],["13436760100224457981032030447260742266919347841145148566578582436606830379691","13204491078187370507031953853970703681211289555465046246600203258335053438061"],["20028628682587896946383335535474925267631474650251648905023533418513326972472","3922679377104351081343588506567186385653292970135007084555291790367418461482"],["4470662767171864498510340362753270067199730139075276857504365597492090248703","24707345967035715951800599708116371457125732675536308305277940940982034244549"],["7732952889999388511799807972241531665789441953767294212568777937906174661662","1686810212151302266696091658378884943139819840692890454449445965668917911523"],["21329679718616180042537101792511327490452929753650614026160450440796668792825","5698747095703953862572411759658961963814286339464792018256271795314863614685"],["1001054800888182595681063057189695415800793396213901457815626074503294784203","20247692336510454597017105961254915164251301876107552788176315247810967725239"],["21199349316632815982716492198472550409275182048736072045118878550343244504013","28341155534285205017348727641879128889091836326298820202081140493513457635092"],["11577974196692277721808081154762061867956248177025549864009628949907390042891","6875084277023182404330468969246573027463168978126126080331130334774231246031"],["10717452713034792084070612204670632791261061386506190104429780093627322166304","7449593684430103287689821631057875301099203756892848811865947783690427556204"],["25430866130914398361976289400864921105178158740828838383337212906925057573590","9950649802722724485621134746515801762116157863265568774367024323515106034248"],["22667523687788431510081803935260793811757728215983142941186664201132524828720","21427940234651054653880340007098314517530877851143973151928550180565900692997"],["12922137463460460745023269050296575220787934023988457378487268530261779090424","2819304290055566118532261595111320480756847352377095195068346511790630982379"],["12683518877181389618492930965404149420468795812007468607256138617064861802875","7887012938533092490835450091936869992745393713476759783940546722007412658208"],["23204906718833405034747143110071753301693277596802702727996985185391159826559","10046786260388447021341987201451932064389450383666500918073378966611695052271"],["3916125602691466567186429634081663185820947452443978861683611256546493741765","21805736479583816455084966135170310903431070039421374700350990020214741054476"],["5787364469384842174932826671953453112822492712809928087753242076417792596998","28602247801535528554244127972927588075530542214549592689244140948256624969553"],["8247841081916612725648720845093772885511825774687152822343731915801407501345","20937312518307158209657601092367010479389383428642107347016593961357979410160"],["317210331526393483898121890287890815509804454418529274043697551748877503086","3019943270307555171979351107720008029854295599139544480834873593404015381146"],["8356052460332403096735446609699107406462141583220015513755253672253967419078","6419112732678160629084149068442870597019277426391036453568499931376038518488"],["8711189820525626116293923114373004567213813427610989344759884416898616474340","18024082433680848057800497853714717866252917525586721216189514365445995194891"],["3433691921762793028218267725748268019315628997085485937547933283671836986595","27441766570667402500561577998711501311017775863402772517770006471791607219076"],["17083722396925605759903263785066282276229533199822885829254088037072821900861","20033393705631319037542546595096798812109285008696718482000134459153987635843"],["19996934956122309175298347663919054381947391736848061190049968407891805910948","979580710121917033582410670455086509120043219927618135669847631319449217637"],["6089162383293602930577949481715455181221532248015379775969514501037098977313","27716300667750205468072703521332852049451560369620861778510334442553493506510"],["11737401371476191780563373191770896678208142754050169430474853999710502710176","20963128693682110643992373756749226632864027799751018561100443736273326891353"],["21090502711827181089166302164938523153872655560103731075838542876561535846713","24675882724086121807914133678166541865701009854090806252587020145604774024398"],["18842249897187606284592051672288254622224177937200521849152087308495929965103","2951215522109530572037563954251930739359911451166898549744130748700141305057"],["11769274228047870842245257097400526199992040589744918762222573044006119091229","22363162812283390114398369997569635919791338348980487657263102689482377167147"],["7978454981840830345499885672526391907342388072113753208918172357002312326934","20857585367417380713253727255923690949108096298453399286077332654353145045584"],["10828460633899293096507838716383854786961340119614449184806260801902267051331","23560778539406088201491132290227341648146173572879384058115150427614788666534"],["5940303275290183112882296534700327744876639562834486130730231552843884633061","15217164728925786040849647403523393226612498285492240665970437210883173683537"],["25538488031472206204534168820624023112515470510301040895779914525941608114363","7372779335229211744754541186237474024960618466117592970150446082513192755814"],["4113826187633226205612990622653024163175150206539315430268352387920331886687","25643585637373444331244955605077528262527935186654634353114968607950306871755"],["26770919863411577569649481424390964574935004982852035722104945178666866539912","25586254508264632932053516224822572781268843117256246927693129127343152024011"],["13327372033777001639341359136241726414917505612165592228243081176650797215611","18573807375985880726392593578896460621513975644978740763021237416586533419435"],["239546418156711389386173409686571782790353611070999590936076578641558726896","1596955122023575178106077732348251431414332331097609139018812702327684270840"],["3933961855851225042783546747784994046466680065971835917980727012827687261588","24266817991180709258831689967664546298218179675073367953919353635178678383519"],["21946832841565522988416391386888179811639167148740711043930820435167966660933","27407918503062425394146939741675172657313353798118032482325190382256795779329"],["11233854861974640358317770704906273896011364767184028053975854991556625824719","28291036457931771946189288619015538797264710016030178575001143473509450445672"],["2716817617915384218746875189016652356819372777602823249533944275439149257174","3459406538079328481513447717668660805453235713356149172199612367444777692979"],["19004827254073848868239924169101799510792183968626608185676273609404662343399","5634174275844097500977580859556101884224606016314250437724650811221796126278"],["9001489417524173100648347675219684957589665116234528315842906535172525975089","13826797558566280876553978070579712365546570070069051299259785849904422674686"],["24418869325229381497586998502573269653316568108351082488697539331598942166857","25008816898139683251442945329207665050465699270614432658618556508302117235621"],["5035483698436573282755601663494975451710767523432288323031314391072464832226","5364847353571748287435066375805933423442906719701884509231175944208058862411"],["4706790827656220094119677905014981407307206881634353095781588861654240467121","6304481627606566892861060637946203739422849372835770423909819779814399466813"],["23425822269384616887495646969838460882457812812991218870867117736277325327454","24387700451825486082499915085741198796163225595470387320433455721441373066762"],["24051554508581194355883140711819064411290437720013136936466477875725370773788","28293846652812426627842991009719363218757263086127120490456066423787271578860"],["19672770586845513000339703311314509780630911877710480728651991741584898356679","1768976621090093773098140229967757696291208721929885434919711326644148543656"],["25263226926135659793155361244624081298637068674790971139341815111992603059100","11659437482613173789651960162303089807495246081320764906386988293088851720700"],["15227679162909885959965086481523923676332671804044725606655171126012685315218","5651237951536871236787534586793215224433582173429174968751325825721352331051"],["27604064516250459872729052699027394986457496272640760911484381345836916872092","19247624848537247061297271433238508860623794294797603540124480663841523742191"],["20480465082795654445075952330682274126208160271295610073820039962342502265103","23051581666134175018239227620062958128836793509299500677656712225100549777043"],["11101448647342441083439003496865675752513986527891731275367427302279067900543","5035117716367228681139826754059726187998445512111781088136683168040187024557"],["21454827447775005493093345848707420973530501231394605261921497306260583118536","15550795343952076285440006945454260577079050415502814324088860982266338202789"],["14367235043221456653542682972285572118615495150939993186850891069919100684648","14251014718971582474596800191633810626511664323309554096403621028243295224416"],["16504484220298425498805565524071613721018725039506292985803965193727868319019","17129028091423085303023905936806078825218018990914530805568240611375066856326"],["18109527543714921072309548779274240426448753142476492166995106471046630837994","263775730017394116553087536566880481005110291765386245710936694045138474385"],["23272503200490548163092593751583286001637275490096968168524046372256819090052","16578386234107964525898916990263539502920672103122440678270917067287179400193"],["24874107812820157076231973300946118811508093459614303406920769926713454389447","27134396058064766885479698470604043759217751516294222626032073016065622238392"],["3716252729405664495014608124804338595330602070507653574756356580570881607909","2606339323953127629501747935347063197271759952155560842623123554711613099468"],["645912646113119802427055841665728400369629529055849288677795887817501245724","8081057544489181593691925865434361034207000337848945848813625943926596527764"],["17438782606311065910630354618905125758371562787470205732642690715513629528728","27228190189891678688369376281317996833086969596568919860911847083849120435817"],["18617346207403012800826690207254919881057443165848669878386984494370900138936","6787276679008662959036636432568040135759921057843713049007204274200057860802"],["1844187823636062619400822954204241496035546208276018701061900309553200424901","16622489867106382370646766637709888553799204879030659335370783962122821565952"],["8815118540959590222495605608734043864484050404419118947823786332476872291552","16652122671869095545200016383538502901586182052700220238643960375720198369083"],["15533622826795515512101106814330200662242055003708703973549446272426556707115","13317324831378972570764047333887362620151965115641501921035589543604940323625"],["10506093534638182279348968532329269766971919529601331455525745207434656983702","13831542705373132915295950386706538064171158409223185057212722856921317205413"],["1618556208394933160932308465168784039068987880743133437645326496326463159993","26591437289591545487098264531370268053722210548651794971646467449972687461317"],["21113023471707880427956359381754228865899764244218904336597454689203803009912","9897957256697077455046451638976946909754389401403970766829722835696959504231"],["9976861374148215544072846625820492808015429662660526780934833109834623850320","25277140109041796275266325974300298594972070172223746842821511844331646250786"],["24708350340067662205687763440349421531696486398304805207698785077161314120243","22967443156382304292122808389380744580673463770462143584606575712593040119482"],["7261628147795602048566085840916792373493858409235719328031965034060452532241","10870531188808127421613706055657988031232720402593728535614978589781690544681"],["12624820102044871110532688743637139197642941803461062774785719614843229676671","13669445090169963475417008558924261638919315827420460898346272077692585299051"],["2087325933867716069438104383972345769562363204591201699026521501745955405880","5950935010842637227803733120641939015275596583078620071256419837519270050109"],["8061708206454655208157762242982748484094808172153934662169411712925882467456","10130252806909906998004270408449781426409600275745386286820702706239781528652"],["85060819284605266064893872659959850193622403246372639606311816624196215857","18306397391976936040040704707407994281261641835399037731378299295546728758179"],["19848805718436024643116356651793760755164058794619693751731723867788478005982","16905429499065795657769957060858631513369391624762605562301356599497355048401"],["24303477207391291865364860438127658176563987093686115342500097795023629156848","17986470414637610480422007495391531059756455135790044330076446497544459703740"],["14057684500214214020411278513522208228773473869265121144462483336671208962989","28478680154684826208630002530904214703145619101539948995680719789649446448450"],["19308803054221862674965631819108035949822603287187446553672055311555230300952","20948154987581155358294458284718169071677622261232579748289173455961050185183"],["13250359002388791599536950929047901879932634595452229963336599762845043518720","13707193340537323554616669888442812168961601376373869467908398696497817744835"],["27545515177199651502985796967146179026379626205810416574543351118717886728230","28036806173473956226517950003284406309736492060883805341122783532860930257378"],["6591388485430194272082473774773545918412739207043664058053201006696486925421","14469961623853618673410318354523130029592576201588448530196227591374952717680"],["27759511632397867868129200491052256739237440721100843050153377562824564036232","17208355968534405809805216754932375042863577563803437437406717938453092611045"],["28283485655173955090840193888466326705629335316463557081096213966872284220090","13048756596252529354288841203741206321970400357478104535911698190616799811158"],["902710718165496420681123222035617617110647435197207780471455746555041245649","8893876106692078201621762680328772070265032681538470138973787335652784213643"],["28308788864819233090541624559849360224794340985244665163714612437898141374233","16942495043323383235613095542830611142196390778426071207547184990753346997282"],["10849819513213432362875889578666788904976780084305332802973240092324889880167","16271519063747924639129777023928250055514190207878730633220389362245730040010"],["7284281719686270146879631989437402964549210520846034018439575507116168474132","20174670979130970992974194756046786186447436321903984250359579445542693022087"],["18954570980084749882817429583839029231802514194156701141184908928589632837885","27781559409162927365702999341272614441762983342765174607740590915791249005848"],["15944985074981179386005791455443217021849182805696143111043759291839615866882","23070561293303121998171823114980577181284965818900136752951599520259655874720"],["24160592176070705070923201789213652133290486438572388410200008840588377560782","6878504031129149151670268818108737816714419291394383914056737437994630914718"],["26414606291047769137259511135953271289981267048999143787190708930898281003249","7758835202982077246889145718526471169831677266686166639016359815862308896188"],["8157750771731420203963150775428149021836100745520902710445849589885026119467","13961595444352465414732176098075797669669204738993537493735481669645291014746"],["12944377126207502159389659265336106495597034316534269817004515625103704669226","19202149346250254746401247643123605584008193918205564419653599459513234202555"],["22779460574873183686701703623296680410514152174841251889821241501224073622639","8405690938083775987534984444526506255494283739263048180917640951820035936213"],["6566347153103484801819672365529823229234219193892946517707677448267614256493","3645726888793688383184129327848087902525988871648239774319172543569674032044"],["610961552575939538792341353087101115304041999795794243354094405376808986754","1337174497772073699647860429148623888146661792833871635520401539893210161221"],["21017486145638673653323202396144545787849775845060106668517363070826259416378","4058128250989120869051299465071187458616812766595889332257010643081683209555"],["3439258683021772710183944176202404387811763485195203664811450896757001397587","10702686160155554112399945803972288010648818001069124411218168600753231338791"],["7247094881865781094114754769885284140307032045455495298697810012005688680166","26376785341198565030266851006368570078836911946380858116251892237824570487562"],["15825128188411068978362752019523650069424921318452718706590115130800089517445","27373800806601094492159720661155678283773096875228464413716371077509036820257"],["13711424202813654037885976881946601776708331541422192027587439697121073561661","16679079836850408273650830225393739590003008755757091734031064513715072612294"],["11697045526450631360290933217727137470322836339610561939090484899863169063734","27566178661593499914720095623182238698968202291502633111343747738848482620040"],["20341840395281617509617239215453883531853857824531068772959254244535138405976","8651999740223130036602828646423919326219928224542820080902583180733884736219"],["8190468356392609523374302980500940549058173658326928540617997746335414376432","11202628209834005562802559383960152728998195889644774585066574463149854595410"],["15470117003200485644418546101101117660746295036218050212397346433187925232422","17312071551703442209241277304698028104508520950711534402948110246921265672236"],["22688190507114232986527612357612164517717147631200064857443342173994484212249","24118766504802540744598694672543481320796997248770234808075170378684848295723"],["24729663069535289554790154160644752344608368781452177334400029866149713979294","27869658704533555243063909112711400887740200696503296393366041427478375907253"],["26882940516679580508198818563776353787122358887155390367470992347044799598382","24287013583509643946039430975323916950398765217055972022791676570403114202843"],["435177457005579900049413912238012918664210426560758547062589477092135424967","24875982542737891209940141892788400680403125856325289466956110620614687494781"],["381260540238938057947077216490690770029709672268832677152882447202860256415","22010771547826920502686813249966576424123065806258317112097782438047545383952"],["1607901712447008873730733208843086664447247912311000851680413828283794755943","2123912464110617858834901326974341013946860545685955291360993754624883168381"],["12636676967133507040251781468997501901225198589653547491510330119449042002139","4456461286767117992325050898206701973315251115940178061633513890604543205077"],["2278490907695987058739205588717195021769768385953101970144370314585303683832","6472463446894647061929015396510816713384893581892169556420184407927550727257"],["11315909198334391851787645078666059358995351437602659246254417407625618816627","23209692500826143662973894640427261648504367118927692633017262224012504019613"],["14748296216753285754662515059257684572918988580512791657203189615297637173614","1297567719007593174550678145651311195924798819312459710818562938449597033128"],["4834506597499471264093331970896680910178412761581666546750422162217124082897","1054624750157620453105935272162830501325910792100712402598229514866273739538"],["2067286582648934656748556491219096732868331865765982139291094807780205315206","15062990176143547155893194277466282935393918305469173039755625257759778476543"],["24007576317856572525735675707115775053044295080262396961155868072342521709186","23939910147868876822735114270164383087816612775053549035228469264082161352572"],["19909789907115281563351602905169579292855438869966328594454708884902696817467","2783547573157565315812303011209161217209812610818409618932407883420449763469"],["6895100541261700361850850126365003209619717123977205413972459677145598820859","10780211057852973159840258762628500219579911789105029520425095528492095223664"],["5779340525698619101013798684924223522401567699812216877324967482450162582556","4459064074559051431982420478333035459620427416769447807591284737896760927275"],["22130523862209700099834787855492094171338186568970802679661974340706191741135","8714324993905220557082290065555509995457306677548990729852940215968968339194"],["10015980806826334812135379460891290619711668696275063104160563891795912080602","21509564290625929129863875442873370568252413780528140340790966591891508990965"],["16586866278504789968262746535479830941159290520623156930736870237046552164273","18635605100921237605501990392251831781345537779468642980170277106196483083269"],["3057532882268083849613950228155468179214512504533074889609805630585437270949","9731173339948486045253064967888645415235748594295168346132143625365827469684"],["334493141654713066558609021795593562021474921299097002345272273472855562239","14156048093854080360146475290855093013798727232928221200987994800792014463298"],["26970825656620765017960089127592509315308438731495531449145151040273469782037","9367008019073690664536590540996016192791571012559290193790152097835658859861"],["5375759433479361096660738654620060289939896367940101664929390325951997453686","20388277640817022909003636413788383058326128770918768700935948315389188849714"],["7069660290330534287422209027084016398617014097855546845572739598190989679594","20426575527388420528128544467745355503781566250320303142796070837899799875673"],["27886678421719973991156136159116768595572065640710252115632610681197547288434","17085376755956127063611208738151096825619262651088669710415860793546336918832"],["12237761548338229074980804115531367943513351261977734256214675915391476432040","6248872803486237510217874757690285432776427965323079804608246509546046603912"],["24522681891010630400760800075792458139593727009327825093712104616621425819914","24153500612792715360084578939036469072023208090794132541452774560812666079672"],["12828498475149582912399898899597227701180680099730529104086901779640947873878","9668894507220560222989706893645431543724508969655374725176837991069287026664"],["21197936654370074705292406227633635593350528610201935384692537964591250935382","9323187853675332951747662956415243661908668051887443069421311140553039212350"],["837433055748162919157565188310472942244728125062252050005185815527095206315","8981484722775436496019173133622436695436382802961013780802622563833517880746"],["11188355103884936214497094518901948380194167080962651676317862499023404288728","5221376848190481367621759268877289450061492174572147313769738608183594023595"],["16054270920617693568934197937701397151648521956266529105297784545874474727979","12127819131552322896710583557529271371331508896566762132215711790580277342689"],["24461502468221855134900372385646981236377216451712702634266322289474833908042","26180729365958488462964078703209501463042001981981417748431641992829709955666"],["3906446860193447954485955326730394858328776266279848072091163827560184447228","15261164601740330137872487837320747601383469256274346160113450919326594430757"],["16230716683501994142722805249773262854919661165870164519584959969543536942855","25307954098167785434895693332661971750770392284386248761815483165733284306402"],["19662892343520279344243625835568081260641685458486663077893734835751760226062","19935000089422882477297397110718659966643599408849564645119664598885726212319"],["9309826841405096699775470842555807136826153046569579697382187667538286605171","9511223977330223369672945613632876855499444617693859552582414335142739236460"],["548224121781520959292923297810940422983238942921954478643560643208148536024","14485181645319215401595584763687529143859933613783125868921743081592434585324"],["7284083513656839623208843272165873007554804675298562823429423700498743257347","3194584292276854989929762787014666133182367619408168531624892376573477802411"],["2411944712715546860733735735790733849442980781009843288135104297049606805059","9286346373535715236102458808408340565389345379689094143701727851345502531378"],["16920415682925056765969773621078066176026204624416460767206416580434061336507","11488228422003161716952658873650973131554647741096140223033089729993087272728"],["11241773475559886986252587287786839601194318757216138760215048965681790669988","9091090963070798338227157167263899285393056510674438977829919194419634289104"],["3246484017152349905620107975362364430797402962337403827987339745916221006352","16390034294642782054450805863690813813742089638314966022017146815203404553160"],["27554715614598865020461340490984825814416770543357785421433544413824638096999","4835537645132309983788727351337415994218205515218515088299017236041249060964"],["11968369370459421663046288486004292116770337489458375982024902381029038530383","16734418974765503501384899268060817344108843738973378980423581981634116370335"],["1759993930910956221450767805211143137885693388971573144286996492827557084466","10095667995958947834968398648962183858742257123674962975310723441615632723306"],["22984435601722982540932756614544880266395730107782104349236714528361250707660","12490237385542090602655840661920050753520604143142772129572396704699162046438"],["5698300766242747833080211508340010186537536045929835051224034237759755333974","16961486849689588893679280307033873724194065608054336143639540416151639625"],["11433607794283863816594422166321163852240727316937733876177795671110434805361","18530198166704022279754582482268010186907067684697470804884306841628828631518"],["3345487669351804259455617507676478737595429248494502802830369368789225666960","19413918040636919192971317111944215521470022130545558704057662705996339578071"],["12087432990723256164092630406293426629483808668907098409067642066556941002523","9483401784677346064617376312550306960581113106247369351763453593785038106835"],["26219035639278179338306412260355611428834430267451959847419138720668121921329","2229223649380871170634645486052301542308230130125886457335994459183534634520"],["16306998097807841234068306763594764017070233060272367787533875905119069712542","7132319360219477287299890452702704650142748385621902476154665290510728362246"],["28643486492834074319309575206456160486234233624898138371830478458495609337471","16608561830720395481561874003495221595246458175980404899186450651058352042782"],["6992705914722989260657570217675049194155433155590447278845084768800655068065","8436828234987166982476353490262542403633357089952828035197652053070915695274"],["18587418461177932678579672084919037996474064502363564439293997197993027037708","21675842793352409121453465389938905148885687422747712559934627606468239784683"],["16366743450061023427979972840751106313103108838774988358239087053843587260541","26324936527557125186886532152169137219980383045985213147954441336942187209510"],["7509332830562009162882587574357840256342459525168830175612642432827724051395","1183147689434823182399000025577654895391580095315486507850669206533707309714"],["14126581454819113100587870306606577162325613159311190102390911146401747774300","8150302097310049973002954546194777260933869068675206534299746959234650465928"],["11323072115895647178025792539140304308500193353135614488213244233297841308708","19072878181898774860398624018396304206464406287220546300270521016058994585303"],["21453386273037301244944574972335473384232268980266134106396728687877775633972","14724395895129360536914165004174714940055937246221816310671310459650188979597"],["11778166891453746212342082782344483645379775292102942441323962751955953271121","6556163208000078804015811756315318984146993690355349607631467395892383577947"],["20557589338241064286286856506066936800667398111721394767800623474563149338849","10594930853442788563410179555174289055857644763020897660750368133824752107732"],["27247507680537082740876917162265189919497282279240243752388224653915730094804","28654055425106727212817521357996667119150392244622174993961486650174628698728"],["15556776727742747842602636617527485673577485217282494519254272613241066620051","13077884563036737780628739450814810404638792821482352504722450882285771080427"],["25483394498469467286331300290417839812666950698782344554648651280797459068575","26342195813064695141655224472633563104876906056802833369482111385580019349714"],["7036284542234098165145018815275864937241762480450471841366612295298441808522","13592766726541411739670038016130911655973325295445758952025626850942753804380"],["11887090451699473247047914138458275129601683951754107782680132002504912850664","12186659322635266918652366995219009144953699410994439520185666267774127134758"],["22545995540502697852189114667678474373601002880000129823407191102463786785725","5929651417624375573772547853157108762649746643444262954113897513436340190966"],["2072964362422683864987570881095452822782385313074618812874865902152253248839","24043045876823278499412838656036354117178055638065589454387474421326558237039"],["23924705174032759407918717560228564796694078959848209587115468818252915353277","784176736984663869343685784645360382704817542281546411294832247899298486821"],["9164683948341119660607424576661043153307326639080373628190453054050769175887","16327010114693397961348777308660640177154309481243479835673495714997283968928"],["23234944407515438340548095562869982480728452318145024985566270483808336331699","23855807327727150948220248869942103171807941180428971699350101344069976690434"],["3482082052875147863324861527781640766951882892444122383600893707978367719818","25331564216936837515610929982085633197857338692305910229624333400413412243899"],["5836348327756531461976363847936320378201629357293185170075081033779249220020","5173702967278231775927091062760853345874397604611113168253148438011032310726"],["8603889825483053782613824290141771979832316357745464190213501707219787601644","18029871913604282259662277218026144081339994475538562771560190846663975119496"],["6870956135549835021741486366017677642408232792806787892598888149865983331194","22913369752977095195819750089943056870379333330554040160178221585668859297844"],["12817853179842285844574791270620753976100084408335720492853048375475997909649","10746958637100091249182887151991041889484679585621749463253198740544644299945"],["17703581406136068427851170394993010622922349017505900075076327739360467172327","11591019184481391056362991710715111186168134855186737897564937132996710028881"],["25951113929445893567001970959949888280475781448134575238236962391946552541491","27130182460468142938395710298129538454047225441719499615189985548413919549335"],["28753040626815548420977800778214577578891312679936231310837536171147577848006","5784513701124464870980411924706829524650818418627651862822151978098236218237"],["11512085199483651731426511718536643373488576008790000015698036823307689262489","28516436188453671908164426386263457632643449324955129937425311301659836202584"],["19480739136836455163216729468846426409708908571751739317262140364752370455369","13780038538311732370323635286920783275861353013841448155954599638686646345323"],["28226096239101777006798513347456917057719018216321923550929861799556232350311","2307446109816971675059869727711728431527711614721674147793863794647482794671"],["5969498235789815998124670162985713480531573538868999169965834601540069299748","745914020166778191578002371066013230026301901538396056022097571812473515947"],["7489928532590026995195694567653440854894118197092538875191014172344028302268","20167832440172727938202282620164322413134107715372215933563425402985570368345"],["26490087529072047571427857354936838163158184659490361076906611945478562273294","12355874945242017387937137805732678426549580865012298507481985071243503467348"],["24056801677969507706659464382985798302833623549695609490450996834312653077877","4825193333319773158544533254148443809137939695229058698816998647280151562492"],["13152431165073681133197281445156516859161378290370726627560391009920427883305","16930901253626431683607150839294832522512226835531152071334724695468733769608"],["20511629673010268913537449552514250079286930376791932763867222188820572614388","17108031762144798016992237298796449225987849122931710206426787703108306513324"],["13694812160539085622285474575740308148755358660739780301710696403985119154856","26483813996816471259787349696806726653275561637382774478221801672929599368223"],["11114865553622152383514233771947437273405245811628702710538200163818922149746","10374655851905208085757443999419492515887473825501475098795747990379183859076"],["22769202998410604595287540661709492015480268357642265390524225243722040559723","26450022001914817634685452658912763806409631422452082128409154260633873265845"],["978470247617247361643007648676895879331902959986791509416160695538572179465","1984180630150243216853712423373900916741012229887541237813284298959487469053"],["21826668882397782202566505085564881372196689668435133452051238211925962061755","11458895146108676273959075255210900268327069043230832320598702807905136163023"],["4046545125375364065817174758307345016543990675654675382051174672379886251614","21588759080173305293940428653566718230219624716915627302666901178495267702718"],["22723411213188896132023347504487475233084600877409860935169431373253001395790","4458103796343975658557526662200815533339129430270372484694843430908672625655"],["7897811919787586412240649360143586133436027274936714510267123841972359694078","18681664932941941706189647998690876037622202025062438515880728878589845836737"],["21042194091883564176760041486446073006208031415565300889753926849976521372797","25460254550960641931332739947464866620981079652127646410334089846688844961497"],["10562211846209955606487511725825357265615844289554381177694137982173956816251","18698995040206715953444360718010831711619188690993633939578060401640075296688"],["8661462500991010722310799299999514978835193515855896543663992408068288645701","16986501661823318848966695560830234746632889003781055465950991400346884700666"],["5329081032937834693301099994548981711362149040524005341656750052190962784851","13722168760351254219069059408321114399349797264521498639838416596785568108129"],["18685603711971491503359074656113466434610412849840482283625289515785638703966","15036707321366841122681354607412312929558638702180077378495549288293693107300"],["15478327963775665934607391124949098473683218446497693786099416887359127744592","1621603526448186352172435783109450526797821145669522277468378249857450441270"],["7074765728682184205357252282549895170866243769534601861275926457366446171127","20590195810214722507303985479701589564169173442925686746134512686148471477632"],["22467503740002969759491452518335436602304347463934909082276629008417542599483","18294216126752487278296186083826555111381309140766667381958548597107931552915"],["24732536391803749356968804076289317389175199617379331171624138006716963939477","13634384850877726217489049527816367954143356494238764365140764838235583162861"],["6436608842408206830684625860841515789409016404040224645456927450867408540322","20920499749395611975177515920946439834368052580318140261177221288471855507341"],["17171219575839629402123072511925913117077810395292416249832074283400748582504","17247032850357813290197855838457302153616615354614993540285136684520413618559"],["16750280020231566451420783974605472717361914558327844362539301553168117365171","17206139906768441481666703251920208554628313716861746519831202321266869743412"],["5468100803656725994646481479782003351505211965414210627560089976430283565846","7818017074978926978333608865906873197506501586293822067580109754616978292115"],["1884066412746119915738311748410371005092698432762564961582249131213459603149","24716443733640656724418399995460554461592922804243429254366376962621379633812"],["6700176075003029131122148774107556374007526754015133548897250224669850377508","8585542346304855514434003062090588527788249701747918760924575179542377824567"],["14142754478629842873720783718509398091503984998200812885677030083145830304651","10974078744070198086822177007895285694291799759963720078243567902716517731263"],["2974557464468140918418617137196494820251019374013750803201272465709508530888","15422208202848943734903554256735984758417696793092698606549830308974074863161"],["22328663696576067582147412010162088473802915039404678517714018989972014970442","20235005184837154764373363895276275840097067188643926931560284457035219056276"],["25264214311902901171553452411931369468579691201975347982250782455462291676061","11719516869981014883578921202429677676216891759925709527057054553746629814364"],["24156574729008138887349100020499556381601144231644082895716524218516614839874","24887532720506255044602468777041002983499383603905605006218297328023874070998"],["2866885227632254162674211429634285001986799716211983483751907765034063174805","27136860145694437402044072221689244688547180934592419157189066494354561486239"],["15758156342022717908194400086778854983419730234337488024743250954661723823868","14257203383585675904004549269476953770202266090569531507902327279379268115687"],["16755944161617919355889540396739885104706749871451889487235084613436262773663","1257264863276289859271073319107690342910240529101001972291817463228483716505"],["10025168212876054787856416731696723554175265445193834070285457621823586582391","1647832143353207900901788985404395780471553799552937495917581583405077471448"],["4716131921787276176510634035416213514360061073876958540086481027099718092017","27327034362230712916745881558561878192098050231023104606854867131545653577490"],["16031747522124478896070107730094072361430631245569669239088706877392735237135","16390170365244117043440707184648501457008023846617063888448045812737363537552"],["3283909339456961524940462600780029784138543553891411799373409259659587384081","15651063615678636368901197470214535596091235450546178040964808238512548492725"],["23188909267826834335672965357851345828059026451831240474030126000645530032367","28796007782947747714294748740227894686894138579164749000193544249965985111018"],["15234227776759624371733828178272164192076504136075694519703354831766039535296","18128163946104931221497431030949527686522806486062656945595600925300514826442"],["13410258220691540477322210403526747561517954373018727782205549956541192731430","23332988530179097886490596547964060153970599242709586346984799213258728947476"],["4230834617701202653138842115037136453026265290187174167285370168915002884430","14058009352765268883842129897089418606116875800073157927880943188514536019927"],["12674075484835599584054291521983090183217246530618060363085858082268516329403","5793457600284727883557402939109062379297769612766811371607357216378996104049"],["390056930030256092028817516227283231294920871008931076025445082184002646813","11910537769137525985336670219682523976725606547027422724748395631457483385868"],["18114336899641668183098645756701897430080983728016415630202220548355079821293","8888403436843002172177491772091358555586020739810500617507611460906809454553"],["1633977312936456468078810744338685313214735828080443911724004890361937753385","15596386543875963583583450408494978518037858537164496272015453361705568133230"],["9514536722474796406670417643937070808386662951041978096534922736501956424453","4773005986193212753171669170399318188769565238980456632585117130324519717958"],["2856297327058260952087288799850513396631270532724064152695618146992224636801","23298110648874853691156855957915606465835014434166238974924917710922419647169"],["6028546339676922959435274283906810263202465714782441086896177047944431763036","14450899470013454354538049416704426474248352591545860689945513066729740966810"],["21813605092521910723728531958104707538297662859989914624551113394160120966452","25893478579880269117009662617624676294516266914856829759306909194194003111319"],["24511882476972112090963382820471306602731158630209811580207324507638115673375","18645345279372085907987614543544144489579076811637605556550400035307616651720"],["11576348768167812803186096682839400843984453346108695005138897752988663905088","14888323144926814000172507887763614478781180150756596039022542828137447550625"],["17134529191361139004269415853373869913624014005302894188804893093389301980356","22193401526125389485945973786517413837747314221269885370921192076689325369984"],["23968535649538340309549031113154601904111385097559346968178658645136392516609","13096715939551208345461658009609810303674625360772037971686876666332426554137"],["17542780514169733211288403097980726184260628488354158637261407527538008230484","15274828698737389047418273677859505908091148773402812963737047031408177946861"],["13330490699684827093334331206907908381897296077093207049578475333848402029939","4331689089157806067464076527681535579649697629260317454333019497191549535684"],["15375390865824522172091138486825469410475722657027799103123979345842896860516","906502831223771983277534966745811608969873057626631752343728916291646065540"],["28374956911499230446755225050985167736977217279943569650705684441168648888046","4440160768752099043518084503040570868525763608715723057952446134097265340344"],["13687327614828607991264834590113155966646243662890312817780248363237167773724","14928615390718011544284879011920382045250696042642546449882695753072802832947"],["12250126424217435558401133172106378166201489722261064862949011269606275148779","5249455103503896004179144505407956817342560493833895956439017366327265760087"],["9641572351446341550478698102499268709062688770762701952935448153443694842242","14700284994045511600320263269330048745778546342860912122024606741169887304010"],["21966224795237715657832996605520479829937413296035997053328145931460833658460","3006847174529958693047106581020417651491984267492676386959851259339026225030"],["25364918487070408258554807333416025119627172992567450727797431068134371641947","15043419268254627721145158336504444359260624911881589131706041349443323816440"],["24190141278800518952420444934442993235330603240077174249985844458561118041726","16969671366526777058315427655358204570560834818327753575529124226490269344038"],["6117398687144872061376302765545301598875276271622710928808413841591589852786","22664083724164141046042356207095960359384081675992624135235059056011418579657"],["14020867821446253551640285210431671047921580808673263853980925073442664448469","14706711968244923737095643912823557751613867780386735103360861052577415712656"],["7132376309629241636639394786484032366620825281426673872786328588330505401356","25891522600386160050343818328097633907889897173223359199396240177806280328574"],["28273519844386968153781483840726376547215888612561816294195394375586554381988","10143787970785872616664996793939999919362744320889259673841392978583459628061"],["4257791285099582743562659124844137625662853937593847229151893950455023837118","16435004827761374481160544706534651380612157925595744236808965999817570481971"],["12510512494002518203562086140812505134211497091406152973826082917386631494064","10496971084249498258044245277843485275313399983612048436911879475020610942972"],["3382875944155532581076448239513831983930630966128314399937235426744860131109","16947592564997689649557681456233735088130623913057332493356558196634364353807"],["13458484011353970925574099995104518080451358219000609305084152188010203209893","5676491122043380727615925577050282189903645371906945020206143368846917841245"],["17878617537736011495678889708718445796084184169165020301825654206288634797394","11782217395978793918107697300299446962304179642959281571405351667697289752702"],["15448261202035121852262420532058657762888762826582623499069682744700722927198","23034214718054563876999068147781298206079591264375352986858546406774371067688"],["1069589262955847663373418223218971605295917589037456351780345621469848103527","3994219201985214376208155519032049707145656432307494570057305990106827062518"],["18171523554199339940732007407867102140678528352455410604143873039349421624560","16210045752116385259109845976897230725588017830412537673312795305820598478246"],["27070292375577112699271159004076555045816602582074937592742841621622930709574","1130783903871406539300610740697986652533611491781961838462107642967347514361"],["18371312702905044927892296468021770484877706280266888124340389991015029658080","15265501397926751308132513848406447379328437300293560710377610938801046678362"],["9765484479403939025876453734708217090674158314958155661893107027989921480678","13221488229190880072942423248990443787212715168962700001525148353052830011489"],["20363570731729160868164914708137995694960289807993846991896563080667225057093","3684440435871056514439972168155096216750948382145760109709505031487400875639"],["709851914775905491659325367622085539745420138255490949665353318379152149820","2531420219882956976324294996818310344201948780120825948210763391719047759861"],["7876943462412573680317951360020269154442418739694602515617287665405299590602","20159187847685211268789333799896955312859361289735727859618404509556832987238"],["4221138129716316436527445482459168574014850942838566664160468593780994068154","8447240797663179449815496602289039105169784830606822298300016603585626685294"],["12671434267222574101669872243610525744956913297629947957552625080120489672395","12545299415737168920374978499022833124120474651882608914585604757054069856"],["22538939882444423307146618785431916097145252716185472571888852035831246382486","5849615290873534474401543984217159480866177762661997574548117104668172963569"],["14349111445501058829760933844134853134570441847093648863543491477869208127974","5140425177494433817137615577667836837890875451549685460204290007521288190081"],["430633822626246387230581752449651761482218095344952620364317366475401342008","7985866295846785249602041026188271827235650135245285430608621691714107781690"],["26802958257407417506661865177767013420978924542585734987235342258106897770970","19958011973064266384789201288743852930927182561322986037750474508138206746147"],["1561403266879645974676892106763229440366565364465469750801127967780209418797","27546329996851590485402995363975225293121033995213041929502896130767630333405"],["13112403671490744271048687965120298409655941833854403695067510814158120128963","14020472797880073030664113515969880957904214051614599696902379713608755614435"],["2487491338582624868704375511411103707422546777055928037718307872639111558142","5197391188162581416074748176966166715235926257396482650429840204261330941933"],["24257790335024118161726373080014955630842856703265049822173477645470417079924","20381999784222439257943855328211528693458187569378705024286742980880313090669"],["26949250386140965872391675158188537774901483059371090109905030493441999075601","19784593886036944945232671872004834345596511047816961191538084956019082023899"],["16526950960978851102161051382695573519658031410192996095561425570460599068026","15606567633294442639902347650605227914174240789188820603233904652430984618731"],["8525213709082752797473780530631570918853672716861058589679445538772445995126","2667593247435498604417829265379674613681780518637504379088506117083986234652"],["10094797913383650529690711091700084772859377952380180825066676948552797038252","17017268355550641552121130040214068615383949767565549264959130424442265448707"],["26709123187551234156131117414204276106999638314918825591089725151157784775746","14853746290705944291756453635774483314821678225929547983051071375728253459782"],["7784002192562852634594235322490399351058661800893050840640495004592483729470","24293283599362159073440877706999003253838703654815503125139683085328572142490"],["4220575946341585565186797104552048849752052442867395644733452532002270539475","24597511197555918972159886340297414913833083086075065570579018623651214100290"],["18409615022188039639127145119210652487147665511668780937821759251893042621605","1293620559299690887906854717081099095573907322766843506504807587972955671709"],["28615894262008424311877442153011896769760246417089540931321568081422729258847","11645578649425223742424363827958544341978506177167172319444964294367914032127"],["11635810739123398433704793451314190396690272421582774588880133275716154805550","10274476206222614126042430559277343982026202303051393828203107810576960770286"],["26817208826491500732128170508271654952416119393948644437760728793103922816799","14342241889612495022171213138750039974285983779411563136546304021499981762265"],["2973737883839223127066781470206490772479885771708585371181786110146410738366","1374915979130850305040476519204291159853464945743205716055242571771527769170"],["11007333678718474915303478541729726942250553046766536829013032602629768769982","16810674763892960928926652563671170064566266881638711418580969189722566963197"],["12859509884051692626763210130586423303598698954577437176368799370810124343242","12835763165401836151307293553593809567456850979073803760946008710747761490853"],["3905316008171558339540674124398861647384961346668928105753463195534825352020","16976210771458274497543021258648238827564788725192579432853756076478619071639"],["20771693154507516725388689702355831502080449943723540573858980796910768277476","20549037645031078569809550545278138863709009441987682675988203524385977397911"],["7627622706911367573320565213611187452396937243089450153330583419554040011331","14474678556249091454112120163935900622452305531962139393691383046722200759342"],["6775419369744161694908126348740143028597787215798877484567268096200583747183","5129271762492964166499730084801083231539870471740312555139671739804543701104"],["7272075138110706093331000298698417935637603650492447405920002179568853616424","6098307558457721330189942983524921805242729387116437744704799024530345357326"],["27253784564460426379585254614415907535741758414147190438388995603174092160755","4599260617718445689899483912266437940019878333418970168297396690669605696584"],["9542750205751861706664430638358662384820650335883105267720719050827971187078","20801890025699423300989863443529772295937077034980885308144414255542372848347"],["17685168416712204961391616921992783903471102749872028225875571217569213792826","2877964935534055083042928439747003296756039938733659257214758236987215288311"],["22530333772602121475127513569095336364236425300927843903776761780738437547070","9087064125248855448757502448446717023272960221616071565837453692013948976559"],["5922737159810387622985236019587129232950869515054984247623497154596404501179","23396251078577979140274521527450327566695342137708013615838047682358835104303"],["546954087306564684265085765230754696643897728778639095854700549530447556456","18437545428963175545063230112430938491552815612823505332405679253310972363030"],["19124856773941844548847130947063970813092850736919616273316313319452351868941","20930202185123321383475690529135394454955680863692139907195716362750656496142"],["13074389653494051741795763679532981067092197498643974431751087926531508620713","11072573078006238208672543182131042953826483268131415083596131068664634614266"],["11882468537695580217312626942395336771051062119791594771125161038260837191835","25411205971581347402380591258369521884374662247620499716025413916764854020701"],["22352093289226582015712282229774836108785542157716775459647401775881652949538","2249504047173144294441926159413469652655467812957092337622808832957585400053"],["2246681943933183030342114619027192038293449306920621411273848481218748515920","4006802802300433793805895649006000995088608218562197157176639638533139148075"],["7988792917102615500495505090822780090625700320583912162791886041591399238018","14401021746310772599980337737687520097650684211537448289659447638653318425030"],["21070737691747680490513101392239461956406304207969557676605787648104031624135","8663895393953482378026461989573840241649118185562676059092975235113536932948"],["8335564855541206707789644621436521180023889105248088382690179665163628877399","25562233921988870568986185077858934489704600008591010563100716882187580063212"],["17006802142627245925231044713126485058724365888259787050923311922864115300973","19371773013912875075142882608040612750116954364122702085746527945833262932792"],["1582916370395399408894283943255132900909701606409691508584907585771214150411","23573201757840774698998810498403771267466504045917027980836333105849259764535"],["1318573918620309695906132431320883011475608788607620680101461741795293461381","15155725414807834555936339780216450025274862536514306041975388287660550506489"],["14507907966984138160139993762703692082671366724186114406283919611946114943341","961838856422052489464468348019438265818196706045370924221998518865326208398"],["196016780055712122933272497930990565253482919611797767456240059124597510998","4425645217299033524629786136526746438522312351322658522375766920447482728971"],["3924719792986031363280105423239811629288474107490201159376869252492897104309","12218102240580434184195283201699378403943267921475614778527380456065036955325"],["912736958522379995129704307178447194682448989541981966744601396968620302859","17390776095895653622920178475314183165297447147052686938170530937934957738203"],["20716041520361873580952987663369726590022318702400009985181883642634236054864","872833481573236496758355511728310556984702480036436504068359236971883346001"],["12848724823733941031292268261175768766101036245325355969099524260504732977849","7412679390949561390511157977869299780831302835322014960157811584764073437900"],["16349408553244861334168327976005241511278579589776460064676030986505999891350","19804707627714051957204359916670889950294699203035679479524506609385301554213"],["13221128860905225076905629837137929138440743966947566895391371072381471014969","19267692558871603286949276048146718681093813883049558280369879050356189939259"],["27985292906793685139078485229056027875620231570527463235759468579721384772099","10188919343748012964729234182775557389225659432369021451944030017285537978299"],["22070955345927443745511996937784746574259748151991887205203441428246340020623","24456036361921442218930029891598847049854963139444725709021013100279132971992"],["4826430029665239834124253347349377048094368043694481872560960913601769060285","21688271753169155713232518636819593158590366132131625073295159195713469673631"],["27146850073364322492748732130427680125059366009089234941799844855518572321779","1690388353879843099581273449218963652057614382926446747103671376848799026395"],["27923820490724552032092826995897781511549602843596048441017112560662134885578","13133695126314489209829007888325423926716366940505963491821418796762304418945"],["14685011439029465023726926309134592574968114123290636519728362862763666587743","14415037994879777589465399146684859555307819856791999793462102120552567491778"],["9948711790624825791638907052020980586656232766417605854265257032147515565468","5516076475985025549324042155088781004997484958439818935064380359213072651408"],["13390908369363727828281439022404921579229022655035011827757519499275652570371","16144645215707949656382167115284305467704287082102093425134763939217933149560"],["16401706987703203259191611532560516866791413929579606797257072848384465261954","20488963200555268986039963749040023443038252000596895037550812704752178305939"],["13178190245509324224897594834069632754182624674331802758749097892094223180223","27975514856250766093015913122417316782664433318350302305853580246730167237935"],["4230630965103494313265725607946100580737814749939462492040132389086914215248","9736079830816631002257379849808256060694547821443622797910038150608766676801"],["15355387572700668048885788193209067058881245404002873288006502928881480256077","19547664714841458589784875320995395085267385055678713711257553780346532271438"],["27781212031342069273396155460132292819505346894544795869519883310043135215371","19607269751726431814133315444864778194848994319459277843202501906237246663484"],["16196270846363180602732122797823238816266869053980595513701954576721261090767","20913024165418728637163059321250889641405550435014951852667692715721992417401"],["13569452937191605763329126776939217041314349674692301879358700621397547123574","9469661556380249386245927895198283547014107353001200695279033235587162700012"],["19256039041368806815466139956460248779381299582534825231844192063450207801629","5564679842260175763997487619730821354065513576596945665143290077670832209997"],["26046097309531068564566451972158946557068053753989467908553363247210247340739","7297449362902482187436880388068050987625523155971669029645047970330571753253"],["2566236881955890076554591309407049205441921880987355608639739512795430422303","2742505836674293742964697967797301924866880487619316971160267446751534630420"],["2134311819123386145564261662480856371384315567305018723552560869130095357399","2825215996762960235120246872653703948964920207735897181732987528529472728766"],["23643441910783913186909689107366130691429335830947529499190849268070382643747","25009990268575390415591369511593585771194311490707308111794077036456070620323"],["25552987678543444738757276752707378287811193683676550847912028744518085122605","19422601197273713447123336663983686426663700870503733761636750441047409668970"],["14401849195801274821094765002642329529879237410540566866148433618085682760114","12629731726575082385744067244663096489588421021368861984885413496079715820111"],["468102807448265455424608769780015414513685331561008534615226521241217995008","25878381829961641238240984476019931756699260069450117739647432181982509057285"],["6715162683606654720259016987879671575912436245488786812929698852726640584920","24526574799710075211831423890821197979820330642907315523789198981109077262049"],["27132681306780153867736868091673359792125846774407638141487910537161413316865","19152859264278906740089363668415607137426051810333356967958869129805035306296"],["20018332842774690229624110923716334789342833976074640908055389012985376507927","10700172836338811463844874035025075494219636686028808229502728547593779559177"],["7962804920257477768139727776315196775981150756551894523376447433102257108351","1943202484497085319084390289296471022484243410924964134222277951253932720475"],["23674340096026437077303782378582102469685846225784808741937781671080863493373","26421906257792192509343859200124617157459792174214318184776653659858111350261"],["25189230718861572833647569554597087311300640784527450264323073363798224262948","7888378381236520474029107664263483617929511653908443013482475955655985264006"],["20604312963972182097982249503411216294214987457307029006074598245954704129543","5077190906825271167074414809595641192413980217665126640180250144837103202983"],["14922991980843653157205680965413053143341159244061482602551233096130780043229","7962693217189331607066786808768643050310636422564312832766965959550829823735"],["12835093591383362133858636886593205135387225449910661776918375287235818205098","5922656286704205114119653370239953592740530452622974424521468637665744702176"],["11396573046117201748614112084167667871336963603375987704507148596540973660496","24232822569727652976384411544147551411852466495219579074170015223393742393178"],["21171809777307457554495746050985400662100313263583948763248061482832559966894","2710964941011930617942653832232748127938823274226333688055481259689606862346"],["19660350615702731469557409148973971113470484460091177339951774916374638874596","24257086847803980589950422079750762709610047395103465453329315322892897612242"],["2151587873832122530229374917245852075679079202785377345808664368106102660973","27297890332840230806897592004776367785303633198677223122265779280810407260474"],["20256973315005596228121502554929988463820558361283442609040343028639499405555","9187694452101508453119532735884147384248457043556663110302035794878492800743"],["10094677967946086420448892837062600180670055054978532139050150793774229789219","9655587407506001923606643567680189887504519193278040862877824935481199914657"],["15560769203531919336587598973494729346897669413889449916469820335377641830515","18705272059028046908946385757930346921364783518373579806254721244641786367970"],["3618265306898820153818605080662741748780665577351159404461260878696111385989","22075111318463598140310376279473837517213901673123013988149368756697306184082"],["2656663150561571755121320779125087940494248909906701997653079134864510599282","25645042576750923814647089895012608010549323086411303070344930360191026230075"],["19146382449903678727403097273683255092339327000732260390701390510479713960444","10464771584996811337414583897752886430480624072664596230324387782316208807009"],["18132214829994587979502779517571308208987894121361806428012783111226012751342","16320871383119523956756392837472311656704910676459973256274676250985060063997"],["19865096044175689536177102553680714466982505301787363737255424643926431305722","9804013462479648394812742426463933971947608259680322894897557214011142226025"],["18720847494059576308607998196801773030568552756181623920600547266612958607179","28403435805877203250089637108935139998933559110055918110441252418663991751197"],["5820694804751327575705841467056363571159244840423552661132536521383071774672","11182190612262382482718928080373884531382340918702015681413889870747489812520"],["24258479650083294493847291948623563582921730539635202874694355618783919500426","4723831546728796732575700066189429122333275889030477455721895012203921817236"],["12977471438456862850720777662494567176638830831190526904769154563637052452343","3961073950964097586154599921466955744987705655107730820276574283904382806176"],["11432130204115158363238744233217263546263590426413404278425846633096337007395","4177263446900722879269937104815011385148903136291870884997807227382448275215"],["8036179593591522963073125230320920621047284887827358396376368683552437051577","1374305925503787032679776909537261974897316979791683018827178382763041264096"],["9712012441054173441541449262681747710424810670136307107653721157073883505672","7814304719793821575164517336815264491448009630093849730002143402561049484374"],["19877719092820429600102522388124000052356208978227010664178098660145159667082","22343251382374418869776965148453230774454410609549335754336051335849023911067"],["10571674546227935765492016352876900737916472585126978977873925739544378598139","27497160864070138491061584792041751138904160305775028159407443767582620027703"],["8180865866451455703571941329719249234500290083612606684513411450870643766101","6441158478313028720046506355464508967516252549251158692957923494626555223368"],["3326134407400916716339772897942442292047559410506179642715065413205529474374","19310239502564964127138811183216886358949402756068699153113626798792259463284"],["16624074342996817952605180296431881204007462568174226186597586199075112250335","19316826375992950556929862361557968742630648539247200299393751471463928572966"],["2168223801181469913522723586210375499326448628046048780639539718606016205722","2758629160484588911864753822248499254922584196242589052587234322258019672314"],["21730962387276035457424776442969717059253291522709502386393132343500748880093","26641326687351291420437925291832783293542354621207696301493463389574746151162"],["14722384513720138006375975493832208907102575599380824323109880248355337313108","642057230836790770661515398380268471666805828133888848200847180837286563302"],["20653043795055061517088913902052258540640195469514862908047343066004123983576","28161857485771125935582514373503462362850415009045900683096745108155613525684"],["11927173935586155706999338399518018171410259851897830202996891923779433990786","17218775528118948188420132228579525992450542716527804675740163591422729677336"],["14958993769104805218975877543260845366687263025887776581694174813756762326135","1048672243893899425279783700273606749622703158150603736195078485907428372260"],["5870973203938963732130241066770123537953126150786041219695590569825700588329","26811149974176231113554257723245833829075674953789018146717384134727324949000"],["14689814565662314911077665467183447645409303990150181636151451786364897589351","14369337572001518754094390403511024111358577030710851392406038211691588650724"],["16803566072769097755926985882479480735529031122785622821632299572233110305382","12197301826619938272688759055218851634820697303024095104080799460136734724648"],["10779130666327507785668855497754386725551318945187134748716105300053432897027","4773478870190386516846855398674033704713690568006848440391895082923478700116"],["11512538876129859107624660459922007320667214924029930592344703430534122069624","10333714135509661852478626940296849833179270810186476417219146126376090505867"],["2484415038780981815022905593480278823593331104271858670974944151438561920895","15448792592303116827210451395835011038170987575304473789726270310537798809880"],["1637275229749590085226569394097065873757033257793218388781329439439662464188","247608620866954972370705350083281781410659094493304384021684556895840445136"],["13533376654053157170986657940442048565922728175309080254124923653682334913971","4943544083348725562390825223646856962674362971997849576891291486396245642431"],["14589924720554049320157053921696200429694485216068889371935094372460601422688","12423943076034860862968076466372005263021254199806665590956573598043782115442"],["12550050887591980141846112433969570601610113475918219506354869865781780317858","20798228080004476124841140753786369274981363487010154203561705143209138461706"],["1714096770823651296512642429392368773045833449932199137979080013018959257109","13482892593435293181028059984043110063459509860382018842376540335823225831097"],["2055658867688356839253989554290272610064691685903605862521642823582133507528","14985648689503394245784608562720797703201405272011973885603666688570419896861"],["3660424525602518723191739836880211978195433053102047389654360889359877820783","2739317864346383938537246103710570028300154670612712763628823026763002277299"],["21500732185353019047136939328055253411624238224616304816657529471124680108434","22112017957873207293656524310554056361803061608902171028328271247000814211641"],["14356615800911833010137767228749028392189592045660837567380850360545176672629","1751385291316894085959416555578998120301477224520479360849319568474071855244"],["25099042061079933621825823866113033800626686825134055016341020668814316422663","3767300590646987286386899070532115601446766628395026910898711586391115660757"],["5550933261786981815899581031380740687330689836238816475291734633731349944897","15066218934049168066341445982831897923761784861707388035954641301798444624686"],["125516141274739387477698425829887671980566301916436340023827579953809334236","8859571228254831634237407048961736397024517862363095042678858580622093051331"],["24587506989931128035656636026984416819150947285270462510923613607920415762915","25969105607962964407635860028661672047997725146222382342823447982889331861468"],["21952592250526824134576794265526485809476264548095596470700751975446435602723","2200665628007295550338763810946075721888272242314851707702783044091927159168"],["13255493439817943094734278291444103586987316857729581709687286582938014860510","26748223486129811897653138153909707573525404540253052430491501943344240216940"],["20897303741629323700706759396065448300850629616692954841486875782702005160893","11926059152674304903398349550502479926905402878400638830313489587102122698917"],["19650417567500258263376500159175928663258315007966043546795178088512663137812","24023396851929811061334681989425530061405665426402304278475546280344394884474"],["25288595669011103528718287724291602566830464218869974604001989090190253069549","20342497143883256441923350557608616711243935385445315272785289312075869438769"],["8285174435974537998285052860703418311990991958637276517366567817329279829480","11706479524775387332388054429290106697163301451234371766062053699829785125984"],["2381662139506870749797169336368664056751956206838663490258881077100148605207","12804418469406633090806618785963559100378576699846545609922433424793872322085"],["7564521386594335208471377293108650585291161712745300172587513039950885888777","21018345370968876563454905168572696009295929475210816496140813925164281266551"],["9304220724801109932968206189889546871564998474352453944020086970533029709104","24751896080668827671667002577140887648327439463516936977444457028530819996543"],["1449213955751219058487369383999042515026905840937075308516361730111792428623","26543289520900313012487842995005186631606782472311974022645459772123424854816"],["26269659638971093692086091402280260174037634194903242055187775806710908551342","2298657278254109343226665855050783472163077377962312377107857490009897530841"],["12174819400012427708786926402617535679736695147156135087887762148147488795889","6320514324596742315686351085071276327669718081429098369347836835520348302068"],["25248953905738508419349333660979779664240097533711454122377026875957783024414","3022253275411634983805664207942503817182326799968425297199105872419402984019"],["11582106833200148087410398164727405918459103423339720665111613349039462553846","2223770392861736158433712566302675045351755888033969711472326732762973572910"],["21519215105820887198496563934347402451802193220298771087706438095115994337591","2408889828316217129847228403638973499390577545826853312706810969911527820522"],["8189144157783423743157071714339911044818920361423500553523058093584419922232","17106298524004863317092778360869088282782863616506671257120465389789268191157"],["24932180956261966714337945180520232212079608782707050018514082283225651187204","3924148373293044784723380151851195612511677835751828958437965537160091758629"],["9132678816573714228903962693528148175209862628775546944970032086268741489221","27156808931021424001616972582370968106292614689847058929170746071904549067065"],["490388986078001184825174196631592878708907728740045850222670996094938709356","7581924220722560896909944125187575731273027852907680290864525283965636038999"],["4869224761663744358611509338735453455766521525932901822973381374868317534946","971168029440355445841909043222785872668822825569260739278140077331547661392"],["6833511618523948269448364675120843327164360517442718388683900385191871859620","11968952684841401798555324415116615267193406708197324020169935285996687834825"],["13885053499647909562708067043214652978561965196600959405841428948460591686077","13312985938990558775335047111289624363812882408380939227737616317558438076779"],["7486920054090325570368676813796072284976949916338415664021135261590788107755","22631555404046368024448075228245850644681539397847679427964358296589800036742"],["5501343765321463064343866303545454157117054093766729346855414060285677641889","24555496482265354837414004947996717060879968847544332982896726311081408975266"],["4974519030001239534372216510070026546146207072248155781430585417659013911233","8702386449772741827364406291726148182801952410748456518752472747296890438218"],["2990889984229927339359032475797646547024136244411303342862214694223310581469","192931099162439079752356064628346841838121281318030055650845955031136479856"],["3848938802180501139436617688176145355430684758930712004007139259647059579376","23259771381100297453936957083147443415009947690917157027880151610076079406378"],["2003192989344398169122358802630845095957592393421711382434693435893992992931","20331934785551240731410880601414283290384795250776084770721242310428962441179"],["28235667148229607666694128862299296969201191761136145029314640698883440360110","10387354294133587093118647094542914974169103272785705931610138110023854625290"],["10825504685165133474163392089691227391394391266447195744997520170199095598670","13263908181272812393001251693540621065982597482697161032541845648689462427413"],["18645204214513969231167145064758443975296065906350075561144844802814083036065","11751352678689294629053815037397757233590429268151194980233322370590387387738"],["3748587940183076527514838070595400455486142890571383481417523290359168141442","20297486889086030037418586969822956054676247427435572682555182863935888118252"],["15515098556891217879710681402765735676836800227029454460202394417674123535538","2465823759196551268464402501539864507409873325162378853661492520627991320314"],["14999034386720956192376629676444273352820528540968636561309552415388201055599","9096896081079313492513278776945877289470284200915424066286421010719816978974"],["28507039702748911675199784298985463220532429117198592842362863856133010254119","9002465251040294247866069142291070616257366860403037236099337759373713017515"],["4226094333970509259304172396121507787485487544970134691633516648227508367887","3397534125505855472352894497514682191280800243525151997954967388006545010304"],["10386148411774712017358505284855855922585471824334356207071468356173263746083","23763511558495207039259439338271099300949331744846330515774499314210993834267"],["8516618256862505698498599619849843645653006756780903652746434720355351955517","1695799085200784626826496096165079111155316965195016551172719934147854417842"],["59873456683821182658639605156788516971400769307926023332469353421707478084","2378348997889498225985290006297626803838499719860202311518383022128026742301"],["25294187017137527880859406128845154666629793354693539809052392949207473548277","7162320040236570148545789820451839568916391866261407670738792006836015649611"],["13408146802326381958601670334015356994469471867467321776496282642911554035056","5792897826510154315474118437504234962140682537029824948621621712607962281114"],["11140886385088365180439822020207639297917468335440578367485981288781281320636","23114700671385511598736466207123531185591595504478332317048812248324853435875"],["6717972852304236081567884801444841283130039599437558923488765935081152567529","10709312730277618862052457673305389469449111757400710112531677291675586103929"],["7793827184974793314595709452877118612471723160199446032996673622361306680208","22833543335152687687167733168274656733253858776640359368316918742218301093943"],["10488088544772860151272684828577129037511258254671281591532894127539415064792","24091820472613183736693749996141350854148730040730717154305814284892317432303"],["17360313390704942253786503163893909135584758348622672969894166198741301857453","27249727837864599829751244478809513905721567663160902398164579091050960172740"],["19106754276616307286726770644868797502465479307857277362008238081725067884364","16530521425310907494602795162355367538085716666379825943674713167452841107785"],["24610341432479907700579192924505588028639871978970928875148403883127033972787","24369931904401626309602892452131792490222194819398596365986236560515012488035"],["16238271801641174268422678130060807766739386456935718856319868371337342694869","18768324704674774871108061647100047822920660960774261130932573660342667379991"],["25374858931558046635224629529417335505536445024257290307286030532727534348878","20118261685062127220794475125832290633453658997297774497547281349107044487173"],["27984199573860723325239654142202374438848820720930199196227182130023564573817","23216312712834942798835205751529880199438973490380781599327954752447535570310"],["13408547153021489244719134682304516507109322360254697217863090535683716813265","8026952966071341427632100769006949114634297785931428435762167340457629227822"],["2003452841881600701447007383096397317479265795434321849575683933611055415545","13441851872484994266323639709361969309171406728530334731038276472344741710445"],["2037550378209639247119809610539774761754907787362754920591357056720127981503","4200620339693262125145476661852678347197850237739711874032954177441632109778"],["9146042436179178584816012869272413455332741750135927353133151226745192740202","9362490496296007958470162052601292542123184810777456077044224311761293961741"],["11083745457003430745912175506526576573938878190842711758593059156929147549296","3903817397245065683456459712979014992913691854236952392332463663808595045044"],["19379225719173527564105582289414360179378798461391307274380806015882098411936","2116828980850429215031185475608391462328721911561812877393425280999350933198"],["11690958630363708532421466985311475073972457284829179536532048756046694020913","19452575070700563505634133961551989967840945052814037286340388673239718924362"],["2766010495503742782267065621871319510523891367332300722848694557314149268697","12900232663460498600793497560914383441911647380327015242677724348649698877272"],["12351451299586911579866723470211837793601741624558851066898468794082990967777","5940271902952201388398661111449526820822357089741511099018086938961247008335"],["12641639718169718344817170659795606617623750347914002127938197723833536983589","1018847677692696448969173593686202881831439408059464096328002413900022824381"],["12925560272154411404725959096132861573543995670991059282696126318470321287390","1809188299191069124022772301878991932076692210136637577185437143090641082426"],["19215966095468018057055937597689012821462704992857785220158449251955670344736","25087511266066745582791729586107438286215628003038121408510146825974993442811"],["3958811813361659935526354060121826650970291161631915619696294087064073862684","25628735879998849728282420700020412068274611707953575804270058069836885721439"],["16008712973643668664834959661086597519977347208186260283831355801967147258443","26448790733823756564637134701355266623706938636480163901920093702156935677025"],["15588924412204058379642777683907585241861153759217731888018134236243762679677","20920648891834602624067472929911817488271466960130945545422441778916259788199"],["12564530283441162802403133266757777731178764882924712954491195002943187679491","10751533225099594785802314267877178199458635915511048681613581878264553307995"],["16686687115035437493551254221062820575663091897576037641289437454283550869391","12475446789882082559776127639805286727992500277699378728293365051834002817388"],["28875809625534279676040586255463664642323514557290357148580243832142218401408","20873109880984506691852238964635746743695588019651905052259575165581908925903"],["14486333880359930708466967764763876635326893411518300264575605191806788073741","15441044478394518802108813926364086524456854170159054910816199025222274030417"],["16017390493808340556389659712035071679581927919646894063988728802623825927023","3614750053195849448001174784982644694522646293095830108702414935027160662381"],["17631638662335857533761213160439866070984020100485549957917403460999174392178","4226299795366861368089907449551008761752837288191973678776176330492102627176"],["26039070777121797459970916683038673508185611378160169705326027700082009799687","25224034525006303230823374116323171764070002534456792707927700291622190114236"],["6650699593039821176497686120623319815357879565406492599647676364236442732813","12414314246362584412780376700064353941735120931227436987988434278389416526340"],["15163254540721242605777554646416598866377578762350251417108413013526754999286","21358737696182986745279074389842491907009551588693413395847573314285346117934"],["11404845479242242900815792576336589287521519432368888462108142806398274917384","5473335493885200936241533152907106260291160462214533347008039664350216855877"],["28453422716031145248635753266088307039696949961728339887651460102464924277890","16080236124719628630563965354766853683276394112536967520413129901560428574936"],["16035781965558994678373519627563048246794008120286367829617101650575015437505","2655204535493783494208033909062477317059860890576585544207801957313181818023"],["15459679621019493987564475220644447483652630878518563173825738794254586902086","24545759512387246007991405049757600555076918875999782963791761353505383909982"],["3276289555069602156855370879765666459210722797529400496916774974167875637683","20469188034841451332819824582544162286773360155801351465586289994457753460951"],["388592945568108477940923272524078388965344515988814876739470388160307544076","9128321451729101797507358166725408493323457572115476724034575608991712770045"],["26668189303719358003452859412481702144230325735190689677480186905763614877805","25696856273939068973386688346841018278143028621044603739091190899745780463247"],["2498328876410959089011495362534682062226376003816140791085087375982551810820","6280670875025374793472639891091969161587454142649000177561156568569349568452"],["2595830441473803039012005651487653518879226365421376818469977748904983372264","17940503233317991837379932243828666448453138544344684013366313098957225758421"],["6010555772455557704814448332070611930558047986287022898710662930257855010974","24353636064454342457433799462865254117028583318747163661835788732516589158868"],["22375614918037021308982525184527994487753877936196156357309018402276197854437","17483915982665521306759033084466107894122293403644184540868672301445693333524"],["28550632212675038350316867735761155639323138318282064396920135287235749966505","2370083504824877684970601632600777753796563534181234888886261906535642119818"],["22295629770143431354857361725819067888699313053425145106791256092926275412335","7794957095244287593363906710578367214511308751867522370590627471150024203210"],["28030910479412821352845331549560104191257386161832123310512854855186598646879","5414392892098252679984096719605489359220878197902316806176488140702296272160"],["620864589750539138112502261311916955625362819551348658661812835568589045192","22704834688789582240410386100130065597477568133402237148524043464784913165207"],["13900597800173398340506075223878249398431571708722906945827373329382759931718","8404375549134718535004588298810299023686560534850262011356517209648262765322"],["11607543831937320070924562990875809681265260226819499302117799804279707437891","24653694867380082341480740595970231521368265631889773592587861144536658443768"],["10775219414591339879205554219162576614113940078249318592949881040136189692551","15422380287174322411963304011313958398576314781486934884740118155492617131766"],["6793979659846615780240134434515155417557952838812296794194351346689808289193","11001020608949776136896391336228192511025162582833018266618939924872867872142"],["5213975244371246901477871019314842792978179402598880678727684361673263468490","10732721849632644586468625421872540254790135484280831204335215293547160083002"],["28120989388818548084063033185351767296331811496837175692215019082296653468989","23133376895901403830627817409947701035572042354330146843923186801979989615253"],["9809112279109951927556391922327039123860690741396381787012755794292598103784","4077433653203579895464962312439042180495102742686532887347890750580891404648"],["26210243904353069066738882445101755189055874144066542856605592332912615253365","10686165278993957455290848692129253347220047370828840276872727132368339333864"],["2369670301378628522988530090765202578516542863960488450727241751670459426013","11552959018887675475785336982691632932488761960958467947175768195785930424714"],["17881478364653816044823754577563253518075147534738835966581220226436673625232","6118424222944806451860604589992815971590217613839125431241508268033972950534"],["28211826535364480406965509559294685470216126459662782722142273847827450449612","19118968113584931635701782199071733311859329442591621837565942988385133914826"],["15986494678315586176242534914989805470307330385549039457729242347017793983437","5822072661614883626465031558902550792211199352781468851184423006372256895452"],["6445134902800802302201261954693471086598860013604078906694393719322007790841","14304595275750815836451611411673034922134656646599212555163621873372203949928"],["25992949342756601346713908512578059027828205935409388274905496297283311485722","4176374609327417865331363435144875529902948713276483392092684578259617963928"],["16626167251575605886758036627375779585767525343236373543240659991963660326795","15282122181870187150021833144149997836633366640911129447497257949717679861181"],["15959155252403550822673534066294974716358963972427484550025822855952796109983","26011262284482608236931344364290970195846439218200293467404196214743375622111"],["15045834798311455841528483479533002345995372607188689909973901001692413971850","11157886690442157072246403239471791194552544399724804329754600180882846351527"],["2288539011815152669399633620978702637730943322501596909430840331265292494766","2834404505760231593907723922770410165988482291643768805706039367951841676736"],["20406517493562567359302535718565246259321170664992689427577521282574743234693","10970720260408186411837319740237529495484412145154077388223455197995216627531"],["19283776549247428768913399312781680028268570373572002016924541201853113098087","16406148838037810258403269578805594879239447622792890726500488201845935324226"],["11251131833996577161649271365939610928169735204268064805501945412776729519475","28829807380243898365209632086311933443674524542483002057504962747918847391895"],["22809120354430721123912721186437808239515250630920199775829008347574139655482","9878460095547191519954247535482937081526824434038272249235944767486545143676"],["18411148375225786370690588967423361721756989313555020436571723122958885207045","6981098249517885047139684485732359121502495080285514532791885822933689783973"],["2487854643959156809016999373504062383094100656504475330553014300057002651056","19753482558714376976158934681136589273739873590101122373055202775740888232988"],["14036137790456271578562747519160679911185684207625476537715532309790977832345","20818383815090044187563088435240902312452520566051911994984254698818199315808"],["24516989464336129319948948229416723254569894226621345603633759480446573585767","5024723348811567157184123676563408601598758398510960457587927033289404284996"],["23174374382738945670597874805098212998010923246039129432646091250453277987634","6182498134762442806914209614230466700179425577728905812256454447618047543824"],["26894288812964814389382452114409623660167271307882418161746440712019291532753","27978033769427842380113352230908110437143802937453522660261899624985549039720"],["27106192512989362991466418420422609234591237699426039674761345903780273127288","2420080102802042254059098213795971959940449495614933845679773388504824114619"],["2021091467214312926438790215573452603722018568127575428084474241213517931675","26940060161496476759814879890567094684053426914365373648670021492456229776146"],["3420747185244332053587566527169891927864771698341779019929446568480500652267","26526071339709274614599211779674927073647520483061571826238553287025749012620"],["866923389990219289072256126858872945086162136089420933826039681294492406597","18858033670273006217211980568279111257498383185503194446930024178640755695928"],["9831948236469765213591362869358637536151425646499734613350707063063239283171","19998300903144144964695416088207687163935245897284165249562487528175277166173"],["10474624323487464546291249889035589877181626820600157661999755618216229902184","27323148234334369924269489417579889629864932434458109422641949357073717363852"],["8232905101790235883405871668857960575465163166838698335217524033832744267570","6349444666994633757172547301757205381201839774806576350212368583187390215700"],["20077230894398955964865618372846739573988811323154501354911057881749480270740","13442443265289462647484941590632835243314319497260958263588699477246508450428"],["21599292506753220448041090941409324665622388840916141258649982203613572575727","6011181305601428114335236201899927850190452890213500544619236925813397249108"],["21487926842341871178422094951452877653096379229269883584905365286627356204027","5907278026113903957469880396113616210964799891312444356826414198795071040476"],["22356804814034741235008837656023723855860419529571325191166969023291594461898","24612279980660188445583073228436035363404553686308102822844192249817149360516"],["17481070442513748999705430147804472725964612140441690054086770752535686298555","17530090610877166671092240199713747978921787350600928071213054794886308619777"],["2440076431162774281651873833018439656952558883545228106107446978514211351697","25923823106594005680611670308077014176319308101065604797717893691548876932357"],["15086616562981962715643169401450033712603062922393239802957053291998135411564","11322239301618774704771599567957406916074671227911665111505548001339211014972"],["27360409214739719629891601076274926064893327009107695164026253206322213637227","25760614491250550441589519997225497615533244648116989805522520594067457043765"],["4987504541810844479169376417809493371625695195093303463811276106157303246563","24952817725114679372816044723297061813777825000900010767628956041733115646478"],["17049011097871947546348517741958437942362312276159957134870904450221346938594","27197901059860350554064384288913922162722560242131690000058445144457373036192"],["22006760661556904278409415891362206227932164402039897647117454129644862413961","26521464471822966670268676908697315166519393645106372787831633800347255447202"],["7464792745864313411550425185747921278735858869660502468157208985204300954174","6761345681067492365261059711249382331393183540217168619880930866844610376103"],["19032775945730872155415089893306931656171819467033476475264238967368783742437","1203095453667210760264696269140058320305805664664267720620070608361161282948"],["13451133717843840185036120337802042343444780422882632382289829363656726913132","27553091266863126376482164500479938417930093538070688263840960843810795691224"],["13635165017793406599488224940080520112905239631848325407029181729953380929179","22654939015820473877328560586965346833655282672146232596934046699437581668432"],["3121414139059010263579193524912019498994097589259736295246624819667930783870","18049555765760778068855624558086371464631671646931741863376231210450297981688"],["5874944567665486393814022447052920928834786060340992953524459881390657544291","26751928885392350404930730895462889417731222759579766622909186158454412068590"],["11618703245807840709787999742406744627150286819079223878859103778394319391825","17247123592320265095336174385592277117379320847521165470091012708626497177941"],["11603331919409732242634334356435433861371746631730850511296162297032437280590","25819379236054688298759012043255233841908607589787563082035706771711386739955"],["24073737603961159487588377959251586757217026331611591912597286289516977688220","28604824454159762259869212764557798277577764778605507825558994411745128672371"],["7293828419240025205995061155014668246809601186955194370447780709821064461081","5816030379734180208990295070355107036536946544239992146956882589029098607611"],["12125273682996164562916031406699024139820850211644754577102981681656097451418","21715049837142623553354104666010785145369983701020480255340808121960667994340"],["7559351487964974842124042763781216819741056701525430605190911973060340928488","13052978125159123927792795539232811860096581691063275986059224058025584219246"],["25560607689183201878155801368400259321905674477949387231538576225590537594371","25806273604879463842833047124131496273259214179862296100128866913509909532128"],["146329224719720619451540369750487428772922248561994769293474304987301904167","11180803219728224316695332168870102664823749883269609141035297674560012399323"],["24831730191683638711548285446040578286497426621813015346891040001085435030095","12842173666701634900673016455263086356465072858846070057028979284973222000794"],["15067728501687311074500663129242246027295352460553747125148093337078636051491","5881175831215214032396935242112429926445954542362819801609456685954174629741"],["11453620570630342039849751369650527219426685122523939625398468633234565807552","7620477850848021755207035496739657101054135058724646256624174578062284251895"],["757123194345571864829392935106575281927983267044646476240405141557548400047","1118159146590689084175730646999650960557046559163574123268696809966891714686"],["8033143746587397174176254565009426851941758587455018740289172381476422809902","23578180338201809143764312720605902690511492444762006535054882075833644933799"],["13712025703325453978919287625073594178396833565587871693281774523122104654199","24662401738581202679399937423988579959618250602612818263377671419164725436591"],["19968261442789769390520473832012528450659682864194358451687051843649963669591","8600237112964846828206217084203030480058983204736023437606711649969221031528"],["21476137034500551484474706637913983183750598305304031310507863618066571872746","7889382286061981410400221794991742617872880232258941094844244462012005758666"],["15162709817930827241189139973825312339452689065745692051591951409812604427670","24488963946286827430532801548744775170445119292262659282747740313508045215717"],["25071848145734069352739725065246571397972972740179024849373007569501174670999","19979855452025974326036564066580972507297150346909545337158323333196292126516"],["24208479816411254965211714790672252231006955874726100013482624014429983000254","5335550085310631375138442446361286287268063827794179969417449407320352439181"],["22431897185053089775463779591304460979703963522461496055226696648894007384748","12436429606599554373281301986759584978043085963981173490173800902376927861282"],["23656375421688562415358949352936796271909603211773120099248916426704016552646","11876933236735685032087029999269947097432668487907308020079485900927188765781"],["5081268220558176534280663684920983056818828390145527802278944928289057282089","25892836991469675869093826839422336512039711665737610617961840220013429310261"],["15798073466519054446466238986701534195407822526031383270581786866984208407462","5689656795931216002922978414742188955745132564922442130737697779467704363514"],["24709230016720136479580483026700282054468200673367286066910624805715865972115","10729179907215101644270725695346434079655617698128499491183807885298222287155"],["11985829246825739939704369273994671723869231289575601708058117633448666200774","24583906126576879233561348822634388408325445903468766480756715007509914632343"],["3630651678805325745038101903571019526614648727311888576120101739011056606997","11053844242415254080265573738067766162448017170268234837181020252816171820550"],["21695390949655263056227491049737581433846763643120233723358917668928828231595","5175660770438482442496582557606136659286018727638390599388671246166068198649"],["23086984827599880441908904538282315063153340572013421374979341917240461053531","3764057026267274979934533859580221862379541487350155118218394103905212869498"],["17968859475720085752421971220965577747791198805018163094966261373377850685706","13473599587666632721110160668574116384078595458788767640717557487336377884182"],["22843140123435407531386226857983767378070985968305100546933839526995458326824","25328496845802287232627555689983541003334789090059729685548248362032592542719"],["1116744652862866860844825256728383628148224738840821316976218253974547315227","21036616596486421269379294937552421241837599241009314172110122506822269051663"],["4337960195423415505707685762631032378750182315744943391568995731024183327452","22371212147290353035502584726046580741840202997562070790088401331673822460314"],["1548149957602215813929078736733208029375491568739227148926307952426570780729","20357688734999068651640265430238054018710033972824091946841344273200436090192"],["27358861548139120620194612376302827148891918930857128062111152948260534571599","18595697942221705488095419722282528675608381043210084778197210283075240223612"],["26094541742649119733404528948235987984630400450924541780909043345994977434235","23020823481334638828667939557977014747561833137346505179099603730130480484398"],["6740189232603104397271633606391324250020703437188609571701261991738129990774","20229684901503257008286684105048126836109234308805792248252124695439766925266"],["24087087411968598216499981151566454233205507693121041949149070606849828440728","19252421066218980965273587987349584551458864171276618813170506730433317456650"],["13262049732793369430706388670875811738920871026515378613166392079819598275437","23496911751256894024769368255346617010863611299477108375436399302696008654048"],["17462495710755327765020140447001144327742250979256877523938125609225625682078","21816722740296205345534051077314241698673920381079879277361660726308111998272"],["16036315588949593012460376742528528851041556736104964317275872297900611625409","11696844534624012992502540089758602342816000836200300244312106194869175915298"],["1706658129054535729719101029054677722753204103333550091418726607859921470339","5365054565698387680704003885557884976341573692622681336575952540946210672562"],["25115075376338855393083443402348075348029895446040672325604254237052443663202","18936536545544893736253528912004807580350198874617313686130716341447060698607"],["7062943402347533652932229752565399528388139373796184433040253880031381191354","6467396371116144420889035058514565239483536672750872687249113382018437751221"],["6119196845512257904292021701861301841152353062880669101309140300769426014469","3463162661857788381925427498483751978136578270405383763844241482618021695765"],["17346096428436431718881097539812911218991219754038539052915829142550627797227","2364117192463739135306764227617999194027036970597984250804883389098559284633"],["22768436547781627148374083022742418138216339524270001620844832478965238568119","5869862712998276699904412711238125131738719324763570849276562843379712504043"],["2859314677819237428325114201085034071465523175131775798912387757725171918021","13657431772377705280751849019988435353362191683136411010713997463065489333524"],["11639942287992311835000949799506734979416415079906842128260737369074007598070","16558547086450341623650023916960162785720257171141372533524052780496834651737"],["26288615308689189715310841769081683970836789558426841050115040573079571751436","28415043425173796126743938044539641864700073831034127441124027122750195239529"],["27395058697145195025166657461726662862969865427640752258248615710840745791550","7912115956103512807531029901576760935565648010031400003611260969845323906981"],["24536736788696460781492602170989268286834189230742710253083594991420160411470","21991487876523080752740667719383552103452490125199456636308869426676213073222"],["13884322123246966002342472671636506994632514682530860560686368590629864242572","21556420135593550198868182399661727766413803070686854665469875350076093099260"],["26170926753448673034298820077647185683323550088369803114285216766913966150387","15640049064661614476250551198650133025463618668796311923441272985352238330078"],["24217226721047731848116592862836016645588348344219633092364587107873684717654","15664083312775498859788908537624476135028168456996606094671590284821758781166"],["8944555315205810739197395632026733529322823991030079447892485599457044223638","15216401794850253841255198288627054697248636121114545763042474545335482999690"],["12234220453832722024818131686083546750077575453441222843694564489219628730364","14428552481689727487529588239581532620567057425200133198383201223297270409709"],["9366332388941104291726933927649166347493614947130449931231003929962746856265","5446203522876437750969905131329287907053446775924396475719236860712636108556"],["11689201751438996577638266864221234939767213950845780918539590739842834782382","2378989145851950743147985373442786359398048218531894644924993300885776122456"],["6050916587549341955167712442612407392421303307831777672104764742620906837529","11306056272117493262127849517526716787070819747469535522733395982532774581625"],["13626432625276759680990712108833648549645670630571708954332572120395880148876","14339180628665547508600705052563322472009077715769121560765353212238797623058"],["26754888010361516097088250919725469435379418716464656025724636855851501885191","2498373611295019817487785544738886567977038540085775229986537914669545202963"],["17344527284554419734559411602045773552426464318748361314013687110047135514395","4122859386615782119277526028006725188758152055080958895751720563980747711388"],["5895623546002423833283033816655724426716410293618596708964044706347679641523","6658884228247951142124415050476856720328387023561542988745650370995424488368"],["10585592604089494827591136077911418567369538955807853396448547560355621936762","5533114747883926333290998383719957822143949297738602227787855271961185818402"],["2565855291581272418953936204335839148030387978764143092978610291220837583308","10779302254511609387831245254009402389515021834092228525332671742129395272788"],["9000723203034307055457392765163110495723127064545966372083239645213434363146","14177777552912759060063234586023554567504290815469325143487948140127570964277"],["9136057080599818840229628413478063878613168349563991773835251446541531625423","28058855006004157708308347732455097804059366541069704967520962495341003640598"],["22782428593738449958349778516076263098599433063283012946342894928468617816126","21201063890992637863239282664755564604491531712749027521308374244914218766679"],["4492656134968010171251205425381531935707172831905795137206081182495179493530","3259471135044735040738897187529109823076097420081538727964511009890014991907"],["25079718418290020158296787963231508568192828364558867653772718742132328236885","5471433055578794086799950710764534741719544951083820657471389711046161043594"],["17707193459448824975467184150394367054859487516925921708482817957709888764185","23036899827958453520638426592845112439058654850457063826834134754058303196584"],["9796815433975139897807097679351763002086247926638136409620185440562356614721","10293478220271669070202461564370042682323217061746989758041567796027106425173"],["5051974018657988999003579223570640682044685520591224469746238832057259250403","6397596007439606878015331362798872724943764945065934925199941254388252293861"],["23850648406441789853566802974198980237650657378799988062860009774533922140000","22233157755645070313812440598361605636656568079046854187541777368948135954892"],["21506491169883519896300788844646788808804018077798542911778756060652722222598","13271120340430890200798720497189369965939833650192610070300269393940961849043"],["6602660878245784906476893573144893257682963150208240454716158253183810199822","3344340141557607844359485008604644846011535891766249929989116097703311059667"],["7587613445697483827565595877692733379630323875563264125576475287872875713862","21274294333345097002075013178874956203175866131928383055522140707363931097575"],["7277961039213251699583938522975558492293526395962730096677163128548994849375","10394552160027261007445144247501701894448018105165239071145167588845273511741"],["9684276971993216829150900495336740729962496553750750230357974542554294267369","14715945166316098221049725062590187314238308696757567243208805133338057168937"],["18306037435497353158271135580758917746561258712194671043762678956231022508509","28914096762633185387691376485954601052306527289177674470388595316935903254251"],["12866127300930691948608463754045744318651753521480589180117265093582840684451","1075215622743541229432631493652767580809755121710454234556430630645942993127"],["6718792270143150066466366845832592902699207752380027851147616090386585348187","9438466839236454706288514111103941869902108198158972351979495121803414987401"],["19342731034457002617537478948104569611058309692961246148100792219241376508929","19154432656323119225341536196289372017477275818878504968393344715483327301809"],["12950551079434427739203913215540978308485559366994681253545784678384400066294","13609215140961911299199842441718825846395344179300433022926109810438625749501"],["24300159116105221123509912981122096638445225237038253692218366368241236110522","5226950716195699574148645698602445662783675506343413805304907663099862286080"],["12605028046616605987749043596097331108507523896366515615148549921261526448758","24668053597414394613141610712567433162403823704660215304168806319615320751832"],["11223952189869440510855496242707650295766927933311494171635100387315691626332","26897428394482540973423189235553477464090687847695198165075139733115036585565"],["16310940416617265963796262740209759568889887504798984915806698695012764208427","24916107653851797005866770365614960924788201362346532151051477799459866472545"],["24779334311981458258750093936858745195696935768335187287803481612313396230912","558570990448184779205934336819444915018894956034893843141082825144525027527"],["3151972509402975071462241507323248962803878515109579666678380405046980662171","21681116547079324727525501439050499081946462489015115022510027798664479209395"],["22836320990909860386787109275492471772809226947338648355340858294602174401741","5898354431136445334763775014083660506410113718982685427910762946514473070413"],["21622130505272837394906036721102768917879329935864562527282783138839606792801","24512171211394362374089511198390659712356598317650395741509239357997170623707"],["25044776761847662354274055673786072168465654268203946015555275579748299964414","5458670683980472260253573045411567549735592528592684758080299704389491636764"],["17838675628593017598568476656298245610477371978906354974896355839901206092223","27053184652362657518488129812825129903570573745052268940166884053602150459842"],["23715459454396922763718345480459726499576240611635284233490292061434221667964","13252750888780060346304959456864571881586639381858126829799592403508419077037"],["22208805999531047513472296280059290242539502350298090234733381716804621391395","17293157687006538368286881776692888973782513908526830190836339943238381445362"],["25959772105485451478249134286659777121280140240955449384144271387183400922391","22231805490299901307445264355582975699093147956480854216892816006229725011898"],["2686220766676186397032043937654889134488396129943319379303201983621473694593","26501913040577609836011545732494240305525353923865714138758476324430775560876"],["12821189332981041334828311829443694602460496148322340176511562883035560419007","21701833447059264582359404837976362405386319385672528463023228307243082317845"],["4462285889324365781826434206938187618212531559719292468549132926270348781313","5212828397191750608964934956016196323915324884308073930134046077589091138457"],["1236833348948068567913859265005879229063105146341438513534653895967626978704","7530360174563163626536163004793351536038027815345883092370279649837667012669"],["8701052082916370987267269546276956068415869603381968648685126192354331562304","23461741391429725166591072347005368335878670245426123957927812359296799137023"],["2736634437636741091143753471771776468219713849368222038893756034521121437504","28495941938445143099732318839004516383839232441486478799496553000900224923546"],["10535348178222768206922260186928953599787738839319452373842467565428305356119","22525179235481880479447978779965777637666331714255443714777019267647491200127"],["26479550009660264530385361143397913143626897266593569453625340496060213976884","223683777974208433354238497673032152296905311548617707775157512084881589076"],["10937363646963743062151842117688839197318493867903515059932848548117305609413","9592765234006093284979061458967237244395331698051395436852639405406050574696"],["11788652466747371817156946330817919177582792909068827514346733956445043355028","15913669755241008559269622558493900291409987405948038530971758607912288879253"],["21337171874372789017208418747227450547709629985286896219119699897475048784792","12363071418380317133102512144712933404186565802325131167802949328973283192247"],["19970457084650400695094317640984797713837441815207532909425129080501546087026","10726581681320495185167786608268918818591203456666400615040111193771019351811"],["8665454033144230203596278613844599874682205284025671496123251047336733944732","13181144311086327585107838182017312858100023226098502786642724340060027772212"],["12170842677400910432932360964125151938208850643808833015321450927065788001429","13460088032807949493259603763725695959990023067215003628953999765365413034999"],["16225628693808853571519806644554314933770522251090749576905045510384872191317","10975331307511609348721334499249098548029967048491423217862188172801684201921"],["15693692747531633367484863610048755028510870563956996951508414646278806941910","13812335641074492713086022649883321642748918221815483172089787561263754378909"],["11125314922995056323207459572569027029067596584875339641177764506457355943478","28806640663679391353056296197289729007565865192910121880493516115760401363957"],["7325047746222362825476331268331110351471128312443060067471229654031145602877","14811867833791546058052866243051597837353740797337971672999683284190248454531"],["3095188158779448959876125732733214649207489377884100384584866080502258118114","13797760307498825100736782659344320224872802230045534513992998553273647723037"],["925014811682653908980557077446272022714125418663137577225768989189843522701","12764349981905941643120925861970741886150603730750173279936820067090960507255"],["10605149228485817069578285269618488789513442258756134889935135794863680359169","25058900577442691286913197511188672476030890087571675269681332174294813699975"],["6295817670674128116960380108095344519659693081743625264713948559414227150195","25436605651274947933499628606760558357040276991821518208258875936352429589453"],["11888252751500485704718819342250586188957441882412397869836072803781958291910","27782215049635350076312552337398332696597127769340640490922158504201655023423"],["6611124851077241879425193756136193658333941868122667833690762527723287068967","25046363790741527512659274386425332088418583882597704846813325707263699852044"],["2573464227807817153661626986812828618462576816413389491201397624861645820867","17630557840860437960020951128292488704473488473435211371544887239875432641387"],["9117740543014814974097341542376295948353975574574758594789559607843146577815","17822137405605859136810459819222769787744550148216392991580334837228384930688"],["4047834443672644854807560949791076576268577970010889545518667170133822412074","10406374229114329830379134055864857375128758623903262421580209289515992599122"],["20741563202496073042467979965901750317371403315345006016377066965852888114272","5100679575105741562010393278402380167271213485449205404421427062329862200038"],["26157083941754357472400124239525806996468677790118547869937332380625172708178","118594526200823717759671413519538733971303333393588270879689555574467493235"],["11930056595988704519094022938556435470632727241577072800690374819351130346606","2383585218810823733683072529357808949717297476018936298132899518404098681716"],["8833204633318404420497323805616547998934497008862846259988757300033402588134","19923961510791277370999902078069658748183466546638194242098657898358543646025"],["715600984176828620997801547735747997648842054214503253606697083266943264891","9213626641615910048205778945149408839381304087695688588798320707626324874110"],["23417314962081964467058630605548037008207472606274728426122979306619081488713","20557583843495000674383049463608694791946911560979644573415571439318171974705"],["21970178264385106759731374005877419282316930819661092475221817312221524815992","16294307525653590746684789574574519480232934275404797975464771846202086383792"],["18453418703402885601598624973062646709650785741979517448640751790581178406412","26433446530844529984635077137225000761659666600379794327574036273670808937761"],["18189283643631486289192488312485054133488936123410103560956109448192421543447","21054731128607817718387572148414019095754796343736564108549605896072252492835"],["11968503762698445877321738857624796279860411857728819822461395578834083409182","17809338314171115378720285494859572452013874236258657992333337682251792344426"],["8887564581426558685065748361146422431549124013291979279444387167777982869168","9625820352897586836513122481710573293280894733043183987695643790991853307072"],["27314072521637481179367626000046025994633885575453162526676655441581787772781","7753666290970262937815424939755350892754214199574947013442613013792158675439"],["27894986749667574160123859197360231834832512109535971395087659106937121629060","26055578844806676906674763161927663078401968218503430653921060281674837242244"],["2897150146265841291114011868065485821204566208922938011714088858142752112334","8941469275910766512119102984859761962253805717664529089951956764421191538588"],["5213396387864335707613847622102610820460225363444757780576568808161521263085","10859801583463456867579583949456929131463672395503527256847367911612926595772"],["13786136193425169479306259766483863735480587172587777678571441823568891041466","2995502568563654433773700568622957410217669274622205840217249863521239000965"],["15996379415351545919801337168637186720879449530627342598655282323435478297441","9117292701980808489114325504815711814845762961334431609392161368139896282028"],["17755789680133465071726220707842236941414399076450110664930560216747962484026","4686316580156481315373252927921304605041574478490551469495720359917180266460"],["4221951229437157726710444099779124158623600668684215356267159521999703110370","10132194250775642806605937909159718440630038900262367263007543088128573294904"],["21991478576514923458246765425898260591272330598801030310170122810326977931965","23914745425472651017183104644999049739580551692526148143919689309862882728833"],["12425132496309004184559433132965574016220092033011263315402212750961849248657","14036918488636746562647467207665439073330556532457604645975294446085347061532"],["3136049211018714249180148726650178104228189780932130476843509397723946684083","28240715970403471157674991637334482711918378578720373070967612430417000402968"],["1245237109282603439271622865495078396743418727071781946515056192192661763011","24665822818989665166929106327475335068255606059799650494716511823159078126862"],["14740229323831533416042995321390699055954238790650307819527459000146454536867","13609608562609736984450845043572646300421749490822092324281411155043828425605"],["19098292489925698618050569151733673619690346016774156362526554705575184354554","23927968940317852070215037283039318381580919045004006681006548572125632141157"],["28704294551561378665712227491563859602127195755538941500409691513886871739369","13673617294908370724103961905361091629286138756823848076794185780700639355178"],["15727809525188532091651279285695714673083631665972897280801868905831069748408","945929175772755701968127454095978486442046176932316171645707661651120701330"],["6190113182679175290994401440705579939831392940403517845635384582212646495361","9216842812616356205059099472330109895077350378230731774321915686007677959773"],["6755231785807483804514762297345627906361541862587170162751403698272209268100","2029388768745359395770253586522353978842210352663813104868773266965169624158"],["7695187739651448638210592013155397524472574793278489519895547614060296618438","14950466480231118083968436552509529659437979206658532302232642717091938234227"],["24163206923590457897620842253663678343800925020997434271487117228883723758223","7952144141509287456780785753097389900809076421595167847877327608716049008859"],["22453453594503242459845009705030073827524752627322579163006423737563860795231","25582250843351864699566698523460136442175254346691985729441471610376949352910"],["23312982938118206001382435609382495885233000263536027143230150887343629123256","19374172311782639659091355955121164855552062161571480061223814675760135880155"],["20116992698872504304342806767914589767304271542485410510162076254855150330359","26871443357203129766208968171425909797779204021636064013142904026297937407294"],["21048916457951021524327937409129351062812260644426928703295178725215458816092","23160849499945705781113898203511440968846173037861929950140265861975278315694"],["17804867907593986387904763467242104211702221123681306184018259717345205720012","8762010612222794736577164626075797338574739236835717396251605498480692355014"],["7893710255733808193283372406913725961341273591402420050116002526384550097777","1073851492636988249193671187607420881518531549790269027061409603540562983917"],["7009453790239296811205854192749121032186150761389130696262868010046095424361","18102091224516990858046125613558001107459405333286712682227943173088471818624"],["16656162683483575297029763361966775698871775174055351500716500071721002117531","2028456172516466096419099537210537868572955252659440691221246007249432866244"],["14623009905328691188977293726952670681565170762476378415551843832150842605644","26102468266504401797851131006564335037858939330898027125828557524561649183587"],["23740435070162706720549386735566369890706930439649571002124012615055424908811","19914086173132896053506480636522114201943956399770812970066031028026084568296"],["28468570942133407349288249346770069869303605022905073469920837718605038565927","12908433653053385436870404216839986226528835586898580129070006770896568959004"],["17921760473641810435576109099958972041180808995153401423885890149796006619313","18178756333776776545116804911166926416491296029820507868275185429925236876691"],["25547389328259052791538599232853277041339200295469754203535469076215339521462","1402247919213745508700908691156560775571960927073447021726137814259215382406"],["2983517999382329431712625304602084352260659448525526353394799003136286298224","11148076475530347561694578307883395829530791584771437831480406771723164331833"],["7990625035142181252125937595283798072856764532138698016197990836526242042359","4208473696381125988524486304140032018754765879159378726612890052871779175467"],["14525052356041731820079987195792170596029372402205868699423735720047344149034","4606121039498855623222804530171680928010822538288712933230212877383552103134"],["25761607266319971485199310921937207820916263087107679511181857148031172035143","23323198203929782656691569702036197132410085929020899816956816159851751083943"],["9164570872291055083678903952943041729850638180803017246686262221701146429597","9683672039652544036372598093224189895310256916416749228505650560478471485251"],["8301350769250556162047565236963498112104867345422965660571010893614183828913","14965675060278924269136965750938464634101892114433276254750564117029448240015"],["4877310549517930613823569632224448122299136006951500887840426349696461792358","17140488788374007840355425799342641755661671434577267137478450782617890814791"],["6414311158082309013984469786177496242723810835255049626320769037488304057412","2306411938127445975274565724927051435855736314796915310610075887081679962290"],["5480254607033464291268283131617106967955762494298381485364133845694102141789","21052261026322286829758627450015011685411221718735827682060872714945630374611"],["2436981939785403717705138647351078869683987644974524632342284908711763251925","20781330377617705258797016025278698204394117983030770458034585948623346197326"],["6106924256259229446394871305684404576737676446568856339985464453548191514131","4763885462047594112609093038987318206248599147331173844640855261155180788421"],["16330436468928223078956601808456248622294673740258903754674676992163196888823","7409276012216933993089205371098602683420521270967488909648860318815989936626"],["6133956220368773724990040710840623549677912511839298136860644604556043413688","14787878273567958056356311400281620347609293949299277463831376534749419846457"],["10857868613298357878829932664405938273864872621654278965064498178880098668985","10703905375355702584126994123454280802734131848312180725999684154366710704935"],["4706287112266636717379451491626085873450744946750684418811709473816024759442","6377170040417555694669490026844667720609843788534899483936302630050055217696"],["25490042040374005023875844661612709303963625470342358749084901321008474800632","8537526958093150201534910447976794981140718972739048343215364364805078560622"],["3318875623318755005589407494065591258008029937834692681905448314063766844011","7294079930110899400160071071376214891262739343570495669918526147871570930857"],["7804676032961060102169255598879245821244194191293062963075703575290250948252","21442392307717295240524888054770117475269637752050652710945784398275639501365"],["23632286883766955853189510765748770150579504344541055590344261283562312235348","22180840484314422825734681029489572847862410828069629348765920466256606809801"],["295191651828543530316648244466099604667835288558338662491921741383574268220","20282442191952185738613268144970700188879341948603102338666232110826017590429"],["14676109434656996529420330624684574256970958264741574165240650147844056928736","4268151154107877586695266005011818313573966638079353673241594619952910914260"],["24723123685681327279855989152683547654843607483165680917704064427588628228386","20350592179254438384176946064200071008735386174210594800153739335711251640352"],["22037620503846161597967359731164391423082663076158062948201030071397242352587","3459306500298653508878973293579656562965599477193469572484415273191988219118"],["26417292013810185634493503864305046790516549683381323257312575985708837124589","13981886867664233039574770746122118201156046897479785985202892785214983664092"],["26618517245811023227818799931090282063015468186323272137035217459655180453139","27651461051753678908518250361177763841854801177255458577571615182440874109900"],["6973988127263242152357858321302843069342082728118670570923126985265416642638","167552363814066782705044026649003702971213361561018527805184279390009492173"],["24272624984584736640717396212691501986524932183764709589987504259094553716465","1081293972508193098159901656803795919939293857571807480277079972589062921746"],["16497444037918963588425610541632268866451800508770392831996737316763433596346","24052877782012055458433587538070527349575223589592006540801133440775599288572"],["23067545008866153346920236510741917023754519397309676086504318114005992639509","23002513380421102007633172324035093723759390389753269844249608491788831236102"],["714739038886167704351963549282578044725808881020889454235446812869690798742","10613745623567440662800131422639738697145983271771639308628688008676874448917"],["4291729464793747049702728292265629551244389061996809645645898225578615460273","15841457173825379453136293453231702001317100046092073496806810532918321105208"],["2843650999453981783419945116914287233148705270787381185307368008178116019701","9835830322159927727611330910727950016269857004218153710266350257816905820989"],["8348325351838621178750813674370006808148356149021131795550638116222594330764","3152850415810334492293192111423067402682151922056244726489924833683601998638"],["10609938638020124567804403837924987415948458134135333057249870802788246289838","13689267432295754052114430029565809367544715298494626784557077286972287015693"],["7396495113134991359481939651053740481000312744656302466404972391928602098127","9686086467651950064727627361376340461659602588376604261552443958681331642559"],["9644562400510417091533815115665323583207864604911793513967491377572722934074","25919479957536614123558341775829435634053281386137123240475569530472065762561"],["14762475568723041651261712395440893417903357476444248132787736282424057741514","26515047400815197758317068463276989731471666001498003767394392496025768861596"],["28163526127622462280042955711922432737359413622888248304698857482674621879693","3736374370916466321937955604803782057380260105886413574621943017897937895427"],["9450423079491852631033898876756795218902629331274955244294303493461108943732","22982742944741580394877972890548068447167228234911419965298116260235251665902"],["23698737467732537758317681269924500605697974197681888588967931020334035140361","26724315502706328664968702168105825945492403459048165249427015403400194023181"],["25024493451832871331730409167001987803902221984151914034480040266249820038386","22631896234386185650503438923993966566139049060754977680692884935173713821445"],["16864115494775225396670950215754402748259697252310225003664796526696834206128","14059763613705701553261153518746427729362769790576954530955799231046698787703"],["12601987100214759336587193497456335474747841949562886594625949769128893479109","26767324271184006630677721274184087670237237026840251779982796908750513140114"],["7143451968690316572731992986367347052444947499595685478638136679602324079245","10104685218590229595791129172484115252735879166991836319753887057194170925254"],["27756469748923901884476927886311832469484285692887712153967480723739629200434","3663929345671440183621721087264239248512691602354397756559024869565493906914"],["26402929973668174275852807711458183712770928501155963147232358291233288013514","3677088142780993416796657456575176400581468265351973906480900286703886563891"],["23180650298772978226261932024451797196078025730081603999706414941639150611359","8045042766908000141029757379839043594920904571712486676703255342947994716627"],["9383579408539995238400320254134109334476175184608657875785649099817743884019","26391961267026559093353114997858440021752531227281032694046179526606991110297"],["10071435611392533100698177106561977593121444848485454163191288822307186804101","23920827443335199229232648592080333055967464349277066502880180882464607644702"],["1411795652226842508505091152944879242470031951187516653189008149969767643374","5740719837031668141909082728027612191912144328433449036092948173302117829643"],["16091143575584766507254465643166916938305349577378360947053009158451999562915","21049782148577263255917881584854542384867456709154071473422910384909898530573"],["7577495139494226799117155538048566115746406252750128697698961070762032115066","5622889027502161122320717316192639819748732739732090590132798029202970178393"],["15151669556297091518893559218987644149071903267130373880306383933959190120476","7705308167066423990591309541273230258455643954853089476539514680195659872292"],["20397064356407296545123015062154015762525793175527305388771769175302125144009","8783905912540710086416591808959351427057258647287025651861972203735105678916"],["14583896308562257713395709936327708280905737398251591342545880708779871111436","1459312806881505150541493400366549920061179452700688668766337178069351358895"],["24013123561387416312987932959875803357031332873149741163812491982814093815172","12695373985072635268221656717182550782402192128094423162424851186483101396445"],["25565119792054020009822824150452233240377181175266067551126402798507480805483","20860156199885688304097083862751900590609254995239357619320253896880623362043"],["25766015983885880516285999613465687266909559402656207645738282162684428228236","14411830734365001239842086538115768142999176712558527915413866406873376400213"],["6323460532155926444321761246652642923536425245553564855171948096718982249738","13297461629706602300113292319977585925313954642290205168672196336188183284262"],["11909132444790997834327825519911503488372431068189844844050935614672833167568","7589797182049075572798076911453163543462620012550246495369466945174019838067"],["21476159783834363876764203337208142974957818794790278841950619874780953164549","23012683552584924184226730320836007640291766724094097958485362063505513953753"],["19507980062393328425806806282200029335879514145456888877037642313542174489769","7642815161608178127782630198333350302792013939222874472047033278450625834269"],["3438409299766625629564682881108353188048053869803671818168388963019758714232","10700683483010890972524665269751212621612210344423049312257360957624785023829"],["18058054069978070219151805683044215468154703553942881526190214736945961036777","7866425187399076850647850300207806940557625998766390692427877095652723025706"],["12740130699197910060866209639248444413221064913132399085897138865993357260649","28455071151925570015018431738281144093815571844610624349491600173013066706105"],["27721596042959698111145131816346897866276503747443613911593022410984866969169","1734246193956181118787813869373489321483456674475690414649751599582743132571"],["22263459332367529775654299270985975071995161150135188257593046173973251531341","23705101698489078325396860239407455611075682786959146126217582505040210387807"],["11638234373005521936748020831033534490883410576266093630159477171577685887148","14547816786110079004569401844279871586990616705270589248978123683156735490711"],["9734641120130247854121789123339574066362503681946094479142289172067294396361","15200255220234396536099666643543391235962616750612414294151895390434076483189"],["25008527563651680554669443949334780777757618004793768686045284005247055675989","5482447503470594730373642612301532228793613044579404053417034115873894352197"],["7545251625083250124064971525610176553063400095929762474684945657665896828118","21925760322748060256381421826633896365086819942911123149417916574272468006304"],["28941724688277057661087602763773681307942232383115821470708661829455956281037","12384459169199698434102894736272710885204010872368782213410309035279057004977"],["14632164472238932839337666175151245177069330657722785715993479157368367301061","26762336618122021640731109353381250648831052607506496862238961283842901003369"],["25757070101681284040710842663474967245710331011569850516935440976879575054465","26709559475027140273788695273677452844303668588186222692925623549722849812890"],["13356536060844318779581701122581502825004249701156764638007944998928532567634","20048306609407535853066173101726681502711540970709000194606817116739428839284"],["4859109861169134376890842410981548179088846456679556725543119141788362109184","28183900315142266372352213112100905596697555980992416111669522215552809929041"],["26984624303507242935902719408584139231324423536725175917915178684108444805210","16194876669627618422521754927519088033788619941492658203652378826576244001349"],["17244170966353797561695795576639511258903336201053532620762676766406613910402","25090811064903940844551090538410882753974628952974352155996768359504317705919"],["9839125879142371994325888182737001117759675139215294643259730877377992284224","25028042568707120657788726556327075812492652139167635991023280765013200834250"],["19770115808421705249184543291926488033675948290916744109501625532876591200855","1299361883089418912079531342446679270182085170378078104637323886971171967404"],["18541903481343349173652493378123637023905090710610020900150933889899577188757","28270753801748020449998881333698234408260775338407422758437756288007518712751"],["9701867186952885033006863399537985482399576890377862556272198388401448177900","25358190653878014230200621619525231250576602972457025301108177899919359076830"],["15184088091423148106755336205133026267713269748779627730680523533463067697062","20467617844993359459139373297458271143932547367906149133841441756747612076141"],["5830952407276226996388729958032147908646981265346810170830733458343604273160","27374822458069735349977388711307680913935346578422653325086409046461429723334"],["27983021121406327541174252599660054934915939630601356317157339354385903127019","19306373394331436551117906297647590455145039689160372223095148877097600700609"],["16076087682716088266362344811726395291042827033282592754742283814698174485422","26226476829389777095881885447789662311056943712572110574267157206359924315481"],["1009795033365634120559894610804574287376979648865529504461032784748007497967","16477602345190588467589803588224205541553209301825277581527344367657506075090"],["11886468242976572842169871051580394269792327359397072919536650844642779106078","20485130163638124960421073786104567684722012026304745520249308142860882482190"],["7923784108520226268057493511650310729818834622154656029121139843708181675294","18918380606859056253667780412657903171782358930779955137214649150859244989930"],["18526400066684551616275474753263215115117856874611429165920813240354541832735","5090217486343169901428667795528357943130221349392629875219446902750699613221"],["27765046726981359847958624547157881361666392996027739009097545186433562039789","14072705097595795222828395061508453015392722404296766607676647289226956896283"],["25124038486124337690783103480331000267207299388646246127504062380215173705129","8285070197273272880055759655072764671096741256010123739625983228904034970991"],["2678723379640218294630925260283899222579394381932412236482828713993305452704","59147540897815609285456340332744231312602206221366627578530658622102900934"],["4578422074831380831088289167011197544605312781559841420329849718916459190611","292753579108456323825182339612615062672214693907163821984974913958983492287"],["24787513775698397541171866935432900740165696888385342509067404642990557131411","20833729232842486486885951205529346172502389147937598855568076322886109653894"],["27819774206177346301659286596207024061103191878473983718839709572403918352162","28265201285286759256382654833776545051597059308772231846083797503293984690329"],["17421664866459489639131659020867194831849826664001656916006581835624940399127","21441437868156843287599301205030968796099686852462639007662152320951874763942"],["12452460042588972864356639410510920453480895457790897401017819352591557299796","24099118125936398495123509399537232440118094670176754597788543051153460417014"],["20583038241819039398833851363188457558543483256831409115623124744358943680516","18689787311834968725654887889029522445654149024995610785231408680526998629825"],["14930056796799106363191074023620437109446561432699550489665737535912058662223","9795199845270116453019559146373723934970760939977496801352080131712331677538"],["15191614689800353437664204299592457582255083314846030028264775317869535179569","24663730756629465713112943067787146144482746364156800081182815265597394321555"],["1580329180071611736082047230824772898284658423684580335084297585166252344171","9330408728955547729067049700848962934457620748731184999761663747218838790666"],["14317024557611923526299779343623245580898428054970831802286189910374687458748","20036802573950083236659037299344951429412880092203122524905389658959666555533"],["7620245597445058965571166606641329739877190078259469237247681363403809635574","2782679636200701553358007257588611743046398280086982563204110105820292040150"],["18801367082800493051488343983493583193119658118128009942688462001003242651297","22016933822802556841839925756208191171249563832099065603207974645400725858127"],["21367980588250783481463119543165300441267822851050180163224595523645566553214","10097415574176541695591126122136341527111896458185730364729697703906339281126"],["24655105913286938437413297107850982712739291843518463283404392254629553107335","20243727142513697653546701530185920749166345171378227124530603593694763382004"],["24327565373767762948795989171921479469798707916682086046195378970745719915700","76699390699347437508280474013573127167837812276265791498877480678078757947"],["17935147764356268537099962123705603988301810279906934520838587095409265419494","3141616420070972007180615317520821678925393600097495192591250119848502234469"],["9109845185397047691939549617026013567871596858902065522674048287077845256466","22515370446736124583846500476684164653626453720245182163324285289156546996054"],["27170547407214363669503781159371111950921169330215763864918416207089122142080","12255256281015629898315142313824948750181610233472987648870844534207878634342"],["12421311837880652804298255440514808116656438015526889411009704749048692992252","3050893308090896272930225197056947605299734815511100294426141795137819215380"],["8238028931288070489540912311389395420561036087391591788962294015498077432070","8501550437355779695540881761481911139965161044801591748736039855535138415417"],["17592249834055051399924456323195636407519687027767131665938680514636697743611","15709296102988419834685795265470507936798485002461927364863287191622464607649"],["2222824430846458098340273744091911540422089294940094393180493727693688789126","24757277863829384250102563035972923680571481991846750860312951992657454545242"],["2764929786332988770247281071053572068933098705528138731851769219629084350842","7765303265290706841759027229048955259048290056118489619214444184072635834705"],["23319145001782286770093508452694840928021567056904873946782256661315989730518","8000701585555184122577048754731853606390563423738727933928831066271617599500"],["15051832533213665615592012081013052435392551790216871221146044689147901265685","13223968399469730959291848032622361056944768132683437587735210971203077669744"],["12728132763977429264431468653552407496031917289560549964791028786150532254126","19203920527227244799606603365399196247161259393937642939509150670157116375252"],["374142119775607013059966685470083912919053311958232108718044048509526142601","2010360406393285835031682137133712367551034723050692749182218496870919566007"],["22285730068004158648699426582522391843405172312271295774579855752399218325445","21191985885589309292541051283232050009359515620586795913415275115386738481633"],["22434767288423182114088858476380754609575672410333481874647455686397245273288","4065109531083644104998041891035066099261274263046805662849917695548535377214"],["18173289267700359729983037567419166360615670281930040275682183626945358481941","8160480897368594306562532808773676655355838912402884931993753601651885110174"],["23223496269569355651459086022329181794323872848069586948838986922737164699560","28766916825699669825149730457384124918389574783351807391291012708510002998405"],["4087181030098024277643303376458471478291207176830111655395424471270273974093","8978184271164873958840808130084610889919666264538515707935373692617791802711"],["7381156748356675490535973771233226969314990560790468205956945894083249999483","9725224201546876922856534059636764404696457924885342185867511732235241700820"],["9720377154997239237880018005317506743954389413606203409755881730455485701521","11212190647349428129270625460671049556477444565576014790836985072353086250502"],["22188770101476212244638732760623263299122684038246954364177691579387298751383","14926442545575043154004771561106325116546418703853306213686178794602734049917"],["20162954205753541608771438781018690290415080458327755884105660186172556763249","23787216720960696852894107072741426273971380070942876752958301322246236906256"],["16921255845495403800235000216391130678578832890032417422631915264210104552261","24084464282534297789295804894690520475738873900040454183514586729516071030232"],["8252394934702440706017348891408794394071433902138738347630631702393418366042","10320917891032319579281799064033103647624367744862382341066417280790751799980"],["5646988277209987290426716069339105027588908939270399288664736158717681366247","17368480558235731042212464458187221664442463383848451147023130802152235887013"],["2233609845637483564220760364878233856650756667143756996551225938461606710898","23278583072111121104757241546507282423407198840453886958693502788719800057865"],["13064396356292074172228847549642682329799719073122117726380925689246956417276","1489553816992263419088124981317019722005212456774495675591020785380148456581"],["19471631064568503345621939395908142722942444244414496235036255863987380603960","3067420017236988446319775743769239589633735266675919207047322622977160593503"],["12755148129231133765542301786934132158771627011634798391830082512145740395056","3627368694937881258926956916199865179313630093998338784661328031903454195987"],["7525639792941332640050518633051255727477922451773340387770227200675991821983","26167249784378415910927214816791097786321133002137111216803218106524792939533"],["26105584214314786605083382373707275374507587326497061854995487467085520839842","1347507561652654967345656777535402221443886060902218348879730445658162836948"],["9854360189836734515889637327310959991311499133837427649157937857369415203179","20178944809213062966927163544281646092449210021170060909685499779963928130628"],["13976247657777998097152805748574495453603542316526144430604183087751958436779","12837693055001564741614785033277860873333598524176728898794979033521210461655"],["1386480601244719366497647140867793499448543309255035696442439209201927445955","9882361716069835613213366238296319436405413603375213622417038454651378538826"],["27476757731966560929245675185540713104366939058268993819772122479123196495892","25335954792944441081866946869961611427373720642728395150451338799467790999539"],["13075519819810232920888920056834720404851339235818532263006717058799209818993","12924000505826478999396947687221335961216076161429399891693879918838525442589"],["26683781649756100993225958354144970106016179041574937432244328930704802703638","19809917084671502912266379482790816400545652670393910247618035177249678039973"],["7525612370189811449694043794549291933017098925483504573920968682169719147812","28402744899088569821264221235120419692891451574620641271733247041994578988324"],["18212278894021053920598455605405458886831958288269600827727241206948858754819","26732822863488503832299819025116319267688238372962077232212738975588523700630"],["7749436680799864966607374245744326535285455528841901680994078159674708988303","12831141894045920900596345153692016681398970724028754570586449420200187923227"],["21577061612283172489094421732760819594563113717267397249448956382007695967074","20048553586156701899101973548701736280483467236935668960259296314911507948519"],["16514154686465450260177445993519867409798228302008648296120678670432958327743","367790027932292872390252496042385100940159960682999020132623523952920661179"],["18538398140385145788564948360274122111898164250669380985180192892732415791799","21791853842849514751632425370855080463106896164064669594907276024808949261774"],["10760246846794011320105122878537393204945226565476443594384786040835123055355","2372621624850312566557375514981144402011432451725514017353272346258603580226"],["6598060354354604807990774358675513619710825361213759127606571919980793060571","23296152722820442675431094126322586649882431820736448629079373463751959532332"],["2359325316433932160882516612105608149197502216768985993290694802086035662451","11050732516665927900167100897886643234523945004344879043423115151746728010748"],["10590802426602996567467824757073390958053073642022379869665553285374763349144","25006446293693322875900299367276106454222777570588848120292198400202053517099"],["4287037156124609662917965793776377933733176685620091460441209124565548669915","2331341999940632013755396285845107201643795527600813894354524077523211725010"],["25928846218643214584037367204864902384991625667187302428120236647463800851402","24823646241686028258386711417598179092628468918378087884892587618027992217371"],["17497145660203407027969459075468233129218810283150731195005198210081273590267","9120593874845103973920832478090551919270079889213708667971866352766060960667"],["1685966901442225382007392838536981044637042648823117540140920896662251226809","22376066437159767396720415884086240645766136516133520637227834938166561306678"],["18765017065278239151885646846645016096272527236884038624464068968742139201455","28663611328509030078091424048332096751723542172393107749760292650673435566426"],["22460322857797415601061613262185626107706682555919715630719249357677615028316","10990602386615187411263301270082306300760586372682648629413923788014693607224"],["505057741320910596583233310206293895610664065384857706856076690407141100714","22505708598215549257242329473501942026028342533980627780840115519142649516148"],["24918260362510655277048744037963520500470804261883456261254942775812847711838","7235614076250141995473348491156740360226433032976159895799412356234711034001"],["26582810331827003994495573702264476438580607378730675330096637287106229131005","9326805139130500271500301481319118102717211409177233305756538431423438166807"],["23893061241222600414228067699343932258433519772145759151779180082198638781668","8780423504600379283363443474805944213090626044276085617905030627986779629295"],["21646933467887754436892071362496461363455542339083249339550822777109401654239","14859981102402044962897828200266711840252908963432960488191214856089532684889"],["20041739776925600185577980690932575431725684048299829761265402131266850777180","3475852313370075144162585811811483271366759945843780250076654432061317324960"],["18999678740644011232101927889505817147912971199694097499726274103389975211590","26936197751396877580877377920787091085697489747690857583237200052103036770602"],["16565536740052481665983713714692100384444346954145960725170962181745987365735","17797604498651895915643704058039101586436648778502403189078884194834978792904"],["24494601150401707785471902120520342871361802168249792070660775660287999203922","16391652410104927325572175401701681698407066244937826591920377261174688383111"],["13152592155335054568712337563534051594529870618275620929425355505737663609497","866143342540559720257486999775497674215497245158920200488932355500019571701"],["15565360784280465711443546300244857140421175337756971914569319399345175964693","21723051191828056710718252791118037238035022073249759166315131809611111027443"],["9083721667102122260325338969939346093542170122666329223957986046595224729186","6279192624506087227165517332579014303420669926903179989954749984428361805665"],["25812764398842652312966746004851592308586004969368101619518541715456152102405","7144595558566346128249464110524483226771353089719984850039087755405105867238"],["28751677497628815651636752529750961629761185461424425606969798774178080027002","5673246375574322722018870155671553949886625448850747701725387893726889104721"],["22745575376407260463014164090613770079638835544173760808434333187383039793427","1387469661331437932367522057554103892881601699614392027507391198617570123825"],["14242246523261034035161092779026217110931347932154905453936360258188389707144","2651898291840187544652825560592815463634503045701551275314161446245424922480"],["6228088945892057993372986442380494133635272635663928285039777053443970121984","24520424567047817103009565298421178653596085632043808922765092430488674006881"],["15023453593176296298791509862598555558677590471218894932521480520894331929512","20899180486975260054147964714342591850862229112143957248160408430322700914821"],["16364324663055471034197373954319527715035493384928309081159893273818706128941","20513661997459913469628980389031074990581669416075579092418666942501476101135"],["7838077736662186842821736592807584526585472220700755565600534529595766951239","4006519016071349129872272854570986786573139441994844605600508930641210348880"],["20458494308498225865561025765745464870651605466421562000867216475282212392298","22221742566860487035525904297532545532669396199634157079981463154215281447141"],["18008295758086106263872810559890931057379537592450597852922748617750097046737","14744843759340649203865034451244006570059372657272086761805538983191379864521"],["21419759809323445121109738074112779637563389128565131755924486058456482060591","1828050405460318747859084412299477257364608982514381360061071923592073027516"],["7614163060390272331739048803792060911437131160154024725397878196746089078264","13286519078262930525235468402007908121355741961008956975831036089802967839772"],["17160954118762850674875121386069432975161189149693418744231956035953297228380","19714614782608780473962189562888796365010979935776177250821716898826123533248"],["623146371919511197694236930145381394666421834354355300848486830285958899312","28211182337395510425018406642086190434799908442741754569833723919887153491111"],["10098359912861965585413849213757269978291135804620371796906701080098698955399","14508997573030335709924713146687454698785062676898215282917454662995879081664"],["26894931074032336895014977649243364887471416691977177049120803293835806386675","6796787421059510708195287355797025716020032603797323247189546899057504148867"],["7770957894187836095054251366103822757853294287562842256442327903321007324633","9682592967597390667678080942213306182192850600835374332202872980825807383557"],["23646019632531723948160308340699320752143733829439164762374195773139502298193","16357192546567253666034985119093050633210139678830915219113362203633120688754"],["20051927647342681998814744985789869904684708600386497856628692282456807546245","21163925061772627007645794341282866227006758454402339263700521947810812278313"],["11459011861094039409811021717659990876626640596977992438945458458530814126090","16575411802358721937991834857553308922177367462963861839083967710519452432268"],["11572073541183455512062443727329118371416366572882127925152618532511015667935","16541246857949519594230599388967188276743085716160732158551978086734946571723"],["15074393746399918322538035291789884364804896503719896598913340038732235924812","17976621011849507640576593883303560970699315758412086142967706966345611377557"],["27616560442305720828252332468496753666597318701172610543242645336989578190415","11154973298646704518541323623511389333028610617206223563412121629649807990237"],["11247335817807779267478739853680382111632654565646668388006635591321379004446","4285572291383342116911151421937583366989644102385045869802944152776725279834"],["8530929401639272202450880047121103880712330694845631665343553495538791206090","2537437337171163690236089503312931299711647899448882300217833305068715176254"],["25778758823391940827123337825683369953189623176731786453002666176848670018531","26368916920139238719086791868418647146873430070687925999717687260814347160758"],["8592131226911689741016588886180948104046772433982006846580312453432363673132","15059420572349027649540112824056213343392030945127595591975939109234393291473"],["14438725642912696056506962879235378781820814960226189975057582955826858506977","28073646459341205525059861833683033572151193598002058996686533519756847251790"],["11405556909923326912190345849925773575051173046130126605303052970178550714572","15577101772417694083448523461090254445561415915176349753673612255362990298399"],["1063513500444958462301245514706599401472698203393553908049720010882089786888","26230546928450562716000015305931492739403672167700629737584935965470458638673"],["9128014883840119322278514720311777178780435021173838293832566014027767702934","1772621038806325202263878618914655985543251083528422865429069076684937394324"],["20286263150832799355911073699591669194626830226186078450700988131829029138958","2078106152619389715966565257568073335338015225819277541629582464426953890808"],["15959382305405009697071859921997182294294758976732517603818779299602166367682","20203116888292988681074520708220917900523392672930078040584277545637074856768"],["2169002721408896083941478938538039479460483279152468343017058281350254861915","14471022084928565975006934274418015212008321741657999242112331978008018371824"],["25659273492549901009495473695610740412974891390573789698133336451482727227463","17190175193688581086101519127621953574681902798288930192817011945554239196058"],["6033868408601056599183324997591777642529268013851812302809538437815764058406","3619622220542537964744410819006776665967508149511806436086375957359728198813"],["27772625389408494837688627214926634593485453332388464505371616530560910897080","6772668967107474491991653086612047335792577853254759373613331586629608274628"],["14805101734370906010115806271185011874699058650517733122775244220568979486659","20026802275815512826933791005679204189446321097016108344741413885693731838558"],["12754273598033579903067938622875319035388680583433953774567969733631480341255","9835794868842896844853135842395553119679995930232493734747547618795412323855"],["14992194515435008725296131137664312741971341535175575092000443912910099906589","2159094155822051778787493883574297195369912079192740075661872763347063060533"],["19155410799337471677866229358774060373380003921192669213428986890599940890040","19716881098724695324532017107174586605637793518815458457585288533245474493623"],["27177445516411478948273978525908533947494053161912099157477655675663497557116","1203167561553384756982249124001889864180394951186469381494379870703377101458"],["11518421100918426797430736629707674726640307056361436285001545691867404039371","2015544315175323519717492058988737085692542559374574049369170649509219416982"],["25013302606108399276247998514659826147265972062624867642520681370777697895358","22758265163286392450675534782273444618552760068092862983110369854926138961152"],["18435448922869431299212096250811612118105965966269402088827013560586727098155","5526309312733270494099108163986985719114124755086386460441603872032848805983"],["22672140043818587184335902689339950397777561725690000214514509275352110180992","5347139700905192291848002432265430851604589613390296092107676966048633129562"],["15589274400312198107174399526025406349117443591822990518984584041962987548729","4799528143637191042225867537207290404335178443131651905510427094055015957916"],["2982135881200999498451358592022980870446063505404788307167624844613114069972","7073674635358480278369710793855497733969355051308999601516733518656484946972"],["24009646215541019654139470894063481376134585740821311226939631175195446218871","13393109248633765086863854733010833147205594226060322077353781776631746568310"],["16611549972412232730279651335006976332934046591651625701774202525174893729801","7163189648346717562634067306355795896600887034129030820358188969915416355914"],["21026654745622339513004316227930302711509574656811238065625452677137586342484","3441523528041747220513249034177239344713499561102198520333940343251122856353"],["14999697998945462462866692076345633494224267017044994399692877344413430172996","18715178884581661731166911233858452521907120425635594373950402910267158806260"],["2518236123602922957239499891405935064048786121445628616234623412369300830058","14478944616170299949862619947903222550338680824251333938026238592580017025162"],["27645830699009079302420209847237224920151194339492522774526728221788797445626","27199366530567678443137947502929995200617322042414941489406569246510860257626"],["389964043557001213199087144243694005619391770395862597125456020795613878027","19887235271496371855768769167092803464403098428562875410870106297350123342270"],["25202380963214707855605874414764440816012062664611287864838268286144201934987","22425257995769104342561062182354962592928846574701407143338451729704512728896"],["6539699003391693453301056054625983478857845738314066044837510373035723256532","5594950703302251565751674498083793320149412528404884851437324284242145369028"],["13824754487446733874742579227853108924803830177723235701893031755456235799105","6668397434743948592623484046188836717017868295199101614525243421911474095319"],["25391204162724552839315822004510301391696710662622143666023145458415394707125","3576102133273725703347574553790326639496083921060818565389995775349914003292"],["17764281757157383125524465183736636803547160450738110847215551564896176025152","9891130269014171578967033177403122409741167456353377024134571769995652353378"],["8129022412559341146480554163154979284864288216191030248206605406653845190183","11557404032205399101340723557157476596739399366044437815609966061994578098823"],["19237871018515070490389658705386612526044036276680568364107181611733138271119","4005720421022802416264452741179621556172273211064147383067682839216097887902"],["15154489283051061888212045593522152388652698229075497385959633608256809916731","7848643791931298309516367803650744817601855042437880715056722971704334822708"],["22416068294035129057722104607039317844844283102070021036463611282368081036040","14184380917106434877754108981413138246834275581963268029612493258109393127837"],["13030159071629260282065827749388109513897641679817122808935739595992263416194","23614508615751920555253316074229443874017630033530141720255325885080452432962"],["12035624848202851539421863622990066007361225070972003319346984105970545925929","8819312400645669102815620241375439972307087391525276508064611747564805453887"],["24775371300196735273806033559444621256033790878146228297530112310977960165743","10115133238850898123160814889888655816271918933456292827212862765399888883578"],["6456803865662250403008204099017674875061304788544011008747907826201917405953","6913524461487972632070573596462098127209732776479077978930990439512536507402"],["27726667735242336800229238479224198289449644482729653217306458558818444339747","359059297414457664750989987271965286514164180604046787498308384379355540968"],["1257178593887729714911884028732172134355651556254339110248007212928710162324","23692037221138360427768992545738345859245744816083173174469113502369921782093"],["25899326518350399117221974907704306066575065102313246681711838173886282508034","21431387947311134950273352435161184031525555933357798156341799388283562110856"],["15405297293499486979194745500865481171290136996643885875174845193914161978508","2956753627217154856218938369967690171650285871097960075153228325377195064822"],["23259900219734103285291383942431986242930707553110399820499300921228629098845","26874717846112960229062435019517833458726924822875249272423757873285024870820"],["364101098140098114103339142045372335133624109413401345664032292765724517789","6377239348537324752761865581691532233639265336353828898614537798215940234117"],["24557054477724304240472399783843355168569182106953076182545705169799563205129","15828269338720245482429964801069714677665969768364388171608140666286889185922"],["28487260199524080268637561234582516460743061029670326551613218775842885725411","16785163385094993494235101113715966873547183844054332259989482936434713276624"],["678625162097606048917088678178968462415732970865314213612254719852232739579","26418422278962367749214435931069629225893096507274662758742201696173275603863"],["10305710431870622827981042410048330487696090191472070095009655343390699586610","9085728608519572204196151977161313850392380357926530061140057834182356466924"],["9581618547135047988821909782907653290065523602053358408470098972488695004077","28090477551237785947255916255678511583241391617629068586292620579738901342317"],["15161953023348895655949825792571437282903257141215910713825470901752671770774","7531439685610000973769338256666388605252890731261415003355587787334950497957"],["20047429064103999995989448032901746767719062664898452344204133455343039173194","28122744535679969676584747110116842951679921899319609927147571544636601425433"],["15965283411145620569705484350779477884731514387123703052997396010789896624311","27225249712837220276086485283549638398139077760375021916711450514891587203465"],["60396292179661835792877044107409365250529157326110181120640034081058702510","5092458739544986292023900620791493759723112398080776003821671869272659345856"],["20502845807263310122524483280817455806637990943600969992499720169012125668640","3368230659007879263062129849725455494450819506527200707263683954413680032827"],["15142334323674196075189995967432227491220996996505232087072865322111543677492","15160470475563276200272729841119705596602070541482444418140190822262024278901"],["5712300799705424517019644211612307309439735141564886768111252213056828271676","18915597639580832294777362491596573097937960089995883227724339513236552694122"],["26999772421464221773443600400577483558117546028250694175886626836590983223691","17665322004651915285917767020803762959608619957421809518456973205778980527492"],["2449855288827211077654744790509296887289472906207544297275796099117701600119","26649208918154854892539485081024489622133591260306762634368609426417804280548"],["26922441002697782811653265161666072073818555939208440422758460642270215215066","1070328358179572552259800467559502152679860076665763526494793005434922185495"],["18305842019034633438055961898068075321849159136166862255454273880762728177387","8033440188173703649141817539565954441055462867724294210442954351637955432308"],["14210838592514226717998268230766482543996997758316273372427790060077705859195","895033301628894165500130192897030925012684607257619811454764089871566092065"],["2399160350789933765744262505093696632607423103784053535548925878401009124524","16960096686464692276502966036426181370152239431531721005966790122167821404917"],["8879686308929497400492476207885259416983303309475250849716081470719448981854","28657078508612940436206719707387245227735975436587568108416029901228255650173"],["11170658607765699481855721322218752311946549490504353851858272609285212014846","986167914634950745648516300264003293590765511276512510780787378840028494057"],["26674240806714210645547797139210589800536247999568585596499436421261205605826","23652935692736737424860541937848489536037812850529145861674750668538524645593"],["18141306834561245870656729593236476999617682074358628403398773108643065368965","7318405285790646771287944782342019492992183657040975781374313152224804770456"],["24797414884218930416884128634979769117229730230187778974986867544818162300671","4207755902912724582514279486218111966047506247922849275819860805487825256190"],["2997318597846492722903746184758635956069323731291769523950124178103355316529","4793478598335748169419478483578069842984632715163417849413679304412762228995"],["8248109796669605371338876987430508477751243057680846213020978738580025141824","1236797713417116368923635445298244732342563495047741768521143708913351979113"],["6209784348897158698404762752188593196785924064602376556979689106888909693873","2940085505955711527897089229999787132521351370756342380229295188642358322344"],["5777535327157012037889447678043584598104806115758265891293325137691393356819","6964501285331148116037692882334243963814388989819852185819683283095254276281"],["25422145461314961692046352138498977775181212586915893924600512428940624148867","24715549239348975200713535898752151186884863724128513207376789087579679303720"],["15128574011112058525722470641522499500237792971252471627134047072004586470272","13171240402166227926766757870124426695266484990583787788461135939480258376668"],["27268726117681207264511006626551420505101582616040082030927370677073308255441","17594718724320837159586927130448260396576920369058446948410423406550981493603"],["5717379255655954544174850618569694496577917987833778891562679040072319827467","6473679575946392770447493907215670155993116450520315643699434309196278863125"],["15361432562609048292269643161048364877983544241532594649521631722309718054236","25513077075427237382956191375010624408661489690093810641752962937474692912207"],["5019056875798200609217121172872020308925176083686640274518673065681110921012","8638097955054392752583666375451810254341886547612213585234537370594582856714"],["11567977022336234468926437397039906903028887951926987490181334572292962710796","9147228441863794844965441431916848860876526669938740655563596089563997162856"],["11933231589240171495686518347391667048543557520588528426644119950198476893116","11267440687361757104366094737860859643939548620662684183138707595209284684745"],["8172754722989821749422856456159102940776751798244806999019227122688845976460","3630849356873115777992102458457379981743328035603359149775124313151828453593"],["18819703257826741902480820373616757656337014004187218506338155594965975819190","24855744437764370591355845022025436909763759431412230051881622495000862447816"],["7619218677670431771263859928219382299026141060984751100874861593708880099548","3699707667929039711329996262323840331727510330435147530866486381247443418272"],["14936832984696238618974029154190651212046862535591723101312125406697304377839","28461027429523966173266574327177904223768788756549161123491362289851079739130"],["6990581889132808904616183337977945262480896090837820308561502404816526692645","19711916616250942950801204560053559535445110731072178687178790805366847254064"],["2468029520159235225651322811033377239992580566866142703796021387090317972226","26414540926534829700409226980896427238833386366349934830326751519714723344806"],["10913879437043167209860842698426243274818135936174559635650948462955748616184","20154001583003547502254570837085942493486616020954049042649471604751647880490"],["23625958974431486854850882182498282836457551679217348518496286879626246258105","16664445388638784727962850107288959994825677481745111741492620136894607707498"],["2024656119429898798643347573194120471807082455959045763444473744202302000017","12752652568272043497837711555115338417406309017122719709276185556397545164032"],["14749216582174099839793882076260077504260636478174939949855551063158384572128","19098407175470126065246335006478141770256894120988142956400719856867138700510"],["24839754728219559387970188076972166270232590884383745658417112109296246818954","10488871502322615630906831544593004144345358713190363424677901320938842334281"],["3860006405760112152965871473357445389743975021274300190578878198493108506515","23123178348415229822546436181740248421888486211659527365908826931708900449754"],["1708916929512591810261100730660253389781748402161407798804815382205552278169","23990884226447668186806339538920992729394189948895574469890027120235475743463"],["8368658752608770669971557733783981544599947822866166423769145078735977426657","19563532461415248776352944118871479426407533919273239786587817845925566163410"],["23660975404136912242912174667942477234765481083822459112079432308574291170910","20959870618371632496931356042923849156291689884903178212905367899394140984968"],["22773573266325383339301150195492482123884693805822176996471535995169551664747","4034514678359688191876290545289696514243991014527665184115093163657833994132"],["23006946470428050154913377073483796774631008999430876258452754658163095597613","24939952223427902348480416464803138648183411085379087838258194911895279646400"],["20943335882665227258622685607615919622139280585865121709373718023522051409131","22104388605527823880040573948962160026827075661129021992980587174540084231255"],["7293645018296261628585542446683245157993319308024573905727479425853088638916","19862731361847158144701723881232304546552998924786925824998469754666856139265"],["10082878486542519879948709399127064529662331209581652993013425737044711507740","24698030841560219270243666806646588664590778446118239894997771356786367137838"],["3608409009179704011715021416332494889828972659539372485332621055283125709271","22927682745714935792875845019612862273969097224174800352480900237256132955077"],["26092835915167951354625755972153512751112127986603643045271288401074183708744","14158654544652845004806376316051972792559045492423125786201937874745146832529"],["15953495971913161410533447802474410627856824503521260810857950763989121748469","12191621100151517418674632848952887662228586386739670596306478436449671957405"],["13595505829707121325247702079122839928735232206511596585137608628465398881660","28459456093827131442793494903636152248612299406683652164666878932248480106397"],["162742238648791782669832282242321639710070957819642384200767457282673657385","11006184946022563591958626419699215978768127949832629378925458964457469153546"],["13930640735485247221900118127813129158772920222817126891472080026555982204633","2432177639559832830114572628537202376908932575335885394034374418919344736198"],["13909891533612530821033159854261125666956338774792795415717798310413260183284","5310453232260953853666823237912932085100522376588627906884054098153772870175"],["15443755807711426228425468744051821104893504629879207013898694703076693692947","21678441755975923773227518027450109205747164175873178326657476708844316744330"],["10599485982644957778843863711908585415174906639724190620941509949154758838827","5348905092414869426775624417546047283570127290200657267076011312945302450361"],["24814578525546494356217641568260519478334881760079122774823158992120548309034","14351811431225920262186072806940374255407418811165639420794365463488593233112"],["806623430834307183241421259854464160261792873760877545307545663165253991019","6594756691254285218072776252892937619811184331311038432377503748458658630501"],["26289267807731433359038452829512599566588636641576289168426294171853044677738","22122825340569442403584711266123011505019549092710529254959814207093205015796"],["27458368369103725720771845096938775290881269050854064668949766563328519745362","12667589288584464023008453423691149272423888863369489688112315101060299432065"],["28781435467032481839489387645173069468482656967975819534331767569608428624483","8179753155491516116207191482586273618788768980577714269328737486815212139973"],["28742361970057724588419767838516769168669186335744275638083270959569499377214","18708216249282923080919706019281117498449572474887015933725339148264389249947"],["2379650926894434447601980328869739279024553761825249441091406815931238179201","23525420613375156441238571896969734424922252518820804117934652050429182172299"],["8027912755856855799258003014135604262202430488470712341765582283255255033153","22257833498015171692250718098154675537531679962866443025908557514331811505518"],["18859520163435111543321628131492626525740991200157026624252599448839720218169","28151528596435277449013913906708170217668389756561398221732363677546320724956"],["26223481618965792329695918100468032073989180268698522174538169061997856364084","25825368035569045897637920446367498030783434465152753486992237865298101844818"],["26893243301497687510675713113145270017269622211932757445266875424652005191350","9853913281480324041088228088390075299619094873311396519333510129050537787829"],["20078911704787613242420187910523841087051676774942852845793374133158248394328","26417409418064311499336473184924860818894858431498546224607612115255086325478"],["23847745762227104047127286968997117433561841742067952962714411529417370445666","24916662911928423044313381038700147000352437178684479512197763117078784118299"],["9687988060896759548326655217497855605176299327981048250372124753558819647076","5685811645587089977830625684118631229811080412296288193326972067049296208065"],["4222778076024209236455740651364022402696974679792522922719825561107550753075","11566188018472155950247261458605573743074943842921265838895670263536926450238"],["1356341473067152138789216941115935129213905683542678153343874302865811935860","9609765874546627931810796299860531000396609425814052827394009027634056728232"],["28520109440132084229711158518909879219445253788690399621408849121280922622467","26932924715402260629709419039148926903555422626974873637192736289780523844744"],["3182730675517972790175971781530232721279292266123954852998284480483410507991","21454378360216300621960252611280351297312999959639478157916729067798310688257"],["6937368061425406311193747534701529879158348088964785188448534738121923510957","18319173019717421892329528462233586899229913469874548142280951496732905471361"],["6520073123673086559253940965316737844294994774540195684586353044481552842599","20603715628464124452630551202912086284164029978842307186264173709112329883833"],["12486434581304081045858472060034616667608268536698266510876520417784671210979","4105569177886244325225653703660813528971192277829120648054096955349751777710"],["25526255416413580177321602083564044426513059252931801010888736828083748646190","6816560817881484513591131196047395922978185125191967403098089944528696679367"],["21785477457671232273975529970693301675991150868513279307983328202789037731380","9444557582982234943138590420131928694578644640654795343978123704628196136823"],["9240005414008035969238195348107654720149022449716463208831731528154250225983","4535593083118846487358367158303008958997133822784465372604924314433348770460"],["11959459920656519682019010413250051997578143756036992902476106169357620016638","25523191689669673218897922250259585641826411497406364443370763453336258514676"],["9095315575896125603115723664969026566912018556144937016465589856411001720298","9530856726604200597055480044508108797353591240780495602583168690155643500406"],["24353996192477303860946008161513096536285552395395612286079649454229489861982","24127014537382229238995251323390617074011703317931678131262095690685312462155"],["2937031569755214285562013434990123854943088673358942850937064659426920341322","22089970347840879683465668111205973541744653871456621953246737881655785024987"],["6943980686915425151516667196814346237869448808260806493330084423994174784957","12319458558953347190928961670006916955699989871811953753968664559717302224819"],["16209954637930582692943021758704660581870019424505194170363197649821544368553","24203946278631158773910941900261595651791140937100696200366152888870845363149"],["10315261647350975101779174138222297842585651377176564612430220637425746184884","27238500389407655893125131694536965363826149785331869130731424742106619167469"],["26067876495809217046284341601583436419213789817376982772311074727504260073599","17730730853868600724191907015151704561623416213139094255539934020959014561639"],["7143315448745309240594869662814697737453154815294099810415037814989308387131","24470848238114197404875443536120272417518211471763187293093876538021693533087"],["24513218038404095521403171877835189805196042747957911789056131063069140341434","19122530416250849144233296858786053200606610117904291667179477683596448745198"],["3549372635581140464760526421207656428276715480737508007882359929551067523465","20166987441951817339522729841618952029989853833649281317284772290379126568461"],["7318927720428924738968922660001443339189750947811926869387430631522882186853","3599805051672405124846967326560880692955930545448771983965418849466216671355"],["23282509996790918235259922913685783755103197648972325804791519353274514095727","14946258760547149865142787951786694978018886503600462287549202505694688631756"],["19209385957896943820394248240941514969541502057399702845932262020511356362033","7696829761106729836949502302843771291178938267361985908769231623970227202906"],["8384932666318889882285308474118345768793035194193255757375150538476181554655","480670533580764622882290636226631822770863957788530989177975667712210691917"],["13678324247590425939979756645176918657310760772631288626449772168921229830992","16295693438866883363088462351839733760608424895409452599380573060748659423590"],["11670381713355393178067308020953872460265518778212787220161204186821180795901","16742989365560421532295233978124421034759285125355188750141387031509295104934"],["17761705713511668182963211223715344320631200745992432015501061058162067263853","15463710808351752395844854350206670601020567421350461836677295434144481489450"],["11759513528091025717126507193670984032929638211107972677501064467676477910512","5679243655041722291587986784443871546347793427279794024563198329408561434737"],["20714619375924393976393476477049305549132703060831870049203719438486598976771","14490712561053182747557624120445895517730433546063442546691628694677979753226"],["4660137800150166845147576176646406281671339772543899686933062682078937442463","2945192897961431005890629887070997287174709276995973533691698462340007339371"],["13095007105731110791880059408812722757316525702473759029851510184817093130645","807272018817409642359616159596775178663299942795402012179837594078607675264"],["8856921079502497249144103067427821065044425298385336688061432191146439603749","4143598368410896015171618744125905978910633566931053024295548677637978299834"],["19853396693198780734959403243546019429180531207480233598987659794152557014444","19922439874155676900772285944364703329069319938294498688889277698202626908402"],["584464511667412738679530536344681078468452302566217339241352046777125838561","49147222656151480261755924204625431815511093382222593245546661671576260572"],["14414450620882290209563105935572687287437641706448946129869880374878335797776","12016853161630681289197952730400886515127316107196342120784080708638661321817"],["10316952861220304533423473855040979355771406029995468956099104632160504581530","22136042406043781327695853544833933029238082198718235497842108229619331445286"],["10473865423242660866032203587181665230959816164086577806899098718343100303676","3002812199729049018661033383385504575331191452523386291377480935584633418714"],["16201551545919206214420077964306788676123695761653046422282785807435433189561","18355987590994995840792066786635846107648504922349337367392524509774691757173"],["12907231630496637577397790644522511149502931441033826091625898389222626542521","27109297453081431041433990916145555807016104042079206831379137259646256782159"],["24960852338821322862668370713442075893115462171395505151996390945755857946191","4022487020273036521670136876921689379010696923466018156611538389057780531238"],["26131875288416135562793952744270344862937490865112723049464103189941671226924","24156406405599713844172672523845775436484219579369096471646536992359652323406"],["1272852078392384665262202637295245670815850068743008470307683487479872694022","7444366285075378226193213011896685173767633539618664196448016729742301742709"],["11959585484706951097391781546690537553595135317660119170007082708406328471370","26469356307662441886047461924935768348156358725654912549195067594487056959707"],["25219088379151841683231269852053185071368377563254764861954939443399881962851","12513816603883251834450594020355798148566968674241264150897051275371637399817"],["18053028413896438490327160149296849685237608337081395234274209267513977618740","8496391890039526272649163523143121001860377904752686578950001680245258727973"],["23356052638361585815175812688835815115770781616922987861178634983266116346168","9701418903350152122218762686032709596907884134059433692208978722477395411801"],["8134118544609663243581288797063382839947278111169216141036747539598452611491","8181861343476523565942138364780989346006985584474833521405920317168184968301"],["16353899034816320497347489381921174063356558165842199096652886202294440832716","8385295062669214396896123054904451229848526998859862320290514271538158213216"],["15979272518512009860072192652383624406381446423154415513829299126976426976376","7775786271072503340605165231541732008167214532936339368886756381862947154303"],["28439794334453679157686863300009129174106789688947122691814245156829267576830","23963037125255535130049426890033038275491906783732700773779531804813458797833"],["21615078538572458460177093491139494028295553033766655662232075773139105822558","23003509489045766360986496799015637136263230708327495658787782460380730202164"],["26260481295826886909743225273355047306024461441198429185654449745765717595788","18176352092093348544032508361047628754635070364509189380727767959032837609164"],["27270052398122014099263880929860765830283711808789506867156481506404859743977","11155049794375009909542564613283349537862052372404737635456965735564051546839"],["24746913427738156160149566864712800469188759271279146065666398845429008824026","6409687341612296343638007709945979361313819070780865582278817681571779276644"],["7532837883121384026731852813159826851045978053327812667820850258718489947380","25699515988976044366423807766496164489119942757279830362153264371480942241510"],["13930518813732209791757252837845073759950591030119788827639205290739784011692","17124346923041495912104184366213245142923490645890457130764787632990718579266"],["2905065882745219357369936154945360419653765465565261527865403912603564097572","5135069062779639975577225972978579336089479006935718127552773361883923962669"],["21108142183280154364703832173442402299728989960322267808877646483753737228777","16632013229906884776063963894519158392938704318415918850439085102357455520300"],["6893353461487997470833132355809946557791213858588105497177854804983015969594","10421172514595432467307217283808481091438234402287857768151388414245590592361"],["27415413037923176503155498000217038268729267957077816687611405469179830696007","18263216241092494383507933942388197714052073096746091630593066861093649512904"],["16370663910445009714599533376642121531402492646891253037919423159232851566967","25367984698650922944053065697989751570353515600628971055482930943459393158183"],["26119440284590873111995323021638560604192530957917573544304187643056079572457","28014974332280299443257844634158175551733841632021158832399699373646479221494"],["2847917125249035016889959614541169469205032148341468149705071430741967681787","25778922669227874845285998909999835121704736533725524255518006296938169605759"],["15669105614870239995735839583409102182004721124003363629022677812803789121297","23417117800874759934691494347673704380140290853771679824874120095590621531930"],["24617189658973267449244445071558801144574619892264811488770052797203189262592","22652289325487780068231942283781850606346416264317256712604572394028934389163"],["26195559726282588862282790080886763890778866886859657264352719122667189431794","3067622440550077799654093808559975857675895981063654083284743532016998109208"],["23467722452762167504823966538752399167565742572538570978941359372136070954079","8511844933604091969494651699821367756295960304347198467234964373994744420424"],["5096781663270116392281990493292178303169004563985562504615283801736385988016","15540215620540724200162003367475044798049265560585501333950059701171919700310"],["26604307791295221686094445196823550135299769441556621859674920960939615362614","12772112628895427104936201939593381187927626473200189626173913427035126249926"],["12934401440786377287989726993675659231404534091708051580495868948730210519852","28810891649076991966121642081142069331344836976876487082936754007009814263717"],["7275262272498294631189728294242148960660629464778306788191653421618620337617","21758565862633166923109630028623291673299364512336502083894915140461774865249"],["6214515105223260542289374104168154222764204413123522878514835787232945358294","8584039344816178579341431349483597120980578180804220363203532000638872456499"],["25434553035376582230057951048379500382718606452782906659439313647596762035761","14972577121835054508153109365636619867191352922940646195973191856441421557926"],["16689299540598342697014953588903306482090041399253526906613147256263080927882","22410974204250263844538867660821808494050180469492361502954853244427494045412"],["17323911066974280955456142990210411990279686914916186910350209003302275044826","5060029659176065474375308207653695382270692364700966200000056581494513257453"],["11276181450212629346540805390304383294461285877518107375924628166836149521850","4101238342129851570520949458430296434842569529545529684599623118446604096982"],["3625237850792984985002940916027702251640333844875130547683202200640727085806","2508382754619536040012345967934690407392742111743382236929890318784189627800"],["7738464095984187710021153262481188468466606752472759330192740292519783712460","2746512131320806407138547319950892795327741846427844487217096496862541876500"],["24401375754439062795650198090701625594490747835826425232443650090479541716314","5568685580322941929879354647098884140278259704277077608310041298665982257047"],["17134918976893157145378886083508580675164676928024526780492768154869722151517","22828280073957174572329316717376713417272435826272031621336905564014590170875"],["13490742143769600838909717377829844619495919685777855762283126323196720538774","3376421480724015427755575504660101516902033216382136868985587059155053809978"],["7010071337384552850163545612720033898784850563579212856234594184291216658934","8623088766894923948440220864652774320605753688569123858850795930373347236220"],["23975981875487258577499570993326443688060853424823684070308184624045262961667","23937722285490333397948631922633371299421268259350834949582801872595732711614"],["9711818319490627743507392550626897631290079218193370877388867333352864895215","23710918435321516129683627444865791832983198431070723203005168437043669106261"],["45747105591696449068249571319453356276245811482199656917003781262174764593","5125784417223546223507009341371801980433672760366218324000883628392889768473"],["7225083701342204907793966795345136661156730247616139525847360836683938917889","18618877735081078134663409338475134007474229286248229627835224844886705265078"],["3095694279927650814966685455299709876555324563107826967026163983935485087040","19712401175342581155537144529651445279070610995471724603587238928420051646950"],["4135465050959765780447876377268199053264596195417612862216444634798570200803","19493138595778843171507522210198307061556191231522953622554599647629411790887"],["18408699101546233782556346815971091518059746530199122651360967150999534603302","16477723780820357722779254684664677865486901613783580813130171127323962322914"],["10850664759279091855693172422864149844050182977524861577359843154793512917477","15156384141668314145476597374210245502443383561890975869585457765679478962104"],["1439960321940125637677460792609768519806022068491400425560188898130165785255","26221579387692882469598355353254621839498479872482875641066885653931638723973"],["13827107380225958472483201294366726102463410554524614471197787332127903932551","13959687479800742488289662707629470830141911748612840044399269179131696259131"],["9085784344539074964241001806435849769520741756593608162208900526565052981864","11924618338811035386027712795884035482956550218776378146298383834784686793488"],["10909008674767440564682439587304672615274684675280990922202669196757071512982","24227991219104570394382761101235287785511787593973542378227377355116216692267"],["9413631177856030828712273695328683528145102814877753052499740248925684340596","11746121941676520128743389756944592136058436273261868875777360808674780725704"],["13337767949073638725046689218352995543103667021345674899952523061190529460111","18444564149491403282925963960014120757747765538055971516564279441527998677078"],["24111965295996043227579735414814459878552866488441494988413190279058777475902","27583266066117911077231050753708105558848359912945639600000635708395005492175"],["14808740778087696002920378631759441033672442789196731035426026527982992708371","4287904328030669158642138360750531646946875285450373259576615467411659684204"],["4413570623392226713555924135679013486634015388622720320846290976582216110004","10173705618791424132638221932201612293017049201659448852002144573512290569018"],["17402451294643715623951969108813524964205522044347952938719495852339880348387","897505285089400907841776276928572399655785327223476773127835861626205128742"],["313102211048240676348109322638924492162188038421045027410134267860202333260","4106961098829571212373874917614394261180713410636720369263227964349456597051"],["2091277869341010550758105629034438735167781313562656737097441478669505424084","11440250228100037356646372642145701740224376885561085786506700684684139981069"],["25740590647646329934908387811283642164445993891094273721558637193511098470995","14075887060698015917121384184456789875872402299502404988314913400944978251253"],["394426235310989730593289617540355804230661685199947774159086314206031634238","23796638888870214541234966313078355827908772096882104668766197437427997280309"],["24521409697363099236768551547602977765841583356148840572072232039093728168945","25830264077787643407415754592103047408308395371490355471002166881556189766889"],["23279086514082263221922191209808854401908739936910521586097142169158902777559","12026542227548522337193366380510880455751023904919556691925899075702693171595"],["21669787833294456410472548796274613330498840232183518293164176177667940364731","5079572124960672178507150675547051134126515780055189816820883671124876649616"],["27363868210458489387349378067413174010405831265494147333418704606972448155016","2002082347761210894224135524194918467789219224545215275379049563889065294145"],["3900066648424382025608375799788229484550283218844273914753486474350193477256","9374072873356379185709166318085745530461393548461358299844577097986949909902"],["4316909117199333802858297722884019174373417796989665443004867100250397197236","21371090534951246044082016797921224181935131192488229742557313627676901211336"],["15619818371552171221642148424844256368212053058359786013311981262160871325600","17950588898208570219447751453806610232043639430617937758237774456967005562443"],["27158991272761144979100107172139781570868825329325811059495110669323009017098","23521813079966809877942152505038587984857013867560563062542353806930978081321"],["26650328575953649709472944213824278728875955073741855796015294444748776348632","14233612212173599393553176120519089110402354676991990887018493926520335643649"],["5315831662932210848141499085014214305984104586669576313686007245692897259159","21028315910448394659496215095069662767701064827168251599892276695006432626124"],["20430562517831608660129596514123108993652931120753845628005435560957440752696","8271817653283951024137529068042059829393996260411674837191129374121032551567"],["26234461665896007690356529837100148481862944140287149097991434153869644135729","8355838031640206815518104092383985894608194088636325374942882298545066725185"],["21501468629138928946750320330645487459788137489301420499463357085869898722907","14377000816745555332691763787356499568691851454114686334302209888095852055710"],["24828927111401333078638646612703558154528369946405903828203317022528207061104","20849142802102380647800358355020710123494847741539173402204180464665692382272"],["372511408203644458096816478885265171169144430000192220165075074353799395374","3385414305507593794186346274435082001386066097167590323430935850929421015243"],["18807272143446398940362570061779931789674328124752853573330418348216238876473","5899289551974328177638454958036239455769787750919553099114648417932194143726"],["5779743768100299638545949238466641176221530670254604457944348069398257962413","20534658113133145284054565306449957921477800853544055762464218338318060780551"],["8783108743641690538888079865104937822115916840194272244257126086777226589662","21624251848657091184934028135334264651471369122063110215444808462972506557295"],["16216636017004312337399496475135320293575327051125918705784230063819748975357","6233819112172723824921772074289664236306743875829889624729661302168358915558"],["27729969248151247956802970021254116984069969862720435761267218628355225821771","20836542223264718838651145844396368600463310028989479900914891879951661723018"],["3669234431199302814364557328973432534039084378327664265658249839424589451657","7219640548523758196369633856722496051118442529868471827637614466346326535416"],["17097615784879595805924765903796881192178902933362586972431012482418089882262","17957821844637401725456199642905519280571206544757615896091745349630908454621"],["4636042803738251349521836149860626586656493819037412306915209546017398677422","7546896949663220254604314043680438258308842015645953010956322346746949819010"],["5500331018981970471435544718853584944492843751022356642491375293111781210433","22496805392919461026473618850055000730970556424259423081812706376954193849881"],["6881704319664881928305147693460043670625621954448861108131413498941495355986","18904073999959134119302607082642078788832965837427597443072092134741394006304"],["14954422370783472553207477968727216849389486344284121701386973901923665775349","2025582776150132487390645696291416743451782445805301994548954966406440537187"],["16799929009969230273569882181346670513050621655751240161169656864722034888244","134675960607356846716036505732377536037355568401229284853644456523819205985"],["24298643946555092452035314380181302455948872631832610891770744754234074308696","10842108020109936037234050735437749038586071337909448144667522521856618428708"],["25969893927529202166161003642174590336024997893598907193554205268143700532548","27687393728432336399224251875409995983528223129750723415972903604390645861169"],["15131210980415716771562265061650508034155566720947501716568702370905248905493","27960843347918280536799239043753734126853967080061184434275715033903374363309"],["8256346078843204015719942118395301890350848754464118325476680961950088119409","23686425951138801825091120076318506908457663754981277644959922236157358422968"],["12087914227759025137250644907034472057311750702611329412964349345868277186334","2556108666704691418589037532673315716132419857733232973205759975678799277508"],["10024562340232664449087397497608829884679644062539581049506191159776426244099","3518887569925875690024633499858146043604931965808362799267391058357282263904"],["15369344740790640119327605584153249816146287782606958810916734856508457321710","7076832794764373580767107251186961899789739135790757347118085310997333710861"],["14345941209908920733128875951104286657943142730910221351560588056820143014411","10170014441998107714933070721197589480095622755950536527395080341104831781226"],["26962778787345439867834825474303367106967975283347438494940282618912127157418","28148382453583656793278800604110514030650792453757801426954812305770774984349"],["3197892103718366389256387531590450074656309887454263954441899655114989968183","10236015789109375538049992885873442771438459409652986585718250219841927669145"],["18056129161919289759805159295327186790813782708926357710204625961117493847494","21319435990435190866954325475076063047072681096920904088990393231052366168970"],["25229920798733569407530670234835498213968428440775479049291227506242651164498","12703696025482810523046684510143127208959969254399304007335186322629387384738"],["25494130328775900917937280947446501593202517010622820764629902007753937138615","24256571134676833427835163545502062348999591111045137588807126225444343950489"],["25283418825235869847418456348055821758707241897488096713856362137011275500490","25478479600842516840125328330108220968834474073452232548533857504440045052126"],["10809494666659860765725866957320278988365711309565171403396631319636566254810","20313735710597899313395624479028491547560941580078924303112785389721964630595"],["8780827114436949258791274686481124787567545851062040573112866564868888217626","20085737532433388538332883860433093844048202496633249045395167924851690737160"],["22575732148481871614435453806603442051584629047589698973918529945616087072180","12296851453139357255625258880912341901756689374858078364932779873593338499204"],["14964843865835922040232033233184785118954001760955908695451724496990366640053","8975147941335948695218133601887380397336081734859741237241797125314689554252"],["28749780883822583095793486392833802576988405036049539998280804685384201412347","6667724155757691183927303913441318339277686441019234091424106966048044575934"],["15984252627753849862156218342814361703736662339718269686261807209131210171676","7054121034440550470537199359146452399414637543266637246037076200466419495948"],["4263319845841831688482219554042736559050509589282263244610154082160671608584","24148774357257362098432732156939414836276121087890919524229445603555296737210"],["22600582259504864760644626344743063058516599056727691127462724892747673828404","7269364489581830445534314929262460086410402702635216458375588788873051926642"],["28433054886536256258884232484344703729013877914267099863908154162839154758326","22021902828799466263689236463614659248002669158539545902531930439634384353976"],["23636476858444037063810654894478866114720904413749215535437532863395471053388","15800948858160528175569498276557697984262488767800586649106950969148303004704"],["27275940985776980552757014942146910599601797245781561307101705891180283894213","20189077292620987072847710009511574131273410950165605846089356194454789674210"],["28348090518806943202800782661535642028233472240996259476927609768656184820381","28414506948027222705925778765810531835769513982539709048051235500426989520677"],["22438536890084949733445363034148439362570460211510489676675057879233243410795","12041064687019899329260457780550333466411521436810662707549485223282568103830"],["28131339935889138067535626638400464868056041694878148151271538101029914131543","24793706271138622375881599229898469023476040971784118613898715769066846017797"],["4947090626513012605845645830973229416234698391609514806546257875824032943591","7249400686445261942251126226171868783361071593423390314960671953571497897166"],["22110312830466111102841680711992880254032124865390315602964721603996873129771","24675503061572201997447043038900618523749490450995899946209871614032564539363"],["18162492825734234201081888365459890969850763522364931733303119438734560455553","19231104516030164180123298629398938993675446453378966976997545604047592272395"],["1450515413568804182655971677977015180945792620530038010086704552817156922540","16089992267447991331046612768463042518553140251882364480973278822245445298022"],["6206132624362804227247425450982708978484694230779183527875205937795544239463","26973394986141249878030165675585637452228976251884443148903040787147774309609"],["9012747475711037110820692195795587094693833465736095676439771371363370853512","22975532943379255485643436784874963461248687991308214316420054831307216376714"],["7090431655394606375422958356180679382096005688999070000639398607528147219564","18400052452940518400676075196489542795511958933910896377210892647801215313639"],["27910351371139361433228616327539770386574231970090698436398829589989742316170","8087420248699554113576601437745392494424635052892889661537093009427812952927"],["19800386024403734421592245484980329984125311816709710332558077175606062076650","25860773252527424786222576850052268552826485535076020500266404068266648194631"],["28287629516521292766111397449102403993366898779073694929666277939292912104028","2167204130908766637936488321824249292302019559192721514478434467135531850351"],["15539446134641858110469299188202800651957034306135343061015263493607411031969","18703149021143125578851570349112656373421028073958711540082040010444725102646"],["27893134951333190964750542889294566825045909521240571673505210074247878933275","12752272847914954717831297292485842887473341695182693194942639342439828135001"],["2392736040150583281078426063581546356443768288827617617353489295190993192340","3146744362157111321847293681330070538399962988906098352090347698204652887079"],["2801326446375165304049413986617313271984105023818523159175894145413446520433","9454846912911173999985111908911260342519742246455701923527221342345621229389"],["1327728883397035505218461133951519610249909149342647022790643154009760611038","11219540124051240425050228818765128136208813878888911496282452686693370857997"],["14722398602323393286671219250068328370292960788451436809652977891147761521436","12383171039352736062340055506441085699249617421460989250844503761877278146219"],["12859820553841387411561498952085406957724038036500191123123520640695218226500","12865236026348058559143141758817839184997697774782707041376075996998280015730"],["2883075180304205646427137798175969255782206926032229296137888911553524262324","4471448155606810699399594301300896958261941515255631528536324572059793012239"],["21319725485165119463322464232194913917863257486272240612468862193185789264945","13074146543100012003885354573084743858732115167354140959204557865965450018654"],["24470295728144166822760345314276933417494607506532658878008791525297129377818","18112410020170080000008578616523091335517495731873743705448793526111339547910"],["4300522416582724936580795204373220838384881303846795192827550661397281299549","20752776883489177316407653079824504508709119541260344723138076552959815360329"],["13389664281122380580113686562517587600063462115686223945231120329771244190190","9836122141216263305524291404585492946953922401314323359380071697691020767550"],["13207424449087595773434871153257767243364649209616535997526234303970528048463","6910306895456013068657910832574062856166469111351338704768662876996574334679"],["26388648696700575220789511498019741836019894455500551444156728393860401566469","20052067888172367261446684237274227787712854880701158334862387373375252697925"],["26503225988336140466261002953823575450397608148295666026288507829253903523831","3003623598889564732130508674096189621611266808676643840639905805624887728589"],["9287355435442335398319026374541761032342842835801961084322309915355578141520","9576847495691384291817849694557019794273238109469256649921527892094869044749"],["5560969578674604444119520087144364336045291001643679851590103254183190998550","19546289486845071183433388763161122977782059500807801613285936728258073777163"],["28192062560488294212621491398274337691033986434456636635441190735389182890758","19624996684591825105265649159414346562578616891895523774854456528493064446739"],["28712845234195885053426944937474356001955608946525956550098106714664735448363","237148932351543899289863519409974544653833418914171347474037247979648561698"],["18465156962990107926688426784346595386320785257657071705620237339968257340942","8166593163000564389820828157776968167949044720494920939848688461113083010963"],["23228773792180209906150900059472433927184752457067544807107084998522748016179","22085962123224845394320063853259898385125178975414622946309807115811153725239"],["26367981804688156766801764212712905917859489775327983400543462807099474228892","4045869968046846273477454143745030296913774208214976341577645962101909079812"],["7770692431578931047140038873101049792430268107833796184157983615111573537271","26712140552393005508562162062813488646697973367329294160889027557122604176459"],["8652942587682813873883565006740312553920158081652476140013695642649673142066","13765364235260798690688219803326840592821697115563355536324725159367028191699"],["8522634075040847612737046591946868071438417077408026869610108203577286304226","3274279952328477295175202492128677224548731498060348781506714537410276944756"],["21316358828297253841716337136405711543853557991253213387779174994554551113302","1460780600371628536534108582101802814840521715693089674940049303207450385882"],["25325320263806018989214724274432784149067114759014632041483595216367809427155","18609982207429563724011770103109181765972475130927349405780463351504031562619"],["3733496112643589534334227848150733001355278094125166255328962844507278585012","2081222874727728999082329206104963058744965879849495752688126777080705086080"],["11071970685583792084356415421050717727696598126519727333132292469891252141750","9415445608601533584895095773538636439423257637071698842473776729273419424389"],["13924184099546362681590750509550874102018105850450393524525858266580194782500","15053050805040275640189177797091543618564485620559620740412458531296352150199"],["21285766887468967905410514284777129280471391669287794240357923208762241210970","11454134879910559183877555887801067296217654889928102462853547827370301257899"],["1023892556196198195788549758779586100766627673932391880075061965509334719163","23615108055018079545143278500945898013443575374662419891421650573586987300859"],["25772248974638880144600534105402621326467820506784423661428095774288566851339","18092860146964686816487581209585202532163615603564647107911041135459061982261"],["11864963054061473493668006728212756691028145041951831942955034204712715771951","5362207923457317102576475691511631270010176216176001207645648547329236873147"],["473074889562266478873359443982704413376853196094786790146891470773597416100","14465009041445832331563700213951183172989394636851185147379489255567380344003"],["22657742596392218409869171705809332007958035552792738273043668658461586266116","17882705723470140090553622771949137276935135511675527814851263736576331618415"],["3807599412233599306756121792886337589761223223513122078687224885071462378076","5273150389783921457688233595158877033875099764429152326616825875775428819977"],["14199367202716662159040010607307475971418854525358586325715187616919269339830","16740045655857914429376713998673505440014600216332207648527255285159323415442"],["19815111430920970136247119634735146668158315929300136215177008666895094350622","739970805851587740489082236333538084882115580728504250997769271678563100955"],["24966899155479351449672294551589970439373042941611393114184765750494320757965","26025921240169839601749751981698055142442796256235777680057699266203339296357"],["5895200717892937983313100174936497242616092140460206136125645419307687533229","24881802756633650035583621462481753729230177843694161948065514528053557397763"],["11550866277031147043246084370140093096112999027457403346914093369490237846707","9209103340270862307981644230740321451561731872664809102436077899844225391282"],["704772166416313655769487594681203128789954011627899927468295459134347340493","12987886423609361755329050751905431449061867222970039735721167370718636417452"],["4186840745571953308695714614504885166073913362868009661453077627836978778119","2965139724906262516935103495381380498338842102998322373115199222160498823445"],["13068083699237675695219075608384726164641123484645002462691842478067454445312","10033884445588916034715561822195276506281131517485466398990794235769706294751"],["10667794947902682191571971541780364350162714502859360387868973581582921504982","24179023324603415815584789821370382369575658768668010834324566492789566319924"],["13151728019366252251998891980291374837826048108851496993823079945147277495395","5986971617896593315446913399320456926218759045318474015029071829186557431602"],["319868654343924088129830651061227509890170208825766812338026415843153771049","11011532322179669166280239893314911559762806266852547959765326862525809317465"],["14584778030937934388781384261160012296654253098056826406363125533932472379893","1590835970472667499638857076429862611283229408364193168343563961295355829503"],["21881862872034174815331613461057029939879889924553673328904391229070910897163","16069890232151705561002538355326875179589047484428626055247369885296486931363"],["27338752141980466904211278833100466604969409296269639719622881031868875835252","23706377700692226212366212122387223948010392986111936236332098958291391266947"],["10802407871015964969125033365326737505887301087325141606125352325894327606056","10060306012102346910133252239174384123734221840451185149444041547164279267474"],["18802339034370918384079565051192099298155142271709800956972408463437408043308","17559858217366192495599181663446627967719695487869239205504494369846986412680"],["3962441764934925710242068668085649888668356067451939576427289263959515452838","10036468935930596162217798411026345176854331374170058984971792761211988760587"],["25768686763725990407227410137377723033514725253371548800818336656665317467798","4253767463432364236273917263019258609414075310035525088073829455429486953331"],["1536590989117093781578635841696830573618443196151989331172968859866422803671","27213404447535888455173123746793778477354227251256371481546038608357790871275"],["24243858633433037465341109196814423634895975754410827149360253961053470209250","3938091136007189975314012824612470180692304985624071660749340120216937390812"],["11666329498655712930992492925007629897543107758577577397512379265527364983473","9119495133246193280815958810943810223487742404250750341181297788439088514906"],["21832622763314054013680208935306756624486473261274465304398505579934447027559","10317130240795006464140968477117673038527313983903989560193249396294123391439"],["3084892598466759270287186546451294468833436634072729907135991035895152746232","19172961120304431731234041845458130801519526161953168830891734145947770728257"],["19587658893973950718866176935365380562799055134725400366952229796929552235395","18376652927774668951681137319392778417818235534640509154791644515826955171008"],["27454998325652271973523387695156837532919565032852873180664575939032479618789","3701046771696583567554646730967897506057743544043750799642904879314559506065"],["25416208761328081071146490378755405139778880940981778164938007705361887804262","28433855145464002278379071650434703190225594358050767156747796888395677298406"],["15465517773727538030205143202840900342901518756442687728842433703770292331923","10077717210346860895209543128396889134253068042975727356177238115016964377622"],["14441367487845911497043166107913555374497208848323793174147537529961401828604","6178779927117768896194359687166417999679458223996918447487802471360406056763"],["4738444191438656209531272679327514654852095194455176307099820956609655781930","23231287526366789531073771248822040916011877503553446561747158892849536076000"],["7388954149602545479681458058397448417106874733893271167675456386541153549918","3777801169067901417161740221938995964910026162341055789149616898208167724796"],["23655928994961177088268382427192470521259542090693379666347929875755624918711","144038417392478895227404373442563032806675409909321875347061207464259723970"],["13968270118025966056957114201467232636819145731181723250377497948512191298184","28475262796037751444211009858092668743978622990921445880849791364374542342066"],["9574743990899768551163207794557924227311659541067916087893711220804707618569","17432883882013666525129592989094580359738579005071289446958182082826792522874"],["710248960511009799087039216561452412359557312697718760127769868317362602002","8021555952259348719328613095811805883118761186102003548632628624954584301011"],["6806164782421198503741400013164031409888257594504708013804952506590094411049","26955272233131789975176978411772086469313490106127791410245342878355573816893"],["10328483815275501494799351315351879619251751038547629897289045992540509392296","27182516651679110285654355967584571250839846670750179756075441247182563350487"],["5012149444586067535727037379025725329119092967983275274651535892386719533148","19345166692034205422791014064972222485579178500104976827574799279440493733565"],["24741840663198817541067561539077402770389629788601880307745254803148302194136","15422981854161254973709520009050261921093279628870727943587860228955816621421"],["3323455322010267752868462952942600405748570814982076005739142390449163322178","17856639058249709885920504170608643108790046775501042335379905778654212536423"],["6257125646414484808398867326742981754864727499612750950305679888992779624564","19599967596519016562012612263824564760031460127203687365998885541148180392671"],["8363785330434245717026457702827634512187056096796215294088773121913025441691","12198934779091651259153636078262055579466017092137742661437035337023069305929"],["9765746552613255867230019141315718336916389421839728431791084508834682822119","21307729172755621431133795873470572270760668996562784722907249927733689737192"],["13455975069547244631541178562582651598122192673311003633354880134649584236471","4742125990199816832653453982811213243996777232625469649742291684040605323836"],["15817017728858922661794153024189475491021424522595094459051256164150905944120","27980410283542954270646700663679299276279023351778745376693733098110599750129"],["8349271878156929869977973283682891846779700830933561731653564407330217389210","26118323793016781948890136130580051992688451734015110789924081800030143660833"],["19229290662922089201124053381249800766347407349781719140183469469819927665593","11811376057310241920632563641815081675487678836861407970907363726309667627952"],["3978941107877823880760485091370442332264566206452850425842577554789147900827","9766930648256812939147638470028375456414658180426665846771348633917175549668"],["14279986577298568081454554951267618527122297100790339136490962360848158465552","15672039918228031869746015453627237447688791646890580737791045392764448404785"],["23664073380676043610244950724852577697032969552755640824549855596956286529239","1182988911324325405715035370699179482207120915877795268048309510471147269077"],["16733679378842656643039084276467770929512086902252873181297022031544038308724","17328434790963786088461984819437382273040783174187027808338925403100187812054"],["19105172624056653359982502196095803215958683557272804891479548148046007779638","1825170648366605833275692725109827616732660498652745052368347227680849697517"],["3078443158798503132115733191176333665306211155102734013389924572402575011223","24491395972631642136871529294812335891162564472870586500809556711447959467800"],["2986265378185212078922806418874038698510564216851894583185790537654938135816","14398188878385764970847605642619446739141108043978345747024478596405418785831"],["15778625549391463974354008901999494950284424271793040612517753016884987157783","15612437594068976221453159873368164261698044567344005241466385188346431236418"],["5521235354102385477541193989715095794247662638383274683154324679316520342960","18611981353491653101157071413961167396622951585087286572135577751225487518342"],["17619494677372146870351633956017915088473790723375087480594710142251475685899","8397488636935182728356857149150157417876316861111721272288140002410591290138"],["16388163979569883424841611736864053329724987633286329415563008662151502277586","5287046578160807028799587919869267011123103286045639906475537896568444104661"],["17123068171982014932915011669970595328606483517895563802930159408677073556471","1655000484469223164062704254752955209623891104666581136612363740244169125793"],["8781738281284860534202927091785368801657530004255044024729443350428590557695","3704997984652931791416602751326789197083834591254627761485644042730524822319"],["6188314913885000119535954270584906210092475436657153451962781829906466827683","21155762126514516446076694731473078961598041517139846158270861741771870199047"],["11560733493473398435195771692498926809633067331528020052736677654096906502164","6439337971585597723440328679898021929461680571980255481639521714149211261171"],["10332641388234911240535231650717887495977683903561061586605904907248889633036","567497989051879718535029472079818509208329408049059441668452663897292310757"],["28686590232956826784254590313149459562884271116637585679084691007245679110147","19909353890296679522953961402084443811477949248422039125022276953704101266714"],["6036782796713083189803895915302614114365667684231306021497133936256768993218","15639476128360638265276066178457679661405759615094692682456118761596454520693"],["12280258219161932768968741381268412589761204131902821694422194584367776673617","23902124852217331660736756783627652807406778075923177441841971912729285778024"],["26601156787885967087529852054474592107490880298093253498152664742136812906561","3180229212163085594185082128538665108256143452910142866730921207511398938724"],["23063418040611436325253909016496650922890454316109435297615323247063098235116","2820505796502881601175698613759531898957675603162361217180655902731020118274"],["23023413609160210964847895543935046329088121464642443427164519885362296150450","8349788750126289526467148500015829212112816638867688738668788018556134090283"],["2946292578695646847129682490504153315752192442063673170610730262036547676612","22151801457683609523203908773985602233765162644274555675162543503090285838529"],["26316370449960204516905864291421995718332077900332406879639249456953103735231","8059589211500740887995155256649580918638180140559904150769214471800831502593"],["21844738811576745660823949345110098865839528843540307267004343734635954563275","10798129048930692208736300443153040804023012693096959698253579246369976323346"],["22302384212706834707894274211646401679985680554504534815018107970603695944816","15008967707695415561061634584551776435373613960726685283175409733131690840827"],["9252465251878237259031945144926300259904505959366898726748011358979710834406","28090791563289263866235332060057147999860485601071305537123416277020867157262"],["8203730483572284731000356010176325383992870432806377271824090767214542995629","24531306465906142462199804224831647575526663907422251638725110533693413689874"],["24171747862742797366819880379105597010501079779794499279888957238582441114913","23464568885903847805799576687875927118290987820797452500297342563147587188807"],["13138476212321178792062131613077336694136397861297879933683553321093795932115","333600358571062898517003034087146885205254596392882571488829714244681676505"],["7050689821901144878107593171989323478015675987878754831294897735209500573493","12455377185170565409791355465284031799759838261129805413006098449525762368715"],["175881730349316909509409880379232230590848460028041738866299055230707594228","19448646369587055890250733605245255575798476273906152531062730180007995116831"],["17105178186186714597211511967943841909791030298396171415368325901872090272638","4532323285153653511063578908671374766171815425180660215937874824653769536870"],["20991613261132725579431090933261541850902685434461483048149732788753450626648","1891714685052211447147141015012578492287146573521213742695434111896749745153"],["16762254808742941943887898599401949406262541346994824857835942705715694737930","23913416385774346765330880977692282882643224479176229092655915754566597836683"],["17900277013814973389224516838004138182239830449947837989174827239704356304307","3824013522893203470083048563458245041859480129256184025974121604747931168354"],["11272548587161250154389671247613036652799853504012082543776556619789028138649","4684777792941525349681710012416923590590718123708572460228261983410540409025"],["14594275317020368732275418270748864464220581449835918728071179186535744965696","2496207745462792944002193496666487530442465831482542169998571942215827943209"],["16497584484011589053226527150766986828021150517359412252360392576331108646763","8842652727457111129624342914820544531757419840075152880418836107257748522330"],["11034428172092665265071651193250820723488013894975741607287920675505761263735","9732667244117112430667667457844354173824771649816214110500496693482061956000"],["22667881686014033445023021612337736849671143062245830675976602215785575798236","80057484454697164250344143164538428869825124280704712272242125885018468670"],["761607879335384844368920192508021169693407685712047877544210240768099421924","6368285224474066470424448034113973631938290233293833155619429340286596279610"],["23040109563660502629783472906245245280052144122155862961141624043521588475716","16237665263326847500746263713058258299688424534921333455046316250847100483254"],["14215530325123947185241335200167750376568801026829910228389037254041908104475","11891789933174811134064766641045269201427473350561512640821322615794228076365"],["234247186750046739928157459083062976874629076639411430926255495233190450532","587066654000140607444525803085142878489712769029537905246819486387578731720"],["786445973119096428008733370574080675175252343288531310128119676648195016398","7631759279250637366368190992734040431694855743267211211102948648923673847846"],["16803297526180116296593061146812825956233936288292442574004541173506750031421","3040047714217474535501436256343784880816129753295276595496069352988308753886"],["13307420198571776228529163833880132000513762989504423324261431262079625920310","8247738777430865867406131314671475573732656735748551583798059608366102287728"],["15322817005903564322981397264827410933172538239330325611511316678754699119194","15094073483762986256991057678904091786583681698785392343634556674923294798619"],["23986751656235891896352968722036487842011298489888581655264217433976351316200","27046023802625856120952494225600834173039373383657329543243946159013732859029"],["11205102980856263833026119876091325802182558172727869434726472842622037332073","3703769012430792685995773202271246255678672884440998815272749467399948116561"],["14361622974799883255913950150327430604021421998043353207876521851786395696445","11829660570300774542614522858512223250599279713335138772753230344138690210592"],["3715604336954840719775679363202992807289027104142285124940640951432003675772","8470228069132721182744254395392864730678168418604984198534547883259832100794"],["27620672312734561396697518759480012730190984816340521710962311880333895605883","24795780552222073463741715694153558356945151344679794940321520415492072160119"],["19820780539492166970480245948896853215141243121162816398713513080302229430838","2718547748097965885059015354793669684658888416040580874264350391256619807053"],["15449550430495718519019789413599460571530447855242669942769785375785990866136","11565290758784245798705100671033462969071258535884756721242236244116456525247"],["15799377996104003927823310169135370543886449979817389354737460479481085986844","18405581797280186367760932061341342252947535828917433558080068254358287978299"],["12705738726804426473897384627494168887393005469000979750453620433337500458622","15350746268826940694327056125882128965498034993084577709591753557232623509253"],["10572974800940431045024423758653162329960961086056313250478869094633340625432","11750404259324308975611302813869750790059524484772461767250223297658671073482"],["10716221856454943674654416030134555081372144446985266217027372667685198342919","3742204299929940066062778583881069273915810147434600701145374722696480662165"],["4524320940765291753919399310328898049526930114729566860426234462239461758463","3323700996144045659158765283421243035363827790842635389250349347098342599671"],["23335930550286609854540453405018093806750126062898306372958001076654616247183","22144282577822174951858501810912674787097006719580193324968854502026531066427"],["20359103440424670503215429127076519857266726686851282471580640937897337545593","9442953050027025626755337680755116806959001935043170328843813149230494938212"],["12696199128512386900377276975199119926919078767018222737484910324628336245083","14490987359147921770272124379431798636103999116633012772137593240030914880203"],["10181700973401673218411660142936860620108276002517453031109893490097080336974","5966006902068395423798633469054438778156582041823951852212859040825679630726"],["5207761042050172257451081054138038178986475801825328609104041258072517323969","22751219496236177852023986969976899378216848219564261929172144625728285828819"],["19679171943836978333151189191855184150128247754369536235602438107009894158572","18173763004561604506183173737146662081682058110832913037560538500999318057656"],["17348821973577482513725444433807252800098373586817506291625808128029524940290","9444731162841091283996613871603014421762984370491484097466208205295917557302"],["12355323071199854644621199187664031096947462700530753712218666285437593258152","22579401817386755704789854126311078256935837109403838239230861552294019311907"],["23967783611852580598410111017039117863813254693772443111752686025488591585799","2675352581050253124616841594111278711124780428468357080181916405942549498630"],["5057120598266195877860561660736959563507669580712178899612356874162659899785","16938684555537103229189275107865652250775592612396149960682179347057332089532"],["6500453558384954003518724895695051825944188876844097213080710339021232230127","28756200903158839745637096041992998292309537808799911823000051908529627908043"],["7951332146230889409429306412348040312801747304443010910765737136398382634127","23513307011598601531739742156970776748699019915175006313670634129728946834559"],["26479486053797634293009311348443792309560662362070442318270799434195244319000","27882478157606906738280280250349162636770646944494687317260225673838702029067"],["9546937881643627122185406062262912972612236462812349379365389975967728539884","5707754205369632024701338219150882955893555114797785814343565752413985077919"],["26345414536453358122792968167797114931413971595372013644711418219777983393265","26324859304766559545376262806711286342212517986718213747791861308994305824450"],["8190413826490653369970223138839062556346780729876024342455869357513577387423","11615363192044273601123809904247778286409055192218788063323317319296892162669"],["16122735049683523393637164769412524166811106774297177793334802075633981506981","2358847587195751672169707222603964316714323635561264091360803539738489724382"],["11672055908746326531784935497114712237576790107476619658756940574038518481389","11204053502266069491036267875529512714219048842387748277235045682908467710802"],["13611122924969295797456944912738200101274379263921149182715059804926455067621","11457731754208698591220986716604763521945716312743693149464345232360255170"],["9475239929215105814714492942311200737876335888997537494177873852158712079905","18820088863144632057485636446209017884083798352461994554024352676223046680193"],["5652700150414448363085537302112725428957078494944384715640633588416903240220","5772931307465533143389887591062833487144664856749023638781089769456644382315"],["590014500773938127097410239299149103744078607682365935453778268641796449920","19679776498330842086739361125192265494063472984134517278304916586773009968748"],["10780049559778005902391489820910110004988931502719947165269908805691851121013","22672077255691034033242248802929886167953475027242746161860888436528544044417"],["23224246370163530578590658607999900271098538009379187070563717688867007427556","9468743465907320190307997545277107336199971505331108348669051538013545293651"],["8195853638217539834171351679256286990772038881709276945920104490180258992031","4917689944441151992333273848613408589347701447734412913372288726658967668571"],["15338396426081428506909164229583128865151718371756939189882108316800375964626","9517402818277519010864841291006587145437951983040288418322931089439351589097"],["10737678083655628604268420402996524088873919207291714041274688775597308635828","6024196546035843753799316280185500410702338010023076138202503495895092382369"],["10855757609320859777132164491569921794120553733515763329218676633329000511553","990007095172279665825841601084555757122402581415603910644542953460428224878"],["8952952049735462551735886298630254028214909551896278326919709887041941978536","22785361683819359805821955805390048163520137567642649670891634359906710239576"],["12624292014052917746742637990137965389221069747473846074486564664980317143715","27571494569024377122795309033031699991389349019112259303193332801549881678038"],["16149593326278283215062362297006613637039207293274524222484748274208882471014","12620046917017666264641380504333805702455995974643245398739040093567284105602"],["9364365697405507818412365963638233576838544265834275966505455796884644466029","6027881658557754210732384267389783159068651342362058031134182403319483387467"],["8597406572054416734970945028518939140789484755807014081764198618709280158410","24904418425768795131194470419588028464329960443123007172158839383607231339161"],["7035256746784968184102446872088773232122812575373455469359623714399482280064","366908335869916966584957301490561791803424055892761168029328175029683392281"],["6508372725970391857140274179371650940408629331483449585062491350047032431912","7037391879995051628637244778820595624051989872329520712201595958159066551720"],["2343689658516982433953045010514194740236836161217619900551834348731075433169","2776695730495532119582102106980201156699614857363302928782869415697293966936"],["25495614125621197965001298172859297643648847511849951813978988273666658763650","4581230860923070408740606553327428314887776681362580379422369817754950798014"],["10386937455358537712451613949188361172037485312033959137424475006506316819235","24123895463113297464407497720036530578929820766514069610411535896645046835143"],["117933779721742841944168904353486918753547216416590471620218692630844733658","11596078075238666457085602859615240740086001410684325875053767358301528008469"],["21828095110692932588574574881179577299205483301236398934207198356937885773642","26224718199658004380330091501098696347923134414739527484185306345492875822215"],["11678065645408092233952074353309837774780546189558835629793008804180261887812","12266608914264629177964454748616603966796825534386231480804753584546255905743"],["8102092606910146412552718984665296151612398219164788017285851525712930474043","22429368273789735161903431789864737032746915701500375490646970544459885774867"],["19871389694487390241060099227164803615032317501732629484587107869260203300859","4909282594958978155417153423400469563763970330305200530794906773420157746428"],["20018033552418748667148237377657167180648607653088580503382082592434123094219","27757334901250633659361538847926255638064235488540850149976137543092522130054"],["3008140321132229503177682863079637891980571817128918999199061890937752234339","26273755754681596682800182117263067511473226098256792266608538070909280522493"],["19007183255409368680098370732552050513756501538172599132763770205529138018701","3991093341133843752788634773893456890992832690228226143348057004232331015977"],["1286756931000721934502470317667682803247380464602029789698362592102866651613","9964521500647010992228368839227747423098903237395735208677507958128076489088"],["7895018776809378818875857821943637630632013100503598380643551863645666454182","15537927248773838755136581994033526632948976036614649505422663254770490817306"],["13345563586057092502499308809702658985960002547476692431178066814356955320678","8795588331580928652253353440805722335285239744425547524569655789331748520685"],["19611248546194709424080710063347131296755331137252753485027776955285970832595","28389007855131552641968639973870910816906672619834231281511901304206419628697"],["7697276354791375103877978653357464985650260187685851762704391415564799729628","23089918229285110642918766160816148935451225531668751079072029731766627713882"],["6670513491993032120206472436314849907842796625504867483991634005167332978213","9509889077304587202898200662392266137683941658062974964243936710078774495897"],["8283255810332545728306315299110310567153988763602578181709616570622353181510","18066639630154264057986863472248617430222411199433069143974520296703264065316"],["14511497737098901674465932440877366790462762102600207330191149392687366361522","7077972832146129215426425080327896780049931859086838649929203914172569516292"],["20849401988367802384583739202150363853640050467268308785939135704219100942647","22270283250414509407562249339927649636666677699648666689152103500207192349572"],["4093413304217577901300318905619282179266687265513877364869788183526782277915","8103992782674071103015735696011870466350819328639071543392382350169141239356"],["19030603022765752940527902857649204737548645192426826266577451533446141026092","27337699767187944876504912854107801523149824487437245128091820991276916580392"],["22066072032781046139230783371638726291553213907970050129692694348870847987758","13350751915375766066601525012732171198066284353190765447473806576322256727656"],["19081564970365516077890290510411353879642955757640157968768275272490695375918","1789440661531593377823535199226366735261717426615435942239566201977506385662"],["15823442413369423070471190507005748362254426877570740246191364335508894275762","19059633406842230769664170391188233044155191796819229790830508882393064972777"],["25979988003535206577003769583869298500383874040573296345342629402540631795266","26756113807803846576647113712083023534062963593642385989152314903630958414755"],["13209785250753030855819243943210756296160920102531977438219938251241075230836","17430040629380793159074066284163239122419063747842435262627351884282253355267"],["91551934506781081774746523061552588122811913794155607657540525550933420662","24880090488848341573888199828751909441417521358183779648414023308508086259230"],["23979451108112627255488358568893789373510597782689910799527285314212172847082","1937043244062963750015007401057306140526573542904212213729330686156116268888"],["18759554486766486618997274308307700766214504383192679237653719157303565871051","12372628812708855915884746115805963521833154296068226524125570419685505035360"],["14061647093588060221088138677721821374487760535852721142018539079088190799378","15208630342336207176105048230592608577891594645407530765321876436453479043216"],["620922355263301137839682535263242756636152566455091867256338280711362798053","21771401297652308062314940760613238270865337195249110109441086701263060119702"],["13672530794877900723759642784588489889724748630258967097808346778645299097312","25107289432318633837065919034422757814828730338887830432868354209281496904979"],["13632434547049278530449328237109539544568288915727939266413125731993200814900","28172403461140130562691059761021507700776940246831727053406980762661473759053"],["11813730589406668860872530398266410858987540267016528469148831490137518363613","380725186519046100802995822378077725018026184357122096247451861297897623970"],["13934862235452344874267972229791885890067045838742358664571740619118297107165","1323718900401602928605152874778551682344175419291051396679096712935012341026"],["18590828725930461522208807348084588292460414887816429999856265135871843225883","14402579960867256234709581264396857081547357524003017401876594170098715079854"],["154736132007755368509098645873470841297275758404296597225993663415832192331","20486923349305866561048655206950605910268497739945126928169306683985739450091"],["278966975172164423506009852935768483302791381622649112856002716277687381216","14743347232281068342856861563534618658661796144921918829726196946287875418611"],["2169974000416053403974553691620200402432133965594878507637118674318052942646","3124960617035221180842734689700328838089073140164627503751466803183017547984"],["557831068890464119499587276553609618397903790025692548301683547209357185881","14899360925111045817986339470167966299009091740968394780298544248614807886978"],["1077842185491359376746224059185963022471548938812024053679200288350447256257","22674606664903156829484429291995627373517701468811363225127777443241561912201"],["24486591456085517536583677340807354446766000187449872997433340832457852594386","917650015400572206460948290322476495000739358761151509845688738458713246123"],["218851569300524190914882179065762072486979271366739733974131048734197792213","14427735606234013322717802680357147636585463001345409908389254141038931408853"],["24559224319488732799153191012381752170642818755574960816516855930579160294444","11301471331897057229359461155178498095550673907158404263359351538078055059490"],["4725801779794148066299407482166289656168616737058362809112435198509679827609","24183867131165628899309842004713637649373260662609288051544523076975519548205"],["9719165353437436894813802869844196436299563221956454470346826665222583362853","18289073341252659238348469242810997538014280132559787016311729195615385374493"],["14771145666939857298810702409308853006851425895844184305712612027829300307711","24638732008819301379592061894862484468601301520460045539575873325190974851696"],["13470607886099790643231814300783255552700641931155432320097267495661241348404","11184444288381375512598521719614174408058155671651043979077754044799029828849"],["2588660772429785891969788518336493999362613481711226650223065440282793976362","26165822143715915300792738666981125025282916787342447062265670096413075167669"],["8335502431965268178912503312450213815838434912953690091207251315512060906880","10683307888325540895552494851621299075556381824559885611228089698988918803365"],["13755044663776483030036161015657352738117909701943902249327140307891724564914","7953675079508235979488558849978364235603930867538024347910458788743516264968"],["4511623570914890250050087479029155510740159897838141513773647785353603422263","19772605480723374104954328225940923679896460264664787922887196974397739623404"],["13266337645802485731248976326094948029687391838408926540209206418723762749820","20639318665657850821023514507296669718689612672638826784207737082353326995917"],["20999490047964535072777763324670427794599181646033751206217205461974558034948","25226232943492316063461228117876857524241802858314374742731961570597520680742"],["13811147868398107427664717863715591174481026644641900937978222203030545521582","5996954590849135656613365128370801988486399291029050901775610622017646042347"],["13032456315580658029887992255208056781473287759588527379418439796224105390187","25939987558681675153165477137984499541017351614632404372259409359878133080593"],["21720900468787989090478597742154397573452288967936580965212913032152023024058","20022769750336132101734339328118758084893937366094704127993523333071747202925"],["12465926437256368292713222858402669841238616630713362267945974708212269445598","19915111100261760339391756322044622912164559546953152890233202104372184114917"],["9077383375114419070800840621491583373940284324940702319966309879495946411320","26919209185067623683668290811828634233296276805264564780381901539018709541911"],["11848411574729737789377948062934575400188383906682741530868669469497449483162","10965193287424299699907904720414243909954359053758068617128204873993578077063"],["25651472665700295037174612134272326429451693603478830337154151771827162579005","24363730411619928383801389282325720807816656491100784030149307651585500894033"],["7361673969124045467414242819244487234963489377070028269777669016312074539329","21890553959903577821199970201689370001282287339613656290113344972653435730398"],["2172840980059817149287831548661152569407559592387181875989888385694092362690","4602964633447889380691088948279277802370915268628797247909479875654029588382"],["15688891258983231373727585051561501227408671974619176280919976846442291297122","19129461649433440933351436998391668044459145609989515539377245550130457979022"],["4682202786169942924745258814319686650908826266389501608681962609189704444437","28323473695279875444556850873929534971959368702002210483240291973830744747096"],["20447989119749303224469762437983997031778539757391482834873927695315572305224","28245641978803273846129360010352330791014671378945053882348249948674821932948"],["20546405558519131554263849429269654055863979043386545077396174328261609715962","23933757565387098797126611158309178560386456905824975109439444907345123660405"],["21737189890875927228503391270716626067622495206256915770378901806765832508316","15761916116498746129728914391103097656361184874012530393644143647694596010941"],["24110227916553313100183746934876439588689306238506096794392856470535816012484","9146054069041203816955449985426098470862958067287828854099538091103062837076"],["27500399709777437766559393689456027500617057676248113865820021769375878090034","7752489072225393974674233944498540993360197302348182389455716974242805317043"],["12987550867337923931047892025195495080900079529151582968262688424076732247958","9060423010125352303348782080806097342516142461096821294758143003703672621379"],["26892212122237370562130142800408075793862959901892608970351280336905974557091","26266174635506945906182656260791682605898706474666037382478680464921755682548"],["15760748241596472377638093641471182116265958718970915542754089356381540730926","16748899321629884065295369131329428027963323428872301872856198618791888942975"],["27054822367468216291315641823679550961877082417073991591241639495803537941718","20070516632047821901539443508308006741431770253229288934006294263173860332951"],["24940552583879704894551168835706850155007827534615508056304111151658415426233","19189587413614509481247734172849757761194139440300416368326884466155498338471"],["6935212224014719614773449196090049539134197832467887878126042459289833170606","17036578650493934483017597511775111548216303699197659929050914157484377089904"],["21971485964806918655535395191960166558146994431358433459236496120835664484990","4638232479616051525176557460083409081736544033150971661456908908781702791517"],["13911334017300120253528803655270786838612520189948490320632419192357488044606","21375032750057186627405602392777757959156080212269721521505557649068645797701"],["22681709134427846385890154879975124240205469431020217396771148214781716932445","11760699737406198161671956284287950189584317066881056455265325219803134078503"],["22177035687304281784484299477695427624203051418998600947613101856642354227972","9966605924547697871266632850216086307927233512420303372303386785377008715326"],["23678406856056947396517820151869711100543935598444349195345685579729215245839","13118853173250182820103969405821326957739780554382459365732845850035850634552"],["14757970165722048273168474733789327364088502632188251480413770769701202434775","13929383406064103727563052695848301241190269170459611769571868317250053393162"],["20151974444751307486431075342324897502936808284772524728379015644496969806056","27017931877461766323294084897251691842078400561793104792062054312974691552365"],["11433864003007879423312699486951982855953647267424861898671499393356591719197","27804872997473690952504410690133754613459761703177127895807708887989629428637"],["20547445566019594742982947707235448517677933694891127349548164239707312798523","17059139355189528563463243526233001273795654665285397234289323030550737878689"],["18566822937177193858758347951927178680539404564087670533197842023993490302243","25553436964919413459524798945258786720672258742068361352257773218342641731518"],["5749514168531499652005725252838972208490520185604403997516306565088366367057","4567624966683534713695093328463868410107890491278023162776653198015993765529"],["7641124656860983318868841793276036057105685848890654835295614184313887165978","8529971620114639026795673400336139398509176929613175833977510977645729209584"],["26358158179797403490270448952268915393600923202480475315104367046655266011776","21814260341852369603762408960521841884185411496467814216721866450141329288431"],["11490871555112580778103461875277123660949844117422676695179510614708702294522","28398166982447906168019245432814396054199506960001600400905987220147390791190"],["5759106788239276671761084626567011031945661995854728185644348781576816067747","24491697819016732205280024705997317557908743409629478515017479887424107997919"],["24065275005928890928752547035101475594890919150673837350012683255548037886838","18480918950648463680102278802633269049888625101994837432824998951571971288448"],["20450913454522431779834079775468347874197056706226301142428950521671137816922","5558628387549699220731321118421239664738809760316413781242206014106582905549"],["13809894881062709067191686801683285356731315369448024414116395922758077630241","16890352286475988464364728805250504935287862239171825104201286141615268927717"],["15233277083164022951313870383309912593985330746184367570546145380595848802484","19092313327785247684181250893766705393419257041248269104324266889435262150724"],["19844619930856763961395800427068350322575391402257355665374517296587718723640","10385454079914711503616943830537971473788415364427550478574653340214086197060"],["27637825156135168717585031703469152114552096844564891581737757179134038954231","11118921945488728726921808313927015954623357199809254476335527836209825598549"],["9112980556800005690429771607740850190040806324684050301148596839158141312625","4406097340058478181219063948208847190953268436345079241081465510270374564335"],["25576861802601275230178554318564486386449937854226263178509597093625669978658","17096999360766561308308087506345400430704682578454722984623262882241808796157"],["115123890187976686411695742343210762509495357032761415642944613548473703517","921925080825774167351175323142636909756337213893871150975276646735573359682"],["2991230473727231144007641263852754848427433470510918526778493453502139895559","22557211580500923090425705254057667411292053896430104315508239282717900647371"],["14562666072945856908281990602072402911643017431882152618360653854167255327289","28928810404062731384160270689911916069050947489504702427832427933046394309098"],["7309605177615538706574473024846303365943321898737017840345986472169452999253","22383067386683953317707758918816228083523860475649235716276758379960617208977"],["14912353663929901204315395553661779652530399048562830074685403422585474437320","4849354726651920278229772746876067953137290490056417096838969307130860148385"],["10015039083368636895769950908570106617025222175395525506646618931184248555521","11886082019958328961692450080195311329809284292364531144466869811121073662892"],["11104026702686510745325102517695258084737460109941455682894221226581013960772","4152887777774737763757831410811364761017387327110799735283208761244952555020"],["3135524105438703862519119682177927045405913738083654861200050575976222432564","6740453422720316436550111958748980771443528050858972267080591368029124674938"],["6448120301157503561424215535414929574418151011878041560402192904964165191398","19770596860448663785420961689129607327749590749295200355402082704960600170685"],["17645864068579420602960880820663004750251484777545220121165733320416309058838","9885238038286215800278460652996151593814416583704461217928738890934576829886"],["6751979685255688035350502946647883608228459443418436368200453999780740102505","5603373818223285645872468308823241677487053273930692877173544639425756216302"],["4115136268114154643293582900869354897475774606746200050035493151405578918390","25963867723673683086751340784078265393236532284205631595277686385727977901265"],["11473940901408304471043958944583509203223111149605187782296562689019393673522","5472906545556670457167907646762958672810340186830906298140085903617824604565"],["3008176126385068488861373714966855412312207249976469533394169436686082199444","15379911418126618822092849797098907351379504305699082183971777979086406641280"],["293300045347354673530710115403552174106877361161455063851055789756763464111","3711019836164395226616346399832442571191820343310565422176747456822503722230"],["22100020547735677745297011889201141564736344646601931507243997440333138863921","3211865017980111877398092968427564446541004449984706003297176968429662696677"],["18013502142070310687714387271021677697025113600172511655343198081050014700353","14549337036999412643945337434739635997217868899160735952820185640918561996685"],["21483026323259432153641941479170003445059079265866774572788448760870715417464","27996405119438610655058034575016496105458156271705610851556344651097272447184"],["8270849091204276682665228387421366843724389547776920071868102830879424635211","3596452152777960090028787719722939662225137985923977393774504675066936255233"],["6073271621935186393610789191765608870659943041242249850583615196527747242688","21904691302395498372677544814814298913910166646335544013341083265706970976530"],["25731537417877914014789298053580488760291688493031758825773886430924794722527","20119429150321611868062805761538120458244588074776769314976871274470702592818"],["7636870095166147727253204725720892469468631046178510975061413300206322453511","11035973657189572261574910234974693893641767891015773808913214523281027811031"],["24115849434983960168467479209962925175520336732398929795342958301730597808145","26039234331174229369583343972931356702644064690705079672909232304714106677088"],["4419981739654536539156271984881255440733637066958938743791273433583182026820","5120218988411977638327881997107790934245483537790561652228322390770250495315"],["4124731578901799157953032916116031155198443191321193002399531068508397661124","23903849990840058675816035718423173688497390427467816883507668494095107592071"],["26788505571872316906964802085520533388741678565814840217732788894373499323418","17251406215405072931010509484958164455074365485743356924577184068592164683766"],["13410410315115096058835289934514877822131467767922695559717630026576602619626","17655337882633873019626626990184203468902533804627598961795210140273794420793"],["1010866394158423461413928916233619019877617844351039096641966493349289890581","2539527574258367434846047147993185616081114285199092397462113024815669454467"],["28278158464446766784882068285961352885210345278911868121044268575824531004111","9986367276395409624503075924996894739581417564585499714620829754316360387659"],["9118206047903386057318074673811437614154169007162424758621571050434898257042","16081437044681425122319127290822559063083044128603017459165893855535379504148"],["3321055658576590486270813829808840538678593585812056695798083761706518524342","18971986860187493960836671670357209969016405601292935690485064572694507720287"],["1202042751144055453797000317036964944821027964846532194916279822569435671409","19089175608524186767109860234405949778153580481943488312885000502768677629413"],["18617512623186546837865355447028727007715675368501997937917137921850055959476","7353531786104837827947481533152825317529205648073548671875415728888231347081"],["19651946936330119756486193985041852879353010795605836451522763122008766853893","28446698690895482388637326867521843666323516205659902448984068866592871289000"],["17330774555107952478077551222843489327199760078956498233851160309708355754977","26796262383485295381826329374022588799325902231901239961815976713447568541979"],["18750662070932455412342188766803688234442594447349371571439213611096219891656","18665150690083154463981293943290034710281708734633427918456316287694274586608"],["4228935278049594962841434275533562039624211530663568080708355663690684563349","15776391495578171711302823561949700971649524356863800780080479438169697429591"],["23363908992186144673202187363345864200508671599249559241342096995605419466486","4574647593556199497386568569800928980000467079696471995440928172614177125137"],["10550939464267708214962460168932025936442834984968256620524544209043081987861","13233143454822886827558574679833936555309837104774609334374011740608851911609"],["16236181722964157633148827427435157187520782202419486205962919009303190057015","16200858921132152957956479384121250205894876959236379011802249009971740858818"],["906764955921125322098997663996084874083839066307121784970895720777261477380","9713247853700840917523783484542185030681563290155754135096345799782009326498"],["19190121259829072193760524059192454993506973271381590603541958673734321777545","1825879774684057563874466551078285951307986496581491989229493090543312062597"],["27062610251068846625997828346914700485541587670638140557106711182376576354846","17603779896019052574755607093086095362506333130384747237637269164610467765130"],["16082137920004741332726411087357298402738710482914629855193665477327387797023","3367491110651381981151539061004298126423925464481721251219437747134447647038"],["3048371836530399337073039321587313694467083153534663208547581020688317025283","9218228584267412373121735595597532539152031943875427491052061134174736697332"],["4866524983999867238507795951212869219068016100822775806041246311826745833150","4770245268616555619470658079271860290679907589451118838201640180150940818086"],["12457176105318006299498461987111307347472399958725291897925554327319788592673","12078963889816198584817989716095509154835999958287277343009696743128725053475"],["28113155895308975306066815975882051927158326037919486869960128566265131191380","14614098373943885749157490182375228607980593296342103256492324099983677209898"],["16656192138650848700708280524805294900681159544764996124028664097971307952139","18632538929976751966340595765367553875159131700614680613728287546330202409639"],["8598976681905580080461293100237038083852846016171094931084503544305943534921","6194498994307942135628357318144138320965952580757272147090149575029264072742"],["15355350715875894820057952588893229478420585117386663418718164611969247829505","18191974835946761401544145742500413536193378908765051469973625226801412823770"],["25215707393118606980704407343198265065547729411494051947790615815683025732267","27568370332400911976632466881537916908607540593211916109316074521475469717829"],["9501855235955482352870205525716198355878921129522218537732453511912958378760","1861222524504921224800560114142432787440833939474920917610604944080409371398"],["26235053665771961507222371038511274528385612791120177771103229966732060970062","771515458942795666523336936078812366702504746705454890478665034799233250341"],["4677390857520476538648130114112449939544843004056174913753920199522815117870","22744887038982631231877840594610368334556631336414984364953908357704347909057"],["15089660088549529931695567654556623697399133696852070081748531989375858278241","22572410323254777765528993878639476934755593256644565137471482756136040719205"],["26152691406508330154023072872179202357796638596741324471472108621448519155074","13131816473608430517879735168616422247568172697428254630088882760972140423433"],["19881083616005230143003743552698426098950971968992371237647027204107199195379","5384334821450584260820134769011220567727372183660969634728934155577680016102"],["15422853852669107656109943360055010797349181890043004583511818254667170501537","17302956549948820726650335480778185577236472476148539353451813460592416070969"],["6793037306247414165257355921656662575701963816404667202563860575476613739118","22259264096801416991886633641109282564051151426698594270298167012373203425233"],["25282450472622363989301320691032305214246328798853505779877492539527748648654","17856810487916378716048941932592764373706797504074616920194805796580848930161"],["23232988418189206049794124930456875293388125277376550363265453484655494396871","27160117292550547018077514458441213651562022740700548093693206779788953829442"],["17940596979036741160791975413761178076719789511430981316459095570344575084801","11712204156502102178599413876436950468111755419018797589034680593260117761982"],["12452839816447632144926600406411844612522394725402656791615377314104131385872","18194773385293857514218327288963157343839165297807268106560778836259271789307"],["2169854870456742497559035457874114719032551603429500762375640309607704994249","7940036050093376141875725866730006101444821478468861117123303704712780635997"],["26756904608543721534315770631410259149555643604860108976707552061538903134929","11525498186254423329051321655575447530581443982179405431421098734664931574132"],["3194706248498153298989796270309633512698804107936385177304615416297515267749","25338733277474331946591831294294097006264519314411956575852908350543326029707"],["24666607836380137310303763746994332061778073881442297178967397646429397861035","8213279232598160397877470371974982297947955136487114017916731053524810398560"],["11844738750250749965189554909966427908620863015002790196782913528726052424796","12910331111930672353243343922227652404680935584229929048429054832643297889770"],["13086864942896487188308984614687532164354367185360904695302596117687830316733","5423328183427882146465993139163815009297127612023420714996052030339671045591"],["8432237908441219665558752641159067114796846643277697958207382168915896996990","11485666279420493667198466520978524447368635408067799908032891987273254172009"],["17938719282787154689045380799869389659832095170918004362020463831327487103681","6309241355358830469191077868797546888820104840818537919850729393093390691644"],["23540785593436186325735633780111422709960042226713450802697494440282964447356","28604184626094782645529419468128398880256236957395284009958069792538633835338"],["4547317264098864165659399696399713340169953043723187971058545728621680608050","12810971631294486540132870114658143143650893520398501925806084945052485595148"],["12184514627072762487058506183298793552880037776626814777499136795313857679547","24650085507682470176383226112424722693553470702748081531366807300566878629394"],["28738931765641284059409646454720377696973345341839650326423570228045490206576","11065595502080685090551732948687703455300141656142247482312908671536568878814"],["18641698066796482364907307452178339653893214177271556805934890849503553792270","6766587284349244433440409567937093231647428657206042477819072597567261382608"],["24587423643043247392699361018084529381667103013819661771176404870602969033047","10822678899762558080805531865481320524442965425613834554561911092426911800234"],["1371357440717970199524568144111067169003747442340054927110613314069457267830","21044248449518391949540206671004223198624603690106962835688912848039442228489"],["9376714876354420586907018872278410307519181111072105092475444411133747795749","998331503406390234714999155618476290113572096852454145493437634935500600506"],["27156119183072180523023265994203844887760207179097327001999108242266014844878","6472122080016652539687047922761665813709391412811167375591283153732530958899"],["7039650408750205293798385114529992735881842279598320483787603813876669064976","5365277450259772957053214892197112994105007798286544050668556254551578792946"],["18538371837887683286193216651814581231905433584909258646225192718100871226723","10640770551515274242032773105667969346354077876176304679584648199783692517121"],["2689012028512138848605573605947116584286773099032440402006603992277222007392","936787571333331548317536240070253619811879460554598673149995174213730240536"],["27497630863906343208148726958580193309576332452442602140905815209156240137329","11433290684518872243827477496202037779141201030183884478525775135442448943801"],["7748283368920796560824987435937719215412588752266526974170745964729105743030","9113275183204057163309508184990601712372184134054251681173886836471887867054"],["12617618745013847920519790178946919769738480804018106875794855755165320984789","18567579275934676105331741192554827353543147106613853187228343741449895206623"],["21379938650934851902934935011437593513305451767387004920215567220881974873037","924127764283068519018872146442628854597410616433508358502865517002136724795"],["8390954869539563557889925780099788811817818343384702258003394506335162200888","10172581960020082858743122072620979209291588273652835480768866722629586221347"],["14179509911394335403908927279896653692765399016848120738579279948674140637166","27904963415030696282114736674419686758562724507281721566314762365066285683326"],["4725955284409545453158320865975327342685917787372120455605767520072069398493","16796896469391046006718269068472973459980109541854497722718816373825511366292"],["15320699144111840047921974977370266564817495020169797469676379443717652904330","12130065482620049573138320421723453257559214874811535103984414704144209815145"],["11858267009847255055126925219179594929289028670649195284550189960221429907584","25669027057370278159158750397202690474337078307335696519739861504287085224748"],["28947587928788087069315872610868476974635825860983399458454834141164726512183","23194500976313688939136825720179616136439317568070673240060899825155775072334"],["18355323444841437296405688950100954251952543550885211477086493459107257200174","1312564630304776515165175350128197838012989056395921622036166242687915345204"],["5570267325690175383949633778381719313247576210168456943802991636781583833861","20050633711736483914392867970587690410641839554580912649361284975103239478921"],["27141674294360187897243236357397890364074140188712707729045473235585072183045","10685208335951931245439035747965881530979477182062663915789491790463962800484"],["7271654485128778956776059519632587564304736297217949026849180338915068138940","15351137061595160152803174394259126133355469383891953686567572061417482002419"],["9962303973963540569979951827292448939975190814962613216297425872050744499848","2403807090712793720071240858066840459502606539463220355650763930339599528522"],["21461952221488848343757854989926073141898120599094823737527900534079048902171","28163958906993476664049796236352315097763578323999213746007142260848449699074"],["6072575300266556867845409961945364702424162843819471881330467136546431969627","12359361979103095538688635563654782050381495346962276265331108219337626590508"],["12951399621208886899207178521949818691515848391577723519615503903037661193751","3975205990519281076850956330225631618719186500871661802158535172405859271607"],["18963101454689987117501164700883645132130957038876776223408107798488353790122","23011250446644843783417522142960349065870765390987989681685363621373541742992"],["15847892527251381516708682254582994601087200475767462025847762396545456149247","25067208208680877282417223839489324201217681202053714646223410256009711844283"],["17025874817330852296635600861314569735342476844987366277622176190916681432370","6829412096990258523526172107614642796663953367060142829099958736214743654898"],["6387689843462734910061039193956922946285856928679075932141056142223611491115","11272366025362914900872318466825802202402396400181194597174908151867061080299"],["7315722324970469877913526567892746308395531926597999538715127266433730492012","5215599026536369814107233399279972415448799574092278153012624126095128592959"],["599821191234835608305868651694529324862335010365182660213665444968530100754","14578770844669192142925853913651657434919695746003598078140323716351552136464"],["21131617191441243688831792872655579450080827213552793239780868555495640076057","25214855879347000988147060303363769015009205353974432102603710455947430095930"],["8309150280789158937502128161360955313852450648004478850088704781176818075686","5053856439914216401767255233263316792178000695529079558236435175542434218132"],["14862409779573783914106970189713169001847487485101624786121929392696824433471","97354578821422770085960164420079394506459842723719583316349192591453391893"],["22741027562065508885347882027318601833962570526257772995221152864708025811422","2744175727214310939444470526088454939507602151714856153969943030766728233766"],["15194307534922208177530033741174120450850485936029580111774638302915065089968","10862362382003273344547534510490424285194398519540323440472068498069645913675"],["12188492829096971398340809705065802920409820746505414697027984219480971499829","20485076760648746674858258905298148959008586387892759998582111118540257877636"],["19558828462780550908446931783676149900505607739408262540071674217792866998218","23881717626279698998656909077226719752128852385471965944952614880054595674900"],["9436885113281008014072747982809531832694199916919815067823403151464313757446","24746855124926653526781585231535402748726061591721952801594086106038419402668"],["23448132327250667426740148072876630671126604890499679995810331131252383318308","8824700992691836033766056125831968224750491816148850989333820049898497854335"],["54457168750731936369610331198474494575512747226223995209826924967587359932","19898638794718635038860432881453651116266359043111206170703866117922601204983"],["5182419342120846405962977843584185008282930629545183563734479332525612714455","14745266534312399067025363845570310881976474052373174504354027390905286416773"],["25823001622055102612563382098698827344099609186473485909675176781113761704473","9473668921366283752388565232737841884527579422480397009013349727418782605058"],["12071889721412406758868942167332829293574107355863414412979870120691665031867","12945123362493580383610953891497296119255791958710009550653611085856493651883"],["28929480520339244860129343203049106716300098036700866222073679342601545426692","4385707202509655673654787608013460915441303736293661508246586451516948840744"],["12471349581002290932109453051563144047416301502474135747420537365337300494976","3774560665409031686135860097444221918187732134526294611481806292359774728555"],["16019897636482849031371371655031232909079004756229645870233697915749693187544","22704828010186358630550767364217344108354531415030114182488140457866371462916"],["14843938596019378129752455238742152938674150319198257877987820875994244892938","5044347562378354646513895786279991851891920814036674658318796820754931263071"],["27998718374718867903551331976376964360285429120372254615111034093267736281068","372341971431315727935043409210882751838651254569992224963393673791677192649"],["12116880526682840775485558038295730408295919523925570786479258914229492339977","20328860917692069708468943171910659702056449286308244911295708309140677656891"],["8804762754008217341053764835687211255027144415266881805098622929954549183629","24867067085652138488482339371906367937983368890453118338575170540972504881985"],["23966578198579765677142291653336213219614456256979218501775909470433899298420","1472637457240059599015977578679917776224707843480261799752714441790148671639"],["27094443129089689417394633077187238935224134921911966681371580299312904838236","18626595340077747340556056246016576864959963576474213449328792163734015469516"],["10017584452412594135825416031947940292217008299792231597292226543119255654868","10016041677080123153977316904427869943557441743932244797997547984719375738940"],["3150466250284140815241957327470171699389160800174479968818597943706109024919","24364497036835792576710433779427038335923625323148781602711706349708414076153"],["25594534278278964623631542787933105120405281996884700463254220461575456233596","28786722907599596617016100006308555827074674036729934003675190193258965536723"],["21871430632502503277902209325259115439095442783727049353689621495169982496062","1817380947835371205793956441508211085560677308110811353413807753476635263817"],["17695108214987395580344812483785038371072956984812193613931083625245289551897","16056258029620311656204828276124593168487299250281148262701037196412857823394"],["24896311636395686536062292163628879817203730750846438139292095791534326544743","11818383530149172482434671595090382998110437496120381185680764432171240985147"],["2588344218779426600753725715151654122129898116767721119549729555309737478402","13536348978642890870948166496704650355091806549461192229545782918901796737307"],["8568167686588615494279954356688052859885866827889844905223262548383413086940","14292195834325939583953867609237307451054208726274062451855096230777777899736"],["17123393674608664094130396988679568695555431370442814761882250494993370755241","22426603146663495239788258282874537058669735301345470048622985195361027877507"],["2237481918025113631235495551475747882150361128086336326537758332124541060143","10137102518405366333330417123647837890015411212003593837427889915378169592367"],["11830927796438044174914783644801298737905990835461424213509557391758730250044","12840941041621748149613091738273249363870435260258025875480469195458158966452"],["12300652769842080949259413164371618033316687431523600189999545597410347985784","12801235371747809929115970343262699129154177074220345579866125115608038920378"],["23231207452130668610929304363892060508707800453224625510867064523723772231770","16735385227593356813005295410286356549757601401586330102040805474738084790956"],["22203806042141115822519459155139527259753036457694852057047256187657397264155","10034801990241614930061498315065477240199773088215509121802786352368424666597"],["15546415679816421679088786212942159160254127833670263628438863497934498855274","13542701995939666511631446378210849115199431807277193919175568872129856714618"],["4647434841117091136433441483955517854799929560954981496613767071816107231933","24454768614964571391434551593124744453020764146335871786962127165135493715066"],["8257077394586632477177024816186628556751335069068793025664879914351311644400","19646448352456540165099430736720986672514459631945087668218288645118152293815"],["14940119901538497853343999660950923219741527744372774596670382575200229514423","13683183826647913141709073335346387593547933822672542734512190934478485210351"],["19253180405216799757291661783895166459899242594436295489044844176354065732304","6837209840919049337398089824855937140113138852173288639319228261512411529950"],["2391909125655749999811570307218830309079548623542459551401431913009267129784","3963782558908263699447453648694272430745370487519756958107415671504661323727"],["829078718657300377871270473538297838066700365661317757565437374228302568005","9578106357931889280415715974548503412561151947010061318655668617570296045682"],["11972495656945902598825580838645597448890118860684871277371388321814080977468","751204854852914905489885945613504396964801625996453191523483456709191948128"],["8095296163406720158212287152391591906573060308418345693836651128887333450998","20961059957584535389257134982199686641211318014839159223678657325120734979881"],["12623323061010218672687504380090337199639620629031374994470392120126125675211","9988656372809578689970152832024308525781571187492711060397052293912030698814"],["2682854226825942134682252543549835062705384208771407886041123958470426055363","2251699080892963322898347438450806315137869169745365634419991667425896926554"],["21919508251931127540671234103891550944221327855377640937657137049975567524092","6204375643934107458603060529729592490860251782925752334106758809179904753699"],["5876394721888948949624304353903113111544991689712235258072123151259470654782","9810088781969605635640449566462356003799387202066839026108625880908945406434"],["27073165425405946860542354311503721265779282156570041996221707505014768712005","18994435268165474871212399274468462597862957488192762387182208502267975529201"],["94840221422926767302671993808876690457529055190638413512815625659042533758","19671397588163576696753703169132532136427497205695650733593947850666734010414"],["28068968439314617013325222271336263800370940685647281467366387297094276749584","17098387281156575824550622784257141836596334285139016768200490318607803335382"],["2147812990507813217510523919765748394125848791827610878129634622943910652230","16906055321224064287818708988509794349138033136241092864325345813238017081134"],["23509493507736723461408332115075617240951414294172865496106981819606745743236","27381488459712831561792047484501063015250378038163907967226043577932043617848"],["24699739141554136606658917638220005912227674051414601127505856202258753003433","20523166776981624426328579041777210295998360158176432508374988512184630769811"],["4134087105161333767144239005370398363074280536657891888107593678792780724775","13938926702264232121006122452452774330827112860491868225120256661258366904032"],["1645365495988701875294182609823213264914148303236830760189365300778960986574","22464587549191820321046707917588046605492415131994981598383730773291719061728"],["7359028937443597459070651647959984001948961809831796007745480052320002690536","14191208175240589687127344043707194525740741115709577171077304399235146164636"],["13381897497718666214909721193697226027233062911732975251220216238802638759785","28733073942765423058299073694879276301864884850510932343102351010982525830442"],["13337546461494238087328432231619674218368458786906148409732347202191685398336","9804826015994447281481074895638451329397820502257317448362079923317541874249"],["15966430682812087002732470543488302207990691278543085265085018376325706409156","27855715530658602566996767634006432310514226673864040336844441336450130730911"],["17719394911390892509279042982929319394047248791344822366775453231762521998724","4083126973735127114485598744334909808202783573979750445162761853343334184287"],["9376853616527835822213334297663102469058887381139850673295606579075464087368","386566340747445883606963041718430759820936148082970639092315379610561316799"],["6767322708694617500429938963434616963731962159403717049349633875794586244793","3339882439072926118919066109227828024509057005516396547204246086530348522643"],["25411825495152718771980091799143548943042859788669848706797828316637408471352","8164214323999878396889715759965471738137397954902848538794573527678127269803"],["1444658869353833430167894233811566818013535590478883209504768550240559391903","20605168812192907057285408943368062494231491542703335174004436972616071311435"],["18751640498377652753096016947298491983261883477050495401728946075914140188255","5011649760714345298168548338865007398708351158517134892975593468837200292228"],["4016521454321626523247026850730636227027133567246196989450753941263101340995","14621921851986091368540546496199864657456132629185652852628030866905359898705"],["24924315992580732546517996866808203593113368385102972725925737279077525618505","23057651232381209343065949659536519462043194760074440875478192254861409966164"],["1981989349441679146953009177846986098635130113260399972035276972493265719475","1452953124417152668810948071514386294914660039074692266138321817374398291430"],["24174299482978488845955403522122249338802226096401107642257684827617057660376","8177408138473388587156398942624221544833343973849459094383201880532348244521"],["16616808865536554355509573473302656467334499503443752444212164842002974065617","19302801607503523976806691926359170930096030187414615261321795037208564154471"],["7297691762046892174540983518958871847483417533643035472054336783685282485800","14911716311953037082735760572315791562621291322771466659483106673481358846910"],["14011783563903987516770233657083066641504085289857447115832104665217646397155","4409610475849061975659956653729308036856201309392240124601114662472205689859"],["15794713287044038122796433099156895491784094298303731395786500890547978486603","930264344096178900459671953395519430649960068009723321736984682952398977710"],["6437599885355747597292523742228403117312066578840028456484927552413442234528","12491590053384530882491400690473806425880741756406054107569295894650283366555"],["15282751378163784102591560514614494952549684409029261754706603660606931860533","12653962362357241263228893842850808741103636838979486675585808897075674775690"],["24994632515836598878135827697455695712659551782856978209567127290217522572591","23978426369622511355073098484255423439137410921937648321033394069597710389721"],["22080208677439562616592967274205384058451855817684648072033937799351389451732","26995725983119350914599770304243533572633675785460203807212543094377888458050"],["18076846002374230704425331899811276171377677041359244785904490690837643306572","7163950732347084133397283370331766549301372717818068116441343742603109188180"],["25866634983787567085825900784477599313681305403840076835138220526169042517325","26562726898381438135702773231516361898988305765705337314886491354489494784724"],["27989790144301875698584197275591787480025029342109602311839231562621989748462","7000193821702246893930282711000066627980383406123896217861857297000218248872"],["3967543128973301546493542874580749952175423884718670282307861814221545257169","23560589467960402310291304268501135110948249344433013467369080952421933155162"],["3507000004371231292251190830670652101175836543136836510222187125163032825716","15441639267184941282497370404489125357510082941721222065303828731711543394875"],["23201627821133201901272634000171896879350112822045714801018965469797819394367","5388028575412739306253723608369783565151471436559221185394214265211928060956"],["11884695215722505590112756507940214152202576501951207798491330886184199603609","27409663773209390159210638770112086478936682529855966014192037974292473785128"],["23128338273176677272569965551848937724140750874559726976132377803167944761282","26951602365197100605018926637562971967678912934120628927632920190371278451729"],["18643459025478021860939230559730120202552850790455803634104221761497398451309","14649730577521371044978205039530128276477552422571834285550362899877452197592"],["10638579044037707164762250798649029040430570860130282381331417692418853442351","18744048391750020723816600622270670179862719296756776273142625067193143096603"],["19419509733338260713411388492084455372080505154751589133146797083668230177250","11416464843574203243601200241880290391492072726309354911224389601132021922283"],["849373962825149023792394669708303628999933902386890516667807090876022806552","12977270599310391144657605043417439287132479873226623160683228336253979828698"],["11943171562719194500894434723475590554554712225689994962003088925051912877976","8051290928635518160901684504872692493831189774044677355346627800029336437828"],["740201136736862923739129241590760995725306022017977124264731762072511572729","25041414235605737246456429672979320513973460245771129237135503198215489294097"],["27766676087473061193672062113462165004116450068265018954835121950732828273765","8818068307750154896140790029601825548633165906851131770970581327325170543106"],["20506946370300855188061355032358915125713278583569340042856178215317586242239","8615664372252243771308644778746985905929831569126245302449453823862754987700"],["20796170121705532104593709641088169295390983095102365132497401880842454397767","10860967287729243452303205573708729529895891632548745263459376414160846883625"],["6535328885078173630285343650937385394753237002160426797123203712074817873612","25305418356662732417131545593389274271450989684576300536330348404219567373512"],["27459674756806241574032172008308361161660725168014059031126687568022383844081","15152932874922109615396789694763947876478256376030445453914146383529770197408"],["4831128111120656778953216474050397050325805756554503049980734294878322682664","1739057599061493311685946876041274533200681159720415318671273585592724522765"],["1607421605676958983181278900285569292911183270803755715348348966355586711547","1724791341627275702536015240939946159631466066313922826211963222774358905349"],["22738695026151391092752750051052236949754012152111057013089340767596517849666","25938226359581430362419878831264401880325208729405207845060905820293312465833"],["15835057236744515312412301107612518398796658735374793882603503455066613538786","7037964864138050966019705907009954943577861737411913348170478211219582408570"],["17427847443942764353568117438591518272936999147635235235092666285121152312110","17078172723769899887281192235934225842286471027259815468486326765231755532391"],["28554980297702003283340540440044263372280434540687501585201505312670811941471","12083796876851098416935311382199620710860905927948751120902229614232853552653"],["22930865989194344350796063896672167183458933590352136205676161065014703376405","17641498797494867215100498469064956560992209002678005021501511732174918952449"],["6329396016983878661502400651563919686456714410126758077161385699546270931022","15976024751902165746429961778163960807568143636399989535215496642555523103450"],["7745699995735648760877169323839104573707398244149601160223517133320037585589","25026403717448209830459378084644439731914211833959589277833166017151713052005"],["22105301571573697792859460271063253965201789594960168500112180301364770973001","17888296319807294623659816441874474101606556788566531650507496233007042197870"],["18761865986743573265975940867003766826745888204613250258078368750687946137574","21204371948914968943889107625125130308827235009536676936246083132202295215388"],["19016947508240339709739047981253176048457985484348769379920085643391516790564","5332038976655940749036142106326179083222283207574612440514986222147909520293"],["21446561606324247475957972389553176831965116123596920558920099980815285541923","5976743675916657629140453645414736588853916430721674652744330481526520586475"],["5764216851990030484474105543875482621192751908798289550433162333255309025296","28833283353429957246735871097987657360160088825344796436816213271761210389161"],["23677267207763417540502256911206473579629857442496405897093492158531411295655","7821620578519063941256390183693306709704204882097393507178366375985734430522"],["15073244482342641037084065072718567385906406229025877143843131640694219295485","11794025886190411621278407250454172994379318130473807556076870646361526580135"],["27715937402795157850037228152645927019364389850314409880491723548601558779992","20320383889382889341351922755160882784605786818783394935547467867372558079132"],["14844595556466671594160469322987144225624301767518776400264932524374552770520","3345578620319431139253532822352251567561976599734714595218238796049936930225"],["10231126593557889058459529054763621845222556328412721613708252456336279975618","19977353450644653878261348045668838488785053838036702159976611129060363116028"],["4239325541365335690876517059479101403449399241306360806916266829054553390704","1418790960036056154917882523544626136492006685285643118966234766015840117874"],["17272821155713412824526028445673087174892642043064405677297028155834467979361","11332852754688482695816063876368330628357691839327111873193665218190176100515"],["18087288595186685782787756857964749303383871183947095271430223808695030025398","564580340916353078075745607861615955581830824924271203078888633743486493442"],["13851816029844736054050282907747552160267542047915465831206608681592298355301","6950652250506398881577702964405783286052767791828261113372758031060824249123"],["21633343607866678269600762035437064134545204348620788065691811332374131362712","25536239352467514086886461616890974265320448569356062494263362414684493628716"],["741192863921907446008664779475262188681092727157070191614024924772157691524","21100161716948427285996975281639391340843927193548089586117149074826086824845"],["27311094668256224256613284656579685405230474261425378845312658048638663576656","1718878028290632573973253484907256059765021952255376170553490906859095081578"],["5069261910322243987347474717176753800866869278221597243400223920521559655876","16272333927725929071247059576320767059397686596029660530359187161827014027487"],["4726496641528628673192001213202855384557709453542682444224413403268299920562","26070038830557697165389101551108216546994729311174253473334956094205743805699"],["27302361046723848444006709894159862100227107406403922338981413574772401662368","18458238512695356417346931104744345938351930744687889611052062385946428507769"],["314582441293123754039738306277009595243483908876145670120657958599115442467","11380769871660022732687654391632984377587807098164311468696816861704074590869"],["12330642958078407806892269705229164918554389768588471869008512486551809603124","13450955594938499054750609413470910813556786654534557553358282937047605827418"],["25716405744172759420599806132351382893044183571065623858987996600592051527649","12007417806470552877598437080538701769668514105214121944036165865560981993581"],["902802330430561262934858037853543903542279343073276259426763962961281832739","295639920041833953060783635796620555102414512020917320797221440996236552689"],["1100584547258861983184715723922681734395755149807388043938974629679848099120","27617553180314686098436633957979997303908834685593981559546502337742858478384"],["17492434837490455367960847045855458991989322288036681035934259106410598714128","18014918760108968143358469619894356400916708821760598753168970531034202243743"],["8032121352255406979783780553266111130380041692315621491436295364607950084800","5102472274404488451970460848335627862870567398129586613176906505005007183383"],["9819104532270101363527724781601562455375314743665247833227873430420509839309","16046375712413306146568688490747351968307323058831711800149810146054727216367"],["5425262551652035504881365960716108985978538773166772987094751546873841508663","26914314194103941271267983815511433449764735942016319344368821527137137558932"],["15362679534641391546632992038987696384479909113653873343177243976508330754320","20829739154422618462564074346240697191170738785436728027090721037452002275159"],["11276844637118286653468198005721112883814024807513995803123962150807039062508","7709346489644595677287242686444580447226977807010312704967411513579342527060"],["23629143763509830657394884176745719674216711022985193693696541050425200076045","9652595049368056707993606053305047471757546800802694388949364420451542902798"],["1815204856164610747672879202936420516161565484762463034218796532848199237245","3805627966135789150755382790218667726081443133029712797000648727161813247568"],["9876317816113787528756341706407868072133743873458639118561630946457353481510","5498989875889226511822995653584439488862366971265403026802689940369907082849"],["24013658889591922717596781629100230667588127187126879616229753908152134398863","28009907069111320308263388834362594636514138288914424313618280516009812479377"],["16361176977173243851908640942000120217580460746595143795629124621073089651317","23390402583575125380436880637828866154517361634763772524297256037634001361757"],["14620989829565845836243003695972644225923237790468765590478108455015758486605","647094393217764399736320699479731345403861393919247602103011692757554741473"],["8188003795302945903237132343301353170523619499676130256730453258957932388823","9751439473225435564099925713146526272822920769704722409159462002914798215971"],["11033079414810112217274976394784211482248170706496666012930133967284544097610","8273478860822765422677717248605947794969532223424544086357247473530737148448"],["5144126096651653152281697630497115961331782778583524475331100440758301491230","23971129605515501787951185752279978452755158077855495584210998510782826582643"],["25797337099752123070725089243724019499467182779712225205361800834741065688912","23780386838451965257677729892680818618493131856244059106088330702944672380227"],["28421945236740377229514133904940379043662142470957989122844599404189360055327","26034008452655092190936863050035353224817567950124726988903275535042786053001"],["23547863588330275218284847244747067328063812688293415877531268369039465809264","12481429362220997940431001547525441071857864921308374435385315669252690720814"],["10584505824222725470927135417911067891160527826209988579062817450649331449380","16072594109710402844324350286764761017895598647544327319215003152007618910501"],["10917229155058893691298272083431699856517627725596485253387506850995383410657","3034823637027099824867597829332211886480622152800892367506943122162448908730"],["26741147078740681824492312760964672577926354092307905844706404579128308367341","16285664340721077183493464756319598392669863953713145933123213009941997391981"],["17180222383525983213167438109429010883426380248660560581431643391664248522628","1482403445467419492907027644170976558598381006949404775256717505615210595043"],["22298167571629574302879935388846230397040765535853586223512379577770979444239","17341010332235818030595133761145341541054831185831297427969686501131366735632"],["20893856046165574742564306400277526395372357511231666904135133840966764887282","7243142414653141717305644745864241539613137615739006444522586647476655735181"],["17314795094015927794420626761602501167867016864368628318863637164151557547660","14019824123814864481297426695649924832173961360034526794765379045171189953033"],["20653220741342108348203849432080540656866148628663559554994008469150058814498","2821267941594568365657798295192265509947176164728091940525406416620524044974"],["20780466284842956828009159085908134476389362018062112947250570693158668999507","13450947926361964230888003467532098535580869854177444430331285291040028490041"],["3407194175717767951199526697198755485974745810807625937334416956899014935843","5609910031634922989519656655471203887824177849286146240796110962821349369135"],["11709951778734134473558288797198488561120721407343116287267636261401852805649","5820793755270179456488827321826955918163169527430569590345678533993385194272"],["16803165126406894988111707853250558053699558189247032228523245887298808984408","27435187900452926831585126298854190501932796588775248796720991448030999275710"],["17099295607065451203699790842091654852932973547263150470078099712777656174141","9653656773602018863088562595763116081958155422590430713153921771833012212489"],["24920879336023008047400732961677433467403953311399394040967712087604998712445","2622220512254297539646310753553331675905595672951701383296270022520696243702"],["1762635458867511546048945776667487418343483416955740329610177093289727406918","1381929567098712191743346014271779464140804650192657146971779428566127803476"],["9154417154662568736007462952006353286158977563446490613678958983092923824102","2512021671857385646695190705518120028452910286407549468388536267954407585227"],["24987891912737286868382180309977795339924641874639263670280010430838256974345","1304893811152974409350625811985782696192726781535349242001566972671340643527"],["16165015664763988344553261882352272691955950265714035299494978058858072913387","13896291584056989007581450412809806581369129652003954856509860935254308794865"],["9124336296828566289674263422779010800567164177724496151678896501785814688175","23073282760014155964723050480688229879331171554071332139429102491635281939450"],["28641751935224079385805848288203512052919628596595909346554307956092506935602","22631918687194493123007739538030482288854099609044530521254583839986876557073"],["24795180760442188670205856271973770842816478520351690817092369080411141045787","18186208038951528369236039666048916402139507305391305633273267572681359697776"],["228499825219703586077980619662161713862188259973754683990756179649242033076","15772687437040520714403977569445035563265596281814252886635977337817020372701"],["23810966211817761757350903851225451754753673162369380311020550602204697266141","11389189980595438833706555120755390587512648815962986912438669745010244710053"],["25016833593406385460814977406401333529187540635185211987467867195483931631670","10413841053813601885093688597805341325680680680862482587953879055761921989131"],["249338649435675608582493108931661767399601080758268188834367215693517211008","17258707658542673271703901510640209461407380656524902437417103453762237192566"],["18689562161118038131024172279696666336955469395034347779185230819018494887","25822708371515756269602705466421712405794983686153191799464556554647061260752"],["13077915310554284353767391865679092233445519713841807654928060378339976184794","20728622867880985353087519473330731178666902741241814886393395886217569331123"],["13820450392027645436005519383246497619325890068997380545144261631503761782099","3459222690169275849407529818580259846039593308694916627376836771089889837604"],["4250560656123979342691074712741673317428560152777862488467917490222465864984","5639486332644030664766936222110064363103289992567307145655486552961038050328"],["9167309935848637346866955433114706959114642855413741256219170160181489820396","3808662295730281671901424472941195200565199693673439081174807628470304243528"],["7236228199439128358761999869939164231373417802977999004877133895140692567121","15013882882424217120212310401669148091938948788131823008793658531701688770855"],["1010614259803418264353738284740969895622195242841756256035245301398690560475","9153201068526476490788159690681131901861087311385546569814450384647934147990"],["1855489539953098882514913308153094984989959956345395303736789931246251117881","12048964227627634154435901542460479056060642526765161249574875206649572306507"],["18901148000683392903434834652566893221378651399162139409159281759119183907845","13897878083083294602739624931672977315309912696904135194713340224855663677069"],["4365247333042760535750332026409537061763998964334578298661556333462776875332","20076933058955216177291271064425502685052707898814091209659591106960998593237"],["24771489261723410569343269663293639689111834493482149553853419157390283684899","461255639426982292806298887896173028287511315979446133709234100892173714054"],["3067609572353613357088328976616381909681419803995313977078412818241947294521","17988134571559472410337341604039461404820597139066828161384507994929294600891"],["26572378097959158708114274318038452231707914665582283515980779578229410037276","7359966310761360152760615420273982084192458429788952622290890867284719992909"],["8378713154403879946601389454909560880712045231808875732646616528227422371259","16857909356637059084320137159179637368372780200655657794309924954861479766970"],["8719899454363753348958054624742237221865357645787025435226765144175705879721","9395209748300692284109284168886898024280359135332857455709764300833629818696"],["5194457423294479462555829631964383268182692165682043619471828323989610143193","609386337396175291488501398256148598163410515316999065178162827911363235039"],["28118775062763797914240875408806711608343777916087512711650000783946604971748","19946026466946743033270246874755427498586368123522150937279861687461752368598"],["11466868808508690071497275764556512847332491670109201900043546436057312726966","17494359093487919208442425975333942088569735430310604243799490145569556946190"],["2459475768841386736062395380112857467228829768756868973468448134187305573738","3340514128787262220151435337676480295774865486047685903845787828858918103345"],["7443996438655626398628948330523385364020907146875040765226448575999081021011","4425645310507296754477395342975249999826766238147692542016770771119290857642"],["7223954494845950588862048495557980490506747800707055534829080314984114073932","2682024823251491907432144740753240811083722267931692695190946101289902269941"],["11364740498190857331719818035423200176423970163701975059524592775818886060828","16400785349718182577792019649453909983073435189311763300619191542391764194060"],["17026177432579075276217094764010161537612538605769603095221134078887638130418","2734563326616007873431373088032454653481774883751108007711085760090979175810"],["24770279529622105121293564506999032172094440703939260647245340676646287613269","17514857240075458876093112591473243268735135116144006824832173555671595646946"],["19991056539142333941980538832983074146574065262096423348495415991598867766703","20073023187456612202627468992471966910923292376663226660508539883020314905172"],["3623008671524652504941285575918378075011618096312359562620252272510451284102","18365994696360596567297356155951260989147093921242573316120408939515124025597"],["18179149621279832112045060072326106238852587744387553183376791862127018106795","18865392801464308501247697948926536823959905440461894978205584630472640880675"],["24406030820596880209110429883775152197003297571609512710839474240005515595431","221101371126362347384681771214369908443722697863385563628375860144616348155"],["18135156738110713429853383064461059816817623629996154435268745077786239807192","2949932966759456540713889025649297559648968730006701162483380380280133352366"],["2320883989968774320523090879792394616275408617255713709908727692181673713968","1418388931489833888243265311160347962907226317750353786747357622254395838785"],["16735891682200575042263821456341749024297650601543963757151022180091828247537","622904585970902118400708072277372321769771707883876278819901807388026831501"],["23106075998144969158915795948624293584622553386613330964397161874737247290051","15286382213765321973464410836727421729537512186611726987116216267680759595349"],["2712366738496212013911649035964847212567114046400572067125587133655303570519","4141292123654561835559372378655179436160686045122248009802599834115993634590"],["13587734790869265757585815559011646495983966743836504168467892745769292423253","6643953914581855459345379943905082740997247766070257461424185190497159170798"],["3119407929348988244361480638013802452299862270930934338722310722852380692159","2717977319348216385845533147861696468205814839659033423465185843968521334736"],["9623763922983718484578554835276454323000121244601421261684940001239088061223","21789145405025305304376265268012400218478485042659248361071707177165998394701"],["10463836984032616255385259209662003127671596637544774340069067330730822664109","22257427716176436779481298931302215351048776923309433058225996040803001680041"],["12590301868696638852089968229080960511893300177128530212011276462019791124588","18568866294604937728410924496919499589002333265378641351306579523459494585740"],["16874513287473386038876874832724632398508955087377945177961921080031472073619","26265599799738474883748791100748964796138008603836104261620215920760809549696"],["4509649811240653310879766511040540135813247357484823898908398766422225334693","7603280140785227609109722686146020020971701783145767463561520073087064383895"],["16828465467759009106086273030121289142375945651677146805839540444219832468356","24960211275350144589073754945024086955310586685169485299450290615915801221880"],["26700301911558879277136941234038447463043343603191394000157229651520621244319","22975824832011179942028767185620966482846537206789000608788510834294428456443"],["17759401008853576567475944832662977729472474993569465391428038781691303999876","12113345707450951809010984095716885130746442129078077303347379377212221164132"],["20657281662615413999692839888298426718697015832682422996150509253073111838403","24942380047071391398124701908762236309475988995804042168692351850217442185834"],["22514084238050438745204911830917843507353220640045865244430655472432982793520","23157524440737528050528787514160235680101756037116676135763734769505765402839"],["27049860079775960021528277476157521797783318316780617266697669347550648923225","18658838133886129349586943323364127564051130558986194703886699469710843316409"],["8334805961844457929672626349395299162829615129576753536630201518884307776853","21635357730017150372009282515772731402629776487442360216162793708678888458070"],["1009439015014873504234753430454991107949925341062914362731246466320060096059","5731677224525843327922353159086135839302064694661494377845382691896788758466"],["11026913568449177456475675706800190048726562693149880034111282142216163429151","14348515441304162460723531798126391631079561283856804145250478811828370774820"],["7310728997119840363024997851533741384152456062017075970281535139993870629685","7156404711232759032791242888258409384320315430320929482960575382464860639273"],["27427697180035906339403939625165570747049564086499722886431481236032531245436","19082557724299612189015699042549137601817395647862648213215542511752555509755"],["3827149890658085053759635134900682992000749015419122763917100664331597037452","19456309952606531618295202601860996429574046331497883147379119385089011276897"],["18190565098975728183060660773931733948642580360882207868694319512904224138758","303756197067519041931660019450407998572728203662174313316581293496287300155"],["4594574735764411964392740466011339829123650753879237796590732412246560606844","5125827099687910750714800290835613609179277854836357823731389873219833247675"],["23353951244367191619325516833473353209865781185726863575618833420132889654534","163159723310589131536180217462340647258629216663470888003858379399480923331"],["2240120446654447587201397717920712494204026183499045070502192480806383632782","19694036606158623095129717397923812443577073238041685060831748892680361524261"],["9515961266786929212172597794197967912105359172697206266642187567401665198693","14807643097709442560598527853716601089113299257980392944212365065082686175882"],["721838241099115833262487843229169457630886591300508904423243176647440323890","16001094266642641171867894815834169379889361133929543474075327893204253516542"],["27029387546665516488479304572145015826110855904233728601175423386564199472749","18191035943853884815996551220560788520363858315581280094019251756637350329836"],["16270703559282049383971708570054420160022066194562774319092545555058781049144","24465043297797754509056667091455247534523841371086371274885888633806780397747"],["8506719210507954223249352485599227497566762918829258923874645369979080099076","14744480770830640698999102261578932124139605135938550092872439852702638309985"],["20597017231367576347046599251604818353338686725636812294544145434692770200266","13253683908196640732802474733388657931764904978393171109107346535521592069577"],["28366201786351146554049194344512439367313553965270135322526396059990876579251","22259019853156353274009667306937305634033201689699718942505788266089121204211"],["8441328949087270070700461288766988873874885300578167599255257647553686467735","13552481714315975146125980313822039974144248583269264383446829380641308252927"],["15939903163368785303121032110243337243739307070640545291939423143881638600099","11298642096803927828833478449816238044667605803758148098813492662427338333228"],["1319446701571906297742470930363935115152697989858343825697148448090490316446","1552942813130704555742998796869308331673642165538580120116331303939498635913"],["17453495879234713591685877094008220356347520512236822232399154046974286658088","2695584456033336299612289150511677646702495886268335734138606922458061640993"],["2317032853493069981530012183728650897461819263887143123460933863593489768474","16337001662726866863585024542016600554499504812650894581320786085408099937435"],["22603911565418826198681028292324665827770675741068117808967663712849611367665","4400439097801886674430133619365545947289688263222018626275780555823366516868"],["13518106019154012246426661918736055430026593946192928208993077082399121562849","8325171400719649583390562726574246882549284919908636352030872481464928630721"],["16240865126553700850759268540718227567888596604284471408248888080740983803383","5454803197703276425396187389085341817955196755349921213703062099250075080410"],["1601442538952573056554872982522746297183819781001628874405009326683212181427","14101490707949464833394843683689773144819222157382713714210200857953610500952"],["16585532733585087068909378309226647308409885238321393030971726079554164659458","23255421881263675329504658200799303787728486702962743769618129869664598588327"],["18335832013176951118129211603248360713209204229905306987918396493525574927995","19709120739240104660006704416000300878850380555674507150100574791165954999293"],["17367115690393154429928256388152112455445572164745344889721003299047079531265","14986198282666013458156516508776621373706067695288937997771177933894051262379"],["16264507942418347469039867789123850822998151000141593085457836935009416259500","15784989258670289114537615898580322117066857822198437201339201861945337201131"],["18618619801800860293100562626665788283982220970079180211772117724230042691644","16485445897871125089019992480705046762625834833127069583540142052412362125759"],["728734970051034373932155087421853367970506475768945356337636177952464491515","19874414394774655934054158924840113831815151748236755944722299042615661226727"],["4982235704778685879798879975343053082134883439322446475849768090883336820141","19066410745804941559071073296947399846712026275819641747472494392947862151201"],["27536417149872079233117022718870609306112283548941291783219918337535538802374","19670201835184023090550887206975148846650753088951775120360068033184125778684"],["11455318649631660589902044702143820184947086752422181300889105397921076147873","13919190715481934471765552022529081232983597721368014844585436526490678069325"],["25325257417200253492834970828622312689746712481824995393723058816287842585184","5236600332173116171410994262899524575767121093165121869654491230695039982221"],["26193604228617741828489193508429386693368654971191051922103820533326330707508","25980434512352088675997068264297727570811555484852275126042835147517959750592"],["25077202503921160560739347766602751356200889061477455695781760552445169361265","686484737329675902609644285740600384663210465060225541191825665860078640135"],["4154081322363248297095703332424599777951382995534574897181425012547472855221","22147660364600873130451675395639476351582607654234695394658034364283541709902"],["1555172178022810006095093565461469214213478928592086009513091528422115316755","24742678398180803154626027810792807727721234689683609829366956879720845021529"],["17553530690184576934372505665964428079385459687554680331668312403475131877972","15165332598640874089622061907345810633040234925599306237641890584048964483478"],["14193367470086614457049633170656975351354537260719447473943839926576182763449","11405232184635877095413971496443761319375751656686279995813837432924446677898"],["9104434931776614650399487486549143394076866304413212959958752051384385531901","2109616497887526021739189268327183909832854310594695668363393824866590917271"],["3848148840822637533318260452145684440031570484649304483183224995731481610436","17690616445043377842691294427733903731570102208872626646521595544861166725073"],["2604229647444054854640165139718128776640098570605982462541773011646726341309","16467768455549368808591468875086890831474855898556329358712621529628396939914"],["13106994824392812917924248088255399745033371782536356701000465108514092375344","4638301617936285366345128061025691358895001895695895956586668544158294024940"],["17381683468211864332875025454975789988594248779861791140382608594635821393823","20307364448682594458262595712651510590366719328912734810092992772957755178103"],["12641746954255412245437125738690498629306533383267759487491854265377112094829","13526655261257571098056068610535061240790500859667806649575481923670108906764"],["817073307162971159780527990370085473459481213960685589082599526998804099805","2104008690621626024994347351303592183359978749863429110303803155029478304143"],["1646266546857652918675784226606562876601859274373522300535712600860468988464","341066115067800109650705716795809651267225990822063961455848944603391403828"],["23891644353442540376590911840908157556037721194626487464000575758767468322526","20988577186342389466500231054250946123889848043929370323327262857301111607784"],["1341289776886009344098840243767200491089497806585939940002881827622094064339","16153015985617307922023243125298012494236730083099122739749928092659100112886"],["1309691885278192416461326090021853039150374741627253620746784442976317371618","25143839961646305645866850575973392548128112427076712694991317717449068110052"],["17774750152625610728814196015473934519223509865106589122337672912713725262820","19083731874812930593158934766459033539077548831851526019698753353244257996646"],["15492651576481223422312967410594857857778542025566918180424173837955154880342","14452862394911765180871984578617698272222281849366937379060416705716500796812"],["9859331787025084246705192603844431358253190881619631181762768434828888481629","16460539205860021985031111165532804625523590335949360028757476913884331364935"],["12754784815106931777391305327222607984646501642282616307691312462207873666631","1396905747029464792729139521555030656048819071990659935284237679699616499590"],["21590595781699578732633699806319146562434585902371250342035779321225459682915","2536078399607137800373537532660093870420124652179018878142570530945515118408"],["28382456354771795841365670441217415906261235186991295708211591679221545350228","4499942876969442316940944678500840982448823767898325824705696146219142062890"],["16319223223554580593885902767677283946625417485968793866214961263741170682095","17377545341776849602231479795276252331942664541781772525584746729268459074991"],["6327546139935074390692303489991312963062394856871373903888043158087407096698","17820631792035615452681693646857967916110362132520279372850046082924552108616"],["7481998892964519785391420327670774663693823663429051014677218742301169231552","12218307972710155163455502978860787344681299167834897905019844414226787067568"],["25661977734836305026105559909399949076414646942173789561792648679350094036437","26287148341377506963383235796294222689365870612473084618736515392840948577111"],["8006136647658205167360457429721024605374412078973320496875513625454688544198","6556516475202865540207426898327389528746948523591086553046230701525573653816"],["6355818953735762534987663898378617447630823704786171668768434233105497520978","24552465836229199858662508149410877838800044685924212751975450507779736441902"],["18332500490801692451697261680455195340273877746991146882549579069360925168960","4089688676759814616545986355219272940431421202543552364992035103398944418058"],["2236418137650862238457352176411466123772040539715000157109278473963281585971","27745471421586919357909198506217214144595586764594395560383092129186555758652"],["21596655499892660360003031390253644153615827309101581747100454884060099714069","1306689937427709526361804409757321831542321954347031239322003584713738191562"],["2200275133784215280159051647278377409924042408186252941252611255607033697172","18172635316570765369499865398877020374771709925278542651214825902393537744113"],["3104603864917593345702407417475321098741310723228230525908432304924898026889","28567159256702248234277724743924941777584215187850668297271087490134853800063"],["669962804333500981153974675741953003432784628958212168182019521517652140558","3418106662556084994170656428720473435703632228644018129200356893535194811215"],["17570626332194004238368149382414564502954241422750585782700392720261191938027","8082858716707235373139660124912227307579486814642768941870122690647495446613"],["4123378081477247788401525315796753791093561812433258697999528759268046104554","19908022635420490188522866966862470528998459996700346248243461465115274809547"],["26811358427444014366726962371922370331495186735282113700744485855855607006828","20469113089378553529444096998219448718287299435312476652763076632023487428331"],["24118114597261517243438961421462765113630349769324625188429171533477890131123","573642364328090990453715794472931915374306451984905777670444780193757056343"],["268354141388860667307008451948249173332446255477809414242678709065054921867","21662578258120367171444493339255829885065277688193251644219836575226376743811"],["10688882839209620153724184448762629293749062965795659946695963870983900632774","8200720438202929065699299276793599742662151982001163153857432572110957556604"],["4719396841763636395503620581190068983117479799251466580167589002312098369395","976181950505476041035818234428197417469522429075691290088307100938618013966"],["4639109305389372422058729579785840142565646600647996402534777715636385697953","22771155364454854383643737278807007452125431797408509428090460029490663670258"],["27163205771876165693826981295690905929710786229298416741567144458349572864337","15668429083155610516735491799460155994361229505079639159085428392886514238197"],["13323103806192757126651916931715111805653033200534143022386446191207225782655","5375489507175637637720227007096834039728000955519427663090115762489343756959"],["20827030217991465392601418349128698734009409942817616805767328683763194198351","22337588650409641915880835395231114656003422910222362394391334905568947726815"],["3473272295319267653720112378813255765786350013694038359680289543495067942597","2765661444838869341078793790372582289845135046476778885667638650290390884899"],["17081785913918641904114228608591529423977434976196164681279352672893386523567","22290426276093109653246619482980430779362590175617166374998019497395924980514"],["7220788579760505936751501301991993199969465394311480807781733924213655888510","12371741839214757412531844988196655333022847653968197701337115494550530765691"],["12998375363771617945729525429754324114582007505934735642538789687833371061851","19322675273181056105546441541816506986528790474442209589431263683956009940576"],["18368695267272203053277505646068140444563286196459657233706228638403052520523","27522300389449412286807184789541261358386758734445017004250490025866901363579"],["4278044020202611674905659390210654292087531017481099993776177323467993191789","8729041943532012806624208332570601982498201345933487596270269928291285676124"],["8104680357027688348717172005659538779362393590815331959322151352156250379115","15671154686723871912598131739245484962755714570220751529852756498575019221151"],["10305148992540320902159278029564527445934001843904001955384172109062515045470","16470794708344979567211703144836811002658858999537652080300595556759097884934"],["20325089218696647864838706483918196308879161008364930246335939321893974915292","21776655465646875674731068466114185921830875412870528546952833933065919565942"],["27649735295337955211180120950353812763118067710919042125546501008925030856493","25490677587660709362240279677879530491799579849747064312065067373670972189950"],["24392764348002212353255270534935700196652861153969027585374573735485859775554","19940012136862928977169534672502835073824398187177602469804960230470332608760"],["1016600101311338545376406653549084458472534556295564694530585028200157781840","14829510753722409697467809720086059830807648016852807610610433320200329589315"],["7921133999021505051608040642655474279556261538020165197867234859142852990845","16562996768290202182344343761719600200454103497045032952467072949381453364742"],["1238596661028296843012485440651151183701988153994213675939556643596835098541","10067005314253045948917818816290147618939261988026294805518515824373430547962"],["1682009694169709991195701279709226332705909469798060498317646932535947050994","16095868455636859301638704507419654077171926979848737176012956319355947008419"],["49690164406962201694815855574383135869627023027837905465239138280955658862","4148089947800750140250676439197700972557075585875075820767070850397370357217"],["14799205751145120310825249675350266884301429938704323542605497449714523544434","20590269334571630735385521508263069146853362596752501301550776505725896267847"],["18055286446291750802945018919056218067742767875800570100285446463722909689979","23666757927040855214127113234785713375033363179878095977976770364828031280971"],["21595882440393769286480453051492159939545763863622033999095209846463545105390","3342075428902164174057626712203853182801822462072462456158713746022985080545"],["24081950927347787872289498042827614965229289504404981474220138052778148975768","7718426364720728047259914218358387950246952255935261794286153983858699911461"],["21495571932536997129395654555488015592656739341600819929470569185132295236170","16143522898432941465920516644094394546714202586797076643139583273528527847008"],["22330060660925610983003997335350756949260159383982773627886706587926329820110","17230189691034352053378143918074365939656652355922074195829003836898702518832"],["16348872008123939782901044615126068306521300779311919462309631045867866068038","27734794508303587881492373954231080547745002481544956839601826308195498247738"],["16822480629258490916911850788946249155670837961818766282770903702482046665238","9155431049113801058335541588457059577239567379296973495139454805325373232391"],["15458554592906955738852342875674615299661574365429086183857396541063694603397","13615829173665195145085147385752557741537569409407384960283036758887208166529"],["24903360900175323107869733245388669883179581516706851240962942587977659364249","21752792587626642812991048217366553919749909351700870419054281950394855525850"],["11276416984838349045299306338904432324467644600548546231379419283385973258140","7508893213744606394016709144509026444946339847236590219762572692109340742488"],["13021574875221719437003428357115818186779546081565327640138005129087504700928","22801243645544459166529736979722363809642464356093144333192806958198102895195"],["17103492546992799197843455046497781247730197145783214983543858141922811093780","15779957461276098159082342798661916330290169849253493239259081689656940857801"],["22618476505553877890830985884317708907338767384805865534400598369483498217056","21495662368835015140186421156438288390067633459003814019856109012338251810539"],["16724896760012029857630904504542582005937927864162734952795330263791837005827","171866540079288687553148963852285449376564864487454312958950101993138788774"],["20660040569904091153004329345885704845120943738168303519176970951885714908062","22513493493045558575201679769153295849090644612927273201880463595214380803249"],["685894289396044989195950111941472665178036266458160890466104120425221506490","7734854475137307200767042414051895895934757912853060669015748362000381842713"],["2524072338907139831928688567235292330094546877015636002974785467115489266618","23518863514199264519693441829614831087311455936463305193504961449486788292989"],["6002885413465981790592015159488491482685176822534011443815984686840594692823","22331893420324585700708493065112493700380159904763390641198095810829382797660"],["17847862113707707950946057919204222949808047944180264011618053066638953277426","650824929786263990556346386525262316245478618848056002402079910530896201906"],["13255483880575627466307969635061642204072588353671000537910792543885456297576","22322246626246585117353479105249937162938505579225547966697375376338213218660"],["20924737717659594873454106865206088794935793284301128643379990036169872312414","9454275283126845489133523436937525446603255792014273402703931980344850300910"],["5554815544147735912786597758555946569803633055582325988652214078626127712139","16838238791952707577404584683379833993756413510587247941405061058533292411776"],["19035610646969015583217241403241578810720310580286300974880259473546222523990","11105161302289725190760816991667038165264139019470927933110414100445620225278"],["20362741374006708869313066636232426827600794883812923282707572807611857331636","17310815281191634892363652254870665787512906357131603305520958050809981211554"],["20067025004011018505100203433858027385145579311659138974392822982624262599908","23705348829037759541091390793712739434863524463247413151329079246347743230511"],["28828758607808245464982195317686180667331702621219981404075675837167562999306","22675862576644068025299509238936113865411075938917522699900552330553354856480"],["7687377723916964359297797596226473637253533239734519724924184408967164274827","17902783393837769040328989841787926912697768675263256425490654183154894227936"],["11410202329445069113029660890036933755783845421085136718441872900625218206113","24071131574354118373224250904882744669541444710597870534199309851730212230693"],["25130417036678967596166080879348348268720708268633482423632941246471685931466","20941522328065114446939489762401328020548013552618950933915279350833564660974"],["3622066486120010762616754982438907389900050741064894632362149840704738396913","22083100182382855844697313418594946584708258615819997506836268982311933362900"],["15231747648218369045711680680689914305450816130835943754005255287432697703308","21813391379980443410523812819033831396234479278755241278404031710887833576498"],["10966723920883575341001023162270009244375018232274706458430968946623909097177","24356249045897246581596625845058072381183620427200379953232384766905709858116"],["3825699409517254847584796136307417639877390459793910399992913526780691076973","18609513166712890960794351411543462108292880654745166035791456869754121586301"],["7649705565096502965748353017201382077366780180293411733569858193208293168983","11058374526021784867624508031415573612458921921353861787007071511705704744684"],["21357601728566567515819906866678359344699116808875026557447662057579539974219","12426124740988326761770424555058697079504314078015173110578927969700045732325"],["10304123359562215297571181338557513834872765689497456403596287693786581421602","13836951150922289814344159937413081061876792881084972776836803634188211101716"],["13747670732681715717084985992987303746838017364831484086067948438423409693948","3152890095998553512593289333484067509625837796918721758377277207198008263062"],["22667841089255920692865777065787644339428190916435479850404441346188939367611","27583078128510759005400911465974274261048130646304709796037895228272634914965"],["18730244895103749832571243598693322424708250727483061060014084283116871718369","15850545247354475236151410264958280206570748397998421081688435785312412055323"],["17772647438900670110420791341230759170195078180691764770509351088033691715077","22355725534854879411461617883360439536656988397680425354032424074806683420648"],["18147625655918831037144947199698236478708349575186173503007313554619475548253","20100703096115581903013270577800619994864024368752752004251278908405278546175"],["2110107609507535578714864299807067952150151113409387808804523232706577495033","3267588001824940245770025806851597636992791291850721610196218341753927866950"],["12295548882591771876258614654436310610082231495255738398383853585454869260494","23931606267355838688899907782953170366060362986340911384437927627676309094117"],["8565066825988914059065426791604721741416843619953984992402636814392542158180","26913396214066894565000675093611115486645674047808894172329858714923499804851"],["20333928853558657436628517632874172144409836094242927103439155628223865544285","1087058235056840460474532277036220315196497551469705739352576309560164315627"],["12585184942018598104331732736655308832756151802925290863762887594730417426971","21796563252496861536844102693043038512288062746880268164328092130614877665130"],["1242952193909146282251527051231646039305608430127770865530943464808620422265","23055075562322550483518620252985825973619610660608400426329289151743889058953"],["15019152057430532771624839191563003508410986055467933644425167894029704472947","7704800126661471165022110291808521979793877668251493096893766349483456795692"],["15264024943169189477041051316018197718497248000730684706097877151455908395555","27904684544184901967841770343085237839583870835190868923353915943467117494300"],["17051300200116095909223620820710333047876722776370699511835180101468344677743","25437564455858834240357055880197731852943563681030587107095136602742723017218"],["4952202787572858627307969938473579175094885713932424431489153384274251832570","26984503233054586355445371683167137585170646564130673620940260912115286090999"],["18163522493804402032651989379566098510685390352460113419540565769208621865858","6464774957067619465285871460171393395517568948042928301677109506773591266083"],["21332971039138489680817544816378710057256156372982266472091648041647106314479","11362905638596031031674485582553586988992220193574118909585401800220535706231"],["22082878883077278344632520922479381897930180853268518369335293662894404775677","13206330839593688404216320745267984636367857202660347509476089773356194803735"],["26610035058537174022309550699388301694897500081894342791979503369297925371332","12805292208619440884401508702236924613610808996063525635387041724664430469637"],["3002250157540224909364122264315831987441486490122666856149553579023844756333","6095616482675735955796951676794222875822257048121005019416362516162942147709"],["1788643920435356433414674851212731786152710348719474778575571845897961695121","17566130128670290570864764906158943203403217023137861324453921962666110197164"],["529943963374589245050917573137916292351164576969281980679694227331435969299","4426219911264825653660364427210898068006367648612910422360142833007437066406"],["24324988588168538864107009324269023129310864433869789504488794495056055834899","26363682587983762901986627720211567366086963219551851734271985235502596752137"],["4740776470654228146374206410305262794189013870635558209735746405326098664505","16213569339144778910782702794447318107590995277006297157992979570662034007555"],["20493327105888051621706166742609833398794588096740502363598357756757607090305","20362728049387719477059161882928636131174281747701611005297806612355707657878"],["14733376614765896285508873104690512068518119406141286410357475941251702117947","21335425613353206346599793060935369443646521140835195550850153741778525628855"],["27667052391723033518368680350816752510389806512553734228604073470051655241469","20375729254564488141108921270550991470620135621626787090595612932552111697275"],["2255128038690481733137784490051358248532058087971271360047471104975118763843","11090090975791798609481483681371651370614327521558190692171641854703516942494"],["14650866588268108196239002012229104987871682184685722647431895698967231907829","6835625863687173925836810879108375122551231011379858840069340376996903257312"],["20194552107067067051567027912729858024425120027257999773724546826425168799831","21567702017714482408455228479191489831784879096002389134700186889641980187657"],["19548820938869242586489385339699159849171297838035906812748823591967303715566","14376193148576623043864129974980970025979031843348908986555567341695285679733"],["3013896246307298272342945159678381640774259649716566846107165669899748062816","3305557308440963031940987796871913801057416174399732822945597400161748222757"],["2087953269974499785471089417246013410120669669225080046142830517816777444912","28226764828902960860683740544580542402364400663497886080940388137570324941115"],["24749382974292300182888185015828239696025281347823917652362581453712212628393","4401684814554722711109659029092924583563047170084094484620738960608795749013"],["18780450403428008706674776370010513046653353434292206716681544048186174238754","1966308239816364380519573331972827851307398737469136978899040169669054905526"],["28154420655592703067511014525378846869619946471403297040291416082417201865730","9500354296247953152385465533170759199082313346439717779100646309363867394407"],["25525442721533927486713503308716439584699284555300161981154703401214395426946","11750527620464554553556037923809845559474323824493743742360393764984397858241"],["27311238034796160970761988737424750987531848856713457751527267463052403933999","11947306137610352148952141726418477309223045609713379582725648108603033739242"],["13271010862462669703515259819427207038433402136249981625381064843533701243152","5711983186225931435149314228756197076201877812676477396015089398764982870334"],["9204224720591303616305622386182793876304945064159203078323467802939377589522","23766854499293485829243331203510998434216993526026416890476963868245804849071"],["9231611144780463187075991925005737719957363465625498544741731499506614275935","5613252880281070164007281126520570847289061758513802714697572528139245773298"],["25405923285687029630772843023978413868781541673072104762685539060212551562771","11207957421608550882347178907897182193075027746926059156699485738299966716669"],["7336360771175295588054834201110587531972445944077229855260234521540912760588","9698188835088186053108735149950932510565948079551664936356064892937490265416"],["10240973304883883280223701015342966269551649347505704203974292949505442514158","4954352966332586052494862763917881042609151373852737698953033715560205081064"],["20566443019437314019320359703371182776887060271281256167447661816343254667273","11102475244469765546933723860747658575713274192768087096549719082214273353090"],["13809404410190203575183507561949738000677353421267468726603790096305208368008","10003615708070510945107712738592907510090761658811700924878165571418451832627"],["3496032488388406731862874544369126993247878658128166006815955559573455326427","13880406989363198641809290039971043124526660389215277055972649095561770718109"],["21993806989403504515752311940339520653926238871254075624979931254822762680739","11178214196475853787365155982799792747002497548385213651727367766916929280457"],["16606966665748374972706178861159479166253039458682531917019113840558371048340","4453211457725980218955005308018985121805737414187485963121175711025715355284"],["7467719257421303359144824293147832607406420066193837487987489706431857624906","6135571152549414317077461922178492964561308096651250081186204531926520747069"],["7099239223836459818963252024955921226759994895520822976453963190343426460308","13655932709156216612119422973536267409122252843656786479115299434230039928985"],["14390268602129971195752744036314771586149505214768685733516311916486981552501","8738677019994010051341444018224614944871808941115351901210229834573764049452"],["16242578451488208862242925931680955046162573764414635628648322034992778177756","5425149627707369819789061011586328765888942673743867335889136437762510017014"],["7432105663866275937169875317727657663287919277273560556290120525058587758713","22221568693525990023925068224902123339257397609884492528349260838214067366296"],["8840820820330389647966433473935485176873526934548686125036078042925372418614","12540804301596919003888037127228367517834502984070360448181179486172502783651"],["27577722752363743963653907056933572883357703839704873493342867098342475584636","15455268843632985231342008034523911005016350885105039537402349204400570603364"],["21526013287496673610649690771760828612991907559035251394288071788379530266032","16433730970445391080290672409327483462455358004620044847106870925320628261879"],["4436315069667601995948961092619901188340160874868660457108689679153809328907","6494038228033190354763888119985026549577541586330870079353468115413863401414"],["4355892317741081964043690830504932773242782525883148194822367142217683647253","24787202783202668019608856735099974099126977716810391504352052284140048991471"],["111206226344621759674043954063296073943866645629424074087684312432625319429","28035830761045856586653286743232888558660293540662919994802408575650976729684"],["27714257441544762450063810754794365772877658250899514858346872368074619704199","17100879066653264976663807006011991954238007135625953419984817007571438501105"],["12869509133440400351143416265395812120685140468184868796636859966987839189480","13355896919306746273953012856140793570568505592682652230345062182211542877582"],["21151626482548895016290666761598831518612357319559808793474120328595641188657","13691569454591011373040479373577011768890044058681786832115002386760608110494"],["12977761691630787853137393035104061152827938872652172129182299668550800474248","20811165025942472406166341045565110380246979906252120619872592081653494785334"],["7978970697446083543301450427855686094101819832940200578854307247623489315778","26648406568336605650859723821580062713990041943089764836617594277944984394067"],["27689732692082461953328778467024514626924897410581549693213377099333076733183","13690225115422188438735197569711223554698164827651343916983992711994718832095"],["27408765870496447261115199167221173212769798354303119884853993308930088505099","7896329348546934832002042225712782032425930450827956644281002408312357359887"],["7246454867137277077422623487934628948924765477703239098280350144083539586058","15447723545626194849245604575952915366958190967240190705049255458951118514426"],["2948943672508166537294919154656589476195031225723348167457834969468488786480","28756882166953383734364853310096301496091120990633945391001070299358372812302"],["16557230089487086061227086657466733959412551771582393244189452848469026977758","13598813043664134033238415177440425848003745572749533086495592294172193302919"],["13353591191671277814010529291321657857638580917071917674402864525391488012050","22715724448874881510402114815582269396235622623437228920519449364597445545126"],["17377668903800550640490494690095012268162167788960865738823669516455288756280","24877033153007619756017664702726345176697261676579146683078111852482904561429"],["24009606791421778599803606737068148196086140952526556843283120579863443769878","5476466535242046013021554041358927603248697982778975238406835656994400165919"],["25980991242141224235697949568361378308096845427030928932877952304071900070463","19652755288408779062798501737959588649797975707172266948440332545764709225871"],["975362913236701993782361448444672663208877210007834556135888990957209318049","23094143949987216678311651523909361812075676753934252719051061542426654388471"],["7601779653403721499050434625802215522525829415397208373145932397899476895745","2979614204293297546677124771484785071592240122452741374041828949193862390275"],["21924690651476806730698866144533478113803229389881668171845243504652688321782","28461499829870103144900931773158961753217594961470546096574252525466059740298"],["19582706331437727597524587042455335900358739120170090186343439280509949841700","9975935832047061876668615976884726792012072080765209416684949256736196213876"],["9001026332531096920060087031569332189572619565227354198906571583105486120094","14232688746834381310964134173862675799510298745018293132516766116218500448354"],["1737485816478258310824401646698163582240181570325135658342145404354483528897","23632248730242682928415556331210610388911167947359584858461864387678323563398"],["27319081740193866382547492503682499733608736169208300199623823992376085623917","18969468572486783498393956439788540919881799486745880626264975187697446675729"],["622453131058814464425422124474322142897833237851518505264302131200407292630","19608707227960735770012551931212490018660334034062235142360063188992050124971"],["23929940006704766019320614123265799598349788517177151411508083391220515749726","15272399489077342664347485698545673578429749456463167364047470731142582413117"],["4681519440589512879630590120390224193432573212341403966812793057880975208525","3628404255102056630955812398070647035770930498227337013618601696244951686501"],["13637235119124484818293773523662617873693210956833495881045078377830806522965","9466393963953148474049598159351577561989295572782024041521699236864707180421"],["19340826738987575287534571044003144173630099329483320301876182083530746685625","17537163142361577456533709524805610641334018986979397917154159180014615234330"],["24576409041158614045115254038946491111899806852201542200711028291915455517224","1041183164042774266223501589678484380555831688625613175918390416643672925652"],["27233013179171399410300470632593951589177154549808929801882036884905790201497","1027716193541508691181125121758132596139439607978046920189320786575142095390"],["428239696801005439262157243304903851993016390810724915572367089554446275797","12225981315143767206618749230604285664599943719574119067432739069147599637872"],["28000939314750854630447733917829331761202908540739036185076655810665022305240","19197169739065989403462425551319627268870369834648378485508989970456755206213"],["7065399895705512338631384446266334039052687151822723748580210555453186330345","8703191150167718256602997260011869692699600393142488392636689285616174274849"],["12253785759789737882524501257449643782659870133876042609183550731756463216674","15502668409492075883383280816173140359869733096912425576709591007832428871562"],["12742093252585811589266955554448273283367461909285722447932983907924296112385","6098202144581372422596616731298559142788553401364270527133262695647198093380"],["11586624323076034578669171977551121321938032653785425198414569707581710983686","10855589043311920245356167112024785145536079660301683744246487223407911598580"],["11340864498958780759661039442629648081629767486196029579938796402868473124628","20756783323618825612193755506578472146206850076867990286888604659361861820498"],["23194428591521351098911843733814296602587079665735319950559284226772101710075","27276362795760905564371651460153602783163969793095571889008943512763667564803"],["14986049102826691920660469563204759600814281802058758263759987971103154260887","11970328528434711179798643067680120066245612692611614715829015170172435929050"],["42473596820579769879251682915615485304506595731568574127878564581052546816","9583771902064886981342054563688143416913474516820520373656483941434115196289"],["817609224198282752498774678878680174656693679569369705559527987636937254929","26161222564502610970669491860507624326598393318396577527289357929863559625342"],["26985033375433309649341329403532256388024452265223634428179612195606407013034","23058139994890537838897424952473750078322040641067645229682932180900727306085"],["4429219021843256332240533166218227817744539795751606916319204046523974253600","27785146475740552786974135977057667909248723426806005255766793935146197970150"],["4261094262264029191951317887196684874340142263206071065260843556906455683836","21357930445887027617399639663323879855142765680159704924624001707291205353412"],["23799149554992098060245912065503526789756722253626649809141225690827660958244","25641065811710736416917165245994582841099928716358329451988299850466100449704"],["2881519972554447277015349418418907768866792817588128330299862696565379595581","27971026337718060594639271040317939278404164595081502780710401095533434265227"],["2412074218421583642203300722384087748120156806810414830056448862021733072661","5700885784933451477341947862664291934704932770093030998448456958728888037142"],["10932427504817206198480481468105446275517956463782663983215568742852212791725","20736522121504730926478081473067596826064735841624093701697206216125444215875"],["6592378215239872868279708468515082525073550096038574241440949457117152235444","4147848816826396034920173386906929925981653896870032340021075591254477497652"],["14406755254249290528846903752717511127528694987757336328861499746075617172689","11106846410134096849088080893044373546324670415218733996353645365363161706140"],["4604338518053741327331658098687211857016053239181322743785831843157773893695","2655245556206857372114833964342238449620739263735235306359883087359746601568"],["12339181085535560860664980546157775966879100859255098194458572865563171019042","4402227662327045935670968920867962854148352756666037967111152789223478902055"],["15097090011122026119834619405035532674995341727287142397264439979103008908874","27975448320401542495924903237304631230836929115198587743460520130179297417172"],["3822550481571393854050639169820250041161899948296634170458943717640036073685","18119929588390679856827307674871007454520967003791896740861194749976323019703"],["16009274672057281803981878247560656116355158091151131880425209067864012086429","26177778616697831629034192051610119399138205244111583731317651514322610898672"],["9255197266689260342807918277381114045882233665590664388554128555872184678334","21434046137241055809353034086380317897335633276224655068235428805575378720594"],["11297818829188007191560807002356213048930037887861425522198830347305431139476","8561123658888009489262718000944067131002231232133257543420423907694846974444"],["8981611653089242682864686663335548815541583907990415770654476385076199434744","7064821582185919031388692674088876206644468103069923505131696287607473966109"],["4474004568581578021750476859659700669565667702534126582437977620523345211060","13287075340234800639939135964295579278047889568830671077794099406417145843898"],["13237336103877632510832616387946412319402095500659286614723156525909978159799","18935805224740354043211380342120849463140766714037783066063433983560689338029"],["27895401731788369173934960902261440754181951121601473622369150964733798874711","3427111982504844603717227982316930127884978169518388627823611759994293242381"],["1146317830560382957351355524943852889643420646746590721376418942809214411830","3579637120921389726193585555871445099093258411207337405650871730131636032845"],["25326110693426747947961732598595081145748938747008666347148596532749758561757","7910522640616605456202996277920400905118076586958805732631752886735137298366"],["18380429055095825450370131457396154657756762230102732641795867529675101903450","10743924219053417950354764464968874986494763135050406838113640806428712474052"],["24310863114558191689330469208122577210104045538397177361641104346707138028366","24515280186485774699876625248755149046758534629299477722232209578748330357550"],["7004109551177755473436715242770073517834413042860812128511922612237616505915","4934798089830704283083798713326894841533421120660435896214548577882582906516"],["11265652977934042356078705633715734424993269368148714392495047009011698359447","6104250778296450930420550319712904770779715793483495698576464901462916963349"],["5544198469089618824687442446529157254944699429526513123225557800406007242557","8337761978221952701006847287935242251469320264379484859401870132136120667403"],["18055185700486510707251363806169176763655559905779416959744775560075229776331","3852727879973732506975874738982828504514593108485496319430341164626042462781"],["10941348382464370076544394285028981385356743270587020663397786988704268753881","3707115760305847163351793848727491096663060633275758397168672585124976905163"],["19482849015345578295254111655685592156818138503863233793106776693726147194382","26440410144939535677772082992796722187095826176790073949338312104772878496636"],["1125045515459349604085366346999940157750286692689066720014054814863082597197","6188090427342045308709789326441092802385804041245458853323242504734282340652"],["22752847992104882053839364989544381871709144359244977299886270202117362446419","4529021248708815617382378643381967773235879552831928380537930449585922317549"],["13333046874740866120986076868123532434413426506347046837012634991878584520694","19181240782916717925052187856723784027594067034461786247694485390931483377570"],["21973296175231960006470841706841551286175194442767559573688490975757512243927","22876405778601577784826910898834205470966675828212371529182865143014618219456"],["7798019890234966483082523704454359589178423430421418303633164315315657088601","19174462041646499553780747551879528676943160711535820784655940198350749859820"],["22384622360764596908038440662167666760072848549221764091908761722567410076038","2642856143322840161128645165365151643021341553929355749310300819425955871224"],["8078917488144968032059271314086753672540879563221834796908074735193896793274","19191027320751391860467963175479669378839814398554033143338791043827094682246"],["12672002764082923684876817181752357904255093969201113383858151897185800772224","23038597012164494256910280347956638303819847769978477435975188490319985263729"],["5691782993145469150283424675616038446808593076887514365252481689189749273971","5808310496296117889766536447567673021371698614831945058969433959673243341650"],["25372863703383057718404697644053334303247258725861652513555682527050564236294","10459953807469958162424872183400905480609681431768408227630538825878147557820"],["13778651548459828609539297845156771490176885020323528217230504998980224323958","483543940679809270659819010001134634248595026533003879485010366739937016012"],["969613964484630902595703089142816998361211560837633209989293870160116209583","3469721848598466897421655741617937988410090533517219701891343484460808853716"],["19219956366889819698585946468632009647151046954021929708313272419779187799369","15590157438296060971834461768249606912417726755013552513158154464985421734331"],["13470058326740493252651163334988809460517044341342832056802085116476574930278","4222378882513502154104677319805657020119703354338633802955522076085910389867"],["5762702499624099082780920516746255756614435157591071771243238187789760398586","23213211946012041119556004111931971146144264504210143200910147671026068741243"],["22172795367081492000682439054656604359525249785581631186735367913078786110494","4042239586152352624903295198324765089728000356738150111936882960728988064088"],["7671473383327034955482123347300769964095824517397612879053829263591033408712","14868135090377638019046424889808411237220240261129741035931654841893598950423"],["2539145286352014752927281673108114362576871924326801881897884889050279782040","4366321354135094649026235872276813983437571658453418499791304374755679934314"],["28113582284326192962281101468557245456971008328040140153724567371077052605920","21215767362054156125672233799507546110063716047640753366973606273885474680051"],["20349464431916978021442379263702802767241427521646179579519996775509217067787","8686279054630610894928994769248398038643852974052497631256337055827464432542"],["7824654599984451754956659933133270720832063742335576282305973375197699355033","8181180736530873620443263629778492191117151180944084010390511417529628816620"],["20246029426765505796448369771452699110517428640963605597622241592065569766149","1853459488355340277489517399594104043459260140787894574241385835292677412554"],["28454982030276169953394082597731577444925798954097475104221905117057924107894","21640153358937268105186110502371216230202530698968634284000025792451229786251"],["28041840190701597671469468221632150272733372397868883079404503147725717570159","2150480570801844334779729488273376782496414054633298025875734574462871182294"],["6561033423989512685904100325373197928036391751644424980646860548985763721502","25841375401933942204244506250828056092613102966099694246609669983414583677378"],["18562337752339640811178625584302089326508016737025924451173433142506238861656","27582862816823318646557419365975969159941243902640651295769205363069299382327"],["5946584132595385702016156862845845828620937800176251763079703508788800206896","8028007072253873705952594467823801554020808256939930325882295207120111894425"],["15331336479768262632011142581521910427311942953391438691258772761146918077469","28182805522690321753027978935232607286861822140652160166641033689505295448583"],["16232018710443878680400608175014224724592354666281810310791112826036343955717","1519608882952119268211524725253720571579933409927423617976712007617328655358"],["2089453999591226884527640170693530533999211230029053574441017720385592037151","2163879007653848749357599723857286882479776437891729491110367698829929810703"],["10825346451315161508483260060521655242442542137383629261595200757158240907340","22419903774658907038229692658734708889749266128398047928532404435956181816367"],["9914673569464427043101628426430834597219097081649754285120834149304362749735","20323866772606055210507131845742570120867145792798992882259012854879515059253"],["15602459062941281230996651167596563320523218338681214093204587718412500560730","19945996247618793817369623927026684455209152843244817413272618493927098069286"],["23025103347758482754809259618014521460456141723868065084212472267579590152466","27073115913075346539339684429423348646325900396787416443137995403438860498935"],["1240653975692042982084068772005925782925974253806711585299531392408568163048","6150851371210151345480236877172576424184707792466156977201205596140023292602"],["12074722101989666280312317808977689818069454280296886388588142928998125240758","25340466966734798207678181338680299390175927629797064956029028433181610395056"],["27037538053302126029568757594582413363825914748436025749059210550595472971315","4064757646460102947056785011330156559633023242897516432024092917082727173268"],["27944905675845631807319528978513650179799316355363820727634136356217626688362","5150780460433039688732406322160594383433402483930835216146085597816453725703"],["11137511455045130997868872084657507896595738068481050245016842188577017757549","8429936522858221259408218833659316298720511700456269305214746377385361881636"],["14595951469803276976541286042532937960888534866917469419154907236229344460425","28813854945708234868483196129666641548733728122021208411278682509415075980470"],["11466815233388692198019493109525518992156119488108131633222962726565158327148","22632826822339656972856979780619103166874196863123938459943908464116077306497"],["3643565234471350505723033510393989330759075606301649054675336607647495244922","5604621560386117199958226425274490635816764952485311039306967243993526664106"],["5219528571186599164713477352052865545443348066410878849600922029294096785005","18188913594677081522072217610707472162236663590000346517012140458670957426510"],["28857514970620637148598676938492561159211162295058003389804483478863734672208","11547100579263366495510604031072392988020729182100875103422424174947480303220"],["24872496126438177246000673928236090169609868072132200160099392073586110176395","5774400604225008876965463323029482049295193112584400805154721874943373177141"],["15819940169078975154349241464340416222056617625087650808326204777594359534789","22389397375716745599839118598611241833324003659569495488213736699335842113754"],["19755053643969715132847342241018742370938694381953756640809957397704518713805","677582137565967110704753089668817231456213831333349824984802507969255138771"],["23930090060630908999588065650223211891699549218304393716052242947961095361681","25008370086130354961667252823213098302518014709331222521386723763493942032119"],["2169109556786036457872163949300111773649634410935519751545022884285125874301","5921228107904749992782937824735323863547099949338590104439649090023739009106"],["25804809701246782043897404888412841771080165371741978336003661520326172100055","1426936956457761436034759271832326930793227920622996252195104471734368250681"],["13563870293297238888237482286890677804104034372370800636438958220999410779613","13000717587184691701414196802418375849285018797310453181770325305468226907189"],["3878791181758335448000456375063678040114863533890182573841675810364314401319","16669287676065287265635506748504202145911469990774108772549856552879945811209"],["27080678734483432406625915513894388295140515503244894825263073905906892311188","19243055541229906698072107291889081955200828684899720343826951326551475892368"],["8481361182080825237530671275529616438148118837129669629040572305027889772931","25236146636534299380935049245005480894473216958527001832281660601858780748368"],["19379737046994168588378782000092668018062551112385013099954741690210884040697","7945377453179586507500195232482519996348408918774266469019007522982593879347"],["8548715022590243916693471083185974344430835007447300717646718209915222645441","7738999677099798761723111050744960894271109095684700239551556092227147835984"],["3330253781138405812388585889047758096670673611637848547378284666697576386277","908233673196358538323432518053003113725717712924696527320187054629751690372"],["15096616310788902169818025255019762333375275246316224441201646518848907439128","7862830921489870042054940583392101121502618935124261753912361990889544416850"],["21442076369098743934549403257388308557484038617944828716056444458849902518781","13531040384148523019604271222081817675134143744048191611827353050691712767039"],["3440340434100712892085068944050494562130895628697046359189447508134634328682","12959681884810252799930680725769611831627303079759491022645605830236941097852"],["22087421868386350604240561515558206160871828879122558718884838179122170154951","10429750903820774243101169454602493501069953770117931637461780787883309832833"],["21358032119052528776208141587380250747556272779220644386136024877338050859150","13666845902142962288462526654464486322143954577295932560908071125021523962773"],["2149554109229833846797766802937534220439153144633234886919657068024905484683","28726114823218342165318935420699861124947344746015802951449437303777911122580"],["2665205503777080178726661921324424466068297549816926247997169754030555585431","16410050786779280356453613815998870412055167933422737486693588645079856250067"],["25643516203648114842835345717805059128264612685859286850313243733070890845221","2668387309832464937944824914320835166159106101045169963840424423308587534492"],["18576115503680135492322755726770647051466258837780968666894540121705636239981","24906886199056082693230181839008795207943552231932158314769794435798948257647"],["13671188086648343722742700979367812843685985446974068671791284761464534672342","5646356479245060632127996153927922612798187684621478846063644370386019183979"],["15240735916455244173662630059276672755469579346388144487737830882736162791892","2570508699441534293075527957043620308124855316836327808286423224362625946271"],["17113711571894353426817969582061644690454600161731880736204015040318396840269","27013218118089550959769481679684501512639552690990749460174890632405889578266"],["12329755677114239770863346889208643878390079184260614661275600415715188170452","21141544802999633855773580202872199718397010483362319328966265641999337847891"],["28165644302487133593542331357435580355236894387850336401076307423872083863939","22536767315589015432566509483750335099541104448420454973351951326397413530655"],["6286371120118910802497710726575751525652672428302371764256359388612264465514","3883695192670819752840439684977520060271302551502946679377683009109635048274"],["10300639435327770446321664523410395186494767613430288858858179339459822595645","17733618002899357587332356627572144702698987798047150393476473891031808462595"],["9285288744829326303802879818955559188078876422091166023099548616490445677735","28743596323848401784829761758869192920840911790685349769460699473955490150935"],["5851755046394524110521646769559132299638600996100576908426257832581688486885","2419059745296506227273181220597482061037958628602179838730173871081459478616"],["1775035321522836036229390756941042194158847496601361565348180401877358699797","8964178935063249385540968444961585009246292782773720225666224655964486237444"],["13979346455111328154794266392145418211698161359077548274079627820440488811342","1621053431951565137284367030389596082568551522244301594173687738918966140863"],["25870354705878835081948021471873741800244183655071548569629832734708187305798","24845456554502015192707707648354185020768399638976795352438386918576572674567"],["18131401994272054023469863580749205173739119600807972493527885649430706730974","2436391094082875986873398401860490987390284258111757769142697950311200427414"],["3717616313890595924954657856428604967098925940320866217803383978002750305343","1465948563069565677064872313144090797861602927257565515123205643115975759932"],["22076302840792841552316534669689947712842436585854538069958920511288680855718","2055579209952232079067730678158917342263627907475540115053469921762852027125"],["3517308458696764866408468993131873794094005514579186135025568413614122573002","4238395534756883648100968149293187421103341626279697977899080312399798497562"],["2146350234923669829598432603100866432858585043162717190601444290312737582097","21156290175550096453215853244569933217199255336126843531249771624787884493751"],["11153989635134482469796328121926669329736581321524481267118300058684446374101","3662292193892713300920649736147530188575248777213936235097741056109940502739"],["2252584557577236443639805459176461922269481345358632887730068314884916713842","28704006032278908533105222066107383840693594748674436887781748167225249176588"],["463667686278129215062237892865525264310452518670228875150645071707157215296","23298472017686155452419948407075395584866745072950774167836908529974234063100"],["27783924626394765667778583436885786808605438426996578125148157498540484945163","24118216694216602234096104723310421515710363641966350564220902069291367033762"],["5786782426765894758558078129192873155440373169763901420971772863925516276894","11783743745490132111789330703176971389501443819219208180007436263300097012351"],["23018715005391894491574207491124715997144071525857984377591287842107454619658","9367590833666322388801924669699907471566073222082783035863358413791982059982"],["9306515846800547325079480557316376283159575349429507376816389570683107071383","21699577860496495148538449507955518202794895440674077166964566744941720917200"],["19577148654234516345185097014946613874591837509455302585245662762815966938388","28721466107641102194494267378702809239826025864299217930835914612941027027865"],["12463563689452877843717394443355073938033281692323904385537012632898845701145","27241166722440712929787923674772214395670956371332702121166872674824664333365"],["9781336172830161622982919822511851651523409145953604242488657279633221370622","357706548213065864422980354693712289858429611076606648298011173870654488138"],["17886242648809471959801389603858354360544133525988215072008950606844184354714","23648117743574984742002880732501705831976069885622436162756088854320893049412"],["19918974245226548426658241879748058349720180227511851201690760919774400323924","4197217740377114163096710810061846915462628096274006463899505028629389024971"],["5755237961960059049844577387929338766606876151204105154969167276190864502670","17963004106257584065069278149337422621526875878014502214602323719381240683226"],["16022250950771684578561757812776570833253331518916751681586036814931333369665","24223769479496513718697531291822074088830711042217830125207226695309477693363"],["18744989591425186849151145176526763942834881032904281715669281904130366892289","21257437297476886659521824834049054890536731736779363892319645640010072491066"],["25832214389302678504030907314214524099332202737644719522396636605927653412049","27592048667213688317606335647659930704293831920287954767682148016882707158570"],["13128923507270754735646206252172085663163676748279488886525268659714628492954","17752222425771023141940539253717716872902120019562809804044023049440819357816"],["4649284255370652913731532636514931387987281282668769816611565461022157204332","9441877910107664793287253384412867247979157552055319069658084343451003308726"],["15579926283115156426844378955581646619285652380155548942644946571428146651002","6993747259386852667537906799863923923727537622101386086251084481182525007349"],["26114467529875250570727066205466780290763730821565725740837556386956078981963","11016683865850940976491518228082393380714796515512558600677431555968057124469"],["2299869548728031918045479867868852387161607456467991467671008542320574682708","18971648807888938888269325396483259268452098678238913853323534472525134303510"],["1637530192119364950755141953735827063226088805434767927728584907355142167228","5047455383139280626155663007683039629491497572508366655191232537635815444433"],["3662721400909006241528218704845244130713289075305682092320863959527058684677","26074499505035431360191510938243987277451923388750027225231156317191231488766"],["7055629727944744146559333600424884113456303994487838028346127843496767867917","5049760185885317528035993612980756776162439463695629683485736630541904519110"],["9055710693866199330361783550982160582067651927830687792824184258711561076018","17178224529898230491185599037397301508346865335309265157001265456882629823884"],["7462956885168499403702980965748797668629269513566024471562745258694708972962","1969471990318981962364873664692444880925699111481027873505889700513522129465"],["21514736751159698926086098672164672255392746739592732402086097993830378303063","8900154572398210795820296509324567035626379104896693264716589058921840202043"],["3489757159824776522073793439296590997580752478478903676990504181616819030591","25306167452574558448917534769621854584190611202292896401129142596685308409022"],["2171804774650719176363326485786626239328963161884480921115131123469143681521","22771571247044129635566205291574887884155972983498434151929303084712868182369"],["27769680781948545449742316543052215989997521282087450275088631605084309443527","13485142824331825320608369342257181042868824661528027139320943379070350681600"],["2173765997603396690589985339232955590942855413138311099715397049050138484600","9902626067503525084046827584425842219647989414678864923604610996291650951961"],["18695753478239404425977269952336193808968177048636550507986594116239983278192","12311689865905638868109287649257378694569746562125954292371360619188108922599"],["18075833961861151287170624315330582692454293393130791328512676803702139231787","21422172872650008512097928517793106650389225292883834764494855572734023391462"],["12359846199065502127729405262256301975207242496256698934915371605049438628107","22670723403854693205104632751584610853615701783987508148141443263966634535904"],["23520842526046287528365463626839403720135140316631301645065047521471568997642","3658718145784856490458470623308067478277511095840710507255362211567729823048"],["19444931208263514490474874483056697278489187808001085066819198898847970554982","7285831557294214453481656915929291864394305555337499844728869865130414401573"],["28595837699003813197460816391945096866214756218786741461106478416281934041055","4956005352999563327071164515825559873899575176001965507171495255251003738532"],["20886269944626290334725466491433358541232854765043714112321222602723983809060","23785487417445537247015199853838827019244498842408961379311311992701525873918"],["14551010002541091688318430671204764345732015147908409718144176264878426926519","26460839519030415035203091058627803443488077344357915229587141243190770348372"],["19304685389075440684342270874592816534931179217808788066714557604305830365620","556983073826859479939813979127895786886311216758020510576627266291900777834"],["5565105562779651284988875162578215493743897498853933512315223750637191662136","4803072109732355976916446092824043656720235207878265925111858415982666547275"],["5843155710549923141829880563694867676205473897396771288127365908138359162958","1657494116609230886967946189264329021290495425589041647297514266173616684839"],["26617237454604278256368938158340490866920042316196717968267444949374887272624","14388298955983262285645046894686240058818970276390121613577346728233723682227"],["10669289263263424342006404759655018386683231077167085113729003058090924499508","13041320124231171515907623487418263406657466781812149325156900449709942697858"],["12165226350332744572130015888229805428424112729272116404965770927753622488504","14055550864951573462072452243160485280008795785649899776953809840569471776173"],["1332324978969189879846942786686758047600197094440786157095239987148776877229","18614427327557122091578480571685179835982305694555907688151114353680015083516"],["2793491825704612071602764162562132724059649083991199047859676814613460803244","4810139699101642405377056409886426250464260931898994513346042424018455847056"],["2874034940637513542082154041488844153185156049775538675210305471207466360981","5479117730222443077229760810120239455840177689765997988587469131670142457000"],["2065652252443688383185124840905279484091495172397996869238100118201386126946","28637471688217163890860212081992136017802657706113312089479932563258142154021"],["11096653543984157955401748728016564440929321693866589279019039822259280178521","9915036616510422149552680869172344654991081892048607024547072392769086681290"],["25515574606503822892752681085934156670474544233873077154168767800270957815675","13156030784131543279216687485574285516704554639916312183893111237809302678897"],["24836055190168030391569377199012694396503938052686902667860962789268264260575","27081218446109814537487492881203441326904736167143485883832042713798538434231"],["2955187322797906211323223088803470736799249178449076338432239422876942274324","18774178725250069155706655419016569533987195294240439057260812737673787981012"],["20819123699349248904842008750011754438328944443993674156290703825269210695752","23605677514609100846584872943759953337366143675014455268079939940169447705007"],["23776087343803161585169056890141590432604364404022176504449524761638554462024","8859003293462861325884322206639721087930709057780935472620920042320717665610"],["17242384892122805351757560494542112617479749132460009901791870613291761714270","28652007731292810861920441393565348565263772759350975975899844078647934725357"],["28646824667530065880769937938975940186245012934578081076071736270391027499038","13097759629595820225352660314245845871374363905815479162857898841908039025651"],["17000757174431277528351300169546168862648351087424027473802280085571104792079","27262708595630874980823173145731331748914374837415808160805769464222948268672"],["27357059535068049482266077232064569558339457137650463830512682929870269003235","21757381171351572498739832715582987300864705272002544862868044947407895694969"],["204278304608172850995717894921973195189105947350378117255397843974993889791","15059743925718846049736171674181095824191741003399969927599224324454612693671"],["22191650135448508344422182055341654394770508745712023094041386326675848183981","25383325805290953861380330541474325748627780322499855552167598935757158239891"],["13585454073175076737324129705371263663300327330036201225682767481339830360564","18490180497165244658373866595681830266022313049242170978842426414418809968896"],["11731041379030904560036986627526227696158266470689127149273101535279771647383","14107800572980671540027586181424356566156054161942566323650141480742743162564"],["14987633804461318086012215950042321169259572656601194636467953381254343712297","20200747220130850958152291643245104848366608761302134357326119738082112076153"],["28186756087313245220180514539837366712994659417200878455631780923595322950337","7608447109296016790516696614220604581972285098400082726362738047966677458771"],["25850557084056310585825073064886247080839796254983502876423290500961835178145","4842262169119508248651054142024541714323154931741783573494566056042519733747"],["14895068031569921824470368072118641231567387489285361831069291107331144519300","28423372434642536408172342517403275680873780961090506988152298129328642088793"],["21658811807090137053180078991341227302667413208118911076738099080472638609392","15076399209263208232157075680240756618711961380845122130897318191387661783754"],["10776796296403357858022404781702205444482217684540652066208375872349238886321","4432616310250751843568024223389983199544428946646438022210123018511158792631"],["24813024878664981780740282531127069572663390641150719802729393692696940956124","14427700976858719490414818507014178502364098882888229790162956672789175619170"],["8272037694009943740251616439515696565052546451801373665217687965692868587149","23523090880637182708896532406037401670840502062386303356948304042982871095055"],["12749994233959122158101851147233118694781318680562745500273418511564218784736","8978797721500965511873702254031494161145859773369284956463734834711323201086"],["10469805948811506931233441566922895317060377504604706719581705571408187793984","20435970129875446551031312543827970691587713928861111381560539404167072827700"],["2988254779951482959174380986899168958920755043505989867841404355804482409555","4165052436938911353577014216611503641338045094405309902430326194435484532354"],["1809132467384861966630621216792526904972523905008594819229016318777233457517","13019118409663096232001103560644485102296716815987126039531614033400195150750"],["20117047480205299681852709306279543296333063993337098885491453495757650710601","15122260847817311730823600489306329922818732875713863991045621056218413774766"],["9941628411561765218260509116516822833799009845813490710283190978790966014707","28310449349800367792429558213288471668990680586233775278822558394943020102893"],["3506347652214232604625141733234541628739480148434786504350620237272889844966","22334174317163568443715983141957795808226743758536959354779961690716316194011"],["5928799112099793889793301835614076749164216691592953362070749592758413163383","13018770686944190954392714755831762179356138506084102789009803225867531221444"],["15292032937338421663323798242940653057623567810516635117897994058633188745399","4677802503084812226652826582174848458630545011964775651513102682189690004699"],["19686555432835503816936368452480482337755831502601349369134667139097781150444","7859451610945921696585320624432433860727452780820152362602986930374760300086"],["5493531563872790069353796434038989426643993587028589793350197044662581036666","2709687952440723767051049283957615734814818071921768716185686948849733446670"],["11721948004176082259846871888810528016754332704016922461006529729394662959867","11290087008499784140841297139398305745601410473286647635064521028646303094669"],["4643634410325536093153339767886180360386379452910502418928054470652676002130","7383034405509516908575361280518251268393556880261416924374901165900638358801"],["27818289935182689049407497876457097318031287814236245684310296732412289430028","1011608122019366746335107572833648492675734660718959795659918973664992893237"],["8098966471758576055898122062461993161483948656575921868240981445162566468210","798983483136222442583497677898104826928220337980369384216197423035342260697"],["11871657556514017148080462991022187417438401832183488983135102922329707066984","23098761722770149033833812556242441456809352156556158132521443913156261981657"],["18304897967044516932939265803065459008476198128083509009355200228404555041736","8936819429632730039092519205442942952317675371204232045154694067128825199090"],["20037003650898910231442302241295651653899292342135598859719615544491105872772","4873816985479318254809996721851662412124078168977105627313687824631457296044"],["13196029175054865888287731029085920488605496325545112426097880424445490809476","9310768644587641505267088714633820487255502621768632204270864423303354104261"],["24927998506287299649191045996833800255540792220025141980559464053601321710760","17121693093028946681141829917474600449943595631708085332750131475971522536248"],["18456379255952483803624741540257792224940286190743474668038966811344265953891","21640888394942890327588213566476733195780432551134916754087750764262175990415"],["20497878531516638099018710163863917628045255228390503640244982121090649305262","13908723130338812168197459674642981582401454866908620794423030424020126186401"],["14092822317175554836259768930589950996026960883309796715276697543300034394226","14365127861456788998753032187392388993708468704487861070968719694360350747044"],["27061443474047543543899002684294220848585229262513836519967647337402008306827","22130523099636300549390556927998871894940410571002541596876346555202989546090"],["4251484283238905980275064205303170496144584367832258606449376936208024305346","5613965666765150922051054436800683583162119179598202829268066634186633374858"],["23010787768994579770733825933529584406967483471418426572605169926908774799787","19751165076179571105214049049740543370115741170284189248420213874188921642125"],["1833432957680496849096530586541020004657962472741555835479867063822894692830","16769231003822612936189167620555100241775317460466155956165701729367770982509"],["23753599721888565095127937203610177040648472580040651736138304058484991054658","1713900912468896325296235524270735666386671285402871317294153176266086786960"],["28811245775567933697374812824885375902236920576594898406280944204080392835029","4509993121051496274949707289122894292218970912773290606660049660082084654332"],["2819031388144426942405270127448462271412626427219602826011241814133644601496","1488670641491532446546070357700438602869617436401350643040798127205091557602"],["15389249274876045819190989598095623168232117129363501311919325028039822209212","28767632933394320093779293039555386611170137592329220684553562723063547197171"],["14337027723396014956452299233554716732400292649297968011826569445301158323780","2009175239264216596823723823286155926925613298692804784059682391426499666710"],["4092248359426102253891855498139815363391074542777180549590700630606781700261","8016420278261620479153959464383495495799649975825695093914646517628489851124"],["24254371032661894231062268965896950299595443567290946627711630188951537625910","5828831009933560194451153647802234996368591894273722092473215792533510344841"],["18826645799628145373888398333672976379153071109396756019820736152073963019546","24515138673906038771217127624982629044606789692169284595287265478989717375613"],["16947246738986119301419914521080346971245655532580243472749212887142673062001","21778806418778498206886622541416252070589559251344317673443087859086624741315"],["24954684524020954127935189109930242689027852183468948301429979503145146168616","2543061259974925039280125010662043907659435390796449000428945755525319386071"],["22438711084216557217822427125730493891871026751915285551116085848901374172138","18206789705211332808598926772658943686126192696224012857151348080922500522197"],["13258420173488480255978193655311215452263751619788707518212629925309323446269","14512450503415971641774166122402064176084884612959445712271918275039495125041"],["7457483773890376717415572289470562258450862013157784492310381620499216135929","23043255806219607772475538888158931469220928373608913267067435833598155942525"],["9393840568752968222226351070694778575857292322701697295996370352618248468648","21054596239781269149414942284345271117170891989226240547489887775967768381550"],["3024605410509263498890994601972315934612934527715936567541498120905579580683","6008386372646686979201593329357651339734138764118297705901760816404453677510"],["11283278605529128322206430033037234806494483529772800483030875885106524548925","2158711188393227152643881354186656939652606780479016813010551412422554834132"],["8570213587184209769001971095017657833000914933624727124949721738706943237609","16371864667446631690966787403745444216172755246848663806147689588664234115526"],["13825176242031567478191478823068249273777451814027264491273937878537212797553","11256782629595782636546090505044626681227954912686008309037814954120124613208"],["24775265142231483442923026157064445054075691326707980172984222291124667435011","2527196943131457357244948127987572655120921506186962621901763075692963698593"],["21130290138738915763988971886865761350660213612154930205633449383687857420421","9669805850211638627558316278488407174154543301785492669152598284575813732037"],["1990305667972242589487412946059729579552352578936083361421746429456977659498","4808964954364692162138941673850309473377604705948589433683455027625167404583"],["27904534893371082155895067223251258549294250988508444918053583803250263595691","1047980060937878011534623966798679858853363316014304325414080018014999559264"],["26783752584145735147472270035492689464642055173631043263390488089967739598013","25400171285000901574826325503504644037184964977085598428935596486985416119461"],["19121034305656322480459301921108155932298963282937421881773453072978637209111","5723524099010526969088218918391228351770966440596834680613712500092982421183"],["220165846703242957543659757494683924623737205280698978101853188127115686570","27420678982094370677406673450724421681206438431102941282381863459122020222862"],["5645564073701663073474375659666758535600546433933429881084823539490043774064","4852165691069323849276087080228975946019213785207645596904190497663147812913"],["22883987843911209052516439425115749602379565267212746524098440587308223419586","525671432647638232077253884415115162699577501541018950387362530199068157442"],["20757570529372793968030263551740328789465363278929424665815904971958773302579","17323487775597084807628540027252503274032753286676193055265061376288545611374"],["13462869244440939510453069758994441710453009016089648107745503746401501809330","23851438705796164787024219800453534952259616763771615148120992641707129324581"],["26887702038813906965858177934135050742057054215948852874962829040133685465185","21920031752051513102950038795488115051711251133374914378718928527091809691014"],["1494043119175510823124460107373640114851229451278370400026642613569547464852","13804918474204779752399197909731471157551745273478113566149721334388495322178"],["816636317360057879806922360202451563533239039195848049969705405411930621284","10790280125923746118609188680787767885535208324651471151799342112034995551887"],["3380294004864210158470517237237223361005091558800991736044389243885305238335","16761653824688873556867866812394944104367476755354352244727726052790000230615"],["10541355222369644670765552880078248529173427756665222438416343157342972088028","28804776903775089659302230421590279329601735090888780749528426918768342488567"],["913646929624209813221494504717947332772868202551131070056182391764025589508","27660721097331383732817048542665919767347833081729477052182181379312642451957"],["23826039288750781632438354234547071619409408773821146083242570293176413709730","9452451817385373126557800432744434847201496321235012502687845878554940208825"],["7724489919382723004285566112161664696075815828116294583219954241802015799878","24629671537094794752825227784806984378469271636117352367104789931550605574922"],["4482542734930293106056110228430093167086522036967968437330239950906779667825","27566938013804635660688733836297407825237936273470152671957683824455006448653"],["10403397780866808888966621927858202513370138255314414390433678027791294297580","19678268827793780811482059078584528443445914585370556337985595337168541291592"],["10551106627169013483496464241821884274284666107668690067998689179911086958485","27679864790008733904410698366583599147650914137173978844142875143019337439487"],["1827280361112601536755378059516969618676000050993645368802279435956504879693","11555766613741424089693692877545805501125625483341761151515940065630173595406"],["4532517894962637347069442878067570534084279232479611928262533042566093720535","24369897755295533364728401020344485492207083534112399977131804491751962855294"],["8324758568116726379781484095631111532118414349512042982734672827501992149629","20149608688747684231416839716542307592289272635197516758403633877374962257467"],["1337410521320024094848002248972432798138627231409550552709540659355581791347","10255840543885326068021564457105288204162048412134414045844027369336056236638"],["22187616310256978221069784660531983043892232715317075632523856290688436251512","22327564021059834893835520405785845373226360415256515235800112723719579976882"],["24836686734632926542804563275238485341130978391922650294306041245894202219342","17715300921967338268225299424181263656374287217971586094207534885806616182382"],["7372689241525888711005776924361295389649007402348132886254569849889354478705","25068127868642901968433653025172215120525490185519905361228676528890543728363"],["8210502227636370943295929702312336051623115123993667605170288369378743029389","801161199707205167730880435550809365100821038855715373825810341964649877400"],["25706623552550418193147180155337841807891814029958152085427063251683207655712","4839115091081740866400232526572325557171281405241919856956713169050385241136"],["26763653566561805550970325503387313101909616783642031619480947313527256713062","10513529894277501903758869518047786895161073934881961249415891713038291323548"],["24990529725190203385219870676905289106050628951648755294861703284092907331110","20789469039522031755090707436454680880231957827809967793306010859090703202281"],["455024567465228738625596516214011818205738192823750675428611004491278821606","19651080129085411446118945709584731181647847864001737525695312982045485824274"],["1529941523787934677618816349905857792197911316336406431847411093221542466429","12829535996661214059785070766661576584406922750996949565574165711776433516077"],["2535351854302846976391349339476764848988309345461006416198726471707656119246","23369617330315424046948249356308387993862085912472249900088895566808615123587"],["21687774596152687290653225376245801204867034262854344417232874271834225624961","23549957162617773090042491266345863428516155964427048118227786969461813240335"],["6078287746125456390910370589006186048931042589655731108757027743410419784564","10945786489358807573214342176570676993533250602046327754245686947883720793349"],["14308400338049453246013324876394525434218334498120136888345445903071558916949","8216991445097957493255540400662448458718866965200338165535324473349909428089"],["14914713420639693080505617916697130694026224683970257843049344894262869870463","12116763858535580514000219003653303305432361213953949276970560005130927471995"],["511328846727045443916109607633185036095162522198568246275561500951121644528","4777279439829605349036991611289780717066369843180441797745147016955083174082"],["16117218206331485785240511968496993091893727922986003239256488316217145712330","11051647756931033322171084420286128349017598558775285887147649465234234394329"],["2741530689087367117270752390178520242387838362534817786998488988847855763407","4628889563078079815388208600074371078264364917806871935663171965104680831445"],["23866341089894293901484184612066077714759991256473492786422437793735518358410","24144523564568473040853332861370096762190972063529783072960030816789319707531"],["8895868119782143972956403046457329934011994094481575284898123479271205204667","25720381312605767356840086525900974144885906790321206439882637022360713878993"],["8400249091642394965782999328207917789840110719458933934267561969180519690144","10531624343827504240749716940214444987908267607680600490824653343544759271470"],["18738406961525700461842752464236468256049595152045097480727502518755304073091","8353722439369344098358868398106410584502211477727829806270891977106612018175"],["1618273509531403788351761127290804739557975418071990236328849895784642507147","25731492889348462449114235991666806225111573974991831785670033351661975400476"],["1993738476373145493144247617219747951663908424484497606955000100320796259248","1386021393331571419416570278994497270975287982052324893258077863624813974030"],["7792745866982708655639290144624783077046436626202784929964385121162883257204","26874092088136355510095040999161153550393551714350800075972562239750934851371"],["24441928934416767940363788965307756797723693298303836756015176741812011582086","4155178187512914494019102418059804808623424781206964897256629551481216162820"],["26915084231078117923644076647396504740988613459428035464629170970186160868772","24577947864957571802566979812927121699010484696121374665314991051775504082027"],["1599856869577380309050631399445842574669824787940548182519435766255958980757","4484356210557495849452153012966868147963320873468697275138596749784361259821"],["1360958944288172841680267630019582200228342176907892147744403547522243445526","8369697620599029068985307750244789740195234584933546363363926176106585303670"],["21645055312640182942448689181195266102815740955440338796691991889746543844719","17309974394034245178516315703608234329487705564892377108064470065988092785"],["27373761355040083490829361153022027765723578241237804560289785943631151999145","26222546805874235386310457368337344224005774946244705269531722460873155095958"],["27779880667080955971419785151554784106380248317835901502914828600677192169979","5639101008668049492769406295017268711318758842306910437988316671976985029256"],["885158244518059650390539629164730418262617385539931060659935742346903548333","23072489827777464100376110111645634150361010744161762909408549843750002906022"],["8959672896190565028799678293503586574705045134847545920228892990427083339663","5692151757636656740621100138949799866128162117953649253038625091129353583795"],["17181110475336679666521615742589864347054512702781380027184560271991490537795","24944838422534898522316190064234045613149522010409629880754496313731728353282"],["4082111924001457122416023847391600129274530574022527866723043265812373201603","18039251307717260938043831964600754242668182218281528021369643651531881464994"],["21046312281410304149265502118226155721755550228147793241658109196354981788849","5622100463704023686794502433519960928979234041143901948071136601208621526048"],["9165471553985363358635824295159392222467362882397301306532631681549957606919","10098272170472385083926330191140292580644730511976070900249444512725650439564"],["22074155035450219025033098090335096761564705579082041571261469189383008312136","13984586570957401028960277690523053311796038136758857449447011635026128729038"],["21280919051898947890782927582930986022332389327568900878132327932964963604083","24097315500530254060958150646419973313588738189964721404692774755946449845273"],["19735590911620693714649959528247627885897640398192405032358624291693370113125","10926183509619655853820111950733461039577380822575477666409207483718138558687"],["27874377644619648416521197587487101331985778738219838082029860191980110372555","13499354566335069636853795761554728701923602044507625571081320301930364124833"],["17211296689886263418189829701120233136185525410689059954034029689601377466927","20502644541087851397537148258461201542217618970095652738722064367478684784700"],["1785080282541698113513432321803229463364667283546077955916610718625395640297","16334412035217332795288960490757917493712872689492661472086240344441685123504"],["1605027541481314161636203401709108552461869888149383891956359073574090736589","27569780034522525971656078655520465757665047450852566497588057415233040245162"],["16278426780802785198397764930425092227260566194623218385066407412484312527120","5572528417559899675600380804272194933281907259871844951520453649168984826280"],["6148651301865303261299503958821304890679489584800245387679187004543376033151","24631917229410208551405155452941692837085561717597486512298750197533448228902"],["7354461966664079681487067684712627305656410626099600375355448422157083475119","17616226336384384800663596202061363160956732139971666961310959227444573929161"],["27522653993658245044523091220116018996694683218190321413647148352019438871083","2553336390986584464417163160372666467794640236197289312642086141401837980408"],["23915290713781524362834509767165774749177456094737884821097528758680066936034","10147064287645279892954195181821186310460129770032126284412104774344186767710"],["27394322826832127830656791799657985477474694402428093184365755736469970815850","20465804045296690735737695538773810762357129710694886440620837894538668267568"],["2494106759881267579998661869222490831254413820844976132688032799356036789450","23613868082958540894358001893380610450422079622006388341708455663184143269848"],["4638507456129504887987613712686761093888673578603989285185040891708566196667","16334692687867862602450525956992374224889672447392937629306209314108227409730"],["10148241106482049429233457215682056910805554303650773521128292615006730709259","20906036999299486588614746915415790209076491465946286532805911351939725849765"],["25771994506073365327158326686839900830640358721185739924520154733394005688672","22615339934264234739337723818902590021591152417673929658115910408833976877144"],["25869149875164415385239306002369785426801121480509618981743869619866641538701","10015198577581585297219822194483970627961023539476044865181528473185363987450"],["21651292120719575621497550116140538196230234302673288865636269578655321931846","387291730636819726896296047808491871504141742609241029953769383990914558837"],["15980059118515078536161002568020174433055452451177149926347548489461863066667","1166957248643225380744907599132956838928932977983204949152506921465319691174"],["3504081900593896173594354933861234291413728086338074469099590864467884214035","4819992349182429429860798070593689585097453992434079013970489545060382404988"],["21383174794192461661137239717183325007092304430607545245952612163678623398736","18418650519402665324838309044472875290383839162283900851939688008275592470032"],["22957144864790023458188232082893809737957369239676341156990351731950343410319","16599448704514669544051274577604558004106393124614525138117765526442443653117"],["6313582475807459957569813359386563707664732372815142162156353665478288723071","21103288723633723519671728774352107042063849182221373990705750346643707085806"],["12313674050268658440447749988981576922695608102888310811900113653691418130407","20415166367521574659345550890090586924371946936104201873029503070163419393808"],["7680875338520366144172479510894496136287939707568245006023796775155694093368","9596883646782615111405226792439814318752752671552470259930761537827271771406"],["5683109374168048594055962137645079732095892406949940968561627742305824926632","28209420567834140180853794482031741949960304086434896140674480133491077594959"],["18557519237774869221868068404060575966882963782244977461027567962848016016818","18752889189446533976706922698317657541656915457834412063715411043250425813104"],["25060730656355224452844992293979894718261921799466014395657215789745435706978","2979938581438267419342441267869778515872180596877827398473552853318373804845"],["4190094269094880529902744998704603028783982678448690590724725063244881023454","13890512205552639249061907103036456615513271162924868131728179833058954884834"],["9091675195440147326683919375417061565448583427209892548757077379738595974212","10649775992122565881944949721768630802560869380322304265759053255100877058617"],["8191543068716350868172630011020809857902249371396502337818002012542711113665","2177144138260274823167164746182639500107329438486781661528468393727338076146"],["1765796995910060397823333340778608041598047758365820240124828303452222125182","7270614598714656755377740947201196185738478784150127183986555814350108578196"],["17659530597336367733138541318555715212197043144756375480151214511142405189576","6360903269305585272344187914939137485451004062453766098395331719157500467181"],["25524127945856810765243720874554537119687455167313916875940827625646778344457","7749689113533072605353331470853165752344549063357106481604376778736178991602"],["8280953031530880816791718579564092896828369528908208496911918602893026333464","9821470932720206125887570085288968217533688729160130704599845866164767949189"],["23909755055869945074722358207448818531143073418272979853809494622408511774079","8289291472800963451366610535609188501457998526945558642752511183063083466520"],["13538180579665822584487767230862117334739670474316786437837001369807224686501","1320085979858177385474970520138283848492329170638175579443955658113892709591"],["5137121867970013940577430175221007135620040399929488376994475146089313904279","17272351579697924903030216759933213696630252202770437727001833320426081098389"],["21739449726510724455173482647315458127201818000818801605992245755916381763779","27495420233241490381842329809034001051094099273573889148583915715423568728584"],["12033070917615771693720437098766908206486358903779288761738744095829643072216","9029540341163180078203536102622532709538473747838984353633135612238364353484"],["11732245462563674919343939222743131753651824174568667419944103698738055075243","18318870631820616569819173543296075688982992449229849352497759288568085694212"],["22979977565261983315313894930491951714282275264860966069500165166141135159837","23556568964509343846064054673186776262911870382304018515342241982247760185000"],["8888675388692918866528017628709457243566231579645064478998701903347877198909","21613261360579973939614471613306738948078242606531681899671328158028552524006"],["11747571803239159870527739040891832290081749722335296965357064096857617029749","12297385533390461310726050940695499017460147433278710632268006556770678961200"],["19460187827069692928853918072085409626880929351944196385837141242878806999480","28554171089991812362485288560042793013214247808742435510453267853937537705930"],["19362842019342978004098436735748843542105111184607110223026324116149930211374","5547608282616325288750918910077606791037021988837154425212092158146876828945"],["828264853927915357027171325759312391685791740615802481469809983008164154847","2734918745214436743813654315359924347569349312804752245750943638487005711448"],["27821565727233200144625778459244684173794297449890693449570822231380253722245","24220391154664538340327756910809940935594137523739290481071690343818525131784"],["8248797082033309641423386162844191922627354007384959375486540221710216829486","13188707887747814284357542312178970499247006947086775945551202908635061618064"],["17812420130026498511725758374655703925652369867479574854614493506000510498860","17636096588030674204579862181932127051397186446172476622786844577350470980181"],["23115690649147686169154182616375788505165333687174092011853569541959267650222","12550485007234796292250036363769446778881647068800256895696862550366338614506"],["15247804367239547067233308576521880672261457262101545663133234374559960280215","11574208691152052291683208640394499641134418686330926738113917180139852269331"],["17607668298597121139867054086058198223235052078409538802184186847110283494362","28089423389322211521964433257196247161089344393065130441680083939892785060616"],["5277031533273696712089079790842887306317487346866427172067523590120044093917","9616272711622832565696590625005633247560885545206332013765967798181701918181"],["21791786612720828602218800462986598555010744148758592097523937974238670842111","12890278249957108786546969881460501163033274411505093728073505299666522679918"],["17887539651172469698087017437647316118552708287584661055472969053749953407255","28238003312968990481915770613996204839354036974411569805477096552717418051206"],["16342117245428302805014188493225113880903907366138614961809153967436566549778","7099401983913561633646341517139265788852787599458404423170146759586552895966"],["2366069672708478725358820338745809653991426857347371224623452538671624940394","4928104685519293809776672871987684350696417567656543929121986480625164965528"],["25268076515392669220256935147432928937994378049326722239365348281664635702364","28549632421635301550514502814808492611553307199621659175768429530067206052116"],["7835444733921867354636794982640121371608295913971049153614231886663421089818","8024890790395129045844815335297118742883042180533994492670416175119520090700"],["28483198801015438720371748707750681600910632637951286239641257120889887373923","9668216380566692072428130290634526998806230488484532557808026416079122978204"],["23879701119612898871396456222416004272509204604911070409507421730758836993894","3693744863485163740164891701965519208719100773283858304579037465183786369256"],["14470474067613781894534413591571196643504617025362893766382062631800580334463","8428442072295533052624532726758503244239445032852749932276551988774565467476"],["27957426224846961075480726927597642562857436462241117486565798056796407977198","21804356413026119544920662927664499085800612551376782554146435528490310802561"],["2196460293936060698197217197486545243328766783622016063885441171596554804861","4846884395789328618573495165927392831724821157623133025099586181542374884088"],["4292228878239305532182794621820122107773581044517782215668585371955230645389","122635088492803721234397590999227136257478275316486422941451446555679140115"],["12333215060670829280330822885108823844460776277472755868739632157330266604657","9333869155782556706236678001801652301517960829699806134978326198573930830121"],["27328147309744199381326995738053242087722249766634699699053017261005569659105","22948405867585190545593420489692508730551682271865010886649405469986283474068"],["22323981865054154804316600933066230820374870044979785885481929063671495303816","18342789101317810587027783630493086408619678198627687190737007784753826564591"],["6753544527940971733954605038072754097577651470715693690320731751189609589072","445682086572195841247690098241369217691640125183387649158257715561036809803"],["22581967085029909111109679909190633488446732760950444984261879146641585603190","9890391146515536519202036136240759054772252566295263373793646348553093167582"],["9833845711734073648895967737097500525069179079353434136963547903373943045097","22413914506692029242387919643199229600747319351718977977819109451434334478386"],["25703366729603121046613954423166902242914969235863429413153600278574478708792","12421773207582489820345231635490654998325814523400880827434236965608679504419"],["6119414892631747387576461047741130582824604116313967149832325870696313218058","2371132648569277236883898689537611260393800736129749703754038910461011113174"],["25690345105210668360337124082161148217130492786876640697761041561700319102773","24231751505088927080665493822825323971220854324711520560222164436287106255899"],["11839088572768432714917854558548260411677462641802108512747584627434299397120","7788678233728158272309167449197517236886136500138181487067290323507894453628"],["15737585217565038000355510073799064046732313988884826626148968459280126458630","28923781867315007277376626977491809926665872321006823012466695579149717797861"],["5722630132132616877714344283238775520247737561562712325342567912923475605111","26843259943808428325901554594360087108238960829112361462831473987220822697296"],["19297077134348922255109690800783752725424402558071301724758239442291358318569","28456566565964049497826144712182533123499807407185263389532575102959863248058"],["13165898327747385304529730299146578636317564354671679062886591246012171019733","11593059398845659996920144693691441086890531413069657095223640040778833274180"],["9227199384859969881960500838838864554465873576956115519172411378024243208694","25520564250581831738528632146622774045255955212583849197862898551829970538851"],["298742119223172585185230379897916506622707480013461945971824728550055195426","26001081636853212987301766643948671964962333657193435497572940800307379676796"],["7165948932692374672498703152818916472843006240923362768847840147531047339326","9537545326391844263807899141152278014925560761434981312447151910095921775838"],["3276343075877892412605904926084902742393583719841294280456567922604066478026","8263151192583759640106676394199522256478642551670768854515795587444826105302"],["11966608237021618171697530760293140783109095661676132844186471987937031115388","13414546403020622096471431702522177393758871680666788716287515509812049762946"],["26292021958850183115827520608119191538095974861278314432612298958263969398522","4300643864132530609577800543898514860982909877906670157696139925849433084042"],["13690812623597966641271582832496604532375124734838168667572890553221463099198","10571330519540811790310139667604279745827597826298536158066990729533884314382"],["10835654239993877274417644681790125124241461063484344549758146306284151213888","11447837739136191588184098571007383658199896203162326394702878036247701328787"],["4222054350207520424410271000698555300185322354180612093592935186920315159770","2782342892209249344837097278685875687983299017404585782918431380452339859468"],["95572737607107905004832441335378724981250867849635113316134702130462618754","26912332963917762631694888932851544072090709856587484818926024802958336250164"],["12094656321778163152831361709175878407714468195546209944337134089169140673962","17864160634092854568374565238372978213294882580810917590030137015253886935247"],["1330410759901764510338839289614638998126937204595629990598618009596372495638","3896359331179496459752782112327231187879141419151177786611873751009222887613"],["2949643277695807204796006968832707592100992007787487850284730369397504027586","26630735324945526547301491710229386642885683765281414173071936630412673283530"],["6438580176246350066834338756891780783644658713178196462527592868486545661269","19263537157151682638599431382174307295741955304471097847667673059308754821014"],["22034250795441189590190725987512828586810476185279536198777567715553120051542","11415883889753951182092435166885580187396628381738715119226054290369898088271"],["14308956875103487010466924314054679069009989254255740178790667695400802742033","7561180707697310914052475145849210526622945497562050050279456452968590375927"],["24978772498652358300734984405101283985991110521462585905846073198100447853418","2040269955101083893638477512123587366902142738697004039180348654641548631849"],["5675952097792502785837694523227600952446677865739043359773169443529484209745","25441047062102205778889769617346906892241310508781543748979794751311181822611"],["5053641068818174367693311350599176504276188320914140919183146804605934455546","11340742839053057552134876390253468946907292830624036289089634129085386850754"],["12344734336139622319795209991127304687334865005468143383215939686893934149826","2638198746387982854987209365042586473557022074019594011647404398434907556410"],["27385698834807032357033277936038523210039565085303831371698632987000036828485","92500836109452915234856321214386151421580661378566697580058675566666311116"],["9800795800332122881607367244043331414554764172914525404295263462126272530926","12203535046510391966565804351566055744995641435624540015332729549325050137585"],["14844067104734499729541449203453164393086386393784234607906697932470037376974","25939103512234390112916411012867299683912876526164270280017425345296371794362"],["10326985082115211046584003915888372849393358397641539075738252759221974313191","14588064123693719269630100247032777826209125103603402305384847505254402473549"],["8641706568660785073842365447755424656975206446602076497614400946058628005126","15843584353397186549842823512917845706024482619786344837753455583822509239288"],["12996801721912361609988290067475511566837896765345374516131659279790671008774","24167619141221449857564151539441319348723969948831518613711268957937888789589"],["8290242517908646222901077169645223621943616229246817404267995134147816423143","21888070081822715647164223685926448773486630017107587618342869778413216930493"],["10683428735906094468878304315298265702573159466510608642314254643173286138338","14412437597670030648867707571669289166701691864689861375930696797411112074171"],["14733186324599979682606001346502443834990494770396182718084925821627924121252","14506123258708385618180586891360664078673718696826377551784025839282776421287"],["14285326425294240059085342034842121654334515365821901348809245148255337147896","13258007688105524109584576769712284226435962397111982089765622846101249862057"],["26911235533597086740740316547221311253616996753258974047848838926708837817560","10394577379393625123970868945231704727820553999884740708104121914393709474307"],["21346983205989351076689721159317926599350184991870758955306911822167106473995","765426801425999134354241596608157410122274236949517832263615540874357387133"],["5056438594237045179607871446797711957320911769454534924841621788865256096067","21270738858327501568283857165121168264267988441907802796244488010231995961575"],["26534710795519294336433826319261584606521113033123310678482813599676680878295","28860597115696965529095671804169892115392595837697781931606173325511099689295"],["13619296986243010812201342108098761415291970103118173142279818127816703160164","1917110079934642813379881425458322174149758802945899222579348349733398859931"],["11703636013278291614921105734132178673073441614769060359254160379994982443896","9950356943372273863495053594165219290523169704664801422794440119041844824944"],["28633980246053046575197024585888785949438866785732162947755907099972413864356","20960360797843225541987190573676303697212370006949738491289052237254252067500"],["10297364010628053085765530284209457470677117921067354654077860919552612524191","13367374128706684359807391700229060358199175106366072489758000702153586840562"],["16339475962187917419503423432581253111859493466284604209964036456301017695934","20494476873615865368374486866558294178527912737669080322274017618262321140351"],["17666999880275855800750691635836390128621991314085228012632258782883137821724","11309092504116225140514332632395106359234408294933822363857266339321449861357"],["23613744502472938052651403548919666677473091012176852221539692753401336158224","23167418304607083957783099021086241807986713922170467022355312807873695943441"],["20739789027938206425834169925271731165466461578834384911309498009145030195353","17786481777637895641817944766959262615684189374156728808944287817526778322355"],["23575708373452467460808289686643443172664780812513057146886330209776632518699","27443796915185654128568179349583060454205407356859488862014588843161806807114"],["11159305952303260017218496387724339413494745421486949263820836549445705438945","3985333840964032422594854425212204753856262440936014224312845503574777865126"],["12530360878213356292151399630405754006726920408674485327201374389767609885261","10044917814085650807251481580494011172234790526168275302403359435097179673274"],["12216464354570125160672628314565942752194933137731225526101380762992246317517","23126710091048020288898595319864580064060561629134564116268830174940955237591"],["13626136751771162516218370354055653154335262065459965511385304515034619968207","27066371598898947734078922746758627825032886871845444700409209826954345463262"],["15397263773375068536195539681598552793198059275391633803308949152803035730814","25000060329978451300215947068476553834041010793950413737835539178907283725336"],["18376564567680015522834606080360402186500656812114081390669826894251334425971","12688346628919344119827274719777492500130310504136594260393229713431422734811"],["4424855418992555920450773545837900570019287324400231818761365171644566023110","15190348404043412981811599390606900874314412161321597463311302531385621645990"],["20075622948585442053760657172432951361196934614964385376719684046841186928346","16241063254629331802140955191726498952329538907685869985419492672318391499704"],["10134270612343055658410552474306868675013599744225190173522013847618496098318","5801248883650024099601154748347623883233034025701623943831353856040148862536"],["21805902416448939985288256860850120516292612242439928584554774680926083479295","28074730437943500141803105340466731185075398631128159210491987746558453981321"],["17185797411380674246982254231227892354422247062365942541146311515517510703974","14861441926966934512139314887788024480017458054604969603816637743410038176587"],["12872200482221394307660914300487934766382016423453793573118312324242729324453","13309852899423458083398227211595951679730845712359631291691688616469734214047"],["8304518291282791315948870900146685919002302644878088405859872521957739510720","5673252080625045145465076457536877580966349822174097205774268668982238255066"],["12569656420531939850216632452662593876387562415947900776250478703344856601102","24376562349621060715484329193234390834492957220698701617469306798790130803827"],["8609838898729948579916470843675319372895355954054810628637945999834212118385","15324118877787590913114768388238074484997406052849875481949691599626751554033"],["4048956943337214257650510034818236992360008151616428608350054244189905784753","23433496985712323078050827259051251846238939674470255971893005082433047741382"],["26413536929270457092693041931146291067977332690869619628597026793854338597445","7516795750952685129674975526558254365040328625562303727300517805305858959084"],["8475372104465916848981853908407634593668106114089475083909473773309639504190","16464303299212259185261594551014225381735711438637616735767807069793943579942"],["14061786688995433868185778866136983629619529215693462334508135643274225119754","14175220097245295339747164315982825636526173294326049735714148910177708497101"],["649843088768121080223417308979462998890248825180925246505684568318388379263","9382202644320552435980864263351008135048663830671219487143991726729802315576"],["21298233614834844193773651457195662201329479955705418363193816074343364862968","24855156231062792688908907358069905923586747632551499026522660441532556615338"],["10537908783568618781162433802245295086240038090433457948390784880812419083609","11604751828753495563666919672428465443108334260171684564477797080934487079265"],["5973228668621441984562386931956982856142026533944817229269023341542561075547","7638866975113088905028615649379005366353222149252190985042491708541966697387"],["22047370969334024098737069449663995768608465637530562196577510212431855981031","16754724935019999008160342608533990003422833816075777391882866834217850286458"],["13641648937755430755752379300320348010168256701938682633779576829768501099174","17167240767126888342615125874061558486508743006132434386673179892477086375567"],["17313740605967645174374412370971903306809072655150931622254490011355447632962","412313037855530913823087452377734607264201620972326016828608134663332415034"],["10920975761779918645446230753115520260349482440577626881655406178209012217704","3804461412160424235661314571778453079021333146504469494067847112026981853355"],["5088240811708312243788930926996313294571677711187288289694511492288691340407","18442524744973568166533926740831935160796343123320715110453834706952700726509"],["13590158989201139428695567815430400220667553898606052099107127181886989771998","21469462835913865033772587654227654828599615931295787668433618975353015856660"],["5174686151475322411179055161330410069249974571429232890112064494615541833657","16769855638558308621462785166087407506540765563343099115151382478578148191507"],["19119215834430677305687114562463946504476782639599852077787159644011228583026","25998571149788679010861494028203217079633895031104148906739778433084842740304"],["7805711373571269160753503623382462152011100372317111729332812768093526656625","13268365977495276036370788453943942673376854910726860877893315915768336131286"],["7460459861339166407098813008691382004990207148978768130155403778136196606850","3297820196643488455994381647686359183551357417814646963332779468593316477123"],["7295815584992988089837667756215838601923529126773006433873892858477998775823","20023197864843029337675350496356696898878297066395119225592870546283588311752"],["16986858959741435215522550624483840945917401891134227560905361946709721644037","28723769936672917032922872215579887901027867985845745541105114746607549907227"],["13138605628314400463245014151342346119565534394182090107624642851908262847823","10266487603550851053805922697880095437121603166070998980522823017553879940450"],["529641163610124668801068421315525096442393126441121552012040297376134754151","14311761223967859528904692994998692646092584892126956071284788235670696866583"],["15094606376726682391433702142673790850710781189792525159355247934690143865889","26464809020296838786291866987214832097921349290151637889933373917423263156593"],["16193956399498076390803376663284599347682828254465608246839959790297795471176","21092711362783034784957553519834016474558148661754574444979971850403954587385"],["2310644968752136766661526417357445540434689504124454141259243708715758468345","12161273936742110933214029548729147292286808519705826503543954380102458777936"],["22637827064870846790431508185247250678671924797000954089945355163641362639291","22583594094991088950606499658792732929964267449529005564221446219216372865457"],["22029226467832787578539653511021799669780275472796330651528408344740917510439","27939992783559842791542284923589177623517303837064648103130033155098533228301"],["9972652293524651257527158982036801596749593654947574945653427037208280180855","17727872662870671870895464319642983941107763593636428087880773200982722765234"],["4173133202025896097547425229788673944464078844164757987917072188127985062295","18441265590263107398732556815213776177277721857381824696366167512155094867249"],["24924818708120143922329979923838851771083594169356180964785219740737325844741","6124324479906016397121509925652150320949009496739589941046275828962228033326"],["27317858496740904076766602365414894447348950348344572655010384769597467426297","13161930301798858655683133313909581084454750757282866684025182961460497187934"],["6141513927731050884236309450920757463495980537095338552021231359586067339366","13181577305917243095557156673402924469816829019903608019738676981701163795888"],["25458030273842476748032687987921440013931214398965105215893179049407114337520","22493472719318840880857772273206183731175837678629689009522874489938784052463"],["8455921722634472559494968795786592358807265208388668212348119253115410133304","27237877970409183426863260362314280666720526744681454720711051058303296298211"],["436826812652842025285755860509167474372148985398878072568154499238305447595","14846026859663095205798529568224114082568597315540978312440918246451602897670"],["6631396927894353129979336527116260764734575342299615293761253699002849183632","4965488371401603383180072429210107743918186904452572420761756909927610636118"],["2052835198383520185753446379703447656419242908293494167789369393775829176706","11086269154698467938459579466820227874929935324723629590793511122343155328131"],["27406595486575195548558436817337715514075796948439284963395657932707033419855","13459135298793530966857566925001658395593157371540433509982825834601908623283"],["8207940756934049349558639139325424992240797610588579678270946462148239371387","25839089227489806881285519661090038858747935909392502545413914189965996105490"],["25135566454556494346212238147135502142293487229792678465830188966315610061308","13829981585890601581283869879286933880119312162068265382621171769227950136246"],["23958045067184591478455000880971043875171903849803779427279980949017737117138","10722698384755668564919313237946645068152715548837505758769159289496083354342"],["19726029393960066395231818463593138379697977838408108559918698960733668467548","20986280925659678995501633650824859250346122926591606477741885760478725452521"],["272020749637624218990444530146985214809733358212240659821318057878490296759","28161253662853247405948347675901088420901140884494914128453167426222001395769"],["12660376192711488019450817863268603698393575463690578254289431436474706653554","11493863222938665920768403037467620846542067281128337243558842870114650727028"],["6378835532365108977216780626828948143471203416877382546745243408076075752418","12408688319985283816082481446157130595321571949131791294795483785754578228064"],["13337373256155431786411906910993668265103658119798490077605778925833548864588","1314343616916464519396526697037172458619778877349757970532367303719340458670"],["27565757329579382650918439042408400564924304060653568632787625518662190755279","26074291756186546543680687312692050540806317987026422345638107744191778760250"],["24500169127283565925070607839028533369864851394393853272640192488893309939631","17069804726168960215990131067260847269471728403277606579474518253874973473516"],["25041674194975809844816046641560225683778470756370580466332780135232120131546","93312570575492648277530671114011535235017590228119935368686410323075465910"],["6246646599686911863809600495869250527758896542899551479774642914455760603757","25002475058996217970189588738804156107431917569928067006035582792415642937140"],["4968676806382951442831854031934373297048428941296129741602927326643884128157","3409646608020373534511123762050209761337942721291241919616235600131473353061"],["15893886376832814977158978419112412666254726223697033439192532944807330202198","24004921162819053534388031496889859251881795631560405708221460549592760830882"],["747667913076905596960068666897951115936332937229141589174338835346699029754","5079496407314640206013637123983548598475337352194908263634197075574467341694"],["530510507808253897302568764712270131721266909815669316510321448309799859588","10578954225109349569163852789047272206422190857699398541756725977894628793804"],["11072439179840883937401208691374139175602926197981094048932090603330583451221","17368225057747999304554583696271376161439155612581594705632418035816562592136"],["13542162936109233941888386415778819494739539322154565143256991078502998611766","25617177414426063473310446662169002758535764706671530105754220797560075560973"],["21778002539595910276122833462223602357172487816975479885410877538774589154950","6126825041625030572017026603424836845499993703866260038439866285860409151908"],["25890527578213411662423430378920673509452309971814334063449527751279134021038","27463229863807739281197543039513572920483776036037321845916756331622474855507"],["19036298673073306899997567313390456614853829800356663978207023402919814797564","5101699804053934571126178723951958352127596048783338072582611611977092121217"],["7645947897846301641440877867100841863269863013643264490170165686881295391415","17050793932790994760752037170924715674880220966160474424850631502646442879374"],["16002011437852710412069836665484901994775826760281274978008623349323255618090","22049270375002327388583183989920312598045443140247922436372690344872411520124"],["26394941507563430543314589207316193569004640775020800050022587672765643128612","7569818943576374565631935832728067549036464640492888644617314036312593296399"],["15664517381377281826016870263044241127153896326704106432101212848797176507949","18921957772068936307795784482571848202002662041711552864344336935641698159071"],["12377119518318755537673847927616584363902647016923106992199951533952952097122","7341464676573110252751458178356813592757186967351617208465109234211708029479"],["8280852645406266927190929075057914495138224659452213930060201289784407538772","18253950616693816853595099191637854406561748246316812273932322731824415215326"],["10350421159773982943999023017331915853346909867185170249796051634010423122390","22560453218888946293242345787290296365082387066668942407812460871074487188186"],["8938471468155739154453454721231305072940753643803245021325582860657714094085","2620249780669298509197945876945516554864196432068327423718789359240647533370"],["22492404102943090375036400287180286623152607459555915080868587109918458551844","2902274876454337337699577767495283433806667817035278784534953953904612573872"],["15763446260209454223757292115187484637130364323240087111239712927536703092449","4735446469258489851329997752342649019782715111392645590902700195333208069019"],["21682375218382540326085858771985499434878119654846884510372852928535806269033","28887186499963814716473449860677102186569008375810795551161305892538217240673"],["6385808082987914822637927767464470875092544966328968052883253057761537435356","16674310229935630852882829906232981179057327459915851927157310458912320773323"],["27151978227726222522699547627736364968594336672138039703598508691534763195321","15338138364019011873299978935215642650905277144730723049360758885037267883755"],["1963692772755659099099996537076658809662557003687442537302046183594904986187","23571460440736602261439371856059552544950713234410571410512699438895105910460"],["22643728401362734215145711194956681277685708975652249920463292807000092386496","2624854913731572165982013808486443845851292182096555961364044745566521275047"],["12425815004335615623109812466452849343901956460885011083089715451727587355412","14480606410220104852349134384529834376584914557254244761754909342888700962824"],["21654678155625357954046265403467599602591338386516053244141370018043513114767","14723377993241119757392326031697722107587201175128595554528599629821361166709"],["3413841079899918801538276114595023750954807378422711651291416848292349886058","8933023540487508989288163548244561270070720122468142043657764749749997586609"],["22039331837070704893748178831243863043666652363071832777671275538672667166696","4236901139264578879364754486380477762530703377168948945178738358589900245898"],["25572639624693210181611494946427378935596553080219851393839645719848197460899","21277677750328900265430563161955131637851729143352172599945649469232257643982"],["9429130616692574129741586144685940002861461556708444603034065582746455754723","8063111987231461745277025121114425893708460352379519477625834753959615617149"],["25306640360298363532319432319620122262427092382806983313265166698914140073394","7975791385943558766835423068018421282317308846861860346150385521259927963037"],["14566114319497806064628383781144477055309276312760484241816150285440395760482","11028931133861292837464335426527301244656936197155854313337834788721091339379"],["27903568247003418114268231169802898166790727802444654977049562294748885071535","4245081695465916801437226078098308170363645091658537727577164318416465325084"],["7787434829482202538495586822369128488326491684407956040565847329630180176070","16828556115564939700861126161462336878642836394418340979732757644520546806213"],["6527839641879768356744404718469921837526367721479354687562708906696409147812","18878999844366952870604734703292182504110286913059731155406708686486929188093"],["12806415484125708826243268501841532314220888185461883160513782536915986423289","13284327152837635452532632277482682209563174209230644879470274975657938149002"],["10096169583590160770424071178954689341121667275780454969500255885857648927097","6803685337318766635256291854576561770893717500493107504470991999403212539246"],["15440824363585421783043721517862485068449660471683422289684053635527944344173","17664287456949275512813129125683318839721477085518177531817475019521281808815"],["21600164647102370431272326510773550605416114411237724661428990339297985696456","7945030622245495021452623807171569743686621628718941703540578936855609399344"],["9768894774748889399286787350501367150038243123278973768659321149006755468575","17675594125679886280025759989846556882886114914768526507041223923238775104244"],["26250265066379812489417228331278883845607359518119085636624081511935629102463","27644482252809346588438726061368332622296438222430918169351993091896220919968"],["3326450459575374075645541254901155217986651755850015714472329401586894296949","18276424402912054033993448935508458348831395783639788031011041451910651854752"],["26726358281703311764901605930011848655515620015558826499498098149724356787867","26877690795045779597073160970771872659583519408082840916293739278391712547427"],["17013587856384878616529277948051463649841142189619423420672559948755230037984","16295396415252113969798792877721704493935745913372189953715871398046431035164"],["5572791260338543929489617592223712124725205744319405779012744470712957787541","23709596122294813755994015444521037547199419215418468724162510084722432787143"],["6526208654662725619586798688837034064944349540344256759635957410440720472196","15617880946440365238878145971889340216270433474312949174070275793639240905975"],["24187271687563065886957987585460088507524388742040676105040718200294355802957","3228033615523014694367062784870528517988993255009051073916489681927781695490"],["18452264337118964698350860221397971349427932497470275759366583210878063464964","3733578988407892770136915116524699414281337331566443018076988589388036690240"],["20079962589143418664298746197013815209097949736043384290296274081076766174613","27575587710176767074434782471946178831542323812366153363090085270527425429478"],["5050286729148057339887275215834262003151474663387364104274797069168940548326","451892575152829495238466814408488852887345882392611662322064728380413027895"],["6335100865050303048893739902830462457835234220389339472732528763389430651480","25919447242900895804545981973046707521377589203824706141872039603469138727988"],["23938724625148597038787111776309430744362716338728196619854992812731575023734","22314845809107197082522581886466357973457012963354490284854819905809622582350"],["754195091212542683358279639731136148836021844527243381405694156596972115730","3928899243459578110367006557093341184623040778427121611273979529663271210865"],["7722209939338326263364324136995036543331986404526461348014601567142558987203","12840380819677035792260189926422170026729759213490433986011168399074955037785"],["9487704541780028025318209449483498611815708645318061152520584648379107059104","20850306464319194938848158284927494173464285925033111907594917562107134342606"],["27396883128047722366394861592988205904777085077412500928803010176904424131284","5656150679950327805677623013141567436979084039362345517624884181690681026417"],["8019689999778843460259891351365215992249190750435520007137557871638719654542","13177859712969679954506077813833680375522331841001564796346107843333271259272"],["23729879893363521087925386639012470795116606211531797312935789702664965692162","10994899560697033522009237141337987420330217692716520166742176115210822022232"],["25147624355140811940779558454330979004141254103300475445067383643493731101571","8271876319189740993395757558824188249344948827467763629603288701143585480782"],["24338135055348517670322841799686712108379566517494484452553950885044470937069","15976440668375398655715005512873342901303910185056241955876431897407848214437"],["6080483577349455351444380510754047379681498842481611471950749942339370933661","18161902272672143649803425288475808047223988018314125629605314777860834466751"],["444492300036740814106289487767723003629186035194387533789935228019702762099","9557468592160556153952317319439657833301518297276157660572911860643220758420"],["10316264168609953781394254456997908769414193966450600669505638621907739754922","3762517358073418112741952311461872312316637460135630215590397494853933002431"],["12801780955062215908409515029347952567507641442774981193984433005728034913128","4325825594409538377234088614119151225282651243395690471358751304813542225845"],["13465460316583063496836807319665262859176179024644026104173830443795523423846","10403778732693957327750387990173304068581714813026725912517714137864310247788"],["26749666040417201553381971340361784380000594216865145273054101920685497351204","6873946348454865746073059938797392198760911964604710096890449926432715855324"],["25996687871478337339482570453341541917833554815263300514136636825442694985379","9887420550832371836798249241405525311607122741201936686265588739761253063314"],["5917652709681879799690852901179121822387855446449914697285218229893261894830","8316391256057038419714323418521398232080611563820438376149315587236915281060"],["7790516842877120476891022621213056751265941639343590869525833066440205604010","20965237752903600647629135819693924152460350539934992753096665446853812174693"],["10119941598582262431688293970451828461037523081764231955416003651821219179033","18144014000436307561729036816382703194630378795710057785102248386757556813156"],["24784554508522096411258716438426012371766082788501242420228724303423239059205","10508772273317225461264164446851987512298333498083465647484952551730995621931"],["5582303390977492935791590769680136969445802865534773087441477127840443375517","14816654000056458728768263653394070886919489243495171633392738103571120411341"],["7274235305833365641375002223229094198588269711835677326855679501960785534443","17235872374582539663701402402697381128958111480909778046549537406816942570313"],["9008850905070802370283827795510092663247997582922562379657692978921982345060","27904628263969627590627322759492992531851277956081596714909675757741692402684"],["11826940058682571458608180309398448214178208843568139406820609618536632394993","1578940924898296400820679759683943202159796396066652823980837113682753686120"],["25944262752658643260791174230866374233465374234884436617576820650275945509130","16549954188911944673825941276910088848987079823924671895343658282813308416207"],["3750773537309722791064168415614354705152501786450059365143478263850798294474","20153092926782035387591026534509785976235815886390190107575546216313918964243"],["12125368478449985421398088826244102597813546887033854094063167930479114024391","18776736466797029157729812765154479077888407734147457085490096219370517384985"],["8904899659738636583631059175446471982025856447452969246861805948670352129325","21805209903702746425991188740921658052865727870575806839722898540297872581602"],["3965153615297674216326424317896973632008231182484068494674610897357445787218","21762967537848992837580167781313538930248543047144928097852148733850477540651"],["2076321138686001596388182578258484847587427098510325174790467700552761036227","8279267577428424628440379674973951887460688195869055182207123351030829207603"],["13839000812114145170204923775953836866028013275941420594756664802861865286067","6668672223156379355067247919358066748852161050943579804560884663189410196107"],["25682981951387101243267955412745006529574694577276735857243766441741463512740","25565728552816555274369480230006011383093248516038912475503943206313005774378"],["17454394689855003201639159769945260326329549421408395052728302064817520961801","8613535283457919306887949696618074673759323031812671940536136706292094329442"],["8372629280012235596254753590466241804644016479577696516791586080543939314771","7247737933210815322079420351654770335092841421542942328010058262057353985582"],["481505145214619801206288131808003446193757981261050385566527270255464452891","23602408608177913197598802774962454205634686485089884283691035778379541322410"],["5695997681589310511228256270235868617354406491704734479460651892232353419124","26855437306610121229480227649972264849338709409781673411576801065404325077275"],["25862841866771716565572313058908182911609166031356139774022220593995694232898","22920669825165217801910830790153651834015896297710701698768069462756350578597"],["13557197981587282470063446605602216277007955231624127696282944435028192353810","12802787820593870770936829361349230022720599210075497528073919174634955431471"],["1603121041849314968482359210394976161837568074514009538278404547472890379394","3748105749093943528233806907618585599522369980128564656831222611968424955007"],["6631364045906127011735659624658921780550878369230052769628064831323699730692","18264883787440223396705854283632013435406633315925181402423226217604282108641"],["18314488621644395314270517054731987662159869455915749960575338212965986634720","5072013065361302306382301208195986673211902716033977351765189903785646267466"],["25420152544411763030854003787948500415177092765566341391888677702467026350346","4062974343669405813541675648710704615173118310097588034520744186356811621328"],["7254155103805512896445007355636624909964245060307808989505306435041190996005","18511022197562350021904849373888837013088895636638105656738744396058865324699"],["12387255281221840488659299477492609915106798601402487761668306575799951415767","6001741121617072148365219761769717548424718771736146000153727236521345551196"],["25940621727593587119158744030916240029996792595648240381247700781633731102730","20042188960500978287196192565571905017538135708424621722596286229335396118903"],["19048066599806215397791508903550386576626390960395189034775809857707756832386","26115333770426552634748256307874448201285269136267298365214812877193903404157"],["22691259080306649582344661651525992424862124777544025856773693554960715906433","1733834713909053293194817392718761520634827182580302787661039499244186767996"],["16903983759451357047580664800521671478756691386487136766655540952332502113738","6008114660944607096385640463791122727728756840048705615348722421188778621248"],["19085514638832118188501753145220231891732883080877032758001705220331978186009","1819156706229616906147253998127877965501302376508484012662077752971577053849"],["9630364792351528949695755405122777358916521773393759624796863175588394031543","14847458575668747075376787209063199661170328116015350451826933229560038394143"],["14959398933492789287881054057679860508344150869745338395151187080552659432147","4030786604679109981885350172501849298868427521049497573348867427068710626423"],["26474390310122353769218890269218385965761837702289644676065987923845099960661","17785039099789872312825699359572876658609580281361277094971241973498519532842"],["21326120351287390450755588268000819402128451735257381235135425192754259877289","8650685563296976677395189022164574291259735870805640864128525965078774809634"],["19504182149329074133359285065978347602640003557031839681537720097130882874215","20434025583789904091186414608958562785603509878311015296431372289243509888857"],["443854042746036169576835238032077758490601611046527756385112383609019295037","24586400217073404685289096952842056063212731379179736009240363823727215018940"],["11875607572869988031021632489834172640704195191688659913913994728131800087168","20104658718117757914710182982610099382679349871043889064839802468379558621837"],["21294550725831786084583689398247292715134744626506337196470805629405105494664","20102461689681117628103369160061150812638327113830328068686451662119328246111"],["7267633732135377437445387584134348742392538193613607453898727261830654869688","6745518213021783799483772918133212321079419564573519597989650049672607194923"],["25155540400309922655768788705191634528224126608396270592899371201222759948844","18534506139971467378676984496431971564427646396415556878516714200473655582808"],["10525229036682596302097204506115171084735942641555814781680679716810137521496","19269472209792613791183446491729928534789234478295774132061956178798145439055"],["15891724471788810414066178486424480755319950076166410822734800004353697069393","1486210515460302815839757259005961956735725901880519996992684881168764990749"],["27817137757600304435124351323231598573897289219245433349140990137735294716627","5805674987678791231585218194409951743006358778283360006644870842570555013760"],["20110701580442957454631180574527640850811737698537361076168052363364252530762","16386828288315643789071423909134873157489452429643760636428340120795946145632"],["16812103312706593468385566755301019265854438143770406405853613550508614040135","9142085922885770992247338444670286178689086591308397854434372079784634431507"],["5731856295705894551226077350932809799764535838567901876237911365331756935135","2757051644876243277831712779005471064152926910820566108949004490121484347331"],["11674033470905002733063567895199914806871066905212932500371847243199317299557","8701971124855393904362197713264294243703914363233790809725935412467624303797"],["15444238141098088155053989773307263470980151712846565014383985598736723820518","3461084478228123793347484661338758128726188048822702469931673600442800107528"],["17604970339622576470253160384438084173617614011205243331086731699392344183059","20721215642315885226596844911498664918065391453156468371818998186393166646399"],["2177889943157399200231366815938497854031980888872306456902854945544719178437","5113992369896582310660246378229877154282795146762619183470048690634787289481"],["28456894649452726459629497404424880524979795649559748385698656845642596125906","22313837627467502351047602501690259164734220758632033562013403473476558564100"],["22099816635736040187326335726473627045211402846359168649006204360681769460955","18838889398642456888301663549021402800508712262726342694990917022733091808672"],["476800028880653391598044155214366343614574418243409068535637672154027875115","25189108804493400047171126094599619552618252892985719631412484768165092768272"],["16488569935700340253875679183664071327596682360019689781447853330714706127635","12671773305424304237073901448747836499281231427411215302519506874882499807698"],["985822880429980167846880465593407287095956270159194312806636875991456095584","7792916062760296716813204472808082278872458251168170669723474413233439596205"],["21391153204240389643448688445230170033607145202593199314646959595928470480621","12620251199835178974874257104905934218518270201035836756402904731432966896730"],["17322695197582849457836181608853249261767193406431377980451810611992403010310","24898309270418811278245215438732557194604316639500706534587645881747973081204"],["26844168707834599363512461452997382372221684226457229625109712324696795578386","1191807762025979880121044407751126182452213326301693906642957703017492346882"],["3214837118662677803054292626270402830551682226654469761149001271197245962644","19263641326071797294095712130372938449832776736764459592801518581152427218525"],["3334358035888829957994550567310768676192202254178404380425301809589113628123","20234081970941558889364385730077120727605488675130471835971880960329779019712"],["27537058447946400368093695469019554363782525219157205913243236504538303449294","21200201036401947171217345910995385742937585810363486594668864604383572729812"],["20746989482784829989649308818288261360576659848293900971180010045669323566627","28466091814496159051388378554526635774479608615364385084688685761456322731542"],["3394659824512678642544951475827381255173185798108282471914886317384120647524","1631162293646929343540528206881106841217905944944212342027480996212655213561"],["666724260039025965172484179069651227516336378653707972767423738428054485439","11017904859788503068401861868695749475464704184069902045667975226951620671037"],["8395267739502641343808396813312932579026408719230820963422443221940066304670","10419335977903245803927576917732794537194979374419382363206762921682973762379"],["20227401705481461627791098608577378445947362552463944968735776322938953524384","12159810898140496697327458097917131415215395120968079987458410484537444118812"],["11961144130981425721491113807378004283304214598514295917218054536600969217585","17462573823180661762312768314693739197080367025958015017148414315285780768968"],["15128315258489725607697715324971345069026564504760602248205810598519649201505","8460879878040905379421760115950345331788314659680001017974798214632460225177"],["9671278517415302257193403104697656053454359516780850047363000590578343766990","1421913379973456312047873435512778228027370539552430244164932598961389366229"],["26450634548620956637872333120675113309728093849142272175100761538074811135601","24906427747043734447544244363191406877135480583128577593906073211356316384909"],["4071344209265220919503211462869762660933097162808711551609450349501359799240","20065543920342055159362012419346906107693057898780625671425538800161486597873"],["621556410031889525299014598878067356148778503885779332388888742800188401036","4763090810759695908169752369110229153209372726755794814000842383506953900180"],["12527977645091388249223791264052030614437846750871407089797844725041343810950","2881065253627023577061918387279182568409527993580034975922576309032469252202"],["20339530164006109536112342801362045200380195859809879590141789109801907921884","11761955645374241692756594814640277243418788494531429814730335427449039678420"],["2964303982659479435878808750552992486013021633738103498293700473784123868851","7241848261897117194714769484379379877569804382258584326192151320348764154437"],["7022516687616042709703266585107314597682355333998293899929966524039220912478","13710936518386062177271388695195338979575368003135212644560066095028494420048"],["20319552390471592303080315852237208414683930194549679657681800482342501983824","25429112565046946097060156377413958055543243331594653711295979226549268376440"],["13066569942055937854096339347017769920397953012943525076030014246778670635894","26945183025561621826188345228311982364555848126475711648849278938747005728283"],["16340364053891772817559815343671679713579893081535417603053436268787274497173","8112727873957023666816698784987066976321270954763778442060085367867398450452"],["23737629201533760903356233324152125731406719080892507565872448727592300240089","15033637483411817132757939218559941306769747259417550881695729937984740444594"],["7266700904400093784388711033010856390195250815570853763958156619003474998694","8301920277632120488461146791028155745311535181378931872257473017233077582422"],["25325274385738806085943880990899876076364865023284289736232256352249514869271","3586580997923331889855412075399876548184047509076157450000408001965020718433"],["20148574634389483407114049750991083174898270130134253515052884918946924208518","3988867537153561671031272101021192408371696969419860068992068086915755035416"],["2862896240774037080083124779203573924554895571384107084502574293473402009326","8768255321042734422439459667095056389698600348784441621299991988154472809224"],["19346601763308242709404860071911096481550895127017040754079520141745527208917","20242377722948208932883298345716009779722351852666785713754945427520123118289"],["2204013019773761570754751082719745749886498369985230501330818788014366803791","28087204020277041498847445346142323785217318431018747955257545645119701581808"],["17185032143703400947603314441132650805934405022656795542606345831572833646558","16441705895136123107283646635083322021440725964690690864621850084171959248308"],["999454562489241789566849358732798444636942454468593905594093291317636012337","28875539798626151872270406901059995020204825740736871227402860975599796363344"],["24315872179916938679946017408707618851937358684477223045322588793238223430982","28675093597143938601331985502090703296863158110135363327829340089009932261453"],["10350427077803901580817529139229204188330561239458711573564352141216516935755","15726332245572029333372209323796188442319868825324652316564221657947675676073"],["16459311065142620405872393535299604865806226172464749813459340751132271411143","19715741980670716862817070203496639697141852792743189372346994328019076972216"],["18864959350167456130665369209323457291463298162302102424579828251260352821056","26264704410126446352983654956179021775227986030245118826008158442525168021914"],["13064928890935362567012301803755383352586569357177056958959051417577606012455","15857522681830344798312088150505342033810828298580572193842059244813163446002"],["26681158750820387818857744139360090027705207761647497137951887660390209738773","21321610143391705666340571396060642891030184602492846422118584645360057702731"],["8679127333672309794219708490718705966489168626056273366305427484449339560574","22777975767931479606201812157340225098576544900855609725540290480952099957153"],["3307618033493076073378054344750359271438347643521101046235404287803282599461","18717582022066505245295576520496040363734165456154134837649842487474996382815"],["6205418264483702325024451297246198234221447071560019428784844701829202080582","17148588927610452924232339312045698811342719093787125925036477898092807824781"],["8945023828898566483745712321827224973280213587257732581122728892632993501694","22139706327807244236016210565492807738095719838509338658602909946394270850488"],["25505500296873010201420214478603154714233790723510756933527613244116161131012","21168930660192396488711044445499285942345336678430177318750979509975974206373"],["18625662953743079640003571747806770153207179744343003256722197409631791826944","6339624654498540146900976057297497950960724336665132790778698041340676456917"],["13563707635734558719560941779922421393480969054341292859328235604432979137813","4273800946556199969906233637364266554146651684268875596334532322942007860161"],["12563595330882078549643864915410134557966419393801094977244086950694238640612","8543173993112343754043232493341170971612781242429254325593714046081667216878"],["11364803449239869080389636589192588314242086022464741091620606956088482559669","24875159368042496079889820943254241382137907929591166514044529899253679243419"],["23748459408603087724337504713943616290902648242880607970962397064817887390923","23163661484368531794179469412431114255646529898932469368905710818289278934580"],["10860732750458093590628448959058883905008851452651860883476020660935000905433","8920756492457808773221124741129453144718245284719239917054330571713624687392"],["3898271900744547283083561587837282622913085124227086650248124626840010541721","21025372499148452092149536551061671394081620023461932438497658571031602647595"],["1463297870276430705003732440739655635900052181002253045498128355646883555362","12234379488758732541607997391751669469220746408739987499163780582069465827092"],["4569113967971774298079326388538139996028727539374150605660688145887320093712","12572287102514641547914354861861115352078397259606400279341240928523388599925"],["26567068009849334878976712093997742510744446936124306853508587737394585523406","4134648557305342196757490483914620109778886305333257940298057992936662909969"],["347501986436026138882084990084582467749293732484958325182671437131702037478","21859141508526266712588691572761987602946915092185698925586866541843667008760"],["26134137362933641722270794246432634949258629333625135320097211534506027255682","11910549591528518731027436024843248637180091008792138991873759459881234453646"],["1576375646839562270761666983577741200948673976770155971503702976727134027165","17158261990375743470259412200782038511202316411908857327175999876770576144193"],["8608613754527568050815015526749487478162510239807266477597680118574230607316","12490769857974654828201623670440604914979477414207406951390248022959558391526"],["9505186267266360137240017155161513572906180057219229424278461847151406773078","8981136989737309062107969083780074487585215569819040943858659075923245521057"],["9208606304851753280197520563210426578866313171630616471767717408454860506094","23443711497828354848760865961179666933159587609055511457902183616820920607303"],["867238043974787637994920482789486383073894395995346534027114650467362789573","16520179004685297614055049127790428888013993390807428461381546201190223648084"],["10322218963258299974270520755520722211085168859799442975670882358618835618429","6659253648807712259734365900936004345153223432884913836061921681395191231270"],["24765336153517416726803970326426526137781963111338641221298644158215413173336","65311938294443010710358777253936297899291120484840701991819816998360299652"],["14028023388018905824654224230407504049542803113697198535950838570575404503119","28273725284584481188430334289097195376152151003376345846455040161323780391681"],["25754422075072076406630455831959392374686140033617074593564090598896459011304","10519640263770415261868914582975148625348219077899490532854382821033731852836"],["13731168725118208366637552179777372683503498811007609562789543997040151266077","24196816487899652736323554751771150776565484583353560771807281355898121766330"],["7113036802049828227958813357517957406851649825406239584147974805590979040194","14000115719555471263631057239725890525285310819136617226572516597824172749788"],["4973559957489066266987829808747893240153745924631702758380305975718254770357","22653789927247430268167775925087781089970150773884146321222448581405251640147"],["1060010938952179193897654222935890866966248467167849767630362638216344593489","12472563054079403226574838861151167767132266698328830015097520714375801953965"],["6411744154452865548291754717445971125473169913816548974312440961137013128819","1492492465106906058605824574809382369594964744670738799093052437307862091970"],["13811195690212816762072437856377709334940444836961206663706516932280954032736","8269575054713166600446616883818377167813888461130477556140558307449413461603"],["17369904907823475227570546150207053727197380437213263412601197443648990984648","9722243307597219039495256287992231284517032580659733299900542454097716639760"],["27276993029187785918544650171113432550489320213779317000722098744822287172027","14272346679645490184980783721655852917632860661318198476624188941881884658790"],["19572395076241590811714753301807770015339574398619502369257563177451681277932","10972336532317547083406470352954635504591068304760727836723511094394412814830"],["2648822120786743802238818716066313214841709219731679031172184128989280940554","4225040774553432162920927832625171516183894054371826460068637051861088723527"],["27301743193748590680845641185092542425781757135939672512287113507873404270817","1392922274341393675684049844604960870834062150072412976857336040887881092792"],["27300988525960090635344950352980707781952653158672221930784662027894736551431","6465951625155389332869690790324116735824621140802026419954928267293857134430"],["27270790015900954822448295842520310857046230016460563952608997062939483880527","13640944921423300448608292614711187357351021886153038891087709712110027969741"],["18914428702779277331161635746094359079733980704377604037623249799507026058631","14356270643673558240000952511578151228250609113810001986201406043096291047165"],["25607222851232265840877925457309643878933333598077396615158034462910329985551","12427529380672288087684801989106058532595551285401029041996091406757891587329"],["8511232972721375987335219691620926213781318434746698724251072205616345216253","14328961106239533759292646479571609020994567264932922155420369078537750311944"],["24875707490698177004690039796275494282447141415076597187803167501320012388030","927909863542311546284587656436040057970900299716206089899610094936789273892"],["14747816773262985343420468121133122252772766144067903498233946167428221234402","9686955340356033184566454918964637646140428898740202039077983386037613899390"],["24642323806387222059690775207035895372947979077516551908878009109688655079357","8656503892601507172363991229464187896855955896399288087731509089184818297400"],["25747432453510466181401485037180376726579264427783612111434016412137971431318","7439583626365953374384178627587017173059156112396512706941753861123787883287"],["25499640800546719339427226364314902136060308873039366199181468309447180545366","22383130361103469818929230728350088526507659199309592489138778367780540763383"],["9449775299654109500874343918155013940117844472959840306636335998623939507345","21106585959952743877687483648949114468480678866230200227635848476756130530584"],["21460615500346257972030180666108036404225265543792692944040253758283658710922","7028381272882801316583618588660241483544248889003086622157677408650931556635"],["23870555976525440156493379457165584785476362945452887929930403693315578472542","3056062241690723158439294045634997271429322454264817896561641998225100483233"],["8018925899882292358883115820152068836397077198231315476549453269454398374362","13837284147588072680977348355452001287594939340936326131082484661555333265857"],["23425590106343957580604109591334405547236332954829152046008575230676048850335","10005196536606627270589656397030762989070846724602883572055452927843403760732"],["22211600149448109069064153078284782216535212517478302559571993900734608351280","15608508858101440419058798474175363445817363546815068477494819367244133125803"],["15994620430217579176089239593186789436629251900721528540037184665281627132500","15793156036925614057490043895484081611782598009642803038539951098806525502"],["10313443145044725153128118615561832886789895628423512700899802857384552992365","26883864026119640513557361753684039265017925244837874780907467921187655445612"],["8026469387496017362681584257175556028569449022978658797081379727110638521384","4238468928415981451685004602418937296835380348764268032173279164233864622642"],["27071269163597647138492285324329957260126483703155025808460230428864741452761","17572129236952646952373809219657631129611833883169358436492293358588176366045"],["14463283436037613676414843244964690241052927226721235744686248702295437379160","21719451803824775003276872216965544640285126067638332299677806756077993776610"],["12444083313859412337017165672373222062936145694516752628622579476976574249341","7344158005564665396876975187238191887985826640461587248253204203976220602975"],["9748024971647455179296870000640895227880393204629945515433969245674411763806","16465697281837239211871127795357011345867351872232698544687574972221347052058"],["13599673887720092060640796924031892814539400232489137875891170200495757072693","18897442412483132724181328692294473039065648888501650629150832679461473445251"],["21334383973348419283525590973880328343918390369491675592193459892214928243645","6447098550414116493324252446548304155855182709888112572044965213900367219565"],["12659381862421005052692985028226088643803294176501146408491563139516890936485","4544838270448076904388416594181082693418622391430704444341553483620668352811"],["26048153579754960833177532971976640841040857959265336510391574860976510320849","8474659565260944101170151002507505101815982622260022484887331271634975866434"],["28691316340954661269282210015498095074204185890704521585925157867038400371658","25015098337192024760630069423484155446157684488485274138041160349975181497138"],["105573946117547652422381504000637126394132575104982924669011385882480515154","7116410848389131034865718631932116486867052451325074760613395416439145272027"],["13937306162521512013719154574028124418575575955625368230793408564598199418001","1528213965017301367779424788529510556251404248657581569307717094796606678419"],["22013303024953243300048972668544022440503707116317599951111667685661219133817","20432305955377978690238234148687946101410329595001534464190810201111735156521"],["25770036611731221120542813846185306014717053503087676433544145804490221858654","14723447378837748215865566789377234176461035390881726997758186840858118919219"],["189587495019802150115639077596790968502453631542936793398584772920303524554","7846730501423926009885256075990186755332960918396870355085322275831609731127"],["7997856000962759298793976158383409045012941907008542963154279134078929509058","1212908782150112127555500856353159531651640471991710743690698688314732035537"],["4129803729456836184723245650038727319043475426890645679400047090851397949777","4632886419850727462739549378670791745683904541292622810693299511898741133883"],["5716186868403861172615392793568431343905216934079936144539906252233884238072","9889449887043186736872393894191031567316812174457825584048537245641321342323"],["22764289711263782293513080322938740316496610685576318703105377015650663458283","7938444136962138152599181443020233710787635882100415898668803909574742946098"],["394029364592767249491590773014510032224436341079432167836185280759848173326","26746962764665156594999464493738098560646836417370470036323236946802425455005"],["22081740041326802642853207911286625984835395856362375938424444237815917120285","3220477253959604357222697249914614811483203191108249667049057592231964268786"],["16685415809955610593997151054766610080580414361213866093099032448255419700406","10487600956793024637921004544148220592123836213927226678265840248622069847101"],["26615859125530954159296498513382350483007985468614899927216231751466645533362","17960815815614045829099472498852513578870611094643480267603774072480005314530"],["7424873573496724211500087737124402529251300868776699483788255068309138010222","3106658778872513985789910603186988083605706516807525899363640663607166605774"],["18664303015202345105559142321827371881211502116911152622636379519868167669576","9641851710703817315751849870840474715345184583455855398936459157054449514461"],["18614340597820712431567116898964059983456387373980347323165476445854557492383","27290816179536583639597448806162371229838566357407272132426456681109024618106"],["26107664745382958041816577737262870825831808981034573187590826906596058234402","21314303844473457795418467857801302905890466011289327995244310252652969323273"],["20120084195151266583697534706688596111291334213946028304184953440834502148494","14508387842205787761704533406544366777669041602106207190647466279158304796716"],["5937523358125640903234207254717581905072082459165565517341593822728418923324","8541893626708210730111435842739054526187633637936027461622454207537300703482"],["20494622944767548368147363207028159960687741000284843602200256321567263270651","4936702737521368471677318789633084527795438943034830967078343409601267859713"],["22690314869851681990655783974295101860532037656868438967832011877317426940296","7666133183531408877569010467251272554265784588717308933859116387848937873750"],["16192050090172537209912391435596499422372401127761318825926014385422139398443","16432964733922569761134730895002464048876011411135902379326361140896997364155"],["2698691564004909727420944677851139237807697797735174679588830495148430808520","10590858230104801625798650464218789499773995649563008719864969326608570248488"],["19556264122261931746580138556000176731740600320567891204083557741867490685036","23995522661251503359939643785741134191823167555315863126913344923734659615054"],["25318582006065167235857368025843549249925543468049908938907091171041777970145","2423740915023372643638383134260924414281126401296387022606930586816580521408"],["22506625894548591190883326716526974364997726950513822856356798251799315701737","10176593403837587767941651087466587183360139807480396792105048785684043108341"],["12365232996649730869077552743793127957282828784505750829402267154121901497397","9287038351241971810791679814560040544431331701709423514061757791047751760856"],["22152775619464650296822588956001218561757493144374106735991353693341443815542","4267953353023077477378609184770062839012098210116550789292670730013824985261"],["9178078909831466979795547759145312289207163471949202497542256114223102267653","27449569710117018025244418366762289535695955362226442929889490862452616462647"],["1687758081963147583472526957937472433051609151705490414792379503635730219057","18622588396927879655648058364270735634758789386953118918791285467768240589063"],["23453000574703605656450016944439742660304087135184015477324800622752289032238","24914693009070529648842154144404330324538665759073730280389677614981551418941"],["5823000761897478824196707902981634576424658687273612880704242044672325907970","13283395278127564269850038252550067333244403434676902820060381014407153813439"],["16206855853941541071197739050410505792404478795839053934538511749612508630776","13820837389445816253161035770758520209652069278171721784075147275796776764398"],["2527000727712367567195603241744297481633806417758573366553030455571291399733","22373437308091599132176307348569510951461558845977497843173615937160196029035"],["10816839315696642985374828793751185051314651389517590025033534506784863499378","21961669110516976998577288627272308395162994957058471782944972898147572322153"],["5076227121101649986013339361754717282537682424039451493223929923863812908723","27792910306999066656334328534438844361923631539342490756300449210584232362479"],["18622179734861171337298608422917888051139801700002013154110997645598307338437","18107934035266310197679568049103361884431428112259557412798837727677679201759"],["14902447997542292707153335563580911879848769100976411930283383236935518843118","28272111948095241241126366667527231764821829771225527754098612150383230127133"],["18567920008196971571596545070958647279944370013112000348573759226748999502765","1304952267538094583065738705352766766757583547010858299321611317818828903692"],["16080756126694632952931344201958142099194011356574642857900378358547265000326","4652412093169679016270515675267208744465888123794328623842501222336772549397"],["16837874489299978364115991467164291339883245052723686422636714363428936514436","25916211169259964337508547749782602967481011688493795534544096002732051054888"],["58522640904204204610168356950610995525608585383759760183298512934369787461","20365826347962507436110269470455061711772882129075620452857591428576367364867"],["2170238020691408302056142768673901298795347639575595750069490219882736436873","5586757429057284149956806855091191279310071008812444669374720046379899063969"],["11787608999796381984219868086471268221348531786195978770354654306932978235766","7120343232718215276621466980143101308249643145591982362127036006024649087908"],["796704635474976314320502906424600361175842232034762005802556361762633121537","4649443770083562816651382853920192461036441687167327836132499909116231433009"],["15244982826162559965392657924930733506964274796412538612337552846488534674569","2502937350615013437667413067891273877162380604091820886299057204607681796437"],["935891969707921862083314238794854377661956842652932877078949292431493347592","18215209505919241797154815162916766344659212882961739810729557648076586065507"],["7480553717157059021701646584035828381827306522889053160533288154609322706948","10498937001896506597477253115973685258092608211471040188214985806150743214162"],["17303267139904634123745839233339127606421495302726301249979910958175527379871","6218865596781738415320221232222410331084619300707745441258489822744418168603"],["9436822754747457083465702884695617036472338559383454470595692314327361588392","16879250353905358390419213974715483017024074019342293662183739066182202273610"],["20737050039901264851201268721586980986494553787620327712308988790767592723469","14627646151030188383835937210062648951027051934713958351395050036947152809844"],["12712733021408460197834569595017865412927582923650879197870326484383582664149","765629387970661268654795278144069006723768778135915354339714009754049575807"],["4711259479398314955731920968494076664423106401745553601410071835301969427417","22523483580342039541418437210927951024539639148916222161082074624324654586273"],["9192528771728640372284151881426987369336846222449187375291588540879887893844","6006802589559447233036888937712636548364381440518372388906308565815297178424"],["5338702686516078216084037187070816174169222098933742432324668338009535957591","3392146242380292357650276777325059904618850845129957756158192761550560577840"],["24366200968763777460657290135331624005934867981821064532380936463709413545049","1719027809755018042119388457254674209906620157817327153625797970362658285561"],["3512039162562813216664755281229185470139796247149822214554598415296895034494","1008161453999142880276324420737020249211588998791936822795981210563497282514"],["15798649235542556298725210639372079617537854249953633114867960044217918391501","10655698013941377384899043807392277460699638114008555460638152038250964295062"],["12525871631506069196683762851988091728312341527598555648880431150246542887665","4870340254920091504609674195685364954834525873102868334331070605819082014246"],["26973705584092300402862528761594982005631283988644056268110093680316582619809","26611093305315612054259147985404018267175589818124910899446687005982072312392"],["4955855927242045531848825462432175925821466893460223565930498946079779151543","9868934787555207208750640162822285237127873034185443482170343754886613666552"],["840644760317149487639739424521978868991692153325556243302205145817300318055","11269189406804486488903880980150294937000191188811186508416178190464927531029"],["22406722560973900796951213004993227288155253234617183060723754597668723731021","23713359528108087629060772185379172981770690683706028280578205291458117843061"],["2832223998996169807040250468362461677095855515046319756862576573951231008828","411841524586525131763199251098981937574406183706745654843098226555471541084"],["6355840333699761479033935319361848427899409929494256504588672394650460091939","21087928391457566522354759588721479253205343764174845387281307937640152555823"],["2890083811033900790115185964954071379220771244947198716289762225290370694195","26663360640299327796372975484703651380259539887924485340587375251100767675468"],["26881464022718910091954603133510122514914880338699318587102318776748512218142","19249742685723586587799464948802188839931185655562527620656649329074469015068"],["19490170772933156586395235152780840636882453852234794833568181951650613414975","8246078026183811724618623953054112955508543441261602395612565801106179765568"],["804524663780737181605051473061947199252156220780354999813775189284744082635","18292122596882036700190073831208374824032994329815512640384571855195810726575"],["12249478610606015372900671359601119839510667282287204995655285397655425960078","6981002164858117208116733635222807787625870863594249189196857292145176706639"],["19799255725363423886570360035687773005464684109063709217060380639958865534558","9040587015938828213787361077035762160906936534010270696574935983938106881007"],["21516240408607560330100149778143716528731323136736806848297730397268596374151","28595980880218117502783181144030130407456386454039251218456116770693302727014"],["14420147388785379538703904692530530171399036252250459917554833367835916846978","18802788102936363582011741494298060558431397009255158597317529668176439458508"],["15072819887773728889527072486614465899083904782100573664415154305213596294931","10555283367881752113072839043192935485599269701761080117829155214650597446382"],["24367120160672995134313076197616661947043907728907040181063362910776678655104","8541633616169458752436679716215340643548606104965422493162847403646888096023"],["5144340965783989134926438472986052644041817868535111373710273248609422898134","18671395843326111258005761691554200486076429560962461141543439205630065306254"],["15140867874339422667022434907231875097261547878782022333443563806270490363466","12009932203049451881453087065874876012801451274831382538240606078536764431234"],["15335352532640581899976727313215339170728057085757739221812700292419227131006","8507868317913073392092751468030195617348562481866608639752048084761449946218"],["28169863685776035452018329298044816633245345625560484784307099364292676777337","3993510430647394504141053953412471065563560259731897882803175133892398269424"],["6583418764038850875558801232511757509424660430752948255649391643091250461919","23464839295149452251182704313107419030157731057091015589445346929806519305976"],["28923767136680313446098240730936700042119033302583512134827178729641267527894","26602556674696834505816427144126806072224742210925714567516682219657689835264"],["22718525705150309562732923519056638937972855379307124101874841878872606157968","18809767295547865924964228004250124873108311957780199651017397729548138375144"],["24710301948351062546612593312820319390405064528786322769349752699992560225931","19225984230665052647976794449964497580369075504978121172655568149608153988598"],["5701472129976868154393937527024517519249449948493204337916451739613409225792","25606190433837948236655628513387869374335297480831010274630070133743330185105"],["17369914803670906739614356355530011861840167001480437289514285117144284012752","8113225748337097692254018563342371917298276800966378278505158135353793406186"],["18657826543207387440769244167333879439132472619396657338056247947196618332042","25938008130496984240906112098465149486471373784316901527945160546891923415825"],["15795216953279722674823271104178514259740086605879313834870220742997015568521","22545611469348867888309811118526816537127350363312586903829862692003066108344"],["7906577587868265107224988418156939087198579843497423441677853034143350193404","5695476604629146341158323220815740301679542630669049588869614234277293803480"],["20630460255490058578284088523925465950498082816182473126278172542769298261096","3755692364519395774624896317605838190720143715928192780446007549682389848606"],["28149199959049547164875896019712518907815714334406937675836684891543324515451","20558031108592277826294173643867693055966695501908071455833120024995626886044"],["5894241289642059002002583426466145205410715612154706067068128352183618596338","18452182772328052357850844806215783063225132275712385270817958897818801634327"],["13394045891722609631154245915830823193588913846914841258229213600285856201161","1625437091136344062707291391524387266870699873322386465744285641192539086537"],["24500714778081531303770566740706588868673253171654514299983304638337876268311","3331944520809192360452049387831784096614219755030546365198663356326293383503"],["2168519882693720959648182768363980856330026120330540765725638280360467462402","10964091212333690617823491566941027543494500083209733745225893431069486423911"],["24571272566812523070297813026445091956119056017527958994155420106762872499945","5900021735668819828477010492157043225381920884864521677920002399983292351801"],["25847662206591034001424251478356421884644460059538398137794807075782880946808","6480366275489918746867927363706253204780206085551970707731572054475980642423"],["7709372055056555198669333078516415329938098298598302783838273043589106126049","11127231845738642553462553090014691929449948571834046019636497015521620169635"],["22254952410680688190664068502364656722949429888987947206069215602635568741512","4180568769338420271036956694959753688277550871092077320630147674534016940259"],["6540390545507705396618574410352888439953543245408840719483723281830407278156","2830941002957898508588679998823851731741816243356744059234416544753055083929"],["9144503368423648952897718088117222351089453174842793355466127268446870059278","24281205936282732946808839515926167074024837119262032986328390164164402044966"],["6119218361386956329599047832785763211825371790880506176305083733375832196696","6337275053031602189836078697484659866878294086882339274339211480116848647558"],["23978848013554737452984068242716910634044645671296428680822371859993809714705","23815753322442830124511126498218172302331576457820755593716057399166353250783"],["4412767332245403982414407853224873014239607500358891227681721497930328622992","15067935387064394566626405190624888072131530744838271669145513227401558526059"],["28204194077861006443073479025851430161325837076009744069151239192690597368470","2760304362559539344607321625486370871839430845248760650537233182592579677229"],["23434276552735844059447784087296787393693547196420260009585050991778063374843","11070125623512988992628846972343445962212245336340027490918911905018535589678"],["19909840245016364385287709702897298439517543229283431809690281720741963736044","6938153143475923405804499626024144042965453309680264614926960979406235579870"],["22478180997612593403239405500731754640568812514753934635229085417533334556248","28338187187466146815610456368116722844266748609505330172006730446870488811440"],["23596819929081431309508229003642606627491896650581158677969438222763655722379","26894723817332038311334667737896302728444948081839784084287449136105960975502"],["23515808068293706800845993343037406435935795841012488191905379389101676284128","11049508768460978989524567215065781581029632579831093736141015903624032270930"],["23038017581332923302814120228122000399765217535478556086371677528452665851378","19403635583401528351713490943317428952718359247758595631328406939108072414136"],["9323354205440753223230099614781225882125637504017915182444336289292445260490","24654051851384051421103047261778295529503859683292114917648701432964069938600"],["28372929473942849576049893717318723392618104291189380417108804642113848199261","9405227395376844920670133931437923770597923605623764911406365244407020090848"],["6905114510113992342594128087317729530909075728067753854368206990334196626813","13597927223447265260334288225424093648374361731647566962055861522574000063917"],["8768620507192993760201416624807885183873249957357448740012353397125842881543","18001412832583057683167874893564860698065301590214028928104063102335342835450"],["2094039781296027123991388513377530282937959483696965963908387158086588174448","28906541207042053541791665022935744250959054085832329171516288299145868288073"],["4672321905345093142185892206037816271402452151713765031138631335968775980735","4661337246053724771280688946268980203407114885472141832204045913117407088815"],["21348636734188911501137571397850002211379872481158522359065859287924368557501","17188537922040069378386779618319313193562730782051931880828727562514384723796"],["989849886682212486868983335365006961729809544289164790421895830040841408950","813074240247958385966281129916624704797963582603046974884009631526427248820"],["21976720019198971987803670638161733343397994896137824004106171860340985024148","3891356735277552975467936558279622687463595014178733403758381337452383974182"],["4623442763188297103379916383862937744220997944940099913402709292526251344344","22897204393326889929177552860145050317690702552860056061680877616843966942312"],["6153401560334033715371113213562949992376915015679567698305491232997294418450","7644977609790729097613962387592488108070767128561665865544455016462986168156"],["1156748544777321488337390657337777532375923363767504696713414922488874415272","12346807241056582031696574889461744288010984486178027633402540100352029157575"],["1358449752482084774966853330329916810920996489635643481465583842465729316542","1408641249641594137190337885886459827827004750727509017484073997421133249334"],["1099896842115239400873578547040119812373258363798201521449968315500185882297","11796972659615511802742665059637530489332899032541516063517605748644638834289"],["23841382517743398574632409714420316398083306807651892984314375057018213442861","20382263081123300459437588749189668608452713786223364496395863723816248129566"],["17382273143763419594466743483327213144332147937623174515144101864878509467074","24344411928036311118512554340717063794343104652509205012047092884161839325934"],["10502863893854077116968813838964535362798848126371616905872317015409757143279","4435096004467976072033753449165301021584022557080770963519195633370179282268"],["27502040375047259027554587389573990988580219915405282190253915551897186858956","16579399451306495165893005547252684976106540272844129583329665986317440960304"],["14289520103967385976887121605561870196967580863697960661752696721736902106846","15122469113695750924156057944680285179053383146674858578316212818381634730069"],["26554615281989475203307330884903379085906890966976521061397093625087632149768","5051747076522066217860530696925476197223335137596178288913552521635583669486"],["19881529709188796107856104041072796588865514083567548212100649460164180457634","12791574969503941416805297174140263462712519987451621493128592386600081076838"],["14079543675330163791218096534661831714464889033962838371660096826880012909441","9728001372485496359353635255886769645830487415322981043922781111255199359956"],["28792158563438848175678440313665182475577831897334115350111967742316800720761","16140822888458765474568829082485229439862773052450272387123689366574530996608"],["15610502891146644527284202712092819399248397428076862160187190053823539095126","7891460055017354247606603891984059369946038125383823761519403324489751791384"],["11335478381428914011041511681504674010056472796508122751823876533703139542777","14356181331444025496476687953694042880169301406936724146779351519255377089347"],["26697425737306492556076433031964655345696172478771119769314355855156388629257","7182570171922600841240670279820079598558919745737475201217517337429437662817"],["20298264360656816108961047850881992902833594087728716971933938733283431617907","12378531775201045202554722655011460173233587320474772343431818075189894756550"],["20404263767133426127318479401056060499584602583534083728362712097489139307416","23819318203004547501596145172628126349757786045948239310373004089397722458534"],["15657971813458668531931365418065844752673105687541494019441395674501670366919","7363628264533715014191983899058882000039260550465008683907518272840800753117"],["21702203487675465183884907158654379438539497111315489448031228275744967553975","13071809365372280670367463047452066507640010884131030424255235301139281962397"],["5236287385466620944226989542230515401509703697356755149723566384986193836102","16899846684970957029905980778067992504055149216786828841650001724120437966355"],["24132121618884015720017380894676261522224259848681860772637560643954273045393","17875782751800582568302067413887804648929489690542916049873929676798905473869"],["109244287836984509639440519664929878921834373262435267414968875694090815245","20706370050286543568769887073105089602166239737390337471214615829658871143010"],["12512239448029141057207342920535069118684549326867994250165681708376262042184","22253567191669513657869231759896672774218541737439287255303933008559761943134"],["27523045702687850571582272282707951870828090720269393107464716699628381271565","17762311387046796111786076484384310807503983302987133139195509243883377149590"],["25832101973484857447165117003264644906285222616645068885418504201049951760362","2792117482355466260958691721952589092573987321364505414978655336534572046566"],["1517861956239899814085800184247139763600154438288841739543614561788483801102","9139770978191541716625832697816933643775432129338186671863080144582757238961"],["10453804494134700141728429369852129768281311964564844119640689252173387027826","1175893129575996858438490601005397317271177746260246707025015204624484354066"],["5313371434970135904711790571643661012360125861853012745847175207616667430621","14085838816531325580428050079068868636161093800391925651879991162366447239285"],["28471559625116140447297260223055090810891353679151401574971265988401978355024","11711461521037110342617215849525585297178046872024954007440700083779775121162"],["6574757948701269333570803818639695398811708098016116890778528211655773081119","10615520282183318345354989636393340994263639830740473622320106581414510408831"],["20977839811587401913884861314572926692994081547866978608536607775067683217499","1739061692302175659217591872533543356324087041541150395720829934197068702771"],["880586936055201977318233617855651966769419380409994842325988999172787024329","12455764644652804751167355348947630614772005949067403776561212679024337831840"],["1189620959565756713337183489183349956859195555703782119514366447514558063046","14134751736977260291853519337134213129129576416029795353643927514658260056437"],["12669671865481142129174388671617068356207113113218784882557578871712487271248","16249842183457041724533280700531766610414621046860333698918566519622126058541"],["9264708444398775636246889501790810754564202943416341949237556170733831598175","7965342516214909185666621344462204924220385349638433088777150251258061051158"],["12421714512457202200622235725303630866149797287930162133942189638076347231764","20597069103693363783367729326149251440464956031467829593077489111589491132795"],["17844531197294237885591060864895733969383884413387400314911150881204464306656","25599408733431394744849564860579759848655750106123687852760508951991920337136"],["13829761325424144272696386903503993916625071850520382837773759035375355445884","8009221399475305586901134149723317924192939738225837912960555137693427325353"],["12266790777895833713005429028037628947480855162694975900284172378536394541700","6771564088531606587904785335362787592424998910105185439586181161578590117136"],["14944295655010656915485665198515786715153256878824441988496061252344105793698","21886551396943488067163245275876460188602589487710780641916183556576868106615"],["14875162091798436032826636988369783274481108277738993368818594988799275441151","1769029189249842863710584670511853456068080361370483482610841926190201675242"],["23291184960265713839735548736852571194370340382341625664448689831240211522045","10873352278256106139766294178562709380499627767993945486191250512433629820437"],["18806419435234008797023342320662088454582038029758556944568725475648274508163","6948357836810458950382209588077916220440741259623472669416754305957080850913"],["20481120243315484347888134549809966711882221559053521154258616380347433176686","17873769617310967195980813837825547934184714680965433910437500930646443341736"],["9085335219715990397187957366572538166099095367540309386987779153216585919296","19306098906780432867745144609075523091639639912243424463202827112651838232255"],["26331355745773383358396615530307591002931566293320296623747987652969869150509","2024539894939426184147370246682011251584658013449249735910993962646877140317"],["14192323966417136006833850051488945674056014159840271058593989751497033335673","6952979362958272122908447329102789939500293785246052757688660489743523401124"],["8466255844017815982514262073838491209465698120546129480539273349422320173819","3657246205759342700045183674519563538685640196393732557154465810038201615503"],["5752488518769096535168524467161469691554796565152089869966002668279490358738","9120944309319091686883457232080538000888807438351783342489614838618109099071"],["6841201287058665571070808031363018206245642955097470645377290389453979180628","12416232356199421956466989543136162148704168820203355920624889791877514895606"],["16942046324052298520095035036967618707599881618942142252197440168423496831583","24516838309870366572654324020437915665757338896841653566268781477439342420000"],["11461097414659640110683043652825496448069609188980513776256313588032418503670","23422781479612643019971251433284435223124861295330580042939898878804644525474"],["27926325400871513567989653433522006006260846026850970087910391507562206220858","8380121608028601269651259057335545757227085395861295922865050400820694867375"],["11456880744452949270490818795925446390642673030626905800716253921768258074673","4124705702956874228275120945689040379788367152134568415652780248296610529415"],["3492352274756733819194537126704409205326507762620667766717553038072504268719","27759620532794876296763814068637314552388611111515004221828366935138143682858"],["7812443870095905306730593417545994646046826079728161600016975431995862775806","6121121112718610203595253537528400187970429963596846906122311398024467900569"],["2269990185108504313163803760062483317102300243864340875000422932794293420316","16855585374713678968116307372913649488152399215321552868844866361111730159784"],["19364652362861280987317243502107780233375440228819020943893457025055746782253","7903369974289114182213906934579510233184337858978037511888230164899370663277"],["11491149881801643717183621199660054961940145806807177873543786204450845792755","4280540531032635765106126650768282523790330364308636622371074342215854169808"],["13894640681439618887040667093504607544948068461641371509444342674033901035863","21665963228407721005436548947891369230174655119862802715785849375044111812950"],["17658186116067374787357054029412497284984127606969943925032217834476082498535","10806004969578847129502027424500389607417011829300460228477795224006637342055"],["17201128621478923453416339062634835058072699449371533440635245166572479725110","10732157951696824891764645440350924484183008471420124274869287194515429398080"],["5701798910190708955904432979629598300611950546002070505379716395261474782048","25127834342683913944609125395094111763309485945903787381481642097564138234902"],["1812359855299785926639213021620760090933011276330102207058967105802710676759","25753895285128722919204628346709439174492181438153712371362175489548308252007"],["27432910199902637085501849839193390662070933469945506806806777634041236341033","17829086755822387166911109758736412387542442394574936159622946531284114789953"],["11764467803870778369424184078051554812955207764004300017951255637458283483215","5242889170032768173097858876055069233499081025987001138139047249592490877739"],["13447584086802183355899316925875557837564864721476787306629266854877918500829","23203556620692417554705990931940705702596226704079613923272154056763448478232"],["1375480692909386097781060686780732953200506862849802904431880467056032101398","28376257298873345934680880913549472696845466600965281927242685957612008711605"],["16813631770834558017170253993363696365855884519681554678229439679700861830789","310674332938625097244621065551563485753640704253921685771677430456641930707"],["7074501449668961326505780276856356858549680847673594580598247856228625569508","3126469023128478754116597825353682517232626913925528485849585196372563959814"],["6929789721694822285630198469856556590310526200814411838471349583371637428943","5084874837599948001850154223786794402848235356784557049172360071963658037856"],["9944657312595869601996012314635416432843693282559876980950083970648527462207","24776600614934040795319651393741699326758888715468965791302275213697313912752"],["11810397456034280746797371298263322598260121885489823128527234715241967487897","13771375534113955930151840416570682877472164853246053098041294431448882847328"],["9197098770750934864902602890387056672723199590039288348681949876462658002635","7832569476149934060541354885853186011359155165958666181684506958606410514808"],["6927118111305612608295943824131042662402347889389566380403865304205443454688","14791353623639921162674824551689621978422286298155781499078640068453457721786"],["24855349061934281628078519084231976175731666242452592765892272650714594269124","23170972232385749116467528310731967014887402623936475293878544628951322590760"],["25381529575335815775151323885682214783997352913821277167151703958842815766557","14976849580927005128356481911574528481417804097483942556175891174319437294162"],["23307128059944320914013048431154158436717061713669988718276489340529401824154","16035074139167020454232558929069952310266920471544697141483938904975094157427"],["8064932676972664040688005268857470249639363354002543849120486422369130334448","3575468179406140932191249379272163786721031046838669966490791994354450547937"],["11673151032748162365514268645820185527411915564297591000342059397738640931928","27823558756479686696747940146136651925949529607438410021685142382234248027068"],["16702035520927477863467019153074261228162711266748057014947369482055187927575","14793545427659559106042807351953918451736317614148282271162098590234001734302"],["4919628986874479742926312079607916036022143302176358544847758994695602433696","6038354031638363520329699362089601587850727865150992441218713030982897840449"],["4389199807056697417427162416185543284191997205235694421793649686268606166362","511294967306607298835973268913407745530380120764018913038657194869259999182"],["26139164525606759157495736402087803016982875269062793676287160510185464929321","20441006952421184081861714122017190629225849817434349915203699414119593852328"],["10993282034676936142872060842813566492040263364665765868009036770546124876807","1717273312788212572440230434828633510434101207764704738119854480378982544811"],["9140293686022074604196831095193414956060449391058029576915577022536284356535","15003583715775272041667012026115564108649928883916124804935134974035387681316"],["27034563074304723919374355458624417396072367310081744951544581376844059801227","20675170549259393839481703890956939420397774471241739798579998742779341372810"],["17089631047456800549039633157378892817242558220086710704331887500693008150967","26229892876680174504827105668629684481927813778093649860454887807599386223126"],["6852773963288599663646572620255452179822233357914837193333173512323273171012","25071019649965689375957788936631179404628875658632705649064273931726993371296"],["5891275171302478299214620778636026042087699442933020695200889256559300871594","15819679628554033807257063301414794165533871316603712422259784644858222213183"],["6861925744935941750812183007855583878626617548756317813534595837317986692306","13592488273492421726098827182320412776873030507123945817613662714167107041305"],["10443677092539222788786197569613396286527335908458802523462540790056156624080","27758113652253182214772846531551057216037047573264938425819025909408187348960"],["24980012416645511048662809077936966408633140328912551064848841471662273336279","10440435518521223738906676142997619893782090286650420319504944002956631262043"],["27255123382897321563809145672566536163638839208970886688738393138105491132215","27059582304104982747579621836838994758261486025319846868732445831167854257713"],["20314142583155715558755401669772466039079263222625425594540972346115463227056","3090508806532203392869618029559561139589498885470808506317283283496600047992"],["27032129557960101779354649355915389259855950349280672620295150070675422105864","19967349764027720761994356140112951425941127548579924374219527630133554702224"],["14442511954362747255624531544352682941848928002066878746864861839199346040249","26008155311297863110966776557232703683872515881016055962166573624056681702743"],["22071742899254406860701844775847974770902649662738942991985028556336716557245","7687024482231227927650565249623743811798524877229560776982372840324803360841"],["20077724186225682747224997150055151276641894136905579292960307709070682107964","24017954787914799687183769240259333229376085965633237295842519312462756804932"],["16152189744683353878508640550548460540817630159747281796170380063068203164738","12448426539907777609079039790607876991959969369300088195647160109985892432247"],["6545347735280962180798447184685408441490535455232783855651660015946304935013","12255549821077005903560200446350811173601104360965349488808861606648227758155"],["3452592517499007029664363766374056510935612864896914486265809073915557790285","16746083261086814821661041826544548594177636869906894731746801787538939216955"],["15322068684637491550977970352377147226868458442821711512686736681493617164906","3111897051272783771728060381227372407833570956169955726373895304667723019126"],["22892229892353082320170980398578362749862560360320122933528029034475604475923","13318639424902797694007629204249344086947191887011594582404226358614526519885"],["11536349997028470895407465150867350743006189788441486301456588677448720634509","18188337982593170973641394148108514035285633380239416087292284738657310156312"],["13943290755616047262939905912845276410364484333314253123141107714626002344288","2014855395246940146484073771421792026215560320857961676432500363648116803374"],["8858399900706352506489428397777059338373574571916214281283122666437023421333","19489308172067185289746001506209070248649153884326061672570500023763075015982"],["3244146738535763988514173407955564616432773237744424734490447923325566167524","1633280807805208389668663637937797633779676152172009946460250096624642119767"],["16371238957102608978723542752139432753547157513988900802119922360273227743191","9512222093970752297900591295673325152354505810997848035182259351452195628769"],["18875135137284079799493428473058634885918631778047292626987095451843337439180","17503572832486662839922034914626398265509868050020794207161156795874296267246"],["9911854951667936035212880152521240856198910396018938398589292583624491784784","14402992339377281840596728250255375392883050075903124041658481523965613120198"],["13419173096436853948448444580803600011345520096963812961349693525493727592227","2420863210525518327568029701506850804903692301066813254165159251746127276447"],["208007916534911075052148828958861569885897345332488911086180044352131125454","15853874651622387044334841224065463119412975184057755613311102178639380815086"],["7695139079448943230977273788485267243871449256798231577434325114364425272018","2892344884784467868086678308428235517144415154327036014179646419636737504262"],["23807705069132191194318693279701236311286855888396994608889605274813660314634","16892695539655238974033687598609384562695319617012941481881184350915051532515"],["670083491930914488960771172909278685882024087279838796761780326665688334145","8709665815418230082261518463869843689749653612959740360438117746904312792980"],["18960997766772058525753746829021483826452810741877397756957954694422657717873","9164166136648307647408569301881067387859509406645528288798485735425250677434"],["16131594931774407162444615173385101114465449808253376599185480377973592436833","8603417592203755809867514949690691777460168496882821697679930648091414999367"],["11504892878157371134184370569206055875692917314543937734502977506233759515456","8875117710024310865104236269697976116573076163934398448408352719014448245853"],["403952845833367483799906848660628639276209615077022085239529855548313057513","14016026774129008344308291808422860356922508953814325044637076184947704922767"],["1131347096159395294090763133997821425756284461192305869216715324468341562957","1921503749850901787930714511789429812154669350628867883248226234728476595713"],["24949806243882602065020909581669821083304782395938123518260157525497906303214","7136690983327768217560834029264958014774116223347414740377780414721941710929"],["27756611077022424454574435874949008657279118190967267821140201371172252810949","24803378300644652694105138636086654309447923359806037474845305206236986740092"],["26747222579443953359106092259232500427673043909694521590353827968736075124492","24148359148346107135186127999050489081601820318134181479716734548556199878359"],["15866688091559951734434004501639622749064142574217783493143118341427640188227","22465788554816554902324883430490871129426262387294493310084697559381558795565"],["18132928672877057859645363220748955174349104791224958494557967160457712394364","12556530320210791775365440427790015393223886363122977242710535918556922393828"],["25208353281908959176787948819513512149163352252494502646292271231955533820011","16639490983537526832707581272311511647472602259437249086197184935083246159427"],["15696501160529049086373998389096965295881616331229444598133257567725054576027","5105105316097050158328758980390614046754312217111147199998536926156258288842"],["24755718996754497853610306597303619725307259470531340543173883532135109495882","11132440051573654425172118021199972918993125270112067477628337840751158428034"],["720071336900261049316477574602058874543697741634269424828987566875527476374","12576015691415033971145413733797972739523050101430364277839392689537188195952"],["25020465393239889582486826838786089027750348451627511224347184014150735523364","26665703872765426259889767010669686577464675946650296222060055106992694227950"],["19828627468700715439444600065763613998550200829214534475458122311065699499584","4591110416033252323364281436376507650147240006549148296997920441336238605066"],["10239552912837643427295625620695784016501139555056414096341253291162146513403","21697630783639825515306646961460661004473173090995825177224947814641711749467"],["23329885465450864885382363711719257130139100180671108067578338078223267364594","28154888407585707437911378651296529276274914149762531154916454409870889868586"],["21393545887592934736554881363206894841292871655310154969032224771278862524069","24369688244557805058035660802536224279008597044284905495736302289545097189335"],["17503690298789951380825172258603018515358090771320050767187415641990245885150","24672472123946822624543839721253558666588227068911116240216780039257486736436"],["1193859838889073597320407161875349597238128987548434517326881389993170480218","11870220471039255643758186275704594813070263422683121450689257137067121404608"],["2010000313579460056140571652703233117711380552447522711365980760346833045436","17692002804827262614749639999681124064502563821210622093526480565342836336522"],["22681651900831267657057813380096531122914578643575163178971772208126112119766","14549540446860891068546721391986479729848502131853507713789831700303182620049"],["15540994043285932312725267692492842366004441227238819970129425400297985358417","15168890626791666828319566456318618161286154967265734288173530430870567367395"],["24861136326059885159102091777108688854325401519457792964989521881624054583742","13109266662407648992436972705565494536516251393773904748170711059695933347303"],["14614706607049829658488610228357615855320397861019044318618306651204491568468","27537121145156228597508667103701226559716287768917707319978791888167870330996"],["24875465614216079840820575572899386068976293987124529697205514807800318962430","1491302680569552637751086179906673067067850217538090697072070654800999786399"],["5639772670996061256261468850716095190437961543473897245178925951785460813591","5526913404465436030327450913800378400488664914676452871041042533278026848531"],["25418290045166181482337371768949362563817692532506181306162741514222303216768","10115209949173272962113980486142150632561332067642092629274383448017158086026"],["6604767949744109897162663553240936445791481664337750343192599614200468572124","1299620410309571157145438366898384377249959994898551106398584635202950332077"],["18422907724452036324977870351383799700196967363554806613503286014680974446080","27091373435256163437222650769851198593221559879074332595744825581853346175590"],["10734679399329513041456858090780283963662150882415192393024887520768167510072","769869339007894259082619978908130566212204512161604638718994395064070005828"],["26010886182293098961894220566568107200680149776084052133456148418398329314270","5603741404887109478457060900782344619920536726043122721154502103244789593820"],["18471868705206884839186692668222527334731322762218744943355106964405822143258","24729967390934205347657258979549901619801670106837132115731239759095114450292"],["13821097188512518079367314034613430951150073704928094625239347493754411575049","25061608792406397429184711780585178170443898158518982986067766489627034091737"],["18794829040983672229721738412760361681308614503247451521752201078935063836377","26204710012011867855895112641391180542130644232643489839527195644734472037047"],["20835383655569109679078493405687157560657402927767887413134464251685525652142","23224194829167374351536800331680757217412973162059611271865593980255451513473"],["10647548443325291986413455961155433148978199970083657166770852898620613978776","12910924954840843504945428888392494665207694040501372226996652199218573693113"],["25132141390293542547312624653365825189257728423116748618693076308154821171275","28260874441598229157800637733187534698599738770185059209954875478235386472101"],["4723526888201108206211713007757802184249628254403521003076711856958011390029","25591421597952231897408839261937113652616975161055886763107186435005886448020"],["3070331389705954710796195864609855205701989626758984087027945588550653944045","3280363128878268114863373469339921678428310594458697003100177807331764954236"],["28406438994108309447546956745398233330245077146251673398415634303096718305814","25493217079801518335572732334384659762838945842559117710791853284321060591719"],["7948959531090907871291270603753272792703836914045232943331377864307345035828","28646052673716171586164127983080257860448448873096909175611252835299814858037"],["23067385164592517579288032421336019289121908028892520908157577267843632361818","8562158712478170244714827936874526914730893490659280449004172911516547543744"],["20475546901779453020315871184236035005254590517096341016202198595319444949748","15421589237480910199128188607091863542554952414595411398607633431435250136469"],["24180384375566070961126064934139635413059410372076194075510547635343183448531","24736066614484362781731366805643319672196528685220946407269054104759591483401"],["597817163520413384381720192150193625518833217865839621314716586725086350810","15793895419772285704723890407806982136330290498643038611109915117903741204082"],["21581477270459421537149466736543128947342925466607970573845468385082927281697","25357107173264536238970456089897700188255925221576042986446149352283020997330"],["840277526170552886549337976026473855861125474716613089270867437263228420947","9717262557584605482656094190855375731182779007632908136413705321351364003720"],["13985421802408795468304386915225632330401209720646580017824691578827672237988","5480503048530669572625103053745193850185051182109241229984869345158343643737"],["8710255097051611363562061692041176481616660599020149264336664554313085842667","7027408773608335431292361813608044129056659599023554656477653468807353603285"],["12888431939368889257786885139651421069981513633117168043431771430400094660067","27606591638804241020075161989303769872084926911304659223605973048027412097863"],["17293678482897603383572001290595877864675409114291345587290857947712876604697","3733705079598091891036909879084151388245432972447688251082135009637281869791"],["10105203351730872960574872720090649576183325345112412111147788303320622480544","13269479878318449873499298404825160952653184374876316600972266071386505718465"],["28843442624188119652150318919331334009645965537256598083933332608257055090330","4519760715427779858287790856947018274594683630543623629758669816037320858682"],["24048064584947232730761991872025955786557929706584224281543427263635506868697","9334261249668521405653406353959794303548753578766912931541470710100657996730"],["5743846490729627226093826260323758834895618839795006790865470456020113417991","5629412485014688891332353654964227625287799358435803795085160728340997895350"],["8395524238564799234318811417342629689045277604886850769712876978358163842386","8400809920256264076637969265172987893641435034104904469803829865484160673984"],["2825424297884716739307135468979984683407096078774243601741715365303733738807","24889392406717676284157168657874836108732777900819199085052652406748476135895"],["24771304288553782877712272504485522748713265650265676260829403724498845538850","17321622753382050634861126935058144626410920060610401203329603377507083310041"],["21832011842161342400732752751202265558143995528918955740420815578820991486227","25020218056689064998353331304284847951132246312429571520812254410250649920088"],["27816220519452548752979074359452486999279209733886203728897484030582667858316","22374063077423685986430023664255657868401506628364180255418342876715858317154"],["22854927465695472146471003095162311447375956377887395789141417664331189020737","1857817001510256320850084726756167298235147361150889102295570425770051765702"],["21876599952834347263360566774574819929594445839731963017521366659261396165256","28290688534385793449174662896813980868308393467218566779499228368980585208710"],["13497677840814151299077532181388164559487708893905959873341052517324340063841","13109134464195086730809424387819915318716540100471519957693674199052611854385"],["8589098664772157232130361311078839352748709159906684073920971658825209502654","28841759510027952806614721749267330970843758157958482955700475127192986686513"],["17113416281672925455836123521114643194556996546595296553713143360663552047645","11651258918545197593588194253152299765412393687243722726314650710630777108141"],["4362725293349957836890526745588648860539399879884695119858176489815351438588","26760374584878263936414113591621589278182971492059030550848927453616732188229"],["24071614145968969572830979560618450255796806365725671047793459502750980482498","28157226322588641712366701955999346573498452218145005091992625463642002764967"],["8559554401018543730632562796525269729858115107652559780054914436568500773908","9430361808947911583115715806047500896925044876250327021069138554544435977241"],["12812673931144937153143853024241779196537778849917840479651609396269829322706","5233091473074295056761841351859401755616601659115217563961909729196040053327"],["4235276387547900168513377598916297284088579759456221467963309416682466234795","1900336075830992418923178015357971709562036894852457418642569185900983213689"],["6976720977168415211920275355850907644561016728063592010716221713949893228125","26819064901621641266446340231443814686019915170369226293694169831601858994964"],["1891998842211585067632827315359392071496032137697913018534805686128715203482","8315144142121637240220676936951021165422270594885576493495146471860505695713"],["15650372753805297729392364454514460032808873264499723098476845277174169130947","18350480312033737325119411096272190307188939586244346234706787437721505875110"],["12717892990860234398403731024096148665606436601333692557953324053919470359940","28166625201073969063118652614870154549353865351030753874224290042705355385422"],["27049602037113358975284127041742356847778046161535228005852877216998343833298","13392374389691051282872958044631529348948226580931978176603035071758659710448"],["15396564369149239058586784092272737776276782232893590872597895129806155347760","14688316801552544876844771960283263110369569239852365549647492142259586114735"],["11894737139319881028738125545695117531827282982217029444952639142718007144987","16789317690083112160704796039724142444737165398047477627174999897065013656544"],["26390397941804848823844514856822079288128567230902546121305668629818462207345","1401592098785828493924057111367743774254521277068372478335549574927649493703"],["18048881043447773201212623353224111394103299449895244717357361103273169339436","20756088952003487753522549177440670217329347118191382982181466380393200598734"],["3150376465218566303556922559515048420370178453087895645781214494788872201327","24686060968269174869643738698048980064530407264478311610220588444696379096831"],["24601580099372828988534550476544087416588618817083461985123893212675162548332","8005839842257394473955950700451221924122854490954240279969687381470494573053"],["21618222105191093735553507608012681723598228225303585121674422362631371758388","19087848306286306002303061396507227702264106522335321830114723492491540375111"],["17810381360919017151061923387224846862947331555594922474600473680718650682663","8374035683621689993117261952962278904688347147287675241726963297411942071846"],["27495803628021561386418749973641808506801880667184996566727224765956976404026","3976299570853004526042047681498447762816291308134112628087268818991164787812"],["12659933507809531284079246517738614119026574019849668606085914769024862335428","17813113835219175842461424446082195110563260972204867437953288326327183986849"],["21712478306357326144660399629377604983260320461584819334708348588434552509815","5901474402549361943151044969079465537677366108272087848443236784123006340653"],["20156484721161568717065893494523453000152032575586656663188215269419020716493","14847452942753864580508428862263564335539147691361901153569980566479093471671"],["4651476358064800397474205868949659485374589805864201396342413786819107169234","2262672863371218175003192757590792527171098510830215250574832582011376339267"],["11892183790576866715400658138137539485030136511704621066288042120261639853876","16382419320457460941775765304893568664618275544030393705548984977155258540751"],["15642528068107876775020337621229620751847357117812423263398691159523335433212","19033576559475810062545827366350166565903540506799891800572886748984170657070"],["24088488257502581207129774154763833681417534679091484942025083725340748642005","10648782158386683888290781448679600660514314735786445358174397684600398079439"],["3533014739939414949650993426967399737953981758785082661180556140922925903992","25529386909512427950157160535273631506782958672071060006174823137773711993040"],["12488152527844442077380592026337710235288172334239488989745738338178213217540","22388211936110536550795267654189372622017623821348540102222694253827698182807"],["8215497540569159885981616828139761830614873983768159709332658731688873483142","17142433017758443683492597844688526290142109384371297654290756364897512443426"],["12663825772686786502655332841304318059856780017690174218626792225762721018102","916425737912074521003881398303522309873694176695431928730947324172753884610"],["12981398490969998409659218033664612104072047927642672604606772496184893194002","15483646105662696753681206686612291654972132240498916558241446924108799640100"],["15800597091894057711080236650846901161076644340363269328481690034450308677577","28458213091317177163562102429544701633790789040343892319594603388617478328605"],["12303795991120893188788506559091848236290246699427123400690604791382456861960","26863653905564956185731742021965572960234671266808566187318298035027468844831"],["5914044914725608849537846950413863971056091141704419257471766220564838650445","4600551670429348718428683240046483229630320226467736707701778765456713097162"],["2244782228163620738157932028514999039552422340342980694903768391073697662314","25936431443301067971007921484100031482580227982328671619596909117066876677172"],["21642666245875050549405775516178613371617381420029345618692494853905864024067","15015746121585643830260912624371566763545506441187746544664548436743238235026"],["13134251995017958247186012182321252074478899062447022477963994491085809219879","23296961124727168466360181141866627668893821798568304758197292903917138069432"],["484881432215891290589261321773870902185653557312905943360796511680398823084","15746939174590480920655092503489499927815846262328804278216711644155400486398"],["5951277343237854459164122928586285786716774475011712396595063448032925110687","21900310117130921818015463364894535303118711077809362164846130068001457436514"],["25431867354317030470635845666412396380083617420322960358855347341673253189146","4360554047250316036847753798394646829884363162325165829135716419239215775806"],["5936750930848454568500959038282698354055065678638310574554955857757890353020","26347207730981963596980871733942493279743385034236036360886451166484828672872"],["8985794816457558605792129546852813128403984707068152562496493397901861931657","4552499025408126093357492966323893759210504420231829491619008724159499455452"],["10755061310753377958107780799460053498469383820249086675475040992515367931101","2931056636048368334573981834057687076610006623437303553089773440253444544055"],["17707103819238682903411722368976760830532901517042444003441293624637390497413","18559436949375104172231504663570390480923926723490709412361910400812914851300"],["10213571010323948973368242099683455649604123533954115073875591933954171692843","20789772515087762486854012303059257333944172064148197840192324611943756240684"],["2405461975451322331691456503450457241677594231311481396544658642612728429146","9775290879890103354603427979580447061421472174634794229215447615570953592285"],["15525102426602746272156885623935538077672582694787874987303586499854218330834","1451164642926820349387661516966287299644593494625985637346140937303213341892"],["23609333810754053892657942498843842667954737391105053167928509870578176391130","24185104978175356895338374762230261191623001872988921639029443581497021466169"],["11085014437836426009366942429707471354649809170331112553976572751338601920241","27836923517735038488257826882899907719203578292791619252990087280959140771743"],["7800159731221712216207875744184863862144938962118289918521742204403110703592","20889792503906181210757709133074122969802714740231065180213335138054689118080"],["7253806164813917516095867722588021245194582580069095994225042680211435069668","4115528646969343499377007831343883871547816471710675903117379838749563591665"],["2181368975000479063726674636841571541578297476850721413475418312191760876044","20521954601624816774065707392397332537906361029111819876906775161790673518724"],["9095019798873469731656526470479106135629560655068793208610171256756446097341","15205813591417727747831237047742537509303753126709501856243876867689331699156"],["28649792612485187877273888372053951006467648461760868566540940933219307314587","946327482851283106871591771174517981735289512892263792246826593379511974901"],["12529184881480809590557185800856199056567823800459994377382982032397586871979","27171062912886555274847664795252208054628275935128166781608126374845432690019"],["22096623974363791149957231445142346647014822909542917662060183970588985100206","20593922355158581522732083531545734013871867314307487618464898167324752410035"],["13946524913779065041728801839743263213697581498864384432399207740408263066079","5583918482309384598315334572437902512450340132837896407823423060565415973593"],["13482514557895879524461840077351891067649535916660065814113942249906761657957","19951414069756849991171351515806210474048935309480872644899033214189511919909"],["14676435681884287845873358179116885952453961636264031779760319227124417613180","4044971529832235832463507763462355244222052637561277012485770522243293887549"],["5718471145745567923096647465351827622953780351590899466592483687494898187804","3016134274407199153431252840827096669141242060001296132842429773571251360792"],["11672175104623260530194744667932740129577915383651636946102146525565326034236","23126183189538595463843808505260463296203208647953882456722255398837369193688"],["27858128421155856919327885441600774310500808025430078333839192833683439712710","17539161071526906059570290832069182950187815306070172993163309131169214930563"],["25477280237673946328421044657560184262909266885852016691814501256573597329782","16459834803794826117839173031611722134497967411986930194224647162265960806870"],["20796280328555404493812829051420502216401223327343076521531436083812273776044","26322114255616592614988270976627404877896603017690922225424121087002698914602"],["19300328367638330626141960856387960562069260621139479837979931561557376216888","21717828199166711788781864940587810509907441672653998511699045073381961652753"],["5236634486548416412904104269182650770395828022794512850965493412532347982410","22137076281375944815567667327935095971432916834212284064949738145827185195472"],["5653367626196023350466921967822181822110130344358080042102275251616350421830","6288953677991763701801515110988865491967374239574263671615672144891918453272"],["21081834734693488492143440312437505502509777302636534110666260952287062929601","24504056135427286660468187563130003850715581743445513572542039645230137949314"],["685845229813076630739477668678801967086487018159927241507230395357632945702","19186704623873783549273564195236984196448976016146892277505827133371904330049"],["17958843387664291893809511981010934574409432350820077877740161583326968455451","26519240611366997962672891296168609268237053807718225275413941189561124959974"],["3096376322362741457516269698706412421985589981650022171370525141628562089704","12895542100823473630031689330140251488175675402298336880840151580513752274370"],["565522362006152430657033097860274109699219400839464074234202257707710696938","18205701985901541521101449852250543359998490733673684451787639010298294183236"],["10521013931053855943236104439186221243512710938881331375377686263654206448004","25337064766332683970866295979260785669210922654502790584556496232819673609514"],["1726934711395312518959328809666220343879468408501403367521699657111400775988","10961188466305953205605479483728491996454045072556401151440045546666449261268"],["5056244184649588726952753917487759493960708910990905199913108077905180934247","26578467513160867757104813254814455570725143039826316704091811642657929895411"],["21773403806019975647519152538162157723980667343015959736497480980018173829856","22229496819193325230813709157921066658422124857230261627062890408325735142638"],["26875751781983604891922008201796435131862262008115407106130567929235260209586","8224698878055622254846976427561999377076987390587504873544207509385005986867"],["28617948420719056342955596462330884568944250302675872740953593992597489688822","17465029947994661491573906191761627933949849152482567852200826231457486565633"],["91549607491701247528040964929413332658861014780436462208810159806660776526","8799940161563590704802865895790575567710514207630448867402204894494537546041"],["8400287502049580837856313471509191428853269670051711407418585011130301084203","13277595973926534672478076643948805678414950603800394894421091794721971350651"],["7107848353424477933928579263668752634222805790350708168906535955239987454604","11460526470629872923778302732618307354367961865303474393581475892314954038318"],["6610749022403004452351926146467164088836054514731122262551936459363238029325","12645460369830676152659001800533137330714887045035535345604665696144345643355"],["12798765783837969970547642517210616654602251789774616480275722392813723385770","15706579815780911123028610397405147748927772256117474230684260767156734037883"],["5158191536098034399408681525456998140354472561113163613706461801282174379001","1757348308962166696781431704285279722070701176949169923149595907078084440291"],["9430624233175027950593087397827727759212498471703213655919100918788621455740","3904611110248666742300342558207685982891922449638083519441304769847396826083"],["2588706481048502076203498154357314056952860132055586106555989024155976494565","20631502967195112889463606643013893921962452882231036132928217733471290152977"],["13931422767506526803220912481308129360314311879605043832513576408533654886596","22330867735859606446652315121784189341046218534986181657523058192094845228265"],["26514738258688561118918679947261881895359566030967590206982745380795316162750","16443042939688156039896201140702141647703236708434245976337762531038940881907"],["26068603790877648531698846277079568834897331008350710205774022093701627767565","2882823908521383301602339471323365433563005760435875005587459789563065880659"],["9586566740709730767040961453467441178674633999292029683233900924899913647026","4898319000925270156049868327294136783517451296448338816556905883718454931467"],["6543878900161119528282338637251001725702414072098399742648013532013356296179","17711041336749916341589838431180111848298518790987891197338407456347342403215"],["7261404259672511884274933453279573975435825554927061478874381361182507587540","6484284528826095201443825809451963967304822739853640678615749255906166986562"],["3404406053393574691613818312960671404304232469504488007348844342821680767717","21673950000372980897080659511009548208600803216015948792152960186145255887116"],["10221973089414948802055588100193606545501126839188538491614133422396397857617","21368874811994400007196453281550974791901579659939767430208358380103944455528"],["25866524537081899633417948813227405631137371330166854276267302324423982577069","6585842295885634100446894362928430053099555287263443590711936456811766998735"],["14245203625057426579443915467003968912774062820806159641341527395445137147534","24664895136482637058049184193445989211909722878771119319490972576404386928515"],["23370734719221193069609377401880528350602685222696359394006296834659788625164","14400084683974422417069266635166989728454323104302355893306007403170055904066"],["28175584542375460818202243519349153907502117499211701995559020010168049389023","21633196556011718005057772376829657898424549319832185959578303503883044299991"],["1379043143906370321734109496120398807294754871115179375088009211757829886140","8193192028150022222972224114997698606740099790409937659129149487740403809798"],["5381410261305487285797383007798252896687104840135081455573653999758943215283","16204510767882788436048014951300724725513868988413377460985103377306284424579"],["12376431089753983547488310468750931811675511659699963914238953461248349811281","13618479642973442860952494372698561334788198866884093312107121456845033107675"],["18976144061398476075532811145262483662583359689583721735365874824989597351921","1281677464386084159236768872299467899568029081076956379219067291746141140374"],["20319968222503917301139024811124978843625802414859223937076808830758931452243","19168722362996787097264588004426010240294340174759416056370292248641191467916"],["28039302354304698887443950823418778452533203906654244543019811037208760963306","27438042457464335041172746299647849590331348277454061878520215932451786092792"],["12025968747250872674417850312925821081339747308375552147219649351849959644239","1561269721012467899400050673455022750481825202475881420978398629476842561732"],["17337163800197803149163895403953688330460474843551269673989565752271666954760","15111892330844583218484824716119496354379807043820054538795428659210075800946"],["22525869789523296494123076508050582312407081957606771909661498848677393567231","23115788608852320782637842809227767656774801179795335458501094219829608684227"],["17333212284394284500620115316698006379460523588371825666400470722859554704779","11702606448988990420833369502591836190845452854781269779962170583998604549075"],["24658303590375957185600662031505042559381220092026590177287416804008997003030","15851935867041247301675860926958787728322665018535601524543612787322730509939"],["21009866804557744785524100024815238513895400801948605180340850671259758277872","11560691838305686255804716008345710217138531250273924272488564148734684795852"],["7633430713514956373327098210555355962049713163950181074079635443267954294242","12058788114457728934008338570344884988898266755560827081897247481102365099739"],["13946730625359620144390067100697347329503140115627020059301658022856583718635","28852062735225915709973943069031132770610435817290333461066138846605202270228"],["23299437881562474314966638581845954291246340613106642835457850502178452168964","1859548703973078434639428814225694798009251833627350750420706418444013357872"],["2582844793114316340337837127020265460407339730528986827826141392229550126623","21656757247202869001395041506388735193512226459608898104681084912490417481067"],["7759427778496365485097598322185236157601723476843990142302516705429529018985","1987430469351704213399735544462871055743317547863504451657950519597055297670"],["23149997476136040793418132272192320166122107610362807919633509486119260921199","5121749512412367593295888306920059552218519597069024513294060093596809713314"],["21049131805072054347524227060299324145964229116498555068888747131558830050677","26090142379309922626364628835796638346029567501674907495155902729338002286531"],["17052284194370344449228002739544004747833175808125961003654297869637366746910","912863149161563138182685676998607281602772809763122657081913798233865071918"],["19657331026289936474086450259373328253611674863550383396791825636063364475004","122134006160304812158412858816556990066906917072539691181076097452455010087"],["4248589563547855412891758045998446744607688563143588712673158017477399206041","21072947055976242526231262748651923799141331779189572918072154114063449219026"],["5204432419438344144271454685614892989186935056068769141728997504278058340737","9709600999408109488967515402186646997170147787869693687133380974515968073705"],["9390514913605738946428890898593470307766631976670988404397249009285792188865","18242307499875112109103599501069569813249815464750076477563662367855878507151"],["2682425957958194582185338279759700024154392632927495032328758212575924937572","15251368721146711334755219744202239786158434714979194771117247432459762636167"],["23579136384191745678700164636914229030306696475651920468207709692554470077906","6083074745177625400849417186202327068271279333598192475795054201567895694974"],["26085129650477737425507603051533224424915543915225894630128532952575346167350","18289591086623921977009180674465198224114769254298624637878420696402636585075"],["18666317394662800114465511398277985693506846975155496261449540997854737101099","991802196404816025078175342826150192615939977685722023965039940147423001961"],["4619977806397022838308558239715819839197402780980291854154144623748843659634","27103328553919211824237348475769809006256757242459439227224194690245105229254"],["7191322144902856603623665660879713046829902501312402383426611020231220218405","3683748695877887564363884869801214962812290918997750300245548891200705318529"],["4671184867212899082522691109473975753642117224361976735194562064747509465112","698957408552477095849995233216234343481006091239857273973339688608048314664"],["6228680739074047564538400333377773948995273885817144981767026785816318014156","2748106235123694533568787612153016123548464754822077379314789800850416213878"],["4109057620188406321357924252120744567851589219534850351988364166701270107906","26920789100769550653168134872930110171546710975525726278784952642981367351007"],["25350623488185514735205211194282778668665858661589020178490736025029360199193","11971407265097349567066795672382546981608440937325536547433435256342834718405"],["26835131261946297047666247586304748921557155184487283865820871474039788682679","2096112926203485777514775871531036854832333386232799843957766010870904650799"],["23596212943070179382259383959102938155815468740803450980779383110704149857977","26468549147691368019667220719128065514999422970130434077829042759800306494207"],["6569919279445858975102912082274862565428571371188425540365277744833927004977","12331930636221167652975294121043202163204308233842351728809420486442443390684"],["18428701498209715348269664656458240578073756968871086995026699418143449366001","19550167095948880820223059047377710303387121233329032690445774103956867272163"],["22929890734636179733908538381382493949706188275085665901458583859110070378418","25750072044519309088088369849359619816761219498323076105337069506149948458578"],["8732087042373444028131645635820919951235845866992172665838531730695750460744","13856783287437751033760917871881874708818999270313220629364490338828642942859"],["27913126319203040611854555037156729276060843043831969288607362672645508702777","10702341541087424270117281002745793115525678967433444822529041602307191214848"],["6058894049468972553400630991742857017548581483504283395290382325673103826011","24135485720949532451741895139838754820216299690809068252132912180186185947532"],["26590162372497054881876870596141750939772211598981483728231070083307469827271","28281136556247693622129916927527935976820413212030567434254072918310296043109"],["1525952473648874936890105162842397352751456465748853470520313708882934687493","994646751508076724551502564711054627731521122395554927049224794062709358264"],["10564956199989352891928025517364048233743314695488159439923803476523954222454","17511696662695517989959702855369276889541661292882814958634378700081841180118"],["25868786474883935384844407507875251975765899285164624382952412031273095175366","7841978783053767188137928599579004402887771688422694381395383523204467674273"],["25688930384536646598425366425150957677760239745776586730537588110067262658225","27567137163045118998025071468582378074302488512197039555710674419342796835758"],["13371617855924493235599761495696167238465138962705572119179935063223040460311","28634034293605878646088352862554003849737523770076952923549161852753239118858"],["19922610236061007841152585639801505222264820268588124449081537908662292309698","909899454963088101454923829017075424044164680322131904016111132276882782435"],["3581685079602010396716371381888559999674485763399369577417458065653001321007","17394803855887869410953880302019360470379637084059114758066009867648436138708"],["6371308404959373707151651790810373164337907326629224403650266094677771625691","19196883446359843339452477039316417533442710067987217102991904547775388232868"],["26236641383453532776645964496005460979407094118679632920741907406452540189825","14745815051195496018715501161994521368902802326321040803423582162462397917002"],["8722179823183671960296187718692118131732291688722548510310956422774334408561","8576624348718566624909563749760071495754817665728936723792891793855729669409"],["77160876400930476283271872767723290133621640147407913699629169896335936817","4755004864090006409635514773258069473382187912823043315765876497953428954904"],["24468501000039104440326620032546487930379688866432022607681621094210333082450","25390468985065155536755116597188164936000225109576893496017693410140952042292"],["4714522914269781995938363390310931418702786491504939194151307425699189144159","10502768239642455583286593221162610611630922355459308552768767533852600792219"],["4221122413148415890581300507587534238101575817363688149738774867663401107165","26129475892284196348776399034719698693105393439332286343764520477151237313663"],["16607537356707068503886085753214580517187714141609632093707036871578256967237","6224942537292171711367789908705437092143951558772837871688784955723739126682"],["4964851166566174857533099876740646551266789265280719176262317107399229986674","27971000485118063069753139597329577021751656349388325837793918543730951588752"],["23334637890364420225199245660348437283246797860494631168105029277047872146964","21463672487558276599234047601035931768076401055795266494655786194553462264652"],["10926629879367565775904246595049595377793425279220324111928043215573177813915","11301304738883003199668281367068293914288180048906510624937518414078077450158"],["21775231622457597479181276168483038107035945855929492518804335728795031308262","17121565390487228429751305617208116124391827202945964461492226373341185710801"],["14214893517056884993711588773360806367942207612434487761844582845293306443476","27139231588459982300665257348375796224225580310157709434190147947546374629186"],["24571890960414895821380928216785998666721525678401957558870789140328694563909","6224990920900734220237815793088420003183547837802950145081562932249628056006"],["3929631521507443196904970738153301355374055081964279454245175355839728231314","8927464469912920101170804216847661238925417388650633796607284202485733638949"],["7891913276149900283922603243236750768851329489335252048024952222835960971970","25553088496368879797728245447928021841548718357199104581085068377498442809459"],["22137888708484037330687801866795753267637847127013633679589359624689064368534","1436884234551566332531880113224661999392346131963179133066223625253886668260"],["12640404314306088922315076047667799119004864259970932234257425452352247589267","2006775186314544710106025228495342512978118241615620648957541739108051780022"],["16498335391725530770321878457346200786776584047904635057473196078209322262048","6060854798300531478963910565507885696787921579753883738202225838425966614533"],["25424413353458630426839688727475105625172732645273735326169846395133874347680","26156054889074429626777296728751145574421618598157530251177205561699445803064"],["17749345610838919691041506550902027646435631194918501407055807417196505953709","11941263360237332450920498439487254171568034127752519055738506041842007312776"],["5406581423557509196080091187336882924918654228431185133657286739073849631253","185914580801163607808032027031613363068423989575450789032785348272628292198"],["15028404842686782794642146586227682599337342640273408275907111793011689992003","2726465792699569628463150401816299468377839031396072418036887866215317078528"],["10629848890543185589568343933196260786316717964228996838568546076429529515978","16610822326985193499376879003870528368743749556098764716007530699829128921136"],["10167682436584765213780965157903187910325877548066882239677417243635264982839","8561561230240704747665983202064090233291551315198274228764978301206213296197"],["8930593224678477006437384177949332464070877032685313408866979706588563750651","15017914803819311802358867910549253928390146487384704654394122353016068813579"],["15958658764298351002154576803808394066331239493428251095051112069282605558077","12966712252536629939371944945324361406789999936706081030814244692831366133743"],["11972571669408491355900580390615653449933123532140679000327430108518544865475","4197958405091643066700799541568420192134381230507092055340819724494975576574"],["12160501019551775657109886419616054359421384405497091527877340987479556963046","24395786002507786464665744235716156359610278161614836528935301729444952798153"],["11973048270099963288700471575534890919932548069022419677776049079256014859674","5007073986953821165565037745317504330582646801662864389704970496787181315972"],["4431116678256222759197074636993004274861206175470075676282370954533328287815","5637798770275072893511360837571868456473489134559328940798548593516597142829"],["17271347652189749315342473983921241021243728821204331863823367891795195675976","22322100310509084430723145072342412024168677317010140428398899555725765325181"],["21634434166398431060705170826742760874332643672110777563622138528849820915639","12664461131998920174538520097750785794429963798682984415673394474322750742595"],["23443120000849676950545825143062312370106209903654146618267735061566337084288","26968758507350874897355340176516921235231185093174286007665314459654466012183"],["21364301938814080478565371654035903185487017836011211113502654915262102170670","4695760414476198925312325604332287249606728401175264056736526174364140890692"],["19994779446152192780146678535310147718016891587742358474858648735025752902949","25285199852571381315443826252428367805568413861171313625177099417768309016173"],["20295113791800194804655507417528324288382610442318423996409659309582800913252","25919199652490256924417279120120368133404657032962435993351748556603829110950"],["7766926977527055421748679708612734561824903147388519072850740292084000372038","20546420426852680633169138242800348831647891749851482563920257820871998857719"],["6072762844328234673961310942652117847801498579584765536232373557905207993994","23933228026496486460123063862888642940787381506207335679117909774391636079890"],["22905745290868071819137511634520841719012904118456575316204024731812910013521","24194622477727920089358519866132833315762353052275841752317835905721876842023"],["9572600672309972471071579577268065082491424129152680086471450822148921006253","12974348327815658597460922621861054350626744044232090736763331843117123075882"],["407640264943390387574101963498061720647490307862374758721248526799827925612","3369076810520327271712030344089698828646009480415097189277912570590303720191"],["16288726560737111512550796407796269740169829382258226673652703492652662649066","20381172475354595879962117620978922333031785603846245279078306206177344436769"],["24198477702428189861319854692173054377167500130559976396152675979747929671684","12915587703812993417592134888694288877608826867926149222861605948568418269692"],["5981509087784331722561528409838130929271447867428980214935322378345206859452","11324019274793449086679671433712794455499832125507526084099474248776087379789"],["19350618173362902037829543655966300383976759494704934201301000514322831196922","10411958527462848985907921319639613981487518191229069935928219982309157505805"],["7611486065887232153801239071979837205955479911467369629570141500580779914050","19664999082858655848734075373043125716433404313696419845080458668699614406938"],["10079516840044704608181483131386518492965796143766604821964744055698401428018","267823433517019334885852863959265024693154187437358457136531857997547840259"],["6793993248349769133013899658671175454613308673075426557021265373825101580806","443256303207813685441684419732072746817210041773225881886830224221141334864"],["22059051635818690740124658946629694106848423633559795862579175852497123577780","16229813014907801187535719996243499934350915144985485375712401573269922842279"],["5546108558924639096030082215556796219416895527065196412420442619749769289489","16431540631075170802272088184001246185109951945322946608929000583739546711363"],["12653216530449662171408811368205429548537083907442238160627180554971641908488","5908940059300158778055661525817770054023146132115334808289361792989009797408"],["28236296612068329717331781289968438794552895387921212654790613927087967573678","5705150441632732224318028506148150698117220187087961155105189905746421709155"],["11236281624787064019492990107450832898383394378331952596626484546387683369150","6500493225246294663865373307377499541028624483369180421817027376453772120795"],["6432682446991377418165781892714231540202775655490162412458658160757370811125","26884300936549665579713165917957132047321026488559652011349765017099129632530"],["3118835108885933112673280444852377109196465026132176498063907721791947457174","28150763364670087937732335126575548749605011254582161019381046590796667848867"],["21816377309602502949356752452499046982875247871978818139311597035881802850860","23959758373350478052356219669885449544530653376456372566193293665559309856403"],["19399400383857264603623511581578922557022174021997928718033624093591604885065","16606848923423280896481183165125157768919066490091667599745849234670899327665"],["7353852219900693932116628142165874735937955857050347645495425178995695117250","27877577677825318990629220260149417279794034596958028505007968950491938859778"],["15017459895827064662754240261090972695047566133019223266508312500377249184357","14804832665125258435442255811798912686311144789673403866342081516784492802295"],["19091032314213515892027458019003047054468667310152200221788380524044773604416","24325395829076868325156709494452314731337267911937685963285830887681678511004"],["8969689975390806403075051075146220207268784718617153819386255640584049758957","18425923210546637169599097899764836858785596741223951117224758949356631964638"],["6890838735826960234721591760527014899443639043696249589948899535537807470839","13435057929577041104813536914302177171031520967652716350755127794816437603157"],["6003584017093576361989279191313997760908849432126906990204284907690990704611","16257342039502962788603101137589947156381663441453123507249950895949282306224"],["23367200929771788948608781828778292503485517426327066698979888345110427130104","25548413566341344655495606999088069096787261987131379074881558982129542385729"],["12616415939274922231079234897594079150803920938027028464076236255573304264990","26773260892794167066006853289129025753912257555818257473152406528453734275384"],["12524957451099410462474757126006198668547052070742460900879588751794835182807","22020726012141107984120964922772996971974411539454055112889322423268311211684"],["23548677838417568757325292461783135360603430529195784510940595558280922703119","28553374044296490754857875310240273028233421640496299798558462309606365824963"],["19308711840209223716824247822888474921823127795589927231066151054521712765849","18144002215859239904789445406655853676111813550292576013541671780119077064510"],["13674242452483235005298549891298167129364573627627230105871567927914383218906","23969187708970933032270511145297062775065281485632065084310979246868661524003"],["19686996129546726153725478292630583305397539581857847321205355798678208433125","18475350184310341481155045432301675183248925674578249144768038098200667664332"],["17029139520828646354116153601676574389606876096553178183180132285689359176153","16518131983164308142780602901483360736451536277581325361435730290966045056749"],["107624051635188682568601550036683446467905336480804779942387319116353249194","4040896916358818568793174065043068333328297108832950306244639444515439973128"],["12751457517435217783356933943261354493993899290207729957964539393592333492554","20818715955619982084770481950467822909470336024224063537974776516787783958533"],["3513828286234339207928573922042902686459143069965403161582139828611193816676","9955754242887134424213821209261430874043823077173060086111442832159225714071"],["6323166758271871673860750091845894132857488473585870672265614939194345914053","3989742040952904184779819159463904545806222492552328309726381136743578881297"],["22736090803818134475172363610404736380334695811023205089271367592812180962509","11838146024588798799775644067874406003852838977616816534607693165293466520852"],["13913288293491528881884962892431086786053071196037918149747376256846588109884","3410268389351063538414151445575735862157562771538921070457490462729913328077"],["3785153935614720661214690878632674030135159992937879186638948977668374315230","15020414134399348672794477304581532303520766821778339995565992213522620975756"],["4152350931521781590124084059167769005539036575962563198031532400182405149695","5055467927373598681940987457577037215162209268017434066303418314083222053315"],["10387660759141446689998809684941444922510812829568592974463492377300617943150","20194491307159526858388454852387527917985211796550491173043081349193735855151"],["27277097986496914500167233262515353904645228915939639722866507175126388063682","14965804701880039183084283140783166103103575036123912809621665168256316967589"],["21004675900450643476576562838216994587447162312807390037897400329669615568683","3781773102924229808844681193463827098909431218167722942932299115230004447074"],["26293291428613364887748156755510090069665668670010285516921142400564566028965","19941017327874353497259182804751931886630468168933320862552776094140576444800"],["11807449590318084364027022123131369931659982094031940334838386299249712207907","26214540722182461217155925147176926874593318919892795755133474485982833562100"],["15347761190350663374456926986363245185195286919578695629450924490339394394631","17261498898092183111199086142843060754086975872644929370174122320985292820798"],["1650243854385696599622924319194049115090800786870257490826636965736882375001","71129281499813171614421458414924584882901799682315351807781318298958815214"],["6753047125145563586803718759823810089926519441058752315467582795253636859423","16454211847907937592875559152945468529428076020470748519265347335335464168711"],["22616089373554447442796674164385495028206019960199227395822981948819513084374","28670148857426197397573843922134309870172574273073503528002554130111983829746"],["22499375312810440481768841039881749088973656112071211629006890151228765638885","25109750395426190239638645147601427800415350928777565455742332895962578229059"],["2361752231055927508942444089458052826640124920553015079660932500806221013601","15985494845707435509199424554975307724647711381751329684274890750554996208578"],["5623291910206500155650083116548740724384486640517841959633354339008028044242","11056797216539445870129520598545751196567584359597481650650189825691115143019"],["23565424602166588570350098679559944362643779668302926287556360719481337504849","2524615444195986248852159503006036201072040912248888277279434351612872459598"],["1644395767925071230265462099982603866439670319775869623979169747126652091790","2374138871136066974997606704681932649690177763298841318151856946886233586369"],["28238260881029428211621463254784640223003567418624259371699002846339646076098","9629044316499455039366898198266066857665595065750658661561031592417963455216"],["26812566443213344113730965719025020473878375404179159222506061551068847786593","1982673040018309739376585585579424865997461699681240800229807252509510019701"],["8106696696665106086984326205465413694765573509721232297312510459272252343702","27826775128712106573296580602609567240566153396807614651782373866862018488752"],["7857863695774703114106643083932487313903679731602514384245178172214556967323","17240858722265038915837125491141486608097390139854261031226668535321277534999"],["12958043991660018795913023802834786577112988658984268143983177120194946417080","2782286430807442661616078284530842982918712213139511851302782018166624066363"],["18066195576254383779053969984456797107734035294583641488542668958766710199266","27307288349471812269759453663502397696578837732958919012591361374253773968368"],["470959046879164954810939452175398141449849129288229083294054733824269816150","3138979235912663415967724510343535172470424929817971498173376929389413104665"],["9408496516155743612701850013356737436120676044118237003978544570431412451479","16055084812906648457157156678679793421965071675476164664592630332110783963052"],["2723511589583341420820157174561307613445576946092847445542307009921061827042","4864343964777457271963079305474377700646849310613798256007029997384393904923"],["12120483427718229774210323008125509466457195408441001217003162000467437205236","5893527900615335826622088969752126806511853931137774620109015922877243170256"],["14852794951520075278933647435115252065489210965508500902384355307522365488916","9216579453290643052036000377437505301943844523122712378745911775924293630057"],["16996620823361944326721047817733721923404509411017996954010442191289954700738","8270080542242475427371094114442333532422856504037880231216659401099020224283"],["27588363043693730786183441093576412783246234166683341405872608955220547338149","27513929066292609913867798110792845387428711218357218941195469411313570670756"],["17760480830116829222317846381901046615563708342936943716657774370089065990405","26312975382465693904288378130339915668051713768942763956136598608700590756502"],["19767319010695909046666448032624348703780988911698697206585889153053536918228","22416747287971504430955714395618362738631079221297023076519472653438870958083"],["10163529314077245386610044062685812640012990684132382948375954407902598037898","14389021723154798414475632912164688102457932270268801135073189089519811300090"],["27379776947067125576540249156542804771472344266837850172574045283468263212067","15294430602217598065255398299741332604802259989377430916628602923596361911910"],["5380655083350044531628121457040230513387208360410769357737502109537601096863","26583744858799057804833075763140920826629647430046321310211610790455912122232"],["11719392809118303544985936390593977467281982760500349433354831608638830895950","23607848876137970357112526617529520856374439825908135410457303688574127477663"],["7431904769915540772665988483900835411506531838505366722632990572342103981674","19954816540994868254172879001344011908386369256995223511973507082364502657781"],["11333677972007359398144509051510877669130094500935961659247673474737313047885","4533558502597753880992730243127886642668541061509518752568056119540678634768"],["8087797528049708199343316690310770413496470394636288821664838478987000649542","4093252223728297312032602319766609003597068640629210111075157145453884584080"],["21968940384340417259979125796772376705695977462955010813901162311802023821823","19379822091199215797915520029366687301863211404596745615648959387784854772173"],["27119013028529456338162464502634959341304036225711293195539017961335443768450","10941597819959042848257555308773273309318364831062582471854358035352579495971"],["22369017460809912816383860392804202657319934293223368235814706497853263380034","15989496414820560147969469912539293625974317848799607914662322499418710893558"],["15098752380659405011369632713797956866176856287628873531395170784330110924905","21834042601980157633444917442199750612055279590820982701917172086289522466256"],["22575720134707867177992539818388124869783305312171491503272447631597895467600","4388122888119637934770916595242586590904603162646857975046020608858080819393"],["14394423987939538148310022097976262712767717598759054990319022407346068183636","1740700989017904805228226171491639886320414339722323334728000668324251435318"],["2757394605440593855476519194938839505834287444136659236462687282087273670691","14131532638841438846709626120420381114272092473388790009513359355740382376114"],["11883940025569228697878980872442059809942937868163674346732188954695763819834","18012834450117453112885733887193583384624062768292453024159508853723378164583"],["4888045081984839639164628918075717121772757070486640019406950115535311688119","25229465232799700841041496974014213072696720570603275286954245230962997633666"],["11522173304681982927061377006470693279231049950255975907919299565636358195633","3186851005480236108443084693266556988297181671817821657182010525259632012522"],["16785547430476855310515252235564570092239037154439415192979403709572813674027","11044505477817338930725123223646412390059197565762102788275107095665960556171"],["20502067043001726159733420127405679114488802616479962261309575709700029343129","3343406647158440418354037927322296152862319357314567305458050587956657830865"],["23001588869586151074680720589599153335357117780971872274490532614343769985922","4561280788509509324360935068938309843880397264805146310164593488166990697554"],["760858624623171385376314572301417221778265186376701314125590317786739644173","24586395223152988833838828555581009432983362246793381534428799612193501927287"],["3807088718971105467459680532026068757869618392514265725247473839255861254530","20557689011412718997312374652460698696852887259845341438733202023180652334560"],["5357760315513807170684617931023840446456373259476233894506594924408356176173","10879350444034757446077783816088271384676529469883099544545392081616937781002"],["16155289449171496338431109996828420416111318622123832233357289502022965775672","27270607656574452351209955833937980995611337083128597223896838484535040347587"],["14935987110919424653819335368752940900958757942645158664435531745130258792519","23647080334946455598820144596947267961583915687791832643086856196249854599263"],["10375660901055106972465395934486271532857042420283645805107136363001213732860","20776169192564074652778900244173103454274800838697397579711810522443721986257"],["10431120636497607400137492643838423692183386942250058439944501400624952267371","28743740086185079573872074546771952568755373434724682837584613679377018316678"],["9944534097039791023630760751559412477010507856580491484820893151226106884299","12871862372989401119688619547386614526483793682312107282979768783468772635858"],["21120880603366441049450636461689775431206445777503336236584977610769690432044","28142981639172838252453274270703493366186169386910574372226815640577376758413"],["19383493855899060926993333882030002564562022613214643334844084556688544133428","16300963229546201184436846761212810086797857375537192859740627278054363270324"],["13197964415398009799554530161256417526361871017542974884258857527915402389850","13185170892969818287212865885084380796782932420928364091653772141265420168582"],["27710778125585541657079007919215533839868219492872252628484722901270834057048","3468161553943170124705871506144619086604597837521757104622576521153115787439"],["20583761340225657894406535310348310525865032366985631619567198236107557981173","5939715377238562648751948706769337237529077202972675714933675664888418225014"],["9824713666849863582556959626531497230240611457837023645452347742083354194449","24054877975522840513891043301141460648321343106339443329131214881346503852651"],["21144490248877991434062245059845833803351933782840243945908426360269242215775","8489984048233960556875954787772595388957631729859616024255367132417429529459"],["24985206226525385760212146523758610670198377568290817296904820351375248687550","28312713877421041866068767550150562954667138913897569285341223044434984140898"],["1982503766306801297963654797275399568168997190048553701895482864034029627686","6781751003734388548379082766060650543578326739160566167795589359408370173617"],["27585182873861941869614065564783232824367686120207178828304825943823587465950","11266668733967200067731828529296773380025429614918756011499207119327664065685"],["25505220737547100010135872168658330692011472963447186215542444449295816041132","27556573473941880969282017548982492870232383052314737951578968305905039414379"],["4107696312156724434186158254203261320693598100898133761239238987192227324627","9275351896182441424255295263205788758785531894157808068585108433564499510358"],["15515188122334823913145727944846166161521921383091538499391254854088896609823","12648697428123464543341682506930857462043594336942658102108157031532172378135"],["28184321470071887545381707747749572831975226606621044398535224737968192045780","7613392479756516526438416610720590547322279357363025189843845194814136908746"],["21671023869858153179478472172543409502281188566086593630348946080745143029312","27070587105983586868884560924972088809693168097767474303553636162151267397143"],["3084472365550200084162415098432531109086484911870180645933361543008906509563","24950629524143906455786796361514253007941867101968633906175694932201317108028"],["14655129315135688781178364546814684162880098505221707827292182353770183216747","14738890135964980801459069058866985152848604089540176690377757382749192904804"],["13541730673497464443366320872587048447489616561151097222603189225741746235820","18306919809352598376187799425188503544323984684165564273044828954166636651633"],["18468772177532439576453706662517017242604956672600891032370349942349507877082","19586853269770453340657370218475013145483625715218480232878849967333043426165"],["26286241721317565526679211120109033847628431369236295616563460605814790996126","22606896897355357475238817900558938220944768959540954383140337166395879174842"],["11676070935059782714305049412984982398288774121691772660325809136538696485164","27953699178800012676049429039687444855147097425696838335044672919952838304117"],["21791030414267110303900750555769975312960472457137624098279373285776121421620","6595378433871712477051359762061109912452303335277629023083744342469988141609"],["10721724876746616262622712375697010219857215802273037025038003856676656214998","16646111911274780095951102748547657563416475087539114143007735532781484786561"],["26885895487436879595030276179204582758167430100678720730498904577714637900771","770039810849381735564983795604342059288823805051672329530732385876277401561"],["14136503980956430702782941151380048566768972750239023244409977385597193117475","3086031166920673585222751974748207292362511465319342944740092004372061138124"],["25270701561137068611700774448731919878734247310925988236700538855408608882274","9269392456318398481822708132123374491808926552226417759933239797787041128715"],["600935711426094096870015445122418787993549713621760611709651621368633165439","20324938007104143755409808555648129864245438008744068998631196374973678069939"],["11928984085424115045164881645277408796158333362833782637183716393587981869368","4902856613362166185456058682776417802749647052147473282132782307856750688298"],["21295393958830680585773207380751901579534595709266397762966734323775284505657","7549893415511354691380537118424503984312220377273843857399373646720710837740"],["22133828543555830727942160145934704462580935115352459003351440173400696769567","25845635769254414308500080171951311342080207219654511847058048483574000080052"],["11961899298565851151031741759240179153387330081863882567972452311005160154539","8929832900568164690618202452352726579081326902454618853678807643990982684430"],["7988636737043361066869836679221854983659016230454091065852286135468243828214","18997685346356591242235857811879875612190025292539241758020697921205247016952"],["16888361578715857101768648950121145437988949247509194884874746307142111873769","2977730587966647227243868804471018938518507770238923767080756230168382599183"],["2251562122426783611160087719960227390478046545269565323322699787954372872613","5804508349346876008537428353967218706128288862257535182683150825717547468223"],["13628564642712556476796745796103264447782832075178281254463565380597924394003","17670462805754472595039386971291752144409290201509176840934556749198583950266"],["17352432813422436654046413449158928872549635024338456794791780472673201793263","8120396249048397967109211976901172369630410759574520646838928021675894236465"],["3455262152671144077529809233531761269780413960435561575759127678239659997594","14763809561692165620138479366603051109968423296913515733465890662827961314625"],["9365938126001549039310854628618136295208785948402874335293879835645608594094","7457302569644595349068950921908461034412208066660678976245628380614913988762"],["8886314488065121041223359372251585755862044882381362132808292360759396849642","24867953814084473039387043193121046831282002824525567117572350352310625856320"],["11801002168798212763844683181192487011116576925892100461438034972896991938331","23614625023783169847313384477691940385067436913688075566294021901283366399111"],["3233313563719963648292199936589606544952155485582302181167258994887287112355","10860745168596894028275482719989285706192659474661013773108050882320620276098"],["13962735191153215691310033057093560373158624178853563482326169372603213541361","9093983815605290539591024360816821947413132217183136297575450320411147222392"],["12215053148175508287843766201894325058574223185816445413020441816000408140282","21088032579293501210505218829678065627657836244305712578171226182963754043562"],["420959930860203817507225349498923492891416787464386864992390111239337482700","3903204813996852571603925991576639741069943519300472382533861905032061901567"],["1802623275311248884371666758891512089704456286717480807018068525947769741696","27727280911525252133857139842656136587761282076283079042642443026967661938178"],["27468125776444667810430818634326530678807041758962801254434551358823482780775","20480769865191118313009356459801912199729420641676764612089385163940360738775"],["18695084400507521125854769582626120309272690686104731556833912041032329995939","22107882995630699095154949529049480850892406154307897703965212067495006681987"],["18097009092696693967369664246265998126481785214953147643221938781400645062976","7777680179490332270540208140268102468008453057150858678456814685081902218178"],["25977696407965828499862823764522942927820198698980352685374826718350987655118","15959017627165670684246805037862056045730827858811386993018858565814346875147"],["22591833485820606704907540546096761167481105037768850044895134370321226079809","8664919513066315362855035273596040252836782942857496484576915571722298325347"],["4311432550404332907999671472392095341089160785138745306039401885584758287476","1039716955487765100104423676330620574563339767522949919890227581755337621388"],["10925664497780270982576561101232949319355993890112393125179485801849599317767","27641626198992299830104777141144275892639619571947590027801919378526050974318"],["16193014842103192311404589437426183376492630184855519283097103050329787485804","18757491847053752842617915448747762658264271606815523076120669477148258329618"],["26917048169340448250496263254956625021006491277272136341039534044829837746113","20295049698448957340946793628413370382900547349015291130037036742971447869618"],["2846435454039665103289175902032087057541798032793796819231802187294867036669","28753130320925357940772050405506945772006752173513126588125227881271026117412"],["3120669971524400859055275748038578685460409023312091958834276772447214273505","11396003809952261998443473680029716733723741588015689945301188108003697611873"],["18804474233283377056687207186585026493461131802647623278343097293723049641393","1109292938103720879952045077272484696247640179602151966499834745795373348710"],["20917541584363871209291702357309526737213952931750491405739250895061740876804","28334626651386935645595153361433910724046346078061724811328149323880314738141"],["17594172549577514035763021041663947275705334254358396283814513094422317668986","304208514831308725013173830132788262703251359305713266795064557401241224734"],["11075762066502436456156333488974682534541381885091715422569679818663369549510","10968118012978205888225706637942004204136870212423667367896363051742322774269"],["28106997894020155419905384144724137388160375264276480977582092104261750147309","1783850631652202798867249031655364763116718336127563954000113223970633752146"],["20708058136081574905526898004812969510184321200609704793165514599909350897327","16825736201580509327600543147139382312156414643525482200425315543928952374398"],["5587330062927465227517316480693031008870194499357500240439138192191573399879","22960437551333472176275360440446142283158333016117999547820540905264205240166"],["26621502731474682823125277200142945054667715065729806649952263216563421383566","10292367091936446707756686856535243241349690150804195718334043467410132207591"],["14619146055801387844396831688394784184368398719268977458063342871458596970958","23611730372714642498168471608880190237991275739889279191936889179165441036481"],["419802074280612999529719156792279638876688506446259559822253809501578361460","20544232379629263900625374861148041081981519696942328453137108868221746545116"],["24198140880302727709840514146863440757010331074442610383285141366151320110880","23471940071469030240948245392659518535618619436487383128487352636836143143518"],["1998178468881577102317041671514604809783364978747757515065031783425785971725","19189803561167229640295214342400225451692895208086965706075948391544696657624"],["28015080338129870960465731869032092388452048627897500546840602846806244685034","10460960486718599470278172453559475808566770793294371861856467764632012831357"],["23318770749749081424215734643712513419357225239139669417000100531982292261387","18799492804968152267751086566960491233270114722486838402257165612432873763334"],["5637470862285354539282011217244701624813415796339069034845923846877948265204","17846964318883464962167263706897147017064676926931260662282943438928022243342"],["14797056289353363705277298632126936752024184686575499538472729286538534195348","23992531572056769447086848463343522063390791429690634925500916463646697174805"],["23094291967329004877802931226235228393811963915273936143936706612692161172622","13808480011777866390517962000365577565593733635550891903274262681182977929170"],["21350277847936685427829219945756777620492262745588272270578697053106084070979","24495556858303530949631522055031299949295550250160142687436121965787275490044"],["25428051287965162812530212412104748709073129713030030320756455879394935340446","10947891253564076768109873811409032145580864267329982712603357116642190466414"],["15106083285610181435711920657609819743250049001932360102746117311533290680730","26522236135271868031474903618001679410162212401521288669694780298911784069564"],["1109160764674278103580470411511183546557244806617185440142085581290533688004","19358160551580668751448196585267934775419172414807809575451069747069851612429"],["10727766992222550128290583831283945701677939218743467924482635456936869875233","21327534345047088792848645642912221530740714413772299911800537427635299490967"],["18195779657231927131782661321588979789426477481010056950721745009564225020641","1703813728665029477885339400477137006461171949316287673964327988809488130024"],["27533157400548283469586581151357691684862450337625483672332932833705901485529","11325745712209995397940437755570201519024285855993547418072681998830161322337"],["8968664817919320443294589704078210257789178442022795176676026968143712632047","27841418880316272197360692682910991226667376881477312656930414068369367002467"],["17403186800552180837346065270606952704399408627908756347653151179676385837971","20413505969466928996895366573507554285422118540880456553186597320042130767584"],["19890440445514526542962758128877695977251736889348192065803431250839604115074","9133796755731172047833220539990739888261034175884852731596365012063093033875"],["6256538852547071490855991735218847248645845599768529153018497047221690191231","25057072514505049472040154826210162323661689599642972150308287115324374326926"],["25607105529913187322413600192711047550640510698993762654966704703672766728890","10690637010554189696501294122422307143730220397460613326455581283137772450915"],["6680416282765609864532222286585713562635426567415673491093291470403190000361","1382932278040751946427939544691908054336304202064618852585870745287733383346"],["23842696168275460225230890400752288823577220341294294052388809719441041734790","19454150934208723944965529860876837478863189086991064202913284831052328673367"],["23706675553226354842674241991496121983128370270079270547468652598189269289537","27592127577098082144128096817620170314875241154703692258236987996760948747832"],["24493919220240617222840718800560021854562436342720012842374624340422761976193","18418362224264393339919787916401635594157657203773843148225969017058035708324"],["22641581681708306030892746591883032697593944697217154691393520273555049284224","3854265717263523615271254345400615376624738399854982781431856177209460382504"],["28197489218442416690008405375688050080321503525423206290994673456791543503959","11557431524364477993818329224930185064539551365075338601537857021930457875019"],["28356454086841400912591962175930472597404970170069360844762568396237716991961","25005382575195169224390560306346019142599241899796138953118112577102821054056"],["5521285177671867733411739652062338101582982215502495730998399520641233570302","477240550152583042310606922787427386983327397293830170144095643360701512595"],["25616969915485100207687928094979245457001151102171902063850063776435157192267","352458506468572416310479540233602463096673760002133826300880150043687487822"],["28382776915408443801721296893049544034258805190162889065660065154761280254488","7452550246033720756885339273326076768750670187142876621616442973797990498496"],["13858317378046632995139440490657976098389915123549101620971650207110919471321","443853775331559512603906138904258726419329970616730007272733746569871130709"],["6647538486087695988420933049414013877028506268564707034825178521427899589119","2516380361256166500307638411930355617219962119112065370321575260587749896069"],["15286611441311976666022086491016742647021532534549788491026572445522722651710","3054061207336055648160432374794238980121349772893666524319115621968090542833"],["24801511877080180255706519244681294568228490850798299535439888432848809222285","23148841968403769052361839686467808982266182594248169304146757500279535519987"],["13303781239104642427190745428566973905836998158451257233320806511087425000955","14613078721146866278808227888769259458008533674817088551987684933528198251271"],["18540313959912892208508379132948953677827747410545351523662293243549334795307","22006170395207220575741018640622920705334959909772931363641717476481350414248"],["3848351712372331002868398971667761918903058119838154454183162163494588220530","27218032440411326386864038594222967774980473465507475880218132002054833733256"],["18527593742740822622952602429049134629239663964085896325542229849028106666305","975579508589025629449945410480387304945732620472292395027292508013638396537"],["13943828575908145045584596972278372863566284690968532070332986084177718004570","4533687274808228005090441197962764819439253686413142467785882834276402311743"],["10422464185019230310465954269826404280665273392468828017337159393337650063645","27971760192092021713452910252370813291141377055146521765655280422088679193806"],["18546783908359068884972739934102166634381456088125283109040349320549617526488","12548420318960829447614229911171819095546417507622063890813984615664907524087"],["14568450623482995591918076380711060096908789398037903637421894522567737717367","21935837368844570349465470682385157692329778890494164192315061868732199343181"],["17164463013334694755187036355692936281993390444028462948066082331082716905532","19797159538892383855391801235084084470429663749331262333752207384744862333216"],["4016168607274136963031347531783890554871923143718047107301356559025195385525","21777625690907444730468451139436293542990949913609676912032576927052329920729"],["25585152609639391189752992796807916801057552512804984755762770720470957057436","16854461334994614581456269870921607800968471152113412264904315240621401885012"],["5294289488118648431761800154168696885567587009194226949172212058448782329483","27451009396426371450812091728920665377234065343467172171009705319292882505778"],["7929661018592794851791382976666945153413299303936098737890272713831866703013","19101463812705742056527931309723799663722592912537933051662778512796916299199"],["16160880905860041131145920033174125323477326563128336987648214149226747047606","23546166235584732866263637850240513000439810468051694633192301938679979310165"],["14579579409506991370562669040145840677306992270613849678467517176885821084202","2553340806741793586139640356650385251175009888199259560134567284964028722667"],["3424071998403602923034292750601494168484298185408921749575921237376120491713","11082878881192146629683536753655877716709616843530096918727054280634039062118"],["16417267934050184258535611625683344576224332517518822836959122494179731505431","26611896070019791511564667320191345919807208057660892770983144856005058730761"],["23492316318772415982753236790993936780293333548705727834818003873604661612304","25432493533859211367625665325026862572480165990088043141167483962590382188459"],["9459659265178036149977751894263728886059188635113047851704685326930782914262","18490088361987490670270802488907454612219354195296522622606018599372154135762"],["9253762595356985495542079206501503803731138444848297451437449020705719118433","25018146979148380343069859336717600300435727626510574399025150434582162070325"],["26804392995963614183060455459097181528402218497965141226848462985188283149078","10397852609472305498575005212029530742687534939550635234877843496560302237732"],["19703374714401168913195903194117656242205460478811114653717755324214798426279","27415816036606088195750901117790300285364936378037517799139608615105338685272"],["10375775902867550069677378175801206596437183983423042392729608140217522610189","21859827674343781268866979663642830689479263736456812933767891949644781144882"],["3406323407327010573930735816222842558891268280163636840299803336171353852266","22925585984630347337721387557210104309666678100580180874991696406390203943852"],["12764237684950332452822116571913355989677568333600667995005206612900786537601","4688984362532508455417347793743317869343391613554260307145996972432517596226"],["19355525185523361292995536391119161186739211168915068997746431728542158998750","8489640079174322806813132363808320911715582740126005332212999750332100739117"],["24439345896117846054591956251402359260426058840541320287561624015953435295981","5904431916461632354659160662214090534297085335151872873254854372848685438701"],["26444640202589783585342062804449729784935497977894325768451571025858254954368","24151521453670210149234818697828318710269582885351718330318065021962149657211"],["5709805651746874500796333581118467748527256237676362283482267385328247737748","17780888298427889761611701254218906184146733882732660761829198538698019129187"],["22973367064119262564490194553305682061244619392452869170992420339457848662352","27869291914563389473287032233903504181915191459352352421592957601840437535373"],["26239748850785989584892279178576228382485641038215449731828202628731859077789","16785638017974210107734627940040824940557249484558405716579925450395542568305"],["8388552005763856651211888505576293946715810171676111085727069702676504618186","1873795069356365448234578248684034229744350111871196330841972671658393315907"],["27856122417425517031264136457584671283294954372169669478852537246197063166880","7005705632529718688482423008319955222654036528017093688230449748366392215908"],["20353735276395282472153203518248039696428115704547032545987085079654985541095","4229759593250538048525595433094028118118446847716101165551305870274179240528"],["16045211930872665274718934981101872356831383781491468147777618679293340864866","20609779738157494239129737509326852761125485431873893526113666273646835851915"],["1255666513744441762751588128723252246064671285385360008357615160786525068060","15534878538288273860531798809190994443105039066604959623968258154320490110346"],["20328993448314188952065654018258786608376447959232908671986621681399529092106","13578759441882935623371297271702745885085128548261789532860444319191736831842"],["18242236488466710122483998260967522104810929093896454622614039344868145345608","18820745780352286768022691691873038689835187926494147228795340473439941696340"],["25954799143843492468908211349363953758584038004530834450623998673617317836732","14747346513524699509098460593412463029402748565545757306502553392517149457600"],["7004695252700532710196713786601320496363477834197587284077608302620635544984","22782868138933297397491820037793356035183813275737607188641750030698110076653"],["19143631658112276890439835622783759488215726921553198806772737290515446237598","25795012204099193906241875440909876864521606200812426559255067251035182310115"],["12816750861537975858560329757450918491278480646805851815552785642844702852121","10340396113627307683535239053200353571317688532702045610215238270789203164931"],["15521556524551453531099253907926039552349669173741634077495392406048405274161","24696684405400120476695065569081720034403284846134485894931942266145335441043"],["21522051598965936757222350889310508741079840946046181994542163574778328083513","1735316824658550606950303424645608986238776190502863512166641932688875941728"],["28360322569943240816247002122371857797008646091905081447788725836428346326910","10533123006266641629224729786234422926806322213201586161242112419259638031370"],["18833063588479931012792845382244771966529546645660315396930250136491729232242","5339840834315103275011448178061038126898892331445846180108150732216382867131"],["14450495568458434476379780890143485715130928046213461668901339800810723500420","25068140505244222428229155662601606935314622885918012761178991053588002632450"],["5221532528074628464487811412952960933212982308336558896054469749369981522431","17072397232332688298942848595975818622687065792659584720490310965685074393755"],["6818561631383733504119528066731737482337152861817617284463808624844854371026","22172925110523979943319877177894242213519136602762104193870942433105431910532"],["16456980837015986619684524488998115339847183656820609662876846702709671256311","17922417630598245527142414798332521654109887816754549672328956650167458971756"],["26453222771957731899600729980817203092325794518886693749009410821550494393196","10905968146329117598077135628969854192436356814199382493751796465722995328423"],["19419363986987264540109186626333064014172499282709469826279477245446617788778","28243845054011899995462060716552809828789700706043622366271389772923817851061"],["12070082482285242006878532531278409048028709525260215693575541186319699787511","22185747345833675937897671750595734663272746743911748409188126143093068444895"],["22727477490784494254848331120232564113689702978474772861646173034236283790539","5151036052438638925914556636476426807539741001248557528937169146070262342342"],["6231959897099218809085047429730271687079934826594537881137614645933367435282","6420858268381638448268670806429192748414016113559141700547988828754531246310"],["21359888643871381647686718209374709105741798184800014255755250618485721140706","26230972896747742428400646869497692920271907787326205982006069003019896915137"],["10934218522388407881905581430060370917277985234552761030401997169039727463397","3933725411027021975066512168994471709843113088521827072381491900383244159114"],["9917116974061533478927081691219894457191069610686554334436701223147478916607","5068642039155121733086263346250982179955898698108885172861317282789406880342"],["26342631436273784022081513848400361299885118013628930288353749275691284467580","14244653536340835167458514102029538957828547302282252922593525299033981952944"],["14539461819237041968744727573886875590252855246273277114365012097077535265444","4394480025053177897457953086499672011467883974481770774998201420412269822157"],["24318542620544135138490659133553562529961799533736159165459272714451802218283","2830045620260491860197228135210749720166417356690156324473295961423003981658"],["15121164521197903584223353516516862557353662453754893168025354961928182506681","577966866304539731443888328353826589265291074661711268964496282964513314893"],["17164990603606368998235041894541745120688002301386655164861814231468204470258","18987103392823547830397782793517690594914374518385878317697724232325680026201"],["24674755407131383346368813880209580958449537650715149111461211245607526645730","1111197632102883883658432134108303410711185662470306687375984042253667562772"],["15324974770903447129649302862308502326595651810352241428189400750980832180436","21393923303248931536779232207795846701716863977097735570759739688689862127470"],["1678369110827312865675766883590408437739245931761222853052178825475166660842","2650613596023320758050976179097982812966505163390020317802524170273969828903"],["26371735461947649346300598726696176206882940784382098255102333472871322449854","23609531928660569395667425748923869706184867103290037703633180831017037911417"],["17036769420028299327106762530555461270164200897396381559069739035846668643041","8677284439692850487975824973224056302943206793244862850959823165372723855274"],["13529045007919481576006317949426132233231197979924752543541361075381564249396","28878291093304544400694916600135052298890172967232832187261341759855970024558"],["8124228553522040731357404788210408776874069224390976999886338845823335044194","25674729872132453853174654815466914488964334413912477674500632259654162531136"],["546881198596719753978814410163709725929406909651921904774455730674376896294","10779173731770259349462260168712915875543256477418222122833454286482503593135"],["17898018117370094093186828902284970055366707579502878861808470321384324165857","10301465381803400006654841192241982037414367120598936998707868506523007949654"],["15349096980448867244157695693084672584253156671479619658910417612069545930936","26744625042216008385525939600771264806657089816852568138872938837723063141456"],["12006098140626883511638385894917051494736964104467872084710057079078949087820","4297479929213717387244423194359837625750654156444276872004823099846292174715"],["5454523916738311312106509285521271528604376844776008392927069506314847050017","17991436782674712743699420522795496510979164263623570680844827165439081220844"],["16765867202981702965310091550409962731036478096610139745319616470336029509167","9671201779088806854986444206877172883009958563615697055521232464374870385943"],["25851554244507024712854749954104007269450459159486685283654967331684119303282","6375645524342495607356375693581725231350698409146177916587864250694935469699"],["3965457256926678435291091373514897434696421326367414541318491701922944634818","27531092921712835866118749304794024872906582806487940336789346898898941764621"],["1809373298741671888116211814871840731956202282651548448355354333651405427480","11140291739258660732987334330787989375581405737620118686680741884875063629691"],["18802958253992980422393705678592306943980206346394019146142398309340513645737","23957261918508370636318311788062234349477969862791441349170538889317512665544"],["7088044940397015753053014346691474988409752903020715816558532993317480738731","13967287568702494712155071523518812718267109556340676540457155060939817453557"],["26752061704195311432781570270540977067490802760778018193632990931331747185543","1448335831046975203810415129635877995967833225434633842914130950826889761520"],["25381248120542869584890224495297273377414250840956948583531770085738709894774","11761578562597484105834443056581504155833072025721909987147087188686420362936"],["17313684337206362445065028360437363859725438258239933781793004868512246818208","18564169871037628103350508037748695985730973444471733177002174812170829281322"],["495575822577099030264112710453748555161798831883678158187904606906228747845","20356907476479430512794955871089862340588585502712200012223664760365969769809"],["28891065181599442421922080289155248987771445927787744000547868854738286696408","3678522921319163476860897301683925842088233424412511122402755654053035122887"],["9054144544850056913865959446442526713918730025244828244881488680879879835691","7413872799973967304889123484631765217482116305997507478741090054964754482171"],["13627420463666976152802570643751085528796909270918465196755037706734567933242","9393734866645132458097924204651320920771276262307462019047433910638830696842"],["21886669615005939625280768736992761152754898415498259279969695577185337647929","9875872753791390038790355123747922925062000931967427255244054796826416823631"],["6844399535470503798976832568465119816777771409051425039679518966734666076541","17071648174277089270566749416053744941883475914503580654237389398296046712247"],["12277141199581906867278789057018834752931409403225615043821706005473706736801","14201619817383345726568584858124834685037345350579243761629838726164319783157"],["24650952111563787613502656987492348883021818846946697927647378081823333282799","13930550300639850818969155494740305133478569793479693308101509087190564177382"],["9586864812899682393515913311908504959195402801232520086790767980990498781584","24449841558816998745035767298168729939396824790808181700846808631770347191469"],["22726567671108074181702009571060347683126558281625187843539716870976701834825","6279963570990089341202758797701840524579561665233095962355938197510141020136"],["2845740369541048214333316149708433065465294699363115578536305903622258741376","12155319533843595178692229893983620292110526215933769768358005472281070655131"],["8568522041316476063261422476817956733156627752866283876594521913784181777882","875566759981082288450742414216984052497728428999706938239248590215465593778"],["19931908889192887467264172651338091377433835193081825868879610826467290449413","20427965964032456104073587748543363758189770873729306906746202621835350862524"],["18755597791705285302909894659632633112031720025287015371025821251603956638249","2895526835571933461994050352272698055983329207391274960390956249646301076914"],["5946555365013338756700663519195616216733839758604572458136455560373478392753","1312441794627803118855436983958494137591045382566942601421863347214126614757"],["14334137480068658805408469400735165891190845442705286268351794113447884225590","22766476868150191752170472298090562402103556307396691273985660409356249246163"],["6437512735462904455345754486291814106999689873744684673147577295067915380796","17702635039635140140299787692548736578178123022955956122242987043537803575267"],["15415584550136001835497285169517041644937680176550750112243146684754997025293","13000435552675694080224814137923169592690212439182338740797481395283176973794"],["24438677269338979488597122161096776157344244745935108075751543160733782232473","1542149549080618511850587149855952128176822902094854590375665992788080519914"],["7147681558184264227189641191522587753303751168368432611530861625214328467241","2017077497051350564433434613118351162254301782085330248600196838816894842778"],["3804635397593323580804430440944931244959857259331795094150830709955104733642","20215704415253159934881456363378340557249044855827464906980096018907088591456"],["19868788850845180414563482834561978135639683924223022093268453146868270899998","27812411060936268347318159439248450897884055604025000561309423676967810927517"],["8851519716276847982171246409499265997747238824571979832680270093409178638176","19443798508257591171029973164475943058229792850479468861715586370716784665073"],["20079302417031648820893474703449947164712604128284787499550415885350448132835","26181010630826509508381113635211385991161410600710472200118259526432450639265"],["9298526278794330393604951153053677237801554671678573970810894822316283427104","19213779222606618874102235993415206066733593051591004163091754498930199157315"],["1217357052656494475801337546481048153943558813215556033690403094551937480603","27716196092201719429852966078762612734144715209325924572025438684139764909287"],["20888862808815644301443218004923421447124301004842589698763366400714198542083","9008076389270944669845645574810546707120896514331615345789625313336430421721"],["2398807176657850144355506862562175804549477297435625757570362398405641742053","19959745070447659757623169256889175085814126821338631304852371701908888121070"],["20313838303310688045053534777914060940489191685366758193165919988980131364074","1777038267306839033164694511374920315658342290205845688332329116953905619507"],["12964147608905015148723865570378359059274719233409633414003539618321002928165","4616264952809178487673845566479232378109412182448345549952131014367243222669"],["2322521592592811086920770976623691040539718235617629373485789828192665856528","12693796804960294952127113255482624747785387065917378344767308047196706166162"],["21087673663827531077226930619393580274328334426483053299430833672770607537860","17352359984370679113515410290147370322756379316029101694441065091046278712298"],["11240126431174290739051550484822687862471442267782799340425301969602136547958","18976577008149623837153183144105177575768511235812745318224585638695639381872"],["15537802945895634558950840485931740664368133542560407637907868484230809008340","25254917366835942539986572019050055069467864518148682929190779050201565264223"],["25669296702415004063979946228230975388473373548610135454116427842645068922838","9512949648682851556341603685149786877600530630485059597742883425831552106358"],["16629207529955789821177581278823865281064238027494088962292350723043546897587","13866942585546694016474927219494902664163711474318131170089454756119518470028"],["25400470656867840849765992929638184293685719613648817084106021015059147500818","27282473095601044794641598413946786701991284776482473822247730458535968893176"],["10345123700785677268922237051178108735627926439562224972683122008291443582005","1475718978579399830125599787631384483224446851365712197484608480761089504049"],["11163472764287820532439899142903504304225035980576111761446992470546025396248","11455623088497308505585908023323816911783093651900153192481761679108292924663"],["2038001123372118594089793345202832326671310009418702015121610563321302633215","5104057332694564259574942270136918877354576236993295703037523064720483582660"],["15372162131827657201444217149144420945951763413082559399164927250215553891880","20635528301488348941461866319646196283808142982950965270682300310791139883689"],["22648298526018232325691303275114528108955929510600263596207772705340889388847","6367098927745397089900304595790817832920594487143993454598713034504763332855"],["9502757948513547612735383768347592766547592726024810726953155686717701136328","866414725182381725095265485420677294230961873259357337294111132964366526701"],["15068789399000755251043648129326444168669032685735229729394002461772821999413","15475225965736271516633645701983918987983548405195093585212272890390362134329"],["17078276394726857060472790057948708451325569751099617741721133579111551216720","10571842750472198111205287703345488694294549408229058011199773865177217567078"],["12065421186490348330261151347152822302313420287003162821786469522757027179423","7720858142401581840265794130545762368320163919630720031283119929318475076324"],["1535057517736200532533546612094951062967283900051037779787892604413235501609","12310013462346750195567981642828589000785038210503650681823201072566190275568"],["10363286132532531516554706728268393800547118738843472069299138330534615633242","17163531844896137869934541282326204668915612282537043176625008157385252639311"],["6425020892815844408151148923500304845289756166630161932837665165669341512126","10775473039818275182715908436944085122880205680927918023871147562182170472578"],["6202652147621914771636546446887903474067826903921995294613192216103617653363","7822438693857245586638162926646329878445308515786989555774227301713357113557"],["17210363476716474151444162611376830980686310894097349521432131691298416274035","2504277175867832166970930060917576494948226598840368922056478681290825962961"],["16575014051877372160434021567731535424430576221564019065516513369222487516841","1481192969260140964494766311343467658777702131986831387257990123380042860345"],["8493402638247766821878562980872034304124228830100119001828050362656781484787","20733410628550257562808716084469981440327229789092041434970021059871819032533"],["6044177601361893584364115972573711159037834558165644680284241986658436423692","635820712292291309121031771584251539631906586969023593096298697138850263536"],["2973316599175781893570225791455371785443355699129894439737072541526178814486","4404065767465952951677798714056713077506781149327794111932650860457728987134"],["21762342053810989912152718616518852907064057924048945968884369006624015212278","12869303384555094604048220597908565570840438015462805772302410625516833090041"],["6739633201691150342910146837155113311602343390992008363860877204581441111468","8692764467949766642608969579529313843029210577393828586363117475474278295326"],["24077392848116790675579363441154408329775497022641819548680687418157381023103","10197804260802562560656189390559981778033093760939180607508444079993209711573"],["25554612068598501477584696390366649581052489045070213257805328092037014898148","7939274080723384500160979756659228662585981151479285093300489912127939555419"],["17611780594960423013332054543973023788548192165466134930348812563709547124197","6490270850929924834149513555248909605243370892495267854525797893963294765179"],["11366487897911178518078261986457540272136370356800541087912714178008520560402","22048709250146127393139308051175760244644399300362034339737546039471451279006"],["10626741043078623048125070079734198348263659328850517530623949403682077220016","11220372055784087505060370576604636833971853598514094468499440307528049375166"],["13537426157412781567796597034288026362090416994903381162949389072591416173199","4044461912865721632752068282063987956798410396611800925048604492741578026301"],["12985557578775345944260394186260182742324012066454439959122619856910450626856","7964610141202615114564365113343749763968040630055353327538138008179586522826"],["18499100684462384665811204834483559027378604744517217450939000184727673154005","16675481310464641690350778358689067607446139743278262239572706344440838183963"],["26427222350781855075499686156849468947604644843585098426586837016967773357876","3818092130058972148323991808939565314238825585182202483041398296312366294168"],["27185917765381088351479652848157980403634634824824941464586917364397681385877","16422233841296631469705176340473693587962586328033392046646970249823646778638"],["3803604137918567526205075192091284741190843443358854707473066650315927481328","28092248749948524949116830759546572607361149416187256085918724527478593961117"],["12315716847900954701514637346096057029121841540171778577965135512077675796319","23247353265984385199398750255347554075696010635023571722378721160006116868465"],["14588835964621503398763391980214316699628390814458986605720639515750583907513","8753086190210421338270298904922931033496489817733465824827410412368515216531"],["4643051987412174838745809700486748550160329000483846900935183011850779583830","13505009997139108903157939178578090023977846924059344997951852040189339470781"],["1908715602752940370083304993797121122015820158615889010850787668970359860425","2557802826538951564671659127750238316325005365660273284600642067036534738166"],["11465393624404809290332904525524458916759957018501224575017378537876091373388","25793990891894203503000289713572467333158512002961693686316439415839635985513"],["3244553133616535257319375578006403518450038036683888533605671108338527013218","22838783173743536038814981883310582884588939023020519518088160620939748640340"],["16686833277271248095415085145083715761424725277618193907756124324868462871700","14242283208734241090633513142593734560559993044458836440693863239185907324481"],["13960266406135853974973644323848142081309763615161536302412316925518015928693","21499778982506638284295301571980474476347834883088291264143218202604027190276"],["15919999456298181135183653667502685885480916952744594864531096758748701210261","22532076712636063459719129344787936600981454391567667930054019867292230992785"],["23206526002032237257662534847172677018919227665114436210985823165727782698919","3977754012366522980640991706051982610706408732629748066514124514876604503183"],["20696633908240506872425729247138213470184646126742616340056042201215090666000","8968705800339686736112473267127178412813901791688570755363474926902466585933"],["2651061338305232079843823589860724324067732318300468853024335399846228294860","8335802744936303942861832030960301917827712502693465624730128823750173981997"],["13707470490374393788471564712678665568138801753085497256464190302811991199510","28181286776850557081447580319927884416507350259055229265353665187621675033526"],["25182147031393649678515550655862502427654507658030984415132629445165525023297","27636403436472721146437142707556375711509176061160112773876138312563478095693"],["25840579371477493683335361057866673090602291580982767195076414612642059043130","26034467968182015316201594708538382320357740671053188558572896555828398568001"],["12127206343190783423069867587512446143364234882847232064186251276505063575852","24317644299926604584713904066177970690359574781850581598194504788709162236064"],["4417955037700964137551131463844749785317510835294629952243693142745553812464","1278967256397366269367065489905458932001942110197309310249849899019771965337"],["27479464123203229048420941151196058119496582684936823766461053079164077209268","12133762508884828711327563175250861850258732255455394600777252635473775328967"],["27700033961791472799767533271495855966144683082134935896775294621825063465049","16805991206825321494607186740419095939287488868437155483449336790958096396026"],["5395965242340820680296206416123370095894593683009009601730194066845881059164","11303045840071304461157472251270411570070713444772216791962285266422411139278"],["26083405173926542523191543062125150588240404815964827088883821386618322311674","24055344232944827187348882733290721849217284877133794243848062210343286532336"],["19130593232241969472239263406172308683430239757357543006923721339642973819098","14141070642748649652923732603679610151688087137997892228188524913675882876132"],["24343769759203149848914514467120333039842952327136762538472004877386833809054","21934441168823179739191464801191711327135316720293991511020917289805879788977"],["13565884257481682305454285199513691418591855196475251425384256827530613065345","15143074023001207399263173227317913565569764541159389237171149589247063982207"],["10370998602128263115234255903431683222441229078754145280436396308853205311900","18908488889513460852397216801211742161258433510038499072706682234805282126549"],["5730173096218154601686568443192484021045816844263962909373096231855706944780","10811132432909528674268617459712587020678205361024867664153562654473544947501"],["15648302746975677120691124033116032496635507481093846986007894001815232124397","25934934564122179452640226090054576033914297286453605033012300130057847989318"],["11497834053385613605177088426427844719167007853058004989622454422706431704545","17565033452819558180193837101714863162274386244636982054084806102929303749920"],["15701418854273762246447508065554704691919586959510575900133051661435342449325","11594596601901391757866604852203211418101826098261692393612595238155618377889"],["8703352946022435547107962091058545901725779731999800168184910199720045691802","9250356273796222022143063847418440702978774268410588311655419720642207403570"],["7309328588112384625959358120382716996676117042623019227640308107493349246751","11622941077555491837507966311376517213653658507151814233817795374694519471898"],["22572921589954163808180770611811591906120684914149058070634390839599874809880","2779833990119761922369125734188565236772140832552779584061885385120739088632"],["9531899488182774683593747157712522570852910130054669250339398557952223570357","2474641120798466096170338380721590523300945805458875529150020185936335414632"],["5444580777295996181649856413263764727435398466999795460621685658213636717077","5901065293992305866858918690328586087571514965838406953061743598205830447727"],["7007383836236763591248112739764066171498514302637831541436536044987484586883","2839597064726065413918165549917738166726577069779470962796480255672052679403"],["12241221887793371619051848291075791937042342801487999117066239561364606385104","26743281326614830763142746929888411402770720486914505236565067108084301936313"],["22461961346816685891826940564233896031666961390652534404232511607646169958247","14354966975562383689642542820075788513669201688703473154395906018739790518518"],["5452783236386837790035750184709110414207086286008868874208329197946393341282","1183973820977469410996519574150767246143667799647343685080845267755811998664"],["9579944189031766095810754056217846562403379374030028204964429291010918914217","3982839220437432445776101133072057210422537851650096181280712348913857860711"],["8888234466111765456568202370816855133382714836828607407603833482166705483174","7380161724737129119009326947840829368064984924749791512295995543536863178740"],["9553554056364371378176318491514037478276811419509269071435492881282264183013","17896642154803813814203760565987194192445816044208443016620964448653425114492"],["2554159318023424370583653062614815105994582461811082107055948188863490866887","13091382817812453550035985725473880857511935160284847563550269948506538075716"],["4773958127056377804827302291687467362203414070622760890365572307649802662380","22051180292603101459152873415140741503276263763996413654862013668192518683143"],["27752598032088209428306007746097610362281546009363361614443237254343911758938","301971418908085337916775875735366150688855337947346776004179918034467594389"],["1764168079949107182372876442982662317005345979252260429502194242672677124815","578963053513030866823606792105906259322726479459419971056107513831946208082"],["27319859678863652409216599657937848321097920613367101024327227452683590777359","9049181125180049129243126448506779117103343542495693188881701841445971380048"],["21535834307866910437861040025729941765652619301513760379650105721086927906078","22759438104330718214645078380124330236682852274432502327214868089811602819847"],["5732444512995018855016620137373564960666983532685534971203311905472151442893","19736903807254919366886018733341627946989490705915360777243104351480588937032"],["12121258697570135116529460279131268810352424449590873169239080772345492747719","19570287492462820776644872699048757166660816306442094144155090077179907898906"],["2122282938873108300249735017845496496731539774594700189752890422186935143886","7683998754506227774644569812178956429149614864294135883100258028708036400286"],["12428044476401191675571830762253389084926170203323844189201985424766254456617","17698530678050172627717991470131604163191977234380405840869660810558916227773"],["18715646601425732143819545724706541261665202314311149926999786202049106617578","26144763075152033274394437477702083436885280152313705894828973073580325372025"],["1961976622886965492815301541282233966965757166744412129379613259054112232054","6562739734090813502601929831331796851513981960879111500394846976159691451032"],["21711197512455459731950873762706479687213253784572318735431058425009911201894","11527132424173239160320010134454740293754430968223451085682098665506141326844"],["20187897234499033893996553547083192611081176921037886718169643482369976566205","14416290123606798899295160779290322912363240014963490502990965581015532501187"],["25971983244753723739804762446436977044121641364182341120590852031527345944106","12567718581803006657362487323402719603895705795622595285957523514754576421380"],["4597844505678459766606163468634250953315609128231632894406733718251295713009","4674090964873809927767955400819542178356283208084430774223488615162296039592"],["25968906234818335750628666864658953468632984250176284047579627435095940003248","5683282932996384561315249494045408306104453621427730999186373167787989636219"],["28130360631903342687380879252075814810074565442081380384796473857765694535830","4953047959324121617541304957023744997313773755758156205552127362278671184041"],["14059387675080196311720230036183756979625233588567077108037986720505541403846","21423838395130559451470039523914615613911999042083772926767820063725868825213"],["12010008259306776385959517789161864588480097979068127291798283155892368686220","14914397147334278482096954712697825530998611585735237693958700649059300755643"],["27706778271040586968607979293785942607065099401381027333455365074742511643481","10730326265752259429437169440350942298741356049594034941481937054356967009623"],["5830403341715669661107273783069645815717928551305600130125308351100637131744","12882572014115006017873989394784557355833008869321541322050446676840817159255"],["12310120670244227217307455108371779016765735587624291178355904266213982937946","9601302799642169373153589079684071298283679427986867119404413991651055452492"],["5891174146445401947159619802193048617037117852766312203153788137779403098376","22690686423062864048250608621133710099533406667284720146449200042342884121121"],["21712663920053314948738276946728161632490195322112558466305113478155530283416","11769893373481327388565021590931932399703055359112298815016549003690008834405"],["12521497988082868773520013532176568167740689459603375306411495654572065841555","10145626609938899929589183009374744439635113512161106674760372186784775098380"],["549306167074947595977624094345756991398630707443334616424392103979715295504","10316103316310283963717696503162555449093569078990864864316936904022373058298"],["10876788879858995229486891591498694444934818884590956559949562655875097789480","16983056391454274818841720939904777598434078817172968564331362002339797535197"],["19962328758951827831328655029175719622731127559738850309980224498074393231873","2296166746937751854575182778324005382135626277912065909632440261091604877319"],["3902038085319158948197311176709634089933872751370393836997345282429487761877","15030210996098864298045475075240266215154773079763039839672981474907076070976"],["26838591823998941158393893500931989616820854944769897718125841026500021580806","23501703464977061029331763920163381961533797957068600438562339163247711936276"],["14911127888289306827622525075148756379894021557280928930850599266690864711836","4058403091171631825954594624771637333118967317011429376035348556883714326402"],["9605866180860042817225034589047649248747494481243290336670931894415727709405","25407491945598465367923307054329470711235790138375619623215881766397147408665"],["24623130199497996710951217648555046006437055250298124402578381697878237056215","28565550955598900912683871161607458588761643602151380382714453894727632235916"],["13692620026169551530532122160587811691372036314682881883037536004353009828106","416574924180194944714526600988739307589759534340038886438676151554753000415"],["19987553056805599164594696093149185188168297587294666341128537668933435263726","19778792984702183029725759277166425904971792246989461248132037438768269863828"],["8047772343032511804742917690787564487789073635286277603465116232231482219393","1451573033383529402499080498040995697056272824303210607306398009502811377750"],["21230092659527024519998660009939161330064104937855705469461991239897617660107","11878693546818399982835220487806668939796481442055145756421858845644353632237"],["14863234059300063647878040944429190172417287174268898094946769310328421150191","14970458774091722285462406668207089133721784727605927591704759766701477266118"],["24231784614672532259346335486297117559346609016537877144863810729872908759254","24728113884088071961835113268291555245859360461647909790992496141825413728713"],["11006929191467102432598560518351969323946028961236356875177350708729996968191","13526291219177801039007939155203048488540640085516571744632846146379498611577"],["16413632894188313812198339150731000489181776020330195330933964515966011705226","25632814592105139518057169729894238237861148405320450329583618210356138517729"],["24195258412038695342792390903188297699209363477241950936831166252515250334494","9052524836934551147692846086336046669069387685814005327681713279002796011942"],["17966758791074730040612320057379126976226077608529955133936354622657139662872","18458726484280593062730001175802016498467221017507980926250066865323697470201"],["13894294702913101843852619527968063579926357128933607586171136416943731396718","2744985529056559398453194099658115175112548433140307889092277466616921408029"],["7458684653498497661345190823987232983023098027776674438883251553617658471456","26958471765623499104045623273327360983962036518182387051684189493923774215833"],["4053111911611088480174008082323119063017413750834847681571168587559098305992","10808486562212613919677722498874746994750530922292216191566787124122981838109"],["26418674060870818748072532825564177754078200053504662842431421122145115515938","26833611274077661867181456456230949434180259421930009158156182611459553814108"],["25324161835759627228595697793120509804545687552123925077625940414237521350408","2494203921084831024955115750098007355760927373224672545865679799849090494609"],["9531145710398251895576376815133067806169511462631155624092456104201118380438","20484573493591627099095149221281614368861362758831933165428658737170215906332"],["1781038448269015636481327307412792128014733011409979044290734083301533229112","20467275309560407292316276100089238996899504742184686775712585379376696585269"],["17439063050301558843684796498271723849025185545102552927028015347341790779287","16572245049779401025608336190275614886164792609593196128369162457157888517575"],["13620485428418177740983789355368378945922621595744332108591692804524312079875","9548728639165526629251762844003412357336213468703401842976949194689700410444"],["13494027377301442202794959454789178794674525871227430151303040885428299406266","27833186110278745009317221053208162882571885493483553075068856511046940290511"],["11803357493482359980256446638137692264445436818637460435611166204974282431300","7771229882975539551357427255734483774427912317156617011405623662679103018856"],["14792828295926181776798288614972539834391534656055909442029894112144106884785","18122524768159497584933689625577317754558127197308077853170071089401026622626"],["1596461777098440985473258221162923638106909712929304323763762474638480308403","9251917721504906255835475832227671720180301833793705943470739023105842199691"],["28609923955525005509051775525759080057232993403359830025213236281301147003585","1541196567593721388603000363908336856046311290942523740531425845598437452393"],["4724631956324772094938723673325329752681563602510952463460140127249362666049","21960658976947944979696805440235091742290403607617525947663525170851093867763"],["1319875082784372488689756248924532353484164471513758238657868232286449745672","993246189367002278923152367344271526156462473269835196575779084883043123730"],["17313240580250079195860678468319226762346424908375043217004079740322822454132","19997694963973727610685616394990560804700646611142408662567588258861839552255"],["875923262703025096569097864367115270397585575000679414371390730255286248637","2078909859402569135505008305022929094052505920738252960405095664999625187015"],["28118580660159074642976824866155662314779254587727627174296964023101386470337","850498545841355719126066942832388918245298964439945406738237057630081224694"],["15085862420017237815711345778240601904354590487764076949991595938360190679535","16102305947338040396293390265035950300113072201822843688747895917298240462431"],["14261519091266386571068415459555855462126266549825984450316499248686340424263","12737507624335455451704995514295127231784194882046568874865145268064820489638"],["19295412259768178910973384945763407764266225811194287736350353980650634201624","17604925645366018784222455054662762768124982149654879007819363704213122234864"],["24830755565066124343054103273106963971892989910228942189958452382831221898955","6656243785844347647091896666957402994107919808512855378219848829875395294454"],["9474506846513014141955875164865298500269597642442926108850465335614990760158","6319836944477202470071319223482119550552699166644387612886403959480410026194"],["6261672624722496901398035312108680488591291054498945208029140560788187612336","15128021091897773650698742770029127380343648692877045905725121516271680551942"],["15431533151940593224358590894748063187125126884987851635474357903763174283507","12840972143332845938962093877991491238864251619595134918822867073889514532544"],["8992191264629596025901069796423235802479231854462067315820898352895198073987","21833499935914275994992062287453364205353544994784842559733959652451897762851"],["18110428694846403595591096309338654222810969380030260481291457560496692035025","2072180696186125227847736163765144202431970664919155586842191716081622400092"],["512323479255655008658481264133459676134740738242101230375273632804855862656","3224756282611916520879116858002976129919610752620315804884208278551698144368"],["613675279105383143259541346294986985633726622641693035260582151345672287570","8600021322387541384383317466306902498736476586717247155512065967606201719676"],["22921912494312836209826059561359214483282892116869356273955582308689648241880","8419475217241727720705886306732020520706159105997224548854558402726781318898"],["8909336779738018210361228410544313959956034556136792404538420562707906127783","565616346819576232507247336888924306368710693702710671178615439318480270715"],["4517188249353099704538775273808107907456431410208688874421451082151428802435","6356130909986268763560238455207316730706567285992882328446222201518962601922"],["1878313519174396358208355725004906540439056987704311919813794311401310534887","26408630260849278314901991999884918188989622710763857095045065805161052980990"],["15123179706309273076268527914872091630100117313585203918003589224816327941509","1930503884296360338349908336073465518224249725470232625810253153145748337356"],["7395470999718918266677909693816671816126789558456155508863832658877677018957","3994299500086931624093668216683893027695989786834093986110697996226494268040"],["19604307701115549225409253969164462402985614888655982504620067912366844260504","17201392452526200889272279920684808912801593412964286337277291806847017452514"],["8123832861371268452090201410927755871992431898362528300845206017543149588815","27803542922932765272144715647068217917407884061669057851833110084161717756523"],["2517176796287758789550194007083790751186905070011786051661826972513099035483","5464399644004970159091702342578621341002431554493539796651933147702265793188"],["10460162812668530895285385232371888224970481858830372748127849382232373205334","18820702011832825921059584886126994717289762223607832590314875746665743422171"],["21927262916659842678577756737347729686650986459228063813525006912751727630188","17061508540071077319773986210025926269243165941550402597635311152748724216133"],["25574096517659265758293122017673788351729334524200663713815136579832560705626","10502610834970884962079880567538436827826281788867788395049654634448805214102"],["24412209982499474368505174782203626846630841079473186339777817521717676331140","8644659575047905937133528511982597371924857226332171232272721718479034278817"],["15584969027065029273246587021024300357253508562210358706273993778802756573540","19414931862711491833452783548337379325013418635170158975277026727321904379962"],["23055817760747475322356585695241858173170511667821539916440079700077664790535","6464656199034887771600189369142800466557786271294923514564257362338410342280"],["16615677316487941612971875311599599444280156249898268762254694721573184539009","5305837755634420109889098546167679044408393618312931884623755894658174530757"],["8394806031137295674164588570117685266980434786195981096450320300143027283642","6803818397538078719902656448674016214754787451795765912463411437152187754602"],["5688930303252128101899902780110097098099963105207732400579146627227821352153","3731690259119624025254328176960916680979518870425934205570795688403998191500"],["20799416222450498286722064722050015309892977330274826997930743052588266980553","20801784829002617079168812033003485828169539025057614243478402381017005325841"],["24314585267122825256455773412841563986272732361256001466941462621996547067292","22448193738450445484665316253834227527476045507874035910124605797824678341974"],["23334767238281444045133572760532736159056781925321081509477104471519801997058","17935828603747333193912251033308783071128138381367380475800708622701804919592"],["1972310984068329277651964744903478746030189127401137261188067951962282546685","12592584289412793365181568502611265766143209821321194607468225111026119595306"],["23192896092822464716405358089856743640125733699116926194599217733024684830752","24311607018681752794371623077266973910044839690746133001245518385546883233140"],["5926678148750333711513107835977027854899813565558233347677142317414761091645","4085847472701181259369843776441593091101914800912237949279606794160089382688"],["26085377130253058588975345170672416347894624815279255530074086212705817781391","19649552609011349479798478976690052115355205186694829970911236157847776821023"],["5920769937695038950369762092463128464264133351219826487675624166596303133095","28127600490169580714359792950572482650109504313995181470838398126029496761121"],["27338582321220995304843990425117420016930058545120613555733599520432542865082","5218963125688776651071247653496897852832024050853056072193439931456154549085"],["3448340394447402598352344464218863175623016402639032677832320532770737112572","4441847314457906269186393592184935719209432402599086114280684798497944429690"],["27788994481668690110463098668610726833361706562272303705773335003764971113469","26248466536249793463435350175249348975298271438622160035507768903637339456640"],["509334960761565770054408276889947239764093451535295183003084700045293071784","6541472194017294272391958151681521335818433742664591517701586972810417051586"],["17956065653797861236678576242550417224054028663352475766369890400745958063720","8150903079126505159509335079095466678407592158725309084625008985530925856732"],["19074731808780817267757784096174762842541221248563375291379205346755307162428","23031986308355281314458716025784815314840902010334197836663690895001096893177"],["8898897218302541271660433058574012645651532880879895898238263635896954345852","23179559624696227050724530983896880453964803966219484426172925573113864041664"],["11276084329361397418614583965297938082466746678400860489084740670434991088715","22080999427418129023807419850055294995990687238884668417273895510282694813361"],["19096617595066657149769057981502067837560618850782892967492796879603879507061","17849666135049426975773472862313809726115434935294870941859342520077971504438"],["21651786444749967015630717843480867533706899505798476050849381291441727592898","6920217212553875270781969642118637961912772752621867330071558062076660391973"],["17365341387472592787092793605299840518117465478853163454747288367651549350359","26255859290098602750574432865623789274476295819871873413915787083654673239073"],["20455340083657587121094455854864399182566782632136807666335120023847594613144","7439731479385259393316513638314610025686935019512624273435915000202260701955"],["20164056528995567384507217758130890770889648390679046285146055699089713803946","26414852161482768554364990847272654958229950784578775681790660037617377562721"],["12185922849120814046012648806919007278628361326960633572885980431702084196171","19827222990147902357045071883226560998802353114011350056971110462644046275665"],["26282445513600949399290034861002998291955715988316070657530614373552233291590","1271806797792208380886449315411827778615572230561375242325008002717304847318"],["27516972817858551841566653799705054781359064221145809109228079586780186640328","21814586829645529823091920519422742398061890703088529665440794578525365064086"],["10466757993456506641881534188673471879934199426623920626798173653715001963972","9255031823082960023621930482254350715058225957603717152409645383121709737556"],["26895619585585994149082916527353966493310179189133103974822482904159477418407","13142591243434732324128168161671284318200392707433613278609171073713286747907"],["14705310608454147201243387389221112401701601561802815097408944728510947337528","2591671657974543709264077106396494015057309587936253988713157888411877105766"],["7521112589230887570104965324764216816120224262568374446776716086246897149592","21239913658070395514177217200418995695701227979505887299251242341615274704930"],["14001736239934179927689494090565946981432262148038070725918898134303290354597","5613719878434618313998629033034290219819639552122421052230419698734494464389"],["16394896714609846537275823206411539339581957223602460623948153374477546331254","17894438523296539574852543361025082020925474373960076500435524263112656612396"],["7986349595601530182911173109223772688295980825579647493492147018314865718596","13418439507043431359842687491807267889464936540173163478531666278745672605704"],["26669788894353063432637337849173808667438521317295007076485751025687697605018","20033949155666150802466374137083405972921209848994904984554584433323978523634"],["4637879218720718838725786844078230031824872957767443249089196983747783757557","9200696129345840222843995161353535207708590487459743741340262630000403248598"],["18359226571835616413834337095275080206863595060877204376903710824100825656255","5437798588280724521901516477860176371993699456186219086215863999516602581474"],["4015513847383421352874942899853237297921105151368713830501113485320050464260","28358162272837553469516275658977432173019551833963702295959126959388246756523"],["25503249258358378098998141649530471724792372467115922453745299370550229712686","11181856377255148817217898048806118286848307308116632995928228750183556680637"],["12754142407333286227429378698915064672830479669471940213828105780380238471676","20317154827892584017617765336161031186590511687711568577648074038704157973534"],["19608588774574146032732221516646281650834970202247486083070735008017158220862","28323533570014762334721977380969126802774764794815300632609926562306467724909"],["4312433381381950056305965957369140877994811023687826088420998308278296871804","21775391148622933100939147074667499134409363149006617907684552492732748583201"],["20192483945239188836107633093146533282201306721520830083843947046448462063819","4606254325104475467911592178744436000421722912509080831910021253365344851034"],["6081227984395046904730595926698546539901093182631529192292657070480142368763","27633129315412506992069166468885198234512521041555961794669694486730637821135"],["11598213782590309449286010830955527226540132970013177245503944109993033479512","5794649563482468043204864497166984534835387680732876432699688428294170339544"],["24698748730849189927626526753809425391127039121087212553438524261832421006588","7285577471914263997851316897201868342662112796657493151418191138051692803788"],["28376324876476723024937401727131485502457466752897872175581165912854562088886","7155596271769617875138216682116885134758109129385966174895590223089136600408"],["6444805366855169585085497233254792807917776961485795375265677424738994315724","28947856210956833820735094858886751366350494115628872472082204644470032113491"],["27313888111652053420351249905404065119884461785935936070829873349208920997132","3294919168810510138591107575593798498831809169743494296114682904399469658662"],["16722741483174336324646155225036761202641964342280648096741798094185623375886","16466516594177278556933395568174050063207444718017196917607547283640680165830"],["527850326015540855236034918865353775512423727523607503690916876561779900214","24300534958502815961521533709543017605648207148735898108487410521688014251931"],["15007144340881673260877858885005123921301417515274583803379238103958612340668","19488283725939609308140392853696153612435507975632632818100938659921482916698"],["17798968507897073282528093026795841987065434963278378448127113390830523123329","17843405935031324945690729230414862145993724512345200008506574153967108430242"],["3217456330506586056431946907220734957303020630977604062922946496707587679357","22182215594534217001652124287901381755587828993611572529513337369208017082816"],["28261473567601857545798265836884767795144496524818062532918328256047731587991","27333991884553592203247592962838346179336957473594522761066348718961027135515"],["17577349113141180349834711602538592067945595277168496784454631851649412509449","26309802112242098512001968265722444195288760405990306805701480826679627454296"],["9697429034874797547378894220938374065246517001062091229668679829254397274912","25933309003424060639493827695162168477928777016236107293031750778505983145585"],["8267969257095090799510381550187460555426619076990071914477594914975640737708","19412788739031133886334622731897238531255591550260248220806370749871100179082"],["24347203724097975190978971724172460780610513940727536882861636969164007162172","5497201039398718395622073601447984354055118549938077046912711094195531372847"],["12491931763383720681394657960713689673072558980178133431565139822240607963508","4142755693199405238990659919132489916392647017735655304768190489744426427485"],["5350684135031069378475357022452183558196178277698910192644279484531300411946","12282823566270550058574646708242695105576624748194106321470671230189232542706"],["13336870160296223840557551590656019129049802429383143035584512856567384929141","15017242941344803813730313759065511985276540778854996328654366349731963241844"],["24890941121732909714191822938998204982656033621819866731197125487976498381580","7087510835087838900341027490839964162533261684575629504784766320896382847313"],["2844691052665025936375872683315477672537436269650234748538540243512825315862","20302179840222107243906429002577169306898621500056564789661147611941180249873"],["18403828667456480694771831009350020364720055498777982100399629470918325717683","6019978423936704375418746085445008111751759059124237170525660598631317755203"],["18096186046426690347777422328242678509580030739007591394763531620347836428887","11894203299386583258128386607564525552011375132899150325490276496834482092018"],["15693345941429020971712839877744205511097056729123004130818005313476661954898","18467055426351641377288796987840543979793431505762302742368191811341578524712"],["6489487002545990116511191863437403408647453610808954512547690235612755747418","24176002302684706732390279388898971716860085943683798442127021896101453488895"],["22874551349179398267677486619259744220678187224569548825416660472106724069923","27239404402321857781160007912368903522811046578650814881412595686682922506777"],["28786254841710876709006303029893694248778193982392072242115013182144118737846","20288306196286016488716690375597641389448388445413502369731501221463291715274"],["11318931004390462851015630630029743948346348493805028106794937600941115491520","3940949205687946179381377340312508331810085272145549860209168609410594826502"],["12786621150609694014254898579812039291222944286347089866722580194852710795453","1612440191586988814334463179480556549735976960832175005685249921121463539609"],["15785848884041411458948446848470721302434727416293326777798796332497737701913","15990891028871105971758614001805423298943575635911026376576646216323756588770"],["1362301180763822003566717565945617149526903658568902728887593867656181553710","12137076699155194831707858080042572444915890575319354148573912273892544000766"],["25010950899031915954690753661296031986828754172104343395465053438668432158262","5772176584829124474414556840402289657091796557702106531389725520473191800674"],["26850902364375500475927627456830496193325756937834887105405387896436912197045","6313883734214005983856812056324695795139909075790360710944091401565830385216"],["27807367416430836543133774826073611668025653086843608562078592557170360914313","3702807214791365993369323896613525226093678236050402532627439978897503479270"],["4165382111443620504123995547113626844390760742854524065805777999421210789586","3216146192855257734347878911379987581386679777435896020188260396586091024566"],["19743017376972328229592063095592915958393039985700602999577674486928418543104","4459562671079033505733998795012539324703713763768637831645005438667409867086"],["14019163755329295618453942547470392911991806193232791181910180449837314193106","18648267911439190580895229378323076552489147015166169205220632443326039865151"],["14529895719003951923534496266880019759979531328851119828527757735190519253308","27454449905310432463049055913944427245962955881653407717243166846274301696986"],["14935463276996296380316005639132465060855903950585195331742856425718257595628","16507598889767723429420016587759246654889674019944063466743025699009198006245"],["1694156101637407754821872010034052934030890480831667952229104566723837195546","28110366203978212274761515281274564525209270824144973572230135272989278645520"],["27499138118142750335144533534696366574751991459403643443691932644675846666261","18329920235083363336610049717356722828272224179268171748351090267202313282939"],["7192352236376306087724614034641331808685443626525905755759229995285970178088","18347439136092218056902024016061251877531018436488979796563708058473706666892"],["16968875887898967113861980658532926531788565110544058523783402135986678766664","11128585047549525232223049811668958438894456611800802451808322225391232809060"],["25954213347210377472584250099690161419037372383089520253707443269460360947039","15074867309544513790947166916603792117891499245003975191674061803832633495853"],["15321935457289907203935704536269300756403216266693820773243366515155088577755","2438788017188361912390204396371615385816590463773648031891122455459007482220"],["15906526423607911767366425435071551003210317909503799651735941299846584843962","19198148965230772607500966926411569822854321953359411842427073267172401222106"],["28319243233577573140708355842512057792024367760554269849993202695831951755207","13492644049139194466794184968440405182451080761504995274043267743596468244074"],["16895864062532074854619155190439717324826511775781491593936089346996765071713","20621015881514606673479380228143106193680383224205159623450027017532108384867"],["21563844457698802957597672275747314803816721561058930886383843143409365792454","20443775720656313280363033647839843565624541176861219073120475353912478537337"],["26440291779883530401543048879733473301204170475831032185937369814175734656057","13561420732775914688172909031103456221389443483160295081825224924230876097290"],["8011145931515254957467997321143810205200944658452136357669150100613174036575","17789646926068126102295286110622512634395132126914442455927363566505588865302"],["10307504464989661248817070263955744027879489636202299546724764495409488733311","21102036444711357854680715448507825340333256757427474892974514699418368205559"],["16238499462454025166947688154294234577439837354986892514426326795548728035698","9332858048531313387072596641224822067004862518284119225309580516522531791913"],["11042544269203701815820985841725821020428679994249872735197108855197596708177","19952292400560577090953811996314633230058136691653898918465954351061342084754"],["22349588677773881182222192553170453226151380314288650504372877661692319083107","28060001058693508054813405611878995429450008459419260912642528623744319362835"],["26263897873434638154756112396365918376479493282302739077432537337558197687326","28368224104550276157309075515639291889462720669930681361265980044582726917676"],["12393454124051399989036591717409728592447395347652726870966179095955612807169","23245600236101592082583010432268235205753617389919726540954303557707422097419"],["24512163907567496519075704806345672615320418117930049903141106606857221639616","27407821878945433673051196894797837703303692844431417698425057676198901904"],["6466505673347225771515163101302081314863280719361915904825869290798551716343","3070482774325332321759667434743982622230845213011998532524109941267883610252"],["7854642670922157713837626722649177913472711662105332610677153360551965424715","27878869719043724469787135325912416974385447440382320480866565815222945378628"],["59248650222225110360929572010174703393512336481507049395996943985228020981","1921504987441299991928280755473357587894794165259952926364222413997691441467"],["2845050239438677316705457653327468660199270416708071766163829475253961489425","16585737846478662023794266633519392126830555122407671690499035174760592032481"],["10386669480802439811317382477356814481114533380074570124044159836209974368826","25154335256602007113929087564568958688705883131045437713788671049057094147830"],["20947084146348960810187570611334725356681617474914965384782057658430058752243","7587928702459847281897492497825103102401715951610085390563530152864958719855"],["20089167335453356036730390151697468309724418781841645775725044257423739472880","16955726550700821017561360657815004212282362996995636925600102193313117705281"],["18220193822743903556488798794294454777603598292937811946498275032245842887408","25247636633923784473244608753228529793692043708416078843543860105758554080406"],["20100284273619952128206074430688083932635031135715133169266384199767841690510","5989126641237378624971955821915786688201170676059889956075127664757417940976"],["134537203684778615431266044307679056241157166328886547100125382685487188634","6580933660295363219020332032739052926883221648143006305473332579256155344540"],["21149762044455860894713269870635471392758892713998846133555352248226531395267","22812176166535565475240113780406858148317694591832132359603463509365710699425"],["17623585329101462691141541149734519953323675638927104987205930624631526237253","27522037383178261448201106976950753526336812654625460124349354691872204450343"],["6510546360147511504246811676631771044700564945608416782101909354449205393216","21954512103613748383722919680958163451402456159218788365620400914902269868533"],["26762387751097500001021845189528167329883861859956847420995715402692304200527","11809754834417490022622497153941952117766741590082876737426950214754540901618"],["10575272471626226446944136377738752344912381985055201775499193358678128255460","2653408331032445133508858442750268379153188510268707053511427969027717296317"],["8594031220724215548027942965498522966185984329505423557827906701384251831713","7954755289216844478923564832184147572865558301111737850142541971383360961937"],["9112892450480366889659190052051321663208595754586996940839060674313099327602","9466218851537739650016458752436738722278281622276236156086337586118100301476"],["3041189911915897991893632574198447386711109199779741872667868447445813406464","25700390014198053649994095531463240053583600226161124426555041471341069469547"],["632169200559697440628161793139246001508742007926113723512878108491204471747","5457622724195431863603659304699833201957822295804886861063726995941483171622"],["250599642271338515180630250424069109318341837275865459125756323570394741680","6137136777776016409743934546040886335237192459508762994443519053699784762887"],["19282365993188940889972825794117250470617443178837687436868646550032855205667","1097819108714739834298843315846935130336028517724451047849797273165879429413"],["15790571990654517064314615709325282017298898963110094645942556527604286085858","15101640507200810598201670324824543290901432629998530276526121348657993637587"],["3932978651950321575542213477902985523963057195810793792080027055770557486158","16068444508532944870232994737620487952603907681072388427179108200678809645008"],["3559562160173753980327644142465178202477937108509666486098392709278079944573","1173992721902372848448481482843487191197560384704496539805249217302886492287"],["944369829018328159074962341752146696142379295855734262970602944627631075112","28145603846566131180956833418542538916678261647339081085322604202207537252541"],["14722155658878824797551298284985907519648699825487650096878138507516421221646","18005203724595018104418175645939786221927517743725413854957771412762456211740"],["22651530908394468017939787142717054460354084253869762493341069319065753858621","15201718207799579662497726948700034876491899506945706644584637303234527471101"],["15350816165321117534251541911584452090326926168707935553726972109510294798531","17278682238446610999385433479544282031840483418272608896804504982816709249796"],["7203142574824226071966972483323072225447898970520794083932694449772491639028","2717325126669945932447256391771296341337838853103665729026533366482555446723"],["12472526108768616616984979811699015840249215280732012143732037078019154332281","16459607760593946253469392077561152977952878388848790745597820643458605261228"],["14198911745278682995151302041369607500603944422628750376599606287901160227172","24946209828945611948514919214693518125744424552523853320023747125608887733019"],["9422978921776600558504980587540158748089051253729531454634839909222147713371","5714939218007287600970714318747592231613648200440061418888359311378503748132"],["14281577823184823984626024104839856731149523895319667119846928235984179635066","11744895191033256370739297973221890830235550113813485681543100881458712701208"],["2278061408697467169781077796058430575444916442939143510470623860667630553794","6627772635453772131816993052017971714168809269446225659247056935529444353609"],["750471254803321059461357901630175266962490284239704143105829732786196405300","15369026582725982010424730435299030192223558158617560194239699074722006282073"],["16756574396337637336811591910404138168457817302603002858652482745753854265121","21457960711625569385249685464100426222427712869058175705297318378029982832799"],["5007052506825348688300872725080763823690029559015708100408085982825070993689","9868490080742941767571787922675849315248446356522965791161674048120001742449"],["1839974299886559798743827741846913435309608407932314729305693867734511926879","26477267909920292219508642265608108938747816080851160548856774203284674304608"],["26249299923296786271511549964322618768971773226088660188702936851415778126328","19945257246940732396550952683057677819600520474534216584081279223229246852319"],["1454148010545944064057531826739739835980766133997478006578384718283510204265","11584559213276556909602765342253303696490811740390521771293277659395807066614"],["10289634790043858333645388947615962719754485272282165305078942439095313531565","3035192601140848755069333766764257696392242677684088024803247829142278210594"],["23796910136196279783574852983587860887393426556780438700823721556193260229613","4209581486641030697873334698627493877649150315280594287988693645947540084027"],["17008192820827294169205228809953677326903986632645047685833535428078914125273","14879016473860497359674437352681080067730438289782803091616031888853159993861"],["3943667329969750004610834036942061358699376732981863672964756204665227751730","6839850797196455948279511793462043458422504014094963642712527459393020756660"],["14599904155206802897819891557003726623851095884921252242886458169775078329162","20506946509858546368307527324068662766421593161284594561096467402981789711638"],["9474923939868422904821372529198191169829772606871237469885529720395418696719","10000635730450951194663101283215579221934441049199851466784217470668627079692"],["18682236139120340394010557760461744222241882979808674130304355372465916485726","18834192435874158075670915581164513521026881009296075156145333373597483238956"],["1603381955714707927677545653145988860136608738652266560571396763006235446491","4518846944543465710222770781931599865223352132619140615061431819480432903508"],["11991987394388373511912585306527092076656803833245062043620546089243127526684","11813021294811187243536492322988910827432106181338882606683672290489459581325"],["25416594056126224072252124723933796590299366782498776566237009427351411051952","18298686566743179108406845042268206725929773968132415290882627671916219834540"],["5150385113428704465044927847676461493348201295609516461639720739188702800005","18164653874757384666047512217985111004296533027690803881528962818874732033117"],["14862757753903898481446478282558968057198484534698262823779759028825150677299","7096759811008571660781168291127334733348884577371092147845924852564571862595"],["11356280845166160806524847755005948898813237389750004231566898837088359994255","27293341883899399236499908387534278464830148823260831218147962608177088453700"],["16984174412056800494991160308358747530231375400080858413010627097115770759673","16287414490288556173221168328819738785639347454321228785372728990279984254777"],["9487639851010179863245367981711713872680230979651690145879142464737504405927","28435070723312860941054911958352433066608785211130537212401752251195843628648"],["17939888691847699730564702887554562174249714581683085662575905974814007816095","21926853671990202165038285999569675701613079381848209856239337522113561873421"],["11881284537148506593576145856473859070142174026673868281744902738260527837633","8260749909351241447809376083955051012087488941439672795586167122976349799017"],["14356623815379004701659545908130150751663808785648724046618970894479256908140","7546401323185694972844659101565327302969052127847055462676945498004443418217"],["21685604913564510822004585830126491274780114579339537707136904704142650939823","22883515282226147071102222461277554559703764052986909575917639304707582962480"],["10267134807265855383305854984766412574174579779836382576652057941576332904998","420635135776169982511583598175890730127107298585999240012889263226134245805"],["11579306723369842299769877112130346551507300220962936662724508421226904909247","9127295092626814680131538270211586767749195590519473054933186591141306016227"],["23035911054590382942745382610290210335190509546129359053538576891452911800714","13510703262125791889194549526298841907396675573315952549870193479297372591721"],["26785640084180873825137990972534763172916121126283133268545667425875881444931","28486798130415963600964346604448824193524921452153276376242509984204200647162"],["23172302383283623550665666298512156052104741547220791013475249855105199022097","7641072363830391849713088689895273409195544705523461927043341000583578975089"],["24322287426868559668366196999885295828855572841005754128011633108086120445860","7454506477292387657161819822459843881864829942826549275424452791495894007173"],["28120507003413121120154559571831155765302297161881996280072973294026172253484","24945001399900219612202358170510139864838578662080508173526030207359191348820"],["20449719449833072910437365737427408726671263020353497798951477714448680627392","7883233758522939881276780004859999796286635541502410194557100128950456269747"],["20473467887226930046852923029392517382642671716952740194741847846215552616998","435295167014976658131561356562482204119031756754558728103625481978523299334"],["27041742984181458851975764517804591935938339302664265182824047661126989718166","6816943458527503874930201854033051077228039459892344723833506877664954482426"],["20148617772698399555742971119656277290345952725375845732435070644697050648583","25792596982480796303835430922379328004587753485479383078764735099550798200151"],["1167061546355040436200298428290123807402733314151137975853444628471043079294","988836422616231321586026714125576774997815510669724237838032559383977064385"],["11926732878456175498554294425686012991503295004944908691614725935271069368129","19454014480564950366336197496175118286197210348272369989287558028982064079333"],["20348550004404365252680465195703445343825208927330179998619921114346381507234","11519623033590656708640413803944054438436531512097048559621868017361289696857"],["10012957048311517425011794382751571499402041628097368282308861104220127832972","13725899859777908812750973367606907148360559992857050509041216370167561436643"],["19716199743924378464795064174864002648234464613626148275452126521967823934517","878047992201212678940478589123485204201516460467182811836862435606217198691"],["18598793496325283949007672471045408794004329170363237125539339756380168339975","14811105457867724767253118947674543660824430936394875590281542054301314562585"],["4342310674776675037985675767528675828135943939325801004603620245803701849913","23900651721576141820584983780363217368449888443476105401412964359493951015617"],["564489451693392442528135026659049665160331601689736610199092856334999839772","4113615181314656812235538130512269132567993436867772705339890068875942007103"],["1004464562021986970380763297883552364423992493896237290286933964590244680597","21317126390207571342914996835793082424792551341266855717225488247424697465412"],["22642948435483851198858466417433954492431821383576029352755620429688031665658","17361216306033242414941584022490658296659486074975469559329812737695452112322"],["13335504773167153357597022206112884025714704901380979598514782466168250823753","6021331411512121483984464629612885556728179903228809395440977695371622907535"],["14595510919248930302213609107948154973291905357390278298211430172742195725734","18371990154350198578460074918224807734787763181537284423160261158814534082275"],["19273694454715656118783118683997471066156818986057176487685199479060745904922","28047570831557430250359319350466866434648002430216894829871854936546406008042"],["1470247289128979424118633573478247686915037921521600035858208564596454629291","7559101768440681070406301332668155811857014080165964031302952418982199778973"],["4293542330407325418644073620111038828582913666194387953524893770848802629325","15985717313193177903726614775333202496311965435729695284242676036887500036650"],["20563703589880807209856905714959507935094141382806027412649412205282708283443","24943835123672889142471539920855760004838277466724274409996409735507030835229"],["2170823880597002939776733843833391817632985614019561423973963597817599349815","10844848651406574065846510450855847805636218432418737724417695196397756575115"],["137668774468520190068896175973369134758096537507715788846137588788302506385","16337166628861881526164047716035170189637916024314860761953958067545177424917"],["9157977162683457420041726435782749677699481546125956326022779631832195079076","9909846780645504397830479879910069294790474177294826477714083412556170426090"],["10731296604440933763711425720402982410738369169050261033099250439445111685959","15490929695381008513885405157977605646640892390225367615253322162330138905337"],["8602114740889858480908033385571421269654305930013436220792969450416318545271","9079237546870928485967143769108420235352502346245227309120779923789611607835"],["22903392205181662963627245695319913960275683226277130704215226767624870872141","22799337465880334148081867171864001780549173610784273263206287694092794187404"],["999614802737941453520190764202095513817372646390378198810873729240116709907","9668201887597652354268083130243416231680485672354754585993455635383871446288"],["26506006736455286979181717731180419631532643948214935537439409644998055876971","15518661457387643703016568162561624421236833824050677708475685620602425512282"],["22030770225915916250789147381791482939007498397700167813537971179894555223223","19089151378897201430128188460474038310145580978503893569366456315375596139998"],["26826932352302560608238404648045901978120147830215436763418172568044157477326","20312099151879266634928436613429557559808913543797621094274408485263564571780"],["7063224815650007045068228856554492718163941946516637856533739169991836582740","26664506034597363863759725154131860020059006229107706149472351913977000708490"],["3661622644517650373807368250185181236185399261625685345405619676540966275898","4953203349559562839775749025512723438025318174180766293967812806000964510750"],["24797038144964968259926329743084238709540973215232794864374533645761718620550","9716959459026087541669488209860281807312234710996760648465374025704692117970"],["3490685666840611262074872719850425802220099031102363564733174713408968090194","18503184730853200960534489425608572833943130712386740087894098894383777889878"],["7225112185684651893833766626062940487298953124662920858381163773394547092093","11779948036815312357386454162105414938164700185960352679728955056830579846997"],["7410481180642208765972366924961649257460982443558208733607601712262690181250","26779301851125090343084158978417416453154799957337789615768822081512464515038"],["15453555359414559064513561197971348304319101299789149327179423918585969177237","20732089952794901056038020497360037926591972302284533986368494408777945303673"],["23129012798108297613967550597174050856283740322357205302419385535416608134317","14866993004336581043261574919944162659956117271978625588401260298815071525319"],["28783671707595306801922247019680369648348843707959276692952202794694673223988","5017567137558246283086027540440296701946289342444425953491638775313282679230"],["7566264026088644354222700624713598336648017241539573580307501941591475420433","13970208509735673800188121100165049027745561891584136165423152614179987494729"],["18235569703484624812544855768049178260662088514148591009238416549788592540145","19346827590523622686979457562850300306740661252755654926015850267562045892505"],["15401447444764938927841187690819353493274892829528401039501782871418304183273","5613163661117358848533190710835985580257762580548373086368007137334881617723"],["25833878701126548303208546595556503115881315867938754136537265570758449752358","14384908503455772384965479726919041264637802417863304981611766219153717179659"],["3238544347491354165041041828917682972963212663050110628262416011977027007462","1064583229503271722969403115936480109014095698086595999488877579223340881267"],["5771801960242728675140099366026933775653163268635835283833109744305959010868","8555509186055906815755066838939523974318655458101834971144945413584618287126"],["16615705490832842969566349303410327001040096471031938275073062413530414045705","6491112977173374908962180186125997505941806911833603213127887761775452294194"],["21483638615710641474964824205552867022993869420189682537992144973940168682883","2172142627576477224220125478945530331494192100407709116888136572398341250225"],["17676174214148460078228360029163948074773402421383340138877911970329828583729","16710687120557969563919411991082659647239448409009125671957807653024972787942"],["8632139157319621818887681296511236412891504031959870190087208837044848759608","23719806935321526022927537702029876961624918746615842072217977506985974920218"],["15617050129228281092305451723860525178981802835935348808702939437301201002432","26988319965425015045307298725932727389859378666994825416831845103005252228332"],["15733727229719344962085552647558066598500474626528456647729222821851852402081","13279796483469123815036354876386475495703334139747054337172091905540286200792"],["4893384086460977602873088413651679456145186803975490959900325106096072578911","1786747119275485996645307124367861203452136214580937593947297969687544202796"],["25914102025399770189469194535700404917683548433615491134871744405312100502509","25873583435345443491003964107417360545627421015614068791578148614660121221754"],["23287099059733337736622799103392794145204979318812485180132613560299754959534","18226574361517000874220175845960598375877970456713433887014568294407832934272"],["19629324340978555453312644063414219622610654956377136284150130829355048693877","9181542095879677596646098727356872300863457053544069428524199384046033578374"],["14841345288237549965702676409888652538208619845246330577385731413965341744990","11007659874972941416656245135168935728091728700871333023229432224802482245632"],["12881651677997338139888357280146597711861119054345346788562384593550778718123","2569411588329929884694386368980596243851547988888500223979026004173482315113"],["10979501943480878983112832750361987347116187604589235912364809594492787773882","1147758492304539822680731079808378588862633646076941076199540652576384337864"],["28551491713177416003888073715270330388004148168699183372547528737580751195396","8898286478147652198707638312816922768852656503471020793610770488731506053551"],["14057471955547713193056470883075254378885596735096375558105383110505295842462","9632053794765082709905118833913794228805104899675591411249734317308512383579"],["23604712944068876784749796435700233915203332952315443280125451398901826443995","22043967238466826542963853587067200021852614886018007867080962491254817910422"],["8666250132331751872430813447653369753431298959486723596606219367109657236009","11911630064297319597865879771017508259194148708236876318941486659440642263931"],["15297060879507005165552748642103450245953880328108188395533482438159717904927","10010153327669874495829079082601523461125644504900693996018750604947494115998"],["18787924166917386577313425077400815537473559835329880659002389483928403903585","13114461444166303899314619516157124882455695132473756722934482929436810696108"],["10445278318795626143760893254908250291068461802453734704462922194618198522067","7438162813459790007060153932075859388052717637094208244092188418241197281564"],["21248524016228057499160471433068683997261907741400651528351080989290235226399","12758599896770129826025916752495901596371812806914403502695295652029176889962"],["24840417280961687287761798377578087563967993711351798481008147710923936804014","284650135529124277337028940838932310071634209910210773425919907466731644526"],["27715070773459303917967566628801328848639131759314970082642748379385018050778","14864574381472230918102772187105690479384202945432576057753477435209010378511"],["10528926888594250163176981946088271949715503437456340105599782682813207111398","891630972928397623852602591481133497217348256841982491780927529000454517792"],["17647538711088578974028375325125170266173949668264112470773604638186354206189","4439558614789429675313280664667530373397073083402905510716444482802757198485"],["1250381901446809242814503429815768148074395466096837497964898473995754839335","912761551670771979648941430568595767120045413389708368546727344865503779990"],["8368314825616888041663843672135399341044122340172536083380529077490522705682","27197175322995504778558677632785892538914785082517849714383613934631821555730"],["4752010476967106111904548043184434826634986339359207311661587216789688818049","27962874215866573016305420306393597665143445306668592006359118251932618923749"],["13258491931061530896975579598462011573042209784543714902287775185858744399672","26454398857992049082184844433511208439098332060838414314518148841808700932095"],["15245685565150201491698664747720455942993969071456091812334205442973952666716","4062528623971283960955049250335036662089834783502885548942705775689882662416"],["3172229524134738867347708121911215901672505099877977165455276738358960595602","27285924206414515925191385367336328122945477570142946620330427336083756328358"],["8525582299247449532662945123277830612806833016573477651800791236910642443009","12202113025031609841404069671931127171991741212174115716531802386530640584130"],["2653750434316474903795373445086949320742828390826534825351576637272722168116","10130934291351842714040754788906383155793732455581979372451387867223830087600"],["14593012367849093531814614506489463683359549552458170080926298350555870587473","19917588559798358215187036289119922402801293114182617547970998345048001107284"],["3072364413527708913883964060860816634257018185887648266228551435356756428536","1060317614005740650434516250744351174699843003693473336418433814515000727153"],["27873123079932849502551794053430578155428860612058894623749821555823721632441","17604222110341735746899974494099849486720057302643890307328412226766103755532"],["19013722102202606274133275319705513991713456385809325852480107730763215768964","14769674742162777223772050003504447516788820274252362622070212325105071287290"],["18391186330592533948137077971872715197451458153236900861868881478489704809469","8809659010405017047679150422834841033556099681335430158402628544949194415605"],["22453608471299206263014117468361485185200545459620411668495005895853221122501","3347649612696056851241028423602239044080541167499710690585629477638171209241"],["27513408328736333002035320481287189930259854570093871883484323048905941574406","2545715730025089806296329125106668242447429988895140294854436803507792100725"],["14885820785343414620301704375816157644380397821543678604972520602073399894999","28503500711876291767245347051424715705236180395046615182860156356658947520849"],["1447317854873374057873640856276283140074352019706912974215438859517556790870","26227334040882226830239572695023865029203678685402036693202290447163448536690"],["22835023686154475345589811994813775177465918112094768572838682867626068625346","2464061007193485534741532275703726542723191303566538535251280443221778754215"],["28205944758951298779117033879613364636844477278697684445446100148770543589449","3614201895682335325180181375464062561277702007484004970268954025864945591353"],["16240411287821666378925362611934230563748999463406216909695745414706733170842","19679473256324113361080278417210506560751570845785248007717126343710376969000"],["11694562410802431242121210841745834737219195510652666652242178231215090425921","12793147439331794885826853352770556133624740248686785429078507781509118833309"],["18107013893407875838145616146667998062715315097060385420016295990012693882544","25571746800393225041402917507760301849688084982058825049832303905929106925888"],["23555284815461576008977888479513444145775283573611686167335029762765533264380","16354800384497546043905484184902242658282367655799285162392461921511276204595"],["8662518958048986027605836532556883087274129824160017237565831415957769460715","3676708338383875390143020573165163206254015545709981384863569482663705951554"],["4893468719431868943583003268745838790098280308596960465739706106122915782490","8699442406143782796737542996928227977346058872853156070695692254091678283484"],["22111504838954799367711465336543480163278686535653642421400923200593682842815","9411895854912878771832722025003420128931415202806153915906088911725265490063"],["23332688025975580347857132764664731945624080652854433367728712004187268443866","5582045908509394036847179077387830473773601107540083625255127836511269438404"],["9995978300194787219710493498591512878033728503830896822388414052762135575097","7040357569792688041200336370252775804974593579362941108270574020441199367866"],["24302549153882674927791706340734037354209799720856954585882816883968341665908","28671910984206604648470922109100446115866786458494450557865460136020090720989"],["9697270375563734952417770792442906536486322031109999949797828357592971603908","4711407692204201337737175803004783396949597822979683650896395814336165979254"],["13916145563541245412904613264631981420532684544864032857298355997005097238647","20385520698256115846500480482472561648016375731253812005611961436383191655465"],["6859515127001808120157287588604811896026613814854951783156865709274323897023","15147274402873857950922931899927201796229740797334785614558097104496916713449"],["22858727690216164841137409483964143196461931931844418968079486939215114940551","18751852016371400124193550962277276242467693398433488371135328469383046039692"],["23113121021004642051342387505661180195800035502092448227906574863899296538443","23085616784137985564349841004886114966053111411216097896233617265680462845571"],["19269280590323729019910287055616603240513264488909615709148765566604530618041","12048456521963007080430803841887784992106903969457243504358018203139456670589"],["9456800964893975125975049079804757061173635984764350791535531848039487842831","3297948221702531239288438438982716594509077632307179363740268975512992359760"],["17671873466327446388011571754552588469558045699234722067224126448486087668369","3618436680159849113548860422035342387819506900569603934549996948416295858453"],["2578662542858460072969261534854611367798224604413013762380561270378536217606","15095586425543978874553882798339437096169195079800707929742086138386230698705"],["1909879187282389625509664974396020497664659008048715958422764746599234641681","24234641040847543993582492235423628873182241340419065303520395325924195161177"],["9038435989113096984033006068997528350065893793305796875848316486159956450565","17881643656683453563745342725078697252122124558628945401151502186904141426600"],["25817284378411140843735793830831680494925158695501241541562328242382640546265","6687459070256672444936777474096992301640673330254709522028524562439485877177"],["19063886525136073121551424637421516986787258505803324605167047069181548547678","18894506240393844654536423048138130597658811708904541029093309005449085884360"],["27603313319237636124874481757571741334185100413629318315048216164116291770327","8220708612862100390067769265021705080314364230079128850124979518642533199811"],["27878300079600827464039073403867358920151955024273413841137809168986271490234","13445882354076951350194993408002081648340630921398689418494026900065621984509"],["8862577515806465811726744319918812109557836626637263624857670719104228021910","17803496019202104684881481759975176185979874231358979271079804149136942993925"],["1189834994160335971634981766397514658677807739645507439409350351792877115674","62480516306691871845014618561764859992947027638349712100914440406220376696"],["23315832092425353212147288461572785421378139893476608021181280844117815152318","18482817596992284297703417336133426915569839780466116398482149517973006038119"],["1268979158951088328447825338139636595197356715606859017451950137769773256926","10177755752676429138851676796433101906514954740597469605192605933825785817849"],["4062934489900088530663020731950098717094968266800494241680649405097079384017","6150766606370956222334516074666634567210693302820930650911831232906087600128"],["10289106270320548747774637209876536769119002310692108859565195741035352365814","3654609320034779226385622577974363951415570540781020109262054882759394778297"],["6904562607104799432589505848085339050188242999039878701561535644882083921793","15933284911238164786021881063156710755400474662045361335822500969480130733980"],["25380265307825570567864651013749422281905269155673429270146013147133064434827","23992918903697796721702345302236505765074158000389625474859524454997562712258"],["27671335380973777489658794523957628809779115560442122709569351640771907730522","12475390037935288424296302759885960724030703201433110817212209964996407603797"],["6639007993041220758730986214255336582129339885882245570458054158616051048401","1942482052405160062056262826138280597054915985804409148163673717186295394320"],["22786390898149525040292185495355779444759801697407600675153515184605253373811","17038389506135478649678363050031533755107032403868578030557581003658837219531"],["13457076026925680647637568878059782541000016142915861944008171157862496835472","16206110920140511438508364365876370460906003226840695717887514372685880638385"],["23441934468791176017486923742364978600892338743295895389666746995537246771501","12898741923562478799294758008811832747121238646099512688713257343418893147410"],["9296691619508789650775174575289083040961973575587082269011662974513795867974","6241251449792040226485431481250758545450642822467754824212271040738432233961"],["7396495879729936502864721967418556105414867350796821008881278531875103063413","4497279996374957828979974703609786697065658868146219410419264929775287433367"],["597599295350802551787621135320319507165991822876684485366505977911348636055","25204573968927735629318589457340567708621646229251314197850388560069225953507"],["2984736896034373282574206535610055090227586635430933371469999606059528466696","15846537196800970869453633974929828944039891960373256874544998355594852514400"],["17662296445871343078837785818537286012192742351938240453522014889198026611546","21409611961099808884412436160064415729985829730916387654954743383361132819490"],["11245111602525846765805893305925910725818765495079014541748823960742358779600","8992791805892030710757233295764150138469589826840799793118628531266406107336"],["23438728794118211324209840906112198252593842131033392543724750420363710405468","1829379390888950631578350869437262135974840217402468365447200584408667480519"],["12659468298654169878536405296709593217355355519516421203447413121886460975372","5505806270717234117273942510705300309620527852729727595527304657380368079059"],["18860067022429294037416242848156272518586760177165342401275629625223328261751","21455107700708021005971930360023987397976524649925073441780635008161326099039"],["23748589237385510077412242704305612942065332011816677663582932112098112186577","360758826827672307187824049321282242111311452527379785740250909738058697252"],["15201782479085567115426555983185147945991916321991266854484062725283230967337","5252372823376463801379885209349510121261078787754259062383352107388593817482"],["13424096009112004226959163192706579141373625206172128701843819845433027460903","7714193199166581571251957867673422995964278270000366977251196339384955081889"],["26770594884333734303767208227672142535559543695531515326848320162328672798758","12801216780922802649854215048488090986729335802471771906080353732518245255863"],["1170436034621462325332001261925303537654566367561549056065944570732811212299","27927180975529332765413183474404277739254752293614476329557151243689451595457"],["9009345258832022238700391112850040824111645591951395529761811016823481423649","18399115689213597828251918958762002717247197657967590057300582500837592947852"],["12989849375278858363974367246953545527225420773421128980947215039675601345404","4215563790015908298707206864241532662023996867389616245283072669520293675963"],["21161865508396221892124032717616574419982174359875551899960607100819461077333","905809998384079996347106109219964569544734357536659037183743685581606867163"],["2766284360352483799295294216610590893037346776209026467194820221540945895874","27339751417042428873306597803960813721455314169640879666758815713973165163305"],["13019656803392385403357532550637971868539629191487169953572832896751467100328","2485256207839994063557359935159438501654107584906474788076688533570576527821"],["5101507763095757012638944190515762352588314015328439513285853341097203609104","2949411371037182158417154593933309693982755485026455756801684424793082573016"],["6684587844582146025222584875917220299185269568122178119558858975003807568973","1108195035524402606399697405421425711323503871846691716451041681517742989828"],["16564250720884388189832754708970729886973157668911343333778485951176679886686","3419820071885550872932423509060045656772468653122706156706086220558968455822"],["25723410220128275953655877926236804209007399160805836040459368422129623200798","15183542574475578900419842725087869846964788996154323601259399031608516471297"],["3977392123611796969328509455874406836756222395250586309856492036051584360986","6644896399087244077358561541289384584314755544570029642145788883870831870459"],["10356591637665129164885584000066915522999318918386650763377924269373084379735","4311368197246218060002427064834025551968326223897687540099139347633055317692"],["11326773746079378911721683817760767050575690772567405404944386573055043406463","16753808852687183877047096413062227103853618899376156021555027133605969721843"],["16895439769579620984697677910366089250801541411630291365254686194112922811626","10979318311702237016663674961835399201915830791034370045335856035092307748743"],["3380691036705050672101943489550982202054044729464407314690945818877945802092","2167975563874024744082249139857815662983095815477630554346976727471975111833"],["27674130486326297374208294318439535674120320603288158710978120222651676442545","26674927493736314783884436813673459577255086124154210328663802028813100243681"],["14120809227748017373582458080506200778674325808713270290296701989373056730592","128259891144293039258298697629414460504426924014532217888482965561989183481"],["9314001794530530709107125132977198893858532701058644992153540369236014021577","15036306218478379783447791215681082589551878927294003838248892322500084757335"],["12406196120946990171353644910726119074634337805640033914813042809146921767839","4169330470776315583342943122849391286444595649759263305133967001869731860294"],["4298323902126045224575894222578266035878279495303862874090396440836331588918","4839423191811724662159687627313450334116630840097128701711655843072764775284"],["11650062691635037516121046325347983732638126733547337673494132733926212640032","10105701564334762439321259425034509064929717148509001492211475359075300962349"],["13767261186899847033902932054053334183151158068938318386952022994347535004832","8144989825719191860891185192579733892307189534769878801346526642611421951057"],["2310390896285230568529210353667648736262252091790512443382242105512694542116","25920775718089533209673168683080920664857160850861955468612071294394379543089"],["2927299112355429847331759430791624508847814669034178530222601740999856684107","26603087926391575535121705318316204063586478321714807292699927702626801625672"],["7190525689859989086284569382580143682952821579170397830865027129177371491393","3724440322992311797718370071955008645738766018304299109134271758411851842581"],["27595853095480951673508304400923267848432093697623261345252573537169007357226","177178121357801588908982908400251349563792633272643441410737777516013683018"],["7061735202920267242554420603363215015225957044829275079950826068736196690395","27869292436655496350512672109999534066776381655756110631573417247708366214832"],["12259246660476083474862142390158521384112488211033608902765870689260986314067","17402614493295139689592168342298895694927280101238362300044147483410102551418"],["17531218362882622084778365051229656765211086853663979933334281889068876662599","11496935454836433421729760659873330649351231843942131416864745646245942201912"],["22943946062271160877590449155256892874558644682100467950474941310742599175267","2267552036110600167398024430494706138839469339401603617709964653558001411231"],["18465941506263982029171629937133688662448574405210929333675277586749172784094","21678804709630696605031161998856258648550631929313078885756925632400955058529"],["3846608148432855157040099288851821999361195792335600150078490358191193564656","26441868225527616491098052502150759411434878930577831217572431400331702522508"],["17082885218915297294574258765198342291787728541839307180117816849085857356379","11343015828397024436903012890245802286268314952403669126240813145053675781611"],["11005407211299923605563758951886029737499129485353846965001295298966638849363","8289687252073166416758305282284127264423666007360078462368296302933260655400"],["4311084848950151321692097011435549826300981530461331957837843250449385988357","25590730817956292793958594222571950680661248557759105154998950755547602311953"],["25966554782296637397072757023514156722106236190999116475596935243836446343928","14202646912057812510111287558824450939449011477739142117174739751288786218121"],["11257505213443059356151642145912958904588558349724846906134982846328775378878","7046332923172088950973242811864414414984485213644102330747447781205179630529"],["19369103804238706839055547466374552936972832392523260959830312037891988837610","18582334383928106314220602784460143935181349963225668377596861538134012365068"],["13477351846087648287759270939621598439653733816533757721815004448504779011599","28835258440783058876262337448253610190291474675149586096002419261935233463919"],["4146921804711679939743886854429222727725917332348827990653299872138421328793","2509002473920292770116366930118925899853739613913493115156281844105329407417"],["13448887823734011326392807021686970827579362604697704714719772700999718652698","3087618977019492571291094717007267769072518059428751254295282901848578116705"],["2837956473257218837549588823000429510324751363313296182229676610571690672464","17671537670574700906728361497148268894160050064911465321698189611547812303458"],["6462449579313958744900627020143237993421283726439310430186475136113699937336","2633868545640118837408611360275164543968904795127773440227814169043498270715"],["6536576733939201027714317032977631767915313102959778274788314598861081043003","11845012316731435331672857746394683637970729361018691813815918400908796644126"],["4759753988914580276286426617077221348173667692719620652085411338353181666283","7263839737388353904093844788756285262841514630268982419180358159102208620130"],["20615582841066504082894907881009766021305385758733048113946008180632641514044","13540932938624456165915848619173758630214497651911025827128870484513468097102"],["19052750411652113489684885585272443626409762168093555192102887355057648260267","7918507684043192670144368653769771975950179771545069464374716071386908357491"],["4422345156337046261507205639659550462921101236737515433744913867547442601375","17633551951795456628653016915789240236799600994655637593016541537941076900981"],["22703849864831927022989292625567104983794188073215483662399616021547614081208","10957269203222019309492053422694945843019139109085891442478982486097594979464"],["6555864533995809489117351123975936799818303850103556202172978738041814682670","15610259270122451032116983209912225284842408875870269338081392746203919295699"],["27356961188443085990124889689043577805912177374955417255682739828016354887102","4621200191385794921076065301792995367188329069062437045887321580535452240822"],["5676307737919982807114292368570318693238438723748806737690755608617260676074","6110624257690613520945819193998245150533657574267183125879254940335622622542"],["10525224241834372171676453211525816091909863528878456867643717337103958026896","9824356308860783325296337925377767810709806108399274749346442394407691539143"],["7959378468472382829616720371433975203883412728506300142704094660286711615692","7753152110932836296129117463150826689610850462868146187051712890482952907860"],["13966364053771420007403222246551362021834643763823548138349451691503160854415","27444709774620441280348658257541288664617145953581150084304856998067698298173"],["8652004334865141711334913140417566748789375534098736692798862562183241816282","285735311738968482785572711550416335793319009733928557731395739592293476393"],["25232427803696202959533446808237593283651193868806840866158645809089410286090","548294606198385433786577474792938850870173641814811527051412428546940361536"],["5494372246385844206731073345009521823717052653213099893273412357337731259496","5108131786699619901034539132461938483583659410159387560924904699872183640413"],["14164367255321468043307069141707056230441742525076379738309590096750197002890","7660918611688182938717753733425822182454297299946253293649971276241798696264"],["18788911138830468551120745721298765146418365968227717025526635646014609517348","9398708969959370666170325679167950048774029692302508993994898280713100885108"],["21095123580478629916163976430115162737348153096485433339526476727474000376845","12392165749035410379788093274028780151809583330860884403894230083123164645512"],["16622730744645265348029289315816729771378501915024899403461493595900697650968","12214083322128413847055788738286420837915656105991341684448247838516060373135"],["24955548010420751383890692324445778730974358678851379915577670874108557460099","8742541760257155734391274052817809525638797578727317435547380179785562870430"],["21872605173638121565743490419378892832318955613422248945401131930738686996547","17928895276056536042127143148042538921388623209527745244430165675490230632167"],["6407896850821277142738783866334931874443429378385603068875713276126397838812","26682637424038324388448505949234600854559586284775251459285577535423462260170"],["24330587647823853294127234608702345497294390521042458092993537337066482886245","9391892611328710557480582604537926022487784619717780955713863768782915543276"],["17904744553017438544341372224902989255444960414033192838901583637704404873832","2222439659172301431670755520759415651728480871380323281144549976517559887799"],["2312724260955745253928235159103507403693226133210469852680183572071691598037","11835963197378597785193328630557134916354130203834132276085387146102162209756"],["9029325707061712972540175643130571834203016006955541852827357891954469004182","6154170559085909069669130017424770040226224351200117273089940788664742681763"],["2928301470015509273205576739274318398103433050943836505655112916813723372022","20669449545900201178480579400549053492865159375645963345745362415218092924406"],["1939723056081510097389933437396694329534298748229979975615287175072120775091","24407305723512980115193940711268160812491061196672296424208148397564728044947"],["4455400768760522269167656037457607394547744977874332236576563687346750103377","1256070246241315378388908223116906515931593115875274558042303583296700398872"],["21828021556251566138711111462274119971128655873146746779268126781291079245097","27533743057304710816534568133376508368728199461529866026230259714250189340318"],["10949443514001681337793859104283944442536963559766108644556303579467837493217","5745414707884609423782332496054099158037218042216848488059555540112443329316"],["21996905431972891179266198720225186087930989345758957517178180543352378641885","11888707254166389971566621923429710580840907937856287220695371342888992788849"],["14497921495796523152247811152510519528223423555940145242877517304696860860671","13359301240171784705864632670478605648323199543320276374802112582198776109851"],["3852751329184456159806700138653175223301623501172166607760041714087415747026","15252367347570693836049412726238210464560014438333680711708459502950876685300"],["21265088812582989031020695777334339674354205817274677210908649299194217205942","19113715629854676989466622076797707089106100990051627425625531688344324962734"],["22353124502594141342072342394391558703119386322942119071705399510755503114954","18202118577337138977792270313012807309946596479512499981814822193726817947774"],["8470693608077101766053965982170319759714721333856197335213871357642978606997","9705344958176452115569114283161376207746871740979241626630772862059003415485"],["14505241992740231130473255009659769372811180438665387054044794558046888591936","18451124206624785432707944393544273403188984095076384870938874470056317815029"],["13260181135478534469540668002585712571766731130842462600855031404398412809806","2064184278962184896162005849605852057596661697660692457882347927310854030463"],["26066933346448811504078443812582383634712872260604444312214183775488608047914","11144454954947414701292870928209745951480741818988316054218006833967235449134"],["27818683091470127833477934490241780879404586030763819450892986240809546434513","9599118436811575984740724125935076444883379211129240591855831615335609404403"],["22553523572076314637105520373270106131467732942240277138542842843862052414106","18831425241240976043767623192895681839712778388461989072908940260002957649617"],["2588101386072584309669556590674453222812981450809416213997515675885383708153","4476191071126852678893702040155074798036551144779748495564274944685000318618"],["27550652340300345923605747130765723045720060684360396893588145586849074936911","1420155659190316930397946113511791134918325980734782398869051515277660559979"],["7138790281488618924843425865240265749761181750113368746825892396927490899312","12215750271139415946233151126864340724391176305815361883676545643349735213906"],["5211657342191537069421835398044550256742406357979474220017992456377071937770","26607013144008861034826104436590665796894570036220992399703749641412744645955"],["26373160497917751643163801548440163283888139327552404194827243876280317195616","26618475120795562669483853151178916174840517634679018383702778024531455716264"],["3188999874163822033339967481277766365057042938880986736321562197814710525022","9535338624937133119715119407111045456544189524504276835515465453554388005536"],["23428211804477386663297467015868419843693586401056325331460149847101762219285","373975980745149744464879007356443004972107278824243698490806350686925184474"],["13114021971652144867814125058644923232025816916503054892960683080279404947593","18516801226598246619616843945239488941479640745060903808974698515950478938798"],["21738762383654934872150992324014346389286697131936327621460821540501282572995","28075313897665555615422159286045933391027353372326631979877618202493238125002"],["26809552924713972697576537684248196948041025648001264557935083786289107330669","17426950000804939351751758940293632282181742888867323353094239859914486917355"],["13912390792634553138432800885344449354504892448858167698705256281146030634754","14332724452786177828540856297997237201028510651957400090050942534185715382613"],["26572702498801085580910049059060164756628734901199536068331733239829541393111","1473413185025690645180260730248575408976555366326014156632168021749190963946"],["4985984289131797965616290593507806470022730097328740149864130579192409755891","9654141172420214974544469322801077038213075335301213550355089770207483979856"],["24714453160654802817004640110858381860228249162167912901445622359142766665969","27585069811097209421799860483798989256524704301230761642567016598297574884358"],["7947932642947806680046158523775496202472362675857825869442759480328190877817","1770609635620422764893711180974619908811260321758655539005609960335931374149"],["7434608790253185438853644706886737223860707745184460104492744565612855494157","25904804624922438108785770300885131966595991108194061621837821931631327167439"],["28395866757381972626331490350404240105829605591209306814607139068004411902672","729711536672761633287987980375805823964426263567787892452587829649177681415"],["10378979175276158200370206823226948886238288110167332101887856856737149595985","25421995165198904887520782559559930434900183950746603764111527716550694628637"],["28426013277589562904947531102137997642111329321840420999002456285342401687905","6467100957984891197597814307897424282736980375437223458069279669218809118742"],["328185388151760556391457319456945321169933863005877703543222259280911916632","842747944646614854796524573837147788470365733928294614285183724289996689401"],["28141137062129101629151031366078618417425627572738482241292562190953341884039","4827279192806788983639496366363629540049515537269746774160379329985741740442"],["7380202527885505288977939017418554562785547293534691351566575203765046998346","24731263611082340066803289807064039569223185664944135002727937253320353313836"],["22237803881919763434206812339650141313835403647584790332144634965372321701596","23767857275915120944822116544579121530802677107290008473211088816711919031903"],["1757218721690630968955329657436723535119536028525262619680881785234355790376","26627796066869219429265011375573229386997003670044245083045308304827461412107"],["6487766495117783598205270764365991170079444398240769926769958260262756618537","15261177270447448953218051146458939932666418419548806832035884165052567157254"],["3557054858021367797660707772618620667142628673694490678850148213088283290901","28009312261840993727352646813790463467044296731621336396597886853688575511726"],["1312207753568780616420629608751698385066982105206219074535258821036699029216","21872201841340179077186140753428247223300809522631046445561425232884731789266"],["11083344259071926540723567791879104236161532712678678428234043526196341308644","17195647546188359498932003398725624995363414776125118559674549699772480376515"],["14388976161578466221446675938503261942506037140078782994632349534238230260105","15235784751557271194735191178158623318853566190196340500165401565574305658936"],["22543123114513403585908761743985879975247177160653991172732205541213072753780","28729961206045742609994565174506101699577742319443285147729032296296130259644"],["435897258375070856902468943202069179448970061246014327631797455133087593924","28464128633612240043050421985100120264825180156660527067755034722572989193523"],["25172294867123904014789672735094271971030785957461902245163141728582081559347","17013723536917250799742451386387733262314543717809071100205157126604278849904"],["23069944068948397250885163089257838487767972965226379512426309243185331392344","28911625963255855958850948267469550513861132955704926374564041775451606624833"],["4540683459073611489387413964978543254789371556430004628929201906815454221893","24096511975521863116791477197071882457939060705678676084306525943784451736637"],["6980280835322688413724180696519716747203837374793521493332355933277039277274","11026952021098189331257066767663158486675797790954321838452110602231097266202"],["9054240382555083424019931855591098675209212457325228466172755539343000646442","6427921745533122909862115606426812728824377126154012490423489478013706042732"],["3162601911111696687460760377847488592031779437955954717595098483459504524338","5611117275234989676532003373375381205398823968112901393645007921945540319481"],["11091955834262218980968752481388083057655400271715928282365192897149540720","27811819188718570858315497759396652857473098547351059714928692378533532509363"],["3037263472100679966434833724085948537876949920664662950840976339945380258282","21966243250584921368140499077971104100478987707580741546790099001602386802765"],["23336275060777941824965814106622417760769178729941405153355250680749298322123","26676292280080178570717749054173963121774925555845378514809249563960941610638"],["24565557596956611474935649534047987272960551819218749780868462182487511925974","22654660605172122498291614923492357865740332969110289977368719207868678459019"],["13268008298627912520294045445634808682922225933162764273219683304865172334452","760563106162745958468361268404961823641468597093261007852821290874220228408"],["21446102921162362629187939276807456276711394508593811456348557991437577418530","13838777354286361672740957235671041093356302661480910402145235919113062418717"],["14280093639328639659147026139676835451787133597698207938396070146386141806934","20764202538525156252873177850057600954493087011411225112955909416705764025798"],["9181049137352643646053546500487609858511684939731890296847246775674389451460","9083603411299121251999236437910032193041058190201600160015421601740070397635"],["5922557146629568421667436144658409891763030170973460720993119378602998530508","86149547955649861914389599910002112297513614741832302334602586109792051586"],["2677201459459328502204299805460565787019108452258629076517493407994482933895","28525541835689127970724515604259022861545782783557678027570782707969309097922"],["1330810355444268375859695649517659776386463542584744367601304272325277598465","23251444658678305293700558073864061696092332147705773290204052946509217307668"],["9208035628570652233592261431532172958515770837181400891771565957914601632517","19683621678224122590934146260566633839584015226979337257472305023513875798695"],["22596783008307897487465402700422366194223673064456250350434059808396894014602","28505827132678616153337133684123123315197418714175954136126638838956587231061"],["16241738809746033256017462394351109733378022187894085720283894561941655102298","3432393070782403468428942185438376203078092680470363510148991407897089906595"],["7954337431130740453827959303822968526135259359764908955705794753762805490568","7631629753076656164547869847516466555092364098933203637221478698886003955710"],["25568954398961536835068387928175853663108948198176084199864019404024322041559","10489954894808557896764874784696885556003492683681427662983435506819067686956"],["8116390007267021747708616342398654768586489396103232816658068286971129527921","20751516110410876284526299313014059313462036591092071855422485026887735039526"],["13984119708850406805540132282349770192871911517319804685952595304958782775693","28784628857073585275686645637889732518009622358075450036665893653973159064425"],["5200350930082454978254605940352093033620667488475316386938755072276292632864","14050753996007681465386662949335923763420450722323391442635728609027135159434"],["19554534671170987796130084412103143540256991955350078776150988486650102673975","26620327664390738300221969075742024530758354514505104010108549521777449427296"],["27771907038974261557535562065014681659612980183649179451315179110082208900606","10363396927468129031608072178134037541082566165788355191100682561453126127200"],["24606536099699079713192518557423230324078053716824286140217523084400722508259","10135384910767131577369865246330545641236395044256369553539981613326840308066"],["10893394542965975159748624282878337695241618689145584060445922936332498216519","6350449972903212006715602235336771764282226113988972412544985982560800206600"],["16347520124970384305101756437401415925089037490495015127639592554333104448239","11805090346562538509034462768761469867136698920312386149544839178999833719388"],["27765184616923358775717113999895142364172405415204165702603542364776953213001","9707969976314142251730757730847555332242253193377343904204981683210687792302"],["23462584141783683508482860023149757204419192756023512148256785977760136393576","5253446512158359564731974190037364843966444578120305079806631705001643077517"],["1128479039243086304698432864731096759921527544839003467247830430342037269822","13411724334261751617071814199839277283605117002029466095496357516826478599586"],["6249347781309473669827320309848699985860744385104067453113497605938379738963","4891796704480485114981040628930087859102068628988659215611963425883112476785"],["28933080877826627516398840469756339746881889879514479788920803474507226987153","25764288311931630429335991506385120824552149018503139460659208806437862702103"],["24772421821867392208392437411234829321136733353501542502846192687875594500558","25856268343147207015605755130517735079220572824357156218850644048181590267349"],["5926138263394729640995354124772510600556065091393139751751424232319478946462","3403887118596611664799318495025268624419112418456534710563352454808516939437"],["26142087096729407550094550209570188898285275406316937287039157479167829468027","9045329186818732350184028555124773637024349250794909028082510338761219392674"],["3102935668779098537351379656956686514667744267993651222747002361421898028592","19695190570425755251296268823567303617235211789834821723007308497055214328144"],["17614117748037198072039458540920648451115156957413073235830890964196680130203","9136970277535255098745147038699140205386701700424797729779088532471576998179"],["19407162856895855009509486230018733211913211387094995508484061806280462806022","6649200795915193353127988948106916562750691693099159108957445806611780372072"],["2030283577139362422290882035598157074648499891636172374006658029214170187033","74326346637492219139889120304309656188912895335252778378015946638930585203"],["14515121308887854465977032976463334617472762137867826113106487012538766962008","27819055046746310303067940167096653095159278144059974763779188277816696771002"],["14529130878918220600091007282297891649247999670859873553857476483262318391089","14317828255483331523424935267653775036297917869955742174953313707210407605675"],["26804584978247440521061279765151775977444175538041090333573474092655229492451","17391152888930407290755819045656322306911464395883564116155205281700842840472"],["4840845214410378969164082765405288709649555753132603768962994007449228162981","20119744016021722572980178465581288182979997763804172638334044404181306139744"],["1437231176379642975291210709565644530588074196035542395557582866817137085581","19558047003738567073681229477176618752656880777099758073871618792466588540779"],["18922014354733527060128379650009249021443045100457208760535388038445302177289","9373950995309753841167049456234875098120459234308182735136287100659599443079"],["9376209956618343479262138784857909114057031642136091204470993004307878933099","8734780093628807039281469903950425663760195393377841020478586995127424935632"],["20165647998788361992410531066344064942379755978702783119969796120623195348157","28371679046643703165627951215426847590078345754261436775701178910250138445276"],["5271617022489986308435533150053122476876976929853025519826792203679883265868","1853148767170035784647484796320349814301776636851722625707600382142561218554"],["19891101402441724932474722605668477810341679643329219326539600200460715708230","21357745277454617007361707797927780678065716889295283579117672357742902513619"],["2537586483400333543527400405813907153006887102828579214468546837661185998114","21213676018223190299953819790320725681037311609564801950306566454062113526342"],["24120415316417515250574036725343705877235859225763185577993295379997255359629","13098007837650365883574858694306903205318065096350651606014152310630444292033"],["20345112789627428365007977637330630605293825972350255611347442387872033522775","26435375109056872861089027728356363319728479332255236465105745505971465254554"],["7694393631579953134190412712047452799197567888487530740685244309093925244578","25531830498526977276049515163361261866675520629603533303272752804156001972620"],["1524770240243952815148656466762578815126689284150130649195804196479418829797","28604017040658055384938631424312602205989129348070115769092299667625760255232"],["12226027163933341939111378078076057389401805619376119217993711266848441552981","19168854437069287123532432006761210657187862316169525062661976410799392143533"],["10385847658077235953370843794888757718655256028314179782125884739937540233008","16321060135886460084615164800718379873291717077262523437650451974467362703324"],["1377316478474185043088845940540363860786009475806047421578807776819857315969","6275033222369303329985872698459066120674654296860022833211301701155121448449"],["11740280440761654536389431558548577362129525861300718229745888929676711100086","15330250457704551585683179947293251549604799211834784908963078930037385640523"],["5046410358683884886390232538405384621641146124015741006614719133095112211713","21522354797734476554371871872576440767137638283509395749207844288354721595570"],["4785322187076002144540766843451209614473672821084884896291431386711753398844","4306038282048422734277628743969341158008110017424898391981106436558096025328"],["2694963220559154236259607572196179324278552463950180544119487133339380357665","1517110069952176031716221165088060017089239752079555085853954648599209728454"],["14054184273407477836125947796586030700724875812033445519827657366888271585319","13878531595380423062864825418172128193273916315269005329237422127471377349912"],["22294027943855571728518920839642493904555594675366572190887663819303495403387","6015462464015905252927229135440213911167202025902434741810022424021596315935"],["24579057047880999480273519036621068329030231945258846495333595649783921779128","20290154973470719324484628047978689809885877354758465596705812729715098304024"],["25093248344936881813205975402759951617906148103061181052658819555687274321551","2374765786944487265488814548301913937422068228314501620630364035111845348656"],["3011037546540705014582870005787832634898831047495080272833519045787314402101","4056514333257926576853291254389650094307059485237781357513662832396200945974"],["18182056674676367297498830245891714017654194273358787930900923840855539556818","14762456147003574821052176062376397873052965456908630998146693944553749728607"],["1673671431624799250622196926637739560638277543272186362214592255703532944928","19974168508763769334727726559568190419892720304670840270263897969941523673672"],["8757041660592248652594227762005222544605770835145294841593479992876877649544","16955411742063542530534694931468332768491277467753115046664775081973683717109"],["12733435274416029723599451045809699170824322686847859067080976472240712414968","11747513675992432493405049915741435934105290807461806362823235080559069417828"],["368592337280925200507372400231769095104133215652600065971718850368138675046","20728004148508531447088819885756164262371095792214673642806827149339471485687"],["26089367134805668525980525800183566421457894618401249624835341027420191205585","8914668888674368818652369653675926019933872317282244007567626969744221391961"],["23092390173471121167747152839919625329129216547252705266034658308335226643147","22502692858632673559586616835409706781515851133753274891356966733348748551517"],["27205404608208991255317775832663905565781817166294728316654034018425160258690","24481185769655715443282329128645137149986421616498331788173210762130043870170"],["23872170932494136929803366764799825184374120724342596835346835189151309507946","27844041411242512064535056380813952219692557282447457114585820919461210278928"],["2836850094129324358761661107010539032130974321580664725205795993220604706152","24410715449207238229883795157780576524224107950699877670445513965650471711721"],["14636219459196519272448019887651317123778168513940065639838998737176284844663","12843627279434629822496465837142692774325583260300788162761805011053674502659"],["18449385505375369403433242949379081206566592388330699534826170661186051442118","14664407350558286446875834598592848519222826905812954665011717593737850012473"],["23247309645404442920161142737090597367472884637041154569248011794090033671662","21930286877063034462287014512715913497697120972747589147064048214505931075229"],["3462281586849697029372040614190497712800739614185757494911108973912536082689","8753434400241332258949280990903136842502221460764837702790959312055655605889"],["28162430235386689070905569599078568904481190269379627690632186979392950512029","7629470485032171728725915535399133932375928197297368518068758395167086035699"],["1451450024291752518925368385929143243521389926683492191077209389216029857677","4397991186485388625981077267566591407842155607395830031205485803231719490974"],["21643514507005350921218321033237325916506347437657409163485474644309209927503","7262881565899412491666901310087864414625635938605403649900494959340983726085"],["2342241450653937387656119243188905458932325209117958296548687782435945989933","6199554098001266505100742331004209679885096872972835445099143693121885777088"],["20587460714685275753223208725776642549253525700465179131949538981703650254361","19019247042898519258818701873043503503391699253893309149711504840946675504173"],["16717092696958918196495716126482504621235608484575266901374899853486732817546","25594402731621597821370698141854615260331504989502487150268789085711720766287"],["27361289692644941949598891424967142349046104670558649248647694376359150811944","18325411860702646523526116731580887098155753065469945126293971294469109898346"],["7692481721089189782290093201938292907856281096989142845526069051728102288389","20398905250796917270602626517391814182413443258148267493927355690803310487436"],["3354456429888936887027175536219720963875287774620298212490082340243605919804","1305152811225082802767699718651429580431637566350248504294965327099446829753"],["1174012466058804591299648602864923200780599355157782918938560147977443190805","9882053060948246128845081950009948789889005418051444770842508298871478498067"],["15950948667013661600070041411342729725517066459996210222373632416507410651376","22480694013158813498284463034001796702528057206604173532028009237392268655863"],["8053894413452706883510357329321488180098864882241422711949695366030663967845","8934117799512569962049611874198724658360534815242199429895608159564878264143"],["10484533853152332622956513272890647728644340012890986524698022311177974815503","27692593143790111707840354110651774526291246793525181925888723495743755600559"],["2023006790581689349165857955443980087309356466196890601680353885514823411869","32600322909605144833257305013024509581606000510433718601419699746963549787"],["10022772508054373806523208419069497144340471366804219054532210842389374466394","14538575911647413201938091883599978909851153375117351715418655444789853052411"],["7578394196651990603979292582273062414540172419280111222803680557746654265246","24610886238523161788493923397401437144689269818644262775730719250499794393827"],["22643561594092774965969312687991064432397835929833174811098830200545912900101","5071059780404258486715428486403842505901240882579603268832347790952541241816"],["5228350274160838807204790022264861992866793057477751982078829222381049211979","3131971819626439265399723229962833881690343826171977727035426386036522333765"],["27711095891110791948644935166223510680158829522975181347294732185778015721571","3782336532685934271154836419213154318926170928812895556618242875246548516753"],["17739273327975043132297438087790661132612568695723072979246652803062733990807","22255920466378022489020468629758624349130698990967835769785190548507464233287"],["17846294749974140015712973046870497820275742108842359499598083688450961304214","17467865469306229901199270253243007208794967845742385543959172021022651212730"],["23043318333977039109898611938977469910983708399739115441868894080923846980581","23560300604243047748361730633108586188045624709668732552552820484742087828501"],["14270749149281769732599191314121601249197050120237054001425470213993160611714","2223858826520831401965529780120602330557460642335111520639632173582123617765"],["11123742638141880910553750278743669127692134750542224961290216553474849747312","27884996618727979338459052696528350135652575938616306858180792680409969668086"],["11917267634988481202488961277103934069202234560483730761949080889095691687380","9615060625062527912420058666554908959948516456367531738912866021687993869057"],["5069703998402556243625922966891034206043976618174919541607403236346152026753","8197279708341576080408125959163890961940894528424796011289130201797375659581"],["4262983358101458472968195519502115864983941545336560572369415937755491558200","4864436053527485857532588313018175710796591869562096391613030140217876155149"],["28771018325715960521995612569697870814183049825350495873900289520210674298220","6076487282659972566895460200716247614305936832073103121782535687076955563423"],["24049471929832361949179816413493699896871905355830761401252388227870353044651","15471060213416019507968466102492718677356960757033355555798279797762021475484"],["6412474086141285008026153054816928179879491305064438485612264380452233564102","16673412898955266750873902793247397414359657972873082001097582311741604008737"],["13020039158569698548130464520096368767623316002279265946788012026179136912251","1544899262209386188102754419537476556485392596658818066504830944970139911972"],["698399173175843291332278996006377703133783526437901851444882512313490365463","23360295431140054560007206596282840409760621841335521887889261147830067732463"],["24010479601091745931196301997417149427663451269786067700168055882701593752214","25921691954981761272161246637127517708300898414169825473528287289059292208178"],["19312518126231230105440600957126332084039049843740727534142625374629905026462","26277216054251862368919252570127828275828211336246878898130031746472510790827"],["1741173905009623088497600437546159776694773930187640867950932236991976374739","4389513989453010865212070349814479231869223735498335441700383408549678011706"],["17485845383505510555691355170293444581466669043839915540795733963192880801707","25448700145425085409344432755354870441175809086183495185839929094486853806095"],["1943949353162201229554098664463795213864641688363974554781999931432550416750","16262421605594710810559973308565400695974299420832587938502428766473095513078"],["6910636559216920344097099390388281243234863107951026759516868874359774420410","20557610415287946922625455367083515217454217044379805758439757322728017841499"],["6999407348301149115101678819588636885747343841563383620976476722643176770811","9088269806581941309886868328791989896972884235844445265024486632613463781830"],["1790884998532969261043642294421417130448541132443051316919159875713136045978","15103808825324383060239158301657766474857156630580257082790890614533987229832"],["11031903741016322680388191950313885859825649901577688976008903447516898507164","11347345532830356052913559211835151768705941153198455577967715494105211478302"],["14632722984189165595133219432984892306410025122880689086015978277768675814084","19741771047194216732560013399938875901864161654141096833655361531524407107797"],["14157030750561858370949129659663739900511791596468556331833452484403758589819","2328268805172022114122533320245357116982774135850445895823131086179492350760"],["21115102890826626157254744345795858963427692306622287384924031464040361772023","12269335693985065993800940575877534600805744196399851169950907209438039021744"],["28488785590744962687113820102823990024753949313279044082796931685481970333862","18649798833490689418440723677137223256528221213311545608832297695127611040355"],["19972085352814304124641105008124582537830750951011366766385609986546593109039","20655275734855517456897823465626878907770122906184675541410131226538288596316"],["2911684486123392561831548555298465784186208468113851870278657702426590244639","23960287096159348282215208766274751113445554369709957489176721119503289667942"],["2147198235751195390081748497139728696627663091216468588281856903149726353547","9996698630271592751287649294833165657656420751718396498071964024994730554744"],["24593098156283998185494577921524736818398990772272579767414926210706162582984","7465922969890976125049555766594588900513691511896275274318044164315493941649"],["24261863580919289292724348659404831598518607529572874744058421526041707299736","2517096442349690402791237805776787339521100563514530902512322226631957342280"],["21646779012818241568602055882290719930790272234915575866277450759176686350246","22103709632723200933532339402687608437082274711463562564587832407818035915818"],["6313388681919570628326710758003379092578368098409267152056172838846570871015","19804306494707381798909242819641259781220870689406343333637751556140821268012"],["5402662116147744306514560601483091965279114095587292414852722386657250555796","10719542432405097470901432532982934815089640852898266583286798764597120244286"],["13736770769028765561041205143876835286087692614107226013590672121095452434974","26150084503663413055203436409677050090928677471446632538157313764325931183235"],["23110430435480273241778950704853001446937613890865882109494514986730332124554","27402067696101895785885066871921559619845496570148258993979056331166538931238"],["16281283971207919136400361861464471819163224359829503861725264504521040249659","3585097321402245782674978893336036145647320611490884571631062509958374207882"],["20708233964201028392459581899798321803048506381366156321461761700681419114693","26158220256546433068216704167376722217304210454199921549307848925748461444423"],["22475341061903412851519432512442895652842025065078357612413269721331732708924","26286476439339475976271162098255996508716957421412008044817641106425681604879"],["11055893601566885179678719569861063326575154126505906937544334991113997104858","14377004926513400559876916973643757698468433815919903284443378929204144560233"],["23089141384969067878066255699981245459109951745928453763926953146947871240632","5250994685293790478684039983626353820096737982437116449302913726805842047007"],["14205447866726466532105330031016485793613401921863957188303984697521717721179","21362915302828416110754832704642673665539999578601600295762192359713727230995"],["21916288442748433478467233013548197057337158712277107650212777653863520916908","5252989242829246812507257534391696028289176982114444321531758646189733321558"],["25487738951283998822186066416953515090576361109775762075334893086644666744929","2491979530460049338290163501718519274048859440559294090562448786109641144373"],["7823743878556878393241455853245599093687819459047728339732411718737787615577","2263248825020723776816883856816358040799205113286990875786192555927190859529"],["9311813146071646088966771308836538360960495360500094414648789445371509292248","8976848710757482202200640867650241728250375615896466281951199755409425031728"],["3760011571186979721987691458747251636721404292943004301218478498763011006455","25942677394164161059541153035686083191357421957357025528604355680673253710898"],["6031975279653719081084143182872506992842210336381027262585250272541340853062","17175489370940291890029359417745775030482975590295081762702803937953536320163"],["15579316348844679173849899689482575144531748928467553947069013647786152251150","2783020710983960822878755838993772005138362930970222349192101619200872130229"],["18959130876844752814036974144663305783993995857781740828067428264664214348548","28694260334107893238701240678976357989883317318577438145716874699633766929403"],["5780710133314357366466928569408925829417500607457292811770843133436034775907","24561049672704766924585587402441760239933459459587741585424479633545689370848"],["10100720137653384622851350849025572062996117386370071008380269121709944453812","2156972436383944384528429509831794485343461786373353386146429710007667600038"],["1632355869833055159462682459030433856395360352676843170720955766600023490847","9998911996098299944346771030777193960782453978286514004990970734206182906916"],["13745803911014192894465968922341278161926144419061129416528641966332902421446","15592508886986096544400655334166958166550995786423759466154620881790310056548"],["14823154245371882436826199229177435282117689915301880409877550298851761124831","13123086623900145530915480066412392835808051753944073613846286373078733300877"],["4115685535626967360903560523883463675045543018194937607749669221217020189971","5369258179634922775079779563200402588722235804648440335960125433668153687808"],["21377937410620828831569169986252772835375053860195780173120837156923035155494","10621318550416270122619035118112338671680953020847284084192406664707061811843"],["4900867555667055556258624357791431372183961465538242113376636028313803260401","26827758830756743315307856401240289783387202395901125204767071868269513380736"],["7786601511555529808485490718960574803675477197779651210831921575994243568897","6919276293798897807560094478003753096720445696837467301294533674435592777155"],["26194909925243317138714496446439892423623954781691809174060500310038891707302","8023022172157696629522149512224620204524708131692746200595467737570190858757"],["18686227125013033441765948422547018650020004995689934067217216444007814424092","306968535904295458363827836311105379707701520782152588382941780197188182036"],["25015059533446611588191127382012135455960481028130039743206527516703127361102","1241646343410103140225155611539443943154647913800770765614273438688385367416"],["19228074131585334105329152492521674806911708546688595007138687360531666645350","14907170074907258928269283295506454188082146035486646203258616289963678061512"],["24314591453557356404044564751978389172807475451859251261200775114859575958470","17008990117937870292823484853094900641088700122191579358555270242839609419880"],["13610997817551658810578012236101094844456262453305165374480827575275312515773","9587733882262540895799896448904559217537200904032521512813557424538041054266"],["5826476191542946731698486746248853285751220167854056731785172733654412303626","26279204779126822072207811680345591764713688060199772239365606691671144857076"],["15292255587567781152800234655715356156599739976529827159842317472995811594625","18444115185938068701853591640143989417411869513925171066274299234748879582205"],["2339999539049993903239857863754338350665930982873008979363187069401976927328","3242827122823772556481802196600003169219522950230985914742198051034114189841"],["10252636037255472506888884556613612477290478399579692973347301147619848456094","27489110147577169866222098676779802543472186324207429662402146262560721333991"],["19923456796044695590497398584671946993174324757387336486598075609672040277898","3768039711983851838451135552876240996349175597591964209666377244970910268066"],["6441736626780513961026123638405851430962433911495896368645315308987121959597","15822211301280284848836632560067005822513363601736646708544038753808790118664"],["2046819678920473487212623649660889759042577232235625237813273728312950685665","25691456161550356697021337627046157241472336872703946877653830713462680676253"],["9749733880804438706982935545612153463104763497808600177108379011519731857785","28211599832082570908400765701548490806073808680707383745603388624604416297053"],["28035333181987402089153535408021322954887895363545501789193424332873709013391","25346015072238346854145133898256041306454369752019443230858600736244894868118"],["2857971818286568460691631614069011160688242464719286709199180731281782853838","254818194487768080986458448129606871761020255015732639979944998727403811569"],["12862188422182941052762071808837337899730794772267675770232393110838234902539","23093563753295026881191331387599189897333013819306696229491091155913642242887"],["24027695494819652571140267517054149061576085122444102362324668836646349746928","12235651856094237498238749073939459212340662474852974431212458215286146863855"],["7154313652163399214887187714101073305877951880420284823289064754935981495051","23684785828219072639269018517028953636993601782494907975621308201884947586501"],["17115950787838615570408230549914586784765160344316684307346578067621431433985","12999435510471416628058141714908815042783737191749775072463377306384052635533"],["24679671134896787930564235787395124000303152019893543934054346994059092652683","4249014754903637067735549676316876494477269655985375806265326068555977624703"],["6484189810947175779571343428432507570740242475390664830300616894007341938214","6857628358529768640631528772395261250185706249488995411082466514519460617497"],["25370206185733316079934925819811029911645882600709765730979475186534525170626","7447927174925119120728895215938943414457702265865270012585578551913577455112"],["5764860313656452633844647020004743796181157425265648833547096593650334689838","12983890718741643534061983895861575679149378981276805564159726877595571855394"],["23474474366523980975045597952860907186842083031538503479991659456540714253492","6348373663565566580791626275033717437135690278561793225719152167138243714526"],["1466211888690815641872076310906258497840123362410634462828369635532180280556","13222968392753060453739304219041805505571011194219157957845085796288962100877"],["4652928649320935640051759101642102162496297186747118637710878373387781321978","18306233586297835304394423139902240047868935713373381811114652714195779758876"],["26488475386615307152213498428296854462637432134927669168799461181725074926807","11586123362221416221183957115475616518144009787225532751108745039016455842863"],["859239476772353747747845506877599137570421823919257823468838148734395683819","25359639276957212046894920773894784629521593398021077011977372914493014324716"],["6399401177440565878537831773593474799113702748563020309037089345073579657613","12838268922527078982326266265787040087115158533661284230861795732325910677615"],["22808470581963201126662115505810895409962752649242543637212582734329136706133","12912209288090771821483062787295376534675033542080879096768755496761607999744"],["19064984855905178458360884806194058070082116309907482257743112989822922920203","15692159631489658527621804205917042803637519014556371327506775620083918737405"],["28855340538448727405197404437652981564301950903427728358967715125015060453107","14772800868325659595756080247185866191732082941902492768011378984235805676188"],["20746567325482002660279518239865395121801544368324119903220072174600338530767","22002034595281095105084853742275806330322164267935949764254089321710425460277"],["22279697371414169647892938629709250115410521083180886373502448806399962234253","24375446993812980984738940504747011438459395621819070038945206665638737205536"],["20202557822252966505209064746870591102499731675525879008315032063598310786957","1486717242902859585917514682943836303627236666157775094510396392701711089345"],["12101031307651189693116879272388081553383329265452491157555655210949669343093","11036205338543124903877707455335888709026201343175720681087821430620316350232"],["1252637162418163339639722474761564084721435714177762884346679784852144017391","11400474312371572458681108039476114404897723912723106206713642817866158037511"],["23010310409516901574612996822517127165663927754343048547876725009889052797957","3218826219149368494812453214786600105313804139256611125498643730832226034561"],["5133332015161033174187967780645723435094011589454435155927090368831136751111","26738105747142455957645164017053609732180962318326278092814172192062535764263"],["8246830202755952511073802641284732801819472274698731082129372856668505777826","28291522539419536648946796653719892381771511582682796314216175012139220094820"],["20065067073076936553740430340516822597851930861776211494104847994002484516404","23874632039349793588693919475056052574529003050811614551245744005322186563252"],["18742151954961390265081696606915141330161187619010041194433092763499569992517","22823379934482520664826842963810142066342462744798701537425657336895889316886"],["16741989857862839510755955839650483404760946447807502223197216354063043222062","6868236265693925803826661830257209171218176741717384483714652068227682233917"],["6009889287555480595011097412396430263698135327450114003814090223298148335674","15444392774424466669469200467877356362213587470670574007545759683488675975679"],["11205535920911647716561656129375465482296607625207929383149764631592497588754","14143636010659741722466720678486044026969458385451863443722675289561451083058"],["9638323179105472353538650638929060431562914375791719476339667297134934865847","26185646152312852725469072590562273487946632178083084358216628859989536623287"],["25431714234921805245111049944508240770700052940604242719556815991379734014647","25601090851842733669304721334498064710625987954037801896359882765861938399132"],["9429649102079469684256514177147380968062266795297831431587462158330593562426","1634421446105196974990618057097753351507964458457679756605644340395540375608"],["11140629597789814914604131815437398358425949402251029062237386063310945531156","1762465248508504502153471454050463137295116918318839032379265088045695297196"],["3198602092586176883266996237305013982867666297595292609330804801305670050076","11476962140582042026735034346294904281401648493366619792979394092995021388671"],["27815698014420211185777533797039744603467725227126422166617640315084727178385","22969740528482746914634849313992310451683011400523165900876004799106188853497"],["26590608797191558685242057365856101484254750196770525881464187845092112106652","24460588020971149948046844994140205729620934265031373737031294741851666794575"],["21226360921787012174045770354025837910241043176029221881566246972634108664762","9813267329713131738561850571790656175371832314638130829173124412017309186216"],["17246919014783233838770200754083527040219893174879126380917159749582348317969","16728117274876302895582237520783781178670702167157207996189889850371775357357"],["4977472072477167280597125304026930656429688872209338351515353133944703529426","11447052739935321079402839435759657645264536755688822937856940602523881630282"],["21435283316515263906215205633180919599635559123911494759269272956072769494886","25122983759142702163529033050980706419036424796615756545363261917013287809663"],["17777701826571548351801291616388056716520483594221991238562446964807851837010","20677779720900497467593784999270928048662023828160396195794483972991060387902"],["18081086179821584123478968511807063616729800851078931838057010949170858898200","18899251697494140912936109062263044644381981847191992135375185728681766253428"],["11697719371064224120623963868619862170822322843200790325697305923349798506909","20279144244125219798958419886509547608492364277952765824360322794221541680625"],["20432720591469856718566791347047775060348427832705895185813011802043483245113","13043268459313436452543652806669914878364869359960440472858008940884790830515"],["24196505445420205213846653592248351116516930711483868226317901668616520480655","28062001052922614350080290035737121863597527976608930884131214830269427276050"],["21769293223864732940655472706215510700554918577443055377079336332949945193141","21767560488761265320552391301848611478505208131374485106587635598062114197440"],["26730714287170544859569417063463050697847076403465430679583662477524645804298","28091384432688884204344539060514452190240170291601277544259907324787973883647"],["5446819714290723259808247363716500888298059471626277713149736375928068207732","28247756097980367050007504461338200318393789408543302970102162088456081208324"],["15397388600014314278025811233321846043527139509717628563822806100546989796858","8237969290263751658027507829062356500038600110210756741875684544304597207860"],["4397471450418460326903221980663736002292028558496707227649428180128035327645","7131593682604215607311143000490779179269236597650951614084248664663715733339"],["14011734065477419263182098147460845713775395217945641054186222144108825308162","12370463388839523772358859023321121972532544830284755649415026007552999386129"],["25086917056547461363411867159704280170384075121952504153714305273031884159073","27670680475420876274635861779422846550473339661107991847982645560488783917749"],["28727390851108206810451808452675731034357806231382570702506733689248284967667","23126568448659492543532728777324928540881160829781493573039571653347723467134"],["24111415897883259956632325519779022860175927354388287371504537298660032369088","23432508688153483723203537243434605486424411341581681521878760429038556892226"],["24185519884746813613748085198754535776648317636694479886248554790075401344742","18165069806468689020715765158946194022466759760128522153433399387564815084503"],["21470558585513254604842830750110876165815190155934139499143297203381581968419","7602620644055055253806947986704659405147114336070522560240283267314143311400"],["1284652023967708669830489590260875634055724228471324074584445903474306350121","23220673618158933476537269151835459192364793522320503293921272473536271616409"],["24448288500083539242752083815476353913110567602475986253636144859280556458820","13345063130890479059488061533136129096753184496225517025143857986991936204068"],["28141937935711543204282699946951133474765853879907205143584152361440701246180","4542725691171185447502846115088231824997167827211499798116683834674014495423"],["13976302520257820595333895959063736372908351447146466845797586879415949386051","26040073340105944617140169736360758043862371339425399947039094126394524200064"],["15137997158033282464904228913677664948487020591023832839247622983170961179826","23861805734596313434172070981993911457518407412111627779589261200267716129885"],["5992137466047227299313600262113085099290832502572284530925256657078694325663","23284977971133764019215911185049546494406654579371954784680046733168117941314"],["3363243252716609570517089671574771821205093062158138816416439294041457619456","21201597628222108000378834413511377095830495351302790473000073473634998980744"],["8380229479739376283133294869860488150570364437778348724571272663882732197170","20261186648586164811351400663867725055241190329173252669039908722514891953018"],["27911362481408041231049496227377171309126861419183459029613850206331465430180","8167460045915433547981406560740856118089621532649179335446780423693747860119"],["17917648686088930423949060066811721512492770357423935141036595690559972031981","5986761175293816509035332040198474210556324564849497067224903932932011423880"],["18392201726963398113469542963833790902245335604438057055539882247893213525266","7438510259133093882923256479832097630338661534511341501526950858435584244129"],["19745862863187308854065252558344630561325952199271878743693970164829782831493","7831458009064348866699394407630706970529465643638755915762748255668442743191"],["23507304515076415541464156556994977739707624243208792049087751892165636341316","22264387058867215855815904973729690288011072924710056485351575770773644453496"],["9830907031258893238968650049665331680867394179057405653070255306143216684263","6803402032758441231029084919373819729053799009735024736106976365246844185193"],["3865140237349054303715348899232375278919420449591793653874180433123583973968","16273815358835459441756192660945650074270115712194729290622011037851783902165"],["12222334134547385796615582453369325851391422937919474657237078939564494558511","9330152672468777675420251319169154041385217899559311811740401510564480265302"],["7177131717701464104465812719867356982438767511360735260452919151266880100714","19198677611494130358398701622410234963993030144644262604222860326599750273004"],["5805462473956710195870113909658975077082798609157259693995454735219557659866","19313644300799413523826147964331454515582102780237230016385126877693913905032"],["23991983889750655732312690179935589494963309579503208284644915841785873073866","2936630407408658948835695525686168519780372082863306031679457593743345335928"],["28606641901482309555969087484756551043712945206322758275532953274066619395863","2704035787073769242423464662117897073344248553974634857454372709924013715693"],["19539000373087444218560817223883599010000730369559276658335477683599767553538","20813342414534529266263760227447706396801503123211063089136157878342731139494"],["4319752703746538408535255767724532272329119645480346826067304051889145907181","21627402435288472603893513105814468888313380938199323474454307351423737943605"],["8402836512919149699527719950038525823073960889375376599978672869444529885074","12444347565284019136276056363777432897669771601084371529488917527124870348625"],["16332093107262693698664762890489834727868143351836929320165381025655090285666","21492093365065775528990822256733757113729144129221565939421357737183437586844"],["26742291897964044230650070696660990503190980303603848382874418368767192037478","6153910235630371163093612290661465939741847952921295820150261115654005104883"],["18783055165639419384911912188931567384552850796549683596866702523789993321580","18591658527355134733312411299063024569011854210446180412688727682503284889201"],["6851912465876317040096073281050735339626553245486076688131514117815770416475","12504625510450029224388339560749450481240576646534848491081143357710183796020"],["13994859944595013769422296578977050939138610122756834167767859787940392013135","13916424758372498592615244402770050001346108963364388668809072239614308374158"],["15437030962167298555003444332279364539763332125438290717559058417783429700840","5817265532752268820027164351724945349700387702380641167921875119643108503647"],["26514299618236378746071318818376533092820766436858451107026260407810176069273","25307735106641695463913035732410739389300540490131410650200682439185090864176"],["23197224803387579978319301478034086558269467506372523325573346311452262781303","6229209438821071559787149876014921284090832514234989276303617874653059753029"],["5623886399010676715763047160649634117699153835733600532513934843292872393810","9651209785878663650837675399754247523290351916554110294808945739144864093472"],["24777942637650416902063259993522653375070780320201918511370401004090087620283","286682989174111237200013913977080846430434473091502697827373349364407319064"],["28690718800420790014987154370321958424544975190737811487675294487750499685299","10498449616892263234457972316477282005498896116338556460878357171496706423613"],["12706541077813946875908331773956023926307137084090966561221432696355616467637","18347058029680687191447515204959533880845577229646541146531382856547327278973"],["1582456788396657436046013618228348870755956828899466246104475330925201601384","16423253242626819772776097353900128459274048737703789453967406752841956148210"],["19199418257356028387734441759134067021029636975741125377883503029826991846011","8768389685024848170142319951576038192471814034707332448540471864021635342075"],["15957828216387740529113049346987114499637491650898935580548109214195425066220","26359328372567453507788224428817304990406987698110787289692067871156564427549"],["15027807216871389155540245536469836332700372850204398010895164662918344380384","15579564609550614855140357436908467090918923036437043181236068428879787573012"],["27997640045944830782457031308826885272980674100663866402633390381810355122860","10692540853192019664231513782907318709459641415794274062112788599668037306404"],["20599220319770273675257897282841145564236798946324404698854249273500979305715","17728417307533971596923887644998827225464025904998095558341434650528686858103"],["21158421554689283827664851829801855866174113796664241681286246197685280317853","17622730919705033737096736480236288967882909779861313792610294897476237320320"],["20088587212019027718754401051154871776818438754903554227103189246532253413046","9011655478968424481004567862150133398122900869208406502291184161429057237987"],["26458549075318596961371374587733212157691252720402433163006451730932023271448","44946372133975722425046573525674611286995211203293877587538242133267879511"],["24884626585035394057562701636050155445180505475396472050280351548312756916030","5716161923266327203364815576866099014643110875215614772086967756078362238204"],["15667902206347003056361476530583059003080474207762922875661967117459767344817","17770098785124317585411727236400487271390486737813274467741195881329640734702"],["50544395898009661635804503354542927672308921911133522336782067383745097742","4981401617713042127220429092424479557316105456115938969070349680952783531324"],["6600591362716534108195899387955259362288130596546748784133238236829672128416","15076580440439395069908409261597348775368880430053970945304164687927407126331"],["11039773159078448761847993043992671719170646925574591467638412915081705840423","14973307583988599312581438113218521060209175268058170047628125912330116701708"],["5571135974370061818153611743614316152286162820608511419781520337287721274691","12214502918128013186258035411242793211880414099474488888592197211353450062904"],["2849784014440072314749786541816956906744064158735869295070632308645300774449","5594718381346111612200938697306225644702393363283089722002330199244845225278"],["4374286849189817720285318879672765012808204069320692182956042106315727188053","6101555734637129429267787175098938182133549248003020231412100008440445542268"],["3547358848227469280732603645930556648470082203766617721334651046199880343688","28384910203110455693674294175954752598672325378127317657204796666171384697417"],["24210539765316837253545545626092159308734079641024672190566852227553734821222","22318681561816941393924855407438807123992302589595215953830007288060128281874"],["1774122180375241512395798702210330257461748241092391026446588684032910711336","24081054001158384579348334812205721477149391461465339947028414594096520864988"],["24885709882194702668289802740959757605627594234024817224616547800122517149215","2675236874998735501686484368886440534803974712237685356762188308719177328971"],["10722446013121078766712986719657182244779797999317589605050861761924354065481","4504086422173231301176876174589900733661385478399571036631499863448140179317"],["2159514508032865336708301609928366576580040072893598087084357579086869809854","17427299135427691535816450174878211171981037479432850674567890918678999340406"],["22196408879575130680489146217123756114607674993938026452879893616146662925684","5548504083220997306031306620445889393867656173056919061605540730623029291471"],["494680127932229240437820052934928854536262593480583569821980662469026371452","21911095334638356461094167576375715285272202402669262085092129318704001517220"],["26647166552046705347692804352176064687745973794548666934865460382165470238378","8629976396398413141056716324616626137442216581192908143435027745199611865535"],["11717345694801341984781702753534334984835568110498094880082921264479357788629","28758789287844139815476214688078500264747587476969229102544103408615980479088"],["4680196568773839674452407131542068449688526632048653169945546663685558085929","16674358605345259392306970756537544886976744235072809976042629675856136265255"],["22774205460422363260393454938974677332761217860051195107097323883453817114798","24123501736438205020820402645735796316663900306608449237545718205425501506668"],["17849611775666927784895676732034250351193189232580689597021473983046253241464","9712531216425757578019642442180700691267198791302001172465099541978975565697"],["25132594425807001851020705350964314016140052136704693386695163526848518640089","12418788893679972401959884430356962236476392845202842974426576651808886150930"],["21170031600649977815003318032222978802634611093766247335462572435237734133859","20561468555621742982739919602882560306685845903973521280961702370337705024346"],["10594911064311693954941994984602223752301267636620360504661896009531848322163","25245142284815180399726536400849677352663825779482234387671049754631736563663"],["308594930442907304226384439740364091006149493979711480510309071730086131637","22513792035627109764276662138113028127175601541732842987947967285774883193815"],["21671990513344570569741339178793428840520129471329121579627466320509308375627","21425644901165838765349335076407028999110124478211847646308776178368173000515"],["7722403087370053717245576216400501829522601719287277600603582196109542609890","12284428679048796926323640800779688023464290222638303134899602658521575616713"],["27074955417310975537758516666388546413849643378379777335523947722427578610600","24848979925280635529624773238332067979029576935332608931904666350829038517854"],["17539679937054714663204396530202378194779276148977186325960619033808894492497","3283528490559501772861818479091240131573999621059464745061841969329402478947"],["21174535585409133482409732944581142271258237687918263110726753754659778947130","17726819927000498189537657379520447395850067159839130931897329272919660162543"],["5478406879175837192152051488946684358011402436767978076844883473012444627861","18644665906500785931277241394399237874981651597757896363787277097557453888835"],["8404025364191100194746082458128103615713881286817226172096565499144909969384","19659463163915562105761654878727237525750664815275272617194588212450448362300"],["23979093839831627610548615741488209657567661092929279886911746185370624371263","4282003799553138454150207784846269496379123812197923037213416013922143022627"],["7828136949573194834577345904783175234502423496522676846833390193874193117761","7587227527591484149354109587029752116847573699745092606717939203350316535316"],["14195506032756991256227606444066213798438828647888778187631850600371959016115","5418604192113277521355575668157394394663235809287237519723687332687707660262"],["2078389796516216056120350422978426790218205089749023908121959838579461836315","13424404239269324187161733111154521050231585739162196830200903871803094544101"],["3196792291012771963978883292380096424540529634674890993890726932742311762843","22243491617399735783913573569689000806245971837060004245039476090990032560786"],["7387403850941796853258059248558324705732037429839907835474270792027973523960","9905682013360025033927587536431616284617758167537646476558314972805771133669"],["222926050875704500891168612654225372838039527051094853254081777045778567665","3496113455784899668616620341115779194740825005953681815648849848823530215065"],["3952967187992641080643339470132525902586756809167615628359733501847484451625","3165234198250956568094239345749566773707184363862497438813632593672022995138"],["28410452480771181600015722302441225692922201995955208680824450155175428566924","25346764616159655225739122288859028920910564559233699893067701825603662125680"],["7539468182024546142679638898889908494501142984767435750982872972786145142628","2073928474250768183967569655112284761560754850976835572032955188907814865316"],["14682611820654700281129489975379034418604123413164394738863279102911462908791","1863623417738366871569957217551406435228471456265446707310065552112909836176"],["12460185734574674870359686036054734545195103885857530994514315492621370647135","14241792153669741788912345776340381478640955286226991270592897830740896200183"],["2549250620841527111405668214330696979904877921717312809879507453468689639314","13370079286890465805206735723598402036421810801955881352430860099591498460165"],["5047505924100545445183105799930111212608931710848006086167791577767788186415","28140434672086651669195866880465301383150316609598353085547383938127142207760"],["6164526615833411750836209331628531677359990997474200735957805621432035197410","8412139253530676387922420346185359061984646638034747885314709068306881768297"],["5234612100956365566545307539660032719240893555206711747398482180882193808322","14805257892345796792818735155677636380564451253864155369003437197656122316781"],["24221797330540328572222668038917441197694092860174706466619512896071613827340","18466392694019202646191398699767539067214700886522524558699796019209009440353"],["27447098193610042468474238585677793261125419630223338938588425239376854892241","21430449205341042159152086690542420643550184394265653936942108681482118097936"],["26170855879496501335407501442781113768461523815314619209766055331269845033597","601097696097861434843668770255724360546782731924282405978995047775883496959"],["10820429386466461929846404552548974595416059662354171480612038449277420483665","104587970655660632087281930729717000157986042614497675845881258712107771980"],["10439800014276927247569787339683873426992982168067463765531575756147785639030","882001958241137569044508531849526678705376859969371265112507431046272776074"],["15115123033230501405326859651985936104023996339099480877662985844737016950609","4094707490609468512447311607896844786112185193774976365466198553281772145802"],["4351295020639216112532835249957096116905046281609145847801746854386185583292","28703713903472692752266195757758196603427772672465486824812845859164543828381"],["1789044679861183700885557855146536941526500326602685151082226850665001769183","12716562383723217479292335138739783275066511368473838974897237720395697320937"],["7583246562117031395773042399530358809158724757084516075441124973680297038395","21043344644738198964178703592945589763706094818600561903012758827821154355450"],["8995159882910944810226315630166205672852798989976432135660554129264977892854","15264320559645883434504839448419005287356707466642099864912247311592972259938"],["11048689847666424871340691302141902673646102570482567431135377627491098832229","7008283361067347121332619353088957805698507181441320861926309876515479010129"],["12871975615608027794551142499806458580265576533771821459608667236559001862188","15991195297600915387855888206068336149804235754326616318622109003105942188751"],["26036419499704078425627771513061798945688113807748550312719512519704750999191","8859095679716130046298969630631460128992668749386200412374960792403621700601"],["4345494523681764092027851531353369358614217507133502915393980912034227053920","27412009588682168549465717378151486451969442589006123824638966692402542634015"],["16161897459968668239547829558006647720629815928553001594845348845590010283885","14175729436142879785369042253530986970954006787636341446706491903545745310244"],["22383247186884491771187775752850119970529887075505116950574214630930430111375","17229209962427913653875100178916473751709023341660195867816333667270321056837"],["2370371625150326868525523446669057503151056084105717342339133459609478981456","422428554290880539269923347812910686311665580941630899724714019313621581353"],["27075554779681086280873228828707346533142448416283589187688894572675331008056","1792498363996612374044228146917750441877424572407943864063143184037633671427"],["18572682945738094485774400521292189050022545809540230455894962389344101823394","1629369452386050425409995878841683642968317023430634715938412239663556694401"],["21506231317901452785829265108879366143703875449596021262365686576659282741864","17911117266763296088535782012611045884653238032472960504678462508598247574663"],["25428037881434981294842730834464238675601811586112575007239865443986072962773","15294763200439669010836988996831277507549119657993912477381356163050187839615"],["20381591625250537807109046173177984590330329875012854698190890416544901412968","1734503732287044544611744670315966801748334614171904281706377400278736884823"],["8021281149157558186876485636528384123628813576804594810808661962221894187578","19035269627571238429630171541450436229967229788958536950312541087315474815218"],["268683218831860203641452477980691645858691336917987964379670115380903103925","14512813586297486150706499568979092226443956228222374646567806695492490970811"],["1449925442011757018571702092161925710770237010679397124394678764245080911639","17613672743162023726789457966367256889016030580110660958974464882331391118099"],["22753598929869123103303778283880319161924969041041156260745200490977900750418","23647675490602900394525376101751913373044148938836377789504048004036862280398"],["28100463041826983943370481002996907407521798569264731774450782021896891905953","5380536503498868249123298361553783637815632240555737664305737232243866394874"],["13479582327246086062644769788245021024371017565980468591000694087907074760196","7579244883705525181700088855183663709851755183303323844397738559256371736511"],["11025188450446960069556303781096148739297782990869481924909313112605988247229","20161484471218407329230920634757110810437250961101453292216808772493695829640"],["3757145086335468252749253105327446553457536989553041862563138969425481257742","19099488038642480153327296583385762256652701445071704622605694007983458051334"],["21687459361430137233489846777779517488818963531587663337597820778152256204068","7422190726893756522323519690384869276960872250189954705777717064286417106743"],["7850059430928719038329251387926418335178916678407020638002369093310533100021","3039993274865471152295328483344119324042217729110398067399880446388648091415"],["13213902656129578923876010817239322069020612850350123456117965891159550301529","5108974212965406717893611486932099098409025632662751312141565434919582699181"],["21435135913537327118683451969911329892728445524019168290560900717862031672901","11969418175459701138480196174778946394023961941089288418454401479538235230465"],["18761982515197715019669523571768271434803734500221260768635702528197026909059","17241448705333055854579120405142827816166127855215165896020970437283594722375"],["20549861934291788672634565986857920355244426261686660395291933955100901074919","1789877842419794035724899907089857708303770056620451763575019903708156600694"],["21713605240347042170085628938026999607554740831252610916073375695559533424789","2653175543477876670495065362750116745484709578626820453952891457008071306105"],["13258781672917189097579036713962563591410918692293078743293098939971141103504","24257185419603662892235677174544532801907916260169305560273679121708393993715"],["6376803715604836945320059119642743371861277964511105239772520159205534960103","1319946983929639822092698366439167662073109163223102850748471400289971917996"],["22936809017371420688689002559697238454665498870953795401289899432854891159612","3723253514951586814269736492006899342822174572421804139749837252695074015980"],["6384589272833155639683695277025463324368177549199722528632516122456177207583","7911593743406331956233905540672356387627217946237274204269137993113016098821"],["20226227407138215212565085603711220523814273315040683059924149320759622058344","6293719268593295215615245471505600145042686740612086450877443509345711660952"],["2258240153619321932268522379343761539815220207594897669284008388691927152779","24353020793912603102433439812446977774832225458126736067189425638224585603970"],["6928775666466670980491897028005771953115302519207702748411263399438778114833","25011258863149437465271050605853626696314254753734296559047538440885657893218"],["9716787228973127761505012760659475137620759859388293163333985073709195690049","4022455898276046938701496436211561164152757934373489790984266935763018982632"],["789549280606631304971365970037854970263595503132930841490473793563353291314","17838639974030091103296909026098151310335215635450496553530995786546072883681"],["17689185238322690306754103994717680231233442875706358130271613402339222566142","19707234955986497327009534522938723900372206434824627126140464745023645765198"],["28115975817417895055208834254308868280303894841540782738141379698459015381999","12104655073417925576049535330490580824201213916134842549182255269239036153195"],["17167743797806157945589985290851891518037440675768975710076651220289160245688","26883865133775981237953361285179371913699759684197756977106734698231004473599"],["9840669778656022407264060717619568232634750516510953281594151970226595700785","12084893117663312180592996928330348060873177744304198950521429802911494019284"],["21953778514720205995942166096529073610437122878585279485170079091202839742828","2233054760800187279840005535844030208103252224951723363509201351729386893852"],["12213965169040332566122664394606151845154011700267978722947379386800886569827","1055027621975574075962701558776494918810571159153370534807627207387303305138"],["22827880465282564292241042021588599428786930523195356949256043216172218294694","27736812224416322259437658282049857621990375151040291727097267261219037495506"],["16541020457290118797853327380174073071337456938908775268230780304101139475951","14398890506532175085428020248181203030093050358335425105650599679586913594284"],["3985971892924039634164221568703975138259264918925602607929923836358616960387","21488723258662881475490637396759497358554573789201480698594626527217556294004"],["12528077269464068493207318911143124839001660007888630066440173670293579653463","11506725629037861635135016487024346686958857141017807713974613715002523967082"],["7150521175576150301078269173092672990487771557030845138122884501389214132215","20810064657196601803068355711217017915371989791185136750761698549000098269563"],["26894674760770775394780876272351269140618206441894848337927173774626406162200","10983585388840192200186491425042136480130727654204139187977329632537538773078"],["6403658663323733480626968994548282564185596997277897333193264133548577015651","5177004670341840582489293858227903298525906136377024113818309175814071015500"],["5088554396270107651167304729767701235214176340027165192801734250469746381927","23770373812481795758836510916958528048474216026432527263719605168821162053592"],["26997560720697910363311569136043789607406174311857184282809782066789626485035","28826744113173051461236752248078859425931662421215611018924836594410572036177"],["26285295604289745066278994737600072937361673960130483231203614012869281880981","16568930681374450411927318340438156434297327307824107143375781027511091363194"],["13246748385285083561245027556021191087974928174684459588937310260215405854571","14749446424102009154571408106562372266334288504220497857476632544011617018579"],["22182858159639224586145432142371630400157464613347967675960830620720197837119","8799995113337610840487060127633863684574538960751424430699686472004595360444"],["15355494554547766186212666104909357798821537188572122994731760596098631100913","2006970145555003540893286308394611293660161999538481805315264153740618406936"],["21960717853922086202580442616382023722694864584372258883741762671462470007268","7427470440027826666321743353156421577836862056449206834093964735363923826275"],["21051287306678988999838845667555975582565886017462165923401485745362754123005","6483099946252683793875452918215974712960585553322144327729428852269960355911"],["22637362418145396719796609557951847908590871593162612107121638541675069316431","28801051010624254586059557868412380442070016157645217543760970623628008652840"],["19828052783743875108773097294932436654184720089907606523306413878882925541435","10157712787367793401828129698520307730917886648028880792233406622463241194352"],["7929644824068203071299432156057287304459276473970097695414862051211693244156","8573747432326874630483143093479898448064954057640865894295804804223772978090"],["19344350268645366099894322339580441751906593090078236733712663345661285022840","2010903337118446524456676204239566357871075121152691779546598973143971113743"],["14413791748831689700601725497036398176328249918384977370875993555357739869527","22136438794898035164835700979432964738413892171488110457644364636868251407217"],["17702838195428410433515963095482149049196398372018102049856944800205411113499","17072145291385328587174643176658613896650306187110205194241230632374473953168"],["23206963877123323823729000910944996160167487652247851552582949053551621137202","9852415675117910044415228720940020408386064592973581236413845838531621130895"],["17649234828499032044271722256451850787564179985198055449957666487713642867484","23533893956450816698367094523326500020631500246348066472158564617327328317349"],["19224334173166812784125043733597881924020917829438255259585918177975993898190","18466280473342004576423499410789478874999668617844499830557201292675164269546"],["17629875138170691769203862942695138673578524642038133372427789078972414839649","26587974073189738654797511182559421335915241594375195139405750103152454303161"],["25451054248304629634439964681536640225595743609971360006995550463964750295633","7800336336250505548811394681753412296443897112055481252742414807773552552290"],["579000238808676430880007206733499213229285585450302951036229888463370016668","1463322218152514898738665556142158109121200411883260450938491384686259068466"],["24342754565392025720910309734784382662949028049953993691860419112058643866617","9316776362919042322675928636048495915434379517336671029261170185766400237555"],["26871046721643979366257904163476444871733813008951181850287721772018438805596","8090668747080182760162567543028289958410579945477763775020106593507396556925"],["14139420284283988118505140579407921038193958758020227084770185152784408499547","20167421750305954640283139140170495046807529974064724869947312220823914365361"],["21012547351245109114168400438717913692906308160830052107463230799956816965791","7385570800981496142187530491515713090706321112797581054314659372558160605258"],["11800527605889685610971170061481095008946997967630344998313217310215918383991","24316006149221788806641217960689225240077595217590737775418465792197234874329"],["8803450884471614856926064907873350419420052532143476552323586247750697054410","12544956446099732599381670742045574348441187242570096005605350157551797853733"],["23156532295011525817031329689738196915080193265175257941516900593807785792033","11410563283011256274714606055526739632348178572651749646371032221509350578017"],["14471417285525473753366367751384082536051472761999321305955600053686481916090","8980864467848232467017712522988107042301853992332724478280699261949484709781"],["13867643427222507695069425801467726269355299075372539153881588536111849914270","28085206144147486842892087403280108534579824730034985814730799352550153928907"],["4598093869618323882524658119443374548982363451310378328663562100732550603563","24495214171382912174937466504673289824407372304162304091566548090885326274902"],["7903606988220341146406979539914204785685863067255361882574184642354280821621","27611881042409373621066954065551391983960237106366677791908387716628953315362"],["27692436365668230111187088471133522399447950839692959266837714928426325847851","3584198120844375853462489282405733628991988401794822834547508129116527382377"],["22238106456898635365454487300182861890504178098216135813367183044051410756825","13673863023423380270639209973350216771701334783119706328379304663307791249228"],["7539450756219040183651351343242309218915047974631105048599237435543458217201","28872776824366446299636941391162412741564140724398671623341117814110777053077"],["21684893030837320360728587820716091044655491973365435030028554941829674016652","13750647224140761286085719088023515187366852164840805932549190192085577039761"],["19298422370755202946819944140199950123335044540796025232017653664524044049930","905627516820117801435268224130172533305527140491589002635772673016890480006"],["22337418644157325202762806955097234961709904509860038312846067650136959039452","27321992513930307016506592145821363487172789598922936460090781761361475610336"],["19937165516106223215056353423547447070575519429222973038188466828826445953711","7925581602608964584617189626907819004333570987029602053829751145422360128460"],["22549521286694222246903736011129433874760330590978011237051057573354604236862","23325519630242398032261977748538474245893136450395363002410306027309529872099"],["21312436574840634968014306539062494694725834038430818622094006414406774942740","7759360488150435638574199893858382031727234658255470114538433334831764739432"],["17613453222050705416509886032165484774749923670237374501239351545431955023794","25464129891269700066110135443898498087600054089963755595419801316146397964192"],["24391519666695415641541720017299524056032480004177034112974924595482439058145","15653172517145306984003259285408305887976369555518992619826004361664749460927"],["21457931142643358652536066865561166100812736045534936929229949891613443180810","17463541948256589627263980290603164184414856617809828156571506158694624265339"],["1403605418413420654798338435481100886799972462516657657671498615579494712179","3810586985074423040814783725040539301557788966123174938776186794176060575908"],["1543985029855029253160743608464534206483125944467005250009919858198809569287","6520066184834280734419159864230084290437569230865727933894970676516002210099"],["17749662690999977763784500461606927082541873097700266236119748797880448835481","20248141940882959667071355006592307570754627914964699847367774561505973371556"],["9933337588921050660378369252229705420467761988878137620421715960175982485504","21592609495298431514195255566467297552734662299515490197635152848907652267548"],["9977367890535612915163549659213456229838670450482704355749533867114565097145","10878935892205739125340986806374315950918683621501026290496212282492670595808"],["2941206975243729533667901099747335171365906600262932059990178748426765093347","3118963533327887902791082735368807782384700623569374025603565103120144809155"],["25918303991299999282449575051173227939727557516835312823425330451448755394194","14691356655675154372416142853980116992539147471476392154689214113982233317054"],["24851918866114019992981259725695509075336862487592878346413133633467561037308","18303885120775564203568863246649849437054092013079933982096468183004493444433"],["7387994143834552196831866200480191987899852451082129144237414753487765225851","20787744312664050728328295666137733824788006850522035633081642379162614812228"],["11602788782774796929438526442041504873649197111445152878653779461733309896082","5760708425360970030171376634638951220114552127830814776500557326856306917490"],["10853920390067103711046081951373319119294359573306044044456741678610827466041","12120567396224653648703445427823325965325998916595852923658067745803124719319"],["10294141365768444932222622297013721965032329263003438437734343034952344487641","25528939465301713822487912280941163705568893267469616115131359204403011173771"],["1852993797686286658669296143114589500212872827465794304328040461953444038574","6783218543067808219736809834091166198214409374729453097089345355437469877283"],["23157334388627688736813788989193791847549927024805804328336840456730737143785","6187115278379739253390656459596706964991962716043442368835857860551806132908"],["5972577963748773840992875540336123477404426984091301876743396835607629537486","14953262579699696750777185883891258999567672071318356334063941532856605587811"],["23525114625107015015243966962897540421419690517529217225741619498560693256358","19466998041432575776391949422273507360875565466429068440951866545867050281413"],["9765866666288079321572352752362625196027635861580875685004192505951232193259","13505618906318896887258964062227470548638832618589785713270001476511451683283"],["8234992479451250762770188790638698630739543888437103241467939713584635583210","19012098288427079016314257384225314623484334600089953179366553666766815779313"],["23228566593855595221925631459679944738777790391593455439665831501172230078665","23047709756867399519069157025927568027204299804474676522220193525104523397082"],["12121241060260928056070324972578094820421296125111703623002284393707690499469","15848648442010841057088762673924095696062254809621962583099789540277706508492"],["7376352347262240752479626395264714061373477448680672548950621864150204225577","21602014591961331973345070827060704580508934838811694852619988376851122500296"],["21013253202668413249546444931744736138104668664664233079787568080825119365478","13999667581144813192953864351806923311311770408482017327790795843584817959365"],["27854236659797891892223567441293060203605672376645943176785169211861086757729","14529303941250942230959398363655567101089176808104570863259283071930933573905"],["14140115457129994758244440194725390174503831047176975537132385808796591314992","7557952197479066654314482618410102613426793374009618408151266702463637646567"],["26855878100307602144171471774041225768429041452208220346746167961549953043981","12181603621717583099478745681395843564262148086410041247195845158345416186130"],["5645006139849866544740392962896312910001857808938114563445428162495508756439","22958107237168111230371101224808784668312870244285531444632402087903208582247"],["9252576849603082738787961460413122540416869910432756112530803980435901401617","7995192293348076627481848875577431884586402251252318645630643457318971492419"],["26293584249693772162118298036640089794523864508815747155777713502768009216360","2203483737426538004850437791126534929404622111179452015212472284153342619519"],["12191181443035484884522621327504008410444560166923857396262785027938576916188","23796911209503705464899707694605815739498271627722592036320018443522055208398"],["3719497245232898341094346270367643047777444984318536813153524749434657598666","28391864983865168342544164627587550044745706698827431551533335005610022564672"],["16764865906227467635002667046633823936360229473670831953812568867726589801492","22819583227733384778294156877971267168532671499241135342404914010751251856808"],["14104462772577396899371181273294748105756609448806034026000277297112569699955","18062112405729804246464333240093319107627510167148428227127915250436676126898"],["248961670623239106740980127634235637517182195840539464225340373399493406466","7484711493587168249653797472463510598906922183512124639057310723458776899517"],["16324656210641932768911528384874654990903594418372564685479709145194616787122","22272295240735333752745587108366077373486513564000740045277028937526483927813"],["23411614070512076435385101319834120432010604856086615845119152517233175187052","6175961103006152955259304263114153444230164292278662879009892472268948932859"],["22198708552258196866978666105109833148756588813241530954562521231592426469496","6900223731437729041606534680222275951862672124644918195293104467637421878042"],["19266083888532666223781950629238769381983011004484908716678589122969949450843","1156242613243783259391277691764306166714651092895745551943293870607135291047"],["21365556599796648590290133918729301421632806038311024401506206438578861478550","12241060956111874607328989988078175525807093741715958791894883719543797092607"],["20498247028263760492329396565868595229437199239640395979878702799836394005517","5996920973751768630351481718183646271377736496887729127152602035879664490960"],["10134007041073970657537420777467692812899072864152553106167026428642424495116","16439175841807524485755150941490890526441592919787781976701653988717002648647"],["27039839990238145308255048920088454778491110166790169563048483856134068134370","25361714014204167800252085358997404010039768063204363097656206473270323412076"],["27150182089140630445719762701918680457001939203537465418375618614222874651920","27850520439943073802129700725699568381545986827734567487047569753837461327707"],["5342007434015790893006644950972691321245791844857949846222189110769950096001","16013257426510337529094164599700765386741653766630649970933985645686677748339"],["15103462568551320802110002558211091018967596795876512357456637810266340929167","7536119174151725171544163113408389286060699738544281505372375045601411858833"],["10749541868576803767186173942340597693232758577110897786287741203996067366555","1850259087467039690325295488661109248870427945879672550159919980118970283199"],["6983958325265572925523939205932608105610763785711808337941883532072669962510","13167291821981269089560516377854037531370307740051687963041106712971511638069"],["17591034635149953497474146463558855932468861122544922640045095595334489752022","15301157005917063705669513659544586120537595618167071695191095385091782005432"],["14319115897830173522679010426877152940995866580608045464174123617052519539870","8050818245555989276301824956733104996923119365720471008702154076767705592554"],["9229142734934336893975497818511094485142674121333846844933790105265294877725","20589953940886361572670479812764311282398902575572725678322751246417156457555"],["8690909238246657554263340090072797102903890219303709714060300675463374970212","1151669200114200161780063253134884946620034546887271543317987446461656495425"],["7025844390240815442115107422087003154946883764506269467570746949791090797563","14832102745103701758890737588647167266476428423787055955214278693992576649112"],["527490873680674831129705892381012603993544129717102670494397304317339477950","6143550921884945091402961856308867988559260977187427214755724248562373110668"],["15211417859584825687745032023435672708101287886471143215958667105972481269478","13559692149766902819688275339155134264739008969872619123517835077906502722344"],["23868788605905825202010601282738243969591529514137852235552038158201890592346","10658154529140934082165801567648245562551908937100348259992905822504305796878"],["5355604898419344020603109290329980342421131181498404961708590232077485734713","23986161340912482879170189641864309548005920838403465352477622310677281567821"],["25431169166681084808059793503917973536535238271516227667087207955143607806667","11120852666905063158881893352392375988087820694725469108856606908789828836869"],["1014604634572087905862386247615544559406388989611781579972617743180172852104","1021207441569065977050704095414101983883802686330574780657297268991744621379"],["17141128366435043856495489793639682927241691763867097930213589304117669785048","16777898720481779108084048807982887687379881513829802153717605169237384023550"],["25823099690937875605819086745507113325223445384445539827289143769325867700550","11616032517451902964973423498326048998015872131569657645926295747484452542725"],["15129289835753643504213085271358866354155888181029352834197756901475600205355","8316782341544040084809243051532504179957683296888869773504918014328114995425"],["9210363776134537838587616420532260824178717845872157658954756060745438719313","22309292998779719627041312705916035714572974610294260749208436716700402896322"],["5701120808986069644058383043682727402739089035418657489908235147389226383954","24856398545338144959851562122250156658324034997660640489268638900515277860013"],["11571064214695193610507375585410019134892451517610830839577463008861928359235","20519249487205288459942833631289645879209234388554369654078979814606273996390"],["18211249216520337568800094931053843618651978607330428876406125300797790122256","7226071311881168622630901472169909979440162928854866347818775844072421926280"],["20033325284885444617697573616643344236206004642547885844663079259849089409103","10577793975741267714008173880062670381475339219523840713863924248287140699306"],["5591863345313714395997249909726403081165995015368223918546955317258921326427","27882070382526521135744608595516149726236165018031326737189618325489487121169"],["16808159563051032500746372274260024854644695853876536498977595021249755079624","22788915914632243407533750202037452454277559562818699101834157594001394969296"],["284598343397179377456970020996315426558793699951432568351532588126400270824","16043107079211071196905626883635159606624539541241812825294979242709412488251"],["20136040845322178849104678679906885499969608795690639822006562872783295989395","8727099712987431127786908843961404284634770124128457589821789131699584981925"],["10096631216817466137410027368571494495669572430545525904925369454931544677437","9331988033518261989432562929704347487859296884564368900031779308776723637388"],["12621159973482298398840177835043564318541617096885595173758267160155103865297","26910037415887361486773553759815111262766165784917705776251190564884775740466"],["15287170076373728396781109950011644797218581429819997916786021409266412128608","10618165605216252739063769320978316192292060212354345872753769175930996029505"],["3351188043247026906231423744713854566871199008402902326656001490693692558636","14480065901905847937755879063199924658652356050070438225868120887080496239758"],["8242171965705724167602141306011847749545439971693595483939468981420130409921","20042930767584181960431559808570803628382002065153154146815221193200291707102"],["5003662365463243752559588461346761073615071188936794261401935775170301156141","22281810357174244825101293815188051321001813734943762131346114895882614525231"],["1987019260719286631975526320639793024984474444835834996757922975235894167416","13621803217792372980261621786412674056381699680219171139593464532453145553224"],["16985514687650680376893307577941116055474458676016382446244291674502292769739","27908626119133058685021621834410333352619772091944180267548736941312801156988"],["18767435328088523492227441203671969225035127654793797819860292965372987916825","3203673136106924652271261155674099072140122335504930881524779863994304468040"],["17054130388760788925954213255618906141598407204899399655782943306003605756213","25522692685691234577233479588405334592048057482175552420695639243424287125380"],["26950784608953596435896659784107859264302821055967817646714242686454694618805","12279274259409955008920230236816903205941950711448592339311142949526323022172"],["4853219018784557855499746407951918535402450025341860486080029678212025236154","21288843918585723028421701772159791622108317625032710879445376479361095917923"],["7681926868974738970536038761957626170113956840331760752350277673007520513277","5158410648994142174047722437611124630533238209771154338896462505531158880758"],["6345178382023568784293208153855634522159202180795695445270839214693539456568","15547665098143326185036780731204941855729562866333820105928575817065135591135"],["1125716352719665080570337062442140441333970349487883399943807352013899081977","25409430534517048893600198177462016277994414150404778682326273569664194879372"],["1729104995123406464241066749276987631315486271533084789032714219282715736345","5223341899149588772031841307399898272668532331158924966415099687166793523629"],["22808613984232270816440048665914424134312071776953501342710553416238234556608","16836595833699473840438684865096735526711123057927716014830681785907311520944"],["3658988870790423310736249495276821563754849373944913033221115801306657170409","546828295467498621711644662927510115620169773736058173637046896670546475468"],["23425629213752780918661876927595571955646135096361400589991657566870157680748","6273444543727085213918982138137322284921880547507818288712256328290387441822"],["23686678967744659886729412293685817190656378709149704672836372814854598167540","25231978821163403964329701732202111704243743372181947261646968754661134344359"],["20126872287930908372795018033898168696592609135946698347030027640518632208382","12051885284563053646191945225285675190540716561925925720544993336261613279393"],["5350532939952143510532072100415911449529821199665336432671390563603609471113","10563601366756322143919890237541399352463375176723009243225590113505804782935"],["16823011187801796962963813387693415431188765978262943483161231989819404912474","26206323677638165929846478717891208687354280339068194601150608575921495276117"],["20053028148978634183624975661404904934070076106665123277396690842958991644344","5013321333873421744178288903882721629685458789713206042393870771324431935148"],["16794939141985501356766198103482266024721769064839518257775428654390931287443","6297824295179238737206739304349773453779493786756476454129821145042996907535"],["24666336496785188931071866550957313469482570724284952106952666321164624307848","10274425274850557223371382612256384144361128780613719804871903841110183828020"],["1774172992369620055597524651690701007456467886067918575141591479089537005529","12950494396841285806363670975883013081715014864097715205067154271333554057503"],["8438765078380918922682345310647897967190815018376079985204991703987534395160","26088865439013458844109730306367108996619460374724979775961252906841425502989"],["19425492882059035173524432190821959640104201415312199934046046173794092583432","7109076824513007580814790348991716419798755693907075494869791056875180105870"],["23040548570034111496764841143835660137992889972747956781467761927063903044886","11851841364593062853554885319748239270709004851138407149976405080640137011911"],["19530817165400443280015744541135344275435229025476845971088462902541894887498","23437387005847771454299174604223625599287161240188360474723155767407593845964"],["15398307489883787483327489299712472942219129340685751710423458621213418861745","15290762836083706682490017200796046711194689097962233381499135439145165987896"],["1884028552629006406580891720718151885244019909248504609977711804194333392343","1358170285184699172934174838124566318820587641815011615955417162382082341788"],["4343951293298462346331316153158320105213750805787966857660793610593992966615","842590721386348822126282851890236602884820311862399953609464988660184368124"],["28765622731004897551773123725856440977482423476977777609806566526617658869360","27347592535962400995890884456454693815018946461939204395084319335394164075558"],["15922402002900420872958208080180995360619098517312688242469502926263812471216","6347023384893228760061721043318746914954013111278018837037728595043305181053"],["26109700952518886896255058899013739134082355068557918748751016553438302482574","21528484214097620544002376583396438961437241702035578533735218041698198943947"],["11913971882960767832920776316244965814503129629050873542639374558165308257450","2273395126081757909123111207750087357377901035099621740157078161256361551283"],["13652724993326079359370599852860228034656551845141906048904687815354640599875","5762040450811566314906981342787551327922710463425666706492045494837931118988"],["26460928603611411491966557571877531951499140622182386342421572853851578179455","25819323949599884764333603876583813655221437351677841061853000083435433803298"],["26423835882733247222750426187933941631214491096092295555539232988036332644096","21211790058588507313958808902577015669988623436849303089378419296541825247887"],["8415948875757651624709833766112895264392903253220313357868251633811686049174","27735459960981168977320152925942398357126578848011014256080743539353800261478"],["27970853356310467601693755147658937834741783139489926562518730193884872449880","19710774424303834675031404904119969862344561159354281284184214334624799108562"],["13159920665133495602621244148272232104728622147838274873320626809390983650012","8418043565873851751453975734560595659497562021068059536336152757003044032208"],["10739982267354318832741777647760870293944447666934118617395736812080928526323","13006391578496755403150489525752798838211881072119408144105817377536932524774"],["7939315200383609539066040007907527561395799284399227214631900713117992144237","24193666076369334725192736990373218660578462175326935594025150894220943552977"],["16123845434460568091595255916921283811805486560306279101847837730874613026902","3201147798121027327927188363318462447968637866444268495647173461436073576122"],["4093514864723772795525113419889266662615610306982947593659347750772063949173","27813333551531566416943531518579222269803107665295675311593100353656677682527"],["17198780679703765034583919502815533045309352791648189229560074673325292513401","2208373451704889390157186760465089983758115771165281622411744419704621570925"],["28559792895954380333830968560999858486585293151343208340369195796546977557635","6711996450176453229538296680275419601053191186671062110649894457652109045917"],["5688404536477115475126347543535067126309084096530809104212662355329973223327","12415719340461580190621952186848414500951607634644195690520083499545285054596"],["194081025200038700121590752666222473428382660472173255524022918244398315413","25043642153775173859988384491068421557409721750880228217892271318398635329213"],["19382351059597410190501612033605258372670349873891556481327301343194102791402","1602764008122581215143027660756105494000526552443804355370734026305244668128"],["12323351207724016220809598030106637230484763943284738585603919973917452663689","24870406449120702449676480947276248727394007613366138469687235406116334652172"],["11684419196727019645094358340687714621058252101551460674688510170289471644905","26019400219766845888260454388860212912789503588404089100049158352587048522824"],["27454529822051419383235149635396883153007622016542145031429224280011714798898","4070803900722634249996230790965336127888287698877615235020931981816387353000"],["21802215778329990667364209071127096162377147253921339999895022019447725501542","27145969160752496210128778131987747885938538630568467716899682728921076766544"],["3804502623235604789403613196543845764579041203383475106536483811280043888773","6052896455165517667153007058135343802884256021842920308142300685103553430827"],["1886293467353280765784335260634359876509639766336004804141342440793114617349","7791607747282795792312122743507847119419065645218690665624440257336823094718"],["289447008718077420599547172629884546763470800796595396383848910696202722897","27278041218500236519648460486450312231065685467133116427440718519274406367347"],["4229412305244173693219524809602560201595149847386346862020096516771996206425","18579542230615470429954857873049306803294463370432318239200048335245054245453"],["24956043764337614982397945867412615687490702364213331001198004311594228143318","7306827368870810309852070962009429165114459602766036077267068514296782552852"],["20499003462757441084763658046378385134735120502077324422679264832035034147776","17585353081397665086866505800527330441490740378371642245164112648789578976817"],["474666155403974409877812313922464061291122192035015860065246201053772881646","11237681646707667885133313957941723374105401740801331617952818623397213587443"],["8820973471120270846832292027772394905073642879611022100752830072606390649189","23568753138460529931191046944733485582282290228457516303531194896202314794024"],["24776017494782366748753083437481668190736381007891292765274295968555235653482","5024894175044775100473513115001191230485879040517232673216243390779013267514"],["17982051757819049568836103708817012860219844479589154591084304130955978589289","9221691316050456716542990894917910285774512417896113497101687946459827044537"],["25262708397790582058281254313738264946508915186677386736598775460303095145593","12974550102538733198943249153587685562051604278560577631606266376653477439842"],["9062203935900280771025660884338805965869879111998736751005790866630371720513","16005987126053740829585016622645435899221214888095510141149601886585891771266"],["972723492384563412701239692354553455027433842857290597257061390943475791036","15815675609837828025466555132004883647191122532981541885930355841977762487293"],["20858405379028140495629506016383006510616891717215062336083337699673879209270","3436122070083056700251344244614715820844068082521207958433061316253003147381"],["17225611444734407751760130937393694186100579160388265624609346157879292519263","1905675019488971688826058185205476152873119776373698000778442643027951056362"],["6137896157489290789142986969977397616762587052974753351149889372038425815518","5691519374660777102950633800483779588320187055690301614841738471575148854124"],["19466637640473033984764787376421706957752627158290489138974794946009113194230","8331352345053946276700757283533243599226954523919401629788313573411916133057"],["3205987896025067345408726620103953712858342334983051889472175138127594493720","10120577598625659939190357501501587703928255496845217348637235398073448846530"],["20143253470428957867954668644466555175284094903694721795589590852429947868016","15925895095138265871372084387444761514288727115137329439629619322888342359586"],["22302940319565660321428218182779483548828868618448840331253764815848833610490","14604085489425524124003637138728876276898238907335569594492033517863162606067"],["12699114055682888176680877992619096733804833716475301169710622404302574895186","2000670741883228695748838567345854594147037516901869821001708738044921822061"],["27110661536232087173653023022983612249068629256871759842221472562066319220714","10432820286380244559728867233773359430869350102570002329866256479951305094189"],["748613926757159438031961121510247690904063484442295171657133682646644210937","27125350341185722964529894689860718462585867566146238869283811978563422797078"],["15539896325553089326451369103482625976139153455974703490934902478533646916095","13226016283932914452489506567851211921247807462674761302841127670042473928813"],["21563804460792013260721246802701361010553084053844571103533779951206539013613","7547880266392843491047325763474350681294117292518620513950086711169008707619"],["21783686550006703544648499038248843719407999814114062696566621759711767264197","24967133900316520674479701500269185525891899642236821549056476657368866090366"],["13127418619449902625692559900848081217879163039419237716974906228803837858022","10030819963217928785831974480201087656535366686777712498812437859662084420256"],["21868447258207836740023248640497892931409885186410232791690913178120363640809","2957544697062750939157718080157536701202559162576826573405627471200933984084"],["1397507610385874561715483557873062722178702801493571497875315803779381846001","10129366895590561722229419004404115301063871051633171032695142971776434423918"],["13197584991499186445231113334938087351919812717409180786066144777915380393599","17981306868244868547102083573425673160809130968424585355893386745731780958932"],["7180072360995282490809813436453415119056613163081671515556026357342257368817","2092522400286167592689014636890790277801971066923584939804950562979838020579"],["18683524182318750211246850493513834059058728616280978478805020443374858889229","27491299724345426265584414352419976997801138122595624243479208619535141174527"],["6956364298711504108836325889287250054228679613525677377699590104553328790398","5934218827631076673210621075488203404095233717245356267948068526510129560273"],["18639156790616778245970326380050695272194481714713382084231082983301063142349","24603996614899647413470664834446409611292386780322925167144130399156240005814"],["26761461612720548103717445960022909778457326038595904399521107217554324052065","20235937259176510497801403396450426534947824875084957862949707604026042695229"],["21219842675118054074111548130178307652198998886771652904977238735981577087993","1777311582831223027190410490567639093622627787843561679005887035251521299531"],["25739100973322083841885995075753542297230373988839249095987109246412084861621","4242667039244593466901252702323412099072417465023056419101805088923533420036"],["23340342376710712759114588582176097216400402619263782462779025026083811719129","4283497241934608956748012652632366826744581897005425482262818888157585667315"],["18916785815204276785824016915769525451796439142116887930540998206596250760037","17047387145783954605198116136506986425953859738839918245083238606186439298298"],["757831789934873989662614703212090633216781273727332045108505933627607763","11766192493049794662764642427138790320422601175914619289709096697024646399093"],["16640110317839281340590147774331568936615161697451733117726211150492535675029","20477921931177628246639281166072376382799047802561220137740976804571449166577"],["19022040722461599217274044625456983469301417839328641247044656567651865563038","11659217550233793299511238618023820229544286181839599349729537130786597187238"],["5640549186392660927233365763146087511448828088225059379204175118533479700708","25837478135360455309302408939711775716330588624364995464105794297792715407263"],["3937080163674661001922455705758714006208188896047178103112295514497497127","27232330995416782555695863970018616151184389783019184911169597887610535541396"],["19872329176680667334769182645903263653515043469565265526728833708138206287521","15716910659572505098407307109118612656059979183972595456534613848007205639282"],["13129624222377239581435330133565444560947722097970716631205687062211437776356","3089692042368635113998012855800499387032942070307611682605829866677759341701"],["6086973352975033813545145670575055907373460660611691315433109227236700626029","22157164733395371655454881616193118591742649753376015683039191314269065940040"],["17394965953395473391654632069468055768217123150894140899650237152326226053303","23365736132880939459327323503099072407282313005164252863779638086405033913578"],["27801209482252385732592847038469103835614753507330147233405362932867636194960","12195733713596148669871855614151432405115116980954567449861404410877920377237"],["2520692337267814283363474624758857033985550353541876401169209527974656985835","14129479375998405736679839659265502692662506639767095724608320197136625970047"],["5173669262282890879018858488827719549473409009054347605215601868532791122148","28410160608734491308582557481764108003301773486075177180401390750605355654210"],["26407450750090925720854568743139651290378749605160922533950715272953495946204","759376529671704183074702055669566729606866523389433036868090811701923958490"],["11086805473334881277085152270032555795392972388370091185284206250779819728808","11722957489613486405496602349811857467965135293945415164123767513977965182062"],["6525732284057065063562256960940255521491073941546906061478911756078889610139","12693866133563675091753664602909039788595940329356935485295440416719734324977"],["253579110487118579201375834089880544181643078944358472096729505729870273536","23031310806999701743317824109384377239746618606184410854095358674161419256336"],["25915581563331710803432508163919554354724688484709000152426767203643600615719","13537382580604359690668972817372968156372095574506870974080284940703610209119"],["27017900345719468765939704214264769106312102765097615862543826619023314131558","896159802252115799023512070077618222233483554187825881866770557608575208012"],["23547663328960670165166361836727640129714417458787753471407074225322296903483","1937478504151436341609460478879065223302571933978379628044007044773335929723"],["9438071630649140360004747800735368180400892630541881179251524679967273929352","20440594521677651723398076623468597300019074036754785498905690128150530448816"],["15340082243693143300972271373748120603776055281128656020221582981579088679682","13798304917130105885946963271332111303300727108725257089097259129026771327634"],["970571020919780219453521481469610994951201846178447892718100870369973324367","14347579023468045878640777262905032914422283428596647231633887719214569529653"],["25093550525033749201390944769048736058909851117583743531398857852725376087400","10994116213833348638821296452360807919131022411005212103515567800440200025856"],["21540098150891002509964718055786079594594600951788635802025425100773132441824","19516915739782496105961054847256696719545498270084677576897338411981617931568"],["26902439031091024468600543409468724270646432057183655078806377958477738572418","16920728143271654563900607664215658002248419969423354674850712915592305692166"],["5212304379235444630683521431400888039965659086459624098790277728311974090004","24974797176733677186221412574875377173902495883440477720528313410216942953109"],["28206450704671454819654485885875165405940699324010964155891317344944438602806","20923677704450812412343188388780790064722303591021663827713680183118659736096"],["16617308987871565049775655951193867875128656242178689115998098687861587636694","15596002591828315682477247350987634804522564251081729699082872320638307790991"],["12074848784607561480266787747820715131248178798060612395502720276063149065930","3571276180811625075210443255801751445750238789478886138119856977217928693349"],["9409398232475881071297410452358673702500046184485891589722332490375022353071","12125377262674125339346836053683941709020716274949205790804848155099814801624"],["15758525652210668483588471687932722258515057224804860655484006831675456407859","11665319313531016215617902953768987027226304102123205213918849971449734013545"],["17543608094198008453407250299434108319461113531937819326514183544228835945023","10563068047669501009168591462705904391558203693578601168701662111953750098654"],["7358384014749696926601785503397073202814268678074407027675413041942955818978","19230042201412142961554432903484923694911630889177166727901240495175128920348"],["4374023789807755425152770859475576425586042823869592367223124717198795706291","27430116655558397873340877111997530039220077979603456856483272754598705131843"],["20111494491207299443738074902426726390735356006175988386557159966883308112857","799630451790177434494939656616968686165084740658540799783392664834368503072"],["25011415555249619818146264730762072813011103112504988094012065848118027242261","37832789693911944844333358356570646799901747266270115626661767360105282452"],["9378442744881117237891328916645191798675026525897571553257316270124116093362","21599777811975968431542160664299856221364424827521213343480830539341575482517"],["4621882320522698866863195293601963766254667195079355755640678441791761392220","7783199387463832112700113674327955793085483403975597374794561368204940703678"],["2642520376676996872695554683901623407514836833464404373430886224499335836437","18486027829155123874793739242878427851353639968164211707902534387043395614988"],["24701155101950246009448459173654102472925810895580186359184674428431353591928","21428667808333257318880932830935145343372566326524563871943576916268036682703"],["10774911325601948503649122555212646449496238112364738097076849789822930096091","25024447384589552569504330790799954083427551524210469984480200722318080747126"],["18245815611183980647391691582107691166619298410988377069756048808888921813857","13870096799416048607098029730808730588230939176375067123261978551875064890778"],["1185666103582028098398974543807886443109782726024573367445988823171187018232","20144002208449410809953513606662142327414341762133252689241555037553416928108"],["21563715398683265349166397442097470030690971098345145665085970003760092740099","28567399640251660524690267599601825921061621033991480561365627412174883023176"],["8159816460864078395445552084036997395514620958110810830699561628479126505070","3037123356253761245588513305420958926884766850967681079750812388517625420002"],["21943061165456902502001787359695798433263541520809101978415865693272168551831","7427105794658228791095983958111235139667528072505364973784448195722856943844"],["1195317251306185768350879617819442734314487741222212180600521228594057338782","20129291804365846067404361514751644372638243562438542202608498901383540822425"],["364538104447627225378885609029624243448137401150819389536054058577409692462","12289891481203076567716211434971899047601088333043520263039142974358325045946"],["25860764239119274906885204564793640151172838542264068356906878365422481671000","19748686547937597792246925675994878381580751511962205420515705061392957961509"],["28620263098163248395298906439717180528015755729622359473405927510111146302980","12661582657488676884251923321946214126263865792297716523972596074210835669262"],["7307655496439037229995207393710351705050588298832103906332174136473170767166","22329811724219423089462650062231238684471296769454810449043090595823647723314"],["6061961676281959850971325501481234274987878356669910032163504181516441400154","14077561345906422867478864824978270047663972228933274290573021894771848632638"],["19906264799100667855235698707974612028163478704669682682870207388981438587339","19981253295427189246352824831059597864834073600578554992092027302457633475852"],["25638832968292721366989326760163381876827483441806810956042103147144166139714","1767662651475007036263323335058283123166101595286624214119192138619818286635"],["14717913316491737987826566892644160436860306826377126285990618270026936586345","8135167634019036257789784997493310528138977769793414888040671135064098172026"],["14816517691399049444636789612220840649153481537862174410083744346580290390078","886114003987665294559288673460325935063379526387075772310004819945734517438"],["3500123491531089076696973166104315021398603710826997770818685775010512847484","19103756114228582624717471070121775902558030152670222614471438721960423064088"],["16211714199790384306510188320496887724431891478105059290926132584854485974351","2285132452051170813345488271341577461223478361926154652620543936101927570297"],["5996098112020336372074899693639125702173169382848575500819690186695353960175","11186424826622918451850576349168888609682033009701828297030904275869730551826"],["10086345729523764661601292245913391219870001617882757626409542263244313372420","8974314126831747404923885736859302740087258977659360560528568596430296362768"],["8675671207710612326501630795047757009860497589289409998553114422961789396169","19417794890063092071859180556547484271155790740645802486273025183874761948480"],["23504602546698126674249800931649773997583971878094375990072143101439440079817","16882889053379807319011479972385417309407903381675649951443019239502439336513"],["9572660318090499325426673220639924491696063350975286775002390031278719090633","24670752622869417241451688292574630386069536514003658735510443016514128623817"],["7165100813371810759768214672847583191034072323004575433425145582525419872711","14475383118659510398546500813916670921345949622214766727021873826959941528862"],["11375855420726540836741536773896403527720272429231179900964913666244098195847","25201814956491780297268530117503863266387006824123046340901744033128917114847"],["10006852523968556897233010828407276810989264866340777781084137739151766816101","6236689402534346042423298208365983274563679332809395590174879664228461268517"],["25352590653778136308726759009307450330755989949132589838069653488118392325135","27230901678433991230135067518189119783156456004837632593789431149133089069852"],["12712901162697482677850791632116984926580047697034430402163078248050597084606","589002096554407746385281349320931660351858548530893223724931591262991446705"],["17029026008093586468293606878061741171506590070021587700004056230030960993484","2506954849220832384865174477442523826597567902733141328651056998770982816579"],["15412988535410935684342453661516848935561482268981268788074434278573829298384","17116886019093001922393835036770091310708358345933514940250837922193694868724"],["8070778097045726928702438081608068329590878675256999095400924988119363510280","22735313454401687284144071718709530015019366550043883136221681640931526024171"],["26500991603732111105975284101933643313818482289041280690086980031393143156915","11379071519245555579176407977663106681473848978374471793235836598943674473404"],["23724331494842305764249426244100715999793225511452974354954308177928265964070","20591131375223100563927664681172275470865746719855281080225029851522356838874"],["3899840142222946257371317424387895530731981721367857417092032050383693273750","24605274246901812285337196779063358028413509688604768504863088865074060229627"],["10059886723227220677232012307174552834468383045238950527508827787554503619016","18526672612981625944993775928569682126573608478660505317076945386105956764578"],["24900747560517669457939961734637779839409320059323420894465242996839927295207","22435325746743230696724454368171504311967424600764630168043222197287564175609"],["1058876893685714288324707188700822133862277004818864335906903811070832794594","9254958985047100759264588689936448188402029974642538764417832267113949303382"],["5894334928342218747805475393244905164474219905042784317559677116590303232219","27867019239310343754714724473206856364477264855499603452146361041409310886324"],["21719511138920292124065287995271061857973973270624343845713657750491777553434","8171173332107378199696176081595442677212122476838623986747895034040038000406"],["4259098058890281280817032412645794223260343887457626636469598461630319470157","18555475008130107303238381225936725773608886542424926278192683043335455036092"],["809667402176176572611951029713525335101014567792122025425761900226138092804","18763272056261046936197436575048568033419341267097517057456677377959426287505"],["8493247159585322114132638106090744007028005545938167360106285319420384558659","23675226946851457069191347027607292379564109058697866305753855367243293620724"],["567502482718262837469869924128747054513753831062335387849120656128818766487","25327619284790569707931376268479466399106666237550935377002316976657435162247"],["4730735503010410393929474039612539869200865017857327432858375744298486198035","17330860071312057736730795210291089028279136319731971725053693143695915107551"],["4717093279193934372925808516472191680393142499894018036214193999862667699235","26916209117728591406363206291046421039267025161466459867419513115560187115692"],["13962360705053786842595931166444984629493019043297635992124128200259053143199","23605905744192769598527387752678323609360698398586851839406142311878693132437"],["8180901960510169318087890789929633982064553813667409418623282120857446620916","17910596719461308508182773346591155268383771005212772676513508018133735934831"],["21530036066225145915701886288484544542078693342404280424735445949475800459150","9186323613645317184453378549913796669284429384276078772740811813356129052215"],["20075353908458213539289035586017644722668403790537299380832323420993270503867","14143919434899504802240461012678497512944313331746383873749849173187897197271"],["16408040511474047779196089421857946204988840251706220336017121708542857558596","24090027007344089195357117546111488859189373069040920039473693307158190999168"],["1892642494309824329772720164317211702338039000809217022972711947513833291290","12987003496286538613751215180877576790717003217840329057279480717567577956797"],["28318440611166438325974210380753445183815628053162126373130455048287038128351","17928679373702804937001773974832143100116174460850642430327593816137460229889"],["4994515138618001354686551311954587109138412828737647372917371828328285366535","2542524552361550041180045759470666816883770329407450325565982270806087239406"],["23488758753982376161357191009356459669953928479701723995502463421791794092883","5421071109199947972713222899165192931146406646482380361778964958620726537821"],["19973586088367896594806942782715157143856601782514875125612832022668921285646","19903902343849109494012639656541271380107442065196158576814195558480801217853"],["4934736128832202548359794210495174463670519318943410836352933297460823317417","2347291031640335000038819197705375674735735954031318676712763656282994295120"],["1889014019855752003181864298832415904415036287133422515540986406554708763345","23171832392644733414483761889927268915094215407861276631633492428122871844046"],["17187367849206084539709623515884049179870181591895801371234784614458343505495","13231816249931912942155882868265012666231772681418019000495657656184085324676"],["19326187053743230982881773755166786779956735586143312314368332504269681701926","22715474117544338728100312601868964647462075827815573371459732375080831274964"],["2013785789721158711990241083384189669195778764905949421239119687388970195836","1540594066219252418788734603396621619346859608414281868952884575815489008928"],["17889890707615799172892537836193814873301034618139613839816047755249831320480","26976043341426373965101260083205114040069692751898205216826139259021636518446"],["3955450428766501982196857404574044605278739658021131208066213749331861691499","6067197005033409389589697985532892087663849558768475299982616078211294153679"],["9115810080456277847671395486775546561136937060177172302315170730806577515547","340113482129570076178970994017794423965633835791794761661592797209708731243"],["6721097626856898922762580628690320087965690557413328424850756847693131234452","20592522151063396465281106695556198581669616056700376957502567922490661138742"],["5962401893191185584525879653551006646530854736471243324764269483485341081472","8864927668351565580036044820591927862394116466166648867226716341327010290409"],["7442944063304411872271063176911903736406757835130031831255277838876217675377","18848243489372743629047453653350099735727666419549939208033768377189103845840"],["7938731804282095721526399071669380817218707601667487483268377216790176522288","11064464151313194596283895016177112250055546778502952633777269597270777282689"],["28661706761334069099469455703369969859899655525752331939698518106327905618882","9028217377417039832194272917216897178640903919466951702798516583006246849324"],["11604282980551651644710015766674190534106535998692933543790638584488734794883","28771390020155556735327782432392302580971649147697829054055740358116423016146"],["2344930424231617243141309745015224972336235788030323221056053083815230208632","16134906966967964270210001750132416818183072901621400069133505150117940588547"],["18304347755052083296512494320854073708549920683023015964125363692117435823104","23986022619166875816248590374047349960469327482992970544098383630802929223953"],["7937608925116546438697810394769708067016825156393285690840187164223456301576","23278923447551498695145214778811819673586693022598288706136475514898680460556"],["28263552330347828673993267371927902894539039672923450596736755122575662448271","25402927702390316342551878564487853363387719606584824972347245380531055058138"],["15123375780749356678604399355007755789724976221895115567081407743640004277798","15851065469181757286643904408025924845145783956533615847868086363075140743635"],["6875328162003096614067023882066712777715243285781082716138583746324878786107","12574129792397302464932785195473093152796757245056784626693477694583841670920"],["7646129786429056624285937593960951074436483702927116811271294374494907588282","11819707499331008617829123146026557768633642820196721032008899176434096733128"],["16067335574489732111812160468654898858625763070799931976684754067847734392205","2789060842830880654801215079862440163119189482786840670815041925439050797379"],["22841709154635057878435780193333200165763177803942573467512131352593330607501","16025136342391339933183578019185890926469794524223284204618512034136880863213"],["17575187427807223323731286660854594224391229821803704708283346402733760031251","18511533663339158735555998966492534118916641098717549918121380929886546378259"],["2521645913092782583688075262092317338824132718250650069920436136432343958765","23910339101857988293967288389976371344227641162887803460338269412848990527602"],["8222982668621184954683141633730350741466308370024469758300139673057913372353","15434936461528019843547718117633149951265638523073388867379858837528006210312"],["21327192314788227992156819840443629831573987414019488017794853721362508704340","8361148763452058556135629102574932627829418428736913924229694401644119670124"],["7989672588199546997740809207636466979097571121576899445303532019706712028252","9896340858402805143433150574091336406490157497847790757735253056555741882596"],["17072316640991937107678104564596028222378554109394177164853331189439248016571","19409503634505772771091572901454891369522350755407364442973597952860985798974"],["23023076447884315020483211936202134578147787621452098024929963737403309165399","21444607155442979736692244781414750844994554269567365728307185760536794845073"],["21176576357883640009734247687637831581328651020903911892016046314080989773569","2380892131622942119497361499251895539762692259428769377727216858690344529736"],["13489232098566709186428579018195034519330944353509728282134082800943748130554","9722719650161425049147339896269541353484290057176190504645042748492657230305"],["9605207773181576344665435809695526439877993527910459027905950666225216108451","15079249474310759109888369438233510032620825861985217312927187032792190829140"],["2731214718274302008035913234133273615487125993242754009597051633580798582125","26077967331357076923728689227846284138515623748778822899784960432770955130681"],["26244187158373720395128262429515721181795351287561051899679635662635521148482","23151434803613473102671348331660059893181396716151708830994953034033791228903"],["28640977959261658480421822485805553541645516642849628539833628191261676554692","398233803747319995276799686273246893774495787834371164366104270147053109517"],["15812350372989289462261783556735379734586985971496264694311075040334240677840","6234450988608606377339664922644352444667145711716687665455911522241766852282"],["22872600537224758333606626427120756540414873624080140828907199046322052126946","27436759328333671760440088597581971683225584496256965693070023049971648095479"],["22514109425254807796368594077899078302314839431293733145808134278234999499498","7627625965969898118953493315851692868583638512559572492331468126272959420998"],["14396195857884572070753200250553730095538044691044541142102929110161042471726","22826154387571313985974072107660258434565881268780734017915238408891360493665"],["22008147094942624046357028183718810716924878490359093641262240849321090135512","3413907984473110887330533778143925283737203307366354666900981008231118810518"],["21780796841543280428396717091089099958265327827961460902023366570496255077361","1780644698040044836025797387810578030762993019713916497086341059572744342280"],["26902904716475753000014724044569396255365923955415728477851878098181684514010","24379340654062662327886214339372763075466504231836471999888401234004960379294"],["24200499021857097390580457530429237911339404558881183947926714587807853509627","2793662249065419251160287693934525457530207568975292672441590242330104593014"],["24280473677221110691143953190436995999631439355811556296194862905827593283438","11183478465747414178778515912146377058250798387503029593960180747054898592167"],["16661660800369547098932036180964611449976258384522424697743577256459574717255","24216681540964553508585049008447980951746541612361494068613541252175500359078"],["23466192223203569918947843806620340393961515103273165233063827823970005247960","6153217970165403532196091462631552708644542595017919403275923433748391699989"],["18676097626692657070006638477773580485296537666740452992072859525477221479013","14879545841057393862765427919777745505173868453781278224848618432114004194939"],["649876512155711200427238711014555619380446469563350777685777122663012019339","12558861998107397807140768370093193721931166695142978912963513880723352927348"],["22465264421623081020872670504568927935053351738566340634810755819732804109961","15073004426386695809482789451936318966730304246638391198877592321003635827994"],["14893682246241090723570797352421210881675540584583226599803422146173502470670","11973754773564909027803460823054607392238280184558319035201427147956236586029"],["27325460690314278399189474347560118359290647039511080464461577285218104637820","2602591396348150995402862211908797608479725959761335314637734108647457039656"],["14766532120340196972447383501131761952831693884385551437095387425895282382423","8992295955643526281432523326768917297275170209262909400227582965891902472420"],["5708768853967066813321090958232551999205438360322828822393889038231288369392","17473986749600652095077446368815578346977856986594530399968183916391524085533"],["17556602531232865038661808585003622824822974544704113858386467476963288426069","26829408909099971144475068104466699997136602596784933076045174378834723100257"],["3492692442184535293628455788841876464708141122036956211232492434042761258645","18037402672673053319820329726498318063768429218040295755429889099442479109656"],["8431381618183974362652169118153814541049095538201904324005520141333302406676","6164391167468327727877633112565558219118671234876710490334145275587821648988"],["22166310896665746504398180890288258896063173433510121320258424293350850075325","1303952734748203146419186171856811045783983159537283128235771265210242777225"],["1380903904894151838724813904456680467888150098757235492130987738135106843566","12627899621215792304380954674203580823175887051734689413910276845463827251884"],["5152512490026284646017642902415930874195451082753826456167644964193868430403","1324041248846210416939713801777772509483205331586003313288066464790414921682"],["9201529002949952669866990018670447814625069786095918400906123298668098501283","17171819475167457950084607458756836509272710698872980058799450400346297296577"],["7299265370422475388091879341307361007204801238047906440816486294576014031953","16175170210082045726078515721600552488223143221779715867095584045160785644843"],["16859843480102873784696306612529138634570411463268471064332251750864870193390","7026084934254032494468033933337705270263316135004333045304131479274504167885"],["22956660289225964065506750804216439189647420088006042324496300666980340497844","11811999251979101022783061125065028402449483067800166485887214945584477828000"],["2317684874480425971856391597865562040766713015716857065623211571346754015473","22185525132112680032952855971623817309560922445910608939733173068489759512638"],["5830419056595270317046794513815681022948123018259256585502737505973928287986","4877334797663073516268599374827748886739752524930857677484834965497147164788"],["8157669958748405981384964883973987733900578220802112408409018853768520069942","9373552465785439180223367916961250096829462759719237754033373217109535827184"],["833871655656089605334575722077073539323660406101445399831358002070240841615","11540858420855506566588081185515986826471414180392818624018589489717923138201"],["20719939021516638647998400055535059560465648221537842890320844126964299373809","23535125091335987679004419738222728305690324895951793803188420410633325195963"],["18261608776082038143264439148144241405315456710554697403514123539023610787636","2797522578210215534294574128490620973226490640380000908665995632795468569596"],["24372726798818819675136231778634176577330832727964106958481621092745087624255","23188238759135230649452780813676813091776200702995625931711145799375816137280"],["8744496158461741502554532664745184430341153819567624802174975285762195224556","1698460422637472806699277995150751333368339455574645175575324069887867463590"],["23325234631614529325940764867634555865011993310092423769859154081025064533577","10894290189215677716709678252542566231113227229931380044143247659611530464220"],["14194058573377177988065110738842268700235095138333684690329809466278563304416","19552671856866633673720012266960672241297100899871771975619013732348448233633"],["7463024651120934598075815658577358307103556687612610403963702772751491585552","22485392300738141762754054817338703352909677501917718483916459857188763695705"],["5981755857762435613820913835869373052452602589519448966170751696422252044399","18121385554543582420370195547450400008615077090248230192892874845058433743947"],["25742407708895439128294895240357159152371856584089412418733593190487511467079","9953619075441124536043162997122425627377637685725337891149089212880249461155"],["7724104454013991618257688747158031054714106882058826071054022942851955455519","11031081638423831008603562730375710862622707920704749856229884874331375697593"],["26430120657771564202688074826902966075477519122107633997153553451359282863555","3189544440946621374883802988921878248568541427031856529684215123352679254902"],["18034947672334286023425382901609904896972765220102467294193194011297184396170","23015560875023564091745003019332906251124703791615832105144969149953249626426"],["19360797429879377060640195005793949202188495150821313362511384557847883874552","18315696670711053292590939867403312055787208810476902740529466586898166601039"],["19736122541167598321182034515682514334950231973489554515918347866579025157252","4317099385589338116389104352909048972340435049216030983555395970522811484342"],["10259335395437956355194743864549460691495487556943642681294186817400852410281","648034963851880382060442967227516514553247006733446500285663443406097043679"],["23068113772162765923658530154382355690087041155611916958092032374202452029842","7566566223748532315815512138075740470702502203398434858596468630153016115403"],["2761205480583611546614317161527905242802787811560285875695613584101353436779","7147185416896643635211719964783600129457577803298646418989145073442014483744"],["1024797280468723177277910901989184110529484035414306003315075167294847185714","6476067603606118523648239244735184172331735539777697579448149446186366500032"],["11349862991653590444960697089231693766032135977039362764973988787776481593885","11953032960949370991014181722657811761828431350041282599030278205840252643476"],["7451635885519175728377654500131679094022961957530962274241132268181328858707","11923785450355577748530795881615183173282987039612108618387660147987752387150"],["18985642105873607304137572595236763392360949883857683109655120852119510889906","27541391393210252508930334998010032184073307072950865061150808185859646454894"],["3634995754673305611812426484263888984996260414764936727393868199355528517628","8352585928745702531807649914523979562034604044063984607186902498232228747859"],["28290219621244012207305998784171651531533918103449890229340287199433010578678","22973899038632613108442389864047876751853490425312478848599030166947426829503"],["24292655377875562499179418623241435561007939697060975775466876038194180555189","21077125710304992105016423481239331396594662201039538124641851904086013198579"],["16567851138630797705809276716894443759240892098549797900630511973265738385156","4003823372180299439436587387505514879540228079145154818578026864896026681859"],["7825891638888615915994155067589514367781960954246168913630078692789262305422","21835961020487434318496520665361993893182339894510857697863846276371888444133"],["1471799800723366932187301587772635651016503866411320869741217239283947265499","12550307673899228067918499740762710918991773131076145755856416894418702439063"],["11256113377485315047911417362712850651835880480614426649206220273780789401324","20207724948608836376281672037293405675019685591341641872870033239309224287610"],["10264460442485012416610634721937886030435260096943400278906854298522774381692","21643211834560458375063415550616125432755437025386654376553642161996678593783"],["27887225113405943856710945594674219093347682609172803433666751618168177084577","5124812224620876025690085309413255316669963805548528140152300544268454881509"],["5745549113191531813186261341436030197825263535449092014524818738322074648558","25862921214128216332735751867092404263802018694032099395711808431881832912638"],["3313758188944220675915296050497900338515883752670470037138074306047904587271","13382368275339029494532032985110786131932654437072350033206413451980137023610"],["22337425346836129874406685699538285517664671204578751213437640132736652985885","8437434619088870098567751797339188387796015689511332379338071227074370981459"],["6963776349245180759952312119060410851323659268900382202044541451879708323939","21028758062839466201077057061669389385378262224393353053110808671823594806025"],["8663603448092576917560825074130575729493934169984217479404731489823099758885","5480270722763793766644879445756182902185086670781005713230703575876005795002"],["17127685621047152483022365104075369652910939842960887464247079264371002410889","5688120772673751050999584788561993525534834886908755962089675616220848353137"],["8985151715499834805734661512494276163712343813131695910561205030497705777879","11204867499504059775342237828171667183042860258248475785490794417166138635324"],["28222932443714693576269144949724990709097394720900178694941388240312403339613","28157451387834642051056951875915951625031530721627483617215204317487836942697"],["27361943377748079007105164584264540472382051991384382643780459533431780911059","17487783854778021158345772206280881971682236020470333884196636660504558667781"],["19254040080262862145715946396936046004933091615320324978096705637334404916883","15348262436506898958743973746494516405411636734639492582749113001580155768800"],["19247696370853101738631324572372048674389157069524145115280921737434303475383","12946715683030091784687111610323080943202648843628772781704343493033783915102"],["27317537289301481279705000460305139545171494972396400900895725483090010386851","24162748757426917582293468538798286113197937529277292900499478080790141657570"],["16422924448975164331159574954800127250065615207801378007012389631924262784957","26393446647987512890286016632560409004291522885981899205056744145320758633371"],["24100383063439712999828321480433703033235901721093919519052011743873422177608","15722109435440744034618818619071712349318639934344851185468406722582921464816"],["2547018066166197832262882742516258800869879851980931646868242894284829158475","7015133846373406228534322751082556489351115085284619671620941684831166424290"],["3818389133100192136473210567649477939140680328255882191877480953780058883397","11715845223278271898265102073110640080666667995466806983232865686633726691966"],["12234864169539059888440250924021524442028204979706026152821525207376840931610","14027408547249531036231309399603577395451439672908290366474086537586783035438"],["14762510639591602918780264056356774429873787833011742127466398024132843152649","17839641792474395557310354292646720055682418551889782606339528879575330713246"],["7326175472395352184135553866427412175047306477546286029649627816215894933738","22683408239608847522617821355847839116362076338303046050720518803162893424869"],["7124793766790862901140464489743221776712934159595514297926456905421397210557","27565108784738539315284444486732727856467448008088421656467791046451462102381"],["7579026128808021135232419501779144489043325514831508764694161955823788382932","17627532269937149151638294453585699341247223695535712614218530498797066456323"],["26391994064087635307164543794103094559135611391186845896567944692751170544946","28076723003337490834650322311339201256599490727549561462713038980384255174260"],["22253036348485547830653603079564644411865766009565667346181230627954720960322","22229437710198955978674311898196515897499101263529634728343090302727191076507"],["23969172228073974383400595864321692927630006260559507278097744017326487989689","21997776339456219770607238370729675008350595649357324015717014133068580044996"],["24405136953894819875576730263775826816501192962110490010805218712385902362002","7293961138558416807555913978684381765857982283532305872149738200977303567571"],["1408548859006938699581559681565646719530714615005398880475046476761848060808","24798071866302806414813644454841359544070928833255600842103190752752909528481"],["11015849633511832142526065631423166202796916647802913096152834211997931946492","10044959296387852038040715691530015086279180687310679149831821489697968202324"],["9431445401688615291127404166888432742056032442275461977563667002852089224856","12522058823331865089695082169429469148349024015807523535861892879993810484601"],["25193594540461528995936211405541196670206991860909734892275810504268765528920","14028897533899747340740780424593194566201404681656796494381964718491272207315"],["1520402159309119902793997067250446767224075407583194286874174632049011000676","13850894867978248702215407309292232774141096789644299348393458829091778998418"],["4804927642565514288786650219858885423185890810414275141889944493941157951623","16103687683850502279033126732638197455878200436529136635206734553890872787810"],["17531328085730082323267905620870953398354138989688078489633036348813718618368","11009908845612650614036398647440920808838854240582524446887868707479293959614"],["22051307632584213720022478099789827100009319860890830769987639511600601356439","27079558230002795718011894561926038968188219838671775387967287220440359733000"],["4952758026914972851670099935891672793342251807413238765857993686604840209398","28814006084083671865987757084553898545392988137639861595186113078324025590535"],["8180561330168204648650091899870857736329825402541200009496140265223640646680","26672937174619304513885182966972734789284206920571138086694814371116953657751"],["25903236983840487448040941135773855170927354288289891139611267368174465003116","6737182128461463268420322667590112974781451624556667704149050466493018404394"],["21504002617210465696528891839294210667261021118762157455216537309831689518768","2470496894936750087230075599889601592066158774251656350807358919446281160615"],["4291545946070639857681666965043418842839295747694529645807320429422859747035","22203826365729930697486028564553527653837120319935710407393077630109892558109"],["23738295548320695239340531621009461563530563132994955970127058383495801703817","25927464719767715866171206449803327878361439802405400529407386181844466959198"],["21955437102203885347089504186334922793824660702200913123182555593358488454370","12313676414165823714789718571828970716296438370948428470613932639105556828934"],["24225685871224937282523875436595629806177028522878016711784075057014481674854","3140937087506153539079261137691712791825707347136258751529475054806626669512"],["13033476485036712067735357953980638368464855911627582966154856331532474973377","15480915347932706387726084328929350870985216476296972924475089002455853020480"],["14278717699841635846032862026631672733855180822674362325545108313299074967536","1997171124348226887612548843058804845600493640517575779742716019959108657180"],["16193702982170473719118420870031400927865947099462280079153453427794973276633","2844839092365996388412390679305776654360025468623055269499636509718836350967"],["9111814463806647025423414769905256680798672850675134248027449974697822982414","7021542285436257926960515024846765063837937761334596657903280927786361451770"],["8977731875090738243709484436212783223363919418217547894073137395691965450951","4494801339831567120749355736727819942398506557117874286334090614233074319059"],["2956043727568694861247784302911404041261221501026289512752376680166777970224","17484254812333335677478478687686071207316905877446399007637541985693781173741"],["27953224758578525972988692991616037599425017586876328486517850024652818718996","17001340186409945830280951631695682418534301528105830247487168900838570352862"],["13951750850380154078377649492852440700838212846031024332620361546339365094584","23427574031959309085351488744338565601818179401395651723428548008864807492035"],["22004673031525195876372880336384258563684608827127343313964643308305781420602","25430020157966101496722441994236345361594483125048107264143033103542331451679"],["28943428376308461389043297274375444485796033719282727136046574621773085645752","28701560529460350192952015499624347548706362636799065445643370895910272951531"],["17760901040865644194004507386139290468580458040877859140725075857689579095244","13733984952653282194335198064826554137736093439795795278356416231684422678463"],["274011487768107169927729754847234718582494667801097079343528367235970493259","5913949281330207493718598094317126119058100959298954169881316209397414428761"],["15284202883720546780154488927647993029488820986620977326314219127161768889357","16740839637496722196096119643375284205382536546204890064462844260595987255029"],["8869260053063874070365227160564824167557209610067379279836127490051438534724","15632731707122004577505325064611040311848032232260139285016228545941249148758"],["2408543442421397606882516652418738385964935104596472232093872675005310410379","3391306487090590142442560603756329515731284692502644325029214453904113234370"],["14477068884089813728713835885258285434679189199508536993849854173574275391378","3229547037610341646966000190931248271712962713862149720648556527422292755424"],["9299403328631607901527689269665362390106778077757528443015612991043337583591","10441595209914246142408921515997272007458832317332069583907767620900862648017"],["26628260153789211522981412293059778012152405798709647285604907404277094116793","10924657959331906064067053801154250048233150502472145341205212585174450592164"],["22715087588288895695651528825600817362818330855960105215481979929177214817648","23975297552916058224496657668942933754279595223644966617371991173084198545012"],["28396039167546813110804101873592815722770577659665552974162833752454592480485","141203732698652192871417327505150708857511758983139330971135552273321014262"],["13055682477440229133965596643236823914760369435695437291613824476139538407543","28766860110797772672334554147478354966266012601841474793674937468565016553464"],["27027202290546123861568335128163023969393424747149936251934902221106947969004","12548747667256953748856956592752152356994313402109751046030445978010150261133"],["27852222463963953616907515013026534170962255479831228938118991593150549493290","24532138624813238983365441883609194800269107602513173551719733501305370828882"],["24602183819149413463175128413464116033981162507561422661966842684750023303846","20059444785691422161095469592813802115669861912422226651940207431700652503570"],["226657892714442832396933506635568182771533706738603730423818450573478771594","18107690245946965501587185607756182645986689154549051953367118885790371654429"],["21219309269320869946389459741765101046357230498963475479427078343420006109826","4695896760290381030121639618004664395712499638413321222390036443355213249409"],["17997292564534416866050670655289712489890643855063490833060298090829423197820","14307143592021744984476567214547492207903706279663423626088326655302518387990"],["8796232749925508232230440612445371000793717268545518979661143114166398236828","26209127849256092915533033298816941976630213204199992970898774079372770320792"],["16085784221678396064044030022614840434990780467525839203807311827711941080925","15608065056310054738208790637744421788872082292769525473911753393164417959275"],["1215110537627783813856792161454696731756117680437093148890537164273723079514","28181390568546736098436998198468172640249194386299007592935094000120506460224"],["10054254657452086182675431301148905240984969640514049322070875070141278194569","2271691330180459543659373072910138660545544578199835545567638134624950690209"],["10667851223871900583035891677299771620116883456643564287670834827639307745932","26766105838846110571939229916419735027802488507991462376646635982169213434534"],["11590586603375859132426929469425590326603992635105886153144142463404678366936","13671578037530055290352156162950627116757773784476060936955772700010750447998"],["6590267578466417383045009235696869435821495645872356805581928372786395400774","11266268410583147973981791826363696741418342344053662574944022207069671974203"],["16419765441276657565431735211031324082277461569801074567657169861413593326342","28826559916848061485282539173970486961457993766569557345177627321981360086989"],["14895826924253425454504264449704004768645037139468482846257822235419244315134","17637360341002916843108785415806164936319222622759523245299718066361888364517"],["28875666105038481112249377612216808795834386461761271617987213910325762009865","8683087475233508394210688366587106842424870655256262320661120659725418483346"],["1810617619986858505578143715896900023947917267547574550895112287419063030977","16145666975665257007033343246960489257030384592525803251431443335556098629224"],["23264614234957102858937056559104722929698064184264514893058263594110358025189","20392111938369924253777273681885075664372457618401018848925043093365938125665"],["17909247552561694893024935705011158425704302799070842017582146978432974505164","1547315472615873927547071287740517766700584380868879720016744520605574316155"],["15539883200256959576835508596255675433884993521977388318693427087620953622586","11757707830262918077855419821190550061536240632190238007754242015170222302116"],["8731612018472183609230495633176257408711622173801967760602250994574530911461","15886338567056534990514098272587042343063585749913355648709793220555083675358"],["14016837163541437828988380326738192175895755105215145837708221043374307192130","28800340273055068849320776952643734599723899701065112250381082697165741557844"],["26789154986891869924058128976949832728008350372041402895510944682519625216739","21834622372535394537597426212808795859477385392204011271068176253092643142567"],["22985449724628422970316897668745013481382150902914397916248114587999364209933","23573586829781881752090770778153323672845546381640287387813010178788328867295"],["790580284187731281691481145605632468950269016327741509733835426964804656191","2811197530898859601701578843539555356777193027133192153225285423399722070380"],["28030445511848417788639419975987975903526348485325412336793644128029983522081","9087384591958328773746296448165076972811565529406416866762186479930953150834"],["8792158010467864233084122554961781225698222650031801905354674350855807948384","16282178218765872881508725935474799430139919005075902903099182088993999962101"],["7484454385810571487294229371731687150032007889291698165987875623194844992674","4640589477784076316586090908564282483890610970799880446107376374130815089474"],["17638721867353908233699535697574828102372627075440543460298239253007764441704","14549346469988223927523658325676276685030667920887996434915518057637582036677"],["19001990748368682732680513433000875070372159751926026836257743516415153541906","21473694516051272039514447061277247899410761916173267015963192131260291493880"],["24674672881614053807268987803342962065779397717907152453710552393251951000026","16467150013918581276978044514452228745171918355645420288194087286803380594220"],["4902681803118478724347114244446053939855184495263702945986216310661133700232","23479145781580310854787713208206529633159171706688798714723561797349336841407"],["24785387043729390903615103817161210737457971101642032029515517747196703736261","23338438898956937484995883710234965653744523038588530182730169187255500674308"],["9223592171228992856209203207282081593506179543744943142995171662127703178777","13364523219158692129050352324835553255103133173828603676860748403703046654178"],["24322543434596838508751405588343633771747159387275464639694023461893433066614","25988932481380113104906906391087769099054208206287338275322380371854049246996"],["11317997310506314480688776314927791821429060165486475963663364662897279683402","2476190948231982702642007053823470861764178319837319322926529948543175280842"],["10561097976150017842282144350317537745105339815172816685537863764700741403112","21757611991673414308814277000412595473310371879785239928531822965258635565643"],["6884478426286279409580898382094878315161668419069179896212466067739384230592","11581206771745611943634846957250354718310273851423691463436719719924136167953"],["28363937564074272166809303480581630068846665265915037018024058753238088723683","20987364145756700507523060975348461574669640982461094446055842659761211229917"],["25598723775847811607853813406490027394017548899675373277713530422491523404615","15906961617830025575728212827526794707948659036393484016463167965184549359376"],["11332136359036531116255291609825946884697617254093103637296279146468460402422","27677116753101461411065282310734964876115405576730779422866848230941311455971"],["2061072872894352723301104036158542160468412719670210949200834361455842127889","6534833023075195649310439915521637815168943867484787507294549880710815376731"],["11126396644262622765283008533529023651677310371590624858305804989853978299967","28623229532270526710620719760572771662459465580231384828481791117722780193172"],["6002882332189926877554719514353152001280381402401283462850198506154899505085","20136836217081318344633696669054804742263020063954791128957298725318841927614"],["11825859095525664394330078997695969914253865285204771418392870844680128718536","27718861339844150640503734715348331417595070275469221883252217602416937559054"],["2253204627590905319613502760150248596077387084273920368175205386559093844055","18093077453762591713411088186454179256399518886969168992178640450314772461708"],["25620859409693265404502702123282682545411928509904113230253691886722826272708","9740846706067519371423887288180824208112373318738410699573766127713508232450"],["22393444926764147264489590332048310642328511997892610448098091541785668632120","8484976208290792642185648588224349849889538898531964677452985136262857075594"],["9861831104158926666026166201789992864494942846680609664708657180697349829151","6300979069418537404019283710602741824167930820569782929213012947125341074366"],["16484406736688363059298783051091823544969234052183607588691656581210392290077","13526264392031152418174341750131618594514663999008794077265326480840049356914"],["16783057170308369278344189867900604639575211610472757548536458692385173470635","18855854110212806848017741866796212154230492144492285655170634624139722310786"],["26008868412162666960816262939594509408420252905220973766893674943412091095458","22341720302705219614814254674551171168875928597129753044962457547201286745546"],["21737683271363277855407185182948018140901142443227870278092259931201309903696","3281391021946890688604510100793251734760069326127425346346503807474706834189"],["17670501913603747196579362283010715695397018005549589553177584296844399991546","7506445103191544709492132413555948089365334711920520391383244023919500463631"],["796779457125488890465521312037826878335763141659391153023962067751918396080","10483184427426884203753708847659058362759643363678814405880945866676144747132"],["18849255812870599762119993071039956276453825424882952170579878429503992023854","7710951305337884579237484804544793212216971093915223774899426599194523335866"],["22842222863020398929784588292160342286266770224602487437675753109154625514442","15109286902193583531663758592169939366791564017791166536338749015898130467061"],["1736698893490373395204562481529613243331333651715302122050398987541825569120","19964742318135199933575186527704217647869063326237603122358404444545952134703"],["14470148902246208259495107695449047702248688017497463443449794084724754171624","10023246686660578670758111205022882211215937265450791438266568026907828965870"],["2146367125537331290394322080931778164453430688760784404033766528598927783796","26395780027718821261019401146680706419986898137556891903175573780257380142976"],["16475060333392070220832582305546857635487382745100151919339994915412205187700","26339660162951040836845848284863826550339779131941599987374399780581971800123"],["6427159828841201822561000507025481161729334518683603174067264965702928816029","28885244671930110842126204067368518896633052584401121221067876378376789466017"],["21878403901847523988099133567990786169146413681105668368239247875049949706221","27532175031538131202514978599798726811958563469224474313281605066825628046903"],["19486571363965468117720532186421882363174034336489838530387551960554544810254","4036710877665594110894452640473443977825755594168912167399229553875827943005"],["28139722993940709089438350619046926604911757547545013600673639437127902419338","24676587738122898113318514398183339955010826068401368999623987906767863437930"],["22353087234763852070349103481084219168669100665402435990793370596315184584301","15724196958584593999792056436796727107947021672195661421659236837173158603174"],["4790027168505615713400070528778904070273143019011588942742252707348192519852","1436523462052883976193501575215573155070825191354709850514156746075662330504"],["11262454859707402503636564264410446964059070968213261884267932993268586551788","4516377482768555666950833311242681249440028952990045578635764635038385697740"],["19590198891894777178948369484055048497777842303241551805427225224296331840514","7606540717556707104229137538247683745286485269288711181386104330435340418057"],["2929013100677627362644229780084620825171305230132760724281429564688209809769","9183677327280191560810602580224411213587035473418234357249836113154007102168"],["27998054433698364131353183386259394233326031464921323346586645819656181254275","7748275099131179752826905845780380684873159351728057711163716641530966075836"],["26427786907418413895215494291593088008843023463416221493247829940433264310414","23999274415188916182478122727375384928646510770025755813996235647197164773955"],["23184738802022468859204620676939449743753681655916267628149398799599295648192","11670491165810037821448386490827308725564030688426334194415826053549481339324"],["27704944046266460562990370124508207621932064060958788982337783800104052756258","8220751033849238567564585667581310704668183522062487129660409223378565975891"],["5954858366631678501377281438902121145808412889325784207208928705415968615657","20308410072384155832175242968108632024238901121313126415964364493314238775202"],["23786235386776325823430335248571257240438716395888906029425445807168174035658","13556950552068010238319734946239316219793121868128253682194664568935148768736"],["9948958146162659905807256631050148239118863647625166080934001871681354526010","9388656748439749951241518128775871363840798554860672294025235569071557633817"],["15683190883762194821052786234434031746275824836612454659387786968118148658065","13427537397850430001451491337087544027242558910411740808555365244490661225162"],["26731674021777939922022974248755834722151115928864700975641151813675865115731","11883330139895179989560738990815810591176032558693001175425730177379750044535"],["27196830376185319530680754535068246062847087397009857259230228919666578027328","939474840830164558300483537468291672212116355167518075457856241059093189365"],["12490854016619334605970875623044342992276643562163113586415626323202150310148","7039066177932487268646469025792374629182204050594525972162083991627342619508"],["16546260443246630405210270507881237185871427034152259101778647577377581765900","14705832406679697911884502316506964900912522320618829653021194770684448246470"],["4737694977205669876023774143596341167945242489674313545010589233279011694951","21224255228862225378422485686173267344414041815229920663675900462572449901249"],["10794562810401215026663527015312149709940165565165705857419861395796768742976","15603438780177609542661595826559669562056992585889325200643604293705815895726"],["17822093729086388361165542091781367282011971560848360624160660151530583996285","22082532047235601222967797165671105989384207429868136290454707067078996603615"],["7412936842447310746663673442193011013486583222659947252576877271158653867331","21445867641275293163040058325112635648148491105333334273694815127928348639171"],["9888535133694306175967808717219284037989112047590052704984569136621004914045","13385270235010685771122262216196349615204482030412474514964987860700244111171"],["12360970955422678405369997341920583425596579234724627781058352767309678138118","19857607734775571252458842348201697005439823551606215744100727199050649705228"],["17575725290737597350571517023022953107226364351647642732331514867302928572210","4838118383641597439423393647689384551275058855734402351548109966904953666761"],["20128267622647455446308767487056911971728969407821719476451510516363671483739","7953461016751535960310336428692364502695146407368487477833741425397391010950"],["19229431691044907243302357490561870893468022230344418843283243168942554371450","21200210003209305941145407267282355439680555159650195747813192894292241313645"],["22860936779637277015449123996486640497588885417480183288111338572129057796316","8622231662158999740161000847493951129903944827479612904089996354884945944051"],["23026265844100223156601137063129642885077202261459196429891375735749862398099","11633987240263707312232154646018413000271877277448803273209976727433487880873"],["9994750422875645542657839153912708886328046574589513324155642351482703536811","19440400905424518761200940786074553054609052858067829306359578034105620874312"],["17674614958730441521087387551325380150303748093691384537025948835005750521446","25688209140058445385529605848008320781108509722022329755571528841876853875336"],["14340944824276732737979603458429508293795075751570507997491510026778541835869","5749573902516621506130911767456656769519965570632690081838406926992664225474"],["2075644392732668722936174928887521369161808088612876040960993658865283893697","3333129981236528966919787820497549769783290147434431677216645569227230405241"],["18228741062209006612098899638955902774473904995247338907911205050028426881932","3532645436613176038152501071380045642301878493096439402352843347308784347219"],["22516205438282750705847691945180160204409400582097901876270824591222767793227","6538262600805501548218135779853752114589822971601460091946146787080823530222"],["20087331981347905209164010836888596662570170778486606331685138915187759842635","7978236889951663100837410211265277146954107187599038694762879241524742262698"],["18407710884476470351480211001759848358442695158784503219593876833165705041400","25657709772332473892937404837580305738405484285830358973615023361069076926424"],["19699910975894566510559935119747384516598159744378609032275125486720008845613","14031036795246039899243425207845378707159997765279086334092592597686051817374"],["3730730237559754644422580595489688667512227222138732142624336588376521545941","10981802123146543017702460487588099013476244697873028515184283145089311626145"],["5641866386998157450354411057158755808440618284133814533644883101326761970182","6730275133665326486138412153498454504134555709219405205136664874238760780752"],["23457032917696832222884313717998441568853910091269301917718024735545510421761","25473089924313413820577815061256288605633869225636855664334656001845116172176"],["1207199108753231701765136051108919724126740697111372442750350453251923991413","3992959870867130097567399690918260917576948097404221423672808249174804837553"],["19486854666036105037880064412462097579205809560478130246298634755967459557075","6404602191177767276614353182588144865520167476473710565537322199379875908152"],["18543466563720711140791073115042413612423611383922457034212939449022157243264","349931848305881426406671097621945362089237173844553883499479121837328569215"],["15363494916370813361230089168196160164946118050539575560189446084217704863020","4448293903477252150527077138994934727434714542953261108388739226692785043046"],["26511483942856409931253625016044583637310861237621984393243829268223644385998","9449559964069877462022231262527736046938935370348742584408444246661139968667"],["9592339931071401066532942611659410450549113755801741311380012305916615831036","8143395120133117152114025539813827473556044097442834338751699046698965645207"],["22880732250500476201310892105998767810538355472239331566642154121662859083474","11887127343102992586390951452866631976520026902138100200523389691012154820612"],["4200352589874571490576733455933575182113591471496549554009958737227687875531","3475625649652237711896425794179891644320151206997221352793872160366332442508"],["17917701703885250869275724900844429869027966990502565477801107456970551702691","23685153725567178614589995952819248538147991163159122628290936941858122710481"],["8363840596228732121495649492734121955100569311512357244650830947556390159483","6455664889584923185841448121518804453652092799726696430690096724476625247202"],["26736763544394453279112187859204049608583603444501416759352674743386771534864","25170431686558944744957947211862892886356490072951395660164523202424126371382"],["1773967333467301930635449338947431178072845402364841967490191900308913692033","18493019326244555841474588129299242550130827733222986370669358206080031321389"],["907886950455837062529369076728457080604849664597370857983742077392164627851","27970704709686598313554928929962451553032929794078702642667633402735468063482"],["11489831283112161757324780570484372541537752950348898868233852256842216132890","27837989092085707562686994664441896480770374108171039357877491733124577851156"],["1495689583892934432418506923171133448924817350407853580730586161237970053967","6573033425741967092391055120259494805973543113920780166084257969604915782284"],["6271179333234971097583363921016158826172367507225894135113090331062953399318","15186118866377339531118520197612874837486128912199899167768127780737825715363"],["22817232088621411924058445894472167322878967375994374303616239496629500776117","2424108021303549290060170564657702564027035557353306068450668504455641082574"],["24992066892196989278736763308767852816994557100358000564794275511787585406618","718759434281506000555155553287080771344171230573996922442613803352441854269"],["13159533931926579331418622823643264069526542718307932233523267321310949671121","15669303328371666700836940775437949907516634159862516260930123438393055686624"],["14696932748920813061444540745272147406540066809428025936749025220602806311526","5356610285182168849655234935723918347982356123201552447089930232276956790416"],["14555083051424029794051856809811798438401068538673678860232520716469671319366","12744055966896452499270207691292055229883149789187610230925584725243483753036"],["27684575559835260753391513412076031221898409389983631174162892309464522148745","8524030484995757267512083452499606915862460398972026915549455711207046883697"],["21490636804224307413421112510759402000716325069152276427662050449717415799650","742582132811416668270866356781638092883130343366883475366017212371635397542"],["7614547943469841701771259614766095409868083300015310538660804711038013495498","13252286036249045553134187051257053232372829841700781292480392582488722006584"],["17258746225632435407952867247730918014690262111712598675544537354547648796654","4320094133050608221994615258471939132756811131529367667021975781651426072600"],["2979656867631769785270699620263378008687824109481327706685562184043625006695","7927114855969980834778307548454027691825565459545741335544762894303467644426"],["21283926769441856719920179389533324036619859629035280981309592378248092976963","25603405798995629409759570008317614286023731331177683075479439908895473162639"],["16124076780333714303136267076333751107994144411202279585881812402728928521037","16247551821987905082855557984637386813820364489528897406830464107033069080723"],["23024198861784683956956214272270007693807508837509456912333920558004744280378","5262940557279031816978986152809259285076994298232560688889760866217644042918"],["17427685348577101545219607402273914132325951373077864958246257962582888892206","20205337439294545487474580101692496719532107952061959594427412470554466658035"],["7231392194029857353396592341347557565474957342398353803539164411571388260184","4831512724747200902856244514115692857897982105728020913671875853535863615340"],["21791912859395986109295803196978471319754220944815979578800651671038588244490","8456156431732682354516903074818285509861512559149571608290196231371001562919"],["3179870353976882867736680432151719771488803203184136979591388511204475587519","27350400443835309785562949275332151786267703439361044535193768456173152812676"],["22221479630452652259486121122954257548343908740388927599021002626779239019363","9772340655058345679476829208292769128458549358495289692914484248735110740893"],["14562721218836333582790340302356368701979727640221979874294288904256436288854","24723361593486146339664498122240339121856895682568610614288237273855671146199"],["5187167085294169915093941055051175886441530935602632978894812241551068410380","19543272842517657548141632908513324676293665283440437195255894004836288480240"],["25984012186585548905930644417857932525858478976684732621470350378526335749212","18153456563511895109894263198268339631456431821573516482236731243614835111050"],["20679436190060472489385505088097355809709493659246852693231034367421418628736","7826509866098090159393505545620336297002068192022404900134251424006007788175"],["26634805432322318133700482161812385481177001201939694249674200216914075348583","608283554145505244236802073433802993203361681442876447649090702878385338531"],["17342107226499240757654339714879500265365400977525221376923019336811252412165","15951030612823888846742200089960435776134253780493835318675467923969086734490"],["20694933318513162753751832353938825348286142062707909844977605610397717431862","5789732628165854467714647514476104415398885081276765139661705761546483279124"],["9999341335659995778009077253285877194182453486568719311909765298964705341318","9618066001427464642861492328253638223289447661111168630288306720624677605708"],["9610110590313811982270011000187065535992891027194167333596318327253131203307","7343432289684539277242559414343691131813991038850585703883334142511001016508"],["26531831066092819264964078412550671758386358904167387886854635833520151967808","8754864168472594552042422967441923039072097176712930791019965695077402429840"],["13918632190471920176223367780508076908020043649020080521554159982233034197736","3138192298097140580485437681329040206504619810360646435846674787573071149853"],["163729813318970670259368945503242485034479477645646663315214822939954714169","1927534387649164514792886058091910516475142631416462395006619969140240089514"],["5624531130019298156158513974419540758987822926742925424627913972643941945857","23025981539451439201331882697280954294896929114760914507135496658247154396210"],["12978544412091106160246625540925735863599352337485869337041159817391361357257","26619242075144126312034838811974224556009716156693746305729623808183217883023"],["4948741246588340527823209501624109116324859708770340816261788739467567863187","20944155763601183166637198670909905678998043444802545691573162919491632533445"],["10149544576940163869228502352779814129473772271653735601872446423699258628448","6898783856531741489155816441811743377411608031731156267930747017791124852845"],["11780689698657560367919776958140258323479407136199724458044375958687826716460","10293349432757339725968367007807610554738577171690930131271044417184870563668"],["21733056660610435002708653097134552509571977578884647559741302714348286682989","1451333804914060542265932712966568685227845229328770209451853310380711851136"],["14401191528644324564513296962290466534874603312168132034952944243463147057771","19712344367238944079141638847168025466075448777870107468170402026494580880532"],["5851034715521271989921256269598967438876890098185302619516120754756202097441","22415526554654491920021061750645561482147964143225702162821727595888985790976"],["18331962979344362000772075355655528766891646108166470117939168929168546971137","5737448420205475828820368649764979545367554226239137906480948925591764385945"],["16358732354161071878159368371719122264514729105324698268052248918611080674084","24795499498122345033259513622187398889081264583189190482649266071373437582944"],["7056796227084260994130694481195625978103991803509828018462955339263603776745","25088181706132985610381958032563099019920931909988995871872699284796836478156"],["19040513953236535709193879321481670219288945150050899322491502581326196993667","19650147556166288871278132570193814013161148740233863956294030357065880523836"],["9035389670910666257673760117924500655484020838118762339718710214216752184916","26507625101326541065393914048591295846504806773250171603786242989523721117840"],["14034156644533987942965200388374812296815884363462825667948604163599168489971","23056553094156388586787611812370013465724522617299436111276379649318525761071"],["13868270520518292256932595176747351742832447577413638413701706037338584125465","22507676998837679969544234221188100971999647748704559737100491616532910988675"],["5173368813550053822256205600883487775129722574810496240525908310045915750320","15778043306920750400873206158633333472140823393799890984143859441423628114335"],["27953774452887256827948133855565878742465482157632305589387516242020312336516","13214601110839741045384513187098474517396578386453183833335200651072070981917"],["2001717630613794769342371910453903602196174634645773929687152878608752925613","11639281857532602657726779837540231733767974848279186539872243948276942346659"],["8248525538752412912033455076258299630023236187433309440990766557512992839616","9520590775756275302086735858486232963869589921860448971312950087717039852413"],["13255084886078275782127653436588279050238905669328849358982815386683408347804","10397545642155580612620379608705603958857739693636677114547838062222281243974"],["5593719248363677123394405873726396244215387012571149087280390873553620368818","13174842884660438832671376855686782778963163929965448131825312143014533909388"],["12268745330647965606079091730870188351790409685661683732274210220735718710647","3583680531080515521926053474928450761249310032299982207295879513814366564584"],["19673010938643274592920740035056897236956441898184067835621805496943835305392","17877663515274511544128226812349683853647567536436666971589277488051164967848"],["22217107837324984469482356649106282215695829841258781905525670920169566685718","23579493728492202091432280085035301639789880147361155655831613110957458532822"],["10545514368383652102974747096248704803315175057012768349647778246362623467225","20888230856061766929367718917425440992856066913857872520236948724631733103911"],["20185179968021158004701698683191436944790364855667614956298630098303639848766","17305815678530741769557553215479055158880644203691568838470106311754070740853"],["5777550071654645148855872496941361331486372439421142100213831785054148550057","6541446173979800346744523462052012354996924065047301906270459876569035697304"],["21445656726164345841742589904467801632661531704283407569391068196082179964797","19370078560689511645560407654768490816878885265527600981505257718256720125526"],["723280659161805645297051105801098540028838093975493489519847633231360440787","22024767432493007438474309214754850855325349253528825146949260472673393842951"],["6625223255809846384019677957478432942398769763648344262634371283741968578533","16769508526336749372989726061679569981528150975045584118275987781745176723395"],["16019940937463433444218434335229914966532833383931566676454162039603554967750","1782666764601198483206663821930349628482801844614642021282345162381358505309"],["27395145696854414572468456100707687832300556704112255723077627904766205655916","1639125602223631787667764736378612924168713353746240287772600757859258856475"],["25895101530956943947384033532802642636800741629070569960114006846062404628916","26016604305252974787973337740218490754090468219415531909335074472578552548777"],["12997189279017992008601131879919814592347217455965033091643602038091989840967","12698030109102439982910084237264893982441986241575813157298099113684106600076"],["26073264721685901481678862846115023238132407191602074248850627075836576609797","1187344899855258734924868555530008307571183858242532323997412913692985961428"],["20655216741079422251455152793396596704233415564409704008043027241952129818070","17240647348840629562088178448222564398935785686888848497030032073666075272900"],["20578501057012331007885886375057060828395085021323089604343577221677617238394","23621392871204293966768247089390376935882291008704754216786982284777694767090"],["12609329360620659934717099387212289774319577476427618645023828708764474275744","19800635167292871380363259453974089350734734101482067064080112085593738769695"],["22096496977101554693514331667618707115774666249723543819779422364369081258653","22505130280981195355264302008614405570840539249226040596682340260579479277713"],["22815580441991850883327586271638967024451970706550188101368382802300201956147","4820541582088633843015208438141893244425519122200631848097066736717756757519"],["1332335637088625409350422824629998531434562704958959128314979835439534024717","16112154205379906446547894020883349086155444451805760304974664800516192517797"],["23023740433565326527488644028838364477315668486029140652729564546835977912387","16898966695473229359696589903495469061868937586555853050722893906323032300849"],["24596476593933975408342856652276084980811306363217347015376312981722045803382","11525110279122431501921380739841895958964270772330775917561024913788325696045"],["6978448598816680331862951365374013575517638450375280815933898673517690043061","15298042119373119985199733027769913374658062404050436228150234824761710229698"],["15741704844630085028780219633944177301762903635379681330406595956981635561200","1163703944604742512618423300310696545191448465633274327816438328834196403471"],["19411884260491326690837671294218038087955747953644894447108420278246666391556","16529355632310150310498854421579594571282609767159847014301548344055033308280"],["1634528164081948726023192786424617103035209832532037734011875727938600359244","13560006619560795455429817310520021209167834011604085473641860370318747691730"],["22763081949271193966974070804628304244743153606768670267631211598801534755578","11763583996746643194483843371108275508599247091336813388016405026074042173538"],["20662018515923102860293546272686995957366390219436897294583971363124153899527","17096037432869319000036628965695517083282440593937233113020430585552087854790"],["13752887790059835966038666989567352470855414105208150620535573627308996793249","4866860647974990744818883607906522053543679053242480626606045658769167812575"],["6857514543758158636085699065502732420297307963396756283557983433301476331578","969865701547503885255197957425187522961894191665223895707377661488751420971"],["25044849814267753222980671425262996597876283204862260096091567336234075415551","22423314408736686495296588398069256050993779911824095914779104369296571246555"],["1548318722223762199529493278852975401185686748269540030590366357000790348530","22734614363554613283245482713734829020484850091572011617833149123490889326918"],["12963012993679876441423698524008022479751447786229445431154044022814421230122","14135203894997863988081770298780622387750401398585508340236360831388451134957"],["22099231109311373698390773011375471460284150541361400854128835779212053159918","4583288454572956058914621981712126257809369991548198405109008567611247409482"],["853978445797343355816868798262004385686107870705676657848515173113753846407","1347697617245180785313656023355860340432846139713615967182754233645860725541"],["2903011136210155670622346081286292810687624767348449849740674370474525689335","21066843916038793404969880710977669577437587240146607783220431466205262249906"],["12344853698149703228024750728292254657654331133276282207052635131947137788687","24871848656053402105144601645589689723641930385439731944606314042393500955127"],["2469294801480436176075801397073568479393088495262402722458027229643109842901","627371681625154538345906986714864152608728003543824369751500590622298473601"],["3482096352677092750283508389109347922987614215490286341123214900040650711598","18344148349633080535320797824785872367306082012104652740008190813223207317698"],["28152817942889529770322595358385261927804737283744302158411759442494364471842","21296478076412477717705618832376930938130931201709340690533568504051996185979"],["560763886203665368925338150066756789990637480739930990794492980796688129336","15857026582067600603180020514136615976727404262644998933945807933175367542820"],["4899369484539652625319263462359860262156405711760261562344069282618930795073","26068064301553810498324866157985705182082816832072420131248265590258448016114"],["23192099082352573601963224648923254499591275768803240053173211622817622811609","21378718104742898906756405238762333159994404215141881932985977473378703176967"],["17902266522508799516281623954436687556137581604830165250493497776425154586273","16010549184622288011868438403348996851594982501288989998835999652748615482866"],["14973135182394979536154619601710424048699474340546498104120935995558859888741","28717639097253826759644712238466823323517834413658831804403773500040405437794"],["26950242088732704411562307436711824614761144069138873999820950638881419321370","6062033668158181227117056784709999872106603024534441920270088150759727554892"],["8231060327492563534661583602467502347016498059465206144290716857999533984155","20754413878993294178501623633614711570597772074136680652520966266337212215370"],["13334492520274496065340269557929999579790395780042028576017881524428642560632","6497481811226799794005641127543912038574622189694928257320460662450482567299"],["18957508700595936731302851591268499442204279433292063585484431879917198188134","13142418933563765589986931278018081970983697197994578683721897297193474849645"],["20049033268737491971998508043041062533310021996128666706842724207325516461004","17611151073905496964344671597474938770972873389990091023180144782338099120911"],["4719358053201001595895790277756076031817965543352749538425806533728159374838","23950109608988022173358537473566375593573976375474144637167350128564033085705"],["6232936361234972968161449807078417465988985435659149034342391004694113834923","3577736647189339615302741382788870648986657679066370314042550526404591142008"],["14481997838298977009923141121988752319221753362237622799184915057678740559439","1655694557307359339633118233020646082463935038524890096597581453158328405902"],["9430589446882094869264173407351735845679692137029809459856461392328881833195","21919515422012913632832067910757769330211689722610168542830812954966619088196"],["5213325104640114742972902489043841304399442190497469992518656614434455742845","8574029620209964613413137646713936706324073132883288351269464115923826311471"],["14077790647150145088366756773707630417070292804973041055319426259219476648312","21080639101723102680963261853787194945414047922545760876768871494548028177771"],["13248263782988322015480255778282085136958374495358110888412048148083351765535","12777655476516687915021634187789504132977628648384103307223062035339428200949"],["13729835302190566688033820359563122730848776000874663850938892979125575641891","16602184607375538915724855596301807469026308013412385145968976210033857547411"],["26038659204963422081261475642068756515314566689182351576674080668928554536785","3179205259068730365749511401207566698427456152821094270141217963972122801768"],["7603156973381365466291913722625786873931252214341324031129968909146419700383","20569375766851018872880415721854924808811746616764780124844113907241617952192"],["719405322281052921023392387401241082808173150450474897159414887573065445772","23952580737717517253902063421128101758693770104507217922347369060845454081719"],["20563029443230801121196067845644585598634320387991381349983282081675563565673","21668742542385405234874459942538801465666615750389954462150113931463773877992"],["24528538159554825752959131849925869547112719504224748510287963046756332099991","12696059577182020746437988527785361390983795516186947473630507810952697568941"],["543977060571649185456122493597343231863589522888868657186922210880260893003","18025413945785041570674599900917143856700906167249003830303143249979040995432"],["82922726296497371444417791992213429746956950789688368174886505569873567624","10162606212773436645961732681749237775264062932954842256781843487439034312557"],["24278918192842136307756029405626408830553023143076615079901267000335992657251","23719493150921533533591162431455382286135149188598174238375447530014864163636"],["26569778492398133794285515767035774855368795571619571810909775534267764055676","9781178488113520491551443837689907005285108685458164007822379643391667644429"],["4744429533299552218033601533479299778969628245242205499844241172921628149167","16363387229620075768165577877611995926652655010068972846398571546648251785600"],["18031758713797920968185393267655514802127087982022428089435476427095742183361","24532701043115922449804638060787160884768380334382476378292793564009733807112"],["20279340702058393253948123443944699193790483259076906793083188776816080732019","22761202039540886869255539622393401110086028894314562673984785319815212666063"],["25006226985600963079096587868874298599119513094797758959779686677780704636191","13793694332382865446334813625382598475506382451522077233922290855507983299700"],["16579877358080513131495014506320326334368875559101831652035748346569224624780","19372998438052043332753287984294529953250507257542426355131824677678546721846"],["4098023379211104065239128699597109605403237010921308840234323802419287138885","15063885831169018507411096692420645616892478064897353909459698542981318501494"],["13213576041928101693045665367643727870485251312051930648613175573836668855114","24184417895114155310604475288507252837126754571502798247486523497809809302394"],["1239399419656222220420538382530936734207914755044253025642150839758331400804","20587331578113403091889217069977148095032427024768576916562487274294762780953"],["28801728015516527505633998563978901807794840153995343987388547710473882799768","16578340399280389314580265108258089683438698922958852739003465823777212653841"],["24995274295656453749682376924364073235707408975778287043881041983800813739773","1955115949537667609170307001679104448519945216424144360845931175452736208531"],["14623781351909539845346254548157400183034414675751256856446920078606225576717","5873989104221415718697575844180726048205360328518124579602173289168159696745"],["26544312891775349405750118067557541941162434331842708076140562574660254630964","2749703186581303564769732411642596662632046764907519393143932747751558248849"],["7068667743526369537109559973578543372666253237992686516346933761081797849903","10263533468416058592960272949736231782504162344584335423822143028271536811158"],["17155822961179516640034823296524592638131919438111136808276206840560678613648","10835753968099755280344223310546452213322781300372023940877196370032709927670"],["9714733307472124685968742248621980400302552240499571971191620437158388473619","21999781208954349677978807148487626281819104951403130025068789469613260234048"],["16138341858552871593667970984387159542601556693237244094361648401991073060028","16353558797202342281588313277358752128206221478412723825145017486386616550816"],["26784732322794047724000779719768787217562804670939663682867323064267332482420","4211092032430989650351976035967631197750915281134872952183114575977634257231"],["23002136205627624422154093694573162335251334834691340467056451697738762925717","13384371011838343371420584936843146276994281634200904696487582636615783082881"],["7604337903312802010329967221659416964832278740840950118817253441997003246782","3230057051616711702542285695470483162917234979559501499862806104368864917947"],["28717638158453247565619148909788890577578060351834404740787261272861864022915","21473969647666245695462999445645034371206706697192365124423252094552152448445"],["15846338818248699076616110693330472938729603162077521121231707498567087839254","12292531288975885619099674167290648950593924095996263992753894881994512159512"],["16352794253946472205204122881755258725376132617441547410397842766332510798186","16427627252182911592559987016934507002179162502434737830425418604163068043826"],["13642983548935995190241186510011332534915253791747464285439797822977871048865","17212405155994517827673511380929538705640619389289654281276895660716121189638"],["1946037704305335752864821558892786138674359662327851381093245327116312055998","6111689359781177760578895637963429520097311046984551056705970762844330141036"],["3419986859380275035558249545136191913467992718548436217591623066798238562582","10209843985372119035146727604284876525119491683771822545303395661542543080438"],["11338078895708225871648353124403393519660158410140645113537096501364567560984","24825382019143520748825578018901123095075398126945811457415938535147902961558"],["14355339820784646535306929363195525978698897678228037253172690629337496653004","17395087462236657839825858653361437551116305585059353272452878493248799924360"],["2546620049833595674744942263751787133479268008226377364685358298247578667351","5453663837624361081650119833086901667701287889379872928541812336727279790748"],["11935715222284907445527233706722036559117018199683041537979433932886210931169","3023359161098990148285239858200199954660774433647470671458129133821406329812"],["2863037374155314317316324794748258666168379861679326476615020016211145687682","7143986181831894421260069974899977669434692110103012710982827638627415663090"],["24402981202887611320099701229305566917598493156742465112514617489656688902604","5513893157769729777562519780317440939075223055147767755584107272941209408003"],["17569624823091418865686198721336257572542936504299791694534834322348392758528","4729709014376203887960235189583922197043757921699265912720572844547827886111"],["19378866477446120943097117363654489039565863707351926863320120003828320940515","25514528871960713600865658776900561355338016264255385435954062655808314064735"],["835301069940342475476950810727709405590864746457031147309760779153576115920","26375471885978674444103756228446096733495573233820894828356512049035236270792"],["24528160786922394313196209748357226416781301124555795138259875976134871379691","2630757878575722410239234347883941780185673278659515557722310529324039583822"],["3542110434008315842102213658364469864026722192767371962868406386540003763595","23014656747241764045960913050013566404452949541676157743872691581926217370847"],["17415706671529112224789813698416757121674168213543373593056076014447070799898","20683722978940143933885130064503846355031209690721668931488825356660196755254"],["13917843963593244913008068475499331753893042411051153904746887984217779566430","18763632178273736033400728211916535002424168703899210336228761236466990373355"],["11265843909641540818885767823048588199697935070375071536096157096393848354634","26440004364091958013897431122604712662742978550516831273091218453735311623268"],["21062934304117960896585117924892597423192298907897195542233357209393617289067","5137390841378798913852306726649038431507084173044000230516035417278654010778"],["24675130393514769553705271521602601106061752612721260117799858217115310125340","4549044358386575303755143387533364640260570001801071314710288293643797814079"],["19602901926206052735615418675070218390249478626105865357496403935843455220800","16381740007702856821288235312798710791128116071079041755410687257392755554676"],["14071166183673661231681162964384697101768961766977634347858473172670326019915","18816651397911102430137787912023422615470743339221814661561901785327149085850"],["21789218355254172880207632517225725982698107968265507912165484918769968380873","6466460262762281210497569564044575921412726849665955289253532409422292231078"],["21752616199217607524930067553102497703310806996322661503591034620659311793262","19140250033305155156606814658243747933031485217024326671373720868339554438106"],["24606418626660676247281451310246842245253639534748936489792822927910284791156","10393965059351829723755144081375864604401828668925702973701012971381453943371"],["17172012484172482289608691705201586709642920823085879275142938480934827693490","26185725768385662175210956238092727971137963415811125647021540282201646558465"],["5047296694482296692373647914063078291619737180654927926466069642597924332526","26233090704868559905505140403854636322367618536455257784664147560699468056719"],["7674040680027955224494344685917263971287522149060835511295497107161776483272","7420574139293828750401007477073005234901007337331682250040637577488506314606"],["19073533732593071243905076934305464256110706759418286904252672170324442926602","27328216237826699952130966248601205274385997590878786150667452652590911139012"],["9386714754411880220097206533760780849289748126476926239969052036372290976105","23160794997342080922890754300939432987304847605412634792031045228598513884147"],["22297903649565241962092659506217669730881399226336632087122570019247436202995","22127519562359992318074606810734378077652494206009465312216819197353409329518"],["27393152938447948006792964958069326338881208849742850381661407353308301289675","10393348440831280606624715072638030315758218560768794346499585226191703883977"],["7074564707301446993792258034969287578884767527610683190937479734917231820077","2378144316944367120670558357217949662701162303915092738606655146232887156506"],["20013672136072752553059344551958511328419119202623903985508005199078313973882","25735728796520985273236520616701552354772179047631413804117321613500311750268"],["17919758007699666256543086757787345801279268718412528917852761873310891332951","9862179791922739251110641011703786658422645603270541087987082327599273828226"],["13616681389405152548913135810852500957840082435858163234246040100592751392249","11180837231052239482243935074912775369682806214040247133744492963096452267559"],["3349836248275282776218286483690588983897226597369604797012125351057836675978","14057556794883585351990708449209680402447153685956439909267478329919089953131"],["7116888146998148544032572399878852376346158403324453734524206930398874506532","1954827320647830861347145361312420427083327992373176665047348118907488192350"],["11305702402379862134866554521572693487334337404293111811527293283938001357415","20835698918776154178463237287887951974292158367481195946962228577006679871557"],["1829497878901874866648253155938013331325897073669047050768270762968619700474","15204969250076333277833161712966156489752544538935867682391198516874968033891"],["303385765930717283070518688152518336350653502446082090874677543712128194555","4808792688232866915090274938193311957083971494704669072703861292580932821126"],["1166739678887902972061369971663155904510581666688756819053716532541210205684","23570515253448838518348233631579899229099963565088308929739710886132863958964"],["17398108719773481925872763672880799750755232214859908078025240021073425008459","23100335486042712092982954043221970032437249937432681191384528982981856006410"],["18949290245692136000490407924041153744183466473538704319390029404989586071262","3416676868656192563032349466541971302906553349418124244578612075574606466572"],["8326265128192048341797661150420553978842184503090077979582209919344050066161","13328897995291104897672364803572893641313719495181202712176141250662149284163"],["11018424444002623574165304486034047473600011566587887698092621154712454409033","26801846258033713384494305469650075455657337344279666193165091035864440146964"],["3195165283503494419388558662877515295887481893181928649481203217037834121363","5483611851025043483557136806450410267439341931605902803763116102957355056854"],["8082948356485753016137791821299322704685460916015236675339687760161154977727","3145904969123325417018838510461498786821294325314885492728149296399481246894"],["23401411907399679836150324206552746945478632350168271986280202447315625732672","22624468235535804931555943776739017789137446178927392188292421342842358496317"],["15300771859942687257192716315355589746455090026487149045244171337918468141491","15058809257253773048356675214641521391123364678544890820765457070981426736025"],["16272319141275463500084046867397603075002212639526012101179178114100892204942","10889164711864357432443483688810182530610445592601286726406791864622669612486"],["23453011116613836486802887391838307781601526397532893639798605709782741579597","9795761167677953404943860161328819459743251855077737028229573525136244923478"],["27241155027540577454319772919310752724556351032758799095845171527413476302299","21965740813307809167248581778785048668731963911584789667075713562468960036679"],["27933503193315376944221194727380725472754974311554180318669761661416436411738","14460090392854291997704477511894183065595058023114900002452147009679884483331"],["26323822618596034739851167092021092506493226878584118959049953679503265063628","21388953644189382817941786183542490228983601471048476938787298752361914212856"],["4034771328605509879946344967579289316635215835584212464461600896806939987223","11312501097270583194407911859675570757511274390316102895011824810998462903517"],["16013458688520855208226722022682093415175639552960176321098798730350912697437","7059917329077178872426287060550524402038367891245162518083485292994399956836"],["13449239187577260147270273663570693572384906995338475775146495478644555921110","9669553603792192026158787872080595858271012008412288976428323864449010365355"],["14613963940711851426018626519086558517920596687047104145417033882133430995872","27887569584632932216849815493179618219925730420216457037163431510394502381511"],["1513192030102270750739807594155962359956519063865642314436318120376749809459","14147063159684275303106797946014450127556825484775532812710248883846597936043"],["26138532627225207722497124285844455049926388050486848298243810653885495919128","18082925311702746093817502345761669780027380575517765244569019865523629998746"],["13013206175894629102713895191828193026826592087696130704824893579495004834389","12323094337593531616999082088038186810171619700176869248613306625474121595356"],["2105469007874795232946039840318688950324351167046654452017379465102495188681","8509765285037127810471696938697325859147362563337391226518367418844172513543"],["2264295900950198716485608051304076331103404115764088136739143615486293773583","4135963909922777651017607395583320212567535832838596004667190828675514373996"],["2194376411882206250915450245070963205580832025649784614682656625457355186925","23199124976654913027648064324691047292527071582045456884126906006161782503874"],["24526786843404103211183712340418356432932509022223527677857775630360848976212","5642844161258229786486332901787380152331943724709423321520912483546735570078"],["16939732953023740782384154456879926351517305776799133348893607308412851115239","11861496435276190449548158836581643427672161045048426477345636231062745283750"],["22967123048132858255703972837674628356672566174190019062582204338411993592511","8504724782383706108452117049794626919337284283493493799772659236732070023434"],["20721822011602451007645279013787399026983810982467188720384245445765832744363","20858808459467957056871811890658927252722591721464247934520406399473039698130"],["20577875320806342177033999245527026332790332957252539179100424171461157835638","28470436224534918793020460184412640407374569052038984871159038454123582664791"],["15661890308836551399663250962522592834571406870339093935933974434204239912191","27677250876997929115393373691666526179639411547150746669988661120583153646552"],["21805328996185142003970910975012258481780790595113693360263955600683089155748","12800296348502093965269877369384617691131767013815357049659527176635776583462"],["4583238932715311781941438822299033615894998688828874525335685382021388667117","15122931498935048664407522769397727917421715813168863600439475759404462738472"],["2449342019293769035515600165339184913876776243885803374313074231732983571978","17682304844951711785682510024467006858135808575013996937032437510272351058735"],["12722406830280310608181975896963280152062587217794950524340829430362612408229","34466203812721204928609326630444368798841223090280632050283082120467588258"],["23453136561735094382236078523758209882270449508854321602459230325236618145761","4456460392514848951184665191032738148480754129493214655049685406128394776630"],["12728653845033840600410658172727589973722069042905231364799368358058752592817","21967844859627932964543595562752558973990275948664983087349074838317114957174"],["1201578156317717290265050591254360446372940151462653905383970792379781647742","20495397984694565484357862891015895719616995056153037872036782324873096807193"],["19007501534074828501726110674091012863269631487243887657466883075029494783013","943104602517113264346331146158704567133103449214889106702976749764173507435"],["15880852838565358604979960618354500080295270549583483406030699274524937762393","8666741573785444737965131089974126259100136802811989028304187096906106851101"],["9735187928183570812363710318636589342422221695761594214333361950993468449078","117005370238235911617708075228629494406431422566747104484208565854741695986"],["6916932461393746430073063881392255508203898700222879516082824925805896391331","7262378607767137499698827612943844200049033183090146998740955774128396220966"],["889058730686197429020939553113041956514971954373960899278863461579507411358","28216058663681159586845437547122742150965936817306732683493037073340555883283"],["14043101289536395242627985190936703240949136932578735297569682161559659229842","4309179669423337187280232472110860942930223657428665505446481513361184467942"],["9088029979566117888497271976643927352516994417903493195523772081443777283382","26811847932795805105166480366095747863176574337891439716321762543895661419347"],["28233214060142983625708998810863304787763433647929818794914749176314733048518","11268043710651532887110939222812276324530094604628656523299596253967090827275"],["22741988383244350680969988526737762137201019133045939260418800649001689764806","21413034000332777240964467226551223598733439149181020189755186628402907269028"],["9409940242395740940346846098411137960566892585059410993137304664810390465481","15669173125335137094629485303198869073109617897983565913023889170446725631479"],["11223550667448606884500077135268050155224797680581858050123406452527200627140","3717474543912972744971572400278388893406222099488302317283764897305376274061"],["27552515062373664431299885330089399094035846870921122087098438452674911635699","18244515464114945994507613257996819647154631444360916864194756116205414391147"],["28694050005459563980893024808623304766334215730783318778825792465697015889746","16508398691963824971359189591232510265160464358911268422114526502570445918964"],["3963807377083754466624293648891823197729053862784203007260165578309023911","20041319728897249882265473692464261073865338539786319153251858590262955887798"],["2638712319872768178592511111306588209797962884071547771782773567036844720493","13265874480022764832198481376845134097075338243415674176459431368591693564115"],["14442393128644795762323007291488592672227924264800822642430511238110372375593","1241933213934303313943972797263005441509332206516624708348811228543759140914"],["418206424703303588402599159163293352749764631546918012472484321630624884212","23415173268819716583497885264784627370635417015610707556170767599195528332168"],["25104254456853138057073291336982575073222487468319337642427109000890760932500","20266239912487570699146698549477451584368287508477607329015232759239459938716"],["13565548677474622708575288865694967205041619033266839645383614015825034435823","9917617311053621048332426271501285934039850680478937616087763156301129646217"],["25117663841306777299809792076728513303422317427739382168257896795388822315854","12122979507528456394727495040432384341975724987592689986228880020001463386114"],["23701214067118037981256382891193342088696817123192442596459078804914531822391","3513378466381353490724316551034881676945858606231641037098462659574156237579"],["25931855820749874089894144762434140642771776003050497154579340259364641875634","28035305478281662831320172831064414901861528723566051259439875451361812584356"],["14343406010836822660571075458167257238962510082569548762655538225110202251196","12463500260493218661586726102329924271248662182744170586174909363467711475162"],["23541012235802571226037062683147786539273082909175170696319932308098501956354","12168466079733953972056009436867457709433260048125891295878688576769085738103"],["20578082197427125131300361461377384917176260232460410406674465266252052046635","23532973312691748900164614218841470071031858813465077353377640650233022402064"],["28832487924805324982490997721628310524553890598520259502323970235886771972849","14999943891723352231060506825763851199915613436162603838566096020128903874164"],["17205490831405225810616160929069289073810136626495026229116216202546782419831","16680909662393698320524589614290077810229013528516180021850834757201689298236"],["13372317985845892616362495716278498491366527785614646879427887098636646097559","10934265252713891695115247395263376187435644179319683047991821308017341949551"],["6311407838957651357985242054985249465367446286514210836423270550380517733469","25601687442340849110696724415529949236968697491372737924752531005549951474159"],["7534947340336169312585206478973139397160370869603267177592691865350292460920","7145009278048994135865118782029264494757448581289515400994691405598358382474"],["21159550277567060634251619388077660951268026958304141564232567351069726057986","20387325839133580918830880362124576920108257351652497247179921705185904649762"],["510874199411684678640009704013587581548551633180891506411986415189098146428","21998132411291714573058743717874450772887592051645576132040907095585875872388"],["4041005923537174557718215387606622072381470470048774169803358950983522016528","27258860008309904741684750880813955325595648235960199415678179934320943424566"],["27912514317404596746174739194403445287816558667771956083005534091624351644983","14573054707950815194488968342513310957814528670129364901572307657279218548603"],["4590153416027971132756868024581460390828274591786625499926978286817684124453","5168351194330207425717007173380186794661428362895103249509426620248758124637"],["27744091672084872472195673354128386614175255263317626853743180907382495025601","27920778631354192965354450165407173097098765724425907347891691495704713420683"],["25651447297748988123417236572308282746422212436997384596376548592981100228250","20092173930794750492991600435744982537786102863519185313010185951645914898241"],["4139750240672474359900880348449113502559396871481802068020329256066566272529","12316592987018861818403679107055178525776000008572586431160599214083664582580"],["1430078007211723043777764182826594060313025172400800149182672232533201590932","14793164905500170015227715590987783234605223121982530872526049046322788653135"],["27285201437147725846527570755235657385418491067755669240181024460082347961957","4727638503614275527429883857602111176810245773328491368097214414060561405569"],["565585185373319341115791503949438189786073890827922674349447223239153134660","25483098773978276536547730657170885056491167686531221252226370659316978538508"],["6187008277044733228197123809221999942598794777813037235704642492230716216316","13625640594723521525156322799288525401061442071373089093399362778692546320231"],["8542742981475314614527963987607512586808105686347974372963175721410877587728","1307800176514752178805992633852703386267823198077828972553917426160897650569"],["17961980195795948475374554218696629589597404123857684710425663687936422555269","22954160201162867713876460163240101438920097020694812928980008015696094243986"],["26264573325346955745457849560266598169059942527256128581725774025388901366707","17258384789054256754896875592361016992492062887395750700862599629116611708546"],["14801600225323992410281907975887106805519145983749645414616644087298840904184","15732970706791795836555952079134124385171920059226726416011356045013692860268"],["11794945858222306436386828059395072011443187061019068522725137984967986334754","1427133156044271087182871929599881163391676181858941350538056278306236783017"],["15327883652563817773533071370585529846670328043554911048612169913082540810974","18382192763985760180972774317945164202548897568801077333925578025336617586918"],["28760825141797929685920945465505216005375167190974324308240952421905541129324","10734765711344106817141178306487062129716583898767671270936090947008280764731"],["9079024020673918935503079814170858564233369269710247633619528148668525286955","7563592444020176750042097187026851923090496394912332380314024350350010653697"],["18574144422266306478015557642715123801852297915805115060884035813214172324717","10772621029859520789106244732737822815577576467975383650651759975312150219909"],["18731481192156210251820715398835338944144630297695812775299712068410590449333","4841850816380274662999921101953079712877801394274593237680195657997254099069"],["25329190229425747711744052230719896208291519608343582819207857166122544457432","2434600586778740337907616993892485470297434478143513544865287191740274176351"],["9346387148808901286749422775273345046297240265332983601000613696154502214387","19397586822392808382896417336444922693284028217659705325236858293824764727110"],["1893331074212285567985426916961313527102157156274775731691033815211162759962","21561249596474558286882608891689627809949787243597741274400701057530199030719"],["2974898689683203841645135161740846273993918747531044997802309099803304212675","9682308430327364608789922039624336562146049818429810252307699401807637713597"],["10290370139337052657475348222467744523324125038061080339552645432177736472164","19339060950412221250630445988217359024628000405470597817682489174370259884044"],["3577881081939364716122780762617096473377432698796240523061315217150560412672","27079921902450138156853601631095033972443850872680883584422003500349050446916"],["13442322224424953522969724564982229574507642857454387938448615902420833596947","10195545977014531058996486463419321048107444130925468860514594985404941065817"],["3326391444731909254565164312140638675631663796855854414965075454437798362028","27177307593738619035494950957987387642535005905787997964533697972107164626112"],["9340453120502199488145948901894591387287831067264866170923692360537056850478","25109544879410937967354858625871156625782403322695118170390775000483887183055"],["18947352638757025636105531462231646715631156341599639506892879673431344420621","33866202950101539307412626223988033203625542493227767093173973383663906382"],["21248417887659894849904918293959687732063653057569391323831586828427126500311","18770796141998674610107337351251010279666686719441347716494555650175942017432"],["22237214532788451062579997970141395366089914469313184374463896522807714904894","25969364013452959260229794240680130311396346986242875177043521512868497161282"],["9527651268575434700087983924849001135224732621177406069523311828582864681321","24463925398047817138574821996527628255215079464667874020602501370339570411938"],["21287912451200889821470414559543321651346369870216390936322219145040685667715","12115981703162295223937882621529899275672491006165667691279857215589458470958"],["8503145915151314696849037164237094098130823135600106575574170082129779160112","3568189563585902143889342716282514689100188090751911472614080229137342176644"],["2145413854992896359077078513993246445645555281665235526611891979011615084636","12193376546457607920040539174082996556810917013917648023574626814695876595286"],["4196131338013059054333871656247608834604222794770924304778137249718899610279","18359565619884093038121905220328187112376023508626898899109082943524947377866"],["33249795096743918062880211057271738954437092953115741022581005501172878627","10548695939675440715380964265938881053175714645388713185105763501910655380527"],["18698204919178086606478132676587054981285735129483588468570684548132011259250","16165631381782741195390610800068059861864285546347305638861892165010319058648"],["6655496016689810661654492546237903891728504026619968060838041825602648697282","16990183095370444486308608816395432318581328331793710737823056170363972360677"],["501653053574692282106622471876994632318534513100317136368903403729944893427","19092739987556033856310983416633480458262425604456496172307489111731762240591"],["19966056299952211945013777148269548581843774053041822878888740484688489879932","1888700698194108246213502371815562275649436571814133501724152028490104798208"],["25500902033066116186661526391273236783272593317843805837635722908697782226571","21656071408849732826727686976000451028588693372354349937077751411005901643262"],["27170002228778577991084098780710309543311785764918303138609632519828741314725","23780109704745817353169484449012788696805424124295595940499685257560918656232"],["4426698932057611805598313041645432382995924339746813211690914500139973251140","26345392153337595262274541616656597038324868296007480911616058132003468945302"],["1451083150336964174052419439954468993020281073143932903640313256178213554202","20631872441253636123852325810903556628692906981765341970270900665485195427928"],["1117805947389350549756678312592065615945414837105208615989835733788339773858","9936587329828918396990740469181385777109029652913119164284310989261888511814"],["10448023967022468992811635378199415066841555386296467284892943149043689070115","12661133752343671523950964770529372402651304349634259197299674281534102980292"],["10969176279563032773687052521478813704668920874897834708891663254301886703576","26643328059861276901360383919917047596744778460624271562935735631785757137069"],["23924722895441565552212940132853410473637924716016881011435009249535279292161","22307869473828731547350327710587978286656209285847044387754042733085197709122"],["28865501804341015321825691300030973652648230201127369794621160416222948591501","17679828375774167967546744459039599911375921790857457014478560135246361533154"],["21894402643945172998077602900701085416901512665670742101495259509269813974380","10492358789984869000272923409903339599654531146221971952371465993311785390377"],["14151622474218246394516748676475961342574442659342753172849140263711226779211","23060546463404718628178763045228640712033143447118439895532292254137803518538"],["26479489763223468148692460688270456418815593590074795133221896509007963987620","15693104554262177839390707949398950405309911238486847370314559031094407375826"],["22418680627947518261726869402546821694201356110843333441730071060418401363225","24076945929713573767226295673128401967319554105361726343895692694561489473002"],["13432274266065670744851724094249773815741840879543671433118339836784021904853","10513915976483782460858383373244854442759749794785929761992743091205547919417"],["4545600510212270257353200402784914332122731160128336306137575255067114540991","10789916346314736590489804209818367948968104478841445633453890718743705354628"],["28756870893915885838186129203632642435686981602490856282842312005584320679727","422467814405838052239702427491399208950893212883138171021169775541827094170"],["6895589298887879041443876250788487962721207083051054993962000265576457868588","11065101382804044541129544143838450078340251689942525784511139792341544639421"],["10926837821195711256325479656605705369309588065769146519033195027161872152990","4060125772819914009185350905274330651111976180019158057350468633951701932916"],["9214725251109195177067404863003067714186809588062411640408663257915483693300","388027828624677619043119173100892661137099899829302819227420495078980745663"],["18956829180507654343063508541155784624255543769767922802927452033547286503005","7795309662466858283746942880959134053360886924665151504929132485385377066136"],["3295141667895600500124130200372946276555944678792768053190004355239092259217","28400691504600827667691014239574470363537237907774704660681960312741067495755"],["6660102020556081946236104234839039606687430697147154068960105179022740742454","26923439967561253771077070238397614334438408275113826400943416523548252207330"],["16008378935497700514948584852071185930912353139272005336994988171468713304726","23600271242911311337185800506896865353802324222914326378038535148312432002257"],["11681771362493220440106596523910571796313733377285403819248482954607410543783","27287101597982684111103189918812096900651631228377881111360843234170491315110"],["7650737629929989781468032941867209598406261738485941496518968144237375743209","27713494001549585004819193907642705268486953354226780688191058014113059635615"],["19681504407896019055082441313827362995678460457793794561379622143909695432217","3851035558487076327160719987319626113285424071101333271724238199382228432503"],["14731945422885862816682794857223457566137445778009101503251320833164683138371","7666903443452804466319588792030822501061913714691792584002934765097023915259"],["3710475132188947234484072875212684953363084213467130537194502097878473113961","23896068597425628280192469156714260458404211196041483291517349546998175222331"],["4493045454689195125951741728042363296270612087499784871923416680061551349323","20972465479431484788608846816994351529955535932298969345248156131935777747588"],["27165311224180538315727170254162452240225331679832221687584582404937323021908","27146989550151279657418024580722786133240857539199919814819308474507408958833"],["2559804747276370894345543288297590823731416456712226486200264994349721498927","13337468229712880644939553262337100095818001641500625271055006536043761114185"],["13942099757103699512499171725581921381169700641259639457728937659545782851482","14027542783771443108727991327212617985666082456933636941622538575483957180254"],["12597675350028644214539765378173244542217498703252792573734575850307882389305","12685800209966239109323371233426526538799882900230668996963687250648641410785"],["24335132816111368212187259762681796674395906279220477191518279218523689553882","19015177216413161352071310131322997395478034559637258031457763225373251587866"],["9892410684324271549131328311079273053621345323065065677342421692872464304958","790109469784340073823860180737572750716689761574835132307440355134403435067"],["8260595952625605923869272004184824521047405664412137554628128817581877161424","2707821664002360025977588770691509818315163658438004901940570934808405601907"],["25744080699765138159912619960498048873969227096766863041275386097473260760292","19168065390472125997055049097028748408380145463721325304234308638710418442776"],["4377860077747081771992842428110283466557442798188035364309774662718061267055","26477433191862878720288210250034995069759247527648220237380194850224696026570"],["26507055717808612713289627892883587242880336266403869644307144504009775585634","1797618573730584067469558322429504088338013307483800111203618560698977026876"],["17721928624858154502674530063245725393835587282393709410859387841344908035944","971966772722354732417223235797074327785619520502788263730105524404415552308"],["16813326422912732516538190375939173498271150547084839650976623645228495672913","4435399888712854490639955738932177374422093806021574919195012618380934518524"],["23767101476882011006796708495866759437508669294634727147795137479210859938046","18797050599928595352275544510938242759744419924094508499274783692623034924467"],["1918322312354205896233296658309027454713318570282886033091444547539433882436","15621897545461058934150701871978623287582543749092066523803934632740063068283"],["9183764480981249055901150915782276485553076996540451781804173754086029214499","9051444080904656692251024298459982393926966655339448202945210679050295850568"],["2478420922184090092582591363165980664011654380196136253820983901851034535931","19853785925892976849384766846237469638028168880369839085669975027914197559442"],["9996144570945612809316181473630566079057221911415032150296371647421323841091","6364707341398653942844548649095538678086196152994508301232672573565283193406"],["5357010135002460291034911306582436129460317441391605853731622615051055875974","13490954682606372949576713196089091754797742578778042548759224057368492430807"],["1290992399185994032053296592546473752736185883049439714531166878713388433215","6604501073781414937257217085950029061926969012295582815322405415958264347575"],["28194470914381925671685312883677077375441549947510178441113851299878802142873","4680530673587681758824466658895648327794691847608206165489509066454199660034"],["5581010877943171416460889968114687609244163211218489758011252182072177369570","9742755195777651893913503118807184857007665687888015295126958589435400431659"],["740797797656483085129157646445119875410235381474612732218180358900551066646","8377242823104914751296516142728546188022484047524381911810103745790286816385"],["26574698838031363474650845341484719471395034123682220537671199278845492378441","25309219084296993834294690044544899787740227133521452222815944713333368873576"],["5445557576241302118343259317551008821888507161835310070187333003885246128966","7727223095816954245692006167382406089230389069825879179462849304865820103675"],["28513060527904168528518141479626464131613328977388024123419236036010206697378","14838776999820381419479613134627966897031718795314238042368142755868636506388"],["15490834740554724579034416502381034339205760562517750005509359877438625984108","27912594081218888288127083500052235040841731557416780707161448652987375577931"],["6493865404754895292203739806246727361044577823695860412400638481131102298258","7668925062588650061451949776925129914501702149526672926033811635339501764087"],["25116124447556761496680242360415965420974974590189050282497898699561575388339","28307207151789009076121924097273031336020244496504746966296393002145540485304"],["15442029295629688309567056018619786432351655788256187017732431193723898645500","8901867592977558852687434990545599892986757330658649724865424232980268644901"],["18257647251662202610760699321993919254837741367070551890411181496815861981235","14210523109332611993887747320727571314849650883043794114095655058450775989032"],["8068988767648757894520705211870758175155635483683103135482585493022739578271","8537416524173071709700643920811969459575000049784920684354720472025493500859"],["17583576082770301650240964584819595041624586528668390364612577970257768319351","25597796636974479912764061412685838441427977355312405792905892872802863690745"],["14476114538150079122626578921945897295903465589123150529398988216009400437700","12358589395871974965318830978513337618258938369369466058706246351602140023080"],["856678994742390010293514995275084084108430698667248483961383975485262839433","10698956736876045953848171271292440562232635778346241680186623776926472635394"],["24173639221221147320948875599674945018241013217161026927821853935873401689803","323845581298121888399253303460642552655948674901754644623006120975880755559"],["21019690928423092566335188950446972639280270584813018933825601158372582099753","24202842226651569000891431717354801668822494292730557771169483771395578457452"],["10917682490019983153827682642077851325881677580516095954721615747124589081123","6056277798020628182386807264927750536647483243484667759813831802279470649979"],["7772238461382670813008402695636610673108403439762386058093396876676031576338","2334120828234992057178722444825336687813587042611621728076690546423423959946"],["25187095326621800483775406767831414786695493449858828228348982723040659128631","77210282248612708265289554593972261894202458307163616000468836120763224952"],["781802603152982677107339245408711674275352004480173274870750480763347143746","7073737741377451270419491664945000135181709671400037244492129552310384795550"],["18640412453123334047872202940276310563706942575766008848741380412216085330148","8127758853154974556076180868528351273930079596261966401523294601537645912715"],["10658507888271621103902755073031539930419062403365309980955899049258630919866","23761421672423361168533295322407994833183498035788496974603553304211309358106"],["14225283519742157361089805014567215241903072374103700807037666975084484210516","25732669766429205067391131359290824129865453397135101792142691222751633770761"],["8530288358568022293610760572301539269404737548110834672132203356184129859663","4837179275211806675909643672567134032982207841561760486612141899013766060868"],["27609607856025354341268862844432336058201337336281904704075039596858456483248","18699512541476877229163451701442136129378280841622456735174525026049575513006"],["26697386720946119980015586163720807854820993601629463826237282216132896955467","8295797944048289748064175959279127731085710062804906585110800290487645947911"],["5533461688849282618335476301710745291180460109940639246912206700940197116119","16260110195301246749242460212973258250349174069686643590006552197982024231728"],["19870597727165807780404858843836187173796127696333981606157604405764831862018","25731805938866632290961553112569574671328245738773991598798345772660240400294"],["8113902469044648496152947462184511952750424063084524437929928490022377633667","25780868105362909140219495082974195161467387909006320411190409912698399080580"],["17655981886774272526731252312078113189396964078566650763163108696955273662337","17804801490624605082880761230481225022701015365939760276607167356316240213959"],["21692552965566902213018359250406879564150897834688589222105872492624272855027","2427017723295286481578240697586365600448047514810560159232695456206968682892"],["15574680213837923382168823200319436408933940270366097596306959862655193001270","6548730183273151625275269149325182068713102876053895363645401612586776312699"],["18008083388384665912953650960381755336179352165592180482767655744448489472033","9364062882531554777555500794448422822360535421154893100617833616171733361889"],["4998578540756468889192189656521262063532930683060365457780467755514788791793","10458506940419567791273580814572383822564115533792861409154113684575473937355"],["20506200266049252868723046303933486928321871348506445736196943341470492936188","22697391152986271749981598831014523952396196741308434778016684355747323467527"],["11700311280104308150896113186073837515524731443632771445295108657737046060652","27177957226396814013493735827687502951526079848974674147327620937581104359111"],["433062737743749497062356319192398444321659150109827489319526744632693218045","19020058185609899609400946170323978831455853020007029393156189018002099768855"],["14948425356489657180480578017613642396365270683682205366786500460662762343145","15874014228451275801914655182933848990643705634298075751849047585220215354470"],["12799740539563912236917702914546236237288970258568073208630595595826025421773","7378198191161035723329392486998095918319617324113247302948148070650581119476"],["17215589536805961809226008358177424099841113246723288319816916089618401412002","21703760024789733975320909160304188515965126033212195239254193406898070286846"],["13493867775761981128283534490041592406230630676385505917440521278013351053309","22316036459554861124757344424204624933120062750000686086009099274050708395095"],["1571626205253305742833403809510113415305961437082947582016950410473016201559","3846390960105706140788949415068006424436100208068382638721953013746475398056"],["17565627372747398814015304961902792091300887230200232973880524796232447924253","15625985032729536369560617649282825870039516294846366008971384870211079547799"],["5870016855614250862913084045034263841904311213598473056450557086352092981209","10601999804588270824294042648507778013159010616682414986382951069995086047167"],["10482128836311515913598534813987037266046642091122873844317890397204478767067","11328704891243776500664101710083928082374402863871290827084803308864611420431"],["25923806736070913785590005379488302876734317315497756675535767937274637905010","6324393537260496226861784670385150128681014308030910901166050483442212517428"],["12710847419527891410936418920105136178064492955802797181492941236458311655219","17459933111402313742030821012130505728559095060887293571698064189160687272015"],["21388719085055072569333137880242210334840396340127152451874474806127548942739","17357729910734813498058426660344714681419619173529649038048216708102958897814"],["26091760812646357752229626782778311107121029252537076573199540545034899667456","28086425787781992704762007595484034396162537830031461542902087469037163293542"],["3417704986925138470895098047516140192494448294295745317469170037699451708372","419915150796435102324885811987159680230270089937775180390417063180246164602"],["25845797333309326044625904363445350072416682015326215825414281165969835343367","23881048759479772119840859831569130337522394198405279951716684230533866664840"],["24602728879537371040792271161037805855918401325828485444629593496540391578609","28073818647270550332336025390932794082088056087640867289710940419199998604377"],["1753214166313054599620106434901940139355460617810835861917517169169675064199","10651342202066469137662139218535010784181530438766500086984320039176633111326"],["11373616155229472783018368395526315375468131589128578214371754388180090732645","1432735925013326902713502330778878396971391464649124165710383379177749011537"],["794530079669329553717903634609071638249259260357155023881167693347761965449","21880843564211225377349600021708820228216303943393352739258793786471464475718"],["945932640635542486580711590257795023503173135955141841262488926988317074413","23604706872396852197659254740642820685570253205148673164652449493364149003961"],["242233275143029313780233831157714876892929245164135011752705160326000562103","11725102097069261826397116050726204482804056676556473619733452116639623166195"],["13706172595599533156414842929899793657586430362076114421047561725040469880246","7340003897964835757323033667354672390337744841283054996639532529935245289994"],["12481504181082325037452564770893630115903507831520066120486673117570097694711","5937218851781884514850582447989359186678622737587164539918148189440025179949"],["1710306830906123764193842687262290578379372807740687551360558264563828386802","425566105476684524234138577243291303969455829361938086214479406456552007281"],["9467982306727394016609986009259231189088948766328638479827900681103568174148","25348283584977908995350877663806450271247412500532557560179037233218476878870"],["1668134706988088618108960783447870972561255264544160440390283655300699667622","20584659867841132228769982728582944822146190738557832775454824306182925187676"],["8512460879125977666112551144505505010706344384234235003903400328340697736973","16022041253503212754922219837111515147828030421212778316488601825963194055986"],["3856420745027101585999158735223228279691745128623274850484681910788904603341","21233790824892792872146494785397845651753202440623606305145508401346019332630"],["14470137152239022616351713254264782219941129183479307656433256784797562028119","25414111393480651041223947101859735881617847461602420362000739248826185618125"],["17500499008528382233661449464578863594821255516069748911140230035489764287862","18131291950216742612363777944847417399106267294690112255037866938706149115566"],["14952724544992209435318265895702696644815685700573968473275698851967234485331","4017331228655759132445132837347345506107450762721145994426537197847397084976"],["16164396606036168715311063458615572282620103946308785901964252829126768714760","7121532800375100278594967900397806451401073695621415520688840147291364432378"],["13598301928807803858500546977308384900648353529670017994369616227912068770053","6745132472192060079410852713180643812903551241883456826798506912840455502204"],["19666004344197547271962654165116763581163805385429753052378088627767823092078","24686720564027018796831767940190300305417204450253627815868806093042342627390"],["19404674631166914966555143697459712131917234935608772847810858817571995873375","19362957899685046079776994545404432509361721450267110838390503924610327598529"],["18525655268341486319389293941184902969413932554919252390626579248244678463783","21070704143581032556256269534429844270094688349217004361961822265135915462500"],["16141754432477004253204967184745175688277867974199796864697972219241960313109","6599894860388943064542003606166662105092132203785119521142951086019735489408"],["8436647359563629675175038949107030752969850261676417195666826298441860574871","23538452851381363373654654345847834916461709828624989562359467176291959751183"],["25122270091645705905631476148771532319828563235133184131359256358279296854127","13040071253178828170170200590997189379936796162018436526779059632037318292949"],["28151871458317027625650930895643931803106457063965888241769407717311235943932","7454649227039086115055997017623650238202550574957437172556312643928759287320"],["13258679782170760468551532175401752398862472954742082233672930048756133039031","24452459151273006075942329110945886588551936325627011415969553110160800489727"],["7753782585474687349662966295293757725400090009696051636538832427543863022902","15209860900350910891544288812706554061512013899306857619591279510269188421820"],["9730145951634648686009554452168572388028104329155759072349254981906016561702","9390901847588826697499788107189436805454197696340990199237952523041655605142"],["17886661287222176865277755650697205996510384783319252614611921012544918018575","24639215868392127854838947960668037794114188234556567309238732894765642945814"],["12392014300468403564776085607328658997780782031461998537431011540999846169876","6447125570150401275405606383356049959995089098927670107773867978120012284706"],["4671886855799470513958223530237908689759547313761897903400008892102102517747","18529189303675406536713451043898260786204885706887004598733022111807948730379"],["13774834411402633518869038240643907274303981822818353009778916795146449605069","5755447006039925400166473484875945490254844111241089676357027891251053206621"],["27991344011714158745950409523150146359522901329630510130942616855896384338067","1036401386161521585336674213530723403168609983551573226240626378997816306814"],["8666606680535620653678245155932244994432170067722310551750967707941896517769","18890619208120579489448695041457486727942741658216107180834662967094920524932"],["27358852666509808627057082496466160728036863166099268629211168883644914968964","27005029630041922547476348883134456745461618461710910474968541118385751007156"],["12732026760572316620830996152761588720231527217275546484290139455333344673641","804236868753320535366040414837976295543791844652900189960152693226351594522"],["10821486912859102807728399825563336484514338161922605284164257694297899296070","2153402330658509888343197240276250963808284918101747053642951395376202208435"],["19386949063756403067961498610858157874712402752588147202880432324424869863220","6431587247329620666558172591284179449131723522706647541930290403895082118415"],["653773729678540221764506579788497278536568243363174362644622397836414842880","1864714152327382592903195520083859913474717280745458441168062206033848012021"],["17811110594539343644360983426959132580417879692042474904290173301626049565239","14893096547757952820619020079714413139584022181929672130733154708235653014782"],["21534351887172279254812637078785686905983137446426713072442690056735570277539","4288128336512128427775505813339919769353836514991745486217057108403722600224"],["3546441302971419258206755185948255771172252759727196372628841255703690897803","618586170967859028178555179855944873539938102220653965963302215959177403442"],["14332723078367612647891450587191900038989772907496125398197440737297701820732","6063154639064597571644889131718134343759829073250379140693391893502362397851"],["25741394869815310548409312742262112151418773747849635328792238642942640699926","6794303882987612940807964468423745956792156148953640042486940949920061834556"],["18806581082894585374155936271470695476591161056972220006624956419959396803075","8949534629752295921369414421668955866439748198821628631830792407742313820305"],["2571450052337760682334999082385733683989403360261380994847336612423604448736","14539603256190142628487796764001091393975216386513255017845693192617872599338"],["18887652965981551486667846565420470925368064367261705132129939624261577419245","363402676648536772307289052708037618375031667082525359144477649759352060355"],["9771076529994863799296212739388900869195762025710125558171318564840100390937","9301708180025746860005948504755571341423133263943564390393409602349474255279"],["369687263893421324667441397970027769754938728545815216748086489838508860168","25883601135696264317716177076961682864023102357535884658894860581464900446013"],["25339598751864371934711714867134365058638306452273495813763227772480341812947","12881754741707938296912821805962643413161077887152172563856590021803009705108"],["395925150469622826646152350522856083861721734901043885565286008370419349727","27447568398409779898220332539657070318598860641727183865230610862538622574747"],["13360466532587615247867307683510563432134009321872615471517115542467622487505","10142653310296216374850697343607647795556922152907182304435784673622261097784"],["15054084314384566347634868279777253103376547879753318774091450929486945984261","5738495865671554683985129751061796244968357094421834275248799205246447802759"],["17773491080373323717369452534697070419185771869045839705486187634371585076518","4613905837929488814173153767874568513548323113134674634010458738723382233333"],["13933098588699664561844935556768353708743660839924873661043693528994722274163","1526931636451476672529345002451262175941754319897355523988926074732869188989"],["25017609193948105676302741684958082642223122041080786962234760904056658758160","4162495047963393884210341375532673997170169483641223277143161960462095735289"],["19830421300341971928764035585781638198464469821340857591600340760367920794747","1639462019946648342338339672612390052305591157448320595259256325915406695974"],["28840110109117270753278968479160432069222438008715460930230376549782083442026","21807577837890987742081976277974221863699126135483108014178041485239785916501"],["8798639939527875332887604872959283749696769951185898791852619562718541304718","21962103774896784141670742036666592643066157559139479938017214352940182693842"],["27171783175330219649555146859332017155899337102918426290556393719803880266100","10155865376301063087058569340840762328208382098311899600391717201653710702230"],["28497579457985279081925927825688328508595317666185190966766452572704778105953","10762234640735916854243876169376580243975850166037253988179482260384781604651"],["27885615506888853231493121127462496231684892847053293200766024020859699530754","1128541302572737842422357456712519944595743658835867956284662251043187843346"],["19987292700541228926072979204422074306137394264441873205704274694372600606031","11684761865078680141335884268775791148131632801040339182271645254537965639832"],["16765230842564197260139176558614002500523885037221847760842522403134710311617","16323793096966080533633703017593759680173359530755161489935623425321278747023"],["14066369880984529981654939143853844310397550721315089507459934215406146646488","8387428270508105927913550296807164620227781112060035410632369474121907661112"],["15260060523282717445585974874551098006887656700613644011943951437979292813","24298813872242050982021448679846203858445721745052729413194779970660863791591"],["1181981630111004171624718246372742700706808712516197193404425615749884729464","9610892982086666707583909284318235928563072872115277615332809556715218799341"],["20822098520584836814853381658876018087079705074459199272111146209272797830069","6353017466454013691297989995871415339101314528996255365664917761095465135169"],["7898651940278485038744535472513669975413172031521474232105779327713014488368","20128655950608534076615492869423636484162392892115620482551034843492770948248"],["2230440050580752341862963384540061535696297412582240545757370633574022027152","14566578434092904342773663349375566548709621989755950327916213263864436837850"],["22523905059559513501386056652538928960529080708435984739114956110513189299568","25815425368065682864131844468981104856172834515009164404902090517250755530252"],["28349513827856870628148573783384256556782458694579679239530347290500642520293","28813871073931881887346666346144882925005630506564841219419022966831806641919"],["25438205527047801100927130640121505076745494224589616251590494038939961758719","10425408917277109590647592046927633143226118846509846683488484046876966829025"],["9963667377455412326232610117963759075933443290710221830542640125974414103131","26150555943627051464075138144958328560436145613971211814794323465624984363792"],["24012960757882359570079806633600281119087504049014173751574662561477905161135","3469293435467696863329618322375764969407584578571122222888403995249139094459"],["5436515351087585696737466599763418207510977551594534787518864976430472977515","9394948636547832469607122629853845156046108916261875916850278101000899005263"],["24210663949507173480606229654075978438276644548089100040219672109996515463470","2994651073891497509937390322809729762509673149074331322466594719360670370381"],["2685553846818205562331951186280172306806939594965494300955698139070095635617","5141252569832420494074117727636748918310444071451952383397204000649984400368"],["12105555632031239378006792903408408058851829120079478312608829062725985693094","6229817478231008552019315005260405511736179473306475417054234567817107815980"],["12125049208332937024446534162086661381119957616373485371729289234870580134458","21591809063111424195085485974044295619342781434034939724065576169946629987828"],["22024728619356666514712604737926571648569067596536186476624516674439632737166","2625990783948557439000260625112132843676658641579135744579912088207497267027"],["19920519877903902774949424259678691526991111703170419390763241224889964030647","20999096742169184776470207131164815752392891872038422189308235610982076843920"],["13594000923702200604518849718976238835972206142209164128817254630145276071147","5496055050449029737924939777108856405775939309914823665295268319263725504574"],["19084222580364912560350188431041005853997253586010098511113994511382954087406","13834792590022166849067598352671093893002031916703533235430583923911534223205"],["9443398284025046990639948931816327381563911870627600310542439609484640238513","13308673486757967007517123186263336515304030917641683462055871685403860576052"],["20352829994799014531639577717474656058509657733095306603556169151568814307397","12189344749266795164289062061490712001946530371917645757968951495382915039789"],["27010096988583590579360195263275798307976685966148093107656729289529204395445","24152159387541386009014716947393342343938222683500906185610804470906436884162"],["4174861294932861052237579576060981005170606386623809802927914635714149558272","19766938287847477255540756370835461641404755500778821959609089867296741376408"],["3911424063072268941821668888679119948891508039561942836932505926546760402189","15799319619034780948580777164491063234845621420665771781386511835747708189706"],["17119048001679884766909432204975165104285056058491126532127406786969065087846","19237788788225171086688946654989732222769696269748425168283521427611553386593"],["19118725348914098567729063411841685642496194037327590436321973330405479241309","169379731832519951367306095856026784580562243378001227519558909931926110573"],["11561165360724650662110537041126293746586163613400486751395429982164719395449","18647416994265757504409773664195792863404466733771812624840366849603993156794"],["14498127720497722054601183950691826760459818569476602407516173959953508368330","26026218454636385530069177406524423249494170855360836765892583610276661296919"],["3877030069096390117417893192843037058834536020734477802334174425874630998602","16650904212301149550805164678267347872413795004413140904990528528005046061332"],["11498209383591367209947491061734949193851893080749383572181101608823893845772","11061612760158815760208293766173176033564050934082705540939360968032516671937"],["19384709210933292463685271409825248493432463394063437998416502441107879157638","23814857125280040552497055000763397193055765050049990586020528434411973471937"],["26635548545789096960254590917083280799782333846305596893427981864254517677735","28401527649640802235612101416068864287220648157145099925660540397906709630093"],["27872062234093129352121728138662378551015373005740484615932933314893010874793","15686291081412805139030394603385721386811681337807911374894925441572066383078"],["19006537219054048653118912643025018627307380006073156916039285443315833420267","13824217837229971548846442828402213080949947333411463094402844638594838155046"],["3612146303097696941291165778201767636741463015217726235960813480933680214991","28203790428440649371399132495645232331746416848987064773162387918865052177138"],["16439374177209502551875596243396173582829296617569674100195630799215069597004","19310107011597382911226758980415013402520529388730971736113635253312348924496"],["9453887220637088711920171483780917747224024130445088446549988431895884761063","3153027070944037230930388544588607416765857386262003160558012383117097940377"],["17968452008902320591016053399925498640065147549564340429965715473016794348544","25187461460929204020881884147166345408417058309265971721137532151870512273222"],["18859122968771677705466692838680555972312804743954230342452677828875888680377","12612813913608433361865619726743369888187649281781334339243013608278376914329"],["5530682784076424269329915889650317152583662426887205715822940790416118121454","27486389143498103941463679034833431675036143466669695976129994322140512442367"],["5573263873593720340642747282708115351924230010456394920120179476577258999244","20430489966594716436599140552756996730245529693429075642899040832870461530236"],["17072193631597025555841160049652475888951386723894024924690310943925576800428","6692294404945944341136896239582076820610129196064822905936619020398905996460"],["6886402946715669116136384688669122504292160357180651173207516562266642705867","4672668623928276022202153930904425179618038644812250577540164649259291910259"],["26252055305127729313280797009222133573497954098210935769042255383097726341340","23017519152858903472148377974636784917102006002874167019331657855336595306428"],["24493840029354814837227536742698023248765151791835325632679635887265666456044","2437952875357827218431117150388964540945284905987765880555809396086013227694"],["15891030527379954500526853880587227148324110117060107000251328223460196638423","2276390590382720202571137271349674421964880666889001436515315349409145254356"],["11077795393945620640979598374958006166730758137919657360965512190916544639007","19094767780957445888187495854373745719210786870960393559787415639043244893829"],["1518279462791253527672134836677511292041864327137441687080393953023876787756","18226248785132561897655509815466305301915056581616757297407333018479330891999"],["5538138412462098412884194310123888557589696301304332085274722756499376611646","26176912236128974103118379752686439028433277676438723581655565528287218662108"],["26772438080203781077381287442001932932700698423775201498752552349377178849401","26896099888846337283056297366438401825986701600730470104073201462735016565552"],["27833595569673797178172240237019608050523288791222369350223751026300143236137","26096660626786047317376006474830120445340923167419168888732614998810173509597"],["25290189054499724941368029561080606586203821414214107091579302759896224268420","27936639083353863145928885672287438368158895756989377226102207900188616724460"],["15976146343447000895084018893828224590602520017994536147968377338029639648741","28213924397793874815721374913845595837340485240190663110600439703441100300889"],["21541225696744197091869956527062063301552736668044508741694947975281606727709","25729165346567097086931139224890294019706774942139989458820259094702127781954"],["24964775439380515783415161547495263826754738475224798377993433164407556614171","24845714956830805570368532314491374722871995980358899831274240234913154680729"],["16554129955192533464041626406817938561341423731956395237149401913238759340115","10452444846152165947605347976223278181597767175039782487678376997019843765478"],["27090337018500908627572548669685627352307007053829765773232834841502440647707","7459186717116829158887903292045159040961151307266702351916113537595876013329"],["26129700660911103785061148667803298784445671520471940801180502915894857058436","5584147362884990173315523538193520775469040669175703387038859104692559435516"],["13089385386086198372010675758624605652856973147850845224182336936554463159599","2383209317152464859231775242073387545918841533074626511907397499760601209982"],["13643744590675478069828011006699491455763616206824188119249470961497760388518","20393528330749965778863966574388808948175085697087011312638587378408967339930"],["18823759659627249288362591821071968960835575603650283436831684314528885504852","19827274008171010089279275143625434318031959839499841403675166462432144002717"],["20322601292595929281848169021720985478241391026773065613849825960759413994466","18158853949201305237800170865374559503951957662153805062905930737521171493140"],["19975926659650112729646184110764421725292073323774928460189064205877112314038","20231751196158172329523452991162107761531814537951705338362957774454845979091"],["1534255467247834853841824381864969967373279083803093116886684864799191954728","485360309051301097371331072821930708333798366660220947932165705859629593939"],["23728563348850627966247426688992286727834682163158060524442402587436522572562","24444283498640649280342107353214176047768088979410662598290763512187818031136"],["14732097560998423436492276931600540947280704154570970878314205026585762482398","18047707465226736568115983057982587077353967379636951795913483071444587139400"],["28609527992853840189407862490213547162001144898375251593875629148511370682489","26433261947847066694362608318090742263563067688014361377149689242677759839628"],["11574411848133229588162901508827270674312784234265065162094791524926813149634","14316539912145619459842067653057332880929557101240388959504716820540755285357"],["9367045161004903098663150808321544907632934620119334866402137649158731659437","4071546307722098015028652042828177584203846356604623773885674743124631589194"],["3300861926146192240985387144426211691351347792305997413962308176728730255025","19067252692745786996329199260166797343584567682055131342433478771917226806462"],["19211352367823409854688981533741678456013802306136248943819433540776626539295","19585160804405641520781893811010668986386255862389189877687108612233704392608"],["7405125916290997162038779471887983164517747583016260884584800756907493771989","23605168822272112681307510431022721585291108454454662770617533707886838356990"],["26563874187437979021870789807893908294223367308111017365169801362801159393954","21380368826249091480183331724548964689566545674569941139170000750406927215281"],["14522036561162036733043270280028218360433769489281945519676889303747082641248","20789604681789645447034440434393113007601852611852532164411586424092157452478"],["18441117158903236071628999213422134515826665755295804431764761618517851805501","6613505054418496567867122756231853825621879468449443646703610221996092309312"],["15687741090125924632378487162564500521783497040548499873407752083092817915654","26228952205776187301095539564446602183416178996761784529594234942190152908100"],["24321892482141730211232931671226982227403217612816558988520379249891216580877","28675853281352530748226542502300365756968696141949289581737971269243563252871"],["20841258300850710348731065958991652133557075278415477397007498550602416056760","17539792081300014270735704480326165493364218890557182536003391476962304162834"],["11703179722275277732081128359365353183823377970242606284314833893723745664050","13448600854032157459119512098038196911758183234138623727049399083030409688037"],["17020248706214135807175429274614089577862708989095165405620463480081476085683","18473372490529913941227902614987906112118675608458269264336757802321735947357"],["2889474888833315480115215330447348827508327651814775894044872530457303246248","26796179534119933300435028020727943238186370315526786370734992524577576181104"],["18982770629102250139782776882334272286915605459168287728191462979188467804859","2494739298989698266828972861139840909898587971607421987872116504437957960885"],["8120793588295683242078081711797033071675971839971151336300058865866458178587","20378113029128876921802479761284653505713912683410677871150210801202377971618"],["27699567225412042753946127403120198694664717156857282937478695342736641087011","25807391660016616851609037344372446494847262821095950221567214106556470071831"],["750279983592149602319666769561120186889607851869989945582101600525955916111","551797134278453180869646091679454903610762321792296753905718156085018127149"],["8644626582289645771740729096921122834001418954792287272455425107707855472222","10920809885402413324135241396334798888077980392306672023613381081658519108801"],["16149606688076598131408805402794814855468808511092851634236780684519180987928","24835667171041519128214970041326365675110803724149499557656120045474874408329"],["20113372585581610773853026940947685176480690278635470624218511990941779876077","20475781065250779210926524326895635981783886965895703204710145950518327533488"],["22870229975241880869955928029948940397190483207620825299398565525894255994052","1575767119036856308204839869639568453158617397440363790737169111591548615888"],["1447910732207290034402935075207387095269683502970047412797202042435866159679","5811027058689305729023239929858164143364730756498162055214260776190429290824"],["23581596871168287190539120337102426688853632949596123480212489002136720622305","1975639585815529971300550892526145621351623483421967004681006125928456067347"],["15764706021721514695306410986532109099808651719195535471659194269452380738765","15806009874268833699969271604515213119952163054060984636059033097326602449660"],["2869354926392840571278087258291680066099227411384742022323054911587335571541","1720663919268432635099156574583089071068699477370482640662088576757844803239"],["22153783988141484244544976857716501677892376355595443013522389832412223642816","11122979729987963724810793922849869723381968006491692596120773365281228345968"],["20956619522063516333174492429834525469018271981854087545054236289691648308971","23483273914063588797291281151120116189954133619703528428011247245158454291144"],["15971426870949179623330980947780161614092906475292412825219249156480500643911","1299049127538749364609835411138050231649031432022765555664272662009711837687"],["7159567327882355774514336386847030647428857111181156140946424511184590739034","21113718881970877582333574700552011142327536086500277093554510313442823699471"],["18106469309183846942018991421611745875030521144253034041059661748441666747638","20824623316448470917619112886243799512457318361236536490022001202046788508944"],["20898199033655934958615975827110040878243798781529813432887300112330213424557","24816948945118064769373881288356893081312756458890283666555543063901810221048"],["28081580504289326326461678587995227011204768826189243128948988163181148492525","22465641958041951406961666806173566080927358808096448638457208772643595555143"],["5942395127227644542116120965077550157184817763227090945428701449738371657319","16752518836760609134933445421299990427885769540747359339258485685358509489780"],["15522060195663827221573681663887884153911255513337350302970906519179317561919","11386031761051698287515117963281874971766536287230959035838602346890717847604"],["28559683587493952929848536856398156742147425593698004522299305970056672934223","9071854431740034089156984424652712307346456867486108489043938254801821428106"],["22229700548110969741650275478991135209707553617439925134954193043787415827627","13909923446133846534693440708863083572734883047920774763798289719034743255107"],["8989740706097645246453571376837794600091573805129690506432208586926747322380","9809703337888564318496044154878600164676309212889559036415680831624150262119"],["21411322793104934685846195550491683475617636838511546954833809823051094365468","19516385359228662829818924759246145336082279025013453368701841411694413433097"],["17367951326826812863140194606783131900992494222209451516298689691702296030023","13316270445353949656345840241836059180782997224027779939898723163337085792148"],["11749908381823208166923596723664271203680451841338775781558693992023190565289","11923858050947520710369594975829193753336243425348314802131164062602219283629"],["9031441796484582340324234260751547508272555582154149139381564869006023193428","14680416355129585726390283264115815217934255358114346563904338194116948538957"],["17051263666174079865070356021927891018853759081059542876288772368184382804977","27048986309849592084388260994550105179023689454678088309650549102089501663457"],["12626527161778362676613226583955328985593133795293066744264911116335880005071","19068344695179124814971175876149155382012526090838312098438508781981893659746"],["87100103831210661499612230131404348413256284525137546657241387197845936085","3404567014337825249648315584714824765928911734222076135044768888128370093308"],["27766848202673527524422376622431332200471766455478647464476391119932670974488","5427048507181072949015307116330917206183876919732287463915175365474539866664"],["25019703152005362986033468687139608118442287450706437193743373966384631887562","16964768688746448262622754064434058678599467598311889399208271380105368910067"],["14376372201991202738882018011120561842129542182504286571808641563405268223188","16500513383385265255171055811469805807676027647768681730347355770464985908366"],["3180915893935479398972695774548350442617975530113072549336247839532408366002","13682371633677906477210057475243424725186119356553095683374873217329918489000"],["21536444451001222345359231904232946435294396725960562498059495524267361952048","8753882259250614481430652847011398988616794924042761042265914280662567884244"],["25456669951666990070938617549648543263126375323007343612955558045336133453181","8521935840659200260758454802313962552876530756746253800553491222336594700576"],["26070776559850538142094821147638825823135494330007483729753106710199491983894","14682397046282363734885820173850609877686712447100945637789228264791811827895"],["24970398051778696027027680900449843710584549983279247133353366978401113173232","28363954951247649688486868972071160540507024427216698602319700653471052951225"],["352730619025977317485791822116725421275593505869564076323776838835679295405","14041189533526855197644240861196098430907498145098419654235393745827338200017"],["19037980491123493333002951671761156954464510151778717323681306812914941911498","14761289548088027703275423337521662209293121169897547322786958055823589320943"],["514390876047039615405991258565157381678421803719056353877028699870706432161","8432442230369439959941891133688331973881292811132868329559671879583524187547"],["4449180972862137628604262575879912314663314160965291643989757023210916962522","14147570936357268765980384968332626903251551013238634110775301109694717473019"],["8892232351603069167569238083923284564309275217385366888650048228107010189183","18460994344628595325315723484769021494474716868931337491342404474581879006558"],["15038513359898355650762809388786506734872540150510347723468726244274330527490","4176631126754464323460775565814942672590107499908457107528583570779264372760"],["22873472608402475947906496273354139427444969822661463179969011722858713261670","16020420065860196624854577154431764064356154255577121826524066590297131653354"],["9172897975422705586504365080475416893702077034984167210846347352150558270734","28716814139681693323109851919531853710013922865584187399707253457270583148809"],["1477509476839781607838148776411603126221484025584350088417681495115995544814","713411130630979287614591260340706369850989649082719211513314552203412580479"],["20392445900434306605146622755801802492044885994474652206274455310578897988023","18511323127159350257002566249550324405991099693980614550922940368030627728228"],["23003028584093162686919863345531691715979887092490684232913605355561444335940","21163774430243148495136722951927418655015196544301376081425638459883112139633"],["26354886765427398230253156476234345392909617431741446704737774641322993988426","3229459728544549042008426150571682057935577770753617373629881991455916223626"],["13577798793121839533345542839891759954119601055481995693917775500034212473409","9716071427425074244756846102380643631323201055898246326722335653397511769356"],["24299580370214870129382958679686137269943973120759392130981872223954592872221","4959947658525120362894284985731497304093043115040504080930695775701775229331"],["24835493313893827542890031680031280936859750373965079362966779270318356125945","22203443654445123655734959628703472391665890293488020813757144939092538417107"],["16327159711554794375798837588360887512516483335935096199930659910604375677051","21714713865859191611953476641261550882267105953433757459800628961091370967359"],["19297733213801282507259037151581501652457948326314344439064916715450074484037","8185708842725415776920634405987878144785011763159706335760417165229734012463"],["19620890034132357074905187699385528890850732257331267385382672786741420506989","1853289730589543877181905436970927527935319828943382857870621627985239221804"],["17651561613777727434020334493774861395750719545627220196841179419243624672986","4950878390005548464734718382403568616278708104076010603712546241355478342821"],["18614827096921234606755199386380528995953821670201644108998121098369133350131","27583395624907030520405452964802355974227837815458331347647782339220592080845"],["25579969747624785732559606238485224836965231065468703909416098967700541294798","27811357873717452046219683150621389469748758941487358701393650524734082689469"],["7349706919977980890841353899545716766319748474629138646281320453642480549048","5289801036154954796285233154004820009720609200369360225786556613241971189353"],["14916646169536543951713990404876224108119648265952760369975695043702243614472","5693130191963927549465730489373619281631658626852836847886155634198786491862"],["27416714497428799663667164217757352734522594345611009020171488254176056685732","10613101797536420950685704918561007032374967233076920759493407523170070129855"],["13344418493833847566626431037159547373317575731239518153156476807102675549714","3462016446501619829361619814555660618849121558052796485163808750160974631486"],["10368108216788703374092506425749282339534658281860752926879383419326643945546","13892481537990456512956706905122786172118531970321504930906280310508298321636"],["1107508619900187984186645639416609731432392827974915362472462963970921788110","26605354067850992722628825578664179517889344267469417437806527673832567416930"],["24072317917027656632115921847863458709384848667751481335363829946799350259008","8187356501349989358701160491221384128406827450863484529842244888600373084123"],["8659195567053060140978982914508957255049607081563482546417127979625667174968","17873096398844913216203803248791799545863576314703190291133755518828246030199"],["216447913519340689936098366747141553911868323713631418251266984710364180014","9807807429083889412455469720964932337673081073916840536715229789786385027968"],["3761207480785743793059171740256507630166688285941958855600541923867473303339","25022448422355441217431208560387403417765508657816401822630070256486034621025"],["17104897020162467119714841994610612244834925389840576963363317539993285263844","13829671530430159354068636490150082368550629573531042170758371743078356745265"],["4022178062055132090398104044667542055900555451804225403426993958887396755613","2887304881728234450635641914259732794385072735536896374462667000173859824323"],["3975481510696028839638709666671556759408269303271461737073113518560480950271","10066392963061902016441161183632808075316456874748281304228844382678371810635"],["18455150723512000486059647953444558256166306574272586779872503830262573343009","8139514241090318735449185374844939381984164016846520996267222260465703372682"],["13256375428219407177429127492167945652543695914150398152276246457996517371046","15038190719058995618745955988713917258172966385651697663746787426211339542048"],["12366513896985556955298379331177134659884372042698994054655383280374320767134","27921536403479317819920665946713855264875861650656865372507845094797711539699"],["2226851402142742675857503233522719615419428429448149938499889639229192538255","19203059181018517288271484243233037227768746244855740210599581296016891907826"],["18882879933181268374662335708782409022073360249801917285974724010721435053815","12816591372952494120369780502939400695163887688508008532705033757383185175991"],["17742117962442564874471080786290595372236661262391791769623628346818052981368","21542509806132657215887594413536082660096442960549636087623020537208879838715"],["11562299196806916154810578111540046164709678254976652848506517767777495311371","10425650228836896398488198725349070813766430775912662170633646417779904693613"],["23340335307376000501542706270238231242309318122746844508573858638642574495160","5584063445427998472627868651128693074623006656714147634607693183468712509421"],["6617789012831197720951112725109949251483828785906321471369485859405109334140","9713678274924326742726286819452280277349408104094832156258497374489513290699"],["6737918898000331819206846381728140878812019662481061427952866195193425325341","4355652746572860047129582841748010250514764841233455890377113199147977463484"],["6714617281326758038526249705526918704953737556505798690510263135686463108409","5326597816663788995816995841694153410808125709577613790996684513932852767212"],["26503500955842695340689668704787083330525649563169463039424817846979005330695","16626910933293708512524735711767491689037160621636279239531123196932056873349"],["7165971002726011221529696374493167226234515913205129022222704591086151605364","16041352418589817115856880641632997293617715357932736476712456089758998946540"],["22725092233278513577793621319983002237882164161797821228696394358013928042923","21375263463358157591249359573636677018412931629271840696569919003110233520779"],["7945826725066952397697129073933194840018512781465616893109254157137705411756","22190585544143621877465450362334089472995825591963813720005739106826217757145"],["2069682409551492703098021100459663587399810849473318426601508461693433991538","4064895573329053028768205657764237286782433713740772114789927751204559073840"],["17103993550634011745339585048471850739845136711464704346184263426934757126777","13496628614093408621713839619622588640224150522482160195664647084529674825534"],["1250933589289178102116608441978329169771095610644425693558130567725791197589","27514952918600819202775748932163360598722094972844785515062583530993755934111"],["20053217736155784079003217345956283010890291282069603638333544143086304968253","25439257791936184666045638140664502379928701518553916212401474571804529174837"],["13170745435587260849557518147831638568495272806456802010000965511585880391825","4810139293136846550194003830360007073315814080646465833923894498793800065509"],["12990380178174287113781405136255799954994082760476305757551693765289036719451","19887578089820613446104981246032207258511625898646906013836633757298427603162"],["6315112538382106192551500670282813990423044433386123168048927897510134655482","1506456791365820086208209604173661892197347496876999903806200290430024680264"],["8841188900168997225525420804191157835715590315209642475099014822533682654559","1273333569649096517813441488796547913234050329430675698931766949694953815845"],["12798641291758769722875658498022041712240122419555227649604873458352077501550","28091755049988932596066659613258305862513026186636381146205480138315751308595"],["28592281069865393440167316450067208173016843637804170231717943530466482276393","20985852519681683740508962149928690006723346547791959496042449080200284800977"],["18378666544776434547145507601987935301765287244867753490667492856387799309638","1496576123417443368731081442579834669888064825910264072286641779720509050610"],["10016572468393185331504471663552000948431955577601091081749350298992097943680","22744794463298086252695797943614085518901523926439574881610500242484379809456"],["2104859877143763540538380983165749002902058157506185525792037670370161177764","28667607575205966950743276024349072187896482849906569713002302906886235674626"],["9849519341249980862514335543712046122344778219012552504184014321512334607687","12682241394365544614682973598035974917357256287844426611264097326186205979282"],["11729724682487277506997602812954549470093415219488235878699331488166674548635","371714616750864557545376402487870852464120706089418524441072475732797584528"],["6180835356776972695745544548171974198253284784438522047144556475122741470167","9454892013017795659221234225637034264795499147449884585998116207219935496478"],["25443179612743086297183207771743097199994432253603252011401930408340632504296","27986540123616721043263787668892482449894627455734570309580154483481377465484"],["21873336215703057286409254691843436460347260662657755468798877227880489616842","4545804042714020853913036319219406482983573380255065817412082016553314888545"],["7298157216071323635758683154731524957896234567761183475516040848109130204239","507706254347504802612115124712718919116675405954158096851649923153377698063"],["22163787642888570582903025662154061989243822959094330990479215847636877497213","5559009578197839317904295471974015844297730536813486487427059020740461032432"],["13936649525554786760620523686314011011804555140512061405953671605092124681537","12602847896520320280535650120291884400777863762179363219356492294284633084148"],["24262301994149386330134039409438747293941703444931191530943359536025221976583","25144850964775147880964067380253018962775394096048198608827602525506769856828"],["15440166764642714337389786112665571492965360194020592845790708045178194605719","1408364611956340104297763670497776478039235201019915539156438018876954056449"],["28369259985036494745174599645534318388782228815556689534987785780927234129854","23801750533448004533975927617492409077013232955746732755594684874006875496630"],["8217967011900628556934446006360850723801833812747646958494145199879535187194","14930109123067706475910718684454858719306292427150089707792827994683488287813"],["27354493710434029582188379051382477701216433793821924836854271144697731624080","3399064989717773923888409701819500356327429745454241950096759296269629843531"],["12326639891246477887080926467619313242287656318465026261455455561437832684449","6862259934043768012945605907344213761804180050712919164550302165792822291623"],["10444824402065275707566021509509247925486093206278531114443464242449001216412","28483465683427749153292097953131348416408371508836130482069261274892130215184"],["5037350435378415434606069162917814190649943329847438460446463063424014899582","19098951939931008116798862046319969730061007940716705878235351858304629098181"],["17261987675974459020307214000210526296803454191774772812950557329835741344082","14009492464863675586239032513635453551412315156966209182157124284782755529162"],["17043306326659704126779538385600890401980747797588083002541039578639117736858","13038025539575521597738091724870785503838027514199116056665713148976577187878"],["8804419385578148769042556066904587959820147606060468232002446460486040591018","2803293759746560664969928953978587970331300907027611682196174580112098446159"],["27296209936678524291957758283005852827525271846881660374054415349312904702003","20370325007979960100089347961965194879866974963716949047412070782107717383911"],["16541179606317337886084466616662623237974818610822311496928821982429655244995","19985364459432288864435893036158633008475297278160468296713550184839166839954"],["7004582560072101740575024434373852352423169310328312385502504823979589317174","10325138597622062757910522597296675335581301806596038360329538741321848027019"],["23283694475542759215176724349594621237944050765844137247631248977718534366161","28204224481734672663274462550010802940757035354548593952172411098975187003440"],["26084931564377300995347102716457130688260523557460938308205967929400465629382","22913058538784118964232364443167940226583790154299890502517524294379137402547"],["20631872991890021451036066945328548641055566143301347563837724566425053085417","7917216542818373852353206628649593800381291014674203089220056458195348267975"],["21299143682070824760095036249696608426234956028019606205970710680601359709788","28773085874440058681927134373815828542456702516230605281013011039950859446873"],["27794253232756118932832365105158640178101996908884990895027307044591816754652","27106437504828934960917406398129787971468529374516204744473319545948656115400"],["17703851181319575987447814874298622687506434542807522039619242384969262462895","8102140354123965129501288502403880105540773991991840089196306835815963084435"],["6548197412280164222615345731515998211978868137306540074447079734900313702346","12493443589584860527627042154179163801464052905802292914340856234720490489401"],["14179049036707688493901322607876164481669921983050400572436037375944870619260","21136190414566565273701698722213629397966922905838311635568806318985065198717"],["23088267321845642378845298552060498095064837263586670638545853248159783246323","8249062452251282370454769875356964704928665197230201872122072168966396505177"],["16577809398546892994155016762494039004506039379609747707767792133557676868318","22559755966701923486498893681050232328883270402758128483124387346797312747541"],["23528516180973713705544174481090873104157721108712887570422178078520781794574","6953558370638623334940410874924326950170563946734349173698554634041447349285"],["15390656447515923876244931409931734132013135620896832530422717348607143591186","3306993897675277781721923758755907805143118460757654887578979658346735240405"],["305372474753114308568297705475078868256921301014922613073217687097472295245","10386119396566592601734663946522539219898207945113592352423176978881414865792"],["10583507464515839602178237456949767720309931712040040745441851321934019152004","11341743095201874947305907992950321534084981093040532827834057400555549169719"],["19352067168069395591524341292341530351292946567067895596795644148067184033362","18239265142999000506291537041108198932884697997692471683291998382057698470216"],["806278388998203746806133779287714760630680170469135893672284680992965249907","26056727329579996372596206369828114121637490312862780483292335140579750705331"],["22918694891379970236677792265245415253978563399079862754734485796262543411981","5158300981255320819754966717122237806201307617833897470278214575582212175641"],["17953794934012622765355634965622570306993019536238694732316642633574911377797","24990693100063031595947456556401605321955341021756167117749652754672147644842"],["1145247496323737211544614039178003781694384729642295527596480269548134880787","15615621786532695705548237333966139918864742531430133470194018755396790792181"],["5611623976092978862739913059108462848956650409869625108879313010528661398591","4906014241782490207279633532527136372040319186685046569318225485017043023693"],["20749094200546874184105256508279439836032577842303353039148129840773613015989","24566813445000184236034737335193821905552894035547412961311572616413158766899"],["26294306974611537916751881176837916456043006360095543709529639533675997120302","10595381552198077757556296575853269194870674164588845360746139246570711102679"],["259616515817476463483862783246251917741891530004116286044149348317778369183","3186333957337297994020851934275648929552089192413143413678430761849058065630"],["387727729723433571897159740538013436413813836373751415300431963722390709827","12260150909977653333361157258969038104151476834647145558685650622842456404678"],["17610551515219332852615071629655426283122402892567183639821518893277808545925","17630127493910943772934578244300823889808854740030008273461742468700078604256"],["11836394786325024715280965133458260384094280675517596298275659571559975795397","14498403483627392625527371427166773978623977256896909533417294712089207513328"],["5719683173719204420194045210232328054414420444200835198861882494892556595066","25486399619102700934499895668491577656482062830597623220755180858203108176064"],["17842887931524442790938969313725376407186587139875771783572189713429631863830","5029544125398567278474612234379695495749864490210865257620547272434214566438"],["7964401643520961425738461589765896203772433676208693195536730178300884897126","20248142043305121380293293722510547148103454472542371332003083555986064563242"],["26564592787933704783642219640381889407796410406419463038472239988787169306980","21051716965472452093528643722993473609933198275391272106208619064970630784893"],["17633133782140488334421960897416605213725452845318432817433049199391712606932","24050862919241143680174476143457416830509986912474725916374845824831885408742"],["420478974561957522677241891309278453910920570101084765601055476187222010526","18319215966148205194954569388708723182505249580662875416793576155468279832511"],["24657354469269534985844112967680226525252650795958212346858606638082082221611","7455677589387962634402837035748878387637356966140864911090094212156506557083"],["10621584268612258880338322523820329056016674279721054351021032575977290559954","22508086706822365785391738703851722386066031471830660705625782729552175759175"],["17839386558611796281732040474702948550822884021152915060334300921760234729487","12291973885786896639680886373161583746034012105846209513546805479461078520825"],["28717318602150001397356986587591538218303362470107295506366230857799724821466","20581015172014210771983501657731043702610248858644996978058382295731718619497"],["5333272276493882356492683688126108524471387235350144651795408423933269484746","15069768949342926711183590282922243159750763362371572277958081597971855461884"],["6124673135963996978450649902721852302914337370177806475125228624691316706081","6678140705107842783230919767815549120442321376123052004808429773270674406641"],["4869999076665543248600186682110072404119242921265160704106801313731041764128","23869333831753613751778497587071388840075757125090881446484875049237806548191"],["27751534957484245129879784869431041286416306648600524595641862014367759205180","11405699710808249493953005495021894691380471691598345876139520290798477265017"],["13261644084018342096152535326704264042485731560976817473347150429466452527086","14261807902154326727468701973187757058111619667243855760442822342503721099666"],["26186733275770293124196009433099121743427760516385937565096029757011762729643","26004575729214901533740232581425554720218889974829381081761618377209608888536"],["18575978691654782876717941511620454009428821126465414221208650327640296882274","3855593415402213994971559264363052825873202769980318394377816543503553326120"],["25818277151672878434504276335366473355125724628755770849034445595756085338003","20801394873416927207354246569856127447230757472626555654550065101269442758483"],["24594260236214457410252165326243817288205230227816760992534025537303239200040","7726863715020099363938707125021442853228602498621627483334250228553694047390"],["27325368901028451154456626115862046090284251214043590324030972045162177274919","7176080273349597894570338448314158527524378770829768674205550648127915720426"],["21021561347195910545345088077352211252368018134767027873289749416345575652790","27442761119686426679949903340523820195444293794277210595611940261836952178627"],["22785098428730571161506258829399220870404297146883035915121094141662155256989","10830453663222956238321411990651543508019407969065516712198505376099238353182"],["6500043161925270304109131699963921527254922732365941496890704758591447626401","700176866136500811103831470093854629909610709361853427528048431477471806198"],["1691115551140139009295910127446049470595091033513455862738417227519537478256","8752603425631332355940722770866802744697173411763440881937212782977015238164"],["896364658957466581790009034486135625218032581016508927036412073959256974808","13157777835338500851174935240081243783952951497444888635166631542515807377318"],["26142322931908685755148959790428695038502502268425928210301631286403689032460","16017093745389909870048934827267693302521880241146894770692725697553489889833"],["9043352400773839390330133560743499040897326840599013283910478590574076396441","9861184916053444629672083605649760790618907671949576676666463425488790051624"],["4917537880509785594588407547892032248569766396460550987623408884644645862559","15622659412276538643709744681915951486816163788064689901498114831631281335537"],["13853984770537829213521332761182073409713955683079543581169834722956650745870","10165875036700478744865106449928716184906887986030355021034120873416557565447"],["3869859534425587980186921068847503787166872078573568809573941511985516649298","28085269261200983499778877282858760445611782280368971096364530227267369553315"],["18659167270999469681663875863623389569401785068112784409634839688549498027829","2675676128943339199851543703949210843641951534164823375468444783818661613936"],["7849900826876758351578768266282340920154716945320664145242933136533608859510","28633343888863367464682404166889330995127653093264077300966828380507807760455"],["22805601042068312444087886042313839498622251005024317114208703109911818299361","21002785211016280859833779484452653591542967685322462924047762676350711523476"],["16211166537205740376861194668064803936061187304898679800195097916422138037204","18454968247833768728002363925872073931573047900581958701451061518904362055219"],["21348119417465562368444573436750491817415925164820772355158060222328141025601","21587037758284445687366217064240169078280861562893720516418757022555919507727"],["26702265887841157503979898452329960862665375848861025861793703925734706267189","8850394513826005254092064786236731355305022798554659933499482246950374118082"],["2631924654221408213667998623416321799947086304536000845720656840715474874162","16221048864424055897800193872221169869073919583897598128486608456362016421439"],["15304793431806662236868326919697930329924997784098830562745731987562197602829","28767263446743995619922739996470890641067710149133273642890459979083664262575"],["10591628163701686369574867316175617063579541142118974339773542642730456926226","9035528906453145785962125732037645357440286000781316062859724607214173985609"],["14377346542482437915036114994416795409651494789645104825193244900840286686134","2962912793840456910320805093746106952050791307152448458177323923045203456943"],["4118068302167281334568527869522060823976861283463071078439714538875766613500","26317525827115850086608587674011423999644112726850256369794813573839374891812"],["12627898393462631995242902676609493342544267509916188825335461907876743792229","11715060039997049458336421881776310975452842494023829478164420869526683955581"],["16954528408318130763623510527331423684092591423799733465741845994169277640040","7854081567096901809169605506286206758243462181213322578153321708826282809055"],["3177298928070054628048632360073917684272896931968547799835275702675357066622","6068670301617545069610710685665922040516258781578913892248884505114348989814"],["23070360027938891473757646940700311696158010373003855095948997498563425178737","15401755676832734575239748467352833549969688321312142473741416983366627639542"],["20135755119081586735965095188848335738589968693491493128992647727506565920274","16163876050767467799779331889449549065908583138690036111060016078947999405717"],["6419384137792201967345117845805256148497526709138811764888370228003343948632","13470966740232814549664394512536428786914529856452009778868041209790417250864"],["20983775304320150747648817335078327595435792427343407709227521924488337730832","13116591131030790734656031706963169438551741281606164883848820440821027372953"],["17811968822757547294459825718556603613171679402298944779325726634521826801542","16815466799030805701818425725222597379964884275912987273907405840243898598362"],["23063456787769357720884403614433590466783231122988866480293740228524802413098","250718993670291999751283371395408186375069307002009769124302410523585394070"],["15217776322747706326359889018931770777682954979724007919558581394412282534003","9020307843134952235092567495272305192055545475428670253983456770681993761653"],["15188813328405992762475164114061090428120736204039829747782805850563751023417","7513510458048258999317835933509266680370062939310776838424490238068110773677"],["21180779585999837671925293781437631966713519133463499967006881118334023786593","16881874364060631521809616918861738200985301166930176820701748869562647812557"],["22549120190154109368218864500551515597478000418792466987398506761945310130101","7989937868151090989718047329752777839810603414053146856235851443886770187627"],["17040196296619506250838467348342033581369819632229119570285488100381984779814","21734890221725488855168435961550258732104308734130190215073251395838952456717"],["174132896553469535094423897465944411805081718632143017580877497755114656622","1897232754037391347325383383281192050585461785213173773265174830830098660715"],["15294629752898180049816142494105480549033268575057593692789346170405388922905","20385393529562971587656590771061807264129012806087172941450939420627439755842"],["1677618489310155785902522608347415529403328878551419230064311270335655246803","959455534029344061578720125071232951126508770141906555293631088613538656040"],["27678157786427003043714548310279730532261434014452210239205664862913340427195","1210273478154598663387060193563847462120649089123126141343977628818790031039"],["14563488705111292170475849953897738705719829465244424797547588865498691123129","5361132801007700622661609221805657221144963054659851690688142077941908142647"],["24202099975276999161843216779640541182531117334682003806354119207780032563420","10504527694142891882013596195042385727049073759436627146516454451836800784660"],["20449558055387625321234624493156870542044470185689258429419136864879949597836","5987693645820756219570026259796509288199463874758500088452362359356953057612"],["16462583490870644191802094967726401185503790031406051152278836661594964236768","21358113884350387061333042818799878291369867833010141831956791450330382852268"],["5624115509608806855384821396581140326238750802480511528116330125012928262650","16005557410975695852899527947448344312044935067347341602000654570701735361935"],["1029178593170955687133750493552235531793528012012720630517231574392937584014","5014225156509075499966391238514200679239401470853270701814137721144994763595"],["14315556908455070430074976286792010205538382222453675380241752382878666140949","2308005391605189211878474348938510566063358365481481961330615699909764531722"],["28737858239274189361423139332899863154990189105622522697182700016192061635270","8068338074378644038033707891540593548251544636128283169992671483914679143173"],["12653080779040804984792736634503978858378575987156034986551902926402850391336","22820796309424470074016556745799116022789410958263201597458422904499109721158"],["3666570585599187007219080345262510773948614640241116113935154777906462032599","24845861189707486693597199115255016871086026038645133773255262397077382560648"],["21423458216733025781744126268627971598839703657665386806548143265178891156020","24767099144339158690921278920415988016811232314810368316916199761378362770135"],["11085043341538015829764691898309811760410154076445938259000329574475727235481","3586557402955531426224809665975653533872151288215477774268518366892581054367"],["16222530330749447727429448622658789722116145839286196575066484589079145285111","8838276021803427295855183485712726550317910276755004744101596790004072423740"],["14884588767785376248797963081574423457797585485567345237496853701702301748478","9518252085101496380925020443656210931817854915437160642545708109705629705548"],["25311443720515446676985339482496275861043962820620752952567987319330620166665","19425226023389993528442229391143601481874519514325028211382646415938284337572"],["5616701828229990895406084234934666526677775052933241552172253086699711719045","25571049290644724776756341951929471616719850071272588190058602796845941408425"],["8482718918148299021384874921844667551015632876510831915077733687479476817203","4226306062806131403768533405479878376199861902658022036031880827467972090878"],["27033140465940492282776622321036117365429688827889272729274814957138889081263","28016011004513994186992107745753999222233755273474113036799046333289614340794"],["5991231958413204924864248869562573343628654884617128410225627686250568593128","13539335463706587223893153014354127240340080511381178533895975412577936943053"],["5098523201889449055765529593453237128711721543840236044955223627234064032682","1574864049656457092990671842560034230927327378277037971260391521390347557306"],["16438331545762093631687214786618736809290058365281897122802923901503940986485","28036578785672107544326527112933003621689103437421648946583273510263988447465"],["14817819255889450556870153355583313737388068453601323081002443890882155436354","23447325716139739916157993818219615005725803221168923759151191834402496675044"],["16579161094457464070985914273607548152798901569369982964131824869371937345048","1821901116511797403582773486249437272215141774851555730918091901683783233774"],["15231522201399629350714570593689914919821439999880273085741203330679277549595","2722943724692124438063908687372526976379618484497079612704480027076530419584"],["4867822051961820309569604689373876944752293232571919094248500279291523975784","8129995359437956835886655345168614594535518733255466087560558266083850644438"],["6618142787501798334205935478609423622362555345329166636804498530172189484887","24303282742123814590904984738052244123097745224515478253602107828995728547434"],["3266490250874496350313181972911278864567553837970384100290810639986490327788","21071299823133952784049273501235631205933509655314864301070161909359832223599"],["1419261511315748383933538223791246560862823900632786271543727046304118295973","6319611099784537745894644126452523874706733083399137900305741044251381193757"],["5974013054115235346627991817642072290739501394527716620979710285983261044727","10058564339125239720259699427150259392158721132621049413173047670698313839444"],["14918027460750688786160970020167785847421202707515519064420040972950796434121","21854285305023873667413271768389923204136509820793895436951857850649850642337"],["16829492763791919924040859699384544912778206890913637003237108748686352034071","9322020979041099294123493403299630169370502651730602833694044250266556409567"],["3070507662847008407571789380984237393271260224250259612513057183789175605180","15658488331704834305391885401264217620909883948348589305234799341605758476384"],["12545437333225469067749355046298793993410592824039824916949561406391410274922","7358217225679344643687999408524074419272293537421236822719525134861040025684"],["9551394827161654334950332411371196527464662205295724472019735005903927372694","25587748042065174656574022022392604690728358123276442382976689797417373361686"],["23101779979575958410499629569861599338860385111834382195784849240284257980535","23665767226003291906128943718822459009730987404370683828180279754052765561960"],["5761430563528627093718309114062170643381529304012432853250677017977069747191","14732483330548697937113533705083396640877545098141246748992538297220027249476"],["24852677720102026353744775363783686255236834867466621349373115186890606042558","12527171119368093673495940499104524003122699339946517851448601808963772021282"],["8824723058577623439453724653887529865870151808365155528812319917250336587743","24899895063786505280689975050230721668958539983162530102563644780190631689362"],["13915016741408576237545060130520537688904458200151131148308581406270565628427","5297641275780675894881405799387281283091745905090669715893135540080219316913"],["14856922337480052348803547654089666467952139051096006601640884426217847924060","13674885950980222450890434552658163107847136390510061392282800807118028801443"],["8174673359063287277048902901889784263030615853879569671805387334793421750543","20217969581725504524061572729019020834746134686432166778453616816603847233996"],["427930956458137509461137385899990045920804660174645712987614599221519411933","22398525891846425899930722383277632925787334795167575874364849334222249242617"],["19657465877727649702980055626057387938801112707326500928860603615982641733351","7364265423070783185718293491570646997352281310355647930513423401531012790983"],["1421708326077504658747306217032697009781312554266654234570824676190509740654","22227226475582264397102813482591939260251030879883826803052657124538584205897"],["25151670071186668284461508629756233730356126680061870705535077782426513646165","482040264026880173066636565515907113954325104770735778892624973375612277113"],["10918897270382321000989121769266434687871614317917693651504395087116300229874","16896817426421664849494092811588858272391764108557917120141006087948079698748"],["19579425801862019324841379979176636995734034754374836954736147799068245790525","17136289199725335856441574138897273193174466507569375980786789225474439821765"],["9882148901896649913845563638215525486605161211418355194023187038735165420619","26364930544941326791298321227736562219736010944502282350144749027851307301347"],["14182061839855280247047177459900751697035173548489350376640333731421605836762","7483273226810458657824728929613320371813854039117974502318393944079195223488"],["23592361978914647440145542534492125430721924405230873688159745705483301396957","11400830541095754370758786190254642410330789178081374305037301679644065703398"],["5638229247161074848500158595857253410650797431565502126700310319643080735093","15913314766573480551419196316296435022854322136462792827661883453884355947865"],["7403615666004699949847082622613826098145523651405565616419819873874716076527","11479854076804594027780884843785284444845859239903400979252724869033590210176"],["19530701602804398473475103396399836819186733531038698549138387724491407637864","5523654964695722342159195659930877021930348336630398086346955174615222073334"],["13964824632279098346990499145102317901370841319086754286408167004749920522450","27314568505568365671716141667805591479474728267518399790097076789999170939591"],["25664149581530488142256264953122173580618869734910195304096177856728353449329","11873397367470166997154231451654770975679546532483670375481806656258235489160"],["25065035025751640761399959602016917153414161833418501199686528034654947173291","27324772248438371779537962363592523416377991823386091277834130189010981088928"],["13909479465375908429399308333493624503703418887886681847304538046249823801150","4033145117181731965069994234134691445150305760857124964669986479326901056586"],["8407124907412627943299528812930468445359686641409441717668450719851327277675","15749638966230327860216274337788990378359316841660614059322399694579388462057"],["9737212561486034918117420802270450991762968914977220639577322037491295402477","9016305990595849090761292071113779156099236191152981289067451950254415170785"],["10738133969982729238206881151620187487031620741866488403797358988017020718414","17604767013481110958511437378083892535039103874950544813814909767293951362270"],["24547047782087663861644658727058168817840620282147784849252553773237757838640","26662859320463211322749773306471083398882228529333826821647678080470701513085"],["4496512776985269703207681533694746499343264789605584163817606737381988424692","18437614472307250014529436590421355938147988145186677978166291872295908022326"],["13078793269619429737232314256180630976152208421957192784244545481245263067136","8042070689599678343204902392204178527704719999127663838939782709261049570125"],["16731918472534417360434871405788232238247829149862054139900518967988769772966","5509168453752214253571002184052751947366209284254142209169241890918340003657"],["17517069583318541674295548984054635280024312074131622103051487002546442744124","17984964529219082755033955282949582050316951930866242239121801798203351683289"],["22367602529562428912332161909246635802417077679097588558012706886878837298125","25392970955394557735211981753005314170481465174657654129006592148145575078723"],["19567011411635986886087875129973961914114629232906398261271733971001787592323","1783778084441374926553676891160825274999648292638443360091348825480830332492"],["11949829409957603105545563443767110747715421747996161158903075316667351115205","13588523328006454316370917920280771192732020713080577034029948656679517783092"],["17886425689007377120193465181861021864641175738751433273410706401708436214395","24999030636059472944258631784630184028443813053112792547906141391832050634678"],["19412069906029956087500525173721390130972971903343830726182037949076779970527","987191055267046144578165970592860120558179899084482167240456850909207611210"],["9127233286745412812603715765263216109924458766556138831120703807964861480759","16093607610255108847931211592753805206220129282387654267514004391092323972203"],["20510557466422538251906520233872087930701553583313822565268126266884827676146","17708526173318574984073884205151702698905220941132672054936294361093683233634"],["17633096500278040353992185250821691961041162915065882353802697443476235271158","23256364920231896564785342447747536959764250826443894884525630746031455133190"],["19224660752372264835294468887338563756730872411712530864640150770383719411992","3037850473427210838338172953136753882044530934813025993864979630163170605193"],["13418271912654777560864121039355009745560337037474270738311644720965565597824","21447425231195394063280483776400450596541174892701238200272208762371982645245"],["18071728781171245008198621918044257771056722889481388698909880146782611530014","22358869922748358867531533526316225892423826799066771792963535856968601060889"],["21089480960149964539482362459041620123474911966743159633576956339186979108589","16590071922384285754449610916198637671785976055736612138321872528454706404878"],["12692862504629757638997945824888452055905905184913832915489366041573470649590","14768182770579004699035345933280257438945012149332506779157488754021769348799"],["18535751137978555723386081180246247663461604464104699606151319535890616502568","23873733062408097534478224412740602402390900050294462328415649831818270917239"],["19489504589155733285019208275377990865067891728177697224711210791850808181272","13120374460554605096840662444860602810445971886434414920225658672827683842554"],["23861558114640571880080299578231136053744971086629814083082048061361723261197","25381269192656396239086824480997488684220006066390722238544807449528026262385"],["18810857105422115338623401424579870707605664344870551618554323168262899153411","3635825263343225892231349236849047113708572236995379731080557777047171947753"],["2679441250761242257338275701691788092139459626666477549488463879717797360244","2479414357715997630474473475313371598419455775790257775223493890880179596303"],["2683079388476016512641152920694579206799850536033425358766485390855986177595","12256279852553656688535124457808403274644293564667286704452573642897156363933"],["17492124849772553682283826157223068463330873802674397062957622008236165362697","8036874492505540001113941862183485825037921666067848436069321330795412845374"],["15325898533757405737995833381395762138742363584897353574633309215671228266834","8460801079668461261796494834079426615502066970931534256894815710345712077808"],["23580595952125269514605780658820126415648043295026691354401105984232246511350","19772954490548533905926253742973253484568686039173078159937821674757283789818"],["8546754197572395741424068137801880067105099976595530977735829810512570095553","18415196443020177330766382887565514828583304176322163555581910132413639153741"],["13537065185871786176827639188026386746212483536652385612227337331516505966612","5323637263497013659829416994650020858357164788748608672036895027811308091771"],["14511575267407961469898010467333200588961199546521801248820625627657574205671","8870096531126844886203611453306052583945055268696927241374451212450503040350"],["8804353451108762083507817568403854866699685437726298466131125293765571711366","11987051366448871369887243480480691649208313411846174117348704883554048087174"],["8009966748385922159711434108199554906890203411904238952830780356461877803014","6304641959864157823727075790433976387964146529951403110882821007050939688954"],["16650678683466760358057946624382810968400867993614114659481526182607272957123","5772993014057225890440004659824804463275823837205890382189877602465875126137"],["13219390829862801665617026319448277933089430000334151306413972708648293116683","6032716176552627490033809598215268830494249661646350752939874563511963144955"],["16530378639659991987433741586484880342644407966141545797513817957078713378758","26920510602405329103363134582051834108608771326542412552066706559713979154776"],["26940043079235942699564488412806052935956517875028641211109994315302784372187","5038260396622724280796169803114900545217368211323569316280784837712009469505"],["12908613250844742888020527788854498613569219229306738310451275984576952114545","26072274268689719471521732322488671576192663362366625933337792503555531499873"],["10893292507909133326846437139081360448724956603580997812612914709533605847911","9756134990740178338452511909655864786637418124726612114847579046945842509234"],["28501347794481753324386198871159008829610222751365926407154202240745397567130","12860172042768129362109763316501559739481387945670142506325934573968154775652"],["15055538906095291240059856266834189777511976558358733357293543163703756392652","11664071919091418699677488341669934913798297064131033248070847933628191633036"],["2279070816702340744517068570771290492186218446372345491020721476936903979840","2887430944154785985711012228395789687786223028338289854508789401948524123063"],["6210792719993367125392680540369793824776668403963002065682639912210576756","9062653496835741378355988157303718181012846128878848405769911467827977064029"],["3378221102112250214737189274045849817325433566371660937841466987182923175312","19633738086359537239499613212101259231215736439596363576683318944212739571433"],["941081334879120321319632320062918091733590975423391601158959720263886914927","1882658654745896731709838945642588893291994049529090020861569937126623297791"],["5259912055761351738884838737225595511083478945733522815884890646888119683369","22022766522215864296895901248970516525632017224089118144345344123243965273086"],["208704172157866519075479369937045211428302665269428765966208454174955105509","16176257965346490657589509369355859748689944475413932836469820859395499580958"],["16642267452942744919795463287555549256750612707791721834514193264490379886897","20042076996739017504335643118572715461573437217548151047960424563080364721498"],["10711079229088584620247764308364405523811120503269007306733486957284018435333","24849820710666413955236833703674036247521695961248809052989159294104365712063"],["27782708051147861254125023564584455140314131940497834383318150176255966847237","19728941760639807148382369659598987550227047551635270320342888889365532038953"],["24274650461244856547439914625267532340759373187606216062231553869675836454332","3879892187793969997894473371792083810211039464042752295844327302503468432448"],["11074555765051667944975321415185754046217848176774742286592214749794311660029","4167764658041228629798299429952788755333311914638616402871393914180618427453"],["24819218297701990221797842165762314022220847376561314011554068714186641851431","8786113417859889211827031149519984538849690016451480687758464664288013635390"],["675726181469152063337164775308072431960459865296068303807562448417413294689","22720962091576045800901073938659355629486718160454019100012231056679556454509"],["17381629012852651790666663979422185628552955720104839759868924005100699952540","19722116658095312229427210783820464034060431280447513347020048869332442581590"],["10849032491408637040347909410998856899412104226989363270138784392301150719024","13987287176278508953502953871602419544898837164665267586843590712311579775298"],["8405096613249959416214101616229013549095319831714779641026548647741096776374","11360449417546516553360244886645652724747810100290964680272613362096923642078"],["16846646253934384850675569397104075006001535426372974151833243470150503705831","6687766639736543722248813805445589124244772216745245153434173877423410076369"],["22817735355935451949041880823887498973809853724167483661263628980292055193594","4999094259296087886844877129325493433506301955615420663738601089824810411431"],["7166058578766131821623756010181273530700849564658774105979086660612474500504","28687029133631373288753878370025430507711339910806892945803369330599861261213"],["5537674249368003867462986344601668877139483767603528888540576392568925819843","9764259339826085860823757430746464639492223670688795715735172625216258810378"],["7279534594700314641819127269020696793923609190387051984495731030535032934824","18870238100694642191688692867935454247847818325538143971175400784606699811911"],["3957330718998341224947867335172144243148158158109257366109171101033605732051","14497192130346238709231823028864611893123422012976754609056421928457682247882"],["7943594423524330739415852263020349565387176723572765876786412693833270982427","12892377296497440578918116398528275228145728589118406260402641892447023229840"],["1281753346477446160744150056878616488333519881488091449729840766151872707179","1623884479194439902052795312305535454585094130660378910602382847696749178318"],["23630079585770846092346783846204720261968972383625668815722173011813515681225","1231452774049275251410783102892477470449974401482830235504509568896445877454"],["25374866227128177529939813684546747422428120061814004170088772526760037648377","20932438678697682830450613850628366518465856546320093461771543596773342971124"],["27201729472663996461853497787360751242840177027174793095997286140632797771658","4728692233935981161564907563804365272782978902079113416485154742645627748464"],["17482423355093535929041417730545773549334635166189975749776669078129903343638","8795923562291244019185974567355626011529657837271614373825423011883435841106"],["27062733256796189916644800152875602492606306307378580290976352369972216119937","27404031118901705114730507678192489887985480816965489598186495167820001113303"],["19001181436818417901518460617798123340372631445120255115594860588776210131208","5576242970794817337049631440873595760387528642315660340644443726995225207832"],["19492442485722730987400516183427452602627943837805694813628370994363529380083","26339077698624209101791770172113943093579180753287026433831411050114603448870"],["17416237847589566563937411496985710837098682791553584441896110404017702820745","26654871498034869389218931399894765462511837267611250767066699826357331420105"],["1200167033116210388474406845997481414582780705418712971894585585121325374565","5573379481681600523905463817513815899335381597085209944230001616886399196160"],["3499807745904242565503402443177317565120990998311455304932060960349903638026","25259129508634106658426773855774173226691654581772640966084521847069344676408"],["26083379888390621478160074505698696481186409285335853809531980382539269751188","1628074338426774570560896144144279296734351793038237929197866807840241489176"],["265805186602173023155538910982686116949965231339395070286621063033268115157","4039302601555943040758057365496214064504569701099562129271451118812240601649"],["11074848215422196010822210546242444569643710870511669044350958709118387184630","6785335072431320521918690068857416187016107836649707162311520631745296503512"],["1896246272687393098392576105692722596245826113969516613671489770511019683340","26932067554832325646670798972100485048244752616559395105554681637405315661402"],["9012676268516663005427927955845470907351634505411776383668595767117770900142","6627780611979659535556006272952459023423551044794004012101758899879421365455"],["19563027983730609614801484201291405846576898048134957481107477031438559776865","23969765521166072765904077298011984695722043495839468085885272965824545719765"],["4895423343392116107753897874331005520283596106669390909440755378061364117679","15001672340412216924630345386672106877806638630568306841089630783433954101964"],["7160320157710366508104449338910337094567329101632210502386754367079088544158","11275756728943471081375489798715368643843340975373920298615813377571552650634"],["3894060684151433544124557320615968016927497720400476197780621068820407245506","12956665291952076664077802543357778228768035511283000596650683719501637716528"],["28570748853782955884480659087896307924630042014648154722191262135496948069335","7814540057163574618977541453147004311992380305937042688138934686209962369524"],["15998708846652219027999479930818584671849333925825078321001871256063345172391","24235039215041155297609538625966502955644140992509702654163598298316650391292"],["7275119380922370090945338262465001598715648280324519586288031626108958005867","1392888062003920292266619774124583850016898105179596717213469658994700538225"],["4951189310878695777662122612013221590295689438914784165634081104540453257079","22096975315057761671611283042154346396540958467591815472678506142676881566677"],["21635486010685502156411238078899556448373617363803735290394461654368989348395","17148809940988851454901001962177636370428408227202387992169603364259476366351"],["12221560616721206581647276969826023618673719528950160192539850920559982692851","11482038829426992773432190260195137490803416937917544830347636941668220125927"],["5963111477372827269148146791710173858971887862218744392431523855891403198015","8719856565226922068017546981785652169984582367443576110130638073548465737907"],["25365079019584246636093821984418643849137350677272935727511718290501517889241","21081751985239812190125697808579639841219447708229052940206929996567997229381"],["19277026754500598358417720569809968328851916434034681259540851776279432239863","16136844107513920474570926762457979581075349828771013390676264794774970049590"],["28816490138127638785512744362486216078769799298199088895979791516063661996811","8790160904716274374710595163975222790316850277731214001110413199422723638179"],["20475822993221635348008200022199316383602658053426427339328876786493165870931","20453767353203063793113231421266735661008439341481655545971200897458038451833"],["22052300791493840916890368474413535610615613700031816173127938971632715971407","8342856445281627825479816838611307090944705692246747892123327722927212463241"],["4915868771589771201331949979604207866866129707302174030036519667682903213011","18895589298581694856160192051029720659593508962588043601150590891287394734423"],["21906299042515761953873505404568184353777107831942343970308124586304497295178","3586643182753305625202317142549068860070230052213181349436688489629397690601"],["4981505611473908687242743588341849343082209732028359771711653973652374856283","13563370128916432734775578334809402402210436027844480034187684157527495613914"],["2223111805562159733084163516797697989161832684867462161230322573046256789518","7362130070524921572085151902126130381537947838396238815011337799701823020755"],["11419670260345123005603133161074671268295905779085610603428850179601241765922","24861622613712712168580414837303834335600068346457645516134932940471757021402"],["24132888617344006367114692988021433746266615332451190203263722629939041746025","15265995163957206434134850238590774941464897094038934506035535750348867737304"],["14615243436852124478435821700090285659036279028672901340114643963494223596665","28153466947285900571302046438665544597136792278791019088168770407488486400380"],["23068436090183754212432232183194505834949504728703225661470266252218966941363","18154050903160639004560124339593279619107270657759558032193192643600422857542"],["12751469748564114402959972696827069444004487955307863442393964241353837130652","6252823163502413465393418929572160825680702929096134274662621644206250601643"],["9305270409716081927435514602185645207346563854066751421349261593454175134224","22121795232701211366669105041893462535631070139293319176600335542993093553403"],["12650046479461527480439434680226815148678337897157052231748279222832895157986","5478773465124033104429143116694496887437482122336470567283981661254480996882"],["17354500266624250601267412686666824153850343425309491547772920790751476063522","9947379127829337776185207716548647375721510699584111023505199993051367291437"],["26744909417002836592887313959342719227617869230510732993576340717823535283993","23414069711856736222198947035842097613106540544722471433784079646060090805779"],["28600571706044964895801720121074894926096855838131060915935464431052023827699","16738058232607969050308106752032904762596942352234994860000813212701023804371"],["27023236223742976523685915505222943085832125960321353668997017408471330086561","23940226197079721257019443235636263595691855132138833287340646332112810214825"],["11719492472276351654688137577794347102530799226118002435710078818293765971948","9840967607705481188739831582791476034766865962648866627567951579211600076877"],["20780057329337018019156954507239686992655476189676799664047036010226228855695","8344569423713261958417015686200588487438542658690753560844840485728920805694"],["631010091527869311162561308821869949828822977462961024441470448029301564254","21428877552010662976801371062547390023939486702467720929271074991623020981214"],["4422363452361361382721862368383229493668702017476437425076460567086693366160","3251836242676968306773360183916766489853164450273012727895526717097181629200"],["1986079562306814864263730088292618492509477102490324257485344518865180475690","11290898759445009475458955787779257390485301653579422010971514702972133362372"],["7704399515233903519702540807698339197960713711758589427413759919969765836838","875277945301779161477653497228864512351673487548868276310593324524364770414"],["11501573182318508846982321047589338174499041191794727197452588206805514723811","24955764636336244730507631267732553412952869825878646672232938332141217623458"],["1066375360585765299639227739746112504024189965457579916421692057367814506140","13795108113621575772974563733400617303746397752787807254380879619884497903370"],["46357844999119253213832112237503764310391702305738743343520680261620813252","2901066815287695626776344362368231948878675698839686734856353684623961749451"],["9521391973645860204527037612367542225667738280999822079371932504689925032749","23774876768035646018725871155729218433028944458369845482012348984014002441270"],["11548265118677864660897919007800577078336146934929518690749653567147570147785","11437558479470853530983162191360448778193821198243218998877511065152070613432"],["9543124708713599286638993075600313223744874406952694256018795343408594146294","23287455045152472516593398445673618212389922177624958620855921659168385224318"],["5379529615030748885915495215695256489439918451444089944010669833498902494934","23246026462332145783585256630032113289644170425217337168475027270905684434612"],["3921211509349810531999337898988162810146866884219511421658103613586662670500","19101601766600083174303181415736896885874485398937214128083353442405746103616"],["15813066545775811100110417452693375656205219467138744421703815480505593168831","24877682106411814642405806166159657086259385466734363459410707905666045126278"],["9099627860634501778514083178258475003285950167879171115220306406898129838607","15849478633358652038636862689381612407034331296076354156747013879385521857276"],["18019816016970734968124760618683020166342598925498036251088017747308622118857","10747323179250101603727529142036875085631040551728432410460591736839666571009"],["19360452328860525371857406619846374922431460548031643613484978596792142584182","3682143346347458989331713408321690727790841724365930840823362892769607973754"],["24271824576144209507113926509627534339767707554815604541219075836875346668087","5483152680586001623838487691019797585509356356656648038757485635058403617"],["21512525538621044294783009034407609371307179783687676697158410020020652099392","1859846783191196656491803541427233825259081495288724714358711575164728453161"],["16555008029928559916905548361466120742491576139005901927764230744125214201149","16315459505335145343914334507177286447615342217178773750939956736709092951511"],["20025534340218545637959800044634435546619635451874156884274726473008981317884","12641105077662819301279034530744772029924221132861529368099309896259877663671"],["13089252879785165383920043665509124694702479206670406897565516917260702696153","22373499777990474268019303276170757965573519474537975303815484063910701615156"],["19727850433326700510485659187774505506954576314089440184063478827441028012051","21796930345593781880804267018464205152845561796746389455226094694590504210305"],["28694913836558321421095178364337547100952211728547963322472765641993882627434","4419994303596326985152214849452621059445946770210646711190462458279756753396"],["6252620892558367167350947251227522825220256183332592200785241402534884845695","24470465995748765865218128420695039123562163756829737151836634059167917721361"],["11279797157749576820224298056548468194668597828017152060289390738368639120769","26024060589370899059685939863383310506374431018107735572280299231807856032321"],["3859711947578797610980824785973469007977041980269567419779117690382999669822","20428503640017424957878209160319254359672255128179654390043507825864142689985"],["22447672824449462519960322137482963987684166088342951209056963202077819995864","28341072778087272109270091718361189399718869592604917906841472195248550814984"],["13112405242129295664456591215433911937753856342210337574860762813100860744702","714051217492248537797363947014771073355395718233361469070524096276803148140"],["17121956248545974066287004024569238665194623953664431247349790263661295623664","6895272548805862483593696863034112738635012760881295241882867748604766518174"],["3684427654543604548005284571509160544255826105293234419245506045584745673348","15080635992096291801438238147012729071923605117551933684932978827264593382855"],["1641201806744915157474352821302849205521375233454098374684896812625302036886","14855854690128545315566441656591867664189681726014419885692760695339587628212"],["21199218340684892205936473883361081711445460303147263916692240021893313811860","8324568789935277109323799998063610380464743930787480694157849191117707072999"],["3732302496597969991211510507753037790361353889744242174152644390936381071847","11799190155428130009581482866535582991238830925853699326937120453210618228018"],["11545859648587079129558652606247470291175400175526489711971371868416325840606","7058590152915818632985957052181545292366074030913426312112745388994744241320"],["16314234693677021291159033645315990305392188981131357707640411846959347682477","3049698724378138033842082472090009556284374396077773787641042245556310386252"],["25195208569175910492536322716461685146302358022443603688112879636853029298142","18674409203394365828156700104653248144675018356804542711995400344387745751569"],["26625039393647899272456414109774729264584078264080332288055972593188025257579","25204846833123780259331526950195941254811508148662876962531133949480416458143"],["5676168416663338354254152675563697276110024213517161340558646418829528975718","16740727305245011582892966336030153946651587715546223155987103496211624473374"],["3510085830640403762375670129262198550706356931248560685528036017356409421231","5164058760609810178081444729433073562620756852023155354218846979162025309114"],["8306796108699591041851929031637611609312344709447076395193199400612112328399","18007104093001355074548185178952120450020300934865877327248389378809307908443"],["18627955239497458081262433157101556926123491714408963332420073504722775124711","1801189317223360262237017595946954109824766314470978614680740020419404015093"],["12763829803261040979072240011862765247178224989481464900764546872254449051844","2895981787214878109757704586599036708274152529923071604833954766177147978199"],["1273061570994878035098797341077229905721766289679764620633422876270182001062","17013732507813313773291909275544567199429992947062901826121007392719358670486"],["26526575297809000891502130435090014243673488635845906129623045782977143346877","10996861222800941489326861552282447907525592926017940972893062118136845165852"],["28633955094048528801012660383611991295183317892307083802114338383690127560838","5821698363232744115283385552676975740493336035732546563535847427986800893737"],["15606167548838269348896796193504114501241530196952720014189806746112405345470","3828086623937347460581877225862118283085812390435665374039249454405955426242"],["23305864081489874371803096932677824368213522834910622459941467629120785424131","1422223803878787460876862835668445679487631648945693543193192855216129176500"],["10701626836121987719740213636549624846345827571047764779772153379289300169634","4602493237574896545825854109633229264272770764503733410162988384408649748713"],["23512588968355473049127717827299519812405742360171888107853535341824854936787","3322117153241306314596419185101224663664678464076123547903447411028645329361"],["23814331301910571334308636587629608120772506042956594159412811847042827482418","10027539801637629798446320748431719787695222762047195998309771327202701449350"],["2000232448980038868768011544680942631953925530341238262294129933124326808082","10209802257604855448341485507334779397281558044059610625756776927788857361667"],["6564724274038080188559415653219176523391170592322446733877375509225000296742","21177373302371833147964099086282025529531291193307090413229264691148777282608"],["7969406841732163545374702423576777759805061224594341371028798492307367366022","4458947452133486149954405565214824147675456514443760568354200037522720117076"],["14715400308840532430947183811638495285996313721872553176501551527323506585753","20838639700516065803690737920596942775109389014200354022920361537641023832649"],["5406817574435216212040319284416195357076509431290243866532818933214358998182","7494470683547598770275801901123112156357560905940147730890157149792054326855"],["4036663992204474792238936243640504165371991558091377375860939217687066649842","93631948957338104260518419850079896592627081740431380903085012499462722623"],["26826859338248552545776527645513221079789172118123270742729062316844666716161","1861701503484665040026053298735992284723668713787303557999777400461873217240"],["28216026714499617274057759780993714880144735702783855525347419279436265837148","15859141438517223006263948652515319959746282673688966408681029603350907318149"],["24343471921031015591194045906565626833138145374404852883147474275464599420342","12691254773012165837941428731035398123708370658394653080160476044698833970096"],["15375155037515956267439458525787440833697591668678509497998188110986504624693","12659885316067153540967789272400223516262012707649273616768849723049072036359"],["5490287146222245591722090259239369695685948005759248989745347630533018468009","24459627277139106010576586729773158099970897036041968978978743283707722758720"],["25703614529717380284818824889046307723201787710588724046727023616947131052832","27276899864431607225578719838761979636299689234656402333413681757603763730915"],["26411207511062584673921879452743609639254080118827379309373750339115823243077","27936111197142688774726262965015090312552653695446112344807498560700977736486"],["23893727420113469878344750859220840033162296686785317574034989015659703266964","12214579251188156564924188697390504971890784462790581606819374453591830562589"],["24344268779711100168885765223787228686853976214918566191922218383855088661994","21893348712799159455167128528705003568313481450660476273376209051373781585655"],["25733200626493624234119497240598077978925900423769617713430907619451380382992","13172305786423306591889333084593215392778853436502378518568457257145947614748"],["10967336131196078954439077324864559783166635826294435907545554314694214604610","11920965029396371838567422421841725806485348459588975185037303043420464688258"],["19666588711282464295752075767323359534912930673336910278824649503422313109429","2386494240969835946117509043475676875790711584096223397449788608355792427226"],["25438250066028376994364805803638787318280613107934121893148049701322642185042","12739490258735450893626115847181172794091891357301050625709288057476270771166"],["13487567391474943071477170713756301257273748955039117245265940447880989392768","27240264980828751147059035559983617768976550147464927304788682197358693992187"],["3713430042967189056314373119151714156350778987829354386428878681213839633778","17703534702644149701538243571166479736934143523201075906303481521377421512923"],["15842477288411924369885097380144033813535163737473803771311090872198902953063","7827813897680639646155522757093738701098714202835035949899784723087202732716"],["724603509860064286690245703507722532480434741956033259474282282447422142023","1572432500857874311476015775819002961396425430630581077476108684352767634202"],["28250304115221809990556976493135976238001204996864410385495800588480409037880","17980452542634492854786355916398453747149779426531476782636058205704442228081"],["5012431442883635925757898446599121150824302488167864693676207312301903652945","539550398060695064490610803448680813818471953102983563379882874862486435474"],["14367197598364759134680419348750137698202972565039168827974980940262585132612","3159141440763261843304059148989918327899605394585395173037539509944003220153"],["16351636366375776491266352159505967292068335792911020465532059996758345862339","9557316669566445219235469919402184754989066850177124732379168588476317961594"],["19974152616097789000380212940174446040046152499144227687283886292229916444146","9005762045382888873924736436593509990566245917120401015479927582936221797632"],["25903314960735020151477863764701374764114323895744027170427305430877256008253","17598155024794914252073357683399607868509624125165763972181493328178674677826"],["21708399775033135200954410849335509605017285297409112720454952884073955375073","17167503757719142289546765829039406113291431564400773569187668271104581347083"],["16935072380838069511787816617805863012491497448740456296069848557864558743092","20754426339576714715050327675429463953479345768871043802425454359547080261513"],["16690280503502945499544095894248755702579545667499188555032358338216082760901","28357648152858257508300792612681862490510938708989110381525939723328282347924"],["27161108583012823494610891669773632622395495232678857042216693645091166010285","28379284901834683780973484072461693888238763681783351203488624681014865700320"],["19951279393273957187736097438904155282604685538421527331238512861623202086205","23507968497082778499920333398652334731777262727912810771135366683361391085301"],["7388348631374220604766490295204076226016054815025049384470779754507521407410","19537745711861487246476124113354492335271510095220517187107300226605976815853"],["19484373491648411158800188344522254470365750066216118362632641845412851382532","22499158770179202608658651620198050387717503882823449655348462991485064314140"],["1937241834400918294517884393838848098176902580795427733474991974280251701351","15320546142441219834188318698569948660705917904181051425341708258482122311035"],["11806236538288461720631474178047569089895529867278147487573970646953982982272","12044156575123295543158604401822564307297948397035324963004601777667584185864"],["16662903212879066650214835458930957132087935720673715150932772980514347586703","5109766952991061156455001727609746180699034104545124228928837060332199941043"],["9337378191275744845117231232285052682514452951718390797720219224665657023659","8361759108200740744725062777173303706692618547883479581325614733208927483876"],["352941965117152543006362100599806279854678196248644818695692263275720505522","26726340568910548542635954170316117597207434134548569521100382811418314658573"],["21684407908330098157131414660469301570865919067454765719004339194344733001446","25565664904256063248948183693512715863785573781284869805574495983937992800097"],["3789873640208659902502707076077973184459056978145186059330114566563827417871","5791765132370533928618945739011436605452044734265205094535168673835697151334"],["11042357628129205256142334385760997210117965779642302380870392787906804924954","10101814032924093587782056694729613354999346323117329807345635707280408239141"],["25467920053002385999651196393827841510206012730517517995984765593392993102311","28638159039258618241143707472159630683787312297605263691826841406308994945491"],["13656367820489052311770167295987954412265154239769526362964350343937689591094","25574601138791117736745300939201435008339785408654855015559970723524850447618"],["9845247564515855343595453580762846094173728493072717990673166266848681632146","24690784565149301994569958534281457934791278395701201532983731972222975594673"],["21702390250013493727502376954731647821126136196666682218147072771520782565328","4615321466557145360832591905391397053388866508494739209662128263542091255316"],["28443794787562790271007800035271926699053739922107944921420166898198502483667","19549803994068672210868233775613788741196536300090610687109204367695938450714"],["4984188076237601592942790662748801216388558904782926460307314492628950539585","18476207906440114134213418227454506027775645885501324355683451747718063459497"],["18234570423763297641931160236982046537136870664749790861652808195533239575134","19589150322650675981477066266155503091386854611213686882520647320354616132626"],["514289506274924356470683008575508189130421530003503850071999045313528239083","24212832021785595155937587347732675645441798396094711085816891823462853650624"],["11841653484324732561090630652276896580226806068344597971430735539535805666431","28840091811120918945218041446320408324044062820015230248266336748293599353828"],["17656887993775411466420845052841074889814167925931543574951735587481069020125","26181651783564738396955312577656679427998216489507512721442602640371182736129"],["7005025652057871316739951280612108708662435896363149381094658402383987601346","5797103429572465546670519238331282245948746392758331535355926028110744262033"],["15563741931690151162891675528795761117844994892620947982674337410844761686288","15681269801093462737045728890573479573920580701066126443575792764861386532758"],["15923501094023858290051590643718108626837265485681210271364177635701222189663","17995246790373698554003227878276469001736298428308732123742769640630933459572"],["15587034805440753659873055808844001524817511120996211836659517913131970021966","17318191716078706095480971787630791788094401781091673449853694841840141713419"],["8179536603457206328638222261718777659869921339949089110070337838993877302200","6954523750397904507727788238636223883468928698967976197014009191409444205677"],["1112028555300675804785935041057725978855958567585594171542565035831704094896","3707397016258655416875216160254723482560995766315625752116570008558076862440"],["3610820474629905388036543666464797366331635035817575843112787281545761101040","24479502233914262229656701970418677643263739981333750407952130040122962038239"],["13662814837413633374130507846319739872925090901783719234390290167155968043825","6511640525289622490761505983328623525131601531847203892261768945876172314533"],["7179044422012888337877680148568106389421010171484782881745260477149809426149","5092601917521130926327743519122223416155803629896367987560705473034789009852"],["2891216431588465215003519971170220868843882795344945710826806270462539098750","3958836093358913443001813252801109407384247846970070687303295067045258042891"],["28894084739514953412567034651859776602219922900788403141312085830022411150447","816646700073828130690796413377050189563307812416230733270746526768630305821"],["8007452634311841119501086092173331847727159161727855930184724627938514068859","1623487806662871058729680007738030036228623380906470214986483181328901693205"],["1926010838816433225902704157193146011422382817016983218190116991432057289690","2004835364948492394349045001178239149278785892118899243985100936140431745404"],["6288068994599103517260540978622010796245390333911225546777867919432047525712","25828970634280043705427838553051398218049201497010837232189068931630885298135"],["28554173996912281358405045193111632108839298318099950794766305327006682841080","28221955229791788952469853876930737002095200265971060519012264161634465504147"],["20597759774301035012295037180500266836612023457087932823875867792495538332435","11080697321899449466279530856769048072812542997828478856442684399278579249412"],["26136653931730729827964283856184621094413415149335450528976982947532010070863","8157291035318651223770541540983837261234081551403979668553450089513181855346"],["17703133378246729382305885844676454051386695802045320871222549031348794064236","24523236797220879083688016583502121174595354669107792702502348299599241675838"],["8309250895180781101719623881961444433399515324927494166380470924010477882401","7777933844575877833546522375867744502830767243004726384557022477206003494388"],["3388765545516672704481557476602225575408887631084222374258901397558941696540","23407539708946050490839050887150310936165864214802341286918972203195819871611"],["5060072935318988491517411711922562248457328159945966837795666238642406174733","24504305890284555642525748542115919082037396605328123525834802724267106988034"],["20980581298162944534688569259679619548489215955167725048399652246805407809312","26217985609540394014895084128366928315278125973448413163364432797289308401537"],["17982507117982517980220295853096658421811175808733837352854114820149608867669","2251232103670072960867908537508904458551172556974102107836304864700519130861"],["8269403743082612070361578617322323685239240080047502873654871633216608897135","17341830750582747032433352789103363461643324802656475714542237468781761483637"],["17729653305877270548201045258505633104465172343672018672858200641421913445486","4957496635355501593068188710983614888689905742590878944207133401373829694821"],["8557040414519247839094237605415662461793364252553984801915755337372094325346","16534291190881813371859111351085601133192383820111417251374060486189148694927"],["17285633155431388393636133030468228162179676085600959546277789868529812279347","144033846046975274078605491927565618049860588866622450587136150666156941866"],["6575365772432513459010429061573791165961477574800461737011366825725009418508","26631569682315713298916351928511864593440999265500281595448391564166319875581"],["6634916435149881965333777640871432626931505759003744591286778897658036689331","12154179160616598269896876441022243734535795310581034551171914708689594936122"],["15875829130714295560027633145119927833327419109594949797789023716205229364406","21029061692399713707145177857680080973592257466276175430369234334941531179166"],["19423542198319207549797915907008393649119440522291159825010658775465777836783","22651144519898280363275634507091059975944247501484807672027007715337384408624"],["2313938889345938277646940470527061818014767317351516050509150219269982348325","20542436411581197321862664554290607348358778105049206809944424531648716500947"],["23050629229734239761484819842607377006466465676668030581782950176338667273737","28839278173467618765009836545388459820607024526131801529090115304319728359951"],["15463662391810021110982137304573762024128657076620706395026250649734577883443","5330155177062345379575607038919087496228484338245046481584492875633274292964"],["18591802611319939228053659976397069759812852887381978567134420837332926255339","28801249622148892560654481734661236358248931302149098007031928812654775602654"],["7739869342792222381215932235869716022148869395900401898350936186361219237669","24035795600193522555273406006796189940230756806644433300091333272622656574945"],["26631742050826028615360998143702266852428619666751197068833176527799436951502","3830411491117075475302668143768349926495248069147702376750133763764236551115"],["24224965877278975039873886242579431694839168409685883104242648296682789199163","13353350115579360083760076354414801245463386638776444060252652680179342894270"],["3104242113393094067560626712157668694149273243278757066682027676765659859449","8912279186156670044789563526191914980383099009534674731904802189445554417712"],["11456929677062742030144859888022450848881247868090329356930185660927365304399","26156677040581550160655783869089091817966234512004914848184884724753883391477"],["23567139830938118026611433606218893854406091624459489347099378156239802232192","21461814021588052189002448642865810303946211832674967241376344126491436527961"],["14929588894021473873686090550928437609914942828493778189072923407835506399491","19389972912010409250566881397078288829864666721794627588019940536748532762475"],["19741525962872346493332098622381337939533177088161412145200893397270254170280","26700170540368042558193982689735262750514619361706725612403862684994962560313"],["11933879895401310173982762771485066521114469596453334396302220757483688263514","17345862884235077469701028766888248091129089566749004469803979318841493727839"],["18729867961163074944550348571052252390901157111135335728083741636193806300609","23031086923645208431546791220627553756975288867235707201681031250421959455295"],["9683306970137492958742658653412660280550181022914859295902593567449887065994","4332970618012869626623374695448200447698377249299833907093036849066915076532"],["12239144624119059198290030590415607413272931867371848109356511678581286043832","14663533630530528391772937581962939094617278139026504600423931335066054831993"],["3782636713211312604732909665840900185290431274120336762719778947905103011019","28614145373325610510493811137239743477146237021566732595470920716101520431107"],["16336875768873159150360506992489408801196596381449746579746462855903748416145","11977743473630109692451493948804085974332782338378404983829179721168069525515"],["7583656597679722640847734099526202374317744753733490409985835486571075082662","25147537894263174264995093334993713029182596745917984244690192914417097210127"],["20543431891815472343200165343590509976124205061641383815090021635268788868016","17020919190589329022518414205809336781407385571985513643761842448322835205004"],["19035040613921645307387080884238343253297544011128991857797130980515869484927","1508570998694516082838186675659307733927864604193379058977432292936633202537"],["994580002651672669350608247947479739637541587755749730448229977851238294640","3051252460328163074385507165395346202239984670973244237170521834085202003572"],["3476031734238577121787688230897355354792773572950399105220412285792922926293","28741008957530146280614982880265830468978876931149112663131557297898892414237"],["28641578674742044770995366694637720741293740834956431374556749953689867361344","24068867541729621243448149957958337793978437011735398742899577304773521929509"],["24671039531399784124945605320818074654937259610440421088321156297936181016259","6870147293110240484977675380827343833654201563609972732167063628109327603871"],["13126370240620157435843701824359983313230557116587422715845499374755765583815","7688426000120681733180497874678929284726475224239705039064693056172645180100"],["17965027718754789955205995236063553073937445460157900441247171084713399169238","23664383386040374728726864887138627046029377748394379733431146707586977767500"],["19357270147624079442290672086468024665922663069318826322364666204918963998186","23291769138335964171673010837213695200108933775539663061515098859576657785614"],["10075700956349661303358857257663918547346095551040533579403912142383300708922","17998997798524036536651816557807580713752209836921803438390470177862497405804"],["17499661590003593894841123639432554712463580928486430098585937890042435194488","7539504854184506983320737313916202695697139481056460903940332393352386406631"],["28738586357893917592812315037734435679334485393625550273622815653857825932106","9309793744817354131872529005886516810183285454977113235551881108427477671634"],["2361607917546150905797324302054331998706525770336317596291578184709355304665","15415306546805622379420100816811369816800361738163870862912925002234186894855"],["7449730703422578587230509227114789089066070299856303697750544782791654450453","10547906456649727854212455559207757836262172740223730971918461595523644554008"],["18208229219507868938326167540609146718917539404384730002776390913324320923893","15732141023340445494330932950956067784656746041169507045701583616584086827035"],["3314914819225666578061414254991213048431876928930856640032948518173604673222","11304704160216075216004001695686515835431092885418751062733049611497248754036"],["3711430779851325849080601200500144522826664523984952648698845623097562390137","10409573028381256853409136257831362413223952108274109979990374203138458609931"],["3019408523414098051119408433109782734955277017552269287730669234614631503930","2473917345929826524585605792826861367504984826984285617919422802395342362970"],["4051630355595853435851063075891839260978453486715900685465460449160602644638","6429238394815119404361311964946234816274371821720428807577363604545504099628"],["26191406879776691175146831922762491872599468082760404787792849221891842030236","15613621260285792686370543802086730416237005087579714309004564053960271071454"],["16016211052113443110497518042835679043584805503509933631696871032283083240946","18652465068306273434846267070418094340417424191290643684235051257890995314809"],["2697209387137588252781840772508799681677735509843444096729297284466812229548","1427008522040567506046699268842368908890566382350582500494196628378564219562"],["16356851058204471742247337241865973552936802368206733797341774279490108515506","6597945942924175146135550579762582776321117994281292238582815083756914664961"],["15881373977564181842629762140272916361848410598716999229134307969814698016634","3551860401444815442796502007614110103034076531035841410136076336025581705441"],["7707462302812611294376299238046061469286876665486575859044793468918398245978","13327766377299432806980508423302950392791519792141366732243985252688158904399"],["17662569298755645278224235789047790018461230055164742590664684277300206313891","16932286160992278540783335164128515529038387577131678028505788090033759833483"],["18529149173345717852814284795490838253473387453129702552957112300356496729820","16461778239242149455689540588340913720127053163652455405810169355172500337337"],["1450726318182245001175330801520121897875809124389834545595982093061592030393","6957481772572276789227336793184001139426339440664287054853351556631088759679"],["17457972868202170413986686022939743136430913081370872885054850151817795879499","4215586245583340195745858791422975882795526730438104033557373438485761278937"],["17608326712430403221044116384435036849583550509629918495972576738385066630069","7330105230736198535360328882719980271031837739680131354814575980270297262275"],["3438761364863591045431438165256770784823959869880632380723958558839069332486","169092834500493962528306606988079657170479993205674122767382309319700152333"],["21015746982807071310782662527933890214111416363349457162232429661032184346447","18257012009222612550823866288905432136550350603286053294662671892725198260163"],["11497919270033033697147446315732688782388070558675436517635251506378683614196","20155087873650518113100146469891898658329680384518727792477607630843329855446"],["18745712032889135679457657287545430787429232994051461251683899371012225200985","14504986832015656223382927556651209356769517624710162430520465996217542021795"],["12367492616605187961935916375502138918198207636711083889492430879411406937398","15185001545856164096292928783935567870704171046330326111445723040161393585463"],["6438944467818169879176771996467490849782103879380502326551577053136914365766","8317464800404756513848526216296929591727723203698658083063292325910412720829"],["5339535669996298362527008311321508791177386727923176554350608174920846553375","664974810591111238936853286903824999998787118990623148650179762427647399130"],["2952517492251996713560124174329416131892264461099976195384652514088925225753","1072996943481904345750136330474127853041472487283987125449639642855388399069"],["22734291984532110005162790771287537873873466589288792188945793445659772461634","2647031208400936156157793433462445175723846934957505923949579919051369198361"],["3248831950457288333087417993631765359679621969418020978060934962321205470872","8305652871810350778667851987710260867604885000584916098561310317007086877968"],["12204308728630847389946985700827016003911513790095838158649633145846330353069","6559788627416122053617797800502327956370551063404088056329479786995493194449"],["7518197275526113814956498690213248113927435506848809486333708977672602470870","23405006569560804977252095949112729177561040461129468086594680367499716679075"],["12389797662301564524824866968216990230859800651962774132454560905954016611545","26545426570398120280678964189975808218686177129051632084783159938967942851576"],["15277473659887231251945456176196663866421375141447166733989905553234269303435","27166385101672801905608002558282919308741798968307891199921329509870902464375"],["11193834973149143798727986408476679008176432629058024438342058900111311176013","14949542696852454721549214621233999757302327873093397061186596862217744098437"],["27084290156356195504718605451572459315650514459196705663264239318088352429559","19231946110568200832550804813801784288625384566339219827072088565906448603561"],["18674422596028635342365615953687264985388019836611214814103732762949053472947","20399687387994336443481708574390855778864523860725262484601186199062140228768"],["1293220440528933876222485351722922052519462018984322830266519704956651281604","17742290976168238470618041392240195756839466007945853031500654262367164186475"],["9254640607567383822747539377747195803668589688693076054607907788265139080652","18673983760935138674448816420632981250876825119991976006073075230285707655999"],["20012492640112907043363509411005704297318100424837628662967029362621367963884","18301324424824401938260914408552424589809038340017634001441709015767274730684"],["27568580396407923359781841176814375185529397318124676726758193737434000240001","10449568604560749387481644317007775979476770355069868327336326154496202575164"],["26506796150913403454855466231413601896900398206969964189939871346359471947401","12076912097590799742373065492235872525363329248227835910320141243586716924025"],["9667206647674628631086739971419373982322437786679116874677759227676181096254","10528468412572171995695367712757869463443438558859040477592685799487463083780"],["258240917198348889632739853840293570034459899201392879055779068617925652977","12355049338272396538726503207527773334415439432616128070322199678656439501677"],["6168735380934919313677715776549863181551535775025147140771720233968750903653","2728462151811695828383374996601253665957187801138985339290259416592173035455"],["7105094517837541865549608986158019152063199548870378328447556257713269070769","28919622196173044154718347497472143935384413729872231262620679572707242513817"],["18840346610772298030260957518127588590455767680508703660548501472195316540137","14474854935371274513999064160913942664261835018688128098378280432074951579832"],["19770509907768329902282330311266550219453151870352215855349977811350837209326","18017827343857025013773101178089626383083906425411632524238215089818767852482"],["13915274132748639068257863759286753550361530052980951609123856925851976647194","17488028170498215807963897487184432121112542992771508561362247356398174392554"],["14441146607308187982154102206028037898986272681281054791514831481030152519937","562561694250087677034939297277263126025337877945169303663021216581224478347"],["28157282861847745304811605359689149776941796874946729867936396540176977215425","11887984982209567380240481537008628429069478490644602402798845708516689062924"],["15570117472388245946809800346919848311504446037556654830025404208729073954599","27914544459697899014875973945814213452975484767618859900639995824597221771144"],["17401676325772761777253908269755951703128088801954978648313067485025445708029","28303089991624235890160140023628713975459408907206375193436103975870369813538"],["5894358130129485096356647281190492644245904096277081165914839835421057601813","6685391592047831433669585965681161230721768911112271516815671458138258354718"],["1500722734174013753037995053577517424205911699371337455536846884527189474208","16361597943848630714791011235643851461904304654719738792737337150127702982184"],["1129188099208116135600325045761599879675455742154145270803184214438146469898","15685663294143172006629041421742174870078999517802798258096833204126568390842"],["187017172964189029392245992314118749930649688836884600991351911244425033480","25368569046177625383614780364731949125736729261197316660284878849092280821495"],["10543624855903844485171845008623524766766064682885597791882877333922703405335","3272852906300665107901629200681462386937794738543396510979775577792722746566"],["5226453229314710292891105418056034483768218388695468642683226711410388633954","8893370639571514312419061228712048416354157995375886963135454250797098668877"],["15825526244397898092435068493073181374490684976540885026171047223054620053359","19060719095201795689882887335995401278465120681278461327601303407438739786102"],["7175630747697745716459365066187564161382760422600016819142796232210748391644","7328556052965696079004278764215944692578165217086754019202876168723978595284"],["1723159238229396631327472806933348057767574160073147112952429508541617865059","28360405786038260636087410450697946502624441304543528873666834864693522663577"],["9284160584693171785323341776176858855757404073008960517415210725500898193207","18663783863354011703812976456852514566185031483112600614333417190391259577337"],["12443635509637718371838001663326294515702610846648414769245486740076527514161","16078557920753169168749096861681267768801301926641584315361781306535995767882"],["10388959625262333502956833801270632006044007974427372890263623792389138911234","19251113775896782835007235165072602226507611656838101685161428307879046075587"],["3606891462717404553558635878447300790094660770039079967930433689666331195419","25206481071870861682954124353163555524869232876496300662605589298234611960143"],["6110782915046378593504986591760627523956833367647147309591455080284351701523","19595941939721443170346221629393107569370752533619189225125364277852655538995"],["27402251106790602033353297843153844727621928546439403355475365893198509360402","24655671326568242914275475261564473898601936243816995870941053609991442279757"],["8354938667616707061279168478778846399427221978151324489048437916286972946186","11210469482587659078526511524664332134496755630089532924438102275484692874984"],["9317198734626923714940367660183253835654419264219043645749097572856558612060","27688791971874589470653646526185739134897385604848616732115820572347958986931"],["11735153260636237054178146139951577392927859324864807319509384265791665722938","11952387938820007320842590883785955939952215486078163835198230256964659163776"],["18907520065740544079072748260849826964039865147916483134130976463326732733683","20268495798541821788779565751270479468372093463418692721283551411013479998569"],["3730597423178842561568505910197969777499576379122293077216529040636212040574","4475984091563453554710913916636424965471632200574174757581479173501432337792"],["9969341545637806841391704581041368608612500247048230928157807927108262283023","9901855899378535873854004116213030347768883352093983276611225227742232643634"],["729432186821855799490433941136828513740553000268694946976041090408211153815","7741011476530687758567049244873294781128485685538784129192513051117599563850"],["28873812071513633779652699538287170733124761408359234027824982084003796638400","3059642904645244137119236036106113969007340091729508376575202636511392931510"],["22334288372731151998074773797153220130390062801361707003873850126650738129058","12321518665291380167967523940601497006128613347488236298552313019945159686284"],["8656051781797567991448635815433895982067999572153474559441636259984030888018","4691086096373601566117656705188815018542186465281523830577565886426966408475"],["189116169327628452683599759074949797772458751064222676282551771538549806029","15404622564920076421460787564638381776640600690913797448270722092099693866290"],["4622804284205964557065660305700228719788908261495545882662212163416862662363","6809863093444941497976934806868299672749090159324859501468389677652600367937"],["25787487280749231115545959130445474606768792144152671952367629962331828672431","24570906085163354453157913340498247658696992478932076964447235640711826470310"],["2445165352595519287673239577177437974736411639694761407358128223236662753307","28572963976319933069738262739955469099180736555910374605820843331203299953727"],["16780679676889929576829980344384486347509245225812642414156484844394993053822","2995917902656885906551090778468083990580615987301106613244195666584415854484"],["3878183414216849329569116389691247990892568023885603151060968957201399237542","14373148297164684400213088382003788035733545987438450357270064684167094584049"],["28080839207395131248011384772823720807189295972088022447059557441812512812536","19435959455979319752616705146351570448355696323703007410135401420883286919366"],["23754826955231565709803173481341066896689182637534302278189828397377807423234","18480827777154789138494306956751229836355236453288559187547597321650335598859"],["22092487368267739450981000427902561532041091107142110369430558548320074587268","2185346155261979132093871146463407742888836286575100880025527117844675237116"],["18485559367860944550644654302050945232317254048605300108270514442324964789101","26717593613979496223301797714855213802804794424722030284682812123251516716330"],["16722913362656534185213205309955607094385558547591101951511063779643519388195","28552359794000570552778614509770501339686729258423540912222920889815503737492"],["28323365602027160731783777885915995679006713099146710582511880478328425951144","1677582954322205758699592129491484804152709780207587218486966009371081161883"],["6909188307308179511194251064563924277903140028172554726694964963972956689790","9654815101662338421657377895240584119385969878015339809352029303008298052010"],["13388432125938708566804556718967090439637131107844307392907588550170224152851","14130139730819051660691636905356571463719350586110977091343794781501619348749"],["19430808505222764709250538140299059951368881403096611330429143144627305312984","13478501689044942773368247101772458008441950746789231045468399639568656824165"],["1006603012251737259474883572475982019250327516753095498179693208383729413195","8021018394762372757834041167073352516150071726064359514886925035549068642879"],["18585259289397099570381610007068735053025618309157087751479993151284628853555","28772131443128285534968459581370747652547887840657179946604277652492583124228"],["15336308127143622339702035131335900607903082531747234086621009017731493213612","14671626569856042189921511113434948273532441943087196490840908609400015410243"],["9883039600922492913130334093008023117738223268104370166165252426527648151568","10245084346844309521833016456255926748329987105031427860727347249523649820832"],["19356672908688779141737000301286790794946328920842341446524036943692797263478","16439304811766968579378569701538248686110222133162844795118232869614546915464"],["1814220533232835290666835332429013965386209081197318597764743990312579000081","14968468024628982748299931178784668727323113107760277170293568485525116020200"],["22951478454733760972330408465486823076290744615979851587785555969278395177622","11021075793169369182178112278661705989093565415184965803624163403487318551213"],["25080774895364653106360095686470674681700991964522243356309811774787251078191","14995676107266082787023863419354290209941804454596542492795503302508394914744"],["20988098308538723860830222391297129800711122660249640723199275234563530162266","2938128969978017916203094436110398555967379372168647581721378736316783418721"],["2618887644090253427972922842396279133568070351225650458275679287686930868224","21851220358695685381686016466291457992932242944774690343376598073375227534983"],["9863801617449625480069918384387580478391998278057230543246916737430054073981","6985603919273117360759097837218300806601172238507133962154740655293334316510"],["8390806011545690250603048207778170209900290434148021118962758370337754144877","13299031241060225602200799842830497740893408458739434976146784659359214380936"],["15798673888643624333561094032511079451253702176731391942403279406335759404425","15759471243653907374026272056324325344910947095183299971721267691465620489195"],["9913704391482844584403699135558980670710872126531998368144014518657929224643","15925310035236315148737369543403133277780556385975633499845340316207526559473"],["10240549042799883657540407200171757318930066699177448418139667968316566039184","18325271107938081549350727355794585464613151279300664688612040180835022269920"],["24325341980242120247709949087645313908707615760288632639649710862338943483899","25769525134615527119019791747223961575694805942535911834741053469893173823917"],["5907632245350681251281985446691384324795989650333830915811950685945863731585","10261069893513861051968171749590613911375648005844178686281044447941351313568"],["20741416981648816793034913854347872222494511339746276941627305860897312302504","27369179776097142302806003978245112853104376968270988634204798518787721940511"],["12001346593839282595758908554042607785084444651502522648278325392986484526506","26036010758862159767807575364941039383769242791541224590457774938145763103517"],["6875252875002430271549289578151899391858598865826171731907115852398277698018","21435955038586432277247902456392621622930695431808416134381562040806411083596"],["14567466468129454764998283451692102946428908190530286009691595824637371672290","18456264803257183463903137147100317840334932220507503214990409087358451374394"],["15182907055028170318642825516697600173634444299239095238157102173137042395179","10652533312887404721833516082738725687141087190975289064475040169464635132771"],["7835282861257051332205947980091687001870481459976593053315887635987528017592","26921017048695883706574747385580245913250922894747997876009796932832540221695"],["5518071867543000618125230603606977681956140009739070450033319546473879600142","26534738157989896255721878616066945786810469438436346771668910289685810126380"],["18291867586750481983593629276774576274170303585076968129894117238062091850720","11446552991608352304637587850051070664923376824314896666771722198928675238593"],["21281528846396992418897535863910607660372984172629654873774204002688303259798","28844418511879333929414478891192949171580363801826428921979767425432870268640"],["1868568287882060190230585934013822856037465649733207168339999698122696433707","24164084188691105801897787361151891078834278442510386083894096787902934061530"],["24703887935874815140542686990142426640107945515047098342493851065203783625486","25276355604041285617118952978359724861371519211467044232465787900194016252174"],["1327694787648103147506803342526700601071293340989130142855233787457025120526","14384043888225701038271920999337192127367666168337338380010931795763289987800"],["14540983333390353786081166122466954872265917331748082119598623918551116261120","6764349523708837972704851890722617764517420449652861658234569061524090699830"],["26512740830934598363608020790442050403062873200080353794454388116577435141250","16126116364234151782167814797771334859263162946861627408978145416498009355797"],["27492240467752698938496737607251352931161643301760233471582043011629474557404","14116482496307125589106397814247879648780420185730550636029570465969924151531"],["18279767449741853488062095281207575780011367331428985828555701324387371140960","16944652545846699899624158617291370858129302763338277045622400154609846954848"],["26370217605948321161229353093004110843236393310691904479465402940173444168705","20360837329800573030619982953965140049558227962472400535606681878885796852640"],["3476045170238677681762366789576476892142609968997716963908216099901840504410","14898297894477265508152130935917228909349570363629987428794136936116465568860"],["16192336566464151073592883167429383508450588429449175767202716506455692480145","11767003190862126580216868991254966127106476749609635717124494691392667840772"],["24245933414199139712872662491614039758072808372080703934019150440815315018757","17006253625055730984395258443967141896717086290046962597818050490466281939333"],["4963159424265518974508746633844882224200342380762773229525929580451328074300","5463390382692285207514544334280553911126036990022078049718313223063216130576"],["8154881138110059944445939579038787209352192693289752893806107645551569184653","24514126887828266828077507540839674447372803580919056525384924817598916532191"],["3121061019420101344392222657275691045829543747442269880531789777235280724656","28302110560166700507113436664674259284411325476555753603619478491596587704009"],["6127115247976157441095242996930677181827097429707744008170179196735797753387","27761219505237330053242192983364333123522936295821215460632094619550124112043"],["23191620340181581590348633268008466415499798009250416138706996470200998528045","15149437610601841085825091716139823469692278256372296147779120206277384104862"],["6213672350416673309395406531710914409466001016815995146758019285053548748107","3328942415054434555289623131843698264438116871347418806067262849554898533337"],["13224019806899786470703319814244120446751154895299750672970217127773783813240","6698614997799101208895161804598447427802416731006575222316115956542410544972"],["7278124980640932479300302652498787536952175917290307564465725859912098678508","17128926318161113899517037986718597574389265493790935065474388187738584351823"],["17099157160836453736711498678247734017760625152791006490090875836315317669561","22068379340953982562367454815172961464474723546599798478326091357455405997445"],["27595103809024752767157238389882923378029396126880882763843839275202301669219","24045987210814722226748110231777927880721206616906376451367578745145906802574"],["28851586288962432847069512605947587843417301201244958555845154750053528525313","11249501147812455461502534507459105583409183583078454419816223682375647725412"],["20255400471252821486660681828911824628521997727303404404394142425338830626168","23531446810038256929242637090922241606138613771769243664303058305227175498354"],["425337571819906673317629626485590485756640076104654996598545463056563044444","21117621419540022118250366905178671870113187187903242985637859575706364062546"],["27473476253466839954580983756133674536354806522186011026198142588339432715533","7661464772042648188022184872615377074991897153642380932612419120355240328677"],["24665182368425034818313418485948532016051838456765209838632805205520958385249","2912203104629787022089306054581051349848384595549586028339879670649218114186"],["15645832693418409910815028478767025517985535413978214345893865024392745129013","4358770238056853818684401334770775927532986661826945761955064174008171531756"],["18941950470700962949054503370961737826407739334099297238483900041766303237462","4712902702354376449634525018245033878115333302842227398159233571928984032395"],["8498006261110082020402055915583109181823926175935552433198276429057910605646","23170292995307408669233773018027477087089453308323065724891214175867926750043"],["24032827257435239863802904802571345075670080033389216926473316644346029646102","21962185155707873703669548770678570214481131672810543104632381264623823703325"],["24328416777765913565086952615192245933356671810530580761802184633389923848001","20188993222224095777315528636723339528980917138877631406054909168741188320090"],["7006261109128256090049740351321860952929631766239297207692009092675750554108","10211881615598024999917736531476548782819162664349270573285053751402839382468"],["332232815840660576996152524619576410825414492697679237041741552110148404587","18288906660482145878892880868676636957025658973845921966615605026346775712149"],["27434715832175332642936106520021029901247996844901181436587271532345169203312","12120135967460864448552406555752854522792669081755994822545230221567927219028"],["647984461759675588545277892454265559128527682474099010097683859107304827829","1990496930403001967164223087500312484553338115353137399806902152208647395594"],["11462964995763930471813380334629592604297122407281147386566788397777537505678","5559583511116342786255849410390855760097559329561575282556155687944389667208"],["12045443926563080500891696151998016570170459926786840807077342043403590729054","13260850510171236731939514135581141617215691061379706900406114547595057769231"],["4591345708255205428790985449257173011966601964901222063867450284608929973903","24155203806337088018671763627152017723600178581159119957287300947573167148076"],["22607538206918975244464848932018087124653994643542533065451565080643393357501","144831702046619725254436437370808712038880967551210693215240707287462994645"],["22823629245254759048250580918985109170266632615144407793535907089448247379258","25016636582713839014313391858636630367202704726316728225700091914589163124962"],["26945888873794737035491685814599946860646107495840815010386616374175622214807","1498138268694015417892621550548961803315270363122673036677827147822401504007"],["6478790229233006988573882481220448037153700780787274269501265595984358966981","18689986428630600102184384407351506721305733792672446449968111021571338209274"],["23957984902384156852594379764008133174331007085487522930329810828920488569350","21811989691811258320683312783396336267274060949240287972266327429005704867063"],["11824771839296700057678127333806168906988756034993699969124365297477500267890","1157752569011149107620177446765170822317486657023815875669125015489677462286"],["18373557922751087443193143301783869365546006364854376807782068888410137880212","9553518681092690719916310211210535616950568034110204724285069991470357292739"],["14019766331292396493665549398044404667875412637948444400881275889319805746806","28590076934613492183388120489293083351802358003828558084490396592033730226556"],["9707631457172848902452434827527045134462361867399175994180303905726006186326","17325084095952452708271597451473766852727787705919779062717738150497389168359"],["12829912496613042399470810498414139917788729202205051607011331991969285261729","12446794766971126782846210372679112401945192699118933622187768124558862498806"],["22107318964800783028771553697276671038219754847371841461684372966808513465010","7284994413248728570903157703924462326098255488224840850802652509314263709137"],["17198032989511707847878860917748678608040586782785395386810963778523984003175","27276238993056238851507390279288228225987557905371793636076252719099488587360"],["7998897278699403258080343217859668332187451425002370320052657935270989976309","16429151219240630648007156328030421061987030555807140734850759866650627760"],["6502853565344492955587373253371169802800184863026253777599224017835112681034","10783942043313425518860134150671653762924575826241830757195412855790029247323"],["18893814396859318360900584800287800476960640210103670281783880010028950444370","14252506557363459471189387793509155432544417866397973868457668850786558816535"],["22369954949915625746134970640286483597553710353740079003991341240240722856012","805028500659359838101872534482890458780481392775502561964633315017441336445"],["8509032899459169828623344128666026560275935868609021462165038152369068798409","13869048594064903989808845619071636702317937736373732234558649639868609821667"],["1572214612300614486036805453159982456624346830774898038305673923334811262411","20247979018365985685065342516369292242984577605219344565413691226917581997866"],["13975826638796247568793454248882847780454940782637646327852820878028889305721","7564834532737076467450303465898325778717831623153779420923773906732712392980"],["27493720572029723719169102156986910589793117407693195763631977129875933351353","23745911389286255183988887442003096758560662193642582648152201371914089349023"],["15714174632072545983390488687459764454151325970381966336586665290126341166049","7127892925547543263057661745781920974775160437444256989560287689972280013476"],["27264601288058921899074458843769964229716486266858432761721536922813924088602","470064353705906757721721715562793295938394590280248152466344662660113834508"],["12702036126305403943663028224493764456183990584004123223906870090909239561855","8072111389994068318557540518541776151124798405903777916013109040012566490800"],["24895846475434689679672665468183926193240752042502557527344332973980150107523","1183067923369196027256975674839021631412119975644103258060127398601609770090"],["6369131065875654806112283216053652194962522653637822988035665520563611277050","23484147141263999177314259811014178942675783196196991735482836337507186481271"],["20790147722069056309731610917610888160670974611241267710264896216296799615033","5587575972595834649135352056686511989398288137122970045773651832858678541900"],["3244446500288467930779844897932479689996129302050009262278032265709616100540","5059250730931774774611939712781689160162290307821851489006215904508778205876"],["23831786706942375536868600616560733931553775154876738126626485698437244202720","6903335425089840847162450870822591637853615852570991620725675083500517882294"],["662580147253722235410846823362239410265795867458652887301839547258249880911","25316941370167912545222998598217433027004665155616044140745301715638999578957"],["2627216941142109163628579639133147082065430430265089556390990739657546999140","12523342195884882353212287541748450611711784069265552892032227681116739938014"],["15491500055571770782804820340595204936765372545571173309661421142385185191806","10071108068501476700124013606293836012707746285847246286282777086878779512330"],["9662598291775454103915583515403870235831928788876215109862800156449784168060","7723557496619877885220366869606529190680669523006637509947749671071700530380"],["20653505141983934290436833434980516519767523951783648591085520836799729669829","25486386721572182777682268421499753265974138078069466012721578414223643619895"],["14224805796632854267935324945243544425016160071346979006068689498195876273291","1732073370450433174278376943178183663123713819087106222535027089277073936375"],["8836072538704755901242396413553899928004450579293357238769776202118921917186","28607495309928602928990864794487620469213883946507446755485356488979796183627"],["17877755870835730333095442897807987426782152827493296430794621728980848043004","9900770456183769939905630531478085130693595944096512735561408628846973208355"],["9667701222337532374438799446234141342110156847850574099110857546334598854104","19076443403306705547792734873890617439850024105467744104432729260315697746772"],["11559482613298293770593107941670193734979489765675633917634918573723371132693","5467037104734956252914666899661812606260098609615941248272149282410886593994"],["8215817654872070405608290695102587359966145568847364924982047269607346412860","19045367593339855907780255893152519121480387309247481318415751135733219235782"],["15118166693747822954423855128348058026310453318536272946058810933531334829877","4915427427411813810039118905250030804584333605643920987921522003259633519508"],["21175382132955580764160067080307342636522844166270682570848011601807707068202","13181526938724046572468390607130635721444598865165564249022654207974897117097"],["25300187336026678867845737097229065574561065208167341957645900633950816238830","10204958706530586476319368694001117174335398111127611895672040043535074211312"],["9631233000423792251365958664710132619686879864109013139071593202992739805183","12695954751165460525683309675421360612663684631165504435201578238617186378404"],["1826915327683032647634111227785329213687809335592719926101010157835481673940","17091337387771901962748214383141307082029757535444106441048822642506137930647"],["23274904821488542058189349641169395773840717731001879912844321024967755647728","8229441236053448444302335876594782845409172571562510839333321304627741911949"],["16185983984537770600982903170466820163122475176471633146338428104851015734533","13309938103373743315526084716768668312188743872134366600495120829118065426639"],["16769704870896665948088724648063817640488159669225450556930362209292167010297","19307788239645878681700769995590915227535123647338260013362199775504414293662"],["3235377874637870051526658956113504726916855803906415809611944653738496908243","3771311132536330786437388862151291854058042823740757754774943988916616133338"],["6884568796420512463507191638369996563122412026198119860025792797254632981702","10839500724901276468743275819042674565992236991855954663240229007085497953514"],["2771079259617930073783861827650830221079435507789701902594077645628949726946","20262650001980622071026114633928179820779982748342655783891326110374215913286"],["4814953301488044469275418034367977225804658405125304839326078916524297279689","6919383912136822619024825148251466606997745099890603684845875746691609002409"],["25971078151611633568984667213600396694250445596142132345941372822975541900430","27620552905050050963496450135929521776778296870251176547619725513314718918868"],["15257068766137283011005931461042878744472473376137298618182814765343549046678","5924274149030800527817594399893152836429355657862651849134469619891848072491"],["10446717630415135263839093850700905157597838356821423442165880387373287529013","28889661586784038938648757605599627091364363487086445173555568072987100985900"],["4562979912183176864029681437608585514846946083954232417874291660089984413624","25597988792674430327594342722154408657220407309200859125785993525850349558531"],["13176097179009314077021745821316861661637607757012354328278568494149804857879","13063697650795969017579424527844774390446221725627038648713933066089595857749"],["20293705015293165051791212750612586381713856751402110468345629649365720502210","14308643421981133086576903936499582922086491260700379672453270195971047295535"],["10988983925442018430547551516426659138263657865754252223027301141644004552773","24175725301949227236722410829353676316226023504847687085543647058925617301898"],["4353154013062656382760297336254615718863640866574324166326864464400518772607","25276140381502578016860924656294548682892068456581683570422230679082018240345"],["17134889769972304271174432384714227378741273735707268665246432303457603325420","6764296668660384258768568865080374120293544748859078696653617549398845484893"],["218882847232772788374978359281481396611182281140914970588140195630249964063","17121793223089319947497393987068290665954965719971475618703780711962873254822"],["11831741089864858202493075767941225223113236678237923528213690541401249752940","7186089645125577974547471989067458746568859862658950896166144879028712973021"],["9083883388566894026582425652119006081014996628579846127604716780985755891074","22432546426551318287162467670379543040722245598253156163972822479118788032408"],["1002353541220941667516437627242075645184601969074146332182143762939323156735","23230865468569558130763585275206921414925112453005852151008684810445073808008"],["13533809807840402829545525700996157188767150818103006737645162802735626106245","12342720190332236091453159291309467656844117490348680628770438082533197754127"],["28311992490887021414350154073060393076423575456460408087568158261894412818364","10685955519733898033170419281072722762459402137453612166001354139433074167300"],["10429891606984051636418238033371774106838853343564739776750043119017189229655","24729448048932003287569518369597858416515699708740060635597957568774291387143"],["13369041271991886370517676824802117245451950257187223345179626776414477437625","12823985806467321233120029635919701713375081250566916877485849537737612314202"],["8131172060343297528405419882266862421368106198789259519640264451133960258731","8720004678563854263892922329842649595951036710446391702627976877044796749855"],["5226876982284853215334955683468188438268315307233936599196329781357365388812","26691712528108474652293372002817895913313017304463517585041082147128373817235"],["17002633307658106833320236064357689124961984673694126250657729705510349604657","4780940571518221823430842955744292082199405577592915135148211072244643706190"],["14090142107660249701780926232656785986428937730726164815274363302577307036935","21398610980589400859419820396404220266495334747788067911559430448264171198500"],["25845620683228560823474024457271790633325688557428314806370194546390942713998","2289241651230131839502086996429001996021977722435853364093471274248877995329"],["8204985826594315541056726040033917309617933028196898144514288605383182053646","19571224737283552934840486204642123023445961982046086517947983197233355541926"],["12381636996315486552264319981465483261287041346203775006406739210167051706734","25908420093815970687301188828847912212073362355451513793219764413808463199661"],["11894257867055885676065415768113354128721057028078659252450129766774790996102","28723343320579925194775226554958204233011051050483343209365296848227070353835"],["20342623621424503104530148208353168025103402879234869435173456512699036649298","23975162648142641273943275864937330512809925752844904173629953966178259408055"],["13338060697436930455503023418867667044885026938665018836192545170606431305282","10445249871881176564017255706336799537621171253414175804986169608357345836483"],["22495738196165868847110833722564172042916418617267266823630106210163084329151","11203546449210604004788318395620072911142016526583789530869237953977030856350"],["22846406390054886858232209786500496136116863611788330699496477180852988989973","1581554762139138328466681663229912444878651275900157787549397732574220847577"],["18412464748259735756532105264757208540838941297588463457781397939058887660234","14289181026073350935509561484900923290916502305628514628570266850792931555608"],["13165553074719250219975089003195800476607620693293851924322953840285621907145","8839821646525503592936972167970721259440805087382515153657915253661791989987"],["1012939655205956673186522394502184294641902994022343629318306867139551415895","17002858704077706783978549179330571240739653185940601483898938892639679297709"],["27901041722081529450424430350516576268366730464983296918547522294132014072989","13185441757261414097757621656356128648692968192012276905066828861990689887970"],["19579148865165835867337222985994756113403800679498947880224363423951301444318","761198549311708908463598703403469117745626540843972483221203751142228801288"],["22965863494266962345758509400681603529632594477859627128072460497583022337030","13009014169123674291701077802114274792041046500029110693602289946023025870915"],["10092005232060331979765851738294663152893561861666418260983906364301171763057","4517775610927908754784303508048728050624887593014734313909721344834803978166"],["15990568277940807675491719000745242197666667840488118711223594206120551444542","989836709107801872592528223869320598045675372947770002022066823492557198698"],["3628318296500316258007584978614317898863015853343733954745968098765780163544","11893480782216432215186910994380058793857005124599486444737256095915446551708"],["20595296618682837466998384677261527125270467633976994024851786045719605407115","7691089494206007636687313182488515019489026836118471777023180143361826609686"],["19759438786339926068286807654447762873076443545971606058087641956523349974619","28419390635554090378894994025438506790592899444504623019856255076624003433090"],["9888869472243318331317977844273684628950772576819819973349339601431480028630","23045033372642181394070703150546680684596079739982696257145194495891682172367"],["28719599416657903634376292473174470494097236031008600964543596448894106766770","6779104502685270831002636138250953839405939230527769868980250469733157428443"],["22316474992984065232510968604586483298245067923389627149405225583659788307097","24142634916656882785579895641453613703458923397476490891726132108688883555031"],["3647272732008921174819487801946394947984756741059339515638311106605855820387","18483634160768964332067933223618470420347503703918394673871073926974399880751"],["13726317587190699519556804625758092023198422946067385729067759550403893634108","9729143721962104660979588437742563023781282100552038805147376367705132066978"],["6415677921488683050993640222590619679522670142851196893678430242328341894079","14212037507712174232239517737782872687283334081505199381147505737048720124221"],["8340939058806867283044152753334418483792666852321060989732800011012587808900","11084569220755865596133508747741852510019803453842332912070605485278593744092"],["8568016448372832368405524281230277631529848008233381933062069524704335224590","16321893721910819448172472849693289487547140229217039928950324162838618744509"],["17830368303106289066641612718594292635311962540527829792880033814789836131675","2784087711167570961067671445220310872771380137696670612204605065779611303304"],["23046860748058985522320377625001738371421676444074300362685179967216311616997","12438891668639295886387696626595601002037437213034779739668933919969182828405"],["26499090939967854213615021815328281607319831418932988428169211379711573826579","16311100445445809062521682582559352044752960137137969817611351335551487717640"],["11271168720679852186000763715192541595661020374469963950342436444113033701732","24029270059604123422714251309238475259163580132875440692431236278403388082718"],["23427449419904123323899774975692224913117613847376974014981652124627471123696","11509855662595660610696938647912164950418402605930579170733182524231556657299"],["4361461430744082944663345268756420276300041689848237649065026265869621537474","21638845347095371587910282510084527105479796609647338013800700943149160026973"],["25184841373769161259828326090246352934272364555394250296368278521043698956773","25098516692444504449404578025820096401806055069184507725886969006532295722622"],["1343430600695305000461674593857218523727833929779298590316876057129740861891","16174313178611253420433502541828068676171671673373712568215668846678905314840"],["12327001780038611502384718174826839130207296892499084381099042194876869028162","28194621194625834200244245994274612415492074973798587430685145507434501491056"],["6540043707241089907543186137427379962007613697218138547090301838027796865909","20385961330095673974344591743477670963903473685107102563452572238314558812369"],["5164525885113494796164017871825918276884099552598147610203222102833677100874","16273011441135643226133033057091114324174404151899641587974077603312937477264"],["5697273236140484879493393392767297073517292805362306652647317709335503040381","10313935409600871703059226748368423316414999891345680594340207482577435476562"],["13592599044059992305147618127888851563271286651046901577518844419623089269744","11399992698020933224775901355554097372123112677955930925820688081349056078876"],["4825611538250808472481062203278314944879640497829130507400220581813151948415","5606025850168177700587039793482322766642392643889409158049260253476790282676"],["21252452325877375832854188897329207027040887882632004142914535099931619072587","9655654618688651211784838525009767127842521606394527153014082447788319035224"],["17695257313221228873775518661570370971360495382535855732041697641690078856290","15683603964866334691665988535732464190075715986097200187128566537002934419215"],["3781670117167234112582821886049340311982509953650705712820329141314673653472","19276565763518387759715652731536406793447226456554982722949686077507196493832"],["17693364286638132795530891360571514350995165878813706552320093738791042244604","2098566465593904098052221376302412347366552169792352926122191079460820523397"],["9505316828704025302939051845924478271380838182001373874336408454615258657157","8796987896199145184491120875475238042661713744383206518457182360574572154497"],["6006491616848622492839243807534672776788496687169419118466122575665375788357","14362212406115510496288054393144927386739349087688673223185186336391232618221"],["14621048865392532605682939531753404285173165758971895644005906173440254110993","27630079533977016206793622414837903660687132680960391476841753089009157525107"],["3454255728779002123809150250073832939301860555398896343478169847042074788669","12726598999544658305736418136308333772638011080421774569525838935142867619606"],["19309632065965837522712938707903743613282180386323535990505151975573092663228","4014117569979036475141877692944629056988912398565779404048398031477366235685"],["20184285519174386379858670962690504796266945872045528379304933967769606796303","26338195394408001227154360256943855841862065152565967026769019034611001463391"],["23642350494305369472773986608318112795332028726179819239671375030316501509149","9787851857787313708545856194475532067171280923239176485629553705811606137737"],["2546372566207174670993413127725173693969037009660224662071401433260114369394","15768518010784531596250889062795002791326260614562958785405912242003132231879"],["26964394225846802193039235454588881650461812744709260849109123901779659533352","14866080160031976029897500050369064393892368233791487039227242535277459858899"],["7575299730180359941825656174339873054162674948217920728279679124239606776143","5667628692685986805572189305859799455371643880182970535663154807817160600125"],["16460697212449438401764939988666714718187296441292110655464192393828296563241","959264946543927528187800902021374478405875356759719589463676254781217329034"],["23313918490339884149316072188283096128944516594168291319570082448579388513931","27685757523078650105686802456696784832144267150616975607983282767997475183717"],["17896955900614604671550626352534411700371825464939395092736984033326123924030","7207195251556376627298173452068907982159603613159020382862869574977811201617"],["5349213827527250130963013846696848118270183413259126946270322676577757145021","21322242069024631882752229623516958806164177504242593295619545273514836968623"],["5199926987913938917628734223933942714938274440032794726407583892252946741541","9489477639836979770838321364670236488273944337976503578476447620724676828288"],["2998123159300172392661946365518503348222773105895808396306800173555141695101","3989774200216665852034255799907792028999907252374545101477156419610207661543"],["1744475165739638639002199970983728806770671397596865745221094123550097633913","26232581131894050457836754771098405536515879985664520741596794681669229366014"],["23901956900120988751330327472386046934929673439864176709973111857237626749183","27281468758243408816525755914404118961850784767267645915040535310319138957433"],["26629962111100387322233449545569332546809509020571767582223439203375069651666","18923976890238328320027461713100573225718520625724412155182588929693991691023"],["1750910285384595002174982256527051674119876393079756864890590138379488494266","24858329906667705895964780721352771952442842830061242549732632831794191891511"],["25377549479882272474262149889710276984488581883549407534919390881873757276376","5852802898789683867522702236790761248226087025731506611953642163685961029326"],["12325251177815445758452092143674288149275912083314469967020147432245870663172","2711541923156168303956988142141835340196808351950976941355509426408059599657"],["3004262342540351916830362391390233661261947816063792043939637623125666799865","6687943720929970000181484869220188834056401678640781967243159859990879769456"],["6109245392321218091551640007068196672483507256024210639123531610863836548877","26070278929955104738661971945283217764376400909388061379236960104879259957883"],["25898092975468456090495219233313852053165682860081569716195856803838164637183","20867638936418471314935055983018850680169316021581544303133030158961140924959"],["4233509409950659733837059265926419689016945519724397383921740068379193213348","27016987303416626407246019797313387680355898044368328053586453120464152120042"],["13976879317832722720789340865102900263220437098062475770241328535073271804432","162949997564612626072319050277297167230539917947426616619794490847373601979"],["26975679861752079951018062396610356073768395284936493481929660911368033054997","6310190125085629369449879916997982658649071872418500170847033011949044229605"],["3596419771362774288144035855039917123590415435740826955822724344264161088272","23755237252202321542084289490752307555940469940791529361832173432006393222739"],["25722918914902067478712911062332953285558858309933242603937905802078898585194","14054194720847240069331734381270250746099825419632497296622418371072973902571"],["6516315637845188425333338079657212879994945544930395967591999606245803981193","6826996287437518477597598187555323409231480022122906724388389783140545530198"],["25315444155925430245015387803193570204925139110288992635259977779045038083701","5483475448225938246954092018096585286834546192108206050751967263128915867926"],["12352225518900153355732861799956248003721445124641274696263093654472019217404","11281804679011982843593437360506215856126517390102591979516715096064150181007"],["20940880481755249839630000930512870507219577445188571474804800947633990445190","2845543651300180395664499620138620818204491431369384136657911915277881249766"],["27063490933802571712026206974736092715609375985351789890316556855644538474654","16816264070510218092106381529971148762459671554828576635202497374102550243011"],["21172408641629413408683768950838533958571435518883246789401214139502790638728","6389453998158092049885464007637134832379953593296592909899523472363417808650"],["12940645498961071544270567849392403037177497801230364909845424097493829849733","13708444516573564746065953744894025966416230658496251459127818434299229650910"],["3955174036608949882263419536143821138907446683858421365121913219242718401192","7591024179445672828909230603155219158661267417225662163283110969416786641626"],["552060446931818869720944191121828716239954694635958898074597735639834855749","9293657407368536210511009886512266324540641945440852126027098665697265160331"],["23847842891050056222686530341398809707490741201096618112078559345972582201788","8666075719305277640735376504232520892474269848086007439701437116597321549855"],["10113071524435276361064260395592133672005222522583627849334096471633859039290","15383343638373044146584338452151526662990262308260819557848152837551579077339"],["7328328309639628077389268839860707640138158810724141238332364103111200233117","7597908102623599923582311581865278707066703278441826545377037420377964902142"],["15327246066514096196988607316206519848103952517631386275109713864002320283664","28067237047303387608520985882292139449630054939226303469320472239076898106504"],["26089262614546434401777050965510037450366748466767741471490590794370201740667","6323511740351878520007849400356557842474636745289384879715590076379617359207"],["28870488372404099525726282532504683097093045679091346295577174981115672989514","16304441797273127154595039329876328166535279360741235537706977685227936757198"],["3777854549673959267286290290442384689238268298488765975230636854885049599154","6216653604304724672541778232680402727731796463128088784156890232344051064111"],["15584476169275018305598585734940206295597238595944840631452734326214956825168","23565615779523309288578036930628404004375454712366567439912861628641247537106"],["13586266782402407109770639737131622143695207121621249978746402118981028525461","22900279445886623204425868889142436544522614589726381047306322850265286842983"],["28574340106646259254773151802353078845253073424933948073670265502461747162237","21104259584049500563353513158674331126186651916714398879362793030093762821770"],["20661223370007852277271104266835863805292043968246166355138129414800606165221","4908084275554180969430386895610235160363437858976231991235652808935904511575"],["4971648971289595851354809441575897213089550354867534587168257802569382816808","18882678634015468294716837523316060053931018374769288167013173435525504717535"],["27183976016178514524085743976022615289804559104221487096202041984354535432632","9640581959512679483903178632993996958737360776024486428218220724587589654136"],["16480125079123902635187246153806675415429647048059505096012669792189248961437","21375794340231187493531469381918629741395569937316605571136527722734376163342"],["8084993085756120785398006077633979774526263391471703508843033156786215197864","1695169300901200088609056373487710055803771902829874946971704877181502237535"],["3395218907795641514959844738210942848514451638050821601227175987018494608787","957980247617013011647652514239894518871432102772553865706054726730131851184"],["18348210755905644624368754619831123455806107226313337587566629756710288759581","2574905785413198713638804312011681533522437268767134017255847113973965116702"],["3154171141539751339889545678735489368906273732000809653553312853364990305201","25364622810936303307723968000214719054849175138937705696062862153813819778284"],["16369647571560345508236992687862221036562497714584755968763618630181183606914","23919209315733716183949545241728883489431757255200748011995534454201635123958"],["19102524157530472993529945057045091194790509213161577382707169664531362198676","28745907586455693993876485836887672532199018775693129223179671010870901509085"],["27697342300807174057887991930648610726630613996321664012033642225971056666777","25305553869824034543308229601146997143196012825193465968372574921811741898595"],["24625356344511016772278374773598337104023164090789602487505377899211286504073","27357415269290552389175527361529977372517641640113464905564031340636264194176"],["15437228873314470396216814194179267846570186233267653061694643235737835061472","16681958586157543046506609910250835832796449264629055879334791410196996918181"],["22380416152529897418101373345271442756360778120503111596803797463555504923138","20490696853803846702442824028098610421372828309427872428528890069615466089951"],["12968189140386326450858691962292452008248962569518398434720965562360489707867","16475958075616665706591828066767768342445300439983648855441728088590755164718"],["16507123784297142863842395827238927543325406723937659164892132472427692806146","14266674562620888433103249934212851550764354861124144484929301228326417610423"],["10558257006478466443356561736144697194620154592311083319852854519332555734484","16092354092039373442364528967875536264871803301081833804471757932129748553568"],["5212335076371290084353649423143430987917333209585257760261549821647009513182","24824297984563105269799410021947888940728917348007579238316584466003519067895"],["5915079934014441897879530255265336963148885191545427120698777108856898096806","4615213237098951850267300681917175337926283927165590893114342491087622600736"],["23841073340477264366709479617609207223633952185185702301652400668540440913888","3808136666241124681572127768230127042531529630992197769210929252625345278493"],["16266286566086135965949445287642619810922841760026705114639425569721950063069","7061888953095990818037598320744504210338901173283708167754870175977232972943"],["23847012300144485792379001036264690317690350999525946448087352217421481036222","19165005378131414059661584194306283418219316585053761777380212933538563318505"],["17779111246130852764708451199638039769891442396735824278740908912947288068629","21571537390140435122261012994614182189601470925031651376652235493090880330686"],["713911736448787835824577996215576700831654559414358335983016790708999421074","15030346784162730661336938187352069942559095499362082530839826589898813818131"],["7105580037012784999195345718713604637236131300849142725130092696646954579137","15918332136614814469397197861556325767504621440468648582782253501662749878683"],["21190545389540833026919345436762471727821537907782533580481660094702874577590","10435590164574085935050470383004733594496235132652748610521756877100757630123"],["28739832894737134101305864282583611290452941343647293247998347680072091608821","13613989609772051944521013376991972690318213930973622293240063481566657708604"],["18255232334985974934839245837911678384505566985495020991798524806649833812511","17691431339671176703871111435918696827176878740249143287688527149617283261744"],["5928456638212862206217656172885148537509163727581747309769649088055728969345","9266678105577401709787679688018195474633778380491240641041873754867827538553"],["12906381943211358436128585003131523619191303218187042151527975694500034989149","7933837618656514506980972875596729744989295338728623199071902902279462904285"],["19562567055533534580112810383014000719957942082471460006693770082714641268821","7237900631871676961652465675349534483104757307114692392924136096097585934151"],["24934590407282320458010200390650543920170261547966610469511671242291310302288","4774166053159281970987810246312069308023786432475033530402454532695239529054"],["26718780954929334335605314992438641560949795223453527658737239901612183474359","8058508611577026754633623804383417106445283510674119676018863803489007666405"],["22464092621771957502574837370833696553006322525921882594972887475029345209464","2161032821658757833028103955942649802098546337227574868003202260647513324214"],["11777419479614609574377233736225087323047013763679005444023857085032585814478","19344624156241453735129457130269786017193464809501435425824506386073171884055"],["23841622111064587298559798943614194505175850337488637432066631542982317922204","5788418534891046093469521722022001613911615763701934420856174367994440165048"],["26080760825314075330479086806935466676940112756569288374688902294639248772700","22392330119365670076318581441273838954476233497408741338801648871711886342885"],["27696174769357997394707057622849433077724747893154669932457843090713742887995","13270835141192744282125508140695088744481227877105533534983505130086555934460"],["14112875033092103442417186107617136091449959068299192148506985224500126805693","3035649292416259533539246618457669844396181110809928320934757018056016434593"],["8859800671219750456190186385740182606060056790234961375340798880323220323606","135593418228785819364625975842191174286100875279487562302958905553156381558"],["788365485065508148337106550333046721912858750146760010288607395778094530254","9524309714418206014573459055117015995453114506291322757028759458159532689977"],["24992344266159992836351000641535095597960519532661770416667081704171802011014","28233014686496606271019511437870735035325872091537497490280485768752047716371"],["13801594682363841667952024273470677278910963031012014184698424475193234298255","28501849779456485836508756140791750652758602174875494357713579110056177199642"],["6842722739697338852083311137937650104111277582640608360528136319367214539672","2932147369347255396152653330141333414541754684653349058595984229719722736541"],["20825889954778634560389207492067493981060450695414884804119394396429610995962","935905157359080906010642972309826172038531368370812436787476129008161333159"],["15213722841040616937948062039488544541036410389111613243128038893702898440781","26436548488420132339181665796077026710016031255139175166368958899639171621121"],["24906087278698045904775063133080950337946338229704978353088558833715499340610","19884821101521094361498279095653993337807620059326777132539368671483505023484"],["26314906887213127252035645310194555215487793003048307200199275898540285333838","20172686309016528236844567203288343583668556917121741767260865929581652528263"],["7119943052355392600652380596160944802116411755566528834500543457825862332601","16355672427490762400082071763725095268940297704503277605325371821672117959764"],["24607798014162116182524357288309333783866129182006038384298619997083449676167","1239791315405785407287318875532175511648304450297381406373724121885511396569"],["21513149722849163350668598839073026459645032391345460033890591260463297812629","15906393464253620628716716360617768280905378697320751357551768063856846661356"],["16900943438994647246035342316941094632118650031512873115040326942655522122860","21584153306766247075735616431654989996843353581620530267916619323434169553071"],["28090296611481073195251610506107618380428971311842641107375877328952104167214","5677677954891626126827469638248238090411937100322961553681358950108525717856"],["2274677881029549504447582777967698900468770491848603574681959526561493278370","215482485603781831754486246931420082682586247043352714740098833154345855927"],["22891465645702250266948261999919864587544143481556259819631413192483753540936","25291335475278915538762989683006830469717469950017774623703222697428655590533"],["6825200940045582742191303270675925341905670388588545565170946523058372288993","6939054094351413596677826767518734354926625225838904544479358476250956690880"],["27956840090262613624840684225426674406347550144891182329885662649244939294854","9745977714737799058591652533238674509327675441871068210214844904949738838050"],["1922772689162189189130244734167385996825643279221275953557353920191067482989","24571079293181145091621369879917169046278447362551246607422918240813123409545"],["22238448399695893757793852279381250318545626231615330732758329082155144095414","14983622070094159493429880637539252917970392808956468812179698159746887901175"],["19419136620254116041886108706312791133977970232599690820062421002954780326315","24884162407035303804786959446334440433582825045728998916614903219145070645136"],["27624133022156583185860383781530562401252366933395212397896012098600272954954","6584835596490324874317439368918067744683754955672908685714775155349971490498"],["14989374882249104411233842052696514023976013095652873942697836152681691165802","10145152964740185355007108689076970160989248479710529237852333136293594583197"],["22476456513056890086891470576840768450986862151247928470973354317656802395764","20075680698168787116051952839490127807389166361586476055596980301001790736040"],["17494346862256251270885731795408777870786951240110477106911104939170942094584","6283605717870688133693230579661587220666990982626493766813505827484488071365"],["8776628878619045196505587871777910403869315985720170688691147776452504199380","20861191181042051927164484371978450663038906160227707590988273530981319154275"],["6298309174993783142326201097653070904794611975438656842524402398136034229252","11002568323515190485848752456486898686529058278828494898821971316297797748566"],["15363822004355720636574381219692046277041765348146212349737494041365547728632","7553868620897511176846181415186254077291578241827041033411182029411581816096"],["20740448291435328372083046986779091294102915689113630329665736617573169982933","26543685669463217766770413423493216672720809293389271613991891749998028250943"],["26566396084998215373353902405118456709964825967414488248983549333580730385833","5007037919909073505496337693281816145112095152364288026831733887796578089068"],["27450422860565286432717543507715500597044374191957524266350982792382273057797","9884057994423858055367614151896956866604397232114315931738836495625529372379"],["21103125588036421435192591974654665489655669643266116164843037882492463993487","6245875395336957102317882019246032327433325060489272408208569175019009074147"],["9119478378327691768421612550416494806438056616588178965165738182402434795026","16080162284703953162913989599709476191279436325217250668761176742970948680995"],["18330631299158687828832188203817735459410192054313963757915493847055567186568","10398836769983319946236421116789932063560489047964052239470979765589685996254"],["21439944586504924247169958030488448872057457952707594817674769306503448757733","26008012306071044974280883728244654311582431925551530276216082949614656990090"],["12288457101104160653502189689647449456611629002555897371038945334084649871158","16337179208500179093321651415381405342361055081857702124580370013646607693724"],["2259793366734942433231709040940265267830263346313714329691383455274163570072","21227611364866360891597094785549425333338639581760840231064724407195920039986"],["25550999376742381245096597989077170163878924013330499200226506795785421808040","7980013001085449754159564868358503525738193757295909866926814506648667661081"],["15564121269808875163177384097439335206573227833584898756608034825774806441582","16065287191065146492950337731722979766804253189422224298785852921755284114461"],["11322064556225369888069764684843369679919638132187993295484212066862013566394","15962510966293108564106267299526495034729439784777938393721347132162020999865"],["456642121277665439805030999410195532363391531881635693566277716923568675885","1919508174550306184813462403434270879955097121707104033477700778017068647967"],["8823190462502670522520387369638524682697790475813093095173959309622784003462","2453130651719521460549586354643981762850005277171946258619053323645333289300"],["1895549611999756631794081697703405590169265944431901935046089305842516728298","11210726377177887081141628287243168566394284919904920924904269289057879575400"],["28765869893447107221544854207460105632758028076109612617056107970986883385661","13073652031306502513115054290700839903499302458978229804469466322361590654771"],["8602494996068295160653172011270109733456703046701134227279793033173053959022","23411794188069572850202715139741109170358940971176036669563257648266140764275"],["169540623138410578925997843953146349662700047366151142624134041718939881738","13286879737755024378151340265305113745269387108079632249816976250561894949799"],["21618382143160268934701233288995333749659282171288195001572606380959120608400","8087841257119546813462150326223510544352047557119663094259152667465692641181"],["15164554528116571049285778515646928698166622787294066690514566464674927378811","8128024856419563760491256691283267606061108309318844972070148351509820322155"],["15504318277238157978949102249990185062066815654518263736761102638248096218556","16669378353073325148302359825432087432792620023317368160790278587960943105257"],["17158271301105031700487840617601080235248221169000680749364411024237190191508","12256177198221829307739687505831373506524129320547510183063870852087719109323"],["14910897279637917148683802507806481797640708933076308828912237736067024927896","7424847041899158421734245668567784829782967808255502421024318709509955779290"],["17616176153172635472404743292276601110819855981260645377887119436279024464165","21746308240924520780116339345937406503877697423716084145288662107743005354136"],["17820443077255134370546356480771753629849374480075880690712568635041690690662","23929797696155827968040762445449202633425910444055759224637936003451417738065"],["24925341734993157179222260429001585378512664494741415264463233000329696748628","7646758984849474679806934194283743193827823595192731467994240793444394607986"],["10209856436544202708099900537905775097487202281822341603156815900727193789550","16471246326799268655768432605045223500158148911184627481839385168690073292251"],["22057981874903751972483228516704555847878058912704339063884770125918976955071","13647260172007055285094491417582898098184963576006658752350172684239964881777"],["2790050635772940607448579693154265636814392276187998984657979007615883654600","3286064023689355494879116156865049558265820976770354417074370268742792314913"],["1706113001708484397611073666886520387821688895164406288438501520159220890974","19892033884652685875865114640471171082122735608021354364447763859191970718077"],["7454564734587992535158774981623519493173542346712214547600506764413303291822","53200261387335596988732375995140609441252560235346499218387458410578526156"],["1496251238107200543803236119865385228768468962942310146013126312485184182092","12485307808825833446831088554660467480373711056477615864731294800928942189483"],["19776426971102647856753490271965625996056122002222106509826136506290768560087","22805386673308380886932249448054546892032806975299671800054864444564581804144"],["15219579599892340249398318468244204111778600245780077965974133509299081834533","18987515820465895203654777809640942855026452863361900055376783959931363446254"],["5088551774474935243594126062130832551200851207915979345225826107763025803837","21090983136300364476998261917860754141677168735229784668843747122974927089429"],["5965204470415751133501368338716117537731074429746003619071159907465591535942","8878182383415928728739567495955776601091743892187157345697348907083534415840"],["14121546571410143666250219738514670656882896924216208999977082705189752257835","5981377583676525471057537665433871527172746980817631969289788034441889566611"],["18650060765348555169058893594196567341822934008933788016397452687892510542522","28408585712744648781320375173200529659946948862781312900841129464348109946364"],["17943883735705785607816773542883373252816391431704073660546705850048614629493","24136916320758322297881260302570312937528090748165512570409562700407239352647"],["25430101689036984958492944399926229103989983349816988010396208507597094507750","19758515567330224171195398125507869624371668831054555685619613427810339353534"],["24309464555122076744094197403257596457659311805160701966000994385335583996697","20111606695763383134621913037818181908119284863139301413589142022171413505840"],["23875347559469871611426630335402589756459600269147763050420553799257983242450","12565156730972160926518928599718238525327281622182384027957626169949060936906"],["25510809199535126371934242666492389199558037609319323562786514849671963611178","6472310121806100723507499855863246186540860215774905894579439449694424574970"],["15161344551650868965882354290447955019773132197920822762692371989767450630891","10039021986769613194986145352775991275471724329115785165190726325234644310323"],["4335058537103005288360812824534084771945909686507186479682871749082283435651","22487507269107795909311362984191275545431873975609838125319407833567988851891"],["21474427114421119276400791801930610823772608804970507307803377541555775829125","6816726841515660861344807792696078543437476343791254585521475355427845737918"],["16043795805007411777339043909221497861843528801552300096291772239789660614660","23306960630311922224823575938317048907619115804649311973033699582325317872275"],["17767271447097631805327637758316032677817335928845348575198209190813563811012","11330354533566364366635579642761023140769683383999656394102846450150389677023"],["7219430978464665767947436589847527766787248069616009031221393268793578413483","13227990289944153782327218359832997069066726194192980461629467493515336142282"],["22805895433209103178535316018066810368161621300321724393408236053435153741163","28125979475089194176562941642891294949979134577251125051075631184150893709451"],["19327574453028124542606562937499026334251723696943598487182446898361862578544","9782532107318087621745534418969699907406489103519369118420039929414825782755"],["21143501863316893020092783001824188888645488484202172492187128510331379675549","26250544170670787096963689790923190795307708707232197453955261078738317241953"],["17160129466350019002219058686000524117772639632562042020417946396981956881300","17257610539285130002223743371586842026642709422164481622090582762388089787489"],["7959007450119888587180953300522749625832501914949497801168171985562131120009","21498472075615635854165767123661394578492710115269369024117833904097752581097"],["22263046817151765351048750486380490455467001651840703375377955739172070734263","10930637745819009434683244976248765477110457900037333190233583369032518209988"],["25203430716444773365192690652351806705299563513338353246728881951980848481153","12917972629311049050325609928972943320617203104100992679266733054292104218557"],["12508017601767662886449386569651153099302122761776246899202386925927985895971","10998029631898171901322315815135450401171149688305803282796981828752082808663"],["5099315748017402231423176903700487214190860656087764600179574067438369612124","27121869382854191524602103382684041150506275459357201573098813912435180379015"],["23876646646654481466317492627062602690351701343281998975143526219792516797465","8327223106319056917371721647801124498817367832205062086005045562478603622094"],["25399036354625561539641179178681219919955459784095165351695990924979064370718","7811328811930330147110703535508379303126213628791157516084922852720369629157"],["19821855444916271263803269036422970139501906673919374932206789262536977367444","21784363615235089933991934928535713856082197416002444319702452213222620740579"],["18668428664726029820623289209890179182473193079041032112937136457116531894226","16856517919384172937635288124974722889096057203860127404379559392554183195802"],["18004062155794264085402120062288997368467532806365186790045665823329804386538","12154528989944062677817685523760012253099664915013646090321332506006237658797"],["7771300680088531108421607768007094360860332411769604738172348540720562441546","25738411678110403788821328068056970949012112958755266498145143481933494526645"],["6418368432007030533527099172668680949948304837707768752599702215944969005957","14223295368999861784985833286913462212993112112771155755343208783671563345250"],["9869406432438160737964002526828189592102627685704154898909000878413710713511","7289252517070679232376187607679798277315744046107200311200431799045198495615"],["11116634031143125296367759879086477171473999179319877350435032625337921593275","4631054924193684022311721711197113772397554083345757395136908595267636545394"],["10277831929258483725792573145456069074183994259736332080189948502823926891655","13739412743007035484428529953487592355254806528624199138845862654232900082496"],["13753522807469347540502515872960533870617175498503506356819862405322737720606","8169019061490029116875710403389068640833434000550034665110645176701915532193"],["23934063435660748601866289978951159645334702780793437494558510252483213467932","18391222461657149281137960319430377675928622101358357456908350358200905649436"],["8246478843177937531187503506090394512430802192214211808564486614835729357620","11881249070103168954709436845806542036679410716218229434431295904580892519525"],["8289708437734435285704157186487513225882629187929230709294253355833662588919","28672199727520066275483667107067166917129717185785780155277056766106908001469"],["9042076466270270900382942930273424614597790421719057869436030026003655933631","5956032875843179473891559331177639380438544863515944804213909906612165932431"],["139584434088087772930406818334096093288192742765667542755364038637129262036","23154543657937691856643377440935266095549598145949765328593342198617061754799"],["27391857290809982855253186134079514040430136870764976298929044612266236346326","27728729934675899730371679302368267521234492081383097881351866395000977555770"],["23929803134011516640306158441819115600555340492610844166265480192681533068324","8605621793168679236691364350560794046795984999283980589465395053911163053908"],["22893059392197350975965077263187775408542188022003141642715450435729239438880","26965573711097216184473135262009018209968176549887205248421890706266717762824"],["16707803558796739328685366101981012314330327514922600155664599974562144849712","18384158255530337834128312489631189348460326899600731187577640853733777693040"],["1517666589560894513364138180145429320742248680834354514201379095656585001382","4284872984423746130602027176231135400027988836791007191057613848391509823369"],["27073850079990325422688940164167815891571707219620560703341190883743037271314","10062281474454858774067295992713392125848152462581144935509107534845670526252"],["12047327050913063449497561537427252000927620758302005604024501796450312843802","24057586621634675054956397851153072542677290440544456406771654435728268119068"],["21308814444612543677611091807945546177005909155793749151999719556959530346616","26529274336075471778354543376551149893528350570664675152680012361728398997428"],["17111471003978441789041524001638525867119204762971124722112152701830704774735","19557184098977049884189699904426570050615397029899783928771303188950940809776"],["9736732700406514027274723794742007753215850670637954364664678176546284393203","20842303148115510435314349055241771596257002899576373216303956610476154374429"],["700421058307795792296611235571534756278278228913681705268070133377290874320","23865339804962383999514986468345656851570187432432018908972384118394944503827"],["20627252466041955864826762860445608720041169422555188582338575509927303468892","8020410445789170320899698156736268214516630803866491305411584849126354602587"],["23120822362493348554691909972603939036452171282646512724819548391205298688502","18778669782244950919353485237671039617082525722415298153124718314401988970385"],["4896113849679718325853165946272061140701381759130520212233181931802162760546","17999515906242172520004173849574075521929403930773891306934499389637393016"],["21815272785755724396573680053205058614551854499880527211093916065422144372761","26592219689288711194130619350975944346566866439077089645966807550801311535180"],["13400760501934263361495475675180872233832780290558099380244320392843815119324","5091720886878075151552332742625185380737703099676147055359925601838106861039"],["10771298492946974495870772570045370084489674012947246405271328605455217199115","9758928044475984394337975665343480329726096547322900983970409167980069516496"],["16864518868098357422144403968703496212651122359891669074512438937007798591966","2427412288460816401259780983928052671594609553992006307395395098912581242418"],["22986478463218913461046198176190669445950246903266143684893253561660924497236","7029295093770458788054703592172576826657698882712135944839673963378831079357"],["11798447660928961233372749248719488547194177639802368285862158057581897988517","8440277675563948392986554967662629527754705413948352138536318866241670577060"],["21542670077594549711067526273407916832478151576531941566221672109837045903167","17606183126715244072496629021838841465190074116556925319353820748796140305689"],["10952433445369379096114185877504596384060222029838174640215205755397584071050","24327957671217334121218327426203291330279521703314478420164018751415143554895"],["24934180954468052825103265038388977560891451399868662462251465619112950377773","23781287748127272238089654236790774798896370554698198156283777954569780289893"],["10046277067442834872615800911217316220251103775901947092523827732856810855216","2728344778063557285147013857413722615495530451233012441166538442321945834552"],["27110164485020090834659964013969804236236457858122669058242124603660869754943","17531340391154664745757570636668416431264459093304991222509223211111326399025"],["21227393641625752136661747234366871162729071276863013504866121975332073563735","17828713343291940078207240460197272353673119594284698150750800598563905393653"],["22346435769913010646558618402409768640113470772284852314504220995183769158365","4760805062234013826314242296864373210989659212684090642949394287377501184137"],["20112226164846221675746575469026545887567102947050404037792312699078450611134","27690771436076475461012206858929929572634974434906080450584926603618679689952"],["19020769657368104686844534967060770372902891829221404480913894196376539566536","4836241326296417792354903165250056183767847694408779852359230396782880489738"],["14845488175863822744751634543948768914354637165156635306998963513229366319554","898134900410122070027898850552717630094483977100477161195546581617399485018"],["925501318938016856674537404061697489599032343768452921269596589564718740301","13703175586771460864899860356479719900029445989261723253881348435667704514848"],["2823718716513943269909382426954057190320836945548024443942089624235224604706","2265714341812246958804382911886712685309957855340726712876728229832003046229"],["12311384055547518823309634621399516897491480848150584907726165150559837940798","11113710874689179617808716718169492574868615085225282242875147362731392539629"],["16343003416236363704871155425188128149146679886866620303230757022143271060218","12951393352203660161467155226645041879091655970664440355141668662709023098274"],["5595922906293444488867248276988835351928234904918482516714466162371509462252","16215534289627108739163041149089176130407553371408223694553831460485955177785"],["23197241436370854392913046324396549994629146882244800466040800204073033791016","5825780888474650917623266780030641903868478395414978932303494334455240840300"],["15615155015400026372683200851590655571371373923803514627122156439366621011550","17730807375851232371603416036546277557588153936911200460758066211212341757216"],["19295686113797667201292965594395200902038563114275283789625148881109918233879","998406892807822440641384397470112570040373867961523244100534171642929484502"],["23580446458211380827450548381771756951940027957853724643046468253592110941793","27274349392606498276450470675683397708544676475212993280572676760917569912804"],["20713442363213648199596063276514825678748795961687515367895429971409349920645","18405722578267846259207500486455768406123313476808734090798205600995390685238"],["22963211726803348587624400514149957695718084284498941471594833377412586980475","23041400803698469322279849284319300627464845921774449374943533675090852013696"],["27705868263300318093686559459625377066733909574159036994308278478633636400169","17581864570579162484619350207543610487949891466614136045296377478709347676493"],["13587605872337515077420932981745582512976654391722908452705721313863312088709","23212559651637363386301625612656204500772408589068392643919238206386367088698"],["26661924541082680975079465625680192282360693088690477864692905648636380562225","1838935326205424120858493134753092357023708163890407643632888050493590124523"],["9642026718176559595960324109434298531612560789958847754588258407891949525677","21689368881483730414851512553958694716326587100828135873048064416283332878582"],["1104272416745161731594764366239279050948030191837144234386620476350455745366","11539858993352662301890849056749102939902520248390636345933993745331642059806"],["20278501706671525210316520986805444626311191909299213253091608762031341886418","14926735311881860505673593919807359925792670741935677509820268372046615871428"],["1554814085315985496375665308134483508268932263126202301662231680557538395637","6941277915671552363173685774073745855006723387199568178654597180591273444553"],["13560659729019395360503740144829175371489239458246885901530671491092996780926","18624413590232075248953214094062869687162663691017737475618806769662254553835"],["24058627318027757033285378232324527874537025459822708255982338257826933860641","28570103804227452761176889865331985741768627242448098576785964341315991655673"],["27760674298228368087393081297188400076606379593110941238303495493202309723671","2685322115376494126237494069130306410313968145177564486986600917569471532887"],["18643189969726980158165664881687197166204834527556604673135134747096575665733","5477233635260889424685362621183145237449725036920751104294500786411469320879"],["1802367692652773704934614044257003228718347778227084047524069071112186684720","9570574535155849293338141694867357138726162557756177321133316170305147139266"],["11469555897310410675543459461640767067417070128271648537493842371013171809124","2358257022098771622097992130623917369612075680635127679384141311002282698196"],["15377212056896180449595055764909962252235395387862630257868389777753798981178","13209982951311689188224981276915600183186484578838542232718703451328012041332"],["19827915800127356208854751244192829913762786352358325585588110842317524107997","19879955093359530953646151490335748643300337028362012307217109901801145272655"],["26662357965314824952142519487075338850783829279359474408012220147210518433973","3309445350895517229081945198142827633089815272752176302567200894103049257206"],["10507482180236956624978745377686062643577125210764949512484613220596742527356","9228380829796652964413797209076202014305443879554612567311010999359061044734"],["13777932267372578739049357857948243093905325431969466593647695744934814064205","28402627055922807483438610571082611435185390796991379565128381788940377414920"],["10686637825711385299507986349782045257495062964797236412283383385657612400909","25220883984467349059871345778362780353479273077528603559424670945984179376015"],["5457068046500319282538054217538107446661442447993747155128340933209893431462","1342009426818863542747425701076020604709871778364660214346252887857104128277"],["1164522052524910428663847083185055030487291075014591050802326003678492452001","4388440683471840070093764963350753393334424937758543959655134047738502722172"],["22750342947060231643025548170190977020114746830053636133296100885544941462166","25919570842177318524418887161284864460713392054334659816788029761528048348224"],["26838993386409482649452952624491307731989348685144619169672912705381305295666","3126593418931319423150079074621324405247005836260187422794537037673819114121"],["20516700302600991563869760096060209036902940233270083041370103501752723299110","15834101569290621830574715209887748214111001902614644946849365389024243022648"],["2199071443850972933532813544803503281758112518571518245230262416295121366982","23881738122013660344848252043235476634737113195891217590916515357580412496862"],["28830394652185622854447195197338994374859067975609908667507163368245310708234","22954762439375287885976486034600996156495228148949541557127164975476503941342"],["9811687671707256223316959003837325784042602965593799981499201092942274402023","23156062387639154352936613185804117732934030303654488785631953532538860986990"],["24026368087593752302829383945406461534853415498063129222416619053713327268823","5219964409562353351275189106297374403519193986646351804211452001939283461357"],["20542452106150393122851021247826868736667172081844547884751526084242380506319","167653067899149772190556873700820333066874899367609740525432736280531411449"],["19282713437491345201439435469076231277237926894283656079961882817588176210058","3016780231931518985218183300569387312357600335828574200049279196172178608538"],["16168185181578280104141317711254394146813163833109618574055076836665249045784","25025415281342163022045591408237783947849261980731797116920299016952313517936"],["16606948420468831477432909248530495123624147438168308822504593874451703275477","21064133855012889782021324199165741287234320420546488453190163571197148815600"],["16653549282881964553532384457687670293009891369196031583955286005578146480970","19006802018698294984270995946668620197647701763265389652292414028602282542036"],["5782356116550235297824025531025204690332202330368168398640662991443196289721","10392550566000240068522293185275153107578377290857525881953879710989974687907"],["12489249060538417705707913020661964826300334349919696714720622781584369105401","8055904405285802116775224256754701393709160408509635081339402975641962656025"],["18779563318046503851358379115290718359397384782146860279884539180820909112611","16065483055448214125683210541930704029287491754771865349442841339894699176652"],["27495684872357031653966367233602227165415400764667301989517768280435308832426","3601979696526176379865455315400903961576210413316137585407964187056627504461"],["16587235105763240810548629503789701998741263555716965263157187370195057644117","17121329908622866303686240360960998194364451302000865161531639051124093873975"],["25007264112112707265220277426464903282424428459342320361909168607325018293518","6698358646941005050357451444593473232199626080972160321554381684827603757213"],["28623253209517254114595681591362873791844485593493109823938725736585241169498","23511313146018099876072183546622685017767765595156584361430867259204921591803"],["26430583926591259258796420920196826783681569933009846757130178347810963856943","19636324851243607842166575136256270412660501180300858617529791331688731154827"],["13148336405716336040212048427649510321315193844104661339863936095229703206574","17617943608152351656604368184893028054032572309037681051358555044562507341441"],["2528676506596604199164729863767427492208420704342900502365182319641046469943","15499605702227339330045309385149634854041679049382837742346710086839932747239"],["80986765745243167455555780543468662463928660940912544121475862891847736594","26170165691062729240930210250251684395238709722733058916316493181348443689927"],["21106920648575492688451174029770951263782521430307288552930636948139297627315","15156634133994023225401155872670464835069995591255039353200190726404148654540"],["23098233326269415664065780989510987534028878856905933192865564021184538699879","20616028842078103662840177944600766327484517098710853219132674064872712684130"],["8928568627305013305542142411950447294778872890633461543454071823548509150784","18851829591067085403448532368901779956572099613414560190937272712484735995788"],["10698001119840183102704088987491035073197975408907421726865931048118605522919","1906026231336435296062447181691482670565955379918115655606134748000188373204"],["11228824465046812093511383983313383691058976255243996753946313934611948262154","19330641343933852371978742397039643696327107948972517447514427874260602673672"],["11181838278958268490888603035433485190470213245749762298194312863244099342440","18888606915890507223954408374255382724241869581354846502483556359602583234799"],["14273612193613819258482476448195700367209143704403377418071697874178221135811","15409048025056944546359000361279244649297827820876761495028104624370595037563"],["14808385463966218881226597183896201765387328550235111006835017755346268858631","2001243103300749518715129151302171606679015791024169352818267542900532698175"],["13608266801905149609613592182808837035974038989229421454889232641606488239850","1410032128216943148972163789652788815935072882171370520970006588430772084940"],["4123396900703333911123014532490242154435961524448390127592489775243276994039","24777778682510807516962302106517028025417502798522126270944819110385384036788"],["22496453177139044671942579342389740037797966635616954949938247059368261967547","1837557497679105312929445133521273874697129727944551971172167139438822359434"],["1997616512442127117845582029588682108264366340120993088845724747792352013131","8869037063675761259430793002849596786607936795851162394012827031456176359176"],["15768560287346114180918933849542636721102450756822032084126390513952083381419","19078183391668990669955677493292175408763523631158385637032699148035494352994"],["21119644608914620713718769207970095499366110837187484596819917746750947247839","7270135337297309512048071773380227555409203337341457477413430334251483468743"],["17127619762183413305869579188146932493720491278936947407343962417122080689590","19199755512096853147192927395254961589965474484648767208842316606764249369736"],["432178601038533917786919403495776008726814408184227196562227646178319356082","14892116690179212767535619002818307803140804893197707782656600077720521722217"],["3848956581937815674073397811870191707003002475556970486816612935853519227165","22554914962982721359478027191264863841241198071466627733266621276504412014355"],["16857826598541429800323938466490023789255553780851286382450302277173815736389","16719622047289825802778867240364910419230429733064682244527517133746269714370"],["24292929498759163621808912577308163775222855517031977053989427403309664467464","3685320918331434309812266906252102381773826186572355845730075700626526622045"],["26873953780709473051439091574867695923706325703603952316201521948338469086139","20463444513393391850691720293906037802104947468806735770751419364878096028431"],["18240133373394848005727075377377501025072849554165309158422264443311162985020","1893545425643462010213095531130160460678414424247624390063740185517691987393"],["3609524109765037898936813626471017300622555251719513633859549096909391545174","13540602370493706022572025465197045472713784774763822572656979612684502447611"],["11629953398928044948013264159799933650513471412675718954718163463407256833565","3129079097389117849163983840697282933240804554221100106896128372093894524308"],["5890687984221358009411503804998015515826693551144299679033507665184046462216","20549909059390657565877509909526270367804864922577308893992925410005842960695"],["28015404855674389045202370408444062611152157382378453537637416019867215829691","22999678006754910518931570826414043303612921003030360326971740762251614363373"],["5797721933429071270139785721873765231978114979599462601661219874908660672244","23058507919091930472768623313747732498413545587047871104253254849750167722647"],["5108350887061174576677861575702185958384774724894287982436218401211535639222","26152616893997781346941400478992408028122378771451219994347505612226090887899"],["5959985223945826376754102271207533887758742568370421704253950975023608537251","10203647145300941600796228989773396263772571312774917582406430309289155955014"],["27541151306989115183382919906193204410500924354217114302206978894250188148446","20366549812353892024276289341985283793011972957934349407550547942310318802884"],["5295234682697100704532466039808059952048908501966554318894277383440265920252","13736681577044025528245207355966524259963686230589991012842788431453962071791"],["19670486343635347256472392744187161953984628799362065141210897952364540830279","3943750356203185102524927245171293651931625485169041150294084648244030332610"],["14189469155833509914543231906766273262751752610905956968426780129419054601376","26933942482872192436783325997535782611417321749433793694609696381991587191850"],["5185576170054946359960733354745320681830996738983332794457016393456535037315","8067268700782559431740470874084192001205545985288111825800116397761977198281"],["94698119705651173746847564849417097893022490195923086690373551866482852819","23923065567669993139186697268666878426727211185935304015626818642205742291489"],["6626349238881072558143456500532490975936391102971559104994115776781976623863","501632388589098585563370379637807589936319153310437400622375466694467266632"],["7423532664516097249234201798082235763316708076624715149794655603244011326174","6220610141280783254182702110785189174845618620800197187833279865110684248162"],["17346136259738013529337480756847543200965069764176898801175297714394059371068","19646177475016494901312621389436148668509651942937086900337032397071090775864"],["19524883738921495281502786126556943902103877472677042800098389095203536826067","15181998991813157111883248391267485411306608125409406594560238615329363157012"],["19981643233572492634930846763735650109523478182435992669744852216497748563421","8441283727119723983931336417884860046614109091950564917275635093517622093600"],["26987228314003069424646620355398942889044796270294813551112878736051306960150","10430665740033201243666026549350873793655235168879650009932986120011868346550"],["7108697538228538719485892639370271012306397255135991199890683816503471492077","2358458571139448175673916578510010296320715900697512450174956049935628300993"],["4780145550441142830625836543232614813283642220201849187662786287946289279840","25368069958247760084736532018710587627342681312050776558306267091716919302970"],["23425731691583782883955433647604016708825110825432063199127329428636250051282","23233408671217296064180439081139831084590234923959621339349792379866261146120"],["12682446469907308498107018534871502031569162465323939223317888923645148110379","23763093482128384292328001656497988502310910911452247248250068500162778943925"],["15690074422868655416897860967365082580550077966568095796676813151929492167390","15628448398083081285525042293821117914184044446158295777046394132419711490350"],["761822283934688683834910091312097707707364513932949763766828258398124045650","6321207740798520335943805861311122123818364382712518242481489434331361247014"],["1718395441225154470204860457433541876159535029296141271265699668847747323413","20899197244913565718639697681619699650262134350837691338742196713444902853006"],["28827151148562000681113926489834902336119426853808280137993596408595552893112","18027125305936383447901270110924783971012999150736924597337442500530525734662"],["13048157144593471093107816131943097628824339792869621503525746091037230417989","4851251322003123816041844039833672853394938591931689047567149282597833526906"],["14536263289117282258438466373970068331270300137692032427964531532750260744941","26270924312398852297020510060313139762345902594690139620373456578715328161067"],["5395121186019499927314944766161787465939306727967315742049013974745385118228","4802559508276647533088409669038993529327926416022787386209338739887129347517"],["7183571492637448340934594106849075209883579796138942900418544065860022096868","8927010224532438486749065995576772436013218279778490887815608866331140720582"],["17533031970065820807650950103333827415015451832915901290692458720030028351032","11429397743209722359636098737775325188625511635013832520099724723555487270740"],["13655379692941634376814247162992604284173123776838605178351475762657489453026","15377175728009739044013261908186870967661733079176932712200463795220388693847"],["25705141738216099556904306963644617704014326869577949468087580510636020578377","20705564762946640006705448383853693062698294470773991077379315775973052052852"],["25480376356300866777629694714297247199185093289587324666599614757256417980052","27435994636081249586995833658692334642740089015633521003299875940583428449397"],["14651863944884289162700761190163817064227436702775279463170198690277071833177","23625908829109374785449046388763959445475541965011590046595261044498081398520"],["12419041461534233320440179485065997446113574613208500509152076644204171684196","1224636660814741088066720723056204873666948981349605248103454726997541863360"],["12479183657306384708042301152765687550700198748404095034347508591961392507765","5314404334711524104518464028058559523625222111137353641300487556685353484338"],["21489005117774119715784430995724143676495570583214117020623666825591255183923","24686760852160844905051231251304292201748081003175837120526819592356314832888"],["4482363036710450410594666433859298211681746486695704778265133043035602348108","26675963686322693587541771424381029668323691177305517957986206341285720154373"],["5243260258246690153392745263088172115240874701902421579259283459734080886997","793885512167760675847711026097020800412549362850456581376425859234788930604"],["21032711749096567503881843329958900287158885542776574669688862148571822890324","18564429303520500671332109850679900714967828656166881868372892367595504182590"],["14724489476029313336311045596520986100414144247803905186461193472410163464067","839023228876340677118576015351766120603460153535085849547350652395882645349"],["14695100247860467420186867489747440741351182503885842166566898784565468676292","2795156225817981049497788991688362741659369925619217056245497986688815381246"],["4462169355473092316545287837146636907501197209318655640858672264298261153933","3546938819448357865823884853398483251056132988785390087281554522587445634236"],["1314674828758249366474187205882754365714935899911322826944872465978211499312","19021996128950684691100798877481075674296271019665246313452032289602218024163"],["24109937629996079300140871283511492583708932303580367185789399649447940922636","10654184745471368725988934795159799441622692065489183021480263367285984590008"],["10793291235670681472120489510833492180357537931572453547384481806079613080637","15218526713275054131879435891563701371389104594690505191894577421155105658902"],["1025696437908485643943471896326037797513984675000979329112552350522579167658","11149331059662001891490047135604333563153923047668956186705294045861125727829"],["5296321990569321119582129705674680692585195701790978139796318437712513683523","28161613857747614831234950257265013985698025343204939699068369252633026874414"],["12032146936474890570691579202814580812138528841427778247172139136032764918753","14902963026028306483318231073547581242509183100580366627748534747295020152894"],["17931979620877403038115753147857102850713836764907557100718541155060576650486","15226664307322979820435093181026269304473547040984173441862984394573044902141"],["6162406423577159911301923229752473246707492332831321486071449050938560553098","6435467938057060728161929167564035783674166748489552929656450016042764442381"],["20975454998569526967492366471762293910511069755140763181726617827756178975052","7420359547480268682163214623580219677696276649244015337896147049563919167421"],["16703255325702091451008980077643600893467776743299969686349062039289467443786","25068661373355640915312710350796249273481400725492369746095847055285260784456"],["1601190077660417969284895542333758170400203008990683396253744061515732938166","6514225195688920372735861730969582426017953626995127679960226792188642383172"],["6390765632414823047094977257814688458888143629588761970180237485806555427523","1350958511811525780223737120918084647606494314303421889865809742034655860665"],["5076230123430683144747107723969241947161336740189699567418514394265307492858","28339042541072337182803050735910983819035095785100923432853043824552081878659"],["21222838534708467627360931499653831060831408151380524537140973402868736422376","25604627004603568273633695841311290373632189551657833900325994000574538991030"],["1491909104102008522724275315041964681683193654945365396793923647821213879911","1560154488460162866861450881506735192596828393751471613497769961797279406542"],["22699540192602068591603942746558887438990574506545948674426753425867273388238","6289048430697905758591929515445658413682404412079378104764145085902819578586"],["11337203484182708540837528947264726044321858391037115492825310528749605588514","21351858471504200692893876185705929115268605689672656522896445282394932390519"],["14441301234217475775136164840155356526910364806683741691996788930312669625412","11227556732296629356584899845060579659235232920297275594363470360193036931873"],["15806172957752035076061414511605525675881754848177643576634868599527760219753","20315368462779455584297520534078705589239729580822058982698399473267255479611"],["15394968691780198195019102558825616723587198931759114295241545292605660404269","21471987910037341997898655982540128295929299730393234889371135203376920199353"],["18543726767773721246197863371029139821181928214796018712931954984912037430632","22874703413547441151009752304387896745343239085439442216836526512989127231912"],["22486429678220934841811005324492996567638412242781927631696831904580700536561","16079976742721370699202382171706609221730291071562430537121434615574024647054"],["14013763102642315778847997286851091736466210725878013950043295274051339750206","20742022181191598671401911953567806929304434706956624890304283389855575449511"],["12926341104889999893003609822103719526442006785572609355188143357814920002612","4308207450009500412936017633040610212830325055077911566316375085610280297226"],["23149466206795104263355115155299102629815149250825739239039602931706656920249","17090563444092564539249997104262844866408477377102748916982160142114615265261"],["595872987096433536232701224875970292190699843686156246027878421364121041104","2239104703554538253918086126999431884139075313529199154804321332858215594381"],["18582712284256567678238937877538264930985132037409401062878652687633286635710","1890936560979740526330437172596815558009137229749975275291702160248165942023"],["24230120289853179801335381130260530377383075734915543079815123983595322246303","13933847625546293995877539910118289921389413219795203725942930292226321948206"],["8189199197085427801819783886047364979394144770693476218123968751905737198133","7492158475231807960132148850844415837659729451750139466212523934326596752545"],["2721488881746663247960754893883645951045907863219710736140132399888462618543","2221438421524190775705775905009289017676755173438400895817985474474362027381"],["988448184067265400648368082483988336255555877544030936719232925393220065321","403387820293940058669318549051231675688343010195118574906861536132663970889"],["760586047146123631399883957474948041401255860623604620037501254977282431577","11490058724753324866106394887229497906057980517506502749482981405327047635760"],["14280701462810564091946659737789774553453110763443806907802098944996773116099","5171719086127556610974951275334831281314019938673786655552191677262233488056"],["1170426228692261306139981711535588612210392448223337982472314692744538113353","28119443829334115134030217418808262172446652779093703622337602613453346322701"],["15597602540438187278077900381617140650914917965975658599516490899589209380037","22081397946523502201921391647811246832006191876970536984413004324487432623440"],["4732013808326299255142777099722298108760933004542979054835078806790925107112","18366390767917602829192276619669091805792413874602538500284103596530507046586"],["28225591090572451203983442895617746568174370766936737003027808362151616285605","5944155509275341835410538595098102566017004783179817188246680915152230909245"],["8824698374364899065212334677376621057266176239997607567400534402313869194837","508620821930707353103481607769939449122089075247332947240690456367217595953"],["18665928811657892799824500597651576664116702809715518468338224422824100762423","8357670481185293480331760963624503158220752447254263165194208486129883754053"],["7720264411817793768577029285316407447341334337955369387003521262081434644780","11855133675513750133876500061304891260353134967979773363324781369230544860837"],["8151222407436322753394327541741713814851283558514349580275508520504923432431","2691183575763231466517346832685516023950814836766702919212854445874236632678"],["3279371075711765378701092821858624558675087011565129624306437261604797102536","554507226606572614455686494716650152558696345700302631759258577548376691394"],["26248159511466535979375130803517601391403774239990762627454882772247461082209","28754117679889575538037163810576929846471213808751149213285593141983266578006"],["3289454061500328587818800443588337151539883545269782584594985016919291389319","22875106666072436432705321333761642724970209902116493197149465838183097263546"],["23487164307245901384884945258141499601811022894986851297509719815894602135831","28354869026251163367181131247491145046362719698671432673735051533912623505589"],["24339956607654194492344683021910270844343509066772591364179397868080987056135","407253414202280156762914212169239183158048566172812691128148431785711716532"],["28785156190167117680175989602664776937307620997919949037008064105184165222112","28644361851105334293899335238546299379155212326070724619874425857863943359425"],["3009638578115094316949183990001395086165315645304448418755196908305796810309","25686436398960748165211246536313731029919571873487588931915496774226820000097"],["5613645563532266764662263772446380706947466239928002376697783674171213828514","19537113084336396560586350282704427183603299437276852424861604539851509079534"],["775349733750812191825436371551433100806193650636947067468999396358347722657","6678800915414047179828944154431732072225153510788743386272127708662301688941"],["10989860768709061869360629657371216787591777334640482425714485995310267857743","16765300498812640439701603767077518839786643873172167406201442122275030897073"],["16214531695622263881879621888140744022593744352973704791272596926029246311133","26549557884990654539807856654946976856900022046939261377126102839675650090136"],["26905788455414409491298892588175654787472865081342300912038581189976859205138","1676889295002789555119698182394334510888381160726220548117943858116765076616"],["20486187246275045914307157261617203170757200418507847902127741348535052306438","6102340835813013395345061731057999274802265933198818103122351304456807021035"],["9993854295236333363392842444828219669667707538141505339266965570829993467385","27467694194773161746628776424577578960059480846910966724589153742426591933257"],["27694431834541084490916387743682051913903424612008304287500945653801267495172","25919995198880180925027861883239171737400255219874609451032204961664218435335"],["21526315617378137673341359630444761504954059198800727502847103997518461715658","27307740598799314151133601219874189767749206272927938289885196688806745887104"],["3754507125215701784907754003914811580505473830704623050427007064657181465805","18647433835557714640067019465779479029534456087904111667033239076454742911664"],["7262689265214038189382067527643057870349615288270370834160084200671381647666","24349683829297263599976056262095367394618132981789164125537197641669684017409"],["13186616609567366543155022523092378409289836824447080343490072701037268924216","5267789017368260395086143024245792743896781894411459712955921229046912904370"],["28381883583205859667870808296864800532122731622010103036593864981291026194056","12338489958616512774894318729604957732353638132567474645594040564994901103961"],["21727621105019839778477523199399418259651560142963668736292203768453091244895","25632080961709011075062393331599426006492736952208002945017432636506701520328"],["5138487258014664217774988988619153569170429167872811753092440301193505875342","17172636168049507680904730185978817777847599353884989561285815256505338886772"],["7553169298247605322518246438637524700177659007023444364164014314787508959401","17111752643317688489301620777250905896368509473259673967137056585380296618589"],["19354234476546481461636585825337341245230742555439679707683901618721390796362","10552839146142950795886120115929491141806458503951953637762882692465317809196"],["19615571086503179381371714051899947319227130713050728940360553539753248238326","5471680014884520134242879785784350216206697084789029085698416849043012642478"],["10926224858164549482491756410418469225502769478138592217776749724579949645617","7689390568884035404399335794293677634542625453010921938293842004614837454992"],["13388113193472516697545079541035944917481119053769647543022230461414735782846","12212836524290055093760375859764533898322061063266423440495139886172118443293"],["22721934398223983300512621991072955576613632343300134472041655461441495299197","27610214157199177215003310540796379610340744233178587650105031484731400946656"],["26735604955542585995313525189739641350588754239624051867855600944645101799734","11278820811415529927005025130618774340305769440762015339074616749601594940672"],["25913533193978670465525345158995246441531391324456772672982398296528369843963","12803823503448793462241601920490938916390748940939260719554371859549797248014"],["307409022590744595230191866966634644587525818938890226261506934426690837359","2612446633605088165689500234233405497367381396376542966914834734765010779562"],["20778529866865842984069294257921422742146461592584358980378444501510249740757","12450899275172640012020420821143833318924768431023449196846349143424544700683"],["15825788946023470053211277403459431701219385285844781798111504624584822692806","21816207578633495613417139665278672552335234477510854460846324278754372141975"],["186723451670029169790474389728516801141135370417175976000443212719678279912","23884659480899646273334767436800575785648216211631471178701863767530055074401"],["25912881674619508799438601466140107856985967601825566811291417523545926775294","21042914058934257339711195600616071415969672911868142817586765910519372244427"],["17173967545186538447380804514777222475393358971872210790824162206115848241128","12786604999451917830411348046029268889640982705716905392942632073558312860317"],["18995808162068942484106761605862384959763920992723079415812342377129432536120","16064551626886568081988929142584870243960427119812428610645073401788535766031"],["17332938909498704861288802150557047814474384531873470304056294324224079918533","14690292879901658221743721103860849892793985702474272081370895077672415309358"],["21509479437793655739487343258015524999463732023491972261110036043713845226758","28935791108158821598061648367895093575415780959021503850251660746522809134077"],["21015506702965814372641316848796407549701023660888996577987030647102479961472","17648478796843888872745954220462203393875063203200219564354236384504679802236"],["1503619996087005887196425023154438324293159529227749717347608547301981076759","3043855518279652663649323528676190295783910985398466292590014896170883182361"],["16413420567952836255391920030244357545939716069370631472771885934412985948394","1594270550091380807972695505533052053125324666490248624608357215661610035024"],["8781675328008083115868368870477221158804446367799370754135190672148756837419","19311995836719306579765514108620496541753530958368436627496034761970443236327"],["28691532588981239998792189525659772444099040417943874316100516656886297505299","23912438368764225725579717376158339582507551966316434565296753723812525663590"],["20593641852108911588977354000190777074669335432088815358935104165043235441897","1637129882031999115401881041483157728345182926050032440270115575508989268313"],["15187142364762115088717067629871214014013490453016014364010609938333398726658","19862297105395631819002905579486893904474626749540367574574695299382999784907"],["28555656828236090152830599622030113866429733943189191542709903690802886060342","26910307132841903940611273584226609740097035819044490159301105521705889556003"],["8914171089692375099323585460051224631401476773363754295004722346764242004472","19127923041316441215084990050048847217718030956958986476455218682041059731358"],["28809980808578532762499849752471246966509303358105412082584800165151135840984","7357869886467339492212117736005046271164986270822941988869169923933408554905"],["12108283935311225452716659142118133976766087754904925128471501847804848446213","9072215564275755291852760573105555642955231567260535275958778097447845116874"],["5766400198288189227559710931854553953948788797969519661687017356787906793666","11171113509090831102755755401516281682864510154072249054199792489502197274855"],["28585313196078912938598532013431422499745920562928820416371861719694085709982","21047075863120968692675299321320089362473662372040779192645757006322940004091"],["1574088472438736044251766794819642903860962817057429920145114400490988955160","56294146037670611680112210586118924168042641735326236250062482049059362808"],["22481646292293154569296930021901798074823248115650120426129664387525318148807","17342342975633424627442573085647740193111621538241927435028267116735999503493"],["17042239037654403345988807092221812431525119330674830730685223719510541186549","28732874202277707318287174938440850224337220092842800079961487744520743302738"],["3568919523150303202771854824915170545630363509378357103277830406366147339302","1436906401342151967730036929563072556964938533950290716331427531039145782534"],["11317277665593716690980342015601546674612951490124804912356173234027817979120","17243060178894736763987176185771266510053277039166126252929642436894529526747"],["12817839161816560661987780236418574537507966828193258521020553888731666331592","13355035368444018145347691071748103118957263897272935875954939760961801093483"],["14323881135860799338552158293014365718445799257512211126891655492208018754528","20388582548116527339320089625490575424404686959428023347763782717927046618466"],["19081858217332060332094305710592082799556874922878129228077266928932765948341","2367353534228913982441370608897573607778822070664906671883035033668334811260"],["23759585951371219601552676997566469451452367985736461467237192642240408790971","28497110237515349344447234784494812677624676536955687451723774253293048520500"],["12253175469796259094194853957774229193852257542030277318269125926447569426264","23717545309868782122604507163084510276215677050417937083612258596173470513481"],["2174520322725964818372891696461173923354828836555256186271235779682014031300","2090924053380178126910139537519815830691922624886403535325373449282819961123"],["17865577043190807223990857328068454015921340563187335685140441614631417217955","3351845216282702401438098840924144159999367703946285730846675016520371629468"],["7436238931640423011948417744799592417451523041237304149975025153306922990860","20637429700987975456189448940560930595811170899292944548265085830313051906765"],["17519338009450147115214348581074915459159609138917228786856997163081185321547","19782787689658589427490885214563981652918832930502954038933885628572634088646"],["13477687690995182607003523068765789202475311654357100460334386144518845490531","4584083515579327960731938510499850121350516637446581925824031088903786379262"],["28825897303903171382964579031547006561639725795151383077782755085395335795714","4788591545540812101663261800336464088755895986277433990372122782171435102415"],["12355462415823625326779212717359036406671324757896863566207765012024553117432","12613622947785431248541915447667637111578110103922546839274399723957080388983"],["26219318465577030796037389428347537545122969744696314444253584274300806858748","11647722273956849484352601076027978091251913332263986876150649609618158008492"],["22618230451358328023349997788308754384104362630238171759326368545832865244903","19880774777175586046260564113396464254016325424652343204790553497272917051480"],["5610557454107127369055527667004802061439109531718745087606137818758249561664","14570896934576443776165433793010501464917599386635196864153850845856330138698"],["1979010880851951121020016011786095082626410563160873075715339672135699906267","13374176867062735943747405093722254102291593682066394424498820611438780236865"],["15284774226612917758987227075122854548179878703261870696046743093131491031479","23495787271772651729494418389654356580366472203475611478248867328032468174909"],["11301515960382049977090680396096470455943221993781130903664538747701277750601","26312920401293403471627627371932582636944338249923701500373434708792992572802"],["11959150586392877635697480310851823784457111136176090513870980954084479579903","20143090240291670995070277997555370229503284550240312748590629831069284859504"],["12278528769829285851463021873776620061548454552678624533740852683215350595898","1941411990039556816533511512286077445574342112099722976999609763756707697531"],["14882223753694972229288078303949422125034477633218723714499363189654493758013","26878022654222158021508610513219672372528598208019786239881731864378906298698"],["13256438272603123048234757376598951554351382923906074585812472612077143659756","6573235855889480168217311307960571475389081800075173359130165187636429853505"],["15524429657026558374527169469406233165426208836441657860892082974733903127206","20735267492424961267938187608437700572932827158397329031679938999430971503095"],["14813856036401699474140168869412321133974957359627182632685873418889168409092","3728875733959368921601392680454435807978542891052892298637666165725601250192"],["927824285715289236159602991047311159773258765329201682121814666181712685591","27247693088683899768400152947574431767462782867583612207228615682084000246493"],["20931903717299961101451069112790615589540078751393023295166586696488368832582","15395127248588698715867619270506199197758545201026583231931100267898939990133"],["28215719509357027290834441010745821764054083313284709788961157647151355377584","4646685697382496381313739301141283007075570988819791381461442343746279636616"],["23211759288292912201862557950726571256122734011072955545985202786364966285644","28547151540316000172109988689220111669491644414651139030738203892151355300983"],["25197630185214390663876332822633686856825968992579705292081256301378825820378","9315764064500239811674475130783880236218601804355259702099315365094468162554"],["24255791418542665547392535456705215827343660745950372435218794880845463278686","10183485970021773343150816718551671696098509254175092258055185051074377365866"],["19931069519170268114476433701858245018668076959796897553114286936548339458139","26060813884448214946965377331492424427283062410082592571908719590453333603219"],["10061072188441970781492934619919508709491513630405009120981279372642274033851","19837623366953647740585440077885643919770788948125340635327693567711029829656"],["24065280914966935962688878621428431992157600480298660067827678547797092408959","13875157892740662672843903114642027988402735747589749885009073083703926152681"],["1638305136880317197840800829874185604769422991842898781984029005981584418351","10749809218477934401914232814524929913841380403188198663090711883706255400599"],["18801784879057999738623896688718686369526165374256851206899538243548489758816","17447684789691171780930578357476925440315508720545869225797995961996378913004"],["20865477012060320395038237077633367966981914594563053557894609535571780631005","22115649413382410750135882317431036194846815120316519285207954139927611100192"],["4643247713060547204928071455141505602739412789922717004552405590547798412337","7176253723545725950047059896103289552324835998076170960412773061043051950364"],["12051509293474416489305228836014289113130035401270801857243860364341546952674","27068670962810387658543244768597957935213221631385248315309043496082750086958"],["5324679810655901515063002291263989436682995771750948817900713254439521795422","26941846299033130423233660699799685637418277715577064605167966606105188558513"],["10611444715382011276907898523008363852907611693018968620702096964294782558506","21287434494403042330027044876600705486878696484981051769891058317532838442302"],["4060163960593230466892928868460755560262887363327507214226145428178553949182","23451076537375413574081285557601950636545669823886281292933086134076679436083"],["26391956033103721669144210501584407014000496556935447342524739224548076771790","12500347163277796998884909216533174448159382588432215782984445232416323869567"],["25959312694077659140993186527673687900447156218634609323075305117900502725207","2572188376086498648770305918630266159552248055015104229945368348419319038473"],["10393615165900851580736309483644669683229368796500452130382426196441164064596","15059901478614347620580271034705715534937858677811342219930987894642006485078"],["5442178294730512896840995235308904753592130248775466544940355922407466633614","5700843909912581137446606157447903521387737089172675188321828554224241047934"],["24171445905745872472422143119960540201756510342907775571575531611378845598639","22492005458350656956290986972678451943592562744316635281377362629682320262142"],["846811725016847500898652529306595784705524021763276489927210494889737070317","27795082276197643101368817437792310771054629774431362086016248130538314694898"],["22435486094926829444812149903270518049001832399469091818513124776290977507754","28012027219088178914450254221955114223067219267230449748539691934364093669048"],["11628909164289747674256263565592471453167110421900611842274090899471255698890","13759155460367616530455882575567810276072908841331911454659350251609051673096"],["6976975402439808213938489478663657072045571619139266681265344847038424204024","10926656048817586536001304903829888143138562737079146414153994113406757762949"],["9336918637931221986510709923552603164497914682836503993534274961087697387379","21204212921258466463066875944308777713242386117988985185553903502318702422035"],["27818507959843068717392760315154007016443228081208950797949174415837502267293","20748832768116381884626809916882313332733376386119731509995409712703438538453"],["124489304809711209447173038256304793663942317237884083517156100080609912609","3954828330757477626435974120568910713834891716367086469225338034924334975410"],["6036930594823176081367346331775162899251793476837853157702281508939646383495","2564400865666114116381869404293771164918140054882756724445655011198242117100"],["24350702786214119884008374334406712245244603892141084134126326674358157567934","12612966962999211027987186209485309007420949855438911490925160328914899328908"],["11339283235416043175803070996536321402628303349984001836378222258325223179979","1288826485357953273292726582256412293934068331020019980149462995728479453141"],["4227017427076271414464922110593240792690558510421917401946960526592140592646","12108076833740740662757539471919388318227208723397987726269545769443537270815"],["26336337268278830889665824967171218004558503956004094566137666097711736123686","21524335829506832269266680328014699655114011402722235806645708840738556856244"],["25355211398022231293025240127976850312533061603614834365438834221703987456080","26601545940550475301820158719534399538401962911350579838492975547325218399680"],["7873354124133197891512640478252353318423745720337108099593794192871950427157","4954227132588352415894568583617343279114143324113701686924139925820912838820"],["28523085415114506213434266259344345877566679461700183391376202506474630462507","19343144957924345403966986669687304915950896343145997756467293923796550307418"],["15949579877091399478477467907367878573636911983116197064655749388079820533787","3966240344725884984403539495439367123238268800506445659741697073364580289022"],["1737111807797413327941480354760866717025605405229600785032727535676062049767","21806122591113446832564163221128058865989542748597478628999755896063381246771"],["7588816042670315902030556046357492659988904823127857340742668880277074712300","23461462000788173788816501601295905198715862718136417380060178908088671990700"],["12687476982999359132845656830698131572521725723433071001199487706447637210055","12429842695960202573243449872734558983537805771028196630072801680713352523514"],["20273660862539679912272003166912488452843191658475509274013884379794270946256","6552202360513410898025050437676589041643719478523850423187625357681460572826"],["23165845601936491040619349989521485243209102182447058386386369996695405453524","3591707068597829316199243036310848511070696176758525632508124087177707171872"],["5756082788897379071491916279121018816021930879227972200383158644193838306225","18764259090231560242932725175135982709635609825631397747602171749589153156715"],["6971441559818204059184568091135893115197053779680983463422733297647336672267","25790261506455805218686580282324029502535223133697295263682537470543255028856"],["297808479906974101813678964161138663165991414445564070029005433511282188062","1004512677635409339915972931234439029799362644554441228261144833794877409876"],["25565334538976698051437506969990236004578510456708026668459093741515860338830","19594874498239963843751833516469906371786998544452615544516356198765598802568"],["15978273965848758224373167991894085892478689854483070937827866908995622933879","19329900824679039746370139240026803123563109797998305477715113921534858392472"],["4576491673823519176879876909232841490223760209520803055042854445471110480796","22428812975752570260792733773063514050959006724231920893569916016819254880328"],["280687087719460221518531725142621251525569623859372119686923445332374551706","26795215084191087739843205807522511540024343054122883903007220876447066527865"],["21517747895304340235155437718287050599287195629861087982640651911371489937504","4820068849246303814139910392420126539557347240115128614863480631803111236985"],["21490579252246214125951055367706445673587238758055200611451843616536229617130","12082902470444958998624783387303218428094715004473811815064633041617300537949"],["26258120072335022088675998599585562188532216679927388574973260326472222683336","25777568960397858623449456692139948292348722304390128561088543791965798120961"],["28715070272126826660178544784366180534135643741390648018641133570354512065000","13997408115305884672924984815903740762569288918786165894482617460031411043943"],["9183842080776981176495103374071488856963444043636689355021444051471705437968","18425365081451677951061686249960576114939456569597559059526741744481643696832"],["21351216754365337307813644766627279121996314782621074337748474223157822061031","25131851481941896623783128084580426464517434543887891668749563513395195860803"],["21021793595314892480189760567506126780141116884577465958652082335647588751062","19593086702152657975350432839039840523755943498712146896907442105609946318469"],["24734007528586435933371862934078278822664019536692812118777688984642187533277","25253762107754108095602442955339445575214459985238279093427817580602526564905"],["1157617850992487378844412834571780434394948585105650112552883200983255272030","5607226551408633465224790108466353631964859644215971758275940415166808576019"],["27130692714559426073785650876262274343907951333340412036594247191018827557965","16022350008664355428656553716186384199977306400204604886000677044870974346755"],["9321518787666931412915537993934073149973358572302869513352334276090437698749","17425653181759842607546925372715637823698058207559054858695275221525169750513"],["26154159651083354510613433139771499361202584048331145237534031720485438050819","5430352577133409074907127269738124967673602009736069082279723324655025368787"],["3194093704432751904437596486971644092516943583293625462511251210751213763206","5078811378809118474093662707271662516505092703680264281085900264256885565454"],["768868763852401993343284450295868576351766055662087230840370969347392403286","5502450397471730034682361094746853746220648407545273616584636263177954514806"],["21336520763878840780238704537624171411002978322977393771481241745085405629526","4402700616622612606211427976595156539873088362479199153351501214098059495847"],["7652407358047207412016447406816743684263819998312923478576175276615353214106","15285471956315196480418725142583938655745672282607021460716062522361982292169"],["1373360150469589293463978806883979741067756492615860203717883658621153690526","11403891573911711889120512899673199204796398711579262310587974772218141364424"],["1792661636434928845417971576631065278561098810928933606658065127100731557432","26403461159996708453897344197482812148436432130340254249958865050208294775706"],["20908323821700379548893892709805520840633160125293976831964851239496790345674","176639344992857613427700392474608115632354550913324196514550225493518949829"],["3409945720307281159166344992838180010171799463385825773172382957875886095514","5445440702854275963975021926952547166737544302875483794036693548510272212947"],["10020442663436905868875232813219734766910262939966211391806262565373869680828","16200897317558189207562977985889587891837307623096280070797000854302542923317"],["647653492287187927432796305866750471442092030839341535428236496380900712552","17078585516672444069544376019685708232253546350762269634317195497263164786738"],["13280823862940210846008930859692494634286827072106985124735842446231547297941","25271797331717354123603251190436112741577805882899139911341620216157477696784"],["16698743856783222988331106924814090135394595634886463549614544506562267359995","4752455249511817020671682428959457297981555130927586192209498738849595009664"],["21825952766152790735510391075427175356840811579655770428090041624056448519595","5364347510571391630885390742571803008430763692438843207451030514604423699223"],["24246137546786339018788188867019130708676469710353513597659418407104797066380","20199985437457153751487704742904329100686717779038326778440935087826512756028"],["4418654178845681687432722772619202029448296727176359383282092079314519669577","14178488734287910506670580801930781389008556129645213290780366358024020296155"],["6557916747577013182671272906143949374644720742976974568982729938471818110176","23349521282039186824389028453671406409872896481355680218521653177879842334929"],["19699344101074770505416690743550835613451184332607049829490860538981147068263","21944086224855326657928026886984951819896785343761129967335164457543924390109"],["27151407320484279422212036243310338146579240947719361559059002927530548016240","28547087879415783557638451219439242392971358707782510344495911005543538332443"],["8724872558828266403445912670844380621546014229831490614427505940350887539249","26655917963545428482958418453784801426134199966491210907005540989043144504972"],["5479945869842356985217275505089227006416766981390312022144332703691805238650","18475143925811466175835741643511511060357490474561946374160979964923069398756"],["12948782589867822124085812615544097408603279548648105121355067795659616876271","27738826143997563330722060104373802591927464693230318977813737046029282568106"],["23894673691362644383642476022420876014129989615527107181299061675422818295946","10972179317276164101293041915433328300325217333083139621365964704138639203813"],["23133066526676780805504135736494551299731669939574254319219633943632178764904","16802030337515459731094219777451801412254825886714301945273685989708943641224"],["10033259595969176259861490394226314767213707946271425003224158949872371801545","21975588860272220459901254905837992676099286023392336652862035186210259030754"],["23529825582315192400368456909210535423754897212679334732679612529891029365847","21415653380694234901331521068314740674742890598432798633089566650336161364251"],["4778169687422932678973238972036874266311944535149703070209453878923491759122","27071492752110685455964494837784279802188317889288685082365200935052533433421"],["3145414576256496597657539877968210415450420516914087174254834191214026365843","13135799643707845277093990947871532725279356962984421765403699025957811464284"],["6902356861819963546139713038403980624349514096082671844332968984712409296942","19672022943777114584050815011007676320628683184012889149102424191853961149509"],["16839390164064690383752100377614178281581471019738512052345176390147704510718","20518731140190399335053474093042867662995373998746923922044064598205563812710"],["21452360553560960327294901997814569471770099669623484649490625836176377343051","2231484623036802172956675924683042514858630482019755077867825502240900356013"],["11193792406031053491406567373818191256161218755619977331625878212155956707491","2355233544391731266954174767013145895547658589746984032145291242903870355170"],["13703642045410826032599576988149694886639042142384709798969952240327074806547","21599079330660714276756602267074962574861056402540546559627071635556026941279"],["24810749701896673074554655857960957323362207796336167939854993613319893479631","908932475565417681659170616169789241688270576600508106976794858978862338585"],["23465187294326960914119407368889629667688899207589357168177714064578101432735","16900775929252390922898069150575793972495862306050265191838674026476684979108"],["8981709703969091606191561585327060608159607156755238393873310842953248065367","25825645453519926040235398615782628088291144099795159882506020239211077809552"],["2429296868737990135998938397712640948919503926749659481517862212272652083914","8349221292838144732025845554997646905083445451550119349524259344033408648094"],["26416069056980349185408444359430784564165019883493615504923904444704260044824","20117994998276587254812225547349403767017767272723279925674278868169989504372"],["22515877197547939929821689998413189891517594026473352324435149061608576899457","12673522793968305598377484613376467542896029953396820836395304908953880492021"],["1439929368203752713081663269136438757503496562521702676808243336010985443498","27632048100037602372139501146093019334246102633590785978928466657509731752491"],["5141710770632617487305370029162061756826284919682647313211706297935345220660","3133978250796244443833490782347464348664599708896362851210522893857539897900"],["12077231498764288020226067917838510521999678547696513365123177746831148603266","17169319191834655657972568921100407848260385674088562520838347890822493204194"],["27394022276790528009749064997595484259471868492015706183360114308849414292039","8265637556794793334813926576454080653703470939013909221398215023530057829777"],["17145515115432229026223855199992809187052851783787084106818328027717339142289","3297320170536972215843033114167010264367864588702090726071358281361738570083"],["13385416132273874076247313880999293338818910381146620899893740459512231511452","11008914918985695978266841397130513449622912618384313769053134614237575866325"],["10174060779099360353565870278272432221327709357106357330162288373342157930349","11513356186378363615635924877126393939648044309276970297435516148680397089605"],["27610594998319757071558637116163996324568037224342471190335476442382185744956","10953721734179003450268491026607670547264027898245188394778037962961024118455"],["24916169795721586770050444494060022470865349170780608599371239361685616730002","6694018426787314773529642883152312639200075891046037665031100423645144921632"],["19071168620517847438761960472120874999416008983895524200891199384529605949020","22775005921738378787990177700743775082723134821518058190966536059618423150232"],["18720652745511615786138447104735807953909262507717377507549482114344526236650","20962316316318752561769786503831812809605181143300659700020434846342421511395"],["6264892287135076132030422962659472609634820541810000336758353732780374960532","6372996384973317274674833952497834299154119749861898742599430162062405148488"],["5300643875609168289765638539405356666056305788473849336653494474197084437536","6192745741928077268438962639225288436795763905288879215682400616798557508706"],["11390488439472903839040063283161732694570090628803264440151699395142118357723","4560225642951341750248190557015597790230510937261699321266671817229121998508"],["2610624091888647579162322198475652980929068097791267885996855832285503821029","5668857221687278970310731998497386373233155721743076665844141679031030022315"],["19067341807462771360788281808385183512753958071949138578624157500582620404045","7967812196752710232347480914834316960271998520258519322980131939546990003289"],["456241634844479967129291136775690357012953339487086183953771720135806461319","9030648285449399586681361933761303427586310486530288229637093081881359986745"],["3695634954753269487640752453358540321186006999729828231888233391820623009736","10213985841011701267316507685832876534454194692806282712763613288280401043254"],["1662926031854412788001389840922381903600217107358667215883918759138961397262","6060315612735015213788242800468300204038809568376039529536865724082416601700"],["27713884162816904454230294338983491596040544363987671630254739908594017061803","1809384072123265982101046954287707230440339758009029618008735413171299352686"],["8593982558649963951148646753453114571162738193594747963065026846461458476303","2024997992909917380744647694436737180542757561566517263183374605978081634893"],["25151042365830788506429173701283159617008601881186008487889478278989948301612","19787910681410788857546164195638596405609554749540194536763521331567200322862"],["1754453399090724020027290414719866406470716425573764568260868890581908522078","27947308590012961078896513423202387115712795876741159083747793312739974486066"],["16916148554885888982614981873587882458176895180306227941757340732658366037507","19719319824932285928089778742106450414701028633153329885600550193538399936312"],["19008744814208217080954275338134864240531698845728122502599199075615354667898","3598422757886922200242965685897831547913336417080818198048591325843797443654"],["9180351749573770173070609511108095989603928767303411085530114192434774327528","24358181572030159637063606456099031360087975674035031411195073889050993188589"],["5913272067423491300363506591663341370451459655822234216711648776730706930206","20681292036334157167183751672967042597139230320176945776568412343657021148332"],["7162234010952100823794827245519643831372408445126396669030589760532426893472","11677545974157820962153526756803381080695634078222493146177512271541745828442"],["6323028483402007403604586787800926269867688776546691184177879701846629601186","11007472522761182920770229610698402483214270348466316635224053274037441456316"],["10572012414715107013027631648699852242979628197577972659109388150233157418415","13090583656896221079900948941143356321807065225035621372933589500049233085055"],["24992314860166188832334335653253196817632633545874894624843984914568167336832","20085569193927462719000573866668282827032045899206675880181228484900620245916"],["8295244787566264389046064073311292122311277974758141092597949429250132154219","7310499053226261347835571265498278919295198129912962835738246112687104215687"],["16006157459771916376825600712361575475277076401161595590082986600580948010030","23361460839887594280185562317768411027483100971626843060887661869934110652170"],["10710160048938137659791668957551149884778247043944886474246294661453411118594","27842993619835522387982780008161830403205638425368718836265691980758805386449"],["22226050199315898079370489747480069926124809098021624455851539958049748873570","16120411545107526316585062089556798517330437104759173398447772706835225728483"],["20832515461294547947321927675665450359228614938960322496333921340721590269049","27042542892339325209564244238472900222608105450958314978861030932708921972775"],["24059624496965501437900614566698254585880266460085256469328206201841964692021","17107540330109165827248328492738722613039854475196735269128974938021286284370"],["2987037863111782264455353014552956131327899336346747262284073231117067466664","15985392019756415470288585965831293847298006559721855308672663877107413556370"],["25266258906260638153916116258668666788945153494076016967361010283484226986827","26161097859347438949840802517411284650359812784489265064161044367903674178787"],["26230586310881890044276475590030557462741413949987953514324331978844277656491","17442164870018321025523882071012839577573686676108833730178753039117023593860"],["4564091981571981823074058693302375800914505667825249033279323845956057995293","26338895902479204002823379896951301592607874408255126218449077192424680185859"],["5180228675395560160696274966408947560890958260716479304749301809456513843115","7700013429331549830101113465608340299814697953998995754163337387465422859608"],["1956887412597897128612498427637055446243607847275313732039722938690954148004","7570409688456459289326894537918793262557015741478197434399740038395307386985"],["4024358496718209763549657048083685038375979128161532986741518320826003772191","28017778556854241915581583316855160490241478056023567109621589898048538135093"],["19455654025600641127737043872505775566061451045543281915709573214658847212039","9762384687610216577859330991207813908791015404808598896315510331001386172985"],["1358183730731173682646333922971624504784769369847964419263851402748320795027","27490754259003246014441947948758443953304951640227207649443080878798187549266"],["9485709864360116262583630157245098108976994689899632562075169987303048440988","15917053872874183342908746823827785452706399318692573264654999352355365033806"],["6785529942154596162723253586777326057719559057417962191881839633094267493097","24113233076699289967157584405855081981558304233478879447606275508466650370115"],["22514465358361331262510486654418581376355490687313684962523816501708776235679","25605690392849467788847131599508320595549233376149774960430600246184878955449"],["20959944635497982449897474122013640611216584040172407811523326596220269130979","18568353392286004519687434740102073179503393849296468833053313078102151005039"],["25431773400035992943163841371016582656575454246840613944015137685106714918686","8487270932242355349909223506940563384365498433490165986263885986153466307235"],["18917867124360066779225897184845835063116448847685998664160269240872070266004","7363643002440610951699076192719550954546257311473269906603961050379702321632"],["9877331942128594306891441092841448550226831369042464678222242397666402734845","21236539241821209564175255504970882369310385322767819609792587942363122930632"],["3346024318657680877301293307498347031593632960453211127086122554418293629233","10300208768189816287914558409380043340339975480690371032665991477065526985661"],["15975035358464179672737055124269356483873667091105828745634872375739691554451","10119152288309912726157175604411809139683602535079431893130742914134486846441"],["116945637812514164694923369804442616345817164837260310031664028059464622434","8133363103485471596594207380581903280936476931801260071837823294667404875243"],["19126704658199544886757967989023236385157877355347583474076026576569392841717","16977988634376964813242121923529996392107377752351075894284648108823109298065"],["6645246651457862157481965453479803578293005747992895459298406900917131311588","20635704736556145297329197770139644783699079222362053415297979755402329931692"],["23367637698406123819872741578885233279419681661197029809431650528423291441087","13245613402694818273291851397893613528675877539915672043328955638587138355660"],["26777754756976702160690770401066188449089140136321278709822231025446826771941","1058084699538178362160481551804960954541129013594830245286653047589220918896"],["11594328336565302351852215768749099810919388340055740000017512222434929159154","17900692874149437700065621320558368290292090883171991237743877477956281574451"],["4331027011183357086530213231735444083576767435948642798080092579280796376621","11703605426453287637227371786261090857474213051913895444591845675319889110330"],["5095102594350281095756570939165801834455923254165774909788146839385384721120","18593181217829645821484614618633431394353267761059322271185907141871717085578"],["8344273437448515713838289606212166547040290874406028413361038068428814444928","21919205876121630529629604538263112083058414392756801331574608229152976414906"],["5056240024569533607670943585201956800995130723235312533178377492479892016963","4095324492215558602333749189555257689673472927892078740064948169264422560509"],["19207190135644742165970550989088440760614238801002882679233910625362400398401","25381559945497012759903152315053074361945164735973304599670223381497845448005"],["12828807357246695216444387942197474213444674708360841566307011763968442722810","19676459054280429360015201253719317070031350901208140322641862702470298870116"],["6471435510225807011353141260922869059672286785015134816603478221600501330051","11303496357833674881562199958919461727223154057560682660218620483130415206481"],["674156762135486485859048977743426066817755933357171821832926972488446057555","19633546298024380026736496576278660737609150413284388990076227535526106759691"],["4595887835376682181840122450563318509727670897929736495546930144849250595151","24447458754576413958437840314267188121559818807456695232789419059429515254076"],["21043216319286144356474292618116191014761647306295050771276684886779473675820","14940793206058862118158225272001043611232215070488401623035556831933853648078"],["18081057768168578858876852225809896192324752227157428155391034241883655491856","9012091937180392361254741040328349767923226832354237678083357152334965940661"],["928865872932097702086702510541498633101524534994873952864968219114495540660","9509395388747622376344819221768411338013905346679431691945511541766232965024"],["15345219811506478382663862558906856868231919140867104037796377699096013125852","2055987839152234182857299586945310929976242178862379941825663948007174551557"],["26163828045999308345566902424706261439123563998418424836617115641201975887822","11609071383561382716644552319159272106780527301855071273448558582954222250098"],["5120684864645681128124393125347554867866706967646432213572063288469211981838","4285555618705347344036156888493513077693987211213269860137755976837085015827"],["11160194131837831094034507046156547308036340960103231052250467909687440627355","22086016895129569845661767656758826895323113769829446112269255984296565473129"],["23967694898394928337342543229041490622563797602454845796025959218235006708434","12760164701411964801246015912340040020659948111972740810005861271076872159545"],["18482319429219724353590924466909416669253256944720680836954206760516845721125","18240371090911163519869480630798771537508190871387799567466847569514393562701"],["22451797826436368987691175652164736263307552984270106671123778092832154893758","15833409193146934763065467265181705018411702361062120896772390693559844851956"],["22495693103297517856822055635201770622044049379059946366446821633754249063961","5095642648877470555570179788997336318423306739041621855465617978430775751535"],["470632299020446399892884150134201606945090658951124450148182469640211676607","16781263655397390250127304801938616823546565391138390255857976953256472325565"],["1670538940663960609255666732777854698130329036486571083467012625854960777726","13020052583164709507911642537445449515253925775324514257598740128957553032231"],["19410022235301283869544642847729864309554333174934586691027187257902348124616","11573780648806599747698236369287240553009824976607849884797921732067746502524"],["10377274154037728224688015074979370992523763216253780709592870121811341069986","700607994218220906688205313162719880325084485981159861149129195249708778122"],["23028824784092239426299157623501333540884883957471648905064745818660300979536","3013970668339709512723687882476917298166105366378173120300309555954291152233"],["8181588745155251318728830642501731019955673082125661367543119632925839774893","23546931532576558571828515664848366874900030577111010753330701833431410499627"],["7369448706302959002758462627946460723415894908453159666156557171545472789683","26926879205959343748645766973830491409856830291786340663100001350924677141686"],["25893505224262790494853492910147409100592924729075226480838398688590015983475","11374912615583612632909836980127124765352468632152244780457756115740003914135"],["21584865222124122192342422171465888640510203145717922116941304288935615717891","8829359958938535098654518539098825390038406200023946302457554412292431454435"],["12784231057076921624057564405432735646864308032438087498037660952399107213138","18215900183115667011730224643288411827653341312325510723617009129850875575393"],["21828961343174806538404123341429269589076234721481879630782415785021498869925","28694008969463092290199932500109610791178550417190958031886938873215020930931"],["26259831770900958048925786287352694063642589852522513590625120373981559704973","4364961086705236090440504340250693924801065917312194691152002709201702315366"],["1138658265566937324264267884480399886821603810821277175190859549968890821382","721204552543013431117513821152243511505438106695209760957445644490175926278"],["23293567982625473561043970047407692217284782156730620908604208097060448897566","22338324259627564209648013284462347907613152835737293755044606788637712024718"],["6453017393314415641203879396863310987161759317695562846520759538398382713689","25628933684333192913300687262268397247229382978653824236556874436051847596699"],["19445940606057430347690472926628218589732298353783178799763794240913990372451","22604898398543124127177561936259834208320158352430476615332356058963966944524"],["1824143405199587016313848822852061367102706565555431744527962620025203529431","1505369049444753694782064534941122893756123255124137246498658351479214934543"],["19806126551448457671417873773971577863601866916644671516487981251942026721545","11775659041009866713200321957537639019324987277772976771368157170583808017055"],["19686562499484843690377984206223966092588533137024557338214480875274243671817","3158443773003966450803305039082715453817718520714133268585793291171421903409"],["22528806017057984707480590467691278785379370588654429028774389530110729579725","4274858612909265149829459038859579302550433992904802512019451851387612063314"],["13979771389971093013162644875239283403214878399466749920149303064541081407402","22800573353922285582351211450206761961638242538678429632820604122692806565172"],["5861501465576436822245422838044607881300900295154164227449146635656385968968","3471270652831512486317811019575125250207529140689663699769571467163017189828"],["22990376199592567075371427036963943663747666603485451337917558967667662516995","25373603794835027880407544117965296379943646341561457709795587883659201323488"],["7991723464746046205813414534808353537251359847728038651409462325327872424068","19008871294748577183725615688140271179005981733027501095496495942402686339455"],["11023430402902366676686460797588921418664266019745844849346934995490657660243","21286886891433947617853180230995888613474863987260367791798205955776023775013"],["21896420075339262456255613009785361276656036358042051018521880969781380299749","16894616908664772989582660955792250621343270552280458861853377002350874473353"],["22115998789815843327401374945640862685901897601839632380285504419884364469348","14039363927666335219972121820390336993335082306659566690776496862948181215812"],["1028195891511081831168687039445072762301696350857309723569884698370565578708","2896134114378058518697278498185294545913562229568394798783544859403895723414"],["16021745765318609890202783645253455804413975949613082659001262158534277193321","21103074330852143016797049971508899408777365791598140587323477236244539338366"],["16034358561169035594849958468531229292069682061371953543958606187958337107488","17930190418804847561380247758992775869203911408233682323033152050602494284476"],["23786804292375100791221872851987277499381012602151538064237523295037379585493","5807022205522221699112226797598660390882934128796596977351266747730333429021"],["11332359305090592509571637736312423514545243362012006422989273161436711402422","22059351790620851404986776038771625686157412876930288457040560761457163251030"],["20846749281395712662066590926027671544815798845032648334994514393797442367520","26402839813075075254029362233181152191166228725484961792344151014557939685287"],["4046784580853849096971109357426898893322874619495159130244732500584644749485","16788965559415381152823347782235764797738605025931064377507188902089571399163"],["6412105250721221000785328769930615835064130951906193307246241983407194202981","28873074518039173074691216691714617195261486577272783479476930138575985010405"],["28568568020815633365267752013296259151078917526070209059954403420101411597860","18535869544816951589403458252357263821722474580740614655408524388399097688349"],["27358418044790377109156452470552560878559985663379537657803309561105163572157","995057894891916292748784269455930659900798809496088465778172375032530093679"],["12378228628338345606863632369087391979990128051649051791234558398711026360292","28053648821422165063421107865190808295269996086604027117165228626300569649266"],["13307411435809026409889912389155214959768725214369666453164191913146895598938","5742744023905213078072033909862183890401399919674141004050796076500933605669"],["27686407949430478112295205130513559698617353317700046651746673499917117485205","24877701741858792156278544033599163442164332425707091135558877494213089287273"],["13749606401704954775022876076026697163585957438821971777855509478760098969846","19918872577343211142972761570963194643009898142581633928346495679040477067500"],["24771129205755072609923009593943141061378687180868461248499092027954927710828","7071925775156065103115445902782740065818910474172173231244578777357291934838"],["17463229000909517005562454632003721449920607623310179066010801027492459577794","11741676872570081403141121256609621544219964664885801515157553758976906050251"],["670305401272926248586200020687935117840249638918515236017828436331708523845","25045964100734595403477668418959531310438589774587649893857828990527742117618"],["8174041020688423375945638729761528315395953636721234089106504161138978371003","5994238001251028273515654381040394163356249645615198013703228756986718159659"],["22312126508175589793953172832960293181939699595231115554864292158131597241994","24632442010789139200243601078512128741272654981999078249963450590004389406255"],["27866634937027226785075678425990439714148817581004555764513089416193745151326","8989351928076027383195421105088111021080271240733607855461618987063150012681"],["6840633168299995557284152860464771171129498307894219257906308294978066770809","2709935178192802164005139562905046868324632344067779994259395183503565631404"],["24628533043378207412996451115980586615438652629430314903284669636569213732949","6913957415785819978780260356230166843610112569276047974092591777025413496747"],["27864823338200719538820346372862720546881945274455093423603342720984218276631","23343486862409577951569751614686010189352635151272841858170234489213057004844"],["15343373353440770791274571468779572899022498155134002444583405811644502241544","26913012933536763092587448626669052936158340519887208727321971994151204393383"],["22558084863161742196620737072149170232256743407828700766867596456567329776802","21019734548166539651958379909899168303877265370375845548816261236909676771273"],["10583495697602286072700270322413330060506691037438344933895723479685052533007","20400793219275866102272126958120016651034187928019605262704242175469803283896"],["10046040167006121416601432953265686820601612118425308794124324228157093458310","28822056439892572224429352414057144978026354071404422727418686754188701953621"],["7428830354841694825195786016368009088810088692789284790952363352946270302753","27446679903455032860925939466179316963062391150540222458053645340105933367766"],["23755006872837731926296963889079863778919324822094651334161762280800708074448","2485071344063768711871341263720840667085021310570774709225238413069754843084"],["18439283054060756429053357708049099014439891374835472978599979740318088872265","23964271958998641431370805746664492862045280465017854213435079822193026086554"],["19985210134570871555686613485728585247158183317565445064401668938792923085481","15987396666297297320935889992360479960807775675384846881944738249957289392502"],["27909556775084304208760747071979783946495485469891296001674885802904154925601","12947758627325032399187656051482426105728011902677866284396067119400960068663"],["28821051196598694455818833031520209804835719315629366757411049939515859759415","28180619525454385236551039319002446796196414322414532457715911829152730238093"],["10759083179205883451276846226833862187256848496392257756423086818125696115616","16222210124469260318203067648091583577298297284282498716512592910791890075563"],["10069374260721168391592207913703470118090825394466747375944664737987640211225","25732734556771579238106396483281057386815127303765665561762444159874336662666"],["20437656577011626465399949499326571877348212269250666215800091518742634229142","22296734591599973382536623009234731192692713165874580283172289594631288601943"],["1066291846194634753294976513370246237046260907942049416154790855055913427858","8745754689945108647825053795620803831640762632540241408413202345000357419487"],["3021709653190993062681324490753424232499485787415329708357789242717842189907","21554512889022883161387529016571500295315938346925832066186577617189508045860"],["6828464000109287499314323828635872525842737879353951430575317367301805525854","9314252111214870522563726298318017503331757416081882906878586992802448233041"],["614824744735791951710016255329694896811972746572903005588803089287667906839","6703352187220505571593144658933139012342345602651239247394907918581753512507"],["12808622807544208387326725057225407261200464121971983136299471763751523209256","16638072098881490689434294867878301115009944394701244650445509186839861020698"],["49005078331201997470301680841956593730358634106321164483056836195123828686","2461051341797530429339077566819598884460267735055265355478503191168173461668"],["18468416508054499156116163612419824874912181275173871338499533735758912711185","24788342531635714269024621137810970734743429822979160690516672768153647099320"],["18715629064805620680357730994131192213550076524476266496046420764621648820861","2897671105744068762620594533098278983696732351403186298208397686590616222636"],["559276396439073749879446333465307277839781602213995901086515241450269631688","14193158912732526930021096674192657301793703538693351719631677733925690661409"],["7606160909838961717409807912764028744732311786315039230015833949577668570685","27472466056071881721554664882951021320609050938454959089944983218625625334562"],["6038589403943870499250370051687829032623578268581637032041080669302313395360","10456423116194612610735479394678592958208969126738144217698828056430284502711"],["25805246545432564763397584587614271882896102434884380130429664237388286358537","8226869080621035352987588019756582720859096324946223967328458527902273185825"],["26434201891234255873274084174198026689852402106551341705863010008645865986675","23021362355617827726252930423398475536885393129267596712296660768093869037298"],["18918065128364333833989308187138686582788995866891236214575575809705277620938","13857796779667785028556626299127643359887657117082227732765485192654255121803"],["2975501142509513630672108102103055941693227140662589483859851846303721363684","4163900162221953336868638895972997587489701906797207908325040233275402758710"],["18781943816613238549282960413364155445255483382344028802091350479237723192190","8293638784000253994661674134934589766004495572777597684398169348713500479212"],["16260312790163391987170923087207554013528941334167358815867985764006556342801","5575868216156408032246021881255387934003855163365227823795577754040084387254"],["21900279017172884403538594475153451611175537213808489333255139898012977205514","5828485418289276683295193359685639617551150994017038895111310965930951837105"],["6314962139042172638054009361967287794294786472139596520276192801715057854846","18882730532120478996137151581827510110166078354580053060495391148107108828925"],["10195616627728529418217921423170700729892846949000485032043142003442891959307","7201767354458636117280089147110454313656105209672893094689146795254171753670"],["1762345370572321217009669389817570398376415410916295336897508110834825216113","1674302231303817506281278798666591823049199206389763873536868504095973807169"],["17339052155561911135290595010068365814627265887857212942784094916882321117932","25786871210151506316638640482483373164125458371341649976057068796806302266057"],["13091835638378746356757254129935363815797242703655224327895013239521220035404","21983153403214638914004879160789722438013874282223939578993697475521849228561"],["12979759321731487148986127315328403722348918310146669546599304726707615047032","37100442287769745712438940277649440109572414098671178274866377027983536180"],["7183244619978424621521640522011775268466095042663500730630655716809083491555","12010046184863435381265875732817872291140841878466205489178149874255932323156"],["21787802932374050175871550115163983529475981743282886928204106476159321012187","1496679536941016165834755650605404193073054793827541400195940838108014812213"],["19850795478064576614317412780218813911718883135418862459741926340432337542590","21048794100812103234477058772027618614505356853884898219838793418141463623826"],["8357773037705849686003860073242091734814765189726090757995871611864775534720","4244528197879655110952151926050377540089713698060045189253633902587199354068"],["15256470889271570991324082790894814010258197289273199717109907064518974358298","3181255169921029864776406028972336678885018481286788734580443002050727840571"],["28198865923768830424095609118171581846201993553381986826562727417641387530164","1568523944576696909583386925996648051733287148731235849706863062478983663824"],["24557143762218318073288523715904706279769014686842748772929690738556734641860","14367428922485450508452012712376818869291152504563288310218659016273614639326"],["16531549102480199300569398791994615462931415860470910077615494983434152881150","5762570420356257907638121741877145422529705035385338286130965761929863274577"],["12647684924182635996645191893360092840259639342414144086892216009601215398275","28045734554556158135123533160387426894799744875798083370407970475475199033312"],["2702045803206808118529071519310635038311241781046644617112537140636770815103","11284124456240787372994413274745600531023298566356014886682031823295699712663"],["6813672282446314535284393625683903615465554305447370154037304348389502959623","27490284589631354980688562827307004150528403059544236347548618425323354958357"],["3418704228385857538767743156224687278230890677637906646508791297620711657066","11344424524628046732318703328347074091640862461816196983134891210195980819110"],["14078195270703524828244064436046511180170688058198523741258038865506552188593","5725422011733865734933240814511797835751853688521072982972605803162299387564"],["15074330443683884201250943445611396676397060723177296426396449426759388285789","133410094349126528509425206716134747151056406296158055546364780208362116410"],["4719754832930143567105546483680792999624001705054774411425442941823396414035","17683706416224415573242915983807677708907412855465744944940082170654987755544"],["26860369243686982722355629606115921266074087437439995436284799859264470996579","10328027949045443409915591027421333732649509874829284456705248815818278854329"],["16462993987800780444888121931708195956093304930209433994583672592568997029250","4029264704050436436708118513532224826353638561659279326776846309858594394582"],["22471032835938425605886753067209833742147716635992290365958215484011702938616","24368203034228054428977908760626195951904977574838019677947189565186812034199"],["28289048309310781924014645687297781067172197003897814952735450867353213987567","6656489011787058899020760614106905688167572104186751092034787139678151771601"],["6111790016328022814978395390421953950524154346808817738480590453359724408447","24590283647861883750477288259838298828279078067733324782674492367528444788661"],["16762634662297788541191287804439213174746039331028651110786303220593813285823","6851732261039152284926156353714051149690082226168337944682463899074623907371"],["23669746170310447796755780995576930227870347974582979964458265854552018279409","23662319923145482393277669638540641975019525962558043564121816624359951674158"],["9244896772632085791233245781167432811456937554664957827071177709869594137238","25784470444876900501712609119198401997939605885011592494837957256709020486608"],["7363315092300719498464840486887836861641775718678786997129752778942337748145","6423496785197143240012634481010414246845327214855141548385548085140940298050"],["28727728722422218409280542487398394707163418259799551992065230460848486149205","24228912093397499054028979252740117523424081258334181064763340914257891739142"],["23382158076664887250430401805114928770911409053727283941185225841024387593656","25391511256705088345861922025978969522472411460447980326821880317359642213074"],["17298377521902893395292981583930694791542943740161185497427557749490027296787","6965634779898040301750393922102941188743832659921829616078928330692855615368"],["19885662574804436857613174241994815943144139034565944889297984845295605002068","15124055462413602620565022263783270338970988478446912266140784183058304467861"],["14526149314200604338904593486967990987180477805845402985062415003964267231027","5280557592597722200887361009412694222457492004797548060016026895340326841687"],["27839701280548181093073462170414437968190466120365710938116931468120868974515","20338220173356622699182934645710355467126555356118828011305358247524714458745"],["17401314297183959194992137230606628655578598792365160344208204004574980861411","27184162160806751130555271835583403762016213905422311935129865688258828544077"],["24111967772638320554606138981668453512543474349883469925957982319363671935166","21655464107694425939723509206744578934009690558823911654351784001384368194075"],["302561708276753695817656977890112322877071277577263851803705578785395499583","5255288300815769903310050085819782992793068042145217148959983094583957913446"],["3340563110580139502475403112779901054083429253511847721567566166639539604160","25057680312689965940123558292722354925247788236172404424454364560526407766615"],["1597334780874380918077802532227074242980273973821167193089905974636214051916","1226034028605328207847408197404631507332602588737061510188094998078622876671"],["2473973004210310606963069267303278051857442511668253891465782917775019411321","26164177087097743923998998341114401808596439879796999424946145781874266035565"],["19666729395690831307564431395521110179060688235833712445244812927982585067814","15675346182640857851511298450212099021905529524304365888232622033237961536809"],["23850705678898844355093345318054862724121211582494989986362764742365323825766","21793316007611054372694122206598714831150542778977938605194924234572635238918"],["11159045734025269129873520219290600623014961182159142372382723664219782919655","201640370464369439273397390137424527581224743783836617608563887918989005417"],["13191225860268971104113738047395506630172507536053989281056012041858381832167","28441976281889321472614103003259587660998123930055336412730515904705100784629"],["26435753800894740763078760167798304788373508279613371306969975624551040241163","23280936553258322636400891425188504337245410104854803518219403038571662726738"],["5171509867574648139299609595115031733848210841904639006531794908516718573338","13275643094339721127881513017762852542106155077551417229129544842067029424805"],["26091893041589065804110717136717005688030904535467846523760218579804838769504","5738279245318806506241825820047815121790794232215317163656156159827605830310"],["10786397801457684305454886459602479397437687677943285868360569299964668816307","8395629702848144953129699422203143676497423873611570040262592868519501686958"],["5124949757285859347688586846902534453639636048834726308344003899553760494684","13897232969711944198503045730536612559383960533946458693960271719094199704966"],["2627164041116640429286193907455912157092196896692008209326909104381875077034","3100916761884775774798385238591962062168893927980053654769566908201924399500"],["3608469982694905193541078163592222752765001031063222443951730725833434834176","16905316198406825887488175837516680141926945941363043165180025191155654102185"],["28281087360486131839855756857138976887203477065266416839360670148978689268123","6364168977195288815765684586288424291407074727621232014576528025253555773795"],["27171864276457123840354608311117897682875989009215547957696371014172695231546","26504290029411092944625251408849039734560483788827121661855744941477964087146"],["9562195546264915526175256592819306274390957652481926226215860361256020758565","25887195425526756739693637951593588262742527874044492690996340143843944879531"],["4660570602796990256398216061829029568466395888190065822273016682771581900922","11619023995265908134629633319690019197050454266995760813470739852544704817783"],["15080068702943096846849079999926871044705984859915532853325575764128423479486","28011304830871744351587921856894444143911352562150958156478039163098695701301"],["2895781606672686710823849236488576634147452134220491761069212606747595291706","16299072304917119799349370725469445875786290464673477885411235139247906014845"],["24163923533373913834737556070669401283724862149819647429928055252219256117132","26220302406074165713931724620224911672544975129858613928450661476976803632031"],["25560255581505831559292725658925645762099423333663531649812314111210507601203","23562868454370050141731919679418298760164617129269800701834984259046619602517"],["15389091281322485705788462066225009809258240572621484711162782030534015586427","26569416111070814089673375121421984223351037330566980856075732434484043215969"],["7103057399036838944486018357531170829737655810897814957079624737994103903926","28611968238028667055804975018106503423181518197917424477569520064480326100217"],["15435720897008167544628947979320454734033603471674087402420632532205082692762","8762386912197722656609197644724304033122626536769388286987521177708197846274"],["16985522016499305843745656162529816236973908430506885212511708799058078565869","17801552265413640582462572160262114315466274517561619373416881441313633835421"],["13033436728343644621299778102158873452318801116452556515805230828888753199672","15319646054178538486210866162811086874052956793887457576562428289813496155142"],["11020904759986145168230233644010759720699521073298380532115670594219336611719","25749622354579328884971912232845738563417418114299802888548180219709680788846"],["5629450030345637840739404362840787743848448450537580804526746014690679953800","11858769025145178872639515044970606371098224466991068433690056438824279372518"],["7437560029964531996431206088596682144320337288042139875896833014252306465142","18993657138565423520966563278348143084654420802730537929822990983901335509931"],["22800779448333711982616313380633706898938111622186345081561582708911302889012","20801431665229881306664327595590057400014694416230142638865067862676278431678"],["9952143098365244436620926731537762859874741525240775573047000608122204374145","7133299001695720628421504497537287181526012427584333370992547140043455371921"],["10229511870999972305165735921897777042173178099078974374509295613853758940602","12409047599959351192600505606119332941661398563596770108724270550154743767516"],["12097789808003802780283450044946674743445541521638512352337061617320761037495","15305821434724119292470132016538159121594100539769498701578546981719210660858"],["10947546970033212437859375660033519043733642589063181411739180791629057312228","27619555328507401890775621484097776534914097534779262172531718824102323656257"],["4733063674434509017064423080563643590307832470117480162669512058662177816954","17723144958071620824420067573847108837523294166024849027738118527653360891429"],["16152814843702036054858327056304943074789959273769332462036452948468395073758","16043758864306960578058808382601307219994602675287581604508113784757431718968"],["23024046332511112446644876021142356596887428943268057127625821666585389651908","28640197632788073166659173486069007060161684294479677574279593840432220389405"],["8217787255736119761211373501119636457862174503303460302321980168663143925381","17990865713732210322768365301720550337873198271448763541375533311056921181353"],["4478456420655813704896575159034507018927048923657839606475184548863712953690","7409621963440831519235085475588465298120759625512232097091350944357794111004"],["11089821689657352911505661657349669178834272607851756315238251143682257268188","298280314941556832397641978231205074763383931679560633861748851050783479061"],["20734497520011368003863446199279315318017524526713655000401123021003611155959","26477857079956101904148419664526229413480812988217240142134031992164284967278"],["8978845717959646284300158366578899353926588942576951098660033065052370043970","13418816673827425777610574513260179410871748198664055657833149500610711365276"],["4276292145028698345532484034293775107447741756769467975502364793328652913883","450242376122438410098000205612067554109723147287378431745126943431708192785"],["5591971184861044996031252534809433242371382944799037751417881815384961543517","18432235879756087582646330836340292413204815685205993641205281558627416318818"],["21180472794711248966274035816285169018746708875501439933405588124060751421131","16541632628166047756587972986038404747179940291483990428988758726997878500376"],["21206630733095313786710029756679852454653398468444498958233928695481325705582","3481094466196408187862301147269129889728763863913692209178456464436196735342"],["18881466446745836441596225860112655095383460816516237417064506532054198188238","5918466515505195558203358838086005823310424744120646892309604805774348709101"],["24483507763230361504236539189227905229952702959625851979480024364020161211138","3214072330711957560996436425461949469606333190709280480769017444348335240148"],["248007383721808438887836532226372824877365918948027510003427214108455881862","16930182271523710843189235236447593654100127389633571815941399706823257544277"],["25259242678112141976410912568065058326705033294797860400370817722094508024793","16174142044857831723974952815206794439074127307864389615852298259146824001898"],["8238291291614495728817716708862057651507707977767069818446021457294478394306","9164941730220488840242790018849667318826303984603439927829549444211159566497"],["5958209250183096748879911526216575247683607926552454555584152215948809885077","13379787247744278501146828344858892921549663803063482243113203005468116574830"],["18194403726413555770951694379408689544273127812434055913850926254246549298114","26854434450442897360997768436528852181971425118240519430752380272710434117854"],["9407071601210116753500088263445174639902448460485148606457035975238184300801","3991220038607301766483746430766316987738833157060927330096982833782826609072"],["9712276737805735076095614787107067176262526362681936037696637220409050024212","26276876016135686277081723776178802561949558710627706150963692705653519612769"],["27029052716722621853951414504951086189164317056151928878768830894552485267270","12247053572813746503471230885521374595827366044953903267413101931219776641256"],["17421082851550613045010468949567453947964529604652130085313467286482999631568","4228981475322101827565036657764814305309730876592447734288201389779465017099"],["23611979951858906834531354644213069391480909082496587645237830320662423883265","17281525908979893012132546827702130701860840282970401784170033347751665201979"],["24489407380164538158167566313261217938605748561463347860284019623337209006260","19691623395670735863720930126513578281269277288345939442628872295333117371689"],["2608238610025005063618068259312387713709717069931941947464040143108815972937","19041701177168031253919673217951781436765473764102818185125545608535373963996"],["20554798935775788915907135821855262664755788319603852507752360484365510198310","3033943039688395242552766510459659871884212985457675333182842025666188777602"],["27597164640759873159779090565562638084074086424444051878636728542606133048032","22879590637931999177263524918225379841951065697771606725526543851189285696032"],["16252727641904923180711181305727641843775400565016877794234407781075088991344","189661611662791729079358147144980476786175985085722198848140600981086095007"],["23218206116030796628248365682502747994676788083233203375638011911763630538111","8281893178511933347655515725664635294473488456313714862029994913663975513804"],["3662832456414068271158937104894547586998380259477079034007086751770971533792","13256264232177641189736094376402304932976417426683218047443857594017263432204"],["27826756513484967142066909607349011429349538499260658639254364827673884155041","25773667111061258943162340321067953782891264243438673071302335231165144627534"],["25796333056447123483240288869245479292161519592077410613340279838504759723725","19833197960542536776314465370720492448876372156527403035683494317703548849022"],["2086914011292821767729798916304732074509164491661388212233146883935087325917","13883131303235107403889735140583112242021875228589939155718323972160028376484"],["4804818112956154513887602777784373982568976633408026734513721933677509697360","14132559628668073838110829186043646398406345538533601841666216611022774515261"],["18020653646710203211925626276595153484245149644853489512482841052377429474658","11261263047289936621742661610754980290703409121775346920634490524610914496551"],["2699952973838542001882508657215546294266929250362060820065192788683586069679","8843022175346995612701429674980961778660565502668531428977099276551593826099"],["15296194879014347071245704503968522595869668933044903734188034459862688452126","23728636589871297933428920288616826168481678856337666445697636344076606460399"],["25311295613659851089874403744931291890246636472770915790649641974286790115561","21244773453330041889905444709106264074020129394412975850237071039062711672037"],["26614699858572249178142689680312257414283743076380578624490913802891882092212","7991692623363738404604191035379332835315204171844119591355513830484221026008"],["25741573385237848285297810831028823002902283760730820014849039609256784584764","16799945316560845124262888876099245249524765902903704440878365186194022870126"],["23396265404580675142710518175393667484163678034655932072956202508235776367471","3308939034163049233412977255970036868614005563048755202239818982951743604455"],["18229238322533130328659673663319308722147047353750047994162098406053287576158","11759180563649260278453078778561571061172986051401427370141226248710606861609"],["17485420004446994820435831362524194927875730285596899616126625148052580310289","16973976216991819054693796602257079922263975587373470842086959599939766511348"],["28416403884127968068767774965632300062529148817449317379322125364143691162168","28070261122122226257943074522755426419139309174371807851303595065996789215500"],["9135043406394798607658800997398525846490490215392291567868874292635853061111","15441261506140651700267349060163554120074928109465111275398710256966556291241"],["11033966917818034988630435025036064439877606858086546111666480607539815430691","24879151707790665316712672771568022838824947290098156138926417334025378341011"],["10738357204628233359406037637150254108897311850677895152578545135509054044847","1883552171300741575557259687349152149955561215382725877194969438139944807003"],["1205099443392310203160974285054922561690966191806840138487359554735092715027","22909214084475208592701273393690766895167993660825046375572035630788090700775"],["11764132624160706370037840934787749410053357867611717103007784836452010110991","2234782777489616389445616523585967676188497940426424017136776302349361263627"],["27462557707504192881689783408585813870759826509289912712307165022415321691367","13574442034771863296189224628383414469836328241208292423455135174214738546478"],["9001245829005047393102289994761977316875837160045879936998516411308903981985","16073691006947654945247299610202420021180831330853793875628572531069493017913"],["28250847399768413797927958225511908094251794911315202293328433019613524470821","83658992088441104186478704297469321727175467098910146701869485955497848660"],["7863308261705861794400909587891180339866555612124896143301712703001986673040","2776666937948537858337154798459243834776092887731384769740362028405369974564"],["2461902911238297722762576432296695399988968111020968425176065547539496320312","3133795459787239378622959149187659586330714392688465468067458818592266505288"],["21576860229164928200682422782292237119056049273338816224382408307278758201398","19912069233364348798398205262082376836134327435567099717375287599186116447402"],["10363248056994982944829114823937758263738677067793297594392193054424297908724","6222867255663146209427174552660038475925043772491356952442813203219526153093"],["6289441893495587386366418606901914149824079760642621266604928051684945847491","28053357353132617379048386771029630536759878949965972285073155719975215056028"],["2149313386802035256344719640616748634128117888888946529970732234132394370853","998167488699797718754933599591977570558640409481028503127863948039764885979"],["27348413369018073008007848533024325866697820514809335424788113769544349449567","3967875368435291109926899583516248155544436923253105950283226504171698618279"],["16671419565776171380136940096634134016515774940734688388036593419987161403738","6615156563266679726920920865558459205728617888050429428754583054235404107036"],["20487757098151066116782976588519726456051139714560178051808111453761033375122","28396703378490962377803454676943145132632859759111767634207571173916698034146"],["14348605571225962439575217423165114570946324654906291930227674746528082550941","6729977992381214732487455134345258704983438409920635600565757504570756738959"],["28890362742419631826980188641631968135270799926982792558853850061321030994914","19894459526034202433484765828219304248429203725967663150132861278791568463872"],["25109724344567948775528702604247106151522882253263061705180685389469372863544","14103186433081153294606775345013359238671738276306024348196894134375156859086"],["8428268840564749245143983269856680379315186506766695741162334301532708803905","17714536186904097487881790434356200439791482033741004802439511897525663187457"],["15741838982611195710034342269082670157857649318789971464393756560226508396760","5879667263830207330853445130890859478643323271417150242507121132477119968583"],["13688372778728280315278846981880835125406569068197221038906187128887036897867","10892643918796229664286894046317885827088636588646917290603314225771996521548"],["19834916741419379994502944739651606541141209062893489489259702267891476360504","6849616690140230849803819839381074460982457571457302995152985681159619840969"],["24410042887310677691194844109920031363510217933510034023456778026601178822076","9101225008916945912219367734112633229953665874057239745856391885635349633399"],["23609072719248488800817137994246208560297268454880338150269579994234354903648","9278221183517111527980657972802708153185965073230246359964745618885890687176"],["24457438063325856106767748272562983247773921291147517662686842097426090993741","10149267066076164129071976341729462184213115173973473333953196777480221292412"],["11193382819802081000401493792258760708135054682981965854404646366332593856517","25293725756076686871148753929277991746919637670978808552352083181129294288760"],["8894647589091437640082030323618105375476570328564982871242805039473987366823","25052193920344694870399893094134158077513100020713897401828652313288039172391"],["24137491747045773315906563097519279627029437321852480623657169587576248445016","2472778538701390809242549203595269956353501695353512264872595222867554911389"],["10426413770680425411969640680077291365316262881480588784137042237960963384307","6600608833799336279690595765686177932891032388319886553046245957707128625119"],["21381985484116644533188003432176384674283698549066928128657510808187155871734","16991386087585449304881633692456988236107387459813529030619555762619970479313"],["2410106501910210198216761961771744035483011105877320985076282852888225314345","6578920209526291591812322195481683199463880908305450484513859177465216236023"],["3554167263126979523551185242918097949699986194102601085305089564836509321749","22493046043200850526269051599406927741675195320089142663116153438900651898340"],["22069649792691867601438225593757117891871607554971237555616020423689992582835","14688247056113748668935906170311566668161739685615790825744376136183340498567"],["5405853714860563395394248635391220811415790856001522859313831617785799194604","14055580933076012521322130450341448712044751036042262010872292722764899681793"],["5299039059665291261854535278561832794049054389742319176390879581579866918283","15249487897753215657010426992827687395308738296592055939202576585886745648108"],["894366004727035442837181497487608643891367962026893509805154094256472489729","22618202985265216008409250370806623362926735428088671994648105437519917415829"],["24506525627367799915568423573910657825792628451969547489109379973987476398775","23108004969102219201756421234115435553959558612438024658685894153369597691964"],["2746640061519828187543084808785924746155922992732928461212710395155630435144","2126748619911361796493802847852291431854778433727795377501611536777521621333"],["12037433032483614496936642843293357271162002715815481847162439415799333443471","21163467620739171348002516643681673890474089106576838831146962763044711650555"],["3197573164463777035720899624120340815248833493269098691827730690014805832117","13703582249629846166921700080486728876860245702815820217389426852841343139806"],["27168458313432706040709689021645480907424147652197446480002800080794089314564","28846512063191239870443281409479749602592134659999112015518972123517602213010"],["24063506355142744285679151911576633934511549488203280126039932237896116361365","12784696826873250060581702547752563216914959031972734865103530763876546094154"],["10205125406372446501468917613059076270920997254845244420967248232875690815150","11667213771430642658338993831974444976278429640123173866412304643406661434787"],["25703725491692121603786637005071263380679890016102854778474288141908304228743","2887017979462891839810406767990910397155769473924526509411153225066846701488"],["6887609108157441203584093985424708568798817985424846808362968033152929782423","18708245788450013189175316943969466878076432600700443829870146030533459957248"],["4011545172826198749133385777404825401016885482763549457235344369580618769455","22185158425338845287107560698535347381150253159910137868595709659912405965946"],["24691210526495705507496980575153450553993601993122460252576993425253237154049","6104393605249126407421884455992370966396551640446855250829924556739624914511"],["13751629802991494760789200770852448138491372644961684392779938539564544615114","5233565626371691645211251372618077374856208972627069159979936018919290691701"],["20049487950182457242253659971434764612088219348882471655643570319360117927146","27466106893137090891926103630541676396764591727891707141629006040629333663978"],["10781080554265097557206131538938196754218853679166832292024179396103058694926","23176196670792609156372683136593778707165793218123269954149637941152203953895"],["5741357339281705950155277358637134228790505305976029308048152985440189136228","10153965886950787066710881076046983466469249936739518747647871140474548700506"],["934525834761340302927699276097311284963211817481543066234243732501817707558","2019446069920366213071231106807581796218221784921513935996169572255231680761"],["21289512786473555376725625569426306385748282383831233033744823336970627793254","18434459193975648437429843711680860486785518554131366657096005152161763163363"],["15558633856105249186555385223720427647817811355520277939967011951095701847770","1599352869770894218924948335414746085545167267712570847506601658028426444226"],["16302144719311985767777165788059679443470165559057547331532478206171556760345","4348040957635338428854566951576796137298555268681657872313460193656739608337"],["1553764330931237741964368595677448955908389204250639996506482930793754681961","7027401726626895577535157673319577677085060442158370579686171826128244807377"],["16582948509250263664696043156455503857170837252268933040658470484178327627670","10926159418142205397418264237360647453941033072531981066542094599499974345713"],["18893189343489706546539640261436065999132142273479122947543328188388308160002","7339269491686320573150632850345670128976468937317384077113330519060221588942"],["1827995158822579357498621618070324282212315820929239517478271382745035560381","1905424724330620663889912880736869615364937298037397939940558018851493958719"],["2237771529521757623347657334343735592643119501907443343821819369927810668680","11004881666714647221072297018264798591987148214709406827406650772718117147959"],["4055858862205305609811552074629533675290074660243280014201372336085141618697","27082955344680480880587722552657356356076979829722628087505532853261603356866"],["28505328612879160197584443723893881546964691986198005632972576361930905268763","1563661284913672958937654300113164664508811121037749612740161101252621276667"],["12962800652368358673286137899293445302609014026584507352901303670655478607929","11634128681554996477384334850453683946753347717077299402689649225615269316183"],["26691628494795506317159820796796348568340386528792983152134755450817098335924","1004789649971133145168621674246123431273711429926738765335208742308436483886"],["16264820426979311087057752691062000388801820263377599132971720066638268794400","26799104066353047930891133120397454770300659548169530558055778867703911973106"],["15335930116865199464027831705252852381455337137744495944392484053908303241002","24756212436015472358503395361092894743220818675278924360485335944877696642146"],["19308241293171602328053887690075069742039498110856139348865906623728282221094","20525214397994848001386495701720103392733160224841758125548109492652928669851"],["10774107132225936396883754624472905274371773356019026688808682742220259021625","22625008584897973688383104611737287913901192207365649361740965336944916756804"],["16446076050196197094773962203356457530716568706250807773397437812454788457200","11266385408065742819220254517652093419482332413870219694853521107440753099003"],["19382159546739175875683215981995909056762675566013403362335272112017423418221","24054444678446156797819681630304036360202079305937999150179546038017585797244"],["9522164010088602429800686756352480288552720926419620522589034359580996878959","1879517174699071425463213898516906379003977468713398529597282465100240458244"],["7125629873522311342628160199121532115104251789336601505468612558960143258639","1686571556218292800585885033207702133700177072272223938086716096517987976682"],["7089840017472846024132267423516665789714749330195651099294508519142272844078","18677032691090783346059483630464986347379433599292168077510295369124812455220"],["22420053815802581687344708914937552458249047356631687495499346022337865366626","22310341064844684647451537015704294382078571659226447754144505950678051464875"],["23283887533736159819940549441462816385356061662652935986460965295320862552356","23580701528167636607382511407125100023304862657805529429633606008808674953336"],["17919779835272880124546900208541066681391932927429431063101254661739081931769","19861032768537610476537518277306580832288995014768469353695624148955771884120"],["24668619871400172253386257760514590073529130671078632380666151623206875407344","21474177937860443740200908960420264407977276353858412788126164718705650479922"],["10452828278082563167824795730657433547743553897294399249138925297977599798295","5432112196602219398117129126531731192826759642638093007525166447712038700685"],["3554292835849270697765714042144139431547884792820456877700104868488740670935","16802796427925590738276929389135543904543572338139322235801450505902446717726"],["13644498703110199258334053538949265554595579717588658087089984672899350803861","24940802032792350084413766556976648377491675703138832014330988258970614754757"],["7396536810515170214583729201261012694320885788252968472874383244060079610533","18163156503584486488607579121157162569830757987114303066026407993562251175622"],["15160179324158214523803018053643474432800161336813815005769601390061066376763","22775481365936656057957318575793347464836474852400498686109183285904551725675"],["1268895995964858126008407432807306081944618522340684487859668085976352723692","11164183005441146803502156696991151767273553387329929808671023838639652145176"],["10003542123146498789758314726558483891239897907838624663965568843045276156637","1524687409762057746875051618165864176997100294254036036261534259502084414503"],["3188086127114819781300839672409148907732414764521954298687901761535545577698","17497208008305494467196740310832622343584536961451043073921049468855970387916"],["19258748411502588472573773907945563512544214089377166333348371214408512071169","5464580911873760512194676821641552466307213077673847825603317094436645818985"],["5410763874780102438206461111388597501234786935911943964692269193191639174360","26231230420987824426972615334129938031615818464699266262261509201137570508052"],["4421348769536137131385615063775405394592188410549017485139176059848895062739","9403751152738663158126626225799788652370913411060213836505935439133550638871"],["2115327539956797460172993500153329920442991588109430385380653328021037548619","25750780801247913183663173462348547591008282231956040591404702298486108462133"],["9457855262763733720367775630722341747885625733891190168861715920103108373759","4161226105208653388290266029335644780358150391899430024448675447305142990304"],["9939276449347052279660226697544593857493913985073244470296887909131300898737","24695594441752797042860557232559604465730869332021574349127522799956335587669"],["26521841017449640098869802261352597011596475918227767250087598688365952808246","18752280990513654553368903140495263830633929150229681152048290056667424766025"],["21738028830752104179745076218145237052123126673154746038310055956112088430832","4973226609915267528724675609676694860312846362237615295479490072740162399929"],["6735761650122190608466570843668630418631377613620770967730085746686088868275","11367202996051805278950219471525659072445367604574622400712274939088066101177"],["11166025621976166960784807827005008764256033919169999861032631540836629888446","21769834366217946232699972766551943697769528622229740836736532491168282786300"],["20837887533413125383144050041430072888848902345429801451441212233773542568801","874389234967243425870835867856920738086817422497219641272838120752199667326"],["66556763711499439364235409610291028228431037991247452280655525715532725767","26176688776036060470210524406697778665869968716475127476904781608201236074968"],["16409864727883149696065822787842570855596728125565230953024743253355299090787","7852469906490919007067307466178436822036923971285790238819331157363314184228"],["3084442557561059787725350802915004982920980724765702717900241390244365988191","5282026121970392876265416546956184678664487389539960745981641148752301832441"],["14176340373390320846388476833262025102657539071953719559676309691756476107362","13596327844798437907824057462632171616981099833080121503927371378936483684189"],["5289064134543087912377938139539520072436387353443537760526427620690894669000","70984478135341572224386225253977539418567508729168291705736223788290880909"],["13362283709052072539008214330410507692462804324131997240303750649689209616271","12373524727842623242834522252125885339985285813612632778582129063782234114096"],["9038934588780839724368734267199757832629749453042791041079877832538617437775","13715669337072661351917977850297070568577863768784552273735433027827967499438"],["15016813709927742875070040792343885119842227172455626292612432186395165851207","16438645488187637030914472473913937735468917761125171295629765071602973137507"],["9841636732224956112769267652451588039081790862108884030931522573478085209133","16711800752028708681940370441296050944711333933611823096389426542045597419387"],["14873673730766057491853574390700407695195899314531164613373489646277961164702","6618797025437095389190930449007433419571349723085245479636374892263669108102"],["22075566508240574509185224314834961490861228476011194107217078637025340784240","24805585473112475318874221582686602404775381457983855784225099271404334407778"],["6372903853202818767666778511478125502646296639730320436319244542493818270563","5193562184905253265202742801163442404793760890532253748770944161749587388322"],["22235595707733503387702469489360825086680344600939088517530097371999719137963","10916016230272947815694331859949234084690165881759107704820969028128413260936"],["1083930806324739874201458725291224564873308523478610184661635140613649636132","10888934969973627556608103917254595351762401057019262153996968375042934041952"],["13865320154869532180600935610615068467702115657561054850810244219736683296891","16571246093049798349422115145778474285670254636297175907159726284409193363905"],["4675312342617181033347243943253187070410120510509995560918222416390624770767","25710130339922688065373194786395600835903368185748647865137561761836667652568"],["4631350982015663330449557672744147670972055295915363551502610627728092741426","22557333173265695437593706921927988725204279734254586735876535031520268004643"],["2598381180091864419011755255330508424942257560296425351863681855670515021469","19748680041577558605762577220576529810897257506607850661318389927259518191334"],["18038342551606914497691436071207848834191330945936715603142958237320251287722","18268726254139985164949180419206506996541288616483890605394381919739952332499"],["28616694403791533063915898389437894028046811545814421047809876343902947062923","27939517950362673747156443810938628846196669502902941869650924490678459201751"],["22263716410780256283464277248777860026854165042131834230940263162228805775222","14419446414663824537722839151739410776566081282416974685636524360605659394514"],["19516566524898082843063329874386631017053527808119382171456528322452724146152","21035045206490803921597619103531078494190641596053605089397641494638927359964"],["3515219686636015111527838493901383600353200245874043048730995702005916773710","10582981818358135321382189160114274290597371617871611209533092680471146419660"],["7946050934441340671487512113206506360800400057347474116863202763247005365956","13493603741720778171413870703145822921441305238777047910118927991065621862716"],["21451348434413303178833035389757551909118039313837282583938052985065779026643","12145677497148287399168051637954069034677816200065018503211501798332347593459"],["10806502428902874486622727241750693057980212961676891166830056866078702194042","118260959337619033574013519455608377753339503433375279326532478646995043490"],["13735814537167724669006884553974858172399088941427636324433849482281336318644","1014219183869932661795544703306242577079147853775451964579294860854325616214"],["8660149440517539952530157515125976208088564227361807273914640356787598100370","11704974082544883229136421354303366673032641748450395685307058716937507611807"],["3438396121574836101236268696987113141531901152750800076048243083020470210107","27423894852683590181495469594238897629429843983838082116924928777964877850999"],["937757055943936845034862389724887676719029556158929276645333944221220929094","18124137761380552628307818435668876776133288101158296600176596569933642024434"],["22013684748088848519613959682351358368777259103284051000674389205010506603611","19242535474621221416593972363571280713867518583751954436016930875372445557642"],["15397745739412519529547202541896858694290632808867052571944605699600451998451","13762636360622182408627949097680973827164386522305612827510220935379262976558"],["13886373853810161564053645456973135779509187746977728885197245956708073928342","12177936769237689606506295732696944657898354601295168348792117142310262572476"],["23083219588310363898299713994090788902255497956212490351485916081500454053413","16580767830101078522557677321217953041235997764451174627259751798358778248486"],["9772638501017212449032648799247926171458875989828684646223566787313045212565","9124104170956550963263661108246344041195629700520368462267727353907306199883"],["20053516301371534216284749868398366452415094717811300212066672460552855351115","10003325817626765603308244666004830857315402339383677616874173090741573456686"],["19246389896192875118501337455962435016270394766055547497024159677035346885067","20077938812246086177387822664463028423749296595109655220577369086903090894192"],["18919991189831011354478479383240314815127721438987164786283013177403091893723","11259841051564804549347794705381283829275522681234324899183517802004053732407"],["12055344531905784826776545721422570526806841829707664350658404205786472366289","26669411178899147759706425098010026733851169935418633706783849928358449356199"],["26757243372778392250265779255811078303155276767566050581611093625206130109743","23943556419734660326265882623496676420306717893905725038662286566895710532279"],["16671050802285631093961856020680911876014764486931245359855975886790861032726","21506233792347516846817775191971860334287996634132373756253057072777074904776"],["22264914370936008760475525596742073963669152880445257401950836355169232712930","1137953044751955177795988040616154653447134835308080430774164596330828675350"],["5130895447988957429253748270885666763257728077161985284060859142684161040300","18684392132700483523780615848590570968400908254443770016018079789651391426725"],["6460155376250362180081433573125388645893337656613974899208412253305974307316","6034798699527811911449586168291315724454832497802842452815435029679913150653"],["4332770019018430462708032836317794787903889902468823133701310907868971545146","27803783846003511583697559067440113555748012048664594609497873772963173558570"],["18703291800313453442905284582368177993342164880045224971604921090883287790945","8530364354477075369797171128654929468862296136019038244886186592500143384498"],["18412786138500422024859162407998310859186863895491349252650172320295018332416","2983734066679449829248100896382304880613881633531701443984591015224107459445"],["1520001969995871462518879175463749662301030498815150213384345247211545743718","24937641699977549418277274355726017388893078918257362337830167893820920593571"],["24774953213222288272969469543149448469685480895893237461565516641019704820736","4660015925581293019432795419565497333922756111984539066812760178683492135657"],["14557967207659680707643579528477774006797842792021067732916729006141065551390","20537315504541758263662272215180235265082768739843581309305432321318925755965"],["1118171388469496336697394425373500976551631237144893448418613556264730465515","11838539019174973871660700947651490927121162906112524396497366391641688934772"],["13698765737286546882819840670334949108033967950889811605638825685162179370608","9078751950535791734253155023718568529388127154902039276248619376618641856366"],["5393106812091660261443026230417493728225566823125470847491532447386827538097","22199073708442225335808823024799690868225670653587353942536551789300483202458"],["21220495365965226258921282371858407700835088924028275280293035864313356380247","7924628075144856286233092232082437141169045148436562490732486435810000648990"],["15568552842693733355246132232370228585407980803547977444302163627077350048861","3972097906311209064036133826673799993488844109510458449436076815281904619570"],["3976745008420841293212353975232219603452383662070751528511497560925414137907","24139832463671270187816762877186500460864973009117595331576980462968098200148"],["8963978343091333238910551396736949487800923810590950810004925697717074238875","14489310055188514615830827886033137350311938547812097251916871969356914342348"],["20778821143319084471358102325400144689756589842906096654004828411989467935014","25785994957018124871503498262380047908991182952623253596231692400219613253386"],["9630636138713676769093557019345152452403585303839928543082727555155456480412","4017734848134730135666595572793320281740252219357148077028460406110058893692"],["20908800918333348924520334023255591412191441564444230114485504636911261443884","27084156247458189194509308680295484980512524117134248974351767090320693948399"],["5008953902867938598939432405016279393907494590206836174062099263410728555922","11696922230131672339693394825741458618829644131416103042583124774148987856231"],["21925993617555081162492088879460023537412116244004076013313260660778513944482","28642476922945057657149248833852302646735351125791781554771680574150097356712"],["23232754980593089104159403854583551032580237670651690135247200201311323489986","2047970140726315010329160723637423186028702319578980952031100472851676334733"],["6572387772617396438529841315454850563053087895605890766507884972766558250336","26569225928671459976667707383493016623139964030384143817113240664798628083532"],["9341836824527545411068505841374550123072004423620699257711246125541603910421","17952176791720096153193290753373831448890724639153283623516402421578669959727"],["23588369145040009114114394432515610646532044344533346889571715971512186430385","19079265575609011073201753583658546590714607378551046782621111816749111682815"],["21670909186271504080575340816335505066047371830670449766375651393454927176510","11440285893794735756997229561448990001497130577955344988785141288411287210054"],["13133279514733266407428890192621174048180517468523152129622783157903691262612","5568373143863466838101700790124349591251574883412975954470317179899635248746"],["15401325081968549890161063185665188884513372882190322468374816780182179380942","26232321213265297885246424401497645843084481500026350000069206065427121035787"],["6994879085399683277508973852493418987714678352536847534576689700032527153434","16125803785221599744165146962270157734400848886251294834760400170500407003876"],["11754787277711747810087640592177539892197004412783310010314420876316105505357","23653051163183049661640319710095445347292468281556893960066296302197990139905"],["12207741691981123697832434000986286801311540991918027002819094994341272755723","15436044306733793831252825254036140539766739636953173639401933985758632772776"],["1665441098988019354753557995699184323584820878812921748965195512280645853572","10565098599780401218413427839843266981638705636834065722884661744329696872819"],["3856758657399950640465838710322530265511092191718209625822960616835802365122","4768113718054511926274428691466998935241875619192559840311624578699847870271"],["20431574680218079803565215294489333891851794206799343871068075600813184940585","1244896631516569864077231572830905910807037088619336906397532502361630224760"],["267607020887248369863002662195275471983061358150811275245775959066790726008","7854527963255759255826884786984013975777310727276746479747755867804756051366"],["19733973210465476192545894465357461769027516295622289474431067897541253993418","20770981321928022310828900283028115280136330268940723100088310650446617938771"],["9595866582444886119336648902791499781734840118364684622483604527634492402790","17190734985858407227668590493283662914723335770494749211082498260112899747779"],["27308494312770185799274648293751043096501677389699138213789613875927424815516","25868506870941889001273513239976159509052397291657270423027883634558246719593"],["19733469598799516842527508158685218673881542224445117356029401482253065389044","4536598137833272022964267392559017505257148154765819720415826143394054400033"],["10583831996092087008803516771132318561606619944439930984297530260381833032029","16339638006215306165171079752005011052287881337997692079557519580526858520191"],["25882304564214293250947572672731843255739349486699173773982850033906772939774","22482604051830294601488671224942454204836203009066716976913802800351220749390"],["19149843586394754726166013029905257328094670271902987414385469836447612334118","13312629960849435206562367107553234540023584149003717892266780403393672128424"],["6754131753753842773780961581465589876413279588634734697259914964301759370546","19426531297378015225714557401537091060219922752444450308247794227881700566350"],["268380099968113226033277231177467853809939860983945912684292101644424628550","12838558085190018334708847434064487760465029030474454062083765033487251877107"],["5579971752819921905569455644328521265022837518426227813091245538062057853549","7193869570917072370521848409747284734131888639892726722036969038537159550182"],["19381463365303594581245329873666307551615819046741424047472172469692359998902","26496097201738520274270891066944977598559271544005976457623562821665725453253"],["20869199401711404962852304399971601435072011803944754518855209787765615568469","28720995250137546730891208727504426537095085843295374191215722803522169187269"],["17471353376274000135785515418088329555269198705697498410660063002111470570939","9874142650122237676304187520480954975851171459320218236834766215321764262574"],["25212422367118560275134539113248586123655652231441489506267529491264061126373","24019183546944790776326557439169794964648617454245220746910145837598031015613"],["3247136829239768281067073779347789201463317526091832781209606098800496699052","5071880408251442881340977109618424649023316860558694287312517545578141260894"],["9634868691237652588288067915619532227304039948879674996589164560316556922164","16909612536444481197976274168988482714368790681850123246477165254297083627925"],["14652475003538516627495985614798363256763570761745633609407358094849218003299","11387172891641965402513971527117182105634585681610442344895932249562484545362"],["18386483314150812110643832558544436983374556642481656538805639096667355133179","3495012495180225424302026811515857095473865262994297595978633749283571553014"],["16715013916596065763074586801647938065400819862581753406521010444242677170413","22588094233252189441038436339924981575502548087003184369351492967591364800285"],["3356829967800468665271192346949066238618071106757936866687599518835350152805","6471602062873050271518100050814993732359536947063972857858297572186401420001"],["25687642660496128215431083307641308040371932017765078025396191920025525877552","10955086370324502791837250561500476753160669712459225569701908199841309038770"],["11484186799929398956134334497222389490687558019983089218478974801348092309637","8719695789638573824169698812561774938571717404978439729235003156021076476051"],["15544822073748577090542741229306611750986972747157603109231762195806084593161","4686980091100365228549587517436578651905130677188778587274598787956625505552"],["18615534137623746405392396100560097658976448265200523721709899920883604938093","16491401124837498608682756542772095596348842868692233178110327174528326522552"],["4842073711045057587769578386718915695747576390464597933468616745170962494623","16493924019040386529042092661147790942846000341916560671291013377587181206113"],["27606574899097777029552573094846537559115440736501677099087962309767736216301","28134606046588465357121135652224828120928493040532202745868663632759528466016"],["802706726163568342441974317269202482796254714480606128525125987959515591315","6026956537430882939643129088579507578680112389187193528066940321047316322108"],["3751900471565423827271632562008381605388094087150566002408197881632703087540","16818575231004247810859013648056622125839798787843196653037330923655472998154"],["6260569598932527400545463216503299904572651926796065823781329973384167365195","23383898930450763997606106565498193535601488040590385133386077110932079667209"],["22162453763143684074182369293604355448137310976581792642934849134722709413148","1764383244963916686229687601092161023031812762942094738081165688226746746373"],["26549328980263908819612776861855603847025856288654723958880407741413449359294","18303323733720524982185893391381499652034013587328347713612157005380007394772"],["17472797412550797344413432433736847732475559516348027436207453359640230467774","23140545210644232194693831838887155518894074728705183302397714118523268143586"],["1695672721485061083126523402538742402171701102623422211918790691266843941975","8631368519282923780167254227349682915147741754596850673307762847158633130979"],["28910765539237793809290244802384895686510667066559139886210970424422795611121","5029912056917797518358414946376767164406267779153059913257368809267617394748"],["4585793620963214508274974447634232988064299094768255850720420505409840551638","22172842608374934639307568588025659498480228567749071545550902483423275823341"],["22390680707619658279720980010953697786292086992784660532396415358851239945706","14251043439079572018997702651943575818383590020348739185899030201456353211801"],["8643164733254706831934101988468909322826575530310068879066005819497272787561","5784720645206599382229034579948116588583008519521540279036844877575916085662"],["23664531890197775074097715870126375884169211920587775179723534159206283671049","17840392624790046570569349649645807119029929581055664510606935829696175198234"],["15024860791311793280313195070795014062636475661275063219045120479341725111717","24063862218418226578596334292329493866327742462079979627289622363958994467091"],["1085821186540404910846617960786869037211906139977941754741306735523925759569","14465030488848476844819993544841364905735572725447921176302332794071037728156"],["18512791597796902922500738163534710351432564615618115856026750005253625048802","12507994855193411206376124826945414473543382255292940238045491053962256867144"],["23692482463656571901521626422131771248004142093277446292298148719053600578245","26862231338888594579004629872987282159929181022889318281784890100653448107317"],["27988308539820219904727431952980351637473624785641014292807134307050168746912","6160090771066812459279031429436348341185092930724761552274123791496280336509"],["2076843732946560505357678504487591261723751758743493968872105642405852145084","17092900405344772262598902818561236948784827822496914240078770493776061930645"],["643536469732136325938229184225655987942546691150948966171019742149176340984","28039848732901108271716137298537386360129215731059955753094313257800094611070"],["17957824001996811081348842475971944669923030341805212992464195105771507747389","4448043576072642263215127663017593044496355777988548010025068521750622940171"],["6791736628943167201831987151790561659759666484225575808563558205888220820280","21821556962080439738160762665897462979418593956472787172414796483652712721770"],["1932659129335303141590683278495051936793797202733924370763385115350432095373","1157732409608752132389241914660934765118861458379306371238559876809081010692"],["5775672579840892518067759897046372060668140877381205928888722445950512387369","10213915651642368357669518227358416325344889189307978210709227842431012936938"],["21526328746860865069355126097864115054451745860739302689369079629974906180984","23432864456144485741201195556723430793827408185034603789745145992136139120848"],["28902008578836607101213603867060207515758690733057773040950824049842548010462","26664607812699055615959343745327049447055106571475136554812951469472166254264"],["17125269053359805016940946162035004801869800485927362277653235032971568861008","3646724485981864371663331586258164774016168105066659620825302252524239782995"],["25883846655951522894103822524385886983386722576116671364928446038827348890876","22519448717672965915691519542445531792597124462569687080470943592067761501165"],["6224293814355163510386776331577061145325590144997902100466285796047440509649","19837056422142974044829388502867653865380228585411122507303846914570349262157"],["7814775440680169186275379844384187805361577090425837183418725951188228358279","21677021127932053996149352922381032514868147194439853455664297844063441554205"],["22109137715111558006576038552762689074745295069568053497523827204281766394089","3467314645539255857813375979506358150580178067398953735695801703743488288697"],["10642807177671524708978162192227097727163692030605519596314040364534333879214","21204569795436435792193095391153368799422721753854342051287988964126605067159"],["1287897888544266151234943153569802451218019298130325425633552147305734955744","19157031345254454907904237532565079972933820623585568021298415208463010623175"],["21343207662848661169731333653486004361334420229064979050075263258217265778312","23682084265830459124522645780170134986604707495247842232662967591123933539409"],["13564583957073503843070351265191665733183020093850850175054751395411608772889","4027152051276029665339546512606880950886650508785047352485046836916621067719"],["21464750408969134171480279915463711090953726777667053263744247497296698107409","12230093230046275790317282739037779644467709395699745041581923316263275975104"],["11809023041489730690480000522347634498790463031489971241520080259740912204385","3420825412513541396593893618972217917529259158867602368836045557011939468150"],["25280936872614093448079996377723931992626773850905269006762120279471817218505","19758723658007326620552126331281398097686066643769235958481102550185382352961"],["99058636804323803461817456883131562597817892099509132807525427880678229004","7438196399231084810539183263522428761902378371909139893141404306760516718077"],["26063662313482860920750517668670553845815546254414725829408268640548672071140","3262161426221554227913655458845453266641088421886013475511960653948592079687"],["16636575887059240378442746660776911223870654327380853182029590954990414087014","28483539447640398168977817542797639745830035610098564654150935230570693428613"],["28081396857258574205253976110714330060694051451322597149383184901693442165602","19602462802083747242188009913132037576230712034339627501881760294649529946468"],["19441507983582369228829603367222339781506910086789395072851285428645189154466","15556981060272227030486833557020392381503296845902705058490779734371833659679"],["26483880281067966285899134825018190507587525467148160145595571032268948363555","24098095155411907733781200268314799710523422163789362373884222882450565143927"],["8889534244695393571527663322187815326481314854448102963604212367246290388947","3950613086304876845801436780467308975615621182578357990470574260010063122527"],["26605194988536299998723403999330731062802587098707190660345412479123232791841","13704043547997019979945936591880115191414696826612654059237201755190811776357"],["3070840391271085191581891338202860809080107578379309372715018497876109997322","5382543193840891504003903835513903191285136248742727175475726281072903516696"],["27782222944755348308546383498795940603187360527774757097366309072800292485352","28886059133273624685229097637228146384522665299308289738439839263430903968555"],["2987312980746261529395241072325991383448181716033668644701209198882556062852","14958048908142436718498012067142781911988993904620274597672563854183434546223"],["20555708975613002826063921017199648946557919512015198504428851324130847312150","24313255497980304981592503251725801313120267444928789257706453172495578797054"],["27501147544512468016328875581031142021344724284862271094822605293077106913020","851222526878473084894225849805617697632253329835474596815907625164112415172"],["15585712340758769133868611823968048865342109671641651937353536547367444219190","19504390314999371001642889647722883085789669206989556865259989702833564523588"],["10705227489318933058861371333181337382834781012130575731783303648426048570270","8619266353338099020832838861174861708135723288884980896893643987559044922841"],["18696594683301631549733282105524017938482292568793257318419607654852981711911","5184722694138472559485605919187140769573295038455405321161880851549228479222"],["20896167284509138050332368636126453358069609603620189922970655798924348386067","28869830312989812936645231695935140364933080491251885504864792360305040029476"],["26333905331493454544734160927966869060898903687528339222489743013762243565249","20006385778637372856075154642030140935072420000350786593822988249997759922541"],["8715148757201887614388009129880271585015101430562386988797749503431902252831","10357729359247467237446283370145539424129318252605553118921770908997080879987"],["2822866293610551289060528887630263933929751596726928604377800831124089651148","28754047495508630551542363801506111152729426123719958529268221978855548126606"],["2423498281345796336143027345297098010900583706760968935965486168601426731977","6797898764086949628771468074244868784374935450143151200982882939329171332735"],["12450764408959035093876445602128461944709209174655986857984452074870490990281","6555682999193026524963643884381100646283921368827442093766117514398224159124"],["18617575984512426452949468639517851756597131465755826130833055364150775739476","3699850672675071807741269301104761173837642850682550805038738375536375831886"],["21568850226618792994529582606543533547785814785608478880073844137194676754636","13859131641548544382679381572922579035169600481066656029571851558110329341562"],["8539851401465769005658704001140289473345200289422761179697719141253200145227","11543952983791005258808335380583472227761237851144632994093205337378940544901"],["27283316010202567535381768480536432978423114316244086863109615344955774613087","13882763549940662408539724011083451183362842173583452105382530600796997910457"],["25346298742019159928062735625096032790046939288127266635165075694551654440305","5074201428259918139614698739569239396129351692665735745005924766328213749727"],["21118686255560183640383393485650757371785487008142298533528363552571931238395","14300474313359721384985670178302461589996187978375071229703323497496917424963"],["18286246003123334532200472731710269836044209167461435222997238726152962780108","17653448574641950254500420489838768704579926600155630259684792828123097321235"],["7932785500681675392213715731124101416545943837601603433668688593730842292470","20897550314374333366579300619124826694575626776818910239843599834870042885573"],["6580033001150880772534292604283042658788563864048104259930146126405006597972","9007312078129479253205110136854332657400882336103059392710810470940508706978"],["10536179864868095489767298022460988929715325504314787623001027370726882439447","27409220337094639301459488886109548707599936860247867283940397838245388107458"],["11725551849590409568893870829156635635864268388057695986634834119344495881780","12073281030044581123786422189199914449030675250107084308460483646719945734563"],["1061480822159333104491918376926895244623124543321445991017731369003320444309","25620031809401657889167089675253263657226718949440433478627300706298952233600"],["8713600607065772867609706896253275139098899468475145578551363399270145182600","28200037990502713265731171709528754916152403706494142587652287526767185522471"],["20279651900164336504683286611492231644492380784451013313754387590140441200472","3475786755374527687614003444148023841065126035778424188345639636621090480434"],["16889537930105431250173329799035140294075120943751182994603654734580114626913","23606512586758059039757112322554871800465293555705069544554291242983960696336"],["13014524593575479175991413194779274119917089672407669960170967757894980056566","25534466690262865826834819667494542133507353979370618884177449992519848723238"],["26246069353949120945708900928139378536555071499573600676778391899515943450725","7716538535896585922854732712441492213758361581535403848153827855377566659802"],["15314333778460969897329970716255342776775457060147773210998534575809998477315","10720732787284461555006100782479554250753066850272401252072694752650205027349"],["4408876554729734152314736846856586009663310988427357362662558864271452009826","26741660248758869960907157015643683006309228962306946258404693376673311925977"],["13645355473037844710346058684409200247235713760873492317205006163259715351091","19168614355892174954627522232745167733865211051382552693786337251769149370935"],["5397074284546254268625303430401821591010449756011248421793982754394815094424","1743841187937723406140643991732007883385976851623377940584212655750472131435"],["25955823960181635215393604225992704558076553252590986623673045608728121817716","16147151866466815291367704803590850728354485876258577435508059033019625201012"],["21747491181239050049809679901869653476312657390676729610306538613916690392515","7405986880527724658485276041499780148734373629225503772718857755915243726098"],["7082866216543265806134823980503380067043287233293515093147908432195447307618","18467386094143420140622818271356476674025673621515527165240192554631451710519"],["26373416910330704448023507963659125621915759940154394347298213367599925717033","4109699919555663930729659806873128744466747491796378538236550029741912902773"],["26471250381492303474684211802389696029849099998676242817660056615827313998524","25818213917795368373364159259535564683522779958026702906093681038715408479413"],["25552338162161368164888990756998955276705820632177832230644365808738194243613","27640758551160970444664328583231382510082168937296933512978733241700835873462"],["1716134208351929495800965435064928269365159531711371638747962989733169031911","25865033088957537907372821824185945224074070231627062150490359237572660376459"],["14346880830506748478869383343076023759751865079971145142841883854270446742684","6883964355597545552544029585320056281184332222311748049324962265316335874265"],["4176265528511381980476016506061700896753384726414431640226448331125060152067","3619924116027086695112976692320207244083700145170323170733259254104125023561"],["4087843699234130845954939782190965798134192107098580629685048821036194726240","6128020407088704721300323208457159518749403930171260925783340525067068558985"],["17530054870935989691629936698423163305730846459792237221805169487517467427869","15915862802469574648627182916662557396253973375640689784938339679780767141557"],["26158726501187476495550761314850761880289901753802701493062146108947004471196","11671806540462681233909173728937163599422845630627289691849471375344065145319"],["9539384240323217262912849111480945337369499060348862977539185902425495050446","21240782389852349842321455078120069103728892330262073629776109130229819161577"],["28012938725304098117763426740457506638860486395333356694099332194827132128934","18190319254035743550059590406954666925019236448109246809099535901551209476039"],["26509818513243348485042522302446485058171197483863335367468272010079209943766","5866771135153168002444800600462323913147285733126404876918459415973306430411"],["17718459718729630851021213684272611265723643951559348831471155129005189910173","22125216425872052040224376795297617458565915609748587356565023077715874612777"],["25098165581573391102615468133364605076712183495189095717714187199314220168230","22855683196855158339670325459762244268664955674037539165284852601466050094335"],["21576528840617501462281927655410360685751315401583744949793400225087799830570","25148601944492533816514722632626235089809015789880630747120328089922324667808"],["888913538822826961037304059553998891942720129262187553521605817520964409619","22650789506031811843893291148593687496395020327167451211479832122083530009099"],["13395853058020947555730212368562723965134524978190102612211568393017380504180","26025695596040694523657405089594576396828372882627028503059152832702673444646"],["27020541697353735968615629113033811542042557987459954050157102558955384581266","28507578096952493933084354140361217289401001948526250923627143212396600558955"],["8822115520863310468572919604864949411031906358577488642440117769636701784407","163449174841311522988214270607959461891032643269695652508994966762942058291"],["20677630626362963033548080171162129351021162125120841684962959299098173203792","2598293374534691836465702824043993580472867538083199601260290729071059313650"],["25465747803390941448256022054861328851475765793682714429166089181408661212910","6785858871160485627822976858134643655321621731508450052903114002659161265740"],["8972609506460283675924663320678395024587945159245623826659483295754697796383","860483530010419630337692474954418711456571753606052267811718360800150132136"],["19027670123796232510343750909750927190447567539248086960639491197157341635123","27264519129977279648609440844747956934408656233409674941776194524191490482719"],["21252517402782670413405667320526867988628401921937395649256360266167306286636","23194012251496263267645318724009731252819025836923592747039267534707529619536"],["12615585311771608429587410754137482976015601269226316273904975665049466178618","23261030588950677875311123741575589571053399541739853628016048394841703957684"],["24767534893793939481258086641332485202541755050877436298268883977677587858933","10340662713370791226906816080967877966052691544650271910272888664831808174643"],["2735677744903745124261186746228920179827122698551618131860796643314673712929","961313921094041815518621062433690566412869379308248688707328735636405072366"],["5178666772139825798861653500435958731198999926614324666088913679588286130447","3388568648009830164647980958291812964760370370308033954785697600696782358410"],["26815751136626517682565694612694145125223441166586475792374608623775052461865","2693489801594635469003051463883148908819826239613868016828496116778603756644"],["14918695643730635155963605678568541284897632792712930822150453259315189459203","19666702345326372888841355262591282907817645743466921814433478611577946456415"],["4812399198020277859176269311880170508904692212855218831512125494868066345691","2490750061847989064482768457256315362112320251621503654847513794312653770804"],["11078062567839771809247508933233567855458642916881230935672948208574327080982","26097807344710085814393125536391676539007527347328894877927783479694919205406"],["20229812200866092860859370193447048074174467597980412298764260901897942249846","11275011838337341669937099670345057201883865976350351803435201501720383442991"],["536925219950848831317831032235399534640806214889511132682738270166418165057","7996125189122665977697291818163120208675389863649600560036495470436413854416"],["6418667327467351246394229499133123536888480800147674494720116752595822830786","18682595242961016591017448374761398716177142497033293549359684359437575228883"],["7834283537674402880521677569006109289958335041721733325604924096378727886926","7333738892471313243354311569120079186445007961681354670826639581516831105469"],["8277107678236874874091108108594873588196556501729204616333797422328921167327","22872704573178988093347532034504313372126797787463692334834166807348863772233"],["10757607263229881123413103326177453719816597228411256245101357759041516196984","3739725769249831529804242373938776622545917404624996008307953660639208466904"],["1014770427940721552359719429655104647899341824214773548727247971034217727779","13150782578878570796685004508719990687443595114566817127392558539677932380739"],["21897322198669796801859551488168497497986230208891245320382682520753132239061","24115077321188139289921335600869078733150863836946951316431539026937052503328"],["4570229046394601370649626916915482128901546068754775971290895664294340414568","17353527314584994753933836973694209233728536076437169714204859816472221021175"],["16718552529990947225629974769265940203618556290210216146027395096645881677532","9052516683647542353771823707929684353035707000789556430646459545028184487978"],["2329969862554131514690613953544960421763939419470736466090440841778360729354","21464723068780792327537725201704380623562205273598164691813839367941493655636"],["11186389780481425124213997968458384323196323640754145644570778598489247369980","10576459974582514125174700292788420035903209567260298712994806020208405628561"],["7616127837282615117337074613265863041960356681099957983023943245616385423685","28727348929238193820643622148198356358138202622813994679840204790846150219862"],["6337711379218395533638166604236385815278479640023725572344671898914586055574","26356976908018989132703627822242674459467052623931631584922781026213054895002"],["766967085266885707196072423159259151364076219462404789099853822023822780787","14434910969296431248849576525208031045001491027751914176876129706473803904806"],["19454385799288022631008639574581199659496811111599260792826556345285818337592","5634532463254258622068482257235009253228070244472197261616085071264716819309"],["28356491680102576091932094243178439937698872038597924089423980032487268530922","21117889256392781911275260073834898335223224224735762760349577127242965529682"],["8958000143164699701026415951824105231514117114390960557688086952188973009909","17228116925080701661378623798329109062032748261083676703421868500984508457536"],["4685294104958447998069545951386405015041566758263506456870583069140847409859","27810891605053975136841955682820575356386857400743156717985744972670347384618"],["15803436725987531487108093941195845843590489693383934425889306678020911106008","21939196121438081268455415399296488640851134959575697935310323325634752600619"],["7336830892123480203634494732604982155482417450850109569264260050931201022947","28797653535715510494858447786185899402113117429447725902080767162968048475208"],["15637181216966393412564763759638390205722253292674498843619965562907676899480","24873468292345276078742671931876333363725421528776121349605559054333794949909"],["19319212081777490923676104125468122605419639003949848155827751899173383782765","9318434654143993923730143013882038164346927585296368753051362459555632044008"],["11208731586189674454578767640682856730469532253707643658740280235908121662170","19905044970364917386628939256627629179540791855328783407338339840903073072615"],["4570620596839030230010275349918476198010544543196244345963980373442281979388","10197518226077440122410007500440134619384334278666427788183375936854984679852"],["10293904830566867380293781037462112307642802191542216891518452239463260949405","4412616850175870592365867224807766307222089813609647087720671686257113099611"],["13883520704017888666377293722341778380264216112171142208160938605914425106987","19395052167148426196711044373098648360847417864931942259546549754587505867491"],["9421540614743967953867042350957186823906282734142208229589414860955564559819","25467431728108371666041090294765902050393424786550222527820103488861843631573"],["17901620932403443599937199518242157379354767715761947392774860311615342797676","28263665730301229661130670607285966574191396564084621478201267262135211148202"],["11313008872837886227441722198625260958110703881220472879882968532642174826998","26588609744239302938871186806874522174729972766412966452851485844174928025706"],["22511711628868111855736979959697611748579540843137464720038615095771982232305","9771645077366594953112704647749710664320195271904857744612595791039024192611"],["20822074653899253317566638931692387202845780437423262747904905127196015883223","9791561731577221453263344138500008778649095183189183707723298677901989011647"],["26641742605973718576772342359072759668383012737328405911966882615701327810629","25560573689283599260455503784107957687626245823668010248437893812803428387922"],["4756655490271628152597378771746679259770273843645697265068710859857409599509","5881564477151559920218453964658788780204928821732055194444043141489060689025"],["14444050217609777046477657534839796081076756882805832119075558000143801342790","18325706531693815112543046403322555476312324517573283801584365844536966254654"],["8818365615650528007844512456309564877084835225183213151372377572611108360880","28317387852835458351629383248522349680651489088728441779510081445905955734180"],["6775402144949019879584261666826246297230419084166193347438732194675988968557","4574135178381177511776326482714221117300894340748501218105219837664106196699"],["10740169923538320114827415979255226158696332653749298562170173096846537924482","9406902118608671614917801506809729287498678606482971630463499340481837420013"],["12672077408360186303976110177059290335354683380670302073604297933287206437035","1907821923510750802927503616759102607629833682261157206727940232211867623199"],["25114333878493828873064164455900388752027773277932408421978930476834972378994","28708148149941541680847108914057531036180493196371281559114479929772391055399"],["4024075229120225447487262164981641482430191390112522313278880711972375724829","23552039843388670479722424390920311476874568526119907699482851721991346941593"],["5739484553658671596132424396205814914731835081312829409251773200128570826752","12822718336196759339224282812741742776398739232297149287002048567800953995284"],["230699163731834027458759994250184311660391571834535946072458652647751924758","4931290268600521657012131298383362940457697266730551070296098538473206169718"],["23285441486280764046786020417030799579377785176046573421587299437005799262819","8167618347632228830180405140116748646495820804760387122106536874187766346244"],["9344508063485406446178873000385223166255492397723964476175866454494954351092","12026456926922858337922927594253918146367530277224852892317449912664538816442"],["7082229411427305851092676170676841324618967701349440358084018847020091248106","9900799990576623661442360994920743361063521006466838813735062647389472780222"],["27814027678203379025291824560969200103950226902641828366302375627073304259431","19068894349852267045705135003679520351918579826710558376301548723586940216990"],["19828233513114877010966298068924879059922548404333755108961264104987768586962","17558310485983373012072219388661857761535095057935196801858899638260154244973"],["1160379560295274335543519030534541317247655354051223874504063451255587741338","7324191495581795151878119541764775807940347269958259583308826522782501466980"],["25315540465655916229815082115024473304070503563847610792072570297642819707433","13050193100432184647293689125323615622232493233671758973703517857441400167068"],["19535159783309720033527931238952814298648478803228149913668878985752584637905","17463386580402367332671532953201739638167167761413254296193058203280831338847"],["10628000413556167362638320919797257284685920350781310361376422136966305553412","1220077454465064512110977145153746398229144772607692717476684955619611907506"],["23252486378057355733263626173271787322442700087303352214742594251203226248640","27178538282014199582341451691852917509374790524945068398941172456514351928599"],["5562965958932739929273762667526356507723552284591389028944320294102789172199","10134977400302770280645234413072102349055293668125682615690699756251061840497"],["20046838976673121624833307858323393365438032539303175857029112328875065411431","10191292762175535325131702485431717825661135586718892050834022260515971281782"],["18863614216232771232467859129405742177819857046446185789112898951133112619403","2315632895609350853340071322426436135429071038624202126346914680904908552303"],["5064501704684619277273205216728626379187508906297057979276471296189317026479","25113341401339873818785779007724793135371369397849877726240149697412549531586"],["18421316488171811481627878555681614400087413172069206194229405344060156096437","27414099129506969572536301698205386595787003819601053834584870596332681564272"],["15929230330764251417121721440509300929503763085913000489383728456116726342840","21974331463497536102088588694662677835585121856225472600299587685989652352416"],["26106156390030358534739845049664665460452644857911357542641601882161398239957","16341782703865184649258638502920310308257328634911992375573440384236840101166"],["8908769020432721632685601551423142009233196011674180344801992657609462457244","13256789170228791021228015588980202848223447518798225360550289636238628617116"],["16274562326805298915061892395184524205425206131623024047537471916163507892609","10176786788034723225050643058574824140394507882370406067504534916806183794060"],["26736868186514730888080180174182550537943289749122019818638763710168867408726","10823103978080242650774971708512097792215599355896232067905653586568576748044"],["22052665142932877643854457625731415063760417926798729019723815871762568395493","3901465506581740050731565860405864889856447724877022037132365851706812935961"],["15996682410177167845900585644495367802709977517164485645887502166713232733637","9906486982020298504497745780911090823693536129246749998484381181147469322745"],["24437492069612537639843704054909644131585035588442977319123934847570747927746","20766648330864009269965316718969986516252322575957109761626903257442071940491"],["2010524941186302039795648897563849986861511078671334643861091002719759262193","18564828840414538975198897034774340329959347564368497254263293179471357265952"],["18130059024179373006589779537111673886505864894791904369710325100306727986698","20940076585467945225652405308388998236485582319130835929465991753141724271626"],["25009250113619047935836375435519125458090344881484241448672811502785745806507","3574175422230966363513209953191061465795291466919251405375366245845143112533"],["28658575655118879910907410926730139801129632164184949977355230839141052520653","19700187187696487789743454178277983361433195928058341107310131785949922834516"],["22717138519654136034234838152889871779329166187675015921627101873881745958261","10958565851577161485945419222757183738267048990556487856580821430007451715581"],["19648910093304065780638565527593344469090570496699124381554578286598827641982","12775631306193388635642189574941150530406732943803965173936849675160123164193"],["286831672814342564659956533909874464639219249240126162452948092886181946643","6935973501447448976066260979869049129441099811237495540376766766313508835531"],["25500594007423469901691858349755012015896726987814150805298374733744754506151","4698954220860111031905974617986827257204336721186807114179305548442611754323"],["26794246596817471728769076474627496964935336531689292720316585004386081954890","18341820371213458272353025585542371517366817135805642533083242167862261800769"],["21064495697161914468718738841561888453465088318906372614407566080097528747712","917651163638869818621112103634003429116636489985553857004107343052015395260"],["1592885291667688771457072141906096002018485157397128796237113767340171185649","3293437867674683536371118687614548097836228285756007234281525882116099463409"],["14573289932892721914123667303704117174876500092964481649443441518359085199044","27220629812195617018890626891123143221672889137617900532227715956105249582989"],["175913368836625787214950552959497356077638275196958758851605729686009384326","21274649047580155687841687136377243581241904690017887336368731692612372791506"],["11118650031765819852311136440542074524848002688614303384277836060392878313753","3535213024769225935552888102770412936498005583007276063769445721498845611398"],["20100011881857366458263952362146279281947129556114554927323672244901294111117","21472210020038363826218382730628060597194677739958722342254591269287740722352"],["22160546829691654654291527058047319788530901122023629970453500470547721523899","9190782832063025503582641804190544005884132827119159916781077406336507226115"],["20160204852869834545625650484540696387414672599772715689608592966585094954933","21964095318992094826063430025282008412819615958694377253982594989239390512493"],["25318616456017415664513235273369015608030757799937427531899492716352166229050","14523311816393343044462952077856228307851019743418160931691720645735692294505"],["7161220749715054020246387910114157738601203955122357782843542399637130327563","23737342923466791215095434346005851802979403586472704357909521023913148280605"],["10987854967595543409691244849041118735223212807232055001184927411905741315694","25310017089864501574698736015441901170760728850394131798337515212747801862701"],["21050468741616873730663056577352456198519847623454219025837706375159538788681","7277157903423450707748208565449018752904310833228520464825854232282709685860"],["24345240722755179388022983848039176942273492816719624939136051588224924739636","26188318869006270582757108328719127324429822601842595548530342642076108926355"],["16019000443145568140997242958220932886124009411011893475534346176516661819071","19950389570304523098088808090523453772687622051308251195079769234609704163700"],["25478187367648971178392642466325263240458402845450026750798559745213893506298","14758504530651279830162432730212341939258422920149629640284673717758018557715"],["9417714996640051974799861735425888055761854455340962349258121021655492567","3824428364797522129751340555776261165887002408349992708138247136492776374153"],["23929630554293235931973876333630802718804009021930418421599145009971478798640","18649943220960029606913319876604489567966050586313124635850111352514630491651"],["1048947882162906931748187646549082259068032670968486510253265181178860811707","13491602502318147452624777258779051263669991303099656629446624604286429559836"],["8697200114800148275523809946400660583097039549265576813609343942750803541350","26933396997757232643527179079713725817326494737218174467775135690736365643145"],["12728065425004085329576533903961142963893642884866343373742289998766487742691","22814617873177155471098535379956254333812585254789410271700682167642456205572"],["8424101059610096122495613881905634033815044644083318222456696737524598139522","22037843287658855754371967428725237802931186273867812152140105862051240694200"],["19317502601589772418533248564223182860987355808673059553286651243088889578079","9593718503170967151362253372123137340351915594612795020524964449094093721240"],["8982758295064138716186782661416562856251789281058848472644127478642671833374","8869457014650920783749730949060821828429974573074414251281094937982969931914"],["9797961375918374174315634802118652051864281112473528059987731183925283377875","27252574371199852674122476638308093347694549103762138989928715482103223169310"],["19061549403709469269015183304317510509003653796847915191540553955228036014018","10123519610358783458591726975710491232802174017422456326130817743145535232838"],["24407189747797187900069284176633632650909246104507771436038277415168548132971","24245547256283225261451797193273784765481899674667351823605071032825096512268"],["11781565545273662798917868358592128734432120480503175502094553233566191564","22454305108368886215864601840648568496824753374745435762183844266124068294130"],["19757720899662652104811468565973736255373669844112158858618150765714822281116","18195738818637857939003242571911524380016552094901290218985935673242848484870"],["24883948187539861032524965004424878827542162856750734038941025952853522462635","23987251348288957728321590613032072376936617442044562341719907322134276989379"],["14825532535156238464711093586127300050894699079481758616245975858418475284187","23385264996954588987970956083991286386374962901223290740456054485789113960253"],["13290502199370339485141121281029043122922312981092462611720917069047057104959","22621341982050924555693284407725757628286380289561464814816313062069509427813"],["8543009937317424195231262281660750175729142474131179157749998970921054411812","12961173937148121061988147400288383829074200178169205489800604115506223532083"],["19063211360505871141419061074285306811571258603969199857798058414390093438019","17359252568119328243165717564280891515582687972134786693969916782757238024917"],["2195338533714194504821731723867686001845432923764807403925276608234587469218","16423431132077180571331911627451527103541785008379801161921662552573359887506"],["23171645090217424248042187911833557397537763835277131996583606470801229845225","6398262205164385602996228082379927984450914861997462335072590234574173121811"],["28934104443548222527352679927175866096509308590040835159569507885663912723856","4143956787267513717171524986917953549101778296499782072881390834597267833055"],["27102996392099537425590024212990439575195261088199880199512775180344815775296","20826110985931383453010233888602813019869152516491141735490040971504632174028"],["13185843888228008329361271139662675105963535482285801185244247254756278489989","22698900828580939517046992339729336371403683965556572753613882147606290657628"],["21454547777213592297048856504351932434087074101696556668425235555454540124066","28938187147906912543267078029579615411912810878667436233235989456024395363430"],["16981464860473312696814472158325990243100462100286647341319402049072454525188","14251599412206807271407764746282852035385899601836482560222103608021526270351"],["13362658449258176991896646948238993802370552976522844806543313380535584169523","15998711045840586297816633315301490724796573551527596980678541679081474065326"],["454860766666973933530330494401919595373442271553201969568155081132289984095","26339300221630970832440345399050971370150704871557684157417109203227087130473"],["27245564523087156663066113416906471147911647776897685638734403667198914580737","1438249950027132708425816993376357001989327185102644099953254857134021960808"],["9094252838718847252488923341228280811411973123286256178936044930159153793600","2530907240301460830630170658269704874861662361019626029909855423155080191731"],["5461556613088482459760083645219600313036067160439002503241412470356284738526","5698459590165017515080116988690784943111609417787274679148078203401044079761"],["15772854112407716013001451337110873495747340180737101598501351398765909265499","6214374409610877694381929249068213909864873318405394952124186953418381857062"],["24667112524080188318225791002351118425890320815977562085309375759289926361748","6438890611298551896998350825722168086920929851533591023265718052512417965001"],["13295310137097355323951725955316363371747734239232111197920828812482875630025","10576404730085228915058294737912966933066471605217123412578796499718368238998"],["10175057334041198215173998027241289537191596670355024566647033906478302070037","20644112967570918908654887145717627852906791182435737095176995017107353427128"],["16563567740823340607397211706716830790762475533420260230321729000748301452595","8196815815035128941232684618474654279818701303495018615891150879383565521058"],["6180750625349025773947142852787288676445629021165161715182408710629459443584","913177153623044172942821458382367522974656349616871692648144813739071633354"],["18764834892560009731805143364542191322375148913426785830155670333677084073827","25258740815168893387790061882177300510466025038100554363024021821683989163108"],["1309344850577327677372739770108050349394608295046871415338709695592974008957","14465004739071691186632116595720479917465974122595821876885321993427504110947"],["16068666975937129975038517086773074634454253386726301494410651550395405309793","5855132596029575130227158724562983362650041329464424009247453506163404560485"],["3413564828242850552773276890453184655895055143184487877419271834086265129198","18762843896920058978283895007792424575595578129283386155175249535892749490956"],["15596621204049281020526324933017347186832548882765713853560520378114326150099","13057906459814948811871765168025812891676388726560486013144745028382203442904"],["12932314862280002096310560992585515843194236088841025192299332588468611318704","13359398504417158641189201147706962716210864830553597438896398727948407825931"],["10353691406269613747185269573237856128592413805686771077768309279365092525712","769421194563291113768952224940455956177180677357459765550664529284926771271"],["12765579084780711741490726194599215896767725826835990284526374459119468086230","19118274553432963247955943878560037613441438646803484597194639438635499863045"],["8109003974427774943232775500557335947879745156928645739260920639003349493598","15888285542688009719314476192477300445496529155349581275634074891389426925608"],["56471285583256655398800592690090114627586501498266568211982690657621734355","20881531584339112795959735335879144789405690198535569518955741267418616859824"],["22482029077190093908166391986541630971765777268089118037214199009682800563703","2014922971299063819946898058077618568965799811541703825923698402031870651080"],["16260489979287783858461404907365110098118264362211779481491221836396924890210","5797386917313763803160734978022320786038858765089105417504673617566439578111"],["1868656729153959859495573404176675889809154315495131520573946389213005291080","17221608694367702691004488944472877526200893886775399866305283182103294031184"],["2410030726714072297569319353051233500304724786956231257737095261055497447065","24125597667063252490749164954067057660001007972877285092350318079189825253984"],["16634700748302359947761847271771124932495759724138918037825925728169828293300","15777903593213070979534121545350045698371150524383029945726962352992847437338"],["26840937879306960937574486921695696011719645554636089260062086341293383930226","10369838359230825363358674831609988527316352046131961140453802381688595048229"],["7423915516810894344469030213732335652650243810675014139464682880228006189752","28115642893949848465236749208022757336508133098098082257264172935032258010001"],["7828629768350851931271380710589138346260478296579040580997315898265900400723","27035260931451187925902138115466585982735673936550659071420933094702191599335"],["6176954571234524406570381132025935979170563703689568961150493828656327994769","24826383002427987336631254656839320686454019072878202921305082482931022631829"],["23819183399403955475562370254042931085491473695919459591244776462940902929424","23821951206068309291011997901833984344241490276018281857333700594481438033646"],["23376339603876132765544046412232169243763449743226586780128004037830767667555","15323960988110625599489816017873563544004442140136597438774185754440430480263"],["8813106763516777228518360841076757663298180197823369353186427020036957638651","7216179883721803325246968838194081062059397575199882689850078821057983417753"],["14650230221169867605240468840474362543520636123021398786901810585031517851591","16002139092068372327372306722133645643579243906508815281410707627823467121229"],["21788415927286503843266168615604375013711681781967493393923421799480035371918","18729704971864198724273836621491443175124898018602971465525951809001846040517"],["22131961830923958153899590561128637244957160701939691898447231507683051661897","17336417475631036980666560808923909041334700561648217029044874240727506704362"],["6547768802234064278231423409736028109842555935479021906456165968814148613547","5401548018536269771579943024052504841730557855740326149779366596837271986783"],["570311135233409469173141850706873952380356941157941184050459995743280219775","23476282212512816503763377952744528731026902389920887165813103845302013535876"],["876412118999521834778731036732958218072435565585705924197166500462222844950","22575258062841407984063362673176112515172958163777832268700927242601415929755"],["13081373712293189983031378511275931501047560813933708695165176777309806105235","21659577846309859265947145244899388367568549403783014406618233702399652685261"],["719439985980261614461119480244321478172331338725700310506471177424108352471","7086045695259189438279234912125558389103332348853067431093641655153995147418"],["14947095267372800828813784624852927903328286593533157023156543028913183748044","2760164228057993103624453518931755129052524570306980227177394943319291964395"],["13932339945611330849653595255517255860578818237980383269451116861913513952567","2470622092682391015359525603542382646952560569228769693532622322112009601739"],["28217236745846954071230011820886592188315925185980631319383526269632703354892","26869794007635288166883917891957749797230870740107095136290943740219495556826"],["24690890519166637443024352672216033706857446554216901928896324168621164660979","4730434884508481005755966669623454926028495133697639603322802390021931039105"],["13001870785898038887225727874625585474335223675238148893617966530506713461769","17757440036647417986179142995416070912340082637586095954223383766041913265275"],["22787090950898422490776346341012732038308863384929216976684438328589374742646","3879657415243815016914457459204702650915388442394535401057196142736376725293"],["10625495774117333558875678938723974916780963386239206680574208871170027656962","2651566838314592810290421278281896211370893446024248166033388314237862344279"],["11459659034199568135922684638544673040441306865232643357697074353908620919789","25714827218251014615738070253778826488801035438080858048277378979959700504772"],["24835921952323342664673335302372491467722156512141311879758590405913081511622","28923128417504208462826608810900122809408645994679322127989769424866960913681"],["11585742643319469078450347751058405749172620772209959663144459824379342045227","18286786538795068739491560267475537850157358036167657438032420353482260236389"],["7746534082995270296039567970488845425711365186382001166342476182390381614013","21635870420656773726845430112993459923854043258891660205091903950682534846287"],["13511866695638135574476391601613136779620060777164794110221014724599574530335","28050529497697381776939351434003011475309772880335345421462560081092371728228"],["6904892755275151324071666566899049915160038921623865087753296068483938845149","7308164580040107099880310305114591547713562185935762270347252049078333381946"],["17995170786541928011253224059086138877651671458645201672318383031635856511038","5501434576997442209965943556924963844752822796466907092792895195144532619180"],["27356514743410435491682129957604772349115748429083256283918139951775763235163","12672698547561305087614031720098164837633885897935474220539046377075946585182"],["23380832195114403634544105621230975880779181076014469314870642836004902153763","27320565743375523267802400547768460090451532308229296059402207997225484664491"],["16941549765881821511804702534029412934696713954280114290001949031800148341158","1976737768345754863530711271474341604956467160439430434659460714090689769668"],["11335813708218696688959066464982536285334089964492421279391040051167269909508","12016148601371491545350231734417661544035340992459230116164003058385763603372"],["12962971969165084899204052753376692084928860541763547395519761216836212305924","6440916850261429811170221603413807268770083775841668197875937922380611544687"],["18337684144293036732228700564781734497166230457344584582324083433617166402273","16401865596893994983653542643758974644997969294382838453502960706758882217214"],["20027612047547423392969106614807029276496029422581728486889610548996446682993","25978015615437360354236625688150105180705874938065719655937156870796342714700"],["18317087816367031295295476879764485072796040137461083056970397811317465259312","26511703245731939139187908804061630244102873477444572826174062080205113553107"],["3671796226023723048137018596283120286537843394067193078907908504138665547630","15505465202979955748999561078644558526945166382394532418633594430728854873087"],["10988934895822659422121046205791798557586103853501909783836335454869691328993","26340566265771351344485305023510496326386648120947777877028461415085060166009"],["14350424783436251217253822573863919725285947113462473817543746770311924550437","26757675202729882116669690815222649992437492832991755708874238382862523614379"],["21990372436920379666970685452456359612623098086678180336693528093278202976238","3495411796505786471829441649443320874548675769742061980749075107709206172805"],["11560385508760883721644547658454232148839441222437021574361808472202612085452","17956385189033946388905438362321738473608941833455476970759730877855727737038"],["26190259923117287251869920091883311572063544059253473056510368956018440414684","11694301296610295055559166188251880130632484967735179272947356969144976401117"],["15522478656058113992737327626255970468392486524701502659359096028265363943308","3732669083991051027046568699237288876466964422987158012041069672184761024849"],["12219389316664972924818872938098235038936039758994879388007461361292328661403","21217757930469214263180736988668362362682983089933434989367035070776504883121"],["20707067096377748671149489490907757041768467646961223266641186332853734240686","24371151032232425327262889242502055401208348176002531117134204386178124273386"],["13836758958466110631257301554467764148242041919060413863291565212471550603524","24074748999998570575208817567000702896199341549853691194415766888293806090961"],["8337288883637120975701683774824579131212611414929453682090107597524293931008","18267922960716738696678944082137099243043183545403671842450350587036077797793"],["11533029881996016080867818367973747597385184598271483980683758865411154261743","15404970939638357987555348293708240946501115767271512837311389956456886671720"],["25690899658669960347849598823839595161576781284878722994323931048733141644479","20159448221369825682966401103529226525173929001097601838795870874871331572698"],["14894381326619806423057281567208091927331169254756995957762330312406789297469","25163975487095142542038413531682865739053224318972916700199268603805927026910"],["26397939600185825968426638031400319090165314849282761910523796991363720046369","25747351482178134916260361540710461902371224826705311083307447968281207045780"],["4312574057021651553359015624307968038863842756954992072526266756714587938633","12092911007099603624002439106183335420069958078360761075545562935034110196690"],["10240617483514843051471305420364317857280014241860094210476906891957470550989","26070228754137777176947082772449504888284586207704769543921075697631512194321"],["5007841860608197253533799458896513241901903777944350594430620857742067020651","25224881672004075853807914369469062323058423587898576168003481652549524951147"],["15775398901344911905227266561530705748122605385074904834186435507532602245789","23940034771062962248710419074302337194262868345416059332313693405247120950723"],["7207895037701822600069074622121621501706754251769345879159912309273919398165","14121745651669398482575552892487911522318833187451896585981277546553872260476"],["25422134272768528311449947963970477188471507714395219861606083653152592897540","18415198051675947630127407669208918055249935042585288357281926945618768300419"],["5413519362682742267620513825881960252446875490607001575060847940083501344849","19863976050194485839454314384940754632273955439545214862260420273417630358300"],["1132088423557072949433403092252009823943228169139552044934453243340138706582","246261786625253052161015626773149491509237198443945087785878273329862979663"],["9084731868456528327505854489613935961084072815217130799758823000815815984536","17176790105354782380061259604606051646763815457421009852112954779254827706540"],["24508307275967625909522410061614486805515262844894689945604863569409483768431","11603337286131309849047102789793915929717177854579061305206478589780447711026"],["24274518598909342668372869397430987617738283943505440434778040852206224667184","5505397821364131573713162118119559684309155595803884943912044287375528221321"],["27058137209951564787908184893227117682060709266847882911155584211715400308276","6869412772695993005005785111320262844614653780267544050228255159524741896414"],["236596687124884397773179131018242004787296198860797241916414642559103940156","16877026651641137371637250499233448456193868933161120716589314249290539541818"],["17941865191366999460551736504346127121613775920926976290089378170800285716732","21757157416545296816099154499552792530850114920832634727536574107697189856213"],["26747655584876006367136057593732183375015281615023735679457563480950618239100","18242721788890606608015953730842528141587466208343970311821064802248887849286"],["5394356581292848340912457419083912313213185191002283716876025649568475866966","24794600026679860481698224588793063861080785175380653680671312912637283042314"],["10429569954991087202921781146046613072794413987028394913852190635855139482049","6394118351895750286237538087648360718508279800676173119896293011870881961584"],["22250061714404715859241910657842626190927954982992038529357605726384403945861","3037842242857826215711920951110720272758415957872092770714755956655134387134"],["23629689718520445870193920244541982415178838576385168835488095113327544907328","2838088400802712291612783570133674079883086875896167357045119994464003618579"],["3133114738735994108474202016820027464332982535559955867496588050560172774632","16757057625434426914233167671084019411771669485398738009171132170568461811013"],["28813788524454430803401013428646021239357023562009548696486575727662667349346","22017703321150970160230953979787322596258876853015971618163486695147045868658"],["21880413504989210305686147202702374662897857633310373164726264675322760488676","12296557059365089424858047564921919780774298789568666349000009157003643381040"],["27289129320206987422686295071368570655766366031737906913895982250373508423755","5029131113691137548948245380771096449330273570816529996588924159686245754312"],["26650958682702161865108110296851014805123127941820343164895204435727244349937","28040942861633075907301901463588872873887423627806672220080163616966293761394"],["14898533048730411584000805025662693837609960570617078423253973317559802686628","16939472169721792646904893212987176329852445877298039609400549802474094142195"],["19180384688987223669926821743488423009938467627216669785445305255157693689187","28264316589538495341392222575824038546486725086910992347187165512418301375453"],["5924393052534183496837720017809830109889170705920362560682363321638668235872","26088887253711942942554060533781059507240277770013356749299395942027742841176"],["22419229705668370084006435135512432534615606539918894398608612956731468079039","24345998809489973218845368038965816992488712025973443208845244460660369729099"],["1861669390791995290571614529423421525746724056114453427274656304941552731358","23952667687451069135805196906386302525662582678221691419554003391476577476898"],["17916796244809882323843309183795287654771310721913798523037490715315966071262","25623620694000083419327122110114198526131278507598874427120039329149233344883"],["13760570386042143052678823275869358410130284018848730838103519504643543325374","25177261141971259470482905281490549704041376192835521078200196894196579210786"],["3982480728713340182823615793656775159268672627758840478577711533413151021254","10715116346881369671556545157346596862002194134593500762302059876572524856373"],["20224556564216001833230482238863249194642079239296323781560000767647048523937","13704623851268173717144440471575142450108979492675288952070053225323169445668"],["119866819318441200778462473655215463210122866932969292788495290998311559245","14592669036700038610307634723780939021676790164498384370090150377180575720219"],["16894667117548545483826527688394589057227859948998312492085625414145672377739","6459859276154544874725561612400461317865844224188810793787086034208290709371"],["28193743969340729195944588425387462054973716995867575906412966526751784526243","15217893528451350470407694667688443676001208713522616801688592740743173628386"],["28478977984321391872422818455240563329642547092972881376819666612917088662226","5046360166751394202343351910443650126397116815431253541679315238625032109417"],["21720330200081578070041183745174913108737608050385643356992563380639583737762","25777781791880170799970542605104902432420283253036867649043321856660831479050"],["26153972146847243081212999888933886176755239690010995464858519055637459905080","26838579493479630183306219396868063173231978168990747966102202212241081157340"],["8198497984212128378768987928183773340716744391509137934225418418655490995476","22285324297801093786683353895652256941001437258695925428976369574237684032200"],["6620714169788748116724038853168573117010921684725884347045402943354096023601","7283473517776277596977360984449031540467343037854418277501093914665080241243"],["21565578339828170268383796112609308971946961189586002815006366144163491553159","766068068443294566517520426008180065316831975572389169486694728875481734678"],["3775124386426534727536131664809438613944293434344387366923298849221439884359","20808838827687916057729106572287679037466343225871184612799194565076374521626"],["1973463378891718266553971714836151870578572002347031867280294773950792299543","8628340459708594218475873376008458473402586460761285784286915089618523995920"],["23747299256645193775884491799731275932122404482816203074258907178186788207856","5991817292278328725285642295384440988507988032046735842939433420739446822660"],["19412002225978650480593500746539911785029985183426058647020563943649638814612","6655834002729176407802307353994764195022332261630353002650368229036165584007"],["11630483267839233510229972068108597535255234942157296060707220407526977796574","6523756512806240396798551077769944380648373381129904986476880580304753403965"],["605443793746243473752875451783888303523041353727036709667875647720214862176","16029792529415897094684003680702508474013419580778443027990550257068661328860"],["19520357801079653182277918592707242720370233278264958866466632673488680197503","4751012841139723879678711131664684463920814577739887793514961616724728532741"],["9930539580775600651808346691251746905160098801236032675543335118246183024349","8610469641323658482329345513135565074247039518211712333830670764053964884788"],["27397723459999870692183983427741641768490394917481379780722140144610668949378","12946360270634596319358288983084730518764991183226136891151689643872925000471"],["23526082347887227722992657614816867487468033967402492855749091940540582130137","25096833994451383284854808982018776297097252377841310620470399011891039426363"],["27223272806748890344224642649295320416902948745676686711490618176192114067633","26494370952481137481303453256852885203878214262763319149632506141497368868065"],["19655060721689773296932007428161595133723872143505760671179941768226193911871","17023922838204698054132499387242046043012690507719036748417730107993991226772"],["22462872188193193684714669199490542859504159240250078818747329324187058625691","5212893438613116868813427309537576033253381395804244965507515993214646909319"],["14441586967404101586799960342392517463746431242716591640364380216562674418531","11098796490745535119658266778660418760568861898400379210261299763497980298572"],["13470433168381738587551997299701864696398538103015219245617545604794269569073","8478443541615561502936711641845602927203285375554763606555317803590286629775"],["16685191639635365978052783723889024067087702213631152895128257832567921983389","17403937763300388355864724802265221102990836756691344063043375383059344159729"],["7117494930743039145368789652106546259528138553898235834080669066877558467786","13229838287997372277415615753319820034791488536148222691424027059014194455535"],["10814059179190782533091933010324978630053477578752226920647088381328786918496","19025251728422691750013820547233225698619439016889392678008519874643213436705"],["15642971108671757014671957684310577390711939984835257284838895340012323110155","1732021007139235911939349985684530828128603614207250996244494885948640710821"],["17638339614868447850675852550976811588172457075042961354369144136169662378603","25814755957973698943953687808223685405185766828510801917096567051655571118690"],["14492040995978404263868750052927198627204131312345399146687228430431623739755","10005390781905526040148757957017064737073886405728960155609290251514032185145"],["8507320751419365377846017826426947863504938835782131799418885348971986069547","7348554488208559161345246554172559611229077024827423932789492316402854368521"],["1845035663129196217522363493814450002534344892318067971921776679756508114652","11642424276218314604111189429269575011130603101642918470778485760119272813164"],["3167021933551432006332655782615612713766419851486984237200546790778935165654","27137910487372415544536497525943381618482390943398936718803563664214340325910"],["6981555059326064549826025441348902402196707847346501251187166714160063502959","15705804072017043261545865497630124180828965941127213430139053405239893639794"],["21826308636554263731005014880817971543232132071831441399702622737832697145585","22496635589260082814554315530774141793695124331113307714105455281380101446961"],["16680029759028290544658234194042842639341551285000462384082106309246019015444","175807971593774799094653871100736357013950062074125455196393676276643770810"],["6171562151106745388132447975373351183474619278926000596199934960012432856283","12478903815609950783088297790116970475716301927852731460173743072908152384958"],["21532999240442872879411355971517081180066872907131706029532895799485272360920","20564521752415099516800082275948937760655587009169701403739849415522450334690"],["18446628861625390503789892988261120949166919080484578097271636684890740898852","2757635701934157260575766167910000550620011484539055303393043994293331224676"],["24656988346412795180118474033189566242048810856021525360249444216941799549446","22026174545075632505413149075525582346200322671729881334412046100974141864550"],["28253466356971556001685928952278013469495329827328681626194117390561000202869","20263454071145062070097412306826279402334712987526831191451777219186075326628"],["8960453429255787880320902892127377356394543934832807961868643675046207274446","13880809288563165318217923626678100166481198195510616474733421052230417918137"],["23081444527899342652105613972481289075763270271212788112909852550193313222585","22055810394268907012674033787437032961438543009812447175004825122553381477408"],["25912521763240241868673715843430180841695372616203987191892795317536801968211","24881041868225276269628314641947634111256532424538394415104999226512651734169"],["20715298141674995175333881525116496626087042429375902393215294508244805899947","14501880362177700548752282390849965336099473709756743582678504358396138549817"],["1713405041253818080092448414495131310914524178513694310309127384583049499861","5497965723044872703330046947610930211717215260363613126400984196649238813966"],["20821883629337760477063941116215170788615900709666127684492921651186944807884","17373532988552946016550965622821233983192256783664571213647340166865216282242"],["21701488477761718774275551107169277731191516173950246161310807511610306981853","27358729748770243293224148778824961808489929502467827954664631875266178926687"],["1655014388181217361985350312925578187563200752510693998920147916213538612714","14523786160968627753110565471754405662777056010804615646137294983530648101459"],["16084053725786770238054733140519455150647222143854301708460179522579460727404","6048746840393058497152865072659628217562102900627343966135253968651763560792"],["18971372656996175121917152669356863898845933659016984743650363408819709413068","23075639140955844488589540878835552138933177808843799486698809392877919847660"],["3648419838563536870161833803126102459276394380602508211169690463793203962904","12740487183431252507460398935191766098164588203407733943984314634139752410000"],["17553442916560003003378679375823047564478565591251713664206410293643295338262","23117456348197372513013410794918120827033891809693174046198170798522052809674"],["6976037841679910764341214149542675230344244989656029511667195800079610369629","14944909630791075270094518898243487169116504926445601695556146906580009772859"],["11180922877009969234649276643197394839698740201942194838069741043514905566362","13142908578410367608283980440853587432140599614734220749035603111225702529810"],["2752838652178912630284775432971042952028584566619839332633553969947214990303","21683472326757492571810612957895154858852995594668315907788726924084837815626"],["7699524933196026580234277642362667651413288732235731074310321105986930931803","17433157106286071736495596095742440545040090302473017948798018054792139766571"],["11369219340315562916688051910275630036674058334413165285985309960171542831665","13078784972963524522136870958375317321488808375964203366697147997821218280767"],["10171116903146880535113200686016269287929337996673017626622428651979701818272","3701462100933531617295799582626361191573894509108807835834721968217586506448"],["5440386840684207926244437779004000483751947869747052089459766017524041415446","23015772064834060275166415214802805568948165765408296347986299257749523669299"],["6922399251064660182928421783084707219969612062384509788419289375445012308102","9518731947989068502250053949027851084291065930894201332893259405631422464785"],["17609625967073642994659031231986699927522440381494355891765727830386534701273","22156931161342235368344939253216290470569923148071473363838639750652779998107"],["18824292956397448777195566521443750141357165025741696661456164157669505652798","2777965489604488734238666357084362562750757167252163300940722302250924464187"],["23027424291014792139873007983655165770454654167022852939626059912483974996238","19571700510587781335778403825616860839131591689169888412968079941959574197697"],["12332507070285834727829835984343810390580835237399144132823563223979699167007","27151282564213518381730667388030876932194866236084711102766392387378548724682"],["15530288661453704587643191598046599500607669252550714396148794310753602455684","16308685542174171813214713205452832834859916596479182201265131026839106886055"],["1428036324100770682849060011584108529430384625860408265698093236679240889493","28811579136629525613435339582695485269202636860374203480299709097986289169638"],["605195584149745356093588568570525383211699312485782252285122344884033679532","3833342146136470795153763075637445164572996225715333833577579950683010751529"],["28398988729232965380385951751459813339547020068006479701847065135643905882082","5072058211519634967092825715140875180261736555805586370723588025079067395687"],["1398114182700920256799518712610356291774322197776742843578528331502261359303","15752362042227878416926609694381290822170631430266895753564286929239474590679"],["3900277049395931219675358040776418701678148995350957431097106680604694564814","18255238430269303495246928316689099777510511835410701491036983544319734713686"],["12167293807916302752113002367653027850133768080262866248935464805907496095784","15551606884205633967959086479396448765191796659045019678842607628971273845502"],["23169871048019313124818626818877686953616865648780598737837554198870437614639","8964872188423421102849440533909063228814273073590504779475897371469871220511"],["16937319945359672180511354248992594768073662516954243748779455382607464184903","11625715221115249699989543883968198035862299515801534687346163258789776514082"],["6720581596866563635458158643216528100820054858106234725934202102480162704808","23741515550184151877096393800037934598374131769486540628946865174476787931127"],["23259944208273652199179545656375517147456826804205633284585690520475310610080","26770645033857023431091060393063302105591827571963228355907057125034738733471"],["14048145412547819337261112731341285981541797846883389491060113202174619385325","15986743137728714184459525908888653472141767703863474285642457699526640400531"],["14385471319514879391257975650472101240404714173863373915902505477544001573512","22714618886037005636008822785230624059143461655986942912648782008547149481978"],["4964503040674393686370644294524266269648817931165456248101895157912580809272","21392667793799897493732132778411104449898897103155738218847606777925793208027"],["26388533251961554197123461646317323684685187475154004751777676077925546118419","15254447967085895890158859632366977933700928674378914098782904851229183688046"],["21601803801588163006325609387332394888493890938881185129671399889028923659770","25375574220112212411773245191106334283466880848976632656286555830979157402353"],["28448485836980245154311940433671296306348753060357913890763218455277316199733","12286089224042692112388826517430466211244820204352026072068879979931785559576"],["12822269798243398037588060439293653431569054893087846926099532075066941916762","9157123324424390512566142013370618317737840241971095757101749430635637665081"],["22969346314229987166809918176104695813591736409342514995220128946154281198249","18371896396590823325160007981341551828149725124461108099416823106053390795515"],["11381270726161632442478047190848624307997936924604982471429458007016036084259","4559042561308287505275135151770796197420264006368000894208367677495185876021"],["2014437386240187047780744923681063412420560176985610066008795366593107184654","21370719445109785266375241129136194958545770875513130313113473849428468567054"],["16797233073981291927708687900580940272741392125584418890870892214327404032678","25065329358078815223051465983494190554277235642829220842475089640489930110931"],["18305246065226438614712517466805104044559818127628888662549163098445784389539","11860389774317145420838841624455182877333139896483550908250297809689465625832"],["8804109091628256917591841439356111256824104719486395699815742277779628408404","9257383107156817081539783246873755823797043084078420171217227559580974732059"],["2088789829526743501579135710882619041572744575432166694328139792888327670705","24534600143775319078440332249297948782655854038354151865271220742317958488088"],["13638220151571944395333200350370435014519153633180360210743433667508887401693","2040120057147172718437229376180444436248551084048556069152216998003285616112"],["19027671931945479260116464247481983281523286752007010686239978331577242865802","10927447199684487484416888991698326486670665507429621989347899955077081409667"],["7639207569803630050689903170942128590165495090488968179369456795062890943706","18156319503081483207728944972788052227342301603346772733125985446480777852427"],["24389840991378867801065521794167250284641841350681486193648238725854651668498","13750759236612753076450975171443746034419782819103184397689287079395407304545"],["6915766888676507199511635416220053208530616181751875897307326492109977042713","8550144641817850974049408628468741928888484029618046498641863233069057856904"],["21001953432936096658500977904145899882507714913358424059327878746367528338290","11674471964973254564336456691753333766618409764180006458552866286719006562432"],["19326710141273854598106603512859490523826914293527399319415944727643820744550","11614712012995433755796252678288214327668749693641505212807447975841327405444"],["15783129948409030111870886063059800910572906689221016206996528683930285510894","3431618332047995694280641363265339343562074313957987580994386593395470905344"],["13871873028418730491302972066256160433417395636065087309034876768690680379292","23312890110796315864795385704509063776064814561598114730764824858384158759801"],["13129761377231367623690024651899312713680713101335217818516447111728176848897","22664001821801495926615439009685108301082222981097264288441715326790512244253"],["11795080380864265073480267591920800358805119830653938894464398970620188341164","26116106403490742041658163397419073657293525661425098571837645864945020099124"],["19695512888642526348429950991275809564276265251194251763830421239494152100408","6669070537153459981520789753197489014618225022418846554128131786981356148304"],["23745712673194567991084069278392914929182260592612762349976191991310407830071","26657229847798987933961803379210758971272825685892953595054242617471614200782"],["12571420364440224688123762209861739026974644200664632996924230196071857296681","17992079266958014583951666398361455870909302880713022348657262383885748092708"],["20964372312127374535525022994538279993050139518832763452458251258048850464555","425065781698636321129958870014394033388805745673058717343982634014676844084"],["8191775968987324079866219492592187432102455511811578190329752404271115147841","3432153498613387626047901979469296541538365976276797406199910649802290183272"],["17443977326564007592619368655808645405847618125586668716090445905552845330274","1915732796532817513628174282927906876262744019682991787093389411640814183506"],["22011294077183662570887907016500795311617728710674792868296038788351317156094","15306574529760789223216009495529744026132256106775107115360629141835057182022"],["21311943119850024448075103604024347842932560296733670270162071663365223983183","16196803356520902800247290385436469271377076206366196927900695739949265062186"],["25988161857482083438261967111006853335083711594971218523045899076811310802364","3340357276670768165520330029551487311484148093443057988733459479527714640904"],["6523819990040958748673584953650083076045376262422139472904211283380402523322","20460271066980693664976665490005075172663864426186229446280674572101241224736"],["12155112545833367654057916003366988141499980035616562067637546181001590694635","14113935547768614475332811778130070108706945248644218146587694293517797072236"],["9102594386978990312878831619680520351192932167882977587881868635838651827994","3062307080306468693953868985190724914660689777575805913709024376618403649439"],["27844882545522524290836700276034162943591362900065466406897668016428246810446","4907968741018988278958561987827674892357417430415875814787504384450798373417"],["8480401648178283317718017352812347695572805868412283075483518134922768772176","23612649479223760253990711064464054250999494625123337691959036328687579140907"],["27179566918653167334125427783942381224304380744284094043346669957121904369122","18917162142526505424038936050618267742160135110977169738470797181827882335987"],["23662559102674324886010146094557432970879388492221386170096694494387867882063","20205602003799890227001662777981630776251013757399810444717750249189886927191"],["12257612883584251129062912480284015235119271490634895302557105858987060495307","18515182004940398568369567386143856574022990338616420872454686810112401022190"],["23062608965096333001681464643429260196217619732802132346341537896005184002384","18030355616391884987411445118617480243702529650072052534389271733527792105292"],["28216035423786336594957616199078229651497064177647909863173873663559978130005","19534758244640080119074609491099860607831586510753625521754707227898069955600"],["7080784238510762446386079084791375813826583348774001297509720941265846346784","22215149046273333778323230734092532226944736012807601596066225662763649864861"],["25271555367761889880489672546030247809779213285120343194792516597992716024711","17823961304041844734595744430364669380107674120070103391615573586047968840579"],["5403394170464703242811972954538541067458569787987154042798229083918400201759","10145551571850398424926828627215333323774547810040734424032269287048961875331"],["5304163266465164356316040328776964383196657611580959773435601432491527402470","18251851866018769510647311802625255840019190850715347550241779876621329071237"],["12519620889145597798120823827349426300906829211533511709214263300113642662211","6679733315941679583943354204486647620649412715928698303743775041221025446457"],["19939682411501771838792081368994508883503730685671259655717515187532358145476","25655996602390579243351171453462994314493297360600984048243059177482653856989"],["26405906280172124705321069725826535074768911084678591438862582343527144610074","12558783855513333929798012015162415164201790287844202422969193137706032294596"],["13214509861652189039254861257611870712038787790650967269200599793084660053040","17485761160514866698996724227659312494223079685177104214746028067680257876974"],["22169305122503695390864576549299208811996560855946003658200759555174071101884","19871568384796642781751074750270854792079806373492349567549322153711130055660"],["12873472910685410692876428789212442662057939487193320232423517074231774593399","12338924445867221861368281861960379073157884025892130353657173803237531748875"],["7237999894944851289239006102059089696772267564373166135619204187378437190935","3798309569929579094633656617538213194585467170159638379664388410318977967980"],["4471692818184748858376033961573630063465432236889160107431554069221810155281","7296267571563156777829454962375883173240308612150965491084106059136187139799"],["5954149625083945009119489399983815062989002735162988242013883540907168745932","6620577947755250030493139013652655734920385375634558306966822606835395695130"],["19117503755764259569108410336983108073745643680759747566013197218116957572477","11992406328050882689892606307304306848262978310823988543153978725886779204041"],["25919535850571712833637509274286583007205610329147472356190253199644554052360","28138148580405749728454657134629299811543888791184561836700388641112648625159"],["21128116438457995526948024938751571867510303106069946782738372244440235992759","10933887975664563451288771717800738681062296458687095476371110158892853431927"],["27439910748248823852988574457155301509277729490201536851563166368896465609012","7786476981395359746580473515015405958839845505037616280498688244333203720290"],["2117138113494494744629725676387043206455617971693570942066727816819626241849","4340172679187797457375258119782423244692091028213037215931523775357596498741"],["22489781560723954594502090046721382782601637182545511243488250371252258660044","7682101643881167057705876509309956818291883531502869735681562303715359063220"],["28521098950394516586861251978776561152043335084635549897910267560484700745699","6252961698269460810682100475475259350222363361293340447086813795278808201571"],["8714401416496648991525851431496177292191861653513001616308203963848080668708","10820608587292545541686891129663394236923774426141231232531705891088260045778"],["12774462359561920392425211564015164381289078223067961218423309222632091836519","14011616635254786747748799037571224259836950617517515445951745247487433175080"],["18418372158128105360646908671375309263133677629061598079760014970629551663349","7584660456508458917564549307821720286047853961591922658149337076604734564256"],["5090352696186187693666680726046906056749587097454212636004261212342929371100","15946058987606655383612148357825920905078810877600525147036792314383383356043"],["1960014498183732490423021862519026208641290233952086999988067754363353808130","4195245970653457448048377863157947012453461912819977133350115696188244996747"],["21705275312384018769808264236384527052300691080211751929308856251939365192808","20262583516776781490188673930880345340159431418825981034669084976719914424995"],["18959504234720091158835873926462553411769019222011606614551727216386469570460","16550829120513234668023266520563733948252452557928599513990340693645615706899"],["1223060274639143075768403735628711714292749702218506122480890897021020826850","10687865900451653645776488793445433883014720074085732070737364091442856080003"],["11888150040862368617399630902267523178161864449040985069644633530236355515863","13808650497558807934613819252988487334095461697291765322596928903413796068099"],["27143490169610549784843613241932056279290295018282637251003443296952228083790","690691629631231500479413819979631193567627403092648206660415163211285524099"],["16253367881685900096094431930653619382007609913679373034056337499688140168476","23601534579862560568222559377252306768791973859586650825655368618259269007562"],["10419763359344150195040522114279148614415765527022675298035373540956108678800","12908106546502483729731289902283137168085302880071656684719777446594995930346"],["8713585943790548975820745295918809727797001455376513163525733402283160933680","16774726426668384754857664572105792747435508612178207838711300613113572682575"],["24850121340207079659041158790427446177076130997901369512518458592043372408777","21361747056552445726714787780600966202382961907605817487282967697715223995996"],["15239567590669398213810686918287385609105042508114038217745394584465336176787","9397833394986501382652977251878187547954388416394543713380634138257617437109"],["23031335641839666045424186159575161277132362305573811510457712003994647441573","1203894602834330521394881967539461048924897765955803120595047247651101797716"],["19806920837539913670570851852782271772315692544871245672541532312821093501515","1425201890626774444480635819729075062719393132765471386544828158372278921421"],["21656889507764234508660088428895196654516291726855647765623098600379233019695","8860447238169446798545657483134897696119836713986044621790356289192101684732"],["2890505852772337410339329885624489011996916999173893985808821553635109118091","23275308335467110987628695480709511517577290615136681808931126575674499625233"],["3492956167677810011184964429370207244638811686636686691611283040673134585895","11383278220676516404697719567315336465103032003710223402222210596277798619092"],["2054994441369074355379032256192421010155568039221027910107051296699031517168","22472191922622450112490250721150348211473030995633163500782029939873566935393"],["5701099804094770019574922240725820118038568630361723844173362542692069585416","4902932148359191478791807740518688464053004829089990944026792012504036326323"],["11752468121733457433872000804247505869340737649480315982300240586527006618060","3173053754071746908558810888731745611517182984611896446781001127371224041231"],["24506766583527142290144322783798609165147483033622741405603680098700878949324","18191992904128497131674069604822658323037565171621035068253068882908460392828"],["21017504964224956453575027539919097636999452912322140155961625073636389020376","21762328535567405498759386070224491144399823584374001751623532747590806646413"],["4802556608223440034461528845234055932827237151636557098480492112924825605032","25662779620118788820189397560437727326811460126941559539496279400969651747462"],["1704631580674632662148429084671295843756707981085073065195168839167976829999","22998003746936359291098996694612957127304723698505725208897129089501832350633"],["26050305051704317938686431516540311900018090710738353107512250163858242854772","767273309645448728253443847396665944299920048955098520142078880704234038229"],["22594668524580223255953164824881726831998067298513668124009924873786593453182","24043422282699083919977879186801459044188399748862153435242595782298015246431"],["4396468467334996233460861756821660940482870875525846547713042139493672956782","24570525290859075378545595506277013710602857066791713867414935338920889921452"],["8205381882829621281301664771878634551746476215767322687483167286441300122572","1448709865496288941819165527656027497417255956256092220715343453521517573634"],["14106470684734374461434787732197369340419021094959953022859874213814390026492","3579998096349650162948947743961967529745404339306352164713620792231032855141"],["1975778930095906346114326301449646155177417501706168953880156382849780728563","13536371705360352108015830708498937893867995001406666636097253947130925525668"],["20128552250541546993223209701657714741243240628976467627195567306222294915588","14081496496914262047643930086100558816093413769094665796410067795738624898619"],["17845832597382223789563203869591510549848176546549035732202387536784196265552","24206977241753874035163772878095164286739171484812382070570391038241894793153"],["10686400653758511935149942175426369357152476196550373087747423153238543464427","10399956620969062613243567297985644626603173321601295165052321772503144690066"],["16763536789003791129901953528438549088121348180227389619311623768578031170525","14219563297418110456341479555771338432015300103282022481562468893108187021038"],["21915234653380890943231342556463873608677257771758907512303805470279646284264","23779355424720571924265841005373505566560265417565367288218564110424083954627"],["17621178403953814302629330588705068314281574283434399428025108868286672308977","27121571426029923279737244185703252632749411647659588389825862147565646509943"],["7352617641323497594049188888850438473853132523829467418780467472807471599276","16305754122011834232481749537485971765044386575190526782343503130630759744984"],["18150485573317292025504840040786414173735989530515550226456156428824247551763","13389736450861917868346344171548134967719615272382046539438467049641762195798"],["12624018765487072089569810260786928336985768643252085340102116379537498939549","26564585990409479944694328964622713790910725539288028296764056574046685660849"],["22477269920085717931182665516065730497086708004016468300182623604391641213951","10654160769488389411519761726991105942921031061035562409498786058097541630894"],["15238945479369527864672516255476698513938581486160835562569274786014802544366","1586342701600721792554533579808452717236482452882073874256341945792126136892"],["2675315329786472417818300141994459968621705900796686148082528918568594097762","19007114901187398218291523548443674582364875383518421171552388692388144223773"],["6559548965745894879649051466702119988735156332570467897490915367414130404998","7693753307187048263352815606028263920060985315490710930700592055780354992112"],["12040983958595524787312609438829054195452865389012639642822189117733710214260","24692678328795612040271047974092701266938230302691779502953740920376911686815"],["15224587776900479508882386679072041784715414675297980223515245429549252632786","14483781705316308373166465138170498818481885901226890365999703488166381288623"],["19367972186470077526297540281110468391489059193879656136827006686925337755258","902953955534082900424335402664024277639193307731843929859794791166946056607"],["28505124213582146324962633898419248441798131873237267739049932869645991891582","17289767205194197773920806009978681869938237276308185998760070849527769021160"],["24197934196519042718374882708059593666802133005362362866937398202380186478433","20678781730578849859219129978987610292766583949666871010692254464316346533531"],["1682426558393165689314483351584971624072768995880873570888019600422012836330","20700643926407709636481607007344734133308022836632214524354898840859884484900"],["28591036754024657816513075771129541331940928541841672299741701660552817908981","11872577092617068329009307842081236852895796416923639324529391965705953810210"],["26581072207289743162701686703136498284948265604446403363452233774904564759736","21071056823193446732547769900162672279297381042408661384109438769953037715603"],["19122003206940306434615240458544011399388716507835587308530727595632986480196","21369925713224295399393453927633604409068096704970866238766251658723997967477"],["7283620643301300532417272501987322253481722834691304452103778686989535383604","17284845999716793928533823672860326106979762307018788076407334912975364817010"],["4065810852409642646278970121539841014226439076027555225802124686782206963258","12061089610831466014347898293273141087577257808258034511214666380741164593606"],["7348098015411742678351522272680395050807882338619496559094754467126400824692","17634633059327913530004472241143493459361759981261241925043014801306024384082"],["1235930947744563640943743065096960520105089766339057771849913994108480890672","5860653294535491156883557349981803095834373112283649566231082421158856567298"],["10176593935737817032156147857777715845462647571161671462980890018932740926272","3113594003542155162468735916075699329580853878116432831214687934841552600315"],["16620877842041826784864965910765329600513317847022208358767061610839591777334","23754794955074526407371836112948480693270435794106240229152300565687881872908"],["13120705855024551389164281296090283393524174823018043412961598436437891503563","1341126618958773718882682098301774782105833120844555544364772371686841116982"],["7919063484542246010726708204466570945327395195347034359806189130601916055838","23151625143507711162513685385363576781661652722421780058947364526058067951804"],["6718330078881901127998018861615369875759719304600004347984361996720343875949","23378989859823028526502000947953780591744033795768044594061568320449969029676"],["5325570520531016874737749375686560748790900367097968212360025490164264424236","27053581883448351423852138826362596762220419837539525979395997653598591999120"],["7023613687970838113183897472861521389817879103682750733943512293349830203194","2479725501806142711449496709940427723957435303602435684488478814965255300491"],["11575146969865393250901656245186358695071777754818062547690368704060721901331","5447928646098990638009331271709617044018854250365313736227600483375277853019"],["18471363025874866439098855491489039394533407339995387129569150993648327753774","3819221173332585555591330957652623442840726961774399780682900928465491203650"],["15614327424967698374066125171112119907491003184601559335690937703650036336552","19847803820888285677077892648369645341542972003381849917095710957172703488877"],["3108381541970051058139958384011881749716876203063834051545301989023055991923","10421402115134037693609368961518876561046354911640089230670205317420795875935"],["4850585103041988948734312355423802163230878604880262082366028038391346173847","7673687213672088283568969141034753989062989571837048242044795638865352108707"],["14581727285355454179962981727660490856293539071447887162284666968534836532665","15507374184323005660440169711805285533249919369534535752889846449742092429860"],["26409601612248760281859615020186350452827488951613042345174957003538590294904","2769094215865591407325257838771527545837443193616783640956312859272831125163"],["6884660240861836145804981706817291123112785258031321555813206238466986294504","28500741550655890197411903304096664302184768380917317846942832593776582806121"],["12077209382971298045733845830504649864877278771754408411117252314718021250297","16247619332289726529312644330055655127484133603890235586031296492678408765215"],["18842784742956587946024305926739807395131662978017297919778216705269275835079","23855892259545342370323005176781362223005951994984972219280024422776878001080"],["4087526276374853643962131473928045015020702963227509305890408894042578487780","21012422716284128117469456926826150898632790791962348283056345277404076030617"],["8000598634680897015940696475209070089433310076759592342512694781144127255075","18160510841607415606278297353125223415088536198081674760523112107730146719568"],["24489590742789958767804018460652901387198013457715423371454805991520436540448","6090861881275375227506029387758563252548659943532540480001345018371458859183"],["2408486039670619208978130792038535746918398595157695172172765320022794151827","19274774318476297770653539335045754465571377520519762867934288088736319128066"],["5556261508830020144966145559192752846896226853446659608623219121894753835229","18090499804113152998521961100341620990955271728441541008548817385282860057886"],["3726767861331273881043618644391246959422733678410939065492741162969835177891","17317228491052164870294551370854092102886350493789892352527840409755240369872"],["23945617176527732530525070818075079416433705390998678737924468269852111360428","16868886968938087517832811921820406574470212249137236225659365762200243927017"],["7048247536052484956764649369536743323636857691080594670633231810129599753702","20255203182709241774403982957484277857042823739590362731934354529685744178533"],["25131276383313182125455115073640867052851260428066099210310152600037958517521","9589441603953421349847735871887977843179357687765111470760093469680191092017"],["10132470326700928141703427246983121841495272937387459771326081780242699973726","20702167919447184444660403168188685481331218735573268083757329374198478272853"],["5000693912963904306990500399042588732700910180686403525378945864526008532771","9533914125296652173550293951898435820217099051544207111222858342696396224348"],["16336458998110603838551477567998401588469262672282773537959191003490626179393","24504672893544929532262242516126073772319699577161042810209837317232347974190"],["429766018621812505273424554564126863038352006588232699578801868065291221307","9332265199115605589922378595793449920446865492323337488198655135543321524833"],["25045952984939655106316186155710013600884218970498459469483488090827246729736","25600309076512316698953985181900551055828878879885567922676554253384128407460"],["20271329950080284341451089722221397387650603799852188711122575559130272079128","26302200376477348369619233133224420407348892091138178805780591705096972652468"],["3910011775847359529578385080071258869146402747351859180326537444588435562717","17346849104837488103302764869825254981403191784910247987783350505997168677691"],["17487889060230496283720030187804600262192596961578326934895806770569959414258","16582857328136748980098312137048201343544522532088138704003874693012643813829"],["17907527708075585631697895201589635067837978126460652945450711895773016743275","11288087718762758119290804812999048251565198388226461986518801826224512694693"],["9214328892484563111262373605356953692869959687579751189215016671770379528803","17613725412582242325433593349501772583083845044423093385959999008607072312801"],["12529056471427658780979539826105296103145543227652149117535608770802605488834","20183995475346541691593171472666410986366444069042676352955532683422862280168"],["10227578137818831065502840493714010865002175645930907396120771706272962392741","6946565819783630557456956829539026996724590708072379852035361096974976373536"],["26572310928548601116532593223604469689768391017787124827054080555391598390827","16477005647147646366793350161013282827660981853773225208201700997444436316038"],["13201092322901938152149494090483699736739495510820217470423161839174953772954","28320745772215614117685901155411465597329438810983964103814556412156157071313"],["28887059938991453701599190763851728035309782540393609504673697791821024835383","19842648673069344172621706825621770967822230484369357693445290056760344340251"],["14916194832771280245294943658601235341058861521912331404789130017221527195830","15902801660668712594213849574449359581501862249648566718935079411681368242266"],["28617648333287017382676016608785757372056968644957801234512958714881566953684","17595118570037052106940570486330029610222392826996246060313135068844798655954"],["10967820105288516086237847125464129959471144491137924176346630564232147633125","8831575611133446618324957086610542407310157963358614085371265818865003460308"],["21366622089791785383512026263705209632092540216670343635790126079278230801747","18750452712416335934724128335688790332004777288096200959320573730247183157294"],["26078432568900865031173818362214855555287077036022632400601119006297651991981","2392478301852444182496119635279352224708372997460310557306520428308339179858"],["17776870207341935432393355416269476239192643939921040916724326874948261500429","15850449173495671482037110814863344315908835104914696798908639245196946527909"],["21271419362319292457957375550831209452346516278849318303951269420562801338697","6374752236199488583633950531915484233566810556004752794853210565556163194031"],["1725604931132335320404649137142837235047697580558229915873671532328190059471","13270982382520091611535205521210894685447332051331160000856367277281473045245"],["25632105974899375172925259398543888289330452849180094236186146616029660591612","7147673226046659799984667945031757339918673333723279286048345765799148048880"],["3604811236317077810607508138600355836321195951134078773161775959314798301383","1618303705323512738252261818568868195889350744161155949780298178135033347160"],["4772195927826485341469382284882500836831090385078836490720416254347684546319","13553721903921728553658278626683681044250210335983843085024052638547178269859"],["8120725279061790287232836169005355227883107572555564194863799578288722414655","18466540521290233086664146025765694178740577432308499670161042335650240305736"],["11733750675423337462794315587811540835913638840194671015577333913597513772359","16481400650252556231300001181656993170728332732395069960175113398317040123794"],["13982446765620152117289894400352021881723566865129882196978237196383469191063","6115557425872745010771684551094690783437977227395406841886835185371264259110"],["15847812033934250103282975686360747073473803258775712871818298484467477146838","7594316752688687082951350998017405119949470692401035831133157034048064567265"],["6920274582239478462809265970958049020303090840695552852018727783577455890263","3395955219770857487180845167296826957315724099283735076703727814291051476328"],["14552501721609203521963492812815393414174270822625510982433670448089447041300","10257590581168446282867821099912865878097095848258579203662216316479097516847"],["21621657426047188808995626113858138631295581164730370793119596750380098792618","15237029486621024753641705349516534989921865258445124607693930670432756064098"],["16267890979571443870853089067834997853541093189459622720119292460003167873354","28514289133671606105637964317727243335849575921874492483473282728057164036607"],["23637013993569516817121533502635371010488656927780552666404625400351581548874","27938835719515414435162475281375371592952134723803430754022984774893849532396"],["23616972075691312292563361158435872821612662966159513341909407049531328820723","11403130344645820875180279626872492667893849057082774579534468350039429886562"],["9640334875106151066320023757984707026210599086872604189297193985387723668631","16349900253130291598522246767185413005441889577434842925930868017851007154467"],["26533553633523951525713909697430515574666608076072830245092874357474485672606","3805968414842219604992102509766034102480840334845143289516713282428670250017"],["6654661063767775576221391790910330723922215824061106279202352651006336463497","17401403471422439997938849435360494341810011274243663337172772367658189137759"],["3100349104904485573789752190084380449037295695539080774514256159004488252449","27401976538788084064129682315735598752131166415821211238471545503959939068455"],["7579679309139349582261861116015234884734590532997769175270961379401780245010","10635272017134092390183488305207959205580353983377959675322696730231748060524"],["870502610190138092595969093287144376045384385834899352084874989392637264689","4647959999186917239237533982269791185781213191544226064362217757352811294866"],["17909779202620608630324623638960695402603573547245885747755368902516947750680","17722858853634616080463465182281622693708088483952742700932113360062844693229"],["14003733140585713649463747254873541478488308455249205363639816321254733339212","1620452964962674899920804432405670974941685463894483843901408314676986973024"],["4983914804331833041050434942997409630010937412361015719643333202352414636138","18857419853807604585589600606571444363270256401290989314506470005076224587802"],["18546495779611206369914637226541854754920486578064180128546914801517579979185","8235258128350237849369205035528240075815618477067962846895977872605207304071"],["20720986660553630461275536499791111846082817789334372111239491763100951313716","14714374867647700324112661035897896404625295267001269073574642653247337155541"],["11286164625537832223702996776621272349869601296776995971051983646300120440608","27815465036443070702858748060946561451407341305503787091927406219701284936167"],["4568612746139856266104888656049612538741793800682900340749535307992075327331","4646414252082846006534729460913750155414584110149923576959744278935321581433"],["20328013004780912239228311227758957282358509386061047271732826698547303870597","519665108719480327106257470268814538142005614519739670317800657332249566353"],["3281815987103266831102033494359975182328912834476022618625487616975991480098","17450348437530948910871608131223409309833341443870779533733879113613234945819"],["9987516775689681699885529333656313434834151277122771912384855092514055510908","22706336190476625982264590029154209848068530492499765213801434317434741986300"],["2872291926877396768937338539343646781126856660741242720744492247438021512409","28674570473647856931685726766956790646218963730658644210384493812093688389162"],["9453493325625946554816159065110761678004619193048021143221885892800805286175","26383885404969105500907497294634735885596770646008112754436862111562527734654"],["16369012955182090595709958351184268515558421758589849691063383737297140605308","19127632211008092909901062828257404932485020651294316626573011264535244314179"],["19591526995803435131561152223995903500092715062748363516483973291520685095071","22000582352571403230139899500535974707098878986869971412586115219173483233350"],["11870528698748416066583650311909786760588037432427688216609752485782298607773","8283932057665140679795970310263427348377546863840970338870776134806250172339"],["4973953798027005815310097761017951103140473403586297380131706286858426617225","20776534722544772637063714078299998668526811438187665667674565553156481862845"],["26677290696340269001984788590330127253442224099712163544003362474159722269219","28240160643317843618670480264663691595749445297782265199490080008100886177252"],["13315668045179240012945194884789654816665361264980352330849733528102829231372","22033849155866683091848439392740014051928843327669674701276995534772943175963"],["8296933477195926525221233515556675576590583614030357065671345434361769168517","4780411267353446410332603885552530650973796725575006992993579699369887450018"],["16921757163670163167996792327919625431672403555923401731608019513560501748570","17267797755819409606581483179440510454272068788311809297880690705766299656416"],["21252772935735361889898683897723733572334282313377260345740697236213247531883","22372400164662242839035790060791210167267757593456255477441470419253323687212"],["28436079302279735652444494196448373979662212999737421858018806001778014382941","19413273154324068427732786775411584945687724171121625601824294350470680814782"],["5244305384983965117697567201437455761865631529007150512122186798355851603971","21196401313682918084588898865560493642258565279925931293420766476259250094711"],["8648752855172533523528812216171392558585684973899908779575616628357578933214","27840731210471930503709723244665207358731028911411052253756214657345939217870"],["14334664994456155959252266575633846665595436295924880220009098908138467899822","15445961756440245606965132996172817410193968882145680455013207378950806417420"],["5046999331943575160195577475670136286026138124037902606982279801322575504376","13305058886401527684471320676707303258889810604949507170692317124312911470143"],["25350760762678632843636193225148021927054021483689745475124912954525558675977","12556041046494357682236265317709562741947526241886853083202595550979576142953"],["17389812890383473935663061654699667276689799666843834087822930163351229009414","25943445208417107942899902684713116730867587702183165529811528094697075111157"],["18396172669119958662441599897098960311234564637262428251845515287477938261930","24784084661866328770173156766478669326788318438432425954201750234665884386206"],["18837830509165622283928107847894418951012793115476438478237151562164219660000","17146739225780107817844338583156896459484943548771929539766671643185308465066"],["3415634425943516891705328681627438933907937766079696803253496578028300762619","5632107953962647154729996441816991741108788043067693118032660321831257053353"],["4960075289719507462403003779575792708887983093326866286213337982396084304111","28678216380061306613503112189143915599782757336268818517320947037656869415558"],["26789850539670621480440599366901919469902735048893366857097562037690605946487","2149635670480628803715699241275053985985282329741794735280236837212387941001"],["16520146949537269711446826632271357165236084482746192888036219940481615093781","10613182778324472666767748486204365775060508380894793266926164849064166398967"],["21445467372898480790154424039091287336177032466455911354968874058213412334333","3659995433777489838679060782330621158650627220247176408696791191236469880593"],["28449648229413643190606123753988985032985181258095382578146767324858874812593","18714503783190929242469438395210094015394849640610029553473666263832775330639"],["28782097857453583427718777606907669652797005993811211154645011339834183434127","16816075662066819040714275454571402672266614058133900024465328674067058450154"],["14404313120409548779252559370158848417712845876492075890976734335841773808216","27295807783522237053920403137149399677086601322863226763831980543985349141726"],["9743047077220411079551049524563454803813875890518970968379286623965137738431","3232957857035688993806960454217948591746913404160730254012913194814031225981"],["3824954467529569234231583557951250982731677291228177043817643471970938161797","9929038089769391687738027862504870258775318780064795813435075740382272372449"],["204581298408970520263686895911189695264490168194287273965827428893307099187","13068289686895111328337799104288095568593446844225407008637573715510233465093"],["13356788333202211542671837376193649817476942348137191697693927003948981705436","27809053051907584465309238237520253454434068758435546371816532551930167345326"],["12233317378353053893539284345039253249281264243104739735092044229883983003004","1781851424936433305923967929883689644053819167920969530340222289878071015336"],["4525014324232363336046390488022222546492810372723820448690156736829006408749","2650517687755244795916507582929591437978840921190474262802255424706486325714"],["14950836823691295713204925718271025645186961685186095916219538660808738289004","25013416797362019385902105326115638561937807783050549872672486238338701507479"],["22546233676264192792266479806035773861255908329693627885680135449061500707377","22820398837269623154995427714237750761274848723832041875866337079775453105958"],["8700721675954165234920231916384763174041635218405271017696466697550014980415","26973186802849792366756920649434377834722267180490405519683792736553888315212"],["9946062780261761608933358414538600296947686707841884443189503605047001757259","3407859409999510102126808128103978662087858204875938248642178835947743518425"],["6680428745090205817465543722260403422511231712532809834927622245301644624054","4821106502695036766335121834964195787085343622183290196994676253653568828166"],["21778308381231584735717074027831377436812746012129933112296664289048313125692","12257673482839550082417776330919672704441092602450998936107155469013994066494"],["23000307332210819317738061980945714972022240392458728958874161791704624765608","5704699947528474479815218732052664859821743043289241679777100477496567286902"],["8938221617191021471542957362985971401380519981129825367176167144489041243228","7646053246614504689552594352124251196257433115761013595364035912556193654757"],["13768110049504531246790163629619434162835906759275130393933669433411155496032","21941798252117512312258339762958893251174741254481579937095079829326646110624"],["17515731139472022959129478970499856628608735642059377990860276501409504383421","11975562701169580380571862478442661244696006755598272529003296294915586937842"],["26417177494293257943715251671560260190461512514462348454468393111807416938507","2758848358882251160605580836229178662375524611088750100697124667970015729664"],["8517044866899883461761347041359907588104865921057719707867366110068397381257","589131928064442327073834833766398193870171938583465550333630076800756045360"],["22277428197024327105485519078389264870204519892505431270245163633877330777750","14492555393328470447797455473182317064901545466437655593717142594658716286265"],["13656319678988374079733912861842312285410578374019892595988908643180162735376","24085547317179890078895212296689645285036845137250355472657118678895880445434"],["13125922641306673846242762323675129211795544290228434844132741543956208266320","7120661741277583248696444914328856142390577629370384691355167061578619824152"],["21512785220771991697296602130254272529177335269763487540612527812795084397680","17085363755711989923797411627957922562295215657856876104745112991243829304968"],["23380902319159198210534542412983266421067611077672056214557060341434535012760","2411704872079563976252717291105776037417385652576771627920413000349139880434"],["9048607034694679429162396034348774075244777738712527692020461891637435117926","23340473520591823693522750726983248990271237350290727330479084815576318161924"],["26856543421272739727757397052252981195832252744860233699434274679152791031406","20878013054219933910939202567603152929205380389201675707074369947989823631635"],["27010361702920378726675126683478662965885405136132537107637379174273141836801","9300682371177201745729434790707975196368063048995761955201316796545229927100"],["1086531048377449163328671981795681979078609965152514433145530359964995714342","5123608570605326307514248522132491390859998493145698895952206236843618382840"],["15508998353381838081127866012859277204295303392048126410745515145095319246373","10174590279192795656539761056789178585069538921963513374155687751210761037277"],["18921310844989634977494936517768819648892000224532412557241949439918030704155","9241392947851890693641138626489309801469520650475609267114537852607622208315"],["28154796194620934050229672700977296754180580654544938638738780043677077031296","3456063474597528025054474585478604287778247928702078215214543959502332703921"],["14722058171000118738590474462428925063703309033897989536612194824838998917329","7170013828848518766697230659833015990857395816517930951460973649455480425690"],["27623496594592303869010328679061032761848683704922844557004348303155560175022","25825625242347289805320389882552789658167180745274900120715380932478153933033"],["3853090989059755493951503191361925106730943260000633601191387582331300813902","21347891290797009210261801625071859630775212851806634817631993308469097212005"],["28010763014542906823109707834082986703098334591335817540427144848069255098269","1019038149978252670316035750740066688290942721123707399226161899419234057825"],["24153883381143865617098319226518575161109096296920882018185464176770352672408","17758012721180305782298580451988286303899320963404228392414126755650378633961"],["1010527917508168614637531354063037003039237376697028832420618082008494357795","24426958443755166150331132586840919009320558197386988997556481797086949484703"],["744165728200548788702198480498978835572346697531065431339136676422276032067","4407328244101454568345742202604818378565281079532461524625856168984667763525"],["20110771279944606141548924789467013735521834235674049308953128042326251733945","11184387915902804778290723764276141372625891850767217785003888011002648494192"],["18966330301448598210895300749130326175522698394507352360373075053773412499869","3759167017879710601099472942461109360041210784455905034137896110551178159253"],["5956911887963950681019338960620614510836913860032743492317684101762968010777","12461252941478994933997168334746828889950070788270577264827675267624442941351"],["13368289344835365481831610022064865409600368384921963322499530122480481786197","11068773646070029506189204757388003148583887767019705357996974081409067069722"],["21432024990401374073246591910969699786573605367947969942785936658047890315130","9975615633596265069565714979868749337622707738822774610599996741913520420674"],["17119466105933433366619277142644679918885341793078631921743874992845203297633","610624737330193869793603908529036579802220551216633524916692641137930701446"],["24913394727537049867733296739433788906753898798738262152993702363271397820895","11205019781577155557879190579720340599929917122667079756527622661110498606376"],["21167603274499974167633654787589609516716177511297922123047323879071710453836","10655333780229684682546706156090575140725875367961558286461375864171932269055"],["21812205373144823436429770348228039810219160009478586473209825728068911022181","19012387492642952341282575853372707373194915800767308680113558750639639563859"],["896139020274155736500071666195960802078133519851931023796877535374369768310","10510669615808703757831388640488068400017352784711746893809081174940572289024"],["10646546670769592892348508735564574735861814180050239542760978465898983802872","25346921792495279658018907300496786280874177504819650333252289029017849333821"],["25451087373919695352173929357304442630472216827680326033244748197109365679992","18075099297954714864872148708896477207379254457897575325831620027366476783711"],["17064991005553427561344911668588504477025547700074275316252848068440481673554","1390286796620822265583029938479787182496114225855798406090558775221281146269"],["8828629085245205303087750290455293984271049808462114597355089580813609555554","5750936788263764316696359614948151207153229280076034013849860973962100796563"],["8142328916524568947943819265442152502275635142080255297630611825623769072726","19059641344412427851477694838213187787303364093224624249045809183727428147215"],["19339711105678987089648388151016143883145040506602708409596089840876100700575","2784430148093162366352595568773280508629183193892470416577117163435333465042"],["2704868861120677182406447066351437180039908569709821793150310642184403103596","20622836024114496180585548164834690760672309731355865230350993554244396666496"],["11682153379249909474401971266208207271025654861004691874621351797581606207771","23329473118340354259845647033593559371036688982329687002328629044817055146455"],["7724045916842467248835674368656155020470429265542464785697639493544344354028","7801666890651804832769495618894364199356117563576998368728279324237571610654"],["19817481719524818030170744807048521224776911669066385601759633529149333157788","19025613244378172919588969629094235640870733899554151645713433021351416338263"],["14989361900426727864208927980225431416034360392612587649642760918625192789352","11523519233840193174522124715749388184560474485425787867385583505356890286943"],["6943807479069112802918666887775916461271495270556878147816459717111616912843","20336061429596785029287410847303763990700021031371985065421190753804577708277"],["21043753950743027030890587780361291687938779812369132192853974086427493130904","28463720462881537899303377842272973114048060782193260999979781728080857819413"],["9257899603731186434926580787731327050233564027737545531141964041327318818566","17205652795109614958142103710054506321541460661978415821349131880888161842784"],["12567528558941792732601989270566745512024041456287075020205084073991060667935","23798438356678461187815092995902353756013414849240930691208749389452493675399"],["13783418673249514134451505698540807017248766238704199883109223244171147478890","26127197777493667234236723651685683164759818596775401866728499761142966538373"],["15924474086845197472566930709364011804614680477123706337644730785570149186574","7898218748937457451748895299875040574860948775169666503733635356955718794371"],["20384221922954368359504669646020946275278579265232711388471434878081784444566","2951598704015420334684264607418980331284422722157492389234151876333240360282"],["12638039177420198481342705796924494418407695273741878960089074537617430130946","3708410094375816107449925817204868310842730834560339971957339775890702147931"],["12810027695710710636079024201416434931138409287625759059165384253893604079198","22493354287858405132471447672661051059698009805045758269294109704828863984589"],["617427518613903789160224527521467384743469828230113500958463072742574322298","14691887563371887546142673297346578374469633619099133815269715860091254139004"],["17633834177661668215953749242760490988984745790613158335551224142252808961257","24991984521254363357677717052877882413026712962082558591459596401887351864626"],["9632021460320741073609335237358934249994040951306224820023282749369130187366","5544009835464944145669623580783485617745715342138445224392730805943127760657"],["24121509721398363555477167112839247330482077947177584163632665675216135656152","24745460005584740220337946310105487518891574407990804572011313168498493000883"],["8503697377278448735137750845161252876182308616217541963625437979127268722448","8350624492475556860642746869580663817376381060179081141375471970077280451871"],["12184516936736520926057884173073260438930477902957313067844355958485821029414","18220045081562731652471548240311481998995761330711189647279075230628856863521"],["9324709821299245588808287288144592494581628977934047582540603900873308822909","25211755044254514948457880201870920839911380752632560789368650420846233075896"],["12517595631301700530561201916046540199671161696083557080451604668135787277120","27339413800774691338522146441670909684110119706542802832408665847764380548201"],["22150707674770916303407608960763884039026928800056406781155681394349787956829","10923074002873444452508530804846870960301292808660268106969054382603349813107"],["3158417719642979918135217497725892480198241195073763055848617968196717168091","21165723427095315327066898464640889244841342072493710789656619165784052222788"],["19227591560356654464547715366948532430236604733054472567823661711204190099913","10160737317291268007140901582636606782155487915878206148136460586951896649440"],["20562753249115547922456418732063047012426924047533700993096670314509224246939","21338146613005972519295995809326582231282212685180884253323196880365053179667"],["10835803518816737603333991313882052933594648831238298843578548517988102794808","7539714689474002992309805030137038333494623867236708409716740888234824616068"],["26721682642083824381973155468539924404324377010934499742842891675104257854633","15360316152820232476226982344713764900945901184084431721602693860008479916777"],["16459424897451734690509859438015479583562794526624142268731353901978290784202","13858120210039715629064039070011629348336701849009589017264485063043355282825"],["20187542561119037188470133848009188022301880732081051605505550733884995847569","18903714327340390622266416299104298820188268905122156352183647279355398424187"],["22155573366138804720013261636304449680651694167495644450874214379524531393142","24421423753285703009740857268175245295298487426059253458157099378070338231634"],["23567613053361991476683417600407648736059474008220303601075878840187407519492","23068404284362525909282154010857522847545082220301479978929598333713607528233"],["7757128252678746679039526092616866900851402828385078999914936536709502902691","19620374107202587982609967838901486467883155897126969858869827229591080310993"],["13721825051369847539208572509503346277310510705786841410699910758172711846364","7767768236941644747373063073633606563777218579713843544251223348787232079237"],["16078714873261713177927240257485597931490241503381479593360777262571632648139","27486877699247129739731013272993776316684207013848723605162048318069246538860"],["27301023754870368841006764448924262294394742470416307626877239625688048652383","27856678656598773772233326030006726788327976179847436278400877306789509380784"],["16753227892997050091838101582693910469836574963991546984639550857095366376845","3516923693549471720437004000025087358690122019724310539757485215317127040374"],["22233153082685466409719988621494138485361017281060853284651288031006893304643","15422840520865736448338056050249925168363390821204745448260003089439754235695"],["22445620588432007635401195958638044383290289440162056800289806624008155008197","20327691032469595556995808623068783052945839417704623967546886880957533550230"],["5886903705746671452768550559013462090919995995787709634796132219817531438994","24518446021086109962752252542187341264937309567790408064402511304577113596521"],["22798362878526001617075806385147823253805490946099254049804246523328573898329","8956677092864760717702846481323172389687623218145503762070476773456224080227"],["743264075996681810209006256646212905847521030267215626435708535399792986834","5402502857911164527527397862331405209908195110370534252268504098560683498799"],["11946122758623346739525961528592563456444189658264322813514626483955205591994","24915578513316104315513373601006012188799579569541374885181578415898628947597"],["12492318494565466859414278381318633677418256326538988793219719042689073006843","21032993780538481139632481960751395214525221892609935072644634313306103261261"],["927917145424528063452076071087535985551923061732534870630143005330825085671","5204668807197500113785015372669957708881430005710933328581469163977647534423"],["15348917339055801992040551656427177420410761095361046280394873129982820149877","12000472519948501188552606298103653171822000616399841464188150356963753586081"],["26092046454555593367611507920691225957131889830008154502844398563013755714391","20764181970079058522122135085633234418404467717567943732968126593431922316022"],["25263136181377930826545185256672781141900945455011068623797470802214798197582","26218348256674248187150311152652258396879854697836047486701594381889803815233"],["11055969857507137884283691725412977940295191356221618143315466917126495939060","17178787023608469182482894905511308776132128646978334470609844830876012745737"],["6494895345356629399905566538046060173694652162006461321892389901499402523279","14813751046884312397208799552299405013056369035799496960590314953008502168204"],["8453629895000809237412112760102221820426946340750394783697754766409767261914","25579771136095341134225835088744546510458225356015520893090185947088692431157"],["13713746372667797523780003869553711309855528396689753065672319635233134318656","28428060601395458664715241654965446061869351897495827762772679064062842326805"],["25490570188609999457118648623357770868076869473905852115015034871874902937727","1775550440430653988892229989202542527758639560583739772986656081785668587444"],["13709359919375254540410589997656162359913283710143112302430643923522241148442","10521650437468802724980303746353978796799215180420861447716423047404799627182"],["25243265657648420860609607437525714357760301086383049494170953798245540904332","18320461205541055972028218352433412479933720353104982688039561603509802667328"],["11370512772924704102705414480169797850857815428105050808728321915119175879818","7582872546958462628489704444446702462155053965305679448888311671859374235472"],["11603726412787989451336593646554943077284892800471221220214524469667165967463","23137427762809787566471929486608716467719613294445860512064799756050720494655"],["1272656087226623417305087461203125361140732950055600965735820422380107666700","17050398943055825116501092581902296000991939404143341871460181887840462252032"],["14749674275782876290496118271615586182243486120621804518364633209403116621690","9810738209169624623186380002218062828598824748075203064151767930954535323439"],["21074457933706924782453621213476074608887300418895890649356114527822123977202","28945802234747033464295040079401313260079945840826763496997594673061669654446"],["24882584305178388368958034157027556271153236246843192655580736598430233247466","17558393124463693464483562101624361772583321559094765461929377586522820692191"],["25635996859602400676305730765571479980325890422128852563317529703517653625254","16121657521856287153828611854478356411413218238117999882516814165977481590695"],["5736498275520614987099920513453716749551205978060463060309402630699104124748","3262415308831938266466549686875789748123407796312818973415889803724557986020"],["19018312636345235841695126635273512832631994220264490103992987550609423622372","8353920422315485685646998196289484152134663246102574147878594209332826871874"],["506999257848105021533508237238973234066280912421743187175682155924280584836","5188379343708866357129562417318064557806641330344252396553622484152137375259"],["11030601944395211769695653517809575487738043110167840666769773908988200944772","7874099677864107006821506466139173644435858264078877106833601045779309794239"],["16006685778257092712513198817811661285687977804691786329971443310929121147274","19836818598839710171128225226597927190408211020286930229770864613391640818825"],["17404936404289393016584494982092186868557666936989509838370416639610885546900","9763128395149651398954291094642636567205299015104936682145629148705067021145"],["21947610826896008100783861350265646976079955243880158837967698737717487389418","11419381663135565501883980522689895219824363792897703585102323080875606082143"],["21064012990087769650635264902872245062790938047280841492712449312126413976851","7405129399985075239806723449532188435698152762336690332549922367921383365000"],["15176461246043793084706115560516586582157862475802774413236449509838582182937","3231823074953439637221684154416222942693980540645530952721724874036652464484"],["16122474037411312605780575661107606790746566343579217919767511068146958277390","805281480107125600688792941182094713490242948973578384985113174319633498009"],["606488685859356561955166786690379795409189164084803506389188728731318662673","21348633690799128558655184918016150712072739631830003661152670116782081875188"],["15387265519610030220758068741383416342784804626430588790335223532251471764139","8719158919147770248405087364565480149822412066921722290235684005392933110921"],["12633992066719990966044262066623414133405841389751095492441370916355341628696","22242140715445979799198385908173837785088798428806820032811383846063617794400"],["15905927313034573563163717992198813605026495376291734578746453411755197427837","27458856357933448699813959872668883609528538369991419285517579027342375122095"],["7247861504524077240904760373338677238049744011442215091634870215973221008107","10368225914483487981857732733391615110573853484967860794786291553562840189516"],["7667382635370555488108968934181914107102609717469999051584470035105360248791","28392131118389077759177098698292243610255171397545546054982064359203234074310"],["19341298115082421229873258980193411718639097840214408490239931686010566583943","8855200889154210763049545845427630277153113334762856659345604677015852376237"],["21672246993137855802234535384855100610936615070833421954421971324437783908674","27737116198722343834540372693877990372905123295977132212494309488956125889471"],["24523040146925659300251231523388512360014849423214891035881728024165481359972","6766106233996279809075125362920707553911112041299497070458639597232950743887"],["19705838424968583222624292774045738277724881815504098095277061863475180989769","25780837007411809261264299857226679205119246483830495975787828471328895968351"],["11559839675518499932011712262819895288224876630599163575851049912280096890047","21372625984455679013783029244254141376106034011003387262939714784581919746790"],["3885582173865276086872760425877260958729823514957647246473826551028589017063","24312816138957825118613365323807667928381393786403680794606753631784131140197"],["23517271248443589825527333814626234764099672763632671884308106814105886346083","28773218102735585001553800600110439184515857005056018984929095115142123847675"],["8087945379570268623559244900624802138829018680855229641252953942652480463524","26995755966427907837528669567194975075755411414521099613506417721517858816961"],["25546530300814479718096628759178203951357110658402015922821891579960327739886","6700684688028050388644654998190228054805014297913784433197046693392029816741"],["16958297021761434253722381295922051283681785806486577166049103283985117920410","25157397699489890067454891227136773245957199825858059628307430349257997517035"],["14300312276188734903142815054697823328696395010753317291553537642290443581246","14214505946284866261063919940207154908212379840472264299635372801713400901615"],["11384960518493517419975404955366142101985838306141159237942501295696353373125","21925711208356607449407592637396385399590809972907449600267561533804015782774"],["25012800687490579631237211084864853637022135966308634000058614799027754172336","749928711971786825992111164808347755284126368696682389939316950750662728377"],["27782244212850332946861097196721853309652239334068758658689519127622469133124","21305070672869428160679926866521448823356455692300889197195929909789433038329"],["25496629433291315404960288106472775721257602269253553565976487948442556239709","4971119366922236295747209052425204462675559375023876155891144688630667038101"],["16727631744720883095408425200013664459281881275713291816820751372806904226294","14459843236359080643696972272440348204706984066955969654758646896948069409295"],["3730251568314809268996144157981966744428387153947029992738520452850500827866","10272167306182558292366962543749462993818017532482328107391607271691151655640"],["2919631855219873381534186342218631438784511789178188021432926443470477522841","13240706327767275853997344831785938215256921239744136600711022234218638909730"],["8983872642987372245476849536556686192540913817612082103532208624506455319004","16798894307835420688291168364669952888104156412980825596851477160606619165572"],["17542868405273877699523744121823178923154380693244526530024678925041468602685","25739819160118537828527386453031402634136204480178266354117800351080867435805"],["14943446185194649158886582869040947221815748222183990327777521875888681459987","18685366732410498373678941223177119529231438078313573473127409375387172446026"],["21957083121798803233514300368292934401367330895800013327508881978554886080013","7085199468745321033335143551414849809791833758205421765502798473857495043221"],["308348607341156544559871795612855284151986064642906869799352475225493361665","6013672586980093276929861419235436931195320209343569588252973079035286621161"],["25444275617460088859262881887807560558633653251973810474422331201245196447778","10501201593455549647090080076664215625875723375483804766865274969154101386526"],["17440755278198537245445727411437472674542837268638658380708787007718112473424","17479069045913190875557528623227373993108269617512890742287414241250904932939"],["20641730682913307290252974819062208597924493227135936625352245081889413339777","6867919257490416035820242230416338808346909919530603289972656769642824218497"],["6131815077254289111905801404538503241501623858845242842722256846067730029820","27928681564234823060803386939567614941980172292760068913890377967902892678535"],["27017287100477513350952661385669178461160362036346276390432341807139324754958","19751150488151772058797644300496332121859885817233332686148051393882756734504"],["25099669430773151586450690897773330133572730763984007217465074436864008237838","12000834004149392889671264897611475733602719886225169066251179090306159817034"],["28855703061977697231951315476096733629182274015997218280001000755789132456655","15617205178326335925789311272605809275837554186329353464776785053145391040954"],["26660947338327659475210223854764234671261603553650665241047787704448193254092","3613154695288711058817641072320695261590950729525849275347242119594980229826"],["24022432493680545786565387816545149348169865951188877348815570664169732574093","27934248179605018892666292015087844985305972035269187280726391929528003757001"],["10901998391989992123784575305760841800195938769249220248160664465219161242101","8164591236641028360302066707917930234554161086156997988581439825069930822715"],["25920271230288570172416753728480029091000862373517750633556287196297809797378","19339529232590829891645999494628141861402248037794691827195515254396118061262"],["7709217797550320742843772381089170747390036650235589385755370741179333608174","28038370217117179090770561309610682502504845531375012505618902617191329302844"],["3949115744174070987673479526953988663911510793528751029390124502868732887072","15141893979102754887819945440880236680805708948700806748110351285820431882068"],["19808140308363286530294732957393855356542717041121312128315802185146046145820","26837818512485443440927214595979636536096403050094276468760197488484886841998"],["7218468021903483291521331896279136516710873347262496779277117157321636412229","9746967503216005739187400236123785349151179978698040861584084675844560607439"],["19482168338488779550915304332259080422248277923025940257521513503268478231726","402154643935951262453245536247842280736453120591327617556260350466179751622"],["6005658209431530379958188869985840820202817955384534184972844645005962976839","23435291288656347706307478456291629418338558155638873963487047145282006192996"],["14325803564848594412319795855588273197503893522303673871776381082152215403032","20860243852722143500373086132653097050737682063923355179965860938316828541728"],["17519465751806280064536181061463489866532947217625689198887910846826288584738","10560993449190094296708508800088976165145857048059123629481727518654552235037"],["23437934835310467640640750938243574775655351786062711455366697698509049300792","13009922869437261216985786616596207507635170289209553029841114295356022211114"],["11217280390848243162660757522535055023792255433667456557887997084896347064148","7707112688297966952793054420911107947192805302371636258119179082262930520950"],["28433791247989963395564986239404965878764945440438053216565115485539801019454","2442755938885316964054025939797600891986534218742778404753162310627651565958"],["15953977125333912593261299300300240742984312135183593244231267046231675026603","28689388910110982515435576434281085017265073447660706307249261373109135576958"],["14568960699834915547329396395974778818093485801085368542838797098313519238194","26348975662216730712370930610595774325441230780443635890026894418848391266050"],["4520907638930131421173103803609129786564440438659288780058596194891494191559","20740427825864100409524737516408650411080345425897758651451919139989721116974"],["25273178012680325666449479861227897073779346216545138321262331404485984448571","5196203613011852255063644244878375703845857951110249492407126718881935309647"],["21853433363825311546957253792602096272383164787734986741371698910315711463032","21173316842373404230371737661625117476066810418195658968714065470214816608734"],["16512969569951261255378395566246489649217092801943943684428925340732334011725","27867507376477503933020957868898093296785179239504819784838715388112980761987"],["21408109365392150850333995969365220961684336867950860117557032220781313626476","23567738826054439910144910430386162414352809552465728500487390471682692479188"],["4148588540613453638735469355482743803961854354156707031874781499227039757359","14946457239417202961935568266048271030116687919691105415826152413865814922847"],["23690194994801325164724269675304657987349802885695612608617912577612431114337","3875415560322522037839539321736241433055561098206042497454879679186797287052"],["4749249141027768046605315947560344166220259544907851041220617463586972382258","12653715055352752805834653548596171918559966557418242241935703211836546849170"],["15250955956670434488045475986056786044090245895012484468147479081590600675744","26446151052445483821355724688380519642096668218062527548045206194987942387165"],["25145664001882131515330359768005441334970257707763610695382734474955794093307","18774337818791241947272827384698344350003657876985914927076616226531598096246"],["15468526056361850330897218001673762743415005755903845864346071124647676460980","26723072549818878882222711882700590452720448854024038872661816048157172207369"],["26888332020936487610037461421980587384526840809259320586718885984177726008606","1891032301529718658844535067183257055862475904999491057395024906684218838134"],["22779186389510271627769471981942736762831429632716028188140444349512878564050","13065733354189286020741876160298030394311100853316294578722007291273518660478"],["28823649047608938684770774885861824890832508952290153522312138647458338739205","23274455187925425945222982436577057201625227775190996757468484419218882053368"],["13673481378203698830090104126852839830368424149589740443382044050650205080036","11772799496515308498641022201441217581544623539737873968195356108975951851881"],["8212254621426452172724944787336535753635057310908471862468274283065874979261","2598999803256633341385159632250956808373477061750369677423312830630075280312"],["10134534819135986853402555938678127444188545806346975169579189724576195862210","439710185910367398693362984595711700843216043505562293175369639460199283538"],["18914687501130849264999764533984300686352249547245973390548847531291229234445","9643201804491781457516755458665749755045810112909382016643698674127239742824"],["20337108522119499912313331315801656512317790803306700332240604122610651510135","19627439358431238847075446636845682325304333811227487042548796863329500327607"],["13094939246844364483166427368189012369334203459224775656349105764594809791619","7735638703041345110348178705947424812490586568964945684965654813823553767662"],["12348236462488368461875882522710889510568419952853558004557195760494466557430","14074192469160277614858356280577480976843912830589551722436792775374985430079"],["16456479556150924367009823037337226795388076881991441038545318854700403034324","2805850988209508382508407589820532865968216615444436408339940894896800914369"],["16480500355286341285201965406644969452927228459470027650422016747993600169803","25275371086211339439867549631687218456959918294044917923862834706306689969115"],["23171715138609768451960502661808434075138221181462269721281407142471744480508","26191938620913395801217480709529934650934758767076645586400448004793066726232"],["22427304603341467609136528517278290819637648340968464289703921620255069737051","15211109902581489788131527182983567111694317039490761736383870272925554689381"],["1192776944573140567853118455802950070106582984337771326242377465528223865447","26618956465443585647936607169182878079137741459823634274908368076112157728433"],["10123840685940543102710408799657145384972128279685597486967529259708006353767","17801593398224181391901378649601767002621491450686248530856188949859611132601"],["19924191899082760652108399341467850011243524638985235643813929116425989009429","18388198037292353156314134660754631970886565232494905087897636459953400783158"],["28259061733640949604505593006657494400818275268497919203606708577817314659204","8380579372636801249910175691030125096291145389229134013656373367071594717675"],["6471365443748075888742052819770475185274202132405192873440059846994568920089","23793251460554708846043619190304082602089067640971949222210371544777730791797"],["4125012400605292626051966453030521312603402124781777680902400788730285345984","9609100566502566406937541306664716903503062410052145144525710379878471241153"],["27245308336451873012517483860498393666634062785036629116320245744943272358468","1250046787648317197888094036696232167016987304645689655193734002238733142569"],["28465351076475830711336131830695493927088266721084049248289065589922124226081","14884637526389059465741281956470538461079113391415650029017324622195107905028"],["7240584170583076622634787457928070431552858231007667692184350866266394844687","1543696818911071749785248075535930990998740373453664137366968434531946382667"],["9868831232184584765800101792914194438469171829963687876352158171179186866308","10533849811656916103160310343436999863157268346157742134183091397564996573184"],["4500963335475464085199643974043271971710280122449158897882979321682563763232","5432245916037196193009913288696668485073297784789269625735279653340190126669"],["1207855295875296016989495024424603368051440714351176175118311066704987739345","24298955268857412206420261689104695351804434849137297644710230524122839934097"],["6128842869777154261369463629573876009819646183808310284431222190463712714372","28295623981968617444862318892469126730529204189885395133961484228668751051386"],["27652118406885784748405981356700525290414660347408062066442352969021240456686","4527802989711706062646143772747465631464028130827985820699748790357771036078"],["13809679041936632968080357617249093852610690173265333983051280807719863973021","23834032687503898402872353174911445284525139729870696834707453034893786646823"],["14696805364474261906802619197158177187697891265902076612696064207114033300185","28145129241699188923832979759235369825881330832173911928836320032447309146601"],["8903817491405705739944319565608709268432614483744768102806240081791633270638","10362533634782145198049578826365590932863852738189737835349023920734531472764"],["2912582184435043025961599733881865708174710154288083686800561562216044912985","25906358182653411288377759292848902101748102516305267700034689440913162976260"],["7938012402115492341402184259792011035199275422736070489135432526943179378009","204965210622413766431306099492671096480649480997437909066331562571298944406"],["18549501266409988032325128109987457114262923827096375071567489214877786286255","1180689323097898319612994584715713840372199312021536686289722541647925279820"],["19494108960923291952235772926641437061196970913519537748314352620156943526521","1975332902128911001445981137664776072791164016998098899610610952914368075911"],["25593606192473663368262523634042008149071056682721593329669136900991263962674","13139353475941305650255789205969299786597150332607442704534144584986146068763"],["4893089854613251837381442345741809020530815587201358204457125050733303764041","12003081423249362407620820141905170322165698528335756887418211045263288131458"],["4424300109877043660480671564728029193744235551610240079988550854036329257612","14774248679747160458248799049504999763993675635210832941489247367748480589464"],["18768512344076624884060806970001355139260182514954843770082774170025975466661","11457005626006932828592265507747654931706628783770530850945670353026308366889"],["1981245676476645410485291410067279007338998190203211122759255087050472980928","9049126682781274328994755989048272987382448930478063139158532945858591442728"],["19100151680188643625634802808906197869229914784780923881885187126779943558904","21967164992951413854771994973743963209662408042233967203360711243392958063632"],["10721236135731976466770152852871215296413298604131839034857384089797826880802","4462147160079930560079699093709095032043002401945918775711725347784743774102"],["15915003327501709630724860695390124360154241883291649707718808609800828523625","4346525528459500350300846888246094582790265430421714988194358457985314575950"],["22526368351026017980292391142816399450297983712638973039483940701208150832782","17436574235124340181215285152556144130463187612531513667486211980441044998195"],["21073025209148767014387491263580523654077736347050611986421776229954621994385","13743941065001119693828330481285920407240499551220850958065388654017361973012"],["21462089160594162752884827059389245774892860755917176629305826949605748758384","8961547914744870678503454589413224056654804974484796776026686817353439081080"],["7762553131309926003084875005407282116138540203452838371251633619456378968660","21352540220861516685014880580767060788596129166995924783310951432054564321394"],["26164131064917713596485332738013485972024475107229253014215954718267103545343","2239347665896149114510641056239272971684186985159875652837514303145192129510"],["1312806638636102988962763392243204529769382354301216094591085711868076088987","28829119690768534452369753115228159445167024296083606353560297346938925075644"],["4620895683534244837476922784956254811780729770239287396043522071623817347119","15093099031501770349573489791032617201641489263843330812311265087340151969199"],["25180140752777698636793334376218229067076731880713929914830338311166930529100","16231089925547069594907356577231667172325182247212661949329740753576360877690"],["26671317926341074643104512352734818577384539137279969856514231586581264011575","14731542054129405312515799319459474773582416604945506692066104447409954710657"],["25604348216396871208499395136971235122927394628266427925972593954086525655414","16367291923694763125467608324687884331510772345082965892611872321528419126153"],["3130658725145407622052320032071193676527782144651181912988740351637634009094","19178405986135535135991875286000921013464530903413169378069845169532846625484"],["25719125169589057860513500600255724681506965696447098907627734722067470223066","19463121402859040045848259589895510819186577426577716307412488664301943439014"],["24597094886709430127197834069907913955682608669992647085278103212936525181709","11794985338700922652127739401593766420211589403492600730931396514970986817379"],["24297362468460301929880710658451007219889599259313208417846742282455867648160","16091784337705755980685851948113707751651628416129519947185675519428394979879"],["9250050608721040160127463827127739582635329713307393688368017365856531134668","2817660275026488909020775704650186805390435646327831494429091251791918602939"],["9234566424614185997709148070337857447527877646828198185591368678921683002740","6126449365372111741201882846325079091832271352401323189574620916733006933605"],["25517270647490532009511579557255201476164451835550980667036588020070979231647","2287498113031528116290996493993778619540766379994287008869443926899287049660"],["12704122509790759703650544761033623258366536287974650313253375342604034434973","24187677000378411640049079519847997300977183209884723308550141388135105195056"],["1765950330964237442310061927345431693077233099330194640067098967236206567032","10543952532257668420602597865399459256404392509943740247416928673901478408848"],["16233883735177712822826963802527079032752500649793818006699566823867536524303","811635414389761427576536541125319025171542139070670200413326663244968464600"],["16904009234147938288019501163311869205488299512883791522317232505394705869077","27652423341075593728523240638370953439054387726168440932152164314080705953953"],["17791097723284416786795854111609579509588451391460252838170025063314002390585","14454989356660880879158154167487499143988608348595211567939063631333235844059"],["24375866196675969937218822255766128707681008755639709430971586922029056578757","12251379719376838903070424552758631911761428873086669326513039800760698020314"],["17921630392875982896528787485884099395267088111103915895525135154199453062798","18829587559670853885368090418533841481856570195914819850424800860965989214456"],["14671524932841674397828344497366243673678652108021130061520454077408926040299","444395945230347028678360241542086006828499640138094939627555247868481944041"],["1458786208208758455575068209963876580677368748000391267765451013615914891668","27954300239479762111538258609964451362252503898960142407300841770002671039108"],["2850172200409639237291292638111643356314015093548894889005636713101548853838","18577806494468177501851756568786986380479451660548066782554004742672073784418"],["1313807405231726217778698588551199165026110689356600228995531993810859335576","11848602773082155385849273694943643971223475031753566975189432433964772142006"],["8498482167960193662620028812244546570195633134668611104350781665585410726820","12377851786382287656090612423207904786486518092900442252096375167577351642674"],["24712106615848110927795063516468609993018837869619546104084442310205742626792","5973793581290021116617374633162504714845473808094910626181667593310018741020"],["6101515167585200185955684880172402446420854675393285234620250897572896046459","27668871019254094895284841540125221716204391789828247471150553894617938467944"],["19237548822650209944823093999650796877556427305821322877029504803473171105473","19114257574422381290325676136606431894733269659936249201137346956515479288665"],["889846018973942788337790904265176203308749247917393823272565303773792434177","15054227711868999902936038107865714196352204050222012087733083768898428635289"],["24874553063883789493993837556464223760335446476574236509800756257018033741033","21443720190402654727390437995065370274521048004356157609216782408877110951246"],["7682948386273827247291642598560894822397767606063141680098914407595592359112","2318950019430665944242493544411819883281471417302927580844828367859808592246"],["27998765274533243031863497301078748609225100727347460818971638976851408742981","14349154450206013742053713159257278495715116251942583428326785320346631053422"],["6731207683871728525526837962654898483050044929870811328674467977130178526795","19363154553630438226546326161512286720666599971066965937158201298369358998020"],["22954040838359850842786274672147341652575302209858623251362271738411099131195","10577356480218837235260687876083785411389728868581022209760374483124144725674"],["12236167171700263324029526807556422156365768176804800506726920311957503750074","23070879628361618494780269922432530957226902598031041730250723401524308431537"],["5746428674431868995507132459276207329934421014165670398880053751301724021476","10480949015167791709552283866447506195093018122478880974750314002011613300364"],["27475790097513057146192661665417063948513103210926992037972074256198877995109","3750460772367685847343707266060990318889540551856435174784032281856524593327"],["23848735107289262849245599869461494612438250654909801530406257151522519377422","8593678530418749674269662200463210845736559641815579674302516114421051181975"],["27101527477148041344701602566991786574514634977047025428215324418299013571890","27201426890016929701355610300858313615847441996240171185657364941329092160767"],["21070452814712588422777863340398509098507451919548562686840642073744454857264","20533365893857659215247669362408581191672288796776694441807549769681116697281"],["20438727527856784306532085976563948423401906638560464073546676778692400212866","4599157132344979260064778519628152552510281850341496273699483659752318196880"],["18178155883101296131792869673920249779870686018983995005664097794705685257993","6164809066113966446789564329415094317137754181034123230767702187672822853510"],["10474644146938061157806288988912359728190599715261607936448131513552286560445","14773330233384706034791692153773885240429194487598652766930993359110641282350"],["19093543018961443057572901117954635467589107142720729439375968906406489661637","23755455678563336712587754173863601222245764176681607231407679422752779447476"],["3661780958995949278964925737480046533672936828949426332785434800678360939879","16964886631184030071698175441607651765258832861581183573331468912798245577893"],["8922204225882615437372824767764827766552063864097488087393982535809681005329","19884746192653934380334392961721994663337931430001991984835292476550441868006"],["2979427606667476293385114807969954939137071452134709084593123504681828675661","26945857866456603944142488249449286300976204576571991422054810901115617727451"],["10378777842429638142389597608264348882469929998952264893358916446180449460305","896559568866066431432496441138045439208247015203656174095928737085955495055"],["2824098651120693900372304366952050784650209924437890210412036093056645367972","12437384497531609554449017130029772287630205591165212142091841199052805404694"],["13865626392265981694066645613649139288824946997702082444970819154965583262860","734800673468963078796145471975841543927617226551438164777792421785872330157"],["20139247252127248393233729669294572756504230151182873505158437605489698097842","23080268645250523576327245720108049046494172289025837402068772237369285719398"],["12624894271988111155603652703871098613876617455798421631790247110593926051450","26560479899410054441245186632933839653706372227776412133586426908791368303591"],["6391094178485892415795614071110437123444483357244913306503611457343189791786","16705510754789326088869865834563957309467035550905837719190357287023455482965"],["7575021743406853196124564729718219834544512760882111291434923963345079292839","22808262247937888671630309926907695180212775420664855344525501484345247227119"],["21549813491525381409125392595134848817533531645747723977999247867983697381090","3360747090209155552674644764485477468328718399279954734822581843743404961165"],["7343532036352052908610165997816273518420340386025189537886259618516305587869","15472119423935273296231764122387611602182457582789619136389350328628542817683"],["11580121485003817757923977287680411238910486565256468359973956426602315749326","27714438418355126727841225431170320693131170387684605092781329858309327684250"],["19980729994837552819434523202734530000260957886190259328228771520324362099375","9321338019787300143072658861047983490042531950453406494536121642058470774334"],["22282150080927587675227792036678031566918210364010143634529915173720029695323","23676623089376727055097480606258382101767257483694826619647346322717041019589"],["4881616757143403200496270167002558216302842709391189939532292483989586968172","28470991414434754877330180887243534291591603125575829125309574336621089224892"],["21655366477189691948191467077015235322813979858948058213948184241865988981188","19672536321700426920249956479672948431067456927351338448445128769669493705272"],["19361729411450944982825815976194136945805939431012318070200479639897673203274","6086480138671185557937221814397604791376957671209224282562789764252336448565"],["22113828095973646561873075110937757064375925203443807832910611344229098533808","15843134053056487368336329049516287926984460915319627518150294864743156318415"],["19320823916338482843602945978909775257037477072057920829595197602024956975495","21963738204392667457121869679469348135758504409516150900881311798465239651770"],["15877790901787344056613353781333633772698102767259847384462233943734532822618","17176153568867751798603587465714847733688685205766767346993288542523759529545"],["8177817349971173140156851391964580635597286419055744686971388581448472742189","1057911027109756799080137611733347987840915195409721089696398485323693687472"],["11177237268174256824056241016166615466181714868723490770691752976021838389239","21197000367632456323843491033959902658839514567798777169024409296439979651692"],["5925115088716548640648028308549497972243368949317500392791574948355426691901","26258551921190165322033009706234659804341646945443984699994828231004790725445"],["25467767423326524692628289533449115026527938982350974279228055483667124043674","24892011256589469201849772045182710779382038988076695303105554927894567656306"],["11757625278031157704766714077442388465881478599577869646034985882627122286116","16656972782872758413586817352486730470469306102736349552760827459878836067470"],["24034326843398558692675388042627294317732335655384441438941636477076889425805","9547749654039847258769960947596846597612763242001371295637028475617086733479"],["25343758516700137206618308438065446603553250399475519436498157895961260073594","5461388862083672800182869996675492751590724449588658366091216965449430273772"],["6692024549923040713331738378503240536455698474299173505854479693018218180037","22373806794888327272441451893086197178105369655820819571320254346497628321190"],["16485266699727927590803544760182899344287152118563133756433151290436618118463","1469916069255125128772248252780209628213172940407045355621317723609371736879"],["17879892711017297467545836447837977659735888011412087282109777516413296847380","18602288151754150345715199366887635646832689510947794606292146523709228955197"],["27533475070273347571672016356287958218341881885153878956373288260265545142162","642833778467216503027218747231336876820201338208784741727460851130619468006"],["19146551210580715735305277242856911276574867795832965460283882879529135177162","11440638294718449555133173934202022225349492020601994342819215025191834526991"],["24181310343191231829900027560285938501307795323422718863876544209225430265608","6516686965583664597003769660627623536420896468165192899663313975348404768618"],["25657051281056399479622457642836300289866192599235941048620739743542532707956","16177182052618515549181051722350418495302901498143690749738986253646246938178"],["4239733416316178524385691949329507635979094086733897273927307462293755943958","755189147763295382208140039872891345736814837590413713319446788713880453631"],["17809811406457265591106064226714414068213756857034806881603891730210494774419","1884851057233070041425148609424963815229993375281640117749415671676355697032"],["8639798043613669921685346916532736112800108662712514325368767972916174883432","8904164832311890690122150378624164831315369846040506472573940025326820128299"],["28310239972158538387536332895400346777389158589804435052030898654329633386603","20572213632366761677763944572713031483475915608883813948967999144104122850190"],["23712520604767990344242233845780030563530244973287388947508372874923278865602","24191677955806825508987722655720891091943030240730900628083504389021859840242"],["10904075622244752075994275083180035542903694210433990610719535471445913188407","6992499096219372986751619767684468126599733971666276547491137392201509030383"],["27208823931508332684422532505874366014704961442104358927191242139127393602671","19618029187412642266139777177935971186430882979539976798496421229962010545466"],["27338268971037596348624230330641128473678892694084207841544921573234999217271","16166300552278174330256672384346635475039051876490314674621091345663184430871"],["10153921010133105815705515964571272428627882259576747872721911404147935538208","208704097021524650581825440962704212549048872284851162690654290335216403240"],["6002140763032249316332889491987324542928632778829265313070603227847540657330","13038805258832118029474036839066766669923604773997381342795529343291725193274"],["16822624093582175258821692409410861664084504261603909369068337132266037838983","28706184842990859422938430462565738346991585519550017722619197260618600508643"],["14588602512200567850503731155101683047923685196955162970093032237676770109303","24740520131976975881403401741774918202202534986872373877396796627985712580141"],["4744401944720160433977203385716447005541052212956587997446383458556746433029","2547353494816797132833066945621751485311943370359431039994902908722645452792"],["8453923552048469697747803338856515203565329293680187795761854840836871760097","5010186551160189347821129263177557026411626056378777742044758540320637178434"],["24057355045902930031335524684587858813423014383790585006877520510094679074034","10674928303235037748698473160220778852052267925934118808566660885652350421211"],["14276360583475916239907325254908037538971549621518814714690769660298821327998","8028303442430901901403892833652307554552553510108065054076167099775321669950"],["22290959684924785351046587795460758798818664351232135980772290020067418420629","25285563277730577819987494922451345966456637838410067404040631182798366247165"],["25341568887204200679939019345769772810283287041880090225294570861067532761802","25733813146557410317728987531301514497640518136111881273103353390002466899679"],["19982376028918862300863743143192230483184907117473365557667042817390040184085","699658057789308680799979656000688464846577695015067017413663747032525171776"],["16891245540784524044507388888166694542653052907424740194389140196400868788329","22255020115806236940590329857789912242503116033546240438738208365731861398381"],["10112399002299597428323902212449826618840027463719990901265230595398669724791","10823988337706839300406911127623492517802985002258220989130837514026735513879"],["18171889894775107493679440682533633328977699792726847905936987290929188744644","28072352148644976541117063086157163986403104736808065307613729657798523309103"],["12300604808778055395022273459280707579866255071939141474843480583006227669577","14798181040886568457872899094733035613084522151777606934117496321603079160222"],["23080145363875814039953130111145324274609792671321284233627692438541478471247","3481294993713306429451203975231735006548806970428885585388786843171748471772"],["17589619000025360475198277287739257310664183652405055978745983068122036611669","8782573167019356363895088837163962558229368932509859591457947959552416705329"],["8128332367784765948247254095535111680502887606292816980171262261774355957874","6014535688349123177911788474580977307123272395318025849193638600859298173350"],["1835144003518830960734361247956233201671750803426192574907592922286836744459","4742095359744189566240585267604846203986042673004458753478277111070448045226"],["12965735696359700110019242120482844801057153973241359670986813863510117196830","25295781463323162916015178179142909597000478600639817839878753100626219987965"],["26676544403925636848201595710671383001362072255778038241351656390050797691075","7944865809113158887281272662365378366984921359379455625262858927052969875924"],["9632324613133125853705374520531638747627915716608684954033332736672931359128","28534409431889119975190507587550732913739616980959224293303816717576938928691"],["1297412468183527611301752329967895447089791982480796657276087826363471275773","25694099120462075265309004240244913764794676298817501276021172672973555229824"],["4792183534304173309906369671078110263123402260988547876636659769543336056901","9607649904309115681178252577335155824906122702176183631178880644742430383311"],["3498100429840874038554103014346239225967880191034697360596999397482838712139","5768754916132647412710278331800534364324563840367855366693966035924193306017"],["367851116088079782125608730657869897626170000839947350609027612839617833709","19794509148942697516411721545033291237438984153093366762906673049260361160055"],["11230667947805704003846683195627665378773425135880172633637816773967903907374","10794537537475365171834198155457734983851787594565770648115078764590193923308"],["21649988235677429242159983660529344440106078612721965416683689138440580356531","25740945801739944190491256443624140507910486947830770254077686932412930093204"],["13992671694047394249047889424549818192191097710297091406725209916713402168493","23335957368136870770944987493337345593275677513855426769001261038690258794039"],["17597059011889370706112126920741321806881734370401876240537864071349841000645","18759472718671131635289539691862319293737286492610376934557713945314936552708"],["5968990376120519177301880367271045830441471160492811353889451111930033749929","13354975421180359242024063912431935785956557886594698884096664495028816158041"],["8396394459535664071475066284564819839537812814877994586207363177510378596045","14257657407236112871258963089207705474057110788791918709583871569314501900821"],["22714394290397721620167473299916487139109020422909985908872571962937117907216","18668711032183586444351166336229909816448768000374147048504598751773805548428"],["22043441687830014927975134347077048643046890349898590171260535995219046040264","2020023112209243826757870351925985517008301058489933109446134542471730041031"],["27227860205636705427073140608606032017243506206671537543570927808633891270842","24286777233421168100323659852160989530178995964636624995481554336188410950055"],["7494880571938525856086201540942519620932884975789538453218648741602552133120","7042961688232423536815414751453661822838601000496097562675879773777811666756"],["19084934206360318366510890974040803403512361468776783434558074528811323287047","892823859271712271888876208337872538807249833638772028796063409056944480279"],["28061065400737865109741662413394608502956064472072141699611252628728743196339","4564188386414642905045551472468800642031696085612909412056516840843766608327"],["11008211975813618966608515215707664282112369159351461317560247678777879621378","3402858223449565780938016458110340672432728285541476781687401360743921690867"],["4941833198308935908484838093419254671415704419329412664820665190699852798301","94587247867411757698268898683463457841206348791261122948356160372558082686"],["8641760660477144445797916080109609783082274960300642470353925541152914892856","12274437996580597453872344717817858525822167491328041071252139755281788210010"],["28488175170550432644797195448301244772938641610785321893359419488698586974980","5071737154005287836694520857729534039467873538307126236720297558441445827647"],["17019239253060588046481601995304364736178346632635461831444436238710043914784","7627787846824107881281204396819410855962874238734382842961778713413542534090"],["14444431688666486542530516461021566377771209337524047932841711592004480309605","15250023388844561207537416359539154295072793695478678788342687784455153840230"],["14948260708826695095550009099312552751184977120865645256761532110169823734076","4031000905170737122907423049964716102342947124885395641502730811205616987565"],["9501299090518292264826236701003345753005890040605836758347027933893049989213","12842199263800719971057059902945459590700487603480846263072405437962588652817"],["3219802745597975240439112285189262730029078390059790340512217665260327470457","26559898324240694520193118648158805141186332417541077844932145846533509895563"],["24377401015101927253807323139050220550809665186281740201898165805140615227210","15802693983658407048817497145512357538138028249085310309434116292675496097623"],["26459805769723976827040055108386554064876395434452891568035911902651520304596","18583524065194314982761406380895500000011200335956603639300413313223123046087"],["3310827929174107512025257093016425603704543609679542927478101963936368692793","26437012891467956170079637127155007543337110563967410181983844493024774747901"],["1149479637031173640202244485826098344216912725047685311039937991849254202091","2666036391434095787511162979226995930848523313701581707421631529728694962313"],["11432600833360941251511508891946898822304121321533090608571952307754360076740","10668114552546290899812190041075137106306309476979746812815930226027709668584"],["10582669991453736143665394664012913281929520251249078769290388582821839208071","8723870740426425980161186953711397152627062299375817390099155399602983590837"],["5415653511744005154984438803930591104230517826571345793916453803472693705627","16698870644354160916524135676442691069485990938153499837867859297277230736696"],["9592013823496829109191029480185823770227854315242526430123623146066481132829","11551055025312503026015028779813895238235057034215233799730502717488573794297"],["15706283812784700352965220694777063591169741643511227155171212563466801935948","6949250551236233834767461759576258828334650344234742865860466676326208072797"],["27628725324258874177958759138078497426152878861416758135094439207685050939975","27083510089531644150458839983677607163749815405884887260796797741032884360316"],["7156522403223285116752189714331608057782751872200510796380849347032711787382","27923588467226665846905995277147218099195220588526816912227961952340411728398"],["16505926289814091683081585345521749714475519298168057914638372118205947205261","877176511241189799154539732902642876698368336348558084130092125988093145130"],["2101540278944558538027576963997706646871640823819455705519777544594820734868","17838103570660334313734277995329354826328867004836937344415191954619989294300"],["23869611245963071275295167480023824544663346018255790271806321468095254911475","23377219850829007055463947587695410231788593516798692622423114626204533302353"],["18941638307941374755029890965705654741788494320006994510354890364022654250009","13590855959328577973421083005648684799033447909284595580698666097401956779854"],["24256535853483204576829703751543158734971222788636529487546878372104908671692","22393261686726049071940370671800853910022533271390918160938912577273729653230"],["18107225808306863918690859110258308923501583728950850358311233690572087796170","12007810471937864211471208524037851160129297718671598794525244351124885919655"],["22113557361736917301060335736962042595456495531878979817942964230033147597110","19976213944802277174718928508179312733086178523865523807737635370004035422127"],["24210063409728289343261474211587988956188580841477907088189281994122689148737","28781324871492691435415088324187122371515632647972137946877035547561876260051"],["15965473799532552096324546376156675495219654907962295704480600093267706935005","17892673378074800158840980526075560713519561112290535276596687553924723486534"],["26732966627642383567214397792145888266495014079919010057460513112105574033643","2011658052493698264626565505994384642106446678668506263211826442499210700511"],["17410587016549470604217597068812741575334888536582496807209513968974960270783","8529031526289808457368295961540030018400300755356553491726087414559244517489"],["2208038839252719267020512627485436169392680717547023674217917596649452789463","5682154346307212766354002200203980022179904052657856152921388556982076238623"],["5802474900048425739498156609260420997379188166606374311839759479014936523601","20506851825253335461830195130730989103736630689615246153078531198463016445321"],["2053267356058676857164618231044215092654071430678084320645352447348008578128","11924652794441218305064715022822250522091553967125645883348764955260944692811"],["25834029086342607783360277521092584782813868314284828821359061379155505899442","4968731420433843595605039349873014160336438047222244404874311789823667249467"],["27093143659473904586678106455320755112017679821216915111466063587930212041926","3346690985944847604055953082941037149873214380459490719104875418874110920859"],["4711337726469678048858012086877901692203812452278785192493528622722654280926","13416311763691726216443753364932430198420600754342413651480982138837909866635"],["9853634513534815969993502122124743518381809978660654712064324949625839477244","6373206869000154281515596981380083990306212747551851721934109219838831238265"],["13796503839590450845788153558801584080696473100793880330257349513229673193832","22190784086190107502296908091790217667887700993640812563487557501282353776637"],["13018742709916193002200933116536793587843778465340253239781841119601771712134","7238362044849553734120589027415581268421481471606708956983968336778277166658"],["1401663045364057850542262384851582135598340390066702760097739873398579179033","1393747938023854762791253064634877546356739729506932452209690670725856964209"],["13607959370782821011940439448870862419089572972760603022661828458410454353636","24395708523447600838276446017039666816527105474525421978730536095919199987801"],["7387176873491177025702367280390623230192465332579558053887932824494402238725","4620345420338440806878105459760359051636805106347694946895715211429853998790"],["1430368086067475479272989318498914701599791322146981546938161347159192363268","18888654789118531754670114083946174519259672271664856801115935967102987597421"],["10972051648730848621287097412703097739070834870309915423921493531978127552197","9917009718353843659020015247700522076303182635641859803865966930997969062042"],["5277273148324819641845844822454684331711407443299634536689650936196784201350","22079366165294926034275787554620365611179752199536338145090219186187892458322"],["16585302067637964358055324028343595378766286611864591501578654285433829184243","26737911714864676348591748145085728028150630816298103862991899085190792105300"],["8073816693458637757897227089280188476723210579393105859946900327116605785354","23229882089547289541002507355151835174106706852986130094490361583641419708103"],["22177017606823406120033300661873976894698544638634175723774897646554846976885","18351870141882636181365065985903188114846594765919344491104161154850942457905"],["10970904660114082720385266643047830655349060624335687340220075746893123790270","4994188957645660129172136072788215673792712122738076426244332906436790646391"],["289763124641517428980159686669092327814597896012211622739673970462157727984","17783578034718454968948115855685587177256587718085013485563192593245308591384"],["26728272516026320924297791915140187600584770301991107096045793198639545041156","12730738211060357388132035048742185693316806046090438462668897902322463563526"],["22419334829841111330526228418411088645117821105444010345096574591483664559925","22724855871189310651424388252494898262008685720103606161268498936165216504525"],["24176065099609071931036366410916658552800252552535742155273172043363116821465","9758597695038478067679421996679493785221977173937676741034865700889816258644"],["28664862059987403015559149625562179571330085752624899993475314196945773373394","19675363383015846810605910149093789102392290214736626306068758237762182495144"],["1561928357403684269685060394573891923772689135300203984033978730367653092683","9476520006559478749213143758459180942301691104380921942516663193817633827046"],["1214662378132339313370277473399623863128421417435766569178441883892775850711","23033099497116137238015564955375304667208216644394489328638491331425452476529"],["14667452232752279754040772825100954453404131333619299966600259514704084767227","11218692462531077897936009105080974630671442146442801419126505936555039541311"],["23796522254753250505996170608531803016899130113087143021132426740480609976984","20930127755253019090241462790039435106325030245645720715611906157141388265783"],["15210433149105759648520381640100085559377032376340712962083626552669263295029","20863676522933178603312859510462069670899718278586068248221154437710528135041"],["1712624879596973171575385530340999424513539360580327621159471602700417379334","3366011859984370697329004058556166478479333415397951752890084571385583805636"],["6196018122130394835853725150183228469773467522841053211105972774834450566501","16592857701419526304969529926689296758671474398295392053221911401106524545824"],["17427426980947719381485443907476964351207946734793464054218258417100904064531","5429821272536360955991002465219277609585248629783517881737310693765451384757"],["10595515870478474530091407039546895098218035208331943913617895324970185790128","3771882633862280887778457687608229074823902307336650990416631915959573264181"],["17710187013767178107599532329193601365424841346529090502056465504479353497039","6141827306916326017680311767366891156936608105608897860834840152889090350860"],["18884608226749566274943348892440592030876972956227071159284876547443765274109","28204256802239801985875402479000424112503217161414676784679522117799698705777"],["28618282433194249475936935906921523900751895123151847499277233228246475404835","1251664697784951767707931158536996217327465879351172546333747252574018465342"],["9880329906858154711399473956593373086853399472270278236985035326589610631116","19952086661211849737028430008617780730695289433034564822720039374886259568979"],["23231212088953951508831737550096069363615302229237111821120209233584933728464","28616920901193680572346772372351101843988359940322536002433450414096888789097"],["24200603514644350510387057676347673589430074071519940244320558931528901229910","28229932291879417950870763694849621975479023988523839358400023696998910934075"],["20928455353591494648172531955173444702714421689881496473708753029931430806847","18489019985930843747830247430405955796599452646976324052735528124892588222555"],["2250298339342990141723911127810889095831139606523383361497276745184455542921","4371354612933850500533097007085193828550384963763707074189593818827395198445"],["16637986762151111612855394372949892255918660689165392310915850038782673491364","9300344965139226648185230899297824594273150019721902968923318002901438576728"],["17846669873154777710956206506185574423463757641567071260586441314417965931750","4888914807221203454151869158669567263207182975747745923936701806938534040546"],["12110103387753963621342144658464429811203213748272861490115512589534523636953","15726777165066036430763943940472556950304170609666562597104656353954809544586"],["7373994837102864648835229167357635174585482324285614832716270062008568283884","9203496944927548189819780546683915286396602627959422811988502489872483813916"],["21850502757344653039702129146434714553426834135445723295947672761842867380703","26006636741274251210665518386613256388178141028728847288085469302527195106712"],["18942224912175971281771867218095775592699140442246962303886999165819145140271","11316891933158942186817313239252217371398312770848653172499510542143107173285"],["14423871343541632810985626008496907925285749574589795658940601793266878403482","2240592328672072311965296983269907012354985563601613278862071340933959513015"],["21078687009555723088542946869141941599691273099342756662193883119714867358755","11194280378458492310527244257121746898447581774348592203594305747227201130339"],["20235749496904154285620937273148658631999552365718534279508819224923083308161","9039680979104728833185621032273762996802804408821789699628713702090661488430"],["17184237699808763184400247898255351669638421455278082847373929015132406626835","13284599493661375359621989844304182828259933996857278476503126211122177657986"],["16130032527418496765433503808748672928127989400684162200874321520549284191812","5930820767688301411436691757956276625890649273123451916006538530651550258397"],["14993588742562341908827802767901685054360456670085171188083661790232855959908","10736520377380099314788645826572135844188907781560083498019693302173482593700"],["27642675389788932048213098435956013446989889992483099000868324020584727353009","2178725884346204618364605833529372275050167339228067433840100997850234859758"],["3280656572142358604336862762877266372212971338264974814373027687745604255393","8556048170312573493948041779283851683471011999398380433196848076523547203777"],["13577450891455084241444477304340665643096883011548218223267841637812454535351","243728187647381585308575692691272989662874720672921642409315020326711069986"],["24345671742086043750055020958888114240018777303413927442940350650455602233282","13306012371058395599862845294860993870759282398007092193770955830232926137898"],["8252045481422265524014850333546316251543213877875625125660510332400073005019","22475097023714289757115691930769548942990700501444458619458368997120550530746"],["27474166575324005968105873760250429882081350560447964262141357904774552472167","1013137837703620185072309881480677099333257773318365521964455040451892767828"],["28164529488369622145979880680658043983410536026073570163933486498699269669232","12710093492629240737191078263447691101932413756726206151516173019889398734921"],["19585813549298622624726022763453516870044533531035063078419058884011711115591","3208452820385909630601127180509671678072365676298269102525660573581980665379"],["1088112200946846066198795099107564107109092446433066970278672125956715477299","8406540129059637688091456468757672976519516224289675732971116311773477988983"],["25487540792561536427849246148591590932158080445356610680534551837495201957384","27995038283836808932793083749495665625854631931343897122480216112806608208540"],["19494407422868979257502726666529345109461317213430754779871600870262263165731","22018772681016628896937444329344565530711297744555479824693099882090878750885"],["10622356256456490887879052726189982763194518870024430588249735685544886102342","14506516089065769013236354260232340382618089460556251564357701868348417748567"],["19383637908648553206212242442609946511895026588922811945515876182412186932401","27072086871961827498035402478663335472229591199508976475758470926076719849987"],["9039840768340788209852035787981930305045191787405316678126532162551536737085","11973431002393419772135229841794879774581218704970061846852706036671520798683"],["4038603332279687157702612293468968087594152939447091151167115083999230880706","28688776788932120928322358650814995534663941886934648479721044097813053269004"],["28469403430150729474850995043190019666863207639118731802894237337669907546222","28138680900901184558512063745995201489585089041155154106805363905588260029775"],["7878073299003082363452270346357994181622388180069213256778240585050279730039","16736952125977701719420724287060629283750893626173763079170128728444570739332"],["9175385646701926814515967066052118444181025678388012406383102502174244803868","10582578827445281113705751523665051308137474546055534908988717709924811337836"],["12136684897230207842743209609645600276679806187959773402023826054873145979954","2516865378810474311203718366613906752873881272589604647963883690253726420317"],["27194594865936275941339553673641656441677435574507545701122914224688138657888","9195887507568965008485381287541471555057841946014010202697241847407038093529"],["16869132263524930896274602682295814347354200001039799042828936468829579102228","2266543756562987438465115193237491326589688250262267696561474628905417131648"],["16425762767778828028081060073899179525115225841554861229355645949025310039443","21143718482102980876982983900282651673726770189119095644484312532558379429242"],["1915736014230835617197377231915988961405358797452819466281688635968406772435","1748689524722763589865797663105508739705842376456890969819859405691001549518"],["22619847421873786318249091927747601079532903475436512180562921978894177077891","8625562701333552730582115616255115197171963566992132697307287362155630045674"],["13416933542971631289785885657481500369229316705780606863866033704610930339954","4860370273661086214989478349833764953917378739610273025949730321704479405536"],["240584488149255007337408198620640853524349894954879013886322236644973174711","19964767555105102665979711094028472064682311239866589151767291708574186751866"],["24969138492835412692167168986659407580415388187664511261708277124472518616982","26925626407712635522426555821111295340955263484271752593828206196838025298775"],["21013188415894982654844160295166397596618345456549939246593370122391333901953","25592243747850299910731721557602065924691105435004963677625788224397475818512"],["14667471395162741391378221380256511683907661930469989554101863725091181032065","8762745700198274902015546689891651284058411291456572573668280878551660355537"],["17892693595630729190225722514953524017487027366099189480852383397757489455704","27044225958110095001776559965258157335382825195569801536879775083093086306782"],["6328334297702373334390954107801240046617844937613395099928085743034146504914","15048075592281795916998198983168593692029363551623482077768413042533214952191"],["22716542777261866416185063694360913282623003609048257901715540966885983946984","5779722754586661220623765450807687968786386227155765299186259511453433077924"],["11408339553110234969916106117660682244317310589152446726454695786341142222250","25171716377698850702968557117182504254975298039879790744665456061079359137541"],["2440286755431468497343887008098855694659012419872021168204379151348567718877","5140276038368676238627343095279092550936091828112032785119644886703889431325"],["11955555286546353849815366297621803887201567271553345423783271620269133561748","3730251598595786337711625636857642883311844236637973041254311368588339915118"],["27002939601753117326459519273837095724052808626713855622834314882973232185973","28068342600555304736587773696325635589906206065832427539709873207159012883947"],["20214685444713793712042373953009710004125024785268793251628143702599153405693","24883558230347295657158340746953199984835249524340499560723647768620828691779"],["1503895810336351624635961596634803021407982784544005793536306136462145056977","26322014595017786321800516326038170751465488358316681139874807118171267697456"],["14907033844351374778406024509398667565639406173440832727626367516046626524862","24334232482109429207399072339984303955766115668083357837133374393671885922703"],["13836201855970174208599485394196159416194620554651295944061812867171707673632","28379755542014146041821980040694045288090665239806193679066241868221104039721"],["21999060488352016598645266517996466566521648518279968403330806385612986349319","4491496546888571081388269487754055236233354815901496269484959451690505634616"],["12856199002877914722810479179593798009102437624452335260093715825219802401796","15289547598936715158801777180621910306667351692435832104029533543755515254437"],["15994723949404388687505593585378372265389183034094545657101698611685612369213","24976070704286482164490238415037582504102895274143177868464192893174677815270"],["19946849929044723868233236067637671528804146654696205409096529343559218808588","8628755461827310026455665532425765307706793396295833493129712788477615181468"],["897757058704040466520016713023972592004106656464738647168144907098663314684","5956737808779719451410407824070370451345602714336328276259557229150931445486"],["12207887486042795834837997801949698566068707222358427344065936528313077750208","20282372329218799063538779748075009923445939418197977909417837831247753382173"],["21489808845231330362915302162716045585172530757124612933026598850263571668820","22269164737039058553069054474372593005743279694962205693968941732922307354466"],["22310185350566943343441852484914311860327817719533864961857475442407770915446","4201909607647929256228582529896342913563364870906624110086320385245995194491"],["8372103429817548827966237777516948047856868190578225917398776670055519425922","21808743894059610661499610795083515184923806332405296825591574665559168482398"],["8380973640317991634699764317860091475873008312207593976715946514819776134114","4131688118058589493633845199241612162033787641916878378745733511711397015003"],["12941334891966069134031004381284010611420534163909734428445285894671280421781","14072603821698872286972864061968287056205865450384751563473590405291040729043"],["12000414123638099897137231218742641734923930952808869155875001885611131221784","6925199914524264160202054148752085767256373516219722281592592868440106096639"],["13880327664283004100767812164907809610592576477486786797323907275482976239500","28430657803303602324809421565229268922327062579744898951587348929383785764561"],["9986689836801781398981473338793062131678514996743858399119255498492122459968","12460311527166024603062646042911348535357261878531183772588857525119359440175"],["7178522017675945753662152014864141860554321243942159185555140998566235261528","12997662818088787239068114292596717521433395448800939891502036803274288561093"],["28219809705694165654462492246939432771969446218072269032601343818008143087927","16719730183631599494173524154289233508619284660577068959870223337698454411842"],["361501481829400991594307757869458815680123370933498211331376672667913655285","17328087495715685703938987600817112688826505723768016467610748802524617831974"],["15423955676433802373298743160142011326538271805818759155110893258802988198269","6605482072458980278227793478276316143208707485806723174066726845915135568610"],["27578567501763821116293850856146106554526963130766999301791862688234671651914","8738453376372094974593873191156736952732917440257571960187438970241316345265"],["24821015648747942403964600392067814560745712721876961070215564351575633970317","26603454741092408721802849750224724037300529923673555947532377816141601787921"],["7244721245868689789555823325928790149252327269789032406924754090675412233691","808799297427293939950859883123425997111397750546445723349547837812398431352"],["22260970058796507689295269617750231329208666534535428495547731645369493480997","16214140928585055399815290151441182764007841008194888962747242039592671799075"],["13719487545580794387467394639806812297025738155613387933932490808670010351130","27681290653075591944254237758504799413235926307506545532043692127196270962564"],["19365767301924703599477105110546922562753375581475936594202889326015307099437","12297503975460610372648439942441323257036187273952816572335932637056598376393"],["15062824735432998088665417509591311675654241358237841047683164075648973411817","11880185196792412959060067633894598412251469737568642220613511022646179561872"],["15062460021584353318494291544157218873677081315540454457128960112560056223759","4924957719435065304529645925841916900370214206937115703688922780134791074413"],["27210880692019220954141201342158055036973802890656926647634746143260511340931","3339409713891501736223828882074247675133348453688186972477061848908320169411"],["692290986692124791732819171965494162808581409761891433478349894588468618791","12798739334901674180143227823247273730970892023559389731333522751446201190847"],["25758708027018981804440709440563050749831269870210352097736750365375203204460","28246832547399360054035960085863316328272358894698001688372523596799611506885"],["7485195860824995016352143976979473610809481984558441397767778719490565696940","3929439704131331282521312788561173906404704931719408505184329819752466637956"],["15893026720680383894382596182736449395539833615028246195973677637114717858939","4180798201129948616799598693145860233431654563297323047537103355693218747187"],["8869306705845524629544650358179382492467879904949314866045240167867558209011","21221279205706154979169430409213198148298986199906592879665256229871880750241"],["13278278453104726038407030904999506026529500357325242610589610047599804077348","28775918134744372987851582155439009329469546066805519851198714369084659829542"],["3798476179029163744260288453263325425581556198139974643575503827386916581414","15251670241725679467465150932007556120880602564403651105603090660824037423685"],["15447572085875282253263212131151671185327737439154646042078161257140180492718","14753942254531943175037237583334940855872646084920889957398613264495662657506"],["21216901192692566716355923682715119107197428849186470995780473255973979762391","4449022086407346109230720428369997631399945672024655398824170769629345395896"],["28236071958319682676809745901461002106852779394037881333512508836570868518049","23292122939485365396671854410315606298610463315475337257610273485670869741339"],["6035293118313327593937764617389262821586260178899527852856353794914657873189","26292722425613591192749696552712402819191926668069032243500034802119698322228"],["11129618735761296245446746917976109340164123528658584989008559663273950763","22839249893095043409336060876166801846042094385197973276629128648544656144797"],["1983717468673426739229194611134592569527353201285499784058613516335083992407","13867982498307698778361403520371273136006772159931730239301579602447292011116"],["19961315763646514418691847368264468289408972410042916388970458415617731555724","2910877961644492303332508901473055102344711126666827168306934401590540222037"],["12532611885834659184174327720570727776844299013109645504392460948325850947114","959792950362587066495043500905795070641708998751515750022110919729214849124"],["27200172603834967978659656509982057946592635618019971149531184099970011883371","11781264574029258190398359324980651261778540757128773035607842200628942235221"],["9494022687292383709856072625479258762689585872263943622282298068335177105255","17150942555670568940092507266654180971815519580630457508784584028187203305870"],["8824097523052007449462262240954553783896069976187531954362284672499220564503","26287663248606639679850563066547157461084323528830525976548304307369256759440"],["4230594251601978993354826611551143043919446924988810669353057542850712932155","4395451645169131560707830332453999941499447014215677422421775805596904770193"],["28944505587115896596196075406877835827038685325576984837743593044986903823406","24898698847720728870177509541743314510219368849775951924125150599644990876251"],["19336744466979911609276368420413552702926222346916655782378440141326751966454","13810449667353319929290911230175177099367139395500943907147409161395923220881"],["5714328589836530924360375304769997662491608404495749018755225912712393661692","13116617593717143839489845235781822918532487281728490427965994893153131359091"],["17221246191990288976812229402444775515499906188103936677382028367327908493415","7361821991504326196735307890307121931211313999406938287164547826252428056959"],["6187938036960560115023383305296907819551339002606141564011675183454127772995","10770090528684929747076723592000950137543171663425458631986532366897821311201"],["14633601640415954271960105256150784751844356175802647049448767301036627947516","16899970522704693801835859230545956248237062521868052700473910641941106991777"],["5435859535645192261215059573519095098992964617671589632229335447934354930983","28218390563109724864971803014100918294143834432077568965708784619750579059359"],["10011863221661919902378829176997291566225931818453365983923167906333953542218","8944723444392714281686956736206777176793041320698967766070052351577895474549"],["8679646682164876887861728900465059892472124823880273543937049106380939461030","1720485554824694501125046300747457721029686397696324672678317596980506134333"],["18640635172193130364346310057102206014897886529441559404392642066987163731000","27556055135259797627338836493396777582978731747122103866377041261645234790918"],["6440582121921344459382316288448556352628967661995261936110314123893552875860","28801981442389094757942276045499259107366511200779339636876291460805159028799"],["17935250623714962884521697152339750081455545842293079335106527988999658240180","15373519058469415542267839004518089744975385502770765025403140456743453104729"],["12681677870264025210315996950383583680993149856267703383188621773867687555499","4029019743689196224452253001517141872406381505628858587469899406543672875291"],["25463929912175467937646867495055497559430644196137771080009107824286016983727","8840896228205487806009014991614142044176269724118644886947942383071610958412"],["4942604148945099186465852643726740866980811630110449477370138847664965010362","21531576745026770191757490182072682649799774639258330576087764429645719884726"],["28309966693722466340365502364462227232192698496330109447743292753229414814642","11210913742692347166148583730715185316288680707148697564150953727841120879234"],["26095367481165412499774573835451732246687010905679557776646498275241975062137","1780218520680196730752413659344899037331063919296074023921468903137609635458"],["22975972413442657807694346511264602667501196549914390631116352168977104695554","8784242431578712079879007744967267753038722743858595805772442100743888702760"],["10495810586443608142112603478279585759556252156395250796987411324400545747197","27399324623418470381152523555525048807096169571559491368137239295213398443802"],["23371789478503018889077560258617286839813712897349519196270370828680134983349","25438245438990460236728255495674761845661928531209618175194851745026426887056"],["27902489017463342590581941220026456359509797961477596547768177508313535783017","8524855955846595855263450030529790205196877618014116123303613964719588032459"],["20065189426181366282801703535562466587557520517683017874044057556797280342472","23089344551835605015348256286806247819783637452835854682670715274897488386826"],["21445039747717885921090797424686180284285667300723407223154432180376325142191","22532375186667242157913920902480172831408765457004567881380529340384864369421"],["30501777676607364224352212437075809934967609315626816264010010689627158193","14802947980380730499908167785341055010255453491839765432115438268595252565135"],["27202398650790662265315144731386321904940774381616032052142620340262234893126","25974333951226547818271358983615941203916385111055774421616405855592279929138"],["18785764674307924930255840569791826483786635079093613701199327099381218667839","19545717068700189289968146061093234934808777870385737047394708421071464183698"],["4861864304995914602329535525524404109380610802032128536678552562513927628309","17513596243430151379653840124950664339612243945993984513553482640576004311341"],["5144154112092462691939096053192267355712744098607745456565390282415768402720","24232933999766128729738787094925685385481695586708997596604642005504116607553"],["14093010609563466841158217881774618845237850105710454375421134530163135086609","22110217501954145352655715353047575223550628463384768355208197088731941370432"],["659132457742194200804240537338874804547302057428042697466003564266008604484","16345013047258213497251824086857698729418504008787496296198533809357916793603"],["12887499727177793884488500758542780254598257354825237894905910390523957182346","3412168213768500305037514613974772590231865384502169602198900874805103041528"],["13953681399994362889843450519052654540590624256723912359440032364818648941252","20274684829332526251895009198033958298489143271489587279771198830868377641554"],["2328951655290200683640518671273807215008605723339558012420826902766866672884","18743125613306404745314777409247843423353782866890176715646366109479923647703"],["14931385206506800153980450881803614614160440977187664447650484078613222103025","8677351139980603931324591803539752513864046375400402949654730735302251246756"],["15593752300788846212163484948386585617628736077464241528871862709546142082232","26674319687347428116570784370859755219506805944914235503147242085054827277753"],["8548565094507254572709598763275483815657846967905860070760579620261113168112","23720449611929559295977146658922151627062768525660519952770803559581503703880"],["27473403659183429169507486742716108141015116090794098113337343443570869308286","20922182774546692393826631142501674710741899633785425494428221944156997613487"],["18020569744105934484486680646609068639020639566507559838052853250359094517936","20668509569430173875209276772673606031831680322282630467650416775476407880655"],["5188890793318632138213052001302269932250841733376651796964500590061517395194","15252729796450914642260342539569599485798975331303072647256381709406093999368"],["20265389215794401693743809382297492141430415838970742035215514420486443486251","24221533645714332637535215343020854945017121031422284778458443259015345484820"],["6164396264201982549677693339247338839619509743606037691445086591163593275125","9861964043548917038092379328867906513955598905828723150149515229997254584422"],["20823457881127993141274905229649547814723427336193576755037606868956207172218","25459589186223171933695795255882888436101736457935278664564920045332484570478"],["7124688347255623208291818938585409822039283778174041735501702890215152383721","20163530133498059164987889541555884031782168764068764781212793930723621498383"],["2406278946828014537274473601285817207551016394918415828672023637996837317472","8053920368163972215105843974575257170906288952148788362961386971300891373845"],["16158821930888334137531087763062667539804094893232492986180837847611102827599","2747611144929130702908272909331068067306107561146083336207936311864615507606"],["535397214652000999362450944507320783849049136672705221000256044542829203495","13631018554385404337452535993223244723579214795424738623445321849515952465970"],["16785277558470455047829321166450243093966501479521285664220715165496039517799","3041018897676540000289424886454070055494978365834579198060771271900873542863"],["15664051587967087823634743499801693178875250814131748500097816922893000895347","23915013291528914683573578504347769132162046384519338897490322075780482609565"],["12515863948644847828736903356640120717507627667319864360703562858566685930657","15388775181473166715883228125945306673527599028307707305420254406793612442672"],["4192730502818508172278817040127942981651143783248937487456026760362296773705","27781578478000520426425200734443022313664906427084418559533542741763396437484"],["12117491070063284648000794073468400741316862876921032592825802829724246617935","1660089372729043387044966418333063996993459186550445613961864054199223835136"],["10325132691278056594481496251185432492747340719737323623586914474668140730929","11011212569402810475441459106958146970537959932337996591755963477348705636558"],["13514378624517193215646705937755380913657146730871772426524483677287986023514","26313427391510908454739261686395907940648424674689533312396116027466670949181"],["13558709177348889883484915643459888500537176626101533268390431663625125652073","24872009671849817981821881727013017185542731072699643600364601346519629504936"],["2527679423364712019293689885154151255532342960409365270141164977994269791808","10959420771305992787275496435142238867225111010134246479586231762433070955885"],["21466416810559757592114087563162581196162190374146693768494566951285620958465","28707851563453053703619764660814214390298300816094762555333209388222190194166"],["9930568679953991660386795247612287583361684096996379702930467232151384872393","18723788994993710096393622921029899235403324454998886549419890991984250454809"],["14711183557608388122328303399039100256225728899149295732001686752408976683073","6138364144513265117318514365765310590079528688854805748665858272742151560833"],["10350379808989819433967898664052209039681603027230501782421651560342373162035","6580414700064539822112215486534991961049922985894943002390471213047149799793"],["26048671601945376993980124780025771692021231577340823444329190094752055761043","28921585980113312420719060567697460306753338700463702054960345140716618965921"],["20099505774125352753765983789399757693993545062711706350157961028024294364440","16142164714613741945763579171644689938697461284661670204003772327201201327774"],["19430831436204629941332624453410467699598317106524467530643293996194644251508","7208706485809558532509540733698592225276430275098932947053467553594646832169"],["23876277202711379739323112770891714945981603840758860883981209894425073156559","10654613703507847073299008710675328892044609322664286580902884207856310340395"],["8348277971116437531316946598839528034649639031843926902490362947436264338992","22065722289452738164408664853024178598440446274008087142428692724406928277282"],["5193948658063780940421545277616818579642838929037924601414796354877709194530","312364068542197765084599331464935056029278092993943096347893978295685405189"],["17728275600041863740331229519982978797928032050224166546564987503154158488277","20704067298191620476174355945256390421661035361518801515436795255501791519944"],["27729095991390632256429248383564838689281634493008791651752133532355955369751","8685950700274379444779593736278315002623846280848042464726667475690541055042"],["26627432323943903664895500223038961923273857512215334856063129893299990221282","6280433857300022935418851214649200485202607705244704401894935498960978673643"],["23486349111936067751796042179452981108651274803906546099857455736803869000375","7148876571930444806242853906682862605550233174515190666410018826015899336025"],["2368454256947594542562859273152562735718179891807087589213795699835500525465","16448075428264768322983698455864692083015274133084397725376881346698027243674"],["17799159765423034437275281123817362554276454800110111510310346908297300787461","16272872199067937322637752865813900373626714104147726477416847900345813191534"],["26898824031203037005065284758307193466357474133957637201667704863712473974376","7617993801681169545814049384091702755368378655725405725840556829168281188661"],["28560188118012414937548237939467575664295310917479050207211089443601387226466","6613798884081453396352325187065066798283075605985463720136856359226804333861"],["18569614746692367264078588712406645451403712566394414316793303511389428417143","12957531889423294744544702653347147139441680441589457790149469769212466135805"],["14631435078186312641296863876711280106453756002171534341571441539878931650292","8136970570552917174380396051207092621905496547555615893074656786628504379849"],["17707266658067997120369811295559654622333436039379375450743546515127552534356","10960706335533377318452980502388644813330361146414600647887910347375531422689"],["4264818544532066668299266602232570555662444487039014946829878389280562043026","17656014748109588896405865394275229363621047539871986859162179451446667426170"],["27097662110591724298027741494912991052714971921606676878195240914880255860235","8960594294052272121872317119583691128845766937042368303003425280352690588666"],["18606300328297489917048516675764651947779406580081084306707435751754480580448","13864206043698338447629627153339325840295575211089885249447864446684406387777"],["26411952827380021770133635501880216267537715008703084346938869203131298669400","27301023909061661856626291315118089754702241651122123662899294557008215402673"],["6615332962888841184277550416290534631891942373107657674197268373565198913766","25717779365947111764595215046843891256800439832546739137637172086127411159493"],["21647516334892422859546994744637653810301357075859330581185341978005638382930","14131264580307287410168165373282107600204667712058972951312134365409054780754"],["10964759052617014050659262186545928646867860282311293816526797962541777778713","25674305226785511280096919818204254527919321326974235778812140022233286485067"],["4524976828250223989314911966154484001431463369067792607241637148626378364095","16877440586086324213261129504834078635487845891061203021885347710055110942674"],["2417997619061651364839710897407792632508828991193236267098155429139035975607","6928050940909131649836682848707397316138679210834849215889276457835953918719"],["26014688537035589272543691997623969113216377561800762462840879409743759293132","14491588817394426386705167776821651178934075385671508729324012190576481262851"],["12970186051119298506896827032375896623757837592979392792063689113686351558279","23339991943760037639708270481237849147838965247587734540543022882385878828965"],["26811297167639660698280129242520328945609127937045864054055731419368148135023","2030134193498554929878367591848738639122801677658332045591227067365183608689"],["84996392267271146708577332907922423172184694535501700156241881387396684757","8245361868386621197117069684128754555442851874632420312261426329833244875855"],["23066440236027038691459625529430619643499732605562189588193460335351539323534","13856758899933974581317732050971369444496774143323098793370599882061611824768"],["13049342359454157772827045718046900125660404119410868589218270724214675571963","2122886760559046004174828813121021393141442613921461909454081556467277125945"],["19787225379772052565425223885054383709480902531172780386487146211215437057595","23438896684677695833864834531052450301763553595123971553677049116639972911819"],["1683939518951512679735539207024755750698815401546893910493211250775872139651","2822747727095694314397477773165954020066994881105515329209286467325349815181"],["16227154189740786971905186704745718317076139560592714395735341990742902025111","262846552417674943097553304421950233655667223107865489010922097741364508056"],["28451140067370033832710307218381149661710502843712759086881096739790807920588","16462591946702431922929769470274683000825576338175325513181870829900086528481"],["27799349413472513844300497670236019185555467477066520145909547219175679925940","15756285514049897212919046950485443218028423951099819902809089148559076587887"],["2498306938109471489245080806081218891381114868518502710937257082039511624087","4959678964431716028222822163242857130100405962138342471477540492717951467164"],["3998875949047419075571936117075744897159753994606854013434628780976622742828","5592988324057137759778165089580552023274577718681764233686592342365511100325"],["7325655253120028759897762113434651217810143912993879337661825258031624264171","21623139812458943124093438219142964719503964135437782551638640133801343350164"],["8065343698797199016235306633705578226886275089374885634990709092894175399170","185679156495133845952156788321631934207274992038575852758797478257498192857"],["7667036627764605296851572496727812386117368272917656873257020941914346545839","24008890222941781967097330785717427806708915963599829261395625154604799467729"],["22216364426891837502055766065304519852580269264521087872087279128337172052251","11886399209691222999114325529871839214180717635276152634038040795794906782889"],["20024504069968533391643911827846008654221315905255828098824729314300929099429","18543649274501160665734692926929192811630250938143608174634890887722603593038"],["16007973093470718871320355530474752085357839678880457960257355645216941529450","15279980127050195469329992485962508708143795247757421232795096766683523344941"],["23044752283084301195909281417116899941017517690657455232088561293223967977648","5316008026594658347678584600457173369817954850364302631861276452165573175181"],["2316232502113666328013420397625770145846682392683320817351511923976734531627","9887502386686909867598349428154160658382536733192966729432410498959045907549"],["5360931347086229615731988446965655907780942619884723707407952862676934876034","9730225684322335450747667320382229514756415969359756239213385237570932028993"],["4950699506645205720274433567362747143664354756643647065021804833332349919849","26615615264648306256378956052240751829245447689941503140890411079479332323272"],["2206396210293407832680608455132540641237314912517177610092327461032657388171","25921319267488956355721630524311031659045690468871027147117661314461834792351"],["24442271615396423526856030794782886439884810579459192827412960243785143558002","1965335381406928161933708476607976680310325786428371886225651103788081012682"],["13545799690978421501518775282746061920300791179753804988390092491755351809979","9472633058992901276595582474218594151373403332219270328208327357438754330213"],["8252066519945083072778807527716140338652553189818253888736037604313661864964","6589027732236433685635727152660108532707782992306312533620267431638079032355"],["21649537862899415915917253461355801227902243735890598317455351876098305490332","9235288486637740422743362984565833808831780674015290517838066444506197507082"],["24247388556883946052424984492034843315276472681424126051491715835787405943157","3893197812749067193497573277829579712859427187246582014117614838741709076221"],["1790378598509133837306937340491197817233496585312092706993993688301665967989","20959752461747829104965548612099135195270321046052497147592761745102658319607"],["10466917872847179709128362465399380854579606778428785544470317944506633458464","9958848727238743376617158131299634727513724822292155565561791644765542400405"],["17277578227111895235289440101913971925005796162942397410293660533006830103081","15803529241008297556263912672547971340428017065062242420359082049027015902696"],["19591147142415421602322086175293097519631747801544513350047737526684208734680","13189684492035388602378876697696817643443532043290798310445435253970461540952"],["21830077757818346140292640173458409410405060898393671249699297375034983416258","13698480363968568128209410235983164707520747766430199496884967158548697631589"],["6958301161875427655685137295003092731856767964942508761224803039072787555170","12403889822651180647763255222214163411742608327595110058147664661454084083304"],["12400130138101116345966950328853759455100039796160894312466541430012478070297","1364862421728517702650566143004824252386117726945790414536487414353094467519"],["20178286735292623269484133628002572725905053219089609425771032765902113452094","5953698548899783541594966930579817188798174591577919805831211263899164514705"],["17433167489813204534107608723228613011928873844088380000660538864751395415850","22109807918421788861033623914984825308483907076813597543261515538115318752488"],["3732023994666904497264545388776677451216625263412603365915801070356193634646","18853358769886900950351786580661091792445812882385988980993764662517182094263"],["6520049872439732168645904361749823837034758632217565866281254743449259915169","21939284274620498822951516640294908641348385266972361647181458958589326983152"],["14387575725791998850646848007002444853168719418253260851793875144806533291666","8376817392965897213854187281314325431769163985670936220697880805131371996651"],["27755726643113573685422875230031093136250852658244860520843891784900376825125","11965247932163114985991793176784950445512048241312994302706401302751848780876"],["12104199891080981741869172068085173032497119847239672396830116252812027496929","18555008836856468358876744576652044160581255947449570596682281075190658361695"],["1194173544753547526177990232893243776700056698187203717441508999135877372130","16524015720850957369949412053766389590989842796733861790885950041376813035706"],["5325919695855122019387402664600625724736165222888210551087371417868660858100","2973556570331376797241856363551335129131517404326913764620875244061940743099"],["8920811124229286745449216948856860927314920456813739999501817452961178856903","4704928404196023449441733197380745852501864750604934250725833681726046758243"],["18750575008049593347568976436423013382158755560710716041578485217279417030593","4693077192454630231618528362613937829170367842104227033055479605992496360134"],["9010896428626635311889429271722914644581784349337730446860531094669908430412","300559758190118635400422703399016199555450448850570995218193804268672511166"],["26148706973060299003800843354802968576154411532239732726966538963858312268973","25327856267817909355028304751569334523864640636654167820417141777636743068625"],["5201266981391854074861802246689267904501096169265101953239222760668415645969","25778781345948218804641336255308231979585391973915874852611813652704118222739"],["20863918644298191944600270811766562976738106291814350918869748057084598427708","18592077253878472398503241487107314399993348427792063235074231840648414853202"],["26398129760810433548125754004358439602572409705258011317603928556534226276859","2743417071999247054306410958256975291120049798410214586366553218998548817010"],["22660523687061343181222923685620367807450123911942827349783298768359809736260","7947124601630111215287938089660907863776467705781430718250000422485143899590"],["3065182974592283851101042426202170433704330428875700571391000612706179143523","4206042945998296719335008694869172638112490396688431921301302648563620418906"],["13101524464416866146257061845223659038645628520942994460113310067352097804339","17954137173579052961090520332380743940134742470311966721102316335763102354263"],["4962721500994320861234787749957239717120060312517723887087499037659478057987","26000581842210260026732096078818362608398349254979845735923284999465719484120"],["18940151704725263372067798815931650177981632546488485725977422911076756023284","18063973956725274550878339225771162426240203888564119514678743644559866395019"],["15807636312835346117693169829374659123270150639891687763565172252188814693159","22415473280467360646337001819516706476035522687342623165090672915080560083074"],["11228269253511992540673947810187651743378103274617067927428984182449049730338","22598210257218965838337609626820431253286297564376557799447331952100968042045"],["3451908639952748535884577238201969466390389676756814898242547716167009096788","6586371498026028628466216385055083415137244683231140916030973029060563793728"],["7770807648330310781084991057948297795734701929116707448998671183629984953017","20831384235513268195806330591589131697986570793328116422799376822394135769639"],["2208517707385417633886223076987243944419635677123170665373488842357336273312","20034199386888943446017372806034100141084367096666778264191163237005165167015"],["6250332213238949826928611346178415184985660915102071762104341880122243841950","27418179689904327234955581711608282610661713986960122309591158258497244939990"],["3342144623806117132269925364421013559623753489525623270808194926558699660222","19563762016151837601268361782380297823301840200223387245361060107004242028349"],["12926257513465106033109854580096500541544249639293946283583755430455257702726","28082836522326618890944641937952374265165404195287583120385590365219936739069"],["2729605922030369690971558179173439344957493980574446146886926970115889292406","25259227421703060830198774539515809328072367310436821715419429483871860218535"],["24697896595176505503028138507110967580195802369275953951122443030792340348423","18684533520084219999731820672189244770268283829077152788545869319557915083766"],["13153206958317879702762715516231002220385228170168359112143124043630016206943","1743521399199086421197599265012928363341948613489295775115712799133552109228"],["1712137803163302384980955594596085931359107481989437873924557855907961380695","24956126430570844030086538011023778745124086939999109710626315846814981130368"],["1652271085921547749679011833897096908647183071546193831767887264045487493363","25233187241572296020329798486458379013495821304182618513301121635789471415827"],["12695112883752376076317262087041745257472288200025348916872467446022853231884","6283943600372648530952672922960143137647307195823099506417518652012165750532"],["19025041197937491619767090228795072741677763971268628572507547780006299454421","7539064261215326507117748941393892407746579794270751951996436668082402113139"],["24041612048289277464100930011038821617174474670792060738366535443856986781974","3191334224670024619359761355348549318376666809873801922978732108726361849172"],["2879328481514648024851581717154220197064345246326847560086726229857024129808","7405738158575964706561824855299303576841981228518452989607195538444292506729"],["16389303261643933352869916946032857165342373735240883952755146031882085900971","15381575718341407809596720987062019430549563448166749202608355101795564734796"],["28159848880632833038411411038316008595642156492562756551469601520753276177497","8285290734207386742010387295116705316264901550066408166316885990523659987556"],["12012965491441681212869297856709598492789363437846282543614730994335096041655","27768579875993932152591926459137215887395365476957209462596082937402496073570"],["27326084956368650169840296245528391294611841945294372275842363219744992847707","10732962898702908009437275132441392163984605653539646559914518444150698849132"],["19971163480258821530952443702556422759094313136897080100847641233328837278699","9303467826811313027977354348032673321868252552756291391804455651533227029485"],["19868525059128835592369327112458009312981622507835494428715414264870844935265","8874735577505222278624185962757411660758992443663095774600747485871917885575"],["5534115738468614618370601480344008009650198599229000474298135777371058861368","23275812823590538735977955465166169553654189113039346480014238566426804616465"],["2902703477660459702170304772127389190234820650762431588802655547129614850089","16180129438316406761255011014987864696360247873813717760593871079809304472299"],["5024562847042355355571734140307441992691253693092608972330062058263742694190","10210655451902211802348113697829474404546542689570173472417086029099756374363"],["23739519897881525218135429770892662067840863677341648064640386731584274314101","13895166257584004759675678240944500587117474045717866871741339824894787648372"],["14039653291917361427455037887998262796965648333922661983113528757923677654758","19176409750989345364410025856595452436142860655023454528783260285788765626904"],["22519963108753968585772953707464492967261303287443390562730507166595595928953","19199190523926707129346231739078371756487396025945488381963373890430039116015"],["7125016319361374519440750060585847701825690535191432658213840179423292068888","20989297211630477724891845299309422654545604077662782786993247998863601756484"],["23435588571044755858837864304079456806346950167180156884264188835051852586179","2046359979284658543030620751082602172364545868927094487168890942557860374399"],["7661836842772920677210718317651508699455467711899617791418019140995516412561","4605019415967734485982804139209658893854393432981344009062818809975453427875"],["27022552314883821418576026756497798455507433196632819252801832280893636655353","3703035321875543492089105786171156734607126491900363115315513548555508148843"],["2184583213935351283155503581568148514547412845825828955830105537425684410881","4490594735981050532564998777052575268477625844753885098960212725897892602439"],["796205243667611266662375345763902822625619040316383846599907170112122718425","8244208172874964721777745543289262313115009944405120412132528728056860554490"],["8201036046774491532164695689025200527372409011165731636433550848103379326107","380614486828613845448561815861066704379786806200246002438268381522372337709"],["12858886023368928374104103085837285507890115769807225033277211529311718267913","25320738768246154382254203086703375512419585463995999764100858713939265280770"],["46783981636736954022243598836999010345918736958710769552681394331514102052","18456660644986228561296265288904738273761787815146875504686382492199443614935"],["10949008480141409587645689516024548417767574294646319015216048989907544099945","20568805316472579099071079063389816346793898197476442733597284691558108112506"],["6369777069057322989330547965701178336722929963296915662993785736855423177220","11758853125159994258320713442163042502632750622158229742181234665349037735559"],["22575495077593716908533569408479237909577578095542344823474704640995275165085","26141190879323942191478391689414182880244431719549858184443468482712649732370"],["23402181241677643200975045105691613546566967748049949914484992192906303665518","23546649396519127347312760738262112159760688832867518301075942342227870804640"],["8891606940816172434446101331443446113717839128685969777523231758532192701178","26892407990622379421861585826221776622565123686490217880528258000905794695151"],["3787424905794352892352993596180727941164321501895387552743223236132407101254","8416378764985457283906445455540820814188868980744394005560734580742685732873"],["8805723576729202753120787093225364908925483358794205954834327723751930726346","28286978502016018290448754086124806260094427801756890803065296988770856340560"],["7668777537455065224843223957861005633525539468322071958253373368267769473954","7662071382556446319940797406131827611484749189538192257434196814647741954868"],["26153903400339803974308502280172358179918472571735720950737590597167360371623","14087085672312275346633741866037321794670406105174214221375730566451809929780"],["20146095430688980268703330676259955994280602521144510763321948103047141052829","4412081454083867846055463487049847658135449117389868523785553592733792930993"],["22858929323809081854520631983189741455612264926708414539428676094522632821573","5656937060190674662903568092590570451694787904108458508621597558622998396651"],["4607407730115717263446113916164082507839052146624103418378089363948453308537","23617302750497128219625232692177720824832629585953218896982217755207975814523"],["14481953320960492438102869756660176853960734924699828893138724686631383142019","13899157282251453350882860586272883476641857793210602506829521000056526968344"],["27773615483334039262035965207466371712317786138094675261203829476791390582552","13593009062422270803131141330543465292998562363149673389098879242964777233631"],["4755433031429351913813563192183597808034205735385350186889576304008930174136","23471110324942245484421199502236076123826564452419485786235235589074272605086"],["23061878022534490073111329567233038989668418638994227765115834144381242372802","19765514498756692235847255594117921107520988470902184196537934464452344217648"],["28729712882130103596206407196714803298885478540921106399733891137185809165278","18069556783259821894765029528746369575023555582640879448686009138153644602711"],["18213990545201107775338329776450157881063894576896177801566711452626140607713","2884754720437448244082534595175436464624683370810380267290510184264813496307"],["766324691784190585242067106688067880551429040587707411588263150251608718871","24891005117713984025431326943946176472293735173546134995685147797892388849476"],["12413083139391779170701801612011242002554491740737896030958939382706289616736","5082330686172790309830435582040124871891207710381213319169161757815188100314"],["5337741607293971181291930346085424894881255209973980039722867440553398639345","27788263850002650463106454500806487019622636611653926662150887804606188944809"],["16983330268047666736612968594848345414158145226287356312296592686151512928837","28278058955727885433595229097202879889069593253921868049741871281530743221301"],["12378500098365351693792321754300167200779455561567465704231432389778242989928","8282864387462545937912085610000901549709396560777963363325496635275417847659"],["8539885891193054210041192640506680959074286607234131082196671860762386534286","27269402034114909318996504887390891181851700293655633721523087397555804114144"],["12397799868532540666088856925383769012914926851082392379431678323223652477159","20262620671039346956513019965302637322008555174904888019643123129923485821008"],["16764001307047915545861406345288655511712946239762495418381334502728646967484","9205570900436934876695454905471492819695117073687290331934874883848395976025"],["17603100606642308682473471015100782323855139577986353612562481946831524836141","8339040206246192683885569694905254854207424500856324258202690953365587974389"],["25092916748986065000474434369168637998832883534203053950988959228457290229368","28878521566201281547770788885664762375947906670196817474395005862870231360642"],["14707907133431994409414651924258509245633750425749920794190187970123878140606","14196497401207786183929515429733517277277857836121290934069808441639633841049"],["2922838824723054051853902098986930253798127991088530052357328928514687322076","18765328318630651222464360682118019214361116260319707937972842314052426293798"],["14608604873112621026314562782772785774777389976126683051164044527446743680450","10893220532942078419039299773090672548321338148166578512036379140757564439124"],["6527650762362650085581348453885131105800614480598042144181050949605527645196","22003695888041984458402757219146617785124791482894636127610794541639462127319"],["4508845257199738858846634674982246167923060048046393500704234878398196303564","11488251761179201266564658278114797917909844027532352704073958891758302861592"],["9930068679360899192539052614176494257139783373180092187771128838159737876873","3471468312702047090017378745670340155463045813793662654799206782673079795663"],["5715963276367410244585784851999745872496552582957658458870321816938896603519","20866965396760112699469382650028396219376347737042902226999186484414110508189"],["7298614431776287328679232962032996545820396374159520027979280473358142107926","24884744374391524273801068091256675387838800557682268781092608944533063375031"],["20220691444152749642733498360979939995821389720702437747133854045490279421746","19459879912430365211749630242467766909568841137503459388815106247035964534629"],["28091343750873351202554349105303962567794328335406500653835622212368164968441","3378322628732455905199137494881533211757849644686471280992849239826744355085"],["9433621475634692784242906332516998215867923497455564628208222868854959377757","18194675226960020384957095019872860399877471607605134170303170982919578925544"],["7055074039778759230503697674590912888781803121919577575618539674250689463614","22509912485162799677651575160556795983326141182607888510140701659011739339527"],["13026847035477768836691714872278708689735197113708047168867495309764845265354","1687889766586271767241802226944439875802032485766966956093479353471988221654"],["20919913660183849986332687546301217585455875297081121739604235148993711622472","1266434310914932461297578908877387231840196067534864935445854459931958181436"],["23259685419722478617882962238451109691888376211922837723622086322721076971583","23811584360814118317690145974044582985204673069551063131799170339452302830527"],["12095928190365823510063222555419572179118531890298682648088856396646136189321","25084892607663978326114728146287214746688016218372511452648920454448222719541"],["15363804315102595464078246385217792392103581621313102678321628687963116694888","7069622324208365200384211243512687707198128791645921346391833777391875284667"],["24174271695704633896217565000959923826397279075096725740870762105707724262245","1412630787953970203904118554701703680761156732272812193323409628703719016655"],["27067958881304419059067871226701712090662072111701781208725498957983925460273","4576119641588516148102220546868190155474752854940345415485532629347775131668"],["11387277102010873262200639336505612021524079020782725840847176505123331987174","1586169050156160813250937450451911452440795435747442874843358284667177994721"],["26633571077875919964237294420040055100114818570482037787793457637866165004571","18094791696617506893965756486782823094961998849608324943197537408650365401778"],["14325028133332883987696413134433404018562692337388424132461561947864213265307","11455316184252297436364824813626810904646594289857809704640171636182852613647"],["21386170919618488383368927614540068886175609005048596587241864911627187547187","25757115627116775279583927478869355759067333552053197285256668190594214210076"],["3000320445976592137207021021925833565577087398300417346039468194326621940939","7504070199755959673740503656219899999561333428904706028595652120257872669440"],["27124905197339142739353272849218298450542862509485872276354357942632632091095","1351280654247658508268537867747929154438423697902013340225308238963075877425"],["20030708740725300588845388002350383545909221034305231653277709640571565924999","27705437168999725049821475538903010471963573544167246613968133565825579322571"],["24871367590898154726391727718419082155111071092535839674012363044699316978341","9070270631832134218392444759548845571139405255885091439847447336325777871179"],["18329294896645450815244294974085815633626602043559989804973606076802011415332","25109796825175142208491945145664437671027568686115455676910007045325145166147"],["6406498566989528821679469887171064471401317260215007529778424066350404273175","19134984200085299642751813207778799814131139888451419432729951852340386055598"],["10197812740783179284636552992463169090090829481757148177320674055304122220052","3197744795925372139946956494091606068560398500950533325009499562257670716050"],["22104273831480340779812956701014337815358452716128730866411429614727394258402","20894816083660710392737739836846444518955454626942655486149654227134290952609"],["27544862755887232931999220863653255782635155944241939231041262875728011365556","15230090187495065879588522583087710983039630541392594979706456015083061410732"],["10645658734701775181749183895001627255538202019127062016074942910477575687896","17146952481528573152198131254095862662235858582947252041788699301761990825287"],["13345669773944376280583551456905699145830586194197814168527352770756881333934","28006625331245951369312190574329155286588964394010151867485533702124416304794"],["6243283413595721724953969413139370042342048931094064630691783900046040915117","12584828219184806338437160805531012635118022578821511164299403033328904257939"],["3736868684897730244499642121666996524680485183017561115035486208398997429702","10091687003221876615373946413031524361816740295638303487823403262694770274914"],["27198387334012558193613604817266802865432992864086626397579511851635472890306","19694253461126287193784674533995569830950960209843388577216022653124119812342"],["26749862299786852106764362984052087867951925197950623785380885847937093888692","9355993816953916833839991677538492688456792832185835364598597545164633521113"],["4502527029803117217197305525215649639061238848710855485360655221769685065581","14058165797862482203546450707498322490993432306302142214286768976077853926161"],["9620653002721920073805726816335071407437549758486386430573294420182179924376","8431108675933967547592240752720871602115831958016763249061403949123010345964"],["16281131546839871666145503775206702654943185611194925659865069658684469638893","16166970599944776181638165397160205898683084281445747185754331805130909411348"],["19322427564014489418840063272083786368470722415520331454135350717258055341837","1551917382287240389328258263328505786117504916341095146806378317136274632881"],["9476944888152065119690195946300299422813603153402796905965163916492395029035","1517029860339868767463882156117294517953603362726330867169056794894787315743"],["8723724924329054856861495474153609974393270551669639998791517888348933425370","23554951403844235901976824195312280117403281480306899520828647373363710862567"],["26623283455285611917622341499781582549097588584797856180559936976014607281195","24510317029661242702697946587194890906196794412236175245362011206567043125304"],["1416276090099299015027872651461687121166001826511451049944991328727619700756","21762396490116940957483081553026977599577898729342661548686156961484016347792"],["23406824840816856978364935095801449627155929505547323059783222474681180551204","18898777094888778669395748260076632360898443777946961059273115800544488439925"],["28265318944073958344246279498667138661504503662558883016182715684914018415540","23118611593277398297848443588832042499045642207378318832155288184629352495027"],["10081402724023783436086049630927148659272762171382742460826175399293988580472","18853249884764414816201212980952110436542425768549565926770795970104463142868"],["23339573789333914787417906491375505859668768581451611661004049784439846663575","10100601762600822191922306661486239324533554975708544355559920317443746892797"],["20208912573501608643025037136051284358713083967409238320908748542238945601102","651842048801824113039036478698820988784529411589129631725045143198514532091"],["17207261604710209515823091129621459463630686192660616536466494632549154124467","3492070409984685303206303549852631413010885975629492115172348631362144084143"],["21296035331854198881905010915885711781168632099644760785412845578330226023629","14214578596185697744275738182988962712387086715048370079122616553427814080977"],["16151606956907921750127479245045831052290631623386866959350166686116997624659","737177004774758071125027917317664948076976961795139898436942138729010686219"],["24611643292038099578540249440189045244839417201795617112061695374763550954704","5434033463908668413460157100149965011404879125018094274588919829287365710832"],["17907486440490377874231044422436903791692786551218072813762171838400078766760","18718162726021480813438935909528767702937679161935364945858567045810819622650"],["17371051051528737159582790779803888466155531652941251428033061812958835915774","4322079511992449813914338341711428516911945916515404221261929629213563054585"],["10443476755097925732037644117053216644309485142265465491309701676139501187293","8526072059092046970698643505711663634331421434810386199339967638069072676597"],["25072668555970466351674983814613598940972638207044259744398205018754190357578","23679988498575561054733045700994861543450259991237427118537903039472382664384"],["20012990554427068159695686733675700595419825950674300636129267604275847233790","24657466651068556831585035800040330072836252361127509546523881929553099250314"],["10830626267369367868677662715478842777344711429691477669376178723263907956429","23812909760129011992660472169810375640677580078637221560944017979971684869421"],["11678219543532886692870321988653908912845824452958799113397007742925244682985","4311099502839397806802819081935232376726465984678186387579431396114394058260"],["12699356819260075314570201041964569711736731001611869391090337737956639318135","5195341812104431029517053676962392457720511680974435819843320272539833200175"],["685923737285212458086145022024419736070923778814984988696620529548844006430","2134780997368743161343947489098267628984138775435517546215290852432409702567"],["24318136716746649086742921818224521321261999300407112433409595537664693893001","26192441418503212587954522532976444498136792363708040540621585818935704494724"],["2683628558069836176316697151646993811167578119637205791755694764653285881725","28466980865870858265096426376943794988944469180131708321868569175317045239378"],["11176711289888946012969547076352265876379716559178749892904225431383291467843","8264571443114529065651289640041025006979253521206745601395030142685195862686"],["24651095609043382140222034843529719458824865147013150498972029497065847741142","8838080308430738462931593785442070277682904689599309026950502523950832086228"],["4413819337194461255688441047430087667346885402895523670556817509862888907756","2792726502102490471191776537023417616286416718720732958747107415091358860728"],["24502465238606080012144844602628081120599922945197791374000667443599951821873","13309218706060001486628394072896268304727735041706670010199313269879122933796"],["23832013589037167923662395931988421115289900869283051228669016789861876079442","17808341575451451140519300725515603569195854791043247678911114400388912820198"],["13504408047828286178884555326310272210813325081712093258485605953977563729559","26506715140057844230327161442972947999646364495706944316272856668201492995113"],["10614145346211981872373187549253553882976456181104445428362321581490417521292","27538112672394917701065282363696787561704780123579936042369913112693534227783"],["16029441975009479097777309662081597851100691915709456209459434281314831394904","28139770840474249900912982388439938990138124920397446135794043041878216119730"],["13103596200808554444967425150422473394740456883021295651164427243059597198151","10336613737169110124121184625238604517548889289661781145434094736829335408239"],["9106309399996555529139963725832870563753610523913630606997613172338214124944","26627019533806135143257123383687907923689576746416173550394984801483128520382"],["17410461651858870840439836668151163894143298111686216348957614410361013428689","18064266590829178855974477779484782474611598310733847543710560551880151860010"],["6103830884160483208537088965796310070250029018701584447694271245020773765402","13386076373653891648668030139554729122567875578314276093190445018791162077774"],["16737307689012231267482664207916942554177744716149175206650627069777861069714","12541995928675105093612791714869516018047304273205946796178042320134785239284"],["17217039784117360992104172781277893706380298785500736614702026047237864857","28358032025951228105521488508219669892348970299661200666483736963335615755283"],["25718973890038996959992558711925931775320240957114935372040593565001922580269","16093150330368348050985355658080044038665302107774420865613914844314078214667"],["13926098940188382136081050859595080638154741319461998182649791446402841153522","13725890907497444642034991648524544752046896393769103749354175627357631959083"],["26614366689161359111292620894542917421170438130598970721561454086484203710329","862089313161954225193091648661812362077153076344231356941929356694008679750"],["26809594137018461090063801765399628685360057354098113514406635440522329382602","22932956928324051276233772302192814216759711124888836424622192934397499796920"],["10631378134812500813580739517148654073784725627991930927135573348439501962943","27947110291823799942486412198747778032261191769392387933829980166589992288865"],["12899990988527273942306174023342131612400181584711102635082562542073592754007","17582836442617533192039610178999716475157636782790903027360532011233946227869"],["12252067032681906606087374241012065185898588246328445509833059923157337536416","11540740745030203767963937582649144835578617781985063679397125153066590375233"],["20998347632672158566683348539067294039059550935608913139345942860990960974885","23225089846325971436644011396768998554033471122689176951792066478679576420787"],["28857044183072937132460099032670724176007158641663047023137681967314277253069","10708060042431313098614723070738977837428506585658812538603137082247457048793"],["6686073134022750625686266515796685380271837042496380008697317104848952509184","3950372155854949523324504680903870322493661651840378606358518232138620293193"],["22586286617601934749253458389422003607404128921801011744831629179256804164971","6821327420309534502951288078211477930959416176765564537855414026320859722446"],["14511127933798275240665192815624327343458062418294484181506142224216605407905","24058382510119966784830260150735083654865846569090205283700074003582248575240"],["21311843606631034837849280079093350973087246832860303812411266581676336731934","8036352924741939858038378326310993106986663871702127245950814130762122086489"],["9644648295523475480386779487512010111342742582105341676494119894789799682748","25888362358265547747924427429488600831546658789375440329216813594684691694507"],["26669020397872908570343422573249332791569049358363782591104932807615286579268","19093028777217993671282501874416588757457186844847417076665642339069722439065"],["26029136762474850616739889464147454493935519998936195139120099713600214222256","14142030053986314023894246695189452319865609165886521203699903841651281647050"],["8299150727054418029709079173179994365673237474951987206969704466472233957734","6750487526206194297756868826449203005291911206461367154787123662201033447477"],["18227475255159993690667682022091091314420894317131590376394779742060357681960","20940812380397268799207512591183747891480689893511955118905177975230661090833"],["10547549675227762505402552391149171543642983250025613871074672812655657665484","12104634394479498626748558919342950569881429386383102601152375226454531240756"],["10399218281826584753172920695292548276647329377168985122291332469561923852752","14710078376276052133794355272299543817585994422420357546402545227013357538139"],["5953725393111453368114376907622883940809267611911343631408687034033199162287","22897521435829330929815080316425738094282561201361312742952498740272081268276"],["8527996310858598889026710631194473028542531660491024318296763643623903726893","12325475208375759418469960751449570212960677108040866911296042631537046379009"],["6522170002554545983348886909627494259075959151977592150937062245133412649976","28242539795531222517048907835349581967863327493920611087678707696880645312043"],["1666419581925370605892710618491429103813730105621465633510913016799108496828","6139287637095829879129571512943667572434867277990850045943065327655089940755"],["13905768587471301999867523829301829555306470158601552465723935060680421235483","24004222111384856579522309336522567571372736130510012058569388836530049144669"],["7660994663890035248059622250073023402019794570729666055934610657148492956753","15740600331378090357186480827684022563880673794498424141155392834740080998157"],["19334243402523935112103409217855148711280685144054051633555828546216983122079","6645164673856180631402104181475978502881546978386603458106103062940395472292"],["17772308939131622053348601903939435718266771657511799375247830086385240611189","11240415062924127403112568784893357750064438429404623302203729489493544153817"],["18130796476167642800606091597933364686020560818658862911219778132915809176132","1283986763504176603771617797226792388066596166721693733958081220381090543667"],["26312425608473062223401479639527532077007630779444028774471873311022390452534","23686014670270600077759171387909315725390957026759987371014072425739738545719"],["7695015173853349143649561040522343364886206372710964972995733545782061612049","21104487538311932297752322679687311537627906967076949658992458562597851169779"],["4520658721858106334726836847123299866502221016624380418196682537643441714799","6916665931534083768037383970536126215845862951917788393719565499211061398867"],["15754375749169648551014046889315204890957224106544160223901315867559140764158","17173357526765608313150908711209116245112950034371403356704107368655329376568"],["27460510412440908367276107352357995966834806130894603659931275430872706438575","9781416833728060202936206629596764724745904418882489496735591996837784645440"],["17001196396451476942224834878400554818432911236618859346107930812038329051669","24182636644366554638162098414315923371476319609523009549834034915298730146005"],["27547151807297203532817832349010991739501701429100044205127992573483225400495","25399249520738655931402066697387142475639887949725721001945131698682553348147"],["15423650695570973824133138845546983767463219305424793261886567125646363213514","11900620120318772623799741108023306935046881786588012714268658977052109779438"],["26628317785294474828352421408993567143518401847235247267464015470575152097475","8506934281221472931130751003832624242006665139510986757318734299359417870167"],["5929908915582434823594924022271547005752398733675986803801134067423584677530","21727218303277407469596016686375589143748510632797997138014120898199677696589"],["12719840318668907021383244021849691290757270820598916285974645479234168770786","8419497614727013145000090717046466955110366023848095429150078743241241394855"],["15865098143857920369958717907374229920603052258698120607757048423430012238310","27658887579870382110025305732618647069604113644390224123751808180687753711956"],["10652640048854793902511090380767224451029672581811772538019794198917987995156","11681840638281076068743025860655019222057901641937633731496021032328891378376"],["11731943553501045053202167756746546813430166120176125699816330877624440307273","13265865426052870021528068795505426448528443126797895302888534236548843246655"],["2811401962972855080425499114484379746851211818088235407107243522241117055590","9978121161519119682791651038281289452798750883979128276390394300587389003623"],["3612019139090591505902682996013765948196832854778754815615381247437249994042","18263432042173840610810645291736017397927027138437753859197109581366551049655"],["6581958276121706214345093674532199267691074290849336254528790669953553590383","9486653421246980473299514993661260455562893735081001382074533994719635720486"],["21148709083017244967770143583204126460975561671338166633771612212829561628693","26128549139086672530255720626782943295861509186261646553882378897697071103861"],["28698949859341330878472599744890124784878958061659582546404160252800740587272","67092496878959045023780856618962645966292425570700419641109037660576756016"],["13649740937823477177786807431728229649379304917058227360040987761661135918683","26641813381953315234780664725625305685802336223562021919509709894254696063164"],["28821663160724021538271247756384710877542604972848250469035927886555006234471","5700437036769493455221974366693250052245054256233538500652104839039378640710"],["11895413099948466474763820267656893397095971668090281909962206593656234972183","6560444652651151003809374005908688484844518953895021980553076081459361066875"],["18890695413524990867830790025988493296583903406020373443345378746170006223646","3728701105656141267164566420502149970489941394660858906012626795272029583143"],["28534617645092324128802602649666372632038427277427709440638238415450070702657","6431347639496184809137008855973718627459462884602388179133241889215761328308"],["21839868557805078848141180523471808538687545315498748706805598705335324204770","17633826123015070207650017699095774399133005118232546721446406546374255108013"],["4224398292257040314656961737072195690207105635127330866306410781973446894129","4891538843306882816271062386842842747835338592963461623327469423761574222505"],["8126339012518551354886045205252760187548739552490622654287658976389114671545","130019368858230973526998915456144079670500108056436239970605177741951103862"],["2218869520095820559287162606572071910968969124067504986573679862477693585829","4800938996821217472488645127923968443204559247785950119099892441378658493263"],["14292918752122648258250724354292844523058520829811690388821336111534497642788","19317640100399239842958294867762469223048515475495212231057776353284046669891"],["4403165057449879145774765699295681498542355178797176714027233672039790706180","11292123095389478250172644498987628892367052935683346845491719126782995956532"],["24489802529593689926670075740419689841190515701567358920738473227188469382662","15505595221561033468649030503331742146039285605097675927613127772024972744604"],["22893616338738015920884995483789764286457694014928011542672839686615013854250","19705615701352139207438883145567079241321953085694852360004275456019730587045"],["1084478743552689336149250604944919495487862789045330100003122113592957659619","27323092840956388241380048829341084448432964699970561688129570565854474089725"],["15825780392755387869604183136156929408475829881435539686947977875816519462811","23529851217609516066743043501986370985301797182931593715248439311693302352427"],["21890339809162445871104903031942112983310058169517783113403020632056069115473","15904782573077461239982276043737812716250831896558744953224647002593517534028"],["3558362287301523533945538968778558306527767780108024311990050908351179570130","18908831740169126235923360437552524090035541667229951637268539949072278613707"],["23499039687209886036264018640719830684666302488577552573261327457491575836977","17443147362642257268932908181742811726922483377108056832296395986491841581083"],["21241726843944648353844857997298946609567168541141171758166095345104133780757","15395269256314432064326949206482368301120662240716367872242958968239994981563"],["12808132942826344326108477136431518809114234110512846814457185376812738124336","24824690453591363645155251884464553491578162545835926079083859252113517921946"],["17385776295190394520028508319298279475171501265404659247934939469139956624931","11715938755026415422812322145948229371378900246813185414483691915751708533597"],["26008412127221973379132560065579999315851812487346866645090189840660026274108","8189362239655743385290205115505540494174359582753948952585418438702843475703"],["13543538308860169982909183800482110167555784459050968955517899084498355565781","7114979423912826550865650614681560418229798264337367421289784535573265429435"],["1713666878059002763458764907024134357803810834450829308018919772185832959850","9097199814694397972665150902239990110068297642663350317698070838552923300396"],["10578574477140116602154236559158212131292535202714417075651530732117903744821","10570208172341326099042156324840267156193120781540340583008074283206255879563"],["2193761166694442924019929605900560789449630583125585640208841979169879583883","5868964681214616251915387732951646871728121441108669496728996515854006643353"],["2213806162913412774373211694478391137131779663275738870123484055977270209255","28113382639331825852249056452482394715226576849151339988760835923010616621452"],["3317516441849593776635333672638451353159113864900457149505852739683388183705","9977839206565751372069188964944104705417466699798193797013561389102952703627"],["12336448709831265810012317418158775144734747010404194565532565162374922681776","22017675580095335027460290602755515567812588918887767386390112997498364926562"],["28575045604491744424194336278576889596474773700356162283826515988351230747718","4590265240682708656654930373322019295925887596540321927332468302560494453503"],["17153641930313123853763727950662078073965490629755593542628582089958969771658","14386620260864648722597634224078251588262804060329100433211826810181316618265"],["7957152352192445188218428270723528654414462744154702447709607439095225275708","8149639850204071935802905874892230089730854976744429757059237026775662539574"],["22980607900480236641840951675666623812142170284138451716644337989674827054552","25176895807928255511124372062824703401582222852572809540613931141622568615269"],["12880864270164284215799388430720408270312844265510456005769451033295822397792","7616733245148893150911481682191775573538980704775149173132776794416088206998"],["19992672169155511970363340733985751215858699993785248518894137565344823406881","18738432913567796604159725170360226643002750358469632759837891194294188678928"],["18160342566837087027619570237968486864482224571983732641196816183338736165834","2484898448574335335714335296503579274508497394830252154510857478932244559696"],["3118498785603962371609711548552036209673088588324873394601772269057653282991","21691449324616019972217445406789455708710364888833026504988816172584412183448"],["18281662261799025093162625787925688894594570956653102359783562824709046050091","13128478176178527125403329626544434330878583100655154423411543504268797349292"],["6701879018056494647444760592830076151500481027812363145284511956974282283598","7297132299509773212738754834270159233197677702636737673736477101728386946632"],["14990770633405352894636060397619838681149681870936694167480379886432493630454","17542767419166361873494943903321775870816126581544304725420043304186711508640"],["13733024110882071071930328035961558246211138955971525397718360162046620599089","22758075892158269919505701187424149895438949372570491794585987948829904044910"],["4025269525555070998356336864634491726233446507055164402122305534843609538072","1616050073570185927751603464193309403187888817942288727286800267076259343909"],["20997579356801983575895550097704929291258984054829420763698414137478103593229","7405589016610731087977262728236643513392373357833012608344804243317164845347"],["13680465094862549484460488132442977876935052323285305296973703491926647231174","21551651368997383889844468459260272361890313982134368273968258786552584081631"],["3466961550567257867146532285485917816644632939984376161063874035910089900173","8892049211669138750483428752061529783047822683957779064284413884101534605025"],["26752243429701089276891017430110922729039743125661346480828762655463297117365","68201041354507662772228407272547883727496693251309878751565633268486228598"],["12978006495228601942716647726820593233649487788467138246435237584302961055394","22880956958268196945839772130820126279020718419184410552560299003720289531580"],["28937954923354847556219778848381719695681856727409535388013538063883013137671","12166705025172825511822295430496076483215195708463962550447025087863893028675"],["8736483065350594565430993164924826915945239623038730135936061515261826443125","20084554304971393259441643312136605084803192921998479708760528810971219167684"],["6514768653101813166077592235194474635172483286182897202079399580526005432529","5558352447018104381841739232430986677691658748448393138094588216182776564960"],["19810222234228296852265946402603039013956751507153988109918990159507451563479","7395591787338542549993420452518100377822445308830746701949478070268362463526"],["16130929099196457195359302250961555308910371445985787237885978400580706899480","26427318311040671203089976021348393144808630262514148422174121695764757897494"],["21616674023909448809943726651020383755246158566932612713946998080492793856192","22041656642909574176481623459131223567754286310899273963995814212318083566465"],["3481464930941700522475236219031394214551756954064082784753191559549957907956","18593951162955796088066341725067306077679580240381717404846526012143669515049"],["10010712256843434319325831546602427518471351834171492495302870606990790098711","2312772652439109204547149161742184849660956610918811394183278584684459753558"],["3776881857557473175363209079817016672106035087910227309933863534815383112760","4835115208968311598325733509257894339036921460821574656504731756591822978553"],["1213130455678401438524308116490988520000237729832453758411437374179492865808","15492767521339692467787533694742156770605121415219936924694396880712425877961"],["17832822235104776878100114477664192232222337081911609687346282567657770543158","7716796565178840331796933761961201681640727003519717536764549147972714378727"],["28724862987477299755794379726652829872853484737398409829224294044861114644587","10576234471482841044723133127302557783798800040461903775313842290662697220934"],["25151533042429307660801159495868364875783654425862581202283143532971753524724","6559924660991250871382551672192998131898966817364257057638331894138978347449"],["24545631870897974048538156607748092296137873584736206587548370910050440798683","18825268542237621378769467142802665818177276868805764884576587192550110400854"],["28418454662683034407290188668393361911455763343396710591604280528967850369514","10029615150720691684636538318364444663011452215901870438714838603053067687723"],["24093570330124638989983197331337675771814327669407386638702639291842510920711","11651697170393795005086854103966932187907283633453722006707730728665302247703"],["22645257958792102508268722972394279197195482737067734472116031427944168719767","27682485996166096741901212607974132523944766319144571435294664439211442002894"],["27394261052144953981605649881511470964467540689734122283788105639304445525933","5771687621420359062326548802247963289890022356407701195959686786092905849929"],["7122687841141969472157594214193492775523305606716059675037208967540057248468","2828836534185474513402478522740840432259423481743077168163659315966794778849"],["3300838045297195211642072289714698194270022314876411960410549538150442742729","22407790878586848900241483587390128263819530226050334827827198098376704656091"],["27591816456739556026802111678662479035392904294303811308619133874740343796463","17787107745199897426785747513363709645033587558881288728564091830418576806600"],["12678904973134875118902169599066558077477031282058672577908758751304102772512","857378892825963593432019256338919799627083164408389032660057872866451585428"],["7485282602676933011121563699857841972818990915972152591587184696617207989267","19073330481317878200188717808553150375253911010034947581680723652325553548576"],["13801507989414299384188366004019699052219643045707256960992150042804227143610","28079085346439297592240380303056133910539273878743546771926397661039494510747"],["8237207237956863266963500277729522149410853344150535616037010345294233908643","28381410754594131185569071168696569338229324754180308551616827864800525923442"],["28629065213085299424269720958421485886654102711664921573566599069062645031721","12369768078414606422656206847980212269961772972237564142758267337255170617994"],["5902662667622677865827093788160229436672907395034359012252458873354186673473","17791904309867177959777918907821890645530526087240172101329763487655941461609"],["19086564345907300721247867578540406596790127434703593317039216184225038767184","8706883572667112243711028574066515269995885159879466765304137240004523986915"],["407984787859630870962897257848393082175544665323496353397800866478960083997","19569158705548074001259498425715451103054369587167224207836027371615984782240"],["17271280523846707783721535308745349683843877463870379372920561876828089006623","299826663796119176648605087213961720026803013124060091470519106699396817549"],["9351838057732185624508824408713720385526119233649956898039091280368775381335","10507764702051515488309292924346681685343086008744258594083200829278448973958"],["7202164146840938979971228803412005930757761822276012045813252789074504893990","6429350128055373986668525480110348439475789076698593329905705072747039578304"],["10593112970655808917560211208516828036490220200284003895113286276588037829710","4437678239658272474768052290349523925442371669498056608393601981546105231355"],["14046505844818062311793675587614493182699050480755546906497410648358764141090","7855879102211827259210748505018762460733220505956235318506722558008222737611"],["2804927252769071859526019482798440631214959464470620392611869591925779677931","3813455604281001156188421290812378839250082189253335069378063767061733034742"],["28098610718076978368889778206689985161516927021564583617241256011047776639605","22740335293835927198568441501490873843199598290827951958048891295065354216625"],["15305200746437544163032562383303821753241448908077578045651776570357678590626","19220997471635609368466952470458655611677157455560034448931028592857131979532"],["14290489154227221180981340912724605812207704117662314117336275959114448715780","14958514926080904675095725753757741798408758689201500417694171380225049355158"],["17688360446124686216294981561513279351597570132489660617649314875899036631852","25036106851127321271567906605078732963429776396847895246178699706679949622535"],["19482838753252024473757049544166804664545087363511613352518410414671684910460","18164479774759117128620808438513941061182348804892072477833305068526010893372"],["1172268595211344207269156120741832162242681366465251464740672185699678641978","12415362473645367353100103413997884256725848765897677574901440343856653691382"],["10862721589141879883153953989659742175920886296490361408324197398430202473815","24432411980762008737079274849132672634754595703563223671842395789124416278060"],["16748662250593107745041230228116083053009496451077977192799879602607380734976","22700959857649721574278050258485775619020957404587978034252637757047759501112"],["15572795328196888652058162313685471663222146077499300903425886809361016205097","23730225708287958356568743450926412642022929035225612871265070901314834416904"],["9796880019421732226677584625894821029452795144863615783630298678650022803455","5472594865239896485911633969285714387872125346273979749538375458191664943173"],["1996609380794647472552905097918459904277862261855004851481288487544054448743","7765845212567969607615476439576457213183039480371364259658803167388467805748"],["4074834597998741015827113351225308927846874402316904312546960540158996438570","28145439450887189637402350578391726136134891560583141960345933676353956811647"],["26485469637266665738372943107758744425797299397189879708972720875862606429478","26910275284426416535982087745390328449076144973740234179653355849602193271490"],["14081036358411308110435204651602506383649661372082505033170409620064963120119","5159277685742839420496933483151784586351063976869981834886142456272724811917"],["8814906268943185778345670906051942596653156524588961537582500596038458574398","12551541577754394880446087342108946540885334161079347871624507397124187903640"],["7442087137893397959362891881176201348829325770836225341741835338662012859401","9853410308950272728137724937595093984696867220810091945033921074549384676893"],["836565812511383456713958231572266574587726007384827820750112534444834225587","360449213378773327980902724342607124126036421798178323079347446567658836212"],["20095309954742297813466922774163407826899419020590032710233036812991296670229","5619877243853160544749834293652318351126283034037276902615779483824121548885"],["3378848781355568527213405858443516925598187030780021803548650026932374362529","24283174456409962051123409526478987583601484077119718612696361277654468944258"],["8910923227980317740858578806957015206279987850892930618940347627254817651469","21484460443464446374526703512787181288870768060304868667929311261473592912263"],["5579328194890232826870694121494040361606358412072041783185917519070066569408","9726600510516540931290674742455591090776888187527669264779662507284653241052"],["16396915730843128236947066507954026105933756965519919309737212056443511934408","16868584888690103734243003223792737615231677885089366976722730786873614992196"],["13309696551150356623216560729475914981021654792621383589646456996429084977085","24036006811180067117223105311333963430985953118023370833182204857041245642264"],["23446677842679808837930541892965419286404800563711941406381340058801342141910","21790947961872127662278693427075729795700299522433334033958725277332544052094"],["2360861092530417519415715777999348592944397787521009720458945539226773163225","13580467894926078777608799292212220278860811832620626738096101301213192061346"],["6461231734381718570717644792694233750400665475804888410747987887559522877911","11947323240834127483932614483319113008128485399304881213404520448078503012543"],["26438007830817661955942452353539921862035610642994487445696329709544058087622","5119785889768711207409549467342318868163138347676163592028362154349480485778"],["12102911519477234080938194660356393591246040254668642287601984195363196878449","8248431522566260657579181404000666601717394217310675302419304163997390211782"],["8943817184772880548471598179443827443225635168814625170403690512727673882784","26938563629889066542406811585122628474252647725395688142076921708214156826935"],["21989205572247813640256195657167547284756198012510835349539660626282346250859","878182409946806823069661578535815975901041583064369961209320295130772022343"],["25487549010637635916388171873734511628345084883323857662517018270435099363017","18751505761335671101379838908876060094896051606032396749865604327163337849153"],["20284122107471345117491258621468096968872693651007581330569735930541249690602","22679766419834735543002471748353722178838440170205977236917312680290786177011"],["18753112128704787269465877689613646361932720271772629884565642497749263988291","12596115561913068688491643997513496971520150920478759073938598752360439366479"],["4345054449490327777499509685349986572330978020573376497919053116654195756542","9412653637393723127969035481000857234069701565856656045938045895094765295797"],["2123363432722643198567822781536930326994204842469010933671563978820166365402","27741640868858034249831038780630846360464089862670836081112441369436335253549"],["26350715632262310273164575645838150148819760647018173738925837620917904299389","11713752253347590513693956265305637461558951984492643174578229083436058548217"],["4112176971484832861490729841491124387594383950472590716138848946197443191931","3517331401356108659235307146430584741804014897658661680743208862610013582676"],["20411971640410776642603256508801353313206384163885728238206225679664791232259","6539984713986161275823803535559468848827919428065567154930256096373430912766"],["24475554609771717297639897237098890786933584952014664932037982342182735904189","26569890123461878542302150628034234348102817347456452202935720344956662460059"],["16646269039942678549019671117319159558678129819095648096466810243127624332225","20418927877949098794110359442849820499723352915776841699419928963657639613119"],["2651368741391982721983218844869358454160107577349740851667903237444432820266","28587251937084996268925166818610793146481469438275682145551887133650385092344"],["13540243718327251585794726901128257779922574887551597837178340847132447556525","27187423869132752438741576374239096926282945123722588953935084071213136632709"],["12971853576282888099946747717203084363059861516263897620933695148682504529332","4777642240271858955068714586985385214372249885144599803952428232148993428468"],["4249728773646046797286335212268827766944486456592253501944171510670187758682","1858897527075251839936733779095554109102259849554074103809522493942477360831"],["11128592157841639036442181031910219369407841094030745001302597599313747347820","26134835262744777026522621424179640171973631179907673846641414832954936188253"],["18530149838351359842194533276567199239441408500213515168398515730279863889136","10772662222881711185282734466039873852437946996598181720847948285005875935351"],["18001698299825312797136444854303936207879223529736626319291990340152356739600","13849023975062062604346053885712203030152423884378769863863639809468897962579"],["27270692063282072152305191673347065919478865555510081065177238450185954987782","11333769035429321171267681377809372300133317467296199964944827887287562979237"],["9066472745353404523545724376594575291580215103678931751011219898011885414977","15800412219319323967703538620981290627118425744310331211458099462957928555857"],["24278753533803177833281581673592798358115803271928359094611706516796400426485","28030341595155497157878181953455634904414125915072938541261420996480871944714"],["12207203625512085084274720209995481851082069257610437629795695987351788705897","11820758309083256242959570837792343032289600026906257540059063115497828109675"],["3835165923401438078930221978528422212222281622911313848739131060936480694213","9469648055444032539997183739697274879989570872374829128438856151993745168169"],["23237129762298241179837023173614125754280765012909423120099380029227995405887","3389367598100718442566770760038015407178145141104537700451713012946273717298"],["12498724287777424862840869921548906194909148266557728235422551982108489245393","23295195334560837874036279853918002173632093727978268360065897255598854789808"],["12283778451310288046059978388102351457451713680982850365438351880954666061512","8714132709982152247640511402117181029210115421540848765372119802286349652093"],["4810650696183166354569648498746681318898713770716008970308507989092218855588","20013541248441346345458585124578389162674437469831687987078604969016203860448"],["9727982342889446473024841660113862174077679861797909076270766461146461158144","21939214302268942315836731331641265964548157845898341900247652990370491999033"],["18444010365448588110601612916835786952578415694903885160219301525135300515970","14146369866009746893618832028767801790356448769192233562977230719731863779584"],["15920899672268238055956782749529371734031187819868843098178045303802763674141","20711014696852522668866019056436014252731989256192859185201174600831699459128"],["25925666588738026796596641364702733597599342443623677592384184484674955261806","3973901778775714736069010280841128428417819818713670416970910112872533275746"],["24216685020975784184182474298834693270505488305018534775164218253732198261498","28610742252507687861652577610616227224593266980002280999629474604665404315340"],["24330705366280614138007261874574357544439589067082441917624617067332176997747","21684690281220100177255583535246495942101696007188961810961002193367048326665"],["10493535517844661478348906224517416434710858088008132537747570788793147519709","891985636386913127256022496167563980029129315764413500068564432098169893422"],["20330297059403154441552107879681025651066211097331203289860874923086164630065","24587845175292598065236063072817075637402255757513202118051622604688397616980"],["16152700051921918448611712365739489717887338737326854712054986436632896772159","1383295763400930974959985691816294395436914668405282016684950125837188503773"],["6687373563389788431350925969190705814332705324592625967726725800697864803761","10433704165033221345660639034012673905202726181401604505498121676327364956848"],["14175403588837762574672818901156711014271653281926665514316741871815245920043","9667740345478469355581569877711048998817307261843518453933356288462218174770"],["23976404447690740644267488685580229381014576270288899263989138832170115430582","7486474719522253137060715710544179490206407263813849412844621198837064900698"],["10402883404432760949934342548437301790083795051207562597875156448020085422278","26439255148073991490973007084913631592454032600139928812180804893525540706141"],["28751357825524613090319395421194719994593804356821737083977119923030123772057","1920751929234039430827032542207023945620207055333849257009977930554730889372"],["1403893999444453572168399916990789664576061440738173198247375995157306817253","8549878287524987556487041885593965990776152933224870678696106133906831390929"],["2786994229538240306329034704200299895855740249410953344291845826146808184409","2562292791814992531494593241987298458820427179729637394192615263431227106044"],["21778788194373507682777229569036962699507085208643806350043050233297014054047","10862406508540732618081045165103638138852363997319533941818280282511381786033"],["432807631730568906001995128234454784622497724011989351545112396085853703690","22521655398210698336631513309398072114221014297448271654776011521784746302472"],["19582036104612987222277707842806056893479726967602989940789452402179005006931","23603076190263200240961073839981283646359389289940573351357547036102756757448"],["10756375826419455186419933696749148132280861825273826242365939687426454365778","7805867399367905800957133133442222958309553027702900175402749487830336163348"],["19615120943068191079912683184880427088866732314645274745875847367313042482735","25803434675334402133831453881614423045521485794786973501034112945793341765935"],["15795967348679128829962687538715705998018985192376568393402480440151101885805","4647829615905432309440891435558707601978244282034303014841177876239437164184"],["5668688322898156732178452788452320740598634526856175790790544837102747113208","14048836327963806596554524782277020633232757107127381340497607501675289645565"],["20903711568325417874526341320412830622512241112507967378430225216200389566143","837779951285285963590281712009961051948795911489784603330177310444524486555"],["5441100135033062890320963878941064486648488407597160018921778120054443423315","5580516122579704649833801787892507125653179441223747637323685819518016965096"],["24391214274599615129365350865414082406184341566319789077303617997471770654754","9287612598807602816102108234136660016293629941146436845792355399697362504495"],["14299698714368484710510456910302729107978270085324217033410880061036070583585","3689307365076167759875208208339760457819227229287356128335862131491866167323"],["2270990287966554336034377240469009766866860030098896639686820411732598122488","1167559667517772131843310343908307361867252001800949313165435095667307242054"],["6280419939630446087281660922113527719601842614026403840084290287023289273995","26958602884269126832120801946902697023716967396746044283688527114192090629097"],["25983543725533055960816331551238177440384765109187729387789319416118102357157","2459965759642377885709677046952641728858658682368405008818350439305391327472"],["23462128662909790515693173918420825289877469793598165160063723341731155267958","8534174812757875062803838343481256223210606986637846710770380290747821342580"],["15832391873174778977822786339827221563102891981414267129303832416411318019014","22053883642978742745307014677208505986738065299050896824622308552580829685066"],["27373452156205103498843698007732938024762720328254377957481735216957614537892","2643513886506408211977528318499083996296577825181105424461537661056916519049"],["3042720112977050013397516437825039747682710247740247680172228092638934863805","6226588114293802937724203069134952248761058410149681838489570336329373979164"],["21224654062136354091097246986218583076179479011689764093210497251434629216030","9593690509082014492200512690100475033284152975374482422441515326585756495293"],["6119332366691738892928735175980864824695168183851596768741530745930830609032","15874583402710739229034801794906527712971183777595955957599521688630244660781"],["2821925493881888385700493824458473178782631052719205775320865463597007376680","15079314077099627288958065399645413758661046550283305926364742773028540424792"],["19092912427168423475737305196568607356266827396220704057477112280029889822956","23501122564035325592642361717678736907920449263285517864339161469628926903584"],["5916203122755231532224546332290446379028865740540643072387318286131280972164","16036578933284164003397420822781404939977660171256791551150142473179717719830"],["19346528490899917859123350831100688525870552459576711797754394054853505449637","17694942954244419011453621901945852225486193066008434840672327609416927060858"],["2816709953141585440121642421556353386723002013479442762641702464676364343014","3456126969074583882533647657900924411918317047439197337442059507323676009404"],["14459965293906516003596452233116336831919848041859686262973600110126844035903","28325101788684484140238541767421304200055636237602193648237868370184322064443"],["8675961167408539736028454180139762031654134149976330948489071945874398655890","1894715126870426259381013300593812346144433006856056558287447966014419677632"],["25482654997848916858789546186065836412771644838449196843711759849270900197102","24225938226701015747151507888412728427615147610033256383271237296680724231072"],["25733720875677185486918978041513405260945717487131285069313359033314726660880","9798021233663221449043411489718705179077976697362272593025185864610715420615"],["13628267567775099074139449475964492933275595466605305264284433726612217743882","23363964849489656469570472477218514021238408990349221758890991627487321115919"],["3126868131267885319502529126587472761154141060693762910075729321728815336367","70257510500533621215102127771192261707384382144785296907003112466947834928"],["21027242094947799737202414611003182771311097021334437869727517764128206576594","12352363760178249681913905231750485221943213233089696137211678061944015055723"],["24909742874716300664465862043197167451011580958176580758049659824012472890878","24148801263065501570452752708106752460753132495066955126008031125233533362587"],["17275202524153549242365932095676529459224316327230904417920779679497381018970","25241078563167405356138022017702185975964884846680213662519354225101018084707"],["4116215105553403505802452745733968141144882774431653467085717466171477722249","20562796327518434331059653708205081513226577492170386968224915921251295111955"],["11094294511617693466811376967778834703754248167430000500616906965267209949486","1299798508289466671478303816532748316372178422273402312287626047749118842062"],["16113381534790531216923544344877267291440072922803511991531952372405055133390","26612929921801368027608155868733122640243499099378996676815848830059353158830"],["18600841102819648480541394563321225866848137462217445068656410662803292052655","13708996606389611695029064601537895052399878967191036284186090225746661490946"],["23984488415282996396233010262619604582455385443925840620521075908562745599993","26739810092973444959328715280011755146972916188908541478982816525484020712340"],["5434100732972851653013124735193609732208104754596413986511173008477694652892","20014089410511503812664313550808443980294202890033713761131066201956934184989"],["24632428046056273802867184111555048790315001015123480995780821829707595457862","27627292656685885092949956322552722792911589065101110338315164507537914438635"],["13429114949026587898352750193210962810733593278366497049943603420512569065982","3207216767550947546846170683510867148216161764150018036690150132989400607786"],["21079476958912627512064145564674761802339983543697226136960125768588025570016","20659365189883200187691114673329864159994643986533155031124258808181097062887"],["27078213256752269097004383310052614805727545180759754369633981689859812377131","15311785066122135401855650572955156735019138685936047358901086058844001960976"],["28752554722074070717623092878287479262794373347207799955536382237639243989748","24023573337631792355703044612274549179119620974231107924893234379936565674078"],["28595883115635326908824043104174976164327391014108970495134200648671784641078","5417969180706818371499737080120797417105078903668020655419524668420996893352"],["11832153896309689073503668132130461390895198199721987531769813581527540780317","7568419266857558445708016066319972926794503975283100999408762563770514036199"],["13494412768021413864994876507716332666725318998532322627082332812100498188818","12918274473534214461863794188578399653332913852393757400879185411474155805014"],["16515708461495303734876978229109859149460064719278789409369296394979658650554","12571124470617953629332600841031638588752646770101758948354263158339087214080"],["851105078364311736993233817810031953413585103086502213514305628010176675356","2444024867752807450902312508896996180066843710875895080750311545448669832471"],["26175133960361789840120928202751280036889667174422168045873446260328937332765","8652771534537410078668873189567688624202642054553570684748053776430891435996"],["28379081953101976934022340554904416238197269709162707425587836122249361254912","6052821142507319616756183454053095351043697808485801970050896612560674249518"],["16134977213819121067299090398527936805728136543868489163582130519269800234634","25728964937443755238845723741361277258922639167181075483174109144799039027369"],["6384209942580290793039022181054533938802223597762680142245977234676649395808","26017404232273484837397312989191760778038717026201049620462120055870534049744"],["27845757168151596884326409448623267703965488234057760292814295216852654195917","12333774579950305988819628044419340320622546709717828425775786213670861951381"],["2418165406079487055787937395834004057311759067308891020944392968801893307071","1294376368902265878849481356225326305188255303579436750711196128957973903124"],["18765678519989469852160163450682078552483662797574895185652857104154121757837","28141721321775773345885459528822615759136637620668804192287139434702313498083"],["10364401144588436673216009538074755205657591268984723031191690598868683742726","28622279339624392404581858908446304477887995237088000792029995473644551186219"],["24686560350508042001825806256796715340112642963485824092100568741419678958868","20848109228131623219563180319176121273959367876027185728659806674239331000530"],["4687928619440188627611089147075778456882502633963116944997330129289524201219","26573200193075889983133323361136486111536506689138397258193462215623356408866"],["15424059221737711604260457638252950879687755557329851584997648428056559950890","6587430240060121177549605257828924058010134142836061072902996949569384146868"],["13286088878951655036921754854024075572411122022616429559956655660608070951658","12744833996089150313435068830055417055682585152132628779299430616665298436262"],["11926039070264926028588518172894030298301728502650359870209454948763044437774","16561150042969339878307662275286108441408150023796207358776619530252893162168"],["741269907747091052485584561855359956575081874137284946287678135616455127072","3877631353358886475076179583479880611302536911003734792851158977630319632496"],["1750487159160833349003924649511236650298033721925047163601526427447846142454","9096197546685479040587195837557604224991056577022941322330607480378524428063"],["22121650464896074449819116040767171691384339072678962213999520865367157619119","18730591076400701601490686645365566409669356571762555151226476916482773382372"],["8266741450839790521754021903543594779791578636879391747368558978363834132917","2203468772981081677839074738464971135198243408479530670117222784696938811754"],["16192786324949662487672731603964912017060102903590868776117386553951166506499","19995162433250111004790092236802872767433000045949545100680934777989888083582"],["23104916824600968713382529509858414086306268674154541966011901495434367033386","8037033785602788491062333523675115243838079140344066266091876022393427865803"],["19733050451854963596241342507471628382290521100993726033093999596849471364598","13823697427365612351504870815514102846652757627285207160209857517586165949494"],["7151945336434156259934928764813907818846566032549674632083818405324751821321","11380700816463877528346994693094012183638728340599312920559875681625831140398"],["25323257532725316964565357454109446045071479508101500612810112430447967845361","12214254045894168202450812950028983709690430198303051218236961399849438124582"],["3305655239427504434548290164394270134141614334497260904958853841114651753705","22694641089156062521873571111229589728511734780425311878425641417450496714627"],["28434001320508643395501356358801657322784356467298471519640350656671868568551","1539220609124503543973021654738080400173588331938838450753591501303564644321"],["21219375028670424323484880103179002114752000399518187038815971524473065297077","10910751069618139806325333483283856081458341103626985272299937394630379471112"],["2410524819849534107358269566577897784251806119068254192699568249736269357895","4062882250898943994766301716062025681001992397949942827296638898812930407060"],["2257356648240391526580364934292013349943462253724315038959200937335118011383","7923934842513033987890706518322963248428627021737119441779044895285654345967"],["14761889151891175108523958477108356342954738604451958844583794043625485684535","8019754910182660163081536029164389055484085302353831719291826071179851389308"],["18412576691221082069432684551294113548749868957636870831727886452807920710676","26629839925914047277145603055074420523709443946008891779103440535617457896426"],["12637270671380015365791912698919970802454310887560763498869563426508463837307","17439166742933367111958651625561704445216509370698030641246287942652846078916"],["12405563234470897918580497631898987773764487147841462843051722037291606645882","9958064334429146111065120224590957706587566584433438968662551644122922101482"],["27452432453904046838813885872541744830426284519912971159331571708699669235145","13846161638560038641855647127432993371781792289817437938395453913587452705812"],["23665567572782312146204793298983238176650094166083464439942314801092839316259","876276694840479922597176854214903705921329353084933435666384907896716532680"],["28338202616406581338398390708592389449744522401082921939355462180879825728678","28691165614397658945341998600273400568351786707302697924620890525709731546044"],["16620942850341029411168581268733795395069167626580910297893990670269510405746","2480182288304023523764754185669509584314549520152869042569954341855271518692"],["27748937813095743592522019389470881134024752389648198699003218744390021268758","26013903776405246131004130360472699336937992468259762388244072259823260886038"],["4484996273422171002734467302565930994461314711376106296388978800281126278597","19989535607269554160210120193676652900980636200355469609853916478170764154830"],["12047372604694426502124009611359758975939005826694942983994648437934476033011","8355183701362948562735367803749791082417272893712974591698872896324688935003"],["22432059672923393549970900469146545683092075372230134630593294061576339489298","24478451542613155277728828829477591117690409165825856629871039970065691011503"],["17803582830028816129405025095147837930073601523732809066015043282423515390859","27071364934599152377543984920933508579260702115075736795558292849212740751676"],["13724069140460323910219717935366172134043795320442237483967436233353107917355","24428934120314165200685927140885575160787091393756418978886419298787863869614"],["25724921099499423217645674237937288798265877615955075741983939193102189512405","25757016454499051406668022756145321206236714903915718198692934047587032323086"],["4024553737174791977221972004864836275228614651949093313091990444247900288304","2383250978057085356453319724411398564114436679619769684166907082963573918520"],["22343120885627480673348113416079337427374017466398677902092973301238856756452","16448269718296151662462239642139132285956634737313178197685244339064125314752"],["20359378810855665201970411430950525855066568292093218826323550763180790127146","26574878109395719896674482265609376682264982167196586474026655188541041086630"],["17471503162404699533283963546977848448023934184359707474923807268631601211342","18104884384050343420577483398320295779893696813560797007944207338380323792816"],["21185881463358383359900325858407657531148631396182793082811217254395392073420","15972284292867539493282211630112244089417590584069247248346697526750824474218"],["17820193873344018058583815989991623701659772214977190652947554560403875871319","2275528464365454528204866688407164662368343557770940164189071695388233017374"],["17790771509019147845344597789536488207928995191469135765112773333278599209312","28072010714929306821542566321681258346276855032063387623661149036124162101557"],["9489039214739253502445206469939770227074492363397202694343418932812008521918","12338211205249150499203071894977104619300480682927918143597929872693735628763"],["6364323579536875702211606137748465047955486792302336619751764856905274899394","11759088698735901712562628127882722544638147399374753344877166111114973859725"],["21926753015995744638097293985692317541051717775155622438873445927786394496549","6358136057058912259499065689571472541434653022239363889100194052856901390719"],["27662138313506961512702841856004986613645942182006265025327528156004858826056","14092835337259556518579270768244900619532275233628348814115036792012306297522"],["20861781130776661758364871128842585322016689047238730620790450345252635337024","3939641518775602594613210936736293324842072780555279375175159879072286113150"],["981174024448954207662661834650193648569797590347132508583948096363016094319","23457232390972916503452965595866444467130356556627969865057911126519907160367"],["8278843049946943876842364911594104363315648927358574266562360921265313572816","20554681342049928845236381091376305926210394337000017493704240567168329316365"],["23601895006618623635465441970699294082745494889890197274558095120215815538354","22172020736632033647500538125658286598848581154216336378448978087077712418026"],["10884668085093870817175874615029232480096426968973009261698671892663126047810","18427945164448033270524296046896676746843966698737995482775636866221854357517"],["9942252182760516197564875539290443993143224527904062146875449738027947887106","520347993652608026583574180140877724106764068690978607364100589941551692661"],["13021249494582972352498470396548978079572610506861529479195248881184026723933","7014147813475127070676589274352798961250100918891301029631519003395916586241"],["4108869065644770953934177050690287310572224739289263205039051271164367586800","27795196283842558950464086357473926181255308201621504573743747180497777914941"],["12586258219794862375836077068925096683002235612073955082805195126739897631859","10331446187894928734676766498229379259388173015479298953211372978712634273171"],["5588354998390223256080072880761238367691645395773686083125878085383822077730","12902979248133183069960830263971934523077952311380945518013857890900377989063"],["25481885602454490065828308087612100667179057675374782231382604418761802433862","8778546154496118902172393219844218360335641563648560015340739957141913135104"],["21553114774622072097836275824510704102652870426555362765990465940511292473014","20108126772569746062451782009275591892884603950508351569701044165955632543717"],["1620705456443875962329073509010300705762929149946817476621588393499370200447","25249125848644003432125233230080601375456266147573836513505797239301672884542"],["6332226682240252624440122399047410704264135049733969428068691307327291080950","9722993485518497844138925346944636542642688000591083755444028376173543210769"],["28840972694347784471320030129464813628301425569516301273013769299399306550660","23218795377473141056905987113179084854106075881829254151652878665251799209980"],["7576334971913022123679876093314281473383716369593287090530174634018804456297","15271293615444056039039788854543354899128748200989603484852500505192334262790"],["15110306087889500145994171794862005221258616794368231821351187583979372583716","24378023944479821896620398658884177150833026835473214966097938905607022745589"],["27873021563485272097770708213487717990275569479340372908189526910462174742322","27431325101873406781562446368005562002525078073535599133043787608214368739846"],["6680455718355683033542584361057470675778831445748692106795888280553550989401","1665574593932560516165039981675710086155947997618800412386544109504276998323"],["26475180587236535816551431553344081321655151318939982228229986459023512570079","16845960725000003251747757116545533861963118087202972261116415779793233473769"],["28351191897195202472120573600937593134357954179867176305884749902774893157591","22412303482163153999372266889216410229625746672171558580491661049240644362240"],["21225323370846723842789189031084106027935761654338786248306717907251128920665","10919029347614763868980074351148967884714833306826862475263160563567532091569"],["28889428012899920868542538158974960017342634466434496200837083658391255322417","17361909401203018936313063919212693044585754068263767933448009033232828985827"],["11629405461198442836306490905589295584397573461720229839891866234452883195412","28161409596045541030090113139017561935901231604593829481405405801207082560053"],["6530609789472924652945730164291678599079013710872800728608939623396582036038","7307011825716431886801459632294368944024961112810614466665914132627525347568"],["28553833627196692271376347571698859166036257964822571420140230321130259388337","28632684102340403326454962282861896973736100864336929572749807024553829748877"],["2900292846875607014648178549642462265865558893123528806740216799823236498826","16598438930834989045904852862983430369112370616847781912922314838327448159023"],["26765272853663782610888077403533064987062146068095676462722782190116130710569","11423596199184266083215210211833242772947355598141783008015363487820841368757"],["8269302672043477004422211092896661984940533560820617981928939169578858645946","21594231735490324940815455733292578428220551228219229812520968010718328899748"],["1561241951427067283182781904417411673844974601079830303533221557053114688266","1722428154845318482931868994448215217563726542978780753461215846448218987572"],["22880049281815999987436814947922039218332288526182945746508562048210307401860","24447407321885133422116562372812100644834814810761740973789412064983261907558"],["1101915903267284091535775997282970946070918983938182556912063491584922663549","19018404036843340373022616781252797099416084187920733243409540721718569149890"],["5637010603837330219797039596517309736629392722352129726827091538605690384727","10857651811147229974325201663407532485100073694195664361031569939939343719946"],["10775700482117590971781241142361387589239878115091525492007675551209298769574","15702565316660713879455381458982291577230676453271875205196123797571338334083"],["28285542647571072772861269896815975426122587911877704406023255710027870250189","1385091216645858932525412220624085851170782926409586649662389983779592761575"],["27852418910107245965165081587353209508422375400533942676850758983633811124802","4868730734330358890665872466474095129558027926767464138237323873934745009796"],["14876525117989917157978915015592450036195591989119738258873695092741775812234","19169738565344619419297165518299743794949571794561972025035064525639154907525"],["3061287709660168214336284560321248695077554401473023892449906699576252878224","596129526635135436703112420108790991312331613496231947146374970389561681103"],["7211955458754911232072370346849791507715321803290163033682637324945378728672","12275092655905142923705510216753759127489575081722186932524153337596587217648"],["842620670245351797467006288941987506132100123959684771102159403920938129977","21398554832080008618544207226696954807205746767413740491023469595224442810482"],["26170474924510921173159575782800235293406951400283484610484217876100753687357","17449015203048070036773227365106084564321956738796822784082700841633842829097"],["26592303262936297955257128381600384371032899207946399376093864842072523321274","14913334673206330307929980923066727766356760878020250649333863867757472721819"],["4820055892545826462224624549545906775705899398388593794739583393537190748679","7234004807933657644546635152277974573877039727484494480102789817239249461732"],["5990007617177152524837934401660806898792837428537222889021179440417404755471","20847395533244472296629923976161923503833029877223131557157818467714390511784"],["5575192513957455651058358793525111132305593605629570035534799572266603694845","18765789032511000585840460889241113620579274168147245840028774230996553485811"],["15338712753313055268362535662353719280684446168515229195995697673955579880428","7629593868093920709612855029774743424793909923255640049408453119800350084234"],["10858101077644033763389753178905733396995414893886975658014404914627722325909","23211256462311011594270866364075242900861756434100589299598936924275319822827"],["22017881714332547608792395268978997392322579310043575621280354715535261205268","7545542861866676585920773237757948961236803859218464366240284813649993494913"],["21280548206973005189716740387689983190048220157343671555181746451914057127645","21883992866567738408171157946811922604223729767087797502022311051321428111042"],["4142876640597242151411196991168687924524795883870386987191671374919465420536","17796194893931028124118150944218605763592536515561674990466640333555570696129"],["24547362106264701149105410094058377432120714000543208216354780820686619364809","1994033331566566348859960475125247229954342893696184112990775152985758893211"],["18308017522046703377728794597363251439286445116226268905606735191639369275687","3184913691820128233631846839011641832163371519682480221150999531847559862553"],["17571022523310085847679667616025295464166810038290084504522504644787972466998","15140667078960971368808691031452231048430734593599856463634569708158742792049"],["24655048108359952494737307893580514126029198184757041785580237876764799318252","7200391090768112846783105695894757443153277794852320181840405271767175744624"],["9872334990272058708804754961207959611151357166153300682897487617356123953853","21235333202324744597272733966253777887421591719231781503799629341294017007077"],["24463259742550830215965355610538733577380108217866783787928920020384648176520","2665025188837697195125262447863525599322237410123927153353038027919794827375"],["25531648323265170599310590764194804517461414461820103674506133342861576530275","1858144688472686554925418271027080731330425250715100161499397238831588285482"],["20224298102997177825097895016647353473083059123372760117456549001139361041672","2330861841523312859857988188972538967925377318231432892688133811898948439105"],["16290995211869848972338665789105914045155711024836536139583279571196438264610","323458659619306452954523974819908793294003542440538854299179514361245703516"],["1427067406764638797879622667213060982693096142833436233183411251987778185269","12311762230601963626448421351426565234383737397011151630658826406979228034945"],["20718833500397598861114083682088162243365436001610906032329188409760297851676","17861176159841515285882979264902254048719104695702451858598578340652510837431"],["898863646792155561656363261959912755315449056382447787112611001830934454625","5176992978141070503561544912637492915499837814748338884847283877615310555634"],["28909933997028941337536161216350816479504513382933187601289658664567804738855","6834836685828072657616058230545079697890446718075150695582306580920711833420"],["1151326054119968053834500393286062652478020579303077551144168272114667404090","11745547035692398516047420725812632415039354346926578097291716596524539247579"],["14415090084667621329596754852397965875981796254288384765738276522704132147360","157833510450088964780662598139844129091164272191045912473263385348737545916"],["8430852834553868694416856716064065216795205818410572077644553083417715894037","14158551948882203454287089385000898252795691000136229937565331811169493483698"],["12211800094870480037066224390039661704305419402295899805368455499023596505009","1704104144957440258842025770627090674461174064429753667058702513519675762383"],["11200787162021006997899149880644038968534820374965802087330085166269944239017","22034079966597017450467577488803781306080938278951813001638495387325494522236"],["8011872547951042941533693281872530697450046271477324213880617675500689616283","15890749838352184106570465230796360217431895005058969291023690297740141313951"],["21333197966271688827248094288515093326714749296086030532819725871340307205387","12790287238460853455032985770432601382898555097727161439527507062725286353158"],["8684515012455794656879227060300979049500213554847372219601496368350685387180","27784658111693763356340909981663012034036009660412513449523870144905521316701"],["12817034615808859390607198028234772540794683251203368319383627198257609183547","3509359037509414458043596028525649940167613937655594467608313859742508050698"],["25761567115484213184754807085853938238376458036371800555199227054216583224973","15413012671909489305126607726218374074153860017407961659848407781343125801396"],["5226126528958785688290972567198274159976963739404324905239189564614886255053","24516221966753377676236707034420142531403610736080857954775874736317423953803"],["5083993998631851400426360086608714997225390428827756839601555889638077634889","22583319418955361202463003659944248919631264486295531075128726204271135750938"],["23498474609685316611784817319820525059568471833092954736654397044976841921766","19649557082478406818569760054523283412784595683494730988294209053260647312566"],["25453309623893805802055490024028123728117823516767439382809852103349261342046","20369547591947934934138871684512060842212701205033496459007522875123862149509"],["13946300083298458496074059378497731969791577960917738345010134564961685415801","10766440846890980692270279386599557494465647514069376083294361999791230854195"],["23695497438380407327894773433567808800792721084870582391292256198727401943887","24099008895879271471339927457969898884006834656486231750807204936103901220634"],["27813233150282232082187731984029901895812754884678364355710826899951928921972","23177601230701629195211610349351038462924475513573762949676157538213661714484"],["7673167282196784082314848124004276056876145095640491191315747515535421245926","11898390432680576793456032052651720882721206089366496525965985205692947817641"],["9909822945201147426622914649224002409375468139074334218881593714972889700753","16524641489819180262639837957965861423537855750034981061900842100165592296079"],["24385165714621041058190561920003177573909656048398565641796915644769300138044","273909742864190529158437887683540050612968526429892236219475953530101991713"],["2536633452566290299032789415736479262883742791857545781880590521741872910169","26877758917856557854609477478044385498842485246412788762866275516654447301532"],["12514893175788217248103297509871771159813180150427107198357095732438862554224","23971224367943724529093663086681206266080017661826651524038516529711442497807"],["12503477282684425969034199861488782225238373267792428698960971846888469126236","17373397973983468873992009600184495465072752825899750842277938149881627623318"],["20963163957128414748652610925523461868485466049153094876252796047528313390343","10147648839084597235707886691898815319262936726014629790449826642942354481104"],["26795433955632181325629821239242413596385827045703809053704674150511648846495","17689759771114843012254401403770343331520812505405974146603476759687866217939"],["26993584239744688645381910435033508126872609241496209007150362286421479122664","24260711411990463721221285064321775606815055149436016132410837463645258573383"],["17611482112442878506262576591517021510480109909494886478972934641049116117359","7098495467961244459405325147629873368459783504785857996641697966313703528812"],["27908348380001590950969588660528693903813139556802839317979403654606354734175","19098063520474933896582447383521711405510597295735685600647904392339718791123"],["2961241822167467473374755685557554669058412420242371191487876088172417715783","1999880576354197277940487489985011369560696147969027424837648328996759761795"],["27898521041948467622865471368553580210047010741694300453345897265113284533741","2506619656669018425421941455600616614003120365708899838283122678598657835379"],["25398477082606170659868995622507669445159541308007508393139276084595051950583","1975897037760825206942774617128588638367756680700091967164160877142145023434"],["22398361780088749899235987591312060192810123314564304778009282359310631468892","12838765044562270953778847031755624886086377459263228518828103304839425479127"],["28084048219837092345169224433457002353755456540300515331327688678793226515984","10997614006755134544180793228489784947821740035419544154921957575683866489005"],["10126212374248863297474672220141734906604358958312755147877951204111600060911","28942634996463946598132052901434379698206102873602790002518956484342592835267"],["8116713496218514532654312299102445099182826360341801883217393047941345254019","5400356800646876048978643926031124457064178372746314560912198354840580099804"],["16965020011402632143741434908911509124855517234611286290958529775770833180822","11162414865183022362855854992813672999914386460816301098003145489638036138303"],["6531648826527185601514842925094502475379400327496850744392172492429802605873","14080551597638882998391432548901040619162784614492776689319619950257724725631"],["10540809782018038205234064791296703810372953985388279530289141711657508867788","16724782981313330201704634570832634440074547671421908027604775133340747036551"],["27269470430516953625228673102594639340598594946795136444324850851724571522203","1251474714535798149729465995280870625795767671899951127277404324077204264948"],["23927018086895437332147340261360554261055110738482227739628746684354101790043","9178604648759798217588226346625285656248494447072128084207738416873605916393"],["11148332564291482077423751784626402094272436992119015155489082603906755520601","11629743343049317335010709730745845653953665627657161004312401352674841695650"],["22778968243558818595883186626380497742451200772442332711457139888095796103233","19493879504450582069814518754830628123977351494085470879387440255028761258541"],["23938877088266411210586291338604771999361950688604756358249945521708693687155","6464236515644336237175606248629419288092827041342679665176966042212853398995"],["24669541125935493378841000610661692297138533829713240802078019310718299879155","2071820559211446516499745587785866668367742668880387916131329269696669492780"],["1850009362998225657957877877517796801997789722551673028457508134812767573328","23175372408829550964552633936462760874929875351702782099628115682050987569999"],["23583436168068645263910325594783740745764414268769505378160746372983253432639","23036443283900513213808491631470208104330799784490753362502521930751472396387"],["4785533997802928672647308436136058636586048321557498026206785313879072292692","12068465311261194466691212470934419295499108337953156663212936416676151042873"],["13600065258416622251896694291032414168800129861976436666061731349489957941638","21156405865150829311056675812248127797836711810675566374675456737054000329100"],["10189156920425353506136626082184252145869062047780463030706479444074420300986","931755600933602160289965116811580529094585029650034155694194203611089309136"],["5396704826621736895394206094150443632309218910540842906843034261071548050186","394179132118588793109380183882319769674557157521802818593796295207367676929"],["21529775379122897037816930545916496894820209845265147912016050493380696736236","8540267816651203528797221461484928311090973753119960556776468896998126003916"],["15801317748186182181681261235222914406226389757054131393167354765140491920372","26585063445000304229902996905802111930578080504609160697038726718316882462489"],["12310180389339384698047005193759958665422551796258159402546083040848163825839","28513949329828886961479513885209862803039957605861820101826880444233457902516"],["18796999588383691238629712478538959076688869881333313869760297663487433934787","11848900712088096876110632935457115656531841967586457595516453850820936606516"],["6811384861345644593865537582744312520451400529301546154391333075972624133231","9383505461439343684030937656820872540838667373475805527403418154328453275624"],["23091931276697548461612834925757058672748245174767477665039649562616772549700","20433788394069796473681743707527758714108533646781374659928994436354694504700"],["16299743642008799767639261816245012709114537308046932827940850292666210541512","20962804439242185731218468531753985601055755602418169483874626717012128556838"],["20720986161805841529587684660846604907079308819494839164941680340263711704735","18031493659472237714442560018932281499953684275872549173679560461775298022978"],["3752082397631746567625163660533987918735397013380348983961175515201120980820","21090278394572745597912626530450745950173228851828661466308814112509727475077"],["9922376415113958912945129387750925482360462948746191857808475955617247346988","21184666334891488979661752439011418694482781529802245683027199336456655291453"],["15541235799339315786874138394938631606790041508747689643368890635276908035764","20915086301426207124221870838754415032734314020522402679684719259604318860768"],["14358589841673243378396299755095364834071258029794004785754508004292828681423","18002744412170184845471879582959034453354721217978643924088803005770426735244"],["9668372224042334954033524040455421731664694731446637653566529197649885976853","17004893973462057795453349654327758115755183948850036363894271330771544171267"],["4476112212190792306182361257154272092045813074381473542765472653339054234345","27560426422316273970109556723153115541726512310431382593138075540033968787249"],["12658857382508733736947670276061953956589604290758000811039525646065051162593","16404769889205771823389379883110895677362120442438705126137634608144069371778"],["28751888512457650502940313680677062171964745137584479603250442106891695113289","17198041991864832863418594086319433180857287786619391318859024511383976713578"],["8002818111879972751854673804020137356737272672327203416690173400377341143440","999496253921543777350394027157642697150278271015606297742284542940661194830"],["15688242939740924916553920115012793990278237531137565396763936023866951936051","21879336524205066265632095727076828164901187185746895925596338318346696495413"],["19427715705229379336062108713389084367286898055278898901130930253220368840464","6289568402004207128116024247727017899713584123866225217308539565251378857780"],["12128763406031226973745893722611113281846029252410236917841736592393096228997","23949414750837179502673001051443025662900951759156660121170617681888232642370"],["5561067759132140365266728687274709773395668759443628800881256210292473238911","9257186099976214451516634306430771851822372818063975286463466087375180703339"],["27218866010320583995208339942129884937582985575414281099749419040682561729683","28683948079168518857690853593283397261522291692993946632995906404666067708956"],["16771954750607122058741686563004293177495988161426252042046460662582249144210","25597238144389948931445450585555866767453469293590048732814614659128961411359"],["21993287927236797700036590290063963375730408974146927100297153387426707486160","2905435565764975833260415473637710830458853417602440072987291703564174028497"],["28812862284076780060576689442646148629757267088444232608235012559750810794665","883203907318449476217495892952848349049986878991148945592383684817100021937"],["8716906253770838435664467748985423172773795481688234653845853478931489101125","27806468927712229410702673112689707656555295050166535653718558713993580403862"],["21253566374395276951531529599639467741541634016093829926931946642084055290598","24682498872594068172352407430818577200035461748147604078512410248017482730657"],["27145200499231022227989901458569555271919363677965432087379392813801171557538","25101176794035605124315486195216205559907558773103604046892000923964240293723"],["9711687056356400238919225743215921626609606951811333849830936621444911056999","26014426345394670730655078056236524992461147060922295344614462865379754455812"],["28102890118138286826030664295550414081365631820841243062425621383452016276651","25124481555425521731643534473819844894525279988079995732660509948412231186458"],["12209915489334215978057159311228223724405675377345508997676251292053746986020","25088700749860507086295926938927122373063846029493250728429171966880515825134"],["7205426435990303920795864240909704263799814452747376641938254501855184286659","8813097037566847647615042866246631618017817709569522571694083381215251907885"],["17220480159278446016541103735396910939618371090559989398840155985430964702925","9289590494335101763121532222358596166551665299339876181006599637380732818640"],["27734142652929686310538182145520395879556945875947421424430132299705096335866","2390855619898531823461606483056912169822392439065532467249754159141694957207"],["25022635809241322104080554035351673680588716554786236774215099558281444717238","14363032958357521477110347978945715490781957590156545139055832373463782782030"],["26828202586170298148594802293991153735466717957998863684142251473650837190314","28832345030473455358676633643937271479556659700148114425317874138181450256554"],["27475341500910422142039543212836390142078860559723465871589806671131500682927","27906711425264218988175941936974406577099037314127545482002935301040630887254"],["5469238827824341363606785214851985946873027258745708397751557910365401936289","20922573978648620031617652153963158134988552672494507567865410964520308204595"],["16569186554868289908539768652123630655990546453298697989966529080557450123202","8142456937263869771477764840090242088780479737995091500607660654770288117154"],["17941241862779555800646039241541134752733653976714123853790816432147098103447","28759021379238465463767533528485723783777187215999730943247000820755733551385"],["7112572663656383378853307168143570886133956941193299926840954340118475863088","6977872662467505348505946924081859639370583772955855224635187138458047844518"],["15675117608642037348668896908786915781116233995164765362840087000434538593786","15280607534152623282249617183715473246133669934811347450692115908600108954619"],["14956067395683395201134867438099022376176759447081686582174657804636217057702","15790443654783654848409327590657460282019904527068831492613340743058039413839"],["2522486338209418165626751350417659092322170639670490825276646817414138252352","2786801020942125276742945051317070800447450689416321562599508779673861770510"],["21042224947387180257317382146168654158651080497418497177275335727578781978408","1648788297771191410010189690009267103007049410915774701292269821986565328815"],["17771893525455588476520672887464356488003075518975475702638958590684858148084","27997240993749872137327307435804259181097540028112388305244639222337303263955"],["19177516110679603074738297893618928483099596022964489799699671958166145337096","12673428795076506965201769820946318638554169014646827359657813183696260908693"],["1623800020081198036421728040583407563863951471808275699993323313439877832031","2040601610619323837149575725949196819886299267417875924257120784196702598792"],["1344578403643683446533336618916342222001592528710942838620593349360553774","4400674458060621693683920660872878714990329412431617601554713336337690838514"],["4946582334342967049635554751870476755872980466984228611813687086102276269307","4602843975162612536636212316132722135641387329540753565522268058749318962163"],["23982314475564486920923253870139438162810439477163283425296394292446388917216","15249150563962459599013693236527584336211439915916543116776263705670259943442"],["19428937806936502926453268538731435106565802620909211718025246980026407442620","9542950780790049090992935366329832149172911662081155793129841003584544748510"],["6902615708930695047410349865615931373738301737622625625297676013853890206514","20386843736626641311889917867945498293414701905693767733853019482450102772913"],["3135112785983423065952052534221619808550084160488198327084816880374765588922","12430951178004305769732424516153455464248299330669198944865990745531107550868"],["6930637613928845939387179906387881562273682831356136518988711410152024569249","28828692746137566340282620578729814794731531937381444597248465686171131068015"],["11379662823742593550173233896869275876633046020483815244655799771420741292687","21481269652148130295290755669532495256049167148848656767932226066807124539494"],["11383050417855011306164177781684434977503041049200929062537454287564117718693","6867484037131319430076929878301601620334146340644360133378096891960894245139"],["10998841909636618125854252847510929166604929163582727678624533573535124777127","1620072166009474735806657842732303513602867946070885788671383543268540652806"],["19198769388636112677893060524516953495959244715091627761642439462100912535997","28608591005852804145582150035132892074575170442956872830772801431874378964265"],["24640752068788528437162311524325654981117214910677785642209725096409740504344","21934216135017204235005464832806570934450602261335522424208153256467001558345"],["21678898556186949450728197807669109766355352072702852922572904859399918332740","1076061371276922529891704660927231774117078623937011934358890007931198756773"],["14583415861450439358457823262938769592404956125374575993401873726260733386504","18546437319915301327492279118361441430566595102498725752184418080578962897770"],["6567128858800051785040705654887183229949056025570482983512509652610843022141","21806560760326254077325621203110714654602630072437623652437543085176419300272"],["8059716435406706203110121881441587411709941687457313705521242161945412709941","678272016785815654528706067367894455262220905021497811383765116919102564725"],["14526669727679465414089987391602597473854865117026917587915051497163956293648","15400125366688598626056664262533110377816459635169368277291935591566359218786"],["9777440443303075836827061277827212821823222584559295789871822079650943989175","27999400724393098398016488417734466455281096702120133511188157344884354205323"],["21992218721651526686827608443960538949461928137819343149202024568195092800280","25257829786560504884654288286873714432604611167641068306368977061998037468160"],["16815985095187462681716002817506452096574278104907107224989036179961445067215","21467710223293937404733712726305020956986496139026986768519077034472283553672"],["15863988988541604580149290247928463922990321813913748473879187463844641090403","6520315057924217090071134497142308785245506732446905950315518291607766163776"],["23369754877707922570453469892665997818812087174092549595798674898349350703687","9574665856607613855117039305136707237783894666862265993626560890835043018513"],["20929497365284816961094504297725609611983584720105354105856327669580277516523","16875075087891286805345813344013463828194390447430889346223834885915665663537"],["26680124313653560162278494742217305537360024848413623666347464155314435686954","10834156340861964462130672951408716518173202510851822602758296585515989217102"],["21986874554277740377112248455466207780752316624789586737691785973614817515711","3492086304314072756343363837084731836933114581827681976636027050422535461949"],["14085998820461178170987608042855928801598282395718300406797789461315579155361","13140831138936100462069558872490494185573340850751064275570398329531540626439"],["21912566425258789327171298226171444461687754672877491747988060892731162251216","26435803549858813943390217118971491851461534024300207011375863846334329910601"],["16280602182788734303780859214663747860362727652057826817844917616064068257716","4544843522289489807674692958231346394487338472170529168937264836854260610451"],["13659660738113537424302898597385670229846254917475998717507005031260206527983","1355892394449390771148541828219001584613958207412480874601714802949606381566"],["21946603199732725018123766547080611091278944870650155805498692995160964737739","14114444546666615164259629864057630588419210280606222461184780336755572414398"],["24333857441961333585416091392851668817124770542711221327664209809507406475410","11741363166940158381249012361091342732549887401243276732461443448785573159937"],["11847305878747610826122689042600527082018311414006707103756661558620069705253","15472371200506467295789660658910148175639733516292768403527436140048106995833"],["10714410767071442639893995646856070908084398436475520932769243403468073989896","7833524372375452604275931145709061848277485630722182840001028871971839674671"],["11797017468960753804356301166931069723878910350566302867646364168454961244400","24536815365638015135454378422861190754644273859003725222172409088475130045872"],["2077643584652764310186324969242327580221470064015471178564767301571826946421","11368666336057519123082490729484289028443227818854070217734300147578086775842"],["18376793231561688312981224051259661356783205279784581775452093826640940569160","5165284678340479972269722420218517727001221453559033970494151501748167683826"],["120963757866139027039563778893163730324802828004343991379610650215362321333","11689500872485125481081940799821442870165747071615996218113954651252079157005"],["24624063574698916577781917188485025972521620913468782473819246137298074641508","1783116102826024042274274375242437005326653325152048070731939182295025098307"],["1503414868284969143740543547259618228724001771709656440314292481131953013198","4656068902158421673780951542015535842238431232873457685834014407039180821768"],["16801931273837684417732046045791174694770887688918132796052348754779810859198","13748353987562182376897052304222559919699895886175997534230874740146127114097"],["28512483055339172422208031849512912143157619402244042820424738020941760076285","20777000458354095680056617767674056568806858141182911433301920901801534909244"],["3301354878574400857714759411790192171860638611484599219752945645318953905080","24515721248838914985881010951724293943535540954478500368269490791535070658359"],["26240473769017025212321980957344849211211323543164915464164176611784765136557","5703432478646130716553472962453510787462571202821414846760405564644645230930"],["24733784284707594665259126686577008014728852958045131080707130394489152870511","16110934573353036548658969625202966931279496524858600696193992116415997008038"],["5062777147948002681826467403239157106931214424355742860485174135523722268119","23872287816357275295851649438788130336941011035062489760049283409937787172060"],["6736744301830877373784182932250233825272167879820262862824951982808281446790","11855849131459965945021334615241001607744206850474217936228366874409234833006"],["4010672159817203492049943744129868481953288009534342754845933400342644747036","26778940515227927234080830348587752673096156059727357279524464943472051614640"],["7949580293864492473820058768960875487269592773022408855409663956368149196584","23399036802094918651160488943079982526356594375575304624879067378341230376301"],["13612019851520561709942916460223945332409573040682921848888355563001725953649","4386324584190119238556224235946598976210284122589915029999148560460600523302"],["856074162559942133966037107681675764638669448695706966202483435381155875202","20738790821929885116154335551540408832692421997551697976268115589062868375282"],["15102037187105867968876185543115639154688739263185394993079891666796215395991","17956084359789083521215973252227515300528740006219435426293235777747116477436"],["15684088981800347865538370889769994796447238955735172933774613896579623292377","8811278382083235940597317162606753220434880976853079143651212039550216555487"],["1150041445719867581294545844216582178583974161106012147415933624460580285790","23224429414325153593312232687774758888736491075847369021922736399883489290371"],["18970735348210633541864403477616408969380576503299176467374179517348330021460","14750124576410288810767354177469870860711049495722769555370298280099797202931"],["18875794533507798863554012953306349016547196945661544695529290344015218187824","26432477691733880068713949783468441621388934332613018580341146804865054291623"],["27980011012757826155025099235178825153257680982396086066390987201867757520444","21485623319572225971796107596320871951704589392926872867379474825067109079068"],["25907845523209766412133843550111752248171183580386923343698656657068820137427","25109607649741104807141967517727632414379448423070136546109931910414027206354"],["2430433754957185627244057776563550245854082785037235027534816746943271443838","5518798714535447396917079737256387225031917785261270195976547317294106152569"],["12415631721656853958219665459045615763523058103510011260609956164151536399527","23063926239427518897353831378379053980953949080125257239810794114763576486683"],["12202584981321320302804455932328105025190838011011398326000526874334478119048","23360620520284292073203330599473913250990328616053308020819268403244810774110"],["25176536239563183303731302524773178879909706463993017600728183829373876232707","302372519142277927853193266278909779170448790844342851954331211055504470318"],["3687107245670355438518571210857475435519575050608833859344334567735182680363","8508642437753768335875502776223485286849464261171252539762192823907264460009"],["28771373009120959558953314889556052576952556103907210253349984764717133910479","10754061393538510412511904574848850087452871999131364014171579963722197972995"],["10201242602177910284795705581325763250766016818192548686099048860348696863770","8835703008971799090427725728808260950779438395587875811873518237122818787920"],["19624078062894673023404499232466707894641007995564696520847037284125247351756","14860424835911411037362271004930874580383633866140950176127136101311701362417"],["26344549334563272005490541764036212115753848828362277422658525102694190084531","2856774279644509707951144106809881410617160780647852802380998083704471205687"],["21430245357324679415082937347664917236160755087239981181935512958866568795263","27232446694449972566962805130127244613869348524430771933682348797563754535041"],["11974477165508964995302929700670574967866532324979057554473836004050212498778","18986441295150253321984000259819884351443768600678540116748336449745350093449"],["10296764996472834228778695911333318819752431672098969138483405211808559900519","21644236214964687424049124457439304836334906342418007557966638836880355996732"],["8409021186310198562783936929473158781201094741790677669473448682086496959120","23149775164802804195834247917650640030074903901948256920285092036177751633616"],["23716872830286415896521416045942634897334320255780737628544905852024389851110","1802506202413908790968288369724938854048825387481246671612049640055158912668"],["22742950393463683551234041885459752871237490348248041517238200706774297917513","2598364306694010598807161067499476452285930864495600902371658029580354406723"],["5306088892845816186944018102337149017316722926395679859989843865647361697928","6192404762141438504590768897973055573573351926056665591626829775741753284699"],["16177937872948709975474847999164418770301001843091554760520392832863701450968","2713296000310637024970285121888737512898730189347638139627680367612870238364"],["16701315079763597866298503184820557133705211485704170894534568710572376024143","725225207470755933728115660576169357610035189945803523143948311884602411917"],["27106065342042154852144958639389211582871823754463111521394251338068715085124","21453052214504759998604365552569059405337316845482768596487327254529993381088"],["25120540130124042495637791207467660916140056317687587822645472623279567376019","27424235591416061823646181057065467911388468197613392161060306525024854793770"],["23351502696855838995618463978108292556957882320977797995157040020775925895686","11923820961526023164293678587974757203875633786635039892011234196121999958749"],["23596549552325923022694499809316588385198356738753986538187375494628698219037","938392921050775656912867467822479382426341762811917106686870104945131613771"],["18620572906713540302589812249529017806390754921591354151168378815406376358820","1831360089302251093522552954587541527037383314154913029668321822374257768794"],["18081140932969449350630000862210003329490954387453319199788338887135945381193","4748130010123189625166124756941372815476651549041601376985404013165097980106"],["19478769478222178138055557183849549227490667274863459425673952767656879436584","27744741628603497902859089725450218636796596010532477511693767083351211456915"],["24609302227293369077344699282847898135434469211809510451151086439262240739560","5551828723881709669297122086907110307096072512464818903167564777296242634663"],["15010204987923533567274901793991936984453349277554214152752784081910926226436","9423859864858032795114423328689933541676862014131527729094327956413283628452"],["1904425893898123662129589720973632064965614347112805606504704821965513882909","2899618057437412628549024357901115795600667526424795699760632016178170254473"],["14840340801684870972238609369200304767612225970419971950840193988354150070542","19290557962752041832875984222780930253276231882138903438526574098478591540645"],["768205694895131653866708401532466829712042418940523217887153269888982077043","16353145266551137570000507662136697648042687409354618404787960497225375083063"],["21153844231182745032462414233219321574068528368707185566020277205133660170128","25862240439364837156261141972474954555640131714078475615891389649409852382205"],["23127191484420748460770896198807406318198733426160880610623784982628348753375","23587162175554605115087490360088064282036840812663304131818505372985992596494"],["21038684840287586275897726093060835821216024751865856402259320978851396051980","19908900035707793988575569422100237774885823676771745061635488065124095743655"],["5920633491314055966011244953339347810992686389859826322394386738964419477086","5668958219689318340760756414970555822139422985777460046292048074377527763606"],["24085868799459758993781617641120696921042972312486975432105046834609411476039","22424880629439463636723848665800897043190826867554492004246053559581380301758"],["17693515121507412608042186614005680187966474551363050209461985225487647574400","17022966183693756571172485188483184143188719139541135786093870243788622929761"],["27878289666076611643610265802352321142225044191155839783987326771229609324689","6105323497961809272617218984719379994451299730752901965605281152762950876838"],["4388368139055980993749323821146337368560173065568154519882915338272262749373","7154213233196751099318793350956560524867254601309914336277467543434126888268"],["27775130611141735438877777575777393469903743384846753436952536458560192822230","21391875723877883441882751255097907157495718325626501735112911935703541796489"],["8971018374950857164734540917683580288633741169217497601479537777419176114175","18925600976423084762788131472611707786860759918526998589742421252023767248884"],["26388751171823955782156580650285545058425789813610046315567020172279030500100","24088592990553162500767409481841185433011637899652286757066347530574786236601"],["4486993018352532876487319182870277714054403244598455271584254013896245018151","5798335631263883314977398117707121637629089698518893608822470611055326901162"],["10936279576470421934288180949335569660108090041001395007177066889410358160509","19106865772750611784779221164916090525706065669634966954089786672641923352650"],["22632947948792474976638729799332463958225808971491581106740878210417881992510","21385219000245732940053617283905367946031917165170860265028962317863918162491"],["15101325048207612248964181327090119096723291789202555419462501478326981444854","17087015285114677733909541353466657757984908420370145588281896226302698125657"],["19467057220979484505001876191876997168743362597644992917840718680941627076557","13931793110399785550662465985714455929291160686312591998554364420062882747440"],["8731568081249660426949924355491641271728945293169523441429026363454772182053","15670441049916359072815865388978571481066128539746379610226338444067996292168"],["19690216706078924666433462439188600384227993890798236636868595218958443784660","8239284578902529570194086787633511116102368801892786077695350585627391578141"],["18515883506305361112869718575972766567468978663428731233979411450293628480023","14258878236598036669603839194194565669451062658607827556657904815561033934201"],["4580109130943850372402933511246301670171275920234231879377567351922034100832","20863648252095530436725732475739501612932345514740302100181418564564051578094"],["457476082560389131564140539938857149815522788939038168666598331939973163313","17149909081426455689804075225226061408619556833172213809649666977777377600552"],["611566626795301944472706792427327393538543290201515420255054114394123326443","3196361731772497868016067066698221593845606433638245145046224326405364615965"],["2593978898260349602726540618638388577838070344309456491270641998203522114278","12903384148460977747722565362315289900875683514237737983129313555520870234223"],["15985430693273941417801292349069968990297186621283072439721901876400550423077","19085649832670694283799538686029017203961906089073381282263017366573879046642"],["18958204252505217692239499323549990217344149967298033837345746755357157770694","10774627781809184736876635513292382973738144737531118179983369761324242645967"],["7064150010562876558185891924644143025609971275861777334679406642021415802513","13598151089651849777561138748729644992021291989215467274831811947523036035521"],["21021302309168771584941653639467092273869592656152539881758626567550945791595","9294053299466500782985663615515196649131640299503291120436886152080879943689"],["4784279245599871890450241457507469732523001313796955700576358041997089894122","22667012677947468082282675867251133787259164309987138126282621274995227196717"],["11231444971614900262482713512442729749967292510739765747635539208673761234852","14356245088073429643164000679883310688736428667597961409931683867120538551614"],["23283570505568571464806941223364305315224415686252961613876300894084259119198","22671307835506308614831448688441873226452956924827913411049679653346072107149"],["22711748903586941015260588737207282247333886324012219390342992603393902246334","1524935845443757695654880696167539454213072861706127937804122183951043073418"],["7534150026030639606798162920117169852983095337632020843291029996131029343992","16542874370848117607279942442268915702100347361837382108406751278752852178086"],["10766824546901091549179720902111659612999087608144704507930310682431155448515","9059279396465536013480577077985786728634324145914423384155531087923190826589"],["14707606959975569714428169116569663094348624718439340883425157316467805047101","26960817483523330913583395260282122876639882503527140456907037621185251361641"],["28006853832411397147676980576912920892684864343849842853512673499649357223995","22914286047893762386537482016597142331787453504388655041276369989621903429035"],["14704330872537514741189734142122746750832464649248833432400206404378797676790","25654736066572150822612391585082918824819478955781825321159435367019027494665"],["6977929519730987677494329312471639033823604701806069748469671892650308742644","6602361313846683856433224431410179759760823797196358478230463097936282160496"],["14169567061609796592959464327535636797716919806764406321779245242539687808279","437569884051194408041428444478024749904096504953576798227700891301162771371"],["1047614485136683990892749294536136145730699378208933016395046899013304615460","2592169479534556188352023691074230173293327212700557544934046433793756475859"],["16984236142373995786742284984434541172161716083577853838128857892397557021911","7147807145166727749099046121239510456474108311769356017103400218619948612694"],["19497910813030067255651814553990299019942630347519793935643220488215507647673","17264190504951681058747482102714005921743696106465913342513786897798060542446"],["21541136739066889059834894047872339786333955916566765731302649869387772761194","26914475087749226450082249565522343193152112690028866999085838105145882857216"],["13190134326167852519936704442950541140902411686208529259698300107359247869154","10308243647504909887578673247241988762445933815931290204906506812457798061411"],["17365821513602258139749784314627562318976492599860457658560099698606965663600","4936351794226660164300036257477499217693805187877220737920972557295826776006"],["22928370089840898409327779320819376402750982758644600144550728284224882230511","15746751121282103581991893020244258846116771245587611543711912931275874818065"],["19509303021722935769423145916427305225999278147978859042769456923399932428894","3141949001471082449304914665218018967472223591909882707018182380315670481068"],["20108929415541772881687549702762978195608241547082709880789422743808441341769","9166519760317520025035971311049312251978018773988702659696497962604611752416"],["27287344670731431618107598455066210680189910754616754909831548785239560590177","4654546421181210290484726273303536102659614883363779068144933894403427285841"],["21586304383132748433537360569833778471945422390508683561179517491707512109642","6485913849090664274307365414756998778785561557962101498828451173368721713174"],["23860799721706501040001336060248883185862173696852197889852842793828138290215","6633798919838019418131703375516736250167922925593748890193100262075596141023"],["23856398706013399659305264637573028383668198913565161687712243919620395963748","7536561270011864988252197786792818911322558659152071322948001871924686445585"],["1058693524301938749567037529760955613969175527857069604783795405465117008433","28085402297023275065411613684656223532649514270629874901655804831495666086777"],["24468577397233895323150391334754576416790444994183192652633814469529672246353","6953030530113728267165386820545850989472936092711688070678901170287270218477"],["8260926130647826311051587012333507967568562015678871228461335360052773863483","20784639586829078848852282382049725079789214678642622909190550720265552603185"],["7597632258638788458776482353548079916395857259248857676810358224242084357810","28196481675369494228724695691987528436053632472340529722444697303373954157622"],["4051625110489898046388831121709549611641868928167728945296350471406235046184","28734365116700643554078991189096041433370483971220872883650179000964183246177"],["26364789022989030238263876886127500068334412301421193436952774079929102086116","14220039028122145020863433443660704320357455726079854965705329634854045319815"],["7613256949696739749760696624029154839090455120414702048356010251495914770514","13676738570848260898514467024143898603417226609836812724972552080338306160480"],["364417599074076454456772704167923967237278244471608629882448859253172017504","12474126123856139438524289590265800471880606681755413391359154706486562737835"],["7935685945240678605795399603856267740892592260778930987279607143881614294978","20034939428852749206428036328025017050861122078486158054430572829115047945666"],["14567348297007649701041694201396620301513732287771141552686667408871333980439","6915108033933446230632572414905805564110574489241184695759473797023552462487"],["2785424719520989477157180013641970471087922732217539851933978288553633615429","13780820425401340396404529687170002298443541194191876987043091010440326768223"],["10009149923823247588678452265483192280679322936030584746316945870974696864489","24995436895574115641736094023528043703510130966941823407751000092715779170092"],["15868486604932710710813647337279771045764251802600381288756674784301248118783","5507678602613298666100898937738742387621545719081802682333533500934475749067"],["9034079498404701184966610727029587622872785791058607614386585367740398178713","7876192461705481724085005561093194052680288142255128748895517894278356992007"],["18882957775671138802048316156621569019753361769326975786832726074680852020339","4210125140815014862692109206565809446976168165059794629818182803434766471916"],["7435424967879596291033310880250585422380445157884599686223514040812101725188","9056680870863828886817724580751386268783063831310198482980188398596394453003"],["27934404852702735341411685375286510965425630691413384495144715025183220134178","12542497542709690525319350587044440890922115186042730406556425316189713871432"],["574746398954979004675927909595559050280073829139508235303945985168381767112","4994995449358886009398319359330705174848681055865709220814254153856019200107"],["19637576122369830132741082723368988465170826208982205184234912495974726476785","9003106956017113629121698581554636155184107221661777006804764102464600649328"],["8722498971586644782172707876805919546568126923193342809430892432698443573861","6997130884300903452196445169986322321067010130576272613211474829631765860787"],["23081111956131625460488149955523875052148011252289348811889448799540885257016","12548365065983833191308411104681167402095718760784776043849627173223821382599"],["14854067048037884478865908829747437906454507179654837874251390545022737958896","6941457293829206264138791465319741905943567104356409265777739480100996675864"],["24145249002817154491434100752244047481826502617373602524410582420471928126940","19867726966427073609440164009718524059717055237542584666199323204135689687298"],["15734757160921228553154450405532196704333138302266927609495180906945850543502","25941073072886280116282878077167701135599090386700321087895991585794191708224"],["21160460638215069285559259821864381515030248585828156670099224193510896654689","21452107393899664328577561889542446720909853954787978896394709846358122178460"],["16252976598351279967929458596137254617795827520092475300963118242053223047552","2961251969569435998568719266997085891334045990908650905490996979963277547721"],["1321227985508073478933509175651131268342626542823502762464343145455995420519","11445444610556562748961135595445338634211974940582424199847601510162204820609"],["27027985334872608264850386795901503858258677810422245567160506680704646591432","8980481782217800313053170899008494773787873634838312445962419947629605699233"],["18773472252883727542208470986105969621712133670697930056483503727973293961987","18321472502110248526493478040634299406599538118029273151289806389743639426722"],["11875790857188866218930677623020272116715668905240070264333943866998350601595","7339600492724295967510756186709334262283632632443714919937562052940590599762"],["16954584963977608642294050360729313266985160874563815154557604182120575021536","26974183727112254233946044098113898206908543652113137557957943878289053189251"],["12526659353700482879520086745694937526878961269621471018321776162541870389540","25673277224975538207646583884553292090686329432265431328701807627394160011336"],["19645673450241645881981315394167654438598957129680437143177535322934562969176","3718822074711434613697187582229993005412807616816568014312500515467254461501"],["15783307188420901677281418228095574021869105261398195243260339694540994162884","13590063454949793575557400503862274305024098389210262194567342400846504206268"],["8324339058923425022019737497243028128191375268582790932161142088301299556932","24399262104686300807027643959437679694256088370468158142184972279298162389281"],["26356987106914916874364313487801735407292428717805131674118858947012620086386","5467539401718927129579679857560879592302796751053975429022230800796448730929"],["18735667620120673645122714430463129639508761675303521170404058360877959799531","11964231938378192690030009768981600654386591618302029436310417819421655970220"],["2180175420609894190801168565511896340821511853901485001622868242254842616593","13296810083130361530206820617705876734634320207975885417301202460733652763981"],["21160962829439340576761481486161497963923960076543539012294693340086370077329","17000721832888321532863289855675101322351048546506102644339745158347750331811"],["5410259687720389723457135734971337330274547830926056522286988887333659318334","19376740270525737549159067828734458227238556795916002718515718191574894255803"],["15832868270324309206104998317312478770643710313943032332905973687244011516290","14650380554994794029658822236223747635933310440923251486379672575409394863349"],["26847671547872843386395431009532711670461709775091496427537713959462969018940","9595280388344349460066817718706857772287118226750756846858208883392625057252"],["1133362212703562881455350090966312795527123169795604422826597206784441545784","2060474087425415618790411527033296547093710555592487650438860951617384348584"],["26751655572058890085333741847383555682904122135195540646690891228768375462386","15706285000101595812794837494174519286684898831971540653036446380951669267490"],["19276193560192606988826653361106298582209708891404352823553812275786992029317","15655084395032737148282940628079358639057323025432131641996485268060647738422"],["6825454123779226506008939255420062084228898929876252835072324832403760484144","26146994286042216019221328032011748565703938461716784342764860111259136915945"],["15622060855495759246346203891308162821880238140168773941471105812967714912201","6491874783960530562940431739933289303551874181338802648015238377509739529864"],["27646393283972130938841603638744866012282237939011507564666936661235384002610","10030433988476592975424413714796016193717673420013959303928646107023924596549"],["12004118345420226096546020343526853361969394709446586657775901324352256841873","2436229904319362001707588949388525750159875437892734277148011510935449918593"],["15831666888500156068785530662155406217692623557910167275819917572064804685756","4230753037152312716364964916823691759160240893721490062268528538067182848146"],["9994353861341845917525854640616609980161991950353424248348316176539489468493","26882422275186950500036811969908554286831282087709655069045328321499609740279"],["21989407226819295230172703174067348218030687570014571302838672635153361932143","22655860228730315928847887292717094906351108790079573037840580195301390485799"],["5877577065207069246515425779780436100144741268778934576563676929386417335572","25359210601916710133125867455401475922183088376886696942412115370831845582794"],["22503463001724813021190905017882718437333284320539165829009698722551360817513","546646686041575400112724747631218155002090394218303563427960879935762445854"],["4381258756302332782104705416346080414529684367505460875258504877305033446953","7616116682734893984927139912648072118937787749247336794360751416753585726882"],["27149758777806582874169310744891046430111417294269403818268341382264917242132","11600161607240083433909858126913595513515674886020040329160250366859697473236"],["11404303128850044039004343176220310039996923135876080573257266074912650500903","24419498579841739841942645601233937516757576288571474928837000208599265432966"],["21968393696113244822567403022537555329801795430971933555190639342140118554761","16744728115876489380487362785671529501313516656251495895557408418267986120729"],["186466370185898097530940392502520962618147733499576852069577500791557836554","24738951792428744320905536423951723893943182176046320388575073043588023592820"],["26115966829484564785717938807744061094262718115143046666614842188433367102597","23222957222254081204416256563586966158573557348868601218107966401521864811003"],["14372016969688391419366522148186216916019280526295675723337474499149563189013","24804070090983912013163870952809803013850469715083819804244884929309345016752"],["7631789043196546436165371964521169925463574109967745832415690277801884446325","23189669317239216253291511709750910809472636717698289380887064990556735291607"],["27709952757636558755473734576035621699126051786600152660985467559888529378138","26973848162620343582377841720414776253993950960869212681060007229856121497017"],["15345747472405959713714414786802495682130584135887383288090081325680588235050","18530027028692267489308956289501619782182071119363014751458293885320841049871"],["27933361606699603439473953633516363014611895705572227282373590706763487544101","22654590032491220842678819382362823032390286993797272112158155135672765584031"],["3390846528492311920809979254630808223869629328530529028003879610296971850977","1063773818982263795862959409226957822043595652821218463131538001700309355276"],["12349733169563361680507682920341428932663726081161808297369829455692054235928","3584472362847645375774802337767584528929724401275593351796432802072809662933"],["4207382580125496370462932014070613684809983333880191916778249885881762943848","6349672352597563179266482866405135190598607311515694792595110673677392203697"],["9684818827481376546866064614283200680585894405777313638753592531843904899843","23088005580149445316900652851223903780948242429024017654623137494856149176830"],["8050820827009402086928981422844195666325603790433912332066291887050881537472","21574617347282426271310228454395449642149302805940998862179004226939210696032"],["2335670700120630270084246210576942636172369235220689439254670847783593909785","19381704832514736123614965596240858688011629332937310971829525987899108008079"],["5251110267342394837025642529902294489773283966078014526042267784318892686654","21153712530089891643589993927946195674116061112430233137152244758912245188012"],["12356547549385149545136465885463400660309491800328291205265950355240162968","26376552115181303362948143545945902772858784039818568859993487413044640032998"],["3764360831478807677194307226042665849319934054067544778323330100423861831398","24498914681862319720177143007161696718857745851348386386356525426007653822834"],["20548211930694574370259633955337361814533047095983493912836612047782079991578","4055404675669158017230319323864584815413797284046566994005337549330397963684"],["21475687053839913306730493076179952029517905940236612182797001074251667856714","14764214596355361464811090169041760343092204965386826573575813954220160982112"],["10008654576019383278173496425216638633553273242704165669138398115366072458113","7242034803386676328748892659781805266493758856921322940167327620722112216237"],["27525016276583788274771631136905795026993896491452414926326707166857738199809","23361120079927526842639900476824229154913441420221165401508093783695982363475"],["17825243407947244641634320689323943571395238819981747974133004677973434389117","23759830007678965135295385233218744485292241963839348741970171643067357359573"],["19190731595639866199744992302857781077511234890281547369621046236220923456164","28771294315130501955926984706383642969351769413011393365529154532497792872416"],["5413582319969842072814827258701796180869462814639321898359532996360257066906","5495798602953726465810259582510223614617894634064780349965304461201706850492"],["22944924847800681282180967766663080999367316008567758898156788760202180624587","28665863879547797363037190730092700652175706025518037347843927371981737902939"],["13952390809353188192278542325577444670286453378981551811483814975238604689461","24783326838658327361582182220175774648181600256915549367452324170472065166295"],["23318756906466729377135310736811248130296024355886242137722438182178024890457","8442561728861786240551543292154487948204231336613072367807105756696680427405"],["19304604644220102290594151843094327365658018122834910377005709780200694449772","26454057476180461614170217402393006598067567227384257659400840837840480891910"],["2340273849818979991279353899203705489889559715788435128677658365300342842803","9608963245579440814851367682852890230355959675860345248138838455038728524520"],["10130134582626826016942544473555697792228923972098376249113541259708062277855","2099431496268159576994841277791483790353243272791276317085863915389443468251"],["15100584160839150917733234416718767994518927854465218059240041196775431361892","24538127297768095965478406047477862378322834783881845293254844438751880859833"],["5630778951409601107695414840990847444288810185651721540052209114679627421656","25867331671562177028738397848722832297014711016690153798663271198948415819515"],["24976091801265720839966016907255488755547737213650185669543474308154353422853","27348824272967101481377489007792722919546200471822848858651902674187089147921"],["11167693455379142555052129040478888162213580217622678540495044239148016015814","26862006595548535494949538834235479556630760587442162880197488239030850875470"],["19689032466272511281428017795464753494204863075836699415703924848550754217679","16744742495955302277160965720389066432854891122036183657944490960963189957434"],["6872435916236183019671831258638283360516719046794119370027881146057759338127","25227241555851434802354396130052847943512563253557223958605531474193084683239"],["11320320654757002672585427953537828354835909940136862452833944530368768137573","18414445005150102968521787710326062154819691300290838243712938099414974017939"],["27874336220838331313561322488729822127588064069085955735885149289854746030074","9746040503940378254109663134438671999105946127147696990895673561535793756568"],["45322888064041924786154270080609305400790430350685471017017160321512951983","14146855787369381330944284515898961838494152839816567524406483677778844030622"],["26618073565503735215725559968308769240577710403022716412184264931218465346007","13455769224942424891822321946314090501920654426689232862285012162806885690860"],["10600285409963179603952292742855830757966761647123109806174283172644984499886","15656056168211291479941160606233793069835532980692734779326564763553252645007"],["19636429034510462320615362668798830969162942330694755339078166271185558530402","24045650662737928988148331688056177234927303043710441665314512195935953598308"],["18065105984065558803321290920785064427737074817446075559166248245802484036829","6404637222967921704740647941948276974547711561900261975890951456504332277361"],["4233784016238072218904047601636916510118069956069843375597107026953952178721","3613042879827007359974260816138227974629722563524467523497607293209322368105"],["21320274434104229750939776148074553680397881720556714450379957682331384326686","15755760593028141251043536701842407155166438146728500946998115620451468265951"],["14552712911001812873965130205909733307294440662128752848634667163525353718480","6254545840631823777477876975103878258232766457853768807624495441678990399850"],["7249552118584992746622367988470961046660429790038229246742752487183570950581","17899655372876435366460092070724685667918055920865464364713711716477883904749"],["10419174595243688587274589642809029518966057940881097785734255759485986926881","3456871887494928848524536623418785975007573210767006343443738934036899765022"],["16188724883530883204600956040415770991856038962636097269226044218443392326305","23250354368367934433567006849130066162468241609062499444011945895195148300673"],["12659281576319496349256031526115769813484522278570771260714884803578705524232","6307425201242403846397885546581910307585146359542620347815765713808843478730"],["15314573063342471069716335289255302522558864984560411078442800273962516434404","24851942354366937817239976352704334488291199825827032605681478214800673822701"],["16241989951986953086041167415994143672910824688140942388332620996251654705658","17781514183380731481313055122609724629192706725384529807580084784030136801948"],["27049403000458521336011831290331436121961439947021861956383396544894566233383","22248299781674777095754221892487860992404231521041379993266658019614868958720"],["5216720980869876100097058632861250758901019276662624343297539620392010527506","1615451882734009743277446916233896911799568086637026834697652222181368579983"],["25480777212190172087920745995081454852513697087202606229877609196559261191837","11453929351333682039127640711149427200145664197836093510405615082104233378169"],["12352265403148235211298370854317177300249821726324018452841003410110375085309","18855971363720562146369879021578814361628826930065670219631919318280004439789"],["5872586725253741768871054244608630499329498397691070556024050843031156927147","6888035584557093549625695313803680498018708944795366782628985030093073120720"],["17500968876459973688910299332991360076608494367727025370397058440398288793139","26709382143040691153165282612426409489745747587870076438363627328621750532654"],["28238044499654158404613256007312542217143033197878921347378752808014643706140","23240329785424667177704694867567041094323790253681940490731579999535390643361"],["20339655847788440558797911803625560589785317120711496664428423894402174821260","10256151813196328914479430523484486026760139820941221967573667331768947755633"],["19462535393962071630549017432468191180086899387554484737813691497517310361491","8111185940806024057799563823384589106031048745172578928183838453917699800443"],["10869544541088497759071672721050031127528551552116102731418013491506758593529","4345638166576185424438640715954819577560859224764782493646489810155931924748"],["19625199868079485626801172450513353066429519950173145175508913443693969839227","18774262025513122626465654854110823229299120120580783578750749412334207183080"],["16895025807888879459674437368450241727084047732737231451742811757972829670887","15815271421204793682906710654778309455770295273085331675191529480049482243954"],["24066809845954754606494077849373366661766873359063113513420034078851835967725","703630499789221482705947978925218478266987859504523867001018865180114289328"],["10534713916453017357850144870339597095276945505484245743152743788422475099174","7564672360159044509701980577905391580875698593686608369215098238510934221016"],["22739748325380875080455154957969616376703577223519540430554834392979005734560","3021481648670294034959989052175835029811257454429374945386124672734313806606"],["13283521906344638280817447599252021613711468608490937094531751403698777418247","21163035571935851136875859459470340988123609776005962302220483970033740963948"],["10917242360868159919333711185453698600923252579291770445493965683713958138201","6613569194108298231603446534892149741294791614730195683314717886576571373443"],["10872191046781682075294300728318819839290163382994859451275989154858481655074","15087278982892076093806473375928720573243884602559089206011948713842557051017"],["27713532560795388104351102678336528316678795317159844263171272377914363298845","12816499282381927787735047678951060226568942362222588419127063522218551219403"],["4504148619061604620221732940961303640379977513180803507352597192747571311021","17917197593814918938841504376921794588775082623308790214789392534082686360541"],["19820065488406764338674101562104481629192871805854304108026350977119619540389","5077566804422667452291835679027726729283100485623891486952769077702597919607"],["4434597540008191028219005683852903643200724180862175105382583623623149375553","6466909790710990751162885102834307991810349574653101920980537724598246489477"],["17942958467653955617337047736388290484732142143604900475536610952085518172789","14809261604319402323467846418816769451777545041946999341388004967099738678155"],["28627679959844351448722578429555602467951956502723817951818168152840517262757","13457290280702680812180200586073014930915041004930710262069043619935977053125"],["16416153368353433574753749820233476641601779611516352691109908011856802981375","1761854943289126482708681495455482396771234145024852124118786439300531878037"],["2202437486995856061140520644026360604557338840980836054558750165313996211983","7214960544224046741145885057792950067080636773651958114094920086180337865900"],["20187280108345659241811470487474649226524234453960433194399992859667677733988","4246975794038382389930831018192909847668511695156709600977716445744441058488"],["8230113868784774979042748846507684685231565392019093661340808424794858244048","8499616698792625465901006080267878638821975877827250537917049827606793323621"],["16895154778813135782489467180266140376572815525381413650751401494772748112243","1679163716743929451656364928394498399728675493145352492903148426267033575608"],["20167185925686539711339689373110728510562033778842945082279312677886436665294","28854566136619098680851498982323642247854450837750665804038795384939349073078"],["838283169692285530318120206470302570695252821554845405418348415531272708592","9884972352259393302748694059199977484556267987536403134672696071027585473512"],["540923751944269541078937023648488294440756278722901097324953047466553608988","2812056614258481651605242929966441608223194763599086798011917999187784238894"],["14537260604042861595820293658731691026625699806563071740922043487575010653301","5571132933757222180705856452026453927266196029902245969989230842332103415151"],["15752604180432578901448200744409887119372702873297671960218597661966513010579","24615073129095074430064879811871205061448740226651028739734138843648804332825"],["2860576148943881096088173118584381230213483439428817519605710308050174197928","3334025378262370020902736868517226456037571762343313764797122929849998655367"],["2197734401462140534453554759062160304784115835442987219662365064871167573402","4757589842057248164138450097011475964220244950419400657906319874162937859977"],["5885102622860027545867019019904609034357747782085647194189384264209861157953","12393126586140972053929258048680104964155755683918125632519518352903108346282"],["26671225880390247320064739751709670670649940572828369880599198978149004379295","17144189796159308306534546897946441617761224885265638723960891892621072947564"],["4980595860164114619176074889378376117888410162519334841732507097006806064857","23796452191379190395873135323504885189571887939991059913237511534268719743910"],["20333012415780926970182208047081773783901411233206530463230299556245900294931","17828110109801069568283980790550063499134504979058550844249601928831301088940"],["21878081705071991911252581967427913874725116204346372957340562828818296299691","16174597521682225671609559370925355705532623174181437473305278187121579076259"],["24148989385937882110770892527552008954591822954088775615748915131123984906103","4498381428446117226268753393488459373069279693557085780822976924926353065471"],["9537915220567063294570287514256835461786274089942568988348215273574363505420","506105370925478087309236807988039727308421008562823539726960621751447973514"],["12757360278168392951186529983937433051554989925552769590844841625596052877105","9681836203023084427185307975172056549646498935640241123677356556632875262161"],["7799066165294251604024340137172923110537631893590145067336754878134277781226","26387614573347199254637787612813197069079946824021622158365155210444359774206"],["10344939941263892166973776118070764904726158409424323431875967185942724835368","28689365787363958526763229435590412769206462706190110440606576527135048649356"],["25779675963531033122088072456552076480824376840918370646890172553848606712503","1465765663531218963895932577055268768238578603734566534140501354808816765451"],["20047472637725321824471336354415166138241222870334558968330092739433518149517","24448979159473086066552150763260085767145355814157201226743166519134104066986"],["17354835374322470975165477827468099553293815960550440027448535394183871430564","19782674232329395208793815950419954181111254218454259045576783732665209523681"],["3790593479271896342923149566585649427261450563166971662903679486525601689358","14096267401187731462633605604977670492719002013481069430273003838546097508557"],["10619415435740394729896607785501798532883916562810100345855282792708829722078","22841534791625654737145955410656281353215722956589501277789894566147597368108"],["4764194622201099869828294851212832049517943212495458606374499096761259644089","23634871926815989887913271367493236472755632943127357885601963361443262641227"],["22668631008087874804196125924163770257673333658801123325442956600824999151132","6620398712214727706484991982684464156953305828842220625696984714170844377560"],["4774719403562608483945918222774342477331066715387585199399331928092233697544","5813296940464384681011711761211994483761313308042827159884502238142465287445"],["9446864364426562823008876776767444425606822891011730580970349548253040726541","15381370139162229222046633861791944064093636191381963794565429098452494215687"],["19468764259226806367004476700191523651701517843780947183874823926816960991986","25913105551751705610587839617031166413067098179218623077364177913060407051153"],["8200774433197670794265162639520710514700137513605902154237591412798600106372","1809061134550587823260954015585901892527794110134683250224952849895816831157"],["18116630401194497097857937523776962821346247802976002503423489148609933659846","3113936661818149999542796601109258816345590544445719337842047095285775789052"],["22074317496624618280088802074176977933832562268669622372551896789167726885378","7503859390491848085427164545388985291866545052686883998134831453269744375117"],["19908992023986356591688043586453908872348093370321792536709036697133035431234","18601783016616288598692984349890654859286472035743200999358379071721664988872"],["14656333795890728124976632858192870105364097035770088061465034805775578227912","11044490194509348705809563944867920612566129047621075236670008609468398930667"],["14854837397532904121924648951740559132739593795760296198166722562358513764566","23207665838202599472323306721836564629207402446964578116221894591436763674052"],["12685346229483388204878673835835748808961038311684213853974594959405767758672","23360947301957039447147186066998311249232241519203209865362324968449850435349"],["10480537953054207104215096290815441044160324789051967988816631421639236268278","6780826766801347563752600457631274682551804616491165362061747792757947259905"],["14255124575552362523002151947623758115275387888625419919954227207955148016078","22340088373836474640718934706464386397174471161606378376979553894869566634958"],["15445109351016072756506270876918661888907495577834027674336869682827034110842","2859117204504258188106270442440248489555285281173684330042239071898519738133"],["5782250138705062587058781523193952336484851665117408230811948991780846383264","7166216985414527414861124794450188922526221593260333650038610718242715949351"],["1015774107947753929753449117671388731224829349145109989441806115409572138695","26106171007684542766770490505011600795367561108019953902981110031351105545694"],["5950477998993310325570336692813068015282257342626486395746923463300323158103","4149626943528174639176609034921883250729592430056493219063228666041120212094"],["3402009245830524712801543198746157063027185639343439459574515660873239671718","2858413690764220409130592088214296777744120560716441687664738083122795861593"],["27314129499929521980173027164125765121179736015061678631589259343890777307944","7392670294475033703516146669163016748014485226291566226193373245638717729176"],["10309543018378142728316500847886232508151891639569445302585801958812815439611","1162547117165535220848740227609241146962557005141744951809592834844853043556"],["7287231878498854554007552653408149853300003572292892855656205319340121230046","22759626445569678290139994790070572726623035489537785225062604250698825162402"],["13539218007464704869961323313353357971155358740705543643241878176894544693563","13924928442136638299474347015618332498178251401982636146567195090761331300353"],["14003054668549056148605205346729343239829727898498016009215706230827655454704","10973889067044661153680507390291188565446666188854836565935861725135867419663"],["20336324765522884957967033279043089877022303653297798952736241346974678548890","11248176180014828888399160753907948784620052399379883010599820086308350082880"],["13821879187636157660432517180269467008794748053778473197706744072776306153960","26833391714254191557424367552372922436538000724476077048608379809157003593867"],["15862594524016236151018664068821110759390369882846857660119464371252823696199","6401113132026969329287041182785659965405684417568056885983461382022172790135"],["24088173288272336659349898071013770084192582208108237373306037735591737022969","17275480020157022366668116967288798525562779111929443701288589575653857271169"],["5350388481379274302488495770256850291366812561022945830822571828084932661864","27727125127467590879794206986468683470998607522580114737158727784975483768804"],["15520611967513185604308613283352898516723105482309399126583283792644822358150","19951770890608452115371856833914098398168947252650305064844949250600630601031"],["17848478037143564390924504269400966429787877162860096566574012839422220900136","15181428472063385406127137971290624553769555786071611455961642482036142872302"],["27473787702066954868447656431694848023209129744930653587557255832473174061475","15970581254020496821870111683347448445489715332186172979944749353480939602988"],["6323826024119937456013819119224941341888946876838647088025340212462753690289","12712862860795646225872487371176995491284363249406873090714138808587575523815"],["23864565649666395752673345499821429040682901562852365510390153177783723979416","6636405774622351936470949712978209102154318230275817772164080276023823786307"],["19486149348275247329915416990439052245809773142003151248642996091874363100778","28281845785373210846437062180722338334040520537308766207445277462061440527266"],["21375915026539067392121015678344984542372703318189191670124593077362853008327","24127874188216751890163699328123950483395596996177376093589218523711851736142"],["8467355024188247721919806494108601410729750016009188568468383751428946177266","17241703831573406712458334562564412840372745471417883469494239315281207107517"],["3337759249568910527715975674766152814464778540112300309556027818031205335497","18484860893530785145849660802543344079800365180964553858941315320133494127946"],["12660425119245146787872718580859405159065534244221064007848743576074278954587","28921560413612352837587426841209267080917249684818583951006950705584480538470"],["26908629118753447365486997137143999794935442611667750811678752580912722538351","28671640052389202174511222089932849761601998337140442951988828365650291460050"],["10696913777547304204642657791854230241740605320420806078214188804486449406619","7675385871644929376720722344070265948775672510569713647355645111013625688781"],["21368958350053260847025531735013417554203239930286245095016656734244558602997","7898130888300051228325925219301262373162910714231756589641783597041899008421"],["16225388629572726132671678200810636494780433403115631623419986075352155835666","13086142188332341593414919535879955014895062270675701647053276468724220587909"],["14495272523857293522672302910016120180743745160174517221654371611311949280708","26529774638066012038464506045526357403213691273001956368182340490260166962400"],["17602522609901239517664347556773765594522736796674469863811817986540113608017","1568195862191085216046395376995137023721330804585006638816790729983285571346"],["20512944949693851973914540507893819299136827969255917966317316580340824803196","24098201689290677311969686296174433046822459041147826313403138877957319224526"],["9560491437428174517647815724618126047671412719017120697795663600885353906154","1084667220663996455426215335440786522689959658917473001120829170553738969402"],["6586974769795523649484565462537771618523138325458536983999882502518695350118","26011469811128323740217639265960060206544081920561981398233076170302741830158"],["6847061534360151555464797078611151041802350681812394253873185619230299002640","5415236297123675796067029142416559326847141900282399740974557506472921178257"],["16857839897704046340157079120749667294760473668743785206867451054843231886705","3593954594163878139882230658536906197012845514747657887149415558795429445957"],["5753921676694185815095750008069852934158018656320082667872655174290119438688","19650380372481457728298989613599836897071647145356693116393426179088521858108"],["24684538189794117669681381201296269805330009610900499583950936175651153740623","10164778562421657495625423141477534935779486813989101402124037501831776197041"],["13338680071402542343538285312186205280784570764284302140205244375545531962357","26363927002345056704947204781454947844573959815731654089948680721281775464157"],["10847503790430762286703116648380243396645011188003885197423289439912111530464","18503932808146127707150981560837149353435221967419123186131338030729960578015"],["9617111600362494936014881357439055814346226666547796196419839918207284668659","3600879629193027305242899090571894274782077986832558261341711072945557656843"],["3424294625033608079130048788136235408462961336918588786679903357587098713404","22544652009846485789899524624657290723124184177771604893370302128666163672399"],["2954528221834791215852674248298698856451238322232646731481620289138488984813","27409733848140891615007338939365117558261637792774363371312919516368454768138"],["4406476551894993241172807187756589519690978584320867599483245964066382075322","15877210830848892829242977424241906560151177863775299224910236960614082715881"],["2459349415201589288386978157263664284189659451533872095428962805239038729528","16614124780505356123867921857422432038480384253616886204443210963908383833667"],["1708841754859017765883768809115585127795091347556749382930329998588681452384","1824851473402281100810264137692337202458160593373575306946859548807453421784"],["11414421231339909042781993100756434688930153249896853495309107696275448836624","28230614475858195932686384448945909641657711971786483959988675837940813293613"],["28645222335076596394392219408917586818452762322596058543331435903858604082472","19496883563476926260092653549119234358996836420324184219866047946586203744230"],["6183146946236447731119077442532804440269075411584274350895538792193012253764","10836828782355014125253625242795356680021549957462413990307134970036991708574"],["7467443616539644625506925817313932515117002047493128118473209805511042356099","3514955844705026929461417305647367142936789245394329619217112441710868840978"],["20893654473697231558218395142544632821843847953132844470086442511364784738016","9511862822977783441421669520876147460917755464299568210468096523025456616370"],["10348079764705479484816337204235561776627264109283601605007826489819153747671","22518991354139769070378649591469297039367608704179089498742540903065834080933"],["12142016897691972695235525698938425585485813050936706963513460760293827129167","28053357677168596435720587436849915542066624329405404326737154779637903614104"],["7384885875833931014844543529755281761583392809509987726998569616851421360449","18931153965554691844855526316696485069826216135422080835368723286859865624717"],["5482373041610063222764427902736896842086145365413874624937105499621815880508","21796157369402837984158123615744688762298245812193451939552257083891402937585"],["7094168890601002381389608392986191102862924746584749928679327618725725930025","14660430276701926678430475194698327693493295795431305560729015363837981505674"],["19719735088952607615981378959572217309530022669760288279808363582555473081427","24232669579151023592101562364985109631031426627963815896167948753584042994399"],["27874469129337613089594771510278223143779066934025075354624812643477422359457","13655440008829044475198352748845972969301214583365339810870074786279033644255"],["18697326767555574575708321800862185688297137558498174521243092828003146656714","20472168808424148945253888411137167154084457197438295578853216601118323625209"],["27789620693687743710952630292025347122580748918244818198194134574084247344369","20367077305646651204798875294174944626839282785564730347024323065824091333046"],["25628260936462372147105254294228720217218855231271684998770910131345079294280","17899201603668962247676444630702002421222969311730781460649878141960376742799"],["27918066961336022825149670637954387571965690459727549645986462462605686151579","23056015678576996337527695178574556990086083734989392211898308649891028447014"],["24486486211645816447926099472951634851924914149290014995182413217930832849328","26924670128455668226898683609618644661124921405144120262203191348776749561865"],["25813812311248126174950458608665775436337347679887678147228284902684155575552","14739587814144764959494982312715878754734040306807586649095904185464390153028"],["3365406876024904017402351189804656994244873781604894097896883463019260502640","2014825582114897475259791327922422486333671402344795064542679390299098012751"],["8381054072234153948902662754409103736127843786869656494910351722909679313266","21342942449428811910997858165972030564435260412462960204114901062491391680689"],["14119952656828153409772316773447719418232355948030640506135243693697501666292","16051583189035650958609644316912646103224644015642515359440538786290474010405"],["10598082419231625963945826545853237806000410785575045467142581011269227806650","28647610524827380752632306427826198081862378719908777731405160552224417728273"],["17978926292267617211388100109611407998893785771984665575109712864615472971969","16179748748107912716319317020017524516539582159178425094313530419753876670708"],["28294869614404359316787546522237618090159240399572567073394591040325028357985","28646582856381146065007277700404654725376564104616057802178614671092855702501"],["10528174844280365065756688714406854057445796667226884844128597566426434860123","3867323963533159932356344786858826860006131116325828309111818261442970899649"],["6188695879408650161597002058042184068478037646766453105723499361694305202111","20226652556095722509183585033497063976844060092797192972328567206235553478843"],["16671660789967602026584880970453260123473602208127124239656727423526478231301","10974746950344342660598771444486717633451846871363104321675362633292000473570"],["8153345321053886208007870708471828461813833197060110003358234023718859736304","19893909036544244896768630256444532154300040397615013771536485746002803377266"],["27868093854348614826143641897736256736092686027971076514856155040404790251569","15548309039796818837171281248607171199459170229053777450712949012001711972652"],["10202694065296264400824444886630060611279314013987281793389494310060908403008","8723204186583972052082506383563446658610582906398580890051542187181046409111"],["5065224750558946979394803137176806181312362611275236761225352936347139776193","16519133743425003048257782588035216331620312699358514153913276280069321173520"],["1915390637194790108372613910153478408392436598932477845041988208723192456869","1793881098213715949026037168973783355893623882590835187724320898282330345715"],["15568964524474816400523222287026818759598991123647652117922846913714563270829","12077481544291464640473574834732546731851702048935060480254819779578474196432"],["27011474771763666666998677831046773562474090261152831232535505285647850707620","28575711753143900989927461427629733708888828436895528685141079293941579892816"],["10672726120015389269643197068186007800847889095130131116575793459764935315092","10662137390388222733256151705285976578600507805676115551968797596700208086326"],["15181446910824668097525361814863327341496587239961881015565295155747726768621","6115460424337317104962579364532857874895125290371193433602195604776884504501"],["7965902882636071980170994536696921953344977928614221310927889905845922092142","13971741284274147400790818495409634291351744710366067286675655927928222109480"],["19630604200176959082376957731191310789711441420410522621133797527744648226158","571359926725637764162756105217479377394237909569362863671524592017088971778"],["13173409711504540388195022146127703836874107609157132788535935747962807450837","3445369824595768572300624385027361547491961511112529482821979897487083577691"],["18416870624004990492690159270517973222232382071898618761786428465369490621345","9992841181624054071112893217743831561018180251512683968870068747974603001826"],["7857568357629437748692212054716722743307909714722852997771624726073135347605","2379356135490979211714383763473960022115941997001181498386162838835483258813"],["4055029023418198376553076533398858418050056873784560309357111685893358492398","25350059140750254038006642193025632855455030535850955463543373400810388121596"],["23094285278607687289066950679464459865922764526013622028745707790916721176276","7100825809846855351352533165612765250401195957984725040416124087405659673260"],["8445968477795203103896146282554436141540614931261504023407975397555805022572","9631180689459278550964658753143682641720292851920658464534609766684920540115"],["20471572578056115355900723443170309532604711639387618117089271341596191700527","22247175435888536308063761151006637486683352940895507442399615921048656935162"],["9463259901461575395182950465114117628781027165275736433783340726925181946243","615543475217576810958209314326144414919327547936103057534389925005098630437"],["27842187844219845034924544686254330871476198183262792687143469803002006068231","18479963056934228440004057266972443556101611648559629903849015968678505153240"],["14014030503625330358560448213187525719062427413556231881746846138973428655480","5093782649959526739195042327422377677103997062248399534238294640380657349673"],["22714595946828503144156144241250606797391505190871497365092697252368148574597","3862596121730245321047196730635207511177333945250012837801142941458483600064"],["14582703580254985726103456338875060692430675304719795120008938895866183949464","11108581293530096234540049314097326058588060074390160176617469160283463944012"],["15874755090789987024025359870403862362277342196394051161695273286757700339031","1549217553085226334225678663143604902812808743215672167117510397064419115250"],["26577688642613264475265903400711642801948861792519937662309320410027326685220","14985517306724312771275301194322103415023980435555040742530920687372801691476"],["17051770220859793776631013155243422801332049354131862013472746084765528206034","20229694415031204376014544176294868017045819410285980801798361782889105974310"],["14891062600874913063242340441506920547324033746740003903086598766108240690492","24462364673028327438633804700038646003191835391476070346235442973649718043259"],["19006366084353094545805897251865482635020305677435041770635164888193526812980","15044965064838465698975709031315503671959704571898271406382386696032367670552"],["16856614875382069823527299856638205689721843816688985184897946046104084325124","4110003416310766585443325921391396769882394637027961485352815471635643826560"],["11521669430548691262225020891831162158710697452602660539213919419632629867105","5879980019931536639867910913704976619506672449901098226990746130753070170924"],["16894505121162538925928002041516967307332012894360286340346731503588316929910","23952855836197803316166818253081771365721688315973089958072122039946111391091"],["918668836964438313342716139600039285488470142261908698063116295949129119332","6969850840358540985424269006961561974131317666051844168469360951918671947352"],["8493757467255875144867097875256390491494369587969426153160484629316674893852","22852810435344931808238448013571275414945533920122503267400430095278585863188"],["21509246390810628466713122128733950577798814828097246995360490250762140820855","23510217667133679537305198700114033625772298651028983310783231127764805810859"],["6376203437010596911891464338841017274432998787229157458727481151394106960346","16090274836875899210401253925330566804187276795241464522072444793934143778731"],["19210493988339113020597970856503548315713691387620267483137672528475120110220","5387659509665532111995021459900615162256142389911076735136291365182893571166"],["16590361175536300820293676123811888194356127191871071811330308149957064644516","10738643096267519095860056480199536258045067136361523689390746454883399536618"],["16215953061759993596904025150390729505495856513002926241615100088539758946790","28689122460056503814884212423220777666458414200305654921552475737231532261754"],["24409861607357073893618484291835605927892809470069148343726484233349409159350","28518040901339873350158150880780982655755048334719586657874744049249864077464"],["4875485468255923507852080655154171679198508783680091796431048056319637571122","28288578488512292772158911661270601176472514105095110772554673418260299450165"],["6378978024585307583210341013645970313774707472245847700763001933131267581851","13773500465635301481537566558990794819783051443485938830554998804848606311829"],["24830496130632373751325345838047837852050242501452397291023667745858684477622","4827836665761888784819823608160890132000157294818954019116468349478863307529"],["15927520329815842795985670633790770103508820488239811975885324209834864870963","11450344743610653480256381264971308378227778963665223382730576768440605872953"],["16178047908598053041086476076127370826944681715718137522307948609686687479811","22679094628309431558066035778692507132653857031101020902358245020161909107664"],["28018445810762882876034652222695412120925603551116105028263700668879439025161","8934446554189373788631653634372680371524429736116980666306869303407642931521"],["931358901594955998095737299710687985726505661665046751984124606300309621541","7488540955552303558887041250421521711866478660733994244756638518066232673009"],["22880045621494195646457190531917326562201707797733684484148010516479606976736","3825415913649326705892491912026867745098189208894852786901953471392611241717"],["9800392433596047023319751288316031145950942833558801717478710719590799532474","5831475292576077458533770386728413239226196413062816846695403098913290532138"],["13236441319698712489581509081658003793080539394915983312653352478282071080862","24549460312310444361007412512544809554984845699724701132556692050889639260549"],["11219703678876436342166643038521173197898225574565599140943543929105147047817","21285990042287441139267339416060609171015147881235148024347070308493530640194"],["26111612011718355888230507583301404971732416423413805257010909024204612920116","10772656403451159692476283895033893589030608750284821449835276315474128202186"],["3346635998952503321722809365861315892716857353012015079875463781960606014926","10102917599576667724458424205269634540073855638347181468405701453697965040799"],["15457544415796856930655453080284689550900416449062242793252442217556055941863","24678363831429774371610473971585057703758189310753894301614044482494696659949"],["6170427577445455890706294772846297467929046476119415825810775875439161998102","14077394644392111245236013442443296509382781543927483888437138198248385735641"],["9337094769330754811547885388729966984715452785804609905801534960877843661531","20515109224559477199657989052748695630149758456515978738008471154114521057052"],["8995602073730922209322958063138440467255500159115592634379930109860778481989","13373842457835339972440312482738426614626250091839616523401239578203636848341"],["5929529268631838765013987807572364379126540201438129610936968123931511365284","28551252070017973890696237115154779846175680515128098102943873544742507056250"],["17133316916730343196078270503180314987613309552847760597533430306507623987103","10000253826172258377276124338860901564265786424153368724319684025021376952126"],["8483266616848826766957004213795805730804345164993328701896191896702253414326","23459488171320457586495168927758362104319795810339672705303201430814681938498"],["2305578326517788397215257775424343739635421498693101384398123668889800377145","21275211777231163363025776918696874213326384208076241677003235670843513908764"],["19029181142765520308518132176741362856943027148945297176528470185253234216408","28511190075872230062717846691953578808112506746158130465090946662173826732074"],["7753652733050279313178902634329055444681208900749436207614321088524498640453","13449262190481102569275427573290891162257093298224812837865389799655189777159"],["17565217958650565634118742030791589421707286294215834620646802789447327836893","21995288173068198476344066134431681333867703102829467456456661274093420841958"],["10744036293597860053545825194930158008768844514483636672453293418678711395169","28621113816727850949453687946969993240672361354944802972226765509995988474734"],["12350084996624767141497801352721448415275319128740310084594598672905387812876","10483809298224042723682901315219264672743772174056583048853075172385552675293"],["2665539210386905516939221858015539192499605597288588336565887466925576176383","18990901380942549516256756631777830648282406695085492890237400388779466606951"],["4285063500390751966682490360151742845319015233830327025071156998985154976874","14933705632872402597519387941599971497841709828470692621535098611266162656871"],["12293227848683930935892163180393848883108403941793710644062466797458625355392","21638457191852229786945460947275977434115948166828668199283855325015187559957"],["10918234910103829600400936123187319382356182530126097275074999716933459111040","14114407263406529707962737510720498767860070026463310978797014631385280297547"],["23366545369955852134104120588278864579787653181169634602783767111853334031646","3687858485839811765409057045904307216404651424975706466882808454755402162976"],["14774550882515770282247743313773708422642069043804688159694191622113428500294","21241433860576230813423745928563897458809464339285456462776409225859780503173"],["8306508914109699623377520374500150531764022959972413229225494042025724941639","14987338478255439225213854199280398137689341673678109691898305215627879169965"],["10166493838668662623670302739697785220382319559987515211817055356792827183790","10179434475131955459868377283631561709928938056518568526527146950988466712480"],["15945651828577526063121355020216172542729670682630753018790694583205090572354","12158361854752311973839640080837588608294379273065858705953007866160302121281"],["14323943881479973104511698523127496063441563011317987276072909810662310235538","27951021622847540506929802029553607003783945848423888869802623988201838132361"],["3951704242044097178574485726689544435357111831346353356596347269587731287777","16836394072984054603133376265312948467509922221519205360893422590331543703574"],["18678473295081752671347365700345347365206266799833975718109482897464848705923","2516729103747811060433651538240747622582451206298482715860890605970686021789"],["14944280530240568841265569950701238478579339526206301576060893483249105284482","28429330360326742935834235507032800736295316595524926627774105985394445484759"],["26030248220480133211082550110782454696228237049098755377792422478416306407378","27659072937382271172029627995250644480709899552913522188222009173259674561033"],["1807090139004442980416595819480523382020976318665818361837316708975500834676","14848404216822665028869087709189926788827028997770073986238598954083210205275"],["2038010161031149142687104761040027657290559977403550879693430159042833612240","12492582188950051868321206832572178380481118967652887007173276262732189657267"],["130840828726213446987885633574319382810616496657360934116185264994231928895","19820501326917081671834889202729264896682643280773734163787836710401875697556"],["20133615128201532118633860839019388781003971869493979624964468194576987702963","5036422655829172866795617631899792310941360875134324747531435297701297337297"],["4642239037626970389356931037007256977868589423903132479417924352036093658781","17909523000954905093564178846863866488630753026362699981375357159152411045480"],["3283646360557425790215162381771475620832178748669244090366357005712243148058","15790953911699859981255175207500286063377849806958661578461051449705776465947"],["10332611143575195821214732041306427410760184630058743991333368327334001165987","15916824613784748212879521467958810583524461115710937605812305260851822594456"],["24982682863294729077233737575015517690109299003559328262994496569389680316027","21535563333439051494614473879885224885650656057034463482830219984635975799602"],["14221063930875781196921231696186660209265872143389279509093592188550745453195","6777022665616844957759986741370077036658327758812985959756832988919212577827"],["637157994388992504376591179910611098907837269687229213001656085946958523182","10570455892691436544764090649467358659331263570150405094173744205415001318740"],["20351214316208749128734576693800271617698359162611156974861790686118317146083","22924877180947395622754996663293868671912449475569602805156964032437729222261"],["22150811373592112224953643853154124572981610036119564466750778230690830378575","12626584024803232488648728134088075527314087811912212171416280836159564014491"],["14982845812434976901325197199387357263866506537319379609797385426707372589009","12717798575011890506966474895373918645681130716331051003882326856846238318422"],["17357140960040240632681387223517121998433585147050016486573911278352827692102","27555549459305179886411394395784286313565633243306605263333542740960519633865"],["26701696634122845580808545516259597882007244615595445165331693555151074995824","27514957537956955258850692022052848548020578477073093112688005780478350934299"],["11948151398027869111668757988704665043131240960887595496318162728640998139184","539385473109503044512896209552421493734461275373296910245486925669234248926"],["22478954134827826582793006711110880377574881697990908685986865500755566267061","15096635242701707559888138112228828807534433733700779122136268308275154752549"],["18072220031619387626830744082665707546584796957611948985216966378826052628270","4216494422438482512882809552490537071063151116985176417932231212528626291161"],["4787563686710057559160481488247362348815389694838272521529834419533008019690","25882949386672849529314380309255612180834034312167754795276950624802853575444"],["17540617755576691486108158225424796835200642266273209089215454037968067164812","4122814285448229855704248084573247837833898714570078409330666659817432244466"],["5555002394333484198576406726405885039863326434008250583142314719652836693966","23447672711695629924444441209662214271445661333019863615731405928688049902338"],["22888700238887050756999452897774123715870767382497417016842881196948681933225","1367265511596687440744626567945844498350053764240172458433005851833856532583"],["7084122880474403128994832020205392690102790178045157162627947857889591978856","3712782748152028236268866058388257380673258558838530552723317227466624421111"],["13522982092471213991015939727893463441917756718489065972213803321247574714735","13686140882701877907999971392058573978471287423642178416952550629477932917904"],["16290287825291896939475324841787119967643556336221676205840797502017815614877","8689363365658944498049857876410721160632264821547529369240528806096041660533"],["22072695103884279328604300124534146485924925550816114880682735919567084767637","13519972793895715406773378119141436230555843204389234695400169523981189048752"],["25002100762463120487526858179623337868362740461016462016590232180813493658370","16681817353553119662011262957068378823059321858186148799139450183986279373893"],["24874375533571699677244377665678725240842211962771592714750117247683642359784","20894576717544655315586663560418951670976162379930626118527212351338599835066"],["4090942575028874213561095857988521965989548953372227548598812156949945805235","21664702448035544308148676923725004260701529889697194007407108718882129571776"],["16367385622478110223532389484083717858032891231561787098353289018268178959365","19043495789981417284090445972875889747889910289021914216206773599534264473374"],["2830486439800783127029821168979736485051684487570278148746841086694081938249","9293670470173802136722119328569051687769987962200711682715005922811472394995"],["13283576013922541193604330151990322153987199793945811912612239689791059032711","24584044649625731906687302764042057090846027209515423993018192600940696424864"],["22419014260465771482251836050482870687209763407277894682462202027959874283737","19748619696325732208036265031328498511307211212762105137777699686600290377244"],["19781841518637921620884961007861068058923488486642098557805637342159640595632","26256665204881608689915129140588392692463711778392490750731135399115909155688"],["18473678682314012576804152953755976426485896128827272525168299132787723096714","8340297478724347837461615037573634677099731481119534419340431935413591105972"],["24763635732701121590476579800562730865833113935635644889026828915374850954089","23784728127655067126229092523287072859865516119206941975956346969331924360757"],["26359311599970067843244545644919642014624411993486067878030033230178703535670","24524077828695595796557569588318260991538251177056905953816354460076451707373"],["28008969275672025601812785165672508955112121363541102880612175314513161901492","19407068816816867002706599480214922791258528798206282791379612631170434664541"],["19296362803494927163704209732744825874160512590645129251651365995486751556876","14612804410771129899927883140687256765201223983360082477881879004450673721918"],["12817262859263386582490310803489336975622814930142315777274764620869449043815","10304264049780343878541244908305121532407821528718980498682877443463077102853"],["447811728598557873401336727851983517488456739799432266442027457500290737529","14373501236549553591998000849443863655942382545332317436673246747550413892385"],["14318073426498462246180337355281344464631909547952346555674237021588007623931","21292502499942207758361514698889730082034283129171665493974813642578388686169"],["21289534076529318354737730392588040522105905758015738585106807359316903786776","6041625167054099476781939996755828971897811627702975506354084158731572413035"],["11276428234043291657521925135839666080584452648805312405389868382865923412215","11736629042135855713601765316414779389871322782493463638254811920123019290716"],["16816589244431060378283117948347295005266115693348399990137682587212040810261","14686917371875199768594472157735958368843288420675827348828350056660287803140"],["10050682234321078221770840982824354399034606078385185760530048794852616869637","4628522745688947645890843720240116181046589182566396837144293879214308861341"],["16866779463085537954667521617390827793348520214010730587236004456306209362206","5315950344371218572516532855527233446986915294261048267625166179187010614019"],["27765748940811302484089521661922932448610138096444197029555732200560193500300","15848966002740903766315455250857637973010775103808107402978187260681399617744"],["25762277724976973570680762778845159879846589015137523555716667200187497374784","25560975729872968244317655869050787848935019423529124635328799224225410005934"],["531594014546232583216290667403399802386295546487040588664287535777247740794","4846960372449300388498356275520703330951112951391584699339691003991069474732"],["7955967385795662071696971667366535855805939347158044354264649447829826175063","8788162652347176912003691477643546772274315822291746919928941778604148286920"],["14972227795837164462576103277067670997835440608051415809808590825549503789623","21478319965410261449630644341815784084947187612701135823102113912382625631074"],["5601392005538644221471323992804545758050571888387557261472430249588146749017","20151533385903821110888845974646197560078290235616859844049160564087190232306"],["16819723264438988426016058526221423182362885372495354716613047351946428377097","17952733667004240485261257326961408802451272304312043491210403157972609304816"],["3939994261202236952067718358353832676375936003287296345185270134628794373726","9177271393864210545672324386115635217250283848072066911533681554781137393438"],["27439436206585800197374232484498185078432779489176291474250389359734309809407","1949293408926740185590783046746635582294631375992356632309570893902984371920"],["4908321593516378319750449299687650734963687490178828593501170909099728622843","7516011183300179776211267853956701847243422366701153475488883109860803428238"],["14923625533535776979608677392522606773294171212441232575480430123625424532989","17054785659578701421494132743075079808230050764411238105420886991363754040157"],["16796267512723315916665516818733772458520184781345376394602523638009835312434","5621708767011222633225626168793156104915566477653640415308179964242690891628"],["14923241477600899945428905025198094901870288432435187195815671472807128068625","6258900990057149363640086805297082455240452982288600462786177160634118707490"],["6767895174352401539596849391137663351503024885920299900668568598765759002082","9891988286255955440492776278162187840189351456248713492228661380649275515543"],["15224036580919994897253142925737351446565479048840729741871311787681653409015","21082095904384052888208227432313523479856339523254867199885793124142198326216"],["9876947651346763412248776945952283660952237007097550300197054396100599597195","10275178011383656349223448619854042589343723165407816895959568485855614936512"],["16250390676779637576979184093644690673357133113236503361705185153410165402122","22379641640703233586833590031548952606222432033242195882719489361489166700851"],["6888290381656610048397998071101098144577278065297989741238029255250972015905","16235770216931859297753877656461303449081165989498984563139572199267577642563"],["27368798264609596544264559852763199246318185428606768765673260655495812458694","21794029668516872019835024581973449504589747217041448342539565015933279449245"],["24506860626276252509609918793450490785747678745665154773491251878446856485052","2061220513493642814357275565019317931657321042648083275669372700483107167008"],["26708157119536883692213412266401192758459190730599677255244331129553580840913","7261122225580993734333191635744436369441280228784860487432944923952396622109"],["15402745973888680146459425735951308175308928410720677271513061653719436292469","23738677396239683381644352828905757296344329231014074315317646243003992199167"],["16611860585264823973759684489564194826968598172756969864789327067055267931385","19744236984064161947521870777435272084204409310184194938374277010053681273998"],["18693602174340764685595554140996085357152857133517623432893355374055140682027","2565666673442726815740177951491602549818440147174630422881105305428110304911"],["26757213812490276240450905837486933591675520590118306191550704534225204385179","19189923863970103141036644508502279981397370417912960532376067429594601254833"],["10854914695163618999548757496287491935745041705224938504913528391994667520232","25921014798660494776695434392468492314568087397890721281989480967472107518769"],["24447353817192377616025048579261498398955056897815523462721020044558476119265","20634428600369295404477404579407275251674275762241094239404035300534955809280"],["13704097447355095066832715733391495659700536733291582202324197597390015868942","20411444746553316744238172681275368677470243471285333245475229761708182558064"],["9906599639584193163143003509432058915695120599526461181471368514733196083962","27430536586152785779223217012101389357295094394772873935222858867980050283160"],["12193790286638961865838429598129756401427054810090474757512585719568142050965","2544199366951306389661517772879014566414456605778534066557382603997083698313"],["18538392191211427518738591413926804820960107197222200147466848253344034149959","28491131934675353921971893809162422052984577206024333389588447941980022214958"],["10352520836924616178689496051590214672272767299827577967387962573663795487698","17953946518378504490752743093282158032182812296931221968939849444512054120384"],["15506641005305598415088543002586452175346347850335851673278614720592148236734","18121366008603385221577668182196634000458368389063920291077436779332513298554"],["27860718626044214232651164258434405175086328084792510130324676238638587270542","27733519255399971369627425009409398638116786006612198787468499579413547117503"],["21361323217936760510995075766565705548296617530524368979113040963397467343843","9775765382142447291337240158657933244032092870981223226426116252610789628526"],["7595027562543643182830255774268581890512467831362149125462693102589712383212","14832091526399583755622383493316775896558526260116339944077293480596171519695"],["16133612438415607398871057400064253318817977543403505634399274173308227014359","27689857847847155168707541805544865362092456028236313498672691680547890815940"],["2595450431537259677531618939045311072128056225630459672929686288509471376507","17614953203092149218140081314248347992635344733054665366899881176466094923993"],["6687566685861309609756781241439149427662795555001744193405909681035117522964","19413795444165599920944604340784627447827027158469337478745915462320827668059"],["17447955120132364103793155783728461387830725974180512930239615445116736155139","26166685960678936430512310869608196802169646470042747859452215711308782441176"],["17821904513146335339333861956582293802877316422216430342529447671159019066862","18261376461496009091960077203243968898328173182669751136108965186312547920741"],["17619972169363554245992444421892226766981369965897124482170868643303723794969","12465131760975840366546408065185797849356555079821309084408043536903145059880"],["11213615165651852217485602674711494422598091406277764510790087553562815132511","19088093727437404757116705263478210895401010301544024335922304265790369269622"],["17934353706433742961080237904712394556710782469876506596638242450328767494388","5533192170878076059882512370003001459470766374164155470305421137074205235144"],["20021981500662591023237331737329839008704313777894369830976106977661636663336","16024341895524428150687847145840098565936336890921850437513249724378389576788"],["28867252135926533288711047774733756119861061687202438256104783097966089126289","18084218934131657773174541969158026482427065983643806986806761087735967264441"],["3006180191558757874938725587728157279817046135170646810215148706060661199298","5270673983279794434357167342129482122917838393234248577498285357357910378310"],["11746632502926561391168544049769223630377030305937008306110482486259571221714","11654946524159825512506574812407282291280934546427422940056224854195690077393"],["5643599514045286292413511302798749906211230366832927356604406443053952044738","14785408917123310599295761613407469818074830245835527972483297279063878709392"],["7137528679625146238579704732487641364224027693886248522560583924245005217247","11128036159303839793407106798683911801691450180059862345161648558728492977500"],["3702318494861680085405414087307966087974976189067240237182047160249078544441","19779248814118206048522676238528414494555890420890097823672892662332083712275"],["15216051502384057939838541946848454102591441576441033047714541045263959180756","14904820032908481314681211485942137906447535801341521851257310032209790348987"],["11724663504654110846353057028849166349296857794367060756796465511139072319827","12225211789922550178641722125201017684522863426227612505662151679512575492171"],["24655564842375795314564897435714726052645480976609505107320505296899600129849","13895113053858998962743859407715963198305715242525100454899297161324813881422"],["26500174654593581649908237529148821052754664899535747851876676821590827331408","821954690765167165779612657579223885331442794348761777689060621839809376971"],["5941059549006371967194741077853455539245415855834735689460267356338457621236","10918300262498694972771303997223688227976458370525512769505051307629713960675"],["25577329166989620784690906512666404231546527712717296538585331839062803062307","22079311722971553470725217882808359910466078586873801175017543805271432112250"],["798057051905178878980112064986860020739434213544268419968691225876059165276","13839024483781908677407114652833136153978199546896701675706065575232666056444"],["10138110385862268485858411888981728935590860262138220711772797810124697739596","11244290733599344233699149203701704522038033462714145056783699345150555254358"],["28384438597557490985143007594430544034221120600088419521811591537587931388007","17037466070671932562800874947084437823636048001129929852711006098478190664963"],["12102072002152408247321618029968460041077242718191899607550098289862960658473","26982742245821413636308025210139433343861927927038749496100343706342438701337"],["24943975087006120732973235978864294352172544677301047222778013751324453686122","16788061174217006529247125282465558493165557624746658937774388566548629589359"],["22678715842252624396959604293310332550736604086629738307002741800946477396754","9143168444742819054536729143841907880385158990952939690595696447835457935869"],["23881539166854368505920849178481849735478971134285495943313132914213783114413","23739847508102165386606440604229444709556585482100760007746614600347213312084"],["18775741218262752027753551310916168663796823384369731559628343310628550883616","26390409911140967445135111953498536804832337504003790811839840657308309031836"],["25271591507609250767785341290529277143078634791317510418765204110076598931393","19291128398752193378782090613588233830166926111024731762633522473501906571563"],["6145902331711206380716683252937948167072455545293756239350475566132768888627","396312462491034753393314244412529911188935646119740307624785928875012910008"],["6321386681821090512194636422805908541773796286938340415827713527822980795524","2023122699142018857411828945560520346207887282374036557036456609408475861230"],["24799698570854736454083666500483272866977694887857979945354505095159983954719","19321298164064475510044156276673719932085449958428228564377022685121142218402"],["12655868505225788467439418564635520209356705326514139229586640346993795146186","19920409717972880946371728337782164051545514591712087927688605446544012722438"],["22514284622582905704894684837418529183007956549996333417808063781696061209857","9558722720230294772594902142923548769165908035934848195639001849496428545077"],["3474771793917100857068351142449835117576851758505898429871378323507547279458","22479454346498671156514522212716883768478194732246115127846854756869901340823"],["19548195605294694418559822337277573610286504600577367779851110280266902242675","21456730713132043710454687606148916665027885888258832338363370520874067698227"],["11267240323727983271103054524645105785806143146690504206319389307071374173373","6458493812661104127784227466895705161932272468994924385093215292381602153845"],["10718004681344512004720146190480948784535566492650603126658274838173967656792","27314654209158462992666908658187761817092143539116591454225931851443501832353"],["28055932923019315952675107165683116119816364421040552932275701124342462568195","4755043803849977779647978850474041444447302041669534854887996556610532138273"],["28056746474208122360249376424313438092348903216912055180708088310754789787007","15070550315963483910170325555833542133116810148657241888891104857246691243773"],["27230314706079734669328765070018026626763689507154442097606628368545452393711","9831742067231796991423913309466456193185547256496931670963629539068708881951"],["23836488400563285666487375247891069244657794800769297604860794095775008959662","4678363406621647007948469466376803776619207462643002974330244304162906120839"],["26221941397816125436946213742979650012653745215733786169627693106086321480888","13561813749417150462163315542292523036850594000411433194764397847958753438801"],["5499679960411836912966439694912875377842444987971567177973770253958926226486","7670057216541970000185320329488008051509361379609045049893302907825067789023"],["16612608483990619842890495417624683199984190209156950267623899050216247127140","1338361599608966499553002312849644501332684069665589494401772986566674826067"],["8192345069128707800405206346230480244400978627301955546962378561325444449562","27080389921213899361095331772853682820725127465033069265099485503635588643259"],["26239136320948054310879084327256380545967907749684385117309568816269277433066","5172127703755802037376341380996397065054657098343767549839597599910843535594"],["24634923205770414417993527908784395426463995061505114715462973407766381288353","27059268654897859291615703364261114849915684591996327309941351545889378406495"],["13364515298114069658468980455838946173303971692595271372056662518577431934817","2047720081740623528173277322949745878947752204886392631859890134236087253444"],["14395104305353299305034626672946159683327329980019911778805438627997277496959","6246764056237789234066438547498909376336685727681266102094740933024306674512"],["12416129585124484450996840169061195025175439780722502639020214799721173878284","9539680365736402385828741441103525038074101549864704016906306645023812022116"],["5907364330796870111121325642738326583906550471294634434064414997175521874386","24097814298988251121919918716397667199809228496533722440365882039285962745525"],["13154598372012084642328482124066248299574166609906628731811433878856490506207","1684006623862175659300251226917883631287852759824437500800419752937919805565"],["18366623609744975976465364112326421361199870360112792724950531213590684182875","3930830289726960006265126202686215571776152811676845672751602524495530557417"],["8622896316124723690797993015409526520848104879424172905294134444085964971202","7158626490738105920345565316425949199453854645542080933625294380624874472514"],["18098299781020667315993124132455953576373601558934268411944702173027298443439","4415973734361658422691649215799657771713489083822060316797100694372965987156"],["2437453366215059280576466595931181192769805405732838055161653221858171571761","19115172693170570184367594930982732547651239297776960050534397220309365277644"],["28885072801699869290736852219984622194210487696316638220097879601102303342166","11734039972240306498448729554953437235341766198856334643313548756793701482545"],["15838503899468898258822625595505297567250513442915863870488871222025452190703","18228363806874401767863498348914664684736684321113216139218423624332471260083"],["5127353934310067767074528964930675345621108360006505886750730431996688830744","1581692102007686434187982805186774175114988145430722722381002966211324222008"],["27933627317222022324772825635745049448492268003987032427041752050119491113382","23253684277142895922299743876465881499988948759609558671209444289316263726896"],["11609140725843107807385005934595653469901980092968390854669033107527213576678","6148528211191238237879266523584466929003523716677278415762704211771002269084"],["1628203542586326465408603712640617300029376118630188385421147993307951476212","2378959279031472668966010008711380550064862240111898002300606043034338759170"],["23973422531705180373152061175711468219428087452378582503214775045758207102407","1541563761484788410525935855526624560559279961171638379327693481993497296012"],["6604906725480803669906858980402519470503398423869770855378648299434228733684","2457862880833525992631295761707964273447258002095793020171135509810907300301"],["8071928231889043196658091441372385567084517614406861419468525894082992779300","15164356162876357536629401649121754352172279761237006779169190440030501172717"],["26371616363041227157247684184886791939549982832189068979068177133025430662108","10270693429746486241447293532956554883537586073041724070917157526387041895901"],["939094971491837014175186957101058211818161757039551094298702509934931984110","4023813768257802236099875208559167956477954996003468690883317735250856817399"],["2344280956563879264463233272354414959912643155991071277143113402058640660008","4159930874798123082497496034303033753291217973760269214238586599707731098514"],["16849070763926060096079915171227688272721072038926866340043154056158268962210","11138962690481391075824511223570656004263905026829957907503962667871899375407"],["27430903226411888047040441712503137689043757008567595141579178494911109439347","19802719582908666227456045314462680528155462631590724576164151943284180092076"],["28899010059241310564346398660465397796285210470215702533146003253020175806555","11928554236122240373204738369768251573721046587133247070112379919437375598081"],["46575840084508458621894930143792609556710354035989291414382579892238035960","15788966812566029894001144035001646339889448876480619199031977189231368563455"],["18272483493346676626784249527169337613634072429648134159532675642126813520929","21217665387940217879518371033996914950173917705982678993415573359981926902696"],["16699259949769139299710791786894941704453508385865201809128159642902507442263","19292782149664037827421927830606294826881183504532292633195536789771421041265"],["5291501811839761034995335942726307189326949790283362532093751989430513261596","11266279902708439571511917860693285678100793525073955211182590227051753530785"],["10995400792222596861561479503912564511955544010439831792964176721052214669556","13176071287038733762426987359570621141366020802926088079123620979468964590435"],["17721386942043084623531188445662192688516872777670528802879623369966313058959","23221476215003524464036962523246126565876545105937534587742739222111123134181"],["26643326661335205839469077822590722413589349528267921879345635483317852357149","18885907508446393778765569016064689937637180825170612332058883354214197690476"],["20178401136481216923332190642303687882690156534681116123241435877368360730712","20775158548087341467618273549468366195228483622405813633520595146314208692270"],["28766361093526892075591198500816273445081884072998590878792933944833592213269","6298557059737801275124630279725990369008184315869336157100891216103261080705"],["27366273223687975050449190440195538769251079047623938034341128274321396874590","7969436691537185195096024247507005345162148149858160591601557531565312874760"],["15795078848853203503428682684844946727857975715648682906015120266279156720576","6780702908088891639078409014013970640427163536738963790283168082287728969412"],["22258951514380458645536959319018974463351899807500970030358394339144994834136","21966163839429937083008675309358449569227186792902495211062595277309251446281"],["8556967881900081329092885529731649612973229244904981554547382262197050904458","1947846271365919911797224330530392294875755256345064794008170546342845401191"],["8158487292776227371353693923473779962033685011413365636384238875081329098632","17949969063399956923073556097908352246403486826911014839654919564799990611954"],["1494894891822609678826894932712946439936763579622041374485661252065228831691","24887180850440360856635032436312145710394729657319503907269991006963677503512"],["11646655505645838007140724704678042344938659640647548804559924185062577509250","20773214421594711584073532157941662181581559940081182549363168787706151324821"],["23999215774015300659448818966161464731831023641294586835483260278620582499633","14330468978307725848123853792046774047111190368585682864876429622232741186909"],["7456839723730478082879762973400475178019520443210495656514518287546170650069","3115275026915950005851852791761253944122595708765886176692269242721587285617"],["18918239440865010089439640440795176923829424626568539074561922265883048727204","12567241750954743859147052426390225033489362699999859373754894005268216835392"],["18896178174821052466956461110494351390024865395745285641470386764044025437723","10941743959251742283781441393277940218136867222468380829599769316592093411791"],["10904753491544825137254311868895898093075750615555182991991639083917897341138","16180396917251116801975329617097579528095486452086536166281266855220666552377"],["8299254769803732710657247223082406528734580576055355241221212919378626676794","20370857368814565501197683227742342227807186407381071509324638398210176360413"],["13842168671650606685564703132188621804919835268762251965739301925949513899072","2613226620767464715394052290039743698755123011990233162983422936835622755689"],["13481801435817113157402667334772778848623537744878821514286556176932818314413","18910781363912494548262233893799653734312393874855661750093935752350296821416"],["2128799006594383178989171976803219116371696252823383207630291376728351443920","18479815922205297711370237411967033402979826139797674633010287355239663086972"],["9761242621200096485507857018520730662768271174108335482887584027818242519399","7823853669052241675386786459577121105960507793646346365656396193724016907523"],["27343621596761861345948119859726563652618099847100130531792336777289855469643","5496979062016337375643308956809039307566883544484419573617255775096600294449"],["26621070317180670043315156025664583006342898680641146360617563319189005092809","15176550503082435176501927016828620437106619476932481737547522207975100979025"],["7761337584907512581882687823395315846698157933192458407365177543370531120132","23523438651005358160335231511623219186425277535990077860669914500373866394403"],["25682603244616336221775038587064784184215556859170832632884600919558801203805","11727487602092749831734193022952133270136520035956032153948664117151776739153"],["19588270142168692592796883732858707204772381320768974639656682387399801722735","4820658670488280299517159928602242582172035447580831050650319367494061445317"],["25181126986209719534360857058600857530380912367988525661762370631581545431224","9706202534982840199266508403160682960304065734531626152754934446235257863857"],["3894758640016904949686784127833641852464212835212511385903969565198189061612","13825480927106771917410821131729712971651149554068161011331203322325290618552"],["1189061802794663195909501218387957964193637642990532974529808165106441496831","28646344259971190798032511976205540096350035329408053046951896183908081031169"],["26251747325743190659364852558077256483918789691451365973341659094835638031121","10219293203719817161711439581373879686274776646551161607449015359803142749412"],["9931205569757055155825842868539467073697845006203789281468703818730847047316","9261074740140941255768769677551250166693942732977432861806309756002325481396"],["14606134829712417201496588307211357828904296092996062813500335167745175608405","3765131785121188548866840884617575100534362822893766311979380094136518824574"],["2134711710257885637723149179721169221464081933565147829222773094814502022524","24463542951621018167518223292723859563430605167012584840260352790047096025826"],["26487385434784666329415409505177258876017553179030849063426301148342734943922","8762702358022793360163257756827887541942969370557564811367286747342023572067"],["2901724779049314177197433711191500277354419579795783384267544446939037558108","13291581098442922678666128279227580824670271798422215778291727999911349794142"],["24152755730718079326159094031784794833229608627650922330601182384298346249550","21156434945475710817073291171603926578827189267217170466014036897860984247334"],["3623990292264725841360454840018762889259959088150242432237859869831189236344","15016414585820082735810216066881811573396987486453201142347192992335909557796"],["7416131079993704469359124889455995849401928052921649793954358569400111892068","11302943860300455068390768654864493857896245272721705503833986672948353006213"],["8816860828059899029568251710564417404927766025334963817603278761275895451408","15358313779047794717959321423798549476416646086045002185559472037264603115775"],["15243625553569824824823006897502607467832460948731462496469103147545913924031","10024791560542644783467265746738658428398082923979769603892914362752472220571"],["5398489634552188104165893602945857857487101300474563143562149910957636693359","7273295281241306124115506768835411901326739309661028310327385394542365182276"],["4093449106107125606634313613938519065007838327663438626956470414496446006632","2380386665980763575519704185912058293414700529658269704799290232907692090947"],["22434893902622431198267192436469339234942094118754931018469205283228702719665","8520433549272080195716412929898022130071526220659705358263757193547936770257"],["7451262068967123474433155997247481655277338479492596106316117724841703393282","3386858050613488575228329296895076281753316316261026677011977137949445757374"],["20957500421236762863541035023076737571067668370112222677842506377694007623612","24794823898424048684635674879553192155174760923116015883417278778033257012477"],["16940201976851560140676831348410249980702178231410193750016948292810220864459","5848361521770030242531039542730563717251787492557289802817019527628579356989"],["20861112420792704134651929483343009202761262514262200957332619492191833588001","3257694561370718825469979443034618825648773799876462528978877883780009905324"],["14550529229190020732233607407069599534160746187070370958874444003514339053166","9873463092606543811769022080459882790772383597775089316917346609925323186182"],["729924259941892627001957360558111176613186985630784045790478427211900874400","584032267148346189394698280560634226201088034314313149795951512166688679656"],["10135366388506516317529475098183484763986378169505502112749880673883234926031","12390074846004254935493845095941366024887646291577753140246207920445500272717"],["1912710409353452510989242334133318796822951769895429067245364751785056858935","1667066521808634898457871826365657577403246360978556160028146001872257872066"],["2725266276164473291932878754373989271043414330103144507415326775045497076137","21708816136015130710761474404936814174776802899899581301216539211417346892555"],["20853028830507949059367788356074043562670847736950063044786839960651739774139","2974779042199959444334049018703568468758276668088133278265054496427708973161"],["22879748806333811758063524433883226854276979314169739568568370050533155532049","1226753869588517603603214525520333526918436950042228520479997783997223108036"],["28341726495638145354871986887986274146967699561681588005614274616344680389901","23634302469220343659239270727630811704916269266688370041602903379306408656424"],["15771166637784122065734515930504848765543244838716015491165861675314465821500","12423493356239553671339673924439220557018477451642649475994448045893268284124"],["11784031233117587572622127705654511758362992319372125119458918375560556672897","24040911733267221253753050421229792348511808568190341317405461279356542675205"],["23908589717149036863753182294391885394930368802476130997277968972250631758933","5455316217531039350505149229778533782374516280094223296363449824568991612302"],["24004288138686205867220703356641152698445318254965208356740660360481627501642","26695267639615158343121315440315694023508913360469306370663052070505133317186"],["28552384718741154386276741564257461411974491540059777579923718050028191866981","631078488066988536892376821908002246221466674870096587906185440858284801125"],["146905380827088903068968116997190204372062495353904922107890329141234178424","10442300586013295018517024103980418696711818953280217510403424773242271958731"],["22732172727091571654610584253330215915051603925268995453473041878555226660664","21555775188617297654973157184302942983965065896331608801367839373448965454282"],["1193487771532077979768313246338865737021268971845600054115814125681562288824","22442734900638877365182067000509493886291564778923231367291038346391353355026"],["12057114833844139360533675308008041094369480676923074185467178435750046234097","12467661027923027934022133907072925859799161868568583878707245429673538021468"],["8682116850147899197019108380495319835532136100750736402240829872925662492517","12880320519802649764130674273172419393535046463036030014389983578434527428480"],["15960989766665608993490879764829964916604258479975307791555160620741442986166","3176001359023153273772984067155189280632075133700661971348327415648107827241"],["10212947834685412572818156684322755405960713169136870946279864529283475076532","16723842898539792334558414504402202499711429110555814808920779693898562884643"],["11460282898706263698716845539150511367851578562814068117737096240653063487925","5420801495297239977838617057666860265677062580922044497379061855977992732272"],["24992102948593064638699110979026670456575530043960881200639801835049878198532","22410831608708144488432273513734565864180079232690432733914172821461576653686"],["18511674471863470709533388862585828338997803477133661502897357958182176685459","12192972499939115009765759629904681470459514067900733985844927000690841797197"],["25386005497316046290976917986223693413456512885531192450164065808125881810221","13884599078491156214819894966838448191569338646569144677111068713709760726761"],["20431693058355482914936759568476076761427911656914380711318439355076073146227","11793363296228397560890478601291994566841614827443742733261198906776108747469"],["27650520006310653461970699705115902059311064241596434110147200794438468831377","15849654328230958122041431994280963575271875270377949049546270946380831374195"],["17289020914584354619515492770601337861137133044330215368641945639282469625086","24433823016307049066925251276526370003761802294380586893059857124603360860005"],["1848613134950641385225206311149359906842665611765825069003209350096926780271","11528650000073385034796329609321324965707497618196708106545554131377332873204"],["8725089097655671278846379567534360325840979722746245987087067261107885560362","3462541881198498998032508740558320067229239447056963373792722191206613898909"],["6720311968871744223292369476037823611336715285979245596673925825670667417413","14457583880865325192731885736493715860143555385944226770911707348448378961049"],["10559345376632209821108416084035423674587734389438287333924320765937141870364","9987798814852406563397731818387191736331257177090550165414220721115235217570"],["28685314022282694666303614845699552238424106584584433831930615369304530472771","6855752148857148126224589124418751507648536637442143546836540391856044680794"],["17498919781652505183071165059308298967348425911123693105212382870620341484889","18409286420547590589125532478539510580579279643226319512853511210505301773191"],["28680061384468439796840639775096428552939937965495145864184566996218730444253","23589354489663794229968542888046262828641748058017713498240992875740013509368"],["2085451569743930058332261215419779767023089477543372601839109737901829266309","382367115009382300040265780622682233046483255687440465335921778655145848668"],["1911086895600233123471779592988501826872008106643392310545054090434585761251","17023798314247291856824169570557207712292894531749638123299408004720725051808"],["3139044731806294097922176486075985256194486051302361491460075833009254508243","7276637024100402079210541610046748498798267551095410272864569177789194771588"],["3710587393976985726321125820580844354224091644639049264383496192379731848863","23323249626397687822815118802741588409064251926501591248599272963699193370357"],["12848105849358920605242926122666565895577022599374237041950737393245837352713","6770908394084998613597202384010627393681367534412326082042510917031018045137"],["19473981947398834338564819957154737148537652188012362249089772548021201152132","21023161968133908342941873077094144554555777923649817684087768920790974865671"],["16252245684917258328039145443136667864164645956973010600988122212767237839934","8264409136014279814325454548693647720215931152048546885028035882152256220314"],["21956720813634624989658644714202662719216642758905648453110787844763654146949","28859394034759612593563734194539738601421475209693866131467077550025670533184"],["12326706203664653352015647637258223784463566833217233599117978609349283607174","4170709421989670557630836402232066828873153962232764662359889299484711415707"],["26845378363296237222243661015901713317636550089427864692495129197674152168563","17555399069342941516820237555113311157168551289814843052753007958212168747716"],["22193252007883175973676754396059757417320347330944125685979585061016471351819","27396305732119643787782757398558143787176065385948207843271250967573690348612"],["15659690921664027659493826893091764140510638323481660551111313738444827890835","11093247251763157398511157430096734538627139587423509902438293047604866224917"],["2182920581121188623272501271101582956955119391516437335431396149118659636906","17430953185868859148437731953247798992906447288398696011730329840060632186016"],["4585146074965946168023375890931638978396111118027486209124808727140051541365","8855784817682154887949341096633456397436284407880512786206842756539675017319"],["10473134907918462514991626867417336417828755159799001129912375182738797209749","9458994474312809526722205757357185909129637665111933772813036040624975152212"],["22256904703617386025551335724493256508636185490495038448564594733701555448364","10743702920758495382966297797551186065571860506880241763310844214917074750848"],["13675894854966330531624273262060587549360929906284339774177112168401822804137","4240222523549606601149578725956843959220698992262668764789347988520976389716"],["22122093235426580958181092464567653248254388745001102647769943220509545868380","20834022576267431021481528575255369866825356498897875336049333303138821580065"],["4013342037781225578919064442630642974426295096990727612248692388916234904678","5827089809863636017717744049132068295400768054613014233065094130732288820099"],["22079270572942955924653325044750600192307237992766873981445537990455892222995","7817222421438820232952454256239112661218484549508101547922589886792865701471"],["10517472972012921427475057332109144737408921584804132545891394499256870359993","11496704686854427122873107531508247101994755589157619518640252728051742145515"],["14428139720566360870902192836912549727889610406117411510360752550188740025992","9877485697531759454820811890157707598599143987023454561595578662281864488126"],["16151806163704718139694181943931459251674008515846438790726595515205349872051","19641403384399592494007318325381756087182425738540108957284677094318888153131"],["15196928799797586314253632346397794040975040903585497819219387356922115704966","180332310003844577563885559123258681893228476375848831360664242451427998603"],["10312017416847356426232895054516888895629183590723321448121193019844692313636","753670529381687364326444620547544615819401492651855510380672708275659741004"],["6578115235280467022155161556220177357616184913697285716207095405686091733033","27340963432645503253169181636044757676443990415840663449801220398863693316441"],["14788801338524577206615993253647579581620305922060429573529140342521843477916","10205900435481283961965778442758588706886473837538169102995042637700416531003"],["912072520227129840522246362502783311790500635434022111446943331066677999871","9416092016347324840369892431341900782021595914017937438974782206200695967622"],["10342629426140761676229744934871579089053654327305873464917976325564733666586","19914052064129555785332904578285326673567674633082485248701241382845144251096"],["11317331311884040031911363375487933229629284790037057692281891999787858688124","20558335169029606838306782333280794482539597379257074352040819175331477394305"],["4827036704013509855257288161821154855600173839273631453425412572196386923219","24901363083890048357109885645826255823884555976013234240399358608042629629361"],["3799614838873417104426556183250641733625711965548078454809943505776116036035","27748998008270825700538634466884043293567394520974805381398387570790120967401"],["4784430372010109205867829747782775438395648569280422829830610184903424014736","1783713932303663495004447799633230023561516922504081870662661094520966754613"],["22519802937386240633418059329058106188265370502176767345035779063516022580056","23719974458153347539516310549774840766722721556464150354084421352236854228989"],["13588602709874439654101821847298206829445229245159709519491752232496612761732","5742880645894597827520401424271273439547430834197278992638860738759263449269"],["10603314888949000769269945019928629410563567596429069740530044105490027779166","19997030076530008636017256797031600292095020351588279386324455445098925876144"],["27940444237821173565957773532722214561563933802712127432824854754646648799090","2774682478120251992153860646038754580894103702433760326259008393969804239814"],["7989088134937263388052597397638944974083068002669770696199615100053522449083","2632491556735201831902841158273671937393920414962296811855447640668200736178"],["27557612575043231037711716003285265697344163476002210282173241915811105861646","682775048076451039615124416066439569729764135862343049905779786346791990975"],["2681950990064264653271628362002501340353271739508307239069725767167100823163","4820211768274379728448511366525285818758351124956374704638620381794655814708"],["1119476983305238369272392013141036612175486097497699881542565436311600700301","13408825293687874078780389384474594485202281564113194780416512633708163076849"],["4323505041099392415065014570272053905826513519243217120193354323116454919070","24362348945280367126216938957926544663633887973269175568781350279777032976577"],["4640248531997712794909339002766901385881508342542908663799798736648398503220","21298819376852231420446300631977279455114746620671528070390377368887918011728"],["28942005078660288386737613721661909797206169522234862431780964333113187138229","16656863519968158135609652012521844669926079050292490913672745501425491327836"],["22598186425876948010890449084849651853216727108503178528149067216309182194622","22642238032745554523548301004276390902718378548132460617069916759573975483000"],["19897409302349763569672960200509180278739445972315081912918003140485940291745","1997996302987700215164337219418120910661788037410508744643694129359975397222"],["18139584102250337763674066291049221943916345139145131443246119892575211711846","4466854609033231850360774395949423454492315558174167457403271355268390924286"],["11693107004560012950485861901683963431695912173532331257710686720703412813988","16243720601116523638129171029154040214928240438562268223448875606944616176514"],["5599374867697840788079925668862469950323480997684543875345630180440518266618","23843108093487379127612343625329197149267467612732222142637455401413035049623"],["13651792326023207018547626942449379402523960695194974088089681843809946771630","14821925860527850794950437888033077258211198044337262636272268325373211073374"],["2545884436055021074100134417337683524752714557509986703393876481064573933799","15893006913081951178839716399055510495999775114016942817493419241809455930417"],["3458153571070300808306046351678475420998870907159429879985300049693970137344","6516094916873617954995362521709106621676974745996223628902061349719676483587"],["1643911324152825935044469337344480267628019499185223872862840698746614943432","28635755371019436727769652173443460392874345208313269294419298532469030972474"],["21029632379077430237723298304380440450519298643649529712627710162692219396221","25174381803404776200912437004324136369033080951945063741386347496984164740131"],["28024664236693222510048929634516945958294496928976101310971605801513312072640","10779913828582355397854302155559612496523923688913952854484627219687228476953"],["2739373279458297959882691458516850374949773109559361185219351308656844304304","14626434246365581077600627089596426805547394482306933272059988411812093735446"],["1666308221428036949771375667572357371853994369023472809143926448113296425252","4529094623546866488252664085141974239611195550117477287303595759569485275463"],["26540206952894615442403751748135629871865893148158518144599014024765160127078","34227280938282944318574597757604193726526190000561427206714348286837095508"],["26247614507610487693171300176522297601806764019018413960981317686094308593530","25619160270024472118737210127991628602091388612196901727445962010893396885860"],["7424812722903646178371770634443988900997346616363628974198175178919113369499","16222105419370924440304065398085729461402326224843512714812559962280974981067"],["17103048962592825919687483412983681062801595015154621974490591065258957069032","13854841819913663101420390409522834167178657067244620997447598581322116503770"],["16043044699694464654240535035652696532124025261197908993915748072546517975868","25534097193947109952045054843876634965590669000808322384163779041879299010879"],["935895898678699220177956482148157224115541188243162055455193928685190683271","10989360827129729497716653977370317366657662341781625302536947834139714598813"],["24226604316928945386911932013615310837844179388485585662152837584508157520959","11806922284631641229038681849556762517557719403998206699786660960971350016398"],["9620441725412193488322472350882916894213989724721337839583457057851148007716","25335223599889929994050933802339919384990098795857921600038563521672170320699"],["25573715423500675581679237604728601744166466022653492256612695255700653688961","16427502213082942189674973013281432515105943529405123671969739223551798421484"],["5827032163710125074818271872798898161432622330003977887974998064223118507064","7513114701581465220098520351407854125983671040332445530683844491004539811762"],["28839733335399905075534170160962039190926070315088698771056697717182452923084","19433661020416787390452572851461363372523106795208374206114259862762002494786"],["28344772280498867766152229468889484459740644339491880316824109933395444794839","20087045211943844604030963491733721492876120799934421950718467659403806498826"],["19791458854476252958633106604951355860201846641394811045976408008100425179442","969514757340761258281863338375656836723050720756392456896497855817055760555"],["7791909432742825980231665596263228132222568693357448618373509183337144543460","4789700916081943181224174593628735857695044338156829002388001939953516268595"],["17682350239206175691099746957328912357980685419742684943434560561992625180691","14307613377093561504574838370282979345000178330646796670414441164535076557024"],["344544095814740456116512725307162479389170423095512091008196540813757810226","25568768360705016290589972770774592551076259929745028374094629133393992248433"],["27594028577410104012109357677621276433888965311012959686072833216802179909227","22770852785130637979011101375561679139967335502801379764162780683636602968157"],["28609737616752416462324225413779364512756671716250474224057691009281681067769","11430493881399239572334262762788897226172101940401433891832410771279195638651"],["4992229804011186662774752029094398900595725012019064052069964499126605159925","19242756065286690800791937978725903749786966538476446363286200020741147283740"],["21310743290561354499269563964364025558940099385142782716272215499590752370901","24676127172077135220439849815149326712016323674965820712827092170880434777671"],["6195700868494055857769159846266979748508363071501630097625452752135863839185","10108297954396272762673425714628829516127142974258216884294469276822924617735"],["8907835179566237080142488658507287169037481713796962869699928161946259168467","16634637646252865697004746455076696684052054624204858601136099655838523892118"],["17459134134728370730281169705976346510973990382491791246768987209853194431939","13697606099440868420682515560810758034455580678568026263332950894019133162466"],["25140415650249464501358305756279739328921214529111530621027451720893216952753","12277444896459099802412509202293298987429994496026594955787478633012650328361"],["1983545177636116824931493369553696207717522638661734462774040129393740582885","16494943508956489048293626122530648257296484269691262244914316312074960054998"],["848591040885438346130085616966710235551870834592085196941788430352376638760","28839791334127280387897563741666301689318480229784832574735313450201508151510"],["3802495297586266674898853894857499933530395068534178957275630825638914580702","2509634604123085271817900254419564861425547719930654212098197340018344362431"],["25312063756481971489479266308805046919304905300219660430735152216067943835551","12313111079575243796214154959230527325597534285687089966785240274430259704479"],["22251069037002244368431368723255211118202037345048094094150074819282111952018","3715224875638295378152765291459906812834600035983645018094395307157910552030"],["10607364757102558290661633989607097965810476311229739234582152057781449411830","6216013506534700131076191432455569995634353851601868489565940933393779428459"],["26439102768487100472339070550385655413022035346644583176409955191299917238917","21998407382130162573707753264157440320847142487721552394899444233110714391588"],["25884299497189500878653466614879898960774547086870459806431985639104886210982","3415442569766163064958937726075070792901391989467114450766849270263385639605"],["17100941062895260511974971555191094202719463205725918410394946293574699923181","12000996066017580799192539417371610487769443773211099009203496087793681702172"],["7989789032349457190726779470530251022119781610517556786111521846768844403547","22221296246242612618698631820940095399463645866056519898498597499141334984512"],["1212665157789138473331788613697325154958049161636028157217678361949392327159","15718440851713831342519928812321364709174300361110860822480370574641294255797"],["18238239933990138223301132019058061195062202208608681865869146475903820710310","3971778205521127440968295863416694250472895672789633357049409835424588092080"],["17618072429063798354317482501202669978485321558840543202838051355481293552623","11515466522239608165948864207457656591614377345501102101060274517897212094430"],["17191746215603185384885014051754095066849059996870078589450091165937470524061","17429212641935412818120306192383566805603543596268798958791629022047152041280"],["1177053282157470548874782180201732121673779408191429292266147670035687907910","14029109655867815286882871680112973632718238519157186018244409712512999082223"],["28853699726122966039706037194284099908927455886744795568173656638263924418049","5645682326789199788892736339686762352902814775428762062250437929539803410252"],["939103992176892256731461990749504108892080182631944753436391845970120288500","7015351702339910232764529266338015798506889063317523972790616478451521145032"],["4522297457156975919564207216278190053988117943295076428607736236387433594555","13642635543808125624530758416361172847127689581057532216926807186955579499998"],["11575348692900589218675779525971652956056327422390456646260179495345331307500","13605386414675529219814589111089703035305775875066078012710493834529124010797"],["15089670435702432725430550062454591313178074357726527819780895223454469173146","16682172648030947228501845651261086723003209515062455510299411171892231483378"],["13506955745275270774548353203730978449786882106844363497277218726456809708892","27554085803486868248402587026957001289302204381681046767406548900320591432900"],["26516683056992240305433845569962201990721747315491061039438121525776302974965","28574337723104477664227169651497123274717585488814246133512241335200690867288"],["15306180917690020168367386080672019388521230649191344001047700200788010641486","17903941531679069577298645141567463380407856354170340504213576063127490841536"],["5190636212604420462683100603510634111249206756914872268925656452724793629335","11533254981303198389608873393382622478133188489264962367151228078075709657039"],["22757596636024205773138702484914679568572001241881848032357709539239415098810","2744909996877731385326167285499649112775766921287155595081355922859223661931"],["24696926885172192836101671542780381953443205042918682573694345323387833771089","25722749216339120565857737799278526453675818026021587075036530445295370527189"],["5940019434048818558690614264736910288533095094672963613725731355089467524091","1457877965365896814130591674126171006418769900792080977867029952666843715332"],["15137269893565811651953071846518967125613731106239820022110490226249565435449","1048635643230862893897683428717247443598572518626557623240331803052648972522"],["1689956729834159983233389642971823196250722853568914901835648354903162375527","28447838722130167639443426449342177891362020255552542632675518023242371703173"],["23873605863971882924166055638363255550111638837210041363785900245827602252882","3438833478631484936453469107052395342126619838586952789838469396519740401070"],["27774769009551442371509656031788709230281625616586367817556835003275782779239","12294174223712522295855419716165580965159926908440295795637650962516564447107"],["6489470999575071030386512458665424666921944429153060869298830823946376447351","23059305408470590776070537584253643581196512442393156407038608508939458248045"],["24655234785518613690472485825277465698603761853705536984039797041135938408242","17184475498477509548908040562261959473587086634726325843210110847864773791983"],["22703969962335252195855337067732749198977584593039733020841206658024498905494","23704106383263157735418310220341355436370376458864607564628714182567669419736"],["18425184716532666587660564278618822293749019401545815979485991602502455553898","8568915356410992659540276125981625619828609069087908323365798020027310459973"],["23784112363654900091769030896385657306171616402923696164220115089290841993440","15317947041554387716709599857534648735445575567412669370362533225432970982508"],["22340881931968996193344573525491149023532930876206308373408841445994604023856","9700891496559067958735542287842490705055754402931942477346087699402237908983"],["11278591574247045360982885509687773417575614141727007486987497744748706764018","27368289744309375504173954987684532568297010122269632573772540982756100963867"],["1592643899545968522761789288012669555226083244300965466402524074629761022510","1590231979267540322452158939142343107579703068696838812263640630184178815861"],["15370886770745544131984337288664698733653826472024687552577942011744011149607","20776020799890649436816655986499499846020889944907479417737329010526201713544"],["27996946141365508218060389218702630973146819832778536787962614407151069685592","7212612988232915452447559020933622985929136105692273308365504875179237133298"],["25908070204609448969575424736049757559371125721027891773055467899733982666722","19155384872375495484337083111543092775971295196449293781303398302594751944930"],["11704940954324653175624200614158234383555223404065572488622756470789294463193","24990078272107316581009517654647549380575183747477240827384041972956079179751"],["5978059400426755337659312652834104182261338043587936596958166867977131749776","14405694452908818863434144990048886956537718397211969972347452725357568464634"],["8293874577993886228333744165670275766729823538706880480553858229953815893234","28561340322170050251595858301689128900197232830770055285036878634158232842254"],["8788193209050188533474436051359194977239204956487074794172121956655146825635","20261246131060774770563725840390365551437088578041230327650364192890504599327"],["24327384544294681180877682339552413943761734512810520095851666633636142151750","100862385021606043373369671101030858468674655736789563962139203913406737405"],["23733038834842080533144937300439517189460108119308827036255536426811668627158","2313633436294384777896723796901501976890174393008603378115167354676553116206"],["26482925520590127012682129555012357964194203017353629153485866565174757256176","5490652339028033580285496304115595331788453715807294347501449571983427817211"],["4556353445903549742430497399145168461473187302131921459690848421646295299818","4167772054454326445113895669815330458462545551183755112747223318603665508484"],["6275533986690250230073417840068725441787292948177302434697741238992869004168","19635571856107287104672554928293321263732810884403415165842030568207476140766"],["730487073544223827653823175055398945409474978920070876411320198926976364277","1625037033996710964550763312182737478888532924572669277076609971898142793696"],["7417127449753932541381608001651552084564513247922070817713004873971830630601","1754159882407418125127241552401589372301752428692598115129233017061754062930"],["8114129836801078526394171158509402839893720568860728671419094482998678991395","7820644141491871138886511428270194997781759575238738498805169463765356928292"],["27872683598750951065358373807875914718109893080199353477663768723259915501108","28870368839142954831756329174110119691660810121574276688963069775069551079448"],["15940332315415380585192961728786952087783062502058214718639228740055231279978","18853263096693685713308535719327440052857201198860259352055765555905221650526"],["24843999370735428622525865786788295287209419687664615585785496954641821403329","28718483424685605143734700615806656764643428077107051169336088111001401511266"],["22625921414182260531773297121744378197148130700628404907149207347259011436585","3845668702574671282935167032842567849182177493247179510786280888740849549831"],["4527689458846421497112718556183541685994675056801039764840969164199943980705","24540542482698574498384830020032486184251174325338519944316075246963583059286"],["24678897519458489824759561505085574054385595303409582093188289956834197226013","6985402890409471609145399145005101580605873671978954231574401793008092669957"],["23576334852181418918072853951877716389909576900406737322262887322577597915215","2603605478017905529192675001138125418670720183060962585590345244330103409132"],["13312241296077668720147627600890948219041086789370064120643005101925947225823","7343652158504083336575902611798726207671699661680136515472190828468023942775"],["762411583125204609720852515121345881473467241586404925720695862039816237140","1960846603705974532688461399308860011029355824796340938356581884031694578266"],["26099584777675372851792551487140691525685353544227226440572951878325135855095","12131694102893686647587232787878086403079361308781191793546694281828462345857"],["14423338016570525148723272520295304561334809790574544219067768186723277714022","8119008132990329526646163142903073858495568521944645613062435744522007446593"],["28459660874208934409384200708632881093763192351850766509988320323010494402029","7963062628295814446897488453932752314561570472246723454876705045159428865146"],["8703600428318450262021182564117430166978638391169548602618715438645625611639","2647148848020244720278579014556354773878091980847430783076919963582710339117"],["25037242505854795194222558565010118883256735431333132189025063152346248017077","3436313583379836777669817301873689888567467671789298158465274282125985779173"],["21974730353588202438794996205310683716781728127676829669667512376921033364755","15911745390114769634153930681604832962728117918544839270217478196222943319972"],["27404360492234691732709482587182169542097770585182699441345970533434212589879","24782934363787653585336215228605558339434634739381497710054162834543878713761"],["19123677643490659591303068401819836445670821440720995264347683316499862129582","10443034948934068829184055107631941154130267493723000528040027314356562709163"],["8431576717208425937519199305590536069756959405232606650609793706961057962314","6378399743641682509073352143705585136402377079222640726227495754334600553106"],["12271051520002159743769154574520456076063300447258037150579457690730939473743","18486073634524803863912534417267492789161956686351914397702991710131859545107"],["24773120372455154005152777704404856650395748918955121497438765033547436595096","5572859886349881380726788849532979469740263379200755317098058307269250061522"],["20022831061432879390185067109809987427949611763166802115124381587136229685706","27453966938427197024852808513927450670837299321167915235184534737731554820111"],["26668756644215005270292089097582622696139297196082792936838753888338631277977","23988332485494558369489278958124036977650835750207718065757688291078874370121"],["28934858626792453565717655819229626233763378834362412853436696479387550612131","11939215421579189083578207706197787246161986967957353716731872212557109865311"],["23963113442817733052244250903453728483310890314352421614105674595764628614323","23051084863931509965661787498159521555400271791767225460046526800529876668182"],["12778610202182341432870858937425167251035560717385981649741584026328277485445","26482430050911336690450047260517338785647305797018439854333785394515661827994"],["11627283956526535452675509799539601061750912650007858708314194035822966313414","11571654553123903309754937897699572128634347923340970257966866348728566476775"],["28436352478706905297840519011566072328528744014859884541577675344073886751490","12175139089417642095490710774837930466157108206931354001124640561903383848179"],["21130226682963757034100304272536597921486495824490149132653554192875519111045","14971162639784623928312269711505920515914756445776936749487213492415862293385"],["28833300311494120900667910198953609403996638378559585890692298945024696267984","13498315785376065576590375695985685595544100648262706054214698015277850434619"],["16927944727294869021313122773328140388873048153404825042479484093905788376525","26589333164081073945796522961680105201217069895854807666628035925297135092083"],["2122649823638473010408297042724919793232470810213061228089754117829007138492","22329279915394272113444722255599222890320760226448498213877906897478505817761"],["13533721615253045717154823021209779236104839725743511420854802604358523502529","4103459329175996956051131274843545579696914957627956144771874052752042197025"],["21224218295394276974535228184663869950390312313746060617557936190998998953028","22065088807272748155992540182673963421476269248963142006133157470018761923407"],["4958353754361894175867001095258379258253348770710295230571185369879506375220","28144930201671172316971118044268655944347133845766865361785964885650440968448"],["19930736692775088766832553987194966105725334771788701878234988243217418328414","3577542645427723232486257844569674346955122445184569472969504867751793419350"],["22669862083792104459651935739387050890300556903180142580206422426033267938745","13270397490942954984973527749696926729376298033131588048536625136391678651244"],["11721182626858959997251809489320471778057982132614966321469384852779245400962","17718123157175914371459910879235203552505317965078754004332775222949543720078"],["19606868480431632301209857528785817110597491181458697190196836676105483940257","18112639516894306254589394571399021787453515852802688723592262356704989633963"],["11271577861374113266703454981344338258948852332733695886549293668833185355499","9101201177411827154837103565054160647844335488464488429394353524174318216698"],["12663342192032436656733218699180396172405354207062380464938722346201055356084","764593448705032632308497304372014180372585530553711223376386672037168615279"],["23822629839224278077334877962407988424893506099866363359779528790839929351924","836367313257706614042495240676474832638191132352970932800191657742165259584"],["19331456334835862555075410465463848305262459704425810397200325116621551688194","13630885369384732254777611680677390642633226665969376649782445469080004235893"],["22920222024562237259536205328330022359122318589354303051479972288644133888027","25689570293502948923700259742947624643344990063886306969123640247727408190476"],["2651512835889210096748325333631504085501688119052726108995527587144183106940","16637719045988794559743508759770119750727493361510901904422398062259594780398"],["7997627122540641563620321750592934780557919718742692453075653651709554140851","9535212279375244651001931899338004044567547920833728102591135580294295083038"],["10898503210521752532789132705819204386412680296479942576880667898867581718914","22563714164501646288914446714480865554017122293967953396746562072036442842878"],["14168659310124398323478311162993250578461428225631704155455052625858380816580","9404554397284544392675568056453681869652828389826441783680504980427046902881"],["2509490424642970217152150651537771982749142923171731827341596903524625838313","16317427717191381942292949194955122925288213912905602236978627912757926092436"],["21304129417983158093707496766523983358638652657445539406484190424564890044161","10248021853862061432038977573283042984479663591352521314565510324179786110201"],["22409276211924827667066847183314694201277431165153362356515875109034161556643","14653716099435871967860848575048011972874221302128792569077716440950831606247"],["16670181035526457733833443236637708560544322388057973562920409005511337609858","26095844850179765982031327888589052782304593388195655275856292957560566513974"],["3119802454171684270626820969477087501274693216804660196119748992277199592525","4229510496013108905138267404892510204423943034264610157897935025747813008950"],["18101371373975000393103718601492979823559563889240533308496803579254967496173","22954196593743030604060802905825578555260061373966295058977684206188039606654"],["3567701276771102206534856047531707885295467113336468075161463459106518357071","4764615334055092265728262159910141570641803660309847874457217543010430529737"],["26260893315161507382996127978891254126953568299650033297127366956152667763302","16718296457174620757981758937087150276544326845625334272802162961492421897865"],["12380067547291354312072062314082822867134228593964097310536794424970476658296","5856595950060436415322750247859752575672442247544647156719320083641168683757"],["6006361838631701322187816303582087214493024845716097131596350220724688781852","16392148984221289840275830134881774724760751911882633918947002747156581340648"],["17497857938305609590981028769609655180644970203273252552683163152479617019692","5483618194536536666551575262360755290218380671693738555421466160394670658538"],["24961205204910070112187860889349254603245882192873510032853518696310229903263","7254389375236248079854923393741816911795756561128121926587500610967298264432"],["22420712112144091460164937836936680022618081974866300876128711691055419034968","21995094084302022724164823763008706111141165778833378898542510429997418460108"],["28466918740053835004202509150052368669907391687871427519028042528141767911740","1847606135107861221650762474699255412249056289628804375203440236748326654416"],["21939022745137999658690688009129168870978264760265050253058816706443281409076","23161595312727861618907438470614072753141924927116420138808439442076512778100"],["7514772262572237473748063570401637899077162796690859300258470199244192762393","14664211847629227530928288849894736813721404680306188531799762520241086587992"],["22253508739795908189507454220819466764605197194029572290420605129229134238988","20018087184766074006576744025953822908191147664057745799678002377009428554525"],["18428126053083085327479686000034396595969567671634479704104210937271239867954","14695794788817819276724107344051542367377515298300819701887878756949371887242"],["7486090943387814092441724355808693097329935393216947434683442916301964489854","26812357028045129792131636230883253825844834057025976307666742754352946904617"],["21847359130212739925675007746292412032060887179831736572934214725728007864856","24745640415434082759295764092974151399118252569616413303402004461279735412835"],["27652012227534810698768819934319952618098846971613291379527393446414613561030","18503971861725330352929043003619949968017256245435796420307080866359066887461"],["3095656667838260014418318067562708126220768798538074155798816339699320957847","10180381077480347802497651388700829748721095597176559877662462450020557486754"],["17443852707426749660757713548054934496168606613493439728487896657386614588147","20694910037569544398243154294903582840584637567123144848775172473569283996297"],["2368242898586580631241018388045523509077891797643679186076787763648222294733","12688441657137960089916459145697652760082285661680064690256001536355101663647"],["1536281541642257838853562887936934301971220831701865641742622321321934709222","28810247684563243224450057442769005728361720039770233860731719626025358589189"],["25761839206001465835528912944488728640248631335793155826674764419771149122526","26242517315503270552987114589797049488940747321340515865840077925867190684274"],["9942157855295557424915562301076945350086675963595264409578993311554951387769","567253418769148879643946270285140233618417151246094828941004853567893244700"],["1336235594112724863027322072284449170362830197206199385143672989485041970893","15068967407400761848534594034751292299162279043049076556377152347810946556160"],["27422404251345199978127854697969388512557226304909547534423249907046764494810","25525372035166844133530635260761003596560013254403400254817423319237092024235"],["25845818467392553573226848074307861707812803755708692999277214948048874634239","9631743610977358562898555370795152136918051917129751755976511656733149521108"],["19035158277074860713823274364758851337119960895667712165343853135370804680837","19754671745689842090902275486639792142140643353286888777572656649185041749615"],["28251528191952093188933466317036945547065789197118891723698018306273729488634","24094605512740745453780722638902262711863255290534895424897837193453757942287"],["8727330745392712645491306948954625777405288475169629064835544795838227331222","27761284522831479406463335763754490029200220233307320365185756450675491002357"],["2225689602573439589911008557776371172119141050705126098417516113016928713840","7945913978846969387527031144493164704497691244407423289386516328424218422774"],["13599166387564288219440141923050377472224683742675620236006676917517529292003","6138003514370447681768318497690904684980446061990338050797994058364662533158"],["12955614648335310255837059684762855737384130227710513339403367992837152498259","1685533630274027367952643607081033569101231700572103183718806020215136575767"],["4759726343517340099549712482302231548732493448966121253833932104787989193178","20825961058580878914732883506685080007501724576654419626194952678720077594629"],["20138846370293176943017359695606631032054731849983992886533908362781456313777","20530844159675383011997262354059419594072581321280428359531361049398985540609"],["14315778686557342299387453857672488306071730291790686606353234688501494159454","25956595434041353105344509680215785577101529969320573520907530927060531820677"],["20229236537473479219349300773029511891294391881622044715892307121491588527096","4588479880138635371304967450816071834045737297125088947032976044301409934648"],["6773402681607766782499493538613897883007247838825580856173559320901574599408","23505019532195706824783707755613817496929938455772998893184197584614733551345"],["20016880005699592073145500363370107137763583901327267166494145903224738658805","19816119915304195701927462759309588314298787245916324467332841020166848045920"],["26249314817663312337374576699843164927074103017493286356865931425944724004199","17013444348236400543507596785876898315300448017753107684096975422202744890887"],["16700173654167646360880319383280459761385682330814539241036533707475498752967","8488926610061925853946455866452505579610500397135406825757870157614692050260"],["25015472164373589696293535104952750575564856278827796192126486347895259021843","12628945451850109824113089816640036654581488493282690441535149638499810105499"],["8309954143935957041043786336250846301166331716423231299286110759501825236661","26452279750982437715229088722515987892116012771290453423961631200859973783327"],["17661032396996345602427279543605495951008863900333575072928286328616593976776","10577432246259836588627996774541810959010093997878572844790292867962194362613"],["27347660941173285839374173452244242233083501921382304459175959654074231906949","21544270646750224238985252895326314239797401676703534941680482993194397524418"],["17899589210544723222937148505124008535626713694529168352451495735722686689244","5579319007320044875572473062159537415153439925033976964020064537112013625081"],["1663265123884293822338420294337620965827885352895726618237370850877274292681","26947610391015195745994025877646584881356508897297382794984044636891818900787"],["10246942529894460341323429157518894982988161282421715241917403550625998710269","8221947655075623118896976063319310560967294097348336394622927609721124810886"],["23036927311010249173583735267163556049536750821255132985137299131076678294297","7049662637611005223855776135651613720119544456912790850085866400282101037740"],["7224157017143480705673949296480281048788645644756162909430400994833507808683","10533257140410919358807149759293696067234883212382140228227096584193304443258"],["20746914577886081254046085536947223640114818509408591760540202050949188382817","1970250467260557754235968857210075664201286920310467802609746593142815968431"],["7734039128565700000219045883867341583609804407311967665149025932648871479328","17926094858037819813951089461389355138651985739537024322782975268307914519145"],["1481586604798632943998644246924248029048468352587065063110136449449784163887","9229729367986301929518538564758479237740826538830914698051371437661696655145"],["21292923857468067945085581998359106884567246879693631491199001067984849813652","20695964034456717582490579224736514905856027002980874657773581176214062687839"],["11483179122111511758911917744952164951159935127225498043839665803735583364353","14612575862709043024467534210259209924104546266684178687862658480242937913122"],["28090239644608314770938283535904054624379211817571396616644182868199639089018","17824967983140275798382735218725626088876077606481122638913742123701494726494"],["9361490716250993403137485606712804326683181233912537735269588523255813991410","24692187310281740583359872866091115244981884669048031279660178382556946942208"],["12747463485738035353197907061725293334227359411885744887237969450574378019801","2245165674714374248451746252955141583344024749069329781616233941401850664976"],["16918325920819566146261957723902696459041195461670704418284546883077184320868","26604084350422882699714575945327836903184967958917369893056836588160225383639"],["5873859696549788292129672451391926776095776606312025247362783002325781278026","18050472962381063942329770155443262513827662895911767125777208917964702365948"],["26886238148202152189542270401252647683122184581669277113780034909871995523091","2376164723036710287736031172104915020772925538212296917987312641843370135979"],["5065681811541248933485943120263704970766750860408948970943435595809818486428","23400537003762369628347270022203433187208114392043474577726588512296667458486"],["4517048714096210235027733417687548560561148657981832447036486853485264821149","21976182746180935815932661770157767160871761730105482412503035361930444257181"],["14813074537758912950778818456547923522093790516683151812523753772764143297598","2912260132748686227505396655070817039524172433869823366132142499516579578393"],["27535202100932763589652606407251114897544092877808705027196877825044426959335","15323429941115614940510701985799617002374910821293259101805796256702614749197"],["8564906923847473380365975358762237441819447231842767102645008311688733355589","23591492135366266120929788657651197447686200789693850439354400826849188895317"],["11523711037228368898955988241212759311713730234887913106647469829150538845342","14401376792568133953486709811353634701520066939638401550691097835460860991420"],["11432080421032989290897096888874073548794151024108991635820954812401617850278","24767370754370190214862215497299234262887642235024531381569960660111396790962"],["3691257371879241821869587207328405263720645870096597461843518558075740405049","8457475966772500060381041400987489508824085377938090819016199924860963171390"],["948788561510040092464776020013600489698539332048794722426618891394079694036","16375295866147623793091045642929427716685828277762189227778465093075124220107"],["2523982224601610697805749983383288068661048655383667301319320415819726032030","6689187174742465954892549992314138874113574284418806387914778337325305616750"],["3353424670455954520174240484609398887145896817161634922356443349301385724006","20885441340468537291617321250922129883138378632583806194253492511646154752136"],["24106235164220057884031226630096873083968487722632105599625338505758137593740","14278719848001495538997175362743807163357829381174315498006609566301692454968"],["2097263287349580482178094976581486160814058646432250279309011726751968725394","28945132370427153248904933978580410742386724218319146958517981196837580231704"],["4118836492174031498924794402231137732627050247621724573834051883132132560250","5680610538849869391871790823774772773597402719111752860694638146692270502529"],["15162981058558987538199666107207354615338129724356762818176402101705650607295","3389721731461404651432388255499399813132790915606961076031201411664691371270"],["19133325588295539296418966686911396799552890854679347160226068711530577009058","11966602717121194197230418032934762626736269501402463984995193849703031517810"],["21259317828943828462989255374909312546067836867591800989235059784499538262722","2838204598800763577597971064373216154758527274320710728532686861137039209217"],["17117233631626801831165688543116529014163991898418402341489392369167976135123","13705302683298212189510881160540919646446436896319790769372705229158074918805"],["5002442020362809820542135315282170087308800391198582985129008317389014659267","8484281089010869926240828906253872313005862409774679499112705873790794296979"],["28076295986945672061214087480775344980267010265612139037552717511816512041982","23437023339393340027992269602008948365324708282088240589647671988567115675921"],["8532799418571192258376865510709927729714182680611050994901790006058122856751","23740045203230132604178197570489898298634741357682204753549976301819731749160"],["26666214665531592788735900322851047032502491318796633014802658833772803135299","17736672938432469751506039657618284012360344640780302864223625906536301275965"],["4491342605542200867762923884378886070109257897763010532038135760338871014798","12252699588337362323283680813857506924375719509934270388242932970167728077390"],["504787620503923435521209340618905845592548025325518157644815869399241047909","414615619660930295738855726449601905227640834269381415983171204989457434536"],["26284527252773098971868243467588660963489025718834757494107428810300495440065","18937776561661783148140037559713197635141321644383907196367785067432030881661"],["14748417974130429284439631346182645656690243618263554980247106189707568676760","4806687112345376392386277169822463047153911892088373351866401885303698293023"],["889867543279208500996305449516488341701509039896654464663574755000237131601","25525375534096561681892235145323711604628822653034589231829651826193832445089"],["1093321535474878533797913524229773689803465920384986353286323345000071744691","10456561572082483375934634435366898208337220811424172044077735878686924410462"],["10714956078207577797148280041960340886734530503926819223762690526171192303111","28683945336126427278588491889871949006790500360340194502893464711568543210940"],["727296720071361906836898223479541089452384185882335441951825553326628850560","11672418552469538643278438382600465969298937552611418825710574524807981121392"],["14926769599033146809393161250774734142897637236715906054328741681176566905092","9157383503107825998805818508573630926087258725313262320885895869280765876644"],["2242564874150649927886513099958762184162946790442351138439454304581884174429","14386288391155966493914923131603851036323541909358610582479982436735629951445"],["19963599764718547773524035785121681867268755868569121712965864615084354421746","16682277969370193968794328389260944563798219186215815406011689469077949581011"],["18420529657591341597201172972571593425756763141080040698380433538103355520830","2897862589330999049808524477844167657292561985795660451306782096578397463980"],["26413939830492388072733708405262443571634426313412194573515795779677192977875","10140250858864306818044024016127315538851039037333639316463104432771451059451"],["19982599213220215474319571989266580970028918120844297056790734928077026981636","8259361839531415444510306916957822028209133872187546332429703746220400620881"],["27329814158423999236827728240018385889544516581261527541653238247500345289044","13862432406872122274606990550810957891972340936330644738134479082177559969365"],["21431127708595469778176581746974860884942200158015984230792692046531277892272","9933677083597407915555078142272097222862200893358387249377110480789366273860"],["3128046569390595523481271342855332745275296455607593920191104680887932613097","2123708204676476676403042715305753249942466485307603693052198027460062052138"],["7277764174520528328482731117601056237015072085282472085533713073750317019526","112016946467745654180407226415080611117270540278196356330049332526478540789"],["19773154813923969740766982000988004283831765852973818136281123689483357075193","10893665865275303690320018708376584230690224353196256419653221211239695188509"],["141828127478988544073972470224802739066201389132948097259219752836543992761","28231777381912042010645913080247363346744081752440841861274893996034664899046"],["1579382703382946488849804145217439906157854191653973021070373147779643152617","14237715794589391378938406756132283176245032156593692457233844825995346797833"],["11103912054077747538830206192138581253296237368597375403253806062283653929124","4878698588577762735314100065891508320806673817969460603447347833114229597076"],["22824026868187661272005201368040253083142826319907986198103622929218541709378","24955174399261635827743078523122069171889035790530657896856740565891783169852"],["18178702808109027905773125836945967323812265726099009628464280195866413707466","21863131595500436027387443595085554888552645152840880270844275368500653160315"],["23251509108781213286221195999443303669087665990075190644439814967596046597887","4291214935890646048903420636844310494912639086385736621872457821779800762680"],["26054993502969495135635494132003570989432438317167364744106473719980786223000","4965326459413470018641154470608592977288750876154872626888579543807625092949"],["27371149692307419359856801951553162609976565722717106326975257452319829745930","20101619155704656640650298240481235581002019092188637323544935478340529252148"],["15122319722840345670848590171805380366392445809567163019135832649854723696815","22499292311705111584442844343167680427625387349377006662659062445435638364674"],["23028427012483934610067364665353966100024636535971758822802704183120230506397","6325293136232846545608658308329365919036156721505149129546568839517641288629"],["26156066497146687149471396120515461375703272059176605271228246464467076446925","9671375367664750541828984940866378844296280061626292430197887392084895558614"],["9707889777111136535038433895018038891929770464259456331303888138230809026931","22653221328134987610337367556417322471595234260159692339823024484647006984114"],["11018541108743217434849027538319810038039640492440610012286809751979282955554","22386509816861617403530103380754419096862942194824758580933811783006505951018"],["16226601304101366572259046116349046543942603692719188859011145463508424959423","28611870171600673540155107028878091269275151170015824453064229549706914506538"],["8282428567140964586844255795259049998597164369546286581900692404500580160244","26292762996268790398281087292233041351631878100817497510350565360351533503946"],["1183076510253020703881009629577522014088087351118193281970714265057106918669","15922296196042018962682927671315796846830465116524498661424653100025462539742"],["10043382385637594887139685194430305697415797242872197537401046082536695686696","3628189028290039319451280718529821593251126548850505819620660409797740169746"],["6343125222373636191484772649510254015294615652194148820607899105688630044989","5337726524452396163199210896331203908772333456292836149403856272142079120454"],["12965261087033410078590770200874009508454159169194618846856730122017296871077","20828232095353272819493054703898708350111910275233367915287441368352985575000"],["24461014203191945196472521135452681676443537194885599003726461487243430405709","22911350172165441844128143534237246302383978573667431890625864540260472058327"],["5378115903826105175901498951037025455351579113208697939195302954426315285198","25147101664349602925381295981347467527696276794871842871068628819584676538493"],["4721017468872665816139539925219510112977702448557766037665911594233605034301","3238524984540367611965626201058862745918216691379985775688028574938910635607"],["26210772417992372521907786768751951214166155768518341037040040196866471370772","11394818473554446749784518216371987951440307316997040602903798002801609843045"],["9944393391530663284979505531845554723878911836749415688373893736298085337433","8473377665991964987567257056328275830850852531062862392342363657047671047349"],["4279908669833000648696415532202852804018518769542822373594549080128828024931","24717840542836633239313462351791534302021277299655714056941327313456717319053"],["15966699469032867269701428767704322679997358493791041439116536121137432129477","27487792772077037284336432973149760078824326830057307357584581914335144322373"],["13528368927634005746487204034727564391065140388428496171196580248547660481135","24830606775477404801604271101381208392355683619902868908469789162526631721758"],["8203322844728438041669372664114665199379050414938174612550261406805527391692","8310696195482163316048182381031747560154202658428153217986952456531059492126"],["27972813535775993773216105021107155988114143704304871728733061797919657531482","17946308182106752106238745800922041593261563620977101315265135779134420459171"],["25354171650323050182025830320829013400641938628586851899889424405585289898436","4253296124092736596406418622219109591379033897984892435102457505114818797023"],["17194008039143828149331898228120213253803602034593430226565326850648392016786","16542985728895676224435511083021437937918880557127996266312576715186227178361"],["22985104372914932811824377646655179808143113492938953343841876345346290116454","3699368749424386031413533471856080216384936586524825765371844403661213699984"],["1939456150465669878299212934183713325646052603532847197771667386531532310042","17044514344712178512938080437855380199457397903496342751429272754028412161596"],["6395728468339120228523785962736229891279574880690310493824960510569131875986","23080374961600389113410956288024101428695803801643678888422630097814027761558"],["25264063857779824014360183370116052082301577316755047527566117293403031184011","5212302354121096359494530082285974703605422988642470221036852216665208860507"],["5926313307453118620516467153855744349538807374201196061910123087494200616416","18956757295460287866779898657329538074492545640971190742809174599595743294570"],["17191448848494581754750922551143156542375126939095158230619889702677687547515","6685676762146169448287605288770016031787191388308708390669663764750043128502"],["3313156368608815268525039214830024962368791231221804115830065011908497478164","19311866082017727915783131480159535610507043547944348569420723107511398414199"],["24069491579468275207543314281771512971180745937499156195619099130044901027368","15200085690798873432758617834640571679186429923237390694410479383601944831193"],["21639419043445246528945986426840508626698995806337231316343505700515297804357","18334149653674980276861052514056715654535243918549533189152450570389236078228"],["18436474041391177733866563636351439673134991583616344019393241271288941523110","8576689845791795892907509844739395598309276393770701414303069872740392468536"],["1024742472727004166971635955199715796028282635060113442380472167071192576066","15376153275831833983454360482629312271392505625785893702712938120788506630879"],["12527420581596388243539081266848802186148762797489091567285211397541766477865","2783097952828726048302342245419011928006421474918599564924426859737243955585"],["1806873346832916277669801866308116236925524617641320833772121301106271704508","18837464292282912459100411991537976209725984151359814445392044111739328883489"],["10392355678316354750929251396669604345673106248198542844044598652560582871366","27875361290895653195477633770974433153472294988754793133259327803894249439778"],["13402991155395251352349248021697232685516556635788687225385228392788968649060","2092370861608041677936645126367395812109703762563787031291509318708746132727"],["8266319312991651349161395485031015659465965907630238717374357758709895877846","16031661738986761524839259576711417207833820470459599012701708638844996920120"],["24691119234781338964836247631783838369514734303454650221421165190069679993348","23239064281795539242126142162810669601313574564512779513544061730275346425677"],["28094993697049563354980904170765177115889309685533196217034086486051202519403","22633093800760081830843056440021797791277815158598392352268021685299681910964"],["10156686334694053483113396095145546737607336771158289726342283697179312675949","774383210093188848355963355710874672948052299201943598951350438674328046729"],["15929036777375398840807189259508460188818476497259852786288618874457771112195","5270731318462195422635562308537821371112426416011842456849287687094105852357"],["4215083228837488722374736168890381691787135707860459608341361713729042776830","13181320903611807187179817609315425268712327984202302637032931469264245831812"],["27145261949314706646967057807747483707427365201680554644646797132012749855238","16101725108939355722078119407438585720282444744006402967018520203393573566707"],["25649028917501872870572466108786826695975922157249838446107347646261530877026","19145812941932982327260024909926344594326380985411907863636885459374888856401"],["9798411379786880093644505624845816418377139351394914408277959550835760790050","1884665237208463971605099394905039759298533794860409847143158585928758704953"],["19251547887356911056260521112922784724200004803632734655848085268611546548701","9544318640472361946489833398701433346766658225201087126573254023309641281654"],["6775274091161734063484974134712053029698907494383545373091901148055721252412","11046394669219972847005656204260722463316600772719994814576887271967577838032"],["1655330407840698994277295239062431484970008547055352860947022682544463201201","28260760069784742561651346989734728590643719370921500370375697140332049204742"],["26156839459924562061079934444560755073678487043781335048873587117085578576015","5754900798349630953119874269358358545255394694475685457947611111526050101248"],["15193548985442356195216131474620385644964119751998436935222784174981894523046","979959579717129970781385204528487460390563726509783718150627673669256978392"],["10233605532973111841333461964866482298828425880136545459933282643982830493482","8972537419312392521731807308579739859849319460953563355620470645693109631992"],["11352463034180920904873169038989687889760770165762014785257800993276129860023","14237226895585295359285106738442920466500197481984382907591943083421827164392"],["8757730312515206402382856486456263880587068054026890977418860336127224779565","23118071808396047731062989525493736256544093389788956657797965099190156038250"],["21317931918843978009863634850162598754105384335229059857351547121915261871314","19734643921664411403765875365280494347394010395194683936859406255253216599011"],["993729759808050018712455341056309031716900452182537351856789858680284530232","18127164733568248539530174597050687324395715445626232106688774251899247687327"],["3942648954354220190973186127789899787832953066161414053168919878096023930405","21871984077921384016872263388734775443872667232822294950774694321995686323261"],["12848022663723262801867662762685214285184455079786502166835723550714968214813","10732989789448985576672416154748996432496714960272940944618100169424037154981"],["26495037588621670964032139753528941925353064639078833045311112091445864033288","21823668618276194285619276260650501966254912237285147547611223976330064001707"],["10783579104669207304955350566639190899743701468551818045508933236834902135235","2666321655785206988793006052762232858654179202184328777340381720610433024506"],["28016924264435576851249224093359988563999762581497883333986547061274288566414","3164036412714416201238463308681080185968436460035615634560097669949727950293"],["19801094844983806615358405490649988417997718554454918936302985212291543783579","6981697548570976616246445225093580694888207592230211117012083521317085485014"],["7319955620876654571348351481247776887462716788428927078549885305997294325606","12446622818504308772892848394661698103716005046435779343653373752823605737339"],["27786425528101098449962312807889900290748491133529134869644854763951768601068","19970734861278690973541202094362544332894938406228921572395215670515577519496"],["534065884158620095831092499402394206411931497498027392675003353428375726578","18133340402277535502300569846734113042980193827804543106805797138004075956935"],["20803338549347270592622774285538387815239989499270722045182338338683503011315","13458862003187780978931187984234502773195816674755825524274174809973171118474"],["19477485434535551038609629433051052271950463013134706262480058271030267364516","2607774864949392851475929743462195524993484886536890734375682569719288554241"],["5983808919365360309220865165715465735319744779443469867024464911618394510538","26871509895338833747613396940565452925381654450166963276432500458284442173951"],["28934231063637111507119995838619584580511222002108497468043477471838265604729","307242730155266404854873902065046300150114392988925851240654025072883676235"],["429615549669523876688189830244393925856961004123399251946930323942582532405","16315654355965782919744742733810977809493370068071687433787314897401645498233"],["18093705074158907961617582244406268015857798478615101051739486611894170839866","25368239295302974761053376181158683568496104455216312015677049843758953512270"],["15773333032340868758726190766520067744319171974691635051547112249289537457412","21029876171923501393603507742483656715088588181807521383453343860530849312334"],["16872394845831958198623195031870797459820765249858861903116078060413349764909","11505732725544022312681382315945184343389683072953885631175286459493752114305"],["13532327120373864573384828198769509868290090292860347548335512663450203598014","5097479906540457147403137026551460601749357538681898712668893489592952829791"],["7239634652388495816840551933803493058917891159309403747254362697777517198343","16283997215816137299593957254628477479969054583752694156027238636873053622413"],["4111206112080788973294860314202527254508779808972519194867519917165390950755","11647740295326025425937566266828821052894076843149273400658393463753682985192"],["17881721895564062338174748224662775009997226313810505242692779985064635270012","25253385614114840339533076028778355393238673745721863413557857521021206192716"],["26584470709690759101957994354428903464506686380881404968748916686353940550239","11936582381049774687827219520150728329531200216642207019576147491317536297308"],["12640928285734643268268205182031812727654638355480576169035240705500077446265","23675366822196296486127794347219809063297679983968320805604412428632378713426"],["7910906967006835642018714998760744315249561769576394477970448442155363352263","11684248278174787067966710874622108287235728876756296339185534014744444659176"],["18009689900858338343524517651371626189340272150023270254770896800518469851914","12956900700518500123791774020137437900452331934195145947070530630839448289629"],["6160137396954602376336704944719556039567570392655914422595444737904450391836","1679514103124801801654205693414415834244949281212767978968930025923469474865"],["15966542222584568983697582184121496338221591007144479943357933534189745540360","15539443169603792940796070461380465858989297527054788980169860455699684813624"],["15588177600480452396590267979621651957446464652026586036541908449828250195474","20661362762000430206091612052948075708208382298993000204522811234699971286952"],["7909615552348361739068200406259891867887307855766123410579943291384710964586","18466889786396360880750503793805670718577560645559023515328148711499431440242"],["2885552571180396070783092724018868969305940033280224165914003481321498054890","18790736273624032899680083052988255975274882924755239932541832084792400894618"],["20001862282090159773576994495969202190381652495402252107389008170259407752474","11077518020093492181212403231751649078439110801466062926754416574276144225871"],["11514364610711460161136034799300892413961707660344090022201809928036494443324","8920561628943869048951370714744352375135153721581582385255563570634916947024"],["20045048856205348737341553032742635714744418014052634442445146364660874756608","3556931475977173337757082008239054969265392916361872998808539931579193291504"],["7740261744168330402713106609233835929605191002070146672491272801888106072700","12812235943714775513764627801859275117030764732264267068757569573303461129673"],["5077723810455301972744852469320036499597279388900971239934411728489178314242","14286596008613954483720373699402401339984681395499983522849729104019324004299"],["15549493505108829024185456964541359219501714217582227036616022756021482054108","15802812548166034913635379889872559823268054015688957619212468727645094242080"],["4036212547503358608444403982416400361976741097864990468177298392567404103981","14883636813020178483876499843574844096689155640748818865040228506691079600209"],["26532842839115485177209381611424753884522714094886443920027910947492589076956","11147504775545704827256433981037797905733099337546404644614563434805331460339"],["27765572693447719800222727546389400158318371404028005747908254185427082953349","8063846228741876961730163797351150596849371332987280087653846133242330252591"],["15609062737709923667643655380097649653045598060626529679991705288114840889825","12590527552777752099950702277250732572823320223858739393864329000115455568711"],["18581179347924218062623136989426120168491772458527398129726051480088403955758","694232038174763270097380213076692692645050240322199901224805052500591599780"],["10060800925208372439550429788539764065915538221466331858999988079898751420963","13412037943378360940685446275878411526444518106587744893184584685692549302485"],["2451324284161755955815051422288102300426343615479545437041937095297785321638","28344945526236312278438319141542720367598517815898822691032845251162759995326"],["12352806575779310979539543194659064716000220038389874140171496984714445926138","18921819615622337571316969071576175273800259960926253273274509529742788146983"],["28642841514165163121736247603225905726234608816642914445537353607459164120238","19365068334711269907571207017814796143977316733420419886547697810314377158395"],["8850892566192820116526259450362436580478261876233947621462443528853578950311","10585696614824677234761760561233293024376770006130864098504820156724928792625"],["18465899544068681751231271471761978545948731049320963390187058968593918744420","19061640098205115220282255550289601124765253285542326114306037401314729140747"],["23493879372037473921971400207741389596263643351532640919582700121174183062035","6392864911281732505122763148124675914457165202054611896981173175151108373292"],["9725117424111618519516709384288188800329227156892654969755952605243416753656","14733375720087312128638866732625959364269042485154219015517941651667587760003"],["1249851663642297409064348637011898370496304681853251833088964561171165188056","25631688859839865263603789378738086276691005044294211530232194046646875656248"],["7592769263317219750519429080298946429546966188797584904542538919624611406120","15599435449612100793487576445960361223119946979663633963991396566791065515175"],["24159761888636784769422418826782441809498430523594805004808401629682591551936","20202021773640838124407055389587305631590602065744875097577430357571481432889"],["24898808409673761358351623547401271750373876878235884406265227507903849060023","20625738079354653987809424072332911047074661749310220649167004342363559522598"],["17680893685919354759169173181377777899624935323335993695922023531982714546267","27661493284285774058901569576308318782374243064167437543988147072475105788250"],["6381682526755748461204998571515368729018121761031098590484858612683325750477","10668522507809445791337102549681822723830998399702918903370277999777019773945"],["18463522111535714603171781794823507424453330779142566963730560385461037853599","17120467236395289713356701010901993631924548557907948448555640178156880959395"],["20487221153083554649698460142497288267032540889753320973847328974960006445928","20148990679508945026458720010377988793123379882731999967918317400164504101643"],["10571664800225392107337860062720285243882443024829601736104538006292440505010","27651729070048086469180726778555050470750717146072690372158918289915106802730"],["22578879659018270458331490119331277395040279794619327377467208439450444488316","13282236372325292824656179946014398177192416436499442292460118566196137532041"],["2790662215101047100727280498103068218521046072082095381791829685272616330471","26469453519024272388881141685181098361558290783939334532851627192896305475792"],["15398064161364112714288788808719175378658992170660410613868741679130454815013","15080798057321080243607054661166325879573318382383595551980732837849114405352"],["16869693257561729523757720288585778360005667968388724370262971950201531788581","7505986369552937778299253070493655488890430989158192483664610215529610705014"],["22945026800766115825919072511185490975270544258203133296599336737548750139783","23564879911762211704886159734880805579884015518576639815069423052984487502594"],["25059945441983586355340948449761556574411349008786321191930785328156016816360","20954014723489697846787502332448561903560936108541192447458181909691080900300"],["25570556333682154444529388381731916754358013322994211048685494377119201391370","8890515002879613801651107408792836792982558877065166490152880905147914776233"],["1531428383140664864172021948605771893574485665054704362720550443775323026075","25940649922260231169387558163171537294399098126698354760840059665160630042949"],["10114138102565993948718922243571991119688007597775703669353369377956896094615","15315321994367208004996986091818372982934901423441094169552636612214650611182"],["8802537949188516857879167415329851649928936138809742401505403790455491256289","2054223371668210637970657157896613382616951469059348605610203775607663907683"],["3593483493436408988023946344320524108145893437292310463573544366608394862954","24390516329867500631158985298829495612254792125583542117719338726000906760770"],["22369391730540668224025445488962942584869266220382618595022091278530394090462","28220764465671726364294266579356190144990538982802191053350141088718417268355"],["20419163713134985693092957705425402276719830498588473183904463216962886571331","1753675974342008297839808982368152574290187979851711095386804496558313752963"],["7214287095763356987692111367039636466111118817603751502223395937430504021713","9907015121218298839955558327170792917099859422384244189658701616329956137172"],["3998623428700149646848681110326036133723613736080321065905426504344249026822","14130018184015500914064419179001234922802674983223904768332808713583411427133"],["5437960660896752879612644408040232500742769647422744511644839384724975738653","6116243211990255250454745785745431083933022880809424919157832102533311261147"],["14357949700034588988032588997070769190533461477448964000078372437544518939487","8087609996097385853297222102983807882105739707661136278181612981023339184859"],["15927143686102582470967966090938436624085855777745241351829101472427506147755","22532986263153239950482338941466001572707013197565507727626409048787597114991"],["12013768060788544909967373310953902617832571050338234333196334338560369370479","22768665851517555042824439512645988621443842360374245177275943287374209420394"],["17857315251388969893735088537470618022795536439146776815576862270690166552686","27590013206978974382598449939066143624736119187407833057989522773727258304804"],["6072738967145153479281318115484651268581010836192629082099203415247843692707","20549776091455117460466088099516751622916525989161705874981344266980562671696"],["18688997694349203219322183004523921856941563748590004690612239553615235493622","17776572686018764999258977478581669515557651987393788360142598440940148744099"],["7603775740743177077324948748606338610526147444899911698956587996755309133289","7204611054737668958265399902587041846093490556019178802037840896702194428856"],["19677868415561911664704638616117433737285353234000528663810254250681330360096","17705061167430361196035200484118266510199769706773513789364388917792116878620"],["20825021427188308308880478454642873994421252063808911159859455266074995815848","15290061834955632637161079827582487376600421653537198221047163840899396643471"],["7604143722568980855808193056711926715020439889109240163559085156917671399590","22216282642347173269249079388295321275512088697526333350928866699611759632542"],["26353983231842560843439236817339713418317813466107578293404124046093747451943","25673930087205838114779264421944957926994361621188165444288156748230192491628"],["26885176712539250441681492774327730504209471617228003815301027503416508870506","9338646220098455666707484194446927415960645449795211841923205980362821593925"],["21828801420123696027305989497011396036154012045634796032014837699103447210189","5754953462184849041101790538521393044884787853950392348328305118080489334018"],["15383772710419513796454505581885915433133758685051037003531966169883036342786","24865339253754911378695717155035035411404495183596473126188650483909768383615"],["14635185620605792323534116648183510393479284381819893005380890375447158779141","9805984771876615257963139873285161874396998236690222905160032591294868744409"],["14223544132037946290024180756437796305458939438470866050459374445458714780254","26319865899170933115940471568040185087129594671192910152106874755426627663076"],["9310098385910737344036206850530257963021319042121950848205635970329886855237","18369807345611966254980570055718744829647739165047336285377973354894256349148"],["12179538675357172636955170343940065696331695115225802648335986096811039871841","26785731755624517825938736217034514766859829143551365048785318444289256736682"],["28683381556827399697518907511123938350913280712812545798439982652747742117957","2207664117258380979485124723339427212598196158710943138059592098859694499274"],["28896175277228545351158769013209327545527101757467661062706327228917262041264","14500728402256223354623159452356209338072407422277564977017310392963437381990"],["26319116234804053852228716092966986801540034936540196642834097921317322307528","27289596793428656365772963123743440724136703950239026786089176659696225143862"],["24260663499904448893664982952505252153635604520797546546832646409742163479947","25806047760853773374005365239384146040729416032500883761450646144788084397655"],["24167099276183961431976148037841300313475726404205089821665671136014224475553","23525939239146614420788271265814499246797631084094192296148742189061014501678"],["16061238608117915116411057452821949821869578271632893032692765582572372310475","28389081371167346454714055975473133587079644107589319173267418696488556693123"],["10274322898769047467858686949387443843651945095270067150294756684593572534730","358415483083134950990739141189646432355486790621462253329637901565901862696"],["689251261170220126049661849797536228392176718327343288193957892729602768129","1240508947913129118394663537503737311491696253224109504208837394247616788203"],["11270955148934024480803694418176618931012324353909687979361928010389192979473","12600354730293527550549788053493993301913498832921782392245102772943457313023"],["17614285253209020293972631280006756130310282309496926891312951542538690654057","13257707638972430967993009521659518683721139651462842841533682305271329026502"],["9625485239005779301786952621379541088290182028047353607916636586089968874559","18190983246684350300738397737174619632339032235058431344683488999616312407215"],["11831554072236063877089741964511376498069305309004680695510502677597485837070","6885060661440285737311527204652694452953152587703813420275774584051410100994"],["7015768059911220108062575485265448488423404306526368644645019233157034432971","15220751362789729156512062939421679713510012938359067235816581920171111255274"],["24406762566161499185698716957100112473731598939748315123367640687483234187200","16524541368229104119049463381345399984894856760382798770384791081739075793432"],["20690914864881283212960507310234024440737818074486800232754304814303241017187","12064637959852466256632578747992321502457105096191534059348487304122024177000"],["6736820170388816795989529929013530278097939058023927502446118832472937386201","17150963517421876066910899601599148429756544661616364472304919868627353876586"],["21721471946304081405947153231248603107285748496611776555594341576187245287861","18258514681270208405152972807631817600755511850704468486752620408693505202349"],["6277053629867600555301408334542180202316332010756856630699653475108785343290","22625213204289010862811825056711344268746708691585789991653257824233264324663"],["5491116442237699806579170299627075728107986410042337267391102198457531993338","16577011027891155095156497548260588324833623235656228063793693257271104764439"],["25991602256497205954199062159596048128368762808926033346861713981404241612397","12344628570512259981248584141582797977254031069739071109102460542346690327324"],["22342227133673910407569483771642781394590063468117062134992590189625056575051","15484803033167795491801909802175281464389037390608024784814838821445060438183"],["20863269912882638729438656934299082657008462834483141354653148016267030315999","17819516568504218671911612840111851108272850088624273830966006771769750317670"],["28840942028330022261182463121659897926550163915888504980017218648670472415504","490914608309454886029852574187713392232750034579756714010042195801808997444"],["23483691841688657556572418536701449338526903527299975417341276424888726912626","26700013244044610735693785401124272966928178052700151105701651178127875218734"],["5928988395625381087532668242668854340949480410061523227688700469363965326442","2291548414281590819478575866075415415164739957782722860954341719853161701745"],["22817028921700872227293101567113026283229743416920976695866319936910432147923","25445434295588870165157222065008358103556332896892704791209336735720952083535"],["18523059712718400297701673056023361484673380045964663530524690701352620303354","5550115830785118258792538325500243120752044756575314692056477659012933901072"],["4908286492092925803806677089317810616140106382857012920033970247971609967878","4960967835097185862203495268557548865534025728203663222708017364159563799009"],["13198823168903303273173321287191402305645217743964241618403385532966013988767","27739939881494727124248829522172418336492730260406521371291515039824348741538"],["3709456782025569100926962514627326165529772585774919714893513816249172423696","14402189540452827166152532035804598454556633087898830945126890540192361393237"],["741244172375588067107326781587867558088413524448475754090904372236389778977","8293843326153752603270526104101831374834547758325897384304216885381044333969"],["5759923450708580474975204424824635447545178236611638989290052332337473530110","14696416986325840997368415282957677800353279640444513213319557223689206574936"],["7613399503778627664514885097019732531384989855477369513160597198235162982512","27508964011925069879127152436183637393454607370746821906344043695365662058541"],["28580783407000376918161714538500908673480538966929566146825776166370851291685","3073206926765618103845944409292583536819608149381727177411275045065736079429"],["6535287525857497031743012714887734274641538459524805997216982402704068224932","27217012781758355050310376862877346021079810063636629618788282479818300884817"],["5245896416091777824401010278253208944497343558761133038845243647504147186785","26015031574013847148811050605101405937180182919044189319926545175656959237015"],["3312184059649724382334689517480135932228943527768923615969512260616490899688","20377838065094625479224544031193497954075982750053251755726756608182808403501"],["12569395211220175475565359347940236577052065630074446260323630212812811648307","4436617234556117492144440847287004670208271613521079958443099308437482317956"],["22916799770206709260477407540617695940651815209982325870860009454494291450348","1805865972357517129426479791585971756992239755883920910973716056292011954809"],["28152049855964660416214639861101158559940856384108558003340329061031968896313","17728518374913981448831446663079563621879880124609026921826145968577036561910"],["2025870358654512350628348250579347652133227868292242597939444052822400750825","17568308535862453956365483906509411046212081707353063391097462214261331133486"],["26165090614267456594964257760484576644199735968456715360798484811321143281145","11725170433125401411415423442113757381272667810043751745576107724170939498147"],["21413611127603429364600170445631719027892172072272495603916666473405612496237","22933977733794875281413610670529683818959618861411120174704578152822091506662"],["104215908489467943802670519718670374883785984453812110636783580725171478601","15431390195978932154719596686591280832925997589693799822141262885047589068509"],["22643348692598240866016102191016822399855321231255782534064667257208967185831","3440546026986671528653580783503272938987568126627902267436965477528230697770"],["14684165949034161425009042350144936766393557782182708562487897070746479454146","14100704819106826872944710308741737109472648645877183260154341022803034028406"],["27307393071663388500212047889674922993034918058874795142102582879435120541756","11334060110242765627145775933522061535555692274505134855142969596720436047616"],["25429031115475336307400072095677476364868548206042714485226191879282417071411","3475819006282176956218449006397391999527588611078168495904589009197794905108"],["17687724464780502408563814672654887369759675608818319725887486522604037650063","24497836061131123506741185037568287140789332716589289628037606377150829808719"],["27030726500501943635378004543682380752964281008130290629916186998290697080295","28467198861726789629160735897588275312445624900970765390527157720925738956381"],["3239873275999033744913236883146599820464288440190988448043901270014118875696","25718696696809782974123320913162873813582250174249861813422918923621916465191"],["15639599059982034151206381956562685162958109396547373257145158441576398019023","7455498565914598441341900185409080687680189954402414321105956479773577355176"],["6572635269353238694181999621104379609800190085442113227652534707199452937870","25230946773172823468818170776697020151526306324754876181924618774626798689631"],["28333394128906999796887976424975060552883520344454041368162473230611291147664","23375999100252748572705430972397255842581327666566915353263005087885882901827"],["21385715831121003227461944677030674727522883038210208817145288025330754104619","8193922298673297520911334977885718986289006485171732269383061302994732689379"],["8686971936580609149466008464385463911035947956459528425904211352374428551288","2008395462140832540885768586746667841694060723020021518549598744016273234491"],["3264905473040291960905322458279987423822208537311870921905380952262863246805","17383225273832825308554752190119139582369316420682735527180301796549558226334"],["18779211089860437639185498839023468934617376984847231076566176706978569408533","1384534456210976748475249203621923754759277184742492586054129455403447549062"],["9102820515154594564797272383920873203262441701618254221809345110659710200718","6784126728251776979674194506004638718785261282786827687801207593332070644336"],["13695082512169070766129815802881032975937323136534384210141953505003366618912","4443922351467980663912097870513190438693102221872237798268669924447432314215"],["26037697544389078201681518127364807948706108814730769988732727049942859632627","7101422665919766420321670001431141944484110222653776468986950885538404730788"],["8260574131506065517651153533253098860550369881701757141300455086807744970219","10561137329773156268343607885966682083707865085445127256073999025048771623095"],["1359020357632434331239902442400797258394890101863987633959426246344594593773","5222736671306887942074288092054163418404414188152056460956401961845582374130"],["13631211080515514710679260469910368008522433420718835354411058981194384400861","22027744136874463864028838211993778355497975068255580552670084852846032075745"],["5094458601753678475972757946010030231322290057318744193917454155598381030754","21769087335131438307854336113413635483997747107777993787483887884801071789850"],["26531243088467168607948513846166378350115435430200638629898136838708146732068","7811333711771966780700240672456023549192525546678808749892806020162602525233"],["11577849015005868241933111448588977734762510855405172708007262384905713464019","6211685099461911774265118478702701309651207443723650594866222586312412677088"],["24751403850822701147015524707423460854844453921232919731093072617098810566860","23415998720196580163646601193170651273789095453884057719003558159592062454397"],["14338629252944730683190548523204652176749986784715941264700011459612397726687","4532289167881012940625154608963098744144293363323404228210370943008512453815"],["26164753369954350441112423590630069676226607583422538769990920325796405754244","14669238390308673562931886700708316687424298298480071731805680537894997237505"],["8904522413482585473889786901392788644957608519982378648715964421423372725546","16592689748310793065797286883628275826938943972592260962283071866929890794115"],["8994607980710260595784254534566840378684681222983266532312676250500521520844","28444339972394773422277913526914594438634237631877270846742912468859606728489"],["3960532761333003343772921055320739655625758161759419226473753996852610950107","14063152225908776138959085135758575150912863307432990798075780130169180304994"],["17171859005187409578417083786485146215139598407431633158429783540206023922406","13965258787251693789213334299030613941465590298830342208522652369535307644302"],["504826210586957624403295192082522805027208429931442257409680482959069572693","21180428347275086650449240994758442290723370940694095660106260592438209892657"],["20386442090818952198857036304693308041817083456510897534224036086715327797827","6191065094854670826911733942617454230192507905373124683784067481321856580953"],["10087963060095569229140840354755364947706455592335875580218013744292888948437","25231330193525589735952050952485778123546537445796000745671667206683562464544"],["14030532135921819732433776312241650166382967454956463500687336688178392328562","6343519013416236514541023679644864652220409379361598303296918192684936006350"],["15239021878639883166324414185724924202015073939280591174394445664702244703235","657401920920737312790973186542069377858185572936059855784139496392289790766"],["16902962501606020541496400418647636236237235235004201644591935724794966824091","7792816736324612937264896119918720243487192790099501348807289690633207161847"],["17719492061682267663037017499701980414616396397467903713425058357377402231780","20972782717708504984026946771178671117324420949831463598534716967136014759859"],["15283379389417960589958114997129700824221713318511017928430315792586011097200","10687766565730174153383062801441357777810611756830491999941242179369727647057"],["28441298076661660856829440989096075353394189425862708664991801068421136114706","16790697844901191854162610342999851548289979990707142559808213225566862361603"],["3779380026975730519926183809317014458560673087977488789777198744764041408838","15323523832301672681227413215761038210509910138802423040502851670326589470159"],["16316629403901397025898038050342201213958985327912641290540178444718867336025","16817270009323318565248819865106235019927257035367770467048666494311579139403"],["19432253944079337857877935412616019229947831677159594951155142394825557358227","23064615267906425178055528596468463649641460379229644489659030609220144224232"],["26387123985739378483975058931181465862904876237873473082628683898898354589531","12875600627684943610599122872303574784911713597295225838680936690147643191886"],["4886474412906040127277332247330707126115621557627251925392835082165277826343","17120447225874388660339332411882212320759589596312479701651155865428807719387"],["20979885241720376349863385229883794488846594504209812438597783696129547168915","8052621079974871244076348099013187075088691958359381455934389948859994167291"],["26191716499409050277551670260092838952381738082157270375798110348464960788575","10082788067181527257373726249165390410407560327582969233525490038078595921203"],["7054404129982125700589929885412822351475946820636035769108699766339368520371","25194582848905705167477575755442337575698371294214980006218490227160250213418"],["15897378740038828004221873813365661693730618374067797152317492702798069984143","20137438584733250389686740740563721070678723697709744347362428038617652464277"],["27211206882249485014270827356359068953284742661072818632853656709255259458395","24130421558304437351368913832779359073516557245408362430026931583794678357161"],["17886915738828397489268496830476177258741515293180833483475591260093948418495","13964546838731859534845783826553559877368154041735269563692670159273119240060"],["15257257759657991589417435940406111185340249280238463013845418154101169086207","5844806714114239739432243077852204440950568637869321342381459582489628113801"],["16958234801844789081913705016807108990758128441655177433071570466055307524869","24703120049947845463607569363556609623997326319930813694282219534979796699967"],["1856961402877742304861714733203680287028139748204627796058218923128073147762","23956161009066715372273460495884379635027139742458037444100519773395372697703"],["14953943830115769966784806286488389544779884933579455763591319028766177334400","28645702106051768952120946047582171023400567032345661763664353217818738884943"],["20094806971427128695205973576254516480096501682588047839891627041848838129873","4501638536066743633977050745218269412051889196716302399791749347744088620544"],["23899571375098794577622976332416563489393103955062263602742018636451796313022","13119814632560056035564742605532573387930332955836533194761098340754218902093"],["6134367834406984745050852032997965090975279274189673566363569797395947610391","2534261244160671250703552225634799174626798353348412701675305838483051012701"],["11991226386960222497019436437269130312022067399056259836482308682292389723796","15725265343233635539048943351429653140002531275139195260363070626806177983836"],["12081282266660597283067559080574068162965960739495709163307158289499577994193","2456935106588551821954767540561858659626582683111499805749459670685688302012"],["9773041874049772561390806512531177169349627202211214612199634909380934545728","14724667557022905789872865672237347544311638330915557768121672340089026535857"],["3033200939672220944524393352436404826406017270060336708262231752623353339635","13177327947508407077174312941508949654691266417850923568413904666466722167758"],["16626790066002554026450830219561380768726733159536849419602892711822192609301","13369558820822883955869590364780620616550682594592121806541912558717126400271"],["25839117981667461246333342081851680741461472791052935388774025227504655441732","18804989024227492493360926587533611609005435262927350617189190948739446862610"],["9028164171914018168095727161526297119098653842927784394146892596803146363836","2666231059215223293063450277052197988792622516658923388113824130999074507991"],["7063479563248657417986627925614432661538532702994571278575516438773482175007","7554527013101466155556633774755233106123401421328623626147520992814711549334"],["14663561037660762348143912440709556138759992404394365343457978685202629113866","23938543604368285657090959160046785339515288525137605626554993408061808159440"],["7983698080154518834116533671405681358852587998748489589777487632811882940703","26284450936689565833274939978085093346271792680675891500375849269871365918329"],["3217550614271602013695927996977616506004120756202681365308789655539035248104","27261542055969662026003049691588985396530548135595514316293509069125571733199"],["15777659183674812173699205660363660384001013732075852690549757090224178632621","25426986105556362042345142332219558238882512572446653011263297096028643801960"],["9442186614941428566804807437536713209485119605304664182908843285644881938504","25772734993114789598380475108043289334252853417185572049735681162945953367305"],["14381302166146290670913555328541025317104832946575752033417102088997200619408","5810405643054643221407472038952369207980698039353807305763219791324992115171"],["1736600529462510425016393603333974464257343394383595585868223154997774767623","20387807265049024634437819489594088191762735852941889219649952620761089152469"],["18008620599819162680897534476767998597747071627189514455858019878737134794933","27065214028107286314425188967827998588173474944033610692820272061319188070792"],["9337657760806856079086277357659667292865244462331985743056921277140690768806","11379445137003763868098809611514561473015127946612521765830642255277120060546"],["6762664927901954598536547115255229102242187706590095431372565475749193984293","24954881013033528039645234469373281076211141219075386089466602732071511309820"],["6133987982437467640327970800345454746862336474235079240230984819002377106840","25528573998198411507787735406767459147737129544081151513335989122976435701786"],["2443482466447010707581173604419704819955128571822811797507306107725512113290","27316470062852524422835372704320743839519931649476887829266270535239616270081"],["9488107507421756158459303356790648917820024834840796981553506243115963273311","10176556459060949057700351122679403282958334440251734351645168420049005920461"],["14961853040897296596592251757190792579034482695447378037368288292973274358852","9567548899557824528921506253988102834443072481439775870568887826925449062251"],["2306079661457126773968144330279276615049042466851660627874559147306664873670","2164624889044613746285186190769087105495462273441784177806380968892066107801"],["2387786330111127490124795259936963713716793394428383089324842562696369613587","4069267105368923453951858240860298670385274566213765404689532583189218131317"],["13749025001828660678777886527340300816684217611687088690570809616451926622277","9247158407893759902978502258168796877483553963816759311692280246559158803547"],["14676349765211532961454583483691959966149475605477138150656835681665869992130","11803035825106000335932519822576324124436523907753611405351990838470288968642"],["4034044560201173236933755892422712824514446835005598702737866842443835909991","19579927314127221967805771732920827210919271394544040239749178185233347234672"],["28123654038706471044170986947122173990465956180334910071558920423635456683307","3985265843221056964616442352013624880254849724966282662054980066678109363388"],["25661227198950050677661388510227822443216531528904806920554597408758544337599","21773331242541366414890004964188203890441397027366611539468080848005023820685"],["11841773874210199100904975830799987412661170835863836393087287659058934008388","23631288692271049642525999318015512852013288080516004081401105074292444741827"],["24030176695973761858679206666694083603877094180735514300296024894639016888055","3097803278869390158042667536921575333915959497457128376071791351576790801460"],["9296428183130480109319470135352649356100145777710336050938734516058255679848","2102831823639260137720128999480761683804446613690950360714983389604482318192"],["28168752131581491676422342307952067676423315380685349108813704496346189750378","4110694340428485029418087091526267995377852409876669395591116992159930540929"],["27852419271269242483287317311227250515835945382155640580991669914352431382852","7970248661046151968914703534007786715564066439018214346598361194414798187688"],["27578994283373507265031308660856805620710250453237232727069888203276066768193","16509646051012683045226556794784835035012676975805106252159638066792757929274"],["15955213180624583385159065192038335346112761461228899926462601086702370125616","2426948470028714588256084745045244755880863660128111394498390003192565479734"],["23522126544660046280051277237786672447751986125941688943193220986887339458757","26593224845197657742762989838372863838505616675873606693145827432661866205753"],["12612889357350667040220130686442517409836356342857947440603501992326164715405","11656881298959234561163424695663269569157526961020017503208464260696971269485"],["10650843682590436067102943653359028605126516043334832943123064339923404662164","14153550648639756763739067665547436369020984727339683417226390503539385778291"],["27008908398977080848282101789528735245978110577358875446805305686464025673130","21712542853943649644049035808895027827779129237015901331342164492151205703208"],["28297213756809836920480670779853920817737292575207423233698329496777432074696","13955927431682305321694047275166894761888940086273348406646713401835700632710"],["19459685422981241787497774738885578277974136375559019395429701817134135747623","13393664200177976130355471428142118512540306643979708659469812766849293069333"],["16413040971356753077206849827097652284475770336900219913440690926922214253147","4234551265862639588131368366431116834212734553491432532248705320214704322562"],["26925851513070401734377889605102926024348608788269901109522588220911939586551","19529301082849306567450311796727622971663119616361203793253287292459136605203"],["1389665718889646013303920786911669878843269093014888679413417806513054194572","18212336000988138340905143298723852998177269925955245364558735712520564715654"],["17986178103128749878317510838869953323497400078893695407214904574635348037064","24366570960698981616149068962770051352609691977541768680297002118395315690469"],["1814068556958651626145972155205460584382789258519233195643503541084739236238","24956374893743693981965991986959062713401097574194833284061007499967333019158"],["10296634054159399669003024280727661393161579915993584157908337739858182026778","26682344598460105609973267478553748314742033081592059356788096254304673809379"],["690966934324866911822864271210546146412801708892529879961643024853640637859","14725646066001270645614360151208388438154370834559090014634829967778100039769"],["14183142114752826766622587443139574442119223770300353985891208159343823891863","11020949178347983037317790020536090332538248380299957669615651963275107865166"],["16027437413240574900445865323774544365108186860933719534148045980849269446279","25373646185363812940927453721191873321197280250334780694533623175874617483810"],["22357353422770816755352071163274342793126572469361971081531957971856699953575","11958886429633990572232554998167251350816171751809416091149460922947753970226"],["6260137190262740267213663669195308264786878293605434289619265662369588608400","26537709003107529089269519527126034730578388922085072551888786726514836566901"],["14368542076595492679697510303055070505818764099460918614676777659520368928258","3579782042548483684443547463266833619326686506695013455734435217115256951889"],["8148768916194178431671790743092728187525456507890705814931656220908189305928","26321348344834641818669314724436615213925434960387798922590917648052130094875"],["18380398556203557027382731113891946281564655619975115931803591035113147374432","4142551152902246880532005817619935867418626693375243844933110125605465838069"],["24423697868779411389411304076131666479025722360465784273179612351924498931259","4568327902709587986444941427239927221028982780409682206286413820374582838703"],["23284925710541673298653561844020722534457143219329227403217294158013978260028","25488543146235623399919862151111404794308642330291669202367152572216339417502"],["5602242076553760445802150966457224434108106251400364584603332215642448168896","10844195219413528938374105294007711468245520497417541325115875070044802313250"],["12600541075624829839003715401454779066136450124672190777024491434657273419238","15939779679541868942174274745220965272301603442718920494461107804263905770166"],["28352300237527523000316059906590006270397377732641597715626250834883952197231","23019493659742339484050442224054291437179366680187792393464751363941845915682"],["24209309901133928775202444027807178071329341944121594268831785016042506106670","2845725260275589198809409112626114321093751177176112459519229379460889680518"],["1812377160503895745934896239367697101420072670053566749284393476833299410404","28648723421701489223261392362250848294055928844396909961505380129264688916314"],["5086503729429217280679307242254800697499083782198771660211854647043774192443","23135786975687827709966603495722120747439380416774280641338095893757114437487"],["27900184187908464909652440200802604887076154546574523469530218757247635754248","21642441039544561955437062581833065847076192250630661448587145063474020135916"],["12506088350236020513629732672454330751317956117216607115663423408232509323948","1702326205346731879001356628020029140440830673689029106991714021673659525334"],["7531946766396816617839534337598235050114429535414624794931254118743201419537","14923471826886966080233457041436994763220606580592121276667588800232090619025"],["11745671730889740412333298299576552727473583154574320112126815617926798124601","8068332183564265498625792051210605514072336552972477602859687676613906201465"],["3504919769776936760517687299151102437856322561856034826251600637150236111896","19370154004382817140418846429607598635439688548119558307715303432276367343709"],["2043513851761581889763533687602936130364082448855331794306656470851653414721","19617884046973230906427428116384327141966180553345789312338236643776838918511"],["23995618385080321157254109600930263883757312605766360268909583909512522208007","21381644842338477240970582440858417440686395381198612217125779713789133413706"],["5623411617885942423939258827319083376629816815916897669451788925192759811017","13028402997456810199504911189875393978783576082407389967344409194516080835388"],["8985804052859002988704920238959346116093767145037353939168321651331475947836","25157444803568079694888336773380001574455940534624530935897482011898032782315"],["13174148412246254909683999574229748104732105437438120947649023155666966797766","9119704043620462642435513545041152286219860193429658345213101446133628243249"],["13643943156338149433640930089683147207759866144896762660865267825438420064902","20617382686189186234128146933006565410165410676060818683159045159204663072032"],["24735803601709833027267005046286687572941720829771645885316800125989218228076","13297014256438334203297083789964740644427641470795581813458900686734461493789"],["28754747600645660035453561085436183021968441526608462648853988705354426812108","14351596065546568550867403939733801766009653776704060971092319454419431563565"],["2531614185612208897967630370755844797414913645105735288177142887336436390033","15414042623515839440143820474364791674414190638329041926342689231073813478309"],["18000922374133868259022404606979907497912032546015470381827235398715699810050","20536247502328450967731183244926859920786487444537767276202773176781677952809"],["14351261998225456313663293500679353573978578280477452124219027491700606866663","19815897657286773853753154137188014545274073364665687514244045243903642532816"],["6526397802141224312613468705594790115244412955750521360047246379491812483381","22627364796290949924339480924369605578699441734277946381166820203029095510292"],["479659857347273530478888913360754293214515963280193688250184429817369776825","25515597529173741422170354525796972291321871387816454311058705133341844461683"],["25258110288949956591550436577277814082922534309777912872452831567690239352643","9692306619010809943823505287350288453514184762286262983960621817702335123352"],["18927173086072126009261823136620588578704247012825436775159008861849837853694","8558721718068937382938306779495366662623696529116055501641137739955820519225"],["12274476687491270666513668630560863328984192366893864962329749504368477880121","7956435221835316211639142528629175617920335121531000611086939057377064424432"],["8132878567404476890787474913909255377289509099039112154451638513610111454149","14760865404953729608924521326752662465930237015718819370424561979324790194225"],["4466553001571088403929602518477642533123621742124217524589154434042811403624","13574911949980113911743795304911513852525863777452796779781641296202328670759"],["27867904654608819412733688996182049488306270484149671215550095800675389378448","6426908523187359394760594725577558448009196271494136537299227154422616800479"],["2746241240885547176965573742217114937300793819265094373443308768634293314617","2365211885188183349012527609825485245875121332563886078844198714368405358995"],["4730619776042828547465918014211707613342215636149211968029989365521835952162","22023968393724614092748707474508011531150752658112641482161584244866950731881"],["19542876568128484670844613216348540563929110001360156693777179681122896429855","27933886396770911215543568830109188834948612222105341996498288219814951662164"],["25976161904074679746849766671445393086334996403512482557275083795383568275876","11752880939879083758182152956740852139082405545817135704467856973212380065768"],["21277998534259406277912531230046051775922733009681453975928669558134394331861","11441832259902015621573761936671731863694149034564133291451383199903377798910"],["27455315298202139436636102736772848963619714254400871501501561403335895265134","21191275433176259771839807944367512908950359418016842130620641366112716304018"],["25549295364306734459588191974886874594691399388725627439630749413902300879046","11368254572762196358127875611761712715613467069180257399128793313204679775131"],["14384339720639924494905432296513577304791884552033770452399037067479158963516","24829939967490154209571276595874653833230915288266513208843199833449224385196"],["18784639729773823255643329385926827063848579135327998230852540506397505280941","16951254282814136881110305354351447331901355309867400904657127154545299076130"],["16285698217392123927568580311655805681401631979872240407290328025534414861539","2445402413175293470108803900910139237494753542069051566444255560918318915227"],["18595462840389304686402533345505104012726950556143654782206799841583544522271","7996529521934793249709719081384803450325042315381809325073684647534241968515"],["4009783080385863761225817173203275849734541262257752653987525578472572947554","20919050694594073609597451121681896572580046132431715331191293816673179821853"],["10961976611773040031946034936950131505197539362340043883209303470223619968744","13056137392016208641278788046335261075751416949913000427609182885773005080115"],["9235259327116780232832490168819556459284150277367249970179424259529505910252","6070957478457979627572805592909868097912624875337636697200983405469869730050"],["4278548286849335483559777259931713611304635344770614358050912148289051241533","17328144208473107728508570699025030102506782516829100454282725369556550612266"],["258909672869706722825702871760749294526837357384117104999333973540784486617","24991821118005141373264789096519001367432170435485273704000917215835419631831"],["18006448732868540937755243367581382165781221794456922553421997192368901023409","24036933915901693196045220036606450229086129997529045104128228615330149373405"],["23699598864286333903111213495163120564703241591282483932720309907485070117890","14157508038665338689825157840222324608945551679324410781894970544930980066560"],["495868485586357150319377873177817739818172723331285767140958894457224537971","28346515442068692832751248889251281541907478056509875651100364612180223968463"],["1611288266338241005482667403040402344882946491279453283903713753382693922127","20109129979228174700029823669423593829633606138847483676546684469783311978933"],["15724298751529391757006391710243699123146313064990587932548633878916298540317","22789190260588939851271148290653735144747318122514115891247066490261695609851"],["20492603003582601927753328477935866461492885825222969907103742123374105143223","6271200584598937677811889960287868856583383592194853036538246834467854728782"],["7623058483539845870761949469377679536317236527872937628369723960704272078990","21017601222229749991786141467134902871222865302855976117286825408761998603969"],["1247850209585840743234309737288885050804377560613140920971473032050708396597","9591233869554942189394195593755704390716905496188187225014130163335778030306"],["27244010777454731567433966114944757501227623192351477679550029235748541384098","19429093947709921492214681892929148995742804222961910629507062557417921085656"],["20765197930940246024781274056420116360576377125572162000854992154529030322880","19586730934434912957984769398293577970630416217958367956587741050486580458938"],["4325858553594562274830287118350286337398196874439721805740317234878485152039","16461195234971810251354777143379780636880815422675307063432380317795193412732"],["16415189916308623794174692006711471639876476861022600120728174611045258829361","27630927571457864267060432425986125448975387600655357689835737330958737912400"],["12868825397651689703677950315630440225925285848909140868427522469835861126307","12847810009378340584906280923576314348926992601475239512186612372867258852242"],["27326507986422274100942281624171978983821679762596904051917808864501543095855","4135935791879064132518848568000859919563186181377433589493930324578354696296"],["27152072145979990134715966443906236702120471438759970107092209775312299412694","1430305749087756919135701674051436563570639042428493838180664227989159174603"],["16719632349330231571307333941673669710597765721498786597128989003998809759027","24068874284821372822641660856919380956807230150427262777050010522967066699481"],["1807142609886444551338120890113317132932950631480987932758750130039821858999","5956375951021702897744451205831030923547403497602476609793128156594361880752"],["21168125363671254782521869740189482075300895880531555877110744465180538175710","19118071113617496284187154297598125486706347658564396704091909119025466229407"],["9988863413588210047926273216006293972081107833303496014415954535942061585313","25026995882716787676648867944974232325663789154613502242020021793417641670272"],["20280735529974675635187140746897304472945069187600728855703956229355015584543","11004488290136623903815655251907833077232291921585051540573188617593173670411"],["14031996461774508468609940294171521614880466236174584581516855229206120062532","6015903540113502560330541428846159014969071714905752519269398362717919535473"],["8781318800476800934042821570352776492727762743298488964343723086259108170422","8698102969532060724412469712033694451524323712017776739472035656152906683423"],["7325474929329898716237928305697861862465959767676235419595852521368357040762","25199586489299327958866468010573503945044266688044592714827584961509124938621"],["2482674976829067424295748722117436350968806867661489092052057286508232037021","5047551076111724349146512298302353906832806870674089539865900116779110344920"],["23519790522191423292343669430439348015502297202921928107793319797117643291070","17196484228184777318174015282443363635930400387340412586510357107640011656810"],["14231060682848122264334705742254489806967665134458911027921488141608773191704","24185111488598944911224261569891307297989087972765946672824912819990519323129"],["28147560896171611852145537502321582745502295072405613408080031339144942170263","19402861374435760645624875510117075517274983817667784760864032075440043244101"],["21694074821848491334730972406093057626169346424535372831819903876050861326094","28201487877235501697193276966735928229049334952421713280289074823783486245548"],["7408190039636498507464396507719216181807618071854087796578653207851657991938","2516060833375464561583349828016321990093393970572969886936357004389237429918"],["26992268398271937113941914285573353525288746500522902272328123022136586354470","15483193188750775837960268327732967515895713218747827109509063580000815486865"],["18569882077564204745681636813567983742878334118185886893749098950744286877617","18341858691005291621389754664200069778072700575248827439072709120250589755045"],["6187203609173354132065516468666381802015048754412621067151849680176392216222","19567851070911953629954410700721047384124219579515313249313302478306748624791"],["1262614249740552766021090713573668948249727781723856442768582460103350440133","16005158292392878213689984617594578073111091749459247026627224405129709732221"],["331168951670675569580357320515961535006719587918134370840734845178145901331","22383890187118351486907614256163045155621977497795377490699233835405472388572"],["26205595107846300121853755871015816791965873565398508294942826702450496587406","13736011492853913912933735649718995791850303409510641566709587248038980193710"],["1294531289307491824172333861332633372447888157872135503322713531793374320467","3841509294750845674503002444450848367979405386650573849894990755105492069100"],["21942051843041496962319580037597502765683856233155265809964050524654422994231","5790159033127082845713902257759898990318677540828030391568466562943314208208"],["6602794879250287334932078015484910083505738806072125664137537574801423912404","18626579202198753914522514456583966073127007575738612645039662569455884662394"],["9966208436944293406179528247199411797709845499300995293345813719020489415459","25687864413959261314118838986644873958588449068081492111347465285633701739232"],["25510734591160777645046411738617627160270198823040858030356211818069750620508","9792326623192548347483360780609958132092564823349467124203688764112399903701"],["26950909130116638298759215839339165935052302739950428352304720076079334826836","10483772138864533465961233752819730336838390395794091876180745390911785220006"],["2687544341759895056949675504371327686773060196734145392933982201140133683390","19917875246423985744370226368438690588710532457268103386467612543679833054017"],["28548450366196457646132466244364993834270938481910243069698529817884871583047","2469940352188330457042954724206688973810275973401399324020568923295269471765"],["9769532011274723759512509304104483496744416045934396819083608512440723345463","9398061206845729085949269395099684537067756170556935195344706390077450874017"],["25744754399393389114666321367920528197969652652919839506086156357264685116022","14473014974444723607542053745450439016432733551742258274416697332021363185001"],["22217186253026209841581109085443350665132231845227682654422717362092224051788","10982591598146907369460447948081533652200441299805524116929086652151925468057"],["28305034090214712306480445970107125396739501779599616715486123663942482236839","24794619406657774139470053587924172112750996119208873131203110483733554738875"],["25573507070252794615133370328426935246657603460077714502333217093557507172362","4186716804711877787026756842726738258746567741549756334437777589383301390475"],["7805917594344954320312024504665755229493803199360511950716352805330976065512","17514414672382323460021051928020848908392467025489620994622713861713249788503"],["26882830624521487639154924515940175658699708501817126899757705361064782479179","12945917942858579225553186651036894311484837278909421205489148763001673090540"],["5363410485128121281125120714884516383876671226658892911658955644880021988779","22325283514350239541472031620270840469333174929157720713026818344313739785985"],["9118160805907164844561134793663640640345129854150825028501643854619575743415","12999662832681195469581124707944083129224757816298446190040207640451860554005"],["8614846632972881270175154601070598136981595127037202493113154659258936086010","11249466077325973279829075364876226749594264293648736237008970014677489400707"],["4738958604472082789854606158279866143741472691113899560303776429122106502141","2134799311431433507157053934370654460099892373907100000765562076199579896433"],["25382720776517524417522187845182260241372817135763735117505539961799147472421","28677218890539439762936981237792659521251901404740693150521572580443980895823"],["7345297020075075370331150451884105626849792829942460899678062400091570321814","5001164011049625228436377694991090818217047173187204612181736687611168964658"],["2224956653451192014859791218951318407158135454794091750009329039317588122615","6746719446551079506843154452436841373694520690908583190004119532517904009429"],["12168674354071406533848723055495125395728840420929388024283374654658802955544","23785513838929992889717816691897597732834862848401740804358240550058165398369"],["21126794215648644287759764937923195296291794019120950346613523061362986803351","26020089978215380863721902913967400724176058058307569230145618574555599428464"],["6040544355615019098429611520203787480950162996639625636923372660825854886615","6296575039229534284109783809153912799779513453331157652575298008705523032672"],["10791936578349726376187551289726564256823873443685885004434550692556052825534","3664852274176598443308275111659368001784860719689133445932947752513452655838"],["26508387921340723886113045159692721478003097706289006419438456971381799869904","7391750526700288078195105070768443417966409149147919000179357237504111498561"],["20117513165999428055090349654659523379782132018174094968071168192164557293515","21929449777137989178308208929742434754136571683080737557691042030971246138983"],["2218848153014565222483759712913378342159100380579517975742746482525471970436","19025589187385197335960655276024195622956224102651592210950775026820122942355"],["9202211723720176051900755190739722004125590944328102335160609956172887436330","22478994882509475044608560967174573935886546028253217076691959856577656862002"],["5405163874760988182771414659561665759971470157703243599121328300938961300420","20296713096544101576456817366906778115360552167089213513060497705406986690049"],["7978330445582979779673534113506310072842030195765426500512939616315104930289","4762663016856760132515385247201102710573195049706815018510928351002970933026"],["19862821548190074016675045649475395519985563560270660253502414891149718417287","1771395108198236737527190341769377418619103728419280984035927174388671744549"],["12358018442352473535940024946757501630065896877914753321748403785886128568690","11034224708460574764030994814992277948262220498389251274860134369275121439374"],["25652130410800697551327730959361898252965737507222422693492369987110737510103","9335814845065749266231986638619728958245191934753971979216669247154003287754"],["24873146085836229009849166972501452257329402667453900991916065654154994484652","384203249363914244311836815389145299371415160505698623463168473698799826777"],["9067852246569775183256187984001911547374567128249737771892930867919817033137","26938834026726657503766007219735272854814617722290397569646593114957300742872"],["17711570079005825722577195449326964257486528248144750113508316613418872739667","14407320601102595580520749544263435066921893183562420595099376290601247978040"],["9721010968884184203280137333070907291337442461977846360104221570085990537321","28205314756913080366774075450423024794104035763067784323706112095191357980119"],["4180631220031542843244299124606111148953752872794232520111460017320849634530","682272307025573085595138575035719247067356982663869010767859030316203758846"],["7228559807630600891172859544278325434556134273787447858830841131727744803624","9913995035882087330701747047864712108542443661037258404318190077751360665890"],["26217777186206568464975532442064338056131941560169978069393314951166599136960","25056865769314997003575853861454438593119127431494027526503041097656281090651"],["7390443950436275538223265930473130514066528665123380600771506179367550665372","1268006993169997295472282388953755569191819205613718402034340649702552879325"],["7762951943711925778539167808229967244222054396091678948178547487841813115841","5485076896513500366335462646138276690769862469195901240359373763353888973740"],["11883418891136949556709255630051761472804632528398374673882122715260181826771","25335179010795819489285717629769406264320507107067765357553246965992855483290"],["11583311917908749291888409823434612361941787376333577427890110648189219199356","8788814197581217460096795779306345814448740692387794103761153377880926146738"],["12315427437041818184906058328472521541745750550138984651160945523137302187754","14130683422345997428401715232561568156794211821933717634807525339676446019716"],["5683734701144910852277081213576630648190376083377135389150624138706959211622","24821837104224775482027099245548524607776740264612422285656169008887883714327"],["9711647533232667907650343285317050579544855796634100326515650195877132897671","14950801030540738256306112618462646810113172291716303669050514472371449531432"],["9148179106635446164345169321417655243514581132241520261328578377847275697419","1887213431552740362715998218211702532703980149159600548464993574353949275441"],["21163167538645974921970146512882311412358874649817321869611770314760794895362","26076819388462936787562796216461607418044983232124035248687085578892911331880"],["4044488160578593381864366620346375710174290274429319852508146698890305598948","19024216718380447136233314598019651968689919040069954528959457093751990414695"],["9528012500937352136542214931058959664918287047518701173520598064324472571970","23684913222753722735957926236347019683096390638208331249811149005964819386268"],["26757666911265400088090369294759520430621081650128633666708135909553907555313","1020299529991903888295501833652754776286873107382482351933802629327644108984"],["26157822356769509477317516764664376216210386359842898668994941765022059523186","16924290003154368242965070231221374395104953748510975213082678363845749148361"],["9068966981986595561669400481212269378761881833684824067484438995848659684536","3337865310869083603907309744956995229826775061826119450062655930856274180878"],["964845202301327951972916039401623410575789628641696286089861027338190400387","24655832113770492755102081120850095448444069806330959855492861762426285830160"],["15235116408532887847086006886395378707090279125979651166805078715155602575045","16316491649143123924283892892905927010032949652208885044986925986647145833568"],["12916396220425002986668513622444604919524641454974937634423698082691523429813","22276701435920870681327530311817282680232237683439547461513183048932018929978"],["20736577301143922553544810824987496413252426534940706009485303080199110729126","12740261306837543985957123054577136351275502352549291468302633565115773109201"],["11143785409562280027756911441921338995068636960942735539141575594723523298623","9382604993724582442255629922255846363645856135395220080580290120040854199087"],["20772211477298205581985952821089929712124668744296508481488919386184132511626","21384727205612813304735573929138731712329799463826661591898787708862220879614"],["23542047079627914348924892993708541805396193086713962229809069394869274606192","9992371233176608359744624603537589089461514821858983846542341817967904022536"],["779359569848520270717399971372297765282843680901410150941844733762621649835","24823580913706492836246577305699202901975264913425932991366548372157727632448"],["3665433955616177460526875847443809908331064777188115435071230837375130914702","13367314963412568927140396271527917829087850141396610057065835060430715370343"],["19153284424511032837967146474928016853575994170805745471520808741499453093981","20390061821278738960078490205944871795106618406797755672953233901145607182821"],["14993260295399434572516576545431632121142723861384358172239480312278260008631","16618316125669924030255285485884187901045431649642827301334678596351720121646"],["7022780480258327268040339718429479787744723696971768405158738697899814464754","8934351319913900459192913128385617703430282741073785652714662928159815741702"],["12493704151398705787629104215130809987669895385576559843240588298562422459006","28602895676479735502379775848428785049642005831839820616644539131964364756286"],["14642473111634300641561723957915827635818436729641092464759245504634776628052","9936574066743166810209465486632935295057444296792771467882874943487456116034"],["3272571620374463764697997109253089504177096074118278428805794916978337463013","1186756914409332949596226725064350422199402643607087530410933317039387229609"],["18382928422371122476862340264737435424012434972895936784442811149666965918221","18968337884954974506427797726759296235577653967380566469922084772572455228970"],["16790223303044634808792323778367111979956126263629616839574318520669265476042","14142768872491117709874883117591037096210551208177296008188040837594584995279"],["6004235681963549322930283456351993044495004578562354499659453976925675715313","15879076810463595892947665417517577059193966485577397058195288892542539659048"],["13019892269818957874408499649054492944437358678168204867300449332312863910716","27047085024957763401124086833447372511440466939787509142307180662638406933390"],["23488603255097502648727962365842684633621265733951709006613871122475684390994","35592723314725984737016911875755178939422578405274888931819310449444559057"],["16214749410774066408021588043354212592545668208581765474886829997222711072216","12450429236897991270778992097130498283154910859105106730074204869001937286829"],["3420475944232313594175538936215193909380789318571198708687276325482254338890","20299077758821863534065154807710034238666912223831026435727099476264499327753"],["3715735724027027724935382766077249226037843149238748329524420524052354950037","20375300809471044201080644292341542430794965163476938645037603119150849214739"],["4756916949432596536122609694211440561927067660843573409466476614774443959472","28381769065894442444259369539607821913340418200835476272440175912369769975564"],["1881190238366883780796438435540997743770616162261389431956040071358664266446","14096547399962453084815194270202404484735553371737319140749213639329203946646"],["7610756341197940237713941202482096020122313438445892508502400844304852451861","10597631638887455719953832767627294346557091944501361606196344167573924232800"],["9970061190295228634339662343112780625414926009925035268912723631607183052855","14076481778382833759853229915743351753293895697685122705342818248621323937699"],["11210816247738050476795100147849195699446098804038757930613912585364243024082","2008779588986270676251095502697537088151951623597730539299551569509315255610"],["20892958464318675409486006770060162203264022979682838308381596965643245298890","21431446069928049539330965831795130284406718878218229970737358128454114294843"],["18325195311946523835854161263140081019032756795726616798253438542259061503353","15360434817596997690591175349978549706821222915438837038290540454264694304892"],["28037465000455563282915802234255602225735318161991116429725252868916004218572","22445172704890641504652266903238305106335838338370060554269907795838323552692"],["9371251150295427699457446333829960377191460214281726598835813422830012433802","21240439825156954049775892005190329750489329383277667874712302454766242019644"],["26105380167539435909496525962004837349648231155120988733066807810820261442022","17778863136332031637217738839664143812265803852199377156143232132117238984786"],["10978252217698885980231634598603758898880020539197797745553069286266652127686","21887250378782791169725646509485557989062111732582478761530331442808639512718"],["11315360161319071816239707908091274726177598588661604280030631201294109214072","2216438172163300599702224302239844947349371687094847315230362841717019940135"],["7138777279107134262358975385419018749076749914451008215898672388039198372885","13620676651519523702131318735761008884201921588702089128112190959235367041646"],["12076422310612906869312962109418335816513551677356302642956188181650782433189","6966720855708552192449862105138745404984315730421365746434927851196038707758"],["3803537126201965820907809432903695751007238696434770117909395339717934540402","16754602804452909094311116880009183329281154527081041371281542343802090400368"],["2714885432128401712844162497913910799247967478100846471074531704239864979043","8187122204510365566787487214159135811066753878383490672944222870584619974119"],["8414828986111733286011747833699399827965412220352965015471264230879503121562","6857495629398330952279971041898660502065853060288734386498114346185691107044"],["24650065071096086524096863523383173705340958998012128982626887807509784289473","14664255805714316790879515430784967567589190785399497024932880791493403236960"],["16056202059703108195994301131378107652957801857159644397821433063226655050714","361333758593785441703366298401024125759235779304304157160265679054828301258"],["2522545803717889127350871446137784719964268224973534441142463698956789955879","6740227004808365425767483535394014534735009109763657869291768662025931164249"],["17598024454133886714829121836585194865770777080145865556004467524847380337133","10532116522342400615171232442025110004624373565105059038902335522951279383198"],["5995005852976908177358411970429105856280525100393018832187026061780670213092","22675221556899045931587152222978262413908965887218113376441967260428212184333"],["3700190773778260501319981190937277507816608084913249242807809299118740691548","15849953541873082903523575519499237952043568784052170862662156881430338645614"],["12512201741145019168598831720396310994863929253597612618751032609245062014823","20318310368631664889047077771630381662428599465524372037705421252493824258555"],["2007183820343067013275135067218180771264127593827150082055510639146610401247","20963982638188405812301177521873265241556744238089650856033395889354439058669"],["21365426990836302167436444956325324206606568198246023083573780706955048259649","13331962889118094988992237043352138663446675510168346778885926515112159149134"],["2264799193773964931020166261532137594219909485068769479725451195411094222661","15111857298151260852939443321453836957323393310158754607324007359806117134950"],["890007026122302080800114109544998790242847139461127884224742696892105655766","6242737189570098489949806041826366106680673645794336393520817433974224059829"],["4774527841770117006026170988810403859765354564646924118435616908580842006430","13348978847304821411986461303372516805855143123423413096731210614735198280233"],["8690222550689707328553119068105565576029192532280702272532001559319368760771","7548522951169332241779035056367766141225089790774324610659111426560801722005"],["26247986186663879489732747579525885346241051116405125402322464737959540928721","14199543964699310021396489006200705403197793564604372344801426767571152173254"],["17344000134719013393836002266988776101392287589312801483032705587311316707339","26887598400075492499352054475450123681867030626692828108933964184011611617282"],["1169115786916427802564893430503415032093693406686628572891136089051649739969","1675375447013871731283688331369271413892283371949734307236429242336772210120"],["26342011473741267347903155246949291053541788416233706109235475834921650706313","10721783505885064460993008581816534730792807941368325419000036887354626522588"],["16182289188951287641837447652273308835775749501941274784973312563537964907845","14811014905051583838250149509433300828384392326442703777252766137270673262552"],["14747339031324761459955947968183602679315559813636646107912044271015973330349","22432452387487463988767143966436053219618109500279201636561812790468462012112"],["12947061394225581563370633768627533670428425150332285905310628388546742158258","1776822199326045420241078985577720602968840502975391000895677595501347995034"],["4485038445863904341122351467522983496987206556478390135975867499068204534652","5038614586122221189018224011886988462471801296265622511166738365755007759368"],["3665179132713002354522582785069966616807320805049047929021999546178499060877","3070019721240031448017533224753532209332777259323700276578989249906689897779"],["5420677547942559445456418858007671159942026557447153307517529826131759289446","27466690435418136009498047014735487308468681773932994880543574058766149264997"],["2992717345506763035202839723218883803804079856109622105257536961207488839438","10564086174575724762285527242621682135632863323814200572089368424287762495090"],["4150929763584840319469040136574331069662617852301323447691443172270732953677","14695058825572175185341341728306021248509177806718726805710747284106150978236"],["988927687451355495560076333200338696395677061005005309182843660051564064448","2935087000622474756358793656732322785376299140041610561653586506662712512902"],["11765701881154957084706555787647308078313481487229442307308333171610442681628","8842776224429070883016215362458899878702419886424473919894998465161102782040"],["13735865654729187637069623976420395714018213029180567885200783470864911474215","9461765717284344139268759078529013113704117050906059444327269699303573748097"],["25657856684145331372311003448615205917787626623077850270632614561457144187587","12677731307095336500276246334066901433655542857398910752586587150660601854361"],["20417675511624243671003938198899723397041734687671627702381194880093898241004","12470606014676275075817572702440787491243913007965679271103251011139798687739"],["10989018941880614982150072511138372479025235707744406159384345321535906968206","17824148325581416252775322208421889637200957730779231653478382855403263396694"],["27496238802464146754579885379463249849398750693903588409975491489436139095458","21090068766834884893666346604452496189369463113215913015369561462448511635715"],["8546351464248436234312854480700272062200375547408979346019026624701694548225","16675583114240706787504436100443164146381453696028203238278755590246470541106"],["12088744934411393147202868961538259239560445031326608356703349106033480049519","17352816238083191498192536583941821806044071436455093860667782224244113696605"],["10727525638936561458298921862038631215325803317205641658553655345395631460369","22673980044671386007857060126017694691880894162383510157649868057689353133641"],["139676167770324535223241192795710012233140316505424973358461022074109029668","25534878573083858615810304940363180754377725421834369097203880011468939597502"],["11835648170921449876854020859264786588998112984713505264857922426902367731933","11607870844375421418368327295337058972640207039884418396598642314009642453440"],["24158018174625258763491514156358306805314834626358085763133516113362599135766","23047680772644992012730091892622721044596546746136632290987152416257649328829"],["22879267135420226935106075838712984360177604042189428594535974730661785624018","17069423997923812882399614905766641682968151100628827737292945311610585583646"],["7067836957364278325437634255545446329074007182321844080235049776895579127727","2217908515698260981348297236139643744719375946507478749489584899295480853386"],["17873391887477781176542876471248427474396354964490808290829239656145740824753","795139361313023043098022862615964215784943281571023757753954312239931446000"],["18984003573048240163262489165152207332241168263272478667937038505903482740327","2330576588448184828707800475676055559957473998736100973442845327319357061176"],["24482552964683291008950000806604255899534791556668424661798640432564471409223","13228580098996470588124568929684352907586019970245275164404506869731588617632"],["23618768830759267380698521611046869984278600092287240580549020869765231441128","14509761895238453547687486952484218915290462778441002959017465809358342711062"],["23756042171778331500259573578636551506634763511890508590327408913097684471326","11839672983011085068225798631786516928287321756898621078600453059857279083396"],["24653189479113318307083638105978704070101950951277443789378769049136838768629","9719754445930186965836760887353210460518647532705648839150593951144106594331"],["11405636867111252401781740430359521973478705012695906602756442073296239007189","24684203074035577840015692185830659142170200099352863661492812907020095253064"],["18384279054912007608762816792685333010550228085722025834741003927136887429424","23330142988619968947270360661418298549258410227470978260057625235735601297984"],["9416045383392567748773442514253225898358066891477205903838080030304872818469","25647261312733102189387370806187238337887938161098120140465853506976574969918"],["9432160323413074808022634243511029788420121233316067667618302490738770215548","12536572870545235933983295095098775688141082553588497688312590711180329908756"],["27293079096635243710164576671672015767998434198145173694900973262698834869769","21574137833242969820894441879996787508873095213448051388713095017324425491391"],["5851230438020031052861662626113041736443482891607940403980216005236454322052","6278703321306292598587730106592553106136156224170799610231740731795328333512"],["16870029117631313674119988207611516071075590702040606144490737995889658303423","28941985208966437733223909837520338695086843631435900885556684731049920674448"],["13424394059593829028449171426659380405764390465486621886079828860256275284176","15312534176334200738674790919779297012766233144514869051450807802804960888935"],["1359551660523047977949726962591323602967786676116781002459574567113369982427","4957976957931343394699075754325230880824646382371592927803837871845058902900"],["24166353970234316595630129667204983398852931740061834322165223590987668544297","18656858638595640748485027033573191857505832312499076200221501969485327591311"],["17590384323309660606288064471132294135720935980819156711759387346789015943801","2561833372675026306948756266820628692660023055064844930456925211454575030336"],["19466488797618265899046830421809328163601331371729167870174784197685180490330","13757807118928882575415098838423037165751925577346871901390713982572783880555"],["8706256405942958502450209751223673249691737992711148653083001230647074233910","28009357585597532193208736738313214111753017893335155828003542228021100484606"],["23214113304217337648724523885999250759906570748287747152290970708939850112597","3881494881222847601678337191379859735690715127927037166293116657329086200595"],["17712973374611134972179513119005587542538742513206382502139705310545548348332","19338758988975953501652254856494582659625185761851658454708235624365427912505"],["21903438201267537310725401994983716628326839347765351474830708251022893284098","4835029556866797858567938749232313673353588163486879202797741795989008933196"],["21264940795461658728670856279484016513861264035610877068407921539591292945197","9785447871105423168912955782086663954913402556792133775232187268987777578452"],["25049314259315099648276851845066968728949065424974534893514152539799846739360","9967073453583995966058197130977728638064200819385090434265021880195662260841"],["24003242177599808049171905684030828943397536972435763100698115668384041696831","23754693155206445463828794390316917713016146513785634923777720053535289999256"],["16554313345175967568682182939461992913874755758253885049351878950838719591849","8589540012344172344503789633808331836175877609008970340110001132819311323792"],["12401872146407791553989309644402162900868096018613308002038873884785366599078","5103819248510624451664162840783841605054075394019238502375129400425096478106"],["19967697133679659108268120962991272439980873607749776433875832905136682098316","5644862743780122330149580946173335306058970628967966426908447222130477078070"],["21849006437107450696138545802253281474456535822362314537408898866422329692735","8350216251249883632291484393716880475227383277103288828050852031872004676785"],["26724151518059870108241469006412904174237588811934486965996151145066539313557","23597385079831545002088105875934862856069552778620904474318086469934927389246"],["8239404524011371443972814552931789582696350187445309054681951105351555381230","24687694253152019907695577449793527682784520921206939500984511854250786277246"],["15691716928850820595199256014834073141759009014788697394884751391182377524977","14862658643017029336188454067660505216468173256656085686924662298568459529878"],["22203959811018596584967147339330806882447348673561924697073568553825788185098","11480803940182674961572053784365505053544412566705543486969081123286072430687"],["18618200352096303617190722375926520024548338133890424187037298631033367909632","24422148763212814600803837977435485050135373854437105280632526628879752565777"],["27102501845849848146696469608566100186718449040535245680880437404861805563819","28412844826291379507463164119736833758610049498755258675749125353881488012918"],["6763094073601737243351279472461193959378941855889002657564420377704498186239","23524874808632938628095294367143179254798589141549100522007559912021583378889"],["16223615869875083310790772748048885914646549328190049967329643843637644058505","21985823638817088995802283963814220595006496697123199261523350361709009347677"],["26496167725729929189045020982227115776917482562565733859750988732687091992801","15178675674512028592883584746350541712952744393409204256650359106509560740654"],["24526740427872957261944832356099374910903734365746626165800635309702032288367","5091956355978970045078417880518392896646765316377147658517226977641870113829"],["15008591858741711442279609543173885996371517670586720432817098904543393468041","26682802989416869519198202113347799223225769945184552324816233865419635444502"],["21408180949178258581885161402107652400275210674411903100854907903876503950816","20065727366529294014759555284047287561314638739490877871393949429137926218373"],["15588207959232962545136226432620760149686965218599182849898097607078865602645","5003078901778702009846368243724724841922286885544021650938174777597116020830"],["13969817507067081439312208771724163276208856557596439451362543189716429606532","5338365576097368990876909606059906748242147808339407656351604512378573949206"],["10400948054860683203687841679649896630006156611144829276003954003086754665802","5566927559504035045388149896823975009390585436815787984871917854599859810681"],["25531175386772676231073185512152869961315100662996644921285960681879114299651","27510750707671148357109779303837825315502591198854540722076554394246483234588"],["7751645400971231642011474433760585323263446581126066142110472697803693655595","23794462501649968059700386549865336420552889005078043120580418250296417339042"],["18208306710291121555682669348884895527881442625250736679849750145852462442078","7019534308490513835092941314229102546672174787795888290322513427728412512166"],["7388441525887638100068357891568004991670770846961269280080403921379682484919","20281411154913709223809415053172655078218857400444657734925792743419894984161"],["18482481661396631903407542016805748756091122410039009881530845727853359979769","24677811101810903497792736617331501068586601836218544081197747266155765031176"],["1624244186086453982919578879012351267822255115441751085241735195515366850984","863209516394535235177223367167724052393552772078229686679327745949116168509"],["12946117265861797183412159462518839795265925643318539987244544502771052244968","13605175431612302775845009366611494614863399872225505111455522651326151018948"],["13164998718980615434323270544465259006837539109723020523571031826794471721036","16529779522335719109241160861129782935234501463971795340748489486527637388821"],["14089405956933911830960447414282977541032558942415005296252419320675917138689","563156326859326212354590702850695340863175371747083535120143400300505231424"],["12303980938526144907732262800731534559863165542573567821758770927246092432844","28462493821330828565373191893155529494758672048970283134822463246329448891903"],["13456184713188588352334570118543322420530420737805185528035801999900461900436","10873923491976684021807184568990940016826401943153052360450174472497199373595"],["10722563509995905623235155101169940563862211642334982050843237658932737373910","28614693294378082442707748658010411653148447755929731508260769376405413568925"],["22521921575620446341138985436079412602204921543603455113513324486754088919479","28490096392334440191809175627745637001170280581006867356449060635979783675794"],["11946016261842703009010665370859359631454695016323976484460173363501557467669","10197014470481965066824234487439183119135601660734800828298788800568803931686"],["28938156285734025187122070212691226902101402074601045135590843586859281371920","27722226650049498348658583417886653993727667542418004003829906412282922097048"],["14182234726440709096573496516482795989308714300470321954058883379807532199080","23910785774426188426483872242535711729529829793239554602018037729293996785142"],["14291602800622114510834623655037255314026193358731724841161950946462205205518","21492547439314472768184216708051439502828821181512712761375105849595195775428"],["13845986844910269026660365523359718158025870942892376880042306785918903827697","13599904835008642620892342540490864785253368769750501838660466562302818986661"],["20785847244704115099027037302036342974241226230917797470411340535418062351230","13725672935184276097640896301766983006058970807871529034840817510408995894429"],["6403897363757846155706735675568800093395347750150535804182298161552957926912","17318827713175356650372003895533459168865664973208143853744306647748498954277"],["12970811680152529655771190927292295397747503588417374245152192644420769177312","2516542647988416651336764399436949404511834897751403739701791519833387259725"],["15099927956682743713597352620785343874825166844952941323568482844127624580036","19239943760171867104814810394780185700067304149473619081146065005974823671694"],["17553643236257182527806854997494203275811604118501300634191177202952359046917","4919595413158725130288173432920551720843321108093153499519957904507013316539"],["16801271614837032982293137825041879007138834541429135116930052122146042365234","12184728235059969400380102732369529523176919178109272566260111011826703367129"],["1978038712602653339769014898844472399276329367475309324215130480241720790747","23339463731172388693460735572486120392420497867289290983617239128225835901256"],["25670930566531600833659825047582224000757449002546062810821098376491711942869","21894200929020131217749183077449546577815728017650109577088845297262278743507"],["26050464753497362860873284223671004697888468634432203930165742294361511806120","9953618017252986493931776060921234051726782953908293157091006608107135175275"]],"h":["15427374333697483577096356340297985232933727912694971579453397496858943128065","2509910240642018366461735648111399592717548684137438645981418079872989533888"]} \ No newline at end of file diff --git a/verifier_circuit/test_data/verifier_index.json b/verifier_circuit/test_data/verifier_index.json deleted file mode 100644 index 1d4dc4da..00000000 --- a/verifier_circuit/test_data/verifier_index.json +++ /dev/null @@ -1,4800 +0,0 @@ -{ - "domain_size": 32, - "domain_gen": "ec038391b92226a455da89f17a980cf597275ac469f86011e5fc21d0f93ecd3c", - "public_size": 0, - "max_poly_size": 65536, - "zk_rows": 3, - "sigma_comm": [ - [ - [ - "20248146512599912417556343851220342431761980972336053494458722265470095125061", - "18128615478832575940478255610225046691543177802495990406537429713043702723756" - ], - [ - "19155645568935138950588200385070643723714529469489730758308039542583628224918", - "7415264835240631811703756554738845730298570307239216040516716880328382555316" - ], - [ - "17735925083784063548172764726983951083453900111691601955011577857460579767406", - "3355712922060599642029288582591188566087371835758713130555699200821081290417" - ], - [ - "24693358361250075520537370868860048668892768283634720130253225581895138792794", - "18840123194455711642342585157857391068826461702146385010879100665438558936952" - ], - [ - "2984053591777934634537373350679782047317145908425746214465620235112652282807", - "9463847996709645093801758396080958228666197175574647162875334423060910595883" - ], - [ - "18225163451570514081982731114490845956390536981910846698382308530616573442102", - "153085818689703543924834448416312706245036770137655020751816498766729484870" - ], - [ - "20603542978654730652831478918335688782133379698833365598721059509341715918846", - "25916455240488076068295944829469096906317871755971445368749685980306622670859" - ] - ] - ], - "coefficients_comm": [ - [ - [ - "4646012468523457558770698868226145322386131329281906592261137807547688126303", - "21153081050679044597059211733407793748202652266395594223180765861680224718477" - ], - [ - "10031797239793512075599416702960840293327814560551594963421255918262726061796", - "2195547915230719383290822240774257931186040492555296170429398075404608800276" - ], - [ - "26328225658028574921993150346098641126138002705452982313272995236374679327225", - "17902373354493828895333952202268651357735516166029156532075888061359268402880" - ], - [ - "0", - "1" - ], - [ - "25590149911351448101288576532729498734684904565429416010912384822144896344130", - "17399499215021461544690823704810012395358565390986471337277576119033576258006" - ], - [ - "12164735726735657735094455237687434237290699524659843179290848466248273139927", - "1547475406307009994407390567243158277075196234463419675921434535141729797626" - ], - [ - "0", - "1" - ], - [ - "26328225658028574921993150346098641126138002705452982313272995236374679327225", - "17902373354493828895333952202268651357735516166029156532075888061359268402880" - ], - [ - "23266356320122801469816179474212848201605885420717438987797738200068878002243", - "12271886845980619761996310103892949532849335072043158901569763476977789332939" - ], - [ - "3164626678569571004684663480845414273599070912513834127274424083408727332790", - "11916530848456557026368446493479430109643417698173655144909323035815272604621" - ], - [ - "0", - "1" - ], - [ - "0", - "1" - ], - [ - "0", - "1" - ], - [ - "0", - "1" - ], - [ - "0", - "1" - ] - ] - ], - "generic_comm": [ - [ - "8167191357099601960792517114831233883318922342668532646901580493420574530058", - "8489833356972059571013914056158316640795326926353326806724893182625975916986" - ] - ], - "psm_comm": [ - [ - "15427374333697483577096356340297985232933727912694971579453397496858943128065", - "2509910240642018366461735648111399592717548684137438645981418079872989533888" - ] - ], - "complete_add_comm": [ - [ - "15427374333697483577096356340297985232933727912694971579453397496858943128065", - "2509910240642018366461735648111399592717548684137438645981418079872989533888" - ] - ], - "mul_comm": [ - [ - "15427374333697483577096356340297985232933727912694971579453397496858943128065", - "2509910240642018366461735648111399592717548684137438645981418079872989533888" - ] - ], - "emul_comm": [ - [ - "15427374333697483577096356340297985232933727912694971579453397496858943128065", - "2509910240642018366461735648111399592717548684137438645981418079872989533888" - ] - ], - "endomul_scalar_comm": [ - [ - "15427374333697483577096356340297985232933727912694971579453397496858943128065", - "2509910240642018366461735648111399592717548684137438645981418079872989533888" - ] - ], - "range_check0_comm": null, - "range_check1_comm": null, - "foreign_field_add_comm": null, - "foreign_field_mul_comm": null, - "xor_comm": null, - "rot_comm": null, - "shift": [ - "0100000000000000000000000000000000000000000000000000000000000000", - "e3a214e91334d0caf1eb85df5bd7524d73d5eb7aaf742a7eb2d40bfdc8cdb900", - "c627350db4ff37a501a0e2d694338be612ad32a946006e621240d86081f67c00", - "6d0f44339a339fb8a4e49bf1099620aa649918482b95a397ae39b9ec5ad47700", - "b40923bd78e619c80a7b39c0f3f11e48005519d2fef16a1f77d40545e5c77700", - "847440624c26426e8480a31f28991cbe3647df8e70f027477aaec6ec68afb300", - "a17401b24a567ee6bc8d8918b675061a6f13874aa7505d93edc06f53a41c3800" - ], - "permutation_vanishing_polynomial_m": [ - "5aa64070cfa6b53073a54eaa71fdd846db7cec674172ccbee0f50ec031c1841e", - "5b280603c585ca9e67cae70b868be9e1bfbbcac31b487b553d22c6f4ea31dc37", - "98ad9f969f783138e1fb5c6010da258f82017d1e624fc62521dff2640d630307", - "0100000000000000000000000000000000000000000000000000000000000000" - ], - "w": "3183020efb8ea7613009a36ed0d08c0617310f9d09eadc2f0e502e5fc7242c39", - "endo": "4f0eaa50e0d2a92aaf33c0477d46ed0f5a0ff71cd8b41d518e523e28589a8106", - "lookup_index": null, - "linearization": { - "constant_term": [ - { - "Cell": { - "col": { - "Index": "Poseidon" - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 0 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 0, - "col": 0 - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 1 - } - }, - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 2 - } - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - "Sub", - "Alpha", - { - "Pow": 1 - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 1 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 1, - "col": 0 - } - }, - { - "Load": 0 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 1 - } - }, - { - "Load": 1 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 2 - } - }, - { - "Load": 2 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 2 - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 2 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 2, - "col": 0 - } - }, - { - "Load": 0 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 1 - } - }, - { - "Load": 1 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 2 - } - }, - { - "Load": 2 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 3 - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 3 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 0, - "col": 0 - } - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 1 - } - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 2 - } - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 4 - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 4 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 1, - "col": 0 - } - }, - { - "Load": 3 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 1 - } - }, - { - "Load": 4 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 2 - } - }, - { - "Load": 5 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 5 - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 5 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 2, - "col": 0 - } - }, - { - "Load": 3 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 1 - } - }, - { - "Load": 4 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 2 - } - }, - { - "Load": 5 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 6 - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 6 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 0, - "col": 0 - } - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 1 - } - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 2 - } - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 7 - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 7 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 1, - "col": 0 - } - }, - { - "Load": 6 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 1 - } - }, - { - "Load": 7 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 2 - } - }, - { - "Load": 8 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 8 - }, - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 8 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 2, - "col": 0 - } - }, - { - "Load": 6 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 1 - } - }, - { - "Load": 7 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 2 - } - }, - { - "Load": 8 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 9 - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 9 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 0, - "col": 0 - } - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 1 - } - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 2 - } - }, - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 10 - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 10 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 1, - "col": 0 - } - }, - { - "Load": 9 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 1 - } - }, - { - "Load": 10 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 2 - } - }, - { - "Load": 11 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 11 - }, - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 11 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 2, - "col": 0 - } - }, - { - "Load": 9 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 1 - } - }, - { - "Load": 10 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 2 - } - }, - { - "Load": 11 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 12 - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Coefficient": 12 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 0, - "col": 0 - } - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 1 - } - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - { - "Mds": { - "row": 0, - "col": 2 - } - }, - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - { - "Pow": 7 - }, - "Store", - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 13 - }, - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Coefficient": 13 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 1, - "col": 0 - } - }, - { - "Load": 12 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 1 - } - }, - { - "Load": 13 - }, - "Mul", - "Add", - { - "Mds": { - "row": 1, - "col": 2 - } - }, - { - "Load": 14 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 14 - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Coefficient": 14 - }, - "row": "Curr" - } - }, - { - "Mds": { - "row": 2, - "col": 0 - } - }, - { - "Load": 12 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 1 - } - }, - { - "Load": 13 - }, - "Mul", - "Add", - { - "Mds": { - "row": 2, - "col": 2 - } - }, - { - "Load": 14 - }, - "Mul", - "Add", - "Sub", - "Mul", - "Add", - "Mul", - { - "Cell": { - "col": { - "Index": "VarBaseMul" - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - "Add", - "Dup", - "Add", - "Add", - "Dup", - "Add", - "Add", - "Dup", - "Add", - "Add", - "Dup", - "Add", - "Add", - "Sub", - "Alpha", - { - "Pow": 1 - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Next" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Next" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 2 - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Next" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Next" - } - }, - "Dup", - "Add", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - "Sub", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 3 - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Next" - } - }, - "Mul", - "Store", - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - "Sub", - "Store", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Next" - } - }, - "Mul", - "Sub", - "Store", - { - "Load": 17 - }, - "Mul", - { - "Load": 16 - }, - { - "Load": 16 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 15 - }, - "Add", - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 4 - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - "Add", - { - "Load": 16 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 17 - }, - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 5 - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Next" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Next" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 6 - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Next" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Next" - } - }, - "Dup", - "Add", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - "Sub", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 7 - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Next" - } - }, - "Mul", - "Store", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - "Sub", - "Store", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Next" - } - }, - "Mul", - "Sub", - "Store", - { - "Load": 20 - }, - "Mul", - { - "Load": 19 - }, - { - "Load": 19 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 18 - }, - "Add", - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 8 - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Add", - { - "Load": 19 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 20 - }, - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 9 - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Next" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Next" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 10 - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Next" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Next" - } - }, - "Dup", - "Add", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - "Sub", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 11 - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Next" - } - }, - "Mul", - "Store", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - "Sub", - "Store", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Next" - } - }, - "Mul", - "Sub", - "Store", - { - "Load": 23 - }, - "Mul", - { - "Load": 22 - }, - { - "Load": 22 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 21 - }, - "Add", - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 12 - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Add", - { - "Load": 22 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 23 - }, - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 13 - }, - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Next" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Next" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 14 - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Next" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Next" - } - }, - "Dup", - "Add", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - "Sub", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 15 - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Next" - } - }, - "Mul", - "Store", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - "Sub", - "Store", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Next" - } - }, - "Mul", - "Sub", - "Store", - { - "Load": 26 - }, - "Mul", - { - "Load": 25 - }, - { - "Load": 25 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 24 - }, - "Add", - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 16 - }, - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Add", - { - "Load": 25 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 26 - }, - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 17 - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Next" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Next" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 18 - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Next" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Next" - } - }, - "Dup", - "Add", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - "Sub", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 19 - }, - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Next" - } - }, - "Mul", - "Store", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - "Sub", - "Store", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Next" - } - }, - "Mul", - "Sub", - "Store", - { - "Load": 29 - }, - "Mul", - { - "Load": 28 - }, - { - "Load": 28 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 27 - }, - "Add", - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 20 - }, - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - "Add", - { - "Load": 28 - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Next" - } - }, - "Sub", - { - "Load": 29 - }, - "Mul", - "Sub", - "Mul", - "Add", - "Mul", - "Add", - { - "Cell": { - "col": { - "Index": "CompleteAdd" - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Sub", - "Store", - "Mul", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Sub", - "Sub", - "Alpha", - { - "Pow": 1 - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Load": 30 - }, - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 2 - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Dup", - "Add", - "Sub", - { - "Load": 31 - }, - "Sub", - "Mul", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Sub", - { - "Load": 30 - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Sub", - "Store", - "Sub", - "Mul", - "Add", - "Mul", - "Add", - "Alpha", - { - "Pow": 3 - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - "Add", - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - "Add", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 4 - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 5 - }, - { - "Load": 32 - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 6 - }, - { - "Load": 32 - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - "Add", - "Mul", - "Add", - { - "Cell": { - "col": { - "Index": "EndoMul" - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Sub", - "Alpha", - { - "Pow": 1 - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 2 - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 3 - }, - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - "Dup", - "Mul", - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 4 - }, - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "EndoCoefficient", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - "Mul", - "Add", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - "Sub", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 5 - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Dup", - "Mul", - "Store", - "Sub", - { - "Load": 33 - }, - "Add", - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Sub", - "Store", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - "Add", - "Store", - "Add", - "Mul", - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Load": 35 - }, - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 6 - }, - { - "Load": 36 - }, - "Dup", - "Mul", - { - "Load": 35 - }, - "Dup", - "Mul", - { - "Load": 34 - }, - { - "Load": 33 - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Add", - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 7 - }, - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "EndoCoefficient", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - "Mul", - "Add", - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Literal": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Sub", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 8 - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Dup", - "Mul", - "Store", - "Sub", - { - "Load": 37 - }, - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Next" - } - }, - "Sub", - "Store", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Next" - } - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Add", - "Store", - "Add", - "Mul", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Load": 39 - }, - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 9 - }, - { - "Load": 40 - }, - "Dup", - "Mul", - { - "Load": 39 - }, - "Dup", - "Mul", - { - "Load": 38 - }, - { - "Load": 37 - }, - "Sub", - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Next" - } - }, - "Add", - "Mul", - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 10 - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 14 - }, - "row": "Curr" - } - }, - "Add", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Next" - } - }, - "Sub", - "Mul", - "Add", - "Mul", - "Add", - { - "Cell": { - "col": { - "Index": "EndoMulScalar" - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Add", - "Dup", - "Add", - "Dup", - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Add", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Sub", - "Alpha", - { - "Pow": 1 - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Literal": "010000000bf96cd94938dcadfe32c26055555555555555555555555555555515" - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "feffff7f907523c66e54ca047e4c231100000000000000000000000000000020" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "02000080857cb6ec241cee567f1961b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0a" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Add", - "Dup", - "Add", - { - "Literal": "010000000bf96cd94938dcadfe32c26055555555555555555555555555555515" - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "feffff7f907523c66e54ca047e4c231100000000000000000000000000000020" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "02000080857cb6ec241cee567f1961b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0a" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Add", - "Dup", - "Add", - { - "Literal": "010000000bf96cd94938dcadfe32c26055555555555555555555555555555515" - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "feffff7f907523c66e54ca047e4c231100000000000000000000000000000020" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "02000080857cb6ec241cee567f1961b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0a" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Add", - "Dup", - "Add", - { - "Literal": "010000000bf96cd94938dcadfe32c26055555555555555555555555555555515" - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "feffff7f907523c66e54ca047e4c231100000000000000000000000000000020" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "02000080857cb6ec241cee567f1961b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0a" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Add", - "Dup", - "Add", - { - "Literal": "010000000bf96cd94938dcadfe32c26055555555555555555555555555555515" - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "feffff7f907523c66e54ca047e4c231100000000000000000000000000000020" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "02000080857cb6ec241cee567f1961b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0a" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Add", - "Dup", - "Add", - { - "Literal": "010000000bf96cd94938dcadfe32c26055555555555555555555555555555515" - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "feffff7f907523c66e54ca047e4c231100000000000000000000000000000020" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "02000080857cb6ec241cee567f1961b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0a" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Add", - "Dup", - "Add", - { - "Literal": "010000000bf96cd94938dcadfe32c26055555555555555555555555555555515" - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "feffff7f907523c66e54ca047e4c231100000000000000000000000000000020" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "02000080857cb6ec241cee567f1961b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0a" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Add", - "Dup", - "Add", - { - "Literal": "010000000bf96cd94938dcadfe32c26055555555555555555555555555555515" - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "feffff7f907523c66e54ca047e4c231100000000000000000000000000000020" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "02000080857cb6ec241cee567f1961b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0a" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Mul", - "Store", - "Add", - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 2 - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - "Dup", - "Add", - { - "Load": 41 - }, - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0300000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - "Add", - "Add", - "Dup", - "Add", - { - "Load": 42 - }, - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0300000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - "Add", - "Add", - "Dup", - "Add", - { - "Load": 43 - }, - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0300000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - "Add", - "Add", - "Dup", - "Add", - { - "Load": 44 - }, - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0300000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - "Add", - "Add", - "Dup", - "Add", - { - "Load": 45 - }, - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0300000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - "Add", - "Add", - "Dup", - "Add", - { - "Load": 46 - }, - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0300000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - "Add", - "Add", - "Dup", - "Add", - { - "Load": 47 - }, - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0300000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - "Add", - "Add", - "Dup", - "Add", - { - "Load": 48 - }, - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0300000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0000000021eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - "Add", - "Add", - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - "Sub", - "Mul", - "Add", - "Alpha", - { - "Pow": 3 - }, - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0b00000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 6 - }, - "row": "Curr" - } - }, - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 4 - }, - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0b00000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 7 - }, - "row": "Curr" - } - }, - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 5 - }, - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0b00000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 8 - }, - "row": "Curr" - } - }, - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 6 - }, - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0b00000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 9 - }, - "row": "Curr" - } - }, - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 7 - }, - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0b00000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 10 - }, - "row": "Curr" - } - }, - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 8 - }, - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0b00000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 11 - }, - "row": "Curr" - } - }, - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 9 - }, - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0b00000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 12 - }, - "row": "Curr" - } - }, - "Mul", - "Mul", - "Add", - "Alpha", - { - "Pow": 10 - }, - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "0b00000000000000000000000000000000000000000000000000000000000000" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Mul", - { - "Literal": "fbffffff20eb468cdda89409fc98462200000000000000000000000000000040" - }, - "Add", - { - "Cell": { - "col": { - "Witness": 13 - }, - "row": "Curr" - } - }, - "Mul", - "Mul", - "Add", - "Mul", - "Add", - { - "Cell": { - "col": { - "Index": "Generic" - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Coefficient": 0 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Coefficient": 1 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - "Add", - { - "Cell": { - "col": { - "Coefficient": 2 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 2 - }, - "row": "Curr" - } - }, - "Mul", - "Add", - { - "Cell": { - "col": { - "Coefficient": 3 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 0 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 1 - }, - "row": "Curr" - } - }, - "Mul", - "Add", - { - "Cell": { - "col": { - "Coefficient": 4 - }, - "row": "Curr" - } - }, - "Add", - "Alpha", - { - "Pow": 1 - }, - { - "Cell": { - "col": { - "Coefficient": 5 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Coefficient": 6 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - "Mul", - "Add", - { - "Cell": { - "col": { - "Coefficient": 7 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 5 - }, - "row": "Curr" - } - }, - "Mul", - "Add", - { - "Cell": { - "col": { - "Coefficient": 8 - }, - "row": "Curr" - } - }, - { - "Cell": { - "col": { - "Witness": 3 - }, - "row": "Curr" - } - }, - "Mul", - { - "Cell": { - "col": { - "Witness": 4 - }, - "row": "Curr" - } - }, - "Mul", - "Add", - { - "Cell": { - "col": { - "Coefficient": 9 - }, - "row": "Curr" - } - }, - "Add", - "Mul", - "Add", - "Mul", - "Add" - ], - "index_terms": [] - } -} diff --git a/verifier_circuit/tests/SRS.test.ts b/verifier_circuit/tests/SRS.test.ts deleted file mode 100644 index b1493bce..00000000 --- a/verifier_circuit/tests/SRS.test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SRS } from "../src/SRS.js"; -import { ForeignBase } from "../src/foreign_fields/foreign_field.js"; - -test("Deserialize SRS and check fields", () => { - let srs = SRS.createFromJSON(); - let first_g = (srs.g[0]); - - let expected_g_x = ForeignBase.from("24533576165769248459550833334830854594262873459712423377895708212271843679280"); - let expected_g_y = ForeignBase.from("1491943283321085992458304042389285332496706344738505795532548822057073739620"); - expect(first_g.x.toBigInt().toString()).toEqual(expected_g_x.toBigInt().toString()); - expect(first_g.y.toBigInt().toString()).toEqual(expected_g_y.toBigInt().toString()); - let expected_h_x = ForeignBase.from("15427374333697483577096356340297985232933727912694971579453397496858943128065"); - let expected_h_y = ForeignBase.from("2509910240642018366461735648111399592717548684137438645981418079872989533888"); - expect(srs.h.x.toBigInt().toString()).toEqual(expected_h_x.toBigInt().toString()); - expect(srs.h.y.toBigInt().toString()).toEqual(expected_h_y.toBigInt().toString()); -}); diff --git a/verifier_circuit/tests/bigint.test.ts b/verifier_circuit/tests/bigint.test.ts deleted file mode 100644 index 59201288..00000000 --- a/verifier_circuit/tests/bigint.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { fromLimbs64Rev, getLimbs64 } from "../src/util/bigint"; - -test("getLimbs64", () => { - // Create random bigint - const rand_exp = BigInt( - Math.floor(Math.random() * 512) - ); - const n = 1n << rand_exp; - - // Get limbs - const limbs = getLimbs64(n); - - // Rebuild the bigint - let n_rebuilt = 0n; - for (const i in limbs) { - n_rebuilt += limbs[i] << 64n*BigInt(i); - } - - expect(n_rebuilt).toEqual(n); -}) - -test("fromLimbs64Rev", () => { - // Create random bigint - const rand_exp = BigInt( - Math.floor(Math.random() * 512) - ); - const n = 1n << rand_exp; - - // Get limbs - const limbs = getLimbs64(n); - - // Rebuild the bigint - const n_rebuilt = fromLimbs64Rev(limbs); - - expect(n_rebuilt).toEqual(n); -}) diff --git a/verifier_circuit/tests/circuit.test.ts b/verifier_circuit/tests/circuit.test.ts deleted file mode 100644 index ed70c24e..00000000 --- a/verifier_circuit/tests/circuit.test.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { deserOpeningProof } from '../src/serde/serde_proof'; -import { TestCircuit } from '../src/test_circuit'; -import testInputs from "../test_data/inputs.json"; - -test("Run test circuit", async () => { - console.log("Generating Bn254 test circuit keypair..."); - let testKeypair = await TestCircuit.generateKeypair(); - let openingProof = deserOpeningProof(testInputs); - console.log("Proving..."); - let testProof = await TestCircuit.prove([], [openingProof], testKeypair); - console.log(testProof); -}); diff --git a/verifier_circuit/tests/commitment.test.ts b/verifier_circuit/tests/commitment.test.ts deleted file mode 100644 index 2bb5fdcf..00000000 --- a/verifier_circuit/tests/commitment.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { bPoly, bPolyCoefficients, PolyComm } from "../src/poly_commitment/commitment"; -import { ForeignScalar } from "../src/foreign_fields/foreign_scalar"; -import { test, expect } from "@jest/globals"; -import { ForeignPallas } from "../src/foreign_fields/foreign_pallas"; -import { createPolyComm, stringifyWithBigInt } from "./helpers"; - -test("bPoly", () => { - const coeffs = [42, 25, 420].map((x) => ForeignScalar.from(x).assertAlmostReduced()); - const x = ForeignScalar.from(12); - - const res = bPoly(coeffs, x); - const expected = ForeignScalar.from(0xE60E7F1C6C1); - // expected value taken from verify_circuit_tests/ - - expect(res.toBigInt().toString()).toEqual(expected.toBigInt().toString()); -}) - -test("bPolyCoefficients", () => { - const coeffs = [42, 25].map((x) => ForeignScalar.from(x).assertAlmostReduced()); - - const res = bPolyCoefficients(coeffs) - .map((s) => s.toBigInt().toString()).toString(); - const expected = [1, 25, 42, 1050].toString(); - // expected values taken from verify_circuit_tests/ - - expect(res).toEqual(expected); -}) - -test("polyCommToFields", () => { - const original = createPolyComm(1); - - const deserialized = PolyComm.fromFields(original.toFields(), 1); - - expect(stringifyWithBigInt(deserialized)).toEqual(stringifyWithBigInt(original)); -}) diff --git a/verifier_circuit/tests/helpers.ts b/verifier_circuit/tests/helpers.ts deleted file mode 100644 index 801f8823..00000000 --- a/verifier_circuit/tests/helpers.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ForeignPallas } from "../src/foreign_fields/foreign_pallas"; -import { PolyComm } from "../src/poly_commitment/commitment"; - -export function stringifyWithBigInt(input: any) { - return JSON.stringify(input, (_key, value) => typeof value === "bigint" ? value.toString() : value); -} - -export function createPolyComm(length: number) { - return new PolyComm(Array(length).fill(ForeignPallas.generator as ForeignPallas)); -} diff --git a/verifier_circuit/tests/polynomial.test.ts b/verifier_circuit/tests/polynomial.test.ts deleted file mode 100644 index 990b8915..00000000 --- a/verifier_circuit/tests/polynomial.test.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Polynomial } from "../src/polynomial.js"; -import { ForeignScalar } from "../src/foreign_fields/foreign_scalar.js"; - -test("Evaluate polynomial", () => { - const coef = [ForeignScalar.from(3), ForeignScalar.from(2), ForeignScalar.from(1)]; - const p = new Polynomial(coef); - const x = ForeignScalar.from(4); - - let evaluation = p.evaluate(x); - let expected = ForeignScalar.from(27); - expect(evaluation.toBigInt().toString()).toEqual(expected.toBigInt().toString()) -}); diff --git a/verifier_circuit/tests/prover.test.ts b/verifier_circuit/tests/prover.test.ts deleted file mode 100644 index 10e4b274..00000000 --- a/verifier_circuit/tests/prover.test.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { ScalarChallenge } from "../src/verifier/scalar_challenge.js"; -import { ForeignScalar } from "../src/foreign_fields/foreign_scalar"; -import { test, expect } from "@jest/globals"; -import { PointEvaluations, ProofEvaluations, ProverCommitments, ProverProof } from "../src/prover/prover.js"; -import { createPolyComm, stringifyWithBigInt } from "./helpers.js"; -import { OpeningProof } from "../src/poly_commitment/opening_proof.js"; -import { ForeignPallas } from "../src/foreign_fields/foreign_pallas.js"; - -// This test has a twin in the 'verifier_circuit_tests' Rust crate. -test("toFieldWithLength", () => { - const chal = new ScalarChallenge(ForeignScalar.from("0x123456789")); - const endo_coeff = ForeignScalar.from( - "0x397e65a7d7c1ad71aee24b27e308f0a61259527ec1d4752e619d1840af55f1b1" - ); - const length_in_bits = 10; - - const result = chal.toFieldWithLength(length_in_bits, endo_coeff); - expect(result.toBigInt().toString()).toEqual( - ForeignScalar.from("0x388fcbe4fef56d15d1e08ce81471cd60b753819eae172506b7c7afb1f1801665").toBigInt().toString() - ); -}) - -test("pointEvaluationsToFields", () => { - const original = createPointEvaluations(); - - const deserialized = PointEvaluations.fromFields(original.toFields()); - - expect(stringifyWithBigInt(deserialized)).toEqual(stringifyWithBigInt(original)); -}); - -test("proofEvaluationsWithNullsToFields", () => { - const original = createProofEvaluations(); - - const deserialized = ProofEvaluations.fromFields(original.toFields()); - - expect(stringifyWithBigInt(deserialized)).toEqual(stringifyWithBigInt(original)); -}); - -test("proverCommitmentsToFields", () => { - const original = createProverCommitments(); - - const deserialized = ProverCommitments.fromFields(original.toFields()); - - expect(stringifyWithBigInt(deserialized)).toEqual(stringifyWithBigInt(original)); -}); - -test("proverProofToFields", () => { - const evals = createProofEvaluations(); - const commitments = createProverCommitments(); - const ftEval1 = ForeignScalar.from(42).assertAlmostReduced(); - const openingProof = createOpeningProof(); - - const original = new ProverProof(evals, [], commitments, ftEval1, openingProof); - - const deserialized = ProverProof.fromFields(original.toFields()); - - expect(stringifyWithBigInt(deserialized)).toEqual(stringifyWithBigInt(original)); -}); - -function createProofEvaluations() { - const w = createPointEvaluationsArray(15); - const z = createPointEvaluations(); - const s = createPointEvaluationsArray(6); - const coefficients = createPointEvaluationsArray(15); - const genericSelector = createPointEvaluations(); - const poseidonSelector = createPointEvaluations(); - const completeAddSelector = createPointEvaluations(); - const mulSelector = createPointEvaluations(); - const emulSelector = createPointEvaluations(); - const endomulScalarSelector = createPointEvaluations(); - - return new ProofEvaluations( - w, - z, - s, - coefficients, - genericSelector, - poseidonSelector, - completeAddSelector, - mulSelector, - emulSelector, - endomulScalarSelector - ); -} - -function createProverCommitments() { - const wComm = Array(15).fill(createPolyComm(1)); - const zComm = createPolyComm(1); - const tComm = createPolyComm(7); - - return new ProverCommitments(wComm, zComm, tComm); -} - -function createOpeningProof() { - const lr = Array(15).fill([ForeignPallas.generator, ForeignPallas.generator]); - const delta = ForeignPallas.generator.scale(2) as ForeignPallas; - const z1 = ForeignScalar.from(80).assertAlmostReduced(); - const z2 = ForeignScalar.from(64).assertAlmostReduced(); - const sg = ForeignPallas.generator as ForeignPallas; - - return new OpeningProof(lr, delta, z1, z2, sg); -} - -function createPointEvaluations() { - const zeta = ForeignScalar.from(42).assertAlmostReduced(); - const zetaOmega = ForeignScalar.from(80).assertAlmostReduced(); - return new PointEvaluations(zeta, zetaOmega); -} - -function createPointEvaluationsArray(length: number): PointEvaluations[] { - return Array(length).fill(createPointEvaluations()); -} diff --git a/verifier_circuit/tests/scalar.test.ts b/verifier_circuit/tests/scalar.test.ts deleted file mode 100644 index 88543aef..00000000 --- a/verifier_circuit/tests/scalar.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { invScalar, powScalar } from "../src/util/scalar"; -import { ForeignScalar } from "../src/foreign_fields/foreign_scalar"; - -test("powScalar", () => { - const n = ForeignScalar.from(42); - const exp = 5; - const res = ForeignScalar.from(130691232); // from python - - expect(powScalar(n, exp).toBigInt().toString()).toEqual(res.toBigInt().toString()); -}) - - -// test("invScalar", () => { -// // Create random Scalar -// const rand_base = Scalar.from(Math.floor(Math.random() * 16)); -// const rand_exp = Math.floor(Math.random() * 32); -// const n = powScalar(rand_base, rand_exp); -// -// expect(n.mul(invScalar(n))).toEqual(Scalar.from(1)); -// }) diff --git a/verifier_circuit/tests/sponge.test.ts b/verifier_circuit/tests/sponge.test.ts deleted file mode 100644 index 5cdf219d..00000000 --- a/verifier_circuit/tests/sponge.test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { ProvableBn254 } from "o1js"; -import { ForeignBase } from "../src/foreign_fields/foreign_field"; -import { ForeignScalar } from "../src/foreign_fields/foreign_scalar"; -import { ArithmeticSponge, fp_sponge_initial_state, fp_sponge_params, fq_sponge_initial_state, fq_sponge_params, Sponge } from "../src/verifier/sponge"; - -test("squeeze_internal", () => { - ProvableBn254.runAndCheck(() => { - let sponge = new ArithmeticSponge(fp_sponge_params()); - sponge.init(fp_sponge_initial_state()); - - let digest = ProvableBn254.witness(ForeignBase.provable, () => sponge.squeeze().assertAlmostReduced()); - - digest.assertEquals(0x2FADBE2852044D028597455BC2ABBD1BC873AF205DFABB8A304600F3E09EEBA8n); - }); -}) - -test.skip("fr_squeeze_internal", () => { - ProvableBn254.runAndCheck(() => { - let sponge = new ArithmeticSponge(fq_sponge_params()); - sponge.init(fq_sponge_initial_state()); - - let digest = ProvableBn254.witness(ForeignBase.provable, () => sponge.squeeze().assertAlmostReduced()); - - digest.assertEquals(0x3A3374A061464EC0AAC7E0FF04346926C579D542F9D205A670CE4C18C004E5C1n); - }); -}) - -test("absorb_squeeze_internal", () => { - ProvableBn254.runAndCheck(() => { - let sponge = new ArithmeticSponge(fp_sponge_params()); - sponge.init(fp_sponge_initial_state()); - - sponge.absorb(ForeignBase.from(0x36FB00AD544E073B92B4E700D9C49DE6FC93536CAE0C612C18FBE5F6D8E8EEF2n)); - - let digest = ProvableBn254.witness(ForeignBase.provable, () => sponge.squeeze().assertAlmostReduced()); - - digest.assertEquals(0x3D4F050775295C04619E72176746AD1290D391D73FF4955933F9075CF69259FBn); - }); -}) - -test.skip("fr_absorb_squeeze_internal", () => { - ProvableBn254.runAndCheck(() => { - let sponge = new ArithmeticSponge(fq_sponge_params()); - sponge.init(fq_sponge_initial_state()); - - sponge.absorb(ForeignScalar.from(0x42)); - - let digest = ProvableBn254.witness(ForeignScalar.provable, () => sponge.squeeze().assertAlmostReduced()); - - digest.assertEquals(0x393DDD2CE7E8CC8F929F9D70F25257B924A085542E3C039DD8B04BEA0E885DCBn); - }); -}) - -test("digest_scalar", () => { - ProvableBn254.runAndCheck(() => { - let fq_sponge = new Sponge(fp_sponge_params(), fp_sponge_initial_state()); - let digest = fq_sponge.digest(); - - digest.assertEquals(0x2FADBE2852044D028597455BC2ABBD1BC873AF205DFABB8A304600F3E09EEBA8n); - }); -}) - -test("absorb_digest_scalar", () => { - ProvableBn254.runAndCheck(() => { - let fq_sponge = new Sponge(fp_sponge_params(), fp_sponge_initial_state()); - fq_sponge.absorbScalar(ForeignScalar.from(42)); - let digest = fq_sponge.digest(); - - digest.assertEquals(0x176AFDF43CB26FAE41117BEADDE5BE80E5D06DD18817A7A8C11794A818965500n); - }); -}) - -test.skip("fr_absorb_digest_scalar", () => { - ProvableBn254.runAndCheck(() => { - let fr_sponge = new Sponge(fq_sponge_params(), fq_sponge_initial_state()); - fr_sponge.absorb(ForeignScalar.from(42)); - let digest = fr_sponge.digest(); - - digest.assertEquals(0x15D31425CD40BB52E708D4E85DF366F62A9194688826F6555035DC65497D5B26n); - }); -}) - -test("absorb_challenge", () => { - ProvableBn254.runAndCheck(() => { - let fq_sponge = new Sponge(fp_sponge_params(), fp_sponge_initial_state()); - fq_sponge.absorbScalar(ForeignScalar.from(42)); - let digest = fq_sponge.challenge(); - - digest.assertEquals(0x00000000000000000000000000000000E5D06DD18817A7A8C11794A818965500n); - }); -}) diff --git a/verifier_circuit/tsconfig.json b/verifier_circuit/tsconfig.json deleted file mode 100644 index 538ca2ea..00000000 --- a/verifier_circuit/tsconfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "compilerOptions": { - "target": "es2020", - "module": "esnext", - "lib": [ - "dom", - "esnext" - ], - "outDir": "./build", - "rootDir": ".", - "strict": true, - "strictPropertyInitialization": false, // to enable generic constructors, e.g. on CircuitValue - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "esModuleInterop": true, - "moduleResolution": "node", - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "allowJs": true, - "declaration": true, - "sourceMap": true, - "noFallthroughCasesInSwitch": true, - "allowSyntheticDefaultImports": true, - "resolveJsonModule": true - }, - "include": [ - "./src/main.ts", - "./src/verifier/verifier.ts", - ] -} diff --git a/verifier_circuit_tests/.gitignore b/verifier_circuit_tests/.gitignore deleted file mode 100644 index eb5a316c..00000000 --- a/verifier_circuit_tests/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target diff --git a/verifier_circuit_tests/Cargo.lock b/verifier_circuit_tests/Cargo.lock deleted file mode 100644 index 497b3810..00000000 --- a/verifier_circuit_tests/Cargo.lock +++ /dev/null @@ -1,957 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "ark-ec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea978406c4b1ca13c2db2373b05cc55429c3575b8b21f1b9ee859aa5b03dd42" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0f78f47537c2f15706db7e98fe64cc1711dbf9def81218194e17239e53e5aa" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown", - "rayon", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd4e5f0bf8285d5ed538d27fab7411f3e297908fd93c62195de8bee3f199e82" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "bcs" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd3ffe8b19a604421a5d461d4a70346223e535903fbc3067138bddbebddcf77" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cpufeatures" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] - -[[package]] -name = "disjoint-set" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "groupmap" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems.git?branch=develop#b62865a375ef9c962cbbcdcdf6a9e49d82f7fe4e" -dependencies = [ - "ark-ec", - "ark-ff", - "rand", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "internal-tracing" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems.git?branch=develop#b62865a375ef9c962cbbcdcdf6a9e49d82f7fe4e" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "kimchi" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems.git?branch=develop#b62865a375ef9c962cbbcdcdf6a9e49d82f7fe4e" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "blake2", - "disjoint-set", - "groupmap", - "hex", - "internal-tracing", - "itertools", - "mina-curves", - "mina-poseidon", - "num-bigint", - "num-derive", - "num-integer", - "num-traits", - "o1-utils", - "once_cell", - "poly-commitment", - "rand", - "rand_core", - "rayon", - "rmp-serde", - "serde", - "serde_with", - "strum", - "strum_macros", - "thiserror", - "turshi", -] - -[[package]] -name = "libc" -version = "0.2.148" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" - -[[package]] -name = "memchr" -version = "2.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mina-curves" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems.git?branch=develop#b62865a375ef9c962cbbcdcdf6a9e49d82f7fe4e" -dependencies = [ - "ark-ec", - "ark-ff", -] - -[[package]] -name = "mina-poseidon" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems.git?branch=develop#b62865a375ef9c962cbbcdcdf6a9e49d82f7fe4e" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "mina-curves", - "o1-utils", - "once_cell", - "rand", - "rayon", - "serde", - "serde_with", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems.git?branch=develop#b62865a375ef9c962cbbcdcdf6a9e49d82f7fe4e" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with", - "sha2", - "thiserror", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "pest" -version = "2.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "poly-commitment" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems.git?branch=develop#b62865a375ef9c962cbbcdcdf6a9e49d82f7fe4e" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "blake2", - "groupmap", - "itertools", - "mina-curves", - "mina-poseidon", - "o1-utils", - "once_cell", - "rand", - "rand_core", - "rayon", - "rmp-serde", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro2" -version = "1.0.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rayon" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", -] - -[[package]] -name = "rmp" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.188" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.188" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "serde_json" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "serde", - "serde_with_macros", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "sha2" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thiserror" -version = "1.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "turshi" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems.git?branch=develop#b62865a375ef9c962cbbcdcdf6a9e49d82f7fe4e" -dependencies = [ - "ark-ff", - "hex", - "o1-utils", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "verifier_circuit_tests" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "kimchi", - "num-bigint", - "num-traits", - "serde", - "serde_json", -] - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "zeroize" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] diff --git a/verifier_circuit_tests/Cargo.toml b/verifier_circuit_tests/Cargo.toml deleted file mode 100644 index 8646bc41..00000000 --- a/verifier_circuit_tests/Cargo.toml +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "verifier_circuit_tests" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -kimchi = { git = "https://github.com/o1-labs/proof-systems.git", branch = "develop" } -num-traits = "0.2" -ark-ff = { version = "0.3.0", features = [ "parallel", "asm" ] } -ark-ec = { version = "0.3.0", features = [ "parallel" ] } -ark-poly = { version = "0.3.0", features = [ "parallel" ] } -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -num-bigint = "0.4.3" diff --git a/verifier_circuit_tests/src/lib.rs b/verifier_circuit_tests/src/lib.rs deleted file mode 100644 index 82642462..00000000 --- a/verifier_circuit_tests/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod misc; -pub mod sponge_tests; -pub mod verifier_steps; diff --git a/verifier_circuit_tests/src/main.rs b/verifier_circuit_tests/src/main.rs deleted file mode 100644 index a8a525bc..00000000 --- a/verifier_circuit_tests/src/main.rs +++ /dev/null @@ -1,160 +0,0 @@ -use std::{array, collections::HashMap, fs}; - -use ark_ec::AffineCurve; -use ark_ff::Fp256; -use kimchi::{ - circuits::{ - polynomials::generic::testing::{create_circuit, fill_in_witness}, - wires::COLUMNS, - }, - groupmap::GroupMap, - mina_curves::pasta::{fields::FqParameters, Pallas, PallasParameters}, - mina_poseidon::sponge::{DefaultFqSponge, DefaultFrSponge}, - poly_commitment::{commitment::CommitmentCurve, evaluation_proof::OpeningProof}, - proof::ProverProof, - prover_index::testing::new_index_for_test_with_lookups, - verifier::{batch_verify, Context}, -}; -use verifier_circuit_tests::{ - misc::{ - BaseSponge, ProverProofTS, ScalarSponge, SpongeParams, UncompressedPolyComm, - VerifierIndexTS, - }, - verifier_steps::{to_batch_step1, to_batch_step2, to_batch_step3}, -}; - -type PallasScalar = ::ScalarField; - -type FqSponge = DefaultFqSponge; -type FrSponge = DefaultFrSponge; - -fn main() { - // Create test circuit - let gates = create_circuit(0, 0); - let num_gates = gates.len(); - - // Index - let prover_index = - new_index_for_test_with_lookups::(gates, 0, 0, vec![], Some(vec![]), false, None); - - // Print values for hardcoding in verifier_circuit/ - let verifier_index = prover_index.verifier_index(); - println!("Powers of alpha: {:?}", verifier_index.powers_of_alpha); - - // Export for typescript tests - fs::write( - "../verifier_circuit/test_data/verifier_index.json", - serde_json::to_string_pretty(&VerifierIndexTS::from(&verifier_index)).unwrap(), - ) - .unwrap(); - - // Create proof - let group_map = ::Map::setup(); - let proof = { - // dummy array that will get filled - let mut witness: [Vec>; COLUMNS] = - array::from_fn(|_| vec![1u32.into(); num_gates]); - fill_in_witness(0, &mut witness, &[]); - - ProverProof::create::(&group_map, witness, &[], &prover_index) - .unwrap() - }; - - // Export proof - fs::write( - "../verifier_circuit/test_data/proof.json", - serde_json::to_string_pretty(&ProverProofTS::from(&proof)).unwrap(), - ) - .unwrap(); - - // Export lagrange_bases (needed for Typescript SRS) - let lagrange_bases = &verifier_index.srs().lagrange_bases.clone(); - let uncompressed_lagrange_bases: HashMap<_, _> = lagrange_bases - .iter() - .map(|(u, comm_vec)| { - ( - u, - comm_vec - .iter() - .map(UncompressedPolyComm::from) - .collect::>(), - ) - }) - .collect(); - fs::write( - "../verifier_circuit/test_data/lagrange_bases.json", - serde_json::to_string_pretty(&uncompressed_lagrange_bases).unwrap(), - ) - .unwrap(); - - let public_input = vec![]; - - to_batch_step1(&proof, &verifier_index).unwrap(); - let public_comm = to_batch_step2(&verifier_index, &public_input).unwrap(); - to_batch_step3::>( - &proof, - &verifier_index, - &public_comm, - Some(&public_input), - ) - .unwrap(); - - let context = Context { - verifier_index: &verifier_index, - proof: &proof, - public_input: &public_input, - }; - batch_verify::>(&group_map, &[context]) - .unwrap(); -} - -#[cfg(test)] -mod unit_tests { - use kimchi::{ - mina_poseidon::sponge::ScalarChallenge, - poly_commitment::commitment::{b_poly, b_poly_coefficients}, - }; - use num_bigint::BigUint; - use verifier_circuit_tests::misc::PallasScalar; - - #[test] - fn to_field_with_length() { - let chal = ScalarChallenge(BigUint::parse_bytes(b"123456789", 16).unwrap().into()); - let endo_coeff: PallasScalar = BigUint::parse_bytes( - b"397e65a7d7c1ad71aee24b27e308f0a61259527ec1d4752e619d1840af55f1b1", - 16, - ) - .unwrap() - .into(); - let length_in_bits = 10; - - let result = chal.to_field_with_length(length_in_bits, &endo_coeff); - println!("to_field_with_length: {}", result); - } - - #[test] - fn b_poly_test() { - // arbitrary values - let coeffs = vec![ - PallasScalar::from(42), - PallasScalar::from(25), - PallasScalar::from(420), - ]; - let x = PallasScalar::from(12); - - let result = b_poly(&coeffs, x); - println!("b_poly_test: {}", result); - } - - #[test] - fn b_poly_coefficients_test() { - // arbitrary values - let coeffs = vec![PallasScalar::from(42), PallasScalar::from(25)]; - - let result: Vec<_> = b_poly_coefficients(&coeffs) - .iter() - .map(|e| e.to_string()) - .collect(); - println!("b_poly_coefficients_test: {:?}", result); - } -} diff --git a/verifier_circuit_tests/src/misc.rs b/verifier_circuit_tests/src/misc.rs deleted file mode 100644 index cb90181e..00000000 --- a/verifier_circuit_tests/src/misc.rs +++ /dev/null @@ -1,502 +0,0 @@ -use ark_ec::AffineCurve; -use ark_poly::{domain::EvaluationDomain, UVPolynomial}; -use kimchi::{ - circuits::{ - expr::{Linearization, PolishToken}, - lookup::{ - index::LookupSelectors, - lookups::{LookupFeatures, LookupInfo, LookupPatterns}, - }, - }, - mina_curves::pasta::{Fq, Pallas, PallasParameters}, - mina_poseidon::{ - constants::PlonkSpongeConstantsKimchi, - sponge::{DefaultFqSponge, DefaultFrSponge}, - }, - o1_utils::FieldHelpers, - poly_commitment::{evaluation_proof::OpeningProof, PolyComm}, - proof::{ - LookupCommitments, PointEvaluations, ProofEvaluations, ProverCommitments, ProverProof, - RecursionChallenge, - }, - verifier_index::{LookupVerifierIndex, VerifierIndex}, -}; -use serde::Serialize; - -pub type PallasScalar = ::ScalarField; -pub type PallasPointEvals = PointEvaluations>; - -/// `PallasScalar` is an external type and it doesn't implement `Serialize`. This is a wapper for -/// implementing a serialize function to it. -pub struct SerializablePallasScalar(PallasScalar); - -impl Serialize for SerializablePallasScalar { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - serializer.serialize_str(&self.0.to_string()) - } -} - -pub type SpongeParams = PlonkSpongeConstantsKimchi; -pub type BaseSponge = DefaultFqSponge; -pub type ScalarSponge = DefaultFrSponge; - -/// Useful for serializing into JSON and importing in Typescript tests. -#[derive(Serialize, Debug)] -pub struct UncompressedPoint { - pub x: String, - pub y: String, -} - -impl From<&Pallas> for UncompressedPoint { - fn from(value: &Pallas) -> Self { - UncompressedPoint { - x: value.x.to_biguint().to_string(), - y: value.y.to_biguint().to_string(), - } - } -} - -/// Useful for serializing into JSON and importing in Typescript tests. -#[derive(Serialize, Debug)] -pub struct UncompressedPolyComm { - pub unshifted: Vec, - pub shifted: Option, -} - -impl From> for UncompressedPolyComm { - fn from(value: PolyComm) -> Self { - Self { - unshifted: value - .unshifted - .iter() - .map(UncompressedPoint::from) - .collect(), - shifted: value.shifted.map(|s| UncompressedPoint::from(&s)), - } - } -} - -impl From<&PolyComm> for UncompressedPolyComm { - fn from(value: &PolyComm) -> Self { - Self { - unshifted: value - .unshifted - .iter() - .map(UncompressedPoint::from) - .collect(), - shifted: value.shifted.map(|s| UncompressedPoint::from(&s)), - } - } -} - -/// A helper type for serializing the VerifierIndex data used in the verifier circuit. -#[derive(Serialize, Debug)] -pub struct VerifierIndexTS { - //srs: SRS, // excluded because it already is serialized in typescript - domain_size: usize, - domain_gen: String, - public_size: usize, - max_poly_size: usize, - zk_rows: u64, - - sigma_comm: Vec, // of size PERMUTS - coefficients_comm: Vec, // of size COLUMNS - generic_comm: UncompressedPolyComm, - - psm_comm: UncompressedPolyComm, - - complete_add_comm: UncompressedPolyComm, - mul_comm: UncompressedPolyComm, - emul_comm: UncompressedPolyComm, - endomul_scalar_comm: UncompressedPolyComm, - - range_check0_comm: Option, - - range_check1_comm: Option, - - foreign_field_add_comm: Option, - - foreign_field_mul_comm: Option, - - xor_comm: Option, - - rot_comm: Option, - - shift: Vec, - permutation_vanishing_polynomial_m: Vec, - - w: String, - - endo: String, - - lookup_index: Option, - - linearization: Linearization>>, - //powers_of_alpha: Alphas, -} - -#[derive(Serialize, Debug)] -pub struct LookupVerifierIndexTS { - joint_lookup_used: bool, - lookup_table: Vec, - lookup_selectors: LookupSelectorsTS, - - table_ids: Option, - - lookup_info: LookupInfoTS, - - runtime_tables_selector: Option, -} - -#[derive(Serialize, Debug)] -pub struct LookupSelectorsTS { - xor: Option, - lookup: Option, - range_check: Option, - ffmul: Option, -} - -#[derive(Serialize, Debug)] -pub struct LookupInfoTS { - max_per_row: usize, - max_joint_size: u32, - features: LookupFeaturesTS, -} - -#[derive(Serialize, Debug)] -pub struct LookupFeaturesTS { - patterns: LookupPatternsTS, - joint_lookup_used: bool, - uses_runtime_tables: bool, -} - -#[derive(Serialize, Debug)] -pub struct LookupPatternsTS { - xor: bool, - lookup: bool, - range_check: bool, - foreign_field_mul: bool, -} - -fn token_to_hex(value: &PolishToken) -> PolishToken { - // Only the Literal variant needs to be converted to another specialization, - // but Rust doesn't seem to allow me to put an arm to match any other variant and convert - // its generic. It doesn't "know" that all other variants don't care about the - // generic and can be converted directly. This is why I specified every variant. - match value { - PolishToken::Alpha => PolishToken::Alpha, - PolishToken::Beta => PolishToken::Beta, - PolishToken::Gamma => PolishToken::Gamma, - PolishToken::JointCombiner => PolishToken::JointCombiner, - PolishToken::EndoCoefficient => PolishToken::EndoCoefficient, - PolishToken::Mds { row, col } => PolishToken::Mds { - row: *row, - col: *col, - }, - PolishToken::Literal(elem) => PolishToken::Literal(elem.to_hex()), - PolishToken::Cell(x) => PolishToken::Cell(*x), - PolishToken::Dup => PolishToken::Dup, - PolishToken::Pow(x) => PolishToken::Pow(*x), - PolishToken::Add => PolishToken::Add, - PolishToken::Mul => PolishToken::Mul, - PolishToken::Sub => PolishToken::Sub, - PolishToken::VanishesOnZeroKnowledgeAndPreviousRows => { - PolishToken::VanishesOnZeroKnowledgeAndPreviousRows - } - PolishToken::UnnormalizedLagrangeBasis(x) => PolishToken::UnnormalizedLagrangeBasis(*x), - PolishToken::Store => PolishToken::Store, - PolishToken::Load(x) => PolishToken::Load(*x), - PolishToken::SkipIf(x, y) => PolishToken::SkipIf(*x, *y), - PolishToken::SkipIfNot(x, y) => PolishToken::SkipIfNot(*x, *y), - } -} - -impl From<&VerifierIndex>> for VerifierIndexTS { - fn from(value: &VerifierIndex>) -> Self { - let VerifierIndex { - domain, - public, - max_poly_size, - zk_rows, - sigma_comm, - coefficients_comm, - generic_comm, - psm_comm, - complete_add_comm, - mul_comm, - emul_comm, - endomul_scalar_comm, - range_check0_comm, - range_check1_comm, - foreign_field_add_comm, - foreign_field_mul_comm, - xor_comm, - rot_comm, - //powers_of_alpha, - shift, - permutation_vanishing_polynomial_m, - w, - endo, - lookup_index, - linearization, - .. - } = value; - - let linearization = { - let constant_term = linearization - .constant_term - .iter() - .map(token_to_hex) - .collect::>(); - let index_terms = linearization - .index_terms - .iter() - .map(|(col, tok)| (*col, tok.iter().map(token_to_hex).collect::>())) - .collect::>(); - Linearization { - constant_term, - index_terms, - } - }; - - let lookup_index = lookup_index.as_ref().map(|index| { - let LookupVerifierIndex { - joint_lookup_used, - lookup_table, - lookup_selectors, - table_ids, - lookup_info, - runtime_tables_selector, - } = index; - let lookup_selectors = { - let LookupSelectors { - xor, - lookup, - range_check, - ffmul, - } = lookup_selectors.clone(); - LookupSelectorsTS { - xor: xor.map(UncompressedPolyComm::from), - lookup: lookup.map(UncompressedPolyComm::from), - range_check: range_check.map(UncompressedPolyComm::from), - ffmul: ffmul.map(UncompressedPolyComm::from), - } - }; - let lookup_info = { - let LookupInfo { - max_per_row, - max_joint_size, - features, - } = *lookup_info; - let features = { - let LookupFeatures { - patterns, - joint_lookup_used, - uses_runtime_tables, - } = features; - let patterns = { - let LookupPatterns { - xor, - lookup, - range_check, - foreign_field_mul, - } = patterns; - LookupPatternsTS { - xor, - lookup, - range_check, - foreign_field_mul, - } - }; - LookupFeaturesTS { - patterns, - joint_lookup_used, - uses_runtime_tables, - } - }; - LookupInfoTS { - max_per_row, - max_joint_size, - features, - } - }; - LookupVerifierIndexTS { - joint_lookup_used: *joint_lookup_used, - lookup_table: lookup_table - .iter() - .map(UncompressedPolyComm::from) - .collect(), - lookup_selectors, - table_ids: table_ids.clone().map(UncompressedPolyComm::from), - lookup_info, - runtime_tables_selector: runtime_tables_selector - .clone() - .map(UncompressedPolyComm::from), - } - }); - - VerifierIndexTS { - domain_size: domain.size(), - domain_gen: domain.group_gen.to_hex(), - public_size: *public, - max_poly_size: *max_poly_size, - zk_rows: *zk_rows, - sigma_comm: sigma_comm.iter().map(UncompressedPolyComm::from).collect(), - coefficients_comm: coefficients_comm - .iter() - .map(UncompressedPolyComm::from) - .collect(), - generic_comm: UncompressedPolyComm::from(generic_comm), - psm_comm: UncompressedPolyComm::from(psm_comm), - complete_add_comm: UncompressedPolyComm::from(complete_add_comm), - mul_comm: UncompressedPolyComm::from(mul_comm), - emul_comm: UncompressedPolyComm::from(emul_comm), - endomul_scalar_comm: UncompressedPolyComm::from(endomul_scalar_comm), - range_check0_comm: range_check0_comm.as_ref().map(UncompressedPolyComm::from), - range_check1_comm: range_check1_comm.as_ref().map(UncompressedPolyComm::from), - foreign_field_add_comm: foreign_field_add_comm - .as_ref() - .map(UncompressedPolyComm::from), - foreign_field_mul_comm: foreign_field_mul_comm - .as_ref() - .map(UncompressedPolyComm::from), - xor_comm: xor_comm.as_ref().map(UncompressedPolyComm::from), - rot_comm: rot_comm.as_ref().map(UncompressedPolyComm::from), - shift: shift.iter().map(|e| e.to_hex()).collect::>(), - permutation_vanishing_polynomial_m: permutation_vanishing_polynomial_m - .get() - .unwrap() - .coeffs() - .iter() - .map(|e| e.to_hex()) - .collect::>(), - w: w.get().unwrap().to_hex(), - endo: endo.to_hex(), - lookup_index, - linearization, - //powers_of_alpha, - } - } -} - -/// A helper type for serializing the ProverCommitments data used in the verifier circuit. This -/// will be part of `ProverProofTS`. -#[derive(Serialize)] -pub struct ProverCommitmentsTS { - w_comm: Vec, // size COLUMNS - z_comm: UncompressedPolyComm, - t_comm: UncompressedPolyComm, - lookup: Option>, // doesn't really matter as it'll be null for - // our tests -} - -impl From<&ProverCommitments> for ProverCommitmentsTS { - fn from(value: &ProverCommitments) -> Self { - let ProverCommitments { - w_comm, - z_comm, - t_comm, - lookup, - } = value; - - ProverCommitmentsTS { - w_comm: w_comm.iter().map(UncompressedPolyComm::from).collect(), - z_comm: UncompressedPolyComm::from(z_comm), - t_comm: UncompressedPolyComm::from(t_comm), - lookup: lookup.clone(), - } - } -} - -/// A helper type for serializing the RecursionChallenge data used in the verifier circuit. -/// This will be part of `ProverProofTS`. -#[derive(Serialize)] -pub struct RecursionChallengeTS { - chals: Vec, - comm: UncompressedPolyComm, -} - -impl From<&RecursionChallenge> for RecursionChallengeTS { - fn from(value: &RecursionChallenge) -> Self { - let RecursionChallenge { chals, comm } = value; - - RecursionChallengeTS { - chals: chals.iter().map(|s| SerializablePallasScalar(*s)).collect(), - comm: UncompressedPolyComm::from(comm), - } - } -} - -#[derive(Serialize)] -pub struct OpeningProofTS { - lr: Vec<(UncompressedPoint, UncompressedPoint)>, - delta: UncompressedPoint, - z1: String, - z2: String, - sg: UncompressedPoint, -} - -impl From<&OpeningProof> for OpeningProofTS { - fn from(value: &OpeningProof) -> Self { - let OpeningProof { - lr, - delta, - z1, - z2, - sg, - } = value; - - let lr = lr.iter().map(|(g1, g2)| (g1.into(), g2.into())).collect(); - let delta = delta.into(); - let z1 = z1.to_hex(); - let z2 = z2.to_hex(); - let sg = sg.into(); - - OpeningProofTS { - lr, - delta, - z1, - z2, - sg, - } - } -} - -/// A helper type for serializing the proof data used in the verifier circuit. -#[derive(Serialize)] -pub struct ProverProofTS { - evals: ProofEvaluations, // a helper for ProofEvaluattions is not needed - // because it can be correctly deserialized in TS - // as it is now. - prev_challenges: Vec, - commitments: ProverCommitmentsTS, - ft_eval1: String, - proof: OpeningProofTS, -} - -impl From<&ProverProof>> for ProverProofTS { - fn from(value: &ProverProof>) -> Self { - let ProverProof { - evals, - prev_challenges, - commitments, - ft_eval1, - proof, - .. - } = value; - - ProverProofTS { - evals: evals.clone(), - prev_challenges: prev_challenges - .iter() - .map(RecursionChallengeTS::from) - .collect(), - commitments: ProverCommitmentsTS::from(commitments), - ft_eval1: ft_eval1.to_hex(), - proof: proof.into(), - } - } -} diff --git a/verifier_circuit_tests/src/sponge_tests.rs b/verifier_circuit_tests/src/sponge_tests.rs deleted file mode 100644 index 28b194ed..00000000 --- a/verifier_circuit_tests/src/sponge_tests.rs +++ /dev/null @@ -1,129 +0,0 @@ -#[cfg(test)] -mod tests { - use ark_ec::AffineCurve; - use kimchi::{ - curve::KimchiCurve, - mina_curves::pasta::{Pallas, PallasParameters}, - mina_poseidon::{ - constants::PlonkSpongeConstantsKimchi, - poseidon::Sponge, - sponge::{DefaultFqSponge, DefaultFrSponge}, - FqSponge, - }, - plonk_sponge::FrSponge, - }; - use num_bigint::BigUint; - use num_traits::Num; - - type PallasScalar = ::ScalarField; - type PallasBase = ::BaseField; - - type SpongeParams = PlonkSpongeConstantsKimchi; - type FqTestSponge = DefaultFqSponge; - type FrTestSponge = DefaultFrSponge; - - fn scalar_from_hex(hex: &str) -> PallasScalar { - PallasScalar::from(BigUint::from_str_radix(hex, 16).unwrap()) - } - fn base_from_hex(hex: &str) -> PallasBase { - PallasBase::from(BigUint::from_str_radix(hex, 16).unwrap()) - } - - #[test] - fn test_squeeze_internal() { - let mut sponge = FqTestSponge::new(Pallas::other_curve_sponge_params()); - let digest = sponge.sponge.squeeze(); - - assert_eq!( - digest, - base_from_hex("2FADBE2852044D028597455BC2ABBD1BC873AF205DFABB8A304600F3E09EEBA8") - ); - } - - #[test] - fn test_fr_squeeze_internal() { - let mut sponge = FrTestSponge::new(Pallas::sponge_params()); - let digest = sponge.sponge.squeeze(); - - assert_eq!( - digest, - scalar_from_hex("3A3374A061464EC0AAC7E0FF04346926C579D542F9D205A670CE4C18C004E5C1") - ); - } - - #[test] - fn test_absorb_squeeze_internal() { - let mut sponge = FqTestSponge::new(Pallas::other_curve_sponge_params()); - sponge.sponge.absorb(&[base_from_hex( - "36FB00AD544E073B92B4E700D9C49DE6FC93536CAE0C612C18FBE5F6D8E8EEF2", - )]); - let digest = sponge.sponge.squeeze(); - - assert_eq!( - digest, - base_from_hex("3D4F050775295C04619E72176746AD1290D391D73FF4955933F9075CF69259FB") - ); - } - - #[test] - fn test_fr_absorb_squeeze_internal() { - let mut sponge = FrTestSponge::new(Pallas::sponge_params()); - sponge.sponge.absorb(&[scalar_from_hex("42")]); - let digest = sponge.sponge.squeeze(); - - assert_eq!( - digest, - scalar_from_hex("393DDD2CE7E8CC8F929F9D70F25257B924A085542E3C039DD8B04BEA0E885DCB") - ); - } - - #[test] - fn test_digest_scalar() { - let sponge = FqTestSponge::new(Pallas::other_curve_sponge_params()); - let digest = sponge.digest(); - - assert_eq!( - digest, - scalar_from_hex("2FADBE2852044D028597455BC2ABBD1BC873AF205DFABB8A304600F3E09EEBA8") - ); - } - - #[test] - fn test_absorb_digest_scalar() { - let mut sponge = FqTestSponge::new(Pallas::other_curve_sponge_params()); - let input = PallasScalar::from(42); - sponge.absorb_fr(&[input]); - let digest = sponge.digest(); - - assert_eq!( - digest, - scalar_from_hex("176AFDF43CB26FAE41117BEADDE5BE80E5D06DD18817A7A8C11794A818965500") - ); - } - - #[test] - fn test_fr_absorb_digest_scalar() { - let mut sponge = FrTestSponge::new(Pallas::sponge_params()); - let input = PallasScalar::from(42); - sponge.absorb(&input); - let digest = sponge.digest(); - - assert_eq!( - digest, - scalar_from_hex("15D31425CD40BB52E708D4E85DF366F62A9194688826F6555035DC65497D5B26") - ); - } - - #[test] - fn test_absorb_challenge() { - let mut sponge = FqTestSponge::new(Pallas::other_curve_sponge_params()); - let input = PallasScalar::from(42); - sponge.absorb_fr(&[input]); - let challenge = sponge.challenge(); - - assert_eq!( - challenge, - scalar_from_hex("00000000000000000000000000000000E5D06DD18817A7A8C11794A818965500") - ); - } -} diff --git a/verifier_circuit_tests/src/verifier_steps.rs b/verifier_circuit_tests/src/verifier_steps.rs deleted file mode 100644 index e1a25329..00000000 --- a/verifier_circuit_tests/src/verifier_steps.rs +++ /dev/null @@ -1,734 +0,0 @@ -use ark_ec::AffineCurve; -use ark_ff::{Field, One, PrimeField, Zero}; -use ark_poly::{univariate::DensePolynomial, EvaluationDomain, Polynomial}; -use kimchi::{ - circuits::{ - argument::ArgumentType, - expr::{Column, Constants, PolishToken}, - gate::GateType, - lookup::lookups::LookupPattern, - polynomials::permutation, - scalars::RandomOracles, - wires::{COLUMNS, PERMUTS}, - }, - curve::KimchiCurve, - error::VerifyError, - mina_poseidon::{sponge::ScalarChallenge, FqSponge}, - o1_utils::ExtendedDensePolynomial, - oracles::OraclesResult, - plonk_sponge::FrSponge, - poly_commitment::{ - commitment::{absorb_commitment, combined_inner_product}, - OpenProof, PolyComm, SRS, - }, - proof::{PointEvaluations, ProofEvaluations, ProverProof, RecursionChallenge}, - verifier_index::VerifierIndex, -}; - -/// Enforce the length of evaluations inside [`Proof`]. -/// Atm, the length of evaluations(both `zeta` and `zeta_omega`) SHOULD be 1. -/// The length value is prone to future change. -pub fn check_proof_evals_len( - proof: &ProverProof, - expected_size: usize, -) -> Result<(), VerifyError> -where - G: KimchiCurve, - G::BaseField: PrimeField, -{ - let ProofEvaluations { - public, - w, - z, - s, - coefficients, - generic_selector, - poseidon_selector, - complete_add_selector, - mul_selector, - emul_selector, - endomul_scalar_selector, - range_check0_selector, - range_check1_selector, - foreign_field_add_selector, - foreign_field_mul_selector, - xor_selector, - rot_selector, - lookup_aggregation, - lookup_table, - lookup_sorted, - runtime_lookup_table, - runtime_lookup_table_selector, - xor_lookup_selector, - lookup_gate_lookup_selector, - range_check_lookup_selector, - foreign_field_mul_lookup_selector, - } = &proof.evals; - - let check_eval_len = - |eval: &PointEvaluations>, str: &'static str| -> Result<(), VerifyError> { - if eval.zeta.len() != expected_size { - Err(VerifyError::IncorrectEvaluationsLength( - expected_size, - eval.zeta.len(), - str, - )) - } else if eval.zeta_omega.len() != expected_size { - Err(VerifyError::IncorrectEvaluationsLength( - expected_size, - eval.zeta_omega.len(), - str, - )) - } else { - Ok(()) - } - }; - - if let Some(public) = public { - check_eval_len(public, "public input")?; - } - - for w_i in w { - check_eval_len(w_i, "witness")?; - } - check_eval_len(z, "permutation accumulator")?; - for s_i in s { - check_eval_len(s_i, "permutation shifts")?; - } - for coeff in coefficients { - check_eval_len(coeff, "coefficients")?; - } - - // Lookup evaluations - for sorted in lookup_sorted.iter().flatten() { - check_eval_len(sorted, "lookup sorted")? - } - - if let Some(lookup_aggregation) = lookup_aggregation { - check_eval_len(lookup_aggregation, "lookup aggregation")?; - } - if let Some(lookup_table) = lookup_table { - check_eval_len(lookup_table, "lookup table")?; - } - if let Some(runtime_lookup_table) = runtime_lookup_table { - check_eval_len(runtime_lookup_table, "runtime lookup table")?; - } - - check_eval_len(generic_selector, "generic selector")?; - check_eval_len(poseidon_selector, "poseidon selector")?; - check_eval_len(complete_add_selector, "complete add selector")?; - check_eval_len(mul_selector, "mul selector")?; - check_eval_len(emul_selector, "endomul selector")?; - check_eval_len(endomul_scalar_selector, "endomul scalar selector")?; - - // Optional gates - - if let Some(range_check0_selector) = range_check0_selector { - check_eval_len(range_check0_selector, "range check 0 selector")? - } - if let Some(range_check1_selector) = range_check1_selector { - check_eval_len(range_check1_selector, "range check 1 selector")? - } - if let Some(foreign_field_add_selector) = foreign_field_add_selector { - check_eval_len(foreign_field_add_selector, "foreign field add selector")? - } - if let Some(foreign_field_mul_selector) = foreign_field_mul_selector { - check_eval_len(foreign_field_mul_selector, "foreign field mul selector")? - } - if let Some(xor_selector) = xor_selector { - check_eval_len(xor_selector, "xor selector")? - } - if let Some(rot_selector) = rot_selector { - check_eval_len(rot_selector, "rot selector")? - } - - // Lookup selectors - - if let Some(runtime_lookup_table_selector) = runtime_lookup_table_selector { - check_eval_len( - runtime_lookup_table_selector, - "runtime lookup table selector", - )? - } - if let Some(xor_lookup_selector) = xor_lookup_selector { - check_eval_len(xor_lookup_selector, "xor lookup selector")? - } - if let Some(lookup_gate_lookup_selector) = lookup_gate_lookup_selector { - check_eval_len(lookup_gate_lookup_selector, "lookup gate lookup selector")? - } - if let Some(range_check_lookup_selector) = range_check_lookup_selector { - check_eval_len(range_check_lookup_selector, "range check lookup selector")? - } - if let Some(foreign_field_mul_lookup_selector) = foreign_field_mul_lookup_selector { - check_eval_len( - foreign_field_mul_lookup_selector, - "foreign field mul lookup selector", - )? - } - - Ok(()) -} - -/// Execute step 1 of partial verification -pub fn to_batch_step1>( - proof: &ProverProof, - verifier_index: &VerifierIndex, -) -> Result<(), VerifyError> -where - G: KimchiCurve, - G::BaseField: PrimeField, -{ - let chunk_size = { - let d1_size = verifier_index.domain.size(); - if d1_size < verifier_index.max_poly_size { - 1 - } else { - d1_size / verifier_index.max_poly_size - } - }; - println!("to_batch(), step 1: Check evals len."); - check_proof_evals_len(proof, chunk_size)?; - Ok(()) -} - -/// Execute step 2 of partial verification -pub fn to_batch_step2>( - verifier_index: &VerifierIndex, - public_input: &[::ScalarField], -) -> Result, VerifyError> -where - G: KimchiCurve, - G::BaseField: PrimeField, -{ - println!("to_batch(), step 2: Commit to the negated public input polynomial."); - let public_comm = { - if public_input.len() != verifier_index.public { - return Err(VerifyError::IncorrectPubicInputLength( - verifier_index.public, - )); - } - let lgr_comm = verifier_index - .srs() - .get_lagrange_basis(verifier_index.domain.size()) - .expect("pre-computed committed lagrange bases not found"); - let com: Vec<_> = lgr_comm.iter().take(verifier_index.public).collect(); - let elm: Vec<_> = public_input.iter().map(|s| -*s).collect(); - let public_comm = PolyComm::::multi_scalar_mul(&com, &elm); - verifier_index - .srs() - .mask_custom( - public_comm, - &PolyComm { - unshifted: vec![G::ScalarField::one(); 1], - shifted: None, - }, - ) - .unwrap() - .commitment - }; - println!( - "Done, public_comm: {:?}", - public_comm.unshifted[0].to_string() - ); - Ok(public_comm) -} - -pub fn to_batch_step3( - proof: &ProverProof, - index: &VerifierIndex, - public_comm: &PolyComm, - public_input: Option<&[G::ScalarField]>, -) -> Result, VerifyError> -where - G: KimchiCurve, - G::BaseField: PrimeField, - EFqSponge: Clone + FqSponge, - EFrSponge: FrSponge, - OpeningProof: OpenProof, -{ - //~ - //~ #### Fiat-Shamir argument - //~ - //~ We run the following algorithm: - //~ - let n = index.domain.size; - let (_, endo_r) = G::endos(); - - let chunk_size = { - let d1_size = index.domain.size(); - if d1_size < index.max_poly_size { - 1 - } else { - d1_size / index.max_poly_size - } - }; - - let zk_rows = index.zk_rows; - - //~ 1. Setup the Fq-Sponge. - let mut fq_sponge = EFqSponge::new(G::other_curve_sponge_params()); - - //~ 1. Absorb the digest of the VerifierIndex. - let verifier_index_digest = index.digest::(); - fq_sponge.absorb_fq(&[verifier_index_digest]); - - //~ 1. Absorb the commitments of the previous challenges with the Fq-sponge. - for RecursionChallenge { comm, .. } in &proof.prev_challenges { - absorb_commitment(&mut fq_sponge, comm); - } - - //~ 1. Absorb the commitment of the public input polynomial with the Fq-Sponge. - absorb_commitment(&mut fq_sponge, public_comm); - - //~ 1. Absorb the commitments to the registers / witness columns with the Fq-Sponge. - proof - .commitments - .w_comm - .iter() - .for_each(|c| absorb_commitment(&mut fq_sponge, c)); - - //~ 1. If lookup is used: - if let Some(l) = &index.lookup_index { - let lookup_commits = proof - .commitments - .lookup - .as_ref() - .ok_or(VerifyError::LookupCommitmentMissing)?; - - // if runtime is used, absorb the commitment - if l.runtime_tables_selector.is_some() { - let runtime_commit = lookup_commits - .runtime - .as_ref() - .ok_or(VerifyError::IncorrectRuntimeProof)?; - absorb_commitment(&mut fq_sponge, runtime_commit); - } - } - - let joint_combiner = if let Some(l) = &index.lookup_index { - //~~ * If it involves queries to a multiple-column lookup table, - //~~ then squeeze the Fq-Sponge to obtain the joint combiner challenge $j'$, - //~~ otherwise set the joint combiner challenge $j'$ to $0$. - let joint_combiner = if l.joint_lookup_used { - fq_sponge.challenge() - } else { - G::ScalarField::zero() - }; - - //~~ * Derive the scalar joint combiner challenge $j$ from $j'$ using the endomorphism. - //~~ (TODO: specify endomorphism) - let joint_combiner = ScalarChallenge(joint_combiner); - let joint_combiner_field = joint_combiner.to_field(endo_r); - let joint_combiner = (joint_combiner, joint_combiner_field); - - Some(joint_combiner) - } else { - None - }; - - if index.lookup_index.is_some() { - let lookup_commits = proof - .commitments - .lookup - .as_ref() - .ok_or(VerifyError::LookupCommitmentMissing)?; - - //~~ * absorb the commitments to the sorted polynomials. - for com in &lookup_commits.sorted { - absorb_commitment(&mut fq_sponge, com); - } - } - - //~ 1. Sample $\beta$ with the Fq-Sponge. - let beta = fq_sponge.challenge(); - - //~ 1. Sample $\gamma$ with the Fq-Sponge. - let gamma = fq_sponge.challenge(); - - //~ 1. If using lookup, absorb the commitment to the aggregation lookup polynomial. - proof.commitments.lookup.iter().for_each(|l| { - absorb_commitment(&mut fq_sponge, &l.aggreg); - }); - - //~ 1. Absorb the commitment to the permutation trace with the Fq-Sponge. - absorb_commitment(&mut fq_sponge, &proof.commitments.z_comm); - - //~ 1. Sample $\alpha'$ with the Fq-Sponge. - let alpha_chal = ScalarChallenge(fq_sponge.challenge()); - - //~ 1. Derive $\alpha$ from $\alpha'$ using the endomorphism (TODO: details). - let alpha = alpha_chal.to_field(endo_r); - - //~ 1. Enforce that the length of the $t$ commitment is of size 7. - if proof.commitments.t_comm.unshifted.len() > chunk_size * 7 { - return Err(VerifyError::IncorrectCommitmentLength( - "t", - chunk_size * 7, - proof.commitments.t_comm.unshifted.len(), - )); - } - - //~ 1. Absorb the commitment to the quotient polynomial $t$ into the argument. - absorb_commitment(&mut fq_sponge, &proof.commitments.t_comm); - - //~ 1. Sample $\zeta'$ with the Fq-Sponge. - let zeta_chal = ScalarChallenge(fq_sponge.challenge()); - - //~ 1. Derive $\zeta$ from $\zeta'$ using the endomorphism (TODO: specify). - let zeta = zeta_chal.to_field(endo_r); - - //~ 1. Setup the Fr-Sponge. - let digest = fq_sponge.clone().digest(); - let mut fr_sponge = EFrSponge::new(G::sponge_params()); - - //~ 1. Squeeze the Fq-sponge and absorb the result with the Fr-Sponge. - fr_sponge.absorb(&digest); - - //~ 1. Absorb the previous recursion challenges. - let prev_challenge_digest = { - // Note: we absorb in a new sponge here to limit the scope in which we need the - // more-expensive 'optional sponge'. - let mut fr_sponge = EFrSponge::new(G::sponge_params()); - for RecursionChallenge { chals, .. } in &proof.prev_challenges { - fr_sponge.absorb_multiple(chals); - } - fr_sponge.digest() - }; - fr_sponge.absorb(&prev_challenge_digest); - - // prepare some often used values - let zeta1 = zeta.pow([n]); - let zetaw = zeta * index.domain.group_gen; - let evaluation_points = [zeta, zetaw]; - let powers_of_eval_points_for_chunks = PointEvaluations { - zeta: zeta.pow([index.max_poly_size as u64]), - zeta_omega: zetaw.pow([index.max_poly_size as u64]), - }; - - //~ 1. Compute evaluations for the previous recursion challenges. - let polys: Vec<(PolyComm, _)> = proof - .prev_challenges - .iter() - .map(|challenge| { - let evals = challenge.evals( - index.max_poly_size, - &evaluation_points, - &[ - powers_of_eval_points_for_chunks.zeta, - powers_of_eval_points_for_chunks.zeta_omega, - ], - ); - let RecursionChallenge { chals: _, comm } = challenge; - (comm.clone(), evals) - }) - .collect(); - - // retrieve ranges for the powers of alphas - let mut all_alphas = index.powers_of_alpha.clone(); - all_alphas.instantiate(alpha); - - let public_evals = if let Some(public_evals) = &proof.evals.public { - [public_evals.zeta.clone(), public_evals.zeta_omega.clone()] - } else if chunk_size > 1 { - return Err(VerifyError::MissingPublicInputEvaluation); - } else if let Some(public_input) = public_input { - // compute Lagrange base evaluation denominators - let w: Vec<_> = index.domain.elements().take(public_input.len()).collect(); - - let mut zeta_minus_x: Vec<_> = w.iter().map(|w| zeta - w).collect(); - - w.iter() - .take(public_input.len()) - .for_each(|w| zeta_minus_x.push(zetaw - w)); - - ark_ff::fields::batch_inversion::(&mut zeta_minus_x); - - //~ 1. Evaluate the negated public polynomial (if present) at $\zeta$ and $\zeta\omega$. - //~ - //~ NOTE: this works only in the case when the poly segment size is not smaller than that of the domain. - if public_input.is_empty() { - [vec![G::ScalarField::zero()], vec![G::ScalarField::zero()]] - } else { - [ - vec![ - (public_input - .iter() - .zip(zeta_minus_x.iter()) - .zip(index.domain.elements()) - .map(|((p, l), w)| -*l * p * w) - .fold(G::ScalarField::zero(), |x, y| x + y)) - * (zeta1 - G::ScalarField::one()) - * index.domain.size_inv, - ], - vec![ - (public_input - .iter() - .zip(zeta_minus_x[public_input.len()..].iter()) - .zip(index.domain.elements()) - .map(|((p, l), w)| -*l * p * w) - .fold(G::ScalarField::zero(), |x, y| x + y)) - * index.domain.size_inv - * (zetaw.pow([n]) - G::ScalarField::one()), - ], - ] - } - } else { - return Err(VerifyError::MissingPublicInputEvaluation); - }; - - //~ 1. Absorb the unique evaluation of ft: $ft(\zeta\omega)$. - fr_sponge.absorb(&proof.ft_eval1); - - //~ 1. Absorb all the polynomial evaluations in $\zeta$ and $\zeta\omega$: - //~~ * the public polynomial - //~~ * z - //~~ * generic selector - //~~ * poseidon selector - //~~ * the 15 register/witness - //~~ * 6 sigmas evaluations (the last one is not evaluated) - fr_sponge.absorb_multiple(&public_evals[0]); - fr_sponge.absorb_multiple(&public_evals[1]); - fr_sponge.absorb_evaluations(&proof.evals); - - //~ 1. Sample $v'$ with the Fr-Sponge. - let v_chal = fr_sponge.challenge(); - - //~ 1. Derive $v$ from $v'$ using the endomorphism (TODO: specify). - let v = v_chal.to_field(endo_r); - - //~ 1. Sample $u'$ with the Fr-Sponge. - let u_chal = fr_sponge.challenge(); - - //~ 1. Derive $u$ from $u'$ using the endomorphism (TODO: specify). - let u = u_chal.to_field(endo_r); - - //~ 1. Create a list of all polynomials that have an evaluation proof. - - let evals = proof.evals.combine(&powers_of_eval_points_for_chunks); - - //~ 1. Compute the evaluation of $ft(\zeta)$. - let ft_eval0 = { - let permutation_vanishing_polynomial = - index.permutation_vanishing_polynomial_m().evaluate(&zeta); - let zeta1m1 = zeta1 - G::ScalarField::one(); - - let mut alpha_powers = - all_alphas.get_alphas(ArgumentType::Permutation, permutation::CONSTRAINTS); - let alpha0 = alpha_powers - .next() - .expect("missing power of alpha for permutation"); - let alpha1 = alpha_powers - .next() - .expect("missing power of alpha for permutation"); - let alpha2 = alpha_powers - .next() - .expect("missing power of alpha for permutation"); - - let init = (evals.w[PERMUTS - 1].zeta + gamma) - * evals.z.zeta_omega - * alpha0 - * permutation_vanishing_polynomial; - let mut ft_eval0 = evals - .w - .iter() - .zip(evals.s.iter()) - .map(|(w, s)| (beta * s.zeta) + w.zeta + gamma) - .fold(init, |x, y| x * y); - - ft_eval0 -= DensePolynomial::eval_polynomial( - &public_evals[0], - powers_of_eval_points_for_chunks.zeta, - ); - - ft_eval0 -= evals - .w - .iter() - .zip(index.shift.iter()) - .map(|(w, s)| gamma + (beta * zeta * s) + w.zeta) - .fold( - alpha0 * permutation_vanishing_polynomial * evals.z.zeta, - |x, y| x * y, - ); - - let numerator = ((zeta1m1 * alpha1 * (zeta - index.w())) - + (zeta1m1 * alpha2 * (zeta - G::ScalarField::one()))) - * (G::ScalarField::one() - evals.z.zeta); - - let denominator = (zeta - index.w()) * (zeta - G::ScalarField::one()); - let denominator = denominator.inverse().expect("negligible probability"); - - ft_eval0 += numerator * denominator; - - let constants = Constants { - alpha, - beta, - gamma, - joint_combiner: joint_combiner.as_ref().map(|j| j.1), - endo_coefficient: index.endo, - mds: &G::sponge_params().mds, - zk_rows, - }; - - ft_eval0 -= PolishToken::evaluate( - &index.linearization.constant_term, - index.domain, - zeta, - &evals, - &constants, - ) - .unwrap(); - - ft_eval0 - }; - - let combined_inner_product = - { - let ft_eval0 = vec![ft_eval0]; - let ft_eval1 = vec![proof.ft_eval1]; - - #[allow(clippy::type_complexity)] - let mut es: Vec<(Vec>, Option)> = - polys.iter().map(|(_, e)| (e.clone(), None)).collect(); - es.push((public_evals.to_vec(), None)); - es.push((vec![ft_eval0, ft_eval1], None)); - for col in - [ - Column::Z, - Column::Index(GateType::Generic), - Column::Index(GateType::Poseidon), - Column::Index(GateType::CompleteAdd), - Column::Index(GateType::VarBaseMul), - Column::Index(GateType::EndoMul), - Column::Index(GateType::EndoMulScalar), - ] - .into_iter() - .chain((0..COLUMNS).map(Column::Witness)) - .chain((0..COLUMNS).map(Column::Coefficient)) - .chain((0..PERMUTS - 1).map(Column::Permutation)) - .chain( - index - .range_check0_comm - .as_ref() - .map(|_| Column::Index(GateType::RangeCheck0)), - ) - .chain( - index - .range_check1_comm - .as_ref() - .map(|_| Column::Index(GateType::RangeCheck1)), - ) - .chain( - index - .foreign_field_add_comm - .as_ref() - .map(|_| Column::Index(GateType::ForeignFieldAdd)), - ) - .chain( - index - .foreign_field_mul_comm - .as_ref() - .map(|_| Column::Index(GateType::ForeignFieldMul)), - ) - .chain( - index - .xor_comm - .as_ref() - .map(|_| Column::Index(GateType::Xor16)), - ) - .chain( - index - .rot_comm - .as_ref() - .map(|_| Column::Index(GateType::Rot64)), - ) - .chain( - index - .lookup_index - .as_ref() - .map(|li| { - (0..li.lookup_info.max_per_row + 1) - .map(Column::LookupSorted) - .chain([Column::LookupAggreg, Column::LookupTable].into_iter()) - .chain( - li.runtime_tables_selector - .as_ref() - .map(|_| [Column::LookupRuntimeTable].into_iter()) - .into_iter() - .flatten(), - ) - .chain( - proof - .evals - .runtime_lookup_table_selector - .as_ref() - .map(|_| Column::LookupRuntimeSelector), - ) - .chain( - proof - .evals - .xor_lookup_selector - .as_ref() - .map(|_| Column::LookupKindIndex(LookupPattern::Xor)), - ) - .chain( - proof - .evals - .lookup_gate_lookup_selector - .as_ref() - .map(|_| Column::LookupKindIndex(LookupPattern::Lookup)), - ) - .chain( - proof.evals.range_check_lookup_selector.as_ref().map(|_| { - Column::LookupKindIndex(LookupPattern::RangeCheck) - }), - ) - .chain(proof.evals.foreign_field_mul_lookup_selector.as_ref().map( - |_| Column::LookupKindIndex(LookupPattern::ForeignFieldMul), - )) - }) - .into_iter() - .flatten(), - ) - { - es.push(( - { - let evals = proof - .evals - .get_column(col) - .ok_or(VerifyError::MissingEvaluation(col))?; - vec![evals.zeta.clone(), evals.zeta_omega.clone()] - }, - None, - )) - } - - combined_inner_product(&evaluation_points, &v, &u, &es, index.srs().max_poly_size()) - }; - - let oracles = RandomOracles { - joint_combiner, - beta, - gamma, - alpha_chal, - alpha, - zeta, - v, - u, - zeta_chal, - v_chal, - u_chal, - }; - - Ok(OraclesResult { - fq_sponge, - digest, - oracles, - all_alphas, - public_evals, - powers_of_eval_points_for_chunks, - polys, - zeta1, - ft_eval0, - combined_inner_product, - }) -} From 5ab96819d7c7cba1903da75dd0448102a488f2fd Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Tue, 23 Jul 2024 12:39:15 -0300 Subject: [PATCH 02/46] Fetch Mina state hash and proof (#288) * Remove modules that won't be used in the Aligned version * Fix Markdown lint issues * Forward GraphQL port in CI * Remove domain name usage * Remove tunneling and comment Merkle path job * Uncomment Merkle path job and comment nextest step * Try port forwarding to access GraphQL * Revert "Try port forwarding to access GraphQL" This reverts commit 79084b9d1435a82aae905e40419cbd85bb44ce82. * Fetch state hash and proof and parse them * Simplify input parsing * Revert "Simplify input parsing" This reverts commit 91a1621ab1e6c7183c661a3b692a6cf2f3bf3d64. * Separate queries for hash and proof * Integrate with Aligned * Add test * Remove unwraps * Add usage section * Fetch last block from Mina (#291) * Fetch last block and simplify polling * Add public input generation * Add integration test * Read protocol state proof * Remove unnecessary ignored file * Use mina-builder as GraphQL server * Add Polling service job * Make test generate files in same dir * Fix clippy issue --- .github/workflows/ci.yaml | 7 + .github/workflows/rust_ci.yaml | 5 +- .gitignore | 6 +- Makefile | 14 + README.md | 68 +- polling_service/parser/Cargo.lock | 3074 ++++++++++++++++- polling_service/parser/Cargo.toml | 26 +- polling_service/parser/src/lib.rs | 135 + polling_service/parser/src/main.rs | 52 +- polling_service/run.sh | 35 - .../merkle_path/tests/process_input.rs | 2 +- 11 files changed, 3242 insertions(+), 182 deletions(-) create mode 100644 Makefile create mode 100644 polling_service/parser/src/lib.rs delete mode 100755 polling_service/run.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1f07a491..71a8e3f8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,3 +20,10 @@ jobs: with: skip_run: true directory: state_utility/parser + + polling_service: + name: Test Polling Service + uses: ./.github/workflows/rust_ci.yaml + with: + skip_run: true + directory: polling_service/parser diff --git a/.github/workflows/rust_ci.yaml b/.github/workflows/rust_ci.yaml index afda779a..07767749 100644 --- a/.github/workflows/rust_ci.yaml +++ b/.github/workflows/rust_ci.yaml @@ -30,9 +30,8 @@ jobs: - name: Run clippy run: /root/.cargo/bin/cargo clippy --workspace --all-targets -- -D warnings - # We skip this one for now until we solve how to access GraphQL from CI - # - name: Run nextest - # run: /root/.cargo/bin/cargo nextest run --workspace --all-targets --no-fail-fast + - name: Run nextest + run: /root/.cargo/bin/cargo nextest run --workspace --all-targets --no-fail-fast - name: Run binary if: ${{ !inputs.skip_run }} diff --git a/.gitignore b/.gitignore index 79195443..b07e07f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -/proof.json -/proof.mpk -monitor/priv/native/libverifier.so .DS_Store mina_3_0_0_devnet +protocol_state.pub +protocol_state.proof +aligned_verification_data diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..7499012b --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +.PHONY: run + +run: + @echo "Fetching Mina protocol state and its proof..." + @cargo run --manifest-path polling_service/parser/Cargo.toml --release -- ${MINA_RPC_URL} . + @echo "Done!" + @echo "Sending Mina protocol state and its proof to Aligned..." + @cargo run --manifest-path ${ALIGNED_PATH}/batcher/aligned/Cargo.toml --release -- submit \ + --proving_system Mina \ + --proof protocol_state.proof \ + --public_input protocol_state.pub \ + --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 + @echo "Done!" + diff --git a/README.md b/README.md index 1d4171a5..e6af1994 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,26 @@ This project introduces the proof generation, posting and verification of the va This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina proofs on Ethereum. +## Usage + +1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. In Mina Bridge root run: + +```sh +MINA_RPC_URL= ALIGNED_PATH= make +``` + +Where: + +- `mina_rpc_url` is the URL of the Mina node GraphQL server you want to fetch the state and its proof. +- `aligned_path` is the path of the Aligned Layer repo where you did the setup in step 1. + +For example, if you are running the Mina node locally and setup the Aligned repo in the `home` dir then run: + +```sh +MINA_RPC_URL=http://localhost:3085/graphql ALIGNED_PATH=~/aligned_layer make +``` + ## Kimchi proving system Kimchi is a zero-knowledge proof system that’s a variant of PLONK. @@ -101,8 +121,8 @@ The two curves pallas and vesta (pa(llas ve)sta) created by the [Zcash team](htt These curves are referred to as “tick” and “tock” within the Mina source code. -* Tick - Vesta (a.k.a. Step), constraint domain size 2Âč⁞ [block and transaction proofs] -* Tock - Pallas (a.k.a. Wrap), constraint domain size 2ÂčÂČ [signatures] +- Tick - Vesta (a.k.a. Step), constraint domain size 2Âč⁞ [block and transaction proofs] +- Tock - Pallas (a.k.a. Wrap), constraint domain size 2ÂčÂČ [signatures] The Tock prover does less (only performs recursive verifications and no other logic), so it requires fewer constraints and has a smaller @@ -115,9 +135,9 @@ Tock is used to prove the verification of a Tick proof and outputs a Tick proof. Tick is used to prove the verification of a Tock proof and outputs a Tock proof. In other words, -* Prove_tock ( Verify(_Tick_) ) = Tick_proof +- Prove_tock ( Verify(_Tick_) ) = Tick_proof -* Prove_tick (Verify(_Tock_) ) = Tock_proof +- Prove_tick (Verify(_Tock_) ) = Tock_proof ![Description](/img/palas_vesta.png) @@ -125,15 +145,15 @@ Both Tick and Tock can verify at most 2 proofs of the opposite kind, though, the Currently, in Mina we have the following situation. -* Every Tock always wraps 1 Tick proof. -* Tick proofs can verify 2 Tock proofs - * Blockchain SNARK takes previous blockchain SNARK proof and a transaction proof - * Verifying two Tock transaction proofs +- Every Tock always wraps 1 Tick proof. +- Tick proofs can verify 2 Tock proofs + - Blockchain SNARK takes previous blockchain SNARK proof and a transaction proof + - Verifying two Tock transaction proofs Pickles works over [Pasta](https://o1-labs.github.io/proof-systems/specs/pasta.html), a cycle of curves consisting of Pallas and Vesta, and thus it defines two generic circuits, one for each curve. Each can be thought of as a parallel instantiation of a kimchi proof systems. These circuits are not symmetric and have somewhat different function: -* **Step circuit**: this is the main circuit that contains application logic. Each step circuit verifies a statement and potentially several (at most 2) other wrap proofs. -* **Wrap circuit**: this circuit merely verifies the step circuit, and does not have its own application logic. The intuition is that every time an application statement is proven it’s done in Step, and then the resulting proof is immediately wrapped using Wrap. +- **Step circuit**: this is the main circuit that contains application logic. Each step circuit verifies a statement and potentially several (at most 2) other wrap proofs. +- **Wrap circuit**: this circuit merely verifies the step circuit, and does not have its own application logic. The intuition is that every time an application statement is proven it’s done in Step, and then the resulting proof is immediately wrapped using Wrap. --- @@ -225,9 +245,9 @@ The proof **Pi** is divided into 2 parts, one corresponding to group operations Mina employs [Ouroboros Samasika](https://eprint.iacr.org/2020/352.pdf) as its consensus mechanism, which will be subsequently denoted as Samasika. Three essential commitments provided include: -* High decentralization - Self-bootstrap, uncapped participation and dynamic availability -* Succinctness - Constant-time synchronization with full-validation and high interoperability -* Universal composability - Proven security for interacting with other protocols, no slashing required +- High decentralization - Self-bootstrap, uncapped participation and dynamic availability +- Succinctness - Constant-time synchronization with full-validation and high interoperability +- Universal composability - Proven security for interacting with other protocols, no slashing required Joseph Bonneau, Izaak Meckler, Vanishree Rao, and Evan Shapiro collaborated to create Samasika, establishing it as the initial succinct blockchain consensus algorithm. The complexity of fully verifying the entire blockchain is independent of chain length. @@ -251,13 +271,13 @@ The reasoning is that the critical window of the honest chain is very likely to Samasika employs decentralized checkpointing to discern the nature of a fork, categorizing it as either short-range or long-range. -* **Start checkpoint** - State hash of the first block of the epoch. -* **Lock checkpoint** - State hash of the last known block in the seed update range of an epoch (not including the current block) +- **Start checkpoint** - State hash of the first block of the epoch. +- **Lock checkpoint** - State hash of the last known block in the seed update range of an epoch (not including the current block) Remember, a fork is categorized as short-range if either: -* The fork point of the candidate chains are in the same epoch. -* The fork point is in the previous epoch with the same ``lock_checkpoint`` +- The fork point of the candidate chains are in the same epoch. +- The fork point is in the previous epoch with the same ``lock_checkpoint`` As Mina prioritizes succinctness, it implies the need to maintain checkpoints for both the current and the previous epoch. @@ -273,13 +293,13 @@ Let describe Mina's succinct sliding window density algorithm used by the long-r #### Nomenclature -* We say a slot is _filled_ if it contains a valid non-orphaned block. -* An _w-window_ is a sequential list of slots s1,...,sw of length _w_. -* A _sub-window_ is a contiguous interval of a _w-window_. -* The _density_ of an w-window (or sub-window) is the number non-orphan block within it. -* We use the terms _window_, _density window_, _sliding window_ and _w-window_ synonymously. -* v is the Length by which the window shifts in slots (shift parameter). ``slots_per_sub_window`` -* w is the Window length in slots. ( the sliding window is a _w_-long window that shifts _v_-slots at a time). +- We say a slot is _filled_ if it contains a valid non-orphaned block. +- An _w-window_ is a sequential list of slots s1,...,sw of length _w_. +- A _sub-window_ is a contiguous interval of a _w-window_. +- The _density_ of an w-window (or sub-window) is the number non-orphan block within it. +- We use the terms _window_, _density window_, _sliding window_ and _w-window_ synonymously. +- v is the Length by which the window shifts in slots (shift parameter). ``slots_per_sub_window`` +- w is the Window length in slots. ( the sliding window is a _w_-long window that shifts _v_-slots at a time). The Samasika research paper presents security proofs that determine the secure values for v, w, and sub-windows per window. A sliding window can also be viewed as a collection of _sub-windows_. diff --git a/polling_service/parser/Cargo.lock b/polling_service/parser/Cargo.lock index 8439f4e7..0a6de2ec 100644 --- a/polling_service/parser/Cargo.lock +++ b/polling_service/parser/Cargo.lock @@ -3,166 +3,3096 @@ version = 3 [[package]] -name = "autocfg" -version = "1.1.0" +name = "addr2line" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] [[package]] -name = "byteorder" -version = "1.5.0" +name = "adler" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "hex" -version = "0.4.3" +name = "ahash" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] [[package]] -name = "itoa" -version = "1.0.9" +name = "android-tzdata" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" [[package]] -name = "num-bigint" -version = "0.4.4" +name = "android_system_properties" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ - "autocfg", - "num-integer", + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "ark-ec" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", "num-traits", + "rayon", + "zeroize", ] [[package]] -name = "num-integer" -version = "0.1.45" +name = "ark-ff" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rayon", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.11.2", + "rayon", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ - "autocfg", "num-traits", + "rand", + "rayon", ] [[package]] -name = "num-traits" -version = "0.2.17" +name = "arrayref" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "async-channel" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ - "autocfg", + "concurrent-queue", + "event-listener", + "futures-core", ] [[package]] -name = "parser" -version = "0.1.0" +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" dependencies = [ - "hex", - "num-bigint", - "rmp-serde", "serde", - "serde_json", + "thiserror", ] [[package]] -name = "paste" -version = "1.0.14" +name = "binprot" +version = "0.1.8" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "binprot_derive", + "byteorder", + "md5", +] + +[[package]] +name = "binprot_derive" +version = "0.1.7" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bitflags" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "proc-macro2" -version = "1.0.69" +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ - "unicode-ident", + "funty", + "radium", + "tap", + "wyz", ] [[package]] -name = "quote" -version = "1.0.33" +name = "blake2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "proc-macro2", + "digest 0.10.7", ] [[package]] -name = "rmp" -version = "0.8.12" +name = "blake2b_simd" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ - "byteorder", + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" + +[[package]] +name = "cc" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", "num-traits", - "paste", + "serde", + "wasm-bindgen", + "windows-targets 0.52.6", ] [[package]] -name = "rmp-serde" +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "critical-section" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "byteorder", - "rmp", - "serde", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] -name = "ryu" -version = "1.0.15" +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] -name = "serde" -version = "1.0.190" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "serde_derive", + "generic-array", + "typenum", ] [[package]] -name = "serde_derive" -version = "1.0.190" +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling_core" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ + "fnv", + "ident_case", "proc-macro2", "quote", - "syn", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] -name = "serde_json" -version = "1.0.108" +name = "darling_core" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ - "itoa", - "ryu", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.72", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", "serde", ] [[package]] -name = "syn" -version = "2.0.39" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "unicode-ident", + "syn 1.0.109", ] +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn 2.0.72", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", + "subtle", +] + +[[package]] +name = "disjoint-set" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "groupmap" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "rand", +] + +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.0", + "serde", + "spin", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[package]] +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kimchi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "blake2", + "disjoint-set", + "groupmap", + "hex", + "itertools", + "mina-curves", + "mina-poseidon", + "num-bigint", + "num-derive", + "num-integer", + "num-traits", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "poly-commitment", + "rand", + "rand_core", + "rayon", + "rmp-serde", + "serde", + "serde_with 1.14.0", + "strum", + "strum_macros", + "thiserror", + "turshi", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "linkme" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mina-curves" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", +] + +[[package]] +name = "mina-hasher" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff", + "bitvec", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "serde", +] + +[[package]] +name = "mina-p2p-messages" +version = "0.6.4" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff", + "base64 0.13.1", + "binprot", + "binprot_derive", + "blake2", + "bs58", + "derive_more", + "hex", + "mina-curves", + "mina-hasher", + "mina-poseidon", + "mina-signer", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rsexp", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "time", +] + +[[package]] +name = "mina-poseidon" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "mina-curves", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rayon", + "serde", + "serde_with 1.14.0", +] + +[[package]] +name = "mina-signer" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "bitvec", + "blake2", + "bs58", + "hex", + "mina-curves", + "mina-hasher", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "mina-tree" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "anyhow", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "backtrace", + "base64 0.13.1", + "bitvec", + "blake2", + "bs58", + "chrono", + "crc32fast", + "derive_more", + "getrandom", + "hex", + "itertools", + "kimchi", + "lazy_static", + "libc", + "mina-curves", + "mina-hasher", + "mina-p2p-messages", + "mina-poseidon", + "mina-signer", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "openmina-core", + "poly-commitment", + "postcard", + "rand", + "rand_pcg", + "rand_seeder", + "rayon", + "serde", + "serde_json", + "serde_with 3.9.0", + "sha2 0.10.8", + "static_assertions", + "thiserror", + "tuple-map", + "uuid", + "wasm-bindgen", + "wasm_thread", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.8", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand", + "serde", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 3.9.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "object" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "openmina-core" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff", + "binprot", + "binprot_derive", + "hex", + "lazy_static", + "md5", + "mina-hasher", + "mina-p2p-messages", + "multihash", + "openmina-macros", + "redux", + "serde", + "sha2 0.10.8", + "slab", + "time", + "tokio", + "tracing", +] + +[[package]] +name = "openmina-macros" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] + +[[package]] +name = "parser" +version = "0.1.0" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "kimchi", + "mina-curves", + "mina-p2p-messages", + "mina-tree", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "poly-commitment", + "reqwest", + "serde", + "serde_json", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "poly-commitment" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "blake2", + "groupmap", + "itertools", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "thiserror", +] + +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_seeder" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redux" +version = "0.1.0" +source = "git+https://github.com/openmina/redux-rs.git?rev=2d1d8db#2d1d8dbd7239c0aec91db8f11126b90068dc848b" +dependencies = [ + "enum_dispatch", + "linkme", + "paste", + "serde", + "wasm-timer", +] + +[[package]] +name = "reqwest" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rsexp" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3df9a9b6491d42c0fc527e92a87525c17e45c6b9c22345702a6dc0400320bf1" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.23.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_json" +version = "1.0.120" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.2.6", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros 3.9.0", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", + "serde", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tuple-map" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62" + +[[package]] +name = "turshi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff", + "hex", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +dependencies = [ + "getrandom", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "git+https://github.com/fusetim/wasm-timer?branch=tim-add-missing-methods#39e1c2818944f804d68d64dae0d5639d22b0e59e" +dependencies = [ + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm_thread" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52fc987e67957cab58160d1ea273a2886972ef6f59c7fa0c02e9fe2c8e11706" +dependencies = [ + "async-channel", + "futures", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] diff --git a/polling_service/parser/Cargo.toml b/polling_service/parser/Cargo.toml index c12a9b25..ae45edb9 100644 --- a/polling_service/parser/Cargo.toml +++ b/polling_service/parser/Cargo.toml @@ -3,11 +3,23 @@ name = "parser" version = "0.1.0" edition = "2021" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -num-bigint = "0.4.3" -rmp-serde = "1.1.2" -hex = "0.4.3" +reqwest = { version = "0.12", features = ["blocking"] } +serde_json = "1.0.108" +serde = { version = "1.0.192", features = ["derive"] } +kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +poly-commitment = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } +ark-ff = { version = "0.3.0", features = ["parallel", "asm"] } +ark-ec = { version = "0.3.0", features = ["parallel"] } +ark-poly = { version = "0.3.0", features = ["parallel"] } +ark-serialize = "0.3.0" +mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } +mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } + +[patch.crates-io] +ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-ec = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-poly = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-serialize = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/polling_service/parser/src/lib.rs b/polling_service/parser/src/lib.rs new file mode 100644 index 00000000..54d47627 --- /dev/null +++ b/polling_service/parser/src/lib.rs @@ -0,0 +1,135 @@ +use std::{fs, str::FromStr as _}; + +use kimchi::o1_utils::FieldHelpers; +use mina_curves::pasta::Fp; +use reqwest::header::CONTENT_TYPE; + +pub fn parse_public_input( + rpc_url: &str, + proof_path: &str, + public_input_path: &str, +) -> Result<(), String> { + let response_value = query_to_mina_node(rpc_url)?; + + let proof = serialize_protocol_state_proof(&response_value)?; + + let mut public_input = serialize_state_hash_field(&response_value)?; + public_input.extend(serialize_protocol_state(&response_value)?); + + fs::write(proof_path, proof) + .map_err(|err| format!("Error writing state proof to file: {err}"))?; + fs::write(public_input_path, public_input) + .map_err(|err| format!("Error writing public input to file: {err}")) +} + +fn query_to_mina_node(rpc_url: &str) -> Result { + let body = "{\"query\": \"{ + protocolState(encoding: BASE64) + bestChain(maxLength: 1) { + stateHashField + protocolStateProof { + base64 + } + } + }\"}" + .to_owned(); + let client = reqwest::blocking::Client::new(); + let response = client + .post(rpc_url) + .header(CONTENT_TYPE, "application/json") + .body(body) + .send() + .map_err(|err| err.to_string())? + .text() + .map_err(|err| err.to_string())?; + let response_value = serde_json::Value::from_str(&response).map_err(|err| err.to_string())?; + + response_value.get("data").cloned().ok_or(format!( + "Error getting 'data' from response: {:?}", + response + )) +} + +fn serialize_state_hash_field(response_value: &serde_json::Value) -> Result, String> { + let state_hash_field_str = response_value + .get("bestChain") + .and_then(|d| d.get(0)) + .and_then(|d| d.get("stateHashField")) + .ok_or(format!( + "Error getting 'bestChain[0].stateHashField' from {:?}", + response_value + ))? + .as_str() + .ok_or(format!( + "Error converting state hash value to string: {:?}", + response_value, + ))?; + let state_hash_field = Fp::from_str(state_hash_field_str).map_err(|_| { + format!( + "Error converting state hash to field: {:?}", + &state_hash_field_str + ) + })?; + let state_hash_field_bytes = state_hash_field.to_bytes(); + + Ok(state_hash_field_bytes) +} + +fn serialize_protocol_state(response_value: &serde_json::Value) -> Result, String> { + let protocol_state_str = response_value + .get("protocolState") + .ok_or(format!( + "Error getting 'protocolState' from {:?}", + response_value + ))? + .as_str() + .ok_or(format!( + "Error converting protocol state value to string: {:?}", + response_value, + ))?; + let protocol_state_bytes = protocol_state_str.as_bytes().to_vec(); + + Ok(protocol_state_bytes) +} + +fn serialize_protocol_state_proof(response_value: &serde_json::Value) -> Result, String> { + let protocol_state_proof_str = response_value + .get("bestChain") + .and_then(|d| d.get(0)) + .and_then(|d| d.get("protocolStateProof")) + .and_then(|d| d.get("base64")) + .ok_or(format!( + "Error getting 'bestChain[0].protocolStateProof.base64' from {:?}", + response_value + ))? + .as_str() + .ok_or(format!( + "Error converting protocol state proof value to string: {:?}", + response_value, + ))?; + let protocol_state_proof_bytes = protocol_state_proof_str.as_bytes().to_vec(); + + Ok(protocol_state_proof_bytes) +} + +#[cfg(test)] +mod tests { + use std::path::PathBuf; + + use crate::parse_public_input; + + #[test] + fn serialize_and_deserialize() { + let mut proof_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + proof_path.push("protocol_state.proof"); + let mut public_input_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + public_input_path.push("protocol_state.pub"); + + parse_public_input( + "http://5.9.57.89:3085/graphql", + proof_path.to_str().unwrap(), + public_input_path.to_str().unwrap(), + ) + .unwrap(); + } +} diff --git a/polling_service/parser/src/main.rs b/polling_service/parser/src/main.rs index b9038a52..084f093c 100644 --- a/polling_service/parser/src/main.rs +++ b/polling_service/parser/src/main.rs @@ -1,43 +1,21 @@ -use serde_json::Value; -use std::env; -use std::fs; +use std::path::PathBuf; -// Example: -// {"data":{"bestChain":[{"creator":"B62qoA5XwfEVnXbcrzphGH1TVuqxeJ5bhX7vTS3hcxpQFHnStG3MQk9","stateHashField":"24924803968503832121419666918600454255868948649936693214146949523817136720847","protocolState":{"consensusState":{"blockHeight":"303201"}}}]}}% +use parser::parse_public_input; -fn main() { - let args: Vec<_> = env::args().collect(); - let query = serde_json::from_str::(&args[1]).unwrap(); - let query = query - .get("data") - .and_then(|v| v.get("bestChain")) - .and_then(|v| v.get(0)) - .unwrap(); +pub fn main() -> Result<(), String> { + let args: Vec = std::env::args().collect(); + let rpc_url = args.get(1).ok_or("Error: No RPC URL provided")?; + let output_path = args.get(2).ok_or("Error: No output path provided")?; - let state = parse_and_serialize_state(query); - let proof = parse_proof(query); - fs::write("../eth_verifier/state.mpk", state).unwrap(); - fs::write("../verifier_circuit/src/proof.json", proof).unwrap(); -} - -fn parse_and_serialize_state(query: &Value) -> Vec { - let creator = query.get("creator").and_then(Value::as_str).unwrap(); - let hash = query.get("stateHashField").and_then(Value::as_str).unwrap(); - let height = query - .get("protocolState") - .and_then(|v| v.get("consensusState")) - .and_then(|v| v.get("blockHeight")) - .and_then(Value::as_str) - .unwrap(); + let mut proof_path_buf = PathBuf::from(output_path); + proof_path_buf.push("protocol_state.proof"); - let data = vec![creator, hash, height]; - rmp_serde::to_vec(&data).unwrap() -} + let mut public_input_path_buf = PathBuf::from(output_path); + public_input_path_buf.push("protocol_state.pub"); -fn parse_proof(query: &Value) -> String { - query - .get("protocolStateProof") - .and_then(|v| v.get("json")) - .unwrap() - .to_string() + parse_public_input( + rpc_url, + proof_path_buf.to_str().unwrap(), + public_input_path_buf.to_str().unwrap(), + ) } diff --git a/polling_service/run.sh b/polling_service/run.sh deleted file mode 100755 index 60b7294b..00000000 --- a/polling_service/run.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -fetch() { - curl -d '{"query": "{ - bestChain(maxLength: 1) { - creator - stateHashField - protocolState { - consensusState { - blockHeight - } - } - - protocolStateProof { - json - } - } - }"}' -H 'Content-Type: application/json' $MINA_RPC_URL -} - -DATA=$(fetch) - -if [ $? -eq 0 ]; then - echo $PROOF | grep 'errors' - - if [ $? -eq 0 ]; then - echo >&2 "Warning: Mina node is not synced. Using old proof file." - else - cargo run --manifest-path parser/Cargo.toml --release -- $DATA - echo "State proof fetched from Mina node successfully!" - fi -else - echo >&2 "Warning: Couldn't connect to Mina node. Using old proof file." -fi - diff --git a/state_utility/merkle_path/tests/process_input.rs b/state_utility/merkle_path/tests/process_input.rs index 44c2f204..0153d051 100644 --- a/state_utility/merkle_path/tests/process_input.rs +++ b/state_utility/merkle_path/tests/process_input.rs @@ -4,7 +4,7 @@ mod test { #[test] fn test_input_json() { process_input_json( - "http://127.0.0.1:3085/graphql", + "http://5.9.57.89:3085/graphql", "./tests/public_key.txt", "./tests/leaf_hash.bin", "./tests/merkle_path.bin", From dff28c5bcbedc8c4c7c501e83a8472323edb0d81 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 24 Jul 2024 17:49:14 -0300 Subject: [PATCH 03/46] Send hardcoded tip for consensus check (#292) * Send hardocoded (for now) tip data * Adapt to new state size --- polling_service/parser/src/lib.rs | 43 ++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/polling_service/parser/src/lib.rs b/polling_service/parser/src/lib.rs index 54d47627..801ed4ec 100644 --- a/polling_service/parser/src/lib.rs +++ b/polling_service/parser/src/lib.rs @@ -4,17 +4,32 @@ use kimchi::o1_utils::FieldHelpers; use mina_curves::pasta::Fp; use reqwest::header::CONTENT_TYPE; +const STATE_HASH_SIZE: usize = 32; +const PROTOCOL_STATE_SIZE: usize = 2056; + +// TODO(gabrielbosio): These are temporary, we will fetch the tip from the Mina contract instead of using these hardcoded values. +const TIP_PROTOCOL_STATE: &str = "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"; +const TIP_STATE_HASH_FIELD: &str = + "26201757517054449641912404249424749469164718222967816857204695395894215860942"; + pub fn parse_public_input( rpc_url: &str, proof_path: &str, public_input_path: &str, ) -> Result<(), String> { - let response_value = query_to_mina_node(rpc_url)?; + let tip_state_hash_field = serialize_state_hash_field(TIP_STATE_HASH_FIELD) + .map_err(|err| format!("Error serializing tip's state hash field: {err}"))?; + let tip_protocol_state = serialize_protocol_state(TIP_PROTOCOL_STATE) + .map_err(|err| format!("Error serializing tip's protocol state: {err}"))?; + + let last_block_value = query_last_block(rpc_url)?; - let proof = serialize_protocol_state_proof(&response_value)?; + let proof = serialize_protocol_state_proof(&last_block_value)?; - let mut public_input = serialize_state_hash_field(&response_value)?; - public_input.extend(serialize_protocol_state(&response_value)?); + let mut public_input = get_state_hash_field(&last_block_value)?; + public_input.extend(get_protocol_state(&last_block_value)?); + public_input.extend(tip_state_hash_field); + public_input.extend(tip_protocol_state); fs::write(proof_path, proof) .map_err(|err| format!("Error writing state proof to file: {err}"))?; @@ -22,7 +37,7 @@ pub fn parse_public_input( .map_err(|err| format!("Error writing public input to file: {err}")) } -fn query_to_mina_node(rpc_url: &str) -> Result { +fn query_last_block(rpc_url: &str) -> Result { let body = "{\"query\": \"{ protocolState(encoding: BASE64) bestChain(maxLength: 1) { @@ -50,7 +65,7 @@ fn query_to_mina_node(rpc_url: &str) -> Result { )) } -fn serialize_state_hash_field(response_value: &serde_json::Value) -> Result, String> { +fn get_state_hash_field(response_value: &serde_json::Value) -> Result, String> { let state_hash_field_str = response_value .get("bestChain") .and_then(|d| d.get(0)) @@ -64,6 +79,11 @@ fn serialize_state_hash_field(response_value: &serde_json::Value) -> Result Result, String> { let state_hash_field = Fp::from_str(state_hash_field_str).map_err(|_| { format!( "Error converting state hash to field: {:?}", @@ -72,10 +92,12 @@ fn serialize_state_hash_field(response_value: &serde_json::Value) -> Result Result, String> { +fn get_protocol_state(response_value: &serde_json::Value) -> Result, String> { let protocol_state_str = response_value .get("protocolState") .ok_or(format!( @@ -87,8 +109,15 @@ fn serialize_protocol_state(response_value: &serde_json::Value) -> Result Result, String> { let protocol_state_bytes = protocol_state_str.as_bytes().to_vec(); + debug_assert_eq!(protocol_state_bytes.len(), PROTOCOL_STATE_SIZE); + Ok(protocol_state_bytes) } From 6d4ad4b20abdadebe84480cb243876f544afa950 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 25 Jul 2024 12:52:50 -0300 Subject: [PATCH 04/46] State size in protocol state public input (#297) * Add state size to public input * Cast state len to u32 --- polling_service/parser/src/lib.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/polling_service/parser/src/lib.rs b/polling_service/parser/src/lib.rs index 801ed4ec..0b3c3335 100644 --- a/polling_service/parser/src/lib.rs +++ b/polling_service/parser/src/lib.rs @@ -5,7 +5,6 @@ use mina_curves::pasta::Fp; use reqwest::header::CONTENT_TYPE; const STATE_HASH_SIZE: usize = 32; -const PROTOCOL_STATE_SIZE: usize = 2056; // TODO(gabrielbosio): These are temporary, we will fetch the tip from the Mina contract instead of using these hardcoded values. const TIP_PROTOCOL_STATE: &str = "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"; @@ -21,14 +20,24 @@ pub fn parse_public_input( .map_err(|err| format!("Error serializing tip's state hash field: {err}"))?; let tip_protocol_state = serialize_protocol_state(TIP_PROTOCOL_STATE) .map_err(|err| format!("Error serializing tip's protocol state: {err}"))?; + let tip_protocol_state_len = tip_protocol_state.len() as u32; + let mut tip_protocol_state_len_bytes = [0; 4]; + tip_protocol_state_len_bytes.copy_from_slice(&tip_protocol_state_len.to_be_bytes()); let last_block_value = query_last_block(rpc_url)?; let proof = serialize_protocol_state_proof(&last_block_value)?; + let candidate_protocol_state = get_protocol_state(&last_block_value)?; + let candidate_protocol_state_len = candidate_protocol_state.len() as u32; + let mut candidate_protocol_state_len_bytes = [0; 4]; + candidate_protocol_state_len_bytes.copy_from_slice(&candidate_protocol_state_len.to_be_bytes()); + let mut public_input = get_state_hash_field(&last_block_value)?; - public_input.extend(get_protocol_state(&last_block_value)?); + public_input.extend(candidate_protocol_state_len_bytes); + public_input.extend(candidate_protocol_state); public_input.extend(tip_state_hash_field); + public_input.extend(tip_protocol_state_len_bytes); public_input.extend(tip_protocol_state); fs::write(proof_path, proof) @@ -116,8 +125,6 @@ fn get_protocol_state(response_value: &serde_json::Value) -> Result, Str fn serialize_protocol_state(protocol_state_str: &str) -> Result, String> { let protocol_state_bytes = protocol_state_str.as_bytes().to_vec(); - debug_assert_eq!(protocol_state_bytes.len(), PROTOCOL_STATE_SIZE); - Ok(protocol_state_bytes) } From 94d49e418814721190df3f4c9fbdf5c411d670c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 25 Jul 2024 16:09:30 -0300 Subject: [PATCH 05/46] Core program and Aligned polling serivce (#296) * Renamed polling service to core * Reorg core * WIP aligned_polling_service * Implemented submit function to aligned service * Added tokio and called submit proof function * Added dotenv and default values for some variables * Added logging * Fixed batcher address * Better logging * Update logs * Update Makefile * Update README * Fix CI --- .github/workflows/ci.yaml | 14 +- Makefile | 11 +- README.md | 15 +- core/.env.template | 9 + {polling_service/parser => core}/.gitignore | 1 + {polling_service/parser => core}/Cargo.lock | 2551 ++++++++++++++++- {polling_service/parser => core}/Cargo.toml | 12 +- core/src/aligned_polling_service.rs | 103 + core/src/lib.rs | 7 + core/src/main.rs | 41 + .../src/mina_polling_service.rs | 56 +- polling_service/parser/src/main.rs | 21 - 12 files changed, 2676 insertions(+), 165 deletions(-) create mode 100644 core/.env.template rename {polling_service/parser => core}/.gitignore (61%) rename {polling_service/parser => core}/Cargo.lock (57%) rename {polling_service/parser => core}/Cargo.toml (80%) create mode 100644 core/src/aligned_polling_service.rs create mode 100644 core/src/lib.rs create mode 100644 core/src/main.rs rename polling_service/parser/src/lib.rs => core/src/mina_polling_service.rs (84%) delete mode 100644 polling_service/parser/src/main.rs diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 71a8e3f8..8e5af6b8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,6 +7,13 @@ on: branches: ["*"] jobs: + core: + name: Test Core + uses: ./.github/workflows/rust_ci.yaml + with: + skip_run: true + directory: core + merkle_path: name: Test Merkle Path parser uses: ./.github/workflows/rust_ci.yaml @@ -20,10 +27,3 @@ jobs: with: skip_run: true directory: state_utility/parser - - polling_service: - name: Test Polling Service - uses: ./.github/workflows/rust_ci.yaml - with: - skip_run: true - directory: polling_service/parser diff --git a/Makefile b/Makefile index 7499012b..623873e5 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,5 @@ .PHONY: run run: - @echo "Fetching Mina protocol state and its proof..." - @cargo run --manifest-path polling_service/parser/Cargo.toml --release -- ${MINA_RPC_URL} . - @echo "Done!" - @echo "Sending Mina protocol state and its proof to Aligned..." - @cargo run --manifest-path ${ALIGNED_PATH}/batcher/aligned/Cargo.toml --release -- submit \ - --proving_system Mina \ - --proof protocol_state.proof \ - --public_input protocol_state.pub \ - --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 - @echo "Done!" + @cargo run --manifest-path core/Cargo.toml --release diff --git a/README.md b/README.md index e6af1994..a916cf4e 100644 --- a/README.md +++ b/README.md @@ -11,21 +11,10 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan ## Usage 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. 1. In Mina Bridge root run: - -```sh -MINA_RPC_URL= ALIGNED_PATH= make -``` - -Where: - -- `mina_rpc_url` is the URL of the Mina node GraphQL server you want to fetch the state and its proof. -- `aligned_path` is the path of the Aligned Layer repo where you did the setup in step 1. - -For example, if you are running the Mina node locally and setup the Aligned repo in the `home` dir then run: - ```sh -MINA_RPC_URL=http://localhost:3085/graphql ALIGNED_PATH=~/aligned_layer make +make ``` ## Kimchi proving system diff --git a/core/.env.template b/core/.env.template new file mode 100644 index 00000000..c4b63869 --- /dev/null +++ b/core/.env.template @@ -0,0 +1,9 @@ +ETH_CHAIN= +MINA_RPC_URL= + +# These can be skipped if using devnet with Anvil. +BATCHER_ADDR= +BATCHER_ETH_ADDR= +ETH_RPC_URL= +KEYSTORE_PATH= +PRIVATE_KEY= diff --git a/polling_service/parser/.gitignore b/core/.gitignore similarity index 61% rename from polling_service/parser/.gitignore rename to core/.gitignore index 2f7896d1..14ee5009 100644 --- a/polling_service/parser/.gitignore +++ b/core/.gitignore @@ -1 +1,2 @@ target/ +.env diff --git a/polling_service/parser/Cargo.lock b/core/Cargo.lock similarity index 57% rename from polling_service/parser/Cargo.lock rename to core/Cargo.lock index 0a6de2ec..7897216e 100644 --- a/polling_service/parser/Cargo.lock +++ b/core/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + [[package]] name = "addr2line" version = "0.22.0" @@ -17,6 +27,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + [[package]] name = "ahash" version = "0.7.8" @@ -28,6 +49,33 @@ dependencies = [ "version_check", ] +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aligned-sdk" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#cdb24383e04f785302b61a3f0131d31a8051dc0d" +dependencies = [ + "ethers", + "futures-util", + "hex", + "lambdaworks-crypto", + "log", + "serde", + "serde_json", + "sha3", + "tokio", + "tokio-tungstenite 0.23.1", + "url", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -43,6 +91,55 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + [[package]] name = "anyhow" version = "1.0.86" @@ -157,6 +254,15 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -168,6 +274,28 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-trait" +version = "0.1.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.0", +] + [[package]] name = "atomic-polyfill" version = "1.0.3" @@ -183,6 +311,17 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "autocfg" version = "1.3.0" @@ -204,18 +343,36 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "bcs" version = "0.1.6" @@ -226,6 +383,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "binprot" version = "0.1.8" @@ -245,6 +408,21 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bitflags" version = "1.3.2" @@ -286,7 +464,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq", + "constant_time_eq 0.3.0", ] [[package]] @@ -297,7 +475,7 @@ checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq", + "constant_time_eq 0.3.0", ] [[package]] @@ -310,7 +488,7 @@ dependencies = [ "arrayvec", "cc", "cfg-if", - "constant_time_eq", + "constant_time_eq 0.3.0", ] [[package]] @@ -340,12 +518,28 @@ dependencies = [ "sha2 0.9.9", ] +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + [[package]] name = "bumpalo" version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + [[package]] name = "byteorder" version = "1.5.0" @@ -357,12 +551,72 @@ name = "bytes" version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] [[package]] name = "cc" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +dependencies = [ + "jobserver", + "libc", +] [[package]] name = "cfg-if" @@ -385,12 +639,80 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "cobs" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -400,6 +722,31 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + [[package]] name = "constant_time_eq" version = "0.3.0" @@ -412,6 +759,32 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "core" +version = "0.1.0" +dependencies = [ + "aligned-sdk", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "dotenv", + "env_logger", + "ethers", + "kimchi", + "log", + "mina-curves", + "mina-p2p-messages", + "mina-tree", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "poly-commitment", + "reqwest 0.12.5", + "rpassword", + "serde", + "serde_json", + "tokio", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -487,17 +860,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] -name = "crypto-common" -version = "0.1.6" +name = "crunchy" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "typenum", + "rand_core", + "subtle", + "zeroize", ] [[package]] -name = "darling" +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "darling" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" @@ -566,6 +966,22 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "deranged" version = "0.3.11" @@ -616,28 +1032,125 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + [[package]] name = "disjoint-set" version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + [[package]] name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "embedded-io" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + [[package]] name = "encoding_rs" version = "0.8.34" @@ -647,6 +1160,24 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256", + "log", + "rand", + "rlp", + "serde", + "sha3", + "zeroize", +] + [[package]] name = "enum_dispatch" version = "0.3.13" @@ -660,32 +1191,411 @@ dependencies = [ ] [[package]] -name = "equivalent" -version = "1.0.1" +name = "env_filter" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "reqwest 0.11.27", + "serde", + "serde_json", + "syn 2.0.72", + "toml 0.8.15", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.72", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum", + "once_cell", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum 0.26.3", + "syn 2.0.72", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "chrono", + "ethers-core", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.22.1", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-channel", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http 0.2.12", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite 0.20.1", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "cfg-if", + "const-hex", + "dirs", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver 1.0.23", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "ff" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] [[package]] -name = "errno" -version = "0.3.9" +name = "fixed-hash" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ - "libc", - "windows-sys 0.52.0", + "byteorder", + "rand", + "rustc-hex", + "static_assertions", ] [[package]] -name = "event-listener" -version = "2.5.3" +name = "fixedbitset" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] -name = "fastrand" -version = "2.1.0" +name = "flate2" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] [[package]] name = "fnv" @@ -717,6 +1627,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "funty" version = "2.0.0" @@ -771,6 +1691,16 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + [[package]] name = "futures-macro" version = "0.3.30" @@ -794,6 +1724,16 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + [[package]] name = "futures-util" version = "0.3.30" @@ -812,6 +1752,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -820,6 +1769,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -841,6 +1791,35 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + [[package]] name = "groupmap" version = "0.1.0" @@ -851,6 +1830,25 @@ dependencies = [ "rand", ] +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "h2" version = "0.4.5" @@ -862,7 +1860,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http", + "http 1.1.0", "indexmap 2.2.6", "slab", "tokio", @@ -900,6 +1898,15 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + [[package]] name = "heapless" version = "0.7.17" @@ -910,7 +1917,7 @@ dependencies = [ "hash32", "rustc_version 0.4.0", "serde", - "spin", + "spin 0.9.8", "stable_deref_trait", ] @@ -920,6 +1927,18 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + [[package]] name = "hex" version = "0.4.3" @@ -929,6 +1948,35 @@ dependencies = [ "serde", ] +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" version = "1.1.0" @@ -940,6 +1988,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + [[package]] name = "http-body" version = "1.0.1" @@ -947,7 +2006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.1.0", ] [[package]] @@ -958,8 +2017,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -969,6 +2028,42 @@ version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "hyper" version = "1.4.1" @@ -978,9 +2073,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", "httparse", "itoa", "pin-project-lite", @@ -989,6 +2084,20 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.30", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + [[package]] name = "hyper-rustls" version = "0.27.2" @@ -996,13 +2105,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", - "http", - "hyper", + "http 1.1.0", + "hyper 1.4.1", "hyper-util", - "rustls", + "rustls 0.23.11", "rustls-pki-types", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.0", "tower-service", ] @@ -1014,7 +2123,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper", + "hyper 1.4.1", "hyper-util", "native-tls", "tokio", @@ -1031,9 +2140,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http", - "http-body", - "hyper", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", "pin-project-lite", "socket2", "tokio", @@ -1081,6 +2190,50 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + [[package]] name = "indexmap" version = "1.9.3" @@ -1103,6 +2256,15 @@ dependencies = [ "serde", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + [[package]] name = "instant" version = "0.1.13" @@ -1118,6 +2280,12 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.10.5" @@ -1127,12 +2295,30 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.69" @@ -1142,6 +2328,34 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", + "signature", +] + [[package]] name = "keccak" version = "0.1.5" @@ -1164,7 +2378,7 @@ dependencies = [ "disjoint-set", "groupmap", "hex", - "itertools", + "itertools 0.10.5", "mina-curves", "mina-poseidon", "num-bigint", @@ -1179,11 +2393,63 @@ dependencies = [ "rayon", "rmp-serde", "serde", - "serde_with 1.14.0", - "strum", - "strum_macros", - "thiserror", - "turshi", + "serde_with 1.14.0", + "strum 0.24.1", + "strum_macros 0.24.3", + "thiserror", + "turshi", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "lambdaworks-crypto" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fb5d4f22241504f7c7b8d2c3a7d7835d7c07117f10bff2a7d96a9ef6ef217c3" +dependencies = [ + "lambdaworks-math", + "serde", + "sha2 0.10.8", + "sha3", +] + +[[package]] +name = "lambdaworks-math" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97" +dependencies = [ + "serde", + "serde_json", ] [[package]] @@ -1198,6 +2464,22 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + [[package]] name = "linkme" version = "0.3.27" @@ -1240,6 +2522,16 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + [[package]] name = "md5" version = "0.7.0" @@ -1290,7 +2582,7 @@ dependencies = [ "binprot", "binprot_derive", "blake2", - "bs58", + "bs58 0.4.0", "derive_more", "hex", "mina-curves", @@ -1332,7 +2624,7 @@ dependencies = [ "ark-ff", "bitvec", "blake2", - "bs58", + "bs58 0.4.0", "hex", "mina-curves", "mina-hasher", @@ -1356,13 +2648,13 @@ dependencies = [ "base64 0.13.1", "bitvec", "blake2", - "bs58", + "bs58 0.4.0", "chrono", "crc32fast", "derive_more", "getrandom", "hex", - "itertools", + "itertools 0.10.5", "kimchi", "lazy_static", "libc", @@ -1388,7 +2680,7 @@ dependencies = [ "static_assertions", "thiserror", "tuple-map", - "uuid", + "uuid 1.10.0", "wasm-bindgen", "wasm_thread", ] @@ -1404,13 +2696,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ + "hermit-abi", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1436,7 +2729,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.1.3", "proc-macro-error", "proc-macro2", "quote", @@ -1461,6 +2754,12 @@ dependencies = [ "tempfile", ] +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + [[package]] name = "num-bigint" version = "0.4.6" @@ -1506,6 +2805,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.72", ] [[package]] @@ -1575,6 +2906,31 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "openmina-core" version = "0.6.0" @@ -1653,6 +3009,38 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "parking_lot" version = "0.11.2" @@ -1661,7 +3049,17 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", ] [[package]] @@ -1673,28 +3071,33 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi", ] [[package]] -name = "parser" -version = "0.1.0" +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "kimchi", - "mina-curves", - "mina-p2p-messages", - "mina-tree", - "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", - "poly-commitment", - "reqwest", - "serde", - "serde_json", + "cfg-if", + "libc", + "redox_syscall 0.5.3", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core", + "subtle", ] [[package]] @@ -1703,6 +3106,43 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -1720,6 +3160,77 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.2.6", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.5" @@ -1752,6 +3263,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.30" @@ -1769,7 +3290,7 @@ dependencies = [ "ark-serialize", "blake2", "groupmap", - "itertools", + "itertools 0.10.5", "mina-curves", "mina-poseidon", "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", @@ -1806,6 +3327,36 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn 2.0.72", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -1813,7 +3364,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ "thiserror", - "toml", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", ] [[package]] @@ -1849,6 +3409,22 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bitflags 2.6.0", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax", + "unarray", +] + [[package]] name = "quote" version = "1.0.36" @@ -1898,16 +3474,25 @@ dependencies = [ name = "rand_pcg" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_seeder" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" dependencies = [ "rand_core", ] [[package]] -name = "rand_seeder" -version = "0.2.3" +name = "rand_xorshift" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ "rand_core", ] @@ -1941,6 +3526,26 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + [[package]] name = "redux" version = "0.1.0" @@ -1953,6 +3558,76 @@ dependencies = [ "wasm-timer", ] +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", + "winreg 0.50.0", +] + [[package]] name = "reqwest" version = "0.12.5" @@ -1965,12 +3640,12 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", - "hyper-rustls", + "hyper 1.4.1", + "hyper-rustls 0.27.2", "hyper-tls", "hyper-util", "ipnet", @@ -1981,11 +3656,11 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile", + "rustls-pemfile 2.1.2", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "system-configuration", "tokio", "tokio-native-tls", @@ -1994,7 +3669,32 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "winreg 0.52.0", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", ] [[package]] @@ -2007,11 +3707,42 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin", - "untrusted", + "spin 0.9.8", + "untrusted 0.9.0", "windows-sys 0.52.0", ] +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rmp" version = "0.8.14" @@ -2034,18 +3765,45 @@ dependencies = [ "serde", ] +[[package]] +name = "rpassword" +version = "7.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +dependencies = [ + "libc", + "rtoolbox", + "windows-sys 0.48.0", +] + [[package]] name = "rsexp" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3df9a9b6491d42c0fc527e92a87525c17e45c6b9c22345702a6dc0400320bf1" +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "rustc-demangle" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + [[package]] name = "rustc_version" version = "0.3.3" @@ -2077,6 +3835,18 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct", +] + [[package]] name = "rustls" version = "0.23.11" @@ -2085,11 +3855,20 @@ checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" dependencies = [ "once_cell", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.102.6", "subtle", "zeroize", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-pemfile" version = "2.1.2" @@ -2106,15 +3885,25 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + [[package]] name = "rustls-webpki" version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ - "ring", + "ring 0.17.8", "rustls-pki-types", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -2129,6 +3918,48 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "schannel" version = "0.1.23" @@ -2144,6 +3975,42 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + [[package]] name = "security-framework" version = "2.11.1" @@ -2181,6 +4048,9 @@ name = "semver" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] [[package]] name = "semver-parser" @@ -2191,6 +4061,18 @@ dependencies = [ "pest", ] +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.204" @@ -2222,6 +4104,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -2286,6 +4177,17 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.9.9" @@ -2320,6 +4222,34 @@ dependencies = [ "keccak", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "slab" version = "0.4.9" @@ -2346,6 +4276,26 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + [[package]] name = "spin" version = "0.9.8" @@ -2355,6 +4305,16 @@ dependencies = [ "lock_api", ] +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -2365,7 +4325,20 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] [[package]] name = "strsim" @@ -2385,25 +4358,67 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + [[package]] name = "strum_macros" version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", "syn 1.0.109", ] +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.72", +] + [[package]] name = "subtle" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs", + "fs2", + "hex", + "once_cell", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + [[package]] name = "syn" version = "1.0.109" @@ -2426,6 +4441,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "sync_wrapper" version = "1.0.1" @@ -2483,6 +4504,17 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + [[package]] name = "thiserror" version = "1.0.63" @@ -2534,6 +4566,15 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -2551,9 +4592,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.1" +version = "1.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" +checksum = "d040ac2b29ab03b09d4129c2f5bbd012a3ac2f79d38ff506a4bf8dd34b0eac8a" dependencies = [ "backtrace", "bytes", @@ -2561,7 +4602,19 @@ dependencies = [ "mio", "pin-project-lite", "socket2", - "windows-sys 0.48.0", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", ] [[package]] @@ -2574,17 +4627,56 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls", + "rustls 0.23.11", "rustls-pki-types", "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite 0.20.1", + "webpki-roots", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +dependencies = [ + "futures-util", + "log", + "native-tls", + "tokio", + "tokio-native-tls", + "tungstenite 0.23.0", +] + [[package]] name = "tokio-util" version = "0.7.11" @@ -2607,6 +4699,51 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.16", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.15", +] + [[package]] name = "tower" version = "0.4.13" @@ -2665,12 +4802,61 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "try-lock" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "native-tls", + "rand", + "sha1", + "thiserror", + "utf-8", +] + [[package]] name = "tuple-map" version = "0.4.0" @@ -2699,6 +4885,24 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + [[package]] name = "unicode-bidi" version = "0.3.15" @@ -2732,6 +4936,12 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "untrusted" version = "0.9.0" @@ -2749,6 +4959,28 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + [[package]] name = "uuid" version = "1.10.0" @@ -2770,6 +5002,16 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -2858,7 +5100,7 @@ source = "git+https://github.com/fusetim/wasm-timer?branch=tim-add-missing-metho dependencies = [ "futures", "js-sys", - "parking_lot", + "parking_lot 0.11.2", "pin-utils", "wasm-bindgen", "wasm-bindgen-futures", @@ -2888,6 +5130,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + [[package]] name = "winapi" version = "0.3.9" @@ -2904,6 +5152,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -3058,6 +5315,34 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557404e450152cd6795bb558bca69e43c585055f4606e3bcae5894fc6dac9ba0" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "winreg" version = "0.52.0" @@ -3068,6 +5353,25 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.0", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wyz" version = "0.5.1" @@ -3077,6 +5381,12 @@ dependencies = [ "tap", ] +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + [[package]] name = "zeroize" version = "1.8.1" @@ -3096,3 +5406,52 @@ dependencies = [ "quote", "syn 2.0.72", ] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.12+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/polling_service/parser/Cargo.toml b/core/Cargo.toml similarity index 80% rename from polling_service/parser/Cargo.toml rename to core/Cargo.toml index ae45edb9..98afe780 100644 --- a/polling_service/parser/Cargo.toml +++ b/core/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "parser" +name = "core" version = "0.1.0" edition = "2021" @@ -17,6 +17,16 @@ ark-poly = { version = "0.3.0", features = ["parallel"] } ark-serialize = "0.3.0" mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } +ethers = { tag = "v2.0.15-fix-reconnections", features = [ + "ws", + "rustls", +], git = "https://github.com/yetanotherco/ethers-rs.git" } +rpassword = "7.3.1" +tokio = "1.39.1" +dotenv = "0.15.0" +env_logger = "0.11.5" +log = "0.4.22" [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs new file mode 100644 index 00000000..689cc44e --- /dev/null +++ b/core/src/aligned_polling_service.rs @@ -0,0 +1,103 @@ +use std::str::FromStr; + +use aligned_sdk::{ + core::types::{AlignedVerificationData, Chain, VerificationData}, + sdk::{get_next_nonce, submit_and_wait}, +}; +use ethers::signers::{LocalWallet, Signer, Wallet}; +use log::{debug, info}; + +const ANVIL_PRIVATE_KEY: &str = "2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"; // Anvil address 9 + +/// Submits a Mina proof to Aligned's batcher and waits until the batch is verified. +pub async fn submit(mina_proof: &VerificationData) -> Result { + let chain = + match std::env::var("ETH_CHAIN") + .expect("couldn't get ETH_CHAIN environment variable.") + .as_str() + { + "devnet" => { + debug!("Selected Anvil devnet chain."); + Chain::Devnet + } + "holesky" => { + debug!("Selected Holesky chain."); + Chain::Holesky + } + _ => return Err( + "Unrecognized chain, possible values for ETH_CHAIN are \"devnet\" and \"holesky\"." + .to_owned(), + ), + }; + + let batcher_addr = if let Ok(batcher_addr) = std::env::var("BATCHER_ADDR") { + batcher_addr + } else if matches!(chain, Chain::Devnet) { + debug!("Using default batcher address for devnet"); + "ws://localhost:8080".to_string() + } else { + return Err("Chain selected is Holesky but couldn't read BATCHER_ADDR".to_string()); + }; + + let batcher_eth_addr = if let Ok(batcher_eth_addr) = std::env::var("BATCHER_ETH_ADDR") { + batcher_eth_addr + } else if matches!(chain, Chain::Devnet) { + debug!("Using default batcher ethereum address for devnet"); + "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0".to_string() + } else { + return Err("Chain selected is Holesky but couldn't read BATCHER_ETH_ADDR".to_string()); + }; + + let eth_rpc_url = if let Ok(eth_rpc_url) = std::env::var("ETH_RPC_URL") { + eth_rpc_url + } else if matches!(chain, Chain::Devnet) { + debug!("Using default Ethereum RPC URL for devnet"); + "http://localhost:8545".to_string() + } else { + return Err("Chain selected is Holesky but couldn't read ETH_RPC_URL".to_string()); + }; + + let wallet = if matches!(chain, Chain::Holesky) { + if let Ok(keystore_path) = std::env::var("KEYSTORE_PATH") { + info!("Using keystore for Holesky wallet"); + let password = rpassword::prompt_password("Please enter your keystore password:") + .map_err(|err| err.to_string())?; + Wallet::decrypt_keystore(keystore_path, password).map_err(|err| err.to_string())? + } else if let Ok(private_key) = std::env::var("PRIVATE_KEY") { + info!("Using private key for Holesky wallet"); + private_key + .parse::() + .map_err(|err| err.to_string())? + } else { + return Err( + "Holesky chain was selected but couldn't find KEYSTORE_PATH or PRIVATE_KEY." + .to_string(), + ); + } + } else { + info!("Using Anvil wallet"); + LocalWallet::from_str(ANVIL_PRIVATE_KEY).expect("failed to create wallet") + }; + let nonce = get_next_nonce(ð_rpc_url, wallet.address(), &batcher_eth_addr) + .await + .map_err(|err| err.to_string())?; + + info!("Submitting Mina proof into Aligned and waiting for the batch to be verified..."); + let aligned_verification_data = submit_and_wait( + &batcher_addr, + ð_rpc_url, + chain, + mina_proof, + wallet, + nonce, + ) + .await + .map_err(|err| err.to_string())?; + + if let Some(aligned_verification_data) = aligned_verification_data { + info!("Batch was succesfully verified!"); + Ok(aligned_verification_data) + } else { + Err("Verification data was not returned when submitting the proof, possibly because the connection was closed sooner than expected.".to_string()) + } +} diff --git a/core/src/lib.rs b/core/src/lib.rs new file mode 100644 index 00000000..05a732e8 --- /dev/null +++ b/core/src/lib.rs @@ -0,0 +1,7 @@ +/// Service that polls a Mina node for a state proof and serializes it in an Aligned-friendly +/// format. +pub mod mina_polling_service; + +/// Services that sends a Mina proof to Aligned, awaits a response and updates the Bridge's smart +/// contract. +pub mod aligned_polling_service; diff --git a/core/src/main.rs b/core/src/main.rs new file mode 100644 index 00000000..70bb8e79 --- /dev/null +++ b/core/src/main.rs @@ -0,0 +1,41 @@ +extern crate dotenv; + +use core::{aligned_polling_service, mina_polling_service}; +use log::{error, info}; +use std::path::PathBuf; + +#[tokio::main] +async fn main() -> Result<(), String> { + env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); + info!("Mina bridge starts"); + + let dotenv_path = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join(".env"); + if let Err(err) = dotenv::from_path(dotenv_path) { + error!("Couldn't load .env file: {}", err); + } + + let rpc_url = std::env::var("MINA_RPC_URL").expect("couldn't read MINA_RPC_URL env. variable."); + let output_path = "."; // TODO(xqft): embellish this + + let mut proof_path_buf = PathBuf::from(output_path); + proof_path_buf.push("protocol_state.proof"); + + let mut public_input_path_buf = PathBuf::from(output_path); + public_input_path_buf.push("protocol_state.pub"); + + // TODO(xqft): add logging to mina_polling_service + info!("Executing Mina polling service"); + let mina_proof = mina_polling_service::query_and_serialize( + &rpc_url, + proof_path_buf.to_str().unwrap(), + public_input_path_buf.to_str().unwrap(), + ) + .inspect_err(|err| error!("{}", err))?; + + info!("Executing Aligned polling service"); + let _verification_data = aligned_polling_service::submit(&mina_proof) + .await + .inspect_err(|err| error!("{}", err))?; + + Ok(()) +} diff --git a/polling_service/parser/src/lib.rs b/core/src/mina_polling_service.rs similarity index 84% rename from polling_service/parser/src/lib.rs rename to core/src/mina_polling_service.rs index 0b3c3335..3d9132ce 100644 --- a/polling_service/parser/src/lib.rs +++ b/core/src/mina_polling_service.rs @@ -1,5 +1,7 @@ use std::{fs, str::FromStr as _}; +use aligned_sdk::core::types::{ProvingSystemId, VerificationData}; +use ethers::types::Address; use kimchi::o1_utils::FieldHelpers; use mina_curves::pasta::Fp; use reqwest::header::CONTENT_TYPE; @@ -11,11 +13,11 @@ const TIP_PROTOCOL_STATE: &str = "Va9U7YpJjxXGg9IcS2npo+3axwra34v/JNsZW+XS4SUC8D const TIP_STATE_HASH_FIELD: &str = "26201757517054449641912404249424749469164718222967816857204695395894215860942"; -pub fn parse_public_input( +pub fn query_and_serialize( rpc_url: &str, proof_path: &str, - public_input_path: &str, -) -> Result<(), String> { + pub_input_path: &str, +) -> Result { let tip_state_hash_field = serialize_state_hash_field(TIP_STATE_HASH_FIELD) .map_err(|err| format!("Error serializing tip's state hash field: {err}"))?; let tip_protocol_state = serialize_protocol_state(TIP_PROTOCOL_STATE) @@ -33,17 +35,37 @@ pub fn parse_public_input( let mut candidate_protocol_state_len_bytes = [0; 4]; candidate_protocol_state_len_bytes.copy_from_slice(&candidate_protocol_state_len.to_be_bytes()); - let mut public_input = get_state_hash_field(&last_block_value)?; - public_input.extend(candidate_protocol_state_len_bytes); - public_input.extend(candidate_protocol_state); - public_input.extend(tip_state_hash_field); - public_input.extend(tip_protocol_state_len_bytes); - public_input.extend(tip_protocol_state); + let mut pub_input = get_state_hash_field(&last_block_value)?; + pub_input.extend(candidate_protocol_state_len_bytes); + pub_input.extend(candidate_protocol_state); + pub_input.extend(tip_state_hash_field); + pub_input.extend(tip_protocol_state_len_bytes); + pub_input.extend(tip_protocol_state); - fs::write(proof_path, proof) + fs::write(proof_path, &proof) .map_err(|err| format!("Error writing state proof to file: {err}"))?; - fs::write(public_input_path, public_input) - .map_err(|err| format!("Error writing public input to file: {err}")) + fs::write(pub_input_path, &pub_input) + .map_err(|err| format!("Error writing public input to file: {err}"))?; + + let pub_input = Some(pub_input); + + let proof_generator_addr = Address::from_str(&if let Ok(proof_generator_addr) = + std::env::var("PROOF_GENERATOR_ADDR") + { + proof_generator_addr + } else { + "0x66f9664f97F2b50F62D13eA064982f936dE76657".to_string() + }) + .map_err(|err| err.to_string())?; + + Ok(VerificationData { + proving_system: ProvingSystemId::Mina, + proof, + pub_input, + verification_key: None, + vm_program_code: None, + proof_generator_addr, + }) } fn query_last_block(rpc_url: &str) -> Result { @@ -152,19 +174,19 @@ fn serialize_protocol_state_proof(response_value: &serde_json::Value) -> Result< mod tests { use std::path::PathBuf; - use crate::parse_public_input; + use super::query_and_serialize; #[test] fn serialize_and_deserialize() { let mut proof_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); proof_path.push("protocol_state.proof"); - let mut public_input_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - public_input_path.push("protocol_state.pub"); + let mut pub_input_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + pub_input_path.push("protocol_state.pub"); - parse_public_input( + query_and_serialize( "http://5.9.57.89:3085/graphql", proof_path.to_str().unwrap(), - public_input_path.to_str().unwrap(), + pub_input_path.to_str().unwrap(), ) .unwrap(); } diff --git a/polling_service/parser/src/main.rs b/polling_service/parser/src/main.rs deleted file mode 100644 index 084f093c..00000000 --- a/polling_service/parser/src/main.rs +++ /dev/null @@ -1,21 +0,0 @@ -use std::path::PathBuf; - -use parser::parse_public_input; - -pub fn main() -> Result<(), String> { - let args: Vec = std::env::args().collect(); - let rpc_url = args.get(1).ok_or("Error: No RPC URL provided")?; - let output_path = args.get(2).ok_or("Error: No output path provided")?; - - let mut proof_path_buf = PathBuf::from(output_path); - proof_path_buf.push("protocol_state.proof"); - - let mut public_input_path_buf = PathBuf::from(output_path); - public_input_path_buf.push("protocol_state.pub"); - - parse_public_input( - rpc_url, - proof_path_buf.to_str().unwrap(), - public_input_path_buf.to_str().unwrap(), - ) -} From 82f7ed1d6dffcdd334c665b33d9c933b07096f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 25 Jul 2024 17:52:09 -0300 Subject: [PATCH 06/46] Smart contract (#295) * chore: forge init * forge install: forge-std v1.9.1 * Contract baseline * Rename files and contract * forge install: aligned_layer mina * Fix remappings * Fix versions and remappings * First version of updateLastVerifiedState function --- .gitmodules | 6 +++ contract/.github/workflows/test.yml | 45 ++++++++++++++++++ contract/.gitignore | 14 ++++++ contract/README.md | 66 +++++++++++++++++++++++++ contract/foundry.toml | 6 +++ contract/lib/aligned_layer | 1 + contract/lib/forge-std | 1 + contract/remappings.txt | 23 +++++++++ contract/script/MinaBridge.s.sol | 20 ++++++++ contract/src/MinaBridge.sol | 74 +++++++++++++++++++++++++++++ contract/test/MinaBridge.t.sol | 14 ++++++ 11 files changed, 270 insertions(+) create mode 100644 contract/.github/workflows/test.yml create mode 100644 contract/.gitignore create mode 100644 contract/README.md create mode 100644 contract/foundry.toml create mode 160000 contract/lib/aligned_layer create mode 160000 contract/lib/forge-std create mode 100644 contract/remappings.txt create mode 100644 contract/script/MinaBridge.s.sol create mode 100644 contract/src/MinaBridge.sol create mode 100644 contract/test/MinaBridge.t.sol diff --git a/.gitmodules b/.gitmodules index 56472c17..15ed80bc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,3 +5,9 @@ [submodule "eth_verifier/lib/forge-std"] path = eth_verifier/lib/forge-std url = https://github.com/foundry-rs/forge-std +[submodule "contract/lib/forge-std"] + path = contract/lib/forge-std + url = https://github.com/foundry-rs/forge-std +[submodule "contract/lib/aligned_layer"] + path = contract/lib/aligned_layer + url = https://github.com/lambdaclass/aligned_layer diff --git a/contract/.github/workflows/test.yml b/contract/.github/workflows/test.yml new file mode 100644 index 00000000..762a2966 --- /dev/null +++ b/contract/.github/workflows/test.yml @@ -0,0 +1,45 @@ +name: CI + +on: + push: + pull_request: + workflow_dispatch: + +env: + FOUNDRY_PROFILE: ci + +jobs: + check: + strategy: + fail-fast: true + + name: Foundry project + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Show Forge version + run: | + forge --version + + - name: Run Forge fmt + run: | + forge fmt --check + id: fmt + + - name: Run Forge build + run: | + forge build --sizes + id: build + + - name: Run Forge tests + run: | + forge test -vvv + id: test diff --git a/contract/.gitignore b/contract/.gitignore new file mode 100644 index 00000000..85198aaa --- /dev/null +++ b/contract/.gitignore @@ -0,0 +1,14 @@ +# Compiler files +cache/ +out/ + +# Ignores development broadcast logs +!/broadcast +/broadcast/*/31337/ +/broadcast/**/dry-run/ + +# Docs +docs/ + +# Dotenv file +.env diff --git a/contract/README.md b/contract/README.md new file mode 100644 index 00000000..9265b455 --- /dev/null +++ b/contract/README.md @@ -0,0 +1,66 @@ +## Foundry + +**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.** + +Foundry consists of: + +- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools). +- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data. +- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network. +- **Chisel**: Fast, utilitarian, and verbose solidity REPL. + +## Documentation + +https://book.getfoundry.sh/ + +## Usage + +### Build + +```shell +$ forge build +``` + +### Test + +```shell +$ forge test +``` + +### Format + +```shell +$ forge fmt +``` + +### Gas Snapshots + +```shell +$ forge snapshot +``` + +### Anvil + +```shell +$ anvil +``` + +### Deploy + +```shell +$ forge script script/Counter.s.sol:CounterScript --rpc-url --private-key +``` + +### Cast + +```shell +$ cast +``` + +### Help + +```shell +$ forge --help +$ anvil --help +$ cast --help +``` diff --git a/contract/foundry.toml b/contract/foundry.toml new file mode 100644 index 00000000..25b918f9 --- /dev/null +++ b/contract/foundry.toml @@ -0,0 +1,6 @@ +[profile.default] +src = "src" +out = "out" +libs = ["lib"] + +# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/contract/lib/aligned_layer b/contract/lib/aligned_layer new file mode 160000 index 00000000..1dcd2d91 --- /dev/null +++ b/contract/lib/aligned_layer @@ -0,0 +1 @@ +Subproject commit 1dcd2d91ff28b417379c2e5f7f6f972538ad1d12 diff --git a/contract/lib/forge-std b/contract/lib/forge-std new file mode 160000 index 00000000..07263d19 --- /dev/null +++ b/contract/lib/forge-std @@ -0,0 +1 @@ +Subproject commit 07263d193d621c4b2b0ce8b4d54af58f6957d97d diff --git a/contract/remappings.txt b/contract/remappings.txt new file mode 100644 index 00000000..553d4d6a --- /dev/null +++ b/contract/remappings.txt @@ -0,0 +1,23 @@ +aligned_layer/=lib/aligned_layer/ +ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/ + +eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/ +eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src +eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/ +eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core +eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script + +erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/ + +openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/ +openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/ +openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/ +openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/ + +openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/ +openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/ + +@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/ +@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/ + +forge-std/=lib/forge-std/src/ diff --git a/contract/script/MinaBridge.s.sol b/contract/script/MinaBridge.s.sol new file mode 100644 index 00000000..e8c360c9 --- /dev/null +++ b/contract/script/MinaBridge.s.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.12; + +import {Script, console} from "forge-std/Script.sol"; +import {MinaBridge} from "../src/MinaBridge.sol"; + +contract MinaBridgeScript is Script { + MinaBridge public bridge; + uint160 alignedServiceAddress = 0x0; + + function setUp() public {} + + function run() public { + vm.startBroadcast(); + + bridge = new MinaBridge(address(alignedServiceAddress)); + + vm.stopBroadcast(); + } +} diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol new file mode 100644 index 00000000..73f8957b --- /dev/null +++ b/contract/src/MinaBridge.sol @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.12; + +import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; + +error NewStateIsNotValid(); + +/// @title Mina to Ethereum Bridge's smart contract. +contract MinaBridge { + /// @notice The state hash of the last verified state converted into a Fp. + uint256 public lastVerifiedStateHash; + + /// @notice Reference to the AlignedLayerServiceManager contract. + AlignedLayerServiceManager aligned; + + constructor(address alignedServiceAddr) { + aligned = AlignedLayerServiceManager(alignedServiceAddr); + } + + function getLastVerifiedStateHash() public view returns (uint256) { + return lastVerifiedStateHash; + } + + function updateLastVerifiedState( + bytes32 proofCommitment, + bytes32 pubInputCommitment, + bytes32 provingSystemAuxDataCommitment, + bytes20 proofGeneratorAddr, + bytes32 batchMerkleRoot, + bytes memory merkleProof, + uint256 verificationDataBatchIndex + ) external { + /* + * parameters: + * - newStateVerificationData (excludes pubInputCommitment) + * - newState + * - newStateHash + * - lastVerifiedState + * + * pseudocode: + * pubInputs = [newState, newStateHash, lastVerifiedState, lastVerifiedStateHash] + * pubInputsCommitment = keccak256(pubInputs) + * + * bool isNewStateVerified = AlignedLayerServiceManager.verifyBatchInclusion( + * newStateVerificationData, pubInputCommitment + * ); + * + * if (isNewStateVerified) { + * lastVerifiedStateHash = newStateHash; + * } else { + * revert NewStateIsNotValid(); + * } + */ + + // TOOD(xqft): add pub input hashing. + uint256 newStateHash = 0x0; + + bool isNewStateVerified = aligned.verifyBatchInclusion( + proofCommitment, + pubInputCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex + ); + + if (isNewStateVerified) { + lastVerifiedStateHash = newStateHash; + } else { + revert NewStateIsNotValid(); + } + } +} diff --git a/contract/test/MinaBridge.t.sol b/contract/test/MinaBridge.t.sol new file mode 100644 index 00000000..4aeac7fa --- /dev/null +++ b/contract/test/MinaBridge.t.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.12; + +import {Test, console} from "forge-std/Test.sol"; +import {MinaBridge} from "../src/MinaBridge.sol"; + +contract MinaBridgeTest is Test { + MinaBridge public bridge; + uint160 alignedServiceAddress = 0x0; + + function setUp() public { + bridge = new MinaBridge(address(alignedServiceAddress)); + } +} From 9d7f853c91391ad84ef6df23aefbcd57cefd89d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 29 Jul 2024 18:06:16 -0300 Subject: [PATCH 07/46] Smart contract utility (#298) * Create smart contract utility * Add contract ABI * WIP call contract * Finish function to update smart contract * WIP Deploy contract * Finished bridge contract deployment * WIP Hash public inputs * Finished smart contract utility * Remove unused env vars * Fix mina bridge script * Update readme * Clarify Makefile comment * Fix module doc * Move smart contract update comment * Update README.md --------- Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> --- .env.template | 9 ++ .gitignore | 1 + Makefile | 15 +++- README.md | 6 +- contract/script/MinaBridge.s.sol | 21 ++++- contract/src/MinaBridge.sol | 38 ++------ core/.env.template | 9 -- core/.gitignore | 1 - core/Cargo.lock | 95 +++++++++++++++++--- core/Cargo.toml | 1 + core/abi/MinaBridge.json | 1 + core/src/aligned_polling_service.rs | 1 + core/src/lib.rs | 7 +- core/src/main.rs | 21 ++++- core/src/smart_contract_utility.rs | 134 ++++++++++++++++++++++++++++ 15 files changed, 297 insertions(+), 63 deletions(-) create mode 100644 .env.template delete mode 100644 core/.env.template create mode 100644 core/abi/MinaBridge.json create mode 100644 core/src/smart_contract_utility.rs diff --git a/.env.template b/.env.template new file mode 100644 index 00000000..adc6b907 --- /dev/null +++ b/.env.template @@ -0,0 +1,9 @@ +ETH_CHAIN= +MINA_RPC_URL= + +## These can be skipped if using devnet with Anvil. +# BATCHER_ADDR= +# BATCHER_ETH_ADDR= +# ETH_RPC_URL= +# KEYSTORE_PATH= +# PRIVATE_KEY= diff --git a/.gitignore b/.gitignore index b07e07f9..45c5b477 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ mina_3_0_0_devnet protocol_state.pub protocol_state.proof aligned_verification_data +.env diff --git a/Makefile b/Makefile index 623873e5..274efccb 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,18 @@ -.PHONY: run +.PHONY: run gen_contract_abi deploy_contract run: @cargo run --manifest-path core/Cargo.toml --release +gen_contract_abi: + forge build --root contract/ + cp contract/out/MinaBridge.sol/MinaBridge.json core/abi/MinaBridge.json + +deploy_contract_anvil: + forge script \ + --non-interactive \ + --root contract/ \ + --broadcast \ + --rpc-url http://localhost:8545 \ + --private-key 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6 \ + contract/script/MinaBridge.s.sol:MinaBridgeDeployer +# deploy_contract_anvil uses Anvil wallet 9, same as Aligned for deploying its contracts. diff --git a/README.md b/README.md index a916cf4e..4968acd9 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,11 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) 1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. -1. In Mina Bridge root run: +1. In the root folder, deploy the bridge's contract with: + ```sh + make deploy_contract_anvil + ``` +1. Run the core program: ```sh make ``` diff --git a/contract/script/MinaBridge.s.sol b/contract/script/MinaBridge.s.sol index e8c360c9..080f76a2 100644 --- a/contract/script/MinaBridge.s.sol +++ b/contract/script/MinaBridge.s.sol @@ -4,16 +4,31 @@ pragma solidity ^0.8.12; import {Script, console} from "forge-std/Script.sol"; import {MinaBridge} from "../src/MinaBridge.sol"; -contract MinaBridgeScript is Script { +error UndefinedChain(); + +contract MinaBridgeDeployer is Script { MinaBridge public bridge; - uint160 alignedServiceAddress = 0x0; function setUp() public {} function run() public { vm.startBroadcast(); - bridge = new MinaBridge(address(alignedServiceAddress)); + string memory chain = vm.envString("ETH_CHAIN"); + address alignedServiceAddress; + if (keccak256(bytes(chain)) == keccak256("devnet")) { + alignedServiceAddress = address( + uint160(0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8) + ); + } else if (keccak256(bytes(chain)) == keccak256("holesky")) { + alignedServiceAddress = address( + uint160(0x58F280BeBE9B34c9939C3C39e0890C81f163B623) + ); + } else { + revert UndefinedChain(); + } + + new MinaBridge(alignedServiceAddress); vm.stopBroadcast(); } diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index 73f8957b..f1cb668e 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -8,7 +8,7 @@ error NewStateIsNotValid(); /// @title Mina to Ethereum Bridge's smart contract. contract MinaBridge { /// @notice The state hash of the last verified state converted into a Fp. - uint256 public lastVerifiedStateHash; + uint256 lastVerifiedStateHash; /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; @@ -17,43 +17,20 @@ contract MinaBridge { aligned = AlignedLayerServiceManager(alignedServiceAddr); } - function getLastVerifiedStateHash() public view returns (uint256) { + function getLastVerifiedStateHash() external view returns (uint256) { return lastVerifiedStateHash; } function updateLastVerifiedState( bytes32 proofCommitment, - bytes32 pubInputCommitment, bytes32 provingSystemAuxDataCommitment, bytes20 proofGeneratorAddr, bytes32 batchMerkleRoot, bytes memory merkleProof, - uint256 verificationDataBatchIndex + uint256 verificationDataBatchIndex, + bytes memory pubInput ) external { - /* - * parameters: - * - newStateVerificationData (excludes pubInputCommitment) - * - newState - * - newStateHash - * - lastVerifiedState - * - * pseudocode: - * pubInputs = [newState, newStateHash, lastVerifiedState, lastVerifiedStateHash] - * pubInputsCommitment = keccak256(pubInputs) - * - * bool isNewStateVerified = AlignedLayerServiceManager.verifyBatchInclusion( - * newStateVerificationData, pubInputCommitment - * ); - * - * if (isNewStateVerified) { - * lastVerifiedStateHash = newStateHash; - * } else { - * revert NewStateIsNotValid(); - * } - */ - - // TOOD(xqft): add pub input hashing. - uint256 newStateHash = 0x0; + bytes32 pubInputCommitment = keccak256(pubInput); bool isNewStateVerified = aligned.verifyBatchInclusion( proofCommitment, @@ -66,7 +43,10 @@ contract MinaBridge { ); if (isNewStateVerified) { - lastVerifiedStateHash = newStateHash; + // first 32 bytes of pub input is the candidate (now verified) state hash. + assembly { + sstore(lastVerifiedStateHash.slot, mload(add(pubInput, 0x20))) + } } else { revert NewStateIsNotValid(); } diff --git a/core/.env.template b/core/.env.template deleted file mode 100644 index c4b63869..00000000 --- a/core/.env.template +++ /dev/null @@ -1,9 +0,0 @@ -ETH_CHAIN= -MINA_RPC_URL= - -# These can be skipped if using devnet with Anvil. -BATCHER_ADDR= -BATCHER_ETH_ADDR= -ETH_RPC_URL= -KEYSTORE_PATH= -PRIVATE_KEY= diff --git a/core/.gitignore b/core/.gitignore index 14ee5009..2f7896d1 100644 --- a/core/.gitignore +++ b/core/.gitignore @@ -1,2 +1 @@ target/ -.env diff --git a/core/Cargo.lock b/core/Cargo.lock index 7897216e..19930e1f 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -771,6 +771,7 @@ dependencies = [ "dotenv", "env_logger", "ethers", + "ethers-contract-derive 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "kimchi", "log", "mina-curves", @@ -1306,7 +1307,7 @@ source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reco dependencies = [ "ethers-addressbook", "ethers-contract", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "ethers-etherscan", "ethers-middleware", "ethers-providers", @@ -1319,7 +1320,7 @@ name = "ethers-addressbook" version = "2.0.14" source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" dependencies = [ - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "once_cell", "serde", "serde_json", @@ -1331,9 +1332,9 @@ version = "2.0.14" source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" dependencies = [ "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", + "ethers-contract-abigen 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract-derive 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "ethers-providers", "futures-util", "once_cell", @@ -1343,6 +1344,28 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "serde", + "serde_json", + "syn 2.0.72", + "toml 0.8.15", + "walkdir", +] + [[package]] name = "ethers-contract-abigen" version = "2.0.14" @@ -1351,7 +1374,7 @@ dependencies = [ "Inflector", "const-hex", "dunce", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "ethers-etherscan", "eyre", "prettyplease", @@ -1366,6 +1389,22 @@ dependencies = [ "walkdir", ] +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.72", +] + [[package]] name = "ethers-contract-derive" version = "2.0.14" @@ -1373,14 +1412,44 @@ source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reco dependencies = [ "Inflector", "const-hex", - "ethers-contract-abigen", - "ethers-core", + "ethers-contract-abigen 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "proc-macro2", "quote", "serde_json", "syn 2.0.72", ] +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum", + "once_cell", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum 0.26.3", + "syn 2.0.72", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + [[package]] name = "ethers-core" version = "2.0.14" @@ -1416,7 +1485,7 @@ version = "2.0.14" source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" dependencies = [ "chrono", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "reqwest 0.11.27", "semver 1.0.23", "serde", @@ -1433,7 +1502,7 @@ dependencies = [ "async-trait", "auto_impl", "ethers-contract", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "ethers-etherscan", "ethers-providers", "ethers-signers", @@ -1462,7 +1531,7 @@ dependencies = [ "bytes", "const-hex", "enr", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "futures-channel", "futures-core", "futures-timer", @@ -1499,7 +1568,7 @@ dependencies = [ "const-hex", "elliptic-curve", "eth-keystore", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "rand", "sha2 0.10.8", "thiserror", @@ -1515,7 +1584,7 @@ dependencies = [ "const-hex", "dirs", "dunce", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "glob", "home", "md-5", diff --git a/core/Cargo.toml b/core/Cargo.toml index 98afe780..2feb96b7 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -27,6 +27,7 @@ tokio = "1.39.1" dotenv = "0.15.0" env_logger = "0.11.5" log = "0.4.22" +ethers-contract-derive = "2.0.14" [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json new file mode 100644 index 00000000..cfe2a5c8 --- /dev/null +++ b/core/abi/MinaBridge.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"alignedServiceAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getLastVerifiedStateHash","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateLastVerifiedState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516103fa3803806103fa83398101604081905261002f91610054565b600180546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610367806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063233d4f381461003b5780639e48bbf114610050575b600080fd5b61004e6100493660046101c6565b610065565b005b60005460405190815260200160405180910390f35b805160208201206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100a9908c9086908d908d908d908d908d90600401610275565b602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610308565b905080156100ff576020830151600055610118565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261014a57600080fd5b813567ffffffffffffffff8082111561016557610165610123565b604051601f8301601f19908116603f0116810190828211818310171561018d5761018d610123565b816040528381528660208588010111156101a657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156101e157600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461020c57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561023057600080fd5b61023c8b838c01610139565b945060a08a0135935060c08a013591508082111561025957600080fd5b506102668a828b01610139565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156102d157868101830151858201610100015282016102b4565b818111156102e457600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561031a57600080fd5b8151801515811461032a57600080fd5b939250505056fea2646970667358221220a9e2aa6ffa162c874448fa256c99d0f7f081db407b9254818d27a04d3bc4a64764736f6c634300080c0033","sourceMap":"222:1476:63:-:0;;;474:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;524:7;:56;;-1:-1:-1;;;;;;524:56:63;-1:-1:-1;;;;;524:56:63;;;;;;;;;;222:1476;;14:290:65;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:65;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:65:o;:::-;222:1476:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063233d4f381461003b5780639e48bbf114610050575b600080fd5b61004e6100493660046101c6565b610065565b005b60005460405190815260200160405180910390f35b805160208201206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100a9908c9086908d908d908d908d908d90600401610275565b602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610308565b905080156100ff576020830151600055610118565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261014a57600080fd5b813567ffffffffffffffff8082111561016557610165610123565b604051601f8301601f19908116603f0116810190828211818310171561018d5761018d610123565b816040528381528660208588010111156101a657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156101e157600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461020c57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561023057600080fd5b61023c8b838c01610139565b945060a08a0135935060c08a013591508082111561025957600080fd5b506102668a828b01610139565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156102d157868101830151858201610100015282016102b4565b818111156102e457600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561031a57600080fd5b8151801515811461032a57600080fd5b939250505056fea2646970667358221220a9e2aa6ffa162c874448fa256c99d0f7f081db407b9254818d27a04d3bc4a64764736f6c634300080c0033","sourceMap":"222:1476:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;712:984;;;;;;:::i;:::-;;:::i;:::-;;593:113;652:7;678:21;593:113;;2021:25:65;;;2009:2;1994:18;593:113:63;;;;;;;712:984;1058:19;;;;;;1114:7;;:269;;-1:-1:-1;;;1114:269:63;;1029:26;;-1:-1:-1;;;;;1114:7:63;;:28;;:269;;1156:15;;1058:19;;1217:30;;1261:18;;1293:15;;1322:11;;1347:26;;1114:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1088:295;;1398:18;1394:296;;;1601:4;1591:8;1587:19;1581:26;1553;1546:62;1394:296;;;1659:20;;-1:-1:-1;;;1659:20:63;;;;;;;;;;;1394:296;1019:677;;712:984;;;;;;;:::o;14:127:65:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:65;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:1001::-;1000:6;1008;1016;1024;1032;1040;1048;1101:3;1089:9;1080:7;1076:23;1072:33;1069:53;;;1118:1;1115;1108:12;1069:53;1141:23;;;-1:-1:-1;1211:2:65;1196:18;;1183:32;;-1:-1:-1;1265:2:65;1250:18;;1237:32;-1:-1:-1;;1298:43:65;;1288:54;;1278:82;;1356:1;1353;1346:12;1278:82;1379:5;-1:-1:-1;1431:2:65;1416:18;;1403:32;;-1:-1:-1;1486:3:65;1471:19;;1458:33;1510:18;1540:14;;;1537:34;;;1567:1;1564;1557:12;1537:34;1590:49;1631:7;1622:6;1611:9;1607:22;1590:49;:::i;:::-;1580:59;;1686:3;1675:9;1671:19;1658:33;1648:43;;1744:3;1733:9;1729:19;1716:33;1700:49;;1774:2;1764:8;1761:16;1758:36;;;1790:1;1787;1780:12;1758:36;;1813:51;1856:7;1845:8;1834:9;1830:24;1813:51;:::i;:::-;1803:61;;;869:1001;;;;;;;;;;:::o;2057:1067::-;2372:6;2361:9;2354:25;2335:4;2398:2;2436:6;2431:2;2420:9;2416:18;2409:34;2479:6;2474:2;2463:9;2459:18;2452:34;2538:26;2534:31;2526:6;2522:44;2517:2;2506:9;2502:18;2495:72;2604:6;2598:3;2587:9;2583:19;2576:35;2648:3;2642;2631:9;2627:19;2620:32;2681:6;2675:13;2725:6;2719:3;2708:9;2704:19;2697:35;2750:1;2760:141;2774:6;2771:1;2768:13;2760:141;;;2870:14;;;2866:23;;2860:30;2835:17;;;2854:3;2831:27;2824:67;2789:10;;2760:141;;;2919:6;2916:1;2913:13;2910:92;;;2990:1;2984:3;2975:6;2964:9;2960:22;2956:32;2949:43;2910:92;-1:-1:-1;3105:3:65;3090:19;;3083:35;;;;-1:-1:-1;;3063:2:65;3042:15;;;;-1:-1:-1;;3038:29:65;3023:45;3070:3;3019:55;;2057:1067;-1:-1:-1;;;;;;2057:1067:65:o;3129:277::-;3196:6;3249:2;3237:9;3228:7;3224:23;3220:32;3217:52;;;3265:1;3262;3255:12;3217:52;3297:9;3291:16;3350:5;3343:13;3336:21;3329:5;3326:32;3316:60;;3372:1;3369;3362:12;3316:60;3395:5;3129:277;-1:-1:-1;;;3129:277:65:o","linkReferences":{}},"methodIdentifiers":{"getLastVerifiedStateHash()":"9e48bbf1","updateLastVerifiedState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"233d4f38"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getLastVerifiedStateHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateLastVerifiedState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xfc269109bdf29f630de3149fc985b8067d7546b4291d97ded3cfbd1bd8cdc1c0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a5bee863325159ab3cd8cc77fe83e12782156cb5b007833ca3c190e1bacd0f1\",\"dweb:/ipfs/QmZPjmvzGfjF8iSBrshctXucf8DBZwUYgfpbLGpytyh9yf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastVerifiedStateHash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateLastVerifiedState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0xfc269109bdf29f630de3149fc985b8067d7546b4291d97ded3cfbd1bd8cdc1c0","urls":["bzz-raw://9a5bee863325159ab3cd8cc77fe83e12782156cb5b007833ca3c190e1bacd0f1","dweb:/ipfs/QmZPjmvzGfjF8iSBrshctXucf8DBZwUYgfpbLGpytyh9yf"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index 689cc44e..4c76e8b6 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -7,6 +7,7 @@ use aligned_sdk::{ use ethers::signers::{LocalWallet, Signer, Wallet}; use log::{debug, info}; +// TODO(xqft): define in constants.rs const ANVIL_PRIVATE_KEY: &str = "2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"; // Anvil address 9 /// Submits a Mina proof to Aligned's batcher and waits until the batch is verified. diff --git a/core/src/lib.rs b/core/src/lib.rs index 05a732e8..d966cb78 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -2,6 +2,9 @@ /// format. pub mod mina_polling_service; -/// Services that sends a Mina proof to Aligned, awaits a response and updates the Bridge's smart -/// contract. +/// Service that sends a Mina proof to Aligned and awaits a response. Returns the verification +/// data. pub mod aligned_polling_service; + +/// Utility for updating the bridge's smart contract with a new, verified state. +pub mod smart_contract_utility; diff --git a/core/src/main.rs b/core/src/main.rs index 70bb8e79..3dd6205f 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -1,6 +1,8 @@ extern crate dotenv; -use core::{aligned_polling_service, mina_polling_service}; +use core::{aligned_polling_service, mina_polling_service, smart_contract_utility}; +use dotenv::dotenv; +use ethers::abi::AbiEncode; use log::{error, info}; use std::path::PathBuf; @@ -9,8 +11,7 @@ async fn main() -> Result<(), String> { env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); info!("Mina bridge starts"); - let dotenv_path = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join(".env"); - if let Err(err) = dotenv::from_path(dotenv_path) { + if let Err(err) = dotenv() { error!("Couldn't load .env file: {}", err); } @@ -33,9 +34,21 @@ async fn main() -> Result<(), String> { .inspect_err(|err| error!("{}", err))?; info!("Executing Aligned polling service"); - let _verification_data = aligned_polling_service::submit(&mina_proof) + let verification_data = aligned_polling_service::submit(&mina_proof) .await .inspect_err(|err| error!("{}", err))?; + info!("Updating the bridge's smart contract"); + let pub_input = mina_proof + .pub_input + .ok_or("Missing public inputs from Mina proof")?; + let new_state_hash = smart_contract_utility::update(verification_data, pub_input) + .await + .inspect_err(|err| error!("{}", err))?; + + info!( + "Success! verified state hash {} was stored in the bridge's smart contract", + new_state_hash.encode_hex() + ); Ok(()) } diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs new file mode 100644 index 00000000..c3b213fe --- /dev/null +++ b/core/src/smart_contract_utility.rs @@ -0,0 +1,134 @@ +use std::str::FromStr; +use std::sync::Arc; + +use aligned_sdk::core::types::{AlignedVerificationData, Chain, VerificationDataCommitment}; +use ethers::{abi::AbiEncode, prelude::*}; +use k256::ecdsa::SigningKey; +use log::{debug, info}; + +abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); + +type MinaBridgeEthereum = + MinaBridgeEthereumContract, Wallet>>; + +// TODO(xqft): define in constants.rs +const ANVIL_PRIVATE_KEY: &str = "2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"; // Anvil address 9 +const ANVIL_CHAIN_ID: u64 = 31337; + +pub async fn update( + verification_data: AlignedVerificationData, + pub_input: Vec, +) -> Result { + let chain = + match std::env::var("ETH_CHAIN") + .expect("couldn't get ETH_CHAIN environment variable.") + .as_str() + { + "devnet" => { + debug!("Selected Anvil devnet chain."); + Chain::Devnet + } + "holesky" => { + debug!("Selected Holesky chain."); + Chain::Holesky + } + _ => return Err( + "Unrecognized chain, possible values for ETH_CHAIN are \"devnet\" and \"holesky\"." + .to_owned(), + ), + }; + + let eth_rpc_url = if let Ok(eth_rpc_url) = std::env::var("ETH_RPC_URL") { + eth_rpc_url + } else if matches!(chain, Chain::Devnet) { + debug!("Using default Ethereum RPC URL for devnet"); + "http://localhost:8545".to_string() + } else { + return Err("Chain selected is Holesky but couldn't read ETH_RPC_URL".to_string()); + }; + + let bridge_eth_addr = Address::from_str(match chain { + Chain::Devnet => "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35", + _ => unimplemented!(), + }) + .map_err(|err| err.to_string())?; + + debug!("Creating contract instance"); + let mina_bridge_contract = mina_bridge_contract(ð_rpc_url, bridge_eth_addr)?; + + let AlignedVerificationData { + verification_data_commitment, + batch_merkle_root, + batch_inclusion_proof, + index_in_batch, + } = verification_data; + + let merkle_proof = batch_inclusion_proof + .merkle_path + .clone() + .into_iter() + .flatten() + .collect(); + + let VerificationDataCommitment { + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + .. + } = verification_data_commitment; + + debug!("Calling updateLastVerifiedState()"); + let update_call = mina_bridge_contract.update_last_verified_state( + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + batch_merkle_root, + merkle_proof, + index_in_batch.into(), + pub_input.into(), + ); + // call reverts if batch is not valid. + + info!( + "Estimated gas cost: {}", + update_call + .estimate_gas() + .await + .map_err(|err| err.to_string())? + ); + + let pending_tx = update_call.send().await.map_err(|err| err.to_string())?; + info!( + "Transaction {} was submitted and is now pending", + pending_tx.tx_hash().encode_hex() + ); + + let receipt = pending_tx + .await + .map_err(|err| err.to_string())? + .ok_or("Missing transaction receipt")?; + + info!( + "Transaction mined! final gas cost: {}", + receipt.gas_used.ok_or("Missing gas used")? + ); + + let new_state_hash = mina_bridge_contract + .get_last_verified_state_hash() + .await + .map_err(|err| err.to_string())?; + + Ok(new_state_hash) +} + +fn mina_bridge_contract( + eth_rpc_url: &str, + contract_address: Address, +) -> Result { + let eth_rpc_provider = + Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; + let wallet = LocalWallet::from_str(ANVIL_PRIVATE_KEY).expect("failed to create wallet"); + let signer = SignerMiddleware::new(eth_rpc_provider, wallet.with_chain_id(ANVIL_CHAIN_ID)); + let client = Arc::new(signer); + Ok(MinaBridgeEthereum::new(contract_address, client)) +} From 678a9a5e60d4718c6a2e64119241575834b080d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 30 Jul 2024 13:31:13 -0300 Subject: [PATCH 08/46] Clean core (#301) * Create smart contract utility * Add contract ABI * WIP call contract * Finish function to update smart contract * WIP Deploy contract * Finished bridge contract deployment * WIP Hash public inputs * Finished smart contract utility * Remove unused env vars * Fix mina bridge script * Update readme * Clarify Makefile comment * Fix module doc * Move smart contract update comment * Refactor constants into their own file * Better logging * Change variable name * Change log * Refactor environment variables * Refactor env.rs and constants.rs into utils mod * Refactor wallet setup * Add missing env var * Default env vars as constants * Fix test * Remove git diff marker * Remove git diff marker * Update README.md Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> * Refactor closure --------- Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> --- .env.template | 4 + core/Cargo.lock | 161 ++++++++-------------------- core/Cargo.toml | 2 +- core/src/aligned_polling_service.rs | 96 +++-------------- core/src/lib.rs | 3 + core/src/main.rs | 99 ++++++++++------- core/src/mina_polling_service.rs | 60 ++++------- core/src/smart_contract_utility.rs | 63 ++++------- core/src/utils/constants.rs | 18 ++++ core/src/utils/env.rs | 87 +++++++++++++++ core/src/utils/mod.rs | 3 + core/src/utils/wallet.rs | 46 ++++++++ 12 files changed, 330 insertions(+), 312 deletions(-) create mode 100644 core/src/utils/constants.rs create mode 100644 core/src/utils/env.rs create mode 100644 core/src/utils/mod.rs create mode 100644 core/src/utils/wallet.rs diff --git a/.env.template b/.env.template index adc6b907..15019099 100644 --- a/.env.template +++ b/.env.template @@ -5,5 +5,9 @@ MINA_RPC_URL= # BATCHER_ADDR= # BATCHER_ETH_ADDR= # ETH_RPC_URL= +# PROOF_GENERATOR_ADDR= + +## You can choose to use a keystore or private key for your signing wallet. +## Leave empty if choosing Anvil Devnet. # KEYSTORE_PATH= # PRIVATE_KEY= diff --git a/core/Cargo.lock b/core/Cargo.lock index 19930e1f..a2ec63f3 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#cdb24383e04f785302b61a3f0131d31a8051dc0d" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#e0e42d2543823482336b2f35d9e3392adb1eed5a" dependencies = [ "ethers", "futures-util", @@ -610,9 +610,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" dependencies = [ "jobserver", "libc", @@ -771,7 +771,7 @@ dependencies = [ "dotenv", "env_logger", "ethers", - "ethers-contract-derive 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "hex", "kimchi", "log", "mina-curves", @@ -1307,7 +1307,7 @@ source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reco dependencies = [ "ethers-addressbook", "ethers-contract", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "ethers-etherscan", "ethers-middleware", "ethers-providers", @@ -1320,7 +1320,7 @@ name = "ethers-addressbook" version = "2.0.14" source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" dependencies = [ - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "once_cell", "serde", "serde_json", @@ -1332,9 +1332,9 @@ version = "2.0.14" source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" dependencies = [ "const-hex", - "ethers-contract-abigen 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-contract-derive 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", "ethers-providers", "futures-util", "once_cell", @@ -1344,28 +1344,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "serde", - "serde_json", - "syn 2.0.72", - "toml 0.8.15", - "walkdir", -] - [[package]] name = "ethers-contract-abigen" version = "2.0.14" @@ -1374,7 +1352,7 @@ dependencies = [ "Inflector", "const-hex", "dunce", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "ethers-etherscan", "eyre", "prettyplease", @@ -1385,26 +1363,10 @@ dependencies = [ "serde", "serde_json", "syn 2.0.72", - "toml 0.8.15", + "toml 0.8.16", "walkdir", ] -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.72", -] - [[package]] name = "ethers-contract-derive" version = "2.0.14" @@ -1412,44 +1374,14 @@ source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reco dependencies = [ "Inflector", "const-hex", - "ethers-contract-abigen 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract-abigen", + "ethers-core", "proc-macro2", "quote", "serde_json", "syn 2.0.72", ] -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array", - "k256", - "num_enum", - "once_cell", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum 0.26.3", - "syn 2.0.72", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - [[package]] name = "ethers-core" version = "2.0.14" @@ -1485,7 +1417,7 @@ version = "2.0.14" source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" dependencies = [ "chrono", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "reqwest 0.11.27", "semver 1.0.23", "serde", @@ -1502,7 +1434,7 @@ dependencies = [ "async-trait", "auto_impl", "ethers-contract", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "ethers-etherscan", "ethers-providers", "ethers-signers", @@ -1531,7 +1463,7 @@ dependencies = [ "bytes", "const-hex", "enr", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "futures-channel", "futures-core", "futures-timer", @@ -1568,7 +1500,7 @@ dependencies = [ "const-hex", "elliptic-curve", "eth-keystore", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "rand", "sha2 0.10.8", "thiserror", @@ -1584,7 +1516,7 @@ dependencies = [ "const-hex", "dirs", "dunce", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "glob", "home", "md-5", @@ -2177,7 +2109,7 @@ dependencies = [ "http 1.1.0", "hyper 1.4.1", "hyper-util", - "rustls 0.23.11", + "rustls 0.23.12", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", @@ -2889,18 +2821,18 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -2956,9 +2888,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.1" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" dependencies = [ "memchr", ] @@ -3918,9 +3850,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.11" +version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "once_cell", "rustls-pki-types", @@ -4164,20 +4096,21 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -4661,9 +4594,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.1" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d040ac2b29ab03b09d4129c2f5bbd012a3ac2f79d38ff506a4bf8dd34b0eac8a" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", @@ -4712,7 +4645,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.11", + "rustls 0.23.12", "rustls-pki-types", "tokio", ] @@ -4770,21 +4703,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" +checksum = "81967dd0dd2c1ab0bc3468bd7caecc32b8a4aa47d0c8c695d8c2b2108168d62c" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.16", + "toml_edit 0.22.17", ] [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "f8fb9f64314842840f1d940ac544da178732128f1c78c21772e876579e0da1db" dependencies = [ "serde", ] @@ -4802,15 +4735,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.16" +version = "0.22.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +checksum = "8d9f8729f5aea9562aac1cc0441f5d6de3cff1ee0c5d67293eeca5eb36ee7c16" dependencies = [ "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.15", + "winnow 0.6.16", ] [[package]] @@ -5067,9 +5000,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -5395,9 +5328,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.15" +version = "0.6.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "557404e450152cd6795bb558bca69e43c585055f4606e3bcae5894fc6dac9ba0" +checksum = "b480ae9340fc261e6be3e95a1ba86d54ae3f9171132a73ce8d4bbaf68339507c" dependencies = [ "memchr", ] diff --git a/core/Cargo.toml b/core/Cargo.toml index 2feb96b7..c1f70775 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -27,7 +27,7 @@ tokio = "1.39.1" dotenv = "0.15.0" env_logger = "0.11.5" log = "0.4.22" -ethers-contract-derive = "2.0.14" +hex = "0.4.3" [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index 4c76e8b6..b47e3675 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -1,93 +1,31 @@ -use std::str::FromStr; - use aligned_sdk::{ core::types::{AlignedVerificationData, Chain, VerificationData}, sdk::{get_next_nonce, submit_and_wait}, }; -use ethers::signers::{LocalWallet, Signer, Wallet}; -use log::{debug, info}; - -// TODO(xqft): define in constants.rs -const ANVIL_PRIVATE_KEY: &str = "2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"; // Anvil address 9 +use ethers::{ + core::k256::ecdsa::SigningKey, + signers::{Signer, Wallet}, +}; +use log::info; /// Submits a Mina proof to Aligned's batcher and waits until the batch is verified. -pub async fn submit(mina_proof: &VerificationData) -> Result { - let chain = - match std::env::var("ETH_CHAIN") - .expect("couldn't get ETH_CHAIN environment variable.") - .as_str() - { - "devnet" => { - debug!("Selected Anvil devnet chain."); - Chain::Devnet - } - "holesky" => { - debug!("Selected Holesky chain."); - Chain::Holesky - } - _ => return Err( - "Unrecognized chain, possible values for ETH_CHAIN are \"devnet\" and \"holesky\"." - .to_owned(), - ), - }; - - let batcher_addr = if let Ok(batcher_addr) = std::env::var("BATCHER_ADDR") { - batcher_addr - } else if matches!(chain, Chain::Devnet) { - debug!("Using default batcher address for devnet"); - "ws://localhost:8080".to_string() - } else { - return Err("Chain selected is Holesky but couldn't read BATCHER_ADDR".to_string()); - }; - - let batcher_eth_addr = if let Ok(batcher_eth_addr) = std::env::var("BATCHER_ETH_ADDR") { - batcher_eth_addr - } else if matches!(chain, Chain::Devnet) { - debug!("Using default batcher ethereum address for devnet"); - "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0".to_string() - } else { - return Err("Chain selected is Holesky but couldn't read BATCHER_ETH_ADDR".to_string()); - }; - - let eth_rpc_url = if let Ok(eth_rpc_url) = std::env::var("ETH_RPC_URL") { - eth_rpc_url - } else if matches!(chain, Chain::Devnet) { - debug!("Using default Ethereum RPC URL for devnet"); - "http://localhost:8545".to_string() - } else { - return Err("Chain selected is Holesky but couldn't read ETH_RPC_URL".to_string()); - }; - - let wallet = if matches!(chain, Chain::Holesky) { - if let Ok(keystore_path) = std::env::var("KEYSTORE_PATH") { - info!("Using keystore for Holesky wallet"); - let password = rpassword::prompt_password("Please enter your keystore password:") - .map_err(|err| err.to_string())?; - Wallet::decrypt_keystore(keystore_path, password).map_err(|err| err.to_string())? - } else if let Ok(private_key) = std::env::var("PRIVATE_KEY") { - info!("Using private key for Holesky wallet"); - private_key - .parse::() - .map_err(|err| err.to_string())? - } else { - return Err( - "Holesky chain was selected but couldn't find KEYSTORE_PATH or PRIVATE_KEY." - .to_string(), - ); - } - } else { - info!("Using Anvil wallet"); - LocalWallet::from_str(ANVIL_PRIVATE_KEY).expect("failed to create wallet") - }; - let nonce = get_next_nonce(ð_rpc_url, wallet.address(), &batcher_eth_addr) +pub async fn submit( + mina_proof: &VerificationData, + chain: &Chain, + batcher_addr: &str, + batcher_eth_addr: &str, + eth_rpc_url: &str, + wallet: Wallet, +) -> Result { + let nonce = get_next_nonce(eth_rpc_url, wallet.address(), batcher_eth_addr) .await .map_err(|err| err.to_string())?; info!("Submitting Mina proof into Aligned and waiting for the batch to be verified..."); let aligned_verification_data = submit_and_wait( - &batcher_addr, - ð_rpc_url, - chain, + batcher_addr, + eth_rpc_url, + chain.to_owned(), mina_proof, wallet, nonce, diff --git a/core/src/lib.rs b/core/src/lib.rs index d966cb78..2d4a1c6f 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -8,3 +8,6 @@ pub mod aligned_polling_service; /// Utility for updating the bridge's smart contract with a new, verified state. pub mod smart_contract_utility; + +/// Internal utils. +pub mod utils; diff --git a/core/src/main.rs b/core/src/main.rs index 3dd6205f..2bd49560 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -1,54 +1,75 @@ -extern crate dotenv; - -use core::{aligned_polling_service, mina_polling_service, smart_contract_utility}; -use dotenv::dotenv; +use core::{ + aligned_polling_service, mina_polling_service, smart_contract_utility, + utils::{env::EnvironmentVariables, wallet::get_wallet}, +}; use ethers::abi::AbiEncode; -use log::{error, info}; -use std::path::PathBuf; +use log::{debug, error, info}; +use std::process; #[tokio::main] -async fn main() -> Result<(), String> { +async fn main() { env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); - info!("Mina bridge starts"); - - if let Err(err) = dotenv() { - error!("Couldn't load .env file: {}", err); - } - let rpc_url = std::env::var("MINA_RPC_URL").expect("couldn't read MINA_RPC_URL env. variable."); - let output_path = "."; // TODO(xqft): embellish this + debug!("Reading env. variables"); + let EnvironmentVariables { + rpc_url, + chain, + batcher_addr, + batcher_eth_addr, + eth_rpc_url, + proof_generator_addr, + keystore_path, + private_key, + } = EnvironmentVariables::new().unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); - let mut proof_path_buf = PathBuf::from(output_path); - proof_path_buf.push("protocol_state.proof"); + debug!("Getting user wallet"); + let wallet = get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); - let mut public_input_path_buf = PathBuf::from(output_path); - public_input_path_buf.push("protocol_state.pub"); + debug!("Executing Mina polling service"); + let mina_proof = mina_polling_service::query_and_serialize(&rpc_url, &proof_generator_addr) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); - // TODO(xqft): add logging to mina_polling_service - info!("Executing Mina polling service"); - let mina_proof = mina_polling_service::query_and_serialize( - &rpc_url, - proof_path_buf.to_str().unwrap(), - public_input_path_buf.to_str().unwrap(), + debug!("Executing Aligned polling service"); + let verification_data = aligned_polling_service::submit( + &mina_proof, + &chain, + &batcher_addr, + &batcher_eth_addr, + ð_rpc_url, + wallet.clone(), ) - .inspect_err(|err| error!("{}", err))?; + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); - info!("Executing Aligned polling service"); - let verification_data = aligned_polling_service::submit(&mina_proof) - .await - .inspect_err(|err| error!("{}", err))?; + debug!("Updating the bridge's smart contract"); + let pub_input = mina_proof.pub_input.unwrap_or_else(|| { + error!("Missing public inputs from Mina proof"); + process::exit(1); + }); - info!("Updating the bridge's smart contract"); - let pub_input = mina_proof - .pub_input - .ok_or("Missing public inputs from Mina proof")?; - let new_state_hash = smart_contract_utility::update(verification_data, pub_input) - .await - .inspect_err(|err| error!("{}", err))?; + let verified_state_hash = + smart_contract_utility::update(verification_data, pub_input, &chain, ð_rpc_url, wallet) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); info!( - "Success! verified state hash {} was stored in the bridge's smart contract", - new_state_hash.encode_hex() + "Success! verified Mina state hash {} was stored in the bridge's smart contract", + verified_state_hash.encode_hex() ); - Ok(()) } diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index 3d9132ce..ebe2b8f8 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -1,31 +1,29 @@ -use std::{fs, str::FromStr as _}; +use std::str::FromStr as _; use aligned_sdk::core::types::{ProvingSystemId, VerificationData}; use ethers::types::Address; use kimchi::o1_utils::FieldHelpers; +use log::{debug, info}; use mina_curves::pasta::Fp; use reqwest::header::CONTENT_TYPE; -const STATE_HASH_SIZE: usize = 32; - -// TODO(gabrielbosio): These are temporary, we will fetch the tip from the Mina contract instead of using these hardcoded values. -const TIP_PROTOCOL_STATE: &str = "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"; -const TIP_STATE_HASH_FIELD: &str = - "26201757517054449641912404249424749469164718222967816857204695395894215860942"; +use crate::utils::constants::{ + MINA_STATE_HASH_SIZE, MINA_TIP_PROTOCOL_STATE, MINA_TIP_STATE_HASH_FIELD, +}; pub fn query_and_serialize( rpc_url: &str, - proof_path: &str, - pub_input_path: &str, + proof_generator_addr: &str, ) -> Result { - let tip_state_hash_field = serialize_state_hash_field(TIP_STATE_HASH_FIELD) + let tip_state_hash_field = serialize_state_hash_field(MINA_TIP_STATE_HASH_FIELD) .map_err(|err| format!("Error serializing tip's state hash field: {err}"))?; - let tip_protocol_state = serialize_protocol_state(TIP_PROTOCOL_STATE) + let tip_protocol_state = serialize_protocol_state(MINA_TIP_PROTOCOL_STATE) .map_err(|err| format!("Error serializing tip's protocol state: {err}"))?; let tip_protocol_state_len = tip_protocol_state.len() as u32; let mut tip_protocol_state_len_bytes = [0; 4]; tip_protocol_state_len_bytes.copy_from_slice(&tip_protocol_state_len.to_be_bytes()); + debug!("Querying Mina node for last state and proof"); let last_block_value = query_last_block(rpc_url)?; let proof = serialize_protocol_state_proof(&last_block_value)?; @@ -35,29 +33,23 @@ pub fn query_and_serialize( let mut candidate_protocol_state_len_bytes = [0; 4]; candidate_protocol_state_len_bytes.copy_from_slice(&candidate_protocol_state_len.to_be_bytes()); - let mut pub_input = get_state_hash_field(&last_block_value)?; + let candidate_state_hash = get_state_hash_field(&last_block_value)?; + info!( + "Queried Mina candidate state 0x{} and its proof from Mainnet node", + hex::encode(&candidate_state_hash) + ); + + let mut pub_input = candidate_state_hash; pub_input.extend(candidate_protocol_state_len_bytes); pub_input.extend(candidate_protocol_state); pub_input.extend(tip_state_hash_field); pub_input.extend(tip_protocol_state_len_bytes); pub_input.extend(tip_protocol_state); - fs::write(proof_path, &proof) - .map_err(|err| format!("Error writing state proof to file: {err}"))?; - fs::write(pub_input_path, &pub_input) - .map_err(|err| format!("Error writing public input to file: {err}"))?; - let pub_input = Some(pub_input); - let proof_generator_addr = Address::from_str(&if let Ok(proof_generator_addr) = - std::env::var("PROOF_GENERATOR_ADDR") - { - proof_generator_addr - } else { - "0x66f9664f97F2b50F62D13eA064982f936dE76657".to_string() - }) - .map_err(|err| err.to_string())?; - + let proof_generator_addr = + Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; Ok(VerificationData { proving_system: ProvingSystemId::Mina, proof, @@ -123,7 +115,7 @@ fn serialize_state_hash_field(state_hash_field_str: &str) -> Result, Str })?; let state_hash_field_bytes = state_hash_field.to_bytes(); - debug_assert_eq!(state_hash_field_bytes.len(), STATE_HASH_SIZE); + debug_assert_eq!(state_hash_field_bytes.len(), MINA_STATE_HASH_SIZE); Ok(state_hash_field_bytes) } @@ -172,22 +164,12 @@ fn serialize_protocol_state_proof(response_value: &serde_json::Value) -> Result< #[cfg(test)] mod tests { - use std::path::PathBuf; + use crate::utils::constants::ANVIL_PROOF_GENERATOR_ADDR; use super::query_and_serialize; #[test] fn serialize_and_deserialize() { - let mut proof_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - proof_path.push("protocol_state.proof"); - let mut pub_input_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - pub_input_path.push("protocol_state.pub"); - - query_and_serialize( - "http://5.9.57.89:3085/graphql", - proof_path.to_str().unwrap(), - pub_input_path.to_str().unwrap(), - ) - .unwrap(); + query_and_serialize("http://5.9.57.89:3085/graphql", ANVIL_PROOF_GENERATOR_ADDR).unwrap(); } } diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index c3b213fe..1e543c9f 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -4,57 +4,33 @@ use std::sync::Arc; use aligned_sdk::core::types::{AlignedVerificationData, Chain, VerificationDataCommitment}; use ethers::{abi::AbiEncode, prelude::*}; use k256::ecdsa::SigningKey; -use log::{debug, info}; +use log::{debug, error, info}; + +use crate::utils::constants::{ANVIL_CHAIN_ID, BRIDGE_DEVNET_ETH_ADDR}; abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); type MinaBridgeEthereum = MinaBridgeEthereumContract, Wallet>>; -// TODO(xqft): define in constants.rs -const ANVIL_PRIVATE_KEY: &str = "2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"; // Anvil address 9 -const ANVIL_CHAIN_ID: u64 = 31337; - pub async fn update( verification_data: AlignedVerificationData, pub_input: Vec, + chain: &Chain, + eth_rpc_url: &str, + wallet: Wallet, ) -> Result { - let chain = - match std::env::var("ETH_CHAIN") - .expect("couldn't get ETH_CHAIN environment variable.") - .as_str() - { - "devnet" => { - debug!("Selected Anvil devnet chain."); - Chain::Devnet - } - "holesky" => { - debug!("Selected Holesky chain."); - Chain::Holesky - } - _ => return Err( - "Unrecognized chain, possible values for ETH_CHAIN are \"devnet\" and \"holesky\"." - .to_owned(), - ), - }; - - let eth_rpc_url = if let Ok(eth_rpc_url) = std::env::var("ETH_RPC_URL") { - eth_rpc_url - } else if matches!(chain, Chain::Devnet) { - debug!("Using default Ethereum RPC URL for devnet"); - "http://localhost:8545".to_string() - } else { - return Err("Chain selected is Holesky but couldn't read ETH_RPC_URL".to_string()); - }; - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35", - _ => unimplemented!(), + Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, + _ => { + error!("Unimplemented Ethereum contract on selected chain"); + unimplemented!() + } }) .map_err(|err| err.to_string())?; debug!("Creating contract instance"); - let mina_bridge_contract = mina_bridge_contract(ð_rpc_url, bridge_eth_addr)?; + let mina_bridge_contract = mina_bridge_contract(eth_rpc_url, bridge_eth_addr, chain, wallet)?; let AlignedVerificationData { verification_data_commitment, @@ -77,7 +53,8 @@ pub async fn update( .. } = verification_data_commitment; - debug!("Calling updateLastVerifiedState()"); + debug!("Updating contract"); + let update_call = mina_bridge_contract.update_last_verified_state( proof_commitment, proving_system_aux_data_commitment, @@ -87,7 +64,7 @@ pub async fn update( index_in_batch.into(), pub_input.into(), ); - // call reverts if batch is not valid. + // update call reverts if batch is not valid or proof isn't included in it. info!( "Estimated gas cost: {}", @@ -113,6 +90,7 @@ pub async fn update( receipt.gas_used.ok_or("Missing gas used")? ); + debug!("Getting contract stored hash"); let new_state_hash = mina_bridge_contract .get_last_verified_state_hash() .await @@ -124,11 +102,16 @@ pub async fn update( fn mina_bridge_contract( eth_rpc_url: &str, contract_address: Address, + chain: &Chain, + wallet: Wallet, ) -> Result { let eth_rpc_provider = Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; - let wallet = LocalWallet::from_str(ANVIL_PRIVATE_KEY).expect("failed to create wallet"); - let signer = SignerMiddleware::new(eth_rpc_provider, wallet.with_chain_id(ANVIL_CHAIN_ID)); + let chain_id = match chain { + Chain::Devnet => ANVIL_CHAIN_ID, + _ => unimplemented!(), + }; + let signer = SignerMiddleware::new(eth_rpc_provider, wallet.with_chain_id(chain_id)); let client = Arc::new(signer); Ok(MinaBridgeEthereum::new(contract_address, client)) } diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs new file mode 100644 index 00000000..3e31dc55 --- /dev/null +++ b/core/src/utils/constants.rs @@ -0,0 +1,18 @@ +// Anvil related constants +pub const ANVIL_PRIVATE_KEY: &str = + "2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"; // Anvil wallet 9 +pub const ANVIL_CHAIN_ID: u64 = 31337; +pub const ANVIL_BATCHER_ADDR: &str = "ws://localhost:8080"; +pub const ANVIL_BATCHER_ETH_ADDR: &str = "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0"; +pub const ANVIL_ETH_RPC_URL: &str = "http://localhost:8545"; +pub const ANVIL_PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; + +// Mina related constants +// TODO(gabrielbosio): These are temporary, we will fetch the tip from the Mina contract instead of using these hardcoded values. +pub const MINA_TIP_PROTOCOL_STATE: &str = "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"; +pub const MINA_TIP_STATE_HASH_FIELD: &str = + "26201757517054449641912404249424749469164718222967816857204695395894215860942"; +pub const MINA_STATE_HASH_SIZE: usize = 32; + +// Bridge related constants +pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; diff --git a/core/src/utils/env.rs b/core/src/utils/env.rs new file mode 100644 index 00000000..cce98ccd --- /dev/null +++ b/core/src/utils/env.rs @@ -0,0 +1,87 @@ +use aligned_sdk::core::types::Chain; +extern crate dotenv; +use dotenv::dotenv; +use log::debug; + +use super::constants::{ + ANVIL_BATCHER_ADDR, ANVIL_BATCHER_ETH_ADDR, ANVIL_ETH_RPC_URL, ANVIL_PROOF_GENERATOR_ADDR, +}; + +pub struct EnvironmentVariables { + pub rpc_url: String, + pub chain: Chain, + pub batcher_addr: String, + pub batcher_eth_addr: String, + pub eth_rpc_url: String, + pub proof_generator_addr: String, + pub keystore_path: Option, + pub private_key: Option, +} + +fn load_var_or(key: &str, default: &str, chain: &Chain) -> Result { + // Default value is only valid for Anvil devnet setup. + match std::env::var(key) { + Ok(value) => Ok(value), + Err(_) if matches!(chain, Chain::Devnet) => { + debug!("Using default {} for devnet: {}", key, default); + Ok(default.to_string()) + } + Err(err) => Err(format!( + "Chain selected is not Devnet but couldn't read {}: {}", + key, err + )), + } +} + +impl EnvironmentVariables { + pub fn new() -> Result { + dotenv().map_err(|err| format!("Couldn't load .env file: {}", err))?; + + let rpc_url = std::env::var("MINA_RPC_URL") + .map_err(|err| format!("Couldn't get MINA_RPC_URL env. variable: {err}"))?; + let chain = match std::env::var("ETH_CHAIN") + .map_err(|err| format!("Couldn't get ETH_CHAIN env. variable: {err}"))? + .as_str() + { + "devnet" => { + debug!("Selected Anvil devnet chain."); + Chain::Devnet + } + "holesky" => { + debug!("Selected Holesky chain."); + Chain::Holesky + } + _ => return Err( + "Unrecognized chain, possible values for ETH_CHAIN are \"devnet\" and \"holesky\"." + .to_owned(), + ), + }; + + let batcher_addr = load_var_or("BATCHER_ADDR", ANVIL_BATCHER_ADDR, &chain)?; + let batcher_eth_addr = load_var_or("BATCHER_ETH_ADDR", ANVIL_BATCHER_ETH_ADDR, &chain)?; + let eth_rpc_url = load_var_or("ETH_RPC_URL", ANVIL_ETH_RPC_URL, &chain)?; + let proof_generator_addr = + load_var_or("PROOF_GENERATOR_ADDR", ANVIL_PROOF_GENERATOR_ADDR, &chain)?; + + let keystore_path = std::env::var("KEYSTORE_PATH").ok(); + let private_key = std::env::var("PRIVATE_KEY").ok(); + + if keystore_path.is_some() && private_key.is_some() { + return Err( + "Both keystore and private key env. variables are defined. Choose only one." + .to_string(), + ); + } + + Ok(EnvironmentVariables { + rpc_url, + chain, + batcher_addr, + batcher_eth_addr, + eth_rpc_url, + proof_generator_addr, + keystore_path, + private_key, + }) + } +} diff --git a/core/src/utils/mod.rs b/core/src/utils/mod.rs new file mode 100644 index 00000000..758c9cd9 --- /dev/null +++ b/core/src/utils/mod.rs @@ -0,0 +1,3 @@ +pub mod constants; +pub mod env; +pub mod wallet; diff --git a/core/src/utils/wallet.rs b/core/src/utils/wallet.rs new file mode 100644 index 00000000..c3d2249e --- /dev/null +++ b/core/src/utils/wallet.rs @@ -0,0 +1,46 @@ +use std::str::FromStr; + +use aligned_sdk::core::types::Chain; +use ethers::{ + prelude::k256::ecdsa::SigningKey, + signers::{LocalWallet, Wallet}, +}; +use log::info; + +use crate::utils::constants::ANVIL_PRIVATE_KEY; + +pub fn get_wallet( + chain: &Chain, + keystore_path: Option<&str>, + private_key: Option<&str>, +) -> Result, String> { + if keystore_path.is_some() && private_key.is_some() { + return Err( + "Both keystore and private key env. variables are defined. Choose only one." + .to_string(), + ); + } + + if matches!(chain, Chain::Holesky) { + if let Some(keystore_path) = keystore_path { + info!("Using keystore for Holesky wallet"); + let password = rpassword::prompt_password("Please enter your keystore password:") + .map_err(|err| err.to_string())?; + Wallet::decrypt_keystore(keystore_path, password).map_err(|err| err.to_string()) + } else if let Some(private_key) = private_key { + info!("Using private key for Holesky wallet"); + private_key + .parse::() + .map_err(|err| err.to_string()) + } else { + return Err( + "Holesky chain was selected but couldn't find KEYSTORE_PATH or PRIVATE_KEY." + .to_string(), + ); + } + } else { + info!("Using Anvil wallet 9"); + LocalWallet::from_str(ANVIL_PRIVATE_KEY) + .map_err(|err| format!("Failed to create Anvil wallet: {}", err)) + } +} From fb383c79ba9eca5476819d036b45ebd20a25f2e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 31 Jul 2024 16:14:59 -0300 Subject: [PATCH 09/46] Started README specification section (#300) * Started README specification section * Architecture updated * Architecture links updated * update Mina Polling Service Architecture * Update specification * README fixes * Fix warning * Fix usage section * Update consensus checks * Fix header * Fix about * Fix about * Fix links * Fix links * Update README.md --------- Co-authored-by: Eduardo Veralli --- README.md | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 129 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4968acd9..8f245352 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,151 @@ +
+ # mina_bridge 🌉 ## Zero-knowledge state bridge from Mina to Ethereum +
+ ## About -This project introduces the proof generation, posting and verification of the validity of [Mina](https://minaprotocol.com/) states into a EVM chain, which will serve as a foundation for token bridging. +This project introduces the verification of [Mina Protocol](https://minaprotocol.com/) states into a EVM chain, which will serve as a foundation for token bridging. -This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina proofs on Ethereum. +This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State on Ethereum. ## Usage 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) 1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. 1. In the root folder, deploy the bridge's contract with: + ```sh make deploy_contract_anvil ``` 1. Run the core program: -```sh -make + + ```sh + make + ``` + +# Specification + +## Core + +[`mina_bridge repo: core/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core) + +A Rust library+binary project that includes the next modules: + +### Mina Polling Service + +[`mina_bridge repo: core/src/mina_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina_polling_service.rs) + +This module queries a Mina node (defined by the user via the `MINA_RPC_URL` env. variable) GraphQL DB for the latest state data (called the candidate state) and proof. + +It also queries the Bridge’s smart contract for the last verified Mina state hash, called the **Bridge’s tip state** or just tip state (if there’s no tip state in the smart contract then it defaults to the hardcoded genesis hash instead) and queries the state corresponding to that hash to the Mina node. + +Then it serializes: +- both states (which are an OCaml structure encoded in base64, standard vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state()`) +- both state hashes (field element) as bytes (arkworks serialization). (`serialize_state_hash_field()`) +- the candidate state proof (an OCaml structure encoded in base64, URL vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state_proof()`) + +This data composes what we call a **Mina Proof of State**. + +#### Mina Proof of State + +We understand a Mina Proof of State to be composed of: + +- **public inputs** (vector of bytes): `[candidate_state_hash, candidate_state_length, candidate_state, tip_state_hash, tip_state_length, tip_state]`. We include the lengths of the states in bytes because these can vary, unlike the hashes which are a fixed 32 bytes. +- **proof**: Kimchi proof of the candidate state (specifically a Wrap proof in the context of the Pickles recursive system). We like to call it “Pickles proof” for simplicity. + +This is the proof that the Mina verifier in Aligned (also called a Mina operator) expects. + +### Aligned Polling Service + +[`mina_bridge repo: core/src/aligned_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/aligned_polling_service.rs) + +This module sends the Mina Proof of State (retrieved by the Mina Polling Service) to the Aligned batcher for verification, using the Aligned SDK. The batcher executes pre-verification checks that validate the integrity of the proof and discards it if one of these checks is unsuccessful. After pre-verification, the batcher includes the Mina Proof of State in the current proof batch for then sending it to Aligned’s operators. + +The Aligned Polling Service waits until the batch that includes the Mina Proof of State is verified, polling Aligned every 10 seconds (this is done by the Aligned SDK). + +Finally the service returns the verification data sent by Aligned after proof submission. This is used for updating the Bridge’s tip state, by sending a transaction to the Bridge’s smart contract. + + +### Smart Contract Utility + +[`mina_bridge repo: core/src/smart_contract_utility.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/smart_contract_utility.rs) + +This module sends a transaction to the Bridge’s smart contract that calls the “update tip” (see the [Smart Contract section](#smart-contract)) function by sending the **incomplete** verification data retrieved by the Aligned Polling Service, aside from the Mina Proof of State public inputs. By “incomplete” we mean that we’re sending all the verification data, except for the public input commitment, which is a keccak256 hash of the public inputs. So by sending the public inputs to the contract we can cheaply calculate on-chain the public input commitment for completing the verification data. We do this instead of directly sending the commitment so the contract can: + +- check that the `tip_state_hash` is indeed the tip state hash stored in the contract +- retrieve the `candidate_state_hash` and store it if the candidate was verified + +### Smart Contract + +[`mina_bridge repo: contract/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract) + +The contract stores the Bridge’s tip state hash and exposes functions to read (`getTipStateHash()`) or update it (`updateTipStateHash()`). Generally it’s the Smart Contract Utility that will send a transaction to update the tip state hash. + +The Bridge’s contract update function calls the Aligned Service Manager smart contract to check that the Mina Proof of State was verified in Aligned. The parameters that the Aligned Service Manager needs for checking is the complete verification data. + +If the Aligned Service Manager call returns true, this means that a Mina Proof of State of some candidate state (whose hash is known by the contract), checked against the Bridge’s tip state (consensus checking), was verified. Then this candidate state is now the tip state, and so its hash is stored in the contract. + +#### Gas cost +Currently the cost of the “update tip” transaction is in between 100k and 150k gas, a big part of it being the calldata cost of sending both states data in the public inputs of the Mina Proof of State. The cost could be decreased to <100k by modifying the definition of a Mina Proof of State; sending the state data as proof data instead of public inputs. At the current phase of the project this is not a priority so this change wasn’t done yet. + +## Aligned’s Mina Proof of State verifier + +[`aligned_layer repo: operator/mina/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) + +Aligned Layer integrated a verifier in its operator code for verifying Mina Proofs of State. + +### Consensus checking + +The first step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate state and the tip state. + +Currently the only check implemented is the one corresponding to short-range forks. The check just compares that the candidate state’s height is greater than the tip’s. If equal, tiebreak logic is implemented. Tiebreak consists in lexicographical comparison of the VRF hashes of both states, and if these are equal then we compare the consensus state hashes. + +So the total logic can be summed up by: + +```rust +if candidate_block_height > tip_block_height { + return candidate; +} + +// tiebreak logic +else if candidate_block_height == tip_block_height { + // compare last VRF digests lexicographically + if hash_last_vrf(candidate) > hash_last_vrf(tip) { + return candidate; + } else if hash_last_vrf(candidate) == hash_last_vrf(tip) { + // compare consensus state hashes lexicographically + if hash_state(candidate) > hash_state(tip) { + return candidate; + } + } +} + +return tip; ``` -## Kimchi proving system +If the candidate wins the comparisons, then verification continues. If not, verification fails. + +The full code details can be consulted in the GitHub repository link at the [top of the section](#aligned's-mina-proof-of-state-verifier). We use OpenMina’s code for hashing the consensus state. + +> [!WARNING] +> At the moment we’re unsure about other considerations or checks for the consensus checking step. This step is under investigation. + +### State hash check + +We check that both the candidate and tip state hashes are correct by hashing the corresponding state data using OpenMina’s hasher. This way we can be certain that the hashes are valid if the Mina Proof of State was verified in Aligned, which is useful for the Bridge’s smart contract to check that the tip state is indeed the state corresponding to the tip, and for storing the candidate hash if its proof is valid. + +### Pickles verification + +This is the last step of the Mina Proof of State verifier. We are leveraging OpenMina’s “block verifier” to verify the Pickles proof of the candidate state. The verifier takes as public input the hash of the state. + +> [!WARNING] +> OpenMina’s block verifier is yet to be audited. + +# Kimchi proving system Kimchi is a zero-knowledge proof system that’s a variant of PLONK. From bbd6cd776a130e970acc02eaead17cb6401bf28d Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 1 Aug 2024 18:26:31 -0300 Subject: [PATCH 10/46] Verify account inclusion locally (#290) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove modules that won't be used in the Aligned version * Fix Markdown lint issues * Forward GraphQL port in CI * Remove domain name usage * Remove tunneling and comment Merkle path job * Uncomment Merkle path job and comment nextest step * Try port forwarding to access GraphQL * Revert "Try port forwarding to access GraphQL" This reverts commit 79084b9d1435a82aae905e40419cbd85bb44ce82. * Fetch state hash and proof and parse them * Simplify input parsing * Revert "Simplify input parsing" This reverts commit 91a1621ab1e6c7183c661a3b692a6cf2f3bf3d64. * Separate queries for hash and proof * Integrate with Aligned * Add test * Remove unwraps * Add usage section * Add initial SP1 project for account inclusion * Simplify and add make cmd * Match SP1 version with Aligned one * Query and parse Merkle root * Fix parser lockfile * WIP Merkle path verification * Query merkle root * Verify merkle * Moved query merkle root fn to test module * Move merkle_path.rs to lib.rs * Remove SP1 project, move tests crate out * Small fixes * Added query merkle root * WIP get tip state hash * Finished account inclusion * Update contract names * Update README.md * Apply suggestions from code review Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> * Add newline to .gitignore --------- Co-authored-by: EstĂ©fano Bargas --- Makefile | 3 + README.md | 11 +- account_inclusion/.gitignore | 19 + account_inclusion/Cargo.lock | 5550 +++++++++++++++++++++++ account_inclusion/Cargo.toml | 27 + account_inclusion/src/lib.rs | 299 ++ account_inclusion/src/main.rs | 64 + contract/src/MinaBridge.sol | 10 +- core/Cargo.lock | 2 + core/Cargo.toml | 8 +- core/abi/MinaBridge.json | 2 +- core/src/main.rs | 6 +- core/src/mina_polling_service.rs | 8 +- core/src/smart_contract_utility.rs | 44 +- state_utility/parser/Cargo.lock | 1630 ++++++- state_utility/parser/Cargo.toml | 35 +- state_utility/parser/src/lib.rs | 61 +- state_utility/parser/src/main.rs | 15 +- state_utility/parser/src/merkle_root.rs | 47 - state_utility/run.sh | 2 +- 20 files changed, 7609 insertions(+), 234 deletions(-) create mode 100644 account_inclusion/.gitignore create mode 100644 account_inclusion/Cargo.lock create mode 100644 account_inclusion/Cargo.toml create mode 100644 account_inclusion/src/lib.rs create mode 100644 account_inclusion/src/main.rs delete mode 100644 state_utility/parser/src/merkle_root.rs diff --git a/Makefile b/Makefile index 274efccb..585a8d62 100644 --- a/Makefile +++ b/Makefile @@ -16,3 +16,6 @@ deploy_contract_anvil: --private-key 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6 \ contract/script/MinaBridge.s.sol:MinaBridgeDeployer # deploy_contract_anvil uses Anvil wallet 9, same as Aligned for deploying its contracts. + +verify_account_inclusion: + @cargo run --manifest-path account_inclusion/Cargo.toml --release -- ${PUBLIC_KEY} diff --git a/README.md b/README.md index 8f245352..5e7cc352 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ This project introduces the verification of [Mina Protocol](https://minaprotocol This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State on Ethereum. ## Usage - +### Bridge 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) 1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. 1. In the root folder, deploy the bridge's contract with: @@ -26,7 +26,14 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan ```sh make ``` - +### Account inclusion local verifier +After verifying a Mina state, you can locally verify the inclusion of some Mina account given its public key in the bridged state. + +1. Run + + ```sh + make verify_account_inclusion PUBLIC_KEY= + ``` # Specification ## Core diff --git a/account_inclusion/.gitignore b/account_inclusion/.gitignore new file mode 100644 index 00000000..beaa6203 --- /dev/null +++ b/account_inclusion/.gitignore @@ -0,0 +1,19 @@ +# Cargo build +**/target + +# Cargo config +.cargo + +# Profile-guided optimization +/tmp +pgo-data.profdata + +# MacOS nuisances +.DS_Store + +# Proofs +**/proof-with-pis.json +**/proof-with-io.json + +# Env +.env diff --git a/account_inclusion/Cargo.lock b/account_inclusion/Cargo.lock new file mode 100644 index 00000000..5ad06023 --- /dev/null +++ b/account_inclusion/Cargo.lock @@ -0,0 +1,5550 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "account-inclusion" +version = "0.1.0" +dependencies = [ + "base64 0.22.1", + "core", + "dotenv", + "env_logger", + "hex", + "kimchi", + "log", + "mina-p2p-messages", + "mina-tree", + "num-bigint", + "reqwest 0.12.5", + "serde", + "serde_json", + "snark", + "tokio", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aligned-sdk" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#e0e42d2543823482336b2f35d9e3392adb1eed5a" +dependencies = [ + "ethers", + "futures-util", + "hex", + "lambdaworks-crypto", + "log", + "serde", + "serde_json", + "sha3", + "tokio", + "tokio-tungstenite 0.23.1", + "url", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "ark-ec" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rayon", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.11.2", + "rayon", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", + "rayon", +] + +[[package]] +name = "arrayref" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-trait" +version = "0.1.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.0", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "binprot" +version = "0.1.8" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "binprot_derive", + "byteorder", + "md5", +] + +[[package]] +name = "binprot_derive" +version = "0.1.7" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake3" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca2be1d5c43812bae364ee3f30b3afcb7877cf59f4aeb94c66f313a41d2fac9" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.6", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core" +version = "0.1.0" +dependencies = [ + "aligned-sdk", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "dotenv", + "env_logger", + "ethers", + "hex", + "kimchi", + "log", + "mina-curves", + "mina-p2p-messages", + "mina-tree", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "poly-commitment", + "reqwest 0.12.5", + "rmp-serde", + "rpassword", + "serde", + "serde_json", + "tokio", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.72", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn 2.0.72", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "disjoint-set" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" + +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256", + "log", + "rand", + "rlp", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "env_filter" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "reqwest 0.11.27", + "serde", + "serde_json", + "syn 2.0.72", + "toml 0.8.19", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.72", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum", + "once_cell", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum 0.26.3", + "syn 2.0.72", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "chrono", + "ethers-core", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.22.1", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-channel", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http 0.2.12", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite 0.20.1", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "cfg-if", + "const-hex", + "dirs", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver 1.0.23", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "groupmap" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "rand", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.0", + "serde", + "spin 0.9.8", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.30", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "rustls 0.23.12", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.0", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kimchi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "blake2", + "disjoint-set", + "groupmap", + "hex", + "itertools 0.10.5", + "mina-curves", + "mina-poseidon", + "num-bigint", + "num-derive", + "num-integer", + "num-traits", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "poly-commitment", + "rand", + "rand_core", + "rayon", + "rmp-serde", + "serde", + "serde_with 1.14.0", + "strum 0.24.1", + "strum_macros 0.24.3", + "thiserror", + "turshi", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "lambdaworks-crypto" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fb5d4f22241504f7c7b8d2c3a7d7835d7c07117f10bff2a7d96a9ef6ef217c3" +dependencies = [ + "lambdaworks-math", + "serde", + "sha2 0.10.8", + "sha3", +] + +[[package]] +name = "lambdaworks-math" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "linkme" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mina-curves" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", +] + +[[package]] +name = "mina-hasher" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff", + "bitvec", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "serde", +] + +[[package]] +name = "mina-p2p-messages" +version = "0.6.4" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff", + "base64 0.13.1", + "binprot", + "binprot_derive", + "blake2", + "bs58 0.4.0", + "derive_more", + "hex", + "mina-curves", + "mina-hasher", + "mina-poseidon", + "mina-signer", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rsexp", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "time", +] + +[[package]] +name = "mina-poseidon" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "mina-curves", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rayon", + "serde", + "serde_with 1.14.0", +] + +[[package]] +name = "mina-signer" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "bitvec", + "blake2", + "bs58 0.4.0", + "hex", + "mina-curves", + "mina-hasher", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "mina-tree" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "anyhow", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "backtrace", + "base64 0.13.1", + "bitvec", + "blake2", + "bs58 0.4.0", + "chrono", + "crc32fast", + "derive_more", + "getrandom", + "hex", + "itertools 0.10.5", + "kimchi", + "lazy_static", + "libc", + "mina-curves", + "mina-hasher", + "mina-p2p-messages", + "mina-poseidon", + "mina-signer", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "openmina-core", + "poly-commitment", + "postcard", + "rand", + "rand_pcg", + "rand_seeder", + "rayon", + "serde", + "serde_json", + "serde_with 3.9.0", + "sha2 0.10.8", + "static_assertions", + "thiserror", + "tuple-map", + "uuid 1.10.0", + "wasm-bindgen", + "wasm_thread", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.8", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand", + "serde", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 3.9.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "object" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openmina-core" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff", + "binprot", + "binprot_derive", + "hex", + "lazy_static", + "md5", + "mina-hasher", + "mina-p2p-messages", + "multihash", + "openmina-macros", + "redux", + "serde", + "sha2 0.10.8", + "slab", + "time", + "tokio", + "tracing", +] + +[[package]] +name = "openmina-macros" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.3", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.2.6", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "poly-commitment" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "blake2", + "groupmap", + "itertools 0.10.5", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "thiserror", +] + +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2288c0e17cc8d342c712bb43a257a80ebffce59cdb33d5000d8348f3ec02528b" +dependencies = [ + "zerocopy", + "zerocopy-derive", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn 2.0.72", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bitflags 2.6.0", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax", + "unarray", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_seeder" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "redux" +version = "0.1.0" +source = "git+https://github.com/openmina/redux-rs.git?rev=2d1d8db#2d1d8dbd7239c0aec91db8f11126b90068dc848b" +dependencies = [ + "enum_dispatch", + "linkme", + "paste", + "serde", + "wasm-timer", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", + "winreg 0.50.0", +] + +[[package]] +name = "reqwest" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-rustls 0.27.2", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile 2.1.2", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.52.0", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rpassword" +version = "7.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +dependencies = [ + "libc", + "rtoolbox", + "windows-sys 0.48.0", +] + +[[package]] +name = "rsexp" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3df9a9b6491d42c0fc527e92a87525c17e45c6b9c22345702a6dc0400320bf1" + +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki 0.102.6", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_json" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.2.6", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros 3.9.0", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", + "serde", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snark" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "bincode", + "derive_more", + "hex", + "kimchi", + "linkme", + "mina-curves", + "mina-hasher", + "mina-p2p-messages", + "mina-poseidon", + "mina-signer", + "mina-tree", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "openmina-core", + "poly-commitment", + "rand", + "rayon", + "redux", + "serde", + "serde_json", + "sha2 0.10.8", + "strum_macros 0.26.4", + "thiserror", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.72", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs", + "fs2", + "hex", + "once_cell", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.12", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite 0.20.1", + "webpki-roots", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +dependencies = [ + "futures-util", + "log", + "native-tls", + "tokio", + "tokio-native-tls", + "tungstenite 0.23.0", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.20", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.18", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "native-tls", + "rand", + "sha1", + "thiserror", + "utf-8", +] + +[[package]] +name = "tuple-map" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62" + +[[package]] +name = "turshi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff", + "hex", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +dependencies = [ + "getrandom", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "git+https://github.com/fusetim/wasm-timer?branch=tim-add-missing-methods#39e1c2818944f804d68d64dae0d5639d22b0e59e" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm_thread" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52fc987e67957cab58160d1ea273a2886972ef6f59c7fa0c02e9fe2c8e11706" +dependencies = [ + "async-channel", + "futures", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.0", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.12+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/account_inclusion/Cargo.toml b/account_inclusion/Cargo.toml new file mode 100644 index 00000000..a7eedadd --- /dev/null +++ b/account_inclusion/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "account-inclusion" +version = "0.1.0" +edition = "2021" + +[dependencies] +kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } +mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } +snark = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } +hex = "0.4.3" +reqwest = { version = "0.12.5", features = ["blocking"] } +serde_json = "1.0.121" +serde = "1.0.204" +num-bigint = { version = "0.4.3" } +base64 = "0.22.1" +core = { path = "../core/" } +tokio = "1.39.1" +dotenv = "0.15.0" +env_logger = "0.11.5" +log = "0.4.22" + +[patch.crates-io] +ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-ec = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-poly = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-serialize = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/account_inclusion/src/lib.rs b/account_inclusion/src/lib.rs new file mode 100644 index 00000000..cce1ef87 --- /dev/null +++ b/account_inclusion/src/lib.rs @@ -0,0 +1,299 @@ +use std::{fmt::Write, str::FromStr}; + +use base64::{prelude::BASE64_STANDARD, Engine}; +use kimchi::mina_curves::pasta::Fp; +use log::debug; +use mina_p2p_messages::{ + binprot::BinProtRead, + v2::{hash_with_kimchi, MinaStateProtocolStateValueStableV2, StateHash}, +}; +use mina_tree::MerklePath; +use reqwest::header::CONTENT_TYPE; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug)] +#[serde(rename_all = "camelCase")] +pub struct Query { + pub data: Data, +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(rename_all = "camelCase")] +pub struct Data { + pub account: Option, + #[cfg(test)] + pub daemon_status: Option, + pub protocol_state: Option, +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(rename_all = "camelCase")] +pub struct Account { + pub leaf_hash: String, + pub merkle_path: Vec, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(rename_all = "camelCase")] +pub struct MerkleLeaf { + pub left: Option, + pub right: Option, +} + +#[cfg(test)] +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(rename_all = "camelCase")] +pub struct DaemonStatus { + pub ledger_merkle_root: String, +} + +/// Queries the merkle path and leaf hash from the GraphQL endpoint. +pub fn query_leaf_and_merkle_path( + rpc_url: &str, + public_key: &str, +) -> Result<(Fp, Vec), String> { + // TODO(xqft): we can't trust the Mina node to provide us + // the correct leaf hash, we should add a check or directly + // hash the account information to get the leaf. + + debug!("Querying merkle leaf and path of public key {}", public_key); + let query: Query = serde_json::from_str( + &reqwest::blocking::Client::new() + .post(rpc_url) + .header(CONTENT_TYPE, "application/json") + .body(format!( + r#"{{ + "query": "{{ + account(publicKey: \"{public_key}\") {{ + leafHash + merklePath {{ + left + right + }} + }} + }}" + }}"#, + )) + .send() + .map_err(|err| format!("Error making request {err}"))? + .text() + .map_err(|err| format!("Error getting text {err}"))?, + ) + .map_err(|err| format!("Error converting to json {err}"))?; + + let account = query + .data + .account + .ok_or("Error getting account data".to_string())?; + + let leaf_hash = Fp::from_str(&account.leaf_hash) + .map_err(|_| "Error deserializing leaf hash".to_string())?; + let merkle_path = account + .merkle_path + .into_iter() + .map(|node| -> Result { + match (node.left, node.right) { + (Some(fp_str), None) => Ok(MerklePath::Left(Fp::from_str(&fp_str)?)), + (None, Some(fp_str)) => Ok(MerklePath::Right(Fp::from_str(&fp_str)?)), + _ => unreachable!(), + } + }) + .collect::, ()>>() + .map_err(|_| "Error deserializing merkle path nodes".to_string())?; + + Ok((leaf_hash, merkle_path)) +} + +/// Queries the ledger's merkle root from a state object, via its state hash. +pub fn query_merkle_root(rpc_url: &str, state_hash: Fp) -> Result { + let state_hash = StateHash::from_fp(state_hash).to_string(); + debug!("Querying merkle root of encoded state hash {}", state_hash); + + let query: Query = serde_json::from_str( + &reqwest::blocking::Client::new() + .post(rpc_url) + .header(CONTENT_TYPE, "application/json") + .body(format!( + r#"{{ + "query": "{{ + protocolState(encoding: BASE64, stateHash: \"{state_hash}\") {{ + leafHash + merklePath {{ + left + right + }} + }} + }}" + }}"#, + )) + .send() + .map_err(|err| format!("Error making request {err}"))? + .text() + .map_err(|err| format!("Error getting text {err}"))?, + ) + .map_err(|err| format!("Error converting to json {err}"))?; + + let protocol_state_base64 = query + .data + .protocol_state + .ok_or("Error getting protocol state".to_string())?; + let protocol_state_binprot = BASE64_STANDARD + .decode(protocol_state_base64) + .map_err(|err| err.to_string())?; + let protocol_state = + MinaStateProtocolStateValueStableV2::binprot_read(&mut protocol_state_binprot.as_slice()) + .map_err(|err| err.to_string())?; + + Ok(protocol_state + .body + .blockchain_state + .staged_ledger_hash + .non_snark + .ledger_hash + .0 + .clone() + .into()) +} + +/// Based on OpenMina's implementation +/// https://github.com/openmina/openmina/blob/d790af59a8bd815893f7773f659351b79ed87648/ledger/src/account/account.rs#L1444 +pub fn verify_merkle_proof(leaf_hash: Fp, merkle_path: Vec, merkle_root: Fp) -> bool { + let mut param = String::with_capacity(16); + + let calculated_root = merkle_path + .iter() + .enumerate() + .fold(leaf_hash, |accum, (depth, path)| { + let hashes = match path { + MerklePath::Left(right) => [accum, *right], + MerklePath::Right(left) => [*left, accum], + }; + + param.clear(); + write!(&mut param, "MinaMklTree{:03}", depth).unwrap(); + + hash_with_kimchi(param.as_str(), &hashes) + }); + + calculated_root == merkle_root +} + +#[cfg(test)] +mod test { + use mina_p2p_messages::v2::LedgerHash; + + use super::*; + + /// Queries the ledger's merkle root. Used for testing. + fn query_ledgers_merkle_root(rpc_url: &str) -> Result { + let query: Query = serde_json::from_str( + &reqwest::blocking::Client::new() + .post(rpc_url) + .header(CONTENT_TYPE, "application/json") + .body( + r#"{ + "query": "{ + daemonStatus { + ledgerMerkleRoot + } + }" + }"#, + ) + .send() + .map_err(|err| format!("Error making request {err}"))? + .text() + .map_err(|err| format!("Error getting text {err}"))?, + ) + .map_err(|err| format!("Error converting to json {err}"))?; + + Ok(LedgerHash::from_str( + &query + .data + .daemon_status + .ok_or("Error getting daemon status".to_string())? + .ledger_merkle_root, + ) + .map_err(|_| "Error deserializing leaf hash".to_string())? + .0 + .clone() + .into()) + } + + #[test] + fn test_merkle_leaf() { + let serialized = r#"{ + "right": "42", + "left": null + }"#; + let deserialized: MerkleLeaf = serde_json::from_str(serialized).unwrap(); + + assert_eq!(deserialized.left, None); + } + + #[test] + fn test_merkle_path() { + let serialized = r#"{ + "data": { + "account": { + "leafHash": "25269606294916619424328783876704640983264873133815222226208603489064938585963", + "merklePath": [ + { + "left": null, + "right": "25269606294916619424328783876704640983264873133815222226208603489064938585963" + }, + { + "left": "8196401609013649445499057870676218044178796697776855327762810874439081359829", + "right": null + } + ] + } + } + }"#; + serde_json::from_str::(serialized).unwrap(); + } + + #[test] + fn test_query_leaf_and_merkle_path() { + query_leaf_and_merkle_path( + "http://5.9.57.89:3085/graphql", + "B62qoVxygiYzqRCj4taZDbRJGY6xLvuzoiLdY5CpGm7L9Tz5cj2Qr6i", + ) + .unwrap(); + } + + #[test] + fn test_query_ledgers_merkle_root() { + query_ledgers_merkle_root("http://5.9.57.89:3085/graphql").unwrap(); + } + + #[test] + fn test_query_merkle_root() { + let state_hash = + StateHash::from_str("3NKE3oYnEwSFcuEXWCz1abNLeTgY8BGEvPs1KWPHyj81jmgdojsT") + .unwrap() + .to_fp() + .unwrap(); + let staged_ledger_hash = + query_merkle_root("http://5.9.57.89:3085/graphql", state_hash).unwrap(); + let ledger_merkle_root = + LedgerHash::from_str("jxBZvRKv9aCVEDn7Dd48aWDruHhVkcW1vmburY4gbxCDVEZzecL") + .unwrap() + .to_fp() + .unwrap(); + + assert_eq!(staged_ledger_hash, ledger_merkle_root); + } + + #[test] + fn test_verify_merkle_proof() { + let (leaf_hash, merkle_path) = query_leaf_and_merkle_path( + "http://5.9.57.89:3085/graphql", + "B62qoVxygiYzqRCj4taZDbRJGY6xLvuzoiLdY5CpGm7L9Tz5cj2Qr6i", + ) + .unwrap(); + + let merkle_root = query_ledgers_merkle_root("http://5.9.57.89:3085/graphql").unwrap(); + + assert!(verify_merkle_proof(leaf_hash, merkle_path, merkle_root)); + } +} diff --git a/account_inclusion/src/main.rs b/account_inclusion/src/main.rs new file mode 100644 index 00000000..904fde02 --- /dev/null +++ b/account_inclusion/src/main.rs @@ -0,0 +1,64 @@ +use account_inclusion::{query_leaf_and_merkle_path, query_merkle_root, verify_merkle_proof}; +use core::{smart_contract_utility::get_tip_state_hash, utils::env::EnvironmentVariables}; +use kimchi::turshi::helper::CairoFieldHelpers; +use log::{debug, error, info}; +use std::process; + +#[tokio::main] +async fn main() { + env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); + + debug!("Reading env. variables"); + let EnvironmentVariables { + rpc_url, + chain, + eth_rpc_url, + .. + } = EnvironmentVariables::new().unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let args: Vec = std::env::args().collect(); + let public_key = args.get(1).unwrap_or_else(|| { + error!("Couldn't get public_key from command arguments."); + process::exit(1); + }); + + debug!("Getting tip state hash"); + let state_hash = get_tip_state_hash(&chain, ð_rpc_url) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + info!( + "Retrieved bridge tip state hash: 0x{}", + state_hash.to_hex_be() + ); + + let (leaf_hash, merkle_path) = + query_leaf_and_merkle_path(&rpc_url, public_key).unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + debug!("Leaf hash: {}", leaf_hash); + + let merkle_root = query_merkle_root(&rpc_url, state_hash).unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let is_account_included = verify_merkle_proof(leaf_hash, merkle_path, merkle_root); + if is_account_included { + info!( + "Account {} is included in the latest bridged Mina state.", + public_key + ); + } else { + info!( + "Account {} is not included in the latest bridged Mina state.", + public_key + ) + } +} diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index f1cb668e..02923357 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -8,7 +8,7 @@ error NewStateIsNotValid(); /// @title Mina to Ethereum Bridge's smart contract. contract MinaBridge { /// @notice The state hash of the last verified state converted into a Fp. - uint256 lastVerifiedStateHash; + bytes32 tipStateHash; /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; @@ -17,11 +17,11 @@ contract MinaBridge { aligned = AlignedLayerServiceManager(alignedServiceAddr); } - function getLastVerifiedStateHash() external view returns (uint256) { - return lastVerifiedStateHash; + function getTipStateHash() external view returns (bytes32) { + return tipStateHash; } - function updateLastVerifiedState( + function updateTipState( bytes32 proofCommitment, bytes32 provingSystemAuxDataCommitment, bytes20 proofGeneratorAddr, @@ -45,7 +45,7 @@ contract MinaBridge { if (isNewStateVerified) { // first 32 bytes of pub input is the candidate (now verified) state hash. assembly { - sstore(lastVerifiedStateHash.slot, mload(add(pubInput, 0x20))) + sstore(tipStateHash.slot, mload(add(pubInput, 0x20))) } } else { revert NewStateIsNotValid(); diff --git a/core/Cargo.lock b/core/Cargo.lock index a2ec63f3..57a63488 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -777,9 +777,11 @@ dependencies = [ "mina-curves", "mina-p2p-messages", "mina-tree", + "num-bigint", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", "poly-commitment", "reqwest 0.12.5", + "rmp-serde", "rpassword", "serde", "serde_json", diff --git a/core/Cargo.toml b/core/Cargo.toml index c1f70775..869bc237 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -4,9 +4,12 @@ version = "0.1.0" edition = "2021" [dependencies] +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" +num-bigint = "0.4.3" +rmp-serde = "1.1.2" +hex = "0.4.3" reqwest = { version = "0.12", features = ["blocking"] } -serde_json = "1.0.108" -serde = { version = "1.0.192", features = ["derive"] } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } poly-commitment = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } @@ -27,7 +30,6 @@ tokio = "1.39.1" dotenv = "0.15.0" env_logger = "0.11.5" log = "0.4.22" -hex = "0.4.3" [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index cfe2a5c8..ff762f2c 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"alignedServiceAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getLastVerifiedStateHash","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateLastVerifiedState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516103fa3803806103fa83398101604081905261002f91610054565b600180546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610367806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063233d4f381461003b5780639e48bbf114610050575b600080fd5b61004e6100493660046101c6565b610065565b005b60005460405190815260200160405180910390f35b805160208201206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100a9908c9086908d908d908d908d908d90600401610275565b602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610308565b905080156100ff576020830151600055610118565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261014a57600080fd5b813567ffffffffffffffff8082111561016557610165610123565b604051601f8301601f19908116603f0116810190828211818310171561018d5761018d610123565b816040528381528660208588010111156101a657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156101e157600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461020c57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561023057600080fd5b61023c8b838c01610139565b945060a08a0135935060c08a013591508082111561025957600080fd5b506102668a828b01610139565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156102d157868101830151858201610100015282016102b4565b818111156102e457600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561031a57600080fd5b8151801515811461032a57600080fd5b939250505056fea2646970667358221220a9e2aa6ffa162c874448fa256c99d0f7f081db407b9254818d27a04d3bc4a64764736f6c634300080c0033","sourceMap":"222:1476:63:-:0;;;474:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;524:7;:56;;-1:-1:-1;;;;;;524:56:63;-1:-1:-1;;;;;524:56:63;;;;;;;;;;222:1476;;14:290:65;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:65;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:65:o;:::-;222:1476:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063233d4f381461003b5780639e48bbf114610050575b600080fd5b61004e6100493660046101c6565b610065565b005b60005460405190815260200160405180910390f35b805160208201206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100a9908c9086908d908d908d908d908d90600401610275565b602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610308565b905080156100ff576020830151600055610118565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261014a57600080fd5b813567ffffffffffffffff8082111561016557610165610123565b604051601f8301601f19908116603f0116810190828211818310171561018d5761018d610123565b816040528381528660208588010111156101a657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156101e157600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461020c57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561023057600080fd5b61023c8b838c01610139565b945060a08a0135935060c08a013591508082111561025957600080fd5b506102668a828b01610139565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156102d157868101830151858201610100015282016102b4565b818111156102e457600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561031a57600080fd5b8151801515811461032a57600080fd5b939250505056fea2646970667358221220a9e2aa6ffa162c874448fa256c99d0f7f081db407b9254818d27a04d3bc4a64764736f6c634300080c0033","sourceMap":"222:1476:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;712:984;;;;;;:::i;:::-;;:::i;:::-;;593:113;652:7;678:21;593:113;;2021:25:65;;;2009:2;1994:18;593:113:63;;;;;;;712:984;1058:19;;;;;;1114:7;;:269;;-1:-1:-1;;;1114:269:63;;1029:26;;-1:-1:-1;;;;;1114:7:63;;:28;;:269;;1156:15;;1058:19;;1217:30;;1261:18;;1293:15;;1322:11;;1347:26;;1114:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1088:295;;1398:18;1394:296;;;1601:4;1591:8;1587:19;1581:26;1553;1546:62;1394:296;;;1659:20;;-1:-1:-1;;;1659:20:63;;;;;;;;;;;1394:296;1019:677;;712:984;;;;;;;:::o;14:127:65:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:65;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:1001::-;1000:6;1008;1016;1024;1032;1040;1048;1101:3;1089:9;1080:7;1076:23;1072:33;1069:53;;;1118:1;1115;1108:12;1069:53;1141:23;;;-1:-1:-1;1211:2:65;1196:18;;1183:32;;-1:-1:-1;1265:2:65;1250:18;;1237:32;-1:-1:-1;;1298:43:65;;1288:54;;1278:82;;1356:1;1353;1346:12;1278:82;1379:5;-1:-1:-1;1431:2:65;1416:18;;1403:32;;-1:-1:-1;1486:3:65;1471:19;;1458:33;1510:18;1540:14;;;1537:34;;;1567:1;1564;1557:12;1537:34;1590:49;1631:7;1622:6;1611:9;1607:22;1590:49;:::i;:::-;1580:59;;1686:3;1675:9;1671:19;1658:33;1648:43;;1744:3;1733:9;1729:19;1716:33;1700:49;;1774:2;1764:8;1761:16;1758:36;;;1790:1;1787;1780:12;1758:36;;1813:51;1856:7;1845:8;1834:9;1830:24;1813:51;:::i;:::-;1803:61;;;869:1001;;;;;;;;;;:::o;2057:1067::-;2372:6;2361:9;2354:25;2335:4;2398:2;2436:6;2431:2;2420:9;2416:18;2409:34;2479:6;2474:2;2463:9;2459:18;2452:34;2538:26;2534:31;2526:6;2522:44;2517:2;2506:9;2502:18;2495:72;2604:6;2598:3;2587:9;2583:19;2576:35;2648:3;2642;2631:9;2627:19;2620:32;2681:6;2675:13;2725:6;2719:3;2708:9;2704:19;2697:35;2750:1;2760:141;2774:6;2771:1;2768:13;2760:141;;;2870:14;;;2866:23;;2860:30;2835:17;;;2854:3;2831:27;2824:67;2789:10;;2760:141;;;2919:6;2916:1;2913:13;2910:92;;;2990:1;2984:3;2975:6;2964:9;2960:22;2956:32;2949:43;2910:92;-1:-1:-1;3105:3:65;3090:19;;3083:35;;;;-1:-1:-1;;3063:2:65;3042:15;;;;-1:-1:-1;;3038:29:65;3023:45;3070:3;3019:55;;2057:1067;-1:-1:-1;;;;;;2057:1067:65:o;3129:277::-;3196:6;3249:2;3237:9;3228:7;3224:23;3220:32;3217:52;;;3265:1;3262;3255:12;3217:52;3297:9;3291:16;3350:5;3343:13;3336:21;3329:5;3326:32;3316:60;;3372:1;3369;3362:12;3316:60;3395:5;3129:277;-1:-1:-1;;;3129:277:65:o","linkReferences":{}},"methodIdentifiers":{"getLastVerifiedStateHash()":"9e48bbf1","updateLastVerifiedState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"233d4f38"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getLastVerifiedStateHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateLastVerifiedState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xfc269109bdf29f630de3149fc985b8067d7546b4291d97ded3cfbd1bd8cdc1c0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a5bee863325159ab3cd8cc77fe83e12782156cb5b007833ca3c190e1bacd0f1\",\"dweb:/ipfs/QmZPjmvzGfjF8iSBrshctXucf8DBZwUYgfpbLGpytyh9yf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastVerifiedStateHash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateLastVerifiedState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0xfc269109bdf29f630de3149fc985b8067d7546b4291d97ded3cfbd1bd8cdc1c0","urls":["bzz-raw://9a5bee863325159ab3cd8cc77fe83e12782156cb5b007833ca3c190e1bacd0f1","dweb:/ipfs/QmZPjmvzGfjF8iSBrshctXucf8DBZwUYgfpbLGpytyh9yf"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"alignedServiceAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateTipState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516103fa3803806103fa83398101604081905261002f91610054565b600180546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610367806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e6100493660046101c6565b610065565b005b60005460405190815260200160405180910390f35b805160208201206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100a9908c9086908d908d908d908d908d90600401610275565b602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610308565b905080156100ff576020830151600055610118565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261014a57600080fd5b813567ffffffffffffffff8082111561016557610165610123565b604051601f8301601f19908116603f0116810190828211818310171561018d5761018d610123565b816040528381528660208588010111156101a657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156101e157600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461020c57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561023057600080fd5b61023c8b838c01610139565b945060a08a0135935060c08a013591508082111561025957600080fd5b506102668a828b01610139565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156102d157868101830151858201610100015282016102b4565b818111156102e457600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561031a57600080fd5b8151801515811461032a57600080fd5b939250505056fea264697066735822122003cfee096df438ffa2bdc8a20bcb7f44a2545483eff9138ead34c612bdd3697b64736f6c634300080c0033","sourceMap":"222:1431:63:-:0;;;465:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;515:7;:56;;-1:-1:-1;;;;;;515:56:63;-1:-1:-1;;;;;515:56:63;;;;;;;;;;222:1431;;14:290:65;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:65;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:65:o;:::-;222:1431:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e6100493660046101c6565b610065565b005b60005460405190815260200160405180910390f35b805160208201206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100a9908c9086908d908d908d908d908d90600401610275565b602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610308565b905080156100ff576020830151600055610118565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261014a57600080fd5b813567ffffffffffffffff8082111561016557610165610123565b604051601f8301601f19908116603f0116810190828211818310171561018d5761018d610123565b816040528381528660208588010111156101a657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156101e157600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461020c57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561023057600080fd5b61023c8b838c01610139565b945060a08a0135935060c08a013591508082111561025957600080fd5b506102668a828b01610139565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156102d157868101830151858201610100015282016102b4565b818111156102e457600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561031a57600080fd5b8151801515811461032a57600080fd5b939250505056fea264697066735822122003cfee096df438ffa2bdc8a20bcb7f44a2545483eff9138ead34c612bdd3697b64736f6c634300080c0033","sourceMap":"222:1431:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;685:966;;;;;;:::i;:::-;;:::i;:::-;;584:95;634:7;660:12;584:95;;2021:25:65;;;2009:2;1994:18;584:95:63;;;;;;;685:966;1022:19;;;;;;1078:7;;:269;;-1:-1:-1;;;1078:269:63;;993:26;;-1:-1:-1;;;;;1078:7:63;;:28;;:269;;1120:15;;1022:19;;1181:30;;1225:18;;1257:15;;1286:11;;1311:26;;1078:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1052:295;;1362:18;1358:287;;;1556:4;1546:8;1542:19;1536:26;1517:17;1510:53;1358:287;;;1614:20;;-1:-1:-1;;;1614:20:63;;;;;;;;;;;1358:287;983:668;;685:966;;;;;;;:::o;14:127:65:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:65;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:1001::-;1000:6;1008;1016;1024;1032;1040;1048;1101:3;1089:9;1080:7;1076:23;1072:33;1069:53;;;1118:1;1115;1108:12;1069:53;1141:23;;;-1:-1:-1;1211:2:65;1196:18;;1183:32;;-1:-1:-1;1265:2:65;1250:18;;1237:32;-1:-1:-1;;1298:43:65;;1288:54;;1278:82;;1356:1;1353;1346:12;1278:82;1379:5;-1:-1:-1;1431:2:65;1416:18;;1403:32;;-1:-1:-1;1486:3:65;1471:19;;1458:33;1510:18;1540:14;;;1537:34;;;1567:1;1564;1557:12;1537:34;1590:49;1631:7;1622:6;1611:9;1607:22;1590:49;:::i;:::-;1580:59;;1686:3;1675:9;1671:19;1658:33;1648:43;;1744:3;1733:9;1729:19;1716:33;1700:49;;1774:2;1764:8;1761:16;1758:36;;;1790:1;1787;1780:12;1758:36;;1813:51;1856:7;1845:8;1834:9;1830:24;1813:51;:::i;:::-;1803:61;;;869:1001;;;;;;;;;;:::o;2057:1067::-;2372:6;2361:9;2354:25;2335:4;2398:2;2436:6;2431:2;2420:9;2416:18;2409:34;2479:6;2474:2;2463:9;2459:18;2452:34;2538:26;2534:31;2526:6;2522:44;2517:2;2506:9;2502:18;2495:72;2604:6;2598:3;2587:9;2583:19;2576:35;2648:3;2642;2631:9;2627:19;2620:32;2681:6;2675:13;2725:6;2719:3;2708:9;2704:19;2697:35;2750:1;2760:141;2774:6;2771:1;2768:13;2760:141;;;2870:14;;;2866:23;;2860:30;2835:17;;;2854:3;2831:27;2824:67;2789:10;;2760:141;;;2919:6;2916:1;2913:13;2910:92;;;2990:1;2984:3;2975:6;2964:9;2960:22;2956:32;2949:43;2910:92;-1:-1:-1;3105:3:65;3090:19;;3083:35;;;;-1:-1:-1;;3063:2:65;3042:15;;;;-1:-1:-1;;3038:29:65;3023:45;3070:3;3019:55;;2057:1067;-1:-1:-1;;;;;;2057:1067:65:o;3129:277::-;3196:6;3249:2;3237:9;3228:7;3224:23;3220:32;3217:52;;;3265:1;3262;3255:12;3217:52;3297:9;3291:16;3350:5;3343:13;3336:21;3329:5;3326:32;3316:60;;3372:1;3369;3362:12;3316:60;3395:5;3129:277;-1:-1:-1;;;3129:277:65:o","linkReferences":{}},"methodIdentifiers":{"getTipStateHash()":"b8184745","updateTipState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"afa264c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateTipState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xc3b83018ecc1b0d555872aa9cb383f5e73d3a3736c8b9688c85c8296484bf670\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5028fbb9ed205d39bdef6e56c4b28a25e52786e9e84c596daa201291099e556b\",\"dweb:/ipfs/QmWcfTtokrRM5sM1QUEnPm6XHPtFBYAhtgTYeEFVTjRKMM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateTipState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0xc3b83018ecc1b0d555872aa9cb383f5e73d3a3736c8b9688c85c8296484bf670","urls":["bzz-raw://5028fbb9ed205d39bdef6e56c4b28a25e52786e9e84c596daa201291099e556b","dweb:/ipfs/QmWcfTtokrRM5sM1QUEnPm6XHPtFBYAhtgTYeEFVTjRKMM"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file diff --git a/core/src/main.rs b/core/src/main.rs index 2bd49560..8ed2e98d 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -2,7 +2,7 @@ use core::{ aligned_polling_service, mina_polling_service, smart_contract_utility, utils::{env::EnvironmentVariables, wallet::get_wallet}, }; -use ethers::abi::AbiEncode; +use kimchi::turshi::helper::CairoFieldHelpers; use log::{debug, error, info}; use std::process; @@ -69,7 +69,7 @@ async fn main() { }); info!( - "Success! verified Mina state hash {} was stored in the bridge's smart contract", - verified_state_hash.encode_hex() + "Success! verified Mina state hash 0x{} was stored in the bridge's smart contract", + verified_state_hash.to_hex_be() ); } diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index ebe2b8f8..3fd43e1a 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -2,7 +2,7 @@ use std::str::FromStr as _; use aligned_sdk::core::types::{ProvingSystemId, VerificationData}; use ethers::types::Address; -use kimchi::o1_utils::FieldHelpers; +use kimchi::{o1_utils::FieldHelpers, turshi::helper::CairoFieldHelpers}; use log::{debug, info}; use mina_curves::pasta::Fp; use reqwest::header::CONTENT_TYPE; @@ -36,7 +36,9 @@ pub fn query_and_serialize( let candidate_state_hash = get_state_hash_field(&last_block_value)?; info!( "Queried Mina candidate state 0x{} and its proof from Mainnet node", - hex::encode(&candidate_state_hash) + Fp::from_bytes(&candidate_state_hash) + .map_err(|err| err.to_string())? + .to_hex_be() ); let mut pub_input = candidate_state_hash; @@ -103,6 +105,8 @@ fn get_state_hash_field(response_value: &serde_json::Value) -> Result, S response_value, ))?; + debug!("Queried Mina state hash field: {}", state_hash_field_str); + serialize_state_hash_field(state_hash_field_str) } diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index 1e543c9f..589c9718 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -4,7 +4,9 @@ use std::sync::Arc; use aligned_sdk::core::types::{AlignedVerificationData, Chain, VerificationDataCommitment}; use ethers::{abi::AbiEncode, prelude::*}; use k256::ecdsa::SigningKey; +use kimchi::o1_utils::FieldHelpers; use log::{debug, error, info}; +use mina_curves::pasta::Fp; use crate::utils::constants::{ANVIL_CHAIN_ID, BRIDGE_DEVNET_ETH_ADDR}; @@ -13,13 +15,15 @@ abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); type MinaBridgeEthereum = MinaBridgeEthereumContract, Wallet>>; +type MinaBridgeEthereumCallOnly = MinaBridgeEthereumContract>; + pub async fn update( verification_data: AlignedVerificationData, pub_input: Vec, chain: &Chain, eth_rpc_url: &str, wallet: Wallet, -) -> Result { +) -> Result { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, _ => { @@ -55,7 +59,7 @@ pub async fn update( debug!("Updating contract"); - let update_call = mina_bridge_contract.update_last_verified_state( + let update_call = mina_bridge_contract.update_tip_state( proof_commitment, proving_system_aux_data_commitment, proof_generator_addr, @@ -92,11 +96,33 @@ pub async fn update( debug!("Getting contract stored hash"); let new_state_hash = mina_bridge_contract - .get_last_verified_state_hash() + .get_tip_state_hash() + .await + .map_err(|err| err.to_string())?; + + Fp::from_bytes(&new_state_hash).map_err(|err| err.to_string()) +} + +pub async fn get_tip_state_hash(chain: &Chain, eth_rpc_url: &str) -> Result { + let bridge_eth_addr = Address::from_str(match chain { + Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, + _ => { + error!("Unimplemented Ethereum contract on selected chain"); + unimplemented!() + } + }) + .map_err(|err| err.to_string())?; + + debug!("Creating contract instance"); + let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; + + debug!("Getting contract stored hash"); + let state_hash = mina_bridge_contract + .get_tip_state_hash() .await .map_err(|err| err.to_string())?; - Ok(new_state_hash) + Fp::from_bytes(&state_hash).map_err(|_| "Failed to convert hash to Fp".to_string()) } fn mina_bridge_contract( @@ -115,3 +141,13 @@ fn mina_bridge_contract( let client = Arc::new(signer); Ok(MinaBridgeEthereum::new(contract_address, client)) } + +fn mina_bridge_contract_call_only( + eth_rpc_url: &str, + contract_address: Address, +) -> Result { + let eth_rpc_provider = + Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; + let client = Arc::new(eth_rpc_provider); + Ok(MinaBridgeEthereumCallOnly::new(contract_address, client)) +} diff --git a/state_utility/parser/Cargo.lock b/state_utility/parser/Cargo.lock index 2387155d..54fccbe1 100644 --- a/state_utility/parser/Cargo.lock +++ b/state_utility/parser/Cargo.lock @@ -28,25 +28,45 @@ dependencies = [ "version_check", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + [[package]] name = "ark-ec" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea978406c4b1ca13c2db2373b05cc55429c3575b8b21f1b9ee859aa5b03dd42" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ "ark-ff", "ark-serialize", "ark-std", "derivative", "num-traits", + "rayon", "zeroize", ] [[package]] name = "ark-ff" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ "ark-ff-asm", "ark-ff-macros", @@ -57,15 +77,14 @@ dependencies = [ "num-traits", "paste", "rayon", - "rustc_version", + "rustc_version 0.3.3", "zeroize", ] [[package]] name = "ark-ff-asm" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ "quote", "syn 1.0.109", @@ -74,8 +93,7 @@ dependencies = [ [[package]] name = "ark-ff-macros" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ "num-bigint", "num-traits", @@ -86,21 +104,20 @@ dependencies = [ [[package]] name = "ark-poly" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0f78f47537c2f15706db7e98fe64cc1711dbf9def81218194e17239e53e5aa" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ "ark-ff", "ark-serialize", "ark-std", "derivative", "hashbrown 0.11.2", + "rayon", ] [[package]] name = "ark-serialize" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ "ark-serialize-derive", "ark-std", @@ -110,8 +127,7 @@ dependencies = [ [[package]] name = "ark-serialize-derive" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd4e5f0bf8285d5ed538d27fab7411f3e297908fd93c62195de8bee3f199e82" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ "proc-macro2", "quote", @@ -129,6 +145,44 @@ dependencies = [ "rayon", ] +[[package]] +name = "arrayref" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.3.0" @@ -150,12 +204,47 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "binprot" +version = "0.1.8" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "binprot_derive", + "byteorder", + "md5", +] + +[[package]] +name = "binprot_derive" +version = "0.1.7" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -164,9 +253,74 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] [[package]] name = "block-buffer" @@ -174,7 +328,16 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.7", + "generic-array", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", ] [[package]] @@ -183,7 +346,6 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "sha2", "tinyvec", ] @@ -193,11 +355,17 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" [[package]] name = "cc" @@ -211,6 +379,48 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "core-foundation" version = "0.9.4" @@ -227,6 +437,15 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "cpufeatures" version = "0.2.12" @@ -236,6 +455,21 @@ dependencies = [ "libc", ] +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -267,44 +501,90 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.7", + "generic-array", "typenum", ] [[package]] name = "darling" -version = "0.14.4" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] name = "darling_core" -version = "0.14.4" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", + "strsim 0.10.0", "syn 1.0.109", ] +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.61", +] + [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ - "darling_core", + "darling_core 0.13.4", "quote", "syn 1.0.109", ] +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.61", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + [[package]] name = "derivative" version = "2.2.0" @@ -316,13 +596,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn 2.0.61", +] + [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] @@ -331,16 +624,29 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", + "block-buffer 0.10.4", "crypto-common", + "subtle", ] +[[package]] +name = "disjoint-set" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" + [[package]] name = "either" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + [[package]] name = "encoding_rs" version = "0.8.34" @@ -350,6 +656,18 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.61", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -366,6 +684,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "fastrand" version = "2.1.0" @@ -402,6 +726,27 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.30" @@ -418,12 +763,34 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + [[package]] name = "futures-io" version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.61", +] + [[package]] name = "futures-sink" version = "0.3.30" @@ -442,8 +809,10 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ + "futures-channel", "futures-core", "futures-io", + "futures-macro", "futures-sink", "futures-task", "memchr", @@ -463,23 +832,16 @@ dependencies = [ ] [[package]] -name = "generic-array" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe739944a5406424e080edccb6add95685130b9f160d5407c639c7df0c5836b0" -dependencies = [ - "typenum", -] - -[[package]] -name = "getrandom" -version = "0.2.15" +name = "getrandom" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -488,25 +850,44 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "groupmap" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "rand", +] + [[package]] name = "h2" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", "http", - "indexmap", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", "tracing", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.11.2" @@ -516,6 +897,12 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + [[package]] name = "hashbrown" version = "0.14.5" @@ -523,16 +910,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] -name = "hermit-abi" -version = "0.3.9" +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.0", + "serde", + "spin", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] [[package]] name = "http" @@ -547,9 +951,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", @@ -557,12 +961,12 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", - "futures-core", + "futures-util", "http", "http-body", "pin-project-lite", @@ -570,15 +974,15 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "hyper" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", @@ -594,6 +998,23 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.6.0" @@ -612,9 +1033,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" dependencies = [ "bytes", "futures-channel", @@ -630,6 +1051,29 @@ dependencies = [ "tracing", ] +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -646,6 +1090,17 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + [[package]] name = "indexmap" version = "2.2.6" @@ -654,6 +1109,16 @@ checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", ] [[package]] @@ -662,6 +1127,15 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -677,11 +1151,55 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kimchi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "blake2", + "disjoint-set", + "groupmap", + "hex", + "itertools", + "mina-curves", + "mina-poseidon", + "num-bigint", + "num-derive", + "num-integer", + "num-traits", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "poly-commitment", + "rand", + "rand_core", + "rayon", + "rmp-serde", + "serde", + "serde_with 1.14.0", + "strum", + "strum_macros", + "thiserror", + "turshi", +] + [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" @@ -689,11 +1207,41 @@ version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" +[[package]] +name = "linkme" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.61", +] + [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] [[package]] name = "log" @@ -701,6 +1249,12 @@ version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + [[package]] name = "memchr" version = "2.7.2" @@ -715,13 +1269,20 @@ dependencies = [ "ark-ff", "ark-poly", "ark-serialize", - "bs58", - "generic-array 1.0.0", + "base64 0.22.1", + "bs58 0.5.1", "hex", - "num-bigint", + "kimchi", + "lazy_static", + "mina-curves", + "mina-p2p-messages", + "mina-tree", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "once_cell", + "poly-commitment", "reqwest", + "rmp-serde", "serde", - "serde-enum-str", "serde_json", ] @@ -731,6 +1292,141 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mina-curves" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", +] + +[[package]] +name = "mina-hasher" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff", + "bitvec", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "serde", +] + +[[package]] +name = "mina-p2p-messages" +version = "0.6.4" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff", + "base64 0.13.1", + "binprot", + "binprot_derive", + "blake2", + "bs58 0.4.0", + "derive_more", + "hex", + "mina-curves", + "mina-hasher", + "mina-poseidon", + "mina-signer", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rsexp", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "time", +] + +[[package]] +name = "mina-poseidon" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "mina-curves", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rayon", + "serde", + "serde_with 1.14.0", +] + +[[package]] +name = "mina-signer" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "bitvec", + "blake2", + "bs58 0.4.0", + "hex", + "mina-curves", + "mina-hasher", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "mina-tree" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "anyhow", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "backtrace", + "base64 0.13.1", + "bitvec", + "blake2", + "bs58 0.4.0", + "chrono", + "crc32fast", + "derive_more", + "getrandom", + "hex", + "itertools", + "kimchi", + "lazy_static", + "libc", + "mina-curves", + "mina-hasher", + "mina-p2p-messages", + "mina-poseidon", + "mina-signer", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "openmina-core", + "poly-commitment", + "postcard", + "rand", + "rand_pcg", + "rand_seeder", + "rayon", + "serde", + "serde_json", + "serde_with 3.9.0", + "sha2 0.10.8", + "static_assertions", + "thiserror", + "tuple-map", + "uuid", + "wasm-bindgen", + "wasm_thread", +] + [[package]] name = "miniz_oxide" version = "0.7.2" @@ -751,13 +1447,43 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.8", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -777,6 +1503,25 @@ checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" dependencies = [ "num-integer", "num-traits", + "rand", + "serde", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -798,13 +1543,49 @@ dependencies = [ ] [[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" dependencies = [ - "hermit-abi", - "libc", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 3.9.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "sha2 0.10.8", + "thiserror", ] [[package]] @@ -822,13 +1603,53 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "openmina-core" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff", + "binprot", + "binprot_derive", + "hex", + "lazy_static", + "md5", + "mina-hasher", + "mina-p2p-messages", + "multihash", + "openmina-macros", + "redux", + "serde", + "sha2 0.10.8", + "slab", + "time", + "tokio", + "tracing", +] + +[[package]] +name = "openmina-macros" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.61", +] + [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -856,9 +1677,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", @@ -866,6 +1687,31 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] + [[package]] name = "paste" version = "1.0.15" @@ -927,12 +1773,88 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +[[package]] +name = "poly-commitment" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "blake2", + "groupmap", + "itertools", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "thiserror", +] + +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + [[package]] name = "proc-macro2" version = "1.0.82" @@ -951,12 +1873,19 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ + "libc", "rand_chacha", "rand_core", ] @@ -976,6 +1905,27 @@ name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_seeder" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" +dependencies = [ + "rand_core", +] [[package]] name = "rayon" @@ -997,13 +1947,34 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redux" +version = "0.1.0" +source = "git+https://github.com/openmina/redux-rs.git?rev=2d1d8db#2d1d8dbd7239c0aec91db8f11126b90068dc848b" +dependencies = [ + "enum_dispatch", + "linkme", + "paste", + "serde", + "wasm-timer", +] + [[package]] name = "reqwest" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "encoding_rs", "futures-channel", @@ -1014,6 +1985,7 @@ dependencies = [ "http-body", "http-body-util", "hyper", + "hyper-rustls", "hyper-tls", "hyper-util", "ipnet", @@ -1040,6 +2012,49 @@ dependencies = [ "winreg", ] +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rsexp" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3df9a9b6491d42c0fc527e92a87525c17e45c6b9c22345702a6dc0400320bf1" + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -1048,11 +2063,20 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc_version" -version = "0.3.3" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver", + "semver 1.0.23", ] [[package]] @@ -1061,20 +2085,33 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.23.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + [[package]] name = "rustls-pemfile" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64", + "base64 0.22.1", "rustls-pki-types", ] @@ -1084,6 +2121,23 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +[[package]] +name = "rustls-webpki" +version = "0.102.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + [[package]] name = "ryu" version = "1.0.18" @@ -1099,13 +2153,19 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -1114,9 +2174,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -1131,6 +2191,12 @@ dependencies = [ "semver-parser", ] +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + [[package]] name = "semver-parser" version = "0.10.2" @@ -1149,36 +2215,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-attributes" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eb8ec7724e4e524b2492b510e66957fe1a2c76c26a6975ec80823f2439da685" -dependencies = [ - "darling_core", - "serde-rename-rule", - "syn 1.0.109", -] - -[[package]] -name = "serde-enum-str" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26416dc95fcd46b0e4b12a3758043a229a6914050aaec2e8191949753ed4e9aa" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "serde-attributes", - "syn 1.0.109", -] - -[[package]] -name = "serde-rename-rule" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794e44574226fc701e3be5c651feb7939038fc67fb73f6f4dd5c4ba90fd3be70" - [[package]] name = "serde_derive" version = "1.0.201" @@ -1192,9 +2228,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "itoa", "ryu", @@ -1213,6 +2249,71 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.2.6", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros 3.9.0", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.61", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha2" version = "0.10.8" @@ -1224,6 +2325,16 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + [[package]] name = "slab" version = "0.4.9" @@ -1231,6 +2342,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", + "serde", ] [[package]] @@ -1249,6 +2361,64 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "syn" version = "1.0.109" @@ -1273,9 +2443,21 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "synstructure" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] [[package]] name = "system-configuration" @@ -1298,6 +2480,12 @@ dependencies = [ "libc", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" version = "3.10.1" @@ -1330,6 +2518,37 @@ dependencies = [ "syn 2.0.61", ] +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -1355,7 +2574,6 @@ dependencies = [ "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "socket2", "windows-sys 0.48.0", @@ -1371,6 +2589,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.11" @@ -1384,6 +2613,15 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + [[package]] name = "tower" version = "0.4.13" @@ -1397,7 +2635,6 @@ dependencies = [ "tokio", "tower-layer", "tower-service", - "tracing", ] [[package]] @@ -1418,11 +2655,22 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "log", "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.61", +] + [[package]] name = "tracing-core" version = "0.1.32" @@ -1438,6 +2686,22 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tuple-map" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62" + +[[package]] +name = "turshi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff", + "hex", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", +] + [[package]] name = "typenum" version = "1.17.0" @@ -1471,17 +2735,44 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +dependencies = [ + "getrandom", +] + [[package]] name = "vcpkg" version = "0.2.15" @@ -1575,6 +2866,33 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "git+https://github.com/fusetim/wasm-timer?branch=tim-add-missing-methods#39e1c2818944f804d68d64dae0d5639d22b0e59e" +dependencies = [ + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm_thread" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52fc987e67957cab58160d1ea273a2886972ef6f59c7fa0c02e9fe2c8e11706" +dependencies = [ + "async-channel", + "futures", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "web-sys" version = "0.3.69" @@ -1585,6 +2903,37 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -1734,6 +3083,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zeroize" version = "1.7.0" diff --git a/state_utility/parser/Cargo.toml b/state_utility/parser/Cargo.toml index 47956931..a24cf8b3 100644 --- a/state_utility/parser/Cargo.toml +++ b/state_utility/parser/Cargo.toml @@ -4,19 +4,28 @@ version = "0.1.0" edition = "2021" [dependencies] -serde_json = "1.0.108" -serde = { version = "1.0.192", features = ["derive"] } -serde-enum-str = "0.4.0" +kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +poly-commitment = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } +ark-ff = { version = "0.3.0", features = ["parallel", "asm"] } +ark-ec = { version = "0.3.0", features = ["parallel"] } +ark-poly = { version = "0.3.0", features = ["parallel"] } +ark-serialize = "0.3.0" +serde = "1.0.197" +rmp-serde = "1.1.2" +serde_json = "1.0.118" hex = "0.4.3" +mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } +mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } +base64 = "0.22.1" +bs58 = "0.5.1" +lazy_static = "1.5.0" +once_cell = "1.19.0" reqwest = { version = "0.12", features = ["blocking"] } -# hash functions -#kimchi = { git = "https://github.com/o1-labs/proof-systems.git", branch = "develop", version = "0.1.0" } -#mina-curves = { git = "https://github.com/o1-labs/proof-systems.git", branch = "develop", version = "0.1.0" } -ark-poly = { version = "0.3.0" } -ark-serialize = { version = "0.3.0" } -num-bigint = "0.4.3" -ark-ff = { version = "0.3.0", features = ["parallel", "asm"] } -ark-ec = { version = "0.3.0" } -generic-array = "1.0.0" -bs58 = { version = "0.5.1", features = ["check"] } +[patch.crates-io] +ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-ec = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-poly = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-serialize = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/state_utility/parser/src/lib.rs b/state_utility/parser/src/lib.rs index 1e121eb4..f18c3a55 100644 --- a/state_utility/parser/src/lib.rs +++ b/state_utility/parser/src/lib.rs @@ -1,6 +1,10 @@ -pub mod merkle_root; +use std::{fs, str::FromStr as _}; -use crate::merkle_root::MerkleRoot; +use kimchi::o1_utils::FieldHelpers; +use mina_curves::pasta::Fp; +use mina_p2p_messages::v2::LedgerHash; +use reqwest::header::CONTENT_TYPE; +use serde_json::Value; /// Queries the Mina node to get a Merkle root and parses it from the response and writes it to a file. /// @@ -13,15 +17,46 @@ use crate::merkle_root::MerkleRoot; /// /// If the file cannot be written to, an error will be returned. pub fn query_and_parse_merkle_root(rpc_url: &str, output_path: &str) -> Result<(), String> { - let received_merkle_root = MerkleRoot::query_merkle_root(rpc_url) - .map_err(|err| format!("Error querying merkle root: {err}"))?; - std::fs::write( - output_path, - received_merkle_root - .data - .daemon_status - .ledger_merkle_root - .clone(), - ) - .map_err(|err| format!("Error writing to file: {err}")) + let merkle_root_value = + query_merkle_root(rpc_url).map_err(|err| format!("Error querying merkle root: {err}"))?; + let merkle_root_str = merkle_root_value.as_str().ok_or(format!( + "Error converting Merkle root value to string: {:?}", + merkle_root_value + ))?; + + let merkle_root = LedgerHash::from_str(merkle_root_str) + .map_err(|err| format!("Error creating OCaml Ledger hash struct from string: {err}"))?; + let merkle_root_fp = Fp::from(merkle_root.0.clone()); + + fs::write(output_path, merkle_root_fp.to_hex()) + .map_err(|err| format!("Error writing Merkle root to file: {err}")) +} + +fn query_merkle_root(rpc_url: &str) -> Result { + let body = "{\"query\": \"{ + daemonStatus { + ledgerMerkleRoot + } + }\"}" + .to_owned(); + let client = reqwest::blocking::Client::new(); + let response = client + .post(rpc_url) + .header(CONTENT_TYPE, "application/json") + .body(body) + .send() + .map_err(|err| err.to_string())? + .text() + .map_err(|err| err.to_string())?; + + let response_value = serde_json::Value::from_str(&response).map_err(|err| err.to_string())?; + + response_value + .get("data") + .and_then(|d| d.get("daemonStatus")) + .and_then(|d| d.get("ledgerMerkleRoot").cloned()) + .ok_or(format!( + "Could not get 'data.daemonStatus.ledgerMerkleRoot' from {:?}", + response_value + )) } diff --git a/state_utility/parser/src/main.rs b/state_utility/parser/src/main.rs index 616b68e0..20dc94d2 100644 --- a/state_utility/parser/src/main.rs +++ b/state_utility/parser/src/main.rs @@ -1,11 +1,18 @@ +use std::path::PathBuf; + use merkle_root_parser::query_and_parse_merkle_root; fn main() -> Result<(), String> { let args: Vec = std::env::args().collect(); let rpc_url = args.get(1).ok_or("Error: No RPC URL provided")?; - let merkle_root_out_path = args - .get(2) - .ok_or("Error: No merkle root file provided (or $MINA_RPC_URL is not defined)")?; - query_and_parse_merkle_root(rpc_url, merkle_root_out_path) + + let mut merkle_root_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + merkle_root_path.push("../../merkle_root.pub"); + let merkle_root_path_str = merkle_root_path.to_str().ok_or(format!( + "Error trying to parse output path {:?}", + merkle_root_path + ))?; + + query_and_parse_merkle_root(rpc_url, merkle_root_path_str) } diff --git a/state_utility/parser/src/merkle_root.rs b/state_utility/parser/src/merkle_root.rs deleted file mode 100644 index 8f011153..00000000 --- a/state_utility/parser/src/merkle_root.rs +++ /dev/null @@ -1,47 +0,0 @@ -use reqwest::header::CONTENT_TYPE; -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "camelCase")] -pub struct MerkleRoot { - pub data: Data, -} - -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "camelCase")] -pub struct Data { - pub daemon_status: LedgerMerkleRoot, -} - -#[allow(clippy::module_name_repetitions)] -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "camelCase")] -pub struct LedgerMerkleRoot { - pub ledger_merkle_root: String, -} - -impl MerkleRoot { - /// Query the ledger merkle root from the GraphQL endpoint. - /// - /// # Errors - /// - /// If the request fails, an error will be returned. - pub fn query_merkle_root(rpc_url: &str) -> Result { - let body = "{\"query\": \"{ - daemonStatus { - ledgerMerkleRoot - } - }\"}" - .to_owned(); - let client = reqwest::blocking::Client::new(); - let res = client - .post(rpc_url) - .header(CONTENT_TYPE, "application/json") - .body(body) - .send() - .map_err(|err| err.to_string())? - .text() - .map_err(|err| err.to_string())?; - serde_json::from_str(&res).map_err(|err| err.to_string()) - } -} diff --git a/state_utility/run.sh b/state_utility/run.sh index 7172c633..cb483889 100644 --- a/state_utility/run.sh +++ b/state_utility/run.sh @@ -14,4 +14,4 @@ cd ../../../.. cargo r \ --manifest-path ./merkle_root/Cargo.toml\ --release \ - -- ./merkle_root/merkle_root.txt ../eth_verifier/merkle_root.bin ../verifier_circuit/src/merkle_root.json + -- ./merkle_root/merkle_root.txt ../merkle_root/merkle_root.bin ../merkle_root/merkle_root.json From dc91d494ab09e4cddfb026131e0135cc20d8981b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 7 Aug 2024 12:33:14 -0300 Subject: [PATCH 11/46] Refactor mina service to use `graphql_client` (#306) * Remove modules that won't be used in the Aligned version * Fix Markdown lint issues * Forward GraphQL port in CI * Remove domain name usage * Remove tunneling and comment Merkle path job * Uncomment Merkle path job and comment nextest step * Try port forwarding to access GraphQL * Revert "Try port forwarding to access GraphQL" This reverts commit 79084b9d1435a82aae905e40419cbd85bb44ce82. * Fetch state hash and proof and parse them * Simplify input parsing * Revert "Simplify input parsing" This reverts commit 91a1621ab1e6c7183c661a3b692a6cf2f3bf3d64. * Separate queries for hash and proof * Integrate with Aligned * Add test * Remove unwraps * Add usage section * Add initial SP1 project for account inclusion * Simplify and add make cmd * Match SP1 version with Aligned one * Query and parse Merkle root * Fix parser lockfile * WIP * WIP Merkle path verification * Query merkle root * Verify merkle * Moved query merkle root fn to test module * Move merkle_path.rs to lib.rs * Remove SP1 project, move tests crate out * Small fixes * Added query merkle root * WIP get tip state hash * Finished account inclusion * Update contract names * WIP use graphql_client * Fix and add debug comments * Remove conflict --------- Co-authored-by: gabrielbosio --- account_inclusion/Cargo.lock | 154 +- account_inclusion/src/lib.rs | 8 +- core/Cargo.lock | 462 +- core/Cargo.toml | 4 +- core/src/graphql/candidate_query.graphql | 8 + core/src/graphql/mina_schema.json | 15430 +++++++++++++++++++++ core/src/graphql/state_query.graphql | 3 + core/src/mina_polling_service.rs | 190 +- 8 files changed, 15846 insertions(+), 413 deletions(-) create mode 100644 core/src/graphql/candidate_query.graphql create mode 100644 core/src/graphql/mina_schema.json create mode 100644 core/src/graphql/state_query.graphql diff --git a/account_inclusion/Cargo.lock b/account_inclusion/Cargo.lock index 5ad06023..729bc835 100644 --- a/account_inclusion/Cargo.lock +++ b/account_inclusion/Cargo.lock @@ -275,6 +275,12 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + [[package]] name = "ascii-canvas" version = "3.0.0" @@ -578,9 +584,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca2be1d5c43812bae364ee3f30b3afcb7877cf59f4aeb94c66f313a41d2fac9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" dependencies = [ "serde", ] @@ -743,6 +749,19 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -798,9 +817,11 @@ dependencies = [ "ark-ff", "ark-poly", "ark-serialize", + "base64 0.22.1", "dotenv", "env_logger", "ethers", + "graphql_client", "hex", "kimchi", "log", @@ -810,7 +831,7 @@ dependencies = [ "num-bigint", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", "poly-commitment", - "reqwest 0.12.5", + "reqwest 0.11.27", "rmp-serde", "rpassword", "serde", @@ -1842,6 +1863,65 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "graphql-introspection-query" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" +dependencies = [ + "serde", +] + +[[package]] +name = "graphql-parser" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" +dependencies = [ + "combine", + "thiserror", +] + +[[package]] +name = "graphql_client" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b" +dependencies = [ + "graphql_query_derive", + "reqwest 0.11.27", + "serde", + "serde_json", +] + +[[package]] +name = "graphql_client_codegen" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e27ed0c2cf0c0cc52c6bcf3b45c907f433015e580879d14005386251842fb0a" +dependencies = [ + "graphql-introspection-query", + "graphql-parser", + "heck 0.4.1", + "lazy_static", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 1.0.109", +] + +[[package]] +name = "graphql_query_derive" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97" +dependencies = [ + "graphql_client_codegen", + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "group" version = "0.13.0" @@ -1875,7 +1955,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.2.6", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -1894,7 +1974,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.2.6", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -2148,6 +2228,19 @@ dependencies = [ "tower-service", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.30", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "hyper-tls" version = "0.6.0" @@ -2280,9 +2373,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -2866,7 +2959,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.72", @@ -3200,7 +3293,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.3.0", ] [[package]] @@ -3356,12 +3449,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.19" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2288c0e17cc8d342c712bb43a257a80ebffce59cdb33d5000d8348f3ec02528b" +checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" dependencies = [ "zerocopy", - "zerocopy-derive", ] [[package]] @@ -3640,10 +3732,12 @@ dependencies = [ "http-body 0.4.6", "hyper 0.14.30", "hyper-rustls 0.24.2", + "hyper-tls 0.5.0", "ipnet", "js-sys", "log", "mime", + "native-tls", "once_cell", "percent-encoding", "pin-project-lite", @@ -3655,6 +3749,7 @@ dependencies = [ "sync_wrapper 0.1.2", "system-configuration", "tokio", + "tokio-native-tls", "tokio-rustls 0.24.1", "tower-service", "url", @@ -3683,7 +3778,7 @@ dependencies = [ "http-body-util", "hyper 1.4.1", "hyper-rustls 0.27.2", - "hyper-tls", + "hyper-tls 0.6.0", "hyper-util", "ipnet", "js-sys", @@ -4132,9 +4227,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.121" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", "memchr", @@ -4183,7 +4278,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", + "indexmap 2.3.0", "serde", "serde_derive", "serde_json", @@ -4798,7 +4893,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "toml_datetime", "winnow 0.5.40", ] @@ -4809,7 +4904,7 @@ version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "serde", "serde_spanned", "toml_datetime", @@ -5002,6 +5097,15 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + [[package]] name = "unsigned-varint" version = "0.7.2" @@ -5074,6 +5178,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + [[package]] name = "walkdir" version = "2.5.0" @@ -5461,9 +5571,9 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" dependencies = [ "byteorder", "zerocopy-derive", @@ -5471,9 +5581,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" dependencies = [ "proc-macro2", "quote", diff --git a/account_inclusion/src/lib.rs b/account_inclusion/src/lib.rs index cce1ef87..482f3364 100644 --- a/account_inclusion/src/lib.rs +++ b/account_inclusion/src/lib.rs @@ -116,13 +116,7 @@ pub fn query_merkle_root(rpc_url: &str, state_hash: Fp) -> Result { .body(format!( r#"{{ "query": "{{ - protocolState(encoding: BASE64, stateHash: \"{state_hash}\") {{ - leafHash - merklePath {{ - left - right - }} - }} + protocolState(encoding: BASE64, stateHash: \"{state_hash}\") }}" }}"#, )) diff --git a/core/Cargo.lock b/core/Cargo.lock index 57a63488..c0207b97 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -254,6 +254,12 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + [[package]] name = "ascii-canvas" version = "3.0.0" @@ -305,12 +311,6 @@ dependencies = [ "critical-section", ] -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - [[package]] name = "auto_impl" version = "1.2.0" @@ -548,9 +548,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" dependencies = [ "serde", ] @@ -713,6 +713,19 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -768,9 +781,11 @@ dependencies = [ "ark-ff", "ark-poly", "ark-serialize", + "base64 0.22.1", "dotenv", "env_logger", "ethers", + "graphql_client", "hex", "kimchi", "log", @@ -780,7 +795,7 @@ dependencies = [ "num-bigint", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", "poly-commitment", - "reqwest 0.12.5", + "reqwest", "rmp-serde", "rpassword", "serde", @@ -1361,11 +1376,11 @@ dependencies = [ "proc-macro2", "quote", "regex", - "reqwest 0.11.27", + "reqwest", "serde", "serde_json", "syn 2.0.72", - "toml 0.8.16", + "toml 0.8.19", "walkdir", ] @@ -1420,7 +1435,7 @@ source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reco dependencies = [ "chrono", "ethers-core", - "reqwest 0.11.27", + "reqwest", "semver 1.0.23", "serde", "serde_json", @@ -1444,7 +1459,7 @@ dependencies = [ "futures-locks", "futures-util", "instant", - "reqwest 0.11.27", + "reqwest", "serde", "serde_json", "thiserror", @@ -1476,7 +1491,7 @@ dependencies = [ "jsonwebtoken", "once_cell", "pin-project", - "reqwest 0.11.27", + "reqwest", "serde", "serde_json", "thiserror", @@ -1812,6 +1827,65 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "graphql-introspection-query" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" +dependencies = [ + "serde", +] + +[[package]] +name = "graphql-parser" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" +dependencies = [ + "combine", + "thiserror", +] + +[[package]] +name = "graphql_client" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b" +dependencies = [ + "graphql_query_derive", + "reqwest", + "serde", + "serde_json", +] + +[[package]] +name = "graphql_client_codegen" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e27ed0c2cf0c0cc52c6bcf3b45c907f433015e580879d14005386251842fb0a" +dependencies = [ + "graphql-introspection-query", + "graphql-parser", + "heck 0.4.1", + "lazy_static", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 1.0.109", +] + +[[package]] +name = "graphql_query_derive" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97" +dependencies = [ + "graphql_client_codegen", + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "group" version = "0.13.0" @@ -1845,26 +1919,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.2.6", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.1.0", - "indexmap 2.2.6", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -2002,29 +2057,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.1.0", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "pin-project-lite", -] - [[package]] name = "httparse" version = "1.9.4" @@ -2053,9 +2085,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.26", + "h2", "http 0.2.12", - "http-body 0.4.6", + "http-body", "httparse", "httpdate", "itoa", @@ -2067,26 +2099,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.1", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - [[package]] name = "hyper-rustls" version = "0.24.2" @@ -2095,63 +2107,23 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.12", - "hyper 0.14.30", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" -dependencies = [ - "futures-util", - "http 1.1.0", - "hyper 1.4.1", - "hyper-util", - "rustls 0.23.12", - "rustls-pki-types", + "hyper", + "rustls", "tokio", - "tokio-rustls 0.26.0", - "tower-service", + "tokio-rustls", ] [[package]] name = "hyper-tls" -version = "0.6.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "http-body-util", - "hyper 1.4.1", - "hyper-util", + "hyper", "native-tls", "tokio", "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.4.1", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", ] [[package]] @@ -2250,9 +2222,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3170,7 +3142,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.3.0", ] [[package]] @@ -3326,9 +3298,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" +dependencies = [ + "zerocopy", +] [[package]] name = "precomputed-hash" @@ -3601,56 +3576,12 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.3.26", + "h2", "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.30", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg 0.50.0", -] - -[[package]] -name = "reqwest" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.4.1", - "hyper-rustls 0.27.2", + "http-body", + "hyper", + "hyper-rustls", "hyper-tls", - "hyper-util", "ipnet", "js-sys", "log", @@ -3659,20 +3590,23 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 2.1.2", + "rustls", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.52.0", + "webpki-roots", + "winreg", ] [[package]] @@ -3846,23 +3780,10 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring 0.17.8", - "rustls-webpki 0.101.7", + "rustls-webpki", "sct", ] -[[package]] -name = "rustls" -version = "0.23.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" -dependencies = [ - "once_cell", - "rustls-pki-types", - "rustls-webpki 0.102.6", - "subtle", - "zeroize", -] - [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -3872,22 +3793,6 @@ dependencies = [ "base64 0.21.7", ] -[[package]] -name = "rustls-pemfile" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" - [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3898,17 +3803,6 @@ dependencies = [ "untrusted 0.9.0", ] -[[package]] -name = "rustls-webpki" -version = "0.102.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" -dependencies = [ - "ring 0.17.8", - "rustls-pki-types", - "untrusted 0.9.0", -] - [[package]] name = "rustversion" version = "1.0.17" @@ -4098,9 +3992,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.121" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", "memchr", @@ -4149,7 +4043,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", + "indexmap 2.3.0", "serde", "serde_derive", "serde_json", @@ -4413,7 +4307,7 @@ dependencies = [ "fs2", "hex", "once_cell", - "reqwest 0.11.27", + "reqwest", "semver 1.0.23", "serde", "serde_json", @@ -4451,12 +4345,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" -[[package]] -name = "sync_wrapper" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" - [[package]] name = "synstructure" version = "0.12.6" @@ -4637,18 +4525,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls 0.23.12", - "rustls-pki-types", + "rustls", "tokio", ] @@ -4660,9 +4537,9 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", - "rustls 0.21.12", + "rustls", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", "tungstenite 0.20.1", "webpki-roots", ] @@ -4705,21 +4582,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81967dd0dd2c1ab0bc3468bd7caecc32b8a4aa47d0c8c695d8c2b2108168d62c" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.17", + "toml_edit 0.22.20", ] [[package]] name = "toml_datetime" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fb9f64314842840f1d940ac544da178732128f1c78c21772e876579e0da1db" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] @@ -4730,45 +4607,24 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.17" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9f8729f5aea9562aac1cc0441f5d6de3cff1ee0c5d67293eeca5eb36ee7c16" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.16", + "winnow 0.6.18", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - [[package]] name = "tower-service" version = "0.3.2" @@ -4835,7 +4691,7 @@ dependencies = [ "httparse", "log", "rand", - "rustls 0.21.12", + "rustls", "sha1", "thiserror", "url", @@ -4934,6 +4790,15 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + [[package]] name = "unsigned-varint" version = "0.7.2" @@ -5006,6 +4871,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + [[package]] name = "walkdir" version = "2.5.0" @@ -5330,9 +5201,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.16" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b480ae9340fc261e6be3e95a1ba86d54ae3f9171132a73ce8d4bbaf68339507c" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] @@ -5347,16 +5218,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -5391,6 +5252,27 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "zerocopy" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "zeroize" version = "1.8.1" diff --git a/core/Cargo.toml b/core/Cargo.toml index 869bc237..e7b3ddfb 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -9,7 +9,7 @@ serde_json = "1.0" num-bigint = "0.4.3" rmp-serde = "1.1.2" hex = "0.4.3" -reqwest = { version = "0.12", features = ["blocking"] } +reqwest = { version = "^0.11", features = ["blocking"] } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } poly-commitment = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } @@ -30,6 +30,8 @@ tokio = "1.39.1" dotenv = "0.15.0" env_logger = "0.11.5" log = "0.4.22" +base64 = "0.22.1" +graphql_client = { version = "0.14.0", features = ["reqwest-blocking"] } [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/src/graphql/candidate_query.graphql b/core/src/graphql/candidate_query.graphql new file mode 100644 index 00000000..46940fae --- /dev/null +++ b/core/src/graphql/candidate_query.graphql @@ -0,0 +1,8 @@ +query CandidateQuery { + bestChain(maxLength: 1) { + stateHashField + protocolStateProof { + base64 + } + } +} diff --git a/core/src/graphql/mina_schema.json b/core/src/graphql/mina_schema.json new file mode 100644 index 00000000..fc218752 --- /dev/null +++ b/core/src/graphql/mina_schema.json @@ -0,0 +1,15430 @@ +{ + "data": { + "__schema": { + "queryType": { "name": "query" }, + "mutationType": { "name": "mutation" }, + "subscriptionType": { "name": "subscription" }, + "types": [ + { + "kind": "ENUM", + "name": "ChainReorganizationStatus", + "description": "Status for whenever the blockchain is reorganized", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CHANGED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "subscription", + "description": null, + "fields": [ + { + "name": "newSyncUpdate", + "description": + "Event that triggers when the network sync status changes", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SyncStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "newBlock", + "description": + "Event that triggers when a new block is created that either contains a transaction with the specified public key, or was produced by it. If no public key is provided, then the event will trigger for every new block received", + "args": [ + { + "name": "publicKey", + "description": "Public key that is included in the block", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chainReorganization", + "description": + "Event that triggers when the best tip changes in a way that is not a trivial extension of the existing one", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ChainReorganizationStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "RosettaTransaction", + "description": "A transaction encoded in the Rosetta format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendRosettaTransactionPayload", + "description": null, + "fields": [ + { + "name": "userCommand", + "description": "Command that was sent", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ExtensionalBlock", + "description": "Block encoded in extensional block format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PrecomputedBlock", + "description": "Block encoded in precomputed block format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Applied", + "description": null, + "fields": [ + { + "name": "applied", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "description": + "Network identifiers for another protocol participant", + "fields": [ + { + "name": "libp2pPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "host", + "description": "IP address of the remote host", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peerId", + "description": "base58-encoded peer ID", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "libp2pPort", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "defaultValue": null + }, + { + "name": "host", + "description": "IP address of the remote host", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "peerId", + "description": "base58-encoded peer ID", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetConnectionGatingConfigInput", + "description": null, + "fields": [ + { + "name": "cleanAddedPeers", + "description": + "If true, resets added peers to an empty list (including seeds)", + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isolate", + "description": + "If true, no connections will be allowed unless they are from a trusted peer", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bannedPeers", + "description": + "Peers we will never allow connections from (unless they are also trusted!)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trustedPeers", + "description": "Peers we will always allow connections from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "cleanAddedPeers", + "description": + "If true, resets added peers to an empty list (including seeds)", + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "defaultValue": null + }, + { + "name": "isolate", + "description": + "If true, no connections will be allowed unless they are from a trusted peer", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "bannedPeers", + "description": + "Peers we will never allow connections from (unless they are also trusted!)", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "defaultValue": null + }, + { + "name": "trustedPeers", + "description": "Peers we will always allow connections from", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetSnarkWorkFee", + "description": null, + "fields": [ + { + "name": "fee", + "description": "Fee to get rewarded for producing snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "fee", + "description": "Fee to get rewarded for producing snark work", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetSnarkWorkFeePayload", + "description": null, + "fields": [ + { + "name": "lastFee", + "description": "Returns the last fee set to do snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetSnarkWorkerInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": + "Public key you wish to start snark-working on; null to stop doing any snark work. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": + "Public key you wish to start snark-working on; null to stop doing any snark work. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetSnarkWorkerPayload", + "description": null, + "fields": [ + { + "name": "lastSnarkWorker", + "description": + "Returns the last public key that was designated for snark work", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetCoinbaseReceiverInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": + "Public key of the account to receive coinbases. Block production keys will receive the coinbases if omitted. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": + "Public key of the account to receive coinbases. Block production keys will receive the coinbases if omitted. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetCoinbaseReceiverPayload", + "description": null, + "fields": [ + { + "name": "lastCoinbaseReceiver", + "description": + "Returns the public key that was receiving coinbases previously, or none if it was the block producer", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currentCoinbaseReceiver", + "description": + "Returns the public key that will receive coinbase, or none if it will be the block producer", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TarFile", + "description": null, + "fields": [ + { + "name": "tarfile", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ExportLogsPayload", + "description": null, + "fields": [ + { + "name": "exportLogs", + "description": "Tar archive containing logs", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TarFile", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "SendTestZkappInput", + "description": "zkApp command for a test zkApp", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "FeePayerBodyInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "fee", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "defaultValue": null + }, + { + "name": "validUntil", + "description": null, + "type": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "nonce", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ZkappFeePayerInput", + "description": null, + "fields": [ + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FeePayerBodyInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "body", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FeePayerBodyInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "authorization", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyWithHashInput", + "description": null, + "fields": [ + { + "name": "data", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "data", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "hash", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyPermissionInput", + "description": null, + "fields": [ + { + "name": "auth", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "txnVersion", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "auth", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "txnVersion", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PermissionsInput", + "description": null, + "fields": [ + { + "name": "editState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "send", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receive", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setDelegate", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setPermissions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVerificationKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyPermissionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setZkappUri", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "editActionState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTokenSymbol", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVotingFor", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTiming", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "editState", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "access", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "send", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "receive", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setDelegate", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setPermissions", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setVerificationKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyPermissionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setZkappUri", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "editActionState", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setTokenSymbol", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "incrementNonce", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setVotingFor", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setTiming", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TimingInput", + "description": null, + "fields": [ + { + "name": "initialMinimumBalance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffTime", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffAmount", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingPeriod", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingIncrement", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "initialMinimumBalance", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "cliffTime", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "cliffAmount", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "vestingPeriod", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "vestingIncrement", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateModificationInput", + "description": null, + "fields": [ + { + "name": "appState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKey", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyWithHashInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "permissions", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "PermissionsInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappUri", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenSymbol", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timing", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "TimingInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "votingFor", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "appState", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "delegate", + "description": null, + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "verificationKey", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyWithHashInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "permissions", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "PermissionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "zkappUri", + "description": null, + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "tokenSymbol", + "description": null, + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "timing", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "TimingInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "votingFor", + "description": null, + "type": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "BalanceChangeInput", + "description": null, + "fields": [ + { + "name": "magnitude", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sgn", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Sign", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "magnitude", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "sgn", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Sign", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "EpochLedgerPreconditionInput", + "description": null, + "fields": [ + { + "name": "hash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "hash", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "totalCurrency", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "description": null, + "fields": [ + { + "name": "ledger", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochLedgerPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "seed", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCheckpoint", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockCheckpoint", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochLength", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "ledger", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochLedgerPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "seed", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "startCheckpoint", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "lockCheckpoint", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "epochLength", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NetworkPreconditionInput", + "description": null, + "fields": [ + { + "name": "snarkedLedgerHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainLength", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "minWindowDensity", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesis", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stakingEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "snarkedLedgerHash", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "blockchainLength", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "minWindowDensity", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "totalCurrency", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "globalSlotSinceGenesis", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "stakingEpochData", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "nextEpochData", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "BalanceIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NonceIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountPreconditionInput", + "description": null, + "fields": [ + { + "name": "balance", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "BalanceIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "NonceIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiptChainHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "state", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actionState", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provedState", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNew", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "balance", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "BalanceIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "nonce", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "NonceIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "receiptChainHash", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "delegate", + "description": null, + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "state", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "actionState", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "provedState", + "description": null, + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "defaultValue": null + }, + { + "name": "isNew", + "description": null, + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PreconditionsInput", + "description": null, + "fields": [ + { + "name": "network", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validWhile", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "network", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "account", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "validWhile", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "MayUseTokenInput", + "description": null, + "fields": [ + { + "name": "parentsOwnToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inheritFromParent", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "parentsOwnToken", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "inheritFromParent", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthorizationKindStructuredInput", + "description": null, + "fields": [ + { + "name": "isSigned", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isProved", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKeyHash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "isSigned", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "isProved", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "verificationKeyHash", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateBodyInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "update", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateModificationInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "balanceChange", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BalanceChangeInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "events", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callDepth", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "preconditions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PreconditionsInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "useFullCommitment", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "implicitAccountCreationFee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mayUseToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MayUseTokenInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizationKind", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthorizationKindStructuredInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "tokenId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "update", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateModificationInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "balanceChange", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BalanceChangeInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "incrementNonce", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "events", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "defaultValue": null + }, + { + "name": "actions", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "defaultValue": null + }, + { + "name": "callData", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "callDepth", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "defaultValue": null + }, + { + "name": "preconditions", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PreconditionsInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "useFullCommitment", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "implicitAccountCreationFee", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "mayUseToken", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MayUseTokenInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "authorizationKind", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthorizationKindStructuredInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ControlInput", + "description": null, + "fields": [ + { + "name": "proof", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "ZkappProof", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signature", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "proof", + "description": null, + "type": { + "kind": "SCALAR", + "name": "ZkappProof", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "signature", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ZkappAccountUpdateInput", + "description": "An account update in a zkApp transaction", + "fields": [ + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateBodyInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ControlInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "body", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateBodyInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "authorization", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ControlInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ZkappCommandInput", + "description": null, + "fields": [ + { + "name": "feePayer", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappFeePayerInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountUpdates", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappAccountUpdateInput", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Memo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "feePayer", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappFeePayerInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountUpdates", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappAccountUpdateInput", + "ofType": null + } + } + } + }, + "defaultValue": null + }, + { + "name": "memo", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Memo", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SendZkappInput", + "description": null, + "fields": [ + { + "name": "zkappCommand", + "description": + "zkApp command structure representing the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappCommandInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "zkappCommand", + "description": + "zkApp command structure representing the transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappCommandInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendZkappPayload", + "description": null, + "fields": [ + { + "name": "zkapp", + "description": "zkApp transaction that was sent", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommandResult", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SendDelegationInput", + "description": null, + "fields": [ + { + "name": "nonce", + "description": + "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "args": [], + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": + "The global slot since genesis after which this transaction cannot be applied", + "args": [], + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": "Fee amount in order to send a stake delegation", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "to", + "description": "Public key of the account being delegated to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "from", + "description": "Public key of sender of a stake delegation", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "nonce", + "description": + "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "defaultValue": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "validUntil", + "description": + "The global slot since genesis after which this transaction cannot be applied", + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "defaultValue": null + }, + { + "name": "fee", + "description": "Fee amount in order to send a stake delegation", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "to", + "description": "Public key of the account being delegated to", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "from", + "description": "Public key of sender of a stake delegation", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendDelegationPayload", + "description": null, + "fields": [ + { + "name": "delegation", + "description": "Delegation change that was sent", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PrivateKey", + "description": "Base58Check-encoded private key", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendPaymentPayload", + "description": null, + "fields": [ + { + "name": "payment", + "description": "Payment that was sent", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ImportAccountPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "The public key of the imported account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alreadyImported", + "description": "True if the account had already been imported", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "success", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ReloadAccountsPayload", + "description": null, + "fields": [ + { + "name": "success", + "description": "True when the reload was successful", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DeleteAccountInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of account to be deleted", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": "Public key of account to be deleted", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeleteAccountPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of the deleted account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "LockInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key specifying which account to lock", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": "Public key specifying which account to lock", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LockPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of the locked account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": "Details of locked account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UnlockInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key specifying which account to unlock", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "password", + "description": "Password for the account to be unlocked", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": "Public key specifying which account to unlock", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "password", + "description": "Password for the account to be unlocked", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UnlockPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of the unlocked account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use account field instead" + }, + { + "name": "account", + "description": "Details of unlocked account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateHDAccountInput", + "description": null, + "fields": [ + { + "name": "index", + "description": "Index of the account in hardware wallet", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "index", + "description": "Index of the account in hardware wallet", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AddAccountInput", + "description": null, + "fields": [ + { + "name": "password", + "description": "Password used to encrypt the new account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "password", + "description": "Password used to encrypt the new account", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AddAccountPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of the created account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use account field instead" + }, + { + "name": "account", + "description": "Details of created account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "mutation", + "description": null, + "fields": [ + { + "name": "addWallet", + "description": + "Add a wallet - this will create a new keypair and store it in the daemon", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AddAccountPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use createAccount instead" + }, + { + "name": "startFilteredLog", + "description": + "TESTING ONLY: Start filtering and recording all structured events in memory", + "args": [ + { + "name": "filter", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createAccount", + "description": + "Create a new account - this will create a new keypair and store it in the daemon", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AddAccountPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createHDAccount", + "description": + "Create an account with hardware wallet - this will let the hardware wallet generate a keypair corresponds to the HD-index you give and store this HD-index and the generated public key in the daemon. Calling this command with the same HD-index and the same hardware wallet will always generate the same keypair.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateHDAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AddAccountPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unlockAccount", + "description": + "Allow transactions to be sent from the unlocked account", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnlockInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UnlockPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unlockWallet", + "description": + "Allow transactions to be sent from the unlocked account", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnlockInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UnlockPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use unlockAccount instead" + }, + { + "name": "lockAccount", + "description": + "Lock an unlocked account to prevent transaction being sent from it", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "LockInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "LockPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockWallet", + "description": + "Lock an unlocked account to prevent transaction being sent from it", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "LockInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "LockPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use lockAccount instead" + }, + { + "name": "deleteAccount", + "description": + "Delete the private key for an account that you track", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeleteAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DeleteAccountPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deleteWallet", + "description": + "Delete the private key for an account that you track", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeleteAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DeleteAccountPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use deleteAccount instead" + }, + { + "name": "reloadAccounts", + "description": "Reload tracked account information from disk", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ReloadAccountsPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "importAccount", + "description": "Reload tracked account information from disk", + "args": [ + { + "name": "password", + "description": "Password for the account to import", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "path", + "description": + "Path to the wallet file, relative to the daemon's current working directory.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ImportAccountPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reloadWallets", + "description": "Reload tracked account information from disk", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ReloadAccountsPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use reloadAccounts instead" + }, + { + "name": "sendPayment", + "description": "Send a payment", + "args": [ + { + "name": "signature", + "description": + "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignatureInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendPaymentInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendPaymentPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendTestPayments", + "description": "Send a series of test payments", + "args": [ + { + "name": "repeat_delay_ms", + "description": + "Delay with which a transaction shall be repeated", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "repeat_count", + "description": + "How many times shall transaction be repeated", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "fee", + "description": "The fee of each payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The amount of each payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "receiver", + "description": "The receiver of the payments", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "senders", + "description": + "The private keys from which to sign the payments", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PrivateKey", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendDelegation", + "description": "Change your delegate by sending a transaction", + "args": [ + { + "name": "signature", + "description": + "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignatureInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendDelegationInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendDelegationPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendZkapp", + "description": "Send a zkApp transaction", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendZkappInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendZkappPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mockZkapp", + "description": + "Mock a zkApp transaction, no effect on blockchain", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendZkappInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendZkappPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "internalSendZkapp", + "description": + "Send zkApp transactions (for internal testing purposes)", + "args": [ + { + "name": "zkappCommands", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "SendTestZkappInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendZkappPayload", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exportLogs", + "description": "Export daemon logs to tar archive", + "args": [ + { + "name": "basename", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ExportLogsPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setCoinbaseReceiver", + "description": "Set the key to receive coinbases", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetCoinbaseReceiverInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetCoinbaseReceiverPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setSnarkWorker", + "description": + "Set key you wish to snark work with or disable snark working", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetSnarkWorkerInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetSnarkWorkerPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setSnarkWorkFee", + "description": + "Set fee that you will like to receive for doing snark work", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetSnarkWorkFee", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetSnarkWorkFeePayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setConnectionGatingConfig", + "description": + "Set the connection gating config, returning the current config after the application (which may have failed)", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetConnectionGatingConfigInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetConnectionGatingConfigPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "addPeers", + "description": "Connect to the given peers", + "args": [ + { + "name": "seed", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "peers", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Peer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "archivePrecomputedBlock", + "description": null, + "args": [ + { + "name": "block", + "description": "Block encoded in precomputed block format", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PrecomputedBlock", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Applied", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "archiveExtensionalBlock", + "description": null, + "args": [ + { + "name": "block", + "description": "Block encoded in extensional block format", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ExtensionalBlock", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Applied", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendRosettaTransaction", + "description": "Send a transaction in Rosetta format", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "RosettaTransaction", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendRosettaTransactionPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "Encoding", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "JSON", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BASE64", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VrfEvaluationInput", + "description": "The witness to a vrf evaluation", + "fields": [ + { + "name": "vrfThreshold", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scaledMessageHash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "s", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "c", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VrfMessageInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "vrfThreshold", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "scaledMessageHash", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "defaultValue": null + }, + { + "name": "s", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "c", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "message", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VrfMessageInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VrfMessageInput", + "description": "The inputs to a vrf evaluation", + "fields": [ + { + "name": "delegatorIndex", + "description": + "Position in the ledger of the delegator's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochSeed", + "description": "Formatted with base58check", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlot", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "delegatorIndex", + "description": + "Position in the ledger of the delegator's account", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "defaultValue": null + }, + { + "name": "epochSeed", + "description": "Formatted with base58check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "globalSlot", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "description": + "The amount of stake delegated, used to determine the threshold for a vrf evaluation producing a block", + "fields": [ + { + "name": "totalStake", + "description": + "The total amount of stake across all accounts in the epoch's staking ledger.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegatedStake", + "description": + "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "totalStake", + "description": + "The total amount of stake across all accounts in the epoch's staking ledger.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "delegatedStake", + "description": + "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "VrfOutputTruncated", + "description": "truncated vrf output", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VrfThreshold", + "description": + "The amount of stake delegated, used to determine the threshold for a vrf evaluation winning a slot", + "fields": [ + { + "name": "delegatedStake", + "description": + "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalStake", + "description": + "The total amount of stake across all accounts in the epoch's staking ledger.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "VrfScalar", + "description": "consensus vrf scalar", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VrfMessage", + "description": "The inputs to a vrf evaluation", + "fields": [ + { + "name": "globalSlot", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceHardFork", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochSeed", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "EpochSeed", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegatorIndex", + "description": + "Position in the ledger of the delegator's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VrfEvaluation", + "description": + "A witness to a vrf evaluation, which may be externally verified", + "fields": [ + { + "name": "message", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VrfMessage", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "c", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VrfScalar", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "s", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VrfScalar", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scaledMessageHash", + "description": + "A group element represented as 2 field elements", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vrfThreshold", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VrfThreshold", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vrfOutput", + "description": + "The vrf output derived from the evaluation witness. If null, the vrf witness was invalid.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "VrfOutputTruncated", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vrfOutputFractional", + "description": + "The vrf output derived from the evaluation witness, as a fraction. This represents a won slot if vrfOutputFractional <= (1 - (1 / 4)^(delegated_balance / total_stake)). If null, the vrf witness was invalid.", + "args": [], + "type": { "kind": "SCALAR", "name": "Float", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "thresholdMet", + "description": + "Whether the threshold to produce a block was met, if specified", + "args": [ + { + "name": "input", + "description": "Override for delegation threshold", + "type": { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SignatureInput", + "description": + "A cryptographic signature -- you must provide either field+scalar or rawSignature", + "fields": [ + { + "name": "rawSignature", + "description": "Raw encoded signature", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scalar", + "description": "Scalar component of signature", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "field", + "description": "Field component of signature", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "rawSignature", + "description": "Raw encoded signature", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "scalar", + "description": "Scalar component of signature", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "field", + "description": "Field component of signature", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UInt64", + "description": + "String or Integer representation of a uint64 number. If the input is a string, it must represent the number in base 10", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SendPaymentInput", + "description": null, + "fields": [ + { + "name": "nonce", + "description": + "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "args": [], + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": + "The global slot since genesis after which this transaction cannot be applied", + "args": [], + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": "Fee amount in order to send payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "Amount of MINA to send to receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "to", + "description": "Public key of recipient of payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "from", + "description": "Public key of sender of payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "nonce", + "description": + "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "defaultValue": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "validUntil", + "description": + "The global slot since genesis after which this transaction cannot be applied", + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "defaultValue": null + }, + { + "name": "fee", + "description": "Fee amount in order to send payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "Amount of MINA to send to receiver", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "to", + "description": "Public key of recipient of payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "from", + "description": "Public key of sender of payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GenesisConstants", + "description": null, + "fields": [ + { + "name": "accountCreationFee", + "description": "The fee charged to create a new account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbase", + "description": + "The amount received as a coinbase reward for producing a block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "genesisTimestamp", + "description": "The genesis timestamp in ISO 8601 format", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "WorkDescription", + "description": + "Transition from a source ledger to a target ledger with some fee excess and increase in supply ", + "fields": [ + { + "name": "sourceFirstPassLedgerHash", + "description": + "Base58Check-encoded hash of the source first-pass ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targetFirstPassLedgerHash", + "description": + "Base58Check-encoded hash of the target first-pass ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sourceSecondPassLedgerHash", + "description": + "Base58Check-encoded hash of the source second-pass ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targetSecondPassLedgerHash", + "description": + "Base58Check-encoded hash of the target second-pass ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeExcess", + "description": + "Total transaction fee that is not accounted for in the transition from source ledger to target ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FeeExcess", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supplyIncrease", + "description": "Increase in total supply", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "Use supplyChange" + }, + { + "name": "supplyChange", + "description": "Increase/Decrease in total supply", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workId", + "description": "Unique identifier for a snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PendingSnarkWork", + "description": + "Snark work bundles that are not available in the pool yet", + "fields": [ + { + "name": "workBundle", + "description": "Work bundle with one or two snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkDescription", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Float", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TrustStatusPayload", + "description": null, + "fields": [ + { + "name": "ipAddr", + "description": "IP address", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "InetAddr", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peerId", + "description": "libp2p Peer ID", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trust", + "description": "Trust score", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bannedStatus", + "description": "Banned status", + "args": [], + "type": { "kind": "SCALAR", "name": "Time", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "TransactionStatus", + "description": "Status of a transaction", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "INCLUDED", + "description": "A transaction that is on the longest chain", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PENDING", + "description": + "A transaction either in the transition frontier or in transaction pool but is not on the longest chain", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNKNOWN", + "description": + "The transaction has either been snarked, reached finality through consensus or has been dropped", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ID", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CompletedWork", + "description": "Completed snark works", + "fields": [ + { + "name": "prover", + "description": "Public key of the prover", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": "Amount the prover is paid for the snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workIds", + "description": "Unique identifier for the snark work purchased", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "FeeTransferType", + "description": "fee transfer type", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FeeTransfer", + "description": null, + "fields": [ + { + "name": "recipient", + "description": "Public key of fee transfer recipient", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Amount that the recipient is paid in this fee transfer", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": + "Fee_transfer|Fee_transfer_via_coinbase Snark worker fees deducted from the coinbase amount are of type 'Fee_transfer_via_coinbase', rest are deducted from transaction fees", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FeeTransferType", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Index", + "description": "ocaml integer as a string", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappCommandFailureReason", + "description": null, + "fields": [ + { + "name": "index", + "description": "List index of the account update that failed", + "args": [], + "type": { "kind": "SCALAR", "name": "Index", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "failures", + "description": + "Failure reason for the account update or any nested zkapp command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Memo", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ZkappProof", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Control", + "description": null, + "fields": [ + { + "name": "proof", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "ZkappProof", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signature", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AuthorizationKindStructured", + "description": null, + "fields": [ + { + "name": "isSigned", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isProved", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKeyHash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MayUseToken", + "description": null, + "fields": [ + { + "name": "parentsOwnToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inheritFromParent", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NonceInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BalanceInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountPrecondition", + "description": null, + "fields": [ + { + "name": "balance", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "BalanceInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "NonceInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiptChainHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "state", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actionState", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provedState", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNew", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EpochLedgerPrecondition", + "description": null, + "fields": [ + { + "name": "hash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "CurrencyAmountInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EpochDataPrecondition", + "description": null, + "fields": [ + { + "name": "ledger", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EpochLedgerPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "seed", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCheckpoint", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockCheckpoint", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochLength", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "LengthInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GlobalSlotSinceGenesisInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CurrencyAmountInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LengthInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NetworkPrecondition", + "description": null, + "fields": [ + { + "name": "snarkedLedgerHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainLength", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "LengthInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "minWindowDensity", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "LengthInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "CurrencyAmountInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesis", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "GlobalSlotSinceGenesisInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stakingEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EpochDataPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EpochDataPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Preconditions", + "description": null, + "fields": [ + { + "name": "network", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NetworkPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validWhile", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "GlobalSlotSinceGenesisInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Sign", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BalanceChange", + "description": null, + "fields": [ + { + "name": "magnitude", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sgn", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Sign", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CurrencyAmount", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Timing", + "description": null, + "fields": [ + { + "name": "initialMinimumBalance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffTime", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffAmount", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingPeriod", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingIncrement", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "AuthRequired", + "description": "Kind of authorization required", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Permissions", + "description": null, + "fields": [ + { + "name": "editState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "send", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receive", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setDelegate", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setPermissions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVerificationKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VerificationKeyPermission", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setZkappUri", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "editActionState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTokenSymbol", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVotingFor", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTiming", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VerificationKeyWithHash", + "description": null, + "fields": [ + { + "name": "data", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Field", + "description": "String representing an Fp Field element", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountUpdateModification", + "description": null, + "fields": [ + { + "name": "appState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKey", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VerificationKeyWithHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "permissions", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Permissions", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappUri", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenSymbol", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timing", + "description": null, + "args": [], + "type": { "kind": "OBJECT", "name": "Timing", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "votingFor", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountUpdateBody", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "update", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountUpdateModification", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "balanceChange", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BalanceChange", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "events", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callDepth", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "preconditions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Preconditions", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "useFullCommitment", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "implicitAccountCreationFee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mayUseToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MayUseToken", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizationKind", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AuthorizationKindStructured", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappAccountUpdate", + "description": "An account update in a zkApp transaction", + "fields": [ + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountUpdateBody", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Control", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Signature", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FeePayerBody", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappFeePayer", + "description": null, + "fields": [ + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FeePayerBody", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappCommand", + "description": null, + "fields": [ + { + "name": "feePayer", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappFeePayer", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountUpdates", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappAccountUpdate", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Memo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappCommandResult", + "description": null, + "fields": [ + { + "name": "id", + "description": "A Base64 string representing the zkApp command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": "A cryptographic hash of the zkApp command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappCommand", + "description": "zkApp command representing the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommand", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "failureReason", + "description": + "The reason for the zkApp transaction failure; null means success or the status is unknown", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommandFailureReason", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UserCommandPayment", + "description": null, + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kind", + "description": "String describing the kind of user command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UserCommandKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": + "Sequence number of command for the fee-payer's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "Account that the command is sent from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiver", + "description": "Account that the command applies to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feePayer", + "description": "Account that pays the fees for the command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use source field instead" + }, + { + "name": "validUntil", + "description": + "The global slot number after which this transaction cannot be applied", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "Token used for the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": + "Amount that the source is sending to receiver; 0 for commands without an associated amount", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeToken", + "description": "Token used to pay the fee", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Fee that the fee-payer is willing to pay for making the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": + "A short message from the sender, encoded with Base58Check, version byte=0x14; byte 2 of the decoding is the message length", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDelegation", + "description": + "If true, this command represents a delegation of stake", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use kind field instead" + }, + { + "name": "from", + "description": "Public key of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "fromAccount", + "description": "Account of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "to", + "description": "Public key of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "toAccount", + "description": "Account of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "failureReason", + "description": + "null is no failure or status unknown, reason for failure otherwise.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { "kind": "INTERFACE", "name": "UserCommand", "ofType": null } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "description": "transaction status failure", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UserCommandKind", + "description": "The kind of user command", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "TransactionHash", + "description": "Base58Check-encoded transaction hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "TransactionId", + "description": "Base64-encoded transaction", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UserCommandDelegation", + "description": null, + "fields": [ + { + "name": "delegator", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegatee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kind", + "description": "String describing the kind of user command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UserCommandKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": + "Sequence number of command for the fee-payer's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "Account that the command is sent from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiver", + "description": "Account that the command applies to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feePayer", + "description": "Account that pays the fees for the command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use source field instead" + }, + { + "name": "validUntil", + "description": + "The global slot number after which this transaction cannot be applied", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "Token used for the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": + "Amount that the source is sending to receiver; 0 for commands without an associated amount", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeToken", + "description": "Token used to pay the fee", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Fee that the fee-payer is willing to pay for making the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": + "A short message from the sender, encoded with Base58Check, version byte=0x14; byte 2 of the decoding is the message length", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDelegation", + "description": + "If true, this command represents a delegation of stake", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use kind field instead" + }, + { + "name": "from", + "description": "Public key of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "fromAccount", + "description": "Account of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "to", + "description": "Public key of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "toAccount", + "description": "Account of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "failureReason", + "description": + "null is no failure or status unknown, reason for failure otherwise.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { "kind": "INTERFACE", "name": "UserCommand", "ofType": null } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "UserCommand", + "description": "Common interface for user commands", + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kind", + "description": "String describing the kind of user command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UserCommandKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": + "Sequence number of command for the fee-payer's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "Account that the command is sent from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiver", + "description": "Account that the command applies to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feePayer", + "description": "Account that pays the fees for the command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": + "The global slot number after which this transaction cannot be applied", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "Token used by the command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": + "Amount that the source is sending to receiver - 0 for commands that are not associated with an amount", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeToken", + "description": "Token used to pay the fee", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Fee that the fee-payer is willing to pay for making the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDelegation", + "description": + "If true, this represents a delegation of stake, otherwise it is a payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use kind field instead" + }, + { + "name": "from", + "description": "Public key of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "fromAccount", + "description": "Account of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "to", + "description": "Public key of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "toAccount", + "description": "Account of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "failureReason", + "description": + "null is no failure, reason for failure otherwise.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "UserCommandDelegation", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "UserCommandPayment", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "Transactions", + "description": "Different types of transactions in a block", + "fields": [ + { + "name": "userCommands", + "description": + "List of user commands (payments and stake delegations) included in this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappCommands", + "description": "List of zkApp commands included in this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommandResult", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeTransfer", + "description": "List of fee transfers included in this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FeeTransfer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbase", + "description": + "Amount of MINA granted to the producer of this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbaseReceiverAccount", + "description": + "Account to which the coinbase for this block was granted", + "args": [], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "JSON", + "description": "Arbitrary JSON", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PrecomputedBlockProof", + "description": "Base-64 encoded proof", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "protocolStateProof", + "description": null, + "fields": [ + { + "name": "base64", + "description": "Base-64 encoded proof", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PrecomputedBlockProof", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "json", + "description": "JSON-encoded proof", + "args": [], + "type": { "kind": "SCALAR", "name": "JSON", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Epoch", + "description": "epoch", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Slot", + "description": "slot", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NextEpochData", + "description": null, + "fields": [ + { + "name": "ledger", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "epochLedger", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "seed", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "EpochSeed", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCheckpoint", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockCheckpoint", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochLength", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "EpochSeed", + "description": "Base58Check-encoded epoch seed", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "epochLedger", + "description": null, + "fields": [ + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StakingEpochData", + "description": null, + "fields": [ + { + "name": "ledger", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "epochLedger", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "seed", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "EpochSeed", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCheckpoint", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockCheckpoint", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochLength", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConsensusState", + "description": null, + "fields": [ + { + "name": "blockchainLength", + "description": "Length of the blockchain at this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use blockHeight instead" + }, + { + "name": "blockHeight", + "description": "Height of the blockchain at this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochCount", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "minWindowDensity", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastVrfOutput", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": "Total currency in circulation at this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stakingEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StakingEpochData", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NextEpochData", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasAncestorInSameCheckpointWindow", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slot", + "description": "Slot in which this block was created", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Slot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slotSinceGenesis", + "description": "Slot since genesis (across all hard-forks)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epoch", + "description": "Epoch in which this block was created", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Epoch", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "superchargedCoinbase", + "description": + "Whether or not this coinbase was \"supercharged\", ie. created by an account that has no locked tokens", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockStakeWinner", + "description": + "The public key that is responsible for winning this block (including delegations)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockCreator", + "description": + "The block producer public key that created this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbaseReceiever", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "BodyReference", + "description": + "A reference to how the block header refers to the body of the block as a hex-encoded string", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SignedFee", + "description": "Signed fee", + "fields": [ + { + "name": "sign", + "description": "+/-", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "ENUM", "name": "sign", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeMagnitude", + "description": "Fee", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FeeExcess", + "description": "Fee excess divided into left, right components", + "fields": [ + { + "name": "feeTokenLeft", + "description": "Token id for left component of fee excess", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeExcessLeft", + "description": "Fee for left component of fee excess", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedFee", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeTokenRight", + "description": "Token id for right component of fee excess", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeExcessRight", + "description": "Fee for right component of fee excess", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedFee", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "sign", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PLUS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MINUS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SignedAmount", + "description": "Signed amount", + "fields": [ + { + "name": "sign", + "description": "+/-", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "ENUM", "name": "sign", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amountMagnitude", + "description": "Amount", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LocalState", + "description": null, + "fields": [ + { + "name": "stackFrame", + "description": "Stack frame component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callStack", + "description": "Call stack component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionCommitment", + "description": + "Transaction commitment component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fullTransactionCommitment", + "description": + "Full transaction commitment component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "excess", + "description": "Excess component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supplyIncrease", + "description": "Supply increase component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ledger", + "description": "Ledger component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "success", + "description": "Success component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountUpdateIndex", + "description": "Account update index component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "failureStatusTable", + "description": "Failure status table component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "willSucceed", + "description": "Will-succeed component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StateStack", + "description": null, + "fields": [ + { + "name": "initial", + "description": "Initial hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "current", + "description": "Current hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PendingCoinbaseStack", + "description": null, + "fields": [ + { + "name": "dataStack", + "description": "Data component of pending coinbase stack", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateStack", + "description": "State component of pending coinbase stack", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StateStack", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Registers", + "description": null, + "fields": [ + { + "name": "firstPassLedger", + "description": "First pass ledger hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secondPassLedger", + "description": "Second pass ledger hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pendingCoinbaseStack", + "description": "Pending coinbase stack", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PendingCoinbaseStack", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "localState", + "description": "Local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "LocalState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SnarkedLedgerState", + "description": null, + "fields": [ + { + "name": "sourceRegisters", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Registers", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targetRegisters", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Registers", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "connectingLedgerLeft", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "connectingLedgerRight", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supplyIncrease", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeExcess", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FeeExcess", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sokDigest", + "description": "Placeholder for SOK digest", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PendingCoinbaseHash", + "description": + "Base58Check-encoded hash of a pending coinbase hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PendingCoinbaseAuxHash", + "description": + "Base58Check-encoded hash of a pending coinbase auxiliary hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "StagedLedgerAuxHash", + "description": + "Base58Check-encoded hash of the staged ledger hash's aux_hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "LedgerHash", + "description": "Base58Check-encoded ledger hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BlockchainState", + "description": null, + "fields": [ + { + "name": "date", + "description": + "date (stringified Unix time - number of milliseconds since January 1, 1970)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BlockTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "utcDate", + "description": + "utcDate (stringified Unix time - number of milliseconds since January 1, 1970). Time offsets are adjusted to reflect true wall-clock time instead of genesis time.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BlockTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkedLedgerHash", + "description": "Base58Check-encoded hash of the snarked ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerHash", + "description": + "Base58Check-encoded hash of the staged ledger hash's main ledger hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerAuxHash", + "description": + "Base58Check-encoded hash of the staged ledger hash's aux_hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StagedLedgerAuxHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerPendingCoinbaseAux", + "description": + "Base58Check-encoded staged ledger hash's pending_coinbase_aux", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PendingCoinbaseAuxHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerPendingCoinbaseHash", + "description": + "Base58Check-encoded hash of the staged ledger hash's pending_coinbase_hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PendingCoinbaseHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerProofEmitted", + "description": + "Block finished a staged ledger, and a proof was emitted from it and included into this block's proof. If there is no transition frontier available or no block found, this will return null.", + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ledgerProofStatement", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SnarkedLedgerState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bodyReference", + "description": + "A reference to how the block header refers to the body of the block as a hex-encoded string", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BodyReference", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ProtocolState", + "description": null, + "fields": [ + { + "name": "previousStateHash", + "description": "Base58Check-encoded hash of the previous state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainState", + "description": + "State which is agnostic of a particular consensus algorithm", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BlockchainState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusState", + "description": + "State specific to the minaboros Proof of Stake consensus algorithm", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "StateHashAsDecimal", + "description": + "Experimental: Bigint field-element representation of stateHash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Block", + "description": null, + "fields": [ + { + "name": "creator", + "description": "Public key of account that produced this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use creatorAccount field instead" + }, + { + "name": "creatorAccount", + "description": "Account that produced this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "winnerAccount", + "description": "Account that won the slot (Delegator/Staker)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateHash", + "description": + "Base58Check-encoded hash of the state after this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateHashField", + "description": + "Experimental: Bigint field-element representation of stateHash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHashAsDecimal", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "protocolState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ProtocolState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "protocolStateProof", + "description": "Snark proof of blockchain state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "protocolStateProof", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transactions", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "commandTransactionCount", + "description": + "Count of user command transactions in the block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkJobs", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CompletedWork", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Fee", + "description": "fee", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SnarkWorker", + "description": null, + "fields": [ + { + "name": "key", + "description": "Public key of current snark worker", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use account field instead" + }, + { + "name": "account", + "description": "Account of the current snark worker", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Fee that snark worker is charging to generate a snark proof", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "InetAddr", + "description": "network address", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NetworkPeerPayload", + "description": null, + "fields": [ + { + "name": "peerId", + "description": "base58-encoded peer ID", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "host", + "description": "IP address of the remote host", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "InetAddr", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "libp2pPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetConnectionGatingConfigPayload", + "description": null, + "fields": [ + { + "name": "trustedPeers", + "description": "Peers we will always allow connections from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NetworkPeerPayload", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bannedPeers", + "description": + "Peers we will never allow connections from (unless they are also trusted!)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NetworkPeerPayload", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isolate", + "description": + "If true, no connections will be allowed unless they are from a trusted peer", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MerklePathElement", + "description": null, + "fields": [ + { + "name": "left", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "right", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Action", + "description": "action", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "VerificationKeyHash", + "description": "Hash of verification key", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "VerificationKey", + "description": "verification key in Base64 format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountVerificationKeyWithHash", + "description": "Verification key with hash", + "fields": [ + { + "name": "verificationKey", + "description": "verification key in Base64 format", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": "Hash of verification key", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKeyHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VerificationKeyPermission", + "description": null, + "fields": [ + { + "name": "auth", + "description": + "Authorization required to set the verification key of the zkApp associated with the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "txnVersion", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "AccountAuthRequired", + "description": "Kind of authorization required", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "None", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Either", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Proof", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Signature", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Impossible", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountPermissions", + "description": null, + "fields": [ + { + "name": "editState", + "description": "Authorization required to edit zkApp state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "send", + "description": "Authorization required to send tokens", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receive", + "description": "Authorization required to receive tokens", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access", + "description": "Authorization required to access the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setDelegate", + "description": "Authorization required to set the delegate", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setPermissions", + "description": "Authorization required to change permissions", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVerificationKey", + "description": + "Authorization required to set the verification key of the zkApp associated with the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VerificationKeyPermission", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setZkappUri", + "description": + "Authorization required to change the URI of the zkApp associated with the account ", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "editActionState", + "description": + "Authorization required to edit the action state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTokenSymbol", + "description": "Authorization required to set the token symbol", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": "Authorization required to increment the nonce", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVotingFor", + "description": + "Authorization required to set the state hash the account is voting for", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTiming", + "description": + "Authorization required to set the timing of the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "FieldElem", + "description": "field element", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ChainHash", + "description": "Base58Check-encoded chain hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "AccountNonce", + "description": "account nonce", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "StateHash", + "description": "Base58Check-encoded state hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Length", + "description": "length", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AnnotatedBalance", + "description": + "A total balance annotated with the amount that is currently unknown with the invariant unknown <= total, as well as the currently liquid and locked balances.", + "fields": [ + { + "name": "total", + "description": "The amount of MINA owned by the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unknown", + "description": + "The amount of MINA owned by the account whose origin is currently unknown", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": null + }, + { + "name": "liquid", + "description": + "The amount of MINA owned by the account which is currently available. Can be null if bootstrapping.", + "args": [], + "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "isDeprecated": true, + "deprecationReason": null + }, + { + "name": "locked", + "description": + "The amount of MINA owned by the account which is currently locked. Can be null if bootstrapping.", + "args": [], + "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "isDeprecated": true, + "deprecationReason": null + }, + { + "name": "blockHeight", + "description": "Block height at which balance was measured", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateHash", + "description": + "Hash of block at which balance was measured. Can be null if bootstrapping. Guaranteed to be non-null for direct account lookup queries when not bootstrapping. Can also be null when accessed as nested properties (eg. via delegators). ", + "args": [], + "type": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "description": "global slot span", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Amount", + "description": "amount", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Balance", + "description": "balance", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountTiming", + "description": null, + "fields": [ + { + "name": "initialMinimumBalance", + "description": + "The initial minimum balance for a time-locked account", + "args": [], + "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffTime", + "description": "The cliff time for a time-locked account", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffAmount", + "description": "The cliff amount for a time-locked account", + "args": [], + "type": { "kind": "SCALAR", "name": "Amount", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingPeriod", + "description": "The vesting period for a time-locked account", + "args": [], + "type": { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingIncrement", + "description": + "The vesting increment for a time-locked account", + "args": [], + "type": { "kind": "SCALAR", "name": "Amount", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "TokenId", + "description": + "String representation of a token's UInt64 identifier", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PublicKey", + "description": "Base58Check-encoded public key string", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Account", + "description": "An account record according to the daemon", + "fields": [ + { + "name": "publicKey", + "description": "The public identity of the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenId", + "description": "The token associated with this account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "The token associated with this account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "Use tokenId" + }, + { + "name": "timing", + "description": "The timing associated with this account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountTiming", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "balance", + "description": "The amount of MINA owned by the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotatedBalance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": + "A natural number that increases with each transaction (stringified uint32)", + "args": [], + "type": { + "kind": "SCALAR", + "name": "AccountNonce", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inferredNonce", + "description": + "Like the `nonce` field, except it includes the scheduled transactions (transactions not yet included in a block) (stringified uint32)", + "args": [], + "type": { + "kind": "SCALAR", + "name": "AccountNonce", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochDelegateAccount", + "description": + "The account that you delegated on the staking ledger of the current block's epoch", + "args": [], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiptChainHash", + "description": "Top hash of the receipt chain Merkle-list", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ChainHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": + "The public key to which you are delegating - if you are not delegating to anybody, this would return your public key", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "use delegateAccount instead" + }, + { + "name": "delegateAccount", + "description": + "The account to which you are delegating - if you are not delegating to anybody, this would return your public key", + "args": [], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegators", + "description": + "The list of accounts which are delegating to you (note that the info is recorded in the last epoch so it might not be up to date with the current account status)", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastEpochDelegators", + "description": + "The list of accounts which are delegating to you in the last epoch (note that the info is recorded in the one before last epoch so it might not be up to date with the current account status)", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "votingFor", + "description": + "The previous epoch lock hash of the chain which you are voting for", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ChainHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stakingActive", + "description": + "True if you are actively staking with this account on the current daemon - this may not yet have been updated if the staking key was changed recently", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "privateKeyPath", + "description": "Path of the private key file for this account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "locked", + "description": + "True if locked, false if unlocked, null if the account isn't tracked by the queried daemon", + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "index", + "description": + "The index of this account in the ledger, or null if this account does not yet have a known position in the best tip ledger", + "args": [], + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappUri", + "description": + "The URI associated with this account, usually pointing to the zkApp source code", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappState", + "description": + "The 8 field elements comprising the zkApp state associated with this account encoded as bignum strings", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provedState", + "description": + "Boolean indicating whether all 8 fields on zkAppState were last set by a proof-authorized account update", + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "permissions", + "description": + "Permissions for updating certain fields of this account", + "args": [], + "type": { + "kind": "OBJECT", + "name": "AccountPermissions", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenSymbol", + "description": + "The symbol for the token owned by this account, if there is one", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKey", + "description": "Verification key associated with this account", + "args": [], + "type": { + "kind": "OBJECT", + "name": "AccountVerificationKeyWithHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actionState", + "description": "Action state associated with this account", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Action", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "leafHash", + "description": + "The base58Check-encoded hash of this account to bootstrap the merklePath", + "args": [], + "type": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merklePath", + "description": + "Merkle path is a list of path elements that are either the left or right hashes up to the root", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MerklePathElement", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Boolean", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GetFilteredLogEntries", + "description": null, + "fields": [ + { + "name": "logMessages", + "description": "Structured log messages since the given offset", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isCapturing", + "description": + "Whether we are capturing structured log messages", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Metrics", + "description": null, + "fields": [ + { + "name": "blockProductionDelay", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionPoolDiffReceived", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionPoolDiffBroadcasted", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionsAddedToPool", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionPoolSize", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkPoolDiffReceived", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkPoolDiffBroadcasted", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pendingSnarkWork", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkPoolSize", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AddrsAndPorts", + "description": null, + "fields": [ + { + "name": "externalIp", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bindIp", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peer", + "description": null, + "args": [], + "type": { "kind": "OBJECT", "name": "Peer", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "libp2pPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Time", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConsensusConfiguration", + "description": null, + "fields": [ + { + "name": "delta", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "k", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slotsPerEpoch", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slotDuration", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochDuration", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "genesisStateTimestamp", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acceptableNetworkDelay", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConsensusTimeGlobalSlot", + "description": + "Consensus time and the corresponding global slot since genesis", + "fields": [ + { + "name": "consensusTime", + "description": + "Time in terms of slot number in an epoch, start and end time of the slot since UTC epoch", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesis", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Globalslot", + "description": "global slot", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BlockProducerTimings", + "description": null, + "fields": [ + { + "name": "times", + "description": "Next block production time", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusTime", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesis", + "description": + "Next block production global-slot-since-genesis ", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "generatedFromConsensusAt", + "description": + "Consensus time of the block that was used to determine the next block production time", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusTimeGlobalSlot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "BlockTime", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "GlobalSlotSinceHardFork", + "description": "global slot since hard fork", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UInt32", + "description": "String representing a uint32 number in base 10", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConsensusTime", + "description": null, + "fields": [ + { + "name": "epoch", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slot", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlot", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceHardFork", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startTime", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BlockTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endTime", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BlockTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Span", + "description": "span", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Interval", + "description": null, + "fields": [ + { + "name": "start", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Span", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stop", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Span", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Histogram", + "description": null, + "fields": [ + { + "name": "values", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "intervals", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Interval", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "underflow", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "overflow", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RpcPair", + "description": null, + "fields": [ + { + "name": "dispatch", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "impl", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RpcTimings", + "description": null, + "fields": [ + { + "name": "getStagedLedgerAux", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "answerSyncLedgerQuery", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getAncestry", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getTransitionChainProof", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getTransitionChain", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Histograms", + "description": null, + "fields": [ + { + "name": "rpcTimings", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcTimings", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "externalTransitionLatency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acceptedTransitionLocalLatency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acceptedTransitionRemoteLatency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorkerTransitionTime", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorkerMergeTime", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Peer", + "description": null, + "fields": [ + { + "name": "host", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "libp2pPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peerId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "String", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Int", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DaemonStatus", + "description": null, + "fields": [ + { + "name": "numAccounts", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainLength", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "highestBlockLengthReceived", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "highestUnvalidatedBlockLengthReceived", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "uptimeSecs", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ledgerMerkleRoot", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chainId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "commitId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "confDir", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peers", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Peer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "userCommandsSent", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorker", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorkFee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "syncStatus", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SyncStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "catchupStatus", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockProductionKeys", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbaseReceiver", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "histograms", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histograms", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusTimeBestTip", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ConsensusTime", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesisBestTip", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextBlockProduction", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "BlockProducerTimings", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusTimeNow", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusMechanism", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusConfiguration", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusConfiguration", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "addrsAndPorts", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AddrsAndPorts", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "metrics", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Metrics", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "SyncStatus", + "description": "Sync status of daemon", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CONNECTING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LISTENING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OFFLINE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BOOTSTRAP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SYNCED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CATCHUP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "query", + "description": null, + "fields": [ + { + "name": "syncStatus", + "description": "Network sync status", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SyncStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "daemonStatus", + "description": "Get running daemon status", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DaemonStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": "The version of the node (git commit hash)", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getFilteredLogEntries", + "description": + "TESTING ONLY: Retrieve all new structured events in memory", + "args": [ + { + "name": "offset", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GetFilteredLogEntries", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ownedWallets", + "description": + "Wallets for which the daemon knows the private key", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + "isDeprecated": true, + "deprecationReason": "use trackedAccounts instead" + }, + { + "name": "trackedAccounts", + "description": + "Accounts for which the daemon tracks the private key", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "wallet", + "description": "Find any wallet via a public key", + "args": [ + { + "name": "publicKey", + "description": "Public key of account being retrieved", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": true, + "deprecationReason": "use account instead" + }, + { + "name": "connectionGatingConfig", + "description": + "The rules that the libp2p helper will use to determine which connections to permit", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetConnectionGatingConfigPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": "Find any account via a public key and token", + "args": [ + { + "name": "token", + "description": + "Token of account being retrieved (defaults to MINA)", + "type": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": "Public key of account being retrieved", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accounts", + "description": "Find all accounts for a public key", + "args": [ + { + "name": "publicKey", + "description": "Public key to find accounts for", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenOwner", + "description": "Find the account that owns a given token", + "args": [ + { + "name": "tokenId", + "description": "Token ID to find the owning account for", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenAccounts", + "description": "Find all accounts for a token ID", + "args": [ + { + "name": "tokenId", + "description": "Token ID to find accounts for", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currentSnarkWorker", + "description": "Get information about the current snark worker", + "args": [], + "type": { + "kind": "OBJECT", + "name": "SnarkWorker", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bestChain", + "description": + "Retrieve a list of blocks from transition frontier's root to the current best tip. Returns an error if the system is bootstrapping.", + "args": [ + { + "name": "maxLength", + "description": + "The maximum number of blocks to return. If there are more blocks in the transition frontier from root to tip, the n blocks closest to the best tip will be returned", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "block", + "description": + "Retrieve a block with the given state hash or height, if contained in the transition frontier.", + "args": [ + { + "name": "height", + "description": + "The height of the desired block in the best chain", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + }, + { + "name": "stateHash", + "description": "The state hash of the desired block", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "genesisBlock", + "description": "Get the genesis block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "initialPeers", + "description": + "List of peers that the daemon first used to connect to the network", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getPeers", + "description": + "List of peers that the daemon is currently connected to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Peer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pooledUserCommands", + "description": + "Retrieve all the scheduled user commands for a specified sender that the current daemon sees in its transaction pool. All scheduled commands are queried if no sender is specified", + "args": [ + { + "name": "ids", + "description": "Ids of User commands", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "hashes", + "description": "Hashes of the commands to find in the pool", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": + "Public key of sender of pooled user commands", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pooledZkappCommands", + "description": + "Retrieve all the scheduled zkApp commands for a specified sender that the current daemon sees in its transaction pool. All scheduled commands are queried if no sender is specified", + "args": [ + { + "name": "ids", + "description": "Ids of zkApp commands", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "hashes", + "description": + "Hashes of the zkApp commands to find in the pool", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": + "Public key of sender of pooled zkApp commands", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommandResult", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionStatus", + "description": "Get the status of a transaction", + "args": [ + { + "name": "zkappTransaction", + "description": "Id of a zkApp transaction", + "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, + "defaultValue": null + }, + { + "name": "payment", + "description": "Id of a Payment", + "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "TransactionStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trustStatus", + "description": "Trust status for an IPv4 or IPv6 address", + "args": [ + { + "name": "ipAddress", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TrustStatusPayload", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trustStatusAll", + "description": "IP address and trust status for all peers", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TrustStatusPayload", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkPool", + "description": + "List of completed snark works that have the lowest fee so far", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CompletedWork", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pendingSnarkWork", + "description": "List of snark works that are yet to be done", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PendingSnarkWork", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "genesisConstants", + "description": + "The constants used to determine the configuration of the genesis block and all of its transitive dependencies", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GenesisConstants", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timeOffset", + "description": + "The time offset in seconds used to convert real times into blockchain times", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validatePayment", + "description": "Validate the format and signature of a payment", + "args": [ + { + "name": "signature", + "description": + "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignatureInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendPaymentInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "evaluateVrf", + "description": + "Evaluate a vrf for the given public key. This includes a witness which may be verified without access to the private key for this vrf evaluation.", + "args": [ + { + "name": "vrfThreshold", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "message", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VrfMessageInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VrfEvaluation", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "checkVrf", + "description": + "Check a vrf evaluation commitment. This can be used to check vrf evaluations without needing to reveal the private key, in the format returned by evaluateVrf", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VrfEvaluationInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VrfEvaluation", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "runtimeConfig", + "description": + "The runtime configuration passed to the daemon at start-up", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fork_config", + "description": + "The runtime configuration for a blockchain fork intended to be a continuation of the current one. By default, this returns the newest block that appeared before the transaction stop slot provided in the configuration, or the best tip if no such block exists.", + "args": [ + { + "name": "height", + "description": + "The height of the desired block in the best chain", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + }, + { + "name": "stateHash", + "description": "The state hash of the desired block", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "threadGraph", + "description": + "A graphviz dot format representation of the deamon's internal thread graph", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainVerificationKey", + "description": + "The pickles verification key for the protocol state proof", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkID", + "description": + "The chain-agnostic identifier of the network this daemon is participating in", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signatureKind", + "description": + "The signature kind that this daemon instance is using", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "protocolState", + "description": + "Get the protocol state for a given block, optionally encoded in Base64", + "args": [ + { + "name": "encoding", + "description": "Encoding format (JSON or BASE64)", + "type": { + "kind": "ENUM", + "name": "Encoding", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "height", + "description": + "The height of the desired block in the best chain", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + }, + { + "name": "stateHash", + "description": "The state hash of the desired block", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + } + ], + "directives": [] + } + } +} diff --git a/core/src/graphql/state_query.graphql b/core/src/graphql/state_query.graphql new file mode 100644 index 00000000..d6faf5b1 --- /dev/null +++ b/core/src/graphql/state_query.graphql @@ -0,0 +1,3 @@ +query StateQuery($stateHash: String!) { + protocolState(encoding: BASE64, stateHash: $stateHash) +} diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index 3fd43e1a..45ffb83b 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -2,15 +2,37 @@ use std::str::FromStr as _; use aligned_sdk::core::types::{ProvingSystemId, VerificationData}; use ethers::types::Address; +use graphql_client::{reqwest::post_graphql_blocking, GraphQLQuery}; use kimchi::{o1_utils::FieldHelpers, turshi::helper::CairoFieldHelpers}; use log::{debug, info}; use mina_curves::pasta::Fp; -use reqwest::header::CONTENT_TYPE; +use mina_p2p_messages::v2::StateHash; +use reqwest::blocking::Client; use crate::utils::constants::{ MINA_STATE_HASH_SIZE, MINA_TIP_PROTOCOL_STATE, MINA_TIP_STATE_HASH_FIELD, }; +type StateHashAsDecimal = String; +type PrecomputedBlockProof = String; +type ProtocolState = String; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "src/graphql/mina_schema.json", + query_path = "src/graphql/state_query.graphql" +)] +/// A query for a protocol state given some state hash (non-field). +struct StateQuery; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "src/graphql/mina_schema.json", + query_path = "src/graphql/candidate_query.graphql" +)] +/// A query for the latest protocol state hash field and proof. +struct CandidateQuery; + pub fn query_and_serialize( rpc_url: &str, proof_generator_addr: &str, @@ -23,27 +45,30 @@ pub fn query_and_serialize( let mut tip_protocol_state_len_bytes = [0; 4]; tip_protocol_state_len_bytes.copy_from_slice(&tip_protocol_state_len.to_be_bytes()); - debug!("Querying Mina node for last state and proof"); - let last_block_value = query_last_block(rpc_url)?; + let (candidate_hash, candidate_proof) = query_candidate(rpc_url, candidate_query::Variables)?; + let candidate_encoded_hash = encode_state_hash(&candidate_hash)?; // used for state query - let proof = serialize_protocol_state_proof(&last_block_value)?; + let candidate_hash = serialize_state_hash(&candidate_hash)?; + let candidate_proof = serialize_state_proof(&candidate_proof); - let candidate_protocol_state = get_protocol_state(&last_block_value)?; - let candidate_protocol_state_len = candidate_protocol_state.len() as u32; - let mut candidate_protocol_state_len_bytes = [0; 4]; - candidate_protocol_state_len_bytes.copy_from_slice(&candidate_protocol_state_len.to_be_bytes()); + let candidate_state = query_state( + rpc_url, + state_query::Variables { + state_hash: candidate_encoded_hash, + }, + )?; + let candidate_state = serialize_state(candidate_state); - let candidate_state_hash = get_state_hash_field(&last_block_value)?; info!( "Queried Mina candidate state 0x{} and its proof from Mainnet node", - Fp::from_bytes(&candidate_state_hash) + Fp::from_bytes(&candidate_hash) .map_err(|err| err.to_string())? .to_hex_be() ); - let mut pub_input = candidate_state_hash; - pub_input.extend(candidate_protocol_state_len_bytes); - pub_input.extend(candidate_protocol_state); + let mut pub_input = candidate_hash; + pub_input.extend((candidate_state.len() as u32).to_be_bytes()); + pub_input.extend(candidate_state); pub_input.extend(tip_state_hash_field); pub_input.extend(tip_protocol_state_len_bytes); pub_input.extend(tip_protocol_state); @@ -54,7 +79,7 @@ pub fn query_and_serialize( Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; Ok(VerificationData { proving_system: ProvingSystemId::Mina, - proof, + proof: candidate_proof, pub_input, verification_key: None, vm_program_code: None, @@ -62,52 +87,67 @@ pub fn query_and_serialize( }) } -fn query_last_block(rpc_url: &str) -> Result { - let body = "{\"query\": \"{ - protocolState(encoding: BASE64) - bestChain(maxLength: 1) { - stateHashField - protocolStateProof { - base64 - } - } - }\"}" - .to_owned(); - let client = reqwest::blocking::Client::new(); - let response = client - .post(rpc_url) - .header(CONTENT_TYPE, "application/json") - .body(body) - .send() +pub fn query_state( + rpc_url: &str, + variables: state_query::Variables, +) -> Result { + debug!("Querying state {}", variables.state_hash); + let client = Client::new(); + let response = post_graphql_blocking::(&client, rpc_url, variables) .map_err(|err| err.to_string())? - .text() - .map_err(|err| err.to_string())?; - let response_value = serde_json::Value::from_str(&response).map_err(|err| err.to_string())?; - - response_value.get("data").cloned().ok_or(format!( - "Error getting 'data' from response: {:?}", - response - )) + .data + .ok_or("Missing state query response data".to_string())?; + Ok(response.protocol_state) +} + +pub fn query_candidate( + rpc_url: &str, + variables: candidate_query::Variables, +) -> Result<(PrecomputedBlockProof, StateHashAsDecimal), String> { + debug!("Querying for candidate state"); + let client = Client::new(); + let response = post_graphql_blocking::(&client, rpc_url, variables) + .map_err(|err| err.to_string())? + .data + .ok_or("Missing candidate query response data".to_string())?; + let best_chains = response + .best_chain + .ok_or("Missing best chain field".to_string())?; + let best_chain = best_chains + .first() + .ok_or("Missing best chain".to_string())?; + let state_hash_field = best_chain.state_hash_field.clone(); + let protocol_state_proof = best_chain + .protocol_state_proof + .base64 + .clone() + .ok_or("No protocol state proof".to_string())?; + + Ok((state_hash_field, protocol_state_proof)) +} + +fn serialize_state_hash(hash: &StateHashAsDecimal) -> Result, String> { + let bytes = Fp::from_str(hash) + .map_err(|_| "Failed to decode hash as a field element".to_string())? + .to_bytes(); + if bytes.len() != 32 { + return Err("Failed to encode hash as bytes: length is not exactly 32.".to_string()); + } + Ok(bytes) } -fn get_state_hash_field(response_value: &serde_json::Value) -> Result, String> { - let state_hash_field_str = response_value - .get("bestChain") - .and_then(|d| d.get(0)) - .and_then(|d| d.get("stateHashField")) - .ok_or(format!( - "Error getting 'bestChain[0].stateHashField' from {:?}", - response_value - ))? - .as_str() - .ok_or(format!( - "Error converting state hash value to string: {:?}", - response_value, - ))?; - - debug!("Queried Mina state hash field: {}", state_hash_field_str); - - serialize_state_hash_field(state_hash_field_str) +fn serialize_state_proof(proof: &PrecomputedBlockProof) -> Vec { + proof.as_bytes().to_vec() +} + +fn serialize_state(state: ProtocolState) -> Vec { + state.as_bytes().to_vec() +} + +fn encode_state_hash(hash: &StateHashAsDecimal) -> Result { + Fp::from_str(hash) + .map_err(|_| "Failed to decode hash as a field element".to_string()) + .map(|fp| StateHash::from_fp(fp).to_string()) } fn serialize_state_hash_field(state_hash_field_str: &str) -> Result, String> { @@ -124,48 +164,12 @@ fn serialize_state_hash_field(state_hash_field_str: &str) -> Result, Str Ok(state_hash_field_bytes) } -fn get_protocol_state(response_value: &serde_json::Value) -> Result, String> { - let protocol_state_str = response_value - .get("protocolState") - .ok_or(format!( - "Error getting 'protocolState' from {:?}", - response_value - ))? - .as_str() - .ok_or(format!( - "Error converting protocol state value to string: {:?}", - response_value, - ))?; - - serialize_protocol_state(protocol_state_str) -} - fn serialize_protocol_state(protocol_state_str: &str) -> Result, String> { let protocol_state_bytes = protocol_state_str.as_bytes().to_vec(); Ok(protocol_state_bytes) } -fn serialize_protocol_state_proof(response_value: &serde_json::Value) -> Result, String> { - let protocol_state_proof_str = response_value - .get("bestChain") - .and_then(|d| d.get(0)) - .and_then(|d| d.get("protocolStateProof")) - .and_then(|d| d.get("base64")) - .ok_or(format!( - "Error getting 'bestChain[0].protocolStateProof.base64' from {:?}", - response_value - ))? - .as_str() - .ok_or(format!( - "Error converting protocol state proof value to string: {:?}", - response_value, - ))?; - let protocol_state_proof_bytes = protocol_state_proof_str.as_bytes().to_vec(); - - Ok(protocol_state_proof_bytes) -} - #[cfg(test)] mod tests { use crate::utils::constants::ANVIL_PROOF_GENERATOR_ADDR; From e6eef29c1c2151cda0afcab66af12bd40f87bd42 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 7 Aug 2024 12:38:34 -0300 Subject: [PATCH 12/46] Remove state_utility directory (#304) --- .github/workflows/ci.yaml | 14 - state_utility/merkle_path/.gitignore | 3 - state_utility/merkle_path/Cargo.lock | 2003 ------ state_utility/merkle_path/Cargo.toml | 19 - state_utility/merkle_path/src/field.rs | 61 - state_utility/merkle_path/src/lib.rs | 58 - state_utility/merkle_path/src/main.rs | 14 - state_utility/merkle_path/src/merkle_path.rs | 154 - state_utility/merkle_path/src/serialize.rs | 9 - .../merkle_path/tests/process_input.rs | 14 - .../merkle_path/tests/public_key.txt | 1 - .../tests/solidity_test_input.json | 16 - state_utility/merkle_root/.gitignore | 3 - state_utility/merkle_root/Cargo.lock | 1089 --- state_utility/merkle_root/Cargo.toml | 17 - state_utility/merkle_root/src/field.rs | 61 - state_utility/merkle_root/src/lib.rs | 53 - state_utility/merkle_root/src/main.rs | 10 - .../merkle_root/tests/merkle_root.txt | 1 - .../merkle_root/tests/process_input.rs | 8 - .../merkle_root/tests/public_key.txt | 1 - .../tests/solidity_test_input.json | 16 - state_utility/parser/.gitignore | 2 - state_utility/parser/Cargo.lock | 3113 -------- state_utility/parser/Cargo.toml | 31 - state_utility/parser/src/lib.rs | 62 - state_utility/parser/src/main.rs | 18 - state_utility/parser/tests/merkle_root.txt | 1 - .../parser/tests/parse_merkle_root.rs | 9 - state_utility/run.sh | 17 - state_utility/server/.gitignore | 1 - state_utility/server/Cargo.lock | 4684 ------------- state_utility/server/Cargo.toml | 18 - state_utility/server/src/main.rs | 140 - state_utility/server/verifier.json | 24 - state_utility/web_extension/.gitignore | 2 - state_utility/web_extension/Makefile | 8 - state_utility/web_extension/background.js | 0 state_utility/web_extension/manifest.json | 29 - state_utility/web_extension/package-lock.json | 6231 ----------------- state_utility/web_extension/package.json | 16 - state_utility/web_extension/popup/output.css | 1016 --- state_utility/web_extension/popup/popup.css | 3 - state_utility/web_extension/popup/popup.html | 43 - state_utility/web_extension/popup/utility.js | 50 - .../web_extension/tailwind.config.js | 9 - 46 files changed, 19152 deletions(-) delete mode 100644 state_utility/merkle_path/.gitignore delete mode 100644 state_utility/merkle_path/Cargo.lock delete mode 100644 state_utility/merkle_path/Cargo.toml delete mode 100644 state_utility/merkle_path/src/field.rs delete mode 100644 state_utility/merkle_path/src/lib.rs delete mode 100644 state_utility/merkle_path/src/main.rs delete mode 100644 state_utility/merkle_path/src/merkle_path.rs delete mode 100644 state_utility/merkle_path/src/serialize.rs delete mode 100644 state_utility/merkle_path/tests/process_input.rs delete mode 100644 state_utility/merkle_path/tests/public_key.txt delete mode 100644 state_utility/merkle_path/tests/solidity_test_input.json delete mode 100644 state_utility/merkle_root/.gitignore delete mode 100644 state_utility/merkle_root/Cargo.lock delete mode 100644 state_utility/merkle_root/Cargo.toml delete mode 100644 state_utility/merkle_root/src/field.rs delete mode 100644 state_utility/merkle_root/src/lib.rs delete mode 100644 state_utility/merkle_root/src/main.rs delete mode 100644 state_utility/merkle_root/tests/merkle_root.txt delete mode 100644 state_utility/merkle_root/tests/process_input.rs delete mode 100644 state_utility/merkle_root/tests/public_key.txt delete mode 100644 state_utility/merkle_root/tests/solidity_test_input.json delete mode 100644 state_utility/parser/.gitignore delete mode 100644 state_utility/parser/Cargo.lock delete mode 100644 state_utility/parser/Cargo.toml delete mode 100644 state_utility/parser/src/lib.rs delete mode 100644 state_utility/parser/src/main.rs delete mode 100644 state_utility/parser/tests/merkle_root.txt delete mode 100644 state_utility/parser/tests/parse_merkle_root.rs delete mode 100644 state_utility/run.sh delete mode 100644 state_utility/server/.gitignore delete mode 100644 state_utility/server/Cargo.lock delete mode 100644 state_utility/server/Cargo.toml delete mode 100644 state_utility/server/src/main.rs delete mode 100644 state_utility/server/verifier.json delete mode 100644 state_utility/web_extension/.gitignore delete mode 100644 state_utility/web_extension/Makefile delete mode 100644 state_utility/web_extension/background.js delete mode 100644 state_utility/web_extension/manifest.json delete mode 100644 state_utility/web_extension/package-lock.json delete mode 100644 state_utility/web_extension/package.json delete mode 100644 state_utility/web_extension/popup/output.css delete mode 100644 state_utility/web_extension/popup/popup.css delete mode 100644 state_utility/web_extension/popup/popup.html delete mode 100644 state_utility/web_extension/popup/utility.js delete mode 100644 state_utility/web_extension/tailwind.config.js diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8e5af6b8..4492659f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,17 +13,3 @@ jobs: with: skip_run: true directory: core - - merkle_path: - name: Test Merkle Path parser - uses: ./.github/workflows/rust_ci.yaml - with: - skip_run: true - directory: state_utility/merkle_path - - merkle_root_parser: - name: Test Merkle Root parser - uses: ./.github/workflows/rust_ci.yaml - with: - skip_run: true - directory: state_utility/parser diff --git a/state_utility/merkle_path/.gitignore b/state_utility/merkle_path/.gitignore deleted file mode 100644 index 1e8f1c50..00000000 --- a/state_utility/merkle_path/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -target/ -leaf_hash.bin -merkle_path.bin diff --git a/state_utility/merkle_path/Cargo.lock b/state_utility/merkle_path/Cargo.lock deleted file mode 100644 index dcee56b2..00000000 --- a/state_utility/merkle_path/Cargo.lock +++ /dev/null @@ -1,2003 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ark-ec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea978406c4b1ca13c2db2373b05cc55429c3575b8b21f1b9ee859aa5b03dd42" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0f78f47537c2f15706db7e98fe64cc1711dbf9def81218194e17239e53e5aa" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.11.2", - "rayon", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd4e5f0bf8285d5ed538d27fab7411f3e297908fd93c62195de8bee3f199e82" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "backtrace" -version = "0.3.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2", - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" - -[[package]] -name = "cc" -version = "1.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "serde", - "windows-targets 0.52.5", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.66", -] - -[[package]] -name = "darling_macro" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "either" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" - -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-core", - "futures-io", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap 2.2.6", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" -dependencies = [ - "bytes", - "futures-core", - "http", - "http-body", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "hyper" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown 0.14.5", - "serde", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "merkle-path" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "bs58", - "hex", - "mina-hasher", - "num-bigint", - "reqwest", - "serde", - "serde_json", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mina-curves" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#afdf98bb1077f8a194ee85259335e3e2db612328" -dependencies = [ - "ark-ec", - "ark-ff", - "num-bigint", -] - -[[package]] -name = "mina-hasher" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#afdf98bb1077f8a194ee85259335e3e2db612328" -dependencies = [ - "ark-ff", - "bitvec", - "mina-curves", - "mina-poseidon", - "o1-utils", - "serde", -] - -[[package]] -name = "mina-poseidon" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#afdf98bb1077f8a194ee85259335e3e2db612328" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "mina-curves", - "o1-utils", - "once_cell", - "rand", - "rayon", - "serde", - "serde_with", -] - -[[package]] -name = "miniz_oxide" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.48.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "num-bigint" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" -dependencies = [ - "num-integer", - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#afdf98bb1077f8a194ee85259335e3e2db612328" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with", - "sha2", - "thiserror", -] - -[[package]] -name = "object" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "openssl" -version = "0.10.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" -dependencies = [ - "bitflags 2.5.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro2" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "reqwest" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-tls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" -dependencies = [ - "base64", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "security-framework" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" -dependencies = [ - "bitflags 2.5.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.203" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.203" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "serde_json" -version = "1.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" -dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.6", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "thiserror" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "pin-project-lite", - "socket2", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.66", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "web-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] diff --git a/state_utility/merkle_path/Cargo.toml b/state_utility/merkle_path/Cargo.toml deleted file mode 100644 index 71e3565d..00000000 --- a/state_utility/merkle_path/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "merkle-path" -version = "0.1.0" -edition = "2021" - -[dependencies] -serde_json = "1.0.108" -serde = { version = "1.0.192", features = ["derive"] } -hex = "0.4.3" -reqwest = { version = "0.12", features = ["blocking"] } - -ark-poly = { version = "0.3.0" } -ark-serialize = { version = "0.3.0" } -num-bigint = "0.4.3" -ark-ff = { version = "0.3.0", features = ["parallel", "asm"] } -ark-ec = { version = "0.3.0" } -bs58 = { version = "0.5.1", features = ["check"] } - -mina-hasher = { git = "https://github.com/o1-labs/proof-systems" } diff --git a/state_utility/merkle_path/src/field.rs b/state_utility/merkle_path/src/field.rs deleted file mode 100644 index 76bd29d6..00000000 --- a/state_utility/merkle_path/src/field.rs +++ /dev/null @@ -1,61 +0,0 @@ -use ark_serialize::CanonicalSerialize; -use mina_hasher::Fp; - -/// Converts a string slice to a field element. -/// -/// # Arguments -/// -/// * `s` - A string slice that holds the field element. -/// -/// # Errors -/// -/// Returns a string slice with an error message if the field element cannot be converted. -pub fn from_str(s: &str) -> Result { - if s.is_empty() { - return Err("Field string is empty".to_owned()); - } - - if s == "0" { - return Ok(Fp::from(0u8)); - } - - let mut res = Fp::from(0u8); - - let ten = Fp::from(10u8); - - let mut first_digit = true; - - for c in s.chars() { - let c_digit = c.to_digit(10).ok_or("Digit is not decimal".to_owned())?; - - if first_digit { - if c_digit == 0 { - return Err("First digit is zero".to_owned()); - } - - first_digit = false; - } - - res *= &ten; - let digit = Fp::from(u64::from(c_digit)); - res += &digit; - } - Ok(res) -} - -/// Converts a field element to a byte vector. -/// -/// # Arguments -/// -/// * `f` - A reference to a field element. -/// -/// # Errors -/// -/// Returns a string slice with an error message if the field element cannot be serialized. -pub fn to_bytes(f: &Fp) -> Result, String> { - let mut bytes: Vec = vec![]; - f.serialize(&mut bytes) - .map_err(|_err| "Failed to serialize field")?; - - Ok(bytes.into_iter().rev().collect()) -} diff --git a/state_utility/merkle_path/src/lib.rs b/state_utility/merkle_path/src/lib.rs deleted file mode 100644 index d662cc85..00000000 --- a/state_utility/merkle_path/src/lib.rs +++ /dev/null @@ -1,58 +0,0 @@ -pub mod field; -pub mod merkle_path; -pub mod serialize; - -use merkle_path::MerkleTree; -use serialize::EVMSerializable; -use std::fs; -use std::io::Write; - -/// Reads input JSON file, deserializes it to `MerkleTree`, and writes the `MerklePath` to a binary file. -/// -/// # Arguments -/// -/// * `rpc_url` - The URL of the Mina node GraphQL API. -/// * `public_key_path` - A string slice that holds the path to the public key used to query the Mina node. -/// * `leaf_hash_path` - A string slice that holds the path to the output leaf hash file. -/// * `merkle_tree_path` - A string slice that holds the path to the output Merkle tree file. -/// -/// # Errors -/// -/// Returns a string slice with an error message if the file cannot be opened, -/// the content cannot be deserialized to JSON, -/// or the output file cannot be created or written to. -pub fn process_input_json( - rpc_url: &str, - public_key_path: &str, - leaf_hash_path: &str, - merkle_tree_path: &str, -) -> Result<(), String> { - let public_key = std::fs::read_to_string(public_key_path) - .map_err(|err| format!("Error opening file {err}"))?; - let merkle_tree = MerkleTree::query_merkle_path(rpc_url, &public_key)?; - - let leaf_hash = field::from_str(&merkle_tree.data.account.leaf_hash) - .map_err(|err| format!("Error deserializing leaf hash to field {err}"))?; - - let mut leaf_hash_file = fs::OpenOptions::new() - .create(true) - .truncate(true) - .write(true) - .open(leaf_hash_path) - .map_err(|err| format!("Error creating file {err}"))?; - - let _ = leaf_hash_file - .write_all(&field::to_bytes(&leaf_hash)?) - .map_err(|err| format!("Error writing to output file {err}")); - - let mut merkle_tree_file = fs::OpenOptions::new() - .create(true) - .truncate(true) - .write(true) - .open(merkle_tree_path) - .map_err(|err| format!("Error creating file {err}"))?; - - merkle_tree_file - .write_all(&merkle_tree.data.account.merkle_path.to_bytes()) - .map_err(|err| format!("Error writing to output file {err}")) -} diff --git a/state_utility/merkle_path/src/main.rs b/state_utility/merkle_path/src/main.rs deleted file mode 100644 index 3707a647..00000000 --- a/state_utility/merkle_path/src/main.rs +++ /dev/null @@ -1,14 +0,0 @@ -use merkle_path::process_input_json; - -fn main() -> Result<(), String> { - let args: Vec = std::env::args().collect(); - - let rpc_url = args.get(1).ok_or("Error: No RPC URL provided")?; - let public_key_path = args.get(2).ok_or("Error: No public key file provided")?; - process_input_json( - rpc_url, - public_key_path, - "../eth_verifier/merkle_leaf.bin", - "../eth_verifier/merkle_path.bin", - ) -} diff --git a/state_utility/merkle_path/src/merkle_path.rs b/state_utility/merkle_path/src/merkle_path.rs deleted file mode 100644 index 5f578c08..00000000 --- a/state_utility/merkle_path/src/merkle_path.rs +++ /dev/null @@ -1,154 +0,0 @@ -use crate::{field, serialize::EVMSerializable}; -use reqwest::header::CONTENT_TYPE; -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "camelCase")] -pub struct MerkleTree { - pub data: Data, -} - -impl MerkleTree { - #[must_use] - pub fn create_map(&self) -> Vec { - self.data - .account - .merkle_path - .iter() - .map(|leaf| match (&leaf.left, &leaf.right) { - // 0 if left, 1 if right - (Some(left), None) => format!("{}{}", "0", left.to_owned()), - (None, Some(right)) => format!("{}{}", "1", right.to_owned()), - _ => unreachable!(), - }) - .collect() - } - - /// Queries the merkle path from the GraphQL endpoint. - /// - /// # Arguments - /// - /// * `public_key` - A string slice that holds the public key. - /// - /// # Errors - /// - /// Returns a string slice with an error message if the request cannot be made, - /// or the response cannot be converted to JSON. - pub fn query_merkle_path(rpc_url: &str, public_key: &str) -> Result { - serde_json::from_str( - &reqwest::blocking::Client::new() - .post(rpc_url) - .header(CONTENT_TYPE, "application/json") - .body(format!( - "{{\"query\": \"{{ - account(publicKey: \\\"{public_key}\\\") {{ - leafHash - merklePath {{ - left - right - }} - }} - }}\"}}" - )) - .send() - .map_err(|err| format!("Error making request {err}"))? - .text() - .map_err(|err| format!("Error getting text {err}"))?, - ) - .map_err(|err| format!("Error converting to json {err}")) - } -} - -#[derive(Serialize, Deserialize, Debug)] -pub struct Data { - pub account: Account, -} - -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "camelCase")] -pub struct Account { - pub leaf_hash: String, - pub merkle_path: Vec, -} - -#[derive(Serialize, Deserialize, Debug, Clone)] -#[serde(rename_all = "camelCase")] -pub struct MerkleLeaf { - pub left: Option, - pub right: Option, -} - -impl EVMSerializable for Vec { - fn to_bytes(self) -> Vec { - let mut ret = Vec::new(); - for leaf in self { - match (leaf.left, leaf.right) { - (Some(left), None) => { - let f = field::from_str(&left).unwrap(); - let bytes = field::to_bytes(&f).unwrap(); - let padding_count = 32 - bytes.len(); - ret.extend(std::iter::repeat(0_u8).take(padding_count)); - ret.extend(bytes); - ret.extend(std::iter::repeat(0_u8).take(32)); - } - (None, Some(right)) => { - let f = field::from_str(&right).unwrap(); - let bytes = field::to_bytes(&f).unwrap(); - let padding_count = 32 - bytes.len(); - ret.extend(std::iter::repeat(0_u8).take(padding_count)); - ret.extend(bytes); - ret.extend(std::iter::repeat(0_u8).take(31)); - ret.push(0b1); - } - _ => unreachable!(), - } - } - ret - } -} - -#[cfg(test)] -mod test { - use crate::merkle_path::MerkleLeaf; - use crate::serialize::EVMSerializable; - use crate::MerkleTree; - - #[test] - fn test_merkle_leaf() { - let serialized = r#"{ - "right": "42", - "left": null - }"#; - let deserialized: MerkleLeaf = serde_json::from_str(serialized).unwrap(); - - let v = vec![deserialized.clone()]; - let ret_to_bytes = v.to_bytes(); - - println!("{ret_to_bytes:?}"); - assert_eq!(deserialized.left, None); - } - - #[test] - fn test_merkle_path() { - let serialized = r#"{ - "data": { - "account": { - "leafHash": "25269606294916619424328783876704640983264873133815222226208603489064938585963", - "merklePath": [ - { - "left": null, - "right": "25269606294916619424328783876704640983264873133815222226208603489064938585963" - }, - { - "left": "8196401609013649445499057870676218044178796697776855327762810874439081359829", - "right": null - } - ] - } - } - }"#; - let deserialized: MerkleTree = serde_json::from_str(serialized).unwrap(); - let flatten = deserialized.create_map(); - println!("{flatten:?}"); - } -} diff --git a/state_utility/merkle_path/src/serialize.rs b/state_utility/merkle_path/src/serialize.rs deleted file mode 100644 index 3853d255..00000000 --- a/state_utility/merkle_path/src/serialize.rs +++ /dev/null @@ -1,9 +0,0 @@ -/// Newtype for types that can be serialized into bytes and sent directly to -/// smart contract functions of the verifier. -pub struct EVMSerializableType(pub T); - -/// Trait for types that can be serialized into bytes and sent directly to -/// smart contract functions of the verifier. -pub trait EVMSerializable { - fn to_bytes(self) -> Vec; -} diff --git a/state_utility/merkle_path/tests/process_input.rs b/state_utility/merkle_path/tests/process_input.rs deleted file mode 100644 index 0153d051..00000000 --- a/state_utility/merkle_path/tests/process_input.rs +++ /dev/null @@ -1,14 +0,0 @@ -#[cfg(test)] -mod test { - use merkle_path::process_input_json; - #[test] - fn test_input_json() { - process_input_json( - "http://5.9.57.89:3085/graphql", - "./tests/public_key.txt", - "./tests/leaf_hash.bin", - "./tests/merkle_path.bin", - ) - .unwrap(); - } -} diff --git a/state_utility/merkle_path/tests/public_key.txt b/state_utility/merkle_path/tests/public_key.txt deleted file mode 100644 index 35406489..00000000 --- a/state_utility/merkle_path/tests/public_key.txt +++ /dev/null @@ -1 +0,0 @@ -B62qiy32p8kAKnny8ZFwoMhYpBppM1DWVCqAPBYNcXnsAHhnfAAuXgg \ No newline at end of file diff --git a/state_utility/merkle_path/tests/solidity_test_input.json b/state_utility/merkle_path/tests/solidity_test_input.json deleted file mode 100644 index 74b43828..00000000 --- a/state_utility/merkle_path/tests/solidity_test_input.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "data": { - "account": { - "merklePath": [ - { - "left": null, - "right": "42" - }, - { - "left": "28", - "right": null - } - ] - } - } -} diff --git a/state_utility/merkle_root/.gitignore b/state_utility/merkle_root/.gitignore deleted file mode 100644 index 86667a9a..00000000 --- a/state_utility/merkle_root/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -target/ -/merkle_root.txt -out.bin diff --git a/state_utility/merkle_root/Cargo.lock b/state_utility/merkle_root/Cargo.lock deleted file mode 100644 index 3f85ccb5..00000000 --- a/state_utility/merkle_root/Cargo.lock +++ /dev/null @@ -1,1089 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ark-ec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea978406c4b1ca13c2db2373b05cc55429c3575b8b21f1b9ee859aa5b03dd42" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0f78f47537c2f15706db7e98fe64cc1711dbf9def81218194e17239e53e5aa" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.11.2", - "rayon", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd4e5f0bf8285d5ed538d27fab7411f3e297908fd93c62195de8bee3f199e82" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "cc" -version = "1.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "serde", - "windows-targets", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.66", -] - -[[package]] -name = "darling_macro" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "either" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown 0.14.5", - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "merkle-root" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "hex", - "mina-hasher", - "num-bigint", - "serde", - "serde_json", -] - -[[package]] -name = "mina-curves" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#afdf98bb1077f8a194ee85259335e3e2db612328" -dependencies = [ - "ark-ec", - "ark-ff", - "num-bigint", -] - -[[package]] -name = "mina-hasher" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#afdf98bb1077f8a194ee85259335e3e2db612328" -dependencies = [ - "ark-ff", - "bitvec", - "mina-curves", - "mina-poseidon", - "o1-utils", - "serde", -] - -[[package]] -name = "mina-poseidon" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#afdf98bb1077f8a194ee85259335e3e2db612328" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "mina-curves", - "o1-utils", - "once_cell", - "rand", - "rayon", - "serde", - "serde_with", -] - -[[package]] -name = "num-bigint" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" -dependencies = [ - "num-integer", - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#afdf98bb1077f8a194ee85259335e3e2db612328" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with", - "sha2", - "thiserror", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pest" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro2" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.203" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.203" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "serde_json" -version = "1.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" -dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.6", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "thiserror" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.66", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] diff --git a/state_utility/merkle_root/Cargo.toml b/state_utility/merkle_root/Cargo.toml deleted file mode 100644 index 0af81e6a..00000000 --- a/state_utility/merkle_root/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "merkle-root" -version = "0.1.0" -edition = "2021" - -[dependencies] -serde = { version = "1.0.192", features = ["derive"] } -hex = "0.4.3" - -ark-poly = { version = "0.3.0" } -ark-serialize = { version = "0.3.0" } -num-bigint = "0.4.5" -ark-ff = { version = "0.3.0", features = ["parallel", "asm"] } -ark-ec = { version = "0.3.0" } - -mina-hasher = { git = "https://github.com/o1-labs/proof-systems" } -serde_json = "1.0.117" diff --git a/state_utility/merkle_root/src/field.rs b/state_utility/merkle_root/src/field.rs deleted file mode 100644 index 76bd29d6..00000000 --- a/state_utility/merkle_root/src/field.rs +++ /dev/null @@ -1,61 +0,0 @@ -use ark_serialize::CanonicalSerialize; -use mina_hasher::Fp; - -/// Converts a string slice to a field element. -/// -/// # Arguments -/// -/// * `s` - A string slice that holds the field element. -/// -/// # Errors -/// -/// Returns a string slice with an error message if the field element cannot be converted. -pub fn from_str(s: &str) -> Result { - if s.is_empty() { - return Err("Field string is empty".to_owned()); - } - - if s == "0" { - return Ok(Fp::from(0u8)); - } - - let mut res = Fp::from(0u8); - - let ten = Fp::from(10u8); - - let mut first_digit = true; - - for c in s.chars() { - let c_digit = c.to_digit(10).ok_or("Digit is not decimal".to_owned())?; - - if first_digit { - if c_digit == 0 { - return Err("First digit is zero".to_owned()); - } - - first_digit = false; - } - - res *= &ten; - let digit = Fp::from(u64::from(c_digit)); - res += &digit; - } - Ok(res) -} - -/// Converts a field element to a byte vector. -/// -/// # Arguments -/// -/// * `f` - A reference to a field element. -/// -/// # Errors -/// -/// Returns a string slice with an error message if the field element cannot be serialized. -pub fn to_bytes(f: &Fp) -> Result, String> { - let mut bytes: Vec = vec![]; - f.serialize(&mut bytes) - .map_err(|_err| "Failed to serialize field")?; - - Ok(bytes.into_iter().rev().collect()) -} diff --git a/state_utility/merkle_root/src/lib.rs b/state_utility/merkle_root/src/lib.rs deleted file mode 100644 index bac7c7ff..00000000 --- a/state_utility/merkle_root/src/lib.rs +++ /dev/null @@ -1,53 +0,0 @@ -pub mod field; - -use ark_ff::{BigInteger, PrimeField}; -use mina_hasher::Fp; -use num_bigint::BigUint; -use std::fs; -use std::io::Write; - -/// Receives a path to a file containing a Merkle root in text format, reads the Merkle root, -/// and writes it to a file in binary format. -/// -/// # Arguments -/// -/// * `merkle_root_in_path` - Path to the file containing the Merkle root in text format. -/// * `merkle_root_out_path` - Path to the file where the Merkle root will be written in binary format. -/// -/// # Errors -/// -/// * If the file at `merkle_root_in_path` cannot be opened. -/// * If the Merkle root cannot be deserialized to a field element. -/// * If the file at `merkle_root_out_path` cannot be created. -/// * If the Merkle root cannot be written to the output file. -/// -pub fn process_merkle_root( - merkle_root_in_path: &str, - merkle_root_evm_out_path: &str, - merkle_root_o1js_out_path: &str, -) -> Result<(), String> { - let merkle_root_content = std::fs::read_to_string(merkle_root_in_path) - .map_err(|err| format!("Error opening file {err}"))?; - let merkle_root: Fp = field::from_str(&merkle_root_content) - .map_err(|err| format!("Error deserializing Merkle root to field {err}"))?; - - let mut merkle_root_evm_file = fs::OpenOptions::new() - .create(true) - .truncate(true) - .write(true) - .open(merkle_root_evm_out_path) - .map_err(|err| format!("Error creating file {err}"))?; - merkle_root_evm_file - .write_all(&field::to_bytes(&merkle_root)?) - .map_err(|err| format!("Error writing to output file {err}"))?; - - let root_json = - serde_json::json!([ - BigUint::from_bytes_le(&merkle_root.into_repr().to_bytes_le()).to_string() - ]); - fs::write( - merkle_root_o1js_out_path, - serde_json::to_string(&root_json).unwrap(), - ) - .map_err(|err| format!("Error writing to output file {err}")) -} diff --git a/state_utility/merkle_root/src/main.rs b/state_utility/merkle_root/src/main.rs deleted file mode 100644 index 1f66c6eb..00000000 --- a/state_utility/merkle_root/src/main.rs +++ /dev/null @@ -1,10 +0,0 @@ -use merkle_root::process_merkle_root; - -fn main() -> Result<(), String> { - let args: Vec = std::env::args().collect(); - - let merkle_root_in_path = args.get(1).ok_or("Error: No merkle root file provided")?; - let merkle_root_evm_out_path = args.get(2).ok_or("Error: No merkle root EVM out path")?; - let merkle_root_o1js_out_path = args.get(3).ok_or("Error: No merkle root o1js out path")?; - process_merkle_root(merkle_root_in_path, merkle_root_evm_out_path, merkle_root_o1js_out_path) -} diff --git a/state_utility/merkle_root/tests/merkle_root.txt b/state_utility/merkle_root/tests/merkle_root.txt deleted file mode 100644 index 0a7842bb..00000000 --- a/state_utility/merkle_root/tests/merkle_root.txt +++ /dev/null @@ -1 +0,0 @@ -25386343758799444195005156917506668892978004126168706919054504716147406520412 \ No newline at end of file diff --git a/state_utility/merkle_root/tests/process_input.rs b/state_utility/merkle_root/tests/process_input.rs deleted file mode 100644 index 15a317d3..00000000 --- a/state_utility/merkle_root/tests/process_input.rs +++ /dev/null @@ -1,8 +0,0 @@ -#[cfg(test)] -mod test { - use merkle_root::process_merkle_root; - #[test] - fn test_process_merkle_root() { - process_merkle_root("./tests/merkle_root.txt", "./tests/out.bin").unwrap(); - } -} diff --git a/state_utility/merkle_root/tests/public_key.txt b/state_utility/merkle_root/tests/public_key.txt deleted file mode 100644 index 35406489..00000000 --- a/state_utility/merkle_root/tests/public_key.txt +++ /dev/null @@ -1 +0,0 @@ -B62qiy32p8kAKnny8ZFwoMhYpBppM1DWVCqAPBYNcXnsAHhnfAAuXgg \ No newline at end of file diff --git a/state_utility/merkle_root/tests/solidity_test_input.json b/state_utility/merkle_root/tests/solidity_test_input.json deleted file mode 100644 index 74b43828..00000000 --- a/state_utility/merkle_root/tests/solidity_test_input.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "data": { - "account": { - "merklePath": [ - { - "left": null, - "right": "42" - }, - { - "left": "28", - "right": null - } - ] - } - } -} diff --git a/state_utility/parser/.gitignore b/state_utility/parser/.gitignore deleted file mode 100644 index 63ad9d34..00000000 --- a/state_utility/parser/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -target/ -./tests/merkle_root.txt diff --git a/state_utility/parser/Cargo.lock b/state_utility/parser/Cargo.lock deleted file mode 100644 index 54fccbe1..00000000 --- a/state_utility/parser/Cargo.lock +++ /dev/null @@ -1,3113 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anyhow" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" - -[[package]] -name = "ark-ec" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.11.2", - "rayon", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "arrayref" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "backtrace" -version = "0.3.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "binprot" -version = "0.1.8" -source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" -dependencies = [ - "binprot_derive", - "byteorder", - "md5", -] - -[[package]] -name = "binprot_derive" -version = "0.1.7" -source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "blake2s_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "blake3" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" -dependencies = [ - "sha2 0.9.9", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" - -[[package]] -name = "cc" -version = "1.0.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets 0.52.5", -] - -[[package]] -name = "cobs" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "critical-section" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.11.1", - "syn 2.0.61", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core 0.20.10", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "0.99.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 2.0.61", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "crypto-common", - "subtle", -] - -[[package]] -name = "disjoint-set" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" - -[[package]] -name = "either" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" - -[[package]] -name = "embedded-io" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" - -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enum_dispatch" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[package]] -name = "groupmap" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff", - "rand", -] - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap 2.2.6", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hash32" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" -dependencies = [ - "byteorder", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "heapless" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" -dependencies = [ - "atomic-polyfill", - "hash32", - "rustc_version 0.4.0", - "serde", - "spin", - "stable_deref_trait", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" - -[[package]] -name = "hyper" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" -dependencies = [ - "futures-util", - "http", - "hyper", - "hyper-util", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown 0.14.5", - "serde", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "kimchi" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "blake2", - "disjoint-set", - "groupmap", - "hex", - "itertools", - "mina-curves", - "mina-poseidon", - "num-bigint", - "num-derive", - "num-integer", - "num-traits", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "poly-commitment", - "rand", - "rand_core", - "rayon", - "rmp-serde", - "serde", - "serde_with 1.14.0", - "strum", - "strum_macros", - "thiserror", - "turshi", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libc" -version = "0.2.154" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" - -[[package]] -name = "linkme" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" -dependencies = [ - "linkme-impl", -] - -[[package]] -name = "linkme-impl" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "md5" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "merkle-root-parser" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "base64 0.22.1", - "bs58 0.5.1", - "hex", - "kimchi", - "lazy_static", - "mina-curves", - "mina-p2p-messages", - "mina-tree", - "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", - "once_cell", - "poly-commitment", - "reqwest", - "rmp-serde", - "serde", - "serde_json", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mina-curves" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff", -] - -[[package]] -name = "mina-hasher" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ff", - "bitvec", - "mina-curves", - "mina-poseidon", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "serde", -] - -[[package]] -name = "mina-p2p-messages" -version = "0.6.4" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "ark-ff", - "base64 0.13.1", - "binprot", - "binprot_derive", - "blake2", - "bs58 0.4.0", - "derive_more", - "hex", - "mina-curves", - "mina-hasher", - "mina-poseidon", - "mina-signer", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "rsexp", - "serde", - "serde_json", - "sha2 0.10.8", - "thiserror", - "time", -] - -[[package]] -name = "mina-poseidon" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "mina-curves", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "rand", - "rayon", - "serde", - "serde_with 1.14.0", -] - -[[package]] -name = "mina-signer" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff", - "bitvec", - "blake2", - "bs58 0.4.0", - "hex", - "mina-curves", - "mina-hasher", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "rand", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "mina-tree" -version = "0.6.0" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "anyhow", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "backtrace", - "base64 0.13.1", - "bitvec", - "blake2", - "bs58 0.4.0", - "chrono", - "crc32fast", - "derive_more", - "getrandom", - "hex", - "itertools", - "kimchi", - "lazy_static", - "libc", - "mina-curves", - "mina-hasher", - "mina-p2p-messages", - "mina-poseidon", - "mina-signer", - "num-bigint", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "openmina-core", - "poly-commitment", - "postcard", - "rand", - "rand_pcg", - "rand_seeder", - "rayon", - "serde", - "serde_json", - "serde_with 3.9.0", - "sha2 0.10.8", - "static_assertions", - "thiserror", - "tuple-map", - "uuid", - "wasm-bindgen", - "wasm_thread", -] - -[[package]] -name = "miniz_oxide" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.48.0", -] - -[[package]] -name = "multihash" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive", - "sha2 0.10.8", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" -dependencies = [ - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "num-bigint" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" -dependencies = [ - "num-integer", - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with 3.9.0", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with 1.14.0", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "openmina-core" -version = "0.6.0" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "ark-ff", - "binprot", - "binprot_derive", - "hex", - "lazy_static", - "md5", - "mina-hasher", - "mina-p2p-messages", - "multihash", - "openmina-macros", - "redux", - "serde", - "sha2 0.10.8", - "slab", - "time", - "tokio", - "tracing", -] - -[[package]] -name = "openmina-macros" -version = "0.6.0" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "openssl" -version = "0.10.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall", - "smallvec", - "winapi", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "poly-commitment" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "blake2", - "groupmap", - "itertools", - "mina-curves", - "mina-poseidon", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with 1.14.0", - "thiserror", -] - -[[package]] -name = "postcard" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" -dependencies = [ - "cobs", - "embedded-io", - "heapless", - "serde", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_pcg" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rand_seeder" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redux" -version = "0.1.0" -source = "git+https://github.com/openmina/redux-rs.git?rev=2d1d8db#2d1d8dbd7239c0aec91db8f11126b90068dc848b" -dependencies = [ - "enum_dispatch", - "linkme", - "paste", - "serde", - "wasm-timer", -] - -[[package]] -name = "reqwest" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rmp" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rsexp" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3df9a9b6491d42c0fc527e92a87525c17e45c6b9c22345702a6dc0400320bf1" - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.23", -] - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.23.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" -dependencies = [ - "once_cell", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" - -[[package]] -name = "rustls-webpki" -version = "0.102.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.201" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.201" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "serde_json" -version = "1.0.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "serde", - "serde_with_macros 1.5.2", -] - -[[package]] -name = "serde_with" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.6", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros 3.9.0", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "serde_with_macros" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" -dependencies = [ - "darling 0.20.10", - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", - "serde", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "thiserror" -version = "1.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tuple-map" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62" - -[[package]] -name = "turshi" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ff", - "hex", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unsigned-varint" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "uuid" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.61", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "wasm-timer" -version = "0.2.5" -source = "git+https://github.com/fusetim/wasm-timer?branch=tim-add-missing-methods#39e1c2818944f804d68d64dae0d5639d22b0e59e" -dependencies = [ - "futures", - "js-sys", - "parking_lot", - "pin-utils", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasm_thread" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a52fc987e67957cab58160d1ea273a2886972ef6f59c7fa0c02e9fe2c8e11706" -dependencies = [ - "async-channel", - "futures", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "web-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "zeroize" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", -] diff --git a/state_utility/parser/Cargo.toml b/state_utility/parser/Cargo.toml deleted file mode 100644 index a24cf8b3..00000000 --- a/state_utility/parser/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -name = "merkle-root-parser" -version = "0.1.0" -edition = "2021" - -[dependencies] -kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -poly-commitment = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } -ark-ff = { version = "0.3.0", features = ["parallel", "asm"] } -ark-ec = { version = "0.3.0", features = ["parallel"] } -ark-poly = { version = "0.3.0", features = ["parallel"] } -ark-serialize = "0.3.0" -serde = "1.0.197" -rmp-serde = "1.1.2" -serde_json = "1.0.118" -hex = "0.4.3" -mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -base64 = "0.22.1" -bs58 = "0.5.1" -lazy_static = "1.5.0" -once_cell = "1.19.0" -reqwest = { version = "0.12", features = ["blocking"] } - -[patch.crates-io] -ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } -ark-ec = { git = "https://github.com/openmina/algebra", branch = "openmina" } -ark-poly = { git = "https://github.com/openmina/algebra", branch = "openmina" } -ark-serialize = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/state_utility/parser/src/lib.rs b/state_utility/parser/src/lib.rs deleted file mode 100644 index f18c3a55..00000000 --- a/state_utility/parser/src/lib.rs +++ /dev/null @@ -1,62 +0,0 @@ -use std::{fs, str::FromStr as _}; - -use kimchi::o1_utils::FieldHelpers; -use mina_curves::pasta::Fp; -use mina_p2p_messages::v2::LedgerHash; -use reqwest::header::CONTENT_TYPE; -use serde_json::Value; - -/// Queries the Mina node to get a Merkle root and parses it from the response and writes it to a file. -/// -/// # Arguments -/// -/// * `rpc_url` - The URL of the Mina node GraphQL API. -/// * `output_path` - A string slice that holds the path to the output file. -/// -/// # Errors -/// -/// If the file cannot be written to, an error will be returned. -pub fn query_and_parse_merkle_root(rpc_url: &str, output_path: &str) -> Result<(), String> { - let merkle_root_value = - query_merkle_root(rpc_url).map_err(|err| format!("Error querying merkle root: {err}"))?; - let merkle_root_str = merkle_root_value.as_str().ok_or(format!( - "Error converting Merkle root value to string: {:?}", - merkle_root_value - ))?; - - let merkle_root = LedgerHash::from_str(merkle_root_str) - .map_err(|err| format!("Error creating OCaml Ledger hash struct from string: {err}"))?; - let merkle_root_fp = Fp::from(merkle_root.0.clone()); - - fs::write(output_path, merkle_root_fp.to_hex()) - .map_err(|err| format!("Error writing Merkle root to file: {err}")) -} - -fn query_merkle_root(rpc_url: &str) -> Result { - let body = "{\"query\": \"{ - daemonStatus { - ledgerMerkleRoot - } - }\"}" - .to_owned(); - let client = reqwest::blocking::Client::new(); - let response = client - .post(rpc_url) - .header(CONTENT_TYPE, "application/json") - .body(body) - .send() - .map_err(|err| err.to_string())? - .text() - .map_err(|err| err.to_string())?; - - let response_value = serde_json::Value::from_str(&response).map_err(|err| err.to_string())?; - - response_value - .get("data") - .and_then(|d| d.get("daemonStatus")) - .and_then(|d| d.get("ledgerMerkleRoot").cloned()) - .ok_or(format!( - "Could not get 'data.daemonStatus.ledgerMerkleRoot' from {:?}", - response_value - )) -} diff --git a/state_utility/parser/src/main.rs b/state_utility/parser/src/main.rs deleted file mode 100644 index 20dc94d2..00000000 --- a/state_utility/parser/src/main.rs +++ /dev/null @@ -1,18 +0,0 @@ -use std::path::PathBuf; - -use merkle_root_parser::query_and_parse_merkle_root; - -fn main() -> Result<(), String> { - let args: Vec = std::env::args().collect(); - - let rpc_url = args.get(1).ok_or("Error: No RPC URL provided")?; - - let mut merkle_root_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - merkle_root_path.push("../../merkle_root.pub"); - let merkle_root_path_str = merkle_root_path.to_str().ok_or(format!( - "Error trying to parse output path {:?}", - merkle_root_path - ))?; - - query_and_parse_merkle_root(rpc_url, merkle_root_path_str) -} diff --git a/state_utility/parser/tests/merkle_root.txt b/state_utility/parser/tests/merkle_root.txt deleted file mode 100644 index 149a76b8..00000000 --- a/state_utility/parser/tests/merkle_root.txt +++ /dev/null @@ -1 +0,0 @@ -jxpHeYoYx3uW6iULHfHBm4xQ8aR6AwfgZGiFpiUKk2kbebQgYuU \ No newline at end of file diff --git a/state_utility/parser/tests/parse_merkle_root.rs b/state_utility/parser/tests/parse_merkle_root.rs deleted file mode 100644 index 2d3abc56..00000000 --- a/state_utility/parser/tests/parse_merkle_root.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[cfg(test)] -mod test { - use merkle_root_parser::query_and_parse_merkle_root; - #[test] - fn test_merkle_root() { - query_and_parse_merkle_root("http://5.9.57.89:3085/graphql", "./tests/merkle_root.txt") - .unwrap(); - } -} diff --git a/state_utility/run.sh b/state_utility/run.sh deleted file mode 100644 index cb483889..00000000 --- a/state_utility/run.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -git clone https://github.com/lambdaclass/mina.git -b merkle_root_parser --recursive mina_3_0_0_devnet - -cargo r \ - --manifest-path parser/Cargo.toml\ - --release \ - -- $MINA_RPC_URL ./mina_3_0_0_devnet/src/lib/merkle_root_parser/merkle_root.txt - -cd mina_3_0_0_devnet/src/lib/merkle_root_parser -opam exec -- dune exec ./bin/main.exe > ../../../../merkle_root/merkle_root.txt -cd ../../../.. - -cargo r \ - --manifest-path ./merkle_root/Cargo.toml\ - --release \ - -- ./merkle_root/merkle_root.txt ../merkle_root/merkle_root.bin ../merkle_root/merkle_root.json diff --git a/state_utility/server/.gitignore b/state_utility/server/.gitignore deleted file mode 100644 index 2f7896d1..00000000 --- a/state_utility/server/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target/ diff --git a/state_utility/server/Cargo.lock b/state_utility/server/Cargo.lock deleted file mode 100644 index e826cb6e..00000000 --- a/state_utility/server/Cargo.lock +++ /dev/null @@ -1,4684 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "getrandom", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "alloy" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-consensus", - "alloy-contract", - "alloy-core", - "alloy-eips", - "alloy-genesis", - "alloy-network", - "alloy-provider", - "alloy-pubsub", - "alloy-rpc-client", - "alloy-rpc-types", - "alloy-serde", - "alloy-signer", - "alloy-signer-local", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", - "reqwest", -] - -[[package]] -name = "alloy-chains" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2feb5f466b3a786d5a622d8926418bc6a0d38bf632909f6ee9298a4a1d8c6e0" -dependencies = [ - "num_enum", - "strum", -] - -[[package]] -name = "alloy-consensus" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "c-kzg", - "serde", -] - -[[package]] -name = "alloy-contract" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-network", - "alloy-primitives", - "alloy-provider", - "alloy-pubsub", - "alloy-rpc-types-eth", - "alloy-sol-types", - "alloy-transport", - "futures", - "futures-util", - "thiserror", -] - -[[package]] -name = "alloy-core" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5af3faff14c12c8b11037e0a093dd157c3702becb8435577a2408534d0758315" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-types", -] - -[[package]] -name = "alloy-dyn-abi" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6e6436a9530f25010d13653e206fab4c9feddacf21a54de8d7311b275bc56b" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-type-parser", - "alloy-sol-types", - "const-hex", - "itoa", - "serde", - "serde_json", - "winnow 0.6.13", -] - -[[package]] -name = "alloy-eips" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "c-kzg", - "derive_more", - "once_cell", - "serde", - "sha2", -] - -[[package]] -name = "alloy-genesis" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-primitives", - "alloy-serde", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-json-abi" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaeaccd50238126e3a0ff9387c7c568837726ad4f4e399b528ca88104d6c25ef" -dependencies = [ - "alloy-primitives", - "alloy-sol-type-parser", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-json-rpc" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "alloy-network" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-signer", - "alloy-sol-types", - "async-trait", - "auto_impl", - "futures-utils-wasm", - "thiserror", -] - -[[package]] -name = "alloy-primitives" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f783611babedbbe90db3478c120fb5f5daacceffc210b39adc0af4fe0da70bad" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more", - "hex-literal", - "itoa", - "k256", - "keccak-asm", - "proptest", - "rand", - "ruint", - "serde", - "tiny-keccak", -] - -[[package]] -name = "alloy-provider" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-network", - "alloy-primitives", - "alloy-pubsub", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-rpc-types-trace", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", - "async-stream", - "async-trait", - "auto_impl", - "dashmap", - "futures", - "futures-utils-wasm", - "lru", - "pin-project", - "reqwest", - "serde", - "serde_json", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "alloy-pubsub" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-json-rpc", - "alloy-primitives", - "alloy-transport", - "bimap", - "futures", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower", - "tracing", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b155716bab55763c95ba212806cf43d05bcc70e5f35b02bad20cf5ec7fe11fed" -dependencies = [ - "alloy-rlp-derive", - "arrayvec", - "bytes", -] - -[[package]] -name = "alloy-rlp-derive" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8037e03c7f462a063f28daec9fda285a9a89da003c552f8637a80b9c8fd96241" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "alloy-rpc-client" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-json-rpc", - "alloy-primitives", - "alloy-pubsub", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", - "futures", - "pin-project", - "reqwest", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower", - "tracing", - "url", -] - -[[package]] -name = "alloy-rpc-types" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-serde", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "jsonwebtoken", - "rand", - "serde", - "thiserror", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "alloy-sol-types", - "itertools 0.13.0", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "alloy-rpc-types-trace" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-serde" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-signer" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-primitives", - "async-trait", - "auto_impl", - "elliptic-curve", - "k256", - "thiserror", -] - -[[package]] -name = "alloy-signer-local" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives", - "alloy-signer", - "async-trait", - "k256", - "rand", - "thiserror", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bad41a7c19498e3f6079f7744656328699f8ea3e783bdd10d85788cd439f572" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9899da7d011b4fe4c406a524ed3e3f963797dbc93b45479d60341d3a27b252" -dependencies = [ - "alloy-json-abi", - "alloy-sol-macro-input", - "const-hex", - "heck 0.5.0", - "indexmap 2.2.6", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.66", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32d595768fdc61331a132b6f65db41afae41b9b97d36c21eb1b955c422a7e60" -dependencies = [ - "alloy-json-abi", - "const-hex", - "dunce", - "heck 0.5.0", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.66", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa2fbd22d353d8685bd9fee11ba2d8b5c3b1d11e56adb3265fcf1f32bfdf404" -dependencies = [ - "winnow 0.6.13", -] - -[[package]] -name = "alloy-sol-types" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a49042c6d3b66a9fe6b2b5a8bf0d39fc2ae1ee0310a2a26ffedd79fb097878dd" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-macro", - "const-hex", - "serde", -] - -[[package]] -name = "alloy-transport" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-json-rpc", - "base64 0.22.1", - "futures-util", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "url", -] - -[[package]] -name = "alloy-transport-http" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-json-rpc", - "alloy-transport", - "reqwest", - "serde_json", - "tower", - "tracing", - "url", -] - -[[package]] -name = "alloy-transport-ipc" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-json-rpc", - "alloy-pubsub", - "alloy-transport", - "bytes", - "futures", - "interprocess", - "pin-project", - "serde_json", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "alloy-transport-ws" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=b000e16#b000e16f06161c15b42a4c59f27cb3feb23b3c14" -dependencies = [ - "alloy-pubsub", - "alloy-transport", - "futures", - "http", - "rustls", - "serde_json", - "tokio", - "tokio-tungstenite", - "tracing", - "ws_stream_wasm", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ark-ec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea978406c4b1ca13c2db2373b05cc55429c3575b8b21f1b9ee859aa5b03dd42" -dependencies = [ - "ark-ff 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.4.0", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0f78f47537c2f15706db7e98fe64cc1711dbf9def81218194e17239e53e5aa" -dependencies = [ - "ark-ff 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "hashbrown 0.11.2", - "rayon", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-serialize-derive", - "ark-std 0.3.0", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd4e5f0bf8285d5ed538d27fab7411f3e297908fd93c62195de8bee3f199e82" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand", -] - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "async-stream" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "async-trait" -version = "0.1.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.0", -] - -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "auto_impl" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "axum" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" -dependencies = [ - "async-trait", - "axum-core", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "tokio", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum-core" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 0.1.2", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "backtrace" -version = "0.3.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "bimap" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" -dependencies = [ - "serde", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blst" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2", - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" -dependencies = [ - "serde", -] - -[[package]] -name = "c-kzg" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "serde", -] - -[[package]] -name = "cc" -version = "1.0.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "serde", - "windows-targets 0.52.5", -] - -[[package]] -name = "const-hex" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.66", -] - -[[package]] -name = "darling_macro" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "displaydoc" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "doctest-file" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - -[[package]] -name = "either" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" -dependencies = [ - "serde", -] - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "etcetera" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" -dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core", - "subtle", -] - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "flume" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" -dependencies = [ - "futures-core", - "futures-sink", - "spin 0.9.8", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "futures-utils-wasm" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap 2.2.6", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash 0.7.8", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash 0.8.11", - "allocator-api2", -] - -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3935c160d00ac752e09787e6e6bfc26494c2183cc922f1bc678a60d4733bc2" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" -dependencies = [ - "icu_normalizer", - "icu_properties", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown 0.14.5", - "serde", -] - -[[package]] -name = "interprocess" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67bafc2f5dbdad79a6d925649758d5472647b416028099f0b829d1b67fdd47d3" -dependencies = [ - "doctest-file", - "futures-core", - "libc", - "recvmsg", - "tokio", - "widestring", - "windows-sys 0.52.0", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonwebtoken" -version = "9.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" -dependencies = [ - "base64 0.21.7", - "js-sys", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] -name = "k256" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "sha2", -] - -[[package]] -name = "keccak-asm" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47a3633291834c4fbebf8673acbc1b04ec9d151418ff9b8e26dcd79129928758" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin 0.5.2", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "libsqlite3-sys" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "lru" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "merkle-path" -version = "0.1.0" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "bs58", - "hex", - "mina-hasher", - "num-bigint", - "reqwest", - "serde", - "serde_json", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mina-curves" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#86de31865e5108197c0e2e5439325c15d6deb376" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "num-bigint", -] - -[[package]] -name = "mina-hasher" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#86de31865e5108197c0e2e5439325c15d6deb376" -dependencies = [ - "ark-ff 0.3.0", - "bitvec", - "mina-curves", - "mina-poseidon", - "o1-utils", - "serde", -] - -[[package]] -name = "mina-poseidon" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#86de31865e5108197c0e2e5439325c15d6deb376" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "mina-curves", - "o1-utils", - "once_cell", - "rand", - "rayon", - "serde", - "serde_with", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.48.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "num-bigint" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" -dependencies = [ - "num-integer", - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -source = "git+https://github.com/o1-labs/proof-systems#86de31865e5108197c0e2e5439325c15d6deb376" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with", - "sha2", - "thiserror", -] - -[[package]] -name = "object" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "openssl" -version = "0.10.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" -dependencies = [ - "bitflags 2.5.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "parity-scale-codec" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.1", - "smallvec", - "windows-targets 0.52.5", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pem" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" -dependencies = [ - "base64 0.22.1", - "serde", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.0", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.5.0", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "recvmsg" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" -dependencies = [ - "bitflags 2.5.0", -] - -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[package]] -name = "reqwest" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-tls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin 0.9.8", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rsa" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" -dependencies = [ - "const-oid", - "digest 0.10.7", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core", - "signature", - "spki", - "subtle", - "zeroize", -] - -[[package]] -name = "ruint" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" -dependencies = [ - "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp", - "num-bigint", - "num-traits", - "parity-scale-codec", - "primitive-types", - "proptest", - "rand", - "rlp", - "ruint-macro", - "serde", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.23", -] - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.23.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" -dependencies = [ - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" - -[[package]] -name = "rustls-webpki" -version = "0.102.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - -[[package]] -name = "security-framework" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" -dependencies = [ - "bitflags 2.5.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.203" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.203" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "serde_json" -version = "1.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" -dependencies = [ - "itoa", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.6", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "server" -version = "0.1.0" -dependencies = [ - "alloy", - "alloy-primitives", - "axum", - "merkle-path", - "reqwest", - "serde", - "sqlx", - "tokio", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3-asm" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" -dependencies = [ - "cc", - "cfg-if", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core", -] - -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlformat" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" -dependencies = [ - "itertools 0.12.1", - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlx" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" -dependencies = [ - "ahash 0.8.11", - "atoi", - "byteorder", - "bytes", - "crc", - "crossbeam-queue", - "either", - "event-listener", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashlink", - "hex", - "indexmap 2.2.6", - "log", - "memchr", - "once_cell", - "paste", - "percent-encoding", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlformat", - "thiserror", - "tokio", - "tokio-stream", - "tracing", - "url", -] - -[[package]] -name = "sqlx-macros" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn 1.0.109", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" -dependencies = [ - "dotenvy", - "either", - "heck 0.4.1", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", - "syn 1.0.109", - "tempfile", - "tokio", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" -dependencies = [ - "atoi", - "base64 0.21.7", - "bitflags 2.5.0", - "byteorder", - "bytes", - "crc", - "digest 0.10.7", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand", - "rsa", - "serde", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" -dependencies = [ - "atoi", - "base64 0.21.7", - "bitflags 2.5.0", - "byteorder", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" -dependencies = [ - "atoi", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "sqlx-core", - "tracing", - "url", - "urlencoding", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.66", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-solidity" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d71e19bca02c807c9faa67b5a47673ff231b6e7449b251695188522f1dc44b2" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "thiserror" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "pin-project-lite", - "socket2", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "becd34a233e7e31a3dbf7c7241b38320f57393dcae8e7324b0167d21b8e320b0" -dependencies = [ - "futures-util", - "log", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tungstenite", - "webpki-roots", -] - -[[package]] -name = "tokio-util" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml_datetime" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.2.6", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand", - "rustls", - "rustls-pki-types", - "sha1", - "thiserror", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" - -[[package]] -name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.66", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "web-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c452ad30530b54a4d8e71952716a212b08efd0f3562baa66c29a618b07da7c3" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "whoami" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" -dependencies = [ - "redox_syscall 0.4.1", - "wasite", -] - -[[package]] -name = "widestring" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.0", - "send_wrapper", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "yoke" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "zerofrom" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "zerovec" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] diff --git a/state_utility/server/Cargo.toml b/state_utility/server/Cargo.toml deleted file mode 100644 index 38430b5b..00000000 --- a/state_utility/server/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "server" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -serde = "1.0.203" -tokio = { version = "1.38.0", features = ["rt-multi-thread"] } -axum = "0.7.5" -sqlx = { version = "0.7", features = ["runtime-tokio", "postgres"] } -alloy = { git = "https://github.com/alloy-rs/alloy", rev = "b000e16", features = [ - "full", -] } -alloy-primitives = "0.7.6" -reqwest = "0.12.4" -merkle-path = { path = "../merkle_path" } diff --git a/state_utility/server/src/main.rs b/state_utility/server/src/main.rs deleted file mode 100644 index 5a71e1ed..00000000 --- a/state_utility/server/src/main.rs +++ /dev/null @@ -1,140 +0,0 @@ -use alloy::{providers::ProviderBuilder, sol}; -use alloy_primitives::{Bytes, FixedBytes}; -use axum::{ - extract::{Path, State}, - routing::get, - Json, Router, -}; -use merkle_path::{field, merkle_path::MerkleTree, serialize::EVMSerializable as _}; -use reqwest::Url; -use serde::Serialize; -use sqlx::{postgres::PgPoolOptions, Pool, Postgres}; - -sol!( - #[sol(rpc)] - #[allow(clippy::pub_underscore_fields)] - Verifier, - "verifier.json" -); - -#[tokio::main] -async fn main() -> Result<(), String> { - let pool = PgPoolOptions::new() - .max_connections(5) - .connect("postgres://pguser:pguser@localhost/archive") - .await - .map_err(|err| format!("Could not create a connection pool for Postgres: {err}"))?; - - // build our application with a route - let app = Router::new() - .route("/", get(root)) - .route("/account_state/:mina_public_key/:mina_rpc_url_str/:eth_rpc_url_str/:verifier_address_str", get(account_state)) - .with_state(pool); - - // run our app with hyper, listening globally on port 3000 - let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap(); - - axum::serve(listener, app) - .await - .map_err(|err| format!("Could not run server: {err}")) -} - -async fn root() -> &'static str { - "Hello, World!" -} - -#[derive(Serialize)] -struct AccountState { - pub valid: bool, - pub balance: u64, -} - -async fn account_state( - State(pool): State>, - Path((mina_public_key, mina_rpc_url_str, eth_rpc_url_str, verifier_address_str)): Path<( - String, - String, - String, - String, - )>, -) -> Result, String> { - // 1) get balance - let ret_balance = balance(pool, &mina_public_key).await?; - let ret_balance_string = ret_balance.0; - - // 2) get merkle proof - let ret_merkle_proof = merkle_proof( - &mina_public_key, - &mina_rpc_url_str, - ð_rpc_url_str, - &verifier_address_str, - ) - .await?; - let ret_merkle_proof_string = ret_merkle_proof.0; - - // return JSON - //{ - // "valid": true, - // "balance": 100 - //} - let response = AccountState { - valid: ret_merkle_proof_string == "true", - balance: ret_balance_string - .parse() - .map_err(|err| format!("Could not parse balance {err}"))?, - }; - Ok(Json(response)) -} - -async fn balance(pool: Pool, mina_public_key: &str) -> Result, String> { - let query = "SELECT height, balance - FROM accounts_accessed - INNER JOIN account_identifiers ON account_identifiers.id = accounts_accessed.account_identifier_id - INNER JOIN public_keys ON public_keys.id = account_identifiers.public_key_id - INNER JOIN blocks ON blocks.id = accounts_accessed.block_id - WHERE public_keys.value = $1"; - - let row: (i64, String) = sqlx::query_as(query) - .bind(mina_public_key) - .fetch_one(&pool) - .await - .map_err(|err| format!("Could not query the database: {err}"))?; - - Ok(Json(row.1)) -} - -async fn merkle_proof( - mina_public_key: &str, - mina_rpc_url_str: &str, - eth_rpc_url_str: &str, - verifier_address_str: &str, -) -> Result, String> { - let eth_rpc_url = - Url::parse(eth_rpc_url_str).map_err(|err| format!("Could not parse RPC URL: {err}"))?; - - let provider = ProviderBuilder::new() - .with_recommended_fillers() - .on_http(eth_rpc_url); - - let verifier_address = verifier_address_str - .parse() - .map_err(|err| format!("Could not parse Verifier address: {err}"))?; - let contract = Verifier::new(verifier_address, provider); - - let merkle_tree = MerkleTree::query_merkle_path(mina_rpc_url_str, mina_public_key)?; - let leaf_hash = field::from_str(&merkle_tree.data.account.leaf_hash)?; - let leaf_hash_bytes = FixedBytes::from_slice(&field::to_bytes(&leaf_hash)?); - let merkle_path_bytes = - Bytes::copy_from_slice(&merkle_tree.data.account.merkle_path.to_bytes()); - - let transaction_builder = contract.verify_account_inclusion(leaf_hash_bytes, merkle_path_bytes); - let is_account_valid = transaction_builder - .call() - .await - .map_err(|err| format!("Could not call verification method: {err}"))? - ._0; - - let response = format!("{is_account_valid}"); - - Ok(Json(response)) -} diff --git a/state_utility/server/verifier.json b/state_utility/server/verifier.json deleted file mode 100644 index 1dbaa03d..00000000 --- a/state_utility/server/verifier.json +++ /dev/null @@ -1,24 +0,0 @@ -[ - { - "constant": false, - "inputs": [ - { - "name": "leaf_hash_bytes", - "type": "bytes32" - }, - { - "name": "path_serialized", - "type": "bytes" - } - ], - "name": "verify_account_inclusion", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "type": "function" - } -] diff --git a/state_utility/web_extension/.gitignore b/state_utility/web_extension/.gitignore deleted file mode 100644 index 70a1f6a1..00000000 --- a/state_utility/web_extension/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -web-ext-artifacts/ diff --git a/state_utility/web_extension/Makefile b/state_utility/web_extension/Makefile deleted file mode 100644 index 987af5e7..00000000 --- a/state_utility/web_extension/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -firefox: - npm run start:firefox - -tailwind: - npx tailwindcss -i ./popup/popup.css -o ./popup/output.css --watch - -build: - web-ext build diff --git a/state_utility/web_extension/background.js b/state_utility/web_extension/background.js deleted file mode 100644 index e69de29b..00000000 diff --git a/state_utility/web_extension/manifest.json b/state_utility/web_extension/manifest.json deleted file mode 100644 index d7ed40f4..00000000 --- a/state_utility/web_extension/manifest.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "manifest_version": 2, - "name": "Mina account state utility", - "version": "0.0.1", - "description": "Check your Mina account via the Mina-Ethereum ZK bridge", - "content_scripts": [ - { - "matches": [ - "" - ], - "js": [ - "background.js" - ] - } - ], - "browser_action": { - "default_title": "Mina account util", - "default_popup": "popup/popup.html" - }, - "permissions": [ - "*://*/*" - ], - "browser_specific_settings": { - "gecko": { - "id": "mina-state-util@lambdaclass.com", - "strict_min_version": "42.0" - } - } -} diff --git a/state_utility/web_extension/package-lock.json b/state_utility/web_extension/package-lock.json deleted file mode 100644 index c6ce47a3..00000000 --- a/state_utility/web_extension/package-lock.json +++ /dev/null @@ -1,6231 +0,0 @@ -{ - "name": "web_extension", - "version": "0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "web_extension", - "version": "0.0.1", - "license": "ISC", - "devDependencies": { - "tailwindcss": "^3.4.4", - "web-ext": "^8.1.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@devicefarmer/adbkit": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit/-/adbkit-3.2.6.tgz", - "integrity": "sha512-8lO1hSeTgtxcOHhp4tTWq/JaOysp5KNbbyFoxNEBnwkCDZu/Bji3ZfOaG++Riv9jN6c9bgdLBOZqJTC5VJPRKQ==", - "dev": true, - "dependencies": { - "@devicefarmer/adbkit-logcat": "^2.1.2", - "@devicefarmer/adbkit-monkey": "~1.2.1", - "bluebird": "~3.7", - "commander": "^9.1.0", - "debug": "~4.3.1", - "node-forge": "^1.3.1", - "split": "~1.0.1" - }, - "bin": { - "adbkit": "bin/adbkit" - }, - "engines": { - "node": ">= 0.10.4" - } - }, - "node_modules/@devicefarmer/adbkit-logcat": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit-logcat/-/adbkit-logcat-2.1.3.tgz", - "integrity": "sha512-yeaGFjNBc/6+svbDeul1tNHtNChw6h8pSHAt5D+JsedUrMTN7tla7B15WLDyekxsuS2XlZHRxpuC6m92wiwCNw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@devicefarmer/adbkit-monkey": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit-monkey/-/adbkit-monkey-1.2.1.tgz", - "integrity": "sha512-ZzZY/b66W2Jd6NHbAhLyDWOEIBWC11VizGFk7Wx7M61JZRz7HR9Cq5P+65RKWUU7u6wgsE8Lmh9nE4Mz+U2eTg==", - "dev": true, - "engines": { - "node": ">= 0.10.4" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", - "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@fluent/syntax": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.19.0.tgz", - "integrity": "sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==", - "dev": true, - "engines": { - "node": ">=14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mdn/browser-compat-data": { - "version": "5.5.32", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.32.tgz", - "integrity": "sha512-viN2VaUd1Hj2VpTDtKVT6LYfBnxzUgXJ+LSQfzuzaHa5mZBlvR3wSxMyUqbfywBbnIWHyKNwz6Yrcdpa4zEOZw==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "dev": true, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dev": true, - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", - "dev": true, - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", - "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/addons-linter": { - "version": "6.29.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-6.29.0.tgz", - "integrity": "sha512-Ml4tmd5cnJBOaKY0mU5tWSDSf2q3nbAozwWcr5s5isuqFD8zJtF5/oHuBW/1thr0XTBSTgNCsGJ833Xv5BCYzg==", - "dev": true, - "dependencies": { - "@fluent/syntax": "0.19.0", - "@mdn/browser-compat-data": "5.5.32", - "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "9.10.1", - "ajv": "8.16.0", - "chalk": "4.1.2", - "cheerio": "1.0.0-rc.12", - "columnify": "1.6.0", - "common-tags": "1.8.2", - "deepmerge": "4.3.1", - "eslint": "8.57.0", - "eslint-plugin-no-unsanitized": "4.0.2", - "eslint-visitor-keys": "4.0.0", - "espree": "10.0.1", - "esprima": "4.0.1", - "fast-json-patch": "3.1.1", - "glob": "10.4.1", - "image-size": "1.1.1", - "is-mergeable-object": "1.1.1", - "jed": "1.1.1", - "json-merge-patch": "1.0.2", - "os-locale": "5.0.0", - "pino": "8.20.0", - "relaxed-json": "1.0.3", - "semver": "7.6.2", - "sha.js": "2.4.11", - "source-map-support": "0.5.21", - "tosource": "1.0.0", - "upath": "2.0.1", - "yargs": "17.7.2", - "yauzl": "2.10.0" - }, - "bin": { - "addons-linter": "bin/addons-linter" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/addons-linter/node_modules/addons-scanner-utils": { - "version": "9.10.1", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-9.10.1.tgz", - "integrity": "sha512-Tz9OUQx9Ja0TyQ+H2GakB9KlJ50myI6ESBGRlA8N80nHBzMjjPRFGm0APADSaCd5NP74SrFtEvL4TRpDwZXETA==", - "dev": true, - "dependencies": { - "@types/yauzl": "2.10.3", - "common-tags": "1.8.2", - "first-chunk-stream": "3.0.0", - "strip-bom-stream": "4.0.0", - "upath": "2.0.1", - "yauzl": "2.10.0" - }, - "peerDependencies": { - "body-parser": "1.20.2", - "express": "4.18.3", - "node-fetch": "2.6.11", - "safe-compare": "1.1.4" - }, - "peerDependenciesMeta": { - "body-parser": { - "optional": true - }, - "express": { - "optional": true - }, - "node-fetch": { - "optional": true - }, - "safe-compare": { - "optional": true - } - } - }, - "node_modules/addons-linter/node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/addons-moz-compare": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/addons-moz-compare/-/addons-moz-compare-1.3.0.tgz", - "integrity": "sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==", - "dev": true - }, - "node_modules/adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", - "dev": true, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-differ": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz", - "integrity": "sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", - "dev": true, - "dependencies": { - "run-applescript": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bunyan": { - "version": "1.8.15", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", - "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==", - "dev": true, - "engines": [ - "node >=0.10.0" - ], - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", - "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dev": true, - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-launcher": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.1.tgz", - "integrity": "sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "bin": { - "print-chrome-path": "bin/print-chrome-path.js" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/config-chain/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "dev": true, - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", - "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", - "dev": true, - "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "dev": true, - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dtrace-provider": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", - "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-no-unsanitized": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.0.2.tgz", - "integrity": "sha512-Pry0S9YmHoz8NCEMRQh7N0Yexh2MYCNPIlrV52hTmS7qXnTghWsjXouF08bgsrrZqaW9tt1ZiK3j5NEmPE+EjQ==", - "dev": true, - "peerDependencies": { - "eslint": "^6 || ^7 || ^8" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/espree": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", - "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", - "dev": true, - "dependencies": { - "acorn": "^8.11.3", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-patch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", - "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fast-redact": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", - "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/firefox-profile": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.6.0.tgz", - "integrity": "sha512-I9rAm1w8U3CdhgO4EzTJsCvgcbvynZn9lOySkZf78wUdUIQH2w9QOKf3pAX+THt2XMSSR3kJSuM8P7bYux9j8g==", - "dev": true, - "dependencies": { - "adm-zip": "~0.5.x", - "fs-extra": "~9.0.1", - "ini": "~2.0.0", - "minimist": "^1.2.5", - "xml2js": "^0.5.0" - }, - "bin": { - "firefox-profile": "lib/cli.js" - } - }, - "node_modules/firefox-profile/node_modules/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/firefox-profile/node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/first-chunk-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-3.0.0.tgz", - "integrity": "sha512-LNRvR4hr/S8cXXkIY5pTgVP7L3tq6LlYWcg9nWBuW7o1NMxKZo6oOVa/6GIekMGI0Iw7uC+HWimMe9u/VAeKqw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/foreground-child": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.0.tgz", - "integrity": "sha512-CrWQNaEl1/6WeZoarcM9LHupTo3RpZO2Pdk1vktwzPiQTsJnAKJmm3TACKeG5UZbWDfaH2AbvYxzP96y0MT7fA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "dev": true, - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fx-runner": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/fx-runner/-/fx-runner-1.4.0.tgz", - "integrity": "sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==", - "dev": true, - "dependencies": { - "commander": "2.9.0", - "shell-quote": "1.7.3", - "spawn-sync": "1.0.15", - "when": "3.7.7", - "which": "1.2.4", - "winreg": "0.0.12" - }, - "bin": { - "fx-runner": "bin/fx-runner" - } - }, - "node_modules/fx-runner/node_modules/commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", - "dev": true, - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/fx-runner/node_modules/isexe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", - "integrity": "sha512-d2eJzK691yZwPHcv1LbeAOa91yMJ9QmfTgSO1oXB65ezVhXQsxBac2vEB4bMVms9cGzaA99n6V2viHMq82VLDw==", - "dev": true - }, - "node_modules/fx-runner/node_modules/which": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.4.tgz", - "integrity": "sha512-zDRAqDSBudazdfM9zpiI30Fu9ve47htYXcGi3ln0wfKu2a7SmrT6F3VDoYONu//48V8Vz4TdCRNPjtvyRO3yBA==", - "dev": true, - "dependencies": { - "is-absolute": "^0.1.7", - "isexe": "^1.1.1" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "dev": true, - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", - "dev": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", - "dev": true, - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/invert-kv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz", - "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sindresorhus/invert-kv?sponsor=1" - } - }, - "node_modules/is-absolute": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", - "integrity": "sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==", - "dev": true, - "dependencies": { - "is-relative": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dev": true, - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-mergeable-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-mergeable-object/-/is-mergeable-object-1.1.1.tgz", - "integrity": "sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==", - "dev": true - }, - "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-relative": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", - "integrity": "sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jed": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", - "integrity": "sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==", - "dev": true - }, - "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/jose": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.4.0.tgz", - "integrity": "sha512-6rpxTHPAQyWMb9A35BroFl1Sp0ST3DpPcm5EVIxZxdH+e0Hv9fwhyB3XLKFUcHNpdSDnETmBfuPPTTlYz5+USw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-merge-patch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-merge-patch/-/json-merge-patch-1.0.2.tgz", - "integrity": "sha512-M6Vp2GN9L7cfuMXiWOmHj9bEFbeC250iVtcKQbqVgEsDVYnIsrNsbU+h/Y/PkbBQCtEa4Bez+Ebv0zfbC8ObLg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dev": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "dev": true, - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lcid": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz", - "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", - "dev": true, - "dependencies": { - "invert-kv": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lighthouse-logger": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", - "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "marky": "^1.2.2" - } - }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/marky": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", - "dev": true - }, - "node_modules/mem": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz", - "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^2.1.0", - "p-is-promise": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mem/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multimatch": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-6.0.0.tgz", - "integrity": "sha512-I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==", - "dev": true, - "dependencies": { - "@types/minimatch": "^3.0.5", - "array-differ": "^4.0.0", - "array-union": "^3.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", - "dev": true, - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "optional": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nan": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", - "dev": true, - "optional": true - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", - "dev": true, - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-notifier": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", - "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", - "dev": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.5", - "shellwords": "^0.1.1", - "uuid": "^8.3.2", - "which": "^2.0.2" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/on-exit-leak-free": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", - "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", - "dev": true, - "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-locale": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz", - "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", - "dev": true, - "dependencies": { - "execa": "^4.0.0", - "lcid": "^3.0.0", - "mem": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-locale/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/os-locale/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-locale/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/os-locale/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-locale/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/os-locale/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/os-locale/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-locale/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/os-locale/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/os-shim": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", - "integrity": "sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", - "dev": true, - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", - "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dev": true, - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pino": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.20.0.tgz", - "integrity": "sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==", - "dev": true, - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.1.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^3.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-abstract-transport": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", - "dev": true, - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - } - }, - "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/pino-abstract-transport/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/pino-abstract-transport/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", - "dev": true - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", - "dev": true - }, - "node_modules/promise-toolbox": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/promise-toolbox/-/promise-toolbox-0.21.0.tgz", - "integrity": "sha512-NV8aTmpwrZv+Iys54sSFOBx3tuVaOBvvrft5PNppnxy9xpU/akHbaWIril22AB22zaPgrgwKdD0KsrM0ptUtpg==", - "dev": true, - "dependencies": { - "make-error": "^1.3.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "dev": true, - "dependencies": { - "escape-goat": "^4.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dev": true, - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", - "dev": true - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/real-require": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", - "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, - "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "dev": true, - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "dev": true, - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/relaxed-json": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/relaxed-json/-/relaxed-json-1.0.3.tgz", - "integrity": "sha512-b7wGPo7o2KE/g7SqkJDDbav6zmrEeP4TK2VpITU72J/M949TLe/23y/ZHJo+pskcGM52xIfFoT9hydwmgr1AEg==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "commander": "^2.6.0" - }, - "bin": { - "rjson": "bin/rjson.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/relaxed-json/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/relaxed-json/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/relaxed-json/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/relaxed-json/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/relaxed-json/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/relaxed-json/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/relaxed-json/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/relaxed-json/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/run-applescript/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/run-applescript/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/run-applescript/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/run-applescript/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/run-applescript/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "dev": true, - "optional": true - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true - }, - "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true - }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sonic-boom": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", - "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", - "dev": true, - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spawn-sync": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", - "integrity": "sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "concat-stream": "^1.4.7", - "os-shim": "^0.1.2" - } - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true, - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-5.0.0.tgz", - "integrity": "sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-bom-buf": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-2.0.0.tgz", - "integrity": "sha512-gLFNHucd6gzb8jMsl5QmZ3QgnUJmp7qn4uUSHNwEXumAp7YizoGYw19ZUVfuq4aBOQUtyn2k8X/CwzWB73W2lQ==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom-stream": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-4.0.0.tgz", - "integrity": "sha512-0ApK3iAkHv6WbgLICw/J4nhwHeDZsBxIIsOD+gHgZICL6SeJ0S9f/WZqemka9cjkTyMN5geId6e8U5WGFAn3cQ==", - "dev": true, - "dependencies": { - "first-chunk-stream": "^3.0.0", - "strip-bom-buf": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-json-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", - "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/thread-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", - "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", - "dev": true, - "dependencies": { - "real-require": "^0.2.0" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/titleize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tosource": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tosource/-/tosource-1.0.0.tgz", - "integrity": "sha512-N6g8eQ1eerw6Y1pBhdgkubWIiPFwXa2POSUrlL8jth5CyyEWNWzoGKRkO3CaO7Jx27hlJP54muB3btIAbx4MPg==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "dev": true, - "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-ext": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-8.1.0.tgz", - "integrity": "sha512-+FRV/ZOeDR6ybJUBp/tfZOz7eWC/+Mff5GXucqRl0ccUfXHGJLvc1Acq4FOVKeFBL/u+pS/LGHjQ4xFrv7EOuw==", - "dev": true, - "dependencies": { - "@babel/runtime": "7.24.7", - "@devicefarmer/adbkit": "3.2.6", - "addons-linter": "6.29.0", - "bunyan": "1.8.15", - "camelcase": "8.0.0", - "chrome-launcher": "0.15.1", - "debounce": "1.2.1", - "decamelize": "6.0.0", - "es6-error": "4.1.1", - "firefox-profile": "4.6.0", - "fs-extra": "11.2.0", - "fx-runner": "1.4.0", - "https-proxy-agent": "^7.0.0", - "jose": "5.4.0", - "jszip": "3.10.1", - "mkdirp": "1.0.4", - "multimatch": "6.0.0", - "mz": "2.7.0", - "node-fetch": "3.3.2", - "node-notifier": "10.0.1", - "open": "9.1.0", - "parse-json": "7.1.1", - "promise-toolbox": "0.21.0", - "source-map-support": "0.5.21", - "strip-bom": "5.0.0", - "strip-json-comments": "5.0.1", - "tmp": "0.2.3", - "update-notifier": "6.0.2", - "watchpack": "2.4.1", - "ws": "8.17.0", - "yargs": "17.7.2", - "zip-dir": "2.0.0" - }, - "bin": { - "web-ext": "bin/web-ext.js" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/when": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.7.tgz", - "integrity": "sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==", - "dev": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dev": true, - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/winreg": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/winreg/-/winreg-0.0.12.tgz", - "integrity": "sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==", - "dev": true - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zip-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/zip-dir/-/zip-dir-2.0.0.tgz", - "integrity": "sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==", - "dev": true, - "dependencies": { - "async": "^3.2.0", - "jszip": "^3.2.2" - } - } - } -} diff --git a/state_utility/web_extension/package.json b/state_utility/web_extension/package.json deleted file mode 100644 index 181553a5..00000000 --- a/state_utility/web_extension/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "web_extension", - "version": "0.0.1", - "description": "Check your Mina account via the Mina-Ethereum ZK bridge", - "main": "utility.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start:firefox": "web-ext run" - }, - "author": "lambdaclass", - "license": "ISC", - "devDependencies": { - "tailwindcss": "^3.4.4", - "web-ext": "^8.1.0" - } -} diff --git a/state_utility/web_extension/popup/output.css b/state_utility/web_extension/popup/output.css deleted file mode 100644 index e0cd4a51..00000000 --- a/state_utility/web_extension/popup/output.css +++ /dev/null @@ -1,1016 +0,0 @@ -/* -! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com -*/ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: #e5e7eb; - /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -6. Use the user's configured `sans` font-variation-settings by default. -7. Disable tap highlights on iOS -*/ - -html, -:host { - line-height: 1.5; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -moz-tab-size: 4; - /* 3 */ - -o-tab-size: 4; - tab-size: 4; - /* 3 */ - font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - /* 4 */ - font-feature-settings: normal; - /* 5 */ - font-variation-settings: normal; - /* 6 */ - -webkit-tap-highlight-color: transparent; - /* 7 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; - /* 1 */ - line-height: inherit; - /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; - /* 1 */ - color: inherit; - /* 2 */ - border-top-width: 1px; - /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font-family by default. -2. Use the user's configured `mono` font-feature-settings by default. -3. Use the user's configured `mono` font-variation-settings by default. -4. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - /* 1 */ - font-feature-settings: normal; - /* 2 */ - font-variation-settings: normal; - /* 3 */ - font-size: 1em; - /* 4 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; - /* 1 */ - border-color: inherit; - /* 2 */ - border-collapse: collapse; - /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-feature-settings: inherit; - /* 1 */ - font-variation-settings: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - font-weight: inherit; - /* 1 */ - line-height: inherit; - /* 1 */ - letter-spacing: inherit; - /* 1 */ - color: inherit; - /* 1 */ - margin: 0; - /* 2 */ - padding: 0; - /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -input:where([type='button']), -input:where([type='reset']), -input:where([type='submit']) { - -webkit-appearance: button; - /* 1 */ - background-color: transparent; - /* 2 */ - background-image: none; - /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Reset default styling for dialogs. -*/ - -dialog { - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - /* 1 */ - vertical-align: middle; - /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ - -[hidden] { - display: none; -} - -*, ::before, ::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -.invisible { - visibility: hidden; -} - -.m-1 { - margin: 0.25rem; -} - -.m-3 { - margin: 0.75rem; -} - -.m-0 { - margin: 0px; -} - -.my-1 { - margin-top: 0.25rem; - margin-bottom: 0.25rem; -} - -.my-3 { - margin-top: 0.75rem; - margin-bottom: 0.75rem; -} - -.mx-5 { - margin-left: 1.25rem; - margin-right: 1.25rem; -} - -.mb-4 { - margin-bottom: 1rem; -} - -.mb-5 { - margin-bottom: 1.25rem; -} - -.flex { - display: flex; -} - -.grid { - display: grid; -} - -.hidden { - display: none; -} - -.basis-1\/4 { - flex-basis: 25%; -} - -.basis-3\/4 { - flex-basis: 75%; -} - -.grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - -.flex-row { - flex-direction: row; -} - -.flex-col { - flex-direction: column; -} - -.content-center { - align-content: center; -} - -.content-around { - align-content: space-around; -} - -.justify-center { - justify-content: center; -} - -.rounded-sm { - border-radius: 0.125rem; -} - -.rounded-lg { - border-radius: 0.5rem; -} - -.rounded { - border-radius: 0.25rem; -} - -.border-2 { - border-width: 2px; -} - -.border-indigo-500 { - --tw-border-opacity: 1; - border-color: rgb(99 102 241 / var(--tw-border-opacity)); -} - -.border-indigo-300 { - --tw-border-opacity: 1; - border-color: rgb(165 180 252 / var(--tw-border-opacity)); -} - -.bg-transparent { - background-color: transparent; -} - -.bg-violet-100 { - --tw-bg-opacity: 1; - background-color: rgb(237 233 254 / var(--tw-bg-opacity)); -} - -.bg-violet-500 { - --tw-bg-opacity: 1; - background-color: rgb(139 92 246 / var(--tw-bg-opacity)); -} - -.bg-violet-900 { - --tw-bg-opacity: 1; - background-color: rgb(76 29 149 / var(--tw-bg-opacity)); -} - -.bg-violet-600 { - --tw-bg-opacity: 1; - background-color: rgb(124 58 237 / var(--tw-bg-opacity)); -} - -.bg-gray-900 { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); -} - -.bg-gray-950 { - --tw-bg-opacity: 1; - background-color: rgb(3 7 18 / var(--tw-bg-opacity)); -} - -.bg-black { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); -} - -.bg-gray-400 { - --tw-bg-opacity: 1; - background-color: rgb(156 163 175 / var(--tw-bg-opacity)); -} - -.bg-violet-400 { - --tw-bg-opacity: 1; - background-color: rgb(167 139 250 / var(--tw-bg-opacity)); -} - -.bg-orange-500 { - --tw-bg-opacity: 1; - background-color: rgb(249 115 22 / var(--tw-bg-opacity)); -} - -.bg-blue-500 { - --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity)); -} - -.bg-indigo-500 { - --tw-bg-opacity: 1; - background-color: rgb(99 102 241 / var(--tw-bg-opacity)); -} - -.p-4 { - padding: 1rem; -} - -.p-2 { - padding: 0.5rem; -} - -.p-0 { - padding: 0px; -} - -.p-3 { - padding: 0.75rem; -} - -.p-1 { - padding: 0.25rem; -} - -.py-1 { - padding-top: 0.25rem; - padding-bottom: 0.25rem; -} - -.py-1\.5 { - padding-top: 0.375rem; - padding-bottom: 0.375rem; -} - -.px-2 { - padding-left: 0.5rem; - padding-right: 0.5rem; -} - -.py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} - -.pl-1 { - padding-left: 0.25rem; -} - -.text-center { - text-align: center; -} - -.align-middle { - vertical-align: middle; -} - -.align-bottom { - vertical-align: bottom; -} - -.align-text-bottom { - vertical-align: text-bottom; -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} - -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem; -} - -.text-9xl { - font-size: 8rem; - line-height: 1; -} - -.text-3xl { - font-size: 1.875rem; - line-height: 2.25rem; -} - -.text-5xl { - font-size: 3rem; - line-height: 1; -} - -.font-bold { - font-weight: 700; -} - -.font-black { - font-weight: 900; -} - -.font-normal { - font-weight: 400; -} - -.font-thin { - font-weight: 100; -} - -.font-light { - font-weight: 300; -} - -.text-gray-900 { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity)); -} - -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.shadow { - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-sm { - --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-lg { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-md { - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-teal-100 { - --tw-shadow-color: #ccfbf1; - --tw-shadow: var(--tw-shadow-colored); -} - -.shadow-teal-900 { - --tw-shadow-color: #134e4a; - --tw-shadow: var(--tw-shadow-colored); -} - -.shadow-violet-900 { - --tw-shadow-color: #4c1d95; - --tw-shadow: var(--tw-shadow-colored); -} - -.shadow-violet-100 { - --tw-shadow-color: #ede9fe; - --tw-shadow: var(--tw-shadow-colored); -} - -.shadow-violet-400 { - --tw-shadow-color: #a78bfa; - --tw-shadow: var(--tw-shadow-colored); -} - -.shadow-violet-200 { - --tw-shadow-color: #ddd6fe; - --tw-shadow: var(--tw-shadow-colored); -} - -.drop-shadow { - --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06)); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.drop-shadow-md { - --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06)); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.delay-150 { - transition-delay: 150ms; -} - -.delay-0 { - transition-delay: 0s; -} - -.ease-in-out { - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); -} - -.placeholder\:text-gray-400::-moz-placeholder { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); -} - -.placeholder\:text-gray-400::placeholder { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); -} - -.hover\:bg-violet-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(109 40 217 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(124 58 237 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(234 88 12 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(79 70 229 / var(--tw-bg-opacity)); -} - -.hover\:shadow-xl:hover { - --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.focus\:ring-0:focus { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.focus\:ring-1:focus { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.active\:bg-violet-800:active { - --tw-bg-opacity: 1; - background-color: rgb(91 33 182 / var(--tw-bg-opacity)); -} - -.active\:bg-violet-700:active { - --tw-bg-opacity: 1; - background-color: rgb(109 40 217 / var(--tw-bg-opacity)); -} - -.active\:bg-orange-700:active { - --tw-bg-opacity: 1; - background-color: rgb(194 65 12 / var(--tw-bg-opacity)); -} - -.active\:bg-blue-700:active { - --tw-bg-opacity: 1; - background-color: rgb(29 78 216 / var(--tw-bg-opacity)); -} - -.active\:bg-indigo-700:active { - --tw-bg-opacity: 1; - background-color: rgb(67 56 202 / var(--tw-bg-opacity)); -} - -@media (min-width: 640px) { - .sm\:text-sm { - font-size: 0.875rem; - line-height: 1.25rem; - } - - .sm\:leading-6 { - line-height: 1.5rem; - } -} diff --git a/state_utility/web_extension/popup/popup.css b/state_utility/web_extension/popup/popup.css deleted file mode 100644 index b5c61c95..00000000 --- a/state_utility/web_extension/popup/popup.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/state_utility/web_extension/popup/popup.html b/state_utility/web_extension/popup/popup.html deleted file mode 100644 index 7b2c4485..00000000 --- a/state_utility/web_extension/popup/popup.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/state_utility/web_extension/popup/utility.js b/state_utility/web_extension/popup/utility.js deleted file mode 100644 index 0609f021..00000000 --- a/state_utility/web_extension/popup/utility.js +++ /dev/null @@ -1,50 +0,0 @@ -function accountForm() { - //let publicKey = document.forms["account-form"]["public-key"]; - - const button = document.getElementById("submit"); - - const show_valid_account = (balance) => { - document.getElementById("balance").textContent = balance * (10**-9); - document.getElementById("verified").classList.remove("hidden"); - document.getElementById("notverified").classList.add("hidden"); - } - - const show_invalid_account = () => { - document.getElementById("verified").classList.add("hidden"); - document.getElementById("notverified").classList.remove("hidden"); - document.getElementById("errormsg").classList.add("hidden"); - } - - const show_error = () => { - document.getElementById("balance").textContent = "?"; - document.getElementById("verified").classList.add("hidden"); - document.getElementById("notverified").classList.add("hidden"); - document.getElementById("errormsg").classList.remove("hidden"); - } - - async function request() { - const publicKey = document.getElementById("public-key").value; - const string = "http://5.9.57.89:3000/account_state/".concat(publicKey, "/http%3A%2F%2F5.9.57.89%3A3085%2Fgraphql/https%3A%2F%2Fsepolia.drpc.org/0x698176F675F7e05a751c70bC902Ec18c5D228b8E"); - try { - const response = await fetch(string); - try { - const response_json = await response.json(); - let valid = response_json.valid - if (valid) { - let balance = response_json.balance - show_valid_account(balance) - } else { - show_invalid_account(); - } - } catch { - show_error(); - } - } catch { - show_error(); - } - } - - button.addEventListener("click", request); -} - -window.onload = accountForm; diff --git a/state_utility/web_extension/tailwind.config.js b/state_utility/web_extension/tailwind.config.js deleted file mode 100644 index 4bd0309b..00000000 --- a/state_utility/web_extension/tailwind.config.js +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: ["./popup/*.{html,js}"], - theme: { - extend: {}, - }, - plugins: [], -} - From 5ab8f1a7be4542bd977854692f13f446784c3fba Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 7 Aug 2024 12:40:43 -0300 Subject: [PATCH 13/46] Add account inclusion job (#305) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: EstĂ©fano Bargas --- .github/workflows/ci.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4492659f..a25a3881 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,3 +13,10 @@ jobs: with: skip_run: true directory: core + + account_inclusion: + name: Test Account Inclusion + uses: ./.github/workflows/rust_ci.yaml + with: + skip_run: true + directory: account_inclusion \ No newline at end of file From 24e95d495b8a43ca74224e3532d51f38efdfefba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 9 Aug 2024 11:35:49 -0300 Subject: [PATCH 14/46] Use tip state from bridge contract (#307) * Remove modules that won't be used in the Aligned version * Fix Markdown lint issues * Forward GraphQL port in CI * Remove domain name usage * Remove tunneling and comment Merkle path job * Uncomment Merkle path job and comment nextest step * Try port forwarding to access GraphQL * Revert "Try port forwarding to access GraphQL" This reverts commit 79084b9d1435a82aae905e40419cbd85bb44ce82. * Fetch state hash and proof and parse them * Simplify input parsing * Revert "Simplify input parsing" This reverts commit 91a1621ab1e6c7183c661a3b692a6cf2f3bf3d64. * Separate queries for hash and proof * Integrate with Aligned * Add test * Remove unwraps * Add usage section * Add initial SP1 project for account inclusion * Simplify and add make cmd * Match SP1 version with Aligned one * Query and parse Merkle root * Fix parser lockfile * WIP * WIP Merkle path verification * Query merkle root * Verify merkle * Moved query merkle root fn to test module * Move merkle_path.rs to lib.rs * Remove SP1 project, move tests crate out * Small fixes * Added query merkle root * WIP get tip state hash * Finished account inclusion * Update contract names * WIP use graphql_client * Fix and add debug comments * Use tip state from bridge contract * Fix bad candidate hash * Fix test and remove unused functions * Add tip hash check in contract * Serialize hashes first in pub inputs * Add option to save proof files * Use root state as initial tip for bridge (#308) * Add root state hash argument to contract and deploy it using ethers * Add contract_deployer crate * Added root query * Deploy contract with root * Deploy contract with alloy * Fix aligned contract address * Add abi gen to deploy contract make rule * Fix clippy * Add error message to test * Remove test (for now we cant execute it until we have an integration test) * Fix account inclusion test * Fix account inclusion test * Update .gitignore * Ignore test --------- Co-authored-by: gabrielbosio --- .env.template | 1 + Makefile | 11 +- account_inclusion/Cargo.lock | 1037 ++- account_inclusion/src/lib.rs | 8 +- contract/script/MinaBridge.s.sol | 4 +- contract/src/MinaBridge.sol | 27 +- contract/test/MinaBridge.t.sol | 4 +- contract_deployer/.gitignore | 1 + contract_deployer/Cargo.lock | 6507 +++++++++++++++++ contract_deployer/Cargo.toml | 24 + contract_deployer/src/main.rs | 56 + core/Cargo.lock | 1308 +++- core/Cargo.toml | 7 +- core/abi/MinaBridge.json | 2 +- ...query.graphql => best_chain_query.graphql} | 4 +- core/src/main.rs | 27 +- core/src/mina_polling_service.rs | 143 +- core/src/smart_contract_utility.rs | 69 +- core/src/utils/constants.rs | 3 + core/src/utils/env.rs | 5 + 20 files changed, 9035 insertions(+), 213 deletions(-) create mode 100644 contract_deployer/.gitignore create mode 100644 contract_deployer/Cargo.lock create mode 100644 contract_deployer/Cargo.toml create mode 100644 contract_deployer/src/main.rs rename core/src/graphql/{candidate_query.graphql => best_chain_query.graphql} (52%) diff --git a/.env.template b/.env.template index 15019099..bbb654c2 100644 --- a/.env.template +++ b/.env.template @@ -1,5 +1,6 @@ ETH_CHAIN= MINA_RPC_URL= +SAVE_PROOF=true/false # also false if other than "true" or variable were to be not defined ## These can be skipped if using devnet with Anvil. # BATCHER_ADDR= diff --git a/Makefile b/Makefile index 585a8d62..2ba8b22e 100644 --- a/Makefile +++ b/Makefile @@ -7,15 +7,8 @@ gen_contract_abi: forge build --root contract/ cp contract/out/MinaBridge.sol/MinaBridge.json core/abi/MinaBridge.json -deploy_contract_anvil: - forge script \ - --non-interactive \ - --root contract/ \ - --broadcast \ - --rpc-url http://localhost:8545 \ - --private-key 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6 \ - contract/script/MinaBridge.s.sol:MinaBridgeDeployer -# deploy_contract_anvil uses Anvil wallet 9, same as Aligned for deploying its contracts. +deploy_contract_anvil: gen_contract_abi + @cargo run --manifest-path contract_deployer/Cargo.toml --release verify_account_inclusion: @cargo run --manifest-path account_inclusion/Cargo.toml --release -- ${PUBLIC_KEY} diff --git a/account_inclusion/Cargo.lock b/account_inclusion/Cargo.lock index 729bc835..bb26f568 100644 --- a/account_inclusion/Cargo.lock +++ b/account_inclusion/Cargo.lock @@ -70,6 +70,18 @@ dependencies = [ "version_check", ] +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy 0.7.35", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -97,6 +109,555 @@ dependencies = [ "url", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", +] + +[[package]] +name = "alloy-chains" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3312b2a48f29abe7c3ea7c7fbc1f8cc6ea09b85d74b6232e940df35f2f3826fd" +dependencies = [ + "num_enum", + "strum 0.26.3", +] + +[[package]] +name = "alloy-consensus" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "serde", +] + +[[package]] +name = "alloy-contract" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4e0ef72b0876ae3068b2ed7dfae9ae1779ce13cfaec2ee1f08f5bd0348dc57" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "futures", + "futures-util", + "thiserror", +] + +[[package]] +name = "alloy-core" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "const-hex", + "itoa", + "serde", + "serde_json", + "winnow 0.6.18", +] + +[[package]] +name = "alloy-eips" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "derive_more", + "k256", + "once_cell", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "alloy-genesis" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-json-abi" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-rpc" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-primitives" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-provider" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "pin-project", + "reqwest 0.12.5", + "serde", + "serde_json", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "alloy-pubsub" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f5da2c55cbaf229bad3c5f8b00b5ab66c74ef093e5f3a753d874cfecf7d2281" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-transport", + "bimap", + "futures", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +dependencies = [ + "alloy-rlp-derive", + "arrayvec", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-pubsub", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "futures", + "pin-project", + "reqwest 0.12.5", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-rpc-types" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c31a3750b8f5a350d17354e46a52b0f2f19ec5f2006d816935af599dedc521" +dependencies = [ + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-rpc-types-engine" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff63f51b2fb2f547df5218527fd0653afb1947bf7fead5b3ce58c75d170b30f7" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", + "jsonwebtoken 9.3.0", + "rand", + "serde", + "thiserror", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-serde" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", +] + +[[package]] +name = "alloy-signer-local" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-signer", + "async-trait", + "k256", + "rand", + "thiserror", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +dependencies = [ + "alloy-json-abi", + "alloy-sol-macro-input", + "const-hex", + "heck 0.5.0", + "indexmap 2.3.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +dependencies = [ + "alloy-json-abi", + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.72", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +dependencies = [ + "serde", + "winnow 0.6.18", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-transport" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" +dependencies = [ + "alloy-json-rpc", + "base64 0.22.1", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-http" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "reqwest 0.12.5", + "serde_json", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-ipc" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804494366e20468776db4e18f9eb5db7db0fe14f1271eb6dbf155d867233405c" +dependencies = [ + "alloy-json-rpc", + "alloy-pubsub", + "alloy-transport", + "bytes", + "futures", + "interprocess", + "pin-project", + "serde_json", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "alloy-transport-ws" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af855163e7df008799941aa6dd324a43ef2bf264b08ba4b22d44aad6ced65300" +dependencies = [ + "alloy-pubsub", + "alloy-transport", + "futures", + "http 1.1.0", + "rustls 0.23.12", + "serde_json", + "tokio", + "tokio-tungstenite 0.23.1", + "tracing", + "ws_stream_wasm", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -172,9 +733,9 @@ name = "ark-ec" version = "0.3.0" source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", "derivative", "num-traits", "rayon", @@ -186,10 +747,10 @@ name = "ark-ff" version = "0.3.0" source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", "derivative", "num-bigint", "num-traits", @@ -199,6 +760,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.3.0" @@ -208,6 +789,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-ff-macros" version = "0.3.0" @@ -219,14 +810,27 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-poly" version = "0.3.0" source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", "derivative", "hashbrown 0.11.2", "rayon", @@ -237,9 +841,20 @@ name = "ark-serialize" version = "0.3.0" source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.9.0", + "ark-serialize-derive", + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", ] [[package]] @@ -263,6 +878,16 @@ dependencies = [ "rayon", ] +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + [[package]] name = "arrayref" version = "0.3.8" @@ -301,6 +926,28 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "async-trait" version = "0.1.81" @@ -416,6 +1063,12 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + [[package]] name = "bincode" version = "1.3.3" @@ -545,6 +1198,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + [[package]] name = "bs58" version = "0.4.0" @@ -612,6 +1277,20 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "c-kzg" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "serde", +] + [[package]] name = "camino" version = "1.1.7" @@ -813,10 +1492,11 @@ name = "core" version = "0.1.0" dependencies = [ "aligned-sdk", + "alloy", "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "base64 0.22.1", "dotenv", "env_logger", @@ -1020,6 +1700,19 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + [[package]] name = "data-encoding" version = "2.6.0" @@ -1139,6 +1832,12 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" +[[package]] +name = "doctest-file" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" + [[package]] name = "dotenv" version = "0.15.0" @@ -1471,6 +2170,7 @@ source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reco dependencies = [ "chrono", "ethers-core", + "ethers-solc", "reqwest 0.11.27", "semver 1.0.23", "serde", @@ -1524,7 +2224,7 @@ dependencies = [ "hashers", "http 0.2.12", "instant", - "jsonwebtoken", + "jsonwebtoken 8.3.0", "once_cell", "pin-project", "reqwest 0.11.27", @@ -1613,6 +2313,17 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + [[package]] name = "ff" version = "0.13.0" @@ -1806,6 +2517,12 @@ dependencies = [ "slab", ] +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + [[package]] name = "fxhash" version = "0.2.1" @@ -1939,7 +2656,7 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "rand", ] @@ -1996,7 +2713,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ - "ahash", + "ahash 0.7.8", ] [[package]] @@ -2010,6 +2727,10 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] [[package]] name = "hashers" @@ -2061,6 +2782,12 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + [[package]] name = "hmac" version = "0.12.1" @@ -2400,6 +3127,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "interprocess" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f4e4a06d42fab3e85ab1b419ad32b09eab58b901d40c57935ff92db3287a13" +dependencies = [ + "doctest-file", + "futures-core", + "libc", + "recvmsg", + "tokio", + "widestring", + "windows-sys 0.52.0", +] + [[package]] name = "ipnet" version = "2.9.0" @@ -2430,6 +3172,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -2461,13 +3212,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.7", - "pem", + "pem 1.1.1", "ring 0.16.20", "serde", "serde_json", "simple_asn1", ] +[[package]] +name = "jsonwebtoken" +version = "9.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +dependencies = [ + "base64 0.21.7", + "js-sys", + "pem 3.0.4", + "ring 0.17.8", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "k256" version = "0.13.3" @@ -2491,15 +3257,25 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "keccak-asm" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + [[package]] name = "kimchi" version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "blake2", "disjoint-set", "groupmap", @@ -2648,6 +3424,15 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "lru" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +dependencies = [ + "hashbrown 0.14.5", +] + [[package]] name = "md-5" version = "0.10.6" @@ -2682,7 +3467,7 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", ] [[package]] @@ -2690,7 +3475,7 @@ name = "mina-hasher" version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ - "ark-ff", + "ark-ff 0.3.0", "bitvec", "mina-curves", "mina-poseidon", @@ -2703,7 +3488,7 @@ name = "mina-p2p-messages" version = "0.6.4" source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" dependencies = [ - "ark-ff", + "ark-ff 0.3.0", "base64 0.13.1", "binprot", "binprot_derive", @@ -2730,7 +3515,7 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", "mina-curves", "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", @@ -2747,7 +3532,7 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "bitvec", "blake2", "bs58 0.4.0", @@ -2767,9 +3552,9 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "anyhow", "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "backtrace", "base64 0.13.1", "bitvec", @@ -2971,9 +3756,9 @@ version = "0.1.0" source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "bcs", "hex", "num-bigint", @@ -2994,9 +3779,9 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "bcs", "hex", "num-bigint", @@ -3062,7 +3847,7 @@ name = "openmina-core" version = "0.6.0" source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" dependencies = [ - "ark-ff", + "ark-ff 0.3.0", "binprot", "binprot_derive", "hex", @@ -3269,6 +4054,16 @@ dependencies = [ "base64 0.13.1", ] +[[package]] +name = "pem" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +dependencies = [ + "base64 0.22.1", + "serde", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -3411,9 +4206,9 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "blake2", "groupmap", "itertools 0.10.5", @@ -3453,7 +4248,7 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" dependencies = [ - "zerocopy", + "zerocopy 0.6.6", ] [[package]] @@ -3544,6 +4339,8 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ + "bit-set", + "bit-vec", "bitflags 2.6.0", "lazy_static", "num-traits", @@ -3551,9 +4348,17 @@ dependencies = [ "rand_chacha", "rand_xorshift", "regex-syntax", + "rusty-fork", + "tempfile", "unarray", ] +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quote" version = "1.0.36" @@ -3646,6 +4451,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "recvmsg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" + [[package]] name = "redox_syscall" version = "0.2.16" @@ -3756,7 +4567,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", + "webpki-roots 0.25.4", "winreg 0.50.0", ] @@ -3924,6 +4735,36 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -3986,6 +4827,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "once_cell", + "ring 0.17.8", "rustls-pki-types", "rustls-webpki 0.102.6", "subtle", @@ -4044,6 +4886,18 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + [[package]] name = "ryu" version = "1.0.18" @@ -4355,6 +5209,16 @@ dependencies = [ "keccak", ] +[[package]] +name = "sha3-asm" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +dependencies = [ + "cc", + "cfg-if", +] + [[package]] name = "signature" version = "2.2.0" @@ -4405,7 +5269,7 @@ version = "0.6.0" source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", "bincode", "derive_more", @@ -4608,6 +5472,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn-solidity" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "sync_wrapper" version = "0.1.2" @@ -4702,6 +5578,15 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" version = "0.3.36" @@ -4815,6 +5700,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + [[package]] name = "tokio-tungstenite" version = "0.20.1" @@ -4827,7 +5724,7 @@ dependencies = [ "tokio", "tokio-rustls 0.24.1", "tungstenite 0.20.1", - "webpki-roots", + "webpki-roots 0.25.4", ] [[package]] @@ -4839,9 +5736,13 @@ dependencies = [ "futures-util", "log", "native-tls", + "rustls 0.23.12", + "rustls-pki-types", "tokio", "tokio-native-tls", + "tokio-rustls 0.26.0", "tungstenite 0.23.0", + "webpki-roots 0.26.3", ] [[package]] @@ -4924,6 +5825,7 @@ dependencies = [ "tokio", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -4944,6 +5846,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -5019,6 +5922,8 @@ dependencies = [ "log", "native-tls", "rand", + "rustls 0.23.12", + "rustls-pki-types", "sha1", "thiserror", "utf-8", @@ -5035,7 +5940,7 @@ name = "turshi" version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ - "ark-ff", + "ark-ff 0.3.0", "hex", "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", ] @@ -5166,6 +6071,12 @@ dependencies = [ "getrandom", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" @@ -5184,6 +6095,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -5318,6 +6238,21 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +[[package]] +name = "webpki-roots" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + [[package]] name = "winapi" version = "0.3.9" @@ -5576,7 +6511,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.6.6", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive 0.7.35", ] [[package]] @@ -5590,6 +6534,17 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "zeroize" version = "1.8.1" diff --git a/account_inclusion/src/lib.rs b/account_inclusion/src/lib.rs index 482f3364..0e3a2705 100644 --- a/account_inclusion/src/lib.rs +++ b/account_inclusion/src/lib.rs @@ -260,17 +260,21 @@ mod test { query_ledgers_merkle_root("http://5.9.57.89:3085/graphql").unwrap(); } + // skipping because we can't hardcode a state hash as it's only temporarily present + // in the transition frontier of a node. This queries are going to be replaced with the + // ones on the mina polling service anyway. + #[ignore] #[test] fn test_query_merkle_root() { let state_hash = - StateHash::from_str("3NKE3oYnEwSFcuEXWCz1abNLeTgY8BGEvPs1KWPHyj81jmgdojsT") + StateHash::from_str("3NLKUa5vnYGYiGaotLAdPdeJjzbUit3477zmoP9jwzajqJRxnvvA") .unwrap() .to_fp() .unwrap(); let staged_ledger_hash = query_merkle_root("http://5.9.57.89:3085/graphql", state_hash).unwrap(); let ledger_merkle_root = - LedgerHash::from_str("jxBZvRKv9aCVEDn7Dd48aWDruHhVkcW1vmburY4gbxCDVEZzecL") + LedgerHash::from_str("jxY1YW31oRSRMbH61ctJt6JN7E3FVY8ncUwxHwLNzSjwZhYVqJg") .unwrap() .to_fp() .unwrap(); diff --git a/contract/script/MinaBridge.s.sol b/contract/script/MinaBridge.s.sol index 080f76a2..06abb469 100644 --- a/contract/script/MinaBridge.s.sol +++ b/contract/script/MinaBridge.s.sol @@ -28,7 +28,9 @@ contract MinaBridgeDeployer is Script { revert UndefinedChain(); } - new MinaBridge(alignedServiceAddress); + // FIXME(xqft): this script may be deprecated, for now we'll + // pass 0x0 as the second constructor argument. + new MinaBridge(alignedServiceAddress, 0x0); vm.stopBroadcast(); } diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index 02923357..92612e90 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -4,21 +4,31 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; error NewStateIsNotValid(); +error TipStateIsWrong(); /// @title Mina to Ethereum Bridge's smart contract. contract MinaBridge { - /// @notice The state hash of the last verified state converted into a Fp. + /// @notice The state hash of the last verified state as a Fp. bytes32 tipStateHash; + /// @notice The state hash of the transition frontier's root. + bytes32 rootStateHash; + /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; - constructor(address alignedServiceAddr) { - aligned = AlignedLayerServiceManager(alignedServiceAddr); + constructor(address _alignedServiceAddr, bytes32 _rootStateHash) { + aligned = AlignedLayerServiceManager(_alignedServiceAddr); + rootStateHash = _rootStateHash; } + /// @notice Returns the last verified state hash, or the root state hash if none. function getTipStateHash() external view returns (bytes32) { - return tipStateHash; + if (tipStateHash != 0) { + return tipStateHash; + } else { + return rootStateHash; + } } function updateTipState( @@ -30,6 +40,15 @@ contract MinaBridge { uint256 verificationDataBatchIndex, bytes memory pubInput ) external { + bytes32 pubInputTipStateHash; + assembly { + mstore(pubInputTipStateHash, mload(add(pubInput, 0x40))) + } + + if (pubInputTipStateHash != tipStateHash) { + revert TipStateIsWrong(); + } + bytes32 pubInputCommitment = keccak256(pubInput); bool isNewStateVerified = aligned.verifyBatchInclusion( diff --git a/contract/test/MinaBridge.t.sol b/contract/test/MinaBridge.t.sol index 4aeac7fa..6742d2fb 100644 --- a/contract/test/MinaBridge.t.sol +++ b/contract/test/MinaBridge.t.sol @@ -9,6 +9,8 @@ contract MinaBridgeTest is Test { uint160 alignedServiceAddress = 0x0; function setUp() public { - bridge = new MinaBridge(address(alignedServiceAddress)); + // FIXME(xqft): this script may be deprecated, for now we'll + // pass 0x0 as the second constructor argument. + bridge = new MinaBridge(address(alignedServiceAddress), 0x0); } } diff --git a/contract_deployer/.gitignore b/contract_deployer/.gitignore new file mode 100644 index 00000000..2f7896d1 --- /dev/null +++ b/contract_deployer/.gitignore @@ -0,0 +1 @@ +target/ diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock new file mode 100644 index 00000000..8794d3a7 --- /dev/null +++ b/contract_deployer/Cargo.lock @@ -0,0 +1,6507 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aligned-sdk" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#e0e42d2543823482336b2f35d9e3392adb1eed5a" +dependencies = [ + "ethers", + "futures-util", + "hex", + "lambdaworks-crypto", + "log", + "serde", + "serde_json", + "sha3", + "tokio", + "tokio-tungstenite 0.23.1", + "url", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", +] + +[[package]] +name = "alloy-chains" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3312b2a48f29abe7c3ea7c7fbc1f8cc6ea09b85d74b6232e940df35f2f3826fd" +dependencies = [ + "num_enum", + "strum 0.26.3", +] + +[[package]] +name = "alloy-consensus" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "serde", +] + +[[package]] +name = "alloy-contract" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4e0ef72b0876ae3068b2ed7dfae9ae1779ce13cfaec2ee1f08f5bd0348dc57" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "futures", + "futures-util", + "thiserror", +] + +[[package]] +name = "alloy-core" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "const-hex", + "itoa", + "serde", + "serde_json", + "winnow 0.6.18", +] + +[[package]] +name = "alloy-eips" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "derive_more", + "k256", + "once_cell", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "alloy-genesis" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-json-abi" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-rpc" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-primitives" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-provider" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "pin-project", + "reqwest 0.12.5", + "serde", + "serde_json", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "alloy-pubsub" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f5da2c55cbaf229bad3c5f8b00b5ab66c74ef093e5f3a753d874cfecf7d2281" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-transport", + "bimap", + "futures", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +dependencies = [ + "alloy-rlp-derive", + "arrayvec", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-pubsub", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "futures", + "pin-project", + "reqwest 0.12.5", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-rpc-types" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c31a3750b8f5a350d17354e46a52b0f2f19ec5f2006d816935af599dedc521" +dependencies = [ + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-rpc-types-engine" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff63f51b2fb2f547df5218527fd0653afb1947bf7fead5b3ce58c75d170b30f7" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", + "jsonwebtoken 9.3.0", + "rand", + "serde", + "thiserror", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-serde" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", +] + +[[package]] +name = "alloy-signer-local" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-signer", + "async-trait", + "k256", + "rand", + "thiserror", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +dependencies = [ + "alloy-json-abi", + "alloy-sol-macro-input", + "const-hex", + "heck 0.5.0", + "indexmap 2.3.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +dependencies = [ + "alloy-json-abi", + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.72", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +dependencies = [ + "serde", + "winnow 0.6.18", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-transport" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" +dependencies = [ + "alloy-json-rpc", + "base64 0.22.1", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-http" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "reqwest 0.12.5", + "serde_json", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-ipc" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804494366e20468776db4e18f9eb5db7db0fe14f1271eb6dbf155d867233405c" +dependencies = [ + "alloy-json-rpc", + "alloy-pubsub", + "alloy-transport", + "bytes", + "futures", + "interprocess", + "pin-project", + "serde_json", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "alloy-transport-ws" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af855163e7df008799941aa6dd324a43ef2bf264b08ba4b22d44aad6ced65300" +dependencies = [ + "alloy-pubsub", + "alloy-transport", + "futures", + "http 1.1.0", + "rustls 0.23.12", + "serde_json", + "tokio", + "tokio-tungstenite 0.23.1", + "tracing", + "ws_stream_wasm", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "ark-ec" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rayon", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "hashbrown 0.11.2", + "rayon", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-serialize-derive", + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", + "rayon", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "arrayref" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "async-trait" +version = "0.1.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.0", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "binprot" +version = "0.1.8" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "binprot_derive", + "byteorder", + "md5", +] + +[[package]] +name = "binprot_derive" +version = "0.1.7" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake3" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "c-kzg" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "serde", +] + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.6", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "contract_deployer" +version = "0.1.0" +dependencies = [ + "core", + "env_logger", + "ethers", + "kimchi", + "log", + "mina-curves", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "tokio", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core" +version = "0.1.0" +dependencies = [ + "aligned-sdk", + "alloy", + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "base64 0.22.1", + "dotenv", + "env_logger", + "ethers", + "graphql_client", + "hex", + "kimchi", + "log", + "mina-curves", + "mina-p2p-messages", + "mina-tree", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "poly-commitment", + "reqwest 0.11.27", + "rmp-serde", + "rpassword", + "serde", + "serde_json", + "tokio", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.72", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn 2.0.72", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "disjoint-set" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" + +[[package]] +name = "doctest-file" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" + +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256", + "log", + "rand", + "rlp", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "env_filter" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "reqwest 0.11.27", + "serde", + "serde_json", + "syn 2.0.72", + "toml 0.8.19", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.72", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum", + "once_cell", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum 0.26.3", + "syn 2.0.72", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "chrono", + "ethers-core", + "ethers-solc", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.22.1", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-channel", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http 0.2.12", + "instant", + "jsonwebtoken 8.3.0", + "once_cell", + "pin-project", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite 0.20.1", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "cfg-if", + "const-hex", + "dirs", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver 1.0.23", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "graphql-introspection-query" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" +dependencies = [ + "serde", +] + +[[package]] +name = "graphql-parser" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" +dependencies = [ + "combine", + "thiserror", +] + +[[package]] +name = "graphql_client" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b" +dependencies = [ + "graphql_query_derive", + "reqwest 0.11.27", + "serde", + "serde_json", +] + +[[package]] +name = "graphql_client_codegen" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e27ed0c2cf0c0cc52c6bcf3b45c907f433015e580879d14005386251842fb0a" +dependencies = [ + "graphql-introspection-query", + "graphql-parser", + "heck 0.4.1", + "lazy_static", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 1.0.109", +] + +[[package]] +name = "graphql_query_derive" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97" +dependencies = [ + "graphql_client_codegen", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "groupmap" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "rand", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.3.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.0", + "serde", + "spin 0.9.8", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.30", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.30", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "interprocess" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f4e4a06d42fab3e85ab1b419ad32b09eab58b901d40c57935ff92db3287a13" +dependencies = [ + "doctest-file", + "futures-core", + "libc", + "recvmsg", + "tokio", + "widestring", + "windows-sys 0.52.0", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem 1.1.1", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "jsonwebtoken" +version = "9.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +dependencies = [ + "base64 0.21.7", + "js-sys", + "pem 3.0.4", + "ring 0.17.8", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keccak-asm" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "kimchi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "blake2", + "disjoint-set", + "groupmap", + "hex", + "itertools 0.10.5", + "mina-curves", + "mina-poseidon", + "num-bigint", + "num-derive", + "num-integer", + "num-traits", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "poly-commitment", + "rand", + "rand_core", + "rayon", + "rmp-serde", + "serde", + "serde_with 1.14.0", + "strum 0.24.1", + "strum_macros 0.24.3", + "thiserror", + "turshi", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "lambdaworks-crypto" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fb5d4f22241504f7c7b8d2c3a7d7835d7c07117f10bff2a7d96a9ef6ef217c3" +dependencies = [ + "lambdaworks-math", + "serde", + "sha2 0.10.8", + "sha3", +] + +[[package]] +name = "lambdaworks-math" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "linkme" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mina-curves" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", +] + +[[package]] +name = "mina-hasher" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff 0.3.0", + "bitvec", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "serde", +] + +[[package]] +name = "mina-p2p-messages" +version = "0.6.4" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff 0.3.0", + "base64 0.13.1", + "binprot", + "binprot_derive", + "blake2", + "bs58 0.4.0", + "derive_more", + "hex", + "mina-curves", + "mina-hasher", + "mina-poseidon", + "mina-signer", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rsexp", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "time", +] + +[[package]] +name = "mina-poseidon" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "mina-curves", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rayon", + "serde", + "serde_with 1.14.0", +] + +[[package]] +name = "mina-signer" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "bitvec", + "blake2", + "bs58 0.4.0", + "hex", + "mina-curves", + "mina-hasher", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "mina-tree" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "anyhow", + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "backtrace", + "base64 0.13.1", + "bitvec", + "blake2", + "bs58 0.4.0", + "chrono", + "crc32fast", + "derive_more", + "getrandom", + "hex", + "itertools 0.10.5", + "kimchi", + "lazy_static", + "libc", + "mina-curves", + "mina-hasher", + "mina-p2p-messages", + "mina-poseidon", + "mina-signer", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "openmina-core", + "poly-commitment", + "postcard", + "rand", + "rand_pcg", + "rand_seeder", + "rayon", + "serde", + "serde_json", + "serde_with 3.9.0", + "sha2 0.10.8", + "static_assertions", + "thiserror", + "tuple-map", + "uuid 1.10.0", + "wasm-bindgen", + "wasm_thread", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.8", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand", + "serde", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 3.9.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "object" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openmina-core" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff 0.3.0", + "binprot", + "binprot_derive", + "hex", + "lazy_static", + "md5", + "mina-hasher", + "mina-p2p-messages", + "multihash", + "openmina-macros", + "redux", + "serde", + "sha2 0.10.8", + "slab", + "time", + "tokio", + "tracing", +] + +[[package]] +name = "openmina-macros" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.3", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +dependencies = [ + "base64 0.22.1", + "serde", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.3.0", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "poly-commitment" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "blake2", + "groupmap", + "itertools 0.10.5", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "thiserror", +] + +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn 2.0.72", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.6.0", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_seeder" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "recvmsg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "redux" +version = "0.1.0" +source = "git+https://github.com/openmina/redux-rs.git?rev=2d1d8db#2d1d8dbd7239c0aec91db8f11126b90068dc848b" +dependencies = [ + "enum_dispatch", + "linkme", + "paste", + "serde", + "wasm-timer", +] + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "hyper-rustls", + "hyper-tls 0.5.0", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 0.25.4", + "winreg 0.50.0", +] + +[[package]] +name = "reqwest" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-tls 0.6.0", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile 2.1.3", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.52.0", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rpassword" +version = "7.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +dependencies = [ + "libc", + "rtoolbox", + "windows-sys 0.48.0", +] + +[[package]] +name = "rsexp" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3df9a9b6491d42c0fc527e92a87525c17e45c6b9c22345702a6dc0400320bf1" + +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "once_cell", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.6", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_json" +version = "1.0.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.3.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros 3.9.0", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3-asm" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", + "serde", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.72", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs", + "fs2", + "hex", + "once_cell", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn-solidity" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.12", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite 0.20.1", + "webpki-roots 0.25.4", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +dependencies = [ + "futures-util", + "log", + "native-tls", + "rustls 0.23.12", + "rustls-pki-types", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.26.0", + "tungstenite 0.23.0", + "webpki-roots 0.26.3", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.20", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.3.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap 2.3.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.18", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "native-tls", + "rand", + "rustls 0.23.12", + "rustls-pki-types", + "sha1", + "thiserror", + "utf-8", +] + +[[package]] +name = "tuple-map" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62" + +[[package]] +name = "turshi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff 0.3.0", + "hex", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +dependencies = [ + "getrandom", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "git+https://github.com/fusetim/wasm-timer?branch=tim-add-missing-methods#39e1c2818944f804d68d64dae0d5639d22b0e59e" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm_thread" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52fc987e67957cab58160d1ea273a2886972ef6f59c7fa0c02e9fe2c8e11706" +dependencies = [ + "async-channel", + "futures", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "webpki-roots" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.0", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml new file mode 100644 index 00000000..6dd3d664 --- /dev/null +++ b/contract_deployer/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "contract_deployer" +version = "0.1.0" +edition = "2021" + +[dependencies] +core = { path = "../core/" } +tokio = "1.39.1" +env_logger = "0.11.5" +log = "0.4.22" +ethers = { tag = "v2.0.15-fix-reconnections", features = [ + "ws", + "rustls", + "solc", +], git = "https://github.com/yetanotherco/ethers-rs.git" } +mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } +kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } + +[patch.crates-io] +ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-ec = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-poly = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-serialize = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs new file mode 100644 index 00000000..348ed803 --- /dev/null +++ b/contract_deployer/src/main.rs @@ -0,0 +1,56 @@ +use core::{ + mina_polling_service::query_root, + smart_contract_utility::{deploy_mina_bridge_contract, MinaBridgeConstructorArgs}, + utils::{constants::ALIGNED_SM_DEVNET_ETH_ADDR, env::EnvironmentVariables}, +}; +use std::{process, str::FromStr}; + +use kimchi::turshi::helper::CairoFieldHelpers; +use log::{debug, error, info}; +use mina_curves::pasta::Fp; +use o1_utils::FieldHelpers; + +const BRIDGE_TRANSITION_FRONTIER_LEN: usize = 11; + +#[tokio::main] +async fn main() { + env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); + + debug!("Reading env. variables"); + let EnvironmentVariables { + rpc_url, + eth_rpc_url, + .. + } = EnvironmentVariables::new().unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let root_hash = query_root(&rpc_url, BRIDGE_TRANSITION_FRONTIER_LEN) + .await + .and_then(|dec| { + let hash_fp = + Fp::from_str(&dec).map_err(|_| "Failed to decode root hash".to_string())?; + info!("Queried root state hash 0x{}", hash_fp.to_hex_be()); + Ok(hash_fp) + }) + .map(|fp| fp.to_bytes()) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let contract_constructor_args = + MinaBridgeConstructorArgs::new(ALIGNED_SM_DEVNET_ETH_ADDR, root_hash).unwrap_or_else( + |err| { + error!("{}", err); + process::exit(1); + }, + ); + deploy_mina_bridge_contract(ð_rpc_url, contract_constructor_args) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); +} diff --git a/core/Cargo.lock b/core/Cargo.lock index c0207b97..6dacea5b 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -49,33 +49,594 @@ dependencies = [ "version_check", ] +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy 0.7.35", +] + [[package]] name = "aho-corasick" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aligned-sdk" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#e0e42d2543823482336b2f35d9e3392adb1eed5a" +dependencies = [ + "ethers", + "futures-util", + "hex", + "lambdaworks-crypto", + "log", + "serde", + "serde_json", + "sha3", + "tokio", + "tokio-tungstenite 0.23.1", + "url", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", +] + +[[package]] +name = "alloy-chains" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3312b2a48f29abe7c3ea7c7fbc1f8cc6ea09b85d74b6232e940df35f2f3826fd" +dependencies = [ + "num_enum", + "strum 0.26.3", +] + +[[package]] +name = "alloy-consensus" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "serde", +] + +[[package]] +name = "alloy-contract" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4e0ef72b0876ae3068b2ed7dfae9ae1779ce13cfaec2ee1f08f5bd0348dc57" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "futures", + "futures-util", + "thiserror", +] + +[[package]] +name = "alloy-core" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "const-hex", + "itoa", + "serde", + "serde_json", + "winnow 0.6.18", +] + +[[package]] +name = "alloy-eips" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "derive_more", + "k256", + "once_cell", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "alloy-genesis" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-json-abi" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-rpc" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-primitives" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-provider" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "pin-project", + "reqwest 0.12.5", + "serde", + "serde_json", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "alloy-pubsub" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f5da2c55cbaf229bad3c5f8b00b5ab66c74ef093e5f3a753d874cfecf7d2281" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-transport", + "bimap", + "futures", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +dependencies = [ + "alloy-rlp-derive", + "arrayvec", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-pubsub", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "futures", + "pin-project", + "reqwest 0.12.5", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-rpc-types" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c31a3750b8f5a350d17354e46a52b0f2f19ec5f2006d816935af599dedc521" +dependencies = [ + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-rpc-types-engine" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff63f51b2fb2f547df5218527fd0653afb1947bf7fead5b3ce58c75d170b30f7" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", + "jsonwebtoken 9.3.0", + "rand", + "serde", + "thiserror", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-serde" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", +] + +[[package]] +name = "alloy-signer-local" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-signer", + "async-trait", + "k256", + "rand", + "thiserror", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +dependencies = [ + "alloy-json-abi", + "alloy-sol-macro-input", + "const-hex", + "heck 0.5.0", + "indexmap 2.3.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +dependencies = [ + "alloy-json-abi", + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.72", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" dependencies = [ - "memchr", + "serde", + "winnow 0.6.18", ] [[package]] -name = "aligned-sdk" -version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#e0e42d2543823482336b2f35d9e3392adb1eed5a" +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" dependencies = [ - "ethers", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-transport" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" +dependencies = [ + "alloy-json-rpc", + "base64 0.22.1", "futures-util", - "hex", - "lambdaworks-crypto", - "log", + "futures-utils-wasm", "serde", "serde_json", - "sha3", + "thiserror", "tokio", - "tokio-tungstenite 0.23.1", + "tower", + "tracing", "url", ] +[[package]] +name = "alloy-transport-http" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "reqwest 0.12.5", + "serde_json", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-ipc" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804494366e20468776db4e18f9eb5db7db0fe14f1271eb6dbf155d867233405c" +dependencies = [ + "alloy-json-rpc", + "alloy-pubsub", + "alloy-transport", + "bytes", + "futures", + "interprocess", + "pin-project", + "serde_json", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "alloy-transport-ws" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af855163e7df008799941aa6dd324a43ef2bf264b08ba4b22d44aad6ced65300" +dependencies = [ + "alloy-pubsub", + "alloy-transport", + "futures", + "http 1.1.0", + "rustls 0.23.12", + "serde_json", + "tokio", + "tokio-tungstenite 0.23.1", + "tracing", + "ws_stream_wasm", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -151,9 +712,9 @@ name = "ark-ec" version = "0.3.0" source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", "derivative", "num-traits", "rayon", @@ -165,10 +726,10 @@ name = "ark-ff" version = "0.3.0" source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", "derivative", "num-bigint", "num-traits", @@ -178,6 +739,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.3.0" @@ -187,6 +768,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-ff-macros" version = "0.3.0" @@ -198,14 +789,27 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-poly" version = "0.3.0" source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", "derivative", "hashbrown 0.11.2", "rayon", @@ -217,10 +821,21 @@ version = "0.3.0" source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" dependencies = [ "ark-serialize-derive", - "ark-std", + "ark-std 0.3.0", "digest 0.9.0", ] +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + [[package]] name = "ark-serialize-derive" version = "0.3.0" @@ -242,6 +857,16 @@ dependencies = [ "rayon", ] +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + [[package]] name = "arrayref" version = "0.3.8" @@ -280,6 +905,28 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "async-trait" version = "0.1.81" @@ -389,6 +1036,12 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + [[package]] name = "binprot" version = "0.1.8" @@ -509,6 +1162,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + [[package]] name = "bs58" version = "0.4.0" @@ -576,6 +1241,20 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "c-kzg" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "serde", +] + [[package]] name = "camino" version = "1.1.7" @@ -777,10 +1456,11 @@ name = "core" version = "0.1.0" dependencies = [ "aligned-sdk", + "alloy", "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "base64 0.22.1", "dotenv", "env_logger", @@ -795,7 +1475,7 @@ dependencies = [ "num-bigint", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", "poly-commitment", - "reqwest", + "reqwest 0.11.27", "rmp-serde", "rpassword", "serde", @@ -984,6 +1664,19 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + [[package]] name = "data-encoding" version = "2.6.0" @@ -1103,6 +1796,12 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" +[[package]] +name = "doctest-file" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" + [[package]] name = "dotenv" version = "0.15.0" @@ -1376,7 +2075,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "reqwest", + "reqwest 0.11.27", "serde", "serde_json", "syn 2.0.72", @@ -1435,7 +2134,8 @@ source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reco dependencies = [ "chrono", "ethers-core", - "reqwest", + "ethers-solc", + "reqwest 0.11.27", "semver 1.0.23", "serde", "serde_json", @@ -1459,7 +2159,7 @@ dependencies = [ "futures-locks", "futures-util", "instant", - "reqwest", + "reqwest 0.11.27", "serde", "serde_json", "thiserror", @@ -1488,10 +2188,10 @@ dependencies = [ "hashers", "http 0.2.12", "instant", - "jsonwebtoken", + "jsonwebtoken 8.3.0", "once_cell", "pin-project", - "reqwest", + "reqwest 0.11.27", "serde", "serde_json", "thiserror", @@ -1577,6 +2277,17 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + [[package]] name = "ff" version = "0.13.0" @@ -1770,6 +2481,12 @@ dependencies = [ "slab", ] +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + [[package]] name = "fxhash" version = "0.2.1" @@ -1853,7 +2570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b" dependencies = [ "graphql_query_derive", - "reqwest", + "reqwest 0.11.27", "serde", "serde_json", ] @@ -1903,7 +2620,7 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "rand", ] @@ -1941,7 +2658,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ - "ahash", + "ahash 0.7.8", ] [[package]] @@ -1955,6 +2672,10 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] [[package]] name = "hashers" @@ -2006,6 +2727,12 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + [[package]] name = "hmac" version = "0.12.1" @@ -2057,6 +2784,29 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + [[package]] name = "httparse" version = "1.9.4" @@ -2087,7 +2837,7 @@ dependencies = [ "futures-util", "h2", "http 0.2.12", - "http-body", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -2099,6 +2849,25 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + [[package]] name = "hyper-rustls" version = "0.24.2" @@ -2107,10 +2876,10 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.12", - "hyper", - "rustls", + "hyper 0.14.30", + "rustls 0.21.12", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -2120,10 +2889,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper", + "hyper 0.14.30", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.4.1", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -2249,6 +3054,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "interprocess" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f4e4a06d42fab3e85ab1b419ad32b09eab58b901d40c57935ff92db3287a13" +dependencies = [ + "doctest-file", + "futures-core", + "libc", + "recvmsg", + "tokio", + "widestring", + "windows-sys 0.52.0", +] + [[package]] name = "ipnet" version = "2.9.0" @@ -2279,6 +3099,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -2310,13 +3139,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.7", - "pem", + "pem 1.1.1", "ring 0.16.20", "serde", "serde_json", "simple_asn1", ] +[[package]] +name = "jsonwebtoken" +version = "9.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +dependencies = [ + "base64 0.21.7", + "js-sys", + "pem 3.0.4", + "ring 0.17.8", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "k256" version = "0.13.3" @@ -2340,15 +3184,25 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "keccak-asm" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + [[package]] name = "kimchi" version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "blake2", "disjoint-set", "groupmap", @@ -2497,6 +3351,15 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "lru" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +dependencies = [ + "hashbrown 0.14.5", +] + [[package]] name = "md-5" version = "0.10.6" @@ -2531,7 +3394,7 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", ] [[package]] @@ -2539,7 +3402,7 @@ name = "mina-hasher" version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ - "ark-ff", + "ark-ff 0.3.0", "bitvec", "mina-curves", "mina-poseidon", @@ -2552,7 +3415,7 @@ name = "mina-p2p-messages" version = "0.6.4" source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" dependencies = [ - "ark-ff", + "ark-ff 0.3.0", "base64 0.13.1", "binprot", "binprot_derive", @@ -2579,7 +3442,7 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", "mina-curves", "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", @@ -2596,7 +3459,7 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "bitvec", "blake2", "bs58 0.4.0", @@ -2616,9 +3479,9 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "anyhow", "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "backtrace", "base64 0.13.1", "bitvec", @@ -2820,9 +3683,9 @@ version = "0.1.0" source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "bcs", "hex", "num-bigint", @@ -2843,9 +3706,9 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "bcs", "hex", "num-bigint", @@ -2911,7 +3774,7 @@ name = "openmina-core" version = "0.6.0" source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" dependencies = [ - "ark-ff", + "ark-ff 0.3.0", "binprot", "binprot_derive", "hex", @@ -3118,6 +3981,16 @@ dependencies = [ "base64 0.13.1", ] +[[package]] +name = "pem" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +dependencies = [ + "base64 0.22.1", + "serde", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -3260,9 +4133,9 @@ version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ "ark-ec", - "ark-ff", + "ark-ff 0.3.0", "ark-poly", - "ark-serialize", + "ark-serialize 0.3.0", "blake2", "groupmap", "itertools 0.10.5", @@ -3302,7 +4175,7 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" dependencies = [ - "zerocopy", + "zerocopy 0.6.6", ] [[package]] @@ -3393,6 +4266,8 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ + "bit-set", + "bit-vec", "bitflags 2.6.0", "lazy_static", "num-traits", @@ -3400,9 +4275,17 @@ dependencies = [ "rand_chacha", "rand_xorshift", "regex-syntax", + "rusty-fork", + "tempfile", "unarray", ] +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quote" version = "1.0.36" @@ -3495,6 +4378,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "recvmsg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" + [[package]] name = "redox_syscall" version = "0.2.16" @@ -3578,10 +4467,10 @@ dependencies = [ "futures-util", "h2", "http 0.2.12", - "http-body", - "hyper", + "http-body 0.4.6", + "hyper 0.14.30", "hyper-rustls", - "hyper-tls", + "hyper-tls 0.5.0", "ipnet", "js-sys", "log", @@ -3590,23 +4479,62 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", - "rustls-pemfile", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 0.25.4", + "winreg 0.50.0", +] + +[[package]] +name = "reqwest" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-tls 0.6.0", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile 2.1.3", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tokio-native-tls", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", - "winreg", + "winreg 0.52.0", ] [[package]] @@ -3729,6 +4657,36 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -3780,10 +4738,24 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring 0.17.8", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "once_cell", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.6", + "subtle", + "zeroize", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -3793,6 +4765,22 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3803,12 +4791,35 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + [[package]] name = "ryu" version = "1.0.18" @@ -4120,6 +5131,16 @@ dependencies = [ "keccak", ] +[[package]] +name = "sha3-asm" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +dependencies = [ + "cc", + "cfg-if", +] + [[package]] name = "signature" version = "2.2.0" @@ -4307,7 +5328,7 @@ dependencies = [ "fs2", "hex", "once_cell", - "reqwest", + "reqwest 0.11.27", "semver 1.0.23", "serde", "serde_json", @@ -4339,12 +5360,30 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn-solidity" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "sync_wrapper" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + [[package]] name = "synstructure" version = "0.12.6" @@ -4427,6 +5466,15 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" version = "0.3.36" @@ -4525,8 +5573,31 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.12", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", "tokio", + "tokio-util", ] [[package]] @@ -4537,11 +5608,11 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.21.12", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tungstenite 0.20.1", - "webpki-roots", + "webpki-roots 0.25.4", ] [[package]] @@ -4553,9 +5624,13 @@ dependencies = [ "futures-util", "log", "native-tls", + "rustls 0.23.12", + "rustls-pki-types", "tokio", "tokio-native-tls", + "tokio-rustls 0.26.0", "tungstenite 0.23.0", + "webpki-roots 0.26.3", ] [[package]] @@ -4625,6 +5700,28 @@ dependencies = [ "winnow 0.6.18", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -4637,6 +5734,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -4691,7 +5789,7 @@ dependencies = [ "httparse", "log", "rand", - "rustls", + "rustls 0.21.12", "sha1", "thiserror", "url", @@ -4712,6 +5810,8 @@ dependencies = [ "log", "native-tls", "rand", + "rustls 0.23.12", + "rustls-pki-types", "sha1", "thiserror", "utf-8", @@ -4728,7 +5828,7 @@ name = "turshi" version = "0.1.0" source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" dependencies = [ - "ark-ff", + "ark-ff 0.3.0", "hex", "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", ] @@ -4859,6 +5959,12 @@ dependencies = [ "getrandom", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" @@ -4877,6 +5983,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -5011,6 +6126,21 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +[[package]] +name = "webpki-roots" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + [[package]] name = "winapi" version = "0.3.9" @@ -5218,6 +6348,16 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -5259,7 +6399,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.6.6", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive 0.7.35", ] [[package]] @@ -5273,6 +6422,17 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "zeroize" version = "1.8.1" diff --git a/core/Cargo.toml b/core/Cargo.toml index e7b3ddfb..56aceb64 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -24,6 +24,7 @@ aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", + "solc", ], git = "https://github.com/yetanotherco/ethers-rs.git" } rpassword = "7.3.1" tokio = "1.39.1" @@ -31,7 +32,11 @@ dotenv = "0.15.0" env_logger = "0.11.5" log = "0.4.22" base64 = "0.22.1" -graphql_client = { version = "0.14.0", features = ["reqwest-blocking"] } +graphql_client = { version = "0.14.0", features = [ + "reqwest", + "reqwest-blocking", +] } +alloy = { version = "0.2.1", features = ["full"] } [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index ff762f2c..1f16d8f8 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"alignedServiceAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateTipState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516103fa3803806103fa83398101604081905261002f91610054565b600180546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610367806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e6100493660046101c6565b610065565b005b60005460405190815260200160405180910390f35b805160208201206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100a9908c9086908d908d908d908d908d90600401610275565b602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610308565b905080156100ff576020830151600055610118565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261014a57600080fd5b813567ffffffffffffffff8082111561016557610165610123565b604051601f8301601f19908116603f0116810190828211818310171561018d5761018d610123565b816040528381528660208588010111156101a657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156101e157600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461020c57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561023057600080fd5b61023c8b838c01610139565b945060a08a0135935060c08a013591508082111561025957600080fd5b506102668a828b01610139565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156102d157868101830151858201610100015282016102b4565b818111156102e457600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561031a57600080fd5b8151801515811461032a57600080fd5b939250505056fea264697066735822122003cfee096df438ffa2bdc8a20bcb7f44a2545483eff9138ead34c612bdd3697b64736f6c634300080c0033","sourceMap":"222:1431:63:-:0;;;465:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;515:7;:56;;-1:-1:-1;;;;;;515:56:63;-1:-1:-1;;;;;515:56:63;;;;;;;;;;222:1431;;14:290:65;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:65;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:65:o;:::-;222:1431:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e6100493660046101c6565b610065565b005b60005460405190815260200160405180910390f35b805160208201206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100a9908c9086908d908d908d908d908d90600401610275565b602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610308565b905080156100ff576020830151600055610118565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261014a57600080fd5b813567ffffffffffffffff8082111561016557610165610123565b604051601f8301601f19908116603f0116810190828211818310171561018d5761018d610123565b816040528381528660208588010111156101a657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156101e157600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461020c57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561023057600080fd5b61023c8b838c01610139565b945060a08a0135935060c08a013591508082111561025957600080fd5b506102668a828b01610139565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156102d157868101830151858201610100015282016102b4565b818111156102e457600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561031a57600080fd5b8151801515811461032a57600080fd5b939250505056fea264697066735822122003cfee096df438ffa2bdc8a20bcb7f44a2545483eff9138ead34c612bdd3697b64736f6c634300080c0033","sourceMap":"222:1431:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;685:966;;;;;;:::i;:::-;;:::i;:::-;;584:95;634:7;660:12;584:95;;2021:25:65;;;2009:2;1994:18;584:95:63;;;;;;;685:966;1022:19;;;;;;1078:7;;:269;;-1:-1:-1;;;1078:269:63;;993:26;;-1:-1:-1;;;;;1078:7:63;;:28;;:269;;1120:15;;1022:19;;1181:30;;1225:18;;1257:15;;1286:11;;1311:26;;1078:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1052:295;;1362:18;1358:287;;;1556:4;1546:8;1542:19;1536:26;1517:17;1510:53;1358:287;;;1614:20;;-1:-1:-1;;;1614:20:63;;;;;;;;;;;1358:287;983:668;;685:966;;;;;;;:::o;14:127:65:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:65;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:1001::-;1000:6;1008;1016;1024;1032;1040;1048;1101:3;1089:9;1080:7;1076:23;1072:33;1069:53;;;1118:1;1115;1108:12;1069:53;1141:23;;;-1:-1:-1;1211:2:65;1196:18;;1183:32;;-1:-1:-1;1265:2:65;1250:18;;1237:32;-1:-1:-1;;1298:43:65;;1288:54;;1278:82;;1356:1;1353;1346:12;1278:82;1379:5;-1:-1:-1;1431:2:65;1416:18;;1403:32;;-1:-1:-1;1486:3:65;1471:19;;1458:33;1510:18;1540:14;;;1537:34;;;1567:1;1564;1557:12;1537:34;1590:49;1631:7;1622:6;1611:9;1607:22;1590:49;:::i;:::-;1580:59;;1686:3;1675:9;1671:19;1658:33;1648:43;;1744:3;1733:9;1729:19;1716:33;1700:49;;1774:2;1764:8;1761:16;1758:36;;;1790:1;1787;1780:12;1758:36;;1813:51;1856:7;1845:8;1834:9;1830:24;1813:51;:::i;:::-;1803:61;;;869:1001;;;;;;;;;;:::o;2057:1067::-;2372:6;2361:9;2354:25;2335:4;2398:2;2436:6;2431:2;2420:9;2416:18;2409:34;2479:6;2474:2;2463:9;2459:18;2452:34;2538:26;2534:31;2526:6;2522:44;2517:2;2506:9;2502:18;2495:72;2604:6;2598:3;2587:9;2583:19;2576:35;2648:3;2642;2631:9;2627:19;2620:32;2681:6;2675:13;2725:6;2719:3;2708:9;2704:19;2697:35;2750:1;2760:141;2774:6;2771:1;2768:13;2760:141;;;2870:14;;;2866:23;;2860:30;2835:17;;;2854:3;2831:27;2824:67;2789:10;;2760:141;;;2919:6;2916:1;2913:13;2910:92;;;2990:1;2984:3;2975:6;2964:9;2960:22;2956:32;2949:43;2910:92;-1:-1:-1;3105:3:65;3090:19;;3083:35;;;;-1:-1:-1;;3063:2:65;3042:15;;;;-1:-1:-1;;3038:29:65;3023:45;3070:3;3019:55;;2057:1067;-1:-1:-1;;;;;;2057:1067:65:o;3129:277::-;3196:6;3249:2;3237:9;3228:7;3224:23;3220:32;3217:52;;;3265:1;3262;3255:12;3217:52;3297:9;3291:16;3350:5;3343:13;3336:21;3329:5;3326:32;3316:60;;3372:1;3369;3362:12;3316:60;3395:5;3129:277;-1:-1:-1;;;3129:277:65:o","linkReferences":{}},"methodIdentifiers":{"getTipStateHash()":"b8184745","updateTipState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"afa264c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateTipState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xc3b83018ecc1b0d555872aa9cb383f5e73d3a3736c8b9688c85c8296484bf670\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5028fbb9ed205d39bdef6e56c4b28a25e52786e9e84c596daa201291099e556b\",\"dweb:/ipfs/QmWcfTtokrRM5sM1QUEnPm6XHPtFBYAhtgTYeEFVTjRKMM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateTipState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0xc3b83018ecc1b0d555872aa9cb383f5e73d3a3736c8b9688c85c8296484bf670","urls":["bzz-raw://5028fbb9ed205d39bdef6e56c4b28a25e52786e9e84c596daa201291099e556b","dweb:/ipfs/QmWcfTtokrRM5sM1QUEnPm6XHPtFBYAhtgTYeEFVTjRKMM"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_rootStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateTipState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161045038038061045083398101604081905261002f91610058565b600280546001600160a01b0319166001600160a01b039390931692909217909155600155610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b6103af806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e61004936600461020e565b61006a565b005b610058610154565b60405190815260200160405180910390f35b600060408201518152600054811461009557604051631b675ff960e11b815260040160405180910390fd5b815160208301206002546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100d9908d9086908e908e908e908e908e906004016102bd565b602060405180830381865afa1580156100f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011a9190610350565b9050801561012f576020840151600055610148565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000805415610164575060005490565b5060015490565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261019257600080fd5b813567ffffffffffffffff808211156101ad576101ad61016b565b604051601f8301601f19908116603f011681019082821181831017156101d5576101d561016b565b816040528381528660208588010111156101ee57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561022957600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461025457600080fd5b945060608801359350608088013567ffffffffffffffff8082111561027857600080fd5b6102848b838c01610181565b945060a08a0135935060c08a01359150808211156102a157600080fd5b506102ae8a828b01610181565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561031957868101830151858201610100015282016102fc565b8181111561032c57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561036257600080fd5b8151801515811461037257600080fd5b939250505056fea26469706673582212200cd80e4dec5f286ee4a940e5f60f45ea8db3f6df61037c719e23564cc57a917e64736f6c634300080c0033","sourceMap":"247:2001:63:-:0;;;572:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;647:7;:57;;-1:-1:-1;;;;;;647:57:63;-1:-1:-1;;;;;647:57:63;;;;;;;;;;;-1:-1:-1;714:30:63;247:2001;;14:351:65;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:65;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:65:o;:::-;247:2001:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e61004936600461020e565b61006a565b005b610058610154565b60405190815260200160405180910390f35b600060408201518152600054811461009557604051631b675ff960e11b815260040160405180910390fd5b815160208301206002546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100d9908d9086908e908e908e908e908e906004016102bd565b602060405180830381865afa1580156100f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011a9190610350565b9050801561012f576020840151600055610148565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000805415610164575060005490565b5060015490565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261019257600080fd5b813567ffffffffffffffff808211156101ad576101ad61016b565b604051601f8301601f19908116603f011681019082821181831017156101d5576101d561016b565b816040528381528660208588010111156101ee57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561022957600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461025457600080fd5b945060608801359350608088013567ffffffffffffffff8082111561027857600080fd5b6102848b838c01610181565b945060a08a0135935060c08a01359150808211156102a157600080fd5b506102ae8a828b01610181565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561031957868101830151858201610100015282016102fc565b8181111561032c57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561036257600080fd5b8151801515811461037257600080fd5b939250505056fea26469706673582212200cd80e4dec5f286ee4a940e5f60f45ea8db3f6df61037c719e23564cc57a917e64736f6c634300080c0033","sourceMap":"247:2001:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1042:1204;;;;;;:::i;:::-;;:::i;:::-;;843:193;;;:::i;:::-;;;2021:25:65;;;2009:2;1994:18;843:193:63;;;;;;;1042:1204;1350:28;1460:4;1450:8;1446:19;1440:26;1418:20;1411:56;1515:12;;1491:20;:36;1487:91;;1550:17;;-1:-1:-1;;;1550:17:63;;;;;;;;;;;1487:91;1617:19;;;;;;1673:7;;:269;;-1:-1:-1;;;1673:269:63;;1588:26;;-1:-1:-1;;;;;1673:7:63;;:28;;:269;;1715:15;;1617:19;;1776:30;;1820:18;;1852:15;;1881:11;;1906:26;;1673:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1647:295;;1957:18;1953:287;;;2151:4;2141:8;2137:19;2131:26;2112:17;2105:53;1953:287;;;2209:20;;-1:-1:-1;;;2209:20:63;;;;;;;;;;;1953:287;1340:906;;;1042:1204;;;;;;;:::o;843:193::-;893:7;916:12;;:17;912:118;;-1:-1:-1;956:12:63;;;843:193::o;912:118::-;-1:-1:-1;1006:13:63;;;843:193::o;14:127:65:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:65;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:1001::-;1000:6;1008;1016;1024;1032;1040;1048;1101:3;1089:9;1080:7;1076:23;1072:33;1069:53;;;1118:1;1115;1108:12;1069:53;1141:23;;;-1:-1:-1;1211:2:65;1196:18;;1183:32;;-1:-1:-1;1265:2:65;1250:18;;1237:32;-1:-1:-1;;1298:43:65;;1288:54;;1278:82;;1356:1;1353;1346:12;1278:82;1379:5;-1:-1:-1;1431:2:65;1416:18;;1403:32;;-1:-1:-1;1486:3:65;1471:19;;1458:33;1510:18;1540:14;;;1537:34;;;1567:1;1564;1557:12;1537:34;1590:49;1631:7;1622:6;1611:9;1607:22;1590:49;:::i;:::-;1580:59;;1686:3;1675:9;1671:19;1658:33;1648:43;;1744:3;1733:9;1729:19;1716:33;1700:49;;1774:2;1764:8;1761:16;1758:36;;;1790:1;1787;1780:12;1758:36;;1813:51;1856:7;1845:8;1834:9;1830:24;1813:51;:::i;:::-;1803:61;;;869:1001;;;;;;;;;;:::o;2057:1067::-;2372:6;2361:9;2354:25;2335:4;2398:2;2436:6;2431:2;2420:9;2416:18;2409:34;2479:6;2474:2;2463:9;2459:18;2452:34;2538:26;2534:31;2526:6;2522:44;2517:2;2506:9;2502:18;2495:72;2604:6;2598:3;2587:9;2583:19;2576:35;2648:3;2642;2631:9;2627:19;2620:32;2681:6;2675:13;2725:6;2719:3;2708:9;2704:19;2697:35;2750:1;2760:141;2774:6;2771:1;2768:13;2760:141;;;2870:14;;;2866:23;;2860:30;2835:17;;;2854:3;2831:27;2824:67;2789:10;;2760:141;;;2919:6;2916:1;2913:13;2910:92;;;2990:1;2984:3;2975:6;2964:9;2960:22;2956:32;2949:43;2910:92;-1:-1:-1;3105:3:65;3090:19;;3083:35;;;;-1:-1:-1;;3063:2:65;3042:15;;;;-1:-1:-1;;3038:29:65;3023:45;3070:3;3019:55;;2057:1067;-1:-1:-1;;;;;;2057:1067:65:o;3129:277::-;3196:6;3249:2;3237:9;3228:7;3224:23;3220:32;3217:52;;;3265:1;3262;3255:12;3217:52;3297:9;3291:16;3350:5;3343:13;3336:21;3329:5;3326:32;3316:60;;3372:1;3369;3362:12;3316:60;3395:5;3129:277;-1:-1:-1;;;3129:277:65:o","linkReferences":{}},"methodIdentifiers":{"getTipStateHash()":"b8184745","updateTipState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"afa264c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_rootStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateTipState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash, or the root state hash if none.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x06ece82a42040eb6f4ebc8562a9486b244b6ffa00efe34347a9e2f52c4781163\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e5a322c03a10509830ce35b965e816d216a2b6ed67b2613e1e56c79658bd5557\",\"dweb:/ipfs/QmbMuhpwgCzMi1YEfMV3gJZmRXCBDQk1JRjCLq1d8dF8ii\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_rootStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateTipState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getTipStateHash()":{"notice":"Returns the last verified state hash, or the root state hash if none."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0x06ece82a42040eb6f4ebc8562a9486b244b6ffa00efe34347a9e2f52c4781163","urls":["bzz-raw://e5a322c03a10509830ce35b965e816d216a2b6ed67b2613e1e56c79658bd5557","dweb:/ipfs/QmbMuhpwgCzMi1YEfMV3gJZmRXCBDQk1JRjCLq1d8dF8ii"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file diff --git a/core/src/graphql/candidate_query.graphql b/core/src/graphql/best_chain_query.graphql similarity index 52% rename from core/src/graphql/candidate_query.graphql rename to core/src/graphql/best_chain_query.graphql index 46940fae..4da98ab7 100644 --- a/core/src/graphql/candidate_query.graphql +++ b/core/src/graphql/best_chain_query.graphql @@ -1,5 +1,5 @@ -query CandidateQuery { - bestChain(maxLength: 1) { +query BestChainQuery($maxLength: Int!) { + bestChain(maxLength: $maxLength) { stateHashField protocolStateProof { base64 diff --git a/core/src/main.rs b/core/src/main.rs index 8ed2e98d..d9d10d29 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -20,6 +20,7 @@ async fn main() { proof_generator_addr, keystore_path, private_key, + save_proof, } = EnvironmentVariables::new().unwrap_or_else(|err| { error!("{}", err); process::exit(1); @@ -33,11 +34,35 @@ async fn main() { }); debug!("Executing Mina polling service"); - let mina_proof = mina_polling_service::query_and_serialize(&rpc_url, &proof_generator_addr) + let mina_proof = mina_polling_service::query_and_serialize( + &rpc_url, + &proof_generator_addr, + &chain, + ð_rpc_url, + ) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + if save_proof { + std::fs::write( + "./protocol_state.pub", + mina_proof.pub_input.as_ref().unwrap_or_else(|| { + error!("Tried to save public inputs to file but they're missing"); + process::exit(1); + }), + ) .unwrap_or_else(|err| { error!("{}", err); process::exit(1); }); + std::fs::write("./protocol_state.proof", &mina_proof.proof).unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + } debug!("Executing Aligned polling service"); let verification_data = aligned_polling_service::submit( diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index 45ffb83b..5915e605 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -1,17 +1,18 @@ use std::str::FromStr as _; -use aligned_sdk::core::types::{ProvingSystemId, VerificationData}; +use aligned_sdk::core::types::{Chain, ProvingSystemId, VerificationData}; use ethers::types::Address; -use graphql_client::{reqwest::post_graphql_blocking, GraphQLQuery}; +use graphql_client::{ + reqwest::{post_graphql, post_graphql_blocking}, + GraphQLQuery, +}; use kimchi::{o1_utils::FieldHelpers, turshi::helper::CairoFieldHelpers}; use log::{debug, info}; use mina_curves::pasta::Fp; use mina_p2p_messages::v2::StateHash; -use reqwest::blocking::Client; +use mina_tree::FpExt; -use crate::utils::constants::{ - MINA_STATE_HASH_SIZE, MINA_TIP_PROTOCOL_STATE, MINA_TIP_STATE_HASH_FIELD, -}; +use crate::{smart_contract_utility::get_tip_state_hash, utils::constants::MINA_STATE_HASH_SIZE}; type StateHashAsDecimal = String; type PrecomputedBlockProof = String; @@ -28,50 +29,57 @@ struct StateQuery; #[derive(GraphQLQuery)] #[graphql( schema_path = "src/graphql/mina_schema.json", - query_path = "src/graphql/candidate_query.graphql" + query_path = "src/graphql/best_chain_query.graphql" )] -/// A query for the latest protocol state hash field and proof. -struct CandidateQuery; +/// A query for the state hashes and proofs of the transition frontier. +struct BestChainQuery; -pub fn query_and_serialize( +pub async fn query_and_serialize( rpc_url: &str, proof_generator_addr: &str, + chain: &Chain, + eth_rpc_url: &str, ) -> Result { - let tip_state_hash_field = serialize_state_hash_field(MINA_TIP_STATE_HASH_FIELD) - .map_err(|err| format!("Error serializing tip's state hash field: {err}"))?; - let tip_protocol_state = serialize_protocol_state(MINA_TIP_PROTOCOL_STATE) - .map_err(|err| format!("Error serializing tip's protocol state: {err}"))?; - let tip_protocol_state_len = tip_protocol_state.len() as u32; - let mut tip_protocol_state_len_bytes = [0; 4]; - tip_protocol_state_len_bytes.copy_from_slice(&tip_protocol_state_len.to_be_bytes()); + let tip_hash = get_tip_state_hash(chain, eth_rpc_url).await?.to_decimal(); + let (candidate_hash, candidate_proof) = query_candidate(rpc_url)?; - let (candidate_hash, candidate_proof) = query_candidate(rpc_url, candidate_query::Variables)?; - let candidate_encoded_hash = encode_state_hash(&candidate_hash)?; // used for state query + if tip_hash == candidate_hash { + return Err("Candidate state is already verified".to_string()); + } - let candidate_hash = serialize_state_hash(&candidate_hash)?; - let candidate_proof = serialize_state_proof(&candidate_proof); + let tip_state = query_state( + rpc_url, + state_query::Variables { + state_hash: encode_state_hash(&tip_hash)?, + }, + )?; let candidate_state = query_state( rpc_url, state_query::Variables { - state_hash: candidate_encoded_hash, + state_hash: encode_state_hash(&candidate_hash)?, }, )?; - let candidate_state = serialize_state(candidate_state); - info!( "Queried Mina candidate state 0x{} and its proof from Mainnet node", - Fp::from_bytes(&candidate_hash) - .map_err(|err| err.to_string())? - .to_hex_be() + Fp::from_str(&candidate_hash) + .map_err(|_| "Failed to decode canddiate state hash".to_string()) + .map(|hash| hash.to_hex_be())? ); + let tip_hash = serialize_state_hash(&tip_hash)?; + let tip_state = serialize_state(tip_state); + + let candidate_hash = serialize_state_hash(&candidate_hash)?; + let candidate_state = serialize_state(candidate_state); + let candidate_proof = serialize_state_proof(&candidate_proof); + let mut pub_input = candidate_hash; + pub_input.extend(tip_hash); pub_input.extend((candidate_state.len() as u32).to_be_bytes()); pub_input.extend(candidate_state); - pub_input.extend(tip_state_hash_field); - pub_input.extend(tip_protocol_state_len_bytes); - pub_input.extend(tip_protocol_state); + pub_input.extend((tip_state.len() as u32).to_be_bytes()); + pub_input.extend(tip_state); let pub_input = Some(pub_input); @@ -92,7 +100,7 @@ pub fn query_state( variables: state_query::Variables, ) -> Result { debug!("Querying state {}", variables.state_hash); - let client = Client::new(); + let client = reqwest::blocking::Client::new(); let response = post_graphql_blocking::(&client, rpc_url, variables) .map_err(|err| err.to_string())? .data @@ -102,22 +110,20 @@ pub fn query_state( pub fn query_candidate( rpc_url: &str, - variables: candidate_query::Variables, -) -> Result<(PrecomputedBlockProof, StateHashAsDecimal), String> { +) -> Result<(StateHashAsDecimal, PrecomputedBlockProof), String> { debug!("Querying for candidate state"); - let client = Client::new(); - let response = post_graphql_blocking::(&client, rpc_url, variables) + let client = reqwest::blocking::Client::new(); + let variables = best_chain_query::Variables { max_length: 1 }; + let response = post_graphql_blocking::(&client, rpc_url, variables) .map_err(|err| err.to_string())? .data .ok_or("Missing candidate query response data".to_string())?; - let best_chains = response + let best_chain = response .best_chain .ok_or("Missing best chain field".to_string())?; - let best_chain = best_chains - .first() - .ok_or("Missing best chain".to_string())?; - let state_hash_field = best_chain.state_hash_field.clone(); - let protocol_state_proof = best_chain + let tip = best_chain.first().ok_or("Missing best chain".to_string())?; + let state_hash_field = tip.state_hash_field.clone(); + let protocol_state_proof = tip .protocol_state_proof .base64 .clone() @@ -126,12 +132,31 @@ pub fn query_candidate( Ok((state_hash_field, protocol_state_proof)) } +pub async fn query_root(rpc_url: &str, length: usize) -> Result { + let client = reqwest::Client::new(); + let variables = best_chain_query::Variables { + max_length: length as i64, + }; + let response = post_graphql::(&client, rpc_url, variables) + .await + .map_err(|err| err.to_string())? + .data + .ok_or("Missing root hash query response data".to_string())?; + let best_chain = response + .best_chain + .ok_or("Missing best chain field".to_string())?; + let root = best_chain.first().ok_or("No root state")?; + Ok(root.state_hash_field.clone()) +} + fn serialize_state_hash(hash: &StateHashAsDecimal) -> Result, String> { let bytes = Fp::from_str(hash) .map_err(|_| "Failed to decode hash as a field element".to_string())? .to_bytes(); - if bytes.len() != 32 { - return Err("Failed to encode hash as bytes: length is not exactly 32.".to_string()); + if bytes.len() != MINA_STATE_HASH_SIZE { + return Err(format!( + "Failed to encode hash as bytes: length is not exactly {MINA_STATE_HASH_SIZE}." + )); } Ok(bytes) } @@ -149,35 +174,3 @@ fn encode_state_hash(hash: &StateHashAsDecimal) -> Result { .map_err(|_| "Failed to decode hash as a field element".to_string()) .map(|fp| StateHash::from_fp(fp).to_string()) } - -fn serialize_state_hash_field(state_hash_field_str: &str) -> Result, String> { - let state_hash_field = Fp::from_str(state_hash_field_str).map_err(|_| { - format!( - "Error converting state hash to field: {:?}", - &state_hash_field_str - ) - })?; - let state_hash_field_bytes = state_hash_field.to_bytes(); - - debug_assert_eq!(state_hash_field_bytes.len(), MINA_STATE_HASH_SIZE); - - Ok(state_hash_field_bytes) -} - -fn serialize_protocol_state(protocol_state_str: &str) -> Result, String> { - let protocol_state_bytes = protocol_state_str.as_bytes().to_vec(); - - Ok(protocol_state_bytes) -} - -#[cfg(test)] -mod tests { - use crate::utils::constants::ANVIL_PROOF_GENERATOR_ADDR; - - use super::query_and_serialize; - - #[test] - fn serialize_and_deserialize() { - query_and_serialize("http://5.9.57.89:3085/graphql", ANVIL_PROOF_GENERATOR_ADDR).unwrap(); - } -} diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index 589c9718..1b5f7526 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -2,13 +2,17 @@ use std::str::FromStr; use std::sync::Arc; use aligned_sdk::core::types::{AlignedVerificationData, Chain, VerificationDataCommitment}; +use alloy::network::EthereumWallet; +use alloy::providers::ProviderBuilder; +use alloy::signers::local::PrivateKeySigner; +use alloy::sol; use ethers::{abi::AbiEncode, prelude::*}; use k256::ecdsa::SigningKey; use kimchi::o1_utils::FieldHelpers; use log::{debug, error, info}; use mina_curves::pasta::Fp; -use crate::utils::constants::{ANVIL_CHAIN_ID, BRIDGE_DEVNET_ETH_ADDR}; +use crate::utils::constants::{ANVIL_CHAIN_ID, ANVIL_PRIVATE_KEY, BRIDGE_DEVNET_ETH_ADDR}; abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); @@ -17,6 +21,35 @@ type MinaBridgeEthereum = type MinaBridgeEthereumCallOnly = MinaBridgeEthereumContract>; +sol!( + #[allow(clippy::too_many_arguments)] + #[sol(rpc)] + MinaBridge, + "abi/MinaBridge.json" +); + +pub struct MinaBridgeConstructorArgs { + aligned_service_addr: alloy::primitives::Address, + root_state_hash: alloy::primitives::FixedBytes<32>, +} + +impl MinaBridgeConstructorArgs { + pub fn new(aligned_service_addr: &str, root_state_hash: Vec) -> Result { + let aligned_service_addr = + alloy::primitives::Address::parse_checksummed(aligned_service_addr, None) + .map_err(|err| err.to_string())?; + let root_state_hash = alloy::primitives::FixedBytes( + root_state_hash + .try_into() + .map_err(|_| "Could not convert root state hash into fixed array".to_string())?, + ); + Ok(MinaBridgeConstructorArgs { + aligned_service_addr, + root_state_hash, + }) + } +} + pub async fn update( verification_data: AlignedVerificationData, pub_input: Vec, @@ -125,6 +158,40 @@ pub async fn get_tip_state_hash(chain: &Chain, eth_rpc_url: &str) -> Result Result { + // TODO(xqft): replace ethers with alloy + + // TODO(xqft): take wallet as parameter + let signer: PrivateKeySigner = ANVIL_PRIVATE_KEY + .parse() + .map_err(|_| "Failed to get Anvil signer".to_string())?; + let wallet = EthereumWallet::from(signer); + + let provider = ProviderBuilder::new() + .with_recommended_fillers() + .wallet(wallet) + .on_http(reqwest::Url::parse(eth_rpc_url).map_err(|err| err.to_string())?); + + let MinaBridgeConstructorArgs { + aligned_service_addr, + root_state_hash, + } = constructor_args; + let contract = MinaBridge::deploy(&provider, aligned_service_addr, root_state_hash) + .await + .map_err(|err| err.to_string())?; + let address = contract.address(); + + info!( + "Mina Bridge contract successfuly deployed with address {}", + address + ); + + Ok(*address) +} + fn mina_bridge_contract( eth_rpc_url: &str, contract_address: Address, diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index 3e31dc55..b713c8ce 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -16,3 +16,6 @@ pub const MINA_STATE_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; + +// Aligned related constants +pub const ALIGNED_SM_DEVNET_ETH_ADDR: &str = "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8"; diff --git a/core/src/utils/env.rs b/core/src/utils/env.rs index cce98ccd..683939bc 100644 --- a/core/src/utils/env.rs +++ b/core/src/utils/env.rs @@ -16,6 +16,7 @@ pub struct EnvironmentVariables { pub proof_generator_addr: String, pub keystore_path: Option, pub private_key: Option, + pub save_proof: bool, } fn load_var_or(key: &str, default: &str, chain: &Chain) -> Result { @@ -73,6 +74,9 @@ impl EnvironmentVariables { ); } + let save_proof = + matches!(std::env::var("SAVE_PROOF"), Ok(value) if value.to_lowercase() == "true"); + Ok(EnvironmentVariables { rpc_url, chain, @@ -82,6 +86,7 @@ impl EnvironmentVariables { proof_generator_addr, keystore_path, private_key, + save_proof, }) } } From 1302c3810316ea0f80bfc04f0c52f3f5e69ead60 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Fri, 9 Aug 2024 18:50:07 -0300 Subject: [PATCH 15/46] Update Aligned SDK (#314) --- core/Cargo.lock | 92 ++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 51 deletions(-) diff --git a/core/Cargo.lock b/core/Cargo.lock index 6dacea5b..3cd895cc 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -58,7 +58,7 @@ dependencies = [ "cfg-if", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#e0e42d2543823482336b2f35d9e3392adb1eed5a" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#db616f7670e7daa20786cf78d0bde91ffcb49381" dependencies = [ "ethers", "futures-util", @@ -121,9 +121,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.25" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3312b2a48f29abe7c3ea7c7fbc1f8cc6ea09b85d74b6232e940df35f2f3826fd" +checksum = "5b515e82c8468ddb6ff8db21c78a5997442f113fd8471fd5b2261b2602dd0c67" dependencies = [ "num_enum", "strum 0.26.3", @@ -1289,9 +1289,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" +checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549" dependencies = [ "jobserver", "libc", @@ -1810,9 +1810,9 @@ checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "ecdsa" @@ -2318,9 +2318,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" dependencies = [ "crc32fast", "miniz_oxide", @@ -3725,9 +3725,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.2" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -4171,11 +4171,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy 0.6.6", + "zerocopy", ] [[package]] @@ -4427,9 +4427,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -4983,18 +4983,18 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" dependencies = [ "proc-macro2", "quote", @@ -5425,14 +5425,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6159,11 +6160,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6199,6 +6200,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -6392,34 +6402,14 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" -[[package]] -name = "zerocopy" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" -dependencies = [ - "byteorder", - "zerocopy-derive 0.6.6", -] - [[package]] name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy-derive" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", + "byteorder", + "zerocopy-derive", ] [[package]] @@ -6494,9 +6484,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.12+zstd.1.5.6" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", From cce6341de5ae54a0fa312522d39821e395f53e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 13 Aug 2024 13:21:32 -0300 Subject: [PATCH 16/46] Update README.md (#313) * Update README.md * readme update * Update readme file * Update readme file Transition frontier * Small fixes * Update README.md * Format --------- Co-authored-by: Eduardo Veralli Co-authored-by: gabrielbosio --- README.md | 1098 +++++++++++++++++++++++++++-------------------------- 1 file changed, 559 insertions(+), 539 deletions(-) diff --git a/README.md b/README.md index 5e7cc352..9fdd5a82 100644 --- a/README.md +++ b/README.md @@ -1,539 +1,559 @@ -
- -# mina_bridge 🌉 - -## Zero-knowledge state bridge from Mina to Ethereum - -
- -## About - -This project introduces the verification of [Mina Protocol](https://minaprotocol.com/) states into a EVM chain, which will serve as a foundation for token bridging. - -This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State on Ethereum. - -## Usage -### Bridge -1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) -1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. -1. In the root folder, deploy the bridge's contract with: - - ```sh - make deploy_contract_anvil - ``` -1. Run the core program: - - ```sh - make - ``` -### Account inclusion local verifier -After verifying a Mina state, you can locally verify the inclusion of some Mina account given its public key in the bridged state. - -1. Run - - ```sh - make verify_account_inclusion PUBLIC_KEY= - ``` -# Specification - -## Core - -[`mina_bridge repo: core/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core) - -A Rust library+binary project that includes the next modules: - -### Mina Polling Service - -[`mina_bridge repo: core/src/mina_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina_polling_service.rs) - -This module queries a Mina node (defined by the user via the `MINA_RPC_URL` env. variable) GraphQL DB for the latest state data (called the candidate state) and proof. - -It also queries the Bridge’s smart contract for the last verified Mina state hash, called the **Bridge’s tip state** or just tip state (if there’s no tip state in the smart contract then it defaults to the hardcoded genesis hash instead) and queries the state corresponding to that hash to the Mina node. - -Then it serializes: -- both states (which are an OCaml structure encoded in base64, standard vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state()`) -- both state hashes (field element) as bytes (arkworks serialization). (`serialize_state_hash_field()`) -- the candidate state proof (an OCaml structure encoded in base64, URL vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state_proof()`) - -This data composes what we call a **Mina Proof of State**. - -#### Mina Proof of State - -We understand a Mina Proof of State to be composed of: - -- **public inputs** (vector of bytes): `[candidate_state_hash, candidate_state_length, candidate_state, tip_state_hash, tip_state_length, tip_state]`. We include the lengths of the states in bytes because these can vary, unlike the hashes which are a fixed 32 bytes. -- **proof**: Kimchi proof of the candidate state (specifically a Wrap proof in the context of the Pickles recursive system). We like to call it “Pickles proof” for simplicity. - -This is the proof that the Mina verifier in Aligned (also called a Mina operator) expects. - -### Aligned Polling Service - -[`mina_bridge repo: core/src/aligned_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/aligned_polling_service.rs) - -This module sends the Mina Proof of State (retrieved by the Mina Polling Service) to the Aligned batcher for verification, using the Aligned SDK. The batcher executes pre-verification checks that validate the integrity of the proof and discards it if one of these checks is unsuccessful. After pre-verification, the batcher includes the Mina Proof of State in the current proof batch for then sending it to Aligned’s operators. - -The Aligned Polling Service waits until the batch that includes the Mina Proof of State is verified, polling Aligned every 10 seconds (this is done by the Aligned SDK). - -Finally the service returns the verification data sent by Aligned after proof submission. This is used for updating the Bridge’s tip state, by sending a transaction to the Bridge’s smart contract. - - -### Smart Contract Utility - -[`mina_bridge repo: core/src/smart_contract_utility.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/smart_contract_utility.rs) - -This module sends a transaction to the Bridge’s smart contract that calls the “update tip” (see the [Smart Contract section](#smart-contract)) function by sending the **incomplete** verification data retrieved by the Aligned Polling Service, aside from the Mina Proof of State public inputs. By “incomplete” we mean that we’re sending all the verification data, except for the public input commitment, which is a keccak256 hash of the public inputs. So by sending the public inputs to the contract we can cheaply calculate on-chain the public input commitment for completing the verification data. We do this instead of directly sending the commitment so the contract can: - -- check that the `tip_state_hash` is indeed the tip state hash stored in the contract -- retrieve the `candidate_state_hash` and store it if the candidate was verified - -### Smart Contract - -[`mina_bridge repo: contract/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract) - -The contract stores the Bridge’s tip state hash and exposes functions to read (`getTipStateHash()`) or update it (`updateTipStateHash()`). Generally it’s the Smart Contract Utility that will send a transaction to update the tip state hash. - -The Bridge’s contract update function calls the Aligned Service Manager smart contract to check that the Mina Proof of State was verified in Aligned. The parameters that the Aligned Service Manager needs for checking is the complete verification data. - -If the Aligned Service Manager call returns true, this means that a Mina Proof of State of some candidate state (whose hash is known by the contract), checked against the Bridge’s tip state (consensus checking), was verified. Then this candidate state is now the tip state, and so its hash is stored in the contract. - -#### Gas cost -Currently the cost of the “update tip” transaction is in between 100k and 150k gas, a big part of it being the calldata cost of sending both states data in the public inputs of the Mina Proof of State. The cost could be decreased to <100k by modifying the definition of a Mina Proof of State; sending the state data as proof data instead of public inputs. At the current phase of the project this is not a priority so this change wasn’t done yet. - -## Aligned’s Mina Proof of State verifier - -[`aligned_layer repo: operator/mina/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) - -Aligned Layer integrated a verifier in its operator code for verifying Mina Proofs of State. - -### Consensus checking - -The first step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate state and the tip state. - -Currently the only check implemented is the one corresponding to short-range forks. The check just compares that the candidate state’s height is greater than the tip’s. If equal, tiebreak logic is implemented. Tiebreak consists in lexicographical comparison of the VRF hashes of both states, and if these are equal then we compare the consensus state hashes. - -So the total logic can be summed up by: - -```rust -if candidate_block_height > tip_block_height { - return candidate; -} - -// tiebreak logic -else if candidate_block_height == tip_block_height { - // compare last VRF digests lexicographically - if hash_last_vrf(candidate) > hash_last_vrf(tip) { - return candidate; - } else if hash_last_vrf(candidate) == hash_last_vrf(tip) { - // compare consensus state hashes lexicographically - if hash_state(candidate) > hash_state(tip) { - return candidate; - } - } -} - -return tip; -``` - -If the candidate wins the comparisons, then verification continues. If not, verification fails. - -The full code details can be consulted in the GitHub repository link at the [top of the section](#aligned's-mina-proof-of-state-verifier). We use OpenMina’s code for hashing the consensus state. - -> [!WARNING] -> At the moment we’re unsure about other considerations or checks for the consensus checking step. This step is under investigation. - -### State hash check - -We check that both the candidate and tip state hashes are correct by hashing the corresponding state data using OpenMina’s hasher. This way we can be certain that the hashes are valid if the Mina Proof of State was verified in Aligned, which is useful for the Bridge’s smart contract to check that the tip state is indeed the state corresponding to the tip, and for storing the candidate hash if its proof is valid. - -### Pickles verification - -This is the last step of the Mina Proof of State verifier. We are leveraging OpenMina’s “block verifier” to verify the Pickles proof of the candidate state. The verifier takes as public input the hash of the state. - -> [!WARNING] -> OpenMina’s block verifier is yet to be audited. - -# Kimchi proving system - -Kimchi is a zero-knowledge proof system that’s a variant of PLONK. - -Kimchi represents a series of enhancements, optimizations, and modifications implemented atop PLONK. To illustrate, it addresses PLONK's trusted setup constraint by incorporating a polynomial commitment in a bulletproof-style within the protocol. In this manner, there's no necessity to rely on the honesty of the participants in the trusted setup. - -Kimchi increases PLONK's register count from 3 to 15 by adding 12 registers. -With an increased number of registers, Kimchi incorporate gates that accept multiple inputs, as opposed to just two. This unveils new opportunities; for instance, a scalar multiplication gate would necessitate a minimum of three inputs—a scalar and two coordinates for the curve point. - -New proof systems resembling PLONK employ custom gates to efficiently represent frequently used functionalities, as opposed to connecting a series of generic gates. Kimchi is among these innovative protocols. - -In Kimchi, there's a concept where a gate has the ability to directly record its output onto the registers utilized by the subsequent gate. - -Another enhancement in Kimchi involves the incorporation of lookups for performance improvement. Occasionally, certain operations can be expressed in a tabular form, such as an XOR table. - -In the beginning, Kimchi relies on an interactive protocol, which undergoes a conversion into a non-interactive form through the Fiat-Shamir transform. - -### Proof Construction & Verification - -#### Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs`` - -![Commitments to secret polynomials](/img/commitments_to_secret_poly.png) - -Links to the associated code. - -[public input & witness commitment](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L134) - -[beta](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L196) - -[gamma](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L199) - -[permutation commitment](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L206) - ---- - -![Commitments to quotient polynomials](/img/commitments_to_quotient_poly.png) - -Links to the associated code. - -[alpha](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L213) - -[quotient commitment](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L221) - ---- - -![Verifier produces an evaluation point](/img/verifier_produces_evaluation_point.png) - -Links to the associated code. - -[zeta](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L227) - -[change of sponge](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L234) - -[recursion challenges](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L236) - ---- - -![Prover provides needed evaluations for the linearization - 1](/img/prover_provides_evaluations_linearization_01.png) - -Links to the associated code. - -[zeta](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L227) - -[negated public input](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L290) - -[15 register/witness - 6 sigmas evaluations](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L323) - ---- - -![Prover provides needed evaluations for the linearization - 2](/img/prover_provides_evaluations_linearization_02.png) - -Links to the associated code. - -TODO - ---- - -![Batch verification of evaluation proofs](/img/batch_verification_evaluation_proofs.png) - -Links to the associated code. - -[v,u](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L334) - -[polynomials that have an evaluation proof](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L346) - -## Pickles - Mina’s inductive zk-SNARK composition system - -Pickles uses a pair of amicable curves called [Pasta](https://o1-labs.github.io/proof-systems/specs/pasta.html) in order to deliver incremental verifiable computation efficiently. - -The two curves pallas and vesta (pa(llas ve)sta) created by the [Zcash team](https://github.com/zcash/pasta?tab=readme-ov-file#pallasvesta-supporting-evidence). Each curve’s scalar field is the other curve’s base field, which is practical for recursion - -These curves are referred to as “tick” and “tock” within the Mina source code. - -- Tick - Vesta (a.k.a. Step), constraint domain size 2Âč⁞ [block and transaction proofs] -- Tock - Pallas (a.k.a. Wrap), constraint domain size 2ÂčÂČ [signatures] - -The Tock prover does less (only performs recursive verifications and -no other logic), so it requires fewer constraints and has a smaller -domain size. Internally Pickles refers to Tick and Tock as _Step_ and -_Wrap_, respectively. - -One curve handles the current proof, while the other is used to verify previous proofs. - -Tock is used to prove the verification of a Tick proof and outputs a -Tick proof. Tick is used to prove the verification of a Tock proof and -outputs a Tock proof. In other words, - -- Prove_tock ( Verify(_Tick_) ) = Tick_proof - -- Prove_tick (Verify(_Tock_) ) = Tock_proof - -![Description](/img/palas_vesta.png) - -Both Tick and Tock can verify at most 2 proofs of the opposite kind, though, theoretically more is possible. - -Currently, in Mina we have the following situation. - -- Every Tock always wraps 1 Tick proof. -- Tick proofs can verify 2 Tock proofs - - Blockchain SNARK takes previous blockchain SNARK proof and a transaction proof - - Verifying two Tock transaction proofs - -Pickles works over [Pasta](https://o1-labs.github.io/proof-systems/specs/pasta.html), a cycle of curves consisting of Pallas and Vesta, and thus it defines two generic circuits, one for each curve. Each can be thought of as a parallel instantiation of a kimchi proof systems. These circuits are not symmetric and have somewhat different function: - -- **Step circuit**: this is the main circuit that contains application logic. Each step circuit verifies a statement and potentially several (at most 2) other wrap proofs. -- **Wrap circuit**: this circuit merely verifies the step circuit, and does not have its own application logic. The intuition is that every time an application statement is proven it’s done in Step, and then the resulting proof is immediately wrapped using Wrap. - ---- - -Both [Step and Wrap circuits](https://o1-labs.github.io/proof-systems/pickles/overview.html#general-circuit-structure) additionally do a lot of recursive verification of the previous steps. Without getting too technical, Step (without loss of generality) does the following: - -1. Execute the application logic statement (e.g. the mina transaction is valid) -2. Verify that the previous Wrap proof is (first-)half-valid (perform only main checks that are efficient for the curve) -3. Verify that the previous Step proof is (second-)half-valid (perform the secondary checks that were inefficient to perform when the previous Step was Wrapped) -4. Verify that the previous Step correctly aggregated the previous accumulator, e.g. acc2=Aggregate(acc1,_π_ step,2) - -![Step-Wrap Diagram](/img/step_diagram.png) - ---- - -### Accumulator - -The accumulator is an abstraction introduced for the purpose of this diagram. In practice, each kimchi proof consists of (1) commitments to polynomials, (2) evaluations of them, (3) and the opening proof. - -What we refer to as **accumulator** here is actually the commitment inside the opening proof. It is called `sg` in the implementation and is semantically a polynomial commitment to `h(X)` (`b_poly` in the code) — the poly-sized polynomial that is built from IPA challenges. - -It’s a very important polynomial – it can be evaluated in log time, but the commitment verification takes poly time, so the fact that `sg` is a commitment to `h(X)` is never proven inside the circuit. For more details, see [Proof-Carrying Data from Accumulation Schemes](https://eprint.iacr.org/2020/499.pdf), Appendix A.2, where `sg` is called `U`. - -In pickles, what we do is that we “absorb” this commitment `sg` from the previous step while creating a new proof. - -That is, for example, Step 1 will produce this commitment that is denoted as `acc1` on the diagram, as part of its opening proof, and Step 2 will absorb this commitment. And this “absorbtion” is what Wrap 2 will prove (and, partially, Step 3 will also refer to the challenges used to build `acc1`, but this detail is completely avoided in this overview). In the end, `acc2` will be the result of Step 2, so in a way `acc2` “aggregates” `acc1` which somewhat justifies the language used. - -### Analysis of the Induction (recursion) method applied in Pickles - -The **Verifier** is divided into 2 modules, one part **Slow** and one part **Fast**. - -![Figure 1](/img/pickles_step_01.png) - -**S0** is the initial statement, **U** is the Update algorithm, the **Pi** are the proofs, and the **S's** are the updated statements. - -![Figure 2](/img/pickles_step_02.png) - -On top of each **Pi** proof, we run a **Fast** verifier. With the **Pi** proof and the cumulative Statement from the previous step, the **U** algorithm is applied and a new updated Statement is created. This _new updated Statement_ is the input of the Slow part of the Verifier, but we don't run the Slow Verifier until we reach the end of the whole round. - ---- -Execution of **Verifier Slow** (which is very slow) can be **deferred** in sequences, and the V slow current always accumulates to the previous statement. This implicitly 'runs Vs on S1' as well. - ---- - -Remember that the S's are statements that accumulate, so each one has information from the previous ones. - -![Figure 3](/img/pickles_step_03.png) - -When we reached the last round we see that the intermediate Verifiers Slow disappears, as they are no longer useful to us. - -![Figure 4](/img/pickles_step_04.png) - -Attention!! We haven't executed any Verifier Slow yet; we only run Verifier Fast in each round. - -Therefore, in the last step, we execute the current **Verifier Fast** on its Pi, and the **Last Verifier Slow** on the **Final S**. This may take 1 second, but it accumulates all the previous ones. - -![Figure 5](/img/pickles_step_05.png) - ---- - -Everything inside the large red square in the following figure has already been processed by the time we reach the last round. - -![Figure 6](/img/pickles_step_06.png) - ---- - -Let's now see how the Verifier Fast is divided. - -![Figure 7](/img/pickles_step_07.png) - -**Vf** corresponds to field operations in a field **F**, and **Vg** corresponds to group operations in a group **G**. - -![Figure 8](/img/pickles_step_08.png) - -The proof **Pi** is divided into 2 parts, one corresponding to group operations **G**, and it exposes, as a public input to the circuit, the part of the proof that is necessary to execute **Vf**. - -### Pickles Technical Diagrams - - The black boxes are data structures that have names and labels following the implementation. - `MFNStep/MFNWrap` is an abbreviation from `MessagesForNextStep` and `MessagesForNextWrap` that is used for brevity. Most other datatypes are exactly the same as in the codebase. - - The blue boxes are computations. Sometimes, when the computation is trivial or only vaguely indicated, it is denoted as a text sign directly on an arrow. - - Arrows are blue by default and denote moving a piece of data from one place to another with no (or very little) change. Light blue arrows are denoting witness query that is implemented through the handler mechanism. The “chicken foot” connector means that this arrow accesses just one field in an array: such an arrow could connect e.g. a input field of type old_a: A in a structure Vec<(A,B)> to an output new_a: A, which just means that we are inside a for loop and this computation is done for all the elemnts in the vector/array. - -![Figure](/img/pickles_structure_drawio.png) - -## Consensus - -Mina employs [Ouroboros Samasika](https://eprint.iacr.org/2020/352.pdf) as its consensus mechanism, which will be subsequently denoted as Samasika. -Three essential commitments provided include: - -- High decentralization - Self-bootstrap, uncapped participation and dynamic availability -- Succinctness - Constant-time synchronization with full-validation and high interoperability -- Universal composability - Proven security for interacting with other protocols, no slashing required - -Joseph Bonneau, Izaak Meckler, Vanishree Rao, and Evan Shapiro collaborated to create Samasika, establishing it as the initial succinct blockchain consensus algorithm. -The complexity of fully verifying the entire blockchain is independent of chain length. -Samasika takes its name from the Sanskrit term, meaning small or succinct. - -### Chain selection rules - -Samasika uses two consensus rules: one for _short-range forks_ and one for _long-range forks_. - -#### Short-range fork rule - -This rule is triggered whenever the fork is such that the adversary has not yet had the opportunity to mutate the block density distribution. -A fork is considered short-range if it took place within the last **m** blocks. The straightforward implementation of this rule involves consistently storing the most recent **m** blocks. Yet, in the context of a succinct blockchain, this is considered not desirable. Mina Samasika follows a methodology that necessitates information about only two blocks, the concept involves a decentralized checkpointing algorithm. - -#### Long-range fork rule - -When a malicious actor generates an long-range fork, it gradually distorts the leader selection distribution, resulting in a longer adversarial chain. At the start, the dishonest chain will have a reduced density, but eventually, the adversary will work to elevate it. Therefore, the only factor we can depend on is the variation in density in the initial slots after the fork, which is known as the _critical window_. -The reasoning is that the critical window of the honest chain is very likely to have a higher density because this chain has the most stake - -### Decentralized checkpointing - -Samasika employs decentralized checkpointing to discern the nature of a fork, categorizing it as either short-range or long-range. - -- **Start checkpoint** - State hash of the first block of the epoch. -- **Lock checkpoint** - State hash of the last known block in the seed update range of an epoch (not including the current block) - -Remember, a fork is categorized as short-range if either: - -- The fork point of the candidate chains are in the same epoch. -- The fork point is in the previous epoch with the same ``lock_checkpoint`` - -As Mina prioritizes succinctness, it implies the need to maintain checkpoints for both the current and the previous epoch. - -### Short-range fork check - -Keep in mind that short-range forks occur when the fork point occurs after the lock_checkpoint of the previous epoch; otherwise, it qualifies as a long-range fork. -The position of the previous epoch is a measurement relative to a block's perspective. In cases where candidate blocks belong to distinct epochs, each will possess distinct current and previous epoch values. -Alternatively, if the blocks belong to the same epoch, they will both reference the identical previous epoch. Thus we can simply check whether the blocks have the same lock_checkpoint in their previous epoch data. - -### Sliding window density - -Let describe Mina's succinct sliding window density algorithm used by the long-range fork rule. In detail how windows are represented in blocks and how to compute _minimum window density_ - -#### Nomenclature - -- We say a slot is _filled_ if it contains a valid non-orphaned block. -- An _w-window_ is a sequential list of slots s1,...,sw of length _w_. -- A _sub-window_ is a contiguous interval of a _w-window_. -- The _density_ of an w-window (or sub-window) is the number non-orphan block within it. -- We use the terms _window_, _density window_, _sliding window_ and _w-window_ synonymously. -- v is the Length by which the window shifts in slots (shift parameter). ``slots_per_sub_window`` -- w is the Window length in slots. ( the sliding window is a _w_-long window that shifts _v_-slots at a time). - -The Samasika research paper presents security proofs that determine the secure values for v, w, and sub-windows per window. -A sliding window can also be viewed as a collection of _sub-windows_. -Rather than storing a window as clusters of slots, Samasika focuses solely on the density of each sub-window. -The density of a window is computed as the sum of the densities of its sub-windows. - -Given a window ``W`` that is a list of sub-window densities, the window density is: ``density(W) = sum(W)`` - -#### Window structure - -We use the phrase "window at sub-window _s_" to refer to the window _W_ whose most recent global sub-window is _s_. -In the Samasika paper the window structure actually consists of the **11 previous sub-window densities**, the **current sub-window density** and the **minimum window density** .A total of _13_ densities. -The most recent sub-window may be a previous sub-window or the current sub-window. - -#### Minimum window density - -The **minimum window density** at a given slot is defined as the minimum window density observed over all previous sub-windows and previous windows, all the way back to genesis. -When a new block _B_ with parent _P_ is created, the minimum window density is computed like this. -``B.min_window_density = min(P.min_window_density, current_window_density)`` -where ``current_window_density`` is the density of _B's_ projected window - -The relative sub-window _i_ of a sub-window _sw_ is its index within the window. - -#### Ring-shift - -When we shift a window ``[d0, d1, ..., d10]`` in order to add in a new sub-window ``d11``, we could evict the oldest sub-window d0 by shifting down all of the other sub-windows. Unfortunately, shifting a list in a SNARK circuit is very expensive. -It is more efficient (and also equivalent) to just replace the sub-window we wish to evict by overwriting it with the new sub-window, like this: - ``sub_window_densities: d11 | d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | d10`` - -#### Projected window - -Generating a new block and determining the optimal chain in accordance with the long-range fork rule involve the computation of a projected window. -Given a window _W_ and a future global slot _next_, the projected window of _W_ to slot _next_ is a transformation of _W_ into what it would look like if it were positioned at slot _next_. -For example, when a new block _B_ is produced with parent block _P_, the height of _B_ will be the height of _P_ plus one, but the global slot of _B_ will depend on how much time has elapsed since _P_ was created. -According to the Samasika paper, the window of _B_ must be initialized based on _P's_ window, then shifted because _B_ is ahead of _P_ and finally the value of _B's_ sub-window is incremented to account for _B_ belonging to it. -Remember that the calculation of window density, including sub-window s, only occurs when the sub-window is greater than s, after s becomes a previous sub-window. -Therefore, if _next_ is **k** sub-windows ahead of _W_ we must shift only **k - 1** times because we must keep the most recent previous sub-window. - -Now that we know how much to ring-shift, the next question is what density values to shift in. Remember that when projecting W to global slot next, we said that there are no intermediate blocks. That is, all of the slots and sub-windows are empty between W's current slot and next. Consequently, we must ring-shift in zero densities. The resulting window W is the projected window. - -Recall this diagram: - -![consensus01](/img/consensus01.png) - -Suppose window W's current sub-window is 11 whose density is d11 and d1 is the oldest sub-window density - -Now imagine we want to project W to global slot ``next = 15``. This is ``k = 15 - 11 = 4`` sub-windows ahead of the most recent sub-window. Therefore, we compute ``shift_count = min(max(k - 1, 0), sub_windows_per_window)`` in this case: ``shift_count = min(max(4 - 1, 0), 11) = 3`` - -Ring-shift in 3 zero densities to obtain the projected window. - -![consensus02](/img/consensus02.png) - -We can derive some instructive cases from the general rule - -![consensus03](/img/consensus03.png) - -##### Genesis window - -Anything related to Genesis windows is not involved in the Mina Bridge. - -##### Relative minimum window density - -When Mina engages "chain selection" in the long-range fork rule, It doesn't directly employ the minimum window densities found in in the current and candidate blocks. -Rather than that, Mina opts for the relative minimum window density... - -Remember that the minimum window density consistently decreases. Consequently, if a peer has been offline for a while and wants to reconnect, their current best chain might exhibit a higher minimum window density compared to the canonical chain candidate. -Additionally, the long-range fork rule dictates that the peer to choose the chain with the superior minimum density. -The calculation of the minimum window density does not take into account the relationship between the current best chain and the canonical chain with respect to time. -Within Samasika, time is encapsulated and safeguarded by the notions of slots and the VRF. When computing the minimum window density, it is imperative to factor in these elements as well. -The relative minimum window density solves this problem by projecting the joining peer's current block's window to the global slot of the candidate block. - -## Protocol - -This section outlines the consensus protocol in terms of events. **Initialize consensus** and **Select chain**. - -In the following description, dot notation is used to refer to the local data members of peers. For example, given peer P, we use P.genesis_block and P.tip, to refer to the genesis block and currently selected chain, respectively. -For example, given peer ``P``, we use ``P.genesis_block`` and ``P.tip``, to refer to the genesis block and currently selected chain, respectively. - -### Initialize consensus - -Things a peer MUST do to initialize consensus includes are _Load the genesis block_, _Get the tip_, _Bootstrap_ and _Catchup_ -Bootstrapping consensus requires the ability to synchronize epoch ledgers from the network. -All peers MUST have the ability to load both the staking epoch ledger and next epoch ledger from disk and by downloading them. P2P peers MUST also make these ledgers available for other peers. - -### Select chain - -Each time a peer's chains receive an update, the select chain event takes place. -A chain is said to be updated anytime a valid block is added or removed from its head. The chain selection algorithm also incorporates certain tiebreak logic. -Supplementary tiebreak logic becomes necessary when assessing chains with identical length or equal minimum density. - -Let ``P.tip`` refer to the top block of peer ``P``'s current best chain. Assuming an update to either ``P.tip`` or ``P.chains``, ``P`` must update its tip similar to this: - -![consensus06](/img/consensus06.png) - -The following selectSecureChain algorithm receives the peer's current best chain P.tip and its set of known valid chains P.chains and produces the most secure chain as output. - -![consensus07](/img/consensus07.png) - -And the ``selectLongerChain`` algorithm: - -![consensus08](/img/consensus08.png) - -### Maintaining the k-th predecessor epoch ledger - -The staking and next epoch ledgers MUST be finalized ledgers and can only advance when there is sufficient depth to achieve finality. -The staking and next epoch ledgers must be in a finalized state and can progress only when there is enough depth to ensure finality. Peers are required to retain the epoch ledger of the k-th predecessor from the tip, where ``k`` represents the depth of finality. -Due to the security prerequisites of Ouroboros, the gap in slots between the staking and next epoch ledgers may be great. Consequently, at any given moment, we essentially have three "pointers": staking ``s``, next ``n``, and finality ``k``. -The ``final_ledger`` (epoch ledger of the k-th predecessor from the tip) is updated each time chain selection occurs, i.e., for every new tip block appended. - -### Getting the tip - -For a joining peer to discover the head of the current chain it MUST not only obtain the tip, but also the min(k, tip.height - 1)-th block back from the tip. For the latter the peer MUST check the block's proof of finality. -Peers perform the proof of finality check by verifying two zero-knowledge proofs, one for the _tip_ and one for the _root_, and a Merkle proof for the chain of protocol state hashes between them. +
+ +# mina_bridge 🌉 + +## Zero-knowledge state bridge from Mina to Ethereum + +
+ +## About + +This project introduces the verification of [Mina Protocol](https://minaprotocol.com/) states into a EVM chain, which will serve as a foundation for token bridging. + +This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State on Ethereum. + +## Usage + +### Bridge + +1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. +1. In the root folder, deploy the bridge's contract with: + + ```sh + make deploy_contract_anvil + ``` + +1. Run the core program: + + ```sh + make + ``` + +### Account inclusion local verifier + +After verifying a Mina state, you can locally verify the inclusion of some Mina account given its public key in the bridged state. + +1. Run + + ```sh + make verify_account_inclusion PUBLIC_KEY= + ``` + +# Specification + +## Core + +[`mina_bridge repo: core/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core) + +A Rust library+binary project that includes the next modules: + +### Mina Polling Service + +[`mina_bridge repo: core/src/mina_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina_polling_service.rs) + +This module queries a Mina node (defined by the user via the `MINA_RPC_URL` env. variable) GraphQL DB for the latest state data (called the candidate state) and proof. + +It also queries the Bridge’s smart contract for the last verified Mina state hash, called the **Bridge’s tip state** or just tip state and queries the state corresponding to that hash to the Mina node. + +Then it serializes: + +- both states (which are an OCaml structure encoded in base64, standard vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state()`) +- both state hashes (field element) as bytes (arkworks serialization). (`serialize_state_hash_field()`) +- the candidate state proof (an OCaml structure encoded in base64, URL vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state_proof()`) + +This data composes what we call a **Mina Proof of State**. + +#### Mina Proof of State + +We understand a Mina Proof of State to be composed of: + +- **public inputs** (vector of bytes): `[candidate_state_hash, tip_state_hash, candidate_state_length, candidate_state, tip_state_length, tip_state]`. We include the lengths of the states in bytes because these can vary, unlike the hashes which are a fixed 32 bytes. +- **proof**: Kimchi proof of the candidate state (specifically a Wrap proof in the context of the Pickles recursive system). We like to call it “Pickles proof” for simplicity. + +This is the proof that the Mina verifier in Aligned (also called a Mina operator) expects. + +### Aligned Polling Service + +[`mina_bridge repo: core/src/aligned_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/aligned_polling_service.rs) + +This module sends the Mina Proof of State (retrieved by the Mina Polling Service) to the Aligned batcher for verification, using the Aligned SDK. The batcher executes pre-verification checks that validate the integrity of the proof and discards it if one of these checks is unsuccessful. After pre-verification, the batcher includes the Mina Proof of State in the current proof batch for then sending it to Aligned’s operators. + +The Aligned Polling Service waits until the batch that includes the Mina Proof of State is verified, polling Aligned every 10 seconds (this is done by the Aligned SDK). + +Finally the service returns the verification data sent by Aligned after proof submission. This is used for updating the Bridge’s tip state, by sending a transaction to the Bridge’s smart contract. + +### Smart Contract Utility + +[`mina_bridge repo: core/src/smart_contract_utility.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/smart_contract_utility.rs) + +This module sends a transaction to the Bridge’s smart contract that calls the “update tip” (see the [Smart Contract section](#smart-contract)) function by sending the **incomplete** verification data retrieved by the Aligned Polling Service, aside from the Mina Proof of State public inputs. By “incomplete” we mean that we’re sending all the verification data, except for the public input commitment, which is a keccak256 hash of the public inputs. So by sending the public inputs to the contract we can cheaply calculate on-chain the public input commitment for completing the verification data. We do this instead of directly sending the commitment so the contract can: + +- check that the `tip_state_hash` is indeed the tip state hash stored in the contract +- retrieve the `candidate_state_hash` and store it if the candidate was verified + +### Smart Contract + +[`mina_bridge repo: contract/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract) + +The contract stores the Bridge’s tip state hash and exposes functions to read (`getTipStateHash()`) or update it (`updateTipStateHash()`). Generally it’s the Smart Contract Utility that will send a transaction to update the tip state hash. + +The Bridge’s contract update function calls the Aligned Service Manager smart contract to check that the Mina Proof of State was verified in Aligned. The parameters that the Aligned Service Manager needs for checking is the complete verification data. + +If the Aligned Service Manager call returns true, this means that a Mina Proof of State of some candidate state (whose hash is known by the contract), checked against the Bridge’s tip state (consensus checking), was verified. Then this candidate state is now the tip state, and so its hash is stored in the contract. + +The contract is deployed by a `contract_deployer` crate with an initial state that is the eleventh state from the Mina node [transition frontier’s](#transition-frontier) tip. + +The `contract_deployer` asks the Mina node for the eleventh state and deploys the contract using that state as the initial one, assuming it is valid. + +#### Gas cost + +Currently the cost of the “update tip” transaction is in between 100k and 150k gas, a big part of it being the calldata cost of sending both states data in the public inputs of the Mina Proof of State. The cost could be decreased to <100k by modifying the definition of a Mina Proof of State; sending the state data as proof data instead of public inputs. At the current phase of the project this is not a priority so this change wasn’t done yet. + +## Aligned’s Mina Proof of State verifier + +[`aligned_layer repo: operator/mina/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) + +Aligned Layer integrated a verifier in its operator code for verifying Mina Proofs of State. + +### Consensus checking + +The first step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate state and the tip state. + +Currently the only check implemented is the one corresponding to short-range forks. The check just compares that the candidate state’s height is greater than the tip’s. If equal, tiebreak logic is implemented. Tiebreak consists in lexicographical comparison of the VRF hashes of both states, and if these are equal then we compare the consensus state hashes. + +So the total logic can be summed up by: + +```rust +if candidate_block_height > tip_block_height { + return candidate; +} + +// tiebreak logic +else if candidate_block_height == tip_block_height { + // compare last VRF digests lexicographically + if hash_last_vrf(candidate) > hash_last_vrf(tip) { + return candidate; + } else if hash_last_vrf(candidate) == hash_last_vrf(tip) { + // compare consensus state hashes lexicographically + if hash_state(candidate) > hash_state(tip) { + return candidate; + } + } +} + +return tip; +``` + +If the candidate wins the comparisons, then verification continues. If not, verification fails. + +The full code details can be consulted in the GitHub repository link at the [top of the section](#aligneds-mina-proof-of-state-verifier). We use OpenMina’s code for hashing the consensus state. + +> [!WARNING] +> At the moment we’re unsure about other considerations or checks for the consensus checking step. We are also ignoring the finalization of the state that we verified. This step is under investigation. + +#### Transition frontier + +The **transition frontier** is a chain of the latest `k` blocks of the network. The GraphQL DB of a Mina node only stores these blocks and forgets the previous ones. Currently, `k = 291` +It's common for two nodes to generate a block simultaneously, resulting in a temporary fork in the network. The network will eventually resolve this fork after a period of time. + +We can define that a block is **partially finalized** if it has `n` blocks ahead of it, with `n` being the number defined for 'partial finalization'. + +A block is **finalized** when there’s `k - 1` blocks ahead of it. Meaning that it’s the first block of the transition frontier, also called the **root block**. The latest block of the transition frontier is called the **tip**. + +### State hash check + +We check that both the candidate and tip state hashes are correct by hashing the corresponding state data using OpenMina’s hasher. This way we can be certain that the hashes are valid if the Mina Proof of State was verified in Aligned, which is useful for the Bridge’s smart contract to check that the tip state is indeed the state corresponding to the tip, and for storing the candidate hash if its proof is valid. + +### Pickles verification + +This is the last step of the Mina Proof of State verifier. We are leveraging OpenMina’s “block verifier” to verify the Pickles proof of the candidate state. The verifier takes as public input the hash of the state. + +> [!WARNING] +> OpenMina’s block verifier is yet to be audited. + +# Kimchi proving system + +Kimchi is a zero-knowledge proof system that’s a variant of PLONK. + +Kimchi represents a series of enhancements, optimizations, and modifications implemented atop PLONK. To illustrate, it addresses PLONK's trusted setup constraint by incorporating a polynomial commitment in a bulletproof-style within the protocol. In this manner, there's no necessity to rely on the honesty of the participants in the trusted setup. + +Kimchi increases PLONK's register count from 3 to 15 by adding 12 registers. +With an increased number of registers, Kimchi incorporate gates that accept multiple inputs, as opposed to just two. This unveils new opportunities; for instance, a scalar multiplication gate would necessitate a minimum of three inputs—a scalar and two coordinates for the curve point. + +New proof systems resembling PLONK employ custom gates to efficiently represent frequently used functionalities, as opposed to connecting a series of generic gates. Kimchi is among these innovative protocols. + +In Kimchi, there's a concept where a gate has the ability to directly record its output onto the registers utilized by the subsequent gate. + +Another enhancement in Kimchi involves the incorporation of lookups for performance improvement. Occasionally, certain operations can be expressed in a tabular form, such as an XOR table. + +In the beginning, Kimchi relies on an interactive protocol, which undergoes a conversion into a non-interactive form through the Fiat-Shamir transform. + +## Proof Construction & Verification + +### Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs`` + +![Commitments to secret polynomials](/img/commitments_to_secret_poly.png) + +Links to the associated code. + +[public input & witness commitment](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L134) + +[beta](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L196) + +[gamma](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L199) + +[permutation commitment](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L206) + +--- + +![Commitments to quotient polynomials](/img/commitments_to_quotient_poly.png) + +Links to the associated code. + +[alpha](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L213) + +[quotient commitment](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L221) + +--- + +![Verifier produces an evaluation point](/img/verifier_produces_evaluation_point.png) + +Links to the associated code. + +[zeta](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L227) + +[change of sponge](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L234) + +[recursion challenges](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L236) + +--- + +![Prover provides needed evaluations for the linearization - 1](/img/prover_provides_evaluations_linearization_01.png) + +Links to the associated code. + +[zeta](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L227) + +[negated public input](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L290) + +[15 register/witness - 6 sigmas evaluations](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L323) + +--- + +![Prover provides needed evaluations for the linearization - 2](/img/prover_provides_evaluations_linearization_02.png) + +Links to the associated code. + +TODO + +--- + +![Batch verification of evaluation proofs](/img/batch_verification_evaluation_proofs.png) + +Links to the associated code. + +[v,u](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L334) + +[polynomials that have an evaluation proof](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L346) + +## Pickles - Mina’s inductive zk-SNARK composition system + +Pickles uses a pair of amicable curves called [Pasta](https://o1-labs.github.io/proof-systems/specs/pasta.html) in order to deliver incremental verifiable computation efficiently. + +The two curves pallas and vesta (pa(llas ve)sta) created by the [Zcash team](https://github.com/zcash/pasta?tab=readme-ov-file#pallasvesta-supporting-evidence). Each curve’s scalar field is the other curve’s base field, which is practical for recursion + +These curves are referred to as “tick” and “tock” within the Mina source code. + +- Tick - Vesta (a.k.a. Step), constraint domain size 2Âč⁞ [block and transaction proofs] +- Tock - Pallas (a.k.a. Wrap), constraint domain size 2ÂčÂČ [signatures] + +The Tock prover does less (only performs recursive verifications and +no other logic), so it requires fewer constraints and has a smaller +domain size. Internally Pickles refers to Tick and Tock as _Step_ and +_Wrap_, respectively. + +One curve handles the current proof, while the other is used to verify previous proofs. + +Tock is used to prove the verification of a Tick proof and outputs a +Tick proof. Tick is used to prove the verification of a Tock proof and +outputs a Tock proof. In other words, + +- Prove_tock ( Verify(_Tick_) ) = Tick_proof + +- Prove_tick (Verify(_Tock_) ) = Tock_proof + +![Description](/img/palas_vesta.png) + +Both Tick and Tock can verify at most 2 proofs of the opposite kind, though, theoretically more is possible. + +Currently, in Mina we have the following situation. + +- Every Tock always wraps 1 Tick proof. +- Tick proofs can verify 2 Tock proofs + - Blockchain SNARK takes previous blockchain SNARK proof and a transaction proof + - Verifying two Tock transaction proofs + +Pickles works over [Pasta](https://o1-labs.github.io/proof-systems/specs/pasta.html), a cycle of curves consisting of Pallas and Vesta, and thus it defines two generic circuits, one for each curve. Each can be thought of as a parallel instantiation of a kimchi proof systems. These circuits are not symmetric and have somewhat different function: + +- **Step circuit**: this is the main circuit that contains application logic. Each step circuit verifies a statement and potentially several (at most 2) other wrap proofs. +- **Wrap circuit**: this circuit merely verifies the step circuit, and does not have its own application logic. The intuition is that every time an application statement is proven it’s done in Step, and then the resulting proof is immediately wrapped using Wrap. + +--- + +Both [Step and Wrap circuits](https://o1-labs.github.io/proof-systems/pickles/overview.html#general-circuit-structure) additionally do a lot of recursive verification of the previous steps. Without getting too technical, Step (without loss of generality) does the following: + +1. Execute the application logic statement (e.g. the mina transaction is valid) +2. Verify that the previous Wrap proof is (first-)half-valid (perform only main checks that are efficient for the curve) +3. Verify that the previous Step proof is (second-)half-valid (perform the secondary checks that were inefficient to perform when the previous Step was Wrapped) +4. Verify that the previous Step correctly aggregated the previous accumulator, e.g. acc2=Aggregate(acc1,_π_ step,2) + +![Step-Wrap Diagram](/img/step_diagram.png) + +--- + +### Accumulator + +The accumulator is an abstraction introduced for the purpose of this diagram. In practice, each kimchi proof consists of (1) commitments to polynomials, (2) evaluations of them, (3) and the opening proof. + +What we refer to as **accumulator** here is actually the commitment inside the opening proof. It is called `sg` in the implementation and is semantically a polynomial commitment to `h(X)` (`b_poly` in the code) — the poly-sized polynomial that is built from IPA challenges. + +It’s a very important polynomial – it can be evaluated in log time, but the commitment verification takes poly time, so the fact that `sg` is a commitment to `h(X)` is never proven inside the circuit. For more details, see [Proof-Carrying Data from Accumulation Schemes](https://eprint.iacr.org/2020/499.pdf), Appendix A.2, where `sg` is called `U`. + +In pickles, what we do is that we “absorb” this commitment `sg` from the previous step while creating a new proof. + +That is, for example, Step 1 will produce this commitment that is denoted as `acc1` on the diagram, as part of its opening proof, and Step 2 will absorb this commitment. And this “absorbtion” is what Wrap 2 will prove (and, partially, Step 3 will also refer to the challenges used to build `acc1`, but this detail is completely avoided in this overview). In the end, `acc2` will be the result of Step 2, so in a way `acc2` “aggregates” `acc1` which somewhat justifies the language used. + +### Analysis of the Induction (recursion) method applied in Pickles + +The **Verifier** is divided into 2 modules, one part **Slow** and one part **Fast**. + +![Figure 1](/img/pickles_step_01.png) + +**S0** is the initial statement, **U** is the Update algorithm, the **Pi** are the proofs, and the **S's** are the updated statements. + +![Figure 2](/img/pickles_step_02.png) + +On top of each **Pi** proof, we run a **Fast** verifier. With the **Pi** proof and the cumulative Statement from the previous step, the **U** algorithm is applied and a new updated Statement is created. This _new updated Statement_ is the input of the Slow part of the Verifier, but we don't run the Slow Verifier until we reach the end of the whole round. + +--- +Execution of **Verifier Slow** (which is very slow) can be **deferred** in sequences, and the V slow current always accumulates to the previous statement. This implicitly 'runs Vs on S1' as well. + +--- + +Remember that the S's are statements that accumulate, so each one has information from the previous ones. + +![Figure 3](/img/pickles_step_03.png) + +When we reached the last round we see that the intermediate Verifiers Slow disappears, as they are no longer useful to us. + +![Figure 4](/img/pickles_step_04.png) + +Attention!! We haven't executed any Verifier Slow yet; we only run Verifier Fast in each round. + +Therefore, in the last step, we execute the current **Verifier Fast** on its Pi, and the **Last Verifier Slow** on the **Final S**. This may take 1 second, but it accumulates all the previous ones. + +![Figure 5](/img/pickles_step_05.png) + +--- + +Everything inside the large red square in the following figure has already been processed by the time we reach the last round. + +![Figure 6](/img/pickles_step_06.png) + +--- + +Let's now see how the Verifier Fast is divided. + +![Figure 7](/img/pickles_step_07.png) + +**Vf** corresponds to field operations in a field **F**, and **Vg** corresponds to group operations in a group **G**. + +![Figure 8](/img/pickles_step_08.png) + +The proof **Pi** is divided into 2 parts, one corresponding to group operations **G**, and it exposes, as a public input to the circuit, the part of the proof that is necessary to execute **Vf**. + +### Pickles Technical Diagrams + + The black boxes are data structures that have names and labels following the implementation. + `MFNStep/MFNWrap` is an abbreviation from `MessagesForNextStep` and `MessagesForNextWrap` that is used for brevity. Most other datatypes are exactly the same as in the codebase. + + The blue boxes are computations. Sometimes, when the computation is trivial or only vaguely indicated, it is denoted as a text sign directly on an arrow. + + Arrows are blue by default and denote moving a piece of data from one place to another with no (or very little) change. Light blue arrows are denoting witness query that is implemented through the handler mechanism. The “chicken foot” connector means that this arrow accesses just one field in an array: such an arrow could connect e.g. a input field of type old_a: A in a structure Vec<(A,B)> to an output new_a: A, which just means that we are inside a for loop and this computation is done for all the elemnts in the vector/array. + +![Figure](/img/pickles_structure_drawio.png) + +## Consensus + +Mina employs [Ouroboros Samasika](https://eprint.iacr.org/2020/352.pdf) as its consensus mechanism, which will be subsequently denoted as Samasika. +Three essential commitments provided include: + +- High decentralization - Self-bootstrap, uncapped participation and dynamic availability +- Succinctness - Constant-time synchronization with full-validation and high interoperability +- Universal composability - Proven security for interacting with other protocols, no slashing required + +Joseph Bonneau, Izaak Meckler, Vanishree Rao, and Evan Shapiro collaborated to create Samasika, establishing it as the initial succinct blockchain consensus algorithm. +The complexity of fully verifying the entire blockchain is independent of chain length. +Samasika takes its name from the Sanskrit term, meaning small or succinct. + +### Chain selection rules + +Samasika uses two consensus rules: one for _short-range forks_ and one for _long-range forks_. + +#### Short-range fork rule + +This rule is triggered whenever the fork is such that the adversary has not yet had the opportunity to mutate the block density distribution. +A fork is considered short-range if it took place within the last **m** blocks. The straightforward implementation of this rule involves consistently storing the most recent **m** blocks. Yet, in the context of a succinct blockchain, this is considered not desirable. Mina Samasika follows a methodology that necessitates information about only two blocks, the concept involves a decentralized checkpointing algorithm. + +#### Long-range fork rule + +When a malicious actor generates an long-range fork, it gradually distorts the leader selection distribution, resulting in a longer adversarial chain. At the start, the dishonest chain will have a reduced density, but eventually, the adversary will work to elevate it. Therefore, the only factor we can depend on is the variation in density in the initial slots after the fork, which is known as the _critical window_. +The reasoning is that the critical window of the honest chain is very likely to have a higher density because this chain has the most stake + +### Decentralized checkpointing + +Samasika employs decentralized checkpointing to discern the nature of a fork, categorizing it as either short-range or long-range. + +- **Start checkpoint** - State hash of the first block of the epoch. +- **Lock checkpoint** - State hash of the last known block in the seed update range of an epoch (not including the current block) + +Remember, a fork is categorized as short-range if either: + +- The fork point of the candidate chains are in the same epoch. +- The fork point is in the previous epoch with the same ``lock_checkpoint`` + +As Mina prioritizes succinctness, it implies the need to maintain checkpoints for both the current and the previous epoch. + +### Short-range fork check + +Keep in mind that short-range forks occur when the fork point occurs after the lock_checkpoint of the previous epoch; otherwise, it qualifies as a long-range fork. +The position of the previous epoch is a measurement relative to a block's perspective. In cases where candidate blocks belong to distinct epochs, each will possess distinct current and previous epoch values. +Alternatively, if the blocks belong to the same epoch, they will both reference the identical previous epoch. Thus we can simply check whether the blocks have the same lock_checkpoint in their previous epoch data. + +### Sliding window density + +Let describe Mina's succinct sliding window density algorithm used by the long-range fork rule. In detail how windows are represented in blocks and how to compute _minimum window density_ + +#### Nomenclature + +- We say a slot is _filled_ if it contains a valid non-orphaned block. +- An _w-window_ is a sequential list of slots s1,...,sw of length _w_. +- A _sub-window_ is a contiguous interval of a _w-window_. +- The _density_ of an w-window (or sub-window) is the number non-orphan block within it. +- We use the terms _window_, _density window_, _sliding window_ and _w-window_ synonymously. +- v is the Length by which the window shifts in slots (shift parameter). ``slots_per_sub_window`` +- w is the Window length in slots. ( the sliding window is a _w_-long window that shifts _v_-slots at a time). + +The Samasika research paper presents security proofs that determine the secure values for v, w, and sub-windows per window. +A sliding window can also be viewed as a collection of _sub-windows_. +Rather than storing a window as clusters of slots, Samasika focuses solely on the density of each sub-window. +The density of a window is computed as the sum of the densities of its sub-windows. + +Given a window ``W`` that is a list of sub-window densities, the window density is: ``density(W) = sum(W)`` + +#### Window structure + +We use the phrase "window at sub-window _s_" to refer to the window _W_ whose most recent global sub-window is _s_. +In the Samasika paper the window structure actually consists of the **11 previous sub-window densities**, the **current sub-window density** and the **minimum window density** .A total of _13_ densities. +The most recent sub-window may be a previous sub-window or the current sub-window. + +#### Minimum window density + +The **minimum window density** at a given slot is defined as the minimum window density observed over all previous sub-windows and previous windows, all the way back to genesis. +When a new block _B_ with parent _P_ is created, the minimum window density is computed like this. +``B.min_window_density = min(P.min_window_density, current_window_density)`` +where ``current_window_density`` is the density of _B's_ projected window + +The relative sub-window _i_ of a sub-window _sw_ is its index within the window. + +#### Ring-shift + +When we shift a window ``[d0, d1, ..., d10]`` in order to add in a new sub-window ``d11``, we could evict the oldest sub-window d0 by shifting down all of the other sub-windows. Unfortunately, shifting a list in a SNARK circuit is very expensive. +It is more efficient (and also equivalent) to just replace the sub-window we wish to evict by overwriting it with the new sub-window, like this: + ``sub_window_densities: d11 | d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | d10`` + +#### Projected window + +Generating a new block and determining the optimal chain in accordance with the long-range fork rule involve the computation of a projected window. +Given a window _W_ and a future global slot _next_, the projected window of _W_ to slot _next_ is a transformation of _W_ into what it would look like if it were positioned at slot _next_. +For example, when a new block _B_ is produced with parent block _P_, the height of _B_ will be the height of _P_ plus one, but the global slot of _B_ will depend on how much time has elapsed since _P_ was created. +According to the Samasika paper, the window of _B_ must be initialized based on _P's_ window, then shifted because _B_ is ahead of _P_ and finally the value of _B's_ sub-window is incremented to account for _B_ belonging to it. +Remember that the calculation of window density, including sub-window s, only occurs when the sub-window is greater than s, after s becomes a previous sub-window. +Therefore, if _next_ is **k** sub-windows ahead of _W_ we must shift only **k - 1** times because we must keep the most recent previous sub-window. + +Now that we know how much to ring-shift, the next question is what density values to shift in. Remember that when projecting W to global slot next, we said that there are no intermediate blocks. That is, all of the slots and sub-windows are empty between W's current slot and next. Consequently, we must ring-shift in zero densities. The resulting window W is the projected window. + +Recall this diagram: + +![consensus01](/img/consensus01.png) + +Suppose window W's current sub-window is 11 whose density is d11 and d1 is the oldest sub-window density + +Now imagine we want to project W to global slot ``next = 15``. This is ``k = 15 - 11 = 4`` sub-windows ahead of the most recent sub-window. Therefore, we compute ``shift_count = min(max(k - 1, 0), sub_windows_per_window)`` in this case: ``shift_count = min(max(4 - 1, 0), 11) = 3`` + +Ring-shift in 3 zero densities to obtain the projected window. + +![consensus02](/img/consensus02.png) + +We can derive some instructive cases from the general rule + +![consensus03](/img/consensus03.png) + +##### Genesis window + +Anything related to Genesis windows is not involved in the Mina Bridge. + +##### Relative minimum window density + +When Mina engages "chain selection" in the long-range fork rule, It doesn't directly employ the minimum window densities found in in the current and candidate blocks. +Rather than that, Mina opts for the relative minimum window density... + +Remember that the minimum window density consistently decreases. Consequently, if a peer has been offline for a while and wants to reconnect, their current best chain might exhibit a higher minimum window density compared to the canonical chain candidate. +Additionally, the long-range fork rule dictates that the peer to choose the chain with the superior minimum density. +The calculation of the minimum window density does not take into account the relationship between the current best chain and the canonical chain with respect to time. +Within Samasika, time is encapsulated and safeguarded by the notions of slots and the VRF. When computing the minimum window density, it is imperative to factor in these elements as well. +The relative minimum window density solves this problem by projecting the joining peer's current block's window to the global slot of the candidate block. + +## Protocol + +This section outlines the consensus protocol in terms of events. **Initialize consensus** and **Select chain**. + +In the following description, dot notation is used to refer to the local data members of peers. For example, given peer P, we use P.genesis_block and P.tip, to refer to the genesis block and currently selected chain, respectively. +For example, given peer ``P``, we use ``P.genesis_block`` and ``P.tip``, to refer to the genesis block and currently selected chain, respectively. + +### Initialize consensus + +Things a peer MUST do to initialize consensus includes are _Load the genesis block_, _Get the tip_, _Bootstrap_ and _Catchup_ +Bootstrapping consensus requires the ability to synchronize epoch ledgers from the network. +All peers MUST have the ability to load both the staking epoch ledger and next epoch ledger from disk and by downloading them. P2P peers MUST also make these ledgers available for other peers. + +### Select chain + +Each time a peer's chains receive an update, the select chain event takes place. +A chain is said to be updated anytime a valid block is added or removed from its head. The chain selection algorithm also incorporates certain tiebreak logic. +Supplementary tiebreak logic becomes necessary when assessing chains with identical length or equal minimum density. + +Let ``P.tip`` refer to the top block of peer ``P``'s current best chain. Assuming an update to either ``P.tip`` or ``P.chains``, ``P`` must update its tip similar to this: + +![consensus06](/img/consensus06.png) + +The following selectSecureChain algorithm receives the peer's current best chain P.tip and its set of known valid chains P.chains and produces the most secure chain as output. + +![consensus07](/img/consensus07.png) + +And the ``selectLongerChain`` algorithm: + +![consensus08](/img/consensus08.png) + +### Maintaining the k-th predecessor epoch ledger + +The staking and next epoch ledgers MUST be finalized ledgers and can only advance when there is sufficient depth to achieve finality. +The staking and next epoch ledgers must be in a finalized state and can progress only when there is enough depth to ensure finality. Peers are required to retain the epoch ledger of the k-th predecessor from the tip, where ``k`` represents the depth of finality. +Due to the security prerequisites of Ouroboros, the gap in slots between the staking and next epoch ledgers may be great. Consequently, at any given moment, we essentially have three "pointers": staking ``s``, next ``n``, and finality ``k``. +The ``final_ledger`` (epoch ledger of the k-th predecessor from the tip) is updated each time chain selection occurs, i.e., for every new tip block appended. + +### Getting the tip + +For a joining peer to discover the head of the current chain it MUST not only obtain the tip, but also the min(k, tip.height - 1)-th block back from the tip. For the latter the peer MUST check the block's proof of finality. +Peers perform the proof of finality check by verifying two zero-knowledge proofs, one for the _tip_ and one for the _root_, and a Merkle proof for the chain of protocol state hashes between them. From b0d252d36d723a8dab7c86de1b0461043e0a1405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 14 Aug 2024 12:43:52 -0300 Subject: [PATCH 17/46] Remove root state hash, fix pub input hash variable (#320) --- contract/src/MinaBridge.sol | 19 ++++++------------- core/abi/MinaBridge.json | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index 92612e90..e162fcf1 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -4,31 +4,24 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; error NewStateIsNotValid(); -error TipStateIsWrong(); +error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); /// @title Mina to Ethereum Bridge's smart contract. contract MinaBridge { /// @notice The state hash of the last verified state as a Fp. bytes32 tipStateHash; - /// @notice The state hash of the transition frontier's root. - bytes32 rootStateHash; - /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; - constructor(address _alignedServiceAddr, bytes32 _rootStateHash) { + constructor(address _alignedServiceAddr, bytes32 _tipStateHash) { aligned = AlignedLayerServiceManager(_alignedServiceAddr); - rootStateHash = _rootStateHash; + tipStateHash = _tipStateHash; } /// @notice Returns the last verified state hash, or the root state hash if none. function getTipStateHash() external view returns (bytes32) { - if (tipStateHash != 0) { - return tipStateHash; - } else { - return rootStateHash; - } + return tipStateHash; } function updateTipState( @@ -42,11 +35,11 @@ contract MinaBridge { ) external { bytes32 pubInputTipStateHash; assembly { - mstore(pubInputTipStateHash, mload(add(pubInput, 0x40))) + pubInputTipStateHash := mload(add(pubInput, 0x40)) } if (pubInputTipStateHash != tipStateHash) { - revert TipStateIsWrong(); + revert TipStateIsWrong(pubInputTipStateHash, tipStateHash); } bytes32 pubInputCommitment = keccak256(pubInput); diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index 1f16d8f8..bd47b7b2 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_rootStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateTipState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161045038038061045083398101604081905261002f91610058565b600280546001600160a01b0319166001600160a01b039390931692909217909155600155610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b6103af806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e61004936600461020e565b61006a565b005b610058610154565b60405190815260200160405180910390f35b600060408201518152600054811461009557604051631b675ff960e11b815260040160405180910390fd5b815160208301206002546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100d9908d9086908e908e908e908e908e906004016102bd565b602060405180830381865afa1580156100f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011a9190610350565b9050801561012f576020840151600055610148565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000805415610164575060005490565b5060015490565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261019257600080fd5b813567ffffffffffffffff808211156101ad576101ad61016b565b604051601f8301601f19908116603f011681019082821181831017156101d5576101d561016b565b816040528381528660208588010111156101ee57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561022957600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461025457600080fd5b945060608801359350608088013567ffffffffffffffff8082111561027857600080fd5b6102848b838c01610181565b945060a08a0135935060c08a01359150808211156102a157600080fd5b506102ae8a828b01610181565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561031957868101830151858201610100015282016102fc565b8181111561032c57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561036257600080fd5b8151801515811461037257600080fd5b939250505056fea26469706673582212200cd80e4dec5f286ee4a940e5f60f45ea8db3f6df61037c719e23564cc57a917e64736f6c634300080c0033","sourceMap":"247:2001:63:-:0;;;572:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;647:7;:57;;-1:-1:-1;;;;;;647:57:63;-1:-1:-1;;;;;647:57:63;;;;;;;;;;;-1:-1:-1;714:30:63;247:2001;;14:351:65;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:65;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:65:o;:::-;247:2001:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e61004936600461020e565b61006a565b005b610058610154565b60405190815260200160405180910390f35b600060408201518152600054811461009557604051631b675ff960e11b815260040160405180910390fd5b815160208301206002546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100d9908d9086908e908e908e908e908e906004016102bd565b602060405180830381865afa1580156100f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011a9190610350565b9050801561012f576020840151600055610148565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000805415610164575060005490565b5060015490565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261019257600080fd5b813567ffffffffffffffff808211156101ad576101ad61016b565b604051601f8301601f19908116603f011681019082821181831017156101d5576101d561016b565b816040528381528660208588010111156101ee57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561022957600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461025457600080fd5b945060608801359350608088013567ffffffffffffffff8082111561027857600080fd5b6102848b838c01610181565b945060a08a0135935060c08a01359150808211156102a157600080fd5b506102ae8a828b01610181565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561031957868101830151858201610100015282016102fc565b8181111561032c57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561036257600080fd5b8151801515811461037257600080fd5b939250505056fea26469706673582212200cd80e4dec5f286ee4a940e5f60f45ea8db3f6df61037c719e23564cc57a917e64736f6c634300080c0033","sourceMap":"247:2001:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1042:1204;;;;;;:::i;:::-;;:::i;:::-;;843:193;;;:::i;:::-;;;2021:25:65;;;2009:2;1994:18;843:193:63;;;;;;;1042:1204;1350:28;1460:4;1450:8;1446:19;1440:26;1418:20;1411:56;1515:12;;1491:20;:36;1487:91;;1550:17;;-1:-1:-1;;;1550:17:63;;;;;;;;;;;1487:91;1617:19;;;;;;1673:7;;:269;;-1:-1:-1;;;1673:269:63;;1588:26;;-1:-1:-1;;;;;1673:7:63;;:28;;:269;;1715:15;;1617:19;;1776:30;;1820:18;;1852:15;;1881:11;;1906:26;;1673:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1647:295;;1957:18;1953:287;;;2151:4;2141:8;2137:19;2131:26;2112:17;2105:53;1953:287;;;2209:20;;-1:-1:-1;;;2209:20:63;;;;;;;;;;;1953:287;1340:906;;;1042:1204;;;;;;;:::o;843:193::-;893:7;916:12;;:17;912:118;;-1:-1:-1;956:12:63;;;843:193::o;912:118::-;-1:-1:-1;1006:13:63;;;843:193::o;14:127:65:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:65;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:1001::-;1000:6;1008;1016;1024;1032;1040;1048;1101:3;1089:9;1080:7;1076:23;1072:33;1069:53;;;1118:1;1115;1108:12;1069:53;1141:23;;;-1:-1:-1;1211:2:65;1196:18;;1183:32;;-1:-1:-1;1265:2:65;1250:18;;1237:32;-1:-1:-1;;1298:43:65;;1288:54;;1278:82;;1356:1;1353;1346:12;1278:82;1379:5;-1:-1:-1;1431:2:65;1416:18;;1403:32;;-1:-1:-1;1486:3:65;1471:19;;1458:33;1510:18;1540:14;;;1537:34;;;1567:1;1564;1557:12;1537:34;1590:49;1631:7;1622:6;1611:9;1607:22;1590:49;:::i;:::-;1580:59;;1686:3;1675:9;1671:19;1658:33;1648:43;;1744:3;1733:9;1729:19;1716:33;1700:49;;1774:2;1764:8;1761:16;1758:36;;;1790:1;1787;1780:12;1758:36;;1813:51;1856:7;1845:8;1834:9;1830:24;1813:51;:::i;:::-;1803:61;;;869:1001;;;;;;;;;;:::o;2057:1067::-;2372:6;2361:9;2354:25;2335:4;2398:2;2436:6;2431:2;2420:9;2416:18;2409:34;2479:6;2474:2;2463:9;2459:18;2452:34;2538:26;2534:31;2526:6;2522:44;2517:2;2506:9;2502:18;2495:72;2604:6;2598:3;2587:9;2583:19;2576:35;2648:3;2642;2631:9;2627:19;2620:32;2681:6;2675:13;2725:6;2719:3;2708:9;2704:19;2697:35;2750:1;2760:141;2774:6;2771:1;2768:13;2760:141;;;2870:14;;;2866:23;;2860:30;2835:17;;;2854:3;2831:27;2824:67;2789:10;;2760:141;;;2919:6;2916:1;2913:13;2910:92;;;2990:1;2984:3;2975:6;2964:9;2960:22;2956:32;2949:43;2910:92;-1:-1:-1;3105:3:65;3090:19;;3083:35;;;;-1:-1:-1;;3063:2:65;3042:15;;;;-1:-1:-1;;3038:29:65;3023:45;3070:3;3019:55;;2057:1067;-1:-1:-1;;;;;;2057:1067:65:o;3129:277::-;3196:6;3249:2;3237:9;3228:7;3224:23;3220:32;3217:52;;;3265:1;3262;3255:12;3217:52;3297:9;3291:16;3350:5;3343:13;3336:21;3329:5;3326:32;3316:60;;3372:1;3369;3362:12;3316:60;3395:5;3129:277;-1:-1:-1;;;3129:277:65:o","linkReferences":{}},"methodIdentifiers":{"getTipStateHash()":"b8184745","updateTipState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"afa264c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_rootStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateTipState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash, or the root state hash if none.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x06ece82a42040eb6f4ebc8562a9486b244b6ffa00efe34347a9e2f52c4781163\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e5a322c03a10509830ce35b965e816d216a2b6ed67b2613e1e56c79658bd5557\",\"dweb:/ipfs/QmbMuhpwgCzMi1YEfMV3gJZmRXCBDQk1JRjCLq1d8dF8ii\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_rootStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateTipState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getTipStateHash()":{"notice":"Returns the last verified state hash, or the root state hash if none."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0x06ece82a42040eb6f4ebc8562a9486b244b6ffa00efe34347a9e2f52c4781163","urls":["bzz-raw://e5a322c03a10509830ce35b965e816d216a2b6ed67b2613e1e56c79658bd5557","dweb:/ipfs/QmbMuhpwgCzMi1YEfMV3gJZmRXCBDQk1JRjCLq1d8dF8ii"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateTipState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161044738038061044783398101604081905261002f91610058565b600180546001600160a01b0319166001600160a01b039390931692909217909155600055610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b6103a6806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e610049366004610205565b610065565b005b60005460405190815260200160405180910390f35b604081015160005481146100a35760005460405163177b002560e31b815261009a918391600401918252602082015260400190565b60405180910390fd5b815160208301206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100e7908d9086908e908e908e908e908e906004016102b4565b602060405180830381865afa158015610104573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101289190610347565b9050801561013d576020840151600055610156565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261018957600080fd5b813567ffffffffffffffff808211156101a4576101a4610162565b604051601f8301601f19908116603f011681019082821181831017156101cc576101cc610162565b816040528381528660208588010111156101e557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561022057600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461024b57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561026f57600080fd5b61027b8b838c01610178565b945060a08a0135935060c08a013591508082111561029857600080fd5b506102a58a828b01610178565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561031057868101830151858201610100015282016102f3565b8181111561032357600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561035957600080fd5b8151801515811461036957600080fd5b939250505056fea264697066735822122073dc6f9580f69149a190b7aadeec83b18f341c608aab952e03fd0a4bf748252664736f6c634300080c0033","sourceMap":"297:1834:63:-:0;;;528:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;602:7;:57;;-1:-1:-1;;;;;;602:57:63;-1:-1:-1;;;;;602:57:63;;;;;;;;;;;-1:-1:-1;669:28:63;297:1834;;14:351:65;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:65;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:65:o;:::-;297:1834:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e610049366004610205565b610065565b005b60005460405190815260200160405180910390f35b604081015160005481146100a35760005460405163177b002560e31b815261009a918391600401918252602082015260400190565b60405180910390fd5b815160208301206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100e7908d9086908e908e908e908e908e906004016102b4565b602060405180830381865afa158015610104573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101289190610347565b9050801561013d576020840151600055610156565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261018957600080fd5b813567ffffffffffffffff808211156101a4576101a4610162565b604051601f8301601f19908116603f011681019082821181831017156101cc576101cc610162565b816040528381528660208588010111156101e557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561022057600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461024b57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561026f57600080fd5b61027b8b838c01610178565b945060a08a0135935060c08a013591508082111561029857600080fd5b506102a58a828b01610178565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561031057868101830151858201610100015282016102f3565b8181111561032357600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561035957600080fd5b8151801515811461036957600080fd5b939250505056fea264697066735822122073dc6f9580f69149a190b7aadeec83b18f341c608aab952e03fd0a4bf748252664736f6c634300080c0033","sourceMap":"297:1834:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;897:1232;;;;;;:::i;:::-;;:::i;:::-;;796:95;846:7;872:12;796:95;;2021:25:65;;;2009:2;1994:18;796:95:63;;;;;;;897:1232;1310:4;1296:19;;1290:26;1205:28;1364:12;1340:36;;1336:125;;1437:12;;1399:51;;-1:-1:-1;;;1399:51:63;;;;1415:20;;1399:51;;2231:25:65;;;2287:2;2272:18;;2265:34;2219:2;2204:18;;2057:248;1399:51:63;;;;;;;;1336:125;1500:19;;;;;;1556:7;;:269;;-1:-1:-1;;;1556:269:63;;1471:26;;-1:-1:-1;;;;;1556:7:63;;:28;;:269;;1598:15;;1500:19;;1659:30;;1703:18;;1735:15;;1764:11;;1789:26;;1556:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1530:295;;1840:18;1836:287;;;2034:4;2024:8;2020:19;2014:26;1995:17;1988:53;1836:287;;;2092:20;;-1:-1:-1;;;2092:20:63;;;;;;;;;;;1836:287;1195:934;;;897:1232;;;;;;;:::o;14:127:65:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:65;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:1001::-;1000:6;1008;1016;1024;1032;1040;1048;1101:3;1089:9;1080:7;1076:23;1072:33;1069:53;;;1118:1;1115;1108:12;1069:53;1141:23;;;-1:-1:-1;1211:2:65;1196:18;;1183:32;;-1:-1:-1;1265:2:65;1250:18;;1237:32;-1:-1:-1;;1298:43:65;;1288:54;;1278:82;;1356:1;1353;1346:12;1278:82;1379:5;-1:-1:-1;1431:2:65;1416:18;;1403:32;;-1:-1:-1;1486:3:65;1471:19;;1458:33;1510:18;1540:14;;;1537:34;;;1567:1;1564;1557:12;1537:34;1590:49;1631:7;1622:6;1611:9;1607:22;1590:49;:::i;:::-;1580:59;;1686:3;1675:9;1671:19;1658:33;1648:43;;1744:3;1733:9;1729:19;1716:33;1700:49;;1774:2;1764:8;1761:16;1758:36;;;1790:1;1787;1780:12;1758:36;;1813:51;1856:7;1845:8;1834:9;1830:24;1813:51;:::i;:::-;1803:61;;;869:1001;;;;;;;;;;:::o;2310:1067::-;2625:6;2614:9;2607:25;2588:4;2651:2;2689:6;2684:2;2673:9;2669:18;2662:34;2732:6;2727:2;2716:9;2712:18;2705:34;2791:26;2787:31;2779:6;2775:44;2770:2;2759:9;2755:18;2748:72;2857:6;2851:3;2840:9;2836:19;2829:35;2901:3;2895;2884:9;2880:19;2873:32;2934:6;2928:13;2978:6;2972:3;2961:9;2957:19;2950:35;3003:1;3013:141;3027:6;3024:1;3021:13;3013:141;;;3123:14;;;3119:23;;3113:30;3088:17;;;3107:3;3084:27;3077:67;3042:10;;3013:141;;;3172:6;3169:1;3166:13;3163:92;;;3243:1;3237:3;3228:6;3217:9;3213:22;3209:32;3202:43;3163:92;-1:-1:-1;3358:3:65;3343:19;;3336:35;;;;-1:-1:-1;;3316:2:65;3295:15;;;;-1:-1:-1;;3291:29:65;3276:45;3323:3;3272:55;;2310:1067;-1:-1:-1;;;;;;2310:1067:65:o;3382:277::-;3449:6;3502:2;3490:9;3481:7;3477:23;3473:32;3470:52;;;3518:1;3515;3508:12;3470:52;3550:9;3544:16;3603:5;3596:13;3589:21;3582:5;3579:32;3569:60;;3625:1;3622;3615:12;3569:60;3648:5;3382:277;-1:-1:-1;;;3382:277:65:o","linkReferences":{}},"methodIdentifiers":{"getTipStateHash()":"b8184745","updateTipState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"afa264c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateTipState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash, or the root state hash if none.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x7e85d70303a8c9c7edfece6ec1f696dd93f75bb148edf9331fdd0fc613872a77\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://289b4a1846e50d07e5273b75407220b5f9414c885db6d35510ef4ec1bc1022ea\",\"dweb:/ipfs/QmbX4PNno1Q7gKGFQTksjydmAqUMu9KdvTCL2k5Mz7U4W2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateTipState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getTipStateHash()":{"notice":"Returns the last verified state hash, or the root state hash if none."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0x7e85d70303a8c9c7edfece6ec1f696dd93f75bb148edf9331fdd0fc613872a77","urls":["bzz-raw://289b4a1846e50d07e5273b75407220b5f9414c885db6d35510ef4ec1bc1022ea","dweb:/ipfs/QmbX4PNno1Q7gKGFQTksjydmAqUMu9KdvTCL2k5Mz7U4W2"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file From 5d0b446afd99cbae455a05f1f43f779b9e5c1145 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Fri, 16 Aug 2024 18:47:27 -0300 Subject: [PATCH 18/46] Aligned Layer with Holesky (#303) * Add Holesky vars * Update Mina contract * Make it work for Holesky * Fix clippy issues * Log verification time * Add Holesky constants and update dependencies * Update Holesky contract * Add newline in gitignore * Move proof generator addr to Aligned group * Revert Aligned SM address in Forge script This script will be removed in another PR because it was replaced with the contract_deployer. * Integrate private key and keystore with contract deployment * Point aligned branch back to mina * Update Mina Holesky contract --- .gitignore | 1 + Makefile | 2 +- account_inclusion/Cargo.lock | 4 +- contract_deployer/Cargo.lock | 158 +++++++++++++------------ contract_deployer/Cargo.toml | 1 + contract_deployer/src/main.rs | 36 ++++-- core/Cargo.lock | 174 +++++++++++++++------------- core/Cargo.toml | 2 +- core/src/aligned_polling_service.rs | 37 +++++- core/src/main.rs | 7 +- core/src/smart_contract_utility.rs | 18 ++- core/src/utils/constants.rs | 7 +- core/src/utils/env.rs | 4 +- core/src/utils/mod.rs | 1 + core/src/utils/wallet_alloy.rs | 49 ++++++++ 15 files changed, 313 insertions(+), 188 deletions(-) create mode 100644 core/src/utils/wallet_alloy.rs diff --git a/.gitignore b/.gitignore index 45c5b477..9d4b2af2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ protocol_state.pub protocol_state.proof aligned_verification_data .env +nonce_*.bin diff --git a/Makefile b/Makefile index 2ba8b22e..4f7f9cd4 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ gen_contract_abi: forge build --root contract/ cp contract/out/MinaBridge.sol/MinaBridge.json core/abi/MinaBridge.json -deploy_contract_anvil: gen_contract_abi +deploy_contract: gen_contract_abi @cargo run --manifest-path contract_deployer/Cargo.toml --release verify_account_inclusion: diff --git a/account_inclusion/Cargo.lock b/account_inclusion/Cargo.lock index bb26f568..f47c8426 100644 --- a/account_inclusion/Cargo.lock +++ b/account_inclusion/Cargo.lock @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#e0e42d2543823482336b2f35d9e3392adb1eed5a" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#08a220c3723a0117923281401a632fd3fb74657e" dependencies = [ "ethers", "futures-util", @@ -509,6 +509,8 @@ dependencies = [ "alloy-primitives", "alloy-signer", "async-trait", + "elliptic-curve", + "eth-keystore", "k256", "rand", "thiserror", diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index 8794d3a7..a106fcc7 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#e0e42d2543823482336b2f35d9e3392adb1eed5a" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#08a220c3723a0117923281401a632fd3fb74657e" dependencies = [ "ethers", "futures-util", @@ -121,9 +121,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.25" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3312b2a48f29abe7c3ea7c7fbc1f8cc6ea09b85d74b6232e940df35f2f3826fd" +checksum = "5b515e82c8468ddb6ff8db21c78a5997442f113fd8471fd5b2261b2602dd0c67" dependencies = [ "num_enum", "strum 0.26.3", @@ -375,7 +375,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -488,6 +488,8 @@ dependencies = [ "alloy-primitives", "alloy-signer", "async-trait", + "elliptic-curve", + "eth-keystore", "k256", "rand", "thiserror", @@ -504,7 +506,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -521,7 +523,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", "syn-solidity", "tiny-keccak", ] @@ -539,7 +541,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.74", "syn-solidity", ] @@ -924,7 +926,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -935,7 +937,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -966,7 +968,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -1289,9 +1291,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.7" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" +checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292" dependencies = [ "jobserver", "libc", @@ -1449,6 +1451,7 @@ checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" name = "contract_deployer" version = "0.1.0" dependencies = [ + "aligned-sdk", "core", "env_logger", "ethers", @@ -1509,9 +1512,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -1524,9 +1527,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -1653,7 +1656,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -1675,7 +1678,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -1738,7 +1741,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -1918,7 +1921,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -2092,7 +2095,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.72", + "syn 2.0.74", "toml 0.8.19", "walkdir", ] @@ -2109,7 +2112,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -2134,7 +2137,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.72", + "syn 2.0.74", "tempfile", "thiserror", "tiny-keccak", @@ -2452,7 +2455,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -3139,9 +3142,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -3325,22 +3328,22 @@ dependencies = [ [[package]] name = "linkme" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" +checksum = "3c943daedff228392b791b33bba32e75737756e80a613e32e246c6ce9cbab20a" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" +checksum = "cb26336e6dc7cc76e7927d2c9e7e3bb376d7af65a6f56a0b16c47d18a9b1abc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -3548,9 +3551,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi", "libc", @@ -3688,7 +3691,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -3739,9 +3742,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.2" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -3814,7 +3817,7 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -3840,7 +3843,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -4072,7 +4075,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -4110,7 +4113,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -4205,7 +4208,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -4997,29 +5000,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.207" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.207" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" dependencies = [ "itoa", "memchr", @@ -5097,7 +5100,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5323,7 +5326,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5365,9 +5368,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" dependencies = [ "proc-macro2", "quote", @@ -5383,7 +5386,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5439,15 +5442,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.11.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5478,7 +5481,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5569,7 +5572,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5763,7 +5766,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -6034,34 +6037,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -6071,9 +6075,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6081,22 +6085,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-timer" @@ -6127,9 +6131,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", @@ -6434,7 +6438,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -6454,7 +6458,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index 6dd3d664..ff03eef1 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -16,6 +16,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index 348ed803..d07efe91 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -1,10 +1,15 @@ use core::{ mina_polling_service::query_root, smart_contract_utility::{deploy_mina_bridge_contract, MinaBridgeConstructorArgs}, - utils::{constants::ALIGNED_SM_DEVNET_ETH_ADDR, env::EnvironmentVariables}, + utils::{ + constants::{ALIGNED_SM_DEVNET_ETH_ADDR, ALIGNED_SM_HOLESKY_ETH_ADDR}, + env::EnvironmentVariables, + wallet_alloy::get_wallet, + }, }; use std::{process, str::FromStr}; +use aligned_sdk::core::types::Chain; use kimchi::turshi::helper::CairoFieldHelpers; use log::{debug, error, info}; use mina_curves::pasta::Fp; @@ -20,6 +25,9 @@ async fn main() { let EnvironmentVariables { rpc_url, eth_rpc_url, + chain, + private_key, + keystore_path, .. } = EnvironmentVariables::new().unwrap_or_else(|err| { error!("{}", err); @@ -40,14 +48,24 @@ async fn main() { process::exit(1); }); - let contract_constructor_args = - MinaBridgeConstructorArgs::new(ALIGNED_SM_DEVNET_ETH_ADDR, root_hash).unwrap_or_else( - |err| { - error!("{}", err); - process::exit(1); - }, - ); - deploy_mina_bridge_contract(ð_rpc_url, contract_constructor_args) + let aligned_sm_addr = match chain { + Chain::Devnet => ALIGNED_SM_DEVNET_ETH_ADDR, + Chain::Holesky => ALIGNED_SM_HOLESKY_ETH_ADDR, + _ => todo!(), + }; + + let contract_constructor_args = MinaBridgeConstructorArgs::new(aligned_sm_addr, root_hash) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let wallet = get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + deploy_mina_bridge_contract(ð_rpc_url, contract_constructor_args, &wallet) .await .unwrap_or_else(|err| { error!("{}", err); diff --git a/core/Cargo.lock b/core/Cargo.lock index 3cd895cc..c8981c57 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#db616f7670e7daa20786cf78d0bde91ffcb49381" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#08a220c3723a0117923281401a632fd3fb74657e" dependencies = [ "ethers", "futures-util", @@ -375,7 +375,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -488,6 +488,8 @@ dependencies = [ "alloy-primitives", "alloy-signer", "async-trait", + "elliptic-curve", + "eth-keystore", "k256", "rand", "thiserror", @@ -504,7 +506,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -517,11 +519,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.3.0", + "indexmap 2.4.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", "syn-solidity", "tiny-keccak", ] @@ -539,7 +541,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.74", "syn-solidity", ] @@ -924,7 +926,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -935,7 +937,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -966,7 +968,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -1289,12 +1291,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.8" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549" +checksum = "5fb8dd288a69fc53a1996d7ecfbf4a20d59065bff137ce7e56bbd620de191189" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -1495,9 +1498,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -1510,9 +1513,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -1639,7 +1642,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -1661,7 +1664,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -1724,7 +1727,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -1904,7 +1907,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -2078,7 +2081,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.72", + "syn 2.0.74", "toml 0.8.19", "walkdir", ] @@ -2095,7 +2098,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -2120,7 +2123,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.72", + "syn 2.0.74", "tempfile", "thiserror", "tiny-keccak", @@ -2438,7 +2441,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -2636,7 +2639,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.3.0", + "indexmap 2.4.0", "slab", "tokio", "tokio-util", @@ -3027,9 +3030,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3125,9 +3128,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -3311,22 +3314,22 @@ dependencies = [ [[package]] name = "linkme" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" +checksum = "3c943daedff228392b791b33bba32e75737756e80a613e32e246c6ce9cbab20a" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" +checksum = "cb26336e6dc7cc76e7927d2c9e7e3bb376d7af65a6f56a0b16c47d18a9b1abc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -3534,9 +3537,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi", "libc", @@ -3674,7 +3677,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -3800,7 +3803,7 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -3826,7 +3829,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -4015,7 +4018,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.3.0", + "indexmap 2.4.0", ] [[package]] @@ -4058,7 +4061,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -4096,7 +4099,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -4191,7 +4194,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -4983,29 +4986,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.205" +version = "1.0.207" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" +checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.205" +version = "1.0.207" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" +checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" dependencies = [ "itoa", "memchr", @@ -5054,7 +5057,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.3.0", + "indexmap 2.4.0", "serde", "serde_derive", "serde_json", @@ -5083,7 +5086,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5141,6 +5144,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signature" version = "2.2.0" @@ -5309,7 +5318,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5351,9 +5360,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" dependencies = [ "proc-macro2", "quote", @@ -5369,7 +5378,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5464,7 +5473,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5555,7 +5564,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -5683,7 +5692,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "toml_datetime", "winnow 0.5.40", ] @@ -5694,7 +5703,7 @@ version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "serde", "serde_spanned", "toml_datetime", @@ -5719,15 +5728,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -5749,7 +5758,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -6020,34 +6029,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -6057,9 +6067,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6067,22 +6077,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-timer" @@ -6113,9 +6123,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", @@ -6420,7 +6430,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] @@ -6440,7 +6450,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.74", ] [[package]] diff --git a/core/Cargo.toml b/core/Cargo.toml index 56aceb64..b47202c5 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -36,7 +36,7 @@ graphql_client = { version = "0.14.0", features = [ "reqwest", "reqwest-blocking", ] } -alloy = { version = "0.2.1", features = ["full"] } +alloy = { version = "0.2.1", features = ["full", "signer-keystore"] } [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index b47e3675..c21957bf 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + use aligned_sdk::{ core::types::{AlignedVerificationData, Chain, VerificationData}, sdk::{get_next_nonce, submit_and_wait}, @@ -5,6 +7,7 @@ use aligned_sdk::{ use ethers::{ core::k256::ecdsa::SigningKey, signers::{Signer, Wallet}, + types::{Address, U256}, }; use log::info; @@ -17,9 +20,7 @@ pub async fn submit( eth_rpc_url: &str, wallet: Wallet, ) -> Result { - let nonce = get_next_nonce(eth_rpc_url, wallet.address(), batcher_eth_addr) - .await - .map_err(|err| err.to_string())?; + let nonce = get_nonce(eth_rpc_url, wallet.address(), batcher_eth_addr).await?; info!("Submitting Mina proof into Aligned and waiting for the batch to be verified..."); let aligned_verification_data = submit_and_wait( @@ -40,3 +41,33 @@ pub async fn submit( Err("Verification data was not returned when submitting the proof, possibly because the connection was closed sooner than expected.".to_string()) } } + +async fn get_nonce( + eth_rpc_url: &str, + address: Address, + batcher_eth_addr: &str, +) -> Result { + let nonce = get_next_nonce(eth_rpc_url, address, batcher_eth_addr) + .await + .map_err(|err| err.to_string())?; + + let nonce_file = &PathBuf::from(format!("nonce_{:?}.bin", address)); + + let local_nonce = std::fs::read(nonce_file).unwrap_or(vec![0u8; 32]); + let local_nonce = U256::from_big_endian(local_nonce.as_slice()); + + let nonce = if local_nonce > nonce { + local_nonce + } else { + nonce + }; + + let mut nonce_bytes = [0; 32]; + + (nonce + U256::from(1)).to_big_endian(&mut nonce_bytes); + + std::fs::write(nonce_file, nonce_bytes) + .map_err(|err| format!("Error writing to file in path {:?}: {err}", nonce_file))?; + + Ok(nonce) +} diff --git a/core/src/main.rs b/core/src/main.rs index d9d10d29..a0525fd3 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -4,10 +4,11 @@ use core::{ }; use kimchi::turshi::helper::CairoFieldHelpers; use log::{debug, error, info}; -use std::process; +use std::{process, time::SystemTime}; #[tokio::main] async fn main() { + let now = SystemTime::now(); env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); debug!("Reading env. variables"); @@ -97,4 +98,8 @@ async fn main() { "Success! verified Mina state hash 0x{} was stored in the bridge's smart contract", verified_state_hash.to_hex_be() ); + + if let Ok(elapsed) = now.elapsed() { + info!("Time spent: {} ms", elapsed.as_millis()); + } } diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index 1b5f7526..e0522aab 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -4,7 +4,6 @@ use std::sync::Arc; use aligned_sdk::core::types::{AlignedVerificationData, Chain, VerificationDataCommitment}; use alloy::network::EthereumWallet; use alloy::providers::ProviderBuilder; -use alloy::signers::local::PrivateKeySigner; use alloy::sol; use ethers::{abi::AbiEncode, prelude::*}; use k256::ecdsa::SigningKey; @@ -12,7 +11,9 @@ use kimchi::o1_utils::FieldHelpers; use log::{debug, error, info}; use mina_curves::pasta::Fp; -use crate::utils::constants::{ANVIL_CHAIN_ID, ANVIL_PRIVATE_KEY, BRIDGE_DEVNET_ETH_ADDR}; +use crate::utils::constants::{ + ANVIL_CHAIN_ID, BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, HOLESKY_CHAIN_ID, +}; abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); @@ -59,6 +60,7 @@ pub async fn update( ) -> Result { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, + Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, _ => { error!("Unimplemented Ethereum contract on selected chain"); unimplemented!() @@ -139,6 +141,7 @@ pub async fn update( pub async fn get_tip_state_hash(chain: &Chain, eth_rpc_url: &str) -> Result { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, + Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, _ => { error!("Unimplemented Ethereum contract on selected chain"); unimplemented!() @@ -161,15 +164,8 @@ pub async fn get_tip_state_hash(chain: &Chain, eth_rpc_url: &str) -> Result Result { - // TODO(xqft): replace ethers with alloy - - // TODO(xqft): take wallet as parameter - let signer: PrivateKeySigner = ANVIL_PRIVATE_KEY - .parse() - .map_err(|_| "Failed to get Anvil signer".to_string())?; - let wallet = EthereumWallet::from(signer); - let provider = ProviderBuilder::new() .with_recommended_fillers() .wallet(wallet) @@ -202,10 +198,12 @@ fn mina_bridge_contract( Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; let chain_id = match chain { Chain::Devnet => ANVIL_CHAIN_ID, + Chain::Holesky => HOLESKY_CHAIN_ID, _ => unimplemented!(), }; let signer = SignerMiddleware::new(eth_rpc_provider, wallet.with_chain_id(chain_id)); let client = Arc::new(signer); + debug!("contract address: {contract_address}"); Ok(MinaBridgeEthereum::new(contract_address, client)) } diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index b713c8ce..ccd0b199 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -5,7 +5,9 @@ pub const ANVIL_CHAIN_ID: u64 = 31337; pub const ANVIL_BATCHER_ADDR: &str = "ws://localhost:8080"; pub const ANVIL_BATCHER_ETH_ADDR: &str = "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0"; pub const ANVIL_ETH_RPC_URL: &str = "http://localhost:8545"; -pub const ANVIL_PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; + +// Holesky related constants +pub const HOLESKY_CHAIN_ID: u64 = 17000; // Mina related constants // TODO(gabrielbosio): These are temporary, we will fetch the tip from the Mina contract instead of using these hardcoded values. @@ -16,6 +18,9 @@ pub const MINA_STATE_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; +pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x9dD655fE21fA10FeD52C0DAD48Ac937517f1451A"; // Aligned related constants +pub const PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; pub const ALIGNED_SM_DEVNET_ETH_ADDR: &str = "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8"; +pub const ALIGNED_SM_HOLESKY_ETH_ADDR: &str = "0x0584313310bD52B77CF0b81b350Ca447B97Df5DF"; diff --git a/core/src/utils/env.rs b/core/src/utils/env.rs index 683939bc..d3016213 100644 --- a/core/src/utils/env.rs +++ b/core/src/utils/env.rs @@ -4,7 +4,7 @@ use dotenv::dotenv; use log::debug; use super::constants::{ - ANVIL_BATCHER_ADDR, ANVIL_BATCHER_ETH_ADDR, ANVIL_ETH_RPC_URL, ANVIL_PROOF_GENERATOR_ADDR, + ANVIL_BATCHER_ADDR, ANVIL_BATCHER_ETH_ADDR, ANVIL_ETH_RPC_URL, PROOF_GENERATOR_ADDR, }; pub struct EnvironmentVariables { @@ -62,7 +62,7 @@ impl EnvironmentVariables { let batcher_eth_addr = load_var_or("BATCHER_ETH_ADDR", ANVIL_BATCHER_ETH_ADDR, &chain)?; let eth_rpc_url = load_var_or("ETH_RPC_URL", ANVIL_ETH_RPC_URL, &chain)?; let proof_generator_addr = - load_var_or("PROOF_GENERATOR_ADDR", ANVIL_PROOF_GENERATOR_ADDR, &chain)?; + load_var_or("PROOF_GENERATOR_ADDR", PROOF_GENERATOR_ADDR, &chain)?; let keystore_path = std::env::var("KEYSTORE_PATH").ok(); let private_key = std::env::var("PRIVATE_KEY").ok(); diff --git a/core/src/utils/mod.rs b/core/src/utils/mod.rs index 758c9cd9..6e24fa03 100644 --- a/core/src/utils/mod.rs +++ b/core/src/utils/mod.rs @@ -1,3 +1,4 @@ pub mod constants; pub mod env; pub mod wallet; +pub mod wallet_alloy; diff --git a/core/src/utils/wallet_alloy.rs b/core/src/utils/wallet_alloy.rs new file mode 100644 index 00000000..721440f8 --- /dev/null +++ b/core/src/utils/wallet_alloy.rs @@ -0,0 +1,49 @@ +use aligned_sdk::core::types::Chain; +use alloy::{ + network::EthereumWallet, + signers::local::{LocalSigner, PrivateKeySigner}, +}; +use log::info; + +use crate::utils::constants::ANVIL_PRIVATE_KEY; + +pub fn get_wallet( + chain: &Chain, + keystore_path: Option<&str>, + private_key: Option<&str>, +) -> Result { + if keystore_path.is_some() && private_key.is_some() { + return Err( + "Both keystore and private key env. variables are defined. Choose only one." + .to_string(), + ); + } + + if matches!(chain, Chain::Holesky) { + if let Some(keystore_path) = keystore_path { + info!("Using keystore for Holesky wallet"); + let password = rpassword::prompt_password("Please enter your keystore password:") + .map_err(|err| err.to_string())?; + let signer = LocalSigner::decrypt_keystore(keystore_path, password) + .map_err(|err| err.to_string())?; + Ok(EthereumWallet::new(signer)) + } else if let Some(private_key) = private_key { + info!("Using private key for Holesky wallet"); + let signer: PrivateKeySigner = private_key + .parse() + .map_err(|_| "Failed to get Anvil signer".to_string())?; + Ok(EthereumWallet::new(signer)) + } else { + return Err( + "Holesky chain was selected but couldn't find KEYSTORE_PATH or PRIVATE_KEY." + .to_string(), + ); + } + } else { + info!("Using Anvil wallet 9"); + let signer: PrivateKeySigner = ANVIL_PRIVATE_KEY + .parse() + .map_err(|_| "Failed to get Anvil signer".to_string())?; + Ok(EthereumWallet::new(signer)) + } +} From 9b5521956e42326a3aaa1df21cc0778f2a26064a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 23 Aug 2024 17:02:25 -0300 Subject: [PATCH 19/46] Remove account inclusion crate's GraphQL query, improve mina_polling_service's one (#317) * Added merkle query * Rename query_and_serialize * WIP merkle query * Fix test * WIP Account query * Finished account query * Fixed TokenId deserialization * Remove account query * Fix clippy * Delete account_inclusion directory * Update ci.yaml --- .github/workflows/ci.yaml | 7 - account_inclusion/.gitignore | 19 - account_inclusion/Cargo.lock | 6617 ------------------------- account_inclusion/Cargo.toml | 27 - account_inclusion/src/lib.rs | 297 -- account_inclusion/src/main.rs | 64 - contract_deployer/Cargo.lock | 11 + core/Cargo.lock | 173 +- core/Cargo.toml | 1 + core/src/graphql/merkle_query.graphql | 16 + core/src/graphql/mina_schema.json | 1491 ++++-- core/src/main.rs | 2 +- core/src/mina_polling_service.rs | 71 +- 13 files changed, 1126 insertions(+), 7670 deletions(-) delete mode 100644 account_inclusion/.gitignore delete mode 100644 account_inclusion/Cargo.lock delete mode 100644 account_inclusion/Cargo.toml delete mode 100644 account_inclusion/src/lib.rs delete mode 100644 account_inclusion/src/main.rs create mode 100644 core/src/graphql/merkle_query.graphql diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a25a3881..4492659f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,10 +13,3 @@ jobs: with: skip_run: true directory: core - - account_inclusion: - name: Test Account Inclusion - uses: ./.github/workflows/rust_ci.yaml - with: - skip_run: true - directory: account_inclusion \ No newline at end of file diff --git a/account_inclusion/.gitignore b/account_inclusion/.gitignore deleted file mode 100644 index beaa6203..00000000 --- a/account_inclusion/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -# Cargo build -**/target - -# Cargo config -.cargo - -# Profile-guided optimization -/tmp -pgo-data.profdata - -# MacOS nuisances -.DS_Store - -# Proofs -**/proof-with-pis.json -**/proof-with-io.json - -# Env -.env diff --git a/account_inclusion/Cargo.lock b/account_inclusion/Cargo.lock deleted file mode 100644 index f47c8426..00000000 --- a/account_inclusion/Cargo.lock +++ /dev/null @@ -1,6617 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "account-inclusion" -version = "0.1.0" -dependencies = [ - "base64 0.22.1", - "core", - "dotenv", - "env_logger", - "hex", - "kimchi", - "log", - "mina-p2p-messages", - "mina-tree", - "num-bigint", - "reqwest 0.12.5", - "serde", - "serde_json", - "snark", - "tokio", -] - -[[package]] -name = "addr2line" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy 0.7.35", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "aligned-sdk" -version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#08a220c3723a0117923281401a632fd3fb74657e" -dependencies = [ - "ethers", - "futures-util", - "hex", - "lambdaworks-crypto", - "log", - "serde", - "serde_json", - "sha3", - "tokio", - "tokio-tungstenite 0.23.1", - "url", -] - -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "alloy" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" -dependencies = [ - "alloy-consensus", - "alloy-contract", - "alloy-core", - "alloy-eips", - "alloy-genesis", - "alloy-network", - "alloy-provider", - "alloy-pubsub", - "alloy-rpc-client", - "alloy-rpc-types", - "alloy-serde", - "alloy-signer", - "alloy-signer-local", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", -] - -[[package]] -name = "alloy-chains" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3312b2a48f29abe7c3ea7c7fbc1f8cc6ea09b85d74b6232e940df35f2f3826fd" -dependencies = [ - "num_enum", - "strum 0.26.3", -] - -[[package]] -name = "alloy-consensus" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "c-kzg", - "serde", -] - -[[package]] -name = "alloy-contract" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4e0ef72b0876ae3068b2ed7dfae9ae1779ce13cfaec2ee1f08f5bd0348dc57" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-network", - "alloy-network-primitives", - "alloy-primitives", - "alloy-provider", - "alloy-pubsub", - "alloy-rpc-types-eth", - "alloy-sol-types", - "alloy-transport", - "futures", - "futures-util", - "thiserror", -] - -[[package]] -name = "alloy-core" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-types", -] - -[[package]] -name = "alloy-dyn-abi" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-type-parser", - "alloy-sol-types", - "const-hex", - "itoa", - "serde", - "serde_json", - "winnow 0.6.18", -] - -[[package]] -name = "alloy-eips" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "c-kzg", - "derive_more", - "k256", - "once_cell", - "serde", - "sha2 0.10.8", -] - -[[package]] -name = "alloy-genesis" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" -dependencies = [ - "alloy-primitives", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-json-abi" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" -dependencies = [ - "alloy-primitives", - "alloy-sol-type-parser", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-json-rpc" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" -dependencies = [ - "alloy-primitives", - "alloy-sol-types", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "alloy-network" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "alloy-signer", - "alloy-sol-types", - "async-trait", - "auto_impl", - "futures-utils-wasm", - "thiserror", -] - -[[package]] -name = "alloy-network-primitives" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" -dependencies = [ - "alloy-primitives", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-primitives" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more", - "hex-literal", - "itoa", - "k256", - "keccak-asm", - "proptest", - "rand", - "ruint", - "serde", - "tiny-keccak", -] - -[[package]] -name = "alloy-provider" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-network", - "alloy-network-primitives", - "alloy-primitives", - "alloy-pubsub", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", - "async-stream", - "async-trait", - "auto_impl", - "dashmap", - "futures", - "futures-utils-wasm", - "lru", - "pin-project", - "reqwest 0.12.5", - "serde", - "serde_json", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "alloy-pubsub" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f5da2c55cbaf229bad3c5f8b00b5ab66c74ef093e5f3a753d874cfecf7d2281" -dependencies = [ - "alloy-json-rpc", - "alloy-primitives", - "alloy-transport", - "bimap", - "futures", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower", - "tracing", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" -dependencies = [ - "alloy-rlp-derive", - "arrayvec", - "bytes", -] - -[[package]] -name = "alloy-rlp-derive" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "alloy-rpc-client" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" -dependencies = [ - "alloy-json-rpc", - "alloy-primitives", - "alloy-pubsub", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", - "futures", - "pin-project", - "reqwest 0.12.5", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower", - "tracing", - "url", -] - -[[package]] -name = "alloy-rpc-types" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c31a3750b8f5a350d17354e46a52b0f2f19ec5f2006d816935af599dedc521" -dependencies = [ - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff63f51b2fb2f547df5218527fd0653afb1947bf7fead5b3ce58c75d170b30f7" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "jsonwebtoken 9.3.0", - "rand", - "serde", - "thiserror", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "alloy-sol-types", - "itertools 0.13.0", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "alloy-serde" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-signer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" -dependencies = [ - "alloy-primitives", - "async-trait", - "auto_impl", - "elliptic-curve", - "k256", - "thiserror", -] - -[[package]] -name = "alloy-signer-local" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" -dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives", - "alloy-signer", - "async-trait", - "elliptic-curve", - "eth-keystore", - "k256", - "rand", - "thiserror", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" -dependencies = [ - "alloy-json-abi", - "alloy-sol-macro-input", - "const-hex", - "heck 0.5.0", - "indexmap 2.3.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.72", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" -dependencies = [ - "alloy-json-abi", - "const-hex", - "dunce", - "heck 0.5.0", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.72", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" -dependencies = [ - "serde", - "winnow 0.6.18", -] - -[[package]] -name = "alloy-sol-types" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-macro", - "const-hex", - "serde", -] - -[[package]] -name = "alloy-transport" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" -dependencies = [ - "alloy-json-rpc", - "base64 0.22.1", - "futures-util", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url", -] - -[[package]] -name = "alloy-transport-http" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" -dependencies = [ - "alloy-json-rpc", - "alloy-transport", - "reqwest 0.12.5", - "serde_json", - "tower", - "tracing", - "url", -] - -[[package]] -name = "alloy-transport-ipc" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804494366e20468776db4e18f9eb5db7db0fe14f1271eb6dbf155d867233405c" -dependencies = [ - "alloy-json-rpc", - "alloy-pubsub", - "alloy-transport", - "bytes", - "futures", - "interprocess", - "pin-project", - "serde_json", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "alloy-transport-ws" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af855163e7df008799941aa6dd324a43ef2bf264b08ba4b22d44aad6ced65300" -dependencies = [ - "alloy-pubsub", - "alloy-transport", - "futures", - "http 1.1.0", - "rustls 0.23.12", - "serde_json", - "tokio", - "tokio-tungstenite 0.23.1", - "tracing", - "ws_stream_wasm", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.6.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" - -[[package]] -name = "anstyle-parse" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] - -[[package]] -name = "anyhow" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" - -[[package]] -name = "ark-ec" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "ark-ff 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.4.0", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "ark-ff 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "hashbrown 0.11.2", - "rayon", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "ark-serialize-derive", - "ark-std 0.3.0", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.3.0" -source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand", -] - -[[package]] -name = "arrayref" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "ascii" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" - -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-stream" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "async-trait" -version = "0.1.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.0", -] - -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "auto_impl" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "backtrace" -version = "0.3.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - -[[package]] -name = "bimap" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "binprot" -version = "0.1.8" -source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" -dependencies = [ - "binprot_derive", - "byteorder", - "md5", -] - -[[package]] -name = "binprot_derive" -version = "0.1.7" -source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "blake2s_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "blake3" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blst" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" -dependencies = [ - "sha2 0.9.9", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2 0.10.8", - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" -dependencies = [ - "serde", -] - -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "c-kzg" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "serde", -] - -[[package]] -name = "camino" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cc" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" -dependencies = [ - "jobserver", - "libc", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets 0.52.6", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "cobs" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" - -[[package]] -name = "coins-bip32" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" -dependencies = [ - "bs58 0.5.1", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "coins-bip39" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2 0.12.2", - "rand", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "coins-core" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" -dependencies = [ - "base64 0.21.7", - "bech32", - "bs58 0.5.1", - "digest 0.10.7", - "generic-array", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.8", - "sha3", - "thiserror", -] - -[[package]] -name = "colorchoice" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" - -[[package]] -name = "combine" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" -dependencies = [ - "ascii", - "byteorder", - "either", - "memchr", - "unreachable", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "const-hex" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core" -version = "0.1.0" -dependencies = [ - "aligned-sdk", - "alloy", - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "base64 0.22.1", - "dotenv", - "env_logger", - "ethers", - "graphql_client", - "hex", - "kimchi", - "log", - "mina-curves", - "mina-p2p-messages", - "mina-tree", - "num-bigint", - "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", - "poly-commitment", - "reqwest 0.11.27", - "rmp-serde", - "rpassword", - "serde", - "serde_json", - "tokio", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "critical-section" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.11.1", - "syn 2.0.72", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core 0.20.10", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "0.99.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 2.0.72", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "disjoint-set" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" - -[[package]] -name = "doctest-file" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" - -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "embedded-io" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" - -[[package]] -name = "ena" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" -dependencies = [ - "log", -] - -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enr" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" -dependencies = [ - "base64 0.21.7", - "bytes", - "hex", - "k256", - "log", - "rand", - "rlp", - "serde", - "sha3", - "zeroize", -] - -[[package]] -name = "enum_dispatch" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "env_filter" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "eth-keystore" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac", - "pbkdf2 0.11.0", - "rand", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "thiserror", - "uuid 0.8.2", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "reqwest 0.11.27", - "serde", - "serde_json", - "syn 2.0.72", - "toml 0.8.19", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.72", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array", - "k256", - "num_enum", - "once_cell", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum 0.26.3", - "syn 2.0.72", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "chrono", - "ethers-core", - "ethers-solc", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.22.1", - "bytes", - "const-hex", - "enr", - "ethers-core", - "futures-channel", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken 8.3.0", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-tungstenite 0.20.1", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand", - "sha2 0.10.8", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-solc" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.23", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core", - "subtle", -] - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "futures-utils-wasm" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "graphql-introspection-query" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" -dependencies = [ - "serde", -] - -[[package]] -name = "graphql-parser" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" -dependencies = [ - "combine", - "thiserror", -] - -[[package]] -name = "graphql_client" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b" -dependencies = [ - "graphql_query_derive", - "reqwest 0.11.27", - "serde", - "serde_json", -] - -[[package]] -name = "graphql_client_codegen" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e27ed0c2cf0c0cc52c6bcf3b45c907f433015e580879d14005386251842fb0a" -dependencies = [ - "graphql-introspection-query", - "graphql-parser", - "heck 0.4.1", - "lazy_static", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 1.0.109", -] - -[[package]] -name = "graphql_query_derive" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97" -dependencies = [ - "graphql_client_codegen", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - -[[package]] -name = "groupmap" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "rand", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.3.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.1.0", - "indexmap 2.3.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hash32" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" -dependencies = [ - "byteorder", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash 0.7.8", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash 0.8.11", - "allocator-api2", -] - -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - -[[package]] -name = "heapless" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" -dependencies = [ - "atomic-polyfill", - "hash32", - "rustc_version 0.4.0", - "serde", - "spin 0.9.8", - "stable_deref_trait", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.1.0", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.1", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.30", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" -dependencies = [ - "futures-util", - "http 1.1.0", - "hyper 1.4.1", - "hyper-util", - "rustls 0.23.12", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.26.0", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.30", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper 1.4.1", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.4.1", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" -dependencies = [ - "equivalent", - "hashbrown 0.14.5", - "serde", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "interprocess" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f4e4a06d42fab3e85ab1b419ad32b09eab58b901d40c57935ff92db3287a13" -dependencies = [ - "doctest-file", - "futures-core", - "libc", - "recvmsg", - "tokio", - "widestring", - "windows-sys 0.52.0", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "jobserver" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem 1.1.1", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] -name = "jsonwebtoken" -version = "9.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" -dependencies = [ - "base64 0.21.7", - "js-sys", - "pem 3.0.4", - "ring 0.17.8", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] -name = "k256" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "sha2 0.10.8", - "signature", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-asm" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "kimchi" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "blake2", - "disjoint-set", - "groupmap", - "hex", - "itertools 0.10.5", - "mina-curves", - "mina-poseidon", - "num-bigint", - "num-derive", - "num-integer", - "num-traits", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "poly-commitment", - "rand", - "rand_core", - "rayon", - "rmp-serde", - "serde", - "serde_with 1.14.0", - "strum 0.24.1", - "strum_macros 0.24.3", - "thiserror", - "turshi", -] - -[[package]] -name = "lalrpop" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" -dependencies = [ - "ascii-canvas", - "bit-set", - "ena", - "itertools 0.11.0", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", - "walkdir", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "lambdaworks-crypto" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb5d4f22241504f7c7b8d2c3a7d7835d7c07117f10bff2a7d96a9ef6ef217c3" -dependencies = [ - "lambdaworks-math", - "serde", - "sha2 0.10.8", - "sha3", -] - -[[package]] -name = "lambdaworks-math" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.6.0", - "libc", -] - -[[package]] -name = "linkme" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" -dependencies = [ - "linkme-impl", -] - -[[package]] -name = "linkme-impl" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "lru" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - -[[package]] -name = "md5" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mina-curves" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", -] - -[[package]] -name = "mina-hasher" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ff 0.3.0", - "bitvec", - "mina-curves", - "mina-poseidon", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "serde", -] - -[[package]] -name = "mina-p2p-messages" -version = "0.6.4" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "ark-ff 0.3.0", - "base64 0.13.1", - "binprot", - "binprot_derive", - "blake2", - "bs58 0.4.0", - "derive_more", - "hex", - "mina-curves", - "mina-hasher", - "mina-poseidon", - "mina-signer", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "rsexp", - "serde", - "serde_json", - "sha2 0.10.8", - "thiserror", - "time", -] - -[[package]] -name = "mina-poseidon" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "mina-curves", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "rand", - "rayon", - "serde", - "serde_with 1.14.0", -] - -[[package]] -name = "mina-signer" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "bitvec", - "blake2", - "bs58 0.4.0", - "hex", - "mina-curves", - "mina-hasher", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "rand", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "mina-tree" -version = "0.6.0" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "anyhow", - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "backtrace", - "base64 0.13.1", - "bitvec", - "blake2", - "bs58 0.4.0", - "chrono", - "crc32fast", - "derive_more", - "getrandom", - "hex", - "itertools 0.10.5", - "kimchi", - "lazy_static", - "libc", - "mina-curves", - "mina-hasher", - "mina-p2p-messages", - "mina-poseidon", - "mina-signer", - "num-bigint", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "openmina-core", - "poly-commitment", - "postcard", - "rand", - "rand_pcg", - "rand_seeder", - "rayon", - "serde", - "serde_json", - "serde_with 3.9.0", - "sha2 0.10.8", - "static_assertions", - "thiserror", - "tuple-map", - "uuid 1.10.0", - "wasm-bindgen", - "wasm_thread", -] - -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" -dependencies = [ - "hermit-abi", - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "multihash" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive", - "sha2 0.10.8", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with 3.9.0", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "o1-utils" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "bcs", - "hex", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with 1.14.0", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "object" -version = "0.36.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "openmina-core" -version = "0.6.0" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "ark-ff 0.3.0", - "binprot", - "binprot_derive", - "hex", - "lazy_static", - "md5", - "mina-hasher", - "mina-p2p-messages", - "multihash", - "openmina-macros", - "redux", - "serde", - "sha2 0.10.8", - "slab", - "time", - "tokio", - "tracing", -] - -[[package]] -name = "openmina-macros" -version = "0.6.0" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "openssl" -version = "0.10.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "parity-scale-codec" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.3", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac", - "password-hash", - "sha2 0.10.8", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "pem" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" -dependencies = [ - "base64 0.22.1", - "serde", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap 2.3.0", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.0", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "rand", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "poly-commitment" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "blake2", - "groupmap", - "itertools 0.10.5", - "mina-curves", - "mina-poseidon", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "rand", - "rand_core", - "rayon", - "serde", - "serde_with 1.14.0", - "thiserror", -] - -[[package]] -name = "postcard" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" -dependencies = [ - "cobs", - "embedded-io", - "heapless", - "serde", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" -dependencies = [ - "zerocopy 0.6.6", -] - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "prettyplease" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" -dependencies = [ - "proc-macro2", - "syn 2.0.72", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" -dependencies = [ - "toml_edit 0.21.1", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.6.0", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_pcg" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rand_seeder" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "recvmsg" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "redox_users" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" -dependencies = [ - "getrandom", - "libredox", - "thiserror", -] - -[[package]] -name = "redux" -version = "0.1.0" -source = "git+https://github.com/openmina/redux-rs.git?rev=2d1d8db#2d1d8dbd7239c0aec91db8f11126b90068dc848b" -dependencies = [ - "enum_dispatch", - "linkme", - "paste", - "serde", - "wasm-timer", -] - -[[package]] -name = "regex" -version = "1.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.30", - "hyper-rustls 0.24.2", - "hyper-tls 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg 0.50.0", -] - -[[package]] -name = "reqwest" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.4.1", - "hyper-rustls 0.27.2", - "hyper-tls 0.6.0", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile 2.1.2", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg 0.52.0", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys 0.52.0", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rlp-derive", - "rustc-hex", -] - -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "rmp" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rpassword" -version = "7.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" -dependencies = [ - "libc", - "rtoolbox", - "windows-sys 0.48.0", -] - -[[package]] -name = "rsexp" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3df9a9b6491d42c0fc527e92a87525c17e45c6b9c22345702a6dc0400320bf1" - -[[package]] -name = "rtoolbox" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ruint" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" -dependencies = [ - "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp", - "num-bigint", - "num-traits", - "parity-scale-codec", - "primitive-types", - "proptest", - "rand", - "rlp", - "ruint-macro", - "serde", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.23", -] - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" -dependencies = [ - "once_cell", - "ring 0.17.8", - "rustls-pki-types", - "rustls-webpki 0.102.6", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "rustls-webpki" -version = "0.102.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" -dependencies = [ - "ring 0.17.8", - "rustls-pki-types", - "untrusted 0.9.0", -] - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scale-info" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" -dependencies = [ - "cfg-if", - "derive_more", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac", - "pbkdf2 0.11.0", - "salsa20", - "sha2 0.10.8", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.204" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.204" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "serde_json" -version = "1.0.122" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_spanned" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "serde", - "serde_with_macros 1.5.2", -] - -[[package]] -name = "serde_with" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.3.0", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros 3.9.0", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "serde_with_macros" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" -dependencies = [ - "darling 0.20.10", - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "sha3-asm" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" -dependencies = [ - "cc", - "cfg-if", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core", -] - -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", - "serde", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "snark" -version = "0.6.0" -source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" -dependencies = [ - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "bincode", - "derive_more", - "hex", - "kimchi", - "linkme", - "mina-curves", - "mina-hasher", - "mina-p2p-messages", - "mina-poseidon", - "mina-signer", - "mina-tree", - "num-bigint", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", - "once_cell", - "openmina-core", - "poly-commitment", - "rand", - "rayon", - "redux", - "serde", - "serde_json", - "sha2 0.10.8", - "strum_macros 0.26.4", - "thiserror", -] - -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "solang-parser" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot 0.12.3", - "phf_shared 0.10.0", - "precomputed-hash", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.72", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "svm-rs" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "sha2 0.10.8", - "thiserror", - "url", - "zip", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-solidity" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "thiserror" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinyvec" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.39.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls 0.23.12", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite 0.20.1", - "webpki-roots 0.25.4", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" -dependencies = [ - "futures-util", - "log", - "native-tls", - "rustls 0.23.12", - "rustls-pki-types", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.26.0", - "tungstenite 0.23.0", - "webpki-roots 0.26.3", -] - -[[package]] -name = "tokio-util" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.20", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.3.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" -dependencies = [ - "indexmap 2.3.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.18", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand", - "rustls 0.21.12", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "tungstenite" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.1.0", - "httparse", - "log", - "native-tls", - "rand", - "rustls 0.23.12", - "rustls-pki-types", - "sha1", - "thiserror", - "utf-8", -] - -[[package]] -name = "tuple-map" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62" - -[[package]] -name = "turshi" -version = "0.1.0" -source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" -dependencies = [ - "ark-ff 0.3.0", - "hex", - "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unreachable" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -dependencies = [ - "void", -] - -[[package]] -name = "unsigned-varint" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] - -[[package]] -name = "uuid" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" -dependencies = [ - "getrandom", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.72", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "wasm-timer" -version = "0.2.5" -source = "git+https://github.com/fusetim/wasm-timer?branch=tim-add-missing-methods#39e1c2818944f804d68d64dae0d5639d22b0e59e" -dependencies = [ - "futures", - "js-sys", - "parking_lot 0.11.2", - "pin-utils", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasm_thread" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a52fc987e67957cab58160d1ea273a2886972ef6f59c7fa0c02e9fe2c8e11706" -dependencies = [ - "async-channel", - "futures", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "web-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "widestring" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.0", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "zerocopy" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" -dependencies = [ - "byteorder", - "zerocopy-derive 0.6.6", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy-derive" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq 0.1.5", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.12+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/account_inclusion/Cargo.toml b/account_inclusion/Cargo.toml deleted file mode 100644 index a7eedadd..00000000 --- a/account_inclusion/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "account-inclusion" -version = "0.1.0" -edition = "2021" - -[dependencies] -kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -snark = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -hex = "0.4.3" -reqwest = { version = "0.12.5", features = ["blocking"] } -serde_json = "1.0.121" -serde = "1.0.204" -num-bigint = { version = "0.4.3" } -base64 = "0.22.1" -core = { path = "../core/" } -tokio = "1.39.1" -dotenv = "0.15.0" -env_logger = "0.11.5" -log = "0.4.22" - -[patch.crates-io] -ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } -ark-ec = { git = "https://github.com/openmina/algebra", branch = "openmina" } -ark-poly = { git = "https://github.com/openmina/algebra", branch = "openmina" } -ark-serialize = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/account_inclusion/src/lib.rs b/account_inclusion/src/lib.rs deleted file mode 100644 index 0e3a2705..00000000 --- a/account_inclusion/src/lib.rs +++ /dev/null @@ -1,297 +0,0 @@ -use std::{fmt::Write, str::FromStr}; - -use base64::{prelude::BASE64_STANDARD, Engine}; -use kimchi::mina_curves::pasta::Fp; -use log::debug; -use mina_p2p_messages::{ - binprot::BinProtRead, - v2::{hash_with_kimchi, MinaStateProtocolStateValueStableV2, StateHash}, -}; -use mina_tree::MerklePath; -use reqwest::header::CONTENT_TYPE; -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "camelCase")] -pub struct Query { - pub data: Data, -} - -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "camelCase")] -pub struct Data { - pub account: Option, - #[cfg(test)] - pub daemon_status: Option, - pub protocol_state: Option, -} - -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "camelCase")] -pub struct Account { - pub leaf_hash: String, - pub merkle_path: Vec, -} - -#[derive(Serialize, Deserialize, Debug, Clone)] -#[serde(rename_all = "camelCase")] -pub struct MerkleLeaf { - pub left: Option, - pub right: Option, -} - -#[cfg(test)] -#[derive(Serialize, Deserialize, Debug, Clone)] -#[serde(rename_all = "camelCase")] -pub struct DaemonStatus { - pub ledger_merkle_root: String, -} - -/// Queries the merkle path and leaf hash from the GraphQL endpoint. -pub fn query_leaf_and_merkle_path( - rpc_url: &str, - public_key: &str, -) -> Result<(Fp, Vec), String> { - // TODO(xqft): we can't trust the Mina node to provide us - // the correct leaf hash, we should add a check or directly - // hash the account information to get the leaf. - - debug!("Querying merkle leaf and path of public key {}", public_key); - let query: Query = serde_json::from_str( - &reqwest::blocking::Client::new() - .post(rpc_url) - .header(CONTENT_TYPE, "application/json") - .body(format!( - r#"{{ - "query": "{{ - account(publicKey: \"{public_key}\") {{ - leafHash - merklePath {{ - left - right - }} - }} - }}" - }}"#, - )) - .send() - .map_err(|err| format!("Error making request {err}"))? - .text() - .map_err(|err| format!("Error getting text {err}"))?, - ) - .map_err(|err| format!("Error converting to json {err}"))?; - - let account = query - .data - .account - .ok_or("Error getting account data".to_string())?; - - let leaf_hash = Fp::from_str(&account.leaf_hash) - .map_err(|_| "Error deserializing leaf hash".to_string())?; - let merkle_path = account - .merkle_path - .into_iter() - .map(|node| -> Result { - match (node.left, node.right) { - (Some(fp_str), None) => Ok(MerklePath::Left(Fp::from_str(&fp_str)?)), - (None, Some(fp_str)) => Ok(MerklePath::Right(Fp::from_str(&fp_str)?)), - _ => unreachable!(), - } - }) - .collect::, ()>>() - .map_err(|_| "Error deserializing merkle path nodes".to_string())?; - - Ok((leaf_hash, merkle_path)) -} - -/// Queries the ledger's merkle root from a state object, via its state hash. -pub fn query_merkle_root(rpc_url: &str, state_hash: Fp) -> Result { - let state_hash = StateHash::from_fp(state_hash).to_string(); - debug!("Querying merkle root of encoded state hash {}", state_hash); - - let query: Query = serde_json::from_str( - &reqwest::blocking::Client::new() - .post(rpc_url) - .header(CONTENT_TYPE, "application/json") - .body(format!( - r#"{{ - "query": "{{ - protocolState(encoding: BASE64, stateHash: \"{state_hash}\") - }}" - }}"#, - )) - .send() - .map_err(|err| format!("Error making request {err}"))? - .text() - .map_err(|err| format!("Error getting text {err}"))?, - ) - .map_err(|err| format!("Error converting to json {err}"))?; - - let protocol_state_base64 = query - .data - .protocol_state - .ok_or("Error getting protocol state".to_string())?; - let protocol_state_binprot = BASE64_STANDARD - .decode(protocol_state_base64) - .map_err(|err| err.to_string())?; - let protocol_state = - MinaStateProtocolStateValueStableV2::binprot_read(&mut protocol_state_binprot.as_slice()) - .map_err(|err| err.to_string())?; - - Ok(protocol_state - .body - .blockchain_state - .staged_ledger_hash - .non_snark - .ledger_hash - .0 - .clone() - .into()) -} - -/// Based on OpenMina's implementation -/// https://github.com/openmina/openmina/blob/d790af59a8bd815893f7773f659351b79ed87648/ledger/src/account/account.rs#L1444 -pub fn verify_merkle_proof(leaf_hash: Fp, merkle_path: Vec, merkle_root: Fp) -> bool { - let mut param = String::with_capacity(16); - - let calculated_root = merkle_path - .iter() - .enumerate() - .fold(leaf_hash, |accum, (depth, path)| { - let hashes = match path { - MerklePath::Left(right) => [accum, *right], - MerklePath::Right(left) => [*left, accum], - }; - - param.clear(); - write!(&mut param, "MinaMklTree{:03}", depth).unwrap(); - - hash_with_kimchi(param.as_str(), &hashes) - }); - - calculated_root == merkle_root -} - -#[cfg(test)] -mod test { - use mina_p2p_messages::v2::LedgerHash; - - use super::*; - - /// Queries the ledger's merkle root. Used for testing. - fn query_ledgers_merkle_root(rpc_url: &str) -> Result { - let query: Query = serde_json::from_str( - &reqwest::blocking::Client::new() - .post(rpc_url) - .header(CONTENT_TYPE, "application/json") - .body( - r#"{ - "query": "{ - daemonStatus { - ledgerMerkleRoot - } - }" - }"#, - ) - .send() - .map_err(|err| format!("Error making request {err}"))? - .text() - .map_err(|err| format!("Error getting text {err}"))?, - ) - .map_err(|err| format!("Error converting to json {err}"))?; - - Ok(LedgerHash::from_str( - &query - .data - .daemon_status - .ok_or("Error getting daemon status".to_string())? - .ledger_merkle_root, - ) - .map_err(|_| "Error deserializing leaf hash".to_string())? - .0 - .clone() - .into()) - } - - #[test] - fn test_merkle_leaf() { - let serialized = r#"{ - "right": "42", - "left": null - }"#; - let deserialized: MerkleLeaf = serde_json::from_str(serialized).unwrap(); - - assert_eq!(deserialized.left, None); - } - - #[test] - fn test_merkle_path() { - let serialized = r#"{ - "data": { - "account": { - "leafHash": "25269606294916619424328783876704640983264873133815222226208603489064938585963", - "merklePath": [ - { - "left": null, - "right": "25269606294916619424328783876704640983264873133815222226208603489064938585963" - }, - { - "left": "8196401609013649445499057870676218044178796697776855327762810874439081359829", - "right": null - } - ] - } - } - }"#; - serde_json::from_str::(serialized).unwrap(); - } - - #[test] - fn test_query_leaf_and_merkle_path() { - query_leaf_and_merkle_path( - "http://5.9.57.89:3085/graphql", - "B62qoVxygiYzqRCj4taZDbRJGY6xLvuzoiLdY5CpGm7L9Tz5cj2Qr6i", - ) - .unwrap(); - } - - #[test] - fn test_query_ledgers_merkle_root() { - query_ledgers_merkle_root("http://5.9.57.89:3085/graphql").unwrap(); - } - - // skipping because we can't hardcode a state hash as it's only temporarily present - // in the transition frontier of a node. This queries are going to be replaced with the - // ones on the mina polling service anyway. - #[ignore] - #[test] - fn test_query_merkle_root() { - let state_hash = - StateHash::from_str("3NLKUa5vnYGYiGaotLAdPdeJjzbUit3477zmoP9jwzajqJRxnvvA") - .unwrap() - .to_fp() - .unwrap(); - let staged_ledger_hash = - query_merkle_root("http://5.9.57.89:3085/graphql", state_hash).unwrap(); - let ledger_merkle_root = - LedgerHash::from_str("jxY1YW31oRSRMbH61ctJt6JN7E3FVY8ncUwxHwLNzSjwZhYVqJg") - .unwrap() - .to_fp() - .unwrap(); - - assert_eq!(staged_ledger_hash, ledger_merkle_root); - } - - #[test] - fn test_verify_merkle_proof() { - let (leaf_hash, merkle_path) = query_leaf_and_merkle_path( - "http://5.9.57.89:3085/graphql", - "B62qoVxygiYzqRCj4taZDbRJGY6xLvuzoiLdY5CpGm7L9Tz5cj2Qr6i", - ) - .unwrap(); - - let merkle_root = query_ledgers_merkle_root("http://5.9.57.89:3085/graphql").unwrap(); - - assert!(verify_merkle_proof(leaf_hash, merkle_path, merkle_root)); - } -} diff --git a/account_inclusion/src/main.rs b/account_inclusion/src/main.rs deleted file mode 100644 index 904fde02..00000000 --- a/account_inclusion/src/main.rs +++ /dev/null @@ -1,64 +0,0 @@ -use account_inclusion::{query_leaf_and_merkle_path, query_merkle_root, verify_merkle_proof}; -use core::{smart_contract_utility::get_tip_state_hash, utils::env::EnvironmentVariables}; -use kimchi::turshi::helper::CairoFieldHelpers; -use log::{debug, error, info}; -use std::process; - -#[tokio::main] -async fn main() { - env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); - - debug!("Reading env. variables"); - let EnvironmentVariables { - rpc_url, - chain, - eth_rpc_url, - .. - } = EnvironmentVariables::new().unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - - let args: Vec = std::env::args().collect(); - let public_key = args.get(1).unwrap_or_else(|| { - error!("Couldn't get public_key from command arguments."); - process::exit(1); - }); - - debug!("Getting tip state hash"); - let state_hash = get_tip_state_hash(&chain, ð_rpc_url) - .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - info!( - "Retrieved bridge tip state hash: 0x{}", - state_hash.to_hex_be() - ); - - let (leaf_hash, merkle_path) = - query_leaf_and_merkle_path(&rpc_url, public_key).unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - debug!("Leaf hash: {}", leaf_hash); - - let merkle_root = query_merkle_root(&rpc_url, state_hash).unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - - let is_account_included = verify_merkle_proof(leaf_hash, merkle_path, merkle_root); - if is_account_included { - info!( - "Account {} is included in the latest bridged Mina state.", - public_key - ); - } else { - info!( - "Account {} is not included in the latest bridged Mina state.", - public_key - ) - } -} diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index a106fcc7..6dc1eae1 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -5158,6 +5158,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + [[package]] name = "signature" version = "2.2.0" @@ -5558,7 +5567,9 @@ dependencies = [ "bytes", "libc", "mio", + "parking_lot 0.12.3", "pin-project-lite", + "signal-hook-registry", "socket2", "tokio-macros", "windows-sys 0.52.0", diff --git a/core/Cargo.lock b/core/Cargo.lock index c8981c57..1aad2f4d 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#08a220c3723a0117923281401a632fd3fb74657e" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#db616f7670e7daa20786cf78d0bde91ffcb49381" dependencies = [ "ethers", "futures-util", @@ -375,7 +375,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -506,7 +506,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -519,11 +519,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.4.0", + "indexmap 2.3.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", "syn-solidity", "tiny-keccak", ] @@ -541,7 +541,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.74", + "syn 2.0.72", "syn-solidity", ] @@ -926,7 +926,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -937,7 +937,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -968,7 +968,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -1291,13 +1291,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.11" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb8dd288a69fc53a1996d7ecfbf4a20d59065bff137ce7e56bbd620de191189" +checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549" dependencies = [ "jobserver", "libc", - "shlex", ] [[package]] @@ -1474,6 +1473,7 @@ dependencies = [ "log", "mina-curves", "mina-p2p-messages", + "mina-signer", "mina-tree", "num-bigint", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", @@ -1498,9 +1498,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.7" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core2" @@ -1513,9 +1513,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -1642,7 +1642,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -1664,7 +1664,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -1727,7 +1727,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -1907,7 +1907,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -2081,7 +2081,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.74", + "syn 2.0.72", "toml 0.8.19", "walkdir", ] @@ -2098,7 +2098,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -2123,7 +2123,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.74", + "syn 2.0.72", "tempfile", "thiserror", "tiny-keccak", @@ -2441,7 +2441,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -2639,7 +2639,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.4.0", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -3030,9 +3030,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3128,9 +3128,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -3314,22 +3314,22 @@ dependencies = [ [[package]] name = "linkme" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c943daedff228392b791b33bba32e75737756e80a613e32e246c6ce9cbab20a" +checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb26336e6dc7cc76e7927d2c9e7e3bb376d7af65a6f56a0b16c47d18a9b1abc5" +checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -3537,9 +3537,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ "hermit-abi", "libc", @@ -3677,7 +3677,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -3803,7 +3803,7 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -3829,7 +3829,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -4018,7 +4018,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.4.0", + "indexmap 2.3.0", ] [[package]] @@ -4061,7 +4061,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -4099,7 +4099,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -4194,7 +4194,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -4986,29 +4986,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.207" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" +checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.207" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" +checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] name = "serde_json" -version = "1.0.124" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", "memchr", @@ -5057,7 +5057,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.3.0", "serde", "serde_derive", "serde_json", @@ -5086,7 +5086,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -5144,12 +5144,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - [[package]] name = "signature" version = "2.2.0" @@ -5318,7 +5312,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -5360,9 +5354,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.74" +version = "2.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" dependencies = [ "proc-macro2", "quote", @@ -5378,7 +5372,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -5473,7 +5467,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -5564,7 +5558,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -5692,7 +5686,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.3.0", "toml_datetime", "winnow 0.5.40", ] @@ -5703,7 +5697,7 @@ version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.3.0", "serde", "serde_spanned", "toml_datetime", @@ -5728,15 +5722,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" [[package]] name = "tower-service" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" @@ -5758,7 +5752,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -6029,35 +6023,34 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", - "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -6067,9 +6060,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6077,22 +6070,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-timer" @@ -6123,9 +6116,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -6430,7 +6423,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] @@ -6450,7 +6443,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.72", ] [[package]] diff --git a/core/Cargo.toml b/core/Cargo.toml index b47202c5..2d016bc4 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -11,6 +11,7 @@ rmp-serde = "1.1.2" hex = "0.4.3" reqwest = { version = "^0.11", features = ["blocking"] } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } +mina-signer = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } poly-commitment = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } diff --git a/core/src/graphql/merkle_query.graphql b/core/src/graphql/merkle_query.graphql new file mode 100644 index 00000000..06c81da1 --- /dev/null +++ b/core/src/graphql/merkle_query.graphql @@ -0,0 +1,16 @@ +query MerkleQuery($stateHash: String!, $publicKey: String!) { + account(publicKey: $publicKey) { + leafHash + merklePath { + left + right + } + } + block(stateHash: $stateHash) { + protocolState { + blockchainState { + stagedLedgerHash + } + } + } + } diff --git a/core/src/graphql/mina_schema.json b/core/src/graphql/mina_schema.json index fc218752..c3c2d0b6 100644 --- a/core/src/graphql/mina_schema.json +++ b/core/src/graphql/mina_schema.json @@ -1,9 +1,15 @@ { "data": { "__schema": { - "queryType": { "name": "query" }, - "mutationType": { "name": "mutation" }, - "subscriptionType": { "name": "subscription" }, + "queryType": { + "name": "query" + }, + "mutationType": { + "name": "mutation" + }, + "subscriptionType": { + "name": "subscription" + }, "types": [ { "kind": "ENUM", @@ -29,8 +35,7 @@ "fields": [ { "name": "newSyncUpdate", - "description": - "Event that triggers when the network sync status changes", + "description": "Event that triggers when the network sync status changes", "args": [], "type": { "kind": "NON_NULL", @@ -46,8 +51,7 @@ }, { "name": "newBlock", - "description": - "Event that triggers when a new block is created that either contains a transaction with the specified public key, or was produced by it. If no public key is provided, then the event will trigger for every new block received", + "description": "Event that triggers when a new block is created that either contains a transaction with the specified public key, or was produced by it. If no public key is provided, then the event will trigger for every new block received", "args": [ { "name": "publicKey", @@ -74,8 +78,7 @@ }, { "name": "chainReorganization", - "description": - "Event that triggers when the best tip changes in a way that is not a trivial extension of the existing one", + "description": "Event that triggers when the best tip changes in a way that is not a trivial extension of the existing one", "args": [], "type": { "kind": "NON_NULL", @@ -182,8 +185,7 @@ { "kind": "INPUT_OBJECT", "name": "NetworkPeer", - "description": - "Network identifiers for another protocol participant", + "description": "Network identifiers for another protocol participant", "fields": [ { "name": "libp2pPort", @@ -192,7 +194,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -237,7 +243,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "defaultValue": null }, @@ -281,17 +291,19 @@ "fields": [ { "name": "cleanAddedPeers", - "description": - "If true, resets added peers to an empty list (including seeds)", + "description": "If true, resets added peers to an empty list (including seeds)", "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "isolate", - "description": - "If true, no connections will be allowed unless they are from a trusted peer", + "description": "If true, no connections will be allowed unless they are from a trusted peer", "args": [], "type": { "kind": "NON_NULL", @@ -307,8 +319,7 @@ }, { "name": "bannedPeers", - "description": - "Peers we will never allow connections from (unless they are also trusted!)", + "description": "Peers we will never allow connections from (unless they are also trusted!)", "args": [], "type": { "kind": "NON_NULL", @@ -358,15 +369,17 @@ "inputFields": [ { "name": "cleanAddedPeers", - "description": - "If true, resets added peers to an empty list (including seeds)", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "description": "If true, resets added peers to an empty list (including seeds)", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "defaultValue": null }, { "name": "isolate", - "description": - "If true, no connections will be allowed unless they are from a trusted peer", + "description": "If true, no connections will be allowed unless they are from a trusted peer", "type": { "kind": "NON_NULL", "name": null, @@ -380,8 +393,7 @@ }, { "name": "bannedPeers", - "description": - "Peers we will never allow connections from (unless they are also trusted!)", + "description": "Peers we will never allow connections from (unless they are also trusted!)", "type": { "kind": "NON_NULL", "name": null, @@ -482,7 +494,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -500,8 +516,7 @@ "fields": [ { "name": "publicKey", - "description": - "Public key you wish to start snark-working on; null to stop doing any snark work. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "description": "Public key you wish to start snark-working on; null to stop doing any snark work. Warning: If the key is from a zkApp account, the account's receive permission must be None.", "args": [], "type": { "kind": "SCALAR", @@ -515,8 +530,7 @@ "inputFields": [ { "name": "publicKey", - "description": - "Public key you wish to start snark-working on; null to stop doing any snark work. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "description": "Public key you wish to start snark-working on; null to stop doing any snark work. Warning: If the key is from a zkApp account, the account's receive permission must be None.", "type": { "kind": "SCALAR", "name": "PublicKey", @@ -536,8 +550,7 @@ "fields": [ { "name": "lastSnarkWorker", - "description": - "Returns the last public key that was designated for snark work", + "description": "Returns the last public key that was designated for snark work", "args": [], "type": { "kind": "SCALAR", @@ -560,8 +573,7 @@ "fields": [ { "name": "publicKey", - "description": - "Public key of the account to receive coinbases. Block production keys will receive the coinbases if omitted. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "description": "Public key of the account to receive coinbases. Block production keys will receive the coinbases if omitted. Warning: If the key is from a zkApp account, the account's receive permission must be None.", "args": [], "type": { "kind": "SCALAR", @@ -575,8 +587,7 @@ "inputFields": [ { "name": "publicKey", - "description": - "Public key of the account to receive coinbases. Block production keys will receive the coinbases if omitted. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "description": "Public key of the account to receive coinbases. Block production keys will receive the coinbases if omitted. Warning: If the key is from a zkApp account, the account's receive permission must be None.", "type": { "kind": "SCALAR", "name": "PublicKey", @@ -596,8 +607,7 @@ "fields": [ { "name": "lastCoinbaseReceiver", - "description": - "Returns the public key that was receiving coinbases previously, or none if it was the block producer", + "description": "Returns the public key that was receiving coinbases previously, or none if it was the block producer", "args": [], "type": { "kind": "SCALAR", @@ -609,8 +619,7 @@ }, { "name": "currentCoinbaseReceiver", - "description": - "Returns the public key that will receive coinbase, or none if it will be the block producer", + "description": "Returns the public key that will receive coinbase, or none if it will be the block producer", "args": [], "type": { "kind": "SCALAR", @@ -718,7 +727,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -773,7 +786,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "defaultValue": null }, @@ -1651,7 +1668,11 @@ "name": "zkappUri", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -1659,7 +1680,11 @@ "name": "tokenSymbol", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -1740,13 +1765,21 @@ { "name": "zkappUri", "description": null, - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "defaultValue": null }, { "name": "tokenSymbol", "description": null, - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "defaultValue": null }, { @@ -1927,7 +1960,11 @@ "name": "hash", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -1948,7 +1985,11 @@ { "name": "hash", "description": null, - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "defaultValue": null }, { @@ -2063,7 +2104,11 @@ "name": "seed", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -2071,7 +2116,11 @@ "name": "startCheckpoint", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -2079,7 +2128,11 @@ "name": "lockCheckpoint", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -2114,19 +2167,31 @@ { "name": "seed", "description": null, - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "defaultValue": null }, { "name": "startCheckpoint", "description": null, - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "defaultValue": null }, { "name": "lockCheckpoint", "description": null, - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "defaultValue": null }, { @@ -2153,7 +2218,11 @@ "name": "snarkedLedgerHash", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -2242,7 +2311,11 @@ { "name": "snarkedLedgerHash", "description": null, - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "defaultValue": null }, { @@ -2495,7 +2568,11 @@ "name": "receiptChainHash", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -2535,7 +2612,11 @@ "name": "actionState", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -2543,7 +2624,11 @@ "name": "provedState", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -2551,7 +2636,11 @@ "name": "isNew", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -2580,7 +2669,11 @@ { "name": "receiptChainHash", "description": null, - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "defaultValue": null }, { @@ -2614,19 +2707,31 @@ { "name": "actionState", "description": null, - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "defaultValue": null }, { "name": "provedState", "description": null, - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "defaultValue": null }, { "name": "isNew", "description": null, - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "defaultValue": null } ], @@ -3146,7 +3251,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -3383,7 +3492,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "defaultValue": null }, @@ -3715,8 +3828,7 @@ "fields": [ { "name": "zkappCommand", - "description": - "zkApp command structure representing the transaction", + "description": "zkApp command structure representing the transaction", "args": [], "type": { "kind": "NON_NULL", @@ -3734,8 +3846,7 @@ "inputFields": [ { "name": "zkappCommand", - "description": - "zkApp command structure representing the transaction", + "description": "zkApp command structure representing the transaction", "type": { "kind": "NON_NULL", "name": null, @@ -3786,10 +3897,13 @@ "fields": [ { "name": "nonce", - "description": - "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "description": "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", "args": [], - "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -3797,16 +3911,23 @@ "name": "memo", "description": "Short arbitrary message provided by the sender", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "validUntil", - "description": - "The global slot since genesis after which this transaction cannot be applied", + "description": "The global slot since genesis after which this transaction cannot be applied", "args": [], - "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -3862,22 +3983,32 @@ "inputFields": [ { "name": "nonce", - "description": - "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", - "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "description": "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, "defaultValue": null }, { "name": "memo", "description": "Short arbitrary message provided by the sender", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "defaultValue": null }, { "name": "validUntil", - "description": - "The global slot since genesis after which this transaction cannot be applied", - "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "description": "The global slot since genesis after which this transaction cannot be applied", + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, "defaultValue": null }, { @@ -4480,8 +4611,7 @@ "fields": [ { "name": "addWallet", - "description": - "Add a wallet - this will create a new keypair and store it in the daemon", + "description": "Add a wallet - this will create a new keypair and store it in the daemon", "args": [ { "name": "input", @@ -4512,8 +4642,7 @@ }, { "name": "startFilteredLog", - "description": - "TESTING ONLY: Start filtering and recording all structured events in memory", + "description": "TESTING ONLY: Start filtering and recording all structured events in memory", "args": [ { "name": "filter", @@ -4552,8 +4681,7 @@ }, { "name": "createAccount", - "description": - "Create a new account - this will create a new keypair and store it in the daemon", + "description": "Create a new account - this will create a new keypair and store it in the daemon", "args": [ { "name": "input", @@ -4584,8 +4712,7 @@ }, { "name": "createHDAccount", - "description": - "Create an account with hardware wallet - this will let the hardware wallet generate a keypair corresponds to the HD-index you give and store this HD-index and the generated public key in the daemon. Calling this command with the same HD-index and the same hardware wallet will always generate the same keypair.", + "description": "Create an account with hardware wallet - this will let the hardware wallet generate a keypair corresponds to the HD-index you give and store this HD-index and the generated public key in the daemon. Calling this command with the same HD-index and the same hardware wallet will always generate the same keypair.", "args": [ { "name": "input", @@ -4616,8 +4743,7 @@ }, { "name": "unlockAccount", - "description": - "Allow transactions to be sent from the unlocked account", + "description": "Allow transactions to be sent from the unlocked account", "args": [ { "name": "input", @@ -4648,8 +4774,7 @@ }, { "name": "unlockWallet", - "description": - "Allow transactions to be sent from the unlocked account", + "description": "Allow transactions to be sent from the unlocked account", "args": [ { "name": "input", @@ -4680,8 +4805,7 @@ }, { "name": "lockAccount", - "description": - "Lock an unlocked account to prevent transaction being sent from it", + "description": "Lock an unlocked account to prevent transaction being sent from it", "args": [ { "name": "input", @@ -4712,8 +4836,7 @@ }, { "name": "lockWallet", - "description": - "Lock an unlocked account to prevent transaction being sent from it", + "description": "Lock an unlocked account to prevent transaction being sent from it", "args": [ { "name": "input", @@ -4744,8 +4867,7 @@ }, { "name": "deleteAccount", - "description": - "Delete the private key for an account that you track", + "description": "Delete the private key for an account that you track", "args": [ { "name": "input", @@ -4776,8 +4898,7 @@ }, { "name": "deleteWallet", - "description": - "Delete the private key for an account that you track", + "description": "Delete the private key for an account that you track", "args": [ { "name": "input", @@ -4842,8 +4963,7 @@ }, { "name": "path", - "description": - "Path to the wallet file, relative to the daemon's current working directory.", + "description": "Path to the wallet file, relative to the daemon's current working directory.", "type": { "kind": "NON_NULL", "name": null, @@ -4890,8 +5010,7 @@ "args": [ { "name": "signature", - "description": - "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "description": "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", "type": { "kind": "INPUT_OBJECT", "name": "SignatureInput", @@ -4932,8 +5051,7 @@ "args": [ { "name": "repeat_delay_ms", - "description": - "Delay with which a transaction shall be repeated", + "description": "Delay with which a transaction shall be repeated", "type": { "kind": "NON_NULL", "name": null, @@ -4947,8 +5065,7 @@ }, { "name": "repeat_count", - "description": - "How many times shall transaction be repeated", + "description": "How many times shall transaction be repeated", "type": { "kind": "NON_NULL", "name": null, @@ -5004,8 +5121,7 @@ }, { "name": "senders", - "description": - "The private keys from which to sign the payments", + "description": "The private keys from which to sign the payments", "type": { "kind": "NON_NULL", "name": null, @@ -5029,7 +5145,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -5040,8 +5160,7 @@ "args": [ { "name": "signature", - "description": - "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "description": "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", "type": { "kind": "INPUT_OBJECT", "name": "SignatureInput", @@ -5109,8 +5228,7 @@ }, { "name": "mockZkapp", - "description": - "Mock a zkApp transaction, no effect on blockchain", + "description": "Mock a zkApp transaction, no effect on blockchain", "args": [ { "name": "input", @@ -5141,8 +5259,7 @@ }, { "name": "internalSendZkapp", - "description": - "Send zkApp transactions (for internal testing purposes)", + "description": "Send zkApp transactions (for internal testing purposes)", "args": [ { "name": "zkappCommands", @@ -5247,8 +5364,7 @@ }, { "name": "setSnarkWorker", - "description": - "Set key you wish to snark work with or disable snark working", + "description": "Set key you wish to snark work with or disable snark working", "args": [ { "name": "input", @@ -5279,8 +5395,7 @@ }, { "name": "setSnarkWorkFee", - "description": - "Set fee that you will like to receive for doing snark work", + "description": "Set fee that you will like to receive for doing snark work", "args": [ { "name": "input", @@ -5311,8 +5426,7 @@ }, { "name": "setConnectionGatingConfig", - "description": - "Set the connection gating config, returning the current config after the application (which may have failed)", + "description": "Set the connection gating config, returning the current config after the application (which may have failed)", "args": [ { "name": "input", @@ -5727,13 +5841,16 @@ "fields": [ { "name": "delegatorIndex", - "description": - "Position in the ledger of the delegator's account", + "description": "Position in the ledger of the delegator's account", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -5774,12 +5891,15 @@ "inputFields": [ { "name": "delegatorIndex", - "description": - "Position in the ledger of the delegator's account", + "description": "Position in the ledger of the delegator's account", "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "defaultValue": null }, @@ -5819,13 +5939,11 @@ { "kind": "INPUT_OBJECT", "name": "VrfThresholdInput", - "description": - "The amount of stake delegated, used to determine the threshold for a vrf evaluation producing a block", + "description": "The amount of stake delegated, used to determine the threshold for a vrf evaluation producing a block", "fields": [ { "name": "totalStake", - "description": - "The total amount of stake across all accounts in the epoch's staking ledger.", + "description": "The total amount of stake across all accounts in the epoch's staking ledger.", "args": [], "type": { "kind": "NON_NULL", @@ -5841,8 +5959,7 @@ }, { "name": "delegatedStake", - "description": - "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "description": "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", "args": [], "type": { "kind": "NON_NULL", @@ -5860,8 +5977,7 @@ "inputFields": [ { "name": "totalStake", - "description": - "The total amount of stake across all accounts in the epoch's staking ledger.", + "description": "The total amount of stake across all accounts in the epoch's staking ledger.", "type": { "kind": "NON_NULL", "name": null, @@ -5875,8 +5991,7 @@ }, { "name": "delegatedStake", - "description": - "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "description": "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", "type": { "kind": "NON_NULL", "name": null, @@ -5906,13 +6021,11 @@ { "kind": "OBJECT", "name": "VrfThreshold", - "description": - "The amount of stake delegated, used to determine the threshold for a vrf evaluation winning a slot", + "description": "The amount of stake delegated, used to determine the threshold for a vrf evaluation winning a slot", "fields": [ { "name": "delegatedStake", - "description": - "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "description": "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", "args": [], "type": { "kind": "NON_NULL", @@ -5928,8 +6041,7 @@ }, { "name": "totalStake", - "description": - "The total amount of stake across all accounts in the epoch's staking ledger.", + "description": "The total amount of stake across all accounts in the epoch's staking ledger.", "args": [], "type": { "kind": "NON_NULL", @@ -5998,13 +6110,16 @@ }, { "name": "delegatorIndex", - "description": - "Position in the ledger of the delegator's account", + "description": "Position in the ledger of the delegator's account", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -6018,8 +6133,7 @@ { "kind": "OBJECT", "name": "VrfEvaluation", - "description": - "A witness to a vrf evaluation, which may be externally verified", + "description": "A witness to a vrf evaluation, which may be externally verified", "fields": [ { "name": "message", @@ -6087,8 +6201,7 @@ }, { "name": "scaledMessageHash", - "description": - "A group element represented as 2 field elements", + "description": "A group element represented as 2 field elements", "args": [], "type": { "kind": "NON_NULL", @@ -6124,8 +6237,7 @@ }, { "name": "vrfOutput", - "description": - "The vrf output derived from the evaluation witness. If null, the vrf witness was invalid.", + "description": "The vrf output derived from the evaluation witness. If null, the vrf witness was invalid.", "args": [], "type": { "kind": "SCALAR", @@ -6137,17 +6249,19 @@ }, { "name": "vrfOutputFractional", - "description": - "The vrf output derived from the evaluation witness, as a fraction. This represents a won slot if vrfOutputFractional <= (1 - (1 / 4)^(delegated_balance / total_stake)). If null, the vrf witness was invalid.", + "description": "The vrf output derived from the evaluation witness, as a fraction. This represents a won slot if vrfOutputFractional <= (1 - (1 / 4)^(delegated_balance / total_stake)). If null, the vrf witness was invalid.", "args": [], - "type": { "kind": "SCALAR", "name": "Float", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "thresholdMet", - "description": - "Whether the threshold to produce a block was met, if specified", + "description": "Whether the threshold to produce a block was met, if specified", "args": [ { "name": "input", @@ -6160,7 +6274,11 @@ "defaultValue": null } ], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -6173,14 +6291,17 @@ { "kind": "INPUT_OBJECT", "name": "SignatureInput", - "description": - "A cryptographic signature -- you must provide either field+scalar or rawSignature", + "description": "A cryptographic signature -- you must provide either field+scalar or rawSignature", "fields": [ { "name": "rawSignature", "description": "Raw encoded signature", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -6188,7 +6309,11 @@ "name": "scalar", "description": "Scalar component of signature", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -6196,7 +6321,11 @@ "name": "field", "description": "Field component of signature", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -6205,19 +6334,31 @@ { "name": "rawSignature", "description": "Raw encoded signature", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "defaultValue": null }, { "name": "scalar", "description": "Scalar component of signature", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "defaultValue": null }, { "name": "field", "description": "Field component of signature", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "defaultValue": null } ], @@ -6228,8 +6369,7 @@ { "kind": "SCALAR", "name": "UInt64", - "description": - "String or Integer representation of a uint64 number. If the input is a string, it must represent the number in base 10", + "description": "String or Integer representation of a uint64 number. If the input is a string, it must represent the number in base 10", "fields": null, "inputFields": null, "interfaces": null, @@ -6243,10 +6383,13 @@ "fields": [ { "name": "nonce", - "description": - "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "description": "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", "args": [], - "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -6254,16 +6397,23 @@ "name": "memo", "description": "Short arbitrary message provided by the sender", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "validUntil", - "description": - "The global slot since genesis after which this transaction cannot be applied", + "description": "The global slot since genesis after which this transaction cannot be applied", "args": [], - "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -6335,22 +6485,32 @@ "inputFields": [ { "name": "nonce", - "description": - "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", - "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "description": "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, "defaultValue": null }, { "name": "memo", "description": "Short arbitrary message provided by the sender", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "defaultValue": null }, { "name": "validUntil", - "description": - "The global slot since genesis after which this transaction cannot be applied", - "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "description": "The global slot since genesis after which this transaction cannot be applied", + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, "defaultValue": null }, { @@ -6426,15 +6586,18 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { "name": "coinbase", - "description": - "The amount received as a coinbase reward for producing a block", + "description": "The amount received as a coinbase reward for producing a block", "args": [], "type": { "kind": "NON_NULL", @@ -6473,13 +6636,11 @@ { "kind": "OBJECT", "name": "WorkDescription", - "description": - "Transition from a source ledger to a target ledger with some fee excess and increase in supply ", + "description": "Transition from a source ledger to a target ledger with some fee excess and increase in supply ", "fields": [ { "name": "sourceFirstPassLedgerHash", - "description": - "Base58Check-encoded hash of the source first-pass ledger", + "description": "Base58Check-encoded hash of the source first-pass ledger", "args": [], "type": { "kind": "NON_NULL", @@ -6495,8 +6656,7 @@ }, { "name": "targetFirstPassLedgerHash", - "description": - "Base58Check-encoded hash of the target first-pass ledger", + "description": "Base58Check-encoded hash of the target first-pass ledger", "args": [], "type": { "kind": "NON_NULL", @@ -6512,8 +6672,7 @@ }, { "name": "sourceSecondPassLedgerHash", - "description": - "Base58Check-encoded hash of the source second-pass ledger", + "description": "Base58Check-encoded hash of the source second-pass ledger", "args": [], "type": { "kind": "NON_NULL", @@ -6529,8 +6688,7 @@ }, { "name": "targetSecondPassLedgerHash", - "description": - "Base58Check-encoded hash of the target second-pass ledger", + "description": "Base58Check-encoded hash of the target second-pass ledger", "args": [], "type": { "kind": "NON_NULL", @@ -6546,8 +6704,7 @@ }, { "name": "feeExcess", - "description": - "Total transaction fee that is not accounted for in the transition from source ledger to target ledger", + "description": "Total transaction fee that is not accounted for in the transition from source ledger to target ledger", "args": [], "type": { "kind": "NON_NULL", @@ -6600,7 +6757,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -6614,8 +6775,7 @@ { "kind": "OBJECT", "name": "PendingSnarkWork", - "description": - "Snark work bundles that are not available in the pool yet", + "description": "Snark work bundles that are not available in the pool yet", "fields": [ { "name": "workBundle", @@ -6714,7 +6874,11 @@ "name": "bannedStatus", "description": "Banned status", "args": [], - "type": { "kind": "SCALAR", "name": "Time", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -6740,15 +6904,13 @@ }, { "name": "PENDING", - "description": - "A transaction either in the transition frontier or in transaction pool but is not on the longest chain", + "description": "A transaction either in the transition frontier or in transaction pool but is not on the longest chain", "isDeprecated": false, "deprecationReason": null }, { "name": "UNKNOWN", - "description": - "The transaction has either been snarked, reached finality through consensus or has been dropped", + "description": "The transaction has either been snarked, reached finality through consensus or has been dropped", "isDeprecated": false, "deprecationReason": null } @@ -6793,7 +6955,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -6861,21 +7027,23 @@ }, { "name": "fee", - "description": - "Amount that the recipient is paid in this fee transfer", + "description": "Amount that the recipient is paid in this fee transfer", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { "name": "type", - "description": - "Fee_transfer|Fee_transfer_via_coinbase Snark worker fees deducted from the coinbase amount are of type 'Fee_transfer_via_coinbase', rest are deducted from transaction fees", + "description": "Fee_transfer|Fee_transfer_via_coinbase Snark worker fees deducted from the coinbase amount are of type 'Fee_transfer_via_coinbase', rest are deducted from transaction fees", "args": [], "type": { "kind": "NON_NULL", @@ -6914,14 +7082,17 @@ "name": "index", "description": "List index of the account update that failed", "args": [], - "type": { "kind": "SCALAR", "name": "Index", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Index", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "failures", - "description": - "Failure reason for the account update or any nested zkapp command", + "description": "Failure reason for the account update or any nested zkapp command", "args": [], "type": { "kind": "NON_NULL", @@ -7225,7 +7396,11 @@ "name": "receiptChainHash", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -7265,7 +7440,11 @@ "name": "actionState", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -7273,7 +7452,11 @@ "name": "provedState", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -7281,7 +7464,11 @@ "name": "isNew", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -7300,7 +7487,11 @@ "name": "hash", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -7347,7 +7538,11 @@ "name": "seed", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -7355,7 +7550,11 @@ "name": "startCheckpoint", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -7363,7 +7562,11 @@ "name": "lockCheckpoint", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -7523,7 +7726,11 @@ "name": "snarkedLedgerHash", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -8169,7 +8376,11 @@ "name": "zkappUri", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -8177,7 +8388,11 @@ "name": "tokenSymbol", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -8185,7 +8400,11 @@ "name": "timing", "description": null, "args": [], - "type": { "kind": "OBJECT", "name": "Timing", "ofType": null }, + "type": { + "kind": "OBJECT", + "name": "Timing", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -8379,7 +8598,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -8561,7 +8784,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -8765,8 +8992,7 @@ }, { "name": "failureReason", - "description": - "The reason for the zkApp transaction failure; null means success or the status is unknown", + "description": "The reason for the zkApp transaction failure; null means success or the status is unknown", "args": [], "type": { "kind": "LIST", @@ -8841,13 +9067,16 @@ }, { "name": "nonce", - "description": - "Sequence number of command for the fee-payer's account", + "description": "Sequence number of command for the fee-payer's account", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -8902,8 +9131,7 @@ }, { "name": "validUntil", - "description": - "The global slot number after which this transaction cannot be applied", + "description": "The global slot number after which this transaction cannot be applied", "args": [], "type": { "kind": "NON_NULL", @@ -8935,8 +9163,7 @@ }, { "name": "amount", - "description": - "Amount that the source is sending to receiver; 0 for commands without an associated amount", + "description": "Amount that the source is sending to receiver; 0 for commands without an associated amount", "args": [], "type": { "kind": "NON_NULL", @@ -8968,21 +9195,23 @@ }, { "name": "fee", - "description": - "Fee that the fee-payer is willing to pay for making the transaction", + "description": "Fee that the fee-payer is willing to pay for making the transaction", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { "name": "memo", - "description": - "A short message from the sender, encoded with Base58Check, version byte=0x14; byte 2 of the decoding is the message length", + "description": "A short message from the sender, encoded with Base58Check, version byte=0x14; byte 2 of the decoding is the message length", "args": [], "type": { "kind": "NON_NULL", @@ -8998,8 +9227,7 @@ }, { "name": "isDelegation", - "description": - "If true, this command represents a delegation of stake", + "description": "If true, this command represents a delegation of stake", "args": [], "type": { "kind": "NON_NULL", @@ -9079,8 +9307,7 @@ }, { "name": "failureReason", - "description": - "null is no failure or status unknown, reason for failure otherwise.", + "description": "null is no failure or status unknown, reason for failure otherwise.", "args": [], "type": { "kind": "SCALAR", @@ -9093,7 +9320,11 @@ ], "inputFields": null, "interfaces": [ - { "kind": "INTERFACE", "name": "UserCommand", "ofType": null } + { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } ], "enumValues": null, "possibleTypes": null @@ -9225,13 +9456,16 @@ }, { "name": "nonce", - "description": - "Sequence number of command for the fee-payer's account", + "description": "Sequence number of command for the fee-payer's account", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -9286,8 +9520,7 @@ }, { "name": "validUntil", - "description": - "The global slot number after which this transaction cannot be applied", + "description": "The global slot number after which this transaction cannot be applied", "args": [], "type": { "kind": "NON_NULL", @@ -9319,8 +9552,7 @@ }, { "name": "amount", - "description": - "Amount that the source is sending to receiver; 0 for commands without an associated amount", + "description": "Amount that the source is sending to receiver; 0 for commands without an associated amount", "args": [], "type": { "kind": "NON_NULL", @@ -9352,21 +9584,23 @@ }, { "name": "fee", - "description": - "Fee that the fee-payer is willing to pay for making the transaction", + "description": "Fee that the fee-payer is willing to pay for making the transaction", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { "name": "memo", - "description": - "A short message from the sender, encoded with Base58Check, version byte=0x14; byte 2 of the decoding is the message length", + "description": "A short message from the sender, encoded with Base58Check, version byte=0x14; byte 2 of the decoding is the message length", "args": [], "type": { "kind": "NON_NULL", @@ -9382,8 +9616,7 @@ }, { "name": "isDelegation", - "description": - "If true, this command represents a delegation of stake", + "description": "If true, this command represents a delegation of stake", "args": [], "type": { "kind": "NON_NULL", @@ -9463,8 +9696,7 @@ }, { "name": "failureReason", - "description": - "null is no failure or status unknown, reason for failure otherwise.", + "description": "null is no failure or status unknown, reason for failure otherwise.", "args": [], "type": { "kind": "SCALAR", @@ -9477,7 +9709,11 @@ ], "inputFields": null, "interfaces": [ - { "kind": "INTERFACE", "name": "UserCommand", "ofType": null } + { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } ], "enumValues": null, "possibleTypes": null @@ -9537,13 +9773,16 @@ }, { "name": "nonce", - "description": - "Sequence number of command for the fee-payer's account", + "description": "Sequence number of command for the fee-payer's account", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -9598,8 +9837,7 @@ }, { "name": "validUntil", - "description": - "The global slot number after which this transaction cannot be applied", + "description": "The global slot number after which this transaction cannot be applied", "args": [], "type": { "kind": "NON_NULL", @@ -9631,8 +9869,7 @@ }, { "name": "amount", - "description": - "Amount that the source is sending to receiver - 0 for commands that are not associated with an amount", + "description": "Amount that the source is sending to receiver - 0 for commands that are not associated with an amount", "args": [], "type": { "kind": "NON_NULL", @@ -9664,13 +9901,16 @@ }, { "name": "fee", - "description": - "Fee that the fee-payer is willing to pay for making the transaction", + "description": "Fee that the fee-payer is willing to pay for making the transaction", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -9693,8 +9933,7 @@ }, { "name": "isDelegation", - "description": - "If true, this represents a delegation of stake, otherwise it is a payment", + "description": "If true, this represents a delegation of stake, otherwise it is a payment", "args": [], "type": { "kind": "NON_NULL", @@ -9774,8 +10013,7 @@ }, { "name": "failureReason", - "description": - "null is no failure, reason for failure otherwise.", + "description": "null is no failure, reason for failure otherwise.", "args": [], "type": { "kind": "SCALAR", @@ -9809,8 +10047,7 @@ "fields": [ { "name": "userCommands", - "description": - "List of user commands (payments and stake delegations) included in this block", + "description": "List of user commands (payments and stake delegations) included in this block", "args": [], "type": { "kind": "NON_NULL", @@ -9882,8 +10119,7 @@ }, { "name": "coinbase", - "description": - "Amount of MINA granted to the producer of this block", + "description": "Amount of MINA granted to the producer of this block", "args": [], "type": { "kind": "NON_NULL", @@ -9899,10 +10135,13 @@ }, { "name": "coinbaseReceiverAccount", - "description": - "Account to which the coinbase for this block was granted", + "description": "Account to which the coinbase for this block was granted", "args": [], - "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "type": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -9953,7 +10192,11 @@ "name": "json", "description": "JSON-encoded proof", "args": [], - "type": { "kind": "SCALAR", "name": "JSON", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -10417,8 +10660,7 @@ }, { "name": "superchargedCoinbase", - "description": - "Whether or not this coinbase was \"supercharged\", ie. created by an account that has no locked tokens", + "description": "Whether or not this coinbase was \"supercharged\", ie. created by an account that has no locked tokens", "args": [], "type": { "kind": "NON_NULL", @@ -10434,8 +10676,7 @@ }, { "name": "blockStakeWinner", - "description": - "The public key that is responsible for winning this block (including delegations)", + "description": "The public key that is responsible for winning this block (including delegations)", "args": [], "type": { "kind": "NON_NULL", @@ -10451,8 +10692,7 @@ }, { "name": "blockCreator", - "description": - "The block producer public key that created this block", + "description": "The block producer public key that created this block", "args": [], "type": { "kind": "NON_NULL", @@ -10491,8 +10731,7 @@ { "kind": "SCALAR", "name": "BodyReference", - "description": - "A reference to how the block header refers to the body of the block as a hex-encoded string", + "description": "A reference to how the block header refers to the body of the block as a hex-encoded string", "fields": null, "inputFields": null, "interfaces": null, @@ -10511,7 +10750,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "ENUM", "name": "sign", "ofType": null } + "ofType": { + "kind": "ENUM", + "name": "sign", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -10523,7 +10766,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -10644,7 +10891,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "ENUM", "name": "sign", "ofType": null } + "ofType": { + "kind": "ENUM", + "name": "sign", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -10710,8 +10961,7 @@ }, { "name": "transactionCommitment", - "description": - "Transaction commitment component of local state", + "description": "Transaction commitment component of local state", "args": [], "type": { "kind": "NON_NULL", @@ -10727,8 +10977,7 @@ }, { "name": "fullTransactionCommitment", - "description": - "Full transaction commitment component of local state", + "description": "Full transaction commitment component of local state", "args": [], "type": { "kind": "NON_NULL", @@ -11142,7 +11391,11 @@ "name": "sokDigest", "description": "Placeholder for SOK digest", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -11155,8 +11408,7 @@ { "kind": "SCALAR", "name": "PendingCoinbaseHash", - "description": - "Base58Check-encoded hash of a pending coinbase hash", + "description": "Base58Check-encoded hash of a pending coinbase hash", "fields": null, "inputFields": null, "interfaces": null, @@ -11166,8 +11418,7 @@ { "kind": "SCALAR", "name": "PendingCoinbaseAuxHash", - "description": - "Base58Check-encoded hash of a pending coinbase auxiliary hash", + "description": "Base58Check-encoded hash of a pending coinbase auxiliary hash", "fields": null, "inputFields": null, "interfaces": null, @@ -11177,8 +11428,7 @@ { "kind": "SCALAR", "name": "StagedLedgerAuxHash", - "description": - "Base58Check-encoded hash of the staged ledger hash's aux_hash", + "description": "Base58Check-encoded hash of the staged ledger hash's aux_hash", "fields": null, "inputFields": null, "interfaces": null, @@ -11202,8 +11452,7 @@ "fields": [ { "name": "date", - "description": - "date (stringified Unix time - number of milliseconds since January 1, 1970)", + "description": "date (stringified Unix time - number of milliseconds since January 1, 1970)", "args": [], "type": { "kind": "NON_NULL", @@ -11219,8 +11468,7 @@ }, { "name": "utcDate", - "description": - "utcDate (stringified Unix time - number of milliseconds since January 1, 1970). Time offsets are adjusted to reflect true wall-clock time instead of genesis time.", + "description": "utcDate (stringified Unix time - number of milliseconds since January 1, 1970). Time offsets are adjusted to reflect true wall-clock time instead of genesis time.", "args": [], "type": { "kind": "NON_NULL", @@ -11252,8 +11500,7 @@ }, { "name": "stagedLedgerHash", - "description": - "Base58Check-encoded hash of the staged ledger hash's main ledger hash", + "description": "Base58Check-encoded hash of the staged ledger hash's main ledger hash", "args": [], "type": { "kind": "NON_NULL", @@ -11269,8 +11516,7 @@ }, { "name": "stagedLedgerAuxHash", - "description": - "Base58Check-encoded hash of the staged ledger hash's aux_hash", + "description": "Base58Check-encoded hash of the staged ledger hash's aux_hash", "args": [], "type": { "kind": "NON_NULL", @@ -11286,8 +11532,7 @@ }, { "name": "stagedLedgerPendingCoinbaseAux", - "description": - "Base58Check-encoded staged ledger hash's pending_coinbase_aux", + "description": "Base58Check-encoded staged ledger hash's pending_coinbase_aux", "args": [], "type": { "kind": "NON_NULL", @@ -11303,8 +11548,7 @@ }, { "name": "stagedLedgerPendingCoinbaseHash", - "description": - "Base58Check-encoded hash of the staged ledger hash's pending_coinbase_hash", + "description": "Base58Check-encoded hash of the staged ledger hash's pending_coinbase_hash", "args": [], "type": { "kind": "NON_NULL", @@ -11320,10 +11564,13 @@ }, { "name": "stagedLedgerProofEmitted", - "description": - "Block finished a staged ledger, and a proof was emitted from it and included into this block's proof. If there is no transition frontier available or no block found, this will return null.", + "description": "Block finished a staged ledger, and a proof was emitted from it and included into this block's proof. If there is no transition frontier available or no block found, this will return null.", "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -11345,8 +11592,7 @@ }, { "name": "bodyReference", - "description": - "A reference to how the block header refers to the body of the block as a hex-encoded string", + "description": "A reference to how the block header refers to the body of the block as a hex-encoded string", "args": [], "type": { "kind": "NON_NULL", @@ -11389,8 +11635,7 @@ }, { "name": "blockchainState", - "description": - "State which is agnostic of a particular consensus algorithm", + "description": "State which is agnostic of a particular consensus algorithm", "args": [], "type": { "kind": "NON_NULL", @@ -11406,8 +11651,7 @@ }, { "name": "consensusState", - "description": - "State specific to the minaboros Proof of Stake consensus algorithm", + "description": "State specific to the minaboros Proof of Stake consensus algorithm", "args": [], "type": { "kind": "NON_NULL", @@ -11430,8 +11674,7 @@ { "kind": "SCALAR", "name": "StateHashAsDecimal", - "description": - "Experimental: Bigint field-element representation of stateHash", + "description": "Experimental: Bigint field-element representation of stateHash", "fields": null, "inputFields": null, "interfaces": null, @@ -11493,8 +11736,7 @@ }, { "name": "stateHash", - "description": - "Base58Check-encoded hash of the state after this block", + "description": "Base58Check-encoded hash of the state after this block", "args": [], "type": { "kind": "NON_NULL", @@ -11510,8 +11752,7 @@ }, { "name": "stateHashField", - "description": - "Experimental: Bigint field-element representation of stateHash", + "description": "Experimental: Bigint field-element representation of stateHash", "args": [], "type": { "kind": "NON_NULL", @@ -11575,13 +11816,16 @@ }, { "name": "commandTransactionCount", - "description": - "Count of user command transactions in the block", + "description": "Count of user command transactions in the block", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -11665,13 +11909,16 @@ }, { "name": "fee", - "description": - "Fee that snark worker is charging to generate a snark proof", + "description": "Fee that snark worker is charging to generate a snark proof", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Fee", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -11736,7 +11983,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -11778,8 +12029,7 @@ }, { "name": "bannedPeers", - "description": - "Peers we will never allow connections from (unless they are also trusted!)", + "description": "Peers we will never allow connections from (unless they are also trusted!)", "args": [], "type": { "kind": "NON_NULL", @@ -11803,8 +12053,7 @@ }, { "name": "isolate", - "description": - "If true, no connections will be allowed unless they are from a trusted peer", + "description": "If true, no connections will be allowed unless they are from a trusted peer", "args": [], "type": { "kind": "NON_NULL", @@ -11939,8 +12188,7 @@ "fields": [ { "name": "auth", - "description": - "Authorization required to set the verification key of the zkApp associated with the account", + "description": "Authorization required to set the verification key of the zkApp associated with the account", "args": [], "type": { "kind": "NON_NULL", @@ -12120,8 +12368,7 @@ }, { "name": "setVerificationKey", - "description": - "Authorization required to set the verification key of the zkApp associated with the account", + "description": "Authorization required to set the verification key of the zkApp associated with the account", "args": [], "type": { "kind": "NON_NULL", @@ -12137,8 +12384,7 @@ }, { "name": "setZkappUri", - "description": - "Authorization required to change the URI of the zkApp associated with the account ", + "description": "Authorization required to change the URI of the zkApp associated with the account ", "args": [], "type": { "kind": "NON_NULL", @@ -12154,8 +12400,7 @@ }, { "name": "editActionState", - "description": - "Authorization required to edit the action state", + "description": "Authorization required to edit the action state", "args": [], "type": { "kind": "NON_NULL", @@ -12203,8 +12448,7 @@ }, { "name": "setVotingFor", - "description": - "Authorization required to set the state hash the account is voting for", + "description": "Authorization required to set the state hash the account is voting for", "args": [], "type": { "kind": "NON_NULL", @@ -12220,8 +12464,7 @@ }, { "name": "setTiming", - "description": - "Authorization required to set the timing of the account", + "description": "Authorization required to set the timing of the account", "args": [], "type": { "kind": "NON_NULL", @@ -12294,8 +12537,7 @@ { "kind": "OBJECT", "name": "AnnotatedBalance", - "description": - "A total balance annotated with the amount that is currently unknown with the invariant unknown <= total, as well as the currently liquid and locked balances.", + "description": "A total balance annotated with the amount that is currently unknown with the invariant unknown <= total, as well as the currently liquid and locked balances.", "fields": [ { "name": "total", @@ -12315,8 +12557,7 @@ }, { "name": "unknown", - "description": - "The amount of MINA owned by the account whose origin is currently unknown", + "description": "The amount of MINA owned by the account whose origin is currently unknown", "args": [], "type": { "kind": "NON_NULL", @@ -12332,19 +12573,25 @@ }, { "name": "liquid", - "description": - "The amount of MINA owned by the account which is currently available. Can be null if bootstrapping.", + "description": "The amount of MINA owned by the account which is currently available. Can be null if bootstrapping.", "args": [], - "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + }, "isDeprecated": true, "deprecationReason": null }, { "name": "locked", - "description": - "The amount of MINA owned by the account which is currently locked. Can be null if bootstrapping.", + "description": "The amount of MINA owned by the account which is currently locked. Can be null if bootstrapping.", "args": [], - "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + }, "isDeprecated": true, "deprecationReason": null }, @@ -12366,8 +12613,7 @@ }, { "name": "stateHash", - "description": - "Hash of block at which balance was measured. Can be null if bootstrapping. Guaranteed to be non-null for direct account lookup queries when not bootstrapping. Can also be null when accessed as nested properties (eg. via delegators). ", + "description": "Hash of block at which balance was measured. Can be null if bootstrapping. Guaranteed to be non-null for direct account lookup queries when not bootstrapping. Can also be null when accessed as nested properties (eg. via delegators). ", "args": [], "type": { "kind": "SCALAR", @@ -12420,10 +12666,13 @@ "fields": [ { "name": "initialMinimumBalance", - "description": - "The initial minimum balance for a time-locked account", + "description": "The initial minimum balance for a time-locked account", "args": [], - "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -12443,7 +12692,11 @@ "name": "cliffAmount", "description": "The cliff amount for a time-locked account", "args": [], - "type": { "kind": "SCALAR", "name": "Amount", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -12461,10 +12714,13 @@ }, { "name": "vestingIncrement", - "description": - "The vesting increment for a time-locked account", + "description": "The vesting increment for a time-locked account", "args": [], - "type": { "kind": "SCALAR", "name": "Amount", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } @@ -12477,8 +12733,7 @@ { "kind": "SCALAR", "name": "TokenId", - "description": - "String representation of a token's UInt64 identifier", + "description": "String representation of a token's UInt64 identifier", "fields": null, "inputFields": null, "interfaces": null, @@ -12582,8 +12837,7 @@ }, { "name": "nonce", - "description": - "A natural number that increases with each transaction (stringified uint32)", + "description": "A natural number that increases with each transaction (stringified uint32)", "args": [], "type": { "kind": "SCALAR", @@ -12595,8 +12849,7 @@ }, { "name": "inferredNonce", - "description": - "Like the `nonce` field, except it includes the scheduled transactions (transactions not yet included in a block) (stringified uint32)", + "description": "Like the `nonce` field, except it includes the scheduled transactions (transactions not yet included in a block) (stringified uint32)", "args": [], "type": { "kind": "SCALAR", @@ -12608,10 +12861,13 @@ }, { "name": "epochDelegateAccount", - "description": - "The account that you delegated on the staking ledger of the current block's epoch", + "description": "The account that you delegated on the staking ledger of the current block's epoch", "args": [], - "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "type": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -12629,8 +12885,7 @@ }, { "name": "delegate", - "description": - "The public key to which you are delegating - if you are not delegating to anybody, this would return your public key", + "description": "The public key to which you are delegating - if you are not delegating to anybody, this would return your public key", "args": [], "type": { "kind": "SCALAR", @@ -12642,17 +12897,19 @@ }, { "name": "delegateAccount", - "description": - "The account to which you are delegating - if you are not delegating to anybody, this would return your public key", + "description": "The account to which you are delegating - if you are not delegating to anybody, this would return your public key", "args": [], - "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "type": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "delegators", - "description": - "The list of accounts which are delegating to you (note that the info is recorded in the last epoch so it might not be up to date with the current account status)", + "description": "The list of accounts which are delegating to you (note that the info is recorded in the last epoch so it might not be up to date with the current account status)", "args": [], "type": { "kind": "LIST", @@ -12672,8 +12929,7 @@ }, { "name": "lastEpochDelegators", - "description": - "The list of accounts which are delegating to you in the last epoch (note that the info is recorded in the one before last epoch so it might not be up to date with the current account status)", + "description": "The list of accounts which are delegating to you in the last epoch (note that the info is recorded in the one before last epoch so it might not be up to date with the current account status)", "args": [], "type": { "kind": "LIST", @@ -12693,8 +12949,7 @@ }, { "name": "votingFor", - "description": - "The previous epoch lock hash of the chain which you are voting for", + "description": "The previous epoch lock hash of the chain which you are voting for", "args": [], "type": { "kind": "SCALAR", @@ -12706,8 +12961,7 @@ }, { "name": "stakingActive", - "description": - "True if you are actively staking with this account on the current daemon - this may not yet have been updated if the staking key was changed recently", + "description": "True if you are actively staking with this account on the current daemon - this may not yet have been updated if the staking key was changed recently", "args": [], "type": { "kind": "NON_NULL", @@ -12739,35 +12993,43 @@ }, { "name": "locked", - "description": - "True if locked, false if unlocked, null if the account isn't tracked by the queried daemon", + "description": "True if locked, false if unlocked, null if the account isn't tracked by the queried daemon", "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "index", - "description": - "The index of this account in the ledger, or null if this account does not yet have a known position in the best tip ledger", + "description": "The index of this account in the ledger, or null if this account does not yet have a known position in the best tip ledger", "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "zkappUri", - "description": - "The URI associated with this account, usually pointing to the zkApp source code", + "description": "The URI associated with this account, usually pointing to the zkApp source code", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "zkappState", - "description": - "The 8 field elements comprising the zkApp state associated with this account encoded as bignum strings", + "description": "The 8 field elements comprising the zkApp state associated with this account encoded as bignum strings", "args": [], "type": { "kind": "LIST", @@ -12787,17 +13049,19 @@ }, { "name": "provedState", - "description": - "Boolean indicating whether all 8 fields on zkAppState were last set by a proof-authorized account update", + "description": "Boolean indicating whether all 8 fields on zkAppState were last set by a proof-authorized account update", "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "permissions", - "description": - "Permissions for updating certain fields of this account", + "description": "Permissions for updating certain fields of this account", "args": [], "type": { "kind": "OBJECT", @@ -12809,10 +13073,13 @@ }, { "name": "tokenSymbol", - "description": - "The symbol for the token owned by this account, if there is one", + "description": "The symbol for the token owned by this account, if there is one", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -12850,8 +13117,7 @@ }, { "name": "leafHash", - "description": - "The base58Check-encoded hash of this account to bootstrap the merklePath", + "description": "The base58Check-encoded hash of this account to bootstrap the merklePath", "args": [], "type": { "kind": "SCALAR", @@ -12863,8 +13129,7 @@ }, { "name": "merklePath", - "description": - "Merkle path is a list of path elements that are either the left or right hashes up to the root", + "description": "Merkle path is a list of path elements that are either the left or right hashes up to the root", "args": [], "type": { "kind": "LIST", @@ -12929,8 +13194,7 @@ }, { "name": "isCapturing", - "description": - "Whether we are capturing structured log messages", + "description": "Whether we are capturing structured log messages", "args": [], "type": { "kind": "NON_NULL", @@ -12986,7 +13250,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -12998,7 +13266,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13010,7 +13282,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13022,7 +13298,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13034,7 +13314,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13046,7 +13330,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13058,7 +13346,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13070,7 +13362,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13122,7 +13418,11 @@ "name": "peer", "description": null, "args": [], - "type": { "kind": "OBJECT", "name": "Peer", "ofType": null }, + "type": { + "kind": "OBJECT", + "name": "Peer", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -13133,7 +13433,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13145,7 +13449,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13178,7 +13486,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13190,7 +13502,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13202,7 +13518,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13214,7 +13534,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13226,7 +13550,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13254,7 +13582,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13268,13 +13600,11 @@ { "kind": "OBJECT", "name": "ConsensusTimeGlobalSlot", - "description": - "Consensus time and the corresponding global slot since genesis", + "description": "Consensus time and the corresponding global slot since genesis", "fields": [ { "name": "consensusTime", - "description": - "Time in terms of slot number in an epoch, start and end time of the slot since UTC epoch", + "description": "Time in terms of slot number in an epoch, start and end time of the slot since UTC epoch", "args": [], "type": { "kind": "NON_NULL", @@ -13351,8 +13681,7 @@ }, { "name": "globalSlotSinceGenesis", - "description": - "Next block production global-slot-since-genesis ", + "description": "Next block production global-slot-since-genesis ", "args": [], "type": { "kind": "NON_NULL", @@ -13376,8 +13705,7 @@ }, { "name": "generatedFromConsensusAt", - "description": - "Consensus time of the block that was used to determine the next block production time", + "description": "Consensus time of the block that was used to determine the next block production time", "args": [], "type": { "kind": "NON_NULL", @@ -13631,7 +13959,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13643,7 +13975,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13895,7 +14231,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13951,7 +14291,11 @@ "name": "numAccounts", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -13959,7 +14303,11 @@ "name": "blockchainLength", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -13970,7 +14318,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13982,7 +14334,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -13994,7 +14350,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -14003,7 +14363,11 @@ "name": "ledgerMerkleRoot", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -14011,7 +14375,11 @@ "name": "stateHash", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -14094,7 +14462,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -14103,7 +14475,11 @@ "name": "snarkWorker", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -14114,7 +14490,11 @@ "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -14183,7 +14563,11 @@ "name": "coinbaseReceiver", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -14215,7 +14599,11 @@ "name": "globalSlotSinceGenesisBestTip", "description": null, "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -14405,14 +14793,17 @@ "name": "version", "description": "The version of the node (git commit hash)", "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, { "name": "getFilteredLogEntries", - "description": - "TESTING ONLY: Retrieve all new structured events in memory", + "description": "TESTING ONLY: Retrieve all new structured events in memory", "args": [ { "name": "offset", @@ -14443,8 +14834,7 @@ }, { "name": "ownedWallets", - "description": - "Wallets for which the daemon knows the private key", + "description": "Wallets for which the daemon knows the private key", "args": [], "type": { "kind": "NON_NULL", @@ -14468,8 +14858,7 @@ }, { "name": "trackedAccounts", - "description": - "Accounts for which the daemon tracks the private key", + "description": "Accounts for which the daemon tracks the private key", "args": [], "type": { "kind": "NON_NULL", @@ -14510,14 +14899,17 @@ "defaultValue": null } ], - "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "type": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + }, "isDeprecated": true, "deprecationReason": "use account instead" }, { "name": "connectionGatingConfig", - "description": - "The rules that the libp2p helper will use to determine which connections to permit", + "description": "The rules that the libp2p helper will use to determine which connections to permit", "args": [], "type": { "kind": "NON_NULL", @@ -14537,8 +14929,7 @@ "args": [ { "name": "token", - "description": - "Token of account being retrieved (defaults to MINA)", + "description": "Token of account being retrieved (defaults to MINA)", "type": { "kind": "SCALAR", "name": "TokenId", @@ -14561,7 +14952,11 @@ "defaultValue": null } ], - "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "type": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -14623,7 +15018,11 @@ "defaultValue": null } ], - "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "type": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null }, @@ -14680,14 +15079,16 @@ }, { "name": "bestChain", - "description": - "Retrieve a list of blocks from transition frontier's root to the current best tip. Returns an error if the system is bootstrapping.", + "description": "Retrieve a list of blocks from transition frontier's root to the current best tip. Returns an error if the system is bootstrapping.", "args": [ { "name": "maxLength", - "description": - "The maximum number of blocks to return. If there are more blocks in the transition frontier from root to tip, the n blocks closest to the best tip will be returned", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "description": "The maximum number of blocks to return. If there are more blocks in the transition frontier from root to tip, the n blocks closest to the best tip will be returned", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, "defaultValue": null } ], @@ -14709,14 +15110,16 @@ }, { "name": "block", - "description": - "Retrieve a block with the given state hash or height, if contained in the transition frontier.", + "description": "Retrieve a block with the given state hash or height, if contained in the transition frontier.", "args": [ { "name": "height", - "description": - "The height of the desired block in the best chain", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "description": "The height of the desired block in the best chain", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, "defaultValue": null }, { @@ -14760,8 +15163,7 @@ }, { "name": "initialPeers", - "description": - "List of peers that the daemon first used to connect to the network", + "description": "List of peers that the daemon first used to connect to the network", "args": [], "type": { "kind": "NON_NULL", @@ -14785,8 +15187,7 @@ }, { "name": "getPeers", - "description": - "List of peers that the daemon is currently connected to", + "description": "List of peers that the daemon is currently connected to", "args": [], "type": { "kind": "NON_NULL", @@ -14810,8 +15211,7 @@ }, { "name": "pooledUserCommands", - "description": - "Retrieve all the scheduled user commands for a specified sender that the current daemon sees in its transaction pool. All scheduled commands are queried if no sender is specified", + "description": "Retrieve all the scheduled user commands for a specified sender that the current daemon sees in its transaction pool. All scheduled commands are queried if no sender is specified", "args": [ { "name": "ids", @@ -14851,8 +15251,7 @@ }, { "name": "publicKey", - "description": - "Public key of sender of pooled user commands", + "description": "Public key of sender of pooled user commands", "type": { "kind": "SCALAR", "name": "PublicKey", @@ -14883,8 +15282,7 @@ }, { "name": "pooledZkappCommands", - "description": - "Retrieve all the scheduled zkApp commands for a specified sender that the current daemon sees in its transaction pool. All scheduled commands are queried if no sender is specified", + "description": "Retrieve all the scheduled zkApp commands for a specified sender that the current daemon sees in its transaction pool. All scheduled commands are queried if no sender is specified", "args": [ { "name": "ids", @@ -14906,8 +15304,7 @@ }, { "name": "hashes", - "description": - "Hashes of the zkApp commands to find in the pool", + "description": "Hashes of the zkApp commands to find in the pool", "type": { "kind": "LIST", "name": null, @@ -14925,8 +15322,7 @@ }, { "name": "publicKey", - "description": - "Public key of sender of pooled zkApp commands", + "description": "Public key of sender of pooled zkApp commands", "type": { "kind": "SCALAR", "name": "PublicKey", @@ -14962,13 +15358,21 @@ { "name": "zkappTransaction", "description": "Id of a zkApp transaction", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, "defaultValue": null }, { "name": "payment", "description": "Id of a Payment", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, "defaultValue": null } ], @@ -15045,8 +15449,7 @@ }, { "name": "snarkPool", - "description": - "List of completed snark works that have the lowest fee so far", + "description": "List of completed snark works that have the lowest fee so far", "args": [], "type": { "kind": "NON_NULL", @@ -15094,8 +15497,7 @@ }, { "name": "genesisConstants", - "description": - "The constants used to determine the configuration of the genesis block and all of its transitive dependencies", + "description": "The constants used to determine the configuration of the genesis block and all of its transitive dependencies", "args": [], "type": { "kind": "NON_NULL", @@ -15111,13 +15513,16 @@ }, { "name": "timeOffset", - "description": - "The time offset in seconds used to convert real times into blockchain times", + "description": "The time offset in seconds used to convert real times into blockchain times", "args": [], "type": { "kind": "NON_NULL", "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -15128,8 +15533,7 @@ "args": [ { "name": "signature", - "description": - "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "description": "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", "type": { "kind": "INPUT_OBJECT", "name": "SignatureInput", @@ -15166,8 +15570,7 @@ }, { "name": "evaluateVrf", - "description": - "Evaluate a vrf for the given public key. This includes a witness which may be verified without access to the private key for this vrf evaluation.", + "description": "Evaluate a vrf for the given public key. This includes a witness which may be verified without access to the private key for this vrf evaluation.", "args": [ { "name": "vrfThreshold", @@ -15222,8 +15625,7 @@ }, { "name": "checkVrf", - "description": - "Check a vrf evaluation commitment. This can be used to check vrf evaluations without needing to reveal the private key, in the format returned by evaluateVrf", + "description": "Check a vrf evaluation commitment. This can be used to check vrf evaluations without needing to reveal the private key, in the format returned by evaluateVrf", "args": [ { "name": "input", @@ -15254,8 +15656,7 @@ }, { "name": "runtimeConfig", - "description": - "The runtime configuration passed to the daemon at start-up", + "description": "The runtime configuration passed to the daemon at start-up", "args": [], "type": { "kind": "NON_NULL", @@ -15271,14 +15672,16 @@ }, { "name": "fork_config", - "description": - "The runtime configuration for a blockchain fork intended to be a continuation of the current one. By default, this returns the newest block that appeared before the transaction stop slot provided in the configuration, or the best tip if no such block exists.", + "description": "The runtime configuration for a blockchain fork intended to be a continuation of the current one. By default, this returns the newest block that appeared before the transaction stop slot provided in the configuration, or the best tip if no such block exists.", "args": [ { "name": "height", - "description": - "The height of the desired block in the best chain", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "description": "The height of the desired block in the best chain", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, "defaultValue": null }, { @@ -15306,8 +15709,7 @@ }, { "name": "threadGraph", - "description": - "A graphviz dot format representation of the deamon's internal thread graph", + "description": "A graphviz dot format representation of the deamon's internal thread graph", "args": [], "type": { "kind": "NON_NULL", @@ -15323,8 +15725,7 @@ }, { "name": "blockchainVerificationKey", - "description": - "The pickles verification key for the protocol state proof", + "description": "The pickles verification key for the protocol state proof", "args": [], "type": { "kind": "NON_NULL", @@ -15340,8 +15741,7 @@ }, { "name": "networkID", - "description": - "The chain-agnostic identifier of the network this daemon is participating in", + "description": "The chain-agnostic identifier of the network this daemon is participating in", "args": [], "type": { "kind": "NON_NULL", @@ -15357,8 +15757,7 @@ }, { "name": "signatureKind", - "description": - "The signature kind that this daemon instance is using", + "description": "The signature kind that this daemon instance is using", "args": [], "type": { "kind": "NON_NULL", @@ -15374,8 +15773,7 @@ }, { "name": "protocolState", - "description": - "Get the protocol state for a given block, optionally encoded in Base64", + "description": "Get the protocol state for a given block, optionally encoded in Base64", "args": [ { "name": "encoding", @@ -15389,9 +15787,12 @@ }, { "name": "height", - "description": - "The height of the desired block in the best chain", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "description": "The height of the desired block in the best chain", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, "defaultValue": null }, { diff --git a/core/src/main.rs b/core/src/main.rs index a0525fd3..ec768600 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -35,7 +35,7 @@ async fn main() { }); debug!("Executing Mina polling service"); - let mina_proof = mina_polling_service::query_and_serialize( + let mina_proof = mina_polling_service::get_mina_proof_of_state( &rpc_url, &proof_generator_addr, &chain, diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index 5915e605..3a5cd79b 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -9,14 +9,16 @@ use graphql_client::{ use kimchi::{o1_utils::FieldHelpers, turshi::helper::CairoFieldHelpers}; use log::{debug, info}; use mina_curves::pasta::Fp; -use mina_p2p_messages::v2::StateHash; -use mina_tree::FpExt; +use mina_p2p_messages::v2::{LedgerHash as MerkleRoot, StateHash}; +use mina_tree::{FpExt, MerklePath}; use crate::{smart_contract_utility::get_tip_state_hash, utils::constants::MINA_STATE_HASH_SIZE}; type StateHashAsDecimal = String; type PrecomputedBlockProof = String; type ProtocolState = String; +type FieldElem = String; +type LedgerHash = String; #[derive(GraphQLQuery)] #[graphql( @@ -34,7 +36,16 @@ struct StateQuery; /// A query for the state hashes and proofs of the transition frontier. struct BestChainQuery; -pub async fn query_and_serialize( +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "src/graphql/mina_schema.json", + query_path = "src/graphql/merkle_query.graphql" +)] +/// A query for retrieving the merkle root, leaf and path of an account +/// included in some state. +struct MerkleQuery; + +pub async fn get_mina_proof_of_state( rpc_url: &str, proof_generator_addr: &str, chain: &Chain, @@ -149,6 +160,60 @@ pub async fn query_root(rpc_url: &str, length: usize) -> Result Result<(Fp, Fp, Vec), String> { + debug!("Querying merkle root, leaf and path of account {public_key} of state {state_hash}"); + let client = reqwest::Client::new(); + + let variables = merkle_query::Variables { + state_hash: state_hash.to_owned(), + public_key: public_key.to_owned(), + }; + + let response = post_graphql::(&client, rpc_url, variables) + .await + .map_err(|err| err.to_string())? + .data + .ok_or("Missing merkle query response data".to_string())?; + + let account = response + .account + .ok_or("Missing merkle query account".to_string())?; + + let merkle_root = MerkleRoot::from_str( + &response + .block + .protocol_state + .blockchain_state + .staged_ledger_hash, + ) + .map_err(|_| "Error deserializing leaf hash".to_string())? + .to_fp() + .map_err(|_| "Error decoding leaf hash into fp".to_string())?; + + let merkle_leaf = Fp::from_str(&account.leaf_hash.ok_or("Missing merkle query leaf hash")?) + .map_err(|_| "Error deserializing leaf hash".to_string())?; + + let merkle_path = account + .merkle_path + .ok_or("Missing merkle query path")? + .into_iter() + .map(|node| -> Result { + match (node.left, node.right) { + (Some(fp_str), None) => Ok(MerklePath::Left(Fp::from_str(&fp_str)?)), + (None, Some(fp_str)) => Ok(MerklePath::Right(Fp::from_str(&fp_str)?)), + _ => unreachable!(), + } + }) + .collect::, ()>>() + .map_err(|_| "Error deserializing merkle path nodes".to_string())?; + + Ok((merkle_root, merkle_leaf, merkle_path)) +} + fn serialize_state_hash(hash: &StateHashAsDecimal) -> Result, String> { let bytes = Fp::from_str(hash) .map_err(|_| "Failed to decode hash as a field element".to_string())? From 5bff1609173336f905929a67c7a0de8cfe97619a Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Fri, 23 Aug 2024 17:19:00 -0300 Subject: [PATCH 20/46] Delete nonce file on submit error (#325) * Delete nonce file on submit error * Update Holesky contract --- core/src/aligned_polling_service.rs | 28 ++++++++++++++++++++++++++-- core/src/utils/constants.rs | 2 +- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index c21957bf..8514eea4 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -20,8 +20,28 @@ pub async fn submit( eth_rpc_url: &str, wallet: Wallet, ) -> Result { - let nonce = get_nonce(eth_rpc_url, wallet.address(), batcher_eth_addr).await?; + let wallet_address = wallet.address(); + let nonce = get_nonce(eth_rpc_url, wallet_address, batcher_eth_addr).await?; + submit_with_nonce(batcher_addr, eth_rpc_url, chain, mina_proof, wallet, nonce) + .await + .or_else(|err| { + let nonce_file = &get_nonce_file(wallet_address); + std::fs::remove_file(nonce_file) + .map_err(|err| format!("Error trying to remove nonce file: {err}"))?; + + Err(err) + }) +} + +async fn submit_with_nonce( + batcher_addr: &str, + eth_rpc_url: &str, + chain: &Chain, + mina_proof: &VerificationData, + wallet: Wallet, + nonce: U256, +) -> Result { info!("Submitting Mina proof into Aligned and waiting for the batch to be verified..."); let aligned_verification_data = submit_and_wait( batcher_addr, @@ -51,7 +71,7 @@ async fn get_nonce( .await .map_err(|err| err.to_string())?; - let nonce_file = &PathBuf::from(format!("nonce_{:?}.bin", address)); + let nonce_file = &get_nonce_file(address); let local_nonce = std::fs::read(nonce_file).unwrap_or(vec![0u8; 32]); let local_nonce = U256::from_big_endian(local_nonce.as_slice()); @@ -71,3 +91,7 @@ async fn get_nonce( Ok(nonce) } + +fn get_nonce_file(address: Address) -> PathBuf { + PathBuf::from(format!("nonce_{:?}.bin", address)) +} diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index ccd0b199..55b68f36 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -18,7 +18,7 @@ pub const MINA_STATE_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; -pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x9dD655fE21fA10FeD52C0DAD48Ac937517f1451A"; +pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x42c6AA216f895278BAcfbD01E3aae2B99d2e4673"; // Aligned related constants pub const PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; From 0dbf7a39f9caa934a379e0344b61afbbab4212e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 26 Aug 2024 14:49:54 -0300 Subject: [PATCH 21/46] Account verifier (#322) * Added merkle query * Rename query_and_serialize * WIP merkle query * Fix test * WIP Account query * Finished account query * Fixed TokenId deserialization * Remove account query * Fix clippy * Removed account_inclusion crate * Take into account mina account proofs * Add CLI commands * Implement submission code for account proof * Add ledger hash to state verifier * Add accountIdHash and account verification feature for smart contract * Add eth call for update account * Fix clippy * Update makefile rules * Update specification * Added doc to smart contract * Fix clippy * Update README.md * Update Makefile * Fix aligned sdk git dependency * Update cargo.lock --- Makefile | 12 +- README.md | 188 +++++++++++---- contract/src/Account.sol | 32 +++ contract/src/MinaBridge.sol | 78 +++++- contract_deployer/Cargo.lock | 45 +++- contract_deployer/Cargo.toml | 2 +- core/Cargo.lock | 355 ++++++++++++++++++---------- core/Cargo.toml | 2 + core/abi/MinaBridge.json | 2 +- core/src/aligned_polling_service.rs | 12 +- core/src/main.rs | 208 +++++++++++----- core/src/mina_polling_service.rs | 110 ++++++++- core/src/smart_contract_utility.rs | 83 ++++++- core/src/utils/constants.rs | 2 +- core/src/utils/env.rs | 5 - 15 files changed, 867 insertions(+), 269 deletions(-) create mode 100644 contract/src/Account.sol diff --git a/Makefile b/Makefile index 4f7f9cd4..25e71d43 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,10 @@ -.PHONY: run gen_contract_abi deploy_contract +.PHONY: submit-state submit-account gen_contract_abi deploy_contract -run: - @cargo run --manifest-path core/Cargo.toml --release +submit-state: + @cargo run --manifest-path core/Cargo.toml --release -- submit-state + +submit-account: + @cargo run --manifest-path core/Cargo.toml --release -- submit-account ${PUBLIC_KEY} gen_contract_abi: forge build --root contract/ @@ -9,6 +12,3 @@ gen_contract_abi: deploy_contract: gen_contract_abi @cargo run --manifest-path contract_deployer/Cargo.toml --release - -verify_account_inclusion: - @cargo run --manifest-path account_inclusion/Cargo.toml --release -- ${PUBLIC_KEY} diff --git a/README.md b/README.md index 9fdd5a82..3df53ad0 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,6 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan ## Usage -### Bridge - 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) 1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. 1. In the root folder, deploy the bridge's contract with: @@ -24,21 +22,65 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan make deploy_contract_anvil ``` -1. Run the core program: +1. Submit a state to verify: ```sh - make + make submit-state ``` +1. Submit an account to verify: -### Account inclusion local verifier - -After verifying a Mina state, you can locally verify the inclusion of some Mina account given its public key in the bridged state. - -1. Run - - ```sh - make verify_account_inclusion PUBLIC_KEY= - ``` + ```sh + make submit-account PUBLIC_KEY= + ``` + +## Table of Contents +- [About](#about) +- [Usage](#usage) +- [Specification](#specification) + * [Core](#core) + + [Mina Polling Service](#mina-polling-service) + + [Aligned Polling Service](#aligned-polling-service) + + [Smart Contract Utility](#smart-contract-utility) + * [Mina Proof of State](#mina-proof-of-state) + + [Definition](#definition) + + [Serialization](#serialization) + + [Aligned’s Mina Proof of State verifier](#aligneds-mina-proof-of-state-verifier) + + [Consensus checking](#consensus-checking) + + [Transition frontier](#transition-frontier) + + [State hash check](#state-hash-check) + + [Pickles verification](#pickles-verification) + * [Mina Proof of Account](#mina-proof-of-account) + + [Definition](#definition-1) + + [Serialization](#serialization-1) + + [Aligned’s Proof of Account verification](#aligneds-proof-of-account-verifier) + * [Smart contract](#smart-contract) + + [Gas cost](#gas-cost) +- [Kimchi proving system](#kimchi-proving-system) + * [Proof Construction & Verification](#proof-construction---verification) + + [Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs``](#secuence-diagram-linked-to---proof-systems-kimchi-src-verifierrs--) + * [Pickles - Mina’s inductive zk-SNARK composition system](#pickles---mina-s-inductive-zk-snark-composition-system) + + [Accumulator](#accumulator) + + [Analysis of the Induction (recursion) method applied in Pickles](#analysis-of-the-induction--recursion--method-applied-in-pickles) + + [Pickles Technical Diagrams](#pickles-technical-diagrams) + * [Consensus](#consensus) + + [Chain selection rules](#chain-selection-rules) + - [Short-range fork rule](#short-range-fork-rule) + - [Long-range fork rule](#long-range-fork-rule) + + [Decentralized checkpointing](#decentralized-checkpointing) + + [Short-range fork check](#short-range-fork-check) + + [Sliding window density](#sliding-window-density) + - [Nomenclature](#nomenclature) + - [Window structure](#window-structure) + - [Minimum window density](#minimum-window-density) + - [Ring-shift](#ring-shift) + - [Projected window](#projected-window) + * [Genesis window](#genesis-window) + * [Relative minimum window density](#relative-minimum-window-density) + * [Protocol](#protocol) + + [Initialize consensus](#initialize-consensus) + + [Select chain](#select-chain) + + [Maintaining the k-th predecessor epoch ledger](#maintaining-the-k-th-predecessor-epoch-ledger) + + [Getting the tip](#getting-the-tip) # Specification @@ -52,26 +94,10 @@ A Rust library+binary project that includes the next modules: [`mina_bridge repo: core/src/mina_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina_polling_service.rs) -This module queries a Mina node (defined by the user via the `MINA_RPC_URL` env. variable) GraphQL DB for the latest state data (called the candidate state) and proof. - -It also queries the Bridge’s smart contract for the last verified Mina state hash, called the **Bridge’s tip state** or just tip state and queries the state corresponding to that hash to the Mina node. - -Then it serializes: - -- both states (which are an OCaml structure encoded in base64, standard vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state()`) -- both state hashes (field element) as bytes (arkworks serialization). (`serialize_state_hash_field()`) -- the candidate state proof (an OCaml structure encoded in base64, URL vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state_proof()`) - -This data composes what we call a **Mina Proof of State**. - -#### Mina Proof of State - -We understand a Mina Proof of State to be composed of: - -- **public inputs** (vector of bytes): `[candidate_state_hash, tip_state_hash, candidate_state_length, candidate_state, tip_state_length, tip_state]`. We include the lengths of the states in bytes because these can vary, unlike the hashes which are a fixed 32 bytes. -- **proof**: Kimchi proof of the candidate state (specifically a Wrap proof in the context of the Pickles recursive system). We like to call it “Pickles proof” for simplicity. +This module can query a Mina node (defined by the user via the `MINA_RPC_URL` env. variable) GraphQL DB for: -This is the proof that the Mina verifier in Aligned (also called a Mina operator) expects. +- the latest state data (called the candidate state) and its proof +- the merkle proof of inclusion of some Mina account for the latest verified state on the bridge. ### Aligned Polling Service @@ -87,30 +113,35 @@ Finally the service returns the verification data sent by Aligned after proof su [`mina_bridge repo: core/src/smart_contract_utility.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/smart_contract_utility.rs) -This module sends a transaction to the Bridge’s smart contract that calls the “update tip” (see the [Smart Contract section](#smart-contract)) function by sending the **incomplete** verification data retrieved by the Aligned Polling Service, aside from the Mina Proof of State public inputs. By “incomplete” we mean that we’re sending all the verification data, except for the public input commitment, which is a keccak256 hash of the public inputs. So by sending the public inputs to the contract we can cheaply calculate on-chain the public input commitment for completing the verification data. We do this instead of directly sending the commitment so the contract can: +This module sends a transaction to the Bridge’s smart contract that calls the “update tip” (see the [Smart Contract section](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21)) function by sending the **incomplete** verification data retrieved by the Aligned Polling Service, aside from the Mina Proof of State public inputs. By “incomplete” we mean that we’re sending all the verification data, except for the public input commitment, which is a keccak256 hash of the public inputs. So by sending the public inputs to the contract we can cheaply calculate on-chain the public input commitment for completing the verification data. We do this instead of directly sending the commitment so the contract can: - check that the `tip_state_hash` is indeed the tip state hash stored in the contract - retrieve the `candidate_state_hash` and store it if the candidate was verified -### Smart Contract +## Mina Proof of State -[`mina_bridge repo: contract/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract) +The core role of the bridge is to verify the state of a Mina block, and store it’s hash and useful data (like its ledger hash, see account verification) in an Ethereum smart contract. -The contract stores the Bridge’s tip state hash and exposes functions to read (`getTipStateHash()`) or update it (`updateTipStateHash()`). Generally it’s the Smart Contract Utility that will send a transaction to update the tip state hash. +### Definition -The Bridge’s contract update function calls the Aligned Service Manager smart contract to check that the Mina Proof of State was verified in Aligned. The parameters that the Aligned Service Manager needs for checking is the complete verification data. +We understand a Mina Proof of State to be composed of: -If the Aligned Service Manager call returns true, this means that a Mina Proof of State of some candidate state (whose hash is known by the contract), checked against the Bridge’s tip state (consensus checking), was verified. Then this candidate state is now the tip state, and so its hash is stored in the contract. +- **public inputs** (vector of bytes): `[candidate_ledger_hash, candidate_state_hash, tip_state_hash, candidate_state_length, candidate_state, tip_state_length, tip_state]`. We include the lengths of the states in bytes because these can vary, unlike the hashes which are a fixed 32 bytes. +- **proof**: Kimchi proof of the candidate state (specifically a Wrap proof in the context of the Pickles recursive system). We like to call it “Pickles proof” for simplicity. -The contract is deployed by a `contract_deployer` crate with an initial state that is the eleventh state from the Mina node [transition frontier’s](#transition-frontier) tip. +This is the proof that the Mina state verifier in Aligned expects. -The `contract_deployer` asks the Mina node for the eleventh state and deploys the contract using that state as the initial one, assuming it is valid. +### Serialization -#### Gas cost +The Mina Polling Service serializes a Mina Proof of State: -Currently the cost of the “update tip” transaction is in between 100k and 150k gas, a big part of it being the calldata cost of sending both states data in the public inputs of the Mina Proof of State. The cost could be decreased to <100k by modifying the definition of a Mina Proof of State; sending the state data as proof data instead of public inputs. At the current phase of the project this is not a priority so this change wasn’t done yet. +- both states (which are an OCaml structure encoded in base64, standard vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state()`) +- both state hashes (field element) as bytes (arkworks serialization). The same is done for the ledger hash. (`serialize_state_hash_field()`) +- the candidate state proof (an OCaml structure encoded in base64, URL vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state_proof()`) + +This data composes what we call a **Mina Proof of State**. -## Aligned’s Mina Proof of State verifier +### Aligned’s Mina Proof of State verifier [`aligned_layer repo: operator/mina/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) @@ -143,19 +174,21 @@ else if candidate_block_height == tip_block_height { } return tip; + ``` If the candidate wins the comparisons, then verification continues. If not, verification fails. -The full code details can be consulted in the GitHub repository link at the [top of the section](#aligneds-mina-proof-of-state-verifier). We use OpenMina’s code for hashing the consensus state. +The full code details can be consulted in the GitHub repository link at the [top of the section](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21). We use OpenMina’s code for hashing the consensus state. > [!WARNING] > At the moment we’re unsure about other considerations or checks for the consensus checking step. We are also ignoring the finalization of the state that we verified. This step is under investigation. -#### Transition frontier +### Transition frontier -The **transition frontier** is a chain of the latest `k` blocks of the network. The GraphQL DB of a Mina node only stores these blocks and forgets the previous ones. Currently, `k = 291` -It's common for two nodes to generate a block simultaneously, resulting in a temporary fork in the network. The network will eventually resolve this fork after a period of time. +The **transition frontier** is a chain of the latest `k` blocks of the network. The GraphQL DB of a Mina node only stores these blocks and forgets the previous ones. Currently, `k = 291` + +It's common for two nodes to generate a block simultaneously, resulting in a temporary fork in the network. The network will eventually resolve this fork after a period of time. We can define that a block is **partially finalized** if it has `n` blocks ahead of it, with `n` being the number defined for 'partial finalization'. @@ -172,6 +205,67 @@ This is the last step of the Mina Proof of State verifier. We are leveraging Ope > [!WARNING] > OpenMina’s block verifier is yet to be audited. +## Mina Proof of Account + +After a Mina Proof of State was verified, it’s possible to verify a Proof of Account of some Mina account in the verified state. + +Verifying that some account and its state is valid in a bridged Mina state is one of the basic components of a Mina to Ethereum bridge, as it not only allows to validate account data but also the execution of a [zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp) tracked by this account (see [zkApp Account](https://docs.minaprotocol.com/glossary#zkapp-account)), which leverages zk-SNARKs to verify (optionally private) off-chain computation on the Mina blockchain. + +Account verification (paired with state verification) essentially allows to verify off-chain computation on Ethereum, after it has been validated by Mina. + +### Definition + +We understand a Mina Proof of Account to be composed of: + +- **public inputs** (vector of bytes): `[merkle_root, account_hash, account_id_hash]` +- **proof**: `[merkle_proof]` + +Where `merkle_root` and `account_hash` are field elements, and `merkle_proof` an array of field elements with an extra leading byte that specifies if a merkle node is left or right. + +`account_id_hash` is the keccak256 hash of an `AccountId` type, which identifies a Mina account. It’s composed of the account’s public key (which is a ec point but saved in a compressed form: via its x coordinate an a boolean) and its token id (a field element, the poseidon hash of an integer that identifies a token on the Mina blockchain). + +This is the proof that the Mina account verifier in Aligned expects. + +### Serialization + +The Mina Polling Service serializes a Mina Proof of Account: + +- both poseidon hashes (`merkle_root` and `account_hash` which are field elements) (field element) as bytes (arkworks serialization). +- the keccak hash (`account_id_hash`) is already an array of 32 bytes. + +In the future we’ll send the account data as part of the proof so we can add information about the account in the public inputs (like the public key) and check it on the Aligned verifier. + +### Aligned’s Proof of Account verifier + +[`aligned_layer repo: operator/mina_account/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina_account) + +The verification consists in calculating the merkle root by hashing the branch (whose nodes are contained in the `merkle_path`) corresponding to the account’s leaf. + +> [!WARNING] +> Currently we aren’t checking the validity of the `account_id_hash`. This will be fixed once we have the needed GraphQL query to retrieve the complete data of an account. + +## Smart contract + +[`mina_bridge repo: contract/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract) + +The contract stores the Bridge’s tip state hash and exposes functions to read (`getTipStateHash()`) or update it (`updateTipState()`). It also saves a mapping `accountId -> accountHash and ledgerHash` of verified account state hashes and the ledger hash (merkle root) they were verified against, so a user can query which account state was verified to which Mina block (`getLedgerAccountPair()`), if some account is updated to the latest verified state (`isAccountUpdated()`) or update them themselves (`updateAccount()`). + +The Smart Contract Utility implements an API for submitting data of verified state and account proofs, to update the contract. + +The Bridge’s contract update functions call the Aligned Service Manager smart contract to check that the Mina Proof of State or Account was verified in Aligned. The parameters that the Aligned Service Manager needs for checking is the complete verification data: + +- For a Proof of State: if the Aligned Service Manager call returns true, this means that a Mina Proof of State of some candidate state (whose hash is known by the contract), checked against the Bridge’s tip state (consensus checking), was verified. Then this candidate state is now the tip state, and so its hash is stored in the contract. +- For a Proof of Account: if the Aligned Service Manager call returns true, this means that a Mina Proof of Account of some account state (whose hash is known by the contract) corresponding to a valid account id hash was verified against some ledger hash (which is the Merkle root of the account state tree of a given Mina block). Then this account state and ledger hash paired is saved in the contract. + +The contract is deployed by a `contract_deployer` crate with an initial state that is the eleventh state from the Mina node [transition frontier’s](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21) tip. + +The `contract_deployer` asks the Mina node for the eleventh state and deploys the contract using that state as the initial one, assuming it is valid. + +### Gas cost + +- Currently the cost of the “update tip” transaction is in between 100k and 150k gas, a big part of it being the calldata cost of sending both states data in the public inputs of the Mina Proof of State. The cost could be decreased to <100k by modifying the definition of a Mina Proof of State; sending the state data as proof data instead of public inputs. At the current phase of the project this is not a priority so this change wasn’t done yet. +- The cost of the “update account” transaction is ~90k the first time and ~60k when updating a previously verified account. + # Kimchi proving system Kimchi is a zero-knowledge proof system that’s a variant of PLONK. diff --git a/contract/src/Account.sol b/contract/src/Account.sol new file mode 100644 index 00000000..0feb7b39 --- /dev/null +++ b/contract/src/Account.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.12; + +library Account { + /// @notice A compressed public key (ec. point) of a Mina account. + struct CompressedPubKey { + bytes32 x; + bool isOdd; + } + + /// @notice A Mina account is identified by its public key and token id. + struct AccountId { + CompressedPubKey publicKey; + bytes32 tokenId; + } + + /// @notice A verified account hash with its associated (also valid) ledger hash. + struct LedgerAccountPair { + bytes32 ledgerHash; + bytes32 accountHash; + } + + /// @notice Hashes an AccountId for storing as a key of a mapping. + function hash_account_id( + AccountId memory accountId + ) private pure returns (bytes32) { + assembly { + mstore(0x00, keccak256(accountId, 0x41)) // bool is stored as single byte + return(0x00, 0x20) + } + } +} diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index e162fcf1..4fd2c4ae 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -2,14 +2,21 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; +import "./Account.sol"; error NewStateIsNotValid(); error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); +error AccountIsNotValid(bytes32 accountIdHash); /// @title Mina to Ethereum Bridge's smart contract. contract MinaBridge { /// @notice The state hash of the last verified state as a Fp. bytes32 tipStateHash; + /// @notice The ledger hash of the last verified state as a Fp. + bytes32 tipLedgerHash; + + /// @notice mapping of a keccak256(TokenId) => verified account hash and its ledger hash. + mapping(bytes32 => Account.LedgerAccountPair) accounts; /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; @@ -19,11 +26,32 @@ contract MinaBridge { tipStateHash = _tipStateHash; } - /// @notice Returns the last verified state hash, or the root state hash if none. + /// @notice Returns the last verified state hash. function getTipStateHash() external view returns (bytes32) { return tipStateHash; } + /// @notice Returns the last verified ledger hash. + function getTipLedgerHash() external view returns (bytes32) { + return tipLedgerHash; + } + + /// @notice Returns the ledger hash and account state hash pair for + // a given account id. + function getLedgerAccountPair( + bytes32 accountIdHash + ) external view returns (Account.LedgerAccountPair memory) { + return accounts[accountIdHash]; + } + + /// @notice Checks if some account state is verified for the latest + // verified Mina state. + function isAccountUpdated( + bytes32 accountIdHash + ) external view returns (bool) { + return accounts[accountIdHash].ledgerHash == tipLedgerHash; + } + function updateTipState( bytes32 proofCommitment, bytes32 provingSystemAuxDataCommitment, @@ -35,7 +63,7 @@ contract MinaBridge { ) external { bytes32 pubInputTipStateHash; assembly { - pubInputTipStateHash := mload(add(pubInput, 0x40)) + pubInputTipStateHash := mload(add(pubInput, 0x60)) } if (pubInputTipStateHash != tipStateHash) { @@ -55,12 +83,54 @@ contract MinaBridge { ); if (isNewStateVerified) { - // first 32 bytes of pub input is the candidate (now verified) state hash. + // first 32 bytes of pub input is the candidate (now verified) ledger hash. + // second 32 bytes of pub input is the candidate (now verified) state hash. assembly { - sstore(tipStateHash.slot, mload(add(pubInput, 0x20))) + sstore(tipLedgerHash.slot, mload(add(pubInput, 0x20))) + sstore(tipStateHash.slot, mload(add(pubInput, 0x40))) } } else { revert NewStateIsNotValid(); } } + + function updateAccount( + bytes32 proofCommitment, + bytes32 provingSystemAuxDataCommitment, + bytes20 proofGeneratorAddr, + bytes32 batchMerkleRoot, + bytes memory merkleProof, + uint256 verificationDataBatchIndex, + bytes memory pubInput + ) external { + bytes32 ledgerHash; + bytes32 accountHash; + bytes32 accountIdHash; + assembly { + ledgerHash := mload(add(pubInput, 0x20)) + accountHash := mload(add(pubInput, 0x40)) + accountIdHash := mload(add(pubInput, 0x60)) + } + + bytes32 pubInputCommitment = keccak256(pubInput); + + bool isAccountVerified = aligned.verifyBatchInclusion( + proofCommitment, + pubInputCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex + ); + + if (isAccountVerified) { + accounts[accountIdHash] = Account.LedgerAccountPair( + ledgerHash, + accountHash + ); + } else { + revert AccountIsNotValid(accountIdHash); + } + } } diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index 6dc1eae1..cdd211ad 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#08a220c3723a0117923281401a632fd3fb74657e" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=account_inclusion_verifier#66fc5d3df92634d2212af9f29f014f9e009c09be" dependencies = [ "ethers", "futures-util", @@ -1330,6 +1330,46 @@ dependencies = [ "inout", ] +[[package]] +name = "clap" +version = "4.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", +] + +[[package]] +name = "clap_derive" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.74", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + [[package]] name = "cobs" version = "0.2.3" @@ -1479,6 +1519,7 @@ dependencies = [ "ark-poly", "ark-serialize 0.3.0", "base64 0.22.1", + "clap", "dotenv", "env_logger", "ethers", @@ -1488,6 +1529,7 @@ dependencies = [ "log", "mina-curves", "mina-p2p-messages", + "mina-signer", "mina-tree", "num-bigint", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", @@ -1497,6 +1539,7 @@ dependencies = [ "rpassword", "serde", "serde_json", + "sha3", "tokio", ] diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index ff03eef1..406d0398 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -16,7 +16,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "account_inclusion_verifier" } [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/Cargo.lock b/core/Cargo.lock index 1aad2f4d..f0bb1e26 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -27,6 +27,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "aes" version = "0.8.4" @@ -73,7 +79,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#db616f7670e7daa20786cf78d0bde91ffcb49381" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#ce5f8421a2994013599ef992308bd175b3c47d4d" dependencies = [ "ethers", "futures-util", @@ -121,9 +127,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b515e82c8468ddb6ff8db21c78a5997442f113fd8471fd5b2261b2602dd0c67" +checksum = "e4a777d352cd752b81c695828b1bb6e04b3e87ca4d94a6fe343244eb54effb2d" dependencies = [ "num_enum", "strum 0.26.3", @@ -329,7 +335,7 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde", "serde_json", "tokio", @@ -375,7 +381,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -393,7 +399,7 @@ dependencies = [ "alloy-transport-ws", "futures", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde", "serde_json", "tokio", @@ -506,7 +512,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -519,11 +525,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.3.0", + "indexmap 2.4.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", "syn-solidity", "tiny-keccak", ] @@ -541,7 +547,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.76", "syn-solidity", ] @@ -595,7 +601,7 @@ checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde_json", "tower", "tracing", @@ -877,9 +883,9 @@ checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "ascii" @@ -926,7 +932,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -937,7 +943,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -968,7 +974,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -987,7 +993,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.7.4", "object", "rustc-demangle", ] @@ -1135,9 +1141,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" dependencies = [ "arrayref", "arrayvec", @@ -1259,9 +1265,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] @@ -1291,12 +1297,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.8" +version = "1.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549" +checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -1330,6 +1337,46 @@ dependencies = [ "inout", ] +[[package]] +name = "clap" +version = "4.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", +] + +[[package]] +name = "clap_derive" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.76", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + [[package]] name = "cobs" version = "0.2.3" @@ -1464,6 +1511,7 @@ dependencies = [ "ark-poly", "ark-serialize 0.3.0", "base64 0.22.1", + "clap", "dotenv", "env_logger", "ethers", @@ -1483,6 +1531,7 @@ dependencies = [ "rpassword", "serde", "serde_json", + "sha3", "tokio", ] @@ -1498,9 +1547,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -1513,9 +1562,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -1531,9 +1580,9 @@ dependencies = [ [[package]] name = "critical-section" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" +checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" [[package]] name = "crossbeam-deque" @@ -1642,7 +1691,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -1664,7 +1713,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -1727,7 +1776,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -1862,6 +1911,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "ena" version = "0.14.3" @@ -1907,7 +1962,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -2081,7 +2136,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.72", + "syn 2.0.76", "toml 0.8.19", "walkdir", ] @@ -2098,7 +2153,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -2123,7 +2178,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.72", + "syn 2.0.76", "tempfile", "thiserror", "tiny-keccak", @@ -2276,9 +2331,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fastrlp" @@ -2321,12 +2376,12 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.31" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -2441,7 +2496,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -2639,7 +2694,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.3.0", + "indexmap 2.4.0", "slab", "tokio", "tokio-util", @@ -3030,9 +3085,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3128,9 +3183,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -3292,9 +3347,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libm" @@ -3314,22 +3369,22 @@ dependencies = [ [[package]] name = "linkme" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" +checksum = "3c943daedff228392b791b33bba32e75737756e80a613e32e246c6ce9cbab20a" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" +checksum = "cb26336e6dc7cc76e7927d2c9e7e3bb376d7af65a6f56a0b16c47d18a9b1abc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -3535,11 +3590,20 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + [[package]] name = "mio" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi", "libc", @@ -3677,7 +3741,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -3803,7 +3867,7 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -3829,7 +3893,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -4018,7 +4082,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.3.0", + "indexmap 2.4.0", ] [[package]] @@ -4061,7 +4125,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -4099,7 +4163,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -4156,12 +4220,13 @@ dependencies = [ [[package]] name = "postcard" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" dependencies = [ "cobs", - "embedded-io", + "embedded-io 0.4.0", + "embedded-io 0.6.1", "heapless", "serde", ] @@ -4189,12 +4254,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -4291,9 +4356,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -4407,9 +4472,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", @@ -4498,14 +4563,14 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots 0.25.4", - "winreg 0.50.0", + "winreg", ] [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "base64 0.22.1", "bytes", @@ -4537,7 +4602,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.52.0", + "windows-registry", ] [[package]] @@ -4986,29 +5051,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.205" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.205" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" dependencies = [ "itoa", "memchr", @@ -5057,7 +5122,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.3.0", + "indexmap 2.4.0", "serde", "serde_derive", "serde_json", @@ -5086,7 +5151,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -5144,6 +5209,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signature" version = "2.2.0" @@ -5312,7 +5383,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -5354,9 +5425,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" dependencies = [ "proc-macro2", "quote", @@ -5372,7 +5443,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -5386,6 +5457,9 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -5467,7 +5541,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -5536,9 +5610,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.39.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" dependencies = [ "backtrace", "bytes", @@ -5558,7 +5632,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -5686,7 +5760,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "toml_datetime", "winnow 0.5.40", ] @@ -5697,7 +5771,7 @@ version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "serde", "serde_spanned", "toml_datetime", @@ -5722,15 +5796,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -5752,7 +5826,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -5890,9 +5964,9 @@ dependencies = [ [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" [[package]] name = "unreachable" @@ -6023,34 +6097,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -6060,9 +6135,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6070,22 +6145,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-timer" @@ -6116,9 +6191,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", @@ -6185,6 +6260,36 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -6361,16 +6466,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -6423,7 +6518,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] @@ -6443,7 +6538,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.76", ] [[package]] diff --git a/core/Cargo.toml b/core/Cargo.toml index 2d016bc4..d127f56b 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -38,6 +38,8 @@ graphql_client = { version = "0.14.0", features = [ "reqwest-blocking", ] } alloy = { version = "0.2.1", features = ["full", "signer-keystore"] } +clap = { version = "4.5.16", features = ["derive"] } +sha3 = "0.10.8" [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index bd47b7b2..e5703bf9 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateTipState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161044738038061044783398101604081905261002f91610058565b600180546001600160a01b0319166001600160a01b039390931692909217909155600055610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b6103a6806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e610049366004610205565b610065565b005b60005460405190815260200160405180910390f35b604081015160005481146100a35760005460405163177b002560e31b815261009a918391600401918252602082015260400190565b60405180910390fd5b815160208301206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100e7908d9086908e908e908e908e908e906004016102b4565b602060405180830381865afa158015610104573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101289190610347565b9050801561013d576020840151600055610156565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261018957600080fd5b813567ffffffffffffffff808211156101a4576101a4610162565b604051601f8301601f19908116603f011681019082821181831017156101cc576101cc610162565b816040528381528660208588010111156101e557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561022057600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461024b57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561026f57600080fd5b61027b8b838c01610178565b945060a08a0135935060c08a013591508082111561029857600080fd5b506102a58a828b01610178565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561031057868101830151858201610100015282016102f3565b8181111561032357600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561035957600080fd5b8151801515811461036957600080fd5b939250505056fea264697066735822122073dc6f9580f69149a190b7aadeec83b18f341c608aab952e03fd0a4bf748252664736f6c634300080c0033","sourceMap":"297:1834:63:-:0;;;528:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;602:7;:57;;-1:-1:-1;;;;;;602:57:63;-1:-1:-1;;;;;602:57:63;;;;;;;;;;;-1:-1:-1;669:28:63;297:1834;;14:351:65;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:65;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:65:o;:::-;297:1834:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063afa264c11461003b578063b818474514610050575b600080fd5b61004e610049366004610205565b610065565b005b60005460405190815260200160405180910390f35b604081015160005481146100a35760005460405163177b002560e31b815261009a918391600401918252602082015260400190565b60405180910390fd5b815160208301206001546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906100e7908d9086908e908e908e908e908e906004016102b4565b602060405180830381865afa158015610104573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101289190610347565b9050801561013d576020840151600055610156565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261018957600080fd5b813567ffffffffffffffff808211156101a4576101a4610162565b604051601f8301601f19908116603f011681019082821181831017156101cc576101cc610162565b816040528381528660208588010111156101e557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561022057600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461024b57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561026f57600080fd5b61027b8b838c01610178565b945060a08a0135935060c08a013591508082111561029857600080fd5b506102a58a828b01610178565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561031057868101830151858201610100015282016102f3565b8181111561032357600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561035957600080fd5b8151801515811461036957600080fd5b939250505056fea264697066735822122073dc6f9580f69149a190b7aadeec83b18f341c608aab952e03fd0a4bf748252664736f6c634300080c0033","sourceMap":"297:1834:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;897:1232;;;;;;:::i;:::-;;:::i;:::-;;796:95;846:7;872:12;796:95;;2021:25:65;;;2009:2;1994:18;796:95:63;;;;;;;897:1232;1310:4;1296:19;;1290:26;1205:28;1364:12;1340:36;;1336:125;;1437:12;;1399:51;;-1:-1:-1;;;1399:51:63;;;;1415:20;;1399:51;;2231:25:65;;;2287:2;2272:18;;2265:34;2219:2;2204:18;;2057:248;1399:51:63;;;;;;;;1336:125;1500:19;;;;;;1556:7;;:269;;-1:-1:-1;;;1556:269:63;;1471:26;;-1:-1:-1;;;;;1556:7:63;;:28;;:269;;1598:15;;1500:19;;1659:30;;1703:18;;1735:15;;1764:11;;1789:26;;1556:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1530:295;;1840:18;1836:287;;;2034:4;2024:8;2020:19;2014:26;1995:17;1988:53;1836:287;;;2092:20;;-1:-1:-1;;;2092:20:63;;;;;;;;;;;1836:287;1195:934;;;897:1232;;;;;;;:::o;14:127:65:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:65;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:1001::-;1000:6;1008;1016;1024;1032;1040;1048;1101:3;1089:9;1080:7;1076:23;1072:33;1069:53;;;1118:1;1115;1108:12;1069:53;1141:23;;;-1:-1:-1;1211:2:65;1196:18;;1183:32;;-1:-1:-1;1265:2:65;1250:18;;1237:32;-1:-1:-1;;1298:43:65;;1288:54;;1278:82;;1356:1;1353;1346:12;1278:82;1379:5;-1:-1:-1;1431:2:65;1416:18;;1403:32;;-1:-1:-1;1486:3:65;1471:19;;1458:33;1510:18;1540:14;;;1537:34;;;1567:1;1564;1557:12;1537:34;1590:49;1631:7;1622:6;1611:9;1607:22;1590:49;:::i;:::-;1580:59;;1686:3;1675:9;1671:19;1658:33;1648:43;;1744:3;1733:9;1729:19;1716:33;1700:49;;1774:2;1764:8;1761:16;1758:36;;;1790:1;1787;1780:12;1758:36;;1813:51;1856:7;1845:8;1834:9;1830:24;1813:51;:::i;:::-;1803:61;;;869:1001;;;;;;;;;;:::o;2310:1067::-;2625:6;2614:9;2607:25;2588:4;2651:2;2689:6;2684:2;2673:9;2669:18;2662:34;2732:6;2727:2;2716:9;2712:18;2705:34;2791:26;2787:31;2779:6;2775:44;2770:2;2759:9;2755:18;2748:72;2857:6;2851:3;2840:9;2836:19;2829:35;2901:3;2895;2884:9;2880:19;2873:32;2934:6;2928:13;2978:6;2972:3;2961:9;2957:19;2950:35;3003:1;3013:141;3027:6;3024:1;3021:13;3013:141;;;3123:14;;;3119:23;;3113:30;3088:17;;;3107:3;3084:27;3077:67;3042:10;;3013:141;;;3172:6;3169:1;3166:13;3163:92;;;3243:1;3237:3;3228:6;3217:9;3213:22;3209:32;3202:43;3163:92;-1:-1:-1;3358:3:65;3343:19;;3336:35;;;;-1:-1:-1;;3316:2:65;3295:15;;;;-1:-1:-1;;3291:29:65;3276:45;3323:3;3272:55;;2310:1067;-1:-1:-1;;;;;;2310:1067:65:o;3382:277::-;3449:6;3502:2;3490:9;3481:7;3477:23;3473:32;3470:52;;;3518:1;3515;3508:12;3470:52;3550:9;3544:16;3603:5;3596:13;3589:21;3582:5;3579:32;3569:60;;3625:1;3622;3615:12;3569:60;3648:5;3382:277;-1:-1:-1;;;3382:277:65:o","linkReferences":{}},"methodIdentifiers":{"getTipStateHash()":"b8184745","updateTipState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"afa264c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateTipState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash, or the root state hash if none.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x7e85d70303a8c9c7edfece6ec1f696dd93f75bb148edf9331fdd0fc613872a77\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://289b4a1846e50d07e5273b75407220b5f9414c885db6d35510ef4ec1bc1022ea\",\"dweb:/ipfs/QmbX4PNno1Q7gKGFQTksjydmAqUMu9KdvTCL2k5Mz7U4W2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateTipState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getTipStateHash()":{"notice":"Returns the last verified state hash, or the root state hash if none."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0x7e85d70303a8c9c7edfece6ec1f696dd93f75bb148edf9331fdd0fc613872a77","urls":["bzz-raw://289b4a1846e50d07e5273b75407220b5f9414c885db6d35510ef4ec1bc1022ea","dweb:/ipfs/QmbX4PNno1Q7gKGFQTksjydmAqUMu9KdvTCL2k5Mz7U4W2"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getLedgerAccountPair","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Account.LedgerAccountPair","components":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"},{"name":"accountHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isAccountUpdated","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTipState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AccountIsNotValid","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161066338038061066383398101604081905261002f91610058565b600380546001600160a01b0319166001600160a01b039390931692909217909155600055610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b6105c2806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633886c09b14610067578063461cede21461007e57806378dd3e16146100b3578063afa264c1146100c8578063b8184745146100db578063be9c0643146100e3575b600080fd5b6001545b6040519081526020015b60405180910390f35b6100a361008c366004610365565b600154600091825260026020526040909120541490565b6040519015158152602001610075565b6100c66100c1366004610421565b61014a565b005b6100c66100d6366004610421565b610269565b60005461006b565b61012f6100f1366004610365565b604080518082019091526000808252602082015250600090815260026020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610075565b60008060006020840151925060408401519150606084015190506000848051906020012090506000600360009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d848e8e8e8e8e6040518863ffffffff1660e01b81526004016101bf97969594939291906104d0565b602060405180830381865afa1580156101dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102009190610563565b9050801561023a5760408051808201825286815260208082018781526000878152600290925292902090518155905160019091015561025b565b60405163f63ab27560e01b8152600481018490526024015b60405180910390fd5b505050505050505050505050565b6060810151600054811461029e5760005460405163177b002560e31b8152610252918391600401918252602082015260400190565b815160208301206003546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906102e2908d9086908e908e908e908e908e906004016104d0565b602060405180830381865afa1580156102ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103239190610563565b905080156103405760208401516001556040840151600055610359565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b60006020828403121561037757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103a557600080fd5b813567ffffffffffffffff808211156103c0576103c061037e565b604051601f8301601f19908116603f011681019082821181831017156103e8576103e861037e565b8160405283815286602085880101111561040157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561043c57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461046757600080fd5b945060608801359350608088013567ffffffffffffffff8082111561048b57600080fd5b6104978b838c01610394565b945060a08a0135935060c08a01359150808211156104b457600080fd5b506104c18a828b01610394565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561052c578681018301518582016101000152820161050f565b8181111561053f57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561057557600080fd5b8151801515811461058557600080fd5b939250505056fea26469706673582212202ad337656e22f44fcad2a51c3d5b7124dc220708d737aae33062b015882ae44264736f6c634300080c0033","sourceMap":"369:3924:64:-:0;;;850:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;924:7;:57;;-1:-1:-1;;;;;;924:57:64;-1:-1:-1;;;;;924:57:64;;;;;;;;;;;-1:-1:-1;991:28:64;369:3924;;14:351:66;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:66;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:66:o;:::-;369:3924:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c80633886c09b14610067578063461cede21461007e57806378dd3e16146100b3578063afa264c1146100c8578063b8184745146100db578063be9c0643146100e3575b600080fd5b6001545b6040519081526020015b60405180910390f35b6100a361008c366004610365565b600154600091825260026020526040909120541490565b6040519015158152602001610075565b6100c66100c1366004610421565b61014a565b005b6100c66100d6366004610421565b610269565b60005461006b565b61012f6100f1366004610365565b604080518082019091526000808252602082015250600090815260026020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610075565b60008060006020840151925060408401519150606084015190506000848051906020012090506000600360009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d848e8e8e8e8e6040518863ffffffff1660e01b81526004016101bf97969594939291906104d0565b602060405180830381865afa1580156101dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102009190610563565b9050801561023a5760408051808201825286815260208082018781526000878152600290925292902090518155905160019091015561025b565b60405163f63ab27560e01b8152600481018490526024015b60405180910390fd5b505050505050505050505050565b6060810151600054811461029e5760005460405163177b002560e31b8152610252918391600401918252602082015260400190565b815160208301206003546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906102e2908d9086908e908e908e908e908e906004016104d0565b602060405180830381865afa1580156102ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103239190610563565b905080156103405760208401516001556040840151600055610359565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b60006020828403121561037757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103a557600080fd5b813567ffffffffffffffff808211156103c0576103c061037e565b604051601f8301601f19908116603f011681019082821181831017156103e8576103e861037e565b8160405283815286602085880101111561040157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561043c57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461046757600080fd5b945060608801359350608088013567ffffffffffffffff8082111561048b57600080fd5b6104978b838c01610394565b945060a08a0135935060c08a01359150808211156104b457600080fd5b506104c18a828b01610394565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561052c578681018301518582016101000152820161050f565b8181111561053f57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561057557600080fd5b8151801515811461058557600080fd5b939250505056fea26469706673582212202ad337656e22f44fcad2a51c3d5b7124dc220708d737aae33062b015882ae44264736f6c634300080c0033","sourceMap":"369:3924:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1242:97;1319:13;;1242:97;;;160:25:66;;;148:2;133:18;1242:97:64;;;;;;;;1522:167;;;;;;:::i;:::-;1669:13;;1608:4;1631:23;;;:8;:23;;;;;;:34;:51;;1522:167;;;;546:14:66;;539:22;521:41;;509:2;494:18;1522:167:64;381:187:66;3093:1198:64;;;;;;:::i;:::-;;:::i;:::-;;1695:1392;;;;;;:::i;:::-;;:::i;1086:95::-;1136:7;1162:12;1086:95;;1345:171;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;1486:23:64;;;;:8;:23;;;;;;;;;1479:30;;;;;;;;;;;;;;;;;;;;1345:171;;;;;2670:13:66;;2652:32;;2740:4;2728:17;;;2722:24;2700:20;;;2693:54;;;;2625:18;1345:171:64;2434:319:66;3093:1198:64;3400:18;3428:19;3457:21;3545:4;3535:8;3531:19;3525:26;3511:40;;3599:4;3589:8;3585:19;3579:26;3564:41;;3655:4;3645:8;3641:19;3635:26;3618:43;;3681:26;3720:8;3710:19;;;;;;3681:48;;3740:22;3765:7;;;;;;;;;-1:-1:-1;;;;;3765:7:64;-1:-1:-1;;;;;3765:28:64;;3807:15;3836:18;3868:30;3912:18;3944:15;3973:11;3998:26;3765:269;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3740:294;;4049:17;4045:240;;;4108:96;;;;;;;;;;;;;;;;;;-1:-1:-1;4082:23:64;;;:8;:23;;;;;;:122;;;;;;;;;;;4045:240;;;4242:32;;-1:-1:-1;;;4242:32:64;;;;;160:25:66;;;133:18;;4242:32:64;;;;;;;;4045:240;3390:901;;;;;3093:1198;;;;;;;:::o;1695:1392::-;2108:4;2094:19;;2088:26;2003:28;2162:12;2138:36;;2134:125;;2235:12;;2197:51;;-1:-1:-1;;;2197:51:64;;;;2213:20;;2197:51;;4286:25:66;;;4342:2;4327:18;;4320:34;4274:2;4259:18;;4112:248;2134:125:64;2298:19;;;;;;2354:7;;:269;;-1:-1:-1;;;2354:269:64;;2269:26;;-1:-1:-1;;;;;2354:7:64;;:28;;:269;;2396:15;;2298:19;;2457:30;;2501:18;;2533:15;;2562:11;;2587:26;;2354:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2328:295;;2638:18;2634:447;;;2922:4;2912:8;2908:19;2902:26;2882:18;2875:54;2992:4;2982:8;2978:19;2972:26;2953:17;2946:53;2634:447;;;3050:20;;-1:-1:-1;;;3050:20:64;;;;;;;;;;;2634:447;1993:1094;;;1695:1392;;;;;;;:::o;196:180:66:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:66;;196:180;-1:-1:-1;196:180:66:o;573:127::-;634:10;629:3;625:20;622:1;615:31;665:4;662:1;655:15;689:4;686:1;679:15;705:718;747:5;800:3;793:4;785:6;781:17;777:27;767:55;;818:1;815;808:12;767:55;854:6;841:20;880:18;917:2;913;910:10;907:36;;;923:18;;:::i;:::-;998:2;992:9;966:2;1052:13;;-1:-1:-1;;1048:22:66;;;1072:2;1044:31;1040:40;1028:53;;;1096:18;;;1116:22;;;1093:46;1090:72;;;1142:18;;:::i;:::-;1182:10;1178:2;1171:22;1217:2;1209:6;1202:18;1263:3;1256:4;1251:2;1243:6;1239:15;1235:26;1232:35;1229:55;;;1280:1;1277;1270:12;1229:55;1344:2;1337:4;1329:6;1325:17;1318:4;1310:6;1306:17;1293:54;1391:1;1384:4;1379:2;1371:6;1367:15;1363:26;1356:37;1411:6;1402:15;;;;;;705:718;;;;:::o;1428:1001::-;1559:6;1567;1575;1583;1591;1599;1607;1660:3;1648:9;1639:7;1635:23;1631:33;1628:53;;;1677:1;1674;1667:12;1628:53;1700:23;;;-1:-1:-1;1770:2:66;1755:18;;1742:32;;-1:-1:-1;1824:2:66;1809:18;;1796:32;-1:-1:-1;;1857:43:66;;1847:54;;1837:82;;1915:1;1912;1905:12;1837:82;1938:5;-1:-1:-1;1990:2:66;1975:18;;1962:32;;-1:-1:-1;2045:3:66;2030:19;;2017:33;2069:18;2099:14;;;2096:34;;;2126:1;2123;2116:12;2096:34;2149:49;2190:7;2181:6;2170:9;2166:22;2149:49;:::i;:::-;2139:59;;2245:3;2234:9;2230:19;2217:33;2207:43;;2303:3;2292:9;2288:19;2275:33;2259:49;;2333:2;2323:8;2320:16;2317:36;;;2349:1;2346;2339:12;2317:36;;2372:51;2415:7;2404:8;2393:9;2389:24;2372:51;:::i;:::-;2362:61;;;1428:1001;;;;;;;;;;:::o;2758:1067::-;3073:6;3062:9;3055:25;3036:4;3099:2;3137:6;3132:2;3121:9;3117:18;3110:34;3180:6;3175:2;3164:9;3160:18;3153:34;3239:26;3235:31;3227:6;3223:44;3218:2;3207:9;3203:18;3196:72;3305:6;3299:3;3288:9;3284:19;3277:35;3349:3;3343;3332:9;3328:19;3321:32;3382:6;3376:13;3426:6;3420:3;3409:9;3405:19;3398:35;3451:1;3461:141;3475:6;3472:1;3469:13;3461:141;;;3571:14;;;3567:23;;3561:30;3536:17;;;3555:3;3532:27;3525:67;3490:10;;3461:141;;;3620:6;3617:1;3614:13;3611:92;;;3691:1;3685:3;3676:6;3665:9;3661:22;3657:32;3650:43;3611:92;-1:-1:-1;3806:3:66;3791:19;;3784:35;;;;-1:-1:-1;;3764:2:66;3743:15;;;;-1:-1:-1;;3739:29:66;3724:45;3771:3;3720:55;;2758:1067;-1:-1:-1;;;;;;2758:1067:66:o;3830:277::-;3897:6;3950:2;3938:9;3929:7;3925:23;3921:32;3918:52;;;3966:1;3963;3956:12;3918:52;3998:9;3992:16;4051:5;4044:13;4037:21;4030:5;4027:32;4017:60;;4073:1;4070;4063:12;4017:60;4096:5;3830:277;-1:-1:-1;;;3830:277:66:o","linkReferences":{}},"methodIdentifiers":{"getLedgerAccountPair(bytes32)":"be9c0643","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isAccountUpdated(bytes32)":"461cede2","updateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"78dd3e16","updateTipState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"afa264c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"getLedgerAccountPair\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"accountHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Account.LedgerAccountPair\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"isAccountUpdated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateTipState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/Account.sol\":{\"keccak256\":\"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4\",\"dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xac3cdfc716307c3b7c3d531a3d8b9a15ceea1135675f1a759c060a667b7ab6d4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://737b935f89496427d0ff35075b6e1d2bcb04c4eb13c2ffc39cfab3413ca4bf3a\",\"dweb:/ipfs/QmXhPQTWzJBQD2JX3i6iLqamM6MrgGwP1BHNfx5AVpqeYN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"type":"error","name":"AccountIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getLedgerAccountPair","outputs":[{"internalType":"struct Account.LedgerAccountPair","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"},{"internalType":"bytes32","name":"accountHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isAccountUpdated","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateAccount"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateTipState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/Account.sol":{"keccak256":"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91","urls":["bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4","dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0xac3cdfc716307c3b7c3d531a3d8b9a15ceea1135675f1a759c060a667b7ab6d4","urls":["bzz-raw://737b935f89496427d0ff35075b6e1d2bcb04c4eb13c2ffc39cfab3413ca4bf3a","dweb:/ipfs/QmXhPQTWzJBQD2JX3i6iLqamM6MrgGwP1BHNfx5AVpqeYN"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index 8514eea4..d5369053 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -1,7 +1,7 @@ use std::path::PathBuf; use aligned_sdk::{ - core::types::{AlignedVerificationData, Chain, VerificationData}, + core::types::{AlignedVerificationData, Chain, ProvingSystemId, VerificationData}, sdk::{get_next_nonce, submit_and_wait}, }; use ethers::{ @@ -11,7 +11,7 @@ use ethers::{ }; use log::info; -/// Submits a Mina proof to Aligned's batcher and waits until the batch is verified. +/// Submits a Mina (state or account) proof to Aligned's batcher and waits until the batch is verified. pub async fn submit( mina_proof: &VerificationData, chain: &Chain, @@ -23,6 +23,13 @@ pub async fn submit( let wallet_address = wallet.address(); let nonce = get_nonce(eth_rpc_url, wallet_address, batcher_eth_addr).await?; + let proof_type = match mina_proof.proving_system { + ProvingSystemId::Mina => "Mina Proof of State", + ProvingSystemId::MinaAccount => "Mina Proof of Account", + _ => return Err("Tried to submit a non Mina proof".to_string()), + }; + + info!("Submitting {proof_type} into Aligned and waiting for the batch to be verified..."); submit_with_nonce(batcher_addr, eth_rpc_url, chain, mina_proof, wallet, nonce) .await .or_else(|err| { @@ -42,7 +49,6 @@ async fn submit_with_nonce( wallet: Wallet, nonce: U256, ) -> Result { - info!("Submitting Mina proof into Aligned and waiting for the batch to be verified..."); let aligned_verification_data = submit_and_wait( batcher_addr, eth_rpc_url, diff --git a/core/src/main.rs b/core/src/main.rs index ec768600..c7f94e76 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -1,17 +1,36 @@ +use clap::{Parser, Subcommand}; use core::{ aligned_polling_service, mina_polling_service, smart_contract_utility, utils::{env::EnvironmentVariables, wallet::get_wallet}, }; -use kimchi::turshi::helper::CairoFieldHelpers; -use log::{debug, error, info}; +use log::{error, info}; +use mina_p2p_messages::v2::StateHash; use std::{process, time::SystemTime}; +#[derive(Parser)] +#[command(version, about)] +struct Cli { + #[command(subcommand)] + command: Command, + #[arg(short, long)] + save_proof: bool, +} + +#[derive(Subcommand)] +enum Command { + SubmitState, + SubmitAccount { + /// Write the proof into .proof and .pub files. + public_key: String, + }, +} + #[tokio::main] async fn main() { + let cli = Cli::parse(); let now = SystemTime::now(); env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); - debug!("Reading env. variables"); let EnvironmentVariables { rpc_url, chain, @@ -21,85 +40,156 @@ async fn main() { proof_generator_addr, keystore_path, private_key, - save_proof, } = EnvironmentVariables::new().unwrap_or_else(|err| { error!("{}", err); process::exit(1); }); - debug!("Getting user wallet"); let wallet = get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) .unwrap_or_else(|err| { error!("{}", err); process::exit(1); }); - debug!("Executing Mina polling service"); - let mina_proof = mina_polling_service::get_mina_proof_of_state( - &rpc_url, - &proof_generator_addr, - &chain, - ð_rpc_url, - ) - .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); + match cli.command { + Command::SubmitState => { + let proof = mina_polling_service::get_mina_proof_of_state( + &rpc_url, + &proof_generator_addr, + &chain, + ð_rpc_url, + ) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + if cli.save_proof { + std::fs::write( + "./protocol_state.pub", + proof.pub_input.as_ref().unwrap_or_else(|| { + error!("Tried to save public inputs to file but they're missing"); + process::exit(1); + }), + ) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + std::fs::write("./protocol_state.proof", &proof.proof).unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + } - if save_proof { - std::fs::write( - "./protocol_state.pub", - mina_proof.pub_input.as_ref().unwrap_or_else(|| { - error!("Tried to save public inputs to file but they're missing"); + let verification_data = aligned_polling_service::submit( + &proof, + &chain, + &batcher_addr, + &batcher_eth_addr, + ð_rpc_url, + wallet.clone(), + ) + .await + .unwrap_or_else(|err| { + error!("{}", err); process::exit(1); - }), - ) - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - std::fs::write("./protocol_state.proof", &mina_proof.proof).unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - } + }); - debug!("Executing Aligned polling service"); - let verification_data = aligned_polling_service::submit( - &mina_proof, - &chain, - &batcher_addr, - &batcher_eth_addr, - ð_rpc_url, - wallet.clone(), - ) - .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); + let pub_input = proof.pub_input.unwrap_or_else(|| { + error!("Missing public inputs from Mina state proof"); + process::exit(1); + }); - debug!("Updating the bridge's smart contract"); - let pub_input = mina_proof.pub_input.unwrap_or_else(|| { - error!("Missing public inputs from Mina proof"); - process::exit(1); - }); + let verified_state_hash = smart_contract_utility::update_tip( + verification_data, + pub_input, + &chain, + ð_rpc_url, + wallet, + ) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); - let verified_state_hash = - smart_contract_utility::update(verification_data, pub_input, &chain, ð_rpc_url, wallet) + info!( + "Success! verified Mina state hash {} was stored in the bridge's smart contract", + StateHash::from_fp(verified_state_hash) + ); + } + Command::SubmitAccount { public_key } => { + let proof = mina_polling_service::get_mina_proof_of_account( + &public_key, + &rpc_url, + &proof_generator_addr, + &chain, + ð_rpc_url, + ) .await .unwrap_or_else(|err| { error!("{}", err); process::exit(1); }); - info!( - "Success! verified Mina state hash 0x{} was stored in the bridge's smart contract", - verified_state_hash.to_hex_be() - ); + if cli.save_proof { + std::fs::write( + format!("./account_{public_key}.pub"), + proof.pub_input.as_ref().unwrap_or_else(|| { + error!("Tried to save public inputs to file but they're missing"); + process::exit(1); + }), + ) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + std::fs::write(format!("./account_{public_key}.proof"), &proof.proof) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + } + + let verification_data = aligned_polling_service::submit( + &proof, + &chain, + &batcher_addr, + &batcher_eth_addr, + ð_rpc_url, + wallet.clone(), + ) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let pub_input = proof.pub_input.unwrap_or_else(|| { + error!("Missing public inputs from Mina account proof"); + process::exit(1); + }); + + smart_contract_utility::update_account( + verification_data, + pub_input, + &chain, + ð_rpc_url, + wallet, + ) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + info!("Success! verified Mina account state was stored in the bridge's smart contract"); + } + } if let Ok(elapsed) = now.elapsed() { - info!("Time spent: {} ms", elapsed.as_millis()); + info!("Time spent: {} s", elapsed.as_secs()); } } diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index 3a5cd79b..aae95741 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -1,6 +1,7 @@ use std::str::FromStr as _; use aligned_sdk::core::types::{Chain, ProvingSystemId, VerificationData}; +use base64::prelude::*; use ethers::types::Address; use graphql_client::{ reqwest::{post_graphql, post_graphql_blocking}, @@ -9,10 +10,14 @@ use graphql_client::{ use kimchi::{o1_utils::FieldHelpers, turshi::helper::CairoFieldHelpers}; use log::{debug, info}; use mina_curves::pasta::Fp; -use mina_p2p_messages::v2::{LedgerHash as MerkleRoot, StateHash}; +use mina_p2p_messages::{ + binprot::BinProtRead, + v2::{LedgerHash as MerkleRoot, MinaStateProtocolStateValueStableV2, StateHash}, +}; use mina_tree::{FpExt, MerklePath}; +use sha3::Digest; -use crate::{smart_contract_utility::get_tip_state_hash, utils::constants::MINA_STATE_HASH_SIZE}; +use crate::{smart_contract_utility::get_tip_state_hash, utils::constants::MINA_HASH_SIZE}; type StateHashAsDecimal = String; type PrecomputedBlockProof = String; @@ -81,11 +86,14 @@ pub async fn get_mina_proof_of_state( let tip_hash = serialize_state_hash(&tip_hash)?; let tip_state = serialize_state(tip_state); + let candidate_merkle_root = serialize_ledger_hash(&candidate_state)?; + let candidate_hash = serialize_state_hash(&candidate_hash)?; let candidate_state = serialize_state(candidate_state); let candidate_proof = serialize_state_proof(&candidate_proof); - let mut pub_input = candidate_hash; + let mut pub_input = candidate_merkle_root; + pub_input.extend(candidate_hash); pub_input.extend(tip_hash); pub_input.extend((candidate_state.len() as u32).to_be_bytes()); pub_input.extend(candidate_state); @@ -106,6 +114,54 @@ pub async fn get_mina_proof_of_state( }) } +pub async fn get_mina_proof_of_account( + public_key: &str, + rpc_url: &str, + proof_generator_addr: &str, + chain: &Chain, + eth_rpc_url: &str, +) -> Result { + let state_hash = get_tip_state_hash(chain, eth_rpc_url).await?; + let (ledger_hash, account_hash, merkle_proof, account_id_hash) = query_merkle( + rpc_url, + &StateHash::from_fp(state_hash).to_string(), + public_key, + ) + .await?; + + let proof = merkle_proof + .into_iter() + .flat_map(|node| { + match node { + MerklePath::Left(hash) => [vec![0], hash.to_bytes()], + MerklePath::Right(hash) => [vec![1], hash.to_bytes()], + } + .concat() + }) + .collect(); + + let pub_input = Some( + [ + ledger_hash.to_bytes(), + account_hash.to_bytes(), + account_id_hash.to_vec(), + ] + .concat(), + ); + + let proof_generator_addr = + Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; + + Ok(VerificationData { + proving_system: ProvingSystemId::MinaAccount, + proof, + pub_input, + verification_key: None, + vm_program_code: None, + proof_generator_addr, + }) +} + pub fn query_state( rpc_url: &str, variables: state_query::Variables, @@ -164,7 +220,7 @@ pub async fn query_merkle( rpc_url: &str, state_hash: &str, public_key: &str, -) -> Result<(Fp, Fp, Vec), String> { +) -> Result<(Fp, Fp, Vec, [u8; 32]), String> { debug!("Querying merkle root, leaf and path of account {public_key} of state {state_hash}"); let client = reqwest::Client::new(); @@ -183,7 +239,7 @@ pub async fn query_merkle( .account .ok_or("Missing merkle query account".to_string())?; - let merkle_root = MerkleRoot::from_str( + let ledger_hash = MerkleRoot::from_str( &response .block .protocol_state @@ -194,10 +250,10 @@ pub async fn query_merkle( .to_fp() .map_err(|_| "Error decoding leaf hash into fp".to_string())?; - let merkle_leaf = Fp::from_str(&account.leaf_hash.ok_or("Missing merkle query leaf hash")?) + let account_hash = Fp::from_str(&account.leaf_hash.ok_or("Missing merkle query leaf hash")?) .map_err(|_| "Error deserializing leaf hash".to_string())?; - let merkle_path = account + let merkle_proof = account .merkle_path .ok_or("Missing merkle query path")? .into_iter() @@ -211,16 +267,29 @@ pub async fn query_merkle( .collect::, ()>>() .map_err(|_| "Error deserializing merkle path nodes".to_string())?; - Ok((merkle_root, merkle_leaf, merkle_path)) + // TODO(xqft): This definition for account_hash is a placeholder until we have the GraphQL + // query for the complete data of an account. The real definition would be: + // + // let account_id_bytes = + // [account.compressed_public_key.x, account.compressed_public_key.is_odd, account.token_id] + // .map(to_bytes) + // .concat(); + // + // let account_id_hash = Keccak256(account_id) + let mut hasher = sha3::Keccak256::new(); + hasher.update(account_hash.to_bytes()); + let account_id_hash = hasher.finalize_reset().into(); + + Ok((ledger_hash, account_hash, merkle_proof, account_id_hash)) } fn serialize_state_hash(hash: &StateHashAsDecimal) -> Result, String> { let bytes = Fp::from_str(hash) .map_err(|_| "Failed to decode hash as a field element".to_string())? .to_bytes(); - if bytes.len() != MINA_STATE_HASH_SIZE { + if bytes.len() != MINA_HASH_SIZE { return Err(format!( - "Failed to encode hash as bytes: length is not exactly {MINA_STATE_HASH_SIZE}." + "Failed to encode hash as bytes: length is not exactly {MINA_HASH_SIZE}." )); } Ok(bytes) @@ -239,3 +308,24 @@ fn encode_state_hash(hash: &StateHashAsDecimal) -> Result { .map_err(|_| "Failed to decode hash as a field element".to_string()) .map(|fp| StateHash::from_fp(fp).to_string()) } + +fn serialize_ledger_hash(state: &ProtocolState) -> Result, String> { + BASE64_STANDARD + .decode(state) + .map_err(|err| err.to_string()) + .and_then(|binprot| { + MinaStateProtocolStateValueStableV2::binprot_read(&mut binprot.as_slice()) + .map_err(|err| err.to_string()) + }) + .and_then(|state| { + state + .body + .blockchain_state + .staged_ledger_hash + .non_snark + .ledger_hash + .to_fp() + .map_err(|err| err.to_string()) + }) + .map(|ledger_hash| ledger_hash.to_bytes()) +} diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index e0522aab..e125f883 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -51,7 +51,7 @@ impl MinaBridgeConstructorArgs { } } -pub async fn update( +pub async fn update_tip( verification_data: AlignedVerificationData, pub_input: Vec, chain: &Chain, @@ -138,6 +138,87 @@ pub async fn update( Fp::from_bytes(&new_state_hash).map_err(|err| err.to_string()) } +pub async fn update_account( + verification_data: AlignedVerificationData, + pub_input: Vec, + chain: &Chain, + eth_rpc_url: &str, + wallet: Wallet, +) -> Result<(), String> { + let bridge_eth_addr = Address::from_str(match chain { + Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, + Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, + _ => { + error!("Unimplemented Ethereum contract on selected chain"); + unimplemented!() + } + }) + .map_err(|err| err.to_string())?; + + debug!("Creating contract instance"); + let mina_bridge_contract = mina_bridge_contract(eth_rpc_url, bridge_eth_addr, chain, wallet)?; + + let AlignedVerificationData { + verification_data_commitment, + batch_merkle_root, + batch_inclusion_proof, + index_in_batch, + } = verification_data; + + let merkle_proof = batch_inclusion_proof + .merkle_path + .clone() + .into_iter() + .flatten() + .collect(); + + let VerificationDataCommitment { + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + .. + } = verification_data_commitment; + + debug!("Updating contract"); + + let update_call = mina_bridge_contract.update_account( + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + batch_merkle_root, + merkle_proof, + index_in_batch.into(), + pub_input.into(), + ); + // update call reverts if batch is not valid or proof isn't included in it. + + info!( + "Estimated gas cost: {}", + update_call + .estimate_gas() + .await + .map_err(|err| err.to_string())? + ); + + let pending_tx = update_call.send().await.map_err(|err| err.to_string())?; + info!( + "Transaction {} was submitted and is now pending", + pending_tx.tx_hash().encode_hex() + ); + + let receipt = pending_tx + .await + .map_err(|err| err.to_string())? + .ok_or("Missing transaction receipt")?; + + info!( + "Transaction mined! final gas cost: {}", + receipt.gas_used.ok_or("Missing gas used")? + ); + + Ok(()) +} + pub async fn get_tip_state_hash(chain: &Chain, eth_rpc_url: &str) -> Result { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index 55b68f36..b6b565bc 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -14,7 +14,7 @@ pub const HOLESKY_CHAIN_ID: u64 = 17000; pub const MINA_TIP_PROTOCOL_STATE: &str = "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"; pub const MINA_TIP_STATE_HASH_FIELD: &str = "26201757517054449641912404249424749469164718222967816857204695395894215860942"; -pub const MINA_STATE_HASH_SIZE: usize = 32; +pub const MINA_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; diff --git a/core/src/utils/env.rs b/core/src/utils/env.rs index d3016213..40ca72e4 100644 --- a/core/src/utils/env.rs +++ b/core/src/utils/env.rs @@ -16,7 +16,6 @@ pub struct EnvironmentVariables { pub proof_generator_addr: String, pub keystore_path: Option, pub private_key: Option, - pub save_proof: bool, } fn load_var_or(key: &str, default: &str, chain: &Chain) -> Result { @@ -74,9 +73,6 @@ impl EnvironmentVariables { ); } - let save_proof = - matches!(std::env::var("SAVE_PROOF"), Ok(value) if value.to_lowercase() == "true"); - Ok(EnvironmentVariables { rpc_url, chain, @@ -86,7 +82,6 @@ impl EnvironmentVariables { proof_generator_addr, keystore_path, private_key, - save_proof, }) } } From 4861170cda1e609389e0f275cad063eb5e271051 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Fri, 30 Aug 2024 12:56:47 -0300 Subject: [PATCH 22/46] Point Aligned back to Mina (#329) --- contract_deployer/Cargo.lock | 13 +------------ contract_deployer/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index cdd211ad..e5e6d294 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=account_inclusion_verifier#66fc5d3df92634d2212af9f29f014f9e009c09be" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#ce5f8421a2994013599ef992308bd175b3c47d4d" dependencies = [ "ethers", "futures-util", @@ -5201,15 +5201,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - [[package]] name = "signature" version = "2.2.0" @@ -5610,9 +5601,7 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot 0.12.3", "pin-project-lite", - "signal-hook-registry", "socket2", "tokio-macros", "windows-sys 0.52.0", diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index 406d0398..ff03eef1 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -16,7 +16,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "account_inclusion_verifier" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } From 28d62a1dc80f42a5f2482145f1efb46bb777eb9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 3 Sep 2024 12:15:07 -0300 Subject: [PATCH 23/46] Relative finalization (#327) * Added merkle query * Rename query_and_serialize * WIP merkle query * Fix test * WIP Account query * Finished account query * Fixed TokenId deserialization * Remove account query * Fix clippy * Removed account_inclusion crate * Take into account mina account proofs * Add CLI commands * Implement submission code for account proof * Add ledger hash to state verifier * Add accountIdHash and account verification feature for smart contract * Add eth call for update account * Fix clippy * Update makefile rules * Update specification * Added doc to smart contract * Fix clippy * Update README.md * Query candidate chain, use bincode * Update Makefile * Fix aligned sdk git dependency * Update cargo.lock * Define new state proof, serialize with bincode * Change proof field types * Refactor proof definition * Add entire states to Mina state proof * Change version of clap to work with aligned * Fix tip state * Change core crate name * Make serialization mod public * Add contract support for relative finalization * Fixed smart contract update function * Check state hashes * Fix hash store * Fix clippy * Remove unnecessary match case * Fix aligned-sdk dependency --- Makefile | 4 +- contract/src/MinaBridge.sol | 84 +++- contract_deployer/Cargo.lock | 443 ++++++++++++---------- contract_deployer/Cargo.toml | 6 +- contract_deployer/src/main.rs | 44 +-- core/Cargo.lock | 201 +++++----- core/Cargo.toml | 9 +- core/abi/MinaBridge.json | 2 +- core/src/aligned_polling_service.rs | 71 +++- core/src/graphql/best_chain_query.graphql | 6 + core/src/lib.rs | 3 + core/src/main.rs | 58 +-- core/src/mina_polling_service.rs | 292 +++++++------- core/src/proof/mod.rs | 5 + core/src/proof/serialization.rs | 58 +++ core/src/proof/state_proof.rs | 40 ++ core/src/smart_contract_utility.rs | 101 ++++- core/src/utils/constants.rs | 1 + 18 files changed, 868 insertions(+), 560 deletions(-) create mode 100644 core/src/proof/mod.rs create mode 100644 core/src/proof/serialization.rs create mode 100644 core/src/proof/state_proof.rs diff --git a/Makefile b/Makefile index 25e71d43..74aee4a6 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ .PHONY: submit-state submit-account gen_contract_abi deploy_contract -submit-state: +submit_state: @cargo run --manifest-path core/Cargo.toml --release -- submit-state -submit-account: +submit_account: @cargo run --manifest-path core/Cargo.toml --release -- submit-account ${PUBLIC_KEY} gen_contract_abi: diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index 4fd2c4ae..b04980e3 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -10,10 +10,16 @@ error AccountIsNotValid(bytes32 accountIdHash); /// @title Mina to Ethereum Bridge's smart contract. contract MinaBridge { - /// @notice The state hash of the last verified state as a Fp. - bytes32 tipStateHash; - /// @notice The ledger hash of the last verified state as a Fp. - bytes32 tipLedgerHash; + /// @notice The length of the verified state chain (also called the bridge's transition + /// frontier) to store. + uint public constant BRIDGE_TRANSITION_FRONTIER_LEN = 16; + + /// @notice The state hash of the last verified chain of Mina states (also called + /// the bridge's transition frontier). + bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] chainStateHashes; + /// @notice The ledger hash of the last verified chain of Mina states (also called + /// the bridge's transition frontier). + bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] chainLedgerHashes; /// @notice mapping of a keccak256(TokenId) => verified account hash and its ledger hash. mapping(bytes32 => Account.LedgerAccountPair) accounts; @@ -23,17 +29,21 @@ contract MinaBridge { constructor(address _alignedServiceAddr, bytes32 _tipStateHash) { aligned = AlignedLayerServiceManager(_alignedServiceAddr); - tipStateHash = _tipStateHash; + chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] = _tipStateHash; } /// @notice Returns the last verified state hash. function getTipStateHash() external view returns (bytes32) { - return tipStateHash; + return chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]; } - /// @notice Returns the last verified ledger hash. - function getTipLedgerHash() external view returns (bytes32) { - return tipLedgerHash; + /// @notice Returns the latest verified chain state hashes. + function getChainStateHashes() + external + view + returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) + { + return chainStateHashes; } /// @notice Returns the ledger hash and account state hash pair for @@ -49,10 +59,17 @@ contract MinaBridge { function isAccountUpdated( bytes32 accountIdHash ) external view returns (bool) { - return accounts[accountIdHash].ledgerHash == tipLedgerHash; + return + accounts[accountIdHash].ledgerHash == + chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]; + } + + /// @notice Returns the last verified ledger hash. + function getTipLedgerHash() external view returns (bytes32) { + return chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]; } - function updateTipState( + function updateChain( bytes32 proofCommitment, bytes32 provingSystemAuxDataCommitment, bytes20 proofGeneratorAddr, @@ -61,13 +78,19 @@ contract MinaBridge { uint256 verificationDataBatchIndex, bytes memory pubInput ) external { - bytes32 pubInputTipStateHash; + bytes32 pubInputBridgeTipStateHash; assembly { - pubInputTipStateHash := mload(add(pubInput, 0x60)) + pubInputBridgeTipStateHash := mload(add(pubInput, 0x20)) } - if (pubInputTipStateHash != tipStateHash) { - revert TipStateIsWrong(pubInputTipStateHash, tipStateHash); + if ( + pubInputBridgeTipStateHash != + chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] + ) { + revert TipStateIsWrong( + pubInputBridgeTipStateHash, + chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] + ); } bytes32 pubInputCommitment = keccak256(pubInput); @@ -83,11 +106,34 @@ contract MinaBridge { ); if (isNewStateVerified) { - // first 32 bytes of pub input is the candidate (now verified) ledger hash. - // second 32 bytes of pub input is the candidate (now verified) state hash. + // store the verified state and ledger hashes assembly { - sstore(tipLedgerHash.slot, mload(add(pubInput, 0x20))) - sstore(tipStateHash.slot, mload(add(pubInput, 0x40))) + let slot_states := chainStateHashes.slot + let slot_ledgers := chainLedgerHashes.slot + + // first 32 bytes is length of byte array. + // second 32 bytes is the bridge tip state hash + // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are state hashes. + let addr_states := add(pubInput, 64) + // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are ledger hashes. + let addr_ledgers := add( + addr_states, + mul(32, BRIDGE_TRANSITION_FRONTIER_LEN) + ) + + for { + let i := 0 + } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { + i := add(i, 1) + } { + sstore(slot_states, mload(addr_states)) + addr_states := add(addr_states, 32) + slot_states := add(slot_states, 1) + + sstore(slot_ledgers, mload(addr_ledgers)) + addr_ledgers := add(addr_ledgers, 32) + slot_ledgers := add(slot_ledgers, 1) + } } } else { revert NewStateIsNotValid(); diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index e5e6d294..cb9f2274 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -27,6 +27,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "aes" version = "0.8.4" @@ -73,7 +79,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#ce5f8421a2994013599ef992308bd175b3c47d4d" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=account_inclusion_verifier#06bc10c8ad218e0e8df3ec98b69e6c59e188133a" dependencies = [ "ethers", "futures-util", @@ -121,9 +127,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.27" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b515e82c8468ddb6ff8db21c78a5997442f113fd8471fd5b2261b2602dd0c67" +checksum = "bb07629a5d0645d29f68d2fb6f4d0cf15c89ec0965be915f303967180929743f" dependencies = [ "num_enum", "strum 0.26.3", @@ -190,7 +196,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -329,7 +335,7 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde", "serde_json", "tokio", @@ -375,7 +381,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -393,7 +399,7 @@ dependencies = [ "alloy-transport-ws", "futures", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde", "serde_json", "tokio", @@ -506,7 +512,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -519,11 +525,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.3.0", + "indexmap 2.5.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", "syn-solidity", "tiny-keccak", ] @@ -541,7 +547,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.74", + "syn 2.0.77", "syn-solidity", ] @@ -552,7 +558,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" dependencies = [ "serde", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -595,7 +601,7 @@ checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde_json", "tower", "tracing", @@ -757,7 +763,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -877,9 +883,9 @@ checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "ascii" @@ -926,18 +932,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -948,7 +954,7 @@ checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ "futures", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -968,7 +974,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -987,7 +993,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.7.4", "object", "rustc-demangle", ] @@ -1044,6 +1050,15 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + [[package]] name = "binprot" version = "0.1.8" @@ -1119,7 +1134,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1130,20 +1145,20 @@ checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] name = "blake3" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1245,23 +1260,24 @@ dependencies = [ [[package]] name = "c-kzg" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ "blst", "cc", "glob", "hex", "libc", + "once_cell", "serde", ] [[package]] name = "camino" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] @@ -1291,12 +1307,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.10" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292" +checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -1361,7 +1378,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -1483,22 +1500,26 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "contract_deployer" version = "0.1.0" dependencies = [ "aligned-sdk", - "core", + "bincode", "env_logger", "ethers", "kimchi", "log", "mina-curves", + "mina-p2p-messages", + "mina_bridge_core", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "serde", + "serde_with 1.14.0", "tokio", ] @@ -1508,41 +1529,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "core" -version = "0.1.0" -dependencies = [ - "aligned-sdk", - "alloy", - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "base64 0.22.1", - "clap", - "dotenv", - "env_logger", - "ethers", - "graphql_client", - "hex", - "kimchi", - "log", - "mina-curves", - "mina-p2p-messages", - "mina-signer", - "mina-tree", - "num-bigint", - "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", - "poly-commitment", - "reqwest 0.11.27", - "rmp-serde", - "rpassword", - "serde", - "serde_json", - "sha3", - "tokio", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -1588,9 +1574,9 @@ dependencies = [ [[package]] name = "critical-section" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" +checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" [[package]] name = "crossbeam-deque" @@ -1699,7 +1685,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -1721,7 +1707,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -1783,8 +1769,8 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", - "syn 2.0.74", + "rustc_version 0.4.1", + "syn 2.0.77", ] [[package]] @@ -1919,6 +1905,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "ena" version = "0.14.3" @@ -1964,7 +1956,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -2138,7 +2130,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.74", + "syn 2.0.77", "toml 0.8.19", "walkdir", ] @@ -2155,7 +2147,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -2180,7 +2172,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.74", + "syn 2.0.77", "tempfile", "thiserror", "tiny-keccak", @@ -2333,9 +2325,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fastrlp" @@ -2378,12 +2370,12 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.31" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -2498,7 +2490,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -2696,7 +2688,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.3.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -2754,7 +2746,7 @@ checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" dependencies = [ "atomic-polyfill", "hash32", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "serde", "spin 0.9.8", "stable_deref_trait", @@ -3087,9 +3079,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3349,9 +3341,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libm" @@ -3386,7 +3378,7 @@ checksum = "cb26336e6dc7cc76e7927d2c9e7e3bb376d7af65a6f56a0b16c47d18a9b1abc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -3583,6 +3575,44 @@ dependencies = [ "wasm_thread", ] +[[package]] +name = "mina_bridge_core" +version = "0.1.0" +dependencies = [ + "aligned-sdk", + "alloy", + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "base64 0.22.1", + "bincode", + "clap", + "dotenv", + "env_logger", + "ethers", + "futures", + "graphql_client", + "hex", + "kimchi", + "log", + "mina-curves", + "mina-p2p-messages", + "mina-signer", + "mina-tree", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "poly-commitment", + "reqwest 0.11.27", + "rmp-serde", + "rpassword", + "serde", + "serde_json", + "serde_with 1.14.0", + "sha3", + "tokio", +] + [[package]] name = "miniz_oxide" version = "0.7.4" @@ -3592,6 +3622,15 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + [[package]] name = "mio" version = "1.0.2" @@ -3731,10 +3770,10 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -3785,9 +3824,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.3" +version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" dependencies = [ "memchr", ] @@ -3860,7 +3899,7 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -3886,7 +3925,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -3933,7 +3972,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -4075,7 +4114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.3.0", + "indexmap 2.5.0", ] [[package]] @@ -4085,7 +4124,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ "futures", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -4118,7 +4157,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -4156,7 +4195,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -4213,12 +4252,13 @@ dependencies = [ [[package]] name = "postcard" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" dependencies = [ "cobs", - "embedded-io", + "embedded-io 0.4.0", + "embedded-io 0.6.1", "heapless", "serde", ] @@ -4246,12 +4286,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -4280,11 +4320,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -4348,9 +4388,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -4464,9 +4504,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", @@ -4555,14 +4595,14 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots 0.25.4", - "winreg 0.50.0", + "winreg", ] [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "base64 0.22.1", "bytes", @@ -4594,7 +4634,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.52.0", + "windows-registry", ] [[package]] @@ -4770,18 +4810,18 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver 1.0.23", ] [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" dependencies = [ "bitflags 2.6.0", "errno", @@ -4811,7 +4851,7 @@ dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.7", "subtle", "zeroize", ] @@ -4853,9 +4893,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -4922,7 +4962,7 @@ version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -5043,29 +5083,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.207" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.207" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] name = "serde_json" -version = "1.0.124" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" dependencies = [ "itoa", "memchr", @@ -5114,7 +5154,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.3.0", + "indexmap 2.5.0", "serde", "serde_derive", "serde_json", @@ -5143,7 +5183,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -5201,6 +5241,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signature" version = "2.2.0" @@ -5369,7 +5415,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -5411,9 +5457,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.74" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", @@ -5429,7 +5475,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -5443,6 +5489,9 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -5524,7 +5573,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -5593,9 +5642,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", @@ -5615,7 +5664,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -5691,7 +5740,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls 0.26.0", "tungstenite 0.23.0", - "webpki-roots 0.26.3", + "webpki-roots 0.26.5", ] [[package]] @@ -5725,7 +5774,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit", ] [[package]] @@ -5737,28 +5786,17 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.3.0", - "toml_datetime", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -5779,15 +5817,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -5809,7 +5847,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -5947,9 +5985,9 @@ dependencies = [ [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" [[package]] name = "unreachable" @@ -6100,7 +6138,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", "wasm-bindgen-shared", ] @@ -6134,7 +6172,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6190,9 +6228,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" dependencies = [ "rustls-pki-types", ] @@ -6243,6 +6281,36 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -6391,15 +6459,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "0.6.18" @@ -6419,16 +6478,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -6440,7 +6489,7 @@ dependencies = [ "js-sys", "log", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "send_wrapper 0.6.0", "thiserror", "wasm-bindgen", @@ -6481,7 +6530,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] @@ -6501,7 +6550,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.77", ] [[package]] diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index ff03eef1..c3936919 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -core = { path = "../core/" } +mina_bridge_core = { path = "../core/" } tokio = "1.39.1" env_logger = "0.11.5" log = "0.4.22" @@ -17,6 +17,10 @@ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "led o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } +serde = { version = "1.0", features = ["derive"] } +mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } +bincode = "1.3.3" +serde_with = "1.10.0" [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index d07efe91..502e47af 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -1,21 +1,19 @@ -use core::{ +use aligned_sdk::core::types::Chain; +use log::{debug, error, info}; +use mina_bridge_core::{ mina_polling_service::query_root, - smart_contract_utility::{deploy_mina_bridge_contract, MinaBridgeConstructorArgs}, + smart_contract_utility::{ + deploy_mina_bridge_contract, EVMStateHash, MinaBridgeConstructorArgs, + }, utils::{ - constants::{ALIGNED_SM_DEVNET_ETH_ADDR, ALIGNED_SM_HOLESKY_ETH_ADDR}, + constants::{ + ALIGNED_SM_DEVNET_ETH_ADDR, ALIGNED_SM_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, + }, env::EnvironmentVariables, wallet_alloy::get_wallet, }, }; -use std::{process, str::FromStr}; - -use aligned_sdk::core::types::Chain; -use kimchi::turshi::helper::CairoFieldHelpers; -use log::{debug, error, info}; -use mina_curves::pasta::Fp; -use o1_utils::FieldHelpers; - -const BRIDGE_TRANSITION_FRONTIER_LEN: usize = 11; +use std::process; #[tokio::main] async fn main() { @@ -36,17 +34,17 @@ async fn main() { let root_hash = query_root(&rpc_url, BRIDGE_TRANSITION_FRONTIER_LEN) .await - .and_then(|dec| { - let hash_fp = - Fp::from_str(&dec).map_err(|_| "Failed to decode root hash".to_string())?; - info!("Queried root state hash 0x{}", hash_fp.to_hex_be()); - Ok(hash_fp) - }) - .map(|fp| fp.to_bytes()) .unwrap_or_else(|err| { - error!("{}", err); + error!("Failed to query root state hash: {err}"); process::exit(1); }); + info!( + "Queried root state hash {root_hash} for chain of length {BRIDGE_TRANSITION_FRONTIER_LEN}" + ); + let root_hash = bincode::serialize(&EVMStateHash(root_hash)).unwrap_or_else(|err| { + error!("Failed to serialize root state hash: {err}"); + process::exit(1); + }); let aligned_sm_addr = match chain { Chain::Devnet => ALIGNED_SM_DEVNET_ETH_ADDR, @@ -56,19 +54,19 @@ async fn main() { let contract_constructor_args = MinaBridgeConstructorArgs::new(aligned_sm_addr, root_hash) .unwrap_or_else(|err| { - error!("{}", err); + error!("Failed to make constructor args for contract call: {err}"); process::exit(1); }); let wallet = get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) .unwrap_or_else(|err| { - error!("{}", err); + error!("Failed to get wallet: {err}"); process::exit(1); }); deploy_mina_bridge_contract(ð_rpc_url, contract_constructor_args, &wallet) .await .unwrap_or_else(|err| { - error!("{}", err); + error!("Failed to deploy contract: {err}"); process::exit(1); }); } diff --git a/core/Cargo.lock b/core/Cargo.lock index f0bb1e26..d1478c06 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -79,7 +79,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#ce5f8421a2994013599ef992308bd175b3c47d4d" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=account_inclusion_verifier#06bc10c8ad218e0e8df3ec98b69e6c59e188133a" dependencies = [ "ethers", "futures-util", @@ -127,9 +127,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a777d352cd752b81c695828b1bb6e04b3e87ca4d94a6fe343244eb54effb2d" +checksum = "bb07629a5d0645d29f68d2fb6f4d0cf15c89ec0965be915f303967180929743f" dependencies = [ "num_enum", "strum 0.26.3", @@ -196,7 +196,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -525,7 +525,7 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.4.0", + "indexmap 2.5.0", "proc-macro-error", "proc-macro2", "quote", @@ -558,7 +558,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" dependencies = [ "serde", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -763,7 +763,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -954,7 +954,7 @@ checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ "futures", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -1050,6 +1050,15 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + [[package]] name = "binprot" version = "0.1.8" @@ -1125,7 +1134,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1136,7 +1145,7 @@ checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1149,7 +1158,7 @@ dependencies = [ "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1251,15 +1260,16 @@ dependencies = [ [[package]] name = "c-kzg" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ "blst", "cc", "glob", "hex", "libc", + "once_cell", "serde", ] @@ -1297,9 +1307,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932" +checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" dependencies = [ "jobserver", "libc", @@ -1490,9 +1500,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -1500,41 +1510,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "core" -version = "0.1.0" -dependencies = [ - "aligned-sdk", - "alloy", - "ark-ec", - "ark-ff 0.3.0", - "ark-poly", - "ark-serialize 0.3.0", - "base64 0.22.1", - "clap", - "dotenv", - "env_logger", - "ethers", - "graphql_client", - "hex", - "kimchi", - "log", - "mina-curves", - "mina-p2p-messages", - "mina-signer", - "mina-tree", - "num-bigint", - "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", - "poly-commitment", - "reqwest 0.11.27", - "rmp-serde", - "rpassword", - "serde", - "serde_json", - "sha3", - "tokio", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -1775,7 +1750,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "syn 2.0.76", ] @@ -2694,7 +2669,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -2752,7 +2727,7 @@ checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" dependencies = [ "atomic-polyfill", "hash32", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "serde", "spin 0.9.8", "stable_deref_trait", @@ -3085,9 +3060,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3581,6 +3556,44 @@ dependencies = [ "wasm_thread", ] +[[package]] +name = "mina_bridge_core" +version = "0.1.0" +dependencies = [ + "aligned-sdk", + "alloy", + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "base64 0.22.1", + "bincode", + "clap", + "dotenv", + "env_logger", + "ethers", + "futures", + "graphql_client", + "hex", + "kimchi", + "log", + "mina-curves", + "mina-p2p-messages", + "mina-signer", + "mina-tree", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "poly-commitment", + "reqwest 0.11.27", + "rmp-serde", + "rpassword", + "serde", + "serde_json", + "serde_with 1.14.0", + "sha3", + "tokio", +] + [[package]] name = "miniz_oxide" version = "0.7.4" @@ -3738,7 +3751,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.76", @@ -3792,9 +3805,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.3" +version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" dependencies = [ "memchr", ] @@ -3940,7 +3953,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -4082,7 +4095,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.4.0", + "indexmap 2.5.0", ] [[package]] @@ -4092,7 +4105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ "futures", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -4288,11 +4301,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -4778,18 +4791,18 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver 1.0.23", ] [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" dependencies = [ "bitflags 2.6.0", "errno", @@ -4819,7 +4832,7 @@ dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.7", "subtle", "zeroize", ] @@ -4861,9 +4874,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -4930,7 +4943,7 @@ version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -5122,7 +5135,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_derive", "serde_json", @@ -5610,9 +5623,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", @@ -5708,7 +5721,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls 0.26.0", "tungstenite 0.23.0", - "webpki-roots 0.26.3", + "webpki-roots 0.26.5", ] [[package]] @@ -5742,7 +5755,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit", ] [[package]] @@ -5754,28 +5767,17 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -6207,9 +6209,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" dependencies = [ "rustls-pki-types", ] @@ -6438,15 +6440,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "0.6.18" @@ -6477,7 +6470,7 @@ dependencies = [ "js-sys", "log", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "send_wrapper 0.6.0", "thiserror", "wasm-bindgen", diff --git a/core/Cargo.toml b/core/Cargo.toml index d127f56b..2850b315 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "core" +name = "mina_bridge_core" version = "0.1.0" edition = "2021" @@ -21,7 +21,7 @@ ark-poly = { version = "0.3.0", features = ["parallel"] } ark-serialize = "0.3.0" mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "account_inclusion_verifier" } ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", @@ -38,8 +38,11 @@ graphql_client = { version = "0.14.0", features = [ "reqwest-blocking", ] } alloy = { version = "0.2.1", features = ["full", "signer-keystore"] } -clap = { version = "4.5.16", features = ["derive"] } +clap = { version = "4.5.4", features = ["derive"] } sha3 = "0.10.8" +bincode = "1.3.3" +serde_with = "1.10.0" +futures = "0.3.30" [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index e5703bf9..5811e5c4 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getLedgerAccountPair","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Account.LedgerAccountPair","components":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"},{"name":"accountHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isAccountUpdated","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTipState","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AccountIsNotValid","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161066338038061066383398101604081905261002f91610058565b600380546001600160a01b0319166001600160a01b039390931692909217909155600055610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b6105c2806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633886c09b14610067578063461cede21461007e57806378dd3e16146100b3578063afa264c1146100c8578063b8184745146100db578063be9c0643146100e3575b600080fd5b6001545b6040519081526020015b60405180910390f35b6100a361008c366004610365565b600154600091825260026020526040909120541490565b6040519015158152602001610075565b6100c66100c1366004610421565b61014a565b005b6100c66100d6366004610421565b610269565b60005461006b565b61012f6100f1366004610365565b604080518082019091526000808252602082015250600090815260026020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610075565b60008060006020840151925060408401519150606084015190506000848051906020012090506000600360009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d848e8e8e8e8e6040518863ffffffff1660e01b81526004016101bf97969594939291906104d0565b602060405180830381865afa1580156101dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102009190610563565b9050801561023a5760408051808201825286815260208082018781526000878152600290925292902090518155905160019091015561025b565b60405163f63ab27560e01b8152600481018490526024015b60405180910390fd5b505050505050505050505050565b6060810151600054811461029e5760005460405163177b002560e31b8152610252918391600401918252602082015260400190565b815160208301206003546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906102e2908d9086908e908e908e908e908e906004016104d0565b602060405180830381865afa1580156102ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103239190610563565b905080156103405760208401516001556040840151600055610359565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b60006020828403121561037757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103a557600080fd5b813567ffffffffffffffff808211156103c0576103c061037e565b604051601f8301601f19908116603f011681019082821181831017156103e8576103e861037e565b8160405283815286602085880101111561040157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561043c57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461046757600080fd5b945060608801359350608088013567ffffffffffffffff8082111561048b57600080fd5b6104978b838c01610394565b945060a08a0135935060c08a01359150808211156104b457600080fd5b506104c18a828b01610394565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561052c578681018301518582016101000152820161050f565b8181111561053f57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561057557600080fd5b8151801515811461058557600080fd5b939250505056fea26469706673582212202ad337656e22f44fcad2a51c3d5b7124dc220708d737aae33062b015882ae44264736f6c634300080c0033","sourceMap":"369:3924:64:-:0;;;850:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;924:7;:57;;-1:-1:-1;;;;;;924:57:64;-1:-1:-1;;;;;924:57:64;;;;;;;;;;;-1:-1:-1;991:28:64;369:3924;;14:351:66;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:66;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:66:o;:::-;369:3924:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c80633886c09b14610067578063461cede21461007e57806378dd3e16146100b3578063afa264c1146100c8578063b8184745146100db578063be9c0643146100e3575b600080fd5b6001545b6040519081526020015b60405180910390f35b6100a361008c366004610365565b600154600091825260026020526040909120541490565b6040519015158152602001610075565b6100c66100c1366004610421565b61014a565b005b6100c66100d6366004610421565b610269565b60005461006b565b61012f6100f1366004610365565b604080518082019091526000808252602082015250600090815260026020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610075565b60008060006020840151925060408401519150606084015190506000848051906020012090506000600360009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d848e8e8e8e8e6040518863ffffffff1660e01b81526004016101bf97969594939291906104d0565b602060405180830381865afa1580156101dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102009190610563565b9050801561023a5760408051808201825286815260208082018781526000878152600290925292902090518155905160019091015561025b565b60405163f63ab27560e01b8152600481018490526024015b60405180910390fd5b505050505050505050505050565b6060810151600054811461029e5760005460405163177b002560e31b8152610252918391600401918252602082015260400190565b815160208301206003546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906102e2908d9086908e908e908e908e908e906004016104d0565b602060405180830381865afa1580156102ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103239190610563565b905080156103405760208401516001556040840151600055610359565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b60006020828403121561037757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103a557600080fd5b813567ffffffffffffffff808211156103c0576103c061037e565b604051601f8301601f19908116603f011681019082821181831017156103e8576103e861037e565b8160405283815286602085880101111561040157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a03121561043c57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461046757600080fd5b945060608801359350608088013567ffffffffffffffff8082111561048b57600080fd5b6104978b838c01610394565b945060a08a0135935060c08a01359150808211156104b457600080fd5b506104c18a828b01610394565b91505092959891949750929550565b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561052c578681018301518582016101000152820161050f565b8181111561053f57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561057557600080fd5b8151801515811461058557600080fd5b939250505056fea26469706673582212202ad337656e22f44fcad2a51c3d5b7124dc220708d737aae33062b015882ae44264736f6c634300080c0033","sourceMap":"369:3924:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1242:97;1319:13;;1242:97;;;160:25:66;;;148:2;133:18;1242:97:64;;;;;;;;1522:167;;;;;;:::i;:::-;1669:13;;1608:4;1631:23;;;:8;:23;;;;;;:34;:51;;1522:167;;;;546:14:66;;539:22;521:41;;509:2;494:18;1522:167:64;381:187:66;3093:1198:64;;;;;;:::i;:::-;;:::i;:::-;;1695:1392;;;;;;:::i;:::-;;:::i;1086:95::-;1136:7;1162:12;1086:95;;1345:171;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;1486:23:64;;;;:8;:23;;;;;;;;;1479:30;;;;;;;;;;;;;;;;;;;;1345:171;;;;;2670:13:66;;2652:32;;2740:4;2728:17;;;2722:24;2700:20;;;2693:54;;;;2625:18;1345:171:64;2434:319:66;3093:1198:64;3400:18;3428:19;3457:21;3545:4;3535:8;3531:19;3525:26;3511:40;;3599:4;3589:8;3585:19;3579:26;3564:41;;3655:4;3645:8;3641:19;3635:26;3618:43;;3681:26;3720:8;3710:19;;;;;;3681:48;;3740:22;3765:7;;;;;;;;;-1:-1:-1;;;;;3765:7:64;-1:-1:-1;;;;;3765:28:64;;3807:15;3836:18;3868:30;3912:18;3944:15;3973:11;3998:26;3765:269;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3740:294;;4049:17;4045:240;;;4108:96;;;;;;;;;;;;;;;;;;-1:-1:-1;4082:23:64;;;:8;:23;;;;;;:122;;;;;;;;;;;4045:240;;;4242:32;;-1:-1:-1;;;4242:32:64;;;;;160:25:66;;;133:18;;4242:32:64;;;;;;;;4045:240;3390:901;;;;;3093:1198;;;;;;;:::o;1695:1392::-;2108:4;2094:19;;2088:26;2003:28;2162:12;2138:36;;2134:125;;2235:12;;2197:51;;-1:-1:-1;;;2197:51:64;;;;2213:20;;2197:51;;4286:25:66;;;4342:2;4327:18;;4320:34;4274:2;4259:18;;4112:248;2134:125:64;2298:19;;;;;;2354:7;;:269;;-1:-1:-1;;;2354:269:64;;2269:26;;-1:-1:-1;;;;;2354:7:64;;:28;;:269;;2396:15;;2298:19;;2457:30;;2501:18;;2533:15;;2562:11;;2587:26;;2354:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2328:295;;2638:18;2634:447;;;2922:4;2912:8;2908:19;2902:26;2882:18;2875:54;2992:4;2982:8;2978:19;2972:26;2953:17;2946:53;2634:447;;;3050:20;;-1:-1:-1;;;3050:20:64;;;;;;;;;;;2634:447;1993:1094;;;1695:1392;;;;;;;:::o;196:180:66:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:66;;196:180;-1:-1:-1;196:180:66:o;573:127::-;634:10;629:3;625:20;622:1;615:31;665:4;662:1;655:15;689:4;686:1;679:15;705:718;747:5;800:3;793:4;785:6;781:17;777:27;767:55;;818:1;815;808:12;767:55;854:6;841:20;880:18;917:2;913;910:10;907:36;;;923:18;;:::i;:::-;998:2;992:9;966:2;1052:13;;-1:-1:-1;;1048:22:66;;;1072:2;1044:31;1040:40;1028:53;;;1096:18;;;1116:22;;;1093:46;1090:72;;;1142:18;;:::i;:::-;1182:10;1178:2;1171:22;1217:2;1209:6;1202:18;1263:3;1256:4;1251:2;1243:6;1239:15;1235:26;1232:35;1229:55;;;1280:1;1277;1270:12;1229:55;1344:2;1337:4;1329:6;1325:17;1318:4;1310:6;1306:17;1293:54;1391:1;1384:4;1379:2;1371:6;1367:15;1363:26;1356:37;1411:6;1402:15;;;;;;705:718;;;;:::o;1428:1001::-;1559:6;1567;1575;1583;1591;1599;1607;1660:3;1648:9;1639:7;1635:23;1631:33;1628:53;;;1677:1;1674;1667:12;1628:53;1700:23;;;-1:-1:-1;1770:2:66;1755:18;;1742:32;;-1:-1:-1;1824:2:66;1809:18;;1796:32;-1:-1:-1;;1857:43:66;;1847:54;;1837:82;;1915:1;1912;1905:12;1837:82;1938:5;-1:-1:-1;1990:2:66;1975:18;;1962:32;;-1:-1:-1;2045:3:66;2030:19;;2017:33;2069:18;2099:14;;;2096:34;;;2126:1;2123;2116:12;2096:34;2149:49;2190:7;2181:6;2170:9;2166:22;2149:49;:::i;:::-;2139:59;;2245:3;2234:9;2230:19;2217:33;2207:43;;2303:3;2292:9;2288:19;2275:33;2259:49;;2333:2;2323:8;2320:16;2317:36;;;2349:1;2346;2339:12;2317:36;;2372:51;2415:7;2404:8;2393:9;2389:24;2372:51;:::i;:::-;2362:61;;;1428:1001;;;;;;;;;;:::o;2758:1067::-;3073:6;3062:9;3055:25;3036:4;3099:2;3137:6;3132:2;3121:9;3117:18;3110:34;3180:6;3175:2;3164:9;3160:18;3153:34;3239:26;3235:31;3227:6;3223:44;3218:2;3207:9;3203:18;3196:72;3305:6;3299:3;3288:9;3284:19;3277:35;3349:3;3343;3332:9;3328:19;3321:32;3382:6;3376:13;3426:6;3420:3;3409:9;3405:19;3398:35;3451:1;3461:141;3475:6;3472:1;3469:13;3461:141;;;3571:14;;;3567:23;;3561:30;3536:17;;;3555:3;3532:27;3525:67;3490:10;;3461:141;;;3620:6;3617:1;3614:13;3611:92;;;3691:1;3685:3;3676:6;3665:9;3661:22;3657:32;3650:43;3611:92;-1:-1:-1;3806:3:66;3791:19;;3784:35;;;;-1:-1:-1;;3764:2:66;3743:15;;;;-1:-1:-1;;3739:29:66;3724:45;3771:3;3720:55;;2758:1067;-1:-1:-1;;;;;;2758:1067:66:o;3830:277::-;3897:6;3950:2;3938:9;3929:7;3925:23;3921:32;3918:52;;;3966:1;3963;3956:12;3918:52;3998:9;3992:16;4051:5;4044:13;4037:21;4030:5;4027:32;4017:60;;4073:1;4070;4063:12;4017:60;4096:5;3830:277;-1:-1:-1;;;3830:277:66:o","linkReferences":{}},"methodIdentifiers":{"getLedgerAccountPair(bytes32)":"be9c0643","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isAccountUpdated(bytes32)":"461cede2","updateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"78dd3e16","updateTipState(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"afa264c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"getLedgerAccountPair\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"accountHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Account.LedgerAccountPair\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"isAccountUpdated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateTipState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/Account.sol\":{\"keccak256\":\"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4\",\"dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xac3cdfc716307c3b7c3d531a3d8b9a15ceea1135675f1a759c060a667b7ab6d4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://737b935f89496427d0ff35075b6e1d2bcb04c4eb13c2ffc39cfab3413ca4bf3a\",\"dweb:/ipfs/QmXhPQTWzJBQD2JX3i6iLqamM6MrgGwP1BHNfx5AVpqeYN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"type":"error","name":"AccountIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getLedgerAccountPair","outputs":[{"internalType":"struct Account.LedgerAccountPair","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"},{"internalType":"bytes32","name":"accountHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isAccountUpdated","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateAccount"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateTipState"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/Account.sol":{"keccak256":"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91","urls":["bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4","dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0xac3cdfc716307c3b7c3d531a3d8b9a15ceea1135675f1a759c060a667b7ab6d4","urls":["bzz-raw://737b935f89496427d0ff35075b6e1d2bcb04c4eb13c2ffc39cfab3413ca4bf3a","dweb:/ipfs/QmXhPQTWzJBQD2JX3i6iLqamM6MrgGwP1BHNfx5AVpqeYN"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getLedgerAccountPair","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Account.LedgerAccountPair","components":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"},{"name":"accountHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isAccountUpdated","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AccountIsNotValid","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161088b38038061088b83398101604081905261002f91610073565b602180546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b610794806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a92d923a1161005b578063a92d923a146100f9578063b81847451461010c578063be9c064314610114578063fb299cd81461017957600080fd5b806303f93e501461008d5780633886c09b146100ab578063461cede2146100c157806378dd3e16146100e4575b600080fd5b610095610181565b6040516100a291906104ca565b60405180910390f35b6100b36101bd565b6040519081526020016100a2565b6100d46100cf3660046104fc565b6101e3565b60405190151581526020016100a2565b6100f76100f23660046105b8565b61021b565b005b6100f76101073660046105b8565b610338565b6100b361049c565b61015e6101223660046104fc565b60408051808201909152600080825260208201525060009081526020808052604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016100a2565b6100b3601081565b6101896104ab565b604080516102008101918290529060009060109082845b8154815260200190600101908083116101a0575050505050905090565b600060106101cc600182610667565b601081106101dc576101dc61068c565b0154905090565b600060106101f2600182610667565b601081106102025761020261068c565b0154600092835260208052604090922054909114919050565b60008060006020840151925060408401519150606084015190506000848051906020012090506000602160009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d848e8e8e8e8e6040518863ffffffff1660e01b815260040161029097969594939291906106a2565b602060405180830381865afa1580156102ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d19190610735565b90508015610309576040805180820182528681526020808201878152600087815291805292902090518155905160019091015561032a565b60405163f63ab27560e01b8152600481018490526024015b60405180910390fd5b505050505050505050505050565b6020810151600061034b60016010610667565b6010811061035b5761035b61068c565b015481146103a65780600061037260016010610667565b601081106103825761038261068c565b015460405163177b002560e31b815260048101929092526024820152604401610321565b815160208301206021546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906103ea908d9086908e908e908e908e908e906004016106a2565b602060405180830381865afa158015610407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042b9190610735565b905080156104775760006010604086016102408701835b601081101561046d578251855581518455600194850194938401936020938401939092019101610442565b5050505050610490565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101cc60016010610667565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104f35781518352602092830192909101906001016104d4565b50505092915050565b60006020828403121561050e57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261053c57600080fd5b813567ffffffffffffffff8082111561055757610557610515565b604051601f8301601f19908116603f0116810190828211818310171561057f5761057f610515565b8160405283815286602085880101111561059857600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156105d357600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff19811681146105fe57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561062257600080fd5b61062e8b838c0161052b565b945060a08a0135935060c08a013591508082111561064b57600080fd5b506106588a828b0161052b565b91505092959891949750929550565b60008282101561068757634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156106fe57868101830151858201610100015282016106e1565b8181111561071157600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561074757600080fd5b8151801515811461075757600080fd5b939250505056fea2646970667358221220720dba81d52bcb30f9f53fc6aee296bd94264fa5ff08c96d235fc98ae90a208f64736f6c634300080c0033","sourceMap":"369:6018:64:-:0;;;1229:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1303:7;:57;;-1:-1:-1;;;;;;1303:57:64;-1:-1:-1;;;;;1303:57:64;;;;;1425:13;-1:-1:-1;1387:34:64;-1:-1:-1;569:2:64;1387:34;:::i;:::-;1370:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:6018:64;;-1:-1:-1;369:6018:64;14:351:66;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:66;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:66:o;370:222::-;410:4;438:1;435;432:8;429:131;;;482:10;477:3;473:20;470:1;463:31;517:4;514:1;507:15;545:4;542:1;535:15;429:131;-1:-1:-1;577:9:66;;370:222::o;597:127::-;658:10;653:3;649:20;646:1;639:31;689:4;686:1;679:15;713:4;710:1;703:15;597:127;369:6018:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a92d923a1161005b578063a92d923a146100f9578063b81847451461010c578063be9c064314610114578063fb299cd81461017957600080fd5b806303f93e501461008d5780633886c09b146100ab578063461cede2146100c157806378dd3e16146100e4575b600080fd5b610095610181565b6040516100a291906104ca565b60405180910390f35b6100b36101bd565b6040519081526020016100a2565b6100d46100cf3660046104fc565b6101e3565b60405190151581526020016100a2565b6100f76100f23660046105b8565b61021b565b005b6100f76101073660046105b8565b610338565b6100b361049c565b61015e6101223660046104fc565b60408051808201909152600080825260208201525060009081526020808052604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016100a2565b6100b3601081565b6101896104ab565b604080516102008101918290529060009060109082845b8154815260200190600101908083116101a0575050505050905090565b600060106101cc600182610667565b601081106101dc576101dc61068c565b0154905090565b600060106101f2600182610667565b601081106102025761020261068c565b0154600092835260208052604090922054909114919050565b60008060006020840151925060408401519150606084015190506000848051906020012090506000602160009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d848e8e8e8e8e6040518863ffffffff1660e01b815260040161029097969594939291906106a2565b602060405180830381865afa1580156102ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d19190610735565b90508015610309576040805180820182528681526020808201878152600087815291805292902090518155905160019091015561032a565b60405163f63ab27560e01b8152600481018490526024015b60405180910390fd5b505050505050505050505050565b6020810151600061034b60016010610667565b6010811061035b5761035b61068c565b015481146103a65780600061037260016010610667565b601081106103825761038261068c565b015460405163177b002560e31b815260048101929092526024820152604401610321565b815160208301206021546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906103ea908d9086908e908e908e908e908e906004016106a2565b602060405180830381865afa158015610407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042b9190610735565b905080156104775760006010604086016102408701835b601081101561046d578251855581518455600194850194938401936020938401939092019101610442565b5050505050610490565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101cc60016010610667565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104f35781518352602092830192909101906001016104d4565b50505092915050565b60006020828403121561050e57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261053c57600080fd5b813567ffffffffffffffff8082111561055757610557610515565b604051601f8301601f19908116603f0116810190828211818310171561057f5761057f610515565b8160405283815286602085880101111561059857600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156105d357600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff19811681146105fe57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561062257600080fd5b61062e8b838c0161052b565b945060a08a0135935060c08a013591508082111561064b57600080fd5b506106588a828b0161052b565b91505092959891949750929550565b60008282101561068757634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156106fe57868101830151858201610100015282016106e1565b8181111561071157600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561074757600080fd5b8151801515811461075757600080fd5b939250505056fea2646970667358221220720dba81d52bcb30f9f53fc6aee296bd94264fa5ff08c96d235fc98ae90a208f64736f6c634300080c0033","sourceMap":"369:6018:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2556:137;;;:::i;:::-;;;662:25:66;;;650:2;635:18;2556:137:64;516:177:66;2264:231:64;;;;;;:::i;:::-;;:::i;:::-;;;1048:14:66;;1041:22;1023:41;;1011:2;996:18;2264:231:64;883:187:66;5187:1198:64;;;;;;:::i;:::-;;:::i;:::-;;2699:2482;;;;;;:::i;:::-;;:::i;1505:135::-;;;:::i;1986:171::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;2127:23:64;;;;:8;:23;;;;;;;;2120:30;;;;;;;;;;;;;;;;;;;;1986:171;;;;;3172:13:66;;3154:32;;3242:4;3230:17;;;3224:24;3202:20;;;3195:54;;;;3127:18;1986:171:64;2936:319:66;515:56:64;;569:2;515:56;;1710:170;1788:46;;:::i;:::-;1850:23;;;;;;;;;;;-1:-1:-1;;1850:23:64;;-1:-1:-1;1850:23:64;;;;;;;;;;;;;;;;;;;;;;;;1710:170;:::o;2556:137::-;2607:7;2633:17;2651:34;2684:1;2633:17;2651:34;:::i;:::-;2633:53;;;;;;;:::i;:::-;;;2626:60;;2556:137;:::o;2264:231::-;2350:4;2435:17;2453:34;2486:1;2435:17;2453:34;:::i;:::-;2435:53;;;;;;;:::i;:::-;;;2385:23;;;;:8;:23;;;;;;:34;:103;;;;2264:231;-1:-1:-1;2264:231:64:o;5187:1198::-;5494:18;5522:19;5551:21;5639:4;5629:8;5625:19;5619:26;5605:40;;5693:4;5683:8;5679:19;5673:26;5658:41;;5749:4;5739:8;5735:19;5729:26;5712:43;;5775:26;5814:8;5804:19;;;;;;5775:48;;5834:22;5859:7;;;;;;;;;-1:-1:-1;;;;;5859:7:64;-1:-1:-1;;;;;5859:28:64;;5901:15;5930:18;5962:30;6006:18;6038:15;6067:11;6092:26;5859:269;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5834:294;;6143:17;6139:240;;;6202:96;;;;;;;;;;;;;;;;;;-1:-1:-1;6176:23:64;;;;;;;;;:122;;;;;;;;;;;6139:240;;;6336:32;;-1:-1:-1;;;6336:32:64;;;;;662:25:66;;;635:18;;6336:32:64;;;;;;;;6139:240;5484:901;;;;;5187:1198;;;;;;;:::o;2699:2482::-;3121:4;3107:19;;3101:26;3004:34;3223;3256:1;569:2;3223:34;:::i;:::-;3206:52;;;;;;;:::i;:::-;;;3164:26;:94;3147:297;;3323:26;3367:16;3384:34;3417:1;569:2;3384:34;:::i;:::-;3367:52;;;;;;;:::i;:::-;;;3290:143;;-1:-1:-1;;;3290:143:64;;;;;5329:25:66;;;;5370:18;;;5363:34;5302:18;;3290:143:64;5155:248:66;3147:297:64;3483:19;;;;;;3539:7;;:269;;-1:-1:-1;;;3539:269:64;;3454:26;;-1:-1:-1;;;;;3539:7:64;;:28;;:269;;3581:15;;3483:19;;3642:30;;3686:18;;3718:15;;3747:11;;3772:26;;3539:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3513:295;;3823:18;3819:1356;;;3961:21;4019:22;4309:2;4295:17;;4444:115;;;3961:21;4577:516;4638:30;4635:1;4632:37;4577:516;;;4767:18;;4747:39;;4940:19;;4919:41;;4895:1;4878:19;;;;5055:20;;;;4839:2;4822:20;;;;4997:21;;;;4697:9;4577:516;;;4581:50;;;;;3819:1356;;;5144:20;;-1:-1:-1;;;5144:20:64;;;;;;;;;;;3819:1356;2994:2187;;;2699:2482;;;;;;;:::o;1505:135::-;1555:7;;1598:34;1631:1;569:2;1598:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:66:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:180::-;757:6;810:2;798:9;789:7;785:23;781:32;778:52;;;826:1;823;816:12;778:52;-1:-1:-1;849:23:66;;698:180;-1:-1:-1;698:180:66:o;1075:127::-;1136:10;1131:3;1127:20;1124:1;1117:31;1167:4;1164:1;1157:15;1191:4;1188:1;1181:15;1207:718;1249:5;1302:3;1295:4;1287:6;1283:17;1279:27;1269:55;;1320:1;1317;1310:12;1269:55;1356:6;1343:20;1382:18;1419:2;1415;1412:10;1409:36;;;1425:18;;:::i;:::-;1500:2;1494:9;1468:2;1554:13;;-1:-1:-1;;1550:22:66;;;1574:2;1546:31;1542:40;1530:53;;;1598:18;;;1618:22;;;1595:46;1592:72;;;1644:18;;:::i;:::-;1684:10;1680:2;1673:22;1719:2;1711:6;1704:18;1765:3;1758:4;1753:2;1745:6;1741:15;1737:26;1734:35;1731:55;;;1782:1;1779;1772:12;1731:55;1846:2;1839:4;1831:6;1827:17;1820:4;1812:6;1808:17;1795:54;1893:1;1886:4;1881:2;1873:6;1869:15;1865:26;1858:37;1913:6;1904:15;;;;;;1207:718;;;;:::o;1930:1001::-;2061:6;2069;2077;2085;2093;2101;2109;2162:3;2150:9;2141:7;2137:23;2133:33;2130:53;;;2179:1;2176;2169:12;2130:53;2202:23;;;-1:-1:-1;2272:2:66;2257:18;;2244:32;;-1:-1:-1;2326:2:66;2311:18;;2298:32;-1:-1:-1;;2359:43:66;;2349:54;;2339:82;;2417:1;2414;2407:12;2339:82;2440:5;-1:-1:-1;2492:2:66;2477:18;;2464:32;;-1:-1:-1;2547:3:66;2532:19;;2519:33;2571:18;2601:14;;;2598:34;;;2628:1;2625;2618:12;2598:34;2651:49;2692:7;2683:6;2672:9;2668:22;2651:49;:::i;:::-;2641:59;;2747:3;2736:9;2732:19;2719:33;2709:43;;2805:3;2794:9;2790:19;2777:33;2761:49;;2835:2;2825:8;2822:16;2819:36;;;2851:1;2848;2841:12;2819:36;;2874:51;2917:7;2906:8;2895:9;2891:24;2874:51;:::i;:::-;2864:61;;;1930:1001;;;;;;;;;;:::o;3442:222::-;3482:4;3510:1;3507;3504:8;3501:131;;;3554:10;3549:3;3545:20;3542:1;3535:31;3589:4;3586:1;3579:15;3617:4;3614:1;3607:15;3501:131;-1:-1:-1;3649:9:66;;3442:222::o;3669:127::-;3730:10;3725:3;3721:20;3718:1;3711:31;3761:4;3758:1;3751:15;3785:4;3782:1;3775:15;3801:1067;4116:6;4105:9;4098:25;4079:4;4142:2;4180:6;4175:2;4164:9;4160:18;4153:34;4223:6;4218:2;4207:9;4203:18;4196:34;4282:26;4278:31;4270:6;4266:44;4261:2;4250:9;4246:18;4239:72;4348:6;4342:3;4331:9;4327:19;4320:35;4392:3;4386;4375:9;4371:19;4364:32;4425:6;4419:13;4469:6;4463:3;4452:9;4448:19;4441:35;4494:1;4504:141;4518:6;4515:1;4512:13;4504:141;;;4614:14;;;4610:23;;4604:30;4579:17;;;4598:3;4575:27;4568:67;4533:10;;4504:141;;;4663:6;4660:1;4657:13;4654:92;;;4734:1;4728:3;4719:6;4708:9;4704:22;4700:32;4693:43;4654:92;-1:-1:-1;4849:3:66;4834:19;;4827:35;;;;-1:-1:-1;;4807:2:66;4786:15;;;;-1:-1:-1;;4782:29:66;4767:45;4814:3;4763:55;;3801:1067;-1:-1:-1;;;;;;3801:1067:66:o;4873:277::-;4940:6;4993:2;4981:9;4972:7;4968:23;4964:32;4961:52;;;5009:1;5006;4999:12;4961:52;5041:9;5035:16;5094:5;5087:13;5080:21;5073:5;5070:32;5060:60;;5116:1;5113;5106:12;5060:60;5139:5;4873:277;-1:-1:-1;;;4873:277:66:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainStateHashes()":"03f93e50","getLedgerAccountPair(bytes32)":"be9c0643","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isAccountUpdated(bytes32)":"461cede2","updateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"78dd3e16","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"getLedgerAccountPair\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"accountHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Account.LedgerAccountPair\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"isAccountUpdated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getLedgerAccountPair(bytes32)\":{\"notice\":\"Returns the ledger hash and account state hash pair for\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isAccountUpdated(bytes32)\":{\"notice\":\"Checks if some account state is verified for the latest\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/Account.sol\":{\"keccak256\":\"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4\",\"dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x802285f337f8f6ea1b3304fb1165da013dc234e82f374fa3a6d04754f46c8a92\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5837b7787c6097f546c73edde15993cb635ced545f8411d3fae9c46fa6aaf44d\",\"dweb:/ipfs/QmZGBDR8z3UQCe3X7YpDfN7uK5eqPQrcAZ5fewc3wWrEvU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"type":"error","name":"AccountIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getLedgerAccountPair","outputs":[{"internalType":"struct Account.LedgerAccountPair","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"},{"internalType":"bytes32","name":"accountHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isAccountUpdated","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateAccount"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getLedgerAccountPair(bytes32)":{"notice":"Returns the ledger hash and account state hash pair for"},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isAccountUpdated(bytes32)":{"notice":"Checks if some account state is verified for the latest"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/Account.sol":{"keccak256":"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91","urls":["bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4","dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0x802285f337f8f6ea1b3304fb1165da013dc234e82f374fa3a6d04754f46c8a92","urls":["bzz-raw://5837b7787c6097f546c73edde15993cb635ced545f8411d3fae9c46fa6aaf44d","dweb:/ipfs/QmZGBDR8z3UQCe3X7YpDfN7uK5eqPQrcAZ5fewc3wWrEvU"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index d5369053..274fe7b2 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -1,4 +1,4 @@ -use std::path::PathBuf; +use std::{path::PathBuf, process, str::FromStr}; use aligned_sdk::{ core::types::{AlignedVerificationData, Chain, ProvingSystemId, VerificationData}, @@ -9,7 +9,74 @@ use ethers::{ signers::{Signer, Wallet}, types::{Address, U256}, }; -use log::info; +use log::{error, info}; + +use crate::proof::state_proof::{MinaStateProof, MinaStatePubInputs}; + +/// Submits a Mina state proof to Aligned's batcher and waits until the batch is verified. +#[allow(clippy::too_many_arguments)] +pub async fn submit_state_proof( + proof: &MinaStateProof, + pub_input: &MinaStatePubInputs, + chain: &Chain, + proof_generator_addr: &str, + batcher_addr: &str, + batcher_eth_addr: &str, + eth_rpc_url: &str, + wallet: Wallet, + save_proof: bool, +) -> Result { + let proof = bincode::serialize(proof) + .map_err(|err| format!("Failed to serialize state proof: {err}"))?; + let pub_input = bincode::serialize(pub_input) + .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; + + if save_proof { + std::fs::write("./protocol_state.pub", &pub_input).unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + std::fs::write("./protocol_state.proof", &proof).unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + } + + let proof_generator_addr = + Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; + + let verification_data = VerificationData { + proving_system: ProvingSystemId::Mina, + proof, + pub_input: Some(pub_input), + verification_key: None, + vm_program_code: None, + proof_generator_addr, + }; + + let wallet_address = wallet.address(); + let nonce = get_nonce(eth_rpc_url, wallet_address, batcher_eth_addr).await?; + + info!( + "Submitting Mina Proof of State into Aligned and waiting for the batch to be verified..." + ); + submit_with_nonce( + batcher_addr, + eth_rpc_url, + chain, + &verification_data, + wallet, + nonce, + ) + .await + .or_else(|err| { + let nonce_file = &get_nonce_file(wallet_address); + std::fs::remove_file(nonce_file) + .map_err(|err| format!("Error trying to remove nonce file: {err}"))?; + + Err(err) + }) +} /// Submits a Mina (state or account) proof to Aligned's batcher and waits until the batch is verified. pub async fn submit( diff --git a/core/src/graphql/best_chain_query.graphql b/core/src/graphql/best_chain_query.graphql index 4da98ab7..e8fe583d 100644 --- a/core/src/graphql/best_chain_query.graphql +++ b/core/src/graphql/best_chain_query.graphql @@ -1,8 +1,14 @@ query BestChainQuery($maxLength: Int!) { bestChain(maxLength: $maxLength) { stateHashField + stateHash protocolStateProof { base64 } + protocolState { + blockchainState { + stagedLedgerHash + } + } } } diff --git a/core/src/lib.rs b/core/src/lib.rs index 2d4a1c6f..2f79c64d 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -11,3 +11,6 @@ pub mod smart_contract_utility; /// Internal utils. pub mod utils; + +/// Mina Proof of State/Account definitions and (de)serialization. +pub mod proof; diff --git a/core/src/main.rs b/core/src/main.rs index c7f94e76..3031e5bc 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -1,10 +1,9 @@ use clap::{Parser, Subcommand}; -use core::{ +use log::{error, info}; +use mina_bridge_core::{ aligned_polling_service, mina_polling_service, smart_contract_utility, utils::{env::EnvironmentVariables, wallet::get_wallet}, }; -use log::{error, info}; -use mina_p2p_messages::v2::StateHash; use std::{process, time::SystemTime}; #[derive(Parser)] @@ -53,43 +52,24 @@ async fn main() { match cli.command { Command::SubmitState => { - let proof = mina_polling_service::get_mina_proof_of_state( - &rpc_url, - &proof_generator_addr, - &chain, - ð_rpc_url, - ) - .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - - if cli.save_proof { - std::fs::write( - "./protocol_state.pub", - proof.pub_input.as_ref().unwrap_or_else(|| { - error!("Tried to save public inputs to file but they're missing"); + let (proof, pub_input) = + mina_polling_service::get_mina_proof_of_state(&rpc_url, &chain, ð_rpc_url) + .await + .unwrap_or_else(|err| { + error!("{}", err); process::exit(1); - }), - ) - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - std::fs::write("./protocol_state.proof", &proof.proof).unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - } + }); - let verification_data = aligned_polling_service::submit( + let verification_data = aligned_polling_service::submit_state_proof( &proof, + &pub_input, &chain, + &proof_generator_addr, &batcher_addr, &batcher_eth_addr, ð_rpc_url, wallet.clone(), + cli.save_proof, ) .await .unwrap_or_else(|err| { @@ -97,14 +77,9 @@ async fn main() { process::exit(1); }); - let pub_input = proof.pub_input.unwrap_or_else(|| { - error!("Missing public inputs from Mina state proof"); - process::exit(1); - }); - - let verified_state_hash = smart_contract_utility::update_tip( + smart_contract_utility::update_chain( verification_data, - pub_input, + &pub_input, &chain, ð_rpc_url, wallet, @@ -114,11 +89,6 @@ async fn main() { error!("{}", err); process::exit(1); }); - - info!( - "Success! verified Mina state hash {} was stored in the bridge's smart contract", - StateHash::from_fp(verified_state_hash) - ); } Command::SubmitAccount { public_key } => { let proof = mina_polling_service::get_mina_proof_of_account( diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index aae95741..8fc74012 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -1,29 +1,32 @@ -use std::str::FromStr as _; +use std::str::FromStr; use aligned_sdk::core::types::{Chain, ProvingSystemId, VerificationData}; use base64::prelude::*; use ethers::types::Address; +use futures::future::join_all; use graphql_client::{ reqwest::{post_graphql, post_graphql_blocking}, GraphQLQuery, }; -use kimchi::{o1_utils::FieldHelpers, turshi::helper::CairoFieldHelpers}; +use kimchi::mina_curves::pasta::Fp; +use kimchi::o1_utils::FieldHelpers; use log::{debug, info}; -use mina_curves::pasta::Fp; use mina_p2p_messages::{ binprot::BinProtRead, - v2::{LedgerHash as MerkleRoot, MinaStateProtocolStateValueStableV2, StateHash}, + v2::{LedgerHash, MinaBaseProofStableV2, MinaStateProtocolStateValueStableV2, StateHash}, }; -use mina_tree::{FpExt, MerklePath}; +use mina_tree::MerklePath; use sha3::Digest; -use crate::{smart_contract_utility::get_tip_state_hash, utils::constants::MINA_HASH_SIZE}; +use crate::{ + proof::state_proof::{MinaStateProof, MinaStatePubInputs}, + smart_contract_utility::get_bridge_tip_hash, + utils::constants::BRIDGE_TRANSITION_FRONTIER_LEN, +}; type StateHashAsDecimal = String; type PrecomputedBlockProof = String; -type ProtocolState = String; type FieldElem = String; -type LedgerHash = String; #[derive(GraphQLQuery)] #[graphql( @@ -52,66 +55,41 @@ struct MerkleQuery; pub async fn get_mina_proof_of_state( rpc_url: &str, - proof_generator_addr: &str, chain: &Chain, eth_rpc_url: &str, -) -> Result { - let tip_hash = get_tip_state_hash(chain, eth_rpc_url).await?.to_decimal(); - let (candidate_hash, candidate_proof) = query_candidate(rpc_url)?; - - if tip_hash == candidate_hash { - return Err("Candidate state is already verified".to_string()); +) -> Result<(MinaStateProof, MinaStatePubInputs), String> { + let bridge_tip_state_hash = get_bridge_tip_hash(chain, eth_rpc_url).await?.0; + let ( + candidate_chain_states, + candidate_chain_state_hashes, + candidate_chain_ledger_hashes, + candidate_tip_proof, + ) = query_candidate_chain(rpc_url).await?; + + let candidate_tip_state_hash = candidate_chain_state_hashes + .last() + .ok_or("Missing candidate tip state hash".to_string())?; + + if bridge_tip_state_hash == *candidate_tip_state_hash { + return Err("Candidate chain is already verified".to_string()); } - let tip_state = query_state( - rpc_url, - state_query::Variables { - state_hash: encode_state_hash(&tip_hash)?, - }, - )?; - - let candidate_state = query_state( - rpc_url, - state_query::Variables { - state_hash: encode_state_hash(&candidate_hash)?, - }, - )?; - info!( - "Queried Mina candidate state 0x{} and its proof from Mainnet node", - Fp::from_str(&candidate_hash) - .map_err(|_| "Failed to decode canddiate state hash".to_string()) - .map(|hash| hash.to_hex_be())? - ); - - let tip_hash = serialize_state_hash(&tip_hash)?; - let tip_state = serialize_state(tip_state); - - let candidate_merkle_root = serialize_ledger_hash(&candidate_state)?; - - let candidate_hash = serialize_state_hash(&candidate_hash)?; - let candidate_state = serialize_state(candidate_state); - let candidate_proof = serialize_state_proof(&candidate_proof); - - let mut pub_input = candidate_merkle_root; - pub_input.extend(candidate_hash); - pub_input.extend(tip_hash); - pub_input.extend((candidate_state.len() as u32).to_be_bytes()); - pub_input.extend(candidate_state); - pub_input.extend((tip_state.len() as u32).to_be_bytes()); - pub_input.extend(tip_state); + let bridge_tip_state = query_state(rpc_url, &bridge_tip_state_hash).await?; - let pub_input = Some(pub_input); + info!("Queried Mina candidate chain with tip {candidate_tip_state_hash} and its proof"); - let proof_generator_addr = - Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; - Ok(VerificationData { - proving_system: ProvingSystemId::Mina, - proof: candidate_proof, - pub_input, - verification_key: None, - vm_program_code: None, - proof_generator_addr, - }) + Ok(( + MinaStateProof { + candidate_tip_proof, + candidate_chain_states, + bridge_tip_state, + }, + MinaStatePubInputs { + bridge_tip_state_hash, + candidate_chain_state_hashes, + candidate_chain_ledger_hashes, + }, + )) } pub async fn get_mina_proof_of_account( @@ -121,13 +99,9 @@ pub async fn get_mina_proof_of_account( chain: &Chain, eth_rpc_url: &str, ) -> Result { - let state_hash = get_tip_state_hash(chain, eth_rpc_url).await?; - let (ledger_hash, account_hash, merkle_proof, account_id_hash) = query_merkle( - rpc_url, - &StateHash::from_fp(state_hash).to_string(), - public_key, - ) - .await?; + let state_hash = get_bridge_tip_hash(chain, eth_rpc_url).await?.0; + let (ledger_hash, account_hash, merkle_proof, account_id_hash) = + query_merkle(rpc_url, &state_hash.to_string(), public_key).await?; let proof = merkle_proof .into_iter() @@ -142,7 +116,7 @@ pub async fn get_mina_proof_of_account( let pub_input = Some( [ - ledger_hash.to_bytes(), + ledger_hash.to_fp().unwrap().to_bytes(), // TODO(xqft): this is temporary account_hash.to_bytes(), account_id_hash.to_vec(), ] @@ -162,25 +136,51 @@ pub async fn get_mina_proof_of_account( }) } -pub fn query_state( +pub async fn query_state( rpc_url: &str, - variables: state_query::Variables, -) -> Result { + state_hash: &StateHash, +) -> Result { + let variables = state_query::Variables { + state_hash: state_hash.to_string(), + }; debug!("Querying state {}", variables.state_hash); - let client = reqwest::blocking::Client::new(); - let response = post_graphql_blocking::(&client, rpc_url, variables) + let client = reqwest::Client::new(); + let proof = post_graphql::(&client, rpc_url, variables) + .await .map_err(|err| err.to_string())? .data - .ok_or("Missing state query response data".to_string())?; - Ok(response.protocol_state) + .ok_or("Missing state query response data".to_string()) + .map(|response| response.protocol_state) + .and_then(|base64| { + BASE64_STANDARD + .decode(base64) + .map_err(|err| format!("Couldn't decode state from base64: {err}")) + }) + .and_then(|binprot| { + MinaStateProtocolStateValueStableV2::binprot_read(&mut binprot.as_slice()) + .map_err(|err| format!("Couldn't read state binprot: {err}")) + })?; + Ok(proof) } -pub fn query_candidate( +pub async fn query_candidate_chain( rpc_url: &str, -) -> Result<(StateHashAsDecimal, PrecomputedBlockProof), String> { +) -> Result< + ( + [MinaStateProtocolStateValueStableV2; BRIDGE_TRANSITION_FRONTIER_LEN], + [StateHash; BRIDGE_TRANSITION_FRONTIER_LEN], + [LedgerHash; BRIDGE_TRANSITION_FRONTIER_LEN], + MinaBaseProofStableV2, + ), + String, +> { debug!("Querying for candidate state"); let client = reqwest::blocking::Client::new(); - let variables = best_chain_query::Variables { max_length: 1 }; + let variables = best_chain_query::Variables { + max_length: BRIDGE_TRANSITION_FRONTIER_LEN + .try_into() + .map_err(|_| "Transition frontier length conversion failure".to_string())?, + }; let response = post_graphql_blocking::(&client, rpc_url, variables) .map_err(|err| err.to_string())? .data @@ -188,18 +188,70 @@ pub fn query_candidate( let best_chain = response .best_chain .ok_or("Missing best chain field".to_string())?; - let tip = best_chain.first().ok_or("Missing best chain".to_string())?; - let state_hash_field = tip.state_hash_field.clone(); - let protocol_state_proof = tip + if best_chain.len() != BRIDGE_TRANSITION_FRONTIER_LEN { + return Err(format!( + "Not enough blocks ({}) were returned from query", + best_chain.len() + )); + } + let chain_state_hashes: [StateHash; BRIDGE_TRANSITION_FRONTIER_LEN] = best_chain + .iter() + .map(|state| state.state_hash.clone()) + .collect::>() + .try_into() + .map_err(|_| "Failed to convert chain state hashes vector into array".to_string())?; + let chain_ledger_hashes: [LedgerHash; BRIDGE_TRANSITION_FRONTIER_LEN] = best_chain + .iter() + .map(|state| { + state + .protocol_state + .blockchain_state + .staged_ledger_hash + .clone() + }) + .collect::>() + .try_into() + .map_err(|_| "Failed to convert chain ledger hashes vector into array".to_string())?; + + let chain_states = join_all( + chain_state_hashes + .iter() + .map(|state_hash| query_state(rpc_url, state_hash)), + ) + .await + .into_iter() + .collect::, _>>() + .and_then(|states| { + states + .try_into() + .map_err(|_| "Couldn't convert vector of states to array".to_string()) + })?; + + let tip = best_chain.last().ok_or("Missing best chain".to_string())?; + let tip_state_proof = tip .protocol_state_proof .base64 .clone() - .ok_or("No protocol state proof".to_string())?; - - Ok((state_hash_field, protocol_state_proof)) + .ok_or("No tip state proof".to_string()) + .and_then(|base64| { + BASE64_URL_SAFE + .decode(base64) + .map_err(|err| format!("Couldn't decode state proof from base64: {err}")) + }) + .and_then(|binprot| { + MinaBaseProofStableV2::binprot_read(&mut binprot.as_slice()) + .map_err(|err| format!("Couldn't read state proof binprot: {err}")) + })?; + + Ok(( + chain_states, + chain_state_hashes, + chain_ledger_hashes, + tip_state_proof, + )) } -pub async fn query_root(rpc_url: &str, length: usize) -> Result { +pub async fn query_root(rpc_url: &str, length: usize) -> Result { let client = reqwest::Client::new(); let variables = best_chain_query::Variables { max_length: length as i64, @@ -213,14 +265,14 @@ pub async fn query_root(rpc_url: &str, length: usize) -> Result Result<(Fp, Fp, Vec, [u8; 32]), String> { +) -> Result<(LedgerHash, Fp, Vec, [u8; 32]), String> { debug!("Querying merkle root, leaf and path of account {public_key} of state {state_hash}"); let client = reqwest::Client::new(); @@ -239,16 +291,11 @@ pub async fn query_merkle( .account .ok_or("Missing merkle query account".to_string())?; - let ledger_hash = MerkleRoot::from_str( - &response - .block - .protocol_state - .blockchain_state - .staged_ledger_hash, - ) - .map_err(|_| "Error deserializing leaf hash".to_string())? - .to_fp() - .map_err(|_| "Error decoding leaf hash into fp".to_string())?; + let ledger_hash = response + .block + .protocol_state + .blockchain_state + .staged_ledger_hash; let account_hash = Fp::from_str(&account.leaf_hash.ok_or("Missing merkle query leaf hash")?) .map_err(|_| "Error deserializing leaf hash".to_string())?; @@ -282,50 +329,3 @@ pub async fn query_merkle( Ok((ledger_hash, account_hash, merkle_proof, account_id_hash)) } - -fn serialize_state_hash(hash: &StateHashAsDecimal) -> Result, String> { - let bytes = Fp::from_str(hash) - .map_err(|_| "Failed to decode hash as a field element".to_string())? - .to_bytes(); - if bytes.len() != MINA_HASH_SIZE { - return Err(format!( - "Failed to encode hash as bytes: length is not exactly {MINA_HASH_SIZE}." - )); - } - Ok(bytes) -} - -fn serialize_state_proof(proof: &PrecomputedBlockProof) -> Vec { - proof.as_bytes().to_vec() -} - -fn serialize_state(state: ProtocolState) -> Vec { - state.as_bytes().to_vec() -} - -fn encode_state_hash(hash: &StateHashAsDecimal) -> Result { - Fp::from_str(hash) - .map_err(|_| "Failed to decode hash as a field element".to_string()) - .map(|fp| StateHash::from_fp(fp).to_string()) -} - -fn serialize_ledger_hash(state: &ProtocolState) -> Result, String> { - BASE64_STANDARD - .decode(state) - .map_err(|err| err.to_string()) - .and_then(|binprot| { - MinaStateProtocolStateValueStableV2::binprot_read(&mut binprot.as_slice()) - .map_err(|err| err.to_string()) - }) - .and_then(|state| { - state - .body - .blockchain_state - .staged_ledger_hash - .non_snark - .ledger_hash - .to_fp() - .map_err(|err| err.to_string()) - }) - .map(|ledger_hash| ledger_hash.to_bytes()) -} diff --git a/core/src/proof/mod.rs b/core/src/proof/mod.rs new file mode 100644 index 00000000..eeabed34 --- /dev/null +++ b/core/src/proof/mod.rs @@ -0,0 +1,5 @@ +/// Mina Proof of State definition. +pub mod state_proof; + +/// Proof (de)serialization. +pub mod serialization; diff --git a/core/src/proof/serialization.rs b/core/src/proof/serialization.rs new file mode 100644 index 00000000..6cd0ad54 --- /dev/null +++ b/core/src/proof/serialization.rs @@ -0,0 +1,58 @@ +use mina_p2p_messages::{ + bigint, + v2::{DataHashLibStateHashStableV1, LedgerHash, MinaBaseLedgerHash0StableV1, StateHash}, +}; +use serde::{Deserialize, Serialize}; + +/// Simple serialization for types that need to be deserialized in Ethereum. +pub struct EVMSerialize; + +impl serde_with::SerializeAs for EVMSerialize { + fn serialize_as(val: &StateHash, serializer: S) -> Result + where + S: serde::Serializer, + { + let bytes: [u8; 32] = val + .0 + .as_ref() + .try_into() + .map_err(serde::ser::Error::custom)?; + bytes.serialize(serializer) + } +} + +impl<'de> serde_with::DeserializeAs<'de, StateHash> for EVMSerialize { + fn deserialize_as(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let bytes = <[u8; 32]>::deserialize(deserializer)?; + let bigint = bigint::BigInt::new(bytes.into()); + Ok(StateHash::from(DataHashLibStateHashStableV1(bigint))) + } +} + +impl serde_with::SerializeAs for EVMSerialize { + fn serialize_as(val: &LedgerHash, serializer: S) -> Result + where + S: serde::Serializer, + { + let bytes: [u8; 32] = val + .0 + .as_ref() + .try_into() + .map_err(serde::ser::Error::custom)?; + bytes.serialize(serializer) + } +} + +impl<'de> serde_with::DeserializeAs<'de, LedgerHash> for EVMSerialize { + fn deserialize_as(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let bytes = <[u8; 32]>::deserialize(deserializer)?; + let bigint = bigint::BigInt::new(bytes.into()); + Ok(LedgerHash::from(MinaBaseLedgerHash0StableV1(bigint))) + } +} diff --git a/core/src/proof/state_proof.rs b/core/src/proof/state_proof.rs new file mode 100644 index 00000000..8ed9f33d --- /dev/null +++ b/core/src/proof/state_proof.rs @@ -0,0 +1,40 @@ +use mina_p2p_messages::v2::{ + LedgerHash, MinaBaseProofStableV2, MinaStateProtocolStateValueStableV2, StateHash, +}; +use serde::{Deserialize, Serialize}; +use serde_with::serde_as; + +use crate::{proof::serialization::EVMSerialize, utils::constants::BRIDGE_TRANSITION_FRONTIER_LEN}; + +#[serde_as] +#[derive(Serialize, Deserialize)] +pub struct MinaStatePubInputs { + /// The hash of the bridge's transition frontier tip state. Used for making sure that we're + /// checking if a candidate tip is better than the latest bridged tip. + #[serde_as(as = "EVMSerialize")] + pub bridge_tip_state_hash: StateHash, + /// The state hashes of the candidate chain. + #[serde_as(as = "[EVMSerialize; BRIDGE_TRANSITION_FRONTIER_LEN]")] + pub candidate_chain_state_hashes: [StateHash; BRIDGE_TRANSITION_FRONTIER_LEN], + /// The ledger hashes of the candidate chain. The ledger hashes are the root of a Merkle tree + /// where the leafs are Mina account hashes. Used for account verification. + #[serde_as(as = "[EVMSerialize; BRIDGE_TRANSITION_FRONTIER_LEN]")] + pub candidate_chain_ledger_hashes: [LedgerHash; BRIDGE_TRANSITION_FRONTIER_LEN], +} + +#[derive(Serialize, Deserialize)] +pub struct MinaStateProof { + /// The state proof of the tip state (latest state of the chain, or "transition frontier"). If + /// this state is valid, then all previous states are valid thanks to Pickles recursion. + pub candidate_tip_proof: MinaBaseProofStableV2, + /// The latest state of the candidate chain. Used for consensus checks needed to be done as + /// part of state verification to ensure that the candidate tip is better than the bridged tip. + /// We take an array of states to ensure that the root state (oldest state on the chain) is + /// relatively (sufficiently) finalized. + pub candidate_chain_states: + [MinaStateProtocolStateValueStableV2; BRIDGE_TRANSITION_FRONTIER_LEN], + /// The latest state of the previously bridged chain, the latter also called the bridge's + /// transition frontier. Used for consensus checks needed to be done as part of state + /// verification to ensure that the candidate tip is better than the bridged tip. + pub bridge_tip_state: MinaStateProtocolStateValueStableV2, +} diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index e125f883..3e1c7707 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -7,12 +7,17 @@ use alloy::providers::ProviderBuilder; use alloy::sol; use ethers::{abi::AbiEncode, prelude::*}; use k256::ecdsa::SigningKey; -use kimchi::o1_utils::FieldHelpers; use log::{debug, error, info}; -use mina_curves::pasta::Fp; - -use crate::utils::constants::{ - ANVIL_CHAIN_ID, BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, HOLESKY_CHAIN_ID, +use mina_p2p_messages::v2::StateHash; +use serde::{Deserialize, Serialize}; +use serde_with::serde_as; + +use crate::{ + proof::{serialization::EVMSerialize, state_proof::MinaStatePubInputs}, + utils::constants::{ + ANVIL_CHAIN_ID, BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, + BRIDGE_TRANSITION_FRONTIER_LEN, HOLESKY_CHAIN_ID, + }, }; abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); @@ -29,6 +34,10 @@ sol!( "abi/MinaBridge.json" ); +#[serde_as] +#[derive(Serialize, Deserialize)] +pub struct EVMStateHash(#[serde_as(as = "EVMSerialize")] pub StateHash); + pub struct MinaBridgeConstructorArgs { aligned_service_addr: alloy::primitives::Address, root_state_hash: alloy::primitives::FixedBytes<32>, @@ -51,13 +60,13 @@ impl MinaBridgeConstructorArgs { } } -pub async fn update_tip( +pub async fn update_chain( verification_data: AlignedVerificationData, - pub_input: Vec, + pub_input: &MinaStatePubInputs, chain: &Chain, eth_rpc_url: &str, wallet: Wallet, -) -> Result { +) -> Result<(), String> { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, @@ -68,6 +77,9 @@ pub async fn update_tip( }) .map_err(|err| err.to_string())?; + let serialized_pub_input = bincode::serialize(pub_input) + .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; + debug!("Creating contract instance"); let mina_bridge_contract = mina_bridge_contract(eth_rpc_url, bridge_eth_addr, chain, wallet)?; @@ -94,14 +106,14 @@ pub async fn update_tip( debug!("Updating contract"); - let update_call = mina_bridge_contract.update_tip_state( + let update_call = mina_bridge_contract.update_chain( proof_commitment, proving_system_aux_data_commitment, proof_generator_addr, batch_merkle_root, merkle_proof, index_in_batch.into(), - pub_input.into(), + serialized_pub_input.into(), ); // update call reverts if batch is not valid or proof isn't included in it. @@ -129,13 +141,25 @@ pub async fn update_tip( receipt.gas_used.ok_or("Missing gas used")? ); - debug!("Getting contract stored hash"); - let new_state_hash = mina_bridge_contract - .get_tip_state_hash() + info!("Checking that the state hashes were stored correctly.."); + + // TODO(xqft): do the same for ledger hashes + debug!("Getting chain state hashes"); + let new_chain_state_hashes = get_bridge_chain_state_hashes(chain, eth_rpc_url) .await .map_err(|err| err.to_string())?; - Fp::from_bytes(&new_state_hash).map_err(|err| err.to_string()) + if new_chain_state_hashes != pub_input.candidate_chain_state_hashes { + return Err("Stored chain state hashes don't match the candidate's".to_string()); + } + + let tip_state_hash = new_chain_state_hashes + .last() + .ok_or("Failed to get tip state hash".to_string())? + .clone(); + info!("Successfuly updated smart contract to verified chain of tip {tip_state_hash}"); + + Ok(()) } pub async fn update_account( @@ -219,7 +243,7 @@ pub async fn update_account( Ok(()) } -pub async fn get_tip_state_hash(chain: &Chain, eth_rpc_url: &str) -> Result { +pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, @@ -233,13 +257,54 @@ pub async fn get_tip_state_hash(chain: &Chain, eth_rpc_url: &str) -> Result Result<[StateHash; BRIDGE_TRANSITION_FRONTIER_LEN], String> { + let bridge_eth_addr = Address::from_str(match chain { + Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, + Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, + _ => { + error!("Unimplemented Ethereum contract on selected chain"); + unimplemented!() + } + }) + .map_err(|err| err.to_string())?; + + debug!("Creating contract instance"); + let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; + + mina_bridge_contract + .get_chain_state_hashes() + .await + .map_err(|err| format!("Could not call contract for state hashes: {err}")) + .and_then(|hashes| { + hashes + .into_iter() + .map(|hash| { + bincode::deserialize::(&hash) + .map_err(|err| format!("Failed to deserialize chain state hashes: {err}")) + .map(|hash| hash.0) + }) + .collect::, _>>() + }) + .and_then(|hashes| { + hashes + .try_into() + .map_err(|_| "Failed to convert chain state hashes vec into array".to_string()) + }) } pub async fn deploy_mina_bridge_contract( diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index b6b565bc..771de689 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -19,6 +19,7 @@ pub const MINA_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x42c6AA216f895278BAcfbD01E3aae2B99d2e4673"; +pub const BRIDGE_TRANSITION_FRONTIER_LEN: usize = 16; // Aligned related constants pub const PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; From 153b8049d6cca5bb7cb78fb493a30bf4145f6421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 5 Sep 2024 17:28:33 -0300 Subject: [PATCH 24/46] Remove account hashes from contract storage (#331) * Added merkle query * Rename query_and_serialize * WIP merkle query * Fix test * WIP Account query * Finished account query * Fixed TokenId deserialization * Remove account query * Fix clippy * Removed account_inclusion crate * Take into account mina account proofs * Add CLI commands * Implement submission code for account proof * Add ledger hash to state verifier * Add accountIdHash and account verification feature for smart contract * Add eth call for update account * Fix clippy * Update makefile rules * Update specification * Added doc to smart contract * Fix clippy * Update README.md * Query candidate chain, use bincode * Update Makefile * Fix aligned sdk git dependency * Update cargo.lock * Define new state proof, serialize with bincode * Change proof field types * Refactor proof definition * Add entire states to Mina state proof * Change version of clap to work with aligned * Fix tip state * Change core crate name * Make serialization mod public * Add contract support for relative finalization * Fixed smart contract update function * Check state hashes * Fix hash store * Fix clippy * Remove account hash from contract storage * Fix clippy --- contract/src/MinaBridge.sol | 66 +++++++++++------------------- core/abi/MinaBridge.json | 2 +- core/src/main.rs | 12 ++++-- core/src/smart_contract_utility.rs | 55 +++++++------------------ 4 files changed, 48 insertions(+), 87 deletions(-) diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index b04980e3..fb4f9007 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -21,9 +21,6 @@ contract MinaBridge { /// the bridge's transition frontier). bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] chainLedgerHashes; - /// @notice mapping of a keccak256(TokenId) => verified account hash and its ledger hash. - mapping(bytes32 => Account.LedgerAccountPair) accounts; - /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; @@ -37,6 +34,11 @@ contract MinaBridge { return chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]; } + /// @notice Returns the last verified ledger hash. + function getTipLedgerHash() external view returns (bytes32) { + return chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]; + } + /// @notice Returns the latest verified chain state hashes. function getChainStateHashes() external @@ -46,27 +48,13 @@ contract MinaBridge { return chainStateHashes; } - /// @notice Returns the ledger hash and account state hash pair for - // a given account id. - function getLedgerAccountPair( - bytes32 accountIdHash - ) external view returns (Account.LedgerAccountPair memory) { - return accounts[accountIdHash]; - } - - /// @notice Checks if some account state is verified for the latest - // verified Mina state. - function isAccountUpdated( - bytes32 accountIdHash - ) external view returns (bool) { - return - accounts[accountIdHash].ledgerHash == - chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]; - } - - /// @notice Returns the last verified ledger hash. - function getTipLedgerHash() external view returns (bytes32) { - return chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]; + /// @notice Returns the latest verified chain ledger hashes. + function getChainLedgerHashes() + external + view + returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) + { + return chainLedgerHashes; } function updateChain( @@ -140,7 +128,7 @@ contract MinaBridge { } } - function updateAccount( + function isAccountVerified( bytes32 proofCommitment, bytes32 provingSystemAuxDataCommitment, bytes20 proofGeneratorAddr, @@ -148,7 +136,7 @@ contract MinaBridge { bytes memory merkleProof, uint256 verificationDataBatchIndex, bytes memory pubInput - ) external { + ) external view returns (bool) { bytes32 ledgerHash; bytes32 accountHash; bytes32 accountIdHash; @@ -160,23 +148,15 @@ contract MinaBridge { bytes32 pubInputCommitment = keccak256(pubInput); - bool isAccountVerified = aligned.verifyBatchInclusion( - proofCommitment, - pubInputCommitment, - provingSystemAuxDataCommitment, - proofGeneratorAddr, - batchMerkleRoot, - merkleProof, - verificationDataBatchIndex - ); - - if (isAccountVerified) { - accounts[accountIdHash] = Account.LedgerAccountPair( - ledgerHash, - accountHash + return + aligned.verifyBatchInclusion( + proofCommitment, + pubInputCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex ); - } else { - revert AccountIsNotValid(accountIdHash); - } } } diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index 5811e5c4..e32a99c8 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getLedgerAccountPair","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Account.LedgerAccountPair","components":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"},{"name":"accountHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isAccountUpdated","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AccountIsNotValid","inputs":[{"name":"accountIdHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161088b38038061088b83398101604081905261002f91610073565b602180546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b610794806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a92d923a1161005b578063a92d923a146100f9578063b81847451461010c578063be9c064314610114578063fb299cd81461017957600080fd5b806303f93e501461008d5780633886c09b146100ab578063461cede2146100c157806378dd3e16146100e4575b600080fd5b610095610181565b6040516100a291906104ca565b60405180910390f35b6100b36101bd565b6040519081526020016100a2565b6100d46100cf3660046104fc565b6101e3565b60405190151581526020016100a2565b6100f76100f23660046105b8565b61021b565b005b6100f76101073660046105b8565b610338565b6100b361049c565b61015e6101223660046104fc565b60408051808201909152600080825260208201525060009081526020808052604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016100a2565b6100b3601081565b6101896104ab565b604080516102008101918290529060009060109082845b8154815260200190600101908083116101a0575050505050905090565b600060106101cc600182610667565b601081106101dc576101dc61068c565b0154905090565b600060106101f2600182610667565b601081106102025761020261068c565b0154600092835260208052604090922054909114919050565b60008060006020840151925060408401519150606084015190506000848051906020012090506000602160009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d848e8e8e8e8e6040518863ffffffff1660e01b815260040161029097969594939291906106a2565b602060405180830381865afa1580156102ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d19190610735565b90508015610309576040805180820182528681526020808201878152600087815291805292902090518155905160019091015561032a565b60405163f63ab27560e01b8152600481018490526024015b60405180910390fd5b505050505050505050505050565b6020810151600061034b60016010610667565b6010811061035b5761035b61068c565b015481146103a65780600061037260016010610667565b601081106103825761038261068c565b015460405163177b002560e31b815260048101929092526024820152604401610321565b815160208301206021546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906103ea908d9086908e908e908e908e908e906004016106a2565b602060405180830381865afa158015610407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042b9190610735565b905080156104775760006010604086016102408701835b601081101561046d578251855581518455600194850194938401936020938401939092019101610442565b5050505050610490565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101cc60016010610667565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104f35781518352602092830192909101906001016104d4565b50505092915050565b60006020828403121561050e57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261053c57600080fd5b813567ffffffffffffffff8082111561055757610557610515565b604051601f8301601f19908116603f0116810190828211818310171561057f5761057f610515565b8160405283815286602085880101111561059857600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156105d357600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff19811681146105fe57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561062257600080fd5b61062e8b838c0161052b565b945060a08a0135935060c08a013591508082111561064b57600080fd5b506106588a828b0161052b565b91505092959891949750929550565b60008282101561068757634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156106fe57868101830151858201610100015282016106e1565b8181111561071157600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561074757600080fd5b8151801515811461075757600080fd5b939250505056fea2646970667358221220720dba81d52bcb30f9f53fc6aee296bd94264fa5ff08c96d235fc98ae90a208f64736f6c634300080c0033","sourceMap":"369:6018:64:-:0;;;1229:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1303:7;:57;;-1:-1:-1;;;;;;1303:57:64;-1:-1:-1;;;;;1303:57:64;;;;;1425:13;-1:-1:-1;1387:34:64;-1:-1:-1;569:2:64;1387:34;:::i;:::-;1370:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:6018:64;;-1:-1:-1;369:6018:64;14:351:66;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:66;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:66:o;370:222::-;410:4;438:1;435;432:8;429:131;;;482:10;477:3;473:20;470:1;463:31;517:4;514:1;507:15;545:4;542:1;535:15;429:131;-1:-1:-1;577:9:66;;370:222::o;597:127::-;658:10;653:3;649:20;646:1;639:31;689:4;686:1;679:15;713:4;710:1;703:15;597:127;369:6018:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a92d923a1161005b578063a92d923a146100f9578063b81847451461010c578063be9c064314610114578063fb299cd81461017957600080fd5b806303f93e501461008d5780633886c09b146100ab578063461cede2146100c157806378dd3e16146100e4575b600080fd5b610095610181565b6040516100a291906104ca565b60405180910390f35b6100b36101bd565b6040519081526020016100a2565b6100d46100cf3660046104fc565b6101e3565b60405190151581526020016100a2565b6100f76100f23660046105b8565b61021b565b005b6100f76101073660046105b8565b610338565b6100b361049c565b61015e6101223660046104fc565b60408051808201909152600080825260208201525060009081526020808052604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016100a2565b6100b3601081565b6101896104ab565b604080516102008101918290529060009060109082845b8154815260200190600101908083116101a0575050505050905090565b600060106101cc600182610667565b601081106101dc576101dc61068c565b0154905090565b600060106101f2600182610667565b601081106102025761020261068c565b0154600092835260208052604090922054909114919050565b60008060006020840151925060408401519150606084015190506000848051906020012090506000602160009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d848e8e8e8e8e6040518863ffffffff1660e01b815260040161029097969594939291906106a2565b602060405180830381865afa1580156102ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d19190610735565b90508015610309576040805180820182528681526020808201878152600087815291805292902090518155905160019091015561032a565b60405163f63ab27560e01b8152600481018490526024015b60405180910390fd5b505050505050505050505050565b6020810151600061034b60016010610667565b6010811061035b5761035b61068c565b015481146103a65780600061037260016010610667565b601081106103825761038261068c565b015460405163177b002560e31b815260048101929092526024820152604401610321565b815160208301206021546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc0906103ea908d9086908e908e908e908e908e906004016106a2565b602060405180830381865afa158015610407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042b9190610735565b905080156104775760006010604086016102408701835b601081101561046d578251855581518455600194850194938401936020938401939092019101610442565b5050505050610490565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101cc60016010610667565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104f35781518352602092830192909101906001016104d4565b50505092915050565b60006020828403121561050e57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261053c57600080fd5b813567ffffffffffffffff8082111561055757610557610515565b604051601f8301601f19908116603f0116810190828211818310171561057f5761057f610515565b8160405283815286602085880101111561059857600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156105d357600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff19811681146105fe57600080fd5b945060608801359350608088013567ffffffffffffffff8082111561062257600080fd5b61062e8b838c0161052b565b945060a08a0135935060c08a013591508082111561064b57600080fd5b506106588a828b0161052b565b91505092959891949750929550565b60008282101561068757634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b818110156106fe57868101830151858201610100015282016106e1565b8181111561071157600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561074757600080fd5b8151801515811461075757600080fd5b939250505056fea2646970667358221220720dba81d52bcb30f9f53fc6aee296bd94264fa5ff08c96d235fc98ae90a208f64736f6c634300080c0033","sourceMap":"369:6018:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2556:137;;;:::i;:::-;;;662:25:66;;;650:2;635:18;2556:137:64;516:177:66;2264:231:64;;;;;;:::i;:::-;;:::i;:::-;;;1048:14:66;;1041:22;1023:41;;1011:2;996:18;2264:231:64;883:187:66;5187:1198:64;;;;;;:::i;:::-;;:::i;:::-;;2699:2482;;;;;;:::i;:::-;;:::i;1505:135::-;;;:::i;1986:171::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;2127:23:64;;;;:8;:23;;;;;;;;2120:30;;;;;;;;;;;;;;;;;;;;1986:171;;;;;3172:13:66;;3154:32;;3242:4;3230:17;;;3224:24;3202:20;;;3195:54;;;;3127:18;1986:171:64;2936:319:66;515:56:64;;569:2;515:56;;1710:170;1788:46;;:::i;:::-;1850:23;;;;;;;;;;;-1:-1:-1;;1850:23:64;;-1:-1:-1;1850:23:64;;;;;;;;;;;;;;;;;;;;;;;;1710:170;:::o;2556:137::-;2607:7;2633:17;2651:34;2684:1;2633:17;2651:34;:::i;:::-;2633:53;;;;;;;:::i;:::-;;;2626:60;;2556:137;:::o;2264:231::-;2350:4;2435:17;2453:34;2486:1;2435:17;2453:34;:::i;:::-;2435:53;;;;;;;:::i;:::-;;;2385:23;;;;:8;:23;;;;;;:34;:103;;;;2264:231;-1:-1:-1;2264:231:64:o;5187:1198::-;5494:18;5522:19;5551:21;5639:4;5629:8;5625:19;5619:26;5605:40;;5693:4;5683:8;5679:19;5673:26;5658:41;;5749:4;5739:8;5735:19;5729:26;5712:43;;5775:26;5814:8;5804:19;;;;;;5775:48;;5834:22;5859:7;;;;;;;;;-1:-1:-1;;;;;5859:7:64;-1:-1:-1;;;;;5859:28:64;;5901:15;5930:18;5962:30;6006:18;6038:15;6067:11;6092:26;5859:269;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5834:294;;6143:17;6139:240;;;6202:96;;;;;;;;;;;;;;;;;;-1:-1:-1;6176:23:64;;;;;;;;;:122;;;;;;;;;;;6139:240;;;6336:32;;-1:-1:-1;;;6336:32:64;;;;;662:25:66;;;635:18;;6336:32:64;;;;;;;;6139:240;5484:901;;;;;5187:1198;;;;;;;:::o;2699:2482::-;3121:4;3107:19;;3101:26;3004:34;3223;3256:1;569:2;3223:34;:::i;:::-;3206:52;;;;;;;:::i;:::-;;;3164:26;:94;3147:297;;3323:26;3367:16;3384:34;3417:1;569:2;3384:34;:::i;:::-;3367:52;;;;;;;:::i;:::-;;;3290:143;;-1:-1:-1;;;3290:143:64;;;;;5329:25:66;;;;5370:18;;;5363:34;5302:18;;3290:143:64;5155:248:66;3147:297:64;3483:19;;;;;;3539:7;;:269;;-1:-1:-1;;;3539:269:64;;3454:26;;-1:-1:-1;;;;;3539:7:64;;:28;;:269;;3581:15;;3483:19;;3642:30;;3686:18;;3718:15;;3747:11;;3772:26;;3539:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3513:295;;3823:18;3819:1356;;;3961:21;4019:22;4309:2;4295:17;;4444:115;;;3961:21;4577:516;4638:30;4635:1;4632:37;4577:516;;;4767:18;;4747:39;;4940:19;;4919:41;;4895:1;4878:19;;;;5055:20;;;;4839:2;4822:20;;;;4997:21;;;;4697:9;4577:516;;;4581:50;;;;;3819:1356;;;5144:20;;-1:-1:-1;;;5144:20:64;;;;;;;;;;;3819:1356;2994:2187;;;2699:2482;;;;;;;:::o;1505:135::-;1555:7;;1598:34;1631:1;569:2;1598:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:66:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:180::-;757:6;810:2;798:9;789:7;785:23;781:32;778:52;;;826:1;823;816:12;778:52;-1:-1:-1;849:23:66;;698:180;-1:-1:-1;698:180:66:o;1075:127::-;1136:10;1131:3;1127:20;1124:1;1117:31;1167:4;1164:1;1157:15;1191:4;1188:1;1181:15;1207:718;1249:5;1302:3;1295:4;1287:6;1283:17;1279:27;1269:55;;1320:1;1317;1310:12;1269:55;1356:6;1343:20;1382:18;1419:2;1415;1412:10;1409:36;;;1425:18;;:::i;:::-;1500:2;1494:9;1468:2;1554:13;;-1:-1:-1;;1550:22:66;;;1574:2;1546:31;1542:40;1530:53;;;1598:18;;;1618:22;;;1595:46;1592:72;;;1644:18;;:::i;:::-;1684:10;1680:2;1673:22;1719:2;1711:6;1704:18;1765:3;1758:4;1753:2;1745:6;1741:15;1737:26;1734:35;1731:55;;;1782:1;1779;1772:12;1731:55;1846:2;1839:4;1831:6;1827:17;1820:4;1812:6;1808:17;1795:54;1893:1;1886:4;1881:2;1873:6;1869:15;1865:26;1858:37;1913:6;1904:15;;;;;;1207:718;;;;:::o;1930:1001::-;2061:6;2069;2077;2085;2093;2101;2109;2162:3;2150:9;2141:7;2137:23;2133:33;2130:53;;;2179:1;2176;2169:12;2130:53;2202:23;;;-1:-1:-1;2272:2:66;2257:18;;2244:32;;-1:-1:-1;2326:2:66;2311:18;;2298:32;-1:-1:-1;;2359:43:66;;2349:54;;2339:82;;2417:1;2414;2407:12;2339:82;2440:5;-1:-1:-1;2492:2:66;2477:18;;2464:32;;-1:-1:-1;2547:3:66;2532:19;;2519:33;2571:18;2601:14;;;2598:34;;;2628:1;2625;2618:12;2598:34;2651:49;2692:7;2683:6;2672:9;2668:22;2651:49;:::i;:::-;2641:59;;2747:3;2736:9;2732:19;2719:33;2709:43;;2805:3;2794:9;2790:19;2777:33;2761:49;;2835:2;2825:8;2822:16;2819:36;;;2851:1;2848;2841:12;2819:36;;2874:51;2917:7;2906:8;2895:9;2891:24;2874:51;:::i;:::-;2864:61;;;1930:1001;;;;;;;;;;:::o;3442:222::-;3482:4;3510:1;3507;3504:8;3501:131;;;3554:10;3549:3;3545:20;3542:1;3535:31;3589:4;3586:1;3579:15;3617:4;3614:1;3607:15;3501:131;-1:-1:-1;3649:9:66;;3442:222::o;3669:127::-;3730:10;3725:3;3721:20;3718:1;3711:31;3761:4;3758:1;3751:15;3785:4;3782:1;3775:15;3801:1067;4116:6;4105:9;4098:25;4079:4;4142:2;4180:6;4175:2;4164:9;4160:18;4153:34;4223:6;4218:2;4207:9;4203:18;4196:34;4282:26;4278:31;4270:6;4266:44;4261:2;4250:9;4246:18;4239:72;4348:6;4342:3;4331:9;4327:19;4320:35;4392:3;4386;4375:9;4371:19;4364:32;4425:6;4419:13;4469:6;4463:3;4452:9;4448:19;4441:35;4494:1;4504:141;4518:6;4515:1;4512:13;4504:141;;;4614:14;;;4610:23;;4604:30;4579:17;;;4598:3;4575:27;4568:67;4533:10;;4504:141;;;4663:6;4660:1;4657:13;4654:92;;;4734:1;4728:3;4719:6;4708:9;4704:22;4700:32;4693:43;4654:92;-1:-1:-1;4849:3:66;4834:19;;4827:35;;;;-1:-1:-1;;4807:2:66;4786:15;;;;-1:-1:-1;;4782:29:66;4767:45;4814:3;4763:55;;3801:1067;-1:-1:-1;;;;;;3801:1067:66:o;4873:277::-;4940:6;4993:2;4981:9;4972:7;4968:23;4964:32;4961:52;;;5009:1;5006;4999:12;4961:52;5041:9;5035:16;5094:5;5087:13;5080:21;5073:5;5070:32;5060:60;;5116:1;5113;5106:12;5060:60;5139:5;4873:277;-1:-1:-1;;;4873:277:66:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainStateHashes()":"03f93e50","getLedgerAccountPair(bytes32)":"be9c0643","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isAccountUpdated(bytes32)":"461cede2","updateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"78dd3e16","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"getLedgerAccountPair\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"accountHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Account.LedgerAccountPair\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"accountIdHash\",\"type\":\"bytes32\"}],\"name\":\"isAccountUpdated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getLedgerAccountPair(bytes32)\":{\"notice\":\"Returns the ledger hash and account state hash pair for\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isAccountUpdated(bytes32)\":{\"notice\":\"Checks if some account state is verified for the latest\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/Account.sol\":{\"keccak256\":\"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4\",\"dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x802285f337f8f6ea1b3304fb1165da013dc234e82f374fa3a6d04754f46c8a92\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5837b7787c6097f546c73edde15993cb635ced545f8411d3fae9c46fa6aaf44d\",\"dweb:/ipfs/QmZGBDR8z3UQCe3X7YpDfN7uK5eqPQrcAZ5fewc3wWrEvU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"type":"error","name":"AccountIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getLedgerAccountPair","outputs":[{"internalType":"struct Account.LedgerAccountPair","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"},{"internalType":"bytes32","name":"accountHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"accountIdHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isAccountUpdated","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateAccount"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getLedgerAccountPair(bytes32)":{"notice":"Returns the ledger hash and account state hash pair for"},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isAccountUpdated(bytes32)":{"notice":"Checks if some account state is verified for the latest"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/Account.sol":{"keccak256":"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91","urls":["bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4","dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0x802285f337f8f6ea1b3304fb1165da013dc234e82f374fa3a6d04754f46c8a92","urls":["bzz-raw://5837b7787c6097f546c73edde15993cb635ced545f8411d3fae9c46fa6aaf44d","dweb:/ipfs/QmZGBDR8z3UQCe3X7YpDfN7uK5eqPQrcAZ5fewc3wWrEvU"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isAccountVerified","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516107a43803806107a483398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6106ad806100f76000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806361f0e7181161005b57806361f0e718146100be578063a92d923a146100e1578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a05780633886c09b146100a8575b600080fd5b61008a610106565b60405161009791906103fc565b60405180910390f35b61008a610142565b6100b0610178565b604051908152602001610097565b6100d16100cc3660046104d1565b61019e565b6040519015158152602001610097565b6100f46100ef3660046104d1565b610263565b005b6100b06103ce565b6100b0601081565b61010e6103dd565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103dd565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b60006010610187600182610580565b60108110610197576101976105a5565b0154905090565b600080600080602085015192506040850151915060608501519050600085805190602001209050602060009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d838e8e8e8e8e6040518863ffffffff1660e01b815260040161021297969594939291906105bb565b602060405180830381865afa15801561022f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610253919061064e565b9c9b505050505050505050505050565b6020810151600061027660016010610580565b60108110610286576102866105a5565b015481146102d55780600061029d60016010610580565b601081106102ad576102ad6105a5565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc09061031c908d9086908e908e908e908e908e906004016105bb565b602060405180830381865afa158015610339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035d919061064e565b905080156103a95760006010604086016102408701835b601081101561039f578251855581518455600194850194938401936020938401939092019101610374565b50505050506103c2565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b60008061018760016010610580565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610425578151835260209283019290910190600101610406565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045557600080fd5b813567ffffffffffffffff808211156104705761047061042e565b604051601f8301601f19908116603f011681019082821181831017156104985761049861042e565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156104ec57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461051757600080fd5b945060608801359350608088013567ffffffffffffffff8082111561053b57600080fd5b6105478b838c01610444565b945060a08a0135935060c08a013591508082111561056457600080fd5b506105718a828b01610444565b91505092959891949750929550565b6000828210156105a057634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561061757868101830151858201610100015282016105fa565b8181111561062a57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561066057600080fd5b8151801515811461067057600080fd5b939250505056fea26469706673582212200de6fe76f788b59a7d48286dcde97996b77c2bc2a878889ad8abd89c101a22ee64736f6c634300080c0033","sourceMap":"369:5291:64:-:0;;;1074:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1148:7;:57;;-1:-1:-1;;;;;;1148:57:64;-1:-1:-1;;;;;1148:57:64;;;;;1270:13;-1:-1:-1;1232:34:64;-1:-1:-1;569:2:64;1232:34;:::i;:::-;1215:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:5291:64;;-1:-1:-1;369:5291:64;14:351:66;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:66;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:66:o;370:222::-;410:4;438:1;435;432:8;429:131;;;482:10;477:3;473:20;470:1;463:31;517:4;514:1;507:15;545:4;542:1;535:15;429:131;-1:-1:-1;577:9:66;;370:222::o;597:127::-;658:10;653:3;649:20;646:1;639:31;689:4;686:1;679:15;713:4;710:1;703:15;597:127;369:5291:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806361f0e7181161005b57806361f0e718146100be578063a92d923a146100e1578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a05780633886c09b146100a8575b600080fd5b61008a610106565b60405161009791906103fc565b60405180910390f35b61008a610142565b6100b0610178565b604051908152602001610097565b6100d16100cc3660046104d1565b61019e565b6040519015158152602001610097565b6100f46100ef3660046104d1565b610263565b005b6100b06103ce565b6100b0601081565b61010e6103dd565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103dd565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b60006010610187600182610580565b60108110610197576101976105a5565b0154905090565b600080600080602085015192506040850151915060608501519050600085805190602001209050602060009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d838e8e8e8e8e6040518863ffffffff1660e01b815260040161021297969594939291906105bb565b602060405180830381865afa15801561022f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610253919061064e565b9c9b505050505050505050505050565b6020810151600061027660016010610580565b60108110610286576102866105a5565b015481146102d55780600061029d60016010610580565b601081106102ad576102ad6105a5565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc09061031c908d9086908e908e908e908e908e906004016105bb565b602060405180830381865afa158015610339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035d919061064e565b905080156103a95760006010604086016102408701835b601081101561039f578251855581518455600194850194938401936020938401939092019101610374565b50505050506103c2565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b60008061018760016010610580565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610425578151835260209283019290910190600101610406565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045557600080fd5b813567ffffffffffffffff808211156104705761047061042e565b604051601f8301601f19908116603f011681019082821181831017156104985761049861042e565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156104ec57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461051757600080fd5b945060608801359350608088013567ffffffffffffffff8082111561053b57600080fd5b6105478b838c01610444565b945060a08a0135935060c08a013591508082111561056457600080fd5b506105718a828b01610444565b91505092959891949750929550565b6000828210156105a057634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561061757868101830151858201610100015282016105fa565b8181111561062a57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561066057600080fd5b8151801515811461067057600080fd5b939250505056fea26469706673582212200de6fe76f788b59a7d48286dcde97996b77c2bc2a878889ad8abd89c101a22ee64736f6c634300080c0033","sourceMap":"369:5291:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1753:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1994:172;;;:::i;1546:137::-;;;:::i;:::-;;;662:25:66;;;650:2;635:18;1546:137:64;516:177:66;4660:998:64;;;;;;:::i;:::-;;:::i;:::-;;;2724:14:66;;2717:22;2699:41;;2687:2;2672:18;4660:998:64;2559:187:66;2172:2482:64;;;;;;:::i;:::-;;:::i;:::-;;1350:135;;;:::i;515:56::-;;569:2;515:56;;1753:170;1831:46;;:::i;:::-;1893:23;;;;;;;;;;;-1:-1:-1;;1893:23:64;;-1:-1:-1;1893:23:64;;;;;;;;;;;;;;;;;;;;;;;;1753:170;:::o;1994:172::-;2073:46;;:::i;:::-;2135:24;;;;;;;;;;2142:17;2135:24;;;;;;2142:17;;2135:24;;;;;;;;;;;;;;;;1994:172;:::o;1546:137::-;1597:7;1623:17;1641:34;1674:1;1623:17;1641:34;:::i;:::-;1623:53;;;;;;;:::i;:::-;;;1616:60;;1546:137;:::o;4660:998::-;4975:4;4991:18;5019:19;5048:21;5136:4;5126:8;5122:19;5116:26;5102:40;;5190:4;5180:8;5176:19;5170:26;5155:41;;5246:4;5236:8;5232:19;5226:26;5209:43;;5272:26;5311:8;5301:19;;;;;;5272:48;;5350:7;;;;;;;;;-1:-1:-1;;;;;5350:7:64;-1:-1:-1;;;;;5350:28:64;;5396:15;5429:18;5465:30;5513:18;5549:15;5582:11;5611:26;5350:301;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5331:320;4660:998;-1:-1:-1;;;;;;;;;;;;4660:998:64:o;2172:2482::-;2594:4;2580:19;;2574:26;2477:34;2696;2729:1;569:2;2696:34;:::i;:::-;2679:52;;;;;;;:::i;:::-;;;2637:26;:94;2620:297;;2796:26;2840:16;2857:34;2890:1;569:2;2857:34;:::i;:::-;2840:52;;;;;;;:::i;:::-;;;2763:143;;-1:-1:-1;;;2763:143:64;;;;;4820:25:66;;;;4861:18;;;4854:34;4793:18;;2763:143:64;;;;;;;2620:297;2956:19;;;;;;;;;;3012:7;;:269;;-1:-1:-1;;;3012:269:64;;2927:26;;-1:-1:-1;;;;;3012:7:64;;:28;;:269;;3054:15;;2956:19;;3115:30;;3159:18;;3191:15;;3220:11;;3245:26;;3012:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2986:295;;3296:18;3292:1356;;;3434:21;3492:22;3782:2;3768:17;;3917:115;;;3434:21;4050:516;4111:30;4108:1;4105:37;4050:516;;;4240:18;;4220:39;;4413:19;;4392:41;;4368:1;4351:19;;;;4528:20;;;;4312:2;4295:20;;;;4470:21;;;;4170:9;4050:516;;;4054:50;;;;;3292:1356;;;4617:20;;-1:-1:-1;;;4617:20:64;;;;;;;;;;;3292:1356;2467:2187;;;2172:2482;;;;;;;:::o;1350:135::-;1400:7;;1443:34;1476:1;569:2;1443:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:66:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:718;872:5;925:3;918:4;910:6;906:17;902:27;892:55;;943:1;940;933:12;892:55;979:6;966:20;1005:18;1042:2;1038;1035:10;1032:36;;;1048:18;;:::i;:::-;1123:2;1117:9;1091:2;1177:13;;-1:-1:-1;;1173:22:66;;;1197:2;1169:31;1165:40;1153:53;;;1221:18;;;1241:22;;;1218:46;1215:72;;;1267:18;;:::i;:::-;1307:10;1303:2;1296:22;1342:2;1334:6;1327:18;1388:3;1381:4;1376:2;1368:6;1364:15;1360:26;1357:35;1354:55;;;1405:1;1402;1395:12;1354:55;1469:2;1462:4;1454:6;1450:17;1443:4;1435:6;1431:17;1418:54;1516:1;1509:4;1504:2;1496:6;1492:15;1488:26;1481:37;1536:6;1527:15;;;;;;830:718;;;;:::o;1553:1001::-;1684:6;1692;1700;1708;1716;1724;1732;1785:3;1773:9;1764:7;1760:23;1756:33;1753:53;;;1802:1;1799;1792:12;1753:53;1825:23;;;-1:-1:-1;1895:2:66;1880:18;;1867:32;;-1:-1:-1;1949:2:66;1934:18;;1921:32;-1:-1:-1;;1982:43:66;;1972:54;;1962:82;;2040:1;2037;2030:12;1962:82;2063:5;-1:-1:-1;2115:2:66;2100:18;;2087:32;;-1:-1:-1;2170:3:66;2155:19;;2142:33;2194:18;2224:14;;;2221:34;;;2251:1;2248;2241:12;2221:34;2274:49;2315:7;2306:6;2295:9;2291:22;2274:49;:::i;:::-;2264:59;;2370:3;2359:9;2355:19;2342:33;2332:43;;2428:3;2417:9;2413:19;2400:33;2384:49;;2458:2;2448:8;2445:16;2442:36;;;2474:1;2471;2464:12;2442:36;;2497:51;2540:7;2529:8;2518:9;2514:24;2497:51;:::i;:::-;2487:61;;;1553:1001;;;;;;;;;;:::o;2933:222::-;2973:4;3001:1;2998;2995:8;2992:131;;;3045:10;3040:3;3036:20;3033:1;3026:31;3080:4;3077:1;3070:15;3108:4;3105:1;3098:15;2992:131;-1:-1:-1;3140:9:66;;2933:222::o;3160:127::-;3221:10;3216:3;3212:20;3209:1;3202:31;3252:4;3249:1;3242:15;3276:4;3273:1;3266:15;3292:1067;3607:6;3596:9;3589:25;3570:4;3633:2;3671:6;3666:2;3655:9;3651:18;3644:34;3714:6;3709:2;3698:9;3694:18;3687:34;3773:26;3769:31;3761:6;3757:44;3752:2;3741:9;3737:18;3730:72;3839:6;3833:3;3822:9;3818:19;3811:35;3883:3;3877;3866:9;3862:19;3855:32;3916:6;3910:13;3960:6;3954:3;3943:9;3939:19;3932:35;3985:1;3995:141;4009:6;4006:1;4003:13;3995:141;;;4105:14;;;4101:23;;4095:30;4070:17;;;4089:3;4066:27;4059:67;4024:10;;3995:141;;;4154:6;4151:1;4148:13;4145:92;;;4225:1;4219:3;4210:6;4199:9;4195:22;4191:32;4184:43;4145:92;-1:-1:-1;4340:3:66;4325:19;;4318:35;;;;-1:-1:-1;;4298:2:66;4277:15;;;;-1:-1:-1;;4273:29:66;4258:45;4305:3;4254:55;;3292:1067;-1:-1:-1;;;;;;3292:1067:66:o;4364:277::-;4431:6;4484:2;4472:9;4463:7;4459:23;4455:32;4452:52;;;4500:1;4497;4490:12;4452:52;4532:9;4526:16;4585:5;4578:13;4571:21;4564:5;4561:32;4551:60;;4607:1;4604;4597:12;4551:60;4630:5;4364:277;-1:-1:-1;;;4364:277:66:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isAccountVerified(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"61f0e718","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"isAccountVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/Account.sol\":{\"keccak256\":\"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4\",\"dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xf516fffa8a66e7285657ad61e2f4f7c0ba05bd52636fa7335540b5e100ab9a85\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://938a086943b7ce416d80d86cc77bad2db39ddc103e531dd312e26e83dc69c7f8\",\"dweb:/ipfs/QmT5xbLySqK1fjhMRGmPYZJvuzQx2gPU4dLSLKPyrekT65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"view","type":"function","name":"isAccountVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/Account.sol":{"keccak256":"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91","urls":["bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4","dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0xf516fffa8a66e7285657ad61e2f4f7c0ba05bd52636fa7335540b5e100ab9a85","urls":["bzz-raw://938a086943b7ce416d80d86cc77bad2db39ddc103e531dd312e26e83dc69c7f8","dweb:/ipfs/QmT5xbLySqK1fjhMRGmPYZJvuzQx2gPU4dLSLKPyrekT65"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file diff --git a/core/src/main.rs b/core/src/main.rs index 3031e5bc..8ce14fc1 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -142,12 +142,11 @@ async fn main() { process::exit(1); }); - smart_contract_utility::update_account( + let is_account_verified = smart_contract_utility::is_account_verified( verification_data, pub_input, &chain, ð_rpc_url, - wallet, ) .await .unwrap_or_else(|err| { @@ -155,7 +154,14 @@ async fn main() { process::exit(1); }); - info!("Success! verified Mina account state was stored in the bridge's smart contract"); + info!( + "Mina account {public_key} was {} on Aligned!", + if is_account_verified { + "verified" + } else { + "not verified" + } + ); } } diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index 3e1c7707..d996dfff 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -162,13 +162,12 @@ pub async fn update_chain( Ok(()) } -pub async fn update_account( +pub async fn is_account_verified( verification_data: AlignedVerificationData, pub_input: Vec, chain: &Chain, eth_rpc_url: &str, - wallet: Wallet, -) -> Result<(), String> { +) -> Result { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, @@ -180,7 +179,7 @@ pub async fn update_account( .map_err(|err| err.to_string())?; debug!("Creating contract instance"); - let mina_bridge_contract = mina_bridge_contract(eth_rpc_url, bridge_eth_addr, chain, wallet)?; + let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; let AlignedVerificationData { verification_data_commitment, @@ -203,44 +202,20 @@ pub async fn update_account( .. } = verification_data_commitment; - debug!("Updating contract"); - - let update_call = mina_bridge_contract.update_account( - proof_commitment, - proving_system_aux_data_commitment, - proof_generator_addr, - batch_merkle_root, - merkle_proof, - index_in_batch.into(), - pub_input.into(), - ); - // update call reverts if batch is not valid or proof isn't included in it. + debug!("Calling contract"); - info!( - "Estimated gas cost: {}", - update_call - .estimate_gas() - .await - .map_err(|err| err.to_string())? - ); - - let pending_tx = update_call.send().await.map_err(|err| err.to_string())?; - info!( - "Transaction {} was submitted and is now pending", - pending_tx.tx_hash().encode_hex() - ); - - let receipt = pending_tx + mina_bridge_contract + .is_account_verified( + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + batch_merkle_root, + merkle_proof, + index_in_batch.into(), + pub_input.into(), + ) .await - .map_err(|err| err.to_string())? - .ok_or("Missing transaction receipt")?; - - info!( - "Transaction mined! final gas cost: {}", - receipt.gas_used.ok_or("Missing gas used")? - ); - - Ok(()) + .map_err(|err| err.to_string()) } pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result { From be70567cc386d917ec941afb7584dae6caf9ec8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 6 Sep 2024 11:44:55 -0300 Subject: [PATCH 25/46] Use new GraphQL API for account inclusion (#332) * Added merkle query * Rename query_and_serialize * WIP merkle query * Fix test * WIP Account query * Finished account query * Fixed TokenId deserialization * Remove account query * Fix clippy * Removed account_inclusion crate * Take into account mina account proofs * Add CLI commands * Implement submission code for account proof * Add ledger hash to state verifier * Add accountIdHash and account verification feature for smart contract * Add eth call for update account * Fix clippy * Update makefile rules * Update specification * Added doc to smart contract * Fix clippy * Update README.md * Query candidate chain, use bincode * Update Makefile * Fix aligned sdk git dependency * Update cargo.lock * Define new state proof, serialize with bincode * Change proof field types * Refactor proof definition * Add entire states to Mina state proof * Change version of clap to work with aligned * Fix tip state * Change core crate name * Make serialization mod public * Add contract support for relative finalization * Fixed smart contract update function * Check state hashes * Fix hash store * Fix clippy * Remove account hash from contract storage * Fix clippy * New account proof WIP * Finish new account proof * Remove unused dependencies * Add new schema * Intergrate new account query schema * Change mina proof to store account * Replace ledger hash with Fp * Update comment * Fix variable name * Change staged ledger hash to snarked * Fix clippy --- .gitignore | 6 +- Makefile | 2 +- contract_deployer/Cargo.lock | 32 +-- core/Cargo.lock | 108 ++++---- core/Cargo.toml | 4 +- core/src/aligned_polling_service.rs | 81 +++--- core/src/graphql/account_query.graphql | 16 ++ core/src/graphql/best_chain_query.graphql | 2 +- core/src/graphql/merkle_query.graphql | 16 -- core/src/graphql/mina_schema.json | 320 ++++++++++++++++++++++ core/src/main.rs | 81 +++--- core/src/mina_polling_service.rs | 149 +++++----- core/src/proof/account_proof.rs | 44 +++ core/src/proof/mod.rs | 12 + core/src/proof/serialization.rs | 48 ++++ core/src/proof/state_proof.rs | 2 +- 16 files changed, 657 insertions(+), 266 deletions(-) create mode 100644 core/src/graphql/account_query.graphql delete mode 100644 core/src/graphql/merkle_query.graphql create mode 100644 core/src/proof/account_proof.rs diff --git a/.gitignore b/.gitignore index 9d4b2af2..4facfbb2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ .DS_Store mina_3_0_0_devnet -protocol_state.pub -protocol_state.proof +mina_state.pub +mina_state.proof +mina_account.pub +mina_account.proof aligned_verification_data .env nonce_*.bin diff --git a/Makefile b/Makefile index 74aee4a6..77a0d64c 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ submit_state: @cargo run --manifest-path core/Cargo.toml --release -- submit-state submit_account: - @cargo run --manifest-path core/Cargo.toml --release -- submit-account ${PUBLIC_KEY} + @cargo run --manifest-path core/Cargo.toml --release -- submit-account ${PUBLIC_KEY} ${STATE_HASH} gen_contract_abi: forge build --root contract/ diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index cb9f2274..2ff7e48f 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -79,7 +79,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=account_inclusion_verifier#06bc10c8ad218e0e8df3ec98b69e6c59e188133a" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#a85d7f994a81678ced56168369dd54bdf0b446e1" dependencies = [ "ethers", "futures-util", @@ -1307,9 +1307,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.15" +version = "1.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +checksum = "e9d013ecb737093c0e86b151a7b837993cf9ec6c502946cfb44bedc392421e0b" dependencies = [ "jobserver", "libc", @@ -1349,9 +1349,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" dependencies = [ "clap_builder", "clap_derive", @@ -1359,9 +1359,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" dependencies = [ "anstream", "anstyle", @@ -3608,7 +3608,7 @@ dependencies = [ "rpassword", "serde", "serde_json", - "serde_with 1.14.0", + "serde_with 3.9.0", "sha3", "tokio", ] @@ -4819,9 +4819,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.35" +version = "0.38.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" dependencies = [ "bitflags 2.6.0", "errno", @@ -5103,9 +5103,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.127" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", "memchr", @@ -5700,9 +5700,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -5745,9 +5745,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", diff --git a/core/Cargo.lock b/core/Cargo.lock index d1478c06..eeb858b5 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -79,7 +79,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=account_inclusion_verifier#06bc10c8ad218e0e8df3ec98b69e6c59e188133a" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#a85d7f994a81678ced56168369dd54bdf0b446e1" dependencies = [ "ethers", "futures-util", @@ -381,7 +381,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -512,7 +512,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -529,7 +529,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "syn-solidity", "tiny-keccak", ] @@ -547,7 +547,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.76", + "syn 2.0.77", "syn-solidity", ] @@ -932,18 +932,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -974,7 +974,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1307,9 +1307,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.15" +version = "1.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +checksum = "e9d013ecb737093c0e86b151a7b837993cf9ec6c502946cfb44bedc392421e0b" dependencies = [ "jobserver", "libc", @@ -1349,9 +1349,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" dependencies = [ "clap_builder", "clap_derive", @@ -1359,9 +1359,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" dependencies = [ "anstream", "anstyle", @@ -1378,7 +1378,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1666,7 +1666,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1688,7 +1688,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1751,7 +1751,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1937,7 +1937,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -2111,7 +2111,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.76", + "syn 2.0.77", "toml 0.8.19", "walkdir", ] @@ -2128,7 +2128,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -2153,7 +2153,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.76", + "syn 2.0.77", "tempfile", "thiserror", "tiny-keccak", @@ -2471,7 +2471,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3359,7 +3359,7 @@ checksum = "cb26336e6dc7cc76e7927d2c9e7e3bb376d7af65a6f56a0b16c47d18a9b1abc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3589,7 +3589,7 @@ dependencies = [ "rpassword", "serde", "serde_json", - "serde_with 1.14.0", + "serde_with 3.9.0", "sha3", "tokio", ] @@ -3754,7 +3754,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3880,7 +3880,7 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3906,7 +3906,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4138,7 +4138,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4176,7 +4176,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4272,7 +4272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4800,9 +4800,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.35" +version = "0.38.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" dependencies = [ "bitflags 2.6.0", "errno", @@ -5079,14 +5079,14 @@ checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "serde_json" -version = "1.0.127" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", "memchr", @@ -5164,7 +5164,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5396,7 +5396,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5438,9 +5438,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.76" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", @@ -5456,7 +5456,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5554,7 +5554,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5645,7 +5645,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5681,9 +5681,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -5726,9 +5726,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -5828,7 +5828,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6119,7 +6119,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "wasm-bindgen-shared", ] @@ -6153,7 +6153,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6511,7 +6511,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6531,7 +6531,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] diff --git a/core/Cargo.toml b/core/Cargo.toml index 2850b315..35cba1af 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -5,6 +5,7 @@ edition = "2021" [dependencies] serde = { version = "1.0", features = ["derive"] } +serde_with = "3.6.0" serde_json = "1.0" num-bigint = "0.4.3" rmp-serde = "1.1.2" @@ -21,7 +22,7 @@ ark-poly = { version = "0.3.0", features = ["parallel"] } ark-serialize = "0.3.0" mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "account_inclusion_verifier" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", @@ -41,7 +42,6 @@ alloy = { version = "0.2.1", features = ["full", "signer-keystore"] } clap = { version = "4.5.4", features = ["derive"] } sha3 = "0.10.8" bincode = "1.3.3" -serde_with = "1.10.0" futures = "0.3.30" [patch.crates-io] diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index 274fe7b2..4a327225 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -11,13 +11,12 @@ use ethers::{ }; use log::{error, info}; -use crate::proof::state_proof::{MinaStateProof, MinaStatePubInputs}; +use crate::proof::MinaProof; -/// Submits a Mina state proof to Aligned's batcher and waits until the batch is verified. +/// Submits a Mina Proof to Aligned's batcher and waits until the batch is verified. #[allow(clippy::too_many_arguments)] -pub async fn submit_state_proof( - proof: &MinaStateProof, - pub_input: &MinaStatePubInputs, +pub async fn submit( + proof: MinaProof, chain: &Chain, proof_generator_addr: &str, batcher_addr: &str, @@ -26,17 +25,41 @@ pub async fn submit_state_proof( wallet: Wallet, save_proof: bool, ) -> Result { - let proof = bincode::serialize(proof) - .map_err(|err| format!("Failed to serialize state proof: {err}"))?; - let pub_input = bincode::serialize(pub_input) - .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; + let (proof, pub_input, proving_system, proof_name, file_name) = match proof { + MinaProof::State((proof, pub_input)) => { + let proof = bincode::serialize(&proof) + .map_err(|err| format!("Failed to serialize state proof: {err}"))?; + let pub_input = bincode::serialize(&pub_input) + .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; + ( + proof, + pub_input, + ProvingSystemId::Mina, + "Mina Proof of State", + "mina_state", + ) + } + MinaProof::Account((proof, pub_input)) => { + let proof = bincode::serialize(&proof) + .map_err(|err| format!("Failed to serialize state proof: {err}"))?; + let pub_input = bincode::serialize(&pub_input) + .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; + ( + proof, + pub_input, + ProvingSystemId::MinaAccount, + "Mina Proof of Account", + "mina_account", + ) + } + }; if save_proof { - std::fs::write("./protocol_state.pub", &pub_input).unwrap_or_else(|err| { + std::fs::write(format!("./{file_name}.pub"), &pub_input).unwrap_or_else(|err| { error!("{}", err); process::exit(1); }); - std::fs::write("./protocol_state.proof", &proof).unwrap_or_else(|err| { + std::fs::write(format!("./{file_name}.proof"), &proof).unwrap_or_else(|err| { error!("{}", err); process::exit(1); }); @@ -46,7 +69,7 @@ pub async fn submit_state_proof( Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; let verification_data = VerificationData { - proving_system: ProvingSystemId::Mina, + proving_system, proof, pub_input: Some(pub_input), verification_key: None, @@ -57,9 +80,7 @@ pub async fn submit_state_proof( let wallet_address = wallet.address(); let nonce = get_nonce(eth_rpc_url, wallet_address, batcher_eth_addr).await?; - info!( - "Submitting Mina Proof of State into Aligned and waiting for the batch to be verified..." - ); + info!("Submitting {proof_name} into Aligned and waiting for the batch to be verified..."); submit_with_nonce( batcher_addr, eth_rpc_url, @@ -78,36 +99,6 @@ pub async fn submit_state_proof( }) } -/// Submits a Mina (state or account) proof to Aligned's batcher and waits until the batch is verified. -pub async fn submit( - mina_proof: &VerificationData, - chain: &Chain, - batcher_addr: &str, - batcher_eth_addr: &str, - eth_rpc_url: &str, - wallet: Wallet, -) -> Result { - let wallet_address = wallet.address(); - let nonce = get_nonce(eth_rpc_url, wallet_address, batcher_eth_addr).await?; - - let proof_type = match mina_proof.proving_system { - ProvingSystemId::Mina => "Mina Proof of State", - ProvingSystemId::MinaAccount => "Mina Proof of Account", - _ => return Err("Tried to submit a non Mina proof".to_string()), - }; - - info!("Submitting {proof_type} into Aligned and waiting for the batch to be verified..."); - submit_with_nonce(batcher_addr, eth_rpc_url, chain, mina_proof, wallet, nonce) - .await - .or_else(|err| { - let nonce_file = &get_nonce_file(wallet_address); - std::fs::remove_file(nonce_file) - .map_err(|err| format!("Error trying to remove nonce file: {err}"))?; - - Err(err) - }) -} - async fn submit_with_nonce( batcher_addr: &str, eth_rpc_url: &str, diff --git a/core/src/graphql/account_query.graphql b/core/src/graphql/account_query.graphql new file mode 100644 index 00000000..409a49f5 --- /dev/null +++ b/core/src/graphql/account_query.graphql @@ -0,0 +1,16 @@ +query AccountQuery($stateHash: String!, $publicKey: String!) { + encodedSnarkedLedgerAccountMembership(accountInfos: {publicKey: $publicKey}, stateHash: $stateHash) { + account + merklePath { + left + right + } + } + block(stateHash: $stateHash) { + protocolState { + blockchainState { + snarkedLedgerHash + } + } + } +} diff --git a/core/src/graphql/best_chain_query.graphql b/core/src/graphql/best_chain_query.graphql index e8fe583d..e345247d 100644 --- a/core/src/graphql/best_chain_query.graphql +++ b/core/src/graphql/best_chain_query.graphql @@ -7,7 +7,7 @@ query BestChainQuery($maxLength: Int!) { } protocolState { blockchainState { - stagedLedgerHash + snarkedLedgerHash } } } diff --git a/core/src/graphql/merkle_query.graphql b/core/src/graphql/merkle_query.graphql deleted file mode 100644 index 06c81da1..00000000 --- a/core/src/graphql/merkle_query.graphql +++ /dev/null @@ -1,16 +0,0 @@ -query MerkleQuery($stateHash: String!, $publicKey: String!) { - account(publicKey: $publicKey) { - leafHash - merklePath { - left - right - } - } - block(stateHash: $stateHash) { - protocolState { - blockchainState { - stagedLedgerHash - } - } - } - } diff --git a/core/src/graphql/mina_schema.json b/core/src/graphql/mina_schema.json index c3c2d0b6..a6badbcf 100644 --- a/core/src/graphql/mina_schema.json +++ b/core/src/graphql/mina_schema.json @@ -6633,6 +6633,204 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "EncodedAccount", + "description": null, + "fields": [ + { + "name": "account", + "description": "Base64 encoded account as binable wire type", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merklePath", + "description": "Membership proof in the snarked ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MerklePathElement", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountInput", + "description": "An account with a public key and a token id", + "fields": [ + { + "name": "token", + "description": "Token id of the account", + "args": [], + "type": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publicKey", + "description": "Public key of the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "token", + "description": "Token id of the account", + "type": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": "Public key of the account", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MembershipInfo", + "description": null, + "fields": [ + { + "name": "accountBalance", + "description": "Account balance for a pk and token pair", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timingInfo", + "description": "Account timing according to chain state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountTiming", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": "current nonce related to the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merklePath", + "description": "Membership proof in the snarked ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MerklePathElement", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "WorkDescription", @@ -15495,6 +15693,128 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "snarkedLedgerAccountMembership", + "description": "obtain a membership proof for an account in the snarked ledger along with the account's balance, timing information, and nonce", + "args": [ + { + "name": "stateHash", + "description": "Hash of the snarked ledger to check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountInfos", + "description": "Token id of the account to check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MembershipInfo", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "encodedSnarkedLedgerAccountMembership", + "description": "obtain a membership proof for an account in the snarked ledger along with the accounts full information encoded as base64 binable type", + "args": [ + { + "name": "stateHash", + "description": "Hash of the snarked ledger to check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountInfos", + "description": "Token id of the account to check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EncodedAccount", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "genesisConstants", "description": "The constants used to determine the configuration of the genesis block and all of its transitive dependencies", diff --git a/core/src/main.rs b/core/src/main.rs index 8ce14fc1..eef375c6 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -1,7 +1,9 @@ use clap::{Parser, Subcommand}; use log::{error, info}; use mina_bridge_core::{ - aligned_polling_service, mina_polling_service, smart_contract_utility, + aligned_polling_service, mina_polling_service, + proof::MinaProof, + smart_contract_utility, utils::{env::EnvironmentVariables, wallet::get_wallet}, }; use std::{process, time::SystemTime}; @@ -11,16 +13,23 @@ use std::{process, time::SystemTime}; struct Cli { #[command(subcommand)] command: Command, - #[arg(short, long)] - save_proof: bool, } #[derive(Subcommand)] enum Command { - SubmitState, + SubmitState { + /// Write the proof into .proof and .pub files + #[arg(short, long)] + save_proof: bool, + }, SubmitAccount { - /// Write the proof into .proof and .pub files. + /// Write the proof into .proof and .pub files + #[arg(short, long)] + save_proof: bool, + /// Public key string of the account to verify public_key: String, + /// Hash of the state to verify the account for + state_hash: String, }, } @@ -51,7 +60,7 @@ async fn main() { }); match cli.command { - Command::SubmitState => { + Command::SubmitState { save_proof } => { let (proof, pub_input) = mina_polling_service::get_mina_proof_of_state(&rpc_url, &chain, ð_rpc_url) .await @@ -60,16 +69,15 @@ async fn main() { process::exit(1); }); - let verification_data = aligned_polling_service::submit_state_proof( - &proof, - &pub_input, + let verification_data = aligned_polling_service::submit( + MinaProof::State((proof, pub_input.clone())), &chain, &proof_generator_addr, &batcher_addr, &batcher_eth_addr, ð_rpc_url, wallet.clone(), - cli.save_proof, + save_proof, ) .await .unwrap_or_else(|err| { @@ -90,46 +98,34 @@ async fn main() { process::exit(1); }); } - Command::SubmitAccount { public_key } => { - let proof = mina_polling_service::get_mina_proof_of_account( - &public_key, - &rpc_url, - &proof_generator_addr, - &chain, - ð_rpc_url, - ) - .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - - if cli.save_proof { - std::fs::write( - format!("./account_{public_key}.pub"), - proof.pub_input.as_ref().unwrap_or_else(|| { - error!("Tried to save public inputs to file but they're missing"); - process::exit(1); - }), - ) - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - std::fs::write(format!("./account_{public_key}.proof"), &proof.proof) + Command::SubmitAccount { + save_proof, + public_key, + state_hash, + } => { + let (proof, pub_input) = + mina_polling_service::get_mina_proof_of_account(&public_key, &state_hash, &rpc_url) + .await .unwrap_or_else(|err| { error!("{}", err); process::exit(1); }); - } + + // Use for calling the smart contract to check if the account was verified on Aligned. + let serialized_pub_input = bincode::serialize(&pub_input).unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); let verification_data = aligned_polling_service::submit( - &proof, + MinaProof::Account((proof, pub_input)), &chain, + &proof_generator_addr, &batcher_addr, &batcher_eth_addr, ð_rpc_url, wallet.clone(), + save_proof, ) .await .unwrap_or_else(|err| { @@ -137,14 +133,9 @@ async fn main() { process::exit(1); }); - let pub_input = proof.pub_input.unwrap_or_else(|| { - error!("Missing public inputs from Mina account proof"); - process::exit(1); - }); - let is_account_verified = smart_contract_utility::is_account_verified( verification_data, - pub_input, + serialized_pub_input, &chain, ð_rpc_url, ) diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index 8fc74012..780618f5 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -1,25 +1,27 @@ use std::str::FromStr; -use aligned_sdk::core::types::{Chain, ProvingSystemId, VerificationData}; +use aligned_sdk::core::types::Chain; use base64::prelude::*; -use ethers::types::Address; use futures::future::join_all; use graphql_client::{ reqwest::{post_graphql, post_graphql_blocking}, GraphQLQuery, }; use kimchi::mina_curves::pasta::Fp; -use kimchi::o1_utils::FieldHelpers; use log::{debug, info}; use mina_p2p_messages::{ binprot::BinProtRead, - v2::{LedgerHash, MinaBaseProofStableV2, MinaStateProtocolStateValueStableV2, StateHash}, + v2::{ + LedgerHash, MinaBaseAccountBinableArgStableV2 as MinaAccount, MinaBaseProofStableV2, + MinaStateProtocolStateValueStableV2, StateHash, + }, }; -use mina_tree::MerklePath; -use sha3::Digest; use crate::{ - proof::state_proof::{MinaStateProof, MinaStatePubInputs}, + proof::{ + account_proof::{AccountHash, MerkleNode, MinaAccountProof, MinaAccountPubInputs}, + state_proof::{MinaStateProof, MinaStatePubInputs}, + }, smart_contract_utility::get_bridge_tip_hash, utils::constants::BRIDGE_TRANSITION_FRONTIER_LEN, }; @@ -47,11 +49,11 @@ struct BestChainQuery; #[derive(GraphQLQuery)] #[graphql( schema_path = "src/graphql/mina_schema.json", - query_path = "src/graphql/merkle_query.graphql" + query_path = "src/graphql/account_query.graphql" )] -/// A query for retrieving the merkle root, leaf and path of an account -/// included in some state. -struct MerkleQuery; +/// A query for retrieving an a Mina account state at some block, along with its ledger hash and +/// merkle path. +struct AccountQuery; pub async fn get_mina_proof_of_state( rpc_url: &str, @@ -94,46 +96,25 @@ pub async fn get_mina_proof_of_state( pub async fn get_mina_proof_of_account( public_key: &str, + state_hash: &str, rpc_url: &str, - proof_generator_addr: &str, - chain: &Chain, - eth_rpc_url: &str, -) -> Result { - let state_hash = get_bridge_tip_hash(chain, eth_rpc_url).await?.0; - let (ledger_hash, account_hash, merkle_proof, account_id_hash) = - query_merkle(rpc_url, &state_hash.to_string(), public_key).await?; +) -> Result<(MinaAccountProof, MinaAccountPubInputs), String> { + let (account, ledger_hash, merkle_path) = + query_account(rpc_url, state_hash, public_key).await?; - let proof = merkle_proof - .into_iter() - .flat_map(|node| { - match node { - MerklePath::Left(hash) => [vec![0], hash.to_bytes()], - MerklePath::Right(hash) => [vec![1], hash.to_bytes()], - } - .concat() - }) - .collect(); + // placeholder + let account_hash = AccountHash::new(&account); - let pub_input = Some( - [ - ledger_hash.to_fp().unwrap().to_bytes(), // TODO(xqft): this is temporary - account_hash.to_bytes(), - account_id_hash.to_vec(), - ] - .concat(), - ); - - let proof_generator_addr = - Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; - - Ok(VerificationData { - proving_system: ProvingSystemId::MinaAccount, - proof, - pub_input, - verification_key: None, - vm_program_code: None, - proof_generator_addr, - }) + Ok(( + MinaAccountProof { + merkle_path, + account, + }, + MinaAccountPubInputs { + ledger_hash, + account_hash, + }, + )) } pub async fn query_state( @@ -206,7 +187,7 @@ pub async fn query_candidate_chain( state .protocol_state .blockchain_state - .staged_ledger_hash + .snarked_ledger_hash .clone() }) .collect::>() @@ -268,64 +249,66 @@ pub async fn query_root(rpc_url: &str, length: usize) -> Result Result<(LedgerHash, Fp, Vec, [u8; 32]), String> { - debug!("Querying merkle root, leaf and path of account {public_key} of state {state_hash}"); +) -> Result<(MinaAccount, Fp, Vec), String> { + debug!( + "Querying account {public_key}, its merkle proof and ledger hash for state {state_hash}" + ); let client = reqwest::Client::new(); - let variables = merkle_query::Variables { + let variables = account_query::Variables { state_hash: state_hash.to_owned(), public_key: public_key.to_owned(), }; - let response = post_graphql::(&client, rpc_url, variables) + let response = post_graphql::(&client, rpc_url, variables) .await .map_err(|err| err.to_string())? .data .ok_or("Missing merkle query response data".to_string())?; - let account = response - .account - .ok_or("Missing merkle query account".to_string())?; + let membership = response + .encoded_snarked_ledger_account_membership + .first() + .ok_or("Failed to retrieve membership query field".to_string())?; + + let account = BASE64_STANDARD + .decode(&membership.account) + .map_err(|err| format!("Failed to decode account from base64: {err}")) + .and_then(|binprot| { + MinaAccount::binprot_read(&mut binprot.as_slice()) + .map_err(|err| format!("Failed to deserialize account binprot: {err}")) + })?; + + debug!( + "Queried account {} with token id {}", + account.public_key, + account.token_id //Into::::into(account.token_id.clone()) + ); let ledger_hash = response .block .protocol_state .blockchain_state - .staged_ledger_hash; - - let account_hash = Fp::from_str(&account.leaf_hash.ok_or("Missing merkle query leaf hash")?) - .map_err(|_| "Error deserializing leaf hash".to_string())?; + .snarked_ledger_hash + .to_fp() + .unwrap(); - let merkle_proof = account + let merkle_path = membership .merkle_path - .ok_or("Missing merkle query path")? - .into_iter() - .map(|node| -> Result { - match (node.left, node.right) { - (Some(fp_str), None) => Ok(MerklePath::Left(Fp::from_str(&fp_str)?)), - (None, Some(fp_str)) => Ok(MerklePath::Right(Fp::from_str(&fp_str)?)), + .iter() + .map(|node| -> Result { + match (node.left.as_ref(), node.right.as_ref()) { + (Some(fp_str), None) => Ok(MerkleNode::Left(Fp::from_str(fp_str)?)), + (None, Some(fp_str)) => Ok(MerkleNode::Right(Fp::from_str(fp_str)?)), _ => unreachable!(), } }) - .collect::, ()>>() + .collect::, ()>>() .map_err(|_| "Error deserializing merkle path nodes".to_string())?; - // TODO(xqft): This definition for account_hash is a placeholder until we have the GraphQL - // query for the complete data of an account. The real definition would be: - // - // let account_id_bytes = - // [account.compressed_public_key.x, account.compressed_public_key.is_odd, account.token_id] - // .map(to_bytes) - // .concat(); - // - // let account_id_hash = Keccak256(account_id) - let mut hasher = sha3::Keccak256::new(); - hasher.update(account_hash.to_bytes()); - let account_id_hash = hasher.finalize_reset().into(); - - Ok((ledger_hash, account_hash, merkle_proof, account_id_hash)) + Ok((account, ledger_hash, merkle_path)) } diff --git a/core/src/proof/account_proof.rs b/core/src/proof/account_proof.rs new file mode 100644 index 00000000..7f49d41c --- /dev/null +++ b/core/src/proof/account_proof.rs @@ -0,0 +1,44 @@ +use mina_curves::pasta::Fp; +use mina_p2p_messages::v2::MinaBaseAccountBinableArgStableV2 as MinaAccount; +use serde::{Deserialize, Serialize}; +use serde_with::serde_as; +use sha3::Digest; + +use crate::proof::serialization::EVMSerialize; + +#[serde_as] +#[derive(Serialize, Deserialize)] +pub enum MerkleNode { + Left(#[serde_as(as = "o1_utils::serialization::SerdeAs")] Fp), + Right(#[serde_as(as = "o1_utils::serialization::SerdeAs")] Fp), +} + +#[derive(Serialize, Deserialize)] +pub struct AccountHash(pub [u8; 32]); + +impl AccountHash { + // TODO(xqft): hash a Mina account + pub fn new(_account: &MinaAccount) -> Self { + let mut hasher = sha3::Keccak256::new(); + //hasher.update(account); + Self(hasher.finalize_reset().into()) + } +} + +#[serde_as] +#[derive(Serialize, Deserialize)] +pub struct MinaAccountPubInputs { + #[serde_as(as = "EVMSerialize")] + pub ledger_hash: Fp, + #[serde_as(as = "EVMSerialize")] + pub account_hash: AccountHash, +} + +#[serde_as] +#[derive(Serialize, Deserialize)] +pub struct MinaAccountProof { + /// Merkle path between the leaf hash (account hash) and the merkle root (ledger hash) + pub merkle_path: Vec, + /// The leaf of the merkle tree. + pub account: MinaAccount, +} diff --git a/core/src/proof/mod.rs b/core/src/proof/mod.rs index eeabed34..a29f9a69 100644 --- a/core/src/proof/mod.rs +++ b/core/src/proof/mod.rs @@ -1,5 +1,17 @@ +use account_proof::{MinaAccountProof, MinaAccountPubInputs}; +use state_proof::{MinaStateProof, MinaStatePubInputs}; + +/// Mina Proof of Account definition. +pub mod account_proof; /// Mina Proof of State definition. pub mod state_proof; +// TODO(xqft): we should fix this lint instead +#[allow(clippy::large_enum_variant)] +pub enum MinaProof { + State((MinaStateProof, MinaStatePubInputs)), + Account((MinaAccountProof, MinaAccountPubInputs)), +} + /// Proof (de)serialization. pub mod serialization; diff --git a/core/src/proof/serialization.rs b/core/src/proof/serialization.rs index 6cd0ad54..19183ddc 100644 --- a/core/src/proof/serialization.rs +++ b/core/src/proof/serialization.rs @@ -1,9 +1,13 @@ +use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; +use mina_curves::pasta::Fp; use mina_p2p_messages::{ bigint, v2::{DataHashLibStateHashStableV1, LedgerHash, MinaBaseLedgerHash0StableV1, StateHash}, }; use serde::{Deserialize, Serialize}; +use super::account_proof::AccountHash; + /// Simple serialization for types that need to be deserialized in Ethereum. pub struct EVMSerialize; @@ -56,3 +60,47 @@ impl<'de> serde_with::DeserializeAs<'de, LedgerHash> for EVMSerialize { Ok(LedgerHash::from(MinaBaseLedgerHash0StableV1(bigint))) } } + +impl serde_with::SerializeAs for EVMSerialize { + fn serialize_as(val: &AccountHash, serializer: S) -> Result + where + S: serde::Serializer, + { + val.0.serialize(serializer) + } +} + +impl<'de> serde_with::DeserializeAs<'de, AccountHash> for EVMSerialize { + fn deserialize_as(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let bytes = <[u8; 32]>::deserialize(deserializer)?; + Ok(AccountHash(bytes)) + } +} + +impl serde_with::SerializeAs for EVMSerialize { + fn serialize_as(val: &Fp, serializer: S) -> Result + where + S: serde::Serializer, + { + let mut bytes = Vec::with_capacity(32); + val.serialize(&mut bytes) + .map_err(serde::ser::Error::custom)?; + let bytes: [u8; 32] = bytes.try_into().map_err(|_| { + serde::ser::Error::custom("failed to convert byte vector into 32 byte array") + })?; + bytes.serialize(serializer) + } +} + +impl<'de> serde_with::DeserializeAs<'de, Fp> for EVMSerialize { + fn deserialize_as(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let bytes = <[u8; 32]>::deserialize(deserializer)?; + Fp::deserialize(&mut &bytes[..]).map_err(serde::de::Error::custom) + } +} diff --git a/core/src/proof/state_proof.rs b/core/src/proof/state_proof.rs index 8ed9f33d..d650cc2c 100644 --- a/core/src/proof/state_proof.rs +++ b/core/src/proof/state_proof.rs @@ -7,7 +7,7 @@ use serde_with::serde_as; use crate::{proof::serialization::EVMSerialize, utils::constants::BRIDGE_TRANSITION_FRONTIER_LEN}; #[serde_as] -#[derive(Serialize, Deserialize)] +#[derive(Serialize, Deserialize, Clone)] pub struct MinaStatePubInputs { /// The hash of the bridge's transition frontier tip state. Used for making sure that we're /// checking if a candidate tip is better than the latest bridged tip. From d90b70297b26c4da60b8aeab3511d51a0da78868 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:56:33 -0300 Subject: [PATCH 26/46] Sync with Aligned 0.5 (#333) * Update Aligned * Make aligned SDK point to correct branch * Fix wallet chain ID * Update dependencies * Make aligned SDK point to mina branch --- contract_deployer/Cargo.lock | 128 ++++++++++++++++++---------- core/Cargo.lock | 128 ++++++++++++++++++---------- core/Cargo.toml | 1 + core/src/aligned_polling_service.rs | 21 ++--- core/src/utils/wallet.rs | 15 ++-- 5 files changed, 184 insertions(+), 109 deletions(-) diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index 2ff7e48f..0d5e4a46 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -14,19 +14,13 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" dependencies = [ "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -79,8 +73,9 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#a85d7f994a81678ced56168369dd54bdf0b446e1" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#6b062a76637f37442cc94c3fadfec8cfb352748c" dependencies = [ + "ciborium", "ethers", "futures-util", "hex", @@ -88,6 +83,7 @@ dependencies = [ "log", "serde", "serde_json", + "serde_repr", "sha3", "tokio", "tokio-tungstenite 0.23.1", @@ -127,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb07629a5d0645d29f68d2fb6f4d0cf15c89ec0965be915f303967180929743f" +checksum = "2b4f201b0ac8f81315fbdc55269965a8ddadbc04ab47fa65a1a468f9a40f7a5f" dependencies = [ "num_enum", "strum 0.26.3", @@ -711,9 +707,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" [[package]] name = "ark-ec" @@ -985,17 +981,17 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -1307,9 +1303,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.16" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d013ecb737093c0e86b151a7b837993cf9ec6c502946cfb44bedc392421e0b" +checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" dependencies = [ "jobserver", "libc", @@ -1337,6 +1333,33 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + [[package]] name = "cipher" version = "0.4.4" @@ -1556,9 +1579,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -2375,7 +2398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" dependencies = [ "crc32fast", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] @@ -2574,9 +2597,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" [[package]] name = "glob" @@ -2695,6 +2718,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hash32" version = "0.2.1" @@ -2965,9 +2998,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" dependencies = [ "bytes", "futures-channel", @@ -3123,9 +3156,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" [[package]] name = "is_terminal_polyfill" @@ -3591,6 +3624,7 @@ dependencies = [ "dotenv", "env_logger", "ethers", + "ethers-signers", "futures", "graphql_client", "hex", @@ -3613,15 +3647,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.8.0" @@ -4098,9 +4123,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "9c73c26c01b8c87956cea613c907c9d6ecffd8d18a2a5908e5de0adfaa185cea" dependencies = [ "memchr", "thiserror", @@ -4970,11 +4995,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5083,18 +5108,18 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", @@ -5113,6 +5138,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "serde_spanned" version = "0.6.7" diff --git a/core/Cargo.lock b/core/Cargo.lock index eeb858b5..d295acdb 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -14,19 +14,13 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" dependencies = [ "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -79,8 +73,9 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#a85d7f994a81678ced56168369dd54bdf0b446e1" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#6b062a76637f37442cc94c3fadfec8cfb352748c" dependencies = [ + "ciborium", "ethers", "futures-util", "hex", @@ -88,6 +83,7 @@ dependencies = [ "log", "serde", "serde_json", + "serde_repr", "sha3", "tokio", "tokio-tungstenite 0.23.1", @@ -127,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb07629a5d0645d29f68d2fb6f4d0cf15c89ec0965be915f303967180929743f" +checksum = "2b4f201b0ac8f81315fbdc55269965a8ddadbc04ab47fa65a1a468f9a40f7a5f" dependencies = [ "num_enum", "strum 0.26.3", @@ -711,9 +707,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" [[package]] name = "ark-ec" @@ -985,17 +981,17 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -1307,9 +1303,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.16" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d013ecb737093c0e86b151a7b837993cf9ec6c502946cfb44bedc392421e0b" +checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" dependencies = [ "jobserver", "libc", @@ -1337,6 +1333,33 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + [[package]] name = "cipher" version = "0.4.4" @@ -1537,9 +1560,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -2356,7 +2379,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" dependencies = [ "crc32fast", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] @@ -2555,9 +2578,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" [[package]] name = "glob" @@ -2676,6 +2699,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hash32" version = "0.2.1" @@ -2946,9 +2979,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" dependencies = [ "bytes", "futures-channel", @@ -3104,9 +3137,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" [[package]] name = "is_terminal_polyfill" @@ -3572,6 +3605,7 @@ dependencies = [ "dotenv", "env_logger", "ethers", + "ethers-signers", "futures", "graphql_client", "hex", @@ -3594,15 +3628,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.8.0" @@ -4079,9 +4104,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "9c73c26c01b8c87956cea613c907c9d6ecffd8d18a2a5908e5de0adfaa185cea" dependencies = [ "memchr", "thiserror", @@ -4951,11 +4976,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5064,18 +5089,18 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", @@ -5094,6 +5119,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "serde_spanned" version = "0.6.7" diff --git a/core/Cargo.toml b/core/Cargo.toml index 35cba1af..01c84c94 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -28,6 +28,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ "rustls", "solc", ], git = "https://github.com/yetanotherco/ethers-rs.git" } +ethers-signers = { tag = "v2.0.15-fix-reconnections", git = "https://github.com/yetanotherco/ethers-rs.git" } rpassword = "7.3.1" tokio = "1.39.1" dotenv = "0.15.0" diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index 4a327225..5851fa99 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -2,7 +2,7 @@ use std::{path::PathBuf, process, str::FromStr}; use aligned_sdk::{ core::types::{AlignedVerificationData, Chain, ProvingSystemId, VerificationData}, - sdk::{get_next_nonce, submit_and_wait}, + sdk::{get_next_nonce, submit_and_wait_verification}, }; use ethers::{ core::k256::ecdsa::SigningKey, @@ -18,7 +18,7 @@ use crate::proof::MinaProof; pub async fn submit( proof: MinaProof, chain: &Chain, - proof_generator_addr: &str, + proof_generator_addr_str: &str, batcher_addr: &str, batcher_eth_addr: &str, eth_rpc_url: &str, @@ -66,7 +66,7 @@ pub async fn submit( } let proof_generator_addr = - Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; + Address::from_str(proof_generator_addr_str).map_err(|err| err.to_string())?; let verification_data = VerificationData { proving_system, @@ -88,6 +88,7 @@ pub async fn submit( &verification_data, wallet, nonce, + proof_generator_addr_str, ) .await .or_else(|err| { @@ -106,24 +107,20 @@ async fn submit_with_nonce( mina_proof: &VerificationData, wallet: Wallet, nonce: U256, + proof_generator_addr: &str, ) -> Result { - let aligned_verification_data = submit_and_wait( + submit_and_wait_verification( batcher_addr, eth_rpc_url, chain.to_owned(), mina_proof, + U256::MAX, wallet, nonce, + proof_generator_addr, ) .await - .map_err(|err| err.to_string())?; - - if let Some(aligned_verification_data) = aligned_verification_data { - info!("Batch was succesfully verified!"); - Ok(aligned_verification_data) - } else { - Err("Verification data was not returned when submitting the proof, possibly because the connection was closed sooner than expected.".to_string()) - } + .map_err(|err| format!("Verification data was not returned when submitting the proof: {err}")) } async fn get_nonce( diff --git a/core/src/utils/wallet.rs b/core/src/utils/wallet.rs index c3d2249e..34f543d8 100644 --- a/core/src/utils/wallet.rs +++ b/core/src/utils/wallet.rs @@ -5,9 +5,10 @@ use ethers::{ prelude::k256::ecdsa::SigningKey, signers::{LocalWallet, Wallet}, }; +use ethers_signers::Signer; use log::info; -use crate::utils::constants::ANVIL_PRIVATE_KEY; +use crate::utils::constants::{ANVIL_CHAIN_ID, ANVIL_PRIVATE_KEY, HOLESKY_CHAIN_ID}; pub fn get_wallet( chain: &Chain, @@ -29,9 +30,11 @@ pub fn get_wallet( Wallet::decrypt_keystore(keystore_path, password).map_err(|err| err.to_string()) } else if let Some(private_key) = private_key { info!("Using private key for Holesky wallet"); - private_key + let wallet = private_key .parse::() - .map_err(|err| err.to_string()) + .map_err(|err| err.to_string())?; + + Ok(wallet.with_chain_id(HOLESKY_CHAIN_ID)) } else { return Err( "Holesky chain was selected but couldn't find KEYSTORE_PATH or PRIVATE_KEY." @@ -40,7 +43,9 @@ pub fn get_wallet( } } else { info!("Using Anvil wallet 9"); - LocalWallet::from_str(ANVIL_PRIVATE_KEY) - .map_err(|err| format!("Failed to create Anvil wallet: {}", err)) + let wallet = LocalWallet::from_str(ANVIL_PRIVATE_KEY) + .map_err(|err| format!("Failed to create Anvil wallet: {}", err))?; + + Ok(wallet.with_chain_id(ANVIL_CHAIN_ID)) } } From 22336ab187fce8d99334e4a10bd2496b9e208213 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Fri, 13 Sep 2024 12:41:56 -0300 Subject: [PATCH 27/46] Sync with Aligned 0.5.2 (#335) --- contract_deployer/Cargo.lock | 40 ++++++++++++++--------------- contract_deployer/Cargo.toml | 2 +- core/Cargo.lock | 40 ++++++++++++++--------------- core/Cargo.toml | 2 +- core/src/aligned_polling_service.rs | 4 --- 5 files changed, 42 insertions(+), 46 deletions(-) diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index 0d5e4a46..2d9be36d 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#6b062a76637f37442cc94c3fadfec8cfb352748c" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_5#a0c893eef11755b3ddfac6530d0a11c959b23280" dependencies = [ "ciborium", "ethers", @@ -633,7 +633,7 @@ dependencies = [ "alloy-transport", "futures", "http 1.1.0", - "rustls 0.23.12", + "rustls 0.23.13", "serde_json", "tokio", "tokio-tungstenite 0.23.1", @@ -707,9 +707,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.87" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" +checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" [[package]] name = "ark-ec" @@ -3271,9 +3271,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -4844,9 +4844,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.36" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -4869,14 +4869,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -4918,9 +4918,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -5269,9 +5269,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" dependencies = [ "cc", "cfg-if", @@ -5729,7 +5729,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", ] @@ -5770,7 +5770,7 @@ dependencies = [ "futures-util", "log", "native-tls", - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", "tokio-native-tls", @@ -5945,7 +5945,7 @@ dependencies = [ "log", "native-tls", "rand", - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "sha1", "thiserror", @@ -6006,9 +6006,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index c3936919..84eb5c4b 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -16,7 +16,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_5" } serde = { version = "1.0", features = ["derive"] } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } bincode = "1.3.3" diff --git a/core/Cargo.lock b/core/Cargo.lock index d295acdb..8784d5f3 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#6b062a76637f37442cc94c3fadfec8cfb352748c" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_5#a0c893eef11755b3ddfac6530d0a11c959b23280" dependencies = [ "ciborium", "ethers", @@ -633,7 +633,7 @@ dependencies = [ "alloy-transport", "futures", "http 1.1.0", - "rustls 0.23.12", + "rustls 0.23.13", "serde_json", "tokio", "tokio-tungstenite 0.23.1", @@ -707,9 +707,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.87" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" +checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" [[package]] name = "ark-ec" @@ -3252,9 +3252,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -4825,9 +4825,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.36" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -4850,14 +4850,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -4899,9 +4899,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -5250,9 +5250,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" dependencies = [ "cc", "cfg-if", @@ -5710,7 +5710,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", ] @@ -5751,7 +5751,7 @@ dependencies = [ "futures-util", "log", "native-tls", - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", "tokio-native-tls", @@ -5926,7 +5926,7 @@ dependencies = [ "log", "native-tls", "rand", - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "sha1", "thiserror", @@ -5987,9 +5987,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" diff --git a/core/Cargo.toml b/core/Cargo.toml index 01c84c94..bbaf45e1 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -22,7 +22,7 @@ ark-poly = { version = "0.3.0", features = ["parallel"] } ark-serialize = "0.3.0" mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_5" } ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index 5851fa99..7ff0a290 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -88,7 +88,6 @@ pub async fn submit( &verification_data, wallet, nonce, - proof_generator_addr_str, ) .await .or_else(|err| { @@ -107,17 +106,14 @@ async fn submit_with_nonce( mina_proof: &VerificationData, wallet: Wallet, nonce: U256, - proof_generator_addr: &str, ) -> Result { submit_and_wait_verification( batcher_addr, eth_rpc_url, chain.to_owned(), mina_proof, - U256::MAX, wallet, nonce, - proof_generator_addr, ) .await .map_err(|err| format!("Verification data was not returned when submitting the proof: {err}")) From ce3d4b1d4d38ee413ed33e81cf2ab4a6987e7df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 16 Sep 2024 10:31:26 -0300 Subject: [PATCH 28/46] Add Solidity-friendly account structure as public input for the account inclusion proof (#334) * Added merkle query * Rename query_and_serialize * WIP merkle query * Fix test * WIP Account query * Finished account query * Fixed TokenId deserialization * Remove account query * Fix clippy * Removed account_inclusion crate * Take into account mina account proofs * Add CLI commands * Implement submission code for account proof * Add ledger hash to state verifier * Add accountIdHash and account verification feature for smart contract * Add eth call for update account * Fix clippy * Update makefile rules * Update specification * Added doc to smart contract * Fix clippy * Update README.md * Query candidate chain, use bincode * Update Makefile * Fix aligned sdk git dependency * Update cargo.lock * Define new state proof, serialize with bincode * Change proof field types * Refactor proof definition * Add entire states to Mina state proof * Change version of clap to work with aligned * Fix tip state * Change core crate name * Make serialization mod public * Add contract support for relative finalization * Fixed smart contract update function * Check state hashes * Fix hash store * Fix clippy * Remove account hash from contract storage * Fix clippy * New account proof WIP * Finish new account proof * Remove unused dependencies * Add new schema * Intergrate new account query schema * Change mina proof to store account * Replace ledger hash with Fp * Update comment * Fix variable name * Change staged ledger hash to snarked * Fix clippy * MinaAccountValidation lib * Gen abi of new lib * Add Mina account solidity struct * Update contract * Refactor serialization, add account conversion * Doc * Change mina account proof to use encoded account * Readd mina account in proof * Handle new proof in smart contract * Fix contract --- Makefile | 1 + contract/src/Account.sol | 32 --- contract/src/MinaAccountValidation.sol | 135 ++++++++++ contract/src/MinaBridge.sol | 33 --- contract_deployer/Cargo.lock | 274 ++++++++++++-------- contract_deployer/src/main.rs | 24 +- core/Cargo.lock | 274 ++++++++++++-------- core/Cargo.toml | 5 +- core/abi/MinaAccountValidation.json | 1 + core/abi/MinaBridge.json | 2 +- core/src/lib.rs | 3 + core/src/main.rs | 30 +-- core/src/mina_polling_service.rs | 9 +- core/src/proof/account_proof.rs | 25 +- core/src/proof/mod.rs | 3 - core/src/proof/state_proof.rs | 8 +- core/src/smart_contract_utility.rs | 203 ++++++++++----- core/src/sol/account.rs | 311 +++++++++++++++++++++++ core/src/sol/mod.rs | 5 + core/src/{proof => sol}/serialization.rs | 38 +-- core/src/utils/constants.rs | 1 + 21 files changed, 983 insertions(+), 434 deletions(-) delete mode 100644 contract/src/Account.sol create mode 100644 contract/src/MinaAccountValidation.sol create mode 100644 core/abi/MinaAccountValidation.json create mode 100644 core/src/sol/account.rs create mode 100644 core/src/sol/mod.rs rename core/src/{proof => sol}/serialization.rs (68%) diff --git a/Makefile b/Makefile index 77a0d64c..1df8720a 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,7 @@ submit_account: gen_contract_abi: forge build --root contract/ cp contract/out/MinaBridge.sol/MinaBridge.json core/abi/MinaBridge.json + cp contract/out/MinaAccountValidation.sol/MinaAccountValidation.json core/abi/MinaAccountValidation.json deploy_contract: gen_contract_abi @cargo run --manifest-path contract_deployer/Cargo.toml --release diff --git a/contract/src/Account.sol b/contract/src/Account.sol deleted file mode 100644 index 0feb7b39..00000000 --- a/contract/src/Account.sol +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.12; - -library Account { - /// @notice A compressed public key (ec. point) of a Mina account. - struct CompressedPubKey { - bytes32 x; - bool isOdd; - } - - /// @notice A Mina account is identified by its public key and token id. - struct AccountId { - CompressedPubKey publicKey; - bytes32 tokenId; - } - - /// @notice A verified account hash with its associated (also valid) ledger hash. - struct LedgerAccountPair { - bytes32 ledgerHash; - bytes32 accountHash; - } - - /// @notice Hashes an AccountId for storing as a key of a mapping. - function hash_account_id( - AccountId memory accountId - ) private pure returns (bytes32) { - assembly { - mstore(0x00, keccak256(accountId, 0x41)) // bool is stored as single byte - return(0x00, 0x20) - } - } -} diff --git a/contract/src/MinaAccountValidation.sol b/contract/src/MinaAccountValidation.sol new file mode 100644 index 00000000..93b91044 --- /dev/null +++ b/contract/src/MinaAccountValidation.sol @@ -0,0 +1,135 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.12; + +import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; + +error AccountIsNotVerified(); + +contract MinaAccountValidation { + /// @notice Reference to the AlignedLayerServiceManager contract. + AlignedLayerServiceManager aligned; + + constructor(address _alignedServiceAddr) { + aligned = AlignedLayerServiceManager(_alignedServiceAddr); + } + + function validateAccount( + bytes32 proofCommitment, + bytes32 provingSystemAuxDataCommitment, + bytes20 proofGeneratorAddr, + bytes32 batchMerkleRoot, + bytes memory merkleProof, + uint256 verificationDataBatchIndex, + bytes calldata pubInput + ) external view returns (Account memory) { + bytes calldata encodedAccount = pubInput[32 + 8:]; + + bytes32 pubInputCommitment = keccak256(pubInput); + + bool isAccountVerified = aligned.verifyBatchInclusion( + proofCommitment, + pubInputCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex + ); + + if (isAccountVerified) { + return abi.decode(encodedAccount, (Account)); + } else { + revert AccountIsNotVerified(); + } + } + + struct Account { + CompressedECPoint publicKey; + bytes32 tokenIdKeyHash; + string tokenSymbol; + uint64 balance; + uint32 nonce; + bytes32 receiptChainHash; + CompressedECPoint delegate; + bytes32 votingFor; + Timing timing; + Permissions permissions; + ZkappAccount zkapp; + } + + struct CompressedECPoint { + bytes32 x; + bool isOdd; + } + + struct Timing { + uint64 initialMinimumBalance; + uint32 cliffTime; + uint64 cliffAmount; + uint32 vestingPeriod; + uint64 vestingIncrement; + } + + enum AuthRequired { + None, + Either, + Proof, + Signature, + Impossible + } + + struct Permissions { + AuthRequired editState; + AuthRequired access; + AuthRequired send; + AuthRequired rreceive; + AuthRequired setDelegate; + AuthRequired setPermissions; + AuthRequired setVerificationKeyAuth; + uint32 setVerificationKeyUint; + AuthRequired setZkappUri; + AuthRequired editActionState; + AuthRequired setTokenSymbol; + AuthRequired incrementNonce; + AuthRequired setVotingFor; + AuthRequired setTiming; + } + + struct ZkappAccount { + bytes32[8] appState; + VerificationKey verificationKey; + uint32 zkappVersion; + bytes32[5] actionState; + uint32 lastActionSlot; + bool provedState; + bytes zkappUri; + } + + struct VerificationKey { + ProofsVerified maxProofsVerified; + ProofsVerified actualWrapDomainSize; + WrapIndex wrapIndex; + } + + enum ProofsVerified { + N0, + N1, + N2 + } + + struct WrapIndex { + Commitment[7] sigmaComm; + Commitment[15] coefficientsComm; + Commitment genericComm; + Commitment psmComm; + Commitment completeAddComm; + Commitment mulComm; + Commitment emulComm; + Commitment endomulScalarComm; + } + + struct Commitment { + bytes32 x; + bytes32 y; + } +} diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index fb4f9007..a8d75263 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -2,7 +2,6 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; -import "./Account.sol"; error NewStateIsNotValid(); error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); @@ -127,36 +126,4 @@ contract MinaBridge { revert NewStateIsNotValid(); } } - - function isAccountVerified( - bytes32 proofCommitment, - bytes32 provingSystemAuxDataCommitment, - bytes20 proofGeneratorAddr, - bytes32 batchMerkleRoot, - bytes memory merkleProof, - uint256 verificationDataBatchIndex, - bytes memory pubInput - ) external view returns (bool) { - bytes32 ledgerHash; - bytes32 accountHash; - bytes32 accountIdHash; - assembly { - ledgerHash := mload(add(pubInput, 0x20)) - accountHash := mload(add(pubInput, 0x40)) - accountIdHash := mload(add(pubInput, 0x60)) - } - - bytes32 pubInputCommitment = keccak256(pubInput); - - return - aligned.verifyBatchInclusion( - proofCommitment, - pubInputCommitment, - provingSystemAuxDataCommitment, - proofGeneratorAddr, - batchMerkleRoot, - merkleProof, - verificationDataBatchIndex - ); - } } diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index 2d9be36d..a233b3ea 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -98,9 +98,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" +checksum = "c37d89f69cb43901949ba29307ada8b9e3b170f94057ad4c04d6fd169d24d65f" dependencies = [ "alloy-consensus", "alloy-contract", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +checksum = "1468e3128e07c7afe4ff13c17e8170c330d12c322f8924b8bf6986a27e0aad3d" dependencies = [ "alloy-eips", "alloy-primitives", @@ -147,9 +147,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4e0ef72b0876ae3068b2ed7dfae9ae1779ce13cfaec2ee1f08f5bd0348dc57" +checksum = "335d62de1a887f1b780441f8a3037f39c9fb26839cc9acd891c9b80396145cd5" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -168,9 +168,9 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" +checksum = "88b095eb0533144b4497e84a9cc3e44a5c2e3754a3983c0376a55a2f9183a53e" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -180,9 +180,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" +checksum = "4004925bff5ba0a11739ae84dbb6601a981ea692f3bd45b626935ee90a6b8471" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -195,18 +195,42 @@ dependencies = [ "winnow", ] +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d319bb544ca6caeab58c39cea8921c55d924d4f68f2c60f24f914673f9a74a" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "k256", + "serde", +] + [[package]] name = "alloy-eips" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +checksum = "0c35df7b972b06f1b2f4e8b7a53328522fa788054a9d3e556faf2411c5a51d5a" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "alloy-rlp", "alloy-serde", "c-kzg", - "derive_more", - "k256", + "derive_more 1.0.0", "once_cell", "serde", "sha2 0.10.8", @@ -214,9 +238,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +checksum = "0b7210f9206c0fa2a83c824cf8cb6c962126bc9fdc4f41ade1932f14150ef5f6" dependencies = [ "alloy-primitives", "alloy-serde", @@ -225,9 +249,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +checksum = "9996daf962fd0a90d3c93b388033228865953b92de7bb1959b891d78750a4091" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -237,9 +261,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" +checksum = "8866562186d237f1dfeaf989ef941a24764f764bf5c33311e37ead3519c6a429" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -251,9 +275,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" +checksum = "abe714e233f9eaf410de95a9af6bcd05d3a7f8c8de7a0817221e95a6b642a080" dependencies = [ "alloy-consensus", "alloy-eips", @@ -272,10 +296,11 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" +checksum = "8c5a38117974c5776a45e140226745a0b664f79736aa900995d8e4121558e064" dependencies = [ + "alloy-eips", "alloy-primitives", "alloy-serde", "serde", @@ -283,15 +308,15 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "411aff151f2a73124ee473708e82ed51b2535f68928b6a1caa8bc1246ae6f7cd" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_more 1.0.0", "hex-literal", "itoa", "k256", @@ -305,9 +330,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" +checksum = "c65633d6ef83c3626913c004eaf166a6dd50406f724772ea8567135efd6dc5d3" dependencies = [ "alloy-chains", "alloy-consensus", @@ -334,6 +359,7 @@ dependencies = [ "reqwest 0.12.7", "serde", "serde_json", + "thiserror", "tokio", "tracing", "url", @@ -341,9 +367,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f5da2c55cbaf229bad3c5f8b00b5ab66c74ef093e5f3a753d874cfecf7d2281" +checksum = "949db89abae6193b44cc90ebf2eeb74eb8d2a474383c5e62b45bdcd362e84f8f" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -354,7 +380,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.1", "tracing", ] @@ -382,9 +408,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" +checksum = "d5fc328bb5d440599ba1b5aa44c0b9ab0625fbc3a403bb5ee94ed4a01ba23e07" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -400,16 +426,16 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-rpc-types" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c31a3750b8f5a350d17354e46a52b0f2f19ec5f2006d816935af599dedc521" +checksum = "8f8ff679f94c497a8383f2cd09e2a099266e5f3d5e574bc82b4b379865707dbb" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -419,9 +445,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff63f51b2fb2f547df5218527fd0653afb1947bf7fead5b3ce58c75d170b30f7" +checksum = "b66bb45f4c5efe227bcb51d89c97221225169976e18097671a0bd4393d8248a4" dependencies = [ "alloy-consensus", "alloy-eips", @@ -429,17 +455,15 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", - "jsonwebtoken 9.3.0", - "rand", "serde", "thiserror", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" +checksum = "9a59b1d7c86e0a653e7f3d29954f6de5a2878d8cfd1f010ff93be5c2c48cd3b1" dependencies = [ "alloy-consensus", "alloy-eips", @@ -456,9 +480,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +checksum = "51db8a6428a2159e01b7a43ec7aac801edd0c4db1d4de06f310c288940f16fd3" dependencies = [ "alloy-primitives", "serde", @@ -467,9 +491,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" +checksum = "bebc1760c13592b7ba3fcd964abba546b8d6a9f10d15e8d92a8263731be33f36" dependencies = [ "alloy-primitives", "async-trait", @@ -481,9 +505,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" +checksum = "3bfb3508485aa798efb5725322e414313239274d3780079b7f8c6746b8ee6e1b" dependencies = [ "alloy-consensus", "alloy-network", @@ -499,13 +523,13 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +checksum = "0458ccb02a564228fcd76efb8eb5a520521a8347becde37b402afec9a1b83859" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.77", @@ -513,16 +537,16 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +checksum = "2bc65475025fc1e84bf86fc840f04f63fcccdcf3cf12053c99918e4054dfbc69" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck 0.5.0", "indexmap 2.5.0", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.77", @@ -532,9 +556,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +checksum = "6ed10f0715a0b69fde3236ff3b9ae5f6f7c97db5a387747100070d3016b9266b" dependencies = [ "alloy-json-abi", "const-hex", @@ -549,9 +573,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +checksum = "3edae8ea1de519ccba896b6834dec874230f72fe695ff3c9c118e90ec7cff783" dependencies = [ "serde", "winnow", @@ -559,9 +583,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +checksum = "1eb88e4da0a1b697ed6a9f811fdba223cf4d5c21410804fd1707836af73a462b" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -572,9 +596,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" +checksum = "fd5dc4e902f1860d54952446d246ac05386311ad61030a2b906ae865416d36e0" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -584,31 +608,31 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-transport-http" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" +checksum = "1742b94bb814f1ca6b322a6f9dd38a0252ff45a3119e40e888fb7029afa500ce" dependencies = [ "alloy-json-rpc", "alloy-transport", "reqwest 0.12.7", "serde_json", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-transport-ipc" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804494366e20468776db4e18f9eb5db7db0fe14f1271eb6dbf155d867233405c" +checksum = "be321aac6f06d86855d41d4ce9ff9feb877fe7e9fe1cafce7380b981c12398c7" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -625,9 +649,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af855163e7df008799941aa6dd324a43ef2bf264b08ba4b22d44aad6ced65300" +checksum = "e8ed861e7030001364c8ffa2db63541f7bae275a6e636de7616c20f2fd3dc0c3" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1735,11 +1759,12 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.5.3" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", + "crossbeam-utils", "hashbrown 0.14.5", "lock_api", "once_cell", @@ -1796,6 +1821,27 @@ dependencies = [ "syn 2.0.77", ] +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", + "unicode-xid", +] + [[package]] name = "digest" version = "0.9.0" @@ -2263,7 +2309,7 @@ dependencies = [ "hashers", "http 0.2.12", "instant", - "jsonwebtoken 8.3.0", + "jsonwebtoken", "once_cell", "pin-project", "reqwest 0.11.27", @@ -3011,7 +3057,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower", + "tower 0.4.13", "tower-service", "tracing", ] @@ -3224,28 +3270,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.7", - "pem 1.1.1", + "pem", "ring 0.16.20", "serde", "serde_json", "simple_asn1", ] -[[package]] -name = "jsonwebtoken" -version = "9.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" -dependencies = [ - "base64 0.21.7", - "js-sys", - "pem 3.0.4", - "ring 0.17.8", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "k256" version = "0.13.3" @@ -3506,7 +3537,7 @@ dependencies = [ "binprot_derive", "blake2", "bs58 0.4.0", - "derive_more", + "derive_more 0.99.18", "hex", "mina-curves", "mina-hasher", @@ -3574,7 +3605,7 @@ dependencies = [ "bs58 0.4.0", "chrono", "crc32fast", - "derive_more", + "derive_more 0.99.18", "getrandom", "hex", "itertools 0.10.5", @@ -3614,6 +3645,8 @@ version = "0.1.0" dependencies = [ "aligned-sdk", "alloy", + "alloy-contract", + "alloy-sol-types", "ark-ec", "ark-ff 0.3.0", "ark-poly", @@ -3635,6 +3668,7 @@ dependencies = [ "mina-signer", "mina-tree", "num-bigint", + "num-traits", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", "poly-commitment", "reqwest 0.11.27", @@ -4105,16 +4139,6 @@ dependencies = [ "base64 0.13.1", ] -[[package]] -name = "pem" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" -dependencies = [ - "base64 0.22.1", - "serde", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -4376,6 +4400,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "proc-macro2" version = "1.0.86" @@ -4976,7 +5022,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "cfg-if", - "derive_more", + "derive_more 0.99.18", "parity-scale-codec", "scale-info-derive", ] @@ -5504,9 +5550,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +checksum = "4b95156f8b577cb59dc0b1df15c6f29a10afc5f8a7ac9786b0b5c68c19149278" dependencies = [ "paste", "proc-macro2", @@ -5848,7 +5894,20 @@ dependencies = [ "tokio", "tower-layer", "tower-service", - "tracing", +] + +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", ] [[package]] @@ -5869,7 +5928,6 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index 502e47af..4c2ebf75 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -3,7 +3,8 @@ use log::{debug, error, info}; use mina_bridge_core::{ mina_polling_service::query_root, smart_contract_utility::{ - deploy_mina_bridge_contract, EVMStateHash, MinaBridgeConstructorArgs, + deploy_mina_account_validation_contract, deploy_mina_bridge_contract, + MinaAccountValidationConstructorArgs, MinaBridgeConstructorArgs, SolStateHash, }, utils::{ constants::{ @@ -41,7 +42,7 @@ async fn main() { info!( "Queried root state hash {root_hash} for chain of length {BRIDGE_TRANSITION_FRONTIER_LEN}" ); - let root_hash = bincode::serialize(&EVMStateHash(root_hash)).unwrap_or_else(|err| { + let root_hash = bincode::serialize(&SolStateHash(root_hash)).unwrap_or_else(|err| { error!("Failed to serialize root state hash: {err}"); process::exit(1); }); @@ -52,9 +53,14 @@ async fn main() { _ => todo!(), }; - let contract_constructor_args = MinaBridgeConstructorArgs::new(aligned_sm_addr, root_hash) + let bridge_constructor_args = MinaBridgeConstructorArgs::new(aligned_sm_addr, root_hash) .unwrap_or_else(|err| { - error!("Failed to make constructor args for contract call: {err}"); + error!("Failed to make constructor args for bridge contract call: {err}"); + process::exit(1); + }); + let account_constructor_args = MinaAccountValidationConstructorArgs::new(aligned_sm_addr) + .unwrap_or_else(|err| { + error!("Failed to make constructor args for account contract call: {err}"); process::exit(1); }); @@ -63,7 +69,15 @@ async fn main() { error!("Failed to get wallet: {err}"); process::exit(1); }); - deploy_mina_bridge_contract(ð_rpc_url, contract_constructor_args, &wallet) + + deploy_mina_bridge_contract(ð_rpc_url, bridge_constructor_args, &wallet) + .await + .unwrap_or_else(|err| { + error!("Failed to deploy contract: {err}"); + process::exit(1); + }); + + deploy_mina_account_validation_contract(ð_rpc_url, account_constructor_args, &wallet) .await .unwrap_or_else(|err| { error!("Failed to deploy contract: {err}"); diff --git a/core/Cargo.lock b/core/Cargo.lock index 8784d5f3..6a387c75 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -98,9 +98,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" +checksum = "c37d89f69cb43901949ba29307ada8b9e3b170f94057ad4c04d6fd169d24d65f" dependencies = [ "alloy-consensus", "alloy-contract", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +checksum = "1468e3128e07c7afe4ff13c17e8170c330d12c322f8924b8bf6986a27e0aad3d" dependencies = [ "alloy-eips", "alloy-primitives", @@ -147,9 +147,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4e0ef72b0876ae3068b2ed7dfae9ae1779ce13cfaec2ee1f08f5bd0348dc57" +checksum = "335d62de1a887f1b780441f8a3037f39c9fb26839cc9acd891c9b80396145cd5" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -168,9 +168,9 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" +checksum = "88b095eb0533144b4497e84a9cc3e44a5c2e3754a3983c0376a55a2f9183a53e" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -180,9 +180,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" +checksum = "4004925bff5ba0a11739ae84dbb6601a981ea692f3bd45b626935ee90a6b8471" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -195,18 +195,42 @@ dependencies = [ "winnow", ] +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d319bb544ca6caeab58c39cea8921c55d924d4f68f2c60f24f914673f9a74a" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "k256", + "serde", +] + [[package]] name = "alloy-eips" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +checksum = "0c35df7b972b06f1b2f4e8b7a53328522fa788054a9d3e556faf2411c5a51d5a" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "alloy-rlp", "alloy-serde", "c-kzg", - "derive_more", - "k256", + "derive_more 1.0.0", "once_cell", "serde", "sha2 0.10.8", @@ -214,9 +238,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +checksum = "0b7210f9206c0fa2a83c824cf8cb6c962126bc9fdc4f41ade1932f14150ef5f6" dependencies = [ "alloy-primitives", "alloy-serde", @@ -225,9 +249,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +checksum = "9996daf962fd0a90d3c93b388033228865953b92de7bb1959b891d78750a4091" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -237,9 +261,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" +checksum = "8866562186d237f1dfeaf989ef941a24764f764bf5c33311e37ead3519c6a429" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -251,9 +275,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" +checksum = "abe714e233f9eaf410de95a9af6bcd05d3a7f8c8de7a0817221e95a6b642a080" dependencies = [ "alloy-consensus", "alloy-eips", @@ -272,10 +296,11 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" +checksum = "8c5a38117974c5776a45e140226745a0b664f79736aa900995d8e4121558e064" dependencies = [ + "alloy-eips", "alloy-primitives", "alloy-serde", "serde", @@ -283,15 +308,15 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "411aff151f2a73124ee473708e82ed51b2535f68928b6a1caa8bc1246ae6f7cd" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_more 1.0.0", "hex-literal", "itoa", "k256", @@ -305,9 +330,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" +checksum = "c65633d6ef83c3626913c004eaf166a6dd50406f724772ea8567135efd6dc5d3" dependencies = [ "alloy-chains", "alloy-consensus", @@ -334,6 +359,7 @@ dependencies = [ "reqwest 0.12.7", "serde", "serde_json", + "thiserror", "tokio", "tracing", "url", @@ -341,9 +367,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f5da2c55cbaf229bad3c5f8b00b5ab66c74ef093e5f3a753d874cfecf7d2281" +checksum = "949db89abae6193b44cc90ebf2eeb74eb8d2a474383c5e62b45bdcd362e84f8f" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -354,7 +380,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.1", "tracing", ] @@ -382,9 +408,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" +checksum = "d5fc328bb5d440599ba1b5aa44c0b9ab0625fbc3a403bb5ee94ed4a01ba23e07" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -400,16 +426,16 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-rpc-types" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c31a3750b8f5a350d17354e46a52b0f2f19ec5f2006d816935af599dedc521" +checksum = "8f8ff679f94c497a8383f2cd09e2a099266e5f3d5e574bc82b4b379865707dbb" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -419,9 +445,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff63f51b2fb2f547df5218527fd0653afb1947bf7fead5b3ce58c75d170b30f7" +checksum = "b66bb45f4c5efe227bcb51d89c97221225169976e18097671a0bd4393d8248a4" dependencies = [ "alloy-consensus", "alloy-eips", @@ -429,17 +455,15 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", - "jsonwebtoken 9.3.0", - "rand", "serde", "thiserror", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" +checksum = "9a59b1d7c86e0a653e7f3d29954f6de5a2878d8cfd1f010ff93be5c2c48cd3b1" dependencies = [ "alloy-consensus", "alloy-eips", @@ -456,9 +480,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +checksum = "51db8a6428a2159e01b7a43ec7aac801edd0c4db1d4de06f310c288940f16fd3" dependencies = [ "alloy-primitives", "serde", @@ -467,9 +491,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" +checksum = "bebc1760c13592b7ba3fcd964abba546b8d6a9f10d15e8d92a8263731be33f36" dependencies = [ "alloy-primitives", "async-trait", @@ -481,9 +505,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" +checksum = "3bfb3508485aa798efb5725322e414313239274d3780079b7f8c6746b8ee6e1b" dependencies = [ "alloy-consensus", "alloy-network", @@ -499,13 +523,13 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +checksum = "0458ccb02a564228fcd76efb8eb5a520521a8347becde37b402afec9a1b83859" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.77", @@ -513,16 +537,16 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +checksum = "2bc65475025fc1e84bf86fc840f04f63fcccdcf3cf12053c99918e4054dfbc69" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck 0.5.0", "indexmap 2.5.0", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.77", @@ -532,9 +556,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +checksum = "6ed10f0715a0b69fde3236ff3b9ae5f6f7c97db5a387747100070d3016b9266b" dependencies = [ "alloy-json-abi", "const-hex", @@ -549,9 +573,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +checksum = "3edae8ea1de519ccba896b6834dec874230f72fe695ff3c9c118e90ec7cff783" dependencies = [ "serde", "winnow", @@ -559,9 +583,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +checksum = "1eb88e4da0a1b697ed6a9f811fdba223cf4d5c21410804fd1707836af73a462b" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -572,9 +596,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" +checksum = "fd5dc4e902f1860d54952446d246ac05386311ad61030a2b906ae865416d36e0" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -584,31 +608,31 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-transport-http" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" +checksum = "1742b94bb814f1ca6b322a6f9dd38a0252ff45a3119e40e888fb7029afa500ce" dependencies = [ "alloy-json-rpc", "alloy-transport", "reqwest 0.12.7", "serde_json", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-transport-ipc" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804494366e20468776db4e18f9eb5db7db0fe14f1271eb6dbf155d867233405c" +checksum = "be321aac6f06d86855d41d4ce9ff9feb877fe7e9fe1cafce7380b981c12398c7" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -625,9 +649,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af855163e7df008799941aa6dd324a43ef2bf264b08ba4b22d44aad6ced65300" +checksum = "e8ed861e7030001364c8ffa2db63541f7bae275a6e636de7616c20f2fd3dc0c3" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1716,11 +1740,12 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.5.3" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", + "crossbeam-utils", "hashbrown 0.14.5", "lock_api", "once_cell", @@ -1777,6 +1802,27 @@ dependencies = [ "syn 2.0.77", ] +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", + "unicode-xid", +] + [[package]] name = "digest" version = "0.9.0" @@ -2244,7 +2290,7 @@ dependencies = [ "hashers", "http 0.2.12", "instant", - "jsonwebtoken 8.3.0", + "jsonwebtoken", "once_cell", "pin-project", "reqwest 0.11.27", @@ -2992,7 +3038,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower", + "tower 0.4.13", "tower-service", "tracing", ] @@ -3205,28 +3251,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.7", - "pem 1.1.1", + "pem", "ring 0.16.20", "serde", "serde_json", "simple_asn1", ] -[[package]] -name = "jsonwebtoken" -version = "9.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" -dependencies = [ - "base64 0.21.7", - "js-sys", - "pem 3.0.4", - "ring 0.17.8", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "k256" version = "0.13.3" @@ -3487,7 +3518,7 @@ dependencies = [ "binprot_derive", "blake2", "bs58 0.4.0", - "derive_more", + "derive_more 0.99.18", "hex", "mina-curves", "mina-hasher", @@ -3555,7 +3586,7 @@ dependencies = [ "bs58 0.4.0", "chrono", "crc32fast", - "derive_more", + "derive_more 0.99.18", "getrandom", "hex", "itertools 0.10.5", @@ -3595,6 +3626,8 @@ version = "0.1.0" dependencies = [ "aligned-sdk", "alloy", + "alloy-contract", + "alloy-sol-types", "ark-ec", "ark-ff 0.3.0", "ark-poly", @@ -3616,6 +3649,7 @@ dependencies = [ "mina-signer", "mina-tree", "num-bigint", + "num-traits", "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", "poly-commitment", "reqwest 0.11.27", @@ -4086,16 +4120,6 @@ dependencies = [ "base64 0.13.1", ] -[[package]] -name = "pem" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" -dependencies = [ - "base64 0.22.1", - "serde", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -4357,6 +4381,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "proc-macro2" version = "1.0.86" @@ -4957,7 +5003,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "cfg-if", - "derive_more", + "derive_more 0.99.18", "parity-scale-codec", "scale-info-derive", ] @@ -5485,9 +5531,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.7" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +checksum = "4b95156f8b577cb59dc0b1df15c6f29a10afc5f8a7ac9786b0b5c68c19149278" dependencies = [ "paste", "proc-macro2", @@ -5829,7 +5875,20 @@ dependencies = [ "tokio", "tower-layer", "tower-service", - "tracing", +] + +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", ] [[package]] @@ -5850,7 +5909,6 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", diff --git a/core/Cargo.toml b/core/Cargo.toml index bbaf45e1..d64d02bc 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -39,11 +39,14 @@ graphql_client = { version = "0.14.0", features = [ "reqwest", "reqwest-blocking", ] } -alloy = { version = "0.2.1", features = ["full", "signer-keystore"] } +alloy = { version = "0.3.1", features = ["full", "signer-keystore"] } clap = { version = "4.5.4", features = ["derive"] } sha3 = "0.10.8" bincode = "1.3.3" futures = "0.3.30" +num-traits = "0.2.19" +alloy-sol-types = "0.8.2" +alloy-contract = "0.3.1" [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json new file mode 100644 index 00000000..4611e723 --- /dev/null +++ b/core/abi/MinaAccountValidation.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"AccountIsNotVerified","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516113cc3803806113cc83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b611339806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105a9565b610059565b6040516100509190610a2a565b60405180910390f35b610061610164565b3660006100718460288188610b5c565b9150915060008585604051610087929190610b86565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08e848f8f8f8f8f6040518863ffffffff1660e01b81526004016100df9796959493929190610b96565b602060405180830381865afa1580156100fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101209190610bfb565b9050801561013f57610134838501856111e3565b945050505050610158565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610267604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b8152602001610274610279565b905290565b6040518060e0016040528061028c6102c6565b81526020016102996102e5565b8152600060208201526040016102ad610304565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610274610322565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103366103cd565b8152602001610343610406565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103dc5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103dc565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046a5761046a610432565b60405290565b6040516101c081016001600160401b038111828210171561046a5761046a610432565b604051606081016001600160401b038111828210171561046a5761046a610432565b60405161010081016001600160401b038111828210171561046a5761046a610432565b60405160e081016001600160401b038111828210171561046a5761046a610432565b60405161016081016001600160401b038111828210171561046a5761046a610432565b600082601f83011261052e57600080fd5b81356001600160401b038082111561054857610548610432565b604051601f8301601f19908116603f0116810190828211818310171561057057610570610432565b8160405283815286602085880101111561058957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c557600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f057600080fd5b95506060890135945060808901356001600160401b038082111561061357600080fd5b61061f8c838d0161051d565b955060a08b0135945060c08b013591508082111561063c57600080fd5b818b0191508b601f83011261065057600080fd5b81358181111561065f57600080fd5b8c602082850101111561067157600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b057602081850181015186830182015201610694565b818111156106c2576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b600581106106fd576106fd6106d7565b9052565b61070c8282516106ed565b602081015161071e60208401826106ed565b50604081015161073160408401826106ed565b50606081015161074460608401826106ed565b50608081015161075760808401826106ed565b5060a081015161076a60a08401826106ed565b5060c081015161077d60c08401826106ed565b5060e081015161079560e084018263ffffffff169052565b50610100808201516107a9828501826106ed565b5050610120808201516107be828501826106ed565b5050610140808201516107d3828501826106ed565b5050610160808201516107e8828501826106ed565b5050610180808201516107fd828501826106ed565b50506101a080820151610812828501826106ed565b50505050565b600381106106fd576106fd6106d7565b8060005b600f8110156108125761084a84835180518252602090810151910152565b604093909301926020919091019060010161082c565b61086b828251610818565b60208082015161087d82850182610818565b50604082810151805160008684015b60078210156108bc576108aa81845180518252602090810151910152565b9185019160019190910190840161088c565b50505091820151916108d2610200860184610828565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610812578151845260209384019390910190600101610964565b80516000906109609084835b60088110156109ae57825182526020928301929091019060010161098f565b50505060208301516109c4610100860182610860565b50604083015163ffffffff1661084085015260608301516109e9610860860182610960565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a218286018261068a565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a686103e085018361068a565b91506060850151610a8460a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac181870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b36610200880184610701565b870151868503601f1901848801529150610b5290508382610983565b9695505050505050565b60008085851115610b6c57600080fd5b83861115610b7957600080fd5b5050820193919092039150565b8183823760009101908152919050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a08201526000610bd660e083018561068a565b90508260c083015298975050505050505050565b8015158114610bf857600080fd5b50565b600060208284031215610c0d57600080fd5b8151610c1881610bea565b9392505050565b8035610c2a81610bea565b919050565b600060408284031215610c4157600080fd5b610c49610448565b9050813581526020820135610c5d81610bea565b602082015292915050565b80356001600160401b0381168114610c2a57600080fd5b803563ffffffff81168114610c2a57600080fd5b600060a08284031215610ca557600080fd5b60405160a081018181106001600160401b0382111715610cc757610cc7610432565b604052905080610cd683610c68565b8152610ce460208401610c7f565b6020820152610cf560408401610c68565b6040820152610d0660608401610c7f565b6060820152610d1760808401610c68565b60808201525092915050565b803560058110610c2a57600080fd5b60006101c08284031215610d4557600080fd5b610d4d610470565b9050610d5882610d23565b8152610d6660208301610d23565b6020820152610d7760408301610d23565b6040820152610d8860608301610d23565b6060820152610d9960808301610d23565b6080820152610daa60a08301610d23565b60a0820152610dbb60c08301610d23565b60c0820152610dcc60e08301610c7f565b60e0820152610100610ddf818401610d23565b90820152610120610df1838201610d23565b90820152610140610e03838201610d23565b90820152610160610e15838201610d23565b90820152610180610e27838201610d23565b908201526101a0610e39838201610d23565b9082015292915050565b600082601f830112610e5457600080fd5b6040516101008082018281106001600160401b0382111715610e7857610e78610432565b60405283018185821115610e8b57600080fd5b845b82811015610ea5578035825260209182019101610e8d565b509195945050505050565b803560038110610c2a57600080fd5b600060408284031215610ed157600080fd5b610ed9610448565b9050813581526020820135602082015292915050565b600082601f830112610f0057600080fd5b6040805160e081018181106001600160401b0382111715610f2357610f23610432565b8252806101c0850186811115610f3857600080fd5b855b81811015610f5b57610f4c8882610ebf565b83526020909201918401610f3a565b50919695505050505050565b600082601f830112610f7857600080fd5b604080516101e081018181106001600160401b0382111715610f9c57610f9c610432565b8252806103c0850186811115610fb157600080fd5b855b81811015610f5b57610fc58882610ebf565b83526020909201918401610fb3565b6000818303610740811215610fe857600080fd5b610ff0610493565b9150610ffb83610eb0565b825261100960208401610eb0565b602083015261070080603f198301121561102257600080fd5b61102a6104b5565b91506110398560408601610eef565b8252611049856102008601610f67565b602083015261105c856105c08601610ebf565b604083015261106f856106008601610ebf565b6060830152611082856106408601610ebf565b6080830152611095856106808601610ebf565b60a08301526110a8856106c08601610ebf565b60c08301526110b985828601610ebf565b60e083015250604082015292915050565b600082601f8301126110db57600080fd5b60405160a081018181106001600160401b03821117156110fd576110fd610432565b6040528060a084018581111561111257600080fd5b845b81811015610ea5578035835260209283019201611114565b6000610960828403121561113f57600080fd5b6111476104d8565b90506111538383610e43565b8152611163836101008401610fd4565b60208201526111756108408301610c7f565b60408201526111888361086084016110ca565b606082015261119a6109008301610c7f565b60808201526111ac6109208301610c1f565b60a08201526109408201356001600160401b038111156111cb57600080fd5b6111d78482850161051d565b60c08301525092915050565b6000602082840312156111f557600080fd5b81356001600160401b038082111561120c57600080fd5b908301906103c0828603121561122157600080fd5b6112296104fa565b6112338684610c2f565b81526040830135602082015260608301358281111561125157600080fd5b61125d8782860161051d565b60408301525061126f60808401610c68565b606082015261128060a08401610c7f565b608082015260c083013560a082015261129c8660e08501610c2f565b60c08201526101208084013560e08301526101406112bc88828701610c93565b6101008401526112d0886101e08701610d32565b828401526103a08501359150838211156112e957600080fd5b6112f58883870161112c565b90830152509594505050505056fea26469706673582212203160766bd2b4d927f5ff8f4549da2e1589447c75567a33622fdac01a7b38b7f664736f6c634300080c0033","sourceMap":"171:3267:38:-:0;;;319:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;370:7;:57;;-1:-1:-1;;;;;;370:57:38;-1:-1:-1;;;;;370:57:38;;;;;;;;;;171:3267;;14:290:39;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:39;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:39:o;:::-;171:3267:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105a9565b610059565b6040516100509190610a2a565b60405180910390f35b610061610164565b3660006100718460288188610b5c565b9150915060008585604051610087929190610b86565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08e848f8f8f8f8f6040518863ffffffff1660e01b81526004016100df9796959493929190610b96565b602060405180830381865afa1580156100fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101209190610bfb565b9050801561013f57610134838501856111e3565b945050505050610158565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610267604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b8152602001610274610279565b905290565b6040518060e0016040528061028c6102c6565b81526020016102996102e5565b8152600060208201526040016102ad610304565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610274610322565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103366103cd565b8152602001610343610406565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103dc5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103dc565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046a5761046a610432565b60405290565b6040516101c081016001600160401b038111828210171561046a5761046a610432565b604051606081016001600160401b038111828210171561046a5761046a610432565b60405161010081016001600160401b038111828210171561046a5761046a610432565b60405160e081016001600160401b038111828210171561046a5761046a610432565b60405161016081016001600160401b038111828210171561046a5761046a610432565b600082601f83011261052e57600080fd5b81356001600160401b038082111561054857610548610432565b604051601f8301601f19908116603f0116810190828211818310171561057057610570610432565b8160405283815286602085880101111561058957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c557600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f057600080fd5b95506060890135945060808901356001600160401b038082111561061357600080fd5b61061f8c838d0161051d565b955060a08b0135945060c08b013591508082111561063c57600080fd5b818b0191508b601f83011261065057600080fd5b81358181111561065f57600080fd5b8c602082850101111561067157600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b057602081850181015186830182015201610694565b818111156106c2576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b600581106106fd576106fd6106d7565b9052565b61070c8282516106ed565b602081015161071e60208401826106ed565b50604081015161073160408401826106ed565b50606081015161074460608401826106ed565b50608081015161075760808401826106ed565b5060a081015161076a60a08401826106ed565b5060c081015161077d60c08401826106ed565b5060e081015161079560e084018263ffffffff169052565b50610100808201516107a9828501826106ed565b5050610120808201516107be828501826106ed565b5050610140808201516107d3828501826106ed565b5050610160808201516107e8828501826106ed565b5050610180808201516107fd828501826106ed565b50506101a080820151610812828501826106ed565b50505050565b600381106106fd576106fd6106d7565b8060005b600f8110156108125761084a84835180518252602090810151910152565b604093909301926020919091019060010161082c565b61086b828251610818565b60208082015161087d82850182610818565b50604082810151805160008684015b60078210156108bc576108aa81845180518252602090810151910152565b9185019160019190910190840161088c565b50505091820151916108d2610200860184610828565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610812578151845260209384019390910190600101610964565b80516000906109609084835b60088110156109ae57825182526020928301929091019060010161098f565b50505060208301516109c4610100860182610860565b50604083015163ffffffff1661084085015260608301516109e9610860860182610960565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a218286018261068a565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a686103e085018361068a565b91506060850151610a8460a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac181870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b36610200880184610701565b870151868503601f1901848801529150610b5290508382610983565b9695505050505050565b60008085851115610b6c57600080fd5b83861115610b7957600080fd5b5050820193919092039150565b8183823760009101908152919050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a08201526000610bd660e083018561068a565b90508260c083015298975050505050505050565b8015158114610bf857600080fd5b50565b600060208284031215610c0d57600080fd5b8151610c1881610bea565b9392505050565b8035610c2a81610bea565b919050565b600060408284031215610c4157600080fd5b610c49610448565b9050813581526020820135610c5d81610bea565b602082015292915050565b80356001600160401b0381168114610c2a57600080fd5b803563ffffffff81168114610c2a57600080fd5b600060a08284031215610ca557600080fd5b60405160a081018181106001600160401b0382111715610cc757610cc7610432565b604052905080610cd683610c68565b8152610ce460208401610c7f565b6020820152610cf560408401610c68565b6040820152610d0660608401610c7f565b6060820152610d1760808401610c68565b60808201525092915050565b803560058110610c2a57600080fd5b60006101c08284031215610d4557600080fd5b610d4d610470565b9050610d5882610d23565b8152610d6660208301610d23565b6020820152610d7760408301610d23565b6040820152610d8860608301610d23565b6060820152610d9960808301610d23565b6080820152610daa60a08301610d23565b60a0820152610dbb60c08301610d23565b60c0820152610dcc60e08301610c7f565b60e0820152610100610ddf818401610d23565b90820152610120610df1838201610d23565b90820152610140610e03838201610d23565b90820152610160610e15838201610d23565b90820152610180610e27838201610d23565b908201526101a0610e39838201610d23565b9082015292915050565b600082601f830112610e5457600080fd5b6040516101008082018281106001600160401b0382111715610e7857610e78610432565b60405283018185821115610e8b57600080fd5b845b82811015610ea5578035825260209182019101610e8d565b509195945050505050565b803560038110610c2a57600080fd5b600060408284031215610ed157600080fd5b610ed9610448565b9050813581526020820135602082015292915050565b600082601f830112610f0057600080fd5b6040805160e081018181106001600160401b0382111715610f2357610f23610432565b8252806101c0850186811115610f3857600080fd5b855b81811015610f5b57610f4c8882610ebf565b83526020909201918401610f3a565b50919695505050505050565b600082601f830112610f7857600080fd5b604080516101e081018181106001600160401b0382111715610f9c57610f9c610432565b8252806103c0850186811115610fb157600080fd5b855b81811015610f5b57610fc58882610ebf565b83526020909201918401610fb3565b6000818303610740811215610fe857600080fd5b610ff0610493565b9150610ffb83610eb0565b825261100960208401610eb0565b602083015261070080603f198301121561102257600080fd5b61102a6104b5565b91506110398560408601610eef565b8252611049856102008601610f67565b602083015261105c856105c08601610ebf565b604083015261106f856106008601610ebf565b6060830152611082856106408601610ebf565b6080830152611095856106808601610ebf565b60a08301526110a8856106c08601610ebf565b60c08301526110b985828601610ebf565b60e083015250604082015292915050565b600082601f8301126110db57600080fd5b60405160a081018181106001600160401b03821117156110fd576110fd610432565b6040528060a084018581111561111257600080fd5b845b81811015610ea5578035835260209283019201611114565b6000610960828403121561113f57600080fd5b6111476104d8565b90506111538383610e43565b8152611163836101008401610fd4565b60208201526111756108408301610c7f565b60408201526111888361086084016110ca565b606082015261119a6109008301610c7f565b60808201526111ac6109208301610c1f565b60a08201526109408201356001600160401b038111156111cb57600080fd5b6111d78482850161051d565b60c08301525092915050565b6000602082840312156111f557600080fd5b81356001600160401b038082111561120c57600080fd5b908301906103c0828603121561122157600080fd5b6112296104fa565b6112338684610c2f565b81526040830135602082015260608301358281111561125157600080fd5b61125d8782860161051d565b60408301525061126f60808401610c68565b606082015261128060a08401610c7f565b608082015260c083013560a082015261129c8660e08501610c2f565b60c08201526101208084013560e08301526101406112bc88828701610c93565b6101008401526112d0886101e08701610d32565b828401526103a08501359150838211156112e957600080fd5b6112f58883870161112c565b90830152509594505050505056fea26469706673582212203160766bd2b4d927f5ff8f4549da2e1589447c75567a33622fdac01a7b38b7f664736f6c634300080c0033","sourceMap":"171:3267:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;440:923;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;755:14;;:::i;:::-;781:29;;813:17;:8;822:6;813:8;;:17;:::i;:::-;781:49;;;;841:26;880:8;;870:19;;;;;;;:::i;:::-;;;;;;;;841:48;;900:22;925:7;;;;;;;;;-1:-1:-1;;;;;925:7:38;-1:-1:-1;;;;;925:28:38;;967:15;996:18;1028:30;1072:18;1104:15;1133:11;1158:26;925:269;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;900:294;;1209:17;1205:152;;;1249:37;;;;1260:14;1249:37;:::i;:::-;1242:44;;;;;;;;1205:152;1324:22;;-1:-1:-1;;;1324:22:38;;;;;;;;;;;440:923;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:127:39;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:252;213:4;207:11;;;245:17;;-1:-1:-1;;;;;277:34:39;;313:22;;;274:62;271:88;;;339:18;;:::i;:::-;375:4;368:24;146:252;:::o;403:255::-;475:2;469:9;517:6;505:19;;-1:-1:-1;;;;;539:34:39;;575:22;;;536:62;533:88;;;601:18;;:::i;663:253::-;735:2;729:9;777:4;765:17;;-1:-1:-1;;;;;797:34:39;;833:22;;;794:62;791:88;;;859:18;;:::i;921:255::-;993:2;987:9;1035:6;1023:19;;-1:-1:-1;;;;;1057:34:39;;1093:22;;;1054:62;1051:88;;;1119:18;;:::i;1181:253::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:39;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:39;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:39;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:39;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:1251::-;2555:6;2563;2571;2579;2587;2595;2603;2611;2664:3;2652:9;2643:7;2639:23;2635:33;2632:53;;;2681:1;2678;2671:12;2632:53;2704:23;;;-1:-1:-1;2774:2:39;2759:18;;2746:32;;-1:-1:-1;2828:2:39;2813:18;;2800:32;-1:-1:-1;;2861:43:39;;2851:54;;2841:82;;2919:1;2916;2909:12;2841:82;2942:5;-1:-1:-1;2994:2:39;2979:18;;2966:32;;-1:-1:-1;3049:3:39;3034:19;;3021:33;-1:-1:-1;;;;;3103:14:39;;;3100:34;;;3130:1;3127;3120:12;3100:34;3153:49;3194:7;3185:6;3174:9;3170:22;3153:49;:::i;:::-;3143:59;;3249:3;3238:9;3234:19;3221:33;3211:43;;3307:3;3296:9;3292:19;3279:33;3263:49;;3337:2;3327:8;3324:16;3321:36;;;3353:1;3350;3343:12;3321:36;3391:8;3380:9;3376:24;3366:34;;3438:7;3431:4;3427:2;3423:13;3419:27;3409:55;;3460:1;3457;3450:12;3409:55;3500:2;3487:16;3526:2;3518:6;3515:14;3512:34;;;3542:1;3539;3532:12;3512:34;3587:7;3582:2;3573:6;3569:2;3565:15;3561:24;3558:37;3555:57;;;3608:1;3605;3598:12;3555:57;3639:2;3635;3631:11;3621:21;;3661:6;3651:16;;;;;2422:1251;;;;;;;;;;;:::o;3953:472::-;3995:3;4033:5;4027:12;4060:6;4055:3;4048:19;4085:1;4095:162;4109:6;4106:1;4103:13;4095:162;;;4171:4;4227:13;;;4223:22;;4217:29;4199:11;;;4195:20;;4188:59;4124:12;4095:162;;;4275:6;4272:1;4269:13;4266:87;;;4341:1;4334:4;4325:6;4320:3;4316:16;4312:27;4305:38;4266:87;-1:-1:-1;4407:2:39;4386:15;-1:-1:-1;;4382:29:39;4373:39;;;;4414:4;4369:50;;3953:472;-1:-1:-1;;3953:472:39:o;5108:127::-;5169:10;5164:3;5160:20;5157:1;5150:31;5200:4;5197:1;5190:15;5224:4;5221:1;5214:15;5240:143;5324:1;5317:5;5314:12;5304:46;;5330:18;;:::i;:::-;5359;;5240:143::o;5388:1834::-;5453:47;5496:3;5488:5;5482:12;5453:47;:::i;:::-;5546:4;5539:5;5535:16;5529:23;5561:58;5613:4;5608:3;5604:14;5590:12;5561:58;:::i;:::-;;5667:4;5660:5;5656:16;5650:23;5682:60;5736:4;5731:3;5727:14;5711;5682:60;:::i;:::-;;5790:4;5783:5;5779:16;5773:23;5805:60;5859:4;5854:3;5850:14;5834;5805:60;:::i;:::-;;5913:4;5906:5;5902:16;5896:23;5928:60;5982:4;5977:3;5973:14;5957;5928:60;:::i;:::-;;6036:4;6029:5;6025:16;6019:23;6051:60;6105:4;6100:3;6096:14;6080;6051:60;:::i;:::-;;6159:4;6152:5;6148:16;6142:23;6174:60;6228:4;6223:3;6219:14;6203;6174:60;:::i;:::-;;6282:4;6275:5;6271:16;6265:23;6297:49;6340:4;6335:3;6331:14;6315;4613:10;4602:22;4590:35;;4537:94;6297:49;;6365:6;6419:2;6412:5;6408:14;6402:21;6432:58;6486:2;6481:3;6477:12;6461:14;6432:58;:::i;:::-;;;6509:6;6563:2;6556:5;6552:14;6546:21;6576:58;6630:2;6625:3;6621:12;6605:14;6576:58;:::i;:::-;;;6653:6;6707:2;6700:5;6696:14;6690:21;6720:58;6774:2;6769:3;6765:12;6749:14;6720:58;:::i;:::-;;;6797:6;6852:2;6845:5;6841:14;6835:21;6865:59;6920:2;6915:3;6911:12;6894:15;6865:59;:::i;:::-;;;6943:6;6998:2;6991:5;6987:14;6981:21;7011:59;7066:2;7061:3;7057:12;7040:15;7011:59;:::i;:::-;;;7089:6;7144:2;7137:5;7133:14;7127:21;7157:59;7212:2;7207:3;7203:12;7186:15;7157:59;:::i;:::-;;;5388:1834;;:::o;7227:145::-;7313:1;7306:5;7303:12;7293:46;;7319:18;;:::i;7533:335::-;7636:5;7659:1;7669:193;7683:4;7680:1;7677:11;7669:193;;;7730:48;7774:3;7765:6;7759:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;7730:48;7807:4;7798:14;;;;;7847:4;7835:17;;;;;7703:1;7696:9;7669:193;;7873:1627;7942:49;7987:3;7979:5;7973:12;7942:49;:::i;:::-;8010:4;8060:2;8053:5;8049:14;8043:21;8073:58;8127:2;8122:3;8118:12;8104;8073:58;:::i;:::-;-1:-1:-1;8150:4:39;8191:14;;;8185:21;8256;;8364:1;8225:12;;;8374:195;8388:4;8385:1;8382:11;8374:195;;;8435:50;8479:5;8470:6;8464:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;8435:50;8544:15;;;;8408:1;8401:9;;;;;8507:14;;8374:195;;;-1:-1:-1;;;8606:23:39;;;8600:30;;8639:65;8699:3;8690:13;;8600:30;8639:65;:::i;:::-;8741:23;;;8735:30;7453:12;;8828:4;8819:14;;7441:25;7515:4;7504:16;;;7498:23;7482:14;;;7475:47;8891:4;8871:25;;8865:32;7453:12;;8960:4;8951:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9023:4;9003:25;;8997:32;7453:12;;9092:4;9083:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9155:4;9135:25;;9129:32;7453:12;;9224:4;9215:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9287:4;9267:25;;9261:32;7453:12;;9356:4;9347:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9419:4;9399:25;;;9393:32;7453:12;;9488:4;9479:14;;7441:25;7504:16;7498:23;7482:14;;;;7475:47;;;;-1:-1:-1;;7873:1627:39:o;9505:326::-;9598:5;9621:1;9631:194;9645:4;9642:1;9639:11;9631:194;;;9704:13;;9692:26;;9741:4;9765:12;;;;9800:15;;;;9665:1;9658:9;9631:194;;9836:1166;9944:12;;9891:3;;9919:6;;9978:3;9891;10055:200;10069:4;10066:1;10063:11;10055:200;;;10130:13;;10116:28;;10167:4;10230:15;;;;10193:14;;;;10089:1;10082:9;10055:200;;;10059:3;;;10301:4;10294:5;10290:16;10284:23;10316:65;10373:6;10368:3;10364:16;10350:12;10316:65;:::i;:::-;-1:-1:-1;10429:4:39;10418:16;;10412:23;4613:10;4602:22;10487:6;10478:16;;4590:35;10543:4;10532:16;;10526:23;10558:58;10608:6;10599:16;;10526:23;10558:58;:::i;:::-;-1:-1:-1;10664:4:39;10653:16;;10647:23;4613:10;4602:22;10722:6;10713:16;;4590:35;10778:4;10767:16;;10761:23;3748:13;3741:21;10834:6;10825:16;;3729:34;10890:4;10879:16;;10873:23;10921:6;10912:16;;10905:28;;;10949:47;10983:12;;;10873:23;10949:47;:::i;:::-;10942:54;9836:1166;-1:-1:-1;;;;;9836:1166:39:o;11007:1524::-;11186:2;11168:21;;;11234:13;;3857:12;;11249:18;;;3845:25;3922:16;3916:23;3909:31;3902:39;3886:14;;;3879:63;11322:2;11314:6;11310:15;11304:22;11299:2;11288:9;11284:18;11277:50;11149:4;11374;11366:6;11362:17;11356:24;11399:6;11442:2;11436:3;11425:9;11421:19;11414:31;11468:52;11515:3;11504:9;11500:19;11486:12;11468:52;:::i;:::-;11454:66;;11569:2;11561:6;11557:15;11551:22;11582:54;11631:3;11620:9;11616:19;11600:14;-1:-1:-1;;;;;4495:30:39;4483:43;;4430:102;11582:54;-1:-1:-1;11685:3:39;11673:16;;11667:23;4613:10;4602:22;;11748:3;11733:19;;4590:35;11699:54;11808:3;11800:6;11796:16;11790:23;11784:3;11773:9;11769:19;11762:52;11863:3;11855:6;11851:16;11845:23;11887:3;11899:71;11966:2;11955:9;11951:18;11935:14;3857:12;;3845:25;;3933:4;3922:16;;;3916:23;3909:31;3902:39;3886:14;;3879:63;3774:174;11899:71;12007:3;11995:16;;11989:23;12031:3;12050:18;;;12043:30;;;;12110:15;;;12104:22;4749:12;;-1:-1:-1;;;;;4745:21:39;;;12191:3;12176:19;;4733:34;4813:4;4802:16;;4796:23;4838:10;4880:21;;;4864:14;;;4857:45;4955:4;4944:16;;4938:23;4934:32;;4918:14;;;4911:56;5020:4;5009:16;;5003:23;4999:32;4983:14;;;4976:56;5085:4;5074:16;;;5068:23;5064:32;5048:14;;;5041:56;12245:6;12233:19;;12227:26;;-1:-1:-1;12262:66:39;12323:3;12308:19;;12227:26;12262:66;:::i;:::-;12365:15;;12359:22;12421;;;-1:-1:-1;;12417:36:39;12397:18;;;12390:64;12359:22;-1:-1:-1;12471:54:39;;-1:-1:-1;12425:6:39;12359:22;12471:54;:::i;:::-;12463:62;11007:1524;-1:-1:-1;;;;;;11007:1524:39:o;12536:331::-;12641:9;12652;12694:8;12682:10;12679:24;12676:44;;;12716:1;12713;12706:12;12676:44;12745:6;12735:8;12732:20;12729:40;;;12765:1;12762;12755:12;12729:40;-1:-1:-1;;12791:23:39;;;12836:25;;;;;-1:-1:-1;12536:331:39:o;12872:271::-;13055:6;13047;13042:3;13029:33;13011:3;13081:16;;13106:13;;;13081:16;12872:271;-1:-1:-1;12872:271:39:o;13148:687::-;13463:6;13452:9;13445:25;13506:6;13501:2;13490:9;13486:18;13479:34;13549:6;13544:2;13533:9;13529:18;13522:34;13608:26;13604:31;13596:6;13592:44;13587:2;13576:9;13572:18;13565:72;13674:6;13668:3;13657:9;13653:19;13646:35;13718:3;13712;13701:9;13697:19;13690:32;13426:4;13739:46;13780:3;13769:9;13765:19;13757:6;13739:46;:::i;:::-;13731:54;;13822:6;13816:3;13805:9;13801:19;13794:35;13148:687;;;;;;;;;;:::o;13840:118::-;13926:5;13919:13;13912:21;13905:5;13902:32;13892:60;;13948:1;13945;13938:12;13892:60;13840:118;:::o;13963:245::-;14030:6;14083:2;14071:9;14062:7;14058:23;14054:32;14051:52;;;14099:1;14096;14089:12;14051:52;14131:9;14125:16;14150:28;14172:5;14150:28;:::i;:::-;14197:5;13963:245;-1:-1:-1;;;13963:245:39:o;14213:128::-;14278:20;;14307:28;14278:20;14307:28;:::i;:::-;14213:128;;;:::o;14346:357::-;14410:5;14458:4;14446:9;14441:3;14437:19;14433:30;14430:50;;;14476:1;14473;14466:12;14430:50;14498:17;;:::i;:::-;14489:26;;14551:9;14538:23;14531:5;14524:38;14614:2;14603:9;14599:18;14586:32;14627:30;14649:7;14627:30;:::i;:::-;14684:2;14673:14;;14666:31;14677:5;14346:357;-1:-1:-1;;14346:357:39:o;14708:171::-;14775:20;;-1:-1:-1;;;;;14824:30:39;;14814:41;;14804:69;;14869:1;14866;14859:12;14884:163;14951:20;;15011:10;15000:22;;14990:33;;14980:61;;15037:1;15034;15027:12;15052:696;15105:5;15153:4;15141:9;15136:3;15132:19;15128:30;15125:50;;;15171:1;15168;15161:12;15125:50;15204:2;15198:9;15246:4;15238:6;15234:17;15317:6;15305:10;15302:22;-1:-1:-1;;;;;15269:10:39;15266:34;15263:62;15260:88;;;15328:18;;:::i;:::-;15364:2;15357:22;15397:6;-1:-1:-1;15397:6:39;15427:28;15445:9;15427:28;:::i;:::-;15419:6;15412:44;15489:37;15522:2;15511:9;15507:18;15489:37;:::i;:::-;15484:2;15476:6;15472:15;15465:62;15560:37;15593:2;15582:9;15578:18;15560:37;:::i;:::-;15555:2;15547:6;15543:15;15536:62;15631:37;15664:2;15653:9;15649:18;15631:37;:::i;:::-;15626:2;15618:6;15614:15;15607:62;15703:38;15736:3;15725:9;15721:19;15703:38;:::i;:::-;15697:3;15689:6;15685:16;15678:64;;15052:696;;;;:::o;15753:153::-;15831:20;;15880:1;15870:12;;15860:40;;15896:1;15893;15886:12;15911:1421;15969:5;16017:6;16005:9;16000:3;15996:19;15992:32;15989:52;;;16037:1;16034;16027:12;15989:52;16059:22;;:::i;:::-;16050:31;;16104:39;16133:9;16104:39;:::i;:::-;16097:5;16090:54;16176:48;16220:2;16209:9;16205:18;16176:48;:::i;:::-;16171:2;16164:5;16160:14;16153:72;16257:48;16301:2;16290:9;16286:18;16257:48;:::i;:::-;16252:2;16245:5;16241:14;16234:72;16338:48;16382:2;16371:9;16367:18;16338:48;:::i;:::-;16333:2;16326:5;16322:14;16315:72;16420:49;16464:3;16453:9;16449:19;16420:49;:::i;:::-;16414:3;16407:5;16403:15;16396:74;16503:49;16547:3;16536:9;16532:19;16503:49;:::i;:::-;16497:3;16490:5;16486:15;16479:74;16586:49;16630:3;16619:9;16615:19;16586:49;:::i;:::-;16580:3;16573:5;16569:15;16562:74;16669:38;16702:3;16691:9;16687:19;16669:38;:::i;:::-;16663:3;16656:5;16652:15;16645:63;16727:3;16762:48;16806:2;16795:9;16791:18;16762:48;:::i;:::-;16746:14;;;16739:72;16830:3;16865:48;16894:18;;;16865:48;:::i;:::-;16849:14;;;16842:72;16933:3;16968:48;16997:18;;;16968:48;:::i;:::-;16952:14;;;16945:72;17036:3;17071:48;17100:18;;;17071:48;:::i;:::-;17055:14;;;17048:72;17139:3;17174:48;17203:18;;;17174:48;:::i;:::-;17158:14;;;17151:72;17242:3;17277:48;17306:18;;;17277:48;:::i;:::-;17261:14;;;17254:72;17265:5;15911:1421;-1:-1:-1;;15911:1421:39:o;17337:668::-;17387:5;17440:3;17433:4;17425:6;17421:17;17417:27;17407:55;;17458:1;17455;17448:12;17407:55;17491:2;17485:9;17513:3;17555:2;17547:6;17543:15;17624:6;17612:10;17609:22;-1:-1:-1;;;;;17576:10:39;17573:34;17570:62;17567:88;;;17635:18;;:::i;:::-;17671:2;17664:22;17735:15;;17706:6;17762:15;;;17759:35;;;17790:1;17787;17780:12;17759:35;17814:6;17829:146;17845:6;17840:3;17837:15;17829:146;;;17913:17;;17901:30;;17960:4;17951:14;;;;17862;17829:146;;;-1:-1:-1;17993:6:39;;17337:668;-1:-1:-1;;;;;17337:668:39:o;18010:155::-;18090:20;;18139:1;18129:12;;18119:40;;18155:1;18152;18145:12;18170:280;18227:5;18275:4;18263:9;18258:3;18254:19;18250:30;18247:50;;;18293:1;18290;18283:12;18247:50;18315:17;;:::i;:::-;18306:26;;18368:9;18355:23;18348:5;18341:38;18439:2;18428:9;18424:18;18411:32;18406:2;18399:5;18395:14;18388:56;18170:280;;;;:::o;18455:720::-;18537:5;18590:3;18583:4;18575:6;18571:17;18567:27;18557:55;;18608:1;18605;18598:12;18557:55;18631:2;18662;18656:9;18704:3;18696:6;18692:16;18774:6;18762:10;18759:22;-1:-1:-1;;;;;18726:10:39;18723:34;18720:62;18717:88;;;18785:18;;:::i;:::-;18814:22;;18856:6;18897:3;18885:16;;18913:15;;;18910:35;;;18941:1;18938;18931:12;18910:35;18965:6;18980:165;18996:6;18991:3;18988:15;18980:165;;;19062:38;19096:3;19091;19062:38;:::i;:::-;19050:51;;19130:4;19121:14;;;;19013:12;;18980:165;;;-1:-1:-1;19163:6:39;;18455:720;-1:-1:-1;;;;;;18455:720:39:o;19180:698::-;19240:5;19293:3;19286:4;19278:6;19274:17;19270:27;19260:55;;19311:1;19308;19301:12;19260:55;19334:2;19365;19359:9;19407:3;19399:6;19395:16;19477:6;19465:10;19462:22;-1:-1:-1;;;;;19429:10:39;19426:34;19423:62;19420:88;;;19488:18;;:::i;:::-;19517:22;;19559:6;19600:3;19588:16;;19616:15;;;19613:35;;;19644:1;19641;19634:12;19613:35;19668:6;19683:165;19699:6;19694:3;19691:15;19683:165;;;19765:38;19799:3;19794;19765:38;:::i;:::-;19753:51;;19833:4;19824:14;;;;19716:12;;19683:165;;19883:1264;19945:5;19984:9;19979:3;19975:19;20014:6;20010:2;20006:15;20003:35;;;20034:1;20031;20024:12;20003:35;20056:22;;:::i;:::-;20047:31;;20101:41;20132:9;20101:41;:::i;:::-;20094:5;20087:56;20175:50;20221:2;20210:9;20206:18;20175:50;:::i;:::-;20170:2;20163:5;20159:14;20152:74;20245:6;20285:2;20279;20275:7;20271:2;20267:16;20263:25;20260:45;;;20301:1;20298;20291:12;20260:45;20329:22;;:::i;:::-;20314:37;;20376:81;20453:3;20448:2;20437:9;20433:18;20376:81;:::i;:::-;20367:7;20360:98;20492:60;20548:3;20542;20531:9;20527:19;20492:60;:::i;:::-;20487:2;20478:7;20474:16;20467:86;20587:55;20638:3;20631:4;20620:9;20616:20;20587:55;:::i;:::-;20582:2;20573:7;20569:16;20562:81;20679:55;20730:3;20723:4;20712:9;20708:20;20679:55;:::i;:::-;20672:4;20663:7;20659:18;20652:83;20771:55;20822:3;20815:4;20804:9;20800:20;20771:55;:::i;:::-;20764:4;20755:7;20751:18;20744:83;20863:55;20914:3;20907:4;20896:9;20892:20;20863:55;:::i;:::-;20856:4;20847:7;20843:18;20836:83;20955:55;21006:3;20999:4;20988:9;20984:20;20955:55;:::i;:::-;20948:4;20939:7;20935:18;20928:83;21047:53;21096:3;21091:2;21080:9;21076:18;21047:53;:::i;:::-;21040:4;21027:18;;21020:81;-1:-1:-1;21128:2:39;21117:14;;21110:31;21121:5;19883:1264;-1:-1:-1;;19883:1264:39:o;21152:659::-;21213:5;21266:3;21259:4;21251:6;21247:17;21243:27;21233:55;;21284:1;21281;21274:12;21233:55;21317:2;21311:9;21359:3;21351:6;21347:16;21429:6;21417:10;21414:22;-1:-1:-1;;;;;21381:10:39;21378:34;21375:62;21372:88;;;21440:18;;:::i;:::-;21476:2;21469:22;21511:6;21552:3;21540:16;;21568:15;;;21565:35;;;21596:1;21593;21586:12;21565:35;21620:6;21635:146;21651:6;21646:3;21643:15;21635:146;;;21719:17;;21707:30;;21766:4;21757:14;;;;21668;21635:146;;21816:848;21875:5;21923:6;21911:9;21906:3;21902:19;21898:32;21895:52;;;21943:1;21940;21933:12;21895:52;21965:22;;:::i;:::-;21956:31;;22010:40;22046:3;22035:9;22010:40;:::i;:::-;22003:5;21996:55;22085:59;22140:3;22134;22123:9;22119:19;22085:59;:::i;:::-;22078:4;22071:5;22067:16;22060:85;22179:39;22212:4;22201:9;22197:20;22179:39;:::i;:::-;22172:4;22165:5;22161:16;22154:65;22253:62;22311:3;22304:4;22293:9;22289:20;22253:62;:::i;:::-;22246:4;22239:5;22235:16;22228:88;22350:39;22383:4;22372:9;22368:20;22350:39;:::i;:::-;22343:4;22336:5;22332:16;22325:65;22424:37;22455:4;22444:9;22440:20;22424:37;:::i;:::-;22417:4;22410:5;22406:16;22399:63;22513:4;22502:9;22498:20;22485:34;-1:-1:-1;;;;;22534:6:39;22531:30;22528:50;;;22574:1;22571;22564:12;22528:50;22612:45;22653:3;22644:6;22633:9;22629:22;22612:45;:::i;:::-;22605:4;22598:5;22594:16;22587:71;;21816:848;;;;:::o;22669:1497::-;22753:6;22806:2;22794:9;22785:7;22781:23;22777:32;22774:52;;;22822:1;22819;22812:12;22774:52;22862:9;22849:23;-1:-1:-1;;;;;22932:2:39;22924:6;22921:14;22918:34;;;22948:1;22945;22938:12;22918:34;22971:22;;;;23027:6;23009:16;;;23005:29;23002:49;;;23047:1;23044;23037:12;23002:49;23073:22;;:::i;:::-;23118:48;23158:7;23154:2;23118:48;:::i;:::-;23111:5;23104:63;23220:2;23216;23212:11;23199:25;23194:2;23187:5;23183:14;23176:49;23271:2;23267;23263:11;23250:25;23300:2;23290:8;23287:16;23284:36;;;23316:1;23313;23306:12;23284:36;23352:44;23388:7;23377:8;23373:2;23369:17;23352:44;:::i;:::-;23347:2;23340:5;23336:14;23329:68;;23429:31;23455:3;23451:2;23447:12;23429:31;:::i;:::-;23424:2;23417:5;23413:14;23406:55;23494:31;23520:3;23516:2;23512:12;23494:31;:::i;:::-;23488:3;23481:5;23477:15;23470:56;23580:3;23576:2;23572:12;23559:26;23553:3;23546:5;23542:15;23535:51;23619:58;23669:7;23663:3;23659:2;23655:12;23619:58;:::i;:::-;23613:3;23606:5;23602:15;23595:83;23697:3;23754:2;23750;23746:11;23733:25;23727:3;23720:5;23716:15;23709:50;23778:3;23817:46;23855:7;23850:2;23846;23842:11;23817:46;:::i;:::-;23808:6;23801:5;23797:18;23790:74;23896:52;23940:7;23934:3;23930:2;23926:12;23896:52;:::i;:::-;23891:2;23884:5;23880:14;23873:76;23995:3;23991:2;23987:12;23974:26;23958:42;;24025:2;24015:8;24012:16;24009:36;;;24041:1;24038;24031:12;24009:36;24077:58;24127:7;24116:8;24112:2;24108:17;24077:58;:::i;:::-;24061:14;;;24054:82;-1:-1:-1;24065:5:39;22669:1497;-1:-1:-1;;;;;22669:1497:39:o","linkReferences":{}},"methodIdentifiers":{"validateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"f4c7c1fa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"validateAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0xf67f8a37e7a84b219d2d902d38ea2e8afd0cf5a5ec0902e261a55ee76cbc88b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d8807903f6be1de9010d16c93c8356f774ba5f726bc2a76e2bc05116264fbe3\",\"dweb:/ipfs/QmbgwQzrCEd7wRNEikjSxwWf92VepNGCzEfLdVbh7nyym8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccountIsNotVerified"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaAccountValidation.sol":{"keccak256":"0xf67f8a37e7a84b219d2d902d38ea2e8afd0cf5a5ec0902e261a55ee76cbc88b7","urls":["bzz-raw://7d8807903f6be1de9010d16c93c8356f774ba5f726bc2a76e2bc05116264fbe3","dweb:/ipfs/QmbgwQzrCEd7wRNEikjSxwWf92VepNGCzEfLdVbh7nyym8"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index e32a99c8..4dd624c8 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isAccountVerified","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516107a43803806107a483398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6106ad806100f76000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806361f0e7181161005b57806361f0e718146100be578063a92d923a146100e1578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a05780633886c09b146100a8575b600080fd5b61008a610106565b60405161009791906103fc565b60405180910390f35b61008a610142565b6100b0610178565b604051908152602001610097565b6100d16100cc3660046104d1565b61019e565b6040519015158152602001610097565b6100f46100ef3660046104d1565b610263565b005b6100b06103ce565b6100b0601081565b61010e6103dd565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103dd565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b60006010610187600182610580565b60108110610197576101976105a5565b0154905090565b600080600080602085015192506040850151915060608501519050600085805190602001209050602060009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d838e8e8e8e8e6040518863ffffffff1660e01b815260040161021297969594939291906105bb565b602060405180830381865afa15801561022f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610253919061064e565b9c9b505050505050505050505050565b6020810151600061027660016010610580565b60108110610286576102866105a5565b015481146102d55780600061029d60016010610580565b601081106102ad576102ad6105a5565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc09061031c908d9086908e908e908e908e908e906004016105bb565b602060405180830381865afa158015610339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035d919061064e565b905080156103a95760006010604086016102408701835b601081101561039f578251855581518455600194850194938401936020938401939092019101610374565b50505050506103c2565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b60008061018760016010610580565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610425578151835260209283019290910190600101610406565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045557600080fd5b813567ffffffffffffffff808211156104705761047061042e565b604051601f8301601f19908116603f011681019082821181831017156104985761049861042e565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156104ec57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461051757600080fd5b945060608801359350608088013567ffffffffffffffff8082111561053b57600080fd5b6105478b838c01610444565b945060a08a0135935060c08a013591508082111561056457600080fd5b506105718a828b01610444565b91505092959891949750929550565b6000828210156105a057634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561061757868101830151858201610100015282016105fa565b8181111561062a57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561066057600080fd5b8151801515811461067057600080fd5b939250505056fea26469706673582212200de6fe76f788b59a7d48286dcde97996b77c2bc2a878889ad8abd89c101a22ee64736f6c634300080c0033","sourceMap":"369:5291:64:-:0;;;1074:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1148:7;:57;;-1:-1:-1;;;;;;1148:57:64;-1:-1:-1;;;;;1148:57:64;;;;;1270:13;-1:-1:-1;1232:34:64;-1:-1:-1;569:2:64;1232:34;:::i;:::-;1215:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:5291:64;;-1:-1:-1;369:5291:64;14:351:66;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:66;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:66:o;370:222::-;410:4;438:1;435;432:8;429:131;;;482:10;477:3;473:20;470:1;463:31;517:4;514:1;507:15;545:4;542:1;535:15;429:131;-1:-1:-1;577:9:66;;370:222::o;597:127::-;658:10;653:3;649:20;646:1;639:31;689:4;686:1;679:15;713:4;710:1;703:15;597:127;369:5291:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806361f0e7181161005b57806361f0e718146100be578063a92d923a146100e1578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a05780633886c09b146100a8575b600080fd5b61008a610106565b60405161009791906103fc565b60405180910390f35b61008a610142565b6100b0610178565b604051908152602001610097565b6100d16100cc3660046104d1565b61019e565b6040519015158152602001610097565b6100f46100ef3660046104d1565b610263565b005b6100b06103ce565b6100b0601081565b61010e6103dd565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103dd565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b60006010610187600182610580565b60108110610197576101976105a5565b0154905090565b600080600080602085015192506040850151915060608501519050600085805190602001209050602060009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08d838e8e8e8e8e6040518863ffffffff1660e01b815260040161021297969594939291906105bb565b602060405180830381865afa15801561022f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610253919061064e565b9c9b505050505050505050505050565b6020810151600061027660016010610580565b60108110610286576102866105a5565b015481146102d55780600061029d60016010610580565b601081106102ad576102ad6105a5565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc09061031c908d9086908e908e908e908e908e906004016105bb565b602060405180830381865afa158015610339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035d919061064e565b905080156103a95760006010604086016102408701835b601081101561039f578251855581518455600194850194938401936020938401939092019101610374565b50505050506103c2565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b60008061018760016010610580565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610425578151835260209283019290910190600101610406565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045557600080fd5b813567ffffffffffffffff808211156104705761047061042e565b604051601f8301601f19908116603f011681019082821181831017156104985761049861042e565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156104ec57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461051757600080fd5b945060608801359350608088013567ffffffffffffffff8082111561053b57600080fd5b6105478b838c01610444565b945060a08a0135935060c08a013591508082111561056457600080fd5b506105718a828b01610444565b91505092959891949750929550565b6000828210156105a057634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561061757868101830151858201610100015282016105fa565b8181111561062a57600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561066057600080fd5b8151801515811461067057600080fd5b939250505056fea26469706673582212200de6fe76f788b59a7d48286dcde97996b77c2bc2a878889ad8abd89c101a22ee64736f6c634300080c0033","sourceMap":"369:5291:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1753:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1994:172;;;:::i;1546:137::-;;;:::i;:::-;;;662:25:66;;;650:2;635:18;1546:137:64;516:177:66;4660:998:64;;;;;;:::i;:::-;;:::i;:::-;;;2724:14:66;;2717:22;2699:41;;2687:2;2672:18;4660:998:64;2559:187:66;2172:2482:64;;;;;;:::i;:::-;;:::i;:::-;;1350:135;;;:::i;515:56::-;;569:2;515:56;;1753:170;1831:46;;:::i;:::-;1893:23;;;;;;;;;;;-1:-1:-1;;1893:23:64;;-1:-1:-1;1893:23:64;;;;;;;;;;;;;;;;;;;;;;;;1753:170;:::o;1994:172::-;2073:46;;:::i;:::-;2135:24;;;;;;;;;;2142:17;2135:24;;;;;;2142:17;;2135:24;;;;;;;;;;;;;;;;1994:172;:::o;1546:137::-;1597:7;1623:17;1641:34;1674:1;1623:17;1641:34;:::i;:::-;1623:53;;;;;;;:::i;:::-;;;1616:60;;1546:137;:::o;4660:998::-;4975:4;4991:18;5019:19;5048:21;5136:4;5126:8;5122:19;5116:26;5102:40;;5190:4;5180:8;5176:19;5170:26;5155:41;;5246:4;5236:8;5232:19;5226:26;5209:43;;5272:26;5311:8;5301:19;;;;;;5272:48;;5350:7;;;;;;;;;-1:-1:-1;;;;;5350:7:64;-1:-1:-1;;;;;5350:28:64;;5396:15;5429:18;5465:30;5513:18;5549:15;5582:11;5611:26;5350:301;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5331:320;4660:998;-1:-1:-1;;;;;;;;;;;;4660:998:64:o;2172:2482::-;2594:4;2580:19;;2574:26;2477:34;2696;2729:1;569:2;2696:34;:::i;:::-;2679:52;;;;;;;:::i;:::-;;;2637:26;:94;2620:297;;2796:26;2840:16;2857:34;2890:1;569:2;2857:34;:::i;:::-;2840:52;;;;;;;:::i;:::-;;;2763:143;;-1:-1:-1;;;2763:143:64;;;;;4820:25:66;;;;4861:18;;;4854:34;4793:18;;2763:143:64;;;;;;;2620:297;2956:19;;;;;;;;;;3012:7;;:269;;-1:-1:-1;;;3012:269:64;;2927:26;;-1:-1:-1;;;;;3012:7:64;;:28;;:269;;3054:15;;2956:19;;3115:30;;3159:18;;3191:15;;3220:11;;3245:26;;3012:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2986:295;;3296:18;3292:1356;;;3434:21;3492:22;3782:2;3768:17;;3917:115;;;3434:21;4050:516;4111:30;4108:1;4105:37;4050:516;;;4240:18;;4220:39;;4413:19;;4392:41;;4368:1;4351:19;;;;4528:20;;;;4312:2;4295:20;;;;4470:21;;;;4170:9;4050:516;;;4054:50;;;;;3292:1356;;;4617:20;;-1:-1:-1;;;4617:20:64;;;;;;;;;;;3292:1356;2467:2187;;;2172:2482;;;;;;;:::o;1350:135::-;1400:7;;1443:34;1476:1;569:2;1443:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:66:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:718;872:5;925:3;918:4;910:6;906:17;902:27;892:55;;943:1;940;933:12;892:55;979:6;966:20;1005:18;1042:2;1038;1035:10;1032:36;;;1048:18;;:::i;:::-;1123:2;1117:9;1091:2;1177:13;;-1:-1:-1;;1173:22:66;;;1197:2;1169:31;1165:40;1153:53;;;1221:18;;;1241:22;;;1218:46;1215:72;;;1267:18;;:::i;:::-;1307:10;1303:2;1296:22;1342:2;1334:6;1327:18;1388:3;1381:4;1376:2;1368:6;1364:15;1360:26;1357:35;1354:55;;;1405:1;1402;1395:12;1354:55;1469:2;1462:4;1454:6;1450:17;1443:4;1435:6;1431:17;1418:54;1516:1;1509:4;1504:2;1496:6;1492:15;1488:26;1481:37;1536:6;1527:15;;;;;;830:718;;;;:::o;1553:1001::-;1684:6;1692;1700;1708;1716;1724;1732;1785:3;1773:9;1764:7;1760:23;1756:33;1753:53;;;1802:1;1799;1792:12;1753:53;1825:23;;;-1:-1:-1;1895:2:66;1880:18;;1867:32;;-1:-1:-1;1949:2:66;1934:18;;1921:32;-1:-1:-1;;1982:43:66;;1972:54;;1962:82;;2040:1;2037;2030:12;1962:82;2063:5;-1:-1:-1;2115:2:66;2100:18;;2087:32;;-1:-1:-1;2170:3:66;2155:19;;2142:33;2194:18;2224:14;;;2221:34;;;2251:1;2248;2241:12;2221:34;2274:49;2315:7;2306:6;2295:9;2291:22;2274:49;:::i;:::-;2264:59;;2370:3;2359:9;2355:19;2342:33;2332:43;;2428:3;2417:9;2413:19;2400:33;2384:49;;2458:2;2448:8;2445:16;2442:36;;;2474:1;2471;2464:12;2442:36;;2497:51;2540:7;2529:8;2518:9;2514:24;2497:51;:::i;:::-;2487:61;;;1553:1001;;;;;;;;;;:::o;2933:222::-;2973:4;3001:1;2998;2995:8;2992:131;;;3045:10;3040:3;3036:20;3033:1;3026:31;3080:4;3077:1;3070:15;3108:4;3105:1;3098:15;2992:131;-1:-1:-1;3140:9:66;;2933:222::o;3160:127::-;3221:10;3216:3;3212:20;3209:1;3202:31;3252:4;3249:1;3242:15;3276:4;3273:1;3266:15;3292:1067;3607:6;3596:9;3589:25;3570:4;3633:2;3671:6;3666:2;3655:9;3651:18;3644:34;3714:6;3709:2;3698:9;3694:18;3687:34;3773:26;3769:31;3761:6;3757:44;3752:2;3741:9;3737:18;3730:72;3839:6;3833:3;3822:9;3818:19;3811:35;3883:3;3877;3866:9;3862:19;3855:32;3916:6;3910:13;3960:6;3954:3;3943:9;3939:19;3932:35;3985:1;3995:141;4009:6;4006:1;4003:13;3995:141;;;4105:14;;;4101:23;;4095:30;4070:17;;;4089:3;4066:27;4059:67;4024:10;;3995:141;;;4154:6;4151:1;4148:13;4145:92;;;4225:1;4219:3;4210:6;4199:9;4195:22;4191:32;4184:43;4145:92;-1:-1:-1;4340:3:66;4325:19;;4318:35;;;;-1:-1:-1;;4298:2:66;4277:15;;;;-1:-1:-1;;4273:29:66;4258:45;4305:3;4254:55;;3292:1067;-1:-1:-1;;;;;;3292:1067:66:o;4364:277::-;4431:6;4484:2;4472:9;4463:7;4459:23;4455:32;4452:52;;;4500:1;4497;4490:12;4452:52;4532:9;4526:16;4585:5;4578:13;4571:21;4564:5;4561:32;4551:60;;4607:1;4604;4597:12;4551:60;4630:5;4364:277;-1:-1:-1;;;4364:277:66:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isAccountVerified(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"61f0e718","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"isAccountVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/Account.sol\":{\"keccak256\":\"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4\",\"dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xf516fffa8a66e7285657ad61e2f4f7c0ba05bd52636fa7335540b5e100ab9a85\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://938a086943b7ce416d80d86cc77bad2db39ddc103e531dd312e26e83dc69c7f8\",\"dweb:/ipfs/QmT5xbLySqK1fjhMRGmPYZJvuzQx2gPU4dLSLKPyrekT65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"view","type":"function","name":"isAccountVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/Account.sol":{"keccak256":"0x5c182e86f51faab38bc60996239778dbb6f45d36087b64904b4bf5dd10e70c91","urls":["bzz-raw://bde0668bdf069215f0d684a05ac1d15bde6d234ae1983d26e86057de7a85e6b4","dweb:/ipfs/QmPKbrWobLsdxp1VjYmo3rg133YjLWe9wmnUZuenTE22gc"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0xf516fffa8a66e7285657ad61e2f4f7c0ba05bd52636fa7335540b5e100ab9a85","urls":["bzz-raw://938a086943b7ce416d80d86cc77bad2db39ddc103e531dd312e26e83dc69c7f8","dweb:/ipfs/QmT5xbLySqK1fjhMRGmPYZJvuzQx2gPU4dLSLKPyrekT65"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106a13803806106a183398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6105aa806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102f9565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103ce565b610160565b005b6100956102cb565b610095601081565b6100d06102da565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102da565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047d565b60108110610159576101596104a2565b0154905090565b602081015160006101736001601061047d565b60108110610183576101836104a2565b015481146101d25780600061019a6001601061047d565b601081106101aa576101aa6104a2565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc090610219908d9086908e908e908e908e908e906004016104b8565b602060405180830381865afa158015610236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025a919061054b565b905080156102a65760006010604086016102408701835b601081101561029c578251855581518455600194850194938401936020938401939092019101610271565b50505050506102bf565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047d565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610322578151835260209283019290910190600101610303565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035257600080fd5b813567ffffffffffffffff8082111561036d5761036d61032b565b604051601f8301601f19908116603f011681019082821181831017156103955761039561032b565b816040528381528660208588010111156103ae57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103e957600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041457600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043857600080fd5b6104448b838c01610341565b945060a08a0135935060c08a013591508082111561046157600080fd5b5061046e8a828b01610341565b91505092959891949750929550565b60008282101561049d57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561051457868101830151858201610100015282016104f7565b8181111561052757600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561055d57600080fd5b8151801515811461056d57600080fd5b939250505056fea2646970667358221220350fe0f44e9c1c341077cc9edb5783a4170ba0e7bcb82fd734125495f71288cb64736f6c634300080c0033","sourceMap":"345:4287:63:-:0;;;1050:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1124:7;:57;;-1:-1:-1;;;;;;1124:57:63;-1:-1:-1;;;;;1124:57:63;;;;;1246:13;-1:-1:-1;1208:34:63;-1:-1:-1;545:2:63;1208:34;:::i;:::-;1191:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;345:4287:63;;-1:-1:-1;345:4287:63;14:351:65;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:65;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:65:o;370:222::-;410:4;438:1;435;432:8;429:131;;;482:10;477:3;473:20;470:1;463:31;517:4;514:1;507:15;545:4;542:1;535:15;429:131;-1:-1:-1;577:9:65;;370:222::o;597:127::-;658:10;653:3;649:20;646:1;639:31;689:4;686:1;679:15;713:4;710:1;703:15;597:127;345:4287:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102f9565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103ce565b610160565b005b6100956102cb565b610095601081565b6100d06102da565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102da565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047d565b60108110610159576101596104a2565b0154905090565b602081015160006101736001601061047d565b60108110610183576101836104a2565b015481146101d25780600061019a6001601061047d565b601081106101aa576101aa6104a2565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc090610219908d9086908e908e908e908e908e906004016104b8565b602060405180830381865afa158015610236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025a919061054b565b905080156102a65760006010604086016102408701835b601081101561029c578251855581518455600194850194938401936020938401939092019101610271565b50505050506102bf565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047d565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610322578151835260209283019290910190600101610303565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035257600080fd5b813567ffffffffffffffff8082111561036d5761036d61032b565b604051601f8301601f19908116603f011681019082821181831017156103955761039561032b565b816040528381528660208588010111156103ae57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103e957600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041457600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043857600080fd5b6104448b838c01610341565b945060a08a0135935060c08a013591508082111561046157600080fd5b5061046e8a828b01610341565b91505092959891949750929550565b60008282101561049d57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561051457868101830151858201610100015282016104f7565b8181111561052757600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561055d57600080fd5b8151801515811461056d57600080fd5b939250505056fea2646970667358221220350fe0f44e9c1c341077cc9edb5783a4170ba0e7bcb82fd734125495f71288cb64736f6c634300080c0033","sourceMap":"345:4287:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1729:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1970:172;;;:::i;1522:137::-;;;:::i;:::-;;;662:25:65;;;650:2;635:18;1522:137:63;516:177:65;2148:2482:63;;;;;;:::i;:::-;;:::i;:::-;;1326:135;;;:::i;491:56::-;;545:2;491:56;;1729:170;1807:46;;:::i;:::-;1869:23;;;;;;;;;;;-1:-1:-1;;1869:23:63;;-1:-1:-1;1869:23:63;;;;;;;;;;;;;;;;;;;;;;;;1729:170;:::o;1970:172::-;2049:46;;:::i;:::-;2111:24;;;;;;;;;;2118:17;2111:24;;;;;;2118:17;;2111:24;;;;;;;;;;;;;;;;1970:172;:::o;1522:137::-;1573:7;1599:17;1617:34;1650:1;1599:17;1617:34;:::i;:::-;1599:53;;;;;;;:::i;:::-;;;1592:60;;1522:137;:::o;2148:2482::-;2570:4;2556:19;;2550:26;2453:34;2672;2705:1;545:2;2672:34;:::i;:::-;2655:52;;;;;;;:::i;:::-;;;2613:26;:94;2596:297;;2772:26;2816:16;2833:34;2866:1;545:2;2833:34;:::i;:::-;2816:52;;;;;;;:::i;:::-;;;2739:143;;-1:-1:-1;;;2739:143:63;;;;;3274:25:65;;;;3315:18;;;3308:34;3247:18;;2739:143:63;;;;;;;2596:297;2932:19;;;;;;;;;;2988:7;;:269;;-1:-1:-1;;;2988:269:63;;2903:26;;-1:-1:-1;;;;;2988:7:63;;:28;;:269;;3030:15;;2932:19;;3091:30;;3135:18;;3167:15;;3196:11;;3221:26;;2988:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2962:295;;3272:18;3268:1356;;;3410:21;3468:22;3758:2;3744:17;;3893:115;;;3410:21;4026:516;4087:30;4084:1;4081:37;4026:516;;;4216:18;;4196:39;;4389:19;;4368:41;;4344:1;4327:19;;;;4504:20;;;;4288:2;4271:20;;;;4446:21;;;;4146:9;4026:516;;;4030:50;;;;;3268:1356;;;4593:20;;-1:-1:-1;;;4593:20:63;;;;;;;;;;;3268:1356;2443:2187;;;2148:2482;;;;;;;:::o;1326:135::-;1376:7;;1419:34;1452:1;545:2;1419:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:65:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:718;872:5;925:3;918:4;910:6;906:17;902:27;892:55;;943:1;940;933:12;892:55;979:6;966:20;1005:18;1042:2;1038;1035:10;1032:36;;;1048:18;;:::i;:::-;1123:2;1117:9;1091:2;1177:13;;-1:-1:-1;;1173:22:65;;;1197:2;1169:31;1165:40;1153:53;;;1221:18;;;1241:22;;;1218:46;1215:72;;;1267:18;;:::i;:::-;1307:10;1303:2;1296:22;1342:2;1334:6;1327:18;1388:3;1381:4;1376:2;1368:6;1364:15;1360:26;1357:35;1354:55;;;1405:1;1402;1395:12;1354:55;1469:2;1462:4;1454:6;1450:17;1443:4;1435:6;1431:17;1418:54;1516:1;1509:4;1504:2;1496:6;1492:15;1488:26;1481:37;1536:6;1527:15;;;;;;830:718;;;;:::o;1553:1001::-;1684:6;1692;1700;1708;1716;1724;1732;1785:3;1773:9;1764:7;1760:23;1756:33;1753:53;;;1802:1;1799;1792:12;1753:53;1825:23;;;-1:-1:-1;1895:2:65;1880:18;;1867:32;;-1:-1:-1;1949:2:65;1934:18;;1921:32;-1:-1:-1;;1982:43:65;;1972:54;;1962:82;;2040:1;2037;2030:12;1962:82;2063:5;-1:-1:-1;2115:2:65;2100:18;;2087:32;;-1:-1:-1;2170:3:65;2155:19;;2142:33;2194:18;2224:14;;;2221:34;;;2251:1;2248;2241:12;2221:34;2274:49;2315:7;2306:6;2295:9;2291:22;2274:49;:::i;:::-;2264:59;;2370:3;2359:9;2355:19;2342:33;2332:43;;2428:3;2417:9;2413:19;2400:33;2384:49;;2458:2;2448:8;2445:16;2442:36;;;2474:1;2471;2464:12;2442:36;;2497:51;2540:7;2529:8;2518:9;2514:24;2497:51;:::i;:::-;2487:61;;;1553:1001;;;;;;;;;;:::o;2741:222::-;2781:4;2809:1;2806;2803:8;2800:131;;;2853:10;2848:3;2844:20;2841:1;2834:31;2888:4;2885:1;2878:15;2916:4;2913:1;2906:15;2800:131;-1:-1:-1;2948:9:65;;2741:222::o;2968:127::-;3029:10;3024:3;3020:20;3017:1;3010:31;3060:4;3057:1;3050:15;3084:4;3081:1;3074:15;3353:1067;3668:6;3657:9;3650:25;3631:4;3694:2;3732:6;3727:2;3716:9;3712:18;3705:34;3775:6;3770:2;3759:9;3755:18;3748:34;3834:26;3830:31;3822:6;3818:44;3813:2;3802:9;3798:18;3791:72;3900:6;3894:3;3883:9;3879:19;3872:35;3944:3;3938;3927:9;3923:19;3916:32;3977:6;3971:13;4021:6;4015:3;4004:9;4000:19;3993:35;4046:1;4056:141;4070:6;4067:1;4064:13;4056:141;;;4166:14;;;4162:23;;4156:30;4131:17;;;4150:3;4127:27;4120:67;4085:10;;4056:141;;;4215:6;4212:1;4209:13;4206:92;;;4286:1;4280:3;4271:6;4260:9;4256:22;4252:32;4245:43;4206:92;-1:-1:-1;4401:3:65;4386:19;;4379:35;;;;-1:-1:-1;;4359:2:65;4338:15;;;;-1:-1:-1;;4334:29:65;4319:45;4366:3;4315:55;;3353:1067;-1:-1:-1;;;;;;3353:1067:65:o;4425:277::-;4492:6;4545:2;4533:9;4524:7;4520:23;4516:32;4513:52;;;4561:1;4558;4551:12;4513:52;4593:9;4587:16;4646:5;4639:13;4632:21;4625:5;4622:32;4612:60;;4668:1;4665;4658:12;4612:60;4691:5;4425:277;-1:-1:-1;;;4425:277:65:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x1ebc8fd5f123b709a82def084d89295d0f2d2ce27fba0f59d430b5862f4ef097\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://72b1e30f73859b6565d78cd3e7da7a6b1a5fd89a8b9045369d4dd71f81f19f44\",\"dweb:/ipfs/QmNwgiUXT3oHV4H8gAcXpq3oA3SymhaZi7Lx2qoNL58QwV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0x1ebc8fd5f123b709a82def084d89295d0f2d2ce27fba0f59d430b5862f4ef097","urls":["bzz-raw://72b1e30f73859b6565d78cd3e7da7a6b1a5fd89a8b9045369d4dd71f81f19f44","dweb:/ipfs/QmNwgiUXT3oHV4H8gAcXpq3oA3SymhaZi7Lx2qoNL58QwV"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file diff --git a/core/src/lib.rs b/core/src/lib.rs index 2f79c64d..f7a4ccd5 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -14,3 +14,6 @@ pub mod utils; /// Mina Proof of State/Account definitions and (de)serialization. pub mod proof; + +/// Solidity-friendly data structures and serialization. +pub mod sol; diff --git a/core/src/main.rs b/core/src/main.rs index eef375c6..bc31cc26 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -111,14 +111,8 @@ async fn main() { process::exit(1); }); - // Use for calling the smart contract to check if the account was verified on Aligned. - let serialized_pub_input = bincode::serialize(&pub_input).unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - let verification_data = aligned_polling_service::submit( - MinaProof::Account((proof, pub_input)), + MinaProof::Account((proof, pub_input.clone())), &chain, &proof_generator_addr, &batcher_addr, @@ -133,26 +127,18 @@ async fn main() { process::exit(1); }); - let is_account_verified = smart_contract_utility::is_account_verified( + if let Err(err) = smart_contract_utility::validate_account( verification_data, - serialized_pub_input, + &pub_input, &chain, ð_rpc_url, ) .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); - - info!( - "Mina account {public_key} was {} on Aligned!", - if is_account_verified { - "verified" - } else { - "not verified" - } - ); + { + error!("Mina account {public_key} was not validated: {err}",); + } else { + info!("Mina account {public_key} was validated!"); + }; } } diff --git a/core/src/mina_polling_service.rs b/core/src/mina_polling_service.rs index 780618f5..0c14c075 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina_polling_service.rs @@ -1,6 +1,7 @@ use std::str::FromStr; use aligned_sdk::core::types::Chain; +use alloy_sol_types::SolValue; use base64::prelude::*; use futures::future::join_all; use graphql_client::{ @@ -19,10 +20,11 @@ use mina_p2p_messages::{ use crate::{ proof::{ - account_proof::{AccountHash, MerkleNode, MinaAccountProof, MinaAccountPubInputs}, + account_proof::{MerkleNode, MinaAccountProof, MinaAccountPubInputs}, state_proof::{MinaStateProof, MinaStatePubInputs}, }, smart_contract_utility::get_bridge_tip_hash, + sol::account::MinaAccountValidation, utils::constants::BRIDGE_TRANSITION_FRONTIER_LEN, }; @@ -102,8 +104,7 @@ pub async fn get_mina_proof_of_account( let (account, ledger_hash, merkle_path) = query_account(rpc_url, state_hash, public_key).await?; - // placeholder - let account_hash = AccountHash::new(&account); + let encoded_account = MinaAccountValidation::Account::try_from(&account)?.abi_encode(); Ok(( MinaAccountProof { @@ -112,7 +113,7 @@ pub async fn get_mina_proof_of_account( }, MinaAccountPubInputs { ledger_hash, - account_hash, + encoded_account, }, )) } diff --git a/core/src/proof/account_proof.rs b/core/src/proof/account_proof.rs index 7f49d41c..49243779 100644 --- a/core/src/proof/account_proof.rs +++ b/core/src/proof/account_proof.rs @@ -2,9 +2,8 @@ use mina_curves::pasta::Fp; use mina_p2p_messages::v2::MinaBaseAccountBinableArgStableV2 as MinaAccount; use serde::{Deserialize, Serialize}; use serde_with::serde_as; -use sha3::Digest; -use crate::proof::serialization::EVMSerialize; +use crate::sol::serialization::SolSerialize; #[serde_as] #[derive(Serialize, Deserialize)] @@ -13,25 +12,13 @@ pub enum MerkleNode { Right(#[serde_as(as = "o1_utils::serialization::SerdeAs")] Fp), } -#[derive(Serialize, Deserialize)] -pub struct AccountHash(pub [u8; 32]); - -impl AccountHash { - // TODO(xqft): hash a Mina account - pub fn new(_account: &MinaAccount) -> Self { - let mut hasher = sha3::Keccak256::new(); - //hasher.update(account); - Self(hasher.finalize_reset().into()) - } -} - #[serde_as] -#[derive(Serialize, Deserialize)] +#[derive(Serialize, Deserialize, Clone)] pub struct MinaAccountPubInputs { - #[serde_as(as = "EVMSerialize")] + #[serde_as(as = "SolSerialize")] pub ledger_hash: Fp, - #[serde_as(as = "EVMSerialize")] - pub account_hash: AccountHash, + /// ABI encoded Mina account (Solidity structure) + pub encoded_account: Vec, } #[serde_as] @@ -39,6 +26,6 @@ pub struct MinaAccountPubInputs { pub struct MinaAccountProof { /// Merkle path between the leaf hash (account hash) and the merkle root (ledger hash) pub merkle_path: Vec, - /// The leaf of the merkle tree. + /// The Mina account pub account: MinaAccount, } diff --git a/core/src/proof/mod.rs b/core/src/proof/mod.rs index a29f9a69..06ea82b9 100644 --- a/core/src/proof/mod.rs +++ b/core/src/proof/mod.rs @@ -12,6 +12,3 @@ pub enum MinaProof { State((MinaStateProof, MinaStatePubInputs)), Account((MinaAccountProof, MinaAccountPubInputs)), } - -/// Proof (de)serialization. -pub mod serialization; diff --git a/core/src/proof/state_proof.rs b/core/src/proof/state_proof.rs index d650cc2c..6d9dcbe1 100644 --- a/core/src/proof/state_proof.rs +++ b/core/src/proof/state_proof.rs @@ -4,21 +4,21 @@ use mina_p2p_messages::v2::{ use serde::{Deserialize, Serialize}; use serde_with::serde_as; -use crate::{proof::serialization::EVMSerialize, utils::constants::BRIDGE_TRANSITION_FRONTIER_LEN}; +use crate::{sol::serialization::SolSerialize, utils::constants::BRIDGE_TRANSITION_FRONTIER_LEN}; #[serde_as] #[derive(Serialize, Deserialize, Clone)] pub struct MinaStatePubInputs { /// The hash of the bridge's transition frontier tip state. Used for making sure that we're /// checking if a candidate tip is better than the latest bridged tip. - #[serde_as(as = "EVMSerialize")] + #[serde_as(as = "SolSerialize")] pub bridge_tip_state_hash: StateHash, /// The state hashes of the candidate chain. - #[serde_as(as = "[EVMSerialize; BRIDGE_TRANSITION_FRONTIER_LEN]")] + #[serde_as(as = "[SolSerialize; BRIDGE_TRANSITION_FRONTIER_LEN]")] pub candidate_chain_state_hashes: [StateHash; BRIDGE_TRANSITION_FRONTIER_LEN], /// The ledger hashes of the candidate chain. The ledger hashes are the root of a Merkle tree /// where the leafs are Mina account hashes. Used for account verification. - #[serde_as(as = "[EVMSerialize; BRIDGE_TRANSITION_FRONTIER_LEN]")] + #[serde_as(as = "[SolSerialize; BRIDGE_TRANSITION_FRONTIER_LEN]")] pub candidate_chain_ledger_hashes: [LedgerHash; BRIDGE_TRANSITION_FRONTIER_LEN], } diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index d996dfff..a909867e 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -13,19 +13,25 @@ use serde::{Deserialize, Serialize}; use serde_with::serde_as; use crate::{ - proof::{serialization::EVMSerialize, state_proof::MinaStatePubInputs}, + proof::{account_proof::MinaAccountPubInputs, state_proof::MinaStatePubInputs}, + sol::serialization::SolSerialize, utils::constants::{ - ANVIL_CHAIN_ID, BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, - BRIDGE_TRANSITION_FRONTIER_LEN, HOLESKY_CHAIN_ID, + ANVIL_CHAIN_ID, BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_DEVNET_ETH_ADDR, + BRIDGE_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, HOLESKY_CHAIN_ID, }, }; abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); +abigen!( + MinaAccountValidationEthereumContract, + "abi/MinaAccountValidation.json" +); type MinaBridgeEthereum = MinaBridgeEthereumContract, Wallet>>; type MinaBridgeEthereumCallOnly = MinaBridgeEthereumContract>; +type MinaAccountValidationEthereumCallOnly = MinaAccountValidationEthereumContract>; sol!( #[allow(clippy::too_many_arguments)] @@ -34,15 +40,26 @@ sol!( "abi/MinaBridge.json" ); +sol!( + #[allow(clippy::too_many_arguments)] + #[sol(rpc)] + MinaAccountValidation, + "abi/MinaAccountValidation.json" +); + #[serde_as] #[derive(Serialize, Deserialize)] -pub struct EVMStateHash(#[serde_as(as = "EVMSerialize")] pub StateHash); +pub struct SolStateHash(#[serde_as(as = "SolSerialize")] pub StateHash); pub struct MinaBridgeConstructorArgs { aligned_service_addr: alloy::primitives::Address, root_state_hash: alloy::primitives::FixedBytes<32>, } +pub struct MinaAccountValidationConstructorArgs { + aligned_service_addr: alloy::primitives::Address, +} + impl MinaBridgeConstructorArgs { pub fn new(aligned_service_addr: &str, root_state_hash: Vec) -> Result { let aligned_service_addr = @@ -53,13 +70,24 @@ impl MinaBridgeConstructorArgs { .try_into() .map_err(|_| "Could not convert root state hash into fixed array".to_string())?, ); - Ok(MinaBridgeConstructorArgs { + Ok(Self { aligned_service_addr, root_state_hash, }) } } +impl MinaAccountValidationConstructorArgs { + pub fn new(aligned_service_addr: &str) -> Result { + let aligned_service_addr = + alloy::primitives::Address::parse_checksummed(aligned_service_addr, None) + .map_err(|err| err.to_string())?; + Ok(Self { + aligned_service_addr, + }) + } +} + pub async fn update_chain( verification_data: AlignedVerificationData, pub_input: &MinaStatePubInputs, @@ -89,7 +117,6 @@ pub async fn update_chain( batch_inclusion_proof, index_in_batch, } = verification_data; - let merkle_proof = batch_inclusion_proof .merkle_path .clone() @@ -162,63 +189,7 @@ pub async fn update_chain( Ok(()) } -pub async fn is_account_verified( - verification_data: AlignedVerificationData, - pub_input: Vec, - chain: &Chain, - eth_rpc_url: &str, -) -> Result { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; - - debug!("Creating contract instance"); - let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; - - let AlignedVerificationData { - verification_data_commitment, - batch_merkle_root, - batch_inclusion_proof, - index_in_batch, - } = verification_data; - - let merkle_proof = batch_inclusion_proof - .merkle_path - .clone() - .into_iter() - .flatten() - .collect(); - - let VerificationDataCommitment { - proof_commitment, - proving_system_aux_data_commitment, - proof_generator_addr, - .. - } = verification_data_commitment; - - debug!("Calling contract"); - - mina_bridge_contract - .is_account_verified( - proof_commitment, - proving_system_aux_data_commitment, - proof_generator_addr, - batch_merkle_root, - merkle_proof, - index_in_batch.into(), - pub_input.into(), - ) - .await - .map_err(|err| err.to_string()) -} - -pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result { +pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, @@ -237,7 +208,7 @@ pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result(&hash) + bincode::deserialize::(&hash) .map_err(|err| format!("Failed to deserialize chain state hashes: {err}")) .map(|hash| hash.0) }) @@ -282,6 +253,69 @@ pub async fn get_bridge_chain_state_hashes( }) } +pub async fn validate_account( + verification_data: AlignedVerificationData, + pub_input: &MinaAccountPubInputs, + chain: &Chain, + eth_rpc_url: &str, +) -> Result { + let bridge_eth_addr = Address::from_str(match chain { + Chain::Devnet => BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, + _ => { + error!("Unimplemented Ethereum contract on selected chain"); + unimplemented!() + } + }) + .map_err(|err| err.to_string())?; + + debug!("Creating contract instance"); + + let contract = mina_account_validation_contract_call_only(eth_rpc_url, bridge_eth_addr)?; + + let serialized_pub_input = bincode::serialize(pub_input) + .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; + + let AlignedVerificationData { + verification_data_commitment, + batch_merkle_root, + batch_inclusion_proof, + index_in_batch, + } = verification_data; + + let merkle_proof = batch_inclusion_proof + .merkle_path + .clone() + .into_iter() + .flatten() + .collect(); + + let VerificationDataCommitment { + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + .. + } = verification_data_commitment; + + debug!("Validating account"); + + let call = contract.validate_account( + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + batch_merkle_root, + merkle_proof, + index_in_batch.into(), + serialized_pub_input.into(), + ); + + info!( + "Estimated account verification gas cost: {}", + call.estimate_gas().await.map_err(|err| err.to_string())? + ); + + call.await.map_err(|err| err.to_string()) +} + pub async fn deploy_mina_bridge_contract( eth_rpc_url: &str, constructor_args: MinaBridgeConstructorArgs, @@ -309,6 +343,32 @@ pub async fn deploy_mina_bridge_contract( Ok(*address) } +pub async fn deploy_mina_account_validation_contract( + eth_rpc_url: &str, + constructor_args: MinaAccountValidationConstructorArgs, + wallet: &EthereumWallet, +) -> Result { + let provider = ProviderBuilder::new() + .with_recommended_fillers() + .wallet(wallet) + .on_http(reqwest::Url::parse(eth_rpc_url).map_err(|err| err.to_string())?); + + let MinaAccountValidationConstructorArgs { + aligned_service_addr, + } = constructor_args; + let contract = MinaAccountValidation::deploy(&provider, aligned_service_addr) + .await + .map_err(|err| err.to_string())?; + let address = contract.address(); + + info!( + "Mina Account Validation contract successfuly deployed with address {}", + address + ); + + Ok(*address) +} + fn mina_bridge_contract( eth_rpc_url: &str, contract_address: Address, @@ -337,3 +397,16 @@ fn mina_bridge_contract_call_only( let client = Arc::new(eth_rpc_provider); Ok(MinaBridgeEthereumCallOnly::new(contract_address, client)) } + +fn mina_account_validation_contract_call_only( + eth_rpc_url: &str, + contract_address: Address, +) -> Result { + let eth_rpc_provider = + Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; + let client = Arc::new(eth_rpc_provider); + Ok(MinaAccountValidationEthereumCallOnly::new( + contract_address, + client, + )) +} diff --git a/core/src/sol/account.rs b/core/src/sol/account.rs new file mode 100644 index 00000000..79d9c676 --- /dev/null +++ b/core/src/sol/account.rs @@ -0,0 +1,311 @@ +use std::iter::zip; + +use alloy::{ + primitives::{Bytes, FixedBytes}, + sol_types::sol, +}; +use mina_p2p_messages::{ + bigint::BigInt, + v2::{ + MinaBaseAccountBinableArgStableV2 as MinaAccount, + MinaBaseAccountTimingStableV2 as MinaTiming, MinaBasePermissionsAuthRequiredStableV2, + MinaNumbersGlobalSlotSinceGenesisMStableV1, MinaNumbersGlobalSlotSpanStableV1, + PicklesBaseProofsVerifiedStableV1, + }, +}; +use num_traits::ToPrimitive; +use MinaAccountValidation::*; + +sol!(MinaAccountValidation, "abi/MinaAccountValidation.json"); + +#[allow(non_snake_case)] +impl TryFrom<&MinaAccount> for Account { + type Error = String; + + fn try_from(value: &MinaAccount) -> Result { + let MinaAccount { + public_key, + token_id, + token_symbol, + balance, + nonce, + receipt_chain_hash, + delegate, + voting_for, + timing, + permissions, + zkapp, + } = value; + + let publicKey = CompressedECPoint { + x: FixedBytes::try_from(public_key.x.as_ref()) + .map_err(|err| format!("Could not convert public key x to FixedBytes: {err}"))?, + isOdd: public_key.is_odd, + }; + let tokenIdKeyHash = FixedBytes::try_from(token_id.0.as_ref()) + .map_err(|err| format!("Could not convert token id to FixedBytes: {err}"))?; + + let tokenSymbol: String = token_symbol + .try_into() + .map_err(|err| format!("Failed to convert token symbol to string: {err}"))?; + let balance = balance.to_u64().ok_or("Failed to convert balance to u64")?; + let nonce = nonce.to_u32().ok_or("Failed to convert nonce to u64")?; + let receiptChainHash = FixedBytes::try_from(receipt_chain_hash.0.as_ref()) + .map_err(|err| format!("Could not convert token id to FixedBytes: {err}"))?; + let delegate = if let Some(delegate) = delegate { + CompressedECPoint { + x: FixedBytes::try_from(delegate.x.as_ref()) + .map_err(|err| format!("Could not delegate x to FixedBytes: {err}"))?, + isOdd: delegate.is_odd, + } + } else { + CompressedECPoint { + x: FixedBytes::ZERO, + isOdd: true, + } + }; + let votingFor = FixedBytes::try_from(voting_for.0.as_ref()) + .map_err(|err| format!("Could not convert voting_for to FixedBytes: {err}"))?; + + let timing = match timing { + MinaTiming::Timed { + initial_minimum_balance, + cliff_time, + cliff_amount, + vesting_period, + vesting_increment, + } => Timing { + initialMinimumBalance: initial_minimum_balance + .to_u64() + .ok_or("Failed to convert initial_minimum_balance to u64".to_string())?, + cliffTime: match cliff_time { + MinaNumbersGlobalSlotSinceGenesisMStableV1::SinceGenesis(cliffTime) => { + cliffTime + .to_u32() + .ok_or("Failed to convert clif_time to u32")? + } + }, + cliffAmount: cliff_amount + .to_u64() + .ok_or("Failed to convert cliff_amount to u64")?, + vestingPeriod: match vesting_period { + MinaNumbersGlobalSlotSpanStableV1::GlobalSlotSpan(vesting_period) => { + vesting_period + .to_u32() + .ok_or("Failed to convert vesting_period to u32")? + } + }, + vestingIncrement: vesting_increment + .to_u64() + .ok_or("Failed to convert vesting_increment to u64")?, + }, + _ => Timing { + initialMinimumBalance: 0, + cliffTime: 0, + cliffAmount: 0, + vestingPeriod: 0, + vestingIncrement: 0, + }, + }; + let mina_to_sol_permissions = + |permissions: MinaBasePermissionsAuthRequiredStableV2| match permissions { + MinaBasePermissionsAuthRequiredStableV2::None => 0, + MinaBasePermissionsAuthRequiredStableV2::Either => 1, + MinaBasePermissionsAuthRequiredStableV2::Proof => 2, + MinaBasePermissionsAuthRequiredStableV2::Signature => 3, + MinaBasePermissionsAuthRequiredStableV2::Impossible => 4, + }; + + let permissions = Permissions { + editState: mina_to_sol_permissions(permissions.edit_state.clone()), + access: mina_to_sol_permissions(permissions.access.clone()), + send: mina_to_sol_permissions(permissions.send.clone()), + rreceive: mina_to_sol_permissions(permissions.receive.clone()), + setDelegate: mina_to_sol_permissions(permissions.set_delegate.clone()), + setPermissions: mina_to_sol_permissions(permissions.set_permissions.clone()), + setVerificationKeyAuth: mina_to_sol_permissions( + permissions.set_verification_key.0.clone(), + ), + setVerificationKeyUint: permissions + .set_verification_key + .1 + .to_u32() + .ok_or("Failed to convert verification key uint to u32")?, + setZkappUri: mina_to_sol_permissions(permissions.set_zkapp_uri.clone()), + editActionState: mina_to_sol_permissions(permissions.edit_action_state.clone()), + setTokenSymbol: mina_to_sol_permissions(permissions.set_token_symbol.clone()), + incrementNonce: mina_to_sol_permissions(permissions.increment_nonce.clone()), + setVotingFor: mina_to_sol_permissions(permissions.set_voting_for.clone()), + setTiming: mina_to_sol_permissions(permissions.set_timing.clone()), + }; + + let zkapp = if let Some(zkapp) = zkapp { + let mut appState: [FixedBytes<32>; 8] = [FixedBytes::ZERO; 8]; + for (state, new_state) in zip(zkapp.app_state.0 .0.clone(), appState.iter_mut()) { + *new_state = FixedBytes::try_from(state.as_ref()) + .map_err(|err| format!("Could not convert app state to FixedBytes: {err}"))?; + } + let verificationKey = if let Some(verification_key) = zkapp.verification_key.clone() { + let mina_to_sol_proofs_verified = + |proofs_verified: PicklesBaseProofsVerifiedStableV1| match proofs_verified { + PicklesBaseProofsVerifiedStableV1::N0 => 0, + PicklesBaseProofsVerifiedStableV1::N1 => 1, + PicklesBaseProofsVerifiedStableV1::N2 => 2, + }; + let mina_to_sol_commitment = + |comm: (BigInt, BigInt)| -> Result { + Ok(Commitment { + x: FixedBytes::try_from(comm.0.as_ref()).map_err(|err| { + format!("Could not convert commitment x to FixedBytes: {err}") + })?, + y: FixedBytes::try_from(comm.1.as_ref()).map_err(|err| { + format!("Could not convert commitment y to FixedBytes: {err}") + })?, + }) + }; + + let wrap_index = verification_key.wrap_index; + + let mut sigmaComm: [Commitment; 7] = std::array::from_fn(|_| Commitment { + x: FixedBytes::ZERO, + y: FixedBytes::ZERO, + }); + for (comm, new_comm) in zip(wrap_index.sigma_comm.iter(), sigmaComm.iter_mut()) { + *new_comm = mina_to_sol_commitment(comm.clone())?; + } + + let mut coefficientsComm: [Commitment; 15] = std::array::from_fn(|_| Commitment { + x: FixedBytes::ZERO, + y: FixedBytes::ZERO, + }); + for (comm, new_comm) in zip( + wrap_index.coefficients_comm.iter(), + coefficientsComm.iter_mut(), + ) { + *new_comm = mina_to_sol_commitment(comm.clone())?; + } + + let wrapIndex = WrapIndex { + sigmaComm, + coefficientsComm, + genericComm: mina_to_sol_commitment(wrap_index.generic_comm)?, + psmComm: mina_to_sol_commitment(wrap_index.psm_comm)?, + completeAddComm: mina_to_sol_commitment(wrap_index.complete_add_comm)?, + mulComm: mina_to_sol_commitment(wrap_index.mul_comm)?, + emulComm: mina_to_sol_commitment(wrap_index.emul_comm)?, + endomulScalarComm: mina_to_sol_commitment(wrap_index.endomul_scalar_comm)?, + }; + VerificationKey { + maxProofsVerified: mina_to_sol_proofs_verified( + verification_key.max_proofs_verified, + ), + actualWrapDomainSize: mina_to_sol_proofs_verified( + verification_key.actual_wrap_domain_size, + ), + wrapIndex, + } + } else { + // Empty VerificationKey + + let commitment_zero = Commitment { + x: FixedBytes::ZERO, + y: FixedBytes::ZERO, + }; + let sigmaComm: [Commitment; 7] = std::array::from_fn(|_| commitment_zero.clone()); + + let coefficientsComm: [Commitment; 15] = + std::array::from_fn(|_| commitment_zero.clone()); + + let wrapIndex = WrapIndex { + sigmaComm, + coefficientsComm, + genericComm: commitment_zero.clone(), + psmComm: commitment_zero.clone(), + completeAddComm: commitment_zero.clone(), + mulComm: commitment_zero.clone(), + emulComm: commitment_zero.clone(), + endomulScalarComm: commitment_zero.clone(), + }; + VerificationKey { + maxProofsVerified: 0, + actualWrapDomainSize: 0, + wrapIndex, + } + }; + let mut actionState: [FixedBytes<32>; 5] = [FixedBytes::ZERO; 5]; + for (state, new_state) in zip(zkapp.action_state.iter(), actionState.iter_mut()) { + *new_state = FixedBytes::try_from(state.as_ref()).map_err(|err| { + format!("Could not convert action state to FixedBytes: {err}") + })?; + } + ZkappAccount { + appState, + verificationKey, + zkappVersion: zkapp + .zkapp_version + .to_u32() + .ok_or("Failed to convert zkapp version to u32".to_string())?, + actionState, + lastActionSlot: match zkapp.last_action_slot { + MinaNumbersGlobalSlotSinceGenesisMStableV1::SinceGenesis(last_action_slot) => { + last_action_slot + .to_u32() + .ok_or("Failed to convert zkapp version to u32".to_string())? + } + }, + provedState: zkapp.proved_state, + zkappUri: zkapp.zkapp_uri.0.clone().into(), + } + } else { + // Empty ZkappAccount + + let commitment_zero = Commitment { + x: FixedBytes::ZERO, + y: FixedBytes::ZERO, + }; + let sigmaComm: [Commitment; 7] = std::array::from_fn(|_| commitment_zero.clone()); + + let coefficientsComm: [Commitment; 15] = + std::array::from_fn(|_| commitment_zero.clone()); + + let wrapIndex = WrapIndex { + sigmaComm, + coefficientsComm, + genericComm: commitment_zero.clone(), + psmComm: commitment_zero.clone(), + completeAddComm: commitment_zero.clone(), + mulComm: commitment_zero.clone(), + emulComm: commitment_zero.clone(), + endomulScalarComm: commitment_zero.clone(), + }; + + ZkappAccount { + appState: [FixedBytes::ZERO; 8], + verificationKey: VerificationKey { + maxProofsVerified: 0, + actualWrapDomainSize: 0, + wrapIndex, + }, + zkappVersion: 0, + actionState: [FixedBytes::ZERO; 5], + lastActionSlot: 0, + provedState: false, + zkappUri: Bytes::new(), + } + }; + + Ok(Account { + publicKey, + tokenIdKeyHash, + tokenSymbol, + balance, + nonce, + receiptChainHash, + delegate, + votingFor, + timing, + permissions, + zkapp, + }) + } +} diff --git a/core/src/sol/mod.rs b/core/src/sol/mod.rs new file mode 100644 index 00000000..165ef98f --- /dev/null +++ b/core/src/sol/mod.rs @@ -0,0 +1,5 @@ +/// Solidity-friendly serialization +pub mod serialization; + +/// Solidity-friendly account state definition +pub mod account; diff --git a/core/src/proof/serialization.rs b/core/src/sol/serialization.rs similarity index 68% rename from core/src/proof/serialization.rs rename to core/src/sol/serialization.rs index 19183ddc..5188d890 100644 --- a/core/src/proof/serialization.rs +++ b/core/src/sol/serialization.rs @@ -6,12 +6,11 @@ use mina_p2p_messages::{ }; use serde::{Deserialize, Serialize}; -use super::account_proof::AccountHash; +/// Serialization to bytes for simple types that need to be deserialized in Ethereum. +/// More complex structures, like an [`MinaAccountValidation::Account`], may use Solidity's ABI Encoding. +pub struct SolSerialize; -/// Simple serialization for types that need to be deserialized in Ethereum. -pub struct EVMSerialize; - -impl serde_with::SerializeAs for EVMSerialize { +impl serde_with::SerializeAs for SolSerialize { fn serialize_as(val: &StateHash, serializer: S) -> Result where S: serde::Serializer, @@ -25,7 +24,7 @@ impl serde_with::SerializeAs for EVMSerialize { } } -impl<'de> serde_with::DeserializeAs<'de, StateHash> for EVMSerialize { +impl<'de> serde_with::DeserializeAs<'de, StateHash> for SolSerialize { fn deserialize_as(deserializer: D) -> Result where D: serde::Deserializer<'de>, @@ -36,7 +35,7 @@ impl<'de> serde_with::DeserializeAs<'de, StateHash> for EVMSerialize { } } -impl serde_with::SerializeAs for EVMSerialize { +impl serde_with::SerializeAs for SolSerialize { fn serialize_as(val: &LedgerHash, serializer: S) -> Result where S: serde::Serializer, @@ -50,7 +49,7 @@ impl serde_with::SerializeAs for EVMSerialize { } } -impl<'de> serde_with::DeserializeAs<'de, LedgerHash> for EVMSerialize { +impl<'de> serde_with::DeserializeAs<'de, LedgerHash> for SolSerialize { fn deserialize_as(deserializer: D) -> Result where D: serde::Deserializer<'de>, @@ -61,26 +60,7 @@ impl<'de> serde_with::DeserializeAs<'de, LedgerHash> for EVMSerialize { } } -impl serde_with::SerializeAs for EVMSerialize { - fn serialize_as(val: &AccountHash, serializer: S) -> Result - where - S: serde::Serializer, - { - val.0.serialize(serializer) - } -} - -impl<'de> serde_with::DeserializeAs<'de, AccountHash> for EVMSerialize { - fn deserialize_as(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - { - let bytes = <[u8; 32]>::deserialize(deserializer)?; - Ok(AccountHash(bytes)) - } -} - -impl serde_with::SerializeAs for EVMSerialize { +impl serde_with::SerializeAs for SolSerialize { fn serialize_as(val: &Fp, serializer: S) -> Result where S: serde::Serializer, @@ -95,7 +75,7 @@ impl serde_with::SerializeAs for EVMSerialize { } } -impl<'de> serde_with::DeserializeAs<'de, Fp> for EVMSerialize { +impl<'de> serde_with::DeserializeAs<'de, Fp> for SolSerialize { fn deserialize_as(deserializer: D) -> Result where D: serde::Deserializer<'de>, diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index 771de689..ab71122a 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -20,6 +20,7 @@ pub const MINA_HASH_SIZE: usize = 32; pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x42c6AA216f895278BAcfbD01E3aae2B99d2e4673"; pub const BRIDGE_TRANSITION_FRONTIER_LEN: usize = 16; +pub const BRIDGE_ACCOUNT_DEVNET_ETH_ADDR: &str = "0xA15BB66138824a1c7167f5E85b957d04Dd34E468"; // Aligned related constants pub const PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; From 132e4ea6db567d2ab4eb6dd92058a0fce221b4f8 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:51:36 -0300 Subject: [PATCH 29/46] Update Aligned to 0.6.0 (#336) * Sync with Aligned 0.5.2 * Start updating Aligned to 0.6.0 * Fix Aligned version update --- contract/lib/aligned_layer | 2 +- contract/script/MinaBridge.s.sol | 10 +- contract/src/MinaAccountValidation.sol | 5 +- contract/src/MinaBridge.sol | 42 +++------ contract/test/MinaBridge.t.sol | 4 +- contract_deployer/Cargo.lock | 102 ++++++++++---------- contract_deployer/Cargo.toml | 2 +- core/Cargo.lock | 126 ++++++++++++------------- core/Cargo.toml | 2 +- core/abi/MinaAccountValidation.json | 2 +- core/abi/MinaBridge.json | 2 +- core/src/aligned_polling_service.rs | 7 +- 12 files changed, 143 insertions(+), 163 deletions(-) diff --git a/contract/lib/aligned_layer b/contract/lib/aligned_layer index 1dcd2d91..44c32f6a 160000 --- a/contract/lib/aligned_layer +++ b/contract/lib/aligned_layer @@ -1 +1 @@ -Subproject commit 1dcd2d91ff28b417379c2e5f7f6f972538ad1d12 +Subproject commit 44c32f6a67dbd96b3997bc0dcf008f24d7994228 diff --git a/contract/script/MinaBridge.s.sol b/contract/script/MinaBridge.s.sol index 06abb469..fecaef77 100644 --- a/contract/script/MinaBridge.s.sol +++ b/contract/script/MinaBridge.s.sol @@ -15,15 +15,11 @@ contract MinaBridgeDeployer is Script { vm.startBroadcast(); string memory chain = vm.envString("ETH_CHAIN"); - address alignedServiceAddress; + address payable alignedServiceAddress; if (keccak256(bytes(chain)) == keccak256("devnet")) { - alignedServiceAddress = address( - uint160(0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8) - ); + alignedServiceAddress = payable(0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8); } else if (keccak256(bytes(chain)) == keccak256("holesky")) { - alignedServiceAddress = address( - uint160(0x58F280BeBE9B34c9939C3C39e0890C81f163B623) - ); + alignedServiceAddress = payable(0x58F280BeBE9B34c9939C3C39e0890C81f163B623); } else { revert UndefinedChain(); } diff --git a/contract/src/MinaAccountValidation.sol b/contract/src/MinaAccountValidation.sol index 93b91044..75f54e40 100644 --- a/contract/src/MinaAccountValidation.sol +++ b/contract/src/MinaAccountValidation.sol @@ -9,7 +9,7 @@ contract MinaAccountValidation { /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; - constructor(address _alignedServiceAddr) { + constructor(address payable _alignedServiceAddr) { aligned = AlignedLayerServiceManager(_alignedServiceAddr); } @@ -33,7 +33,8 @@ contract MinaAccountValidation { proofGeneratorAddr, batchMerkleRoot, merkleProof, - verificationDataBatchIndex + verificationDataBatchIndex, + address(0) ); if (isAccountVerified) { diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index a8d75263..14029cdf 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -11,7 +11,7 @@ error AccountIsNotValid(bytes32 accountIdHash); contract MinaBridge { /// @notice The length of the verified state chain (also called the bridge's transition /// frontier) to store. - uint public constant BRIDGE_TRANSITION_FRONTIER_LEN = 16; + uint256 public constant BRIDGE_TRANSITION_FRONTIER_LEN = 16; /// @notice The state hash of the last verified chain of Mina states (also called /// the bridge's transition frontier). @@ -23,7 +23,7 @@ contract MinaBridge { /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; - constructor(address _alignedServiceAddr, bytes32 _tipStateHash) { + constructor(address payable _alignedServiceAddr, bytes32 _tipStateHash) { aligned = AlignedLayerServiceManager(_alignedServiceAddr); chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] = _tipStateHash; } @@ -39,20 +39,12 @@ contract MinaBridge { } /// @notice Returns the latest verified chain state hashes. - function getChainStateHashes() - external - view - returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) - { + function getChainStateHashes() external view returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) { return chainStateHashes; } /// @notice Returns the latest verified chain ledger hashes. - function getChainLedgerHashes() - external - view - returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) - { + function getChainLedgerHashes() external view returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) { return chainLedgerHashes; } @@ -70,14 +62,8 @@ contract MinaBridge { pubInputBridgeTipStateHash := mload(add(pubInput, 0x20)) } - if ( - pubInputBridgeTipStateHash != - chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] - ) { - revert TipStateIsWrong( - pubInputBridgeTipStateHash, - chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] - ); + if (pubInputBridgeTipStateHash != chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]) { + revert TipStateIsWrong(pubInputBridgeTipStateHash, chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]); } bytes32 pubInputCommitment = keccak256(pubInput); @@ -89,7 +75,8 @@ contract MinaBridge { proofGeneratorAddr, batchMerkleRoot, merkleProof, - verificationDataBatchIndex + verificationDataBatchIndex, + address(0) ); if (isNewStateVerified) { @@ -103,16 +90,9 @@ contract MinaBridge { // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are state hashes. let addr_states := add(pubInput, 64) // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are ledger hashes. - let addr_ledgers := add( - addr_states, - mul(32, BRIDGE_TRANSITION_FRONTIER_LEN) - ) - - for { - let i := 0 - } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { - i := add(i, 1) - } { + let addr_ledgers := add(addr_states, mul(32, BRIDGE_TRANSITION_FRONTIER_LEN)) + + for { let i := 0 } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { i := add(i, 1) } { sstore(slot_states, mload(addr_states)) addr_states := add(addr_states, 32) slot_states := add(slot_states, 1) diff --git a/contract/test/MinaBridge.t.sol b/contract/test/MinaBridge.t.sol index 6742d2fb..c5fe2b7c 100644 --- a/contract/test/MinaBridge.t.sol +++ b/contract/test/MinaBridge.t.sol @@ -6,11 +6,11 @@ import {MinaBridge} from "../src/MinaBridge.sol"; contract MinaBridgeTest is Test { MinaBridge public bridge; - uint160 alignedServiceAddress = 0x0; + address payable alignedServiceAddress = payable(0x0); function setUp() public { // FIXME(xqft): this script may be deprecated, for now we'll // pass 0x0 as the second constructor argument. - bridge = new MinaBridge(address(alignedServiceAddress), 0x0); + bridge = new MinaBridge(alignedServiceAddress, 0x0); } } diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index a233b3ea..05ef7456 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_5#a0c893eef11755b3ddfac6530d0a11c959b23280" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_6#c43d80f3496c50ee49836999f642a6c96f5c26ba" dependencies = [ "ciborium", "ethers", @@ -98,9 +98,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c37d89f69cb43901949ba29307ada8b9e3b170f94057ad4c04d6fd169d24d65f" +checksum = "b2683873c2744f6cd72d0db51bb74fee9ed310e0476a140bdc19e82b407d8a0a" dependencies = [ "alloy-consensus", "alloy-contract", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1468e3128e07c7afe4ff13c17e8170c330d12c322f8924b8bf6986a27e0aad3d" +checksum = "c28ddd17ffb7e4d66ef3a84e7b179072a9320cdc4b26c7f6f44cbf1081631b36" dependencies = [ "alloy-eips", "alloy-primitives", @@ -147,9 +147,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335d62de1a887f1b780441f8a3037f39c9fb26839cc9acd891c9b80396145cd5" +checksum = "a69257e2ffe1a9f15f20a89cd54d1ca758468c5b3e87979191b8b5fc24d39b37" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -220,9 +220,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c35df7b972b06f1b2f4e8b7a53328522fa788054a9d3e556faf2411c5a51d5a" +checksum = "2f6c5c0a383f14519531cf58d8440e74f10b938e289f803af870be6f79223110" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7210f9206c0fa2a83c824cf8cb6c962126bc9fdc4f41ade1932f14150ef5f6" +checksum = "7db0ddc76399bb1a4010f630767f027cafe65ab406cfee8e6040128cd65e8325" dependencies = [ "alloy-primitives", "alloy-serde", @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8866562186d237f1dfeaf989ef941a24764f764bf5c33311e37ead3519c6a429" +checksum = "7111af869909275cffc5c84d16b6c892d6d512773e40cbe83187d0b9c5235e91" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -275,9 +275,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe714e233f9eaf410de95a9af6bcd05d3a7f8c8de7a0817221e95a6b642a080" +checksum = "342028392a2d5050b7b93dd32a0715d3b3b9ce30072ecb69a35dd4895c005495" dependencies = [ "alloy-consensus", "alloy-eips", @@ -296,9 +296,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c5a38117974c5776a45e140226745a0b664f79736aa900995d8e4121558e064" +checksum = "a6e66d78c049dcadd065a926a9f2d9a9b2b10981a7889449e694fac7bccd2c6f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -330,9 +330,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c65633d6ef83c3626913c004eaf166a6dd50406f724772ea8567135efd6dc5d3" +checksum = "79f14ccc2a3c575cb17b1b4af8c772cf9b5b93b7ce7047d6640e53954abb558d" dependencies = [ "alloy-chains", "alloy-consensus", @@ -367,9 +367,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949db89abae6193b44cc90ebf2eeb74eb8d2a474383c5e62b45bdcd362e84f8f" +checksum = "34b9f5e85120aab30b8da23354592f7bd2b208d33d3204ffa1d44ac2e3dd5691" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fc328bb5d440599ba1b5aa44c0b9ab0625fbc3a403bb5ee94ed4a01ba23e07" +checksum = "4dc79aeca84abb122a2fffbc1c91fdf958dca5c95be3875977bc99672bde0027" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -433,9 +433,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f8ff679f94c497a8383f2cd09e2a099266e5f3d5e574bc82b4b379865707dbb" +checksum = "22045187a5ebf5b2af3f8b6831b66735b6556c5750ec5790aeeb45935260c1c2" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -445,25 +445,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66bb45f4c5efe227bcb51d89c97221225169976e18097671a0bd4393d8248a4" +checksum = "1c031a91e94a39f928244bc837c953817be5b8cc61759e1a9123b3abd17560dd" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "serde", - "thiserror", + "derive_more 1.0.0", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a59b1d7c86e0a653e7f3d29954f6de5a2878d8cfd1f010ff93be5c2c48cd3b1" +checksum = "238f494727ff861a803bd73b1274ef788a615bf8f8c4bfada4e6df42afa275d2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -472,17 +469,19 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", + "cfg-if", + "derive_more 1.0.0", + "hashbrown 0.14.5", "itertools 0.13.0", "serde", "serde_json", - "thiserror", ] [[package]] name = "alloy-serde" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51db8a6428a2159e01b7a43ec7aac801edd0c4db1d4de06f310c288940f16fd3" +checksum = "6b95b6f024a558593dd3b8628af03f7df2ca50e4c56839293ad0a7546e471db0" dependencies = [ "alloy-primitives", "serde", @@ -491,9 +490,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebc1760c13592b7ba3fcd964abba546b8d6a9f10d15e8d92a8263731be33f36" +checksum = "da64740ff0518606c514eb0e03dd0a1daa8ff94d6d491a626fd8e50efd6c4f18" dependencies = [ "alloy-primitives", "async-trait", @@ -505,9 +504,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bfb3508485aa798efb5725322e414313239274d3780079b7f8c6746b8ee6e1b" +checksum = "99e250010dce0e3caf6a6033e809718e5921391d937d1cbbcffe52653b37cc63" dependencies = [ "alloy-consensus", "alloy-network", @@ -596,9 +595,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd5dc4e902f1860d54952446d246ac05386311ad61030a2b906ae865416d36e0" +checksum = "3c7a669caa427abe8802184c8776f5103302f9337bb30a5b36bdebc332946c14" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -615,9 +614,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1742b94bb814f1ca6b322a6f9dd38a0252ff45a3119e40e888fb7029afa500ce" +checksum = "4433ffa97aab6ae643de81c7bde9a2f043496f27368a607405a5c78a610caf74" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -630,9 +629,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be321aac6f06d86855d41d4ce9ff9feb877fe7e9fe1cafce7380b981c12398c7" +checksum = "9aa02db8751f9c0c37caf8c38ad3eb7aa1cfb09cfea3451a13aacaf06846c7a5" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -649,9 +648,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ed861e7030001364c8ffa2db63541f7bae275a6e636de7616c20f2fd3dc0c3" +checksum = "b0a5c4a0929479bcb85a2df628c01173618a71c807b2f499939a236dbde5d008" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -2806,6 +2805,7 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash 0.8.11", "allocator-api2", + "serde", ] [[package]] @@ -4080,7 +4080,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.4", "smallvec", "windows-targets 0.52.6", ] @@ -4566,9 +4566,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" dependencies = [ "bitflags 2.6.0", ] diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index 84eb5c4b..86dcb956 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -16,7 +16,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_5" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_6" } serde = { version = "1.0", features = ["derive"] } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } bincode = "1.3.3" diff --git a/core/Cargo.lock b/core/Cargo.lock index 6a387c75..ed53eb8d 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_5#a0c893eef11755b3ddfac6530d0a11c959b23280" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_6#f815d62b48f9679f61fad20f1d63425865674b93" dependencies = [ "ciborium", "ethers", @@ -98,9 +98,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c37d89f69cb43901949ba29307ada8b9e3b170f94057ad4c04d6fd169d24d65f" +checksum = "b2683873c2744f6cd72d0db51bb74fee9ed310e0476a140bdc19e82b407d8a0a" dependencies = [ "alloy-consensus", "alloy-contract", @@ -123,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b4f201b0ac8f81315fbdc55269965a8ddadbc04ab47fa65a1a468f9a40f7a5f" +checksum = "b68b94c159bcc2ca5f758b8663d7b00fc7c5e40569984595ddf2221b0f7f7f6e" dependencies = [ "num_enum", "strum 0.26.3", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1468e3128e07c7afe4ff13c17e8170c330d12c322f8924b8bf6986a27e0aad3d" +checksum = "c28ddd17ffb7e4d66ef3a84e7b179072a9320cdc4b26c7f6f44cbf1081631b36" dependencies = [ "alloy-eips", "alloy-primitives", @@ -147,9 +147,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335d62de1a887f1b780441f8a3037f39c9fb26839cc9acd891c9b80396145cd5" +checksum = "a69257e2ffe1a9f15f20a89cd54d1ca758468c5b3e87979191b8b5fc24d39b37" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -220,9 +220,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c35df7b972b06f1b2f4e8b7a53328522fa788054a9d3e556faf2411c5a51d5a" +checksum = "2f6c5c0a383f14519531cf58d8440e74f10b938e289f803af870be6f79223110" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7210f9206c0fa2a83c824cf8cb6c962126bc9fdc4f41ade1932f14150ef5f6" +checksum = "7db0ddc76399bb1a4010f630767f027cafe65ab406cfee8e6040128cd65e8325" dependencies = [ "alloy-primitives", "alloy-serde", @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8866562186d237f1dfeaf989ef941a24764f764bf5c33311e37ead3519c6a429" +checksum = "7111af869909275cffc5c84d16b6c892d6d512773e40cbe83187d0b9c5235e91" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -275,9 +275,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe714e233f9eaf410de95a9af6bcd05d3a7f8c8de7a0817221e95a6b642a080" +checksum = "342028392a2d5050b7b93dd32a0715d3b3b9ce30072ecb69a35dd4895c005495" dependencies = [ "alloy-consensus", "alloy-eips", @@ -296,9 +296,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c5a38117974c5776a45e140226745a0b664f79736aa900995d8e4121558e064" +checksum = "a6e66d78c049dcadd065a926a9f2d9a9b2b10981a7889449e694fac7bccd2c6f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -330,9 +330,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c65633d6ef83c3626913c004eaf166a6dd50406f724772ea8567135efd6dc5d3" +checksum = "79f14ccc2a3c575cb17b1b4af8c772cf9b5b93b7ce7047d6640e53954abb558d" dependencies = [ "alloy-chains", "alloy-consensus", @@ -367,9 +367,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949db89abae6193b44cc90ebf2eeb74eb8d2a474383c5e62b45bdcd362e84f8f" +checksum = "34b9f5e85120aab30b8da23354592f7bd2b208d33d3204ffa1d44ac2e3dd5691" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fc328bb5d440599ba1b5aa44c0b9ab0625fbc3a403bb5ee94ed4a01ba23e07" +checksum = "4dc79aeca84abb122a2fffbc1c91fdf958dca5c95be3875977bc99672bde0027" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -433,9 +433,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f8ff679f94c497a8383f2cd09e2a099266e5f3d5e574bc82b4b379865707dbb" +checksum = "22045187a5ebf5b2af3f8b6831b66735b6556c5750ec5790aeeb45935260c1c2" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -445,25 +445,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66bb45f4c5efe227bcb51d89c97221225169976e18097671a0bd4393d8248a4" +checksum = "1c031a91e94a39f928244bc837c953817be5b8cc61759e1a9123b3abd17560dd" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "serde", - "thiserror", + "derive_more 1.0.0", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a59b1d7c86e0a653e7f3d29954f6de5a2878d8cfd1f010ff93be5c2c48cd3b1" +checksum = "238f494727ff861a803bd73b1274ef788a615bf8f8c4bfada4e6df42afa275d2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -472,17 +469,19 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", + "cfg-if", + "derive_more 1.0.0", + "hashbrown 0.14.5", "itertools 0.13.0", "serde", "serde_json", - "thiserror", ] [[package]] name = "alloy-serde" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51db8a6428a2159e01b7a43ec7aac801edd0c4db1d4de06f310c288940f16fd3" +checksum = "6b95b6f024a558593dd3b8628af03f7df2ca50e4c56839293ad0a7546e471db0" dependencies = [ "alloy-primitives", "serde", @@ -491,9 +490,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebc1760c13592b7ba3fcd964abba546b8d6a9f10d15e8d92a8263731be33f36" +checksum = "da64740ff0518606c514eb0e03dd0a1daa8ff94d6d491a626fd8e50efd6c4f18" dependencies = [ "alloy-primitives", "async-trait", @@ -505,9 +504,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bfb3508485aa798efb5725322e414313239274d3780079b7f8c6746b8ee6e1b" +checksum = "99e250010dce0e3caf6a6033e809718e5921391d937d1cbbcffe52653b37cc63" dependencies = [ "alloy-consensus", "alloy-network", @@ -596,9 +595,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd5dc4e902f1860d54952446d246ac05386311ad61030a2b906ae865416d36e0" +checksum = "3c7a669caa427abe8802184c8776f5103302f9337bb30a5b36bdebc332946c14" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -615,9 +614,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1742b94bb814f1ca6b322a6f9dd38a0252ff45a3119e40e888fb7029afa500ce" +checksum = "4433ffa97aab6ae643de81c7bde9a2f043496f27368a607405a5c78a610caf74" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -630,9 +629,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be321aac6f06d86855d41d4ce9ff9feb877fe7e9fe1cafce7380b981c12398c7" +checksum = "9aa02db8751f9c0c37caf8c38ad3eb7aa1cfb09cfea3451a13aacaf06846c7a5" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -649,9 +648,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ed861e7030001364c8ffa2db63541f7bae275a6e636de7616c20f2fd3dc0c3" +checksum = "b0a5c4a0929479bcb85a2df628c01173618a71c807b2f499939a236dbde5d008" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -731,9 +730,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "ark-ec" @@ -897,9 +896,9 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -1327,9 +1326,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.18" +version = "1.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" +checksum = "2d74707dde2ba56f86ae90effb3b43ddd369504387e718014de010cec7959800" dependencies = [ "jobserver", "libc", @@ -2787,6 +2786,7 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash 0.8.11", "allocator-api2", + "serde", ] [[package]] @@ -3045,9 +3045,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3873,9 +3873,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe" [[package]] name = "opaque-debug" @@ -4061,7 +4061,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.4", "smallvec", "windows-targets 0.52.6", ] @@ -4547,9 +4547,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" dependencies = [ "bitflags 2.6.0", ] diff --git a/core/Cargo.toml b/core/Cargo.toml index d64d02bc..37bb5911 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -22,7 +22,7 @@ ark-poly = { version = "0.3.0", features = ["parallel"] } ark-serialize = "0.3.0" mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_5" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_6" } ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json index 4611e723..e4bd6b24 100644 --- a/core/abi/MinaAccountValidation.json +++ b/core/abi/MinaAccountValidation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"AccountIsNotVerified","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516113cc3803806113cc83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b611339806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105a9565b610059565b6040516100509190610a2a565b60405180910390f35b610061610164565b3660006100718460288188610b5c565b9150915060008585604051610087929190610b86565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08e848f8f8f8f8f6040518863ffffffff1660e01b81526004016100df9796959493929190610b96565b602060405180830381865afa1580156100fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101209190610bfb565b9050801561013f57610134838501856111e3565b945050505050610158565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610267604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b8152602001610274610279565b905290565b6040518060e0016040528061028c6102c6565b81526020016102996102e5565b8152600060208201526040016102ad610304565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610274610322565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103366103cd565b8152602001610343610406565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103dc5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103dc565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046a5761046a610432565b60405290565b6040516101c081016001600160401b038111828210171561046a5761046a610432565b604051606081016001600160401b038111828210171561046a5761046a610432565b60405161010081016001600160401b038111828210171561046a5761046a610432565b60405160e081016001600160401b038111828210171561046a5761046a610432565b60405161016081016001600160401b038111828210171561046a5761046a610432565b600082601f83011261052e57600080fd5b81356001600160401b038082111561054857610548610432565b604051601f8301601f19908116603f0116810190828211818310171561057057610570610432565b8160405283815286602085880101111561058957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c557600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f057600080fd5b95506060890135945060808901356001600160401b038082111561061357600080fd5b61061f8c838d0161051d565b955060a08b0135945060c08b013591508082111561063c57600080fd5b818b0191508b601f83011261065057600080fd5b81358181111561065f57600080fd5b8c602082850101111561067157600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b057602081850181015186830182015201610694565b818111156106c2576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b600581106106fd576106fd6106d7565b9052565b61070c8282516106ed565b602081015161071e60208401826106ed565b50604081015161073160408401826106ed565b50606081015161074460608401826106ed565b50608081015161075760808401826106ed565b5060a081015161076a60a08401826106ed565b5060c081015161077d60c08401826106ed565b5060e081015161079560e084018263ffffffff169052565b50610100808201516107a9828501826106ed565b5050610120808201516107be828501826106ed565b5050610140808201516107d3828501826106ed565b5050610160808201516107e8828501826106ed565b5050610180808201516107fd828501826106ed565b50506101a080820151610812828501826106ed565b50505050565b600381106106fd576106fd6106d7565b8060005b600f8110156108125761084a84835180518252602090810151910152565b604093909301926020919091019060010161082c565b61086b828251610818565b60208082015161087d82850182610818565b50604082810151805160008684015b60078210156108bc576108aa81845180518252602090810151910152565b9185019160019190910190840161088c565b50505091820151916108d2610200860184610828565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610812578151845260209384019390910190600101610964565b80516000906109609084835b60088110156109ae57825182526020928301929091019060010161098f565b50505060208301516109c4610100860182610860565b50604083015163ffffffff1661084085015260608301516109e9610860860182610960565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a218286018261068a565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a686103e085018361068a565b91506060850151610a8460a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac181870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b36610200880184610701565b870151868503601f1901848801529150610b5290508382610983565b9695505050505050565b60008085851115610b6c57600080fd5b83861115610b7957600080fd5b5050820193919092039150565b8183823760009101908152919050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a08201526000610bd660e083018561068a565b90508260c083015298975050505050505050565b8015158114610bf857600080fd5b50565b600060208284031215610c0d57600080fd5b8151610c1881610bea565b9392505050565b8035610c2a81610bea565b919050565b600060408284031215610c4157600080fd5b610c49610448565b9050813581526020820135610c5d81610bea565b602082015292915050565b80356001600160401b0381168114610c2a57600080fd5b803563ffffffff81168114610c2a57600080fd5b600060a08284031215610ca557600080fd5b60405160a081018181106001600160401b0382111715610cc757610cc7610432565b604052905080610cd683610c68565b8152610ce460208401610c7f565b6020820152610cf560408401610c68565b6040820152610d0660608401610c7f565b6060820152610d1760808401610c68565b60808201525092915050565b803560058110610c2a57600080fd5b60006101c08284031215610d4557600080fd5b610d4d610470565b9050610d5882610d23565b8152610d6660208301610d23565b6020820152610d7760408301610d23565b6040820152610d8860608301610d23565b6060820152610d9960808301610d23565b6080820152610daa60a08301610d23565b60a0820152610dbb60c08301610d23565b60c0820152610dcc60e08301610c7f565b60e0820152610100610ddf818401610d23565b90820152610120610df1838201610d23565b90820152610140610e03838201610d23565b90820152610160610e15838201610d23565b90820152610180610e27838201610d23565b908201526101a0610e39838201610d23565b9082015292915050565b600082601f830112610e5457600080fd5b6040516101008082018281106001600160401b0382111715610e7857610e78610432565b60405283018185821115610e8b57600080fd5b845b82811015610ea5578035825260209182019101610e8d565b509195945050505050565b803560038110610c2a57600080fd5b600060408284031215610ed157600080fd5b610ed9610448565b9050813581526020820135602082015292915050565b600082601f830112610f0057600080fd5b6040805160e081018181106001600160401b0382111715610f2357610f23610432565b8252806101c0850186811115610f3857600080fd5b855b81811015610f5b57610f4c8882610ebf565b83526020909201918401610f3a565b50919695505050505050565b600082601f830112610f7857600080fd5b604080516101e081018181106001600160401b0382111715610f9c57610f9c610432565b8252806103c0850186811115610fb157600080fd5b855b81811015610f5b57610fc58882610ebf565b83526020909201918401610fb3565b6000818303610740811215610fe857600080fd5b610ff0610493565b9150610ffb83610eb0565b825261100960208401610eb0565b602083015261070080603f198301121561102257600080fd5b61102a6104b5565b91506110398560408601610eef565b8252611049856102008601610f67565b602083015261105c856105c08601610ebf565b604083015261106f856106008601610ebf565b6060830152611082856106408601610ebf565b6080830152611095856106808601610ebf565b60a08301526110a8856106c08601610ebf565b60c08301526110b985828601610ebf565b60e083015250604082015292915050565b600082601f8301126110db57600080fd5b60405160a081018181106001600160401b03821117156110fd576110fd610432565b6040528060a084018581111561111257600080fd5b845b81811015610ea5578035835260209283019201611114565b6000610960828403121561113f57600080fd5b6111476104d8565b90506111538383610e43565b8152611163836101008401610fd4565b60208201526111756108408301610c7f565b60408201526111888361086084016110ca565b606082015261119a6109008301610c7f565b60808201526111ac6109208301610c1f565b60a08201526109408201356001600160401b038111156111cb57600080fd5b6111d78482850161051d565b60c08301525092915050565b6000602082840312156111f557600080fd5b81356001600160401b038082111561120c57600080fd5b908301906103c0828603121561122157600080fd5b6112296104fa565b6112338684610c2f565b81526040830135602082015260608301358281111561125157600080fd5b61125d8782860161051d565b60408301525061126f60808401610c68565b606082015261128060a08401610c7f565b608082015260c083013560a082015261129c8660e08501610c2f565b60c08201526101208084013560e08301526101406112bc88828701610c93565b6101008401526112d0886101e08701610d32565b828401526103a08501359150838211156112e957600080fd5b6112f58883870161112c565b90830152509594505050505056fea26469706673582212203160766bd2b4d927f5ff8f4549da2e1589447c75567a33622fdac01a7b38b7f664736f6c634300080c0033","sourceMap":"171:3267:38:-:0;;;319:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;370:7;:57;;-1:-1:-1;;;;;;370:57:38;-1:-1:-1;;;;;370:57:38;;;;;;;;;;171:3267;;14:290:39;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:39;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:39:o;:::-;171:3267:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105a9565b610059565b6040516100509190610a2a565b60405180910390f35b610061610164565b3660006100718460288188610b5c565b9150915060008585604051610087929190610b86565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b031663fa534dc08e848f8f8f8f8f6040518863ffffffff1660e01b81526004016100df9796959493929190610b96565b602060405180830381865afa1580156100fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101209190610bfb565b9050801561013f57610134838501856111e3565b945050505050610158565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610267604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b8152602001610274610279565b905290565b6040518060e0016040528061028c6102c6565b81526020016102996102e5565b8152600060208201526040016102ad610304565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610274610322565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103366103cd565b8152602001610343610406565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103dc5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103dc565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046a5761046a610432565b60405290565b6040516101c081016001600160401b038111828210171561046a5761046a610432565b604051606081016001600160401b038111828210171561046a5761046a610432565b60405161010081016001600160401b038111828210171561046a5761046a610432565b60405160e081016001600160401b038111828210171561046a5761046a610432565b60405161016081016001600160401b038111828210171561046a5761046a610432565b600082601f83011261052e57600080fd5b81356001600160401b038082111561054857610548610432565b604051601f8301601f19908116603f0116810190828211818310171561057057610570610432565b8160405283815286602085880101111561058957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c557600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f057600080fd5b95506060890135945060808901356001600160401b038082111561061357600080fd5b61061f8c838d0161051d565b955060a08b0135945060c08b013591508082111561063c57600080fd5b818b0191508b601f83011261065057600080fd5b81358181111561065f57600080fd5b8c602082850101111561067157600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b057602081850181015186830182015201610694565b818111156106c2576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b600581106106fd576106fd6106d7565b9052565b61070c8282516106ed565b602081015161071e60208401826106ed565b50604081015161073160408401826106ed565b50606081015161074460608401826106ed565b50608081015161075760808401826106ed565b5060a081015161076a60a08401826106ed565b5060c081015161077d60c08401826106ed565b5060e081015161079560e084018263ffffffff169052565b50610100808201516107a9828501826106ed565b5050610120808201516107be828501826106ed565b5050610140808201516107d3828501826106ed565b5050610160808201516107e8828501826106ed565b5050610180808201516107fd828501826106ed565b50506101a080820151610812828501826106ed565b50505050565b600381106106fd576106fd6106d7565b8060005b600f8110156108125761084a84835180518252602090810151910152565b604093909301926020919091019060010161082c565b61086b828251610818565b60208082015161087d82850182610818565b50604082810151805160008684015b60078210156108bc576108aa81845180518252602090810151910152565b9185019160019190910190840161088c565b50505091820151916108d2610200860184610828565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610812578151845260209384019390910190600101610964565b80516000906109609084835b60088110156109ae57825182526020928301929091019060010161098f565b50505060208301516109c4610100860182610860565b50604083015163ffffffff1661084085015260608301516109e9610860860182610960565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a218286018261068a565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a686103e085018361068a565b91506060850151610a8460a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac181870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b36610200880184610701565b870151868503601f1901848801529150610b5290508382610983565b9695505050505050565b60008085851115610b6c57600080fd5b83861115610b7957600080fd5b5050820193919092039150565b8183823760009101908152919050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a08201526000610bd660e083018561068a565b90508260c083015298975050505050505050565b8015158114610bf857600080fd5b50565b600060208284031215610c0d57600080fd5b8151610c1881610bea565b9392505050565b8035610c2a81610bea565b919050565b600060408284031215610c4157600080fd5b610c49610448565b9050813581526020820135610c5d81610bea565b602082015292915050565b80356001600160401b0381168114610c2a57600080fd5b803563ffffffff81168114610c2a57600080fd5b600060a08284031215610ca557600080fd5b60405160a081018181106001600160401b0382111715610cc757610cc7610432565b604052905080610cd683610c68565b8152610ce460208401610c7f565b6020820152610cf560408401610c68565b6040820152610d0660608401610c7f565b6060820152610d1760808401610c68565b60808201525092915050565b803560058110610c2a57600080fd5b60006101c08284031215610d4557600080fd5b610d4d610470565b9050610d5882610d23565b8152610d6660208301610d23565b6020820152610d7760408301610d23565b6040820152610d8860608301610d23565b6060820152610d9960808301610d23565b6080820152610daa60a08301610d23565b60a0820152610dbb60c08301610d23565b60c0820152610dcc60e08301610c7f565b60e0820152610100610ddf818401610d23565b90820152610120610df1838201610d23565b90820152610140610e03838201610d23565b90820152610160610e15838201610d23565b90820152610180610e27838201610d23565b908201526101a0610e39838201610d23565b9082015292915050565b600082601f830112610e5457600080fd5b6040516101008082018281106001600160401b0382111715610e7857610e78610432565b60405283018185821115610e8b57600080fd5b845b82811015610ea5578035825260209182019101610e8d565b509195945050505050565b803560038110610c2a57600080fd5b600060408284031215610ed157600080fd5b610ed9610448565b9050813581526020820135602082015292915050565b600082601f830112610f0057600080fd5b6040805160e081018181106001600160401b0382111715610f2357610f23610432565b8252806101c0850186811115610f3857600080fd5b855b81811015610f5b57610f4c8882610ebf565b83526020909201918401610f3a565b50919695505050505050565b600082601f830112610f7857600080fd5b604080516101e081018181106001600160401b0382111715610f9c57610f9c610432565b8252806103c0850186811115610fb157600080fd5b855b81811015610f5b57610fc58882610ebf565b83526020909201918401610fb3565b6000818303610740811215610fe857600080fd5b610ff0610493565b9150610ffb83610eb0565b825261100960208401610eb0565b602083015261070080603f198301121561102257600080fd5b61102a6104b5565b91506110398560408601610eef565b8252611049856102008601610f67565b602083015261105c856105c08601610ebf565b604083015261106f856106008601610ebf565b6060830152611082856106408601610ebf565b6080830152611095856106808601610ebf565b60a08301526110a8856106c08601610ebf565b60c08301526110b985828601610ebf565b60e083015250604082015292915050565b600082601f8301126110db57600080fd5b60405160a081018181106001600160401b03821117156110fd576110fd610432565b6040528060a084018581111561111257600080fd5b845b81811015610ea5578035835260209283019201611114565b6000610960828403121561113f57600080fd5b6111476104d8565b90506111538383610e43565b8152611163836101008401610fd4565b60208201526111756108408301610c7f565b60408201526111888361086084016110ca565b606082015261119a6109008301610c7f565b60808201526111ac6109208301610c1f565b60a08201526109408201356001600160401b038111156111cb57600080fd5b6111d78482850161051d565b60c08301525092915050565b6000602082840312156111f557600080fd5b81356001600160401b038082111561120c57600080fd5b908301906103c0828603121561122157600080fd5b6112296104fa565b6112338684610c2f565b81526040830135602082015260608301358281111561125157600080fd5b61125d8782860161051d565b60408301525061126f60808401610c68565b606082015261128060a08401610c7f565b608082015260c083013560a082015261129c8660e08501610c2f565b60c08201526101208084013560e08301526101406112bc88828701610c93565b6101008401526112d0886101e08701610d32565b828401526103a08501359150838211156112e957600080fd5b6112f58883870161112c565b90830152509594505050505056fea26469706673582212203160766bd2b4d927f5ff8f4549da2e1589447c75567a33622fdac01a7b38b7f664736f6c634300080c0033","sourceMap":"171:3267:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;440:923;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;755:14;;:::i;:::-;781:29;;813:17;:8;822:6;813:8;;:17;:::i;:::-;781:49;;;;841:26;880:8;;870:19;;;;;;;:::i;:::-;;;;;;;;841:48;;900:22;925:7;;;;;;;;;-1:-1:-1;;;;;925:7:38;-1:-1:-1;;;;;925:28:38;;967:15;996:18;1028:30;1072:18;1104:15;1133:11;1158:26;925:269;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;900:294;;1209:17;1205:152;;;1249:37;;;;1260:14;1249:37;:::i;:::-;1242:44;;;;;;;;1205:152;1324:22;;-1:-1:-1;;;1324:22:38;;;;;;;;;;;440:923;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:127:39;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:252;213:4;207:11;;;245:17;;-1:-1:-1;;;;;277:34:39;;313:22;;;274:62;271:88;;;339:18;;:::i;:::-;375:4;368:24;146:252;:::o;403:255::-;475:2;469:9;517:6;505:19;;-1:-1:-1;;;;;539:34:39;;575:22;;;536:62;533:88;;;601:18;;:::i;663:253::-;735:2;729:9;777:4;765:17;;-1:-1:-1;;;;;797:34:39;;833:22;;;794:62;791:88;;;859:18;;:::i;921:255::-;993:2;987:9;1035:6;1023:19;;-1:-1:-1;;;;;1057:34:39;;1093:22;;;1054:62;1051:88;;;1119:18;;:::i;1181:253::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:39;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:39;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:39;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:39;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:1251::-;2555:6;2563;2571;2579;2587;2595;2603;2611;2664:3;2652:9;2643:7;2639:23;2635:33;2632:53;;;2681:1;2678;2671:12;2632:53;2704:23;;;-1:-1:-1;2774:2:39;2759:18;;2746:32;;-1:-1:-1;2828:2:39;2813:18;;2800:32;-1:-1:-1;;2861:43:39;;2851:54;;2841:82;;2919:1;2916;2909:12;2841:82;2942:5;-1:-1:-1;2994:2:39;2979:18;;2966:32;;-1:-1:-1;3049:3:39;3034:19;;3021:33;-1:-1:-1;;;;;3103:14:39;;;3100:34;;;3130:1;3127;3120:12;3100:34;3153:49;3194:7;3185:6;3174:9;3170:22;3153:49;:::i;:::-;3143:59;;3249:3;3238:9;3234:19;3221:33;3211:43;;3307:3;3296:9;3292:19;3279:33;3263:49;;3337:2;3327:8;3324:16;3321:36;;;3353:1;3350;3343:12;3321:36;3391:8;3380:9;3376:24;3366:34;;3438:7;3431:4;3427:2;3423:13;3419:27;3409:55;;3460:1;3457;3450:12;3409:55;3500:2;3487:16;3526:2;3518:6;3515:14;3512:34;;;3542:1;3539;3532:12;3512:34;3587:7;3582:2;3573:6;3569:2;3565:15;3561:24;3558:37;3555:57;;;3608:1;3605;3598:12;3555:57;3639:2;3635;3631:11;3621:21;;3661:6;3651:16;;;;;2422:1251;;;;;;;;;;;:::o;3953:472::-;3995:3;4033:5;4027:12;4060:6;4055:3;4048:19;4085:1;4095:162;4109:6;4106:1;4103:13;4095:162;;;4171:4;4227:13;;;4223:22;;4217:29;4199:11;;;4195:20;;4188:59;4124:12;4095:162;;;4275:6;4272:1;4269:13;4266:87;;;4341:1;4334:4;4325:6;4320:3;4316:16;4312:27;4305:38;4266:87;-1:-1:-1;4407:2:39;4386:15;-1:-1:-1;;4382:29:39;4373:39;;;;4414:4;4369:50;;3953:472;-1:-1:-1;;3953:472:39:o;5108:127::-;5169:10;5164:3;5160:20;5157:1;5150:31;5200:4;5197:1;5190:15;5224:4;5221:1;5214:15;5240:143;5324:1;5317:5;5314:12;5304:46;;5330:18;;:::i;:::-;5359;;5240:143::o;5388:1834::-;5453:47;5496:3;5488:5;5482:12;5453:47;:::i;:::-;5546:4;5539:5;5535:16;5529:23;5561:58;5613:4;5608:3;5604:14;5590:12;5561:58;:::i;:::-;;5667:4;5660:5;5656:16;5650:23;5682:60;5736:4;5731:3;5727:14;5711;5682:60;:::i;:::-;;5790:4;5783:5;5779:16;5773:23;5805:60;5859:4;5854:3;5850:14;5834;5805:60;:::i;:::-;;5913:4;5906:5;5902:16;5896:23;5928:60;5982:4;5977:3;5973:14;5957;5928:60;:::i;:::-;;6036:4;6029:5;6025:16;6019:23;6051:60;6105:4;6100:3;6096:14;6080;6051:60;:::i;:::-;;6159:4;6152:5;6148:16;6142:23;6174:60;6228:4;6223:3;6219:14;6203;6174:60;:::i;:::-;;6282:4;6275:5;6271:16;6265:23;6297:49;6340:4;6335:3;6331:14;6315;4613:10;4602:22;4590:35;;4537:94;6297:49;;6365:6;6419:2;6412:5;6408:14;6402:21;6432:58;6486:2;6481:3;6477:12;6461:14;6432:58;:::i;:::-;;;6509:6;6563:2;6556:5;6552:14;6546:21;6576:58;6630:2;6625:3;6621:12;6605:14;6576:58;:::i;:::-;;;6653:6;6707:2;6700:5;6696:14;6690:21;6720:58;6774:2;6769:3;6765:12;6749:14;6720:58;:::i;:::-;;;6797:6;6852:2;6845:5;6841:14;6835:21;6865:59;6920:2;6915:3;6911:12;6894:15;6865:59;:::i;:::-;;;6943:6;6998:2;6991:5;6987:14;6981:21;7011:59;7066:2;7061:3;7057:12;7040:15;7011:59;:::i;:::-;;;7089:6;7144:2;7137:5;7133:14;7127:21;7157:59;7212:2;7207:3;7203:12;7186:15;7157:59;:::i;:::-;;;5388:1834;;:::o;7227:145::-;7313:1;7306:5;7303:12;7293:46;;7319:18;;:::i;7533:335::-;7636:5;7659:1;7669:193;7683:4;7680:1;7677:11;7669:193;;;7730:48;7774:3;7765:6;7759:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;7730:48;7807:4;7798:14;;;;;7847:4;7835:17;;;;;7703:1;7696:9;7669:193;;7873:1627;7942:49;7987:3;7979:5;7973:12;7942:49;:::i;:::-;8010:4;8060:2;8053:5;8049:14;8043:21;8073:58;8127:2;8122:3;8118:12;8104;8073:58;:::i;:::-;-1:-1:-1;8150:4:39;8191:14;;;8185:21;8256;;8364:1;8225:12;;;8374:195;8388:4;8385:1;8382:11;8374:195;;;8435:50;8479:5;8470:6;8464:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;8435:50;8544:15;;;;8408:1;8401:9;;;;;8507:14;;8374:195;;;-1:-1:-1;;;8606:23:39;;;8600:30;;8639:65;8699:3;8690:13;;8600:30;8639:65;:::i;:::-;8741:23;;;8735:30;7453:12;;8828:4;8819:14;;7441:25;7515:4;7504:16;;;7498:23;7482:14;;;7475:47;8891:4;8871:25;;8865:32;7453:12;;8960:4;8951:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9023:4;9003:25;;8997:32;7453:12;;9092:4;9083:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9155:4;9135:25;;9129:32;7453:12;;9224:4;9215:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9287:4;9267:25;;9261:32;7453:12;;9356:4;9347:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9419:4;9399:25;;;9393:32;7453:12;;9488:4;9479:14;;7441:25;7504:16;7498:23;7482:14;;;;7475:47;;;;-1:-1:-1;;7873:1627:39:o;9505:326::-;9598:5;9621:1;9631:194;9645:4;9642:1;9639:11;9631:194;;;9704:13;;9692:26;;9741:4;9765:12;;;;9800:15;;;;9665:1;9658:9;9631:194;;9836:1166;9944:12;;9891:3;;9919:6;;9978:3;9891;10055:200;10069:4;10066:1;10063:11;10055:200;;;10130:13;;10116:28;;10167:4;10230:15;;;;10193:14;;;;10089:1;10082:9;10055:200;;;10059:3;;;10301:4;10294:5;10290:16;10284:23;10316:65;10373:6;10368:3;10364:16;10350:12;10316:65;:::i;:::-;-1:-1:-1;10429:4:39;10418:16;;10412:23;4613:10;4602:22;10487:6;10478:16;;4590:35;10543:4;10532:16;;10526:23;10558:58;10608:6;10599:16;;10526:23;10558:58;:::i;:::-;-1:-1:-1;10664:4:39;10653:16;;10647:23;4613:10;4602:22;10722:6;10713:16;;4590:35;10778:4;10767:16;;10761:23;3748:13;3741:21;10834:6;10825:16;;3729:34;10890:4;10879:16;;10873:23;10921:6;10912:16;;10905:28;;;10949:47;10983:12;;;10873:23;10949:47;:::i;:::-;10942:54;9836:1166;-1:-1:-1;;;;;9836:1166:39:o;11007:1524::-;11186:2;11168:21;;;11234:13;;3857:12;;11249:18;;;3845:25;3922:16;3916:23;3909:31;3902:39;3886:14;;;3879:63;11322:2;11314:6;11310:15;11304:22;11299:2;11288:9;11284:18;11277:50;11149:4;11374;11366:6;11362:17;11356:24;11399:6;11442:2;11436:3;11425:9;11421:19;11414:31;11468:52;11515:3;11504:9;11500:19;11486:12;11468:52;:::i;:::-;11454:66;;11569:2;11561:6;11557:15;11551:22;11582:54;11631:3;11620:9;11616:19;11600:14;-1:-1:-1;;;;;4495:30:39;4483:43;;4430:102;11582:54;-1:-1:-1;11685:3:39;11673:16;;11667:23;4613:10;4602:22;;11748:3;11733:19;;4590:35;11699:54;11808:3;11800:6;11796:16;11790:23;11784:3;11773:9;11769:19;11762:52;11863:3;11855:6;11851:16;11845:23;11887:3;11899:71;11966:2;11955:9;11951:18;11935:14;3857:12;;3845:25;;3933:4;3922:16;;;3916:23;3909:31;3902:39;3886:14;;3879:63;3774:174;11899:71;12007:3;11995:16;;11989:23;12031:3;12050:18;;;12043:30;;;;12110:15;;;12104:22;4749:12;;-1:-1:-1;;;;;4745:21:39;;;12191:3;12176:19;;4733:34;4813:4;4802:16;;4796:23;4838:10;4880:21;;;4864:14;;;4857:45;4955:4;4944:16;;4938:23;4934:32;;4918:14;;;4911:56;5020:4;5009:16;;5003:23;4999:32;4983:14;;;4976:56;5085:4;5074:16;;;5068:23;5064:32;5048:14;;;5041:56;12245:6;12233:19;;12227:26;;-1:-1:-1;12262:66:39;12323:3;12308:19;;12227:26;12262:66;:::i;:::-;12365:15;;12359:22;12421;;;-1:-1:-1;;12417:36:39;12397:18;;;12390:64;12359:22;-1:-1:-1;12471:54:39;;-1:-1:-1;12425:6:39;12359:22;12471:54;:::i;:::-;12463:62;11007:1524;-1:-1:-1;;;;;;11007:1524:39:o;12536:331::-;12641:9;12652;12694:8;12682:10;12679:24;12676:44;;;12716:1;12713;12706:12;12676:44;12745:6;12735:8;12732:20;12729:40;;;12765:1;12762;12755:12;12729:40;-1:-1:-1;;12791:23:39;;;12836:25;;;;;-1:-1:-1;12536:331:39:o;12872:271::-;13055:6;13047;13042:3;13029:33;13011:3;13081:16;;13106:13;;;13081:16;12872:271;-1:-1:-1;12872:271:39:o;13148:687::-;13463:6;13452:9;13445:25;13506:6;13501:2;13490:9;13486:18;13479:34;13549:6;13544:2;13533:9;13529:18;13522:34;13608:26;13604:31;13596:6;13592:44;13587:2;13576:9;13572:18;13565:72;13674:6;13668:3;13657:9;13653:19;13646:35;13718:3;13712;13701:9;13697:19;13690:32;13426:4;13739:46;13780:3;13769:9;13765:19;13757:6;13739:46;:::i;:::-;13731:54;;13822:6;13816:3;13805:9;13801:19;13794:35;13148:687;;;;;;;;;;:::o;13840:118::-;13926:5;13919:13;13912:21;13905:5;13902:32;13892:60;;13948:1;13945;13938:12;13892:60;13840:118;:::o;13963:245::-;14030:6;14083:2;14071:9;14062:7;14058:23;14054:32;14051:52;;;14099:1;14096;14089:12;14051:52;14131:9;14125:16;14150:28;14172:5;14150:28;:::i;:::-;14197:5;13963:245;-1:-1:-1;;;13963:245:39:o;14213:128::-;14278:20;;14307:28;14278:20;14307:28;:::i;:::-;14213:128;;;:::o;14346:357::-;14410:5;14458:4;14446:9;14441:3;14437:19;14433:30;14430:50;;;14476:1;14473;14466:12;14430:50;14498:17;;:::i;:::-;14489:26;;14551:9;14538:23;14531:5;14524:38;14614:2;14603:9;14599:18;14586:32;14627:30;14649:7;14627:30;:::i;:::-;14684:2;14673:14;;14666:31;14677:5;14346:357;-1:-1:-1;;14346:357:39:o;14708:171::-;14775:20;;-1:-1:-1;;;;;14824:30:39;;14814:41;;14804:69;;14869:1;14866;14859:12;14884:163;14951:20;;15011:10;15000:22;;14990:33;;14980:61;;15037:1;15034;15027:12;15052:696;15105:5;15153:4;15141:9;15136:3;15132:19;15128:30;15125:50;;;15171:1;15168;15161:12;15125:50;15204:2;15198:9;15246:4;15238:6;15234:17;15317:6;15305:10;15302:22;-1:-1:-1;;;;;15269:10:39;15266:34;15263:62;15260:88;;;15328:18;;:::i;:::-;15364:2;15357:22;15397:6;-1:-1:-1;15397:6:39;15427:28;15445:9;15427:28;:::i;:::-;15419:6;15412:44;15489:37;15522:2;15511:9;15507:18;15489:37;:::i;:::-;15484:2;15476:6;15472:15;15465:62;15560:37;15593:2;15582:9;15578:18;15560:37;:::i;:::-;15555:2;15547:6;15543:15;15536:62;15631:37;15664:2;15653:9;15649:18;15631:37;:::i;:::-;15626:2;15618:6;15614:15;15607:62;15703:38;15736:3;15725:9;15721:19;15703:38;:::i;:::-;15697:3;15689:6;15685:16;15678:64;;15052:696;;;;:::o;15753:153::-;15831:20;;15880:1;15870:12;;15860:40;;15896:1;15893;15886:12;15911:1421;15969:5;16017:6;16005:9;16000:3;15996:19;15992:32;15989:52;;;16037:1;16034;16027:12;15989:52;16059:22;;:::i;:::-;16050:31;;16104:39;16133:9;16104:39;:::i;:::-;16097:5;16090:54;16176:48;16220:2;16209:9;16205:18;16176:48;:::i;:::-;16171:2;16164:5;16160:14;16153:72;16257:48;16301:2;16290:9;16286:18;16257:48;:::i;:::-;16252:2;16245:5;16241:14;16234:72;16338:48;16382:2;16371:9;16367:18;16338:48;:::i;:::-;16333:2;16326:5;16322:14;16315:72;16420:49;16464:3;16453:9;16449:19;16420:49;:::i;:::-;16414:3;16407:5;16403:15;16396:74;16503:49;16547:3;16536:9;16532:19;16503:49;:::i;:::-;16497:3;16490:5;16486:15;16479:74;16586:49;16630:3;16619:9;16615:19;16586:49;:::i;:::-;16580:3;16573:5;16569:15;16562:74;16669:38;16702:3;16691:9;16687:19;16669:38;:::i;:::-;16663:3;16656:5;16652:15;16645:63;16727:3;16762:48;16806:2;16795:9;16791:18;16762:48;:::i;:::-;16746:14;;;16739:72;16830:3;16865:48;16894:18;;;16865:48;:::i;:::-;16849:14;;;16842:72;16933:3;16968:48;16997:18;;;16968:48;:::i;:::-;16952:14;;;16945:72;17036:3;17071:48;17100:18;;;17071:48;:::i;:::-;17055:14;;;17048:72;17139:3;17174:48;17203:18;;;17174:48;:::i;:::-;17158:14;;;17151:72;17242:3;17277:48;17306:18;;;17277:48;:::i;:::-;17261:14;;;17254:72;17265:5;15911:1421;-1:-1:-1;;15911:1421:39:o;17337:668::-;17387:5;17440:3;17433:4;17425:6;17421:17;17417:27;17407:55;;17458:1;17455;17448:12;17407:55;17491:2;17485:9;17513:3;17555:2;17547:6;17543:15;17624:6;17612:10;17609:22;-1:-1:-1;;;;;17576:10:39;17573:34;17570:62;17567:88;;;17635:18;;:::i;:::-;17671:2;17664:22;17735:15;;17706:6;17762:15;;;17759:35;;;17790:1;17787;17780:12;17759:35;17814:6;17829:146;17845:6;17840:3;17837:15;17829:146;;;17913:17;;17901:30;;17960:4;17951:14;;;;17862;17829:146;;;-1:-1:-1;17993:6:39;;17337:668;-1:-1:-1;;;;;17337:668:39:o;18010:155::-;18090:20;;18139:1;18129:12;;18119:40;;18155:1;18152;18145:12;18170:280;18227:5;18275:4;18263:9;18258:3;18254:19;18250:30;18247:50;;;18293:1;18290;18283:12;18247:50;18315:17;;:::i;:::-;18306:26;;18368:9;18355:23;18348:5;18341:38;18439:2;18428:9;18424:18;18411:32;18406:2;18399:5;18395:14;18388:56;18170:280;;;;:::o;18455:720::-;18537:5;18590:3;18583:4;18575:6;18571:17;18567:27;18557:55;;18608:1;18605;18598:12;18557:55;18631:2;18662;18656:9;18704:3;18696:6;18692:16;18774:6;18762:10;18759:22;-1:-1:-1;;;;;18726:10:39;18723:34;18720:62;18717:88;;;18785:18;;:::i;:::-;18814:22;;18856:6;18897:3;18885:16;;18913:15;;;18910:35;;;18941:1;18938;18931:12;18910:35;18965:6;18980:165;18996:6;18991:3;18988:15;18980:165;;;19062:38;19096:3;19091;19062:38;:::i;:::-;19050:51;;19130:4;19121:14;;;;19013:12;;18980:165;;;-1:-1:-1;19163:6:39;;18455:720;-1:-1:-1;;;;;;18455:720:39:o;19180:698::-;19240:5;19293:3;19286:4;19278:6;19274:17;19270:27;19260:55;;19311:1;19308;19301:12;19260:55;19334:2;19365;19359:9;19407:3;19399:6;19395:16;19477:6;19465:10;19462:22;-1:-1:-1;;;;;19429:10:39;19426:34;19423:62;19420:88;;;19488:18;;:::i;:::-;19517:22;;19559:6;19600:3;19588:16;;19616:15;;;19613:35;;;19644:1;19641;19634:12;19613:35;19668:6;19683:165;19699:6;19694:3;19691:15;19683:165;;;19765:38;19799:3;19794;19765:38;:::i;:::-;19753:51;;19833:4;19824:14;;;;19716:12;;19683:165;;19883:1264;19945:5;19984:9;19979:3;19975:19;20014:6;20010:2;20006:15;20003:35;;;20034:1;20031;20024:12;20003:35;20056:22;;:::i;:::-;20047:31;;20101:41;20132:9;20101:41;:::i;:::-;20094:5;20087:56;20175:50;20221:2;20210:9;20206:18;20175:50;:::i;:::-;20170:2;20163:5;20159:14;20152:74;20245:6;20285:2;20279;20275:7;20271:2;20267:16;20263:25;20260:45;;;20301:1;20298;20291:12;20260:45;20329:22;;:::i;:::-;20314:37;;20376:81;20453:3;20448:2;20437:9;20433:18;20376:81;:::i;:::-;20367:7;20360:98;20492:60;20548:3;20542;20531:9;20527:19;20492:60;:::i;:::-;20487:2;20478:7;20474:16;20467:86;20587:55;20638:3;20631:4;20620:9;20616:20;20587:55;:::i;:::-;20582:2;20573:7;20569:16;20562:81;20679:55;20730:3;20723:4;20712:9;20708:20;20679:55;:::i;:::-;20672:4;20663:7;20659:18;20652:83;20771:55;20822:3;20815:4;20804:9;20800:20;20771:55;:::i;:::-;20764:4;20755:7;20751:18;20744:83;20863:55;20914:3;20907:4;20896:9;20892:20;20863:55;:::i;:::-;20856:4;20847:7;20843:18;20836:83;20955:55;21006:3;20999:4;20988:9;20984:20;20955:55;:::i;:::-;20948:4;20939:7;20935:18;20928:83;21047:53;21096:3;21091:2;21080:9;21076:18;21047:53;:::i;:::-;21040:4;21027:18;;21020:81;-1:-1:-1;21128:2:39;21117:14;;21110:31;21121:5;19883:1264;-1:-1:-1;;19883:1264:39:o;21152:659::-;21213:5;21266:3;21259:4;21251:6;21247:17;21243:27;21233:55;;21284:1;21281;21274:12;21233:55;21317:2;21311:9;21359:3;21351:6;21347:16;21429:6;21417:10;21414:22;-1:-1:-1;;;;;21381:10:39;21378:34;21375:62;21372:88;;;21440:18;;:::i;:::-;21476:2;21469:22;21511:6;21552:3;21540:16;;21568:15;;;21565:35;;;21596:1;21593;21586:12;21565:35;21620:6;21635:146;21651:6;21646:3;21643:15;21635:146;;;21719:17;;21707:30;;21766:4;21757:14;;;;21668;21635:146;;21816:848;21875:5;21923:6;21911:9;21906:3;21902:19;21898:32;21895:52;;;21943:1;21940;21933:12;21895:52;21965:22;;:::i;:::-;21956:31;;22010:40;22046:3;22035:9;22010:40;:::i;:::-;22003:5;21996:55;22085:59;22140:3;22134;22123:9;22119:19;22085:59;:::i;:::-;22078:4;22071:5;22067:16;22060:85;22179:39;22212:4;22201:9;22197:20;22179:39;:::i;:::-;22172:4;22165:5;22161:16;22154:65;22253:62;22311:3;22304:4;22293:9;22289:20;22253:62;:::i;:::-;22246:4;22239:5;22235:16;22228:88;22350:39;22383:4;22372:9;22368:20;22350:39;:::i;:::-;22343:4;22336:5;22332:16;22325:65;22424:37;22455:4;22444:9;22440:20;22424:37;:::i;:::-;22417:4;22410:5;22406:16;22399:63;22513:4;22502:9;22498:20;22485:34;-1:-1:-1;;;;;22534:6:39;22531:30;22528:50;;;22574:1;22571;22564:12;22528:50;22612:45;22653:3;22644:6;22633:9;22629:22;22612:45;:::i;:::-;22605:4;22598:5;22594:16;22587:71;;21816:848;;;;:::o;22669:1497::-;22753:6;22806:2;22794:9;22785:7;22781:23;22777:32;22774:52;;;22822:1;22819;22812:12;22774:52;22862:9;22849:23;-1:-1:-1;;;;;22932:2:39;22924:6;22921:14;22918:34;;;22948:1;22945;22938:12;22918:34;22971:22;;;;23027:6;23009:16;;;23005:29;23002:49;;;23047:1;23044;23037:12;23002:49;23073:22;;:::i;:::-;23118:48;23158:7;23154:2;23118:48;:::i;:::-;23111:5;23104:63;23220:2;23216;23212:11;23199:25;23194:2;23187:5;23183:14;23176:49;23271:2;23267;23263:11;23250:25;23300:2;23290:8;23287:16;23284:36;;;23316:1;23313;23306:12;23284:36;23352:44;23388:7;23377:8;23373:2;23369:17;23352:44;:::i;:::-;23347:2;23340:5;23336:14;23329:68;;23429:31;23455:3;23451:2;23447:12;23429:31;:::i;:::-;23424:2;23417:5;23413:14;23406:55;23494:31;23520:3;23516:2;23512:12;23494:31;:::i;:::-;23488:3;23481:5;23477:15;23470:56;23580:3;23576:2;23572:12;23559:26;23553:3;23546:5;23542:15;23535:51;23619:58;23669:7;23663:3;23659:2;23655:12;23619:58;:::i;:::-;23613:3;23606:5;23602:15;23595:83;23697:3;23754:2;23750;23746:11;23733:25;23727:3;23720:5;23716:15;23709:50;23778:3;23817:46;23855:7;23850:2;23846;23842:11;23817:46;:::i;:::-;23808:6;23801:5;23797:18;23790:74;23896:52;23940:7;23934:3;23930:2;23926:12;23896:52;:::i;:::-;23891:2;23884:5;23880:14;23873:76;23995:3;23991:2;23987:12;23974:26;23958:42;;24025:2;24015:8;24012:16;24009:36;;;24041:1;24038;24031:12;24009:36;24077:58;24127:7;24116:8;24112:2;24108:17;24077:58;:::i;:::-;24061:14;;;24054:82;-1:-1:-1;24065:5:39;22669:1497;-1:-1:-1;;;;;22669:1497:39:o","linkReferences":{}},"methodIdentifiers":{"validateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"f4c7c1fa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"validateAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0xf67f8a37e7a84b219d2d902d38ea2e8afd0cf5a5ec0902e261a55ee76cbc88b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d8807903f6be1de9010d16c93c8356f774ba5f726bc2a76e2bc05116264fbe3\",\"dweb:/ipfs/QmbgwQzrCEd7wRNEikjSxwWf92VepNGCzEfLdVbh7nyym8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccountIsNotVerified"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaAccountValidation.sol":{"keccak256":"0xf67f8a37e7a84b219d2d902d38ea2e8afd0cf5a5ec0902e261a55ee76cbc88b7","urls":["bzz-raw://7d8807903f6be1de9010d16c93c8356f774ba5f726bc2a76e2bc05116264fbe3","dweb:/ipfs/QmbgwQzrCEd7wRNEikjSxwWf92VepNGCzEfLdVbh7nyym8"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"AccountIsNotVerified","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61134f806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105ac565b610059565b6040516100509190610a2d565b60405180910390f35b610061610167565b3660006100718460288188610b5f565b9150915060008585604051610087929190610b89565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b03166306045a918e848f8f8f8f8f60006040518963ffffffff1660e01b81526004016100e2989796959493929190610b99565b602060405180830381865afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610c11565b9050801561014257610137838501856111f9565b94505050505061015b565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e0860185905286519081018752848152928301849052948201839052810182905292830152610100810191909152610120810161026a604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161027761027c565b905290565b6040518060e0016040528061028f6102c9565b815260200161029c6102e8565b8152600060208201526040016102b0610307565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610277610325565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103396103d0565b8152602001610346610409565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103df5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103df565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046d5761046d610435565b60405290565b6040516101c081016001600160401b038111828210171561046d5761046d610435565b604051606081016001600160401b038111828210171561046d5761046d610435565b60405161010081016001600160401b038111828210171561046d5761046d610435565b60405160e081016001600160401b038111828210171561046d5761046d610435565b60405161016081016001600160401b038111828210171561046d5761046d610435565b600082601f83011261053157600080fd5b81356001600160401b038082111561054b5761054b610435565b604051601f8301601f19908116603f0116810190828211818310171561057357610573610435565b8160405283815286602085880101111561058c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c857600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f357600080fd5b95506060890135945060808901356001600160401b038082111561061657600080fd5b6106228c838d01610520565b955060a08b0135945060c08b013591508082111561063f57600080fd5b818b0191508b601f83011261065357600080fd5b81358181111561066257600080fd5b8c602082850101111561067457600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b357602081850181015186830182015201610697565b818111156106c5576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60058110610700576107006106da565b9052565b61070f8282516106f0565b602081015161072160208401826106f0565b50604081015161073460408401826106f0565b50606081015161074760608401826106f0565b50608081015161075a60808401826106f0565b5060a081015161076d60a08401826106f0565b5060c081015161078060c08401826106f0565b5060e081015161079860e084018263ffffffff169052565b50610100808201516107ac828501826106f0565b5050610120808201516107c1828501826106f0565b5050610140808201516107d6828501826106f0565b5050610160808201516107eb828501826106f0565b505061018080820151610800828501826106f0565b50506101a080820151610815828501826106f0565b50505050565b60038110610700576107006106da565b8060005b600f8110156108155761084d84835180518252602090810151910152565b604093909301926020919091019060010161082f565b61086e82825161081b565b6020808201516108808285018261081b565b50604082810151805160008684015b60078210156108bf576108ad81845180518252602090810151910152565b9185019160019190910190840161088f565b50505091820151916108d561020086018461082b565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610815578151845260209384019390910190600101610967565b80516000906109609084835b60088110156109b1578251825260209283019290910190600101610992565b50505060208301516109c7610100860182610863565b50604083015163ffffffff1661084085015260608301516109ec610860860182610963565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a248286018261068d565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a6b6103e085018361068d565b91506060850151610a8760a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac481870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b39610200880184610704565b870151868503601f1901848801529150610b5590508382610986565b9695505050505050565b60008085851115610b6f57600080fd5b83861115610b7c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a0840152610bda8184018761068d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b8015158114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8151610c2e81610c00565b9392505050565b8035610c4081610c00565b919050565b600060408284031215610c5757600080fd5b610c5f61044b565b9050813581526020820135610c7381610c00565b602082015292915050565b80356001600160401b0381168114610c4057600080fd5b803563ffffffff81168114610c4057600080fd5b600060a08284031215610cbb57600080fd5b60405160a081018181106001600160401b0382111715610cdd57610cdd610435565b604052905080610cec83610c7e565b8152610cfa60208401610c95565b6020820152610d0b60408401610c7e565b6040820152610d1c60608401610c95565b6060820152610d2d60808401610c7e565b60808201525092915050565b803560058110610c4057600080fd5b60006101c08284031215610d5b57600080fd5b610d63610473565b9050610d6e82610d39565b8152610d7c60208301610d39565b6020820152610d8d60408301610d39565b6040820152610d9e60608301610d39565b6060820152610daf60808301610d39565b6080820152610dc060a08301610d39565b60a0820152610dd160c08301610d39565b60c0820152610de260e08301610c95565b60e0820152610100610df5818401610d39565b90820152610120610e07838201610d39565b90820152610140610e19838201610d39565b90820152610160610e2b838201610d39565b90820152610180610e3d838201610d39565b908201526101a0610e4f838201610d39565b9082015292915050565b600082601f830112610e6a57600080fd5b6040516101008082018281106001600160401b0382111715610e8e57610e8e610435565b60405283018185821115610ea157600080fd5b845b82811015610ebb578035825260209182019101610ea3565b509195945050505050565b803560038110610c4057600080fd5b600060408284031215610ee757600080fd5b610eef61044b565b9050813581526020820135602082015292915050565b600082601f830112610f1657600080fd5b6040805160e081018181106001600160401b0382111715610f3957610f39610435565b8252806101c0850186811115610f4e57600080fd5b855b81811015610f7157610f628882610ed5565b83526020909201918401610f50565b50919695505050505050565b600082601f830112610f8e57600080fd5b604080516101e081018181106001600160401b0382111715610fb257610fb2610435565b8252806103c0850186811115610fc757600080fd5b855b81811015610f7157610fdb8882610ed5565b83526020909201918401610fc9565b6000818303610740811215610ffe57600080fd5b611006610496565b915061101183610ec6565b825261101f60208401610ec6565b602083015261070080603f198301121561103857600080fd5b6110406104b8565b915061104f8560408601610f05565b825261105f856102008601610f7d565b6020830152611072856105c08601610ed5565b6040830152611085856106008601610ed5565b6060830152611098856106408601610ed5565b60808301526110ab856106808601610ed5565b60a08301526110be856106c08601610ed5565b60c08301526110cf85828601610ed5565b60e083015250604082015292915050565b600082601f8301126110f157600080fd5b60405160a081018181106001600160401b038211171561111357611113610435565b6040528060a084018581111561112857600080fd5b845b81811015610ebb57803583526020928301920161112a565b6000610960828403121561115557600080fd5b61115d6104db565b90506111698383610e59565b8152611179836101008401610fea565b602082015261118b6108408301610c95565b604082015261119e8361086084016110e0565b60608201526111b06109008301610c95565b60808201526111c26109208301610c35565b60a08201526109408201356001600160401b038111156111e157600080fd5b6111ed84828501610520565b60c08301525092915050565b60006020828403121561120b57600080fd5b81356001600160401b038082111561122257600080fd5b908301906103c0828603121561123757600080fd5b61123f6104fd565b6112498684610c45565b81526040830135602082015260608301358281111561126757600080fd5b61127387828601610520565b60408301525061128560808401610c7e565b606082015261129660a08401610c95565b608082015260c083013560a08201526112b28660e08501610c45565b60c08201526101208084013560e08301526101406112d288828701610ca9565b6101008401526112e6886101e08701610d48565b828401526103a08501359150838211156112ff57600080fd5b61130b88838701611142565b90830152509594505050505056fea2646970667358221220b3c08ebe77de8b53f44e760ec486d921d1da412cda363f73467d6560c31b584f64736f6c634300080c0033","sourceMap":"171:3299:64:-:0;;;319:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:7;:57;;-1:-1:-1;;;;;;378:57:64;-1:-1:-1;;;;;378:57:64;;;;;;;;;;171:3299;;14:298:67;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:67;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:67:o;:::-;171:3299:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105ac565b610059565b6040516100509190610a2d565b60405180910390f35b610061610167565b3660006100718460288188610b5f565b9150915060008585604051610087929190610b89565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b03166306045a918e848f8f8f8f8f60006040518963ffffffff1660e01b81526004016100e2989796959493929190610b99565b602060405180830381865afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610c11565b9050801561014257610137838501856111f9565b94505050505061015b565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e0860185905286519081018752848152928301849052948201839052810182905292830152610100810191909152610120810161026a604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161027761027c565b905290565b6040518060e0016040528061028f6102c9565b815260200161029c6102e8565b8152600060208201526040016102b0610307565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610277610325565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103396103d0565b8152602001610346610409565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103df5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103df565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046d5761046d610435565b60405290565b6040516101c081016001600160401b038111828210171561046d5761046d610435565b604051606081016001600160401b038111828210171561046d5761046d610435565b60405161010081016001600160401b038111828210171561046d5761046d610435565b60405160e081016001600160401b038111828210171561046d5761046d610435565b60405161016081016001600160401b038111828210171561046d5761046d610435565b600082601f83011261053157600080fd5b81356001600160401b038082111561054b5761054b610435565b604051601f8301601f19908116603f0116810190828211818310171561057357610573610435565b8160405283815286602085880101111561058c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c857600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f357600080fd5b95506060890135945060808901356001600160401b038082111561061657600080fd5b6106228c838d01610520565b955060a08b0135945060c08b013591508082111561063f57600080fd5b818b0191508b601f83011261065357600080fd5b81358181111561066257600080fd5b8c602082850101111561067457600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b357602081850181015186830182015201610697565b818111156106c5576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60058110610700576107006106da565b9052565b61070f8282516106f0565b602081015161072160208401826106f0565b50604081015161073460408401826106f0565b50606081015161074760608401826106f0565b50608081015161075a60808401826106f0565b5060a081015161076d60a08401826106f0565b5060c081015161078060c08401826106f0565b5060e081015161079860e084018263ffffffff169052565b50610100808201516107ac828501826106f0565b5050610120808201516107c1828501826106f0565b5050610140808201516107d6828501826106f0565b5050610160808201516107eb828501826106f0565b505061018080820151610800828501826106f0565b50506101a080820151610815828501826106f0565b50505050565b60038110610700576107006106da565b8060005b600f8110156108155761084d84835180518252602090810151910152565b604093909301926020919091019060010161082f565b61086e82825161081b565b6020808201516108808285018261081b565b50604082810151805160008684015b60078210156108bf576108ad81845180518252602090810151910152565b9185019160019190910190840161088f565b50505091820151916108d561020086018461082b565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610815578151845260209384019390910190600101610967565b80516000906109609084835b60088110156109b1578251825260209283019290910190600101610992565b50505060208301516109c7610100860182610863565b50604083015163ffffffff1661084085015260608301516109ec610860860182610963565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a248286018261068d565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a6b6103e085018361068d565b91506060850151610a8760a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac481870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b39610200880184610704565b870151868503601f1901848801529150610b5590508382610986565b9695505050505050565b60008085851115610b6f57600080fd5b83861115610b7c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a0840152610bda8184018761068d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b8015158114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8151610c2e81610c00565b9392505050565b8035610c4081610c00565b919050565b600060408284031215610c5757600080fd5b610c5f61044b565b9050813581526020820135610c7381610c00565b602082015292915050565b80356001600160401b0381168114610c4057600080fd5b803563ffffffff81168114610c4057600080fd5b600060a08284031215610cbb57600080fd5b60405160a081018181106001600160401b0382111715610cdd57610cdd610435565b604052905080610cec83610c7e565b8152610cfa60208401610c95565b6020820152610d0b60408401610c7e565b6040820152610d1c60608401610c95565b6060820152610d2d60808401610c7e565b60808201525092915050565b803560058110610c4057600080fd5b60006101c08284031215610d5b57600080fd5b610d63610473565b9050610d6e82610d39565b8152610d7c60208301610d39565b6020820152610d8d60408301610d39565b6040820152610d9e60608301610d39565b6060820152610daf60808301610d39565b6080820152610dc060a08301610d39565b60a0820152610dd160c08301610d39565b60c0820152610de260e08301610c95565b60e0820152610100610df5818401610d39565b90820152610120610e07838201610d39565b90820152610140610e19838201610d39565b90820152610160610e2b838201610d39565b90820152610180610e3d838201610d39565b908201526101a0610e4f838201610d39565b9082015292915050565b600082601f830112610e6a57600080fd5b6040516101008082018281106001600160401b0382111715610e8e57610e8e610435565b60405283018185821115610ea157600080fd5b845b82811015610ebb578035825260209182019101610ea3565b509195945050505050565b803560038110610c4057600080fd5b600060408284031215610ee757600080fd5b610eef61044b565b9050813581526020820135602082015292915050565b600082601f830112610f1657600080fd5b6040805160e081018181106001600160401b0382111715610f3957610f39610435565b8252806101c0850186811115610f4e57600080fd5b855b81811015610f7157610f628882610ed5565b83526020909201918401610f50565b50919695505050505050565b600082601f830112610f8e57600080fd5b604080516101e081018181106001600160401b0382111715610fb257610fb2610435565b8252806103c0850186811115610fc757600080fd5b855b81811015610f7157610fdb8882610ed5565b83526020909201918401610fc9565b6000818303610740811215610ffe57600080fd5b611006610496565b915061101183610ec6565b825261101f60208401610ec6565b602083015261070080603f198301121561103857600080fd5b6110406104b8565b915061104f8560408601610f05565b825261105f856102008601610f7d565b6020830152611072856105c08601610ed5565b6040830152611085856106008601610ed5565b6060830152611098856106408601610ed5565b60808301526110ab856106808601610ed5565b60a08301526110be856106c08601610ed5565b60c08301526110cf85828601610ed5565b60e083015250604082015292915050565b600082601f8301126110f157600080fd5b60405160a081018181106001600160401b038211171561111357611113610435565b6040528060a084018581111561112857600080fd5b845b81811015610ebb57803583526020928301920161112a565b6000610960828403121561115557600080fd5b61115d6104db565b90506111698383610e59565b8152611179836101008401610fea565b602082015261118b6108408301610c95565b604082015261119e8361086084016110e0565b60608201526111b06109008301610c95565b60808201526111c26109208301610c35565b60a08201526109408201356001600160401b038111156111e157600080fd5b6111ed84828501610520565b60c08301525092915050565b60006020828403121561120b57600080fd5b81356001600160401b038082111561122257600080fd5b908301906103c0828603121561123757600080fd5b61123f6104fd565b6112498684610c45565b81526040830135602082015260608301358281111561126757600080fd5b61127387828601610520565b60408301525061128560808401610c7e565b606082015261129660a08401610c95565b608082015260c083013560a08201526112b28660e08501610c45565b60c08201526101208084013560e08301526101406112d288828701610ca9565b6101008401526112e6886101e08701610d48565b828401526103a08501359150838211156112ff57600080fd5b61130b88838701611142565b90830152509594505050505056fea2646970667358221220b3c08ebe77de8b53f44e760ec486d921d1da412cda363f73467d6560c31b584f64736f6c634300080c0033","sourceMap":"171:3299:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:947;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;763:14;;:::i;:::-;789:29;;821:17;:8;830:6;821:8;;:17;:::i;:::-;789:49;;;;849:26;888:8;;878:19;;;;;;;:::i;:::-;;;;;;;;849:48;;908:22;933:7;;;;;;;;;-1:-1:-1;;;;;933:7:64;-1:-1:-1;;;;;933:28:64;;975:15;1004:18;1036:30;1080:18;1112:15;1141:11;1166:26;1214:1;933:293;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;908:318;;1241:17;1237:152;;;1281:37;;;;1292:14;1281:37;:::i;:::-;1274:44;;;;;;;;1237:152;1356:22;;-1:-1:-1;;;1356:22:64;;;;;;;;;;;448:947;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:127:67;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:67;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:250::-;475:2;469:9;517:6;505:19;;-1:-1:-1;;;;;539:34:67;;575:22;;;536:62;533:88;;;601:18;;:::i;663:253::-;735:2;729:9;777:4;765:17;;-1:-1:-1;;;;;797:34:67;;833:22;;;794:62;791:88;;;859:18;;:::i;921:255::-;993:2;987:9;1035:6;1023:19;;-1:-1:-1;;;;;1057:34:67;;1093:22;;;1054:62;1051:88;;;1119:18;;:::i;1181:253::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:67;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:67;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:67;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:67;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:1251::-;2555:6;2563;2571;2579;2587;2595;2603;2611;2664:3;2652:9;2643:7;2639:23;2635:33;2632:53;;;2681:1;2678;2671:12;2632:53;2704:23;;;-1:-1:-1;2774:2:67;2759:18;;2746:32;;-1:-1:-1;2828:2:67;2813:18;;2800:32;-1:-1:-1;;2861:43:67;;2851:54;;2841:82;;2919:1;2916;2909:12;2841:82;2942:5;-1:-1:-1;2994:2:67;2979:18;;2966:32;;-1:-1:-1;3049:3:67;3034:19;;3021:33;-1:-1:-1;;;;;3103:14:67;;;3100:34;;;3130:1;3127;3120:12;3100:34;3153:49;3194:7;3185:6;3174:9;3170:22;3153:49;:::i;:::-;3143:59;;3249:3;3238:9;3234:19;3221:33;3211:43;;3307:3;3296:9;3292:19;3279:33;3263:49;;3337:2;3327:8;3324:16;3321:36;;;3353:1;3350;3343:12;3321:36;3391:8;3380:9;3376:24;3366:34;;3438:7;3431:4;3427:2;3423:13;3419:27;3409:55;;3460:1;3457;3450:12;3409:55;3500:2;3487:16;3526:2;3518:6;3515:14;3512:34;;;3542:1;3539;3532:12;3512:34;3587:7;3582:2;3573:6;3569:2;3565:15;3561:24;3558:37;3555:57;;;3608:1;3605;3598:12;3555:57;3639:2;3635;3631:11;3621:21;;3661:6;3651:16;;;;;2422:1251;;;;;;;;;;;:::o;3953:472::-;3995:3;4033:5;4027:12;4060:6;4055:3;4048:19;4085:1;4095:162;4109:6;4106:1;4103:13;4095:162;;;4171:4;4227:13;;;4223:22;;4217:29;4199:11;;;4195:20;;4188:59;4124:12;4095:162;;;4275:6;4272:1;4269:13;4266:87;;;4341:1;4334:4;4325:6;4320:3;4316:16;4312:27;4305:38;4266:87;-1:-1:-1;4407:2:67;4386:15;-1:-1:-1;;4382:29:67;4373:39;;;;4414:4;4369:50;;3953:472;-1:-1:-1;;3953:472:67:o;5108:127::-;5169:10;5164:3;5160:20;5157:1;5150:31;5200:4;5197:1;5190:15;5224:4;5221:1;5214:15;5240:143;5324:1;5317:5;5314:12;5304:46;;5330:18;;:::i;:::-;5359;;5240:143::o;5388:1834::-;5453:47;5496:3;5488:5;5482:12;5453:47;:::i;:::-;5546:4;5539:5;5535:16;5529:23;5561:58;5613:4;5608:3;5604:14;5590:12;5561:58;:::i;:::-;;5667:4;5660:5;5656:16;5650:23;5682:60;5736:4;5731:3;5727:14;5711;5682:60;:::i;:::-;;5790:4;5783:5;5779:16;5773:23;5805:60;5859:4;5854:3;5850:14;5834;5805:60;:::i;:::-;;5913:4;5906:5;5902:16;5896:23;5928:60;5982:4;5977:3;5973:14;5957;5928:60;:::i;:::-;;6036:4;6029:5;6025:16;6019:23;6051:60;6105:4;6100:3;6096:14;6080;6051:60;:::i;:::-;;6159:4;6152:5;6148:16;6142:23;6174:60;6228:4;6223:3;6219:14;6203;6174:60;:::i;:::-;;6282:4;6275:5;6271:16;6265:23;6297:49;6340:4;6335:3;6331:14;6315;4613:10;4602:22;4590:35;;4537:94;6297:49;;6365:6;6419:2;6412:5;6408:14;6402:21;6432:58;6486:2;6481:3;6477:12;6461:14;6432:58;:::i;:::-;;;6509:6;6563:2;6556:5;6552:14;6546:21;6576:58;6630:2;6625:3;6621:12;6605:14;6576:58;:::i;:::-;;;6653:6;6707:2;6700:5;6696:14;6690:21;6720:58;6774:2;6769:3;6765:12;6749:14;6720:58;:::i;:::-;;;6797:6;6852:2;6845:5;6841:14;6835:21;6865:59;6920:2;6915:3;6911:12;6894:15;6865:59;:::i;:::-;;;6943:6;6998:2;6991:5;6987:14;6981:21;7011:59;7066:2;7061:3;7057:12;7040:15;7011:59;:::i;:::-;;;7089:6;7144:2;7137:5;7133:14;7127:21;7157:59;7212:2;7207:3;7203:12;7186:15;7157:59;:::i;:::-;;;5388:1834;;:::o;7227:145::-;7313:1;7306:5;7303:12;7293:46;;7319:18;;:::i;7533:335::-;7636:5;7659:1;7669:193;7683:4;7680:1;7677:11;7669:193;;;7730:48;7774:3;7765:6;7759:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;7730:48;7807:4;7798:14;;;;;7847:4;7835:17;;;;;7703:1;7696:9;7669:193;;7873:1627;7942:49;7987:3;7979:5;7973:12;7942:49;:::i;:::-;8010:4;8060:2;8053:5;8049:14;8043:21;8073:58;8127:2;8122:3;8118:12;8104;8073:58;:::i;:::-;-1:-1:-1;8150:4:67;8191:14;;;8185:21;8256;;8364:1;8225:12;;;8374:195;8388:4;8385:1;8382:11;8374:195;;;8435:50;8479:5;8470:6;8464:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;8435:50;8544:15;;;;8408:1;8401:9;;;;;8507:14;;8374:195;;;-1:-1:-1;;;8606:23:67;;;8600:30;;8639:65;8699:3;8690:13;;8600:30;8639:65;:::i;:::-;8741:23;;;8735:30;7453:12;;8828:4;8819:14;;7441:25;7515:4;7504:16;;;7498:23;7482:14;;;7475:47;8891:4;8871:25;;8865:32;7453:12;;8960:4;8951:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9023:4;9003:25;;8997:32;7453:12;;9092:4;9083:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9155:4;9135:25;;9129:32;7453:12;;9224:4;9215:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9287:4;9267:25;;9261:32;7453:12;;9356:4;9347:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9419:4;9399:25;;;9393:32;7453:12;;9488:4;9479:14;;7441:25;7504:16;7498:23;7482:14;;;;7475:47;;;;-1:-1:-1;;7873:1627:67:o;9505:326::-;9598:5;9621:1;9631:194;9645:4;9642:1;9639:11;9631:194;;;9704:13;;9692:26;;9741:4;9765:12;;;;9800:15;;;;9665:1;9658:9;9631:194;;9836:1166;9944:12;;9891:3;;9919:6;;9978:3;9891;10055:200;10069:4;10066:1;10063:11;10055:200;;;10130:13;;10116:28;;10167:4;10230:15;;;;10193:14;;;;10089:1;10082:9;10055:200;;;10059:3;;;10301:4;10294:5;10290:16;10284:23;10316:65;10373:6;10368:3;10364:16;10350:12;10316:65;:::i;:::-;-1:-1:-1;10429:4:67;10418:16;;10412:23;4613:10;4602:22;10487:6;10478:16;;4590:35;10543:4;10532:16;;10526:23;10558:58;10608:6;10599:16;;10526:23;10558:58;:::i;:::-;-1:-1:-1;10664:4:67;10653:16;;10647:23;4613:10;4602:22;10722:6;10713:16;;4590:35;10778:4;10767:16;;10761:23;3748:13;3741:21;10834:6;10825:16;;3729:34;10890:4;10879:16;;10873:23;10921:6;10912:16;;10905:28;;;10949:47;10983:12;;;10873:23;10949:47;:::i;:::-;10942:54;9836:1166;-1:-1:-1;;;;;9836:1166:67:o;11007:1526::-;11188:2;11170:21;;;11236:13;;3857:12;;11251:18;;;3845:25;3922:16;3916:23;3909:31;3902:39;3886:14;;;3879:63;11324:2;11316:6;11312:15;11306:22;11301:2;11290:9;11286:18;11279:50;11151:4;11376;11368:6;11364:17;11358:24;11401:6;11444:2;11438:3;11427:9;11423:19;11416:31;11470:52;11517:3;11506:9;11502:19;11488:12;11470:52;:::i;:::-;11456:66;;11571:2;11563:6;11559:15;11553:22;11584:54;11633:3;11622:9;11618:19;11602:14;-1:-1:-1;;;;;4495:30:67;4483:43;;4430:102;11584:54;-1:-1:-1;11687:3:67;11675:16;;11669:23;4613:10;4602:22;;11750:3;11735:19;;4590:35;11701:54;11810:3;11802:6;11798:16;11792:23;11786:3;11775:9;11771:19;11764:52;11865:3;11857:6;11853:16;11847:23;11889:3;11901:71;11968:2;11957:9;11953:18;11937:14;3857:12;;3845:25;;3933:4;3922:16;;;3916:23;3909:31;3902:39;3886:14;;3879:63;3774:174;11901:71;12009:3;11997:16;;11991:23;12033:3;12052:18;;;12045:30;;;;12112:15;;;12106:22;4749:12;;-1:-1:-1;;;;;4745:21:67;;;12193:3;12178:19;;4733:34;4813:4;4802:16;;4796:23;4838:10;4880:21;;;4864:14;;;4857:45;4955:4;4944:16;;4938:23;4934:32;;4918:14;;;4911:56;5020:4;5009:16;;5003:23;4999:32;4983:14;;;4976:56;5085:4;5074:16;;;5068:23;5064:32;5048:14;;;5041:56;12247:6;12235:19;;12229:26;;-1:-1:-1;12264:66:67;12325:3;12310:19;;12229:26;12264:66;:::i;:::-;12367:15;;12361:22;12423;;;-1:-1:-1;;12419:36:67;12399:18;;;12392:64;12361:22;-1:-1:-1;12473:54:67;;-1:-1:-1;12427:6:67;12361:22;12473:54;:::i;:::-;12465:62;11007:1526;-1:-1:-1;;;;;;11007:1526:67:o;12538:331::-;12643:9;12654;12696:8;12684:10;12681:24;12678:44;;;12718:1;12715;12708:12;12678:44;12747:6;12737:8;12734:20;12731:40;;;12767:1;12764;12757:12;12731:40;-1:-1:-1;;12793:23:67;;;12838:25;;;;;-1:-1:-1;12538:331:67:o;12874:271::-;13057:6;13049;13044:3;13031:33;13013:3;13083:16;;13108:13;;;13083:16;12874:271;-1:-1:-1;12874:271:67:o;13150:805::-;13456:4;13485:3;13515:6;13504:9;13497:25;13558:6;13553:2;13542:9;13538:18;13531:34;13601:6;13596:2;13585:9;13581:18;13574:34;13660:26;13656:31;13648:6;13644:44;13639:2;13628:9;13624:18;13617:72;13726:6;13720:3;13709:9;13705:19;13698:35;13770:2;13764:3;13753:9;13749:19;13742:31;13790:45;13831:2;13820:9;13816:18;13808:6;13790:45;:::i;:::-;13866:3;13851:19;;13844:35;;;;-1:-1:-1;;;;;;;13916:32:67;;;;13910:3;13895:19;;;13888:61;13782:53;13150:805;-1:-1:-1;;;;;;13150:805:67:o;13960:118::-;14046:5;14039:13;14032:21;14025:5;14022:32;14012:60;;14068:1;14065;14058:12;14012:60;13960:118;:::o;14083:245::-;14150:6;14203:2;14191:9;14182:7;14178:23;14174:32;14171:52;;;14219:1;14216;14209:12;14171:52;14251:9;14245:16;14270:28;14292:5;14270:28;:::i;:::-;14317:5;14083:245;-1:-1:-1;;;14083:245:67:o;14333:128::-;14398:20;;14427:28;14398:20;14427:28;:::i;:::-;14333:128;;;:::o;14466:362::-;14530:5;14578:4;14566:9;14561:3;14557:19;14553:30;14550:50;;;14596:1;14593;14586:12;14550:50;14618:22;;:::i;:::-;14609:31;;14676:9;14663:23;14656:5;14649:38;14739:2;14728:9;14724:18;14711:32;14752:30;14774:7;14752:30;:::i;:::-;14809:2;14798:14;;14791:31;14802:5;14466:362;-1:-1:-1;;14466:362:67:o;14833:171::-;14900:20;;-1:-1:-1;;;;;14949:30:67;;14939:41;;14929:69;;14994:1;14991;14984:12;15009:163;15076:20;;15136:10;15125:22;;15115:33;;15105:61;;15162:1;15159;15152:12;15177:696;15230:5;15278:4;15266:9;15261:3;15257:19;15253:30;15250:50;;;15296:1;15293;15286:12;15250:50;15329:2;15323:9;15371:4;15363:6;15359:17;15442:6;15430:10;15427:22;-1:-1:-1;;;;;15394:10:67;15391:34;15388:62;15385:88;;;15453:18;;:::i;:::-;15489:2;15482:22;15522:6;-1:-1:-1;15522:6:67;15552:28;15570:9;15552:28;:::i;:::-;15544:6;15537:44;15614:37;15647:2;15636:9;15632:18;15614:37;:::i;:::-;15609:2;15601:6;15597:15;15590:62;15685:37;15718:2;15707:9;15703:18;15685:37;:::i;:::-;15680:2;15672:6;15668:15;15661:62;15756:37;15789:2;15778:9;15774:18;15756:37;:::i;:::-;15751:2;15743:6;15739:15;15732:62;15828:38;15861:3;15850:9;15846:19;15828:38;:::i;:::-;15822:3;15814:6;15810:16;15803:64;;15177:696;;;;:::o;15878:153::-;15956:20;;16005:1;15995:12;;15985:40;;16021:1;16018;16011:12;16036:1416;16094:5;16142:6;16130:9;16125:3;16121:19;16117:32;16114:52;;;16162:1;16159;16152:12;16114:52;16184:17;;:::i;:::-;16175:26;;16224:39;16253:9;16224:39;:::i;:::-;16217:5;16210:54;16296:48;16340:2;16329:9;16325:18;16296:48;:::i;:::-;16291:2;16284:5;16280:14;16273:72;16377:48;16421:2;16410:9;16406:18;16377:48;:::i;:::-;16372:2;16365:5;16361:14;16354:72;16458:48;16502:2;16491:9;16487:18;16458:48;:::i;:::-;16453:2;16446:5;16442:14;16435:72;16540:49;16584:3;16573:9;16569:19;16540:49;:::i;:::-;16534:3;16527:5;16523:15;16516:74;16623:49;16667:3;16656:9;16652:19;16623:49;:::i;:::-;16617:3;16610:5;16606:15;16599:74;16706:49;16750:3;16739:9;16735:19;16706:49;:::i;:::-;16700:3;16693:5;16689:15;16682:74;16789:38;16822:3;16811:9;16807:19;16789:38;:::i;:::-;16783:3;16776:5;16772:15;16765:63;16847:3;16882:48;16926:2;16915:9;16911:18;16882:48;:::i;:::-;16866:14;;;16859:72;16950:3;16985:48;17014:18;;;16985:48;:::i;:::-;16969:14;;;16962:72;17053:3;17088:48;17117:18;;;17088:48;:::i;:::-;17072:14;;;17065:72;17156:3;17191:48;17220:18;;;17191:48;:::i;:::-;17175:14;;;17168:72;17259:3;17294:48;17323:18;;;17294:48;:::i;:::-;17278:14;;;17271:72;17362:3;17397:48;17426:18;;;17397:48;:::i;:::-;17381:14;;;17374:72;17385:5;16036:1416;-1:-1:-1;;16036:1416:67:o;17457:668::-;17507:5;17560:3;17553:4;17545:6;17541:17;17537:27;17527:55;;17578:1;17575;17568:12;17527:55;17611:2;17605:9;17633:3;17675:2;17667:6;17663:15;17744:6;17732:10;17729:22;-1:-1:-1;;;;;17696:10:67;17693:34;17690:62;17687:88;;;17755:18;;:::i;:::-;17791:2;17784:22;17855:15;;17826:6;17882:15;;;17879:35;;;17910:1;17907;17900:12;17879:35;17934:6;17949:146;17965:6;17960:3;17957:15;17949:146;;;18033:17;;18021:30;;18080:4;18071:14;;;;17982;17949:146;;;-1:-1:-1;18113:6:67;;17457:668;-1:-1:-1;;;;;17457:668:67:o;18130:155::-;18210:20;;18259:1;18249:12;;18239:40;;18275:1;18272;18265:12;18290:285;18347:5;18395:4;18383:9;18378:3;18374:19;18370:30;18367:50;;;18413:1;18410;18403:12;18367:50;18435:22;;:::i;:::-;18426:31;;18493:9;18480:23;18473:5;18466:38;18564:2;18553:9;18549:18;18536:32;18531:2;18524:5;18520:14;18513:56;18290:285;;;;:::o;18580:720::-;18662:5;18715:3;18708:4;18700:6;18696:17;18692:27;18682:55;;18733:1;18730;18723:12;18682:55;18756:2;18787;18781:9;18829:3;18821:6;18817:16;18899:6;18887:10;18884:22;-1:-1:-1;;;;;18851:10:67;18848:34;18845:62;18842:88;;;18910:18;;:::i;:::-;18939:22;;18981:6;19022:3;19010:16;;19038:15;;;19035:35;;;19066:1;19063;19056:12;19035:35;19090:6;19105:165;19121:6;19116:3;19113:15;19105:165;;;19187:38;19221:3;19216;19187:38;:::i;:::-;19175:51;;19255:4;19246:14;;;;19138:12;;19105:165;;;-1:-1:-1;19288:6:67;;18580:720;-1:-1:-1;;;;;;18580:720:67:o;19305:698::-;19365:5;19418:3;19411:4;19403:6;19399:17;19395:27;19385:55;;19436:1;19433;19426:12;19385:55;19459:2;19490;19484:9;19532:3;19524:6;19520:16;19602:6;19590:10;19587:22;-1:-1:-1;;;;;19554:10:67;19551:34;19548:62;19545:88;;;19613:18;;:::i;:::-;19642:22;;19684:6;19725:3;19713:16;;19741:15;;;19738:35;;;19769:1;19766;19759:12;19738:35;19793:6;19808:165;19824:6;19819:3;19816:15;19808:165;;;19890:38;19924:3;19919;19890:38;:::i;:::-;19878:51;;19958:4;19949:14;;;;19841:12;;19808:165;;20008:1264;20070:5;20109:9;20104:3;20100:19;20139:6;20135:2;20131:15;20128:35;;;20159:1;20156;20149:12;20128:35;20181:22;;:::i;:::-;20172:31;;20226:41;20257:9;20226:41;:::i;:::-;20219:5;20212:56;20300:50;20346:2;20335:9;20331:18;20300:50;:::i;:::-;20295:2;20288:5;20284:14;20277:74;20370:6;20410:2;20404;20400:7;20396:2;20392:16;20388:25;20385:45;;;20426:1;20423;20416:12;20385:45;20454:22;;:::i;:::-;20439:37;;20501:81;20578:3;20573:2;20562:9;20558:18;20501:81;:::i;:::-;20492:7;20485:98;20617:60;20673:3;20667;20656:9;20652:19;20617:60;:::i;:::-;20612:2;20603:7;20599:16;20592:86;20712:55;20763:3;20756:4;20745:9;20741:20;20712:55;:::i;:::-;20707:2;20698:7;20694:16;20687:81;20804:55;20855:3;20848:4;20837:9;20833:20;20804:55;:::i;:::-;20797:4;20788:7;20784:18;20777:83;20896:55;20947:3;20940:4;20929:9;20925:20;20896:55;:::i;:::-;20889:4;20880:7;20876:18;20869:83;20988:55;21039:3;21032:4;21021:9;21017:20;20988:55;:::i;:::-;20981:4;20972:7;20968:18;20961:83;21080:55;21131:3;21124:4;21113:9;21109:20;21080:55;:::i;:::-;21073:4;21064:7;21060:18;21053:83;21172:53;21221:3;21216:2;21205:9;21201:18;21172:53;:::i;:::-;21165:4;21152:18;;21145:81;-1:-1:-1;21253:2:67;21242:14;;21235:31;21246:5;20008:1264;-1:-1:-1;;20008:1264:67:o;21277:659::-;21338:5;21391:3;21384:4;21376:6;21372:17;21368:27;21358:55;;21409:1;21406;21399:12;21358:55;21442:2;21436:9;21484:3;21476:6;21472:16;21554:6;21542:10;21539:22;-1:-1:-1;;;;;21506:10:67;21503:34;21500:62;21497:88;;;21565:18;;:::i;:::-;21601:2;21594:22;21636:6;21677:3;21665:16;;21693:15;;;21690:35;;;21721:1;21718;21711:12;21690:35;21745:6;21760:146;21776:6;21771:3;21768:15;21760:146;;;21844:17;;21832:30;;21891:4;21882:14;;;;21793;21760:146;;21941:848;22000:5;22048:6;22036:9;22031:3;22027:19;22023:32;22020:52;;;22068:1;22065;22058:12;22020:52;22090:22;;:::i;:::-;22081:31;;22135:40;22171:3;22160:9;22135:40;:::i;:::-;22128:5;22121:55;22210:59;22265:3;22259;22248:9;22244:19;22210:59;:::i;:::-;22203:4;22196:5;22192:16;22185:85;22304:39;22337:4;22326:9;22322:20;22304:39;:::i;:::-;22297:4;22290:5;22286:16;22279:65;22378:62;22436:3;22429:4;22418:9;22414:20;22378:62;:::i;:::-;22371:4;22364:5;22360:16;22353:88;22475:39;22508:4;22497:9;22493:20;22475:39;:::i;:::-;22468:4;22461:5;22457:16;22450:65;22549:37;22580:4;22569:9;22565:20;22549:37;:::i;:::-;22542:4;22535:5;22531:16;22524:63;22638:4;22627:9;22623:20;22610:34;-1:-1:-1;;;;;22659:6:67;22656:30;22653:50;;;22699:1;22696;22689:12;22653:50;22737:45;22778:3;22769:6;22758:9;22754:22;22737:45;:::i;:::-;22730:4;22723:5;22719:16;22712:71;;21941:848;;;;:::o;22794:1498::-;22879:6;22932:2;22920:9;22911:7;22907:23;22903:32;22900:52;;;22948:1;22945;22938:12;22900:52;22988:9;22975:23;-1:-1:-1;;;;;23058:2:67;23050:6;23047:14;23044:34;;;23074:1;23071;23064:12;23044:34;23097:22;;;;23153:6;23135:16;;;23131:29;23128:49;;;23173:1;23170;23163:12;23128:49;23199:22;;:::i;:::-;23244:48;23284:7;23280:2;23244:48;:::i;:::-;23237:5;23230:63;23346:2;23342;23338:11;23325:25;23320:2;23313:5;23309:14;23302:49;23397:2;23393;23389:11;23376:25;23426:2;23416:8;23413:16;23410:36;;;23442:1;23439;23432:12;23410:36;23478:44;23514:7;23503:8;23499:2;23495:17;23478:44;:::i;:::-;23473:2;23466:5;23462:14;23455:68;;23555:31;23581:3;23577:2;23573:12;23555:31;:::i;:::-;23550:2;23543:5;23539:14;23532:55;23620:31;23646:3;23642:2;23638:12;23620:31;:::i;:::-;23614:3;23607:5;23603:15;23596:56;23706:3;23702:2;23698:12;23685:26;23679:3;23672:5;23668:15;23661:51;23745:58;23795:7;23789:3;23785:2;23781:12;23745:58;:::i;:::-;23739:3;23732:5;23728:15;23721:83;23823:3;23880:2;23876;23872:11;23859:25;23853:3;23846:5;23842:15;23835:50;23904:3;23943:46;23981:7;23976:2;23972;23968:11;23943:46;:::i;:::-;23934:6;23927:5;23923:18;23916:74;24022:52;24066:7;24060:3;24056:2;24052:12;24022:52;:::i;:::-;24017:2;24010:5;24006:14;23999:76;24121:3;24117:2;24113:12;24100:26;24084:42;;24151:2;24141:8;24138:16;24135:36;;;24167:1;24164;24157:12;24135:36;24203:58;24253:7;24242:8;24238:2;24234:17;24203:58;:::i;:::-;24187:14;;;24180:82;-1:-1:-1;24191:5:67;22794:1498;-1:-1:-1;;;;;22794:1498:67:o","linkReferences":{}},"methodIdentifiers":{"validateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"f4c7c1fa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"validateAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x38da39b17be3ff80bdcd182f07365d6f6895b907d4a1cac5e9fa0541255fee67\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://422e0b0741b3599b9c0813886c166a1b909c583e4571b165f8329734ff26fee6\",\"dweb:/ipfs/QmezhvP6D1ifbBpVpLKQUiDv84naWbYUQEpFkDGdCbKwAG\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0xa6b0d0d800c74341814b90bfe81a774ba1ef8aed33e88b55165910a959835385\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f9de046b12fc312d4198f11995862080c0422fdc86d9b2d80ce65630dd992bc\",\"dweb:/ipfs/QmSAwmbB5YZ1w7DYzrBhpKxhB2h468H8MgmVq4JEUeKz2q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccountIsNotVerified"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x38da39b17be3ff80bdcd182f07365d6f6895b907d4a1cac5e9fa0541255fee67","urls":["bzz-raw://422e0b0741b3599b9c0813886c166a1b909c583e4571b165f8329734ff26fee6","dweb:/ipfs/QmezhvP6D1ifbBpVpLKQUiDv84naWbYUQEpFkDGdCbKwAG"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0xa6b0d0d800c74341814b90bfe81a774ba1ef8aed33e88b55165910a959835385","urls":["bzz-raw://5f9de046b12fc312d4198f11995862080c0422fdc86d9b2d80ce65630dd992bc","dweb:/ipfs/QmSAwmbB5YZ1w7DYzrBhpKxhB2h468H8MgmVq4JEUeKz2q"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index 4dd624c8..6cf85336 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106a13803806106a183398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6105aa806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102f9565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103ce565b610160565b005b6100956102cb565b610095601081565b6100d06102da565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102da565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047d565b60108110610159576101596104a2565b0154905090565b602081015160006101736001601061047d565b60108110610183576101836104a2565b015481146101d25780600061019a6001601061047d565b601081106101aa576101aa6104a2565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc090610219908d9086908e908e908e908e908e906004016104b8565b602060405180830381865afa158015610236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025a919061054b565b905080156102a65760006010604086016102408701835b601081101561029c578251855581518455600194850194938401936020938401939092019101610271565b50505050506102bf565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047d565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610322578151835260209283019290910190600101610303565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035257600080fd5b813567ffffffffffffffff8082111561036d5761036d61032b565b604051601f8301601f19908116603f011681019082821181831017156103955761039561032b565b816040528381528660208588010111156103ae57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103e957600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041457600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043857600080fd5b6104448b838c01610341565b945060a08a0135935060c08a013591508082111561046157600080fd5b5061046e8a828b01610341565b91505092959891949750929550565b60008282101561049d57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561051457868101830151858201610100015282016104f7565b8181111561052757600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561055d57600080fd5b8151801515811461056d57600080fd5b939250505056fea2646970667358221220350fe0f44e9c1c341077cc9edb5783a4170ba0e7bcb82fd734125495f71288cb64736f6c634300080c0033","sourceMap":"345:4287:63:-:0;;;1050:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1124:7;:57;;-1:-1:-1;;;;;;1124:57:63;-1:-1:-1;;;;;1124:57:63;;;;;1246:13;-1:-1:-1;1208:34:63;-1:-1:-1;545:2:63;1208:34;:::i;:::-;1191:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;345:4287:63;;-1:-1:-1;345:4287:63;14:351:65;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:65;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:65:o;370:222::-;410:4;438:1;435;432:8;429:131;;;482:10;477:3;473:20;470:1;463:31;517:4;514:1;507:15;545:4;542:1;535:15;429:131;-1:-1:-1;577:9:65;;370:222::o;597:127::-;658:10;653:3;649:20;646:1;639:31;689:4;686:1;679:15;713:4;710:1;703:15;597:127;345:4287:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102f9565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103ce565b610160565b005b6100956102cb565b610095601081565b6100d06102da565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102da565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047d565b60108110610159576101596104a2565b0154905090565b602081015160006101736001601061047d565b60108110610183576101836104a2565b015481146101d25780600061019a6001601061047d565b601081106101aa576101aa6104a2565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516303e94d3760e61b81526000916001600160a01b03169063fa534dc090610219908d9086908e908e908e908e908e906004016104b8565b602060405180830381865afa158015610236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025a919061054b565b905080156102a65760006010604086016102408701835b601081101561029c578251855581518455600194850194938401936020938401939092019101610271565b50505050506102bf565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047d565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610322578151835260209283019290910190600101610303565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035257600080fd5b813567ffffffffffffffff8082111561036d5761036d61032b565b604051601f8301601f19908116603f011681019082821181831017156103955761039561032b565b816040528381528660208588010111156103ae57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103e957600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041457600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043857600080fd5b6104448b838c01610341565b945060a08a0135935060c08a013591508082111561046157600080fd5b5061046e8a828b01610341565b91505092959891949750929550565b60008282101561049d57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b8781526000602088818401528760408401526bffffffffffffffffffffffff198716606084015285608084015260e060a084015284518060e085015260005b8181101561051457868101830151858201610100015282016104f7565b8181111561052757600061010083870101525b5060c08401949094525050601f91909101601f191601610100019695505050505050565b60006020828403121561055d57600080fd5b8151801515811461056d57600080fd5b939250505056fea2646970667358221220350fe0f44e9c1c341077cc9edb5783a4170ba0e7bcb82fd734125495f71288cb64736f6c634300080c0033","sourceMap":"345:4287:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1729:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1970:172;;;:::i;1522:137::-;;;:::i;:::-;;;662:25:65;;;650:2;635:18;1522:137:63;516:177:65;2148:2482:63;;;;;;:::i;:::-;;:::i;:::-;;1326:135;;;:::i;491:56::-;;545:2;491:56;;1729:170;1807:46;;:::i;:::-;1869:23;;;;;;;;;;;-1:-1:-1;;1869:23:63;;-1:-1:-1;1869:23:63;;;;;;;;;;;;;;;;;;;;;;;;1729:170;:::o;1970:172::-;2049:46;;:::i;:::-;2111:24;;;;;;;;;;2118:17;2111:24;;;;;;2118:17;;2111:24;;;;;;;;;;;;;;;;1970:172;:::o;1522:137::-;1573:7;1599:17;1617:34;1650:1;1599:17;1617:34;:::i;:::-;1599:53;;;;;;;:::i;:::-;;;1592:60;;1522:137;:::o;2148:2482::-;2570:4;2556:19;;2550:26;2453:34;2672;2705:1;545:2;2672:34;:::i;:::-;2655:52;;;;;;;:::i;:::-;;;2613:26;:94;2596:297;;2772:26;2816:16;2833:34;2866:1;545:2;2833:34;:::i;:::-;2816:52;;;;;;;:::i;:::-;;;2739:143;;-1:-1:-1;;;2739:143:63;;;;;3274:25:65;;;;3315:18;;;3308:34;3247:18;;2739:143:63;;;;;;;2596:297;2932:19;;;;;;;;;;2988:7;;:269;;-1:-1:-1;;;2988:269:63;;2903:26;;-1:-1:-1;;;;;2988:7:63;;:28;;:269;;3030:15;;2932:19;;3091:30;;3135:18;;3167:15;;3196:11;;3221:26;;2988:269;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2962:295;;3272:18;3268:1356;;;3410:21;3468:22;3758:2;3744:17;;3893:115;;;3410:21;4026:516;4087:30;4084:1;4081:37;4026:516;;;4216:18;;4196:39;;4389:19;;4368:41;;4344:1;4327:19;;;;4504:20;;;;4288:2;4271:20;;;;4446:21;;;;4146:9;4026:516;;;4030:50;;;;;3268:1356;;;4593:20;;-1:-1:-1;;;4593:20:63;;;;;;;;;;;3268:1356;2443:2187;;;2148:2482;;;;;;;:::o;1326:135::-;1376:7;;1419:34;1452:1;545:2;1419:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:65:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:718;872:5;925:3;918:4;910:6;906:17;902:27;892:55;;943:1;940;933:12;892:55;979:6;966:20;1005:18;1042:2;1038;1035:10;1032:36;;;1048:18;;:::i;:::-;1123:2;1117:9;1091:2;1177:13;;-1:-1:-1;;1173:22:65;;;1197:2;1169:31;1165:40;1153:53;;;1221:18;;;1241:22;;;1218:46;1215:72;;;1267:18;;:::i;:::-;1307:10;1303:2;1296:22;1342:2;1334:6;1327:18;1388:3;1381:4;1376:2;1368:6;1364:15;1360:26;1357:35;1354:55;;;1405:1;1402;1395:12;1354:55;1469:2;1462:4;1454:6;1450:17;1443:4;1435:6;1431:17;1418:54;1516:1;1509:4;1504:2;1496:6;1492:15;1488:26;1481:37;1536:6;1527:15;;;;;;830:718;;;;:::o;1553:1001::-;1684:6;1692;1700;1708;1716;1724;1732;1785:3;1773:9;1764:7;1760:23;1756:33;1753:53;;;1802:1;1799;1792:12;1753:53;1825:23;;;-1:-1:-1;1895:2:65;1880:18;;1867:32;;-1:-1:-1;1949:2:65;1934:18;;1921:32;-1:-1:-1;;1982:43:65;;1972:54;;1962:82;;2040:1;2037;2030:12;1962:82;2063:5;-1:-1:-1;2115:2:65;2100:18;;2087:32;;-1:-1:-1;2170:3:65;2155:19;;2142:33;2194:18;2224:14;;;2221:34;;;2251:1;2248;2241:12;2221:34;2274:49;2315:7;2306:6;2295:9;2291:22;2274:49;:::i;:::-;2264:59;;2370:3;2359:9;2355:19;2342:33;2332:43;;2428:3;2417:9;2413:19;2400:33;2384:49;;2458:2;2448:8;2445:16;2442:36;;;2474:1;2471;2464:12;2442:36;;2497:51;2540:7;2529:8;2518:9;2514:24;2497:51;:::i;:::-;2487:61;;;1553:1001;;;;;;;;;;:::o;2741:222::-;2781:4;2809:1;2806;2803:8;2800:131;;;2853:10;2848:3;2844:20;2841:1;2834:31;2888:4;2885:1;2878:15;2916:4;2913:1;2906:15;2800:131;-1:-1:-1;2948:9:65;;2741:222::o;2968:127::-;3029:10;3024:3;3020:20;3017:1;3010:31;3060:4;3057:1;3050:15;3084:4;3081:1;3074:15;3353:1067;3668:6;3657:9;3650:25;3631:4;3694:2;3732:6;3727:2;3716:9;3712:18;3705:34;3775:6;3770:2;3759:9;3755:18;3748:34;3834:26;3830:31;3822:6;3818:44;3813:2;3802:9;3798:18;3791:72;3900:6;3894:3;3883:9;3879:19;3872:35;3944:3;3938;3927:9;3923:19;3916:32;3977:6;3971:13;4021:6;4015:3;4004:9;4000:19;3993:35;4046:1;4056:141;4070:6;4067:1;4064:13;4056:141;;;4166:14;;;4162:23;;4156:30;4131:17;;;4150:3;4127:27;4120:67;4085:10;;4056:141;;;4215:6;4212:1;4209:13;4206:92;;;4286:1;4280:3;4271:6;4260:9;4256:22;4252:32;4245:43;4206:92;-1:-1:-1;4401:3:65;4386:19;;4379:35;;;;-1:-1:-1;;4359:2:65;4338:15;;;;-1:-1:-1;;4334:29:65;4319:45;4366:3;4315:55;;3353:1067;-1:-1:-1;;;;;;3353:1067:65:o;4425:277::-;4492:6;4545:2;4533:9;4524:7;4520:23;4516:32;4513:52;;;4561:1;4558;4551:12;4513:52;4593:9;4587:16;4646:5;4639:13;4632:21;4625:5;4622:32;4612:60;;4668:1;4665;4658:12;4612:60;4691:5;4425:277;-1:-1:-1;;;4425:277:65:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2\",\"dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178\",\"urls\":[\"bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1\",\"dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x1ebc8fd5f123b709a82def084d89295d0f2d2ce27fba0f59d430b5862f4ef097\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://72b1e30f73859b6565d78cd3e7da7a6b1a5fd89a8b9045369d4dd71f81f19f44\",\"dweb:/ipfs/QmNwgiUXT3oHV4H8gAcXpq3oA3SymhaZi7Lx2qoNL58QwV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xbadddb8b61d508694724b686727516d5834cd3943a5f161e43187fe8a0070672","urls":["bzz-raw://2379a17f5c71577de435c74a2f8e6c42cd5033a32a842f1282740f149b63eef2","dweb:/ipfs/QmVhNgmokoQBaUZ7jHEPApZZohjnraPV2ptRTQtS7RFjM2"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xbbe461cc493648197379c1b3f987a1e24d9c24fd7545b56ff7d3a55514f69178","urls":["bzz-raw://c50019355aeed1bb304a93b01835adcae7afd82095315e3241ad23a51cd356b1","dweb:/ipfs/QmetLKMdJ669hv91h5yQn58ic9akQKsyQ1z5nRYJKRFg6n"],"license":null},"src/MinaBridge.sol":{"keccak256":"0x1ebc8fd5f123b709a82def084d89295d0f2d2ce27fba0f59d430b5862f4ef097","urls":["bzz-raw://72b1e30f73859b6565d78cd3e7da7a6b1a5fd89a8b9045369d4dd71f81f19f44","dweb:/ipfs/QmNwgiUXT3oHV4H8gAcXpq3oA3SymhaZi7Lx2qoNL58QwV"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106bf3803806106bf83398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6105c8806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fb565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103d0565b610160565b005b6100956102cd565b610095601081565b6100d06102dc565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dc565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047f565b60108110610159576101596104a4565b0154905090565b602081015160006101736001601061047f565b60108110610183576101836104a4565b015481146101d25780600061019a6001601061047f565b601081106101aa576101aa6104a4565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a919061021b908d9086908e908e908e908e908e908b906004016104ba565b602060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c9190610569565b905080156102a85760006010604086016102408701835b601081101561029e578251855581518455600194850194938401936020938401939092019101610273565b50505050506102c1565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610324578151835260209283019290910190600101610305565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035457600080fd5b813567ffffffffffffffff8082111561036f5761036f61032d565b604051601f8301601f19908116603f011681019082821181831017156103975761039761032d565b816040528381528660208588010111156103b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103eb57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041657600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043a57600080fd5b6104468b838c01610343565b945060a08a0135935060c08a013591508082111561046357600080fd5b506104708a828b01610343565b91505092959891949750929550565b60008282101561049f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561051b578783018201518584016101200152918101916104fc565b8083111561052e57600061012082870101525b60c08501879052601f01601f1916840161012001925061055c91505060e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561057b57600080fd5b8151801515811461058b57600080fd5b939250505056fea2646970667358221220f67050a4ae1e0b02650c780caac27ab639b26cd5fb868d6465d8b448b291078a64736f6c634300080c0033","sourceMap":"345:4056:65:-:0;;;1053:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1135:7;:57;;-1:-1:-1;;;;;;1135:57:65;-1:-1:-1;;;;;1135:57:65;;;;;1257:13;-1:-1:-1;1219:34:65;-1:-1:-1;548:2:65;1219:34;:::i;:::-;1202:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;345:4056:65;;-1:-1:-1;345:4056:65;14:359:67;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:67;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:67:o;378:222::-;418:4;446:1;443;440:8;437:131;;;490:10;485:3;481:20;478:1;471:31;525:4;522:1;515:15;553:4;550:1;543:15;437:131;-1:-1:-1;585:9:67;;378:222::o;605:127::-;666:10;661:3;657:20;654:1;647:31;697:4;694:1;687:15;721:4;718:1;711:15;605:127;345:4056:65;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fb565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103d0565b610160565b005b6100956102cd565b610095601081565b6100d06102dc565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dc565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047f565b60108110610159576101596104a4565b0154905090565b602081015160006101736001601061047f565b60108110610183576101836104a4565b015481146101d25780600061019a6001601061047f565b601081106101aa576101aa6104a4565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a919061021b908d9086908e908e908e908e908e908b906004016104ba565b602060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c9190610569565b905080156102a85760006010604086016102408701835b601081101561029e578251855581518455600194850194938401936020938401939092019101610273565b50505050506102c1565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610324578151835260209283019290910190600101610305565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035457600080fd5b813567ffffffffffffffff8082111561036f5761036f61032d565b604051601f8301601f19908116603f011681019082821181831017156103975761039761032d565b816040528381528660208588010111156103b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103eb57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041657600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043a57600080fd5b6104468b838c01610343565b945060a08a0135935060c08a013591508082111561046357600080fd5b506104708a828b01610343565b91505092959891949750929550565b60008282101561049f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561051b578783018201518584016101200152918101916104fc565b8083111561052e57600061012082870101525b60c08501879052601f01601f1916840161012001925061055c91505060e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561057b57600080fd5b8151801515811461058b57600080fd5b939250505056fea2646970667358221220f67050a4ae1e0b02650c780caac27ab639b26cd5fb868d6465d8b448b291078a64736f6c634300080c0033","sourceMap":"345:4056:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1953:144;;;:::i;1533:137::-;;;:::i;:::-;;;662:25:67;;;650:2;635:18;1533:137:65;516:177:67;2103:2296:65;;;;;;:::i;:::-;;:::i;:::-;;1337:135;;;:::i;491:59::-;;548:2;491:59;;1740:142;1794:46;;:::i;:::-;1852:23;;;;;;;;;;;-1:-1:-1;;1852:23:65;;-1:-1:-1;1852:23:65;;;;;;;;;;;;;;;;;;;;;;;;1740:142;:::o;1953:144::-;2008:46;;:::i;:::-;2066:24;;;;;;;;;;2073:17;2066:24;;;;;;2073:17;;2066:24;;;;;;;;;;;;;;;;1953:144;:::o;1533:137::-;1584:7;1610:17;1628:34;1661:1;1610:17;1628:34;:::i;:::-;1610:53;;;;;;;:::i;:::-;;;1603:60;;1533:137;:::o;2103:2296::-;2525:4;2511:19;;2505:26;2408:34;2602;2635:1;548:2;2602:34;:::i;:::-;2585:52;;;;;;;:::i;:::-;;;2555:26;:82;2551:217;;2676:26;2704:16;2721:34;2754:1;548:2;2721:34;:::i;:::-;2704:52;;;;;;;:::i;:::-;;;2660:97;;-1:-1:-1;;;2660:97:65;;;;;3274:25:67;;;;3315:18;;;3308:34;3247:18;;2660:97:65;;;;;;;2551:217;2807:19;;;;;;;;;;2863:7;;:293;;-1:-1:-1;;;2863:293:65;;2778:26;;-1:-1:-1;;;;;2863:7:65;;:28;;:293;;2905:15;;2807:19;;2966:30;;3010:18;;3042:15;;3071:11;;3096:26;;2778;;2863:293;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2837:319;;3171:18;3167:1226;;;3309:21;3367:22;3657:2;3643:17;;3792:57;;;3309:21;3867:444;3892:30;3889:1;3886:37;3867:444;;;3985:18;;3965:39;;4158:19;;4137:41;;4113:1;4096:19;;;;4273:20;;;;4057:2;4040:20;;;;4215:21;;;;3931:9;3867:444;;;3871:14;;;;;3167:1226;;;4362:20;;-1:-1:-1;;;4362:20:65;;;;;;;;;;;3167:1226;2398:2001;;;2103:2296;;;;;;;:::o;1337:135::-;1387:7;;1430:34;1463:1;548:2;1430:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:67:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:718;872:5;925:3;918:4;910:6;906:17;902:27;892:55;;943:1;940;933:12;892:55;979:6;966:20;1005:18;1042:2;1038;1035:10;1032:36;;;1048:18;;:::i;:::-;1123:2;1117:9;1091:2;1177:13;;-1:-1:-1;;1173:22:67;;;1197:2;1169:31;1165:40;1153:53;;;1221:18;;;1241:22;;;1218:46;1215:72;;;1267:18;;:::i;:::-;1307:10;1303:2;1296:22;1342:2;1334:6;1327:18;1388:3;1381:4;1376:2;1368:6;1364:15;1360:26;1357:35;1354:55;;;1405:1;1402;1395:12;1354:55;1469:2;1462:4;1454:6;1450:17;1443:4;1435:6;1431:17;1418:54;1516:1;1509:4;1504:2;1496:6;1492:15;1488:26;1481:37;1536:6;1527:15;;;;;;830:718;;;;:::o;1553:1001::-;1684:6;1692;1700;1708;1716;1724;1732;1785:3;1773:9;1764:7;1760:23;1756:33;1753:53;;;1802:1;1799;1792:12;1753:53;1825:23;;;-1:-1:-1;1895:2:67;1880:18;;1867:32;;-1:-1:-1;1949:2:67;1934:18;;1921:32;-1:-1:-1;;1982:43:67;;1972:54;;1962:82;;2040:1;2037;2030:12;1962:82;2063:5;-1:-1:-1;2115:2:67;2100:18;;2087:32;;-1:-1:-1;2170:3:67;2155:19;;2142:33;2194:18;2224:14;;;2221:34;;;2251:1;2248;2241:12;2221:34;2274:49;2315:7;2306:6;2295:9;2291:22;2274:49;:::i;:::-;2264:59;;2370:3;2359:9;2355:19;2342:33;2332:43;;2428:3;2417:9;2413:19;2400:33;2384:49;;2458:2;2448:8;2445:16;2442:36;;;2474:1;2471;2464:12;2442:36;;2497:51;2540:7;2529:8;2518:9;2514:24;2497:51;:::i;:::-;2487:61;;;1553:1001;;;;;;;;;;:::o;2741:222::-;2781:4;2809:1;2806;2803:8;2800:131;;;2853:10;2848:3;2844:20;2841:1;2834:31;2888:4;2885:1;2878:15;2916:4;2913:1;2906:15;2800:131;-1:-1:-1;2948:9:67;;2741:222::o;2968:127::-;3029:10;3024:3;3020:20;3017:1;3010:31;3060:4;3057:1;3050:15;3084:4;3081:1;3074:15;3462:1171;3768:4;3797:3;3827:6;3816:9;3809:25;3853:2;3891:6;3886:2;3875:9;3871:18;3864:34;3934:6;3929:2;3918:9;3914:18;3907:34;3993:26;3989:31;3981:6;3977:44;3972:2;3961:9;3957:18;3950:72;4059:6;4053:3;4042:9;4038:19;4031:35;4103:2;4097:3;4086:9;4082:19;4075:31;4135:6;4129:13;4178:6;4173:2;4162:9;4158:18;4151:34;4203:1;4194:10;;4213:141;4227:6;4224:1;4221:13;4213:141;;;4323:14;;;4319:23;;4313:30;4288:17;;;4307:3;4284:27;4277:67;4242:10;;;;4213:141;;;4372:6;4369:1;4366:13;4363:92;;;4443:1;4437:3;4428:6;4417:9;4413:22;4409:32;4402:43;4363:92;4558:3;4543:19;;4536:35;;;4516:2;4495:15;-1:-1:-1;;4491:29:67;4476:45;;4523:3;4472:55;;-1:-1:-1;4580:47:67;;-1:-1:-1;;4622:3:67;4607:19;;4599:6;-1:-1:-1;;;;;3419:31:67;3407:44;;3353:104;4580:47;3462:1171;;;;;;;;;;;:::o;4638:277::-;4705:6;4758:2;4746:9;4737:7;4733:23;4729:32;4726:52;;;4774:1;4771;4764:12;4726:52;4806:9;4800:16;4859:5;4852:13;4845:21;4838:5;4835:32;4825:60;;4881:1;4878;4871:12;4825:60;4904:5;4638:277;-1:-1:-1;;;4638:277:67:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x38da39b17be3ff80bdcd182f07365d6f6895b907d4a1cac5e9fa0541255fee67\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://422e0b0741b3599b9c0813886c166a1b909c583e4571b165f8329734ff26fee6\",\"dweb:/ipfs/QmezhvP6D1ifbBpVpLKQUiDv84naWbYUQEpFkDGdCbKwAG\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xb337a4c05daea96d77a83d15c585fc26e50069f2738fc126ce1a6d3a5e3be103\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://34f01073396bf26f5ab1101298988d2aaf9821ee24915ebec53d2df00ee17a14\",\"dweb:/ipfs/QmbS6UVTDV91UZierYjf1yWGca5tqwg1BbKmCj2zs6pS5u\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x38da39b17be3ff80bdcd182f07365d6f6895b907d4a1cac5e9fa0541255fee67","urls":["bzz-raw://422e0b0741b3599b9c0813886c166a1b909c583e4571b165f8329734ff26fee6","dweb:/ipfs/QmezhvP6D1ifbBpVpLKQUiDv84naWbYUQEpFkDGdCbKwAG"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0xb337a4c05daea96d77a83d15c585fc26e50069f2738fc126ce1a6d3a5e3be103","urls":["bzz-raw://34f01073396bf26f5ab1101298988d2aaf9821ee24915ebec53d2df00ee17a14","dweb:/ipfs/QmbS6UVTDV91UZierYjf1yWGca5tqwg1BbKmCj2zs6pS5u"],"license":"UNLICENSED"}},"version":1},"id":65} \ No newline at end of file diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index 7ff0a290..9c366161 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -18,7 +18,7 @@ use crate::proof::MinaProof; pub async fn submit( proof: MinaProof, chain: &Chain, - proof_generator_addr_str: &str, + proof_generator_addr: &str, batcher_addr: &str, batcher_eth_addr: &str, eth_rpc_url: &str, @@ -66,7 +66,7 @@ pub async fn submit( } let proof_generator_addr = - Address::from_str(proof_generator_addr_str).map_err(|err| err.to_string())?; + Address::from_str(proof_generator_addr).map_err(|err| err.to_string())?; let verification_data = VerificationData { proving_system, @@ -88,6 +88,7 @@ pub async fn submit( &verification_data, wallet, nonce, + batcher_eth_addr, ) .await .or_else(|err| { @@ -106,6 +107,7 @@ async fn submit_with_nonce( mina_proof: &VerificationData, wallet: Wallet, nonce: U256, + payment_service_addr: &str, ) -> Result { submit_and_wait_verification( batcher_addr, @@ -114,6 +116,7 @@ async fn submit_with_nonce( mina_proof, wallet, nonce, + payment_service_addr, ) .await .map_err(|err| format!("Verification data was not returned when submitting the proof: {err}")) From f6c43af1f3c50f896a7694f9931ec3031376258a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 17 Sep 2024 17:34:10 -0300 Subject: [PATCH 30/46] Fix Aligned SDK dependency (#339) Currently points to the `update_to_06` branch which no longer exists --- core/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/Cargo.toml b/core/Cargo.toml index 37bb5911..c10d7ec1 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -22,7 +22,7 @@ ark-poly = { version = "0.3.0", features = ["parallel"] } ark-serialize = "0.3.0" mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_6" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", From 473f0d04b82b0da76c9dd69f32986b3476083e2a Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 19 Sep 2024 11:10:26 -0300 Subject: [PATCH 31/46] Point Aligned SDK to mina branch (#340) * Point SDK to mina branch * Point Aligned submodule to mina branch --- contract/lib/aligned_layer | 2 +- contract_deployer/Cargo.lock | 128 ++++++++++++++-------------- contract_deployer/Cargo.toml | 2 +- core/Cargo.lock | 116 ++++++++++++------------- core/abi/MinaAccountValidation.json | 2 +- core/abi/MinaBridge.json | 2 +- 6 files changed, 126 insertions(+), 126 deletions(-) diff --git a/contract/lib/aligned_layer b/contract/lib/aligned_layer index 44c32f6a..7a2b5556 160000 --- a/contract/lib/aligned_layer +++ b/contract/lib/aligned_layer @@ -1 +1 @@ -Subproject commit 44c32f6a67dbd96b3997bc0dcf008f24d7994228 +Subproject commit 7a2b55567656308606fba20db3cef69dcd433926 diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index 05ef7456..ee453281 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_6#c43d80f3496c50ee49836999f642a6c96f5c26ba" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#7a2b55567656308606fba20db3cef69dcd433926" dependencies = [ "ciborium", "ethers", @@ -98,9 +98,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2683873c2744f6cd72d0db51bb74fee9ed310e0476a140bdc19e82b407d8a0a" +checksum = "8367891bf380210abb0d6aa30c5f85a9080cb4a066c4d5c5acadad630823751b" dependencies = [ "alloy-consensus", "alloy-contract", @@ -123,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b4f201b0ac8f81315fbdc55269965a8ddadbc04ab47fa65a1a468f9a40f7a5f" +checksum = "b68b94c159bcc2ca5f758b8663d7b00fc7c5e40569984595ddf2221b0f7f7f6e" dependencies = [ "num_enum", "strum 0.26.3", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28ddd17ffb7e4d66ef3a84e7b179072a9320cdc4b26c7f6f44cbf1081631b36" +checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ "alloy-eips", "alloy-primitives", @@ -147,9 +147,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69257e2ffe1a9f15f20a89cd54d1ca758468c5b3e87979191b8b5fc24d39b37" +checksum = "0eefe64fd344cffa9cf9e3435ec4e93e6e9c3481bc37269af988bf497faf4a6a" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -220,9 +220,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f6c5c0a383f14519531cf58d8440e74f10b938e289f803af870be6f79223110" +checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db0ddc76399bb1a4010f630767f027cafe65ab406cfee8e6040128cd65e8325" +checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" dependencies = [ "alloy-primitives", "alloy-serde", @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7111af869909275cffc5c84d16b6c892d6d512773e40cbe83187d0b9c5235e91" +checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -275,9 +275,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "342028392a2d5050b7b93dd32a0715d3b3b9ce30072ecb69a35dd4895c005495" +checksum = "fb3705ce7d8602132bcf5ac7a1dd293a42adc2f183abf5907c30ac535ceca049" dependencies = [ "alloy-consensus", "alloy-eips", @@ -296,9 +296,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e66d78c049dcadd065a926a9f2d9a9b2b10981a7889449e694fac7bccd2c6f" +checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ "alloy-eips", "alloy-primitives", @@ -330,9 +330,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79f14ccc2a3c575cb17b1b4af8c772cf9b5b93b7ce7047d6640e53954abb558d" +checksum = "927f708dd457ed63420400ee5f06945df9632d5d101851952056840426a10dc5" dependencies = [ "alloy-chains", "alloy-consensus", @@ -367,9 +367,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b9f5e85120aab30b8da23354592f7bd2b208d33d3204ffa1d44ac2e3dd5691" +checksum = "2d05f63677e210d758cd5d6d1ce10f20c980c3560ccfbe79ba1997791862a04f" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc79aeca84abb122a2fffbc1c91fdf958dca5c95be3875977bc99672bde0027" +checksum = "7d82952dca71173813d4e5733e2c986d8b04aea9e0f3b0a576664c232ad050a5" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -433,9 +433,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22045187a5ebf5b2af3f8b6831b66735b6556c5750ec5790aeeb45935260c1c2" +checksum = "64333d639f2a0cf73491813c629a405744e16343a4bc5640931be707c345ecc5" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -445,9 +445,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c031a91e94a39f928244bc837c953817be5b8cc61759e1a9123b3abd17560dd" +checksum = "1464c4dd646e1bdfde86ae65ce5ba168dbb29180b478011fe87117ae46b1629b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -458,9 +458,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238f494727ff861a803bd73b1274ef788a615bf8f8c4bfada4e6df42afa275d2" +checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" dependencies = [ "alloy-consensus", "alloy-eips", @@ -479,9 +479,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b95b6f024a558593dd3b8628af03f7df2ca50e4c56839293ad0a7546e471db0" +checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" dependencies = [ "alloy-primitives", "serde", @@ -490,9 +490,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da64740ff0518606c514eb0e03dd0a1daa8ff94d6d491a626fd8e50efd6c4f18" +checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" dependencies = [ "alloy-primitives", "async-trait", @@ -504,9 +504,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e250010dce0e3caf6a6033e809718e5921391d937d1cbbcffe52653b37cc63" +checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" dependencies = [ "alloy-consensus", "alloy-network", @@ -595,9 +595,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c7a669caa427abe8802184c8776f5103302f9337bb30a5b36bdebc332946c14" +checksum = "33616b2edf7454302a1d48084db185e52c309f73f6c10be99b0fe39354b3f1e9" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -614,9 +614,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4433ffa97aab6ae643de81c7bde9a2f043496f27368a607405a5c78a610caf74" +checksum = "a944f5310c690b62bbb3e7e5ce34527cbd36b2d18532a797af123271ce595a49" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -629,9 +629,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa02db8751f9c0c37caf8c38ad3eb7aa1cfb09cfea3451a13aacaf06846c7a5" +checksum = "09fd8491249f74d16ec979b1f5672377b12ebb818e6056478ffa386954dbd350" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -648,9 +648,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a5c4a0929479bcb85a2df628c01173618a71c807b2f499939a236dbde5d008" +checksum = "a9704761f6297fe482276bee7f77a93cb42bd541c2bd6c1c560b6f3a9ece672e" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -730,9 +730,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "ark-ec" @@ -896,9 +896,9 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -1249,9 +1249,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" dependencies = [ "serde", ] @@ -1326,9 +1326,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.18" +version = "1.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" +checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" dependencies = [ "jobserver", "libc", @@ -3064,9 +3064,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4147,9 +4147,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.12" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c73c26c01b8c87956cea613c907c9d6ecffd8d18a2a5908e5de0adfaa185cea" +checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" dependencies = [ "memchr", "thiserror", @@ -5822,7 +5822,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls 0.26.0", "tungstenite 0.23.0", - "webpki-roots 0.26.5", + "webpki-roots 0.26.6", ] [[package]] @@ -5870,9 +5870,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.22.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" dependencies = [ "indexmap 2.5.0", "serde", @@ -6070,9 +6070,9 @@ checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] @@ -6322,9 +6322,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.5" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index 86dcb956..c3936919 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -16,7 +16,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_6" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } serde = { version = "1.0", features = ["derive"] } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } bincode = "1.3.3" diff --git a/core/Cargo.lock b/core/Cargo.lock index ed53eb8d..2809311a 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_6#f815d62b48f9679f61fad20f1d63425865674b93" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#7a2b55567656308606fba20db3cef69dcd433926" dependencies = [ "ciborium", "ethers", @@ -98,9 +98,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2683873c2744f6cd72d0db51bb74fee9ed310e0476a140bdc19e82b407d8a0a" +checksum = "8367891bf380210abb0d6aa30c5f85a9080cb4a066c4d5c5acadad630823751b" dependencies = [ "alloy-consensus", "alloy-contract", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28ddd17ffb7e4d66ef3a84e7b179072a9320cdc4b26c7f6f44cbf1081631b36" +checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ "alloy-eips", "alloy-primitives", @@ -147,9 +147,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69257e2ffe1a9f15f20a89cd54d1ca758468c5b3e87979191b8b5fc24d39b37" +checksum = "0eefe64fd344cffa9cf9e3435ec4e93e6e9c3481bc37269af988bf497faf4a6a" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -220,9 +220,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f6c5c0a383f14519531cf58d8440e74f10b938e289f803af870be6f79223110" +checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db0ddc76399bb1a4010f630767f027cafe65ab406cfee8e6040128cd65e8325" +checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" dependencies = [ "alloy-primitives", "alloy-serde", @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7111af869909275cffc5c84d16b6c892d6d512773e40cbe83187d0b9c5235e91" +checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -275,9 +275,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "342028392a2d5050b7b93dd32a0715d3b3b9ce30072ecb69a35dd4895c005495" +checksum = "fb3705ce7d8602132bcf5ac7a1dd293a42adc2f183abf5907c30ac535ceca049" dependencies = [ "alloy-consensus", "alloy-eips", @@ -296,9 +296,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e66d78c049dcadd065a926a9f2d9a9b2b10981a7889449e694fac7bccd2c6f" +checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ "alloy-eips", "alloy-primitives", @@ -330,9 +330,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79f14ccc2a3c575cb17b1b4af8c772cf9b5b93b7ce7047d6640e53954abb558d" +checksum = "927f708dd457ed63420400ee5f06945df9632d5d101851952056840426a10dc5" dependencies = [ "alloy-chains", "alloy-consensus", @@ -367,9 +367,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b9f5e85120aab30b8da23354592f7bd2b208d33d3204ffa1d44ac2e3dd5691" +checksum = "2d05f63677e210d758cd5d6d1ce10f20c980c3560ccfbe79ba1997791862a04f" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc79aeca84abb122a2fffbc1c91fdf958dca5c95be3875977bc99672bde0027" +checksum = "7d82952dca71173813d4e5733e2c986d8b04aea9e0f3b0a576664c232ad050a5" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -433,9 +433,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22045187a5ebf5b2af3f8b6831b66735b6556c5750ec5790aeeb45935260c1c2" +checksum = "64333d639f2a0cf73491813c629a405744e16343a4bc5640931be707c345ecc5" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -445,9 +445,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c031a91e94a39f928244bc837c953817be5b8cc61759e1a9123b3abd17560dd" +checksum = "1464c4dd646e1bdfde86ae65ce5ba168dbb29180b478011fe87117ae46b1629b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -458,9 +458,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238f494727ff861a803bd73b1274ef788a615bf8f8c4bfada4e6df42afa275d2" +checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" dependencies = [ "alloy-consensus", "alloy-eips", @@ -479,9 +479,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b95b6f024a558593dd3b8628af03f7df2ca50e4c56839293ad0a7546e471db0" +checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" dependencies = [ "alloy-primitives", "serde", @@ -490,9 +490,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da64740ff0518606c514eb0e03dd0a1daa8ff94d6d491a626fd8e50efd6c4f18" +checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" dependencies = [ "alloy-primitives", "async-trait", @@ -504,9 +504,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e250010dce0e3caf6a6033e809718e5921391d937d1cbbcffe52653b37cc63" +checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" dependencies = [ "alloy-consensus", "alloy-network", @@ -595,9 +595,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c7a669caa427abe8802184c8776f5103302f9337bb30a5b36bdebc332946c14" +checksum = "33616b2edf7454302a1d48084db185e52c309f73f6c10be99b0fe39354b3f1e9" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -614,9 +614,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4433ffa97aab6ae643de81c7bde9a2f043496f27368a607405a5c78a610caf74" +checksum = "a944f5310c690b62bbb3e7e5ce34527cbd36b2d18532a797af123271ce595a49" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -629,9 +629,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa02db8751f9c0c37caf8c38ad3eb7aa1cfb09cfea3451a13aacaf06846c7a5" +checksum = "09fd8491249f74d16ec979b1f5672377b12ebb818e6056478ffa386954dbd350" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -648,9 +648,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a5c4a0929479bcb85a2df628c01173618a71c807b2f499939a236dbde5d008" +checksum = "a9704761f6297fe482276bee7f77a93cb42bd541c2bd6c1c560b6f3a9ece672e" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1249,9 +1249,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" dependencies = [ "serde", ] @@ -1326,9 +1326,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.19" +version = "1.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d74707dde2ba56f86ae90effb3b43ddd369504387e718014de010cec7959800" +checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" dependencies = [ "jobserver", "libc", @@ -3873,9 +3873,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -4128,9 +4128,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.12" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c73c26c01b8c87956cea613c907c9d6ecffd8d18a2a5908e5de0adfaa185cea" +checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" dependencies = [ "memchr", "thiserror", @@ -5803,7 +5803,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls 0.26.0", "tungstenite 0.23.0", - "webpki-roots 0.26.5", + "webpki-roots 0.26.6", ] [[package]] @@ -5851,9 +5851,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.22.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" dependencies = [ "indexmap 2.5.0", "serde", @@ -6051,9 +6051,9 @@ checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] @@ -6303,9 +6303,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.5" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json index e4bd6b24..08c45984 100644 --- a/core/abi/MinaAccountValidation.json +++ b/core/abi/MinaAccountValidation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"AccountIsNotVerified","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61134f806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105ac565b610059565b6040516100509190610a2d565b60405180910390f35b610061610167565b3660006100718460288188610b5f565b9150915060008585604051610087929190610b89565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b03166306045a918e848f8f8f8f8f60006040518963ffffffff1660e01b81526004016100e2989796959493929190610b99565b602060405180830381865afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610c11565b9050801561014257610137838501856111f9565b94505050505061015b565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e0860185905286519081018752848152928301849052948201839052810182905292830152610100810191909152610120810161026a604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161027761027c565b905290565b6040518060e0016040528061028f6102c9565b815260200161029c6102e8565b8152600060208201526040016102b0610307565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610277610325565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103396103d0565b8152602001610346610409565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103df5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103df565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046d5761046d610435565b60405290565b6040516101c081016001600160401b038111828210171561046d5761046d610435565b604051606081016001600160401b038111828210171561046d5761046d610435565b60405161010081016001600160401b038111828210171561046d5761046d610435565b60405160e081016001600160401b038111828210171561046d5761046d610435565b60405161016081016001600160401b038111828210171561046d5761046d610435565b600082601f83011261053157600080fd5b81356001600160401b038082111561054b5761054b610435565b604051601f8301601f19908116603f0116810190828211818310171561057357610573610435565b8160405283815286602085880101111561058c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c857600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f357600080fd5b95506060890135945060808901356001600160401b038082111561061657600080fd5b6106228c838d01610520565b955060a08b0135945060c08b013591508082111561063f57600080fd5b818b0191508b601f83011261065357600080fd5b81358181111561066257600080fd5b8c602082850101111561067457600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b357602081850181015186830182015201610697565b818111156106c5576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60058110610700576107006106da565b9052565b61070f8282516106f0565b602081015161072160208401826106f0565b50604081015161073460408401826106f0565b50606081015161074760608401826106f0565b50608081015161075a60808401826106f0565b5060a081015161076d60a08401826106f0565b5060c081015161078060c08401826106f0565b5060e081015161079860e084018263ffffffff169052565b50610100808201516107ac828501826106f0565b5050610120808201516107c1828501826106f0565b5050610140808201516107d6828501826106f0565b5050610160808201516107eb828501826106f0565b505061018080820151610800828501826106f0565b50506101a080820151610815828501826106f0565b50505050565b60038110610700576107006106da565b8060005b600f8110156108155761084d84835180518252602090810151910152565b604093909301926020919091019060010161082f565b61086e82825161081b565b6020808201516108808285018261081b565b50604082810151805160008684015b60078210156108bf576108ad81845180518252602090810151910152565b9185019160019190910190840161088f565b50505091820151916108d561020086018461082b565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610815578151845260209384019390910190600101610967565b80516000906109609084835b60088110156109b1578251825260209283019290910190600101610992565b50505060208301516109c7610100860182610863565b50604083015163ffffffff1661084085015260608301516109ec610860860182610963565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a248286018261068d565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a6b6103e085018361068d565b91506060850151610a8760a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac481870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b39610200880184610704565b870151868503601f1901848801529150610b5590508382610986565b9695505050505050565b60008085851115610b6f57600080fd5b83861115610b7c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a0840152610bda8184018761068d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b8015158114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8151610c2e81610c00565b9392505050565b8035610c4081610c00565b919050565b600060408284031215610c5757600080fd5b610c5f61044b565b9050813581526020820135610c7381610c00565b602082015292915050565b80356001600160401b0381168114610c4057600080fd5b803563ffffffff81168114610c4057600080fd5b600060a08284031215610cbb57600080fd5b60405160a081018181106001600160401b0382111715610cdd57610cdd610435565b604052905080610cec83610c7e565b8152610cfa60208401610c95565b6020820152610d0b60408401610c7e565b6040820152610d1c60608401610c95565b6060820152610d2d60808401610c7e565b60808201525092915050565b803560058110610c4057600080fd5b60006101c08284031215610d5b57600080fd5b610d63610473565b9050610d6e82610d39565b8152610d7c60208301610d39565b6020820152610d8d60408301610d39565b6040820152610d9e60608301610d39565b6060820152610daf60808301610d39565b6080820152610dc060a08301610d39565b60a0820152610dd160c08301610d39565b60c0820152610de260e08301610c95565b60e0820152610100610df5818401610d39565b90820152610120610e07838201610d39565b90820152610140610e19838201610d39565b90820152610160610e2b838201610d39565b90820152610180610e3d838201610d39565b908201526101a0610e4f838201610d39565b9082015292915050565b600082601f830112610e6a57600080fd5b6040516101008082018281106001600160401b0382111715610e8e57610e8e610435565b60405283018185821115610ea157600080fd5b845b82811015610ebb578035825260209182019101610ea3565b509195945050505050565b803560038110610c4057600080fd5b600060408284031215610ee757600080fd5b610eef61044b565b9050813581526020820135602082015292915050565b600082601f830112610f1657600080fd5b6040805160e081018181106001600160401b0382111715610f3957610f39610435565b8252806101c0850186811115610f4e57600080fd5b855b81811015610f7157610f628882610ed5565b83526020909201918401610f50565b50919695505050505050565b600082601f830112610f8e57600080fd5b604080516101e081018181106001600160401b0382111715610fb257610fb2610435565b8252806103c0850186811115610fc757600080fd5b855b81811015610f7157610fdb8882610ed5565b83526020909201918401610fc9565b6000818303610740811215610ffe57600080fd5b611006610496565b915061101183610ec6565b825261101f60208401610ec6565b602083015261070080603f198301121561103857600080fd5b6110406104b8565b915061104f8560408601610f05565b825261105f856102008601610f7d565b6020830152611072856105c08601610ed5565b6040830152611085856106008601610ed5565b6060830152611098856106408601610ed5565b60808301526110ab856106808601610ed5565b60a08301526110be856106c08601610ed5565b60c08301526110cf85828601610ed5565b60e083015250604082015292915050565b600082601f8301126110f157600080fd5b60405160a081018181106001600160401b038211171561111357611113610435565b6040528060a084018581111561112857600080fd5b845b81811015610ebb57803583526020928301920161112a565b6000610960828403121561115557600080fd5b61115d6104db565b90506111698383610e59565b8152611179836101008401610fea565b602082015261118b6108408301610c95565b604082015261119e8361086084016110e0565b60608201526111b06109008301610c95565b60808201526111c26109208301610c35565b60a08201526109408201356001600160401b038111156111e157600080fd5b6111ed84828501610520565b60c08301525092915050565b60006020828403121561120b57600080fd5b81356001600160401b038082111561122257600080fd5b908301906103c0828603121561123757600080fd5b61123f6104fd565b6112498684610c45565b81526040830135602082015260608301358281111561126757600080fd5b61127387828601610520565b60408301525061128560808401610c7e565b606082015261129660a08401610c95565b608082015260c083013560a08201526112b28660e08501610c45565b60c08201526101208084013560e08301526101406112d288828701610ca9565b6101008401526112e6886101e08701610d48565b828401526103a08501359150838211156112ff57600080fd5b61130b88838701611142565b90830152509594505050505056fea2646970667358221220b3c08ebe77de8b53f44e760ec486d921d1da412cda363f73467d6560c31b584f64736f6c634300080c0033","sourceMap":"171:3299:64:-:0;;;319:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:7;:57;;-1:-1:-1;;;;;;378:57:64;-1:-1:-1;;;;;378:57:64;;;;;;;;;;171:3299;;14:298:67;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:67;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:67:o;:::-;171:3299:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105ac565b610059565b6040516100509190610a2d565b60405180910390f35b610061610167565b3660006100718460288188610b5f565b9150915060008585604051610087929190610b89565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b03166306045a918e848f8f8f8f8f60006040518963ffffffff1660e01b81526004016100e2989796959493929190610b99565b602060405180830381865afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610c11565b9050801561014257610137838501856111f9565b94505050505061015b565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e0860185905286519081018752848152928301849052948201839052810182905292830152610100810191909152610120810161026a604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161027761027c565b905290565b6040518060e0016040528061028f6102c9565b815260200161029c6102e8565b8152600060208201526040016102b0610307565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610277610325565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103396103d0565b8152602001610346610409565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103df5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103df565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046d5761046d610435565b60405290565b6040516101c081016001600160401b038111828210171561046d5761046d610435565b604051606081016001600160401b038111828210171561046d5761046d610435565b60405161010081016001600160401b038111828210171561046d5761046d610435565b60405160e081016001600160401b038111828210171561046d5761046d610435565b60405161016081016001600160401b038111828210171561046d5761046d610435565b600082601f83011261053157600080fd5b81356001600160401b038082111561054b5761054b610435565b604051601f8301601f19908116603f0116810190828211818310171561057357610573610435565b8160405283815286602085880101111561058c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c857600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f357600080fd5b95506060890135945060808901356001600160401b038082111561061657600080fd5b6106228c838d01610520565b955060a08b0135945060c08b013591508082111561063f57600080fd5b818b0191508b601f83011261065357600080fd5b81358181111561066257600080fd5b8c602082850101111561067457600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b357602081850181015186830182015201610697565b818111156106c5576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60058110610700576107006106da565b9052565b61070f8282516106f0565b602081015161072160208401826106f0565b50604081015161073460408401826106f0565b50606081015161074760608401826106f0565b50608081015161075a60808401826106f0565b5060a081015161076d60a08401826106f0565b5060c081015161078060c08401826106f0565b5060e081015161079860e084018263ffffffff169052565b50610100808201516107ac828501826106f0565b5050610120808201516107c1828501826106f0565b5050610140808201516107d6828501826106f0565b5050610160808201516107eb828501826106f0565b505061018080820151610800828501826106f0565b50506101a080820151610815828501826106f0565b50505050565b60038110610700576107006106da565b8060005b600f8110156108155761084d84835180518252602090810151910152565b604093909301926020919091019060010161082f565b61086e82825161081b565b6020808201516108808285018261081b565b50604082810151805160008684015b60078210156108bf576108ad81845180518252602090810151910152565b9185019160019190910190840161088f565b50505091820151916108d561020086018461082b565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610815578151845260209384019390910190600101610967565b80516000906109609084835b60088110156109b1578251825260209283019290910190600101610992565b50505060208301516109c7610100860182610863565b50604083015163ffffffff1661084085015260608301516109ec610860860182610963565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a248286018261068d565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a6b6103e085018361068d565b91506060850151610a8760a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac481870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b39610200880184610704565b870151868503601f1901848801529150610b5590508382610986565b9695505050505050565b60008085851115610b6f57600080fd5b83861115610b7c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a0840152610bda8184018761068d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b8015158114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8151610c2e81610c00565b9392505050565b8035610c4081610c00565b919050565b600060408284031215610c5757600080fd5b610c5f61044b565b9050813581526020820135610c7381610c00565b602082015292915050565b80356001600160401b0381168114610c4057600080fd5b803563ffffffff81168114610c4057600080fd5b600060a08284031215610cbb57600080fd5b60405160a081018181106001600160401b0382111715610cdd57610cdd610435565b604052905080610cec83610c7e565b8152610cfa60208401610c95565b6020820152610d0b60408401610c7e565b6040820152610d1c60608401610c95565b6060820152610d2d60808401610c7e565b60808201525092915050565b803560058110610c4057600080fd5b60006101c08284031215610d5b57600080fd5b610d63610473565b9050610d6e82610d39565b8152610d7c60208301610d39565b6020820152610d8d60408301610d39565b6040820152610d9e60608301610d39565b6060820152610daf60808301610d39565b6080820152610dc060a08301610d39565b60a0820152610dd160c08301610d39565b60c0820152610de260e08301610c95565b60e0820152610100610df5818401610d39565b90820152610120610e07838201610d39565b90820152610140610e19838201610d39565b90820152610160610e2b838201610d39565b90820152610180610e3d838201610d39565b908201526101a0610e4f838201610d39565b9082015292915050565b600082601f830112610e6a57600080fd5b6040516101008082018281106001600160401b0382111715610e8e57610e8e610435565b60405283018185821115610ea157600080fd5b845b82811015610ebb578035825260209182019101610ea3565b509195945050505050565b803560038110610c4057600080fd5b600060408284031215610ee757600080fd5b610eef61044b565b9050813581526020820135602082015292915050565b600082601f830112610f1657600080fd5b6040805160e081018181106001600160401b0382111715610f3957610f39610435565b8252806101c0850186811115610f4e57600080fd5b855b81811015610f7157610f628882610ed5565b83526020909201918401610f50565b50919695505050505050565b600082601f830112610f8e57600080fd5b604080516101e081018181106001600160401b0382111715610fb257610fb2610435565b8252806103c0850186811115610fc757600080fd5b855b81811015610f7157610fdb8882610ed5565b83526020909201918401610fc9565b6000818303610740811215610ffe57600080fd5b611006610496565b915061101183610ec6565b825261101f60208401610ec6565b602083015261070080603f198301121561103857600080fd5b6110406104b8565b915061104f8560408601610f05565b825261105f856102008601610f7d565b6020830152611072856105c08601610ed5565b6040830152611085856106008601610ed5565b6060830152611098856106408601610ed5565b60808301526110ab856106808601610ed5565b60a08301526110be856106c08601610ed5565b60c08301526110cf85828601610ed5565b60e083015250604082015292915050565b600082601f8301126110f157600080fd5b60405160a081018181106001600160401b038211171561111357611113610435565b6040528060a084018581111561112857600080fd5b845b81811015610ebb57803583526020928301920161112a565b6000610960828403121561115557600080fd5b61115d6104db565b90506111698383610e59565b8152611179836101008401610fea565b602082015261118b6108408301610c95565b604082015261119e8361086084016110e0565b60608201526111b06109008301610c95565b60808201526111c26109208301610c35565b60a08201526109408201356001600160401b038111156111e157600080fd5b6111ed84828501610520565b60c08301525092915050565b60006020828403121561120b57600080fd5b81356001600160401b038082111561122257600080fd5b908301906103c0828603121561123757600080fd5b61123f6104fd565b6112498684610c45565b81526040830135602082015260608301358281111561126757600080fd5b61127387828601610520565b60408301525061128560808401610c7e565b606082015261129660a08401610c95565b608082015260c083013560a08201526112b28660e08501610c45565b60c08201526101208084013560e08301526101406112d288828701610ca9565b6101008401526112e6886101e08701610d48565b828401526103a08501359150838211156112ff57600080fd5b61130b88838701611142565b90830152509594505050505056fea2646970667358221220b3c08ebe77de8b53f44e760ec486d921d1da412cda363f73467d6560c31b584f64736f6c634300080c0033","sourceMap":"171:3299:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:947;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;763:14;;:::i;:::-;789:29;;821:17;:8;830:6;821:8;;:17;:::i;:::-;789:49;;;;849:26;888:8;;878:19;;;;;;;:::i;:::-;;;;;;;;849:48;;908:22;933:7;;;;;;;;;-1:-1:-1;;;;;933:7:64;-1:-1:-1;;;;;933:28:64;;975:15;1004:18;1036:30;1080:18;1112:15;1141:11;1166:26;1214:1;933:293;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;908:318;;1241:17;1237:152;;;1281:37;;;;1292:14;1281:37;:::i;:::-;1274:44;;;;;;;;1237:152;1356:22;;-1:-1:-1;;;1356:22:64;;;;;;;;;;;448:947;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:127:67;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:67;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:250::-;475:2;469:9;517:6;505:19;;-1:-1:-1;;;;;539:34:67;;575:22;;;536:62;533:88;;;601:18;;:::i;663:253::-;735:2;729:9;777:4;765:17;;-1:-1:-1;;;;;797:34:67;;833:22;;;794:62;791:88;;;859:18;;:::i;921:255::-;993:2;987:9;1035:6;1023:19;;-1:-1:-1;;;;;1057:34:67;;1093:22;;;1054:62;1051:88;;;1119:18;;:::i;1181:253::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:67;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:67;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:67;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:67;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:1251::-;2555:6;2563;2571;2579;2587;2595;2603;2611;2664:3;2652:9;2643:7;2639:23;2635:33;2632:53;;;2681:1;2678;2671:12;2632:53;2704:23;;;-1:-1:-1;2774:2:67;2759:18;;2746:32;;-1:-1:-1;2828:2:67;2813:18;;2800:32;-1:-1:-1;;2861:43:67;;2851:54;;2841:82;;2919:1;2916;2909:12;2841:82;2942:5;-1:-1:-1;2994:2:67;2979:18;;2966:32;;-1:-1:-1;3049:3:67;3034:19;;3021:33;-1:-1:-1;;;;;3103:14:67;;;3100:34;;;3130:1;3127;3120:12;3100:34;3153:49;3194:7;3185:6;3174:9;3170:22;3153:49;:::i;:::-;3143:59;;3249:3;3238:9;3234:19;3221:33;3211:43;;3307:3;3296:9;3292:19;3279:33;3263:49;;3337:2;3327:8;3324:16;3321:36;;;3353:1;3350;3343:12;3321:36;3391:8;3380:9;3376:24;3366:34;;3438:7;3431:4;3427:2;3423:13;3419:27;3409:55;;3460:1;3457;3450:12;3409:55;3500:2;3487:16;3526:2;3518:6;3515:14;3512:34;;;3542:1;3539;3532:12;3512:34;3587:7;3582:2;3573:6;3569:2;3565:15;3561:24;3558:37;3555:57;;;3608:1;3605;3598:12;3555:57;3639:2;3635;3631:11;3621:21;;3661:6;3651:16;;;;;2422:1251;;;;;;;;;;;:::o;3953:472::-;3995:3;4033:5;4027:12;4060:6;4055:3;4048:19;4085:1;4095:162;4109:6;4106:1;4103:13;4095:162;;;4171:4;4227:13;;;4223:22;;4217:29;4199:11;;;4195:20;;4188:59;4124:12;4095:162;;;4275:6;4272:1;4269:13;4266:87;;;4341:1;4334:4;4325:6;4320:3;4316:16;4312:27;4305:38;4266:87;-1:-1:-1;4407:2:67;4386:15;-1:-1:-1;;4382:29:67;4373:39;;;;4414:4;4369:50;;3953:472;-1:-1:-1;;3953:472:67:o;5108:127::-;5169:10;5164:3;5160:20;5157:1;5150:31;5200:4;5197:1;5190:15;5224:4;5221:1;5214:15;5240:143;5324:1;5317:5;5314:12;5304:46;;5330:18;;:::i;:::-;5359;;5240:143::o;5388:1834::-;5453:47;5496:3;5488:5;5482:12;5453:47;:::i;:::-;5546:4;5539:5;5535:16;5529:23;5561:58;5613:4;5608:3;5604:14;5590:12;5561:58;:::i;:::-;;5667:4;5660:5;5656:16;5650:23;5682:60;5736:4;5731:3;5727:14;5711;5682:60;:::i;:::-;;5790:4;5783:5;5779:16;5773:23;5805:60;5859:4;5854:3;5850:14;5834;5805:60;:::i;:::-;;5913:4;5906:5;5902:16;5896:23;5928:60;5982:4;5977:3;5973:14;5957;5928:60;:::i;:::-;;6036:4;6029:5;6025:16;6019:23;6051:60;6105:4;6100:3;6096:14;6080;6051:60;:::i;:::-;;6159:4;6152:5;6148:16;6142:23;6174:60;6228:4;6223:3;6219:14;6203;6174:60;:::i;:::-;;6282:4;6275:5;6271:16;6265:23;6297:49;6340:4;6335:3;6331:14;6315;4613:10;4602:22;4590:35;;4537:94;6297:49;;6365:6;6419:2;6412:5;6408:14;6402:21;6432:58;6486:2;6481:3;6477:12;6461:14;6432:58;:::i;:::-;;;6509:6;6563:2;6556:5;6552:14;6546:21;6576:58;6630:2;6625:3;6621:12;6605:14;6576:58;:::i;:::-;;;6653:6;6707:2;6700:5;6696:14;6690:21;6720:58;6774:2;6769:3;6765:12;6749:14;6720:58;:::i;:::-;;;6797:6;6852:2;6845:5;6841:14;6835:21;6865:59;6920:2;6915:3;6911:12;6894:15;6865:59;:::i;:::-;;;6943:6;6998:2;6991:5;6987:14;6981:21;7011:59;7066:2;7061:3;7057:12;7040:15;7011:59;:::i;:::-;;;7089:6;7144:2;7137:5;7133:14;7127:21;7157:59;7212:2;7207:3;7203:12;7186:15;7157:59;:::i;:::-;;;5388:1834;;:::o;7227:145::-;7313:1;7306:5;7303:12;7293:46;;7319:18;;:::i;7533:335::-;7636:5;7659:1;7669:193;7683:4;7680:1;7677:11;7669:193;;;7730:48;7774:3;7765:6;7759:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;7730:48;7807:4;7798:14;;;;;7847:4;7835:17;;;;;7703:1;7696:9;7669:193;;7873:1627;7942:49;7987:3;7979:5;7973:12;7942:49;:::i;:::-;8010:4;8060:2;8053:5;8049:14;8043:21;8073:58;8127:2;8122:3;8118:12;8104;8073:58;:::i;:::-;-1:-1:-1;8150:4:67;8191:14;;;8185:21;8256;;8364:1;8225:12;;;8374:195;8388:4;8385:1;8382:11;8374:195;;;8435:50;8479:5;8470:6;8464:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;8435:50;8544:15;;;;8408:1;8401:9;;;;;8507:14;;8374:195;;;-1:-1:-1;;;8606:23:67;;;8600:30;;8639:65;8699:3;8690:13;;8600:30;8639:65;:::i;:::-;8741:23;;;8735:30;7453:12;;8828:4;8819:14;;7441:25;7515:4;7504:16;;;7498:23;7482:14;;;7475:47;8891:4;8871:25;;8865:32;7453:12;;8960:4;8951:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9023:4;9003:25;;8997:32;7453:12;;9092:4;9083:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9155:4;9135:25;;9129:32;7453:12;;9224:4;9215:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9287:4;9267:25;;9261:32;7453:12;;9356:4;9347:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9419:4;9399:25;;;9393:32;7453:12;;9488:4;9479:14;;7441:25;7504:16;7498:23;7482:14;;;;7475:47;;;;-1:-1:-1;;7873:1627:67:o;9505:326::-;9598:5;9621:1;9631:194;9645:4;9642:1;9639:11;9631:194;;;9704:13;;9692:26;;9741:4;9765:12;;;;9800:15;;;;9665:1;9658:9;9631:194;;9836:1166;9944:12;;9891:3;;9919:6;;9978:3;9891;10055:200;10069:4;10066:1;10063:11;10055:200;;;10130:13;;10116:28;;10167:4;10230:15;;;;10193:14;;;;10089:1;10082:9;10055:200;;;10059:3;;;10301:4;10294:5;10290:16;10284:23;10316:65;10373:6;10368:3;10364:16;10350:12;10316:65;:::i;:::-;-1:-1:-1;10429:4:67;10418:16;;10412:23;4613:10;4602:22;10487:6;10478:16;;4590:35;10543:4;10532:16;;10526:23;10558:58;10608:6;10599:16;;10526:23;10558:58;:::i;:::-;-1:-1:-1;10664:4:67;10653:16;;10647:23;4613:10;4602:22;10722:6;10713:16;;4590:35;10778:4;10767:16;;10761:23;3748:13;3741:21;10834:6;10825:16;;3729:34;10890:4;10879:16;;10873:23;10921:6;10912:16;;10905:28;;;10949:47;10983:12;;;10873:23;10949:47;:::i;:::-;10942:54;9836:1166;-1:-1:-1;;;;;9836:1166:67:o;11007:1526::-;11188:2;11170:21;;;11236:13;;3857:12;;11251:18;;;3845:25;3922:16;3916:23;3909:31;3902:39;3886:14;;;3879:63;11324:2;11316:6;11312:15;11306:22;11301:2;11290:9;11286:18;11279:50;11151:4;11376;11368:6;11364:17;11358:24;11401:6;11444:2;11438:3;11427:9;11423:19;11416:31;11470:52;11517:3;11506:9;11502:19;11488:12;11470:52;:::i;:::-;11456:66;;11571:2;11563:6;11559:15;11553:22;11584:54;11633:3;11622:9;11618:19;11602:14;-1:-1:-1;;;;;4495:30:67;4483:43;;4430:102;11584:54;-1:-1:-1;11687:3:67;11675:16;;11669:23;4613:10;4602:22;;11750:3;11735:19;;4590:35;11701:54;11810:3;11802:6;11798:16;11792:23;11786:3;11775:9;11771:19;11764:52;11865:3;11857:6;11853:16;11847:23;11889:3;11901:71;11968:2;11957:9;11953:18;11937:14;3857:12;;3845:25;;3933:4;3922:16;;;3916:23;3909:31;3902:39;3886:14;;3879:63;3774:174;11901:71;12009:3;11997:16;;11991:23;12033:3;12052:18;;;12045:30;;;;12112:15;;;12106:22;4749:12;;-1:-1:-1;;;;;4745:21:67;;;12193:3;12178:19;;4733:34;4813:4;4802:16;;4796:23;4838:10;4880:21;;;4864:14;;;4857:45;4955:4;4944:16;;4938:23;4934:32;;4918:14;;;4911:56;5020:4;5009:16;;5003:23;4999:32;4983:14;;;4976:56;5085:4;5074:16;;;5068:23;5064:32;5048:14;;;5041:56;12247:6;12235:19;;12229:26;;-1:-1:-1;12264:66:67;12325:3;12310:19;;12229:26;12264:66;:::i;:::-;12367:15;;12361:22;12423;;;-1:-1:-1;;12419:36:67;12399:18;;;12392:64;12361:22;-1:-1:-1;12473:54:67;;-1:-1:-1;12427:6:67;12361:22;12473:54;:::i;:::-;12465:62;11007:1526;-1:-1:-1;;;;;;11007:1526:67:o;12538:331::-;12643:9;12654;12696:8;12684:10;12681:24;12678:44;;;12718:1;12715;12708:12;12678:44;12747:6;12737:8;12734:20;12731:40;;;12767:1;12764;12757:12;12731:40;-1:-1:-1;;12793:23:67;;;12838:25;;;;;-1:-1:-1;12538:331:67:o;12874:271::-;13057:6;13049;13044:3;13031:33;13013:3;13083:16;;13108:13;;;13083:16;12874:271;-1:-1:-1;12874:271:67:o;13150:805::-;13456:4;13485:3;13515:6;13504:9;13497:25;13558:6;13553:2;13542:9;13538:18;13531:34;13601:6;13596:2;13585:9;13581:18;13574:34;13660:26;13656:31;13648:6;13644:44;13639:2;13628:9;13624:18;13617:72;13726:6;13720:3;13709:9;13705:19;13698:35;13770:2;13764:3;13753:9;13749:19;13742:31;13790:45;13831:2;13820:9;13816:18;13808:6;13790:45;:::i;:::-;13866:3;13851:19;;13844:35;;;;-1:-1:-1;;;;;;;13916:32:67;;;;13910:3;13895:19;;;13888:61;13782:53;13150:805;-1:-1:-1;;;;;;13150:805:67:o;13960:118::-;14046:5;14039:13;14032:21;14025:5;14022:32;14012:60;;14068:1;14065;14058:12;14012:60;13960:118;:::o;14083:245::-;14150:6;14203:2;14191:9;14182:7;14178:23;14174:32;14171:52;;;14219:1;14216;14209:12;14171:52;14251:9;14245:16;14270:28;14292:5;14270:28;:::i;:::-;14317:5;14083:245;-1:-1:-1;;;14083:245:67:o;14333:128::-;14398:20;;14427:28;14398:20;14427:28;:::i;:::-;14333:128;;;:::o;14466:362::-;14530:5;14578:4;14566:9;14561:3;14557:19;14553:30;14550:50;;;14596:1;14593;14586:12;14550:50;14618:22;;:::i;:::-;14609:31;;14676:9;14663:23;14656:5;14649:38;14739:2;14728:9;14724:18;14711:32;14752:30;14774:7;14752:30;:::i;:::-;14809:2;14798:14;;14791:31;14802:5;14466:362;-1:-1:-1;;14466:362:67:o;14833:171::-;14900:20;;-1:-1:-1;;;;;14949:30:67;;14939:41;;14929:69;;14994:1;14991;14984:12;15009:163;15076:20;;15136:10;15125:22;;15115:33;;15105:61;;15162:1;15159;15152:12;15177:696;15230:5;15278:4;15266:9;15261:3;15257:19;15253:30;15250:50;;;15296:1;15293;15286:12;15250:50;15329:2;15323:9;15371:4;15363:6;15359:17;15442:6;15430:10;15427:22;-1:-1:-1;;;;;15394:10:67;15391:34;15388:62;15385:88;;;15453:18;;:::i;:::-;15489:2;15482:22;15522:6;-1:-1:-1;15522:6:67;15552:28;15570:9;15552:28;:::i;:::-;15544:6;15537:44;15614:37;15647:2;15636:9;15632:18;15614:37;:::i;:::-;15609:2;15601:6;15597:15;15590:62;15685:37;15718:2;15707:9;15703:18;15685:37;:::i;:::-;15680:2;15672:6;15668:15;15661:62;15756:37;15789:2;15778:9;15774:18;15756:37;:::i;:::-;15751:2;15743:6;15739:15;15732:62;15828:38;15861:3;15850:9;15846:19;15828:38;:::i;:::-;15822:3;15814:6;15810:16;15803:64;;15177:696;;;;:::o;15878:153::-;15956:20;;16005:1;15995:12;;15985:40;;16021:1;16018;16011:12;16036:1416;16094:5;16142:6;16130:9;16125:3;16121:19;16117:32;16114:52;;;16162:1;16159;16152:12;16114:52;16184:17;;:::i;:::-;16175:26;;16224:39;16253:9;16224:39;:::i;:::-;16217:5;16210:54;16296:48;16340:2;16329:9;16325:18;16296:48;:::i;:::-;16291:2;16284:5;16280:14;16273:72;16377:48;16421:2;16410:9;16406:18;16377:48;:::i;:::-;16372:2;16365:5;16361:14;16354:72;16458:48;16502:2;16491:9;16487:18;16458:48;:::i;:::-;16453:2;16446:5;16442:14;16435:72;16540:49;16584:3;16573:9;16569:19;16540:49;:::i;:::-;16534:3;16527:5;16523:15;16516:74;16623:49;16667:3;16656:9;16652:19;16623:49;:::i;:::-;16617:3;16610:5;16606:15;16599:74;16706:49;16750:3;16739:9;16735:19;16706:49;:::i;:::-;16700:3;16693:5;16689:15;16682:74;16789:38;16822:3;16811:9;16807:19;16789:38;:::i;:::-;16783:3;16776:5;16772:15;16765:63;16847:3;16882:48;16926:2;16915:9;16911:18;16882:48;:::i;:::-;16866:14;;;16859:72;16950:3;16985:48;17014:18;;;16985:48;:::i;:::-;16969:14;;;16962:72;17053:3;17088:48;17117:18;;;17088:48;:::i;:::-;17072:14;;;17065:72;17156:3;17191:48;17220:18;;;17191:48;:::i;:::-;17175:14;;;17168:72;17259:3;17294:48;17323:18;;;17294:48;:::i;:::-;17278:14;;;17271:72;17362:3;17397:48;17426:18;;;17397:48;:::i;:::-;17381:14;;;17374:72;17385:5;16036:1416;-1:-1:-1;;16036:1416:67:o;17457:668::-;17507:5;17560:3;17553:4;17545:6;17541:17;17537:27;17527:55;;17578:1;17575;17568:12;17527:55;17611:2;17605:9;17633:3;17675:2;17667:6;17663:15;17744:6;17732:10;17729:22;-1:-1:-1;;;;;17696:10:67;17693:34;17690:62;17687:88;;;17755:18;;:::i;:::-;17791:2;17784:22;17855:15;;17826:6;17882:15;;;17879:35;;;17910:1;17907;17900:12;17879:35;17934:6;17949:146;17965:6;17960:3;17957:15;17949:146;;;18033:17;;18021:30;;18080:4;18071:14;;;;17982;17949:146;;;-1:-1:-1;18113:6:67;;17457:668;-1:-1:-1;;;;;17457:668:67:o;18130:155::-;18210:20;;18259:1;18249:12;;18239:40;;18275:1;18272;18265:12;18290:285;18347:5;18395:4;18383:9;18378:3;18374:19;18370:30;18367:50;;;18413:1;18410;18403:12;18367:50;18435:22;;:::i;:::-;18426:31;;18493:9;18480:23;18473:5;18466:38;18564:2;18553:9;18549:18;18536:32;18531:2;18524:5;18520:14;18513:56;18290:285;;;;:::o;18580:720::-;18662:5;18715:3;18708:4;18700:6;18696:17;18692:27;18682:55;;18733:1;18730;18723:12;18682:55;18756:2;18787;18781:9;18829:3;18821:6;18817:16;18899:6;18887:10;18884:22;-1:-1:-1;;;;;18851:10:67;18848:34;18845:62;18842:88;;;18910:18;;:::i;:::-;18939:22;;18981:6;19022:3;19010:16;;19038:15;;;19035:35;;;19066:1;19063;19056:12;19035:35;19090:6;19105:165;19121:6;19116:3;19113:15;19105:165;;;19187:38;19221:3;19216;19187:38;:::i;:::-;19175:51;;19255:4;19246:14;;;;19138:12;;19105:165;;;-1:-1:-1;19288:6:67;;18580:720;-1:-1:-1;;;;;;18580:720:67:o;19305:698::-;19365:5;19418:3;19411:4;19403:6;19399:17;19395:27;19385:55;;19436:1;19433;19426:12;19385:55;19459:2;19490;19484:9;19532:3;19524:6;19520:16;19602:6;19590:10;19587:22;-1:-1:-1;;;;;19554:10:67;19551:34;19548:62;19545:88;;;19613:18;;:::i;:::-;19642:22;;19684:6;19725:3;19713:16;;19741:15;;;19738:35;;;19769:1;19766;19759:12;19738:35;19793:6;19808:165;19824:6;19819:3;19816:15;19808:165;;;19890:38;19924:3;19919;19890:38;:::i;:::-;19878:51;;19958:4;19949:14;;;;19841:12;;19808:165;;20008:1264;20070:5;20109:9;20104:3;20100:19;20139:6;20135:2;20131:15;20128:35;;;20159:1;20156;20149:12;20128:35;20181:22;;:::i;:::-;20172:31;;20226:41;20257:9;20226:41;:::i;:::-;20219:5;20212:56;20300:50;20346:2;20335:9;20331:18;20300:50;:::i;:::-;20295:2;20288:5;20284:14;20277:74;20370:6;20410:2;20404;20400:7;20396:2;20392:16;20388:25;20385:45;;;20426:1;20423;20416:12;20385:45;20454:22;;:::i;:::-;20439:37;;20501:81;20578:3;20573:2;20562:9;20558:18;20501:81;:::i;:::-;20492:7;20485:98;20617:60;20673:3;20667;20656:9;20652:19;20617:60;:::i;:::-;20612:2;20603:7;20599:16;20592:86;20712:55;20763:3;20756:4;20745:9;20741:20;20712:55;:::i;:::-;20707:2;20698:7;20694:16;20687:81;20804:55;20855:3;20848:4;20837:9;20833:20;20804:55;:::i;:::-;20797:4;20788:7;20784:18;20777:83;20896:55;20947:3;20940:4;20929:9;20925:20;20896:55;:::i;:::-;20889:4;20880:7;20876:18;20869:83;20988:55;21039:3;21032:4;21021:9;21017:20;20988:55;:::i;:::-;20981:4;20972:7;20968:18;20961:83;21080:55;21131:3;21124:4;21113:9;21109:20;21080:55;:::i;:::-;21073:4;21064:7;21060:18;21053:83;21172:53;21221:3;21216:2;21205:9;21201:18;21172:53;:::i;:::-;21165:4;21152:18;;21145:81;-1:-1:-1;21253:2:67;21242:14;;21235:31;21246:5;20008:1264;-1:-1:-1;;20008:1264:67:o;21277:659::-;21338:5;21391:3;21384:4;21376:6;21372:17;21368:27;21358:55;;21409:1;21406;21399:12;21358:55;21442:2;21436:9;21484:3;21476:6;21472:16;21554:6;21542:10;21539:22;-1:-1:-1;;;;;21506:10:67;21503:34;21500:62;21497:88;;;21565:18;;:::i;:::-;21601:2;21594:22;21636:6;21677:3;21665:16;;21693:15;;;21690:35;;;21721:1;21718;21711:12;21690:35;21745:6;21760:146;21776:6;21771:3;21768:15;21760:146;;;21844:17;;21832:30;;21891:4;21882:14;;;;21793;21760:146;;21941:848;22000:5;22048:6;22036:9;22031:3;22027:19;22023:32;22020:52;;;22068:1;22065;22058:12;22020:52;22090:22;;:::i;:::-;22081:31;;22135:40;22171:3;22160:9;22135:40;:::i;:::-;22128:5;22121:55;22210:59;22265:3;22259;22248:9;22244:19;22210:59;:::i;:::-;22203:4;22196:5;22192:16;22185:85;22304:39;22337:4;22326:9;22322:20;22304:39;:::i;:::-;22297:4;22290:5;22286:16;22279:65;22378:62;22436:3;22429:4;22418:9;22414:20;22378:62;:::i;:::-;22371:4;22364:5;22360:16;22353:88;22475:39;22508:4;22497:9;22493:20;22475:39;:::i;:::-;22468:4;22461:5;22457:16;22450:65;22549:37;22580:4;22569:9;22565:20;22549:37;:::i;:::-;22542:4;22535:5;22531:16;22524:63;22638:4;22627:9;22623:20;22610:34;-1:-1:-1;;;;;22659:6:67;22656:30;22653:50;;;22699:1;22696;22689:12;22653:50;22737:45;22778:3;22769:6;22758:9;22754:22;22737:45;:::i;:::-;22730:4;22723:5;22719:16;22712:71;;21941:848;;;;:::o;22794:1498::-;22879:6;22932:2;22920:9;22911:7;22907:23;22903:32;22900:52;;;22948:1;22945;22938:12;22900:52;22988:9;22975:23;-1:-1:-1;;;;;23058:2:67;23050:6;23047:14;23044:34;;;23074:1;23071;23064:12;23044:34;23097:22;;;;23153:6;23135:16;;;23131:29;23128:49;;;23173:1;23170;23163:12;23128:49;23199:22;;:::i;:::-;23244:48;23284:7;23280:2;23244:48;:::i;:::-;23237:5;23230:63;23346:2;23342;23338:11;23325:25;23320:2;23313:5;23309:14;23302:49;23397:2;23393;23389:11;23376:25;23426:2;23416:8;23413:16;23410:36;;;23442:1;23439;23432:12;23410:36;23478:44;23514:7;23503:8;23499:2;23495:17;23478:44;:::i;:::-;23473:2;23466:5;23462:14;23455:68;;23555:31;23581:3;23577:2;23573:12;23555:31;:::i;:::-;23550:2;23543:5;23539:14;23532:55;23620:31;23646:3;23642:2;23638:12;23620:31;:::i;:::-;23614:3;23607:5;23603:15;23596:56;23706:3;23702:2;23698:12;23685:26;23679:3;23672:5;23668:15;23661:51;23745:58;23795:7;23789:3;23785:2;23781:12;23745:58;:::i;:::-;23739:3;23732:5;23728:15;23721:83;23823:3;23880:2;23876;23872:11;23859:25;23853:3;23846:5;23842:15;23835:50;23904:3;23943:46;23981:7;23976:2;23972;23968:11;23943:46;:::i;:::-;23934:6;23927:5;23923:18;23916:74;24022:52;24066:7;24060:3;24056:2;24052:12;24022:52;:::i;:::-;24017:2;24010:5;24006:14;23999:76;24121:3;24117:2;24113:12;24100:26;24084:42;;24151:2;24141:8;24138:16;24135:36;;;24167:1;24164;24157:12;24135:36;24203:58;24253:7;24242:8;24238:2;24234:17;24203:58;:::i;:::-;24187:14;;;24180:82;-1:-1:-1;24191:5:67;22794:1498;-1:-1:-1;;;;;22794:1498:67:o","linkReferences":{}},"methodIdentifiers":{"validateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"f4c7c1fa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"validateAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x38da39b17be3ff80bdcd182f07365d6f6895b907d4a1cac5e9fa0541255fee67\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://422e0b0741b3599b9c0813886c166a1b909c583e4571b165f8329734ff26fee6\",\"dweb:/ipfs/QmezhvP6D1ifbBpVpLKQUiDv84naWbYUQEpFkDGdCbKwAG\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0xa6b0d0d800c74341814b90bfe81a774ba1ef8aed33e88b55165910a959835385\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f9de046b12fc312d4198f11995862080c0422fdc86d9b2d80ce65630dd992bc\",\"dweb:/ipfs/QmSAwmbB5YZ1w7DYzrBhpKxhB2h468H8MgmVq4JEUeKz2q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccountIsNotVerified"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x38da39b17be3ff80bdcd182f07365d6f6895b907d4a1cac5e9fa0541255fee67","urls":["bzz-raw://422e0b0741b3599b9c0813886c166a1b909c583e4571b165f8329734ff26fee6","dweb:/ipfs/QmezhvP6D1ifbBpVpLKQUiDv84naWbYUQEpFkDGdCbKwAG"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0xa6b0d0d800c74341814b90bfe81a774ba1ef8aed33e88b55165910a959835385","urls":["bzz-raw://5f9de046b12fc312d4198f11995862080c0422fdc86d9b2d80ce65630dd992bc","dweb:/ipfs/QmSAwmbB5YZ1w7DYzrBhpKxhB2h468H8MgmVq4JEUeKz2q"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"AccountIsNotVerified","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61134f806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105ac565b610059565b6040516100509190610a2d565b60405180910390f35b610061610167565b3660006100718460288188610b5f565b9150915060008585604051610087929190610b89565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b03166306045a918e848f8f8f8f8f60006040518963ffffffff1660e01b81526004016100e2989796959493929190610b99565b602060405180830381865afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610c11565b9050801561014257610137838501856111f9565b94505050505061015b565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e0860185905286519081018752848152928301849052948201839052810182905292830152610100810191909152610120810161026a604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161027761027c565b905290565b6040518060e0016040528061028f6102c9565b815260200161029c6102e8565b8152600060208201526040016102b0610307565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610277610325565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103396103d0565b8152602001610346610409565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103df5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103df565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046d5761046d610435565b60405290565b6040516101c081016001600160401b038111828210171561046d5761046d610435565b604051606081016001600160401b038111828210171561046d5761046d610435565b60405161010081016001600160401b038111828210171561046d5761046d610435565b60405160e081016001600160401b038111828210171561046d5761046d610435565b60405161016081016001600160401b038111828210171561046d5761046d610435565b600082601f83011261053157600080fd5b81356001600160401b038082111561054b5761054b610435565b604051601f8301601f19908116603f0116810190828211818310171561057357610573610435565b8160405283815286602085880101111561058c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c857600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f357600080fd5b95506060890135945060808901356001600160401b038082111561061657600080fd5b6106228c838d01610520565b955060a08b0135945060c08b013591508082111561063f57600080fd5b818b0191508b601f83011261065357600080fd5b81358181111561066257600080fd5b8c602082850101111561067457600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b357602081850181015186830182015201610697565b818111156106c5576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60058110610700576107006106da565b9052565b61070f8282516106f0565b602081015161072160208401826106f0565b50604081015161073460408401826106f0565b50606081015161074760608401826106f0565b50608081015161075a60808401826106f0565b5060a081015161076d60a08401826106f0565b5060c081015161078060c08401826106f0565b5060e081015161079860e084018263ffffffff169052565b50610100808201516107ac828501826106f0565b5050610120808201516107c1828501826106f0565b5050610140808201516107d6828501826106f0565b5050610160808201516107eb828501826106f0565b505061018080820151610800828501826106f0565b50506101a080820151610815828501826106f0565b50505050565b60038110610700576107006106da565b8060005b600f8110156108155761084d84835180518252602090810151910152565b604093909301926020919091019060010161082f565b61086e82825161081b565b6020808201516108808285018261081b565b50604082810151805160008684015b60078210156108bf576108ad81845180518252602090810151910152565b9185019160019190910190840161088f565b50505091820151916108d561020086018461082b565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610815578151845260209384019390910190600101610967565b80516000906109609084835b60088110156109b1578251825260209283019290910190600101610992565b50505060208301516109c7610100860182610863565b50604083015163ffffffff1661084085015260608301516109ec610860860182610963565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a248286018261068d565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a6b6103e085018361068d565b91506060850151610a8760a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac481870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b39610200880184610704565b870151868503601f1901848801529150610b5590508382610986565b9695505050505050565b60008085851115610b6f57600080fd5b83861115610b7c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a0840152610bda8184018761068d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b8015158114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8151610c2e81610c00565b9392505050565b8035610c4081610c00565b919050565b600060408284031215610c5757600080fd5b610c5f61044b565b9050813581526020820135610c7381610c00565b602082015292915050565b80356001600160401b0381168114610c4057600080fd5b803563ffffffff81168114610c4057600080fd5b600060a08284031215610cbb57600080fd5b60405160a081018181106001600160401b0382111715610cdd57610cdd610435565b604052905080610cec83610c7e565b8152610cfa60208401610c95565b6020820152610d0b60408401610c7e565b6040820152610d1c60608401610c95565b6060820152610d2d60808401610c7e565b60808201525092915050565b803560058110610c4057600080fd5b60006101c08284031215610d5b57600080fd5b610d63610473565b9050610d6e82610d39565b8152610d7c60208301610d39565b6020820152610d8d60408301610d39565b6040820152610d9e60608301610d39565b6060820152610daf60808301610d39565b6080820152610dc060a08301610d39565b60a0820152610dd160c08301610d39565b60c0820152610de260e08301610c95565b60e0820152610100610df5818401610d39565b90820152610120610e07838201610d39565b90820152610140610e19838201610d39565b90820152610160610e2b838201610d39565b90820152610180610e3d838201610d39565b908201526101a0610e4f838201610d39565b9082015292915050565b600082601f830112610e6a57600080fd5b6040516101008082018281106001600160401b0382111715610e8e57610e8e610435565b60405283018185821115610ea157600080fd5b845b82811015610ebb578035825260209182019101610ea3565b509195945050505050565b803560038110610c4057600080fd5b600060408284031215610ee757600080fd5b610eef61044b565b9050813581526020820135602082015292915050565b600082601f830112610f1657600080fd5b6040805160e081018181106001600160401b0382111715610f3957610f39610435565b8252806101c0850186811115610f4e57600080fd5b855b81811015610f7157610f628882610ed5565b83526020909201918401610f50565b50919695505050505050565b600082601f830112610f8e57600080fd5b604080516101e081018181106001600160401b0382111715610fb257610fb2610435565b8252806103c0850186811115610fc757600080fd5b855b81811015610f7157610fdb8882610ed5565b83526020909201918401610fc9565b6000818303610740811215610ffe57600080fd5b611006610496565b915061101183610ec6565b825261101f60208401610ec6565b602083015261070080603f198301121561103857600080fd5b6110406104b8565b915061104f8560408601610f05565b825261105f856102008601610f7d565b6020830152611072856105c08601610ed5565b6040830152611085856106008601610ed5565b6060830152611098856106408601610ed5565b60808301526110ab856106808601610ed5565b60a08301526110be856106c08601610ed5565b60c08301526110cf85828601610ed5565b60e083015250604082015292915050565b600082601f8301126110f157600080fd5b60405160a081018181106001600160401b038211171561111357611113610435565b6040528060a084018581111561112857600080fd5b845b81811015610ebb57803583526020928301920161112a565b6000610960828403121561115557600080fd5b61115d6104db565b90506111698383610e59565b8152611179836101008401610fea565b602082015261118b6108408301610c95565b604082015261119e8361086084016110e0565b60608201526111b06109008301610c95565b60808201526111c26109208301610c35565b60a08201526109408201356001600160401b038111156111e157600080fd5b6111ed84828501610520565b60c08301525092915050565b60006020828403121561120b57600080fd5b81356001600160401b038082111561122257600080fd5b908301906103c0828603121561123757600080fd5b61123f6104fd565b6112498684610c45565b81526040830135602082015260608301358281111561126757600080fd5b61127387828601610520565b60408301525061128560808401610c7e565b606082015261129660a08401610c95565b608082015260c083013560a08201526112b28660e08501610c45565b60c08201526101208084013560e08301526101406112d288828701610ca9565b6101008401526112e6886101e08701610d48565b828401526103a08501359150838211156112ff57600080fd5b61130b88838701611142565b90830152509594505050505056fea2646970667358221220cfd5c1ec1bbcb05bb24264ce63ee1bbd9517c996ae09f85fc78461d6174475e664736f6c634300080c0033","sourceMap":"171:3299:64:-:0;;;319:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:7;:57;;-1:-1:-1;;;;;;378:57:64;-1:-1:-1;;;;;378:57:64;;;;;;;;;;171:3299;;14:298:67;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:67;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:67:o;:::-;171:3299:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105ac565b610059565b6040516100509190610a2d565b60405180910390f35b610061610167565b3660006100718460288188610b5f565b9150915060008585604051610087929190610b89565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b03166306045a918e848f8f8f8f8f60006040518963ffffffff1660e01b81526004016100e2989796959493929190610b99565b602060405180830381865afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610c11565b9050801561014257610137838501856111f9565b94505050505061015b565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e0860185905286519081018752848152928301849052948201839052810182905292830152610100810191909152610120810161026a604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161027761027c565b905290565b6040518060e0016040528061028f6102c9565b815260200161029c6102e8565b8152600060208201526040016102b0610307565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610277610325565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103396103d0565b8152602001610346610409565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103df5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103df565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046d5761046d610435565b60405290565b6040516101c081016001600160401b038111828210171561046d5761046d610435565b604051606081016001600160401b038111828210171561046d5761046d610435565b60405161010081016001600160401b038111828210171561046d5761046d610435565b60405160e081016001600160401b038111828210171561046d5761046d610435565b60405161016081016001600160401b038111828210171561046d5761046d610435565b600082601f83011261053157600080fd5b81356001600160401b038082111561054b5761054b610435565b604051601f8301601f19908116603f0116810190828211818310171561057357610573610435565b8160405283815286602085880101111561058c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c857600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f357600080fd5b95506060890135945060808901356001600160401b038082111561061657600080fd5b6106228c838d01610520565b955060a08b0135945060c08b013591508082111561063f57600080fd5b818b0191508b601f83011261065357600080fd5b81358181111561066257600080fd5b8c602082850101111561067457600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b357602081850181015186830182015201610697565b818111156106c5576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60058110610700576107006106da565b9052565b61070f8282516106f0565b602081015161072160208401826106f0565b50604081015161073460408401826106f0565b50606081015161074760608401826106f0565b50608081015161075a60808401826106f0565b5060a081015161076d60a08401826106f0565b5060c081015161078060c08401826106f0565b5060e081015161079860e084018263ffffffff169052565b50610100808201516107ac828501826106f0565b5050610120808201516107c1828501826106f0565b5050610140808201516107d6828501826106f0565b5050610160808201516107eb828501826106f0565b505061018080820151610800828501826106f0565b50506101a080820151610815828501826106f0565b50505050565b60038110610700576107006106da565b8060005b600f8110156108155761084d84835180518252602090810151910152565b604093909301926020919091019060010161082f565b61086e82825161081b565b6020808201516108808285018261081b565b50604082810151805160008684015b60078210156108bf576108ad81845180518252602090810151910152565b9185019160019190910190840161088f565b50505091820151916108d561020086018461082b565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610815578151845260209384019390910190600101610967565b80516000906109609084835b60088110156109b1578251825260209283019290910190600101610992565b50505060208301516109c7610100860182610863565b50604083015163ffffffff1661084085015260608301516109ec610860860182610963565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a248286018261068d565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a6b6103e085018361068d565b91506060850151610a8760a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac481870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b39610200880184610704565b870151868503601f1901848801529150610b5590508382610986565b9695505050505050565b60008085851115610b6f57600080fd5b83861115610b7c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a0840152610bda8184018761068d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b8015158114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8151610c2e81610c00565b9392505050565b8035610c4081610c00565b919050565b600060408284031215610c5757600080fd5b610c5f61044b565b9050813581526020820135610c7381610c00565b602082015292915050565b80356001600160401b0381168114610c4057600080fd5b803563ffffffff81168114610c4057600080fd5b600060a08284031215610cbb57600080fd5b60405160a081018181106001600160401b0382111715610cdd57610cdd610435565b604052905080610cec83610c7e565b8152610cfa60208401610c95565b6020820152610d0b60408401610c7e565b6040820152610d1c60608401610c95565b6060820152610d2d60808401610c7e565b60808201525092915050565b803560058110610c4057600080fd5b60006101c08284031215610d5b57600080fd5b610d63610473565b9050610d6e82610d39565b8152610d7c60208301610d39565b6020820152610d8d60408301610d39565b6040820152610d9e60608301610d39565b6060820152610daf60808301610d39565b6080820152610dc060a08301610d39565b60a0820152610dd160c08301610d39565b60c0820152610de260e08301610c95565b60e0820152610100610df5818401610d39565b90820152610120610e07838201610d39565b90820152610140610e19838201610d39565b90820152610160610e2b838201610d39565b90820152610180610e3d838201610d39565b908201526101a0610e4f838201610d39565b9082015292915050565b600082601f830112610e6a57600080fd5b6040516101008082018281106001600160401b0382111715610e8e57610e8e610435565b60405283018185821115610ea157600080fd5b845b82811015610ebb578035825260209182019101610ea3565b509195945050505050565b803560038110610c4057600080fd5b600060408284031215610ee757600080fd5b610eef61044b565b9050813581526020820135602082015292915050565b600082601f830112610f1657600080fd5b6040805160e081018181106001600160401b0382111715610f3957610f39610435565b8252806101c0850186811115610f4e57600080fd5b855b81811015610f7157610f628882610ed5565b83526020909201918401610f50565b50919695505050505050565b600082601f830112610f8e57600080fd5b604080516101e081018181106001600160401b0382111715610fb257610fb2610435565b8252806103c0850186811115610fc757600080fd5b855b81811015610f7157610fdb8882610ed5565b83526020909201918401610fc9565b6000818303610740811215610ffe57600080fd5b611006610496565b915061101183610ec6565b825261101f60208401610ec6565b602083015261070080603f198301121561103857600080fd5b6110406104b8565b915061104f8560408601610f05565b825261105f856102008601610f7d565b6020830152611072856105c08601610ed5565b6040830152611085856106008601610ed5565b6060830152611098856106408601610ed5565b60808301526110ab856106808601610ed5565b60a08301526110be856106c08601610ed5565b60c08301526110cf85828601610ed5565b60e083015250604082015292915050565b600082601f8301126110f157600080fd5b60405160a081018181106001600160401b038211171561111357611113610435565b6040528060a084018581111561112857600080fd5b845b81811015610ebb57803583526020928301920161112a565b6000610960828403121561115557600080fd5b61115d6104db565b90506111698383610e59565b8152611179836101008401610fea565b602082015261118b6108408301610c95565b604082015261119e8361086084016110e0565b60608201526111b06109008301610c95565b60808201526111c26109208301610c35565b60a08201526109408201356001600160401b038111156111e157600080fd5b6111ed84828501610520565b60c08301525092915050565b60006020828403121561120b57600080fd5b81356001600160401b038082111561122257600080fd5b908301906103c0828603121561123757600080fd5b61123f6104fd565b6112498684610c45565b81526040830135602082015260608301358281111561126757600080fd5b61127387828601610520565b60408301525061128560808401610c7e565b606082015261129660a08401610c95565b608082015260c083013560a08201526112b28660e08501610c45565b60c08201526101208084013560e08301526101406112d288828701610ca9565b6101008401526112e6886101e08701610d48565b828401526103a08501359150838211156112ff57600080fd5b61130b88838701611142565b90830152509594505050505056fea2646970667358221220cfd5c1ec1bbcb05bb24264ce63ee1bbd9517c996ae09f85fc78461d6174475e664736f6c634300080c0033","sourceMap":"171:3299:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:947;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;763:14;;:::i;:::-;789:29;;821:17;:8;830:6;821:8;;:17;:::i;:::-;789:49;;;;849:26;888:8;;878:19;;;;;;;:::i;:::-;;;;;;;;849:48;;908:22;933:7;;;;;;;;;-1:-1:-1;;;;;933:7:64;-1:-1:-1;;;;;933:28:64;;975:15;1004:18;1036:30;1080:18;1112:15;1141:11;1166:26;1214:1;933:293;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;908:318;;1241:17;1237:152;;;1281:37;;;;1292:14;1281:37;:::i;:::-;1274:44;;;;;;;;1237:152;1356:22;;-1:-1:-1;;;1356:22:64;;;;;;;;;;;448:947;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:127:67;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:67;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:250::-;475:2;469:9;517:6;505:19;;-1:-1:-1;;;;;539:34:67;;575:22;;;536:62;533:88;;;601:18;;:::i;663:253::-;735:2;729:9;777:4;765:17;;-1:-1:-1;;;;;797:34:67;;833:22;;;794:62;791:88;;;859:18;;:::i;921:255::-;993:2;987:9;1035:6;1023:19;;-1:-1:-1;;;;;1057:34:67;;1093:22;;;1054:62;1051:88;;;1119:18;;:::i;1181:253::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:67;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:67;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:67;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:67;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:1251::-;2555:6;2563;2571;2579;2587;2595;2603;2611;2664:3;2652:9;2643:7;2639:23;2635:33;2632:53;;;2681:1;2678;2671:12;2632:53;2704:23;;;-1:-1:-1;2774:2:67;2759:18;;2746:32;;-1:-1:-1;2828:2:67;2813:18;;2800:32;-1:-1:-1;;2861:43:67;;2851:54;;2841:82;;2919:1;2916;2909:12;2841:82;2942:5;-1:-1:-1;2994:2:67;2979:18;;2966:32;;-1:-1:-1;3049:3:67;3034:19;;3021:33;-1:-1:-1;;;;;3103:14:67;;;3100:34;;;3130:1;3127;3120:12;3100:34;3153:49;3194:7;3185:6;3174:9;3170:22;3153:49;:::i;:::-;3143:59;;3249:3;3238:9;3234:19;3221:33;3211:43;;3307:3;3296:9;3292:19;3279:33;3263:49;;3337:2;3327:8;3324:16;3321:36;;;3353:1;3350;3343:12;3321:36;3391:8;3380:9;3376:24;3366:34;;3438:7;3431:4;3427:2;3423:13;3419:27;3409:55;;3460:1;3457;3450:12;3409:55;3500:2;3487:16;3526:2;3518:6;3515:14;3512:34;;;3542:1;3539;3532:12;3512:34;3587:7;3582:2;3573:6;3569:2;3565:15;3561:24;3558:37;3555:57;;;3608:1;3605;3598:12;3555:57;3639:2;3635;3631:11;3621:21;;3661:6;3651:16;;;;;2422:1251;;;;;;;;;;;:::o;3953:472::-;3995:3;4033:5;4027:12;4060:6;4055:3;4048:19;4085:1;4095:162;4109:6;4106:1;4103:13;4095:162;;;4171:4;4227:13;;;4223:22;;4217:29;4199:11;;;4195:20;;4188:59;4124:12;4095:162;;;4275:6;4272:1;4269:13;4266:87;;;4341:1;4334:4;4325:6;4320:3;4316:16;4312:27;4305:38;4266:87;-1:-1:-1;4407:2:67;4386:15;-1:-1:-1;;4382:29:67;4373:39;;;;4414:4;4369:50;;3953:472;-1:-1:-1;;3953:472:67:o;5108:127::-;5169:10;5164:3;5160:20;5157:1;5150:31;5200:4;5197:1;5190:15;5224:4;5221:1;5214:15;5240:143;5324:1;5317:5;5314:12;5304:46;;5330:18;;:::i;:::-;5359;;5240:143::o;5388:1834::-;5453:47;5496:3;5488:5;5482:12;5453:47;:::i;:::-;5546:4;5539:5;5535:16;5529:23;5561:58;5613:4;5608:3;5604:14;5590:12;5561:58;:::i;:::-;;5667:4;5660:5;5656:16;5650:23;5682:60;5736:4;5731:3;5727:14;5711;5682:60;:::i;:::-;;5790:4;5783:5;5779:16;5773:23;5805:60;5859:4;5854:3;5850:14;5834;5805:60;:::i;:::-;;5913:4;5906:5;5902:16;5896:23;5928:60;5982:4;5977:3;5973:14;5957;5928:60;:::i;:::-;;6036:4;6029:5;6025:16;6019:23;6051:60;6105:4;6100:3;6096:14;6080;6051:60;:::i;:::-;;6159:4;6152:5;6148:16;6142:23;6174:60;6228:4;6223:3;6219:14;6203;6174:60;:::i;:::-;;6282:4;6275:5;6271:16;6265:23;6297:49;6340:4;6335:3;6331:14;6315;4613:10;4602:22;4590:35;;4537:94;6297:49;;6365:6;6419:2;6412:5;6408:14;6402:21;6432:58;6486:2;6481:3;6477:12;6461:14;6432:58;:::i;:::-;;;6509:6;6563:2;6556:5;6552:14;6546:21;6576:58;6630:2;6625:3;6621:12;6605:14;6576:58;:::i;:::-;;;6653:6;6707:2;6700:5;6696:14;6690:21;6720:58;6774:2;6769:3;6765:12;6749:14;6720:58;:::i;:::-;;;6797:6;6852:2;6845:5;6841:14;6835:21;6865:59;6920:2;6915:3;6911:12;6894:15;6865:59;:::i;:::-;;;6943:6;6998:2;6991:5;6987:14;6981:21;7011:59;7066:2;7061:3;7057:12;7040:15;7011:59;:::i;:::-;;;7089:6;7144:2;7137:5;7133:14;7127:21;7157:59;7212:2;7207:3;7203:12;7186:15;7157:59;:::i;:::-;;;5388:1834;;:::o;7227:145::-;7313:1;7306:5;7303:12;7293:46;;7319:18;;:::i;7533:335::-;7636:5;7659:1;7669:193;7683:4;7680:1;7677:11;7669:193;;;7730:48;7774:3;7765:6;7759:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;7730:48;7807:4;7798:14;;;;;7847:4;7835:17;;;;;7703:1;7696:9;7669:193;;7873:1627;7942:49;7987:3;7979:5;7973:12;7942:49;:::i;:::-;8010:4;8060:2;8053:5;8049:14;8043:21;8073:58;8127:2;8122:3;8118:12;8104;8073:58;:::i;:::-;-1:-1:-1;8150:4:67;8191:14;;;8185:21;8256;;8364:1;8225:12;;;8374:195;8388:4;8385:1;8382:11;8374:195;;;8435:50;8479:5;8470:6;8464:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;8435:50;8544:15;;;;8408:1;8401:9;;;;;8507:14;;8374:195;;;-1:-1:-1;;;8606:23:67;;;8600:30;;8639:65;8699:3;8690:13;;8600:30;8639:65;:::i;:::-;8741:23;;;8735:30;7453:12;;8828:4;8819:14;;7441:25;7515:4;7504:16;;;7498:23;7482:14;;;7475:47;8891:4;8871:25;;8865:32;7453:12;;8960:4;8951:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9023:4;9003:25;;8997:32;7453:12;;9092:4;9083:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9155:4;9135:25;;9129:32;7453:12;;9224:4;9215:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9287:4;9267:25;;9261:32;7453:12;;9356:4;9347:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9419:4;9399:25;;;9393:32;7453:12;;9488:4;9479:14;;7441:25;7504:16;7498:23;7482:14;;;;7475:47;;;;-1:-1:-1;;7873:1627:67:o;9505:326::-;9598:5;9621:1;9631:194;9645:4;9642:1;9639:11;9631:194;;;9704:13;;9692:26;;9741:4;9765:12;;;;9800:15;;;;9665:1;9658:9;9631:194;;9836:1166;9944:12;;9891:3;;9919:6;;9978:3;9891;10055:200;10069:4;10066:1;10063:11;10055:200;;;10130:13;;10116:28;;10167:4;10230:15;;;;10193:14;;;;10089:1;10082:9;10055:200;;;10059:3;;;10301:4;10294:5;10290:16;10284:23;10316:65;10373:6;10368:3;10364:16;10350:12;10316:65;:::i;:::-;-1:-1:-1;10429:4:67;10418:16;;10412:23;4613:10;4602:22;10487:6;10478:16;;4590:35;10543:4;10532:16;;10526:23;10558:58;10608:6;10599:16;;10526:23;10558:58;:::i;:::-;-1:-1:-1;10664:4:67;10653:16;;10647:23;4613:10;4602:22;10722:6;10713:16;;4590:35;10778:4;10767:16;;10761:23;3748:13;3741:21;10834:6;10825:16;;3729:34;10890:4;10879:16;;10873:23;10921:6;10912:16;;10905:28;;;10949:47;10983:12;;;10873:23;10949:47;:::i;:::-;10942:54;9836:1166;-1:-1:-1;;;;;9836:1166:67:o;11007:1526::-;11188:2;11170:21;;;11236:13;;3857:12;;11251:18;;;3845:25;3922:16;3916:23;3909:31;3902:39;3886:14;;;3879:63;11324:2;11316:6;11312:15;11306:22;11301:2;11290:9;11286:18;11279:50;11151:4;11376;11368:6;11364:17;11358:24;11401:6;11444:2;11438:3;11427:9;11423:19;11416:31;11470:52;11517:3;11506:9;11502:19;11488:12;11470:52;:::i;:::-;11456:66;;11571:2;11563:6;11559:15;11553:22;11584:54;11633:3;11622:9;11618:19;11602:14;-1:-1:-1;;;;;4495:30:67;4483:43;;4430:102;11584:54;-1:-1:-1;11687:3:67;11675:16;;11669:23;4613:10;4602:22;;11750:3;11735:19;;4590:35;11701:54;11810:3;11802:6;11798:16;11792:23;11786:3;11775:9;11771:19;11764:52;11865:3;11857:6;11853:16;11847:23;11889:3;11901:71;11968:2;11957:9;11953:18;11937:14;3857:12;;3845:25;;3933:4;3922:16;;;3916:23;3909:31;3902:39;3886:14;;3879:63;3774:174;11901:71;12009:3;11997:16;;11991:23;12033:3;12052:18;;;12045:30;;;;12112:15;;;12106:22;4749:12;;-1:-1:-1;;;;;4745:21:67;;;12193:3;12178:19;;4733:34;4813:4;4802:16;;4796:23;4838:10;4880:21;;;4864:14;;;4857:45;4955:4;4944:16;;4938:23;4934:32;;4918:14;;;4911:56;5020:4;5009:16;;5003:23;4999:32;4983:14;;;4976:56;5085:4;5074:16;;;5068:23;5064:32;5048:14;;;5041:56;12247:6;12235:19;;12229:26;;-1:-1:-1;12264:66:67;12325:3;12310:19;;12229:26;12264:66;:::i;:::-;12367:15;;12361:22;12423;;;-1:-1:-1;;12419:36:67;12399:18;;;12392:64;12361:22;-1:-1:-1;12473:54:67;;-1:-1:-1;12427:6:67;12361:22;12473:54;:::i;:::-;12465:62;11007:1526;-1:-1:-1;;;;;;11007:1526:67:o;12538:331::-;12643:9;12654;12696:8;12684:10;12681:24;12678:44;;;12718:1;12715;12708:12;12678:44;12747:6;12737:8;12734:20;12731:40;;;12767:1;12764;12757:12;12731:40;-1:-1:-1;;12793:23:67;;;12838:25;;;;;-1:-1:-1;12538:331:67:o;12874:271::-;13057:6;13049;13044:3;13031:33;13013:3;13083:16;;13108:13;;;13083:16;12874:271;-1:-1:-1;12874:271:67:o;13150:805::-;13456:4;13485:3;13515:6;13504:9;13497:25;13558:6;13553:2;13542:9;13538:18;13531:34;13601:6;13596:2;13585:9;13581:18;13574:34;13660:26;13656:31;13648:6;13644:44;13639:2;13628:9;13624:18;13617:72;13726:6;13720:3;13709:9;13705:19;13698:35;13770:2;13764:3;13753:9;13749:19;13742:31;13790:45;13831:2;13820:9;13816:18;13808:6;13790:45;:::i;:::-;13866:3;13851:19;;13844:35;;;;-1:-1:-1;;;;;;;13916:32:67;;;;13910:3;13895:19;;;13888:61;13782:53;13150:805;-1:-1:-1;;;;;;13150:805:67:o;13960:118::-;14046:5;14039:13;14032:21;14025:5;14022:32;14012:60;;14068:1;14065;14058:12;14012:60;13960:118;:::o;14083:245::-;14150:6;14203:2;14191:9;14182:7;14178:23;14174:32;14171:52;;;14219:1;14216;14209:12;14171:52;14251:9;14245:16;14270:28;14292:5;14270:28;:::i;:::-;14317:5;14083:245;-1:-1:-1;;;14083:245:67:o;14333:128::-;14398:20;;14427:28;14398:20;14427:28;:::i;:::-;14333:128;;;:::o;14466:362::-;14530:5;14578:4;14566:9;14561:3;14557:19;14553:30;14550:50;;;14596:1;14593;14586:12;14550:50;14618:22;;:::i;:::-;14609:31;;14676:9;14663:23;14656:5;14649:38;14739:2;14728:9;14724:18;14711:32;14752:30;14774:7;14752:30;:::i;:::-;14809:2;14798:14;;14791:31;14802:5;14466:362;-1:-1:-1;;14466:362:67:o;14833:171::-;14900:20;;-1:-1:-1;;;;;14949:30:67;;14939:41;;14929:69;;14994:1;14991;14984:12;15009:163;15076:20;;15136:10;15125:22;;15115:33;;15105:61;;15162:1;15159;15152:12;15177:696;15230:5;15278:4;15266:9;15261:3;15257:19;15253:30;15250:50;;;15296:1;15293;15286:12;15250:50;15329:2;15323:9;15371:4;15363:6;15359:17;15442:6;15430:10;15427:22;-1:-1:-1;;;;;15394:10:67;15391:34;15388:62;15385:88;;;15453:18;;:::i;:::-;15489:2;15482:22;15522:6;-1:-1:-1;15522:6:67;15552:28;15570:9;15552:28;:::i;:::-;15544:6;15537:44;15614:37;15647:2;15636:9;15632:18;15614:37;:::i;:::-;15609:2;15601:6;15597:15;15590:62;15685:37;15718:2;15707:9;15703:18;15685:37;:::i;:::-;15680:2;15672:6;15668:15;15661:62;15756:37;15789:2;15778:9;15774:18;15756:37;:::i;:::-;15751:2;15743:6;15739:15;15732:62;15828:38;15861:3;15850:9;15846:19;15828:38;:::i;:::-;15822:3;15814:6;15810:16;15803:64;;15177:696;;;;:::o;15878:153::-;15956:20;;16005:1;15995:12;;15985:40;;16021:1;16018;16011:12;16036:1416;16094:5;16142:6;16130:9;16125:3;16121:19;16117:32;16114:52;;;16162:1;16159;16152:12;16114:52;16184:17;;:::i;:::-;16175:26;;16224:39;16253:9;16224:39;:::i;:::-;16217:5;16210:54;16296:48;16340:2;16329:9;16325:18;16296:48;:::i;:::-;16291:2;16284:5;16280:14;16273:72;16377:48;16421:2;16410:9;16406:18;16377:48;:::i;:::-;16372:2;16365:5;16361:14;16354:72;16458:48;16502:2;16491:9;16487:18;16458:48;:::i;:::-;16453:2;16446:5;16442:14;16435:72;16540:49;16584:3;16573:9;16569:19;16540:49;:::i;:::-;16534:3;16527:5;16523:15;16516:74;16623:49;16667:3;16656:9;16652:19;16623:49;:::i;:::-;16617:3;16610:5;16606:15;16599:74;16706:49;16750:3;16739:9;16735:19;16706:49;:::i;:::-;16700:3;16693:5;16689:15;16682:74;16789:38;16822:3;16811:9;16807:19;16789:38;:::i;:::-;16783:3;16776:5;16772:15;16765:63;16847:3;16882:48;16926:2;16915:9;16911:18;16882:48;:::i;:::-;16866:14;;;16859:72;16950:3;16985:48;17014:18;;;16985:48;:::i;:::-;16969:14;;;16962:72;17053:3;17088:48;17117:18;;;17088:48;:::i;:::-;17072:14;;;17065:72;17156:3;17191:48;17220:18;;;17191:48;:::i;:::-;17175:14;;;17168:72;17259:3;17294:48;17323:18;;;17294:48;:::i;:::-;17278:14;;;17271:72;17362:3;17397:48;17426:18;;;17397:48;:::i;:::-;17381:14;;;17374:72;17385:5;16036:1416;-1:-1:-1;;16036:1416:67:o;17457:668::-;17507:5;17560:3;17553:4;17545:6;17541:17;17537:27;17527:55;;17578:1;17575;17568:12;17527:55;17611:2;17605:9;17633:3;17675:2;17667:6;17663:15;17744:6;17732:10;17729:22;-1:-1:-1;;;;;17696:10:67;17693:34;17690:62;17687:88;;;17755:18;;:::i;:::-;17791:2;17784:22;17855:15;;17826:6;17882:15;;;17879:35;;;17910:1;17907;17900:12;17879:35;17934:6;17949:146;17965:6;17960:3;17957:15;17949:146;;;18033:17;;18021:30;;18080:4;18071:14;;;;17982;17949:146;;;-1:-1:-1;18113:6:67;;17457:668;-1:-1:-1;;;;;17457:668:67:o;18130:155::-;18210:20;;18259:1;18249:12;;18239:40;;18275:1;18272;18265:12;18290:285;18347:5;18395:4;18383:9;18378:3;18374:19;18370:30;18367:50;;;18413:1;18410;18403:12;18367:50;18435:22;;:::i;:::-;18426:31;;18493:9;18480:23;18473:5;18466:38;18564:2;18553:9;18549:18;18536:32;18531:2;18524:5;18520:14;18513:56;18290:285;;;;:::o;18580:698::-;18640:5;18693:3;18686:4;18678:6;18674:17;18670:27;18660:55;;18711:1;18708;18701:12;18660:55;18734:2;18765;18759:9;18807:3;18799:6;18795:16;18877:6;18865:10;18862:22;-1:-1:-1;;;;;18829:10:67;18826:34;18823:62;18820:88;;;18888:18;;:::i;:::-;18917:22;;18959:6;19000:3;18988:16;;19016:15;;;19013:35;;;19044:1;19041;19034:12;19013:35;19068:6;19083:165;19099:6;19094:3;19091:15;19083:165;;;19165:38;19199:3;19194;19165:38;:::i;:::-;19153:51;;19233:4;19224:14;;;;19116:12;;19083:165;;;-1:-1:-1;19266:6:67;;18580:698;-1:-1:-1;;;;;;18580:698:67:o;19283:720::-;19365:5;19418:3;19411:4;19403:6;19399:17;19395:27;19385:55;;19436:1;19433;19426:12;19385:55;19459:2;19490;19484:9;19532:3;19524:6;19520:16;19602:6;19590:10;19587:22;-1:-1:-1;;;;;19554:10:67;19551:34;19548:62;19545:88;;;19613:18;;:::i;:::-;19642:22;;19684:6;19725:3;19713:16;;19741:15;;;19738:35;;;19769:1;19766;19759:12;19738:35;19793:6;19808:165;19824:6;19819:3;19816:15;19808:165;;;19890:38;19924:3;19919;19890:38;:::i;:::-;19878:51;;19958:4;19949:14;;;;19841:12;;19808:165;;20008:1264;20070:5;20109:9;20104:3;20100:19;20139:6;20135:2;20131:15;20128:35;;;20159:1;20156;20149:12;20128:35;20181:22;;:::i;:::-;20172:31;;20226:41;20257:9;20226:41;:::i;:::-;20219:5;20212:56;20300:50;20346:2;20335:9;20331:18;20300:50;:::i;:::-;20295:2;20288:5;20284:14;20277:74;20370:6;20410:2;20404;20400:7;20396:2;20392:16;20388:25;20385:45;;;20426:1;20423;20416:12;20385:45;20454:22;;:::i;:::-;20439:37;;20501:59;20556:3;20551:2;20540:9;20536:18;20501:59;:::i;:::-;20492:7;20485:76;20595:82;20673:3;20667;20656:9;20652:19;20595:82;:::i;:::-;20590:2;20581:7;20577:16;20570:108;20712:55;20763:3;20756:4;20745:9;20741:20;20712:55;:::i;:::-;20707:2;20698:7;20694:16;20687:81;20804:55;20855:3;20848:4;20837:9;20833:20;20804:55;:::i;:::-;20797:4;20788:7;20784:18;20777:83;20896:55;20947:3;20940:4;20929:9;20925:20;20896:55;:::i;:::-;20889:4;20880:7;20876:18;20869:83;20988:55;21039:3;21032:4;21021:9;21017:20;20988:55;:::i;:::-;20981:4;20972:7;20968:18;20961:83;21080:55;21131:3;21124:4;21113:9;21109:20;21080:55;:::i;:::-;21073:4;21064:7;21060:18;21053:83;21172:53;21221:3;21216:2;21205:9;21201:18;21172:53;:::i;:::-;21165:4;21152:18;;21145:81;-1:-1:-1;21253:2:67;21242:14;;21235:31;21246:5;20008:1264;-1:-1:-1;;20008:1264:67:o;21277:659::-;21338:5;21391:3;21384:4;21376:6;21372:17;21368:27;21358:55;;21409:1;21406;21399:12;21358:55;21442:2;21436:9;21484:3;21476:6;21472:16;21554:6;21542:10;21539:22;-1:-1:-1;;;;;21506:10:67;21503:34;21500:62;21497:88;;;21565:18;;:::i;:::-;21601:2;21594:22;21636:6;21677:3;21665:16;;21693:15;;;21690:35;;;21721:1;21718;21711:12;21690:35;21745:6;21760:146;21776:6;21771:3;21768:15;21760:146;;;21844:17;;21832:30;;21891:4;21882:14;;;;21793;21760:146;;21941:848;22000:5;22048:6;22036:9;22031:3;22027:19;22023:32;22020:52;;;22068:1;22065;22058:12;22020:52;22090:22;;:::i;:::-;22081:31;;22135:40;22171:3;22160:9;22135:40;:::i;:::-;22128:5;22121:55;22210:59;22265:3;22259;22248:9;22244:19;22210:59;:::i;:::-;22203:4;22196:5;22192:16;22185:85;22304:39;22337:4;22326:9;22322:20;22304:39;:::i;:::-;22297:4;22290:5;22286:16;22279:65;22378:62;22436:3;22429:4;22418:9;22414:20;22378:62;:::i;:::-;22371:4;22364:5;22360:16;22353:88;22475:39;22508:4;22497:9;22493:20;22475:39;:::i;:::-;22468:4;22461:5;22457:16;22450:65;22549:37;22580:4;22569:9;22565:20;22549:37;:::i;:::-;22542:4;22535:5;22531:16;22524:63;22638:4;22627:9;22623:20;22610:34;-1:-1:-1;;;;;22659:6:67;22656:30;22653:50;;;22699:1;22696;22689:12;22653:50;22737:45;22778:3;22769:6;22758:9;22754:22;22737:45;:::i;:::-;22730:4;22723:5;22719:16;22712:71;;21941:848;;;;:::o;22794:1498::-;22879:6;22932:2;22920:9;22911:7;22907:23;22903:32;22900:52;;;22948:1;22945;22938:12;22900:52;22988:9;22975:23;-1:-1:-1;;;;;23058:2:67;23050:6;23047:14;23044:34;;;23074:1;23071;23064:12;23044:34;23097:22;;;;23153:6;23135:16;;;23131:29;23128:49;;;23173:1;23170;23163:12;23128:49;23199:22;;:::i;:::-;23244:48;23284:7;23280:2;23244:48;:::i;:::-;23237:5;23230:63;23346:2;23342;23338:11;23325:25;23320:2;23313:5;23309:14;23302:49;23397:2;23393;23389:11;23376:25;23426:2;23416:8;23413:16;23410:36;;;23442:1;23439;23432:12;23410:36;23478:44;23514:7;23503:8;23499:2;23495:17;23478:44;:::i;:::-;23473:2;23466:5;23462:14;23455:68;;23555:31;23581:3;23577:2;23573:12;23555:31;:::i;:::-;23550:2;23543:5;23539:14;23532:55;23620:31;23646:3;23642:2;23638:12;23620:31;:::i;:::-;23614:3;23607:5;23603:15;23596:56;23706:3;23702:2;23698:12;23685:26;23679:3;23672:5;23668:15;23661:51;23745:58;23795:7;23789:3;23785:2;23781:12;23745:58;:::i;:::-;23739:3;23732:5;23728:15;23721:83;23823:3;23880:2;23876;23872:11;23859:25;23853:3;23846:5;23842:15;23835:50;23904:3;23943:46;23981:7;23976:2;23972;23968:11;23943:46;:::i;:::-;23934:6;23927:5;23923:18;23916:74;24022:52;24066:7;24060:3;24056:2;24052:12;24022:52;:::i;:::-;24017:2;24010:5;24006:14;23999:76;24121:3;24117:2;24113:12;24100:26;24084:42;;24151:2;24141:8;24138:16;24135:36;;;24167:1;24164;24157:12;24135:36;24203:58;24253:7;24242:8;24238:2;24234:17;24203:58;:::i;:::-;24187:14;;;24180:82;-1:-1:-1;24191:5:67;22794:1498;-1:-1:-1;;;;;22794:1498:67:o","linkReferences":{}},"methodIdentifiers":{"validateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"f4c7c1fa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"validateAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x5345cf4a00d5ea9b89e8133698c7bf3eda3728a858a22cbbeb151bfd88a5122d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c461760571bf1aac1038d4df57e40b38c87420471f80834c4b5d0f78e04d3de5\",\"dweb:/ipfs/QmUWh9Gk4QqVc1P7bP8sfuPEKwJSbZwLCFn3j8tgXBW72S\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0xa6b0d0d800c74341814b90bfe81a774ba1ef8aed33e88b55165910a959835385\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f9de046b12fc312d4198f11995862080c0422fdc86d9b2d80ce65630dd992bc\",\"dweb:/ipfs/QmSAwmbB5YZ1w7DYzrBhpKxhB2h468H8MgmVq4JEUeKz2q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccountIsNotVerified"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x5345cf4a00d5ea9b89e8133698c7bf3eda3728a858a22cbbeb151bfd88a5122d","urls":["bzz-raw://c461760571bf1aac1038d4df57e40b38c87420471f80834c4b5d0f78e04d3de5","dweb:/ipfs/QmUWh9Gk4QqVc1P7bP8sfuPEKwJSbZwLCFn3j8tgXBW72S"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"src/MinaAccountValidation.sol":{"keccak256":"0xa6b0d0d800c74341814b90bfe81a774ba1ef8aed33e88b55165910a959835385","urls":["bzz-raw://5f9de046b12fc312d4198f11995862080c0422fdc86d9b2d80ce65630dd992bc","dweb:/ipfs/QmSAwmbB5YZ1w7DYzrBhpKxhB2h468H8MgmVq4JEUeKz2q"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index 6cf85336..cdb8e503 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106bf3803806106bf83398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6105c8806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fb565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103d0565b610160565b005b6100956102cd565b610095601081565b6100d06102dc565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dc565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047f565b60108110610159576101596104a4565b0154905090565b602081015160006101736001601061047f565b60108110610183576101836104a4565b015481146101d25780600061019a6001601061047f565b601081106101aa576101aa6104a4565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a919061021b908d9086908e908e908e908e908e908b906004016104ba565b602060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c9190610569565b905080156102a85760006010604086016102408701835b601081101561029e578251855581518455600194850194938401936020938401939092019101610273565b50505050506102c1565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610324578151835260209283019290910190600101610305565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035457600080fd5b813567ffffffffffffffff8082111561036f5761036f61032d565b604051601f8301601f19908116603f011681019082821181831017156103975761039761032d565b816040528381528660208588010111156103b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103eb57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041657600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043a57600080fd5b6104468b838c01610343565b945060a08a0135935060c08a013591508082111561046357600080fd5b506104708a828b01610343565b91505092959891949750929550565b60008282101561049f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561051b578783018201518584016101200152918101916104fc565b8083111561052e57600061012082870101525b60c08501879052601f01601f1916840161012001925061055c91505060e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561057b57600080fd5b8151801515811461058b57600080fd5b939250505056fea2646970667358221220f67050a4ae1e0b02650c780caac27ab639b26cd5fb868d6465d8b448b291078a64736f6c634300080c0033","sourceMap":"345:4056:65:-:0;;;1053:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1135:7;:57;;-1:-1:-1;;;;;;1135:57:65;-1:-1:-1;;;;;1135:57:65;;;;;1257:13;-1:-1:-1;1219:34:65;-1:-1:-1;548:2:65;1219:34;:::i;:::-;1202:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;345:4056:65;;-1:-1:-1;345:4056:65;14:359:67;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:67;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:67:o;378:222::-;418:4;446:1;443;440:8;437:131;;;490:10;485:3;481:20;478:1;471:31;525:4;522:1;515:15;553:4;550:1;543:15;437:131;-1:-1:-1;585:9:67;;378:222::o;605:127::-;666:10;661:3;657:20;654:1;647:31;697:4;694:1;687:15;721:4;718:1;711:15;605:127;345:4056:65;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fb565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103d0565b610160565b005b6100956102cd565b610095601081565b6100d06102dc565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dc565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047f565b60108110610159576101596104a4565b0154905090565b602081015160006101736001601061047f565b60108110610183576101836104a4565b015481146101d25780600061019a6001601061047f565b601081106101aa576101aa6104a4565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a919061021b908d9086908e908e908e908e908e908b906004016104ba565b602060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c9190610569565b905080156102a85760006010604086016102408701835b601081101561029e578251855581518455600194850194938401936020938401939092019101610273565b50505050506102c1565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610324578151835260209283019290910190600101610305565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035457600080fd5b813567ffffffffffffffff8082111561036f5761036f61032d565b604051601f8301601f19908116603f011681019082821181831017156103975761039761032d565b816040528381528660208588010111156103b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103eb57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041657600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043a57600080fd5b6104468b838c01610343565b945060a08a0135935060c08a013591508082111561046357600080fd5b506104708a828b01610343565b91505092959891949750929550565b60008282101561049f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561051b578783018201518584016101200152918101916104fc565b8083111561052e57600061012082870101525b60c08501879052601f01601f1916840161012001925061055c91505060e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561057b57600080fd5b8151801515811461058b57600080fd5b939250505056fea2646970667358221220f67050a4ae1e0b02650c780caac27ab639b26cd5fb868d6465d8b448b291078a64736f6c634300080c0033","sourceMap":"345:4056:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1953:144;;;:::i;1533:137::-;;;:::i;:::-;;;662:25:67;;;650:2;635:18;1533:137:65;516:177:67;2103:2296:65;;;;;;:::i;:::-;;:::i;:::-;;1337:135;;;:::i;491:59::-;;548:2;491:59;;1740:142;1794:46;;:::i;:::-;1852:23;;;;;;;;;;;-1:-1:-1;;1852:23:65;;-1:-1:-1;1852:23:65;;;;;;;;;;;;;;;;;;;;;;;;1740:142;:::o;1953:144::-;2008:46;;:::i;:::-;2066:24;;;;;;;;;;2073:17;2066:24;;;;;;2073:17;;2066:24;;;;;;;;;;;;;;;;1953:144;:::o;1533:137::-;1584:7;1610:17;1628:34;1661:1;1610:17;1628:34;:::i;:::-;1610:53;;;;;;;:::i;:::-;;;1603:60;;1533:137;:::o;2103:2296::-;2525:4;2511:19;;2505:26;2408:34;2602;2635:1;548:2;2602:34;:::i;:::-;2585:52;;;;;;;:::i;:::-;;;2555:26;:82;2551:217;;2676:26;2704:16;2721:34;2754:1;548:2;2721:34;:::i;:::-;2704:52;;;;;;;:::i;:::-;;;2660:97;;-1:-1:-1;;;2660:97:65;;;;;3274:25:67;;;;3315:18;;;3308:34;3247:18;;2660:97:65;;;;;;;2551:217;2807:19;;;;;;;;;;2863:7;;:293;;-1:-1:-1;;;2863:293:65;;2778:26;;-1:-1:-1;;;;;2863:7:65;;:28;;:293;;2905:15;;2807:19;;2966:30;;3010:18;;3042:15;;3071:11;;3096:26;;2778;;2863:293;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2837:319;;3171:18;3167:1226;;;3309:21;3367:22;3657:2;3643:17;;3792:57;;;3309:21;3867:444;3892:30;3889:1;3886:37;3867:444;;;3985:18;;3965:39;;4158:19;;4137:41;;4113:1;4096:19;;;;4273:20;;;;4057:2;4040:20;;;;4215:21;;;;3931:9;3867:444;;;3871:14;;;;;3167:1226;;;4362:20;;-1:-1:-1;;;4362:20:65;;;;;;;;;;;3167:1226;2398:2001;;;2103:2296;;;;;;;:::o;1337:135::-;1387:7;;1430:34;1463:1;548:2;1430:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:67:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:718;872:5;925:3;918:4;910:6;906:17;902:27;892:55;;943:1;940;933:12;892:55;979:6;966:20;1005:18;1042:2;1038;1035:10;1032:36;;;1048:18;;:::i;:::-;1123:2;1117:9;1091:2;1177:13;;-1:-1:-1;;1173:22:67;;;1197:2;1169:31;1165:40;1153:53;;;1221:18;;;1241:22;;;1218:46;1215:72;;;1267:18;;:::i;:::-;1307:10;1303:2;1296:22;1342:2;1334:6;1327:18;1388:3;1381:4;1376:2;1368:6;1364:15;1360:26;1357:35;1354:55;;;1405:1;1402;1395:12;1354:55;1469:2;1462:4;1454:6;1450:17;1443:4;1435:6;1431:17;1418:54;1516:1;1509:4;1504:2;1496:6;1492:15;1488:26;1481:37;1536:6;1527:15;;;;;;830:718;;;;:::o;1553:1001::-;1684:6;1692;1700;1708;1716;1724;1732;1785:3;1773:9;1764:7;1760:23;1756:33;1753:53;;;1802:1;1799;1792:12;1753:53;1825:23;;;-1:-1:-1;1895:2:67;1880:18;;1867:32;;-1:-1:-1;1949:2:67;1934:18;;1921:32;-1:-1:-1;;1982:43:67;;1972:54;;1962:82;;2040:1;2037;2030:12;1962:82;2063:5;-1:-1:-1;2115:2:67;2100:18;;2087:32;;-1:-1:-1;2170:3:67;2155:19;;2142:33;2194:18;2224:14;;;2221:34;;;2251:1;2248;2241:12;2221:34;2274:49;2315:7;2306:6;2295:9;2291:22;2274:49;:::i;:::-;2264:59;;2370:3;2359:9;2355:19;2342:33;2332:43;;2428:3;2417:9;2413:19;2400:33;2384:49;;2458:2;2448:8;2445:16;2442:36;;;2474:1;2471;2464:12;2442:36;;2497:51;2540:7;2529:8;2518:9;2514:24;2497:51;:::i;:::-;2487:61;;;1553:1001;;;;;;;;;;:::o;2741:222::-;2781:4;2809:1;2806;2803:8;2800:131;;;2853:10;2848:3;2844:20;2841:1;2834:31;2888:4;2885:1;2878:15;2916:4;2913:1;2906:15;2800:131;-1:-1:-1;2948:9:67;;2741:222::o;2968:127::-;3029:10;3024:3;3020:20;3017:1;3010:31;3060:4;3057:1;3050:15;3084:4;3081:1;3074:15;3462:1171;3768:4;3797:3;3827:6;3816:9;3809:25;3853:2;3891:6;3886:2;3875:9;3871:18;3864:34;3934:6;3929:2;3918:9;3914:18;3907:34;3993:26;3989:31;3981:6;3977:44;3972:2;3961:9;3957:18;3950:72;4059:6;4053:3;4042:9;4038:19;4031:35;4103:2;4097:3;4086:9;4082:19;4075:31;4135:6;4129:13;4178:6;4173:2;4162:9;4158:18;4151:34;4203:1;4194:10;;4213:141;4227:6;4224:1;4221:13;4213:141;;;4323:14;;;4319:23;;4313:30;4288:17;;;4307:3;4284:27;4277:67;4242:10;;;;4213:141;;;4372:6;4369:1;4366:13;4363:92;;;4443:1;4437:3;4428:6;4417:9;4413:22;4409:32;4402:43;4363:92;4558:3;4543:19;;4536:35;;;4516:2;4495:15;-1:-1:-1;;4491:29:67;4476:45;;4523:3;4472:55;;-1:-1:-1;4580:47:67;;-1:-1:-1;;4622:3:67;4607:19;;4599:6;-1:-1:-1;;;;;3419:31:67;3407:44;;3353:104;4580:47;3462:1171;;;;;;;;;;;:::o;4638:277::-;4705:6;4758:2;4746:9;4737:7;4733:23;4729:32;4726:52;;;4774:1;4771;4764:12;4726:52;4806:9;4800:16;4859:5;4852:13;4845:21;4838:5;4835:32;4825:60;;4881:1;4878;4871:12;4825:60;4904:5;4638:277;-1:-1:-1;;;4638:277:67:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x38da39b17be3ff80bdcd182f07365d6f6895b907d4a1cac5e9fa0541255fee67\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://422e0b0741b3599b9c0813886c166a1b909c583e4571b165f8329734ff26fee6\",\"dweb:/ipfs/QmezhvP6D1ifbBpVpLKQUiDv84naWbYUQEpFkDGdCbKwAG\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xb337a4c05daea96d77a83d15c585fc26e50069f2738fc126ce1a6d3a5e3be103\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://34f01073396bf26f5ab1101298988d2aaf9821ee24915ebec53d2df00ee17a14\",\"dweb:/ipfs/QmbS6UVTDV91UZierYjf1yWGca5tqwg1BbKmCj2zs6pS5u\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x38da39b17be3ff80bdcd182f07365d6f6895b907d4a1cac5e9fa0541255fee67","urls":["bzz-raw://422e0b0741b3599b9c0813886c166a1b909c583e4571b165f8329734ff26fee6","dweb:/ipfs/QmezhvP6D1ifbBpVpLKQUiDv84naWbYUQEpFkDGdCbKwAG"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0xb337a4c05daea96d77a83d15c585fc26e50069f2738fc126ce1a6d3a5e3be103","urls":["bzz-raw://34f01073396bf26f5ab1101298988d2aaf9821ee24915ebec53d2df00ee17a14","dweb:/ipfs/QmbS6UVTDV91UZierYjf1yWGca5tqwg1BbKmCj2zs6pS5u"],"license":"UNLICENSED"}},"version":1},"id":65} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106bf3803806106bf83398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6105c8806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fb565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103d0565b610160565b005b6100956102cd565b610095601081565b6100d06102dc565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dc565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047f565b60108110610159576101596104a4565b0154905090565b602081015160006101736001601061047f565b60108110610183576101836104a4565b015481146101d25780600061019a6001601061047f565b601081106101aa576101aa6104a4565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a919061021b908d9086908e908e908e908e908e908b906004016104ba565b602060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c9190610569565b905080156102a85760006010604086016102408701835b601081101561029e578251855581518455600194850194938401936020938401939092019101610273565b50505050506102c1565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610324578151835260209283019290910190600101610305565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035457600080fd5b813567ffffffffffffffff8082111561036f5761036f61032d565b604051601f8301601f19908116603f011681019082821181831017156103975761039761032d565b816040528381528660208588010111156103b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103eb57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041657600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043a57600080fd5b6104468b838c01610343565b945060a08a0135935060c08a013591508082111561046357600080fd5b506104708a828b01610343565b91505092959891949750929550565b60008282101561049f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561051b578783018201518584016101200152918101916104fc565b8083111561052e57600061012082870101525b60c08501879052601f01601f1916840161012001925061055c91505060e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561057b57600080fd5b8151801515811461058b57600080fd5b939250505056fea26469706673582212204bd1909bc5c2ac4b1bb74ffdd3e632e2d0b7e8c206e9b9db21cfba8cc7997ed964736f6c634300080c0033","sourceMap":"345:4056:65:-:0;;;1053:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1135:7;:57;;-1:-1:-1;;;;;;1135:57:65;-1:-1:-1;;;;;1135:57:65;;;;;1257:13;-1:-1:-1;1219:34:65;-1:-1:-1;548:2:65;1219:34;:::i;:::-;1202:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;345:4056:65;;-1:-1:-1;345:4056:65;14:359:67;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:67;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:67:o;378:222::-;418:4;446:1;443;440:8;437:131;;;490:10;485:3;481:20;478:1;471:31;525:4;522:1;515:15;553:4;550:1;543:15;437:131;-1:-1:-1;585:9:67;;378:222::o;605:127::-;666:10;661:3;657:20;654:1;647:31;697:4;694:1;687:15;721:4;718:1;711:15;605:127;345:4056:65;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fb565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103d0565b610160565b005b6100956102cd565b610095601081565b6100d06102dc565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dc565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047f565b60108110610159576101596104a4565b0154905090565b602081015160006101736001601061047f565b60108110610183576101836104a4565b015481146101d25780600061019a6001601061047f565b601081106101aa576101aa6104a4565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a919061021b908d9086908e908e908e908e908e908b906004016104ba565b602060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c9190610569565b905080156102a85760006010604086016102408701835b601081101561029e578251855581518455600194850194938401936020938401939092019101610273565b50505050506102c1565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610324578151835260209283019290910190600101610305565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035457600080fd5b813567ffffffffffffffff8082111561036f5761036f61032d565b604051601f8301601f19908116603f011681019082821181831017156103975761039761032d565b816040528381528660208588010111156103b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103eb57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041657600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043a57600080fd5b6104468b838c01610343565b945060a08a0135935060c08a013591508082111561046357600080fd5b506104708a828b01610343565b91505092959891949750929550565b60008282101561049f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561051b578783018201518584016101200152918101916104fc565b8083111561052e57600061012082870101525b60c08501879052601f01601f1916840161012001925061055c91505060e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561057b57600080fd5b8151801515811461058b57600080fd5b939250505056fea26469706673582212204bd1909bc5c2ac4b1bb74ffdd3e632e2d0b7e8c206e9b9db21cfba8cc7997ed964736f6c634300080c0033","sourceMap":"345:4056:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1953:144;;;:::i;1533:137::-;;;:::i;:::-;;;662:25:67;;;650:2;635:18;1533:137:65;516:177:67;2103:2296:65;;;;;;:::i;:::-;;:::i;:::-;;1337:135;;;:::i;491:59::-;;548:2;491:59;;1740:142;1794:46;;:::i;:::-;1852:23;;;;;;;;;;;-1:-1:-1;;1852:23:65;;-1:-1:-1;1852:23:65;;;;;;;;;;;;;;;;;;;;;;;;1740:142;:::o;1953:144::-;2008:46;;:::i;:::-;2066:24;;;;;;;;;;2073:17;2066:24;;;;;;2073:17;;2066:24;;;;;;;;;;;;;;;;1953:144;:::o;1533:137::-;1584:7;1610:17;1628:34;1661:1;1610:17;1628:34;:::i;:::-;1610:53;;;;;;;:::i;:::-;;;1603:60;;1533:137;:::o;2103:2296::-;2525:4;2511:19;;2505:26;2408:34;2602;2635:1;548:2;2602:34;:::i;:::-;2585:52;;;;;;;:::i;:::-;;;2555:26;:82;2551:217;;2676:26;2704:16;2721:34;2754:1;548:2;2721:34;:::i;:::-;2704:52;;;;;;;:::i;:::-;;;2660:97;;-1:-1:-1;;;2660:97:65;;;;;3274:25:67;;;;3315:18;;;3308:34;3247:18;;2660:97:65;;;;;;;2551:217;2807:19;;;;;;;;;;2863:7;;:293;;-1:-1:-1;;;2863:293:65;;2778:26;;-1:-1:-1;;;;;2863:7:65;;:28;;:293;;2905:15;;2807:19;;2966:30;;3010:18;;3042:15;;3071:11;;3096:26;;2778;;2863:293;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2837:319;;3171:18;3167:1226;;;3309:21;3367:22;3657:2;3643:17;;3792:57;;;3309:21;3867:444;3892:30;3889:1;3886:37;3867:444;;;3985:18;;3965:39;;4158:19;;4137:41;;4113:1;4096:19;;;;4273:20;;;;4057:2;4040:20;;;;4215:21;;;;3931:9;3867:444;;;3871:14;;;;;3167:1226;;;4362:20;;-1:-1:-1;;;4362:20:65;;;;;;;;;;;3167:1226;2398:2001;;;2103:2296;;;;;;;:::o;1337:135::-;1387:7;;1430:34;1463:1;548:2;1430:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:67:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:718;872:5;925:3;918:4;910:6;906:17;902:27;892:55;;943:1;940;933:12;892:55;979:6;966:20;1005:18;1042:2;1038;1035:10;1032:36;;;1048:18;;:::i;:::-;1123:2;1117:9;1091:2;1177:13;;-1:-1:-1;;1173:22:67;;;1197:2;1169:31;1165:40;1153:53;;;1221:18;;;1241:22;;;1218:46;1215:72;;;1267:18;;:::i;:::-;1307:10;1303:2;1296:22;1342:2;1334:6;1327:18;1388:3;1381:4;1376:2;1368:6;1364:15;1360:26;1357:35;1354:55;;;1405:1;1402;1395:12;1354:55;1469:2;1462:4;1454:6;1450:17;1443:4;1435:6;1431:17;1418:54;1516:1;1509:4;1504:2;1496:6;1492:15;1488:26;1481:37;1536:6;1527:15;;;;;;830:718;;;;:::o;1553:1001::-;1684:6;1692;1700;1708;1716;1724;1732;1785:3;1773:9;1764:7;1760:23;1756:33;1753:53;;;1802:1;1799;1792:12;1753:53;1825:23;;;-1:-1:-1;1895:2:67;1880:18;;1867:32;;-1:-1:-1;1949:2:67;1934:18;;1921:32;-1:-1:-1;;1982:43:67;;1972:54;;1962:82;;2040:1;2037;2030:12;1962:82;2063:5;-1:-1:-1;2115:2:67;2100:18;;2087:32;;-1:-1:-1;2170:3:67;2155:19;;2142:33;2194:18;2224:14;;;2221:34;;;2251:1;2248;2241:12;2221:34;2274:49;2315:7;2306:6;2295:9;2291:22;2274:49;:::i;:::-;2264:59;;2370:3;2359:9;2355:19;2342:33;2332:43;;2428:3;2417:9;2413:19;2400:33;2384:49;;2458:2;2448:8;2445:16;2442:36;;;2474:1;2471;2464:12;2442:36;;2497:51;2540:7;2529:8;2518:9;2514:24;2497:51;:::i;:::-;2487:61;;;1553:1001;;;;;;;;;;:::o;2741:222::-;2781:4;2809:1;2806;2803:8;2800:131;;;2853:10;2848:3;2844:20;2841:1;2834:31;2888:4;2885:1;2878:15;2916:4;2913:1;2906:15;2800:131;-1:-1:-1;2948:9:67;;2741:222::o;2968:127::-;3029:10;3024:3;3020:20;3017:1;3010:31;3060:4;3057:1;3050:15;3084:4;3081:1;3074:15;3462:1171;3768:4;3797:3;3827:6;3816:9;3809:25;3853:2;3891:6;3886:2;3875:9;3871:18;3864:34;3934:6;3929:2;3918:9;3914:18;3907:34;3993:26;3989:31;3981:6;3977:44;3972:2;3961:9;3957:18;3950:72;4059:6;4053:3;4042:9;4038:19;4031:35;4103:2;4097:3;4086:9;4082:19;4075:31;4135:6;4129:13;4178:6;4173:2;4162:9;4158:18;4151:34;4203:1;4194:10;;4213:141;4227:6;4224:1;4221:13;4213:141;;;4323:14;;;4319:23;;4313:30;4288:17;;;4307:3;4284:27;4277:67;4242:10;;;;4213:141;;;4372:6;4369:1;4366:13;4363:92;;;4443:1;4437:3;4428:6;4417:9;4413:22;4409:32;4402:43;4363:92;4558:3;4543:19;;4536:35;;;4516:2;4495:15;-1:-1:-1;;4491:29:67;4476:45;;4523:3;4472:55;;-1:-1:-1;4580:47:67;;-1:-1:-1;;4622:3:67;4607:19;;4599:6;-1:-1:-1;;;;;3419:31:67;3407:44;;3353:104;4580:47;3462:1171;;;;;;;;;;;:::o;4638:277::-;4705:6;4758:2;4746:9;4737:7;4733:23;4729:32;4726:52;;;4774:1;4771;4764:12;4726:52;4806:9;4800:16;4859:5;4852:13;4845:21;4838:5;4835:32;4825:60;;4881:1;4878;4871:12;4825:60;4904:5;4638:277;-1:-1:-1;;;4638:277:67:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x5345cf4a00d5ea9b89e8133698c7bf3eda3728a858a22cbbeb151bfd88a5122d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c461760571bf1aac1038d4df57e40b38c87420471f80834c4b5d0f78e04d3de5\",\"dweb:/ipfs/QmUWh9Gk4QqVc1P7bP8sfuPEKwJSbZwLCFn3j8tgXBW72S\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xb337a4c05daea96d77a83d15c585fc26e50069f2738fc126ce1a6d3a5e3be103\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://34f01073396bf26f5ab1101298988d2aaf9821ee24915ebec53d2df00ee17a14\",\"dweb:/ipfs/QmbS6UVTDV91UZierYjf1yWGca5tqwg1BbKmCj2zs6pS5u\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x5345cf4a00d5ea9b89e8133698c7bf3eda3728a858a22cbbeb151bfd88a5122d","urls":["bzz-raw://c461760571bf1aac1038d4df57e40b38c87420471f80834c4b5d0f78e04d3de5","dweb:/ipfs/QmUWh9Gk4QqVc1P7bP8sfuPEKwJSbZwLCFn3j8tgXBW72S"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"src/MinaBridge.sol":{"keccak256":"0xb337a4c05daea96d77a83d15c585fc26e50069f2738fc126ce1a6d3a5e3be103","urls":["bzz-raw://34f01073396bf26f5ab1101298988d2aaf9821ee24915ebec53d2df00ee17a14","dweb:/ipfs/QmbS6UVTDV91UZierYjf1yWGca5tqwg1BbKmCj2zs6pS5u"],"license":"UNLICENSED"}},"version":1},"id":65} \ No newline at end of file From 34de880c28ae3b3ba7807341805c2dfa32e0eb09 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Tue, 24 Sep 2024 18:55:10 -0300 Subject: [PATCH 32/46] Update Aligned to 0.7.0 (#341) * [WIP] Update Aligned to 0.7.0 We must wait until Aligned uploads the release for 0.7.0. Once it's uploaded we need to add a batcher payment service arg to the `updateChain` call in the Aligned polling service. * Update Aligned to 0.7.0 * Update Aligned branch * Update Aligned and Bridge contracts * Update Aligned Foundry submodule --- contract/lib/aligned_layer | 2 +- contract/src/MinaAccountValidation.sol | 39 ++++++++++++++------------ contract/src/MinaBridge.sol | 9 +++--- contract_deployer/Cargo.lock | 10 +++---- contract_deployer/Cargo.toml | 2 +- core/Cargo.lock | 10 +++---- core/Cargo.toml | 2 +- core/abi/MinaAccountValidation.json | 2 +- core/abi/MinaBridge.json | 2 +- core/src/aligned_polling_service.rs | 4 +++ core/src/main.rs | 2 ++ core/src/smart_contract_utility.rs | 26 +++++++++++++---- core/src/utils/constants.rs | 5 ++-- 13 files changed, 70 insertions(+), 45 deletions(-) diff --git a/contract/lib/aligned_layer b/contract/lib/aligned_layer index 7a2b5556..39607b40 160000 --- a/contract/lib/aligned_layer +++ b/contract/lib/aligned_layer @@ -1 +1 @@ -Subproject commit 7a2b55567656308606fba20db3cef69dcd433926 +Subproject commit 39607b4054fe7916d15cd10790a9fe6f8ce3e581 diff --git a/contract/src/MinaAccountValidation.sol b/contract/src/MinaAccountValidation.sol index 75f54e40..c3de9c73 100644 --- a/contract/src/MinaAccountValidation.sol +++ b/contract/src/MinaAccountValidation.sol @@ -6,6 +6,17 @@ import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; error AccountIsNotVerified(); contract MinaAccountValidation { + struct AlignedArgs { + bytes32 proofCommitment; + bytes32 provingSystemAuxDataCommitment; + bytes20 proofGeneratorAddr; + bytes32 batchMerkleRoot; + bytes merkleProof; + uint256 verificationDataBatchIndex; + bytes pubInput; + address batcherPaymentService; + } + /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; @@ -13,28 +24,20 @@ contract MinaAccountValidation { aligned = AlignedLayerServiceManager(_alignedServiceAddr); } - function validateAccount( - bytes32 proofCommitment, - bytes32 provingSystemAuxDataCommitment, - bytes20 proofGeneratorAddr, - bytes32 batchMerkleRoot, - bytes memory merkleProof, - uint256 verificationDataBatchIndex, - bytes calldata pubInput - ) external view returns (Account memory) { - bytes calldata encodedAccount = pubInput[32 + 8:]; + function validateAccount(AlignedArgs calldata args) external view returns (Account memory) { + bytes calldata encodedAccount = args.pubInput[32 + 8:]; - bytes32 pubInputCommitment = keccak256(pubInput); + bytes32 pubInputCommitment = keccak256(args.pubInput); bool isAccountVerified = aligned.verifyBatchInclusion( - proofCommitment, + args.proofCommitment, pubInputCommitment, - provingSystemAuxDataCommitment, - proofGeneratorAddr, - batchMerkleRoot, - merkleProof, - verificationDataBatchIndex, - address(0) + args.provingSystemAuxDataCommitment, + args.proofGeneratorAddr, + args.batchMerkleRoot, + args.merkleProof, + args.verificationDataBatchIndex, + args.batcherPaymentService ); if (isAccountVerified) { diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index 14029cdf..a9025a4c 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; -error NewStateIsNotValid(); -error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); +error NewStateIsNotValid(); // 114602f0 +error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); // bbd80128 error AccountIsNotValid(bytes32 accountIdHash); /// @title Mina to Ethereum Bridge's smart contract. @@ -55,7 +55,8 @@ contract MinaBridge { bytes32 batchMerkleRoot, bytes memory merkleProof, uint256 verificationDataBatchIndex, - bytes memory pubInput + bytes memory pubInput, + address batcherPaymentService ) external { bytes32 pubInputBridgeTipStateHash; assembly { @@ -76,7 +77,7 @@ contract MinaBridge { batchMerkleRoot, merkleProof, verificationDataBatchIndex, - address(0) + batcherPaymentService ); if (isNewStateVerified) { diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index ee453281..fb476716 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#7a2b55567656308606fba20db3cef69dcd433926" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#7853f734afdacc51750728cb838d0a35599d7245" dependencies = [ "ciborium", "ethers", @@ -123,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68b94c159bcc2ca5f758b8663d7b00fc7c5e40569984595ddf2221b0f7f7f6e" +checksum = "abf770dad29577cd3580f3dd09005799224a912b8cdfdd6dc04d030d42b3df4e" dependencies = [ "num_enum", "strum 0.26.3", @@ -6079,9 +6079,9 @@ dependencies = [ [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unreachable" diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index c3936919..777c466b 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -16,7 +16,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_7_for_real" } serde = { version = "1.0", features = ["derive"] } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } bincode = "1.3.3" diff --git a/core/Cargo.lock b/core/Cargo.lock index 2809311a..074396a2 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=mina#7a2b55567656308606fba20db3cef69dcd433926" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#2fe0dacb2faeaed4150f70de5e0c6422fbec2fa6" dependencies = [ "ciborium", "ethers", @@ -123,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68b94c159bcc2ca5f758b8663d7b00fc7c5e40569984595ddf2221b0f7f7f6e" +checksum = "abf770dad29577cd3580f3dd09005799224a912b8cdfdd6dc04d030d42b3df4e" dependencies = [ "num_enum", "strum 0.26.3", @@ -6060,9 +6060,9 @@ dependencies = [ [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unreachable" diff --git a/core/Cargo.toml b/core/Cargo.toml index c10d7ec1..141e078e 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -22,7 +22,7 @@ ark-poly = { version = "0.3.0", features = ["parallel"] } ark-serialize = "0.3.0" mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "mina" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_7_for_real" } ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json index 08c45984..672b290c 100644 --- a/core/abi/MinaAccountValidation.json +++ b/core/abi/MinaAccountValidation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"AccountIsNotVerified","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61134f806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105ac565b610059565b6040516100509190610a2d565b60405180910390f35b610061610167565b3660006100718460288188610b5f565b9150915060008585604051610087929190610b89565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b03166306045a918e848f8f8f8f8f60006040518963ffffffff1660e01b81526004016100e2989796959493929190610b99565b602060405180830381865afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610c11565b9050801561014257610137838501856111f9565b94505050505061015b565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e0860185905286519081018752848152928301849052948201839052810182905292830152610100810191909152610120810161026a604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161027761027c565b905290565b6040518060e0016040528061028f6102c9565b815260200161029c6102e8565b8152600060208201526040016102b0610307565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610277610325565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103396103d0565b8152602001610346610409565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103df5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103df565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046d5761046d610435565b60405290565b6040516101c081016001600160401b038111828210171561046d5761046d610435565b604051606081016001600160401b038111828210171561046d5761046d610435565b60405161010081016001600160401b038111828210171561046d5761046d610435565b60405160e081016001600160401b038111828210171561046d5761046d610435565b60405161016081016001600160401b038111828210171561046d5761046d610435565b600082601f83011261053157600080fd5b81356001600160401b038082111561054b5761054b610435565b604051601f8301601f19908116603f0116810190828211818310171561057357610573610435565b8160405283815286602085880101111561058c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c857600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f357600080fd5b95506060890135945060808901356001600160401b038082111561061657600080fd5b6106228c838d01610520565b955060a08b0135945060c08b013591508082111561063f57600080fd5b818b0191508b601f83011261065357600080fd5b81358181111561066257600080fd5b8c602082850101111561067457600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b357602081850181015186830182015201610697565b818111156106c5576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60058110610700576107006106da565b9052565b61070f8282516106f0565b602081015161072160208401826106f0565b50604081015161073460408401826106f0565b50606081015161074760608401826106f0565b50608081015161075a60808401826106f0565b5060a081015161076d60a08401826106f0565b5060c081015161078060c08401826106f0565b5060e081015161079860e084018263ffffffff169052565b50610100808201516107ac828501826106f0565b5050610120808201516107c1828501826106f0565b5050610140808201516107d6828501826106f0565b5050610160808201516107eb828501826106f0565b505061018080820151610800828501826106f0565b50506101a080820151610815828501826106f0565b50505050565b60038110610700576107006106da565b8060005b600f8110156108155761084d84835180518252602090810151910152565b604093909301926020919091019060010161082f565b61086e82825161081b565b6020808201516108808285018261081b565b50604082810151805160008684015b60078210156108bf576108ad81845180518252602090810151910152565b9185019160019190910190840161088f565b50505091820151916108d561020086018461082b565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610815578151845260209384019390910190600101610967565b80516000906109609084835b60088110156109b1578251825260209283019290910190600101610992565b50505060208301516109c7610100860182610863565b50604083015163ffffffff1661084085015260608301516109ec610860860182610963565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a248286018261068d565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a6b6103e085018361068d565b91506060850151610a8760a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac481870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b39610200880184610704565b870151868503601f1901848801529150610b5590508382610986565b9695505050505050565b60008085851115610b6f57600080fd5b83861115610b7c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a0840152610bda8184018761068d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b8015158114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8151610c2e81610c00565b9392505050565b8035610c4081610c00565b919050565b600060408284031215610c5757600080fd5b610c5f61044b565b9050813581526020820135610c7381610c00565b602082015292915050565b80356001600160401b0381168114610c4057600080fd5b803563ffffffff81168114610c4057600080fd5b600060a08284031215610cbb57600080fd5b60405160a081018181106001600160401b0382111715610cdd57610cdd610435565b604052905080610cec83610c7e565b8152610cfa60208401610c95565b6020820152610d0b60408401610c7e565b6040820152610d1c60608401610c95565b6060820152610d2d60808401610c7e565b60808201525092915050565b803560058110610c4057600080fd5b60006101c08284031215610d5b57600080fd5b610d63610473565b9050610d6e82610d39565b8152610d7c60208301610d39565b6020820152610d8d60408301610d39565b6040820152610d9e60608301610d39565b6060820152610daf60808301610d39565b6080820152610dc060a08301610d39565b60a0820152610dd160c08301610d39565b60c0820152610de260e08301610c95565b60e0820152610100610df5818401610d39565b90820152610120610e07838201610d39565b90820152610140610e19838201610d39565b90820152610160610e2b838201610d39565b90820152610180610e3d838201610d39565b908201526101a0610e4f838201610d39565b9082015292915050565b600082601f830112610e6a57600080fd5b6040516101008082018281106001600160401b0382111715610e8e57610e8e610435565b60405283018185821115610ea157600080fd5b845b82811015610ebb578035825260209182019101610ea3565b509195945050505050565b803560038110610c4057600080fd5b600060408284031215610ee757600080fd5b610eef61044b565b9050813581526020820135602082015292915050565b600082601f830112610f1657600080fd5b6040805160e081018181106001600160401b0382111715610f3957610f39610435565b8252806101c0850186811115610f4e57600080fd5b855b81811015610f7157610f628882610ed5565b83526020909201918401610f50565b50919695505050505050565b600082601f830112610f8e57600080fd5b604080516101e081018181106001600160401b0382111715610fb257610fb2610435565b8252806103c0850186811115610fc757600080fd5b855b81811015610f7157610fdb8882610ed5565b83526020909201918401610fc9565b6000818303610740811215610ffe57600080fd5b611006610496565b915061101183610ec6565b825261101f60208401610ec6565b602083015261070080603f198301121561103857600080fd5b6110406104b8565b915061104f8560408601610f05565b825261105f856102008601610f7d565b6020830152611072856105c08601610ed5565b6040830152611085856106008601610ed5565b6060830152611098856106408601610ed5565b60808301526110ab856106808601610ed5565b60a08301526110be856106c08601610ed5565b60c08301526110cf85828601610ed5565b60e083015250604082015292915050565b600082601f8301126110f157600080fd5b60405160a081018181106001600160401b038211171561111357611113610435565b6040528060a084018581111561112857600080fd5b845b81811015610ebb57803583526020928301920161112a565b6000610960828403121561115557600080fd5b61115d6104db565b90506111698383610e59565b8152611179836101008401610fea565b602082015261118b6108408301610c95565b604082015261119e8361086084016110e0565b60608201526111b06109008301610c95565b60808201526111c26109208301610c35565b60a08201526109408201356001600160401b038111156111e157600080fd5b6111ed84828501610520565b60c08301525092915050565b60006020828403121561120b57600080fd5b81356001600160401b038082111561122257600080fd5b908301906103c0828603121561123757600080fd5b61123f6104fd565b6112498684610c45565b81526040830135602082015260608301358281111561126757600080fd5b61127387828601610520565b60408301525061128560808401610c7e565b606082015261129660a08401610c95565b608082015260c083013560a08201526112b28660e08501610c45565b60c08201526101208084013560e08301526101406112d288828701610ca9565b6101008401526112e6886101e08701610d48565b828401526103a08501359150838211156112ff57600080fd5b61130b88838701611142565b90830152509594505050505056fea2646970667358221220cfd5c1ec1bbcb05bb24264ce63ee1bbd9517c996ae09f85fc78461d6174475e664736f6c634300080c0033","sourceMap":"171:3299:64:-:0;;;319:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:7;:57;;-1:-1:-1;;;;;;378:57:64;-1:-1:-1;;;;;378:57:64;;;;;;;;;;171:3299;;14:298:67;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:67;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:67:o;:::-;171:3299:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f4c7c1fa14610030575b600080fd5b61004361003e3660046105ac565b610059565b6040516100509190610a2d565b60405180910390f35b610061610167565b3660006100718460288188610b5f565b9150915060008585604051610087929190610b89565b6040518091039020905060008060009054906101000a90046001600160a01b03166001600160a01b03166306045a918e848f8f8f8f8f60006040518963ffffffff1660e01b81526004016100e2989796959493929190610b99565b602060405180830381865afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610c11565b9050801561014257610137838501856111f9565b94505050505061015b565b604051634de35c5f60e11b815260040160405180910390fd5b98975050505050505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e0860185905286519081018752848152928301849052948201839052810182905292830152610100810191909152610120810161026a604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161027761027c565b905290565b6040518060e0016040528061028f6102c9565b815260200161029c6102e8565b8152600060208201526040016102b0610307565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b6040805160608101825260008082526020820152908101610277610325565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806103396103d0565b8152602001610346610409565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816103df5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e602082016103df565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561046d5761046d610435565b60405290565b6040516101c081016001600160401b038111828210171561046d5761046d610435565b604051606081016001600160401b038111828210171561046d5761046d610435565b60405161010081016001600160401b038111828210171561046d5761046d610435565b60405160e081016001600160401b038111828210171561046d5761046d610435565b60405161016081016001600160401b038111828210171561046d5761046d610435565b600082601f83011261053157600080fd5b81356001600160401b038082111561054b5761054b610435565b604051601f8301601f19908116603f0116810190828211818310171561057357610573610435565b8160405283815286602085880101111561058c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060e0898b0312156105c857600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146105f357600080fd5b95506060890135945060808901356001600160401b038082111561061657600080fd5b6106228c838d01610520565b955060a08b0135945060c08b013591508082111561063f57600080fd5b818b0191508b601f83011261065357600080fd5b81358181111561066257600080fd5b8c602082850101111561067457600080fd5b6020830194508093505050509295985092959890939650565b6000815180845260005b818110156106b357602081850181015186830182015201610697565b818111156106c5576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60058110610700576107006106da565b9052565b61070f8282516106f0565b602081015161072160208401826106f0565b50604081015161073460408401826106f0565b50606081015161074760608401826106f0565b50608081015161075a60808401826106f0565b5060a081015161076d60a08401826106f0565b5060c081015161078060c08401826106f0565b5060e081015161079860e084018263ffffffff169052565b50610100808201516107ac828501826106f0565b5050610120808201516107c1828501826106f0565b5050610140808201516107d6828501826106f0565b5050610160808201516107eb828501826106f0565b505061018080820151610800828501826106f0565b50506101a080820151610815828501826106f0565b50505050565b60038110610700576107006106da565b8060005b600f8110156108155761084d84835180518252602090810151910152565b604093909301926020919091019060010161082f565b61086e82825161081b565b6020808201516108808285018261081b565b50604082810151805160008684015b60078210156108bf576108ad81845180518252602090810151910152565b9185019160019190910190840161088f565b50505091820151916108d561020086018461082b565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b6005811015610815578151845260209384019390910190600101610967565b80516000906109609084835b60088110156109b1578251825260209283019290910190600101610992565b50505060208301516109c7610100860182610863565b50604083015163ffffffff1661084085015260608301516109ec610860860182610963565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610a248286018261068d565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a6b6103e085018361068d565b91506060850151610a8760a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610ac481870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610b39610200880184610704565b870151868503601f1901848801529150610b5590508382610986565b9695505050505050565b60008085851115610b6f57600080fd5b83861115610b7c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006101008a83528960208401528860408401526bffffffffffffffffffffffff19881660608401528660808401528060a0840152610bda8184018761068d565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b8015158114610c0e57600080fd5b50565b600060208284031215610c2357600080fd5b8151610c2e81610c00565b9392505050565b8035610c4081610c00565b919050565b600060408284031215610c5757600080fd5b610c5f61044b565b9050813581526020820135610c7381610c00565b602082015292915050565b80356001600160401b0381168114610c4057600080fd5b803563ffffffff81168114610c4057600080fd5b600060a08284031215610cbb57600080fd5b60405160a081018181106001600160401b0382111715610cdd57610cdd610435565b604052905080610cec83610c7e565b8152610cfa60208401610c95565b6020820152610d0b60408401610c7e565b6040820152610d1c60608401610c95565b6060820152610d2d60808401610c7e565b60808201525092915050565b803560058110610c4057600080fd5b60006101c08284031215610d5b57600080fd5b610d63610473565b9050610d6e82610d39565b8152610d7c60208301610d39565b6020820152610d8d60408301610d39565b6040820152610d9e60608301610d39565b6060820152610daf60808301610d39565b6080820152610dc060a08301610d39565b60a0820152610dd160c08301610d39565b60c0820152610de260e08301610c95565b60e0820152610100610df5818401610d39565b90820152610120610e07838201610d39565b90820152610140610e19838201610d39565b90820152610160610e2b838201610d39565b90820152610180610e3d838201610d39565b908201526101a0610e4f838201610d39565b9082015292915050565b600082601f830112610e6a57600080fd5b6040516101008082018281106001600160401b0382111715610e8e57610e8e610435565b60405283018185821115610ea157600080fd5b845b82811015610ebb578035825260209182019101610ea3565b509195945050505050565b803560038110610c4057600080fd5b600060408284031215610ee757600080fd5b610eef61044b565b9050813581526020820135602082015292915050565b600082601f830112610f1657600080fd5b6040805160e081018181106001600160401b0382111715610f3957610f39610435565b8252806101c0850186811115610f4e57600080fd5b855b81811015610f7157610f628882610ed5565b83526020909201918401610f50565b50919695505050505050565b600082601f830112610f8e57600080fd5b604080516101e081018181106001600160401b0382111715610fb257610fb2610435565b8252806103c0850186811115610fc757600080fd5b855b81811015610f7157610fdb8882610ed5565b83526020909201918401610fc9565b6000818303610740811215610ffe57600080fd5b611006610496565b915061101183610ec6565b825261101f60208401610ec6565b602083015261070080603f198301121561103857600080fd5b6110406104b8565b915061104f8560408601610f05565b825261105f856102008601610f7d565b6020830152611072856105c08601610ed5565b6040830152611085856106008601610ed5565b6060830152611098856106408601610ed5565b60808301526110ab856106808601610ed5565b60a08301526110be856106c08601610ed5565b60c08301526110cf85828601610ed5565b60e083015250604082015292915050565b600082601f8301126110f157600080fd5b60405160a081018181106001600160401b038211171561111357611113610435565b6040528060a084018581111561112857600080fd5b845b81811015610ebb57803583526020928301920161112a565b6000610960828403121561115557600080fd5b61115d6104db565b90506111698383610e59565b8152611179836101008401610fea565b602082015261118b6108408301610c95565b604082015261119e8361086084016110e0565b60608201526111b06109008301610c95565b60808201526111c26109208301610c35565b60a08201526109408201356001600160401b038111156111e157600080fd5b6111ed84828501610520565b60c08301525092915050565b60006020828403121561120b57600080fd5b81356001600160401b038082111561122257600080fd5b908301906103c0828603121561123757600080fd5b61123f6104fd565b6112498684610c45565b81526040830135602082015260608301358281111561126757600080fd5b61127387828601610520565b60408301525061128560808401610c7e565b606082015261129660a08401610c95565b608082015260c083013560a08201526112b28660e08501610c45565b60c08201526101208084013560e08301526101406112d288828701610ca9565b6101008401526112e6886101e08701610d48565b828401526103a08501359150838211156112ff57600080fd5b61130b88838701611142565b90830152509594505050505056fea2646970667358221220cfd5c1ec1bbcb05bb24264ce63ee1bbd9517c996ae09f85fc78461d6174475e664736f6c634300080c0033","sourceMap":"171:3299:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:947;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;763:14;;:::i;:::-;789:29;;821:17;:8;830:6;821:8;;:17;:::i;:::-;789:49;;;;849:26;888:8;;878:19;;;;;;;:::i;:::-;;;;;;;;849:48;;908:22;933:7;;;;;;;;;-1:-1:-1;;;;;933:7:64;-1:-1:-1;;;;;933:28:64;;975:15;1004:18;1036:30;1080:18;1112:15;1141:11;1166:26;1214:1;933:293;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;908:318;;1241:17;1237:152;;;1281:37;;;;1292:14;1281:37;:::i;:::-;1274:44;;;;;;;;1237:152;1356:22;;-1:-1:-1;;;1356:22:64;;;;;;;;;;;448:947;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:127:67;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:67;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:250::-;475:2;469:9;517:6;505:19;;-1:-1:-1;;;;;539:34:67;;575:22;;;536:62;533:88;;;601:18;;:::i;663:253::-;735:2;729:9;777:4;765:17;;-1:-1:-1;;;;;797:34:67;;833:22;;;794:62;791:88;;;859:18;;:::i;921:255::-;993:2;987:9;1035:6;1023:19;;-1:-1:-1;;;;;1057:34:67;;1093:22;;;1054:62;1051:88;;;1119:18;;:::i;1181:253::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:67;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:67;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:67;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:67;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:1251::-;2555:6;2563;2571;2579;2587;2595;2603;2611;2664:3;2652:9;2643:7;2639:23;2635:33;2632:53;;;2681:1;2678;2671:12;2632:53;2704:23;;;-1:-1:-1;2774:2:67;2759:18;;2746:32;;-1:-1:-1;2828:2:67;2813:18;;2800:32;-1:-1:-1;;2861:43:67;;2851:54;;2841:82;;2919:1;2916;2909:12;2841:82;2942:5;-1:-1:-1;2994:2:67;2979:18;;2966:32;;-1:-1:-1;3049:3:67;3034:19;;3021:33;-1:-1:-1;;;;;3103:14:67;;;3100:34;;;3130:1;3127;3120:12;3100:34;3153:49;3194:7;3185:6;3174:9;3170:22;3153:49;:::i;:::-;3143:59;;3249:3;3238:9;3234:19;3221:33;3211:43;;3307:3;3296:9;3292:19;3279:33;3263:49;;3337:2;3327:8;3324:16;3321:36;;;3353:1;3350;3343:12;3321:36;3391:8;3380:9;3376:24;3366:34;;3438:7;3431:4;3427:2;3423:13;3419:27;3409:55;;3460:1;3457;3450:12;3409:55;3500:2;3487:16;3526:2;3518:6;3515:14;3512:34;;;3542:1;3539;3532:12;3512:34;3587:7;3582:2;3573:6;3569:2;3565:15;3561:24;3558:37;3555:57;;;3608:1;3605;3598:12;3555:57;3639:2;3635;3631:11;3621:21;;3661:6;3651:16;;;;;2422:1251;;;;;;;;;;;:::o;3953:472::-;3995:3;4033:5;4027:12;4060:6;4055:3;4048:19;4085:1;4095:162;4109:6;4106:1;4103:13;4095:162;;;4171:4;4227:13;;;4223:22;;4217:29;4199:11;;;4195:20;;4188:59;4124:12;4095:162;;;4275:6;4272:1;4269:13;4266:87;;;4341:1;4334:4;4325:6;4320:3;4316:16;4312:27;4305:38;4266:87;-1:-1:-1;4407:2:67;4386:15;-1:-1:-1;;4382:29:67;4373:39;;;;4414:4;4369:50;;3953:472;-1:-1:-1;;3953:472:67:o;5108:127::-;5169:10;5164:3;5160:20;5157:1;5150:31;5200:4;5197:1;5190:15;5224:4;5221:1;5214:15;5240:143;5324:1;5317:5;5314:12;5304:46;;5330:18;;:::i;:::-;5359;;5240:143::o;5388:1834::-;5453:47;5496:3;5488:5;5482:12;5453:47;:::i;:::-;5546:4;5539:5;5535:16;5529:23;5561:58;5613:4;5608:3;5604:14;5590:12;5561:58;:::i;:::-;;5667:4;5660:5;5656:16;5650:23;5682:60;5736:4;5731:3;5727:14;5711;5682:60;:::i;:::-;;5790:4;5783:5;5779:16;5773:23;5805:60;5859:4;5854:3;5850:14;5834;5805:60;:::i;:::-;;5913:4;5906:5;5902:16;5896:23;5928:60;5982:4;5977:3;5973:14;5957;5928:60;:::i;:::-;;6036:4;6029:5;6025:16;6019:23;6051:60;6105:4;6100:3;6096:14;6080;6051:60;:::i;:::-;;6159:4;6152:5;6148:16;6142:23;6174:60;6228:4;6223:3;6219:14;6203;6174:60;:::i;:::-;;6282:4;6275:5;6271:16;6265:23;6297:49;6340:4;6335:3;6331:14;6315;4613:10;4602:22;4590:35;;4537:94;6297:49;;6365:6;6419:2;6412:5;6408:14;6402:21;6432:58;6486:2;6481:3;6477:12;6461:14;6432:58;:::i;:::-;;;6509:6;6563:2;6556:5;6552:14;6546:21;6576:58;6630:2;6625:3;6621:12;6605:14;6576:58;:::i;:::-;;;6653:6;6707:2;6700:5;6696:14;6690:21;6720:58;6774:2;6769:3;6765:12;6749:14;6720:58;:::i;:::-;;;6797:6;6852:2;6845:5;6841:14;6835:21;6865:59;6920:2;6915:3;6911:12;6894:15;6865:59;:::i;:::-;;;6943:6;6998:2;6991:5;6987:14;6981:21;7011:59;7066:2;7061:3;7057:12;7040:15;7011:59;:::i;:::-;;;7089:6;7144:2;7137:5;7133:14;7127:21;7157:59;7212:2;7207:3;7203:12;7186:15;7157:59;:::i;:::-;;;5388:1834;;:::o;7227:145::-;7313:1;7306:5;7303:12;7293:46;;7319:18;;:::i;7533:335::-;7636:5;7659:1;7669:193;7683:4;7680:1;7677:11;7669:193;;;7730:48;7774:3;7765:6;7759:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;7730:48;7807:4;7798:14;;;;;7847:4;7835:17;;;;;7703:1;7696:9;7669:193;;7873:1627;7942:49;7987:3;7979:5;7973:12;7942:49;:::i;:::-;8010:4;8060:2;8053:5;8049:14;8043:21;8073:58;8127:2;8122:3;8118:12;8104;8073:58;:::i;:::-;-1:-1:-1;8150:4:67;8191:14;;;8185:21;8256;;8364:1;8225:12;;;8374:195;8388:4;8385:1;8382:11;8374:195;;;8435:50;8479:5;8470:6;8464:13;7453:12;;7441:25;;7515:4;7504:16;;;7498:23;7482:14;;7475:47;7377:151;8435:50;8544:15;;;;8408:1;8401:9;;;;;8507:14;;8374:195;;;-1:-1:-1;;;8606:23:67;;;8600:30;;8639:65;8699:3;8690:13;;8600:30;8639:65;:::i;:::-;8741:23;;;8735:30;7453:12;;8828:4;8819:14;;7441:25;7515:4;7504:16;;;7498:23;7482:14;;;7475:47;8891:4;8871:25;;8865:32;7453:12;;8960:4;8951:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9023:4;9003:25;;8997:32;7453:12;;9092:4;9083:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9155:4;9135:25;;9129:32;7453:12;;9224:4;9215:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9287:4;9267:25;;9261:32;7453:12;;9356:4;9347:14;;7441:25;7504:16;;7498:23;7482:14;;;7475:47;9419:4;9399:25;;;9393:32;7453:12;;9488:4;9479:14;;7441:25;7504:16;7498:23;7482:14;;;;7475:47;;;;-1:-1:-1;;7873:1627:67:o;9505:326::-;9598:5;9621:1;9631:194;9645:4;9642:1;9639:11;9631:194;;;9704:13;;9692:26;;9741:4;9765:12;;;;9800:15;;;;9665:1;9658:9;9631:194;;9836:1166;9944:12;;9891:3;;9919:6;;9978:3;9891;10055:200;10069:4;10066:1;10063:11;10055:200;;;10130:13;;10116:28;;10167:4;10230:15;;;;10193:14;;;;10089:1;10082:9;10055:200;;;10059:3;;;10301:4;10294:5;10290:16;10284:23;10316:65;10373:6;10368:3;10364:16;10350:12;10316:65;:::i;:::-;-1:-1:-1;10429:4:67;10418:16;;10412:23;4613:10;4602:22;10487:6;10478:16;;4590:35;10543:4;10532:16;;10526:23;10558:58;10608:6;10599:16;;10526:23;10558:58;:::i;:::-;-1:-1:-1;10664:4:67;10653:16;;10647:23;4613:10;4602:22;10722:6;10713:16;;4590:35;10778:4;10767:16;;10761:23;3748:13;3741:21;10834:6;10825:16;;3729:34;10890:4;10879:16;;10873:23;10921:6;10912:16;;10905:28;;;10949:47;10983:12;;;10873:23;10949:47;:::i;:::-;10942:54;9836:1166;-1:-1:-1;;;;;9836:1166:67:o;11007:1526::-;11188:2;11170:21;;;11236:13;;3857:12;;11251:18;;;3845:25;3922:16;3916:23;3909:31;3902:39;3886:14;;;3879:63;11324:2;11316:6;11312:15;11306:22;11301:2;11290:9;11286:18;11279:50;11151:4;11376;11368:6;11364:17;11358:24;11401:6;11444:2;11438:3;11427:9;11423:19;11416:31;11470:52;11517:3;11506:9;11502:19;11488:12;11470:52;:::i;:::-;11456:66;;11571:2;11563:6;11559:15;11553:22;11584:54;11633:3;11622:9;11618:19;11602:14;-1:-1:-1;;;;;4495:30:67;4483:43;;4430:102;11584:54;-1:-1:-1;11687:3:67;11675:16;;11669:23;4613:10;4602:22;;11750:3;11735:19;;4590:35;11701:54;11810:3;11802:6;11798:16;11792:23;11786:3;11775:9;11771:19;11764:52;11865:3;11857:6;11853:16;11847:23;11889:3;11901:71;11968:2;11957:9;11953:18;11937:14;3857:12;;3845:25;;3933:4;3922:16;;;3916:23;3909:31;3902:39;3886:14;;3879:63;3774:174;11901:71;12009:3;11997:16;;11991:23;12033:3;12052:18;;;12045:30;;;;12112:15;;;12106:22;4749:12;;-1:-1:-1;;;;;4745:21:67;;;12193:3;12178:19;;4733:34;4813:4;4802:16;;4796:23;4838:10;4880:21;;;4864:14;;;4857:45;4955:4;4944:16;;4938:23;4934:32;;4918:14;;;4911:56;5020:4;5009:16;;5003:23;4999:32;4983:14;;;4976:56;5085:4;5074:16;;;5068:23;5064:32;5048:14;;;5041:56;12247:6;12235:19;;12229:26;;-1:-1:-1;12264:66:67;12325:3;12310:19;;12229:26;12264:66;:::i;:::-;12367:15;;12361:22;12423;;;-1:-1:-1;;12419:36:67;12399:18;;;12392:64;12361:22;-1:-1:-1;12473:54:67;;-1:-1:-1;12427:6:67;12361:22;12473:54;:::i;:::-;12465:62;11007:1526;-1:-1:-1;;;;;;11007:1526:67:o;12538:331::-;12643:9;12654;12696:8;12684:10;12681:24;12678:44;;;12718:1;12715;12708:12;12678:44;12747:6;12737:8;12734:20;12731:40;;;12767:1;12764;12757:12;12731:40;-1:-1:-1;;12793:23:67;;;12838:25;;;;;-1:-1:-1;12538:331:67:o;12874:271::-;13057:6;13049;13044:3;13031:33;13013:3;13083:16;;13108:13;;;13083:16;12874:271;-1:-1:-1;12874:271:67:o;13150:805::-;13456:4;13485:3;13515:6;13504:9;13497:25;13558:6;13553:2;13542:9;13538:18;13531:34;13601:6;13596:2;13585:9;13581:18;13574:34;13660:26;13656:31;13648:6;13644:44;13639:2;13628:9;13624:18;13617:72;13726:6;13720:3;13709:9;13705:19;13698:35;13770:2;13764:3;13753:9;13749:19;13742:31;13790:45;13831:2;13820:9;13816:18;13808:6;13790:45;:::i;:::-;13866:3;13851:19;;13844:35;;;;-1:-1:-1;;;;;;;13916:32:67;;;;13910:3;13895:19;;;13888:61;13782:53;13150:805;-1:-1:-1;;;;;;13150:805:67:o;13960:118::-;14046:5;14039:13;14032:21;14025:5;14022:32;14012:60;;14068:1;14065;14058:12;14012:60;13960:118;:::o;14083:245::-;14150:6;14203:2;14191:9;14182:7;14178:23;14174:32;14171:52;;;14219:1;14216;14209:12;14171:52;14251:9;14245:16;14270:28;14292:5;14270:28;:::i;:::-;14317:5;14083:245;-1:-1:-1;;;14083:245:67:o;14333:128::-;14398:20;;14427:28;14398:20;14427:28;:::i;:::-;14333:128;;;:::o;14466:362::-;14530:5;14578:4;14566:9;14561:3;14557:19;14553:30;14550:50;;;14596:1;14593;14586:12;14550:50;14618:22;;:::i;:::-;14609:31;;14676:9;14663:23;14656:5;14649:38;14739:2;14728:9;14724:18;14711:32;14752:30;14774:7;14752:30;:::i;:::-;14809:2;14798:14;;14791:31;14802:5;14466:362;-1:-1:-1;;14466:362:67:o;14833:171::-;14900:20;;-1:-1:-1;;;;;14949:30:67;;14939:41;;14929:69;;14994:1;14991;14984:12;15009:163;15076:20;;15136:10;15125:22;;15115:33;;15105:61;;15162:1;15159;15152:12;15177:696;15230:5;15278:4;15266:9;15261:3;15257:19;15253:30;15250:50;;;15296:1;15293;15286:12;15250:50;15329:2;15323:9;15371:4;15363:6;15359:17;15442:6;15430:10;15427:22;-1:-1:-1;;;;;15394:10:67;15391:34;15388:62;15385:88;;;15453:18;;:::i;:::-;15489:2;15482:22;15522:6;-1:-1:-1;15522:6:67;15552:28;15570:9;15552:28;:::i;:::-;15544:6;15537:44;15614:37;15647:2;15636:9;15632:18;15614:37;:::i;:::-;15609:2;15601:6;15597:15;15590:62;15685:37;15718:2;15707:9;15703:18;15685:37;:::i;:::-;15680:2;15672:6;15668:15;15661:62;15756:37;15789:2;15778:9;15774:18;15756:37;:::i;:::-;15751:2;15743:6;15739:15;15732:62;15828:38;15861:3;15850:9;15846:19;15828:38;:::i;:::-;15822:3;15814:6;15810:16;15803:64;;15177:696;;;;:::o;15878:153::-;15956:20;;16005:1;15995:12;;15985:40;;16021:1;16018;16011:12;16036:1416;16094:5;16142:6;16130:9;16125:3;16121:19;16117:32;16114:52;;;16162:1;16159;16152:12;16114:52;16184:17;;:::i;:::-;16175:26;;16224:39;16253:9;16224:39;:::i;:::-;16217:5;16210:54;16296:48;16340:2;16329:9;16325:18;16296:48;:::i;:::-;16291:2;16284:5;16280:14;16273:72;16377:48;16421:2;16410:9;16406:18;16377:48;:::i;:::-;16372:2;16365:5;16361:14;16354:72;16458:48;16502:2;16491:9;16487:18;16458:48;:::i;:::-;16453:2;16446:5;16442:14;16435:72;16540:49;16584:3;16573:9;16569:19;16540:49;:::i;:::-;16534:3;16527:5;16523:15;16516:74;16623:49;16667:3;16656:9;16652:19;16623:49;:::i;:::-;16617:3;16610:5;16606:15;16599:74;16706:49;16750:3;16739:9;16735:19;16706:49;:::i;:::-;16700:3;16693:5;16689:15;16682:74;16789:38;16822:3;16811:9;16807:19;16789:38;:::i;:::-;16783:3;16776:5;16772:15;16765:63;16847:3;16882:48;16926:2;16915:9;16911:18;16882:48;:::i;:::-;16866:14;;;16859:72;16950:3;16985:48;17014:18;;;16985:48;:::i;:::-;16969:14;;;16962:72;17053:3;17088:48;17117:18;;;17088:48;:::i;:::-;17072:14;;;17065:72;17156:3;17191:48;17220:18;;;17191:48;:::i;:::-;17175:14;;;17168:72;17259:3;17294:48;17323:18;;;17294:48;:::i;:::-;17278:14;;;17271:72;17362:3;17397:48;17426:18;;;17397:48;:::i;:::-;17381:14;;;17374:72;17385:5;16036:1416;-1:-1:-1;;16036:1416:67:o;17457:668::-;17507:5;17560:3;17553:4;17545:6;17541:17;17537:27;17527:55;;17578:1;17575;17568:12;17527:55;17611:2;17605:9;17633:3;17675:2;17667:6;17663:15;17744:6;17732:10;17729:22;-1:-1:-1;;;;;17696:10:67;17693:34;17690:62;17687:88;;;17755:18;;:::i;:::-;17791:2;17784:22;17855:15;;17826:6;17882:15;;;17879:35;;;17910:1;17907;17900:12;17879:35;17934:6;17949:146;17965:6;17960:3;17957:15;17949:146;;;18033:17;;18021:30;;18080:4;18071:14;;;;17982;17949:146;;;-1:-1:-1;18113:6:67;;17457:668;-1:-1:-1;;;;;17457:668:67:o;18130:155::-;18210:20;;18259:1;18249:12;;18239:40;;18275:1;18272;18265:12;18290:285;18347:5;18395:4;18383:9;18378:3;18374:19;18370:30;18367:50;;;18413:1;18410;18403:12;18367:50;18435:22;;:::i;:::-;18426:31;;18493:9;18480:23;18473:5;18466:38;18564:2;18553:9;18549:18;18536:32;18531:2;18524:5;18520:14;18513:56;18290:285;;;;:::o;18580:698::-;18640:5;18693:3;18686:4;18678:6;18674:17;18670:27;18660:55;;18711:1;18708;18701:12;18660:55;18734:2;18765;18759:9;18807:3;18799:6;18795:16;18877:6;18865:10;18862:22;-1:-1:-1;;;;;18829:10:67;18826:34;18823:62;18820:88;;;18888:18;;:::i;:::-;18917:22;;18959:6;19000:3;18988:16;;19016:15;;;19013:35;;;19044:1;19041;19034:12;19013:35;19068:6;19083:165;19099:6;19094:3;19091:15;19083:165;;;19165:38;19199:3;19194;19165:38;:::i;:::-;19153:51;;19233:4;19224:14;;;;19116:12;;19083:165;;;-1:-1:-1;19266:6:67;;18580:698;-1:-1:-1;;;;;;18580:698:67:o;19283:720::-;19365:5;19418:3;19411:4;19403:6;19399:17;19395:27;19385:55;;19436:1;19433;19426:12;19385:55;19459:2;19490;19484:9;19532:3;19524:6;19520:16;19602:6;19590:10;19587:22;-1:-1:-1;;;;;19554:10:67;19551:34;19548:62;19545:88;;;19613:18;;:::i;:::-;19642:22;;19684:6;19725:3;19713:16;;19741:15;;;19738:35;;;19769:1;19766;19759:12;19738:35;19793:6;19808:165;19824:6;19819:3;19816:15;19808:165;;;19890:38;19924:3;19919;19890:38;:::i;:::-;19878:51;;19958:4;19949:14;;;;19841:12;;19808:165;;20008:1264;20070:5;20109:9;20104:3;20100:19;20139:6;20135:2;20131:15;20128:35;;;20159:1;20156;20149:12;20128:35;20181:22;;:::i;:::-;20172:31;;20226:41;20257:9;20226:41;:::i;:::-;20219:5;20212:56;20300:50;20346:2;20335:9;20331:18;20300:50;:::i;:::-;20295:2;20288:5;20284:14;20277:74;20370:6;20410:2;20404;20400:7;20396:2;20392:16;20388:25;20385:45;;;20426:1;20423;20416:12;20385:45;20454:22;;:::i;:::-;20439:37;;20501:59;20556:3;20551:2;20540:9;20536:18;20501:59;:::i;:::-;20492:7;20485:76;20595:82;20673:3;20667;20656:9;20652:19;20595:82;:::i;:::-;20590:2;20581:7;20577:16;20570:108;20712:55;20763:3;20756:4;20745:9;20741:20;20712:55;:::i;:::-;20707:2;20698:7;20694:16;20687:81;20804:55;20855:3;20848:4;20837:9;20833:20;20804:55;:::i;:::-;20797:4;20788:7;20784:18;20777:83;20896:55;20947:3;20940:4;20929:9;20925:20;20896:55;:::i;:::-;20889:4;20880:7;20876:18;20869:83;20988:55;21039:3;21032:4;21021:9;21017:20;20988:55;:::i;:::-;20981:4;20972:7;20968:18;20961:83;21080:55;21131:3;21124:4;21113:9;21109:20;21080:55;:::i;:::-;21073:4;21064:7;21060:18;21053:83;21172:53;21221:3;21216:2;21205:9;21201:18;21172:53;:::i;:::-;21165:4;21152:18;;21145:81;-1:-1:-1;21253:2:67;21242:14;;21235:31;21246:5;20008:1264;-1:-1:-1;;20008:1264:67:o;21277:659::-;21338:5;21391:3;21384:4;21376:6;21372:17;21368:27;21358:55;;21409:1;21406;21399:12;21358:55;21442:2;21436:9;21484:3;21476:6;21472:16;21554:6;21542:10;21539:22;-1:-1:-1;;;;;21506:10:67;21503:34;21500:62;21497:88;;;21565:18;;:::i;:::-;21601:2;21594:22;21636:6;21677:3;21665:16;;21693:15;;;21690:35;;;21721:1;21718;21711:12;21690:35;21745:6;21760:146;21776:6;21771:3;21768:15;21760:146;;;21844:17;;21832:30;;21891:4;21882:14;;;;21793;21760:146;;21941:848;22000:5;22048:6;22036:9;22031:3;22027:19;22023:32;22020:52;;;22068:1;22065;22058:12;22020:52;22090:22;;:::i;:::-;22081:31;;22135:40;22171:3;22160:9;22135:40;:::i;:::-;22128:5;22121:55;22210:59;22265:3;22259;22248:9;22244:19;22210:59;:::i;:::-;22203:4;22196:5;22192:16;22185:85;22304:39;22337:4;22326:9;22322:20;22304:39;:::i;:::-;22297:4;22290:5;22286:16;22279:65;22378:62;22436:3;22429:4;22418:9;22414:20;22378:62;:::i;:::-;22371:4;22364:5;22360:16;22353:88;22475:39;22508:4;22497:9;22493:20;22475:39;:::i;:::-;22468:4;22461:5;22457:16;22450:65;22549:37;22580:4;22569:9;22565:20;22549:37;:::i;:::-;22542:4;22535:5;22531:16;22524:63;22638:4;22627:9;22623:20;22610:34;-1:-1:-1;;;;;22659:6:67;22656:30;22653:50;;;22699:1;22696;22689:12;22653:50;22737:45;22778:3;22769:6;22758:9;22754:22;22737:45;:::i;:::-;22730:4;22723:5;22719:16;22712:71;;21941:848;;;;:::o;22794:1498::-;22879:6;22932:2;22920:9;22911:7;22907:23;22903:32;22900:52;;;22948:1;22945;22938:12;22900:52;22988:9;22975:23;-1:-1:-1;;;;;23058:2:67;23050:6;23047:14;23044:34;;;23074:1;23071;23064:12;23044:34;23097:22;;;;23153:6;23135:16;;;23131:29;23128:49;;;23173:1;23170;23163:12;23128:49;23199:22;;:::i;:::-;23244:48;23284:7;23280:2;23244:48;:::i;:::-;23237:5;23230:63;23346:2;23342;23338:11;23325:25;23320:2;23313:5;23309:14;23302:49;23397:2;23393;23389:11;23376:25;23426:2;23416:8;23413:16;23410:36;;;23442:1;23439;23432:12;23410:36;23478:44;23514:7;23503:8;23499:2;23495:17;23478:44;:::i;:::-;23473:2;23466:5;23462:14;23455:68;;23555:31;23581:3;23577:2;23573:12;23555:31;:::i;:::-;23550:2;23543:5;23539:14;23532:55;23620:31;23646:3;23642:2;23638:12;23620:31;:::i;:::-;23614:3;23607:5;23603:15;23596:56;23706:3;23702:2;23698:12;23685:26;23679:3;23672:5;23668:15;23661:51;23745:58;23795:7;23789:3;23785:2;23781:12;23745:58;:::i;:::-;23739:3;23732:5;23728:15;23721:83;23823:3;23880:2;23876;23872:11;23859:25;23853:3;23846:5;23842:15;23835:50;23904:3;23943:46;23981:7;23976:2;23972;23968:11;23943:46;:::i;:::-;23934:6;23927:5;23923:18;23916:74;24022:52;24066:7;24060:3;24056:2;24052:12;24022:52;:::i;:::-;24017:2;24010:5;24006:14;23999:76;24121:3;24117:2;24113:12;24100:26;24084:42;;24151:2;24141:8;24138:16;24135:36;;;24167:1;24164;24157:12;24135:36;24203:58;24253:7;24242:8;24238:2;24234:17;24203:58;:::i;:::-;24187:14;;;24180:82;-1:-1:-1;24191:5:67;22794:1498;-1:-1:-1;;;;;22794:1498:67:o","linkReferences":{}},"methodIdentifiers":{"validateAccount(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"f4c7c1fa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"validateAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x5345cf4a00d5ea9b89e8133698c7bf3eda3728a858a22cbbeb151bfd88a5122d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c461760571bf1aac1038d4df57e40b38c87420471f80834c4b5d0f78e04d3de5\",\"dweb:/ipfs/QmUWh9Gk4QqVc1P7bP8sfuPEKwJSbZwLCFn3j8tgXBW72S\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0xa6b0d0d800c74341814b90bfe81a774ba1ef8aed33e88b55165910a959835385\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f9de046b12fc312d4198f11995862080c0422fdc86d9b2d80ce65630dd992bc\",\"dweb:/ipfs/QmSAwmbB5YZ1w7DYzrBhpKxhB2h468H8MgmVq4JEUeKz2q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccountIsNotVerified"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x5345cf4a00d5ea9b89e8133698c7bf3eda3728a858a22cbbeb151bfd88a5122d","urls":["bzz-raw://c461760571bf1aac1038d4df57e40b38c87420471f80834c4b5d0f78e04d3de5","dweb:/ipfs/QmUWh9Gk4QqVc1P7bP8sfuPEKwJSbZwLCFn3j8tgXBW72S"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"src/MinaAccountValidation.sol":{"keccak256":"0xa6b0d0d800c74341814b90bfe81a774ba1ef8aed33e88b55165910a959835385","urls":["bzz-raw://5f9de046b12fc312d4198f11995862080c0422fdc86d9b2d80ce65630dd992bc","dweb:/ipfs/QmSAwmbB5YZ1w7DYzrBhpKxhB2h468H8MgmVq4JEUeKz2q"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"AccountIsNotVerified","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161142d38038061142d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61139a806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639029ad1514610030575b600080fd5b61004361003e366004610475565b610059565b6040516100509190610857565b60405180910390f35b6100616101a7565b36600061007160c085018561097f565b61007f9160289082906109cc565b9092509050600061009360c086018661097f565b6040516100a19291906109f6565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190883590859060208b0135906100e19060608d01908d01610a06565b60608c01356100f360808e018e61097f565b8e60a001358f60e001602081019061010b9190610a35565b6040518a63ffffffff1660e01b815260040161012f99989796959493929190610a5e565b602060405180830381865afa15801561014c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101709190610aec565b9050801561018e5761018483850185611244565b9695505050505050565b604051634de35c5f60e11b815260040160405180910390fd5b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016102aa604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016102b76102bc565b905290565b6040518060e001604052806102cf610309565b81526020016102dc610328565b8152600060208201526040016102f0610347565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016102b7610365565b6040518060a001604052806005906020820280368337509192915050565b604051806101000160405280610379610410565b8152602001610386610449565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161041f5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161041f565b60006020828403121561048757600080fd5b81356001600160401b0381111561049d57600080fd5b820161010081850312156104b057600080fd5b9392505050565b6000815180845260005b818110156104dd576020818501810151868301820152016104c1565b818111156104ef576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6005811061052a5761052a610504565b9052565b61053982825161051a565b602081015161054b602084018261051a565b50604081015161055e604084018261051a565b506060810151610571606084018261051a565b506080810151610584608084018261051a565b5060a081015161059760a084018261051a565b5060c08101516105aa60c084018261051a565b5060e08101516105c260e084018263ffffffff169052565b50610100808201516105d68285018261051a565b5050610120808201516105eb8285018261051a565b5050610140808201516106008285018261051a565b5050610160808201516106158285018261051a565b50506101808082015161062a8285018261051a565b50506101a08082015161063f8285018261051a565b50505050565b6003811061052a5761052a610504565b8060005b600f81101561063f5761067784835180518252602090810151910152565b6040939093019260209190910190600101610659565b610698828251610645565b6020808201516106aa82850182610645565b50604082810151805160008684015b60078210156106e9576106d781845180518252602090810151910152565b918501916001919091019084016106b9565b50505091820151916106ff610200860184610655565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b600581101561063f578151845260209384019390910190600101610791565b80516000906109609084835b60088110156107db5782518252602092830192909101906001016107bc565b50505060208301516107f161010086018261068d565b50604083015163ffffffff16610840850152606083015161081661086086018261078d565b50608083015163ffffffff1661090085015260a0830151151561092085015260c0830151610940850182905261084e828601826104b7565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526108956103e08501836104b7565b915060608501516108b160a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006108ee81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e0880152610120880151925061096361020088018461052e565b870151868503601f1901848801529150610184905083826107b0565b6000808335601e1984360301811261099657600080fd5b8301803591506001600160401b038211156109b057600080fd5b6020019150368190038213156109c557600080fd5b9250929050565b600080858511156109dc57600080fd5b838611156109e957600080fd5b5050820193919092039150565b8183823760009101908152919050565b600060208284031215610a1857600080fd5b81356bffffffffffffffffffffffff19811681146104b057600080fd5b600060208284031215610a4757600080fd5b81356001600160a01b03811681146104b057600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610ae957600080fd5b50565b600060208284031215610afe57600080fd5b81516104b081610adb565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610b4157610b41610b09565b60405290565b6040516101c081016001600160401b0381118282101715610b4157610b41610b09565b604051606081016001600160401b0381118282101715610b4157610b41610b09565b60405161010081016001600160401b0381118282101715610b4157610b41610b09565b60405160e081016001600160401b0381118282101715610b4157610b41610b09565b60405161016081016001600160401b0381118282101715610b4157610b41610b09565b8035610bff81610adb565b919050565b600060408284031215610c1657600080fd5b610c1e610b1f565b9050813581526020820135610c3281610adb565b602082015292915050565b600082601f830112610c4e57600080fd5b81356001600160401b0380821115610c6857610c68610b09565b604051601f8301601f19908116603f01168101908282118183101715610c9057610c90610b09565b81604052838152866020858801011115610ca957600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610bff57600080fd5b803563ffffffff81168114610bff57600080fd5b600060a08284031215610d0657600080fd5b60405160a081018181106001600160401b0382111715610d2857610d28610b09565b604052905080610d3783610cc9565b8152610d4560208401610ce0565b6020820152610d5660408401610cc9565b6040820152610d6760608401610ce0565b6060820152610d7860808401610cc9565b60808201525092915050565b803560058110610bff57600080fd5b60006101c08284031215610da657600080fd5b610dae610b47565b9050610db982610d84565b8152610dc760208301610d84565b6020820152610dd860408301610d84565b6040820152610de960608301610d84565b6060820152610dfa60808301610d84565b6080820152610e0b60a08301610d84565b60a0820152610e1c60c08301610d84565b60c0820152610e2d60e08301610ce0565b60e0820152610100610e40818401610d84565b90820152610120610e52838201610d84565b90820152610140610e64838201610d84565b90820152610160610e76838201610d84565b90820152610180610e88838201610d84565b908201526101a0610e9a838201610d84565b9082015292915050565b600082601f830112610eb557600080fd5b6040516101008082018281106001600160401b0382111715610ed957610ed9610b09565b60405283018185821115610eec57600080fd5b845b82811015610f06578035825260209182019101610eee565b509195945050505050565b803560038110610bff57600080fd5b600060408284031215610f3257600080fd5b610f3a610b1f565b9050813581526020820135602082015292915050565b600082601f830112610f6157600080fd5b6040805160e081018181106001600160401b0382111715610f8457610f84610b09565b8252806101c0850186811115610f9957600080fd5b855b81811015610fbc57610fad8882610f20565b83526020909201918401610f9b565b50919695505050505050565b600082601f830112610fd957600080fd5b604080516101e081018181106001600160401b0382111715610ffd57610ffd610b09565b8252806103c085018681111561101257600080fd5b855b81811015610fbc576110268882610f20565b83526020909201918401611014565b600081830361074081121561104957600080fd5b611051610b6a565b915061105c83610f11565b825261106a60208401610f11565b602083015261070080603f198301121561108357600080fd5b61108b610b8c565b915061109a8560408601610f50565b82526110aa856102008601610fc8565b60208301526110bd856105c08601610f20565b60408301526110d0856106008601610f20565b60608301526110e3856106408601610f20565b60808301526110f6856106808601610f20565b60a0830152611109856106c08601610f20565b60c083015261111a85828601610f20565b60e083015250604082015292915050565b600082601f83011261113c57600080fd5b60405160a081018181106001600160401b038211171561115e5761115e610b09565b6040528060a084018581111561117357600080fd5b845b81811015610f06578035835260209283019201611175565b600061096082840312156111a057600080fd5b6111a8610baf565b90506111b48383610ea4565b81526111c4836101008401611035565b60208201526111d66108408301610ce0565b60408201526111e983610860840161112b565b60608201526111fb6109008301610ce0565b608082015261120d6109208301610bf4565b60a08201526109408201356001600160401b0381111561122c57600080fd5b61123884828501610c3d565b60c08301525092915050565b60006020828403121561125657600080fd5b81356001600160401b038082111561126d57600080fd5b908301906103c0828603121561128257600080fd5b61128a610bd1565b6112948684610c04565b8152604083013560208201526060830135828111156112b257600080fd5b6112be87828601610c3d565b6040830152506112d060808401610cc9565b60608201526112e160a08401610ce0565b608082015260c083013560a08201526112fd8660e08501610c04565b60c08201526101208084013560e083015261014061131d88828701610cf4565b610100840152611331886101e08701610d93565b828401526103a085013591508382111561134a57600080fd5b6113568883870161118d565b90830152509594505050505056fea26469706673582212204ff23779a72342be093c794a101b1afa919b353d8dbd2a9bc7be76ea30eab75864736f6c634300080c0033","sourceMap":"171:3431:64:-:0;;;635:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:7;:57;;-1:-1:-1;;;;;;694:57:64;-1:-1:-1;;;;;694:57:64;;;;;;;;;;171:3431;;14:298:67;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:67;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:67:o;:::-;171:3431:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639029ad1514610030575b600080fd5b61004361003e366004610475565b610059565b6040516100509190610857565b60405180910390f35b6100616101a7565b36600061007160c085018561097f565b61007f9160289082906109cc565b9092509050600061009360c086018661097f565b6040516100a19291906109f6565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190883590859060208b0135906100e19060608d01908d01610a06565b60608c01356100f360808e018e61097f565b8e60a001358f60e001602081019061010b9190610a35565b6040518a63ffffffff1660e01b815260040161012f99989796959493929190610a5e565b602060405180830381865afa15801561014c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101709190610aec565b9050801561018e5761018483850185611244565b9695505050505050565b604051634de35c5f60e11b815260040160405180910390fd5b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016102aa604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016102b76102bc565b905290565b6040518060e001604052806102cf610309565b81526020016102dc610328565b8152600060208201526040016102f0610347565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016102b7610365565b6040518060a001604052806005906020820280368337509192915050565b604051806101000160405280610379610410565b8152602001610386610449565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161041f5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161041f565b60006020828403121561048757600080fd5b81356001600160401b0381111561049d57600080fd5b820161010081850312156104b057600080fd5b9392505050565b6000815180845260005b818110156104dd576020818501810151868301820152016104c1565b818111156104ef576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6005811061052a5761052a610504565b9052565b61053982825161051a565b602081015161054b602084018261051a565b50604081015161055e604084018261051a565b506060810151610571606084018261051a565b506080810151610584608084018261051a565b5060a081015161059760a084018261051a565b5060c08101516105aa60c084018261051a565b5060e08101516105c260e084018263ffffffff169052565b50610100808201516105d68285018261051a565b5050610120808201516105eb8285018261051a565b5050610140808201516106008285018261051a565b5050610160808201516106158285018261051a565b50506101808082015161062a8285018261051a565b50506101a08082015161063f8285018261051a565b50505050565b6003811061052a5761052a610504565b8060005b600f81101561063f5761067784835180518252602090810151910152565b6040939093019260209190910190600101610659565b610698828251610645565b6020808201516106aa82850182610645565b50604082810151805160008684015b60078210156106e9576106d781845180518252602090810151910152565b918501916001919091019084016106b9565b50505091820151916106ff610200860184610655565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b600581101561063f578151845260209384019390910190600101610791565b80516000906109609084835b60088110156107db5782518252602092830192909101906001016107bc565b50505060208301516107f161010086018261068d565b50604083015163ffffffff16610840850152606083015161081661086086018261078d565b50608083015163ffffffff1661090085015260a0830151151561092085015260c0830151610940850182905261084e828601826104b7565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526108956103e08501836104b7565b915060608501516108b160a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006108ee81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e0880152610120880151925061096361020088018461052e565b870151868503601f1901848801529150610184905083826107b0565b6000808335601e1984360301811261099657600080fd5b8301803591506001600160401b038211156109b057600080fd5b6020019150368190038213156109c557600080fd5b9250929050565b600080858511156109dc57600080fd5b838611156109e957600080fd5b5050820193919092039150565b8183823760009101908152919050565b600060208284031215610a1857600080fd5b81356bffffffffffffffffffffffff19811681146104b057600080fd5b600060208284031215610a4757600080fd5b81356001600160a01b03811681146104b057600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610ae957600080fd5b50565b600060208284031215610afe57600080fd5b81516104b081610adb565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610b4157610b41610b09565b60405290565b6040516101c081016001600160401b0381118282101715610b4157610b41610b09565b604051606081016001600160401b0381118282101715610b4157610b41610b09565b60405161010081016001600160401b0381118282101715610b4157610b41610b09565b60405160e081016001600160401b0381118282101715610b4157610b41610b09565b60405161016081016001600160401b0381118282101715610b4157610b41610b09565b8035610bff81610adb565b919050565b600060408284031215610c1657600080fd5b610c1e610b1f565b9050813581526020820135610c3281610adb565b602082015292915050565b600082601f830112610c4e57600080fd5b81356001600160401b0380821115610c6857610c68610b09565b604051601f8301601f19908116603f01168101908282118183101715610c9057610c90610b09565b81604052838152866020858801011115610ca957600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610bff57600080fd5b803563ffffffff81168114610bff57600080fd5b600060a08284031215610d0657600080fd5b60405160a081018181106001600160401b0382111715610d2857610d28610b09565b604052905080610d3783610cc9565b8152610d4560208401610ce0565b6020820152610d5660408401610cc9565b6040820152610d6760608401610ce0565b6060820152610d7860808401610cc9565b60808201525092915050565b803560058110610bff57600080fd5b60006101c08284031215610da657600080fd5b610dae610b47565b9050610db982610d84565b8152610dc760208301610d84565b6020820152610dd860408301610d84565b6040820152610de960608301610d84565b6060820152610dfa60808301610d84565b6080820152610e0b60a08301610d84565b60a0820152610e1c60c08301610d84565b60c0820152610e2d60e08301610ce0565b60e0820152610100610e40818401610d84565b90820152610120610e52838201610d84565b90820152610140610e64838201610d84565b90820152610160610e76838201610d84565b90820152610180610e88838201610d84565b908201526101a0610e9a838201610d84565b9082015292915050565b600082601f830112610eb557600080fd5b6040516101008082018281106001600160401b0382111715610ed957610ed9610b09565b60405283018185821115610eec57600080fd5b845b82811015610f06578035825260209182019101610eee565b509195945050505050565b803560038110610bff57600080fd5b600060408284031215610f3257600080fd5b610f3a610b1f565b9050813581526020820135602082015292915050565b600082601f830112610f6157600080fd5b6040805160e081018181106001600160401b0382111715610f8457610f84610b09565b8252806101c0850186811115610f9957600080fd5b855b81811015610fbc57610fad8882610f20565b83526020909201918401610f9b565b50919695505050505050565b600082601f830112610fd957600080fd5b604080516101e081018181106001600160401b0382111715610ffd57610ffd610b09565b8252806103c085018681111561101257600080fd5b855b81811015610fbc576110268882610f20565b83526020909201918401611014565b600081830361074081121561104957600080fd5b611051610b6a565b915061105c83610f11565b825261106a60208401610f11565b602083015261070080603f198301121561108357600080fd5b61108b610b8c565b915061109a8560408601610f50565b82526110aa856102008601610fc8565b60208301526110bd856105c08601610f20565b60408301526110d0856106008601610f20565b60608301526110e3856106408601610f20565b60808301526110f6856106808601610f20565b60a0830152611109856106c08601610f20565b60c083015261111a85828601610f20565b60e083015250604082015292915050565b600082601f83011261113c57600080fd5b60405160a081018181106001600160401b038211171561115e5761115e610b09565b6040528060a084018581111561117357600080fd5b845b81811015610f06578035835260209283019201611175565b600061096082840312156111a057600080fd5b6111a8610baf565b90506111b48383610ea4565b81526111c4836101008401611035565b60208201526111d66108408301610ce0565b60408201526111e983610860840161112b565b60608201526111fb6109008301610ce0565b608082015261120d6109208301610bf4565b60a08201526109408201356001600160401b0381111561122c57600080fd5b61123884828501610c3d565b60c08301525092915050565b60006020828403121561125657600080fd5b81356001600160401b038082111561126d57600080fd5b908301906103c0828603121561128257600080fd5b61128a610bd1565b6112948684610c04565b8152604083013560208201526060830135828111156112b257600080fd5b6112be87828601610c3d565b6040830152506112d060808401610cc9565b60608201526112e160a08401610ce0565b608082015260c083013560a08201526112fd8660e08501610c04565b60c08201526101208084013560e083015261014061131d88828701610cf4565b610100840152611331886101e08701610d93565b828401526103a085013591508382111561134a57600080fd5b6113568883870161118d565b90830152509594505050505056fea26469706673582212204ff23779a72342be093c794a101b1afa919b353d8dbd2a9bc7be76ea30eab75864736f6c634300080c0033","sourceMap":"171:3431:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;764:763;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;839:14;;:::i;:::-;865:29;;897:13;;;;:4;:13;:::i;:::-;:22;;911:6;;897:22;;;:::i;:::-;865:54;;-1:-1:-1;865:54:64;-1:-1:-1;930:26:64;969:13;;;;:4;:13;:::i;:::-;959:24;;;;;;;:::i;:::-;;;;;;;;;;;994:22;1019:7;;959:24;;-1:-1:-1;994:22:64;-1:-1:-1;;;;;1019:7:64;;;;:28;;1061:20;;;959:24;;1127:35;;;;;1176:23;;;;;;;;;:::i;:::-;1213:20;;;;1247:16;;;;1213:4;1247:16;:::i;:::-;1277:4;:31;;;1322:4;:26;;;;;;;;;;:::i;:::-;1019:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;994:364;;1373:17;1369:152;;;1413:37;;;;1424:14;1413:37;:::i;:::-;1406:44;764:763;-1:-1:-1;;;;;;764:763:64:o;1369:152::-;1488:22;;-1:-1:-1;;;1488:22:64;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:392:67;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;214:9;201:23;-1:-1:-1;;;;;239:6:67;236:30;233:50;;;279:1;276;269:12;233:50;302:22;;358:3;340:16;;;336:26;333:46;;;375:1;372;365:12;333:46;398:2;14:392;-1:-1:-1;;;14:392:67:o;686:472::-;728:3;766:5;760:12;793:6;788:3;781:19;818:1;828:162;842:6;839:1;836:13;828:162;;;904:4;960:13;;;956:22;;950:29;932:11;;;928:20;;921:59;857:12;828:162;;;1008:6;1005:1;1002:13;999:87;;;1074:1;1067:4;1058:6;1053:3;1049:16;1045:27;1038:38;999:87;-1:-1:-1;1140:2:67;1119:15;-1:-1:-1;;1115:29:67;1106:39;;;;1147:4;1102:50;;686:472;-1:-1:-1;;686:472:67:o;1841:127::-;1902:10;1897:3;1893:20;1890:1;1883:31;1933:4;1930:1;1923:15;1957:4;1954:1;1947:15;1973:143;2057:1;2050:5;2047:12;2037:46;;2063:18;;:::i;:::-;2092;;1973:143::o;2121:1834::-;2186:47;2229:3;2221:5;2215:12;2186:47;:::i;:::-;2279:4;2272:5;2268:16;2262:23;2294:58;2346:4;2341:3;2337:14;2323:12;2294:58;:::i;:::-;;2400:4;2393:5;2389:16;2383:23;2415:60;2469:4;2464:3;2460:14;2444;2415:60;:::i;:::-;;2523:4;2516:5;2512:16;2506:23;2538:60;2592:4;2587:3;2583:14;2567;2538:60;:::i;:::-;;2646:4;2639:5;2635:16;2629:23;2661:60;2715:4;2710:3;2706:14;2690;2661:60;:::i;:::-;;2769:4;2762:5;2758:16;2752:23;2784:60;2838:4;2833:3;2829:14;2813;2784:60;:::i;:::-;;2892:4;2885:5;2881:16;2875:23;2907:60;2961:4;2956:3;2952:14;2936;2907:60;:::i;:::-;;3015:4;3008:5;3004:16;2998:23;3030:49;3073:4;3068:3;3064:14;3048;1346:10;1335:22;1323:35;;1270:94;3030:49;;3098:6;3152:2;3145:5;3141:14;3135:21;3165:58;3219:2;3214:3;3210:12;3194:14;3165:58;:::i;:::-;;;3242:6;3296:2;3289:5;3285:14;3279:21;3309:58;3363:2;3358:3;3354:12;3338:14;3309:58;:::i;:::-;;;3386:6;3440:2;3433:5;3429:14;3423:21;3453:58;3507:2;3502:3;3498:12;3482:14;3453:58;:::i;:::-;;;3530:6;3585:2;3578:5;3574:14;3568:21;3598:59;3653:2;3648:3;3644:12;3627:15;3598:59;:::i;:::-;;;3676:6;3731:2;3724:5;3720:14;3714:21;3744:59;3799:2;3794:3;3790:12;3773:15;3744:59;:::i;:::-;;;3822:6;3877:2;3870:5;3866:14;3860:21;3890:59;3945:2;3940:3;3936:12;3919:15;3890:59;:::i;:::-;;;2121:1834;;:::o;3960:145::-;4046:1;4039:5;4036:12;4026:46;;4052:18;;:::i;4266:335::-;4369:5;4392:1;4402:193;4416:4;4413:1;4410:11;4402:193;;;4463:48;4507:3;4498:6;4492:13;4186:12;;4174:25;;4248:4;4237:16;;;4231:23;4215:14;;4208:47;4110:151;4463:48;4540:4;4531:14;;;;;4580:4;4568:17;;;;;4436:1;4429:9;4402:193;;4606:1627;4675:49;4720:3;4712:5;4706:12;4675:49;:::i;:::-;4743:4;4793:2;4786:5;4782:14;4776:21;4806:58;4860:2;4855:3;4851:12;4837;4806:58;:::i;:::-;-1:-1:-1;4883:4:67;4924:14;;;4918:21;4989;;5097:1;4958:12;;;5107:195;5121:4;5118:1;5115:11;5107:195;;;5168:50;5212:5;5203:6;5197:13;4186:12;;4174:25;;4248:4;4237:16;;;4231:23;4215:14;;4208:47;4110:151;5168:50;5277:15;;;;5141:1;5134:9;;;;;5240:14;;5107:195;;;-1:-1:-1;;;5339:23:67;;;5333:30;;5372:65;5432:3;5423:13;;5333:30;5372:65;:::i;:::-;5474:23;;;5468:30;4186:12;;5561:4;5552:14;;4174:25;4248:4;4237:16;;;4231:23;4215:14;;;4208:47;5624:4;5604:25;;5598:32;4186:12;;5693:4;5684:14;;4174:25;4237:16;;4231:23;4215:14;;;4208:47;5756:4;5736:25;;5730:32;4186:12;;5825:4;5816:14;;4174:25;4237:16;;4231:23;4215:14;;;4208:47;5888:4;5868:25;;5862:32;4186:12;;5957:4;5948:14;;4174:25;4237:16;;4231:23;4215:14;;;4208:47;6020:4;6000:25;;5994:32;4186:12;;6089:4;6080:14;;4174:25;4237:16;;4231:23;4215:14;;;4208:47;6152:4;6132:25;;;6126:32;4186:12;;6221:4;6212:14;;4174:25;4237:16;4231:23;4215:14;;;;4208:47;;;;-1:-1:-1;;4606:1627:67:o;6238:326::-;6331:5;6354:1;6364:194;6378:4;6375:1;6372:11;6364:194;;;6437:13;;6425:26;;6474:4;6498:12;;;;6533:15;;;;6398:1;6391:9;6364:194;;6569:1166;6677:12;;6624:3;;6652:6;;6711:3;6624;6788:200;6802:4;6799:1;6796:11;6788:200;;;6863:13;;6849:28;;6900:4;6963:15;;;;6926:14;;;;6822:1;6815:9;6788:200;;;6792:3;;;7034:4;7027:5;7023:16;7017:23;7049:65;7106:6;7101:3;7097:16;7083:12;7049:65;:::i;:::-;-1:-1:-1;7162:4:67;7151:16;;7145:23;1346:10;1335:22;7220:6;7211:16;;1323:35;7276:4;7265:16;;7259:23;7291:58;7341:6;7332:16;;7259:23;7291:58;:::i;:::-;-1:-1:-1;7397:4:67;7386:16;;7380:23;1346:10;1335:22;7455:6;7446:16;;1323:35;7511:4;7500:16;;7494:23;481:13;474:21;7567:6;7558:16;;462:34;7623:4;7612:16;;7606:23;7654:6;7645:16;;7638:28;;;7682:47;7716:12;;;7606:23;7682:47;:::i;:::-;7675:54;6569:1166;-1:-1:-1;;;;;6569:1166:67:o;7740:1526::-;7921:2;7903:21;;;7969:13;;590:12;;7984:18;;;578:25;655:16;649:23;642:31;635:39;619:14;;;612:63;8057:2;8049:6;8045:15;8039:22;8034:2;8023:9;8019:18;8012:50;7884:4;8109;8101:6;8097:17;8091:24;8134:6;8177:2;8171:3;8160:9;8156:19;8149:31;8203:52;8250:3;8239:9;8235:19;8221:12;8203:52;:::i;:::-;8189:66;;8304:2;8296:6;8292:15;8286:22;8317:54;8366:3;8355:9;8351:19;8335:14;-1:-1:-1;;;;;1228:30:67;1216:43;;1163:102;8317:54;-1:-1:-1;8420:3:67;8408:16;;8402:23;1346:10;1335:22;;8483:3;8468:19;;1323:35;8434:54;8543:3;8535:6;8531:16;8525:23;8519:3;8508:9;8504:19;8497:52;8598:3;8590:6;8586:16;8580:23;8622:3;8634:71;8701:2;8690:9;8686:18;8670:14;590:12;;578:25;;666:4;655:16;;;649:23;642:31;635:39;619:14;;612:63;507:174;8634:71;8742:3;8730:16;;8724:23;8766:3;8785:18;;;8778:30;;;;8845:15;;;8839:22;1482:12;;-1:-1:-1;;;;;1478:21:67;;;8926:3;8911:19;;1466:34;1546:4;1535:16;;1529:23;1571:10;1613:21;;;1597:14;;;1590:45;1688:4;1677:16;;1671:23;1667:32;;1651:14;;;1644:56;1753:4;1742:16;;1736:23;1732:32;1716:14;;;1709:56;1818:4;1807:16;;;1801:23;1797:32;1781:14;;;1774:56;8980:6;8968:19;;8962:26;;-1:-1:-1;8997:66:67;9058:3;9043:19;;8962:26;8997:66;:::i;:::-;9100:15;;9094:22;9156;;;-1:-1:-1;;9152:36:67;9132:18;;;9125:64;9094:22;-1:-1:-1;9206:54:67;;-1:-1:-1;9160:6:67;9094:22;9206:54;:::i;9271:521::-;9348:4;9354:6;9414:11;9401:25;9508:2;9504:7;9493:8;9477:14;9473:29;9469:43;9449:18;9445:68;9435:96;;9527:1;9524;9517:12;9435:96;9554:33;;9606:20;;;-1:-1:-1;;;;;;9638:30:67;;9635:50;;;9681:1;9678;9671:12;9635:50;9714:4;9702:17;;-1:-1:-1;9745:14:67;9741:27;;;9731:38;;9728:58;;;9782:1;9779;9772:12;9728:58;9271:521;;;;;:::o;9797:331::-;9902:9;9913;9955:8;9943:10;9940:24;9937:44;;;9977:1;9974;9967:12;9937:44;10006:6;9996:8;9993:20;9990:40;;;10026:1;10023;10016:12;9990:40;-1:-1:-1;;10052:23:67;;;10097:25;;;;;-1:-1:-1;9797:331:67:o;10133:271::-;10316:6;10308;10303:3;10290:33;10272:3;10342:16;;10367:13;;;10342:16;10133:271;-1:-1:-1;10133:271:67:o;10409:298::-;10468:6;10521:2;10509:9;10500:7;10496:23;10492:32;10489:52;;;10537:1;10534;10527:12;10489:52;10563:23;;-1:-1:-1;;10615:43:67;;10605:54;;10595:82;;10673:1;10670;10663:12;10712:286;10771:6;10824:2;10812:9;10803:7;10799:23;10795:32;10792:52;;;10840:1;10837;10830:12;10792:52;10866:23;;-1:-1:-1;;;;;10918:31:67;;10908:42;;10898:70;;10964:1;10961;10954:12;11003:997;11319:4;11348:3;11378:6;11367:9;11360:25;11421:6;11416:2;11405:9;11401:18;11394:34;11464:6;11459:2;11448:9;11444:18;11437:34;11523:26;11519:31;11511:6;11507:44;11502:2;11491:9;11487:18;11480:72;11589:6;11583:3;11572:9;11568:19;11561:35;11633:2;11627:3;11616:9;11612:19;11605:31;11672:6;11667:2;11656:9;11652:18;11645:34;;11698:3;11751:6;11743;11738:2;11727:9;11723:18;11710:48;11807:1;11778:22;;;11774:31;;11767:42;11911:3;11896:19;;11889:35;;;;-1:-1:-1;;;;;;11961:32:67;;;;11955:3;11940:19;;11933:61;11870:2;11849:15;;;-1:-1:-1;;11845:29:67;11830:45;;;11826:54;;11003:997;-1:-1:-1;;;;;;11003:997:67:o;12005:118::-;12091:5;12084:13;12077:21;12070:5;12067:32;12057:60;;12113:1;12110;12103:12;12057:60;12005:118;:::o;12128:245::-;12195:6;12248:2;12236:9;12227:7;12223:23;12219:32;12216:52;;;12264:1;12261;12254:12;12216:52;12296:9;12290:16;12315:28;12337:5;12315:28;:::i;12378:127::-;12439:10;12434:3;12430:20;12427:1;12420:31;12470:4;12467:1;12460:15;12494:4;12491:1;12484:15;12510:257;12582:4;12576:11;;;12614:17;;-1:-1:-1;;;;;12646:34:67;;12682:22;;;12643:62;12640:88;;;12708:18;;:::i;:::-;12744:4;12737:24;12510:257;:::o;12772:250::-;12839:2;12833:9;12881:6;12869:19;;-1:-1:-1;;;;;12903:34:67;;12939:22;;;12900:62;12897:88;;;12965:18;;:::i;13027:253::-;13099:2;13093:9;13141:4;13129:17;;-1:-1:-1;;;;;13161:34:67;;13197:22;;;13158:62;13155:88;;;13223:18;;:::i;13285:255::-;13357:2;13351:9;13399:6;13387:19;;-1:-1:-1;;;;;13421:34:67;;13457:22;;;13418:62;13415:88;;;13483:18;;:::i;13545:253::-;13617:2;13611:9;13659:4;13647:17;;-1:-1:-1;;;;;13679:34:67;;13715:22;;;13676:62;13673:88;;;13741:18;;:::i;13803:255::-;13875:2;13869:9;13917:6;13905:19;;-1:-1:-1;;;;;13939:34:67;;13975:22;;;13936:62;13933:88;;;14001:18;;:::i;14063:128::-;14128:20;;14157:28;14128:20;14157:28;:::i;:::-;14063:128;;;:::o;14196:362::-;14260:5;14308:4;14296:9;14291:3;14287:19;14283:30;14280:50;;;14326:1;14323;14316:12;14280:50;14348:22;;:::i;:::-;14339:31;;14406:9;14393:23;14386:5;14379:38;14469:2;14458:9;14454:18;14441:32;14482:30;14504:7;14482:30;:::i;:::-;14539:2;14528:14;;14521:31;14532:5;14196:362;-1:-1:-1;;14196:362:67:o;14563:719::-;14606:5;14659:3;14652:4;14644:6;14640:17;14636:27;14626:55;;14677:1;14674;14667:12;14626:55;14713:6;14700:20;-1:-1:-1;;;;;14776:2:67;14772;14769:10;14766:36;;;14782:18;;:::i;:::-;14857:2;14851:9;14825:2;14911:13;;-1:-1:-1;;14907:22:67;;;14931:2;14903:31;14899:40;14887:53;;;14955:18;;;14975:22;;;14952:46;14949:72;;;15001:18;;:::i;:::-;15041:10;15037:2;15030:22;15076:2;15068:6;15061:18;15122:3;15115:4;15110:2;15102:6;15098:15;15094:26;15091:35;15088:55;;;15139:1;15136;15129:12;15088:55;15203:2;15196:4;15188:6;15184:17;15177:4;15169:6;15165:17;15152:54;15250:1;15243:4;15238:2;15230:6;15226:15;15222:26;15215:37;15270:6;15261:15;;;;;;14563:719;;;;:::o;15287:171::-;15354:20;;-1:-1:-1;;;;;15403:30:67;;15393:41;;15383:69;;15448:1;15445;15438:12;15463:163;15530:20;;15590:10;15579:22;;15569:33;;15559:61;;15616:1;15613;15606:12;15631:696;15684:5;15732:4;15720:9;15715:3;15711:19;15707:30;15704:50;;;15750:1;15747;15740:12;15704:50;15783:2;15777:9;15825:4;15817:6;15813:17;15896:6;15884:10;15881:22;-1:-1:-1;;;;;15848:10:67;15845:34;15842:62;15839:88;;;15907:18;;:::i;:::-;15943:2;15936:22;15976:6;-1:-1:-1;15976:6:67;16006:28;16024:9;16006:28;:::i;:::-;15998:6;15991:44;16068:37;16101:2;16090:9;16086:18;16068:37;:::i;:::-;16063:2;16055:6;16051:15;16044:62;16139:37;16172:2;16161:9;16157:18;16139:37;:::i;:::-;16134:2;16126:6;16122:15;16115:62;16210:37;16243:2;16232:9;16228:18;16210:37;:::i;:::-;16205:2;16197:6;16193:15;16186:62;16282:38;16315:3;16304:9;16300:19;16282:38;:::i;:::-;16276:3;16268:6;16264:16;16257:64;;15631:696;;;;:::o;16332:153::-;16410:20;;16459:1;16449:12;;16439:40;;16475:1;16472;16465:12;16490:1416;16548:5;16596:6;16584:9;16579:3;16575:19;16571:32;16568:52;;;16616:1;16613;16606:12;16568:52;16638:17;;:::i;:::-;16629:26;;16678:39;16707:9;16678:39;:::i;:::-;16671:5;16664:54;16750:48;16794:2;16783:9;16779:18;16750:48;:::i;:::-;16745:2;16738:5;16734:14;16727:72;16831:48;16875:2;16864:9;16860:18;16831:48;:::i;:::-;16826:2;16819:5;16815:14;16808:72;16912:48;16956:2;16945:9;16941:18;16912:48;:::i;:::-;16907:2;16900:5;16896:14;16889:72;16994:49;17038:3;17027:9;17023:19;16994:49;:::i;:::-;16988:3;16981:5;16977:15;16970:74;17077:49;17121:3;17110:9;17106:19;17077:49;:::i;:::-;17071:3;17064:5;17060:15;17053:74;17160:49;17204:3;17193:9;17189:19;17160:49;:::i;:::-;17154:3;17147:5;17143:15;17136:74;17243:38;17276:3;17265:9;17261:19;17243:38;:::i;:::-;17237:3;17230:5;17226:15;17219:63;17301:3;17336:48;17380:2;17369:9;17365:18;17336:48;:::i;:::-;17320:14;;;17313:72;17404:3;17439:48;17468:18;;;17439:48;:::i;:::-;17423:14;;;17416:72;17507:3;17542:48;17571:18;;;17542:48;:::i;:::-;17526:14;;;17519:72;17610:3;17645:48;17674:18;;;17645:48;:::i;:::-;17629:14;;;17622:72;17713:3;17748:48;17777:18;;;17748:48;:::i;:::-;17732:14;;;17725:72;17816:3;17851:48;17880:18;;;17851:48;:::i;:::-;17835:14;;;17828:72;17839:5;16490:1416;-1:-1:-1;;16490:1416:67:o;17911:668::-;17961:5;18014:3;18007:4;17999:6;17995:17;17991:27;17981:55;;18032:1;18029;18022:12;17981:55;18065:2;18059:9;18087:3;18129:2;18121:6;18117:15;18198:6;18186:10;18183:22;-1:-1:-1;;;;;18150:10:67;18147:34;18144:62;18141:88;;;18209:18;;:::i;:::-;18245:2;18238:22;18309:15;;18280:6;18336:15;;;18333:35;;;18364:1;18361;18354:12;18333:35;18388:6;18403:146;18419:6;18414:3;18411:15;18403:146;;;18487:17;;18475:30;;18534:4;18525:14;;;;18436;18403:146;;;-1:-1:-1;18567:6:67;;17911:668;-1:-1:-1;;;;;17911:668:67:o;18584:155::-;18664:20;;18713:1;18703:12;;18693:40;;18729:1;18726;18719:12;18744:285;18801:5;18849:4;18837:9;18832:3;18828:19;18824:30;18821:50;;;18867:1;18864;18857:12;18821:50;18889:22;;:::i;:::-;18880:31;;18947:9;18934:23;18927:5;18920:38;19018:2;19007:9;19003:18;18990:32;18985:2;18978:5;18974:14;18967:56;18744:285;;;;:::o;19034:698::-;19094:5;19147:3;19140:4;19132:6;19128:17;19124:27;19114:55;;19165:1;19162;19155:12;19114:55;19188:2;19219;19213:9;19261:3;19253:6;19249:16;19331:6;19319:10;19316:22;-1:-1:-1;;;;;19283:10:67;19280:34;19277:62;19274:88;;;19342:18;;:::i;:::-;19371:22;;19413:6;19454:3;19442:16;;19470:15;;;19467:35;;;19498:1;19495;19488:12;19467:35;19522:6;19537:165;19553:6;19548:3;19545:15;19537:165;;;19619:38;19653:3;19648;19619:38;:::i;:::-;19607:51;;19687:4;19678:14;;;;19570:12;;19537:165;;;-1:-1:-1;19720:6:67;;19034:698;-1:-1:-1;;;;;;19034:698:67:o;19737:720::-;19819:5;19872:3;19865:4;19857:6;19853:17;19849:27;19839:55;;19890:1;19887;19880:12;19839:55;19913:2;19944;19938:9;19986:3;19978:6;19974:16;20056:6;20044:10;20041:22;-1:-1:-1;;;;;20008:10:67;20005:34;20002:62;19999:88;;;20067:18;;:::i;:::-;20096:22;;20138:6;20179:3;20167:16;;20195:15;;;20192:35;;;20223:1;20220;20213:12;20192:35;20247:6;20262:165;20278:6;20273:3;20270:15;20262:165;;;20344:38;20378:3;20373;20344:38;:::i;:::-;20332:51;;20412:4;20403:14;;;;20295:12;;20262:165;;20462:1264;20524:5;20563:9;20558:3;20554:19;20593:6;20589:2;20585:15;20582:35;;;20613:1;20610;20603:12;20582:35;20635:22;;:::i;:::-;20626:31;;20680:41;20711:9;20680:41;:::i;:::-;20673:5;20666:56;20754:50;20800:2;20789:9;20785:18;20754:50;:::i;:::-;20749:2;20742:5;20738:14;20731:74;20824:6;20864:2;20858;20854:7;20850:2;20846:16;20842:25;20839:45;;;20880:1;20877;20870:12;20839:45;20908:22;;:::i;:::-;20893:37;;20955:59;21010:3;21005:2;20994:9;20990:18;20955:59;:::i;:::-;20946:7;20939:76;21049:82;21127:3;21121;21110:9;21106:19;21049:82;:::i;:::-;21044:2;21035:7;21031:16;21024:108;21166:55;21217:3;21210:4;21199:9;21195:20;21166:55;:::i;:::-;21161:2;21152:7;21148:16;21141:81;21258:55;21309:3;21302:4;21291:9;21287:20;21258:55;:::i;:::-;21251:4;21242:7;21238:18;21231:83;21350:55;21401:3;21394:4;21383:9;21379:20;21350:55;:::i;:::-;21343:4;21334:7;21330:18;21323:83;21442:55;21493:3;21486:4;21475:9;21471:20;21442:55;:::i;:::-;21435:4;21426:7;21422:18;21415:83;21534:55;21585:3;21578:4;21567:9;21563:20;21534:55;:::i;:::-;21527:4;21518:7;21514:18;21507:83;21626:53;21675:3;21670:2;21659:9;21655:18;21626:53;:::i;:::-;21619:4;21606:18;;21599:81;-1:-1:-1;21707:2:67;21696:14;;21689:31;21700:5;20462:1264;-1:-1:-1;;20462:1264:67:o;21731:659::-;21792:5;21845:3;21838:4;21830:6;21826:17;21822:27;21812:55;;21863:1;21860;21853:12;21812:55;21896:2;21890:9;21938:3;21930:6;21926:16;22008:6;21996:10;21993:22;-1:-1:-1;;;;;21960:10:67;21957:34;21954:62;21951:88;;;22019:18;;:::i;:::-;22055:2;22048:22;22090:6;22131:3;22119:16;;22147:15;;;22144:35;;;22175:1;22172;22165:12;22144:35;22199:6;22214:146;22230:6;22225:3;22222:15;22214:146;;;22298:17;;22286:30;;22345:4;22336:14;;;;22247;22214:146;;22395:849;22454:5;22502:6;22490:9;22485:3;22481:19;22477:32;22474:52;;;22522:1;22519;22512:12;22474:52;22544:22;;:::i;:::-;22535:31;;22589:40;22625:3;22614:9;22589:40;:::i;:::-;22582:5;22575:55;22664:59;22719:3;22713;22702:9;22698:19;22664:59;:::i;:::-;22657:4;22650:5;22646:16;22639:85;22758:39;22791:4;22780:9;22776:20;22758:39;:::i;:::-;22751:4;22744:5;22740:16;22733:65;22832:62;22890:3;22883:4;22872:9;22868:20;22832:62;:::i;:::-;22825:4;22818:5;22814:16;22807:88;22929:39;22962:4;22951:9;22947:20;22929:39;:::i;:::-;22922:4;22915:5;22911:16;22904:65;23003:37;23034:4;23023:9;23019:20;23003:37;:::i;:::-;22996:4;22989:5;22985:16;22978:63;23092:4;23081:9;23077:20;23064:34;-1:-1:-1;;;;;23113:6:67;23110:30;23107:50;;;23153:1;23150;23143:12;23107:50;23191:46;23233:3;23224:6;23213:9;23209:22;23191:46;:::i;:::-;23184:4;23177:5;23173:16;23166:72;;22395:849;;;;:::o;23249:1499::-;23334:6;23387:2;23375:9;23366:7;23362:23;23358:32;23355:52;;;23403:1;23400;23393:12;23355:52;23443:9;23430:23;-1:-1:-1;;;;;23513:2:67;23505:6;23502:14;23499:34;;;23529:1;23526;23519:12;23499:34;23552:22;;;;23608:6;23590:16;;;23586:29;23583:49;;;23628:1;23625;23618:12;23583:49;23654:22;;:::i;:::-;23699:48;23739:7;23735:2;23699:48;:::i;:::-;23692:5;23685:63;23801:2;23797;23793:11;23780:25;23775:2;23768:5;23764:14;23757:49;23852:2;23848;23844:11;23831:25;23881:2;23871:8;23868:16;23865:36;;;23897:1;23894;23887:12;23865:36;23933:45;23970:7;23959:8;23955:2;23951:17;23933:45;:::i;:::-;23928:2;23921:5;23917:14;23910:69;;24011:31;24037:3;24033:2;24029:12;24011:31;:::i;:::-;24006:2;23999:5;23995:14;23988:55;24076:31;24102:3;24098:2;24094:12;24076:31;:::i;:::-;24070:3;24063:5;24059:15;24052:56;24162:3;24158:2;24154:12;24141:26;24135:3;24128:5;24124:15;24117:51;24201:58;24251:7;24245:3;24241:2;24237:12;24201:58;:::i;:::-;24195:3;24188:5;24184:15;24177:83;24279:3;24336:2;24332;24328:11;24315:25;24309:3;24302:5;24298:15;24291:50;24360:3;24399:46;24437:7;24432:2;24428;24424:11;24399:46;:::i;:::-;24390:6;24383:5;24379:18;24372:74;24478:52;24522:7;24516:3;24512:2;24508:12;24478:52;:::i;:::-;24473:2;24466:5;24462:14;24455:76;24577:3;24573:2;24569:12;24556:26;24540:42;;24607:2;24597:8;24594:16;24591:36;;;24623:1;24620;24613:12;24591:36;24659:58;24709:7;24698:8;24694:2;24690:17;24659:58;:::i;:::-;24643:14;;;24636:82;-1:-1:-1;24647:5:67;23249:1499;-1:-1:-1;;;;;23249:1499:67:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x9fcd2cb923e5ef666b1b18a7e2a77d915d5bef119214dfc53cc5c6c044a87bc5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f32c8e9002c9a8bd9e23f63d430193e092e6b6cea56a11f839304feff3b333c7\",\"dweb:/ipfs/QmS2o2CeHebjAuviv715FsCNam95qy19qijJz4aw87YRJL\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x68ef2223020d5b4ce1fb2b0b016fb1f66f6b84edbb0370f96d9c1398146e9409\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://57ba2b7b58fc15cdc9eefd70ad09bf8719ff981eabb64d6fca0da049456b2541\",\"dweb:/ipfs/QmPKZJoGwmBnA4gm1C4VySZr9iscQyLd1MtFVz1RkjctzV\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x90ad6c63ccdfaf5ece74b0c5d1be2f5f055af0bac6ad875638c20ada517cad9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6935178db6825ed5b3f223965633f264c47e5d6fc7246ed73b75ca5f963dc7\",\"dweb:/ipfs/Qmcx4xD164Z2P3zCAijesowyc5aGbY9G3iUWkP8s64h386\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccountIsNotVerified"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x9fcd2cb923e5ef666b1b18a7e2a77d915d5bef119214dfc53cc5c6c044a87bc5","urls":["bzz-raw://f32c8e9002c9a8bd9e23f63d430193e092e6b6cea56a11f839304feff3b333c7","dweb:/ipfs/QmS2o2CeHebjAuviv715FsCNam95qy19qijJz4aw87YRJL"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x68ef2223020d5b4ce1fb2b0b016fb1f66f6b84edbb0370f96d9c1398146e9409","urls":["bzz-raw://57ba2b7b58fc15cdc9eefd70ad09bf8719ff981eabb64d6fca0da049456b2541","dweb:/ipfs/QmPKZJoGwmBnA4gm1C4VySZr9iscQyLd1MtFVz1RkjctzV"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x90ad6c63ccdfaf5ece74b0c5d1be2f5f055af0bac6ad875638c20ada517cad9e","urls":["bzz-raw://0c6935178db6825ed5b3f223965633f264c47e5d6fc7246ed73b75ca5f963dc7","dweb:/ipfs/Qmcx4xD164Z2P3zCAijesowyc5aGbY9G3iUWkP8s64h386"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/MinaAccountValidation.sol","id":47772,"exportedSymbols":{"AccountIsNotVerified":[47516],"AlignedLayerServiceManager":[8505],"AlignedLayerServiceManagerStorage":[8527],"BLSSignatureChecker":[4846],"IAVSDirectory":[76],"IAlignedLayerServiceManager":[8603],"IPauserRegistry":[1244],"IRegistryCoordinator":[6102],"IRewardsCoordinator":[1584],"IStakeRegistry":[6512],"Merkle":[3209],"MinaAccountValidation":[47771],"Pausable":[3505],"ServiceManagerBase":[5394]},"nodeType":"SourceUnit","src":"39:3564:64","nodes":[{"id":47513,"nodeType":"PragmaDirective","src":"39:24:64","nodes":[],"literals":["solidity","^","0.8",".12"]},{"id":47514,"nodeType":"ImportDirective","src":"65:73:64","nodes":[],"absolutePath":"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol","file":"aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol","nameLocation":"-1:-1:-1","scope":47772,"sourceUnit":8506,"symbolAliases":[],"unitAlias":""},{"id":47516,"nodeType":"ErrorDefinition","src":"140:29:64","nodes":[],"name":"AccountIsNotVerified","nameLocation":"146:20:64","parameters":{"id":47515,"nodeType":"ParameterList","parameters":[],"src":"166:2:64"}},{"id":47771,"nodeType":"ContractDefinition","src":"171:3431:64","nodes":[{"id":47533,"nodeType":"StructDefinition","src":"208:310:64","nodes":[],"canonicalName":"MinaAccountValidation.AlignedArgs","members":[{"constant":false,"id":47518,"mutability":"mutable","name":"proofCommitment","nameLocation":"245:15:64","nodeType":"VariableDeclaration","scope":47533,"src":"237:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47520,"mutability":"mutable","name":"provingSystemAuxDataCommitment","nameLocation":"278:30:64","nodeType":"VariableDeclaration","scope":47533,"src":"270:38:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"270:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47522,"mutability":"mutable","name":"proofGeneratorAddr","nameLocation":"326:18:64","nodeType":"VariableDeclaration","scope":47533,"src":"318:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":47521,"name":"bytes20","nodeType":"ElementaryTypeName","src":"318:7:64","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"},{"constant":false,"id":47524,"mutability":"mutable","name":"batchMerkleRoot","nameLocation":"362:15:64","nodeType":"VariableDeclaration","scope":47533,"src":"354:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47526,"mutability":"mutable","name":"merkleProof","nameLocation":"393:11:64","nodeType":"VariableDeclaration","scope":47533,"src":"387:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":47525,"name":"bytes","nodeType":"ElementaryTypeName","src":"387:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47528,"mutability":"mutable","name":"verificationDataBatchIndex","nameLocation":"422:26:64","nodeType":"VariableDeclaration","scope":47533,"src":"414:34:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47527,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47530,"mutability":"mutable","name":"pubInput","nameLocation":"464:8:64","nodeType":"VariableDeclaration","scope":47533,"src":"458:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":47529,"name":"bytes","nodeType":"ElementaryTypeName","src":"458:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47532,"mutability":"mutable","name":"batcherPaymentService","nameLocation":"490:21:64","nodeType":"VariableDeclaration","scope":47533,"src":"482:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47531,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AlignedArgs","nameLocation":"215:11:64","scope":47771,"visibility":"public"},{"id":47537,"nodeType":"VariableDeclaration","src":"594:34:64","nodes":[],"constant":false,"documentation":{"id":47534,"nodeType":"StructuredDocumentation","src":"524:65:64","text":"@notice Reference to the AlignedLayerServiceManager contract."},"mutability":"mutable","name":"aligned","nameLocation":"621:7:64","scope":47771,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"},"typeName":{"id":47536,"nodeType":"UserDefinedTypeName","pathNode":{"id":47535,"name":"AlignedLayerServiceManager","nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"594:26:64"},"referencedDeclaration":8505,"src":"594:26:64","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"visibility":"internal"},{"id":47549,"nodeType":"FunctionDefinition","src":"635:123:64","nodes":[],"body":{"id":47548,"nodeType":"Block","src":"684:74:64","nodes":[],"statements":[{"expression":{"id":47546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47542,"name":"aligned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47537,"src":"694:7:64","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47544,"name":"_alignedServiceAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47539,"src":"731:19:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":47543,"name":"AlignedLayerServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8505,"src":"704:26:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlignedLayerServiceManager_$8505_$","typeString":"type(contract AlignedLayerServiceManager)"}},"id":47545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"704:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"src":"694:57:64","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"id":47547,"nodeType":"ExpressionStatement","src":"694:57:64"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47539,"mutability":"mutable","name":"_alignedServiceAddr","nameLocation":"663:19:64","nodeType":"VariableDeclaration","scope":47549,"src":"647:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":47538,"name":"address","nodeType":"ElementaryTypeName","src":"647:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"646:37:64"},"returnParameters":{"id":47541,"nodeType":"ParameterList","parameters":[],"src":"684:0:64"},"scope":47771,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47610,"nodeType":"FunctionDefinition","src":"764:763:64","nodes":[],"body":{"id":47609,"nodeType":"Block","src":"855:672:64","nodes":[],"statements":[{"assignments":[47559],"declarations":[{"constant":false,"id":47559,"mutability":"mutable","name":"encodedAccount","nameLocation":"880:14:64","nodeType":"VariableDeclaration","scope":47609,"src":"865:29:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":47558,"name":"bytes","nodeType":"ElementaryTypeName","src":"865:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47566,"initialValue":{"baseExpression":{"expression":{"id":47560,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"897:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pubInput","nodeType":"MemberAccess","referencedDeclaration":47530,"src":"897:13:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":47565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"897:22:64","startExpression":{"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"id":47564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":47562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"911:2:64","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":47563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"916:1:64","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"911:6:64","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"nodeType":"VariableDeclarationStatement","src":"865:54:64"},{"assignments":[47568],"declarations":[{"constant":false,"id":47568,"mutability":"mutable","name":"pubInputCommitment","nameLocation":"938:18:64","nodeType":"VariableDeclaration","scope":47609,"src":"930:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"930:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47573,"initialValue":{"arguments":[{"expression":{"id":47570,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"969:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pubInput","nodeType":"MemberAccess","referencedDeclaration":47530,"src":"969:13:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":47569,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"959:9:64","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"959:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"930:53:64"},{"assignments":[47575],"declarations":[{"constant":false,"id":47575,"mutability":"mutable","name":"isAccountVerified","nameLocation":"999:17:64","nodeType":"VariableDeclaration","scope":47609,"src":"994:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47574,"name":"bool","nodeType":"ElementaryTypeName","src":"994:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":47594,"initialValue":{"arguments":[{"expression":{"id":47578,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1061:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proofCommitment","nodeType":"MemberAccess","referencedDeclaration":47518,"src":"1061:20:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47580,"name":"pubInputCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47568,"src":"1095:18:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":47581,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1127:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"provingSystemAuxDataCommitment","nodeType":"MemberAccess","referencedDeclaration":47520,"src":"1127:35:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":47583,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1176:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proofGeneratorAddr","nodeType":"MemberAccess","referencedDeclaration":47522,"src":"1176:23:64","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},{"expression":{"id":47585,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1213:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"batchMerkleRoot","nodeType":"MemberAccess","referencedDeclaration":47524,"src":"1213:20:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":47587,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1247:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"merkleProof","nodeType":"MemberAccess","referencedDeclaration":47526,"src":"1247:16:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":47589,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1277:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verificationDataBatchIndex","nodeType":"MemberAccess","referencedDeclaration":47528,"src":"1277:31:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":47591,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1322:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"batcherPaymentService","nodeType":"MemberAccess","referencedDeclaration":47532,"src":"1322:26:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes20","typeString":"bytes20"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47576,"name":"aligned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47537,"src":"1019:7:64","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"id":47577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verifyBatchInclusion","nodeType":"MemberAccess","referencedDeclaration":8455,"src":"1019:28:64","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes20_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,bytes32,bytes32,bytes20,bytes32,bytes memory,uint256,address) view external returns (bool)"}},"id":47593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1019:339:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"994:364:64"},{"condition":{"id":47595,"name":"isAccountVerified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47575,"src":"1373:17:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":47607,"nodeType":"Block","src":"1467:54:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47604,"name":"AccountIsNotVerified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47516,"src":"1488:20:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1488:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47606,"nodeType":"RevertStatement","src":"1481:29:64"}]},"id":47608,"nodeType":"IfStatement","src":"1369:152:64","trueBody":{"id":47603,"nodeType":"Block","src":"1392:69:64","statements":[{"expression":{"arguments":[{"id":47598,"name":"encodedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47559,"src":"1424:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":47599,"name":"Account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47638,"src":"1441:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Account_$47638_storage_ptr_$","typeString":"type(struct MinaAccountValidation.Account storage pointer)"}}],"id":47600,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1440:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Account_$47638_storage_ptr_$","typeString":"type(struct MinaAccountValidation.Account storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Account_$47638_storage_ptr_$","typeString":"type(struct MinaAccountValidation.Account storage pointer)"}],"expression":{"id":47596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1413:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1413:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":47601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1413:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Account_$47638_memory_ptr","typeString":"struct MinaAccountValidation.Account memory"}},"functionReturnParameters":47557,"id":47602,"nodeType":"Return","src":"1406:44:64"}]}}]},"functionSelector":"9029ad15","implemented":true,"kind":"function","modifiers":[],"name":"validateAccount","nameLocation":"773:15:64","parameters":{"id":47553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47552,"mutability":"mutable","name":"args","nameLocation":"810:4:64","nodeType":"VariableDeclaration","scope":47610,"src":"789:25:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs"},"typeName":{"id":47551,"nodeType":"UserDefinedTypeName","pathNode":{"id":47550,"name":"AlignedArgs","nodeType":"IdentifierPath","referencedDeclaration":47533,"src":"789:11:64"},"referencedDeclaration":47533,"src":"789:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_storage_ptr","typeString":"struct MinaAccountValidation.AlignedArgs"}},"visibility":"internal"}],"src":"788:27:64"},"returnParameters":{"id":47557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47610,"src":"839:14:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$47638_memory_ptr","typeString":"struct MinaAccountValidation.Account"},"typeName":{"id":47555,"nodeType":"UserDefinedTypeName","pathNode":{"id":47554,"name":"Account","nodeType":"IdentifierPath","referencedDeclaration":47638,"src":"839:7:64"},"referencedDeclaration":47638,"src":"839:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$47638_storage_ptr","typeString":"struct MinaAccountValidation.Account"}},"visibility":"internal"}],"src":"838:16:64"},"scope":47771,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47638,"nodeType":"StructDefinition","src":"1533:346:64","nodes":[],"canonicalName":"MinaAccountValidation.Account","members":[{"constant":false,"id":47613,"mutability":"mutable","name":"publicKey","nameLocation":"1576:9:64","nodeType":"VariableDeclaration","scope":47638,"src":"1558:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CompressedECPoint_$47643_storage_ptr","typeString":"struct MinaAccountValidation.CompressedECPoint"},"typeName":{"id":47612,"nodeType":"UserDefinedTypeName","pathNode":{"id":47611,"name":"CompressedECPoint","nodeType":"IdentifierPath","referencedDeclaration":47643,"src":"1558:17:64"},"referencedDeclaration":47643,"src":"1558:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_CompressedECPoint_$47643_storage_ptr","typeString":"struct MinaAccountValidation.CompressedECPoint"}},"visibility":"internal"},{"constant":false,"id":47615,"mutability":"mutable","name":"tokenIdKeyHash","nameLocation":"1603:14:64","nodeType":"VariableDeclaration","scope":47638,"src":"1595:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1595:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47617,"mutability":"mutable","name":"tokenSymbol","nameLocation":"1634:11:64","nodeType":"VariableDeclaration","scope":47638,"src":"1627:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":47616,"name":"string","nodeType":"ElementaryTypeName","src":"1627:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47619,"mutability":"mutable","name":"balance","nameLocation":"1662:7:64","nodeType":"VariableDeclaration","scope":47638,"src":"1655:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47618,"name":"uint64","nodeType":"ElementaryTypeName","src":"1655:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47621,"mutability":"mutable","name":"nonce","nameLocation":"1686:5:64","nodeType":"VariableDeclaration","scope":47638,"src":"1679:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47620,"name":"uint32","nodeType":"ElementaryTypeName","src":"1679:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47623,"mutability":"mutable","name":"receiptChainHash","nameLocation":"1709:16:64","nodeType":"VariableDeclaration","scope":47638,"src":"1701:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1701:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47626,"mutability":"mutable","name":"delegate","nameLocation":"1753:8:64","nodeType":"VariableDeclaration","scope":47638,"src":"1735:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CompressedECPoint_$47643_storage_ptr","typeString":"struct MinaAccountValidation.CompressedECPoint"},"typeName":{"id":47625,"nodeType":"UserDefinedTypeName","pathNode":{"id":47624,"name":"CompressedECPoint","nodeType":"IdentifierPath","referencedDeclaration":47643,"src":"1735:17:64"},"referencedDeclaration":47643,"src":"1735:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_CompressedECPoint_$47643_storage_ptr","typeString":"struct MinaAccountValidation.CompressedECPoint"}},"visibility":"internal"},{"constant":false,"id":47628,"mutability":"mutable","name":"votingFor","nameLocation":"1779:9:64","nodeType":"VariableDeclaration","scope":47638,"src":"1771:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1771:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47631,"mutability":"mutable","name":"timing","nameLocation":"1805:6:64","nodeType":"VariableDeclaration","scope":47638,"src":"1798:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Timing_$47654_storage_ptr","typeString":"struct MinaAccountValidation.Timing"},"typeName":{"id":47630,"nodeType":"UserDefinedTypeName","pathNode":{"id":47629,"name":"Timing","nodeType":"IdentifierPath","referencedDeclaration":47654,"src":"1798:6:64"},"referencedDeclaration":47654,"src":"1798:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_Timing_$47654_storage_ptr","typeString":"struct MinaAccountValidation.Timing"}},"visibility":"internal"},{"constant":false,"id":47634,"mutability":"mutable","name":"permissions","nameLocation":"1833:11:64","nodeType":"VariableDeclaration","scope":47638,"src":"1821:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Permissions_$47702_storage_ptr","typeString":"struct MinaAccountValidation.Permissions"},"typeName":{"id":47633,"nodeType":"UserDefinedTypeName","pathNode":{"id":47632,"name":"Permissions","nodeType":"IdentifierPath","referencedDeclaration":47702,"src":"1821:11:64"},"referencedDeclaration":47702,"src":"1821:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_Permissions_$47702_storage_ptr","typeString":"struct MinaAccountValidation.Permissions"}},"visibility":"internal"},{"constant":false,"id":47637,"mutability":"mutable","name":"zkapp","nameLocation":"1867:5:64","nodeType":"VariableDeclaration","scope":47638,"src":"1854:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ZkappAccount_$47722_storage_ptr","typeString":"struct MinaAccountValidation.ZkappAccount"},"typeName":{"id":47636,"nodeType":"UserDefinedTypeName","pathNode":{"id":47635,"name":"ZkappAccount","nodeType":"IdentifierPath","referencedDeclaration":47722,"src":"1854:12:64"},"referencedDeclaration":47722,"src":"1854:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ZkappAccount_$47722_storage_ptr","typeString":"struct MinaAccountValidation.ZkappAccount"}},"visibility":"internal"}],"name":"Account","nameLocation":"1540:7:64","scope":47771,"visibility":"public"},{"id":47643,"nodeType":"StructDefinition","src":"1885:71:64","nodes":[],"canonicalName":"MinaAccountValidation.CompressedECPoint","members":[{"constant":false,"id":47640,"mutability":"mutable","name":"x","nameLocation":"1928:1:64","nodeType":"VariableDeclaration","scope":47643,"src":"1920:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1920:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47642,"mutability":"mutable","name":"isOdd","nameLocation":"1944:5:64","nodeType":"VariableDeclaration","scope":47643,"src":"1939:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47641,"name":"bool","nodeType":"ElementaryTypeName","src":"1939:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CompressedECPoint","nameLocation":"1892:17:64","scope":47771,"visibility":"public"},{"id":47654,"nodeType":"StructDefinition","src":"1962:176:64","nodes":[],"canonicalName":"MinaAccountValidation.Timing","members":[{"constant":false,"id":47645,"mutability":"mutable","name":"initialMinimumBalance","nameLocation":"1993:21:64","nodeType":"VariableDeclaration","scope":47654,"src":"1986:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47644,"name":"uint64","nodeType":"ElementaryTypeName","src":"1986:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47647,"mutability":"mutable","name":"cliffTime","nameLocation":"2031:9:64","nodeType":"VariableDeclaration","scope":47654,"src":"2024:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47646,"name":"uint32","nodeType":"ElementaryTypeName","src":"2024:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47649,"mutability":"mutable","name":"cliffAmount","nameLocation":"2057:11:64","nodeType":"VariableDeclaration","scope":47654,"src":"2050:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47648,"name":"uint64","nodeType":"ElementaryTypeName","src":"2050:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47651,"mutability":"mutable","name":"vestingPeriod","nameLocation":"2085:13:64","nodeType":"VariableDeclaration","scope":47654,"src":"2078:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47650,"name":"uint32","nodeType":"ElementaryTypeName","src":"2078:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47653,"mutability":"mutable","name":"vestingIncrement","nameLocation":"2115:16:64","nodeType":"VariableDeclaration","scope":47654,"src":"2108:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47652,"name":"uint64","nodeType":"ElementaryTypeName","src":"2108:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Timing","nameLocation":"1969:6:64","scope":47771,"visibility":"public"},{"id":47660,"nodeType":"EnumDefinition","src":"2144:108:64","nodes":[],"canonicalName":"MinaAccountValidation.AuthRequired","members":[{"id":47655,"name":"None","nameLocation":"2172:4:64","nodeType":"EnumValue","src":"2172:4:64"},{"id":47656,"name":"Either","nameLocation":"2186:6:64","nodeType":"EnumValue","src":"2186:6:64"},{"id":47657,"name":"Proof","nameLocation":"2202:5:64","nodeType":"EnumValue","src":"2202:5:64"},{"id":47658,"name":"Signature","nameLocation":"2217:9:64","nodeType":"EnumValue","src":"2217:9:64"},{"id":47659,"name":"Impossible","nameLocation":"2236:10:64","nodeType":"EnumValue","src":"2236:10:64"}],"name":"AuthRequired","nameLocation":"2149:12:64"},{"id":47702,"nodeType":"StructDefinition","src":"2258:513:64","nodes":[],"canonicalName":"MinaAccountValidation.Permissions","members":[{"constant":false,"id":47663,"mutability":"mutable","name":"editState","nameLocation":"2300:9:64","nodeType":"VariableDeclaration","scope":47702,"src":"2287:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47662,"nodeType":"UserDefinedTypeName","pathNode":{"id":47661,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2287:12:64"},"referencedDeclaration":47660,"src":"2287:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47666,"mutability":"mutable","name":"access","nameLocation":"2332:6:64","nodeType":"VariableDeclaration","scope":47702,"src":"2319:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47665,"nodeType":"UserDefinedTypeName","pathNode":{"id":47664,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2319:12:64"},"referencedDeclaration":47660,"src":"2319:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47669,"mutability":"mutable","name":"send","nameLocation":"2361:4:64","nodeType":"VariableDeclaration","scope":47702,"src":"2348:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47668,"nodeType":"UserDefinedTypeName","pathNode":{"id":47667,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2348:12:64"},"referencedDeclaration":47660,"src":"2348:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47672,"mutability":"mutable","name":"rreceive","nameLocation":"2388:8:64","nodeType":"VariableDeclaration","scope":47702,"src":"2375:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47671,"nodeType":"UserDefinedTypeName","pathNode":{"id":47670,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2375:12:64"},"referencedDeclaration":47660,"src":"2375:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47675,"mutability":"mutable","name":"setDelegate","nameLocation":"2419:11:64","nodeType":"VariableDeclaration","scope":47702,"src":"2406:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47674,"nodeType":"UserDefinedTypeName","pathNode":{"id":47673,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2406:12:64"},"referencedDeclaration":47660,"src":"2406:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47678,"mutability":"mutable","name":"setPermissions","nameLocation":"2453:14:64","nodeType":"VariableDeclaration","scope":47702,"src":"2440:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47677,"nodeType":"UserDefinedTypeName","pathNode":{"id":47676,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2440:12:64"},"referencedDeclaration":47660,"src":"2440:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47681,"mutability":"mutable","name":"setVerificationKeyAuth","nameLocation":"2490:22:64","nodeType":"VariableDeclaration","scope":47702,"src":"2477:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47680,"nodeType":"UserDefinedTypeName","pathNode":{"id":47679,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2477:12:64"},"referencedDeclaration":47660,"src":"2477:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47683,"mutability":"mutable","name":"setVerificationKeyUint","nameLocation":"2529:22:64","nodeType":"VariableDeclaration","scope":47702,"src":"2522:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47682,"name":"uint32","nodeType":"ElementaryTypeName","src":"2522:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47686,"mutability":"mutable","name":"setZkappUri","nameLocation":"2574:11:64","nodeType":"VariableDeclaration","scope":47702,"src":"2561:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47685,"nodeType":"UserDefinedTypeName","pathNode":{"id":47684,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2561:12:64"},"referencedDeclaration":47660,"src":"2561:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47689,"mutability":"mutable","name":"editActionState","nameLocation":"2608:15:64","nodeType":"VariableDeclaration","scope":47702,"src":"2595:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47688,"nodeType":"UserDefinedTypeName","pathNode":{"id":47687,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2595:12:64"},"referencedDeclaration":47660,"src":"2595:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47692,"mutability":"mutable","name":"setTokenSymbol","nameLocation":"2646:14:64","nodeType":"VariableDeclaration","scope":47702,"src":"2633:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47691,"nodeType":"UserDefinedTypeName","pathNode":{"id":47690,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2633:12:64"},"referencedDeclaration":47660,"src":"2633:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47695,"mutability":"mutable","name":"incrementNonce","nameLocation":"2683:14:64","nodeType":"VariableDeclaration","scope":47702,"src":"2670:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47694,"nodeType":"UserDefinedTypeName","pathNode":{"id":47693,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2670:12:64"},"referencedDeclaration":47660,"src":"2670:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47698,"mutability":"mutable","name":"setVotingFor","nameLocation":"2720:12:64","nodeType":"VariableDeclaration","scope":47702,"src":"2707:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47697,"nodeType":"UserDefinedTypeName","pathNode":{"id":47696,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2707:12:64"},"referencedDeclaration":47660,"src":"2707:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47701,"mutability":"mutable","name":"setTiming","nameLocation":"2755:9:64","nodeType":"VariableDeclaration","scope":47702,"src":"2742:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47700,"nodeType":"UserDefinedTypeName","pathNode":{"id":47699,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2742:12:64"},"referencedDeclaration":47660,"src":"2742:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"}],"name":"Permissions","nameLocation":"2265:11:64","scope":47771,"visibility":"public"},{"id":47722,"nodeType":"StructDefinition","src":"2777:239:64","nodes":[],"canonicalName":"MinaAccountValidation.ZkappAccount","members":[{"constant":false,"id":47706,"mutability":"mutable","name":"appState","nameLocation":"2818:8:64","nodeType":"VariableDeclaration","scope":47722,"src":"2807:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$8_storage_ptr","typeString":"bytes32[8]"},"typeName":{"baseType":{"id":47703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2807:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47705,"length":{"hexValue":"38","id":47704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2815:1:64","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"ArrayTypeName","src":"2807:10:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$8_storage_ptr","typeString":"bytes32[8]"}},"visibility":"internal"},{"constant":false,"id":47709,"mutability":"mutable","name":"verificationKey","nameLocation":"2852:15:64","nodeType":"VariableDeclaration","scope":47722,"src":"2836:31:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_VerificationKey_$47732_storage_ptr","typeString":"struct MinaAccountValidation.VerificationKey"},"typeName":{"id":47708,"nodeType":"UserDefinedTypeName","pathNode":{"id":47707,"name":"VerificationKey","nodeType":"IdentifierPath","referencedDeclaration":47732,"src":"2836:15:64"},"referencedDeclaration":47732,"src":"2836:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_VerificationKey_$47732_storage_ptr","typeString":"struct MinaAccountValidation.VerificationKey"}},"visibility":"internal"},{"constant":false,"id":47711,"mutability":"mutable","name":"zkappVersion","nameLocation":"2884:12:64","nodeType":"VariableDeclaration","scope":47722,"src":"2877:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47710,"name":"uint32","nodeType":"ElementaryTypeName","src":"2877:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47715,"mutability":"mutable","name":"actionState","nameLocation":"2917:11:64","nodeType":"VariableDeclaration","scope":47722,"src":"2906:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$5_storage_ptr","typeString":"bytes32[5]"},"typeName":{"baseType":{"id":47712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2906:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47714,"length":{"hexValue":"35","id":47713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:1:64","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"2906:10:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$5_storage_ptr","typeString":"bytes32[5]"}},"visibility":"internal"},{"constant":false,"id":47717,"mutability":"mutable","name":"lastActionSlot","nameLocation":"2945:14:64","nodeType":"VariableDeclaration","scope":47722,"src":"2938:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47716,"name":"uint32","nodeType":"ElementaryTypeName","src":"2938:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47719,"mutability":"mutable","name":"provedState","nameLocation":"2974:11:64","nodeType":"VariableDeclaration","scope":47722,"src":"2969:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47718,"name":"bool","nodeType":"ElementaryTypeName","src":"2969:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47721,"mutability":"mutable","name":"zkappUri","nameLocation":"3001:8:64","nodeType":"VariableDeclaration","scope":47722,"src":"2995:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":47720,"name":"bytes","nodeType":"ElementaryTypeName","src":"2995:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ZkappAccount","nameLocation":"2784:12:64","scope":47771,"visibility":"public"},{"id":47732,"nodeType":"StructDefinition","src":"3022:146:64","nodes":[],"canonicalName":"MinaAccountValidation.VerificationKey","members":[{"constant":false,"id":47725,"mutability":"mutable","name":"maxProofsVerified","nameLocation":"3070:17:64","nodeType":"VariableDeclaration","scope":47732,"src":"3055:32:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProofsVerified_$47736","typeString":"enum MinaAccountValidation.ProofsVerified"},"typeName":{"id":47724,"nodeType":"UserDefinedTypeName","pathNode":{"id":47723,"name":"ProofsVerified","nodeType":"IdentifierPath","referencedDeclaration":47736,"src":"3055:14:64"},"referencedDeclaration":47736,"src":"3055:14:64","typeDescriptions":{"typeIdentifier":"t_enum$_ProofsVerified_$47736","typeString":"enum MinaAccountValidation.ProofsVerified"}},"visibility":"internal"},{"constant":false,"id":47728,"mutability":"mutable","name":"actualWrapDomainSize","nameLocation":"3112:20:64","nodeType":"VariableDeclaration","scope":47732,"src":"3097:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProofsVerified_$47736","typeString":"enum MinaAccountValidation.ProofsVerified"},"typeName":{"id":47727,"nodeType":"UserDefinedTypeName","pathNode":{"id":47726,"name":"ProofsVerified","nodeType":"IdentifierPath","referencedDeclaration":47736,"src":"3097:14:64"},"referencedDeclaration":47736,"src":"3097:14:64","typeDescriptions":{"typeIdentifier":"t_enum$_ProofsVerified_$47736","typeString":"enum MinaAccountValidation.ProofsVerified"}},"visibility":"internal"},{"constant":false,"id":47731,"mutability":"mutable","name":"wrapIndex","nameLocation":"3152:9:64","nodeType":"VariableDeclaration","scope":47732,"src":"3142:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_WrapIndex_$47765_storage_ptr","typeString":"struct MinaAccountValidation.WrapIndex"},"typeName":{"id":47730,"nodeType":"UserDefinedTypeName","pathNode":{"id":47729,"name":"WrapIndex","nodeType":"IdentifierPath","referencedDeclaration":47765,"src":"3142:9:64"},"referencedDeclaration":47765,"src":"3142:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_WrapIndex_$47765_storage_ptr","typeString":"struct MinaAccountValidation.WrapIndex"}},"visibility":"internal"}],"name":"VerificationKey","nameLocation":"3029:15:64","scope":47771,"visibility":"public"},{"id":47736,"nodeType":"EnumDefinition","src":"3174:62:64","nodes":[],"canonicalName":"MinaAccountValidation.ProofsVerified","members":[{"id":47733,"name":"N0","nameLocation":"3204:2:64","nodeType":"EnumValue","src":"3204:2:64"},{"id":47734,"name":"N1","nameLocation":"3216:2:64","nodeType":"EnumValue","src":"3216:2:64"},{"id":47735,"name":"N2","nameLocation":"3228:2:64","nodeType":"EnumValue","src":"3228:2:64"}],"name":"ProofsVerified","nameLocation":"3179:14:64"},{"id":47765,"nodeType":"StructDefinition","src":"3242:289:64","nodes":[],"canonicalName":"MinaAccountValidation.WrapIndex","members":[{"constant":false,"id":47741,"mutability":"mutable","name":"sigmaComm","nameLocation":"3283:9:64","nodeType":"VariableDeclaration","scope":47765,"src":"3269:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Commitment_$47770_storage_$7_storage_ptr","typeString":"struct MinaAccountValidation.Commitment[7]"},"typeName":{"baseType":{"id":47738,"nodeType":"UserDefinedTypeName","pathNode":{"id":47737,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3269:10:64"},"referencedDeclaration":47770,"src":"3269:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"id":47740,"length":{"hexValue":"37","id":47739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3280:1:64","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"nodeType":"ArrayTypeName","src":"3269:13:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Commitment_$47770_storage_$7_storage_ptr","typeString":"struct MinaAccountValidation.Commitment[7]"}},"visibility":"internal"},{"constant":false,"id":47746,"mutability":"mutable","name":"coefficientsComm","nameLocation":"3317:16:64","nodeType":"VariableDeclaration","scope":47765,"src":"3302:31:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Commitment_$47770_storage_$15_storage_ptr","typeString":"struct MinaAccountValidation.Commitment[15]"},"typeName":{"baseType":{"id":47743,"nodeType":"UserDefinedTypeName","pathNode":{"id":47742,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3302:10:64"},"referencedDeclaration":47770,"src":"3302:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"id":47745,"length":{"hexValue":"3135","id":47744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3313:2:64","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"nodeType":"ArrayTypeName","src":"3302:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Commitment_$47770_storage_$15_storage_ptr","typeString":"struct MinaAccountValidation.Commitment[15]"}},"visibility":"internal"},{"constant":false,"id":47749,"mutability":"mutable","name":"genericComm","nameLocation":"3354:11:64","nodeType":"VariableDeclaration","scope":47765,"src":"3343:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47748,"nodeType":"UserDefinedTypeName","pathNode":{"id":47747,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3343:10:64"},"referencedDeclaration":47770,"src":"3343:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47752,"mutability":"mutable","name":"psmComm","nameLocation":"3386:7:64","nodeType":"VariableDeclaration","scope":47765,"src":"3375:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47751,"nodeType":"UserDefinedTypeName","pathNode":{"id":47750,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3375:10:64"},"referencedDeclaration":47770,"src":"3375:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47755,"mutability":"mutable","name":"completeAddComm","nameLocation":"3414:15:64","nodeType":"VariableDeclaration","scope":47765,"src":"3403:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47754,"nodeType":"UserDefinedTypeName","pathNode":{"id":47753,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3403:10:64"},"referencedDeclaration":47770,"src":"3403:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47758,"mutability":"mutable","name":"mulComm","nameLocation":"3450:7:64","nodeType":"VariableDeclaration","scope":47765,"src":"3439:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47757,"nodeType":"UserDefinedTypeName","pathNode":{"id":47756,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3439:10:64"},"referencedDeclaration":47770,"src":"3439:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47761,"mutability":"mutable","name":"emulComm","nameLocation":"3478:8:64","nodeType":"VariableDeclaration","scope":47765,"src":"3467:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47760,"nodeType":"UserDefinedTypeName","pathNode":{"id":47759,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3467:10:64"},"referencedDeclaration":47770,"src":"3467:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47764,"mutability":"mutable","name":"endomulScalarComm","nameLocation":"3507:17:64","nodeType":"VariableDeclaration","scope":47765,"src":"3496:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47763,"nodeType":"UserDefinedTypeName","pathNode":{"id":47762,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3496:10:64"},"referencedDeclaration":47770,"src":"3496:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"}],"name":"WrapIndex","nameLocation":"3249:9:64","scope":47771,"visibility":"public"},{"id":47770,"nodeType":"StructDefinition","src":"3537:63:64","nodes":[],"canonicalName":"MinaAccountValidation.Commitment","members":[{"constant":false,"id":47767,"mutability":"mutable","name":"x","nameLocation":"3573:1:64","nodeType":"VariableDeclaration","scope":47770,"src":"3565:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3565:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47769,"mutability":"mutable","name":"y","nameLocation":"3592:1:64","nodeType":"VariableDeclaration","scope":47770,"src":"3584:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3584:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Commitment","nameLocation":"3544:10:64","scope":47771,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"MinaAccountValidation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47771],"name":"MinaAccountValidation","nameLocation":"180:21:64","scope":47772,"usedErrors":[47516]}],"license":"UNLICENSED"},"id":64} \ No newline at end of file diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index cdb8e503..54e9c105 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106bf3803806106bf83398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6105c8806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fb565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103d0565b610160565b005b6100956102cd565b610095601081565b6100d06102dc565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dc565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047f565b60108110610159576101596104a4565b0154905090565b602081015160006101736001601061047f565b60108110610183576101836104a4565b015481146101d25780600061019a6001601061047f565b601081106101aa576101aa6104a4565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a919061021b908d9086908e908e908e908e908e908b906004016104ba565b602060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c9190610569565b905080156102a85760006010604086016102408701835b601081101561029e578251855581518455600194850194938401936020938401939092019101610273565b50505050506102c1565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610324578151835260209283019290910190600101610305565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035457600080fd5b813567ffffffffffffffff8082111561036f5761036f61032d565b604051601f8301601f19908116603f011681019082821181831017156103975761039761032d565b816040528381528660208588010111156103b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103eb57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041657600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043a57600080fd5b6104468b838c01610343565b945060a08a0135935060c08a013591508082111561046357600080fd5b506104708a828b01610343565b91505092959891949750929550565b60008282101561049f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561051b578783018201518584016101200152918101916104fc565b8083111561052e57600061012082870101525b60c08501879052601f01601f1916840161012001925061055c91505060e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561057b57600080fd5b8151801515811461058b57600080fd5b939250505056fea26469706673582212204bd1909bc5c2ac4b1bb74ffdd3e632e2d0b7e8c206e9b9db21cfba8cc7997ed964736f6c634300080c0033","sourceMap":"345:4056:65:-:0;;;1053:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1135:7;:57;;-1:-1:-1;;;;;;1135:57:65;-1:-1:-1;;;;;1135:57:65;;;;;1257:13;-1:-1:-1;1219:34:65;-1:-1:-1;548:2:65;1219:34;:::i;:::-;1202:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;345:4056:65;;-1:-1:-1;345:4056:65;14:359:67;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:67;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:67:o;378:222::-;418:4;446:1;443;440:8;437:131;;;490:10;485:3;481:20;478:1;471:31;525:4;522:1;515:15;553:4;550:1;543:15;437:131;-1:-1:-1;585:9:67;;378:222::o;605:127::-;666:10;661:3;657:20;654:1;647:31;697:4;694:1;687:15;721:4;718:1;711:15;605:127;345:4056:65;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d9146100855780633886c09b1461008d578063a92d923a146100a3578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fb565b60405180910390f35b61006f610104565b61009561013a565b60405190815260200161007c565b6100b66100b13660046103d0565b610160565b005b6100956102cd565b610095601081565b6100d06102dc565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dc565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6000601061014960018261047f565b60108110610159576101596104a4565b0154905090565b602081015160006101736001601061047f565b60108110610183576101836104a4565b015481146101d25780600061019a6001601061047f565b601081106101aa576101aa6104a4565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b815160208084019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a919061021b908d9086908e908e908e908e908e908b906004016104ba565b602060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c9190610569565b905080156102a85760006010604086016102408701835b601081101561029e578251855581518455600194850194938401936020938401939092019101610273565b50505050506102c1565b604051630114602f60e41b815260040160405180910390fd5b50505050505050505050565b6000806101496001601061047f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610324578151835260209283019290910190600101610305565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035457600080fd5b813567ffffffffffffffff8082111561036f5761036f61032d565b604051601f8301601f19908116603f011681019082821181831017156103975761039761032d565b816040528381528660208588010111156103b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060e0888a0312156103eb57600080fd5b873596506020880135955060408801356bffffffffffffffffffffffff198116811461041657600080fd5b945060608801359350608088013567ffffffffffffffff8082111561043a57600080fd5b6104468b838c01610343565b945060a08a0135935060c08a013591508082111561046357600080fd5b506104708a828b01610343565b91505092959891949750929550565b60008282101561049f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561051b578783018201518584016101200152918101916104fc565b8083111561052e57600061012082870101525b60c08501879052601f01601f1916840161012001925061055c91505060e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561057b57600080fd5b8151801515811461058b57600080fd5b939250505056fea26469706673582212204bd1909bc5c2ac4b1bb74ffdd3e632e2d0b7e8c206e9b9db21cfba8cc7997ed964736f6c634300080c0033","sourceMap":"345:4056:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1953:144;;;:::i;1533:137::-;;;:::i;:::-;;;662:25:67;;;650:2;635:18;1533:137:65;516:177:67;2103:2296:65;;;;;;:::i;:::-;;:::i;:::-;;1337:135;;;:::i;491:59::-;;548:2;491:59;;1740:142;1794:46;;:::i;:::-;1852:23;;;;;;;;;;;-1:-1:-1;;1852:23:65;;-1:-1:-1;1852:23:65;;;;;;;;;;;;;;;;;;;;;;;;1740:142;:::o;1953:144::-;2008:46;;:::i;:::-;2066:24;;;;;;;;;;2073:17;2066:24;;;;;;2073:17;;2066:24;;;;;;;;;;;;;;;;1953:144;:::o;1533:137::-;1584:7;1610:17;1628:34;1661:1;1610:17;1628:34;:::i;:::-;1610:53;;;;;;;:::i;:::-;;;1603:60;;1533:137;:::o;2103:2296::-;2525:4;2511:19;;2505:26;2408:34;2602;2635:1;548:2;2602:34;:::i;:::-;2585:52;;;;;;;:::i;:::-;;;2555:26;:82;2551:217;;2676:26;2704:16;2721:34;2754:1;548:2;2721:34;:::i;:::-;2704:52;;;;;;;:::i;:::-;;;2660:97;;-1:-1:-1;;;2660:97:65;;;;;3274:25:67;;;;3315:18;;;3308:34;3247:18;;2660:97:65;;;;;;;2551:217;2807:19;;;;;;;;;;2863:7;;:293;;-1:-1:-1;;;2863:293:65;;2778:26;;-1:-1:-1;;;;;2863:7:65;;:28;;:293;;2905:15;;2807:19;;2966:30;;3010:18;;3042:15;;3071:11;;3096:26;;2778;;2863:293;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2837:319;;3171:18;3167:1226;;;3309:21;3367:22;3657:2;3643:17;;3792:57;;;3309:21;3867:444;3892:30;3889:1;3886:37;3867:444;;;3985:18;;3965:39;;4158:19;;4137:41;;4113:1;4096:19;;;;4273:20;;;;4057:2;4040:20;;;;4215:21;;;;3931:9;3867:444;;;3871:14;;;;;3167:1226;;;4362:20;;-1:-1:-1;;;4362:20:65;;;;;;;;;;;3167:1226;2398:2001;;;2103:2296;;;;;;;:::o;1337:135::-;1387:7;;1430:34;1463:1;548:2;1430:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:67:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:718;872:5;925:3;918:4;910:6;906:17;902:27;892:55;;943:1;940;933:12;892:55;979:6;966:20;1005:18;1042:2;1038;1035:10;1032:36;;;1048:18;;:::i;:::-;1123:2;1117:9;1091:2;1177:13;;-1:-1:-1;;1173:22:67;;;1197:2;1169:31;1165:40;1153:53;;;1221:18;;;1241:22;;;1218:46;1215:72;;;1267:18;;:::i;:::-;1307:10;1303:2;1296:22;1342:2;1334:6;1327:18;1388:3;1381:4;1376:2;1368:6;1364:15;1360:26;1357:35;1354:55;;;1405:1;1402;1395:12;1354:55;1469:2;1462:4;1454:6;1450:17;1443:4;1435:6;1431:17;1418:54;1516:1;1509:4;1504:2;1496:6;1492:15;1488:26;1481:37;1536:6;1527:15;;;;;;830:718;;;;:::o;1553:1001::-;1684:6;1692;1700;1708;1716;1724;1732;1785:3;1773:9;1764:7;1760:23;1756:33;1753:53;;;1802:1;1799;1792:12;1753:53;1825:23;;;-1:-1:-1;1895:2:67;1880:18;;1867:32;;-1:-1:-1;1949:2:67;1934:18;;1921:32;-1:-1:-1;;1982:43:67;;1972:54;;1962:82;;2040:1;2037;2030:12;1962:82;2063:5;-1:-1:-1;2115:2:67;2100:18;;2087:32;;-1:-1:-1;2170:3:67;2155:19;;2142:33;2194:18;2224:14;;;2221:34;;;2251:1;2248;2241:12;2221:34;2274:49;2315:7;2306:6;2295:9;2291:22;2274:49;:::i;:::-;2264:59;;2370:3;2359:9;2355:19;2342:33;2332:43;;2428:3;2417:9;2413:19;2400:33;2384:49;;2458:2;2448:8;2445:16;2442:36;;;2474:1;2471;2464:12;2442:36;;2497:51;2540:7;2529:8;2518:9;2514:24;2497:51;:::i;:::-;2487:61;;;1553:1001;;;;;;;;;;:::o;2741:222::-;2781:4;2809:1;2806;2803:8;2800:131;;;2853:10;2848:3;2844:20;2841:1;2834:31;2888:4;2885:1;2878:15;2916:4;2913:1;2906:15;2800:131;-1:-1:-1;2948:9:67;;2741:222::o;2968:127::-;3029:10;3024:3;3020:20;3017:1;3010:31;3060:4;3057:1;3050:15;3084:4;3081:1;3074:15;3462:1171;3768:4;3797:3;3827:6;3816:9;3809:25;3853:2;3891:6;3886:2;3875:9;3871:18;3864:34;3934:6;3929:2;3918:9;3914:18;3907:34;3993:26;3989:31;3981:6;3977:44;3972:2;3961:9;3957:18;3950:72;4059:6;4053:3;4042:9;4038:19;4031:35;4103:2;4097:3;4086:9;4082:19;4075:31;4135:6;4129:13;4178:6;4173:2;4162:9;4158:18;4151:34;4203:1;4194:10;;4213:141;4227:6;4224:1;4221:13;4213:141;;;4323:14;;;4319:23;;4313:30;4288:17;;;4307:3;4284:27;4277:67;4242:10;;;;4213:141;;;4372:6;4369:1;4366:13;4363:92;;;4443:1;4437:3;4428:6;4417:9;4413:22;4409:32;4402:43;4363:92;4558:3;4543:19;;4536:35;;;4516:2;4495:15;-1:-1:-1;;4491:29:67;4476:45;;4523:3;4472:55;;-1:-1:-1;4580:47:67;;-1:-1:-1;;4622:3:67;4607:19;;4599:6;-1:-1:-1;;;;;3419:31:67;3407:44;;3353:104;4580:47;3462:1171;;;;;;;;;;;:::o;4638:277::-;4705:6;4758:2;4746:9;4737:7;4733:23;4729:32;4726:52;;;4774:1;4771;4764:12;4726:52;4806:9;4800:16;4859:5;4852:13;4845:21;4838:5;4835:32;4825:60;;4881:1;4878;4871:12;4825:60;4904:5;4638:277;-1:-1:-1;;;4638:277:67:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes)":"a92d923a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x5345cf4a00d5ea9b89e8133698c7bf3eda3728a858a22cbbeb151bfd88a5122d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c461760571bf1aac1038d4df57e40b38c87420471f80834c4b5d0f78e04d3de5\",\"dweb:/ipfs/QmUWh9Gk4QqVc1P7bP8sfuPEKwJSbZwLCFn3j8tgXBW72S\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b\",\"dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0xb337a4c05daea96d77a83d15c585fc26e50069f2738fc126ce1a6d3a5e3be103\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://34f01073396bf26f5ab1101298988d2aaf9821ee24915ebec53d2df00ee17a14\",\"dweb:/ipfs/QmbS6UVTDV91UZierYjf1yWGca5tqwg1BbKmCj2zs6pS5u\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x5345cf4a00d5ea9b89e8133698c7bf3eda3728a858a22cbbeb151bfd88a5122d","urls":["bzz-raw://c461760571bf1aac1038d4df57e40b38c87420471f80834c4b5d0f78e04d3de5","dweb:/ipfs/QmUWh9Gk4QqVc1P7bP8sfuPEKwJSbZwLCFn3j8tgXBW72S"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x8d2bfeabfc2cde8b699778f7395c5efe44ded0bc57f0d0ea14cdc18a87d8433b","urls":["bzz-raw://b2f47bfa5a21219889cde76d1bf30800c7765648ab68e1148c268b83362e040b","dweb:/ipfs/QmWADSHQrj5qxMJ3kiksWDVe82w2WMPxgtLYxGnv8kGr9M"],"license":"UNLICENSED"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"src/MinaBridge.sol":{"keccak256":"0xb337a4c05daea96d77a83d15c585fc26e50069f2738fc126ce1a6d3a5e3be103","urls":["bzz-raw://34f01073396bf26f5ab1101298988d2aaf9821ee24915ebec53d2df00ee17a14","dweb:/ipfs/QmbS6UVTDV91UZierYjf1yWGca5tqwg1BbKmCj2zs6pS5u"],"license":"UNLICENSED"}},"version":1},"id":65} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106ed3803806106ed83398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6105f6806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d91461008557806337baff0f1461008d5780633886c09b146100a2578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fc565b60405180910390f35b61006f610104565b6100a061009b3660046103ed565b61013a565b005b6100aa6102a8565b60405190815260200161007c565b6100aa6102ce565b6100aa601081565b6100d06102dd565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dd565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6020820151600061014d600160106104ad565b6010811061015d5761015d6104d2565b015481146101ac57806000610174600160106104ad565b60108110610184576101846104d2565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a91906101f5908e9086908f908f908f908f908f908e906004016104e8565b602060405180830381865afa158015610212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102369190610597565b905080156102825760006010604087016102408801835b601081101561027857825185558151845560019485019493840193602093840193909201910161024d565b505050505061029b565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102b76001826104ad565b601081106102c7576102c76104d2565b0154905090565b6000806102b7600160106104ad565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610325578151835260209283019290910190600101610306565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035557600080fd5b813567ffffffffffffffff808211156103705761037061032e565b604051601f8301601f19908116603f011681019082821181831017156103985761039861032e565b816040528381528660208588010111156103b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146103e857600080fd5b919050565b600080600080600080600080610100898b03121561040a57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461043557600080fd5b955060608901359450608089013567ffffffffffffffff8082111561045957600080fd5b6104658c838d01610344565b955060a08b0135945060c08b013591508082111561048257600080fd5b5061048f8b828c01610344565b92505061049e60e08a016103d1565b90509295985092959890939650565b6000828210156104cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105495787830182015185840161012001529181019161052a565b8083111561055c57600061012082870101525b60c08501879052601f01601f1916840161012001925061058a91505060e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156105a957600080fd5b815180151581146105b957600080fd5b939250505056fea2646970667358221220f25c704c27d0338d9dcf57842261213ec78d09c5395cf3593f97659450d6a54664736f6c634300080c0033","sourceMap":"369:4106:65:-:0;;;1077:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1159:7;:57;;-1:-1:-1;;;;;;1159:57:65;-1:-1:-1;;;;;1159:57:65;;;;;1281:13;-1:-1:-1;1243:34:65;-1:-1:-1;572:2:65;1243:34;:::i;:::-;1226:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:4106:65;;-1:-1:-1;369:4106:65;14:359:67;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:67;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:67:o;378:222::-;418:4;446:1;443;440:8;437:131;;;490:10;485:3;481:20;478:1;471:31;525:4;522:1;515:15;553:4;550:1;543:15;437:131;-1:-1:-1;585:9:67;;378:222::o;605:127::-;666:10;661:3;657:20;654:1;647:31;697:4;694:1;687:15;721:4;718:1;711:15;605:127;369:4106:65;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d91461008557806337baff0f1461008d5780633886c09b146100a2578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fc565b60405180910390f35b61006f610104565b6100a061009b3660046103ed565b61013a565b005b6100aa6102a8565b60405190815260200161007c565b6100aa6102ce565b6100aa601081565b6100d06102dd565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dd565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6020820151600061014d600160106104ad565b6010811061015d5761015d6104d2565b015481146101ac57806000610174600160106104ad565b60108110610184576101846104d2565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a91906101f5908e9086908f908f908f908f908f908e906004016104e8565b602060405180830381865afa158015610212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102369190610597565b905080156102825760006010604087016102408801835b601081101561027857825185558151845560019485019493840193602093840193909201910161024d565b505050505061029b565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102b76001826104ad565b601081106102c7576102c76104d2565b0154905090565b6000806102b7600160106104ad565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610325578151835260209283019290910190600101610306565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035557600080fd5b813567ffffffffffffffff808211156103705761037061032e565b604051601f8301601f19908116603f011681019082821181831017156103985761039861032e565b816040528381528660208588010111156103b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146103e857600080fd5b919050565b600080600080600080600080610100898b03121561040a57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461043557600080fd5b955060608901359450608089013567ffffffffffffffff8082111561045957600080fd5b6104658c838d01610344565b955060a08b0135945060c08b013591508082111561048257600080fd5b5061048f8b828c01610344565b92505061049e60e08a016103d1565b90509295985092959890939650565b6000828210156104cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105495787830182015185840161012001529181019161052a565b8083111561055c57600061012082870101525b60c08501879052601f01601f1916840161012001925061058a91505060e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156105a957600080fd5b815180151581146105b957600080fd5b939250505056fea2646970667358221220f25c704c27d0338d9dcf57842261213ec78d09c5395cf3593f97659450d6a54664736f6c634300080c0033","sourceMap":"369:4106:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1764:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1977:144;;;:::i;2127:2346::-;;;;;;:::i;:::-;;:::i;:::-;;1557:137;;;:::i;:::-;;;2776:25:67;;;2764:2;2749:18;1557:137:65;2630:177:67;1361:135:65;;;:::i;515:59::-;;572:2;515:59;;1764:142;1818:46;;:::i;:::-;1876:23;;;;;;;;;;;-1:-1:-1;;1876:23:65;;-1:-1:-1;1876:23:65;;;;;;;;;;;;;;;;;;;;;;;;1764:142;:::o;1977:144::-;2032:46;;:::i;:::-;2090:24;;;;;;;;;;2097:17;2090:24;;;;;;2097:17;;2090:24;;;;;;;;;;;;;;;;1977:144;:::o;2127:2346::-;2588:4;2574:19;;2568:26;2471:34;2665;2698:1;572:2;2665:34;:::i;:::-;2648:52;;;;;;;:::i;:::-;;;2618:26;:82;2614:217;;2739:26;2767:16;2784:34;2817:1;572:2;2784:34;:::i;:::-;2767:52;;;;;;;:::i;:::-;;;2723:97;;-1:-1:-1;;;2723:97:65;;;;;3527:25:67;;;;3568:18;;;3561:34;3500:18;;2723:97:65;;;;;;;2614:217;2870:19;;;;;;;;;;2926:7;;:304;;-1:-1:-1;;;2926:304:65;;2841:26;;-1:-1:-1;;;;;2926:7:65;;:28;;:304;;2968:15;;2870:19;;3029:30;;3073:18;;3105:15;;3134:11;;3159:26;;3199:21;;2926:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2900:330;;3245:18;3241:1226;;;3383:21;3441:22;3731:2;3717:17;;3866:57;;;3383:21;3941:444;3966:30;3963:1;3960:37;3941:444;;;4059:18;;4039:39;;4232:19;;4211:41;;4187:1;4170:19;;;;4347:20;;;;4131:2;4114:20;;;;4289:21;;;;4005:9;3941:444;;;3945:14;;;;;3241:1226;;;4436:20;;-1:-1:-1;;;4436:20:65;;;;;;;;;;;3241:1226;2461:2012;;;2127:2346;;;;;;;;:::o;1557:137::-;1608:7;1634:17;1652:34;1685:1;1634:17;1652:34;:::i;:::-;1634:53;;;;;;;:::i;:::-;;;1627:60;;1557:137;:::o;1361:135::-;1411:7;;1454:34;1487:1;572:2;1454:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:67:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:67;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:67;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:67;1893:18;;1880:32;;-1:-1:-1;1962:2:67;1947:18;;1934:32;-1:-1:-1;;1995:43:67;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:67;2113:18;;2100:32;;-1:-1:-1;2183:3:67;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2994:222::-;3034:4;3062:1;3059;3056:8;3053:131;;;3106:10;3101:3;3097:20;3094:1;3087:31;3141:4;3138:1;3131:15;3169:4;3166:1;3159:15;3053:131;-1:-1:-1;3201:9:67;;2994:222::o;3221:127::-;3282:10;3277:3;3273:20;3270:1;3263:31;3313:4;3310:1;3303:15;3337:4;3334:1;3327:15;3715:1171;4021:4;4050:3;4080:6;4069:9;4062:25;4106:2;4144:6;4139:2;4128:9;4124:18;4117:34;4187:6;4182:2;4171:9;4167:18;4160:34;4246:26;4242:31;4234:6;4230:44;4225:2;4214:9;4210:18;4203:72;4312:6;4306:3;4295:9;4291:19;4284:35;4356:2;4350:3;4339:9;4335:19;4328:31;4388:6;4382:13;4431:6;4426:2;4415:9;4411:18;4404:34;4456:1;4447:10;;4466:141;4480:6;4477:1;4474:13;4466:141;;;4576:14;;;4572:23;;4566:30;4541:17;;;4560:3;4537:27;4530:67;4495:10;;;;4466:141;;;4625:6;4622:1;4619:13;4616:92;;;4696:1;4690:3;4681:6;4670:9;4666:22;4662:32;4655:43;4616:92;4811:3;4796:19;;4789:35;;;4769:2;4748:15;-1:-1:-1;;4744:29:67;4729:45;;4776:3;4725:55;;-1:-1:-1;4833:47:67;;-1:-1:-1;;4875:3:67;4860:19;;4852:6;-1:-1:-1;;;;;3672:31:67;3660:44;;3606:104;4833:47;3715:1171;;;;;;;;;;;:::o;4891:277::-;4958:6;5011:2;4999:9;4990:7;4986:23;4982:32;4979:52;;;5027:1;5024;5017:12;4979:52;5059:9;5053:16;5112:5;5105:13;5098:21;5091:5;5088:32;5078:60;;5134:1;5131;5124:12;5078:60;5157:5;4891:277;-1:-1:-1;;;4891:277:67:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x9fcd2cb923e5ef666b1b18a7e2a77d915d5bef119214dfc53cc5c6c044a87bc5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f32c8e9002c9a8bd9e23f63d430193e092e6b6cea56a11f839304feff3b333c7\",\"dweb:/ipfs/QmS2o2CeHebjAuviv715FsCNam95qy19qijJz4aw87YRJL\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x68ef2223020d5b4ce1fb2b0b016fb1f66f6b84edbb0370f96d9c1398146e9409\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://57ba2b7b58fc15cdc9eefd70ad09bf8719ff981eabb64d6fca0da049456b2541\",\"dweb:/ipfs/QmPKZJoGwmBnA4gm1C4VySZr9iscQyLd1MtFVz1RkjctzV\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x4866bdaf26f08a08a8cedd7d5a21e0ab8daa3762c3916e04214bc2494a2cc362\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://794655d015a266738be278995e1a0e454a25e72e935c5d60e2fce14454215438\",\"dweb:/ipfs/QmYEYQx6AtSxFydEDUnwEWd1n1n5NiANJui5M9KTjn4gWk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x9fcd2cb923e5ef666b1b18a7e2a77d915d5bef119214dfc53cc5c6c044a87bc5","urls":["bzz-raw://f32c8e9002c9a8bd9e23f63d430193e092e6b6cea56a11f839304feff3b333c7","dweb:/ipfs/QmS2o2CeHebjAuviv715FsCNam95qy19qijJz4aw87YRJL"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x68ef2223020d5b4ce1fb2b0b016fb1f66f6b84edbb0370f96d9c1398146e9409","urls":["bzz-raw://57ba2b7b58fc15cdc9eefd70ad09bf8719ff981eabb64d6fca0da049456b2541","dweb:/ipfs/QmPKZJoGwmBnA4gm1C4VySZr9iscQyLd1MtFVz1RkjctzV"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0x4866bdaf26f08a08a8cedd7d5a21e0ab8daa3762c3916e04214bc2494a2cc362","urls":["bzz-raw://794655d015a266738be278995e1a0e454a25e72e935c5d60e2fce14454215438","dweb:/ipfs/QmYEYQx6AtSxFydEDUnwEWd1n1n5NiANJui5M9KTjn4gWk"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/MinaBridge.sol","id":47947,"exportedSymbols":{"AccountIsNotValid":[47786],"AlignedLayerServiceManager":[8505],"AlignedLayerServiceManagerStorage":[8527],"BLSSignatureChecker":[4846],"IAVSDirectory":[76],"IAlignedLayerServiceManager":[8603],"IPauserRegistry":[1244],"IRegistryCoordinator":[6102],"IRewardsCoordinator":[1584],"IStakeRegistry":[6512],"Merkle":[3209],"MinaBridge":[47946],"NewStateIsNotValid":[47776],"Pausable":[3505],"ServiceManagerBase":[5394],"TipStateIsWrong":[47782]},"nodeType":"SourceUnit","src":"39:4437:65","nodes":[{"id":47773,"nodeType":"PragmaDirective","src":"39:24:65","nodes":[],"literals":["solidity","^","0.8",".12"]},{"id":47774,"nodeType":"ImportDirective","src":"65:73:65","nodes":[],"absolutePath":"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol","file":"aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol","nameLocation":"-1:-1:-1","scope":47947,"sourceUnit":8506,"symbolAliases":[],"unitAlias":""},{"id":47776,"nodeType":"ErrorDefinition","src":"140:27:65","nodes":[],"name":"NewStateIsNotValid","nameLocation":"146:18:65","parameters":{"id":47775,"nodeType":"ParameterList","parameters":[],"src":"164:2:65"}},{"id":47782,"nodeType":"ErrorDefinition","src":"180:74:65","nodes":[],"name":"TipStateIsWrong","nameLocation":"186:15:65","parameters":{"id":47781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47778,"mutability":"mutable","name":"pubInputTipStateHash","nameLocation":"210:20:65","nodeType":"VariableDeclaration","scope":47782,"src":"202:28:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47780,"mutability":"mutable","name":"tipStatehash","nameLocation":"240:12:65","nodeType":"VariableDeclaration","scope":47782,"src":"232:20:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"232:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"201:52:65"}},{"id":47786,"nodeType":"ErrorDefinition","src":"267:47:65","nodes":[],"name":"AccountIsNotValid","nameLocation":"273:17:65","parameters":{"id":47785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47784,"mutability":"mutable","name":"accountIdHash","nameLocation":"299:13:65","nodeType":"VariableDeclaration","scope":47786,"src":"291:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"291:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"290:23:65"}},{"id":47946,"nodeType":"ContractDefinition","src":"369:4106:65","nodes":[{"id":47791,"nodeType":"VariableDeclaration","src":"515:59:65","nodes":[],"constant":true,"documentation":{"id":47788,"nodeType":"StructuredDocumentation","src":"395:115:65","text":"@notice The length of the verified state chain (also called the bridge's transition\n frontier) to store."},"functionSelector":"fb299cd8","mutability":"constant","name":"BRIDGE_TRANSITION_FRONTIER_LEN","nameLocation":"539:30:65","scope":47946,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47789,"name":"uint256","nodeType":"ElementaryTypeName","src":"515:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136","id":47790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"572:2:65","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"visibility":"public"},{"id":47796,"nodeType":"VariableDeclaration","src":"710:56:65","nodes":[],"constant":false,"documentation":{"id":47792,"nodeType":"StructuredDocumentation","src":"581:124:65","text":"@notice The state hash of the last verified chain of Mina states (also called\n the bridge's transition frontier)."},"mutability":"mutable","name":"chainStateHashes","nameLocation":"750:16:65","scope":47946,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16]"},"typeName":{"baseType":{"id":47793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"710:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47795,"length":{"id":47794,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"718:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"ArrayTypeName","src":"710:39:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage_ptr","typeString":"bytes32[16]"}},"visibility":"internal"},{"id":47801,"nodeType":"VariableDeclaration","src":"902:57:65","nodes":[],"constant":false,"documentation":{"id":47797,"nodeType":"StructuredDocumentation","src":"772:125:65","text":"@notice The ledger hash of the last verified chain of Mina states (also called\n the bridge's transition frontier)."},"mutability":"mutable","name":"chainLedgerHashes","nameLocation":"942:17:65","scope":47946,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16]"},"typeName":{"baseType":{"id":47798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"902:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47800,"length":{"id":47799,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"910:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"ArrayTypeName","src":"902:39:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage_ptr","typeString":"bytes32[16]"}},"visibility":"internal"},{"id":47805,"nodeType":"VariableDeclaration","src":"1036:34:65","nodes":[],"constant":false,"documentation":{"id":47802,"nodeType":"StructuredDocumentation","src":"966:65:65","text":"@notice Reference to the AlignedLayerServiceManager contract."},"mutability":"mutable","name":"aligned","nameLocation":"1063:7:65","scope":47946,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"},"typeName":{"id":47804,"nodeType":"UserDefinedTypeName","pathNode":{"id":47803,"name":"AlignedLayerServiceManager","nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"1036:26:65"},"referencedDeclaration":8505,"src":"1036:26:65","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"visibility":"internal"},{"id":47827,"nodeType":"FunctionDefinition","src":"1077:224:65","nodes":[],"body":{"id":47826,"nodeType":"Block","src":"1149:152:65","nodes":[],"statements":[{"expression":{"id":47816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47812,"name":"aligned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47805,"src":"1159:7:65","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47814,"name":"_alignedServiceAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47807,"src":"1196:19:65","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":47813,"name":"AlignedLayerServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8505,"src":"1169:26:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlignedLayerServiceManager_$8505_$","typeString":"type(contract AlignedLayerServiceManager)"}},"id":47815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1169:47:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"src":"1159:57:65","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"id":47817,"nodeType":"ExpressionStatement","src":"1159:57:65"},{"expression":{"id":47824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47818,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"1226:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47822,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47819,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"1243:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1276:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1243:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1226:52:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47823,"name":"_tipStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47809,"src":"1281:13:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1226:68:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47825,"nodeType":"ExpressionStatement","src":"1226:68:65"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47807,"mutability":"mutable","name":"_alignedServiceAddr","nameLocation":"1105:19:65","nodeType":"VariableDeclaration","scope":47827,"src":"1089:35:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":47806,"name":"address","nodeType":"ElementaryTypeName","src":"1089:15:65","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":47809,"mutability":"mutable","name":"_tipStateHash","nameLocation":"1134:13:65","nodeType":"VariableDeclaration","scope":47827,"src":"1126:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1126:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1088:60:65"},"returnParameters":{"id":47811,"nodeType":"ParameterList","parameters":[],"src":"1149:0:65"},"scope":47946,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47840,"nodeType":"FunctionDefinition","src":"1361:135:65","nodes":[],"body":{"id":47839,"nodeType":"Block","src":"1420:76:65","nodes":[],"statements":[{"expression":{"baseExpression":{"id":47833,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"1437:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47837,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47834,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"1454:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1454:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1437:52:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47832,"id":47838,"nodeType":"Return","src":"1430:59:65"}]},"documentation":{"id":47828,"nodeType":"StructuredDocumentation","src":"1307:49:65","text":"@notice Returns the last verified state hash."},"functionSelector":"b8184745","implemented":true,"kind":"function","modifiers":[],"name":"getTipStateHash","nameLocation":"1370:15:65","parameters":{"id":47829,"nodeType":"ParameterList","parameters":[],"src":"1385:2:65"},"returnParameters":{"id":47832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47831,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47840,"src":"1411:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47830,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1411:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1410:9:65"},"scope":47946,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47853,"nodeType":"FunctionDefinition","src":"1557:137:65","nodes":[],"body":{"id":47852,"nodeType":"Block","src":"1617:77:65","nodes":[],"statements":[{"expression":{"baseExpression":{"id":47846,"name":"chainLedgerHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47801,"src":"1634:17:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47850,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47847,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"1652:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1685:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1652:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1634:53:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47845,"id":47851,"nodeType":"Return","src":"1627:60:65"}]},"documentation":{"id":47841,"nodeType":"StructuredDocumentation","src":"1502:50:65","text":"@notice Returns the last verified ledger hash."},"functionSelector":"3886c09b","implemented":true,"kind":"function","modifiers":[],"name":"getTipLedgerHash","nameLocation":"1566:16:65","parameters":{"id":47842,"nodeType":"ParameterList","parameters":[],"src":"1582:2:65"},"returnParameters":{"id":47845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47853,"src":"1608:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1608:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1607:9:65"},"scope":47946,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47864,"nodeType":"FunctionDefinition","src":"1764:142:65","nodes":[],"body":{"id":47863,"nodeType":"Block","src":"1866:40:65","nodes":[],"statements":[{"expression":{"id":47861,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"1883:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"functionReturnParameters":47860,"id":47862,"nodeType":"Return","src":"1876:23:65"}]},"documentation":{"id":47854,"nodeType":"StructuredDocumentation","src":"1700:59:65","text":"@notice Returns the latest verified chain state hashes."},"functionSelector":"03f93e50","implemented":true,"kind":"function","modifiers":[],"name":"getChainStateHashes","nameLocation":"1773:19:65","parameters":{"id":47855,"nodeType":"ParameterList","parameters":[],"src":"1792:2:65"},"returnParameters":{"id":47860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47864,"src":"1818:46:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_memory_ptr","typeString":"bytes32[16]"},"typeName":{"baseType":{"id":47856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1818:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47858,"length":{"id":47857,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"1826:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"ArrayTypeName","src":"1818:39:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage_ptr","typeString":"bytes32[16]"}},"visibility":"internal"}],"src":"1817:48:65"},"scope":47946,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47875,"nodeType":"FunctionDefinition","src":"1977:144:65","nodes":[],"body":{"id":47874,"nodeType":"Block","src":"2080:41:65","nodes":[],"statements":[{"expression":{"id":47872,"name":"chainLedgerHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47801,"src":"2097:17:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"functionReturnParameters":47871,"id":47873,"nodeType":"Return","src":"2090:24:65"}]},"documentation":{"id":47865,"nodeType":"StructuredDocumentation","src":"1912:60:65","text":"@notice Returns the latest verified chain ledger hashes."},"functionSelector":"2bc4f8d9","implemented":true,"kind":"function","modifiers":[],"name":"getChainLedgerHashes","nameLocation":"1986:20:65","parameters":{"id":47866,"nodeType":"ParameterList","parameters":[],"src":"2006:2:65"},"returnParameters":{"id":47871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47875,"src":"2032:46:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_memory_ptr","typeString":"bytes32[16]"},"typeName":{"baseType":{"id":47867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2032:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47869,"length":{"id":47868,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"2040:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"ArrayTypeName","src":"2032:39:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage_ptr","typeString":"bytes32[16]"}},"visibility":"internal"}],"src":"2031:48:65"},"scope":47946,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47945,"nodeType":"FunctionDefinition","src":"2127:2346:65","nodes":[],"body":{"id":47944,"nodeType":"Block","src":"2461:2012:65","nodes":[],"statements":[{"assignments":[47895],"declarations":[{"constant":false,"id":47895,"mutability":"mutable","name":"pubInputBridgeTipStateHash","nameLocation":"2479:26:65","nodeType":"VariableDeclaration","scope":47944,"src":"2471:34:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2471:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47896,"nodeType":"VariableDeclarationStatement","src":"2471:34:65"},{"AST":{"nodeType":"YulBlock","src":"2524:80:65","statements":[{"nodeType":"YulAssignment","src":"2538:56:65","value":{"arguments":[{"arguments":[{"name":"pubInput","nodeType":"YulIdentifier","src":"2578:8:65"},{"kind":"number","nodeType":"YulLiteral","src":"2588:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2574:3:65"},"nodeType":"YulFunctionCall","src":"2574:19:65"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2568:5:65"},"nodeType":"YulFunctionCall","src":"2568:26:65"},"variableNames":[{"name":"pubInputBridgeTipStateHash","nodeType":"YulIdentifier","src":"2538:26:65"}]}]},"evmVersion":"london","externalReferences":[{"declaration":47889,"isOffset":false,"isSlot":false,"src":"2578:8:65","valueSize":1},{"declaration":47895,"isOffset":false,"isSlot":false,"src":"2538:26:65","valueSize":1}],"id":47897,"nodeType":"InlineAssembly","src":"2515:89:65"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":47904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47898,"name":"pubInputBridgeTipStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47895,"src":"2618:26:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":47899,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"2648:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47903,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47900,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"2665:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2698:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2665:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2648:52:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2618:82:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47915,"nodeType":"IfStatement","src":"2614:217:65","trueBody":{"id":47914,"nodeType":"Block","src":"2702:129:65","statements":[{"errorCall":{"arguments":[{"id":47906,"name":"pubInputBridgeTipStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47895,"src":"2739:26:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":47907,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"2767:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47911,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47908,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"2784:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2817:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2784:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2767:52:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":47905,"name":"TipStateIsWrong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47782,"src":"2723:15:65","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) pure"}},"id":47912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2723:97:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47913,"nodeType":"RevertStatement","src":"2716:104:65"}]}},{"assignments":[47917],"declarations":[{"constant":false,"id":47917,"mutability":"mutable","name":"pubInputCommitment","nameLocation":"2849:18:65","nodeType":"VariableDeclaration","scope":47944,"src":"2841:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2841:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47921,"initialValue":{"arguments":[{"id":47919,"name":"pubInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47889,"src":"2880:8:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47918,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2870:9:65","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2870:19:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2841:48:65"},{"assignments":[47923],"declarations":[{"constant":false,"id":47923,"mutability":"mutable","name":"isNewStateVerified","nameLocation":"2905:18:65","nodeType":"VariableDeclaration","scope":47944,"src":"2900:23:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47922,"name":"bool","nodeType":"ElementaryTypeName","src":"2900:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":47935,"initialValue":{"arguments":[{"id":47926,"name":"proofCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"2968:15:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47927,"name":"pubInputCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47917,"src":"2997:18:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47928,"name":"provingSystemAuxDataCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47879,"src":"3029:30:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47929,"name":"proofGeneratorAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47881,"src":"3073:18:65","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},{"id":47930,"name":"batchMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47883,"src":"3105:15:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47931,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47885,"src":"3134:11:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":47932,"name":"verificationDataBatchIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47887,"src":"3159:26:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47933,"name":"batcherPaymentService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47891,"src":"3199:21:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes20","typeString":"bytes20"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47924,"name":"aligned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47805,"src":"2926:7:65","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"id":47925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verifyBatchInclusion","nodeType":"MemberAccess","referencedDeclaration":8455,"src":"2926:28:65","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes20_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,bytes32,bytes32,bytes20,bytes32,bytes memory,uint256,address) view external returns (bool)"}},"id":47934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2926:304:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2900:330:65"},{"condition":{"id":47936,"name":"isNewStateVerified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47923,"src":"3245:18:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":47942,"nodeType":"Block","src":"4415:52:65","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47939,"name":"NewStateIsNotValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47776,"src":"4436:18:65","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4436:20:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47941,"nodeType":"RevertStatement","src":"4429:27:65"}]},"id":47943,"nodeType":"IfStatement","src":"3241:1226:65","trueBody":{"id":47938,"nodeType":"Block","src":"3265:1144:65","statements":[{"AST":{"nodeType":"YulBlock","src":"3346:1053:65","statements":[{"nodeType":"YulVariableDeclaration","src":"3364:40:65","value":{"name":"chainStateHashes.slot","nodeType":"YulIdentifier","src":"3383:21:65"},"variables":[{"name":"slot_states","nodeType":"YulTypedName","src":"3368:11:65","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3421:42:65","value":{"name":"chainLedgerHashes.slot","nodeType":"YulIdentifier","src":"3441:22:65"},"variables":[{"name":"slot_ledgers","nodeType":"YulTypedName","src":"3425:12:65","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3698:36:65","value":{"arguments":[{"name":"pubInput","nodeType":"YulIdentifier","src":"3721:8:65"},{"kind":"number","nodeType":"YulLiteral","src":"3731:2:65","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3717:3:65"},"nodeType":"YulFunctionCall","src":"3717:17:65"},"variables":[{"name":"addr_states","nodeType":"YulTypedName","src":"3702:11:65","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3846:77:65","value":{"arguments":[{"name":"addr_states","nodeType":"YulIdentifier","src":"3870:11:65"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3887:2:65","type":"","value":"32"},{"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"YulIdentifier","src":"3891:30:65"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3883:3:65"},"nodeType":"YulFunctionCall","src":"3883:39:65"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3866:3:65"},"nodeType":"YulFunctionCall","src":"3866:57:65"},"variables":[{"name":"addr_ledgers","nodeType":"YulTypedName","src":"3850:12:65","type":""}]},{"body":{"nodeType":"YulBlock","src":"4017:368:65","statements":[{"expression":{"arguments":[{"name":"slot_states","nodeType":"YulIdentifier","src":"4046:11:65"},{"arguments":[{"name":"addr_states","nodeType":"YulIdentifier","src":"4065:11:65"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4059:5:65"},"nodeType":"YulFunctionCall","src":"4059:18:65"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4039:6:65"},"nodeType":"YulFunctionCall","src":"4039:39:65"},"nodeType":"YulExpressionStatement","src":"4039:39:65"},{"nodeType":"YulAssignment","src":"4099:35:65","value":{"arguments":[{"name":"addr_states","nodeType":"YulIdentifier","src":"4118:11:65"},{"kind":"number","nodeType":"YulLiteral","src":"4131:2:65","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4114:3:65"},"nodeType":"YulFunctionCall","src":"4114:20:65"},"variableNames":[{"name":"addr_states","nodeType":"YulIdentifier","src":"4099:11:65"}]},{"nodeType":"YulAssignment","src":"4155:34:65","value":{"arguments":[{"name":"slot_states","nodeType":"YulIdentifier","src":"4174:11:65"},{"kind":"number","nodeType":"YulLiteral","src":"4187:1:65","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4170:3:65"},"nodeType":"YulFunctionCall","src":"4170:19:65"},"variableNames":[{"name":"slot_states","nodeType":"YulIdentifier","src":"4155:11:65"}]},{"expression":{"arguments":[{"name":"slot_ledgers","nodeType":"YulIdentifier","src":"4218:12:65"},{"arguments":[{"name":"addr_ledgers","nodeType":"YulIdentifier","src":"4238:12:65"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4232:5:65"},"nodeType":"YulFunctionCall","src":"4232:19:65"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4211:6:65"},"nodeType":"YulFunctionCall","src":"4211:41:65"},"nodeType":"YulExpressionStatement","src":"4211:41:65"},{"nodeType":"YulAssignment","src":"4273:37:65","value":{"arguments":[{"name":"addr_ledgers","nodeType":"YulIdentifier","src":"4293:12:65"},{"kind":"number","nodeType":"YulLiteral","src":"4307:2:65","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4289:3:65"},"nodeType":"YulFunctionCall","src":"4289:21:65"},"variableNames":[{"name":"addr_ledgers","nodeType":"YulIdentifier","src":"4273:12:65"}]},{"nodeType":"YulAssignment","src":"4331:36:65","value":{"arguments":[{"name":"slot_ledgers","nodeType":"YulIdentifier","src":"4351:12:65"},{"kind":"number","nodeType":"YulLiteral","src":"4365:1:65","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4347:3:65"},"nodeType":"YulFunctionCall","src":"4347:20:65"},"variableNames":[{"name":"slot_ledgers","nodeType":"YulIdentifier","src":"4331:12:65"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3963:1:65"},{"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"YulIdentifier","src":"3966:30:65"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3960:2:65"},"nodeType":"YulFunctionCall","src":"3960:37:65"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3998:18:65","statements":[{"nodeType":"YulAssignment","src":"4000:14:65","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4009:1:65"},{"kind":"number","nodeType":"YulLiteral","src":"4012:1:65","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4005:3:65"},"nodeType":"YulFunctionCall","src":"4005:9:65"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4000:1:65"}]}]},"pre":{"nodeType":"YulBlock","src":"3945:14:65","statements":[{"nodeType":"YulVariableDeclaration","src":"3947:10:65","value":{"kind":"number","nodeType":"YulLiteral","src":"3956:1:65","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3951:1:65","type":""}]}]},"src":"3941:444:65"}]},"evmVersion":"london","externalReferences":[{"declaration":47791,"isOffset":false,"isSlot":false,"src":"3891:30:65","valueSize":1},{"declaration":47791,"isOffset":false,"isSlot":false,"src":"3966:30:65","valueSize":1},{"declaration":47801,"isOffset":false,"isSlot":true,"src":"3441:22:65","suffix":"slot","valueSize":1},{"declaration":47796,"isOffset":false,"isSlot":true,"src":"3383:21:65","suffix":"slot","valueSize":1},{"declaration":47889,"isOffset":false,"isSlot":false,"src":"3721:8:65","valueSize":1}],"id":47937,"nodeType":"InlineAssembly","src":"3337:1062:65"}]}}]},"functionSelector":"37baff0f","implemented":true,"kind":"function","modifiers":[],"name":"updateChain","nameLocation":"2136:11:65","parameters":{"id":47892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47877,"mutability":"mutable","name":"proofCommitment","nameLocation":"2165:15:65","nodeType":"VariableDeclaration","scope":47945,"src":"2157:23:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47879,"mutability":"mutable","name":"provingSystemAuxDataCommitment","nameLocation":"2198:30:65","nodeType":"VariableDeclaration","scope":47945,"src":"2190:38:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47878,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2190:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47881,"mutability":"mutable","name":"proofGeneratorAddr","nameLocation":"2246:18:65","nodeType":"VariableDeclaration","scope":47945,"src":"2238:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":47880,"name":"bytes20","nodeType":"ElementaryTypeName","src":"2238:7:65","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"},{"constant":false,"id":47883,"mutability":"mutable","name":"batchMerkleRoot","nameLocation":"2282:15:65","nodeType":"VariableDeclaration","scope":47945,"src":"2274:23:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2274:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47885,"mutability":"mutable","name":"merkleProof","nameLocation":"2320:11:65","nodeType":"VariableDeclaration","scope":47945,"src":"2307:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47884,"name":"bytes","nodeType":"ElementaryTypeName","src":"2307:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47887,"mutability":"mutable","name":"verificationDataBatchIndex","nameLocation":"2349:26:65","nodeType":"VariableDeclaration","scope":47945,"src":"2341:34:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47886,"name":"uint256","nodeType":"ElementaryTypeName","src":"2341:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47889,"mutability":"mutable","name":"pubInput","nameLocation":"2398:8:65","nodeType":"VariableDeclaration","scope":47945,"src":"2385:21:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47888,"name":"bytes","nodeType":"ElementaryTypeName","src":"2385:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47891,"mutability":"mutable","name":"batcherPaymentService","nameLocation":"2424:21:65","nodeType":"VariableDeclaration","scope":47945,"src":"2416:29:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47890,"name":"address","nodeType":"ElementaryTypeName","src":"2416:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2147:304:65"},"returnParameters":{"id":47893,"nodeType":"ParameterList","parameters":[],"src":"2461:0:65"},"scope":47946,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"MinaBridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":47787,"nodeType":"StructuredDocumentation","src":"316:53:65","text":"@title Mina to Ethereum Bridge's smart contract."},"fullyImplemented":true,"linearizedBaseContracts":[47946],"name":"MinaBridge","nameLocation":"378:10:65","scope":47947,"usedErrors":[47776,47782]}],"license":"UNLICENSED"},"id":65} \ No newline at end of file diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned_polling_service.rs index 9c366161..f8aa7ae9 100644 --- a/core/src/aligned_polling_service.rs +++ b/core/src/aligned_polling_service.rs @@ -109,11 +109,15 @@ async fn submit_with_nonce( nonce: U256, payment_service_addr: &str, ) -> Result { + // Temporary max fee. We should consider calculating this or setting it as an env var. + let fixed_max_fee = U256::from_dec_str("1300000000000000").map_err(|err| err.to_string())?; + submit_and_wait_verification( batcher_addr, eth_rpc_url, chain.to_owned(), mina_proof, + fixed_max_fee, wallet, nonce, payment_service_addr, diff --git a/core/src/main.rs b/core/src/main.rs index bc31cc26..35e7d91f 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -91,6 +91,7 @@ async fn main() { &chain, ð_rpc_url, wallet, + &batcher_eth_addr, ) .await .unwrap_or_else(|err| { @@ -132,6 +133,7 @@ async fn main() { &pub_input, &chain, ð_rpc_url, + &batcher_eth_addr, ) .await { diff --git a/core/src/smart_contract_utility.rs b/core/src/smart_contract_utility.rs index a909867e..359d8edd 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/smart_contract_utility.rs @@ -16,8 +16,9 @@ use crate::{ proof::{account_proof::MinaAccountPubInputs, state_proof::MinaStatePubInputs}, sol::serialization::SolSerialize, utils::constants::{ - ANVIL_CHAIN_ID, BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_DEVNET_ETH_ADDR, - BRIDGE_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, HOLESKY_CHAIN_ID, + ANVIL_CHAIN_ID, BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, + BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, + HOLESKY_CHAIN_ID, }, }; @@ -94,6 +95,7 @@ pub async fn update_chain( chain: &Chain, eth_rpc_url: &str, wallet: Wallet, + batcher_payment_service: &str, ) -> Result<(), String> { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, @@ -108,6 +110,9 @@ pub async fn update_chain( let serialized_pub_input = bincode::serialize(pub_input) .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; + let batcher_payment_service = Address::from_str(batcher_payment_service) + .map_err(|err| format!("Failed to parse batcher payment service address: {err}"))?; + debug!("Creating contract instance"); let mina_bridge_contract = mina_bridge_contract(eth_rpc_url, bridge_eth_addr, chain, wallet)?; @@ -141,6 +146,7 @@ pub async fn update_chain( merkle_proof, index_in_batch.into(), serialized_pub_input.into(), + batcher_payment_service, ); // update call reverts if batch is not valid or proof isn't included in it. @@ -258,9 +264,11 @@ pub async fn validate_account( pub_input: &MinaAccountPubInputs, chain: &Chain, eth_rpc_url: &str, + batcher_payment_service: &str, ) -> Result { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, + Chain::Holesky => BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, _ => { error!("Unimplemented Ethereum contract on selected chain"); unimplemented!() @@ -275,6 +283,9 @@ pub async fn validate_account( let serialized_pub_input = bincode::serialize(pub_input) .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; + let batcher_payment_service = Address::from_str(batcher_payment_service) + .map_err(|err| format!("Failed to parse batcher payment service address: {err}"))?; + let AlignedVerificationData { verification_data_commitment, batch_merkle_root, @@ -298,15 +309,18 @@ pub async fn validate_account( debug!("Validating account"); - let call = contract.validate_account( + let aligned_args = AlignedArgs { proof_commitment, proving_system_aux_data_commitment, proof_generator_addr, batch_merkle_root, merkle_proof, - index_in_batch.into(), - serialized_pub_input.into(), - ); + verification_data_batch_index: index_in_batch.into(), + pub_input: serialized_pub_input.into(), + batcher_payment_service, + }; + + let call = contract.validate_account(aligned_args); info!( "Estimated account verification gas cost: {}", diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index ab71122a..9bb16134 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -18,11 +18,12 @@ pub const MINA_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; -pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x42c6AA216f895278BAcfbD01E3aae2B99d2e4673"; +pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x8aED2F71774a98354091F8a885a19fA9C8659169"; pub const BRIDGE_TRANSITION_FRONTIER_LEN: usize = 16; pub const BRIDGE_ACCOUNT_DEVNET_ETH_ADDR: &str = "0xA15BB66138824a1c7167f5E85b957d04Dd34E468"; +pub const BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR: &str = "0x9Cbb0439EB42FBda982851068D52b1871F72Bea9"; // Aligned related constants pub const PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; pub const ALIGNED_SM_DEVNET_ETH_ADDR: &str = "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8"; -pub const ALIGNED_SM_HOLESKY_ETH_ADDR: &str = "0x0584313310bD52B77CF0b81b350Ca447B97Df5DF"; +pub const ALIGNED_SM_HOLESKY_ETH_ADDR: &str = "0x8B744d6E01d13C868AB1cf69c8788D88C6058A92"; From 48e5c4310ec3231e471cb4513f98f24530bf8de4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 25 Sep 2024 11:33:08 -0300 Subject: [PATCH 33/46] Sudoku example app (#338) * Init bun project * Refactor * chore: forge init * forge install: forge-std v1.9.2 * Rename Counter to Sudoku * forge install: mina_bridge 132e4ea * Contract mockup * Add remappings, fix version * Remove unused files, add contract constructor * Remove mina_bridge submodule * Rename zkapp * Rename app to example * forge install: forge-std v1.9.2 * Created Rust app project * zkApp script * Fiz zkapp script * Core refactor * Add sdk * Complete app * Change zkapp address to constant * Updated rust app * Rename mina_contract to mina_zkapp * Completed sudoku eth contract * [WIP] Update Aligned to 0.7.0 We must wait until Aligned uploads the release for 0.7.0. Once it's uploaded we need to add a batcher payment service arg to the `updateChain` call in the Aligned polling service. * Update Aligned to 0.7.0 * Update Aligned branch * Finish sudoku contract deployer * Rename sudoku contract * Fix contract deployer * Update Aligned and Bridge contracts * Update Aligned Foundry submodule * Add call to SudokuValidity, small fixes to contract * Update makefile * Add better log and getter function for timestamp * Fix contract validateAccount call * Add retrying logic for mina zkapp * Fix Makefile * Zkapp fixes * Fix ledger hash search * Add log * Fix boolean comparison * Add debug to query_candidate_chain() * Update app * Update to aligned 0.7 * Update constants * Change zkapp config * Fix clippy * Add example diagram --------- Co-authored-by: gabrielbosio --- .gitmodules | 6 + Makefile | 15 +- contract/lib/aligned_layer | 2 +- contract/src/MinaAccountValidation.sol | 28 +- contract/src/MinaBridge.sol | 48 +- contract_deployer/Cargo.lock | 141 +- contract_deployer/src/main.rs | 4 +- core/Cargo.lock | 141 +- core/abi/MinaAccountValidation.json | 2 +- core/abi/MinaBridge.json | 2 +- core/{src => }/graphql/account_query.graphql | 0 .../graphql/best_chain_query.graphql | 0 core/{src => }/graphql/mina_schema.json | 0 core/{src => }/graphql/state_query.graphql | 0 ...{aligned_polling_service.rs => aligned.rs} | 0 .../src/{smart_contract_utility.rs => eth.rs} | 6 +- core/src/lib.rs | 25 +- core/src/main.rs | 26 +- core/src/{mina_polling_service.rs => mina.rs} | 21 +- core/src/sdk.rs | 158 + core/src/utils/constants.rs | 6 +- example/app/.gitignore | 1 + example/app/Cargo.lock | 6678 ++++++++++++ example/app/Cargo.toml | 22 + example/app/abi/SudokuValidity.json | 1 + example/app/src/main.rs | 249 + .../eth_contract/.github/workflows/test.yml | 45 + example/eth_contract/.gitignore | 14 + example/eth_contract/README.md | 66 + example/eth_contract/foundry.toml | 6 + example/eth_contract/lib/forge-std | 1 + example/eth_contract/lib/mina_bridge | 1 + example/eth_contract/remappings.txt | 23 + example/eth_contract/src/SudokuValidity.sol | 86 + example/example_diagram.png | Bin 0 -> 1797635 bytes example/mina_zkapp/.eslintrc.cjs | 23 + example/mina_zkapp/.gitattributes | 3 + example/mina_zkapp/.github/workflows/ci.yml | 28 + example/mina_zkapp/.gitignore | 13 + example/mina_zkapp/.npmignore | 14 + example/mina_zkapp/.prettierignore | 14 + example/mina_zkapp/.prettierrc | 6 + example/mina_zkapp/LICENSE | 199 + example/mina_zkapp/README.md | 26 + example/mina_zkapp/babel.config.cjs | 3 + example/mina_zkapp/config.json | 8 + example/mina_zkapp/jest-resolver.cjs | 21 + example/mina_zkapp/jest.config.js | 24 + example/mina_zkapp/package-lock.json | 9032 +++++++++++++++++ example/mina_zkapp/package.json | 45 + example/mina_zkapp/src/index.ts | 3 + example/mina_zkapp/src/run.ts | 93 + example/mina_zkapp/src/sudoku-lib.js | 199 + example/mina_zkapp/src/sudoku.test.ts | 84 + example/mina_zkapp/src/sudoku.ts | 114 + example/mina_zkapp/tsconfig.json | 24 + 56 files changed, 17591 insertions(+), 209 deletions(-) rename core/{src => }/graphql/account_query.graphql (100%) rename core/{src => }/graphql/best_chain_query.graphql (100%) rename core/{src => }/graphql/mina_schema.json (100%) rename core/{src => }/graphql/state_query.graphql (100%) rename core/src/{aligned_polling_service.rs => aligned.rs} (100%) rename core/src/{smart_contract_utility.rs => eth.rs} (99%) rename core/src/{mina_polling_service.rs => mina.rs} (95%) create mode 100644 core/src/sdk.rs create mode 100644 example/app/.gitignore create mode 100644 example/app/Cargo.lock create mode 100644 example/app/Cargo.toml create mode 100644 example/app/abi/SudokuValidity.json create mode 100644 example/app/src/main.rs create mode 100644 example/eth_contract/.github/workflows/test.yml create mode 100644 example/eth_contract/.gitignore create mode 100644 example/eth_contract/README.md create mode 100644 example/eth_contract/foundry.toml create mode 160000 example/eth_contract/lib/forge-std create mode 120000 example/eth_contract/lib/mina_bridge create mode 100644 example/eth_contract/remappings.txt create mode 100644 example/eth_contract/src/SudokuValidity.sol create mode 100644 example/example_diagram.png create mode 100644 example/mina_zkapp/.eslintrc.cjs create mode 100644 example/mina_zkapp/.gitattributes create mode 100644 example/mina_zkapp/.github/workflows/ci.yml create mode 100644 example/mina_zkapp/.gitignore create mode 100644 example/mina_zkapp/.npmignore create mode 100644 example/mina_zkapp/.prettierignore create mode 100644 example/mina_zkapp/.prettierrc create mode 100644 example/mina_zkapp/LICENSE create mode 100644 example/mina_zkapp/README.md create mode 100644 example/mina_zkapp/babel.config.cjs create mode 100644 example/mina_zkapp/config.json create mode 100644 example/mina_zkapp/jest-resolver.cjs create mode 100644 example/mina_zkapp/jest.config.js create mode 100644 example/mina_zkapp/package-lock.json create mode 100644 example/mina_zkapp/package.json create mode 100644 example/mina_zkapp/src/index.ts create mode 100644 example/mina_zkapp/src/run.ts create mode 100644 example/mina_zkapp/src/sudoku-lib.js create mode 100644 example/mina_zkapp/src/sudoku.test.ts create mode 100644 example/mina_zkapp/src/sudoku.ts create mode 100644 example/mina_zkapp/tsconfig.json diff --git a/.gitmodules b/.gitmodules index 15ed80bc..fce16b81 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,9 @@ [submodule "contract/lib/aligned_layer"] path = contract/lib/aligned_layer url = https://github.com/lambdaclass/aligned_layer +[submodule "app/eth_contract/lib/forge-std"] + path = app/eth_contract/lib/forge-std + url = https://github.com/foundry-rs/forge-std +[submodule "example/eth_contract/lib/forge-std"] + path = example/eth_contract/lib/forge-std + url = https://github.com/foundry-rs/forge-std diff --git a/Makefile b/Makefile index 1df8720a..0ada52e6 100644 --- a/Makefile +++ b/Makefile @@ -6,10 +6,21 @@ submit_state: submit_account: @cargo run --manifest-path core/Cargo.toml --release -- submit-account ${PUBLIC_KEY} ${STATE_HASH} -gen_contract_abi: +gen_contract_abis: forge build --root contract/ + forge build --root example/eth_contract cp contract/out/MinaBridge.sol/MinaBridge.json core/abi/MinaBridge.json cp contract/out/MinaAccountValidation.sol/MinaAccountValidation.json core/abi/MinaAccountValidation.json + cp example/eth_contract/out/SudokuValidity.sol/SudokuValidity.json example/app/abi/SudokuValidity.json -deploy_contract: gen_contract_abi +deploy_contract: gen_contract_abis @cargo run --manifest-path contract_deployer/Cargo.toml --release + +deploy_example_contract: gen_contract_abis + @cargo run --manifest-path example/app/Cargo.toml --release -- deploy-contract + +execute_example: + cd example/mina_zkapp; \ + npm run build; \ + node build/src/run.js + cargo run --manifest-path example/app/Cargo.toml --release -- validate-solution diff --git a/contract/lib/aligned_layer b/contract/lib/aligned_layer index 39607b40..9bac7bc5 160000 --- a/contract/lib/aligned_layer +++ b/contract/lib/aligned_layer @@ -1 +1 @@ -Subproject commit 39607b4054fe7916d15cd10790a9fe6f8ce3e581 +Subproject commit 9bac7bc5a683ea1f68db9a928bed9a87e5f7b97f diff --git a/contract/src/MinaAccountValidation.sol b/contract/src/MinaAccountValidation.sol index c3de9c73..db0f0e41 100644 --- a/contract/src/MinaAccountValidation.sol +++ b/contract/src/MinaAccountValidation.sol @@ -3,8 +3,6 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; -error AccountIsNotVerified(); - contract MinaAccountValidation { struct AlignedArgs { bytes32 proofCommitment; @@ -24,9 +22,27 @@ contract MinaAccountValidation { aligned = AlignedLayerServiceManager(_alignedServiceAddr); } - function validateAccount(AlignedArgs calldata args) external view returns (Account memory) { - bytes calldata encodedAccount = args.pubInput[32 + 8:]; + function validateAccount( + AlignedArgs calldata args + ) external view returns (bool) { + bytes32 pubInputCommitment = keccak256(args.pubInput); + + return + aligned.verifyBatchInclusion( + args.proofCommitment, + pubInputCommitment, + args.provingSystemAuxDataCommitment, + args.proofGeneratorAddr, + args.batchMerkleRoot, + args.merkleProof, + args.verificationDataBatchIndex, + args.batcherPaymentService + ); + } + function validateAccountAndReturn( + AlignedArgs calldata args + ) external view returns (Account memory) { bytes32 pubInputCommitment = keccak256(args.pubInput); bool isAccountVerified = aligned.verifyBatchInclusion( @@ -41,9 +57,9 @@ contract MinaAccountValidation { ); if (isAccountVerified) { - return abi.decode(encodedAccount, (Account)); + return abi.decode(args.pubInput[32 + 8:], (Account)); } else { - revert AccountIsNotVerified(); + revert(); } } diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaBridge.sol index a9025a4c..8ce6fddb 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaBridge.sol @@ -39,15 +39,36 @@ contract MinaBridge { } /// @notice Returns the latest verified chain state hashes. - function getChainStateHashes() external view returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) { + function getChainStateHashes() + external + view + returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) + { return chainStateHashes; } /// @notice Returns the latest verified chain ledger hashes. - function getChainLedgerHashes() external view returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) { + function getChainLedgerHashes() + external + view + returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) + { return chainLedgerHashes; } + /// @notice Returns true if this snarked ledger hash was bridged. + function isLedgerVerified(bytes32 ledgerHash) external view returns (bool) { + for (uint256 i = 0; i < BRIDGE_TRANSITION_FRONTIER_LEN; i++) { + if ( + chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1 - i] == + ledgerHash + ) { + return true; + } + } + return false; + } + function updateChain( bytes32 proofCommitment, bytes32 provingSystemAuxDataCommitment, @@ -63,8 +84,14 @@ contract MinaBridge { pubInputBridgeTipStateHash := mload(add(pubInput, 0x20)) } - if (pubInputBridgeTipStateHash != chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]) { - revert TipStateIsWrong(pubInputBridgeTipStateHash, chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]); + if ( + pubInputBridgeTipStateHash != + chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] + ) { + revert TipStateIsWrong( + pubInputBridgeTipStateHash, + chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] + ); } bytes32 pubInputCommitment = keccak256(pubInput); @@ -91,9 +118,16 @@ contract MinaBridge { // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are state hashes. let addr_states := add(pubInput, 64) // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are ledger hashes. - let addr_ledgers := add(addr_states, mul(32, BRIDGE_TRANSITION_FRONTIER_LEN)) - - for { let i := 0 } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { i := add(i, 1) } { + let addr_ledgers := add( + addr_states, + mul(32, BRIDGE_TRANSITION_FRONTIER_LEN) + ) + + for { + let i := 0 + } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { + i := add(i, 1) + } { sstore(slot_states, mload(addr_states)) addr_states := add(addr_states, 32) slot_states := add(slot_states, 1) diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index fb476716..99ef5e95 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#7853f734afdacc51750728cb838d0a35599d7245" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#9bac7bc5a683ea1f68db9a928bed9a87e5f7b97f" dependencies = [ "ciborium", "ethers", @@ -123,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf770dad29577cd3580f3dd09005799224a912b8cdfdd6dc04d030d42b3df4e" +checksum = "805f7a974de5804f5c053edc6ca43b20883bdd3a733b3691200ae3a4b454a2db" dependencies = [ "num_enum", "strum 0.26.3", @@ -168,21 +168,22 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b095eb0533144b4497e84a9cc3e44a5c2e3754a3983c0376a55a2f9183a53e" +checksum = "8d0063d10c79086b787ce24a19b417cc00f7a8a58f5dd7a19b3483b61b1ac7b8" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", "alloy-primitives", + "alloy-rlp", "alloy-sol-types", ] [[package]] name = "alloy-dyn-abi" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4004925bff5ba0a11739ae84dbb6601a981ea692f3bd45b626935ee90a6b8471" +checksum = "c538495c47bc558bd3bb7becf9bde6172dacd5e1fc77531cdd584eb1c248f973" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -249,9 +250,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9996daf962fd0a90d3c93b388033228865953b92de7bb1959b891d78750a4091" +checksum = "03ebb591e349f3aab48a38da25ee1e2d1a3f4026d466b2e3160c618166b07aa4" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -308,23 +309,28 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411aff151f2a73124ee473708e82ed51b2535f68928b6a1caa8bc1246ae6f7cd" +checksum = "0f778fe4183cecaec41361e65869e81e748c44a77fa3e6ba20219ca92be33a19" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more 1.0.0", + "hashbrown 0.14.5", "hex-literal", + "indexmap 2.5.0", "itoa", "k256", "keccak-asm", + "paste", "proptest", "rand", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] @@ -380,7 +386,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.1", + "tower", "tracing", ] @@ -426,7 +432,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.1", + "tower", "tracing", "url", ] @@ -522,9 +528,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0458ccb02a564228fcd76efb8eb5a520521a8347becde37b402afec9a1b83859" +checksum = "1cd94eff5a90844c341b39f78227eef5d6890e2ce65c934d97b3f9d724234cc8" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -536,9 +542,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc65475025fc1e84bf86fc840f04f63fcccdcf3cf12053c99918e4054dfbc69" +checksum = "d900423cebf57657f5b18945031edd82b8d3c481c055e00574653ac70acb1305" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -555,9 +561,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed10f0715a0b69fde3236ff3b9ae5f6f7c97db5a387747100070d3016b9266b" +checksum = "58171163ee466fa907c974e0fb945ecde589217006c401d9414ac00316b63e0a" dependencies = [ "alloy-json-abi", "const-hex", @@ -572,9 +578,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3edae8ea1de519ccba896b6834dec874230f72fe695ff3c9c118e90ec7cff783" +checksum = "d51ebc7c9a94d3a5d2aa29108323d70c890ae97cda38a3598e8b5ebd34fe7d01" dependencies = [ "serde", "winnow", @@ -582,9 +588,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eb88e4da0a1b697ed6a9f811fdba223cf4d5c21410804fd1707836af73a462b" +checksum = "092cce3d2618d5e16e04306796c839c2b20585b591dcc9d64d0897a10c5bd086" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -607,7 +613,7 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tower 0.5.1", + "tower", "tracing", "url", ] @@ -622,7 +628,7 @@ dependencies = [ "alloy-transport", "reqwest 0.12.7", "serde_json", - "tower 0.5.1", + "tower", "tracing", "url", ] @@ -956,9 +962,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", @@ -1395,9 +1401,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", "clap_derive", @@ -1405,9 +1411,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstream", "anstyle", @@ -1417,9 +1423,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -3044,9 +3050,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ "bytes", "futures-channel", @@ -3057,7 +3063,6 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower 0.4.13", "tower-service", "tracing", ] @@ -3279,9 +3284,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -3405,9 +3410,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libm" @@ -4080,7 +4085,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.4", + "redox_syscall 0.5.5", "smallvec", "windows-targets 0.52.6", ] @@ -4271,9 +4276,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "poly-commitment" @@ -4481,6 +4486,7 @@ dependencies = [ "libc", "rand_chacha", "rand_core", + "serde", ] [[package]] @@ -4566,9 +4572,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" +checksum = "62871f2d65009c0256aed1b9cfeeb8ac272833c404e13d53d400cd0dad7a2ac0" dependencies = [ "bitflags 2.6.0", ] @@ -4864,6 +4870,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -5105,9 +5117,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -5550,9 +5562,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b95156f8b577cb59dc0b1df15c6f29a10afc5f8a7ac9786b0b5c68c19149278" +checksum = "27243031e95471f24108f05d00df2803932aaa7b9e461e69b95537d02613e3bf" dependencies = [ "paste", "proc-macro2", @@ -5640,18 +5652,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", @@ -5870,9 +5882,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.21" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.5.0", "serde", @@ -5881,21 +5893,6 @@ dependencies = [ "winnow", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - [[package]] name = "tower" version = "0.5.1" @@ -6555,9 +6552,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "c52ac009d615e79296318c1bcce2d422aaca15ad08515e344feeda07df67a587" dependencies = [ "memchr", ] diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index 4c2ebf75..1b92c02a 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -1,11 +1,11 @@ use aligned_sdk::core::types::Chain; use log::{debug, error, info}; use mina_bridge_core::{ - mina_polling_service::query_root, - smart_contract_utility::{ + eth::{ deploy_mina_account_validation_contract, deploy_mina_bridge_contract, MinaAccountValidationConstructorArgs, MinaBridgeConstructorArgs, SolStateHash, }, + mina::query_root, utils::{ constants::{ ALIGNED_SM_DEVNET_ETH_ADDR, ALIGNED_SM_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, diff --git a/core/Cargo.lock b/core/Cargo.lock index 074396a2..dd704d21 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#2fe0dacb2faeaed4150f70de5e0c6422fbec2fa6" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#9bac7bc5a683ea1f68db9a928bed9a87e5f7b97f" dependencies = [ "ciborium", "ethers", @@ -123,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf770dad29577cd3580f3dd09005799224a912b8cdfdd6dc04d030d42b3df4e" +checksum = "805f7a974de5804f5c053edc6ca43b20883bdd3a733b3691200ae3a4b454a2db" dependencies = [ "num_enum", "strum 0.26.3", @@ -168,21 +168,22 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b095eb0533144b4497e84a9cc3e44a5c2e3754a3983c0376a55a2f9183a53e" +checksum = "8d0063d10c79086b787ce24a19b417cc00f7a8a58f5dd7a19b3483b61b1ac7b8" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", "alloy-primitives", + "alloy-rlp", "alloy-sol-types", ] [[package]] name = "alloy-dyn-abi" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4004925bff5ba0a11739ae84dbb6601a981ea692f3bd45b626935ee90a6b8471" +checksum = "c538495c47bc558bd3bb7becf9bde6172dacd5e1fc77531cdd584eb1c248f973" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -249,9 +250,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9996daf962fd0a90d3c93b388033228865953b92de7bb1959b891d78750a4091" +checksum = "03ebb591e349f3aab48a38da25ee1e2d1a3f4026d466b2e3160c618166b07aa4" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -308,23 +309,28 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411aff151f2a73124ee473708e82ed51b2535f68928b6a1caa8bc1246ae6f7cd" +checksum = "0f778fe4183cecaec41361e65869e81e748c44a77fa3e6ba20219ca92be33a19" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more 1.0.0", + "hashbrown 0.14.5", "hex-literal", + "indexmap 2.5.0", "itoa", "k256", "keccak-asm", + "paste", "proptest", "rand", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] @@ -380,7 +386,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.1", + "tower", "tracing", ] @@ -426,7 +432,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.1", + "tower", "tracing", "url", ] @@ -522,9 +528,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0458ccb02a564228fcd76efb8eb5a520521a8347becde37b402afec9a1b83859" +checksum = "1cd94eff5a90844c341b39f78227eef5d6890e2ce65c934d97b3f9d724234cc8" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -536,9 +542,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc65475025fc1e84bf86fc840f04f63fcccdcf3cf12053c99918e4054dfbc69" +checksum = "d900423cebf57657f5b18945031edd82b8d3c481c055e00574653ac70acb1305" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -555,9 +561,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed10f0715a0b69fde3236ff3b9ae5f6f7c97db5a387747100070d3016b9266b" +checksum = "58171163ee466fa907c974e0fb945ecde589217006c401d9414ac00316b63e0a" dependencies = [ "alloy-json-abi", "const-hex", @@ -572,9 +578,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3edae8ea1de519ccba896b6834dec874230f72fe695ff3c9c118e90ec7cff783" +checksum = "d51ebc7c9a94d3a5d2aa29108323d70c890ae97cda38a3598e8b5ebd34fe7d01" dependencies = [ "serde", "winnow", @@ -582,9 +588,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eb88e4da0a1b697ed6a9f811fdba223cf4d5c21410804fd1707836af73a462b" +checksum = "092cce3d2618d5e16e04306796c839c2b20585b591dcc9d64d0897a10c5bd086" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -607,7 +613,7 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tower 0.5.1", + "tower", "tracing", "url", ] @@ -622,7 +628,7 @@ dependencies = [ "alloy-transport", "reqwest 0.12.7", "serde_json", - "tower 0.5.1", + "tower", "tracing", "url", ] @@ -956,9 +962,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", @@ -1395,9 +1401,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", "clap_derive", @@ -1405,9 +1411,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstream", "anstyle", @@ -1417,9 +1423,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -3025,9 +3031,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ "bytes", "futures-channel", @@ -3038,7 +3044,6 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower 0.4.13", "tower-service", "tracing", ] @@ -3260,9 +3265,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -3386,9 +3391,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libm" @@ -4061,7 +4066,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.4", + "redox_syscall 0.5.5", "smallvec", "windows-targets 0.52.6", ] @@ -4252,9 +4257,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "poly-commitment" @@ -4462,6 +4467,7 @@ dependencies = [ "libc", "rand_chacha", "rand_core", + "serde", ] [[package]] @@ -4547,9 +4553,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" +checksum = "62871f2d65009c0256aed1b9cfeeb8ac272833c404e13d53d400cd0dad7a2ac0" dependencies = [ "bitflags 2.6.0", ] @@ -4845,6 +4851,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -5086,9 +5098,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -5531,9 +5543,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b95156f8b577cb59dc0b1df15c6f29a10afc5f8a7ac9786b0b5c68c19149278" +checksum = "27243031e95471f24108f05d00df2803932aaa7b9e461e69b95537d02613e3bf" dependencies = [ "paste", "proc-macro2", @@ -5621,18 +5633,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", @@ -5851,9 +5863,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.21" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.5.0", "serde", @@ -5862,21 +5874,6 @@ dependencies = [ "winnow", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - [[package]] name = "tower" version = "0.5.1" @@ -6536,9 +6533,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "c52ac009d615e79296318c1bcce2d422aaca15ad08515e344feeda07df67a587" dependencies = [ "memchr", ] diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json index 672b290c..8369e6e2 100644 --- a/core/abi/MinaAccountValidation.json +++ b/core/abi/MinaAccountValidation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"AccountIsNotVerified","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161142d38038061142d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61139a806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639029ad1514610030575b600080fd5b61004361003e366004610475565b610059565b6040516100509190610857565b60405180910390f35b6100616101a7565b36600061007160c085018561097f565b61007f9160289082906109cc565b9092509050600061009360c086018661097f565b6040516100a19291906109f6565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190883590859060208b0135906100e19060608d01908d01610a06565b60608c01356100f360808e018e61097f565b8e60a001358f60e001602081019061010b9190610a35565b6040518a63ffffffff1660e01b815260040161012f99989796959493929190610a5e565b602060405180830381865afa15801561014c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101709190610aec565b9050801561018e5761018483850185611244565b9695505050505050565b604051634de35c5f60e11b815260040160405180910390fd5b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016102aa604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016102b76102bc565b905290565b6040518060e001604052806102cf610309565b81526020016102dc610328565b8152600060208201526040016102f0610347565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016102b7610365565b6040518060a001604052806005906020820280368337509192915050565b604051806101000160405280610379610410565b8152602001610386610449565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161041f5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161041f565b60006020828403121561048757600080fd5b81356001600160401b0381111561049d57600080fd5b820161010081850312156104b057600080fd5b9392505050565b6000815180845260005b818110156104dd576020818501810151868301820152016104c1565b818111156104ef576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6005811061052a5761052a610504565b9052565b61053982825161051a565b602081015161054b602084018261051a565b50604081015161055e604084018261051a565b506060810151610571606084018261051a565b506080810151610584608084018261051a565b5060a081015161059760a084018261051a565b5060c08101516105aa60c084018261051a565b5060e08101516105c260e084018263ffffffff169052565b50610100808201516105d68285018261051a565b5050610120808201516105eb8285018261051a565b5050610140808201516106008285018261051a565b5050610160808201516106158285018261051a565b50506101808082015161062a8285018261051a565b50506101a08082015161063f8285018261051a565b50505050565b6003811061052a5761052a610504565b8060005b600f81101561063f5761067784835180518252602090810151910152565b6040939093019260209190910190600101610659565b610698828251610645565b6020808201516106aa82850182610645565b50604082810151805160008684015b60078210156106e9576106d781845180518252602090810151910152565b918501916001919091019084016106b9565b50505091820151916106ff610200860184610655565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b600581101561063f578151845260209384019390910190600101610791565b80516000906109609084835b60088110156107db5782518252602092830192909101906001016107bc565b50505060208301516107f161010086018261068d565b50604083015163ffffffff16610840850152606083015161081661086086018261078d565b50608083015163ffffffff1661090085015260a0830151151561092085015260c0830151610940850182905261084e828601826104b7565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526108956103e08501836104b7565b915060608501516108b160a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006108ee81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e0880152610120880151925061096361020088018461052e565b870151868503601f1901848801529150610184905083826107b0565b6000808335601e1984360301811261099657600080fd5b8301803591506001600160401b038211156109b057600080fd5b6020019150368190038213156109c557600080fd5b9250929050565b600080858511156109dc57600080fd5b838611156109e957600080fd5b5050820193919092039150565b8183823760009101908152919050565b600060208284031215610a1857600080fd5b81356bffffffffffffffffffffffff19811681146104b057600080fd5b600060208284031215610a4757600080fd5b81356001600160a01b03811681146104b057600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610ae957600080fd5b50565b600060208284031215610afe57600080fd5b81516104b081610adb565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610b4157610b41610b09565b60405290565b6040516101c081016001600160401b0381118282101715610b4157610b41610b09565b604051606081016001600160401b0381118282101715610b4157610b41610b09565b60405161010081016001600160401b0381118282101715610b4157610b41610b09565b60405160e081016001600160401b0381118282101715610b4157610b41610b09565b60405161016081016001600160401b0381118282101715610b4157610b41610b09565b8035610bff81610adb565b919050565b600060408284031215610c1657600080fd5b610c1e610b1f565b9050813581526020820135610c3281610adb565b602082015292915050565b600082601f830112610c4e57600080fd5b81356001600160401b0380821115610c6857610c68610b09565b604051601f8301601f19908116603f01168101908282118183101715610c9057610c90610b09565b81604052838152866020858801011115610ca957600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610bff57600080fd5b803563ffffffff81168114610bff57600080fd5b600060a08284031215610d0657600080fd5b60405160a081018181106001600160401b0382111715610d2857610d28610b09565b604052905080610d3783610cc9565b8152610d4560208401610ce0565b6020820152610d5660408401610cc9565b6040820152610d6760608401610ce0565b6060820152610d7860808401610cc9565b60808201525092915050565b803560058110610bff57600080fd5b60006101c08284031215610da657600080fd5b610dae610b47565b9050610db982610d84565b8152610dc760208301610d84565b6020820152610dd860408301610d84565b6040820152610de960608301610d84565b6060820152610dfa60808301610d84565b6080820152610e0b60a08301610d84565b60a0820152610e1c60c08301610d84565b60c0820152610e2d60e08301610ce0565b60e0820152610100610e40818401610d84565b90820152610120610e52838201610d84565b90820152610140610e64838201610d84565b90820152610160610e76838201610d84565b90820152610180610e88838201610d84565b908201526101a0610e9a838201610d84565b9082015292915050565b600082601f830112610eb557600080fd5b6040516101008082018281106001600160401b0382111715610ed957610ed9610b09565b60405283018185821115610eec57600080fd5b845b82811015610f06578035825260209182019101610eee565b509195945050505050565b803560038110610bff57600080fd5b600060408284031215610f3257600080fd5b610f3a610b1f565b9050813581526020820135602082015292915050565b600082601f830112610f6157600080fd5b6040805160e081018181106001600160401b0382111715610f8457610f84610b09565b8252806101c0850186811115610f9957600080fd5b855b81811015610fbc57610fad8882610f20565b83526020909201918401610f9b565b50919695505050505050565b600082601f830112610fd957600080fd5b604080516101e081018181106001600160401b0382111715610ffd57610ffd610b09565b8252806103c085018681111561101257600080fd5b855b81811015610fbc576110268882610f20565b83526020909201918401611014565b600081830361074081121561104957600080fd5b611051610b6a565b915061105c83610f11565b825261106a60208401610f11565b602083015261070080603f198301121561108357600080fd5b61108b610b8c565b915061109a8560408601610f50565b82526110aa856102008601610fc8565b60208301526110bd856105c08601610f20565b60408301526110d0856106008601610f20565b60608301526110e3856106408601610f20565b60808301526110f6856106808601610f20565b60a0830152611109856106c08601610f20565b60c083015261111a85828601610f20565b60e083015250604082015292915050565b600082601f83011261113c57600080fd5b60405160a081018181106001600160401b038211171561115e5761115e610b09565b6040528060a084018581111561117357600080fd5b845b81811015610f06578035835260209283019201611175565b600061096082840312156111a057600080fd5b6111a8610baf565b90506111b48383610ea4565b81526111c4836101008401611035565b60208201526111d66108408301610ce0565b60408201526111e983610860840161112b565b60608201526111fb6109008301610ce0565b608082015261120d6109208301610bf4565b60a08201526109408201356001600160401b0381111561122c57600080fd5b61123884828501610c3d565b60c08301525092915050565b60006020828403121561125657600080fd5b81356001600160401b038082111561126d57600080fd5b908301906103c0828603121561128257600080fd5b61128a610bd1565b6112948684610c04565b8152604083013560208201526060830135828111156112b257600080fd5b6112be87828601610c3d565b6040830152506112d060808401610cc9565b60608201526112e160a08401610ce0565b608082015260c083013560a08201526112fd8660e08501610c04565b60c08201526101208084013560e083015261014061131d88828701610cf4565b610100840152611331886101e08701610d93565b828401526103a085013591508382111561134a57600080fd5b6113568883870161118d565b90830152509594505050505056fea26469706673582212204ff23779a72342be093c794a101b1afa919b353d8dbd2a9bc7be76ea30eab75864736f6c634300080c0033","sourceMap":"171:3431:64:-:0;;;635:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:7;:57;;-1:-1:-1;;;;;;694:57:64;-1:-1:-1;;;;;694:57:64;;;;;;;;;;171:3431;;14:298:67;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:67;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:67:o;:::-;171:3431:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639029ad1514610030575b600080fd5b61004361003e366004610475565b610059565b6040516100509190610857565b60405180910390f35b6100616101a7565b36600061007160c085018561097f565b61007f9160289082906109cc565b9092509050600061009360c086018661097f565b6040516100a19291906109f6565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190883590859060208b0135906100e19060608d01908d01610a06565b60608c01356100f360808e018e61097f565b8e60a001358f60e001602081019061010b9190610a35565b6040518a63ffffffff1660e01b815260040161012f99989796959493929190610a5e565b602060405180830381865afa15801561014c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101709190610aec565b9050801561018e5761018483850185611244565b9695505050505050565b604051634de35c5f60e11b815260040160405180910390fd5b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016102aa604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016102b76102bc565b905290565b6040518060e001604052806102cf610309565b81526020016102dc610328565b8152600060208201526040016102f0610347565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016102b7610365565b6040518060a001604052806005906020820280368337509192915050565b604051806101000160405280610379610410565b8152602001610386610449565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161041f5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161041f565b60006020828403121561048757600080fd5b81356001600160401b0381111561049d57600080fd5b820161010081850312156104b057600080fd5b9392505050565b6000815180845260005b818110156104dd576020818501810151868301820152016104c1565b818111156104ef576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6005811061052a5761052a610504565b9052565b61053982825161051a565b602081015161054b602084018261051a565b50604081015161055e604084018261051a565b506060810151610571606084018261051a565b506080810151610584608084018261051a565b5060a081015161059760a084018261051a565b5060c08101516105aa60c084018261051a565b5060e08101516105c260e084018263ffffffff169052565b50610100808201516105d68285018261051a565b5050610120808201516105eb8285018261051a565b5050610140808201516106008285018261051a565b5050610160808201516106158285018261051a565b50506101808082015161062a8285018261051a565b50506101a08082015161063f8285018261051a565b50505050565b6003811061052a5761052a610504565b8060005b600f81101561063f5761067784835180518252602090810151910152565b6040939093019260209190910190600101610659565b610698828251610645565b6020808201516106aa82850182610645565b50604082810151805160008684015b60078210156106e9576106d781845180518252602090810151910152565b918501916001919091019084016106b9565b50505091820151916106ff610200860184610655565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b600581101561063f578151845260209384019390910190600101610791565b80516000906109609084835b60088110156107db5782518252602092830192909101906001016107bc565b50505060208301516107f161010086018261068d565b50604083015163ffffffff16610840850152606083015161081661086086018261078d565b50608083015163ffffffff1661090085015260a0830151151561092085015260c0830151610940850182905261084e828601826104b7565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526108956103e08501836104b7565b915060608501516108b160a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006108ee81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e0880152610120880151925061096361020088018461052e565b870151868503601f1901848801529150610184905083826107b0565b6000808335601e1984360301811261099657600080fd5b8301803591506001600160401b038211156109b057600080fd5b6020019150368190038213156109c557600080fd5b9250929050565b600080858511156109dc57600080fd5b838611156109e957600080fd5b5050820193919092039150565b8183823760009101908152919050565b600060208284031215610a1857600080fd5b81356bffffffffffffffffffffffff19811681146104b057600080fd5b600060208284031215610a4757600080fd5b81356001600160a01b03811681146104b057600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610ae957600080fd5b50565b600060208284031215610afe57600080fd5b81516104b081610adb565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610b4157610b41610b09565b60405290565b6040516101c081016001600160401b0381118282101715610b4157610b41610b09565b604051606081016001600160401b0381118282101715610b4157610b41610b09565b60405161010081016001600160401b0381118282101715610b4157610b41610b09565b60405160e081016001600160401b0381118282101715610b4157610b41610b09565b60405161016081016001600160401b0381118282101715610b4157610b41610b09565b8035610bff81610adb565b919050565b600060408284031215610c1657600080fd5b610c1e610b1f565b9050813581526020820135610c3281610adb565b602082015292915050565b600082601f830112610c4e57600080fd5b81356001600160401b0380821115610c6857610c68610b09565b604051601f8301601f19908116603f01168101908282118183101715610c9057610c90610b09565b81604052838152866020858801011115610ca957600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610bff57600080fd5b803563ffffffff81168114610bff57600080fd5b600060a08284031215610d0657600080fd5b60405160a081018181106001600160401b0382111715610d2857610d28610b09565b604052905080610d3783610cc9565b8152610d4560208401610ce0565b6020820152610d5660408401610cc9565b6040820152610d6760608401610ce0565b6060820152610d7860808401610cc9565b60808201525092915050565b803560058110610bff57600080fd5b60006101c08284031215610da657600080fd5b610dae610b47565b9050610db982610d84565b8152610dc760208301610d84565b6020820152610dd860408301610d84565b6040820152610de960608301610d84565b6060820152610dfa60808301610d84565b6080820152610e0b60a08301610d84565b60a0820152610e1c60c08301610d84565b60c0820152610e2d60e08301610ce0565b60e0820152610100610e40818401610d84565b90820152610120610e52838201610d84565b90820152610140610e64838201610d84565b90820152610160610e76838201610d84565b90820152610180610e88838201610d84565b908201526101a0610e9a838201610d84565b9082015292915050565b600082601f830112610eb557600080fd5b6040516101008082018281106001600160401b0382111715610ed957610ed9610b09565b60405283018185821115610eec57600080fd5b845b82811015610f06578035825260209182019101610eee565b509195945050505050565b803560038110610bff57600080fd5b600060408284031215610f3257600080fd5b610f3a610b1f565b9050813581526020820135602082015292915050565b600082601f830112610f6157600080fd5b6040805160e081018181106001600160401b0382111715610f8457610f84610b09565b8252806101c0850186811115610f9957600080fd5b855b81811015610fbc57610fad8882610f20565b83526020909201918401610f9b565b50919695505050505050565b600082601f830112610fd957600080fd5b604080516101e081018181106001600160401b0382111715610ffd57610ffd610b09565b8252806103c085018681111561101257600080fd5b855b81811015610fbc576110268882610f20565b83526020909201918401611014565b600081830361074081121561104957600080fd5b611051610b6a565b915061105c83610f11565b825261106a60208401610f11565b602083015261070080603f198301121561108357600080fd5b61108b610b8c565b915061109a8560408601610f50565b82526110aa856102008601610fc8565b60208301526110bd856105c08601610f20565b60408301526110d0856106008601610f20565b60608301526110e3856106408601610f20565b60808301526110f6856106808601610f20565b60a0830152611109856106c08601610f20565b60c083015261111a85828601610f20565b60e083015250604082015292915050565b600082601f83011261113c57600080fd5b60405160a081018181106001600160401b038211171561115e5761115e610b09565b6040528060a084018581111561117357600080fd5b845b81811015610f06578035835260209283019201611175565b600061096082840312156111a057600080fd5b6111a8610baf565b90506111b48383610ea4565b81526111c4836101008401611035565b60208201526111d66108408301610ce0565b60408201526111e983610860840161112b565b60608201526111fb6109008301610ce0565b608082015261120d6109208301610bf4565b60a08201526109408201356001600160401b0381111561122c57600080fd5b61123884828501610c3d565b60c08301525092915050565b60006020828403121561125657600080fd5b81356001600160401b038082111561126d57600080fd5b908301906103c0828603121561128257600080fd5b61128a610bd1565b6112948684610c04565b8152604083013560208201526060830135828111156112b257600080fd5b6112be87828601610c3d565b6040830152506112d060808401610cc9565b60608201526112e160a08401610ce0565b608082015260c083013560a08201526112fd8660e08501610c04565b60c08201526101208084013560e083015261014061131d88828701610cf4565b610100840152611331886101e08701610d93565b828401526103a085013591508382111561134a57600080fd5b6113568883870161118d565b90830152509594505050505056fea26469706673582212204ff23779a72342be093c794a101b1afa919b353d8dbd2a9bc7be76ea30eab75864736f6c634300080c0033","sourceMap":"171:3431:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;764:763;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;839:14;;:::i;:::-;865:29;;897:13;;;;:4;:13;:::i;:::-;:22;;911:6;;897:22;;;:::i;:::-;865:54;;-1:-1:-1;865:54:64;-1:-1:-1;930:26:64;969:13;;;;:4;:13;:::i;:::-;959:24;;;;;;;:::i;:::-;;;;;;;;;;;994:22;1019:7;;959:24;;-1:-1:-1;994:22:64;-1:-1:-1;;;;;1019:7:64;;;;:28;;1061:20;;;959:24;;1127:35;;;;;1176:23;;;;;;;;;:::i;:::-;1213:20;;;;1247:16;;;;1213:4;1247:16;:::i;:::-;1277:4;:31;;;1322:4;:26;;;;;;;;;;:::i;:::-;1019:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;994:364;;1373:17;1369:152;;;1413:37;;;;1424:14;1413:37;:::i;:::-;1406:44;764:763;-1:-1:-1;;;;;;764:763:64:o;1369:152::-;1488:22;;-1:-1:-1;;;1488:22:64;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:392:67;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;214:9;201:23;-1:-1:-1;;;;;239:6:67;236:30;233:50;;;279:1;276;269:12;233:50;302:22;;358:3;340:16;;;336:26;333:46;;;375:1;372;365:12;333:46;398:2;14:392;-1:-1:-1;;;14:392:67:o;686:472::-;728:3;766:5;760:12;793:6;788:3;781:19;818:1;828:162;842:6;839:1;836:13;828:162;;;904:4;960:13;;;956:22;;950:29;932:11;;;928:20;;921:59;857:12;828:162;;;1008:6;1005:1;1002:13;999:87;;;1074:1;1067:4;1058:6;1053:3;1049:16;1045:27;1038:38;999:87;-1:-1:-1;1140:2:67;1119:15;-1:-1:-1;;1115:29:67;1106:39;;;;1147:4;1102:50;;686:472;-1:-1:-1;;686:472:67:o;1841:127::-;1902:10;1897:3;1893:20;1890:1;1883:31;1933:4;1930:1;1923:15;1957:4;1954:1;1947:15;1973:143;2057:1;2050:5;2047:12;2037:46;;2063:18;;:::i;:::-;2092;;1973:143::o;2121:1834::-;2186:47;2229:3;2221:5;2215:12;2186:47;:::i;:::-;2279:4;2272:5;2268:16;2262:23;2294:58;2346:4;2341:3;2337:14;2323:12;2294:58;:::i;:::-;;2400:4;2393:5;2389:16;2383:23;2415:60;2469:4;2464:3;2460:14;2444;2415:60;:::i;:::-;;2523:4;2516:5;2512:16;2506:23;2538:60;2592:4;2587:3;2583:14;2567;2538:60;:::i;:::-;;2646:4;2639:5;2635:16;2629:23;2661:60;2715:4;2710:3;2706:14;2690;2661:60;:::i;:::-;;2769:4;2762:5;2758:16;2752:23;2784:60;2838:4;2833:3;2829:14;2813;2784:60;:::i;:::-;;2892:4;2885:5;2881:16;2875:23;2907:60;2961:4;2956:3;2952:14;2936;2907:60;:::i;:::-;;3015:4;3008:5;3004:16;2998:23;3030:49;3073:4;3068:3;3064:14;3048;1346:10;1335:22;1323:35;;1270:94;3030:49;;3098:6;3152:2;3145:5;3141:14;3135:21;3165:58;3219:2;3214:3;3210:12;3194:14;3165:58;:::i;:::-;;;3242:6;3296:2;3289:5;3285:14;3279:21;3309:58;3363:2;3358:3;3354:12;3338:14;3309:58;:::i;:::-;;;3386:6;3440:2;3433:5;3429:14;3423:21;3453:58;3507:2;3502:3;3498:12;3482:14;3453:58;:::i;:::-;;;3530:6;3585:2;3578:5;3574:14;3568:21;3598:59;3653:2;3648:3;3644:12;3627:15;3598:59;:::i;:::-;;;3676:6;3731:2;3724:5;3720:14;3714:21;3744:59;3799:2;3794:3;3790:12;3773:15;3744:59;:::i;:::-;;;3822:6;3877:2;3870:5;3866:14;3860:21;3890:59;3945:2;3940:3;3936:12;3919:15;3890:59;:::i;:::-;;;2121:1834;;:::o;3960:145::-;4046:1;4039:5;4036:12;4026:46;;4052:18;;:::i;4266:335::-;4369:5;4392:1;4402:193;4416:4;4413:1;4410:11;4402:193;;;4463:48;4507:3;4498:6;4492:13;4186:12;;4174:25;;4248:4;4237:16;;;4231:23;4215:14;;4208:47;4110:151;4463:48;4540:4;4531:14;;;;;4580:4;4568:17;;;;;4436:1;4429:9;4402:193;;4606:1627;4675:49;4720:3;4712:5;4706:12;4675:49;:::i;:::-;4743:4;4793:2;4786:5;4782:14;4776:21;4806:58;4860:2;4855:3;4851:12;4837;4806:58;:::i;:::-;-1:-1:-1;4883:4:67;4924:14;;;4918:21;4989;;5097:1;4958:12;;;5107:195;5121:4;5118:1;5115:11;5107:195;;;5168:50;5212:5;5203:6;5197:13;4186:12;;4174:25;;4248:4;4237:16;;;4231:23;4215:14;;4208:47;4110:151;5168:50;5277:15;;;;5141:1;5134:9;;;;;5240:14;;5107:195;;;-1:-1:-1;;;5339:23:67;;;5333:30;;5372:65;5432:3;5423:13;;5333:30;5372:65;:::i;:::-;5474:23;;;5468:30;4186:12;;5561:4;5552:14;;4174:25;4248:4;4237:16;;;4231:23;4215:14;;;4208:47;5624:4;5604:25;;5598:32;4186:12;;5693:4;5684:14;;4174:25;4237:16;;4231:23;4215:14;;;4208:47;5756:4;5736:25;;5730:32;4186:12;;5825:4;5816:14;;4174:25;4237:16;;4231:23;4215:14;;;4208:47;5888:4;5868:25;;5862:32;4186:12;;5957:4;5948:14;;4174:25;4237:16;;4231:23;4215:14;;;4208:47;6020:4;6000:25;;5994:32;4186:12;;6089:4;6080:14;;4174:25;4237:16;;4231:23;4215:14;;;4208:47;6152:4;6132:25;;;6126:32;4186:12;;6221:4;6212:14;;4174:25;4237:16;4231:23;4215:14;;;;4208:47;;;;-1:-1:-1;;4606:1627:67:o;6238:326::-;6331:5;6354:1;6364:194;6378:4;6375:1;6372:11;6364:194;;;6437:13;;6425:26;;6474:4;6498:12;;;;6533:15;;;;6398:1;6391:9;6364:194;;6569:1166;6677:12;;6624:3;;6652:6;;6711:3;6624;6788:200;6802:4;6799:1;6796:11;6788:200;;;6863:13;;6849:28;;6900:4;6963:15;;;;6926:14;;;;6822:1;6815:9;6788:200;;;6792:3;;;7034:4;7027:5;7023:16;7017:23;7049:65;7106:6;7101:3;7097:16;7083:12;7049:65;:::i;:::-;-1:-1:-1;7162:4:67;7151:16;;7145:23;1346:10;1335:22;7220:6;7211:16;;1323:35;7276:4;7265:16;;7259:23;7291:58;7341:6;7332:16;;7259:23;7291:58;:::i;:::-;-1:-1:-1;7397:4:67;7386:16;;7380:23;1346:10;1335:22;7455:6;7446:16;;1323:35;7511:4;7500:16;;7494:23;481:13;474:21;7567:6;7558:16;;462:34;7623:4;7612:16;;7606:23;7654:6;7645:16;;7638:28;;;7682:47;7716:12;;;7606:23;7682:47;:::i;:::-;7675:54;6569:1166;-1:-1:-1;;;;;6569:1166:67:o;7740:1526::-;7921:2;7903:21;;;7969:13;;590:12;;7984:18;;;578:25;655:16;649:23;642:31;635:39;619:14;;;612:63;8057:2;8049:6;8045:15;8039:22;8034:2;8023:9;8019:18;8012:50;7884:4;8109;8101:6;8097:17;8091:24;8134:6;8177:2;8171:3;8160:9;8156:19;8149:31;8203:52;8250:3;8239:9;8235:19;8221:12;8203:52;:::i;:::-;8189:66;;8304:2;8296:6;8292:15;8286:22;8317:54;8366:3;8355:9;8351:19;8335:14;-1:-1:-1;;;;;1228:30:67;1216:43;;1163:102;8317:54;-1:-1:-1;8420:3:67;8408:16;;8402:23;1346:10;1335:22;;8483:3;8468:19;;1323:35;8434:54;8543:3;8535:6;8531:16;8525:23;8519:3;8508:9;8504:19;8497:52;8598:3;8590:6;8586:16;8580:23;8622:3;8634:71;8701:2;8690:9;8686:18;8670:14;590:12;;578:25;;666:4;655:16;;;649:23;642:31;635:39;619:14;;612:63;507:174;8634:71;8742:3;8730:16;;8724:23;8766:3;8785:18;;;8778:30;;;;8845:15;;;8839:22;1482:12;;-1:-1:-1;;;;;1478:21:67;;;8926:3;8911:19;;1466:34;1546:4;1535:16;;1529:23;1571:10;1613:21;;;1597:14;;;1590:45;1688:4;1677:16;;1671:23;1667:32;;1651:14;;;1644:56;1753:4;1742:16;;1736:23;1732:32;1716:14;;;1709:56;1818:4;1807:16;;;1801:23;1797:32;1781:14;;;1774:56;8980:6;8968:19;;8962:26;;-1:-1:-1;8997:66:67;9058:3;9043:19;;8962:26;8997:66;:::i;:::-;9100:15;;9094:22;9156;;;-1:-1:-1;;9152:36:67;9132:18;;;9125:64;9094:22;-1:-1:-1;9206:54:67;;-1:-1:-1;9160:6:67;9094:22;9206:54;:::i;9271:521::-;9348:4;9354:6;9414:11;9401:25;9508:2;9504:7;9493:8;9477:14;9473:29;9469:43;9449:18;9445:68;9435:96;;9527:1;9524;9517:12;9435:96;9554:33;;9606:20;;;-1:-1:-1;;;;;;9638:30:67;;9635:50;;;9681:1;9678;9671:12;9635:50;9714:4;9702:17;;-1:-1:-1;9745:14:67;9741:27;;;9731:38;;9728:58;;;9782:1;9779;9772:12;9728:58;9271:521;;;;;:::o;9797:331::-;9902:9;9913;9955:8;9943:10;9940:24;9937:44;;;9977:1;9974;9967:12;9937:44;10006:6;9996:8;9993:20;9990:40;;;10026:1;10023;10016:12;9990:40;-1:-1:-1;;10052:23:67;;;10097:25;;;;;-1:-1:-1;9797:331:67:o;10133:271::-;10316:6;10308;10303:3;10290:33;10272:3;10342:16;;10367:13;;;10342:16;10133:271;-1:-1:-1;10133:271:67:o;10409:298::-;10468:6;10521:2;10509:9;10500:7;10496:23;10492:32;10489:52;;;10537:1;10534;10527:12;10489:52;10563:23;;-1:-1:-1;;10615:43:67;;10605:54;;10595:82;;10673:1;10670;10663:12;10712:286;10771:6;10824:2;10812:9;10803:7;10799:23;10795:32;10792:52;;;10840:1;10837;10830:12;10792:52;10866:23;;-1:-1:-1;;;;;10918:31:67;;10908:42;;10898:70;;10964:1;10961;10954:12;11003:997;11319:4;11348:3;11378:6;11367:9;11360:25;11421:6;11416:2;11405:9;11401:18;11394:34;11464:6;11459:2;11448:9;11444:18;11437:34;11523:26;11519:31;11511:6;11507:44;11502:2;11491:9;11487:18;11480:72;11589:6;11583:3;11572:9;11568:19;11561:35;11633:2;11627:3;11616:9;11612:19;11605:31;11672:6;11667:2;11656:9;11652:18;11645:34;;11698:3;11751:6;11743;11738:2;11727:9;11723:18;11710:48;11807:1;11778:22;;;11774:31;;11767:42;11911:3;11896:19;;11889:35;;;;-1:-1:-1;;;;;;11961:32:67;;;;11955:3;11940:19;;11933:61;11870:2;11849:15;;;-1:-1:-1;;11845:29:67;11830:45;;;11826:54;;11003:997;-1:-1:-1;;;;;;11003:997:67:o;12005:118::-;12091:5;12084:13;12077:21;12070:5;12067:32;12057:60;;12113:1;12110;12103:12;12057:60;12005:118;:::o;12128:245::-;12195:6;12248:2;12236:9;12227:7;12223:23;12219:32;12216:52;;;12264:1;12261;12254:12;12216:52;12296:9;12290:16;12315:28;12337:5;12315:28;:::i;12378:127::-;12439:10;12434:3;12430:20;12427:1;12420:31;12470:4;12467:1;12460:15;12494:4;12491:1;12484:15;12510:257;12582:4;12576:11;;;12614:17;;-1:-1:-1;;;;;12646:34:67;;12682:22;;;12643:62;12640:88;;;12708:18;;:::i;:::-;12744:4;12737:24;12510:257;:::o;12772:250::-;12839:2;12833:9;12881:6;12869:19;;-1:-1:-1;;;;;12903:34:67;;12939:22;;;12900:62;12897:88;;;12965:18;;:::i;13027:253::-;13099:2;13093:9;13141:4;13129:17;;-1:-1:-1;;;;;13161:34:67;;13197:22;;;13158:62;13155:88;;;13223:18;;:::i;13285:255::-;13357:2;13351:9;13399:6;13387:19;;-1:-1:-1;;;;;13421:34:67;;13457:22;;;13418:62;13415:88;;;13483:18;;:::i;13545:253::-;13617:2;13611:9;13659:4;13647:17;;-1:-1:-1;;;;;13679:34:67;;13715:22;;;13676:62;13673:88;;;13741:18;;:::i;13803:255::-;13875:2;13869:9;13917:6;13905:19;;-1:-1:-1;;;;;13939:34:67;;13975:22;;;13936:62;13933:88;;;14001:18;;:::i;14063:128::-;14128:20;;14157:28;14128:20;14157:28;:::i;:::-;14063:128;;;:::o;14196:362::-;14260:5;14308:4;14296:9;14291:3;14287:19;14283:30;14280:50;;;14326:1;14323;14316:12;14280:50;14348:22;;:::i;:::-;14339:31;;14406:9;14393:23;14386:5;14379:38;14469:2;14458:9;14454:18;14441:32;14482:30;14504:7;14482:30;:::i;:::-;14539:2;14528:14;;14521:31;14532:5;14196:362;-1:-1:-1;;14196:362:67:o;14563:719::-;14606:5;14659:3;14652:4;14644:6;14640:17;14636:27;14626:55;;14677:1;14674;14667:12;14626:55;14713:6;14700:20;-1:-1:-1;;;;;14776:2:67;14772;14769:10;14766:36;;;14782:18;;:::i;:::-;14857:2;14851:9;14825:2;14911:13;;-1:-1:-1;;14907:22:67;;;14931:2;14903:31;14899:40;14887:53;;;14955:18;;;14975:22;;;14952:46;14949:72;;;15001:18;;:::i;:::-;15041:10;15037:2;15030:22;15076:2;15068:6;15061:18;15122:3;15115:4;15110:2;15102:6;15098:15;15094:26;15091:35;15088:55;;;15139:1;15136;15129:12;15088:55;15203:2;15196:4;15188:6;15184:17;15177:4;15169:6;15165:17;15152:54;15250:1;15243:4;15238:2;15230:6;15226:15;15222:26;15215:37;15270:6;15261:15;;;;;;14563:719;;;;:::o;15287:171::-;15354:20;;-1:-1:-1;;;;;15403:30:67;;15393:41;;15383:69;;15448:1;15445;15438:12;15463:163;15530:20;;15590:10;15579:22;;15569:33;;15559:61;;15616:1;15613;15606:12;15631:696;15684:5;15732:4;15720:9;15715:3;15711:19;15707:30;15704:50;;;15750:1;15747;15740:12;15704:50;15783:2;15777:9;15825:4;15817:6;15813:17;15896:6;15884:10;15881:22;-1:-1:-1;;;;;15848:10:67;15845:34;15842:62;15839:88;;;15907:18;;:::i;:::-;15943:2;15936:22;15976:6;-1:-1:-1;15976:6:67;16006:28;16024:9;16006:28;:::i;:::-;15998:6;15991:44;16068:37;16101:2;16090:9;16086:18;16068:37;:::i;:::-;16063:2;16055:6;16051:15;16044:62;16139:37;16172:2;16161:9;16157:18;16139:37;:::i;:::-;16134:2;16126:6;16122:15;16115:62;16210:37;16243:2;16232:9;16228:18;16210:37;:::i;:::-;16205:2;16197:6;16193:15;16186:62;16282:38;16315:3;16304:9;16300:19;16282:38;:::i;:::-;16276:3;16268:6;16264:16;16257:64;;15631:696;;;;:::o;16332:153::-;16410:20;;16459:1;16449:12;;16439:40;;16475:1;16472;16465:12;16490:1416;16548:5;16596:6;16584:9;16579:3;16575:19;16571:32;16568:52;;;16616:1;16613;16606:12;16568:52;16638:17;;:::i;:::-;16629:26;;16678:39;16707:9;16678:39;:::i;:::-;16671:5;16664:54;16750:48;16794:2;16783:9;16779:18;16750:48;:::i;:::-;16745:2;16738:5;16734:14;16727:72;16831:48;16875:2;16864:9;16860:18;16831:48;:::i;:::-;16826:2;16819:5;16815:14;16808:72;16912:48;16956:2;16945:9;16941:18;16912:48;:::i;:::-;16907:2;16900:5;16896:14;16889:72;16994:49;17038:3;17027:9;17023:19;16994:49;:::i;:::-;16988:3;16981:5;16977:15;16970:74;17077:49;17121:3;17110:9;17106:19;17077:49;:::i;:::-;17071:3;17064:5;17060:15;17053:74;17160:49;17204:3;17193:9;17189:19;17160:49;:::i;:::-;17154:3;17147:5;17143:15;17136:74;17243:38;17276:3;17265:9;17261:19;17243:38;:::i;:::-;17237:3;17230:5;17226:15;17219:63;17301:3;17336:48;17380:2;17369:9;17365:18;17336:48;:::i;:::-;17320:14;;;17313:72;17404:3;17439:48;17468:18;;;17439:48;:::i;:::-;17423:14;;;17416:72;17507:3;17542:48;17571:18;;;17542:48;:::i;:::-;17526:14;;;17519:72;17610:3;17645:48;17674:18;;;17645:48;:::i;:::-;17629:14;;;17622:72;17713:3;17748:48;17777:18;;;17748:48;:::i;:::-;17732:14;;;17725:72;17816:3;17851:48;17880:18;;;17851:48;:::i;:::-;17835:14;;;17828:72;17839:5;16490:1416;-1:-1:-1;;16490:1416:67:o;17911:668::-;17961:5;18014:3;18007:4;17999:6;17995:17;17991:27;17981:55;;18032:1;18029;18022:12;17981:55;18065:2;18059:9;18087:3;18129:2;18121:6;18117:15;18198:6;18186:10;18183:22;-1:-1:-1;;;;;18150:10:67;18147:34;18144:62;18141:88;;;18209:18;;:::i;:::-;18245:2;18238:22;18309:15;;18280:6;18336:15;;;18333:35;;;18364:1;18361;18354:12;18333:35;18388:6;18403:146;18419:6;18414:3;18411:15;18403:146;;;18487:17;;18475:30;;18534:4;18525:14;;;;18436;18403:146;;;-1:-1:-1;18567:6:67;;17911:668;-1:-1:-1;;;;;17911:668:67:o;18584:155::-;18664:20;;18713:1;18703:12;;18693:40;;18729:1;18726;18719:12;18744:285;18801:5;18849:4;18837:9;18832:3;18828:19;18824:30;18821:50;;;18867:1;18864;18857:12;18821:50;18889:22;;:::i;:::-;18880:31;;18947:9;18934:23;18927:5;18920:38;19018:2;19007:9;19003:18;18990:32;18985:2;18978:5;18974:14;18967:56;18744:285;;;;:::o;19034:698::-;19094:5;19147:3;19140:4;19132:6;19128:17;19124:27;19114:55;;19165:1;19162;19155:12;19114:55;19188:2;19219;19213:9;19261:3;19253:6;19249:16;19331:6;19319:10;19316:22;-1:-1:-1;;;;;19283:10:67;19280:34;19277:62;19274:88;;;19342:18;;:::i;:::-;19371:22;;19413:6;19454:3;19442:16;;19470:15;;;19467:35;;;19498:1;19495;19488:12;19467:35;19522:6;19537:165;19553:6;19548:3;19545:15;19537:165;;;19619:38;19653:3;19648;19619:38;:::i;:::-;19607:51;;19687:4;19678:14;;;;19570:12;;19537:165;;;-1:-1:-1;19720:6:67;;19034:698;-1:-1:-1;;;;;;19034:698:67:o;19737:720::-;19819:5;19872:3;19865:4;19857:6;19853:17;19849:27;19839:55;;19890:1;19887;19880:12;19839:55;19913:2;19944;19938:9;19986:3;19978:6;19974:16;20056:6;20044:10;20041:22;-1:-1:-1;;;;;20008:10:67;20005:34;20002:62;19999:88;;;20067:18;;:::i;:::-;20096:22;;20138:6;20179:3;20167:16;;20195:15;;;20192:35;;;20223:1;20220;20213:12;20192:35;20247:6;20262:165;20278:6;20273:3;20270:15;20262:165;;;20344:38;20378:3;20373;20344:38;:::i;:::-;20332:51;;20412:4;20403:14;;;;20295:12;;20262:165;;20462:1264;20524:5;20563:9;20558:3;20554:19;20593:6;20589:2;20585:15;20582:35;;;20613:1;20610;20603:12;20582:35;20635:22;;:::i;:::-;20626:31;;20680:41;20711:9;20680:41;:::i;:::-;20673:5;20666:56;20754:50;20800:2;20789:9;20785:18;20754:50;:::i;:::-;20749:2;20742:5;20738:14;20731:74;20824:6;20864:2;20858;20854:7;20850:2;20846:16;20842:25;20839:45;;;20880:1;20877;20870:12;20839:45;20908:22;;:::i;:::-;20893:37;;20955:59;21010:3;21005:2;20994:9;20990:18;20955:59;:::i;:::-;20946:7;20939:76;21049:82;21127:3;21121;21110:9;21106:19;21049:82;:::i;:::-;21044:2;21035:7;21031:16;21024:108;21166:55;21217:3;21210:4;21199:9;21195:20;21166:55;:::i;:::-;21161:2;21152:7;21148:16;21141:81;21258:55;21309:3;21302:4;21291:9;21287:20;21258:55;:::i;:::-;21251:4;21242:7;21238:18;21231:83;21350:55;21401:3;21394:4;21383:9;21379:20;21350:55;:::i;:::-;21343:4;21334:7;21330:18;21323:83;21442:55;21493:3;21486:4;21475:9;21471:20;21442:55;:::i;:::-;21435:4;21426:7;21422:18;21415:83;21534:55;21585:3;21578:4;21567:9;21563:20;21534:55;:::i;:::-;21527:4;21518:7;21514:18;21507:83;21626:53;21675:3;21670:2;21659:9;21655:18;21626:53;:::i;:::-;21619:4;21606:18;;21599:81;-1:-1:-1;21707:2:67;21696:14;;21689:31;21700:5;20462:1264;-1:-1:-1;;20462:1264:67:o;21731:659::-;21792:5;21845:3;21838:4;21830:6;21826:17;21822:27;21812:55;;21863:1;21860;21853:12;21812:55;21896:2;21890:9;21938:3;21930:6;21926:16;22008:6;21996:10;21993:22;-1:-1:-1;;;;;21960:10:67;21957:34;21954:62;21951:88;;;22019:18;;:::i;:::-;22055:2;22048:22;22090:6;22131:3;22119:16;;22147:15;;;22144:35;;;22175:1;22172;22165:12;22144:35;22199:6;22214:146;22230:6;22225:3;22222:15;22214:146;;;22298:17;;22286:30;;22345:4;22336:14;;;;22247;22214:146;;22395:849;22454:5;22502:6;22490:9;22485:3;22481:19;22477:32;22474:52;;;22522:1;22519;22512:12;22474:52;22544:22;;:::i;:::-;22535:31;;22589:40;22625:3;22614:9;22589:40;:::i;:::-;22582:5;22575:55;22664:59;22719:3;22713;22702:9;22698:19;22664:59;:::i;:::-;22657:4;22650:5;22646:16;22639:85;22758:39;22791:4;22780:9;22776:20;22758:39;:::i;:::-;22751:4;22744:5;22740:16;22733:65;22832:62;22890:3;22883:4;22872:9;22868:20;22832:62;:::i;:::-;22825:4;22818:5;22814:16;22807:88;22929:39;22962:4;22951:9;22947:20;22929:39;:::i;:::-;22922:4;22915:5;22911:16;22904:65;23003:37;23034:4;23023:9;23019:20;23003:37;:::i;:::-;22996:4;22989:5;22985:16;22978:63;23092:4;23081:9;23077:20;23064:34;-1:-1:-1;;;;;23113:6:67;23110:30;23107:50;;;23153:1;23150;23143:12;23107:50;23191:46;23233:3;23224:6;23213:9;23209:22;23191:46;:::i;:::-;23184:4;23177:5;23173:16;23166:72;;22395:849;;;;:::o;23249:1499::-;23334:6;23387:2;23375:9;23366:7;23362:23;23358:32;23355:52;;;23403:1;23400;23393:12;23355:52;23443:9;23430:23;-1:-1:-1;;;;;23513:2:67;23505:6;23502:14;23499:34;;;23529:1;23526;23519:12;23499:34;23552:22;;;;23608:6;23590:16;;;23586:29;23583:49;;;23628:1;23625;23618:12;23583:49;23654:22;;:::i;:::-;23699:48;23739:7;23735:2;23699:48;:::i;:::-;23692:5;23685:63;23801:2;23797;23793:11;23780:25;23775:2;23768:5;23764:14;23757:49;23852:2;23848;23844:11;23831:25;23881:2;23871:8;23868:16;23865:36;;;23897:1;23894;23887:12;23865:36;23933:45;23970:7;23959:8;23955:2;23951:17;23933:45;:::i;:::-;23928:2;23921:5;23917:14;23910:69;;24011:31;24037:3;24033:2;24029:12;24011:31;:::i;:::-;24006:2;23999:5;23995:14;23988:55;24076:31;24102:3;24098:2;24094:12;24076:31;:::i;:::-;24070:3;24063:5;24059:15;24052:56;24162:3;24158:2;24154:12;24141:26;24135:3;24128:5;24124:15;24117:51;24201:58;24251:7;24245:3;24241:2;24237:12;24201:58;:::i;:::-;24195:3;24188:5;24184:15;24177:83;24279:3;24336:2;24332;24328:11;24315:25;24309:3;24302:5;24298:15;24291:50;24360:3;24399:46;24437:7;24432:2;24428;24424:11;24399:46;:::i;:::-;24390:6;24383:5;24379:18;24372:74;24478:52;24522:7;24516:3;24512:2;24508:12;24478:52;:::i;:::-;24473:2;24466:5;24462:14;24455:76;24577:3;24573:2;24569:12;24556:26;24540:42;;24607:2;24597:8;24594:16;24591:36;;;24623:1;24620;24613:12;24591:36;24659:58;24709:7;24698:8;24694:2;24690:17;24659:58;:::i;:::-;24643:14;;;24636:82;-1:-1:-1;24647:5:67;23249:1499;-1:-1:-1;;;;;23249:1499:67:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x9fcd2cb923e5ef666b1b18a7e2a77d915d5bef119214dfc53cc5c6c044a87bc5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f32c8e9002c9a8bd9e23f63d430193e092e6b6cea56a11f839304feff3b333c7\",\"dweb:/ipfs/QmS2o2CeHebjAuviv715FsCNam95qy19qijJz4aw87YRJL\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x68ef2223020d5b4ce1fb2b0b016fb1f66f6b84edbb0370f96d9c1398146e9409\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://57ba2b7b58fc15cdc9eefd70ad09bf8719ff981eabb64d6fca0da049456b2541\",\"dweb:/ipfs/QmPKZJoGwmBnA4gm1C4VySZr9iscQyLd1MtFVz1RkjctzV\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x90ad6c63ccdfaf5ece74b0c5d1be2f5f055af0bac6ad875638c20ada517cad9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6935178db6825ed5b3f223965633f264c47e5d6fc7246ed73b75ca5f963dc7\",\"dweb:/ipfs/Qmcx4xD164Z2P3zCAijesowyc5aGbY9G3iUWkP8s64h386\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccountIsNotVerified"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x9fcd2cb923e5ef666b1b18a7e2a77d915d5bef119214dfc53cc5c6c044a87bc5","urls":["bzz-raw://f32c8e9002c9a8bd9e23f63d430193e092e6b6cea56a11f839304feff3b333c7","dweb:/ipfs/QmS2o2CeHebjAuviv715FsCNam95qy19qijJz4aw87YRJL"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x68ef2223020d5b4ce1fb2b0b016fb1f66f6b84edbb0370f96d9c1398146e9409","urls":["bzz-raw://57ba2b7b58fc15cdc9eefd70ad09bf8719ff981eabb64d6fca0da049456b2541","dweb:/ipfs/QmPKZJoGwmBnA4gm1C4VySZr9iscQyLd1MtFVz1RkjctzV"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x90ad6c63ccdfaf5ece74b0c5d1be2f5f055af0bac6ad875638c20ada517cad9e","urls":["bzz-raw://0c6935178db6825ed5b3f223965633f264c47e5d6fc7246ed73b75ca5f963dc7","dweb:/ipfs/Qmcx4xD164Z2P3zCAijesowyc5aGbY9G3iUWkP8s64h386"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/MinaAccountValidation.sol","id":47772,"exportedSymbols":{"AccountIsNotVerified":[47516],"AlignedLayerServiceManager":[8505],"AlignedLayerServiceManagerStorage":[8527],"BLSSignatureChecker":[4846],"IAVSDirectory":[76],"IAlignedLayerServiceManager":[8603],"IPauserRegistry":[1244],"IRegistryCoordinator":[6102],"IRewardsCoordinator":[1584],"IStakeRegistry":[6512],"Merkle":[3209],"MinaAccountValidation":[47771],"Pausable":[3505],"ServiceManagerBase":[5394]},"nodeType":"SourceUnit","src":"39:3564:64","nodes":[{"id":47513,"nodeType":"PragmaDirective","src":"39:24:64","nodes":[],"literals":["solidity","^","0.8",".12"]},{"id":47514,"nodeType":"ImportDirective","src":"65:73:64","nodes":[],"absolutePath":"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol","file":"aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol","nameLocation":"-1:-1:-1","scope":47772,"sourceUnit":8506,"symbolAliases":[],"unitAlias":""},{"id":47516,"nodeType":"ErrorDefinition","src":"140:29:64","nodes":[],"name":"AccountIsNotVerified","nameLocation":"146:20:64","parameters":{"id":47515,"nodeType":"ParameterList","parameters":[],"src":"166:2:64"}},{"id":47771,"nodeType":"ContractDefinition","src":"171:3431:64","nodes":[{"id":47533,"nodeType":"StructDefinition","src":"208:310:64","nodes":[],"canonicalName":"MinaAccountValidation.AlignedArgs","members":[{"constant":false,"id":47518,"mutability":"mutable","name":"proofCommitment","nameLocation":"245:15:64","nodeType":"VariableDeclaration","scope":47533,"src":"237:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47520,"mutability":"mutable","name":"provingSystemAuxDataCommitment","nameLocation":"278:30:64","nodeType":"VariableDeclaration","scope":47533,"src":"270:38:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"270:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47522,"mutability":"mutable","name":"proofGeneratorAddr","nameLocation":"326:18:64","nodeType":"VariableDeclaration","scope":47533,"src":"318:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":47521,"name":"bytes20","nodeType":"ElementaryTypeName","src":"318:7:64","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"},{"constant":false,"id":47524,"mutability":"mutable","name":"batchMerkleRoot","nameLocation":"362:15:64","nodeType":"VariableDeclaration","scope":47533,"src":"354:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47526,"mutability":"mutable","name":"merkleProof","nameLocation":"393:11:64","nodeType":"VariableDeclaration","scope":47533,"src":"387:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":47525,"name":"bytes","nodeType":"ElementaryTypeName","src":"387:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47528,"mutability":"mutable","name":"verificationDataBatchIndex","nameLocation":"422:26:64","nodeType":"VariableDeclaration","scope":47533,"src":"414:34:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47527,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47530,"mutability":"mutable","name":"pubInput","nameLocation":"464:8:64","nodeType":"VariableDeclaration","scope":47533,"src":"458:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":47529,"name":"bytes","nodeType":"ElementaryTypeName","src":"458:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47532,"mutability":"mutable","name":"batcherPaymentService","nameLocation":"490:21:64","nodeType":"VariableDeclaration","scope":47533,"src":"482:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47531,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AlignedArgs","nameLocation":"215:11:64","scope":47771,"visibility":"public"},{"id":47537,"nodeType":"VariableDeclaration","src":"594:34:64","nodes":[],"constant":false,"documentation":{"id":47534,"nodeType":"StructuredDocumentation","src":"524:65:64","text":"@notice Reference to the AlignedLayerServiceManager contract."},"mutability":"mutable","name":"aligned","nameLocation":"621:7:64","scope":47771,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"},"typeName":{"id":47536,"nodeType":"UserDefinedTypeName","pathNode":{"id":47535,"name":"AlignedLayerServiceManager","nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"594:26:64"},"referencedDeclaration":8505,"src":"594:26:64","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"visibility":"internal"},{"id":47549,"nodeType":"FunctionDefinition","src":"635:123:64","nodes":[],"body":{"id":47548,"nodeType":"Block","src":"684:74:64","nodes":[],"statements":[{"expression":{"id":47546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47542,"name":"aligned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47537,"src":"694:7:64","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47544,"name":"_alignedServiceAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47539,"src":"731:19:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":47543,"name":"AlignedLayerServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8505,"src":"704:26:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlignedLayerServiceManager_$8505_$","typeString":"type(contract AlignedLayerServiceManager)"}},"id":47545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"704:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"src":"694:57:64","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"id":47547,"nodeType":"ExpressionStatement","src":"694:57:64"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47539,"mutability":"mutable","name":"_alignedServiceAddr","nameLocation":"663:19:64","nodeType":"VariableDeclaration","scope":47549,"src":"647:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":47538,"name":"address","nodeType":"ElementaryTypeName","src":"647:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"646:37:64"},"returnParameters":{"id":47541,"nodeType":"ParameterList","parameters":[],"src":"684:0:64"},"scope":47771,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47610,"nodeType":"FunctionDefinition","src":"764:763:64","nodes":[],"body":{"id":47609,"nodeType":"Block","src":"855:672:64","nodes":[],"statements":[{"assignments":[47559],"declarations":[{"constant":false,"id":47559,"mutability":"mutable","name":"encodedAccount","nameLocation":"880:14:64","nodeType":"VariableDeclaration","scope":47609,"src":"865:29:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":47558,"name":"bytes","nodeType":"ElementaryTypeName","src":"865:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47566,"initialValue":{"baseExpression":{"expression":{"id":47560,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"897:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pubInput","nodeType":"MemberAccess","referencedDeclaration":47530,"src":"897:13:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":47565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"897:22:64","startExpression":{"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"id":47564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":47562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"911:2:64","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":47563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"916:1:64","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"911:6:64","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"nodeType":"VariableDeclarationStatement","src":"865:54:64"},{"assignments":[47568],"declarations":[{"constant":false,"id":47568,"mutability":"mutable","name":"pubInputCommitment","nameLocation":"938:18:64","nodeType":"VariableDeclaration","scope":47609,"src":"930:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"930:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47573,"initialValue":{"arguments":[{"expression":{"id":47570,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"969:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pubInput","nodeType":"MemberAccess","referencedDeclaration":47530,"src":"969:13:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":47569,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"959:9:64","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"959:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"930:53:64"},{"assignments":[47575],"declarations":[{"constant":false,"id":47575,"mutability":"mutable","name":"isAccountVerified","nameLocation":"999:17:64","nodeType":"VariableDeclaration","scope":47609,"src":"994:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47574,"name":"bool","nodeType":"ElementaryTypeName","src":"994:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":47594,"initialValue":{"arguments":[{"expression":{"id":47578,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1061:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proofCommitment","nodeType":"MemberAccess","referencedDeclaration":47518,"src":"1061:20:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47580,"name":"pubInputCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47568,"src":"1095:18:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":47581,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1127:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"provingSystemAuxDataCommitment","nodeType":"MemberAccess","referencedDeclaration":47520,"src":"1127:35:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":47583,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1176:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proofGeneratorAddr","nodeType":"MemberAccess","referencedDeclaration":47522,"src":"1176:23:64","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},{"expression":{"id":47585,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1213:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"batchMerkleRoot","nodeType":"MemberAccess","referencedDeclaration":47524,"src":"1213:20:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":47587,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1247:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"merkleProof","nodeType":"MemberAccess","referencedDeclaration":47526,"src":"1247:16:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":47589,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1277:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verificationDataBatchIndex","nodeType":"MemberAccess","referencedDeclaration":47528,"src":"1277:31:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":47591,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"1322:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs calldata"}},"id":47592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"batcherPaymentService","nodeType":"MemberAccess","referencedDeclaration":47532,"src":"1322:26:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes20","typeString":"bytes20"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47576,"name":"aligned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47537,"src":"1019:7:64","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"id":47577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verifyBatchInclusion","nodeType":"MemberAccess","referencedDeclaration":8455,"src":"1019:28:64","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes20_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,bytes32,bytes32,bytes20,bytes32,bytes memory,uint256,address) view external returns (bool)"}},"id":47593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1019:339:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"994:364:64"},{"condition":{"id":47595,"name":"isAccountVerified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47575,"src":"1373:17:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":47607,"nodeType":"Block","src":"1467:54:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47604,"name":"AccountIsNotVerified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47516,"src":"1488:20:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1488:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47606,"nodeType":"RevertStatement","src":"1481:29:64"}]},"id":47608,"nodeType":"IfStatement","src":"1369:152:64","trueBody":{"id":47603,"nodeType":"Block","src":"1392:69:64","statements":[{"expression":{"arguments":[{"id":47598,"name":"encodedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47559,"src":"1424:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":47599,"name":"Account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47638,"src":"1441:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Account_$47638_storage_ptr_$","typeString":"type(struct MinaAccountValidation.Account storage pointer)"}}],"id":47600,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1440:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Account_$47638_storage_ptr_$","typeString":"type(struct MinaAccountValidation.Account storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Account_$47638_storage_ptr_$","typeString":"type(struct MinaAccountValidation.Account storage pointer)"}],"expression":{"id":47596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1413:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1413:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":47601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1413:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Account_$47638_memory_ptr","typeString":"struct MinaAccountValidation.Account memory"}},"functionReturnParameters":47557,"id":47602,"nodeType":"Return","src":"1406:44:64"}]}}]},"functionSelector":"9029ad15","implemented":true,"kind":"function","modifiers":[],"name":"validateAccount","nameLocation":"773:15:64","parameters":{"id":47553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47552,"mutability":"mutable","name":"args","nameLocation":"810:4:64","nodeType":"VariableDeclaration","scope":47610,"src":"789:25:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_calldata_ptr","typeString":"struct MinaAccountValidation.AlignedArgs"},"typeName":{"id":47551,"nodeType":"UserDefinedTypeName","pathNode":{"id":47550,"name":"AlignedArgs","nodeType":"IdentifierPath","referencedDeclaration":47533,"src":"789:11:64"},"referencedDeclaration":47533,"src":"789:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_AlignedArgs_$47533_storage_ptr","typeString":"struct MinaAccountValidation.AlignedArgs"}},"visibility":"internal"}],"src":"788:27:64"},"returnParameters":{"id":47557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47610,"src":"839:14:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$47638_memory_ptr","typeString":"struct MinaAccountValidation.Account"},"typeName":{"id":47555,"nodeType":"UserDefinedTypeName","pathNode":{"id":47554,"name":"Account","nodeType":"IdentifierPath","referencedDeclaration":47638,"src":"839:7:64"},"referencedDeclaration":47638,"src":"839:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$47638_storage_ptr","typeString":"struct MinaAccountValidation.Account"}},"visibility":"internal"}],"src":"838:16:64"},"scope":47771,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47638,"nodeType":"StructDefinition","src":"1533:346:64","nodes":[],"canonicalName":"MinaAccountValidation.Account","members":[{"constant":false,"id":47613,"mutability":"mutable","name":"publicKey","nameLocation":"1576:9:64","nodeType":"VariableDeclaration","scope":47638,"src":"1558:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CompressedECPoint_$47643_storage_ptr","typeString":"struct MinaAccountValidation.CompressedECPoint"},"typeName":{"id":47612,"nodeType":"UserDefinedTypeName","pathNode":{"id":47611,"name":"CompressedECPoint","nodeType":"IdentifierPath","referencedDeclaration":47643,"src":"1558:17:64"},"referencedDeclaration":47643,"src":"1558:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_CompressedECPoint_$47643_storage_ptr","typeString":"struct MinaAccountValidation.CompressedECPoint"}},"visibility":"internal"},{"constant":false,"id":47615,"mutability":"mutable","name":"tokenIdKeyHash","nameLocation":"1603:14:64","nodeType":"VariableDeclaration","scope":47638,"src":"1595:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1595:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47617,"mutability":"mutable","name":"tokenSymbol","nameLocation":"1634:11:64","nodeType":"VariableDeclaration","scope":47638,"src":"1627:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":47616,"name":"string","nodeType":"ElementaryTypeName","src":"1627:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47619,"mutability":"mutable","name":"balance","nameLocation":"1662:7:64","nodeType":"VariableDeclaration","scope":47638,"src":"1655:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47618,"name":"uint64","nodeType":"ElementaryTypeName","src":"1655:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47621,"mutability":"mutable","name":"nonce","nameLocation":"1686:5:64","nodeType":"VariableDeclaration","scope":47638,"src":"1679:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47620,"name":"uint32","nodeType":"ElementaryTypeName","src":"1679:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47623,"mutability":"mutable","name":"receiptChainHash","nameLocation":"1709:16:64","nodeType":"VariableDeclaration","scope":47638,"src":"1701:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1701:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47626,"mutability":"mutable","name":"delegate","nameLocation":"1753:8:64","nodeType":"VariableDeclaration","scope":47638,"src":"1735:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CompressedECPoint_$47643_storage_ptr","typeString":"struct MinaAccountValidation.CompressedECPoint"},"typeName":{"id":47625,"nodeType":"UserDefinedTypeName","pathNode":{"id":47624,"name":"CompressedECPoint","nodeType":"IdentifierPath","referencedDeclaration":47643,"src":"1735:17:64"},"referencedDeclaration":47643,"src":"1735:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_CompressedECPoint_$47643_storage_ptr","typeString":"struct MinaAccountValidation.CompressedECPoint"}},"visibility":"internal"},{"constant":false,"id":47628,"mutability":"mutable","name":"votingFor","nameLocation":"1779:9:64","nodeType":"VariableDeclaration","scope":47638,"src":"1771:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1771:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47631,"mutability":"mutable","name":"timing","nameLocation":"1805:6:64","nodeType":"VariableDeclaration","scope":47638,"src":"1798:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Timing_$47654_storage_ptr","typeString":"struct MinaAccountValidation.Timing"},"typeName":{"id":47630,"nodeType":"UserDefinedTypeName","pathNode":{"id":47629,"name":"Timing","nodeType":"IdentifierPath","referencedDeclaration":47654,"src":"1798:6:64"},"referencedDeclaration":47654,"src":"1798:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_Timing_$47654_storage_ptr","typeString":"struct MinaAccountValidation.Timing"}},"visibility":"internal"},{"constant":false,"id":47634,"mutability":"mutable","name":"permissions","nameLocation":"1833:11:64","nodeType":"VariableDeclaration","scope":47638,"src":"1821:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Permissions_$47702_storage_ptr","typeString":"struct MinaAccountValidation.Permissions"},"typeName":{"id":47633,"nodeType":"UserDefinedTypeName","pathNode":{"id":47632,"name":"Permissions","nodeType":"IdentifierPath","referencedDeclaration":47702,"src":"1821:11:64"},"referencedDeclaration":47702,"src":"1821:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_Permissions_$47702_storage_ptr","typeString":"struct MinaAccountValidation.Permissions"}},"visibility":"internal"},{"constant":false,"id":47637,"mutability":"mutable","name":"zkapp","nameLocation":"1867:5:64","nodeType":"VariableDeclaration","scope":47638,"src":"1854:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ZkappAccount_$47722_storage_ptr","typeString":"struct MinaAccountValidation.ZkappAccount"},"typeName":{"id":47636,"nodeType":"UserDefinedTypeName","pathNode":{"id":47635,"name":"ZkappAccount","nodeType":"IdentifierPath","referencedDeclaration":47722,"src":"1854:12:64"},"referencedDeclaration":47722,"src":"1854:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ZkappAccount_$47722_storage_ptr","typeString":"struct MinaAccountValidation.ZkappAccount"}},"visibility":"internal"}],"name":"Account","nameLocation":"1540:7:64","scope":47771,"visibility":"public"},{"id":47643,"nodeType":"StructDefinition","src":"1885:71:64","nodes":[],"canonicalName":"MinaAccountValidation.CompressedECPoint","members":[{"constant":false,"id":47640,"mutability":"mutable","name":"x","nameLocation":"1928:1:64","nodeType":"VariableDeclaration","scope":47643,"src":"1920:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1920:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47642,"mutability":"mutable","name":"isOdd","nameLocation":"1944:5:64","nodeType":"VariableDeclaration","scope":47643,"src":"1939:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47641,"name":"bool","nodeType":"ElementaryTypeName","src":"1939:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CompressedECPoint","nameLocation":"1892:17:64","scope":47771,"visibility":"public"},{"id":47654,"nodeType":"StructDefinition","src":"1962:176:64","nodes":[],"canonicalName":"MinaAccountValidation.Timing","members":[{"constant":false,"id":47645,"mutability":"mutable","name":"initialMinimumBalance","nameLocation":"1993:21:64","nodeType":"VariableDeclaration","scope":47654,"src":"1986:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47644,"name":"uint64","nodeType":"ElementaryTypeName","src":"1986:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47647,"mutability":"mutable","name":"cliffTime","nameLocation":"2031:9:64","nodeType":"VariableDeclaration","scope":47654,"src":"2024:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47646,"name":"uint32","nodeType":"ElementaryTypeName","src":"2024:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47649,"mutability":"mutable","name":"cliffAmount","nameLocation":"2057:11:64","nodeType":"VariableDeclaration","scope":47654,"src":"2050:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47648,"name":"uint64","nodeType":"ElementaryTypeName","src":"2050:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47651,"mutability":"mutable","name":"vestingPeriod","nameLocation":"2085:13:64","nodeType":"VariableDeclaration","scope":47654,"src":"2078:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47650,"name":"uint32","nodeType":"ElementaryTypeName","src":"2078:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47653,"mutability":"mutable","name":"vestingIncrement","nameLocation":"2115:16:64","nodeType":"VariableDeclaration","scope":47654,"src":"2108:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47652,"name":"uint64","nodeType":"ElementaryTypeName","src":"2108:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Timing","nameLocation":"1969:6:64","scope":47771,"visibility":"public"},{"id":47660,"nodeType":"EnumDefinition","src":"2144:108:64","nodes":[],"canonicalName":"MinaAccountValidation.AuthRequired","members":[{"id":47655,"name":"None","nameLocation":"2172:4:64","nodeType":"EnumValue","src":"2172:4:64"},{"id":47656,"name":"Either","nameLocation":"2186:6:64","nodeType":"EnumValue","src":"2186:6:64"},{"id":47657,"name":"Proof","nameLocation":"2202:5:64","nodeType":"EnumValue","src":"2202:5:64"},{"id":47658,"name":"Signature","nameLocation":"2217:9:64","nodeType":"EnumValue","src":"2217:9:64"},{"id":47659,"name":"Impossible","nameLocation":"2236:10:64","nodeType":"EnumValue","src":"2236:10:64"}],"name":"AuthRequired","nameLocation":"2149:12:64"},{"id":47702,"nodeType":"StructDefinition","src":"2258:513:64","nodes":[],"canonicalName":"MinaAccountValidation.Permissions","members":[{"constant":false,"id":47663,"mutability":"mutable","name":"editState","nameLocation":"2300:9:64","nodeType":"VariableDeclaration","scope":47702,"src":"2287:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47662,"nodeType":"UserDefinedTypeName","pathNode":{"id":47661,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2287:12:64"},"referencedDeclaration":47660,"src":"2287:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47666,"mutability":"mutable","name":"access","nameLocation":"2332:6:64","nodeType":"VariableDeclaration","scope":47702,"src":"2319:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47665,"nodeType":"UserDefinedTypeName","pathNode":{"id":47664,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2319:12:64"},"referencedDeclaration":47660,"src":"2319:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47669,"mutability":"mutable","name":"send","nameLocation":"2361:4:64","nodeType":"VariableDeclaration","scope":47702,"src":"2348:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47668,"nodeType":"UserDefinedTypeName","pathNode":{"id":47667,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2348:12:64"},"referencedDeclaration":47660,"src":"2348:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47672,"mutability":"mutable","name":"rreceive","nameLocation":"2388:8:64","nodeType":"VariableDeclaration","scope":47702,"src":"2375:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47671,"nodeType":"UserDefinedTypeName","pathNode":{"id":47670,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2375:12:64"},"referencedDeclaration":47660,"src":"2375:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47675,"mutability":"mutable","name":"setDelegate","nameLocation":"2419:11:64","nodeType":"VariableDeclaration","scope":47702,"src":"2406:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47674,"nodeType":"UserDefinedTypeName","pathNode":{"id":47673,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2406:12:64"},"referencedDeclaration":47660,"src":"2406:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47678,"mutability":"mutable","name":"setPermissions","nameLocation":"2453:14:64","nodeType":"VariableDeclaration","scope":47702,"src":"2440:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47677,"nodeType":"UserDefinedTypeName","pathNode":{"id":47676,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2440:12:64"},"referencedDeclaration":47660,"src":"2440:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47681,"mutability":"mutable","name":"setVerificationKeyAuth","nameLocation":"2490:22:64","nodeType":"VariableDeclaration","scope":47702,"src":"2477:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47680,"nodeType":"UserDefinedTypeName","pathNode":{"id":47679,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2477:12:64"},"referencedDeclaration":47660,"src":"2477:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47683,"mutability":"mutable","name":"setVerificationKeyUint","nameLocation":"2529:22:64","nodeType":"VariableDeclaration","scope":47702,"src":"2522:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47682,"name":"uint32","nodeType":"ElementaryTypeName","src":"2522:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47686,"mutability":"mutable","name":"setZkappUri","nameLocation":"2574:11:64","nodeType":"VariableDeclaration","scope":47702,"src":"2561:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47685,"nodeType":"UserDefinedTypeName","pathNode":{"id":47684,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2561:12:64"},"referencedDeclaration":47660,"src":"2561:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47689,"mutability":"mutable","name":"editActionState","nameLocation":"2608:15:64","nodeType":"VariableDeclaration","scope":47702,"src":"2595:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47688,"nodeType":"UserDefinedTypeName","pathNode":{"id":47687,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2595:12:64"},"referencedDeclaration":47660,"src":"2595:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47692,"mutability":"mutable","name":"setTokenSymbol","nameLocation":"2646:14:64","nodeType":"VariableDeclaration","scope":47702,"src":"2633:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47691,"nodeType":"UserDefinedTypeName","pathNode":{"id":47690,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2633:12:64"},"referencedDeclaration":47660,"src":"2633:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47695,"mutability":"mutable","name":"incrementNonce","nameLocation":"2683:14:64","nodeType":"VariableDeclaration","scope":47702,"src":"2670:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47694,"nodeType":"UserDefinedTypeName","pathNode":{"id":47693,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2670:12:64"},"referencedDeclaration":47660,"src":"2670:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47698,"mutability":"mutable","name":"setVotingFor","nameLocation":"2720:12:64","nodeType":"VariableDeclaration","scope":47702,"src":"2707:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47697,"nodeType":"UserDefinedTypeName","pathNode":{"id":47696,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2707:12:64"},"referencedDeclaration":47660,"src":"2707:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"},{"constant":false,"id":47701,"mutability":"mutable","name":"setTiming","nameLocation":"2755:9:64","nodeType":"VariableDeclaration","scope":47702,"src":"2742:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"},"typeName":{"id":47700,"nodeType":"UserDefinedTypeName","pathNode":{"id":47699,"name":"AuthRequired","nodeType":"IdentifierPath","referencedDeclaration":47660,"src":"2742:12:64"},"referencedDeclaration":47660,"src":"2742:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_AuthRequired_$47660","typeString":"enum MinaAccountValidation.AuthRequired"}},"visibility":"internal"}],"name":"Permissions","nameLocation":"2265:11:64","scope":47771,"visibility":"public"},{"id":47722,"nodeType":"StructDefinition","src":"2777:239:64","nodes":[],"canonicalName":"MinaAccountValidation.ZkappAccount","members":[{"constant":false,"id":47706,"mutability":"mutable","name":"appState","nameLocation":"2818:8:64","nodeType":"VariableDeclaration","scope":47722,"src":"2807:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$8_storage_ptr","typeString":"bytes32[8]"},"typeName":{"baseType":{"id":47703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2807:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47705,"length":{"hexValue":"38","id":47704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2815:1:64","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"ArrayTypeName","src":"2807:10:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$8_storage_ptr","typeString":"bytes32[8]"}},"visibility":"internal"},{"constant":false,"id":47709,"mutability":"mutable","name":"verificationKey","nameLocation":"2852:15:64","nodeType":"VariableDeclaration","scope":47722,"src":"2836:31:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_VerificationKey_$47732_storage_ptr","typeString":"struct MinaAccountValidation.VerificationKey"},"typeName":{"id":47708,"nodeType":"UserDefinedTypeName","pathNode":{"id":47707,"name":"VerificationKey","nodeType":"IdentifierPath","referencedDeclaration":47732,"src":"2836:15:64"},"referencedDeclaration":47732,"src":"2836:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_VerificationKey_$47732_storage_ptr","typeString":"struct MinaAccountValidation.VerificationKey"}},"visibility":"internal"},{"constant":false,"id":47711,"mutability":"mutable","name":"zkappVersion","nameLocation":"2884:12:64","nodeType":"VariableDeclaration","scope":47722,"src":"2877:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47710,"name":"uint32","nodeType":"ElementaryTypeName","src":"2877:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47715,"mutability":"mutable","name":"actionState","nameLocation":"2917:11:64","nodeType":"VariableDeclaration","scope":47722,"src":"2906:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$5_storage_ptr","typeString":"bytes32[5]"},"typeName":{"baseType":{"id":47712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2906:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47714,"length":{"hexValue":"35","id":47713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:1:64","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"2906:10:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$5_storage_ptr","typeString":"bytes32[5]"}},"visibility":"internal"},{"constant":false,"id":47717,"mutability":"mutable","name":"lastActionSlot","nameLocation":"2945:14:64","nodeType":"VariableDeclaration","scope":47722,"src":"2938:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":47716,"name":"uint32","nodeType":"ElementaryTypeName","src":"2938:6:64","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":47719,"mutability":"mutable","name":"provedState","nameLocation":"2974:11:64","nodeType":"VariableDeclaration","scope":47722,"src":"2969:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47718,"name":"bool","nodeType":"ElementaryTypeName","src":"2969:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47721,"mutability":"mutable","name":"zkappUri","nameLocation":"3001:8:64","nodeType":"VariableDeclaration","scope":47722,"src":"2995:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":47720,"name":"bytes","nodeType":"ElementaryTypeName","src":"2995:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ZkappAccount","nameLocation":"2784:12:64","scope":47771,"visibility":"public"},{"id":47732,"nodeType":"StructDefinition","src":"3022:146:64","nodes":[],"canonicalName":"MinaAccountValidation.VerificationKey","members":[{"constant":false,"id":47725,"mutability":"mutable","name":"maxProofsVerified","nameLocation":"3070:17:64","nodeType":"VariableDeclaration","scope":47732,"src":"3055:32:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProofsVerified_$47736","typeString":"enum MinaAccountValidation.ProofsVerified"},"typeName":{"id":47724,"nodeType":"UserDefinedTypeName","pathNode":{"id":47723,"name":"ProofsVerified","nodeType":"IdentifierPath","referencedDeclaration":47736,"src":"3055:14:64"},"referencedDeclaration":47736,"src":"3055:14:64","typeDescriptions":{"typeIdentifier":"t_enum$_ProofsVerified_$47736","typeString":"enum MinaAccountValidation.ProofsVerified"}},"visibility":"internal"},{"constant":false,"id":47728,"mutability":"mutable","name":"actualWrapDomainSize","nameLocation":"3112:20:64","nodeType":"VariableDeclaration","scope":47732,"src":"3097:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProofsVerified_$47736","typeString":"enum MinaAccountValidation.ProofsVerified"},"typeName":{"id":47727,"nodeType":"UserDefinedTypeName","pathNode":{"id":47726,"name":"ProofsVerified","nodeType":"IdentifierPath","referencedDeclaration":47736,"src":"3097:14:64"},"referencedDeclaration":47736,"src":"3097:14:64","typeDescriptions":{"typeIdentifier":"t_enum$_ProofsVerified_$47736","typeString":"enum MinaAccountValidation.ProofsVerified"}},"visibility":"internal"},{"constant":false,"id":47731,"mutability":"mutable","name":"wrapIndex","nameLocation":"3152:9:64","nodeType":"VariableDeclaration","scope":47732,"src":"3142:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_WrapIndex_$47765_storage_ptr","typeString":"struct MinaAccountValidation.WrapIndex"},"typeName":{"id":47730,"nodeType":"UserDefinedTypeName","pathNode":{"id":47729,"name":"WrapIndex","nodeType":"IdentifierPath","referencedDeclaration":47765,"src":"3142:9:64"},"referencedDeclaration":47765,"src":"3142:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_WrapIndex_$47765_storage_ptr","typeString":"struct MinaAccountValidation.WrapIndex"}},"visibility":"internal"}],"name":"VerificationKey","nameLocation":"3029:15:64","scope":47771,"visibility":"public"},{"id":47736,"nodeType":"EnumDefinition","src":"3174:62:64","nodes":[],"canonicalName":"MinaAccountValidation.ProofsVerified","members":[{"id":47733,"name":"N0","nameLocation":"3204:2:64","nodeType":"EnumValue","src":"3204:2:64"},{"id":47734,"name":"N1","nameLocation":"3216:2:64","nodeType":"EnumValue","src":"3216:2:64"},{"id":47735,"name":"N2","nameLocation":"3228:2:64","nodeType":"EnumValue","src":"3228:2:64"}],"name":"ProofsVerified","nameLocation":"3179:14:64"},{"id":47765,"nodeType":"StructDefinition","src":"3242:289:64","nodes":[],"canonicalName":"MinaAccountValidation.WrapIndex","members":[{"constant":false,"id":47741,"mutability":"mutable","name":"sigmaComm","nameLocation":"3283:9:64","nodeType":"VariableDeclaration","scope":47765,"src":"3269:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Commitment_$47770_storage_$7_storage_ptr","typeString":"struct MinaAccountValidation.Commitment[7]"},"typeName":{"baseType":{"id":47738,"nodeType":"UserDefinedTypeName","pathNode":{"id":47737,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3269:10:64"},"referencedDeclaration":47770,"src":"3269:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"id":47740,"length":{"hexValue":"37","id":47739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3280:1:64","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"nodeType":"ArrayTypeName","src":"3269:13:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Commitment_$47770_storage_$7_storage_ptr","typeString":"struct MinaAccountValidation.Commitment[7]"}},"visibility":"internal"},{"constant":false,"id":47746,"mutability":"mutable","name":"coefficientsComm","nameLocation":"3317:16:64","nodeType":"VariableDeclaration","scope":47765,"src":"3302:31:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Commitment_$47770_storage_$15_storage_ptr","typeString":"struct MinaAccountValidation.Commitment[15]"},"typeName":{"baseType":{"id":47743,"nodeType":"UserDefinedTypeName","pathNode":{"id":47742,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3302:10:64"},"referencedDeclaration":47770,"src":"3302:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"id":47745,"length":{"hexValue":"3135","id":47744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3313:2:64","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"nodeType":"ArrayTypeName","src":"3302:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Commitment_$47770_storage_$15_storage_ptr","typeString":"struct MinaAccountValidation.Commitment[15]"}},"visibility":"internal"},{"constant":false,"id":47749,"mutability":"mutable","name":"genericComm","nameLocation":"3354:11:64","nodeType":"VariableDeclaration","scope":47765,"src":"3343:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47748,"nodeType":"UserDefinedTypeName","pathNode":{"id":47747,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3343:10:64"},"referencedDeclaration":47770,"src":"3343:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47752,"mutability":"mutable","name":"psmComm","nameLocation":"3386:7:64","nodeType":"VariableDeclaration","scope":47765,"src":"3375:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47751,"nodeType":"UserDefinedTypeName","pathNode":{"id":47750,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3375:10:64"},"referencedDeclaration":47770,"src":"3375:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47755,"mutability":"mutable","name":"completeAddComm","nameLocation":"3414:15:64","nodeType":"VariableDeclaration","scope":47765,"src":"3403:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47754,"nodeType":"UserDefinedTypeName","pathNode":{"id":47753,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3403:10:64"},"referencedDeclaration":47770,"src":"3403:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47758,"mutability":"mutable","name":"mulComm","nameLocation":"3450:7:64","nodeType":"VariableDeclaration","scope":47765,"src":"3439:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47757,"nodeType":"UserDefinedTypeName","pathNode":{"id":47756,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3439:10:64"},"referencedDeclaration":47770,"src":"3439:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47761,"mutability":"mutable","name":"emulComm","nameLocation":"3478:8:64","nodeType":"VariableDeclaration","scope":47765,"src":"3467:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47760,"nodeType":"UserDefinedTypeName","pathNode":{"id":47759,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3467:10:64"},"referencedDeclaration":47770,"src":"3467:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"},{"constant":false,"id":47764,"mutability":"mutable","name":"endomulScalarComm","nameLocation":"3507:17:64","nodeType":"VariableDeclaration","scope":47765,"src":"3496:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"},"typeName":{"id":47763,"nodeType":"UserDefinedTypeName","pathNode":{"id":47762,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":47770,"src":"3496:10:64"},"referencedDeclaration":47770,"src":"3496:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$47770_storage_ptr","typeString":"struct MinaAccountValidation.Commitment"}},"visibility":"internal"}],"name":"WrapIndex","nameLocation":"3249:9:64","scope":47771,"visibility":"public"},{"id":47770,"nodeType":"StructDefinition","src":"3537:63:64","nodes":[],"canonicalName":"MinaAccountValidation.Commitment","members":[{"constant":false,"id":47767,"mutability":"mutable","name":"x","nameLocation":"3573:1:64","nodeType":"VariableDeclaration","scope":47770,"src":"3565:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3565:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47769,"mutability":"mutable","name":"y","nameLocation":"3592:1:64","nodeType":"VariableDeclaration","scope":47770,"src":"3584:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3584:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Commitment","nameLocation":"3544:10:64","scope":47771,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"MinaAccountValidation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47771],"name":"MinaAccountValidation","nameLocation":"180:21:64","scope":47772,"usedErrors":[47516]}],"license":"UNLICENSED"},"id":64} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b506040516114f93803806114f9833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b61146c8061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e61004936600461056b565b610083565b60405190151581526020015b60405180910390f35b61007661007136600461056b565b610171565b60405161005a919061094b565b60008061009360c0840184610a7d565b6040516100a1929190610aca565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906100dd9060608a01908a01610ada565b60608901356100ef60808b018b610a7d565b60a08c01356101056101008e0160e08f01610b09565b6040518a63ffffffff1660e01b815260040161012999989796959493929190610b32565b602060405180830381865afa158015610146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016a9190610bc0565b9392505050565b61017961029d565b600061018860c0840184610a7d565b604051610196929190610aca565b604080519182900390912060008054919350916001600160a01b03909116906306045a919086359085906020890135906101d69060608b01908b01610ada565b60608a01356101e860808c018c610a7d565b8c60a001358d60e00160208101906102009190610b09565b6040518a63ffffffff1660e01b815260040161022499989796959493929190610b32565b602060405180830381865afa158015610241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102659190610bc0565b905080156100365761027a60c0850185610a7d565b610288916028908290610bdd565b8101906102959190611316565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016103a0604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016103ad6103b2565b905290565b6040518060e001604052806103c56103ff565b81526020016103d261041e565b8152600060208201526040016103e661043d565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016103ad61045b565b6040518060a001604052806005906020820280368337509192915050565b60405180610100016040528061046f610506565b815260200161047c61053f565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816105155790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e60208201610515565b60006020828403121561057d57600080fd5b81356001600160401b0381111561059357600080fd5b8201610100818503121561016a57600080fd5b6000815180845260005b818110156105cc576020818501810151868301820152016105b0565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b60058110610612576106126105ec565b9052565b610621828251610602565b60208101516106336020840182610602565b5060408101516106466040840182610602565b5060608101516106596060840182610602565b50608081015161066c6080840182610602565b5060a081015161067f60a0840182610602565b5060c081015161069260c0840182610602565b5060e08101516106aa60e084018263ffffffff169052565b50610100808201516106be82850182610602565b5050610120808201516106d382850182610602565b5050610140808201516106e882850182610602565b5050610160808201516106fd82850182610602565b50506101808082015161071282850182610602565b50506101a08082015161072782850182610602565b50505050565b60038110610612576106126105ec565b8060005b600f8110156107275761075f84835180518252602090810151910152565b6040939093019260209190910190600101610741565b61078082825161072d565b602080820151610793602085018261072d565b50604082810151805160008684015b60078210156107d2576107c081845180518252602090810151910152565b918501916001919091019084016107a2565b505050602081015192506107ea61020086018461073d565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e090910151805161070087015290810151610720860152915061087c9050565b505050565b8060005b6005811015610727578151845260209384019390910190600101610885565b80516000906109609084835b60088110156108cf5782518252602092830192909101906001016108b0565b50505060208301516108e5610100860182610775565b50604083015163ffffffff16610840850152606083015161090a610860860182610881565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610942828601826105a6565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526109896103e08501836105a6565b915060608501516109a560a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006109e281870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610a57610200880184610616565b870151868503601f1901848801529150610a73905083826108a4565b9695505050505050565b6000808335601e19843603018112610a9457600080fd5b8301803591506001600160401b03821115610aae57600080fd5b602001915036819003821315610ac357600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610aec57600080fd5b81356bffffffffffffffffffffffff198116811461016a57600080fd5b600060208284031215610b1b57600080fd5b81356001600160a01b038116811461016a57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610bbd57600080fd5b50565b600060208284031215610bd257600080fd5b815161016a81610baf565b60008085851115610bed57600080fd5b83861115610bfa57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610c3f57610c3f610c07565b60405290565b6040516101c081016001600160401b0381118282101715610c3f57610c3f610c07565b604051606081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161010081016001600160401b0381118282101715610c3f57610c3f610c07565b60405160e081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161016081016001600160401b0381118282101715610c3f57610c3f610c07565b8035610cfd81610baf565b919050565b600060408284031215610d1457600080fd5b610d1c610c1d565b9050813581526020820135610d3081610baf565b602082015292915050565b600082601f830112610d4c57600080fd5b81356001600160401b0380821115610d6657610d66610c07565b604051601f8301601f19908116603f01168101908282118183101715610d8e57610d8e610c07565b81604052838152866020858801011115610da757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610cfd57600080fd5b803563ffffffff81168114610cfd57600080fd5b600060a08284031215610e0457600080fd5b60405160a081018181106001600160401b0382111715610e2657610e26610c07565b604052905080610e3583610dc7565b8152610e4360208401610dde565b6020820152610e5460408401610dc7565b6040820152610e6560608401610dde565b6060820152610e7660808401610dc7565b60808201525092915050565b803560058110610cfd57600080fd5b60006101c08284031215610ea457600080fd5b610eac610c45565b9050610eb782610e82565b8152610ec560208301610e82565b6020820152610ed660408301610e82565b6040820152610ee760608301610e82565b6060820152610ef860808301610e82565b6080820152610f0960a08301610e82565b60a0820152610f1a60c08301610e82565b60c0820152610f2b60e08301610dde565b60e0820152610100610f3e818401610e82565b90820152610120610f50838201610e82565b90820152610140610f62838201610e82565b90820152610160610f74838201610e82565b90820152610180610f86838201610e82565b908201526101a0610f98838201610e82565b9082015292915050565b600082601f830112610fb357600080fd5b610fbb610c8a565b80610100840185811115610fce57600080fd5b845b81811015610fe8578035845260209384019301610fd0565b509095945050505050565b803560038110610cfd57600080fd5b60006040828403121561101457600080fd5b61101c610c1d565b9050813581526020820135602082015292915050565b600082601f83011261104357600080fd5b61104b610cad565b806101c084018581111561105e57600080fd5b845b81811015610fe8576110728782611002565b8452602090930192604001611060565b600082601f83011261109357600080fd5b604080516101e081018181106001600160401b03821117156110b7576110b7610c07565b604052806103c08501868111156110cd57600080fd5b855b818110156110f0576110e18882611002565b835260209092019184016110cf565b50919695505050505050565b600081830361074081121561111057600080fd5b611118610c68565b915061112383610ff3565b825261113160208401610ff3565b602083015261070080603f198301121561114a57600080fd5b611152610c8a565b91506111618560408601611032565b8252611171856102008601611082565b6020830152611184856105c08601611002565b6040830152611197856106008601611002565b60608301526111aa856106408601611002565b60808301526111bd856106808601611002565b60a08301526111d0856106c08601611002565b60c08301526111e185828601611002565b60e083015250604082015292915050565b600082601f83011261120357600080fd5b60405160a081018181106001600160401b038211171561122557611225610c07565b6040528060a084018581111561123a57600080fd5b845b8181101561125457803583526020928301920161123c565b509195945050505050565b6000610960828403121561127257600080fd5b61127a610cad565b90506112868383610fa2565b81526112968361010084016110fc565b60208201526112a86108408301610dde565b60408201526112bb8361086084016111f2565b60608201526112cd6109008301610dde565b60808201526112df6109208301610cf2565b60a08201526109408201356001600160401b038111156112fe57600080fd5b61130a84828501610d3b565b60c08301525092915050565b60006020828403121561132857600080fd5b81356001600160401b038082111561133f57600080fd5b908301906103c0828603121561135457600080fd5b61135c610ccf565b6113668684610d02565b81526040830135602082015260608301358281111561138457600080fd5b61139087828601610d3b565b6040830152506113a260808401610dc7565b60608201526113b360a08401610dde565b608082015260c083013560a08201526113cf8660e08501610d02565b60c08201526101208084013560e08301526101406113ef88828701610df2565b610100840152611403886101e08701610e91565b828401526103a085013591508382111561141c57600080fd5b6114288883870161125f565b90830152509594505050505056fea264697066735822122012c64260048c4a98dbb1d0cd693dd6b9dbb2349cdb0bea92e6d3a633caf45b9c64736f6c63430008190033","sourceMap":"140:3952:63:-:0;;;604:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;663:7;:57;;-1:-1:-1;;;;;;663:57:63;-1:-1:-1;;;;;663:57:63;;;;;;;;;;140:3952;;14:298:66;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:66;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:66:o;:::-;140:3952:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e61004936600461056b565b610083565b60405190151581526020015b60405180910390f35b61007661007136600461056b565b610171565b60405161005a919061094b565b60008061009360c0840184610a7d565b6040516100a1929190610aca565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906100dd9060608a01908a01610ada565b60608901356100ef60808b018b610a7d565b60a08c01356101056101008e0160e08f01610b09565b6040518a63ffffffff1660e01b815260040161012999989796959493929190610b32565b602060405180830381865afa158015610146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016a9190610bc0565b9392505050565b61017961029d565b600061018860c0840184610a7d565b604051610196929190610aca565b604080519182900390912060008054919350916001600160a01b03909116906306045a919086359085906020890135906101d69060608b01908b01610ada565b60608a01356101e860808c018c610a7d565b8c60a001358d60e00160208101906102009190610b09565b6040518a63ffffffff1660e01b815260040161022499989796959493929190610b32565b602060405180830381865afa158015610241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102659190610bc0565b905080156100365761027a60c0850185610a7d565b610288916028908290610bdd565b8101906102959190611316565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016103a0604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016103ad6103b2565b905290565b6040518060e001604052806103c56103ff565b81526020016103d261041e565b8152600060208201526040016103e661043d565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016103ad61045b565b6040518060a001604052806005906020820280368337509192915050565b60405180610100016040528061046f610506565b815260200161047c61053f565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816105155790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e60208201610515565b60006020828403121561057d57600080fd5b81356001600160401b0381111561059357600080fd5b8201610100818503121561016a57600080fd5b6000815180845260005b818110156105cc576020818501810151868301820152016105b0565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b60058110610612576106126105ec565b9052565b610621828251610602565b60208101516106336020840182610602565b5060408101516106466040840182610602565b5060608101516106596060840182610602565b50608081015161066c6080840182610602565b5060a081015161067f60a0840182610602565b5060c081015161069260c0840182610602565b5060e08101516106aa60e084018263ffffffff169052565b50610100808201516106be82850182610602565b5050610120808201516106d382850182610602565b5050610140808201516106e882850182610602565b5050610160808201516106fd82850182610602565b50506101808082015161071282850182610602565b50506101a08082015161072782850182610602565b50505050565b60038110610612576106126105ec565b8060005b600f8110156107275761075f84835180518252602090810151910152565b6040939093019260209190910190600101610741565b61078082825161072d565b602080820151610793602085018261072d565b50604082810151805160008684015b60078210156107d2576107c081845180518252602090810151910152565b918501916001919091019084016107a2565b505050602081015192506107ea61020086018461073d565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e090910151805161070087015290810151610720860152915061087c9050565b505050565b8060005b6005811015610727578151845260209384019390910190600101610885565b80516000906109609084835b60088110156108cf5782518252602092830192909101906001016108b0565b50505060208301516108e5610100860182610775565b50604083015163ffffffff16610840850152606083015161090a610860860182610881565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610942828601826105a6565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526109896103e08501836105a6565b915060608501516109a560a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006109e281870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610a57610200880184610616565b870151868503601f1901848801529150610a73905083826108a4565b9695505050505050565b6000808335601e19843603018112610a9457600080fd5b8301803591506001600160401b03821115610aae57600080fd5b602001915036819003821315610ac357600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610aec57600080fd5b81356bffffffffffffffffffffffff198116811461016a57600080fd5b600060208284031215610b1b57600080fd5b81356001600160a01b038116811461016a57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610bbd57600080fd5b50565b600060208284031215610bd257600080fd5b815161016a81610baf565b60008085851115610bed57600080fd5b83861115610bfa57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610c3f57610c3f610c07565b60405290565b6040516101c081016001600160401b0381118282101715610c3f57610c3f610c07565b604051606081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161010081016001600160401b0381118282101715610c3f57610c3f610c07565b60405160e081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161016081016001600160401b0381118282101715610c3f57610c3f610c07565b8035610cfd81610baf565b919050565b600060408284031215610d1457600080fd5b610d1c610c1d565b9050813581526020820135610d3081610baf565b602082015292915050565b600082601f830112610d4c57600080fd5b81356001600160401b0380821115610d6657610d66610c07565b604051601f8301601f19908116603f01168101908282118183101715610d8e57610d8e610c07565b81604052838152866020858801011115610da757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610cfd57600080fd5b803563ffffffff81168114610cfd57600080fd5b600060a08284031215610e0457600080fd5b60405160a081018181106001600160401b0382111715610e2657610e26610c07565b604052905080610e3583610dc7565b8152610e4360208401610dde565b6020820152610e5460408401610dc7565b6040820152610e6560608401610dde565b6060820152610e7660808401610dc7565b60808201525092915050565b803560058110610cfd57600080fd5b60006101c08284031215610ea457600080fd5b610eac610c45565b9050610eb782610e82565b8152610ec560208301610e82565b6020820152610ed660408301610e82565b6040820152610ee760608301610e82565b6060820152610ef860808301610e82565b6080820152610f0960a08301610e82565b60a0820152610f1a60c08301610e82565b60c0820152610f2b60e08301610dde565b60e0820152610100610f3e818401610e82565b90820152610120610f50838201610e82565b90820152610140610f62838201610e82565b90820152610160610f74838201610e82565b90820152610180610f86838201610e82565b908201526101a0610f98838201610e82565b9082015292915050565b600082601f830112610fb357600080fd5b610fbb610c8a565b80610100840185811115610fce57600080fd5b845b81811015610fe8578035845260209384019301610fd0565b509095945050505050565b803560038110610cfd57600080fd5b60006040828403121561101457600080fd5b61101c610c1d565b9050813581526020820135602082015292915050565b600082601f83011261104357600080fd5b61104b610cad565b806101c084018581111561105e57600080fd5b845b81811015610fe8576110728782611002565b8452602090930192604001611060565b600082601f83011261109357600080fd5b604080516101e081018181106001600160401b03821117156110b7576110b7610c07565b604052806103c08501868111156110cd57600080fd5b855b818110156110f0576110e18882611002565b835260209092019184016110cf565b50919695505050505050565b600081830361074081121561111057600080fd5b611118610c68565b915061112383610ff3565b825261113160208401610ff3565b602083015261070080603f198301121561114a57600080fd5b611152610c8a565b91506111618560408601611032565b8252611171856102008601611082565b6020830152611184856105c08601611002565b6040830152611197856106008601611002565b60608301526111aa856106408601611002565b60808301526111bd856106808601611002565b60a08301526111d0856106c08601611002565b60c08301526111e185828601611002565b60e083015250604082015292915050565b600082601f83011261120357600080fd5b60405160a081018181106001600160401b038211171561122557611225610c07565b6040528060a084018581111561123a57600080fd5b845b8181101561125457803583526020928301920161123c565b509195945050505050565b6000610960828403121561127257600080fd5b61127a610cad565b90506112868383610fa2565b81526112968361010084016110fc565b60208201526112a86108408301610dde565b60408201526112bb8361086084016111f2565b60608201526112cd6109008301610dde565b60808201526112df6109208301610cf2565b60a08201526109408201356001600160401b038111156112fe57600080fd5b61130a84828501610d3b565b60c08301525092915050565b60006020828403121561132857600080fd5b81356001600160401b038082111561133f57600080fd5b908301906103c0828603121561135457600080fd5b61135c610ccf565b6113668684610d02565b81526040830135602082015260608301358281111561138457600080fd5b61139087828601610d3b565b6040830152506113a260808401610dc7565b60608201526113b360a08401610dde565b608082015260c083013560a08201526113cf8660e08501610d02565b60c08201526101208084013560e08301526101406113ef88828701610df2565b610100840152611403886101e08701610e91565b828401526103a085013591508382111561141c57600080fd5b6114288883870161125f565b90830152509594505050505056fea264697066735822122012c64260048c4a98dbb1d0cd693dd6b9dbb2349cdb0bea92e6d3a633caf45b9c64736f6c63430008190033","sourceMap":"140:3952:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:570;;;;;;:::i;:::-;;:::i;:::-;;;672:14:66;;665:22;647:41;;635:2;620:18;733:570:63;;;;;;;;1309:708;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;733:570::-;822:4;;877:13;;;;:4;:13;:::i;:::-;867:24;;;;;;;:::i;:::-;;;;;;;;;;;921:7;;867:24;;-1:-1:-1;;;;;;921:7:63;;:28;;967:20;;;867:24;;1041:35;;;;;1094:23;;;;;;;;;:::i;:::-;1135:20;;;;1173:16;;;;1135:4;1173:16;:::i;:::-;1207:31;;;;1256:26;;;;;;;;:::i;:::-;921:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;902:394;733:570;-1:-1:-1;;;733:570:63:o;1309:708::-;1407:14;;:::i;:::-;1433:26;1472:13;;;;:4;:13;:::i;:::-;1462:24;;;;;;;:::i;:::-;;;;;;;;;;;1497:22;1522:7;;1462:24;;-1:-1:-1;1497:22:63;-1:-1:-1;;;;;1522:7:63;;;;:28;;1564:20;;;1462:24;;1630:35;;;;;1679:23;;;;;;;;;:::i;:::-;1716:20;;;;1750:16;;;;1716:4;1750:16;:::i;:::-;1780:4;:31;;;1825:4;:26;;;;;;;;;;:::i;:::-;1522:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1497:364;;1876:17;1872:139;;;1927:13;;;;:4;:13;:::i;:::-;:22;;1941:6;;1927:22;;;:::i;:::-;1916:45;;;;;;;:::i;:::-;1909:52;1309:708;-1:-1:-1;;;;1309:708:63:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:392:66;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;214:9;201:23;-1:-1:-1;;;;;239:6:66;236:30;233:50;;;279:1;276;269:12;233:50;302:22;;358:3;340:16;;;336:26;333:46;;;375:1;372;365:12;878:423;920:3;958:5;952:12;985:6;980:3;973:19;1010:1;1020:162;1034:6;1031:1;1028:13;1020:162;;;1096:4;1152:13;;;1148:22;;1142:29;1124:11;;;1120:20;;1113:59;1049:12;1020:162;;;1024:3;1227:1;1220:4;1211:6;1206:3;1202:16;1198:27;1191:38;1290:4;1283:2;1279:7;1274:2;1266:6;1262:15;1258:29;1253:3;1249:39;1245:50;1238:57;;;878:423;;;;:::o;1984:127::-;2045:10;2040:3;2036:20;2033:1;2026:31;2076:4;2073:1;2066:15;2100:4;2097:1;2090:15;2116:143;2200:1;2193:5;2190:12;2180:46;;2206:18;;:::i;:::-;2235;;2116:143::o;2264:1834::-;2329:47;2372:3;2364:5;2358:12;2329:47;:::i;:::-;2422:4;2415:5;2411:16;2405:23;2437:58;2489:4;2484:3;2480:14;2466:12;2437:58;:::i;:::-;;2543:4;2536:5;2532:16;2526:23;2558:60;2612:4;2607:3;2603:14;2587;2558:60;:::i;:::-;;2666:4;2659:5;2655:16;2649:23;2681:60;2735:4;2730:3;2726:14;2710;2681:60;:::i;:::-;;2789:4;2782:5;2778:16;2772:23;2804:60;2858:4;2853:3;2849:14;2833;2804:60;:::i;:::-;;2912:4;2905:5;2901:16;2895:23;2927:60;2981:4;2976:3;2972:14;2956;2927:60;:::i;:::-;;3035:4;3028:5;3024:16;3018:23;3050:60;3104:4;3099:3;3095:14;3079;3050:60;:::i;:::-;;3158:4;3151:5;3147:16;3141:23;3173:49;3216:4;3211:3;3207:14;3191;1489:10;1478:22;1466:35;;1413:94;3173:49;;3241:6;3295:2;3288:5;3284:14;3278:21;3308:58;3362:2;3357:3;3353:12;3337:14;3308:58;:::i;:::-;;;3385:6;3439:2;3432:5;3428:14;3422:21;3452:58;3506:2;3501:3;3497:12;3481:14;3452:58;:::i;:::-;;;3529:6;3583:2;3576:5;3572:14;3566:21;3596:58;3650:2;3645:3;3641:12;3625:14;3596:58;:::i;:::-;;;3673:6;3728:2;3721:5;3717:14;3711:21;3741:59;3796:2;3791:3;3787:12;3770:15;3741:59;:::i;:::-;;;3819:6;3874:2;3867:5;3863:14;3857:21;3887:59;3942:2;3937:3;3933:12;3916:15;3887:59;:::i;:::-;;;3965:6;4020:2;4013:5;4009:14;4003:21;4033:59;4088:2;4083:3;4079:12;4062:15;4033:59;:::i;:::-;;;2264:1834;;:::o;4103:145::-;4189:1;4182:5;4179:12;4169:46;;4195:18;;:::i;4409:335::-;4512:5;4535:1;4545:193;4559:4;4556:1;4553:11;4545:193;;;4606:48;4650:3;4641:6;4635:13;4329:12;;4317:25;;4391:4;4380:16;;;4374:23;4358:14;;4351:47;4253:151;4606:48;4683:4;4674:14;;;;;4723:4;4711:17;;;;;4579:1;4572:9;4545:193;;4749:1639;4818:49;4863:3;4855:5;4849:12;4818:49;:::i;:::-;4886:4;4936;4929:5;4925:16;4919:23;4951:60;5005:4;5000:3;4996:14;4982:12;4951:60;:::i;:::-;-1:-1:-1;5030:4:66;5071:16;;;5065:23;5140:21;;5248:1;5107:14;;;5258:195;5272:4;5269:1;5266:11;5258:195;;;5319:50;5363:5;5354:6;5348:13;4329:12;;4317:25;;4391:4;4380:16;;;4374:23;4358:14;;4351:47;4253:151;5319:50;5428:15;;;;5292:1;5285:9;;;;;5391:14;;5258:195;;;5262:3;;;5510:4;5494:14;5490:25;5484:32;5462:54;;5525:65;5585:3;5580;5576:13;5560:14;5525:65;:::i;:::-;5647:4;5627:25;;5621:32;4329:12;;5716:4;5707:14;;4317:25;4391:4;4380:16;;;4374:23;4358:14;;;4351:47;5779:4;5759:25;;5753:32;4329:12;;5848:4;5839:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;5911:4;5891:25;;5885:32;4329:12;;5980:4;5971:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6043:4;6023:25;;6017:32;4329:12;;6112:4;6103:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6175:4;6155:25;;6149:32;4329:12;;6244:4;6235:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6307:4;6287:25;;;6281:32;4329:12;;6376:4;6367:14;;4317:25;4380:16;;;4374:23;4358:14;;;4351:47;6281:32;-1:-1:-1;6322:60:66;;-1:-1:-1;4253:151:66;6322:60;;4749:1639;;:::o;6393:326::-;6486:5;6509:1;6519:194;6533:4;6530:1;6527:11;6519:194;;;6592:13;;6580:26;;6629:4;6653:12;;;;6688:15;;;;6553:1;6546:9;6519:194;;6724:1166;6832:12;;6779:3;;6807:6;;6866:3;6779;6943:200;6957:4;6954:1;6951:11;6943:200;;;7018:13;;7004:28;;7055:4;7118:15;;;;7081:14;;;;6977:1;6970:9;6943:200;;;6947:3;;;7189:4;7182:5;7178:16;7172:23;7204:65;7261:6;7256:3;7252:16;7238:12;7204:65;:::i;:::-;-1:-1:-1;7317:4:66;7306:16;;7300:23;1489:10;1478:22;7375:6;7366:16;;1466:35;7431:4;7420:16;;7414:23;7446:58;7496:6;7487:16;;7414:23;7446:58;:::i;:::-;-1:-1:-1;7552:4:66;7541:16;;7535:23;1489:10;1478:22;7610:6;7601:16;;1466:35;7666:4;7655:16;;7649:23;481:13;474:21;7722:6;7713:16;;462:34;7778:4;7767:16;;7761:23;7809:6;7800:16;;7793:28;;;7837:47;7871:12;;;7761:23;7837:47;:::i;:::-;7830:54;6724:1166;-1:-1:-1;;;;;6724:1166:66:o;7895:1526::-;8076:2;8058:21;;;8124:13;;782:12;;8139:18;;;770:25;847:16;841:23;834:31;827:39;811:14;;;804:63;8212:2;8204:6;8200:15;8194:22;8189:2;8178:9;8174:18;8167:50;8039:4;8264;8256:6;8252:17;8246:24;8289:6;8332:2;8326:3;8315:9;8311:19;8304:31;8358:52;8405:3;8394:9;8390:19;8376:12;8358:52;:::i;:::-;8344:66;;8459:2;8451:6;8447:15;8441:22;8472:54;8521:3;8510:9;8506:19;8490:14;-1:-1:-1;;;;;1371:30:66;1359:43;;1306:102;8472:54;-1:-1:-1;8575:3:66;8563:16;;8557:23;1489:10;1478:22;;8638:3;8623:19;;1466:35;8589:54;8698:3;8690:6;8686:16;8680:23;8674:3;8663:9;8659:19;8652:52;8753:3;8745:6;8741:16;8735:23;8777:3;8789:71;8856:2;8845:9;8841:18;8825:14;782:12;;770:25;;858:4;847:16;;;841:23;834:31;827:39;811:14;;804:63;699:174;8789:71;8897:3;8885:16;;8879:23;8921:3;8940:18;;;8933:30;;;;9000:15;;;8994:22;1625:12;;-1:-1:-1;;;;;1621:21:66;;;9081:3;9066:19;;1609:34;1689:4;1678:16;;1672:23;1714:10;1756:21;;;1740:14;;;1733:45;1831:4;1820:16;;1814:23;1810:32;;1794:14;;;1787:56;1896:4;1885:16;;1879:23;1875:32;1859:14;;;1852:56;1961:4;1950:16;;;1944:23;1940:32;1924:14;;;1917:56;9135:6;9123:19;;9117:26;;-1:-1:-1;9152:66:66;9213:3;9198:19;;9117:26;9152:66;:::i;:::-;9255:15;;9249:22;9311;;;-1:-1:-1;;9307:36:66;9287:18;;;9280:64;9249:22;-1:-1:-1;9361:54:66;;-1:-1:-1;9315:6:66;9249:22;9361:54;:::i;:::-;9353:62;7895:1526;-1:-1:-1;;;;;;7895:1526:66:o;9426:521::-;9503:4;9509:6;9569:11;9556:25;9663:2;9659:7;9648:8;9632:14;9628:29;9624:43;9604:18;9600:68;9590:96;;9682:1;9679;9672:12;9590:96;9709:33;;9761:20;;;-1:-1:-1;;;;;;9793:30:66;;9790:50;;;9836:1;9833;9826:12;9790:50;9869:4;9857:17;;-1:-1:-1;9900:14:66;9896:27;;;9886:38;;9883:58;;;9937:1;9934;9927:12;9883:58;9426:521;;;;;:::o;9952:271::-;10135:6;10127;10122:3;10109:33;10091:3;10161:16;;10186:13;;;10161:16;9952:271;-1:-1:-1;9952:271:66:o;10228:298::-;10287:6;10340:2;10328:9;10319:7;10315:23;10311:32;10308:52;;;10356:1;10353;10346:12;10308:52;10382:23;;-1:-1:-1;;10434:43:66;;10424:54;;10414:82;;10492:1;10489;10482:12;10531:286;10590:6;10643:2;10631:9;10622:7;10618:23;10614:32;10611:52;;;10659:1;10656;10649:12;10611:52;10685:23;;-1:-1:-1;;;;;10737:31:66;;10727:42;;10717:70;;10783:1;10780;10773:12;10822:997;11138:4;11167:3;11197:6;11186:9;11179:25;11240:6;11235:2;11224:9;11220:18;11213:34;11283:6;11278:2;11267:9;11263:18;11256:34;11342:26;11338:31;11330:6;11326:44;11321:2;11310:9;11306:18;11299:72;11408:6;11402:3;11391:9;11387:19;11380:35;11452:2;11446:3;11435:9;11431:19;11424:31;11491:6;11486:2;11475:9;11471:18;11464:34;;11517:3;11570:6;11562;11557:2;11546:9;11542:18;11529:48;11626:1;11597:22;;;11593:31;;11586:42;11730:3;11715:19;;11708:35;;;;-1:-1:-1;;;;;;11780:32:66;;;;11774:3;11759:19;;11752:61;11689:2;11668:15;;;-1:-1:-1;;11664:29:66;11649:45;;;11645:54;;10822:997;-1:-1:-1;;;;;;10822:997:66:o;11824:118::-;11910:5;11903:13;11896:21;11889:5;11886:32;11876:60;;11932:1;11929;11922:12;11876:60;11824:118;:::o;11947:245::-;12014:6;12067:2;12055:9;12046:7;12042:23;12038:32;12035:52;;;12083:1;12080;12073:12;12035:52;12115:9;12109:16;12134:28;12156:5;12134:28;:::i;12197:331::-;12302:9;12313;12355:8;12343:10;12340:24;12337:44;;;12377:1;12374;12367:12;12337:44;12406:6;12396:8;12393:20;12390:40;;;12426:1;12423;12416:12;12390:40;-1:-1:-1;;12452:23:66;;;12497:25;;;;;-1:-1:-1;12197:331:66:o;12533:127::-;12594:10;12589:3;12585:20;12582:1;12575:31;12625:4;12622:1;12615:15;12649:4;12646:1;12639:15;12665:257;12737:4;12731:11;;;12769:17;;-1:-1:-1;;;;;12801:34:66;;12837:22;;;12798:62;12795:88;;;12863:18;;:::i;:::-;12899:4;12892:24;12665:257;:::o;12927:255::-;12999:2;12993:9;13041:6;13029:19;;-1:-1:-1;;;;;13063:34:66;;13099:22;;;13060:62;13057:88;;;13125:18;;:::i;13187:253::-;13259:2;13253:9;13301:4;13289:17;;-1:-1:-1;;;;;13321:34:66;;13357:22;;;13318:62;13315:88;;;13383:18;;:::i;13445:255::-;13517:2;13511:9;13559:6;13547:19;;-1:-1:-1;;;;;13581:34:66;;13617:22;;;13578:62;13575:88;;;13643:18;;:::i;13705:253::-;13777:2;13771:9;13819:4;13807:17;;-1:-1:-1;;;;;13839:34:66;;13875:22;;;13836:62;13833:88;;;13901:18;;:::i;13963:250::-;14030:2;14024:9;14072:6;14060:19;;-1:-1:-1;;;;;14094:34:66;;14130:22;;;14091:62;14088:88;;;14156:18;;:::i;14218:128::-;14283:20;;14312:28;14283:20;14312:28;:::i;:::-;14218:128;;;:::o;14351:362::-;14415:5;14463:4;14451:9;14446:3;14442:19;14438:30;14435:50;;;14481:1;14478;14471:12;14435:50;14503:22;;:::i;:::-;14494:31;;14561:9;14548:23;14541:5;14534:38;14624:2;14613:9;14609:18;14596:32;14637:30;14659:7;14637:30;:::i;:::-;14694:2;14683:14;;14676:31;14687:5;14351:362;-1:-1:-1;;14351:362:66:o;14718:719::-;14761:5;14814:3;14807:4;14799:6;14795:17;14791:27;14781:55;;14832:1;14829;14822:12;14781:55;14868:6;14855:20;-1:-1:-1;;;;;14931:2:66;14927;14924:10;14921:36;;;14937:18;;:::i;:::-;15012:2;15006:9;14980:2;15066:13;;-1:-1:-1;;15062:22:66;;;15086:2;15058:31;15054:40;15042:53;;;15110:18;;;15130:22;;;15107:46;15104:72;;;15156:18;;:::i;:::-;15196:10;15192:2;15185:22;15231:2;15223:6;15216:18;15277:3;15270:4;15265:2;15257:6;15253:15;15249:26;15246:35;15243:55;;;15294:1;15291;15284:12;15243:55;15358:2;15351:4;15343:6;15339:17;15332:4;15324:6;15320:17;15307:54;15405:1;15398:4;15393:2;15385:6;15381:15;15377:26;15370:37;15425:6;15416:15;;;;;;14718:719;;;;:::o;15442:171::-;15509:20;;-1:-1:-1;;;;;15558:30:66;;15548:41;;15538:69;;15603:1;15600;15593:12;15618:163;15685:20;;15745:10;15734:22;;15724:33;;15714:61;;15771:1;15768;15761:12;15786:696;15839:5;15887:4;15875:9;15870:3;15866:19;15862:30;15859:50;;;15905:1;15902;15895:12;15859:50;15938:2;15932:9;15980:4;15972:6;15968:17;16051:6;16039:10;16036:22;-1:-1:-1;;;;;16003:10:66;16000:34;15997:62;15994:88;;;16062:18;;:::i;:::-;16098:2;16091:22;16131:6;-1:-1:-1;16131:6:66;16161:28;16179:9;16161:28;:::i;:::-;16153:6;16146:44;16223:37;16256:2;16245:9;16241:18;16223:37;:::i;:::-;16218:2;16210:6;16206:15;16199:62;16294:37;16327:2;16316:9;16312:18;16294:37;:::i;:::-;16289:2;16281:6;16277:15;16270:62;16365:37;16398:2;16387:9;16383:18;16365:37;:::i;:::-;16360:2;16352:6;16348:15;16341:62;16437:38;16470:3;16459:9;16455:19;16437:38;:::i;:::-;16431:3;16423:6;16419:16;16412:64;;15786:696;;;;:::o;16487:153::-;16565:20;;16614:1;16604:12;;16594:40;;16630:1;16627;16620:12;16645:1421;16703:5;16751:6;16739:9;16734:3;16730:19;16726:32;16723:52;;;16771:1;16768;16761:12;16723:52;16793:22;;:::i;:::-;16784:31;;16838:39;16867:9;16838:39;:::i;:::-;16831:5;16824:54;16910:48;16954:2;16943:9;16939:18;16910:48;:::i;:::-;16905:2;16898:5;16894:14;16887:72;16991:48;17035:2;17024:9;17020:18;16991:48;:::i;:::-;16986:2;16979:5;16975:14;16968:72;17072:48;17116:2;17105:9;17101:18;17072:48;:::i;:::-;17067:2;17060:5;17056:14;17049:72;17154:49;17198:3;17187:9;17183:19;17154:49;:::i;:::-;17148:3;17141:5;17137:15;17130:74;17237:49;17281:3;17270:9;17266:19;17237:49;:::i;:::-;17231:3;17224:5;17220:15;17213:74;17320:49;17364:3;17353:9;17349:19;17320:49;:::i;:::-;17314:3;17307:5;17303:15;17296:74;17403:38;17436:3;17425:9;17421:19;17403:38;:::i;:::-;17397:3;17390:5;17386:15;17379:63;17461:3;17496:48;17540:2;17529:9;17525:18;17496:48;:::i;:::-;17480:14;;;17473:72;17564:3;17599:48;17628:18;;;17599:48;:::i;:::-;17583:14;;;17576:72;17667:3;17702:48;17731:18;;;17702:48;:::i;:::-;17686:14;;;17679:72;17770:3;17805:48;17834:18;;;17805:48;:::i;:::-;17789:14;;;17782:72;17873:3;17908:48;17937:18;;;17908:48;:::i;:::-;17892:14;;;17885:72;17976:3;18011:48;18040:18;;;18011:48;:::i;:::-;17995:14;;;17988:72;17999:5;16645:1421;-1:-1:-1;;16645:1421:66:o;18071:485::-;18121:5;18174:3;18167:4;18159:6;18155:17;18151:27;18141:55;;18192:1;18189;18182:12;18141:55;18216:22;;:::i;:::-;18260:3;18298;18290:6;18286:16;18325:3;18317:6;18314:15;18311:35;;;18342:1;18339;18332:12;18311:35;18366:6;18381:146;18397:6;18392:3;18389:15;18381:146;;;18465:17;;18453:30;;18512:4;18503:14;;;;18414;18381:146;;;-1:-1:-1;18545:5:66;;18071:485;-1:-1:-1;;;;;18071:485:66:o;18561:155::-;18641:20;;18690:1;18680:12;;18670:40;;18706:1;18703;18696:12;18721:285;18778:5;18826:4;18814:9;18809:3;18805:19;18801:30;18798:50;;;18844:1;18841;18834:12;18798:50;18866:22;;:::i;:::-;18857:31;;18924:9;18911:23;18904:5;18897:38;18995:2;18984:9;18980:18;18967:32;18962:2;18955:5;18951:14;18944:56;18721:285;;;;:::o;19011:516::-;19071:5;19124:3;19117:4;19109:6;19105:17;19101:27;19091:55;;19142:1;19139;19132:12;19091:55;19166:22;;:::i;:::-;19210:3;19248;19240:6;19236:16;19275:3;19267:6;19264:15;19261:35;;;19292:1;19289;19282:12;19261:35;19316:6;19331:167;19347:6;19342:3;19339:15;19331:167;;;19415:38;19449:3;19444;19415:38;:::i;:::-;19403:51;;19483:4;19474:14;;;;19373:4;19364:14;19331:167;;19532:720;19614:5;19667:3;19660:4;19652:6;19648:17;19644:27;19634:55;;19685:1;19682;19675:12;19634:55;19708:2;19739;19733:9;19781:3;19773:6;19769:16;19851:6;19839:10;19836:22;-1:-1:-1;;;;;19803:10:66;19800:34;19797:62;19794:88;;;19862:18;;:::i;:::-;19898:2;19891:22;19933:6;19974:3;19962:16;;19990:15;;;19987:35;;;20018:1;20015;20008:12;19987:35;20042:6;20057:165;20073:6;20068:3;20065:15;20057:165;;;20139:38;20173:3;20168;20139:38;:::i;:::-;20127:51;;20207:4;20198:14;;;;20090:12;;20057:165;;;-1:-1:-1;20240:6:66;;19532:720;-1:-1:-1;;;;;;19532:720:66:o;20257:1264::-;20319:5;20358:9;20353:3;20349:19;20388:6;20384:2;20380:15;20377:35;;;20408:1;20405;20398:12;20377:35;20430:22;;:::i;:::-;20421:31;;20475:41;20506:9;20475:41;:::i;:::-;20468:5;20461:56;20549:50;20595:2;20584:9;20580:18;20549:50;:::i;:::-;20544:2;20537:5;20533:14;20526:74;20619:6;20659:2;20653;20649:7;20645:2;20641:16;20637:25;20634:45;;;20675:1;20672;20665:12;20634:45;20703:22;;:::i;:::-;20688:37;;20750:59;20805:3;20800:2;20789:9;20785:18;20750:59;:::i;:::-;20741:7;20734:76;20844:82;20922:3;20916;20905:9;20901:19;20844:82;:::i;:::-;20839:2;20830:7;20826:16;20819:108;20961:55;21012:3;21005:4;20994:9;20990:20;20961:55;:::i;:::-;20956:2;20947:7;20943:16;20936:81;21053:55;21104:3;21097:4;21086:9;21082:20;21053:55;:::i;:::-;21046:4;21037:7;21033:18;21026:83;21145:55;21196:3;21189:4;21178:9;21174:20;21145:55;:::i;:::-;21138:4;21129:7;21125:18;21118:83;21237:55;21288:3;21281:4;21270:9;21266:20;21237:55;:::i;:::-;21230:4;21221:7;21217:18;21210:83;21329:55;21380:3;21373:4;21362:9;21358:20;21329:55;:::i;:::-;21322:4;21313:7;21309:18;21302:83;21421:53;21470:3;21465:2;21454:9;21450:18;21421:53;:::i;:::-;21414:4;21401:18;;21394:81;-1:-1:-1;21502:2:66;21491:14;;21484:31;21495:5;20257:1264;-1:-1:-1;;20257:1264:66:o;21526:659::-;21587:5;21640:3;21633:4;21625:6;21621:17;21617:27;21607:55;;21658:1;21655;21648:12;21607:55;21691:2;21685:9;21733:3;21725:6;21721:16;21803:6;21791:10;21788:22;-1:-1:-1;;;;;21755:10:66;21752:34;21749:62;21746:88;;;21814:18;;:::i;:::-;21850:2;21843:22;21885:6;21926:3;21914:16;;21942:15;;;21939:35;;;21970:1;21967;21960:12;21939:35;21994:6;22009:146;22025:6;22020:3;22017:15;22009:146;;;22093:17;;22081:30;;22140:4;22131:14;;;;22042;22009:146;;;-1:-1:-1;22173:6:66;;21526:659;-1:-1:-1;;;;;21526:659:66:o;22190:849::-;22249:5;22297:6;22285:9;22280:3;22276:19;22272:32;22269:52;;;22317:1;22314;22307:12;22269:52;22339:22;;:::i;:::-;22330:31;;22384:40;22420:3;22409:9;22384:40;:::i;:::-;22377:5;22370:55;22459:59;22514:3;22508;22497:9;22493:19;22459:59;:::i;:::-;22452:4;22445:5;22441:16;22434:85;22553:39;22586:4;22575:9;22571:20;22553:39;:::i;:::-;22546:4;22539:5;22535:16;22528:65;22627:62;22685:3;22678:4;22667:9;22663:20;22627:62;:::i;:::-;22620:4;22613:5;22609:16;22602:88;22724:39;22757:4;22746:9;22742:20;22724:39;:::i;:::-;22717:4;22710:5;22706:16;22699:65;22798:37;22829:4;22818:9;22814:20;22798:37;:::i;:::-;22791:4;22784:5;22780:16;22773:63;22887:4;22876:9;22872:20;22859:34;-1:-1:-1;;;;;22908:6:66;22905:30;22902:50;;;22948:1;22945;22938:12;22902:50;22986:46;23028:3;23019:6;23008:9;23004:22;22986:46;:::i;:::-;22979:4;22972:5;22968:16;22961:72;;22190:849;;;;:::o;23044:1494::-;23129:6;23182:2;23170:9;23161:7;23157:23;23153:32;23150:52;;;23198:1;23195;23188:12;23150:52;23238:9;23225:23;-1:-1:-1;;;;;23308:2:66;23300:6;23297:14;23294:34;;;23324:1;23321;23314:12;23294:34;23347:22;;;;23403:6;23385:16;;;23381:29;23378:49;;;23423:1;23420;23413:12;23378:49;23449:17;;:::i;:::-;23489:48;23529:7;23525:2;23489:48;:::i;:::-;23482:5;23475:63;23591:2;23587;23583:11;23570:25;23565:2;23558:5;23554:14;23547:49;23642:2;23638;23634:11;23621:25;23671:2;23661:8;23658:16;23655:36;;;23687:1;23684;23677:12;23655:36;23723:45;23760:7;23749:8;23745:2;23741:17;23723:45;:::i;:::-;23718:2;23711:5;23707:14;23700:69;;23801:31;23827:3;23823:2;23819:12;23801:31;:::i;:::-;23796:2;23789:5;23785:14;23778:55;23866:31;23892:3;23888:2;23884:12;23866:31;:::i;:::-;23860:3;23853:5;23849:15;23842:56;23952:3;23948:2;23944:12;23931:26;23925:3;23918:5;23914:15;23907:51;23991:58;24041:7;24035:3;24031:2;24027:12;23991:58;:::i;:::-;23985:3;23978:5;23974:15;23967:83;24069:3;24126:2;24122;24118:11;24105:25;24099:3;24092:5;24088:15;24081:50;24150:3;24189:46;24227:7;24222:2;24218;24214:11;24189:46;:::i;:::-;24180:6;24173:5;24169:18;24162:74;24268:52;24312:7;24306:3;24302:2;24298:12;24268:52;:::i;:::-;24263:2;24256:5;24252:14;24245:76;24367:3;24363:2;24359:12;24346:26;24330:42;;24397:2;24387:8;24384:16;24381:36;;;24413:1;24410;24403:12;24381:36;24449:58;24499:7;24488:8;24484:2;24480:17;24449:58;:::i;:::-;24433:14;;;24426:82;-1:-1:-1;24437:5:66;23044:1494;-1:-1:-1;;;;;23044:1494:66:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file diff --git a/core/abi/MinaBridge.json b/core/abi/MinaBridge.json index 54e9c105..ac9c193b 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaBridge.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106ed3803806106ed83398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d2565b0155506100e89050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b6000828210156100cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6105f6806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d91461008557806337baff0f1461008d5780633886c09b146100a2578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fc565b60405180910390f35b61006f610104565b6100a061009b3660046103ed565b61013a565b005b6100aa6102a8565b60405190815260200161007c565b6100aa6102ce565b6100aa601081565b6100d06102dd565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dd565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6020820151600061014d600160106104ad565b6010811061015d5761015d6104d2565b015481146101ac57806000610174600160106104ad565b60108110610184576101846104d2565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a91906101f5908e9086908f908f908f908f908f908e906004016104e8565b602060405180830381865afa158015610212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102369190610597565b905080156102825760006010604087016102408801835b601081101561027857825185558151845560019485019493840193602093840193909201910161024d565b505050505061029b565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102b76001826104ad565b601081106102c7576102c76104d2565b0154905090565b6000806102b7600160106104ad565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610325578151835260209283019290910190600101610306565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035557600080fd5b813567ffffffffffffffff808211156103705761037061032e565b604051601f8301601f19908116603f011681019082821181831017156103985761039861032e565b816040528381528660208588010111156103b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146103e857600080fd5b919050565b600080600080600080600080610100898b03121561040a57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461043557600080fd5b955060608901359450608089013567ffffffffffffffff8082111561045957600080fd5b6104658c838d01610344565b955060a08b0135945060c08b013591508082111561048257600080fd5b5061048f8b828c01610344565b92505061049e60e08a016103d1565b90509295985092959890939650565b6000828210156104cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105495787830182015185840161012001529181019161052a565b8083111561055c57600061012082870101525b60c08501879052601f01601f1916840161012001925061058a91505060e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156105a957600080fd5b815180151581146105b957600080fd5b939250505056fea2646970667358221220f25c704c27d0338d9dcf57842261213ec78d09c5395cf3593f97659450d6a54664736f6c634300080c0033","sourceMap":"369:4106:65:-:0;;;1077:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1159:7;:57;;-1:-1:-1;;;;;;1159:57:65;-1:-1:-1;;;;;1159:57:65;;;;;1281:13;-1:-1:-1;1243:34:65;-1:-1:-1;572:2:65;1243:34;:::i;:::-;1226:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:4106:65;;-1:-1:-1;369:4106:65;14:359:67;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:67;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:67:o;378:222::-;418:4;446:1;443;440:8;437:131;;;490:10;485:3;481:20;478:1;471:31;525:4;522:1;515:15;553:4;550:1;543:15;437:131;-1:-1:-1;585:9:67;;378:222::o;605:127::-;666:10;661:3;657:20;654:1;647:31;697:4;694:1;687:15;721:4;718:1;711:15;605:127;369:4106:65;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806303f93e50146100675780632bc4f8d91461008557806337baff0f1461008d5780633886c09b146100a2578063b8184745146100b8578063fb299cd8146100c0575b600080fd5b61006f6100c8565b60405161007c91906102fc565b60405180910390f35b61006f610104565b6100a061009b3660046103ed565b61013a565b005b6100aa6102a8565b60405190815260200161007c565b6100aa6102ce565b6100aa601081565b6100d06102dd565b604080516102008101918290529060009060109082845b8154815260200190600101908083116100e7575050505050905090565b61010c6102dd565b60408051610200810191829052601080548252909181906011602085018083116100e7575050505050905090565b6020820151600061014d600160106104ad565b6010811061015d5761015d6104d2565b015481146101ac57806000610174600160106104ad565b60108110610184576101846104d2565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a91906101f5908e9086908f908f908f908f908f908e906004016104e8565b602060405180830381865afa158015610212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102369190610597565b905080156102825760006010604087016102408801835b601081101561027857825185558151845560019485019493840193602093840193909201910161024d565b505050505061029b565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102b76001826104ad565b601081106102c7576102c76104d2565b0154905090565b6000806102b7600160106104ad565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b6010811015610325578151835260209283019290910190600101610306565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261035557600080fd5b813567ffffffffffffffff808211156103705761037061032e565b604051601f8301601f19908116603f011681019082821181831017156103985761039861032e565b816040528381528660208588010111156103b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146103e857600080fd5b919050565b600080600080600080600080610100898b03121561040a57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461043557600080fd5b955060608901359450608089013567ffffffffffffffff8082111561045957600080fd5b6104658c838d01610344565b955060a08b0135945060c08b013591508082111561048257600080fd5b5061048f8b828c01610344565b92505061049e60e08a016103d1565b90509295985092959890939650565b6000828210156104cd57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105495787830182015185840161012001529181019161052a565b8083111561055c57600061012082870101525b60c08501879052601f01601f1916840161012001925061058a91505060e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156105a957600080fd5b815180151581146105b957600080fd5b939250505056fea2646970667358221220f25c704c27d0338d9dcf57842261213ec78d09c5395cf3593f97659450d6a54664736f6c634300080c0033","sourceMap":"369:4106:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1764:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1977:144;;;:::i;2127:2346::-;;;;;;:::i;:::-;;:::i;:::-;;1557:137;;;:::i;:::-;;;2776:25:67;;;2764:2;2749:18;1557:137:65;2630:177:67;1361:135:65;;;:::i;515:59::-;;572:2;515:59;;1764:142;1818:46;;:::i;:::-;1876:23;;;;;;;;;;;-1:-1:-1;;1876:23:65;;-1:-1:-1;1876:23:65;;;;;;;;;;;;;;;;;;;;;;;;1764:142;:::o;1977:144::-;2032:46;;:::i;:::-;2090:24;;;;;;;;;;2097:17;2090:24;;;;;;2097:17;;2090:24;;;;;;;;;;;;;;;;1977:144;:::o;2127:2346::-;2588:4;2574:19;;2568:26;2471:34;2665;2698:1;572:2;2665:34;:::i;:::-;2648:52;;;;;;;:::i;:::-;;;2618:26;:82;2614:217;;2739:26;2767:16;2784:34;2817:1;572:2;2784:34;:::i;:::-;2767:52;;;;;;;:::i;:::-;;;2723:97;;-1:-1:-1;;;2723:97:65;;;;;3527:25:67;;;;3568:18;;;3561:34;3500:18;;2723:97:65;;;;;;;2614:217;2870:19;;;;;;;;;;2926:7;;:304;;-1:-1:-1;;;2926:304:65;;2841:26;;-1:-1:-1;;;;;2926:7:65;;:28;;:304;;2968:15;;2870:19;;3029:30;;3073:18;;3105:15;;3134:11;;3159:26;;3199:21;;2926:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2900:330;;3245:18;3241:1226;;;3383:21;3441:22;3731:2;3717:17;;3866:57;;;3383:21;3941:444;3966:30;3963:1;3960:37;3941:444;;;4059:18;;4039:39;;4232:19;;4211:41;;4187:1;4170:19;;;;4347:20;;;;4131:2;4114:20;;;;4289:21;;;;4005:9;3941:444;;;3945:14;;;;;3241:1226;;;4436:20;;-1:-1:-1;;;4436:20:65;;;;;;;;;;;3241:1226;2461:2012;;;2127:2346;;;;;;;;:::o;1557:137::-;1608:7;1634:17;1652:34;1685:1;1634:17;1652:34;:::i;:::-;1634:53;;;;;;;:::i;:::-;;;1627:60;;1557:137;:::o;1361:135::-;1411:7;;1454:34;1487:1;572:2;1454:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:67:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:67;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:67;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:67;1893:18;;1880:32;;-1:-1:-1;1962:2:67;1947:18;;1934:32;-1:-1:-1;;1995:43:67;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:67;2113:18;;2100:32;;-1:-1:-1;2183:3:67;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2994:222::-;3034:4;3062:1;3059;3056:8;3053:131;;;3106:10;3101:3;3097:20;3094:1;3087:31;3141:4;3138:1;3131:15;3169:4;3166:1;3159:15;3053:131;-1:-1:-1;3201:9:67;;2994:222::o;3221:127::-;3282:10;3277:3;3273:20;3270:1;3263:31;3313:4;3310:1;3303:15;3337:4;3334:1;3327:15;3715:1171;4021:4;4050:3;4080:6;4069:9;4062:25;4106:2;4144:6;4139:2;4128:9;4124:18;4117:34;4187:6;4182:2;4171:9;4167:18;4160:34;4246:26;4242:31;4234:6;4230:44;4225:2;4214:9;4210:18;4203:72;4312:6;4306:3;4295:9;4291:19;4284:35;4356:2;4350:3;4339:9;4335:19;4328:31;4388:6;4382:13;4431:6;4426:2;4415:9;4411:18;4404:34;4456:1;4447:10;;4466:141;4480:6;4477:1;4474:13;4466:141;;;4576:14;;;4572:23;;4566:30;4541:17;;;4560:3;4537:27;4530:67;4495:10;;;;4466:141;;;4625:6;4622:1;4619:13;4616:92;;;4696:1;4690:3;4681:6;4670:9;4666:22;4662:32;4655:43;4616:92;4811:3;4796:19;;4789:35;;;4769:2;4748:15;-1:-1:-1;;4744:29:67;4729:45;;4776:3;4725:55;;-1:-1:-1;4833:47:67;;-1:-1:-1;;4875:3:67;4860:19;;4852:6;-1:-1:-1;;;;;3672:31:67;3660:44;;3606:104;4833:47;3715:1171;;;;;;;;;;;:::o;4891:277::-;4958:6;5011:2;4999:9;4990:7;4986:23;4982:32;4979:52;;;5027:1;5024;5017:12;4979:52;5059:9;5053:16;5112:5;5105:13;5098:21;5091:5;5088:32;5078:60;;5134:1;5131;5124:12;5078:60;5157:5;4891:277;-1:-1:-1;;;4891:277:67:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x9fcd2cb923e5ef666b1b18a7e2a77d915d5bef119214dfc53cc5c6c044a87bc5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f32c8e9002c9a8bd9e23f63d430193e092e6b6cea56a11f839304feff3b333c7\",\"dweb:/ipfs/QmS2o2CeHebjAuviv715FsCNam95qy19qijJz4aw87YRJL\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817\",\"urls\":[\"bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d\",\"dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x68ef2223020d5b4ce1fb2b0b016fb1f66f6b84edbb0370f96d9c1398146e9409\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://57ba2b7b58fc15cdc9eefd70ad09bf8719ff981eabb64d6fca0da049456b2541\",\"dweb:/ipfs/QmPKZJoGwmBnA4gm1C4VySZr9iscQyLd1MtFVz1RkjctzV\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x4866bdaf26f08a08a8cedd7d5a21e0ab8daa3762c3916e04214bc2494a2cc362\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://794655d015a266738be278995e1a0e454a25e72e935c5d60e2fce14454215438\",\"dweb:/ipfs/QmYEYQx6AtSxFydEDUnwEWd1n1n5NiANJui5M9KTjn4gWk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x9fcd2cb923e5ef666b1b18a7e2a77d915d5bef119214dfc53cc5c6c044a87bc5","urls":["bzz-raw://f32c8e9002c9a8bd9e23f63d430193e092e6b6cea56a11f839304feff3b333c7","dweb:/ipfs/QmS2o2CeHebjAuviv715FsCNam95qy19qijJz4aw87YRJL"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xabc512eb0a600c2e6465b0813cc2d1b26edd0225f03d9c1de2f6fe96db531817","urls":["bzz-raw://64c7675966d4d3503e011ed3184ffaebb85128b04e892f81cb47996788ca744d","dweb:/ipfs/QmXqm57dvJCPUGgwMhf6k4sbPa3DUUTY3UVu2UCbHejY68"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x68ef2223020d5b4ce1fb2b0b016fb1f66f6b84edbb0370f96d9c1398146e9409","urls":["bzz-raw://57ba2b7b58fc15cdc9eefd70ad09bf8719ff981eabb64d6fca0da049456b2541","dweb:/ipfs/QmPKZJoGwmBnA4gm1C4VySZr9iscQyLd1MtFVz1RkjctzV"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0x4866bdaf26f08a08a8cedd7d5a21e0ab8daa3762c3916e04214bc2494a2cc362","urls":["bzz-raw://794655d015a266738be278995e1a0e454a25e72e935c5d60e2fce14454215438","dweb:/ipfs/QmYEYQx6AtSxFydEDUnwEWd1n1n5NiANJui5M9KTjn4gWk"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/MinaBridge.sol","id":47947,"exportedSymbols":{"AccountIsNotValid":[47786],"AlignedLayerServiceManager":[8505],"AlignedLayerServiceManagerStorage":[8527],"BLSSignatureChecker":[4846],"IAVSDirectory":[76],"IAlignedLayerServiceManager":[8603],"IPauserRegistry":[1244],"IRegistryCoordinator":[6102],"IRewardsCoordinator":[1584],"IStakeRegistry":[6512],"Merkle":[3209],"MinaBridge":[47946],"NewStateIsNotValid":[47776],"Pausable":[3505],"ServiceManagerBase":[5394],"TipStateIsWrong":[47782]},"nodeType":"SourceUnit","src":"39:4437:65","nodes":[{"id":47773,"nodeType":"PragmaDirective","src":"39:24:65","nodes":[],"literals":["solidity","^","0.8",".12"]},{"id":47774,"nodeType":"ImportDirective","src":"65:73:65","nodes":[],"absolutePath":"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol","file":"aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol","nameLocation":"-1:-1:-1","scope":47947,"sourceUnit":8506,"symbolAliases":[],"unitAlias":""},{"id":47776,"nodeType":"ErrorDefinition","src":"140:27:65","nodes":[],"name":"NewStateIsNotValid","nameLocation":"146:18:65","parameters":{"id":47775,"nodeType":"ParameterList","parameters":[],"src":"164:2:65"}},{"id":47782,"nodeType":"ErrorDefinition","src":"180:74:65","nodes":[],"name":"TipStateIsWrong","nameLocation":"186:15:65","parameters":{"id":47781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47778,"mutability":"mutable","name":"pubInputTipStateHash","nameLocation":"210:20:65","nodeType":"VariableDeclaration","scope":47782,"src":"202:28:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47780,"mutability":"mutable","name":"tipStatehash","nameLocation":"240:12:65","nodeType":"VariableDeclaration","scope":47782,"src":"232:20:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"232:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"201:52:65"}},{"id":47786,"nodeType":"ErrorDefinition","src":"267:47:65","nodes":[],"name":"AccountIsNotValid","nameLocation":"273:17:65","parameters":{"id":47785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47784,"mutability":"mutable","name":"accountIdHash","nameLocation":"299:13:65","nodeType":"VariableDeclaration","scope":47786,"src":"291:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"291:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"290:23:65"}},{"id":47946,"nodeType":"ContractDefinition","src":"369:4106:65","nodes":[{"id":47791,"nodeType":"VariableDeclaration","src":"515:59:65","nodes":[],"constant":true,"documentation":{"id":47788,"nodeType":"StructuredDocumentation","src":"395:115:65","text":"@notice The length of the verified state chain (also called the bridge's transition\n frontier) to store."},"functionSelector":"fb299cd8","mutability":"constant","name":"BRIDGE_TRANSITION_FRONTIER_LEN","nameLocation":"539:30:65","scope":47946,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47789,"name":"uint256","nodeType":"ElementaryTypeName","src":"515:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136","id":47790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"572:2:65","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"visibility":"public"},{"id":47796,"nodeType":"VariableDeclaration","src":"710:56:65","nodes":[],"constant":false,"documentation":{"id":47792,"nodeType":"StructuredDocumentation","src":"581:124:65","text":"@notice The state hash of the last verified chain of Mina states (also called\n the bridge's transition frontier)."},"mutability":"mutable","name":"chainStateHashes","nameLocation":"750:16:65","scope":47946,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16]"},"typeName":{"baseType":{"id":47793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"710:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47795,"length":{"id":47794,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"718:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"ArrayTypeName","src":"710:39:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage_ptr","typeString":"bytes32[16]"}},"visibility":"internal"},{"id":47801,"nodeType":"VariableDeclaration","src":"902:57:65","nodes":[],"constant":false,"documentation":{"id":47797,"nodeType":"StructuredDocumentation","src":"772:125:65","text":"@notice The ledger hash of the last verified chain of Mina states (also called\n the bridge's transition frontier)."},"mutability":"mutable","name":"chainLedgerHashes","nameLocation":"942:17:65","scope":47946,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16]"},"typeName":{"baseType":{"id":47798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"902:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47800,"length":{"id":47799,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"910:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"ArrayTypeName","src":"902:39:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage_ptr","typeString":"bytes32[16]"}},"visibility":"internal"},{"id":47805,"nodeType":"VariableDeclaration","src":"1036:34:65","nodes":[],"constant":false,"documentation":{"id":47802,"nodeType":"StructuredDocumentation","src":"966:65:65","text":"@notice Reference to the AlignedLayerServiceManager contract."},"mutability":"mutable","name":"aligned","nameLocation":"1063:7:65","scope":47946,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"},"typeName":{"id":47804,"nodeType":"UserDefinedTypeName","pathNode":{"id":47803,"name":"AlignedLayerServiceManager","nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"1036:26:65"},"referencedDeclaration":8505,"src":"1036:26:65","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"visibility":"internal"},{"id":47827,"nodeType":"FunctionDefinition","src":"1077:224:65","nodes":[],"body":{"id":47826,"nodeType":"Block","src":"1149:152:65","nodes":[],"statements":[{"expression":{"id":47816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47812,"name":"aligned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47805,"src":"1159:7:65","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47814,"name":"_alignedServiceAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47807,"src":"1196:19:65","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":47813,"name":"AlignedLayerServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8505,"src":"1169:26:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlignedLayerServiceManager_$8505_$","typeString":"type(contract AlignedLayerServiceManager)"}},"id":47815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1169:47:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"src":"1159:57:65","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"id":47817,"nodeType":"ExpressionStatement","src":"1159:57:65"},{"expression":{"id":47824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47818,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"1226:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47822,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47819,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"1243:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1276:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1243:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1226:52:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47823,"name":"_tipStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47809,"src":"1281:13:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1226:68:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47825,"nodeType":"ExpressionStatement","src":"1226:68:65"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47807,"mutability":"mutable","name":"_alignedServiceAddr","nameLocation":"1105:19:65","nodeType":"VariableDeclaration","scope":47827,"src":"1089:35:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":47806,"name":"address","nodeType":"ElementaryTypeName","src":"1089:15:65","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":47809,"mutability":"mutable","name":"_tipStateHash","nameLocation":"1134:13:65","nodeType":"VariableDeclaration","scope":47827,"src":"1126:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1126:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1088:60:65"},"returnParameters":{"id":47811,"nodeType":"ParameterList","parameters":[],"src":"1149:0:65"},"scope":47946,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47840,"nodeType":"FunctionDefinition","src":"1361:135:65","nodes":[],"body":{"id":47839,"nodeType":"Block","src":"1420:76:65","nodes":[],"statements":[{"expression":{"baseExpression":{"id":47833,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"1437:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47837,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47834,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"1454:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1454:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1437:52:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47832,"id":47838,"nodeType":"Return","src":"1430:59:65"}]},"documentation":{"id":47828,"nodeType":"StructuredDocumentation","src":"1307:49:65","text":"@notice Returns the last verified state hash."},"functionSelector":"b8184745","implemented":true,"kind":"function","modifiers":[],"name":"getTipStateHash","nameLocation":"1370:15:65","parameters":{"id":47829,"nodeType":"ParameterList","parameters":[],"src":"1385:2:65"},"returnParameters":{"id":47832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47831,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47840,"src":"1411:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47830,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1411:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1410:9:65"},"scope":47946,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47853,"nodeType":"FunctionDefinition","src":"1557:137:65","nodes":[],"body":{"id":47852,"nodeType":"Block","src":"1617:77:65","nodes":[],"statements":[{"expression":{"baseExpression":{"id":47846,"name":"chainLedgerHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47801,"src":"1634:17:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47850,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47847,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"1652:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1685:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1652:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1634:53:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47845,"id":47851,"nodeType":"Return","src":"1627:60:65"}]},"documentation":{"id":47841,"nodeType":"StructuredDocumentation","src":"1502:50:65","text":"@notice Returns the last verified ledger hash."},"functionSelector":"3886c09b","implemented":true,"kind":"function","modifiers":[],"name":"getTipLedgerHash","nameLocation":"1566:16:65","parameters":{"id":47842,"nodeType":"ParameterList","parameters":[],"src":"1582:2:65"},"returnParameters":{"id":47845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47853,"src":"1608:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1608:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1607:9:65"},"scope":47946,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47864,"nodeType":"FunctionDefinition","src":"1764:142:65","nodes":[],"body":{"id":47863,"nodeType":"Block","src":"1866:40:65","nodes":[],"statements":[{"expression":{"id":47861,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"1883:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"functionReturnParameters":47860,"id":47862,"nodeType":"Return","src":"1876:23:65"}]},"documentation":{"id":47854,"nodeType":"StructuredDocumentation","src":"1700:59:65","text":"@notice Returns the latest verified chain state hashes."},"functionSelector":"03f93e50","implemented":true,"kind":"function","modifiers":[],"name":"getChainStateHashes","nameLocation":"1773:19:65","parameters":{"id":47855,"nodeType":"ParameterList","parameters":[],"src":"1792:2:65"},"returnParameters":{"id":47860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47864,"src":"1818:46:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_memory_ptr","typeString":"bytes32[16]"},"typeName":{"baseType":{"id":47856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1818:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47858,"length":{"id":47857,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"1826:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"ArrayTypeName","src":"1818:39:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage_ptr","typeString":"bytes32[16]"}},"visibility":"internal"}],"src":"1817:48:65"},"scope":47946,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47875,"nodeType":"FunctionDefinition","src":"1977:144:65","nodes":[],"body":{"id":47874,"nodeType":"Block","src":"2080:41:65","nodes":[],"statements":[{"expression":{"id":47872,"name":"chainLedgerHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47801,"src":"2097:17:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"functionReturnParameters":47871,"id":47873,"nodeType":"Return","src":"2090:24:65"}]},"documentation":{"id":47865,"nodeType":"StructuredDocumentation","src":"1912:60:65","text":"@notice Returns the latest verified chain ledger hashes."},"functionSelector":"2bc4f8d9","implemented":true,"kind":"function","modifiers":[],"name":"getChainLedgerHashes","nameLocation":"1986:20:65","parameters":{"id":47866,"nodeType":"ParameterList","parameters":[],"src":"2006:2:65"},"returnParameters":{"id":47871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47875,"src":"2032:46:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_memory_ptr","typeString":"bytes32[16]"},"typeName":{"baseType":{"id":47867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2032:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47869,"length":{"id":47868,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"2040:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"ArrayTypeName","src":"2032:39:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage_ptr","typeString":"bytes32[16]"}},"visibility":"internal"}],"src":"2031:48:65"},"scope":47946,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47945,"nodeType":"FunctionDefinition","src":"2127:2346:65","nodes":[],"body":{"id":47944,"nodeType":"Block","src":"2461:2012:65","nodes":[],"statements":[{"assignments":[47895],"declarations":[{"constant":false,"id":47895,"mutability":"mutable","name":"pubInputBridgeTipStateHash","nameLocation":"2479:26:65","nodeType":"VariableDeclaration","scope":47944,"src":"2471:34:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2471:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47896,"nodeType":"VariableDeclarationStatement","src":"2471:34:65"},{"AST":{"nodeType":"YulBlock","src":"2524:80:65","statements":[{"nodeType":"YulAssignment","src":"2538:56:65","value":{"arguments":[{"arguments":[{"name":"pubInput","nodeType":"YulIdentifier","src":"2578:8:65"},{"kind":"number","nodeType":"YulLiteral","src":"2588:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2574:3:65"},"nodeType":"YulFunctionCall","src":"2574:19:65"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2568:5:65"},"nodeType":"YulFunctionCall","src":"2568:26:65"},"variableNames":[{"name":"pubInputBridgeTipStateHash","nodeType":"YulIdentifier","src":"2538:26:65"}]}]},"evmVersion":"london","externalReferences":[{"declaration":47889,"isOffset":false,"isSlot":false,"src":"2578:8:65","valueSize":1},{"declaration":47895,"isOffset":false,"isSlot":false,"src":"2538:26:65","valueSize":1}],"id":47897,"nodeType":"InlineAssembly","src":"2515:89:65"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":47904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47898,"name":"pubInputBridgeTipStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47895,"src":"2618:26:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":47899,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"2648:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47903,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47900,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"2665:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2698:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2665:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2648:52:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2618:82:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47915,"nodeType":"IfStatement","src":"2614:217:65","trueBody":{"id":47914,"nodeType":"Block","src":"2702:129:65","statements":[{"errorCall":{"arguments":[{"id":47906,"name":"pubInputBridgeTipStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47895,"src":"2739:26:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":47907,"name":"chainStateHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47796,"src":"2767:16:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$16_storage","typeString":"bytes32[16] storage ref"}},"id":47911,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":47908,"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"2784:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2817:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2784:34:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2767:52:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":47905,"name":"TipStateIsWrong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47782,"src":"2723:15:65","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) pure"}},"id":47912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2723:97:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47913,"nodeType":"RevertStatement","src":"2716:104:65"}]}},{"assignments":[47917],"declarations":[{"constant":false,"id":47917,"mutability":"mutable","name":"pubInputCommitment","nameLocation":"2849:18:65","nodeType":"VariableDeclaration","scope":47944,"src":"2841:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2841:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47921,"initialValue":{"arguments":[{"id":47919,"name":"pubInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47889,"src":"2880:8:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47918,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2870:9:65","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2870:19:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2841:48:65"},{"assignments":[47923],"declarations":[{"constant":false,"id":47923,"mutability":"mutable","name":"isNewStateVerified","nameLocation":"2905:18:65","nodeType":"VariableDeclaration","scope":47944,"src":"2900:23:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47922,"name":"bool","nodeType":"ElementaryTypeName","src":"2900:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":47935,"initialValue":{"arguments":[{"id":47926,"name":"proofCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"2968:15:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47927,"name":"pubInputCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47917,"src":"2997:18:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47928,"name":"provingSystemAuxDataCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47879,"src":"3029:30:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47929,"name":"proofGeneratorAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47881,"src":"3073:18:65","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},{"id":47930,"name":"batchMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47883,"src":"3105:15:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47931,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47885,"src":"3134:11:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":47932,"name":"verificationDataBatchIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47887,"src":"3159:26:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47933,"name":"batcherPaymentService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47891,"src":"3199:21:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes20","typeString":"bytes20"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47924,"name":"aligned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47805,"src":"2926:7:65","typeDescriptions":{"typeIdentifier":"t_contract$_AlignedLayerServiceManager_$8505","typeString":"contract AlignedLayerServiceManager"}},"id":47925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verifyBatchInclusion","nodeType":"MemberAccess","referencedDeclaration":8455,"src":"2926:28:65","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes20_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,bytes32,bytes32,bytes20,bytes32,bytes memory,uint256,address) view external returns (bool)"}},"id":47934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2926:304:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2900:330:65"},{"condition":{"id":47936,"name":"isNewStateVerified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47923,"src":"3245:18:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":47942,"nodeType":"Block","src":"4415:52:65","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47939,"name":"NewStateIsNotValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47776,"src":"4436:18:65","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4436:20:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47941,"nodeType":"RevertStatement","src":"4429:27:65"}]},"id":47943,"nodeType":"IfStatement","src":"3241:1226:65","trueBody":{"id":47938,"nodeType":"Block","src":"3265:1144:65","statements":[{"AST":{"nodeType":"YulBlock","src":"3346:1053:65","statements":[{"nodeType":"YulVariableDeclaration","src":"3364:40:65","value":{"name":"chainStateHashes.slot","nodeType":"YulIdentifier","src":"3383:21:65"},"variables":[{"name":"slot_states","nodeType":"YulTypedName","src":"3368:11:65","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3421:42:65","value":{"name":"chainLedgerHashes.slot","nodeType":"YulIdentifier","src":"3441:22:65"},"variables":[{"name":"slot_ledgers","nodeType":"YulTypedName","src":"3425:12:65","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3698:36:65","value":{"arguments":[{"name":"pubInput","nodeType":"YulIdentifier","src":"3721:8:65"},{"kind":"number","nodeType":"YulLiteral","src":"3731:2:65","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3717:3:65"},"nodeType":"YulFunctionCall","src":"3717:17:65"},"variables":[{"name":"addr_states","nodeType":"YulTypedName","src":"3702:11:65","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3846:77:65","value":{"arguments":[{"name":"addr_states","nodeType":"YulIdentifier","src":"3870:11:65"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3887:2:65","type":"","value":"32"},{"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"YulIdentifier","src":"3891:30:65"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3883:3:65"},"nodeType":"YulFunctionCall","src":"3883:39:65"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3866:3:65"},"nodeType":"YulFunctionCall","src":"3866:57:65"},"variables":[{"name":"addr_ledgers","nodeType":"YulTypedName","src":"3850:12:65","type":""}]},{"body":{"nodeType":"YulBlock","src":"4017:368:65","statements":[{"expression":{"arguments":[{"name":"slot_states","nodeType":"YulIdentifier","src":"4046:11:65"},{"arguments":[{"name":"addr_states","nodeType":"YulIdentifier","src":"4065:11:65"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4059:5:65"},"nodeType":"YulFunctionCall","src":"4059:18:65"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4039:6:65"},"nodeType":"YulFunctionCall","src":"4039:39:65"},"nodeType":"YulExpressionStatement","src":"4039:39:65"},{"nodeType":"YulAssignment","src":"4099:35:65","value":{"arguments":[{"name":"addr_states","nodeType":"YulIdentifier","src":"4118:11:65"},{"kind":"number","nodeType":"YulLiteral","src":"4131:2:65","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4114:3:65"},"nodeType":"YulFunctionCall","src":"4114:20:65"},"variableNames":[{"name":"addr_states","nodeType":"YulIdentifier","src":"4099:11:65"}]},{"nodeType":"YulAssignment","src":"4155:34:65","value":{"arguments":[{"name":"slot_states","nodeType":"YulIdentifier","src":"4174:11:65"},{"kind":"number","nodeType":"YulLiteral","src":"4187:1:65","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4170:3:65"},"nodeType":"YulFunctionCall","src":"4170:19:65"},"variableNames":[{"name":"slot_states","nodeType":"YulIdentifier","src":"4155:11:65"}]},{"expression":{"arguments":[{"name":"slot_ledgers","nodeType":"YulIdentifier","src":"4218:12:65"},{"arguments":[{"name":"addr_ledgers","nodeType":"YulIdentifier","src":"4238:12:65"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4232:5:65"},"nodeType":"YulFunctionCall","src":"4232:19:65"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4211:6:65"},"nodeType":"YulFunctionCall","src":"4211:41:65"},"nodeType":"YulExpressionStatement","src":"4211:41:65"},{"nodeType":"YulAssignment","src":"4273:37:65","value":{"arguments":[{"name":"addr_ledgers","nodeType":"YulIdentifier","src":"4293:12:65"},{"kind":"number","nodeType":"YulLiteral","src":"4307:2:65","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4289:3:65"},"nodeType":"YulFunctionCall","src":"4289:21:65"},"variableNames":[{"name":"addr_ledgers","nodeType":"YulIdentifier","src":"4273:12:65"}]},{"nodeType":"YulAssignment","src":"4331:36:65","value":{"arguments":[{"name":"slot_ledgers","nodeType":"YulIdentifier","src":"4351:12:65"},{"kind":"number","nodeType":"YulLiteral","src":"4365:1:65","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4347:3:65"},"nodeType":"YulFunctionCall","src":"4347:20:65"},"variableNames":[{"name":"slot_ledgers","nodeType":"YulIdentifier","src":"4331:12:65"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3963:1:65"},{"name":"BRIDGE_TRANSITION_FRONTIER_LEN","nodeType":"YulIdentifier","src":"3966:30:65"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3960:2:65"},"nodeType":"YulFunctionCall","src":"3960:37:65"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3998:18:65","statements":[{"nodeType":"YulAssignment","src":"4000:14:65","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4009:1:65"},{"kind":"number","nodeType":"YulLiteral","src":"4012:1:65","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4005:3:65"},"nodeType":"YulFunctionCall","src":"4005:9:65"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4000:1:65"}]}]},"pre":{"nodeType":"YulBlock","src":"3945:14:65","statements":[{"nodeType":"YulVariableDeclaration","src":"3947:10:65","value":{"kind":"number","nodeType":"YulLiteral","src":"3956:1:65","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3951:1:65","type":""}]}]},"src":"3941:444:65"}]},"evmVersion":"london","externalReferences":[{"declaration":47791,"isOffset":false,"isSlot":false,"src":"3891:30:65","valueSize":1},{"declaration":47791,"isOffset":false,"isSlot":false,"src":"3966:30:65","valueSize":1},{"declaration":47801,"isOffset":false,"isSlot":true,"src":"3441:22:65","suffix":"slot","valueSize":1},{"declaration":47796,"isOffset":false,"isSlot":true,"src":"3383:21:65","suffix":"slot","valueSize":1},{"declaration":47889,"isOffset":false,"isSlot":false,"src":"3721:8:65","valueSize":1}],"id":47937,"nodeType":"InlineAssembly","src":"3337:1062:65"}]}}]},"functionSelector":"37baff0f","implemented":true,"kind":"function","modifiers":[],"name":"updateChain","nameLocation":"2136:11:65","parameters":{"id":47892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47877,"mutability":"mutable","name":"proofCommitment","nameLocation":"2165:15:65","nodeType":"VariableDeclaration","scope":47945,"src":"2157:23:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47879,"mutability":"mutable","name":"provingSystemAuxDataCommitment","nameLocation":"2198:30:65","nodeType":"VariableDeclaration","scope":47945,"src":"2190:38:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47878,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2190:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47881,"mutability":"mutable","name":"proofGeneratorAddr","nameLocation":"2246:18:65","nodeType":"VariableDeclaration","scope":47945,"src":"2238:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":47880,"name":"bytes20","nodeType":"ElementaryTypeName","src":"2238:7:65","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"},{"constant":false,"id":47883,"mutability":"mutable","name":"batchMerkleRoot","nameLocation":"2282:15:65","nodeType":"VariableDeclaration","scope":47945,"src":"2274:23:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2274:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47885,"mutability":"mutable","name":"merkleProof","nameLocation":"2320:11:65","nodeType":"VariableDeclaration","scope":47945,"src":"2307:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47884,"name":"bytes","nodeType":"ElementaryTypeName","src":"2307:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47887,"mutability":"mutable","name":"verificationDataBatchIndex","nameLocation":"2349:26:65","nodeType":"VariableDeclaration","scope":47945,"src":"2341:34:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47886,"name":"uint256","nodeType":"ElementaryTypeName","src":"2341:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47889,"mutability":"mutable","name":"pubInput","nameLocation":"2398:8:65","nodeType":"VariableDeclaration","scope":47945,"src":"2385:21:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47888,"name":"bytes","nodeType":"ElementaryTypeName","src":"2385:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47891,"mutability":"mutable","name":"batcherPaymentService","nameLocation":"2424:21:65","nodeType":"VariableDeclaration","scope":47945,"src":"2416:29:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47890,"name":"address","nodeType":"ElementaryTypeName","src":"2416:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2147:304:65"},"returnParameters":{"id":47893,"nodeType":"ParameterList","parameters":[],"src":"2461:0:65"},"scope":47946,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"MinaBridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":47787,"nodeType":"StructuredDocumentation","src":"316:53:65","text":"@title Mina to Ethereum Bridge's smart contract."},"fullyImplemented":true,"linearizedBaseContracts":[47946],"name":"MinaBridge","nameLocation":"378:10:65","scope":47947,"usedErrors":[47776,47782]}],"license":"UNLICENSED"},"id":65} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060405161078c38038061078c833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61069f806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea2646970667358221220ccffa0389b24b92e3608ec51a9cf1ae9fa6bb7ae59478769ce76aac4cc5c8bd864736f6c63430008190033","sourceMap":"369:4813:64:-:0;;;1077:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1159:7;:57;;-1:-1:-1;;;;;;1159:57:64;-1:-1:-1;;;;;1159:57:64;;;;;1281:13;-1:-1:-1;1243:34:64;-1:-1:-1;572:2:64;1243:34;:::i;:::-;1226:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:4813:64;;-1:-1:-1;369:4813:64;14:359:66;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:66;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:66:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;369:4813:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea2646970667358221220ccffa0389b24b92e3608ec51a9cf1ae9fa6bb7ae59478769ce76aac4cc5c8bd864736f6c63430008190033","sourceMap":"369:4813:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1764:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2005:172;;;:::i;2624:2556::-;;;;;;:::i;:::-;;:::i;:::-;;1557:137;;;:::i;:::-;;;2776:25:66;;;2764:2;2749:18;1557:137:64;2630:177:66;2253:365:64;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:66;;3155:22;3137:41;;3125:2;3110:18;2253:365:64;2997:187:66;1361:135:64;;;:::i;515:59::-;;572:2;515:59;;1764:170;1842:46;;:::i;:::-;1904:23;;;;;;;;;;;-1:-1:-1;;1904:23:64;;-1:-1:-1;1904:23:64;;;;;;;;;;;;;;;;;;;;;;;;1764:170;:::o;2005:172::-;2084:46;;:::i;:::-;2146:24;;;;;;;;;;2153:17;2146:24;;;;;;2153:17;;2146:24;;;;;;;;;;;;;;;;2005:172;:::o;2624:2556::-;3085:4;3071:19;;3065:26;2968:34;3187;3220:1;572:2;3187:34;:::i;:::-;3170:52;;;;;;;:::i;:::-;;;3128:26;:94;3111:297;;3287:26;3331:16;3348:34;3381:1;572:2;3348:34;:::i;:::-;3331:52;;;;;;;:::i;:::-;;;3254:143;;-1:-1:-1;;;3254:143:64;;;;;3907:25:66;;;;3948:18;;;3941:34;3880:18;;3254:143:64;;;;;;;3111:297;3447:19;;;;;;;;;;3503:7;;:304;;-1:-1:-1;;;3503:304:64;;3418:26;;-1:-1:-1;;;;;3503:7:64;;:28;;:304;;3545:15;;3447:19;;3606:30;;3650:18;;3682:15;;3711:11;;3736:26;;3776:21;;3503:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3477:330;;3822:18;3818:1356;;;3960:21;4018:22;4308:2;4294:17;;4443:115;;;3960:21;4576:516;4637:30;4634:1;4631:37;4576:516;;;4766:18;;4746:39;;4939:19;;4918:41;;4894:1;4877:19;;;;5054:20;;;;4838:2;4821:20;;;;4996:21;;;;4696:9;4576:516;;;4580:50;;;;;3818:1356;;;5143:20;;-1:-1:-1;;;5143:20:64;;;;;;;;;;;3818:1356;2958:2222;;;2624:2556;;;;;;;;:::o;1557:137::-;1608:7;1634:17;1652:34;1685:1;1634:17;1652:34;:::i;:::-;1634:53;;;;;;;:::i;:::-;;;1627:60;;1557:137;:::o;2253:365::-;2322:4;;2338:252;572:2;2358:1;:34;2338:252;;;2511:10;2434:17;2489:1;2452:34;2485:1;2434:17;2452:34;:::i;:::-;:38;;;;:::i;:::-;2434:57;;;;;;;:::i;:::-;;;:87;2413:167;;-1:-1:-1;2561:4:64;;2253:365;-1:-1:-1;;2253:365:64:o;2413:167::-;2394:3;;2338:252;;;-1:-1:-1;2606:5:64;;2253:365;-1:-1:-1;;2253:365:64:o;1361:135::-;1411:7;;1454:34;1487:1;572:2;1454:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:66:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:66;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:66;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:66;1893:18;;1880:32;;-1:-1:-1;1962:2:66;1947:18;;1934:32;-1:-1:-1;;1995:43:66;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:66;2113:18;;2100:32;;-1:-1:-1;2183:3:66;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:66;;2812:180;-1:-1:-1;2812:180:66:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:66;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:66:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311\",\"dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59","urls":["bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311","dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file diff --git a/core/src/graphql/account_query.graphql b/core/graphql/account_query.graphql similarity index 100% rename from core/src/graphql/account_query.graphql rename to core/graphql/account_query.graphql diff --git a/core/src/graphql/best_chain_query.graphql b/core/graphql/best_chain_query.graphql similarity index 100% rename from core/src/graphql/best_chain_query.graphql rename to core/graphql/best_chain_query.graphql diff --git a/core/src/graphql/mina_schema.json b/core/graphql/mina_schema.json similarity index 100% rename from core/src/graphql/mina_schema.json rename to core/graphql/mina_schema.json diff --git a/core/src/graphql/state_query.graphql b/core/graphql/state_query.graphql similarity index 100% rename from core/src/graphql/state_query.graphql rename to core/graphql/state_query.graphql diff --git a/core/src/aligned_polling_service.rs b/core/src/aligned.rs similarity index 100% rename from core/src/aligned_polling_service.rs rename to core/src/aligned.rs diff --git a/core/src/smart_contract_utility.rs b/core/src/eth.rs similarity index 99% rename from core/src/smart_contract_utility.rs rename to core/src/eth.rs index 359d8edd..57b0401e 100644 --- a/core/src/smart_contract_utility.rs +++ b/core/src/eth.rs @@ -265,7 +265,7 @@ pub async fn validate_account( chain: &Chain, eth_rpc_url: &str, batcher_payment_service: &str, -) -> Result { +) -> Result<(), String> { let bridge_eth_addr = Address::from_str(match chain { Chain::Devnet => BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, Chain::Holesky => BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, @@ -327,7 +327,9 @@ pub async fn validate_account( call.estimate_gas().await.map_err(|err| err.to_string())? ); - call.await.map_err(|err| err.to_string()) + call.await.map_err(|err| err.to_string())?; + + Ok(()) } pub async fn deploy_mina_bridge_contract( diff --git a/core/src/lib.rs b/core/src/lib.rs index f7a4ccd5..7323cb80 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -1,19 +1,14 @@ -/// Service that polls a Mina node for a state proof and serializes it in an Aligned-friendly -/// format. -pub mod mina_polling_service; - -/// Service that sends a Mina proof to Aligned and awaits a response. Returns the verification -/// data. -pub mod aligned_polling_service; - -/// Utility for updating the bridge's smart contract with a new, verified state. -pub mod smart_contract_utility; - -/// Internal utils. -pub mod utils; - +/// Sends Mina proofs to AlignedLayer. +pub mod aligned; +/// Interacts with the bridge's smart contracts on Ethereum. +pub mod eth; +/// Interacts with a Mina node for requesting proofs and data. +pub mod mina; /// Mina Proof of State/Account definitions and (de)serialization. pub mod proof; - +/// High level abstractions for the bridge. +pub mod sdk; /// Solidity-friendly data structures and serialization. pub mod sol; +/// Internal utils. +pub mod utils; diff --git a/core/src/main.rs b/core/src/main.rs index 35e7d91f..1522a909 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -1,9 +1,8 @@ use clap::{Parser, Subcommand}; use log::{error, info}; use mina_bridge_core::{ - aligned_polling_service, mina_polling_service, + aligned, eth, mina, proof::MinaProof, - smart_contract_utility, utils::{env::EnvironmentVariables, wallet::get_wallet}, }; use std::{process, time::SystemTime}; @@ -61,15 +60,14 @@ async fn main() { match cli.command { Command::SubmitState { save_proof } => { - let (proof, pub_input) = - mina_polling_service::get_mina_proof_of_state(&rpc_url, &chain, ð_rpc_url) - .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); + let (proof, pub_input) = mina::get_mina_proof_of_state(&rpc_url, &chain, ð_rpc_url) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); - let verification_data = aligned_polling_service::submit( + let verification_data = aligned::submit( MinaProof::State((proof, pub_input.clone())), &chain, &proof_generator_addr, @@ -85,7 +83,7 @@ async fn main() { process::exit(1); }); - smart_contract_utility::update_chain( + eth::update_chain( verification_data, &pub_input, &chain, @@ -105,14 +103,14 @@ async fn main() { state_hash, } => { let (proof, pub_input) = - mina_polling_service::get_mina_proof_of_account(&public_key, &state_hash, &rpc_url) + mina::get_mina_proof_of_account(&public_key, &state_hash, &rpc_url) .await .unwrap_or_else(|err| { error!("{}", err); process::exit(1); }); - let verification_data = aligned_polling_service::submit( + let verification_data = aligned::submit( MinaProof::Account((proof, pub_input.clone())), &chain, &proof_generator_addr, @@ -128,7 +126,7 @@ async fn main() { process::exit(1); }); - if let Err(err) = smart_contract_utility::validate_account( + if let Err(err) = eth::validate_account( verification_data, &pub_input, &chain, diff --git a/core/src/mina_polling_service.rs b/core/src/mina.rs similarity index 95% rename from core/src/mina_polling_service.rs rename to core/src/mina.rs index 0c14c075..2ee437af 100644 --- a/core/src/mina_polling_service.rs +++ b/core/src/mina.rs @@ -19,11 +19,11 @@ use mina_p2p_messages::{ }; use crate::{ + eth::get_bridge_tip_hash, proof::{ account_proof::{MerkleNode, MinaAccountProof, MinaAccountPubInputs}, state_proof::{MinaStateProof, MinaStatePubInputs}, }, - smart_contract_utility::get_bridge_tip_hash, sol::account::MinaAccountValidation, utils::constants::BRIDGE_TRANSITION_FRONTIER_LEN, }; @@ -34,24 +34,24 @@ type FieldElem = String; #[derive(GraphQLQuery)] #[graphql( - schema_path = "src/graphql/mina_schema.json", - query_path = "src/graphql/state_query.graphql" + schema_path = "graphql/mina_schema.json", + query_path = "graphql/state_query.graphql" )] /// A query for a protocol state given some state hash (non-field). struct StateQuery; #[derive(GraphQLQuery)] #[graphql( - schema_path = "src/graphql/mina_schema.json", - query_path = "src/graphql/best_chain_query.graphql" + schema_path = "graphql/mina_schema.json", + query_path = "graphql/best_chain_query.graphql" )] /// A query for the state hashes and proofs of the transition frontier. struct BestChainQuery; #[derive(GraphQLQuery)] #[graphql( - schema_path = "src/graphql/mina_schema.json", - query_path = "src/graphql/account_query.graphql" + schema_path = "graphql/mina_schema.json", + query_path = "graphql/account_query.graphql" )] /// A query for retrieving an a Mina account state at some block, along with its ledger hash and /// merkle path. @@ -74,10 +74,6 @@ pub async fn get_mina_proof_of_state( .last() .ok_or("Missing candidate tip state hash".to_string())?; - if bridge_tip_state_hash == *candidate_tip_state_hash { - return Err("Candidate chain is already verified".to_string()); - } - let bridge_tip_state = query_state(rpc_url, &bridge_tip_state_hash).await?; info!("Queried Mina candidate chain with tip {candidate_tip_state_hash} and its proof"); @@ -225,6 +221,9 @@ pub async fn query_candidate_chain( .map_err(|err| format!("Couldn't read state proof binprot: {err}")) })?; + debug!("Queried state hashes: {chain_state_hashes:?}"); + debug!("Queried ledger hashes: {chain_ledger_hashes:?}"); + Ok(( chain_states, chain_state_hashes, diff --git a/core/src/sdk.rs b/core/src/sdk.rs new file mode 100644 index 00000000..2e14e323 --- /dev/null +++ b/core/src/sdk.rs @@ -0,0 +1,158 @@ +use std::str::FromStr; + +use aligned_sdk::core::types::{AlignedVerificationData, Chain, VerificationDataCommitment}; +use ethers::core::k256::ecdsa::SigningKey; +use ethers_signers::Wallet; +use log::debug; +use mina_p2p_messages::v2::StateHash; + +use crate::{ + aligned::submit, + eth::{self, get_bridge_chain_state_hashes, update_chain}, + mina::{get_mina_proof_of_account, get_mina_proof_of_state}, + proof::MinaProof, +}; + +pub struct AccountVerificationData { + pub proof_commitment: [u8; 32], + pub proving_system_aux_data_commitment: [u8; 32], + pub proof_generator_addr: [u8; 20], + pub batch_merkle_root: [u8; 32], + pub merkle_proof: Vec, + pub verification_data_batch_index: usize, + pub pub_input: Vec, +} + +pub async fn is_state_verified( + hash: &str, + chain: &Chain, + eth_rpc_url: &str, +) -> Result { + let chain_state_hashes = get_bridge_chain_state_hashes(chain, eth_rpc_url).await?; + let hash = StateHash::from_str(hash) + .map_err(|err| format!("Failed to convert hash string to state hash: {err}"))?; + Ok(chain_state_hashes.contains(&hash)) +} + +pub async fn get_bridged_chain_tip_state_hash( + chain: &Chain, + eth_rpc_url: &str, +) -> Result { + get_bridge_chain_state_hashes(chain, eth_rpc_url) + .await + .map(|hashes| hashes.last().unwrap().to_string()) +} + +#[allow(clippy::too_many_arguments)] +pub async fn update_bridge_chain( + rpc_url: &str, + chain: &Chain, + batcher_addr: &str, + batcher_eth_addr: &str, + eth_rpc_url: &str, + proof_generator_addr: &str, + wallet: Wallet, + batcher_payment_service: &str, + save_proof: bool, +) -> Result<(), String> { + let (proof, pub_input) = get_mina_proof_of_state(rpc_url, chain, eth_rpc_url).await?; + + let candidate_root_state_hash = pub_input.candidate_chain_state_hashes.first().unwrap(); + if is_state_verified(&candidate_root_state_hash.to_string(), chain, eth_rpc_url).await? { + debug!("Candidate root {candidate_root_state_hash} is verified, so the bridge chain is updated"); + return Err("Latest chain is already verified".to_string()); + } + + let verification_data = submit( + MinaProof::State((proof, pub_input.clone())), + chain, + proof_generator_addr, + batcher_addr, + batcher_eth_addr, + eth_rpc_url, + wallet.clone(), + save_proof, + ) + .await?; + + update_chain( + verification_data, + &pub_input, + chain, + eth_rpc_url, + wallet, + batcher_payment_service, + ) + .await?; + + Ok(()) +} + +#[allow(clippy::too_many_arguments)] +pub async fn validate_account( + public_key: &str, + state_hash: &str, + rpc_url: &str, + chain: &Chain, + batcher_addr: &str, + batcher_eth_addr: &str, + eth_rpc_url: &str, + proof_generator_addr: &str, + batcher_payment_service: &str, + wallet: Wallet, + save_proof: bool, +) -> Result { + let (proof, pub_input) = get_mina_proof_of_account(public_key, state_hash, rpc_url).await?; + + let verification_data = submit( + MinaProof::Account((proof, pub_input.clone())), + chain, + proof_generator_addr, + batcher_addr, + batcher_eth_addr, + eth_rpc_url, + wallet.clone(), + save_proof, + ) + .await?; + + eth::validate_account( + verification_data.clone(), + &pub_input, + chain, + eth_rpc_url, + batcher_payment_service, + ) + .await?; + + let AlignedVerificationData { + verification_data_commitment, + batch_merkle_root, + batch_inclusion_proof, + index_in_batch, + } = verification_data; + let merkle_proof = batch_inclusion_proof + .merkle_path + .clone() + .into_iter() + .flatten() + .collect(); + + let VerificationDataCommitment { + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + .. + } = verification_data_commitment; + + Ok(AccountVerificationData { + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + batch_merkle_root, + merkle_proof, + verification_data_batch_index: index_in_batch, + pub_input: bincode::serialize(&pub_input) + .map_err(|err| format!("Failed to encode public inputs: {err}"))?, + }) +} diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index 9bb16134..3d154220 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -18,12 +18,12 @@ pub const MINA_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; -pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x8aED2F71774a98354091F8a885a19fA9C8659169"; +pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x8ee69DeEb2692E1D260356419FB716AA55e37Ee4"; pub const BRIDGE_TRANSITION_FRONTIER_LEN: usize = 16; pub const BRIDGE_ACCOUNT_DEVNET_ETH_ADDR: &str = "0xA15BB66138824a1c7167f5E85b957d04Dd34E468"; -pub const BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR: &str = "0x9Cbb0439EB42FBda982851068D52b1871F72Bea9"; +pub const BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR: &str = "0xF2e55D6ddde772dAcaEfEb5bbA4C0E76B0d80d1d"; // Aligned related constants pub const PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; pub const ALIGNED_SM_DEVNET_ETH_ADDR: &str = "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8"; -pub const ALIGNED_SM_HOLESKY_ETH_ADDR: &str = "0x8B744d6E01d13C868AB1cf69c8788D88C6058A92"; +pub const ALIGNED_SM_HOLESKY_ETH_ADDR: &str = "0x39cFAb7498d73d75F3cb38a3d321de451779989D"; diff --git a/example/app/.gitignore b/example/app/.gitignore new file mode 100644 index 00000000..2f7896d1 --- /dev/null +++ b/example/app/.gitignore @@ -0,0 +1 @@ +target/ diff --git a/example/app/Cargo.lock b/example/app/Cargo.lock new file mode 100644 index 00000000..11c8ed1a --- /dev/null +++ b/example/app/Cargo.lock @@ -0,0 +1,6678 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aligned-sdk" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#9bac7bc5a683ea1f68db9a928bed9a87e5f7b97f" +dependencies = [ + "ciborium", + "ethers", + "futures-util", + "hex", + "lambdaworks-crypto", + "log", + "serde", + "serde_json", + "serde_repr", + "sha3", + "tokio", + "tokio-tungstenite 0.23.1", + "url", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8367891bf380210abb0d6aa30c5f85a9080cb4a066c4d5c5acadad630823751b" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", +] + +[[package]] +name = "alloy-chains" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "805f7a974de5804f5c053edc6ca43b20883bdd3a733b3691200ae3a4b454a2db" +dependencies = [ + "num_enum", + "strum 0.26.3", +] + +[[package]] +name = "alloy-consensus" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "serde", +] + +[[package]] +name = "alloy-contract" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eefe64fd344cffa9cf9e3435ec4e93e6e9c3481bc37269af988bf497faf4a6a" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "futures", + "futures-util", + "thiserror", +] + +[[package]] +name = "alloy-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b095eb0533144b4497e84a9cc3e44a5c2e3754a3983c0376a55a2f9183a53e" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4004925bff5ba0a11739ae84dbb6601a981ea692f3bd45b626935ee90a6b8471" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "const-hex", + "itoa", + "serde", + "serde_json", + "winnow", +] + +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d319bb544ca6caeab58c39cea8921c55d924d4f68f2c60f24f914673f9a74a" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "k256", + "serde", +] + +[[package]] +name = "alloy-eips" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "derive_more 1.0.0", + "once_cell", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "alloy-genesis" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-json-abi" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9996daf962fd0a90d3c93b388033228865953b92de7bb1959b891d78750a4091" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-rpc" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb3705ce7d8602132bcf5ac7a1dd293a42adc2f183abf5907c30ac535ceca049" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-primitives" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411aff151f2a73124ee473708e82ed51b2535f68928b6a1caa8bc1246ae6f7cd" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 1.0.0", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-provider" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927f708dd457ed63420400ee5f06945df9632d5d101851952056840426a10dc5" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "pin-project", + "reqwest 0.12.7", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "alloy-pubsub" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d05f63677e210d758cd5d6d1ce10f20c980c3560ccfbe79ba1997791862a04f" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-transport", + "bimap", + "futures", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +dependencies = [ + "alloy-rlp-derive", + "arrayvec", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d82952dca71173813d4e5733e2c986d8b04aea9e0f3b0a576664c232ad050a5" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-pubsub", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "futures", + "pin-project", + "reqwest 0.12.7", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-rpc-types" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64333d639f2a0cf73491813c629a405744e16343a4bc5640931be707c345ecc5" +dependencies = [ + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-rpc-types-engine" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1464c4dd646e1bdfde86ae65ce5ba168dbb29180b478011fe87117ae46b1629b" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "derive_more 1.0.0", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "cfg-if", + "derive_more 1.0.0", + "hashbrown 0.14.5", + "itertools 0.13.0", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-serde" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", +] + +[[package]] +name = "alloy-signer-local" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-signer", + "async-trait", + "elliptic-curve", + "eth-keystore", + "k256", + "rand", + "thiserror", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0458ccb02a564228fcd76efb8eb5a520521a8347becde37b402afec9a1b83859" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc65475025fc1e84bf86fc840f04f63fcccdcf3cf12053c99918e4054dfbc69" +dependencies = [ + "alloy-json-abi", + "alloy-sol-macro-input", + "const-hex", + "heck 0.5.0", + "indexmap 2.5.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.77", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed10f0715a0b69fde3236ff3b9ae5f6f7c97db5a387747100070d3016b9266b" +dependencies = [ + "alloy-json-abi", + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.77", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3edae8ea1de519ccba896b6834dec874230f72fe695ff3c9c118e90ec7cff783" +dependencies = [ + "serde", + "winnow", +] + +[[package]] +name = "alloy-sol-types" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1eb88e4da0a1b697ed6a9f811fdba223cf4d5c21410804fd1707836af73a462b" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-transport" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33616b2edf7454302a1d48084db185e52c309f73f6c10be99b0fe39354b3f1e9" +dependencies = [ + "alloy-json-rpc", + "base64 0.22.1", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-http" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a944f5310c690b62bbb3e7e5ce34527cbd36b2d18532a797af123271ce595a49" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "reqwest 0.12.7", + "serde_json", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-ipc" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09fd8491249f74d16ec979b1f5672377b12ebb818e6056478ffa386954dbd350" +dependencies = [ + "alloy-json-rpc", + "alloy-pubsub", + "alloy-transport", + "bytes", + "futures", + "interprocess", + "pin-project", + "serde_json", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "alloy-transport-ws" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9704761f6297fe482276bee7f77a93cb42bd541c2bd6c1c560b6f3a9ece672e" +dependencies = [ + "alloy-pubsub", + "alloy-transport", + "futures", + "http 1.1.0", + "rustls 0.23.13", + "serde_json", + "tokio", + "tokio-tungstenite 0.23.1", + "tracing", + "ws_stream_wasm", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" + +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "aligned-sdk", + "alloy", + "alloy-contract", + "alloy-sol-types", + "clap", + "env_logger", + "log", + "mina_bridge_core", + "reqwest 0.11.27", + "tokio", +] + +[[package]] +name = "ark-ec" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rayon", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.1", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-ff 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "hashbrown 0.11.2", + "rayon", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "ark-serialize-derive", + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.3.0" +source = "git+https://github.com/openmina/algebra?branch=openmina#017531e7aaa15a2c856532b0843876e371b01122" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", + "rayon", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "async-trait" +version = "0.1.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.1", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "binprot" +version = "0.1.8" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "binprot_derive", + "byteorder", + "md5", +] + +[[package]] +name = "binprot_derive" +version = "0.1.7" +source = "git+https://github.com/openmina/binprot-rs?rev=2b5a909#2b5a9099a1c5640559d04e39899da301aebc8023" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "blake3" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "c-kzg" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "once_cell", + "serde", +] + +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.6", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "4.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", +] + +[[package]] +name = "clap_derive" +version = "4.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "cpufeatures" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "critical-section" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.77", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "syn 2.0.77", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "disjoint-set" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d102f1a462fdcdddce88d6d46c06c074a2d2749b262230333726b06c52bb7585" + +[[package]] +name = "doctest-file" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" + +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256", + "log", + "rand", + "rlp", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "env_filter" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "reqwest 0.11.27", + "serde", + "serde_json", + "syn 2.0.77", + "toml 0.8.19", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.77", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum", + "once_cell", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum 0.26.3", + "syn 2.0.77", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "chrono", + "ethers-core", + "ethers-solc", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.22.1", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-channel", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http 0.2.12", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite 0.20.1", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +dependencies = [ + "cfg-if", + "const-hex", + "dirs", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver 1.0.23", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "graphql-introspection-query" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" +dependencies = [ + "serde", +] + +[[package]] +name = "graphql-parser" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" +dependencies = [ + "combine", + "thiserror", +] + +[[package]] +name = "graphql_client" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b" +dependencies = [ + "graphql_query_derive", + "reqwest 0.11.27", + "serde", + "serde_json", +] + +[[package]] +name = "graphql_client_codegen" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e27ed0c2cf0c0cc52c6bcf3b45c907f433015e580879d14005386251842fb0a" +dependencies = [ + "graphql-introspection-query", + "graphql-parser", + "heck 0.4.1", + "lazy_static", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 1.0.109", +] + +[[package]] +name = "graphql_query_derive" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97" +dependencies = [ + "graphql_client_codegen", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "groupmap" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "rand", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.5.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", + "serde", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.1", + "serde", + "spin 0.9.8", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.30", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.30", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "interprocess" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f4e4a06d42fab3e85ab1b419ad32b09eab58b901d40c57935ff92db3287a13" +dependencies = [ + "doctest-file", + "futures-core", + "libc", + "recvmsg", + "tokio", + "widestring", + "windows-sys 0.52.0", +] + +[[package]] +name = "ipnet" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keccak-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "kimchi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "blake2", + "disjoint-set", + "groupmap", + "hex", + "itertools 0.10.5", + "mina-curves", + "mina-poseidon", + "num-bigint", + "num-derive", + "num-integer", + "num-traits", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "poly-commitment", + "rand", + "rand_core", + "rayon", + "rmp-serde", + "serde", + "serde_with 1.14.0", + "strum 0.24.1", + "strum_macros 0.24.3", + "thiserror", + "turshi", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "lambdaworks-crypto" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fb5d4f22241504f7c7b8d2c3a7d7835d7c07117f10bff2a7d96a9ef6ef217c3" +dependencies = [ + "lambdaworks-math", + "serde", + "sha2 0.10.8", + "sha3", +] + +[[package]] +name = "lambdaworks-math" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.159" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "linkme" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c943daedff228392b791b33bba32e75737756e80a613e32e246c6ce9cbab20a" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26336e6dc7cc76e7927d2c9e7e3bb376d7af65a6f56a0b16c47d18a9b1abc5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mina-curves" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", +] + +[[package]] +name = "mina-hasher" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff 0.3.0", + "bitvec", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "serde", +] + +[[package]] +name = "mina-p2p-messages" +version = "0.6.4" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff 0.3.0", + "base64 0.13.1", + "binprot", + "binprot_derive", + "blake2", + "bs58 0.4.0", + "derive_more 0.99.18", + "hex", + "mina-curves", + "mina-hasher", + "mina-poseidon", + "mina-signer", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rsexp", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "time", +] + +[[package]] +name = "mina-poseidon" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "mina-curves", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rayon", + "serde", + "serde_with 1.14.0", +] + +[[package]] +name = "mina-signer" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "bitvec", + "blake2", + "bs58 0.4.0", + "hex", + "mina-curves", + "mina-hasher", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "rand", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "mina-tree" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "anyhow", + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "backtrace", + "base64 0.13.1", + "bitvec", + "blake2", + "bs58 0.4.0", + "chrono", + "crc32fast", + "derive_more 0.99.18", + "getrandom", + "hex", + "itertools 0.10.5", + "kimchi", + "lazy_static", + "libc", + "mina-curves", + "mina-hasher", + "mina-p2p-messages", + "mina-poseidon", + "mina-signer", + "num-bigint", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "openmina-core", + "poly-commitment", + "postcard", + "rand", + "rand_pcg", + "rand_seeder", + "rayon", + "serde", + "serde_json", + "serde_with 3.9.0", + "sha2 0.10.8", + "static_assertions", + "thiserror", + "tuple-map", + "uuid 1.10.0", + "wasm-bindgen", + "wasm_thread", +] + +[[package]] +name = "mina_bridge_core" +version = "0.1.0" +dependencies = [ + "aligned-sdk", + "alloy", + "alloy-contract", + "alloy-sol-types", + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "base64 0.22.1", + "bincode", + "clap", + "dotenv", + "env_logger", + "ethers", + "ethers-signers", + "futures", + "graphql_client", + "hex", + "kimchi", + "log", + "mina-curves", + "mina-p2p-messages", + "mina-signer", + "mina-tree", + "num-bigint", + "num-traits", + "o1-utils 0.1.0 (git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations)", + "poly-commitment", + "reqwest 0.11.27", + "rmp-serde", + "rpassword", + "serde", + "serde_json", + "serde_with 3.9.0", + "sha3", + "tokio", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.8", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand", + "serde", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/lambdaclass/proof-systems?branch=add-verifier-serializations#5bdeab3c2a43a671645952f63b9354b7a20b2326" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 3.9.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "o1-utils" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "bcs", + "hex", + "num-bigint", + "num-integer", + "num-traits", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "object" +version = "0.36.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openmina-core" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "ark-ff 0.3.0", + "binprot", + "binprot_derive", + "hex", + "lazy_static", + "md5", + "mina-hasher", + "mina-p2p-messages", + "multihash", + "openmina-macros", + "redux", + "serde", + "sha2 0.10.8", + "slab", + "time", + "tokio", + "tracing", +] + +[[package]] +name = "openmina-macros" +version = "0.6.0" +source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768dffc184e10d47f1082e800e79b8a5b68a4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.5", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.5.0", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.1", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "poly-commitment" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ec", + "ark-ff 0.3.0", + "ark-poly", + "ark-serialize 0.3.0", + "blake2", + "groupmap", + "itertools 0.10.5", + "mina-curves", + "mina-poseidon", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", + "once_cell", + "rand", + "rand_core", + "rayon", + "serde", + "serde_with 1.14.0", + "thiserror", +] + +[[package]] +name = "postcard" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +dependencies = [ + "proc-macro2", + "syn 2.0.77", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.6.0", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_seeder" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2890aaef0aa82719a50e808de264f9484b74b442e1a3a0e5ee38243ac40bdb" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "recvmsg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62871f2d65009c0256aed1b9cfeeb8ac272833c404e13d53d400cd0dad7a2ac0" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "redux" +version = "0.1.0" +source = "git+https://github.com/openmina/redux-rs.git?rev=2d1d8db#2d1d8dbd7239c0aec91db8f11126b90068dc848b" +dependencies = [ + "enum_dispatch", + "linkme", + "paste", + "serde", + "wasm-timer", +] + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "hyper-rustls", + "hyper-tls 0.5.0", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + +[[package]] +name = "reqwest" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-tls 0.6.0", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile 2.1.3", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows-registry", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rpassword" +version = "7.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +dependencies = [ + "libc", + "rtoolbox", + "windows-sys 0.48.0", +] + +[[package]] +name = "rsexp" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3df9a9b6491d42c0fc527e92a87525c17e45c6b9c22345702a6dc0400320bf1" + +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rustix" +version = "0.38.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.23.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" +dependencies = [ + "once_cell", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more 0.99.18", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "serde_json" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "serde_spanned" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.5.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros 3.9.0", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", + "serde", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.77", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs", + "fs2", + "hex", + "once_cell", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn-solidity" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b95156f8b577cb59dc0b1df15c6f29a10afc5f8a7ac9786b0b5c68c19149278" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.13", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite 0.20.1", + "webpki-roots 0.25.4", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +dependencies = [ + "futures-util", + "log", + "native-tls", + "rustls 0.23.13", + "rustls-pki-types", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.26.0", + "tungstenite 0.23.0", + "webpki-roots 0.26.6", +] + +[[package]] +name = "tokio-util" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap 2.5.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "native-tls", + "rand", + "rustls 0.23.13", + "rustls-pki-types", + "sha1", + "thiserror", + "utf-8", +] + +[[package]] +name = "tuple-map" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62" + +[[package]] +name = "turshi" +version = "0.1.0" +source = "git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf#44e0d3b98b8747de54e595f53d97c035ff43167c" +dependencies = [ + "ark-ff 0.3.0", + "hex", + "o1-utils 0.1.0 (git+https://github.com/openmina/proof-systems?branch=ledger-newtypes-rampup4-vrf)", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +dependencies = [ + "getrandom", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.77", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "git+https://github.com/fusetim/wasm-timer?branch=tim-add-missing-methods#39e1c2818944f804d68d64dae0d5639d22b0e59e" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm_thread" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52fc987e67957cab58160d1ea273a2886972ef6f59c7fa0c02e9fe2c8e11706" +dependencies = [ + "async-channel", + "futures", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "webpki-roots" +version = "0.26.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.6.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c52ac009d615e79296318c1bcce2d422aaca15ad08515e344feeda07df67a587" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.1", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/example/app/Cargo.toml b/example/app/Cargo.toml new file mode 100644 index 00000000..d216b6cc --- /dev/null +++ b/example/app/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "app" +version = "0.1.0" +edition = "2021" + +[dependencies] +clap = { version = "4.5.17", features = ["derive"] } +env_logger = "0.11.5" +log = "0.4.22" +mina_bridge_core = { path = "../../core/" } +tokio = "1.40.0" +alloy = { version = "0.3.1", features = ["full", "signer-keystore"] } +alloy-sol-types = "0.8.2" +alloy-contract = "0.3.1" +reqwest = "^0.11" +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_7_for_real" } + +[patch.crates-io] +ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-ec = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-poly = { git = "https://github.com/openmina/algebra", branch = "openmina" } +ark-serialize = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/example/app/abi/SudokuValidity.json b/example/app/abi/SudokuValidity.json new file mode 100644 index 00000000..83edf705 --- /dev/null +++ b/example/app/abi/SudokuValidity.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea2646970667358221220b060fb5b363bdc7e5967a67820ab54a7d982dea6fde99462b325ddfbbeb8fbe364736f6c63430008190033","sourceMap":"177:2974:40:-:0;;;960:1;923:38;;968:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1052:15;:50;;-1:-1:-1;;;;;1052:50:40;;;-1:-1:-1;;;;;;1052:50:40;;;;;;;;1112:65;;;;;;;;;;;177:2974;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;177:2974:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea2646970667358221220b060fb5b363bdc7e5967a67820ab54a7d982dea6fde99462b325ddfbbeb8fbe364736f6c63430008190033","sourceMap":"177:2974:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1439:1710;;;;;;:::i;:::-;;:::i;:::-;;432:139;;494:77;432:139;;;;;4268:25:41;;;4256:2;4241:18;432:139:40;;;;;;;1190:120;1277:26;;1190:120;;1439:1710;1790:18;1819:13;1829:2;1790:18;1819:8;;:13;:::i;:::-;1811:22;;;:::i;:::-;1848:15;;:44;;-1:-1:-1;;;1848:44:40;;;;;4268:25:41;;;1790:43:40;;-1:-1:-1;;;;;;1848:15:40;;:32;;4241:18:41;;1848:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1843:108;;1915:25;;-1:-1:-1;;;1915:25:40;;;;;4268::41;;;4241:18;;1915:25:40;;;;;;;1843:108;1961:45;2009:348;;;;;;;;2073:15;2009:348;;;;2106:30;2009:348;;;;2154:18;2009:348;;;;;;;2190:15;2009:348;;;;2223:11;2009:348;;;;2252:26;2009:348;;;;2296:8;;2009:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2009:348:40;;;-1:-1:-1;;;;;;2009:348:40;;;;;;;;;;;2373:17;;:39;;-1:-1:-1;;;2373:39:40;;1961:396;;-1:-1:-1;2373:17:40;;:33;;:39;;1961:396;;2373:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2368:99;;2435:21;;-1:-1:-1;;;2435:21:40;;;;;;;;;;;2368:99;2477:29;;2509:17;:8;2518:6;2509:8;;:17;:::i;:::-;2477:49;;-1:-1:-1;2477:49:40;-1:-1:-1;2536:44:40;2583:93;;;;2477:49;2583:93;:::i;:::-;2988:13;;;;:22;:25;;;:13;;-1:-1:-1;2988:30:40;2984:159;;3063:15;3034:26;:44;2984:159;;;3116:16;;-1:-1:-1;;;3116:16:40;;;;;;;;;;;2984:159;1780:1369;;;;;1439:1710;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]},\"lib/mina_bridge/contract/src/MinaBridge.sol\":{\"keccak256\":\"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311\",\"dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0x5a15f1d022fa3c43b87904a029d632b5cd761df18dc156be322b2c5f848ba591\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a561f492e68aa195402d59fb51d6177ccbed03a85dc2575ac3eda170f868950a\",\"dweb:/ipfs/QmSEfGVpefbi2b6tH6vnxya7g9m6LEbHrpgHwvQRkgBf8v\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaBridge.sol":{"keccak256":"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59","urls":["bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311","dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0x5a15f1d022fa3c43b87904a029d632b5cd761df18dc156be322b2c5f848ba591","urls":["bzz-raw://a561f492e68aa195402d59fb51d6177ccbed03a85dc2575ac3eda170f868950a","dweb:/ipfs/QmSEfGVpefbi2b6tH6vnxya7g9m6LEbHrpgHwvQRkgBf8v"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file diff --git a/example/app/src/main.rs b/example/app/src/main.rs new file mode 100644 index 00000000..44dd029b --- /dev/null +++ b/example/app/src/main.rs @@ -0,0 +1,249 @@ +use aligned_sdk::core::types::Chain; +use alloy::{ + primitives::{Address, U256}, + providers::ProviderBuilder, + sol_types::sol, +}; +use clap::{Parser, Subcommand}; +use log::{debug, error, info}; +use mina_bridge_core::{ + sdk::{ + get_bridged_chain_tip_state_hash, update_bridge_chain, validate_account, + AccountVerificationData, + }, + utils::{ + constants::{ + BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, + BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, + }, + env::EnvironmentVariables, + wallet, wallet_alloy, + }, +}; +use std::{process, str::FromStr, time::SystemTime}; + +const MINA_ZKAPP_ADDRESS: &str = "B62qmpq1JBejZYDQrZwASPRM5oLXW346WoXgbApVf5HJZXMWFPWFPuA"; +const SUDOKU_VALIDITY_DEVNET_ADDRESS: &str = "0xb19b36b1456E65E3A6D514D3F715f204BD59f431"; +const SUDOKU_VALIDITY_HOLESKY_ADDRESS: &str = "0x0091D1d9Bd92FFcfEb38383079AE849639224e3D"; + +sol!( + #[allow(clippy::too_many_arguments)] + #[sol(rpc)] + SudokuValidity, + "abi/SudokuValidity.json" +); + +#[derive(Parser)] +#[command(version, about)] +struct Cli { + #[command(subcommand)] + command: Command, +} + +#[derive(Subcommand)] +enum Command { + DeployContract, + ValidateSolution, +} + +#[tokio::main] +async fn main() { + let cli = Cli::parse(); + let now = SystemTime::now(); + env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); + + let EnvironmentVariables { + rpc_url, + chain, + batcher_addr, + batcher_eth_addr, + eth_rpc_url, + proof_generator_addr, + keystore_path, + private_key, + } = EnvironmentVariables::new().unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let wallet_alloy = + wallet_alloy::get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let provider = ProviderBuilder::new() + .with_recommended_fillers() + .wallet(wallet_alloy) + .on_http( + reqwest::Url::parse(ð_rpc_url) + .map_err(|err| err.to_string()) + .unwrap(), + ); + + match cli.command { + Command::DeployContract => { + // TODO(xqft): we might as well use the Chain type from Alloy, it isn't right to add + // aligned-sdk as a dependency only for this type. + let state_settlement_addr = match chain { + Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, + Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, + _ => todo!(), + }; + + let account_validation_addr = match chain { + Chain::Devnet => BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, + Chain::Holesky => BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, + _ => todo!(), + }; + + let contract = SudokuValidity::deploy( + &provider, + Address::from_str(state_settlement_addr).unwrap(), + Address::from_str(account_validation_addr).unwrap(), + ) + .await + .map_err(|err| err.to_string()) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + info!( + "SudokuValidity contract successfuly deployed with address {}", + contract.address() + ); + } + Command::ValidateSolution => { + // We could check if the specific block containing the tx is already verified, before + // updating the bridge's chain. + // let is_state_verified = is_state_verified(&state_hash, &chain, ð_rpc_url) + // .await + // .unwrap_or_else(|err| { + // error!("{}", err); + // process::exit(1); + // }); + + // if !is_state_verified { + // info!("State that includes the zkApp tx isn't verified. Bridging latest chain..."); + + let wallet = + wallet::get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let state_verification_result = update_bridge_chain( + &rpc_url, + &chain, + &batcher_addr, + &batcher_eth_addr, + ð_rpc_url, + &proof_generator_addr, + wallet.clone(), + &batcher_eth_addr, + false, + ) + .await; + + match state_verification_result { + Err(err) if err == "Latest chain is already verified" => { + info!("Bridge chain is up to date, won't verify new states.") + } + Err(err) => { + error!("{}", err); + process::exit(1); + } + _ => {} + } + // } + + let tip_state_hash = get_bridged_chain_tip_state_hash(&chain, ð_rpc_url) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + let AccountVerificationData { + proof_commitment, + proving_system_aux_data_commitment, + proof_generator_addr, + batch_merkle_root, + merkle_proof, + verification_data_batch_index, + pub_input, + } = validate_account( + MINA_ZKAPP_ADDRESS, + &tip_state_hash, + &rpc_url, + &chain, + &batcher_addr, + &batcher_eth_addr, + ð_rpc_url, + &proof_generator_addr, + &batcher_eth_addr, + wallet, + false, + ) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + debug!("Creating contract instance"); + let sudoku_address = match chain { + Chain::Devnet => SUDOKU_VALIDITY_DEVNET_ADDRESS, + Chain::Holesky => SUDOKU_VALIDITY_HOLESKY_ADDRESS, + _ => todo!(), + }; + let contract = + SudokuValidity::new(Address::from_str(sudoku_address).unwrap(), provider); + + let call = contract.validateSolution( + proof_commitment.into(), + proving_system_aux_data_commitment.into(), + proof_generator_addr.into(), + batch_merkle_root.into(), + merkle_proof.into(), + U256::from(verification_data_batch_index), + pub_input.into(), + Address::from_str(&batcher_eth_addr).unwrap(), + ); + + info!("Sending transaction to SudokuValidity contract..."); + let tx = call.send().await; + + match tx { + Ok(tx) => { + let receipt = tx.get_receipt().await.unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + let new_timestamp: U256 = contract + .getLatestSolutionTimestamp() + .call() + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }) + ._0; + + info!( + "SudokuValidity contract was updated! transaction hash: {}, gas cost: {}, new timestamp: {}", + receipt.transaction_hash, receipt.gas_used, new_timestamp + ); + } + Err(err) => error!("SudokuValidity transaction failed!: {err}"), + } + } + } + + if let Ok(elapsed) = now.elapsed() { + info!("Time spent: {} s", elapsed.as_secs()); + } +} diff --git a/example/eth_contract/.github/workflows/test.yml b/example/eth_contract/.github/workflows/test.yml new file mode 100644 index 00000000..762a2966 --- /dev/null +++ b/example/eth_contract/.github/workflows/test.yml @@ -0,0 +1,45 @@ +name: CI + +on: + push: + pull_request: + workflow_dispatch: + +env: + FOUNDRY_PROFILE: ci + +jobs: + check: + strategy: + fail-fast: true + + name: Foundry project + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Show Forge version + run: | + forge --version + + - name: Run Forge fmt + run: | + forge fmt --check + id: fmt + + - name: Run Forge build + run: | + forge build --sizes + id: build + + - name: Run Forge tests + run: | + forge test -vvv + id: test diff --git a/example/eth_contract/.gitignore b/example/eth_contract/.gitignore new file mode 100644 index 00000000..85198aaa --- /dev/null +++ b/example/eth_contract/.gitignore @@ -0,0 +1,14 @@ +# Compiler files +cache/ +out/ + +# Ignores development broadcast logs +!/broadcast +/broadcast/*/31337/ +/broadcast/**/dry-run/ + +# Docs +docs/ + +# Dotenv file +.env diff --git a/example/eth_contract/README.md b/example/eth_contract/README.md new file mode 100644 index 00000000..9265b455 --- /dev/null +++ b/example/eth_contract/README.md @@ -0,0 +1,66 @@ +## Foundry + +**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.** + +Foundry consists of: + +- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools). +- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data. +- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network. +- **Chisel**: Fast, utilitarian, and verbose solidity REPL. + +## Documentation + +https://book.getfoundry.sh/ + +## Usage + +### Build + +```shell +$ forge build +``` + +### Test + +```shell +$ forge test +``` + +### Format + +```shell +$ forge fmt +``` + +### Gas Snapshots + +```shell +$ forge snapshot +``` + +### Anvil + +```shell +$ anvil +``` + +### Deploy + +```shell +$ forge script script/Counter.s.sol:CounterScript --rpc-url --private-key +``` + +### Cast + +```shell +$ cast +``` + +### Help + +```shell +$ forge --help +$ anvil --help +$ cast --help +``` diff --git a/example/eth_contract/foundry.toml b/example/eth_contract/foundry.toml new file mode 100644 index 00000000..25b918f9 --- /dev/null +++ b/example/eth_contract/foundry.toml @@ -0,0 +1,6 @@ +[profile.default] +src = "src" +out = "out" +libs = ["lib"] + +# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/example/eth_contract/lib/forge-std b/example/eth_contract/lib/forge-std new file mode 160000 index 00000000..1714bee7 --- /dev/null +++ b/example/eth_contract/lib/forge-std @@ -0,0 +1 @@ +Subproject commit 1714bee72e286e73f76e320d110e0eaf5c4e649d diff --git a/example/eth_contract/lib/mina_bridge b/example/eth_contract/lib/mina_bridge new file mode 120000 index 00000000..a8a4f8c2 --- /dev/null +++ b/example/eth_contract/lib/mina_bridge @@ -0,0 +1 @@ +../../.. \ No newline at end of file diff --git a/example/eth_contract/remappings.txt b/example/eth_contract/remappings.txt new file mode 100644 index 00000000..86479700 --- /dev/null +++ b/example/eth_contract/remappings.txt @@ -0,0 +1,23 @@ +aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/ +ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/ + +eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/ +eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src +eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/ +eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core +eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script + +erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/ + +openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/ +openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/ +openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/ +openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/ + +openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/ +openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/ + +@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/ +@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/ + +forge-std/=lib/forge-std/src/ diff --git a/example/eth_contract/src/SudokuValidity.sol b/example/eth_contract/src/SudokuValidity.sol new file mode 100644 index 00000000..9e2b8d98 --- /dev/null +++ b/example/eth_contract/src/SudokuValidity.sol @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.12; + +import "mina_bridge/contract/src/MinaBridge.sol"; +import "mina_bridge/contract/src/MinaAccountValidation.sol"; + +contract SudokuValidity { + error InvalidZkappAccount(); + error InvalidLedger(bytes32 ledgerHash); + error IncorrectZkappAccount(uint256 verificationKeyHash); + error UnsolvedSudoku(); + + /// @notice The Sudoku zkApp verification key hash. + uint256 public constant ZKAPP_VERIFICATION_KEY_HASH = + 19387792026269240922986233885372582803610254872042773421723960761233199555267; + + /// @notice Mina bridge contract that validates and stores Mina states. + MinaBridge stateSettlement; + /// @notice Mina bridge contract that validates accounts + MinaAccountValidation accountValidation; + + /// @notice Latest timestamp (Unix time) at which the contract determined that a + // Sudoku was solved in the Mina ZkApp. + uint256 latestSolutionValidationAt = 0; + + constructor(address _stateSettlementAddr, address _accountValidationAddr) { + stateSettlement = MinaBridge(_stateSettlementAddr); + accountValidation = MinaAccountValidation(_accountValidationAddr); + } + + function getLatestSolutionTimestamp() external view returns (uint256) { + return latestSolutionValidationAt; + } + + /// @notice Validates a Sudoku solution by bridging from Mina, and stores + /// the last Unix time it was solved at. + function validateSolution( + bytes32 proofCommitment, + bytes32 provingSystemAuxDataCommitment, + bytes20 proofGeneratorAddr, + bytes32 batchMerkleRoot, + bytes memory merkleProof, + uint256 verificationDataBatchIndex, + bytes calldata pubInput, + address batcherPaymentService + ) external { + bytes32 ledgerHash = bytes32(pubInput[:32]); + if (!stateSettlement.isLedgerVerified(ledgerHash)) { + revert InvalidLedger(ledgerHash); + } + + MinaAccountValidation.AlignedArgs memory args = MinaAccountValidation + .AlignedArgs( + proofCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex, + pubInput, + batcherPaymentService + ); + + if (!accountValidation.validateAccount(args)) { + revert InvalidZkappAccount(); + } + + bytes calldata encodedAccount = pubInput[32 + 8:]; + MinaAccountValidation.Account memory account = abi.decode( + encodedAccount, + (MinaAccountValidation.Account) + ); + + // TODO(xqft): check verification key, it may be a poseidon hash so we should + // need to change it to a keccak hash. + // if (account.verificationKeyKash != ZKAPP_VERIFICATION_KEY_HASH) { + // revert IncorrectZkappAccount(account.verificationKeyHash); + // } + + if (account.zkapp.appState[1] != 0) { + latestSolutionValidationAt = block.timestamp; + } else { + revert UnsolvedSudoku(); + } + } +} diff --git a/example/example_diagram.png b/example/example_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..fe4dac4792661176994322ce526c3b8982cffee8 GIT binary patch literal 1797635 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

)&p=Pq7aq7KsC+F?mIUP_< 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ⅈd{IQFg^#dEKBaaT!9HTnvv@@yEG7`IR{Lq+K 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ℜN@3iA8V! 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

n2sn8bK{g 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

  • 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
    WdRJmR^tkea_t_t>^cQa$ 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 z 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 z z&M(`RP!#$^>(tkhzpS`s8=KZ9x-#U;7LevppWv;G{lDcbeW@V6|5YXY0lE&_V}pX~ zU__ZW2(}#GjlI{tJ-1<<5GS(~nxnxiK%Lt9`7q!HvjDya|}hKfnPSM?}^i8ogc$q!pwvD)4s?MM(i z1y!S&R29%6ea#Fdbk>HxOSzD7x8khN?x7;*G74--)9$sMfrmvJs}lyu%fq;@tJGSM zpL)_>1xWK{jSGhz_ji!uaCsKaVF1J&1}-Gxs|;lC=ZZ9SxIp2cFijT;1PzP zeZ&&7bbhC=DU?EvEvd%b-C4lMH1o4)QGcz=O~<3t+`b3OK-R|8_^0Rgh|TR0pIfmj zIb!_$%iO5`#n)ru!ozd%R#=Z3%|#S*Q0Ugi|7b%&sE?n-rvo@)~O;l?cy31U`EdoD`DXzS)>x>@LTK> z=1jh3Y5guX?INDC#iO_E*0sVS;;C%g-)78%KlCek6mp@b{RXhpOxt5z5?Q*8Z;@b2 z)lN`_=II!n3@aOU9-ijX^U*kBiO)2A|J=M>wG@ZQ-p`~hsja0;2?FGWcB@s>bb7aD z#G*X5F9pu6kkY#}c5h0Jub*vZi{=rvynpSWQmvlWb`SK=t_Kb+Qf~=5P{E0=w^-w~ zJi90dblh?CAV5~{K``Job^CxQBq8^|^}1?ckAX z5R3#tpV9>Yu2_PO<}ZlF3*QrRUQ|SA=tyGDXVD+tc4K4RrAd?n-@F#cUQk4-92MAY z3s6BQC?V~OeI)_<7XkZ26U79e2*V?6-TWLO$-K`oWg<@*9!=1dArBrla*dn=7nA8Q zch!f2_xXiq7v99P7nY{XL%5cCy`7cTC;`-+&W#-6(7Oe+`zqeSvyFbslHP=`Y#s3n z5Am3U8}S7uMrgez?;r(6utHb@HHPjb(bpW%bwc@tm_7Y$^mT4|x#-^cGfCM?&ifV( zOAhafe(k*eym$9{=h(Duz|!5^mFKTw{FfJn%v#&0@)`$JdTn~4U=svcyEHUV?e&D9 zQ61Z9Y_8yX83{6A03r# zg%Ug%hOBG!^d;2#0*-nTZaySJ*V6MLsehGo
    t-FXaH6!><0*`Dt86TQ;?RX+QP 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�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

    bH=dk4r^>gtj_d->%u5Ku0?M<*V(u#I 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

    cfQDX_y&Nk9 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

    ifA07)emLDdEkW}@ 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�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", + "feepayerAlias": "", + "fee": "0.1", + "smartContract": "SudokuZkApp" +} diff --git a/example/mina_zkapp/jest-resolver.cjs b/example/mina_zkapp/jest-resolver.cjs new file mode 100644 index 00000000..11c8fc28 --- /dev/null +++ b/example/mina_zkapp/jest-resolver.cjs @@ -0,0 +1,21 @@ +module.exports = (request, options) => { + return options.defaultResolver(request, { + ...options, + packageFilter: (pkg) => { + // When importing o1js, we specify the Node ESM import as Jest by default imports the web version + if (pkg.name === 'o1js') { + return { + ...pkg, + main: pkg.exports.node.import, + }; + } + if (pkg.name === 'node-fetch') { + return { ...pkg, main: pkg.main }; + } + return { + ...pkg, + main: pkg.module || pkg.main, + }; + }, + }); +}; diff --git a/example/mina_zkapp/jest.config.js b/example/mina_zkapp/jest.config.js new file mode 100644 index 00000000..616cdef5 --- /dev/null +++ b/example/mina_zkapp/jest.config.js @@ -0,0 +1,24 @@ +/** @type {import('@ts-jest/dist/types').InitialOptionsTsJest} */ +export default { + verbose: true, + preset: 'ts-jest/presets/default-esm', + testEnvironment: 'node', + globals: { + 'ts-jest': { + useESM: true, + }, + }, + testTimeout: 1_000_000, + transform: { + '^.+\\.(t)s$': 'ts-jest', + '^.+\\.(j)s$': 'babel-jest', + }, + resolver: '/jest-resolver.cjs', + transformIgnorePatterns: [ + '/node_modules/(?!(tslib|o1js/node_modules/tslib))', + ], + modulePathIgnorePatterns: ['/build/'], + moduleNameMapper: { + '^(\\.{1,2}/.+)\\.js$': '$1', + }, +}; diff --git a/example/mina_zkapp/package-lock.json b/example/mina_zkapp/package-lock.json new file mode 100644 index 00000000..406342ee --- /dev/null +++ b/example/mina_zkapp/package-lock.json @@ -0,0 +1,9032 @@ +{ + "name": "sudoku", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sudoku", + "version": "0.1.0", + "license": "Apache-2.0", + "devDependencies": { + "@babel/preset-env": "^7.16.4", + "@babel/preset-typescript": "^7.16.0", + "@types/jest": "^27.0.3", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "eslint": "^8.7.0", + "eslint-plugin-o1js": "^0.4.0", + "jest": "^28.1.3", + "prettier": "^2.3.2", + "ts-jest": "^28.0.8", + "typescript": "^5.1" + }, + "engines": { + "node": ">=18.14.0" + }, + "peerDependencies": { + "o1js": "^1.*" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", + "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", + "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", + "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz", + "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", + "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", + "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.4", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", + "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", + "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz", + "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.4", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.5.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", + "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "license": "MIT", + "peer": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001660", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", + "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.24.tgz", + "integrity": "sha512-0x0wLCmpdKFCi9ulhvYZebgcPmHTkFVUfU2wzDykadkslKwT4oAmDTHEKLnlrDsMGZe4B+ksn8quZfZjYsBetA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-o1js": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-o1js/-/eslint-plugin-o1js-0.4.0.tgz", + "integrity": "sha512-12qI6OvAMtUIh8x9lB5uVzJbRMSR6tGrbCRM98fcCmll1FNvVSUIaat3CWhH17tkcjoyVSaFy0I/WzZcqPqaUA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/expect/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/expect/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/expect/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/expect/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/expect/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/expect/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/expect/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "license": "MIT", + "peer": true, + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-circus/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", + "license": "MIT", + "peer": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/o1js": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/o1js/-/o1js-1.7.0.tgz", + "integrity": "sha512-/gQKJLRuqDrArdU/QkaU0F1lQl/K6/170U01JeU2xIpryN6vBwENfEHWpHt1FXOmGwyTsQHmrJLWfyFLjQOkeA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "blakejs": "1.2.1", + "cachedir": "^2.4.0", + "isomorphic-fetch": "^3.0.0", + "js-sha256": "^0.9.0", + "reflect-metadata": "^0.1.13", + "tslib": "^2.3.0" + }, + "bin": { + "snarky-run": "src/build/run.js" + }, + "engines": { + "node": ">=18.14.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT", + "peer": true + }, + "node_modules/ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^28.0.0", + "babel-jest": "^28.0.0", + "jest": "^28.0.0", + "typescript": ">=4.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD", + "peer": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT", + "peer": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/example/mina_zkapp/package.json b/example/mina_zkapp/package.json new file mode 100644 index 00000000..a06651b9 --- /dev/null +++ b/example/mina_zkapp/package.json @@ -0,0 +1,45 @@ +{ + "name": "sudoku", + "version": "0.1.0", + "description": "", + "author": "", + "license": "Apache-2.0", + "keywords": [ + "mina-zkapp", + "mina-zk-app", + "mina-dapp", + "zkapp" + ], + "type": "module", + "main": "build/src/index.js", + "types": "build/src/index.d.ts", + "scripts": { + "build": "tsc", + "buildw": "tsc --watch", + "coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage", + "format": "prettier --write --ignore-unknown **/*", + "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js", + "testw": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch", + "lint": "npx eslint src/* --fix", + "start": "node build/src/run.js" + }, + "devDependencies": { + "@babel/preset-env": "^7.16.4", + "@babel/preset-typescript": "^7.16.0", + "@types/jest": "^27.0.3", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "eslint": "^8.7.0", + "eslint-plugin-o1js": "^0.4.0", + "jest": "^28.1.3", + "prettier": "^2.3.2", + "ts-jest": "^28.0.8", + "typescript": "^5.1" + }, + "peerDependencies": { + "o1js": "^1.*" + }, + "engines": { + "node": ">=18.14.0" + } +} diff --git a/example/mina_zkapp/src/index.ts b/example/mina_zkapp/src/index.ts new file mode 100644 index 00000000..531cd026 --- /dev/null +++ b/example/mina_zkapp/src/index.ts @@ -0,0 +1,3 @@ +import { SudokuZkApp } from './sudoku.js'; + +export { SudokuZkApp }; diff --git a/example/mina_zkapp/src/run.ts b/example/mina_zkapp/src/run.ts new file mode 100644 index 00000000..73859f8d --- /dev/null +++ b/example/mina_zkapp/src/run.ts @@ -0,0 +1,93 @@ +import fs from 'fs/promises'; +import { Sudoku, SudokuZkApp } from './sudoku.js'; +import { generateSudoku, solveSudoku } from './sudoku-lib.js'; +import { Mina, PrivateKey, PublicKey, NetworkId, fetchAccount } from 'o1js'; + +const ZKAPP_ADDRESS = "B62qmpq1JBejZYDQrZwASPRM5oLXW346WoXgbApVf5HJZXMWFPWFPuA"; +const TX_MAX_TRIES = 5; + +// parse config and private key from file +type Config = { + networkId?: string; + url: string; + fee: string; + feepayerKeyPath: string; + feepayerAlias: string; +}; +let config: Config = JSON.parse(await fs.readFile('config.json', 'utf8')); +let feepayerKeysBase58: { privateKey: string; publicKey: string } = JSON.parse( + await fs.readFile(config.feepayerKeyPath, 'utf8') +); +let feepayerKey = PrivateKey.fromBase58(feepayerKeysBase58.privateKey); +let feepayerAddress = feepayerKey.toPublicKey(); +let zkAppAddress = PublicKey.fromBase58(ZKAPP_ADDRESS); + +// define network (devnet) +const Network = Mina.Network({ + // We need to default to the testnet networkId if none is specified for this deploy alias in config.json + // This is to ensure the backward compatibility. + networkId: config.networkId as NetworkId, + mina: config.url, +}); +const fee = Number(config.fee) * 1e9; // in nanomina (1 billion = 1.0 mina) +Mina.setActiveInstance(Network); + +// define zkapp and create sudoku to upload +const zkApp = new SudokuZkApp(zkAppAddress); +await fetchAccount({ publicKey: zkAppAddress }); +console.log('Is the sudoku solved?', zkApp.isSolved.get().toBoolean()); + +const sudoku = generateSudoku(0.5); + +console.log('Compiling Sudoku'); +await SudokuZkApp.compile(); + +console.log("Sending update transaction and waiting until it's included in a block"); +await trySendTx( + { sender: feepayerAddress, fee }, + async () => { + await zkApp.update(Sudoku.from(sudoku)); + } +); + +let solution = solveSudoku(sudoku); +if (solution === undefined) throw Error('cannot happen'); + +// submit the solution +console.log("Sending submit transaction and waiting until it's included in a block"); +await trySendTx({ sender: feepayerAddress, fee }, async () => { + await zkApp.submitSolution(Sudoku.from(sudoku), Sudoku.from(solution!)); +}); + +console.log('Is the sudoku solved?', zkApp.isSolved.get().toBoolean()); + +async function trySendTx(sender: Mina.FeePayerSpec, f: () => Promise) { + for (let i = 1; i <= TX_MAX_TRIES; i++) { + try { + console.log("Defining transaction"); + const tx = await Mina.transaction(sender, f); + + console.log("Proving transaction"); + await tx.prove(); + + console.log('Signing and sending transaction'); + let pendingTx = await tx.sign([feepayerKey]).send(); + + if (pendingTx.status === 'pending') { + console.log( + `Success! transaction ${pendingTx.hash} sent\n` + + "Waiting for transaction to be included in a block" + ); + await pendingTx.wait(); + return; + } + } catch (err) { + console.log(`Failed attempt ${i}/${TX_MAX_TRIES}, will try again`); + console.log(err); + continue; + } + } + + console.log("Failed all attempts, terminating."); + process.exit(1); +} diff --git a/example/mina_zkapp/src/sudoku-lib.js b/example/mina_zkapp/src/sudoku-lib.js new file mode 100644 index 00000000..03567d01 --- /dev/null +++ b/example/mina_zkapp/src/sudoku-lib.js @@ -0,0 +1,199 @@ +export { generateSudoku, solveSudoku, cloneSudoku }; + +/** + * Generates a random 9x9 sudoku. Cells are either filled out (1,...,9) or empty (0). + * + * @param {number?} difficulty number between 0 (easiest = full sudoku) and 1 (hardest = empty sudoku) + * @returns {number[][]} the sudoku + */ +function generateSudoku(difficulty = 0.5) { + let solution = solveSudokuInternal(emptySudoku(), false); + let partial = deleteRandomValues(solution, difficulty); + return partial; +} + +function deleteRandomValues(sudoku, p) { + // p \in [0,1] ... probability to delete a value + return sudoku.map((row) => row.map((x) => (Math.random() < p ? 0 : x))); +} + +// sudoku = {0,...,9}^(9x9) matrix, 0 means empty cell +function emptySudoku() { + return Array.from({ length: 9 }, () => Array(9).fill(0)); +} + +/** + * Solve a given sudoku. Returns undefined if there is no solution. + * + * @param {number[][]} sudoku - The input sudoku with some cell values equal to zero + * @returns {number[][] | undefined} - The full sudoku, or undefined if no solution exists + */ +function solveSudoku(sudoku) { + return solveSudokuInternal(sudoku, true); +} + +function solveSudokuInternal(sudoku, deterministic, possible) { + // find *a* compatible solution to the sudoku - not checking for uniqueness + // if deterministic = true: always take the smallest possible cell value + // if deterministic = false: take random compatible values + if (possible === undefined) { + possible = possibleFromSudoku(sudoku); + sudoku = cloneSudoku(sudoku); + } + while (true) { + let [i, j, n] = cellWithFewestPossible(sudoku, possible); + + // no free values => sudoku is solved! + if (n === Infinity) return sudoku; + + if (n === 1) { + let x = chooseFirstPossible(i, j, possible); + // console.log('determined', x, 'at', i, j); + sudoku[i][j] = x; + fixValue(i, j, x, possible); + continue; + } + + while (true) { + let x = deterministic + ? chooseFirstPossible(i, j, possible) + : chooseRandomPossible(i, j, possible); + + // no values possible! we failed to get a solution + if (x === 0) return; + + let sudoku_ = cloneSudoku(sudoku); + let possible_ = cloneSudoku(possible); + sudoku_[i][j] = x; + fixValue(i, j, x, possible_); + + let solution = solveSudokuInternal(sudoku_, deterministic, possible_); + + // found a solution? return it! + if (solution !== undefined) return solution; + + // there is no solution with x at i, j! + // mark this value as impossible and try again + possible[i][j][x - 1] = 0; + } + } +} + +// possible = {0,1}^(9x9x9) tensor of possibilities +// possible[i][j][x] contains a 1 if entry x \in {1,...,9} is possible in sudoku[i][j], 0 otherwise +// => allows us to quickly determine cells where few values are possible +function possibleFromSudoku(sudoku) { + let possible = Array.from({ length: 9 }, () => + Array.from({ length: 9 }, () => Array(9).fill(1)) + ); + for (let i = 0; i < 9; i++) { + for (let j = 0; j < 9; j++) { + let x = sudoku[i][j]; + if (x !== 0) { + fixValue(i, j, x, possible); + } + } + } + return possible; +} + +function chooseFirstPossible(i, j, possible) { + let possibleIJ = possible[i][j]; + let x = 0; + for (let k = 0; k < 9; k++) { + if (possibleIJ[k] === 1) { + x = k + 1; + break; + } + } + return x; +} + +function chooseRandomPossible(i, j, possible) { + let possibleValues = possible[i][j] + .map((b, m) => b && m + 1) + .filter((b) => b); + let n = possibleValues.length; + if (n === 0) return 0; + let k = Math.floor(Math.random() * n); + return possibleValues[k]; +} + +function fixValue(i, j, x, possible) { + // mark the value as impossible in the same row + for (let k = 0; k < 9; k++) { + if (k === j) { + possible[i][k][x - 1] = 1; + } else { + possible[i][k][x - 1] = 0; + } + } + // mark the value as impossible in the same column + for (let k = 0; k < 9; k++) { + if (k === i) { + possible[k][j][x - 1] = 1; + } else { + possible[k][j][x - 1] = 0; + } + } + // mark the value as impossible in the same square + let [i0, i1] = divmod(i, 3); + let [j0, j1] = divmod(j, 3); + for (let k = 0; k < 9; k++) { + let [ii, jj] = divmod(k, 3); + if (ii === i1 && jj === j1) { + possible[3 * i0 + ii][3 * j0 + jj][x - 1] = 1; + } else { + possible[3 * i0 + ii][3 * j0 + jj][x - 1] = 0; + } + } + // mark all other values as impossible in the same cell + for (let k = 0; k < 9; k++) { + if (k === x - 1) { + possible[i][j][k] = 1; + } else { + possible[i][j][k] = 0; + } + } +} + +function cellWithFewestPossible(sudoku, possible) { + let i0, j0; + let fewest = Infinity; + for (let i = 0; i < 9; i++) { + for (let j = 0; j < 9; j++) { + if (sudoku[i][j] !== 0) continue; + let possibleIJ = possible[i][j]; + let n = 0; + for (let k = 0; k < 9; k++) { + if (possibleIJ[k] === 1) n++; + } + if (n < fewest) { + if (n === 1 || n === 0) return [i, j, n]; + fewest = n; + [i0, j0] = [i, j]; + } + } + } + return [i0, j0, fewest]; +} + +function divmod(k, n) { + let q = Math.floor(k / n); + return [q, k - q * n]; +} + +/** + * Clones a sudoku. + * + * @template T + * @param {T[]} sudoku + * @returns {T[]} + */ +function cloneSudoku(sudoku) { + if (Array.isArray(sudoku[0])) { + return sudoku.map((x) => cloneSudoku(x)); + } else { + return [...sudoku]; + } +} diff --git a/example/mina_zkapp/src/sudoku.test.ts b/example/mina_zkapp/src/sudoku.test.ts new file mode 100644 index 00000000..d4911351 --- /dev/null +++ b/example/mina_zkapp/src/sudoku.test.ts @@ -0,0 +1,84 @@ +import { Sudoku, SudokuZkApp } from './sudoku'; +import { cloneSudoku, generateSudoku, solveSudoku } from './sudoku-lib'; +import { PrivateKey, PublicKey, Mina, AccountUpdate } from 'o1js'; + +describe('sudoku', () => { + let zkApp: SudokuZkApp, + zkAppPrivateKey: PrivateKey, + zkAppAddress: PublicKey, + sudoku: number[][], + sender: Mina.TestPublicKey, + senderKey: PrivateKey; + + beforeEach(async () => { + let Local = await Mina.LocalBlockchain({ proofsEnabled: false }); + Mina.setActiveInstance(Local); + sender = Local.testAccounts[0]; + senderKey = sender.key; + zkAppPrivateKey = PrivateKey.random(); + zkAppAddress = zkAppPrivateKey.toPublicKey(); + zkApp = new SudokuZkApp(zkAppAddress); + sudoku = generateSudoku(0.5); + }); + + it('accepts a correct solution', async () => { + await deploy(zkApp, zkAppPrivateKey, sudoku, sender, senderKey); + + let isSolved = zkApp.isSolved.get().toBoolean(); + expect(isSolved).toBe(false); + + let solution = solveSudoku(sudoku); + if (solution === undefined) throw Error('cannot happen'); + let tx = await Mina.transaction(sender, async () => { + let zkApp = new SudokuZkApp(zkAppAddress); + await zkApp.submitSolution(Sudoku.from(sudoku), Sudoku.from(solution!)); + }); + await tx.prove(); + await tx.sign([senderKey]).send(); + + isSolved = zkApp.isSolved.get().toBoolean(); + expect(isSolved).toBe(true); + }); + + it('rejects an incorrect solution', async () => { + await deploy(zkApp, zkAppPrivateKey, sudoku, sender, senderKey); + + let solution = solveSudoku(sudoku); + if (solution === undefined) throw Error('cannot happen'); + + let noSolution = cloneSudoku(solution); + noSolution[0][0] = (noSolution[0][0] % 9) + 1; + + await expect(async () => { + let tx = await Mina.transaction(sender, async () => { + let zkApp = new SudokuZkApp(zkAppAddress); + await zkApp.submitSolution( + Sudoku.from(sudoku), + Sudoku.from(noSolution) + ); + }); + await tx.prove(); + await tx.sign([senderKey]).send(); + }).rejects.toThrow(/array contains the numbers 1...9/); + + let isSolved = zkApp.isSolved.get().toBoolean(); + expect(isSolved).toBe(false); + }); +}); + +async function deploy( + zkApp: SudokuZkApp, + zkAppPrivateKey: PrivateKey, + sudoku: number[][], + sender: PublicKey, + senderKey: PrivateKey +) { + let tx = await Mina.transaction(sender, async () => { + AccountUpdate.fundNewAccount(sender); + await zkApp.deploy(); + await zkApp.update(Sudoku.from(sudoku)); + }); + await tx.prove(); + // this tx needs .sign(), because `deploy()` adds an account update that requires signature authorization + await tx.sign([zkAppPrivateKey, senderKey]).send(); +} diff --git a/example/mina_zkapp/src/sudoku.ts b/example/mina_zkapp/src/sudoku.ts new file mode 100644 index 00000000..9b624f86 --- /dev/null +++ b/example/mina_zkapp/src/sudoku.ts @@ -0,0 +1,114 @@ +import { + Field, + SmartContract, + method, + Bool, + state, + State, + Poseidon, + Struct, + Provable, +} from 'o1js'; + +export { Sudoku, SudokuZkApp }; + +class Sudoku extends Struct({ + value: Provable.Array(Provable.Array(Field, 9), 9), +}) { + static from(value: number[][]) { + return new Sudoku({ value: value.map((row) => row.map(Field)) }); + } + + hash() { + return Poseidon.hash(this.value.flat()); + } +} + +class SudokuZkApp extends SmartContract { + @state(Field) sudokuHash = State(); + @state(Bool) isSolved = State(); + + /** + * by making this a `@method`, we ensure that a proof is created for the state initialization. + * alternatively (and, more efficiently), we could have used `super.init()` inside `update()` below, + * to ensure the entire state is overwritten. + * however, it's good to have an example which tests the CLI's ability to handle init() decorated with `@method`. + */ + @method async init() { + super.init(); + } + + @method async update(sudokuInstance: Sudoku) { + this.sudokuHash.set(sudokuInstance.hash()); + this.isSolved.set(Bool(false)); + } + + @method async submitSolution( + sudokuInstance: Sudoku, + solutionInstance: Sudoku + ) { + let sudoku = sudokuInstance.value; + let solution = solutionInstance.value; + + // first, we check that the passed solution is a valid sudoku + + // define helpers + let range9 = Array.from({ length: 9 }, (_, i) => i); + let oneTo9 = range9.map((i) => Field(i + 1)); + + function assertHas1To9(array: Field[]) { + oneTo9 + .map((k) => range9.map((i) => array[i].equals(k)).reduce(Bool.or)) + .reduce(Bool.and) + .assertTrue('array contains the numbers 1...9'); + } + + // check all rows + for (let i = 0; i < 9; i++) { + let row = solution[i]; + assertHas1To9(row); + } + // check all columns + for (let j = 0; j < 9; j++) { + let column = solution.map((row) => row[j]); + assertHas1To9(column); + } + // check 3x3 squares + for (let k = 0; k < 9; k++) { + let [i0, j0] = divmod(k, 3); + let square = range9.map((m) => { + let [i1, j1] = divmod(m, 3); + return solution[3 * i0 + i1][3 * j0 + j1]; + }); + assertHas1To9(square); + } + + // next, we check that the solution extends the initial sudoku + for (let i = 0; i < 9; i++) { + for (let j = 0; j < 9; j++) { + let cell = sudoku[i][j]; + let solutionCell = solution[i][j]; + // either the sudoku has nothing in it (indicated by a cell value of 0), + // or it is equal to the solution + Bool.or(cell.equals(0), cell.equals(solutionCell)).assertTrue( + `solution cell (${i + 1},${j + 1}) matches the original sudoku` + ); + } + } + + // finally, we check that the sudoku is the one that was originally deployed + let sudokuHash = this.sudokuHash.getAndRequireEquals(); + + sudokuInstance + .hash() + .assertEquals(sudokuHash, 'sudoku matches the one committed on-chain'); + + // all checks passed => the sudoku is solved! + this.isSolved.set(Bool(true)); + } +} + +function divmod(k: number, n: number) { + let q = Math.floor(k / n); + return [q, k - q * n]; +} diff --git a/example/mina_zkapp/tsconfig.json b/example/mina_zkapp/tsconfig.json new file mode 100644 index 00000000..9cb138e2 --- /dev/null +++ b/example/mina_zkapp/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "es2020", + "module": "es2022", + "lib": ["dom", "esnext"], + "outDir": "./build", + "rootDir": ".", + "strict": true, + "strictPropertyInitialization": false, // to enable generic constructors, e.g. on CircuitValue + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "esModuleInterop": true, + "moduleResolution": "node", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "allowJs": true, + "declaration": true, + "sourceMap": true, + "noFallthroughCasesInSwitch": true, + "allowSyntheticDefaultImports": true, + "useDefineForClassFields": false, + }, + "include": ["./src"], +} From f9396d91ea0ae1bbd1cb25f77d9620a6ecb260ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 25 Sep 2024 15:17:32 -0300 Subject: [PATCH 34/46] Rename MinaBridge to MinaStateSettlement (#345) --- Makefile | 2 +- contract/script/MinaBridge.s.sol | 33 ----------------- ...MinaBridge.sol => MinaStateSettlement.sol} | 4 +-- contract/test/MinaBridge.t.sol | 16 --------- ...naBridge.json => MinaStateSettlement.json} | 2 +- core/src/eth.rs | 36 +++++++++++-------- example/app/abi/SudokuValidity.json | 2 +- example/eth_contract/src/SudokuValidity.sol | 6 ++-- 8 files changed, 29 insertions(+), 72 deletions(-) delete mode 100644 contract/script/MinaBridge.s.sol rename contract/src/{MinaBridge.sol => MinaStateSettlement.sol} (97%) delete mode 100644 contract/test/MinaBridge.t.sol rename core/abi/{MinaBridge.json => MinaStateSettlement.json} (57%) diff --git a/Makefile b/Makefile index 0ada52e6..92efab77 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ submit_account: gen_contract_abis: forge build --root contract/ forge build --root example/eth_contract - cp contract/out/MinaBridge.sol/MinaBridge.json core/abi/MinaBridge.json + cp contract/out/MinaStateSettlement.sol/MinaStateSettlement.json core/abi/MinaStateSettlement.json cp contract/out/MinaAccountValidation.sol/MinaAccountValidation.json core/abi/MinaAccountValidation.json cp example/eth_contract/out/SudokuValidity.sol/SudokuValidity.json example/app/abi/SudokuValidity.json diff --git a/contract/script/MinaBridge.s.sol b/contract/script/MinaBridge.s.sol deleted file mode 100644 index fecaef77..00000000 --- a/contract/script/MinaBridge.s.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.12; - -import {Script, console} from "forge-std/Script.sol"; -import {MinaBridge} from "../src/MinaBridge.sol"; - -error UndefinedChain(); - -contract MinaBridgeDeployer is Script { - MinaBridge public bridge; - - function setUp() public {} - - function run() public { - vm.startBroadcast(); - - string memory chain = vm.envString("ETH_CHAIN"); - address payable alignedServiceAddress; - if (keccak256(bytes(chain)) == keccak256("devnet")) { - alignedServiceAddress = payable(0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8); - } else if (keccak256(bytes(chain)) == keccak256("holesky")) { - alignedServiceAddress = payable(0x58F280BeBE9B34c9939C3C39e0890C81f163B623); - } else { - revert UndefinedChain(); - } - - // FIXME(xqft): this script may be deprecated, for now we'll - // pass 0x0 as the second constructor argument. - new MinaBridge(alignedServiceAddress, 0x0); - - vm.stopBroadcast(); - } -} diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaStateSettlement.sol similarity index 97% rename from contract/src/MinaBridge.sol rename to contract/src/MinaStateSettlement.sol index 8ce6fddb..9f9ef27e 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaStateSettlement.sol @@ -7,8 +7,8 @@ error NewStateIsNotValid(); // 114602f0 error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); // bbd80128 error AccountIsNotValid(bytes32 accountIdHash); -/// @title Mina to Ethereum Bridge's smart contract. -contract MinaBridge { +/// @title Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain. +contract MinaStateSettlement { /// @notice The length of the verified state chain (also called the bridge's transition /// frontier) to store. uint256 public constant BRIDGE_TRANSITION_FRONTIER_LEN = 16; diff --git a/contract/test/MinaBridge.t.sol b/contract/test/MinaBridge.t.sol deleted file mode 100644 index c5fe2b7c..00000000 --- a/contract/test/MinaBridge.t.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.12; - -import {Test, console} from "forge-std/Test.sol"; -import {MinaBridge} from "../src/MinaBridge.sol"; - -contract MinaBridgeTest is Test { - MinaBridge public bridge; - address payable alignedServiceAddress = payable(0x0); - - function setUp() public { - // FIXME(xqft): this script may be deprecated, for now we'll - // pass 0x0 as the second constructor argument. - bridge = new MinaBridge(alignedServiceAddress, 0x0); - } -} diff --git a/core/abi/MinaBridge.json b/core/abi/MinaStateSettlement.json similarity index 57% rename from core/abi/MinaBridge.json rename to core/abi/MinaStateSettlement.json index ac9c193b..b84761c7 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaStateSettlement.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060405161078c38038061078c833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61069f806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea2646970667358221220ccffa0389b24b92e3608ec51a9cf1ae9fa6bb7ae59478769ce76aac4cc5c8bd864736f6c63430008190033","sourceMap":"369:4813:64:-:0;;;1077:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1159:7;:57;;-1:-1:-1;;;;;;1159:57:64;-1:-1:-1;;;;;1159:57:64;;;;;1281:13;-1:-1:-1;1243:34:64;-1:-1:-1;572:2:64;1243:34;:::i;:::-;1226:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:4813:64;;-1:-1:-1;369:4813:64;14:359:66;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:66;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:66:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;369:4813:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea2646970667358221220ccffa0389b24b92e3608ec51a9cf1ae9fa6bb7ae59478769ce76aac4cc5c8bd864736f6c63430008190033","sourceMap":"369:4813:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1764:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2005:172;;;:::i;2624:2556::-;;;;;;:::i;:::-;;:::i;:::-;;1557:137;;;:::i;:::-;;;2776:25:66;;;2764:2;2749:18;1557:137:64;2630:177:66;2253:365:64;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:66;;3155:22;3137:41;;3125:2;3110:18;2253:365:64;2997:187:66;1361:135:64;;;:::i;515:59::-;;572:2;515:59;;1764:170;1842:46;;:::i;:::-;1904:23;;;;;;;;;;;-1:-1:-1;;1904:23:64;;-1:-1:-1;1904:23:64;;;;;;;;;;;;;;;;;;;;;;;;1764:170;:::o;2005:172::-;2084:46;;:::i;:::-;2146:24;;;;;;;;;;2153:17;2146:24;;;;;;2153:17;;2146:24;;;;;;;;;;;;;;;;2005:172;:::o;2624:2556::-;3085:4;3071:19;;3065:26;2968:34;3187;3220:1;572:2;3187:34;:::i;:::-;3170:52;;;;;;;:::i;:::-;;;3128:26;:94;3111:297;;3287:26;3331:16;3348:34;3381:1;572:2;3348:34;:::i;:::-;3331:52;;;;;;;:::i;:::-;;;3254:143;;-1:-1:-1;;;3254:143:64;;;;;3907:25:66;;;;3948:18;;;3941:34;3880:18;;3254:143:64;;;;;;;3111:297;3447:19;;;;;;;;;;3503:7;;:304;;-1:-1:-1;;;3503:304:64;;3418:26;;-1:-1:-1;;;;;3503:7:64;;:28;;:304;;3545:15;;3447:19;;3606:30;;3650:18;;3682:15;;3711:11;;3736:26;;3776:21;;3503:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3477:330;;3822:18;3818:1356;;;3960:21;4018:22;4308:2;4294:17;;4443:115;;;3960:21;4576:516;4637:30;4634:1;4631:37;4576:516;;;4766:18;;4746:39;;4939:19;;4918:41;;4894:1;4877:19;;;;5054:20;;;;4838:2;4821:20;;;;4996:21;;;;4696:9;4576:516;;;4580:50;;;;;3818:1356;;;5143:20;;-1:-1:-1;;;5143:20:64;;;;;;;;;;;3818:1356;2958:2222;;;2624:2556;;;;;;;;:::o;1557:137::-;1608:7;1634:17;1652:34;1685:1;1634:17;1652:34;:::i;:::-;1634:53;;;;;;;:::i;:::-;;;1627:60;;1557:137;:::o;2253:365::-;2322:4;;2338:252;572:2;2358:1;:34;2338:252;;;2511:10;2434:17;2489:1;2452:34;2485:1;2434:17;2452:34;:::i;:::-;:38;;;;:::i;:::-;2434:57;;;;;;;:::i;:::-;;;:87;2413:167;;-1:-1:-1;2561:4:64;;2253:365;-1:-1:-1;;2253:365:64:o;2413:167::-;2394:3;;2338:252;;;-1:-1:-1;2606:5:64;;2253:365;-1:-1:-1;;2253:365:64:o;1361:135::-;1411:7;;1454:34;1487:1;572:2;1454:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:66:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:66;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:66;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:66;1893:18;;1880:32;;-1:-1:-1;1962:2:66;1947:18;;1934:32;-1:-1:-1;;1995:43:66;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:66;2113:18;;2100:32;;-1:-1:-1;2183:3:66;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:66;;2812:180;-1:-1:-1;2812:180:66:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:66;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:66:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311\",\"dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59","urls":["bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311","dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060405161078c38038061078c833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61069f806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea264697066735822122072e3b8edd41bb99dfb03c65a3905740dec345a9bcf4fb45cdf63a948622b72e164736f6c63430008190033","sourceMap":"415:4822:38:-:0;;;1132:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1214:7;:57;;-1:-1:-1;;;;;;1214:57:38;-1:-1:-1;;;;;1214:57:38;;;;;1336:13;-1:-1:-1;1298:34:38;-1:-1:-1;627:2:38;1298:34;:::i;:::-;1281:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;415:4822:38;;-1:-1:-1;415:4822:38;14:359:39;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:39;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:39:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;415:4822:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea264697066735822122072e3b8edd41bb99dfb03c65a3905740dec345a9bcf4fb45cdf63a948622b72e164736f6c63430008190033","sourceMap":"415:4822:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2060:172;;;:::i;2679:2556::-;;;;;;:::i;:::-;;:::i;:::-;;1612:137;;;:::i;:::-;;;2776:25:39;;;2764:2;2749:18;1612:137:38;2630:177:39;2308:365:38;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:39;;3155:22;3137:41;;3125:2;3110:18;2308:365:38;2997:187:39;1416:135:38;;;:::i;570:59::-;;627:2;570:59;;1819:170;1897:46;;:::i;:::-;1959:23;;;;;;;;;;;-1:-1:-1;;1959:23:38;;-1:-1:-1;1959:23:38;;;;;;;;;;;;;;;;;;;;;;;;1819:170;:::o;2060:172::-;2139:46;;:::i;:::-;2201:24;;;;;;;;;;2208:17;2201:24;;;;;;2208:17;;2201:24;;;;;;;;;;;;;;;;2060:172;:::o;2679:2556::-;3140:4;3126:19;;3120:26;3023:34;3242;3275:1;627:2;3242:34;:::i;:::-;3225:52;;;;;;;:::i;:::-;;;3183:26;:94;3166:297;;3342:26;3386:16;3403:34;3436:1;627:2;3403:34;:::i;:::-;3386:52;;;;;;;:::i;:::-;;;3309:143;;-1:-1:-1;;;3309:143:38;;;;;3907:25:39;;;;3948:18;;;3941:34;3880:18;;3309:143:38;;;;;;;3166:297;3502:19;;;;;;;;;;3558:7;;:304;;-1:-1:-1;;;3558:304:38;;3473:26;;-1:-1:-1;;;;;3558:7:38;;:28;;:304;;3600:15;;3502:19;;3661:30;;3705:18;;3737:15;;3766:11;;3791:26;;3831:21;;3558:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3532:330;;3877:18;3873:1356;;;4015:21;4073:22;4363:2;4349:17;;4498:115;;;4015:21;4631:516;4692:30;4689:1;4686:37;4631:516;;;4821:18;;4801:39;;4994:19;;4973:41;;4949:1;4932:19;;;;5109:20;;;;4893:2;4876:20;;;;5051:21;;;;4751:9;4631:516;;;4635:50;;;;;3873:1356;;;5198:20;;-1:-1:-1;;;5198:20:38;;;;;;;;;;;3873:1356;3013:2222;;;2679:2556;;;;;;;;:::o;1612:137::-;1663:7;1689:17;1707:34;1740:1;1689:17;1707:34;:::i;:::-;1689:53;;;;;;;:::i;:::-;;;1682:60;;1612:137;:::o;2308:365::-;2377:4;;2393:252;627:2;2413:1;:34;2393:252;;;2566:10;2489:17;2544:1;2507:34;2540:1;2489:17;2507:34;:::i;:::-;:38;;;;:::i;:::-;2489:57;;;;;;;:::i;:::-;;;:87;2468:167;;-1:-1:-1;2616:4:38;;2308:365;-1:-1:-1;;2308:365:38:o;2468:167::-;2449:3;;2393:252;;;-1:-1:-1;2661:5:38;;2308:365;-1:-1:-1;;2308:365:38:o;1416:135::-;1466:7;;1509:34;1542:1;627:2;1509:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:39:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:39;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:39;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:39;1893:18;;1880:32;;-1:-1:-1;1962:2:39;1947:18;;1934:32;-1:-1:-1;;1995:43:39;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:39;2113:18;;2100:32;;-1:-1:-1;2183:3:39;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:39;;2812:180;-1:-1:-1;2812:180:39:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:39;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:39:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd\",\"dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd","urls":["bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd","dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/src/eth.rs b/core/src/eth.rs index 57b0401e..c6a51bdb 100644 --- a/core/src/eth.rs +++ b/core/src/eth.rs @@ -22,23 +22,26 @@ use crate::{ }, }; -abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); +abigen!( + MinaStateSettlementEthereumContract, + "abi/MinaStateSettlement.json" +); abigen!( MinaAccountValidationEthereumContract, "abi/MinaAccountValidation.json" ); -type MinaBridgeEthereum = - MinaBridgeEthereumContract, Wallet>>; +type MinaStateSettlementEthereum = + MinaStateSettlementEthereumContract, Wallet>>; -type MinaBridgeEthereumCallOnly = MinaBridgeEthereumContract>; +type MinaStateSettlementEthereumCallOnly = MinaStateSettlementEthereumContract>; type MinaAccountValidationEthereumCallOnly = MinaAccountValidationEthereumContract>; sol!( #[allow(clippy::too_many_arguments)] #[sol(rpc)] - MinaBridge, - "abi/MinaBridge.json" + MinaStateSettlement, + "abi/MinaStateSettlement.json" ); sol!( @@ -52,7 +55,7 @@ sol!( #[derive(Serialize, Deserialize)] pub struct SolStateHash(#[serde_as(as = "SolSerialize")] pub StateHash); -pub struct MinaBridgeConstructorArgs { +pub struct MinaStateSettlementConstructorArgs { aligned_service_addr: alloy::primitives::Address, root_state_hash: alloy::primitives::FixedBytes<32>, } @@ -61,7 +64,7 @@ pub struct MinaAccountValidationConstructorArgs { aligned_service_addr: alloy::primitives::Address, } -impl MinaBridgeConstructorArgs { +impl MinaStateSettlementConstructorArgs { pub fn new(aligned_service_addr: &str, root_state_hash: Vec) -> Result { let aligned_service_addr = alloy::primitives::Address::parse_checksummed(aligned_service_addr, None) @@ -334,7 +337,7 @@ pub async fn validate_account( pub async fn deploy_mina_bridge_contract( eth_rpc_url: &str, - constructor_args: MinaBridgeConstructorArgs, + constructor_args: MinaStateSettlementConstructorArgs, wallet: &EthereumWallet, ) -> Result { let provider = ProviderBuilder::new() @@ -342,11 +345,11 @@ pub async fn deploy_mina_bridge_contract( .wallet(wallet) .on_http(reqwest::Url::parse(eth_rpc_url).map_err(|err| err.to_string())?); - let MinaBridgeConstructorArgs { + let MinaStateSettlementConstructorArgs { aligned_service_addr, root_state_hash, } = constructor_args; - let contract = MinaBridge::deploy(&provider, aligned_service_addr, root_state_hash) + let contract = MinaStateSettlement::deploy(&provider, aligned_service_addr, root_state_hash) .await .map_err(|err| err.to_string())?; let address = contract.address(); @@ -390,7 +393,7 @@ fn mina_bridge_contract( contract_address: Address, chain: &Chain, wallet: Wallet, -) -> Result { +) -> Result { let eth_rpc_provider = Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; let chain_id = match chain { @@ -401,17 +404,20 @@ fn mina_bridge_contract( let signer = SignerMiddleware::new(eth_rpc_provider, wallet.with_chain_id(chain_id)); let client = Arc::new(signer); debug!("contract address: {contract_address}"); - Ok(MinaBridgeEthereum::new(contract_address, client)) + Ok(MinaStateSettlementEthereum::new(contract_address, client)) } fn mina_bridge_contract_call_only( eth_rpc_url: &str, contract_address: Address, -) -> Result { +) -> Result { let eth_rpc_provider = Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; let client = Arc::new(eth_rpc_provider); - Ok(MinaBridgeEthereumCallOnly::new(contract_address, client)) + Ok(MinaStateSettlementEthereumCallOnly::new( + contract_address, + client, + )) } fn mina_account_validation_contract_call_only( diff --git a/example/app/abi/SudokuValidity.json b/example/app/abi/SudokuValidity.json index 83edf705..4110fc9b 100644 --- a/example/app/abi/SudokuValidity.json +++ b/example/app/abi/SudokuValidity.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea2646970667358221220b060fb5b363bdc7e5967a67820ab54a7d982dea6fde99462b325ddfbbeb8fbe364736f6c63430008190033","sourceMap":"177:2974:40:-:0;;;960:1;923:38;;968:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1052:15;:50;;-1:-1:-1;;;;;1052:50:40;;;-1:-1:-1;;;;;;1052:50:40;;;;;;;;1112:65;;;;;;;;;;;177:2974;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;177:2974:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea2646970667358221220b060fb5b363bdc7e5967a67820ab54a7d982dea6fde99462b325ddfbbeb8fbe364736f6c63430008190033","sourceMap":"177:2974:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1439:1710;;;;;;:::i;:::-;;:::i;:::-;;432:139;;494:77;432:139;;;;;4268:25:41;;;4256:2;4241:18;432:139:40;;;;;;;1190:120;1277:26;;1190:120;;1439:1710;1790:18;1819:13;1829:2;1790:18;1819:8;;:13;:::i;:::-;1811:22;;;:::i;:::-;1848:15;;:44;;-1:-1:-1;;;1848:44:40;;;;;4268:25:41;;;1790:43:40;;-1:-1:-1;;;;;;1848:15:40;;:32;;4241:18:41;;1848:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1843:108;;1915:25;;-1:-1:-1;;;1915:25:40;;;;;4268::41;;;4241:18;;1915:25:40;;;;;;;1843:108;1961:45;2009:348;;;;;;;;2073:15;2009:348;;;;2106:30;2009:348;;;;2154:18;2009:348;;;;;;;2190:15;2009:348;;;;2223:11;2009:348;;;;2252:26;2009:348;;;;2296:8;;2009:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2009:348:40;;;-1:-1:-1;;;;;;2009:348:40;;;;;;;;;;;2373:17;;:39;;-1:-1:-1;;;2373:39:40;;1961:396;;-1:-1:-1;2373:17:40;;:33;;:39;;1961:396;;2373:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2368:99;;2435:21;;-1:-1:-1;;;2435:21:40;;;;;;;;;;;2368:99;2477:29;;2509:17;:8;2518:6;2509:8;;:17;:::i;:::-;2477:49;;-1:-1:-1;2477:49:40;-1:-1:-1;2536:44:40;2583:93;;;;2477:49;2583:93;:::i;:::-;2988:13;;;;:22;:25;;;:13;;-1:-1:-1;2988:30:40;2984:159;;3063:15;3034:26;:44;2984:159;;;3116:16;;-1:-1:-1;;;3116:16:40;;;;;;;;;;;2984:159;1780:1369;;;;;1439:1710;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]},\"lib/mina_bridge/contract/src/MinaBridge.sol\":{\"keccak256\":\"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311\",\"dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0x5a15f1d022fa3c43b87904a029d632b5cd761df18dc156be322b2c5f848ba591\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a561f492e68aa195402d59fb51d6177ccbed03a85dc2575ac3eda170f868950a\",\"dweb:/ipfs/QmSEfGVpefbi2b6tH6vnxya7g9m6LEbHrpgHwvQRkgBf8v\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaBridge.sol":{"keccak256":"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59","urls":["bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311","dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0x5a15f1d022fa3c43b87904a029d632b5cd761df18dc156be322b2c5f848ba591","urls":["bzz-raw://a561f492e68aa195402d59fb51d6177ccbed03a85dc2575ac3eda170f868950a","dweb:/ipfs/QmSEfGVpefbi2b6tH6vnxya7g9m6LEbHrpgHwvQRkgBf8v"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea264697066735822122033c018a706b250ce77799ea25a95f87fd35571e5a4639f05451f725ad3a01fb864736f6c63430008190033","sourceMap":"186:2992:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2992;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2992:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea264697066735822122033c018a706b250ce77799ea25a95f87fd35571e5a4639f05451f725ad3a01fb864736f6c63430008190033","sourceMap":"186:2992:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1710;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1710;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:348;;;;;;;;2100:15;2036:348;;;;2133:30;2036:348;;;;2181:18;2036:348;;;;;;;2217:15;2036:348;;;;2250:11;2036:348;;;;2279:26;2036:348;;;;2323:8;;2036:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:348:40;;;-1:-1:-1;;;;;;2036:348:40;;;;;;;;;;;2400:17;;:39;;-1:-1:-1;;;2400:39:40;;1988:396;;-1:-1:-1;2400:17:40;;:33;;:39;;1988:396;;2400:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2395:99;;2462:21;;-1:-1:-1;;;2462:21:40;;;;;;;;;;;2395:99;2504:29;;2536:17;:8;2545:6;2536:8;;:17;:::i;:::-;2504:49;;-1:-1:-1;2504:49:40;-1:-1:-1;2563:44:40;2610:93;;;;2504:49;2610:93;:::i;:::-;3015:13;;;;:22;:25;;;:13;;-1:-1:-1;3015:30:40;3011:159;;3090:15;3061:26;:44;3011:159;;;3143:16;;-1:-1:-1;;;3143:16:40;;;;;;;;;;;3011:159;1807:1369;;;;;1466:1710;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd\",\"dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xd3474b3062f2ce59256d8fdbd71a3bd29a07912dced42ed905d33074b2d248ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://afcc7a04762ad13cd9c7542e8460ae24a72ae1370b9090673ddbb9f99657a55c\",\"dweb:/ipfs/Qma2NmLuTvw7p2zQVnTU1ZYfbeqQNx5uJ9t3GdwRYiQ9J3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd","urls":["bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd","dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xd3474b3062f2ce59256d8fdbd71a3bd29a07912dced42ed905d33074b2d248ad","urls":["bzz-raw://afcc7a04762ad13cd9c7542e8460ae24a72ae1370b9090673ddbb9f99657a55c","dweb:/ipfs/Qma2NmLuTvw7p2zQVnTU1ZYfbeqQNx5uJ9t3GdwRYiQ9J3"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file diff --git a/example/eth_contract/src/SudokuValidity.sol b/example/eth_contract/src/SudokuValidity.sol index 9e2b8d98..bfd5f2a2 100644 --- a/example/eth_contract/src/SudokuValidity.sol +++ b/example/eth_contract/src/SudokuValidity.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.12; -import "mina_bridge/contract/src/MinaBridge.sol"; +import "mina_bridge/contract/src/MinaStateSettlement.sol"; import "mina_bridge/contract/src/MinaAccountValidation.sol"; contract SudokuValidity { @@ -15,7 +15,7 @@ contract SudokuValidity { 19387792026269240922986233885372582803610254872042773421723960761233199555267; /// @notice Mina bridge contract that validates and stores Mina states. - MinaBridge stateSettlement; + MinaStateSettlement stateSettlement; /// @notice Mina bridge contract that validates accounts MinaAccountValidation accountValidation; @@ -24,7 +24,7 @@ contract SudokuValidity { uint256 latestSolutionValidationAt = 0; constructor(address _stateSettlementAddr, address _accountValidationAddr) { - stateSettlement = MinaBridge(_stateSettlementAddr); + stateSettlement = MinaStateSettlement(_stateSettlementAddr); accountValidation = MinaAccountValidation(_accountValidationAddr); } From b9ca11dea6ffc05c15da34ec93c77c116da24668 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 25 Sep 2024 15:37:40 -0300 Subject: [PATCH 35/46] Check Proving system ID (#342) * [WIP] Update Aligned to 0.7.0 We must wait until Aligned uploads the release for 0.7.0. Once it's uploaded we need to add a batcher payment service arg to the `updateChain` call in the Aligned polling service. * Update Aligned to 0.7.0 * Update Aligned branch * Update Aligned and Bridge contracts * Update Aligned Foundry submodule * Add Proving system ID commitment check * Update core lockfile * Fix ABIs * Remove unused Solidity error * Update ABIs --- contract/src/MinaAccountValidation.sol | 42 ++++++++++-------- contract/src/MinaStateSettlement.sol | 48 +++++++-------------- contract_deployer/src/main.rs | 6 +-- core/abi/MinaAccountValidation.json | 2 +- core/abi/MinaStateSettlement.json | 2 +- core/src/aligned.rs | 3 +- example/app/abi/SudokuValidity.json | 2 +- example/eth_contract/src/SudokuValidity.sol | 26 +++++------ 8 files changed, 60 insertions(+), 71 deletions(-) diff --git a/contract/src/MinaAccountValidation.sol b/contract/src/MinaAccountValidation.sol index db0f0e41..b941e041 100644 --- a/contract/src/MinaAccountValidation.sol +++ b/contract/src/MinaAccountValidation.sol @@ -3,7 +3,12 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; +error MinaAccountProvingSystemIdIsNotValid(); // c1872967 + contract MinaAccountValidation { + /// @notice The commitment to Mina Account proving system ID. + bytes32 constant PROVING_SYSTEM_ID_COMM = 0xd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69; + struct AlignedArgs { bytes32 proofCommitment; bytes32 provingSystemAuxDataCommitment; @@ -22,27 +27,30 @@ contract MinaAccountValidation { aligned = AlignedLayerServiceManager(_alignedServiceAddr); } - function validateAccount( - AlignedArgs calldata args - ) external view returns (bool) { + function validateAccount(AlignedArgs calldata args) external view returns (bool) { + if (args.provingSystemAuxDataCommitment != PROVING_SYSTEM_ID_COMM) { + revert MinaAccountProvingSystemIdIsNotValid(); + } + bytes32 pubInputCommitment = keccak256(args.pubInput); - return - aligned.verifyBatchInclusion( - args.proofCommitment, - pubInputCommitment, - args.provingSystemAuxDataCommitment, - args.proofGeneratorAddr, - args.batchMerkleRoot, - args.merkleProof, - args.verificationDataBatchIndex, - args.batcherPaymentService - ); + return aligned.verifyBatchInclusion( + args.proofCommitment, + pubInputCommitment, + args.provingSystemAuxDataCommitment, + args.proofGeneratorAddr, + args.batchMerkleRoot, + args.merkleProof, + args.verificationDataBatchIndex, + args.batcherPaymentService + ); } - function validateAccountAndReturn( - AlignedArgs calldata args - ) external view returns (Account memory) { + function validateAccountAndReturn(AlignedArgs calldata args) external view returns (Account memory) { + if (args.provingSystemAuxDataCommitment != PROVING_SYSTEM_ID_COMM) { + revert MinaAccountProvingSystemIdIsNotValid(); + } + bytes32 pubInputCommitment = keccak256(args.pubInput); bool isAccountVerified = aligned.verifyBatchInclusion( diff --git a/contract/src/MinaStateSettlement.sol b/contract/src/MinaStateSettlement.sol index 9f9ef27e..10a0d9e7 100644 --- a/contract/src/MinaStateSettlement.sol +++ b/contract/src/MinaStateSettlement.sol @@ -3,12 +3,16 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; +error MinaProvingSystemIdIsNotValid(bytes32); // f92aa66a error NewStateIsNotValid(); // 114602f0 error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); // bbd80128 error AccountIsNotValid(bytes32 accountIdHash); /// @title Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain. contract MinaStateSettlement { + /// @notice The commitment to Mina proving system ID. + bytes32 constant PROVING_SYSTEM_ID_COMM = 0xee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc; + /// @notice The length of the verified state chain (also called the bridge's transition /// frontier) to store. uint256 public constant BRIDGE_TRANSITION_FRONTIER_LEN = 16; @@ -39,30 +43,19 @@ contract MinaStateSettlement { } /// @notice Returns the latest verified chain state hashes. - function getChainStateHashes() - external - view - returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) - { + function getChainStateHashes() external view returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) { return chainStateHashes; } /// @notice Returns the latest verified chain ledger hashes. - function getChainLedgerHashes() - external - view - returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) - { + function getChainLedgerHashes() external view returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) { return chainLedgerHashes; } /// @notice Returns true if this snarked ledger hash was bridged. function isLedgerVerified(bytes32 ledgerHash) external view returns (bool) { for (uint256 i = 0; i < BRIDGE_TRANSITION_FRONTIER_LEN; i++) { - if ( - chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1 - i] == - ledgerHash - ) { + if (chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1 - i] == ledgerHash) { return true; } } @@ -79,19 +72,17 @@ contract MinaStateSettlement { bytes memory pubInput, address batcherPaymentService ) external { + if (provingSystemAuxDataCommitment != PROVING_SYSTEM_ID_COMM) { + revert MinaProvingSystemIdIsNotValid(provingSystemAuxDataCommitment); + } + bytes32 pubInputBridgeTipStateHash; assembly { pubInputBridgeTipStateHash := mload(add(pubInput, 0x20)) } - if ( - pubInputBridgeTipStateHash != - chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] - ) { - revert TipStateIsWrong( - pubInputBridgeTipStateHash, - chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] - ); + if (pubInputBridgeTipStateHash != chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]) { + revert TipStateIsWrong(pubInputBridgeTipStateHash, chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]); } bytes32 pubInputCommitment = keccak256(pubInput); @@ -118,16 +109,9 @@ contract MinaStateSettlement { // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are state hashes. let addr_states := add(pubInput, 64) // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are ledger hashes. - let addr_ledgers := add( - addr_states, - mul(32, BRIDGE_TRANSITION_FRONTIER_LEN) - ) - - for { - let i := 0 - } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { - i := add(i, 1) - } { + let addr_ledgers := add(addr_states, mul(32, BRIDGE_TRANSITION_FRONTIER_LEN)) + + for { let i := 0 } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { i := add(i, 1) } { sstore(slot_states, mload(addr_states)) addr_states := add(addr_states, 32) slot_states := add(slot_states, 1) diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index 1b92c02a..50c95034 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -3,7 +3,7 @@ use log::{debug, error, info}; use mina_bridge_core::{ eth::{ deploy_mina_account_validation_contract, deploy_mina_bridge_contract, - MinaAccountValidationConstructorArgs, MinaBridgeConstructorArgs, SolStateHash, + MinaAccountValidationConstructorArgs, MinaStateSettlementConstructorArgs, SolStateHash, }, mina::query_root, utils::{ @@ -53,8 +53,8 @@ async fn main() { _ => todo!(), }; - let bridge_constructor_args = MinaBridgeConstructorArgs::new(aligned_sm_addr, root_hash) - .unwrap_or_else(|err| { + let bridge_constructor_args = + MinaStateSettlementConstructorArgs::new(aligned_sm_addr, root_hash).unwrap_or_else(|err| { error!("Failed to make constructor args for bridge contract call: {err}"); process::exit(1); }); diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json index 8369e6e2..6e98cf59 100644 --- a/core/abi/MinaAccountValidation.json +++ b/core/abi/MinaAccountValidation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b506040516114f93803806114f9833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b61146c8061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e61004936600461056b565b610083565b60405190151581526020015b60405180910390f35b61007661007136600461056b565b610171565b60405161005a919061094b565b60008061009360c0840184610a7d565b6040516100a1929190610aca565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906100dd9060608a01908a01610ada565b60608901356100ef60808b018b610a7d565b60a08c01356101056101008e0160e08f01610b09565b6040518a63ffffffff1660e01b815260040161012999989796959493929190610b32565b602060405180830381865afa158015610146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016a9190610bc0565b9392505050565b61017961029d565b600061018860c0840184610a7d565b604051610196929190610aca565b604080519182900390912060008054919350916001600160a01b03909116906306045a919086359085906020890135906101d69060608b01908b01610ada565b60608a01356101e860808c018c610a7d565b8c60a001358d60e00160208101906102009190610b09565b6040518a63ffffffff1660e01b815260040161022499989796959493929190610b32565b602060405180830381865afa158015610241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102659190610bc0565b905080156100365761027a60c0850185610a7d565b610288916028908290610bdd565b8101906102959190611316565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016103a0604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016103ad6103b2565b905290565b6040518060e001604052806103c56103ff565b81526020016103d261041e565b8152600060208201526040016103e661043d565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016103ad61045b565b6040518060a001604052806005906020820280368337509192915050565b60405180610100016040528061046f610506565b815260200161047c61053f565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816105155790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e60208201610515565b60006020828403121561057d57600080fd5b81356001600160401b0381111561059357600080fd5b8201610100818503121561016a57600080fd5b6000815180845260005b818110156105cc576020818501810151868301820152016105b0565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b60058110610612576106126105ec565b9052565b610621828251610602565b60208101516106336020840182610602565b5060408101516106466040840182610602565b5060608101516106596060840182610602565b50608081015161066c6080840182610602565b5060a081015161067f60a0840182610602565b5060c081015161069260c0840182610602565b5060e08101516106aa60e084018263ffffffff169052565b50610100808201516106be82850182610602565b5050610120808201516106d382850182610602565b5050610140808201516106e882850182610602565b5050610160808201516106fd82850182610602565b50506101808082015161071282850182610602565b50506101a08082015161072782850182610602565b50505050565b60038110610612576106126105ec565b8060005b600f8110156107275761075f84835180518252602090810151910152565b6040939093019260209190910190600101610741565b61078082825161072d565b602080820151610793602085018261072d565b50604082810151805160008684015b60078210156107d2576107c081845180518252602090810151910152565b918501916001919091019084016107a2565b505050602081015192506107ea61020086018461073d565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e090910151805161070087015290810151610720860152915061087c9050565b505050565b8060005b6005811015610727578151845260209384019390910190600101610885565b80516000906109609084835b60088110156108cf5782518252602092830192909101906001016108b0565b50505060208301516108e5610100860182610775565b50604083015163ffffffff16610840850152606083015161090a610860860182610881565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610942828601826105a6565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526109896103e08501836105a6565b915060608501516109a560a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006109e281870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610a57610200880184610616565b870151868503601f1901848801529150610a73905083826108a4565b9695505050505050565b6000808335601e19843603018112610a9457600080fd5b8301803591506001600160401b03821115610aae57600080fd5b602001915036819003821315610ac357600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610aec57600080fd5b81356bffffffffffffffffffffffff198116811461016a57600080fd5b600060208284031215610b1b57600080fd5b81356001600160a01b038116811461016a57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610bbd57600080fd5b50565b600060208284031215610bd257600080fd5b815161016a81610baf565b60008085851115610bed57600080fd5b83861115610bfa57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610c3f57610c3f610c07565b60405290565b6040516101c081016001600160401b0381118282101715610c3f57610c3f610c07565b604051606081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161010081016001600160401b0381118282101715610c3f57610c3f610c07565b60405160e081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161016081016001600160401b0381118282101715610c3f57610c3f610c07565b8035610cfd81610baf565b919050565b600060408284031215610d1457600080fd5b610d1c610c1d565b9050813581526020820135610d3081610baf565b602082015292915050565b600082601f830112610d4c57600080fd5b81356001600160401b0380821115610d6657610d66610c07565b604051601f8301601f19908116603f01168101908282118183101715610d8e57610d8e610c07565b81604052838152866020858801011115610da757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610cfd57600080fd5b803563ffffffff81168114610cfd57600080fd5b600060a08284031215610e0457600080fd5b60405160a081018181106001600160401b0382111715610e2657610e26610c07565b604052905080610e3583610dc7565b8152610e4360208401610dde565b6020820152610e5460408401610dc7565b6040820152610e6560608401610dde565b6060820152610e7660808401610dc7565b60808201525092915050565b803560058110610cfd57600080fd5b60006101c08284031215610ea457600080fd5b610eac610c45565b9050610eb782610e82565b8152610ec560208301610e82565b6020820152610ed660408301610e82565b6040820152610ee760608301610e82565b6060820152610ef860808301610e82565b6080820152610f0960a08301610e82565b60a0820152610f1a60c08301610e82565b60c0820152610f2b60e08301610dde565b60e0820152610100610f3e818401610e82565b90820152610120610f50838201610e82565b90820152610140610f62838201610e82565b90820152610160610f74838201610e82565b90820152610180610f86838201610e82565b908201526101a0610f98838201610e82565b9082015292915050565b600082601f830112610fb357600080fd5b610fbb610c8a565b80610100840185811115610fce57600080fd5b845b81811015610fe8578035845260209384019301610fd0565b509095945050505050565b803560038110610cfd57600080fd5b60006040828403121561101457600080fd5b61101c610c1d565b9050813581526020820135602082015292915050565b600082601f83011261104357600080fd5b61104b610cad565b806101c084018581111561105e57600080fd5b845b81811015610fe8576110728782611002565b8452602090930192604001611060565b600082601f83011261109357600080fd5b604080516101e081018181106001600160401b03821117156110b7576110b7610c07565b604052806103c08501868111156110cd57600080fd5b855b818110156110f0576110e18882611002565b835260209092019184016110cf565b50919695505050505050565b600081830361074081121561111057600080fd5b611118610c68565b915061112383610ff3565b825261113160208401610ff3565b602083015261070080603f198301121561114a57600080fd5b611152610c8a565b91506111618560408601611032565b8252611171856102008601611082565b6020830152611184856105c08601611002565b6040830152611197856106008601611002565b60608301526111aa856106408601611002565b60808301526111bd856106808601611002565b60a08301526111d0856106c08601611002565b60c08301526111e185828601611002565b60e083015250604082015292915050565b600082601f83011261120357600080fd5b60405160a081018181106001600160401b038211171561122557611225610c07565b6040528060a084018581111561123a57600080fd5b845b8181101561125457803583526020928301920161123c565b509195945050505050565b6000610960828403121561127257600080fd5b61127a610cad565b90506112868383610fa2565b81526112968361010084016110fc565b60208201526112a86108408301610dde565b60408201526112bb8361086084016111f2565b60608201526112cd6109008301610dde565b60808201526112df6109208301610cf2565b60a08201526109408201356001600160401b038111156112fe57600080fd5b61130a84828501610d3b565b60c08301525092915050565b60006020828403121561132857600080fd5b81356001600160401b038082111561133f57600080fd5b908301906103c0828603121561135457600080fd5b61135c610ccf565b6113668684610d02565b81526040830135602082015260608301358281111561138457600080fd5b61139087828601610d3b565b6040830152506113a260808401610dc7565b60608201526113b360a08401610dde565b608082015260c083013560a08201526113cf8660e08501610d02565b60c08201526101208084013560e08301526101406113ef88828701610df2565b610100840152611403886101e08701610e91565b828401526103a085013591508382111561141c57600080fd5b6114288883870161125f565b90830152509594505050505056fea264697066735822122012c64260048c4a98dbb1d0cd693dd6b9dbb2349cdb0bea92e6d3a633caf45b9c64736f6c63430008190033","sourceMap":"140:3952:63:-:0;;;604:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;663:7;:57;;-1:-1:-1;;;;;;663:57:63;-1:-1:-1;;;;;663:57:63;;;;;;;;;;140:3952;;14:298:66;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:66;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:66:o;:::-;140:3952:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e61004936600461056b565b610083565b60405190151581526020015b60405180910390f35b61007661007136600461056b565b610171565b60405161005a919061094b565b60008061009360c0840184610a7d565b6040516100a1929190610aca565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906100dd9060608a01908a01610ada565b60608901356100ef60808b018b610a7d565b60a08c01356101056101008e0160e08f01610b09565b6040518a63ffffffff1660e01b815260040161012999989796959493929190610b32565b602060405180830381865afa158015610146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016a9190610bc0565b9392505050565b61017961029d565b600061018860c0840184610a7d565b604051610196929190610aca565b604080519182900390912060008054919350916001600160a01b03909116906306045a919086359085906020890135906101d69060608b01908b01610ada565b60608a01356101e860808c018c610a7d565b8c60a001358d60e00160208101906102009190610b09565b6040518a63ffffffff1660e01b815260040161022499989796959493929190610b32565b602060405180830381865afa158015610241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102659190610bc0565b905080156100365761027a60c0850185610a7d565b610288916028908290610bdd565b8101906102959190611316565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016103a0604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016103ad6103b2565b905290565b6040518060e001604052806103c56103ff565b81526020016103d261041e565b8152600060208201526040016103e661043d565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016103ad61045b565b6040518060a001604052806005906020820280368337509192915050565b60405180610100016040528061046f610506565b815260200161047c61053f565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816105155790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e60208201610515565b60006020828403121561057d57600080fd5b81356001600160401b0381111561059357600080fd5b8201610100818503121561016a57600080fd5b6000815180845260005b818110156105cc576020818501810151868301820152016105b0565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b60058110610612576106126105ec565b9052565b610621828251610602565b60208101516106336020840182610602565b5060408101516106466040840182610602565b5060608101516106596060840182610602565b50608081015161066c6080840182610602565b5060a081015161067f60a0840182610602565b5060c081015161069260c0840182610602565b5060e08101516106aa60e084018263ffffffff169052565b50610100808201516106be82850182610602565b5050610120808201516106d382850182610602565b5050610140808201516106e882850182610602565b5050610160808201516106fd82850182610602565b50506101808082015161071282850182610602565b50506101a08082015161072782850182610602565b50505050565b60038110610612576106126105ec565b8060005b600f8110156107275761075f84835180518252602090810151910152565b6040939093019260209190910190600101610741565b61078082825161072d565b602080820151610793602085018261072d565b50604082810151805160008684015b60078210156107d2576107c081845180518252602090810151910152565b918501916001919091019084016107a2565b505050602081015192506107ea61020086018461073d565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e090910151805161070087015290810151610720860152915061087c9050565b505050565b8060005b6005811015610727578151845260209384019390910190600101610885565b80516000906109609084835b60088110156108cf5782518252602092830192909101906001016108b0565b50505060208301516108e5610100860182610775565b50604083015163ffffffff16610840850152606083015161090a610860860182610881565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610942828601826105a6565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526109896103e08501836105a6565b915060608501516109a560a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006109e281870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610a57610200880184610616565b870151868503601f1901848801529150610a73905083826108a4565b9695505050505050565b6000808335601e19843603018112610a9457600080fd5b8301803591506001600160401b03821115610aae57600080fd5b602001915036819003821315610ac357600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610aec57600080fd5b81356bffffffffffffffffffffffff198116811461016a57600080fd5b600060208284031215610b1b57600080fd5b81356001600160a01b038116811461016a57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610bbd57600080fd5b50565b600060208284031215610bd257600080fd5b815161016a81610baf565b60008085851115610bed57600080fd5b83861115610bfa57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610c3f57610c3f610c07565b60405290565b6040516101c081016001600160401b0381118282101715610c3f57610c3f610c07565b604051606081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161010081016001600160401b0381118282101715610c3f57610c3f610c07565b60405160e081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161016081016001600160401b0381118282101715610c3f57610c3f610c07565b8035610cfd81610baf565b919050565b600060408284031215610d1457600080fd5b610d1c610c1d565b9050813581526020820135610d3081610baf565b602082015292915050565b600082601f830112610d4c57600080fd5b81356001600160401b0380821115610d6657610d66610c07565b604051601f8301601f19908116603f01168101908282118183101715610d8e57610d8e610c07565b81604052838152866020858801011115610da757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610cfd57600080fd5b803563ffffffff81168114610cfd57600080fd5b600060a08284031215610e0457600080fd5b60405160a081018181106001600160401b0382111715610e2657610e26610c07565b604052905080610e3583610dc7565b8152610e4360208401610dde565b6020820152610e5460408401610dc7565b6040820152610e6560608401610dde565b6060820152610e7660808401610dc7565b60808201525092915050565b803560058110610cfd57600080fd5b60006101c08284031215610ea457600080fd5b610eac610c45565b9050610eb782610e82565b8152610ec560208301610e82565b6020820152610ed660408301610e82565b6040820152610ee760608301610e82565b6060820152610ef860808301610e82565b6080820152610f0960a08301610e82565b60a0820152610f1a60c08301610e82565b60c0820152610f2b60e08301610dde565b60e0820152610100610f3e818401610e82565b90820152610120610f50838201610e82565b90820152610140610f62838201610e82565b90820152610160610f74838201610e82565b90820152610180610f86838201610e82565b908201526101a0610f98838201610e82565b9082015292915050565b600082601f830112610fb357600080fd5b610fbb610c8a565b80610100840185811115610fce57600080fd5b845b81811015610fe8578035845260209384019301610fd0565b509095945050505050565b803560038110610cfd57600080fd5b60006040828403121561101457600080fd5b61101c610c1d565b9050813581526020820135602082015292915050565b600082601f83011261104357600080fd5b61104b610cad565b806101c084018581111561105e57600080fd5b845b81811015610fe8576110728782611002565b8452602090930192604001611060565b600082601f83011261109357600080fd5b604080516101e081018181106001600160401b03821117156110b7576110b7610c07565b604052806103c08501868111156110cd57600080fd5b855b818110156110f0576110e18882611002565b835260209092019184016110cf565b50919695505050505050565b600081830361074081121561111057600080fd5b611118610c68565b915061112383610ff3565b825261113160208401610ff3565b602083015261070080603f198301121561114a57600080fd5b611152610c8a565b91506111618560408601611032565b8252611171856102008601611082565b6020830152611184856105c08601611002565b6040830152611197856106008601611002565b60608301526111aa856106408601611002565b60808301526111bd856106808601611002565b60a08301526111d0856106c08601611002565b60c08301526111e185828601611002565b60e083015250604082015292915050565b600082601f83011261120357600080fd5b60405160a081018181106001600160401b038211171561122557611225610c07565b6040528060a084018581111561123a57600080fd5b845b8181101561125457803583526020928301920161123c565b509195945050505050565b6000610960828403121561127257600080fd5b61127a610cad565b90506112868383610fa2565b81526112968361010084016110fc565b60208201526112a86108408301610dde565b60408201526112bb8361086084016111f2565b60608201526112cd6109008301610dde565b60808201526112df6109208301610cf2565b60a08201526109408201356001600160401b038111156112fe57600080fd5b61130a84828501610d3b565b60c08301525092915050565b60006020828403121561132857600080fd5b81356001600160401b038082111561133f57600080fd5b908301906103c0828603121561135457600080fd5b61135c610ccf565b6113668684610d02565b81526040830135602082015260608301358281111561138457600080fd5b61139087828601610d3b565b6040830152506113a260808401610dc7565b60608201526113b360a08401610dde565b608082015260c083013560a08201526113cf8660e08501610d02565b60c08201526101208084013560e08301526101406113ef88828701610df2565b610100840152611403886101e08701610e91565b828401526103a085013591508382111561141c57600080fd5b6114288883870161125f565b90830152509594505050505056fea264697066735822122012c64260048c4a98dbb1d0cd693dd6b9dbb2349cdb0bea92e6d3a633caf45b9c64736f6c63430008190033","sourceMap":"140:3952:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:570;;;;;;:::i;:::-;;:::i;:::-;;;672:14:66;;665:22;647:41;;635:2;620:18;733:570:63;;;;;;;;1309:708;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;733:570::-;822:4;;877:13;;;;:4;:13;:::i;:::-;867:24;;;;;;;:::i;:::-;;;;;;;;;;;921:7;;867:24;;-1:-1:-1;;;;;;921:7:63;;:28;;967:20;;;867:24;;1041:35;;;;;1094:23;;;;;;;;;:::i;:::-;1135:20;;;;1173:16;;;;1135:4;1173:16;:::i;:::-;1207:31;;;;1256:26;;;;;;;;:::i;:::-;921:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;902:394;733:570;-1:-1:-1;;;733:570:63:o;1309:708::-;1407:14;;:::i;:::-;1433:26;1472:13;;;;:4;:13;:::i;:::-;1462:24;;;;;;;:::i;:::-;;;;;;;;;;;1497:22;1522:7;;1462:24;;-1:-1:-1;1497:22:63;-1:-1:-1;;;;;1522:7:63;;;;:28;;1564:20;;;1462:24;;1630:35;;;;;1679:23;;;;;;;;;:::i;:::-;1716:20;;;;1750:16;;;;1716:4;1750:16;:::i;:::-;1780:4;:31;;;1825:4;:26;;;;;;;;;;:::i;:::-;1522:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1497:364;;1876:17;1872:139;;;1927:13;;;;:4;:13;:::i;:::-;:22;;1941:6;;1927:22;;;:::i;:::-;1916:45;;;;;;;:::i;:::-;1909:52;1309:708;-1:-1:-1;;;;1309:708:63:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:392:66;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;214:9;201:23;-1:-1:-1;;;;;239:6:66;236:30;233:50;;;279:1;276;269:12;233:50;302:22;;358:3;340:16;;;336:26;333:46;;;375:1;372;365:12;878:423;920:3;958:5;952:12;985:6;980:3;973:19;1010:1;1020:162;1034:6;1031:1;1028:13;1020:162;;;1096:4;1152:13;;;1148:22;;1142:29;1124:11;;;1120:20;;1113:59;1049:12;1020:162;;;1024:3;1227:1;1220:4;1211:6;1206:3;1202:16;1198:27;1191:38;1290:4;1283:2;1279:7;1274:2;1266:6;1262:15;1258:29;1253:3;1249:39;1245:50;1238:57;;;878:423;;;;:::o;1984:127::-;2045:10;2040:3;2036:20;2033:1;2026:31;2076:4;2073:1;2066:15;2100:4;2097:1;2090:15;2116:143;2200:1;2193:5;2190:12;2180:46;;2206:18;;:::i;:::-;2235;;2116:143::o;2264:1834::-;2329:47;2372:3;2364:5;2358:12;2329:47;:::i;:::-;2422:4;2415:5;2411:16;2405:23;2437:58;2489:4;2484:3;2480:14;2466:12;2437:58;:::i;:::-;;2543:4;2536:5;2532:16;2526:23;2558:60;2612:4;2607:3;2603:14;2587;2558:60;:::i;:::-;;2666:4;2659:5;2655:16;2649:23;2681:60;2735:4;2730:3;2726:14;2710;2681:60;:::i;:::-;;2789:4;2782:5;2778:16;2772:23;2804:60;2858:4;2853:3;2849:14;2833;2804:60;:::i;:::-;;2912:4;2905:5;2901:16;2895:23;2927:60;2981:4;2976:3;2972:14;2956;2927:60;:::i;:::-;;3035:4;3028:5;3024:16;3018:23;3050:60;3104:4;3099:3;3095:14;3079;3050:60;:::i;:::-;;3158:4;3151:5;3147:16;3141:23;3173:49;3216:4;3211:3;3207:14;3191;1489:10;1478:22;1466:35;;1413:94;3173:49;;3241:6;3295:2;3288:5;3284:14;3278:21;3308:58;3362:2;3357:3;3353:12;3337:14;3308:58;:::i;:::-;;;3385:6;3439:2;3432:5;3428:14;3422:21;3452:58;3506:2;3501:3;3497:12;3481:14;3452:58;:::i;:::-;;;3529:6;3583:2;3576:5;3572:14;3566:21;3596:58;3650:2;3645:3;3641:12;3625:14;3596:58;:::i;:::-;;;3673:6;3728:2;3721:5;3717:14;3711:21;3741:59;3796:2;3791:3;3787:12;3770:15;3741:59;:::i;:::-;;;3819:6;3874:2;3867:5;3863:14;3857:21;3887:59;3942:2;3937:3;3933:12;3916:15;3887:59;:::i;:::-;;;3965:6;4020:2;4013:5;4009:14;4003:21;4033:59;4088:2;4083:3;4079:12;4062:15;4033:59;:::i;:::-;;;2264:1834;;:::o;4103:145::-;4189:1;4182:5;4179:12;4169:46;;4195:18;;:::i;4409:335::-;4512:5;4535:1;4545:193;4559:4;4556:1;4553:11;4545:193;;;4606:48;4650:3;4641:6;4635:13;4329:12;;4317:25;;4391:4;4380:16;;;4374:23;4358:14;;4351:47;4253:151;4606:48;4683:4;4674:14;;;;;4723:4;4711:17;;;;;4579:1;4572:9;4545:193;;4749:1639;4818:49;4863:3;4855:5;4849:12;4818:49;:::i;:::-;4886:4;4936;4929:5;4925:16;4919:23;4951:60;5005:4;5000:3;4996:14;4982:12;4951:60;:::i;:::-;-1:-1:-1;5030:4:66;5071:16;;;5065:23;5140:21;;5248:1;5107:14;;;5258:195;5272:4;5269:1;5266:11;5258:195;;;5319:50;5363:5;5354:6;5348:13;4329:12;;4317:25;;4391:4;4380:16;;;4374:23;4358:14;;4351:47;4253:151;5319:50;5428:15;;;;5292:1;5285:9;;;;;5391:14;;5258:195;;;5262:3;;;5510:4;5494:14;5490:25;5484:32;5462:54;;5525:65;5585:3;5580;5576:13;5560:14;5525:65;:::i;:::-;5647:4;5627:25;;5621:32;4329:12;;5716:4;5707:14;;4317:25;4391:4;4380:16;;;4374:23;4358:14;;;4351:47;5779:4;5759:25;;5753:32;4329:12;;5848:4;5839:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;5911:4;5891:25;;5885:32;4329:12;;5980:4;5971:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6043:4;6023:25;;6017:32;4329:12;;6112:4;6103:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6175:4;6155:25;;6149:32;4329:12;;6244:4;6235:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6307:4;6287:25;;;6281:32;4329:12;;6376:4;6367:14;;4317:25;4380:16;;;4374:23;4358:14;;;4351:47;6281:32;-1:-1:-1;6322:60:66;;-1:-1:-1;4253:151:66;6322:60;;4749:1639;;:::o;6393:326::-;6486:5;6509:1;6519:194;6533:4;6530:1;6527:11;6519:194;;;6592:13;;6580:26;;6629:4;6653:12;;;;6688:15;;;;6553:1;6546:9;6519:194;;6724:1166;6832:12;;6779:3;;6807:6;;6866:3;6779;6943:200;6957:4;6954:1;6951:11;6943:200;;;7018:13;;7004:28;;7055:4;7118:15;;;;7081:14;;;;6977:1;6970:9;6943:200;;;6947:3;;;7189:4;7182:5;7178:16;7172:23;7204:65;7261:6;7256:3;7252:16;7238:12;7204:65;:::i;:::-;-1:-1:-1;7317:4:66;7306:16;;7300:23;1489:10;1478:22;7375:6;7366:16;;1466:35;7431:4;7420:16;;7414:23;7446:58;7496:6;7487:16;;7414:23;7446:58;:::i;:::-;-1:-1:-1;7552:4:66;7541:16;;7535:23;1489:10;1478:22;7610:6;7601:16;;1466:35;7666:4;7655:16;;7649:23;481:13;474:21;7722:6;7713:16;;462:34;7778:4;7767:16;;7761:23;7809:6;7800:16;;7793:28;;;7837:47;7871:12;;;7761:23;7837:47;:::i;:::-;7830:54;6724:1166;-1:-1:-1;;;;;6724:1166:66:o;7895:1526::-;8076:2;8058:21;;;8124:13;;782:12;;8139:18;;;770:25;847:16;841:23;834:31;827:39;811:14;;;804:63;8212:2;8204:6;8200:15;8194:22;8189:2;8178:9;8174:18;8167:50;8039:4;8264;8256:6;8252:17;8246:24;8289:6;8332:2;8326:3;8315:9;8311:19;8304:31;8358:52;8405:3;8394:9;8390:19;8376:12;8358:52;:::i;:::-;8344:66;;8459:2;8451:6;8447:15;8441:22;8472:54;8521:3;8510:9;8506:19;8490:14;-1:-1:-1;;;;;1371:30:66;1359:43;;1306:102;8472:54;-1:-1:-1;8575:3:66;8563:16;;8557:23;1489:10;1478:22;;8638:3;8623:19;;1466:35;8589:54;8698:3;8690:6;8686:16;8680:23;8674:3;8663:9;8659:19;8652:52;8753:3;8745:6;8741:16;8735:23;8777:3;8789:71;8856:2;8845:9;8841:18;8825:14;782:12;;770:25;;858:4;847:16;;;841:23;834:31;827:39;811:14;;804:63;699:174;8789:71;8897:3;8885:16;;8879:23;8921:3;8940:18;;;8933:30;;;;9000:15;;;8994:22;1625:12;;-1:-1:-1;;;;;1621:21:66;;;9081:3;9066:19;;1609:34;1689:4;1678:16;;1672:23;1714:10;1756:21;;;1740:14;;;1733:45;1831:4;1820:16;;1814:23;1810:32;;1794:14;;;1787:56;1896:4;1885:16;;1879:23;1875:32;1859:14;;;1852:56;1961:4;1950:16;;;1944:23;1940:32;1924:14;;;1917:56;9135:6;9123:19;;9117:26;;-1:-1:-1;9152:66:66;9213:3;9198:19;;9117:26;9152:66;:::i;:::-;9255:15;;9249:22;9311;;;-1:-1:-1;;9307:36:66;9287:18;;;9280:64;9249:22;-1:-1:-1;9361:54:66;;-1:-1:-1;9315:6:66;9249:22;9361:54;:::i;:::-;9353:62;7895:1526;-1:-1:-1;;;;;;7895:1526:66:o;9426:521::-;9503:4;9509:6;9569:11;9556:25;9663:2;9659:7;9648:8;9632:14;9628:29;9624:43;9604:18;9600:68;9590:96;;9682:1;9679;9672:12;9590:96;9709:33;;9761:20;;;-1:-1:-1;;;;;;9793:30:66;;9790:50;;;9836:1;9833;9826:12;9790:50;9869:4;9857:17;;-1:-1:-1;9900:14:66;9896:27;;;9886:38;;9883:58;;;9937:1;9934;9927:12;9883:58;9426:521;;;;;:::o;9952:271::-;10135:6;10127;10122:3;10109:33;10091:3;10161:16;;10186:13;;;10161:16;9952:271;-1:-1:-1;9952:271:66:o;10228:298::-;10287:6;10340:2;10328:9;10319:7;10315:23;10311:32;10308:52;;;10356:1;10353;10346:12;10308:52;10382:23;;-1:-1:-1;;10434:43:66;;10424:54;;10414:82;;10492:1;10489;10482:12;10531:286;10590:6;10643:2;10631:9;10622:7;10618:23;10614:32;10611:52;;;10659:1;10656;10649:12;10611:52;10685:23;;-1:-1:-1;;;;;10737:31:66;;10727:42;;10717:70;;10783:1;10780;10773:12;10822:997;11138:4;11167:3;11197:6;11186:9;11179:25;11240:6;11235:2;11224:9;11220:18;11213:34;11283:6;11278:2;11267:9;11263:18;11256:34;11342:26;11338:31;11330:6;11326:44;11321:2;11310:9;11306:18;11299:72;11408:6;11402:3;11391:9;11387:19;11380:35;11452:2;11446:3;11435:9;11431:19;11424:31;11491:6;11486:2;11475:9;11471:18;11464:34;;11517:3;11570:6;11562;11557:2;11546:9;11542:18;11529:48;11626:1;11597:22;;;11593:31;;11586:42;11730:3;11715:19;;11708:35;;;;-1:-1:-1;;;;;;11780:32:66;;;;11774:3;11759:19;;11752:61;11689:2;11668:15;;;-1:-1:-1;;11664:29:66;11649:45;;;11645:54;;10822:997;-1:-1:-1;;;;;;10822:997:66:o;11824:118::-;11910:5;11903:13;11896:21;11889:5;11886:32;11876:60;;11932:1;11929;11922:12;11876:60;11824:118;:::o;11947:245::-;12014:6;12067:2;12055:9;12046:7;12042:23;12038:32;12035:52;;;12083:1;12080;12073:12;12035:52;12115:9;12109:16;12134:28;12156:5;12134:28;:::i;12197:331::-;12302:9;12313;12355:8;12343:10;12340:24;12337:44;;;12377:1;12374;12367:12;12337:44;12406:6;12396:8;12393:20;12390:40;;;12426:1;12423;12416:12;12390:40;-1:-1:-1;;12452:23:66;;;12497:25;;;;;-1:-1:-1;12197:331:66:o;12533:127::-;12594:10;12589:3;12585:20;12582:1;12575:31;12625:4;12622:1;12615:15;12649:4;12646:1;12639:15;12665:257;12737:4;12731:11;;;12769:17;;-1:-1:-1;;;;;12801:34:66;;12837:22;;;12798:62;12795:88;;;12863:18;;:::i;:::-;12899:4;12892:24;12665:257;:::o;12927:255::-;12999:2;12993:9;13041:6;13029:19;;-1:-1:-1;;;;;13063:34:66;;13099:22;;;13060:62;13057:88;;;13125:18;;:::i;13187:253::-;13259:2;13253:9;13301:4;13289:17;;-1:-1:-1;;;;;13321:34:66;;13357:22;;;13318:62;13315:88;;;13383:18;;:::i;13445:255::-;13517:2;13511:9;13559:6;13547:19;;-1:-1:-1;;;;;13581:34:66;;13617:22;;;13578:62;13575:88;;;13643:18;;:::i;13705:253::-;13777:2;13771:9;13819:4;13807:17;;-1:-1:-1;;;;;13839:34:66;;13875:22;;;13836:62;13833:88;;;13901:18;;:::i;13963:250::-;14030:2;14024:9;14072:6;14060:19;;-1:-1:-1;;;;;14094:34:66;;14130:22;;;14091:62;14088:88;;;14156:18;;:::i;14218:128::-;14283:20;;14312:28;14283:20;14312:28;:::i;:::-;14218:128;;;:::o;14351:362::-;14415:5;14463:4;14451:9;14446:3;14442:19;14438:30;14435:50;;;14481:1;14478;14471:12;14435:50;14503:22;;:::i;:::-;14494:31;;14561:9;14548:23;14541:5;14534:38;14624:2;14613:9;14609:18;14596:32;14637:30;14659:7;14637:30;:::i;:::-;14694:2;14683:14;;14676:31;14687:5;14351:362;-1:-1:-1;;14351:362:66:o;14718:719::-;14761:5;14814:3;14807:4;14799:6;14795:17;14791:27;14781:55;;14832:1;14829;14822:12;14781:55;14868:6;14855:20;-1:-1:-1;;;;;14931:2:66;14927;14924:10;14921:36;;;14937:18;;:::i;:::-;15012:2;15006:9;14980:2;15066:13;;-1:-1:-1;;15062:22:66;;;15086:2;15058:31;15054:40;15042:53;;;15110:18;;;15130:22;;;15107:46;15104:72;;;15156:18;;:::i;:::-;15196:10;15192:2;15185:22;15231:2;15223:6;15216:18;15277:3;15270:4;15265:2;15257:6;15253:15;15249:26;15246:35;15243:55;;;15294:1;15291;15284:12;15243:55;15358:2;15351:4;15343:6;15339:17;15332:4;15324:6;15320:17;15307:54;15405:1;15398:4;15393:2;15385:6;15381:15;15377:26;15370:37;15425:6;15416:15;;;;;;14718:719;;;;:::o;15442:171::-;15509:20;;-1:-1:-1;;;;;15558:30:66;;15548:41;;15538:69;;15603:1;15600;15593:12;15618:163;15685:20;;15745:10;15734:22;;15724:33;;15714:61;;15771:1;15768;15761:12;15786:696;15839:5;15887:4;15875:9;15870:3;15866:19;15862:30;15859:50;;;15905:1;15902;15895:12;15859:50;15938:2;15932:9;15980:4;15972:6;15968:17;16051:6;16039:10;16036:22;-1:-1:-1;;;;;16003:10:66;16000:34;15997:62;15994:88;;;16062:18;;:::i;:::-;16098:2;16091:22;16131:6;-1:-1:-1;16131:6:66;16161:28;16179:9;16161:28;:::i;:::-;16153:6;16146:44;16223:37;16256:2;16245:9;16241:18;16223:37;:::i;:::-;16218:2;16210:6;16206:15;16199:62;16294:37;16327:2;16316:9;16312:18;16294:37;:::i;:::-;16289:2;16281:6;16277:15;16270:62;16365:37;16398:2;16387:9;16383:18;16365:37;:::i;:::-;16360:2;16352:6;16348:15;16341:62;16437:38;16470:3;16459:9;16455:19;16437:38;:::i;:::-;16431:3;16423:6;16419:16;16412:64;;15786:696;;;;:::o;16487:153::-;16565:20;;16614:1;16604:12;;16594:40;;16630:1;16627;16620:12;16645:1421;16703:5;16751:6;16739:9;16734:3;16730:19;16726:32;16723:52;;;16771:1;16768;16761:12;16723:52;16793:22;;:::i;:::-;16784:31;;16838:39;16867:9;16838:39;:::i;:::-;16831:5;16824:54;16910:48;16954:2;16943:9;16939:18;16910:48;:::i;:::-;16905:2;16898:5;16894:14;16887:72;16991:48;17035:2;17024:9;17020:18;16991:48;:::i;:::-;16986:2;16979:5;16975:14;16968:72;17072:48;17116:2;17105:9;17101:18;17072:48;:::i;:::-;17067:2;17060:5;17056:14;17049:72;17154:49;17198:3;17187:9;17183:19;17154:49;:::i;:::-;17148:3;17141:5;17137:15;17130:74;17237:49;17281:3;17270:9;17266:19;17237:49;:::i;:::-;17231:3;17224:5;17220:15;17213:74;17320:49;17364:3;17353:9;17349:19;17320:49;:::i;:::-;17314:3;17307:5;17303:15;17296:74;17403:38;17436:3;17425:9;17421:19;17403:38;:::i;:::-;17397:3;17390:5;17386:15;17379:63;17461:3;17496:48;17540:2;17529:9;17525:18;17496:48;:::i;:::-;17480:14;;;17473:72;17564:3;17599:48;17628:18;;;17599:48;:::i;:::-;17583:14;;;17576:72;17667:3;17702:48;17731:18;;;17702:48;:::i;:::-;17686:14;;;17679:72;17770:3;17805:48;17834:18;;;17805:48;:::i;:::-;17789:14;;;17782:72;17873:3;17908:48;17937:18;;;17908:48;:::i;:::-;17892:14;;;17885:72;17976:3;18011:48;18040:18;;;18011:48;:::i;:::-;17995:14;;;17988:72;17999:5;16645:1421;-1:-1:-1;;16645:1421:66:o;18071:485::-;18121:5;18174:3;18167:4;18159:6;18155:17;18151:27;18141:55;;18192:1;18189;18182:12;18141:55;18216:22;;:::i;:::-;18260:3;18298;18290:6;18286:16;18325:3;18317:6;18314:15;18311:35;;;18342:1;18339;18332:12;18311:35;18366:6;18381:146;18397:6;18392:3;18389:15;18381:146;;;18465:17;;18453:30;;18512:4;18503:14;;;;18414;18381:146;;;-1:-1:-1;18545:5:66;;18071:485;-1:-1:-1;;;;;18071:485:66:o;18561:155::-;18641:20;;18690:1;18680:12;;18670:40;;18706:1;18703;18696:12;18721:285;18778:5;18826:4;18814:9;18809:3;18805:19;18801:30;18798:50;;;18844:1;18841;18834:12;18798:50;18866:22;;:::i;:::-;18857:31;;18924:9;18911:23;18904:5;18897:38;18995:2;18984:9;18980:18;18967:32;18962:2;18955:5;18951:14;18944:56;18721:285;;;;:::o;19011:516::-;19071:5;19124:3;19117:4;19109:6;19105:17;19101:27;19091:55;;19142:1;19139;19132:12;19091:55;19166:22;;:::i;:::-;19210:3;19248;19240:6;19236:16;19275:3;19267:6;19264:15;19261:35;;;19292:1;19289;19282:12;19261:35;19316:6;19331:167;19347:6;19342:3;19339:15;19331:167;;;19415:38;19449:3;19444;19415:38;:::i;:::-;19403:51;;19483:4;19474:14;;;;19373:4;19364:14;19331:167;;19532:720;19614:5;19667:3;19660:4;19652:6;19648:17;19644:27;19634:55;;19685:1;19682;19675:12;19634:55;19708:2;19739;19733:9;19781:3;19773:6;19769:16;19851:6;19839:10;19836:22;-1:-1:-1;;;;;19803:10:66;19800:34;19797:62;19794:88;;;19862:18;;:::i;:::-;19898:2;19891:22;19933:6;19974:3;19962:16;;19990:15;;;19987:35;;;20018:1;20015;20008:12;19987:35;20042:6;20057:165;20073:6;20068:3;20065:15;20057:165;;;20139:38;20173:3;20168;20139:38;:::i;:::-;20127:51;;20207:4;20198:14;;;;20090:12;;20057:165;;;-1:-1:-1;20240:6:66;;19532:720;-1:-1:-1;;;;;;19532:720:66:o;20257:1264::-;20319:5;20358:9;20353:3;20349:19;20388:6;20384:2;20380:15;20377:35;;;20408:1;20405;20398:12;20377:35;20430:22;;:::i;:::-;20421:31;;20475:41;20506:9;20475:41;:::i;:::-;20468:5;20461:56;20549:50;20595:2;20584:9;20580:18;20549:50;:::i;:::-;20544:2;20537:5;20533:14;20526:74;20619:6;20659:2;20653;20649:7;20645:2;20641:16;20637:25;20634:45;;;20675:1;20672;20665:12;20634:45;20703:22;;:::i;:::-;20688:37;;20750:59;20805:3;20800:2;20789:9;20785:18;20750:59;:::i;:::-;20741:7;20734:76;20844:82;20922:3;20916;20905:9;20901:19;20844:82;:::i;:::-;20839:2;20830:7;20826:16;20819:108;20961:55;21012:3;21005:4;20994:9;20990:20;20961:55;:::i;:::-;20956:2;20947:7;20943:16;20936:81;21053:55;21104:3;21097:4;21086:9;21082:20;21053:55;:::i;:::-;21046:4;21037:7;21033:18;21026:83;21145:55;21196:3;21189:4;21178:9;21174:20;21145:55;:::i;:::-;21138:4;21129:7;21125:18;21118:83;21237:55;21288:3;21281:4;21270:9;21266:20;21237:55;:::i;:::-;21230:4;21221:7;21217:18;21210:83;21329:55;21380:3;21373:4;21362:9;21358:20;21329:55;:::i;:::-;21322:4;21313:7;21309:18;21302:83;21421:53;21470:3;21465:2;21454:9;21450:18;21421:53;:::i;:::-;21414:4;21401:18;;21394:81;-1:-1:-1;21502:2:66;21491:14;;21484:31;21495:5;20257:1264;-1:-1:-1;;20257:1264:66:o;21526:659::-;21587:5;21640:3;21633:4;21625:6;21621:17;21617:27;21607:55;;21658:1;21655;21648:12;21607:55;21691:2;21685:9;21733:3;21725:6;21721:16;21803:6;21791:10;21788:22;-1:-1:-1;;;;;21755:10:66;21752:34;21749:62;21746:88;;;21814:18;;:::i;:::-;21850:2;21843:22;21885:6;21926:3;21914:16;;21942:15;;;21939:35;;;21970:1;21967;21960:12;21939:35;21994:6;22009:146;22025:6;22020:3;22017:15;22009:146;;;22093:17;;22081:30;;22140:4;22131:14;;;;22042;22009:146;;;-1:-1:-1;22173:6:66;;21526:659;-1:-1:-1;;;;;21526:659:66:o;22190:849::-;22249:5;22297:6;22285:9;22280:3;22276:19;22272:32;22269:52;;;22317:1;22314;22307:12;22269:52;22339:22;;:::i;:::-;22330:31;;22384:40;22420:3;22409:9;22384:40;:::i;:::-;22377:5;22370:55;22459:59;22514:3;22508;22497:9;22493:19;22459:59;:::i;:::-;22452:4;22445:5;22441:16;22434:85;22553:39;22586:4;22575:9;22571:20;22553:39;:::i;:::-;22546:4;22539:5;22535:16;22528:65;22627:62;22685:3;22678:4;22667:9;22663:20;22627:62;:::i;:::-;22620:4;22613:5;22609:16;22602:88;22724:39;22757:4;22746:9;22742:20;22724:39;:::i;:::-;22717:4;22710:5;22706:16;22699:65;22798:37;22829:4;22818:9;22814:20;22798:37;:::i;:::-;22791:4;22784:5;22780:16;22773:63;22887:4;22876:9;22872:20;22859:34;-1:-1:-1;;;;;22908:6:66;22905:30;22902:50;;;22948:1;22945;22938:12;22902:50;22986:46;23028:3;23019:6;23008:9;23004:22;22986:46;:::i;:::-;22979:4;22972:5;22968:16;22961:72;;22190:849;;;;:::o;23044:1494::-;23129:6;23182:2;23170:9;23161:7;23157:23;23153:32;23150:52;;;23198:1;23195;23188:12;23150:52;23238:9;23225:23;-1:-1:-1;;;;;23308:2:66;23300:6;23297:14;23294:34;;;23324:1;23321;23314:12;23294:34;23347:22;;;;23403:6;23385:16;;;23381:29;23378:49;;;23423:1;23420;23413:12;23378:49;23449:17;;:::i;:::-;23489:48;23529:7;23525:2;23489:48;:::i;:::-;23482:5;23475:63;23591:2;23587;23583:11;23570:25;23565:2;23558:5;23554:14;23547:49;23642:2;23638;23634:11;23621:25;23671:2;23661:8;23658:16;23655:36;;;23687:1;23684;23677:12;23655:36;23723:45;23760:7;23749:8;23745:2;23741:17;23723:45;:::i;:::-;23718:2;23711:5;23707:14;23700:69;;23801:31;23827:3;23823:2;23819:12;23801:31;:::i;:::-;23796:2;23789:5;23785:14;23778:55;23866:31;23892:3;23888:2;23884:12;23866:31;:::i;:::-;23860:3;23853:5;23849:15;23842:56;23952:3;23948:2;23944:12;23931:26;23925:3;23918:5;23914:15;23907:51;23991:58;24041:7;24035:3;24031:2;24027:12;23991:58;:::i;:::-;23985:3;23978:5;23974:15;23967:83;24069:3;24126:2;24122;24118:11;24105:25;24099:3;24092:5;24088:15;24081:50;24150:3;24189:46;24227:7;24222:2;24218;24214:11;24189:46;:::i;:::-;24180:6;24173:5;24169:18;24162:74;24268:52;24312:7;24306:3;24302:2;24298:12;24268:52;:::i;:::-;24263:2;24256:5;24252:14;24245:76;24367:3;24363:2;24359:12;24346:26;24330:42;;24397:2;24387:8;24384:16;24381:36;;;24413:1;24410;24403:12;24381:36;24449:58;24499:7;24488:8;24484:2;24480:17;24449:58;:::i;:::-;24433:14;;;24426:82;-1:-1:-1;24437:5:66;23044:1494;-1:-1:-1;;;;;23044:1494:66:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"MinaAccountProvingSystemIdIsNotValid","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161157b38038061157b83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6114e8806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109c8565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610afa565b6040516100e6929190610b47565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b57565b606089013561013460808b018b610afa565b60a08c013561014a6101008e0160e08f01610b86565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610baf565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c3d565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610afa565b60405161021f929190610b47565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b57565b60608a013561027160808c018c610afa565b8c60a001358d60e00160208101906102899190610b86565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610baf565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c3d565b905080156100365761030360c0850185610afa565b610311916028908290610c5a565b81019061031e9190611392565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081b828501826107b6565b50604082810151805160008684015b600782101561085a5761084881845180518252602090810151910152565b9185019160019190910190840161082a565b50505091820151916108706102008601846107c6565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b60058110156107b0578151845260209384019390910190600101610902565b80516000906109609084835b600881101561094c57825182526020928301929091019060010161092d565b50505060208301516109626101008601826107fe565b50604083015163ffffffff1661084085015260608301516109876108608601826108fe565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109bf8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a066103e085018361062f565b91506060850151610a2260a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a5f81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ad461020088018461069f565b870151868503601f1901848801529150610af090508382610921565b9695505050505050565b6000808335601e19843603018112610b1157600080fd5b8301803591506001600160401b03821115610b2b57600080fd5b602001915036819003821315610b4057600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b6957600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610b9857600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c3a57600080fd5b50565b600060208284031215610c4f57600080fd5b81516101af81610c2c565b60008085851115610c6a57600080fd5b83861115610c7757600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cbc57610cbc610c84565b60405290565b6040516101c081016001600160401b0381118282101715610cbc57610cbc610c84565b604051606081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161010081016001600160401b0381118282101715610cbc57610cbc610c84565b60405160e081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161016081016001600160401b0381118282101715610cbc57610cbc610c84565b8035610d7a81610c2c565b919050565b600060408284031215610d9157600080fd5b610d99610c9a565b9050813581526020820135610dad81610c2c565b602082015292915050565b600082601f830112610dc957600080fd5b81356001600160401b0380821115610de357610de3610c84565b604051601f8301601f19908116603f01168101908282118183101715610e0b57610e0b610c84565b81604052838152866020858801011115610e2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d7a57600080fd5b803563ffffffff81168114610d7a57600080fd5b600060a08284031215610e8157600080fd5b60405160a081018181106001600160401b0382111715610ea357610ea3610c84565b604052905080610eb283610e44565b8152610ec060208401610e5b565b6020820152610ed160408401610e44565b6040820152610ee260608401610e5b565b6060820152610ef360808401610e44565b60808201525092915050565b803560058110610d7a57600080fd5b60006101c08284031215610f2157600080fd5b610f29610cc2565b9050610f3482610eff565b8152610f4260208301610eff565b6020820152610f5360408301610eff565b6040820152610f6460608301610eff565b6060820152610f7560808301610eff565b6080820152610f8660a08301610eff565b60a0820152610f9760c08301610eff565b60c0820152610fa860e08301610e5b565b60e0820152610100610fbb818401610eff565b90820152610120610fcd838201610eff565b90820152610140610fdf838201610eff565b90820152610160610ff1838201610eff565b90820152610180611003838201610eff565b908201526101a0611015838201610eff565b9082015292915050565b600082601f83011261103057600080fd5b611038610d07565b8061010084018581111561104b57600080fd5b845b8181101561106557803584526020938401930161104d565b509095945050505050565b803560038110610d7a57600080fd5b60006040828403121561109157600080fd5b611099610c9a565b9050813581526020820135602082015292915050565b600082601f8301126110c057600080fd5b6110c8610d2a565b806101c08401858111156110db57600080fd5b845b81811015611065576110ef878261107f565b84526020909301926040016110dd565b600082601f83011261111057600080fd5b604080516101e081018181106001600160401b038211171561113457611134610c84565b8252806103c085018681111561114957600080fd5b855b8181101561116c5761115d888261107f565b8352602090920191840161114b565b50919695505050505050565b600081830361074081121561118c57600080fd5b611194610ce5565b915061119f83611070565b82526111ad60208401611070565b602083015261070080603f19830112156111c657600080fd5b6111ce610d07565b91506111dd85604086016110af565b82526111ed8561020086016110ff565b6020830152611200856105c0860161107f565b604083015261121385610600860161107f565b606083015261122685610640860161107f565b608083015261123985610680860161107f565b60a083015261124c856106c0860161107f565b60c083015261125d8582860161107f565b60e083015250604082015292915050565b600082601f83011261127f57600080fd5b60405160a081018181106001600160401b03821117156112a1576112a1610c84565b6040528060a08401858111156112b657600080fd5b845b818110156112d05780358352602092830192016112b8565b509195945050505050565b600061096082840312156112ee57600080fd5b6112f6610d2a565b9050611302838361101f565b8152611312836101008401611178565b60208201526113246108408301610e5b565b604082015261133783610860840161126e565b60608201526113496109008301610e5b565b608082015261135b6109208301610d6f565b60a08201526109408201356001600160401b0381111561137a57600080fd5b61138684828501610db8565b60c08301525092915050565b6000602082840312156113a457600080fd5b81356001600160401b03808211156113bb57600080fd5b908301906103c082860312156113d057600080fd5b6113d8610d4c565b6113e28684610d7f565b81526040830135602082015260608301358281111561140057600080fd5b61140c87828601610db8565b60408301525061141e60808401610e44565b606082015261142f60a08401610e5b565b608082015260c083013560a082015261144b8660e08501610d7f565b60c08201526101208084013560e083015261014061146b88828701610e6f565b61010084015261147f886101e08701610f0e565b828401526103a085013591508382111561149857600080fd5b6114a4888387016112db565b90830152509594505050505056fea264697066735822122043caced17afc14e16194f9234a758555b6f2e0da83d42eeeef6b17990bf04b8b64736f6c63430008150033","sourceMap":"199:4351:38:-:0;;;844:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;903:7;:57;;-1:-1:-1;;;;;;903:57:38;-1:-1:-1;;;;;903:57:38;;;;;;;;;;199:4351;;14:298:40;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:40;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:40:o;:::-;199:4351:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109c8565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610afa565b6040516100e6929190610b47565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b57565b606089013561013460808b018b610afa565b60a08c013561014a6101008e0160e08f01610b86565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610baf565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c3d565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610afa565b60405161021f929190610b47565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b57565b60608a013561027160808c018c610afa565b8c60a001358d60e00160208101906102899190610b86565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610baf565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c3d565b905080156100365761030360c0850185610afa565b610311916028908290610c5a565b81019061031e9190611392565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081b828501826107b6565b50604082810151805160008684015b600782101561085a5761084881845180518252602090810151910152565b9185019160019190910190840161082a565b50505091820151916108706102008601846107c6565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b60058110156107b0578151845260209384019390910190600101610902565b80516000906109609084835b600881101561094c57825182526020928301929091019060010161092d565b50505060208301516109626101008601826107fe565b50604083015163ffffffff1661084085015260608301516109876108608601826108fe565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109bf8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a066103e085018361062f565b91506060850151610a2260a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a5f81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ad461020088018461069f565b870151868503601f1901848801529150610af090508382610921565b9695505050505050565b6000808335601e19843603018112610b1157600080fd5b8301803591506001600160401b03821115610b2b57600080fd5b602001915036819003821315610b4057600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b6957600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610b9857600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c3a57600080fd5b50565b600060208284031215610c4f57600080fd5b81516101af81610c2c565b60008085851115610c6a57600080fd5b83861115610c7757600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cbc57610cbc610c84565b60405290565b6040516101c081016001600160401b0381118282101715610cbc57610cbc610c84565b604051606081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161010081016001600160401b0381118282101715610cbc57610cbc610c84565b60405160e081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161016081016001600160401b0381118282101715610cbc57610cbc610c84565b8035610d7a81610c2c565b919050565b600060408284031215610d9157600080fd5b610d99610c9a565b9050813581526020820135610dad81610c2c565b602082015292915050565b600082601f830112610dc957600080fd5b81356001600160401b0380821115610de357610de3610c84565b604051601f8301601f19908116603f01168101908282118183101715610e0b57610e0b610c84565b81604052838152866020858801011115610e2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d7a57600080fd5b803563ffffffff81168114610d7a57600080fd5b600060a08284031215610e8157600080fd5b60405160a081018181106001600160401b0382111715610ea357610ea3610c84565b604052905080610eb283610e44565b8152610ec060208401610e5b565b6020820152610ed160408401610e44565b6040820152610ee260608401610e5b565b6060820152610ef360808401610e44565b60808201525092915050565b803560058110610d7a57600080fd5b60006101c08284031215610f2157600080fd5b610f29610cc2565b9050610f3482610eff565b8152610f4260208301610eff565b6020820152610f5360408301610eff565b6040820152610f6460608301610eff565b6060820152610f7560808301610eff565b6080820152610f8660a08301610eff565b60a0820152610f9760c08301610eff565b60c0820152610fa860e08301610e5b565b60e0820152610100610fbb818401610eff565b90820152610120610fcd838201610eff565b90820152610140610fdf838201610eff565b90820152610160610ff1838201610eff565b90820152610180611003838201610eff565b908201526101a0611015838201610eff565b9082015292915050565b600082601f83011261103057600080fd5b611038610d07565b8061010084018581111561104b57600080fd5b845b8181101561106557803584526020938401930161104d565b509095945050505050565b803560038110610d7a57600080fd5b60006040828403121561109157600080fd5b611099610c9a565b9050813581526020820135602082015292915050565b600082601f8301126110c057600080fd5b6110c8610d2a565b806101c08401858111156110db57600080fd5b845b81811015611065576110ef878261107f565b84526020909301926040016110dd565b600082601f83011261111057600080fd5b604080516101e081018181106001600160401b038211171561113457611134610c84565b8252806103c085018681111561114957600080fd5b855b8181101561116c5761115d888261107f565b8352602090920191840161114b565b50919695505050505050565b600081830361074081121561118c57600080fd5b611194610ce5565b915061119f83611070565b82526111ad60208401611070565b602083015261070080603f19830112156111c657600080fd5b6111ce610d07565b91506111dd85604086016110af565b82526111ed8561020086016110ff565b6020830152611200856105c0860161107f565b604083015261121385610600860161107f565b606083015261122685610640860161107f565b608083015261123985610680860161107f565b60a083015261124c856106c0860161107f565b60c083015261125d8582860161107f565b60e083015250604082015292915050565b600082601f83011261127f57600080fd5b60405160a081018181106001600160401b03821117156112a1576112a1610c84565b6040528060a08401858111156112b657600080fd5b845b818110156112d05780358352602092830192016112b8565b509195945050505050565b600061096082840312156112ee57600080fd5b6112f6610d2a565b9050611302838361101f565b8152611312836101008401611178565b60208201526113246108408301610e5b565b604082015261133783610860840161126e565b60608201526113496109008301610e5b565b608082015261135b6109208301610d6f565b60a08201526109408201356001600160401b0381111561137a57600080fd5b61138684828501610db8565b60c08301525092915050565b6000602082840312156113a457600080fd5b81356001600160401b03808211156113bb57600080fd5b908301906103c082860312156113d057600080fd5b6113d8610d4c565b6113e28684610d7f565b81526040830135602082015260608301358281111561140057600080fd5b61140c87828601610db8565b60408301525061141e60808401610e44565b606082015261142f60a08401610e5b565b608082015260c083013560a082015261144b8660e08501610d7f565b60c08201526101208084013560e083015261014061146b88828701610e6f565b61010084015261147f886101e08701610f0e565b828401526103a085013591508382111561149857600080fd5b6114a4888387016112db565b90830152509594505050505056fea264697066735822122043caced17afc14e16194f9234a758555b6f2e0da83d42eeeef6b17990bf04b8b64736f6c63430008150033","sourceMap":"199:4351:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:655;;;;;;:::i;:::-;;:::i;:::-;;;671:14:40;;664:22;646:41;;634:2;619:18;973:655:38;;;;;;;;1634:841;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;973:655::-;1048:4;1068:35;;;;344:66;1068:61;1064:137;;1152:38;;-1:-1:-1;;;1152:38:38;;;;;;;;;;;1064:137;1211:26;1250:13;;;;:4;:13;:::i;:::-;1240:24;;;;;;;:::i;:::-;;;;;;;;;;;1282:7;;1240:24;;-1:-1:-1;;;;;;1282:7:38;;:28;;1324:20;;;1240:24;;1390:35;;;;;1439:23;;;;;;;;;:::i;:::-;1476:20;;;;1510:16;;;;1476:4;1510:16;:::i;:::-;1540:31;;;;1585:26;;;;;;;;:::i;:::-;1282:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1275:346;973:655;-1:-1:-1;;;973:655:38:o;1634:841::-;1718:14;;:::i;:::-;1748:35;;;;344:66;1748:61;1744:137;;1832:38;;-1:-1:-1;;;1832:38:38;;;;;;;;;;;1744:137;1891:26;1930:13;;;;:4;:13;:::i;:::-;1920:24;;;;;;;:::i;:::-;;;;;;;;;;;1955:22;1980:7;;1920:24;;-1:-1:-1;1955:22:38;-1:-1:-1;;;;;1980:7:38;;;;:28;;2022:20;;;1920:24;;2088:35;;;;;2137:23;;;;;;;;;:::i;:::-;2174:20;;;;2208:16;;;;2174:4;2208:16;:::i;:::-;2238:4;:31;;;2283:4;:26;;;;;;;;;;:::i;:::-;1980:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1955:364;;2334:17;2330:139;;;2385:13;;;;:4;:13;:::i;:::-;:22;;2399:6;;2385:22;;;:::i;:::-;2374:45;;;;;;;:::i;:::-;2367:52;1634:841;-1:-1:-1;;;;1634:841:38:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:391:40;104:6;157:2;145:9;136:7;132:23;128:32;125:52;;;173:1;170;163:12;125:52;213:9;200:23;-1:-1:-1;;;;;238:6:40;235:30;232:50;;;278:1;275;268:12;232:50;301:22;;357:3;339:16;;;335:26;332:46;;;374:1;371;364:12;877:423;919:3;957:5;951:12;984:6;979:3;972:19;1009:1;1019:162;1033:6;1030:1;1027:13;1019:162;;;1095:4;1151:13;;;1147:22;;1141:29;1123:11;;;1119:20;;1112:59;1048:12;1019:162;;;1023:3;1226:1;1219:4;1210:6;1205:3;1201:16;1197:27;1190:38;1289:4;1282:2;1278:7;1273:2;1265:6;1261:15;1257:29;1252:3;1248:39;1244:50;1237:57;;;877:423;;;;:::o;1983:127::-;2044:10;2039:3;2035:20;2032:1;2025:31;2075:4;2072:1;2065:15;2099:4;2096:1;2089:15;2115:143;2199:1;2192:5;2189:12;2179:46;;2205:18;;:::i;:::-;2234;;2115:143::o;2263:1834::-;2328:47;2371:3;2363:5;2357:12;2328:47;:::i;:::-;2421:4;2414:5;2410:16;2404:23;2436:58;2488:4;2483:3;2479:14;2465:12;2436:58;:::i;:::-;;2542:4;2535:5;2531:16;2525:23;2557:60;2611:4;2606:3;2602:14;2586;2557:60;:::i;:::-;;2665:4;2658:5;2654:16;2648:23;2680:60;2734:4;2729:3;2725:14;2709;2680:60;:::i;:::-;;2788:4;2781:5;2777:16;2771:23;2803:60;2857:4;2852:3;2848:14;2832;2803:60;:::i;:::-;;2911:4;2904:5;2900:16;2894:23;2926:60;2980:4;2975:3;2971:14;2955;2926:60;:::i;:::-;;3034:4;3027:5;3023:16;3017:23;3049:60;3103:4;3098:3;3094:14;3078;3049:60;:::i;:::-;;3157:4;3150:5;3146:16;3140:23;3172:49;3215:4;3210:3;3206:14;3190;1488:10;1477:22;1465:35;;1412:94;3172:49;;3240:6;3294:2;3287:5;3283:14;3277:21;3307:58;3361:2;3356:3;3352:12;3336:14;3307:58;:::i;:::-;;;3384:6;3438:2;3431:5;3427:14;3421:21;3451:58;3505:2;3500:3;3496:12;3480:14;3451:58;:::i;:::-;;;3528:6;3582:2;3575:5;3571:14;3565:21;3595:58;3649:2;3644:3;3640:12;3624:14;3595:58;:::i;:::-;;;3672:6;3727:2;3720:5;3716:14;3710:21;3740:59;3795:2;3790:3;3786:12;3769:15;3740:59;:::i;:::-;;;3818:6;3873:2;3866:5;3862:14;3856:21;3886:59;3941:2;3936:3;3932:12;3915:15;3886:59;:::i;:::-;;;3964:6;4019:2;4012:5;4008:14;4002:21;4032:59;4087:2;4082:3;4078:12;4061:15;4032:59;:::i;:::-;;;2263:1834;;:::o;4102:145::-;4188:1;4181:5;4178:12;4168:46;;4194:18;;:::i;4408:335::-;4511:5;4534:1;4544:193;4558:4;4555:1;4552:11;4544:193;;;4605:48;4649:3;4640:6;4634:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;4605:48;4682:4;4673:14;;;;;4722:4;4710:17;;;;;4578:1;4571:9;4544:193;;4748:1627;4817:49;4862:3;4854:5;4848:12;4817:49;:::i;:::-;4885:4;4935:2;4928:5;4924:14;4918:21;4948:58;5002:2;4997:3;4993:12;4979;4948:58;:::i;:::-;-1:-1:-1;5025:4:40;5066:14;;;5060:21;5131;;5239:1;5100:12;;;5249:195;5263:4;5260:1;5257:11;5249:195;;;5310:50;5354:5;5345:6;5339:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;5310:50;5419:15;;;;5283:1;5276:9;;;;;5382:14;;5249:195;;;-1:-1:-1;;;5481:23:40;;;5475:30;;5514:65;5574:3;5565:13;;5475:30;5514:65;:::i;:::-;5616:23;;;5610:30;4328:12;;5703:4;5694:14;;4316:25;4390:4;4379:16;;;4373:23;4357:14;;;4350:47;5766:4;5746:25;;5740:32;4328:12;;5835:4;5826:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;5898:4;5878:25;;5872:32;4328:12;;5967:4;5958:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6030:4;6010:25;;6004:32;4328:12;;6099:4;6090:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6162:4;6142:25;;6136:32;4328:12;;6231:4;6222:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6294:4;6274:25;;;6268:32;4328:12;;6363:4;6354:14;;4316:25;4379:16;4373:23;4357:14;;;;4350:47;;;;-1:-1:-1;;4748:1627:40:o;6380:326::-;6473:5;6496:1;6506:194;6520:4;6517:1;6514:11;6506:194;;;6579:13;;6567:26;;6616:4;6640:12;;;;6675:15;;;;6540:1;6533:9;6506:194;;6711:1166;6819:12;;6766:3;;6794:6;;6853:3;6766;6930:200;6944:4;6941:1;6938:11;6930:200;;;7005:13;;6991:28;;7042:4;7105:15;;;;7068:14;;;;6964:1;6957:9;6930:200;;;6934:3;;;7176:4;7169:5;7165:16;7159:23;7191:65;7248:6;7243:3;7239:16;7225:12;7191:65;:::i;:::-;-1:-1:-1;7304:4:40;7293:16;;7287:23;1488:10;1477:22;7362:6;7353:16;;1465:35;7418:4;7407:16;;7401:23;7433:58;7483:6;7474:16;;7401:23;7433:58;:::i;:::-;-1:-1:-1;7539:4:40;7528:16;;7522:23;1488:10;1477:22;7597:6;7588:16;;1465:35;7653:4;7642:16;;7636:23;480:13;473:21;7709:6;7700:16;;461:34;7765:4;7754:16;;7748:23;7796:6;7787:16;;7780:28;;;7824:47;7858:12;;;7748:23;7824:47;:::i;:::-;7817:54;6711:1166;-1:-1:-1;;;;;6711:1166:40:o;7882:1524::-;8061:2;8043:21;;;8109:13;;781:12;;8124:18;;;769:25;846:16;840:23;833:31;826:39;810:14;;;803:63;8197:2;8189:6;8185:15;8179:22;8174:2;8163:9;8159:18;8152:50;8024:4;8249;8241:6;8237:17;8231:24;8274:6;8317:2;8311:3;8300:9;8296:19;8289:31;8343:52;8390:3;8379:9;8375:19;8361:12;8343:52;:::i;:::-;8329:66;;8444:2;8436:6;8432:15;8426:22;8457:54;8506:3;8495:9;8491:19;8475:14;-1:-1:-1;;;;;1370:30:40;1358:43;;1305:102;8457:54;-1:-1:-1;8560:3:40;8548:16;;8542:23;1488:10;1477:22;;8623:3;8608:19;;1465:35;8574:54;8683:3;8675:6;8671:16;8665:23;8659:3;8648:9;8644:19;8637:52;8738:3;8730:6;8726:16;8720:23;8762:3;8774:71;8841:2;8830:9;8826:18;8810:14;781:12;;769:25;;857:4;846:16;;;840:23;833:31;826:39;810:14;;803:63;698:174;8774:71;8882:3;8870:16;;8864:23;8906:3;8925:18;;;8918:30;;;;8985:15;;;8979:22;1624:12;;-1:-1:-1;;;;;1620:21:40;;;9066:3;9051:19;;1608:34;1688:4;1677:16;;1671:23;1713:10;1755:21;;;1739:14;;;1732:45;1830:4;1819:16;;1813:23;1809:32;;1793:14;;;1786:56;1895:4;1884:16;;1878:23;1874:32;1858:14;;;1851:56;1960:4;1949:16;;;1943:23;1939:32;1923:14;;;1916:56;9120:6;9108:19;;9102:26;;-1:-1:-1;9137:66:40;9198:3;9183:19;;9102:26;9137:66;:::i;:::-;9240:15;;9234:22;9296;;;-1:-1:-1;;9292:36:40;9272:18;;;9265:64;9234:22;-1:-1:-1;9346:54:40;;-1:-1:-1;9300:6:40;9234:22;9346:54;:::i;:::-;9338:62;7882:1524;-1:-1:-1;;;;;;7882:1524:40:o;9411:521::-;9488:4;9494:6;9554:11;9541:25;9648:2;9644:7;9633:8;9617:14;9613:29;9609:43;9589:18;9585:68;9575:96;;9667:1;9664;9657:12;9575:96;9694:33;;9746:20;;;-1:-1:-1;;;;;;9778:30:40;;9775:50;;;9821:1;9818;9811:12;9775:50;9854:4;9842:17;;-1:-1:-1;9885:14:40;9881:27;;;9871:38;;9868:58;;;9922:1;9919;9912:12;9868:58;9411:521;;;;;:::o;9937:271::-;10120:6;10112;10107:3;10094:33;10076:3;10146:16;;10171:13;;;10146:16;9937:271;-1:-1:-1;9937:271:40:o;10213:298::-;10272:6;10325:2;10313:9;10304:7;10300:23;10296:32;10293:52;;;10341:1;10338;10331:12;10293:52;10367:23;;-1:-1:-1;;10419:43:40;;10409:54;;10399:82;;10477:1;10474;10467:12;10516:286;10575:6;10628:2;10616:9;10607:7;10603:23;10599:32;10596:52;;;10644:1;10641;10634:12;10596:52;10670:23;;-1:-1:-1;;;;;10722:31:40;;10712:42;;10702:70;;10768:1;10765;10758:12;10807:997;11123:4;11152:3;11182:6;11171:9;11164:25;11225:6;11220:2;11209:9;11205:18;11198:34;11268:6;11263:2;11252:9;11248:18;11241:34;11327:26;11323:31;11315:6;11311:44;11306:2;11295:9;11291:18;11284:72;11393:6;11387:3;11376:9;11372:19;11365:35;11437:2;11431:3;11420:9;11416:19;11409:31;11476:6;11471:2;11460:9;11456:18;11449:34;;11502:3;11555:6;11547;11542:2;11531:9;11527:18;11514:48;11611:1;11582:22;;;11578:31;;11571:42;11715:3;11700:19;;11693:35;;;;-1:-1:-1;;;;;;11765:32:40;;;;11759:3;11744:19;;11737:61;11674:2;11653:15;;;-1:-1:-1;;11649:29:40;11634:45;;;11630:54;;10807:997;-1:-1:-1;;;;;;10807:997:40:o;11809:118::-;11895:5;11888:13;11881:21;11874:5;11871:32;11861:60;;11917:1;11914;11907:12;11861:60;11809:118;:::o;11932:245::-;11999:6;12052:2;12040:9;12031:7;12027:23;12023:32;12020:52;;;12068:1;12065;12058:12;12020:52;12100:9;12094:16;12119:28;12141:5;12119:28;:::i;12182:331::-;12287:9;12298;12340:8;12328:10;12325:24;12322:44;;;12362:1;12359;12352:12;12322:44;12391:6;12381:8;12378:20;12375:40;;;12411:1;12408;12401:12;12375:40;-1:-1:-1;;12437:23:40;;;12482:25;;;;;-1:-1:-1;12182:331:40:o;12518:127::-;12579:10;12574:3;12570:20;12567:1;12560:31;12610:4;12607:1;12600:15;12634:4;12631:1;12624:15;12650:257;12722:4;12716:11;;;12754:17;;-1:-1:-1;;;;;12786:34:40;;12822:22;;;12783:62;12780:88;;;12848:18;;:::i;:::-;12884:4;12877:24;12650:257;:::o;12912:255::-;12984:2;12978:9;13026:6;13014:19;;-1:-1:-1;;;;;13048:34:40;;13084:22;;;13045:62;13042:88;;;13110:18;;:::i;13172:253::-;13244:2;13238:9;13286:4;13274:17;;-1:-1:-1;;;;;13306:34:40;;13342:22;;;13303:62;13300:88;;;13368:18;;:::i;13430:255::-;13502:2;13496:9;13544:6;13532:19;;-1:-1:-1;;;;;13566:34:40;;13602:22;;;13563:62;13560:88;;;13628:18;;:::i;13690:253::-;13762:2;13756:9;13804:4;13792:17;;-1:-1:-1;;;;;13824:34:40;;13860:22;;;13821:62;13818:88;;;13886:18;;:::i;13948:250::-;14015:2;14009:9;14057:6;14045:19;;-1:-1:-1;;;;;14079:34:40;;14115:22;;;14076:62;14073:88;;;14141:18;;:::i;14203:128::-;14268:20;;14297:28;14268:20;14297:28;:::i;:::-;14203:128;;;:::o;14336:362::-;14400:5;14448:4;14436:9;14431:3;14427:19;14423:30;14420:50;;;14466:1;14463;14456:12;14420:50;14488:22;;:::i;:::-;14479:31;;14546:9;14533:23;14526:5;14519:38;14609:2;14598:9;14594:18;14581:32;14622:30;14644:7;14622:30;:::i;:::-;14679:2;14668:14;;14661:31;14672:5;14336:362;-1:-1:-1;;14336:362:40:o;14703:719::-;14746:5;14799:3;14792:4;14784:6;14780:17;14776:27;14766:55;;14817:1;14814;14807:12;14766:55;14853:6;14840:20;-1:-1:-1;;;;;14916:2:40;14912;14909:10;14906:36;;;14922:18;;:::i;:::-;14997:2;14991:9;14965:2;15051:13;;-1:-1:-1;;15047:22:40;;;15071:2;15043:31;15039:40;15027:53;;;15095:18;;;15115:22;;;15092:46;15089:72;;;15141:18;;:::i;:::-;15181:10;15177:2;15170:22;15216:2;15208:6;15201:18;15262:3;15255:4;15250:2;15242:6;15238:15;15234:26;15231:35;15228:55;;;15279:1;15276;15269:12;15228:55;15343:2;15336:4;15328:6;15324:17;15317:4;15309:6;15305:17;15292:54;15390:1;15383:4;15378:2;15370:6;15366:15;15362:26;15355:37;15410:6;15401:15;;;;;;14703:719;;;;:::o;15427:171::-;15494:20;;-1:-1:-1;;;;;15543:30:40;;15533:41;;15523:69;;15588:1;15585;15578:12;15603:163;15670:20;;15730:10;15719:22;;15709:33;;15699:61;;15756:1;15753;15746:12;15771:696;15824:5;15872:4;15860:9;15855:3;15851:19;15847:30;15844:50;;;15890:1;15887;15880:12;15844:50;15923:2;15917:9;15965:4;15957:6;15953:17;16036:6;16024:10;16021:22;-1:-1:-1;;;;;15988:10:40;15985:34;15982:62;15979:88;;;16047:18;;:::i;:::-;16083:2;16076:22;16116:6;-1:-1:-1;16116:6:40;16146:28;16164:9;16146:28;:::i;:::-;16138:6;16131:44;16208:37;16241:2;16230:9;16226:18;16208:37;:::i;:::-;16203:2;16195:6;16191:15;16184:62;16279:37;16312:2;16301:9;16297:18;16279:37;:::i;:::-;16274:2;16266:6;16262:15;16255:62;16350:37;16383:2;16372:9;16368:18;16350:37;:::i;:::-;16345:2;16337:6;16333:15;16326:62;16422:38;16455:3;16444:9;16440:19;16422:38;:::i;:::-;16416:3;16408:6;16404:16;16397:64;;15771:696;;;;:::o;16472:153::-;16550:20;;16599:1;16589:12;;16579:40;;16615:1;16612;16605:12;16630:1421;16688:5;16736:6;16724:9;16719:3;16715:19;16711:32;16708:52;;;16756:1;16753;16746:12;16708:52;16778:22;;:::i;:::-;16769:31;;16823:39;16852:9;16823:39;:::i;:::-;16816:5;16809:54;16895:48;16939:2;16928:9;16924:18;16895:48;:::i;:::-;16890:2;16883:5;16879:14;16872:72;16976:48;17020:2;17009:9;17005:18;16976:48;:::i;:::-;16971:2;16964:5;16960:14;16953:72;17057:48;17101:2;17090:9;17086:18;17057:48;:::i;:::-;17052:2;17045:5;17041:14;17034:72;17139:49;17183:3;17172:9;17168:19;17139:49;:::i;:::-;17133:3;17126:5;17122:15;17115:74;17222:49;17266:3;17255:9;17251:19;17222:49;:::i;:::-;17216:3;17209:5;17205:15;17198:74;17305:49;17349:3;17338:9;17334:19;17305:49;:::i;:::-;17299:3;17292:5;17288:15;17281:74;17388:38;17421:3;17410:9;17406:19;17388:38;:::i;:::-;17382:3;17375:5;17371:15;17364:63;17446:3;17481:48;17525:2;17514:9;17510:18;17481:48;:::i;:::-;17465:14;;;17458:72;17549:3;17584:48;17613:18;;;17584:48;:::i;:::-;17568:14;;;17561:72;17652:3;17687:48;17716:18;;;17687:48;:::i;:::-;17671:14;;;17664:72;17755:3;17790:48;17819:18;;;17790:48;:::i;:::-;17774:14;;;17767:72;17858:3;17893:48;17922:18;;;17893:48;:::i;:::-;17877:14;;;17870:72;17961:3;17996:48;18025:18;;;17996:48;:::i;:::-;17980:14;;;17973:72;17984:5;16630:1421;-1:-1:-1;;16630:1421:40:o;18056:485::-;18106:5;18159:3;18152:4;18144:6;18140:17;18136:27;18126:55;;18177:1;18174;18167:12;18126:55;18201:22;;:::i;:::-;18245:3;18283;18275:6;18271:16;18310:3;18302:6;18299:15;18296:35;;;18327:1;18324;18317:12;18296:35;18351:6;18366:146;18382:6;18377:3;18374:15;18366:146;;;18450:17;;18438:30;;18497:4;18488:14;;;;18399;18366:146;;;-1:-1:-1;18530:5:40;;18056:485;-1:-1:-1;;;;;18056:485:40:o;18546:155::-;18626:20;;18675:1;18665:12;;18655:40;;18691:1;18688;18681:12;18706:285;18763:5;18811:4;18799:9;18794:3;18790:19;18786:30;18783:50;;;18829:1;18826;18819:12;18783:50;18851:22;;:::i;:::-;18842:31;;18909:9;18896:23;18889:5;18882:38;18980:2;18969:9;18965:18;18952:32;18947:2;18940:5;18936:14;18929:56;18706:285;;;;:::o;18996:538::-;19078:5;19131:3;19124:4;19116:6;19112:17;19108:27;19098:55;;19149:1;19146;19139:12;19098:55;19173:22;;:::i;:::-;19217:3;19255;19247:6;19243:16;19282:3;19274:6;19271:15;19268:35;;;19299:1;19296;19289:12;19268:35;19323:6;19338:167;19354:6;19349:3;19346:15;19338:167;;;19422:38;19456:3;19451;19422:38;:::i;:::-;19410:51;;19490:4;19481:14;;;;19380:4;19371:14;19338:167;;19539:698;19599:5;19652:3;19645:4;19637:6;19633:17;19629:27;19619:55;;19670:1;19667;19660:12;19619:55;19693:2;19724;19718:9;19766:3;19758:6;19754:16;19836:6;19824:10;19821:22;-1:-1:-1;;;;;19788:10:40;19785:34;19782:62;19779:88;;;19847:18;;:::i;:::-;19876:22;;19918:6;19959:3;19947:16;;19975:15;;;19972:35;;;20003:1;20000;19993:12;19972:35;20027:6;20042:165;20058:6;20053:3;20050:15;20042:165;;;20124:38;20158:3;20153;20124:38;:::i;:::-;20112:51;;20192:4;20183:14;;;;20075:12;;20042:165;;;-1:-1:-1;20225:6:40;;19539:698;-1:-1:-1;;;;;;19539:698:40:o;20242:1264::-;20304:5;20343:9;20338:3;20334:19;20373:6;20369:2;20365:15;20362:35;;;20393:1;20390;20383:12;20362:35;20415:22;;:::i;:::-;20406:31;;20460:41;20491:9;20460:41;:::i;:::-;20453:5;20446:56;20534:50;20580:2;20569:9;20565:18;20534:50;:::i;:::-;20529:2;20522:5;20518:14;20511:74;20604:6;20644:2;20638;20634:7;20630:2;20626:16;20622:25;20619:45;;;20660:1;20657;20650:12;20619:45;20688:22;;:::i;:::-;20673:37;;20735:81;20812:3;20807:2;20796:9;20792:18;20735:81;:::i;:::-;20726:7;20719:98;20851:60;20907:3;20901;20890:9;20886:19;20851:60;:::i;:::-;20846:2;20837:7;20833:16;20826:86;20946:55;20997:3;20990:4;20979:9;20975:20;20946:55;:::i;:::-;20941:2;20932:7;20928:16;20921:81;21038:55;21089:3;21082:4;21071:9;21067:20;21038:55;:::i;:::-;21031:4;21022:7;21018:18;21011:83;21130:55;21181:3;21174:4;21163:9;21159:20;21130:55;:::i;:::-;21123:4;21114:7;21110:18;21103:83;21222:55;21273:3;21266:4;21255:9;21251:20;21222:55;:::i;:::-;21215:4;21206:7;21202:18;21195:83;21314:55;21365:3;21358:4;21347:9;21343:20;21314:55;:::i;:::-;21307:4;21298:7;21294:18;21287:83;21406:53;21455:3;21450:2;21439:9;21435:18;21406:53;:::i;:::-;21399:4;21386:18;;21379:81;-1:-1:-1;21487:2:40;21476:14;;21469:31;21480:5;20242:1264;-1:-1:-1;;20242:1264:40:o;21511:659::-;21572:5;21625:3;21618:4;21610:6;21606:17;21602:27;21592:55;;21643:1;21640;21633:12;21592:55;21676:2;21670:9;21718:3;21710:6;21706:16;21788:6;21776:10;21773:22;-1:-1:-1;;;;;21740:10:40;21737:34;21734:62;21731:88;;;21799:18;;:::i;:::-;21835:2;21828:22;21870:6;21911:3;21899:16;;21927:15;;;21924:35;;;21955:1;21952;21945:12;21924:35;21979:6;21994:146;22010:6;22005:3;22002:15;21994:146;;;22078:17;;22066:30;;22125:4;22116:14;;;;22027;21994:146;;;-1:-1:-1;22158:6:40;;21511:659;-1:-1:-1;;;;;21511:659:40:o;22175:849::-;22234:5;22282:6;22270:9;22265:3;22261:19;22257:32;22254:52;;;22302:1;22299;22292:12;22254:52;22324:22;;:::i;:::-;22315:31;;22369:40;22405:3;22394:9;22369:40;:::i;:::-;22362:5;22355:55;22444:59;22499:3;22493;22482:9;22478:19;22444:59;:::i;:::-;22437:4;22430:5;22426:16;22419:85;22538:39;22571:4;22560:9;22556:20;22538:39;:::i;:::-;22531:4;22524:5;22520:16;22513:65;22612:62;22670:3;22663:4;22652:9;22648:20;22612:62;:::i;:::-;22605:4;22598:5;22594:16;22587:88;22709:39;22742:4;22731:9;22727:20;22709:39;:::i;:::-;22702:4;22695:5;22691:16;22684:65;22783:37;22814:4;22803:9;22799:20;22783:37;:::i;:::-;22776:4;22769:5;22765:16;22758:63;22872:4;22861:9;22857:20;22844:34;-1:-1:-1;;;;;22893:6:40;22890:30;22887:50;;;22933:1;22930;22923:12;22887:50;22971:46;23013:3;23004:6;22993:9;22989:22;22971:46;:::i;:::-;22964:4;22957:5;22953:16;22946:72;;22175:849;;;;:::o;23029:1493::-;23113:6;23166:2;23154:9;23145:7;23141:23;23137:32;23134:52;;;23182:1;23179;23172:12;23134:52;23222:9;23209:23;-1:-1:-1;;;;;23292:2:40;23284:6;23281:14;23278:34;;;23308:1;23305;23298:12;23278:34;23331:22;;;;23387:6;23369:16;;;23365:29;23362:49;;;23407:1;23404;23397:12;23362:49;23433:17;;:::i;:::-;23473:48;23513:7;23509:2;23473:48;:::i;:::-;23466:5;23459:63;23575:2;23571;23567:11;23554:25;23549:2;23542:5;23538:14;23531:49;23626:2;23622;23618:11;23605:25;23655:2;23645:8;23642:16;23639:36;;;23671:1;23668;23661:12;23639:36;23707:45;23744:7;23733:8;23729:2;23725:17;23707:45;:::i;:::-;23702:2;23695:5;23691:14;23684:69;;23785:31;23811:3;23807:2;23803:12;23785:31;:::i;:::-;23780:2;23773:5;23769:14;23762:55;23850:31;23876:3;23872:2;23868:12;23850:31;:::i;:::-;23844:3;23837:5;23833:15;23826:56;23936:3;23932:2;23928:12;23915:26;23909:3;23902:5;23898:15;23891:51;23975:58;24025:7;24019:3;24015:2;24011:12;23975:58;:::i;:::-;23969:3;23962:5;23958:15;23951:83;24053:3;24110:2;24106;24102:11;24089:25;24083:3;24076:5;24072:15;24065:50;24134:3;24173:46;24211:7;24206:2;24202;24198:11;24173:46;:::i;:::-;24164:6;24157:5;24153:18;24146:74;24252:52;24296:7;24290:3;24286:2;24282:12;24252:52;:::i;:::-;24247:2;24240:5;24236:14;24229:76;24351:3;24347:2;24343:12;24330:26;24314:42;;24381:2;24371:8;24368:16;24365:36;;;24397:1;24394;24387:12;24365:36;24433:58;24483:7;24472:8;24468:2;24464:17;24433:58;:::i;:::-;24417:14;;;24410:82;-1:-1:-1;24421:5:40;23029:1493;-1:-1:-1;;;;;23029:1493:40:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"MinaAccountProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"MinaAccountProvingSystemIdIsNotValid"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/abi/MinaStateSettlement.json b/core/abi/MinaStateSettlement.json index b84761c7..3c7ee5a5 100644 --- a/core/abi/MinaStateSettlement.json +++ b/core/abi/MinaStateSettlement.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060405161078c38038061078c833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61069f806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea264697066735822122072e3b8edd41bb99dfb03c65a3905740dec345a9bcf4fb45cdf63a948622b72e164736f6c63430008190033","sourceMap":"415:4822:38:-:0;;;1132:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1214:7;:57;;-1:-1:-1;;;;;;1214:57:38;-1:-1:-1;;;;;1214:57:38;;;;;1336:13;-1:-1:-1;1298:34:38;-1:-1:-1;627:2:38;1298:34;:::i;:::-;1281:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;415:4822:38;;-1:-1:-1;415:4822:38;14:359:39;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:39;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:39:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;415:4822:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea264697066735822122072e3b8edd41bb99dfb03c65a3905740dec345a9bcf4fb45cdf63a948622b72e164736f6c63430008190033","sourceMap":"415:4822:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2060:172;;;:::i;2679:2556::-;;;;;;:::i;:::-;;:::i;:::-;;1612:137;;;:::i;:::-;;;2776:25:39;;;2764:2;2749:18;1612:137:38;2630:177:39;2308:365:38;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:39;;3155:22;3137:41;;3125:2;3110:18;2308:365:38;2997:187:39;1416:135:38;;;:::i;570:59::-;;627:2;570:59;;1819:170;1897:46;;:::i;:::-;1959:23;;;;;;;;;;;-1:-1:-1;;1959:23:38;;-1:-1:-1;1959:23:38;;;;;;;;;;;;;;;;;;;;;;;;1819:170;:::o;2060:172::-;2139:46;;:::i;:::-;2201:24;;;;;;;;;;2208:17;2201:24;;;;;;2208:17;;2201:24;;;;;;;;;;;;;;;;2060:172;:::o;2679:2556::-;3140:4;3126:19;;3120:26;3023:34;3242;3275:1;627:2;3242:34;:::i;:::-;3225:52;;;;;;;:::i;:::-;;;3183:26;:94;3166:297;;3342:26;3386:16;3403:34;3436:1;627:2;3403:34;:::i;:::-;3386:52;;;;;;;:::i;:::-;;;3309:143;;-1:-1:-1;;;3309:143:38;;;;;3907:25:39;;;;3948:18;;;3941:34;3880:18;;3309:143:38;;;;;;;3166:297;3502:19;;;;;;;;;;3558:7;;:304;;-1:-1:-1;;;3558:304:38;;3473:26;;-1:-1:-1;;;;;3558:7:38;;:28;;:304;;3600:15;;3502:19;;3661:30;;3705:18;;3737:15;;3766:11;;3791:26;;3831:21;;3558:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3532:330;;3877:18;3873:1356;;;4015:21;4073:22;4363:2;4349:17;;4498:115;;;4015:21;4631:516;4692:30;4689:1;4686:37;4631:516;;;4821:18;;4801:39;;4994:19;;4973:41;;4949:1;4932:19;;;;5109:20;;;;4893:2;4876:20;;;;5051:21;;;;4751:9;4631:516;;;4635:50;;;;;3873:1356;;;5198:20;;-1:-1:-1;;;5198:20:38;;;;;;;;;;;3873:1356;3013:2222;;;2679:2556;;;;;;;;:::o;1612:137::-;1663:7;1689:17;1707:34;1740:1;1689:17;1707:34;:::i;:::-;1689:53;;;;;;;:::i;:::-;;;1682:60;;1612:137;:::o;2308:365::-;2377:4;;2393:252;627:2;2413:1;:34;2393:252;;;2566:10;2489:17;2544:1;2507:34;2540:1;2489:17;2507:34;:::i;:::-;:38;;;;:::i;:::-;2489:57;;;;;;;:::i;:::-;;;:87;2468:167;;-1:-1:-1;2616:4:38;;2308:365;-1:-1:-1;;2308:365:38:o;2468:167::-;2449:3;;2393:252;;;-1:-1:-1;2661:5:38;;2308:365;-1:-1:-1;;2308:365:38:o;1416:135::-;1466:7;;1509:34;1542:1;627:2;1509:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:39:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:39;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:39;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:39;1893:18;;1880:32;;-1:-1:-1;1962:2:39;1947:18;;1934:32;-1:-1:-1;;1995:43:39;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:39;2113:18;;2100:32;;-1:-1:-1;2183:3:39;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:39;;2812:180;-1:-1:-1;2812:180:39:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:39;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:39:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd\",\"dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd","urls":["bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd","dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"MinaProvingSystemIdIsNotValid","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161080638038061080683398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d4565b0155506100ea9050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b818103818111156100ce57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61070d806100f96000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103df565b60405180910390f35b61008a610142565b6100bb6100b63660046104d0565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610590565b610350565b6040519015158152602001610097565b6100c56103b1565b6100c5601081565b61010e6103c0565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103c0565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d3600160106105bf565b601081106101e3576101e36105d8565b0154811461022e578060006101fa600160106105bf565b6010811061020a5761020a6105d8565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105ee565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610695565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106103396001826105bf565b60108110610349576103496105d8565b0154905090565b6000805b60108110156103a8578260108261036c6001836105bf565b61037691906105bf565b60108110610386576103866105d8565b0154036103965750600192915050565b806103a0816106be565b915050610354565b50600092915050565b600080610339600160106105bf565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104085781518352602092830192909101906001016103e9565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261043857600080fd5b813567ffffffffffffffff8082111561045357610453610411565b604051601f8301601f19908116603f0116810190828211818310171561047b5761047b610411565b8160405283815286602085880101111561049457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104cb57600080fd5b919050565b600080600080600080600080610100898b0312156104ed57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461051857600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053c57600080fd5b6105488c838d01610427565b955060a08b0135945060c08b013591508082111561056557600080fd5b506105728b828c01610427565b92505061058160e08a016104b4565b90509295985092959890939650565b6000602082840312156105a257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105d2576105d26105a9565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561064f57878301820151858401610120015291810191610630565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261068860e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156106a757600080fd5b815180151581146106b757600080fd5b9392505050565b6000600182016106d0576106d06105a9565b506001019056fea2646970667358221220167c05ed7326b8ae71040de58bfb55cc0472b92bb5177b50f7f644064d7cd5b164736f6c63430008150033","sourceMap":"473:4848:39:-:0;;;1363:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1445:7;:57;;-1:-1:-1;;;;;;1445:57:39;-1:-1:-1;;;;;1445:57:39;;;;;1567:13;-1:-1:-1;1529:34:39;-1:-1:-1;858:2:39;1529:34;:::i;:::-;1512:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;473:4848:39;;-1:-1:-1;473:4848:39;14:359:40;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:40;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:40:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;473:4848:39;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103df565b60405180910390f35b61008a610142565b6100bb6100b63660046104d0565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610590565b610350565b6040519015158152602001610097565b6100c56103b1565b6100c5601081565b61010e6103c0565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103c0565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d3600160106105bf565b601081106101e3576101e36105d8565b0154811461022e578060006101fa600160106105bf565b6010811061020a5761020a6105d8565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105ee565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610695565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106103396001826105bf565b60108110610349576103496105d8565b0154905090565b6000805b60108110156103a8578260108261036c6001836105bf565b61037691906105bf565b60108110610386576103866105d8565b0154036103965750600192915050565b806103a0816106be565b915050610354565b50600092915050565b600080610339600160106105bf565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104085781518352602092830192909101906001016103e9565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261043857600080fd5b813567ffffffffffffffff8082111561045357610453610411565b604051601f8301601f19908116603f0116810190828211818310171561047b5761047b610411565b8160405283815286602085880101111561049457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104cb57600080fd5b919050565b600080600080600080600080610100898b0312156104ed57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461051857600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053c57600080fd5b6105488c838d01610427565b955060a08b0135945060c08b013591508082111561056557600080fd5b506105728b828c01610427565b92505061058160e08a016104b4565b90509295985092959890939650565b6000602082840312156105a257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105d2576105d26105a9565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561064f57878301820151858401610120015291810191610630565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261068860e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156106a757600080fd5b815180151581146106b757600080fd5b9392505050565b6000600182016106d0576106d06105a9565b506001019056fea2646970667358221220167c05ed7326b8ae71040de58bfb55cc0472b92bb5177b50f7f644064d7cd5b164736f6c63430008150033","sourceMap":"473:4848:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2050:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:144;;;:::i;2808:2511::-;;;;;;:::i;:::-;;:::i;:::-;;1843:137;;;:::i;:::-;;;2776:25:40;;;2764:2;2749:18;1843:137:39;2630:177:40;2483:319:39;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:40;;3155:22;3137:41;;3125:2;3110:18;2483:319:39;2997:187:40;1647:135:39;;;:::i;801:59::-;;858:2;801:59;;2050:142;2104:46;;:::i;:::-;2162:23;;;;;;;;;;;-1:-1:-1;;2162:23:39;;-1:-1:-1;2162:23:39;;;;;;;;;;;;;;;;;;;;;;;;2050:142;:::o;2263:144::-;2318:46;;:::i;:::-;2376:24;;;;;;;;;;2383:17;2376:24;;;;;;2383:17;;2376:24;;;;;;;;;;;;;;;;2263:144;:::o;2808:2511::-;608:66;3156:56;;3152:155;;3235:61;;-1:-1:-1;;;3235:61:39;;;;;2776:25:40;;;2749:18;;3235:61:39;;;;;;;;3152:155;3434:4;3420:19;;3414:26;3317:34;3511;3544:1;858:2;3511:34;:::i;:::-;3494:52;;;;;;;:::i;:::-;;;3464:26;:82;3460:217;;3585:26;3613:16;3630:34;3663:1;858:2;3630:34;:::i;:::-;3613:52;;;;;;;:::i;:::-;;;3569:97;;-1:-1:-1;;;3569:97:39;;;;;3942:25:40;;;;3983:18;;;3976:34;3915:18;;3569:97:39;3768:248:40;3460:217:39;3716:19;;;;;;;;;;3772:7;;:304;;-1:-1:-1;;;3772:304:39;;3687:26;;-1:-1:-1;;;;;3772:7:39;;:28;;:304;;3814:15;;3716:19;;3875:30;;3919:18;;3951:15;;3980:11;;4005:26;;4045:21;;3772:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3746:330;;4091:18;4087:1226;;;4229:21;4287:22;4577:2;4563:17;;4712:57;;;4229:21;4787:444;4812:30;4809:1;4806:37;4787:444;;;4905:18;;4885:39;;5078:19;;5057:41;;5033:1;5016:19;;;;5193:20;;;;4977:2;4960:20;;;;5135:21;;;;4851:9;4787:444;;;4791:14;;;;;4087:1226;;;5282:20;;-1:-1:-1;;;5282:20:39;;;;;;;;;;;4087:1226;3142:2177;;;2808:2511;;;;;;;;:::o;1843:137::-;1894:7;1920:17;1938:34;1971:1;1920:17;1938:34;:::i;:::-;1920:53;;;;;;;:::i;:::-;;;1913:60;;1843:137;:::o;2483:319::-;2552:4;;2568:206;858:2;2588:1;:34;2568:206;;;2708:10;2647:17;2702:1;2665:34;2698:1;2647:17;2665:34;:::i;:::-;:38;;;;:::i;:::-;2647:57;;;;;;;:::i;:::-;;;:71;2643:121;;-1:-1:-1;2745:4:39;;2483:319;-1:-1:-1;;2483:319:39:o;2643:121::-;2624:3;;;;:::i;:::-;;;;2568:206;;;-1:-1:-1;2790:5:39;;2483:319;-1:-1:-1;;2483:319:39:o;1647:135::-;1697:7;;1740:34;1773:1;858:2;1740:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:40:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:40;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:40;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:40;1893:18;;1880:32;;-1:-1:-1;1962:2:40;1947:18;;1934:32;-1:-1:-1;;1995:43:40;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:40;2113:18;;2100:32;;-1:-1:-1;2183:3:40;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:40;;2812:180;-1:-1:-1;2812:180:40:o;3371:127::-;3432:10;3427:3;3423:20;3420:1;3413:31;3463:4;3460:1;3453:15;3487:4;3484:1;3477:15;3503:128;3570:9;;;3591:11;;;3588:37;;;3605:18;;:::i;:::-;3503:128;;;;:::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;4130:1142;4436:4;4465:3;4495:6;4484:9;4477:25;4521:2;4559:6;4554:2;4543:9;4539:18;4532:34;4602:6;4597:2;4586:9;4582:18;4575:34;4661:26;4657:31;4649:6;4645:44;4640:2;4629:9;4625:18;4618:72;4727:6;4721:3;4710:9;4706:19;4699:35;4771:2;4765:3;4754:9;4750:19;4743:31;4803:6;4797:13;4846:6;4841:2;4830:9;4826:18;4819:34;4871:1;4862:10;;4881:141;4895:6;4892:1;4889:13;4881:141;;;4991:14;;;4987:23;;4981:30;4956:17;;;4975:3;4952:27;4945:67;4910:10;;;;4881:141;;;5041:3;5031:13;;5093:1;5088:2;5079:6;5068:9;5064:22;5060:31;5053:42;5163:2;5156;5152:7;5147:2;5139:6;5135:15;5131:29;5120:9;5116:45;5112:54;5104:62;;;;;5203:6;5197:3;5186:9;5182:19;5175:35;5219:47;5261:3;5250:9;5246:19;5238:6;-1:-1:-1;;;;;4087:31:40;4075:44;;4021:104;5219:47;4130:1142;;;;;;;;;;;:::o;5277:277::-;5344:6;5397:2;5385:9;5376:7;5372:23;5368:32;5365:52;;;5413:1;5410;5403:12;5365:52;5445:9;5439:16;5498:5;5491:13;5484:21;5477:5;5474:32;5464:60;;5520:1;5517;5510:12;5464:60;5543:5;5277:277;-1:-1:-1;;;5277:277:40:o;5559:135::-;5598:3;5619:17;;;5616:43;;5639:18;;:::i;:::-;-1:-1:-1;5686:1:40;5675:13;;5559:135::o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"MinaProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"type":"error","name":"MinaProvingSystemIdIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"}},"version":1},"id":39} \ No newline at end of file diff --git a/core/src/aligned.rs b/core/src/aligned.rs index f8aa7ae9..72574359 100644 --- a/core/src/aligned.rs +++ b/core/src/aligned.rs @@ -72,7 +72,8 @@ pub async fn submit( proving_system, proof, pub_input: Some(pub_input), - verification_key: None, + // Use this instead of `None` to force Aligned to include the commitment to the proving system ID (valid for Aligned 0.7.0) + verification_key: Some(vec![]), vm_program_code: None, proof_generator_addr, }; diff --git a/example/app/abi/SudokuValidity.json b/example/app/abi/SudokuValidity.json index 4110fc9b..2a3d2811 100644 --- a/example/app/abi/SudokuValidity.json +++ b/example/app/abi/SudokuValidity.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea264697066735822122033c018a706b250ce77799ea25a95f87fd35571e5a4639f05451f725ad3a01fb864736f6c63430008190033","sourceMap":"186:2992:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2992;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2992:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea264697066735822122033c018a706b250ce77799ea25a95f87fd35571e5a4639f05451f725ad3a01fb864736f6c63430008190033","sourceMap":"186:2992:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1710;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1710;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:348;;;;;;;;2100:15;2036:348;;;;2133:30;2036:348;;;;2181:18;2036:348;;;;;;;2217:15;2036:348;;;;2250:11;2036:348;;;;2279:26;2036:348;;;;2323:8;;2036:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:348:40;;;-1:-1:-1;;;;;;2036:348:40;;;;;;;;;;;2400:17;;:39;;-1:-1:-1;;;2400:39:40;;1988:396;;-1:-1:-1;2400:17:40;;:33;;:39;;1988:396;;2400:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2395:99;;2462:21;;-1:-1:-1;;;2462:21:40;;;;;;;;;;;2395:99;2504:29;;2536:17;:8;2545:6;2536:8;;:17;:::i;:::-;2504:49;;-1:-1:-1;2504:49:40;-1:-1:-1;2563:44:40;2610:93;;;;2504:49;2610:93;:::i;:::-;3015:13;;;;:22;:25;;;:13;;-1:-1:-1;3015:30:40;3011:159;;3090:15;3061:26;:44;3011:159;;;3143:16;;-1:-1:-1;;;3143:16:40;;;;;;;;;;;3011:159;1807:1369;;;;;1466:1710;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd\",\"dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xd3474b3062f2ce59256d8fdbd71a3bd29a07912dced42ed905d33074b2d248ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://afcc7a04762ad13cd9c7542e8460ae24a72ae1370b9090673ddbb9f99657a55c\",\"dweb:/ipfs/Qma2NmLuTvw7p2zQVnTU1ZYfbeqQNx5uJ9t3GdwRYiQ9J3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd","urls":["bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd","dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xd3474b3062f2ce59256d8fdbd71a3bd29a07912dced42ed905d33074b2d248ad","urls":["bzz-raw://afcc7a04762ad13cd9c7542e8460ae24a72ae1370b9090673ddbb9f99657a55c","dweb:/ipfs/Qma2NmLuTvw7p2zQVnTU1ZYfbeqQNx5uJ9t3GdwRYiQ9J3"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x6080604052600060025534801561001557600080fd5b50604051610e75380380610e7583398101604081905261003491610081565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100b4565b80516001600160a01b038116811461007c57600080fd5b919050565b6000806040838503121561009457600080fd5b61009d83610065565b91506100ab60208401610065565b90509250929050565b610db2806100c36000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5c565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b8252806103c0850186811115610a1357600080fd5b855b81811015610a3657610a278882610949565b83526020909201918401610a15565b50919695505050505050565b6000818303610740811215610a5657600080fd5b610a5e610324565b9150610a698361093a565b8252610a776020840161093a565b602083015261070080603f1983011215610a9057600080fd5b610a98610346565b9150610aa78560408601610979565b8252610ab78561020086016109c9565b6020830152610aca856105c08601610949565b6040830152610add856106008601610949565b6060830152610af0856106408601610949565b6080830152610b03856106808601610949565b60a0830152610b16856106c08601610949565b60c0830152610b2785828601610949565b60e083015250604082015292915050565b600082601f830112610b4957600080fd5b60405160a081018181106001600160401b0382111715610b6b57610b6b6102c3565b6040528060a0840185811115610b8057600080fd5b845b81811015610b9a578035835260209283019201610b82565b509195945050505050565b60006109608284031215610bb857600080fd5b610bc0610369565b9050610bcc83836108e9565b8152610bdc836101008401610a42565b6020820152610bee6108408301610725565b6040820152610c01836108608401610b38565b6060820152610c136109008301610725565b6080820152610c2561092083016106ca565b60a08201526109408201356001600160401b03811115610c4457600080fd5b610c50848285016103ae565b60c08301525092915050565b600060208284031215610c6e57600080fd5b81356001600160401b0380821115610c8557600080fd5b908301906103c08286031215610c9a57600080fd5b610ca261038b565b610cac86846106d5565b815260408301356020820152606083013582811115610cca57600080fd5b610cd6878286016103ae565b604083015250610ce86080840161070e565b6060820152610cf960a08401610725565b608082015260c083013560a0820152610d158660e085016106d5565b60c08201526101208084013560e0830152610140610d3588828701610739565b610100840152610d49886101e087016107d8565b828401526103a0850135915083821115610d6257600080fd5b610d6e88838701610ba5565b90830152509594505050505056fea2646970667358221220823a7af578e2e8f3190cf0818370302bcc4cdb3b52ac9f8d08a657c947835d0a64736f6c63430008150033","sourceMap":"186:2909:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2909;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2909:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5c565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b8252806103c0850186811115610a1357600080fd5b855b81811015610a3657610a278882610949565b83526020909201918401610a15565b50919695505050505050565b6000818303610740811215610a5657600080fd5b610a5e610324565b9150610a698361093a565b8252610a776020840161093a565b602083015261070080603f1983011215610a9057600080fd5b610a98610346565b9150610aa78560408601610979565b8252610ab78561020086016109c9565b6020830152610aca856105c08601610949565b6040830152610add856106008601610949565b6060830152610af0856106408601610949565b6080830152610b03856106808601610949565b60a0830152610b16856106c08601610949565b60c0830152610b2785828601610949565b60e083015250604082015292915050565b600082601f830112610b4957600080fd5b60405160a081018181106001600160401b0382111715610b6b57610b6b6102c3565b6040528060a0840185811115610b8057600080fd5b845b81811015610b9a578035835260209283019201610b82565b509195945050505050565b60006109608284031215610bb857600080fd5b610bc0610369565b9050610bcc83836108e9565b8152610bdc836101008401610a42565b6020820152610bee6108408301610725565b6040820152610c01836108608401610b38565b6060820152610c136109008301610725565b6080820152610c2561092083016106ca565b60a08201526109408201356001600160401b03811115610c4457600080fd5b610c50848285016103ae565b60c08301525092915050565b600060208284031215610c6e57600080fd5b81356001600160401b0380821115610c8557600080fd5b908301906103c08286031215610c9a57600080fd5b610ca261038b565b610cac86846106d5565b815260408301356020820152606083013582811115610cca57600080fd5b610cd6878286016103ae565b604083015250610ce86080840161070e565b6060820152610cf960a08401610725565b608082015260c083013560a0820152610d158660e085016106d5565b60c08201526101208084013560e0830152610140610d3588828701610739565b610100840152610d49886101e087016107d8565b828401526103a0850135915083821115610d6257600080fd5b610d6e88838701610ba5565b90830152509594505050505056fea2646970667358221220823a7af578e2e8f3190cf0818370302bcc4cdb3b52ac9f8d08a657c947835d0a64736f6c63430008150033","sourceMap":"186:2909:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1627;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1627;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:299;;;;;;;;2083:15;2036:299;;;;2112:30;2036:299;;;;2156:18;2036:299;;;;;;;2188:15;2036:299;;;;2217:11;2036:299;;;;2242:26;2036:299;;;;2282:8;;2036:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:299:40;;;-1:-1:-1;;;;;;2036:299:40;;;;;;;;;;;2351:17;;:39;;-1:-1:-1;;;2351:39:40;;1988:347;;-1:-1:-1;2351:17:40;;:33;;:39;;1988:347;;2351:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2346:99;;2413:21;;-1:-1:-1;;;2413:21:40;;;;;;;;;;;2346:99;2455:29;;2487:17;:8;2496:6;2487:8;;:17;:::i;:::-;2455:49;;-1:-1:-1;2455:49:40;-1:-1:-1;2514:44:40;2561:59;;;;2455:49;2561:59;:::i;:::-;2932:13;;;;:22;:25;;;:13;;-1:-1:-1;2932:30:40;2928:159;;3007:15;2978:26;:44;2928:159;;;3060:16;;-1:-1:-1;;;3060:16:40;;;;;;;;;;;2928:159;1807:1286;;;;;1466:1627;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11985:22;;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482\",\"dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3","urls":["bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482","dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file diff --git a/example/eth_contract/src/SudokuValidity.sol b/example/eth_contract/src/SudokuValidity.sol index bfd5f2a2..f8478e6a 100644 --- a/example/eth_contract/src/SudokuValidity.sol +++ b/example/eth_contract/src/SudokuValidity.sol @@ -49,27 +49,23 @@ contract SudokuValidity { revert InvalidLedger(ledgerHash); } - MinaAccountValidation.AlignedArgs memory args = MinaAccountValidation - .AlignedArgs( - proofCommitment, - provingSystemAuxDataCommitment, - proofGeneratorAddr, - batchMerkleRoot, - merkleProof, - verificationDataBatchIndex, - pubInput, - batcherPaymentService - ); + MinaAccountValidation.AlignedArgs memory args = MinaAccountValidation.AlignedArgs( + proofCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex, + pubInput, + batcherPaymentService + ); if (!accountValidation.validateAccount(args)) { revert InvalidZkappAccount(); } bytes calldata encodedAccount = pubInput[32 + 8:]; - MinaAccountValidation.Account memory account = abi.decode( - encodedAccount, - (MinaAccountValidation.Account) - ); + MinaAccountValidation.Account memory account = abi.decode(encodedAccount, (MinaAccountValidation.Account)); // TODO(xqft): check verification key, it may be a poseidon hash so we should // need to change it to a keccak hash. From 7dac115b01f6b9e4bc6dfc9bae46ad5a348ddc26 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 25 Sep 2024 16:02:34 -0300 Subject: [PATCH 36/46] Parameterize Holesky contract addresses (#343) * [WIP] Update Aligned to 0.7.0 We must wait until Aligned uploads the release for 0.7.0. Once it's uploaded we need to add a batcher payment service arg to the `updateChain` call in the Aligned polling service. * Update Aligned to 0.7.0 * Update Aligned branch * Update Aligned and Bridge contracts * Update Aligned Foundry submodule * Remove bridge addr constants and parameterize them --- .env.template | 3 ++ contract_deployer/src/main.rs | 29 +++++++++---------- core/src/eth.rs | 53 ++++++++--------------------------- core/src/utils/constants.rs | 3 -- core/src/utils/contract.rs | 32 +++++++++++++++++++++ core/src/utils/mod.rs | 1 + example/app/src/main.rs | 21 ++++---------- 7 files changed, 66 insertions(+), 76 deletions(-) create mode 100644 core/src/utils/contract.rs diff --git a/.env.template b/.env.template index bbb654c2..396301cc 100644 --- a/.env.template +++ b/.env.template @@ -7,6 +7,9 @@ SAVE_PROOF=true/false # also false if other than "true" or variable were to be n # BATCHER_ETH_ADDR= # ETH_RPC_URL= # PROOF_GENERATOR_ADDR= +# BRIDGE_HOLESKY_ETH_ADDR= +# BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR= +# ALIGNED_SM_HOLESKY_ETH_ADDR= ## You can choose to use a keystore or private key for your signing wallet. ## Leave empty if choosing Anvil Devnet. diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index 50c95034..49c2a1d8 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -1,4 +1,3 @@ -use aligned_sdk::core::types::Chain; use log::{debug, error, info}; use mina_bridge_core::{ eth::{ @@ -7,11 +6,8 @@ use mina_bridge_core::{ }, mina::query_root, utils::{ - constants::{ - ALIGNED_SM_DEVNET_ETH_ADDR, ALIGNED_SM_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, - }, - env::EnvironmentVariables, - wallet_alloy::get_wallet, + constants::BRIDGE_TRANSITION_FRONTIER_LEN, contract::get_aligned_sm_contract_addr, + env::EnvironmentVariables, wallet_alloy::get_wallet, }, }; use std::process; @@ -47,18 +43,19 @@ async fn main() { process::exit(1); }); - let aligned_sm_addr = match chain { - Chain::Devnet => ALIGNED_SM_DEVNET_ETH_ADDR, - Chain::Holesky => ALIGNED_SM_HOLESKY_ETH_ADDR, - _ => todo!(), - }; + let aligned_sm_addr = get_aligned_sm_contract_addr(&chain).unwrap_or_else(|err| { + error!("{err}"); + process::exit(1); + }); let bridge_constructor_args = - MinaStateSettlementConstructorArgs::new(aligned_sm_addr, root_hash).unwrap_or_else(|err| { - error!("Failed to make constructor args for bridge contract call: {err}"); - process::exit(1); - }); - let account_constructor_args = MinaAccountValidationConstructorArgs::new(aligned_sm_addr) + MinaStateSettlementConstructorArgs::new(&aligned_sm_addr, root_hash).unwrap_or_else( + |err| { + error!("Failed to make constructor args for bridge contract call: {err}"); + process::exit(1); + }, + ); + let account_constructor_args = MinaAccountValidationConstructorArgs::new(&aligned_sm_addr) .unwrap_or_else(|err| { error!("Failed to make constructor args for account contract call: {err}"); process::exit(1); diff --git a/core/src/eth.rs b/core/src/eth.rs index c6a51bdb..e6d47ede 100644 --- a/core/src/eth.rs +++ b/core/src/eth.rs @@ -7,7 +7,7 @@ use alloy::providers::ProviderBuilder; use alloy::sol; use ethers::{abi::AbiEncode, prelude::*}; use k256::ecdsa::SigningKey; -use log::{debug, error, info}; +use log::{debug, info}; use mina_p2p_messages::v2::StateHash; use serde::{Deserialize, Serialize}; use serde_with::serde_as; @@ -15,10 +15,9 @@ use serde_with::serde_as; use crate::{ proof::{account_proof::MinaAccountPubInputs, state_proof::MinaStatePubInputs}, sol::serialization::SolSerialize, - utils::constants::{ - ANVIL_CHAIN_ID, BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, - BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, - HOLESKY_CHAIN_ID, + utils::{ + constants::{ANVIL_CHAIN_ID, BRIDGE_TRANSITION_FRONTIER_LEN, HOLESKY_CHAIN_ID}, + contract::{get_account_validation_contract_addr, get_bridge_contract_addr}, }, }; @@ -100,15 +99,8 @@ pub async fn update_chain( wallet: Wallet, batcher_payment_service: &str, ) -> Result<(), String> { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = + Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; let serialized_pub_input = bincode::serialize(pub_input) .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; @@ -199,15 +191,8 @@ pub async fn update_chain( } pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = + Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; debug!("Creating contract instance"); let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; @@ -228,15 +213,8 @@ pub async fn get_bridge_chain_state_hashes( chain: &Chain, eth_rpc_url: &str, ) -> Result<[StateHash; BRIDGE_TRANSITION_FRONTIER_LEN], String> { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = + Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; debug!("Creating contract instance"); let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; @@ -269,15 +247,8 @@ pub async fn validate_account( eth_rpc_url: &str, batcher_payment_service: &str, ) -> Result<(), String> { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = Address::from_str(&get_account_validation_contract_addr(chain)?) + .map_err(|err| err.to_string())?; debug!("Creating contract instance"); diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index 3d154220..392da9f3 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -18,12 +18,9 @@ pub const MINA_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; -pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x8ee69DeEb2692E1D260356419FB716AA55e37Ee4"; pub const BRIDGE_TRANSITION_FRONTIER_LEN: usize = 16; pub const BRIDGE_ACCOUNT_DEVNET_ETH_ADDR: &str = "0xA15BB66138824a1c7167f5E85b957d04Dd34E468"; -pub const BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR: &str = "0xF2e55D6ddde772dAcaEfEb5bbA4C0E76B0d80d1d"; // Aligned related constants pub const PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; pub const ALIGNED_SM_DEVNET_ETH_ADDR: &str = "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8"; -pub const ALIGNED_SM_HOLESKY_ETH_ADDR: &str = "0x39cFAb7498d73d75F3cb38a3d321de451779989D"; diff --git a/core/src/utils/contract.rs b/core/src/utils/contract.rs new file mode 100644 index 00000000..d555d217 --- /dev/null +++ b/core/src/utils/contract.rs @@ -0,0 +1,32 @@ +use aligned_sdk::core::types::Chain; + +use super::constants::{ + ALIGNED_SM_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_DEVNET_ETH_ADDR, +}; + +pub fn get_bridge_contract_addr(chain: &Chain) -> Result { + match chain { + Chain::Devnet => Ok(BRIDGE_DEVNET_ETH_ADDR.to_owned()), + Chain::Holesky => std::env::var("BRIDGE_HOLESKY_ETH_ADDR") + .map_err(|err| format!("Error getting Bridge contract address: {err}")), + _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), + } +} + +pub fn get_account_validation_contract_addr(chain: &Chain) -> Result { + match chain { + Chain::Devnet => Ok(BRIDGE_ACCOUNT_DEVNET_ETH_ADDR.to_owned()), + Chain::Holesky => std::env::var("BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR") + .map_err(|err| format!("Error getting Account validation contract address: {err}")), + _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), + } +} + +pub fn get_aligned_sm_contract_addr(chain: &Chain) -> Result { + match chain { + Chain::Devnet => Ok(ALIGNED_SM_DEVNET_ETH_ADDR.to_owned()), + Chain::Holesky => std::env::var("ALIGNED_SM_HOLESKY_ETH_ADDR") + .map_err(|err| format!("Error getting Aligned SM contract address: {err}")), + _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), + } +} diff --git a/core/src/utils/mod.rs b/core/src/utils/mod.rs index 6e24fa03..698644a5 100644 --- a/core/src/utils/mod.rs +++ b/core/src/utils/mod.rs @@ -1,4 +1,5 @@ pub mod constants; +pub mod contract; pub mod env; pub mod wallet; pub mod wallet_alloy; diff --git a/example/app/src/main.rs b/example/app/src/main.rs index 44dd029b..217ee0ac 100644 --- a/example/app/src/main.rs +++ b/example/app/src/main.rs @@ -12,10 +12,7 @@ use mina_bridge_core::{ AccountVerificationData, }, utils::{ - constants::{ - BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, - BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, - }, + contract::{get_account_validation_contract_addr, get_bridge_contract_addr}, env::EnvironmentVariables, wallet, wallet_alloy, }, @@ -86,22 +83,14 @@ async fn main() { Command::DeployContract => { // TODO(xqft): we might as well use the Chain type from Alloy, it isn't right to add // aligned-sdk as a dependency only for this type. - let state_settlement_addr = match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => todo!(), - }; + let state_settlement_addr = get_bridge_contract_addr(&chain).unwrap(); - let account_validation_addr = match chain { - Chain::Devnet => BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, - _ => todo!(), - }; + let account_validation_addr = get_account_validation_contract_addr(&chain).unwrap(); let contract = SudokuValidity::deploy( &provider, - Address::from_str(state_settlement_addr).unwrap(), - Address::from_str(account_validation_addr).unwrap(), + Address::from_str(&state_settlement_addr).unwrap(), + Address::from_str(&account_validation_addr).unwrap(), ) .await .map_err(|err| err.to_string()) From f550222b3a0f95fcef77ff7000dee4814db3757a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 26 Sep 2024 15:07:01 -0300 Subject: [PATCH 37/46] Update README and code doc (#347) * Fix state proof doc * Fix account proof doc * Update example * Update README * Update README' * Add new specification * Update table of contents * Fix specification paragraph * Add sdk docs * Update use case readme * Small changes * Fix identation * Fix identation * Fix identation * Modify top level desc * Update config.json * Update zkapp config * Update README.md Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> * Update README.md Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> * Update README.md Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> --------- Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> --- README.md | 262 ++++++++++++++++----------- core/src/proof/account_proof.rs | 1 + core/src/proof/state_proof.rs | 6 +- example/mina_zkapp/config.json | 9 +- example/mina_zkapp/src/run.ts | 33 +++- {example => img}/example_diagram.png | Bin 6 files changed, 189 insertions(+), 122 deletions(-) rename {example => img}/example_diagram.png (100%) diff --git a/README.md b/README.md index 3df53ad0..a52d89a5 100644 --- a/README.md +++ b/README.md @@ -8,18 +8,20 @@ ## About -This project introduces the verification of [Mina Protocol](https://minaprotocol.com/) states into a EVM chain, which will serve as a foundation for token bridging. +This project introduces the verification of [Mina Protocol](https://minaprotocol.com/) states and accounts in Ethereum, which will serve as a foundation for applications and infrastructure that take advantage of bridged blockchain and zkApp state. + +The bridge leverages [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State and Mina Proofs of Account in Ethereum. -This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State on Ethereum. ## Usage 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) -1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. +1. Setup the `.env` file of the bridge. A template is available in `.env.template`. + 1. In the root folder, deploy the bridge's contract with: ```sh - make deploy_contract_anvil + make deploy_contract ``` 1. Submit a state to verify: @@ -32,22 +34,59 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan ```sh make submit-account PUBLIC_KEY= ``` - + +## Example use case + +The `example/` folder contains a project that uses the Sudoku zkApp example from Mina and bridges its state to a SudokuValidity Ethereum smart contract. + +For running the example you need to: + +1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. Deploy the bridge smart contracts by executing + ```sh + make deploy_contract + ``` + +1. Deploy the SudokuValidity smart contract by executing + ```sh + make deploy_example_contract + ``` + +1. Install `zkapp-cli`: + ```sh + npm install -g zkapp-cli + ``` + +1. Inside the `example/mina_zkapp` directory, configure the zkApp and deploy the contract following [this guide](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/how-to-deploy-a-zkapp) on the Mina Protocol documentation + +1. After deployment, set the `zkappAddress` field on `example/mina_zkapp/config.json` + +1. Run the example by executing from the root folder: + ```sh + make execute_example + ``` + this will upload a new Sudoku, submit a solution to it and run the example Rust app that will bridge the new state of the zkApp and update the SudokuValidty smart contract on Ethereum. + + The zkApp will wait until both Mina transactions are included in a block, so this may take a while. Below is a diagram explaining the execution flow: + +![Example diagram](/img/example_diagram.png) + ## Table of Contents - [About](#about) - [Usage](#usage) +- [Example use case](#example-use-case) +- [Table of Contents](#table-of-contents) - [Specification](#specification) - * [Core](#core) - + [Mina Polling Service](#mina-polling-service) - + [Aligned Polling Service](#aligned-polling-service) - + [Smart Contract Utility](#smart-contract-utility) + * [core](#core) + + [mina](#mina) + + [aligned](#aligned) + + [eth](#eth) * [Mina Proof of State](#mina-proof-of-state) + [Definition](#definition) + [Serialization](#serialization) + [Aligned’s Mina Proof of State verifier](#aligneds-mina-proof-of-state-verifier) + [Consensus checking](#consensus-checking) + [Transition frontier](#transition-frontier) - + [State hash check](#state-hash-check) + [Pickles verification](#pickles-verification) * [Mina Proof of Account](#mina-proof-of-account) + [Definition](#definition-1) @@ -55,6 +94,8 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan + [Aligned’s Proof of Account verification](#aligneds-proof-of-account-verifier) * [Smart contract](#smart-contract) + [Gas cost](#gas-cost) + * [Mina Account Validation contract](#mina-account-validation-contract) + + [Gas cost](#gas-cost-1) - [Kimchi proving system](#kimchi-proving-system) * [Proof Construction & Verification](#proof-construction---verification) + [Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs``](#secuence-diagram-linked-to---proof-systems-kimchi-src-verifierrs--) @@ -84,123 +125,124 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan # Specification -## Core +## core -[`mina_bridge repo: core/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core) +[mina_bridge repo: core/](https://github.com/lambdaclass/mina_bridge/tree/aligned/core) A Rust library+binary project that includes the next modules: -### Mina Polling Service +### mina -[`mina_bridge repo: core/src/mina_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina_polling_service.rs) +[mina_bridge repo: core/src/mina.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina.rs) This module can query a Mina node (defined by the user via the `MINA_RPC_URL` env. variable) GraphQL DB for: -- the latest state data (called the candidate state) and its proof -- the merkle proof of inclusion of some Mina account for the latest verified state on the bridge. +- state data and state proof +- account data and its Merkle proof of inclusion in some snarked ledger (which itself is contained in state data, so by verifying a state you are verifying its snarked ledger). -### Aligned Polling Service +### aligned -[`mina_bridge repo: core/src/aligned_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/aligned_polling_service.rs) +[mina_bridge repo: core/src/aligned.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/aligned.rs) -This module sends the Mina Proof of State (retrieved by the Mina Polling Service) to the Aligned batcher for verification, using the Aligned SDK. The batcher executes pre-verification checks that validate the integrity of the proof and discards it if one of these checks is unsuccessful. After pre-verification, the batcher includes the Mina Proof of State in the current proof batch for then sending it to Aligned’s operators. +This module implements functions for sending the Mina Proof of State or Account (retrieved by the **mina** module) to the Aligned batcher for verification, using the Aligned SDK. The batcher verifies the proof before including it in the current proof batch for then sending it to Aligned’s operators. -The Aligned Polling Service waits until the batch that includes the Mina Proof of State is verified, polling Aligned every 10 seconds (this is done by the Aligned SDK). +The verification data sent by Aligned is returned after proof submission. This is used for updating the verified chain in the State Settlement contract. -Finally the service returns the verification data sent by Aligned after proof submission. This is used for updating the Bridge’s tip state, by sending a transaction to the Bridge’s smart contract. +### eth -### Smart Contract Utility +[mina_bridge repo: core/src/eth.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/eth.rs) -[`mina_bridge repo: core/src/smart_contract_utility.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/smart_contract_utility.rs) +Implements functions for interacting with the bridge’s smart contracts on Ethereum (getters for storage variables, update the verified state chain, validate an account). Also includes code for deploying both contracts. -This module sends a transaction to the Bridge’s smart contract that calls the “update tip” (see the [Smart Contract section](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21)) function by sending the **incomplete** verification data retrieved by the Aligned Polling Service, aside from the Mina Proof of State public inputs. By “incomplete” we mean that we’re sending all the verification data, except for the public input commitment, which is a keccak256 hash of the public inputs. So by sending the public inputs to the contract we can cheaply calculate on-chain the public input commitment for completing the verification data. We do this instead of directly sending the commitment so the contract can: +### sdk -- check that the `tip_state_hash` is indeed the tip state hash stored in the contract -- retrieve the `candidate_state_hash` and store it if the candidate was verified +[mina_bridge repo: core/src/sdk.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/sdk.rs) -## Mina Proof of State +Abstracts the previous modules to provide an easy way to verify states or accounts, and to retrieve storage data from the State Settlement contract. -The core role of the bridge is to verify the state of a Mina block, and store it’s hash and useful data (like its ledger hash, see account verification) in an Ethereum smart contract. +## Mina Proof of State ### Definition We understand a Mina Proof of State to be composed of: -- **public inputs** (vector of bytes): `[candidate_ledger_hash, candidate_state_hash, tip_state_hash, candidate_state_length, candidate_state, tip_state_length, tip_state]`. We include the lengths of the states in bytes because these can vary, unlike the hashes which are a fixed 32 bytes. -- **proof**: Kimchi proof of the candidate state (specifically a Wrap proof in the context of the Pickles recursive system). We like to call it “Pickles proof” for simplicity. +- **public inputs**: -This is the proof that the Mina state verifier in Aligned expects. +```rust +[ +/// The hash of the bridge's transition frontier tip state. Used for making sure that we're +/// checking if a candidate tip is better than the latest bridged tip. +bridge_tip_state_hash, + +/// The state hashes of the candidate chain. +candidate_chain_state_hashes[16], + +/// The ledger hashes of the candidate chain. The ledger hashes are the root of a Merkle tree +/// where the leafs are Mina account hashes. Used for account verification. +candidate_chain_ledger_hashes[16], +] +``` -### Serialization +- **proof**: -The Mina Polling Service serializes a Mina Proof of State: +```rust +[ +/// The state proof of the tip state (latest state of the chain, or "transition frontier"). If +/// this state is valid, then all previous states are valid thanks to Pickles recursion. +candidate_tip_proof, + +/// The state data of the candidate chain. Used for consensus checks and checking that the +/// public input state hashes correspond to states that effectively form a chain. +candidate_chain_states, + +/// The latest state of the previously bridged chain, the latter also called the bridge's +/// transition frontier. Used for consensus checks needed to be done as part of state +/// verification to ensure that the candidate tip is better than the bridged tip. +bridge_tip_state, +] +``` -- both states (which are an OCaml structure encoded in base64, standard vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state()`) -- both state hashes (field element) as bytes (arkworks serialization). The same is done for the ledger hash. (`serialize_state_hash_field()`) -- the candidate state proof (an OCaml structure encoded in base64, URL vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state_proof()`) +### Serialization -This data composes what we call a **Mina Proof of State**. +We use **bincode** for serializing the data into bytes, which will then be deserialized by Aligned operators. Because the public inputs also need to be deserialized in Solidity, the module defines a `SolSerialize` struct that implements traits for serializing specific types into a Solidity-friendly format (the goal is to be able to serialize the types the same way they’re represented in the EVM and move them from calldata to memory via single Yul instructions). ### Aligned’s Mina Proof of State verifier -[`aligned_layer repo: operator/mina/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) +[aligned_layer repo: operator/mina/](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) Aligned Layer integrated a verifier in its operator code for verifying Mina Proofs of State. -### Consensus checking +### Public input checking -The first step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate state and the tip state. +The first step of the verifier is to check that the public inputs correspond to the proof data. This is: -Currently the only check implemented is the one corresponding to short-range forks. The check just compares that the candidate state’s height is greater than the tip’s. If equal, tiebreak logic is implemented. Tiebreak consists in lexicographical comparison of the VRF hashes of both states, and if these are equal then we compare the consensus state hashes. +- that the bridge tip state hash is the actual hash of the latest bridged tip state +- that the chain state hashes are the hashes of the states in the proof +- that the chain ledger hashes are the hashes of the ledgers (stored in the states) in the proof +- that the states form a chain (by hashing together the **state hash** of a state `n` and the **state body hash** of state `n+1`, we retrieve the **state hash** of the state `n+1`, so the states form a chain if we can hash from the root all the way until arriving to the tip state hash. -So the total logic can be summed up by: -```rust -if candidate_block_height > tip_block_height { - return candidate; -} - -// tiebreak logic -else if candidate_block_height == tip_block_height { - // compare last VRF digests lexicographically - if hash_last_vrf(candidate) > hash_last_vrf(tip) { - return candidate; - } else if hash_last_vrf(candidate) == hash_last_vrf(tip) { - // compare consensus state hashes lexicographically - if hash_state(candidate) > hash_state(tip) { - return candidate; - } - } -} - -return tip; - -``` - -If the candidate wins the comparisons, then verification continues. If not, verification fails. +### Consensus checking -The full code details can be consulted in the GitHub repository link at the [top of the section](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21). We use OpenMina’s code for hashing the consensus state. +The second step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate tip state and the bridge tip state. -> [!WARNING] -> At the moment we’re unsure about other considerations or checks for the consensus checking step. We are also ignoring the finalization of the state that we verified. This step is under investigation. +There are two general rules that implement a set of checks each: a rule for short-range forks, and another for long-range forks. The implementation can be found in the [aligned_layer repo: operator/mina/lib/src/consensus_state.rs](https://github.com/lambdaclass/aligned_layer/blob/consensus_state_input_checks/operator/mina/lib/src/consensus_state.rs) file. The implementation was based on the official [Mina Protocol consensus documentation](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md). ### Transition frontier The **transition frontier** is a chain of the latest `k` blocks of the network. The GraphQL DB of a Mina node only stores these blocks and forgets the previous ones. Currently, `k = 291` -It's common for two nodes to generate a block simultaneously, resulting in a temporary fork in the network. The network will eventually resolve this fork after a period of time. +It's not so rare for two or more nodes to generate blocks simultaneously, resulting in temporary forks of the network. The network will eventually resolve the forks after a period of time. Because of these phenomenon some blocks might not be **final** (part of the canonical chain). -We can define that a block is **partially finalized** if it has `n` blocks ahead of it, with `n` being the number defined for 'partial finalization'. +We can define that a block is **partially finalized** if it has `n` blocks ahead of it, with `n` being the number defined for 'partial finalization'. For the bridge we settled with `n = 15`, so the State Settlement contract will store a chain of `16` validated blocks. -A block is **finalized** when there’s `k - 1` blocks ahead of it. Meaning that it’s the first block of the transition frontier, also called the **root block**. The latest block of the transition frontier is called the **tip**. - -### State hash check - -We check that both the candidate and tip state hashes are correct by hashing the corresponding state data using OpenMina’s hasher. This way we can be certain that the hashes are valid if the Mina Proof of State was verified in Aligned, which is useful for the Bridge’s smart contract to check that the tip state is indeed the state corresponding to the tip, and for storing the candidate hash if its proof is valid. +A block is **finalized** when there’s `k - 1` blocks ahead of it., meaning that it’s the first block of the transition frontier, also called the **root block**. The latest block of the transition frontier is called the **tip**. ### Pickles verification -This is the last step of the Mina Proof of State verifier. We are leveraging OpenMina’s “block verifier” to verify the Pickles proof of the candidate state. The verifier takes as public input the hash of the state. +This is the last step of the Mina Proof of State verifier. We are leveraging OpenMina’s “block verifier” to verify the Pickles proof of the candidate tip state. The verifier takes as public input the hash of the state. + +After validating the candidate tip state, because in a previous step we verified that there’s a chain of `n` candidate blocks with a valid tip, and because of the built-in recursion of the Pickles composition system (each state validates the previous one), we end up validating the whole state chain. > [!WARNING] > OpenMina’s block verifier is yet to be audited. @@ -209,7 +251,7 @@ This is the last step of the Mina Proof of State verifier. We are leveraging Ope After a Mina Proof of State was verified, it’s possible to verify a Proof of Account of some Mina account in the verified state. -Verifying that some account and its state is valid in a bridged Mina state is one of the basic components of a Mina to Ethereum bridge, as it not only allows to validate account data but also the execution of a [zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp) tracked by this account (see [zkApp Account](https://docs.minaprotocol.com/glossary#zkapp-account)), which leverages zk-SNARKs to verify (optionally private) off-chain computation on the Mina blockchain. +Verifying that some account and its state is valid in a bridged Mina state is one of the basic components of a Mina to Ethereum bridge, as it not only allows to validate account data but also the state of a [zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp) tracked by this account (see [zkApp Account](https://docs.minaprotocol.com/glossary#zkapp-account)), which leverages zk-SNARKs to verify (optionally private) off-chain computation on the Mina blockchain. Account verification (paired with state verification) essentially allows to verify off-chain computation on Ethereum, after it has been validated by Mina. @@ -217,54 +259,70 @@ Account verification (paired with state verification) essentially allows to veri We understand a Mina Proof of Account to be composed of: -- **public inputs** (vector of bytes): `[merkle_root, account_hash, account_id_hash]` -- **proof**: `[merkle_proof]` +- **public inputs**: + +```rust +[ +/// Hash of the snarked ledger that this account state is included on +ledger_hash, +/// ABI encoded Mina account (Solidity structure) +encoded_account +] +``` + +- **proof**: -Where `merkle_root` and `account_hash` are field elements, and `merkle_proof` an array of field elements with an extra leading byte that specifies if a merkle node is left or right. +```rust +[ +/// Merkle path between the leaf hash (account hash) and the merkle root (ledger hash) +merkle_path, +/// The Mina account (OpenMina structure) +account +] +``` -`account_id_hash` is the keccak256 hash of an `AccountId` type, which identifies a Mina account. It’s composed of the account’s public key (which is a ec point but saved in a compressed form: via its x coordinate an a boolean) and its token id (a field element, the poseidon hash of an integer that identifies a token on the Mina blockchain). +The account is included in the proof to: -This is the proof that the Mina account verifier in Aligned expects. +- compare it with the Solidity-friendly `encoded_account` in the public inputs +- hash it to retrieve the leaf hash of the Merkle tree to verify ### Serialization -The Mina Polling Service serializes a Mina Proof of Account: +We use **bincode** for serializing the data into bytes, which will then be deserialized by Aligned operators. Because the public inputs also need to be deserialized in Solidity, the module defines a `SolSerialize` struct that implements traits for serializing specific types into a Solidity-friendly format (the goal is to be able to serialize the types the same way they’re represented in the EVM and move them from calldata to memory via single Yul instructions). -- both poseidon hashes (`merkle_root` and `account_hash` which are field elements) (field element) as bytes (arkworks serialization). -- the keccak hash (`account_id_hash`) is already an array of 32 bytes. +### Aligned’s Proof of Account verification -In the future we’ll send the account data as part of the proof so we can add information about the account in the public inputs (like the public key) and check it on the Aligned verifier. +[aligned_layer repo: operator/mina_account/](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina_account) -### Aligned’s Proof of Account verifier +The verification consists in calculating the merkle root by hashing the branch (whose nodes are contained in the `merkle_path`) corresponding to the account’s leaf, and comparing the root with the snarked ledger hash included in the public inputs. -[`aligned_layer repo: operator/mina_account/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina_account) +## Mina State Settlement contract -The verification consists in calculating the merkle root by hashing the branch (whose nodes are contained in the `merkle_path`) corresponding to the account’s leaf. +[mina_bridge repo: contract/src/MinaStateSettlement.sol](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract/src/MinaStateSettlement.sol) -> [!WARNING] -> Currently we aren’t checking the validity of the `account_id_hash`. This will be fixed once we have the needed GraphQL query to retrieve the complete data of an account. +This contract stores the latest verified state and ledger hashes (also called the bridge’s transition frontier) and updates the arrays with new values whenever a new Mina Proof of State is submitted. + +Any user can submit a Mina Proof of State to Aligned and then provide the contract with the verification data for updating its storage. The contract calls the Aligned Service Manager to check that the proof was indeed verified. -## Smart contract +The contract is deployed by a `contract_deployer` crate with an initial state that is assumed to be valid. The default is to use a relatively finalized state (the sixteenth one) from the Mina node chosen to execute the query to. -[`mina_bridge repo: contract/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract) +### Gas cost -The contract stores the Bridge’s tip state hash and exposes functions to read (`getTipStateHash()`) or update it (`updateTipState()`). It also saves a mapping `accountId -> accountHash and ledgerHash` of verified account state hashes and the ledger hash (merkle root) they were verified against, so a user can query which account state was verified to which Mina block (`getLedgerAccountPair()`), if some account is updated to the latest verified state (`isAccountUpdated()`) or update them themselves (`updateAccount()`). +- Currently the cost of the “update chain” transaction is ~220k. -The Smart Contract Utility implements an API for submitting data of verified state and account proofs, to update the contract. +## Mina Account Validation contract -The Bridge’s contract update functions call the Aligned Service Manager smart contract to check that the Mina Proof of State or Account was verified in Aligned. The parameters that the Aligned Service Manager needs for checking is the complete verification data: +[mina_bridge repo: contract/src/MinaAccountValidation.sol](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract/src/MinaAccountValidation.sol) -- For a Proof of State: if the Aligned Service Manager call returns true, this means that a Mina Proof of State of some candidate state (whose hash is known by the contract), checked against the Bridge’s tip state (consensus checking), was verified. Then this candidate state is now the tip state, and so its hash is stored in the contract. -- For a Proof of Account: if the Aligned Service Manager call returns true, this means that a Mina Proof of Account of some account state (whose hash is known by the contract) corresponding to a valid account id hash was verified against some ledger hash (which is the Merkle root of the account state tree of a given Mina block). Then this account state and ledger hash paired is saved in the contract. +This contract implements a method for validating an account, taking as parameter the verification data and public inputs of the proof sent to Aligned. It also implements a structure for representing account data. A user can decode the account from the public inputs into this structure. -The contract is deployed by a `contract_deployer` crate with an initial state that is the eleventh state from the Mina node [transition frontier’s](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21) tip. +Any user can submit a Mina Proof of Account to Aligned and then provide the contract with the verification data for checking on-chain that the account was validated. The contract calls the Aligned Service Manager to check that the proof was indeed verified. -The `contract_deployer` asks the Mina node for the eleventh state and deploys the contract using that state as the initial one, assuming it is valid. +The contract is deployed by a `contract_deployer` crate. ### Gas cost -- Currently the cost of the “update tip” transaction is in between 100k and 150k gas, a big part of it being the calldata cost of sending both states data in the public inputs of the Mina Proof of State. The cost could be decreased to <100k by modifying the definition of a Mina Proof of State; sending the state data as proof data instead of public inputs. At the current phase of the project this is not a priority so this change wasn’t done yet. -- The cost of the “update account” transaction is ~90k the first time and ~60k when updating a previously verified account. +- The cost of the “update account” transaction is ~80k. # Kimchi proving system diff --git a/core/src/proof/account_proof.rs b/core/src/proof/account_proof.rs index 49243779..c78f55c4 100644 --- a/core/src/proof/account_proof.rs +++ b/core/src/proof/account_proof.rs @@ -15,6 +15,7 @@ pub enum MerkleNode { #[serde_as] #[derive(Serialize, Deserialize, Clone)] pub struct MinaAccountPubInputs { + /// Hash of the snarked ledger that this account state is included on #[serde_as(as = "SolSerialize")] pub ledger_hash: Fp, /// ABI encoded Mina account (Solidity structure) diff --git a/core/src/proof/state_proof.rs b/core/src/proof/state_proof.rs index 6d9dcbe1..2f49970c 100644 --- a/core/src/proof/state_proof.rs +++ b/core/src/proof/state_proof.rs @@ -27,10 +27,8 @@ pub struct MinaStateProof { /// The state proof of the tip state (latest state of the chain, or "transition frontier"). If /// this state is valid, then all previous states are valid thanks to Pickles recursion. pub candidate_tip_proof: MinaBaseProofStableV2, - /// The latest state of the candidate chain. Used for consensus checks needed to be done as - /// part of state verification to ensure that the candidate tip is better than the bridged tip. - /// We take an array of states to ensure that the root state (oldest state on the chain) is - /// relatively (sufficiently) finalized. + /// The state data of the candidate chain. Used for consensus checks and checking that the + /// public input state hashes correspond to states that effectively form a chain. pub candidate_chain_states: [MinaStateProtocolStateValueStableV2; BRIDGE_TRANSITION_FRONTIER_LEN], /// The latest state of the previously bridged chain, the latter also called the bridge's diff --git a/example/mina_zkapp/config.json b/example/mina_zkapp/config.json index 34c4da64..3a441d5e 100644 --- a/example/mina_zkapp/config.json +++ b/example/mina_zkapp/config.json @@ -1,8 +1,5 @@ { - "networkId": "testnet", - "url": "https://api.minascan.io/node/devnet/v1/graphql", - "feepayerKeyPath": "", - "feepayerAlias": "", - "fee": "0.1", - "smartContract": "SudokuZkApp" + "zkappAddress": null, + "version": 1, + "deployAliases": {} } diff --git a/example/mina_zkapp/src/run.ts b/example/mina_zkapp/src/run.ts index 73859f8d..9d50d5b3 100644 --- a/example/mina_zkapp/src/run.ts +++ b/example/mina_zkapp/src/run.ts @@ -1,26 +1,39 @@ import fs from 'fs/promises'; import { Sudoku, SudokuZkApp } from './sudoku.js'; import { generateSudoku, solveSudoku } from './sudoku-lib.js'; -import { Mina, PrivateKey, PublicKey, NetworkId, fetchAccount } from 'o1js'; +import { Mina, PrivateKey, NetworkId, fetchAccount } from 'o1js'; -const ZKAPP_ADDRESS = "B62qmpq1JBejZYDQrZwASPRM5oLXW346WoXgbApVf5HJZXMWFPWFPuA"; const TX_MAX_TRIES = 5; +const DEPLOY_ALIAS = "devnet"; -// parse config and private key from file type Config = { - networkId?: string; - url: string; - fee: string; - feepayerKeyPath: string; - feepayerAlias: string; + deployAliases: Record< + string, + { + networkId?: string; + url: string; + keyPath: string; + fee: string; + feepayerKeyPath: string; + feepayerAlias: string; + } + >; }; -let config: Config = JSON.parse(await fs.readFile('config.json', 'utf8')); + +let configJson: Config = JSON.parse(await fs.readFile('config.json', 'utf8')); +let config = configJson.deployAliases[DEPLOY_ALIAS]; + let feepayerKeysBase58: { privateKey: string; publicKey: string } = JSON.parse( await fs.readFile(config.feepayerKeyPath, 'utf8') ); +let zkAppKeysBase58: { privateKey: string; publicKey: string } = JSON.parse( + await fs.readFile(config.keyPath, 'utf8') +); let feepayerKey = PrivateKey.fromBase58(feepayerKeysBase58.privateKey); +let zkAppKey = PrivateKey.fromBase58(zkAppKeysBase58.privateKey); + let feepayerAddress = feepayerKey.toPublicKey(); -let zkAppAddress = PublicKey.fromBase58(ZKAPP_ADDRESS); +let zkAppAddress = zkAppKey.toPublicKey(); // define network (devnet) const Network = Mina.Network({ diff --git a/example/example_diagram.png b/img/example_diagram.png similarity index 100% rename from example/example_diagram.png rename to img/example_diagram.png From 09b3469a21167ab44e5ca612aecd5640f9246c5c Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:45:58 -0300 Subject: [PATCH 38/46] Fix README links (#349) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a52d89a5..0a29de29 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ The bridge leverages [Aligned Layer](https://github.com/yetanotherco/aligned_lay ## Usage -1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/staging/docs/3_guides/6_setup_aligned.md#booting-devnet-with-default-configs) 1. Setup the `.env` file of the bridge. A template is available in `.env.template`. 1. In the root folder, deploy the bridge's contract with: @@ -41,7 +41,7 @@ The `example/` folder contains a project that uses the Sudoku zkApp example from For running the example you need to: -1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/staging/docs/3_guides/6_setup_aligned.md#booting-devnet-with-default-configs) 1. Deploy the bridge smart contracts by executing ```sh make deploy_contract @@ -226,7 +226,7 @@ The first step of the verifier is to check that the public inputs correspond to The second step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate tip state and the bridge tip state. -There are two general rules that implement a set of checks each: a rule for short-range forks, and another for long-range forks. The implementation can be found in the [aligned_layer repo: operator/mina/lib/src/consensus_state.rs](https://github.com/lambdaclass/aligned_layer/blob/consensus_state_input_checks/operator/mina/lib/src/consensus_state.rs) file. The implementation was based on the official [Mina Protocol consensus documentation](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md). +There are two general rules that implement a set of checks each: a rule for short-range forks, and another for long-range forks. The implementation can be found in the [aligned_layer repo: operator/mina/lib/src/consensus_state.rs](https://github.com/lambdaclass/aligned_layer/blob/mina/operator/mina/lib/src/consensus_state.rs) file. The implementation was based on the official [Mina Protocol consensus documentation](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md). ### Transition frontier From 91efe0d92fa4d056e6f56c6c36e568f664b14648 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:46:07 -0300 Subject: [PATCH 39/46] Fix Tock constraint domain size and add Book reference (#350) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a29de29..b05d6e09 100644 --- a/README.md +++ b/README.md @@ -418,7 +418,9 @@ The two curves pallas and vesta (pa(llas ve)sta) created by the [Zcash team](htt These curves are referred to as “tick” and “tock” within the Mina source code. - Tick - Vesta (a.k.a. Step), constraint domain size 2Âč⁞ [block and transaction proofs] -- Tock - Pallas (a.k.a. Wrap), constraint domain size 2ÂčÂČ [signatures] +- Tock - Pallas (a.k.a. Wrap), constraint domain size 2Âč⁷ [signatures] + +See [the Pickles section of the Mina book](https://o1-labs.github.io/proof-systems/specs/pickles.html) for more details. The Tock prover does less (only performs recursive verifications and no other logic), so it requires fewer constraints and has a smaller From 0de619933ecb8c1a06740dc61a335d2cba380804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 30 Sep 2024 15:53:44 -0300 Subject: [PATCH 40/46] Fix (#353) --- core/abi/MinaAccountValidation.json | 2 +- core/abi/MinaStateSettlement.json | 2 +- core/src/sdk.rs | 7 ++++--- example/app/abi/SudokuValidity.json | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json index 6e98cf59..543753fa 100644 --- a/core/abi/MinaAccountValidation.json +++ b/core/abi/MinaAccountValidation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"MinaAccountProvingSystemIdIsNotValid","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161157b38038061157b83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6114e8806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109c8565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610afa565b6040516100e6929190610b47565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b57565b606089013561013460808b018b610afa565b60a08c013561014a6101008e0160e08f01610b86565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610baf565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c3d565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610afa565b60405161021f929190610b47565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b57565b60608a013561027160808c018c610afa565b8c60a001358d60e00160208101906102899190610b86565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610baf565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c3d565b905080156100365761030360c0850185610afa565b610311916028908290610c5a565b81019061031e9190611392565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081b828501826107b6565b50604082810151805160008684015b600782101561085a5761084881845180518252602090810151910152565b9185019160019190910190840161082a565b50505091820151916108706102008601846107c6565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b60058110156107b0578151845260209384019390910190600101610902565b80516000906109609084835b600881101561094c57825182526020928301929091019060010161092d565b50505060208301516109626101008601826107fe565b50604083015163ffffffff1661084085015260608301516109876108608601826108fe565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109bf8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a066103e085018361062f565b91506060850151610a2260a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a5f81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ad461020088018461069f565b870151868503601f1901848801529150610af090508382610921565b9695505050505050565b6000808335601e19843603018112610b1157600080fd5b8301803591506001600160401b03821115610b2b57600080fd5b602001915036819003821315610b4057600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b6957600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610b9857600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c3a57600080fd5b50565b600060208284031215610c4f57600080fd5b81516101af81610c2c565b60008085851115610c6a57600080fd5b83861115610c7757600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cbc57610cbc610c84565b60405290565b6040516101c081016001600160401b0381118282101715610cbc57610cbc610c84565b604051606081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161010081016001600160401b0381118282101715610cbc57610cbc610c84565b60405160e081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161016081016001600160401b0381118282101715610cbc57610cbc610c84565b8035610d7a81610c2c565b919050565b600060408284031215610d9157600080fd5b610d99610c9a565b9050813581526020820135610dad81610c2c565b602082015292915050565b600082601f830112610dc957600080fd5b81356001600160401b0380821115610de357610de3610c84565b604051601f8301601f19908116603f01168101908282118183101715610e0b57610e0b610c84565b81604052838152866020858801011115610e2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d7a57600080fd5b803563ffffffff81168114610d7a57600080fd5b600060a08284031215610e8157600080fd5b60405160a081018181106001600160401b0382111715610ea357610ea3610c84565b604052905080610eb283610e44565b8152610ec060208401610e5b565b6020820152610ed160408401610e44565b6040820152610ee260608401610e5b565b6060820152610ef360808401610e44565b60808201525092915050565b803560058110610d7a57600080fd5b60006101c08284031215610f2157600080fd5b610f29610cc2565b9050610f3482610eff565b8152610f4260208301610eff565b6020820152610f5360408301610eff565b6040820152610f6460608301610eff565b6060820152610f7560808301610eff565b6080820152610f8660a08301610eff565b60a0820152610f9760c08301610eff565b60c0820152610fa860e08301610e5b565b60e0820152610100610fbb818401610eff565b90820152610120610fcd838201610eff565b90820152610140610fdf838201610eff565b90820152610160610ff1838201610eff565b90820152610180611003838201610eff565b908201526101a0611015838201610eff565b9082015292915050565b600082601f83011261103057600080fd5b611038610d07565b8061010084018581111561104b57600080fd5b845b8181101561106557803584526020938401930161104d565b509095945050505050565b803560038110610d7a57600080fd5b60006040828403121561109157600080fd5b611099610c9a565b9050813581526020820135602082015292915050565b600082601f8301126110c057600080fd5b6110c8610d2a565b806101c08401858111156110db57600080fd5b845b81811015611065576110ef878261107f565b84526020909301926040016110dd565b600082601f83011261111057600080fd5b604080516101e081018181106001600160401b038211171561113457611134610c84565b8252806103c085018681111561114957600080fd5b855b8181101561116c5761115d888261107f565b8352602090920191840161114b565b50919695505050505050565b600081830361074081121561118c57600080fd5b611194610ce5565b915061119f83611070565b82526111ad60208401611070565b602083015261070080603f19830112156111c657600080fd5b6111ce610d07565b91506111dd85604086016110af565b82526111ed8561020086016110ff565b6020830152611200856105c0860161107f565b604083015261121385610600860161107f565b606083015261122685610640860161107f565b608083015261123985610680860161107f565b60a083015261124c856106c0860161107f565b60c083015261125d8582860161107f565b60e083015250604082015292915050565b600082601f83011261127f57600080fd5b60405160a081018181106001600160401b03821117156112a1576112a1610c84565b6040528060a08401858111156112b657600080fd5b845b818110156112d05780358352602092830192016112b8565b509195945050505050565b600061096082840312156112ee57600080fd5b6112f6610d2a565b9050611302838361101f565b8152611312836101008401611178565b60208201526113246108408301610e5b565b604082015261133783610860840161126e565b60608201526113496109008301610e5b565b608082015261135b6109208301610d6f565b60a08201526109408201356001600160401b0381111561137a57600080fd5b61138684828501610db8565b60c08301525092915050565b6000602082840312156113a457600080fd5b81356001600160401b03808211156113bb57600080fd5b908301906103c082860312156113d057600080fd5b6113d8610d4c565b6113e28684610d7f565b81526040830135602082015260608301358281111561140057600080fd5b61140c87828601610db8565b60408301525061141e60808401610e44565b606082015261142f60a08401610e5b565b608082015260c083013560a082015261144b8660e08501610d7f565b60c08201526101208084013560e083015261014061146b88828701610e6f565b61010084015261147f886101e08701610f0e565b828401526103a085013591508382111561149857600080fd5b6114a4888387016112db565b90830152509594505050505056fea264697066735822122043caced17afc14e16194f9234a758555b6f2e0da83d42eeeef6b17990bf04b8b64736f6c63430008150033","sourceMap":"199:4351:38:-:0;;;844:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;903:7;:57;;-1:-1:-1;;;;;;903:57:38;-1:-1:-1;;;;;903:57:38;;;;;;;;;;199:4351;;14:298:40;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:40;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:40:o;:::-;199:4351:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109c8565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610afa565b6040516100e6929190610b47565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b57565b606089013561013460808b018b610afa565b60a08c013561014a6101008e0160e08f01610b86565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610baf565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c3d565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610afa565b60405161021f929190610b47565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b57565b60608a013561027160808c018c610afa565b8c60a001358d60e00160208101906102899190610b86565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610baf565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c3d565b905080156100365761030360c0850185610afa565b610311916028908290610c5a565b81019061031e9190611392565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081b828501826107b6565b50604082810151805160008684015b600782101561085a5761084881845180518252602090810151910152565b9185019160019190910190840161082a565b50505091820151916108706102008601846107c6565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b60058110156107b0578151845260209384019390910190600101610902565b80516000906109609084835b600881101561094c57825182526020928301929091019060010161092d565b50505060208301516109626101008601826107fe565b50604083015163ffffffff1661084085015260608301516109876108608601826108fe565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109bf8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a066103e085018361062f565b91506060850151610a2260a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a5f81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ad461020088018461069f565b870151868503601f1901848801529150610af090508382610921565b9695505050505050565b6000808335601e19843603018112610b1157600080fd5b8301803591506001600160401b03821115610b2b57600080fd5b602001915036819003821315610b4057600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b6957600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610b9857600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c3a57600080fd5b50565b600060208284031215610c4f57600080fd5b81516101af81610c2c565b60008085851115610c6a57600080fd5b83861115610c7757600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cbc57610cbc610c84565b60405290565b6040516101c081016001600160401b0381118282101715610cbc57610cbc610c84565b604051606081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161010081016001600160401b0381118282101715610cbc57610cbc610c84565b60405160e081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161016081016001600160401b0381118282101715610cbc57610cbc610c84565b8035610d7a81610c2c565b919050565b600060408284031215610d9157600080fd5b610d99610c9a565b9050813581526020820135610dad81610c2c565b602082015292915050565b600082601f830112610dc957600080fd5b81356001600160401b0380821115610de357610de3610c84565b604051601f8301601f19908116603f01168101908282118183101715610e0b57610e0b610c84565b81604052838152866020858801011115610e2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d7a57600080fd5b803563ffffffff81168114610d7a57600080fd5b600060a08284031215610e8157600080fd5b60405160a081018181106001600160401b0382111715610ea357610ea3610c84565b604052905080610eb283610e44565b8152610ec060208401610e5b565b6020820152610ed160408401610e44565b6040820152610ee260608401610e5b565b6060820152610ef360808401610e44565b60808201525092915050565b803560058110610d7a57600080fd5b60006101c08284031215610f2157600080fd5b610f29610cc2565b9050610f3482610eff565b8152610f4260208301610eff565b6020820152610f5360408301610eff565b6040820152610f6460608301610eff565b6060820152610f7560808301610eff565b6080820152610f8660a08301610eff565b60a0820152610f9760c08301610eff565b60c0820152610fa860e08301610e5b565b60e0820152610100610fbb818401610eff565b90820152610120610fcd838201610eff565b90820152610140610fdf838201610eff565b90820152610160610ff1838201610eff565b90820152610180611003838201610eff565b908201526101a0611015838201610eff565b9082015292915050565b600082601f83011261103057600080fd5b611038610d07565b8061010084018581111561104b57600080fd5b845b8181101561106557803584526020938401930161104d565b509095945050505050565b803560038110610d7a57600080fd5b60006040828403121561109157600080fd5b611099610c9a565b9050813581526020820135602082015292915050565b600082601f8301126110c057600080fd5b6110c8610d2a565b806101c08401858111156110db57600080fd5b845b81811015611065576110ef878261107f565b84526020909301926040016110dd565b600082601f83011261111057600080fd5b604080516101e081018181106001600160401b038211171561113457611134610c84565b8252806103c085018681111561114957600080fd5b855b8181101561116c5761115d888261107f565b8352602090920191840161114b565b50919695505050505050565b600081830361074081121561118c57600080fd5b611194610ce5565b915061119f83611070565b82526111ad60208401611070565b602083015261070080603f19830112156111c657600080fd5b6111ce610d07565b91506111dd85604086016110af565b82526111ed8561020086016110ff565b6020830152611200856105c0860161107f565b604083015261121385610600860161107f565b606083015261122685610640860161107f565b608083015261123985610680860161107f565b60a083015261124c856106c0860161107f565b60c083015261125d8582860161107f565b60e083015250604082015292915050565b600082601f83011261127f57600080fd5b60405160a081018181106001600160401b03821117156112a1576112a1610c84565b6040528060a08401858111156112b657600080fd5b845b818110156112d05780358352602092830192016112b8565b509195945050505050565b600061096082840312156112ee57600080fd5b6112f6610d2a565b9050611302838361101f565b8152611312836101008401611178565b60208201526113246108408301610e5b565b604082015261133783610860840161126e565b60608201526113496109008301610e5b565b608082015261135b6109208301610d6f565b60a08201526109408201356001600160401b0381111561137a57600080fd5b61138684828501610db8565b60c08301525092915050565b6000602082840312156113a457600080fd5b81356001600160401b03808211156113bb57600080fd5b908301906103c082860312156113d057600080fd5b6113d8610d4c565b6113e28684610d7f565b81526040830135602082015260608301358281111561140057600080fd5b61140c87828601610db8565b60408301525061141e60808401610e44565b606082015261142f60a08401610e5b565b608082015260c083013560a082015261144b8660e08501610d7f565b60c08201526101208084013560e083015261014061146b88828701610e6f565b61010084015261147f886101e08701610f0e565b828401526103a085013591508382111561149857600080fd5b6114a4888387016112db565b90830152509594505050505056fea264697066735822122043caced17afc14e16194f9234a758555b6f2e0da83d42eeeef6b17990bf04b8b64736f6c63430008150033","sourceMap":"199:4351:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:655;;;;;;:::i;:::-;;:::i;:::-;;;671:14:40;;664:22;646:41;;634:2;619:18;973:655:38;;;;;;;;1634:841;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;973:655::-;1048:4;1068:35;;;;344:66;1068:61;1064:137;;1152:38;;-1:-1:-1;;;1152:38:38;;;;;;;;;;;1064:137;1211:26;1250:13;;;;:4;:13;:::i;:::-;1240:24;;;;;;;:::i;:::-;;;;;;;;;;;1282:7;;1240:24;;-1:-1:-1;;;;;;1282:7:38;;:28;;1324:20;;;1240:24;;1390:35;;;;;1439:23;;;;;;;;;:::i;:::-;1476:20;;;;1510:16;;;;1476:4;1510:16;:::i;:::-;1540:31;;;;1585:26;;;;;;;;:::i;:::-;1282:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1275:346;973:655;-1:-1:-1;;;973:655:38:o;1634:841::-;1718:14;;:::i;:::-;1748:35;;;;344:66;1748:61;1744:137;;1832:38;;-1:-1:-1;;;1832:38:38;;;;;;;;;;;1744:137;1891:26;1930:13;;;;:4;:13;:::i;:::-;1920:24;;;;;;;:::i;:::-;;;;;;;;;;;1955:22;1980:7;;1920:24;;-1:-1:-1;1955:22:38;-1:-1:-1;;;;;1980:7:38;;;;:28;;2022:20;;;1920:24;;2088:35;;;;;2137:23;;;;;;;;;:::i;:::-;2174:20;;;;2208:16;;;;2174:4;2208:16;:::i;:::-;2238:4;:31;;;2283:4;:26;;;;;;;;;;:::i;:::-;1980:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1955:364;;2334:17;2330:139;;;2385:13;;;;:4;:13;:::i;:::-;:22;;2399:6;;2385:22;;;:::i;:::-;2374:45;;;;;;;:::i;:::-;2367:52;1634:841;-1:-1:-1;;;;1634:841:38:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:391:40;104:6;157:2;145:9;136:7;132:23;128:32;125:52;;;173:1;170;163:12;125:52;213:9;200:23;-1:-1:-1;;;;;238:6:40;235:30;232:50;;;278:1;275;268:12;232:50;301:22;;357:3;339:16;;;335:26;332:46;;;374:1;371;364:12;877:423;919:3;957:5;951:12;984:6;979:3;972:19;1009:1;1019:162;1033:6;1030:1;1027:13;1019:162;;;1095:4;1151:13;;;1147:22;;1141:29;1123:11;;;1119:20;;1112:59;1048:12;1019:162;;;1023:3;1226:1;1219:4;1210:6;1205:3;1201:16;1197:27;1190:38;1289:4;1282:2;1278:7;1273:2;1265:6;1261:15;1257:29;1252:3;1248:39;1244:50;1237:57;;;877:423;;;;:::o;1983:127::-;2044:10;2039:3;2035:20;2032:1;2025:31;2075:4;2072:1;2065:15;2099:4;2096:1;2089:15;2115:143;2199:1;2192:5;2189:12;2179:46;;2205:18;;:::i;:::-;2234;;2115:143::o;2263:1834::-;2328:47;2371:3;2363:5;2357:12;2328:47;:::i;:::-;2421:4;2414:5;2410:16;2404:23;2436:58;2488:4;2483:3;2479:14;2465:12;2436:58;:::i;:::-;;2542:4;2535:5;2531:16;2525:23;2557:60;2611:4;2606:3;2602:14;2586;2557:60;:::i;:::-;;2665:4;2658:5;2654:16;2648:23;2680:60;2734:4;2729:3;2725:14;2709;2680:60;:::i;:::-;;2788:4;2781:5;2777:16;2771:23;2803:60;2857:4;2852:3;2848:14;2832;2803:60;:::i;:::-;;2911:4;2904:5;2900:16;2894:23;2926:60;2980:4;2975:3;2971:14;2955;2926:60;:::i;:::-;;3034:4;3027:5;3023:16;3017:23;3049:60;3103:4;3098:3;3094:14;3078;3049:60;:::i;:::-;;3157:4;3150:5;3146:16;3140:23;3172:49;3215:4;3210:3;3206:14;3190;1488:10;1477:22;1465:35;;1412:94;3172:49;;3240:6;3294:2;3287:5;3283:14;3277:21;3307:58;3361:2;3356:3;3352:12;3336:14;3307:58;:::i;:::-;;;3384:6;3438:2;3431:5;3427:14;3421:21;3451:58;3505:2;3500:3;3496:12;3480:14;3451:58;:::i;:::-;;;3528:6;3582:2;3575:5;3571:14;3565:21;3595:58;3649:2;3644:3;3640:12;3624:14;3595:58;:::i;:::-;;;3672:6;3727:2;3720:5;3716:14;3710:21;3740:59;3795:2;3790:3;3786:12;3769:15;3740:59;:::i;:::-;;;3818:6;3873:2;3866:5;3862:14;3856:21;3886:59;3941:2;3936:3;3932:12;3915:15;3886:59;:::i;:::-;;;3964:6;4019:2;4012:5;4008:14;4002:21;4032:59;4087:2;4082:3;4078:12;4061:15;4032:59;:::i;:::-;;;2263:1834;;:::o;4102:145::-;4188:1;4181:5;4178:12;4168:46;;4194:18;;:::i;4408:335::-;4511:5;4534:1;4544:193;4558:4;4555:1;4552:11;4544:193;;;4605:48;4649:3;4640:6;4634:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;4605:48;4682:4;4673:14;;;;;4722:4;4710:17;;;;;4578:1;4571:9;4544:193;;4748:1627;4817:49;4862:3;4854:5;4848:12;4817:49;:::i;:::-;4885:4;4935:2;4928:5;4924:14;4918:21;4948:58;5002:2;4997:3;4993:12;4979;4948:58;:::i;:::-;-1:-1:-1;5025:4:40;5066:14;;;5060:21;5131;;5239:1;5100:12;;;5249:195;5263:4;5260:1;5257:11;5249:195;;;5310:50;5354:5;5345:6;5339:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;5310:50;5419:15;;;;5283:1;5276:9;;;;;5382:14;;5249:195;;;-1:-1:-1;;;5481:23:40;;;5475:30;;5514:65;5574:3;5565:13;;5475:30;5514:65;:::i;:::-;5616:23;;;5610:30;4328:12;;5703:4;5694:14;;4316:25;4390:4;4379:16;;;4373:23;4357:14;;;4350:47;5766:4;5746:25;;5740:32;4328:12;;5835:4;5826:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;5898:4;5878:25;;5872:32;4328:12;;5967:4;5958:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6030:4;6010:25;;6004:32;4328:12;;6099:4;6090:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6162:4;6142:25;;6136:32;4328:12;;6231:4;6222:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6294:4;6274:25;;;6268:32;4328:12;;6363:4;6354:14;;4316:25;4379:16;4373:23;4357:14;;;;4350:47;;;;-1:-1:-1;;4748:1627:40:o;6380:326::-;6473:5;6496:1;6506:194;6520:4;6517:1;6514:11;6506:194;;;6579:13;;6567:26;;6616:4;6640:12;;;;6675:15;;;;6540:1;6533:9;6506:194;;6711:1166;6819:12;;6766:3;;6794:6;;6853:3;6766;6930:200;6944:4;6941:1;6938:11;6930:200;;;7005:13;;6991:28;;7042:4;7105:15;;;;7068:14;;;;6964:1;6957:9;6930:200;;;6934:3;;;7176:4;7169:5;7165:16;7159:23;7191:65;7248:6;7243:3;7239:16;7225:12;7191:65;:::i;:::-;-1:-1:-1;7304:4:40;7293:16;;7287:23;1488:10;1477:22;7362:6;7353:16;;1465:35;7418:4;7407:16;;7401:23;7433:58;7483:6;7474:16;;7401:23;7433:58;:::i;:::-;-1:-1:-1;7539:4:40;7528:16;;7522:23;1488:10;1477:22;7597:6;7588:16;;1465:35;7653:4;7642:16;;7636:23;480:13;473:21;7709:6;7700:16;;461:34;7765:4;7754:16;;7748:23;7796:6;7787:16;;7780:28;;;7824:47;7858:12;;;7748:23;7824:47;:::i;:::-;7817:54;6711:1166;-1:-1:-1;;;;;6711:1166:40:o;7882:1524::-;8061:2;8043:21;;;8109:13;;781:12;;8124:18;;;769:25;846:16;840:23;833:31;826:39;810:14;;;803:63;8197:2;8189:6;8185:15;8179:22;8174:2;8163:9;8159:18;8152:50;8024:4;8249;8241:6;8237:17;8231:24;8274:6;8317:2;8311:3;8300:9;8296:19;8289:31;8343:52;8390:3;8379:9;8375:19;8361:12;8343:52;:::i;:::-;8329:66;;8444:2;8436:6;8432:15;8426:22;8457:54;8506:3;8495:9;8491:19;8475:14;-1:-1:-1;;;;;1370:30:40;1358:43;;1305:102;8457:54;-1:-1:-1;8560:3:40;8548:16;;8542:23;1488:10;1477:22;;8623:3;8608:19;;1465:35;8574:54;8683:3;8675:6;8671:16;8665:23;8659:3;8648:9;8644:19;8637:52;8738:3;8730:6;8726:16;8720:23;8762:3;8774:71;8841:2;8830:9;8826:18;8810:14;781:12;;769:25;;857:4;846:16;;;840:23;833:31;826:39;810:14;;803:63;698:174;8774:71;8882:3;8870:16;;8864:23;8906:3;8925:18;;;8918:30;;;;8985:15;;;8979:22;1624:12;;-1:-1:-1;;;;;1620:21:40;;;9066:3;9051:19;;1608:34;1688:4;1677:16;;1671:23;1713:10;1755:21;;;1739:14;;;1732:45;1830:4;1819:16;;1813:23;1809:32;;1793:14;;;1786:56;1895:4;1884:16;;1878:23;1874:32;1858:14;;;1851:56;1960:4;1949:16;;;1943:23;1939:32;1923:14;;;1916:56;9120:6;9108:19;;9102:26;;-1:-1:-1;9137:66:40;9198:3;9183:19;;9102:26;9137:66;:::i;:::-;9240:15;;9234:22;9296;;;-1:-1:-1;;9292:36:40;9272:18;;;9265:64;9234:22;-1:-1:-1;9346:54:40;;-1:-1:-1;9300:6:40;9234:22;9346:54;:::i;:::-;9338:62;7882:1524;-1:-1:-1;;;;;;7882:1524:40:o;9411:521::-;9488:4;9494:6;9554:11;9541:25;9648:2;9644:7;9633:8;9617:14;9613:29;9609:43;9589:18;9585:68;9575:96;;9667:1;9664;9657:12;9575:96;9694:33;;9746:20;;;-1:-1:-1;;;;;;9778:30:40;;9775:50;;;9821:1;9818;9811:12;9775:50;9854:4;9842:17;;-1:-1:-1;9885:14:40;9881:27;;;9871:38;;9868:58;;;9922:1;9919;9912:12;9868:58;9411:521;;;;;:::o;9937:271::-;10120:6;10112;10107:3;10094:33;10076:3;10146:16;;10171:13;;;10146:16;9937:271;-1:-1:-1;9937:271:40:o;10213:298::-;10272:6;10325:2;10313:9;10304:7;10300:23;10296:32;10293:52;;;10341:1;10338;10331:12;10293:52;10367:23;;-1:-1:-1;;10419:43:40;;10409:54;;10399:82;;10477:1;10474;10467:12;10516:286;10575:6;10628:2;10616:9;10607:7;10603:23;10599:32;10596:52;;;10644:1;10641;10634:12;10596:52;10670:23;;-1:-1:-1;;;;;10722:31:40;;10712:42;;10702:70;;10768:1;10765;10758:12;10807:997;11123:4;11152:3;11182:6;11171:9;11164:25;11225:6;11220:2;11209:9;11205:18;11198:34;11268:6;11263:2;11252:9;11248:18;11241:34;11327:26;11323:31;11315:6;11311:44;11306:2;11295:9;11291:18;11284:72;11393:6;11387:3;11376:9;11372:19;11365:35;11437:2;11431:3;11420:9;11416:19;11409:31;11476:6;11471:2;11460:9;11456:18;11449:34;;11502:3;11555:6;11547;11542:2;11531:9;11527:18;11514:48;11611:1;11582:22;;;11578:31;;11571:42;11715:3;11700:19;;11693:35;;;;-1:-1:-1;;;;;;11765:32:40;;;;11759:3;11744:19;;11737:61;11674:2;11653:15;;;-1:-1:-1;;11649:29:40;11634:45;;;11630:54;;10807:997;-1:-1:-1;;;;;;10807:997:40:o;11809:118::-;11895:5;11888:13;11881:21;11874:5;11871:32;11861:60;;11917:1;11914;11907:12;11861:60;11809:118;:::o;11932:245::-;11999:6;12052:2;12040:9;12031:7;12027:23;12023:32;12020:52;;;12068:1;12065;12058:12;12020:52;12100:9;12094:16;12119:28;12141:5;12119:28;:::i;12182:331::-;12287:9;12298;12340:8;12328:10;12325:24;12322:44;;;12362:1;12359;12352:12;12322:44;12391:6;12381:8;12378:20;12375:40;;;12411:1;12408;12401:12;12375:40;-1:-1:-1;;12437:23:40;;;12482:25;;;;;-1:-1:-1;12182:331:40:o;12518:127::-;12579:10;12574:3;12570:20;12567:1;12560:31;12610:4;12607:1;12600:15;12634:4;12631:1;12624:15;12650:257;12722:4;12716:11;;;12754:17;;-1:-1:-1;;;;;12786:34:40;;12822:22;;;12783:62;12780:88;;;12848:18;;:::i;:::-;12884:4;12877:24;12650:257;:::o;12912:255::-;12984:2;12978:9;13026:6;13014:19;;-1:-1:-1;;;;;13048:34:40;;13084:22;;;13045:62;13042:88;;;13110:18;;:::i;13172:253::-;13244:2;13238:9;13286:4;13274:17;;-1:-1:-1;;;;;13306:34:40;;13342:22;;;13303:62;13300:88;;;13368:18;;:::i;13430:255::-;13502:2;13496:9;13544:6;13532:19;;-1:-1:-1;;;;;13566:34:40;;13602:22;;;13563:62;13560:88;;;13628:18;;:::i;13690:253::-;13762:2;13756:9;13804:4;13792:17;;-1:-1:-1;;;;;13824:34:40;;13860:22;;;13821:62;13818:88;;;13886:18;;:::i;13948:250::-;14015:2;14009:9;14057:6;14045:19;;-1:-1:-1;;;;;14079:34:40;;14115:22;;;14076:62;14073:88;;;14141:18;;:::i;14203:128::-;14268:20;;14297:28;14268:20;14297:28;:::i;:::-;14203:128;;;:::o;14336:362::-;14400:5;14448:4;14436:9;14431:3;14427:19;14423:30;14420:50;;;14466:1;14463;14456:12;14420:50;14488:22;;:::i;:::-;14479:31;;14546:9;14533:23;14526:5;14519:38;14609:2;14598:9;14594:18;14581:32;14622:30;14644:7;14622:30;:::i;:::-;14679:2;14668:14;;14661:31;14672:5;14336:362;-1:-1:-1;;14336:362:40:o;14703:719::-;14746:5;14799:3;14792:4;14784:6;14780:17;14776:27;14766:55;;14817:1;14814;14807:12;14766:55;14853:6;14840:20;-1:-1:-1;;;;;14916:2:40;14912;14909:10;14906:36;;;14922:18;;:::i;:::-;14997:2;14991:9;14965:2;15051:13;;-1:-1:-1;;15047:22:40;;;15071:2;15043:31;15039:40;15027:53;;;15095:18;;;15115:22;;;15092:46;15089:72;;;15141:18;;:::i;:::-;15181:10;15177:2;15170:22;15216:2;15208:6;15201:18;15262:3;15255:4;15250:2;15242:6;15238:15;15234:26;15231:35;15228:55;;;15279:1;15276;15269:12;15228:55;15343:2;15336:4;15328:6;15324:17;15317:4;15309:6;15305:17;15292:54;15390:1;15383:4;15378:2;15370:6;15366:15;15362:26;15355:37;15410:6;15401:15;;;;;;14703:719;;;;:::o;15427:171::-;15494:20;;-1:-1:-1;;;;;15543:30:40;;15533:41;;15523:69;;15588:1;15585;15578:12;15603:163;15670:20;;15730:10;15719:22;;15709:33;;15699:61;;15756:1;15753;15746:12;15771:696;15824:5;15872:4;15860:9;15855:3;15851:19;15847:30;15844:50;;;15890:1;15887;15880:12;15844:50;15923:2;15917:9;15965:4;15957:6;15953:17;16036:6;16024:10;16021:22;-1:-1:-1;;;;;15988:10:40;15985:34;15982:62;15979:88;;;16047:18;;:::i;:::-;16083:2;16076:22;16116:6;-1:-1:-1;16116:6:40;16146:28;16164:9;16146:28;:::i;:::-;16138:6;16131:44;16208:37;16241:2;16230:9;16226:18;16208:37;:::i;:::-;16203:2;16195:6;16191:15;16184:62;16279:37;16312:2;16301:9;16297:18;16279:37;:::i;:::-;16274:2;16266:6;16262:15;16255:62;16350:37;16383:2;16372:9;16368:18;16350:37;:::i;:::-;16345:2;16337:6;16333:15;16326:62;16422:38;16455:3;16444:9;16440:19;16422:38;:::i;:::-;16416:3;16408:6;16404:16;16397:64;;15771:696;;;;:::o;16472:153::-;16550:20;;16599:1;16589:12;;16579:40;;16615:1;16612;16605:12;16630:1421;16688:5;16736:6;16724:9;16719:3;16715:19;16711:32;16708:52;;;16756:1;16753;16746:12;16708:52;16778:22;;:::i;:::-;16769:31;;16823:39;16852:9;16823:39;:::i;:::-;16816:5;16809:54;16895:48;16939:2;16928:9;16924:18;16895:48;:::i;:::-;16890:2;16883:5;16879:14;16872:72;16976:48;17020:2;17009:9;17005:18;16976:48;:::i;:::-;16971:2;16964:5;16960:14;16953:72;17057:48;17101:2;17090:9;17086:18;17057:48;:::i;:::-;17052:2;17045:5;17041:14;17034:72;17139:49;17183:3;17172:9;17168:19;17139:49;:::i;:::-;17133:3;17126:5;17122:15;17115:74;17222:49;17266:3;17255:9;17251:19;17222:49;:::i;:::-;17216:3;17209:5;17205:15;17198:74;17305:49;17349:3;17338:9;17334:19;17305:49;:::i;:::-;17299:3;17292:5;17288:15;17281:74;17388:38;17421:3;17410:9;17406:19;17388:38;:::i;:::-;17382:3;17375:5;17371:15;17364:63;17446:3;17481:48;17525:2;17514:9;17510:18;17481:48;:::i;:::-;17465:14;;;17458:72;17549:3;17584:48;17613:18;;;17584:48;:::i;:::-;17568:14;;;17561:72;17652:3;17687:48;17716:18;;;17687:48;:::i;:::-;17671:14;;;17664:72;17755:3;17790:48;17819:18;;;17790:48;:::i;:::-;17774:14;;;17767:72;17858:3;17893:48;17922:18;;;17893:48;:::i;:::-;17877:14;;;17870:72;17961:3;17996:48;18025:18;;;17996:48;:::i;:::-;17980:14;;;17973:72;17984:5;16630:1421;-1:-1:-1;;16630:1421:40:o;18056:485::-;18106:5;18159:3;18152:4;18144:6;18140:17;18136:27;18126:55;;18177:1;18174;18167:12;18126:55;18201:22;;:::i;:::-;18245:3;18283;18275:6;18271:16;18310:3;18302:6;18299:15;18296:35;;;18327:1;18324;18317:12;18296:35;18351:6;18366:146;18382:6;18377:3;18374:15;18366:146;;;18450:17;;18438:30;;18497:4;18488:14;;;;18399;18366:146;;;-1:-1:-1;18530:5:40;;18056:485;-1:-1:-1;;;;;18056:485:40:o;18546:155::-;18626:20;;18675:1;18665:12;;18655:40;;18691:1;18688;18681:12;18706:285;18763:5;18811:4;18799:9;18794:3;18790:19;18786:30;18783:50;;;18829:1;18826;18819:12;18783:50;18851:22;;:::i;:::-;18842:31;;18909:9;18896:23;18889:5;18882:38;18980:2;18969:9;18965:18;18952:32;18947:2;18940:5;18936:14;18929:56;18706:285;;;;:::o;18996:538::-;19078:5;19131:3;19124:4;19116:6;19112:17;19108:27;19098:55;;19149:1;19146;19139:12;19098:55;19173:22;;:::i;:::-;19217:3;19255;19247:6;19243:16;19282:3;19274:6;19271:15;19268:35;;;19299:1;19296;19289:12;19268:35;19323:6;19338:167;19354:6;19349:3;19346:15;19338:167;;;19422:38;19456:3;19451;19422:38;:::i;:::-;19410:51;;19490:4;19481:14;;;;19380:4;19371:14;19338:167;;19539:698;19599:5;19652:3;19645:4;19637:6;19633:17;19629:27;19619:55;;19670:1;19667;19660:12;19619:55;19693:2;19724;19718:9;19766:3;19758:6;19754:16;19836:6;19824:10;19821:22;-1:-1:-1;;;;;19788:10:40;19785:34;19782:62;19779:88;;;19847:18;;:::i;:::-;19876:22;;19918:6;19959:3;19947:16;;19975:15;;;19972:35;;;20003:1;20000;19993:12;19972:35;20027:6;20042:165;20058:6;20053:3;20050:15;20042:165;;;20124:38;20158:3;20153;20124:38;:::i;:::-;20112:51;;20192:4;20183:14;;;;20075:12;;20042:165;;;-1:-1:-1;20225:6:40;;19539:698;-1:-1:-1;;;;;;19539:698:40:o;20242:1264::-;20304:5;20343:9;20338:3;20334:19;20373:6;20369:2;20365:15;20362:35;;;20393:1;20390;20383:12;20362:35;20415:22;;:::i;:::-;20406:31;;20460:41;20491:9;20460:41;:::i;:::-;20453:5;20446:56;20534:50;20580:2;20569:9;20565:18;20534:50;:::i;:::-;20529:2;20522:5;20518:14;20511:74;20604:6;20644:2;20638;20634:7;20630:2;20626:16;20622:25;20619:45;;;20660:1;20657;20650:12;20619:45;20688:22;;:::i;:::-;20673:37;;20735:81;20812:3;20807:2;20796:9;20792:18;20735:81;:::i;:::-;20726:7;20719:98;20851:60;20907:3;20901;20890:9;20886:19;20851:60;:::i;:::-;20846:2;20837:7;20833:16;20826:86;20946:55;20997:3;20990:4;20979:9;20975:20;20946:55;:::i;:::-;20941:2;20932:7;20928:16;20921:81;21038:55;21089:3;21082:4;21071:9;21067:20;21038:55;:::i;:::-;21031:4;21022:7;21018:18;21011:83;21130:55;21181:3;21174:4;21163:9;21159:20;21130:55;:::i;:::-;21123:4;21114:7;21110:18;21103:83;21222:55;21273:3;21266:4;21255:9;21251:20;21222:55;:::i;:::-;21215:4;21206:7;21202:18;21195:83;21314:55;21365:3;21358:4;21347:9;21343:20;21314:55;:::i;:::-;21307:4;21298:7;21294:18;21287:83;21406:53;21455:3;21450:2;21439:9;21435:18;21406:53;:::i;:::-;21399:4;21386:18;;21379:81;-1:-1:-1;21487:2:40;21476:14;;21469:31;21480:5;20242:1264;-1:-1:-1;;20242:1264:40:o;21511:659::-;21572:5;21625:3;21618:4;21610:6;21606:17;21602:27;21592:55;;21643:1;21640;21633:12;21592:55;21676:2;21670:9;21718:3;21710:6;21706:16;21788:6;21776:10;21773:22;-1:-1:-1;;;;;21740:10:40;21737:34;21734:62;21731:88;;;21799:18;;:::i;:::-;21835:2;21828:22;21870:6;21911:3;21899:16;;21927:15;;;21924:35;;;21955:1;21952;21945:12;21924:35;21979:6;21994:146;22010:6;22005:3;22002:15;21994:146;;;22078:17;;22066:30;;22125:4;22116:14;;;;22027;21994:146;;;-1:-1:-1;22158:6:40;;21511:659;-1:-1:-1;;;;;21511:659:40:o;22175:849::-;22234:5;22282:6;22270:9;22265:3;22261:19;22257:32;22254:52;;;22302:1;22299;22292:12;22254:52;22324:22;;:::i;:::-;22315:31;;22369:40;22405:3;22394:9;22369:40;:::i;:::-;22362:5;22355:55;22444:59;22499:3;22493;22482:9;22478:19;22444:59;:::i;:::-;22437:4;22430:5;22426:16;22419:85;22538:39;22571:4;22560:9;22556:20;22538:39;:::i;:::-;22531:4;22524:5;22520:16;22513:65;22612:62;22670:3;22663:4;22652:9;22648:20;22612:62;:::i;:::-;22605:4;22598:5;22594:16;22587:88;22709:39;22742:4;22731:9;22727:20;22709:39;:::i;:::-;22702:4;22695:5;22691:16;22684:65;22783:37;22814:4;22803:9;22799:20;22783:37;:::i;:::-;22776:4;22769:5;22765:16;22758:63;22872:4;22861:9;22857:20;22844:34;-1:-1:-1;;;;;22893:6:40;22890:30;22887:50;;;22933:1;22930;22923:12;22887:50;22971:46;23013:3;23004:6;22993:9;22989:22;22971:46;:::i;:::-;22964:4;22957:5;22953:16;22946:72;;22175:849;;;;:::o;23029:1493::-;23113:6;23166:2;23154:9;23145:7;23141:23;23137:32;23134:52;;;23182:1;23179;23172:12;23134:52;23222:9;23209:23;-1:-1:-1;;;;;23292:2:40;23284:6;23281:14;23278:34;;;23308:1;23305;23298:12;23278:34;23331:22;;;;23387:6;23369:16;;;23365:29;23362:49;;;23407:1;23404;23397:12;23362:49;23433:17;;:::i;:::-;23473:48;23513:7;23509:2;23473:48;:::i;:::-;23466:5;23459:63;23575:2;23571;23567:11;23554:25;23549:2;23542:5;23538:14;23531:49;23626:2;23622;23618:11;23605:25;23655:2;23645:8;23642:16;23639:36;;;23671:1;23668;23661:12;23639:36;23707:45;23744:7;23733:8;23729:2;23725:17;23707:45;:::i;:::-;23702:2;23695:5;23691:14;23684:69;;23785:31;23811:3;23807:2;23803:12;23785:31;:::i;:::-;23780:2;23773:5;23769:14;23762:55;23850:31;23876:3;23872:2;23868:12;23850:31;:::i;:::-;23844:3;23837:5;23833:15;23826:56;23936:3;23932:2;23928:12;23915:26;23909:3;23902:5;23898:15;23891:51;23975:58;24025:7;24019:3;24015:2;24011:12;23975:58;:::i;:::-;23969:3;23962:5;23958:15;23951:83;24053:3;24110:2;24106;24102:11;24089:25;24083:3;24076:5;24072:15;24065:50;24134:3;24173:46;24211:7;24206:2;24202;24198:11;24173:46;:::i;:::-;24164:6;24157:5;24153:18;24146:74;24252:52;24296:7;24290:3;24286:2;24282:12;24252:52;:::i;:::-;24247:2;24240:5;24236:14;24229:76;24351:3;24347:2;24343:12;24330:26;24314:42;;24381:2;24371:8;24368:16;24365:36;;;24397:1;24394;24387:12;24365:36;24433:58;24483:7;24472:8;24468:2;24464:17;24433:58;:::i;:::-;24417:14;;;24410:82;-1:-1:-1;24421:5:40;23029:1493;-1:-1:-1;;;;;23029:1493:40:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"MinaAccountProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"MinaAccountProvingSystemIdIsNotValid"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"MinaAccountProvingSystemIdIsNotValid","inputs":[]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50604051611582380380611582833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b6114f58061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109d4565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610b06565b6040516100e6929190610b53565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b63565b606089013561013460808b018b610b06565b60a08c013561014a6101008e0160e08f01610b92565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610bbb565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c49565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610b06565b60405161021f929190610b53565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b63565b60608a013561027160808c018c610b06565b8c60a001358d60e00160208101906102899190610b92565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610bbb565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c49565b905080156100365761030360c0850185610b06565b610311916028908290610c66565b81019061031e919061139f565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081c60208501826107b6565b50604082810151805160008684015b600782101561085b5761084981845180518252602090810151910152565b9185019160019190910190840161082b565b505050602081015192506108736102008601846107c6565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e09091015180516107008701529081015161072086015291506109059050565b505050565b8060005b60058110156107b057815184526020938401939091019060010161090e565b80516000906109609084835b6008811015610958578251825260209283019290910190600101610939565b505050602083015161096e6101008601826107fe565b50604083015163ffffffff16610840850152606083015161099361086086018261090a565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109cb8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a126103e085018361062f565b91506060850151610a2e60a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a6b81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ae061020088018461069f565b870151868503601f1901848801529150610afc9050838261092d565b9695505050505050565b6000808335601e19843603018112610b1d57600080fd5b8301803591506001600160401b03821115610b3757600080fd5b602001915036819003821315610b4c57600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b7557600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610ba457600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c4657600080fd5b50565b600060208284031215610c5b57600080fd5b81516101af81610c38565b60008085851115610c7657600080fd5b83861115610c8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cc857610cc8610c90565b60405290565b6040516101c081016001600160401b0381118282101715610cc857610cc8610c90565b604051606081016001600160401b0381118282101715610cc857610cc8610c90565b60405161010081016001600160401b0381118282101715610cc857610cc8610c90565b60405160e081016001600160401b0381118282101715610cc857610cc8610c90565b60405161016081016001600160401b0381118282101715610cc857610cc8610c90565b8035610d8681610c38565b919050565b600060408284031215610d9d57600080fd5b610da5610ca6565b9050813581526020820135610db981610c38565b602082015292915050565b600082601f830112610dd557600080fd5b81356001600160401b0380821115610def57610def610c90565b604051601f8301601f19908116603f01168101908282118183101715610e1757610e17610c90565b81604052838152866020858801011115610e3057600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d8657600080fd5b803563ffffffff81168114610d8657600080fd5b600060a08284031215610e8d57600080fd5b60405160a081018181106001600160401b0382111715610eaf57610eaf610c90565b604052905080610ebe83610e50565b8152610ecc60208401610e67565b6020820152610edd60408401610e50565b6040820152610eee60608401610e67565b6060820152610eff60808401610e50565b60808201525092915050565b803560058110610d8657600080fd5b60006101c08284031215610f2d57600080fd5b610f35610cce565b9050610f4082610f0b565b8152610f4e60208301610f0b565b6020820152610f5f60408301610f0b565b6040820152610f7060608301610f0b565b6060820152610f8160808301610f0b565b6080820152610f9260a08301610f0b565b60a0820152610fa360c08301610f0b565b60c0820152610fb460e08301610e67565b60e0820152610100610fc7818401610f0b565b90820152610120610fd9838201610f0b565b90820152610140610feb838201610f0b565b90820152610160610ffd838201610f0b565b9082015261018061100f838201610f0b565b908201526101a0611021838201610f0b565b9082015292915050565b600082601f83011261103c57600080fd5b611044610d13565b8061010084018581111561105757600080fd5b845b81811015611071578035845260209384019301611059565b509095945050505050565b803560038110610d8657600080fd5b60006040828403121561109d57600080fd5b6110a5610ca6565b9050813581526020820135602082015292915050565b600082601f8301126110cc57600080fd5b6110d4610d36565b806101c08401858111156110e757600080fd5b845b81811015611071576110fb878261108b565b84526020909301926040016110e9565b600082601f83011261111c57600080fd5b604080516101e081018181106001600160401b038211171561114057611140610c90565b604052806103c085018681111561115657600080fd5b855b818110156111795761116a888261108b565b83526020909201918401611158565b50919695505050505050565b600081830361074081121561119957600080fd5b6111a1610cf1565b91506111ac8361107c565b82526111ba6020840161107c565b602083015261070080603f19830112156111d357600080fd5b6111db610d13565b91506111ea85604086016110bb565b82526111fa85610200860161110b565b602083015261120d856105c0860161108b565b604083015261122085610600860161108b565b606083015261123385610640860161108b565b608083015261124685610680860161108b565b60a0830152611259856106c0860161108b565b60c083015261126a8582860161108b565b60e083015250604082015292915050565b600082601f83011261128c57600080fd5b60405160a081018181106001600160401b03821117156112ae576112ae610c90565b6040528060a08401858111156112c357600080fd5b845b818110156112dd5780358352602092830192016112c5565b509195945050505050565b600061096082840312156112fb57600080fd5b611303610d36565b905061130f838361102b565b815261131f836101008401611185565b60208201526113316108408301610e67565b604082015261134483610860840161127b565b60608201526113566109008301610e67565b60808201526113686109208301610d7b565b60a08201526109408201356001600160401b0381111561138757600080fd5b61139384828501610dc4565b60c08301525092915050565b6000602082840312156113b157600080fd5b81356001600160401b03808211156113c857600080fd5b908301906103c082860312156113dd57600080fd5b6113e5610d58565b6113ef8684610d8b565b81526040830135602082015260608301358281111561140d57600080fd5b61141987828601610dc4565b60408301525061142b60808401610e50565b606082015261143c60a08401610e67565b608082015260c083013560a08201526114588660e08501610d8b565b60c08201526101208084013560e083015261014061147888828701610e7b565b61010084015261148c886101e08701610f1a565b828401526103a08501359150838211156114a557600080fd5b6114b1888387016112e8565b90830152509594505050505056fea2646970667358221220e57347658ecfe7abcc6672d7ffeb26559f17fb079c7a17d0c32ba61d80983eb664736f6c63430008190033","sourceMap":"199:4351:38:-:0;;;844:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;903:7;:57;;-1:-1:-1;;;;;;903:57:38;-1:-1:-1;;;;;903:57:38;;;;;;;;;;199:4351;;14:298:40;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:40;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:40:o;:::-;199:4351:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109d4565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610b06565b6040516100e6929190610b53565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b63565b606089013561013460808b018b610b06565b60a08c013561014a6101008e0160e08f01610b92565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610bbb565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c49565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610b06565b60405161021f929190610b53565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b63565b60608a013561027160808c018c610b06565b8c60a001358d60e00160208101906102899190610b92565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610bbb565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c49565b905080156100365761030360c0850185610b06565b610311916028908290610c66565b81019061031e919061139f565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081c60208501826107b6565b50604082810151805160008684015b600782101561085b5761084981845180518252602090810151910152565b9185019160019190910190840161082b565b505050602081015192506108736102008601846107c6565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e09091015180516107008701529081015161072086015291506109059050565b505050565b8060005b60058110156107b057815184526020938401939091019060010161090e565b80516000906109609084835b6008811015610958578251825260209283019290910190600101610939565b505050602083015161096e6101008601826107fe565b50604083015163ffffffff16610840850152606083015161099361086086018261090a565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109cb8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a126103e085018361062f565b91506060850151610a2e60a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a6b81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ae061020088018461069f565b870151868503601f1901848801529150610afc9050838261092d565b9695505050505050565b6000808335601e19843603018112610b1d57600080fd5b8301803591506001600160401b03821115610b3757600080fd5b602001915036819003821315610b4c57600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b7557600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610ba457600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c4657600080fd5b50565b600060208284031215610c5b57600080fd5b81516101af81610c38565b60008085851115610c7657600080fd5b83861115610c8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cc857610cc8610c90565b60405290565b6040516101c081016001600160401b0381118282101715610cc857610cc8610c90565b604051606081016001600160401b0381118282101715610cc857610cc8610c90565b60405161010081016001600160401b0381118282101715610cc857610cc8610c90565b60405160e081016001600160401b0381118282101715610cc857610cc8610c90565b60405161016081016001600160401b0381118282101715610cc857610cc8610c90565b8035610d8681610c38565b919050565b600060408284031215610d9d57600080fd5b610da5610ca6565b9050813581526020820135610db981610c38565b602082015292915050565b600082601f830112610dd557600080fd5b81356001600160401b0380821115610def57610def610c90565b604051601f8301601f19908116603f01168101908282118183101715610e1757610e17610c90565b81604052838152866020858801011115610e3057600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d8657600080fd5b803563ffffffff81168114610d8657600080fd5b600060a08284031215610e8d57600080fd5b60405160a081018181106001600160401b0382111715610eaf57610eaf610c90565b604052905080610ebe83610e50565b8152610ecc60208401610e67565b6020820152610edd60408401610e50565b6040820152610eee60608401610e67565b6060820152610eff60808401610e50565b60808201525092915050565b803560058110610d8657600080fd5b60006101c08284031215610f2d57600080fd5b610f35610cce565b9050610f4082610f0b565b8152610f4e60208301610f0b565b6020820152610f5f60408301610f0b565b6040820152610f7060608301610f0b565b6060820152610f8160808301610f0b565b6080820152610f9260a08301610f0b565b60a0820152610fa360c08301610f0b565b60c0820152610fb460e08301610e67565b60e0820152610100610fc7818401610f0b565b90820152610120610fd9838201610f0b565b90820152610140610feb838201610f0b565b90820152610160610ffd838201610f0b565b9082015261018061100f838201610f0b565b908201526101a0611021838201610f0b565b9082015292915050565b600082601f83011261103c57600080fd5b611044610d13565b8061010084018581111561105757600080fd5b845b81811015611071578035845260209384019301611059565b509095945050505050565b803560038110610d8657600080fd5b60006040828403121561109d57600080fd5b6110a5610ca6565b9050813581526020820135602082015292915050565b600082601f8301126110cc57600080fd5b6110d4610d36565b806101c08401858111156110e757600080fd5b845b81811015611071576110fb878261108b565b84526020909301926040016110e9565b600082601f83011261111c57600080fd5b604080516101e081018181106001600160401b038211171561114057611140610c90565b604052806103c085018681111561115657600080fd5b855b818110156111795761116a888261108b565b83526020909201918401611158565b50919695505050505050565b600081830361074081121561119957600080fd5b6111a1610cf1565b91506111ac8361107c565b82526111ba6020840161107c565b602083015261070080603f19830112156111d357600080fd5b6111db610d13565b91506111ea85604086016110bb565b82526111fa85610200860161110b565b602083015261120d856105c0860161108b565b604083015261122085610600860161108b565b606083015261123385610640860161108b565b608083015261124685610680860161108b565b60a0830152611259856106c0860161108b565b60c083015261126a8582860161108b565b60e083015250604082015292915050565b600082601f83011261128c57600080fd5b60405160a081018181106001600160401b03821117156112ae576112ae610c90565b6040528060a08401858111156112c357600080fd5b845b818110156112dd5780358352602092830192016112c5565b509195945050505050565b600061096082840312156112fb57600080fd5b611303610d36565b905061130f838361102b565b815261131f836101008401611185565b60208201526113316108408301610e67565b604082015261134483610860840161127b565b60608201526113566109008301610e67565b60808201526113686109208301610d7b565b60a08201526109408201356001600160401b0381111561138757600080fd5b61139384828501610dc4565b60c08301525092915050565b6000602082840312156113b157600080fd5b81356001600160401b03808211156113c857600080fd5b908301906103c082860312156113dd57600080fd5b6113e5610d58565b6113ef8684610d8b565b81526040830135602082015260608301358281111561140d57600080fd5b61141987828601610dc4565b60408301525061142b60808401610e50565b606082015261143c60a08401610e67565b608082015260c083013560a08201526114588660e08501610d8b565b60c08201526101208084013560e083015261014061147888828701610e7b565b61010084015261148c886101e08701610f1a565b828401526103a08501359150838211156114a557600080fd5b6114b1888387016112e8565b90830152509594505050505056fea2646970667358221220e57347658ecfe7abcc6672d7ffeb26559f17fb079c7a17d0c32ba61d80983eb664736f6c63430008190033","sourceMap":"199:4351:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:655;;;;;;:::i;:::-;;:::i;:::-;;;671:14:40;;664:22;646:41;;634:2;619:18;973:655:38;;;;;;;;1634:841;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;973:655::-;1048:4;1068:35;;;;344:66;1068:61;1064:137;;1152:38;;-1:-1:-1;;;1152:38:38;;;;;;;;;;;1064:137;1211:26;1250:13;;;;:4;:13;:::i;:::-;1240:24;;;;;;;:::i;:::-;;;;;;;;;;;1282:7;;1240:24;;-1:-1:-1;;;;;;1282:7:38;;:28;;1324:20;;;1240:24;;1390:35;;;;;1439:23;;;;;;;;;:::i;:::-;1476:20;;;;1510:16;;;;1476:4;1510:16;:::i;:::-;1540:31;;;;1585:26;;;;;;;;:::i;:::-;1282:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1275:346;973:655;-1:-1:-1;;;973:655:38:o;1634:841::-;1718:14;;:::i;:::-;1748:35;;;;344:66;1748:61;1744:137;;1832:38;;-1:-1:-1;;;1832:38:38;;;;;;;;;;;1744:137;1891:26;1930:13;;;;:4;:13;:::i;:::-;1920:24;;;;;;;:::i;:::-;;;;;;;;;;;1955:22;1980:7;;1920:24;;-1:-1:-1;1955:22:38;-1:-1:-1;;;;;1980:7:38;;;;:28;;2022:20;;;1920:24;;2088:35;;;;;2137:23;;;;;;;;;:::i;:::-;2174:20;;;;2208:16;;;;2174:4;2208:16;:::i;:::-;2238:4;:31;;;2283:4;:26;;;;;;;;;;:::i;:::-;1980:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1955:364;;2334:17;2330:139;;;2385:13;;;;:4;:13;:::i;:::-;:22;;2399:6;;2385:22;;;:::i;:::-;2374:45;;;;;;;:::i;:::-;2367:52;1634:841;-1:-1:-1;;;;1634:841:38:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:391:40;104:6;157:2;145:9;136:7;132:23;128:32;125:52;;;173:1;170;163:12;125:52;213:9;200:23;-1:-1:-1;;;;;238:6:40;235:30;232:50;;;278:1;275;268:12;232:50;301:22;;357:3;339:16;;;335:26;332:46;;;374:1;371;364:12;877:423;919:3;957:5;951:12;984:6;979:3;972:19;1009:1;1019:162;1033:6;1030:1;1027:13;1019:162;;;1095:4;1151:13;;;1147:22;;1141:29;1123:11;;;1119:20;;1112:59;1048:12;1019:162;;;1023:3;1226:1;1219:4;1210:6;1205:3;1201:16;1197:27;1190:38;1289:4;1282:2;1278:7;1273:2;1265:6;1261:15;1257:29;1252:3;1248:39;1244:50;1237:57;;;877:423;;;;:::o;1983:127::-;2044:10;2039:3;2035:20;2032:1;2025:31;2075:4;2072:1;2065:15;2099:4;2096:1;2089:15;2115:143;2199:1;2192:5;2189:12;2179:46;;2205:18;;:::i;:::-;2234;;2115:143::o;2263:1834::-;2328:47;2371:3;2363:5;2357:12;2328:47;:::i;:::-;2421:4;2414:5;2410:16;2404:23;2436:58;2488:4;2483:3;2479:14;2465:12;2436:58;:::i;:::-;;2542:4;2535:5;2531:16;2525:23;2557:60;2611:4;2606:3;2602:14;2586;2557:60;:::i;:::-;;2665:4;2658:5;2654:16;2648:23;2680:60;2734:4;2729:3;2725:14;2709;2680:60;:::i;:::-;;2788:4;2781:5;2777:16;2771:23;2803:60;2857:4;2852:3;2848:14;2832;2803:60;:::i;:::-;;2911:4;2904:5;2900:16;2894:23;2926:60;2980:4;2975:3;2971:14;2955;2926:60;:::i;:::-;;3034:4;3027:5;3023:16;3017:23;3049:60;3103:4;3098:3;3094:14;3078;3049:60;:::i;:::-;;3157:4;3150:5;3146:16;3140:23;3172:49;3215:4;3210:3;3206:14;3190;1488:10;1477:22;1465:35;;1412:94;3172:49;;3240:6;3294:2;3287:5;3283:14;3277:21;3307:58;3361:2;3356:3;3352:12;3336:14;3307:58;:::i;:::-;;;3384:6;3438:2;3431:5;3427:14;3421:21;3451:58;3505:2;3500:3;3496:12;3480:14;3451:58;:::i;:::-;;;3528:6;3582:2;3575:5;3571:14;3565:21;3595:58;3649:2;3644:3;3640:12;3624:14;3595:58;:::i;:::-;;;3672:6;3727:2;3720:5;3716:14;3710:21;3740:59;3795:2;3790:3;3786:12;3769:15;3740:59;:::i;:::-;;;3818:6;3873:2;3866:5;3862:14;3856:21;3886:59;3941:2;3936:3;3932:12;3915:15;3886:59;:::i;:::-;;;3964:6;4019:2;4012:5;4008:14;4002:21;4032:59;4087:2;4082:3;4078:12;4061:15;4032:59;:::i;:::-;;;2263:1834;;:::o;4102:145::-;4188:1;4181:5;4178:12;4168:46;;4194:18;;:::i;4408:335::-;4511:5;4534:1;4544:193;4558:4;4555:1;4552:11;4544:193;;;4605:48;4649:3;4640:6;4634:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;4605:48;4682:4;4673:14;;;;;4722:4;4710:17;;;;;4578:1;4571:9;4544:193;;4748:1639;4817:49;4862:3;4854:5;4848:12;4817:49;:::i;:::-;4885:4;4935;4928:5;4924:16;4918:23;4950:60;5004:4;4999:3;4995:14;4981:12;4950:60;:::i;:::-;-1:-1:-1;5029:4:40;5070:16;;;5064:23;5139:21;;5247:1;5106:14;;;5257:195;5271:4;5268:1;5265:11;5257:195;;;5318:50;5362:5;5353:6;5347:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;5318:50;5427:15;;;;5291:1;5284:9;;;;;5390:14;;5257:195;;;5261:3;;;5509:4;5493:14;5489:25;5483:32;5461:54;;5524:65;5584:3;5579;5575:13;5559:14;5524:65;:::i;:::-;5646:4;5626:25;;5620:32;4328:12;;5715:4;5706:14;;4316:25;4390:4;4379:16;;;4373:23;4357:14;;;4350:47;5778:4;5758:25;;5752:32;4328:12;;5847:4;5838:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;5910:4;5890:25;;5884:32;4328:12;;5979:4;5970:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6042:4;6022:25;;6016:32;4328:12;;6111:4;6102:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6174:4;6154:25;;6148:32;4328:12;;6243:4;6234:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6306:4;6286:25;;;6280:32;4328:12;;6375:4;6366:14;;4316:25;4379:16;;;4373:23;4357:14;;;4350:47;6280:32;-1:-1:-1;6321:60:40;;-1:-1:-1;4252:151:40;6321:60;;4748:1639;;:::o;6392:326::-;6485:5;6508:1;6518:194;6532:4;6529:1;6526:11;6518:194;;;6591:13;;6579:26;;6628:4;6652:12;;;;6687:15;;;;6552:1;6545:9;6518:194;;6723:1166;6831:12;;6778:3;;6806:6;;6865:3;6778;6942:200;6956:4;6953:1;6950:11;6942:200;;;7017:13;;7003:28;;7054:4;7117:15;;;;7080:14;;;;6976:1;6969:9;6942:200;;;6946:3;;;7188:4;7181:5;7177:16;7171:23;7203:65;7260:6;7255:3;7251:16;7237:12;7203:65;:::i;:::-;-1:-1:-1;7316:4:40;7305:16;;7299:23;1488:10;1477:22;7374:6;7365:16;;1465:35;7430:4;7419:16;;7413:23;7445:58;7495:6;7486:16;;7413:23;7445:58;:::i;:::-;-1:-1:-1;7551:4:40;7540:16;;7534:23;1488:10;1477:22;7609:6;7600:16;;1465:35;7665:4;7654:16;;7648:23;480:13;473:21;7721:6;7712:16;;461:34;7777:4;7766:16;;7760:23;7808:6;7799:16;;7792:28;;;7836:47;7870:12;;;7760:23;7836:47;:::i;:::-;7829:54;6723:1166;-1:-1:-1;;;;;6723:1166:40:o;7894:1524::-;8073:2;8055:21;;;8121:13;;781:12;;8136:18;;;769:25;846:16;840:23;833:31;826:39;810:14;;;803:63;8209:2;8201:6;8197:15;8191:22;8186:2;8175:9;8171:18;8164:50;8036:4;8261;8253:6;8249:17;8243:24;8286:6;8329:2;8323:3;8312:9;8308:19;8301:31;8355:52;8402:3;8391:9;8387:19;8373:12;8355:52;:::i;:::-;8341:66;;8456:2;8448:6;8444:15;8438:22;8469:54;8518:3;8507:9;8503:19;8487:14;-1:-1:-1;;;;;1370:30:40;1358:43;;1305:102;8469:54;-1:-1:-1;8572:3:40;8560:16;;8554:23;1488:10;1477:22;;8635:3;8620:19;;1465:35;8586:54;8695:3;8687:6;8683:16;8677:23;8671:3;8660:9;8656:19;8649:52;8750:3;8742:6;8738:16;8732:23;8774:3;8786:71;8853:2;8842:9;8838:18;8822:14;781:12;;769:25;;857:4;846:16;;;840:23;833:31;826:39;810:14;;803:63;698:174;8786:71;8894:3;8882:16;;8876:23;8918:3;8937:18;;;8930:30;;;;8997:15;;;8991:22;1624:12;;-1:-1:-1;;;;;1620:21:40;;;9078:3;9063:19;;1608:34;1688:4;1677:16;;1671:23;1713:10;1755:21;;;1739:14;;;1732:45;1830:4;1819:16;;1813:23;1809:32;;1793:14;;;1786:56;1895:4;1884:16;;1878:23;1874:32;1858:14;;;1851:56;1960:4;1949:16;;;1943:23;1939:32;1923:14;;;1916:56;9132:6;9120:19;;9114:26;;-1:-1:-1;9149:66:40;9210:3;9195:19;;9114:26;9149:66;:::i;:::-;9252:15;;9246:22;9308;;;-1:-1:-1;;9304:36:40;9284:18;;;9277:64;9246:22;-1:-1:-1;9358:54:40;;-1:-1:-1;9312:6:40;9246:22;9358:54;:::i;:::-;9350:62;7894:1524;-1:-1:-1;;;;;;7894:1524:40:o;9423:521::-;9500:4;9506:6;9566:11;9553:25;9660:2;9656:7;9645:8;9629:14;9625:29;9621:43;9601:18;9597:68;9587:96;;9679:1;9676;9669:12;9587:96;9706:33;;9758:20;;;-1:-1:-1;;;;;;9790:30:40;;9787:50;;;9833:1;9830;9823:12;9787:50;9866:4;9854:17;;-1:-1:-1;9897:14:40;9893:27;;;9883:38;;9880:58;;;9934:1;9931;9924:12;9880:58;9423:521;;;;;:::o;9949:271::-;10132:6;10124;10119:3;10106:33;10088:3;10158:16;;10183:13;;;10158:16;9949:271;-1:-1:-1;9949:271:40:o;10225:298::-;10284:6;10337:2;10325:9;10316:7;10312:23;10308:32;10305:52;;;10353:1;10350;10343:12;10305:52;10379:23;;-1:-1:-1;;10431:43:40;;10421:54;;10411:82;;10489:1;10486;10479:12;10528:286;10587:6;10640:2;10628:9;10619:7;10615:23;10611:32;10608:52;;;10656:1;10653;10646:12;10608:52;10682:23;;-1:-1:-1;;;;;10734:31:40;;10724:42;;10714:70;;10780:1;10777;10770:12;10819:997;11135:4;11164:3;11194:6;11183:9;11176:25;11237:6;11232:2;11221:9;11217:18;11210:34;11280:6;11275:2;11264:9;11260:18;11253:34;11339:26;11335:31;11327:6;11323:44;11318:2;11307:9;11303:18;11296:72;11405:6;11399:3;11388:9;11384:19;11377:35;11449:2;11443:3;11432:9;11428:19;11421:31;11488:6;11483:2;11472:9;11468:18;11461:34;;11514:3;11567:6;11559;11554:2;11543:9;11539:18;11526:48;11623:1;11594:22;;;11590:31;;11583:42;11727:3;11712:19;;11705:35;;;;-1:-1:-1;;;;;;11777:32:40;;;;11771:3;11756:19;;11749:61;11686:2;11665:15;;;-1:-1:-1;;11661:29:40;11646:45;;;11642:54;;10819:997;-1:-1:-1;;;;;;10819:997:40:o;11821:118::-;11907:5;11900:13;11893:21;11886:5;11883:32;11873:60;;11929:1;11926;11919:12;11873:60;11821:118;:::o;11944:245::-;12011:6;12064:2;12052:9;12043:7;12039:23;12035:32;12032:52;;;12080:1;12077;12070:12;12032:52;12112:9;12106:16;12131:28;12153:5;12131:28;:::i;12194:331::-;12299:9;12310;12352:8;12340:10;12337:24;12334:44;;;12374:1;12371;12364:12;12334:44;12403:6;12393:8;12390:20;12387:40;;;12423:1;12420;12413:12;12387:40;-1:-1:-1;;12449:23:40;;;12494:25;;;;;-1:-1:-1;12194:331:40:o;12530:127::-;12591:10;12586:3;12582:20;12579:1;12572:31;12622:4;12619:1;12612:15;12646:4;12643:1;12636:15;12662:257;12734:4;12728:11;;;12766:17;;-1:-1:-1;;;;;12798:34:40;;12834:22;;;12795:62;12792:88;;;12860:18;;:::i;:::-;12896:4;12889:24;12662:257;:::o;12924:255::-;12996:2;12990:9;13038:6;13026:19;;-1:-1:-1;;;;;13060:34:40;;13096:22;;;13057:62;13054:88;;;13122:18;;:::i;13184:253::-;13256:2;13250:9;13298:4;13286:17;;-1:-1:-1;;;;;13318:34:40;;13354:22;;;13315:62;13312:88;;;13380:18;;:::i;13442:255::-;13514:2;13508:9;13556:6;13544:19;;-1:-1:-1;;;;;13578:34:40;;13614:22;;;13575:62;13572:88;;;13640:18;;:::i;13702:253::-;13774:2;13768:9;13816:4;13804:17;;-1:-1:-1;;;;;13836:34:40;;13872:22;;;13833:62;13830:88;;;13898:18;;:::i;13960:250::-;14027:2;14021:9;14069:6;14057:19;;-1:-1:-1;;;;;14091:34:40;;14127:22;;;14088:62;14085:88;;;14153:18;;:::i;14215:128::-;14280:20;;14309:28;14280:20;14309:28;:::i;:::-;14215:128;;;:::o;14348:362::-;14412:5;14460:4;14448:9;14443:3;14439:19;14435:30;14432:50;;;14478:1;14475;14468:12;14432:50;14500:22;;:::i;:::-;14491:31;;14558:9;14545:23;14538:5;14531:38;14621:2;14610:9;14606:18;14593:32;14634:30;14656:7;14634:30;:::i;:::-;14691:2;14680:14;;14673:31;14684:5;14348:362;-1:-1:-1;;14348:362:40:o;14715:719::-;14758:5;14811:3;14804:4;14796:6;14792:17;14788:27;14778:55;;14829:1;14826;14819:12;14778:55;14865:6;14852:20;-1:-1:-1;;;;;14928:2:40;14924;14921:10;14918:36;;;14934:18;;:::i;:::-;15009:2;15003:9;14977:2;15063:13;;-1:-1:-1;;15059:22:40;;;15083:2;15055:31;15051:40;15039:53;;;15107:18;;;15127:22;;;15104:46;15101:72;;;15153:18;;:::i;:::-;15193:10;15189:2;15182:22;15228:2;15220:6;15213:18;15274:3;15267:4;15262:2;15254:6;15250:15;15246:26;15243:35;15240:55;;;15291:1;15288;15281:12;15240:55;15355:2;15348:4;15340:6;15336:17;15329:4;15321:6;15317:17;15304:54;15402:1;15395:4;15390:2;15382:6;15378:15;15374:26;15367:37;15422:6;15413:15;;;;;;14715:719;;;;:::o;15439:171::-;15506:20;;-1:-1:-1;;;;;15555:30:40;;15545:41;;15535:69;;15600:1;15597;15590:12;15615:163;15682:20;;15742:10;15731:22;;15721:33;;15711:61;;15768:1;15765;15758:12;15783:696;15836:5;15884:4;15872:9;15867:3;15863:19;15859:30;15856:50;;;15902:1;15899;15892:12;15856:50;15935:2;15929:9;15977:4;15969:6;15965:17;16048:6;16036:10;16033:22;-1:-1:-1;;;;;16000:10:40;15997:34;15994:62;15991:88;;;16059:18;;:::i;:::-;16095:2;16088:22;16128:6;-1:-1:-1;16128:6:40;16158:28;16176:9;16158:28;:::i;:::-;16150:6;16143:44;16220:37;16253:2;16242:9;16238:18;16220:37;:::i;:::-;16215:2;16207:6;16203:15;16196:62;16291:37;16324:2;16313:9;16309:18;16291:37;:::i;:::-;16286:2;16278:6;16274:15;16267:62;16362:37;16395:2;16384:9;16380:18;16362:37;:::i;:::-;16357:2;16349:6;16345:15;16338:62;16434:38;16467:3;16456:9;16452:19;16434:38;:::i;:::-;16428:3;16420:6;16416:16;16409:64;;15783:696;;;;:::o;16484:153::-;16562:20;;16611:1;16601:12;;16591:40;;16627:1;16624;16617:12;16642:1421;16700:5;16748:6;16736:9;16731:3;16727:19;16723:32;16720:52;;;16768:1;16765;16758:12;16720:52;16790:22;;:::i;:::-;16781:31;;16835:39;16864:9;16835:39;:::i;:::-;16828:5;16821:54;16907:48;16951:2;16940:9;16936:18;16907:48;:::i;:::-;16902:2;16895:5;16891:14;16884:72;16988:48;17032:2;17021:9;17017:18;16988:48;:::i;:::-;16983:2;16976:5;16972:14;16965:72;17069:48;17113:2;17102:9;17098:18;17069:48;:::i;:::-;17064:2;17057:5;17053:14;17046:72;17151:49;17195:3;17184:9;17180:19;17151:49;:::i;:::-;17145:3;17138:5;17134:15;17127:74;17234:49;17278:3;17267:9;17263:19;17234:49;:::i;:::-;17228:3;17221:5;17217:15;17210:74;17317:49;17361:3;17350:9;17346:19;17317:49;:::i;:::-;17311:3;17304:5;17300:15;17293:74;17400:38;17433:3;17422:9;17418:19;17400:38;:::i;:::-;17394:3;17387:5;17383:15;17376:63;17458:3;17493:48;17537:2;17526:9;17522:18;17493:48;:::i;:::-;17477:14;;;17470:72;17561:3;17596:48;17625:18;;;17596:48;:::i;:::-;17580:14;;;17573:72;17664:3;17699:48;17728:18;;;17699:48;:::i;:::-;17683:14;;;17676:72;17767:3;17802:48;17831:18;;;17802:48;:::i;:::-;17786:14;;;17779:72;17870:3;17905:48;17934:18;;;17905:48;:::i;:::-;17889:14;;;17882:72;17973:3;18008:48;18037:18;;;18008:48;:::i;:::-;17992:14;;;17985:72;17996:5;16642:1421;-1:-1:-1;;16642:1421:40:o;18068:485::-;18118:5;18171:3;18164:4;18156:6;18152:17;18148:27;18138:55;;18189:1;18186;18179:12;18138:55;18213:22;;:::i;:::-;18257:3;18295;18287:6;18283:16;18322:3;18314:6;18311:15;18308:35;;;18339:1;18336;18329:12;18308:35;18363:6;18378:146;18394:6;18389:3;18386:15;18378:146;;;18462:17;;18450:30;;18509:4;18500:14;;;;18411;18378:146;;;-1:-1:-1;18542:5:40;;18068:485;-1:-1:-1;;;;;18068:485:40:o;18558:155::-;18638:20;;18687:1;18677:12;;18667:40;;18703:1;18700;18693:12;18718:285;18775:5;18823:4;18811:9;18806:3;18802:19;18798:30;18795:50;;;18841:1;18838;18831:12;18795:50;18863:22;;:::i;:::-;18854:31;;18921:9;18908:23;18901:5;18894:38;18992:2;18981:9;18977:18;18964:32;18959:2;18952:5;18948:14;18941:56;18718:285;;;;:::o;19008:538::-;19090:5;19143:3;19136:4;19128:6;19124:17;19120:27;19110:55;;19161:1;19158;19151:12;19110:55;19185:22;;:::i;:::-;19229:3;19267;19259:6;19255:16;19294:3;19286:6;19283:15;19280:35;;;19311:1;19308;19301:12;19280:35;19335:6;19350:167;19366:6;19361:3;19358:15;19350:167;;;19434:38;19468:3;19463;19434:38;:::i;:::-;19422:51;;19502:4;19493:14;;;;19392:4;19383:14;19350:167;;19551:698;19611:5;19664:3;19657:4;19649:6;19645:17;19641:27;19631:55;;19682:1;19679;19672:12;19631:55;19705:2;19736;19730:9;19778:3;19770:6;19766:16;19848:6;19836:10;19833:22;-1:-1:-1;;;;;19800:10:40;19797:34;19794:62;19791:88;;;19859:18;;:::i;:::-;19895:2;19888:22;19930:6;19971:3;19959:16;;19987:15;;;19984:35;;;20015:1;20012;20005:12;19984:35;20039:6;20054:165;20070:6;20065:3;20062:15;20054:165;;;20136:38;20170:3;20165;20136:38;:::i;:::-;20124:51;;20204:4;20195:14;;;;20087:12;;20054:165;;;-1:-1:-1;20237:6:40;;19551:698;-1:-1:-1;;;;;;19551:698:40:o;20254:1264::-;20316:5;20355:9;20350:3;20346:19;20385:6;20381:2;20377:15;20374:35;;;20405:1;20402;20395:12;20374:35;20427:22;;:::i;:::-;20418:31;;20472:41;20503:9;20472:41;:::i;:::-;20465:5;20458:56;20546:50;20592:2;20581:9;20577:18;20546:50;:::i;:::-;20541:2;20534:5;20530:14;20523:74;20616:6;20656:2;20650;20646:7;20642:2;20638:16;20634:25;20631:45;;;20672:1;20669;20662:12;20631:45;20700:22;;:::i;:::-;20685:37;;20747:81;20824:3;20819:2;20808:9;20804:18;20747:81;:::i;:::-;20738:7;20731:98;20863:60;20919:3;20913;20902:9;20898:19;20863:60;:::i;:::-;20858:2;20849:7;20845:16;20838:86;20958:55;21009:3;21002:4;20991:9;20987:20;20958:55;:::i;:::-;20953:2;20944:7;20940:16;20933:81;21050:55;21101:3;21094:4;21083:9;21079:20;21050:55;:::i;:::-;21043:4;21034:7;21030:18;21023:83;21142:55;21193:3;21186:4;21175:9;21171:20;21142:55;:::i;:::-;21135:4;21126:7;21122:18;21115:83;21234:55;21285:3;21278:4;21267:9;21263:20;21234:55;:::i;:::-;21227:4;21218:7;21214:18;21207:83;21326:55;21377:3;21370:4;21359:9;21355:20;21326:55;:::i;:::-;21319:4;21310:7;21306:18;21299:83;21418:53;21467:3;21462:2;21451:9;21447:18;21418:53;:::i;:::-;21411:4;21398:18;;21391:81;-1:-1:-1;21499:2:40;21488:14;;21481:31;21492:5;20254:1264;-1:-1:-1;;20254:1264:40:o;21523:659::-;21584:5;21637:3;21630:4;21622:6;21618:17;21614:27;21604:55;;21655:1;21652;21645:12;21604:55;21688:2;21682:9;21730:3;21722:6;21718:16;21800:6;21788:10;21785:22;-1:-1:-1;;;;;21752:10:40;21749:34;21746:62;21743:88;;;21811:18;;:::i;:::-;21847:2;21840:22;21882:6;21923:3;21911:16;;21939:15;;;21936:35;;;21967:1;21964;21957:12;21936:35;21991:6;22006:146;22022:6;22017:3;22014:15;22006:146;;;22090:17;;22078:30;;22137:4;22128:14;;;;22039;22006:146;;;-1:-1:-1;22170:6:40;;21523:659;-1:-1:-1;;;;;21523:659:40:o;22187:849::-;22246:5;22294:6;22282:9;22277:3;22273:19;22269:32;22266:52;;;22314:1;22311;22304:12;22266:52;22336:22;;:::i;:::-;22327:31;;22381:40;22417:3;22406:9;22381:40;:::i;:::-;22374:5;22367:55;22456:59;22511:3;22505;22494:9;22490:19;22456:59;:::i;:::-;22449:4;22442:5;22438:16;22431:85;22550:39;22583:4;22572:9;22568:20;22550:39;:::i;:::-;22543:4;22536:5;22532:16;22525:65;22624:62;22682:3;22675:4;22664:9;22660:20;22624:62;:::i;:::-;22617:4;22610:5;22606:16;22599:88;22721:39;22754:4;22743:9;22739:20;22721:39;:::i;:::-;22714:4;22707:5;22703:16;22696:65;22795:37;22826:4;22815:9;22811:20;22795:37;:::i;:::-;22788:4;22781:5;22777:16;22770:63;22884:4;22873:9;22869:20;22856:34;-1:-1:-1;;;;;22905:6:40;22902:30;22899:50;;;22945:1;22942;22935:12;22899:50;22983:46;23025:3;23016:6;23005:9;23001:22;22983:46;:::i;:::-;22976:4;22969:5;22965:16;22958:72;;22187:849;;;;:::o;23041:1493::-;23125:6;23178:2;23166:9;23157:7;23153:23;23149:32;23146:52;;;23194:1;23191;23184:12;23146:52;23234:9;23221:23;-1:-1:-1;;;;;23304:2:40;23296:6;23293:14;23290:34;;;23320:1;23317;23310:12;23290:34;23343:22;;;;23399:6;23381:16;;;23377:29;23374:49;;;23419:1;23416;23409:12;23374:49;23445:17;;:::i;:::-;23485:48;23525:7;23521:2;23485:48;:::i;:::-;23478:5;23471:63;23587:2;23583;23579:11;23566:25;23561:2;23554:5;23550:14;23543:49;23638:2;23634;23630:11;23617:25;23667:2;23657:8;23654:16;23651:36;;;23683:1;23680;23673:12;23651:36;23719:45;23756:7;23745:8;23741:2;23737:17;23719:45;:::i;:::-;23714:2;23707:5;23703:14;23696:69;;23797:31;23823:3;23819:2;23815:12;23797:31;:::i;:::-;23792:2;23785:5;23781:14;23774:55;23862:31;23888:3;23884:2;23880:12;23862:31;:::i;:::-;23856:3;23849:5;23845:15;23838:56;23948:3;23944:2;23940:12;23927:26;23921:3;23914:5;23910:15;23903:51;23987:58;24037:7;24031:3;24027:2;24023:12;23987:58;:::i;:::-;23981:3;23974:5;23970:15;23963:83;24065:3;24122:2;24118;24114:11;24101:25;24095:3;24088:5;24084:15;24077:50;24146:3;24185:46;24223:7;24218:2;24214;24210:11;24185:46;:::i;:::-;24176:6;24169:5;24165:18;24158:74;24264:52;24308:7;24302:3;24298:2;24294:12;24264:52;:::i;:::-;24259:2;24252:5;24248:14;24241:76;24363:3;24359:2;24355:12;24342:26;24326:42;;24393:2;24383:8;24380:16;24377:36;;;24409:1;24406;24399:12;24377:36;24445:58;24495:7;24484:8;24480:2;24476:17;24445:58;:::i;:::-;24429:14;;;24422:82;-1:-1:-1;24433:5:40;23041:1493;-1:-1:-1;;;;;23041:1493:40:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"MinaAccountProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"MinaAccountProvingSystemIdIsNotValid"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/abi/MinaStateSettlement.json b/core/abi/MinaStateSettlement.json index 3c7ee5a5..0588c07b 100644 --- a/core/abi/MinaStateSettlement.json +++ b/core/abi/MinaStateSettlement.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"MinaProvingSystemIdIsNotValid","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161080638038061080683398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d4565b0155506100ea9050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b818103818111156100ce57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61070d806100f96000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103df565b60405180910390f35b61008a610142565b6100bb6100b63660046104d0565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610590565b610350565b6040519015158152602001610097565b6100c56103b1565b6100c5601081565b61010e6103c0565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103c0565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d3600160106105bf565b601081106101e3576101e36105d8565b0154811461022e578060006101fa600160106105bf565b6010811061020a5761020a6105d8565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105ee565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610695565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106103396001826105bf565b60108110610349576103496105d8565b0154905090565b6000805b60108110156103a8578260108261036c6001836105bf565b61037691906105bf565b60108110610386576103866105d8565b0154036103965750600192915050565b806103a0816106be565b915050610354565b50600092915050565b600080610339600160106105bf565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104085781518352602092830192909101906001016103e9565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261043857600080fd5b813567ffffffffffffffff8082111561045357610453610411565b604051601f8301601f19908116603f0116810190828211818310171561047b5761047b610411565b8160405283815286602085880101111561049457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104cb57600080fd5b919050565b600080600080600080600080610100898b0312156104ed57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461051857600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053c57600080fd5b6105488c838d01610427565b955060a08b0135945060c08b013591508082111561056557600080fd5b506105728b828c01610427565b92505061058160e08a016104b4565b90509295985092959890939650565b6000602082840312156105a257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105d2576105d26105a9565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561064f57878301820151858401610120015291810191610630565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261068860e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156106a757600080fd5b815180151581146106b757600080fd5b9392505050565b6000600182016106d0576106d06105a9565b506001019056fea2646970667358221220167c05ed7326b8ae71040de58bfb55cc0472b92bb5177b50f7f644064d7cd5b164736f6c63430008150033","sourceMap":"473:4848:39:-:0;;;1363:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1445:7;:57;;-1:-1:-1;;;;;;1445:57:39;-1:-1:-1;;;;;1445:57:39;;;;;1567:13;-1:-1:-1;1529:34:39;-1:-1:-1;858:2:39;1529:34;:::i;:::-;1512:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;473:4848:39;;-1:-1:-1;473:4848:39;14:359:40;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:40;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:40:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;473:4848:39;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103df565b60405180910390f35b61008a610142565b6100bb6100b63660046104d0565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610590565b610350565b6040519015158152602001610097565b6100c56103b1565b6100c5601081565b61010e6103c0565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103c0565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d3600160106105bf565b601081106101e3576101e36105d8565b0154811461022e578060006101fa600160106105bf565b6010811061020a5761020a6105d8565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105ee565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610695565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106103396001826105bf565b60108110610349576103496105d8565b0154905090565b6000805b60108110156103a8578260108261036c6001836105bf565b61037691906105bf565b60108110610386576103866105d8565b0154036103965750600192915050565b806103a0816106be565b915050610354565b50600092915050565b600080610339600160106105bf565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104085781518352602092830192909101906001016103e9565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261043857600080fd5b813567ffffffffffffffff8082111561045357610453610411565b604051601f8301601f19908116603f0116810190828211818310171561047b5761047b610411565b8160405283815286602085880101111561049457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104cb57600080fd5b919050565b600080600080600080600080610100898b0312156104ed57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461051857600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053c57600080fd5b6105488c838d01610427565b955060a08b0135945060c08b013591508082111561056557600080fd5b506105728b828c01610427565b92505061058160e08a016104b4565b90509295985092959890939650565b6000602082840312156105a257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105d2576105d26105a9565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561064f57878301820151858401610120015291810191610630565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261068860e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156106a757600080fd5b815180151581146106b757600080fd5b9392505050565b6000600182016106d0576106d06105a9565b506001019056fea2646970667358221220167c05ed7326b8ae71040de58bfb55cc0472b92bb5177b50f7f644064d7cd5b164736f6c63430008150033","sourceMap":"473:4848:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2050:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:144;;;:::i;2808:2511::-;;;;;;:::i;:::-;;:::i;:::-;;1843:137;;;:::i;:::-;;;2776:25:40;;;2764:2;2749:18;1843:137:39;2630:177:40;2483:319:39;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:40;;3155:22;3137:41;;3125:2;3110:18;2483:319:39;2997:187:40;1647:135:39;;;:::i;801:59::-;;858:2;801:59;;2050:142;2104:46;;:::i;:::-;2162:23;;;;;;;;;;;-1:-1:-1;;2162:23:39;;-1:-1:-1;2162:23:39;;;;;;;;;;;;;;;;;;;;;;;;2050:142;:::o;2263:144::-;2318:46;;:::i;:::-;2376:24;;;;;;;;;;2383:17;2376:24;;;;;;2383:17;;2376:24;;;;;;;;;;;;;;;;2263:144;:::o;2808:2511::-;608:66;3156:56;;3152:155;;3235:61;;-1:-1:-1;;;3235:61:39;;;;;2776:25:40;;;2749:18;;3235:61:39;;;;;;;;3152:155;3434:4;3420:19;;3414:26;3317:34;3511;3544:1;858:2;3511:34;:::i;:::-;3494:52;;;;;;;:::i;:::-;;;3464:26;:82;3460:217;;3585:26;3613:16;3630:34;3663:1;858:2;3630:34;:::i;:::-;3613:52;;;;;;;:::i;:::-;;;3569:97;;-1:-1:-1;;;3569:97:39;;;;;3942:25:40;;;;3983:18;;;3976:34;3915:18;;3569:97:39;3768:248:40;3460:217:39;3716:19;;;;;;;;;;3772:7;;:304;;-1:-1:-1;;;3772:304:39;;3687:26;;-1:-1:-1;;;;;3772:7:39;;:28;;:304;;3814:15;;3716:19;;3875:30;;3919:18;;3951:15;;3980:11;;4005:26;;4045:21;;3772:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3746:330;;4091:18;4087:1226;;;4229:21;4287:22;4577:2;4563:17;;4712:57;;;4229:21;4787:444;4812:30;4809:1;4806:37;4787:444;;;4905:18;;4885:39;;5078:19;;5057:41;;5033:1;5016:19;;;;5193:20;;;;4977:2;4960:20;;;;5135:21;;;;4851:9;4787:444;;;4791:14;;;;;4087:1226;;;5282:20;;-1:-1:-1;;;5282:20:39;;;;;;;;;;;4087:1226;3142:2177;;;2808:2511;;;;;;;;:::o;1843:137::-;1894:7;1920:17;1938:34;1971:1;1920:17;1938:34;:::i;:::-;1920:53;;;;;;;:::i;:::-;;;1913:60;;1843:137;:::o;2483:319::-;2552:4;;2568:206;858:2;2588:1;:34;2568:206;;;2708:10;2647:17;2702:1;2665:34;2698:1;2647:17;2665:34;:::i;:::-;:38;;;;:::i;:::-;2647:57;;;;;;;:::i;:::-;;;:71;2643:121;;-1:-1:-1;2745:4:39;;2483:319;-1:-1:-1;;2483:319:39:o;2643:121::-;2624:3;;;;:::i;:::-;;;;2568:206;;;-1:-1:-1;2790:5:39;;2483:319;-1:-1:-1;;2483:319:39:o;1647:135::-;1697:7;;1740:34;1773:1;858:2;1740:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:40:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:40;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:40;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:40;1893:18;;1880:32;;-1:-1:-1;1962:2:40;1947:18;;1934:32;-1:-1:-1;;1995:43:40;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:40;2113:18;;2100:32;;-1:-1:-1;2183:3:40;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:40;;2812:180;-1:-1:-1;2812:180:40:o;3371:127::-;3432:10;3427:3;3423:20;3420:1;3413:31;3463:4;3460:1;3453:15;3487:4;3484:1;3477:15;3503:128;3570:9;;;3591:11;;;3588:37;;;3605:18;;:::i;:::-;3503:128;;;;:::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;4130:1142;4436:4;4465:3;4495:6;4484:9;4477:25;4521:2;4559:6;4554:2;4543:9;4539:18;4532:34;4602:6;4597:2;4586:9;4582:18;4575:34;4661:26;4657:31;4649:6;4645:44;4640:2;4629:9;4625:18;4618:72;4727:6;4721:3;4710:9;4706:19;4699:35;4771:2;4765:3;4754:9;4750:19;4743:31;4803:6;4797:13;4846:6;4841:2;4830:9;4826:18;4819:34;4871:1;4862:10;;4881:141;4895:6;4892:1;4889:13;4881:141;;;4991:14;;;4987:23;;4981:30;4956:17;;;4975:3;4952:27;4945:67;4910:10;;;;4881:141;;;5041:3;5031:13;;5093:1;5088:2;5079:6;5068:9;5064:22;5060:31;5053:42;5163:2;5156;5152:7;5147:2;5139:6;5135:15;5131:29;5120:9;5116:45;5112:54;5104:62;;;;;5203:6;5197:3;5186:9;5182:19;5175:35;5219:47;5261:3;5250:9;5246:19;5238:6;-1:-1:-1;;;;;4087:31:40;4075:44;;4021:104;5219:47;4130:1142;;;;;;;;;;;:::o;5277:277::-;5344:6;5397:2;5385:9;5376:7;5372:23;5368:32;5365:52;;;5413:1;5410;5403:12;5365:52;5445:9;5439:16;5498:5;5491:13;5484:21;5477:5;5474:32;5464:60;;5520:1;5517;5510:12;5464:60;5543:5;5277:277;-1:-1:-1;;;5277:277:40:o;5559:135::-;5598:3;5619:17;;;5616:43;;5639:18;;:::i;:::-;-1:-1:-1;5686:1:40;5675:13;;5559:135::o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"MinaProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"type":"error","name":"MinaProvingSystemIdIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"}},"version":1},"id":39} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"MinaProvingSystemIdIsNotValid","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b506040516107d03803806107d0833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b6106e3806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103d5565b60405180910390f35b61008a610142565b6100bb6100b63660046104c6565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610586565b610350565b6040519015158152602001610097565b6100c56103a7565b6100c5601081565b61010e6103b6565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103b6565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d36001601061059f565b601081106101e3576101e36105c6565b0154811461022e578060006101fa6001601061059f565b6010811061020a5761020a6105c6565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105dc565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610684565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b6000601061033960018261059f565b60108110610349576103496105c6565b0154905090565b6000805b601081101561039e578260108261036c60018361059f565b610376919061059f565b60108110610386576103866105c6565b0154036103965750600192915050565b600101610354565b50600092915050565b6000806103396001601061059f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103fe5781518352602092830192909101906001016103df565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261042e57600080fd5b813567ffffffffffffffff8082111561044957610449610407565b604051601f8301601f19908116603f0116810190828211818310171561047157610471610407565b8160405283815286602085880101111561048a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104c157600080fd5b919050565b600080600080600080600080610100898b0312156104e357600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461050e57600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053257600080fd5b61053e8c838d0161041d565b955060a08b0135945060c08b013591508082111561055b57600080fd5b506105688b828c0161041d565b92505061057760e08a016104aa565b90509295985092959890939650565b60006020828403121561059857600080fd5b5035919050565b818103818111156105c057634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561063e5787830182015185840161012001529181019161061f565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261067760e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561069657600080fd5b815180151581146106a657600080fd5b939250505056fea2646970667358221220a29b80757367527662e0b8b0382a899722378cafab642bbe60eb1cf263a0c23064736f6c63430008190033","sourceMap":"473:4848:38:-:0;;;1363:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1445:7;:57;;-1:-1:-1;;;;;;1445:57:38;-1:-1:-1;;;;;1445:57:38;;;;;1567:13;-1:-1:-1;1529:34:38;-1:-1:-1;858:2:38;1529:34;:::i;:::-;1512:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;473:4848:38;;-1:-1:-1;473:4848:38;14:359:39;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:39;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:39:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;473:4848:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103d5565b60405180910390f35b61008a610142565b6100bb6100b63660046104c6565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610586565b610350565b6040519015158152602001610097565b6100c56103a7565b6100c5601081565b61010e6103b6565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103b6565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d36001601061059f565b601081106101e3576101e36105c6565b0154811461022e578060006101fa6001601061059f565b6010811061020a5761020a6105c6565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105dc565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610684565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b6000601061033960018261059f565b60108110610349576103496105c6565b0154905090565b6000805b601081101561039e578260108261036c60018361059f565b610376919061059f565b60108110610386576103866105c6565b0154036103965750600192915050565b600101610354565b50600092915050565b6000806103396001601061059f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103fe5781518352602092830192909101906001016103df565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261042e57600080fd5b813567ffffffffffffffff8082111561044957610449610407565b604051601f8301601f19908116603f0116810190828211818310171561047157610471610407565b8160405283815286602085880101111561048a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104c157600080fd5b919050565b600080600080600080600080610100898b0312156104e357600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461050e57600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053257600080fd5b61053e8c838d0161041d565b955060a08b0135945060c08b013591508082111561055b57600080fd5b506105688b828c0161041d565b92505061057760e08a016104aa565b90509295985092959890939650565b60006020828403121561059857600080fd5b5035919050565b818103818111156105c057634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561063e5787830182015185840161012001529181019161061f565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261067760e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561069657600080fd5b815180151581146106a657600080fd5b939250505056fea2646970667358221220a29b80757367527662e0b8b0382a899722378cafab642bbe60eb1cf263a0c23064736f6c63430008190033","sourceMap":"473:4848:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2050:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:144;;;:::i;2808:2511::-;;;;;;:::i;:::-;;:::i;:::-;;1843:137;;;:::i;:::-;;;2776:25:39;;;2764:2;2749:18;1843:137:38;2630:177:39;2483:319:38;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:39;;3155:22;3137:41;;3125:2;3110:18;2483:319:38;2997:187:39;1647:135:38;;;:::i;801:59::-;;858:2;801:59;;2050:142;2104:46;;:::i;:::-;2162:23;;;;;;;;;;;-1:-1:-1;;2162:23:38;;-1:-1:-1;2162:23:38;;;;;;;;;;;;;;;;;;;;;;;;2050:142;:::o;2263:144::-;2318:46;;:::i;:::-;2376:24;;;;;;;;;;2383:17;2376:24;;;;;;2383:17;;2376:24;;;;;;;;;;;;;;;;2263:144;:::o;2808:2511::-;608:66;3156:56;;3152:155;;3235:61;;-1:-1:-1;;;3235:61:38;;;;;2776:25:39;;;2749:18;;3235:61:38;;;;;;;;3152:155;3434:4;3420:19;;3414:26;3317:34;3511;3544:1;858:2;3511:34;:::i;:::-;3494:52;;;;;;;:::i;:::-;;;3464:26;:82;3460:217;;3585:26;3613:16;3630:34;3663:1;858:2;3630:34;:::i;:::-;3613:52;;;;;;;:::i;:::-;;;3569:97;;-1:-1:-1;;;3569:97:38;;;;;3907:25:39;;;;3948:18;;;3941:34;3880:18;;3569:97:38;3733:248:39;3460:217:38;3716:19;;;;;;;;;;3772:7;;:304;;-1:-1:-1;;;3772:304:38;;3687:26;;-1:-1:-1;;;;;3772:7:38;;:28;;:304;;3814:15;;3716:19;;3875:30;;3919:18;;3951:15;;3980:11;;4005:26;;4045:21;;3772:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3746:330;;4091:18;4087:1226;;;4229:21;4287:22;4577:2;4563:17;;4712:57;;;4229:21;4787:444;4812:30;4809:1;4806:37;4787:444;;;4905:18;;4885:39;;5078:19;;5057:41;;5033:1;5016:19;;;;5193:20;;;;4977:2;4960:20;;;;5135:21;;;;4851:9;4787:444;;;4791:14;;;;;4087:1226;;;5282:20;;-1:-1:-1;;;5282:20:38;;;;;;;;;;;4087:1226;3142:2177;;;2808:2511;;;;;;;;:::o;1843:137::-;1894:7;1920:17;1938:34;1971:1;1920:17;1938:34;:::i;:::-;1920:53;;;;;;;:::i;:::-;;;1913:60;;1843:137;:::o;2483:319::-;2552:4;;2568:206;858:2;2588:1;:34;2568:206;;;2708:10;2647:17;2702:1;2665:34;2698:1;2647:17;2665:34;:::i;:::-;:38;;;;:::i;:::-;2647:57;;;;;;;:::i;:::-;;;:71;2643:121;;-1:-1:-1;2745:4:38;;2483:319;-1:-1:-1;;2483:319:38:o;2643:121::-;2624:3;;2568:206;;;-1:-1:-1;2790:5:38;;2483:319;-1:-1:-1;;2483:319:38:o;1647:135::-;1697:7;;1740:34;1773:1;858:2;1740:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:39:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:39;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:39;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:39;1893:18;;1880:32;;-1:-1:-1;1962:2:39;1947:18;;1934:32;-1:-1:-1;;1995:43:39;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:39;2113:18;;2100:32;;-1:-1:-1;2183:3:39;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:39;;2812:180;-1:-1:-1;2812:180:39:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:39;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:39:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"MinaProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"type":"error","name":"MinaProvingSystemIdIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/src/sdk.rs b/core/src/sdk.rs index 2e14e323..f7f9e9c2 100644 --- a/core/src/sdk.rs +++ b/core/src/sdk.rs @@ -57,9 +57,10 @@ pub async fn update_bridge_chain( ) -> Result<(), String> { let (proof, pub_input) = get_mina_proof_of_state(rpc_url, chain, eth_rpc_url).await?; - let candidate_root_state_hash = pub_input.candidate_chain_state_hashes.first().unwrap(); - if is_state_verified(&candidate_root_state_hash.to_string(), chain, eth_rpc_url).await? { - debug!("Candidate root {candidate_root_state_hash} is verified, so the bridge chain is updated"); + if pub_input.candidate_chain_state_hashes + == get_bridge_chain_state_hashes(chain, eth_rpc_url).await? + { + debug!("The bridge chain is updated to the candidate chain"); return Err("Latest chain is already verified".to_string()); } diff --git a/example/app/abi/SudokuValidity.json b/example/app/abi/SudokuValidity.json index 2a3d2811..dc38f191 100644 --- a/example/app/abi/SudokuValidity.json +++ b/example/app/abi/SudokuValidity.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x6080604052600060025534801561001557600080fd5b50604051610e75380380610e7583398101604081905261003491610081565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100b4565b80516001600160a01b038116811461007c57600080fd5b919050565b6000806040838503121561009457600080fd5b61009d83610065565b91506100ab60208401610065565b90509250929050565b610db2806100c36000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5c565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b8252806103c0850186811115610a1357600080fd5b855b81811015610a3657610a278882610949565b83526020909201918401610a15565b50919695505050505050565b6000818303610740811215610a5657600080fd5b610a5e610324565b9150610a698361093a565b8252610a776020840161093a565b602083015261070080603f1983011215610a9057600080fd5b610a98610346565b9150610aa78560408601610979565b8252610ab78561020086016109c9565b6020830152610aca856105c08601610949565b6040830152610add856106008601610949565b6060830152610af0856106408601610949565b6080830152610b03856106808601610949565b60a0830152610b16856106c08601610949565b60c0830152610b2785828601610949565b60e083015250604082015292915050565b600082601f830112610b4957600080fd5b60405160a081018181106001600160401b0382111715610b6b57610b6b6102c3565b6040528060a0840185811115610b8057600080fd5b845b81811015610b9a578035835260209283019201610b82565b509195945050505050565b60006109608284031215610bb857600080fd5b610bc0610369565b9050610bcc83836108e9565b8152610bdc836101008401610a42565b6020820152610bee6108408301610725565b6040820152610c01836108608401610b38565b6060820152610c136109008301610725565b6080820152610c2561092083016106ca565b60a08201526109408201356001600160401b03811115610c4457600080fd5b610c50848285016103ae565b60c08301525092915050565b600060208284031215610c6e57600080fd5b81356001600160401b0380821115610c8557600080fd5b908301906103c08286031215610c9a57600080fd5b610ca261038b565b610cac86846106d5565b815260408301356020820152606083013582811115610cca57600080fd5b610cd6878286016103ae565b604083015250610ce86080840161070e565b6060820152610cf960a08401610725565b608082015260c083013560a0820152610d158660e085016106d5565b60c08201526101208084013560e0830152610140610d3588828701610739565b610100840152610d49886101e087016107d8565b828401526103a0850135915083821115610d6257600080fd5b610d6e88838701610ba5565b90830152509594505050505056fea2646970667358221220823a7af578e2e8f3190cf0818370302bcc4cdb3b52ac9f8d08a657c947835d0a64736f6c63430008150033","sourceMap":"186:2909:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2909;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2909:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5c565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b8252806103c0850186811115610a1357600080fd5b855b81811015610a3657610a278882610949565b83526020909201918401610a15565b50919695505050505050565b6000818303610740811215610a5657600080fd5b610a5e610324565b9150610a698361093a565b8252610a776020840161093a565b602083015261070080603f1983011215610a9057600080fd5b610a98610346565b9150610aa78560408601610979565b8252610ab78561020086016109c9565b6020830152610aca856105c08601610949565b6040830152610add856106008601610949565b6060830152610af0856106408601610949565b6080830152610b03856106808601610949565b60a0830152610b16856106c08601610949565b60c0830152610b2785828601610949565b60e083015250604082015292915050565b600082601f830112610b4957600080fd5b60405160a081018181106001600160401b0382111715610b6b57610b6b6102c3565b6040528060a0840185811115610b8057600080fd5b845b81811015610b9a578035835260209283019201610b82565b509195945050505050565b60006109608284031215610bb857600080fd5b610bc0610369565b9050610bcc83836108e9565b8152610bdc836101008401610a42565b6020820152610bee6108408301610725565b6040820152610c01836108608401610b38565b6060820152610c136109008301610725565b6080820152610c2561092083016106ca565b60a08201526109408201356001600160401b03811115610c4457600080fd5b610c50848285016103ae565b60c08301525092915050565b600060208284031215610c6e57600080fd5b81356001600160401b0380821115610c8557600080fd5b908301906103c08286031215610c9a57600080fd5b610ca261038b565b610cac86846106d5565b815260408301356020820152606083013582811115610cca57600080fd5b610cd6878286016103ae565b604083015250610ce86080840161070e565b6060820152610cf960a08401610725565b608082015260c083013560a0820152610d158660e085016106d5565b60c08201526101208084013560e0830152610140610d3588828701610739565b610100840152610d49886101e087016107d8565b828401526103a0850135915083821115610d6257600080fd5b610d6e88838701610ba5565b90830152509594505050505056fea2646970667358221220823a7af578e2e8f3190cf0818370302bcc4cdb3b52ac9f8d08a657c947835d0a64736f6c63430008150033","sourceMap":"186:2909:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1627;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1627;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:299;;;;;;;;2083:15;2036:299;;;;2112:30;2036:299;;;;2156:18;2036:299;;;;;;;2188:15;2036:299;;;;2217:11;2036:299;;;;2242:26;2036:299;;;;2282:8;;2036:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:299:40;;;-1:-1:-1;;;;;;2036:299:40;;;;;;;;;;;2351:17;;:39;;-1:-1:-1;;;2351:39:40;;1988:347;;-1:-1:-1;2351:17:40;;:33;;:39;;1988:347;;2351:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2346:99;;2413:21;;-1:-1:-1;;;2413:21:40;;;;;;;;;;;2346:99;2455:29;;2487:17;:8;2496:6;2487:8;;:17;:::i;:::-;2455:49;;-1:-1:-1;2455:49:40;-1:-1:-1;2514:44:40;2561:59;;;;2455:49;2561:59;:::i;:::-;2932:13;;;;:22;:25;;;:13;;-1:-1:-1;2932:30:40;2928:159;;3007:15;2978:26;:44;2928:159;;;3060:16;;-1:-1:-1;;;3060:16:40;;;;;;;;;;;2928:159;1807:1286;;;;;1466:1627;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11985:22;;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482\",\"dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3","urls":["bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482","dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea26469706673582212207aece9f55ced5944e497ec451a368ea97ad33c7246a5cd86572d170c7e3881a564736f6c63430008190033","sourceMap":"186:2909:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2909;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2909:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea26469706673582212207aece9f55ced5944e497ec451a368ea97ad33c7246a5cd86572d170c7e3881a564736f6c63430008190033","sourceMap":"186:2909:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1627;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1627;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:299;;;;;;;;2083:15;2036:299;;;;2112:30;2036:299;;;;2156:18;2036:299;;;;;;;2188:15;2036:299;;;;2217:11;2036:299;;;;2242:26;2036:299;;;;2282:8;;2036:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:299:40;;;-1:-1:-1;;;;;;2036:299:40;;;;;;;;;;;2351:17;;:39;;-1:-1:-1;;;2351:39:40;;1988:347;;-1:-1:-1;2351:17:40;;:33;;:39;;1988:347;;2351:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2346:99;;2413:21;;-1:-1:-1;;;2413:21:40;;;;;;;;;;;2346:99;2455:29;;2487:17;:8;2496:6;2487:8;;:17;:::i;:::-;2455:49;;-1:-1:-1;2455:49:40;-1:-1:-1;2514:44:40;2561:59;;;;2455:49;2561:59;:::i;:::-;2932:13;;;;:22;:25;;;:13;;-1:-1:-1;2932:30:40;2928:159;;3007:15;2978:26;:44;2928:159;;;3060:16;;-1:-1:-1;;;3060:16:40;;;;;;;;;;;2928:159;1807:1286;;;;;1466:1627;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482\",\"dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3","urls":["bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482","dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file From 0a7063b8b3c91f719be9650c3731f0f65c7406fb Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:14:13 -0300 Subject: [PATCH 41/46] Select Mina state proof source (#351) * [WIP] Start adding devnet flag * Add devnet flag * Point SDK to Mina branch * Lock SDK branch * Fix settlement contract * Parameterize state and account contract addresses * Update example address and unwrap bridge addresses * Update Aligned * Reuse BATCHER_ETH_ADDR * Point SDK to VK branch * Replace aligned SM env var name with used in SDK * Fix clippy * Remove zkapp state logging --- .env.template | 4 +- Makefile | 7 +- contract/lib/aligned_layer | 2 +- contract/src/MinaStateSettlement.sol | 28 +++- contract_deployer/Cargo.lock | 2 +- contract_deployer/Cargo.toml | 2 +- contract_deployer/src/main.rs | 25 +++- core/Cargo.lock | 191 ++++++++++++++------------- core/Cargo.toml | 2 +- core/abi/MinaAccountValidation.json | 2 +- core/abi/MinaStateSettlement.json | 2 +- core/src/eth.rs | 58 +++++--- core/src/main.rs | 35 +++-- core/src/mina.rs | 7 +- core/src/proof/state_proof.rs | 1 + core/src/sdk.rs | 25 +++- core/src/utils/contract.rs | 32 ----- core/src/utils/env.rs | 7 + core/src/utils/mod.rs | 1 - example/app/Cargo.lock | 2 +- example/app/Cargo.toml | 2 +- example/app/abi/SudokuValidity.json | 2 +- example/app/src/main.rs | 42 +++--- 23 files changed, 278 insertions(+), 203 deletions(-) delete mode 100644 core/src/utils/contract.rs diff --git a/.env.template b/.env.template index 396301cc..a76b713e 100644 --- a/.env.template +++ b/.env.template @@ -1,5 +1,7 @@ ETH_CHAIN= MINA_RPC_URL= +STATE_SETTLEMENT_ETH_ADDR=

    +ACCOUNT_VALIDATION_ETH_ADDR=
    SAVE_PROOF=true/false # also false if other than "true" or variable were to be not defined ## These can be skipped if using devnet with Anvil. @@ -9,7 +11,7 @@ SAVE_PROOF=true/false # also false if other than "true" or variable were to be n # PROOF_GENERATOR_ADDR= # BRIDGE_HOLESKY_ETH_ADDR= # BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR= -# ALIGNED_SM_HOLESKY_ETH_ADDR= +# ALIGNED_SERVICE_MANAGER_ADDR= ## You can choose to use a keystore or private key for your signing wallet. ## Leave empty if choosing Anvil Devnet. diff --git a/Makefile b/Makefile index 92efab77..f7317dcd 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,11 @@ -.PHONY: submit-state submit-account gen_contract_abi deploy_contract +.PHONY: submit_mainnet_state submit_devnet_state submit_account gen_contract_abi deploy_contract -submit_state: +submit_mainnet_state: @cargo run --manifest-path core/Cargo.toml --release -- submit-state +submit_devnet_state: + @cargo run --manifest-path core/Cargo.toml --release -- submit-state --devnet + submit_account: @cargo run --manifest-path core/Cargo.toml --release -- submit-account ${PUBLIC_KEY} ${STATE_HASH} diff --git a/contract/lib/aligned_layer b/contract/lib/aligned_layer index 9bac7bc5..56ac3a2e 160000 --- a/contract/lib/aligned_layer +++ b/contract/lib/aligned_layer @@ -1 +1 @@ -Subproject commit 9bac7bc5a683ea1f68db9a928bed9a87e5f7b97f +Subproject commit 56ac3a2e0a2d8accbc5466d6491ca082b45723cc diff --git a/contract/src/MinaStateSettlement.sol b/contract/src/MinaStateSettlement.sol index 10a0d9e7..f00835d7 100644 --- a/contract/src/MinaStateSettlement.sol +++ b/contract/src/MinaStateSettlement.sol @@ -3,9 +3,10 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; -error MinaProvingSystemIdIsNotValid(bytes32); // f92aa66a -error NewStateIsNotValid(); // 114602f0 -error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); // bbd80128 +error MinaProvingSystemIdIsNotValid(bytes32); +error MinaNetworkIsWrong(); +error NewStateIsNotValid(); +error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); error AccountIsNotValid(bytes32 accountIdHash); /// @title Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain. @@ -24,12 +25,15 @@ contract MinaStateSettlement { /// the bridge's transition frontier). bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] chainLedgerHashes; + bool devnetFlag; + /// @notice Reference to the AlignedLayerServiceManager contract. AlignedLayerServiceManager aligned; - constructor(address payable _alignedServiceAddr, bytes32 _tipStateHash) { + constructor(address payable _alignedServiceAddr, bytes32 _tipStateHash, bool _devnetFlag) { aligned = AlignedLayerServiceManager(_alignedServiceAddr); chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] = _tipStateHash; + devnetFlag = _devnetFlag; } /// @notice Returns the last verified state hash. @@ -76,9 +80,18 @@ contract MinaStateSettlement { revert MinaProvingSystemIdIsNotValid(provingSystemAuxDataCommitment); } + bool pubInputDevnetFlag; + assembly { + pubInputDevnetFlag := mload(add(pubInput, 0x20)) + } + + if (pubInputDevnetFlag != devnetFlag) { + revert MinaNetworkIsWrong(); + } + bytes32 pubInputBridgeTipStateHash; assembly { - pubInputBridgeTipStateHash := mload(add(pubInput, 0x20)) + pubInputBridgeTipStateHash := mload(add(pubInput, 0x21)) } if (pubInputBridgeTipStateHash != chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]) { @@ -105,9 +118,10 @@ contract MinaStateSettlement { let slot_ledgers := chainLedgerHashes.slot // first 32 bytes is length of byte array. - // second 32 bytes is the bridge tip state hash + // the next byte is the Devnet flag + // the next 32 bytes set is the bridge tip state hash // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are state hashes. - let addr_states := add(pubInput, 64) + let addr_states := add(pubInput, 65) // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are ledger hashes. let addr_ledgers := add(addr_states, mul(32, BRIDGE_TRANSITION_FRONTIER_LEN)) diff --git a/contract_deployer/Cargo.lock b/contract_deployer/Cargo.lock index 99ef5e95..a7f6181a 100644 --- a/contract_deployer/Cargo.lock +++ b/contract_deployer/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#9bac7bc5a683ea1f68db9a928bed9a87e5f7b97f" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=use_two_vks#56ac3a2e0a2d8accbc5466d6491ca082b45723cc" dependencies = [ "ciborium", "ethers", diff --git a/contract_deployer/Cargo.toml b/contract_deployer/Cargo.toml index 777c466b..b18ea42b 100644 --- a/contract_deployer/Cargo.toml +++ b/contract_deployer/Cargo.toml @@ -16,7 +16,7 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ mina-curves = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } o1-utils = { git = "https://github.com/lambdaclass/proof-systems", branch = "add-verifier-serializations" } kimchi = { git = "https://github.com/openmina/proof-systems", branch = "ledger-newtypes-rampup4-vrf" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_7_for_real" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "use_two_vks" } serde = { version = "1.0", features = ["derive"] } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } bincode = "1.3.3" diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index 49c2a1d8..be2f76c9 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -1,3 +1,4 @@ +use aligned_sdk::core::types::Chain; use log::{debug, error, info}; use mina_bridge_core::{ eth::{ @@ -6,8 +7,9 @@ use mina_bridge_core::{ }, mina::query_root, utils::{ - constants::BRIDGE_TRANSITION_FRONTIER_LEN, contract::get_aligned_sm_contract_addr, - env::EnvironmentVariables, wallet_alloy::get_wallet, + constants::{ALIGNED_SM_DEVNET_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN}, + env::EnvironmentVariables, + wallet_alloy::get_wallet, }, }; use std::process; @@ -43,7 +45,13 @@ async fn main() { process::exit(1); }); - let aligned_sm_addr = get_aligned_sm_contract_addr(&chain).unwrap_or_else(|err| { + let aligned_sm_addr = match chain { + Chain::Devnet => Ok(ALIGNED_SM_DEVNET_ETH_ADDR.to_owned()), + Chain::Holesky => std::env::var("ALIGNED_SERVICE_MANAGER_ADDR") + .map_err(|err| format!("Error getting Aligned SM contract address: {err}")), + _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), + } + .unwrap_or_else(|err| { error!("{err}"); process::exit(1); }); @@ -67,7 +75,16 @@ async fn main() { process::exit(1); }); - deploy_mina_bridge_contract(ð_rpc_url, bridge_constructor_args, &wallet) + // Contract for Devnet state proofs + deploy_mina_bridge_contract(ð_rpc_url, &bridge_constructor_args, &wallet, true) + .await + .unwrap_or_else(|err| { + error!("Failed to deploy contract: {err}"); + process::exit(1); + }); + + // Contract for Mainnet state proofs + deploy_mina_bridge_contract(ð_rpc_url, &bridge_constructor_args, &wallet, false) .await .unwrap_or_else(|err| { error!("Failed to deploy contract: {err}"); diff --git a/core/Cargo.lock b/core/Cargo.lock index dd704d21..5b6af7e4 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#9bac7bc5a683ea1f68db9a928bed9a87e5f7b97f" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=use_two_vks#56ac3a2e0a2d8accbc5466d6491ca082b45723cc" dependencies = [ "ciborium", "ethers", @@ -123,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "805f7a974de5804f5c053edc6ca43b20883bdd3a733b3691200ae3a4b454a2db" +checksum = "8158b4878c67837e5413721cc44298e6a2d88d39203175ea025e51892a16ba4c" dependencies = [ "num_enum", "strum 0.26.3", @@ -168,9 +168,9 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d0063d10c79086b787ce24a19b417cc00f7a8a58f5dd7a19b3483b61b1ac7b8" +checksum = "5ce854562e7cafd5049189d0268d6e5cba05fe6c9cb7c6f8126a79b94800629c" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -181,9 +181,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c538495c47bc558bd3bb7becf9bde6172dacd5e1fc77531cdd584eb1c248f973" +checksum = "0b499852e1d0e9b8c6db0f24c48998e647c0d5762a01090f955106a7700e4611" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -250,9 +250,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ebb591e349f3aab48a38da25ee1e2d1a3f4026d466b2e3160c618166b07aa4" +checksum = "a438d4486b5d525df3b3004188f9d5cd1d65cd30ecc41e5a3ccef6f6342e8af9" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -309,9 +309,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f778fe4183cecaec41361e65869e81e748c44a77fa3e6ba20219ca92be33a19" +checksum = "260d3ff3bff0bb84599f032a2f2c6828180b0ea0cd41fdaf44f39cef3ba41861" dependencies = [ "alloy-rlp", "bytes", @@ -409,7 +409,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -528,23 +528,23 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd94eff5a90844c341b39f78227eef5d6890e2ce65c934d97b3f9d724234cc8" +checksum = "68e7f6e8fe5b443f82b3f1e15abfa191128f71569148428e49449d01f6f49e8b" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d900423cebf57657f5b18945031edd82b8d3c481c055e00574653ac70acb1305" +checksum = "6b96ce28d2fde09abb6135f410c41fad670a3a770b6776869bd852f1df102e6f" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -554,16 +554,16 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58171163ee466fa907c974e0fb945ecde589217006c401d9414ac00316b63e0a" +checksum = "906746396a8296537745711630d9185746c0b50c033d5e9d18b0a6eba3d53f90" dependencies = [ "alloy-json-abi", "const-hex", @@ -572,15 +572,15 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.77", + "syn 2.0.79", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51ebc7c9a94d3a5d2aa29108323d70c890ae97cda38a3598e8b5ebd34fe7d01" +checksum = "bc85178909a49c8827ffccfc9103a7ce1767ae66a801b69bdc326913870bf8e6" dependencies = [ "serde", "winnow", @@ -588,9 +588,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092cce3d2618d5e16e04306796c839c2b20585b591dcc9d64d0897a10c5bd086" +checksum = "d86a533ce22525969661b25dfe296c112d35eb6861f188fd284f8bd4bb3842ae" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -957,7 +957,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -968,7 +968,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -999,14 +999,14 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" @@ -1332,9 +1332,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.21" +version = "1.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" +checksum = "3bbb537bb4a30b90362caddba8f360c0a56bc13d3a5570028e7197204cb54a17" dependencies = [ "jobserver", "libc", @@ -1430,7 +1430,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1527,9 +1527,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" dependencies = [ "cfg-if", "cpufeatures", @@ -1718,7 +1718,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1740,7 +1740,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1804,7 +1804,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1824,7 +1824,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "unicode-xid", ] @@ -2011,7 +2011,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2185,7 +2185,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.77", + "syn 2.0.79", "toml 0.8.19", "walkdir", ] @@ -2202,7 +2202,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2227,7 +2227,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.77", + "syn 2.0.79", "tempfile", "thiserror", "tiny-keccak", @@ -2425,9 +2425,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide", @@ -2545,7 +2545,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -3428,7 +3428,7 @@ checksum = "cb26336e6dc7cc76e7927d2c9e7e3bb376d7af65a6f56a0b16c47d18a9b1abc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -3818,7 +3818,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -3878,9 +3878,12 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" +dependencies = [ + "portable-atomic", +] [[package]] name = "opaque-debug" @@ -3944,7 +3947,7 @@ source = "git+https://github.com/lambdaclass/openmina/?branch=mina_bridge#fb6768 dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -3970,7 +3973,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4066,7 +4069,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.5", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -4192,7 +4195,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4230,7 +4233,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4285,6 +4288,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "portable-atomic" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" + [[package]] name = "postcard" version = "1.0.10" @@ -4326,7 +4335,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4405,7 +4414,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4553,9 +4562,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62871f2d65009c0256aed1b9cfeeb8ac272833c404e13d53d400cd0dad7a2ac0" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] @@ -4585,9 +4594,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.6" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", @@ -4597,9 +4606,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", @@ -4608,9 +4617,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" @@ -4941,9 +4950,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" [[package]] name = "rustls-webpki" @@ -5162,7 +5171,7 @@ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5185,14 +5194,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -5258,7 +5267,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5490,7 +5499,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5532,9 +5541,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -5543,14 +5552,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27243031e95471f24108f05d00df2803932aaa7b9e461e69b95537d02613e3bf" +checksum = "0ab661c8148c2261222a4d641ad5477fd4bea79406a99056096a0b41b35617a5" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5609,9 +5618,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", @@ -5648,7 +5657,7 @@ checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5739,7 +5748,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5919,7 +5928,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -6012,9 +6021,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -6210,7 +6219,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "wasm-bindgen-shared", ] @@ -6244,7 +6253,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6533,9 +6542,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c52ac009d615e79296318c1bcce2d422aaca15ad08515e344feeda07df67a587" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -6602,7 +6611,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -6622,7 +6631,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] diff --git a/core/Cargo.toml b/core/Cargo.toml index 141e078e..de509619 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -22,7 +22,7 @@ ark-poly = { version = "0.3.0", features = ["parallel"] } ark-serialize = "0.3.0" mina-tree = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } mina-p2p-messages = { git = "https://github.com/lambdaclass/openmina/", branch = "mina_bridge" } -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_7_for_real" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "use_two_vks" } ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json index 543753fa..6e98cf59 100644 --- a/core/abi/MinaAccountValidation.json +++ b/core/abi/MinaAccountValidation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"MinaAccountProvingSystemIdIsNotValid","inputs":[]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50604051611582380380611582833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b6114f58061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109d4565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610b06565b6040516100e6929190610b53565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b63565b606089013561013460808b018b610b06565b60a08c013561014a6101008e0160e08f01610b92565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610bbb565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c49565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610b06565b60405161021f929190610b53565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b63565b60608a013561027160808c018c610b06565b8c60a001358d60e00160208101906102899190610b92565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610bbb565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c49565b905080156100365761030360c0850185610b06565b610311916028908290610c66565b81019061031e919061139f565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081c60208501826107b6565b50604082810151805160008684015b600782101561085b5761084981845180518252602090810151910152565b9185019160019190910190840161082b565b505050602081015192506108736102008601846107c6565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e09091015180516107008701529081015161072086015291506109059050565b505050565b8060005b60058110156107b057815184526020938401939091019060010161090e565b80516000906109609084835b6008811015610958578251825260209283019290910190600101610939565b505050602083015161096e6101008601826107fe565b50604083015163ffffffff16610840850152606083015161099361086086018261090a565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109cb8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a126103e085018361062f565b91506060850151610a2e60a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a6b81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ae061020088018461069f565b870151868503601f1901848801529150610afc9050838261092d565b9695505050505050565b6000808335601e19843603018112610b1d57600080fd5b8301803591506001600160401b03821115610b3757600080fd5b602001915036819003821315610b4c57600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b7557600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610ba457600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c4657600080fd5b50565b600060208284031215610c5b57600080fd5b81516101af81610c38565b60008085851115610c7657600080fd5b83861115610c8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cc857610cc8610c90565b60405290565b6040516101c081016001600160401b0381118282101715610cc857610cc8610c90565b604051606081016001600160401b0381118282101715610cc857610cc8610c90565b60405161010081016001600160401b0381118282101715610cc857610cc8610c90565b60405160e081016001600160401b0381118282101715610cc857610cc8610c90565b60405161016081016001600160401b0381118282101715610cc857610cc8610c90565b8035610d8681610c38565b919050565b600060408284031215610d9d57600080fd5b610da5610ca6565b9050813581526020820135610db981610c38565b602082015292915050565b600082601f830112610dd557600080fd5b81356001600160401b0380821115610def57610def610c90565b604051601f8301601f19908116603f01168101908282118183101715610e1757610e17610c90565b81604052838152866020858801011115610e3057600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d8657600080fd5b803563ffffffff81168114610d8657600080fd5b600060a08284031215610e8d57600080fd5b60405160a081018181106001600160401b0382111715610eaf57610eaf610c90565b604052905080610ebe83610e50565b8152610ecc60208401610e67565b6020820152610edd60408401610e50565b6040820152610eee60608401610e67565b6060820152610eff60808401610e50565b60808201525092915050565b803560058110610d8657600080fd5b60006101c08284031215610f2d57600080fd5b610f35610cce565b9050610f4082610f0b565b8152610f4e60208301610f0b565b6020820152610f5f60408301610f0b565b6040820152610f7060608301610f0b565b6060820152610f8160808301610f0b565b6080820152610f9260a08301610f0b565b60a0820152610fa360c08301610f0b565b60c0820152610fb460e08301610e67565b60e0820152610100610fc7818401610f0b565b90820152610120610fd9838201610f0b565b90820152610140610feb838201610f0b565b90820152610160610ffd838201610f0b565b9082015261018061100f838201610f0b565b908201526101a0611021838201610f0b565b9082015292915050565b600082601f83011261103c57600080fd5b611044610d13565b8061010084018581111561105757600080fd5b845b81811015611071578035845260209384019301611059565b509095945050505050565b803560038110610d8657600080fd5b60006040828403121561109d57600080fd5b6110a5610ca6565b9050813581526020820135602082015292915050565b600082601f8301126110cc57600080fd5b6110d4610d36565b806101c08401858111156110e757600080fd5b845b81811015611071576110fb878261108b565b84526020909301926040016110e9565b600082601f83011261111c57600080fd5b604080516101e081018181106001600160401b038211171561114057611140610c90565b604052806103c085018681111561115657600080fd5b855b818110156111795761116a888261108b565b83526020909201918401611158565b50919695505050505050565b600081830361074081121561119957600080fd5b6111a1610cf1565b91506111ac8361107c565b82526111ba6020840161107c565b602083015261070080603f19830112156111d357600080fd5b6111db610d13565b91506111ea85604086016110bb565b82526111fa85610200860161110b565b602083015261120d856105c0860161108b565b604083015261122085610600860161108b565b606083015261123385610640860161108b565b608083015261124685610680860161108b565b60a0830152611259856106c0860161108b565b60c083015261126a8582860161108b565b60e083015250604082015292915050565b600082601f83011261128c57600080fd5b60405160a081018181106001600160401b03821117156112ae576112ae610c90565b6040528060a08401858111156112c357600080fd5b845b818110156112dd5780358352602092830192016112c5565b509195945050505050565b600061096082840312156112fb57600080fd5b611303610d36565b905061130f838361102b565b815261131f836101008401611185565b60208201526113316108408301610e67565b604082015261134483610860840161127b565b60608201526113566109008301610e67565b60808201526113686109208301610d7b565b60a08201526109408201356001600160401b0381111561138757600080fd5b61139384828501610dc4565b60c08301525092915050565b6000602082840312156113b157600080fd5b81356001600160401b03808211156113c857600080fd5b908301906103c082860312156113dd57600080fd5b6113e5610d58565b6113ef8684610d8b565b81526040830135602082015260608301358281111561140d57600080fd5b61141987828601610dc4565b60408301525061142b60808401610e50565b606082015261143c60a08401610e67565b608082015260c083013560a08201526114588660e08501610d8b565b60c08201526101208084013560e083015261014061147888828701610e7b565b61010084015261148c886101e08701610f1a565b828401526103a08501359150838211156114a557600080fd5b6114b1888387016112e8565b90830152509594505050505056fea2646970667358221220e57347658ecfe7abcc6672d7ffeb26559f17fb079c7a17d0c32ba61d80983eb664736f6c63430008190033","sourceMap":"199:4351:38:-:0;;;844:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;903:7;:57;;-1:-1:-1;;;;;;903:57:38;-1:-1:-1;;;;;903:57:38;;;;;;;;;;199:4351;;14:298:40;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:40;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:40:o;:::-;199:4351:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109d4565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610b06565b6040516100e6929190610b53565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b63565b606089013561013460808b018b610b06565b60a08c013561014a6101008e0160e08f01610b92565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610bbb565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c49565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610b06565b60405161021f929190610b53565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b63565b60608a013561027160808c018c610b06565b8c60a001358d60e00160208101906102899190610b92565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610bbb565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c49565b905080156100365761030360c0850185610b06565b610311916028908290610c66565b81019061031e919061139f565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081c60208501826107b6565b50604082810151805160008684015b600782101561085b5761084981845180518252602090810151910152565b9185019160019190910190840161082b565b505050602081015192506108736102008601846107c6565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e09091015180516107008701529081015161072086015291506109059050565b505050565b8060005b60058110156107b057815184526020938401939091019060010161090e565b80516000906109609084835b6008811015610958578251825260209283019290910190600101610939565b505050602083015161096e6101008601826107fe565b50604083015163ffffffff16610840850152606083015161099361086086018261090a565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109cb8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a126103e085018361062f565b91506060850151610a2e60a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a6b81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ae061020088018461069f565b870151868503601f1901848801529150610afc9050838261092d565b9695505050505050565b6000808335601e19843603018112610b1d57600080fd5b8301803591506001600160401b03821115610b3757600080fd5b602001915036819003821315610b4c57600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b7557600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610ba457600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c4657600080fd5b50565b600060208284031215610c5b57600080fd5b81516101af81610c38565b60008085851115610c7657600080fd5b83861115610c8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cc857610cc8610c90565b60405290565b6040516101c081016001600160401b0381118282101715610cc857610cc8610c90565b604051606081016001600160401b0381118282101715610cc857610cc8610c90565b60405161010081016001600160401b0381118282101715610cc857610cc8610c90565b60405160e081016001600160401b0381118282101715610cc857610cc8610c90565b60405161016081016001600160401b0381118282101715610cc857610cc8610c90565b8035610d8681610c38565b919050565b600060408284031215610d9d57600080fd5b610da5610ca6565b9050813581526020820135610db981610c38565b602082015292915050565b600082601f830112610dd557600080fd5b81356001600160401b0380821115610def57610def610c90565b604051601f8301601f19908116603f01168101908282118183101715610e1757610e17610c90565b81604052838152866020858801011115610e3057600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d8657600080fd5b803563ffffffff81168114610d8657600080fd5b600060a08284031215610e8d57600080fd5b60405160a081018181106001600160401b0382111715610eaf57610eaf610c90565b604052905080610ebe83610e50565b8152610ecc60208401610e67565b6020820152610edd60408401610e50565b6040820152610eee60608401610e67565b6060820152610eff60808401610e50565b60808201525092915050565b803560058110610d8657600080fd5b60006101c08284031215610f2d57600080fd5b610f35610cce565b9050610f4082610f0b565b8152610f4e60208301610f0b565b6020820152610f5f60408301610f0b565b6040820152610f7060608301610f0b565b6060820152610f8160808301610f0b565b6080820152610f9260a08301610f0b565b60a0820152610fa360c08301610f0b565b60c0820152610fb460e08301610e67565b60e0820152610100610fc7818401610f0b565b90820152610120610fd9838201610f0b565b90820152610140610feb838201610f0b565b90820152610160610ffd838201610f0b565b9082015261018061100f838201610f0b565b908201526101a0611021838201610f0b565b9082015292915050565b600082601f83011261103c57600080fd5b611044610d13565b8061010084018581111561105757600080fd5b845b81811015611071578035845260209384019301611059565b509095945050505050565b803560038110610d8657600080fd5b60006040828403121561109d57600080fd5b6110a5610ca6565b9050813581526020820135602082015292915050565b600082601f8301126110cc57600080fd5b6110d4610d36565b806101c08401858111156110e757600080fd5b845b81811015611071576110fb878261108b565b84526020909301926040016110e9565b600082601f83011261111c57600080fd5b604080516101e081018181106001600160401b038211171561114057611140610c90565b604052806103c085018681111561115657600080fd5b855b818110156111795761116a888261108b565b83526020909201918401611158565b50919695505050505050565b600081830361074081121561119957600080fd5b6111a1610cf1565b91506111ac8361107c565b82526111ba6020840161107c565b602083015261070080603f19830112156111d357600080fd5b6111db610d13565b91506111ea85604086016110bb565b82526111fa85610200860161110b565b602083015261120d856105c0860161108b565b604083015261122085610600860161108b565b606083015261123385610640860161108b565b608083015261124685610680860161108b565b60a0830152611259856106c0860161108b565b60c083015261126a8582860161108b565b60e083015250604082015292915050565b600082601f83011261128c57600080fd5b60405160a081018181106001600160401b03821117156112ae576112ae610c90565b6040528060a08401858111156112c357600080fd5b845b818110156112dd5780358352602092830192016112c5565b509195945050505050565b600061096082840312156112fb57600080fd5b611303610d36565b905061130f838361102b565b815261131f836101008401611185565b60208201526113316108408301610e67565b604082015261134483610860840161127b565b60608201526113566109008301610e67565b60808201526113686109208301610d7b565b60a08201526109408201356001600160401b0381111561138757600080fd5b61139384828501610dc4565b60c08301525092915050565b6000602082840312156113b157600080fd5b81356001600160401b03808211156113c857600080fd5b908301906103c082860312156113dd57600080fd5b6113e5610d58565b6113ef8684610d8b565b81526040830135602082015260608301358281111561140d57600080fd5b61141987828601610dc4565b60408301525061142b60808401610e50565b606082015261143c60a08401610e67565b608082015260c083013560a08201526114588660e08501610d8b565b60c08201526101208084013560e083015261014061147888828701610e7b565b61010084015261148c886101e08701610f1a565b828401526103a08501359150838211156114a557600080fd5b6114b1888387016112e8565b90830152509594505050505056fea2646970667358221220e57347658ecfe7abcc6672d7ffeb26559f17fb079c7a17d0c32ba61d80983eb664736f6c63430008190033","sourceMap":"199:4351:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:655;;;;;;:::i;:::-;;:::i;:::-;;;671:14:40;;664:22;646:41;;634:2;619:18;973:655:38;;;;;;;;1634:841;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;973:655::-;1048:4;1068:35;;;;344:66;1068:61;1064:137;;1152:38;;-1:-1:-1;;;1152:38:38;;;;;;;;;;;1064:137;1211:26;1250:13;;;;:4;:13;:::i;:::-;1240:24;;;;;;;:::i;:::-;;;;;;;;;;;1282:7;;1240:24;;-1:-1:-1;;;;;;1282:7:38;;:28;;1324:20;;;1240:24;;1390:35;;;;;1439:23;;;;;;;;;:::i;:::-;1476:20;;;;1510:16;;;;1476:4;1510:16;:::i;:::-;1540:31;;;;1585:26;;;;;;;;:::i;:::-;1282:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1275:346;973:655;-1:-1:-1;;;973:655:38:o;1634:841::-;1718:14;;:::i;:::-;1748:35;;;;344:66;1748:61;1744:137;;1832:38;;-1:-1:-1;;;1832:38:38;;;;;;;;;;;1744:137;1891:26;1930:13;;;;:4;:13;:::i;:::-;1920:24;;;;;;;:::i;:::-;;;;;;;;;;;1955:22;1980:7;;1920:24;;-1:-1:-1;1955:22:38;-1:-1:-1;;;;;1980:7:38;;;;:28;;2022:20;;;1920:24;;2088:35;;;;;2137:23;;;;;;;;;:::i;:::-;2174:20;;;;2208:16;;;;2174:4;2208:16;:::i;:::-;2238:4;:31;;;2283:4;:26;;;;;;;;;;:::i;:::-;1980:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1955:364;;2334:17;2330:139;;;2385:13;;;;:4;:13;:::i;:::-;:22;;2399:6;;2385:22;;;:::i;:::-;2374:45;;;;;;;:::i;:::-;2367:52;1634:841;-1:-1:-1;;;;1634:841:38:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:391:40;104:6;157:2;145:9;136:7;132:23;128:32;125:52;;;173:1;170;163:12;125:52;213:9;200:23;-1:-1:-1;;;;;238:6:40;235:30;232:50;;;278:1;275;268:12;232:50;301:22;;357:3;339:16;;;335:26;332:46;;;374:1;371;364:12;877:423;919:3;957:5;951:12;984:6;979:3;972:19;1009:1;1019:162;1033:6;1030:1;1027:13;1019:162;;;1095:4;1151:13;;;1147:22;;1141:29;1123:11;;;1119:20;;1112:59;1048:12;1019:162;;;1023:3;1226:1;1219:4;1210:6;1205:3;1201:16;1197:27;1190:38;1289:4;1282:2;1278:7;1273:2;1265:6;1261:15;1257:29;1252:3;1248:39;1244:50;1237:57;;;877:423;;;;:::o;1983:127::-;2044:10;2039:3;2035:20;2032:1;2025:31;2075:4;2072:1;2065:15;2099:4;2096:1;2089:15;2115:143;2199:1;2192:5;2189:12;2179:46;;2205:18;;:::i;:::-;2234;;2115:143::o;2263:1834::-;2328:47;2371:3;2363:5;2357:12;2328:47;:::i;:::-;2421:4;2414:5;2410:16;2404:23;2436:58;2488:4;2483:3;2479:14;2465:12;2436:58;:::i;:::-;;2542:4;2535:5;2531:16;2525:23;2557:60;2611:4;2606:3;2602:14;2586;2557:60;:::i;:::-;;2665:4;2658:5;2654:16;2648:23;2680:60;2734:4;2729:3;2725:14;2709;2680:60;:::i;:::-;;2788:4;2781:5;2777:16;2771:23;2803:60;2857:4;2852:3;2848:14;2832;2803:60;:::i;:::-;;2911:4;2904:5;2900:16;2894:23;2926:60;2980:4;2975:3;2971:14;2955;2926:60;:::i;:::-;;3034:4;3027:5;3023:16;3017:23;3049:60;3103:4;3098:3;3094:14;3078;3049:60;:::i;:::-;;3157:4;3150:5;3146:16;3140:23;3172:49;3215:4;3210:3;3206:14;3190;1488:10;1477:22;1465:35;;1412:94;3172:49;;3240:6;3294:2;3287:5;3283:14;3277:21;3307:58;3361:2;3356:3;3352:12;3336:14;3307:58;:::i;:::-;;;3384:6;3438:2;3431:5;3427:14;3421:21;3451:58;3505:2;3500:3;3496:12;3480:14;3451:58;:::i;:::-;;;3528:6;3582:2;3575:5;3571:14;3565:21;3595:58;3649:2;3644:3;3640:12;3624:14;3595:58;:::i;:::-;;;3672:6;3727:2;3720:5;3716:14;3710:21;3740:59;3795:2;3790:3;3786:12;3769:15;3740:59;:::i;:::-;;;3818:6;3873:2;3866:5;3862:14;3856:21;3886:59;3941:2;3936:3;3932:12;3915:15;3886:59;:::i;:::-;;;3964:6;4019:2;4012:5;4008:14;4002:21;4032:59;4087:2;4082:3;4078:12;4061:15;4032:59;:::i;:::-;;;2263:1834;;:::o;4102:145::-;4188:1;4181:5;4178:12;4168:46;;4194:18;;:::i;4408:335::-;4511:5;4534:1;4544:193;4558:4;4555:1;4552:11;4544:193;;;4605:48;4649:3;4640:6;4634:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;4605:48;4682:4;4673:14;;;;;4722:4;4710:17;;;;;4578:1;4571:9;4544:193;;4748:1639;4817:49;4862:3;4854:5;4848:12;4817:49;:::i;:::-;4885:4;4935;4928:5;4924:16;4918:23;4950:60;5004:4;4999:3;4995:14;4981:12;4950:60;:::i;:::-;-1:-1:-1;5029:4:40;5070:16;;;5064:23;5139:21;;5247:1;5106:14;;;5257:195;5271:4;5268:1;5265:11;5257:195;;;5318:50;5362:5;5353:6;5347:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;5318:50;5427:15;;;;5291:1;5284:9;;;;;5390:14;;5257:195;;;5261:3;;;5509:4;5493:14;5489:25;5483:32;5461:54;;5524:65;5584:3;5579;5575:13;5559:14;5524:65;:::i;:::-;5646:4;5626:25;;5620:32;4328:12;;5715:4;5706:14;;4316:25;4390:4;4379:16;;;4373:23;4357:14;;;4350:47;5778:4;5758:25;;5752:32;4328:12;;5847:4;5838:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;5910:4;5890:25;;5884:32;4328:12;;5979:4;5970:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6042:4;6022:25;;6016:32;4328:12;;6111:4;6102:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6174:4;6154:25;;6148:32;4328:12;;6243:4;6234:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6306:4;6286:25;;;6280:32;4328:12;;6375:4;6366:14;;4316:25;4379:16;;;4373:23;4357:14;;;4350:47;6280:32;-1:-1:-1;6321:60:40;;-1:-1:-1;4252:151:40;6321:60;;4748:1639;;:::o;6392:326::-;6485:5;6508:1;6518:194;6532:4;6529:1;6526:11;6518:194;;;6591:13;;6579:26;;6628:4;6652:12;;;;6687:15;;;;6552:1;6545:9;6518:194;;6723:1166;6831:12;;6778:3;;6806:6;;6865:3;6778;6942:200;6956:4;6953:1;6950:11;6942:200;;;7017:13;;7003:28;;7054:4;7117:15;;;;7080:14;;;;6976:1;6969:9;6942:200;;;6946:3;;;7188:4;7181:5;7177:16;7171:23;7203:65;7260:6;7255:3;7251:16;7237:12;7203:65;:::i;:::-;-1:-1:-1;7316:4:40;7305:16;;7299:23;1488:10;1477:22;7374:6;7365:16;;1465:35;7430:4;7419:16;;7413:23;7445:58;7495:6;7486:16;;7413:23;7445:58;:::i;:::-;-1:-1:-1;7551:4:40;7540:16;;7534:23;1488:10;1477:22;7609:6;7600:16;;1465:35;7665:4;7654:16;;7648:23;480:13;473:21;7721:6;7712:16;;461:34;7777:4;7766:16;;7760:23;7808:6;7799:16;;7792:28;;;7836:47;7870:12;;;7760:23;7836:47;:::i;:::-;7829:54;6723:1166;-1:-1:-1;;;;;6723:1166:40:o;7894:1524::-;8073:2;8055:21;;;8121:13;;781:12;;8136:18;;;769:25;846:16;840:23;833:31;826:39;810:14;;;803:63;8209:2;8201:6;8197:15;8191:22;8186:2;8175:9;8171:18;8164:50;8036:4;8261;8253:6;8249:17;8243:24;8286:6;8329:2;8323:3;8312:9;8308:19;8301:31;8355:52;8402:3;8391:9;8387:19;8373:12;8355:52;:::i;:::-;8341:66;;8456:2;8448:6;8444:15;8438:22;8469:54;8518:3;8507:9;8503:19;8487:14;-1:-1:-1;;;;;1370:30:40;1358:43;;1305:102;8469:54;-1:-1:-1;8572:3:40;8560:16;;8554:23;1488:10;1477:22;;8635:3;8620:19;;1465:35;8586:54;8695:3;8687:6;8683:16;8677:23;8671:3;8660:9;8656:19;8649:52;8750:3;8742:6;8738:16;8732:23;8774:3;8786:71;8853:2;8842:9;8838:18;8822:14;781:12;;769:25;;857:4;846:16;;;840:23;833:31;826:39;810:14;;803:63;698:174;8786:71;8894:3;8882:16;;8876:23;8918:3;8937:18;;;8930:30;;;;8997:15;;;8991:22;1624:12;;-1:-1:-1;;;;;1620:21:40;;;9078:3;9063:19;;1608:34;1688:4;1677:16;;1671:23;1713:10;1755:21;;;1739:14;;;1732:45;1830:4;1819:16;;1813:23;1809:32;;1793:14;;;1786:56;1895:4;1884:16;;1878:23;1874:32;1858:14;;;1851:56;1960:4;1949:16;;;1943:23;1939:32;1923:14;;;1916:56;9132:6;9120:19;;9114:26;;-1:-1:-1;9149:66:40;9210:3;9195:19;;9114:26;9149:66;:::i;:::-;9252:15;;9246:22;9308;;;-1:-1:-1;;9304:36:40;9284:18;;;9277:64;9246:22;-1:-1:-1;9358:54:40;;-1:-1:-1;9312:6:40;9246:22;9358:54;:::i;:::-;9350:62;7894:1524;-1:-1:-1;;;;;;7894:1524:40:o;9423:521::-;9500:4;9506:6;9566:11;9553:25;9660:2;9656:7;9645:8;9629:14;9625:29;9621:43;9601:18;9597:68;9587:96;;9679:1;9676;9669:12;9587:96;9706:33;;9758:20;;;-1:-1:-1;;;;;;9790:30:40;;9787:50;;;9833:1;9830;9823:12;9787:50;9866:4;9854:17;;-1:-1:-1;9897:14:40;9893:27;;;9883:38;;9880:58;;;9934:1;9931;9924:12;9880:58;9423:521;;;;;:::o;9949:271::-;10132:6;10124;10119:3;10106:33;10088:3;10158:16;;10183:13;;;10158:16;9949:271;-1:-1:-1;9949:271:40:o;10225:298::-;10284:6;10337:2;10325:9;10316:7;10312:23;10308:32;10305:52;;;10353:1;10350;10343:12;10305:52;10379:23;;-1:-1:-1;;10431:43:40;;10421:54;;10411:82;;10489:1;10486;10479:12;10528:286;10587:6;10640:2;10628:9;10619:7;10615:23;10611:32;10608:52;;;10656:1;10653;10646:12;10608:52;10682:23;;-1:-1:-1;;;;;10734:31:40;;10724:42;;10714:70;;10780:1;10777;10770:12;10819:997;11135:4;11164:3;11194:6;11183:9;11176:25;11237:6;11232:2;11221:9;11217:18;11210:34;11280:6;11275:2;11264:9;11260:18;11253:34;11339:26;11335:31;11327:6;11323:44;11318:2;11307:9;11303:18;11296:72;11405:6;11399:3;11388:9;11384:19;11377:35;11449:2;11443:3;11432:9;11428:19;11421:31;11488:6;11483:2;11472:9;11468:18;11461:34;;11514:3;11567:6;11559;11554:2;11543:9;11539:18;11526:48;11623:1;11594:22;;;11590:31;;11583:42;11727:3;11712:19;;11705:35;;;;-1:-1:-1;;;;;;11777:32:40;;;;11771:3;11756:19;;11749:61;11686:2;11665:15;;;-1:-1:-1;;11661:29:40;11646:45;;;11642:54;;10819:997;-1:-1:-1;;;;;;10819:997:40:o;11821:118::-;11907:5;11900:13;11893:21;11886:5;11883:32;11873:60;;11929:1;11926;11919:12;11873:60;11821:118;:::o;11944:245::-;12011:6;12064:2;12052:9;12043:7;12039:23;12035:32;12032:52;;;12080:1;12077;12070:12;12032:52;12112:9;12106:16;12131:28;12153:5;12131:28;:::i;12194:331::-;12299:9;12310;12352:8;12340:10;12337:24;12334:44;;;12374:1;12371;12364:12;12334:44;12403:6;12393:8;12390:20;12387:40;;;12423:1;12420;12413:12;12387:40;-1:-1:-1;;12449:23:40;;;12494:25;;;;;-1:-1:-1;12194:331:40:o;12530:127::-;12591:10;12586:3;12582:20;12579:1;12572:31;12622:4;12619:1;12612:15;12646:4;12643:1;12636:15;12662:257;12734:4;12728:11;;;12766:17;;-1:-1:-1;;;;;12798:34:40;;12834:22;;;12795:62;12792:88;;;12860:18;;:::i;:::-;12896:4;12889:24;12662:257;:::o;12924:255::-;12996:2;12990:9;13038:6;13026:19;;-1:-1:-1;;;;;13060:34:40;;13096:22;;;13057:62;13054:88;;;13122:18;;:::i;13184:253::-;13256:2;13250:9;13298:4;13286:17;;-1:-1:-1;;;;;13318:34:40;;13354:22;;;13315:62;13312:88;;;13380:18;;:::i;13442:255::-;13514:2;13508:9;13556:6;13544:19;;-1:-1:-1;;;;;13578:34:40;;13614:22;;;13575:62;13572:88;;;13640:18;;:::i;13702:253::-;13774:2;13768:9;13816:4;13804:17;;-1:-1:-1;;;;;13836:34:40;;13872:22;;;13833:62;13830:88;;;13898:18;;:::i;13960:250::-;14027:2;14021:9;14069:6;14057:19;;-1:-1:-1;;;;;14091:34:40;;14127:22;;;14088:62;14085:88;;;14153:18;;:::i;14215:128::-;14280:20;;14309:28;14280:20;14309:28;:::i;:::-;14215:128;;;:::o;14348:362::-;14412:5;14460:4;14448:9;14443:3;14439:19;14435:30;14432:50;;;14478:1;14475;14468:12;14432:50;14500:22;;:::i;:::-;14491:31;;14558:9;14545:23;14538:5;14531:38;14621:2;14610:9;14606:18;14593:32;14634:30;14656:7;14634:30;:::i;:::-;14691:2;14680:14;;14673:31;14684:5;14348:362;-1:-1:-1;;14348:362:40:o;14715:719::-;14758:5;14811:3;14804:4;14796:6;14792:17;14788:27;14778:55;;14829:1;14826;14819:12;14778:55;14865:6;14852:20;-1:-1:-1;;;;;14928:2:40;14924;14921:10;14918:36;;;14934:18;;:::i;:::-;15009:2;15003:9;14977:2;15063:13;;-1:-1:-1;;15059:22:40;;;15083:2;15055:31;15051:40;15039:53;;;15107:18;;;15127:22;;;15104:46;15101:72;;;15153:18;;:::i;:::-;15193:10;15189:2;15182:22;15228:2;15220:6;15213:18;15274:3;15267:4;15262:2;15254:6;15250:15;15246:26;15243:35;15240:55;;;15291:1;15288;15281:12;15240:55;15355:2;15348:4;15340:6;15336:17;15329:4;15321:6;15317:17;15304:54;15402:1;15395:4;15390:2;15382:6;15378:15;15374:26;15367:37;15422:6;15413:15;;;;;;14715:719;;;;:::o;15439:171::-;15506:20;;-1:-1:-1;;;;;15555:30:40;;15545:41;;15535:69;;15600:1;15597;15590:12;15615:163;15682:20;;15742:10;15731:22;;15721:33;;15711:61;;15768:1;15765;15758:12;15783:696;15836:5;15884:4;15872:9;15867:3;15863:19;15859:30;15856:50;;;15902:1;15899;15892:12;15856:50;15935:2;15929:9;15977:4;15969:6;15965:17;16048:6;16036:10;16033:22;-1:-1:-1;;;;;16000:10:40;15997:34;15994:62;15991:88;;;16059:18;;:::i;:::-;16095:2;16088:22;16128:6;-1:-1:-1;16128:6:40;16158:28;16176:9;16158:28;:::i;:::-;16150:6;16143:44;16220:37;16253:2;16242:9;16238:18;16220:37;:::i;:::-;16215:2;16207:6;16203:15;16196:62;16291:37;16324:2;16313:9;16309:18;16291:37;:::i;:::-;16286:2;16278:6;16274:15;16267:62;16362:37;16395:2;16384:9;16380:18;16362:37;:::i;:::-;16357:2;16349:6;16345:15;16338:62;16434:38;16467:3;16456:9;16452:19;16434:38;:::i;:::-;16428:3;16420:6;16416:16;16409:64;;15783:696;;;;:::o;16484:153::-;16562:20;;16611:1;16601:12;;16591:40;;16627:1;16624;16617:12;16642:1421;16700:5;16748:6;16736:9;16731:3;16727:19;16723:32;16720:52;;;16768:1;16765;16758:12;16720:52;16790:22;;:::i;:::-;16781:31;;16835:39;16864:9;16835:39;:::i;:::-;16828:5;16821:54;16907:48;16951:2;16940:9;16936:18;16907:48;:::i;:::-;16902:2;16895:5;16891:14;16884:72;16988:48;17032:2;17021:9;17017:18;16988:48;:::i;:::-;16983:2;16976:5;16972:14;16965:72;17069:48;17113:2;17102:9;17098:18;17069:48;:::i;:::-;17064:2;17057:5;17053:14;17046:72;17151:49;17195:3;17184:9;17180:19;17151:49;:::i;:::-;17145:3;17138:5;17134:15;17127:74;17234:49;17278:3;17267:9;17263:19;17234:49;:::i;:::-;17228:3;17221:5;17217:15;17210:74;17317:49;17361:3;17350:9;17346:19;17317:49;:::i;:::-;17311:3;17304:5;17300:15;17293:74;17400:38;17433:3;17422:9;17418:19;17400:38;:::i;:::-;17394:3;17387:5;17383:15;17376:63;17458:3;17493:48;17537:2;17526:9;17522:18;17493:48;:::i;:::-;17477:14;;;17470:72;17561:3;17596:48;17625:18;;;17596:48;:::i;:::-;17580:14;;;17573:72;17664:3;17699:48;17728:18;;;17699:48;:::i;:::-;17683:14;;;17676:72;17767:3;17802:48;17831:18;;;17802:48;:::i;:::-;17786:14;;;17779:72;17870:3;17905:48;17934:18;;;17905:48;:::i;:::-;17889:14;;;17882:72;17973:3;18008:48;18037:18;;;18008:48;:::i;:::-;17992:14;;;17985:72;17996:5;16642:1421;-1:-1:-1;;16642:1421:40:o;18068:485::-;18118:5;18171:3;18164:4;18156:6;18152:17;18148:27;18138:55;;18189:1;18186;18179:12;18138:55;18213:22;;:::i;:::-;18257:3;18295;18287:6;18283:16;18322:3;18314:6;18311:15;18308:35;;;18339:1;18336;18329:12;18308:35;18363:6;18378:146;18394:6;18389:3;18386:15;18378:146;;;18462:17;;18450:30;;18509:4;18500:14;;;;18411;18378:146;;;-1:-1:-1;18542:5:40;;18068:485;-1:-1:-1;;;;;18068:485:40:o;18558:155::-;18638:20;;18687:1;18677:12;;18667:40;;18703:1;18700;18693:12;18718:285;18775:5;18823:4;18811:9;18806:3;18802:19;18798:30;18795:50;;;18841:1;18838;18831:12;18795:50;18863:22;;:::i;:::-;18854:31;;18921:9;18908:23;18901:5;18894:38;18992:2;18981:9;18977:18;18964:32;18959:2;18952:5;18948:14;18941:56;18718:285;;;;:::o;19008:538::-;19090:5;19143:3;19136:4;19128:6;19124:17;19120:27;19110:55;;19161:1;19158;19151:12;19110:55;19185:22;;:::i;:::-;19229:3;19267;19259:6;19255:16;19294:3;19286:6;19283:15;19280:35;;;19311:1;19308;19301:12;19280:35;19335:6;19350:167;19366:6;19361:3;19358:15;19350:167;;;19434:38;19468:3;19463;19434:38;:::i;:::-;19422:51;;19502:4;19493:14;;;;19392:4;19383:14;19350:167;;19551:698;19611:5;19664:3;19657:4;19649:6;19645:17;19641:27;19631:55;;19682:1;19679;19672:12;19631:55;19705:2;19736;19730:9;19778:3;19770:6;19766:16;19848:6;19836:10;19833:22;-1:-1:-1;;;;;19800:10:40;19797:34;19794:62;19791:88;;;19859:18;;:::i;:::-;19895:2;19888:22;19930:6;19971:3;19959:16;;19987:15;;;19984:35;;;20015:1;20012;20005:12;19984:35;20039:6;20054:165;20070:6;20065:3;20062:15;20054:165;;;20136:38;20170:3;20165;20136:38;:::i;:::-;20124:51;;20204:4;20195:14;;;;20087:12;;20054:165;;;-1:-1:-1;20237:6:40;;19551:698;-1:-1:-1;;;;;;19551:698:40:o;20254:1264::-;20316:5;20355:9;20350:3;20346:19;20385:6;20381:2;20377:15;20374:35;;;20405:1;20402;20395:12;20374:35;20427:22;;:::i;:::-;20418:31;;20472:41;20503:9;20472:41;:::i;:::-;20465:5;20458:56;20546:50;20592:2;20581:9;20577:18;20546:50;:::i;:::-;20541:2;20534:5;20530:14;20523:74;20616:6;20656:2;20650;20646:7;20642:2;20638:16;20634:25;20631:45;;;20672:1;20669;20662:12;20631:45;20700:22;;:::i;:::-;20685:37;;20747:81;20824:3;20819:2;20808:9;20804:18;20747:81;:::i;:::-;20738:7;20731:98;20863:60;20919:3;20913;20902:9;20898:19;20863:60;:::i;:::-;20858:2;20849:7;20845:16;20838:86;20958:55;21009:3;21002:4;20991:9;20987:20;20958:55;:::i;:::-;20953:2;20944:7;20940:16;20933:81;21050:55;21101:3;21094:4;21083:9;21079:20;21050:55;:::i;:::-;21043:4;21034:7;21030:18;21023:83;21142:55;21193:3;21186:4;21175:9;21171:20;21142:55;:::i;:::-;21135:4;21126:7;21122:18;21115:83;21234:55;21285:3;21278:4;21267:9;21263:20;21234:55;:::i;:::-;21227:4;21218:7;21214:18;21207:83;21326:55;21377:3;21370:4;21359:9;21355:20;21326:55;:::i;:::-;21319:4;21310:7;21306:18;21299:83;21418:53;21467:3;21462:2;21451:9;21447:18;21418:53;:::i;:::-;21411:4;21398:18;;21391:81;-1:-1:-1;21499:2:40;21488:14;;21481:31;21492:5;20254:1264;-1:-1:-1;;20254:1264:40:o;21523:659::-;21584:5;21637:3;21630:4;21622:6;21618:17;21614:27;21604:55;;21655:1;21652;21645:12;21604:55;21688:2;21682:9;21730:3;21722:6;21718:16;21800:6;21788:10;21785:22;-1:-1:-1;;;;;21752:10:40;21749:34;21746:62;21743:88;;;21811:18;;:::i;:::-;21847:2;21840:22;21882:6;21923:3;21911:16;;21939:15;;;21936:35;;;21967:1;21964;21957:12;21936:35;21991:6;22006:146;22022:6;22017:3;22014:15;22006:146;;;22090:17;;22078:30;;22137:4;22128:14;;;;22039;22006:146;;;-1:-1:-1;22170:6:40;;21523:659;-1:-1:-1;;;;;21523:659:40:o;22187:849::-;22246:5;22294:6;22282:9;22277:3;22273:19;22269:32;22266:52;;;22314:1;22311;22304:12;22266:52;22336:22;;:::i;:::-;22327:31;;22381:40;22417:3;22406:9;22381:40;:::i;:::-;22374:5;22367:55;22456:59;22511:3;22505;22494:9;22490:19;22456:59;:::i;:::-;22449:4;22442:5;22438:16;22431:85;22550:39;22583:4;22572:9;22568:20;22550:39;:::i;:::-;22543:4;22536:5;22532:16;22525:65;22624:62;22682:3;22675:4;22664:9;22660:20;22624:62;:::i;:::-;22617:4;22610:5;22606:16;22599:88;22721:39;22754:4;22743:9;22739:20;22721:39;:::i;:::-;22714:4;22707:5;22703:16;22696:65;22795:37;22826:4;22815:9;22811:20;22795:37;:::i;:::-;22788:4;22781:5;22777:16;22770:63;22884:4;22873:9;22869:20;22856:34;-1:-1:-1;;;;;22905:6:40;22902:30;22899:50;;;22945:1;22942;22935:12;22899:50;22983:46;23025:3;23016:6;23005:9;23001:22;22983:46;:::i;:::-;22976:4;22969:5;22965:16;22958:72;;22187:849;;;;:::o;23041:1493::-;23125:6;23178:2;23166:9;23157:7;23153:23;23149:32;23146:52;;;23194:1;23191;23184:12;23146:52;23234:9;23221:23;-1:-1:-1;;;;;23304:2:40;23296:6;23293:14;23290:34;;;23320:1;23317;23310:12;23290:34;23343:22;;;;23399:6;23381:16;;;23377:29;23374:49;;;23419:1;23416;23409:12;23374:49;23445:17;;:::i;:::-;23485:48;23525:7;23521:2;23485:48;:::i;:::-;23478:5;23471:63;23587:2;23583;23579:11;23566:25;23561:2;23554:5;23550:14;23543:49;23638:2;23634;23630:11;23617:25;23667:2;23657:8;23654:16;23651:36;;;23683:1;23680;23673:12;23651:36;23719:45;23756:7;23745:8;23741:2;23737:17;23719:45;:::i;:::-;23714:2;23707:5;23703:14;23696:69;;23797:31;23823:3;23819:2;23815:12;23797:31;:::i;:::-;23792:2;23785:5;23781:14;23774:55;23862:31;23888:3;23884:2;23880:12;23862:31;:::i;:::-;23856:3;23849:5;23845:15;23838:56;23948:3;23944:2;23940:12;23927:26;23921:3;23914:5;23910:15;23903:51;23987:58;24037:7;24031:3;24027:2;24023:12;23987:58;:::i;:::-;23981:3;23974:5;23970:15;23963:83;24065:3;24122:2;24118;24114:11;24101:25;24095:3;24088:5;24084:15;24077:50;24146:3;24185:46;24223:7;24218:2;24214;24210:11;24185:46;:::i;:::-;24176:6;24169:5;24165:18;24158:74;24264:52;24308:7;24302:3;24298:2;24294:12;24264:52;:::i;:::-;24259:2;24252:5;24248:14;24241:76;24363:3;24359:2;24355:12;24342:26;24326:42;;24393:2;24383:8;24380:16;24377:36;;;24409:1;24406;24399:12;24377:36;24445:58;24495:7;24484:8;24480:2;24476:17;24445:58;:::i;:::-;24429:14;;;24422:82;-1:-1:-1;24433:5:40;23041:1493;-1:-1:-1;;;;;23041:1493:40:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"MinaAccountProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"MinaAccountProvingSystemIdIsNotValid"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"MinaAccountProvingSystemIdIsNotValid","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161157b38038061157b83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6114e8806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109c8565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610afa565b6040516100e6929190610b47565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b57565b606089013561013460808b018b610afa565b60a08c013561014a6101008e0160e08f01610b86565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610baf565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c3d565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610afa565b60405161021f929190610b47565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b57565b60608a013561027160808c018c610afa565b8c60a001358d60e00160208101906102899190610b86565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610baf565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c3d565b905080156100365761030360c0850185610afa565b610311916028908290610c5a565b81019061031e9190611392565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081b828501826107b6565b50604082810151805160008684015b600782101561085a5761084881845180518252602090810151910152565b9185019160019190910190840161082a565b50505091820151916108706102008601846107c6565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b60058110156107b0578151845260209384019390910190600101610902565b80516000906109609084835b600881101561094c57825182526020928301929091019060010161092d565b50505060208301516109626101008601826107fe565b50604083015163ffffffff1661084085015260608301516109876108608601826108fe565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109bf8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a066103e085018361062f565b91506060850151610a2260a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a5f81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ad461020088018461069f565b870151868503601f1901848801529150610af090508382610921565b9695505050505050565b6000808335601e19843603018112610b1157600080fd5b8301803591506001600160401b03821115610b2b57600080fd5b602001915036819003821315610b4057600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b6957600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610b9857600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c3a57600080fd5b50565b600060208284031215610c4f57600080fd5b81516101af81610c2c565b60008085851115610c6a57600080fd5b83861115610c7757600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cbc57610cbc610c84565b60405290565b6040516101c081016001600160401b0381118282101715610cbc57610cbc610c84565b604051606081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161010081016001600160401b0381118282101715610cbc57610cbc610c84565b60405160e081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161016081016001600160401b0381118282101715610cbc57610cbc610c84565b8035610d7a81610c2c565b919050565b600060408284031215610d9157600080fd5b610d99610c9a565b9050813581526020820135610dad81610c2c565b602082015292915050565b600082601f830112610dc957600080fd5b81356001600160401b0380821115610de357610de3610c84565b604051601f8301601f19908116603f01168101908282118183101715610e0b57610e0b610c84565b81604052838152866020858801011115610e2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d7a57600080fd5b803563ffffffff81168114610d7a57600080fd5b600060a08284031215610e8157600080fd5b60405160a081018181106001600160401b0382111715610ea357610ea3610c84565b604052905080610eb283610e44565b8152610ec060208401610e5b565b6020820152610ed160408401610e44565b6040820152610ee260608401610e5b565b6060820152610ef360808401610e44565b60808201525092915050565b803560058110610d7a57600080fd5b60006101c08284031215610f2157600080fd5b610f29610cc2565b9050610f3482610eff565b8152610f4260208301610eff565b6020820152610f5360408301610eff565b6040820152610f6460608301610eff565b6060820152610f7560808301610eff565b6080820152610f8660a08301610eff565b60a0820152610f9760c08301610eff565b60c0820152610fa860e08301610e5b565b60e0820152610100610fbb818401610eff565b90820152610120610fcd838201610eff565b90820152610140610fdf838201610eff565b90820152610160610ff1838201610eff565b90820152610180611003838201610eff565b908201526101a0611015838201610eff565b9082015292915050565b600082601f83011261103057600080fd5b611038610d07565b8061010084018581111561104b57600080fd5b845b8181101561106557803584526020938401930161104d565b509095945050505050565b803560038110610d7a57600080fd5b60006040828403121561109157600080fd5b611099610c9a565b9050813581526020820135602082015292915050565b600082601f8301126110c057600080fd5b6110c8610d2a565b806101c08401858111156110db57600080fd5b845b81811015611065576110ef878261107f565b84526020909301926040016110dd565b600082601f83011261111057600080fd5b604080516101e081018181106001600160401b038211171561113457611134610c84565b8252806103c085018681111561114957600080fd5b855b8181101561116c5761115d888261107f565b8352602090920191840161114b565b50919695505050505050565b600081830361074081121561118c57600080fd5b611194610ce5565b915061119f83611070565b82526111ad60208401611070565b602083015261070080603f19830112156111c657600080fd5b6111ce610d07565b91506111dd85604086016110af565b82526111ed8561020086016110ff565b6020830152611200856105c0860161107f565b604083015261121385610600860161107f565b606083015261122685610640860161107f565b608083015261123985610680860161107f565b60a083015261124c856106c0860161107f565b60c083015261125d8582860161107f565b60e083015250604082015292915050565b600082601f83011261127f57600080fd5b60405160a081018181106001600160401b03821117156112a1576112a1610c84565b6040528060a08401858111156112b657600080fd5b845b818110156112d05780358352602092830192016112b8565b509195945050505050565b600061096082840312156112ee57600080fd5b6112f6610d2a565b9050611302838361101f565b8152611312836101008401611178565b60208201526113246108408301610e5b565b604082015261133783610860840161126e565b60608201526113496109008301610e5b565b608082015261135b6109208301610d6f565b60a08201526109408201356001600160401b0381111561137a57600080fd5b61138684828501610db8565b60c08301525092915050565b6000602082840312156113a457600080fd5b81356001600160401b03808211156113bb57600080fd5b908301906103c082860312156113d057600080fd5b6113d8610d4c565b6113e28684610d7f565b81526040830135602082015260608301358281111561140057600080fd5b61140c87828601610db8565b60408301525061141e60808401610e44565b606082015261142f60a08401610e5b565b608082015260c083013560a082015261144b8660e08501610d7f565b60c08201526101208084013560e083015261014061146b88828701610e6f565b61010084015261147f886101e08701610f0e565b828401526103a085013591508382111561149857600080fd5b6114a4888387016112db565b90830152509594505050505056fea264697066735822122043caced17afc14e16194f9234a758555b6f2e0da83d42eeeef6b17990bf04b8b64736f6c63430008150033","sourceMap":"199:4351:38:-:0;;;844:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;903:7;:57;;-1:-1:-1;;;;;;903:57:38;-1:-1:-1;;;;;903:57:38;;;;;;;;;;199:4351;;14:298:40;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:40;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:40:o;:::-;199:4351:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109c8565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610afa565b6040516100e6929190610b47565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b57565b606089013561013460808b018b610afa565b60a08c013561014a6101008e0160e08f01610b86565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610baf565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c3d565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610afa565b60405161021f929190610b47565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b57565b60608a013561027160808c018c610afa565b8c60a001358d60e00160208101906102899190610b86565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610baf565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c3d565b905080156100365761030360c0850185610afa565b610311916028908290610c5a565b81019061031e9190611392565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081b828501826107b6565b50604082810151805160008684015b600782101561085a5761084881845180518252602090810151910152565b9185019160019190910190840161082a565b50505091820151916108706102008601846107c6565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b60058110156107b0578151845260209384019390910190600101610902565b80516000906109609084835b600881101561094c57825182526020928301929091019060010161092d565b50505060208301516109626101008601826107fe565b50604083015163ffffffff1661084085015260608301516109876108608601826108fe565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109bf8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a066103e085018361062f565b91506060850151610a2260a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a5f81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ad461020088018461069f565b870151868503601f1901848801529150610af090508382610921565b9695505050505050565b6000808335601e19843603018112610b1157600080fd5b8301803591506001600160401b03821115610b2b57600080fd5b602001915036819003821315610b4057600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b6957600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610b9857600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c3a57600080fd5b50565b600060208284031215610c4f57600080fd5b81516101af81610c2c565b60008085851115610c6a57600080fd5b83861115610c7757600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cbc57610cbc610c84565b60405290565b6040516101c081016001600160401b0381118282101715610cbc57610cbc610c84565b604051606081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161010081016001600160401b0381118282101715610cbc57610cbc610c84565b60405160e081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161016081016001600160401b0381118282101715610cbc57610cbc610c84565b8035610d7a81610c2c565b919050565b600060408284031215610d9157600080fd5b610d99610c9a565b9050813581526020820135610dad81610c2c565b602082015292915050565b600082601f830112610dc957600080fd5b81356001600160401b0380821115610de357610de3610c84565b604051601f8301601f19908116603f01168101908282118183101715610e0b57610e0b610c84565b81604052838152866020858801011115610e2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d7a57600080fd5b803563ffffffff81168114610d7a57600080fd5b600060a08284031215610e8157600080fd5b60405160a081018181106001600160401b0382111715610ea357610ea3610c84565b604052905080610eb283610e44565b8152610ec060208401610e5b565b6020820152610ed160408401610e44565b6040820152610ee260608401610e5b565b6060820152610ef360808401610e44565b60808201525092915050565b803560058110610d7a57600080fd5b60006101c08284031215610f2157600080fd5b610f29610cc2565b9050610f3482610eff565b8152610f4260208301610eff565b6020820152610f5360408301610eff565b6040820152610f6460608301610eff565b6060820152610f7560808301610eff565b6080820152610f8660a08301610eff565b60a0820152610f9760c08301610eff565b60c0820152610fa860e08301610e5b565b60e0820152610100610fbb818401610eff565b90820152610120610fcd838201610eff565b90820152610140610fdf838201610eff565b90820152610160610ff1838201610eff565b90820152610180611003838201610eff565b908201526101a0611015838201610eff565b9082015292915050565b600082601f83011261103057600080fd5b611038610d07565b8061010084018581111561104b57600080fd5b845b8181101561106557803584526020938401930161104d565b509095945050505050565b803560038110610d7a57600080fd5b60006040828403121561109157600080fd5b611099610c9a565b9050813581526020820135602082015292915050565b600082601f8301126110c057600080fd5b6110c8610d2a565b806101c08401858111156110db57600080fd5b845b81811015611065576110ef878261107f565b84526020909301926040016110dd565b600082601f83011261111057600080fd5b604080516101e081018181106001600160401b038211171561113457611134610c84565b8252806103c085018681111561114957600080fd5b855b8181101561116c5761115d888261107f565b8352602090920191840161114b565b50919695505050505050565b600081830361074081121561118c57600080fd5b611194610ce5565b915061119f83611070565b82526111ad60208401611070565b602083015261070080603f19830112156111c657600080fd5b6111ce610d07565b91506111dd85604086016110af565b82526111ed8561020086016110ff565b6020830152611200856105c0860161107f565b604083015261121385610600860161107f565b606083015261122685610640860161107f565b608083015261123985610680860161107f565b60a083015261124c856106c0860161107f565b60c083015261125d8582860161107f565b60e083015250604082015292915050565b600082601f83011261127f57600080fd5b60405160a081018181106001600160401b03821117156112a1576112a1610c84565b6040528060a08401858111156112b657600080fd5b845b818110156112d05780358352602092830192016112b8565b509195945050505050565b600061096082840312156112ee57600080fd5b6112f6610d2a565b9050611302838361101f565b8152611312836101008401611178565b60208201526113246108408301610e5b565b604082015261133783610860840161126e565b60608201526113496109008301610e5b565b608082015261135b6109208301610d6f565b60a08201526109408201356001600160401b0381111561137a57600080fd5b61138684828501610db8565b60c08301525092915050565b6000602082840312156113a457600080fd5b81356001600160401b03808211156113bb57600080fd5b908301906103c082860312156113d057600080fd5b6113d8610d4c565b6113e28684610d7f565b81526040830135602082015260608301358281111561140057600080fd5b61140c87828601610db8565b60408301525061141e60808401610e44565b606082015261142f60a08401610e5b565b608082015260c083013560a082015261144b8660e08501610d7f565b60c08201526101208084013560e083015261014061146b88828701610e6f565b61010084015261147f886101e08701610f0e565b828401526103a085013591508382111561149857600080fd5b6114a4888387016112db565b90830152509594505050505056fea264697066735822122043caced17afc14e16194f9234a758555b6f2e0da83d42eeeef6b17990bf04b8b64736f6c63430008150033","sourceMap":"199:4351:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:655;;;;;;:::i;:::-;;:::i;:::-;;;671:14:40;;664:22;646:41;;634:2;619:18;973:655:38;;;;;;;;1634:841;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;973:655::-;1048:4;1068:35;;;;344:66;1068:61;1064:137;;1152:38;;-1:-1:-1;;;1152:38:38;;;;;;;;;;;1064:137;1211:26;1250:13;;;;:4;:13;:::i;:::-;1240:24;;;;;;;:::i;:::-;;;;;;;;;;;1282:7;;1240:24;;-1:-1:-1;;;;;;1282:7:38;;:28;;1324:20;;;1240:24;;1390:35;;;;;1439:23;;;;;;;;;:::i;:::-;1476:20;;;;1510:16;;;;1476:4;1510:16;:::i;:::-;1540:31;;;;1585:26;;;;;;;;:::i;:::-;1282:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1275:346;973:655;-1:-1:-1;;;973:655:38:o;1634:841::-;1718:14;;:::i;:::-;1748:35;;;;344:66;1748:61;1744:137;;1832:38;;-1:-1:-1;;;1832:38:38;;;;;;;;;;;1744:137;1891:26;1930:13;;;;:4;:13;:::i;:::-;1920:24;;;;;;;:::i;:::-;;;;;;;;;;;1955:22;1980:7;;1920:24;;-1:-1:-1;1955:22:38;-1:-1:-1;;;;;1980:7:38;;;;:28;;2022:20;;;1920:24;;2088:35;;;;;2137:23;;;;;;;;;:::i;:::-;2174:20;;;;2208:16;;;;2174:4;2208:16;:::i;:::-;2238:4;:31;;;2283:4;:26;;;;;;;;;;:::i;:::-;1980:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1955:364;;2334:17;2330:139;;;2385:13;;;;:4;:13;:::i;:::-;:22;;2399:6;;2385:22;;;:::i;:::-;2374:45;;;;;;;:::i;:::-;2367:52;1634:841;-1:-1:-1;;;;1634:841:38:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:391:40;104:6;157:2;145:9;136:7;132:23;128:32;125:52;;;173:1;170;163:12;125:52;213:9;200:23;-1:-1:-1;;;;;238:6:40;235:30;232:50;;;278:1;275;268:12;232:50;301:22;;357:3;339:16;;;335:26;332:46;;;374:1;371;364:12;877:423;919:3;957:5;951:12;984:6;979:3;972:19;1009:1;1019:162;1033:6;1030:1;1027:13;1019:162;;;1095:4;1151:13;;;1147:22;;1141:29;1123:11;;;1119:20;;1112:59;1048:12;1019:162;;;1023:3;1226:1;1219:4;1210:6;1205:3;1201:16;1197:27;1190:38;1289:4;1282:2;1278:7;1273:2;1265:6;1261:15;1257:29;1252:3;1248:39;1244:50;1237:57;;;877:423;;;;:::o;1983:127::-;2044:10;2039:3;2035:20;2032:1;2025:31;2075:4;2072:1;2065:15;2099:4;2096:1;2089:15;2115:143;2199:1;2192:5;2189:12;2179:46;;2205:18;;:::i;:::-;2234;;2115:143::o;2263:1834::-;2328:47;2371:3;2363:5;2357:12;2328:47;:::i;:::-;2421:4;2414:5;2410:16;2404:23;2436:58;2488:4;2483:3;2479:14;2465:12;2436:58;:::i;:::-;;2542:4;2535:5;2531:16;2525:23;2557:60;2611:4;2606:3;2602:14;2586;2557:60;:::i;:::-;;2665:4;2658:5;2654:16;2648:23;2680:60;2734:4;2729:3;2725:14;2709;2680:60;:::i;:::-;;2788:4;2781:5;2777:16;2771:23;2803:60;2857:4;2852:3;2848:14;2832;2803:60;:::i;:::-;;2911:4;2904:5;2900:16;2894:23;2926:60;2980:4;2975:3;2971:14;2955;2926:60;:::i;:::-;;3034:4;3027:5;3023:16;3017:23;3049:60;3103:4;3098:3;3094:14;3078;3049:60;:::i;:::-;;3157:4;3150:5;3146:16;3140:23;3172:49;3215:4;3210:3;3206:14;3190;1488:10;1477:22;1465:35;;1412:94;3172:49;;3240:6;3294:2;3287:5;3283:14;3277:21;3307:58;3361:2;3356:3;3352:12;3336:14;3307:58;:::i;:::-;;;3384:6;3438:2;3431:5;3427:14;3421:21;3451:58;3505:2;3500:3;3496:12;3480:14;3451:58;:::i;:::-;;;3528:6;3582:2;3575:5;3571:14;3565:21;3595:58;3649:2;3644:3;3640:12;3624:14;3595:58;:::i;:::-;;;3672:6;3727:2;3720:5;3716:14;3710:21;3740:59;3795:2;3790:3;3786:12;3769:15;3740:59;:::i;:::-;;;3818:6;3873:2;3866:5;3862:14;3856:21;3886:59;3941:2;3936:3;3932:12;3915:15;3886:59;:::i;:::-;;;3964:6;4019:2;4012:5;4008:14;4002:21;4032:59;4087:2;4082:3;4078:12;4061:15;4032:59;:::i;:::-;;;2263:1834;;:::o;4102:145::-;4188:1;4181:5;4178:12;4168:46;;4194:18;;:::i;4408:335::-;4511:5;4534:1;4544:193;4558:4;4555:1;4552:11;4544:193;;;4605:48;4649:3;4640:6;4634:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;4605:48;4682:4;4673:14;;;;;4722:4;4710:17;;;;;4578:1;4571:9;4544:193;;4748:1627;4817:49;4862:3;4854:5;4848:12;4817:49;:::i;:::-;4885:4;4935:2;4928:5;4924:14;4918:21;4948:58;5002:2;4997:3;4993:12;4979;4948:58;:::i;:::-;-1:-1:-1;5025:4:40;5066:14;;;5060:21;5131;;5239:1;5100:12;;;5249:195;5263:4;5260:1;5257:11;5249:195;;;5310:50;5354:5;5345:6;5339:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;5310:50;5419:15;;;;5283:1;5276:9;;;;;5382:14;;5249:195;;;-1:-1:-1;;;5481:23:40;;;5475:30;;5514:65;5574:3;5565:13;;5475:30;5514:65;:::i;:::-;5616:23;;;5610:30;4328:12;;5703:4;5694:14;;4316:25;4390:4;4379:16;;;4373:23;4357:14;;;4350:47;5766:4;5746:25;;5740:32;4328:12;;5835:4;5826:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;5898:4;5878:25;;5872:32;4328:12;;5967:4;5958:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6030:4;6010:25;;6004:32;4328:12;;6099:4;6090:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6162:4;6142:25;;6136:32;4328:12;;6231:4;6222:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6294:4;6274:25;;;6268:32;4328:12;;6363:4;6354:14;;4316:25;4379:16;4373:23;4357:14;;;;4350:47;;;;-1:-1:-1;;4748:1627:40:o;6380:326::-;6473:5;6496:1;6506:194;6520:4;6517:1;6514:11;6506:194;;;6579:13;;6567:26;;6616:4;6640:12;;;;6675:15;;;;6540:1;6533:9;6506:194;;6711:1166;6819:12;;6766:3;;6794:6;;6853:3;6766;6930:200;6944:4;6941:1;6938:11;6930:200;;;7005:13;;6991:28;;7042:4;7105:15;;;;7068:14;;;;6964:1;6957:9;6930:200;;;6934:3;;;7176:4;7169:5;7165:16;7159:23;7191:65;7248:6;7243:3;7239:16;7225:12;7191:65;:::i;:::-;-1:-1:-1;7304:4:40;7293:16;;7287:23;1488:10;1477:22;7362:6;7353:16;;1465:35;7418:4;7407:16;;7401:23;7433:58;7483:6;7474:16;;7401:23;7433:58;:::i;:::-;-1:-1:-1;7539:4:40;7528:16;;7522:23;1488:10;1477:22;7597:6;7588:16;;1465:35;7653:4;7642:16;;7636:23;480:13;473:21;7709:6;7700:16;;461:34;7765:4;7754:16;;7748:23;7796:6;7787:16;;7780:28;;;7824:47;7858:12;;;7748:23;7824:47;:::i;:::-;7817:54;6711:1166;-1:-1:-1;;;;;6711:1166:40:o;7882:1524::-;8061:2;8043:21;;;8109:13;;781:12;;8124:18;;;769:25;846:16;840:23;833:31;826:39;810:14;;;803:63;8197:2;8189:6;8185:15;8179:22;8174:2;8163:9;8159:18;8152:50;8024:4;8249;8241:6;8237:17;8231:24;8274:6;8317:2;8311:3;8300:9;8296:19;8289:31;8343:52;8390:3;8379:9;8375:19;8361:12;8343:52;:::i;:::-;8329:66;;8444:2;8436:6;8432:15;8426:22;8457:54;8506:3;8495:9;8491:19;8475:14;-1:-1:-1;;;;;1370:30:40;1358:43;;1305:102;8457:54;-1:-1:-1;8560:3:40;8548:16;;8542:23;1488:10;1477:22;;8623:3;8608:19;;1465:35;8574:54;8683:3;8675:6;8671:16;8665:23;8659:3;8648:9;8644:19;8637:52;8738:3;8730:6;8726:16;8720:23;8762:3;8774:71;8841:2;8830:9;8826:18;8810:14;781:12;;769:25;;857:4;846:16;;;840:23;833:31;826:39;810:14;;803:63;698:174;8774:71;8882:3;8870:16;;8864:23;8906:3;8925:18;;;8918:30;;;;8985:15;;;8979:22;1624:12;;-1:-1:-1;;;;;1620:21:40;;;9066:3;9051:19;;1608:34;1688:4;1677:16;;1671:23;1713:10;1755:21;;;1739:14;;;1732:45;1830:4;1819:16;;1813:23;1809:32;;1793:14;;;1786:56;1895:4;1884:16;;1878:23;1874:32;1858:14;;;1851:56;1960:4;1949:16;;;1943:23;1939:32;1923:14;;;1916:56;9120:6;9108:19;;9102:26;;-1:-1:-1;9137:66:40;9198:3;9183:19;;9102:26;9137:66;:::i;:::-;9240:15;;9234:22;9296;;;-1:-1:-1;;9292:36:40;9272:18;;;9265:64;9234:22;-1:-1:-1;9346:54:40;;-1:-1:-1;9300:6:40;9234:22;9346:54;:::i;:::-;9338:62;7882:1524;-1:-1:-1;;;;;;7882:1524:40:o;9411:521::-;9488:4;9494:6;9554:11;9541:25;9648:2;9644:7;9633:8;9617:14;9613:29;9609:43;9589:18;9585:68;9575:96;;9667:1;9664;9657:12;9575:96;9694:33;;9746:20;;;-1:-1:-1;;;;;;9778:30:40;;9775:50;;;9821:1;9818;9811:12;9775:50;9854:4;9842:17;;-1:-1:-1;9885:14:40;9881:27;;;9871:38;;9868:58;;;9922:1;9919;9912:12;9868:58;9411:521;;;;;:::o;9937:271::-;10120:6;10112;10107:3;10094:33;10076:3;10146:16;;10171:13;;;10146:16;9937:271;-1:-1:-1;9937:271:40:o;10213:298::-;10272:6;10325:2;10313:9;10304:7;10300:23;10296:32;10293:52;;;10341:1;10338;10331:12;10293:52;10367:23;;-1:-1:-1;;10419:43:40;;10409:54;;10399:82;;10477:1;10474;10467:12;10516:286;10575:6;10628:2;10616:9;10607:7;10603:23;10599:32;10596:52;;;10644:1;10641;10634:12;10596:52;10670:23;;-1:-1:-1;;;;;10722:31:40;;10712:42;;10702:70;;10768:1;10765;10758:12;10807:997;11123:4;11152:3;11182:6;11171:9;11164:25;11225:6;11220:2;11209:9;11205:18;11198:34;11268:6;11263:2;11252:9;11248:18;11241:34;11327:26;11323:31;11315:6;11311:44;11306:2;11295:9;11291:18;11284:72;11393:6;11387:3;11376:9;11372:19;11365:35;11437:2;11431:3;11420:9;11416:19;11409:31;11476:6;11471:2;11460:9;11456:18;11449:34;;11502:3;11555:6;11547;11542:2;11531:9;11527:18;11514:48;11611:1;11582:22;;;11578:31;;11571:42;11715:3;11700:19;;11693:35;;;;-1:-1:-1;;;;;;11765:32:40;;;;11759:3;11744:19;;11737:61;11674:2;11653:15;;;-1:-1:-1;;11649:29:40;11634:45;;;11630:54;;10807:997;-1:-1:-1;;;;;;10807:997:40:o;11809:118::-;11895:5;11888:13;11881:21;11874:5;11871:32;11861:60;;11917:1;11914;11907:12;11861:60;11809:118;:::o;11932:245::-;11999:6;12052:2;12040:9;12031:7;12027:23;12023:32;12020:52;;;12068:1;12065;12058:12;12020:52;12100:9;12094:16;12119:28;12141:5;12119:28;:::i;12182:331::-;12287:9;12298;12340:8;12328:10;12325:24;12322:44;;;12362:1;12359;12352:12;12322:44;12391:6;12381:8;12378:20;12375:40;;;12411:1;12408;12401:12;12375:40;-1:-1:-1;;12437:23:40;;;12482:25;;;;;-1:-1:-1;12182:331:40:o;12518:127::-;12579:10;12574:3;12570:20;12567:1;12560:31;12610:4;12607:1;12600:15;12634:4;12631:1;12624:15;12650:257;12722:4;12716:11;;;12754:17;;-1:-1:-1;;;;;12786:34:40;;12822:22;;;12783:62;12780:88;;;12848:18;;:::i;:::-;12884:4;12877:24;12650:257;:::o;12912:255::-;12984:2;12978:9;13026:6;13014:19;;-1:-1:-1;;;;;13048:34:40;;13084:22;;;13045:62;13042:88;;;13110:18;;:::i;13172:253::-;13244:2;13238:9;13286:4;13274:17;;-1:-1:-1;;;;;13306:34:40;;13342:22;;;13303:62;13300:88;;;13368:18;;:::i;13430:255::-;13502:2;13496:9;13544:6;13532:19;;-1:-1:-1;;;;;13566:34:40;;13602:22;;;13563:62;13560:88;;;13628:18;;:::i;13690:253::-;13762:2;13756:9;13804:4;13792:17;;-1:-1:-1;;;;;13824:34:40;;13860:22;;;13821:62;13818:88;;;13886:18;;:::i;13948:250::-;14015:2;14009:9;14057:6;14045:19;;-1:-1:-1;;;;;14079:34:40;;14115:22;;;14076:62;14073:88;;;14141:18;;:::i;14203:128::-;14268:20;;14297:28;14268:20;14297:28;:::i;:::-;14203:128;;;:::o;14336:362::-;14400:5;14448:4;14436:9;14431:3;14427:19;14423:30;14420:50;;;14466:1;14463;14456:12;14420:50;14488:22;;:::i;:::-;14479:31;;14546:9;14533:23;14526:5;14519:38;14609:2;14598:9;14594:18;14581:32;14622:30;14644:7;14622:30;:::i;:::-;14679:2;14668:14;;14661:31;14672:5;14336:362;-1:-1:-1;;14336:362:40:o;14703:719::-;14746:5;14799:3;14792:4;14784:6;14780:17;14776:27;14766:55;;14817:1;14814;14807:12;14766:55;14853:6;14840:20;-1:-1:-1;;;;;14916:2:40;14912;14909:10;14906:36;;;14922:18;;:::i;:::-;14997:2;14991:9;14965:2;15051:13;;-1:-1:-1;;15047:22:40;;;15071:2;15043:31;15039:40;15027:53;;;15095:18;;;15115:22;;;15092:46;15089:72;;;15141:18;;:::i;:::-;15181:10;15177:2;15170:22;15216:2;15208:6;15201:18;15262:3;15255:4;15250:2;15242:6;15238:15;15234:26;15231:35;15228:55;;;15279:1;15276;15269:12;15228:55;15343:2;15336:4;15328:6;15324:17;15317:4;15309:6;15305:17;15292:54;15390:1;15383:4;15378:2;15370:6;15366:15;15362:26;15355:37;15410:6;15401:15;;;;;;14703:719;;;;:::o;15427:171::-;15494:20;;-1:-1:-1;;;;;15543:30:40;;15533:41;;15523:69;;15588:1;15585;15578:12;15603:163;15670:20;;15730:10;15719:22;;15709:33;;15699:61;;15756:1;15753;15746:12;15771:696;15824:5;15872:4;15860:9;15855:3;15851:19;15847:30;15844:50;;;15890:1;15887;15880:12;15844:50;15923:2;15917:9;15965:4;15957:6;15953:17;16036:6;16024:10;16021:22;-1:-1:-1;;;;;15988:10:40;15985:34;15982:62;15979:88;;;16047:18;;:::i;:::-;16083:2;16076:22;16116:6;-1:-1:-1;16116:6:40;16146:28;16164:9;16146:28;:::i;:::-;16138:6;16131:44;16208:37;16241:2;16230:9;16226:18;16208:37;:::i;:::-;16203:2;16195:6;16191:15;16184:62;16279:37;16312:2;16301:9;16297:18;16279:37;:::i;:::-;16274:2;16266:6;16262:15;16255:62;16350:37;16383:2;16372:9;16368:18;16350:37;:::i;:::-;16345:2;16337:6;16333:15;16326:62;16422:38;16455:3;16444:9;16440:19;16422:38;:::i;:::-;16416:3;16408:6;16404:16;16397:64;;15771:696;;;;:::o;16472:153::-;16550:20;;16599:1;16589:12;;16579:40;;16615:1;16612;16605:12;16630:1421;16688:5;16736:6;16724:9;16719:3;16715:19;16711:32;16708:52;;;16756:1;16753;16746:12;16708:52;16778:22;;:::i;:::-;16769:31;;16823:39;16852:9;16823:39;:::i;:::-;16816:5;16809:54;16895:48;16939:2;16928:9;16924:18;16895:48;:::i;:::-;16890:2;16883:5;16879:14;16872:72;16976:48;17020:2;17009:9;17005:18;16976:48;:::i;:::-;16971:2;16964:5;16960:14;16953:72;17057:48;17101:2;17090:9;17086:18;17057:48;:::i;:::-;17052:2;17045:5;17041:14;17034:72;17139:49;17183:3;17172:9;17168:19;17139:49;:::i;:::-;17133:3;17126:5;17122:15;17115:74;17222:49;17266:3;17255:9;17251:19;17222:49;:::i;:::-;17216:3;17209:5;17205:15;17198:74;17305:49;17349:3;17338:9;17334:19;17305:49;:::i;:::-;17299:3;17292:5;17288:15;17281:74;17388:38;17421:3;17410:9;17406:19;17388:38;:::i;:::-;17382:3;17375:5;17371:15;17364:63;17446:3;17481:48;17525:2;17514:9;17510:18;17481:48;:::i;:::-;17465:14;;;17458:72;17549:3;17584:48;17613:18;;;17584:48;:::i;:::-;17568:14;;;17561:72;17652:3;17687:48;17716:18;;;17687:48;:::i;:::-;17671:14;;;17664:72;17755:3;17790:48;17819:18;;;17790:48;:::i;:::-;17774:14;;;17767:72;17858:3;17893:48;17922:18;;;17893:48;:::i;:::-;17877:14;;;17870:72;17961:3;17996:48;18025:18;;;17996:48;:::i;:::-;17980:14;;;17973:72;17984:5;16630:1421;-1:-1:-1;;16630:1421:40:o;18056:485::-;18106:5;18159:3;18152:4;18144:6;18140:17;18136:27;18126:55;;18177:1;18174;18167:12;18126:55;18201:22;;:::i;:::-;18245:3;18283;18275:6;18271:16;18310:3;18302:6;18299:15;18296:35;;;18327:1;18324;18317:12;18296:35;18351:6;18366:146;18382:6;18377:3;18374:15;18366:146;;;18450:17;;18438:30;;18497:4;18488:14;;;;18399;18366:146;;;-1:-1:-1;18530:5:40;;18056:485;-1:-1:-1;;;;;18056:485:40:o;18546:155::-;18626:20;;18675:1;18665:12;;18655:40;;18691:1;18688;18681:12;18706:285;18763:5;18811:4;18799:9;18794:3;18790:19;18786:30;18783:50;;;18829:1;18826;18819:12;18783:50;18851:22;;:::i;:::-;18842:31;;18909:9;18896:23;18889:5;18882:38;18980:2;18969:9;18965:18;18952:32;18947:2;18940:5;18936:14;18929:56;18706:285;;;;:::o;18996:538::-;19078:5;19131:3;19124:4;19116:6;19112:17;19108:27;19098:55;;19149:1;19146;19139:12;19098:55;19173:22;;:::i;:::-;19217:3;19255;19247:6;19243:16;19282:3;19274:6;19271:15;19268:35;;;19299:1;19296;19289:12;19268:35;19323:6;19338:167;19354:6;19349:3;19346:15;19338:167;;;19422:38;19456:3;19451;19422:38;:::i;:::-;19410:51;;19490:4;19481:14;;;;19380:4;19371:14;19338:167;;19539:698;19599:5;19652:3;19645:4;19637:6;19633:17;19629:27;19619:55;;19670:1;19667;19660:12;19619:55;19693:2;19724;19718:9;19766:3;19758:6;19754:16;19836:6;19824:10;19821:22;-1:-1:-1;;;;;19788:10:40;19785:34;19782:62;19779:88;;;19847:18;;:::i;:::-;19876:22;;19918:6;19959:3;19947:16;;19975:15;;;19972:35;;;20003:1;20000;19993:12;19972:35;20027:6;20042:165;20058:6;20053:3;20050:15;20042:165;;;20124:38;20158:3;20153;20124:38;:::i;:::-;20112:51;;20192:4;20183:14;;;;20075:12;;20042:165;;;-1:-1:-1;20225:6:40;;19539:698;-1:-1:-1;;;;;;19539:698:40:o;20242:1264::-;20304:5;20343:9;20338:3;20334:19;20373:6;20369:2;20365:15;20362:35;;;20393:1;20390;20383:12;20362:35;20415:22;;:::i;:::-;20406:31;;20460:41;20491:9;20460:41;:::i;:::-;20453:5;20446:56;20534:50;20580:2;20569:9;20565:18;20534:50;:::i;:::-;20529:2;20522:5;20518:14;20511:74;20604:6;20644:2;20638;20634:7;20630:2;20626:16;20622:25;20619:45;;;20660:1;20657;20650:12;20619:45;20688:22;;:::i;:::-;20673:37;;20735:81;20812:3;20807:2;20796:9;20792:18;20735:81;:::i;:::-;20726:7;20719:98;20851:60;20907:3;20901;20890:9;20886:19;20851:60;:::i;:::-;20846:2;20837:7;20833:16;20826:86;20946:55;20997:3;20990:4;20979:9;20975:20;20946:55;:::i;:::-;20941:2;20932:7;20928:16;20921:81;21038:55;21089:3;21082:4;21071:9;21067:20;21038:55;:::i;:::-;21031:4;21022:7;21018:18;21011:83;21130:55;21181:3;21174:4;21163:9;21159:20;21130:55;:::i;:::-;21123:4;21114:7;21110:18;21103:83;21222:55;21273:3;21266:4;21255:9;21251:20;21222:55;:::i;:::-;21215:4;21206:7;21202:18;21195:83;21314:55;21365:3;21358:4;21347:9;21343:20;21314:55;:::i;:::-;21307:4;21298:7;21294:18;21287:83;21406:53;21455:3;21450:2;21439:9;21435:18;21406:53;:::i;:::-;21399:4;21386:18;;21379:81;-1:-1:-1;21487:2:40;21476:14;;21469:31;21480:5;20242:1264;-1:-1:-1;;20242:1264:40:o;21511:659::-;21572:5;21625:3;21618:4;21610:6;21606:17;21602:27;21592:55;;21643:1;21640;21633:12;21592:55;21676:2;21670:9;21718:3;21710:6;21706:16;21788:6;21776:10;21773:22;-1:-1:-1;;;;;21740:10:40;21737:34;21734:62;21731:88;;;21799:18;;:::i;:::-;21835:2;21828:22;21870:6;21911:3;21899:16;;21927:15;;;21924:35;;;21955:1;21952;21945:12;21924:35;21979:6;21994:146;22010:6;22005:3;22002:15;21994:146;;;22078:17;;22066:30;;22125:4;22116:14;;;;22027;21994:146;;;-1:-1:-1;22158:6:40;;21511:659;-1:-1:-1;;;;;21511:659:40:o;22175:849::-;22234:5;22282:6;22270:9;22265:3;22261:19;22257:32;22254:52;;;22302:1;22299;22292:12;22254:52;22324:22;;:::i;:::-;22315:31;;22369:40;22405:3;22394:9;22369:40;:::i;:::-;22362:5;22355:55;22444:59;22499:3;22493;22482:9;22478:19;22444:59;:::i;:::-;22437:4;22430:5;22426:16;22419:85;22538:39;22571:4;22560:9;22556:20;22538:39;:::i;:::-;22531:4;22524:5;22520:16;22513:65;22612:62;22670:3;22663:4;22652:9;22648:20;22612:62;:::i;:::-;22605:4;22598:5;22594:16;22587:88;22709:39;22742:4;22731:9;22727:20;22709:39;:::i;:::-;22702:4;22695:5;22691:16;22684:65;22783:37;22814:4;22803:9;22799:20;22783:37;:::i;:::-;22776:4;22769:5;22765:16;22758:63;22872:4;22861:9;22857:20;22844:34;-1:-1:-1;;;;;22893:6:40;22890:30;22887:50;;;22933:1;22930;22923:12;22887:50;22971:46;23013:3;23004:6;22993:9;22989:22;22971:46;:::i;:::-;22964:4;22957:5;22953:16;22946:72;;22175:849;;;;:::o;23029:1493::-;23113:6;23166:2;23154:9;23145:7;23141:23;23137:32;23134:52;;;23182:1;23179;23172:12;23134:52;23222:9;23209:23;-1:-1:-1;;;;;23292:2:40;23284:6;23281:14;23278:34;;;23308:1;23305;23298:12;23278:34;23331:22;;;;23387:6;23369:16;;;23365:29;23362:49;;;23407:1;23404;23397:12;23362:49;23433:17;;:::i;:::-;23473:48;23513:7;23509:2;23473:48;:::i;:::-;23466:5;23459:63;23575:2;23571;23567:11;23554:25;23549:2;23542:5;23538:14;23531:49;23626:2;23622;23618:11;23605:25;23655:2;23645:8;23642:16;23639:36;;;23671:1;23668;23661:12;23639:36;23707:45;23744:7;23733:8;23729:2;23725:17;23707:45;:::i;:::-;23702:2;23695:5;23691:14;23684:69;;23785:31;23811:3;23807:2;23803:12;23785:31;:::i;:::-;23780:2;23773:5;23769:14;23762:55;23850:31;23876:3;23872:2;23868:12;23850:31;:::i;:::-;23844:3;23837:5;23833:15;23826:56;23936:3;23932:2;23928:12;23915:26;23909:3;23902:5;23898:15;23891:51;23975:58;24025:7;24019:3;24015:2;24011:12;23975:58;:::i;:::-;23969:3;23962:5;23958:15;23951:83;24053:3;24110:2;24106;24102:11;24089:25;24083:3;24076:5;24072:15;24065:50;24134:3;24173:46;24211:7;24206:2;24202;24198:11;24173:46;:::i;:::-;24164:6;24157:5;24153:18;24146:74;24252:52;24296:7;24290:3;24286:2;24282:12;24252:52;:::i;:::-;24247:2;24240:5;24236:14;24229:76;24351:3;24347:2;24343:12;24330:26;24314:42;;24381:2;24371:8;24368:16;24365:36;;;24397:1;24394;24387:12;24365:36;24433:58;24483:7;24472:8;24468:2;24464:17;24433:58;:::i;:::-;24417:14;;;24410:82;-1:-1:-1;24421:5:40;23029:1493;-1:-1:-1;;;;;23029:1493:40:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"MinaAccountProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"MinaAccountProvingSystemIdIsNotValid"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/abi/MinaStateSettlement.json b/core/abi/MinaStateSettlement.json index 0588c07b..06638357 100644 --- a/core/abi/MinaStateSettlement.json +++ b/core/abi/MinaStateSettlement.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"MinaProvingSystemIdIsNotValid","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b506040516107d03803806107d0833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b6106e3806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103d5565b60405180910390f35b61008a610142565b6100bb6100b63660046104c6565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610586565b610350565b6040519015158152602001610097565b6100c56103a7565b6100c5601081565b61010e6103b6565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103b6565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d36001601061059f565b601081106101e3576101e36105c6565b0154811461022e578060006101fa6001601061059f565b6010811061020a5761020a6105c6565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105dc565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610684565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b6000601061033960018261059f565b60108110610349576103496105c6565b0154905090565b6000805b601081101561039e578260108261036c60018361059f565b610376919061059f565b60108110610386576103866105c6565b0154036103965750600192915050565b600101610354565b50600092915050565b6000806103396001601061059f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103fe5781518352602092830192909101906001016103df565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261042e57600080fd5b813567ffffffffffffffff8082111561044957610449610407565b604051601f8301601f19908116603f0116810190828211818310171561047157610471610407565b8160405283815286602085880101111561048a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104c157600080fd5b919050565b600080600080600080600080610100898b0312156104e357600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461050e57600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053257600080fd5b61053e8c838d0161041d565b955060a08b0135945060c08b013591508082111561055b57600080fd5b506105688b828c0161041d565b92505061057760e08a016104aa565b90509295985092959890939650565b60006020828403121561059857600080fd5b5035919050565b818103818111156105c057634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561063e5787830182015185840161012001529181019161061f565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261067760e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561069657600080fd5b815180151581146106a657600080fd5b939250505056fea2646970667358221220a29b80757367527662e0b8b0382a899722378cafab642bbe60eb1cf263a0c23064736f6c63430008190033","sourceMap":"473:4848:38:-:0;;;1363:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1445:7;:57;;-1:-1:-1;;;;;;1445:57:38;-1:-1:-1;;;;;1445:57:38;;;;;1567:13;-1:-1:-1;1529:34:38;-1:-1:-1;858:2:38;1529:34;:::i;:::-;1512:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;473:4848:38;;-1:-1:-1;473:4848:38;14:359:39;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:39;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:39:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;473:4848:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103d5565b60405180910390f35b61008a610142565b6100bb6100b63660046104c6565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610586565b610350565b6040519015158152602001610097565b6100c56103a7565b6100c5601081565b61010e6103b6565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103b6565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d36001601061059f565b601081106101e3576101e36105c6565b0154811461022e578060006101fa6001601061059f565b6010811061020a5761020a6105c6565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105dc565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610684565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b6000601061033960018261059f565b60108110610349576103496105c6565b0154905090565b6000805b601081101561039e578260108261036c60018361059f565b610376919061059f565b60108110610386576103866105c6565b0154036103965750600192915050565b600101610354565b50600092915050565b6000806103396001601061059f565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103fe5781518352602092830192909101906001016103df565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261042e57600080fd5b813567ffffffffffffffff8082111561044957610449610407565b604051601f8301601f19908116603f0116810190828211818310171561047157610471610407565b8160405283815286602085880101111561048a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104c157600080fd5b919050565b600080600080600080600080610100898b0312156104e357600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461050e57600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053257600080fd5b61053e8c838d0161041d565b955060a08b0135945060c08b013591508082111561055b57600080fd5b506105688b828c0161041d565b92505061057760e08a016104aa565b90509295985092959890939650565b60006020828403121561059857600080fd5b5035919050565b818103818111156105c057634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561063e5787830182015185840161012001529181019161061f565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261067760e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561069657600080fd5b815180151581146106a657600080fd5b939250505056fea2646970667358221220a29b80757367527662e0b8b0382a899722378cafab642bbe60eb1cf263a0c23064736f6c63430008190033","sourceMap":"473:4848:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2050:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:144;;;:::i;2808:2511::-;;;;;;:::i;:::-;;:::i;:::-;;1843:137;;;:::i;:::-;;;2776:25:39;;;2764:2;2749:18;1843:137:38;2630:177:39;2483:319:38;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:39;;3155:22;3137:41;;3125:2;3110:18;2483:319:38;2997:187:39;1647:135:38;;;:::i;801:59::-;;858:2;801:59;;2050:142;2104:46;;:::i;:::-;2162:23;;;;;;;;;;;-1:-1:-1;;2162:23:38;;-1:-1:-1;2162:23:38;;;;;;;;;;;;;;;;;;;;;;;;2050:142;:::o;2263:144::-;2318:46;;:::i;:::-;2376:24;;;;;;;;;;2383:17;2376:24;;;;;;2383:17;;2376:24;;;;;;;;;;;;;;;;2263:144;:::o;2808:2511::-;608:66;3156:56;;3152:155;;3235:61;;-1:-1:-1;;;3235:61:38;;;;;2776:25:39;;;2749:18;;3235:61:38;;;;;;;;3152:155;3434:4;3420:19;;3414:26;3317:34;3511;3544:1;858:2;3511:34;:::i;:::-;3494:52;;;;;;;:::i;:::-;;;3464:26;:82;3460:217;;3585:26;3613:16;3630:34;3663:1;858:2;3630:34;:::i;:::-;3613:52;;;;;;;:::i;:::-;;;3569:97;;-1:-1:-1;;;3569:97:38;;;;;3907:25:39;;;;3948:18;;;3941:34;3880:18;;3569:97:38;3733:248:39;3460:217:38;3716:19;;;;;;;;;;3772:7;;:304;;-1:-1:-1;;;3772:304:38;;3687:26;;-1:-1:-1;;;;;3772:7:38;;:28;;:304;;3814:15;;3716:19;;3875:30;;3919:18;;3951:15;;3980:11;;4005:26;;4045:21;;3772:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3746:330;;4091:18;4087:1226;;;4229:21;4287:22;4577:2;4563:17;;4712:57;;;4229:21;4787:444;4812:30;4809:1;4806:37;4787:444;;;4905:18;;4885:39;;5078:19;;5057:41;;5033:1;5016:19;;;;5193:20;;;;4977:2;4960:20;;;;5135:21;;;;4851:9;4787:444;;;4791:14;;;;;4087:1226;;;5282:20;;-1:-1:-1;;;5282:20:38;;;;;;;;;;;4087:1226;3142:2177;;;2808:2511;;;;;;;;:::o;1843:137::-;1894:7;1920:17;1938:34;1971:1;1920:17;1938:34;:::i;:::-;1920:53;;;;;;;:::i;:::-;;;1913:60;;1843:137;:::o;2483:319::-;2552:4;;2568:206;858:2;2588:1;:34;2568:206;;;2708:10;2647:17;2702:1;2665:34;2698:1;2647:17;2665:34;:::i;:::-;:38;;;;:::i;:::-;2647:57;;;;;;;:::i;:::-;;;:71;2643:121;;-1:-1:-1;2745:4:38;;2483:319;-1:-1:-1;;2483:319:38:o;2643:121::-;2624:3;;2568:206;;;-1:-1:-1;2790:5:38;;2483:319;-1:-1:-1;;2483:319:38:o;1647:135::-;1697:7;;1740:34;1773:1;858:2;1740:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:39:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:39;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:39;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:39;1893:18;;1880:32;;-1:-1:-1;1962:2:39;1947:18;;1934:32;-1:-1:-1;;1995:43:39;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:39;2113:18;;2100:32;;-1:-1:-1;2183:3:39;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:39;;2812:180;-1:-1:-1;2812:180:39:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:39;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:39:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"MinaProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"type":"error","name":"MinaProvingSystemIdIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"_devnetFlag","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"MinaNetworkIsWrong","inputs":[]},{"type":"error","name":"MinaProvingSystemIdIsNotValid","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161087938038061087983398101604081905261002f91610089565b60208054610100600160a81b0319166101006001600160a01b0386160217905581600061005e600160106100dd565b6010811061006e5761006e610104565b01556020805460ff19169115159190911790555061011a9050565b60008060006060848603121561009e57600080fd5b83516001600160a01b03811681146100b557600080fd5b60208501516040860151919450925080151581146100d257600080fd5b809150509250925092565b818103818111156100fe57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b610750806101296000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610422565b60405180910390f35b61008a610142565b6100bb6100b6366004610513565b610178565b005b6100c561036d565b604051908152602001610097565b6100e66100e13660046105d3565b610393565b6040519015158152602001610097565b6100c56103f4565b6100c5601081565b61010e610403565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610403565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082810151905460ff161515811515146101ee5760405163042eb0cf60e01b815260040160405180910390fd5b6021830151600061020160016010610602565b601081106102115761021161061b565b0154811461025c5780600061022860016010610602565b601081106102385761023861061b565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b6000848051906020012090506000602060019054906101000a90046001600160a01b03166001600160a01b03166306045a918d848e8e8e8e8e8d6040518963ffffffff1660e01b81526004016102b9989796959493929190610631565b602060405180830381865afa1580156102d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fa91906106d8565b905080156103465760006010604188016102418901835b601081101561033c578251855581518455600194850194938401936020938401939092019101610311565b505050505061035f565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050505050565b6000601061037c600182610602565b6010811061038c5761038c61061b565b0154905090565b6000805b60108110156103eb57826010826103af600183610602565b6103b99190610602565b601081106103c9576103c961061b565b0154036103d95750600192915050565b806103e381610701565b915050610397565b50600092915050565b60008061037c60016010610602565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b601081101561044b57815183526020928301929091019060010161042c565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261047b57600080fd5b813567ffffffffffffffff8082111561049657610496610454565b604051601f8301601f19908116603f011681019082821181831017156104be576104be610454565b816040528381528660208588010111156104d757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461050e57600080fd5b919050565b600080600080600080600080610100898b03121561053057600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461055b57600080fd5b955060608901359450608089013567ffffffffffffffff8082111561057f57600080fd5b61058b8c838d0161046a565b955060a08b0135945060c08b01359150808211156105a857600080fd5b506105b58b828c0161046a565b9250506105c460e08a016104f7565b90509295985092959890939650565b6000602082840312156105e557600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610615576106156105ec565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561069257878301820151858401610120015291810191610673565b6101209250600083828701015282601f19601f83011686010193505050508360c08301526106cb60e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156106ea57600080fd5b815180151581146106fa57600080fd5b9392505050565b600060018201610713576107136105ec565b506001019056fea2646970667358221220721026cfefc723cd66a0d0700e2a90993a4eac4ef8b48a3b2b44c22d46167d2b64736f6c63430008150033","sourceMap":"465:5204:38:-:0;;;1377:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1477:7;:57;;-1:-1:-1;;;;;;1477:57:38;;-1:-1:-1;;;;;1477:57:38;;;;;;1599:13;-1:-1:-1;1561:34:38;-1:-1:-1;850:2:38;1561:34;:::i;:::-;1544:52;;;;;;;:::i;:::-;;:68;1622:10;:24;;-1:-1:-1;;1622:24:38;;;;;;;;;;-1:-1:-1;465:5204:38;;-1:-1:-1;465:5204:38;14:521:39;107:6;115;123;176:2;164:9;155:7;151:23;147:32;144:52;;;192:1;189;182:12;144:52;218:16;;-1:-1:-1;;;;;263:31:39;;253:42;;243:70;;309:1;306;299:12;243:70;377:2;362:18;;356:25;426:2;411:18;;405:25;332:5;;-1:-1:-1;356:25:39;-1:-1:-1;468:15:39;;461:23;449:36;;439:64;;499:1;496;489:12;439:64;522:7;512:17;;;14:521;;;;;:::o;540:225::-;607:9;;;628:11;;;625:134;;;681:10;676:3;672:20;669:1;662:31;716:4;713:1;706:15;744:4;741:1;734:15;625:134;540:225;;;;:::o;770:127::-;831:10;826:3;822:20;819:1;812:31;862:4;859:1;852:15;886:4;883:1;876:15;770:127;465:5204:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610422565b60405180910390f35b61008a610142565b6100bb6100b6366004610513565b610178565b005b6100c561036d565b604051908152602001610097565b6100e66100e13660046105d3565b610393565b6040519015158152602001610097565b6100c56103f4565b6100c5601081565b61010e610403565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610403565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082810151905460ff161515811515146101ee5760405163042eb0cf60e01b815260040160405180910390fd5b6021830151600061020160016010610602565b601081106102115761021161061b565b0154811461025c5780600061022860016010610602565b601081106102385761023861061b565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b6000848051906020012090506000602060019054906101000a90046001600160a01b03166001600160a01b03166306045a918d848e8e8e8e8e8d6040518963ffffffff1660e01b81526004016102b9989796959493929190610631565b602060405180830381865afa1580156102d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fa91906106d8565b905080156103465760006010604188016102418901835b601081101561033c578251855581518455600194850194938401936020938401939092019101610311565b505050505061035f565b604051630114602f60e41b815260040160405180910390fd5b505050505050505050505050565b6000601061037c600182610602565b6010811061038c5761038c61061b565b0154905090565b6000805b60108110156103eb57826010826103af600183610602565b6103b99190610602565b601081106103c9576103c961061b565b0154036103d95750600192915050565b806103e381610701565b915050610397565b50600092915050565b60008061037c60016010610602565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b601081101561044b57815183526020928301929091019060010161042c565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261047b57600080fd5b813567ffffffffffffffff8082111561049657610496610454565b604051601f8301601f19908116603f011681019082821181831017156104be576104be610454565b816040528381528660208588010111156104d757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461050e57600080fd5b919050565b600080600080600080600080610100898b03121561053057600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461055b57600080fd5b955060608901359450608089013567ffffffffffffffff8082111561057f57600080fd5b61058b8c838d0161046a565b955060a08b0135945060c08b01359150808211156105a857600080fd5b506105b58b828c0161046a565b9250506105c460e08a016104f7565b90509295985092959890939650565b6000602082840312156105e557600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610615576106156105ec565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561069257878301820151858401610120015291810191610673565b6101209250600083828701015282601f19601f83011686010193505050508360c08301526106cb60e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156106ea57600080fd5b815180151581146106fa57600080fd5b9392505050565b600060018201610713576107136105ec565b506001019056fea2646970667358221220721026cfefc723cd66a0d0700e2a90993a4eac4ef8b48a3b2b44c22d46167d2b64736f6c63430008150033","sourceMap":"465:5204:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2329:144;;;:::i;2874:2793::-;;;;;;:::i;:::-;;:::i;:::-;;1909:137;;;:::i;:::-;;;2776:25:39;;;2764:2;2749:18;1909:137:38;2630:177:39;2549:319:38;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:39;;3155:22;3137:41;;3125:2;3110:18;2549:319:38;2997:187:39;1713:135:38;;;:::i;793:59::-;;850:2;793:59;;2116:142;2170:46;;:::i;:::-;2228:23;;;;;;;;;;;-1:-1:-1;;2228:23:38;;-1:-1:-1;2228:23:38;;;;;;;;;;;;;;;;;;;;;;;;2116:142;:::o;2329:144::-;2384:46;;:::i;:::-;2442:24;;;;;;;;;;2449:17;2442:24;;;;;;2449:17;;2442:24;;;;;;;;;;;;;;;;2329:144;:::o;2874:2793::-;600:66;3222:56;;3218:155;;3301:61;;-1:-1:-1;;;3301:61:38;;;;;2776:25:39;;;2749:18;;3301:61:38;;;;;;;;3218:155;3481:4;3467:19;;;3461:26;3533:10;;;;3511:32;;;;;;3507:90;;3566:20;;-1:-1:-1;;;3566:20:38;;;;;;;;;;;3507:90;3724:4;3710:19;;3704:26;3607:34;3801;3834:1;850:2;3801:34;:::i;:::-;3784:52;;;;;;;:::i;:::-;;;3754:26;:82;3750:217;;3875:26;3903:16;3920:34;3953:1;850:2;3920:34;:::i;:::-;3903:52;;;;;;;:::i;:::-;;;3859:97;;-1:-1:-1;;;3859:97:38;;;;;3942:25:39;;;;3983:18;;;3976:34;3915:18;;3859:97:38;3768:248:39;3750:217:38;3977:26;4016:8;4006:19;;;;;;3977:48;;4036:23;4062:7;;;;;;;;;-1:-1:-1;;;;;4062:7:38;-1:-1:-1;;;;;4062:28:38;;4104:15;4133:18;4165:30;4209:18;4241:15;4270:11;4295:26;4335:21;4062:304;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4036:330;;4381:18;4377:1284;;;4519:21;4577:22;4925:2;4911:17;;5060:57;;;4519:21;5135:444;5160:30;5157:1;5154:37;5135:444;;;5253:18;;5233:39;;5426:19;;5405:41;;5381:1;5364:19;;;;5541:20;;;;5325:2;5308:20;;;;5483:21;;;;5199:9;5135:444;;;5139:14;;;;;4377:1284;;;5630:20;;-1:-1:-1;;;5630:20:38;;;;;;;;;;;4377:1284;3208:2459;;;;2874:2793;;;;;;;;:::o;1909:137::-;1960:7;1986:17;2004:34;2037:1;1986:17;2004:34;:::i;:::-;1986:53;;;;;;;:::i;:::-;;;1979:60;;1909:137;:::o;2549:319::-;2618:4;;2634:206;850:2;2654:1;:34;2634:206;;;2774:10;2713:17;2768:1;2731:34;2764:1;2713:17;2731:34;:::i;:::-;:38;;;;:::i;:::-;2713:57;;;;;;;:::i;:::-;;;:71;2709:121;;-1:-1:-1;2811:4:38;;2549:319;-1:-1:-1;;2549:319:38:o;2709:121::-;2690:3;;;;:::i;:::-;;;;2634:206;;;-1:-1:-1;2856:5:38;;2549:319;-1:-1:-1;;2549:319:38:o;1713:135::-;1763:7;;1806:34;1839:1;850:2;1806:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:39:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:39;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:39;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:39;1893:18;;1880:32;;-1:-1:-1;1962:2:39;1947:18;;1934:32;-1:-1:-1;;1995:43:39;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:39;2113:18;;2100:32;;-1:-1:-1;2183:3:39;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:39;;2812:180;-1:-1:-1;2812:180:39:o;3371:127::-;3432:10;3427:3;3423:20;3420:1;3413:31;3463:4;3460:1;3453:15;3487:4;3484:1;3477:15;3503:128;3570:9;;;3591:11;;;3588:37;;;3605:18;;:::i;:::-;3503:128;;;;:::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;4130:1142;4436:4;4465:3;4495:6;4484:9;4477:25;4521:2;4559:6;4554:2;4543:9;4539:18;4532:34;4602:6;4597:2;4586:9;4582:18;4575:34;4661:26;4657:31;4649:6;4645:44;4640:2;4629:9;4625:18;4618:72;4727:6;4721:3;4710:9;4706:19;4699:35;4771:2;4765:3;4754:9;4750:19;4743:31;4803:6;4797:13;4846:6;4841:2;4830:9;4826:18;4819:34;4871:1;4862:10;;4881:141;4895:6;4892:1;4889:13;4881:141;;;4991:14;;;4987:23;;4981:30;4956:17;;;4975:3;4952:27;4945:67;4910:10;;;;4881:141;;;5041:3;5031:13;;5093:1;5088:2;5079:6;5068:9;5064:22;5060:31;5053:42;5163:2;5156;5152:7;5147:2;5139:6;5135:15;5131:29;5120:9;5116:45;5112:54;5104:62;;;;;5203:6;5197:3;5186:9;5182:19;5175:35;5219:47;5261:3;5250:9;5246:19;5238:6;-1:-1:-1;;;;;4087:31:39;4075:44;;4021:104;5219:47;4130:1142;;;;;;;;;;;:::o;5277:277::-;5344:6;5397:2;5385:9;5376:7;5372:23;5368:32;5365:52;;;5413:1;5410;5403:12;5365:52;5445:9;5439:16;5498:5;5491:13;5484:21;5477:5;5474:32;5464:60;;5520:1;5517;5510:12;5464:60;5543:5;5277:277;-1:-1:-1;;;5277:277:39:o;5559:135::-;5598:3;5619:17;;;5616:43;;5639:18;;:::i;:::-;-1:-1:-1;5686:1:39;5675:13;;5559:135::o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_devnetFlag\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"MinaNetworkIsWrong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"MinaProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0x8adc9f8c4128e93d47ce5bb002a60cb355dbe647db4b9433563f49d0d8feee05\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb9bef60086f432b69365430543897bac14f654cb5af5b6d359f26981f41f52d\",\"dweb:/ipfs/QmTtb2mPJPxXFbTtTxZ2ELrqPVhS85XYmnexv8aNBP3sBx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"},{"internalType":"bool","name":"_devnetFlag","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"MinaNetworkIsWrong"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"type":"error","name":"MinaProvingSystemIdIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0x8adc9f8c4128e93d47ce5bb002a60cb355dbe647db4b9433563f49d0d8feee05","urls":["bzz-raw://fb9bef60086f432b69365430543897bac14f654cb5af5b6d359f26981f41f52d","dweb:/ipfs/QmTtb2mPJPxXFbTtTxZ2ELrqPVhS85XYmnexv8aNBP3sBx"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/src/eth.rs b/core/src/eth.rs index e6d47ede..5c1984b1 100644 --- a/core/src/eth.rs +++ b/core/src/eth.rs @@ -15,10 +15,7 @@ use serde_with::serde_as; use crate::{ proof::{account_proof::MinaAccountPubInputs, state_proof::MinaStatePubInputs}, sol::serialization::SolSerialize, - utils::{ - constants::{ANVIL_CHAIN_ID, BRIDGE_TRANSITION_FRONTIER_LEN, HOLESKY_CHAIN_ID}, - contract::{get_account_validation_contract_addr, get_bridge_contract_addr}, - }, + utils::constants::{ANVIL_CHAIN_ID, BRIDGE_TRANSITION_FRONTIER_LEN, HOLESKY_CHAIN_ID}, }; abigen!( @@ -97,10 +94,10 @@ pub async fn update_chain( chain: &Chain, eth_rpc_url: &str, wallet: Wallet, + contract_addr: &str, batcher_payment_service: &str, ) -> Result<(), String> { - let bridge_eth_addr = - Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; + let bridge_eth_addr = Address::from_str(contract_addr).map_err(|err| err.to_string())?; let serialized_pub_input = bincode::serialize(pub_input) .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; @@ -173,7 +170,7 @@ pub async fn update_chain( // TODO(xqft): do the same for ledger hashes debug!("Getting chain state hashes"); - let new_chain_state_hashes = get_bridge_chain_state_hashes(chain, eth_rpc_url) + let new_chain_state_hashes = get_bridge_chain_state_hashes(contract_addr, eth_rpc_url) .await .map_err(|err| err.to_string())?; @@ -190,9 +187,11 @@ pub async fn update_chain( Ok(()) } -pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result { - let bridge_eth_addr = - Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; +pub async fn get_bridge_tip_hash( + contract_addr: &str, + eth_rpc_url: &str, +) -> Result { + let bridge_eth_addr = Address::from_str(contract_addr).map_err(|err| err.to_string())?; debug!("Creating contract instance"); let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; @@ -210,11 +209,10 @@ pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result Result<[StateHash; BRIDGE_TRANSITION_FRONTIER_LEN], String> { - let bridge_eth_addr = - Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; + let bridge_eth_addr = Address::from_str(contract_addr).map_err(|err| err.to_string())?; debug!("Creating contract instance"); let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; @@ -243,12 +241,11 @@ pub async fn get_bridge_chain_state_hashes( pub async fn validate_account( verification_data: AlignedVerificationData, pub_input: &MinaAccountPubInputs, - chain: &Chain, eth_rpc_url: &str, + contract_addr: &str, batcher_payment_service: &str, ) -> Result<(), String> { - let bridge_eth_addr = Address::from_str(&get_account_validation_contract_addr(chain)?) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = Address::from_str(contract_addr).map_err(|err| err.to_string())?; debug!("Creating contract instance"); @@ -308,8 +305,9 @@ pub async fn validate_account( pub async fn deploy_mina_bridge_contract( eth_rpc_url: &str, - constructor_args: MinaStateSettlementConstructorArgs, + constructor_args: &MinaStateSettlementConstructorArgs, wallet: &EthereumWallet, + is_state_proof_from_devnet: bool, ) -> Result { let provider = ProviderBuilder::new() .with_recommended_fillers() @@ -320,14 +318,29 @@ pub async fn deploy_mina_bridge_contract( aligned_service_addr, root_state_hash, } = constructor_args; - let contract = MinaStateSettlement::deploy(&provider, aligned_service_addr, root_state_hash) - .await - .map_err(|err| err.to_string())?; + let contract = MinaStateSettlement::deploy( + &provider, + *aligned_service_addr, + *root_state_hash, + is_state_proof_from_devnet, + ) + .await + .map_err(|err| err.to_string())?; let address = contract.address(); + let network = if is_state_proof_from_devnet { + "Devnet" + } else { + "Mainnet" + }; + info!( - "Mina Bridge contract successfuly deployed with address {}", - address + "Mina {} Bridge contract successfuly deployed with address {}", + network, address + ); + info!( + "Set STATE_SETTLEMENT_ETH_ADDR={} if using Mina {}", + address, network ); Ok(*address) @@ -355,6 +368,7 @@ pub async fn deploy_mina_account_validation_contract( "Mina Account Validation contract successfuly deployed with address {}", address ); + info!("Set ACCOUNT_VALIDATION_ETH_ADDR={}", address); Ok(*address) } diff --git a/core/src/main.rs b/core/src/main.rs index 1522a909..0384ad0b 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -17,6 +17,8 @@ struct Cli { #[derive(Subcommand)] enum Command { SubmitState { + #[arg(short, long)] + devnet: bool, /// Write the proof into .proof and .pub files #[arg(short, long)] save_proof: bool, @@ -41,6 +43,8 @@ async fn main() { let EnvironmentVariables { rpc_url, chain, + state_settlement_addr, + account_validation_addr, batcher_addr, batcher_eth_addr, eth_rpc_url, @@ -52,6 +56,15 @@ async fn main() { process::exit(1); }); + let state_settlement_addr = state_settlement_addr.unwrap_or_else(|| { + error!("Error getting State settlement contract address"); + process::exit(1); + }); + let account_validation_addr = account_validation_addr.unwrap_or_else(|| { + error!("Error getting Account validation contract address"); + process::exit(1); + }); + let wallet = get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) .unwrap_or_else(|err| { error!("{}", err); @@ -59,13 +72,18 @@ async fn main() { }); match cli.command { - Command::SubmitState { save_proof } => { - let (proof, pub_input) = mina::get_mina_proof_of_state(&rpc_url, &chain, ð_rpc_url) - .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); + Command::SubmitState { devnet, save_proof } => { + let (proof, pub_input) = mina::get_mina_proof_of_state( + &rpc_url, + ð_rpc_url, + &state_settlement_addr, + devnet, + ) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); let verification_data = aligned::submit( MinaProof::State((proof, pub_input.clone())), @@ -89,6 +107,7 @@ async fn main() { &chain, ð_rpc_url, wallet, + &state_settlement_addr, &batcher_eth_addr, ) .await @@ -129,8 +148,8 @@ async fn main() { if let Err(err) = eth::validate_account( verification_data, &pub_input, - &chain, ð_rpc_url, + &account_validation_addr, &batcher_eth_addr, ) .await diff --git a/core/src/mina.rs b/core/src/mina.rs index 2ee437af..ab2c1e2e 100644 --- a/core/src/mina.rs +++ b/core/src/mina.rs @@ -1,6 +1,5 @@ use std::str::FromStr; -use aligned_sdk::core::types::Chain; use alloy_sol_types::SolValue; use base64::prelude::*; use futures::future::join_all; @@ -59,10 +58,11 @@ struct AccountQuery; pub async fn get_mina_proof_of_state( rpc_url: &str, - chain: &Chain, eth_rpc_url: &str, + contract_addr: &str, + is_state_proof_from_devnet: bool, ) -> Result<(MinaStateProof, MinaStatePubInputs), String> { - let bridge_tip_state_hash = get_bridge_tip_hash(chain, eth_rpc_url).await?.0; + let bridge_tip_state_hash = get_bridge_tip_hash(contract_addr, eth_rpc_url).await?.0; let ( candidate_chain_states, candidate_chain_state_hashes, @@ -85,6 +85,7 @@ pub async fn get_mina_proof_of_state( bridge_tip_state, }, MinaStatePubInputs { + is_state_proof_from_devnet, bridge_tip_state_hash, candidate_chain_state_hashes, candidate_chain_ledger_hashes, diff --git a/core/src/proof/state_proof.rs b/core/src/proof/state_proof.rs index 2f49970c..862cae78 100644 --- a/core/src/proof/state_proof.rs +++ b/core/src/proof/state_proof.rs @@ -9,6 +9,7 @@ use crate::{sol::serialization::SolSerialize, utils::constants::BRIDGE_TRANSITIO #[serde_as] #[derive(Serialize, Deserialize, Clone)] pub struct MinaStatePubInputs { + pub is_state_proof_from_devnet: bool, /// The hash of the bridge's transition frontier tip state. Used for making sure that we're /// checking if a candidate tip is better than the latest bridged tip. #[serde_as(as = "SolSerialize")] diff --git a/core/src/sdk.rs b/core/src/sdk.rs index f7f9e9c2..f1701d10 100644 --- a/core/src/sdk.rs +++ b/core/src/sdk.rs @@ -25,20 +25,21 @@ pub struct AccountVerificationData { pub async fn is_state_verified( hash: &str, - chain: &Chain, + state_settlement_addr: &str, eth_rpc_url: &str, ) -> Result { - let chain_state_hashes = get_bridge_chain_state_hashes(chain, eth_rpc_url).await?; + let chain_state_hashes = + get_bridge_chain_state_hashes(state_settlement_addr, eth_rpc_url).await?; let hash = StateHash::from_str(hash) .map_err(|err| format!("Failed to convert hash string to state hash: {err}"))?; Ok(chain_state_hashes.contains(&hash)) } pub async fn get_bridged_chain_tip_state_hash( - chain: &Chain, + state_settlement_addr: &str, eth_rpc_url: &str, ) -> Result { - get_bridge_chain_state_hashes(chain, eth_rpc_url) + get_bridge_chain_state_hashes(state_settlement_addr, eth_rpc_url) .await .map(|hashes| hashes.last().unwrap().to_string()) } @@ -47,18 +48,26 @@ pub async fn get_bridged_chain_tip_state_hash( pub async fn update_bridge_chain( rpc_url: &str, chain: &Chain, + state_settlement_addr: &str, batcher_addr: &str, batcher_eth_addr: &str, eth_rpc_url: &str, proof_generator_addr: &str, wallet: Wallet, batcher_payment_service: &str, + is_state_proof_from_devnet: bool, save_proof: bool, ) -> Result<(), String> { - let (proof, pub_input) = get_mina_proof_of_state(rpc_url, chain, eth_rpc_url).await?; + let (proof, pub_input) = get_mina_proof_of_state( + rpc_url, + eth_rpc_url, + state_settlement_addr, + is_state_proof_from_devnet, + ) + .await?; if pub_input.candidate_chain_state_hashes - == get_bridge_chain_state_hashes(chain, eth_rpc_url).await? + == get_bridge_chain_state_hashes(state_settlement_addr, eth_rpc_url).await? { debug!("The bridge chain is updated to the candidate chain"); return Err("Latest chain is already verified".to_string()); @@ -82,6 +91,7 @@ pub async fn update_bridge_chain( chain, eth_rpc_url, wallet, + state_settlement_addr, batcher_payment_service, ) .await?; @@ -95,6 +105,7 @@ pub async fn validate_account( state_hash: &str, rpc_url: &str, chain: &Chain, + account_validation_addr: &str, batcher_addr: &str, batcher_eth_addr: &str, eth_rpc_url: &str, @@ -120,8 +131,8 @@ pub async fn validate_account( eth::validate_account( verification_data.clone(), &pub_input, - chain, eth_rpc_url, + account_validation_addr, batcher_payment_service, ) .await?; diff --git a/core/src/utils/contract.rs b/core/src/utils/contract.rs deleted file mode 100644 index d555d217..00000000 --- a/core/src/utils/contract.rs +++ /dev/null @@ -1,32 +0,0 @@ -use aligned_sdk::core::types::Chain; - -use super::constants::{ - ALIGNED_SM_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_DEVNET_ETH_ADDR, -}; - -pub fn get_bridge_contract_addr(chain: &Chain) -> Result { - match chain { - Chain::Devnet => Ok(BRIDGE_DEVNET_ETH_ADDR.to_owned()), - Chain::Holesky => std::env::var("BRIDGE_HOLESKY_ETH_ADDR") - .map_err(|err| format!("Error getting Bridge contract address: {err}")), - _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), - } -} - -pub fn get_account_validation_contract_addr(chain: &Chain) -> Result { - match chain { - Chain::Devnet => Ok(BRIDGE_ACCOUNT_DEVNET_ETH_ADDR.to_owned()), - Chain::Holesky => std::env::var("BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR") - .map_err(|err| format!("Error getting Account validation contract address: {err}")), - _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), - } -} - -pub fn get_aligned_sm_contract_addr(chain: &Chain) -> Result { - match chain { - Chain::Devnet => Ok(ALIGNED_SM_DEVNET_ETH_ADDR.to_owned()), - Chain::Holesky => std::env::var("ALIGNED_SM_HOLESKY_ETH_ADDR") - .map_err(|err| format!("Error getting Aligned SM contract address: {err}")), - _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), - } -} diff --git a/core/src/utils/env.rs b/core/src/utils/env.rs index 40ca72e4..4eac5fa7 100644 --- a/core/src/utils/env.rs +++ b/core/src/utils/env.rs @@ -10,6 +10,8 @@ use super::constants::{ pub struct EnvironmentVariables { pub rpc_url: String, pub chain: Chain, + pub state_settlement_addr: Option, + pub account_validation_addr: Option, pub batcher_addr: String, pub batcher_eth_addr: String, pub eth_rpc_url: String, @@ -57,6 +59,9 @@ impl EnvironmentVariables { ), }; + let state_settlement_addr = std::env::var("STATE_SETTLEMENT_ETH_ADDR").ok(); + let account_validation_addr = std::env::var("ACCOUNT_VALIDATION_ETH_ADDR").ok(); + let batcher_addr = load_var_or("BATCHER_ADDR", ANVIL_BATCHER_ADDR, &chain)?; let batcher_eth_addr = load_var_or("BATCHER_ETH_ADDR", ANVIL_BATCHER_ETH_ADDR, &chain)?; let eth_rpc_url = load_var_or("ETH_RPC_URL", ANVIL_ETH_RPC_URL, &chain)?; @@ -76,6 +81,8 @@ impl EnvironmentVariables { Ok(EnvironmentVariables { rpc_url, chain, + state_settlement_addr, + account_validation_addr, batcher_addr, batcher_eth_addr, eth_rpc_url, diff --git a/core/src/utils/mod.rs b/core/src/utils/mod.rs index 698644a5..6e24fa03 100644 --- a/core/src/utils/mod.rs +++ b/core/src/utils/mod.rs @@ -1,5 +1,4 @@ pub mod constants; -pub mod contract; pub mod env; pub mod wallet; pub mod wallet_alloy; diff --git a/example/app/Cargo.lock b/example/app/Cargo.lock index 11c8ed1a..73254ac7 100644 --- a/example/app/Cargo.lock +++ b/example/app/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "aligned-sdk" version = "0.1.0" -source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=update_to_0_7_for_real#9bac7bc5a683ea1f68db9a928bed9a87e5f7b97f" +source = "git+https://github.com/lambdaclass/aligned_layer.git?branch=use_two_vks#56ac3a2e0a2d8accbc5466d6491ca082b45723cc" dependencies = [ "ciborium", "ethers", diff --git a/example/app/Cargo.toml b/example/app/Cargo.toml index d216b6cc..a41f681d 100644 --- a/example/app/Cargo.toml +++ b/example/app/Cargo.toml @@ -13,7 +13,7 @@ alloy = { version = "0.3.1", features = ["full", "signer-keystore"] } alloy-sol-types = "0.8.2" alloy-contract = "0.3.1" reqwest = "^0.11" -aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "update_to_0_7_for_real" } +aligned-sdk = { git = "https://github.com/lambdaclass/aligned_layer.git", branch = "use_two_vks" } [patch.crates-io] ark-ff = { git = "https://github.com/openmina/algebra", branch = "openmina" } diff --git a/example/app/abi/SudokuValidity.json b/example/app/abi/SudokuValidity.json index dc38f191..a1017ddb 100644 --- a/example/app/abi/SudokuValidity.json +++ b/example/app/abi/SudokuValidity.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea26469706673582212207aece9f55ced5944e497ec451a368ea97ad33c7246a5cd86572d170c7e3881a564736f6c63430008190033","sourceMap":"186:2909:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2909;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2909:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea26469706673582212207aece9f55ced5944e497ec451a368ea97ad33c7246a5cd86572d170c7e3881a564736f6c63430008190033","sourceMap":"186:2909:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1627;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1627;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:299;;;;;;;;2083:15;2036:299;;;;2112:30;2036:299;;;;2156:18;2036:299;;;;;;;2188:15;2036:299;;;;2217:11;2036:299;;;;2242:26;2036:299;;;;2282:8;;2036:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:299:40;;;-1:-1:-1;;;;;;2036:299:40;;;;;;;;;;;2351:17;;:39;;-1:-1:-1;;;2351:39:40;;1988:347;;-1:-1:-1;2351:17:40;;:33;;:39;;1988:347;;2351:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2346:99;;2413:21;;-1:-1:-1;;;2413:21:40;;;;;;;;;;;2346:99;2455:29;;2487:17;:8;2496:6;2487:8;;:17;:::i;:::-;2455:49;;-1:-1:-1;2455:49:40;-1:-1:-1;2514:44:40;2561:59;;;;2455:49;2561:59;:::i;:::-;2932:13;;;;:22;:25;;;:13;;-1:-1:-1;2932:30:40;2928:159;;3007:15;2978:26;:44;2928:159;;;3060:16;;-1:-1:-1;;;3060:16:40;;;;;;;;;;;2928:159;1807:1286;;;;;1466:1627;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482\",\"dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3","urls":["bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482","dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x6080604052600060025534801561001557600080fd5b50604051610e75380380610e7583398101604081905261003491610081565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100b4565b80516001600160a01b038116811461007c57600080fd5b919050565b6000806040838503121561009457600080fd5b61009d83610065565b91506100ab60208401610065565b90509250929050565b610db2806100c36000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5c565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b8252806103c0850186811115610a1357600080fd5b855b81811015610a3657610a278882610949565b83526020909201918401610a15565b50919695505050505050565b6000818303610740811215610a5657600080fd5b610a5e610324565b9150610a698361093a565b8252610a776020840161093a565b602083015261070080603f1983011215610a9057600080fd5b610a98610346565b9150610aa78560408601610979565b8252610ab78561020086016109c9565b6020830152610aca856105c08601610949565b6040830152610add856106008601610949565b6060830152610af0856106408601610949565b6080830152610b03856106808601610949565b60a0830152610b16856106c08601610949565b60c0830152610b2785828601610949565b60e083015250604082015292915050565b600082601f830112610b4957600080fd5b60405160a081018181106001600160401b0382111715610b6b57610b6b6102c3565b6040528060a0840185811115610b8057600080fd5b845b81811015610b9a578035835260209283019201610b82565b509195945050505050565b60006109608284031215610bb857600080fd5b610bc0610369565b9050610bcc83836108e9565b8152610bdc836101008401610a42565b6020820152610bee6108408301610725565b6040820152610c01836108608401610b38565b6060820152610c136109008301610725565b6080820152610c2561092083016106ca565b60a08201526109408201356001600160401b03811115610c4457600080fd5b610c50848285016103ae565b60c08301525092915050565b600060208284031215610c6e57600080fd5b81356001600160401b0380821115610c8557600080fd5b908301906103c08286031215610c9a57600080fd5b610ca261038b565b610cac86846106d5565b815260408301356020820152606083013582811115610cca57600080fd5b610cd6878286016103ae565b604083015250610ce86080840161070e565b6060820152610cf960a08401610725565b608082015260c083013560a0820152610d158660e085016106d5565b60c08201526101208084013560e0830152610140610d3588828701610739565b610100840152610d49886101e087016107d8565b828401526103a0850135915083821115610d6257600080fd5b610d6e88838701610ba5565b90830152509594505050505056fea26469706673582212208b535e357ce4f8c0132947b6a12f4b0edf4a0e70feb26f63ca3dac6e79f1b1c864736f6c63430008150033","sourceMap":"186:2909:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2909;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2909:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5c565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b8252806103c0850186811115610a1357600080fd5b855b81811015610a3657610a278882610949565b83526020909201918401610a15565b50919695505050505050565b6000818303610740811215610a5657600080fd5b610a5e610324565b9150610a698361093a565b8252610a776020840161093a565b602083015261070080603f1983011215610a9057600080fd5b610a98610346565b9150610aa78560408601610979565b8252610ab78561020086016109c9565b6020830152610aca856105c08601610949565b6040830152610add856106008601610949565b6060830152610af0856106408601610949565b6080830152610b03856106808601610949565b60a0830152610b16856106c08601610949565b60c0830152610b2785828601610949565b60e083015250604082015292915050565b600082601f830112610b4957600080fd5b60405160a081018181106001600160401b0382111715610b6b57610b6b6102c3565b6040528060a0840185811115610b8057600080fd5b845b81811015610b9a578035835260209283019201610b82565b509195945050505050565b60006109608284031215610bb857600080fd5b610bc0610369565b9050610bcc83836108e9565b8152610bdc836101008401610a42565b6020820152610bee6108408301610725565b6040820152610c01836108608401610b38565b6060820152610c136109008301610725565b6080820152610c2561092083016106ca565b60a08201526109408201356001600160401b03811115610c4457600080fd5b610c50848285016103ae565b60c08301525092915050565b600060208284031215610c6e57600080fd5b81356001600160401b0380821115610c8557600080fd5b908301906103c08286031215610c9a57600080fd5b610ca261038b565b610cac86846106d5565b815260408301356020820152606083013582811115610cca57600080fd5b610cd6878286016103ae565b604083015250610ce86080840161070e565b6060820152610cf960a08401610725565b608082015260c083013560a0820152610d158660e085016106d5565b60c08201526101208084013560e0830152610140610d3588828701610739565b610100840152610d49886101e087016107d8565b828401526103a0850135915083821115610d6257600080fd5b610d6e88838701610ba5565b90830152509594505050505056fea26469706673582212208b535e357ce4f8c0132947b6a12f4b0edf4a0e70feb26f63ca3dac6e79f1b1c864736f6c63430008150033","sourceMap":"186:2909:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1627;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1627;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:299;;;;;;;;2083:15;2036:299;;;;2112:30;2036:299;;;;2156:18;2036:299;;;;;;;2188:15;2036:299;;;;2217:11;2036:299;;;;2242:26;2036:299;;;;2282:8;;2036:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:299:40;;;-1:-1:-1;;;;;;2036:299:40;;;;;;;;;;;2351:17;;:39;;-1:-1:-1;;;2351:39:40;;1988:347;;-1:-1:-1;2351:17:40;;:33;;:39;;1988:347;;2351:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2346:99;;2413:21;;-1:-1:-1;;;2413:21:40;;;;;;;;;;;2346:99;2455:29;;2487:17;:8;2496:6;2487:8;;:17;:::i;:::-;2455:49;;-1:-1:-1;2455:49:40;-1:-1:-1;2514:44:40;2561:59;;;;2455:49;2561:59;:::i;:::-;2932:13;;;;:22;:25;;;:13;;-1:-1:-1;2932:30:40;2928:159;;3007:15;2978:26;:44;2928:159;;;3060:16;;-1:-1:-1;;;3060:16:40;;;;;;;;;;;2928:159;1807:1286;;;;;1466:1627;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11985:22;;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0x8adc9f8c4128e93d47ce5bb002a60cb355dbe647db4b9433563f49d0d8feee05\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb9bef60086f432b69365430543897bac14f654cb5af5b6d359f26981f41f52d\",\"dweb:/ipfs/QmTtb2mPJPxXFbTtTxZ2ELrqPVhS85XYmnexv8aNBP3sBx\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482\",\"dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0x8adc9f8c4128e93d47ce5bb002a60cb355dbe647db4b9433563f49d0d8feee05","urls":["bzz-raw://fb9bef60086f432b69365430543897bac14f654cb5af5b6d359f26981f41f52d","dweb:/ipfs/QmTtb2mPJPxXFbTtTxZ2ELrqPVhS85XYmnexv8aNBP3sBx"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3","urls":["bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482","dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file diff --git a/example/app/src/main.rs b/example/app/src/main.rs index 217ee0ac..76d773aa 100644 --- a/example/app/src/main.rs +++ b/example/app/src/main.rs @@ -11,16 +11,12 @@ use mina_bridge_core::{ get_bridged_chain_tip_state_hash, update_bridge_chain, validate_account, AccountVerificationData, }, - utils::{ - contract::{get_account_validation_contract_addr, get_bridge_contract_addr}, - env::EnvironmentVariables, - wallet, wallet_alloy, - }, + utils::{env::EnvironmentVariables, wallet, wallet_alloy}, }; use std::{process, str::FromStr, time::SystemTime}; const MINA_ZKAPP_ADDRESS: &str = "B62qmpq1JBejZYDQrZwASPRM5oLXW346WoXgbApVf5HJZXMWFPWFPuA"; -const SUDOKU_VALIDITY_DEVNET_ADDRESS: &str = "0xb19b36b1456E65E3A6D514D3F715f204BD59f431"; +const SUDOKU_VALIDITY_DEVNET_ADDRESS: &str = "0x8ce361602B935680E8DeC218b820ff5056BeB7af"; const SUDOKU_VALIDITY_HOLESKY_ADDRESS: &str = "0x0091D1d9Bd92FFcfEb38383079AE849639224e3D"; sol!( @@ -52,6 +48,8 @@ async fn main() { let EnvironmentVariables { rpc_url, chain, + state_settlement_addr, + account_validation_addr, batcher_addr, batcher_eth_addr, eth_rpc_url, @@ -63,6 +61,15 @@ async fn main() { process::exit(1); }); + let state_settlement_addr = state_settlement_addr.unwrap_or_else(|| { + error!("Error getting State settlement contract address"); + process::exit(1); + }); + let account_validation_addr = account_validation_addr.unwrap_or_else(|| { + error!("Error getting Account validation contract address"); + process::exit(1); + }); + let wallet_alloy = wallet_alloy::get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) .unwrap_or_else(|err| { @@ -83,9 +90,6 @@ async fn main() { Command::DeployContract => { // TODO(xqft): we might as well use the Chain type from Alloy, it isn't right to add // aligned-sdk as a dependency only for this type. - let state_settlement_addr = get_bridge_contract_addr(&chain).unwrap(); - - let account_validation_addr = get_account_validation_contract_addr(&chain).unwrap(); let contract = SudokuValidity::deploy( &provider, @@ -107,7 +111,7 @@ async fn main() { Command::ValidateSolution => { // We could check if the specific block containing the tx is already verified, before // updating the bridge's chain. - // let is_state_verified = is_state_verified(&state_hash, &chain, ð_rpc_url) + // let is_state_verified = is_state_verified(&state_hash, &state_settlement_addr, ð_rpc_url) // .await // .unwrap_or_else(|err| { // error!("{}", err); @@ -127,12 +131,14 @@ async fn main() { let state_verification_result = update_bridge_chain( &rpc_url, &chain, + &state_settlement_addr, &batcher_addr, &batcher_eth_addr, ð_rpc_url, &proof_generator_addr, wallet.clone(), &batcher_eth_addr, + true, false, ) .await; @@ -149,12 +155,15 @@ async fn main() { } // } - let tip_state_hash = get_bridged_chain_tip_state_hash(&chain, ð_rpc_url) - .await - .unwrap_or_else(|err| { - error!("{}", err); - process::exit(1); - }); + let tip_state_hash = + get_bridged_chain_tip_state_hash(&state_settlement_addr, ð_rpc_url) + .await + .unwrap_or_else(|err| { + error!("{}", err); + process::exit(1); + }); + + info!("tip state hash: {}", &tip_state_hash); let AccountVerificationData { proof_commitment, @@ -169,6 +178,7 @@ async fn main() { &tip_state_hash, &rpc_url, &chain, + &account_validation_addr, &batcher_addr, &batcher_eth_addr, ð_rpc_url, From f3bb7360d3d7cd58f6b5c950b0190068e5d14a39 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:07:23 -0300 Subject: [PATCH 42/46] Parameterize Sudoku Holesky address (#355) * [WIP] Start adding devnet flag * Add devnet flag * Point SDK to Mina branch * Lock SDK branch * Fix settlement contract * Parameterize state and account contract addresses * Update example address and unwrap bridge addresses * Update Aligned * Reuse BATCHER_ETH_ADDR * Point SDK to VK branch * Replace aligned SM env var name with used in SDK * Fix clippy * Remove zkapp state logging * Parameterize Sudoku Holesky address --- example/app/src/main.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/example/app/src/main.rs b/example/app/src/main.rs index 76d773aa..ac71e301 100644 --- a/example/app/src/main.rs +++ b/example/app/src/main.rs @@ -15,9 +15,8 @@ use mina_bridge_core::{ }; use std::{process, str::FromStr, time::SystemTime}; -const MINA_ZKAPP_ADDRESS: &str = "B62qmpq1JBejZYDQrZwASPRM5oLXW346WoXgbApVf5HJZXMWFPWFPuA"; +const MINA_ZKAPP_ADDRESS: &str = "B62qmKCv2HaPwVRHBKrDFGUpjSh3PPY9VqSa6ZweGAmj9hBQL4pfewn"; const SUDOKU_VALIDITY_DEVNET_ADDRESS: &str = "0x8ce361602B935680E8DeC218b820ff5056BeB7af"; -const SUDOKU_VALIDITY_HOLESKY_ADDRESS: &str = "0x0091D1d9Bd92FFcfEb38383079AE849639224e3D"; sol!( #[allow(clippy::too_many_arguments)] @@ -70,6 +69,15 @@ async fn main() { process::exit(1); }); + let sudoku_address = match chain { + Chain::Devnet => SUDOKU_VALIDITY_DEVNET_ADDRESS.to_string(), + Chain::Holesky => std::env::var("SUDOKU_VALIDITY_HOLESKY_ADDRESS").unwrap_or_else(|_| { + error!("Error getting Sudoku vality contract address"); + process::exit(1); + }), + _ => todo!() + }; + let wallet_alloy = wallet_alloy::get_wallet(&chain, keystore_path.as_deref(), private_key.as_deref()) .unwrap_or_else(|err| { @@ -194,13 +202,8 @@ async fn main() { }); debug!("Creating contract instance"); - let sudoku_address = match chain { - Chain::Devnet => SUDOKU_VALIDITY_DEVNET_ADDRESS, - Chain::Holesky => SUDOKU_VALIDITY_HOLESKY_ADDRESS, - _ => todo!(), - }; let contract = - SudokuValidity::new(Address::from_str(sudoku_address).unwrap(), provider); + SudokuValidity::new(Address::from_str(&sudoku_address).unwrap(), provider); let call = contract.validateSolution( proof_commitment.into(), From 16bc6df885e71265758b6bf8644f21dcaf62fd63 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 3 Oct 2024 13:40:22 -0300 Subject: [PATCH 43/46] Usage and Setup sections (#348) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add details on usage section * Start adding Ethereum testnet section * Complete setup section * Fix Mainnet image link * Fix Aligned fork branch * Add staking step in Testnet setup * Complete Aligned Testnet setup * Update README.md * Revert "Update README.md" This reverts commit 2f68a5d9a8a472dd9e6a74399d202b9b785fd680. * Update submit state command * Fix Testnet setup ordered list * Update batcher deployment result paragraph --------- Co-authored-by: EstĂ©fano Bargas --- README.md | 424 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 377 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index b05d6e09..efd75b0a 100644 --- a/README.md +++ b/README.md @@ -12,28 +12,353 @@ This project introduces the verification of [Mina Protocol](https://minaprotocol The bridge leverages [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State and Mina Proofs of Account in Ethereum. - ## Usage +### Setup + +### Mina node + +- If you want the Bridge to use Mina Devnet then use a node that runs a Devnet instance corresponding to the commit `599a76d` [of the Mina repo](https://github.com/MinaProtocol/mina/tree/599a76dd47be99183d2102d9eb93eda679dd46ec) or a newer one (e.g.: [this Docker image](https://console.cloud.google.com/gcr/images/o1labs-192920/GLOBAL/mina-daemon:3.0.1-compatible-599a76d-bullseye-devnet/details)). See [how to connect to Mina Devnet](https://docs.minaprotocol.com/node-operators/block-producer-node/connecting-to-devnet#docker) if you want to run an instance yourself. +- If you want the Bridge to use Mina Mainnet use a node that runs a Mainnet instance corresponding to the commit `65c84ad` [of the Mina repo](https://github.com/MinaProtocol/mina/tree/65c84adacd55272160d9f77c31063d94a942afb6) or a newer one (e.g.: [this Docker image](http://gcr.io/o1labs-192920/mina-daemon:3.0.1-beta1-sai-query-snarked-ledger-c439ce5-bullseye-mainnet)). See [how to connect to Mina Mainnet](https://docs.minaprotocol.com/node-operators/block-producer-node/connecting-to-the-network#docker) if you want to run an instance yourself. + +You can bridge Mina accounts to Ethereum Devnet or Ethereum Testnet. The following subsections describe how to config the Bridge for each network. + +#### Ethereum Devnet + 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/staging/docs/3_guides/6_setup_aligned.md#booting-devnet-with-default-configs) -1. Setup the `.env` file of the bridge. A template is available in `.env.template`. +1. Setup the `.env` file of the Bridge. A template is available in `.env.template`. + 1. Set `ETH_CHAIN` to `devnet`. + 1. Set `MINA_RPC_URL` to the URL of the Mina node GraphQL API (See [Mina node section](#mina-node)). -1. In the root folder, deploy the bridge's contract with: +#### Ethereum Testnet + +Because the Bridge uses for now a forked version of Aligned, you may need to setup a local instance of Aligned to verify Mina proofs. + +##### Aligned Testnet setup + +You will need two Ethereum accounts: One to fund the Aligned operator (`operator_account_address`) and another to fund the Aligned batcher (`batcher_account_address`). + +1. Clone the [forked Aligned repo](https://github.com/lambdaclass/aligned_layer). Checkout to the `mina` branch. +1. Run: ```sh - make deploy_contract + make deps go_deps + ``` + +1. Copy the EigenLayer HoleĆĄky deployment config file into Aligned: + + ```sh + cp contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/configs/holesky/Holesky_current_deployment.config.json contracts/script/output/holesky + ``` + +1. Set `contracts/script/deploy/config/holesky/aligned.holesky.config.json` to: + + ```json + { + "chainInfo": { + "chainId": 17000 + }, + "permissions": { + "owner": "", + "aggregator": "", + "upgrader": "", + "churner": "", + "ejector": "", + "deployer": "", + "initalPausedStatus": 0 + }, + "minimumStakes": [ + 1 + ], + "strategyWeights": [ + [ + { + "0_strategy": "0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9", + "1_multiplier": 1e+18 + } + ] + ], + "operatorSetParams": [ + { + "0_maxOperatorCount": 200, + "1_kickBIPsOfOperatorStake": 11000, + "2_kickBIPsOfTotalStake": 50 + } + ], + "uri": "" + } + ``` + +1. Setup the `contracts/scripts/.env` file. A template is available in `contracts/scripts/.env.example.holesky`. Set `PRIVATE_KEY` to the private key of the account you chose to fund the operator (the one with address `operator_account_address`). +1. Deploy Aligned contracts: + + ```sh + make deploy_aligned_contracts + ``` + + This will create `contracts/script/output/holesky/alignedlayer_deployment_output.json`. + +1. Create 3 EigenLayer keystores: + 1. Aggregator and operator ECDSA: + + ```sh + eigenlayer operator keys import --key-type ecdsa mina_bridge + ``` + + 1. Aggregator and operator BLS: + + ```sh + eigenlayer operator keys import --key-type bls mina_bridge + ``` + + 1. Batcher ECDSA: + + ```sh + eigenlayer operator keys import --key-type ecdsa mina_bridge.batcher + ``` + +1. Create `config-files/holesky/config.yaml` and set it to: + + ```yaml + # Common variables for all the services + # 'production' only prints info and above. 'development' also prints debug + environment: "production" + aligned_layer_deployment_config_file_path: "./contracts/script/output/holesky/alignedlayer_deployment_output.json" + eigen_layer_deployment_config_file_path: "./contracts/script/output/holesky/eigenlayer_deployment_output.json" + eth_rpc_url: "" + eth_rpc_url_fallback: "" + eth_ws_url: "" + eth_ws_url_fallback: "" + eigen_metrics_ip_port_address: "localhost:9090" + + ## ECDSA Configurations + ecdsa: + private_key_store_path: "/.eigenlayer/operator_keys/mina_bridge.ecdsa.key.json" + private_key_store_password: + + ## BLS Configurations + bls: + private_key_store_path: "/.eigenlayer/operator_keys/mina_bridge.bls.key.json" + private_key_store_password: + + ## Batcher configurations + batcher: + block_interval: 3 + batch_size_interval: 10 + max_proof_size: 67108864 # 64 MiB + max_batch_size: 268435456 # 256 MiB + eth_ws_reconnects: 99999999999999 + pre_verification_is_enabled: true + + ## Aggregator Configurations + aggregator: + server_ip_port_address: localhost:8090 + bls_public_key_compendium_address: 0x322813Fd9A801c5507c9de605d63CEA4f2CE6c44 + avs_service_manager_address: 0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690 + enable_metrics: true + metrics_ip_port_address: localhost:9091 + + ## Operator Configurations + operator: + aggregator_rpc_server_ip_port_address: localhost:8090 + address: + earnings_receiver_address: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + delegation_approver_address: "0x0000000000000000000000000000000000000000" + staker_opt_out_window_blocks: 0 + metadata_url: "https://yetanotherco.github.io/operator_metadata/metadata.json" + enable_metrics: true + metrics_ip_port_address: localhost:9092 + max_batch_size: 268435456 # 256 MiB + # Operators variables needed for register it in EigenLayer + el_delegation_manager_address: "0xA44151489861Fe9e3055d95adC98FbD462B948e7" + private_key_store_path: /.eigenlayer/operator_keys/mina_bridge.ecdsa.key.json + bls_private_key_store_path: /.eigenlayer/operator_keys/mina_bridge.bls.key.json + signer_type: local_keystore + chain_id: 17000 + ``` + +1. Create `config-files/holesky/config-aggregator.yaml` and set it to: + + ```yaml + # Common variables for all the services + # 'production' only prints info and above. 'development' also prints debug + environment: "production" + aligned_layer_deployment_config_file_path: "./contracts/script/output/holesky/alignedlayer_deployment_output.json" + eigen_layer_deployment_config_file_path: "./contracts/script/output/holesky/eigenlayer_deployment_output.json" + eth_rpc_url: "" + eth_rpc_url_fallback: "" + eth_ws_url: "" + eth_ws_url_fallback: "" + eigen_metrics_ip_port_address: "localhost:9090" + + ## ECDSA Configurations + ecdsa: + private_key_store_path: "/.eigenlayer/operator_keys/mina_bridge.ecdsa.key.json" + private_key_store_password: + + ## BLS Configurations + bls: + private_key_store_path: "/.eigenlayer/operator_keys/mina_bridge.bls.key.json" + private_key_store_password: + + ## Aggregator Configurations + aggregator: + server_ip_port_address: localhost:8090 + bls_public_key_compendium_address: 0x322813Fd9A801c5507c9de605d63CEA4f2CE6c44 + avs_service_manager_address: 0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690 + enable_metrics: true + metrics_ip_port_address: localhost:9091 + ``` + +1. Create `config-files/holesky/config-batcher.yaml` and set it to: + + ```yaml + environment: "production" + aligned_layer_deployment_config_file_path: "./contracts/script/output/holesky/alignedlayer_deployment_output.json" + eigen_layer_deployment_config_file_path: "./contracts/script/output/holesky/eigenlayer_deployment_output.json" + eth_rpc_url: "" + eth_rpc_url_fallback: "" + eth_ws_url: "" + eth_ws_url_fallback: "" + eigen_metrics_ip_port_address: "localhost:9090" + + ## ECDSA Configurations + ecdsa: + private_key_store_path: "/.eigenlayer/operator_keys/mina_bridge.batcher.ecdsa.key.json" + private_key_store_password: + + ## Batcher configurations + batcher: + block_interval: 3 + batch_size_interval: 10 + max_proof_size: 67108864 # 64 MiB + max_batch_size: 268435456 # 256 MiB + eth_ws_reconnects: 99999999999999 + pre_verification_is_enabled: true + non_paying: + address: + replacement_private_key: + ``` + +1. Start the aggregator: + + ```sh + make aggregator_start AGG_CONFIG_FILE=config-files/holesky/config-aggregator.yaml + ``` + +1. Open a new terminal and register the operator: + + ```sh + eigenlayer operator register config-files/holesky/config.yaml + ``` + +1. Whitelist the registered operator: + + ```sh + make operator_whitelist OPERATOR_ADDRESS= + ``` + +1. Deposit Strategy tokens for the operator. Follow [this section from the AlignedLayer docs](https://docs.alignedlayer.com/operators/0_running_an_operator#step-4-deposit-strategy-tokens). + +1. Start operator: + + ```sh + make operator_start CONFIG_FILE=config-files/holesky/config.yaml + ``` + +1. Set `contracts/script/deploy/config/holesky/batcher-payment-service.holesky.config.json` to: + + ```json + { + "address": { + "batcherWallet": "", + "alignedLayerServiceManager": "" + }, + "amounts": { + "gasForAggregator": "300000", + "gasPerProof": "21000" + }, + "permissions": { + "owner": "" + }, + "eip712": { + "noncedVerificationDataTypeHash": "41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3" + } + } + ``` + +1. Deploy Batcher payment contract: + + ```sh + make deploy_batcher_payment_service + ``` + + The file `contracts/script/output/holesky/alignedlayer_deployment_output.json` will have two new fields: `addresses.batcherPaymentService` and `addresses.batcherPaymentServiceImplementation`. + +1. Pay the batcher: + + ```sh + cast send --rpc-url --private-key --value 1ether + ``` + +1. Deposit to batcher in the Aligned Service Manager Contract: + + ```sh + cast send --rpc-url --private-key --value 1ether "depositToBatcher(address)" + ``` + +1. Setup local storage for the batcher: + + ```sh + make run_storage ``` -1. Submit a state to verify: +1. Start the batcher: ```sh - make submit-state + cargo run --manifest-path ./batcher/aligned-batcher/Cargo.toml --release -- --config ./config-files/holesky/config-batcher.yaml --env-file ./batcher/aligned-batcher/.env.dev ``` -1. Submit an account to verify: + +#### Bridge environment setup + +In the Mina Bridge repo, setup the `.env` file. A template is available in `.env.template`. + +1. Set `ETH_CHAIN` to `holesky`. +1. Set `MINA_RPC_URL` to the URL of the Mina node GraphQL API (See [Mina node section](#mina-node)). +1. Set the rest of the env vars to: + + ```sh + BATCHER_ADDR="ws://localhost:8080" + BATCHER_ETH_ADDR= + ETH_RPC_URL= + PROOF_GENERATOR_ADDR=0x66f9664f97F2b50F62D13eA064982f936dE76657 + PRIVATE_KEY= + ALIGNED_SM_HOLESKY_ETH_ADDR= + ``` + +### Bridge a Mina account + +1. In the root folder, deploy the Bridge's contracts with: ```sh - make submit-account PUBLIC_KEY= + make deploy_contract ``` + + In the `.env` file, set `STATE_SETTLEMENT_ETH_ADDR` and `ACCOUNT_VALIDATION_ETH_ADDR` to the corresponding deployed contract addresses. + +1. Submit a Mina state proof to verify (**NOTE:** Because of the Aligned minimum batch size, you may need to submit two proofs to make Aligned Devnet verify them): + + - Run `make submit_devnet_state` if you are using Mina Devnet or `make submit_mainnet_state` if you are using Mina Mainnet. + +1. Submit an account to verify (**NOTE:** Because of the Aligned minimum batch size, you may need to submit two proofs to make Aligned Devnet verify them): + + ```sh + make submit_account PUBLIC_KEY= STATE_HASH= + ``` + + Where: + - `PUBLIC_KEY` is the public key of the Mina account you want to verify + - `STATE_HASH` is the hash of a Mina state that was verified in Ethereum ## Example use case @@ -43,16 +368,19 @@ For running the example you need to: 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/staging/docs/3_guides/6_setup_aligned.md#booting-devnet-with-default-configs) 1. Deploy the bridge smart contracts by executing + ```sh make deploy_contract ``` 1. Deploy the SudokuValidity smart contract by executing + ```sh make deploy_example_contract ``` 1. Install `zkapp-cli`: + ```sh npm install -g zkapp-cli ``` @@ -62,9 +390,11 @@ For running the example you need to: 1. After deployment, set the `zkappAddress` field on `example/mina_zkapp/config.json` 1. Run the example by executing from the root folder: + ```sh make execute_example ``` + this will upload a new Sudoku, submit a solution to it and run the example Rust app that will bridge the new state of the zkApp and update the SudokuValidty smart contract on Ethereum. The zkApp will wait until both Mina transactions are included in a block, so this may take a while. Below is a diagram explaining the execution flow: @@ -72,56 +402,57 @@ For running the example you need to: ![Example diagram](/img/example_diagram.png) ## Table of Contents + - [About](#about) - [Usage](#usage) - [Example use case](#example-use-case) - [Table of Contents](#table-of-contents) - [Specification](#specification) - * [core](#core) - + [mina](#mina) - + [aligned](#aligned) - + [eth](#eth) - * [Mina Proof of State](#mina-proof-of-state) - + [Definition](#definition) - + [Serialization](#serialization) - + [Aligned’s Mina Proof of State verifier](#aligneds-mina-proof-of-state-verifier) - + [Consensus checking](#consensus-checking) - + [Transition frontier](#transition-frontier) - + [Pickles verification](#pickles-verification) - * [Mina Proof of Account](#mina-proof-of-account) - + [Definition](#definition-1) - + [Serialization](#serialization-1) - + [Aligned’s Proof of Account verification](#aligneds-proof-of-account-verifier) - * [Smart contract](#smart-contract) - + [Gas cost](#gas-cost) - * [Mina Account Validation contract](#mina-account-validation-contract) - + [Gas cost](#gas-cost-1) + - [core](#core) + - [mina](#mina) + - [aligned](#aligned) + - [eth](#eth) + - [Mina Proof of State](#mina-proof-of-state) + - [Definition](#definition) + - [Serialization](#serialization) + - [Aligned’s Mina Proof of State verifier](#aligneds-mina-proof-of-state-verifier) + - [Consensus checking](#consensus-checking) + - [Transition frontier](#transition-frontier) + - [Pickles verification](#pickles-verification) + - [Mina Proof of Account](#mina-proof-of-account) + - [Definition](#definition-1) + - [Serialization](#serialization-1) + - [Aligned’s Proof of Account verification](#aligneds-proof-of-account-verifier) + - [Smart contract](#smart-contract) + - [Gas cost](#gas-cost) + - [Mina Account Validation contract](#mina-account-validation-contract) + - [Gas cost](#gas-cost-1) - [Kimchi proving system](#kimchi-proving-system) - * [Proof Construction & Verification](#proof-construction---verification) - + [Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs``](#secuence-diagram-linked-to---proof-systems-kimchi-src-verifierrs--) - * [Pickles - Mina’s inductive zk-SNARK composition system](#pickles---mina-s-inductive-zk-snark-composition-system) - + [Accumulator](#accumulator) - + [Analysis of the Induction (recursion) method applied in Pickles](#analysis-of-the-induction--recursion--method-applied-in-pickles) - + [Pickles Technical Diagrams](#pickles-technical-diagrams) - * [Consensus](#consensus) - + [Chain selection rules](#chain-selection-rules) + - [Proof Construction & Verification](#proof-construction---verification) + - [Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs``](#secuence-diagram-linked-to---proof-systems-kimchi-src-verifierrs--) + - [Pickles - Mina’s inductive zk-SNARK composition system](#pickles---mina-s-inductive-zk-snark-composition-system) + - [Accumulator](#accumulator) + - [Analysis of the Induction (recursion) method applied in Pickles](#analysis-of-the-induction--recursion--method-applied-in-pickles) + - [Pickles Technical Diagrams](#pickles-technical-diagrams) + - [Consensus](#consensus) + - [Chain selection rules](#chain-selection-rules) - [Short-range fork rule](#short-range-fork-rule) - [Long-range fork rule](#long-range-fork-rule) - + [Decentralized checkpointing](#decentralized-checkpointing) - + [Short-range fork check](#short-range-fork-check) - + [Sliding window density](#sliding-window-density) + - [Decentralized checkpointing](#decentralized-checkpointing) + - [Short-range fork check](#short-range-fork-check) + - [Sliding window density](#sliding-window-density) - [Nomenclature](#nomenclature) - [Window structure](#window-structure) - [Minimum window density](#minimum-window-density) - [Ring-shift](#ring-shift) - [Projected window](#projected-window) - * [Genesis window](#genesis-window) - * [Relative minimum window density](#relative-minimum-window-density) - * [Protocol](#protocol) - + [Initialize consensus](#initialize-consensus) - + [Select chain](#select-chain) - + [Maintaining the k-th predecessor epoch ledger](#maintaining-the-k-th-predecessor-epoch-ledger) - + [Getting the tip](#getting-the-tip) + - [Genesis window](#genesis-window) + - [Relative minimum window density](#relative-minimum-window-density) + - [Protocol](#protocol) + - [Initialize consensus](#initialize-consensus) + - [Select chain](#select-chain) + - [Maintaining the k-th predecessor epoch ledger](#maintaining-the-k-th-predecessor-epoch-ledger) + - [Getting the tip](#getting-the-tip) # Specification @@ -221,7 +552,6 @@ The first step of the verifier is to check that the public inputs correspond to - that the chain ledger hashes are the hashes of the ledgers (stored in the states) in the proof - that the states form a chain (by hashing together the **state hash** of a state `n` and the **state body hash** of state `n+1`, we retrieve the **state hash** of the state `n+1`, so the states form a chain if we can hash from the root all the way until arriving to the tip state hash. - ### Consensus checking The second step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate tip state and the bridge tip state. @@ -251,7 +581,7 @@ After validating the candidate tip state, because in a previous step we verified After a Mina Proof of State was verified, it’s possible to verify a Proof of Account of some Mina account in the verified state. -Verifying that some account and its state is valid in a bridged Mina state is one of the basic components of a Mina to Ethereum bridge, as it not only allows to validate account data but also the state of a [zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp) tracked by this account (see [zkApp Account](https://docs.minaprotocol.com/glossary#zkapp-account)), which leverages zk-SNARKs to verify (optionally private) off-chain computation on the Mina blockchain. +Verifying that some account and its state is valid in a bridged Mina state is one of the basic components of a Mina to Ethereum bridge, as it not only allows to validate account data but also the state of a [zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp) tracked by this account (see [zkApp Account](https://docs.minaprotocol.com/glossary#zkapp-account)), which leverages zk-SNARKs to verify (optionally private) off-chain computation on the Mina blockchain. Account verification (paired with state verification) essentially allows to verify off-chain computation on Ethereum, after it has been validated by Mina. From 2c601a0f5a091c39567abbe0aea626a6fc54b233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 3 Oct 2024 14:05:07 -0300 Subject: [PATCH 44/46] Usage and setup changes (#354) * Add details on usage section * Start adding Ethereum testnet section * Complete setup section * Add step to deploy contracts * Fix Mainnet image link * Fix Aligned fork branch * Add staking step in Testnet setup * Complete Aligned Testnet setup * Update README.md * Revert "Update README.md" This reverts commit 2f68a5d9a8a472dd9e6a74399d202b9b785fd680. * Update README.md * Update submit state command * Fix Testnet setup ordered list * Update batcher deployment result paragraph --------- Co-authored-by: gabrielbosio --- README.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 138 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index efd75b0a..b9562265 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ You can bridge Mina accounts to Ethereum Devnet or Ethereum Testnet. The followi #### Ethereum Devnet -1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/staging/docs/3_guides/6_setup_aligned.md#booting-devnet-with-default-configs) +1. [Setup Aligned (Devnet) infrastructure locally](https://docs.alignedlayer.com/guides/6_setup_aligned) 1. Setup the `.env` file of the Bridge. A template is available in `.env.template`. 1. Set `ETH_CHAIN` to `devnet`. 1. Set `MINA_RPC_URL` to the URL of the Mina node GraphQL API (See [Mina node section](#mina-node)). @@ -34,7 +34,7 @@ You can bridge Mina accounts to Ethereum Devnet or Ethereum Testnet. The followi Because the Bridge uses for now a forked version of Aligned, you may need to setup a local instance of Aligned to verify Mina proofs. -##### Aligned Testnet setup +##### Setup Aligned Testnet infrastructure locally You will need two Ethereum accounts: One to fund the Aligned operator (`operator_account_address`) and another to fund the Aligned batcher (`batcher_account_address`). @@ -90,13 +90,28 @@ You will need two Ethereum accounts: One to fund the Aligned operator (`operator ``` 1. Setup the `contracts/scripts/.env` file. A template is available in `contracts/scripts/.env.example.holesky`. Set `PRIVATE_KEY` to the private key of the account you chose to fund the operator (the one with address `operator_account_address`). -1. Deploy Aligned contracts: - - ```sh - make deploy_aligned_contracts - ``` - - This will create `contracts/script/output/holesky/alignedlayer_deployment_output.json`. +1. Deploy the contracts with `make deploy_aligned_contracts`. + + `contracts/script/output/holesky/alignedlayer_deployment_output.json` should have been updated or created if it didn't exist before. Set the `permissions` field on that file: + + ```json + { + "addresses": { + // ... + }, + "chainInfo": { + // ... + }, + "permissions": { + "alignedLayerAggregator": "", + "alignedLayerChurner": "", + "alignedLayerEjector": "", + "alignedLayerOwner": "", + "alignedLayerUpgrader": "", + "pauserRegistry": "0x85Ef7299F8311B25642679edBF02B62FA2212F06" + } + } + ``` 1. Create 3 EigenLayer keystores: 1. Aggregator and operator ECDSA: @@ -338,6 +353,120 @@ In the Mina Bridge repo, setup the `.env` file. A template is available in `.env ### Bridge a Mina account +1. In the root folder, deploy the Bridge's contracts with: + + ```sh + make deploy_contract + ``` + + In the `.env` file, set `STATE_SETTLEMENT_ETH_ADDR` and `ACCOUNT_VALIDATION_ETH_ADDR` to the corresponding deployed contract addresses. + +1. Submit a Mina state proof to verify (**NOTE:** Because of the Aligned minimum batch size, you may need to submit two proofs to make Aligned Devnet verify them): + + - Run `make submit_devnet_state` if you are using Mina Devnet or `make submit_mainnet_state` if you are using Mina Mainnet. + +1. Submit an account to verify (**NOTE:** Because of the Aligned minimum batch size, you may need to submit two proofs to make Aligned Devnet verify them): + + ```sh + make submit_account PUBLIC_KEY= STATE_HASH= + ``` + + Where: + - `PUBLIC_KEY` is the public key of the Mina account you want to verify + - `STATE_HASH` is the hash of a Mina state that was verified in Ethereum + +1. Open a new terminal and register the operator: + + ```sh + eigenlayer operator register config-files/holesky/config.yaml + ``` + +1. Whitelist the registered operator: + + ```sh + make operator_whitelist OPERATOR_ADDRESS= + ``` + +1. Deposit Strategy tokens for the operator. Follow [this section from the AlignedLayer docs](https://docs.alignedlayer.com/operators/0_running_an_operator#step-4-deposit-strategy-tokens). + +1. Start operator: + + ```sh + make operator_start CONFIG_FILE=config-files/holesky/config.yaml + ``` + +1. Set `contracts/script/deploy/config/holesky/batcher-payment-service.holesky.config.json` to: + + ```json + { + "address": { + "batcherWallet": "", + "alignedLayerServiceManager": "" + }, + "amounts": { + "gasForAggregator": "300000", + "gasPerProof": "21000" + }, + "permissions": { + "owner": "" + }, + "eip712": { + "noncedVerificationDataTypeHash": "41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3" + } + } + ``` + +1. Deploy Batcher payment contract: + + ```sh + make deploy_batcher_payment_service + ``` + + The file `contracts/script/output/holesky/alignedlayer_deployment_output.json` will have two new fields: `addresses.batcherPaymentService` and `addresses.batcherPaymentServiceImplementation`. + +1. Pay the batcher: + + ```sh + cast send --rpc-url --private-key --value 1ether + ``` + +1. Deposit to batcher in the Aligned Service Manager Contract: + + ```sh + cast send --rpc-url --private-key --value 1ether "depositToBatcher(address)" + ``` + +1. Setup local storage for the batcher: + + ```sh + make run_storage + ``` + +1. Start the batcher: + + ```sh + cargo run --manifest-path ./batcher/aligned-batcher/Cargo.toml --release -- --config ./config-files/holesky/config-batcher.yaml --env-file ./batcher/aligned-batcher/.env.dev + ``` + +#### Bridge environment setup + +In the Mina Bridge repo, setup the `.env` file. A template is available in `.env.template`. + +1. Set `ETH_CHAIN` to `holesky`. +1. Set `MINA_RPC_URL` to the URL of the Mina node GraphQL API (See [Mina node section](#mina-node)). +1. Set the rest of the env vars to: + + ```sh + BATCHER_ADDR="ws://localhost:8080" + BATCHER_ETH_ADDR= + ETH_RPC_URL= + PROOF_GENERATOR_ADDR=0x66f9664f97F2b50F62D13eA064982f936dE76657 + PRIVATE_KEY= + ALIGNED_SM_HOLESKY_ETH_ADDR= + ``` + +### Bridge a Mina account + 1. In the root folder, deploy the Bridge's contracts with: ```sh From ceebf994827683720fbf34ab2814eea750c971fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 3 Oct 2024 14:12:18 -0300 Subject: [PATCH 45/46] Remove duplicated section on README (#358) --- README.md | 114 ------------------------------------------------------ 1 file changed, 114 deletions(-) diff --git a/README.md b/README.md index b9562265..dfd214cc 100644 --- a/README.md +++ b/README.md @@ -353,120 +353,6 @@ In the Mina Bridge repo, setup the `.env` file. A template is available in `.env ### Bridge a Mina account -1. In the root folder, deploy the Bridge's contracts with: - - ```sh - make deploy_contract - ``` - - In the `.env` file, set `STATE_SETTLEMENT_ETH_ADDR` and `ACCOUNT_VALIDATION_ETH_ADDR` to the corresponding deployed contract addresses. - -1. Submit a Mina state proof to verify (**NOTE:** Because of the Aligned minimum batch size, you may need to submit two proofs to make Aligned Devnet verify them): - - - Run `make submit_devnet_state` if you are using Mina Devnet or `make submit_mainnet_state` if you are using Mina Mainnet. - -1. Submit an account to verify (**NOTE:** Because of the Aligned minimum batch size, you may need to submit two proofs to make Aligned Devnet verify them): - - ```sh - make submit_account PUBLIC_KEY= STATE_HASH= - ``` - - Where: - - `PUBLIC_KEY` is the public key of the Mina account you want to verify - - `STATE_HASH` is the hash of a Mina state that was verified in Ethereum - -1. Open a new terminal and register the operator: - - ```sh - eigenlayer operator register config-files/holesky/config.yaml - ``` - -1. Whitelist the registered operator: - - ```sh - make operator_whitelist OPERATOR_ADDRESS= - ``` - -1. Deposit Strategy tokens for the operator. Follow [this section from the AlignedLayer docs](https://docs.alignedlayer.com/operators/0_running_an_operator#step-4-deposit-strategy-tokens). - -1. Start operator: - - ```sh - make operator_start CONFIG_FILE=config-files/holesky/config.yaml - ``` - -1. Set `contracts/script/deploy/config/holesky/batcher-payment-service.holesky.config.json` to: - - ```json - { - "address": { - "batcherWallet": "", - "alignedLayerServiceManager": "" - }, - "amounts": { - "gasForAggregator": "300000", - "gasPerProof": "21000" - }, - "permissions": { - "owner": "" - }, - "eip712": { - "noncedVerificationDataTypeHash": "41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3" - } - } - ``` - -1. Deploy Batcher payment contract: - - ```sh - make deploy_batcher_payment_service - ``` - - The file `contracts/script/output/holesky/alignedlayer_deployment_output.json` will have two new fields: `addresses.batcherPaymentService` and `addresses.batcherPaymentServiceImplementation`. - -1. Pay the batcher: - - ```sh - cast send --rpc-url --private-key --value 1ether - ``` - -1. Deposit to batcher in the Aligned Service Manager Contract: - - ```sh - cast send --rpc-url --private-key --value 1ether "depositToBatcher(address)" - ``` - -1. Setup local storage for the batcher: - - ```sh - make run_storage - ``` - -1. Start the batcher: - - ```sh - cargo run --manifest-path ./batcher/aligned-batcher/Cargo.toml --release -- --config ./config-files/holesky/config-batcher.yaml --env-file ./batcher/aligned-batcher/.env.dev - ``` - -#### Bridge environment setup - -In the Mina Bridge repo, setup the `.env` file. A template is available in `.env.template`. - -1. Set `ETH_CHAIN` to `holesky`. -1. Set `MINA_RPC_URL` to the URL of the Mina node GraphQL API (See [Mina node section](#mina-node)). -1. Set the rest of the env vars to: - - ```sh - BATCHER_ADDR="ws://localhost:8080" - BATCHER_ETH_ADDR= - ETH_RPC_URL= - PROOF_GENERATOR_ADDR=0x66f9664f97F2b50F62D13eA064982f936dE76657 - PRIVATE_KEY= - ALIGNED_SM_HOLESKY_ETH_ADDR= - ``` - -### Bridge a Mina account - 1. In the root folder, deploy the Bridge's contracts with: ```sh From b923855167a95b069fdb7f031006f7a09c59b060 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 3 Oct 2024 14:13:08 -0300 Subject: [PATCH 46/46] Update README (#357) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add details on usage section * Start adding Ethereum testnet section * Complete setup section * Fix Mainnet image link * Fix Aligned fork branch * Add staking step in Testnet setup * Complete Aligned Testnet setup * Update README.md * Revert "Update README.md" This reverts commit 2f68a5d9a8a472dd9e6a74399d202b9b785fd680. * Update submit state command * Fix Testnet setup ordered list * Update batcher deployment result paragraph * Add initial disclaimer * Qualify Bridge contracts * Move table of contents up * Fix headings identation * Fix links in table of contents * Remove div tag * Update repo description * Update README.md Co-authored-by: EstĂ©fano Bargas --------- Co-authored-by: EstĂ©fano Bargas --- README.md | 223 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 115 insertions(+), 108 deletions(-) diff --git a/README.md b/README.md index dfd214cc..a5d468af 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,59 @@ -
    +# Mina Bridge -# mina_bridge 🌉 +Docs and utils for the Zero-knowledge state bridge from Mina to Ethereum -## Zero-knowledge state bridge from Mina to Ethereum +## Table of Contents -
    +- [About](#about) +- [Usage](#usage) +- [Example use case](#example-use-case) +- [Table of Contents](#table-of-contents) +- [Specification](#specification) + - [core](#core) + - [mina](#mina) + - [aligned](#aligned) + - [eth](#eth) + - [Mina Proof of State](#mina-proof-of-state) + - [Definition](#definition) + - [Serialization](#serialization) + - [Aligned’s Mina Proof of State verifier](#aligneds-mina-proof-of-state-verifier) + - [Consensus checking](#consensus-checking) + - [Transition frontier](#transition-frontier) + - [Pickles verification](#pickles-verification) + - [Mina Proof of Account](#mina-proof-of-account) + - [Definition](#definition-1) + - [Serialization](#serialization-1) + - [Aligned’s Proof of Account verification](#aligneds-proof-of-account-verification) + - [Mina State Settlement contract](#mina-state-settlement-contract) + - [Gas cost](#gas-cost) + - [Mina Account Validation contract](#mina-account-validation-contract) + - [Gas cost](#gas-cost-1) +- [Kimchi proving system](#kimchi-proving-system) + - [Proof Construction & Verification](#proof-construction--verification) + - [Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs``](#secuence-diagram-linked-to-proof-systemskimchisrcverifierrs) + - [Pickles - Mina’s inductive zk-SNARK composition system](#pickles---minas-inductive-zk-snark-composition-system) + - [Accumulator](#accumulator) + - [Analysis of the Induction (recursion) method applied in Pickles](#analysis-of-the-induction-recursion-method-applied-in-pickles) + - [Pickles Technical Diagrams](#pickles-technical-diagrams) + - [Consensus](#consensus) + - [Chain selection rules](#chain-selection-rules) + - [Short-range fork rule](#short-range-fork-rule) + - [Long-range fork rule](#long-range-fork-rule) + - [Decentralized checkpointing](#decentralized-checkpointing) + - [Short-range fork check](#short-range-fork-check) + - [Sliding window density](#sliding-window-density) + - [Nomenclature](#nomenclature) + - [Window structure](#window-structure) + - [Minimum window density](#minimum-window-density) + - [Ring-shift](#ring-shift) + - [Projected window](#projected-window) + - [Genesis window](#genesis-window) + - [Relative minimum window density](#relative-minimum-window-density) + - [Protocol](#protocol) + - [Initialize consensus](#initialize-consensus) + - [Select chain](#select-chain) + - [Maintaining the k-th predecessor epoch ledger](#maintaining-the-k-th-predecessor-epoch-ledger) + - [Getting the tip](#getting-the-tip) ## About @@ -12,6 +61,17 @@ This project introduces the verification of [Mina Protocol](https://minaprotocol The bridge leverages [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State and Mina Proofs of Account in Ethereum. +This repo includes utilities for the Mina Bridge that facilitate: + +- Interacting with a Mina node to fetch states, accounts and their proofs. +- Sending proofs to the Mina verifiers in Aligned. +- Interacting with the Bridge's example smart contracts on Ethereum. + +This repo also includes example contracts that show how to interact with Aligned to check that a Mina state proof is valid or a Mina account state is included in the Mina Ledger. + +> [!WARNING] +> The contracts included in this repo are only included as examples. Do not use them in production. + ## Usage ### Setup @@ -353,7 +413,7 @@ In the Mina Bridge repo, setup the `.env` file. A template is available in `.env ### Bridge a Mina account -1. In the root folder, deploy the Bridge's contracts with: +1. In the root folder, deploy the example Bridge's contracts with: ```sh make deploy_contract @@ -382,7 +442,7 @@ The `example/` folder contains a project that uses the Sudoku zkApp example from For running the example you need to: 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/staging/docs/3_guides/6_setup_aligned.md#booting-devnet-with-default-configs) -1. Deploy the bridge smart contracts by executing +1. Deploy the example bridge smart contracts by executing ```sh make deploy_contract @@ -416,68 +476,15 @@ For running the example you need to: ![Example diagram](/img/example_diagram.png) -## Table of Contents - -- [About](#about) -- [Usage](#usage) -- [Example use case](#example-use-case) -- [Table of Contents](#table-of-contents) -- [Specification](#specification) - - [core](#core) - - [mina](#mina) - - [aligned](#aligned) - - [eth](#eth) - - [Mina Proof of State](#mina-proof-of-state) - - [Definition](#definition) - - [Serialization](#serialization) - - [Aligned’s Mina Proof of State verifier](#aligneds-mina-proof-of-state-verifier) - - [Consensus checking](#consensus-checking) - - [Transition frontier](#transition-frontier) - - [Pickles verification](#pickles-verification) - - [Mina Proof of Account](#mina-proof-of-account) - - [Definition](#definition-1) - - [Serialization](#serialization-1) - - [Aligned’s Proof of Account verification](#aligneds-proof-of-account-verifier) - - [Smart contract](#smart-contract) - - [Gas cost](#gas-cost) - - [Mina Account Validation contract](#mina-account-validation-contract) - - [Gas cost](#gas-cost-1) -- [Kimchi proving system](#kimchi-proving-system) - - [Proof Construction & Verification](#proof-construction---verification) - - [Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs``](#secuence-diagram-linked-to---proof-systems-kimchi-src-verifierrs--) - - [Pickles - Mina’s inductive zk-SNARK composition system](#pickles---mina-s-inductive-zk-snark-composition-system) - - [Accumulator](#accumulator) - - [Analysis of the Induction (recursion) method applied in Pickles](#analysis-of-the-induction--recursion--method-applied-in-pickles) - - [Pickles Technical Diagrams](#pickles-technical-diagrams) - - [Consensus](#consensus) - - [Chain selection rules](#chain-selection-rules) - - [Short-range fork rule](#short-range-fork-rule) - - [Long-range fork rule](#long-range-fork-rule) - - [Decentralized checkpointing](#decentralized-checkpointing) - - [Short-range fork check](#short-range-fork-check) - - [Sliding window density](#sliding-window-density) - - [Nomenclature](#nomenclature) - - [Window structure](#window-structure) - - [Minimum window density](#minimum-window-density) - - [Ring-shift](#ring-shift) - - [Projected window](#projected-window) - - [Genesis window](#genesis-window) - - [Relative minimum window density](#relative-minimum-window-density) - - [Protocol](#protocol) - - [Initialize consensus](#initialize-consensus) - - [Select chain](#select-chain) - - [Maintaining the k-th predecessor epoch ledger](#maintaining-the-k-th-predecessor-epoch-ledger) - - [Getting the tip](#getting-the-tip) - -# Specification +## Specification -## core +### core [mina_bridge repo: core/](https://github.com/lambdaclass/mina_bridge/tree/aligned/core) A Rust library+binary project that includes the next modules: -### mina +#### mina [mina_bridge repo: core/src/mina.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina.rs) @@ -486,7 +493,7 @@ This module can query a Mina node (defined by the user via the `MINA_RPC_URL` en - state data and state proof - account data and its Merkle proof of inclusion in some snarked ledger (which itself is contained in state data, so by verifying a state you are verifying its snarked ledger). -### aligned +#### aligned [mina_bridge repo: core/src/aligned.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/aligned.rs) @@ -494,21 +501,21 @@ This module implements functions for sending the Mina Proof of State or Account The verification data sent by Aligned is returned after proof submission. This is used for updating the verified chain in the State Settlement contract. -### eth +#### eth [mina_bridge repo: core/src/eth.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/eth.rs) -Implements functions for interacting with the bridge’s smart contracts on Ethereum (getters for storage variables, update the verified state chain, validate an account). Also includes code for deploying both contracts. +Implements functions for interacting with the example bridge’s smart contracts on Ethereum (getters for storage variables, update the verified state chain, validate an account). Also includes code for deploying both contracts. -### sdk +#### sdk [mina_bridge repo: core/src/sdk.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/sdk.rs) Abstracts the previous modules to provide an easy way to verify states or accounts, and to retrieve storage data from the State Settlement contract. -## Mina Proof of State +### Mina Proof of State -### Definition +#### Definition We understand a Mina Proof of State to be composed of: @@ -548,17 +555,17 @@ bridge_tip_state, ] ``` -### Serialization +#### Serialization We use **bincode** for serializing the data into bytes, which will then be deserialized by Aligned operators. Because the public inputs also need to be deserialized in Solidity, the module defines a `SolSerialize` struct that implements traits for serializing specific types into a Solidity-friendly format (the goal is to be able to serialize the types the same way they’re represented in the EVM and move them from calldata to memory via single Yul instructions). -### Aligned’s Mina Proof of State verifier +#### Aligned’s Mina Proof of State verifier [aligned_layer repo: operator/mina/](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) Aligned Layer integrated a verifier in its operator code for verifying Mina Proofs of State. -### Public input checking +#### Public input checking The first step of the verifier is to check that the public inputs correspond to the proof data. This is: @@ -567,13 +574,13 @@ The first step of the verifier is to check that the public inputs correspond to - that the chain ledger hashes are the hashes of the ledgers (stored in the states) in the proof - that the states form a chain (by hashing together the **state hash** of a state `n` and the **state body hash** of state `n+1`, we retrieve the **state hash** of the state `n+1`, so the states form a chain if we can hash from the root all the way until arriving to the tip state hash. -### Consensus checking +#### Consensus checking The second step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate tip state and the bridge tip state. There are two general rules that implement a set of checks each: a rule for short-range forks, and another for long-range forks. The implementation can be found in the [aligned_layer repo: operator/mina/lib/src/consensus_state.rs](https://github.com/lambdaclass/aligned_layer/blob/mina/operator/mina/lib/src/consensus_state.rs) file. The implementation was based on the official [Mina Protocol consensus documentation](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md). -### Transition frontier +#### Transition frontier The **transition frontier** is a chain of the latest `k` blocks of the network. The GraphQL DB of a Mina node only stores these blocks and forgets the previous ones. Currently, `k = 291` @@ -583,7 +590,7 @@ We can define that a block is **partially finalized** if it has `n` blocks ahead A block is **finalized** when there’s `k - 1` blocks ahead of it., meaning that it’s the first block of the transition frontier, also called the **root block**. The latest block of the transition frontier is called the **tip**. -### Pickles verification +#### Pickles verification This is the last step of the Mina Proof of State verifier. We are leveraging OpenMina’s “block verifier” to verify the Pickles proof of the candidate tip state. The verifier takes as public input the hash of the state. @@ -592,7 +599,7 @@ After validating the candidate tip state, because in a previous step we verified > [!WARNING] > OpenMina’s block verifier is yet to be audited. -## Mina Proof of Account +### Mina Proof of Account After a Mina Proof of State was verified, it’s possible to verify a Proof of Account of some Mina account in the verified state. @@ -600,7 +607,7 @@ Verifying that some account and its state is valid in a bridged Mina state is on Account verification (paired with state verification) essentially allows to verify off-chain computation on Ethereum, after it has been validated by Mina. -### Definition +#### Definition We understand a Mina Proof of Account to be composed of: @@ -631,17 +638,17 @@ The account is included in the proof to: - compare it with the Solidity-friendly `encoded_account` in the public inputs - hash it to retrieve the leaf hash of the Merkle tree to verify -### Serialization +#### Serialization We use **bincode** for serializing the data into bytes, which will then be deserialized by Aligned operators. Because the public inputs also need to be deserialized in Solidity, the module defines a `SolSerialize` struct that implements traits for serializing specific types into a Solidity-friendly format (the goal is to be able to serialize the types the same way they’re represented in the EVM and move them from calldata to memory via single Yul instructions). -### Aligned’s Proof of Account verification +#### Aligned’s Proof of Account verification [aligned_layer repo: operator/mina_account/](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina_account) The verification consists in calculating the merkle root by hashing the branch (whose nodes are contained in the `merkle_path`) corresponding to the account’s leaf, and comparing the root with the snarked ledger hash included in the public inputs. -## Mina State Settlement contract +### Mina State Settlement contract [mina_bridge repo: contract/src/MinaStateSettlement.sol](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract/src/MinaStateSettlement.sol) @@ -651,11 +658,11 @@ Any user can submit a Mina Proof of State to Aligned and then provide the contra The contract is deployed by a `contract_deployer` crate with an initial state that is assumed to be valid. The default is to use a relatively finalized state (the sixteenth one) from the Mina node chosen to execute the query to. -### Gas cost +#### Gas cost - Currently the cost of the “update chain” transaction is ~220k. -## Mina Account Validation contract +### Mina Account Validation contract [mina_bridge repo: contract/src/MinaAccountValidation.sol](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract/src/MinaAccountValidation.sol) @@ -665,11 +672,11 @@ Any user can submit a Mina Proof of Account to Aligned and then provide the cont The contract is deployed by a `contract_deployer` crate. -### Gas cost +#### Gas cost - The cost of the “update account” transaction is ~80k. -# Kimchi proving system +## Kimchi proving system Kimchi is a zero-knowledge proof system that’s a variant of PLONK. @@ -686,9 +693,9 @@ Another enhancement in Kimchi involves the incorporation of lookups for performa In the beginning, Kimchi relies on an interactive protocol, which undergoes a conversion into a non-interactive form through the Fiat-Shamir transform. -## Proof Construction & Verification +### Proof Construction & Verification -### Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs`` +#### Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs`` ![Commitments to secret polynomials](/img/commitments_to_secret_poly.png) @@ -754,7 +761,7 @@ Links to the associated code. [polynomials that have an evaluation proof](https://github.com/o1-labs/proof-systems/blob/17041948eb2742244464d6749560a304213f4198/kimchi/src/verifier.rs#L346) -## Pickles - Mina’s inductive zk-SNARK composition system +### Pickles - Mina’s inductive zk-SNARK composition system Pickles uses a pair of amicable curves called [Pasta](https://o1-labs.github.io/proof-systems/specs/pasta.html) in order to deliver incremental verifiable computation efficiently. @@ -811,7 +818,7 @@ Both [Step and Wrap circuits](https://o1-labs.github.io/proof-systems/pickles/ov --- -### Accumulator +#### Accumulator The accumulator is an abstraction introduced for the purpose of this diagram. In practice, each kimchi proof consists of (1) commitments to polynomials, (2) evaluations of them, (3) and the opening proof. @@ -823,7 +830,7 @@ In pickles, what we do is that we “absorb” this commitment `sg` from the p That is, for example, Step 1 will produce this commitment that is denoted as `acc1` on the diagram, as part of its opening proof, and Step 2 will absorb this commitment. And this “absorbtion” is what Wrap 2 will prove (and, partially, Step 3 will also refer to the challenges used to build `acc1`, but this detail is completely avoided in this overview). In the end, `acc2` will be the result of Step 2, so in a way `acc2` “aggregates” `acc1` which somewhat justifies the language used. -### Analysis of the Induction (recursion) method applied in Pickles +#### Analysis of the Induction (recursion) method applied in Pickles The **Verifier** is divided into 2 modules, one part **Slow** and one part **Fast**. @@ -872,7 +879,7 @@ Let's now see how the Verifier Fast is divided. The proof **Pi** is divided into 2 parts, one corresponding to group operations **G**, and it exposes, as a public input to the circuit, the part of the proof that is necessary to execute **Vf**. -### Pickles Technical Diagrams +#### Pickles Technical Diagrams The black boxes are data structures that have names and labels following the implementation. `MFNStep/MFNWrap` is an abbreviation from `MessagesForNextStep` and `MessagesForNextWrap` that is used for brevity. Most other datatypes are exactly the same as in the codebase. @@ -883,7 +890,7 @@ The proof **Pi** is divided into 2 parts, one corresponding to group operations ![Figure](/img/pickles_structure_drawio.png) -## Consensus +### Consensus Mina employs [Ouroboros Samasika](https://eprint.iacr.org/2020/352.pdf) as its consensus mechanism, which will be subsequently denoted as Samasika. Three essential commitments provided include: @@ -896,21 +903,21 @@ Joseph Bonneau, Izaak Meckler, Vanishree Rao, and Evan Shapiro collaborated to c The complexity of fully verifying the entire blockchain is independent of chain length. Samasika takes its name from the Sanskrit term, meaning small or succinct. -### Chain selection rules +#### Chain selection rules Samasika uses two consensus rules: one for _short-range forks_ and one for _long-range forks_. -#### Short-range fork rule +##### Short-range fork rule This rule is triggered whenever the fork is such that the adversary has not yet had the opportunity to mutate the block density distribution. A fork is considered short-range if it took place within the last **m** blocks. The straightforward implementation of this rule involves consistently storing the most recent **m** blocks. Yet, in the context of a succinct blockchain, this is considered not desirable. Mina Samasika follows a methodology that necessitates information about only two blocks, the concept involves a decentralized checkpointing algorithm. -#### Long-range fork rule +##### Long-range fork rule When a malicious actor generates an long-range fork, it gradually distorts the leader selection distribution, resulting in a longer adversarial chain. At the start, the dishonest chain will have a reduced density, but eventually, the adversary will work to elevate it. Therefore, the only factor we can depend on is the variation in density in the initial slots after the fork, which is known as the _critical window_. The reasoning is that the critical window of the honest chain is very likely to have a higher density because this chain has the most stake -### Decentralized checkpointing +#### Decentralized checkpointing Samasika employs decentralized checkpointing to discern the nature of a fork, categorizing it as either short-range or long-range. @@ -924,17 +931,17 @@ Remember, a fork is categorized as short-range if either: As Mina prioritizes succinctness, it implies the need to maintain checkpoints for both the current and the previous epoch. -### Short-range fork check +#### Short-range fork check Keep in mind that short-range forks occur when the fork point occurs after the lock_checkpoint of the previous epoch; otherwise, it qualifies as a long-range fork. The position of the previous epoch is a measurement relative to a block's perspective. In cases where candidate blocks belong to distinct epochs, each will possess distinct current and previous epoch values. Alternatively, if the blocks belong to the same epoch, they will both reference the identical previous epoch. Thus we can simply check whether the blocks have the same lock_checkpoint in their previous epoch data. -### Sliding window density +#### Sliding window density Let describe Mina's succinct sliding window density algorithm used by the long-range fork rule. In detail how windows are represented in blocks and how to compute _minimum window density_ -#### Nomenclature +##### Nomenclature - We say a slot is _filled_ if it contains a valid non-orphaned block. - An _w-window_ is a sequential list of slots s1,...,sw of length _w_. @@ -951,13 +958,13 @@ The density of a window is computed as the sum of the densities of its sub-windo Given a window ``W`` that is a list of sub-window densities, the window density is: ``density(W) = sum(W)`` -#### Window structure +##### Window structure We use the phrase "window at sub-window _s_" to refer to the window _W_ whose most recent global sub-window is _s_. In the Samasika paper the window structure actually consists of the **11 previous sub-window densities**, the **current sub-window density** and the **minimum window density** .A total of _13_ densities. The most recent sub-window may be a previous sub-window or the current sub-window. -#### Minimum window density +##### Minimum window density The **minimum window density** at a given slot is defined as the minimum window density observed over all previous sub-windows and previous windows, all the way back to genesis. When a new block _B_ with parent _P_ is created, the minimum window density is computed like this. @@ -966,13 +973,13 @@ where ``current_window_density`` is the density of _B's_ projected window The relative sub-window _i_ of a sub-window _sw_ is its index within the window. -#### Ring-shift +##### Ring-shift When we shift a window ``[d0, d1, ..., d10]`` in order to add in a new sub-window ``d11``, we could evict the oldest sub-window d0 by shifting down all of the other sub-windows. Unfortunately, shifting a list in a SNARK circuit is very expensive. It is more efficient (and also equivalent) to just replace the sub-window we wish to evict by overwriting it with the new sub-window, like this: ``sub_window_densities: d11 | d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | d10`` -#### Projected window +##### Projected window Generating a new block and determining the optimal chain in accordance with the long-range fork rule involve the computation of a projected window. Given a window _W_ and a future global slot _next_, the projected window of _W_ to slot _next_ is a transformation of _W_ into what it would look like if it were positioned at slot _next_. @@ -999,11 +1006,11 @@ We can derive some instructive cases from the general rule ![consensus03](/img/consensus03.png) -##### Genesis window +###### Genesis window Anything related to Genesis windows is not involved in the Mina Bridge. -##### Relative minimum window density +###### Relative minimum window density When Mina engages "chain selection" in the long-range fork rule, It doesn't directly employ the minimum window densities found in in the current and candidate blocks. Rather than that, Mina opts for the relative minimum window density... @@ -1014,20 +1021,20 @@ The calculation of the minimum window density does not take into account the rel Within Samasika, time is encapsulated and safeguarded by the notions of slots and the VRF. When computing the minimum window density, it is imperative to factor in these elements as well. The relative minimum window density solves this problem by projecting the joining peer's current block's window to the global slot of the candidate block. -## Protocol +### Protocol This section outlines the consensus protocol in terms of events. **Initialize consensus** and **Select chain**. In the following description, dot notation is used to refer to the local data members of peers. For example, given peer P, we use P.genesis_block and P.tip, to refer to the genesis block and currently selected chain, respectively. For example, given peer ``P``, we use ``P.genesis_block`` and ``P.tip``, to refer to the genesis block and currently selected chain, respectively. -### Initialize consensus +#### Initialize consensus Things a peer MUST do to initialize consensus includes are _Load the genesis block_, _Get the tip_, _Bootstrap_ and _Catchup_ Bootstrapping consensus requires the ability to synchronize epoch ledgers from the network. All peers MUST have the ability to load both the staking epoch ledger and next epoch ledger from disk and by downloading them. P2P peers MUST also make these ledgers available for other peers. -### Select chain +#### Select chain Each time a peer's chains receive an update, the select chain event takes place. A chain is said to be updated anytime a valid block is added or removed from its head. The chain selection algorithm also incorporates certain tiebreak logic. @@ -1045,14 +1052,14 @@ And the ``selectLongerChain`` algorithm: ![consensus08](/img/consensus08.png) -### Maintaining the k-th predecessor epoch ledger +#### Maintaining the k-th predecessor epoch ledger The staking and next epoch ledgers MUST be finalized ledgers and can only advance when there is sufficient depth to achieve finality. The staking and next epoch ledgers must be in a finalized state and can progress only when there is enough depth to ensure finality. Peers are required to retain the epoch ledger of the k-th predecessor from the tip, where ``k`` represents the depth of finality. Due to the security prerequisites of Ouroboros, the gap in slots between the staking and next epoch ledgers may be great. Consequently, at any given moment, we essentially have three "pointers": staking ``s``, next ``n``, and finality ``k``. The ``final_ledger`` (epoch ledger of the k-th predecessor from the tip) is updated each time chain selection occurs, i.e., for every new tip block appended. -### Getting the tip +#### Getting the tip For a joining peer to discover the head of the current chain it MUST not only obtain the tip, but also the min(k, tip.height - 1)-th block back from the tip. For the latter the peer MUST check the block's proof of finality. Peers perform the proof of finality check by verifying two zero-knowledge proofs, one for the _tip_ and one for the _root_, and a Merkle proof for the chain of protocol state hashes between them.
  • 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